/**
 * AdepaTrade — global header, primary navigation, Solutions panel, mobile overlay.
 *
 * W1B-R1 (0.2.0): larger corporate header (100px → 68px compact), logo-ready identity slot,
 * 15/16px nav, hairline divider before the CTA, wide two-column Solutions panel, mobile
 * Solutions accordion (core submenu toggle, collapsed by default).
 *
 * Breakpoints: desktop nav ≥ 1280px (0.2.0; was 1200px) (core's 600px switch is overridden). Measured in 0.2.0
 * (build/qa/navfit.js, W1B-R1-NOTES §1): with the larger 15–16px nav the row no longer fits at
 * 1200px (≈ 100px short), so the desktop breakpoint moved to 1280px (15px / 18px gaps, 22px
 * wordmark) and 16px / 28px gaps from 1440px.
 * No backdrop-filter/transform on the sticky header: they would trap the fixed overlay.
 * 0.4.4 (A7): desktop tiers additionally need the header content box ≥ 72rem / 81.5rem (rem-aware, so
 * 125–150% root text falls back to the Menu layout instead of overflowing). See the A7 block below.
 */

/* =========================================================
 * Sticky header shell
 * ========================================================= */
.site-header {
	--adepa-header-h: var(--wp--custom--header--height);
	--adepa-logo-h: var(--wp--custom--logo--height);
	--adepa-logo-w: var(--wp--custom--logo--slot-width);
	--adepa-wordmark-size: 1.5rem;
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 50;
}
.site-header.is-scrolled {
	--adepa-header-h: var(--wp--custom--header--height-compact);
	--adepa-logo-h: var(--wp--custom--logo--height-compact);
	--adepa-logo-w: var(--wp--custom--logo--slot-width-compact);
	--adepa-wordmark-size: 1.25rem;
}
/* 1280–1439px desktop tier: slightly smaller identity so brand · 7 items · CTA keep ≥ 20px slack. */
@media (min-width: 1280px) and (max-width: 1439.98px) {
	.site-header:not(.is-scrolled) {
		--adepa-logo-h: 44px;
		--adepa-logo-w: 168px;
		--adepa-wordmark-size: 1.375rem;
	}
}
@media (max-width: 600px) {
	.admin-bar .site-header { top: 0; }
}
/* Phones / tablets: a calmer bar (the overlay carries the navigation). */
@media (max-width: 1279.98px) {
	.site-header {
		--adepa-header-h: 76px;
		--adepa-logo-h: 40px;
		--adepa-logo-w: 152px;
		--adepa-wordmark-size: 1.25rem;
	}
	.site-header.is-scrolled {
		--adepa-header-h: var(--wp--custom--header--height-compact);
		--adepa-logo-h: 34px;
		--adepa-logo-w: 129px;
		--adepa-wordmark-size: 1.125rem;
	}
}
@media (max-width: 479.98px) {
	.site-header, .site-header.is-scrolled {
		--adepa-header-h: 64px;
		--adepa-logo-h: 32px;
		--adepa-logo-w: 122px;
		--adepa-wordmark-size: 1.0625rem;
	}
}

.adepa-header {
	container: adepa-header / inline-size; /* 0.4.4 A7: rem-aware tiers (a size container does not trap the fixed overlay — verified) */
	background-color: var(--wp--preset--color--white);
	border-bottom: 1px solid var(--wp--preset--color--grey-200);
	transition: border-color var(--wp--custom--motion--base) linear;
}
.adepa-header__inner {
	max-width: min(82.5rem, 100%) !important; /* 0.4.4 A7: = 1320px wide size at 100%; grows with scaled text */
	min-height: var(--adepa-header-h);
	gap: var(--wp--preset--spacing--40);
	transition: min-height var(--wp--custom--motion--base) var(--adepa-ease);
}
.site-header.is-scrolled .adepa-header { border-bottom-color: var(--wp--preset--color--grey-300); }

.adepa-scroll-sentinel {
	position: absolute;
	top: 0;
	left: 0;
	width: 1px;
	height: 24px;
	pointer-events: none;
	visibility: hidden;
}

/* =========================================================
 * Identity: logo slot (Site Logo / theme logo file / Site Title wordmark) + descriptor
 * The slot has a fixed height and minimum width, so replacing the wordmark with the official
 * logo (landscape ≈ 3.8:1) does not move the navigation. W1B-R1-NOTES §2.
 * ========================================================= */
.adepa-header__brand { gap: 1.25rem !important; flex-shrink: 0; align-items: center !important; }
.adepa-logo-slot {
	gap: 0 !important;
	align-items: center !important;
	min-width: var(--adepa-logo-w);
	height: var(--adepa-logo-h);
	transition: height var(--wp--custom--motion--base) var(--adepa-ease), min-width var(--wp--custom--motion--base) var(--adepa-ease);
}
.adepa-logo-slot .wp-block-site-logo { line-height: 0; }
.adepa-logo-slot .wp-block-site-logo a { display: inline-flex; align-items: center; min-height: var(--wp--custom--touch-target); }
.adepa-logo-slot .wp-block-site-logo img {
	display: block;
	width: auto !important;
	height: var(--adepa-logo-h) !important;
	max-width: calc(var(--adepa-logo-h) * 4.6);
	object-fit: contain;
	transition: height var(--wp--custom--motion--base) var(--adepa-ease);
}
/* Logo present (Media Library or theme file) → the text wordmark steps aside. */
.adepa-logo-slot:has(.wp-block-site-logo img) .adepa-wordmark { display: none; }
body:not(.editor-styles-wrapper) .adepa-header__brand .wp-block-site-logo + .wp-block-site-title { display: none; } /* no-:has() fallback (front end: an empty Site Logo renders nothing) */
/* Editor: the empty Site Logo placeholder stays a compact, clickable tile beside the wordmark. */
.editor-styles-wrapper .adepa-logo-slot { gap: 0.75rem !important; }
.editor-styles-wrapper .adepa-logo-slot .wp-block-site-logo:not(:has(img)) { flex: 0 0 auto; width: var(--adepa-logo-h) !important; height: var(--adepa-logo-h); overflow: hidden; }
.editor-styles-wrapper .adepa-logo-slot .wp-block-site-logo:not(:has(img)) .components-placeholder { min-width: 0 !important; min-height: 0 !important; width: 100% !important; height: 100% !important; padding: 0 !important; }

.adepa-wordmark {
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	line-height: 1;
	margin: 0;
}
.adepa-wordmark a {
	display: inline-flex;
	align-items: center;
	min-height: var(--wp--custom--touch-target);
	text-decoration: none;
}
.adepa-header .adepa-header__wordmark {
	font-size: var(--adepa-wordmark-size);
	letter-spacing: 0.05em;
	transition: font-size var(--wp--custom--motion--base) var(--adepa-ease);
}

/* Descriptor: two quiet lines beside the identity, behind a hairline. Measured in 0.2.0: identity +
   descriptor (≈ 410px) + 16px nav + CTA need ≈ 1,540px, but the header row is capped at the 1,320px
   wide size — so it stays hidden in the bar (it remains in the footer identity and page heroes).
   Enabled only on very wide rows via .adepa-header--descriptor (not used by default). */
.adepa-header__descriptor {
	display: none;
	margin: 0;
	max-width: 15.5em;
	padding-left: 1.25rem;
	border-left: 1px solid var(--wp--preset--color--grey-200);
	font-size: 0.75rem;
	font-weight: 500;
	line-height: 1.45;
	letter-spacing: 0.02em;
	color: var(--wp--preset--color--grey-500);
	transition: opacity var(--wp--custom--motion--base) linear;
}
@media (min-width: 1680px) {
	.adepa-header--descriptor .adepa-header__descriptor { display: block; }
	.site-header.is-scrolled .adepa-header__descriptor { opacity: 0; visibility: hidden; }
}

/* =========================================================
 * CTA (+ hairline divider from the navigation on desktop)
 * ========================================================= */
.adepa-header__cta { flex-shrink: 0; gap: 0; position: relative; }
.adepa-header__cta .wp-block-button__link {
	min-height: 48px;
	padding: 0.75rem 1.375rem;
	white-space: nowrap;
	transition: min-height var(--wp--custom--motion--base) var(--adepa-ease), background-color var(--wp--custom--motion--fast) linear, border-color var(--wp--custom--motion--fast) linear;
}
.site-header.is-scrolled .adepa-header__cta .wp-block-button__link { min-height: var(--wp--custom--touch-target); }
@media (min-width: 1280px) {
	@container adepa-header (min-width: 72rem) {
		.adepa-header__inner { gap: 1.25rem; }
		.adepa-header__cta { padding-left: 1.25rem; }
		.adepa-header__cta .wp-block-button__link { padding-inline: 1.25rem; font-size: 0.875rem; }
		.adepa-header__cta::before {
			content: "";
			position: absolute;
			left: 0;
			top: 50%;
			width: 1px;
			height: 2rem;
			margin-top: -1rem;
			background: var(--wp--preset--color--grey-200);
		}
	}
}
@media (max-width: 1279.98px) {
	.adepa-header__cta .wp-block-button__link { min-height: var(--wp--custom--touch-target); padding: 0.6875rem 1.125rem; }
}
@media (max-width: 479.98px) {
	.adepa-header__cta .wp-block-button__link { padding-inline: 0.75rem; font-size: 0.75rem; letter-spacing: 0.04em; }
}
/* Very small phones (≤379px, e.g. 360px): brand · CTA · toggle must fit inside the 20px gutters. */
@media (max-width: 379.98px) {
	.adepa-header__inner { gap: var(--wp--preset--spacing--20); }
	.adepa-header__cta .wp-block-button__link { padding-inline: 0.5rem; letter-spacing: 0.02em; }
	.adepa-header__brand { gap: 0.5rem !important; }
	.site-header, .site-header.is-scrolled { --adepa-logo-w: 112px; --adepa-wordmark-size: 1rem; }
}

/* Flex order: brand · nav · CTA on desktop; brand · CTA · menu toggle below 1280px */
.adepa-primary-nav { order: 2; margin-left: auto; }
.adepa-header__cta { order: 3; }
@media (max-width: 1279.98px) {
	.adepa-header__inner > .adepa-header__cta { order: 2; margin-left: auto !important; }
	.adepa-primary-nav { order: 3; margin-left: 0; }
}

/* =========================================================
 * Toggle + breakpoint override (core switches at 600px)
 * ========================================================= */
@media (min-width: 600px) and (max-width: 1279.98px) {
	.adepa-primary-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.adepa-primary-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}

/* =========================================================
 * 0.4.4 A7 — scaled text (root font-size 125–150%)
 * Root cause: the bar's tiers switched on px media queries (1280 / 1440 / 480 / 380) while the
 * nav, CTA, gaps and paddings are rem — at 125–150% the rem content outgrew the px tier
 * (burger pushed off-screen on phones; nav + CTA wider than the viewport from 1280px).
 * Fix (no redesign): the desktop tier also requires the header's content box (viewport minus
 * the 20–64px gutters) to be ≥ 72rem (≥ 81.5rem for the 1440 tier); otherwise the bar uses the
 * existing tablet/phone layout (brand · CTA · Menu). At 100% root size 72rem = 1152px ≤ the
 * 1164px content box of a 1280px window even with a 15px classic scrollbar, and 81.5rem = 1304px
 * ≤ 1311px at 1440 — so the 100% layout is unchanged. Below: the tablet rules repeated for a
 * ≥1280px viewport whose header is narrower than 72rem.
 * ========================================================= */
@media (min-width: 1280px) {
	@container adepa-header (width < 72rem) {
		.adepa-header__inner { --adepa-header-h: 76px; --adepa-logo-h: 40px; --adepa-logo-w: 152px; --adepa-wordmark-size: 1.25rem; }
		.site-header.is-scrolled .adepa-header__inner { --adepa-header-h: var(--wp--custom--header--height-compact); --adepa-logo-h: 34px; --adepa-logo-w: 129px; --adepa-wordmark-size: 1.125rem; }
		.adepa-header__cta .wp-block-button__link { min-height: var(--wp--custom--touch-target); padding: 0.6875rem 1.125rem; }
		.adepa-header__inner > .adepa-header__cta { order: 2; margin-left: auto !important; }
		.adepa-primary-nav { order: 3; margin-left: 0; }
		.adepa-primary-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
		.adepa-primary-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	}
	/* 1440+ viewport, desktop tier but narrower than 81.5rem → the 1280 tier's identity size. */
	@container adepa-header (72rem <= width < 81.5rem) {
		.site-header:not(.is-scrolled) .adepa-header__inner { --adepa-logo-h: 44px; --adepa-logo-w: 168px; --adepa-wordmark-size: 1.375rem; }
	}
}
/* Phones at scaled text: below 20rem of header content (never at 100% on ≥ 360px phones; also fixes 344px @100%; e.g.
   390px @125% = 17.5rem) the CTA label may break onto two lines rather than push the Menu
   button off-screen. */
@media (max-width: 1279.98px) {
	@container adepa-header (width < 20rem) {
		/* Room for whole words ("SEND / REQUIREMENT"): logo 28px tall (≈99px wide), 8px gaps. */
		.adepa-header__inner, .site-header.is-scrolled .adepa-header__inner { --adepa-logo-h: 28px; --adepa-logo-w: 99px; gap: 8px !important; } /* !important: beats core's generated flex-layout gap */
		.adepa-header__brand { gap: 0 !important; }
		.adepa-header__cta { flex-shrink: 1; min-width: 0; }
		.adepa-header__cta .wp-block-button__link { white-space: normal; word-break: normal; overflow-wrap: break-word; line-height: 1.15; text-align: center; padding-block: 0.375rem; }
		.adepa-header__inner > .adepa-primary-nav { flex-shrink: 0; }
	}
	/* Extreme narrow (header content < 256px, i.e. ≤ ~295px windows such as 360–430px at 125–150% page
	   zoom): logo + "REQUIREMENT" + Menu cannot share the bar, so the bar CTA steps aside instead of
	   overlapping the Menu button. "Send your requirement" remains in the Menu overlay. */
	@container adepa-header (width < 256px) {
		.adepa-header__inner > .adepa-header__cta { display: none; }
		.adepa-header__inner > .adepa-primary-nav { margin-left: auto; }
	}
}
.adepa-primary-nav .wp-block-navigation__responsive-container-open {
	align-items: center;
	justify-content: center;
	width: var(--wp--custom--touch-target);
	height: var(--wp--custom--touch-target);
	border: 1px solid var(--wp--preset--color--grey-300) !important;
	border-radius: var(--wp--custom--radius--sm);
	color: var(--wp--preset--color--ink);
}
.adepa-primary-nav .wp-block-navigation__responsive-container-open:hover { border-color: var(--wp--preset--color--ink) !important; }

/* =========================================================
 * Desktop navigation (≥1280px)
 * Items stretch to the full bar height: the red indicator sits on the header's bottom edge and
 * the Solutions panel opens flush below it (no hover gap).
 * ========================================================= */
@media (min-width: 1280px) {
	@container adepa-header (min-width: 72rem) {
		.adepa-primary-nav {
			align-self: stretch;
			font-size: 0.9375rem;
			font-weight: 500;
			letter-spacing: 0.005em;
		}
		.adepa-primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open),
		.adepa-primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-close,
		.adepa-primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-dialog,
		.adepa-primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-content,
		.adepa-primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container {
			height: 100%;
			align-items: stretch !important;
		}
		.adepa-primary-nav .wp-block-navigation__container { gap: 1.125rem; }
		.adepa-primary-nav .wp-block-navigation__container > .wp-block-navigation-item { align-items: stretch; }

		.adepa-primary-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
			position: relative;
			display: inline-flex;
			align-items: center;
			min-height: var(--wp--custom--touch-target);
			padding-block: 0;
			color: var(--wp--preset--color--ink);
			white-space: nowrap;
		}
		.adepa-primary-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
			content: "";
			position: absolute;
			left: 0;
			right: 0;
			bottom: -1px;
			height: 2px;
			background: var(--wp--preset--color--brand-red);
			transform: scaleX(0);
			transform-origin: left center;
			transition: transform var(--wp--custom--motion--base) var(--adepa-ease);
		}
		.adepa-primary-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:is(:hover, :focus-visible)::after,
		.adepa-primary-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[aria-current]::after,
		.adepa-primary-nav .wp-block-navigation__container > .has-child:is(:hover, :focus-within) > .wp-block-navigation-item__content::after,
		.adepa-primary-nav .wp-block-navigation__container > .has-child:has(> .wp-block-navigation-submenu__toggle[aria-expanded="true"]) > .wp-block-navigation-item__content::after {
			transform: scaleX(1);
		}
		.adepa-primary-nav .has-child.adepa-submenu-dismissed:not(:focus-within) > .wp-block-navigation-item__content::after { transform: scaleX(0); }
		.adepa-primary-nav .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--ink); }
		.adepa-primary-nav .wp-block-navigation-item__content:focus-visible { outline-offset: 2px; }

		/* Chevron toggle: usable hit area without shifting the label */
		.adepa-primary-nav .wp-block-navigation__submenu-icon.wp-block-navigation-submenu__toggle {
			align-self: center;
			width: 24px;
			height: var(--wp--custom--touch-target);
			margin-left: 0.125rem;
			padding: 0;
		}
		.adepa-primary-nav .wp-block-navigation__submenu-icon svg { width: 10px; height: 10px; margin: 0 auto; transition: transform var(--wp--custom--motion--base) var(--adepa-ease); }
		.adepa-primary-nav .has-child.open-on-hover-click:not(.adepa-submenu-dismissed):hover .wp-block-navigation__submenu-icon svg,
		.adepa-primary-nav .has-child .wp-block-navigation-submenu__toggle[aria-expanded="true"] svg { transform: rotate(180deg); }

		/* 0.4.31 (CP-01D R1 / D-07, D-08): "Solutions" opens on click (core submenuVisibility "click", parts/header.html),
		   so the parent item is core's toggle <button> followed by a decorative chevron <span>; the overview stays
		   reachable through "View all solutions" in the panel. The button keeps the bar's link look, and its right
		   padding runs under the chevron so a press on the chevron still reaches the toggle. */
		.adepa-primary-nav .wp-block-navigation__container > .has-child.open-on-click > button.wp-block-navigation-submenu__toggle.wp-block-navigation-item__content {
			margin: 0;
			padding: 0 1.125rem 0 0;
			background: transparent;
			border: 0;
			border-radius: 0;
			font: inherit;
			letter-spacing: inherit;
			text-align: left;
			cursor: pointer;
		}
		.adepa-primary-nav .wp-block-navigation__container > .has-child.open-on-click > button.wp-block-navigation-submenu__toggle.wp-block-navigation-item__content::after { right: 1.125rem; }
		.adepa-primary-nav .has-child.open-on-click > .wp-block-navigation__submenu-icon {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			align-self: center;
			width: 1.125rem;
			height: var(--wp--custom--touch-target);
			margin-left: -1.125rem;
			pointer-events: none;
		}
		.adepa-primary-nav .has-child.open-on-click > .wp-block-navigation-submenu__toggle[aria-expanded="true"] + .wp-block-navigation__submenu-icon svg { transform: rotate(180deg); }

		/* The Description of "Solutions" is shown as the panel heading (ul::before), not in the bar. */
		.adepa-primary-nav .wp-block-navigation__container > .has-child > .wp-block-navigation-item__content .wp-block-navigation-item__description { display: none; }
	}
}
@media (min-width: 1440px) {
	@container adepa-header (min-width: 81.5rem) {
		.adepa-primary-nav { font-size: 1rem; }
		.adepa-primary-nav .wp-block-navigation__container { gap: 1.75rem; }
		.adepa-header__inner { gap: 1.5rem; }
		.adepa-header__cta { padding-left: 1.75rem; }
		.adepa-header__cta .wp-block-button__link { padding-inline: 1.375rem; }
	}
}

/* =========================================================
 * Solutions panel (desktop) — 680px, heading + two numbered columns (01–03 | 04–06) + "View all"
 * The heading is the Solutions item's Description (data-adepa-heading, set in inc/navigation-source.php).
 * ========================================================= */
@media (min-width: 1280px) {
	@container adepa-header (min-width: 72rem) {
		.adepa-primary-nav .has-child > .wp-block-navigation__submenu-container.adepa-panel,
		.adepa-primary-nav .has-child > .wp-block-navigation__submenu-container {
			/* Core right-aligns submenus of right-justified navs (left:auto; right:0); anchor under "Solutions". */
			left: -2rem !important;
			right: auto !important;
			top: 100% !important;
			width: min(42.5rem, calc(100vw - 2 * var(--wp--custom--layout--gutter))) !important;
			min-width: 0 !important;
			padding: 0 2rem 0.5rem;
			background: var(--wp--preset--color--white);
			color: var(--wp--preset--color--ink);
			border: 1px solid var(--wp--preset--color--grey-200);
			border-top: 2px solid var(--wp--preset--color--brand-red);
			border-radius: 0;
			box-shadow: var(--wp--preset--shadow--menu);
			counter-reset: adepa-solution;
			font-size: 0.9375rem;
		}
		/* Grid only while shown (core toggles visibility / size on the closed state). */
		.adepa-primary-nav .has-child > .wp-block-navigation__submenu-container.adepa-panel {
			display: grid !important;
			grid-template-columns: repeat(2, minmax(0, 1fr));
			grid-template-rows: auto repeat(3, auto) auto;
			grid-auto-flow: column;
			column-gap: 2.5rem;
			align-content: start;
		}
		.adepa-primary-nav .has-child > .adepa-panel::before {
			content: attr(data-adepa-heading);
			grid-row: 1;
			grid-column: 1 / -1;
			display: flex;
			align-items: center;
			gap: 0.625rem;
			padding: 1.625rem 0 1.125rem;
			font-size: var(--wp--preset--font-size--label);
			font-weight: 700;
			letter-spacing: var(--wp--custom--letter-spacing--label);
			line-height: 1.3;
			/* 0.3.1: no text-transform. The capitals come from inc/navigation-source.php
			   (adepatrade_uppercase_keep_units), so the unit stays "kV" (was rendered "36 KV"). */
			color: var(--wp--preset--color--brand-red);
		}
		.adepa-primary-nav .has-child > .wp-block-navigation__submenu-container > .wp-block-navigation-item:not(.adepa-panel__all) {
			counter-increment: adepa-solution;
			margin: 0;
			border-top: 1px solid var(--wp--preset--color--grey-200);
			min-width: 0;
			align-items: stretch !important;
		}
		.adepa-primary-nav .has-child > .wp-block-navigation__submenu-container > .wp-block-navigation-item:not(.adepa-panel__all) > .wp-block-navigation-item__content {
			display: grid !important;
			grid-template-columns: 2.5rem 1fr;
			align-items: baseline;
			align-content: center;
			width: 100%;
			padding: 0.875rem 0 !important;
			min-height: 3.375rem;
			font-size: 0.9375rem;
			font-weight: 500;
			line-height: 1.4;
			color: var(--wp--preset--color--ink);
			white-space: normal;
			transition: color var(--wp--custom--motion--fast) linear, transform var(--wp--custom--motion--base) var(--adepa-ease);
		}
		.adepa-primary-nav .has-child > .wp-block-navigation__submenu-container > .wp-block-navigation-item:not(.adepa-panel__all) > .wp-block-navigation-item__content::before {
			content: counter(adepa-solution, decimal-leading-zero);
			font-size: var(--wp--preset--font-size--label);
			font-weight: 700;
			letter-spacing: 0.06em;
			color: var(--wp--preset--color--brand-red);
			font-variant-numeric: tabular-nums;
		}
		.adepa-primary-nav .has-child > .wp-block-navigation__submenu-container > .wp-block-navigation-item:not(.adepa-panel__all) > .wp-block-navigation-item__content:is(:hover, :focus-visible) {
			color: var(--wp--preset--color--brand-red);
			transform: translateX(0.25rem);
		}
		.adepa-primary-nav .has-child > .wp-block-navigation__submenu-container > .wp-block-navigation-item:not(.adepa-panel__all) > .wp-block-navigation-item__content:focus-visible { outline-offset: -2px; }

		/* "View all solutions" — quiet text link closing the panel */
		.adepa-primary-nav .adepa-panel > .adepa-panel__all {
			grid-row: 5;
			grid-column: 1 / -1;
			margin-top: 0.25rem;
			border-top: 1px solid var(--wp--preset--color--grey-200);
		}
		.adepa-primary-nav .adepa-panel .adepa-panel__all-link {
			display: inline-flex !important;
			align-items: center;
			gap: 0.625rem;
			min-height: 3rem;
			padding: 0.75rem 0 !important;
			font-size: var(--wp--preset--font-size--label);
			font-weight: 700;
			letter-spacing: var(--wp--custom--letter-spacing--button);
			text-transform: uppercase;
			color: var(--wp--preset--color--ink);
		}
		.adepa-primary-nav .adepa-panel .adepa-panel__all-link::after {
			content: "";
			width: 18px;
			height: 12px;
			background-color: var(--wp--preset--color--brand-red);
			-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 12'%3E%3Cpath d='M0 5.25h15.1L10.9 1.06 11.96 0 18 6l-6.04 6-1.06-1.06 4.2-4.19H0z'/%3E%3C/svg%3E") center / contain no-repeat;
			mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 12'%3E%3Cpath d='M0 5.25h15.1L10.9 1.06 11.96 0 18 6l-6.04 6-1.06-1.06 4.2-4.19H0z'/%3E%3C/svg%3E") center / contain no-repeat;
			transition: transform var(--wp--custom--motion--base) var(--adepa-ease);
		}
		.adepa-primary-nav .adepa-panel .adepa-panel__all-link:is(:hover, :focus-visible) { color: var(--wp--preset--color--brand-red); }
		.adepa-primary-nav .adepa-panel .adepa-panel__all-link:is(:hover, :focus-visible)::after { transform: translateX(4px); }
	}
}
/* Escape / outside press (assets/js/navigation.js) dismisses a hovered panel until the pointer leaves;
   re-opening with the chevron (aria-expanded="true") always wins. */
.adepa-primary-nav .has-child.adepa-submenu-dismissed:not(:has(> .wp-block-navigation-submenu__toggle[aria-expanded="true"])) > .wp-block-navigation__submenu-container {
	visibility: hidden !important;
	opacity: 0 !important;
}
.adepa-primary-nav .wp-block-navigation-item__description { font-size: var(--wp--preset--font-size--label); }

/* =========================================================
 * Mobile overlay — custom template part (WP 7.0+: parts/navigation-overlay.html)
 * ========================================================= */
.adepa-primary-nav .wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--wp--preset--color--charcoal);
	color: var(--wp--preset--color--white);
}
.adepa-overlay {
	--adepa-overlay-gutter: var(--wp--custom--layout--gutter, clamp(20px, 4vw, 64px));
	--adepa-overlay-top: 0px;
	box-sizing: border-box;
	min-height: calc(100vh - var(--adepa-overlay-top));
	min-height: calc(100dvh - var(--adepa-overlay-top));
	display: flex;
	flex-direction: column;
	--adepa-focus-color: var(--wp--preset--color--white);
}
/* Site gutters. Doubled class: the overlay is nested inside the header's .has-global-padding group,
   and core's nested-padding reset (`.has-global-padding :where(...) { padding: 0 }`, same specificity)
   wins whenever global styles print after this file — as they do for logged-in users. */
.adepa-overlay.adepa-overlay {
	padding: 0 var(--adepa-overlay-gutter) calc(var(--wp--preset--spacing--60) + env(safe-area-inset-bottom, 0px));
}
/* Admin bar (logged-in): core offsets only its default overlay, not custom overlay parts.
   Start the overlay below the bar so the Close button is never covered; the overlay scrolls
   inside the remaining height. */
.admin-bar .adepa-primary-nav .wp-block-navigation__responsive-container.is-menu-open.disable-default-overlay {
	top: var(--wp-admin--admin-bar--height, 0px);
	height: auto;
	bottom: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
}
.admin-bar .adepa-overlay { --adepa-overlay-top: var(--wp-admin--admin-bar--height, 0px); }
/* Below 601px the admin bar is position:absolute and scrolls away; pin it while the overlay is open
   so the offset above always matches what is on screen. */
@media (max-width: 600px) {
	html.has-modal-open body.admin-bar #wpadminbar { position: fixed; }
}
.adepa-overlay > * { width: 100%; max-width: var(--wp--style--global--wide-size) !important; }
.adepa-overlay__bar {
	min-height: 76px;
	border-bottom: 1px solid var(--wp--preset--color--charcoal-2);
	margin-bottom: var(--wp--preset--spacing--40);
}
.adepa-overlay .adepa-wordmark a { color: var(--wp--preset--color--white); }
.adepa-overlay .adepa-overlay__wordmark { font-size: 1.25rem; letter-spacing: 0.05em; min-width: 129px; }
.adepa-overlay__close.wp-block-navigation-overlay-close {
	min-width: var(--wp--custom--touch-target);
	min-height: var(--wp--custom--touch-target);
	padding: 0 0.75rem;
	color: var(--wp--preset--color--white);
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: var(--wp--custom--radius--sm);
	font-size: var(--wp--preset--font-size--label);
	font-weight: 700;
	letter-spacing: var(--wp--custom--letter-spacing--label);
	text-transform: uppercase;
}
.adepa-overlay__close.wp-block-navigation-overlay-close:hover { border-color: var(--wp--preset--color--white); }

/* Overlay navigation list */
.adepa-overlay-nav { width: 100%; }
.adepa-overlay-nav .wp-block-navigation__container { width: 100%; gap: 0 !important; }
.adepa-overlay-nav .wp-block-navigation__container > .wp-block-navigation-item {
	width: 100%;
	border-bottom: 1px solid var(--wp--preset--color--charcoal-2);
	flex-wrap: wrap;
	align-items: flex-start !important;
}
.adepa-overlay-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	display: flex !important;
	flex-direction: column;
	align-items: flex-start;
	box-sizing: border-box;
	width: 100%;
	padding: 0.875rem 0 !important;
	min-height: 4.5rem;
	justify-content: center;
	font-size: var(--wp--preset--font-size--heading-3);
	font-weight: 700;
	letter-spacing: -0.015em;
	line-height: 1.2;
	color: var(--wp--preset--color--white);
}
.adepa-overlay-nav .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--white); text-decoration: underline; text-decoration-color: var(--wp--preset--color--brand-red-bright); text-underline-offset: 0.2em; }
.adepa-overlay-nav .wp-block-navigation-item__description {
	margin-top: 0.375rem;
	font-size: var(--wp--preset--font-size--label);
	font-weight: 700;
	letter-spacing: 0.02em;
	/* 0.3.0: no uppercase transform — the description contains the unit "kV" */
	color: var(--wp--preset--color--grey-300);
}

/* --- Solutions accordion: core submenu toggle (a real <button>, aria-expanded + aria-controls),
       collapsed by default, +/− indicator, full-row ≥ 56px target. --- */
.adepa-overlay-nav .wp-block-navigation__submenu-icon { display: none !important; }
.adepa-overlay-nav .has-child { gap: 0 !important; }
.adepa-overlay-nav .has-child > .wp-block-navigation-submenu__toggle.wp-block-navigation-item__content {
	position: relative;
	margin: 0;
	padding-right: 3.5rem !important;
	background: transparent;
	border: 0;
	border-radius: 0;
	font-family: inherit;
	text-align: left;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}
.adepa-overlay-nav .has-child > .wp-block-navigation-submenu__toggle:hover { text-decoration: none; }
.adepa-overlay-nav .has-child > .wp-block-navigation-submenu__toggle:hover .wp-block-navigation-item__label {
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--brand-red-bright);
	text-underline-offset: 0.2em;
}
.adepa-overlay-nav .has-child > .wp-block-navigation-submenu__toggle:focus-visible { outline-offset: -2px; }
/* the indicator box */
.adepa-overlay-nav .has-child > .wp-block-navigation-submenu__toggle::after {
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	width: 2.25rem;
	height: 2.25rem;
	margin-top: -1.125rem;
	box-sizing: border-box;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: var(--wp--custom--radius--sm);
	transition: border-color var(--wp--custom--motion--fast) linear, background-color var(--wp--custom--motion--fast) linear;
}
/* the + / − glyph */
.adepa-overlay-nav .has-child > .wp-block-navigation-submenu__toggle::before {
	content: "";
	position: absolute;
	right: 0.6875rem;
	top: 50%;
	width: 0.875rem;
	height: 0.875rem;
	margin-top: -0.4375rem;
	z-index: 1;
	background-color: var(--wp--preset--color--white);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M6.25 0h1.5v14h-1.5z M0 6.25h14v1.5H0z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M6.25 0h1.5v14h-1.5z M0 6.25h14v1.5H0z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.adepa-overlay-nav .has-child > .wp-block-navigation-submenu__toggle[aria-expanded="true"]::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M0 6.25h14v1.5H0z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M0 6.25h14v1.5H0z'/%3E%3C/svg%3E");
}
.adepa-overlay-nav .has-child > .wp-block-navigation-submenu__toggle[aria-expanded="true"]::after,
.adepa-overlay-nav .has-child > .wp-block-navigation-submenu__toggle:hover::after { border-color: var(--wp--preset--color--white); }
.adepa-overlay-nav .has-child > .wp-block-navigation-submenu__toggle[aria-expanded="true"]::after { background-color: var(--wp--preset--color--charcoal-2); }

/* Collapsed unless the toggle is expanded (also before hydration / without JS: the overview
   links remain reachable from the Solutions page). */
.adepa-overlay-nav .has-child > .wp-block-navigation__submenu-container { display: none !important; }
.adepa-overlay-nav .has-child > .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container {
	display: flex !important;
	flex-direction: column;
	position: static !important;
	visibility: visible !important;
	opacity: 1 !important;
	height: auto !important;
	min-width: 0 !important;
	overflow: visible !important;
	width: 100% !important;
	padding: 0 0 1rem !important;
	gap: 0 !important;
	background: transparent !important;
	color: inherit !important;
	border: 0 !important;
	box-shadow: none !important;
	counter-reset: adepa-solution;
}
.adepa-overlay-nav .has-child > .wp-block-navigation__submenu-container > .wp-block-navigation-item {
	counter-increment: adepa-solution;
	width: 100%;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.adepa-overlay-nav .has-child > .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	display: grid !important;
	grid-template-columns: 2.25rem 1fr;
	align-items: baseline;
	align-content: center;
	box-sizing: border-box;
	width: 100%;
	padding: 0.75rem 0 !important;
	min-height: 3.25rem;
	line-height: 1.45;
	font-size: var(--wp--preset--font-size--body);
	font-weight: 500;
	color: var(--wp--preset--color--grey-300);
}
.adepa-overlay-nav .has-child > .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--white); }
.adepa-overlay-nav .has-child > .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content::before {
	content: counter(adepa-solution, decimal-leading-zero);
	font-size: var(--wp--preset--font-size--label);
	font-weight: 700;
	/* grey-300 (10.75:1): brand-red-bright on charcoal is AA-large only (4.19:1) — too small here */
	color: var(--wp--preset--color--grey-300);
	font-variant-numeric: tabular-nums;
}
/* 0.4.31 (CP-01D R1 / D-05): "View all solutions" closes the mobile Solutions list (inc/navigation-source.php),
   as on desktop. Not numbered; the empty marker column keeps it aligned with the family labels. */
.adepa-overlay-nav .has-child > .wp-block-navigation__submenu-container > .wp-block-navigation-item.adepa-panel__all { counter-increment: none; }
.adepa-overlay-nav .has-child > .wp-block-navigation__submenu-container > .wp-block-navigation-item.adepa-panel__all > .wp-block-navigation-item__content {
	font-size: var(--wp--preset--font-size--label);
	font-weight: 700;
	letter-spacing: var(--wp--custom--letter-spacing--button);
	text-transform: uppercase;
	color: var(--wp--preset--color--white);
}
.adepa-overlay-nav .has-child > .wp-block-navigation__submenu-container > .wp-block-navigation-item.adepa-panel__all > .wp-block-navigation-item__content::before { content: ""; }
.adepa-overlay__footer {
	margin-top: auto;
	padding-top: var(--wp--preset--spacing--60);
	gap: var(--wp--preset--spacing--40) !important;
}
.adepa-overlay__cta { width: 100%; }
.adepa-overlay__contact { margin: 0; padding-bottom: var(--wp--preset--spacing--20); font-size: var(--wp--preset--font-size--small); line-height: 1.7; color: var(--wp--preset--color--grey-300); overflow-wrap: anywhere; }
.adepa-overlay__contact a { color: var(--wp--preset--color--white); }

/* Reversed logo (theme file, dark surfaces): fixed-height slot, wordmark fallback. */
.adepa-wordmark--reversed.has-logo a { min-height: var(--wp--custom--touch-target); }
.adepa-wordmark--reversed .adepa-logo-reversed { display: block; width: auto; height: var(--wp--custom--logo--height-overlay); }

/* =========================================================
 * Fallback: core default overlay (WP < 7.0 or overlay part removed)
 * ========================================================= */
.adepa-primary-nav .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content {
	font-size: var(--wp--preset--font-size--heading-4);
	font-weight: 700;
	padding-block: 0.5rem;
}
.adepa-primary-nav .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-size: var(--wp--preset--font-size--body);
	font-weight: 500;
	color: var(--wp--preset--color--grey-300);
}
.adepa-primary-nav .wp-block-navigation__responsive-container-close {
	min-width: var(--wp--custom--touch-target);
	min-height: var(--wp--custom--touch-target);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* Editor canvas: show the bar as it renders on the front end */
.editor-styles-wrapper .adepa-header__descriptor { white-space: normal; }
.editor-styles-wrapper .adepa-logo-slot { height: auto; min-height: var(--adepa-logo-h, 48px); }
