/*
 * ACA Marketplace Mastery — design system.
 *
 * Rules:
 * - Every color is a token on :root. No hex values anywhere else
 *   (tests/run.php enforces this and checks WCAG AA contrast).
 * - Brand colors come from the group banner: --bg, --navy, --royal,
 *   --electric, --ice. Tints, hovers and glows derive from them.
 * - Dark-first. .band switches any block to the dark context; light
 *   sections (articles, library grids) use the defaults below.
 * - Mobile first. Hover styles live behind (hover: hover) and (pointer: fine).
 * - Motion is 150–220ms ease-out on transform/opacity/shadow, nothing that
 *   shifts layout, and reduced-motion users get instant changes.
 */

/* ───────────────────────── Tokens ───────────────────────── */

:root {
	/* Brand, sampled from the Facebook group banner. */
	--bg: #030b1b;
	--navy: #041b39;
	--royal: #0255a5;
	--electric: #1c9eea;
	--ice: #78c7e4;

	/* Neutrals (cool slate). */
	--white: #ffffff;
	--black: #000000;
	--ink: #0b1424;
	--ink-2: #334155;
	--muted: #526072;
	--line: #e2e8f0;
	--line-strong: #8792a5;
	--surface: #f4f7fb;
	--surface-2: #e8edf4;
	--on-dark: #ffffff;
	--on-dark-muted: #a9b7cb;
	--danger: #b42318;
	--danger-tint: #fef3f2;

	/* Derived. */
	--royal-hover: color-mix(in srgb, var(--royal) 80%, var(--black));
	--royal-tint: color-mix(in srgb, var(--royal) 7%, var(--white));
	--royal-tint-2: color-mix(in srgb, var(--royal) 14%, var(--white));
	--electric-hover: color-mix(in srgb, var(--electric) 80%, var(--white));
	--electric-tint: color-mix(in srgb, var(--electric) 16%, var(--bg));
	--line-dark: color-mix(in srgb, var(--electric) 20%, var(--navy));
	--line-dark-strong: color-mix(in srgb, var(--on-dark-muted) 55%, var(--bg));

	/* Carriers map: shade steps by number of ACA carriers (0 = none). */
	--map-0: color-mix(in srgb, var(--on-dark-muted) 16%, var(--navy));
	--map-1: color-mix(in srgb, var(--electric) 30%, var(--navy));
	--map-2: color-mix(in srgb, var(--electric) 52%, var(--navy));
	--map-3: color-mix(in srgb, var(--electric) 82%, var(--navy));
	--map-4: var(--ice);

	/* Glows, overlays and shadows. */
	--glow: color-mix(in srgb, var(--electric) 55%, transparent);
	--glow-soft: color-mix(in srgb, var(--electric) 22%, transparent);
	--glow-faint: color-mix(in srgb, var(--electric) 10%, transparent);
	--header-bg: color-mix(in srgb, var(--bg) 84%, transparent);
	--scrim: color-mix(in srgb, var(--bg) 70%, transparent);
	--shadow-sm: 0 1px 2px color-mix(in srgb, var(--bg) 8%, transparent);
	--shadow-md: 0 1px 2px color-mix(in srgb, var(--bg) 6%, transparent), 0 10px 28px -10px color-mix(in srgb, var(--bg) 22%, transparent);
	--shadow-glow: 0 0 0 1px var(--glow-soft), 0 10px 32px -10px var(--glow);

	/* Light context (default). .band overrides these for dark. */
	--text: var(--ink);
	--text-muted: var(--muted);
	--link: var(--royal);
	--focus: var(--royal);
	--card-bg: var(--white);
	--card-border: var(--line);
	--btn-bg: var(--royal);
	--btn-fg: var(--white);
	--btn-bg-hover: var(--royal-hover);
	--btn2-bg: var(--white);
	--btn2-fg: var(--ink);
	--btn2-border: var(--line-strong);
	--btn2-border-hover: var(--ink-2);
	--ghost-fg: var(--royal);
	--ghost-bg-hover: var(--royal-tint);
	--badge-plan-bg: var(--royal-tint-2);
	--badge-plan-fg: var(--royal-hover);
	--badge-muted-bg: var(--surface-2);
	--badge-muted-fg: var(--ink-2);
	--icon-tile-bg: var(--royal-tint);
	--icon-tile-fg: var(--royal);

	/* Type. */
	--font: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--fs-xs: 0.8125rem;
	--fs-sm: 0.875rem;
	--fs-base: 1.0625rem;
	--fs-md: 1.1875rem;
	--fs-lg: 1.375rem;
	--fs-xl: clamp(1.5rem, 1.2rem + 1.2vw, 1.875rem);
	--fs-2xl: clamp(1.875rem, 1.4rem + 2vw, 2.75rem);
	--fs-3xl: clamp(2.5rem, 1.6rem + 4.2vw, 4.5rem);
	--lh-tight: 1.04;
	--lh-snug: 1.2;
	--lh-body: 1.6;
	--track-display: -0.03em;
	--track-heading: -0.02em;
	--track-eyebrow: 0.08em;
	--weight-display: 850;

	/* Space, radius, layout. */
	--space-1: 0.25rem;
	--space-2: 0.5rem;
	--space-3: 0.75rem;
	--space-4: 1rem;
	--space-5: 1.5rem;
	--space-6: 2rem;
	--space-7: 3rem;
	--space-8: 4rem;
	--space-9: 6rem;
	--radius-sm: 6px;
	--radius: 10px;
	--radius-lg: 16px;
	--radius-pill: 999px;
	--container: 72rem;
	--measure: 40rem;
	--gutter: clamp(1rem, 0.5rem + 2.5vw, 2rem);
	--header-h: 4.25rem;
	--tap: 44px;

	/* Motion. */
	--dur-1: 150ms;
	--dur-2: 220ms;
	--ease-out: cubic-bezier(0.23, 1, 0.32, 1);
	--ease-enter: cubic-bezier(0.22, 1, 0.36, 1);
}

/* ───────────────────────── Font ───────────────────────── */

@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("../fonts/inter-latin-wght.woff2?ver=1") format("woff2"); /* ?ver= matches AMM_FONT_VERSION in inc/setup.php (the preload). */
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Display headlines only: heavy and slanted, like the banner. */
@font-face {
	font-family: "Inter";
	font-style: italic;
	font-weight: 100 900;
	font-display: swap;
	src: url("../fonts/inter-latin-wght-italic.woff2?ver=1") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ───────────────────────── Base ───────────────────────── */

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

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	-webkit-tap-highlight-color: transparent;
	scroll-padding-top: calc(var(--header-h) + var(--space-4));
	background: var(--bg);
}

body {
	margin: 0;
	background: var(--bg);
	color: var(--text);
	font-family: var(--font);
	font-size: var(--fs-base);
	line-height: var(--lh-body);
	font-optical-sizing: auto;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}

h1,
h2,
h3,
h4 {
	margin: 0;
	font-weight: 700;
	line-height: var(--lh-snug);
	letter-spacing: var(--track-heading);
	text-wrap: balance;
	/* A word longer than the line (a carrier name on a small phone) breaks
	   instead of pushing the page wider. */
	overflow-wrap: anywhere;
}

/* Display type: heavy, slanted. */
.display,
.hero h1,
.section-header h2,
.cta-band h2,
.gate h1,
.coming-next h2 {
	font-style: italic;
	font-weight: var(--weight-display);
	letter-spacing: var(--track-display);
}

p {
	margin: 0;
	text-wrap: pretty;
}

img,
svg,
video {
	display: block;
	max-width: 100%;
	height: auto;
}

a {
	color: var(--link);
	text-underline-offset: 0.18em;
	text-decoration-thickness: 1px;
}

button,
input,
select,
textarea {
	font: inherit;
	color: inherit;
}

button,
a,
[role="button"] {
	touch-action: manipulation;
}

:focus-visible {
	outline: 3px solid var(--focus);
	outline-offset: 2px;
	border-radius: var(--radius-sm);
}

.tnum,
time {
	font-variant-numeric: tabular-nums;
}

.screen-reader-text,
.visually-hidden {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* The page is dark; main is the light canvas that light sections sit on. */
main {
	display: block;
	background: var(--white);
}

main:focus {
	outline: none;
}

.skip-link {
	position: absolute;
	top: var(--space-2);
	left: var(--space-2);
	z-index: 100;
	padding: var(--space-3) var(--space-4);
	background: var(--electric);
	color: var(--bg);
	border-radius: var(--radius);
	font-weight: 700;
	transform: translateY(-200%);
}

.skip-link:focus {
	transform: none;
}

.icon {
	width: 1.25em;
	height: 1.25em;
	flex: none;
}

/* ───────────────────────── Layout ───────────────────────── */

.container {
	position: relative;
	width: 100%;
	max-width: calc(var(--container) + 2 * var(--gutter));
	margin-inline: auto;
	padding-inline: var(--gutter);
}

.section {
	padding-block: var(--space-8);
}

.section--tint {
	background: var(--surface);
}

.stack > * + * {
	margin-top: var(--space-4);
}

.grid {
	display: grid;
	gap: var(--space-4);
}

@media (min-width: 40em) {
	.grid--2,
	.grid--4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.grid--3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 64em) {
	.grid--3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	.grid--4 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
	.section {
		padding-block: var(--space-9);
	}
}

/* Dark context: header, hero, bands, footer, menu. */
.band {
	--text: var(--on-dark);
	--text-muted: var(--on-dark-muted);
	--link: var(--electric);
	--focus: var(--electric);
	--card-bg: var(--navy);
	--card-border: var(--line-dark);
	--btn-bg: var(--electric);
	--btn-fg: var(--bg);
	--btn-bg-hover: var(--electric-hover);
	--btn2-bg: transparent;
	--btn2-fg: var(--on-dark);
	--btn2-border: var(--line-dark-strong);
	--btn2-border-hover: var(--electric);
	--ghost-fg: var(--electric);
	--ghost-bg-hover: var(--electric-tint);
	--badge-plan-bg: var(--electric-tint);
	--badge-plan-fg: var(--ice);
	--badge-muted-bg: var(--navy);
	--badge-muted-fg: var(--on-dark-muted);
	--icon-tile-bg: var(--electric-tint);
	--icon-tile-fg: var(--electric);
	background: var(--bg);
	color: var(--text);
}

.band--navy {
	background: var(--navy);
	--card-bg: var(--bg);
}

.band a:not(.btn) {
	color: var(--text);
}

/*
 * Light streaks: two glowing arcs and a soft haze, echoing the banner.
 * Pure CSS, decorative, static (nothing animates).
 */
.streaks {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	pointer-events: none;
}

.streaks__glow {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(60% 70% at 88% 8%, var(--glow-soft), transparent 70%),
		radial-gradient(40% 50% at 10% 100%, var(--glow-faint), transparent 70%);
}

.streaks__lines {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: visible;
	fill: none;
	/* Fade the lines out toward the text column. */
	-webkit-mask-image: linear-gradient(90deg, transparent 35%, var(--black) 75%);
	mask-image: linear-gradient(90deg, transparent 35%, var(--black) 75%);
}

.streaks__line {
	stroke: var(--electric);
	stroke-width: 2;
	stroke-linecap: round;
	vector-effect: non-scaling-stroke;
	opacity: 0.75;
}

.streaks__line--thin {
	stroke: var(--ice);
	stroke-width: 1;
	opacity: 0.4;
}

.streaks__line--glow {
	stroke-width: 10;
	opacity: 0.14;
}

/* Centered layouts (coming soon): fade the lines away from the middle. */
.gate .streaks__lines {
	-webkit-mask-image: radial-gradient(60% 55% at 50% 30%, transparent 40%, var(--black) 85%);
	mask-image: radial-gradient(60% 55% at 50% 30%, transparent 40%, var(--black) 85%);
}

.band > .container {
	position: relative;
	z-index: 1;
}

/* ───────────────────────── Pre-launch bar ───────────────────────── */

.prelaunch-bar {
	background: var(--ice);
	color: var(--bg);
	font-size: var(--fs-sm);
	font-weight: 600;
}

.prelaunch-bar .container {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-1) var(--space-3);
	min-height: 2.25rem;
	padding-block: var(--space-1);
}

.prelaunch-bar a {
	color: var(--bg);
	display: inline-flex;
	align-items: center;
	min-height: var(--tap);
}

/* ───────────────────────── Wordmark ───────────────────────── */

.wordmark {
	display: inline-flex;
	flex-direction: column;
	justify-content: center;
	min-height: var(--tap);
	margin-right: auto;
	color: var(--on-dark);
	text-decoration: none;
	white-space: nowrap;
	line-height: 1;
}

.band .wordmark,
.wordmark:visited {
	color: var(--on-dark);
}

.wordmark__name {
	/* Capped by the screen width so very large phone text can't push the header wider. */
	font-size: min(1.1875rem, 6vw);
	font-style: italic;
	font-weight: 900;
	letter-spacing: -0.025em;
	filter: drop-shadow(0 0 10px var(--glow-soft));
}

.wordmark__accent {
	color: var(--ice);
}

@supports ((-webkit-background-clip: text) or (background-clip: text)) {
	.wordmark__accent {
		background: linear-gradient(100deg, var(--ice), var(--electric) 70%);
		-webkit-background-clip: text;
		background-clip: text;
		-webkit-text-fill-color: transparent;
		color: transparent;
	}
}

.wordmark__tag {
	margin-top: 0.3125rem;
	color: var(--on-dark-muted);
	font-size: min(0.6875rem, 3.4vw);
	font-style: italic;
	font-weight: 650;
	letter-spacing: 0.01em;
}

.wordmark--lg .wordmark__name {
	font-size: min(clamp(2rem, 1.2rem + 4vw, 3.5rem), 10vw);
	letter-spacing: var(--track-display);
	filter: drop-shadow(0 0 22px var(--glow-soft));
}

.wordmark--lg .wordmark__tag {
	margin-top: var(--space-2);
	font-size: min(clamp(0.875rem, 0.7rem + 0.8vw, 1.125rem), 4.4vw);
}

/* ───────────────────────── Header ───────────────────────── */

.site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: var(--header-bg);
	-webkit-backdrop-filter: saturate(160%) blur(16px);
	backdrop-filter: saturate(160%) blur(16px);
	border-bottom: 1px solid var(--line-dark);
}

.admin-bar .site-header {
	top: var(--wp-admin--admin-bar--height, 0px);
}

@media (max-width: 600px) {
	.admin-bar .site-header {
		top: 0;
	}
}

.site-header__inner {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	height: var(--header-h);
}

.primary-nav {
	display: none;
}

.primary-nav ul {
	display: flex;
	align-items: center;
	gap: var(--space-1);
	margin: 0;
	padding: 0;
	list-style: none;
}

.band .primary-nav a,
.primary-nav a {
	display: inline-flex;
	align-items: center;
	min-height: var(--tap);
	padding-inline: var(--space-3);
	border-radius: var(--radius);
	color: var(--on-dark-muted);
	font-size: 0.9375rem;
	font-weight: 550;
	text-decoration: none;
	transition: background-color var(--dur-1) ease, color var(--dur-1) ease;
}

.band .primary-nav a[aria-current="page"],
.primary-nav a[aria-current="page"] {
	color: var(--electric);
	background: var(--electric-tint);
}

.site-header__join {
	display: none;
}

.menu-toggle {
	display: inline-grid;
	place-items: center;
	width: var(--tap);
	height: var(--tap);
	margin-right: calc(var(--space-2) * -1);
	padding: 0;
	border: 0;
	border-radius: var(--radius);
	background: transparent;
	color: var(--on-dark);
	cursor: pointer;
}

.menu-toggle .icon {
	width: 1.5rem;
	height: 1.5rem;
}

@media (min-width: 75em) {
	.primary-nav,
	.site-header__join {
		display: block;
	}
	.menu-toggle {
		display: none;
	}
}

/* Phone menu: a full-screen <dialog>. */
.mobile-menu {
	position: fixed;
	inset: 0;
	width: 100%;
	max-width: none;
	height: 100dvh;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	overflow: hidden;
	overscroll-behavior: contain;
	opacity: 0;
	transform: translateY(-8px);
	transition: opacity var(--dur-2) var(--ease-out), transform var(--dur-2) var(--ease-out), overlay var(--dur-2) allow-discrete, display var(--dur-2) allow-discrete;
}

.mobile-menu[open] {
	display: flex;
	flex-direction: column;
	opacity: 1;
	transform: none;
}

@starting-style {
	.mobile-menu[open] {
		opacity: 0;
		transform: translateY(-8px);
	}
}

.mobile-menu::backdrop {
	background: var(--scrim);
}

.mobile-menu__top {
	display: flex;
	align-items: center;
	height: var(--header-h);
	padding-top: env(safe-area-inset-top, 0px);
	border-bottom: 1px solid var(--line-dark);
}

.mobile-menu__body {
	flex: 1;
	overflow-y: auto;
	padding-block: var(--space-5) calc(var(--space-6) + env(safe-area-inset-bottom, 0px));
}

.mobile-menu__list {
	margin: 0 0 var(--space-6);
	padding: 0;
	list-style: none;
}

.band .mobile-menu__list a,
.mobile-menu__list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 3.5rem;
	border-bottom: 1px solid var(--line-dark);
	color: var(--on-dark);
	font-size: var(--fs-lg);
	font-style: italic;
	font-weight: 800;
	letter-spacing: var(--track-heading);
	text-decoration: none;
}

.band .mobile-menu__list a[aria-current="page"],
.mobile-menu__list a[aria-current="page"] {
	color: var(--electric);
}

.mobile-menu__list .icon {
	color: var(--on-dark-muted);
}

/* ───────────────────────── Buttons ───────────────────────── */

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-2);
	max-width: 100%;
	min-height: var(--tap);
	padding: 0.625rem 1.125rem;
	border: 1px solid transparent;
	border-radius: var(--radius);
	font-size: 0.9375rem;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	/* Long labels ("Start contracting with AmeriHealth Caritas") wrap
	   inside the button instead of making the page wider than the screen. */
	text-wrap: balance;
	overflow-wrap: anywhere;
	cursor: pointer;
	user-select: none;
	-webkit-user-select: none;
	transition: transform var(--dur-1) var(--ease-out), background-color var(--dur-1) ease, border-color var(--dur-1) ease, color var(--dur-1) ease, box-shadow var(--dur-2) var(--ease-out);
}

.btn:active {
	transform: scale(0.97);
}

.btn .icon {
	flex: none;
	width: 1.125rem;
	height: 1.125rem;
}

.btn--lg {
	min-height: 3.25rem;
	padding-inline: 1.5rem;
	font-size: 1rem;
}

.btn--block {
	display: flex;
	width: 100%;
}

.btn--primary {
	background: var(--btn-bg);
	color: var(--btn-fg);
}

.btn--secondary {
	background: var(--btn2-bg);
	border-color: var(--btn2-border);
	color: var(--btn2-fg);
}

.btn--ghost {
	background: transparent;
	color: var(--ghost-fg);
}

.btn-row {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
}

/* Phones: two buttons share the row when they fit, else each takes a full row. */
@media (max-width: 39.99em) {
	.btn-row--pair > .btn {
		flex: 1 1 auto;
	}
}

/* ───────────────────────── Badges ───────────────────────── */

.badge {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	min-height: 1.5rem;
	padding: 0.125rem 0.625rem;
	border-radius: var(--radius-pill);
	font-size: var(--fs-xs);
	font-weight: 650;
	line-height: 1.3;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.badge .icon {
	width: 0.875rem;
	height: 0.875rem;
}

.badge--plan,
.badge--soon {
	background: var(--badge-plan-bg);
	color: var(--badge-plan-fg);
}

.badge--archived {
	background: var(--badge-muted-bg);
	color: var(--badge-muted-fg);
}

.badge--new {
	background: var(--ice);
	color: var(--bg);
}

.meta-line {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-2) var(--space-3);
	color: var(--text-muted);
	font-size: var(--fs-sm);
}

.last-reviewed {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
}

.last-reviewed .icon {
	width: 1rem;
	height: 1rem;
}

/* ───────────────────────── Section header ───────────────────────── */

.eyebrow {
	display: inline-block;
	max-width: 100%;
	overflow-wrap: anywhere;
	color: var(--link);
	font-size: var(--fs-xs);
	font-weight: 750;
	letter-spacing: var(--track-eyebrow);
	text-transform: uppercase;
}

.section-header {
	display: grid;
	gap: var(--space-3);
	max-width: var(--measure);
	margin-bottom: var(--space-6);
}

.section-header h2 {
	font-size: var(--fs-2xl);
	line-height: 1.08;
}

.section-header p {
	color: var(--text-muted);
	font-size: var(--fs-md);
}

/* ───────────────────────── Hero ───────────────────────── */

.hero {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	padding-block: var(--space-8);
}

.hero__grid {
	display: grid;
	gap: var(--space-7);
	align-items: center;
}

.hero__inner {
	display: grid;
	gap: var(--space-4);
	min-width: 0;
	max-width: 46rem;
}

.hero h1 {
	font-size: var(--fs-3xl);
	line-height: var(--lh-tight);
	filter: drop-shadow(0 0 28px var(--glow-faint));
}

.hero__lede {
	max-width: 36rem;
	color: var(--text-muted);
	font-size: var(--fs-md);
}

.hero .btn-row {
	margin-top: var(--space-3);
}

.hero--compact {
	padding-block: var(--space-7);
}

.hero--compact h1 {
	font-size: var(--fs-2xl);
}

@media (min-width: 64em) {
	.hero {
		padding-block: var(--space-9);
	}
	.hero--compact {
		padding-block: var(--space-8);
	}
	.hero__grid--media {
		grid-template-columns: minmax(0, 1fr) auto;
	}
}

/*
 * Homepage hero background video, desktop only. It sits on the hero
 * background, under the streaks and the text. The mask fades its left edge
 * into --bg before the headline and softens its top and bottom. hero-reel.js
 * adds the <video> and it shows once it plays; with reduced motion the poster
 * is a still in the same spot. Absolutely placed, so the hero never resizes.
 */
.hero__reel {
	display: none;
}

@media (min-width: 64em) {
	.hero__reel {
		--reel-x: linear-gradient(90deg, transparent 6%, color-mix(in srgb, var(--black) 20%, transparent) 26%, color-mix(in srgb, var(--black) 65%, transparent) 42%, var(--black) 58%);
		/* Gone before the proof bar, so the stats sit on plain --bg. */
		--reel-y: linear-gradient(180deg, transparent, var(--black) 16%, var(--black) 56%, transparent 78%);
		display: block;
		position: absolute;
		inset-block: 0;
		right: 0;
		/* ~58% at 1280px; on wider screens it starts where the text column ends. */
		width: min(58%, 50% + 6rem);
		z-index: 0;
		pointer-events: none;
		-webkit-mask-image: var(--reel-x), var(--reel-y);
		-webkit-mask-composite: source-in;
		mask-image: var(--reel-x), var(--reel-y);
		mask-composite: intersect;
	}

	.hero__reel-video {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: cover;
		opacity: 0;
		transition: opacity 900ms ease;
	}

	.hero__reel.is-playing .hero__reel-video {
		opacity: 0.85;
	}
}

@media (min-width: 64em) and (prefers-reduced-motion: reduce) {
	.hero__reel {
		background: url("../video/hero-reel-poster.jpg?ver=1") center / cover no-repeat; /* Bump ?ver= when the poster changes (browsers keep it a year). */
		opacity: 0.85;
	}
}

/* ───────────────────────── Media ───────────────────────── */

/* The banner never grows past its native 720px. */
.banner-figure {
	width: 100%;
	max-width: 720px;
	margin: 0;
}

.banner-figure img {
	width: 100%;
	border-radius: var(--radius-lg);
	box-shadow: 0 0 0 1px var(--line-dark), 0 18px 48px -18px var(--glow);
}

.banner-figure figcaption {
	margin-top: var(--space-3);
	color: var(--text-muted);
	font-size: var(--fs-sm);
}

/* Mike's photo with an electric edge glow. Native width is 374px. */
.portrait {
	width: min(100%, 17rem);
	margin: 0;
}

.portrait img {
	width: 100%;
	aspect-ratio: 374 / 390;
	object-fit: cover;
	border-radius: var(--radius-lg);
	box-shadow: 0 0 0 1px var(--electric), 0 0 28px -4px var(--glow), 0 0 80px -20px var(--glow-soft);
}

@media (min-width: 64em) {
	.portrait {
		width: 20rem;
	}
}

/* ───────────────────────── Proof bar ───────────────────────── */

.proof {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-5) var(--space-4);
	margin: var(--space-7) 0 0;
	padding: var(--space-6) 0 0;
	border-top: 1px solid var(--line-dark);
	list-style: none;
}

@media (min-width: 48em) {
	.proof {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* ───────────────────────── Stat ───────────────────────── */

.stat {
	display: grid;
	gap: var(--space-1);
}

.stat__value {
	font-size: min(var(--fs-xl), 8vw);
	font-style: italic;
	font-weight: var(--weight-display);
	line-height: 1.1;
	letter-spacing: var(--track-heading);
	font-variant-numeric: tabular-nums;
}

.stat__label {
	color: var(--text-muted);
	font-size: var(--fs-sm);
}

/* ───────────────────────── Cards ───────────────────────── */

.card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	padding: var(--space-5);
	background: var(--card-bg);
	border: 1px solid var(--card-border);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
	transition: transform var(--dur-2) var(--ease-out), box-shadow var(--dur-2) var(--ease-out), border-color var(--dur-1) ease;
}

.band .card {
	box-shadow: none;
}

.card h3 {
	font-size: var(--fs-md);
	letter-spacing: -0.015em;
}

.card p {
	color: var(--text-muted);
	font-size: 0.9375rem;
}

/* Whole card clickable through its heading link. */
.card__link,
.band a.card__link {
	color: var(--text);
	text-decoration: none;
}

.card__link::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
}

.card:has(.card__link:focus-visible) {
	outline: 3px solid var(--focus);
	outline-offset: 2px;
}

.card__link:focus-visible {
	outline: none;
}

.card:has(.card__link):active {
	transform: scale(0.99);
}

.info-card__icon {
	display: grid;
	flex: none;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: var(--radius);
	background: var(--icon-tile-bg);
	color: var(--icon-tile-fg);
}

.info-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: var(--space-2);
}

/* Phones: icon beside the text keeps a stack of cards short. */
@media (max-width: 39.99em) {
	.info-card {
		flex-direction: row;
		align-items: flex-start;
		gap: var(--space-4);
		padding: var(--space-4);
	}
	.info-card .info-card__more {
		display: none;
	}
	.section {
		padding-block: var(--space-7);
	}
}

.info-card__more {
	display: inline-flex;
	align-items: center;
	gap: var(--space-1);
	margin-top: auto;
	padding-top: var(--space-2);
	color: var(--link);
	font-size: var(--fs-sm);
	font-weight: 650;
}

.info-card__more .icon {
	width: 1rem;
	height: 1rem;
	transition: transform var(--dur-1) var(--ease-out);
}

/* Video card (YouTube / Masterclass style). */
.video-card {
	padding: 0;
	overflow: hidden;
	gap: 0;
}

.video-card__thumb {
	position: relative;
	display: grid;
	place-items: center;
	aspect-ratio: 16 / 9;
	background:
		radial-gradient(120% 90% at 85% 0%, var(--glow), transparent 60%),
		linear-gradient(160deg, var(--navy), var(--bg));
	color: var(--on-dark);
}

.video-card__thumb img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.video-card__play {
	position: relative;
	display: grid;
	place-items: center;
	width: 3.25rem;
	height: 3.25rem;
	border-radius: var(--radius-pill);
	background: var(--electric);
	color: var(--bg);
	box-shadow: 0 0 24px -2px var(--glow);
	transition: transform var(--dur-2) var(--ease-out);
}

.video-card__play .icon {
	width: 1.25rem;
	height: 1.25rem;
	margin-left: 2px;
	fill: currentColor;
}

.video-card__duration {
	position: absolute;
	right: var(--space-3);
	bottom: var(--space-3);
	padding: 0.125rem 0.5rem;
	border-radius: var(--radius-sm);
	background: var(--bg);
	color: var(--on-dark);
	font-size: var(--fs-xs);
	font-weight: 650;
	font-variant-numeric: tabular-nums;
}

.video-card__carrier {
	position: absolute;
	left: var(--space-3);
	top: var(--space-3);
	padding: 0.25rem 0.625rem;
	border-radius: var(--radius-sm);
	background: var(--white);
	color: var(--ink);
	font-size: var(--fs-xs);
	font-weight: 700;
}

.video-card__body {
	display: grid;
	gap: var(--space-2);
	padding: var(--space-4) var(--space-5) var(--space-5);
}

/* With a button, the body fills the card so buttons line up along a row. */
.video-card__body:has(> .video-card__actions) {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
}

/* Above the whole-card link, so the button gets its own clicks. */
.video-card__actions {
	position: relative;
	z-index: 1;
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
	margin-top: auto;
	padding-top: var(--space-2);
}

/* ───────────────────────── Callout ───────────────────────── */

.callout {
	display: flex;
	gap: var(--space-3);
	padding: var(--space-4) var(--space-5);
	border: 1px solid var(--royal-tint-2);
	border-left: 3px solid var(--royal);
	border-radius: var(--radius);
	background: var(--royal-tint);
	color: var(--ink-2);
	font-size: 0.9375rem;
}

.callout > .icon {
	margin-top: 0.125rem;
	color: var(--royal);
}

.callout strong {
	color: var(--ink);
}

.callout--warning {
	border-color: var(--surface-2);
	border-left-color: var(--ink-2);
	background: var(--surface);
}

.callout--warning > .icon {
	color: var(--ink);
}

/* ───────────────────────── Coming next ───────────────────────── */

.coming-next {
	display: grid;
	gap: var(--space-4);
	max-width: var(--measure);
	padding: var(--space-6) var(--space-5);
	border: 1px dashed var(--line-strong);
	border-radius: var(--radius-lg);
	background: var(--white);
}

.coming-next h2 {
	font-size: var(--fs-xl);
	line-height: 1.12;
}

.coming-next p {
	color: var(--text-muted);
}

/* ───────────────────────── Forms ───────────────────────── */

.field {
	display: grid;
	gap: var(--space-2);
}

.field__label {
	font-size: 0.9375rem;
	font-weight: 650;
	color: var(--ink);
}

.field__hint {
	color: var(--muted);
	font-size: var(--fs-sm);
}

.field__error {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	color: var(--danger);
	font-size: var(--fs-sm);
	font-weight: 550;
}

.input,
.select {
	width: 100%;
	min-height: 3rem;
	padding: 0.625rem 0.875rem;
	border: 1px solid var(--line-strong);
	border-radius: var(--radius);
	background: var(--white);
	color: var(--ink);
	font-size: max(16px, 1rem);
	transition: border-color var(--dur-1) ease, box-shadow var(--dur-1) ease;
}

.select {
	appearance: none;
	padding-right: 2.5rem;
	background-image: linear-gradient(45deg, transparent 50%, var(--ink-2) 50%), linear-gradient(135deg, var(--ink-2) 50%, transparent 50%);
	background-position: calc(100% - 1.25rem) 50%, calc(100% - 0.9rem) 50%;
	background-size: 0.375rem 0.375rem;
	background-repeat: no-repeat;
}

.input:focus-visible,
.select:focus-visible {
	outline: none;
	border-color: var(--royal);
	box-shadow: 0 0 0 3px var(--royal-tint-2), 0 0 0 1px var(--royal);
}

.input[aria-invalid="true"],
.select[aria-invalid="true"] {
	border-color: var(--danger);
	background: var(--danger-tint);
}

.check {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	min-height: var(--tap);
	font-size: var(--fs-base);
	cursor: pointer;
}

.check input {
	width: 1.25rem;
	height: 1.25rem;
	margin: 0;
	accent-color: var(--royal);
}

/* ───────────────────────── Prose (legal pages) ───────────────────────── */

.prose {
	max-width: var(--measure);
	color: var(--ink-2);
}

.prose > * + * {
	margin-top: var(--space-4);
}

.prose h2 {
	margin-top: var(--space-6);
	color: var(--ink);
	font-size: var(--fs-lg);
}

.prose mark {
	background: var(--royal-tint-2);
	color: var(--ink);
	padding-inline: 0.2em;
	border-radius: 3px;
}

/* ───────────────────────── CTA band ───────────────────────── */

.cta-band {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	border-top: 1px solid var(--line-dark);
}

.cta-band__inner {
	display: grid;
	gap: var(--space-5);
	align-items: center;
	padding-block: var(--space-8);
}

.cta-band h2 {
	font-size: var(--fs-2xl);
	line-height: 1.08;
}

.cta-band p {
	color: var(--text-muted);
	font-size: var(--fs-md);
	margin-top: var(--space-3);
}

@media (min-width: 48em) {
	.cta-band__inner {
		grid-template-columns: 1fr auto;
	}
}

/* ───────────────────────── Footer ───────────────────────── */

.site-footer {
	position: relative;
	padding-block: var(--space-8) calc(var(--space-6) + env(safe-area-inset-bottom, 0px));
	font-size: var(--fs-sm);
}

/* A thin electric line that fades out at both ends. */
.site-footer::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--electric), transparent);
	opacity: 0.6;
}

.site-footer__grid {
	display: grid;
	gap: var(--space-6);
}

.site-header__inner > *,
.site-footer__grid > *,
.az-list li > *,
.grid > *,
.oep-dates > *,
.home-split > *,
.home-oep__grid > *,
.contact > *,
.carriers-layout > *,
.timeline__body > *,
.card > *,
.faq > *,
.faq__item summary > *,
.selected-carrier > *,
.contact__main > *,
.oep-banner__row > *,
.oep-banner > *,
.quick-links a > *,
.timeline__item,
.timeline__item > *,
.section-header > *,
.carriers-panel > *,
.carriers-stats > *,
.proof > *,
.stat > *,
.carriers-list > *,
.carrier-card__note > *,
.carrier-card__actions > *,
.contact-form__privacy > * {
	min-width: 0;
}

/* Body text breaks a word only when it can't fit the line at all (very large phone text). */
body {
	overflow-wrap: break-word;
}

.site-footer__about {
	max-width: 22rem;
	color: var(--text-muted);
	margin-top: var(--space-3);
}

.site-footer h2 {
	margin-bottom: var(--space-2);
	color: var(--text-muted);
	font-size: var(--fs-xs);
	font-weight: 750;
	letter-spacing: var(--track-eyebrow);
	text-transform: uppercase;
}

.site-footer ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-footer li a {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	min-height: var(--tap);
	text-decoration: none;
}

.site-footer__legal {
	display: grid;
	gap: var(--space-2);
	margin-top: var(--space-7);
	padding-top: var(--space-5);
	border-top: 1px solid var(--line-dark);
	color: var(--text-muted);
}

.site-footer__legal ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0 var(--space-5);
}

.pending {
	font-style: italic;
}

@media (min-width: 48em) {
	.site-footer__grid {
		grid-template-columns: 2fr 1fr 1fr;
	}
	.site-footer__legal {
		grid-template-columns: 1fr auto;
		align-items: center;
	}
}

/* ───────────────────────── Coming soon (gate) ───────────────────────── */

.gate {
	position: relative;
	display: grid;
	background: var(--bg);
	min-height: 100svh;
	overflow: hidden;
	isolation: isolate;
	padding: var(--space-7) var(--gutter) calc(var(--space-7) + env(safe-area-inset-bottom, 0px));
	place-items: center;
}

.gate__inner {
	position: relative;
	z-index: 1;
	display: grid;
	gap: var(--space-5);
	justify-items: center;
	width: 100%;
	max-width: 45rem;
	text-align: center;
}

.gate .wordmark {
	margin: 0;
	align-items: center;
}

.gate h1 {
	font-size: var(--fs-xl);
	line-height: 1.15;
	letter-spacing: var(--track-heading);
}

.gate .banner-figure {
	margin-top: var(--space-3);
}

.gate .badge {
	text-transform: uppercase;
	letter-spacing: var(--track-eyebrow);
}

/* ───────────────────────── Style guide ───────────────────────── */

.sg-section + .sg-section {
	margin-top: var(--space-8);
}

.sg-section > h2 {
	margin-bottom: var(--space-5);
	padding-bottom: var(--space-3);
	border-bottom: 1px solid var(--line);
	font-size: var(--fs-xl);
}

.sg-swatches {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
	gap: var(--space-3);
}

.sg-swatch {
	overflow: hidden;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	font-size: var(--fs-xs);
}

.sg-swatch__chip {
	height: 4rem;
	border-bottom: 1px solid var(--line);
}

.sg-swatch__meta {
	display: grid;
	padding: var(--space-2) var(--space-3);
}

.sg-swatch code,
.sg-table code {
	font-size: var(--fs-xs);
	color: var(--ink-2);
}

.sg-table-wrap {
	overflow-x: auto;
	border: 1px solid var(--line);
	border-radius: var(--radius);
}

.sg-table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--fs-sm);
	font-variant-numeric: tabular-nums;
}

.sg-table th,
.sg-table td {
	padding: var(--space-2) var(--space-3);
	border-bottom: 1px solid var(--line);
	text-align: left;
	vertical-align: middle;
}

.sg-table tr:last-child td {
	border-bottom: 0;
}

.sg-sample {
	display: inline-block;
	padding: 0.125rem 0.5rem;
	border-radius: var(--radius-sm);
	font-weight: 650;
}

.sg-sample--border {
	width: 2.5rem;
	height: 1.75rem;
	border: 2px solid;
	vertical-align: middle;
}

.sg-type > * + * {
	margin-top: var(--space-4);
}

.sg-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-3);
}

.sg-dark {
	position: relative;
	padding: var(--space-5);
	border-radius: var(--radius-lg);
}

.sg-motion__title {
	margin: var(--space-6) 0 var(--space-4);
	font-size: var(--fs-md);
}

.sg-motion__demo {
	overflow: hidden;
	isolation: isolate;
	padding-block: var(--space-6);
}

.sg-motion__inner {
	position: relative;
	display: grid;
	justify-items: start;
	gap: var(--space-3);
}

.sg-motion__headline {
	font-size: var(--fs-2xl);
	line-height: 1.05;
}

.sg-motion__proof {
	position: relative;
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}

.sg-frame {
	overflow: hidden;
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
}

.sg-note {
	color: var(--muted);
	font-size: var(--fs-sm);
	margin-top: var(--space-3);
}

/* ───────────────────────── Carrier tile ───────────────────────── */

.carrier-tile {
	display: inline-grid;
	flex: none;
	place-items: center;
	width: 2rem;
	height: 2rem;
	overflow: hidden;
	border: 1px solid var(--line-dark);
	border-radius: 8px;
	background: var(--navy);
	color: var(--ice);
	font-size: 0.75rem;
	font-style: italic;
	font-weight: 850;
	letter-spacing: -0.02em;
	line-height: 1;
}

.carrier-tile--lg {
	width: 3rem;
	height: 3rem;
	border-radius: var(--radius);
	font-size: 1.0625rem;
}

.carrier-tile--logo {
	padding: 3px;
	border-color: var(--line);
	background: var(--white);
}

.carrier-tile--logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

/* ───────────────────────── Training library ───────────────────────── */

.video-card__placeholder {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	gap: var(--space-1);
	padding: var(--space-4);
	color: var(--on-dark);
	text-align: left;
}

.video-card__placeholder span {
	font-size: var(--fs-lg);
	font-style: italic;
	font-weight: var(--weight-display);
	letter-spacing: var(--track-heading);
	line-height: 1.1;
}

.video-card__placeholder small {
	color: var(--on-dark-muted);
	font-size: var(--fs-xs);
	font-weight: 600;
}

.video-card__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-2);
	color: var(--text-muted);
	font-size: var(--fs-sm);
}

.video-card__meta time::before {
	content: "·";
	margin-right: var(--space-2);
}

.video-card__carrier-name {
	color: var(--text);
	font-weight: 600;
}

.video-card h3 {
	font-size: var(--fs-base);
	line-height: 1.35;
}

.video-grid--archived .video-card__thumb {
	filter: saturate(0.4);
}

.featured-video {
	display: grid;
	overflow: hidden;
	margin-bottom: var(--space-7);
	border: 1px solid var(--line-dark);
	border-radius: var(--radius-lg);
	box-shadow: 0 24px 60px -30px var(--glow);
}

.featured-video__media {
	position: relative;
	display: grid;
	place-items: center;
	aspect-ratio: 16 / 9;
	background:
		radial-gradient(120% 90% at 85% 0%, var(--glow), transparent 60%),
		linear-gradient(160deg, var(--navy), var(--bg));
}

.featured-video__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.featured-video__body {
	display: grid;
	align-content: center;
	gap: var(--space-3);
	padding: var(--space-5);
}

.featured-video h2 {
	font-size: var(--fs-xl);
	line-height: 1.12;
}

.featured-video__summary {
	color: var(--text-muted);
}

/* The course card sits above the featured webinar on /training. */
.featured-video--course {
	margin-bottom: var(--space-5);
}

.featured-video__facts {
	color: var(--text);
	font-weight: 650;
	font-variant-numeric: tabular-nums;
}

/* ───────────────────────── Course page ───────────────────────── */

.course-intro {
	display: grid;
	gap: var(--space-4);
	margin-bottom: var(--space-7);
}

.course-facts {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2) var(--space-5);
	margin: 0;
	padding: 0;
	list-style: none;
	font-weight: 650;
	font-variant-numeric: tabular-nums;
}

.course-facts li {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
}

.course-facts .icon {
	width: 1.125rem;
	height: 1.125rem;
	color: var(--link);
}

.course-section + .course-section {
	margin-top: var(--space-7);
}

.course-section__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--space-1) var(--space-4);
	margin-bottom: var(--space-3);
	padding-bottom: var(--space-2);
	border-bottom: 1px solid var(--line);
}

.course-section__head h2 {
	font-size: var(--fs-lg);
}

.course-section__meta {
	color: var(--text-muted);
	font-size: var(--fs-sm);
}

.lessons {
	display: grid;
	gap: var(--space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.lesson__link {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	padding: var(--space-2);
	border: 1px solid var(--card-border);
	border-radius: var(--radius);
	background: var(--card-bg);
	color: var(--text);
	text-decoration: none;
	transition: border-color var(--dur-1) ease, box-shadow var(--dur-2) var(--ease-out);
}

.lesson__link:active {
	transform: scale(0.99);
}

.lesson__thumb {
	position: relative;
	display: grid;
	flex: none;
	place-items: center;
	overflow: hidden;
	width: 7.5rem;
	aspect-ratio: 16 / 9;
	border-radius: var(--radius-sm);
	background:
		radial-gradient(120% 90% at 85% 0%, var(--glow), transparent 60%),
		linear-gradient(160deg, var(--navy), var(--bg));
}

.lesson__thumb img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.lesson__play {
	position: relative;
	display: grid;
	place-items: center;
	width: 2rem;
	height: 2rem;
	border-radius: var(--radius-pill);
	background: var(--electric);
	color: var(--bg);
}

.lesson__play .icon {
	width: 0.875rem;
	height: 0.875rem;
	margin-left: 2px;
	fill: currentColor;
}

.lesson__body {
	display: grid;
	flex: 1;
	gap: var(--space-1);
	min-width: 0;
}

.lesson__title {
	font-weight: 650;
	line-height: 1.3;
	overflow-wrap: anywhere;
}

.lesson__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0 var(--space-3);
	color: var(--text-muted);
	font-size: var(--fs-sm);
}

@media (max-width: 29.99em) {
	.lesson__thumb {
		width: 5.5rem;
	}
	.lesson__link {
		gap: var(--space-3);
	}
}

/* The lesson being watched, in its section's list on the lesson page. */
.lesson.is-current .lesson__link {
	border-color: var(--link);
	box-shadow: inset 3px 0 0 var(--link);
}

.lesson__now {
	color: var(--link);
	font-weight: 650;
}

.video-main > .lessons {
	margin-top: var(--space-3);
}

.lesson-all {
	margin-top: var(--space-4);
	font-weight: 600;
}

/* Previous / Next module on a course lesson. */
.lesson-nav {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
	margin-top: var(--space-5);
}

.lesson-nav .btn {
	flex: 1 1 auto;
}

@media (min-width: 40em) {
	.lesson-nav .btn {
		flex: 0 1 auto;
	}
}

@media (min-width: 56em) {
	.featured-video {
		grid-template-columns: 3fr 2fr;
	}
	.featured-video__media {
		aspect-ratio: auto;
		min-height: 20rem;
	}
	.featured-video__body {
		padding: var(--space-6);
	}
}

.filters {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-3);
	margin-bottom: var(--space-5);
	padding: var(--space-4);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	background: var(--surface);
}

.filters .field {
	gap: var(--space-1);
}

.filters .field__label {
	font-size: var(--fs-sm);
}

.filters__search,
.filters__submit {
	grid-column: 1 / -1;
}

.filters.is-instant .filters__submit {
	display: none;
}

@media (min-width: 64em) {
	.filters {
		grid-template-columns: 2fr repeat(4, minmax(0, 1fr));
		align-items: end;
	}
	.filters__search {
		grid-column: auto;
	}
}

.results-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-2) var(--space-4);
	margin-bottom: var(--space-4);
}

.results-count {
	font-weight: 650;
	font-variant-numeric: tabular-nums;
}

.results-count:focus {
	outline: none;
}

.results-clear {
	display: inline-flex;
	align-items: center;
	gap: var(--space-1);
	min-height: var(--tap);
	font-weight: 650;
}

.results-clear .icon {
	width: 1rem;
	height: 1rem;
}

[data-amm-results][aria-busy="true"] {
	opacity: 0.55;
	transition: opacity var(--dur-2) ease;
}

.archive-heading {
	display: grid;
	gap: var(--space-2);
	margin: var(--space-7) 0 var(--space-4);
	padding-top: var(--space-5);
	border-top: 1px solid var(--line);
}

.archive-heading h2 {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-2);
	font-size: var(--fs-lg);
}

.archive-heading p {
	color: var(--text-muted);
	font-size: var(--fs-sm);
}

.empty-state {
	display: grid;
	justify-items: center;
	gap: var(--space-3);
	padding: var(--space-8) var(--space-4);
	border: 1px dashed var(--line-strong);
	border-radius: var(--radius-lg);
	text-align: center;
}

.empty-state__icon {
	display: grid;
	place-items: center;
	width: 3.5rem;
	height: 3.5rem;
	border-radius: var(--radius-pill);
	background: var(--icon-tile-bg);
	color: var(--icon-tile-fg);
}

.empty-state h2 {
	font-size: var(--fs-lg);
}

.empty-state p {
	max-width: 28rem;
	color: var(--text-muted);
}

.pagination {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--space-3);
	margin-top: var(--space-6);
}

.pagination__status {
	color: var(--text-muted);
	font-size: var(--fs-sm);
}

/* ───────────────────────── Video page ───────────────────────── */

.video-hero {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	padding-block: var(--space-5) var(--space-7);
}

.crumbs ol {
	display: flex;
	flex-wrap: wrap;
	margin: 0 0 var(--space-4);
	padding: 0;
	list-style: none;
	font-size: var(--fs-sm);
}

.crumbs li + li::before {
	content: "/";
	margin: 0 var(--space-2);
	color: var(--text-muted);
}

.crumbs a {
	display: inline-flex;
	align-items: center;
	min-height: var(--tap);
	color: var(--text-muted);
}

.band .crumbs a {
	color: var(--on-dark-muted);
}

.video-stage {
	max-width: 60rem;
}

.player {
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	border-radius: var(--radius-lg);
	background: var(--black);
	box-shadow: 0 0 0 1px var(--line-dark), 0 24px 60px -24px var(--glow);
}

.player__poster {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	background:
		radial-gradient(120% 90% at 85% 0%, var(--glow), transparent 60%),
		linear-gradient(160deg, var(--navy), var(--bg));
	color: var(--on-dark);
}

.player__poster img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.player__play {
	position: relative;
	display: grid;
	place-items: center;
	width: 4.5rem;
	height: 4.5rem;
	border-radius: var(--radius-pill);
	background: var(--electric);
	color: var(--bg);
	box-shadow: 0 0 0 6px var(--glow-soft), 0 0 40px -4px var(--glow);
	transition: transform var(--dur-2) var(--ease-out);
}

.player__play .icon {
	width: 1.75rem;
	height: 1.75rem;
	margin-left: 4px;
	fill: currentColor;
}

.player__poster:active .player__play {
	transform: scale(0.95);
}

.player iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.featured-video__media .player__play {
	width: 3.5rem;
	height: 3.5rem;
}

.video-head {
	display: grid;
	gap: var(--space-3);
	max-width: 50rem;
	margin-top: var(--space-5);
}

.video-head h1 {
	font-size: var(--fs-2xl);
	line-height: 1.08;
}

.video-head__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-2) var(--space-5);
	color: var(--text-muted);
	font-size: var(--fs-sm);
}

.video-head__meta > span {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
}

.video-head__meta .icon {
	width: 1rem;
	height: 1rem;
}

.video-head__carrier {
	color: var(--text);
	font-weight: 650;
}

.video-layout {
	display: grid;
	gap: var(--space-7);
}

@media (min-width: 64em) {
	.video-layout {
		grid-template-columns: minmax(0, 1fr) 20rem;
		align-items: start;
	}
	.video-aside {
		position: sticky;
		top: calc(var(--header-h) + var(--space-5));
	}
}

.video-main {
	display: grid;
	gap: var(--space-4);
	max-width: var(--measure);
	color: var(--ink-2);
}

.video-main h2 {
	margin-top: var(--space-4);
	color: var(--ink);
	font-size: var(--fs-lg);
}

.video-summary {
	color: var(--ink);
	font-size: var(--fs-md);
}

.video-note {
	color: var(--muted);
	font-size: var(--fs-sm);
	margin-top: calc(var(--space-2) * -1);
}

.takeaways,
.chapters,
.downloads {
	display: grid;
	gap: var(--space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.takeaways li {
	display: flex;
	gap: var(--space-3);
	align-items: flex-start;
}

.takeaways .icon {
	margin-top: 0.2em;
	color: var(--royal);
}

.chapter {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	min-height: var(--tap);
	padding: var(--space-2) var(--space-4);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: var(--white);
	color: var(--ink);
	text-decoration: none;
	transition: border-color var(--dur-1) ease, background-color var(--dur-1) ease, transform var(--dur-1) var(--ease-out);
}

a.chapter:active {
	transform: scale(0.99);
}

.chapter__time {
	min-width: 3.75rem;
	color: var(--royal);
	font-weight: 700;
}

.chapter--static {
	background: var(--surface);
}

.downloads a {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	min-height: 3.25rem;
	padding: var(--space-2) var(--space-4);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	color: var(--ink);
	font-weight: 600;
	text-decoration: none;
}

.downloads a > span:first-of-type {
	flex: 1;
}

.downloads__meta {
	color: var(--muted);
	font-size: var(--fs-xs);
	font-weight: 600;
}

.downloads .icon {
	color: var(--royal);
}

.details dl {
	display: grid;
	gap: var(--space-3);
	margin: 0 0 var(--space-2);
}

.details dl > div {
	display: grid;
	gap: 2px;
}

.details dt {
	color: var(--muted);
	font-size: var(--fs-xs);
	font-weight: 700;
	letter-spacing: var(--track-eyebrow);
	text-transform: uppercase;
}

.details dd {
	margin: 0;
	color: var(--ink);
	font-weight: 550;
}

.more-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--space-3);
	margin-bottom: var(--space-6);
}

.more-head .section-header {
	margin-bottom: 0;
}

@media (hover: hover) and (pointer: fine) {
	.featured-video__media:hover .player__play,
	.player__poster:hover .player__play {
		transform: scale(1.06);
	}
	a.chapter:hover,
	.downloads a:hover {
		border-color: var(--royal);
		background: var(--royal-tint);
	}
}

/* ───────────────────────── Carriers by state ───────────────────────── */

.carriers-tool {
	padding-block: var(--space-6) var(--space-7);
}

.state-picker {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: var(--space-3);
	margin-bottom: var(--space-5);
}

.state-picker .field {
	flex: 1 1 14rem;
	max-width: 22rem;
	gap: var(--space-1);
}

.band .state-picker .field__label {
	color: var(--on-dark);
}

.band .state-picker .select {
	border-color: var(--line-dark-strong);
}

.carriers-layout {
	display: grid;
	gap: var(--space-6);
	align-items: start;
}

@media (min-width: 64em) {
	.carriers-layout {
		grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
	}
	/* The map stays in view while a long carrier list scrolls past. */
	.carriers-map {
		position: sticky;
		top: calc(var(--header-h) + var(--space-4));
	}
}

.us-map {
	width: 100%;
	height: auto;
	overflow: visible;
}

.us-map__state path,
.us-map__callout {
	stroke: var(--navy);
	stroke-width: 1;
	stroke-linejoin: round;
	transition: filter 250ms ease;
}

.us-map__state.step-0 path, .us-map__state.step-0 .us-map__callout, .map-legend__swatch.step-0 { fill: var(--map-0); background: var(--map-0); }
.us-map__state.step-1 path, .us-map__state.step-1 .us-map__callout, .map-legend__swatch.step-1 { fill: var(--map-1); background: var(--map-1); }
.us-map__state.step-2 path, .us-map__state.step-2 .us-map__callout, .map-legend__swatch.step-2 { fill: var(--map-2); background: var(--map-2); }
.us-map__state.step-3 path, .us-map__state.step-3 .us-map__callout, .map-legend__swatch.step-3 { fill: var(--map-3); background: var(--map-3); }
.us-map__state.step-4 path, .us-map__state.step-4 .us-map__callout, .map-legend__swatch.step-4 { fill: var(--map-4); background: var(--map-4); }

.us-map__label {
	fill: var(--on-dark);
	font-size: 13px;
	font-weight: 750;
	text-anchor: middle;
	pointer-events: none;
	user-select: none;
}

.us-map__state.step-3 .us-map__label,
.us-map__state.step-4 .us-map__label {
	fill: var(--bg);
}

.us-map__label--callout {
	font-size: 12px;
}

.us-map__leader {
	stroke: var(--on-dark-muted);
	stroke-width: 1;
}

.us-map__state {
	cursor: pointer;
	outline: none;
}

.us-map__state:focus-visible path,
.us-map__state:focus-visible .us-map__callout {
	stroke: var(--white);
	stroke-width: 3;
}

.us-map__state.is-selected path,
.us-map__state.is-selected .us-map__callout {
	fill: var(--white);
}

.us-map__state.is-selected .us-map__label {
	fill: var(--bg);
}

.us-map__highlight {
	fill: none;
	stroke: var(--white);
	stroke-width: 2.5;
	stroke-linejoin: round;
	pointer-events: none;
	filter: drop-shadow(0 0 6px var(--glow));
}

.us-map__highlight[hidden] {
	display: none;
}

/* Labels inside states are too small to read on phones; the dropdown and the callouts carry them. */
@media (max-width: 39.99em) {
	.us-map__label:not(.us-map__label--callout) {
		display: none;
	}
}

.map-legend {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-2) var(--space-4);
	margin-top: var(--space-3);
	color: var(--text-muted);
	font-size: var(--fs-sm);
}

.map-legend__title {
	color: var(--text);
	font-weight: 650;
}

.map-legend ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2) var(--space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

.map-legend li {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	font-variant-numeric: tabular-nums;
}

.map-legend__swatch {
	width: 1rem;
	height: 1rem;
	border: 1px solid var(--line-dark-strong);
	border-radius: 4px;
}

.carriers-panel {
	display: grid;
	gap: var(--space-4);
	padding: var(--space-5);
	border: 1px solid var(--line-dark);
	border-radius: var(--radius-lg);
	background: var(--bg);
	scroll-margin-top: calc(var(--header-h) + var(--space-3));
}

.carriers-panel[aria-busy="true"] {
	opacity: 0.6;
}

.carriers-panel h2 {
	font-size: var(--fs-xl);
	line-height: 1.12;
}

.carriers-panel h2:focus {
	outline: none;
}

.carriers-panel__intro {
	display: grid;
	gap: var(--space-3);
}

.carriers-panel__intro p {
	color: var(--text-muted);
}

.carriers-stats {
	display: flex;
	gap: var(--space-6);
	margin: var(--space-2) 0 0;
	padding: 0;
	list-style: none;
}

.carriers-panel__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--space-2) var(--space-4);
}

.carriers-panel__clear {
	display: inline-flex;
	align-items: center;
	gap: var(--space-1);
	min-height: var(--tap);
	font-size: var(--fs-sm);
	font-weight: 650;
}

.carriers-panel__clear .icon {
	width: 1rem;
	height: 1rem;
}

.carriers-list {
	display: grid;
	gap: var(--space-3);
}

.carriers-empty {
	display: grid;
	gap: var(--space-3);
	justify-items: start;
	padding: var(--space-4);
	border: 1px dashed var(--line-dark-strong);
	border-radius: var(--radius);
	color: var(--text-muted);
}

.carriers-empty strong {
	color: var(--text);
}

.carriers-alt {
	display: grid;
	gap: var(--space-2);
	padding-top: var(--space-4);
	border-top: 1px solid var(--line-dark);
}

.carriers-alt h3 {
	font-size: var(--fs-md);
}

.carriers-alt > p {
	color: var(--text-muted);
	font-size: var(--fs-sm);
}

.alt-list {
	display: grid;
	gap: var(--space-1);
	margin: 0;
	padding: 0;
	list-style: none;
}

.alt-list li {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-1) var(--space-3);
	min-height: var(--tap);
	font-size: var(--fs-sm);
}

.alt-list__name {
	flex: 1;
	font-weight: 600;
}

.alt-list a {
	display: inline-flex;
	align-items: center;
	gap: var(--space-1);
	min-height: var(--tap);
	margin-left: auto; /* Stays at the right edge when it wraps under a long name. */
	font-weight: 600;
}

.alt-list a .icon {
	flex: none;
	width: 1rem;
	height: 1rem;
}

.carriers-footnote {
	display: flex;
	gap: var(--space-2);
	max-width: 52rem;
	margin-top: var(--space-6);
	color: var(--text-muted);
	font-size: var(--fs-sm);
}

.carriers-footnote .icon {
	width: 1rem;
	height: 1rem;
	margin-top: 0.2em;
	color: var(--electric);
}

/* Carrier card */

.carrier-card {
	gap: var(--space-3);
	padding: var(--space-4);
}

.carrier-card__head {
	display: flex;
	align-items: center;
	gap: var(--space-3);
}

.carrier-card__name {
	font-size: var(--fs-md);
	line-height: 1.25;
}

.carrier-card__meta {
	color: var(--text-muted);
	font-size: var(--fs-sm);
}

.carrier-card__note {
	display: flex;
	gap: var(--space-2);
	color: var(--text-muted);
	font-size: var(--fs-sm);
}

.carrier-card__note .icon {
	width: 1rem;
	height: 1rem;
	margin-top: 0.2em;
	color: var(--link);
}

.carrier-card__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
	margin-top: auto;
}

.carrier-card__actions .btn {
	flex: 0 1 auto;
}

/* A–Z */

.az-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(16rem, 100%), 1fr));
	gap: 0 var(--space-6);
	margin: 0;
	padding: 0;
	list-style: none;
}

.az-list li {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	min-height: 3rem;
	border-bottom: 1px solid var(--line);
}

.az-list__name {
	flex: 1;
	font-weight: 600;
}

.az-list__count {
	color: var(--muted);
	font-size: var(--fs-sm);
}

/* ───────────────────────── Contracting ───────────────────────── */

.selected-carrier {
	display: grid;
	gap: var(--space-4);
	max-width: 48rem;
}

.selected-carrier__head {
	display: flex;
	align-items: center;
	gap: var(--space-4);
}

/* Flex and grid children may shrink below their content, so nothing inside pushes past the screen. */
.selected-carrier__head > *,
.carrier-card__head > *,
.hero__grid > * {
	min-width: 0;
}

.selected-carrier h2 {
	font-size: var(--fs-2xl);
	line-height: 1.05;
}

.selected-carrier__label {
	font-weight: 650;
}

.selected-carrier__other {
	justify-self: start;
	display: inline-flex;
	align-items: center;
	min-height: var(--tap);
	font-size: var(--fs-sm);
}

.state-chips {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.state-chips li {
	padding: 0.125rem 0.5rem;
	border: 1px solid var(--line-dark-strong);
	border-radius: var(--radius-sm);
	font-size: var(--fs-sm);
	font-weight: 650;
	font-variant-numeric: tabular-nums;
}

.state-chips abbr {
	text-decoration: none;
}

.steps {
	display: grid;
	gap: var(--space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 48em) {
	.steps {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.step__num {
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: var(--radius-pill);
	background: var(--royal);
	color: var(--white);
	font-style: italic;
	font-weight: var(--weight-display);
}

.grid-group-title {
	margin: var(--space-6) 0 var(--space-4);
	font-size: var(--fs-lg);
}

.grid-group-title:first-child {
	margin-top: var(--space-2);
}

.grid-group-title:focus {
	outline: none;
}

.state-picker--light {
	margin-bottom: var(--space-4);
}

.faq {
	display: grid;
	gap: var(--space-3);
	max-width: var(--measure);
}

.faq__item {
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: var(--white);
}

.faq__item summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-3);
	min-height: 3.25rem;
	padding: var(--space-3) var(--space-4);
	font-weight: 650;
	cursor: pointer;
	list-style: none;
	border-radius: var(--radius);
}

.faq__item summary::-webkit-details-marker {
	display: none;
}

.faq__item summary .icon {
	color: var(--royal);
	transition: transform var(--dur-2) var(--ease-out);
}

.faq__item[open] summary .icon {
	transform: rotate(90deg);
}

.faq__answer {
	padding: 0 var(--space-4) var(--space-4);
	color: var(--ink-2);
}

/* ───────────────────────── OEP hub ───────────────────────── */

.section--tight {
	padding-block: var(--space-7);
}

@media (min-width: 64em) {
	.section.section--tight {
		padding-block: var(--space-8);
	}
}

/* Countdown banner. The number is the hero; everything else supports it. */
.oep-banner {
	display: grid;
	justify-items: start;
	gap: var(--space-4);
}

.oep-banner__line {
	display: grid;
	gap: var(--space-2);
	font-size: var(--fs-lg);
	line-height: 1.2;
}

.oep-banner__lead {
	font-size: var(--fs-xl);
	font-style: italic;
	font-weight: var(--weight-display);
	letter-spacing: var(--track-heading);
}

.oep-banner__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-4) var(--space-5);
}

.oep-banner__num {
	flex: none;
	font-size: clamp(5rem, 3.4rem + 7vw, 9rem);
	font-style: italic;
	font-weight: var(--weight-display);
	line-height: 0.88;
	letter-spacing: -0.045em;
	font-variant-numeric: tabular-nums;
	padding-right: 0.06em;
	text-shadow: 0 0 48px var(--glow);
}

.oep-banner__words {
	display: grid;
	gap: var(--space-2);
	max-width: 20ch;
}

.oep-banner__after {
	font-size: var(--fs-xl);
	font-weight: 750;
	line-height: 1.15;
	letter-spacing: var(--track-heading);
}

.oep-banner__title {
	font-size: var(--fs-2xl);
	font-style: italic;
	font-weight: var(--weight-display);
	letter-spacing: var(--track-display);
	line-height: 1.08;
}

.oep-banner__date {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	color: var(--link);
	font-size: var(--fs-md);
	font-weight: 700;
	letter-spacing: 0;
	font-variant-numeric: tabular-nums;
}

.oep-banner__date .icon {
	width: 1.125rem;
	height: 1.125rem;
}

.oep-banner__note {
	display: inline-flex;
	align-items: flex-start;
	gap: var(--space-2);
	padding: var(--space-2) var(--space-4);
	border-radius: var(--radius);
	background: var(--electric-tint);
	color: var(--ice);
	font-weight: 650;
}

.oep-banner__note .icon {
	flex: none;
	width: 1.125rem;
	height: 1.125rem;
	margin-top: 0.25em;
}

.oep-banner__sep {
	max-width: var(--measure);
	color: var(--text-muted);
}

/* Key dates */
.oep-dates {
	display: grid;
	gap: var(--space-7);
}

@media (min-width: 64em) {
	.oep-dates {
		grid-template-columns: minmax(0, 1fr) 21rem;
		align-items: start;
	}
	.quick-links {
		position: sticky;
		top: calc(var(--header-h) + var(--space-5));
	}
}

.timeline {
	max-width: var(--measure);
	margin: 0;
	padding: 0;
	list-style: none;
}

.timeline__item {
	position: relative;
	display: grid;
	grid-template-columns: 1.5rem minmax(0, 1fr);
	gap: var(--space-4);
	padding-bottom: var(--space-5);
}

.timeline__item:not(:last-child)::before {
	content: "";
	position: absolute;
	top: 1.75rem;
	bottom: 0.25rem;
	left: calc(0.75rem - 1px);
	width: 2px;
	border-radius: 1px;
	background: var(--line);
}

.timeline__item.is-past:not(:last-child)::before {
	background: var(--royal);
}

.timeline__dot {
	display: grid;
	place-items: center;
	width: 1.5rem;
	height: 1.5rem;
	margin-top: 0.125rem;
	border: 2px solid var(--line-strong);
	border-radius: 50%;
	background: var(--white);
	color: var(--white);
}

.timeline__dot .icon {
	width: 0.875rem;
	height: 0.875rem;
	stroke-width: 3;
}

.is-past .timeline__dot {
	border-color: var(--royal);
	background: var(--royal);
}

.is-today .timeline__dot {
	border-color: var(--royal);
	box-shadow: 0 0 0 4px var(--royal-tint-2);
}

.timeline__body {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-1) var(--space-2);
}

.timeline__body h3,
.timeline__body p {
	flex-basis: 100%;
}

.timeline__date {
	color: var(--royal);
	font-size: var(--fs-sm);
	font-weight: 750;
	font-variant-numeric: tabular-nums;
}

.timeline__body h3 {
	font-size: var(--fs-md);
}

.timeline__body p {
	color: var(--text-muted);
	font-size: 0.9375rem;
}

/* Quick links */
.quick-links {
	padding: var(--space-5);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	background: var(--surface);
}

.quick-links h2 {
	font-size: var(--fs-lg);
	margin-bottom: var(--space-2);
}

.quick-links ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.quick-links li + li {
	border-top: 1px solid var(--line);
}

.quick-links a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-3);
	min-height: var(--tap);
	padding-block: var(--space-3);
	color: var(--ink);
	font-weight: 650;
	line-height: 1.35;
	text-decoration: none;
}

.quick-links a .icon {
	flex: none;
	width: 1.125rem;
	height: 1.125rem;
	color: var(--royal);
}

/* Tables */
.table-wrap {
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	background: var(--white);
	overflow: hidden;
}

.data-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
}

.data-table th,
.data-table td {
	padding: var(--space-3) var(--space-4);
	border-bottom: 1px solid var(--line);
	text-align: left;
	vertical-align: top;
}

.data-table thead th {
	background: var(--surface-2);
	color: var(--ink-2);
	font-size: var(--fs-xs);
	font-weight: 750;
	letter-spacing: var(--track-eyebrow);
	text-transform: uppercase;
}

.data-table tbody tr:last-child > * {
	border-bottom: 0;
}

.data-table td {
	color: var(--ink-2);
	font-variant-numeric: tabular-nums;
}

/* State-run exchanges: the exchange name links out (new tab); the state filter hides rows. */
.states-table__link {
	color: var(--royal);
	font-weight: 650;
	text-underline-offset: 0.18em;
}

.states-table__last {
	white-space: nowrap;
}

.states-table__link .icon {
	display: inline-block;
	width: 0.875rem;
	height: 0.875rem;
	margin-left: 0.25rem;
	vertical-align: -0.05em;
}

@media (min-width: 48em) {
	.states-table time {
		white-space: nowrap;
	}
}

@media (max-width: 47.99em) {
	.states-table td.is-empty {
		display: none;
	}
}

.states-table tr[hidden],
.table-wrap[hidden],
.empty-note[hidden] {
	display: none;
}

@media (max-width: 47.99em) {
	.states-table thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
	}
	.states-table tr {
		display: block;
		padding: var(--space-4);
		border-bottom: 1px solid var(--line);
	}
	.states-table tbody tr:last-child {
		border-bottom: 0;
	}
	.states-table th,
	.states-table td {
		display: grid;
		grid-template-columns: 6rem minmax(0, 1fr);
		gap: var(--space-3);
		padding: var(--space-1) 0;
		border: 0;
	}
	.states-table tbody th {
		display: block;
		padding-bottom: var(--space-2);
		font-size: var(--fs-md);
	}
	.states-table td::before {
		content: attr(data-label);
		color: var(--muted);
		font-size: var(--fs-sm);
		font-weight: 650;
	}
}

.empty-note {
	display: flex;
	align-items: flex-start;
	gap: var(--space-3);
	max-width: var(--measure);
	padding: var(--space-4) var(--space-5);
	border: 1px dashed var(--line-strong);
	border-radius: var(--radius-lg);
	background: var(--card-bg);
	color: var(--ink-2);
}

.empty-note .icon {
	flex: none;
	width: 1.25rem;
	height: 1.25rem;
	margin-top: 0.15em;
	color: var(--royal);
}

/* Category chips: the label is always text; color only reinforces it. */
.chip {
	display: inline-flex;
	align-items: center;
	min-height: 1.5rem;
	padding: 0.125rem 0.625rem;
	border-radius: var(--radius-pill);
	background: var(--chip-bg, var(--badge-muted-bg));
	color: var(--chip-fg, var(--badge-muted-fg));
	font-size: var(--fs-xs);
	font-weight: 700;
	line-height: 1.3;
	white-space: nowrap;
}

.chip--deadline {
	--chip-bg: var(--danger-tint);
	--chip-fg: var(--danger);
}

.chip--carrier-change {
	--chip-bg: var(--badge-plan-bg);
	--chip-fg: var(--badge-plan-fg);
}

.chip--rule-change {
	--chip-bg: var(--icon-tile-bg);
	--chip-fg: var(--icon-tile-fg);
}

.band .chip--deadline {
	--chip-bg: var(--ice);
	--chip-fg: var(--bg);
}

.band .chip--tip {
	box-shadow: inset 0 0 0 1px var(--line-dark-strong);
}

/* Updates feed */
.updates {
	display: grid;
	gap: var(--space-4);
	max-width: 48rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.update {
	display: grid;
	gap: var(--space-2);
	padding: var(--space-5);
	border: 1px solid var(--card-border);
	border-radius: var(--radius-lg);
	background: var(--card-bg);
}

.update__title {
	font-size: var(--fs-md);
	line-height: 1.3;
}

.update__title a {
	color: var(--text);
	text-decoration: none;
}

.update__title a:focus-visible {
	text-decoration: underline;
}

/* One update's own page. */
.update-page {
	display: grid;
	gap: var(--space-5);
	max-width: 48rem;
}

.update-page__carrier {
	max-width: 32rem;
}

.update__body {
	color: var(--ink-2);
}

.update__body > * + * {
	margin-top: var(--space-3);
}

.update__foot {
	margin-top: var(--space-1);
	font-size: var(--fs-xs);
}

.update__carrier {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	color: var(--text);
	font-weight: 650;
}

.update__carrier .carrier-tile {
	width: 1.5rem;
	height: 1.5rem;
	font-size: 0.625rem;
}

.updates--compact {
	gap: 0;
}

.updates--compact .update {
	padding: var(--space-4) 0;
	border: 0;
	border-bottom: 1px solid var(--line-dark);
	border-radius: 0;
	background: none;
}

.updates--compact li:first-child .update {
	border-top: 1px solid var(--line-dark);
}

/* Carrier changes */
.change-card__title {
	color: var(--text);
	font-weight: 700;
}

.oep-footnote {
	max-width: 48rem;
}

/* ───────────────────────── Home ───────────────────────── */

.section-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--space-3) var(--space-5);
	margin-bottom: var(--space-6);
}

.section-head .section-header {
	margin-bottom: 0;
}

.more-link {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	min-height: var(--tap);
	color: var(--link);
	font-weight: 700;
	text-decoration: none;
}

.more-link .icon {
	width: 1.125rem;
	height: 1.125rem;
	transition: transform var(--dur-1) var(--ease-out);
}

.featured-video h3 {
	font-size: var(--fs-xl);
	line-height: 1.12;
}

.home-videos {
	margin-top: calc(var(--space-5) - var(--space-7));
}

.featured-video + .home-videos {
	margin-top: 0;
}

.home-oep,
.home-contract {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

.home-oep__grid {
	display: grid;
	gap: var(--space-7);
}

.home-oep__banner {
	display: grid;
	justify-items: start;
	gap: var(--space-6);
}

.home-oep__title {
	margin-bottom: var(--space-3);
	font-size: var(--fs-lg);
}

@media (min-width: 64em) {
	.home-oep__grid {
		grid-template-columns: minmax(0, 1fr) minmax(0, 26rem);
		align-items: center;
		gap: var(--space-8);
	}
	.home-oep__grid--solo {
		grid-template-columns: minmax(0, 1fr);
	}
}

.home-split {
	display: grid;
	gap: var(--space-6);
	align-items: center;
}

@media (min-width: 56em) {
	.home-split {
		grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
		gap: var(--space-8);
	}
}

.home-split .section-header {
	margin-bottom: var(--space-5);
}

.home-map {
	display: block;
	padding: var(--space-5);
	border-radius: var(--radius-lg);
	background: var(--navy);
	box-shadow: 0 24px 60px -30px var(--glow);
}

.us-map__shape {
	stroke: var(--navy);
	stroke-width: 1;
	stroke-linejoin: round;
}

.us-map__shape.step-0 { fill: var(--map-0); }
.us-map__shape.step-1 { fill: var(--map-1); }
.us-map__shape.step-2 { fill: var(--map-2); }
.us-map__shape.step-3 { fill: var(--map-3); }
.us-map__shape.step-4 { fill: var(--map-4); }

.home-contract {
	border-block: 1px solid var(--line-dark);
}

.home-contract__inner {
	display: grid;
	gap: var(--space-5);
	align-items: center;
}

.home-contract h2 {
	font-size: var(--fs-2xl);
	font-style: italic;
	font-weight: var(--weight-display);
	letter-spacing: var(--track-display);
	line-height: 1.08;
}

.home-contract p {
	margin-top: var(--space-3);
	color: var(--text-muted);
	font-size: var(--fs-md);
}

@media (min-width: 56em) {
	.home-contract__inner {
		grid-template-columns: minmax(0, 1fr) auto;
		gap: var(--space-7);
	}
}

/* ───────────────────────── Commissions (/commissions) ───────────────────────── */

.agency__points {
	display: grid;
	gap: var(--space-4);
	max-width: var(--measure);
	margin: 0;
	padding: 0;
	list-style: none;
}

.agency__points li {
	display: flex;
	align-items: flex-start;
	gap: var(--space-3);
	color: var(--ink-2);
	font-size: var(--fs-md);
	line-height: 1.5;
}

.agency__points .icon {
	flex: none;
	width: 1.5rem;
	height: 1.5rem;
	margin-top: 0.1em;
	color: var(--royal);
}

.rates-filters {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: var(--space-3) var(--space-4);
	margin-bottom: var(--space-5);
}

.rates-filters[hidden],
.rates-table tr[hidden] {
	display: none;
}

.rates-filters .field {
	flex: 1 1 13rem;
	max-width: 20rem;
	gap: var(--space-1);
}

.rates-count {
	flex: 1 1 100%;
	margin: 0;
	color: var(--muted);
	font-size: var(--fs-sm);
}

.rates-table thead th {
	vertical-align: bottom;
}

.rates-table thead th[colspan] {
	text-align: center;
	white-space: nowrap;
}

.rates-table .rates-table__rate {
	font-variant-numeric: tabular-nums;
	text-align: right;
	white-space: nowrap;
}

.rates-table thead tr:last-child th {
	text-align: right;
}

/* Marketplace Mastery rate: the brand accent, so your rate is what the eye lands on. */
.rates-table thead th.is-l7 {
	background: var(--royal);
	color: var(--white);
}

.rates-table td.is-l7 {
	background: var(--royal-tint);
	color: var(--royal-hover);
	font-weight: 750;
}

.rates-table__carrier {
	color: var(--ink);
	font-weight: 700;
}

.rates-table__plan .badge {
	margin-left: var(--space-1);
}

.rates-footnote {
	max-width: var(--measure);
	margin-top: var(--space-4);
	color: var(--muted);
	font-size: var(--fs-sm);
}

@media (min-width: 48em) {
	.rates-table__states {
		min-width: 9rem;
	}
	.rates-table__plan .badge {
		display: inline-flex;
	}
}

/* Phones: every row is a card; Marketplace Mastery and standard sit side by side. */
@media (max-width: 47.99em) {
	.rates-wrap {
		border: 0;
		background: none;
		overflow: visible;
	}
	.rates-table thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
	}
	.rates-table,
	.rates-table tbody {
		display: block;
	}
	.rates-table tbody {
		display: grid;
		gap: var(--space-3);
	}
	.rates-table tr {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: var(--space-2);
		padding: var(--space-4);
		border: 1px solid var(--line);
		border-radius: var(--radius-lg);
		background: var(--white);
	}
	.rates-table th,
	.rates-table td {
		padding: 0;
		border: 0;
	}
	.rates-table tbody tr:last-child > * {
		border: 0;
	}
	.rates-table__carrier,
	.rates-table__plan,
	.rates-table__states {
		grid-column: 1 / -1;
	}
	.rates-table__carrier {
		font-size: var(--fs-md);
	}
	.rates-table__plan.is-empty {
		display: none;
	}
	.rates-table__states {
		margin-bottom: var(--space-1);
		font-size: var(--fs-sm);
	}
	.rates-table__states::before {
		content: attr(data-label) ": ";
		color: var(--muted);
		font-weight: 650;
	}
	.rates-table .rates-table__rate {
		display: grid;
		gap: 0.125rem;
		padding: var(--space-2) var(--space-3);
		border-radius: var(--radius);
		background: var(--surface);
		text-align: left;
		font-size: var(--fs-md);
	}
	.rates-table td.is-l7 {
		background: var(--royal-tint);
	}
	.rates-table__rate::before {
		content: attr(data-label);
		color: var(--muted);
		font-size: var(--fs-xs);
		font-weight: 650;
		white-space: normal;
	}
	.rates-table td.is-l7::before {
		color: var(--royal-hover);
	}
}

/* Commissions: jump links under the hero. */
.jump-links {
	border-bottom: 1px solid var(--line);
	background: var(--white);
}

.jump-links ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0 var(--space-5);
	margin: 0;
	padding: 0;
	list-style: none;
}

.jump-links a {
	display: inline-flex;
	align-items: center;
	min-height: var(--tap);
	color: var(--royal);
	font-weight: 650;
}

/* Short-term medical & ancillary (UHOne): category chips, search, state. */
.products-filters {
	display: grid;
	gap: var(--space-4);
	margin-bottom: var(--space-5);
}

.products-filters[hidden],
.products-table tr[hidden],
.products-table tbody[hidden] {
	display: none;
}

.products-filters__chips {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
}

.chip--button {
	min-height: var(--tap);
	padding-inline: 0.875rem;
	font: inherit;
	font-size: var(--fs-sm);
	font-weight: 650;
	letter-spacing: 0;
	cursor: pointer;
}

.chip--button[aria-pressed="true"] {
	border-color: var(--royal);
	background: var(--royal);
	color: var(--white);
}

.chip--button:focus-visible {
	outline: 2px solid var(--focus);
	outline-offset: 2px;
}

.products-filters__fields {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: var(--space-3) var(--space-4);
}

.products-filters__fields .field {
	flex: 1 1 13rem;
	max-width: 20rem;
	gap: var(--space-1);
}

.products-table__group th {
	padding-top: var(--space-4);
	background: var(--surface);
	color: var(--royal-hover);
	font-size: var(--fs-xs);
	font-weight: 750;
	letter-spacing: var(--track-eyebrow);
	text-transform: uppercase;
}

.products-table__product {
	color: var(--ink);
	font-weight: 700;
}

.products-table__rate {
	font-variant-numeric: tabular-nums;
}

/* One line per part of a commission ("29.75% (ages 18–64)" / "51.00% (65+)"), always inside its box. */
.products-table__part {
	display: block;
}

.products-table__rate {
	min-width: 0;
	overflow-wrap: anywhere;
}

@media (min-width: 48em) {
	.products-table__states {
		width: 30%;
	}
	.products-table__rate {
		width: 20%;
	}
}

/* Phones: each product is a card under its category label. */
@media (max-width: 47.99em) {
	.products-wrap {
		border: 0;
		background: none;
		overflow: visible;
	}
	.products-table thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
	}
	.products-table,
	.products-table tbody {
		display: block;
	}
	.products-table tbody {
		display: grid;
		gap: var(--space-3);
		margin-bottom: var(--space-5);
	}
	.products-table tr {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: var(--space-2);
		padding: var(--space-4);
		border: 1px solid var(--line);
		border-radius: var(--radius-lg);
		background: var(--white);
	}
	.products-table th,
	.products-table td {
		padding: 0;
		border: 0;
	}
	.products-table tbody tr:last-child > * {
		border: 0;
	}
	.products-table .products-table__group {
		display: block;
		padding: 0;
		border: 0;
		background: none;
	}
	.products-table__group th {
		display: block;
		padding: 0;
		background: none;
	}
	.products-table__product,
	.products-table__states {
		grid-column: 1 / -1;
	}
	.products-table__product {
		font-size: var(--fs-md);
	}
	.products-table__states {
		margin-bottom: var(--space-1);
		font-size: var(--fs-sm);
	}
	.products-table__states::before {
		content: attr(data-label) ": ";
		color: var(--muted);
		font-weight: 650;
	}
	.products-table .products-table__rate {
		display: grid;
		align-content: start;
		gap: 0.125rem;
		padding: var(--space-2) var(--space-3);
		border-radius: var(--radius);
		background: var(--surface);
		font-size: var(--fs-sm);
	}
	.products-table__rate::before {
		content: attr(data-label);
		color: var(--muted);
		font-size: var(--fs-xs);
		font-weight: 650;
	}
}

/* Narrow phones: First Year and Renewal stack full width. */
@media (max-width: 26.24em) {
	.products-table tr {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* About teaser on home. */
.home-about {
	display: grid;
	gap: var(--space-6);
	align-items: center;
}

@media (min-width: 48em) {
	.home-about {
		grid-template-columns: 15rem minmax(0, 1fr);
		gap: var(--space-7);
	}
}

/* People on /about: name, title, bio, expertise chips, organizations, links, NPN.
   The co-host's photo matches Mike's hero portrait (size, crop and edge glow). */
.person {
	display: grid;
	gap: var(--space-6);
}

@media (min-width: 56em) {
	.person--photo {
		grid-template-columns: 17rem minmax(0, 1fr);
		align-items: start;
		gap: var(--space-8);
	}
}

.person__main {
	display: grid;
	justify-items: start;
	gap: var(--space-5);
	min-width: 0;
	max-width: 44rem;
}

.person__head h2 {
	font-size: var(--fs-2xl);
	line-height: 1.08;
}

.person__title {
	margin-top: var(--space-2);
	color: var(--muted);
	font-size: var(--fs-md);
	font-weight: 600;
	line-height: 1.4;
}

.person__group {
	display: grid;
	gap: var(--space-2);
}

.person__label {
	color: var(--ink-2);
	font-size: var(--fs-xs);
	font-weight: 750;
	letter-spacing: var(--track-eyebrow);
	text-transform: uppercase;
}

.person .chip {
	font-size: var(--fs-sm);
	letter-spacing: 0;
}

.inline-list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-1) var(--space-3);
	margin: 0;
	padding: 0;
	color: var(--ink-2);
	list-style: none;
}

/* The dot sits after each item, so a wrapped line never starts with one. */
.inline-list li:not(:last-child)::after {
	content: "·";
	margin-left: var(--space-3);
	color: var(--muted);
}

.person__links {
	display: grid;
	gap: var(--space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.person__links li {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: var(--space-1) var(--space-3);
}

.person__links a {
	overflow-wrap: anywhere;
	font-weight: 650;
}

.person__links .icon {
	display: inline-block;
	width: 0.875rem;
	height: 0.875rem;
	margin-left: 0.25rem;
	vertical-align: -0.05em;
}

.person__npn {
	color: var(--muted);
	font-size: var(--fs-sm);
}

.home-about__body {
	display: grid;
	justify-items: start;
	gap: var(--space-3);
	max-width: var(--measure);
}

.home-about__body h2 {
	font-size: var(--fs-2xl);
	line-height: 1.08;
}

.home-about__body p {
	color: var(--ink-2);
	font-size: var(--fs-md);
}

.portrait--sm {
	width: min(100%, 12rem);
}

@media (min-width: 48em) {
	.portrait--sm {
		width: 15rem;
	}
}

/* About: Mike's bio and his mission as a pull quote. */
.prose--lg {
	max-width: 44rem;
	font-size: var(--fs-md);
}

.prose .wp-block-pullquote {
	margin: var(--space-7) 0 0;
	padding: var(--space-6) var(--space-5);
	border-left: 4px solid var(--royal);
	border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
	background: var(--royal-tint);
}

.wp-block-pullquote,
.wp-block-pullquote blockquote {
	margin: 0;
	text-align: left;
}

.prose .wp-block-pullquote p {
	color: var(--ink);
	font-size: var(--fs-xl);
	font-style: italic;
	font-weight: 800;
	line-height: 1.25;
	letter-spacing: var(--track-heading);
}

.prose .wp-block-pullquote cite {
	display: block;
	margin-top: var(--space-3);
	color: var(--muted);
	font-size: var(--fs-sm);
	font-style: normal;
}

/* ───────────────────────── Contact ───────────────────────── */

.contact {
	display: grid;
	gap: var(--space-7);
	align-items: start;
}

@media (min-width: 64em) {
	.contact {
		grid-template-columns: minmax(0, 1fr) 22rem;
		gap: var(--space-7);
	}
}

.contact__main {
	display: grid;
	gap: var(--space-5);
	max-width: 44rem;
}

.contact-form {
	gap: var(--space-5);
	padding: var(--space-5);
}

@media (min-width: 40em) {
	.contact-form {
		padding: var(--space-6);
	}
	.contact-form__row {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--space-5);
	}
}

.contact-form__row {
	display: grid;
	gap: var(--space-5);
}

.contact-form__privacy {
	display: flex;
	align-items: flex-start;
	gap: var(--space-2);
	padding: var(--space-3) var(--space-4);
	border-radius: var(--radius);
	background: var(--royal-tint);
	color: var(--ink-2);
	font-size: var(--fs-sm);
}

.contact-form__privacy .icon {
	flex: none;
	width: 1.125rem;
	height: 1.125rem;
	margin-top: 0.15em;
	color: var(--royal);
}

.textarea {
	min-height: 10rem;
	resize: vertical;
	line-height: 1.5;
}

.field__optional {
	color: var(--muted);
	font-weight: 500;
}

.contact-form__topic {
	display: grid;
	gap: var(--space-2);
}

.contract-hint {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	color: var(--ink-2);
	font-size: var(--fs-sm);
}

.contract-hint[hidden] {
	display: none;
}

/* Without JavaScript the link still appears when Contracting is picked. */
.contact-form:has(#contact-topic option[value="contracting"]:checked) .contract-hint[hidden] {
	display: flex;
}

.contract-hint .icon {
	flex: none;
	width: 1rem;
	height: 1rem;
	color: var(--royal);
}

.contract-hint a {
	display: inline-flex;
	align-items: center;
	min-height: var(--tap);
	font-weight: 700;
}

.hp {
	position: absolute;
	left: -10000px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.contact-form__submit {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-3) var(--space-5);
}

.contact-form__fine {
	color: var(--muted);
	font-size: var(--fs-sm);
}

.contact-form__fine a {
	display: inline-flex;
	align-items: center;
	min-height: var(--tap);
}

.btn[aria-disabled="true"] {
	opacity: 0.7;
	cursor: progress;
}

.form-errors {
	padding: var(--space-4) var(--space-5);
	border: 1px solid var(--danger);
	border-left-width: 4px;
	border-radius: var(--radius);
	background: var(--danger-tint);
	color: var(--ink);
}

.form-errors h2 {
	font-size: var(--fs-md);
	color: var(--danger);
}

.form-errors ul {
	margin: var(--space-2) 0 0;
	padding-left: 1.25rem;
}

.form-errors a {
	display: inline-flex;
	align-items: center;
	min-height: var(--tap);
	color: var(--danger);
	font-weight: 600;
}

#contact-status {
	scroll-margin-top: calc(var(--header-h) + var(--space-4));
}

.form-errors:focus,
.contact-done:focus {
	outline: 3px solid var(--focus);
	outline-offset: 3px;
}

.contact-done {
	gap: var(--space-4);
	padding: var(--space-6);
}

.contact-done__icon {
	display: grid;
	place-items: center;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	background: var(--royal);
	color: var(--white);
}

.contact-done__icon .icon {
	width: 1.5rem;
	height: 1.5rem;
	stroke-width: 3;
}

.contact-done h2 {
	font-size: var(--fs-xl);
	font-style: italic;
	font-weight: var(--weight-display);
	letter-spacing: var(--track-display);
}

.contact-done p {
	color: var(--ink-2);
	font-size: var(--fs-md);
}

.contact__aside h2 {
	font-size: var(--fs-lg);
	margin-bottom: var(--space-3);
}

.contact-links {
	display: grid;
	gap: var(--space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

.contact-links li {
	display: flex;
	gap: var(--space-3);
	align-items: flex-start;
}

.contact-links li > span:last-child {
	display: grid;
	color: var(--ink-2);
	font-size: 0.9375rem;
}

.contact-links strong {
	font-size: var(--fs-sm);
	color: var(--ink);
}

.contact-links a {
	display: inline-flex;
	align-items: center;
	min-height: var(--tap);
	font-size: 0.9375rem;
	overflow-wrap: anywhere;
}

.contact-links__icon {
	display: grid;
	place-items: center;
	flex: none;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: var(--radius);
	background: var(--icon-tile-bg);
	color: var(--icon-tile-fg);
}

.contact-links__icon .icon {
	width: 1.25rem;
	height: 1.25rem;
}

/* ───────────────────────── Referral directory ───────────────────────── */

.referrals-tool {
	padding-block: var(--space-6) var(--space-7);
}

.band .referrals-tool .state-picker .field__label,
.referrals-tool .state-picker .field__label {
	color: var(--on-dark);
}

.referrals-tool .state-picker .select {
	border-color: var(--line-dark-strong);
}

.referrals-intro {
	display: grid;
	gap: var(--space-5);
	align-items: end;
}

.referrals-intro__text {
	display: grid;
	gap: var(--space-3);
	max-width: var(--measure);
}

.referrals-intro__text p {
	color: var(--text-muted);
}

@media (min-width: 64em) {
	.referrals-intro {
		grid-template-columns: minmax(0, 1fr) auto;
		gap: var(--space-7);
	}
}

.state-links {
	margin-top: var(--space-6);
}

.state-links__title {
	margin-bottom: var(--space-3);
	color: var(--text-muted);
	font-size: var(--fs-sm);
	font-weight: 650;
	letter-spacing: var(--track-eyebrow);
	text-transform: uppercase;
}

/* Chips: state codes on cards, state links on the intro. */
.chips {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.chip {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	min-height: 1.75rem;
	padding: 0.125rem 0.625rem;
	border: 1px solid var(--card-border);
	border-radius: var(--radius-pill);
	background: var(--card-bg);
	color: var(--text);
	font-size: var(--fs-xs);
	font-weight: 650;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.02em;
}

.chip--on {
	border-color: var(--royal);
	background: var(--royal);
	color: var(--white);
}

.chips--links .chip {
	min-height: var(--tap);
	padding-inline: 0.875rem;
	font-size: var(--fs-sm);
	letter-spacing: 0;
	text-decoration: none;
	transition: border-color var(--dur-1) ease, background-color var(--dur-1) ease;
}

.band .chips--links .chip {
	color: var(--on-dark);
}

.chip__count {
	display: inline-grid;
	place-items: center;
	min-width: 1.5rem;
	height: 1.5rem;
	padding-inline: 0.375rem;
	border-radius: var(--radius-pill);
	background: var(--electric-tint);
	color: var(--ice);
	font-size: var(--fs-xs);
}

.chips--links .chip:focus-visible {
	outline: 3px solid var(--focus);
	outline-offset: 2px;
}

.referrals > .container {
	display: grid;
	gap: var(--space-6);
}

.referrals__head {
	display: grid;
	gap: var(--space-2);
}

.referrals__head h2 {
	font-size: var(--fs-2xl);
}

.referrals__head p {
	color: var(--text-muted);
}

.agent-grid {
	display: grid;
	gap: var(--space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 40em) {
	.agent-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 64em) {
	.agent-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.agent-grid > li {
	display: flex;
	min-width: 0;
}

.agent-card {
	flex: 1;
	gap: var(--space-4);
	min-width: 0;
}

.agent-card__head {
	display: flex;
	align-items: center;
	gap: var(--space-3);
}

.agent-card__avatar {
	display: grid;
	flex: none;
	place-items: center;
	width: 3.5rem;
	height: 3.5rem;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--royal), var(--navy));
	color: var(--white);
	font-size: 1.125rem;
	font-style: italic;
	font-weight: var(--weight-display);
	letter-spacing: -0.02em;
	box-shadow: 0 0 0 3px var(--card-bg), 0 0 0 4px var(--glow-soft);
}

.agent-card__who {
	display: grid;
	gap: 0.125rem;
	min-width: 0;
}

.agent-card .agent-card__name {
	font-size: var(--fs-md);
	line-height: 1.25;
	overflow-wrap: anywhere;
}

.agent-card p.agent-card__agency,
.agent-card p.agent-card__langs {
	display: flex;
	align-items: flex-start;
	gap: var(--space-2);
	color: var(--text-muted);
	font-size: var(--fs-sm);
}

.agent-card__agency .icon,
.agent-card__langs .icon {
	flex: none;
	width: 1rem;
	height: 1rem;
	margin-top: 0.15em;
	color: var(--link);
}

.agent-card__states {
	display: grid;
	gap: var(--space-2);
}

.agent-card__label {
	color: var(--text-muted);
	font-size: var(--fs-xs);
	font-weight: 650;
	letter-spacing: var(--track-eyebrow);
	text-transform: uppercase;
}

.agent-card .agent-card__bio {
	color: var(--ink-2);
	font-size: 0.9375rem;
	overflow-wrap: anywhere;
}

.agent-card__actions {
	margin-top: auto;
	padding-top: var(--space-2);
}

.join-band {
	display: grid;
	gap: var(--space-4);
	align-items: center;
	background: var(--royal-tint);
	border-color: var(--royal-tint-2);
}

.join-band h2 {
	font-size: var(--fs-lg);
	letter-spacing: var(--track-heading);
}

.join-band__text {
	display: grid;
	gap: var(--space-2);
}

.join-band__text p {
	color: var(--ink-2);
}

@media (min-width: 48em) {
	.join-band {
		grid-template-columns: auto minmax(0, 1fr) auto;
		gap: var(--space-5);
		padding: var(--space-5) var(--space-6);
	}
}

.referrals__disclaimer {
	display: flex;
	align-items: flex-start;
	gap: var(--space-2);
	color: var(--muted);
	font-size: var(--fs-sm);
}

.referrals__disclaimer .icon {
	flex: none;
	width: 1rem;
	height: 1rem;
	margin-top: 0.2em;
}

/* "Send a referral": a sheet on phones, a centered panel on larger screens. */
.referral-dialog {
	width: 100%;
	max-width: 40rem;
	max-height: 100dvh;
	margin: auto auto 0;
	padding: 0;
	border: 0;
	border-radius: var(--radius-lg) var(--radius-lg) 0 0;
	background: var(--white);
	color: var(--ink);
	box-shadow: var(--shadow-md);
	overscroll-behavior: contain;
	opacity: 0;
	transform: translateY(24px);
	transition: opacity var(--dur-2) var(--ease-out), transform var(--dur-2) var(--ease-out), overlay var(--dur-2) allow-discrete, display var(--dur-2) allow-discrete;
}

.referral-dialog[open] {
	opacity: 1;
	transform: none;
}

@starting-style {
	.referral-dialog[open] {
		opacity: 0;
		transform: translateY(24px);
	}
}

.referral-dialog::backdrop {
	background: var(--scrim);
}

@media (min-width: 40em) {
	.referral-dialog {
		margin: auto;
		max-height: calc(100dvh - 2 * var(--space-6));
		border-radius: var(--radius-lg);
	}
}

.referral-dialog__inner {
	position: relative;
	padding: var(--space-5) var(--space-5) calc(var(--space-5) + env(safe-area-inset-bottom, 0px));
}

@media (min-width: 40em) {
	.referral-dialog__inner {
		padding: var(--space-6);
	}
}

.referral-dialog__close {
	position: absolute;
	top: var(--space-3);
	right: var(--space-3);
	display: grid;
	place-items: center;
	width: var(--tap);
	height: var(--tap);
	border: 0;
	border-radius: 50%;
	background: var(--surface);
	color: var(--ink);
	cursor: pointer;
}

.referral-dialog__close:focus-visible {
	outline: 3px solid var(--focus);
	outline-offset: 2px;
}

.referral-form {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
}

.referral-form__title {
	padding-right: calc(var(--tap) + var(--space-2));
	font-size: var(--fs-xl);
	font-style: italic;
	font-weight: var(--weight-display);
	letter-spacing: var(--track-display);
	line-height: var(--lh-snug);
}

.referral-panel {
	max-width: 44rem;
	padding: var(--space-5);
	scroll-margin-top: calc(var(--header-h) + var(--space-4));
}

@media (min-width: 40em) {
	.referral-panel {
		padding: var(--space-6);
	}
}

.referral-panel .referral-form__title {
	padding-right: 0;
}

.referral-form .form-errors h3 {
	font-size: var(--fs-md);
	color: var(--danger);
}

#referral-status,
#join-status,
#manage-status,
#remove-form {
	scroll-margin-top: calc(var(--header-h) + var(--space-4));
}

#referral-status:focus,
#join-status:focus,
#manage-status:focus {
	outline: 3px solid var(--focus);
	outline-offset: 3px;
}

.referral-done {
	max-width: 44rem;
}

/* Join and manage */
.state-boxes {
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.state-boxes .field__label {
	padding: 0;
}

.state-boxes__count {
	font-weight: 650;
	color: var(--ink-2);
}

.state-boxes__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 var(--space-3);
	margin-top: var(--space-1);
	padding: var(--space-2) var(--space-3);
	border: 1px solid var(--line-strong);
	border-radius: var(--radius);
	background: var(--white);
}

@media (min-width: 40em) {
	.state-boxes__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.state-boxes__grid:focus-within {
	border-color: var(--royal);
	box-shadow: 0 0 0 3px var(--royal-tint-2);
}

.state-box {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	min-height: 2.5rem;
	font-size: var(--fs-sm);
	line-height: 1.25;
	cursor: pointer;
}

.state-box input {
	flex: none;
	width: 1.125rem;
	height: 1.125rem;
	margin: 0;
	accent-color: var(--royal);
}

.state-box:has(input:checked) {
	font-weight: 650;
}

.bio-field {
	display: grid;
	gap: var(--space-1);
}

.bio-field__count {
	justify-self: end;
	color: var(--muted);
	font-size: var(--fs-sm);
	font-variant-numeric: tabular-nums;
}

.bio-field__count.is-low {
	color: var(--ink);
	font-weight: 650;
}

.consent .check {
	align-items: flex-start;
	font-size: 0.9375rem;
	padding: var(--space-3) var(--space-4);
	border: 1px solid var(--line-strong);
	border-radius: var(--radius);
	background: var(--surface);
	font-weight: 600;
}

.consent .check input {
	margin-top: 0.15em;
}

.consent--error .check {
	border-color: var(--danger);
	background: var(--danger-tint);
}

.how-list {
	display: grid;
	gap: var(--space-4);
	margin: 0;
	padding-left: 1.25rem;
	color: var(--ink-2);
	font-size: 0.9375rem;
}

.how-list strong {
	color: var(--ink);
}

.how-note {
	margin-top: var(--space-5);
	padding: var(--space-3) var(--space-4);
	border-radius: var(--radius);
	background: var(--royal-tint);
	color: var(--ink-2);
	font-size: var(--fs-sm);
}

.manage-who {
	display: grid;
	gap: var(--space-1);
}

.manage-who h2,
.remove-form h2,
.manage-link h2 {
	font-size: var(--fs-lg);
	letter-spacing: var(--track-heading);
}

.manage-who p,
.remove-form p,
.manage-link > p {
	color: var(--ink-2);
	overflow-wrap: anywhere;
}

.manage-link {
	gap: var(--space-4);
	padding: var(--space-5);
}

@media (min-width: 40em) {
	.manage-link {
		padding: var(--space-6);
	}
}

.link-form {
	display: grid;
	gap: var(--space-4);
	justify-items: start;
}

.link-form .field {
	width: 100%;
	max-width: 26rem;
}

.btn--danger {
	background: var(--danger);
	color: var(--white);
}

/* ───────────────────────── Motion ─────────────────────────
 *
 * Fast enough that it never feels like loading. The hero (every page) is
 * done within 600ms of first paint: the headline is visible from the first
 * frame (a short rise only) and nothing waits more than 120ms. Scroll
 * reveals run 300ms, 40ms apart, and only ever hide what is below the fold
 * at load (motion.js marks those .reveal-pending), so nothing above the
 * fold is hidden. Count-ups take 800ms.
 *
 * Entrances use --ease-enter. Only transform and opacity move (the light
 * streaks also draw with stroke-dashoffset), so nothing shifts layout.
 * Every hidden starting state sits behind html.js-motion (set in the head)
 * and prefers-reduced-motion: no-preference, so the page is complete
 * without JavaScript and for reduced motion. If motion.js never runs, the
 * streaks outside the hero show after 2.5s anyway.
 */

@keyframes amm-rise {
	from {
		opacity: 0;
		transform: translate3d(0, 20px, 0);
	}
}

@keyframes amm-fade {
	from {
		opacity: 0;
	}
}

/* The headline starts visible (it is the page's largest text), so it only rises into place. */
@keyframes amm-word {
	from {
		opacity: 0.4;
		transform: translate3d(0, 0.22em, 0) skewY(3deg);
	}
}

@keyframes amm-scale-in {
	from {
		opacity: 0;
		transform: scale(0.96);
	}
}

/* A bump, never hidden. */
@keyframes amm-pop {
	50% {
		transform: scale(1.35);
	}
}

@keyframes amm-draw {
	to {
		stroke-dashoffset: 0;
	}
}

@keyframes amm-drift {
	to {
		transform: translate3d(-3%, 2%, 0);
	}
}

@keyframes amm-breathe {
	from {
		opacity: 0.75;
		transform: scale(1);
	}
	to {
		opacity: 1;
		transform: scale(1.06);
	}
}

@keyframes amm-pulse {
	from {
		opacity: 0.9;
		transform: scale(1);
	}
	to {
		opacity: 0;
		transform: scale(1.35);
	}
}

@keyframes amm-underline {
	from {
		transform: scaleX(0);
	}
}

@keyframes amm-shake {
	0%,
	100% {
		transform: none;
	}
	20% {
		transform: translate3d(-6px, 0, 0);
	}
	40% {
		transform: translate3d(5px, 0, 0);
	}
	60% {
		transform: translate3d(-3px, 0, 0);
	}
	80% {
		transform: translate3d(2px, 0, 0);
	}
}

@keyframes amm-show {
	to {
		opacity: 1;
		transform: none;
		stroke-dashoffset: 0;
	}
}

/* Pieces that move need a box of their own. */
.hero__word,
.stat__num,
.stat__suffix {
	display: inline-block;
}

.stat__num {
	font-variant-numeric: tabular-nums;
}

/* Nav: an underline slides in from the left on hover and the current page. */
.primary-nav a {
	position: relative;
}

.band .primary-nav a[aria-current="page"],
.primary-nav a[aria-current="page"] {
	background: none;
}

.primary-nav a::after {
	content: "";
	position: absolute;
	left: var(--space-3);
	right: var(--space-3);
	bottom: 0.5rem;
	height: 2px;
	border-radius: 1px;
	background: var(--electric);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 300ms var(--ease-enter);
}

.primary-nav a[aria-current="page"]::after {
	transform: scaleX(1);
}

.btn .icon,
.video-card__thumb img,
.featured-video__media img {
	transition: transform 300ms var(--ease-enter);
}

.video-card__thumb img,
.featured-video__media img {
	transition-duration: 600ms;
}

.video-card__thumb {
	overflow: hidden;
}

/* Carriers map: picked state pulses once. */
.us-map__pulse {
	fill: none;
	stroke: var(--electric);
	stroke-width: 3;
	vector-effect: non-scaling-stroke;
	opacity: 0;
	pointer-events: none;
	transform-box: fill-box;
	transform-origin: center;
}

.us-map__pulse[hidden] {
	display: none;
}

/* Contracting steps: a track joins the numbers and fills as you scroll. */
.steps {
	position: relative;
}

.step__num {
	position: relative;
	z-index: 2;
}

@media (max-width: 47.99em) {
	.step {
		display: grid;
		grid-template-columns: 2.5rem minmax(0, 1fr);
		column-gap: var(--space-4);
		row-gap: var(--space-2);
		align-items: start;
	}
	.step > :not(.step__num) {
		grid-column: 2;
	}
	.step__num {
		grid-row: 1 / span 2;
	}
}

.steps.has-track::before,
.steps.has-track::after {
	content: "";
	position: absolute;
	z-index: 1;
	left: var(--x1);
	top: var(--y1);
	width: 2px;
	height: var(--len);
	margin-left: -1px;
	border-radius: 1px;
	pointer-events: none;
	transform-origin: left top;
}

.steps.has-track.is-across::before,
.steps.has-track.is-across::after {
	width: var(--len);
	height: 2px;
	margin: -1px 0 0;
}

.steps.has-track::before {
	background: var(--line);
}

.steps.has-track::after {
	background: var(--royal);
	transform: scaleY(var(--p, 1));
}

.steps.has-track.is-across::after {
	transform: scaleX(var(--p, 1));
}

.step__num {
	transition: opacity 300ms ease, transform 450ms var(--ease-enter);
}

@media (prefers-reduced-motion: no-preference) {
	/* Hero: pure CSS from first paint, done by 600ms. The headline rises word by word
	   (15ms apart, at most 120ms), then the text and the buttons; nothing waits past 120ms. */
	.js-motion .hero__eyebrow {
		animation: amm-fade 300ms ease backwards;
	}
	.js-motion .hero__word {
		animation: amm-word 450ms var(--ease-enter) backwards;
		animation-delay: calc(var(--i, 0) * 15ms);
	}
	.js-motion .hero__lede {
		animation: amm-rise 420ms var(--ease-enter) 80ms backwards;
	}
	.js-motion .hero__actions {
		animation: amm-rise 420ms var(--ease-enter) 120ms backwards;
	}
	.js-motion .hero .portrait {
		animation: amm-scale-in 450ms var(--ease-enter) 60ms backwards;
	}

	/* Light streaks: draw in once (the hero's on load, others when seen), then drift and breathe while on screen. */
	.js-motion .streaks__line {
		stroke-dasharray: 1;
		stroke-dashoffset: 1;
	}
	.js-motion .hero .streaks__line,
	.js-motion .streaks.is-drawn .streaks__line {
		animation: amm-draw 550ms var(--ease-enter) forwards;
	}
	.js-motion .hero .streaks__line--thin,
	.js-motion .streaks.is-drawn .streaks__line--thin {
		animation-delay: 50ms;
	}
	.js-motion .streaks__lines {
		animation: amm-drift 10s ease-in-out infinite alternate paused;
	}
	.js-motion .streaks__glow {
		animation: amm-breathe 6s ease-in-out infinite alternate paused;
	}
	.js-motion .streaks.is-live .streaks__lines,
	.js-motion .streaks.is-live .streaks__glow {
		animation-play-state: running;
		will-change: transform, opacity;
	}
	.tab-hidden .streaks__lines,
	.tab-hidden .streaks__glow {
		animation-play-state: paused !important;
	}

	/* Scroll reveals: fade up 20px once, 300ms, staggered 40ms by motion.js (--d). motion.js adds
	   .reveal-pending only to items below the fold at load (the list is REVEAL in motion.js). */
	.js-motion .reveal-pending:not(.is-in) {
		opacity: 0;
		transform: translate3d(0, 20px, 0);
	}
	.js-motion .reveal-pending.is-in {
		animation: amm-rise 300ms var(--ease-enter) var(--d, 0ms) backwards;
	}
	.js-motion .portrait--sm.reveal-pending:not(.is-in) {
		transform: scale(0.96);
	}
	.js-motion .portrait--sm.reveal-pending.is-in {
		animation-name: amm-scale-in;
	}
	.js-motion:not(.motion-ready) :not(.hero) > .streaks .streaks__line {
		animation: amm-show 1ms 2.5s forwards;
	}

	/* Stats: the "+" bumps when the count lands (it is never hidden). */
	.js-motion .stat.is-counted .stat__suffix {
		animation: amm-pop 280ms var(--ease-enter);
	}

	/* Current nav item: its underline slides in on load. */
	.js-motion .primary-nav a[aria-current="page"]::after {
		animation: amm-underline 300ms var(--ease-enter) 100ms backwards;
	}

	/* Map pulse, steps numbers, thank-you check and error shake. */
	.us-map__pulse.is-pulsing {
		animation: amm-pulse 900ms var(--ease-enter) 1;
	}
	.js-motion .steps.has-track .step:not(.is-reached) .step__num {
		opacity: 0;
		transform: scale(0.5);
	}
	.js-motion .contact-done__icon {
		animation: amm-scale-in 300ms var(--ease-enter) backwards;
	}
	.js-motion .contact-done__icon path {
		stroke-dasharray: 24;
		stroke-dashoffset: 24;
		animation: amm-draw 400ms var(--ease-enter) 120ms forwards;
	}
	.js-motion .form-errors {
		animation: amm-shake 420ms ease-in-out 120ms;
	}
}

@media print {
	.js-motion * {
		opacity: 1 !important;
		transform: none !important;
		animation: none !important;
	}
}

/* ───────────────────────── Hover (pointer devices only) ───────────────────────── */

@media (hover: hover) and (pointer: fine) {
	.chips--links .chip:hover {
		border-color: var(--electric);
		background: var(--electric-tint);
	}
	.btn--danger:hover {
		background: color-mix(in srgb, var(--danger) 85%, var(--black));
	}
	.referral-dialog__close:hover {
		background: var(--surface-2);
	}

	a:hover {
		text-decoration-thickness: 2px;
	}
	.band .primary-nav a:hover,
	.primary-nav a:hover {
		color: var(--on-dark);
	}
	.band .primary-nav a[aria-current="page"]:hover,
	.primary-nav a[aria-current="page"]:hover {
		color: var(--electric);
	}
	.primary-nav a:hover::after {
		transform: scaleX(1);
	}
	.btn:hover {
		transform: translate3d(0, -2px, 0);
	}
	.btn:hover:active {
		transform: translate3d(0, 0, 0) scale(0.97);
	}
	.btn:hover .icon-arrow-right {
		transform: translate3d(3px, 0, 0);
	}
	.btn:hover .icon-arrow-up-right {
		transform: translate3d(2px, -2px, 0);
	}
	.btn--primary:hover {
		background: var(--btn-bg-hover);
		box-shadow: var(--shadow-glow), 0 12px 28px -12px var(--glow);
	}
	.btn--secondary:hover {
		border-color: var(--btn2-border-hover);
		box-shadow: var(--shadow-md);
	}
	.lesson__link:hover {
		border-color: var(--link);
		box-shadow: var(--shadow-md);
	}
	.btn--ghost:hover {
		background: var(--ghost-bg-hover);
	}
	.menu-toggle:hover {
		background: var(--navy);
	}
	.card:has(.card__link):hover,
	.band .card:has(.card__link):hover {
		transform: translate3d(0, -3px, 0);
		border-color: var(--electric);
		box-shadow: 0 0 0 1px var(--electric), 0 14px 36px -16px var(--glow);
	}
	.card:has(.card__link):hover .video-card__thumb img,
	.featured-video:hover .featured-video__media img {
		transform: scale(1.05);
	}
	.card:has(.card__link):hover .info-card__more .icon {
		transform: translateX(3px);
	}
	.card:has(.card__link):hover .video-card__play {
		transform: scale(1.06);
	}
	.input:hover,
	.select:hover {
		border-color: var(--ink-2);
	}
	.us-map__state:hover path,
	.us-map__state:hover .us-map__callout {
		filter: brightness(1.25);
	}
	.faq__item summary:hover {
		background: var(--surface);
	}
	.more-link:hover .icon {
		transform: translateX(3px);
	}
	.quick-links a:hover span,
	.update__title a:hover {
		text-decoration: underline;
	}
}

/* ───────────────────────── Reduced motion ───────────────────────── */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
	}
	.btn:active,
	.btn:hover,
	.card:has(.card__link):active,
	.card:has(.card__link):hover,
	.card:has(.card__link):hover .video-card__thumb img,
	.featured-video:hover .featured-video__media img,
	.btn:hover .icon {
		transform: none !important;
	}
	.mobile-menu,
	.mobile-menu[open],
	.referral-dialog,
	.referral-dialog[open] {
		transform: none;
	}
}

@media (prefers-reduced-transparency: reduce) {
	.site-header {
		background: var(--bg);
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}
}
