/* ==========================================================================
   Header (always midnight, fixed, compact on scroll) + primary nav + mobile menu.
   ========================================================================== */
/*
 * The fixed header is taller at the top of the page than in its compact state: the strip it
 * leaves (body padding) is painted midnight, so no light band flashes while the header grows
 * back near the top. The canvas is dark too (rubber-band overscroll above / below the page).
 */
html { background-color: var(--c-midnight); }
body {
	padding-block-start: var(--header-h);
	background:
		linear-gradient(var(--c-midnight), var(--c-midnight)) top / 100% var(--header-h) no-repeat,
		var(--c-white);
}

.site-header {
	position: fixed;
	inset-block-start: 0;
	inset-inline: 0;
	z-index: 100;
	background: var(--c-midnight);
	border-block-end: 1px solid var(--line-dark);
}
.admin-bar .site-header { inset-block-start: var(--wp-admin--admin-bar--height, 0px); }
@media (max-width: 600px) {
	.admin-bar .site-header { inset-block-start: 0; }
}

.site-header__bar {
	display: flex;
	align-items: center;
	gap: var(--s-4);
	height: var(--header-h);
	transition: height var(--dur) var(--ease-out);
}
.site-header.is-compact .site-header__bar { height: var(--header-h-compact); }

/* Logo */
.site-header__brand {
	display: flex;
	align-items: center;
	flex: none;
	min-height: 44px;
	margin-inline-end: auto;
}
.logo { width: auto; }
.logo--full { display: none; height: 56px; transition: height var(--dur) var(--ease-out); }
.logo--compact { height: 40px; }
.site-header.is-compact .logo--full { height: 46px; }

/* Actions */
.site-header__actions {
	display: flex;
	align-items: center;
	gap: var(--s-3);
	flex: none;
}
.site-header__phone {
	display: none;
	align-items: center;
	gap: 0.5rem;
	min-height: 44px;
	color: var(--c-porcelain);
	font-size: var(--fs-small);
	font-weight: 500;
	font-variant-numeric: lining-nums tabular-nums;
	letter-spacing: 0.01em;
	text-decoration: none;
	white-space: nowrap;
}
.site-header__phone .icon { color: var(--c-gold); width: 1.125rem; height: 1.125rem; }
.site-header__phone:hover { color: var(--c-gold-light); }
.site-header__cta { display: none; min-height: 48px; padding-inline: 1.5rem; }

.site-header__burger {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-width: 44px;
	min-height: 44px;
	padding: 0 0.25rem;
	margin-inline-end: -0.25rem;
	background: none;
	border: 0;
	color: var(--c-porcelain);
	font-size: var(--fs-small);
	font-weight: 600;
}
.site-header__burger .icon { width: 1.5rem; height: 1.5rem; }
.site-header__burger-icon { display: inline-flex; }
.site-header__burger-icon--close,
.site-header__burger[aria-expanded="true"] .site-header__burger-icon--open { display: none; }
.site-header__burger[aria-expanded="true"] .site-header__burger-icon--close { display: inline-flex; }

/* --------------------------------------------------------------------------
   Desktop navigation (≥1024)
   -------------------------------------------------------------------------- */
.site-nav { display: none; }

@media (min-width: 768px) {
	.site-header__cta { display: inline-flex; }
}

@media (min-width: 1024px) {
	.logo--full { display: block; }
	.logo--compact { display: none; }
	.site-header__burger { display: none; }
	.site-nav { display: block; }
	.site-header__bar { gap: var(--s-5); }
}
@media (min-width: 1440px) {
	.site-header__phone { display: inline-flex; }
}

.site-nav .nav__list {
	display: flex;
	align-items: center;
	gap: clamp(1rem, 0.2rem + 1.6vw, 2.25rem);
}
.site-nav .nav__item {
	position: relative;
	display: flex;
	align-items: center;
}
.nav__link {
	position: relative;
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: var(--c-mist);
	font-size: var(--fs-small);
	font-weight: 500;
	letter-spacing: 0.01em;
	text-decoration: none;
	transition: color var(--dur) var(--ease-out);
}
.nav__link:hover,
.nav__item.is-open > .nav__link { color: var(--c-white); }

/* Active item: the brand's vertical gold line. */
.site-nav .nav__item.is-active > .nav__link { color: var(--c-white); padding-inline-start: 0.875rem; }
.site-nav .nav__item.is-active > .nav__link::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	inset-block-start: 50%;
	width: 1px;
	height: 1.125rem;
	transform: translateY(-50%);
	background: var(--c-gold);
}

.nav__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	min-height: 44px;
	margin-inline-start: 0.125rem;
	padding: 0;
	background: none;
	border: 0;
	color: var(--c-mist);
}
.nav__toggle .icon { width: 1rem; height: 1rem; transition: transform var(--dur) var(--ease-out); }
.nav__toggle:hover { color: var(--c-white); }
.nav__toggle[aria-expanded="true"] .icon { transform: rotate(180deg); }

/* Dropdown panel */
.site-nav .nav__submenu {
	position: absolute;
	inset-block-start: calc(100% + (var(--header-h) - 44px) / 2);
	inset-inline-start: -1.5rem;
	z-index: 10;
	display: none;
	min-width: 22rem;
	padding-block: 0.75rem;
	background: var(--c-midnight);
	border: 1px solid var(--line-dark);
	border-block-start: 1px solid var(--c-gold);
}
.site-header.is-compact .site-nav .nav__submenu { inset-block-start: calc(100% + (var(--header-h-compact) - 44px) / 2); }
.site-nav .nav__item.is-open > .nav__submenu { display: block; }
html:not(.js) .site-nav .nav__item:focus-within > .nav__submenu { display: block; }
@media (hover: hover) and (pointer: fine) {
	.site-nav .nav__item.has-children:hover > .nav__submenu { display: block; }
	/* Invisible bridge so the pointer can travel from the item to the panel. */
	.site-nav .nav__item.has-children::after {
		content: "";
		position: absolute;
		inset-inline: -1.5rem 0;
		inset-block-start: 100%;
		height: calc((var(--header-h) - 44px) / 2 + 2px);
	}
}

.nav__subitem { position: relative; }
.nav__sublink {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 44px;
	padding: 0.5rem 1.5rem;
	color: var(--c-porcelain);
	font-size: var(--fs-small);
	font-weight: 500;
	text-decoration: none;
	transition: background-color var(--dur) var(--ease-out), color var(--dur) var(--ease-out);
}
.nav__sublink:hover { background: var(--c-indigo); color: var(--c-gold-light); }
.nav__subitem.is-active > .nav__sublink { color: var(--c-gold-light); }
.nav__subitem.is-active > .nav__sublink::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	inset-block: 0.75rem;
	width: 1px;
	background: var(--c-gold);
}
.nav__sublink:focus-visible { outline-offset: -3px; }

/* --------------------------------------------------------------------------
   Mobile full-screen menu (<1024)
   -------------------------------------------------------------------------- */
.mobile-menu {
	position: fixed;
	inset-block-start: var(--menu-top, var(--header-h));
	inset-inline: 0;
	inset-block-end: 0;
	z-index: 99;
	overflow-y: auto;
	overscroll-behavior: contain;
	background: var(--c-midnight);
	border-block-start: 1px solid var(--line-dark);
}
.mobile-menu[hidden] { display: none; }
.mobile-menu__inner {
	display: flex;
	flex-direction: column;
	gap: var(--s-6);
	min-height: 100%;
	padding-block: var(--s-3) var(--s-6);
}
.nav__list--mobile .nav__item {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	border-block-end: 1px solid var(--line-dark);
}
.nav__list--mobile .nav__link {
	flex: 1;
	min-height: 64px;
	color: var(--c-white);
	font-family: var(--font-display);
	font-size: clamp(1.75rem, 1.4rem + 1.6vw, 2.25rem);
	font-weight: 500;
	letter-spacing: 0;
}
.nav__list--mobile .nav__item.is-active > .nav__link { color: var(--c-gold-light); }
.nav__list--mobile .nav__toggle { width: 48px; min-height: 48px; color: var(--c-porcelain); }
.nav__list--mobile .nav__toggle .icon { width: 1.25rem; height: 1.25rem; }
.nav__list--mobile .nav__submenu {
	display: none;
	flex-basis: 100%;
	padding-block: 0 var(--s-2);
	padding-inline-start: var(--s-3);
	border-inline-start: 1px solid var(--c-gold);
	margin-block-end: var(--s-2);
}
.nav__list--mobile .nav__item.is-open > .nav__submenu { display: block; }
html:not(.js) .nav__list--mobile .nav__submenu { display: block; }
.nav__list--mobile .nav__sublink { padding-inline: 0; color: var(--c-mist); font-size: 1rem; }
.nav__list--mobile .nav__sublink:hover { background: none; color: var(--c-white); }
.nav__list--mobile .nav__subitem.is-active > .nav__sublink { color: var(--c-gold-light); }
.nav__list--mobile .nav__subitem.is-active > .nav__sublink::before { display: none; }

.mobile-menu__footer {
	display: flex;
	flex-direction: column;
	gap: var(--s-3);
	margin-block-start: auto;
}
.mobile-menu__contacts { display: grid; gap: var(--s-1); }
.mobile-menu__contacts a {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	min-height: 44px;
	color: var(--c-porcelain);
	text-decoration: none;
	font-variant-numeric: lining-nums;
}
.mobile-menu__contacts .icon { color: var(--c-gold); }
.mobile-menu__cta { align-self: flex-start; }
@media (max-width: 479px) {
	.mobile-menu__cta { align-self: stretch; }
}

html.is-menu-open { overflow: hidden; }
@media (min-width: 1024px) {
	.mobile-menu { display: none !important; }
}
