/* ==========================================================================
   GoLeadUs v6 "Quiet Authority" — token layer
   Load this FIRST, before base.css. Never write a hex value into a component.
   Ratios in comments are WCAG 2.1, recomputed by `npm run check`.
   ========================================================================== */

/* The site commits to one visual world: a paper ground with deliberate ink
   bands. There is no auto dark mode, because inverting the page would invert
   the art direction. Every colour is painted explicitly. */

:root {
  /* --- ground -------------------------------------------------------- */
  --paper:        #FFFFFF;
  --bone:         #F4F3F1;  /* alternate band. warm, not blue grey */
  --ink:          #0B0B0C;  /* inverted band ground. never pure #000 */
  --graphite:     #17171A;  /* raised surface inside an ink band */

  /* --- text ---------------------------------------------------------- */
  --text:         #0B0B0C;  /* 19.67 on paper, 17.74 on bone */
  --text-2:       #6B6B70;  /* 5.30 on paper, 4.78 on bone. never on ink */
  --text-inv:     #FFFFFF;  /* 19.67 on ink */
  --text-2-inv:   #A5A5AA;  /* 8.02 on ink, 7.29 on graphite. fails on paper */

  /* --- lines --------------------------------------------------------- */
  --hairline:     #DEDDD9;  /* decoration only, never a control boundary */
  --border:       #6B6B70;  /* control boundaries. 5.30 on paper */
  --hairline-inv: #2E2E33;

  /* --- accent. two roles: primary CTA fill, focus ring. nothing else --- */
  --accent:       #B4571E;  /* white label sits at 4.86 */
  --accent-hover: #8F4416;  /* white label at 6.99 */
  --accent-inv:   #C96A2E;  /* inside an ink band, carries an INK label at 5.23 */
  --on-accent:        #FFFFFF;
  --on-accent-inv:    #0B0B0C;

  /* --- semantic. form validation only, not brand colours -------------- */
  --danger:       #9B1C1C;  /* 8.15 on paper */
  --danger-inv:   #F1857D;  /* 7.86 on ink */

  /* --- type ---------------------------------------------------------- */
  --sans: "Archivo", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  --fs-display: clamp(3rem, 8.4vw, 6.75rem);
  --fs-h2:      clamp(2rem, 4.4vw, 3.25rem);
  --fs-h3:      clamp(1.25rem, 2.1vw, 1.5rem);
  --fs-lede:    clamp(1.125rem, 1.9vw, 1.3125rem);
  --fs-body:    1.0625rem;   /* 17px */
  --fs-small:   0.9375rem;   /* 15px */
  --fs-label:   0.6875rem;   /* 11px */

  --lh-display: 0.90;
  --lh-h2:      1.00;
  --lh-h3:      1.18;
  --lh-body:    1.65;

  --tr-display: -0.035em;
  --tr-h2:      -0.030em;
  --tr-h3:      -0.018em;
  --tr-label:    0.16em;

  /* --- space. base 8, 4 for optical nudges only ----------------------- */
  --s-1:   4px;  --s-2:   8px;  --s-3:  12px;  --s-4:  16px;
  --s-5:  24px;  --s-6:  32px;  --s-7:  48px;  --s-8:  64px;
  --s-9:  96px;  --s-10:128px;  --s-11:192px;

  --section-y:  var(--s-10);
  --section-y-m: 72px;
  --hero-y:     var(--s-11);
  --gutter:     var(--s-5);
  --page-max:   1440px;
  --measure:    68ch;

  /* --- radii. everything else is 0 ------------------------------------ */
  --r-inner: 2px;
  --r-outer: 4px;

  /* --- motion. opacity and transform only ----------------------------- */
  --ease:       cubic-bezier(.16, 1, .3, 1);
  --t-reveal:   480ms;
  --t-state:    180ms;
  --t-panel:    150ms;
}

/* Banned from this stylesheet and every other one in this repo:
   box-shadow · linear-gradient · radial-gradient · border-radius above 4px
   `npm run check` fails the build if any of them appear. */
