/* Vellspan Systems design tokens, v1 (2026-10-08). The ONE palette file.
   A colour change is an edit to the "brand primitives" block only. Every stylesheet and page reads
   the semantic roles below it and never a literal hex (site/tests/test_brand.py enforces this).
   Contrast ratios are listed in BRAND.md and re-computed by the tests. */

:root {
  /* ---- brand primitives (change here only) ---------------------------------------------------------------- */
  --c-linen: #F7F4EC;        /* the ground: warm daylight paper */
  --c-linen-2: #EDE8DB;      /* raised linen: bands */
  --c-white: #FFFFFF;        /* cards on a linen band, form fields */
  --c-ink: #15201C;          /* text on linen */
  --c-ink-2: #3B4842;        /* secondary text */
  --c-ink-3: #55625B;        /* captions */
  --c-forest: #0F4C3F;       /* Loop Green: the brand. Big surfaces, links, the ring in the mark */
  --c-forest-2: #1A6652;     /* forest, lighter / hovered surfaces */
  --c-forest-deep: #0A3A30;  /* deeper forest: the footer and the base of hero bands (added 2026-10-08) */
  --c-sage: #DCE8DF;         /* tint of the brand: tags, quiet panels, hover fill */
  --c-copper: #A94B1C;       /* THE MEND: the one action colour. Buttons, and the repaired link in the mark */
  --c-copper-hi: #8E3E16;    /* copper pressed / hovered */
  --c-copper-soft: #F1DCCB;  /* copper tint behind notes */
  --c-chalk: #F7F4EC;        /* text on forest */
  --c-chalk-2: #CFE0D5;      /* secondary text on forest */
  --c-line: #D6CFBD;         /* hairlines on linen */
  --c-line-2: #B9B19B;       /* stronger hairlines, dashed slots */
  --c-line-forest: #3B7A69;  /* hairlines on forest */
  --c-flag: #B3261E;         /* errors only */
  --c-slot: #FFF1B8;         /* "Sean supplies this" placeholder chips. Never part of the finished brand */
  --c-slot-ink: #3B2F00;

  /* ---- semantic roles (read these) ------------------------------------------------------------------------ */
  --bg: var(--c-linen);
  --bg-2: var(--c-linen-2);
  --surface: var(--c-white);
  --fg: var(--c-ink);
  --fg-2: var(--c-ink-2);
  --fg-3: var(--c-ink-3);
  --line: var(--c-line);
  --line-strong: var(--c-line-2);
  --line-on-brand: var(--c-line-forest);
  --brand: var(--c-forest);
  --brand-2: var(--c-forest-2);
  --brand-deep: var(--c-forest-deep);
  --tint: var(--c-sage);
  --hilite: var(--c-sage);          /* the highlighter behind the key phrase in a headline */
  --on-hilite: var(--c-ink);
  --hilite-on-brand: var(--c-forest-2);   /* the same marker, on a forest band: tone-on-tone, chalk text stays on top */
  --action: var(--c-copper);
  --action-hi: var(--c-copper-hi);
  --action-soft: var(--c-copper-soft);
  --on-action: var(--c-white);
  --on-brand: var(--c-chalk);
  --on-brand-2: var(--c-chalk-2);
  --error: var(--c-flag);
  --slot: var(--c-slot);
  --slot-ink: var(--c-slot-ink);

  /* ---- type ------------------------------------------------------------------------------------------------ */
  --ff-display: "Source Serif 4", "Source Serif 4 Fallback", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --ff-text: "Figtree", "Figtree Fallback", "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;
  --ff-mono: "IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;
  --fs-display: clamp(2.5rem, 1.45rem + 3.6vw, 4.4rem);
  --fs-h2: clamp(1.9rem, 1.35rem + 1.9vw, 2.85rem);
  --fs-h3: 1.3125rem;
  --fs-lede: clamp(1.1875rem, 1.1rem + 0.4vw, 1.375rem);
  --fs-body: 1.0625rem;
  --fs-small: 0.9375rem;
  --fs-micro: 0.8125rem;

  /* ---- space, shape ---------------------------------------------------------------------------------------- */
  --s1: 4px; --s2: 8px; --s3: 12px; --s4: 16px; --s5: 24px; --s6: 32px; --s7: 48px; --s8: 64px; --s9: 96px;
  --gutter: clamp(20px, 5vw, 40px);
  --max: 1160px;
  --measure: 62ch;
  --r: 8px;
  --r-lg: 14px;
  --shadow: 0 1px 2px rgba(21, 32, 28, .05), 0 12px 32px rgba(21, 32, 28, .08);   /* the one card shadow: soft, offset down */
  --shadow-lift: 0 2px 4px rgba(10, 58, 48, .18), 0 24px 56px rgba(10, 58, 48, .28); /* a white card sitting on a forest band */
}
