/* File: wp-content/themes/nad-child-theme/assets/css/nm-chrome.css
   NADmedia Header 1 / Footer 1. Brand-agnostic. Loaded when Header 1 prints. */

/* Shared chrome inset — Header bar + Builder Terra Hero inner wrap both consume this. */
body.nm-has-header-1 {
	--nm-header-pad-inline: clamp(1.75rem, 5vw, 5.5rem);
}

.nm-header,
.nm-footer {
	--nm-content-max: var(--nad-content-max, 1120px);
	--nm-gutter: clamp(1.25rem, 4vw, 4.5rem);
	--nm-space-xs: 0.25rem;
	--nm-space-sm: 0.5rem;
	--nm-space-md: 1rem;
	--nm-space-lg: 1.5rem;
	--nm-space-xl: clamp(2rem, 4vw, 3rem);
	--nm-button-min-height: 44px;
	--nm-header-offset: 4.5rem;
	--nm-radius: var(--nad-radius, 8px);
	--nm-stroke-width: 1px;
	--nm-button-stroke-width: 1px;
	--nm-duration: 200ms;
	--nm-color-bg: #ffffff;
	--nm-color-muted: #f4f4f5;
	--nm-color-text: #172033;
	--nm-color-text-muted: #5d6b82;
	--nm-color-accent: var(--nad-accent, #2b6cff);
	--nm-color-on-accent: #ffffff;
	--nm-color-border: rgba(23, 32, 51, 0.12);
	--nm-color-focus: #111111;
	/* Deterministic chrome stack: explicit Customizer --nad-font, else Open Sans.
	   Do not fall back to inherit (body/Colibri) — application routes may lack Colibri body CSS. */
	--nm-font: var(--nad-font, "Open Sans", sans-serif);
	--nm-header-height: var(--nm-header-offset);
	--nm-header-bg: var(--nm-color-bg);
	--nm-header-fg: var(--nm-color-text);
	--nm-header-bg-solid: var(--nm-color-bg);
	--nm-header-fg-solid: #172033;
	--nm-header-opacity: 1;
	--nm-header-divider-width: 0px;
	--nm-header-divider-color: var(--nm-color-border);
	/* Local fallback when body.nm-has-header-1 token is absent. */
	--nm-header-pad-inline: clamp(1.75rem, 5vw, 5.5rem);
	box-sizing: border-box;
	font-family: var(--nm-font);
	max-width: 100%;
	text-align: start;
}

/* overflow-x:clip on .nm-header itself breaks position:sticky — keep clip on footer only. */
.nm-footer {
	overflow-x: clip;
}

.nm-header {
	color: var(--nm-header-fg);
}

.nm-footer {
	color: var(--nm-footer-text-color, var(--nm-color-text));
}

.nm-header *,
.nm-header *::before,
.nm-header *::after,
.nm-footer *,
.nm-footer *::before,
.nm-footer *::after {
	box-sizing: border-box;
}

.nm-header a,
.nm-footer a {
	color: inherit;
	text-decoration: none;
}

.nm-header .nm-header__brand:hover,
.nm-header .nm-header__actions a:hover,
.nm-footer__meta a:hover,
.nm-footer__social a:hover,
.nm-footer__title a:hover {
	opacity: 0.88;
}

.nm-header a:focus-visible,
.nm-header button:focus-visible,
.nm-footer a:focus-visible,
.nm-footer button:focus-visible {
	outline: 3px solid var(--nm-color-focus);
	outline-offset: 3px;
}

header.nm-header {
	background: var(--nm-header-bg);
	background: color-mix(in srgb, var(--nm-header-bg) calc(var(--nm-header-opacity, 1) * 100%), transparent);
	box-shadow: 0 var(--nm-header-divider-width, 0px) 0 var(--nm-header-divider-color, transparent);
	display: block;
	left: 0;
	right: 0;
	top: 0;
	width: 100%;
	z-index: 40;
	transition: background-color var(--nm-duration) ease, box-shadow var(--nm-duration) ease, color var(--nm-duration) ease;
}

.nm-header--sticky:not(.nm-header--transparent) {
	/* Fixed, not sticky: Colibri #page-top.site overflow breaks position:sticky. */
	position: fixed;
	left: 0;
	right: 0;
	top: 0;
	width: 100%;
}

.admin-bar .nm-header--sticky:not(.nm-header--transparent) {
	top: var(--wp-admin--admin-bar--height, 32px);
}

@media screen and (max-width: 782px) {
	.admin-bar .nm-header--sticky:not(.nm-header--transparent) {
		top: var(--wp-admin--admin-bar--height, 46px);
	}
}

/*
 * Reserve space under fixed sticky header so content does not jump under the bar.
 * Transparent headers intentionally overlay the Hero (no spacer).
 */
body.nm-has-header-1:has(.nm-header--sticky:not(.nm-header--transparent)) .site > main#main-content,
body.nm-has-header-1:has(.nm-header--sticky:not(.nm-header--transparent)) .site > .nm-page,
body.nm-has-header-1:has(.nm-header--sticky:not(.nm-header--transparent)) .site > main {
	padding-top: var(--nm-header-height, var(--nm-header-offset, 4.5rem));
}

/*
 * Mobile compact sticky (max-width 56.24em ≈ under Header 1 desktop breakpoint).
 * After scroll: collapse full sticky bar; float existing hamburger only.
 * Desktop sticky unchanged. Sticky-off never gets .nm-header--compact (JS gated).
 */
@media not all and (min-width: 56.25em) {
	/*
	 * Mobile toggle right guide (~16px). Compact float + normal bar end padding
	 * share this token. Logo / start pad stay on --nm-header-pad-inline.
	 */
	.nm-header {
		--nm-mobile-toggle-right: max(1rem, env(safe-area-inset-right, 0px));
	}

	.nm-header.nm-header--sticky {
		--nm-mobile-toggle-top: max(var(--nm-header-pad-top, var(--nm-space-sm)), env(safe-area-inset-top, 0px));
	}

	/* Decouple hamburger from admin header pad without moving the logo. */
	.nm-header .nm-header__bar {
		padding-inline-end: var(--nm-mobile-toggle-right);
	}

	body.nm-has-header-1:has(.nm-header--sticky.nm-header--compact:not(.nm-header--transparent)) .site > main#main-content,
	body.nm-has-header-1:has(.nm-header--sticky.nm-header--compact:not(.nm-header--transparent)) .site > .nm-page,
	body.nm-has-header-1:has(.nm-header--sticky.nm-header--compact:not(.nm-header--transparent)) .site > main {
		padding-top: 0;
	}

	.nm-header.nm-header--sticky.nm-header--compact {
		background: transparent !important;
		box-shadow: none;
		/* Allow floating toggle + open drawer; bar itself does not eat hits. */
		pointer-events: none;
	}

	.nm-header.nm-header--sticky.nm-header--compact > .nm-block__media {
		opacity: 0;
		pointer-events: none;
	}

	.nm-header.nm-header--sticky.nm-header--compact .nm-header__bar {
		align-items: stretch;
		display: block;
		gap: 0;
		grid-template-columns: none;
		height: 0;
		min-height: 0;
		overflow: visible;
		padding: 0;
		pointer-events: none;
		width: 100%;
	}

	.nm-header.nm-header--sticky.nm-header--compact .nm-header__brand,
	.nm-header.nm-header--sticky.nm-header--compact .nm-header__nav-desktop,
	.nm-header.nm-header--sticky.nm-header--compact .nm-header__actions:not(.nm-header__actions--drawer) {
		display: none !important;
	}

	.nm-header.nm-header--sticky.nm-header--compact .nm-header__toggle {
		/* Legacy aliases kept for any external references. */
		--nm-compact-toggle-inset: var(--nm-mobile-toggle-right);
		--nm-compact-toggle-top: var(--nm-mobile-toggle-top);
		background: var(--nm-header-scrolled-bg, var(--nm-header-bg-solid, var(--nm-color-bg)));
		background: color-mix(
			in srgb,
			var(--nm-header-scrolled-bg, var(--nm-header-bg-solid, var(--nm-color-bg))) calc(var(--nm-compact-toggle-opacity, 0.88) * 100%),
			transparent
		);
		border-color: var(--nm-button-stroke-color, transparent);
		box-shadow: 0 0.35rem 1rem rgba(17, 17, 17, 0.22);
		color: var(--nm-header-scrolled-fg, var(--nm-header-fg-solid, var(--nm-color-text)));
		height: var(--nm-button-min-height, 44px);
		justify-self: end;
		margin: 0;
		min-width: var(--nm-button-min-height, 44px);
		padding: 0;
		pointer-events: auto;
		position: fixed;
		right: var(--nm-mobile-toggle-right);
		top: var(--nm-mobile-toggle-top);
		width: var(--nm-button-min-height, 44px);
		z-index: 60;
		/*
		 * Conceal in-flow → fixed switch (cannot interpolate position).
		 * Short fade/scale only — do not fly across the viewport.
		 */
		animation: nm-compact-toggle-enter 150ms ease-out;
	}

	/* Compact float is always the bars icon (even when Customizer = Text / MENU). */
	.nm-header.nm-header--sticky.nm-header--compact .nm-header__toggle-label {
		display: none !important;
	}

	.nm-header.nm-header--sticky.nm-header--compact .nm-header__toggle-bars {
		display: flex;
	}

	/* Drawer open: X stays solid / stationary — no enter animation replay. */
	body.nm-chrome-drawer-open .nm-header.nm-header--sticky.nm-header--compact .nm-header__toggle {
		animation: none;
	}

	.admin-bar .nm-header.nm-header--sticky.nm-header--compact .nm-header__toggle {
		top: calc(var(--wp-admin--admin-bar--height, 32px) + var(--nm-mobile-toggle-top));
	}

	.nm-header.nm-header--sticky.nm-header--compact .nm-header__drawer {
		pointer-events: auto;
		/* Full viewport drawer under floating toggle; avoid bar-height dependency. */
		max-height: 100dvh;
	}

	body.nm-chrome-drawer-open .nm-header.nm-header--sticky.nm-header--compact .nm-header__toggle,
	body.nm-chrome-drawer-open .nm-header.nm-header--sticky.nm-header--compact .nm-header__drawer {
		pointer-events: auto;
	}

	/*
	 * Compact + drawer open: fixed opaque panel covers the viewport so page
	 * content cannot peek below a short menu. Toggle stays above (z-index 60).
	 */
	body.nm-chrome-drawer-open .nm-header.nm-header--sticky.nm-header--compact .nm-header__drawer {
		border-top: 0;
		bottom: 0;
		height: 100dvh;
		left: 0;
		max-height: none;
		min-height: 100dvh;
		position: fixed;
		right: 0;
		top: 0;
		z-index: 55;
	}

	.admin-bar.nm-chrome-drawer-open .nm-header.nm-header--sticky.nm-header--compact .nm-header__drawer {
		height: calc(100dvh - var(--wp-admin--admin-bar--height, 32px));
		min-height: calc(100dvh - var(--wp-admin--admin-bar--height, 32px));
		top: var(--wp-admin--admin-bar--height, 32px);
	}
}

@keyframes nm-compact-toggle-enter {
	from {
		opacity: 0;
		transform: scale(0.96) translateY(-2px);
	}
	to {
		opacity: 1;
		transform: scale(1) translateY(0);
	}
}

@media screen and (max-width: 782px) {
	.admin-bar .nm-header.nm-header--sticky.nm-header--compact .nm-header__toggle {
		top: calc(var(--wp-admin--admin-bar--height, 46px) + var(--nm-mobile-toggle-top, max(var(--nm-header-pad-top, var(--nm-space-sm)), env(safe-area-inset-top, 0px))));
	}

	.admin-bar.nm-chrome-drawer-open .nm-header.nm-header--sticky.nm-header--compact .nm-header__drawer {
		height: calc(100dvh - var(--wp-admin--admin-bar--height, 46px));
		min-height: calc(100dvh - var(--wp-admin--admin-bar--height, 46px));
		top: var(--wp-admin--admin-bar--height, 46px);
	}
}

.nm-header--transparent {
	background: transparent;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	--nm-header-fg: #ffffff;
	--nm-color-focus: #ffffff;
	--nm-color-text: #ffffff;
}

.admin-bar .nm-header--transparent {
	top: var(--wp-admin--admin-bar--height, 32px);
}

@media screen and (max-width: 782px) {
	.admin-bar .nm-header--transparent {
		top: var(--wp-admin--admin-bar--height, 46px);
	}
}

.nm-header--transparent.is-scrolled,
.nm-header.is-scrolled:not(.nm-header--transparent) {
	--nm-header-fg: var(--nm-header-scrolled-fg, var(--nm-header-fg-solid));
	--nm-color-text: var(--nm-header-scrolled-fg, var(--nm-header-fg-solid));
	--nm-color-focus: var(--nm-header-scrolled-fg, var(--nm-header-fg-solid));
	background: var(--nm-header-scrolled-bg, var(--nm-header-bg-solid));
	background: color-mix(in srgb, var(--nm-header-scrolled-bg, var(--nm-header-bg-solid)) calc(var(--nm-header-scrolled-opacity, 1) * 100%), transparent);
	box-shadow: 0 var(--nm-header-divider-width, 0px) 0 var(--nm-header-divider-color, var(--nm-color-border));
	color: var(--nm-header-fg);
}

.nm-header--transparent.nm-header--sticky.is-scrolled {
	position: fixed;
}

.nm-header__bar {
	align-items: center;
	box-sizing: border-box;
	display: grid;
	gap: var(--nm-space-md);
	grid-template-columns: auto minmax(0, 1fr) auto auto;
	margin: 0;
	max-width: none;
	/* Do NOT use min-height: var(--nm-header-height) — that loops with JS metrics. */
	min-height: var(--nm-button-min-height, 44px);
	padding-block: var(--nm-header-pad-top, var(--nm-space-sm)) var(--nm-header-pad-bottom, var(--nm-space-sm));
	padding-inline: var(--nm-header-pad-inline);
	width: 100%;
}

/* Contained: Senita model — inset once via pad in the width calc; no second padding-inline. */
.nm-header--content-contained .nm-header__bar {
	width: min(
		var(--nm-header-content-max, var(--nm-content-max, var(--nad-content-max, 1300px))),
		calc(100% - (2 * var(--nm-header-pad-inline)))
	);
	max-width: var(--nm-header-content-max, var(--nm-content-max, var(--nad-content-max, 1300px)));
	margin-inline: auto;
	padding-inline: 0;
}

@media (max-width: 56.24em) {
	.nm-header--content-contained .nm-header__bar {
		width: 100%;
		max-width: none;
		margin-inline: 0;
		padding-inline: var(--nm-header-pad-inline);
		/* Re-assert after shorthand so hamburger stays on the 16px mobile guide. */
		padding-inline-end: var(--nm-mobile-toggle-right, max(1rem, env(safe-area-inset-right, 0px)));
	}
}

.nm-header__brand {
	grid-column: 1;
	justify-self: start;
}

.nm-header__brand,
.nm-header__brand a,
.nm-header .custom-logo-link {
	align-items: center;
	display: inline-flex;
	flex-shrink: 0;
	max-width: min(240px, 46vw);
}

.nm-header__logo,
.nm-header .custom-logo {
	display: block;
	height: auto;
	max-height: 48px;
	width: auto;
}

.nm-header__brand--text {
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	overflow-wrap: anywhere;
}

.nm-header__nav-desktop {
	display: none;
	grid-column: 2;
	min-width: 0;
	width: 100%;
}

.nm-header__nav-desktop nav {
	width: 100%;
}

.nm-header__menu {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: var(--nm-nav-row-gap, 0.1rem) var(--nm-nav-gap, 0.75rem);
	justify-content: flex-end;
	list-style: none;
	margin: 0;
	min-width: 0;
	padding: 0;
	width: 100%;
}

.nm-header__menu > li > a {
	align-items: center;
	color: var(--nm-nav-primary-color, inherit);
	display: inline-flex;
	font-size: var(--nm-nav-font-size, 0.8125rem);
	font-weight: var(--nm-nav-font-weight, 700);
	letter-spacing: var(--nm-nav-letter-spacing, 0.04em);
	line-height: var(--nm-nav-line-height, 1.2);
	max-width: 100%;
	min-height: var(--nm-button-min-height);
	overflow-wrap: anywhere;
	padding: var(--nm-nav-pad-y, 0) var(--nm-nav-pad-x, 0);
	text-transform: var(--nm-nav-text-transform, uppercase);
}

/*
 * Header 1 only: automatic parent chevron from WP .menu-item-has-children.
 * Decorative — no extra focus target / spoken label. Color via currentColor.
 * Desktop rotates on existing :hover / :focus-within (same as submenu reveal).
 * Drawer submenus stay always-open; chevron remains downward there.
 */
.nm-header .nm-header__menu > .menu-item-has-children > a::after {
	border-bottom: 1.5px solid currentColor;
	border-inline-end: 1.5px solid currentColor;
	box-sizing: border-box;
	content: "";
	display: inline-block;
	flex-shrink: 0;
	height: 0.4em;
	margin-inline-start: 0.4em;
	pointer-events: none;
	transform: translateY(-0.12em) rotate(45deg);
	transition: transform 180ms ease;
	width: 0.4em;
}

.nm-header__nav-desktop .nm-header__menu > .menu-item-has-children:is(:hover, :focus-within) > a::after {
	transform: translateY(0.08em) rotate(-135deg);
}

@media (prefers-reduced-motion: reduce) {
	.nm-header .nm-header__menu > .menu-item-has-children > a::after {
		transition: none;
	}
}

/* Avoid duplicate Colibri/parent-theme arrow SVGs beside our CSS indicator. */
.nm-header .nm-header__menu > .menu-item-has-children > a > svg {
	display: none;
}

.nm-header.is-scrolled .nm-header__menu > li > a,
.nm-header--transparent.is-scrolled .nm-header__menu > li > a {
	color: inherit;
}

.nm-header__menu .sub-menu a {
	color: var(--nm-nav-secondary-color, inherit);
	display: block;
	font-size: var(--nm-nav-submenu-font-size, 0.875rem);
	font-weight: var(--nm-nav-submenu-font-weight, 500);
	letter-spacing: var(--nm-nav-submenu-letter-spacing, 0.02em);
	line-height: var(--nm-nav-line-height, 1.35);
	min-height: 40px;
	padding: 0.35rem 0.5rem;
	text-transform: var(--nm-nav-submenu-text-transform, none);
	white-space: nowrap;
}

.nm-header.is-scrolled .nm-header__menu .sub-menu a,
.nm-header--transparent.is-scrolled .nm-header__menu .sub-menu a {
	color: inherit;
}

.nm-header__menu > li {
	position: relative;
}

.nm-header__menu .sub-menu {
	background: var(--nm-nav-submenu-bg-color, var(--nm-header-bg-solid, var(--nm-header-bg)));
	border: var(--nm-stroke-width, 1px) solid var(--nm-stroke-color, var(--nm-color-border));
	border-radius: var(--nm-radius);
	box-shadow: 0 8px 24px rgba(23, 32, 51, 0.08);
	color: var(--nm-header-fg, var(--nm-color-text));
	display: none;
	left: 0;
	list-style: none;
	margin: 0;
	min-width: 12rem;
	padding: var(--nm-space-sm);
	position: absolute;
	top: 100%;
	z-index: 2;
}

.nm-header.is-scrolled .nm-header__menu .sub-menu,
.nm-header--transparent.is-scrolled .nm-header__menu .sub-menu {
	background: var(--nm-nav-submenu-bg-color, var(--nm-header-scrolled-bg, var(--nm-header-bg-solid, var(--nm-header-bg))));
	color: var(--nm-header-scrolled-fg, var(--nm-header-fg, var(--nm-color-text)));
}

.nm-header__menu > li:hover > .sub-menu,
.nm-header__menu > li:focus-within > .sub-menu {
	display: block;
}

.nm-header__actions {
	align-items: center;
	display: none;
	flex-shrink: 0;
	flex-wrap: wrap;
	gap: var(--nm-space-sm);
	grid-column: 3;
	margin: 0;
}

.nm-header__actions--drawer {
	display: flex;
	grid-column: auto;
}

.nm-header .nm-button--primary {
	background: var(--nm-header-cta-primary-bg, var(--nm-color-accent));
	border-color: var(--nm-button-stroke-color, var(--nm-header-cta-primary-bg, var(--nm-color-accent)));
	color: var(--nm-header-cta-primary-fg, var(--nm-color-on-accent));
}

.nm-header .nm-button--secondary {
	background: var(--nm-header-cta-secondary-bg, transparent);
	border-color: var(--nm-button-stroke-color, var(--nm-header-cta-secondary-fg, currentColor));
	color: var(--nm-header-cta-secondary-fg, var(--nm-color-text));
}

.nm-header__toggle {
	align-items: center;
	background: transparent;
	border: var(--nm-button-stroke-width, 1px) solid var(--nm-button-stroke-color, currentColor);
	border-radius: var(--nm-radius);
	color: inherit;
	cursor: pointer;
	display: inline-flex;
	flex-shrink: 0;
	grid-column: 4;
	height: 44px;
	justify-content: center;
	justify-self: end;
	margin-inline-start: auto;
	padding: 0;
	width: 44px;
}

.nm-header__toggle-bars {
	display: flex;
	flex-direction: column;
	gap: 5px;
	height: 16px;
	justify-content: space-between;
	width: 18px;
}

.nm-header__toggle-bars span {
	background: currentColor;
	display: block;
	height: 2px;
	transition: transform var(--nm-duration) ease, opacity var(--nm-duration) ease;
	width: 100%;
}

.nm-header__toggle[aria-expanded="true"] .nm-header__toggle-bars span:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

.nm-header__toggle[aria-expanded="true"] .nm-header__toggle-bars span:nth-child(2) {
	opacity: 0;
}

.nm-header__toggle[aria-expanded="true"] .nm-header__toggle-bars span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

.nm-header__drawer {
	/*
	 * Independent solid panel tokens — do not inherit transparent-bar
	 * cream/light text onto a light drawer (invisible links).
	 */
	background: var(--nm-nav-drawer-bg-color, var(--nm-header-bg-solid));
	border-top: 1px solid var(--nm-color-border);
	box-sizing: border-box;
	color: var(--nm-header-fg-solid, var(--nm-color-text));
	display: flex;
	flex-direction: column;
	max-height: calc(100dvh - var(--nm-header-height, var(--nm-header-offset, 4.5rem)));
	overflow-x: hidden;
	overflow-y: auto;
	padding: var(--nm-space-lg) var(--nm-gutter) var(--nm-space-xl);
	-webkit-overflow-scrolling: touch;
	--nm-header-fg: var(--nm-header-fg-solid, var(--nm-color-text));
	--nm-color-text: var(--nm-header-fg-solid, var(--nm-color-text));
	--nm-color-focus: var(--nm-header-fg-solid, var(--nm-color-focus));
	--nm-nav-primary-color: var(--nm-header-fg-solid, var(--nm-color-text));
	--nm-nav-secondary-color: var(--nm-header-fg-solid, var(--nm-color-text));
	--nm-nav-hover-color: var(--nm-header-fg-solid, var(--nm-color-accent));
	--nm-nav-current-color: var(--nm-header-fg-solid, var(--nm-color-accent));
}

.nm-header__drawer[hidden] {
	display: none !important;
}

.nm-header__drawer-main {
	display: flex;
	flex: 1 0 auto;
	flex-direction: column;
	gap: var(--nm-space-md);
	min-height: 0;
}

.nm-header__drawer-meta {
	display: flex;
	flex: 0 0 auto;
	flex-direction: column;
	gap: 0.75rem;
	margin-top: auto;
	padding-bottom: calc(env(safe-area-inset-bottom, 0px) + var(--nad-menu-footer-safe-bottom-mobile, 16px));
	padding-top: var(--nm-space-lg);
}

.nm-header__drawer-meta--divider {
	border-top: 1px solid color-mix(in srgb, currentColor 22%, transparent);
}

.nm-header__drawer-meta-link {
	color: inherit;
	font-size: 0.95rem;
	min-height: 44px;
	text-decoration: none;
}

.nm-header__drawer-meta-link:hover,
.nm-header__drawer-meta-link:focus-visible {
	opacity: 0.88;
	text-decoration: underline;
}

.nm-header__drawer-social {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
}

.nm-header__drawer-social-link {
	align-items: center;
	border: 1px solid color-mix(in srgb, currentColor 35%, transparent);
	border-radius: 999px;
	color: inherit;
	display: inline-flex;
	height: 44px;
	justify-content: center;
	text-decoration: none;
	width: 44px;
}

.nm-header__drawer-social-link svg {
	display: block;
	fill: currentColor;
	height: 1.15rem;
	width: 1.15rem;
}

.nm-header__drawer-social-link:hover,
.nm-header__drawer-social-link:focus-visible {
	background: color-mix(in srgb, currentColor 12%, transparent);
}

@media (min-width: 56.25em) {
	.nm-header__drawer-meta {
		padding-bottom: calc(env(safe-area-inset-bottom, 0px) + var(--nad-menu-footer-safe-bottom-desktop, 12px));
	}
}

.nm-header__menu--drawer {
	align-items: stretch;
	flex-direction: column;
	gap: 0;
}

.nm-header__menu--drawer > li > a {
	min-height: 48px;
}

.nm-header__menu--drawer .sub-menu a {
	min-height: 40px;
	white-space: normal;
}

.nm-header__drawer .nm-header__menu .sub-menu {
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	color: inherit;
	display: block;
	left: auto;
	min-width: 0;
	padding-left: var(--nm-space-md);
	position: static;
	top: auto;
}

.nm-header__drawer .nm-header__menu .sub-menu a {
	color: inherit;
}

.nm-header__actions--drawer {
	display: flex;
	flex-direction: column;
	margin-top: var(--nm-space-lg);
}

.nm-header__actions--drawer .nm-button {
	width: 100%;
}

.nm-footer {
	--nm-footer-nav-hover-opacity: 0.88;
	--nm-footer-border-width: 0px;
	--nm-footer-border-color: var(--nm-color-border);
	--nm-footer-legal-divider-color: var(--nm-color-border);
	background: var(--nm-color-muted);
	border: 0;
	margin-top: 0;
	padding: clamp(2.5rem, 5vw, 4rem) 0 1.75rem;
}

.nm-footer.nm-footer--border-top {
	border-top: var(--nm-footer-border-width) solid var(--nm-footer-border-color);
}

.nm-footer.nm-footer--border-full {
	border: var(--nm-footer-border-width) solid var(--nm-footer-border-color);
}

.nm-footer__grid {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(1.75rem, 4vw, 2.75rem);
	justify-content: space-between;
	min-width: 0;
	padding-bottom: 0;
}

.nm-footer__brand {
	flex: 1 1 min(100%, 18rem);
	max-width: min(30ch, 100%);
	min-width: 0;
}

.nm-footer__cols {
	display: flex;
	flex: 1 1 min(100%, 28rem);
	flex-wrap: wrap;
	gap: clamp(1.5rem, 4vw, 3.375rem);
	justify-content: flex-end;
	min-width: 0;
}

.nm-footer__nav,
.nm-footer__contact {
	flex: 1 1 9.5rem;
	max-width: 16rem;
	min-width: 0;
}

.nm-footer__heading {
	color: var(--nm-footer-nav-secondary-color, inherit);
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	margin: 0 0 0.875rem;
	text-transform: uppercase;
}

#colibri .nm-footer .nm-footer__heading {
	font-weight: 600;
}

.nm-footer__title {
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	margin: 0 0 var(--nm-space-md);
	text-transform: uppercase;
}

.nm-footer__title a {
	color: var(--nm-footer-text-color, inherit);
	font-size: 1.15rem;
	letter-spacing: 0.02em;
	text-transform: none;
}

.nm-footer__logo-link {
	display: inline-block;
	max-width: 100%;
}

.nm-footer__logo {
	display: block;
	height: auto;
	max-height: 44px;
	max-width: min(220px, 100%);
	width: auto;
}

.nm-footer__tagline {
	color: var(--nm-footer-text-color, var(--nm-color-text-muted));
	font-size: 0.84375rem;
	font-weight: 300;
	line-height: 1.7;
	margin: 0.875rem 0 0;
	max-width: 30ch;
}

.nm-footer__menu,
.nm-footer__meta {
	list-style: none;
	margin: 0;
	padding: 0;
}

.nm-footer__menu a,
.nm-footer__meta a,
.nm-footer__service {
	color: var(--nm-footer-nav-primary-color, inherit);
	display: block;
	font-size: 0.875rem;
	font-weight: 300;
	line-height: 1.45;
	margin: 0 0 0.5625rem;
	max-width: 100%;
	min-height: 1.75rem;
	overflow-wrap: anywhere;
	transition: color 0.18s ease;
}

.nm-footer__menu a:hover,
.nm-footer__menu a:focus-visible,
.nm-footer__meta a:hover,
.nm-footer__meta a:focus-visible {
	color: var(--nm-footer-nav-hover-color, inherit);
	opacity: var(--nm-footer-nav-hover-opacity, 1);
}

.nm-footer__menu .current-menu-item > a,
.nm-footer__menu .current_page_item > a {
	color: var(--nm-footer-nav-current-color, inherit);
}

.nm-footer__service {
	color: var(--nm-footer-text-color, inherit);
}

@media (max-width: 40em) {
	.nm-footer__grid {
		flex-direction: column;
	}

	.nm-footer__brand,
	.nm-footer__cols {
		flex: 1 1 100%;
		max-width: none;
	}

	.nm-footer__cols {
		flex-direction: column;
		gap: 1.75rem;
		justify-content: flex-start;
	}

	.nm-footer__nav,
	.nm-footer__contact {
		flex: 1 1 auto;
		max-width: none;
	}
}

.nm-footer__legal {
	align-items: center;
	border-top: 1px solid var(--nm-footer-legal-divider-color, rgba(252, 249, 237, 0.16));
	color: var(--nm-footer-legal-color, var(--nm-color-text));
	display: flex;
	flex-wrap: wrap;
	font-size: 0.75rem;
	gap: 0.875rem;
	justify-content: space-between;
	margin-top: clamp(2rem, 4vw, 3rem);
	padding: 1.25rem 0 0;
	width: 100%;
}

.nm-footer__legal p,
.nm-footer__copyright,
.nm-footer__legal-links {
	color: inherit;
	margin: 0;
}

.nm-footer__copyright {
	flex: 1 1 auto;
	min-width: 0;
	text-align: start;
}

.nm-footer__legal-links {
	flex: 0 0 auto;
	margin-inline-start: auto;
	text-align: end;
}

.nm-footer__legal a {
	color: inherit;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
}

.nm-footer__legal a:hover,
.nm-footer__legal a:focus-visible {
	color: var(--nm-footer-nav-hover-color, inherit);
}

/* Colibri global `p` color must not override Footer 1 legal copy. */
#colibri .nm-footer .nm-footer__legal,
#colibri .nm-footer .nm-footer__legal p,
#colibri .nm-footer .nm-footer__copyright,
#colibri .nm-footer .nm-footer__legal-links {
	color: var(--nm-footer-legal-color, var(--nm-color-text));
}

#colibri .nm-footer .nm-footer__title a,
#colibri .nm-footer .nm-footer__meta a,
#colibri .nm-footer .nm-footer__service {
	color: var(--nm-footer-text-color, inherit);
}

/* Safety: never show Colibri footer when Footer 1 owns the page. */
body.nm-has-footer-1 .page-footer,
body.nm-has-footer-1 .h-footer {
	display: none !important;
}

/*
 * Lock the real viewport scroller (html) plus body. body-only overflow:hidden
 * does not stop window.scrollY when document.scrollingElement is <html>.
 * Do not apply overflow:hidden to .nm-header__drawer — it must stay scrollable.
 */
html.nm-chrome-drawer-open,
body.nm-chrome-drawer-open {
	overflow: hidden;
	overscroll-behavior: none;
}

/*
 * Drawer-open: raise the bar stacking context above the drawer so the existing
 * toggle (hamburger → X) stays visible and hittable. Toggle z-index alone cannot
 * escape a parent bar with z-index: 2.
 */
html.nm-chrome-drawer-open .nm-header > .nm-header__bar,
body.nm-chrome-drawer-open .nm-header > .nm-header__bar {
	z-index: 60;
}

html.nm-chrome-drawer-open .nm-header > .nm-header__drawer,
body.nm-chrome-drawer-open .nm-header > .nm-header__drawer {
	z-index: 55;
}

/* Non-compact: fill space under the bar so short menus do not leave page visible. */
html.nm-chrome-drawer-open .nm-header:not(.nm-header--compact) .nm-header__drawer:not([hidden]),
body.nm-chrome-drawer-open .nm-header:not(.nm-header--compact) .nm-header__drawer:not([hidden]) {
	/* Stretch so contact/social meta can sit toward the bottom via margin-top:auto. */
	min-height: calc(100dvh - var(--nm-header-height, var(--nm-header-offset, 4.5rem)));

	min-height: calc(100dvh - var(--nm-header-height, var(--nm-header-offset, 4.5rem)));
}

/* Header 1 on NM templates: Colibri header is not the site chrome. Hide leftovers.
   Gate on nm-has-shell (template identity) ONLY — never on nm-chrome-nm.
   nm-chrome-nm is also set when Footer 1 is the companion footer on hybrid
   Colibri-built pages; hiding .page-header there collapses the Colibri hero
   (live VEXAL homepage regression). Colibri nav on hybrid uses
   body.nm-suppress-colibri-nav instead. */
body.nm-has-header-1.nm-has-shell .h-navigation_outer,
body.nm-has-header-1.nm-has-shell .page-header {
	display: none;
}

.nm-header__toggle--circle {
	border-radius: 999px;
}

.nm-header__toggle--text {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	min-width: 44px;
	padding: 0 0.85rem;
	text-transform: uppercase;
	width: auto;
}

/* Text style: MENU label in the bar; bars markup kept for compact sticky float. */
.nm-header__toggle--text .nm-header__toggle-bars {
	display: none;
}

.nm-header > .nm-header__bar,
.nm-header > .nm-header__drawer {
	position: relative;
	z-index: 2;
}

.nm-header.nm-block--has-bg {
	isolation: isolate;
}

.nm-header.nm-block--has-bg:not(.nm-header--sticky):not(.nm-header--transparent) {
	position: relative;
}

.nm-header > .nm-block__media {
	z-index: 0;
	opacity: var(--nm-header-opacity, 1);
}

.nm-header.is-scrolled > .nm-block__media {
	opacity: var(--nm-header-scrolled-opacity, 1);
}

.nm-header .nm-block__overlay {
	display: none;
}

.nm-header.nm-block--bg-color:not(.is-scrolled):not(.nm-header--transparent) {
	background: color-mix(in srgb, var(--nm-block-bg, var(--nm-header-bg)) calc(var(--nm-header-opacity, 1) * 100%), transparent);
}

.nm-header--transparent.nm-block--bg-color {
	background: var(--nm-block-bg);
}

.nm-footer.nm-block--bg-image,
.nm-footer.nm-block--bg-video,
.nm-footer.nm-block--bg-slideshow,
.nm-header.nm-block--bg-image,
.nm-header.nm-block--bg-video,
.nm-header.nm-block--bg-slideshow {
	background: transparent;
}

.nm-header--nav-hamburger .nm-header__nav-desktop,
.nm-header--layout-logo-actions .nm-header__nav-desktop {
	display: none;
}

@media (min-width: 56.25em) {
	.nm-header__nav-desktop {
		display: block;
	}

	.nm-header--nav-start .nm-header__menu {
		justify-content: flex-start;
	}

	.nm-header--nav-center .nm-header__menu {
		justify-content: center;
	}

	.nm-header--nav-end .nm-header__menu {
		justify-content: flex-end;
	}

	.nm-header__actions:not(.nm-header__actions--drawer) {
		display: flex;
	}

	.nm-header--no-bar-cta .nm-header__actions:not(.nm-header__actions--drawer) {
		display: none;
	}

	.nm-header:not(.nm-header--nav-hamburger):not(.nm-header--layout-logo-actions) .nm-header__toggle,
	.nm-header:not(.nm-header--nav-hamburger):not(.nm-header--layout-logo-actions) .nm-header__drawer {
		display: none;
	}

	.nm-header--nav-hamburger .nm-header__nav-desktop,
	.nm-header--layout-logo-actions .nm-header__nav-desktop {
		display: none;
	}

	.nm-header--nav-hamburger .nm-header__toggle,
	.nm-header--layout-logo-actions .nm-header__toggle {
		display: inline-flex;
	}

	.nm-header--layout-stacked:not(.nm-header--nav-hamburger):not(.nm-header--layout-logo-actions) .nm-header__nav-desktop {
		grid-column: 1 / -1;
		grid-row: 2;
	}

	.nm-footer__grid {
		align-items: flex-start;
	}

	.nm-footer--layout-stacked .nm-footer__grid,
	.nm-footer--cols-1 .nm-footer__grid {
		flex-direction: column;
	}

	.nm-footer--layout-stacked .nm-footer__cols,
	.nm-footer--nav-cols-0 .nm-footer__cols {
		justify-content: flex-start;
	}

	.nm-footer--layout-stacked .nm-footer__brand,
	.nm-footer--layout-stacked .nm-footer__cols {
		flex: 1 1 100%;
		max-width: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.nm-header,
	.nm-header__toggle-bars span,
	.nm-button,
	.nm-header__menu a {
		transition: none;
	}

	.nm-header.nm-header--sticky.nm-header--compact .nm-header__toggle {
		animation: none;
	}
}

/* Header 1 menu interaction. Scoped to .nm-header__menu so Colibri nav is untouched. */
.nm-header__menu a {
	background-image: none;
	background-position: 0 100%;
	background-repeat: no-repeat;
	background-size: 0 0.08em;
	opacity: 1;
	text-decoration: none;
	transition: opacity var(--nm-duration) ease, color var(--nm-duration) ease, background-color var(--nm-duration) ease, background-size var(--nm-duration) ease, transform var(--nm-duration) ease;
}

.nm-header[data-nm-nav-hover="fade"] .nm-header__menu a:hover,
.nm-header[data-nm-nav-hover="fade"] .nm-header__menu a:focus-visible {
	opacity: 0.88;
}

.nm-header[data-nm-nav-hover="underline"] .nm-header__menu a,
.nm-header[data-nm-nav-hover="underline-grow"] .nm-header__menu a {
	background-image: linear-gradient(currentColor, currentColor);
}

.nm-header[data-nm-nav-hover="underline"] .nm-header__menu a:hover,
.nm-header[data-nm-nav-hover="underline"] .nm-header__menu a:focus-visible,
.nm-header[data-nm-nav-hover="underline-grow"] .nm-header__menu a:hover,
.nm-header[data-nm-nav-hover="underline-grow"] .nm-header__menu a:focus-visible {
	background-size: 100% 0.08em;
}

.nm-header[data-nm-nav-hover="color"] .nm-header__menu a:hover,
.nm-header[data-nm-nav-hover="color"] .nm-header__menu a:focus-visible {
	color: var(--nm-nav-hover-color, var(--nm-color-accent));
}

.nm-header[data-nm-nav-hover="lift"] .nm-header__menu a:hover,
.nm-header[data-nm-nav-hover="lift"] .nm-header__menu a:focus-visible {
	transform: translateY(-1px);
}

.nm-header[data-nm-nav-hover="highlight"] .nm-header__menu a {
	border-radius: var(--nm-radius);
}

.nm-header[data-nm-nav-hover="highlight"] .nm-header__menu a:hover,
.nm-header[data-nm-nav-hover="highlight"] .nm-header__menu a:focus-visible {
	background-color: var(--nm-nav-hover-bg-color, color-mix(in srgb, currentColor 12%, transparent));
}

.nm-header[data-nm-nav-current="underline"] .nm-header__menu .current-menu-item > a,
.nm-header[data-nm-nav-current="underline"] .nm-header__menu .current_page_item > a {
	background-image: linear-gradient(currentColor, currentColor);
	background-size: 100% 0.08em;
}

.nm-header[data-nm-nav-current="color"] .nm-header__menu .current-menu-item > a,
.nm-header[data-nm-nav-current="color"] .nm-header__menu .current_page_item > a {
	color: var(--nm-nav-current-color, var(--nm-color-accent));
}

.nm-header[data-nm-nav-current="weight"] .nm-header__menu .current-menu-item > a,
.nm-header[data-nm-nav-current="weight"] .nm-header__menu .current_page_item > a {
	font-weight: 800;
}

.nm-header[data-nm-nav-current="background"] .nm-header__menu .current-menu-item > a,
.nm-header[data-nm-nav-current="background"] .nm-header__menu .current_page_item > a {
	background-color: var(--nm-nav-current-bg-color, color-mix(in srgb, currentColor 12%, transparent));
	border-radius: var(--nm-radius);
}

.nm-header__menu--drawer {
	--nm-nav-gap: 0;
}

@media not all and (min-width: 56.25em) {
	.nm-header__actions:not(.nm-header__actions--drawer),
	body.nadmedia-customizer-preview .nm-header__actions:not(.nm-header__actions--drawer) {
		display: none;
	}
}
