/* ============================================================
   QuestLaw marketing site — design tokens (single source).
   Ported from the QuestLaw design system, with the landing's
   cool-grey neutral ramp baked in (no per-page override blocks).
   Shared by the landing and the docs page.
   ============================================================ */
:root {
  /* --- Neutral ramp: cool grey (landing/docs), pure-white surfaces --- */
  --paper:          oklch(1 0 0);
  --paper-sunk:     oklch(0.972 0.0015 264);
  --surface:        oklch(1 0 0);
  --surface-raised: oklch(1 0 0);
  --ink:            oklch(0.205 0.006 268);
  --ink-soft:       oklch(0.325 0.006 266);
  --ink-2:          oklch(0.418 0.006 264);
  --muted:          oklch(0.540 0.006 262);
  --faint:          oklch(0.705 0.005 260);
  --rule:           oklch(0.912 0.003 258);
  --rule-strong:    oklch(0.828 0.004 256);

  /* --- Brand: oxblood --- */
  --oxblood:        oklch(0.448 0.152 26);
  --oxblood-hover:  oklch(0.402 0.150 26);
  --oxblood-press:  oklch(0.352 0.140 26);
  --oxblood-bright: oklch(0.560 0.190 30);
  --oxblood-tint:   oklch(0.958 0.026 32);
  --oxblood-tint-2: oklch(0.918 0.045 32);
  --oxblood-line:   oklch(0.840 0.078 30);
  --on-oxblood:     oklch(0.985 0.010 80);

  /* --- Semantics (used sparingly) --- */
  --success:      oklch(0.500 0.090 150);
  --success-tint: oklch(0.930 0.034 150);
  --success-line: oklch(0.800 0.060 150);
  --caution:      oklch(0.585 0.105 68);
  --caution-tint: oklch(0.930 0.046 76);
  --caution-line: oklch(0.800 0.070 72);
  --danger:       oklch(0.525 0.180 27);
  --danger-tint:  oklch(0.935 0.040 27);
  --danger-line:  oklch(0.800 0.090 27);
  --info:         oklch(0.505 0.066 248);
  --info-tint:    oklch(0.930 0.026 248);
  --info-line:    oklch(0.800 0.045 248);

  /* --- Type families / weights --- */
  --font-display: "Bricolage Grotesque", "Archivo", system-ui, sans-serif;
  --font-sans:    "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono:    "IBM Plex Mono", ui-monospace, "SF Mono", "Cascadia Code", monospace;

  /* --- Line heights / tracking --- */
  --leading-tight:   1.04;
  --leading-snug:    1.22;
  --leading-normal:  1.55;
  --leading-relaxed: 1.7;
  --tracking-tight:  -0.03em;
  --tracking-snug:   -0.01em;
  --tracking-wide:   0.02em;
  --tracking-eyebrow: 0.08em;

  /* --- Spacing (4px grid) --- */
  --site-max:    1120px;
  --site-narrow: 760px;

  /* --- Elevation: radii, shadows, focus ring --- */
  --shape-xs:   4px;
  --shape-sm:   6px;
  --shape-md:   10px;
  --shape-lg:   14px;
  --shape-xl:   20px;
  --shape-pill: 999px;
  --shadow-xs: 0 1px 1px oklch(0.30 0.02 60 / 0.05);
  --shadow-sm: 0 1px 2px oklch(0.30 0.02 60 / 0.06),
               0 2px 6px oklch(0.30 0.02 60 / 0.05);
  --shadow-md: 0 2px 4px oklch(0.30 0.02 60 / 0.06),
               0 8px 20px oklch(0.30 0.02 60 / 0.09);
  --shadow-lg: 0 4px 8px oklch(0.30 0.02 60 / 0.07),
               0 18px 48px oklch(0.30 0.02 60 / 0.12);
  --ring-width: 3px;
  --ring: var(--oxblood);
  --ring-shadow: 0 0 0 var(--ring-width) color-mix(in oklch, var(--ring) 26%, transparent);

  /* --- Motion --- */
  --duration-fast: 140ms;
  --duration-base: 220ms;
  --duration-slow: 360ms;
  --ease-out: cubic-bezier(0.22, 0.61, 0.36, 1);
  --ease-in:  cubic-bezier(0.4, 0, 1, 1);

  color-scheme: light;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --duration-fast: 0.001ms;
    --duration-base: 0.001ms;
    --duration-slow: 0.001ms;
  }
}
