/* BotYourBiz Design Tokens v0.1 — source: brand/botyourbiz-foundations.md (10-23)
   Layer 1 = primitives (never used by components). Layer 2 = semantic (components use ONLY these). */
/* Self-hosted fonts (SIL OFL 1.1, see fonts/OFL-*.txt). Latin subsets, variable weight. */
@font-face{font-family:"Nunito";src:url("/fonts/nunito-latin-wght.woff2") format("woff2");font-weight:200 1000;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Source Sans 3";src:url("/fonts/source-sans-3-latin-wght.woff2") format("woff2");font-weight:200 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root {
  /* ---------- PRIMITIVES: color ---------- */
  --cream-50:#FFFDF9; --cream-100:#FBF8F3; --cream-200:#F3EDE3; --cream-300:#E6DDCF;
  --teal-50:#E8F6F7; --teal-100:#C8EBEE; --teal-300:#6CC9D1; --teal-500:#1A99A5; --teal-600:#0B6E78; --teal-700:#085862;
  --sky-100:#DCEFFB; --sky-400:#5BB3E6;
  --coral-100:#FDE6DD; --coral-300:#F9A98F; --coral-400:#F4845F; --coral-500:#EC6A43; --coral-700:#B4472A;
  --ink-900:#1B2A41; --ink-700:#2E3F5C; --ink-500:#4A5872; --ink-300:#8A96AA; --ink-100:#C9D3E0;
  --white:#FFFFFF; --success-600:#2F7D4F; --danger-600:#B3261E;

  /* ---------- PRIMITIVES: type ---------- */
  --font-rounded:"Nunito","Quicksand","Varela Round",ui-rounded,"Segoe UI",system-ui,sans-serif;
  --font-humanist:"Source Sans 3","Source Sans Pro","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  /* 1.25 scale, base 16px */
  --size-xs:.75rem; --size-sm:.875rem; --size-md:1rem; --size-lg:1.25rem; --size-xl:1.5625rem;
  --size-2xl:1.9375rem; --size-3xl:2.4375rem; --size-4xl:3.0625rem;
  --weight-regular:400; --weight-semibold:600; --weight-bold:700; --weight-heavy:800;
  --leading-tight:1.15; --leading-snug:1.3; --leading-body:1.6;

  /* ---------- PRIMITIVES: space (4px grid), radius, shadow, motion ---------- */
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:24px; --space-6:32px; --space-7:48px; --space-8:64px; --space-9:96px;
  --radius-sm:8px; --radius-md:14px; --radius-lg:22px; --radius-xl:32px; --radius-pill:999px;
  --shadow-1:0 1px 2px rgba(27,42,65,.06),0 2px 6px rgba(27,42,65,.05);
  --shadow-2:0 4px 12px rgba(27,42,65,.08),0 12px 28px rgba(27,42,65,.06);
  --shadow-3:0 10px 30px rgba(27,42,65,.12);
  --ease-soft:cubic-bezier(.2,.8,.2,1); --dur-fast:120ms; --dur-base:200ms;

  /* ========== SEMANTIC (contrast ratios vs. paired bg, WCAG 2.x) ========== */
  --color-bg:var(--cream-100);
  --color-surface:var(--white);
  --color-surface-alt:var(--teal-50);
  --color-border:var(--cream-300);
  --color-text:var(--ink-900);            /* 13.63:1 on bg  AAA */
  --color-text-muted:var(--ink-500);      /* 6.77:1 on bg   AA */
  --color-text-inverse:var(--cream-100);  /* 13.63:1 on ink AAA */
  --color-text-inverse-muted:var(--ink-100); /* 9.54:1 on ink */
  --color-primary:var(--teal-600);        /* 5.64:1 as text/link on bg AA */
  --color-primary-hover:var(--teal-700);
  --color-on-primary:var(--white);        /* 5.97:1 AA */
  --color-primary-soft:var(--teal-100);   /* decorative fills only */
  --color-accent:var(--coral-400);        /* CTA fill */
  --color-accent-hover:var(--coral-500);
  --color-on-accent:var(--ink-900);       /* 5.72:1 on coral-400 AA (white fails: do not use) */
  --color-accent-text:var(--coral-700);   /* 5.12:1 on bg, for coral-colored text */
  --color-accent-soft:var(--coral-100);
  --color-footer-bg:var(--ink-900);
  --color-focus:var(--teal-600);          /* focus ring >=3:1 vs bg (5.64) */
  --color-success:var(--success-600); --color-danger:var(--danger-600);

  /* mascot slots (so siblings can recolor the bot) */
  --mascot-body:var(--teal-300); --mascot-body-shade:var(--teal-500);
  --mascot-screen:var(--ink-900); --mascot-face:var(--teal-50);
  --mascot-cheek:var(--coral-300); --mascot-accent:var(--coral-400);

  --font-heading:var(--font-rounded); --font-body:var(--font-humanist);
  --text-body:var(--size-md); --text-small:var(--size-sm);
  --text-h1:clamp(var(--size-2xl),5vw,var(--size-4xl)); --text-h2:clamp(var(--size-xl),3.5vw,var(--size-3xl)); --text-h3:var(--size-lg);
  --radius-control:var(--radius-pill); --radius-card:var(--radius-lg); --radius-section:var(--radius-xl);
  --shadow-card:var(--shadow-1); --shadow-card-hover:var(--shadow-2); --shadow-cta:var(--shadow-3);
  --gap-section:var(--space-9); --gap-stack:var(--space-5); --pad-card:var(--space-6);
  --container-max:1120px; --gutter:clamp(16px,4vw,32px);
}
@media (prefers-reduced-motion:reduce){:root{--dur-fast:0ms;--dur-base:0ms}}
