/**
 * BH Coastal — Design Tokens
 * ---------------------------
 * This file IMPLEMENTS docs/design-tokens-register.md (Tier 3,
 * canonical). That register is the source of truth — it separates
 * what's actually founder-approved (e.g. the palette/type direction)
 * from what's Claude's engineering interpretation of that direction
 * (e.g. the exact hex values and typefaces below). If this file and
 * the register ever disagree, the register wins and this file needs
 * correcting, not the reverse.
 *
 * Every color, type, spacing, and layout decision on the site should
 * trace back to a variable defined here — nothing hard-coded
 * downstream.
 *
 * Direction: understated, masculine coastal luxury. Timeless,
 * editorial, mature. Deliberately avoiding bright resort color,
 * gradients, glass effects, heavy shadows, and animation for its
 * own sake.
 */

:root {
  /* ---------- Color: deep navy / aged ivory / restrained sandstone ---------- */
  --color-navy: #1F2E3D;        /* primary — text, header/footer ground, buttons */
  --color-navy-soft: #334759;   /* secondary navy — hover states, muted headings */
  --color-ivory: #F1ECE0;       /* primary page ground */
  --color-ivory-deep: #E8E0CE;  /* secondary ground — alternating sections, cards */
  --color-sandstone: #C9B79C;   /* restrained accent — used sparingly: rules, labels, hover */
  --color-stone: #6B6459;       /* muted text — captions, meta, secondary copy */
  --color-hairline: #C9C2B4;    /* dividers, borders — always a hairline, never a heavy rule */

  --color-bg: var(--color-ivory);
  --color-bg-alt: var(--color-ivory-deep);
  --color-text: var(--color-navy);
  --color-text-muted: var(--color-stone);
  --color-accent: var(--color-sandstone);
  --color-border: var(--color-hairline);
  --color-inverse-bg: var(--color-navy);
  --color-inverse-text: var(--color-ivory);

  /* ---------- Type ---------- */
  /* Display/serif carries the brand voice; sans is the quiet utility face. */
  --font-serif: 'EB Garamond', 'Cormorant Garamond', Georgia, serif;
  --font-sans: 'Jost', 'Helvetica Neue', Arial, sans-serif;

  --fs-kicker: 0.6875rem;   /* 11px — wide-tracked uppercase labels */
  --fs-small: 0.8125rem;    /* 13px — captions, meta */
  --fs-body: 1rem;          /* 16px */
  --fs-body-lg: 1.125rem;   /* 18px — lead paragraphs */
  --fs-h4: 1.375rem;        /* 22px */
  --fs-h3: 1.75rem;         /* 28px */
  --fs-h2: clamp(2rem, 4vw, 2.75rem);     /* 32–44px */
  --fs-h1: clamp(2.5rem, 6vw, 4.25rem);   /* 40–68px */

  --lh-tight: 1.15;
  --lh-heading: 1.25;
  --lh-body: 1.7;

  --ls-kicker: 0.22em;     /* wide tracking for small caps labels */
  --ls-heading: 0.01em;
  --ls-nav: 0.12em;

  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;

  /* ---------- Spacing scale (8px base) ---------- */
  --space-1: 0.5rem;   /* 8px */
  --space-2: 1rem;     /* 16px */
  --space-3: 1.5rem;   /* 24px */
  --space-4: 2rem;     /* 32px */
  --space-5: 3rem;     /* 48px */
  --space-6: 4rem;     /* 64px */
  --space-7: 6rem;     /* 96px */
  --space-8: 8rem;     /* 128px */

  /* ---------- Layout ---------- */
  --page-max-width: 1200px;
  --content-max-width: 720px;   /* editorial reading measure for body copy */
  --gutter: 1.25rem;            /* mobile page margin */
  --gutter-md: 2.5rem;
  --gutter-lg: 4rem;

  --header-height: 4.5rem;
  --header-height-desktop: 5.5rem;

  /* ---------- Radius & elevation ---------- */
  /* Kept near-flat deliberately — luxury restraint, not a startup rounded-corner look. */
  --radius-sm: 1px;
  --radius-md: 2px;
  --shadow-none: none;

  /* ---------- Motion ---------- */
  /* Understated only: fades and hairline reveals, never bounce/scale/parallax. */
  --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
  --duration-fast: 150ms;
  --duration-base: 250ms;
  --duration-slow: 500ms;

  /* ---------- Breakpoints (reference only — CSS vars can't drive @media) ---------- */
  /* mobile: 0–767px · tablet: 768–1023px · desktop: 1024px+ */
}
