/* Pearl and navy navigation, using the responsive logo geometry from the theme. */
.site-header {
	--nav-ink: #0a293b;
	--nav-active: #006889;
	--nav-accent: #00a3cd;
	--nav-line: #c5d6dd;
	background: linear-gradient(110deg,#e3eef3,#f5fafd 35%,#fff 71%);
	box-shadow: inset 0 -1px var(--nav-line);
}
.site-header .brand { z-index: 1; }
.site-header .contact-bar { background: #091f2c; }
.site-header .contact-row { gap: 24px; }
.site-header .contact-row a { color: #e2edf1; font: 700 13px/25px var(--body); }
.site-header .contact-row a:hover { color: white; text-decoration: underline; }
.site-header .contact-row .pws-icon { color: #80d4e8; }
.site-header .contact-row a[href^="tel:"] { margin-left: auto; }
.site-header .contact-row .social-link { margin-left: 0; border: 1px solid #537081; background: transparent; }
#primary-menu { align-items: center; gap: clamp(16px,1.75vw,28px); }
#primary-menu a, .nav-disclosure {
	color: var(--nav-ink);
	font: 700 15px/1.35 var(--body);
	text-transform: none;
	letter-spacing: .01em;
}
.nav-disclosure {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 46px;
	padding: 8px 0;
	border: 0;
	background: none;
	cursor: pointer;
}
.nav-disclosure::after {
	content: "";
	display: inline-block;
	width: 7px;
	height: 7px;
	margin: -4px 2px 0 0;
	border: solid currentColor;
	border-width: 0 1.5px 1.5px 0;
	transform: rotate(45deg);
}
.nav-disclosure[aria-expanded="true"]::after { transform: rotate(225deg); margin-top: 3px; }
#primary-menu a:is(:hover,:focus-visible), .nav-disclosure:is(:hover,:focus-visible),
#primary-menu .current-menu-item > a, #primary-menu .current-menu-ancestor > .nav-disclosure { color: var(--nav-active); text-decoration: none; }
#primary-menu .pws-nav-phone { display: none; }
#primary-menu .pws-nav-estimate > a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	padding: 0 17px;
	min-height: 44px;
	border-radius: 5px;
	background: #0a354e;
	box-shadow: inset 0 -3px #0084a9;
	color: white;
}
#primary-menu .pws-nav-estimate > a::after { content: "↗"; font-size: 18px; }
#primary-menu .pws-nav-estimate > a:is(:hover,:focus-visible) { background: #104763; color: white; }
@media (min-width: 993px) {
	#primary-menu > li > a { min-height: 46px; display: inline-flex; align-items: center; white-space: nowrap; }
	#primary-menu > .current-menu-item:not(.pws-nav-estimate) > a::after {
		content: ""; position: absolute; left: 0; bottom: 4px; width: 24px; height: 3px; background: var(--nav-accent); border-radius: 2px;
	}
	#primary-menu .sub-menu {
		z-index: 2;
		padding: 10px;
		background: white;
		border: 1px solid var(--nav-line);
		border-top: 3px solid var(--nav-accent);
		border-radius: 7px;
		box-shadow: 0 14px 34px #041b2f38;
	}
	#primary-menu.disclosures-ready li:not(.menu-item-open) > .sub-menu { display: none; }
	#primary-menu li.menu-item-open > .sub-menu { display: block; }
	#primary-menu > li > .sub-menu:has(> .pws-nav-deck) { left: 50%; width: 435px; transform: translateX(-44%); padding: 12px; grid-template-columns: 150px minmax(0,1fr); column-gap: 10px; }
	#primary-menu > .menu-item-open > .sub-menu:has(> .pws-nav-deck) { display: grid; }
	#primary-menu .sub-menu > li > a { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 8px; font-size: 14px; border-bottom: 1px solid var(--nav-line); }
	#primary-menu .sub-menu > li:last-child > a { border: 0; }
	#primary-menu .sub-menu > li > a::after { content: "›"; font-size: 17px; color: var(--nav-active); }
	#primary-menu .sub-menu > li > a:is(:hover,:focus-visible) { background-color: #edf6f8; }
	#primary-menu .sub-menu > .pws-nav-deck { grid-column: 1; grid-row: 1 / span 4; }
	#primary-menu .sub-menu > .pws-nav-deck > a {
		display: flex; align-items: flex-end; height: 100%; min-height: 150px; padding: 13px; border: 0; border-radius: 4px;
		background: linear-gradient(0deg,#031722ed,transparent 90%), url("../images/menu-deck.webp") center / cover;
		color: white; font-size: 15px; line-height: 1.25;
	}
	#primary-menu .sub-menu > .pws-nav-deck > a::after { content: none; }
}
@media (min-width:993px) and (max-width:1199px) {
	#primary-menu { gap: 16px; }
	#primary-menu > li > a, #primary-menu .nav-disclosure { font-size: 14px; }
}
@media (max-width:992px) {
	.site-header .nav-toggle { display: inline-flex; gap: 8px; width: auto; min-height: 44px; height: 44px; padding: 0 12px; border: 1px solid var(--nav-line); border-radius: 5px; background: white; color: var(--nav-ink); font: 700 15px/1.35 var(--body); }
	.site-header .nav-toggle-icon,.site-header .nav-toggle-icon::before,.site-header .nav-toggle-icon::after { width: 17px; height: 2px; }
	.site-header .nav-toggle-icon::before { top: -5px; }
	.site-header .nav-toggle-icon::after { top: 5px; }
	.site-header .nav-toggle[aria-expanded="true"] .nav-toggle-icon::before,.site-header .nav-toggle[aria-expanded="true"] .nav-toggle-icon::after { top: 0; }
	#primary-menu { display: none; position: fixed; top: var(--menu-panel-offset); left: 50%; transform: translateX(-50%); z-index: 2; width: min(100%,var(--nav-panel-width,100%)); max-height: var(--menu-available-height); overflow-y: auto; overscroll-behavior: contain; padding: 10px 16px max(16px,env(safe-area-inset-bottom)); background: #fff; border: 1px solid var(--nav-line); border-top: 3px solid var(--nav-accent); border-radius: 0 0 8px 8px; box-shadow: 0 18px 36px #03162766; }
	.site-nav.is-open #primary-menu { display: block; }
	#primary-menu > li + li { border-top: 1px solid var(--nav-line); }
	#primary-menu > li > a, #primary-menu .nav-disclosure { display: flex; width: 100%; min-height: 44px; padding: 10px 0; align-items: center; justify-content: space-between; text-align: left; font-size: 16px; }
	#primary-menu .nav-disclosure-icon { position: absolute; top: 0; right: 0; width: 44px; justify-content: center; }
	#primary-menu .sub-menu { display: none; margin: 0 0 7px; padding: 3px 12px; background: #f5f9fa; border-left: 2px solid var(--nav-accent); }
	#primary-menu .menu-item-open > .sub-menu { display: block; }
	#primary-menu .sub-menu a { display: flex; align-items: center; min-height: 40px; padding: 8px 0; font-size: 14px; }
	#primary-menu .pws-nav-estimate > a { justify-content: center; margin-top: 10px; }
	#primary-menu .pws-nav-phone { display: block; border-top: 0; }
	#primary-menu .pws-nav-phone a { justify-content: center; gap: 8px; color: #496576; font-size: 14px; }
}
@media (min-width:576px) and (max-width:767px) { .site-header { --nav-panel-width: 540px; } }
@media (min-width:768px) and (max-width:991px) { .site-header { --nav-panel-width: 720px; } }
@media (width:992px) { .site-header { --nav-panel-width: 960px; } }
