/* Design tokens: the single source for palette, type, and spacing. Pages and
   base.css reference these custom properties; no scattered hex or magic numbers. */

:root {
  /* ── Palette (decided 2026-07-09; see docs/decisions.md, CLAUDE.md § Brand palette) ── */

  /* Primary: headers, nav, headings, links. White on --teal passes AA; --teal
     on --cream passes AA (~4.65:1). */
  --teal: #007868;

  /* Supporting: fills, tags, borders, illustration only. Fails WCAG AA as text on --cream. */
  --blue: #6DA7EC;

  /* Accent: button/badge fills; pair with --ink text, not white (white on --orange fails AA). */
  --orange: #F09978;

  /* Supporting: fills, tags, section backgrounds, hairlines. Fails WCAG AA as text on --cream. */
  --lightgreen: #BCD1CA;

  /* Background. */
  --cream: #F0EEE6;

  /* Body text, on --cream, --orange, or --lightgreen. Passes AA comfortably on any light fill. */
  --ink: #17241F;

  /* White for text/fills on --teal (skip link, footer, band). Not a brand palette
     colour; kept here as the single source so base.css carries no literal hex. */
  --white: #ffffff;

  /* ── Type ──────────────────────────────────────────────────────────────────
     Source Serif 4 (headings, wordmark) + Source Sans 3 (body/UI), self-hosted
     from site/fonts/ (see @font-face declarations below). The system stack
     stays as the fallback in each token, so a missing woff2 degrades to it
     rather than breaking layout. */
  --font-serif: 'Source Serif 4', 'Iowan Old Style', 'Palatino Linotype', Palatino, 'Book Antiqua', Georgia, serif;
  --font-sans: 'Source Sans 3', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;

  /* Modular scale, ~1.25 (major third). Display sizes clamp for fluid headings. */
  --step--1: 0.833rem;                        /* fine print, captions */
  --step-0: 1rem;                             /* body */
  --step-1: 1.25rem;                          /* lede, large body */
  --step-2: clamp(1.4rem, 1.15rem + 1.1vw, 1.75rem);   /* h3 */
  --step-3: clamp(1.75rem, 1.4rem + 1.7vw, 2.35rem);   /* h2 */
  --step-4: clamp(2.2rem, 1.7rem + 2.6vw, 3.25rem);    /* h1 */
  --step-5: clamp(2.6rem, 1.9rem + 3.6vw, 4.25rem);    /* home hero h1 */

  --leading-body: 1.62;
  --leading-tight: 1.15;
  --tracking-tight: -0.01em;

  /* ── Spacing (rem rhythm) ── */
  --space-2xs: 0.25rem;
  --space-xs: 0.5rem;
  --space-sm: 0.75rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2.5rem;
  --space-2xl: 4rem;
  --space-3xl: 6rem;

  /* ── Layout ──────────────────────────────────────────────────────────────
     One centered column: --wrap is the shared container for header, main, and
     footer (so their left/right edges align and the whole layout centers on the
     page); --measure caps running text just inside it (~72ch) for readability. */
  --measure: 42rem;
  --wrap: 46rem;
  --gutter: var(--space-lg);
  --radius: 2px;
  --hairline: 1px solid color-mix(in srgb, var(--ink) 14%, transparent);
}
