/* ── Endorsement + stage · group-locked components ──────────────────────────
   Geometry lives in tokens/endorsement.css. Nothing here is a Meshdy choice.
   Every measure is a multiple of E, driven by one input: --mds-lockup-h,
   the rendered height of the Meshdy logo asset in px.
   -------------------------------------------------------------------------- */

/* C = cap height of the Meshdy wordmark; E = 0.30 C. */
.mds-lockup{
  --_mds-cap: calc(var(--mds-lockup-h) * var(--mds-cap-ratio, var(--cap-ratio-logo-horizontal)));
  --_mds-e: calc(var(--_mds-cap) * var(--endorsement-cap-ratio));
  display:inline-flex; flex-direction:column; align-items:flex-start;
  gap: calc(var(--_mds-e) * var(--endorsement-gap-ratio));
  padding: calc(var(--_mds-e) * var(--endorsement-clearspace-ratio));
}
/* Variant cap ratios are passed in as --mds-cap-ratio (see SubBrandLockup);
   the stacked asset is 0.300, the bare wordmark 0.750. */
/* Clearspace is a measurement, not a margin the layout must pay for twice. */
.mds-lockup--flush{ padding:0; }
.mds-lockup__logo{ height:var(--mds-lockup-h); width:auto; display:block; }

/* The endorsement line. Sits UNDER the wordmark, left-aligned to it, always.
   Beside means partner lockup and means something else. */
.mds-endorsement{
  display:inline-flex; align-items:baseline;
  gap:0.34em;
  font-family:var(--font-family-body);
  /* E → font-size via the Inter cap height, floored at the 9px minimum. */
  font-size: max(
    calc(var(--endorsement-cap-min) / var(--endorsement-font-cap)),
    calc(var(--_mds-e, 4.7px) / var(--endorsement-font-cap))
  );
  font-weight:var(--endorsement-weight-prefix);
  letter-spacing:var(--endorsement-tracking);
  line-height:1;
  color:var(--endorsement-ink);
  white-space:nowrap;
}
.mds-endorsement__mark{ font-weight:var(--endorsement-weight-mark); letter-spacing:0.04em; }
.mds-endorsement--inverse{ color:var(--endorsement-ink-inverse); }
.mds-endorsement--crimson{ color:var(--endorsement-ink-crimson); }

/* Stage disclosure. Ecomdy doctrine: never promote what is not delivered.
   Anything short of Live carries this on every public touchpoint. */
.mds-stage{
  display:inline-flex; align-items:center; gap:var(--space-1-5);
  padding:3px var(--badge-padding-x);
  border-radius:var(--radius-pill);
  font-family:var(--font-family-body);
  font-size:var(--font-size-caption, 12px); font-weight:var(--font-weight-semibold, 600);
  line-height:1.4; white-space:nowrap; border:1px solid transparent;
}
.mds-stage__dot{ width:6px; height:6px; border-radius:var(--radius-pill); background:currentColor; flex:0 0 auto; }
.mds-stage--idea      { background:var(--bg-sunken);        color:var(--text-muted); }
.mds-stage--prototype { background:var(--state-warning-bg); color:var(--state-warning); }
.mds-stage--beta      { background:var(--state-info-bg);    color:var(--state-info); }
.mds-stage--live      { background:var(--state-success-bg); color:var(--state-success); }
.mds-stage--sunset    { background:var(--state-risk-bg);    color:var(--state-risk); }
.mds-stage--outline   { background:transparent; border-color:currentColor; }
