/* Wykeham spacing — 4px base unit, editorial jumps at the large end. */
:root{
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:20px;
  --space-6:24px;
  --space-8:32px;
  --space-10:40px;
  --space-12:48px;
  --space-16:64px;
  --space-20:80px;
  --space-24:96px;
  --space-32:128px;
  --space-40:160px;

  /* semantic rhythm */
  --gutter:32px;              /* column gutter */
  /* Section rhythm. Tightened from 96/64: at 96 the gap between two content
     blocks was 192px, and on About (128) it was 256px — 28% of a 900px screen
     with nothing in it, which read as a section failing to load rather than as
     deliberate space. 80 puts the standard gap at 160px, 18% of the fold.

     HELD THROUGH THE 2026 REDESIGN. The design bundle specified 96/64 throughout,
     having been drawn on a fixed 1440px canvas where 192px of gap is proportionally
     far less severe. The decision above was made against real viewports and wins:
     every 96 in the design files converts to 80, every 64 to 48. The seam rule the
     designs describe is rung-agnostic and holds unchanged at these values.
     Do not "restore" 96/64 from the design files. */
  --section-y:var(--space-20);      /* was --space-24 */
  --section-y-tight:var(--space-12);/* was --space-16 — thin single-block sections */
  --stack-label:var(--space-5);/* eyebrow label to heading */
  --stack-heading:var(--space-6);/* heading to body */
  --stack-para:var(--space-4);
  --card-pad:var(--space-8);

  /* --- ADDED FOR SITE BUILD (client decision, 10 September 2026) ---
     Banner heights. Measured against Altman Solon, AlixPartners, Simon-Kucher
     and Eden McCallum at 1440×900: interior banners run 410–530 including the
     header, closing bands 317–378. The sector and service heroes were 818–841
     because the body paragraphs sat inside them; those now sit in the intro
     band beneath (.herointro), and the hero pays 32 under the header and 48
     below. The closing band pays 64, not the 80 section rung. Home keeps
     --hero-h. Do not "restore" the design files' hero composition. */
  --hero-pad-top:var(--space-8);
  --hero-pad-bottom:var(--space-12);
  --cta-y:var(--space-16);

  /* --- ADDED FOR SITE BUILD (chunk 1) ---
     Button padding, from components/core/Button.jsx. The lg pair maps exactly onto the
     existing scale (16/32); the md pair (13/26) sits deliberately off-scale in the
     reference component to keep the 14px label optically centred in a 40px control, so it
     is recorded here rather than rounded to --space-3/--space-6. */
  --btn-pad-y-lg:var(--space-4);
  --btn-pad-x-lg:var(--space-8);
  --btn-pad-y-md:13px;
  --btn-pad-x-md:26px;
  /* --- ADDED FOR SITE BUILD (2026-09-10) ---
     The header's Contact button. Every design file draws it at 9px 20px on a
     14px label — tighter than md (13/26) so it sits inside the 72px bar. */
  --btn-pad-y-nav:9px;
  --btn-pad-x-nav:20px;

  /* --- ADDED FOR SITE BUILD (chunk 3) ---
     Form control metrics, transcribed from components/forms/Input.jsx and
     Checkbox.jsx, which ship them raw. Wykeham controls have no fixed height:
     this padding is what carries the vertical rhythm, so it is a real design
     value rather than an arbitrary one. The checkbox offset is an optical
     correction that sits the 16px box on the first line of its label. */
  --field-pad-y:10px;
  --checkbox-offset:2px;
  /* --- ADDED FOR SITE BUILD (2026 redesign) ---
     Qualifier chip padding, from TEAM FINAL's "On every project" row (10×18).
     Off-scale on purpose, like the md button: a 16–18px label centred in a
     low panel. */
  --chip-pad-y:10px;
  --chip-pad-x:18px;
}
