:root {
  /* Brand colours — sampled from assets/logo/logo.jpg */
  --color-navy: #0b2a56;
  --color-navy-dark: #071d3d;
  --color-navy-light: #1b3d6e;
  --color-teal: #0bb5ba;
  --color-teal-dark: #08959a;
  --color-teal-light: #e3f6f7;

  /* Neutrals */
  --color-white: #ffffff;
  --color-off-white: #f4f6f9;
  --color-grey-100: #e6eaf0;
  --color-grey-300: #c3cad6;
  --color-grey-500: #6b7587;
  --color-grey-700: #3a4558;
  --color-text: #24304a;

  /* Semantic */
  --color-primary: var(--color-navy);
  --color-accent: var(--color-teal);
  --color-bg: var(--color-white);
  --color-bg-alt: var(--color-off-white);
  --color-bg-dark: var(--color-navy);
  --color-error: #c0392b;

  /* Typography */
  --font-sans: "Montserrat", "Avenir Next", "Avenir", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --font-body: "Lato", "Segoe UI", "Helvetica Neue", Arial, sans-serif;

  --text-xs: 0.6875rem;
  --text-sm: 0.8125rem;
  --text-base: 0.9375rem;
  --text-md: 1.125rem;
  --text-lg: 1.375rem;
  --text-xl: 1.75rem;
  --text-2xl: clamp(1.875rem, 4.5vw, 3rem);

  --weight-regular: 400;
  --weight-semibold: 600;
  --weight-bold: 700;

  --tracking-wide: 0.08em;
  --tracking-wider: 0.14em;

  /* Spacing */
  --space-2xs: 0.25rem;
  --space-xs: 0.5rem;
  --space-sm: 0.75rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2rem;
  --space-2xl: 3rem;
  --space-3xl: 4.5rem;
  --space-4xl: 6rem;

  /* Layout */
  --container-max: 75rem;
  --container-narrow: 48rem;
  --header-height: 4.5rem;

  /* Effects */
  --radius-sm: 4px;
  --radius-md: 10px;
  --radius-lg: 18px;
  --shadow-sm: 0 2px 6px rgba(7, 29, 61, 0.08);
  --shadow-md: 0 10px 30px rgba(7, 29, 61, 0.14);
  --transition: 200ms ease;
}
