/* ============================================================
   TYPOGRAPHY — Swiss grotesk, refined & quiet
   Fallback stack (Helvetica Neue / Arial) until brand fonts
   are uploaded. Swap the @font-face in fonts.css and repoint
   --font-display / --font-body when the real files arrive.
   ============================================================ */

:root {
  /* --- Families ---
     Display/headers: PP Rader (supplied). Body: Roboto Flex
     (Google Fonts). Body weight is Light. */
  --font-display: "Gilroy", "Helvetica Neue", "Helvetica", "Arial", system-ui, sans-serif;
  --font-body:    "Gilroy", "Helvetica Neue", "Helvetica", "Arial", system-ui, sans-serif;
  --font-mono:    "SFMono-Regular", "Menlo", "Consolas", monospace;

  /* --- Weights --- */
  --weight-light:   300;
  --weight-regular: 400;
  --weight-medium:  500;
  --weight-semibold: 600;
  --weight-bold:    700;

  /* Body copy runs Light (300) for the thin sans feel. */
  --weight-body:    300;

  /* Headings never use bold or light — all Regular. */
  --weight-display: 400;  /* display, h1 */
  --weight-heading: 400;  /* h2, h3, h4 */

  /* --- Type scale (rem, 1rem = 16px). Big display, quiet body. --- */
  --text-display: 4.5rem;   /* 72 — hero */
  --text-h1:      3rem;     /* 48 */
  --text-h2:      2.25rem;  /* 36 */
  --text-h3:      1.5rem;   /* 24 */
  --text-h4:      1.125rem; /* 18 */
  --text-lead:    1.375rem; /* 22 — intro paragraphs */
  --text-body:    1rem;     /* 16 */
  --text-small:   0.875rem; /* 14 */
  --text-caption: 0.75rem;  /* 12 — labels, meta */

  /* --- Line heights --- */
  --leading-tight:   0.80;  /* display / headings — tightened */
  --leading-snug:    1.2;
  --leading-normal:  1.55;  /* body */
  --leading-relaxed: 1.7;

  /* --- Letter spacing --- */
  --tracking-tight:  -0.02em;  /* large display */
  --tracking-normal: 0;
  --tracking-wide:   0.02em;
  --tracking-caps:   0.12em;   /* uppercase labels */
}
