/* Header */
.site-header {
	background: var(--navy-deep);
	color: #fff;
	position: sticky; top: 0; z-index: 50;
	border-bottom: 1px solid rgba(255,255,255,0.06);
}
/* IMPORTANT: only set vertical padding here. The container's horizontal padding
   (24px desktop / 15px mobile) MUST pass through. */
.site-header__row {
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	padding-top: 14px;
	padding-bottom: 14px;
}
.site-header__brand { display: flex; align-items: center; }
.site-header__brand img { height: 80px; width: auto; }

.site-header__nav { flex: 1; display: flex; justify-content: center; }
.site-header__menu {
	display: flex; gap: 28px; list-style: none; margin: 0; padding: 0;
}
.site-header__menu > li {
	position: relative;
}
.site-header__menu > li > a {
	font-size: 1rem;
	color: rgba(255,255,255,0.82);
	font-weight: 500;
	padding: 22px 2px;          /* tall hit area so dropdown doesn't snap shut between item and submenu */
	border-bottom: 2px solid transparent;
	transition: color .15s, border-color .15s;
	display: inline-block;
	white-space: nowrap;
}
.site-header__menu > li > a:hover,
.site-header__menu > li.current-menu-item > a,
.site-header__menu > li.current-menu-ancestor > a,
.site-header__menu > li.current-menu-parent > a {
	color: #fff; border-bottom-color: var(--teal);
}

/* Dropdown sub-menu */
.site-header__menu .sub-menu {
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translate(-50%, -8px);
	min-width: 220px;
	margin: 0; padding: 8px 0;
	list-style: none;
	background: var(--navy-deep);
	box-shadow: 0 12px 28px -8px rgba(0,0,0,0.4), 0 0 0 1px rgba(255,255,255,0.06) inset;
	opacity: 0;
	visibility: hidden;
	transition: opacity .18s ease, transform .22s cubic-bezier(.2,.8,.2,1), visibility 0s linear .22s;
	z-index: 60;
}
.site-header__menu > li:hover > .sub-menu,
.site-header__menu > li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translate(-50%, 0);
	transition: opacity .18s ease, transform .22s cubic-bezier(.2,.8,.2,1), visibility 0s linear 0s;
}
.site-header__menu .sub-menu li { list-style: none; }
.site-header__menu .sub-menu a {
	display: block;
	padding: 10px 22px;
	font-size: 14.5px;
	color: rgba(255,255,255,0.82);
	white-space: nowrap;
	transition: color .12s, background .12s;
}
.site-header__menu .sub-menu a:hover { color: #fff; background: rgba(255,255,255,0.05); }
.site-header__menu .sub-menu .current-menu-item a { color: var(--teal); }

/* Parent caret indicator */
.site-header__menu > li.menu-item-has-children > a::after {
	content: "";
	display: inline-block;
	width: 6px; height: 6px;
	margin-left: 6px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
	transition: transform .2s;
}
.site-header__menu > li.menu-item-has-children:hover > a::after,
.site-header__menu > li.menu-item-has-children:focus-within > a::after {
	transform: translateY(0) rotate(225deg);
}

.site-header__cta { flex-shrink: 0; }

/* ---------- Animated hamburger ---------- */
.site-header__menu-btn {
	display: none;
	background: transparent; border: 0; padding: 10px;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}
.site-header__menu-btn:focus-visible {
	outline: 2px solid var(--teal); outline-offset: 2px;
}
.site-header__menu-icon,
.site-header__menu-icon::before,
.site-header__menu-icon::after {
	display: block;
	width: 24px; height: 2px;
	background: #fff;
	transition: transform .25s cubic-bezier(.2,.8,.2,1), opacity .15s, background .15s;
}
.site-header__menu-icon {
	position: relative;
}
.site-header__menu-icon::before,
.site-header__menu-icon::after {
	content: ""; position: absolute; left: 0;
}
.site-header__menu-icon::before { top: -7px; }
.site-header__menu-icon::after  { top:  7px; }
.site-header__menu-btn[aria-expanded="true"] .site-header__menu-icon { background: transparent; }
.site-header__menu-btn[aria-expanded="true"] .site-header__menu-icon::before { transform: translateY(7px) rotate(45deg); }
.site-header__menu-btn[aria-expanded="true"] .site-header__menu-icon::after  { transform: translateY(-7px) rotate(-45deg); }

/* ---------- Mobile breakpoint ---------- */
@media (max-width: 900px) {
	.site-header__brand img { height: 56px; }
	.site-header__nav, .site-header__cta { display: none; }
	.site-header__menu-btn { display: inline-flex; }
}

/* ---------- Mobile dropdown panel ---------- */
.site-header__mobile {
	background: var(--navy);
	border-top: 1px solid rgba(255,255,255,0.06);
	overflow: hidden;
	max-height: 0;
	opacity: 0;
	transition: max-height .35s cubic-bezier(.2,.8,.2,1), opacity .2s ease;
}
.site-header__mobile.is-open {
	max-height: 600px;
	opacity: 1;
}
.site-header__mobile ul, .site-header__mobile-menu {
	list-style: none; margin: 0; padding: 8px 0;
}
.site-header__mobile a {
	display: block; color: rgba(255,255,255,0.9);
	padding: 14px 15px; font-size: 1rem; font-weight: 500;
	border-bottom: 1px solid rgba(255,255,255,0.06);
}
.site-header__mobile a:hover { background: rgba(255,255,255,0.04); }
.site-header__mobile .sub-menu {
	margin: 0; padding: 0; list-style: none;
	background: rgba(0,0,0,0.18);
}
.site-header__mobile .sub-menu a {
	padding-left: 32px;
	font-size: 14.5px;
	font-weight: 400;
}
.site-header__mobile-cta { color: var(--teal) !important; font-weight: 600 !important; }
