/*
 * CRAA site header.
 * Mobile-first: the compact bar is the default; two rows from 1280px unless the script finds the
 * navigation does not fit (it then sets data-layout="compact"). Colours: text keeps 4.5:1 in every
 * state; focus rings are 3px and at least 3:1 against their background.
 */

/* The site font with its text centred: ApexNew puts letters high in the line box (ascent 75%, descent
   25%, measured), so text in buttons, fields and bars sat about 0.125em high. Same files, centred
   metrics; and every bold weight is Medium, because this site maps 700 to ApexNew Heavy. Shared with
   the search results and the assistant. */
@font-face { font-family: "CRAA Apex"; src: url(/wp-content/uploads/2023/10/ApexNew-Book.woff2) format("woff2"); font-weight: 100 400; font-style: normal; font-display: swap; ascent-override: 83%; descent-override: 17%; line-gap-override: 0%; }
@font-face { font-family: "CRAA Apex"; src: url(/wp-content/uploads/2023/10/ApexNew-Medium.woff2) format("woff2"); font-weight: 500 900; font-style: normal; font-display: swap; ascent-override: 83%; descent-override: 17%; line-gap-override: 0%; }
@font-face { font-family: "CRAA Apex"; src: url(/wp-content/uploads/2023/10/ApexNew-BookItalic.woff2) format("woff2"); font-weight: 100 400; font-style: italic; font-display: swap; ascent-override: 83%; descent-override: 17%; line-gap-override: 0%; }
@font-face { font-family: "CRAA Apex"; src: url(/wp-content/uploads/2023/10/ApexNew-MediumItalic.woff2) format("woff2"); font-weight: 500 900; font-style: italic; font-display: swap; ascent-override: 83%; descent-override: 17%; line-gap-override: 0%; }

/* #anchor links and keyboard focus scroll to just below the stuck header (height from craa-header.js). */
html { scroll-padding-top: calc(var(--craa-hdr-covers, 0px) + 16px); }

body.craa-hdr-active {
	--craa-row1: 68px;
	--craa-row2: 60px;
	--craa-adminbar: 0px;
}
body.admin-bar.craa-hdr-active { --craa-adminbar: 32px; }
@media (max-width: 782px) { body.admin-bar.craa-hdr-active { --craa-adminbar: 46px; } }
@media (max-width: 600px) { body.admin-bar.craa-hdr-active { --craa-adminbar: 0px; } }

/* The child theme's alert bar (header.php, just above the page). Its script holds it back two seconds,
   then slides it in over the page and pads the body, which shifted everything while people read. Here
   it is part of the page from the first paint and scrolls away while the header sticks. Dismissing still
   works (the theme's script removes it); dismissed alerts are hidden before paint (see the head script). */
body.craa-hdr-active .notification-banner {
	position: relative !important;
	top: auto !important;
	transform: none !important;
	visibility: visible !important;
	z-index: 1000;
}
body.craa-hdr-active.has-notification-banner.header-height-ready { padding-top: 0 !important; transition: none !important; }

/* The Elementor location wrapper is what sticks (its parent is the whole page). */
body.craa-hdr-active .elementor-location-header {
	position: sticky;
	top: calc(var(--craa-adminbar) + var(--craa-alert, 0px));
	z-index: 999;
}
@media (min-width: 1280px) {
	body.craa-hdr-active .elementor-location-header:not(:has([data-layout="compact"])) {
		top: calc(var(--craa-adminbar) + var(--craa-alert, 0px) - var(--craa-row1));
	}
}
@media (max-height: 500px) {
	body.craa-hdr-active .elementor-location-header { position: relative; top: auto; }
}

.craa-hdr {
	--craa-navy: #002855;
	--craa-muted: #3d4b5c;
	--craa-rule: #d7d2cb;
	--craa-hover: #007bb3;
	--craa-btn: #007bb3;
	--craa-btn-hover: #002855;
	--craa-btn-text: #ffffff;
	--craa-focus: #002855;
	--craa-max: 1300px;
	position: relative;
	background: #ffffff;
	border-top: 6px solid var(--craa-bar);
	box-shadow: 0 2px 8px rgba(0, 40, 85, 0.1);
	color: var(--craa-navy);
	font-family: "CRAA Apex", "ApexNew", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	font-size: 16px;
	line-height: 1.3;
}
.craa-hdr *,
.craa-hdr *::before,
.craa-hdr *::after { box-sizing: border-box; }
.craa-hdr ul { list-style: none; margin: 0; padding: 0; }
.craa-hdr li { margin: 0; padding: 0; }
.craa-hdr p,
.craa-hdr .craa-hdr__inner p { margin: 0; padding: 0; }
.craa-hdr a { text-decoration: none; }
.craa-hdr .craa-hdr__sr {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}
.craa-hdr :focus { outline: none; }
.craa-hdr :focus-visible { outline: 3px solid var(--craa-focus); outline-offset: 2px; }
.craa-hdr .craa-hdr__icon { display: block; flex: none; }

/* Reset theme button styles inside the header (three classes beat Astra and the Elementor kit). */
.craa-hdr .craa-hdr__inner button {
	appearance: none;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: inherit;
	font: inherit;
	line-height: inherit;
	letter-spacing: normal;
	text-transform: none;
	cursor: pointer;
}

/* ---------- Compact (default) ---------- */
.craa-hdr__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	min-height: 64px;
	padding: 8px 16px;
}
.craa-hdr__logo { display: flex; align-items: center; min-width: 0; }
.craa-hdr__logo-img { display: block; height: auto; }
.craa-hdr__logo-img--wide { display: none; }
.craa-hdr__logo-img--compact { width: auto; max-width: min(62vw, 280px); max-height: 44px; }
.craa-hdr__logo-text { font-weight: 700; font-size: 20px; color: var(--craa-navy); }

.craa-hdr__tools { display: none; gap: 4px; }
.craa-hdr.is-js .craa-hdr__tools { display: flex; }
.craa-hdr .craa-hdr__inner .craa-hdr__tool {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	color: var(--craa-navy);
}
.craa-hdr .craa-hdr__inner .craa-hdr__tool:hover { color: var(--craa-hover); }
.craa-hdr__tool .craa-hdr__icon { width: 28px; height: 28px; }
.craa-hdr__tool .craa-hdr__icon--close,
.craa-hdr__tool[aria-expanded="true"] .craa-hdr__icon--menu,
.craa-hdr__tool[aria-expanded="true"] .craa-hdr__icon--search { display: none; }
.craa-hdr__tool[aria-expanded="true"] .craa-hdr__icon--close { display: block; }
.craa-hdr__tool[data-craa-toggle="search"][aria-expanded="true"] { color: var(--craa-hover); }

/* Without JavaScript the panel simply sits below the bar. */
.craa-hdr__panel {
	display: flex;
	flex-direction: column;
	gap: 20px;
	width: 100%;
	padding: 12px 16px 24px;
}
.craa-hdr:not(.is-js) .craa-hdr__inner { flex-wrap: wrap; }

/* With JavaScript it is a drawer under the bar. */
.craa-hdr.is-js .craa-hdr__panel { display: none; }
.craa-hdr.is-js.is-open .craa-hdr__panel {
	display: flex;
	position: fixed;
	left: 0;
	right: 0;
	top: var(--craa-drawer-top, 70px);
	bottom: 0;
	z-index: 1000;
	overflow-y: auto;
	overscroll-behavior: contain;
	background: #ffffff;
	border-top: 1px solid var(--craa-rule);
}
.craa-hdr.is-js[data-mode="search"] .craa-hdr__panel > :not(.craa-hdr__search),
.craa-hdr.is-js[data-mode="menu"] .craa-hdr__panel > .craa-hdr__search { display: none; }
.craa-hdr.is-js[data-mode="search"].is-open .craa-hdr__panel { bottom: auto; box-shadow: 0 12px 24px rgba(0, 40, 85, 0.15); }

.craa-hdr__quick { display: flex; flex-wrap: wrap; gap: 8px; }
.craa-hdr .craa-hdr__inner .craa-hdr__quick a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 8px 16px;
	background: var(--craa-btn);
	color: var(--craa-btn-text);
	font-weight: 500;
}
.craa-hdr .craa-hdr__inner .craa-hdr__quick a:hover { background: var(--craa-btn-hover); color: #ffffff; }

.craa-hdr__aud ul { display: flex; flex-wrap: wrap; gap: 8px; }
/* Compact menu: one "Site section" dropdown instead of five buttons (no script: the buttons show). */
.craa-hdr__aud-toggle { display: none; }
.craa-hdr.is-js[data-compact] .craa-hdr__inner .craa-hdr__aud-toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	min-height: 56px;
	padding: 8px 16px;
	border: 2px solid var(--craa-navy);
	border-radius: 6px;
	background: #ffffff;
	color: var(--craa-navy);
	text-align: left;
}
.craa-hdr__aud-text { display: flex; flex-direction: column; }
.craa-hdr__aud-kicker { color: var(--craa-muted); font-size: 13px; line-height: 1.2; }
.craa-hdr__aud-current { font-size: 18px; font-weight: 500; line-height: 1.3; }
.craa-hdr__aud-toggle .craa-hdr__icon--chevron { width: 22px; height: 22px; transition: transform 0.15s ease; }
.craa-hdr__aud-toggle[aria-expanded="true"] .craa-hdr__icon--chevron { transform: rotate(180deg); }
.craa-hdr.is-js[data-compact] .craa-hdr__aud ul { display: none; }
.craa-hdr.is-js[data-compact] .craa-hdr__aud.is-open ul { display: flex; flex-direction: column; gap: 0; margin-top: 6px; border: 1px solid var(--craa-rule); border-radius: 6px; overflow: hidden; }
.craa-hdr.craa-hdr.is-js[data-compact] .craa-hdr__aud.is-open .craa-hdr__inner .craa-hdr__aud-link,
.craa-hdr.is-js[data-compact] .craa-hdr__inner .craa-hdr__aud.is-open .craa-hdr__aud-link { display: flex; width: 100%; min-height: 48px; padding: 10px 16px; border: 0; border-bottom: 1px solid var(--craa-rule); background: #ffffff; color: var(--craa-navy); }
.craa-hdr.is-js[data-compact] .craa-hdr__inner .craa-hdr__aud.is-open li:last-child .craa-hdr__aud-link { border-bottom: 0; }
.craa-hdr.is-js[data-compact] .craa-hdr__inner .craa-hdr__aud.is-open .craa-hdr__aud-link[aria-current] { box-shadow: inset 4px 0 0 var(--craa-navy); background: #f2f6fa; font-weight: 500; }

/* Quick-link buttons are pages in the menu already; on phones and tablets they were clutter (Kyle). */
.craa-hdr[data-compact] .craa-hdr__quick,
.craa-hdr[data-compact] .craa-hdr__highlights { display: none; }

/* While the menu is open, the consent manager's floating cookie icon (after consent) steps aside. */
body.craa-hdr-consent-hidden mon-cb-main { visibility: hidden !important; }
.craa-hdr .craa-hdr__inner .craa-hdr__aud-link {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 8px 14px;
	border: 2px solid var(--craa-navy);
	color: var(--craa-navy);
	font-weight: 500;
}
.craa-hdr .craa-hdr__inner .craa-hdr__aud-link:hover { color: var(--craa-hover); border-color: var(--craa-hover); }
.craa-hdr .craa-hdr__inner .craa-hdr__aud-link[aria-current] { background: var(--craa-navy); color: #ffffff; }

.craa-hdr__wx { order: 10; font-size: 16px; color: var(--craa-navy); }
/* A site stylesheet sets p { margin-bottom: .75em !important }, which pushed the readout above the
   bar's centre and spaced panel descriptions unevenly. Inside the header, paragraphs get no bottom margin. */
.craa-hdr p { margin-bottom: 0 !important; }
/* A flex row, so the visually hidden label and the icon's inline alignment don't stretch a line box
   and lift the visible readout above the bar's centre. */
.craa-hdr .craa-hdr__inner .craa-hdr__wx { display: flex; align-items: center; margin: 0; line-height: 1.2; }
.craa-hdr__wx-visible { display: inline-flex; align-items: center; gap: 8px; }
.craa-hdr__wx-visible .craa-hdr__icon { display: block; flex: none; }
.craa-hdr__wx-temp { line-height: 1; }
.craa-hdr__wx .craa-hdr__icon { width: 26px; height: 26px; }

.craa-hdr__menu { display: flex; flex-direction: column; border-top: 1px solid var(--craa-rule); }
.craa-hdr__item { border-bottom: 1px solid var(--craa-rule); }
.craa-hdr .craa-hdr__inner .craa-hdr__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	width: 100%;
	min-height: 52px;
	padding: 10px 4px;
	color: var(--craa-navy);
	font-size: 18px;
	font-weight: 500;
	text-align: left;
}
.craa-hdr .craa-hdr__inner .craa-hdr__top:hover { color: var(--craa-hover); }
.craa-hdr__top .craa-hdr__icon--chevron { width: 22px; height: 22px; transition: transform 0.15s ease; }
.craa-hdr__top[aria-expanded="true"] .craa-hdr__icon--chevron { transform: rotate(180deg); }
.craa-hdr__item.is-current > .craa-hdr__top { box-shadow: inset 4px 0 0 var(--craa-navy); padding-left: 14px; }

.craa-hdr__sub { display: none; padding: 4px 4px 16px; }
.craa-hdr__top[aria-expanded="true"] + .craa-hdr__sub { display: block; }
.craa-hdr:not(.is-js) .craa-hdr__item:focus-within .craa-hdr__sub { display: block; }
.craa-hdr__sub-inner { display: flex; flex-direction: column; gap: 12px; }
.craa-hdr__highlights { display: flex; flex-wrap: wrap; gap: 8px; }
.craa-hdr .craa-hdr__inner .craa-hdr__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 18px;
	background: var(--craa-btn);
	color: var(--craa-btn-text);
	font-weight: 500;
	box-shadow: 0 0 10px rgba(0, 0, 0, 0.12);
}
.craa-hdr .craa-hdr__inner .craa-hdr__btn:hover { background: var(--craa-btn-hover); color: #ffffff; }
.craa-hdr__links { display: grid; gap: 4px; }
.craa-hdr .craa-hdr__inner .craa-hdr__link {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 6px 0;
	color: var(--craa-navy);
	font-size: 17px;
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.craa-hdr .craa-hdr__inner .craa-hdr__link:hover { color: var(--craa-hover); }
.craa-hdr__link[aria-current="page"],
.craa-hdr__btn[aria-current="page"] { text-decoration-thickness: 3px; }
.craa-hdr__desc { display: none; }

/* Promo card (wide panels only; the phone menu stays a plain list). */
.craa-hdr__promo { display: none; }

/* The phone menu lists the quick links once at the top, so panels don't repeat them. */
.craa-hdr[data-layout="compact"] .craa-hdr__highlights,
.craa-hdr:not(.is-js) .craa-hdr__highlights { display: none; }
.craa-hdr__third { display: grid; gap: 2px; margin-top: 4px; padding-left: 14px; border-left: 2px solid var(--craa-rule); }
.craa-hdr .craa-hdr__inner .craa-hdr__link--third { min-height: 36px; font-size: 16px; font-weight: 400; }

.craa-hdr__search { display: flex; width: 100%; }
.craa-hdr__search-field { display: flex; flex: 1; min-width: 0; border-radius: 6px; }
.craa-hdr .craa-hdr__search-input {
	flex: 1;
	min-width: 0;
	height: 48px;
	margin: 0;
	padding: 0 12px;
	border: 1px solid #6b7785;
	border-right: 0;
	border-radius: 0;
	background: #ffffff;
	color: var(--craa-navy);
	font: inherit;
	font-size: 17px;
}
.craa-hdr .craa-hdr__inner .craa-hdr__search-input:focus-visible,
.craa-hdr.craa-hdr .craa-hdr__search .craa-hdr__search-input:focus,
.craa-hdr.craa-hdr .craa-hdr__search .craa-hdr__search-input:focus-visible { outline: none; border-color: var(--craa-navy); }
/* Focus: one ring hugging field and button together, so neither looks bigger than the other. The
   field's border turns navy and a 1px shadow thickens it; an offset outline around the bordered field
   read as a heavy double frame. Navy on white is 14:1. */
.craa-hdr .craa-hdr__search-field:focus-within { outline: none; box-shadow: 0 0 0 1px var(--craa-focus); }
.craa-hdr.craa-hdr .craa-hdr__search-field:focus-within .craa-hdr__search-input { border-color: var(--craa-focus); }
.craa-hdr .craa-hdr__inner .craa-hdr__search-btn:focus-visible { outline: 2px solid #ffffff; outline-offset: -5px; }
.craa-hdr .craa-hdr__search-input::placeholder { color: #5f6b78; opacity: 1; }
.craa-hdr .craa-hdr__inner .craa-hdr__search-btn {
	display: grid;
	place-items: center;
	width: 52px;
	height: 48px;
	background: var(--craa-navy);
	color: #ffffff;
}
.craa-hdr .craa-hdr__inner .craa-hdr__search-btn:hover { background: var(--craa-hover); color: #ffffff; }
/* The button's word is read everywhere; it is shown where there is room (the drawer and the dropdown bar). */
.craa-hdr__search-label { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.craa-hdr__spinner { display: none; width: 18px; height: 18px; border: 3px solid rgba(255, 255, 255, 0.35); border-top-color: #ffffff; border-radius: 50%; animation: craa-hdr-spin 0.8s linear infinite; }
.craa-hdr__search.is-busy .craa-hdr__spinner { display: inline-block; }
.craa-hdr__search.is-busy .craa-hdr__search-btn .craa-hdr__icon--search { display: none; }
@keyframes craa-hdr-spin { to { transform: rotate(360deg); } }
.craa-hdr__search.is-loading .craa-hdr__search-btn .craa-hdr__icon--search { animation: craa-hdr-pulse 0.9s ease-in-out infinite; }
@keyframes craa-hdr-pulse { 50% { opacity: 0.35; } }

/* Drawer (phones and tablets): a full field with a labelled button. */
.craa-hdr[data-layout="compact"] .craa-hdr__search { margin-top: 4px; }
.craa-hdr[data-compact] .craa-hdr__search { flex-wrap: wrap; }
.craa-hdr[data-compact] .craa-hdr__search-field { flex: 1 1 100%; }
/* Suggestions flow inside the search panel on phones (as a floating list they were cut off by it). */
.craa-hdr[data-compact] .craa-hdr__search .craa-suggest,
.craa-hdr[data-compact] .craa-hdr__search .craa-suggest-loading { position: static !important; flex: 0 0 100%; width: 100% !important; max-height: none; margin-top: 8px; border-radius: 6px; box-shadow: none; }
.craa-hdr.is-js[data-compact][data-mode="search"].is-open .craa-hdr__panel { max-height: calc(100vh - var(--craa-drawer-top, 70px)); max-height: calc(100dvh - var(--craa-drawer-top, 70px)); }
.craa-hdr.craa-hdr[data-layout="compact"] .craa-hdr__inner .craa-hdr__search-input { height: 52px; border-width: 2px; border-radius: 6px 0 0 6px; font-size: 18px; }
.craa-hdr.craa-hdr[data-layout="compact"] .craa-hdr__inner .craa-hdr__search-btn { width: auto; height: 52px; gap: 8px; display: inline-flex; align-items: center; padding: 0 18px; border-radius: 0 6px 6px 0; font-weight: 700; }
.craa-hdr[data-layout="compact"] .craa-hdr__search-label { position: static; width: auto; height: auto; margin: 0; overflow: visible; clip: auto; }

/* ---------- Wide: two rows, unless the script forces compact ---------- */
@media (min-width: 1280px) {
	.craa-hdr:not([data-layout="compact"]) {
		border-top: 0;
		background: linear-gradient(to bottom, var(--craa-bar) 0, var(--craa-bar) var(--craa-row1), #ffffff var(--craa-row1));
	}
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__inner {
		display: grid;
		grid-template-columns: minmax(160px, 220px) minmax(0, 1fr) auto;
		grid-template-rows: var(--craa-row1) var(--craa-row2);
		row-gap: 0;
		column-gap: 24px;
		align-items: stretch;
		max-width: var(--craa-max);
		min-height: 0;
		margin: 0 auto;
		padding: 0 24px;
	}
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__logo { grid-column: 1; grid-row: 1; padding: 10px 0; }
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__logo-img--wide { display: block; width: 100%; max-width: 220px; }
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__logo-img--compact { display: none; }
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__tools,
	.craa-hdr.is-js:not([data-layout="compact"]) .craa-hdr__tools { display: none; }
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__panel,
	.craa-hdr.is-js:not([data-layout="compact"]) .craa-hdr__panel { display: contents; }
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__quick { display: none; }

	.craa-hdr:not([data-layout="compact"]) .craa-hdr__aud { grid-column: 2; grid-row: 1; }
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__aud ul { flex-wrap: nowrap; gap: 0; height: 100%; }
	.craa-hdr.craa-hdr:not([data-layout="compact"]) .craa-hdr__inner .craa-hdr__aud-link {
		display: flex;
		height: 100%;
		min-height: 0;
		padding: 0 20px;
		border: 0;
		color: var(--craa-bar-text);
		font-size: 18px;
		white-space: nowrap;
	}
	.craa-hdr.craa-hdr:not([data-layout="compact"]) .craa-hdr__inner .craa-hdr__aud-link:hover,
	.craa-hdr.craa-hdr:not([data-layout="compact"]) .craa-hdr__inner .craa-hdr__aud-link[aria-current] { background: #ffffff; color: var(--craa-navy); }
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__aud-link:focus-visible { outline-color: var(--craa-bar-focus); outline-offset: -6px; }
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__aud-link[aria-current]:focus-visible,
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__aud-link:hover:focus-visible { outline-color: var(--craa-navy); }

	.craa-hdr:not([data-layout="compact"]) .craa-hdr__wx { grid-column: 3; grid-row: 1; align-self: center; order: 0; color: var(--craa-bar-text); font-size: 18px; }

	.craa-hdr:not([data-layout="compact"]) .craa-hdr__nav { grid-column: 2; grid-row: 2; min-width: 0; }
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__menu { flex-direction: row; flex-wrap: nowrap; height: 100%; border-top: 0; }
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__item { display: flex; border-bottom: 0; }
	.craa-hdr.craa-hdr:not([data-layout="compact"]) .craa-hdr__inner .craa-hdr__top {
		width: auto;
		min-height: 0;
		justify-content: flex-start;
		gap: 2px;
		padding: 0 12px;
		font-size: 16px;
		white-space: nowrap;
	}
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__item:first-child .craa-hdr__top { padding-left: 0; }
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__top .craa-hdr__icon--chevron { width: 16px; height: 16px; }
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__top[aria-expanded="true"],
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__item.is-current > .craa-hdr__top { box-shadow: inset 0 -4px 0 currentColor; padding-left: 12px; }
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__item:first-child.is-current > .craa-hdr__top,
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__item:first-child > .craa-hdr__top[aria-expanded="true"] { padding-left: 0; }

	.craa-hdr:not([data-layout="compact"]) .craa-hdr__sub {
		position: absolute;
		left: 0;
		right: 0;
		top: calc(var(--craa-row1) + var(--craa-row2));
		z-index: 2;
		padding: 0;
		background: #ffffff;
		border-top: 1px solid var(--craa-rule);
		box-shadow: 0 16px 24px rgba(0, 40, 85, 0.12);
	}
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__sub-inner {
		flex-direction: row;
		gap: 36px;
		max-width: var(--craa-max);
		margin: 0 auto;
		padding: 28px 24px 32px;
	}
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__highlights {
		flex: 0 0 240px;
		flex-direction: column;
		flex-wrap: nowrap;
		gap: 12px;
		padding-right: 36px;
		border-right: 1px solid var(--craa-navy);
	}
	.craa-hdr.craa-hdr:not([data-layout="compact"]) .craa-hdr__inner .craa-hdr__btn { width: 100%; min-height: 52px; }
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__links {
		flex: 1;
		/* Columns are always a quarter of the row (so every panel lines up); --craa-cols says how many are used. */
		grid-template-columns: repeat(var(--craa-cols, 4), minmax(0, calc((100% - 96px) / 4)));
		gap: 22px 32px;
		align-content: start;
	}
	/* Beside a promo card, two even columns read better than three with one orphan. */
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__sub-inner.has-promo .craa-hdr__links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.craa-hdr.craa-hdr:not([data-layout="compact"]) .craa-hdr__inner .craa-hdr__link { min-height: 0; padding: 0; font-size: 18px; }
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__desc { display: block; margin-top: 6px; font-size: 14px; line-height: 1.45; color: var(--craa-muted); }
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__third { margin-top: 6px; padding-left: 14px; gap: 0; }

	.craa-hdr.craa-hdr:not([data-layout="compact"]) .craa-hdr__inner .craa-hdr__promo {
		position: relative;
		display: flex;
		flex: 0 0 260px;
		align-self: flex-start;
		min-height: 190px;
		overflow: hidden;
		background: var(--craa-navy);
		color: #ffffff;
		text-decoration: none;
		box-shadow: 0 0 10px rgba(0, 0, 0, 0.18);
	}
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__promo-img {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		object-fit: cover;
		transition: transform 0.3s ease;
	}
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__promo:hover .craa-hdr__promo-img { transform: scale(1.04); }
	/* Solid navy band behind the words: white text stays at 14:1 whatever the photo is. */
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__promo-text {
		position: relative;
		align-self: flex-end;
		width: 100%;
		padding: 12px 16px 14px;
		background: rgba(0, 40, 85, 0.94);
		line-height: 1.25;
	}
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__promo-title { display: block; font-size: 20px; font-style: italic; font-weight: 700; }
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__promo-sub { display: block; margin-top: 2px; font-size: 17px; font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
	.craa-hdr.craa-hdr:not([data-layout="compact"]) .craa-hdr__inner .craa-hdr__promo:focus-visible { outline: 3px solid var(--craa-navy); outline-offset: 3px; }

	.craa-hdr:not([data-layout="compact"]) .craa-hdr__search { grid-column: 3; grid-row: 2; align-self: center; width: auto; }
	.craa-hdr:not([data-layout="compact"]) .craa-hdr__search-input { width: 190px; flex: none; height: 42px; font-size: 16px; }
	.craa-hdr.craa-hdr:not([data-layout="compact"]) .craa-hdr__inner .craa-hdr__search-btn { width: 46px; height: 42px; }
}

/* ---------- Tight wide: long menus keep two rows; search becomes a button with a dropdown ---------- */
@media (min-width: 1280px) {
	.craa-hdr.is-js[data-layout="tight"] .craa-hdr__tools { display: flex; grid-column: 3; grid-row: 2; align-self: center; justify-self: end; }
	.craa-hdr.is-js[data-layout="tight"] .craa-hdr__tools [data-craa-toggle="menu"] { display: none; }
	.craa-hdr.is-js[data-layout="tight"] .craa-hdr__search { display: none; }
	/* Search opens as a card under the search button (right edge of the navigation row). */
	.craa-hdr.is-js[data-layout="tight"].is-search-open .craa-hdr__search {
		display: flex;
		position: absolute;
		right: max(24px, calc((100% - var(--craa-max)) / 2 + 24px));
		top: calc(var(--craa-row1) + var(--craa-row2) + 8px);
		z-index: 3;
		width: min(640px, calc(100% - 48px));
		padding: 16px;
		background: #ffffff;
		border: 1px solid var(--craa-rule);
		border-radius: 10px;
		box-shadow: 0 16px 32px rgba(0, 40, 85, 0.16);
	}
	.craa-hdr.craa-hdr.is-js[data-layout="tight"].is-search-open .craa-hdr__search .craa-hdr__search-input { flex: 1; width: auto; height: 48px; padding: 0 16px; border: 2px solid #6b7785; border-right: 0; border-radius: 6px 0 0 6px; font-size: 17px; }
	.craa-hdr.craa-hdr.is-js[data-layout="tight"].is-search-open .craa-hdr__search .craa-hdr__search-input:hover,
	.craa-hdr.craa-hdr.is-js[data-layout="tight"].is-search-open .craa-hdr__search .craa-hdr__search-input:focus { border-color: var(--craa-navy); }
	.craa-hdr.craa-hdr.is-js[data-layout="tight"].is-search-open .craa-hdr__inner .craa-hdr__search-btn { display: inline-flex; align-items: center; gap: 8px; width: auto; height: 48px; padding: 0 20px; border-radius: 0 6px 6px 0; font-size: 17px; font-weight: 700; }
	.craa-hdr.is-js[data-layout="tight"].is-search-open .craa-hdr__search-label { position: static; width: auto; height: auto; margin: 0; overflow: visible; clip: auto; }
	/* With suggestions open the card ends just under the field, so the list hangs below the card rather than over its padding. */
	.craa-hdr.is-js[data-layout="tight"].is-search-open .craa-hdr__search:has(.craa-suggest:not([hidden]), .craa-suggest-loading:not([hidden])) { padding-bottom: 4px; }
	.craa-hdr.is-js[data-layout="tight"] .craa-hdr__tools [data-craa-toggle="search"][aria-expanded="true"] { color: var(--craa-hover); box-shadow: inset 0 -4px 0 currentColor; }
}

@media (prefers-reduced-motion: reduce) {
	.craa-hdr__top .craa-hdr__icon--chevron,
	.craa-hdr__promo-img { transition: none; }
	.craa-hdr__spinner,
	.craa-hdr__search.is-loading .craa-hdr__search-btn .craa-hdr__icon--search { animation: none; }
}
@media (forced-colors: active) {
	.craa-hdr__btn, .craa-hdr__quick a, .craa-hdr__aud-link[aria-current], .craa-hdr__promo { border: 2px solid ButtonText; }
	.craa-hdr__top[aria-expanded="true"] { text-decoration: underline; }
	/* Forced colors drop box-shadow, so the search field's focus ring needs an outline here. */
	.craa-hdr .craa-hdr__search-field:focus-within { outline: 2px solid Highlight; outline-offset: 2px; }
}
