/*
  Design tokens — ROST Premium
*/

:root {
  /* Color */
  --graphite-950: #14171a;
  --graphite-900: #1c2024;
  --graphite-700: #3a3f45;
  --warm-white-50: #faf8f5;
  --warm-white-100: #f1ede6;
  --metal-400: #9ca3aa;
  --metal-300: #c3c8cd;
  --metal-200: #e2e5e8;
  --brand-accent: #2f6f5e;
  --brand-accent-hover: #26594b;
  --brand-accent-light: #6fae9c;
  --accent-contrast: #faf8f5;
  --danger: #a8402f;
  --focus-ring: #2f6f5e;

  /* V2 — deep blue-graphite, derived to sit next to the logo's own teal
     without introducing an unrelated hue (brand-accent stays the single
     source of truth for "green"; this is only ever a dark neutral). */
  --ink-950: #0c1118;
  --ink-900: #131a24;
  --ink-800: #1b2530;

  /* Film-layer gradient stops: translucent poly-film material feel,
     reused by the hero/company visuals and stock-program panel. */
  --film-teal-a: rgba(111, 174, 156, 0.35);
  --film-teal-b: rgba(47, 111, 94, 0.18);
  --film-ink-a: rgba(12, 17, 24, 0.9);
  --film-ink-b: rgba(27, 37, 48, 0.55);

  /* Surfaces */
  --surface-page: var(--warm-white-50);
  --surface-inverted: var(--graphite-950);
  --surface-card: #ffffff;
  --border-hairline: rgba(20, 23, 26, 0.12);
  --border-hairline-inverted: rgba(250, 248, 245, 0.16);

  /* Typography */
  --font-heading: -apple-system, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --font-body: -apple-system, "Segoe UI", "Helvetica Neue", Arial, sans-serif;

  --step-base: 1rem;       /* 16px */
  --scale-ratio: 1.25;     /* Major Third */

  --text-xs: 0.8rem;
  --text-sm: 0.9rem;
  --text-base: 1rem;
  --text-md: 1.25rem;
  --text-lg: 1.563rem;
  --text-xl: 1.953rem;
  --text-2xl: 2.441rem;
  --text-3xl: 3.052rem;
  --text-4xl: 3.815rem;
  --text-hero: clamp(2.5rem, 6vw + 1rem, 6rem); /* fluid 40px -> 96px */

  --leading-tight: 1.02;
  --leading-snug: 1.15;
  --leading-normal: 1.5;
  --leading-relaxed: 1.7;

  /* Spacing (fluid, mobile-first base) */
  --space-3xs: 0.25rem;
  --space-2xs: 0.5rem;
  --space-xs: 0.75rem;
  --space-sm: 1rem;
  --space-md: 1.5rem;
  --space-lg: 2rem;
  --space-xl: 3rem;
  --space-2xl: 4rem;
  --space-section: clamp(3.5rem, 8vw, 10rem); /* 56px mobile -> 160px desktop */

  /* Grid */
  --content-max: 1440px;
  --content-padding: 1.25rem;
  --grid-columns: 12;
  --grid-gap: 1.5rem;

  /* Radius / lines */
  --radius-sm: 2px;
  --radius-md: 4px;
  --radius-lg: 12px;
  --hairline: 1px;

  /* Shadow scale — controlled, never decorative-only */
  --shadow-sm: 0 1px 2px rgba(12, 17, 24, 0.06), 0 1px 1px rgba(12, 17, 24, 0.04);
  --shadow-md: 0 8px 24px -8px rgba(12, 17, 24, 0.18), 0 2px 6px rgba(12, 17, 24, 0.06);
  --shadow-lg: 0 24px 48px -16px rgba(12, 17, 24, 0.28), 0 4px 12px rgba(12, 17, 24, 0.08);
  --shadow-header: 0 1px 0 rgba(12, 17, 24, 0.06), 0 8px 24px -12px rgba(12, 17, 24, 0.16);

  /* Motion */
  --ease-standard: cubic-bezier(0.16, 1, 0.3, 1);
  --duration-fast: 200ms;
  --duration-base: 300ms;
  --duration-slow: 400ms;
  --duration-slower: 900ms;

  /* Z-index */
  --z-nav: 100;
  --z-overlay: 200;
  --z-toast: 300;

  /* Actual rendered height of .site-header on the current viewport —
     matches .site-header__bar's 64px min-height by default; main.js
     measures the real element on load/resize and overwrites this, so
     the mobile nav panel and any [id] scroll-margin-top stay correct
     even if header content ever wraps to a taller layout. */
  --mobile-header-height: 64px;
}

@media (min-width: 700px) {
  :root {
    --content-padding: 2rem;
  }
}

@media (min-width: 1100px) {
  :root {
    --content-padding: 3rem;
  }
}

/*
  Note: graphite/warm-white surfaces are deliberate per-section art
  direction (see .section--dark in components.css) — not a user-facing
  light/dark color-scheme preference, so there is no
  prefers-color-scheme switch here.
*/
