/* ============================================================
   Optima Digital — Typography tokens
   Display  : Montserrat  (Gotham substitute) — geometric, confident
   Body     : Nunito Sans (Avenir substitute) — approachable humanist
   Mono/data: IBM Plex Mono — metrics, figures, code
   ============================================================ */
:root {
  --font-display: "Montserrat", "Gotham", system-ui, sans-serif;
  --font-body:    "Nunito Sans", "Avenir Next", "Avenir", system-ui, sans-serif;
  --font-mono:    "IBM Plex Mono", ui-monospace, "SFMono-Regular", monospace;

  /* Weights */
  --fw-regular: 400; /* @kind font */
  --fw-medium:  500; /* @kind font */
  --fw-semibold:600; /* @kind font */
  --fw-bold:    700; /* @kind font */
  --fw-extra:   800; /* @kind font */

  /* Type scale (1.250 major-third-ish, tuned) */
  --fs-display-xl: 4.25rem;  /* 68px hero */
  --fs-display-l:  3.25rem;  /* 52px */
  --fs-display-m:  2.5rem;   /* 40px */
  --fs-h1:         2rem;     /* 32px */
  --fs-h2:         1.5rem;   /* 24px */
  --fs-h3:         1.25rem;  /* 20px */
  --fs-body-lg:    1.125rem; /* 18px */
  --fs-body:       1rem;     /* 16px */
  --fs-body-sm:    0.875rem; /* 14px */
  --fs-caption:    0.75rem;  /* 12px */

  /* Line heights */
  --lh-tight:   1.08; /* @kind font */
  --lh-heading: 1.18; /* @kind font */
  --lh-snug:    1.4; /* @kind font */
  --lh-body:    1.6; /* @kind font */

  /* Letter spacing */
  --ls-tight:   -0.02em; /* @kind font */
  --ls-normal:  0; /* @kind font */
  --ls-wide:    0.04em; /* @kind font */
  --ls-eyebrow: 0.12em; /* @kind font */

  /* Semantic roles */
  --text-eyebrow-transform: uppercase; /* @kind other */
}

/* Reasonable element defaults so consumers inherit brand type */
body {
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--text-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  color: var(--text-strong);
  line-height: var(--lh-heading);
  letter-spacing: var(--ls-tight);
  font-weight: var(--fw-bold);
  margin: 0;
}
