.ndw-site-header {
	width: 100%;
	border: 0 solid transparent;
	background: #0d1b2a;
}

.ndw-site-header__inner {
	display: flex;
	align-items: center;
	width: 100%;
	max-width: 1280px;
	min-height: 64px;
	margin-inline: auto;
	padding-inline: 24px;
	gap: 24px;
}

.ndw-site-header__brand {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	gap: 12px;
	color: inherit;
	text-decoration: none;
}

.ndw-site-header__logo {
	display: block;
	width: auto;
	height: 36px;
	object-fit: contain;
}

.ndw-site-header__brand-text {
	color: #fff;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.1;
}

.ndw-site-header__brand-accent {
	color: var(--e-global-color-accent, #00b4d8);
}

/* In mobile mode the bar holds only the brand and the menu toggle. A rigid brand
   pushed the toggle out of the widget whenever the header sat in a narrow column,
   so there the brand yields: the logo scales down and the name wraps, and the
   toggle keeps its size. Desktop keeps the rigid brand so the menu still absorbs
   the squeeze first. */
.ndw-site-header:where([data-ndw-mode="mobile"], :not([data-ndw-mode])) .ndw-site-header__brand {
	flex: 0 1 auto;
	min-width: 0;
}

.ndw-site-header:where([data-ndw-mode="mobile"], :not([data-ndw-mode])) .ndw-site-header__logo {
	min-width: 0;
	max-width: 100%;
}

.ndw-site-header:where([data-ndw-mode="mobile"], :not([data-ndw-mode])) .ndw-site-header__brand-text {
	min-width: 0;
	overflow-wrap: anywhere;
}

.ndw-site-header:where([data-ndw-mode="mobile"], :not([data-ndw-mode])) .ndw-site-header__mobile {
	flex: 0 0 auto;
}

.ndw-site-header__desktop {
	display: flex;
	flex: 1 1 auto;
	justify-content: center;
	min-width: 0;
}

.ndw-site-header__menu {
	display: flex;
	align-items: center;
	margin: 0;
	padding: 0;
	gap: 32px;
	list-style: none;
}

.ndw-site-header__menu li {
	position: relative;
	margin: 0;
}

.ndw-site-header--submenu-arrows .ndw-site-header__desktop .menu-item-has-children > a::after {
	width: 7px;
	height: 7px;
	margin-left: 8px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	content: "";
	rotate: 45deg;
	translate: 0 -2px;
}

.ndw-site-header__menu a,
.ndw-site-header__menu span {
	display: inline-flex;
	align-items: center;
	color: #fff;
	font-size: 14px;
	line-height: 1.3;
	text-decoration: none;
}

.ndw-site-header__menu a:focus-visible,
.ndw-site-header__brand:focus-visible,
.ndw-site-header__phone:focus-visible,
.ndw-site-header__cta:focus-visible,
.ndw-site-header__mobile-toggle:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 4px;
}

/* Menu item states, mirroring the native WordPress Menu widget affordances. */
.ndw-site-header__menu > li > a,
.ndw-site-header__menu > li > span {
	position: relative;
	border-radius: var(--ndw-header-item-radius, 0);
	transition:
		color 280ms ease,
		background-color 280ms ease;
}

.ndw-site-header__menu > li > a::after {
	position: absolute;
	right: var(--ndw-header-underline-inset, 0);
	bottom: var(--ndw-header-underline-offset, -4px);
	left: var(--ndw-header-underline-inset, 0);
	height: var(--ndw-header-underline-height, 2px);
	background: var(--ndw-header-underline-color, currentColor);
	content: "";
	opacity: 0;
	scale: 0 1;
	transform-origin: var(--ndw-header-underline-origin, left center);
	transition: scale 280ms ease, opacity 280ms ease;
}

.ndw-site-header--underline-hover .ndw-site-header__menu > li > a:hover::after,
.ndw-site-header--underline-hover .ndw-site-header__menu > li > a:focus-visible::after,
.ndw-site-header--underline-both .ndw-site-header__menu > li > a:hover::after,
.ndw-site-header--underline-both .ndw-site-header__menu > li > a:focus-visible::after,
.ndw-site-header--underline-both .ndw-site-header__menu > li.current-menu-item > a::after,
.ndw-site-header--underline-both .ndw-site-header__menu > li.current-menu-ancestor > a::after,
.ndw-site-header--underline-both .ndw-site-header__menu > li.current_page_item > a::after,
.ndw-site-header--underline-both .ndw-site-header__menu > li.ndw-is-current > a::after,
.ndw-site-header--underline-active .ndw-site-header__menu > li.current-menu-item > a::after,
.ndw-site-header--underline-active .ndw-site-header__menu > li.current-menu-ancestor > a::after,
.ndw-site-header--underline-active .ndw-site-header__menu > li.current_page_item > a::after,
.ndw-site-header--underline-active .ndw-site-header__menu > li.ndw-is-current > a::after {
	opacity: 1;
	scale: 1 1;
}

.ndw-site-header__menu .sub-menu {
	position: absolute;
	top: calc(100% + 12px);
	left: -16px;
	z-index: 10;
	display: grid;
	visibility: hidden;
	min-width: 210px;
	opacity: 0;
	pointer-events: none;
	gap: 10px;
	transition:
		opacity 160ms ease,
		visibility 0s linear var(--ndw-header-submenu-delay, 240ms);
	transition-delay: var(--ndw-header-submenu-delay, 240ms), var(--ndw-header-submenu-delay, 240ms);
	margin: 0;
	padding: 12px;
	border: 1px solid rgb(255 255 255 / 14%);
	border-radius: 8px;
	background: #102235;
	box-shadow: 0 14px 36px rgb(20 28 38 / 12%);
	list-style: none;
}

.ndw-site-header__menu .sub-menu a {
	display: block;
	transition:
		color 280ms ease,
		background-color 280ms ease;
}

.ndw-site-header__menu .sub-menu .sub-menu {
	top: -12px;
	left: calc(100% + 8px);
}

.ndw-site-header__menu li:hover > .sub-menu,
.ndw-site-header__menu li:focus-within > .sub-menu {
	visibility: visible;
	opacity: 1;
	pointer-events: auto;
	transition-delay: 0s, 0s;
}

/* Invisible bridge across the gap between the parent item and its panel, so the
   pointer can travel into the submenu without it closing on the way. */
.ndw-site-header__desktop .ndw-site-header__menu > li > .sub-menu::before {
	position: absolute;
	top: calc(-1 * var(--ndw-header-submenu-bridge, 14px));
	right: 0;
	left: 0;
	height: var(--ndw-header-submenu-bridge, 14px);
	content: "";
}

.ndw-site-header__desktop .ndw-site-header__menu .sub-menu .sub-menu::before {
	top: 0;
	right: auto;
	left: calc(-1 * var(--ndw-header-submenu-bridge, 14px));
	width: var(--ndw-header-submenu-bridge, 14px);
	height: 100%;
}

.ndw-site-header__desktop-actions {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	gap: 16px;
}

.ndw-site-header__phone {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: #fff;
	font-size: 14px;
	text-decoration: none;
}

.ndw-site-header__phone-icon {
	display: inline-flex;
}

/* An inline SVG is painted by `fill`, not `color`, so the phone and CTA icon
   colour controls need this to reach it. `fill` is inherited, so multicolour
   artwork that sets its own is left alone. */
.ndw-site-header__phone-icon svg,
.ndw-site-header__cta-icon svg {
	fill: currentColor;
}

/* An inline font-icon SVG carries no width or height of its own. As a flex item
   with nothing to size it, it collapsed to 0x0 and both icons were simply
   invisible — the phone icon until someone happened to move its size slider,
   and the CTA icon always, since it had no slider at all. Sizing in `em` makes
   each icon match the text it sits next to, and the size controls override it.
   See the same note in services-grid.css. */
.ndw-site-header__phone-icon i,
.ndw-site-header__phone-icon svg,
.ndw-site-header__cta-icon i,
.ndw-site-header__cta-icon svg {
	flex: 0 0 auto;
	width: 1em;
	height: 1em;
	font-size: 1em;
	line-height: 1;
}

.ndw-site-header__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 18px;
	gap: 8px;
	border-radius: 8px;
	background: var(--e-global-color-accent, #00b4d8);
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0;
	text-decoration: none;
	transition:
		color 280ms ease,
		background-color 280ms ease,
		transform 280ms ease;
}

.ndw-site-header__cta:hover {
	transform: translateY(-1px);
}

.ndw-site-header--cta-small .ndw-site-header__cta {
	padding: 9px 14px;
}

.ndw-site-header--cta-large .ndw-site-header__cta {
	padding: 15px 24px;
}

.ndw-site-header__cta-icon {
	display: inline-flex;
}

.ndw-site-header__mobile {
	display: none;
	margin-left: auto;
}

.ndw-site-header__mobile-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	padding: 0;
	border-radius: 6px;
	color: #fff;
	cursor: pointer;
	list-style: none;
}

.ndw-site-header__mobile-toggle::-webkit-details-marker {
	display: none;
}

.ndw-site-header__hamburger,
.ndw-site-header__hamburger::before,
.ndw-site-header__hamburger::after {
	display: block;
	width: 22px;
	height: 2px;
	background: currentColor;
	content: "";
}

.ndw-site-header__hamburger {
	position: relative;
}

.ndw-site-header__hamburger::before {
	position: absolute;
	top: -7px;
}

.ndw-site-header__hamburger::after {
	position: absolute;
	top: 7px;
}

.ndw-site-header__mobile[open] .ndw-site-header__hamburger {
	background: transparent;
}

.ndw-site-header__mobile[open] .ndw-site-header__hamburger::before {
	top: 0;
	rotate: 45deg;
}

.ndw-site-header__mobile[open] .ndw-site-header__hamburger::after {
	top: 0;
	rotate: -45deg;
}

.ndw-site-header__mobile-panel {
	position: absolute;
	top: 100%;
	right: 0;
	left: 0;
	z-index: 20;
	padding: 20px 24px 24px;
	border-top: 1px solid rgb(20 28 38 / 10%);
	background: #0d1b2a;
	box-shadow: 0 18px 30px rgb(20 28 38 / 10%);
}

.ndw-site-header__mobile-backdrop {
	display: none;
}

.ndw-site-header__mobile-panel .ndw-site-header__menu {
	display: grid;
	align-items: stretch;
	gap: 0;
}

.ndw-site-header__mobile-panel .ndw-site-header__menu a,
.ndw-site-header__mobile-panel .ndw-site-header__menu > li > span {
	display: flex;
	padding-block: 12px;
}

.ndw-site-header__mobile-panel .ndw-site-header__menu .sub-menu {
	position: static;
	display: grid;
	visibility: visible;
	margin-left: 16px;
	padding: 0;
	border: 0;
	opacity: 1;
	box-shadow: none;
	pointer-events: auto;
	gap: 0;
	transition: none;
	transition-delay: 0s;
}

.ndw-site-header--mobile-submenu-accordion .ndw-site-header__mobile-panel .menu-item-has-children > .sub-menu {
	display: none;
}

.ndw-site-header--mobile-submenu-accordion .ndw-site-header__mobile-panel .menu-item-has-children.is-open > .sub-menu {
	display: grid;
}

.ndw-site-header--mobile-submenu-accordion .ndw-site-header__mobile-panel .menu-item-has-children > a::after {
	width: 8px;
	height: 8px;
	margin-left: auto;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	content: "";
	rotate: 45deg;
	transition: rotate 280ms ease;
}

.ndw-site-header--mobile-submenu-accordion .ndw-site-header__mobile-panel .menu-item-has-children.is-open > a::after {
	rotate: 225deg;
}

.ndw-site-header__mobile-actions {
	display: grid;
	margin-top: 18px;
	gap: 12px;
}

.ndw-site-header__mobile-actions .ndw-site-header__cta {
	width: 100%;
}

/* Native details navigation remains usable without JavaScript. */
.ndw-site-header:where([data-ndw-mode="mobile"], :not([data-ndw-mode])) {
	position: relative;
}

:where(.ndw-site-header[data-ndw-mode="mobile"], .ndw-site-header:not([data-ndw-mode])) .ndw-site-header__desktop,
:where(.ndw-site-header[data-ndw-mode="mobile"], .ndw-site-header:not([data-ndw-mode])) .ndw-site-header__desktop-actions {
	display: none;
}

:where(.ndw-site-header[data-ndw-mode="mobile"], .ndw-site-header:not([data-ndw-mode])) .ndw-site-header__mobile {
	display: block;
}

.ndw-site-header--mobile-drawer:where([data-ndw-mode="mobile"], :not([data-ndw-mode])) .ndw-site-header__mobile {
	position: relative;
	z-index: 30;
}

.ndw-site-header--mobile-drawer:where([data-ndw-mode="mobile"], :not([data-ndw-mode])) .ndw-site-header__mobile-toggle {
	position: relative;
	z-index: 33;
}

.ndw-site-header--mobile-drawer:where([data-ndw-mode="mobile"], :not([data-ndw-mode])) .ndw-site-header__mobile-backdrop {
	position: fixed;
	inset: 0;
	z-index: 29;
	display: block;
	background: rgb(15 23 32 / 56%);
	cursor: pointer;
	opacity: 0;
	pointer-events: none;
	transition: opacity 280ms ease;
}

.ndw-site-header--mobile-drawer:where([data-ndw-mode="mobile"], :not([data-ndw-mode])) .ndw-site-header__mobile[open] .ndw-site-header__mobile-backdrop {
	opacity: 1;
	pointer-events: auto;
}

.ndw-site-header--mobile-drawer:where([data-ndw-mode="mobile"], :not([data-ndw-mode])) .ndw-site-header__mobile-panel {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: auto;
	z-index: 31;
	width: min(88vw, 420px);
	padding-top: 86px;
	overflow-y: auto;
	border-top: 0;
	border-left: 1px solid rgb(255 255 255 / 12%);
	box-shadow: -18px 0 42px rgb(20 28 38 / 16%);
}

.ndw-site-header--mobile-drawer:where([data-ndw-mode="mobile"], :not([data-ndw-mode])) .ndw-site-header__mobile-panel .ndw-site-header__menu {
	align-content: start;
}

.ndw-site-header--mobile-drawer:where([data-ndw-mode="mobile"], :not([data-ndw-mode])) .ndw-site-header__mobile-panel .ndw-site-header__menu > li {
	border-bottom: 1px solid rgb(255 255 255 / 12%);
}

.ndw-site-header--mobile-drawer:where([data-ndw-mode="mobile"], :not([data-ndw-mode])) .ndw-site-header__mobile-panel .ndw-site-header__menu > li > a,
.ndw-site-header--mobile-drawer:where([data-ndw-mode="mobile"], :not([data-ndw-mode])) .ndw-site-header__mobile-panel .ndw-site-header__menu > li > span {
	padding-block: 14px;
	font-size: 17px;
}

.ndw-site-header--mobile-drawer:where([data-ndw-mode="mobile"], :not([data-ndw-mode])) .ndw-site-header__mobile-actions {
	margin-top: 28px;
}

.ndw-site-header--classic:where([data-ndw-mode="mobile"], :not([data-ndw-mode])) {
background: #fff;
}

.ndw-site-header--classic:where([data-ndw-mode="mobile"], :not([data-ndw-mode])) .ndw-site-header__brand-text,
.ndw-site-header--classic:where([data-ndw-mode="mobile"], :not([data-ndw-mode])) .ndw-site-header__menu a,
.ndw-site-header--classic:where([data-ndw-mode="mobile"], :not([data-ndw-mode])) .ndw-site-header__menu span,
.ndw-site-header--classic:where([data-ndw-mode="mobile"], :not([data-ndw-mode])) .ndw-site-header__phone,
.ndw-site-header--classic:where([data-ndw-mode="mobile"], :not([data-ndw-mode])) .ndw-site-header__mobile-toggle {
color: #15191e;
}

.ndw-site-header--classic:where([data-ndw-mode="mobile"], :not([data-ndw-mode])) .ndw-site-header__brand-accent {
color: var(--e-global-color-accent, #1f7667);
}

.ndw-site-header--classic:where([data-ndw-mode="mobile"], :not([data-ndw-mode])) .ndw-site-header__mobile-panel {
background: #fff;
}

.ndw-site-header--classic:where([data-ndw-mode="mobile"], :not([data-ndw-mode])) .ndw-site-header__mobile-panel .ndw-site-header__menu a,
.ndw-site-header--classic:where([data-ndw-mode="mobile"], :not([data-ndw-mode])) .ndw-site-header__mobile-panel .ndw-site-header__menu span,
.ndw-site-header--classic:where([data-ndw-mode="mobile"], :not([data-ndw-mode])) .ndw-site-header__mobile-panel .ndw-site-header__phone {
color: #15191e;
}

@media (prefers-reduced-motion: reduce) {
	.ndw-site-header__hamburger::before,
	.ndw-site-header__hamburger::after,
	.ndw-site-header__mobile-backdrop {
		transition: none;
	}
}
