/* ============================================================
   TOKENS — brand design decisions as CSS custom properties.
   Single source of truth for color, type, space, radius.
   Nothing below this file should hard-code these values.
   ============================================================ */

:root {
  /* ---- Brand color palette (from brand book) ---- */
  --navy: #003366;      /* primary — headings, structure, trust   */
  --sky: #0070c0;       /* secondary — airflow, links, accents     */
  --orange: #ff6600;    /* signal — CTAs, the Comfort Arc (≤15%)   */
  --white: #ffffff;
  --frost: #e8edf2;     /* cool neutral surface                    */
  --sand: #f5f0e8;      /* warm neutral surface                    */
  --steel: #5a7fa8;     /* muted supportive blue                   */
  --grey: #b0bec5;      /* borders, dividers, disabled             */
  --charcoal: #2c2c2c;  /* body text                               */

  /* ---- Semantic aliases ---- */
  --text: var(--charcoal);
  --text-muted: var(--steel);
  --heading: var(--navy);
  --surface: var(--white);
  --surface-cool: var(--frost);
  --surface-warm: var(--sand);
  --border: var(--grey);
  --link: var(--sky);
  --link-hover: var(--navy);

  /* ---- Typography ---- */
  --font-head: "Plus Jakarta Sans", "Segoe UI", system-ui, sans-serif;
  --font-body: "Inter", "Segoe UI", system-ui, sans-serif;

  --fs-xs: 0.8125rem;   /* 13px */
  --fs-sm: 0.9375rem;   /* 15px */
  --fs-base: 1rem;      /* 16px */
  --fs-md: 1.125rem;    /* 18px */
  --fs-lg: 1.375rem;    /* 22px */
  --fs-xl: 1.75rem;     /* 28px */
  --fs-2xl: 2.25rem;    /* 36px */
  --fs-3xl: 3rem;       /* 48px */
  --fs-hero: clamp(2.25rem, 1.4rem + 3.6vw, 3.5rem);

  --lh-tight: 1.15;
  --lh-snug: 1.3;
  --lh-body: 1.6;

  --fw-normal: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;
  --fw-extra: 800;

  --tracking-tight: -0.02em;
  --tracking-eyebrow: 0.14em;

  /* ---- Spacing (8px baseline grid) ---- */
  --space-1: 0.5rem;    /* 8  */
  --space-2: 1rem;      /* 16 */
  --space-3: 1.5rem;    /* 24 */
  --space-4: 2rem;      /* 32 */
  --space-5: 3rem;      /* 48 */
  --space-6: 4rem;      /* 64 */
  --space-7: 6rem;      /* 96 */
  --space-8: 8rem;      /* 128 */

  /* ---- Layout ---- */
  --container: 1200px;  /* max content width          */
  --content: 680px;     /* max readable measure        */
  --gutter: clamp(1.25rem, 4vw, 3rem); /* outer margins (~48px) */

  /* ---- Radius (brand: precise, small radii) ---- */
  --radius-sm: 2px;
  --radius: 8px;
  --radius-lg: 16px;
  --radius-pill: 999px;

  /* ---- Elevation (navy-tinted, subtle) ---- */
  --shadow-sm: 0 1px 2px rgba(0, 51, 102, 0.06);
  --shadow: 0 6px 20px rgba(0, 51, 102, 0.08);
  --shadow-lg: 0 18px 48px rgba(0, 51, 102, 0.12);

  /* ---- Motion ---- */
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --dur: 0.25s;
}
