/* ============================================================
   GBV 2026 — Typography tokens
   Source: GBV Styleguide 2026, 03.1–03.2
   Two families:
     • Gantari  — the workhorse: captions, sub-headlines, body, highlights
     • Inter    — reserved for big headlines only (Inter Bold, "200%")
   Brand rules captured below:
     Caption       Gantari Regular · UPPERCASE · tracking 240 (0.24em)
     Headline      Inter Bold
     Subheadline   Gantari Light (300) · leading 150%
     Highlight     Gantari Bold (in running text)
     Body          Gantari Regular · leading 140%
   ============================================================ */
:root {
  /* ---- Families --------------------------------------------------- */
  --font-gantari: 'Gantari', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-inter:   'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;

  /* Semantic family aliases */
  --font-headline: var(--font-inter);     /* big headlines ONLY        */
  --font-body:     var(--font-gantari);   /* everything else           */
  --font-caption:  var(--font-gantari);

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

  /* ---- Type scale (rem, 16px base) -------------------------------- */
  --text-caption:   0.8125rem;  /* 13px — uppercase label             */
  --text-xs:        0.75rem;    /* 12px                               */
  --text-sm:        0.875rem;   /* 14px                               */
  --text-base:      1rem;       /* 16px — body                        */
  --text-lg:        1.125rem;   /* 18px                               */
  --text-subhead:   1.5rem;     /* 24px — Gantari Light               */
  --text-headline:  2.5rem;     /* 40px — Inter Bold                  */
  --text-display:   3.75rem;    /* 60px — Inter Bold, hero            */
  --text-display-lg:5.5rem;     /* 88px — full-bleed statement        */

  /* ---- Line heights ----------------------------------------------- */
  --leading-tight:   1.1;       /* headlines                          */
  --leading-snug:    1.2;       /* intro / subhead                    */
  --leading-body:    1.4;       /* brand body rule (140%)             */
  --leading-relaxed: 1.6;

  /* ---- Letter spacing --------------------------------------------- */
  --tracking-caption: 0.24em;   /* brand "tracking 240"               */
  --tracking-tight:  -0.02em;   /* large headlines                    */
  --tracking-normal:  0;
}

/* ---- Convenience text roles --------------------------------------- */
.gbv-caption {
  font-family: var(--font-caption);
  font-weight: var(--fw-regular);
  font-size: var(--text-caption);
  letter-spacing: var(--tracking-caption);
  text-transform: uppercase;
  line-height: 1.2;
}
.gbv-headline {
  font-family: var(--font-headline);
  font-weight: var(--fw-bold);
  font-size: var(--text-headline);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
  color: var(--text-strong);
}
.gbv-subhead {
  font-family: var(--font-body);
  font-weight: var(--fw-light);
  font-size: var(--text-subhead);
  line-height: var(--leading-snug);
  color: var(--text-strong);
}
.gbv-body {
  font-family: var(--font-body);
  font-weight: var(--fw-regular);
  font-size: var(--text-base);
  line-height: var(--leading-body);
  color: var(--text-body);
}
.gbv-body strong,
.gbv-highlight {
  font-weight: var(--fw-bold);
  color: var(--text-strong);
}
