/* Wykeham typography.
   Two families, three weights total. Newsreader 400 carries every display and heading
   level; Inter 400/500 carries body, nav, labels and UI. Nothing above 500 exists. */
:root{
  --font-display:"Newsreader",Georgia,"Times New Roman",serif;
  --font-body:"Inter",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;

  --weight-regular:400;
  --weight-medium:500;   /* ceiling — Inter only, labels and nav */

  /* display / headings — Newsreader 400 */
  --type-display-1-size:76px;  --type-display-1-lh:1.04; --type-display-1-ls:-.015em;
  --type-display-2-size:56px;  --type-display-2-lh:1.08; --type-display-2-ls:-.012em;
  --type-display-3-size:40px;  --type-display-3-lh:1.14; --type-display-3-ls:-.008em;
  --type-heading-1-size:30px;  --type-heading-1-lh:1.22; --type-heading-1-ls:-.006em;
  --type-heading-2-size:24px;  --type-heading-2-lh:1.28; --type-heading-2-ls:-.004em;
  --type-heading-3-size:20px;  --type-heading-3-lh:1.35; --type-heading-3-ls:0em;
  /* ADDED FOR SITE BUILD — polish pass 2 (handoff, 13 October 2026). The
     section subheading: Newsreader 22, between heading-2 (24) and the body.
     The scale had no 22 and the role is real — it opens How we work, every
     practice row and the sector intros, where lead (26) was too loud. */
  --type-subhead-size:22px;    --type-subhead-lh:1.42;   --type-subhead-ls:-.002em;

  /* editorial lead — Newsreader 400, used for standfirsts and pull quotes */
  --type-lead-size:26px;       --type-lead-lh:1.42;      --type-lead-ls:-.004em;

  /* body — Inter 400 */
  --type-body-lg-size:18px;    --type-body-lg-lh:1.62;   --type-body-lg-ls:0em;
  --type-body-size:16px;       --type-body-lh:1.65;      --type-body-ls:0em;
  /* ADDED FOR SITE BUILD — polish pass 2 (handoff, 13 October 2026). About's
     ruled columns and section bodies set 17, a step above body: they are the
     page's substance rather than supporting copy, and 16 read as a caption
     beside the Newsreader 24 lead above them. */
  --type-body-md-size:17px;    --type-body-md-lh:1.62;
  --type-body-sm-size:15px;    --type-body-sm-lh:1.6;    --type-body-ls-sm:.002em;   /* was 14 — client decision, 10 September 2026, see below */

  /* labels — Inter 500, uppercase, wide tracking */
  /* 12, not 11, since 13 October 2026 (client: no text under 12px). This
     supersedes the decision of 10 September that held eyebrows at 11 while
     the nav and body copy stepped up to 15 — that decision was about matching
     the reference sites, and the floor outranks it. The tracking and the 500
     weight are unchanged, so the label still reads as a label. */
  --type-eyebrow-size:12px;    --type-eyebrow-lh:1.2;    --type-eyebrow-ls:.18em;
  /* ADDED FOR SITE BUILD — article exhibits (handoff of 26 September 2026).
     Three sizes the scale does not hold: 13 for the carbon table header row,
     14 for the units line, footnotes and country row labels, 17 for country
     names and the mobile row strips. */
  --type-ex-head-size:13px;    --type-ex-head-lh:1.35;   --type-ex-head-ls:.02em;
  --type-ex-note-size:14px;    --type-ex-note-lh:1.55;
  --type-ex-lead-size:17px;    --type-ex-lead-lh:1.35;
  --type-label-size:12px;      --type-label-lh:1.2;      --type-label-ls:.14em;
  --type-nav-size:15px;        --type-nav-lh:1.2;        --type-nav-ls:.02em;        /* was 14 — client decision, 10 September 2026, see below */
  --type-caption-size:12px;    --type-caption-lh:1.5;    --type-caption-ls:.01em;

  /* wordmark */
  --wordmark-ls:.06em;

  /* fluid display for heroes: never below the floor, never above the design size */
  --type-display-1-fluid:clamp(40px,5.4vw,76px);
  --type-display-2-fluid:clamp(32px,4vw,56px);

  /* --- ADDED FOR SITE BUILD (chunk 1) ---
     Button label sizes. components/core/Button.jsx ships these as raw px (lg 15, md 14,
     sm 13); the static site cannot import the component, and the rule is that no px value
     is inlined, so the two sizes the site actually uses are tokenised here. The md size is
     deliberately an alias of --type-nav-size — the nav Contact button and the nav items
     are the same optical size, as in the reference component. */
  --type-button-lg-size:15px;
  --type-button-md-size:var(--type-nav-size);

  /* --- ADDED FOR SITE BUILD (chunk 3) ---
     Line height for form controls. components/forms/Input.jsx, Textarea and
     Select all ship a literal 1.5, tighter than --type-body-lh, so that a
     single-line control sits correctly against its underline rule. */
  --type-field-lh:1.5;

  /* --- CLIENT DECISION, 10 September 2026 — small sizes raised one step ---
     Measured against Altman Solon, AlixPartners, Simon-Kucher and Eden McCallum
     at 1440: headings and body prose were at parity, but every small role sat
     one step under precedent — nav 14 against 16 on all three that expose it,
     footer links and card copy 14 against 16, eyebrows 11 against 12–14. The
     nav and the small body size move to 15; the eyebrow stays at 11, carried by
     its tracking. The design files still draw 14/14/11. --type-button-md-size
     aliases the nav size, so the header button label moves with it. */

  /* --- ADDED FOR SITE BUILD (2026-09-10) ---
     Card kicker leading. CASE STUDIES INDEX (and the INSIGHTS library cards)
     draw the kicker at 11px/1.5, looser than the eyebrow's 1.2, because inside
     a card it wraps to two or three lines and the tight leading reads as a
     block. Applied where the design files draw it; the eyebrow keeps 1.2. */
  --type-kicker-lh:1.5;
}
