/* ==========================================================================
   AceAssist Logistics — Design tokens
   "Ink & Signal": near-black ground, warm paper, one amber accent.
   ========================================================================== */

/* --- Typefaces ---------------------------------------------------------- */

/* Archivo Variable — the primary typeface. Headings AND body. */
@font-face {
  font-family: "Archivo";
  font-style: normal;
  font-weight: 400 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/archivo-var-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}

/* IBM Plex Mono — a SIGNATURE ACCENT, never a reading font.
   Indices, kickers, labels, mode codes, journey stages, contact data only.
   Never paragraphs, never running text. */
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/plexmono-400-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/plexmono-500-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  /* --- Colour ----------------------------------------------------------
     Measured contrast ratios (WCAG 2.1, computed — not estimated):

       paper   on ink-900 .... 17.20 : 1   AAA
       steel-l on ink-900 ....  7.19 : 1   AAA
       signal  on ink-900 ....  5.64 : 1   AA  (ok for text on dark)
       ink-900 on signal  ....  5.64 : 1   AA  (button fill)
       steel   on paper   ....  5.37 : 1   AA

       signal-text on paper ..  4.87 : 1   AA  (accent text on paper)

       signal  on paper   ....  3.05 : 1   >>> NEVER used as text. <<<
       On paper, --signal is rules, borders and icons only. Any accent-
       coloured TEXT on paper uses --signal-text instead. On ink, --signal
       is fine as text at 5.64 : 1.
     -------------------------------------------------------------------- */

  --ink-900: #0e1116; /* dominant dark — hero, journey, CTA, footer */
  --ink-800: #151a21; /* raised surface on dark */
  --ink-700: #1d242d; /* hairline-adjacent fill */

  --paper: #f5f3ef; /* warm off-white page ground */
  --paper-2: #ebe8e2; /* alternating band */

  --signal: #e0683a; /* THE accent. Used sparingly. */
  --signal-d: #c4552b; /* hover / active */
  --signal-text: #b24a20; /* the accent, darkened for small TEXT on paper */

  --steel: #5a6570; /* secondary text on paper */
  --steel-l: #97a0a9; /* secondary text on ink */

  --line: rgba(14, 17, 22, 0.12); /* hairline on paper */
  --line-strong: rgba(14, 17, 22, 0.22);
  --line-i: rgba(245, 243, 239, 0.16); /* hairline on ink */
  --line-i-strong: rgba(245, 243, 239, 0.32);

  /* Mode tints — separated by value and temperature, not by hue riot.
     Used as photo washes and hairline accents only; --signal stays the one
     shared accent so Sea/Air/Road read as a single system. */
  --mode-sea: #1c3a4a;
  --mode-air: #3e4a57;
  --mode-road: #4a3a2e;

  /* --- Type ------------------------------------------------------------ */
  --font-sans: "Archivo", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, "SF Mono",
    Menlo, Consolas, monospace;

  --fs-display: clamp(2.75rem, 1.6rem + 5.2vw, 6.25rem); /*  44 → 100 */
  --fs-h1: clamp(2.25rem, 1.5rem + 3.2vw, 4rem); /*  36 →  64 */
  --fs-h2: clamp(1.75rem, 1.3rem + 2.1vw, 3rem); /*  28 →  48 */
  --fs-h3: clamp(1.25rem, 1.05rem + 0.9vw, 1.75rem); /*  20 →  28 */
  --fs-lead: clamp(1.0625rem, 1rem + 0.4vw, 1.3125rem); /*  17 →  21 */
  --fs-body: 1.0625rem; /*  17    */
  --fs-sm: 0.9375rem; /*  15    */
  --fs-mono: 0.75rem; /*  12    */
  --fs-mono-lg: 0.8125rem; /*  13    */

  --lh-display: 0.98;
  --lh-heading: 1.06;
  --lh-body: 1.65;

  --ls-display: -0.035em;
  --ls-heading: -0.025em;
  --ls-mono: 0.14em;

  --measure: 62ch;

  /* --- Space (4px base) ------------------------------------------------- */
  --s-1: 0.25rem;
  --s-2: 0.5rem;
  --s-3: 0.75rem;
  --s-4: 1rem;
  --s-6: 1.5rem;
  --s-8: 2rem;
  --s-12: 3rem;
  --s-16: 4rem;
  --s-24: 6rem;
  --s-32: 8rem;
  --s-40: 10rem;

  --section-y: clamp(4.5rem, 9vw, 9.5rem);
  --container: 1280px;
  --gutter: clamp(1.25rem, 4vw, 3.5rem);

  /* --- Motion ----------------------------------------------------------
     Slow, deliberate, no bounce. Nothing here springs or overshoots. */
  --ease: cubic-bezier(0.16, 0.84, 0.44, 1);
  --t-fast: 200ms;
  --t-base: 380ms;
  --t-slow: 700ms;
  --t-fade: 900ms; /* hero mode crossfade */

  --header-h: 72px;
}

@media (min-width: 900px) {
  :root {
    --header-h: 84px;
  }
}
