/* ==========================================================================
   DESIGN TOKENS
   ========================================================================== */

:root {
  /* --- Colors — based on logo palette --- */
  --c-primary: #1A3A8C;
  --c-primary-mid: #2E5DB5;
  --c-primary-light: #6BAEE0;
  --c-accent: #C8A84B;
  --c-accent-light: #E2C97A;
  --c-green: #0A7E5C;
  --c-green-mid: #0E9E72;
  --c-green-light: #C8EDE2;
  --c-on-green: #FFFFFF;

  --c-bg: #F4F6FA;
  --c-bg-alt: #EBF0F7;
  --c-surface: #FFFFFF;
  --c-border: #CBD3E8;

  --c-text: #1A1E2E;
  --c-text-muted: #556080;
  --c-on-primary: #FFFFFF;
  --c-on-accent: #1A1E2E;

  /* --- Typography --- */
  --font: 'Geologica', system-ui, sans-serif;

  --fw-light: 300;
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;

  /* Type scale (Major Third — 1.25) */
  --text-xs: 0.64rem;
  --text-sm: 0.8rem;
  --text-base: 1rem;
  --text-lg: 1.25rem;
  --text-xl: 1.563rem;
  --text-2xl: 1.953rem;
  --text-3xl: 2.441rem;
  --text-4xl: 3.052rem;

  /* --- Spacing (4px base) --- */
  --sp-1: 0.25rem;
  --sp-2: 0.5rem;
  --sp-3: 0.75rem;
  --sp-4: 1rem;
  --sp-5: 1.25rem;
  --sp-6: 1.5rem;
  --sp-7: 1.75rem;
  --sp-8: 2rem;
  --sp-9: 2.25rem;
  --sp-10: 2.5rem;
  --sp-12: 3rem;
  --sp-16: 4rem;
  --sp-20: 5rem;
  --sp-24: 6rem;
  --minus: -10px;

  /* --- Container widths --- */
  --w-sm: 640px;
  --w-md: 768px;
  --w-lg: 1024px;
  --w-xl: 1280px;
  --w-2xl: 1440px;

  /* --- Content widths --- */
  --w-site: 1280px;
  --w-content: 1140px;
  --w-prose: 720px;
  --w-narrow: 560px;

  --header-height: 106px;
  --gutter: clamp(1rem, 4vw, 2rem);

  /* --- Misc --- */
  --radius-xs: 2px;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 16px;
  --radius-xl: 20px;
  --radius-full: 9999px;

  --shadow-sm: 0 1px 3px rgba(26, 58, 140, 0.08);
  --shadow-md: 0 4px 12px rgba(26, 58, 140, 0.12);
  --shadow-lg: 0 8px 28px rgba(26, 58, 140, 0.18);

  /* --- Icon sizes --- */
  --icon-sm: 36px;
  --icon-md: 44px;
  --icon-lg: 48px;
  --icon-xl: 52px;
  --icon-2xl: 60px;

  /* --- Scrim & soft border --- */
  --c-scrim: rgba(0, 0, 0, 0.50);
  --c-border-soft: rgba(26, 58, 140, 0.08);

  --transition: 220ms ease;

  --z-sticky: 9001;
  --z-overlay: 9002;
  --z-modal: 9003;

  /* --- Gradients --- */
  --gradient-primary: linear-gradient(135deg, #142e73 0%, #1A3A8C 45%, #2651b0 100%);
  --gradient-green:   linear-gradient(135deg, #076649 0%, #0A7E5C 45%, #0d9e72 100%);
  --gradient-sky:     linear-gradient(135deg, #5aa0dc 0%, #6BAEE0 55%, #8dc5ed 100%);
  --gradient-hero:    linear-gradient(135deg, #1A3A8C 0%, #1e4fa8 55%, #3a7ec4 100%);

  /* --- Typography color tokens --- */
  --c-on-primary-muted: rgba(255, 255, 255, 0.78);
  --c-heading: var(--c-text);
  --c-label: var(--c-primary-mid);
}