/* ============================================================
   ECHTE STARS — Base reset + typographic helpers
   Ships alongside tokens so consumers get sensible defaults and a set
   of type classes that mirror the CI-Book scale.
   ============================================================ */

/* Metric-matched fallback for Anton so display headlines don't reflow */
@font-face {
  font-family: "Anton Fallback";
  src: local("Impact"), local("Haettenschweiler"), local("Arial Narrow Bold");
  size-adjust: 108%;
  ascent-override: 90%;
  descent-override: 20%;
}

*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  font-family: var(--font-text);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--text-primary);
  background: var(--surface-page);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* ---------- Display (Anton, uppercase) ---------- */
.es-display-1, .es-display-2, .es-display-3 {
  font-family: var(--font-display);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: var(--tracking-display);
  margin: 0;
  color: var(--text-primary);
}
.es-display-1 { font-size: var(--fs-h1); line-height: var(--lh-h1); }
.es-display-2 { font-size: var(--fs-h2); line-height: var(--lh-h2); }
.es-display-3 { font-size: var(--fs-h3-display); line-height: var(--lh-h3-display); }

/* ---------- Headings (Inter) ---------- */
.es-h3 { font-family: var(--font-text); font-weight: var(--fw-bold);
  font-size: var(--fs-h3); line-height: var(--lh-h3); margin: 0; }
.es-h5 { font-family: var(--font-text); font-weight: var(--fw-medium);
  font-size: var(--fs-h5); line-height: var(--lh-h5); margin: 0; }
.es-h6 { font-family: var(--font-text); font-weight: var(--fw-bold);
  font-size: var(--fs-h6); line-height: var(--lh-h6); margin: 0; }

/* ---------- Text ---------- */
.es-body { font-size: var(--fs-body); line-height: var(--lh-body); color: var(--text-secondary); margin: 0; }
.es-label { font-size: var(--fs-label); line-height: var(--lh-label); }
.es-caption { font-size: var(--fs-caption); line-height: var(--lh-caption); color: var(--text-muted); }

/* Eyebrow — small uppercase orange kicker above a heading */
.es-eyebrow {
  font-size: var(--fs-caption);
  font-weight: var(--fw-bold);
  text-transform: uppercase;
  letter-spacing: var(--tracking-eyebrow);
  color: var(--text-accent);
  margin: 0;
}

/* Accent word inside a headline */
.es-accent { color: var(--text-accent); }

a { color: inherit; }
