/**
 * Desktop header band + sidebar stacking.
 *
 * The Elementor header (template 457) is two stacked rows: a full-width utility
 * strip, then a nav row that also holds the logo. html.nj-header-band is set
 * by site-a11y.js after search and the side-panel toggle move into the utility
 * strip. The logo stays in the DOM and is positioned across both rows.
 *
 * Layering (low to high), all in the root stacking context:
 *   page content          — default
 *   --nj-z-header         10040  site header (existing; above the hero)
 *   --nj-z-dropdown       10050  primary-nav submenus
 *   --nj-z-search         10120  open header search field
 *   --nj-z-sidebar-backdrop 10140  side-panel overlay
 *   --nj-z-sidebar        10150  side panel and its Close control
 * The WordPress admin bar stays above these (core z-index 99999).
 */

:root {
	--nj-z-header: 10040;
	--nj-z-dropdown: 10050;
	--nj-z-search: 10120;
	--nj-z-sidebar-backdrop: 10140;
	--nj-z-sidebar: 10150;
	--nj-header-logo-col: 220px;
	--nj-header-logo-max: 156px;
	--nj-header-util-h: 42px;
	--nj-header-min-h: 186px;
	--nj-header-nav-size: 16px;
	--nj-header-break: 1360px;
}

@media (min-width: 1360px) and (max-width: 1439.98px) {
	:root {
		--nj-header-logo-col: 204px;
		--nj-header-logo-max: 148px;
		--nj-header-min-h: 180px;
		--nj-header-nav-size: 15px;
	}
}

/* Compact bar from 1359px down, before the desktop row can collide. */
@media (max-width: 1359.98px) {
	.wgl-theme-header .elementor-element-bd72e65,
	.wgl-theme-header .elementor-element-0bc43c9 {
		display: none !important;
	}

	.wgl-theme-header .elementor-element-6e17d88.elementor-hidden-desktop {
		display: flex !important;
		align-items: center;
		min-height: 72px;
		background: #fff;
		box-sizing: border-box;
	}

	.wgl-theme-header .elementor-element-6e17d88 .e-con-inner {
		align-items: center;
		justify-content: flex-start;
		min-height: 72px;
		gap: 8px;
	}

	.wgl-theme-header .elementor-element-6e17d88 .hamburger-box,
	.wgl-theme-header .elementor-element-6e17d88 .mobile-hamburger-toggle,
	.wgl-theme-header .wgl-mobile-header .hamburger-box {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		min-width: 44px;
		height: 44px;
		min-height: 44px;
	}

	/* Information sidebar toggle stays on the desktop band only. */
	.wgl-theme-header .side_panel {
		display: none;
	}

	.wgl-theme-header .elementor-element-6e17d88 .elementor-element-f7fa623 {
		margin-left: 0;
	}

	.wgl-theme-header .elementor-element-6e17d88 .header_search.search_standard {
		position: relative;
		flex: 0 0 44px;
		width: 44px;
		height: 44px;
		margin: 0 0 0 auto;
	}
}

/* Desktop band: logo column spans the utility strip and the navigation. */
@media (min-width: 1360px) {
	html.nj-header-band .wgl-theme-header {
		background: #fff;
	}

	html.nj-header-band .wgl-theme-header .wgl-site-header .elementor-457 {
		position: relative;
		display: flex;
		flex-direction: column;
		box-sizing: border-box;
		min-height: var(--nj-header-min-h);
		padding-left: var(--nj-header-logo-col);
		background: #fff;
		overflow: visible;
	}

	html.nj-header-band .wgl-theme-header .elementor-element-0bc43c9,
	html.nj-header-band .wgl-theme-header .elementor-element-b36eb4b {
		position: static;
		z-index: auto;
		backdrop-filter: none;
		-webkit-backdrop-filter: none;
		background: #fff;
	}

	html.nj-header-band .wgl-theme-header .elementor-element-3e84dff {
		position: absolute;
		left: 0;
		top: 0;
		bottom: 0;
		width: var(--nj-header-logo-col);
		height: auto;
		margin: 0;
		display: flex;
		align-items: center;
		justify-content: center;
		z-index: 2;
		background: #fff;
		pointer-events: auto;
	}

	html.nj-header-band .wgl-theme-header .elementor-element-3e84dff .elementor-widget-container,
	html.nj-header-band .wgl-theme-header .elementor-element-3e84dff .wgl-logotype-container,
	html.nj-header-band .wgl-theme-header .elementor-element-3e84dff .wgl-logotype-container a {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		height: 100%;
		margin: 0;
	}

	html.nj-header-band .wgl-theme-header .elementor-element-3e84dff img {
		display: block;
		width: auto !important;
		height: auto !important;
		max-height: min(var(--njcms-logo-max-h, var(--nj-header-logo-max)), var(--nj-header-logo-max)) !important;
		max-width: min(
			var(--njcms-logo-max-w, calc(var(--nj-header-logo-col) - 28px)),
			calc(var(--nj-header-logo-col) - 28px)
		) !important;
		object-fit: contain;
		object-position: center;
	}

	html.nj-header-band .wgl-theme-header .elementor-element-bd72e65 {
		flex: 0 0 auto;
		display: flex;
		align-items: center;
		min-height: var(--nj-header-util-h);
		padding-top: 0;
		padding-bottom: 0;
		background: #242f71;
	}

	html.nj-header-band .wgl-theme-header .elementor-element-bd72e65 > .e-con-inner {
		align-items: center;
		min-height: var(--nj-header-util-h);
		width: 100%;
		padding-top: 0;
		padding-bottom: 0;
	}

	html.nj-header-band .wgl-theme-header .elementor-element-0bc43c9 {
		flex: 1 1 auto;
		display: flex;
		flex-direction: column;
		align-items: stretch;
		justify-content: center;
		min-height: 0;
		/* Elementor paints this row rgba(0,0,0,.15) !important. */
		background-color: #fff !important;
	}

	html.nj-header-band .wgl-theme-header .elementor-element-b36eb4b,
	html.nj-header-band .wgl-theme-header .elementor-element-b36eb4b > .e-con-inner {
		display: flex;
		align-items: center;
		width: 100%;
		height: 100%;
		min-height: 0;
		grid-template-columns: none;
	}

	html.nj-header-band .wgl-theme-header .elementor-element-05c8430,
	html.nj-header-band .wgl-theme-header .elementor-element-05c8430 .elementor-widget-container,
	html.nj-header-band .wgl-theme-header .elementor-element-05c8430 .primary-nav {
		flex: 1 1 auto;
		align-self: center;
		min-width: 0;
		width: auto;
		height: auto;
		min-height: 0;
	}

	html.nj-header-band .wgl-theme-header .elementor-element-15b9316 {
		display: none;
	}

	html.nj-header-band .wgl-theme-header .primary-nav,
	html.nj-header-band .wgl-theme-header .primary-nav > ul {
		width: 100%;
		height: auto;
		align-items: center;
	}

	html.nj-header-band .wgl-theme-header .primary-nav > ul {
		display: flex;
		flex-wrap: nowrap;
		justify-content: space-between;
		gap: 0.15rem 0.75rem;
		margin: 0;
		padding: 0 0.75rem 0 0.35rem;
		min-width: 0;
	}

	html.nj-header-band .wgl-theme-header .primary-nav > ul > li > a {
		display: inline-flex;
		align-items: center;
		height: auto;
		min-height: 44px;
		margin: 0;
		padding: 0.2rem 0.1rem;
		font-size: var(--nj-header-nav-size);
		line-height: 1.25;
		white-space: nowrap;
	}

	html.nj-header-band .wgl-theme-header .primary-nav > ul > li:nth-last-child(-n + 3) > .sub-menu {
		left: auto;
		right: 0;
	}

	html.nj-header-band .njcms-top-tools {
		display: flex;
		flex-direction: row;
		align-items: center;
		justify-content: flex-end;
		gap: 0.35rem;
		min-height: 44px;
		margin-left: auto;
	}

	html.nj-header-band .njcms-top-tools .side_panel {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		margin: 0;
		color: #fff;
		background: transparent;
		border-color: rgba(255, 255, 255, 0.55);
	}

	html.nj-header-band .njcms-top-tools .side_panel-toggle-inner span {
		background: currentColor;
	}

	html.nj-header-band .njcms-top-tools .side_panel:hover,
	html.nj-header-band .njcms-top-tools .side_panel:focus-visible {
		color: #ffc000;
	}

	html.nj-header-band .njcms-top-tools .header_search.search_standard {
		position: relative;
		flex: 0 0 44px;
		width: 44px;
		height: 44px;
		margin: 0;
	}

	/*
	 * Opening search must not change the logo's containing block.
	 * site-responsive.css sets position:relative on every .e-con that
	 * contains .primary-nav while search is open. The logo is absolute
	 * inside that row, so the row has to stay static and elementor-457
	 * remains the positioning parent.
	 */
	html.nj-header-band .wgl-theme-header:has(.header_search-open) .e-con.elementor-element-0bc43c9:has(.primary-nav),
	html.nj-header-band .wgl-theme-header:has(.header_search-open) .e-con.elementor-element-b36eb4b:has(.primary-nav),
	html.nj-header-band .wgl-theme-header:has(.header_search-open) .elementor-element-b36eb4b > .e-con-inner:has(.primary-nav) {
		position: static;
		z-index: auto;
	}

	html.nj-header-band .wgl-theme-header:has(.header_search-open) .elementor-element.elementor-element-3e84dff {
		position: absolute;
		left: 0;
		top: 0;
		bottom: 0;
		width: var(--nj-header-logo-col);
		height: auto;
	}

	/* Open search sits just under the utility strip and out of the flex row. */
	body html.nj-header-band .wgl-theme-header .header_search.search_standard.header_search-open .header_search-field,
	body html.nj-header-band .wgl-theme-header .header_search.search_standard_fw.header_search-open .header_search-field {
		position: fixed !important;
		top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--nj-header-util-h) + 6px) !important;
		right: max(0.75rem, env(safe-area-inset-right, 0px)) !important;
		left: auto !important;
		width: min(460px, calc(100vw - var(--nj-header-logo-col) - 1.5rem)) !important;
		z-index: var(--nj-z-search) !important;
		transition: none !important;
	}
}

/* Compact search field is an overlay. The icon host stays 44px. */
@media (max-width: 1359.98px) {
	body .wgl-theme-header .elementor-element-6e17d88 .header_search.search_standard.header_search-open .header_search-field {
		position: fixed !important;
		top: calc(var(--wp-admin--admin-bar--height, 0px) + 4.75rem) !important;
		right: 0.75rem !important;
		left: 0.75rem !important;
		width: auto !important;
		z-index: var(--nj-z-search) !important;
		transition: none !important;
	}
}

/* Sidebar above the full header. Ancestors are not a trapping stacking context. */
body .side-panel_overlay {
	z-index: var(--nj-z-sidebar-backdrop);
}

body #side-panel {
	z-index: var(--nj-z-sidebar);
}

body #side-panel .side-panel_close {
	min-width: 44px;
	min-height: 44px;
}

html.nj-side-panel-open {
	overflow: hidden;
	scrollbar-gutter: stable;
}

@media (prefers-reduced-motion: reduce) {
	body #side-panel,
	body .side-panel_overlay {
		transition: none;
	}
}

/*
 * Mobile drawer only. Desktop dropdowns live in the header menu, not here.
 * The theme paints open submenus with --verdox-submenu-mobile-background,
 * and a current-page fill was navy text on a navy bar.
 */
.wgl-theme-header .mobile_nav_wrapper .primary-nav ul.sub-menu,
.wgl-menu_outer .primary-nav ul.sub-menu {
	position: static;
	width: 100%;
	min-width: 0;
	max-width: 100%;
	margin: 0;
	padding: 0.15rem 0 0.35rem;
	background-color: transparent;
	color: #0d3164;
	border: 0;
	box-shadow: none;
}

.wgl-theme-header .mobile_nav_wrapper .primary-nav ul.sub-menu > li > a,
.wgl-menu_outer .primary-nav ul.sub-menu > li > a {
	display: flex;
	align-items: center;
	box-sizing: border-box;
	width: 100%;
	min-height: 44px;
	padding: 0.65rem 3rem 0.65rem 1.5rem;
	background-color: transparent;
	color: #0d3164;
	box-shadow: none;
}

.wgl-theme-header .mobile_nav_wrapper .primary-nav ul.sub-menu > li.current-menu-item > a,
.wgl-theme-header .mobile_nav_wrapper .primary-nav ul.sub-menu > li.current_page_item > a,
.wgl-theme-header .mobile_nav_wrapper .primary-nav li.current-menu-item > a,
.wgl-theme-header .mobile_nav_wrapper .primary-nav li.current_page_item > a,
.wgl-theme-header .mobile_nav_wrapper .primary-nav li.current-menu-item > .njcms-wgl-menu-trigger-wrap > a,
.wgl-theme-header .mobile_nav_wrapper .primary-nav li.current_page_item > .njcms-wgl-menu-trigger-wrap > a,
.wgl-menu_outer .primary-nav li.current-menu-item > a,
.wgl-menu_outer .primary-nav li.current_page_item > a,
.wgl-menu_outer .primary-nav li.current-menu-item > .njcms-wgl-menu-trigger-wrap > a,
.wgl-menu_outer .primary-nav li.current_page_item > .njcms-wgl-menu-trigger-wrap > a {
	background-color: rgba(1, 33, 105, 0.08);
	color: #012169;
	font-weight: 700;
	box-shadow: inset 3px 0 0 #c8a45d;
}

.wgl-theme-header .mobile_nav_wrapper .primary-nav li.current-menu-ancestor:not(.current-menu-item) > a,
.wgl-theme-header .mobile_nav_wrapper .primary-nav li.current-menu-parent:not(.current-menu-item) > a,
.wgl-theme-header .mobile_nav_wrapper .primary-nav li.current-menu-ancestor:not(.current-menu-item) > .njcms-wgl-menu-trigger-wrap > a,
.wgl-theme-header .mobile_nav_wrapper .primary-nav li.current-menu-parent:not(.current-menu-item) > .njcms-wgl-menu-trigger-wrap > a,
.wgl-menu_outer .primary-nav li.current-menu-ancestor:not(.current-menu-item) > a,
.wgl-menu_outer .primary-nav li.current-menu-parent:not(.current-menu-item) > a,
.wgl-menu_outer .primary-nav li.current-menu-ancestor:not(.current-menu-item) > .njcms-wgl-menu-trigger-wrap > a,
.wgl-menu_outer .primary-nav li.current-menu-parent:not(.current-menu-item) > .njcms-wgl-menu-trigger-wrap > a {
	background-color: transparent;
	color: #012169;
	font-weight: 600;
	box-shadow: inset 3px 0 0 rgba(200, 164, 93, 0.7);
}

.wgl-theme-header .mobile_nav_wrapper .primary-nav > ul > li.show_sub_menu:not(.current-menu-item) > a,
.wgl-theme-header .mobile_nav_wrapper .primary-nav > ul > li.is-active:not(.current-menu-item) > a,
.wgl-theme-header .mobile_nav_wrapper .primary-nav > ul > li.show_sub_menu:not(.current-menu-item) > .njcms-wgl-menu-trigger-wrap > a,
.wgl-menu_outer .primary-nav > ul > li.show_sub_menu:not(.current-menu-item) > a {
	background-color: rgba(1, 33, 105, 0.04);
	box-shadow: none;
}

.wgl-theme-header .mobile_nav_wrapper .primary-nav button.button_switcher,
.wgl-menu_outer .primary-nav button.button_switcher {
	color: #0d3164;
	background: transparent;
}

.wgl-theme-header .mobile_nav_wrapper .primary-nav a:hover,
.wgl-theme-header .mobile_nav_wrapper .primary-nav .sub-menu > li > a:hover,
.wgl-menu_outer .primary-nav a:hover {
	background-color: transparent;
	box-shadow: none;
	color: #0d3164;
}

.wgl-theme-header .mobile_nav_wrapper .primary-nav li.current-menu-item > a:hover,
.wgl-theme-header .mobile_nav_wrapper .primary-nav li.current_page_item > a:hover,
.wgl-theme-header .mobile_nav_wrapper .primary-nav li.current-menu-item > .njcms-wgl-menu-trigger-wrap > a:hover,
.wgl-menu_outer .primary-nav li.current-menu-item > a:hover,
.wgl-menu_outer .primary-nav li.current_page_item > a:hover {
	background-color: rgba(1, 33, 105, 0.08);
	color: #012169;
	box-shadow: inset 3px 0 0 #c8a45d;
}

@media (hover: hover) and (pointer: fine) {
	.wgl-theme-header .mobile_nav_wrapper .primary-nav > ul > li > a:hover,
	.wgl-theme-header .mobile_nav_wrapper .primary-nav .sub-menu > li > a:hover,
	.wgl-menu_outer .primary-nav > ul > li > a:hover,
	.wgl-menu_outer .primary-nav .sub-menu > li > a:hover {
		background-color: rgba(13, 49, 100, 0.07);
		box-shadow: inset 3px 0 0 #c8a45d;
		color: #012169;
	}
}

.wgl-theme-header .mobile_nav_wrapper .primary-nav a:focus-visible,
.wgl-theme-header .mobile_nav_wrapper .primary-nav button.button_switcher:focus-visible,
.wgl-menu_outer .primary-nav a:focus-visible,
.wgl-menu_outer .primary-nav button.button_switcher:focus-visible {
	outline: 2px solid #012169;
	outline-offset: 2px;
}
