:root {
	/* Brand colors — CI palette: slate ink, amber accent, green for success/positive states */
	--dm-navy-900: #1e293b;
	--dm-navy-800: #2b3a52;
	--dm-navy-700: #3a4d6b;
	--dm-navy-600: #526283;

	--dm-gold-500: #f1aa12;
	--dm-gold-600: #bb840e;
	--dm-gold-100: #fdf1d9;

	--dm-white: #ffffff;
	--dm-bg-warm: #f8f4ec;
	--dm-surface: #f2ece0;

	--dm-gray-900: #1e293b;
	--dm-gray-600: #565f76;
	--dm-gray-400: #8b92a6;
	--dm-gray-200: #e0dccf;
	--dm-gray-100: #ece7d9;

	--dm-green-500: #8cbf35;
	--dm-green-600: #6b9128;
	--dm-green-100: #eef6e1;

	--dm-success: var(--dm-green-500);
	--dm-warning: #c2410c;
	--dm-error: #b23a2e;

	/* Semantic tokens */
	--color-primary: var(--dm-navy-800);
	--color-primary-strong: var(--dm-navy-900);
	--color-secondary: var(--dm-gold-500);
	--color-bg: var(--dm-white);
	--color-bg-alt: var(--dm-bg-warm);
	--color-surface: var(--dm-surface);
	--color-text: var(--dm-gray-900);
	--color-text-muted: var(--dm-gray-600);
	--color-border: var(--dm-gray-200);
	--color-success: var(--dm-success);
	--color-warning: var(--dm-warning);
	--color-error: var(--dm-error);
	--color-on-primary: var(--dm-navy-900);
	--gradient-gold: linear-gradient(135deg, var(--dm-gold-500), var(--dm-gold-600));
	--glow-gold: radial-gradient(circle at 22% 28%, rgba(241, 170, 18, 0.16), transparent 55%);

	/* Type — Plus Jakarta Sans carries headings, Inter carries body/UI, Caveat is a
	   one-word accent only. Scale is a real modular progression (~1.22 ratio), not
	   ad-hoc bumps, so each step reads as a deliberate size, not "slightly bigger." */
	--font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
	--font-display: 'Plus Jakarta Sans', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	--font-script: 'Caveat', 'Segoe Script', 'Bradley Hand', cursive;

	--fs-xs: 0.9375rem;   /* 15px — captions, badges, breadcrumbs */
	--fs-sm: 1.0625rem;   /* 17px — buttons, nav, footer, eyebrows */
	--fs-base: 1.25rem;   /* 20px — body copy */
	--fs-lg: 1.5rem;      /* 24px — lede paragraphs, FAQ questions */
	--fs-xl: 1.875rem;    /* 30px — card titles, h4 */
	--fs-2xl: 2.25rem;    /* 36px — h3 */
	--fs-3xl: 2.75rem;    /* 44px — h2 (mobile) */
	--fs-3xl-lg: 3.25rem; /* 52px — h2 (desktop) */
	--fs-4xl: 3.5rem;     /* 56px — h1 (mobile) */
	--fs-5xl: 4.5rem;     /* 72px — h1 (desktop) */

	/* Line-height is tier-matched, not one flat value everywhere: big display type
	   needs to sit tight; sub-headings need room to wrap to two lines; body needs
	   space to read comfortably. That pairing is what makes the scale feel coherent. */
	--lh-display: 1.06;
	--lh-heading: 1.22;
	--lh-body: 1.65;

	/* Space scale */
	--sp-1: 0.25rem;
	--sp-2: 0.5rem;
	--sp-3: 0.75rem;
	--sp-4: 1rem;
	--sp-5: 1.5rem;
	--sp-6: 2rem;
	--sp-7: 3rem;
	--sp-8: 4rem;
	--sp-9: 6rem;
	--sp-10: 8rem;

	--radius-sm: 6px;
	--radius-md: 12px;
	--radius-lg: 20px;

	--shadow-sm: 0 1px 2px rgba(10, 24, 48, 0.06);
	--shadow-md: 0 8px 24px rgba(10, 24, 48, 0.08);
	--shadow-lg: 0 20px 48px rgba(10, 24, 48, 0.12);

	--container-max: 1280px;
	--transition-fast: 150ms ease;
	--transition-base: 220ms ease;
}
