/* ==========================================================================
   WAUSM Homepage v2
   Every rule is scoped to .hv2 so it cannot touch other pages.
   Loaded only by page-templates/homepage-v2.php.
   ========================================================================== */

.hv2 {
	--navy: #213469;
	--navy-deep: #112046;
	--green: #75BB43;
	--green-hover: #8CC963;
	--green-text: #3F7A1B;
	--ink: #16213D;
	--body: #3D4556;
	--muted: #5E6678;
	--line: #E3E6EC;
	--paper: #F5F2EC;
	--paper-line: #DDD7CB;
	/* Same widths as the theme's .container, so edges line up with every page. */
	--wrap: 100%;
	--gutter: 30px;
	font-family: 'Mukta Mahee', sans-serif;
	font-size: 18px;
	line-height: 1.6;
	color: var(--body);
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}
.hv2 *, .hv2 *::before, .hv2 *::after { box-sizing: border-box; }
@media (min-width: 768px)  { .hv2 { --wrap: 690px; --gutter: 15px; } }
@media (min-width: 992px)  { .hv2 { --wrap: 930px; } }
@media (min-width: 1200px) { .hv2 { --wrap: 1140px; } }
@media (max-width: 359.98px) { .hv2 { --gutter: 16px; } }
:where(.hv2) h1, :where(.hv2) h2, :where(.hv2) h3 {
	margin: 0;
	font-family: 'Lora', serif;
	font-weight: 400;
	line-height: 1.15;
	color: var(--navy);
	letter-spacing: -.01em;
	text-wrap: balance;
}
:where(.hv2) p, :where(.hv2) figure, :where(.hv2) blockquote { margin: 0; }
:where(.hv2) ul, :where(.hv2) ol { list-style: none; margin: 0; padding: 0; }
:where(.hv2) a { text-decoration: none; }
:where(.hv2) img { display: block; max-width: 100%; height: auto; }
.hv2 .hv2-icon { display: block; flex: none; }
.hv2 .screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.hv2 a:focus-visible { outline: 2px solid var(--navy); outline-offset: 3px; }

.hv2-wrap {
	width: 100%;
	max-width: calc(var(--wrap) + var(--gutter) * 2);
	margin: 0 auto;
	padding-left: var(--gutter);
	padding-right: var(--gutter);
}

/* ---------- Type ---------- */
.hv2-h2 { font-size: clamp(34px, 3.5vw, 52px); line-height: 1.08; }
.hv2-h3 { font-size: 26px; line-height: 1.2; }
.hv2-lede { font-size: 19px; line-height: 1.6; color: var(--body); }

/* ---------- Buttons and links ---------- */
.hv2-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.hv2-actions--links { gap: 14px 32px; }
.hv2-actions--center { justify-content: center; }

.hv2-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 56px; padding: 0 28px;
	border: 2px solid transparent; border-radius: 0;
	font-family: 'Mukta Mahee', sans-serif; font-size: 17px; font-weight: 700; line-height: 1;
	letter-spacing: .02em; white-space: nowrap;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.hv2-btn .hv2-icon { transition: transform .15s ease; }
.hv2-btn:hover .hv2-icon, .hv2-btn:focus-visible .hv2-icon { transform: translateX(3px); }
.hv2-btn--video { padding-left: 22px; }
.hv2-btn--video:hover .hv2-icon, .hv2-btn--video:focus-visible .hv2-icon { transform: scale(1.1); }
.hv2-btn--primary { background: var(--green); border-color: var(--green); color: var(--navy-deep) !important; }
.hv2-btn--primary:hover, .hv2-btn--primary:focus-visible { background: var(--green-hover); border-color: var(--green-hover); }
.hv2-btn--navy { background: var(--navy); border-color: var(--navy); color: #fff !important; }
.hv2-btn--navy:hover, .hv2-btn--navy:focus-visible { background: var(--navy-deep); border-color: var(--navy-deep); }
.hv2-btn--ghost { background: transparent; border-color: var(--navy); color: var(--navy) !important; }
.hv2-btn--ghost:hover, .hv2-btn--ghost:focus-visible { background: var(--navy); color: #fff !important; }
.hv2-btn--light { background: transparent; border-color: rgba(255,255,255,.85); color: #fff !important; }
.hv2-btn--light:hover, .hv2-btn--light:focus-visible { background: #fff; border-color: #fff; color: var(--navy-deep) !important; }

.hv2-textlink {
	display: inline-flex; align-items: center; gap: 8px;
	padding-bottom: 3px; border-bottom: 2px solid var(--green);
	color: var(--navy) !important; font-size: 17px; font-weight: 700; line-height: 1.3;
}
.hv2-textlink .hv2-icon { transition: transform .15s ease; }
.hv2-textlink:hover .hv2-icon, .hv2-textlink:focus-visible .hv2-icon { transform: translateX(3px); }
.hv2-textlink--light { color: #fff !important; }

/* ---------- Section rhythm ---------- */
.hv2-section { padding: 112px 0; }
.hv2-head {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 24px 72px;
	align-items: end;
	margin-bottom: 56px;
}
.hv2-head--row { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 44px; }
.hv2-head__side .hv2-lede { margin-bottom: 22px; }

/* ---------- Editor notice ---------- */
.hv2-admin-note { background: #FFF4D6; border-bottom: 1px solid #F0D68A; color: #5C4400; font-size: 15px; line-height: 1.5; padding: 12px 0; }

/* ---------- Hero ---------- */
.hv2-hero { position: relative; background: #fff; }
.hv2-hero__stage {
	position: relative;
	display: flex;
	align-items: center;
	min-height: clamp(600px, 82vh, 840px);
	overflow: hidden;
	background: var(--navy-deep);
	color: #fff;
}
.hv2-hero__bg { position: absolute; inset: 0; }
.hv2-hero__frame { position: absolute; inset: 0; overflow: hidden; container-type: size; opacity: 0; transition: opacity .9s ease; }
.hv2-hero__vimeo {
	position: absolute; top: 50%; left: 50%;
	width: 100%; height: 100%; border: 0;
	transform: translate(-50%, -50%);
	pointer-events: none;
}
@supports (width: 1cqw) {
	.hv2-hero__vimeo { width: max(100cqw, 177.78cqh); height: max(100cqh, 56.25cqw); }
}
.hv2-hero__video { opacity: 0; transition: opacity .9s ease; }
.hv2-hero.is-playing .hv2-hero__frame, .hv2-hero.is-playing .hv2-hero__video { opacity: 1; }
.hv2-hero__img, .hv2-hero__video {
	position: absolute; inset: 0;
	width: 100%; height: 100% !important; max-width: none;
	object-fit: cover; object-position: 50% 60%;
}
.hv2-hero__bg::after {
	content: ''; position: absolute; inset: 0;
	background:
		linear-gradient(90deg, rgba(17,32,70,.90) 0%, rgba(17,32,70,.74) 36%, rgba(17,32,70,.30) 70%, rgba(17,32,70,.12) 100%),
		linear-gradient(0deg, rgba(17,32,70,.55) 0%, rgba(17,32,70,0) 34%);
}
.hv2-hero__inner { position: relative; z-index: 1; padding-top: 96px; padding-bottom: 176px; }
.hv2-hero__copy { max-width: 640px; }
.hv2-hero__title {
	font-size: clamp(54px, 6vw, 92px);
	line-height: .98;
	letter-spacing: -.025em;
	color: #fff;
	margin-bottom: 28px;
}
.hv2-hero__intro { font-size: 20px; line-height: 1.6; color: rgba(255,255,255,.92); margin-bottom: 36px; max-width: 32em; }
.hv2-hero__note { margin-top: 22px; font-size: 15px; line-height: 1.5; color: rgba(255,255,255,.78); }
.hv2-hero__toggle {
	position: absolute; z-index: 2; right: max(var(--gutter), calc((100% - var(--wrap)) / 2)); bottom: 100px;
	width: 42px; height: 42px; padding: 0;
	display: inline-flex; align-items: center; justify-content: center;
	background: rgba(17,32,70,.45); color: #fff;
	border: 1px solid rgba(255,255,255,.55); border-radius: 0; cursor: pointer;
	transition: background-color .15s ease;
}
.hv2-hero__toggle:hover, .hv2-hero__toggle:focus-visible { background: rgba(17,32,70,.85); }
.hv2-hero__toggle:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.hv2 .hv2-hero__icon-play { display: none; }
.hv2 .hv2-hero.is-paused .hv2-hero__icon-play { display: block; }
.hv2 .hv2-hero.is-paused .hv2-hero__icon-pause { display: none; }
@media (prefers-reduced-motion: reduce) {
	.hv2-hero__video, .hv2-hero__frame, .hv2-hero__toggle { display: none; }
}

/* Stats band */
.hv2-stats { position: relative; z-index: 2; margin-top: -72px; }
.hv2-stats__list {
	display: grid;
	grid-template-columns: repeat(var(--hv2-stat-n, 4), minmax(0, 1fr));
	background: var(--navy);
	box-shadow: 0 24px 48px rgba(17, 32, 70, .18);
}
.hv2-stat { padding: 34px 32px 32px; border-left: 1px solid rgba(255,255,255,.14); display: flex; flex-direction: column; }
.hv2-stat:first-child { border-left: 0; }
.hv2-stat__num { font-family: 'Lora', serif; font-size: 54px; line-height: 1; color: #fff; letter-spacing: -.02em; }
.hv2-stat:first-child .hv2-stat__num { color: var(--green); }
.hv2-stat__label { margin-top: 14px; font-size: 17px; font-weight: 700; line-height: 1.3; color: #fff; }
.hv2-stat__note { margin-top: 6px; font-size: 14px; line-height: 1.45; color: rgba(255,255,255,.68); }

/* ---------- Programs ---------- */
.hv2-programs { background: var(--paper); }
.hv2-programs__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; }
.hv2-program {
	display: grid;
	grid-template-rows: auto auto auto 1fr auto;
	background: #fff; border: 1px solid var(--line);
}
@supports (grid-template-rows: subgrid) {
	/* Lines up titles, facts, text and buttons across both cards. */
	.hv2-program { grid-row: span 5; grid-template-rows: subgrid; row-gap: 0; }
}
.hv2-program__body { display: contents; }
.hv2-program__media { aspect-ratio: 16 / 10; overflow: hidden; background: var(--paper); }
.hv2-program__img { width: 100%; height: 100% !important; object-fit: cover; transition: transform .6s ease; }
.hv2-program:hover .hv2-program__img { transform: scale(1.03); }
.hv2-program__title { padding: 36px 44px 0; font-size: 34px; line-height: 1.12; }
.hv2-facts { margin: 24px 44px 0; border-top: 1px solid var(--line); }
.hv2-facts__row {
	display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 16px;
	padding: 12px 0; border-bottom: 1px solid var(--line);
}
.hv2-facts dt { margin: 0; font-size: 15px; font-weight: 600; line-height: 1.45; color: var(--muted); }
.hv2-facts dd { margin: 0; font-size: 17px; font-weight: 600; line-height: 1.4; color: var(--ink); }
.hv2-program__text { padding: 22px 44px 0; }
.hv2-program__actions { padding: 32px 44px 44px; display: flex; flex-wrap: wrap; align-items: center; gap: 18px 30px; }

/* ---------- Path to residency ---------- */
.hv2-section.hv2-journey { background: #fff; padding-top: 128px; }
.hv2-journey__grid {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: 88px;
	align-items: start;
}
.hv2-journey__intro { position: sticky; top: 124px; }
.hv2-journey__intro .hv2-lede { margin: 22px 0 26px; }
.hv2-journey__media { margin-top: 44px; aspect-ratio: 4 / 3; overflow: hidden; background: var(--paper); }
.hv2-journey__img { width: 100%; height: 100% !important; object-fit: cover; }
.hv2-steps { border-top: 1px solid var(--line); }
.hv2-step {
	display: grid;
	grid-template-columns: 170px minmax(0, 1fr);
	gap: 24px;
	padding: 38px 0;
	border-bottom: 1px solid var(--line);
}
.hv2-step__num { font-family: 'Lora', serif; font-size: 60px; line-height: .9; color: var(--green); letter-spacing: -.02em; }
.hv2-step__when { font-family: 'Lora', serif; font-size: 25px; line-height: 1.15; color: var(--green-text); padding-top: 1px; }
.hv2-step__title { font-family: 'Mukta Mahee', sans-serif; font-weight: 700; font-size: 23px; line-height: 1.25; letter-spacing: 0; color: var(--navy); }
.hv2-step__text { margin-top: 8px; font-size: 18px; }

/* ---------- Outcomes ---------- */
.hv2-section.hv2-outcomes { background: var(--navy-deep); color: rgba(255,255,255,.82); }
.hv2-outcomes__grid {
	display: grid;
	grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
	gap: 72px;
	align-items: center;
}
.hv2-outcomes .hv2-h2 { color: #fff; }
.hv2-outcomes .hv2-lede { margin-top: 22px; color: rgba(255,255,255,.82); }
.hv2-outcomes__media { aspect-ratio: 3 / 2; overflow: hidden; background: var(--navy); }
.hv2-outcomes__img { width: 100%; height: 100% !important; object-fit: cover; object-position: 50% 40%; }
.hv2-quote { margin-top: 32px; }
.hv2-quote.has-photo { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 24px; align-items: start; }
.hv2-quote__photo { aspect-ratio: 4 / 5; overflow: hidden; background: var(--navy); }
.hv2-quote__img { width: 100%; height: 100% !important; object-fit: cover; object-position: 50% 15%; }
.hv2-quote .hv2-icon { width: 30px; height: 23px; color: var(--green); }
.hv2-quote blockquote { margin-top: 12px; padding: 0; border: 0; }
.hv2-quote blockquote p { font-family: 'Lora', serif; font-style: italic; font-size: 27px; line-height: 1.3; color: #fff; }
.hv2-quote figcaption { margin-top: 14px; font-size: 16px; line-height: 1.4; }
.hv2-quote figcaption strong { display: block; color: #fff; font-weight: 700; }
.hv2-quote figcaption span { display: block; color: rgba(255,255,255,.62); font-size: 15px; }
.hv2-matches { margin: 36px 0 36px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; }
.hv2-matches li { padding: 14px 0; border-top: 1px solid rgba(255,255,255,.14); }
.hv2-matches__inst { display: block; color: #fff; font-size: 16px; font-weight: 600; line-height: 1.35; }
.hv2-matches__spec { display: block; margin-top: 2px; color: rgba(255,255,255,.62); font-size: 14px; line-height: 1.4; }

/* ---------- Why WAUSM ---------- */
.hv2-why__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px; }
.hv2-why__item { padding-top: 30px; border-top: 2px solid var(--navy); display: flex; flex-direction: column; align-items: flex-start; }
.hv2-why__item p { margin: 14px 0 24px; }
.hv2-why__item .hv2-textlink { margin-top: auto; }

/* ---------- Campus life ---------- */
.hv2-campus { background: var(--paper); }
.hv2-mosaic { display: grid; gap: 16px; }
.hv2-mosaic__cell { overflow: hidden; background: #fff; }
.hv2-mosaic__img { width: 100%; height: 100% !important; object-fit: cover; transition: transform .6s ease; }
.hv2-mosaic__cell:hover .hv2-mosaic__img { transform: scale(1.03); }
.hv2-mosaic--4 { grid-template-columns: 1fr 1fr .82fr; grid-template-rows: 310px 270px; }
.hv2-mosaic--4 .hv2-mosaic__cell--1 { grid-column: 1 / 3; }
.hv2-mosaic--4 .hv2-mosaic__cell--1 .hv2-mosaic__img { object-position: 50% 68%; }
.hv2-mosaic--4 .hv2-mosaic__cell--2 { grid-column: 3; grid-row: 1 / 3; }
.hv2-mosaic--3 { grid-template-columns: 2fr 1fr; grid-template-rows: 280px 280px; }
.hv2-mosaic--3 .hv2-mosaic__cell--1 { grid-row: 1 / 3; }
.hv2-mosaic--2 { grid-template-columns: 1fr 1fr; grid-template-rows: 440px; }
.hv2-mosaic--1 { grid-template-columns: 1fr; grid-template-rows: 520px; }
.hv2-section.hv2-campus--tour { padding-bottom: 0; }
.hv2-tour { margin-top: 96px; background: #1b346d; color: rgba(255,255,255,.86); }
.hv2-tour__head { display: grid; grid-template-columns: minmax(0, 1fr); gap: 48px; align-items: center; padding-top: 88px; }
.hv2-tour__head.has-video { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.hv2-tour .hv2-h2 { color: #fff; }
.hv2-tour .hv2-lede { margin: 18px 0 30px; max-width: 34em; color: rgba(255,255,255,.86); }
.hv2-tour__video { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: #112046; }
.hv2-tour__poster { width: 100%; height: 100% !important; object-fit: cover; transition: transform .6s ease; }
.hv2-tour__video::after { content: ''; position: absolute; inset: 0; background: rgba(17, 32, 70, .25); transition: background-color .2s ease; }
.hv2-tour__play {
	position: absolute; left: 50%; top: 50%; z-index: 1; transform: translate(-50%, -50%);
	width: 78px; height: 78px; display: flex; align-items: center; justify-content: center;
	background: var(--green); color: var(--navy-deep); transition: transform .2s ease;
}
.hv2-tour__video:hover .hv2-tour__poster { transform: scale(1.03); }
.hv2-tour__video:hover::after { background: rgba(17, 32, 70, .1); }
.hv2-tour__video:hover .hv2-tour__play { transform: translate(-50%, -50%) scale(1.06); }

/* Florida distance map tile */
.hv2-mosaic__cell--map { background: #112046; }
.hv2-map, .hv2-map__svg { display: block; width: 100%; height: 100%; }
.hv2-map__svg--compact { display: none; }
.hv2-map__big, .hv2-map__region { font-family: 'Lora', serif; }
.hv2-map__region { font-style: italic; }

/* Pop-up video player (Featherlight, loaded by the theme) */
.featherlight .featherlight-content:has(iframe.featherlight-inner) { padding: 0; background: #000; border: 0; overflow: visible; }
.featherlight iframe.featherlight-inner { display: block; width: min(90vw, 1024px); height: min(50.625vw, 576px); border: 0; }
.hv2-tour .map-section { margin: 0; }
.hv2-tour .container.map-container { margin: 0 auto !important; }

/* ---------- News + info session ---------- */
.hv2-news__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; }
.hv2-event {
	display: flex; flex-direction: column; align-items: flex-start; gap: 16px;
	padding: 38px 32px 34px;
	background: var(--navy); color: rgba(255,255,255,.85);
	font-size: 17px; line-height: 1.55;
}
.hv2-event__title { color: #fff; font-size: 30px; line-height: 1.15; }
.hv2-event .hv2-btn { margin-top: auto; min-height: 52px; padding: 0 22px; font-size: 16px; }
.hv2-post__link { display: flex; flex-direction: column; height: 100%; color: inherit !important; }
.hv2-post__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--paper); }
.hv2-post__img { width: 100%; height: 100% !important; object-fit: cover; transition: transform .6s ease; }
.hv2-post__link:hover .hv2-post__img { transform: scale(1.03); }
.hv2-post__date { display: block; margin-top: 18px; font-size: 14px; font-weight: 500; color: var(--muted); }
.hv2-post__title { display: block; margin-top: 6px; font-family: 'Lora', serif; font-size: 21px; line-height: 1.3; color: var(--navy); }
.hv2-post__link:hover .hv2-post__title { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.hv2-post__more { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 16px; font-size: 16px; font-weight: 700; color: var(--navy); }

/* ---------- MAPP ---------- */
.hv2-mapp__grid {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: 72px;
	align-items: center;
}
.hv2-mapp__media { aspect-ratio: 4 / 3; overflow: hidden; background: var(--paper); }
.hv2-mapp__img { width: 100%; height: 100% !important; object-fit: cover; }
.hv2-mapp__copy .hv2-lede { margin: 20px 0 32px; max-width: 34em; }
.hv2-mapp__copy .hv2-actions { gap: 18px 30px; }

/* ---------- Final call to action ---------- */
.hv2-cta { position: relative; overflow: hidden; background: var(--navy-deep); text-align: center; }
.hv2-cta__bg { position: absolute; inset: 0; }
.hv2-cta__img { width: 100%; height: 100% !important; object-fit: cover; object-position: 50% 60%; }
.hv2-cta__bg::after { content: ''; position: absolute; inset: 0; background: rgba(17, 32, 70, .74); }
.hv2-cta__inner { position: relative; z-index: 1; max-width: 960px; padding-top: 136px; padding-bottom: 136px; }
.hv2-cta__title { color: #fff; font-size: clamp(36px, 4.4vw, 60px); line-height: 1.08; }
.hv2-cta__text { margin: 22px auto 40px; max-width: 38em; font-size: 20px; line-height: 1.6; color: rgba(255,255,255,.88); text-wrap: balance; }

/* ---------- Password form (review copy) ---------- */
.hv2-locked { padding: 120px 0; background: var(--paper); }
.hv2-locked .hv2-wrap { max-width: 720px; }
.hv2-locked__title { font-size: 40px; line-height: 1.15; margin-bottom: 24px !important; }
.hv2-locked__form p { margin-bottom: 16px; }
.hv2-locked__form label { display: flex; flex-direction: column; gap: 8px; font-weight: 600; color: var(--ink); }
.hv2-locked__form input[type="password"] { height: 52px; padding: 0 14px; border: 1px solid var(--line); font-size: 17px; max-width: 360px; }
.hv2-locked__form input[type="submit"] { height: 52px; padding: 0 28px; border: 0; background: var(--navy); color: #fff; font-weight: 700; font-size: 16px; cursor: pointer; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1199.98px) {
	.hv2-section { padding: 96px 0; }
	.hv2-hero__copy { max-width: 600px; }
	.hv2-stat { padding: 28px 24px 26px; }
	.hv2-stat__num { font-size: 46px; }
	.hv2-journey__grid { gap: 56px; }
	.hv2-outcomes__grid { gap: 48px; }
	.hv2-news__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.hv2-why__grid { gap: 32px; }
}

@media (max-width: 991.98px) {
	.hv2-hero__stage { align-items: flex-end; min-height: 640px; }
	.hv2-hero__bg::after {
		background: linear-gradient(0deg, rgba(17,32,70,.94) 0%, rgba(17,32,70,.80) 45%, rgba(17,32,70,.35) 100%);
	}
	.hv2-hero__inner { padding-top: 160px; padding-bottom: 56px; }
	.hv2-hero__toggle { top: 16px; bottom: auto; right: 16px; }
	.hv2-stats { margin-top: 0; background: var(--navy); }
	.hv2-stats__list { grid-template-columns: repeat(2, minmax(0, 1fr)); box-shadow: none; }
	.hv2-stat:nth-child(odd) { border-left: 0; }
	.hv2-stat:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.14); }
	.hv2-stat { padding: 30px 16px 28px 0; }
	.hv2-stat:nth-child(even) { padding-left: 20px; }
	/* Odd count (e.g. 3): the first stat spans the full row, the rest pair up below. */
	.hv2-stats__list.is-odd .hv2-stat:first-child { grid-column: 1 / -1; }
	.hv2-stats__list.is-odd .hv2-stat:nth-child(even) { border-left: 0; padding-left: 0; }
	.hv2-stats__list.is-odd .hv2-stat:nth-child(odd):not(:first-child) { border-left: 1px solid rgba(255,255,255,.14); padding-left: 20px; }
	.hv2-stats__list.is-odd .hv2-stat:nth-child(n+2) { border-top: 1px solid rgba(255,255,255,.14); }
	.hv2-head { grid-template-columns: 1fr; margin-bottom: 40px; }
	.hv2-programs__grid { grid-template-columns: 1fr; gap: 32px; }
	.hv2-journey__grid { grid-template-columns: 1fr; gap: 48px; }
	.hv2-journey__intro { position: static; }
	.hv2-section.hv2-journey { padding-top: 88px; }
	.hv2-mapp__grid { grid-template-columns: 1fr; gap: 36px; }
	.hv2-tour__head.has-video { grid-template-columns: 1fr; }
	.hv2-outcomes__grid { grid-template-columns: 1fr; gap: 48px; }
	.hv2-why__grid { grid-template-columns: 1fr; gap: 40px; }
	.hv2-mosaic--4 { grid-template-columns: 1fr 1fr; grid-template-rows: 300px 210px 210px; }
	.hv2-mosaic--4 .hv2-mosaic__cell--1 { grid-column: 1 / 3; }
	.hv2-mosaic--4 .hv2-mosaic__cell--2 { grid-column: 1; grid-row: 2 / 4; }
	.hv2-mosaic--3 { grid-template-columns: 1fr 1fr; grid-template-rows: 320px 200px; }
	.hv2-mosaic--3 .hv2-mosaic__cell--1 { grid-column: 1 / 3; grid-row: 1; }
}

@media (max-width: 767.98px) {
	.hv2 { font-size: 17px; }
	.hv2-section { padding: 72px 0; }
	.hv2-lede { font-size: 18px; }
	.hv2-hero__title { font-size: 48px; margin-bottom: 20px; }
	.hv2-hero__intro { font-size: 18px; margin-bottom: 28px; }
	.hv2-hero__copy .hv2-actions { flex-direction: column; align-items: stretch; }
	.hv2-btn { min-height: 54px; }
	.hv2-stat { padding: 24px 12px 22px 0; }
	.hv2-stat:nth-child(even) { padding-left: 16px; }
	.hv2-stats__list.is-odd .hv2-stat:nth-child(odd):not(:first-child) { padding-left: 16px; }
	.hv2-stat__num { font-size: 38px; }
	.hv2-stat__label { font-size: 15px; margin-top: 10px; }
	.hv2-stat__note { font-size: 13px; }
	.hv2-program__title { padding: 28px 24px 0; font-size: 28px; }
	.hv2-facts { margin: 20px 24px 0; }
	.hv2-facts__row { grid-template-columns: 112px minmax(0, 1fr); gap: 12px; }
	.hv2-facts dd { font-size: 16px; }
	.hv2-program__text { padding: 18px 24px 0; }
	.hv2-program__actions { padding: 26px 24px 32px; }
	.hv2-step { grid-template-columns: minmax(0, 1fr); gap: 6px; padding: 26px 0; }
	.hv2-step__when { font-size: 20px; }
	.hv2-map__svg--wide { display: none; }
	.hv2-map__svg--compact { display: block; }
	.hv2-tour__head { padding-top: 64px; gap: 32px; }
	.hv2-step__num { font-size: 42px; }
	.hv2-step__title { font-size: 20px; }
	.hv2-step__text { font-size: 17px; }
	.hv2-quote blockquote p { font-size: 23px; }
	.hv2-quote.has-photo { grid-template-columns: 88px minmax(0, 1fr); gap: 18px; }
	.hv2-matches { grid-template-columns: 1fr; }
	.hv2-head--row { flex-direction: column; align-items: flex-start; }
	.hv2-news__grid { grid-template-columns: 1fr; gap: 36px; }
	.hv2-mosaic { gap: 10px; }
	.hv2-mosaic--4 { grid-template-rows: 220px 160px 160px; }
	.hv2-tour { margin-top: 64px; }
	.hv2-cta__inner { padding-top: 96px; padding-bottom: 96px; }
	.hv2-cta__text { font-size: 18px; margin-bottom: 32px; }
	.hv2-actions--center { flex-direction: column; align-items: stretch; }
}

@media (prefers-reduced-motion: reduce) {
	.hv2 * { transition: none !important; }
}
