/* ---------- Tokens ---------- */
:root {
	--c-primary: #1a3a6c;
	--c-primary-dark: #122a4f;
	--c-accent: #2e8bc0;
	--c-accent-dark: #1f6e9c;
	--c-ink: #15171a;
	--c-muted: #5a6470;
	--c-line: #e6eaf0;
	--c-bg: #ffffff;
	--c-bg-alt: #f6f8fb;

	--font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--font-display: 'Playfair Display', Georgia, serif;

	--container: 1200px;
	--container-narrow: 760px;

	--radius: 8px;
	--radius-lg: 14px;
	--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);
	--shadow-md: 0 6px 24px rgba(15, 23, 42, .08);

	--space-1: .25rem;
	--space-2: .5rem;
	--space-3: 1rem;
	--space-4: 1.5rem;
	--space-5: 2rem;
	--space-6: 3rem;
	--space-7: 4.5rem;
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--font-sans);
	font-size: 17px;
	line-height: 1.65;
	color: var(--c-ink);
	background: var(--c-bg);
	-webkit-font-smoothing: antialiased;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--c-accent); text-decoration: none; }
a:hover { color: var(--c-accent-dark); text-decoration: underline; }
button { font: inherit; cursor: pointer; }
ul, ol { padding-left: 1.25rem; }

/* ---------- Typography ---------- */
h1, h2, h3, h4 {
	font-family: var(--font-display);
	font-weight: 700;
	color: var(--c-primary);
	line-height: 1.2;
	margin: 0 0 var(--space-3);
}
h1 { font-size: clamp(2rem, 4vw, 3rem); }
h2 { font-size: clamp(1.6rem, 3vw, 2.25rem); }
h3 { font-size: 1.25rem; }
p  { margin: 0 0 var(--space-3); }
.lede { font-size: 1.15rem; color: var(--c-muted); }
.eyebrow {
	display: inline-block;
	font-size: .8rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--c-accent);
	font-weight: 600;
	margin: 0 0 var(--space-2);
}

.text-center { text-align: center; }
.screen-reader-text {
	position: absolute !important;
	clip: rect(1px,1px,1px,1px); height: 1px; width: 1px;
	overflow: hidden; word-wrap: normal !important;
}
.skip-link {
	position: absolute; left: -9999px;
	background: var(--c-primary); color: #fff; padding: .5rem 1rem;
}
.skip-link:focus { left: 1rem; top: 1rem; z-index: 9999; }
