:root {
  /* ── Core Palette — Per Brand Book §1.1 ── */
  --color-white:        #FFFFFF;
  --color-navy:         #002770;
  --color-navy-deep:    #001336;
  --color-charcoal:     #252525;

  /* ── Derived / Utility ── */
  --color-bg:              #FAFAF8;
  --color-bg-section:      #F3F2EE;
  --color-text-primary:    #252525;
  --color-text-secondary:  #5A5A52;
  --color-text-light:      #8C8C82;
  --color-border:          #DDD9D0;
  --color-accent:          #002770;
  --color-accent-hover:    #001336;
  --color-error:           #C0392B;

  /* Surface tokens for white-on-navy combinations */
  --color-on-navy:         rgba(255, 255, 255, 1);
  --color-on-navy-muted:   rgba(255, 255, 255, 0.65);
  --color-on-navy-soft:    rgba(255, 255, 255, 0.85);
  --color-on-navy-faint:   rgba(255, 255, 255, 0.45);
  --color-on-navy-border:  rgba(255, 255, 255, 0.18);

  /* ── Typography ── */
  --font-display:  'Montserrat', 'Helvetica Neue', sans-serif;
  --font-body:     'Montserrat', 'Helvetica Neue', sans-serif;
  --font-mono:     'Courier New', monospace;

  /* ── Type Scale ── */
  --text-xs:    0.75rem;
  --text-sm:    0.875rem;
  --text-base:  1rem;
  --text-lg:    1.125rem;
  --text-xl:    1.25rem;
  --text-2xl:   1.5rem;
  --text-3xl:   1.875rem;
  --text-4xl:   2.25rem;
  --text-5xl:   3rem;
  --text-6xl:   3.75rem;

  /* ── Spacing ── */
  --space-section: 6rem;
  --space-gap:     2rem;

  /* ── Effects ── */
  --radius-sm:   4px;
  --radius-md:   8px;
  --radius-lg:   16px;

  --shadow-card:        0 1px 3px rgba(0,19,54,0.06), 0 4px 16px rgba(0,19,54,0.08);
  --shadow-card-hover:  0 4px 8px rgba(0,19,54,0.08), 0 12px 32px rgba(0,19,54,0.13);
  --shadow-nav:         0 1px 0 var(--color-border);
  --shadow-nav-scrolled: 0 2px 20px rgba(0,19,54,0.10);
  --shadow-button:      0 1px 2px rgba(0,19,54,0.10), 0 2px 8px rgba(0,19,54,0.10);
  --shadow-button-hover: 0 4px 6px rgba(0,19,54,0.12), 0 8px 18px rgba(0,19,54,0.18);
  /* Heavier navy-tinted halo for primary CTAs to push them above other buttons */
  --shadow-cta-primary:        0 1px 2px rgba(0,19,54,0.22), 0 8px 24px rgba(0,39,112,0.20);
  --shadow-cta-primary-hover:  0 2px 4px rgba(0,19,54,0.25), 0 14px 36px rgba(0,39,112,0.30);

  /* Easing — use on transform/opacity only */
  --ease-spring:     cubic-bezier(0.34, 1.56, 0.64, 1);
  --ease-out:        cubic-bezier(0.4, 0, 0.2, 1);
  --transition-fast: 0.18s var(--ease-out);
  --transition-base: 0.22s var(--ease-out);
  --transition-slow: 0.55s var(--ease-out);

  /* Layout */
  --container-max: 1200px;
  --nav-height:    84px;
}
