:root{
  /* ===== Brand colours — extracted from Vulcon logo ===== */
  --navy-900:#0F1E38;
  --navy-800:#16294A;   /* primary navy */
  --navy-700:#1E3358;
  --slate-500:#5C7291;  /* logo secondary blue */
  --slate-300:#9AABBF;
  --bronze-600:#A97432;
  --bronze-500:#BC8A4B; /* primary bronze */
  --bronze-400:#D3A868;
  --bronze-100:#F1E4CE;
  --charcoal-900:#1C1E22;
  --charcoal-700:#3A3D42;
  --charcoal-500:#63676D;
  --grey-200:#E7E8EA;
  --grey-100:#F3F4F5;
  --white:#FFFFFF;

  /* Semantic tokens */
  --color-bg:var(--white);
  --color-bg-alt:var(--grey-100);
  --color-bg-dark:var(--navy-900);
  --color-text:var(--charcoal-900);
  --color-text-muted:var(--charcoal-500);
  --color-text-inverse:var(--white);
  --color-border:var(--grey-200);
  --color-accent:var(--bronze-500);
  --color-primary:var(--navy-800);

  /* ===== Typography ===== */
  --font-head:'Manrope', sans-serif;
  --font-body:'Inter', sans-serif;

  --fs-h1:clamp(2.75rem, 4.2vw, 4.5rem);
  --fs-h2:clamp(2rem, 2.8vw, 2.75rem);
  --fs-h3:clamp(1.375rem, 1.6vw, 1.75rem);
  --fs-h4:1.25rem;
  --fs-body-lg:1.125rem;
  --fs-body:1rem;
  --fs-small:0.875rem;
  --fs-micro:0.75rem;

  --lh-tight:1.1;
  --lh-snug:1.3;
  --lh-normal:1.6;

  /* ===== Spacing scale ===== */
  --sp-1:4px;
  --sp-2:8px;
  --sp-3:16px;
  --sp-4:24px;
  --sp-5:32px;
  --sp-6:48px;
  --sp-7:64px;
  --sp-8:96px;
  --sp-9:128px;
  --sp-10:160px;

  --container:1440px;
  --container-pad:5vw;

  --radius-sm:2px;
  --radius-md:4px;
  --shadow-subtle:0 1px 2px rgba(15,30,56,0.06), 0 4px 16px rgba(15,30,56,0.05);
  --shadow-card:0 2px 4px rgba(15,30,56,0.04), 0 12px 32px rgba(15,30,56,0.08);

  --ease:cubic-bezier(.4,0,.2,1);
  --dur-fast:180ms;
  --dur-med:340ms;
}
