/* LumiScrubs design tokens — 1b end-state, confirmed
   Generated 25 July 2026. Single source for the build.
   Contrast ratios are measured, not estimated. */

:root {
  /* ---- Ink ---- */
  --lumi-ink-900: #0B1A21;   /* primary text, ink fields. 17.0:1 on paper-50 */
  --lumi-ink-800: #122B34;
  --lumi-harbor-700: #1C424F; /* primary-button hover */
  --lumi-slate-600: #35505A;  /* body text on paper. 8.2:1 */
  --lumi-slate-500: #556D77;  /* captions 10-13px. 5.3:1 — the floor */

  /* ---- Paper ---- */
  --lumi-paper-50:  #FCFAF6;  /* page field */
  --lumi-paper-100: #F2ECE2;  /* alternate section field, spec rows */
  --lumi-paper-200: #E4DCCD;
  --lumi-paper-300: #D0C5B2;  /* spec-row rail, disabled fills */

  /* ---- Studio (matched to product photography) ---- */
  --lumi-studio-100: #E9EBEC;
  --lumi-studio-200: #D2D7D9;

  /* ---- Accent: citron. PAINT, NOT INK ---- */
  --lumi-citron:     #E3F03D; /* fills and rails only. 1.2:1 on paper — never type */
  --lumi-citron-600: #A8B510; /* fills, rails, focus rings. 2.2:1 — never type */
  --lumi-citron-ink: #626A07; /* the ONLY accent that may set type.
                                 5.6:1 on paper-50, 5.0:1 on paper-100 */

  /* Citron on ink-900 is 14.2:1 — the one place the accent carries small type. */

  /* ---- Lines ---- */
  --lumi-line-hair:   rgba(11, 26, 33, 0.14);
  --lumi-line-mid:    rgba(11, 26, 33, 0.20);
  --lumi-line-strong: #0B1A21;

  /* ---- Type ---- */
  /* --lumi-font-display: Archivo, "Helvetica Neue", Helvetica, sans-serif;  — HELD BACK until page cutover: legacy lumi-ui.css owns these names with !important (2026-07-25) */
  /* --lumi-font-body:    Archivo, "Helvetica Neue", Helvetica, sans-serif;  — HELD BACK until page cutover: legacy lumi-ui.css owns these names with !important (2026-07-25) */
  --lumi-font-editorial: Newsreader, Georgia, "Times New Roman", serif;

  --lumi-wdth-display: 118;  /* D1, D2 */
  --lumi-wdth-d3:      112;  /* D3 */
  --lumi-wdth-normal:  100;  /* For Teams, scenario pages, all body */

  --lumi-size-d1: 4.5rem;    /* 72 / 44 mobile */
  --lumi-size-d2: 2.75rem;   /* 44 / 32 */
  --lumi-size-d3: 1.75rem;   /* 28 / 24 */
  --lumi-size-e1: 2.5rem;    /* 40 / 30 — editorial, Newsreader 500 */
  --lumi-size-e2: 1.375rem;  /* 22 / 19 — pull quote, Newsreader 400 italic */
  --lumi-size-h:  1.25rem;   /* 20 / 18 — Archivo 600 */
  --lumi-size-body: 1.0625rem; /* 17 / 16 */
  --lumi-size-data: 0.9375rem; /* 15, tabular */
  --lumi-size-label: 0.6875rem; /* 11, caps, 0.16em */

  /* ---- Spacing, 4px base ---- */
  --lumi-space-1: 4px;
  --lumi-space-2: 8px;
  --lumi-space-3: 12px;
  --lumi-space-4: 16px;
  --lumi-space-6: 24px;
  --lumi-space-8: 32px;
  --lumi-space-12: 48px;
  --lumi-space-16: 64px;
  --lumi-space-24: 96px;

  --lumi-section-y: 96px;      /* 56px mobile */
  --lumi-card-pad: 28px;       /* 20px mobile */
  --lumi-gutter: 32px;         /* 16px mobile */

  /* ---- Radius ---- */
  --lumi-radius-0: 0;      /* cards, swatches, images */
  --lumi-radius-1: 2px;    /* buttons, inputs */
  --lumi-radius-pill: 999px; /* chips only */

  /* ---- Elevation — deliberately near-absent ---- */
  --lumi-e0: none;
  --lumi-e1: 0 1px 2px rgba(11,26,33,0.08), 0 8px 24px rgba(11,26,33,0.06);
  --lumi-e2: 0 2px 4px rgba(11,26,33,0.10), 0 18px 48px rgba(11,26,33,0.12);

  /* ---- Targets ---- */
  --lumi-tap-min: 44px;

  /* ---- Motion ---- */
  --lumi-ease: cubic-bezier(0.2, 0, 0.2, 1);
  --lumi-dur-fast: 120ms;
  --lumi-dur-slow: 240ms;
}

/* Display: Archivo 600 at expanded width, uppercase. Brand + men's layer. */
.lumi-d1, .lumi-d2, .lumi-d3 {
  font-family: var(--lumi-font-display);
  font-weight: 600;
  text-transform: uppercase;
  font-variation-settings: "wdth" var(--lumi-wdth-display);
  letter-spacing: -0.025em;
  line-height: 0.96;
}
.lumi-d3 { font-variation-settings: "wdth" var(--lumi-wdth-d3); line-height: 1.05; }

/* On For Teams and the scenario pages the display drops to normal width and
   sentence case. Same face — not a family swap. */
.lumi-warm .lumi-d1,
.lumi-warm .lumi-d2,
.lumi-warm .lumi-d3 {
  text-transform: none;
  font-variation-settings: "wdth" var(--lumi-wdth-normal);
}

/* Editorial voice ONLY: Fabric, About, Journal, the For Teams certainty
   promise, pull quotes. Display type never ships as serif. */
.lumi-e1 { font-family: var(--lumi-font-editorial); font-weight: 500; letter-spacing: -0.02em; line-height: 1.05; }
.lumi-e2 { font-family: var(--lumi-font-editorial); font-weight: 400; font-style: italic; line-height: 1.3; }

/* Every price, spec and size figure. */
.lumi-num { font-variant-numeric: tabular-nums; }

/* The rule motif — same chamfered terminal as the lettermark's foot. */
.lumi-rule {
  height: 4px;
  background: var(--lumi-line-strong);
  clip-path: polygon(0 0, 100% 0, calc(100% - 4px) 100%, 0 100%);
}
