*, *::before, *::after { box-sizing: border-box; }

/* Fluid root: px-based clamp so `rem` scales smoothly site-wide. */
html {
	font-size: clamp(15px, 0.35vw + 14px, 18px) !important;
	scrollbar-gutter: stable;
}

body {
	margin: 0 !important;
	padding: 0 !important;
	box-sizing: border-box !important;
	font-size: 1rem !important;
	line-height: 1.4;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

body, h1, h2, h3, h4, h5, h6,
p, a, span, li, td, th, dt, dd, caption, blockquote, figcaption,
label, legend, input, button, select, textarea,
div, section, article, aside, header, footer, nav, main {
	font-family: 'Manrope', system-ui, sans-serif !important;
}

:root {
	--color-primary:    #224195;
	--color-on-primary: #fff;

	--site-header-height: 5rem;
	--site-header-height-initial: 5rem;
	--site-header-height-scrolled: 4rem;
	--site-header-shrink-rate: 280ms;
	--site-mega-flyout-rate: 300ms;
	--site-mega-flyout-ease: cubic-bezier(.32, .15, 0, 1.01);
	--mega-panel-inner-max: 80rem;
	--mobile-nav-debounce-ms: 240;
	--mobile-submenu-disclosure-transition: 280ms cubic-bezier(.4, 0, .2, 1);
	--chrome-overlay-blur: 14px;
	--site-mega-backdrop-transition: var(--site-mega-flyout-rate) var(--site-mega-flyout-ease);
	--z-site-header: 1000;
	--z-mega-panel: 1001;
	--z-mega-backdrop: 999;
	--z-mobile-overlay: 1100;
}

/* Ultra-wide: cap content rail with header/footer/mega (see --home-max-width on home template). */
@media (min-width: 1921px) {
	:root {
		--mega-panel-inner-max: 1800px;
	}
}

/* ── Global fluid type: headings + two utilities; everything else inherits ─ */

h1 {
	font-size: clamp(2.5rem, 4vw, 3.5rem) !important;
	font-weight: 700 !important;
	line-height: 1.1;
	letter-spacing: -0.005em;
}

@media (max-width: 768px) {
	h1 {
		font-size: calc(clamp(2.5rem, 4vw, 3.5rem) - 0.35rem) !important;
	}
}

h2 {
	font-size: clamp(1.75rem, 2.2vw + 0.75rem, 2.5rem) !important;
	font-weight: 700 !important;
	line-height: 1.2;
	letter-spacing: -0.005em;
}

h3 {
	font-size: clamp(1.25rem, 0.88rem + 0.25vw, 1.8rem) !important;
	font-weight: 700 !important;
	line-height: 1.25;
	letter-spacing: -0.005em;
}

.chic-type-lede {
	font-size: clamp(0.9375rem, 0.88rem + 0.32vw, 1.0625rem) !important;
	line-height: 1.75;
}

.chic-type-meta {
	font-size: clamp(11px, 0.72rem + 0.2vw, 0.875rem) !important;
	line-height: 1.4;
}

/* Inline icons next to meta text: ~70% of meta font-size (~30% smaller than full em). */
.chic-type-meta svg {
	width: 0.7em;
	height: 0.7em;
	flex-shrink: 0;
	vertical-align: -0.1em;
}

/* Header + mobile drawer share one scale (sibling of header in DOM). */
.site-header,
.mobile-nav-overlay {
	font-size: clamp(0.9rem, 0.84rem + 0.25vw, 1rem) !important;
}

.site-header__brand-text {
	font-size: 1.15em !important;
	font-weight: 700;
}

.site-header button,
.mobile-nav-overlay button {
	font: inherit;
}

/* ── Global link behaviour ──────────────────────────────────────────────────── */

a { text-decoration: none; }
a:hover, a:focus-visible { text-decoration: underline; }
