/* Design tokens: brand colours (from CLAUDE.md), typography, spacing and layout. */
:root {
  /* Brand */
  --color-bg-dark: #0B0B0D;
  --color-surface-dark: #16161A;
  --color-gold: #D4A21F;
  --color-gold-hover: #E8BC45;
  --color-champagne: #C8A97E;
  --color-silver: #C9CCD1;
  --color-bg-light: #F7F5F0;
  --color-text: #1A1A1F;
  --color-success: #1FA37A;

  /* Derived (checked for WCAG AA against their backgrounds) */
  --color-white: #FFFFFF;
  --color-text-muted: #55565C;        /* on --color-bg-light: 7.0:1 */
  --color-text-on-dark: #F2F2F3;
  --color-text-muted-on-dark: #A9ACB2; /* on --color-bg-dark: 8.5:1 */
  --color-border-light: #E2DED4;
  --color-border-dark: #2A2A30;
  --color-focus: #E8BC45;
  --color-focus-on-light: #1A1A1F;

  /* Typography */
  --font-heading: "Montserrat", "Segoe UI", system-ui, sans-serif;
  --font-body: "Inter", "Segoe UI", system-ui, sans-serif;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.25rem;
  --text-h4: 1.125rem;
  --text-h3: clamp(1.25rem, 1.1rem + 0.6vw, 1.5rem);
  --text-h2: clamp(1.625rem, 1.3rem + 1.4vw, 2.5rem);
  --text-h1: clamp(2rem, 1.4rem + 2.8vw, 3.5rem);
  --leading-tight: 1.2;
  --leading-normal: 1.6;

  /* Spacing (4px scale) */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4rem;
  --space-9: 6rem;
  --section-padding: clamp(3rem, 2rem + 4vw, 6rem);

  /* Layout */
  --container-max: 72rem;
  --container-narrow: 46rem;
  --gutter: 1rem;
  --header-height: 4rem;
  --contact-bar-height: 4rem;
  --touch-target: 2.75rem; /* 44px */

  /* Shape and motion */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 16px;
  --line-gold: 1px solid var(--color-gold);
  --shadow-card: 0 1px 2px rgb(11 11 13 / 0.04), 0 8px 24px rgb(11 11 13 / 0.06);
  --transition: 160ms ease;
}

@media (min-width: 48em) {
  :root {
    --gutter: 2rem;
    --header-height: 4.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --transition: 0ms;
  }
}
