:root {
  /* Typography */
  --font-display: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --font-body: 'Manrope', Arial, Helvetica, sans-serif;
  --font-serif: var(--font-display);
  --font-sans: var(--font-body);

  /* Approved colour system */
  --color-bg-primary: #F6F1E8;
  --color-bg-secondary: #EDE5D7;
  --color-bg-tertiary: #E4DACB;
  --color-bg-card: #FCFAF6;
  --color-bg-dark: #1E1D1A;
  --color-bg-dark-soft: #292722;

  --color-text-primary: #24211E;
  --color-text-secondary: #6F6961;
  --color-text-muted: #9A938A;
  --color-text-light: #F5F0E7;
  --color-text-light-muted: #C9C2B8;

  --color-border: #D6CEC1;
  --color-border-dark: #4A463F;
  --color-accent: #A68D68;
  --color-accent-dark: #826E51;
  --color-error: #9B4D45;
  --color-success: #5F755E;

  /* Homepage editorial rhythm */
  --color-home-approach: #F7F4EF;
  --color-home-weddings: #EFE8DE;
  --color-home-films: #F4EEE6;
  --color-home-featured: #FBF8F3;
  --color-home-pre-wedding: #EAE1D5;
  --color-home-frames: #F7F4EF;
  --color-home-philosophy: #F1EBE2;
  --color-home-enquiry: #FBF8F3;
  --color-home-footer: #151311;
  --color-home-text-dark: #201C19;
  --color-home-text-dark-secondary: #6E6259;
  --color-home-text-light: #F7F3ED;
  --color-home-text-light-secondary: rgba(247, 243, 237, 0.70);
  --color-home-border-light: rgba(32, 28, 25, 0.14);
  --color-home-border-dark: rgba(255, 255, 255, 0.18);

  /* Backward-compatible semantic aliases used by existing components */
  --bg-primary: var(--color-bg-primary);
  --bg-secondary: var(--color-bg-secondary);
  --bg-surface: var(--color-bg-card);
  --bg-taupe: var(--color-bg-tertiary);
  --bg-dark-pill: var(--color-text-primary);
  --bg-dark-pill-hover: var(--color-bg-dark-soft);
  --text-primary: var(--color-text-primary);
  --text-secondary: var(--color-text-secondary);
  --text-muted: var(--color-text-muted);
  --text-light: var(--color-text-light);
  --text-accent: var(--color-accent);
  --accent-gold: var(--color-accent);
  --border-subtle: var(--color-border);
  --border-strong: var(--color-border);

  --color-overlay-hero-top: rgba(20, 18, 15, 0.10);
  --color-overlay-hero-mid: rgba(20, 18, 15, 0.18);
  --color-overlay-hero-bottom: rgba(20, 18, 15, 0.42);
  --color-overlay-home-hero-top: rgba(30, 29, 26, 0.28);
  --color-overlay-home-hero-mid: rgba(30, 29, 26, 0.38);
  --color-overlay-home-hero-bottom: rgba(30, 29, 26, 0.62);
  --color-overlay-image: rgba(30, 29, 26, 0.22);
  --color-overlay-dark: rgba(30, 29, 26, 0.82);
  --color-overlay-subtle: rgba(30, 29, 26, 0.12);
  --color-overlay-strong: rgba(30, 29, 26, 0.45);
  --color-overlay-dark-soft: rgba(30, 29, 26, 0.28);
  --color-bg-primary-translucent: rgba(246, 241, 232, 0.94);
  --color-border-subtle: rgba(214, 206, 193, 0.45);
  --color-border-faint: rgba(214, 206, 193, 0.25);
  --color-text-light-strong: rgba(245, 240, 231, 0.80);
  --color-text-light-faint: rgba(201, 194, 184, 0.52);
  --color-text-media-shadow: rgba(30, 29, 26, 0.34);
  --color-success-soft: rgba(95, 117, 94, 0.12);
  --color-error-soft: rgba(155, 77, 69, 0.10);
  --color-card-shadow: rgba(36, 33, 30, 0.08);

  /* Font weights */
  --fw-light: 300;
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;

  /* Spacing and layout */
  --space-xs: clamp(0.5rem, 1vw, 0.75rem);
  --space-sm: clamp(1rem, 2vw, 1.5rem);
  --space-md: clamp(2rem, 4vw, 3rem);
  --space-lg: clamp(4rem, 6vw, 6rem);
  --space-xl: clamp(5rem, 8vw, 8rem);
  --container-max-width: 1440px;
  --container-narrow: 920px;
  --header-height: 85px;

  /* Motion and depth */
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --transition-fast: 0.25s ease;
  --transition-normal: 0.4s ease;
  --transition-slow: 0.8s ease;
  --shadow-subtle: 0 12px 32px var(--color-card-shadow);

  --z-header: 100;
  --z-modal: 500;
  --z-cursor: 9999;
}
