/*
 * Alloy brand kit
 * Opt-in styling driven by Alloy Settings. Nothing here changes a site until a setting is filled in
 * (eyebrow style, H1 color, dark surface color, muted text on dark) or a block asks for a variant
 * (Split Feature media width / minimum height).
 */

/* ---- Section theme tokens ---------------------------------------------------------------- */
/* Doubled class selectors so these win over the compiled section-theme rules whatever the stylesheet order. */
.alloy-section-theme.alloy-section-theme {
	--alloy-section-eyebrow: var(--brand-primary, currentColor);
}
.alloy-section-theme.alloy-section-theme-brand-dark,
.alloy-section-theme.alloy-section-theme-neutral-dark,
.alloy-section-theme.alloy-section-theme-black {
	--alloy-section-eyebrow: var(--brand-primary-on-dark, #fff);
	--alloy-section-fg-secondary: var(--brand-muted-on-dark, rgba(255, 255, 255, 0.78));
}
.alloy-section-theme.alloy-section-theme-brand-accent {
	--alloy-section-eyebrow: #fff;
}
.alloy-section-theme.alloy-section-theme-black {
	--alloy-section-bg: var(--brand-dark, #000);
}
/* The block editor's own dark-section rule is more specific, so repeat the dark surface color there. */
.editor-styles-wrapper .alloy-section-theme.alloy-section-theme.alloy-section-theme-black {
	--alloy-section-bg: var(--brand-dark, #000);
}
/* Split Feature quotes: the editor's default blockquote bar, indent and margin are reset here as they are on the site. */
.editor-styles-wrapper .split-feature__quote blockquote {
	border-left: 0 !important; /* the editor's own blockquote rule is !important */
	margin: 0 !important;
	padding: 0 !important;
}

/* ---- Eyebrow style (Alloy Settings > Typography) ----------------------------------------- */
:is(.alloy-eyebrow-wide, .alloy-eyebrow-extra-wide) :is(.split-feature__eyebrow, .acp__eyebrow, .atl__eyebrow) {
	color: var(--alloy-section-eyebrow, var(--brand-primary));
	font-size: var(--alloy-eyebrow-size, 0.875rem);
	letter-spacing: var(--alloy-eyebrow-tracking, 0.08em);
	line-height: 2.5;
}
@media (max-width: 767px) {
	/* The design's mobile eyebrow is 16px with 0.4em tracking. */
	:is(.alloy-eyebrow-wide, .alloy-eyebrow-extra-wide) :is(.split-feature__eyebrow, .acp__eyebrow, .atl__eyebrow) {
		font-size: min(var(--alloy-eyebrow-size, 0.875rem), 1rem);
		line-height: 2;
	}
}

/* ---- H1 color on light backgrounds (Alloy Settings > Typography) ------------------------- */
.alloy-h1-color h1,
.alloy-h1-color h1[class] {
	color: var(--alloy-h1-color) !important;
}
.alloy-h1-color :is(.dark, .alloy-section-theme.dark, [class*="alloy-hero"], .immersive-hero) h1,
.alloy-h1-color :is(.dark, .alloy-section-theme.dark, [class*="alloy-hero"], .immersive-hero) h1[class] {
	color: #fff !important;
}

/* ---- Split Feature: column proportions and minimum height -------------------------------- */
@media (min-width: 1024px) {
	/* Percent height on an auto-height flex row resolves to the image's
	 * intrinsic height. Fill the stretched bleed panel instead. Card and
	 * bottom-image compositions retain their own sizing rules. */
	.split-feature:not(.split-feature--card):not(.split-feature--image-bottom) .split-feature__media {
		position: relative;
	}
	.split-feature:not(.split-feature--card):not(.split-feature--image-bottom) .split-feature__image {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		min-height: 0;
		object-fit: cover;
	}
	.split-feature--media-wide .split-feature__content-panel {
		flex-basis: 36.53%;
		width: 36.53%;
	}
	.split-feature--media-wide .split-feature__media {
		flex-basis: 63.47%;
		width: 63.47%;
	}
	.split-feature--text-wide .split-feature__content-panel {
		flex-basis: 63.47%;
		width: 63.47%;
	}
	.split-feature--text-wide .split-feature__media {
		flex-basis: 36.53%;
		width: 36.53%;
	}
	.split-feature--has-min-height {
		min-height: var(--split-feature-min-height);
	}

	/* Wide image variant: copy block centered in a narrow column, photo filling its whole panel. */
	.split-feature--media-wide .split-feature__content-panel {
		align-items: center;
		padding-inline: clamp(2rem, 5.56vw, 5rem) clamp(1.5rem, 3.34vw, 3rem);
	}
	.split-feature--media-wide.split-feature--image-left .split-feature__content-panel {
		padding-inline: clamp(1.5rem, 3.34vw, 3rem) clamp(2rem, 5.56vw, 5rem);
	}
	.split-feature--media-wide .split-feature__content {
		flex: 0 1 24.5rem;
		margin-inline: 0;
		max-width: 24.5rem;
	}
	/* Type scale used by the wide image rows in the design: 36px bold heading, 16px copy, 18px heavy buttons. */
	.split-feature--media-wide .split-feature__heading {
		font-size: 2.25rem;
		font-weight: 700;
		line-height: 1.25;
	}
	.split-feature--media-wide .split-feature__description {
		margin-top: 1.5rem;
		font-size: 1rem;
		line-height: 1.5;
	}
	.split-feature--media-wide .split-feature__actions a {
		border-radius: 0.5rem;
		font-size: 1.125rem;
		font-weight: 800;
		line-height: 1.5;
	}
	.split-feature--media-wide .split-feature__media {
		position: relative;
	}
	.split-feature--media-wide .split-feature__image {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
}

/* ---- Header (Alloy Settings > Header, and Alloy Page Shell > Header Style) ---------------- */
/* The custom header color is printed by inc/core-brand-kit.php only when it is set. */
@media (min-width: 768px) {
	.alloy-header-tall header nav.main-header {
		height: 6.375rem;
	}
}
.alloy-header-accent-current header :is(.current-menu-item, .current_page_item, .current-menu-ancestor) > a {
	color: var(--brand-primary-on-dark, var(--brand-primary)) !important;
}

.alloy-header-links-large header nav.main-header .alloy-primary-menu-desktop > li > a {
	font-size: 1rem !important;
	font-weight: 500 !important;
}

/* Transparent header laid over the first block. */
.alloy-header-overlay header:has(> nav.main-header) {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
}
.admin-bar.alloy-header-overlay header:has(> nav.main-header) {
	top: 32px;
}
@media (max-width: 782px) {
	.admin-bar.alloy-header-overlay header:has(> nav.main-header) {
		top: 46px;
	}
}
.alloy-header-overlay header nav.main-header {
	--alloy-header-bg: transparent !important;
	background-color: transparent !important;
	border-color: transparent !important;
	border-bottom-width: 0 !important;
}
@media (min-width: 768px) {
	/* The desktop menu wrapper paints the header color itself. */
	.alloy-header-overlay header nav.main-header div[class~="md:flex"]:not([class~="md:hidden"]) {
		background-color: transparent !important;
	}
}
.alloy-header-hide-logo header nav.main-header a:has(> img) {
	visibility: hidden;
}

/* ---- Sticky header (Alloy Settings > Header > Sticky Header) ---------------------------------- */
/* The mobile-only mode uses the same breakpoint as the shared navigation.
 * The announcement bar is outside this header and scrolls away normally. */
@media (max-width: 1180px) {
	.alloy-header-sticky-mobile:not(.alloy-header-overlay) header:has(> nav.main-header) {
		position: sticky;
		top: 0;
		z-index: 100;
	}
	.admin-bar.alloy-header-sticky-mobile:not(.alloy-header-overlay) header:has(> nav.main-header) {
		top: var(--alloy-adminbar-offset, 32px);
	}
	.alloy-header-sticky-mobile.alloy-header-overlay header:has(> nav.main-header) {
		position: fixed;
	}
	html:has(body.alloy-header-sticky-mobile) {
		--alloy-mobile-toolbar-height: 0px;
		scroll-padding-top: calc(var(--alloy-header-height, 0px) + var(--alloy-mobile-toolbar-height) + 1rem);
	}
	html:has(body.alloy-header-sticky-mobile.admin-bar) {
		--alloy-mobile-toolbar-height: var(--alloy-adminbar-offset, 32px);
	}
}
@media (max-width: 782px) {
	.admin-bar.alloy-header-sticky-mobile:not(.alloy-header-overlay) header:has(> nav.main-header) {
		top: var(--alloy-adminbar-offset, 46px);
	}
	html:has(body.alloy-header-sticky-mobile.admin-bar) {
		--alloy-mobile-toolbar-height: var(--alloy-adminbar-offset, 46px);
	}
}
.alloy-header-sticky:not(.alloy-header-overlay) header:has(> nav.main-header) {
	position: sticky;
	top: 0;
	z-index: 100;
}
.admin-bar.alloy-header-sticky:not(.alloy-header-overlay) header:has(> nav.main-header) {
	top: 32px;
}
@media (max-width: 782px) {
	.admin-bar.alloy-header-sticky:not(.alloy-header-overlay) header:has(> nav.main-header) {
		top: 46px;
	}
}
/* Anchor links (a #hash in the URL, an in-page link) land below a sticky or fixed header and the logged-in admin bar instead of under them.
   js/alloy-header-sticky.js publishes --alloy-header-height; the toolbar offset covers the admin bar. */
html:has(body.alloy-header-sticky) {
	--alloy-anchor-toolbar: 0px;
	scroll-padding-top: calc(var(--alloy-header-height, 0px) + var(--alloy-anchor-toolbar) + 1rem);
}
html:has(body.alloy-header-sticky.admin-bar) {
	--alloy-anchor-toolbar: var(--alloy-adminbar-offset, 32px);
}
@media (max-width: 782px) {
	html:has(body.alloy-header-sticky.admin-bar) {
		--alloy-anchor-toolbar: var(--alloy-adminbar-offset, 46px);
	}
}
/* A transparent header stays in view over the hero, then turns solid once the page has scrolled. */
.alloy-header-sticky.alloy-header-overlay header:has(> nav.main-header) {
	position: fixed;
}
.alloy-header-overlay header nav.main-header,
.alloy-header-overlay header nav.main-header div[class~="md:flex"]:not([class~="md:hidden"]) {
	transition: background-color 0.3s ease;
}
.alloy-header-sticky.alloy-header-overlay.alloy-header-solid header nav.main-header {
	--alloy-header-bg: var(--alloy-header-solid, #000) !important;
	background-color: var(--alloy-header-solid, #000) !important;
}
@media (min-width: 768px) {
	.alloy-header-sticky.alloy-header-overlay.alloy-header-solid header nav.main-header div[class~="md:flex"]:not([class~="md:hidden"]) {
		background-color: var(--alloy-header-solid, #000) !important;
	}
}
.alloy-header-sticky.alloy-header-hide-logo.alloy-header-scrolled header nav.main-header a:has(> img) {
	visibility: visible;
	animation: alloy-header-logo-in 0.35s ease both;
}
@keyframes alloy-header-logo-in {
	from { opacity: 0; }
	to { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
	.alloy-header-sticky.alloy-header-hide-logo.alloy-header-scrolled header nav.main-header a:has(> img) {
		animation: none;
	}
}

/* ---- Header links left (Alloy Settings > Header Link Alignment) ------------------------- */
@media (min-width: 768px) {
	.alloy-header-links-left header nav.main-header div[class~="md:flex"]:not([class~="md:hidden"]) {
		flex: 1 1 auto !important;
		justify-content: flex-start;
		margin-inline: 0.875rem 1rem;
	}
	.alloy-header-links-left header nav.main-header div.min-w-0.order-1 {
		flex: 0 0 7.5rem;
	}
	.alloy-header-links-left header nav.main-header div.justify-end.md\:order-3 {
		flex: 0 0 auto;
	}
	.alloy-header-links-left header nav.main-header .alloy-primary-menu-desktop {
		width: 100%;
	}
	.alloy-header-links-left header nav.main-header .alloy-primary-menu-desktop > li:last-child {
		margin-left: auto !important;
	}
}

/* ---- Header links centered, last link beside the button (Alloy Settings > Header Link Alignment) ----------------- */
@media (min-width: 768px) {
	.alloy-header-links-center-split header nav.main-header div[class~="md:flex"]:not([class~="md:hidden"]) {
		flex: 1 1 auto !important;
		margin-inline: 0 !important;
	}
	.alloy-header-links-center-split header nav.main-header div.min-w-0.order-1,
	.alloy-header-links-center-split header nav.main-header div.justify-end.md\:order-3 {
		flex: 0 0 auto;
	}
	.alloy-header-links-center-split header nav.main-header .alloy-primary-menu-desktop {
		position: relative;
		width: 100%;
		margin-left: 0 !important;
		justify-content: center !important;
		gap: 48px !important;
		padding-right: 5.25rem; /* keeps the centered links where the design puts them, clear of the last link */
	}
	.alloy-header-links-center-split header nav.main-header .alloy-primary-menu-desktop > li {
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
	.alloy-header-links-center-split header nav.main-header .alloy-primary-menu-desktop > li:last-child {
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		margin: 0 !important;
	}
	.alloy-header-links-center-split header nav.main-header .alloy-primary-menu-desktop > li:last-child > a {
		font-size: 0.875rem !important;
		padding: 0 !important;
	}
}

/* ---- Tall header: the design's 1280px container, 54px logo and 14px Donate button -------------------------------- */
@media (min-width: 1281px) {
	/* Zero side padding only once the viewport is wider than the design's 1280px container; below that the 1rem gutter keeps the logo and buttons off the screen edge. */
	.alloy-header-tall header nav.main-header > div.max-w-screen-xl {
		padding-inline: 0;
	}
}
@media (min-width: 768px) {
	.alloy-header-tall header nav.main-header a:has(> img) img {
		height: 3.375rem;
		width: auto;
	}
	.alloy-header-tall #main-navigation .alloy-header-utility-cta--desktop {
		margin-right: 0;
		padding: 0.625rem 1.25rem;
		border-radius: 0.5rem;
		font-size: 0.875rem;
		font-weight: 800;
		line-height: 1.5;
	}
}

/* ---- Shared menu panel (Alloy Settings > Header > Menu Panel) ------------------------------------------------------ */
.alloy-menu-panel[hidden] {
	display: none;
}
.alloy-menu-panel {
	display: none;
}
@media (min-width: 1181px) {
	.alloy-menu-panel {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		z-index: 99;
		display: block;
		background: #000;
		color: #fff;
		border-top: 1px solid rgba(255, 255, 255, 0.12);
	}
	.alloy-menu-panel[hidden] {
		display: none;
	}
	.alloy-menu-panel__inner {
		display: grid;
		grid-template-columns: repeat(4, 12.5rem);
		column-gap: 1.25rem;
		box-sizing: border-box;
		max-width: 80rem;
		margin: 0 auto;
		padding: 3rem 0 6rem 14.25rem;
	}
	.alloy-menu-panel__heading {
		display: block;
		margin: 0 0 1.25rem;
		color: #fff;
		font-size: 0.75rem;
		font-weight: 700;
		letter-spacing: 0.02em;
		line-height: 1.5;
		text-transform: uppercase;
		text-decoration: none;
	}
	.alloy-menu-panel__list {
		margin: 0;
		padding: 0;
		list-style: none;
	}
	.alloy-menu-panel .alloy-menu-panel__list li {
		margin: 0 0 1.2rem;
		padding: 0 !important;
		list-style: none;
	}
	.alloy-menu-panel__list li::before,
	.alloy-menu-mobile-children li::before,
	.alloy-menu-mobile-groups li::before {
		content: none !important;
	}
	.alloy-menu-panel__list a {
		display: block;
		color: #a3a3a3;
		font-size: 0.875rem;
		font-weight: 500;
		line-height: 1.5;
		text-decoration: none;
	}
	.alloy-menu-panel__heading:hover,
	.alloy-menu-panel__list a:hover,
	.alloy-menu-panel__heading:focus-visible,
	.alloy-menu-panel__list a:focus-visible {
		color: var(--brand-primary-on-dark, #ffb600);
	}
	.alloy-menu-panel__list .is-current a {
		color: var(--brand-primary-on-dark, #ffb600);
	}
	#main-navigation .alloy-menu-mobile-groups {
		display: none !important;
	}
}
/* Mobile: every group expanded (design: Compact Menu). */
@media (max-width: 1180px) {
	.alloy-menu-panel {
		display: none !important;
	}
	#main-navigation .alloy-menu-mobile-groups {
		display: block !important;
		padding-inline: 1.5rem !important;
	}
	.alloy-menu-mobile-group {
		margin: 0 0 2.25rem;
	}
	#main-navigation .alloy-menu-mobile-heading {
		display: block;
		margin: 0 0 1.5rem;
		padding: 0 !important;
		color: #fff !important;
		font-size: 1.125rem !important;
		font-weight: 600 !important;
		line-height: 1.5;
		text-decoration: none;
	}
	.alloy-menu-mobile-children li,
	.alloy-menu-mobile-group {
		list-style: none;
	}
	.alloy-menu-mobile-children li {
		margin: 0 0 1.25rem;
	}
	#main-navigation .alloy-menu-mobile-children a {
		display: block;
		padding: 0 !important;
		color: #a3a3a3 !important;
		font-size: 1.125rem !important;
		font-weight: 600 !important;
		line-height: 1.5;
		text-decoration: none;
	}
	#main-navigation .alloy-menu-mobile-children .is-current a,
	#main-navigation .alloy-menu-mobile-heading:hover,
	#main-navigation .alloy-menu-mobile-children a:hover {
		color: var(--brand-primary-on-dark, #ffb600) !important;
	}
	/* A long menu scrolls inside the open mobile menu instead of running off the screen. */
	.alloy-header-panel #main-navigation #navbar-primary-menu:not(.hidden) {
		/* It is fixed under the header: pinning the bottom edge makes the background fill the screen at any phone height. */
		bottom: 0;
		max-height: none;
		overflow-y: auto;
		overscroll-behavior: contain;
		padding-bottom: calc(1.5rem + env(safe-area-inset-bottom, 0px));
	}
}

/* ---- Footer: brand left, link columns right (Alloy Settings > Footer Layout) ------------- */
#colophon.alloy-footer--campaign > div {
	max-width: 90rem;
}
#colophon.alloy-footer--campaign .alloy-footer-brand-block {
	max-width: 24rem;
}
#colophon.alloy-footer--campaign .alloy-footer-brand-block p {
	max-width: 15.5rem;
	margin-top: 1.25rem;
	font-size: 1rem;
	line-height: 1.5;
}
#colophon.alloy-footer--campaign .alloy-footer-column-heading {
	margin-bottom: 1rem;
	padding-bottom: 0;
	border-bottom: 0;
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.5;
}
#colophon.alloy-footer--campaign #primary-footer-nav li {
	padding: 0;
}
#colophon.alloy-footer--campaign #primary-footer-nav li + li {
	margin-top: 1rem;
}
#colophon.alloy-footer--campaign #primary-footer-nav li > a {
	font-size: 1rem !important;
}
#colophon.alloy-footer--campaign hr {
	margin-top: 3rem;
	margin-bottom: 0;
	border-color: #374151;
}
#colophon.alloy-footer--campaign .alloy-footer-bottom {
	padding-top: 2rem;
	min-height: 5.5rem;
}
#colophon.alloy-footer--campaign .alloy-footer-wordmark-link {
	display: block;
	line-height: 0;
}
#colophon.alloy-footer--campaign .alloy-footer-wordmark {
	display: block;
	width: auto;
	height: 17px;
	max-width: 100%;
}
#colophon.alloy-footer--campaign .alloy-footer-legal,
#colophon.alloy-footer--campaign .alloy-footer-legal span {
	font-size: 1rem;
}
@media (min-width: 1024px) {
	#colophon.alloy-footer--campaign > div {
		padding-inline: 5rem;
	}
	/* The design fixes the top row at 220px and lets the social icons run 28px into the gap above the rule. */
	#colophon.alloy-footer--campaign hr {
		margin-top: 1.25rem;
	}
	#colophon.alloy-footer--campaign .alloy-footer-top {
		grid-template-columns: 24rem minmax(0, 1fr);
		gap: 6rem;
	}
	#colophon.alloy-footer--campaign .alloy-footer-menu-grid {
		display: flex;
		justify-content: space-between;
		gap: 1.5rem;
	}
	#colophon.alloy-footer--campaign .alloy-footer-menu-grid > div {
		width: 11rem;
	}
}

/* ---- Split Feature: photo fade, pull quote and top eyebrow ------------------------------- */
.split-feature__media {
	position: relative;
}
.split-feature__fade {
	position: absolute;
	inset: 0;
	pointer-events: none;
	--sf-scrim: color-mix(in srgb, var(--brand-primary, #003087) 40%, #000);
	background: radial-gradient(835px 850px at 65% 25%, color-mix(in srgb, var(--sf-scrim) 0%, transparent) 0, var(--sf-scrim) 100%);
}
.split-feature .split-feature__quote {
	position: absolute;
	right: 1.5rem;
	bottom: 1.5rem;
	left: 1.5rem;
	z-index: 1;
	margin: 0;
	color: #fff;
	text-align: left;
}
.split-feature--image-left .split-feature__quote {
	text-align: right;
}
.split-feature__quote blockquote {
	margin: 0;
	padding: 0;
	border: 0;
	quotes: none;
}
.split-feature__quote blockquote p {
	margin: 0;
	color: #fff;
	font-family: var(--alloy-quote-font, var(--alloy-eyebrow-font, var(--font-heading, inherit)));
	font-size: 1.125rem;
	font-style: normal;
	font-weight: 500;
	line-height: 1.5;
}
.split-feature .split-feature__quote figcaption {
	margin-top: 1rem;
	color: var(--brand-accent, var(--brand-primary-on-dark, #fff));
	font-size: 1rem;
	line-height: 1.5;
	text-align: inherit;
}
@media (min-width: 1024px) {
	.split-feature .split-feature__quote {
		right: auto;
		bottom: 5.625rem;
		left: 5rem;
		width: min(40rem, calc(100% - 10rem));
	}
	.split-feature.split-feature--image-left .split-feature__quote {
		right: 5rem;
		left: auto;
	}
	.split-feature__quote blockquote p {
		font-size: 1.5rem;
	}

	/* Eyebrow pinned near the top of the text panel (wide image rows). */
	.split-feature--eyebrow-top .split-feature__content-panel {
		position: relative;
	}
	.split-feature--eyebrow-top .split-feature__eyebrow {
		position: absolute;
		top: 5.625rem;
		left: clamp(2rem, 5.56vw, 5rem);
		margin: 0;
	}
	.split-feature--eyebrow-top.split-feature--image-left .split-feature__eyebrow {
		left: clamp(1.5rem, 3.34vw, 3rem);
	}
}

/* ---- Split Feature: contained card rows (Media Style = card) ----------------------------- */
.split-feature.split-feature--card {
	gap: 1.5rem;
	padding: 1.5rem;
	overflow: visible;
}
.split-feature--card .split-feature__content-panel {
	padding: 0;
}
.split-feature--card .split-feature__media {
	overflow: hidden;
	border-radius: 0.5rem;
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px 0 rgba(0, 0, 0, 0.05);
}
.split-feature--card .split-feature__media {
	position: relative;
	aspect-ratio: 540.458 / 406.779;
}
.split-feature--card .split-feature__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	min-height: 0;
	border-radius: inherit;
	object-fit: cover;
}
.split-feature--card .split-feature__content {
	max-width: 40rem;
	margin-inline: 0;
	gap: 1.5rem;
}
.split-feature--card .split-feature__heading {
	font-family: var(--alloy-heading-font, inherit);
	font-size: 1.75rem;
	font-weight: 800;
	letter-spacing: -0.01em;
	line-height: 1.25;
}
.split-feature--card .split-feature__description {
	margin-top: 1.5rem;
	color: var(--brand-muted, #6b7280);
	font-size: 1.0625rem;
	line-height: 1.5;
}
@media (min-width: 1024px) {
	.split-feature.split-feature--card {
		flex-direction: row;
		align-items: center;
		gap: 5rem;
		padding-block: 2rem;
		padding-inline: max(5rem, calc((100% - 80rem) / 2));
	}
	.split-feature.split-feature--card .split-feature__media {
		flex: 0 0 33.7786rem;
		width: 33.7786rem;
		align-self: center;
		aspect-ratio: 540.458 / 406.779;
	}
	.split-feature.split-feature--card .split-feature__content-panel {
		flex: 1 1 0;
		width: auto;
		align-items: center;
	}
	.split-feature--card .split-feature__heading {
		font-size: 2.25rem;
	}
	.split-feature--card .split-feature__description {
		font-size: 1.125rem;
	}
	/* Stacked rows sit 64px apart; the first row of a run has 96px above it and the last 96px below. */
	.split-feature.split-feature--card:not(.split-feature--card + .split-feature--card) {
		padding-top: 6rem;
	}
	.split-feature.split-feature--card:not(:has(+ .split-feature--card)) {
		padding-bottom: 6rem;
	}
}

/* ---- Buttons on light sections (Alloy Settings > Button Styles) -------------------------- */
.alloy-btn-light-primary :is(.alloy-section-theme:not(.dark), .alloy-cta-band--surface) :is(a.alloy-btn, a.alloy-btn-brand-primary) {
	background-color: var(--brand-primary) !important;
	border-color: var(--brand-primary) !important;
	color: #fff !important;
}
.alloy-btn-light-primary :is(.alloy-section-theme:not(.dark), .alloy-cta-band--surface) :is(a.alloy-btn, a.alloy-btn-brand-primary) * {
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
}
.alloy-btn-light-primary :is(.alloy-section-theme:not(.dark), .alloy-cta-band--surface) :is(a.alloy-btn, a.alloy-btn-brand-primary):is(:hover, :focus-visible) {
	background-color: color-mix(in srgb, var(--brand-primary) 82%, #000) !important;
	border-color: color-mix(in srgb, var(--brand-primary) 82%, #000) !important;
}
.split-feature--card .split-feature__actions a {
	border-radius: 0.5rem;
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1.5;
}
.split-feature--card .split-feature__actions a:first-child::after {
	content: "\2192";
	margin-left: 0.5rem;
}

/* ---- Testimonial Blockquote: bold style (Quote Style = bold) ----------------------------- */
.alloy-testimonial-blockquote--bold {
	background: color-mix(in srgb, var(--brand-muted, #6b7280) 9%, #fff) !important;
}
.alloy-testimonial-blockquote--bold > div {
	max-width: 76rem;
	padding-block: 3rem;
}
@media (min-width: 1024px) {
	.alloy-testimonial-blockquote--bold > div {
		padding-block: 6rem;
	}
}
.alloy-testimonial-blockquote.alloy-testimonial-blockquote--bold figure {
	max-width: 45rem;
	gap: 1.5rem;
}
.alloy-testimonial-blockquote--bold svg {
	height: 1.25rem;
	transform: rotate(180deg);
	color: #9ca3af;
}
.alloy-testimonial-blockquote--bold blockquote p {
	color: var(--brand-text, #111928);
	font-size: 1.25rem;
	font-style: normal;
	font-weight: 600;
	line-height: 1.625;
	text-wrap: balance;
}
@media (min-width: 768px) {
	.alloy-testimonial-blockquote--bold blockquote p {
		font-size: 1.5rem;
	}
}
.alloy-testimonial-blockquote--bold figcaption > div {
	gap: 0.625rem;
	align-items: center;
	border: 0 !important;
}
.alloy-testimonial-blockquote--bold figcaption > div > div {
	padding: 0 !important;
	border: 0 !important;
	line-height: 1.25;
}
.alloy-testimonial-blockquote--bold figcaption > div > div:first-child {
	font-size: 1rem;
	font-weight: 700;
	color: var(--brand-text, #111928);
}
.alloy-testimonial-blockquote--bold figcaption > div > div:first-child::after {
	content: " /";
	font-weight: 700;
}
.alloy-testimonial-blockquote--bold figcaption > div > div:last-child {
	font-size: 0.875rem;
	font-weight: 400;
	color: var(--brand-muted, #6b7280);
}

/* ---- Single posts built from blocks (Alloy Settings > Single Post Layout = blocks) ------- */
.alloy-single-blocks {
	max-width: none;
	padding: 0;
	background: #fff;
	color: var(--brand-text, #111928);
}
.alloy-single-blocks.alloy-single-blocks > :is(p, h2, h3, h4, ul, ol, blockquote, .wp-block-image, .wp-block-quote, .wp-block-list, .wp-block-heading, .wp-block-paragraph) {
	box-sizing: border-box;
	max-width: var(--alloy-post-content-max-width, 800px) !important;
	margin-inline: auto !important;
	padding-inline: 24px;
}
.alloy-single-blocks.alloy-single-blocks > p {
	margin-top: 0;
	margin-bottom: 1.25rem;
	font-size: 1rem;
	line-height: 1.7;
}
.alloy-single-blocks > p:first-of-type {
	margin-top: 0;
}
.alloy-single-blocks > .alloy-article-header + p {
	margin-top: 0;
}
.alloy-single-blocks > :is(h2, h3, h4) {
	margin-top: 2rem;
	margin-bottom: 1rem;
	font-family: var(--alloy-heading-font, inherit);
	font-weight: 800;
	line-height: 1.25;
}
.alloy-single-blocks > .alloy-image-band {
	margin-top: 5rem;
}
.alloy-single-blocks > .alloy-image-band + p {
	margin-top: 4rem;
}


/* Hero Banner titles in the Page Title (H1) Color (Alloy Settings, Typography). The photo scrim turns light and photo-less heroes turn pale so the colored title stays readable.
 * Centered logo heroes and the photo-pair layout keep their own treatment. */
.alloy-hero-h1color .alloy-hero-banner:not(.alloy-hero-banner--centered):not(.alloy-hero-banner--split-images):not([class*="alloy-hero-banner--gradient"]) {
	background: var(--brand-surface, #ebf5ff);
	color: var(--brand-text, #111928);
}
.alloy-hero-h1color .alloy-hero-banner:not(.alloy-hero-banner--centered):not(.alloy-hero-banner--split-images) .ahb__heading {
	color: var(--alloy-h1-color, var(--brand-primary, #003087)) !important;
}
.alloy-hero-h1color .alloy-hero-banner:not(.alloy-hero-banner--centered):not(.alloy-hero-banner--split-images) .ahb__description {
	color: var(--brand-text, #111928);
}
.alloy-hero-h1color .alloy-hero-banner:not(.alloy-hero-banner--centered):not(.alloy-hero-banner--split-images) .ahb__scrim {
	background: linear-gradient(90deg, rgba(255, 255, 255, 0.94) 0%, rgba(255, 255, 255, 0.86) 42%, rgba(255, 255, 255, 0.28) 78%, rgba(255, 255, 255, 0) 100%);
}

/* ---- Split Feature: navy photo tint, lead-in line, flight path graphic, button arrow (MOF Figma 150:137 to 150:200) ---- */
.split-feature__tint {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(135deg, color-mix(in srgb, var(--brand-primary, #003087) 30%, transparent) 0%, color-mix(in srgb, var(--brand-dark, #01103c) 58%, transparent) 55%, color-mix(in srgb, var(--brand-dark, #01103c) 80%, transparent) 100%);
}
.split-feature__lead {
	margin: 1.25rem 0 0;
	color: var(--alloy-section-heading, #fff);
	font-size: 1.5rem;
	font-weight: 500;
	line-height: 1.5;
}
.split-feature__lead + .split-feature__description {
	margin-top: 1.5rem;
}
/* The flight graphic straddles the border with the section above, so the section must not clip it vertically (style.css sets overflow hidden). */
.split-feature.split-feature--flight {
	position: relative;
	overflow-x: clip;
	overflow-y: visible;
}
.split-feature__flight {
	position: absolute;
	top: -2.75rem;
	z-index: 3;
	width: 14.625rem;
	height: 8.625rem;
	max-width: none;
	pointer-events: none;
}
.split-feature--flight.split-feature--image-left .split-feature__flight {
	right: -4rem;
}
.split-feature--flight.split-feature--image-right .split-feature__flight {
	left: -3.375rem;
	transform: scaleX(-1);
}
@media (max-width: 1023px) {
	.split-feature__flight {
		display: none;
	}
}
.split-feature--link-arrow .split-feature__actions :is(a, .alloy-btn)::after {
	content: "\2192" / "";
	display: inline-block;
	margin-left: 0.5rem;
	font-weight: 700;
}

/* Balanced layout: eyebrow pinned top (Eyebrow Position: Top), copy centered, actions pinned to the bottom (Figma 150:137: 90px top and bottom). */
.split-feature--layout-balanced .split-feature__content {
	justify-content: space-between;
}
.split-feature--layout-balanced .split-feature__copy {
	margin-block: auto;
}
.split-feature--layout-balanced .split-feature__actions {
	margin-top: 0;
}
@media (min-width: 1024px) {
	.split-feature--layout-balanced .split-feature__content-panel {
		align-items: stretch;
		padding-block: 5.625rem;
	}
}

/* Split Feature: quote hidden on phones (Quote On Small Screens = Hide) */
@media (max-width: 767.98px) {
	.split-feature--quote-desktop .split-feature__quote {
		display: none;
	}
}

/* Split Feature: radial navy fade (Image Fade = Radial) and display-font headings (Heading Font = Display) */
.split-feature__radial {
	position: absolute;
	inset: 0;
	pointer-events: none;
}
.split-feature .split-feature__heading.split-feature__heading--display {
	font-family: var(--alloy-h1-font, var(--alloy-heading-font, inherit));
}

/* ---- Header line, mobile menu and testimonial fixes (MOF QA round 2) ---- */
.alloy-header-no-border header nav.main-header,
.alloy-header-no-border header nav.main-header div[class~="md:flex"]:not([class~="md:hidden"]),
.alloy-header-no-border header,
.alloy-header-no-border .alloy-menu-panel {
	border-bottom-width: 0 !important;
	border-top-width: 0 !important;
	box-shadow: none !important;
}
/* Mega panel open over a transparent header (home, before scrolling): the bar turns solid black and the hidden logo comes back,
   so the panel reads as one piece with the header instead of hanging under the blue sky gradient (Colin / Jory, MOF-5). */
.alloy-header-overlay header nav.main-header.alloy-menu-panel-open {
	--alloy-header-bg: var(--alloy-header-solid, #000) !important;
	background-color: var(--alloy-header-solid, #000) !important;
}
@media (min-width: 768px) {
	.alloy-header-overlay header nav.main-header.alloy-menu-panel-open div[class~="md:flex"]:not([class~="md:hidden"]) {
		background-color: var(--alloy-header-solid, #000) !important;
	}
}
.alloy-header-hide-logo header nav.main-header.alloy-menu-panel-open a:has(> img) {
	visibility: visible;
	animation: alloy-header-logo-in 0.45s ease 0.3s both; /* after the panel has come in */
}
/* The 1px strip drawn along the bottom of the header (header.css, #main-navigation::after) is the line the design does not have. */
.alloy-header-no-border #main-navigation::after {
	display: none !important;
}
/* The mobile menu panel is dark like the header, also over the transparent home header (it was the brand blue). */
@media (max-width: 1180px) {
	.alloy-header-panel #navbar-primary-menu {
		background-color: var(--alloy-header-solid, #000) !important;
		border-top-width: 0 !important;
	}
	/* While the menu is open the header is solid and shows the logo, as in the design. */
	.alloy-header-panel nav.main-header:has(button[aria-expanded="true"]) {
		background-color: var(--alloy-header-solid, #000) !important;
		--alloy-header-bg: var(--alloy-header-solid, #000) !important;
	}
	.alloy-header-panel.alloy-header-hide-logo nav.main-header:has(button[aria-expanded="true"]) a:has(> img) {
		visibility: visible;
	}
}
/* Testimonial: the figure stays centered inside the page container (entry-content rules set its margins to zero). */
.alloy-testimonial-blockquote figure {
	margin-inline: auto !important;
}

/* ---- Subtle motion for the menu (header bar, panel, logo, links). Off with reduced motion. ---- */
@keyframes alloy-panel-in {
	from { opacity: 0; transform: translateY(-8px); }
	to { opacity: 1; transform: none; }
}
@keyframes alloy-panel-item-in {
	from { opacity: 0; transform: translateY(6px); }
	to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: no-preference) {
	/* the header bar color follows the panel (solid black while it is open) */
	header nav.main-header,
	header nav.main-header div[class~="md:flex"]:not([class~="md:hidden"]) {
		transition: background-color 0.3s ease;
	}
	header nav.main-header a,
	.alloy-menu-panel a {
		transition: color 0.2s ease, background-color 0.2s ease, opacity 0.2s ease;
	}
	@media (min-width: 1181px) {
		.alloy-menu-panel:not([hidden]) {
			animation: alloy-panel-in 0.28s cubic-bezier(0.2, 0.7, 0.2, 1) both;
		}
		.alloy-menu-panel:not([hidden]) .alloy-menu-panel__group {
			animation: alloy-panel-item-in 0.32s cubic-bezier(0.2, 0.7, 0.2, 1) both;
		}
		.alloy-menu-panel:not([hidden]) .alloy-menu-panel__group:nth-child(1) { animation-delay: 0.06s; }
		.alloy-menu-panel:not([hidden]) .alloy-menu-panel__group:nth-child(2) { animation-delay: 0.11s; }
		.alloy-menu-panel:not([hidden]) .alloy-menu-panel__group:nth-child(3) { animation-delay: 0.16s; }
		.alloy-menu-panel:not([hidden]) .alloy-menu-panel__group:nth-child(4) { animation-delay: 0.21s; }
	}
	@media (max-width: 1180px) {
		.alloy-header-panel #navbar-primary-menu:not(.hidden) {
			animation: alloy-panel-in 0.25s ease both;
		}
	}
}

/* Logged-in admin bar on phones: it is not fixed below 601px, so the sticky/fixed header follows it as it scrolls away (js/alloy-header-sticky.js sets the offset). */
@media (max-width: 600px) {
	.admin-bar.alloy-header-overlay header:has(> nav.main-header),
	.admin-bar.alloy-header-sticky:not(.alloy-header-overlay) header:has(> nav.main-header) {
		top: var(--alloy-adminbar-offset, 46px);
	}
}
