/* ==========================================================================
   Tokens — ported from the original's Core Framework output.
   Generator settings recovered from the live site:
     min viewport 360, max viewport 1600, base font 10, clamp unit 1vw.
   html font-size stays 10px: the whole scale depends on 1rem = 10px.
   ========================================================================== */

:root {
  /* ---- generator inputs, kept for reference ---- */
  --min-viewport: 360;
  --max-viewport: 1600;
  --base-font: 10;
  --clamp-unit: 1vw;
  --min-screen-width: 320px;
  --max-screen-width: 1400px;

  /* ---- brand ---- */
  --primary: #c62a27;    /* red */
  --secondary: #e4e2dd;  /* warm paper */
  --tertiary: #171f1e;   /* near-black green */
  --light: #e4e2dd;
  --dark: #232e2d;

  --bg-body: #e4e2dd;
  --bg-surface: #e4e2dd;
  --text-body: #232e2d;
  --text-title: #232e2d;
  --border-primary: #80808040;
  --shadow-primary: #00000026;

  /* alpha steps the design actually uses */
  --primary-10: #c62a271a;
  --primary-20: #c62a2733;
  --light-10: #e4e2dd1a;
  --light-20: #e4e2dd33;
  --light-30: #e4e2dd4d;
  --light-60: #e4e2dd99;
  --light-70: #e4e2ddb3;
  --tertiary-30: #171f1e4d;
  --tertiary-60: #171f1e99;
  --tertiary-80: #171f1ecc;

  /* tonal ramps */
  --primary-d-1: #9c2721;
  --primary-l-1: #d85f4f;
  --secondary-d-1: #b2b1ae;
  --secondary-d-2: #81807e;
  --tertiary-l-1: #3f4645;
  --tertiary-l-2: #6a7170;

  /* ---- type scale ----
     Steps 4xs through s are CORRECTED. The original emitted inverted clamps
     (min > max, negative vw slope), so CSS pinned them to their minimum and
     body copy rendered at 14.2px everywhere. See IMPROVEMENTS #9.
     Steps m and up are exactly as the original emitted them. */
  --text-4xs: clamp(1rem, calc(0.08065vw + 0.971rem), 1.1rem);
  --text-3xs: clamp(1.1rem, calc(0.08065vw + 1.071rem), 1.2rem);
  --text-2xs: clamp(1.2rem, calc(0.12097vw + 1.1564rem), 1.35rem);
  --text-xs: clamp(1.3rem, calc(0.16129vw + 1.2419rem), 1.5rem);
  --text-s: clamp(1.5rem, calc(0.16129vw + 1.4419rem), 1.7rem);
  --text-m: clamp(1.6rem, calc(0.19vw + 1.54rem), 1.8rem);
  --text-l: clamp(1.8rem, calc(0.55vw + 1.62rem), 2.4rem);
  --text-xl: clamp(2.02rem, calc(1.09vw + 1.68rem), 3.2rem);
  --text-2xl: clamp(2.28rem, calc(1.84vw + 1.69rem), 4.26rem);
  --text-3xl: clamp(2.56rem, calc(2.89vw + 1.64rem), 5.68rem);
  --text-4xl: clamp(2.88rem, calc(4.34vw + 1.49rem), 7.58rem);

  /* role aliases, matching the original's mapping.
     Display sizes carry an svh ceiling as well as their width term — house
     rule, and the exact bug that shipped on oneSTRNGTH. svh, never vh. */
  --hero-title-size: min(var(--text-3xl), 13svh);  /* measured 53.392px @1280 = text-3xl */
  --band-title-size: min(var(--text-3xl), 15svh);
  --nav-link-size: var(--text-m);                   /* measured 17.832px @1280 */
  --stat-size: min(var(--text-2xl), 12svh);
  --mission-size: min(clamp(2.2rem, calc(1.6vw + 1.7rem), 4rem), 9svh);

  /* ---- spacing ----
     --space-4xs corrected (was inverted); the rest as emitted. */
  --space-4xs: clamp(0.49rem, calc(0.02419vw + 0.4813rem), 0.52rem);
  --space-3xs: clamp(0.66rem, calc(0.04vw + 0.64rem), 0.7rem);
  --space-2xs: clamp(0.82rem, calc(0.16vw + 0.77rem), 0.99rem);
  --space-xs: clamp(1.02rem, calc(0.35vw + 0.91rem), 1.4rem);
  --space-s: clamp(1.28rem, calc(0.65vw + 1.07rem), 1.98rem);
  --space-m: clamp(1.6rem, calc(1.11vw + 1.24rem), 2.8rem);
  --space-l: clamp(2rem, calc(1.81vw + 1.42rem), 3.96rem);
  --space-xl: clamp(2.5rem, calc(2.87vw + 1.58rem), 5.6rem);
  --space-2xl: clamp(3.13rem, calc(4.44vw + 1.71rem), 7.92rem);
  --space-3xl: clamp(3.91rem, calc(6.75vw + 1.75rem), 11.19rem);
  --space-4xl: clamp(4.88rem, calc(10.13vw + 1.64rem), 15.83rem);

  /* section rhythm, measured on the original at 1280 */
  --section-space: 14.6064rem;   /* 146.064px, major sections */
  --section-space-sm: 10.39rem;  /* 103.9px, hero / mission / FAQ */
  --header-space: var(--space-s);
  --btn-space: var(--space-xs) var(--space-s);
  --card-space: var(--space-s);

  /* ---- radius ---- */
  --radius-xs: 0.4rem;
  --radius-s: clamp(0.6rem, calc(0.19vw + 0.54rem), 0.8rem);
  --radius-m: clamp(1rem, calc(0.19vw + 0.94rem), 1.2rem);
  --radius-l: clamp(1.6rem, calc(0.37vw + 1.48rem), 2rem);
  --radius-xl: clamp(2.6rem, calc(0.56vw + 2.42rem), 3.2rem);
  --radius-full: 999rem;

  /* ---- shadow ---- */
  --shadow-xs: 0 1px 2px var(--shadow-primary);
  --shadow-s: 0 1.5px 3px var(--shadow-primary);
  --shadow-m: 0 2px 6px var(--shadow-primary);
  --shadow-l: 0 3px 12px var(--shadow-primary);
  --shadow-xl: 0 6px 48px var(--shadow-primary);

  /* ---- grid ---- */
  --columns-1: repeat(1, minmax(0, 1fr));
  --columns-2: repeat(2, minmax(0, 1fr));
  --columns-3: repeat(3, minmax(0, 1fr));
  --columns-4: repeat(4, minmax(0, 1fr));

  /* ---- families ---- */
  --poppins: "Poppins", system-ui, -apple-system, "Helvetica Neue", sans-serif;
  --atkinson-hyperlegible: "Atkinson Hyperlegible", var(--poppins);
  --instrument-serif: "Instrument Serif", Georgia, "Times New Roman", serif;

  /* ---- motion, timings measured on the original ---- */
  --t-fast: 0.2s;
  --t-mid: 0.3s;
  --megamenu-offset: 1.358rem;   /* 13.58px translateY */
}
