/* ==========================================================================
   HEADER (top bar + main nav)
   Markup lives in: header.php
   Brand: navy #03193C, orange #FE5C08
   ========================================================================== */

/* ---------------- Top bar ---------------- */
.site-header__top {
	background: var(--color-primary, #03193C);
	color: var(--color-white);
	font-size: 14px;
	border-bottom: 3px solid var(--color-accent, #FE5C08);
}

.site-header__top-inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding-top: 10px;
	padding-bottom: 10px;
	gap: 16px;
}

.site-header__address {
	color: rgba(255, 255, 255, 0.82);
	letter-spacing: 0.01em;
}

.site-header__top-right {
	display: flex;
	align-items: center;
	gap: 16px;
}

.site-header__phone {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: rgba(255, 255, 255, 0.82);
}

.site-header__phone svg {
	width: 16px;
	height: 16px;
	color: var(--color-accent, #FE5C08);
	flex-shrink: 0;
}

.site-header__phone a {
	color: var(--color-accent, #FE5C08);
	text-decoration: none;
	font-weight: var(--fw-semibold);
	letter-spacing: 0.02em;
}

.site-header__phone a:hover {
	color: #ffffff;
}

.site-header__socials { display: flex; gap: 8px; }

.site-header__socials a {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.18);
	color: var(--color-white);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.site-header__socials a:hover {
	background: var(--color-accent, #FE5C08);
	border-color: var(--color-accent, #FE5C08);
	color: #ffffff;
}

/* ---------------- Logo ---------------- */
.site-header__logo {
	display: flex;
	align-items: center;
	flex-shrink: 0;
	min-height: 40px;
	margin: 0;
	overflow: visible;
}

.site-header__logo a,
.custom-logo-link {
	display: inline-flex;
	align-items: center;
	line-height: 0;
	text-decoration: none;
	color: var(--color-primary, #03193C);
	font-family: var(--font-display);
	font-weight: var(--fw-semibold);
	margin: 0;
}

.custom-logo,
.site-header__logo img,
.site-header__logo .custom-logo {
	max-height: var(--logo-max-height, 80px);
	max-width: 420px;
	width: auto !important;
	height: auto !important;
	object-fit: contain;
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	margin: 0;
}

.site-header__logo .site-title {
	line-height: 1.2;
	font-size: 1.25rem;
	display: inline-block;
}

/* ---------------- Header shell ---------------- */
.site-header {
	width: 100%;
	position: relative;
	z-index: 1000;
	overflow: visible;
}

.site-header.is-sticky {
	position: sticky;
	top: 0;
	overflow: visible;
}

/* ---------------- Header main ---------------- */
.site-header__main {
	width: 100%;
	background: var(--color-white);
	box-shadow: 0 10px 28px rgba(3, 25, 60, 0.08);
	overflow: visible;
}

.site-header.is-sticky .site-header__main {
	box-shadow: 0 12px 30px rgba(3, 25, 60, 0.12);
}

/* Restrict header to the same .container width as Hero / sections / footer. */
.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 14px 0;
	gap: var(--space-lg);
}

/* DOM order is logo → CTA → toggle → nav (the toggle must sit next to the
   drawer it controls). On desktop `order` puts the nav back in the middle. */
.site-header__logo { order: 1; }
.site-header__nav { order: 2; }
.site-header__cta-wrap { order: 3; }
.mobile-menu-toggle { order: 4; }

.site-header__nav {
	flex: 1;
	display: flex;
	justify-content: center;
	overflow: visible;
	position: relative;
	z-index: 20;
}

.site-header__cta-wrap {
	display: inline-flex;
	flex-shrink: 0;
}

.site-header__cta.btn,
.site-header__cta.btn-primary {
	background-color: var(--color-accent, #FE5C08);
	border-color: var(--color-accent, #FE5C08);
	border-radius: 10px;
	min-height: 48px;
	padding: 0 22px;
	font-weight: 700;
	box-shadow: 0 8px 18px rgba(254, 92, 8, 0.22);
}

.site-header__cta.btn:hover,
.site-header__cta.btn-primary:hover {
	background-color: var(--color-accent-hover, #E04F00);
	border-color: var(--color-accent-hover, #E04F00);
}

/* ---------------- Hamburger toggle (mobile only) ---------------- */
.mobile-menu-toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 5px;
	width: 40px;
	height: 40px;
	background: transparent;
	border: none;
	cursor: pointer;
	padding: 0;
	flex: 0 0 auto;
	z-index: 1001;
}

.mobile-menu-toggle span {
	display: block;
	width: 24px;
	height: 2px;
	background-color: var(--color-primary, #03193C);
	border-radius: 2px;
	transition: transform 0.3s ease, opacity 0.3s ease;
}

.mobile-menu-toggle.is-active span:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

.mobile-menu-toggle.is-active span:nth-child(2) {
	opacity: 0;
}

.mobile-menu-toggle.is-active span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

/* ---------------- Slide-in drawer (mobile only) ---------------- */
.site-header__mobile-drawer {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	width: min(320px, 86vw);
	padding: 64px 20px 24px;
	background: var(--color-white);
	box-shadow: -8px 0 30px rgba(3, 25, 60, 0.18);
	transform: translateX(100%);
	visibility: hidden;
	transition: transform 0.3s ease, visibility 0.3s ease;
	overflow-y: auto;
	z-index: 1000;
	display: none;
}

.site-header__drawer-close {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 44px;
	height: 44px;
	padding: 0;
	border: none;
	background: transparent;
	cursor: pointer;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
}

.site-header__drawer-close span {
	position: absolute;
	width: 22px;
	height: 2px;
	background: var(--color-primary, #03193C);
	border-radius: 2px;
}

.site-header__drawer-close span:first-child {
	transform: rotate(45deg);
}

.site-header__drawer-close span:last-child {
	transform: rotate(-45deg);
}

.site-header.is-nav-open .site-header__mobile-drawer {
	transform: translateX(0);
	visibility: visible;
}

.site-header__drawer-backdrop {
	position: fixed;
	inset: 0;
	background: rgba(3, 25, 60, 0.55);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease;
	z-index: 999;
	display: none;
}

.site-header.is-nav-open .site-header__drawer-backdrop {
	opacity: 1;
	visibility: visible;
}

.site-header__drawer-list {
	list-style: none;
	margin: 0 0 var(--space-lg);
	padding: 0;
}

.site-header__drawer-list > li + li {
	border-top: 1px solid #f1f2f4;
}

.site-header__drawer-list .menu-item-has-children {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
}

.site-header__drawer-list .menu-item-has-children > a {
	flex: 1 1 auto;
	min-width: 0;
}

.site-header__submenu-toggle {
	flex: 0 0 44px;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	border: none;
	background: transparent;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--color-primary, #03193C);
}

.site-header__submenu-toggle span {
	display: block;
	width: 8px;
	height: 8px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
	transition: transform 0.2s ease;
}

.site-header__drawer-list .is-open > .site-header__submenu-toggle span {
	transform: translateY(2px) rotate(225deg);
}

.site-header__drawer-list .sub-menu {
	display: none;
	flex-basis: 100%;
	width: 100%;
	margin: 0;
	padding: 0 0 10px 12px;
	list-style: none;
}

.site-header__drawer-list .is-open > .sub-menu {
	display: block;
}

.site-header__drawer-list a {
	display: block;
	padding: 14px 2px;
	text-decoration: none;
	color: var(--color-primary, #03193C);
	font-weight: var(--fw-semibold);
	font-size: 16px;
}

.site-header__drawer-list a:hover,
.site-header__drawer-list .current-menu-item > a {
	color: var(--color-accent, #FE5C08);
}

.site-header__drawer-list .sub-menu a {
	padding: 8px 2px;
	font-size: 14px;
	font-weight: 600;
	color: #4b5b70;
}

.site-header__drawer-contact {
	border-top: 1px solid #e5e7eb;
	padding-top: var(--space-md);
}

.site-header__drawer-phone {
	display: block;
	font-family: var(--font-display);
	font-weight: var(--fw-semibold);
	font-size: 18px;
	color: var(--color-accent, #FE5C08);
	text-decoration: none;
	margin-bottom: 6px;
}

.site-header__drawer-address {
	margin: 0 0 var(--space-sm);
	font-size: 14px;
	color: var(--color-text-muted);
}

.site-header__drawer-socials {
	display: flex;
	gap: 10px;
}

.site-header__drawer-socials a {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 1px solid #e5e7eb;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--color-primary, #03193C);
	transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.site-header__drawer-socials a:hover {
	background: var(--color-accent, #FE5C08);
	border-color: var(--color-accent, #FE5C08);
	color: #ffffff;
}

.site-header__nav-list {
	display: flex;
	align-items: center;
	gap: 28px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-header__nav-list > li {
	position: relative;
}

.site-header__nav-list > li > a {
	position: relative;
	text-decoration: none;
	color: var(--color-primary, #03193C);
	font-weight: 700;
	font-size: 15px;
	padding: 6px 0;
	transition: color 0.2s ease;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.site-header__nav-list > li > a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 2px;
	background: var(--color-accent, #FE5C08);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.2s ease;
}

.site-header__nav-list > li > a:hover,
.site-header__nav-list > .current-menu-item > a,
.site-header__nav-list > .current_page_item > a,
.site-header__nav-list > .current-menu-ancestor > a,
.site-header__nav-list > .current-menu-parent > a {
	color: var(--color-accent, #FE5C08);
}

.site-header__nav-list > li > a:hover::after,
.site-header__nav-list > .current-menu-item > a::after,
.site-header__nav-list > .current_page_item > a::after,
.site-header__nav-list > .current-menu-ancestor > a::after,
.site-header__nav-list > .current-menu-parent > a::after {
	transform: scaleX(1);
}

.site-header__nav-list > .menu-item-has-children > a {
	padding-right: 2px;
}

.site-header__nav-list > .menu-item-has-children > a::before {
	content: "";
	width: 7px;
	height: 7px;
	margin-left: 2px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
	transition: transform 0.2s ease;
	flex-shrink: 0;
}

.site-header__nav-list > .menu-item-has-children:hover > a::before,
.site-header__nav-list > .menu-item-has-children:focus-within > a::before,
.site-header__nav-list > .menu-item-has-children.is-open > a::before {
	transform: translateY(1px) rotate(225deg);
}

.site-header__nav-list .sub-menu {
	position: absolute;
	top: calc(100% + 8px);
	left: 50%;
	transform: translateX(-50%) translateY(8px);
	min-width: 230px;
	margin: 0;
	padding: 8px 0;
	list-style: none;
	background: #fff;
	border-radius: 12px;
	border: 1px solid #e8eef5;
	box-shadow: 0 18px 40px rgba(3, 25, 60, 0.14);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
	z-index: 60;
}

.site-header__nav-list .sub-menu::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -14px;
	height: 14px;
}

.site-header__nav-list .menu-item-has-children:hover > .sub-menu,
.site-header__nav-list .menu-item-has-children:focus-within > .sub-menu,
.site-header__nav-list .menu-item-has-children.is-open > .sub-menu {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateX(-50%) translateY(0);
}

.site-header__nav-list .sub-menu a {
	display: block;
	padding: 11px 18px;
	text-decoration: none;
	color: var(--color-primary, #03193C);
	font-size: 14px;
	font-weight: 600;
	white-space: nowrap;
	transition: background 0.15s ease, color 0.15s ease;
}

.site-header__nav-list .sub-menu a:hover,
.site-header__nav-list .sub-menu .current-menu-item > a {
	background: #f5f8fc;
	color: var(--color-accent, #FE5C08);
}

/* ---------------- Desktop dropdowns ----------------
   Scoped to .site-nav--desktop so the mobile drawer keeps its stacked list. */

.site-nav--desktop .menu-item {
	position: relative;
}

.site-nav--desktop .menu-item-has-children > a {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}

/* Arrow sits after the label. An inline SVG (if present) is ordered second;
   otherwise the chevron is drawn with ::after. */
.site-nav--desktop .menu-item-has-children > a > svg,
.site-nav--desktop .menu-item-has-children > a > .submenu-arrow {
	order: 2;
	margin-left: auto;
	flex-shrink: 0;
}

.site-nav--desktop .menu-item-has-children > a:not(:has(svg)):not(:has(.submenu-arrow))::after {
	content: "";
	order: 2;
	margin-left: auto;
	flex-shrink: 0;
	width: 6px;
	height: 6px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg) translateY(-2px);
}

.site-nav--desktop .sub-menu {
	display: none;
	list-style: none;
	margin: 0;
	padding: 8px 0;
	min-width: 220px;
	background: var(--color-white);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
	border-radius: var(--radius-button, 6px);
	z-index: 20;
}

.site-nav--desktop .menu-item-has-children:hover > .sub-menu,
.site-nav--desktop .menu-item-has-children:focus-within > .sub-menu {
	display: block;
}

/* First level drops under the parent link. */
.site-nav--desktop .site-header__nav-list > .menu-item > .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
}

.site-nav--desktop .sub-menu a {
	display: flex;
	align-items: center;
	padding: 10px 16px;
	white-space: nowrap;
}

.site-nav--desktop .sub-menu a:hover,
.site-nav--desktop .sub-menu a:focus {
	color: var(--color-primary, #3D5E8E);
	background: rgba(var(--color-primary-rgb, 61, 94, 142), 0.06);
}

/* Nested parents: arrow stays on the right; chevron points toward the flyout. */
.site-nav--desktop .sub-menu .menu-item-has-children > a {
	display: flex;
	width: 100%;
	justify-content: space-between;
}

.site-nav--desktop .sub-menu .menu-item-has-children > a:not(:has(svg)):not(:has(.submenu-arrow))::after {
	transform: rotate(-45deg);
}

/* Second level opens to the right of its parent item. */
.site-nav--desktop .sub-menu .menu-item {
	position: relative;
}

.site-nav--desktop .sub-menu .sub-menu {
	position: absolute;
	top: 0;
	left: 100%;
}

/* 1. Top-level item is the anchor, so the dropdown lines up with "Services". */
.site-nav--desktop .site-header__nav-list > li,
.nav-menu > li,
.main-navigation li.menu-item-has-children {
	position: relative !important;
}

/* 2. First-level submenu: left edge flush with the parent item.
   Direct-child only — a blanket .sub-menu rule would also pin nested flyouts
   under the parent and fight the right-hand rule below. */
.site-nav--desktop .site-header__nav-list > li > .sub-menu,
.nav-menu > li > .sub-menu,
.main-navigation > ul > li > ul.sub-menu,
.main-navigation ul.sub-menu,
.nav-menu .sub-menu {
	position: absolute !important;
	top: 100% !important;
	left: 0 !important;
	right: auto !important;
	transform: none !important;
}

/* 3. Each submenu row anchors its own nested flyout. */
.site-nav--desktop .sub-menu > li,
.nav-menu .sub-menu li,
.main-navigation .sub-menu li {
	position: relative !important;
}

/* 4. Second level opens to the right of that row, not over it.
   These selectors outrank the first-level rules above (including
   .main-navigation ul.sub-menu). Desktop nav only — the mobile drawer
   uses the same .sub-menu markup and stays a stacked list. */
.site-nav--desktop .sub-menu .sub-menu,
.main-navigation .sub-menu .sub-menu,
.nav-menu .sub-menu .sub-menu {
	position: absolute !important;
	top: 0 !important;
	left: 100% !important;
	right: auto !important;
	margin-top: 0 !important;
	transform: none !important;
}

.site-nav--desktop .sub-menu {
	display: none;
	list-style: none;
	margin: 0;
	padding: 8px 0;
	min-width: 220px;
	background: var(--color-white);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
	z-index: 20;
}

.site-nav--desktop .menu-item-has-children:hover > .sub-menu,
.site-nav--desktop .menu-item-has-children:focus-within > .sub-menu {
	display: block;
}

/* 5. Arrow stays on the right of the label. */
.menu-item-has-children > a,
.page_item_has_children > a {
	display: inline-flex !important;
	align-items: center !important;
	gap: 6px !important;
}

.menu-item-has-children > a > svg,
.menu-item-has-children > a > i,
.menu-item-has-children > a > span.dropdown-icon,
.menu-item-has-children > a > .dropdown-arrow,
.menu-item-has-children > a > .sub-menu-toggle {
	order: 2 !important;
	margin-left: auto !important;
}

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

/* ---------------- Tablet & mobile ≤991px ---------------- */
@media (max-width: 991px) {
	.site-header__top-inner {
		flex-direction: column;
		gap: 6px;
		text-align: center;
	}

	.site-header__top-right {
		flex-wrap: wrap;
		justify-content: center;
	}

	/* Three-part navbar: logo left, CTA centre, hamburger right. */
	.site-header__inner {
		display: grid;
		grid-template-columns: auto minmax(0, 1fr) 44px;
		align-items: center;
		justify-content: stretch;
		flex-wrap: nowrap;
		width: 100%;
		gap: 8px;
		padding: 12px 0;
		overflow: visible;
	}

	/* 1. Left: logo */
	.site-header__logo {
		order: 1;
		grid-column: 1;
		display: flex;
		align-items: center;
		flex: 0 0 auto;
		max-width: 140px;
	}

	.site-header__logo img,
	.site-header__logo .custom-logo,
	.custom-logo {
		max-height: 56px;
		max-width: 140px;
	}

	/* 2. Centre: CTA */
	.site-header__cta-wrap,
	.site-header__mobile-cta {
		order: 2;
		grid-column: 2;
		display: inline-flex;
		flex: 0 1 auto;
		margin: 0;
		justify-content: center;
		justify-self: center;
		min-width: 0;
		max-width: 100%;
	}

	.site-header__mobile-cta .btn,
	.site-header__cta-wrap .btn {
		height: 2.5rem;
		min-height: 2.5rem;
		padding: 0 1.1rem;
		font-size: 13px;
		font-weight: 700;
		white-space: nowrap;
	}

	/* 3. Right: hamburger — always visible on tablet/mobile */
	.mobile-menu-toggle,
	.site-header__toggle {
		order: 3;
		grid-column: 3;
		display: flex !important;
		visibility: visible !important;
		opacity: 1 !important;
		width: 44px;
		height: 44px;
		flex-shrink: 0;
		justify-self: end;
		z-index: 1001;
	}

	.site-header.is-nav-open .mobile-menu-toggle,
	.site-header.is-nav-open .site-header__toggle {
		visibility: hidden !important;
		opacity: 0 !important;
		pointer-events: none;
	}

	.site-header__drawer-close {
		display: flex;
	}

	/* Desktop nav is replaced by the drawer */
	.site-nav--desktop {
		display: none;
	}

	.site-header__mobile-drawer,
	.site-header__drawer-backdrop {
		display: block;
	}
}

/* ---------------- Very narrow ≤380px ---------------- */
@media (max-width: 380px) {
	.site-header__logo img,
	.site-header__logo .custom-logo,
	.custom-logo {
		max-height: 50px;
		max-width: 180px;
	}

	.site-header__mobile-cta .btn,
	.site-header__cta-wrap .btn {
		height: 2.35rem;
		min-height: 2.35rem;
		padding: 0 0.85rem;
		font-size: 12px;
	}
}

/* ============================================================
   RESPONSIVE HEADER NAVIGATION FIX (INLINE CHEVRON + MOBILE ACCORDION)
   ============================================================ */

/* ------------------------------------------------------------
   1. DESKTOP ONLY (992px and up): Inline Orange Chevron & Flyouts
   ------------------------------------------------------------ */
@media (min-width: 992px) {
	/* Hide stray theme pseudo-element lines or boxes */
	body header nav ul li a::before,
	body .main-navigation ul li a::before,
	body header nav ul li::before,
	body .main-navigation ul li::before {
		content: none !important;
		display: none !important;
	}

	/* Force link to render as a single row flex container so text and arrow stay on ONE line */
	body header nav ul li.menu-item-has-children > a,
	body .main-navigation ul li.menu-item-has-children > a {
		display: inline-flex !important;
		flex-direction: row !important;
		align-items: center !important;
		justify-content: flex-start !important;
		white-space: nowrap !important;
		gap: 5px !important;
		position: relative !important;
	}

	/* Inline Orange Chevron Arrow on the right of the text */
	body header nav ul li.menu-item-has-children > a::after,
	body .main-navigation ul li.menu-item-has-children > a::after {
		content: "" !important;
		display: inline-block !important;
		position: static !important; /* Prevents theme from dropping it to absolute bottom */
		width: 6px !important;
		height: 6px !important;
		margin-left: 4px !important;
		margin-top: 0 !important;
		border-right: 2px solid #f25a2b !important;
		border-bottom: 2px solid #f25a2b !important;
		transform: rotate(45deg) translateY(-2px) !important;
		flex-shrink: 0 !important;
	}

	/* Hide duplicate theme mobile toggle buttons on desktop */
	body header nav .sub-menu-toggle,
	body .main-navigation .sub-menu-toggle,
	body header nav ul li.menu-item-has-children > button,
	body .main-navigation ul li.menu-item-has-children > button {
		display: none !important;
	}

	/* 1st Level Dropdown Flyout */
	body header nav ul > li.menu-item-has-children,
	body .main-navigation ul > li.menu-item-has-children {
		position: relative !important;
	}

	body header nav ul > li > ul.sub-menu,
	body .main-navigation ul > li > ul.sub-menu {
		position: absolute !important;
		top: 100% !important;
		left: 0 !important;
		right: auto !important;
		display: none !important;
		box-shadow: 0 4px 12px rgba(0,0,0,0.15) !important;
		z-index: 999 !important;
	}

	body header nav ul > li:hover > ul.sub-menu,
	body .main-navigation ul > li:hover > ul.sub-menu {
		display: block !important;
	}

	/* 2nd Level Sub-submenu Right Flyout */
	body header nav ul.sub-menu > li,
	body .main-navigation ul.sub-menu > li {
		position: relative !important;
	}

	body header nav ul.sub-menu ul.sub-menu,
	body .main-navigation ul.sub-menu ul.sub-menu {
		position: absolute !important;
		top: 0 !important;
		left: 100% !important;
		right: auto !important;
		display: none !important;
		z-index: 1000 !important;
	}

	body header nav ul.sub-menu li:hover > ul.sub-menu,
	body .main-navigation ul.sub-menu li:hover > ul.sub-menu {
		display: block !important;
	}
}

/* ------------------------------------------------------------
   MOBILE NAVIGATION (991px and below): Accordion + Slide Transition
   ------------------------------------------------------------ */
@media (max-width: 991px) {
	body header nav ul li a::after,
	body .main-navigation ul li a::after {
		content: none !important;
		display: none !important;
	}

	body header nav ul,
	body .main-navigation ul,
	body header nav ul li,
	body .main-navigation ul li {
		position: relative !important;
		display: block !important;
		width: 100% !important;
		float: none !important;
	}

	/* Submenus hidden by default with smooth slide transition properties */
	body header nav ul.sub-menu,
	body .main-navigation ul.sub-menu {
		display: block !important; /* Kept block for max-height animation */
		max-height: 0 !important;
		overflow: hidden !important;
		opacity: 0 !important;
		visibility: hidden !important;
		position: static !important;
		width: 100% !important;
		box-shadow: none !important;
		padding-left: 15px !important;
		margin: 0 !important;
		transition: max-height 0.35s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease, visibility 0.3s ease !important;
	}

	/* Open Level 1 Submenu */
	body header nav > ul > li.toggled-on > ul.sub-menu,
	body .main-navigation > ul > li.toggled-on > ul.sub-menu,
	body header nav > ul > li.open > ul.sub-menu,
	body .main-navigation > ul > li.open > ul.sub-menu,
	body header nav > ul > li.active > ul.sub-menu,
	body .main-navigation > ul > li.active > ul.sub-menu,
	body header nav > ul > li > button[aria-expanded="true"] + ul.sub-menu,
	body .main-navigation > ul > li > button[aria-expanded="true"] + ul.sub-menu {
		max-height: 1000px !important;
		opacity: 1 !important;
		visibility: visible !important;
		padding-top: 5px !important;
		padding-bottom: 5px !important;
	}

	/* Open Level 2 Sub-submenu independently without closing parent */
	body header nav ul.sub-menu > li.toggled-on > ul.sub-menu,
	body .main-navigation ul.sub-menu > li.toggled-on > ul.sub-menu,
	body header nav ul.sub-menu > li.open > ul.sub-menu,
	body .main-navigation ul.sub-menu > li.open > ul.sub-menu,
	body header nav ul.sub-menu > li.active > ul.sub-menu,
	body .main-navigation ul.sub-menu > li.active > ul.sub-menu,
	body header nav ul.sub-menu > li > button[aria-expanded="true"] + ul.sub-menu,
	body .main-navigation ul.sub-menu > li > button[aria-expanded="true"] + ul.sub-menu {
		max-height: 800px !important;
		opacity: 1 !important;
		visibility: visible !important;
	}

	/* Ensure toggle buttons stay accessible */
	body header nav .sub-menu-toggle,
	body .main-navigation .sub-menu-toggle,
	body header nav ul li.menu-item-has-children > button,
	body .main-navigation ul li.menu-item-has-children > button {
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		visibility: visible !important;
		opacity: 1 !important;
		pointer-events: auto !important;
		cursor: pointer !important;
		z-index: 10 !important;
		transition: transform 0.3s ease !important;
	}

	/* Rotate toggle arrow when open */
	body header nav ul li.toggled-on > button,
	body .main-navigation ul li.toggled-on > button,
	body header nav ul li.open > button,
	body .main-navigation ul li.open > button,
	body header nav ul li > button[aria-expanded="true"],
	body .main-navigation ul li > button[aria-expanded="true"] {
		transform: rotate(180deg) !important;
	}
}
