/*
 * JSSX header menu refinement.
 * Scope: the rounded menu pill
 * and the Contact CTA inside it. The rest of the header keeps the site's design.
 */

/* =========================
   Responsive header
   Mobile keeps the desktop liquid-glass language while using Astra's native
   menu trigger and submenu state classes for reliable keyboard/touch support.
========================= */

@media (min-width: 922px) and (max-width: 1024px) {
	body .main-header-bar-wrap {
		width: calc(100% - 24px) !important;
	}

	body .site-header .custom-logo-link img,
	body .site-header .site-logo-img img {
		width: auto !important;
		max-width: 104px !important;
		max-height: 38px !important;
	}

	.ast-desktop .main-header-menu {
		gap: 0;
	}

	.ast-desktop .main-header-menu > .menu-item > a,
	.ast-desktop .main-header-menu > .menu-item > .menu-link {
		padding-right: 8px !important;
		padding-left: 8px !important;
		font-size: 14px !important;
		white-space: nowrap;
	}
}

@media (max-width: 921px) {
	html {
		scroll-padding-top: 82px;
	}

	body.ast-header-break-point .site-header {
		position: fixed !important;
		top: 0 !important;
		right: 0 !important;
		left: 0 !important;
		z-index: 99990 !important;
		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
		padding: 0 !important;
		background: transparent !important;
		box-shadow: none !important;
		pointer-events: none;
	}

	body.admin-bar.ast-header-break-point .site-header {
		top: 32px !important;
	}

	body.ast-header-break-point #ast-mobile-header {
		display: block;
		width: 100%;
		pointer-events: auto;
	}

	body.ast-header-break-point #ast-mobile-header .main-header-bar-wrap {
		position: relative;
		isolation: isolate;
		width: calc(100% - 24px) !important;
		max-width: 720px !important;
		min-height: 60px !important;
		margin: 10px auto 0 !important;
		overflow: hidden;
		border: 1px solid rgba(215, 220, 226, 0.88) !important;
		border-radius: 17px !important;
		background: rgba(255, 255, 255, 0.76) !important;
		box-shadow:
			inset 0 1px 0 rgba(255, 255, 255, 0.94),
			0 16px 34px rgba(4, 18, 32, 0.14) !important;
		-webkit-backdrop-filter: blur(18px) saturate(140%) !important;
		backdrop-filter: blur(18px) saturate(140%) !important;
		transition:
			width 0.24s cubic-bezier(0.22, 1, 0.36, 1),
			margin 0.24s cubic-bezier(0.22, 1, 0.36, 1),
			background-color 0.24s ease,
			border-radius 0.2s ease,
			box-shadow 0.2s ease;
	}

	body.ast-header-break-point #ast-mobile-header .main-header-bar-wrap::before {
		position: absolute;
		inset: 1px;
		z-index: -1;
		border-radius: 16px;
		background: linear-gradient(100deg, transparent 8%, rgba(255, 255, 255, 0.36) 48%, transparent 90%);
		content: "";
		pointer-events: none;
	}

	body.ast-header-break-point.is-header-sticky #ast-mobile-header .main-header-bar-wrap {
		width: calc(100% - 16px) !important;
		margin-top: 6px !important;
		box-shadow:
			inset 0 1px 0 rgba(255, 255, 255, 0.92),
			0 10px 26px rgba(13, 49, 73, 0.18) !important;
	}

	body.jssx-mobile-menu-open.ast-header-break-point #ast-mobile-header .main-header-bar-wrap {
		border-color: #d7dce2 !important;
		background: #fff !important;
		box-shadow: 0 12px 28px rgba(4, 18, 32, 0.14) !important;
	}

	body.ast-header-break-point #ast-mobile-header .ast-primary-header,
	body.ast-header-break-point #ast-mobile-header .ast-primary-header-bar,
	body.ast-header-break-point #ast-mobile-header .main-header-bar,
	body.ast-header-break-point #ast-mobile-header .site-primary-header-wrap,
	body.ast-header-break-point #ast-mobile-header .ast-builder-grid-row,
	body.ast-header-break-point #ast-mobile-header .site-header-section {
		width: 100% !important;
		height: 60px !important;
		min-height: 60px !important;
		margin: 0 !important;
		border: 0 !important;
		background: transparent !important;
		box-shadow: none !important;
	}

	body.ast-header-break-point #ast-mobile-header .site-primary-header-wrap {
		padding-right: 10px !important;
		padding-left: 14px !important;
	}

	body.ast-header-break-point #ast-mobile-header .site-branding,
	body.ast-header-break-point #ast-mobile-header .ast-site-identity {
		min-width: 0;
		padding: 0 !important;
	}

	body.ast-header-break-point #ast-mobile-header .custom-logo-link {
		display: inline-flex;
		align-items: center;
		max-width: min(42vw, 160px);
		height: 44px;
	}

	body.ast-header-break-point #ast-mobile-header .custom-logo-link img,
	body.ast-header-break-point #ast-mobile-header .site-logo-img img {
		width: auto !important;
		max-width: min(42vw, 150px) !important;
		max-height: 38px !important;
		object-fit: contain;
		filter: drop-shadow(0 1px 3px rgba(0, 28, 45, 0.22));
	}

	body.ast-header-break-point #ast-mobile-header .ast-mobile-menu-trigger-minimal,
	body.ast-header-break-point #ast-mobile-header .ast-button-wrap,
	body.ast-header-break-point #ast-mobile-header .ast-mobile-menu-trigger-minimal .ast-button-wrap {
		display: flex;
		align-items: center;
		justify-content: center;
	}

	body.ast-header-break-point #ast-mobile-header .main-header-menu-toggle {
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		width: 44px !important;
		height: 44px !important;
		min-width: 44px;
		min-height: 44px;
		padding: 0 !important;
		border: 1px solid rgba(23, 100, 232, 0.22) !important;
		border-radius: 14px !important;
		background: rgba(255, 255, 255, 0.82) !important;
		box-shadow:
			inset 0 1px 0 rgba(255, 255, 255, 0.92),
			0 4px 12px rgba(4, 18, 32, 0.1) !important;
		color: #1764e8 !important;
		-webkit-backdrop-filter: blur(10px) saturate(140%);
		backdrop-filter: blur(10px) saturate(140%);
		touch-action: manipulation;
	}

	body.ast-header-break-point #ast-mobile-header .main-header-menu-toggle:hover,
	body.ast-header-break-point #ast-mobile-header .main-header-menu-toggle:focus-visible {
		border-color: rgba(23, 100, 232, 0.5) !important;
		background: #f0f3f6 !important;
		outline: 2px solid rgba(23, 100, 232, 0.2);
		outline-offset: 2px;
	}

	body.ast-header-break-point #ast-mobile-header .main-header-menu-toggle.toggled {
		border-color: #1764e8 !important;
		background: #1764e8 !important;
		color: #fff !important;
	}

	body.ast-header-break-point #ast-mobile-header .main-header-menu-toggle .ahfb-svg-iconset,
	body.ast-header-break-point #ast-mobile-header .main-header-menu-toggle .mobile-menu-toggle-icon,
	body.ast-header-break-point #ast-mobile-header .main-header-menu-toggle svg {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 22px;
		height: 22px;
		margin: 0 !important;
	}

	body.ast-header-break-point #ast-mobile-header .main-header-menu-toggle .mobile-menu-toggle-icon {
		display: grid;
		place-items: center;
		width: 22px;
		height: 22px;
	}

	body.ast-header-break-point #ast-mobile-header .main-header-menu-toggle .ahfb-svg-iconset {
		width: auto;
		height: auto;
	}

	body.ast-header-break-point #ast-mobile-header .main-header-menu-toggle svg {
		fill: currentColor !important;
	}

	body.ast-header-break-point #ast-mobile-header .main-header-menu-toggle:not(.toggled) .ast-close-svg,
	body.ast-header-break-point #ast-mobile-header .main-header-menu-toggle.toggled .ast-menu2-svg {
		display: none !important;
	}

	body.ast-header-break-point #ast-mobile-popup-wrapper,
	body.ast-header-break-point #ast-mobile-popup {
		z-index: 100000;
	}

	body.ast-header-break-point #ast-mobile-popup .ast-mobile-popup-overlay {
		background: rgba(3, 14, 22, 0.48) !important;
		-webkit-backdrop-filter: blur(5px) saturate(115%);
		backdrop-filter: blur(5px) saturate(115%);
	}

	body.ast-header-break-point #ast-mobile-popup.ast-mobile-popup-drawer .ast-mobile-popup-inner {
		top: 0;
		right: 0;
		bottom: 0;
		left: auto;
		width: min(88vw, 420px) !important;
		max-width: 420px !important;
		height: 100vh;
		height: 100dvh;
		max-height: 100vh;
		max-height: 100dvh;
		border-left: 1px solid rgba(255, 255, 255, 0.72);
		border-radius: 24px 0 0 24px;
		background:
			radial-gradient(110% 90% at 100% 0%, rgba(117, 209, 244, 0.2) 0%, transparent 56%),
			linear-gradient(160deg, rgba(255, 255, 255, 0.96) 0%, rgba(239, 249, 253, 0.93) 58%, rgba(229, 243, 249, 0.95) 100%) !important;
		box-shadow: -22px 0 54px rgba(2, 27, 42, 0.24) !important;
		-webkit-backdrop-filter: blur(28px) saturate(175%) !important;
		backdrop-filter: blur(28px) saturate(175%) !important;
		transition:
			transform 0.34s cubic-bezier(0.22, 1, 0.36, 1),
			opacity 0.2s ease !important;
		overscroll-behavior: contain;
	}

	body.admin-bar.ast-header-break-point #ast-mobile-popup.ast-mobile-popup-drawer .ast-mobile-popup-inner {
		top: 32px;
		height: calc(100dvh - 32px);
		max-height: calc(100dvh - 32px);
	}

	body.ast-header-break-point #ast-mobile-popup .ast-mobile-popup-header {
		flex: 0 0 auto;
		align-items: center;
		min-height: 74px;
		padding: max(14px, env(safe-area-inset-top)) 16px 8px;
	}

	body.ast-header-break-point #ast-mobile-popup .menu-toggle-close {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		padding: 0 !important;
		border: 1px solid rgba(19, 111, 159, 0.16) !important;
		border-radius: 50% !important;
		background: rgba(255, 255, 255, 0.66) !important;
		box-shadow:
			inset 0 1px 0 rgba(255, 255, 255, 0.92),
			0 6px 18px rgba(17, 77, 107, 0.12) !important;
		color: #145f88 !important;
		touch-action: manipulation;
	}

	body.ast-header-break-point #ast-mobile-popup .menu-toggle-close:hover,
	body.ast-header-break-point #ast-mobile-popup .menu-toggle-close:focus-visible {
		background: rgba(221, 243, 252, 0.92) !important;
		outline: 2px solid rgba(30, 143, 198, 0.34);
		outline-offset: 2px;
	}

	body.ast-header-break-point #ast-mobile-popup .menu-toggle-close svg,
	body.ast-header-break-point #ast-mobile-popup .menu-toggle-close .ahfb-svg-iconset {
		display: block;
		width: 18px;
		height: 18px;
		margin: 0 !important;
	}

	body.ast-header-break-point #ast-mobile-popup .ast-mobile-popup-content {
		flex: 1 1 auto;
		min-height: 0;
		padding: 2px 14px max(24px, env(safe-area-inset-bottom)) !important;
		overflow-x: hidden;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}

	body.ast-header-break-point #ast-mobile-popup .ast-builder-menu,
	body.ast-header-break-point #ast-mobile-popup .main-header-bar-navigation,
	body.ast-header-break-point #ast-mobile-popup .main-header-menu {
		width: 100%;
		margin: 0 !important;
		padding: 0 !important;
		border: 0 !important;
		background: transparent !important;
	}

	body.ast-header-break-point #ast-mobile-popup .main-header-menu > .menu-item {
		position: relative;
		width: 100%;
		margin: 0 0 6px;
		border: 1px solid transparent;
		border-radius: 14px;
		background: transparent;
		overflow: hidden;
	}

	body.ast-header-break-point #ast-mobile-popup .main-header-menu > .menu-item:hover,
	body.ast-header-break-point #ast-mobile-popup .main-header-menu > .current-menu-item,
	body.ast-header-break-point #ast-mobile-popup .main-header-menu > .current-menu-ancestor,
	body.ast-header-break-point #ast-mobile-popup .main-header-menu > .ast-submenu-expanded {
		border-color: rgba(18, 118, 168, 0.12);
		background: rgba(255, 255, 255, 0.54);
		box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.78);
	}

	body.ast-header-break-point #ast-mobile-popup .main-navigation .menu-item > a,
	body.ast-header-break-point #ast-mobile-popup .main-navigation .menu-item > .menu-link {
		display: flex !important;
		align-items: center;
		width: 100%;
		min-height: 52px;
		padding: 12px 58px 12px 18px !important;
		border: 0 !important;
		background: transparent !important;
		color: #172c38 !important;
		font-size: 16px;
		font-weight: 650;
		line-height: 1.35;
		white-space: normal;
		word-break: break-word;
	}

	body.ast-header-break-point #ast-mobile-popup .main-navigation .menu-item > a:hover,
	body.ast-header-break-point #ast-mobile-popup .main-navigation .menu-item > a:focus-visible,
	body.ast-header-break-point #ast-mobile-popup .main-navigation .menu-item > .menu-link:hover,
	body.ast-header-break-point #ast-mobile-popup .main-navigation .menu-item > .menu-link:focus-visible {
		color: #0879b2 !important;
		outline: 0;
	}

	body.ast-header-break-point #ast-mobile-popup .main-navigation .sub-menu {
		position: static !important;
		width: auto !important;
		margin: 0 10px 10px !important;
		padding: 5px 0 7px 10px !important;
		border: 0 !important;
		border-left: 1px solid rgba(14, 124, 176, 0.2) !important;
		border-radius: 0 0 10px 10px;
		background: rgba(230, 246, 252, 0.46) !important;
		box-shadow: none !important;
		opacity: 1 !important;
		visibility: visible !important;
		transform: none !important;
	}

	/* Overrides the late inline desktop rule in header.php. */
	body.ast-header-break-point #ast-mobile-popup .main-header-menu .menu-item > .sub-menu {
		display: none !important;
	}

	body.ast-header-break-point #ast-mobile-popup .main-header-menu .menu-item.ast-submenu-expanded > .sub-menu,
	body.ast-header-break-point #ast-mobile-popup .main-header-menu .menu-item > .sub-menu.toggled-on {
		display: block !important;
	}

	body.ast-header-break-point #ast-mobile-popup .main-navigation .sub-menu .menu-item > a,
	body.ast-header-break-point #ast-mobile-popup .main-navigation .sub-menu .menu-item > .menu-link {
		min-height: 46px;
		padding: 10px 48px 10px 14px !important;
		color: #36505e !important;
		font-size: 14px;
		font-weight: 550;
	}

	body.ast-header-break-point #ast-mobile-popup .main-header-bar-navigation .menu-item-has-children > .ast-menu-toggle {
		top: 4px !important;
		right: 6px !important;
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		width: 44px !important;
		height: 44px !important;
		padding: 0 !important;
		border: 0 !important;
		border-radius: 12px !important;
		background: transparent !important;
		box-shadow: none !important;
		color: #397187 !important;
		touch-action: manipulation;
	}

	body.ast-header-break-point #ast-mobile-popup .main-header-bar-navigation .menu-item-has-children > .ast-menu-toggle:hover,
	body.ast-header-break-point #ast-mobile-popup .main-header-bar-navigation .menu-item-has-children > .ast-menu-toggle:focus-visible {
		background: rgba(28, 142, 194, 0.1) !important;
		outline: 2px solid rgba(28, 142, 194, 0.24);
		outline-offset: -4px;
	}

	body.ast-header-break-point #ast-mobile-popup .ast-menu-toggle .ast-icon,
	body.ast-header-break-point #ast-mobile-popup .ast-menu-toggle svg {
		display: block;
		width: 16px;
		height: 16px;
		margin: 0 !important;
	}

	body.ast-header-break-point #ast-mobile-popup .product-thumb,
	body.ast-header-break-point #ast-mobile-popup .mega-inner {
		display: none !important;
	}

	@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
		body.ast-header-break-point #ast-mobile-header .main-header-bar-wrap {
			background: rgba(238, 248, 252, 0.94) !important;
		}

		body.ast-header-break-point #ast-mobile-popup.ast-mobile-popup-drawer .ast-mobile-popup-inner {
			background: #f5fbfd !important;
		}
	}
}

@media (max-width: 782px) {
	body.admin-bar.ast-header-break-point .site-header {
		top: 46px !important;
	}

	body.admin-bar.ast-header-break-point #ast-mobile-popup.ast-mobile-popup-drawer .ast-mobile-popup-inner {
		top: 46px;
		height: calc(100dvh - 46px);
		max-height: calc(100dvh - 46px);
	}
}

@media (max-width: 480px) {
	body.ast-header-break-point #ast-mobile-header .main-header-bar-wrap {
		width: calc(100% - 16px) !important;
		margin-top: 8px !important;
	}

	body.ast-header-break-point #ast-mobile-header .site-primary-header-wrap {
		padding-right: 8px !important;
		padding-left: 12px !important;
	}

	body.ast-header-break-point #ast-mobile-header .custom-logo-link img,
	body.ast-header-break-point #ast-mobile-header .site-logo-img img {
		max-width: min(40vw, 132px) !important;
		max-height: 34px !important;
	}

	body.ast-header-break-point #ast-mobile-popup.ast-mobile-popup-drawer .ast-mobile-popup-inner {
		width: min(92vw, 380px) !important;
		border-radius: 20px 0 0 20px;
	}

	body.ast-header-break-point #ast-mobile-popup .ast-mobile-popup-content {
		padding-right: 10px !important;
		padding-left: 10px !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	body.ast-header-break-point #ast-mobile-header .main-header-bar-wrap,
	body.ast-header-break-point #ast-mobile-popup.ast-mobile-popup-drawer .ast-mobile-popup-inner,
	body.ast-header-break-point #ast-mobile-popup .ast-menu-toggle,
	body.ast-header-break-point #ast-mobile-popup .menu-link {
		transition-duration: 0.01ms !important;
	}
}

/* Astra on this site renders an inline mobile navigation instead of
 * #ast-mobile-popup. Style the real menu as a contained glass dropdown so it
 * keeps the desktop header language without covering the whole screen. */
@media (max-width: 921px) {
	body.jssx-mobile-menu-open {
		overflow: hidden;
	}

	body.ast-header-break-point .jssx-mobile-menu-backdrop {
		position: fixed;
		z-index: 99980;
		inset: 0;
		display: block;
		width: 100%;
		height: 100%;
		padding: 0;
		border: 0;
		border-radius: 0;
		background: rgba(4, 18, 32, 0.24);
		-webkit-backdrop-filter: blur(3px);
		backdrop-filter: blur(3px);
		animation: jssx-mobile-backdrop-in 0.2s ease both;
	}

	body.ast-header-break-point .jssx-mobile-menu-backdrop[hidden] {
		display: none;
	}

	body.ast-header-break-point #ast-mobile-header .main-header-bar-wrap {
		overflow: visible;
	}

	body.ast-header-break-point #ast-mobile-site-navigation {
		position: fixed !important;
		top: 80px !important;
		right: 12px !important;
		left: 12px !important;
		z-index: 99995 !important;
		box-sizing: border-box;
		flex: none !important;
		width: auto !important;
		height: auto !important;
		min-height: 0 !important;
		max-width: 720px !important;
		max-height: calc(100vh - 94px);
		max-height: calc(100dvh - 94px);
		margin: 0 auto !important;
		padding: 10px 12px 14px !important;
		overflow-x: hidden;
		overflow-y: auto;
		border: 1px solid #e3e7eb !important;
		border-radius: 18px !important;
		background: #fff !important;
		box-shadow: 0 18px 34px rgba(4, 18, 32, 0.16) !important;
		-webkit-backdrop-filter: none !important;
		backdrop-filter: none !important;
		overscroll-behavior: contain;
		animation: jssx-mobile-menu-in 0.3s cubic-bezier(0.22, 1, 0.36, 1) both;
	}

	body.ast-header-break-point.is-header-sticky #ast-mobile-site-navigation {
		top: 74px !important;
	}

	body.admin-bar.ast-header-break-point #ast-mobile-site-navigation {
		top: 112px !important;
		max-height: calc(100dvh - 126px);
	}

	body.admin-bar.ast-header-break-point.is-header-sticky #ast-mobile-site-navigation {
		top: 106px !important;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .main-navigation,
	body.ast-header-break-point #ast-mobile-site-navigation .main-header-menu {
		width: 100%;
		margin: 0 !important;
		padding: 0 !important;
		border: 0 !important;
		background: transparent !important;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .main-header-menu > .menu-item {
		position: relative;
		width: 100%;
		margin: 0 0 5px !important;
		overflow: hidden;
		border: 1px solid transparent !important;
		border-radius: 13px;
		background: transparent !important;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .main-header-menu > .menu-item:hover,
	body.ast-header-break-point #ast-mobile-site-navigation .main-header-menu > .current-menu-item,
	body.ast-header-break-point #ast-mobile-site-navigation .main-header-menu > .current-menu-ancestor {
		border-color: #e3e7eb !important;
		background: #f0f3f6 !important;
		box-shadow: none;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .main-header-menu > .ast-submenu-expanded {
		border-color: transparent !important;
		background: #fff !important;
		box-shadow: none;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .main-header-menu > .ast-submenu-expanded > a,
	body.ast-header-break-point #ast-mobile-site-navigation .main-header-menu > .ast-submenu-expanded > .menu-link {
		border-radius: 11px;
		background: #f0f3f6 !important;
		color: #0078c0 !important;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .menu-item > a,
	body.ast-header-break-point #ast-mobile-site-navigation .menu-item > .menu-link {
		display: flex !important;
		box-sizing: border-box;
		align-items: center;
		width: 100%;
		min-height: 52px;
		padding: 12px 58px 12px 16px !important;
		border: 0 !important;
		background: transparent !important;
		color: #172c38 !important;
		font-size: 16px !important;
		font-weight: 650;
		line-height: 1.35;
		white-space: normal;
		word-break: break-word;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .menu-item > a:hover,
	body.ast-header-break-point #ast-mobile-site-navigation .menu-item > a:focus-visible,
	body.ast-header-break-point #ast-mobile-site-navigation .menu-item > .menu-link:hover,
	body.ast-header-break-point #ast-mobile-site-navigation .menu-item > .menu-link:focus-visible {
		color: #0078c0 !important;
		outline: 0;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .dropdown-menu-toggle {
		display: none !important;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .menu-item-has-children > .ast-menu-toggle {
		position: absolute !important;
		top: 4px !important;
		right: 5px !important;
		z-index: 2;
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		width: 44px !important;
		height: 44px !important;
		padding: 0 !important;
		border: 0 !important;
		border-radius: 12px !important;
		background: transparent !important;
		box-shadow: none !important;
		color: #397187 !important;
		touch-action: manipulation;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .menu-item-has-children > .ast-menu-toggle:hover,
	body.ast-header-break-point #ast-mobile-site-navigation .menu-item-has-children > .ast-menu-toggle:focus-visible {
		background: rgba(28, 142, 194, 0.1) !important;
		outline: 2px solid rgba(28, 142, 194, 0.24);
		outline-offset: -4px;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .ast-menu-toggle .ast-icon {
		display: block;
		width: 16px;
		height: 16px;
		margin: 0 !important;
		transform: rotate(0deg) !important;
		transition: transform 0.2s ease;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .ast-menu-toggle svg {
		display: block;
		width: 16px;
		height: 16px;
		margin: 0 !important;
		transform: none !important;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .menu-item.ast-submenu-expanded > .ast-menu-toggle .ast-icon {
		transform: rotate(180deg) !important;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .main-header-menu .menu-item > .sub-menu {
		position: static !important;
		display: none !important;
		width: auto !important;
		margin: 0 9px 10px !important;
		padding: 5px 0 7px 10px !important;
		border: 0 !important;
		border-left: 1px solid rgba(14, 124, 176, 0.22) !important;
		border-radius: 0 0 10px 10px;
		background: #f8f8f8 !important;
		box-shadow: none !important;
		opacity: 1 !important;
		visibility: visible !important;
		transform: none !important;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .main-header-menu .menu-item.ast-submenu-expanded > .sub-menu,
	body.ast-header-break-point #ast-mobile-site-navigation .main-header-menu .menu-item > .sub-menu.toggled-on {
		display: block !important;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .sub-menu .menu-item > a,
	body.ast-header-break-point #ast-mobile-site-navigation .sub-menu .menu-item > .menu-link {
		min-height: 46px;
		padding: 10px 48px 10px 13px !important;
		color: #36505e !important;
		font-size: 14px !important;
		font-weight: 550;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .sub-menu .sub-menu {
		margin-right: 4px !important;
		margin-left: 13px !important;
		background: rgba(255, 255, 255, 0.52) !important;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .sub-menu .sub-menu .menu-item > a,
	body.ast-header-break-point #ast-mobile-site-navigation .sub-menu .sub-menu .menu-item > .menu-link {
		min-height: 42px;
		font-size: 13px !important;
		font-weight: 500;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .product-thumb,
	body.ast-header-break-point #ast-mobile-site-navigation .mega-inner {
		display: none !important;
	}

	/* Product Center uses the desktop mega-menu output as its data source.
	 * The same category groups and first two product cards are cloned for
	 * mobile, then only the layout is adapted for the narrow panel. */
	body.ast-header-break-point #ast-mobile-site-navigation .main-header-menu .jssx-mobile-product-menu {
		margin: 0 9px 12px !important;
		padding: 14px !important;
		border: 1px solid #e3e7eb !important;
		border-left: 1px solid #e3e7eb !important;
		border-radius: 12px;
		background: #fff !important;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .jssx-mobile-product-overview,
	body.ast-header-break-point #ast-mobile-site-navigation .mega-product-groups,
	body.ast-header-break-point #ast-mobile-site-navigation .mega-product-group {
		width: 100%;
		min-width: 0;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .mega-product-groups {
		display: grid;
		gap: 22px;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .mega-product-heading-row {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 10px;
		margin-bottom: 10px;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .mega-product-heading {
		position: relative;
		min-width: 0;
		padding-left: 27px;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .mega-product-heading .mega-product-icon {
		position: absolute;
		top: 50%;
		left: 0;
		display: block;
		width: 20px;
		height: 20px;
		color: #1764e8;
		stroke: currentColor;
		transform: translateY(-50%);
	}

	body.ast-header-break-point #ast-mobile-site-navigation .mega-product-heading > a,
	body.ast-header-break-point #ast-mobile-site-navigation .mega-product-heading > .menu-link {
		display: block !important;
		min-height: 0;
		padding: 0 !important;
		color: #172c38 !important;
		font-size: 15px !important;
		font-weight: 650;
		line-height: 1.35;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .mega-product-more {
		flex: 0 0 auto;
		color: #617583 !important;
		font-size: 12px !important;
		font-weight: 500;
		text-decoration: none;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .mega-product-more::after {
		margin-left: 4px;
		content: ">";
	}

	body.ast-header-break-point #ast-mobile-site-navigation .mega-product-grid {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 9px;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .mega-product-grid .product {
		display: flex;
		box-sizing: border-box;
		flex-direction: column;
		gap: 8px;
		min-width: 0;
		padding: 8px;
		border: 1px dashed transparent;
		border-radius: 11px;
		background: #f8f8f8;
		color: #172c38;
		text-decoration: none;
		transition: transform 0.2s ease, border-color 0.2s ease;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .mega-product-grid .product:hover,
	body.ast-header-break-point #ast-mobile-site-navigation .mega-product-grid .product:focus-visible {
		border-color: #1764e8;
		transform: translateY(-3px);
		outline: 2px solid rgba(23, 100, 232, 0.2);
		outline-offset: 2px;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .mega-product-grid .product-thumb {
		display: grid !important;
		width: 100%;
		height: auto !important;
		aspect-ratio: 1 / 1;
		margin: 0 !important;
		padding: 6px;
		place-items: center;
		overflow: hidden;
		border-radius: 9px;
		background: transparent !important;
		box-shadow: none !important;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .mega-product-grid .product-thumb img {
		width: 100%;
		height: 100%;
		margin: 0;
		object-fit: contain;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .mega-product-grid .product-copy {
		display: flex;
		flex-direction: column;
		gap: 2px;
		min-width: 0;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .mega-product-grid .product-title,
	body.ast-header-break-point #ast-mobile-site-navigation .mega-product-grid .product-subtitle {
		display: -webkit-box;
		overflow: hidden;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .mega-product-grid .product-title {
		min-height: 2.8em;
		color: #1b2732;
		font-size: 12px;
		font-weight: 600;
		line-height: 1.4;
		text-align: center;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .mega-product-grid .product-subtitle {
		color: #71808c;
		font-size: 11px;
		font-weight: 400;
		line-height: 1.35;
		text-align: center;
	}

	@keyframes jssx-mobile-menu-in {
		from {
			opacity: 0;
			transform: translateY(-10px) scale(0.985);
		}
		to {
			opacity: 1;
			transform: translateY(0) scale(1);
		}
	}

	@keyframes jssx-mobile-backdrop-in {
		from { opacity: 0; }
		to { opacity: 1; }
	}
}

@media (max-width: 782px) {
	body.admin-bar.ast-header-break-point #ast-mobile-site-navigation {
		top: 126px !important;
		max-height: calc(100dvh - 140px);
	}

	body.admin-bar.ast-header-break-point.is-header-sticky #ast-mobile-site-navigation {
		top: 120px !important;
	}
}

@media (max-width: 480px) {
	body.ast-header-break-point #ast-mobile-site-navigation {
		top: 74px !important;
		right: 8px !important;
		left: 8px !important;
		max-height: calc(100dvh - 84px);
		padding-right: 9px !important;
		padding-left: 9px !important;
		border-radius: 16px !important;
	}

	body.ast-header-break-point #ast-mobile-site-navigation .main-header-menu .jssx-mobile-product-menu {
		margin-right: 4px !important;
		margin-left: 4px !important;
		padding: 11px !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	body.ast-header-break-point #ast-mobile-site-navigation,
	body.ast-header-break-point .jssx-mobile-menu-backdrop {
		animation-duration: 0.01ms !important;
	}
}
:root {
	--jssx-menu-pill-bg: rgba(244, 247, 250, 0.1);
	--jssx-dropdown-top: 0px;
	--jssx-menu-text: #233443;
	--jssx-menu-text-hover: #0078c0;
	--jssx-menu-shadow: 0 16px 34px rgba(4, 18, 32, 0.14);
	--jssx-contact-green: #35c915;
	--jssx-contact-cyan: #18bfe5;
	--jssx-header-glass: rgba(255, 255, 255, 0.34);
	--jssx-header-solid: #ffffff;
	--jssx-header-transition: 420ms cubic-bezier(0.22, 1, 0.36, 1);
	--jssx-dropdown-transition: 320ms cubic-bezier(0.22, 1, 0.36, 1);
}

@media (min-width: 1025px) {
	.ast-desktop .site-header,
	.ast-desktop .main-header-bar-wrap,
	.ast-desktop .ast-primary-header,
	.ast-desktop .ast-primary-header-bar,
	.ast-desktop .main-header-bar {
		overflow: visible;
	}

	.ast-desktop .ast-primary-header,
	.ast-desktop .ast-primary-header-bar,
	.ast-desktop .main-header-bar {
		position: relative;
		isolation: isolate;
		background-color: var(--jssx-header-glass) !important;
		-webkit-backdrop-filter: saturate(140%) blur(10px);
		backdrop-filter: saturate(140%) blur(10px);
		transition: background-color var(--jssx-header-transition), box-shadow var(--jssx-header-transition);
	}

	.ast-desktop .ast-primary-header::before,
	.ast-desktop .ast-primary-header-bar::before,
	.ast-desktop .main-header-bar::before {
		position: absolute;
		inset: 0;
		z-index: -1;
		content: "";
		background: var(--jssx-header-solid);
		transform: scaleX(0);
		transform-origin: center;
		transition: transform var(--jssx-header-transition);
		will-change: transform;
	}

	.ast-desktop .ast-primary-header:hover,
	.ast-desktop .ast-primary-header:focus-within,
	.ast-desktop .ast-primary-header.hs-dropdown-active,
	.ast-desktop .ast-primary-header-bar:hover,
	.ast-desktop .ast-primary-header-bar:focus-within,
	.ast-desktop .ast-primary-header-bar.hs-dropdown-active,
	.ast-desktop .main-header-bar:hover,
	.ast-desktop .main-header-bar:focus-within,
	.ast-desktop .main-header-bar.hs-dropdown-active {
		background-color: transparent !important;
		box-shadow: none;
	}

	.ast-desktop .ast-primary-header.hs-dropdown-active,
	.ast-desktop .ast-primary-header-bar.hs-dropdown-active,
	.ast-desktop .main-header-bar.hs-dropdown-active {
		box-shadow: 0 14px 18px -12px rgba(4, 18, 32, 0.46);
	}

	.ast-desktop .ast-primary-header:hover::before,
	.ast-desktop .ast-primary-header:focus-within::before,
	.ast-desktop .ast-primary-header.hs-dropdown-active::before,
	.ast-desktop .ast-primary-header-bar:hover::before,
	.ast-desktop .ast-primary-header-bar:focus-within::before,
	.ast-desktop .ast-primary-header-bar.hs-dropdown-active::before,
	.ast-desktop .main-header-bar:hover::before,
	.ast-desktop .main-header-bar:focus-within::before,
	.ast-desktop .main-header-bar.hs-dropdown-active::before {
		transform: scaleX(1);
	}

	.ast-desktop .ast-builder-grid-row-container,
	.ast-desktop .ast-builder-grid-row,
	.ast-desktop .site-header-section {
		position: relative;
		z-index: 1;
	}

	.ast-desktop .main-header-menu,
	.ast-desktop .ast-builder-menu-1 .main-header-menu {
		position: relative;
		z-index: 10020;
		display: inline-flex;
		align-items: center;
		gap: 8px;
		min-height: 72px;
		padding: 0 18px 0 30px;
		/* border-radius: 10px;
		background: var(--jssx-menu-pill-bg);
		box-shadow: var(--jssx-menu-shadow);
		backdrop-filter: saturate(140%) blur(10px); */
		transition: background-color var(--jssx-header-transition);
	}

	.ast-desktop .ast-builder-menu-1 .main-header-menu:hover {
		background: #fff;
	}

	.ast-desktop .main-header-menu > .menu-item {
		display: flex;
		align-items: center;
		min-height: 72px;
	}

	.ast-desktop .main-header-menu > .menu-item > a,
	.ast-desktop .main-header-menu > .menu-item > .menu-link,
	.ast-desktop .ast-builder-menu-1 .menu-item > .menu-link {
		position: relative;
		display: inline-flex;
		align-items: center;
		min-height: 72px;
		padding: 0 18px !important;
		color: var(--jssx-menu-text) !important;
		font-size: 18px !important;
		font-weight: 650;
		line-height: 1;
		letter-spacing: 0;
		text-transform: none;
		white-space: nowrap;
		transition: color 0.18s ease, transform 0.18s ease;
	}

	.ast-desktop .main-header-menu > .menu-item:hover > a,
	.ast-desktop .main-header-menu > .menu-item:hover > .menu-link,
	.ast-desktop .main-header-menu > .menu-item.hs-menu-item-active > a,
	.ast-desktop .main-header-menu > .menu-item.hs-menu-item-active > .menu-link,
	.ast-desktop .main-header-menu > .current-menu-item > a,
	.ast-desktop .main-header-menu > .current-menu-item > .menu-link {
		color: var(--jssx-menu-text-hover) !important;
	}

	.ast-desktop .main-header-menu > .menu-item > a > .dropdown-menu-toggle,
	.ast-desktop .main-header-menu > .menu-item > .menu-link > .dropdown-menu-toggle {
		display: none;
	}

	/* Contact button inside the menu pill. */
	/* .ast-desktop .main-header-menu > .menu-item > a[href*="contact" i],
	.ast-desktop .main-header-menu > .menu-item > .menu-link[href*="contact" i] {
		min-width: 170px;
		min-height: 56px;
		justify-content: center;
		margin-left: 10px;
		padding: 0 32px !important;
		border-radius: 999px;
		background: linear-gradient(90deg, var(--jssx-contact-green), var(--jssx-contact-cyan));
		color: #fff !important;
		font-size: 17px !important;
		font-weight: 800;
		box-shadow: 0 10px 22px rgba(24, 191, 229, 0.22);
	} */

	/* .ast-desktop .main-header-menu > .menu-item > a[href*="contact" i]:hover,
	.ast-desktop .main-header-menu > .menu-item > .menu-link[href*="contact" i]:hover {
		color: #fff !important;
		transform: translateY(-1px);
	} */

	/* Keep the existing mega/dropdown behavior, but let it open from the rounded menu. */
	.ast-desktop .main-header-menu > .menu-item-has-children > .mega-inner {
		display: block !important;
		position: fixed !important;
		top: 80px !important;
		z-index: 10000;
		right: auto !important;
		left: 0 !important;
		width: 100vw !important;
		max-width: none !important;
		margin-left: 0 !important;
		padding: 30px 0 30px !important;
		border-radius: 0 !important;
		background: #fff !important;
		box-shadow: 0 18px 34px rgba(4, 18, 32, 0.1);
			overflow: hidden;
			visibility: hidden;
			opacity: 0;
			pointer-events: none;
			transform: translate3d(0, -10px, 0) scaleY(0.98);
			transform-origin: top center;
			transition:
				opacity 0.2s ease,
				transform 0.26s cubic-bezier(0.22, 1, 0.36, 1),
				visibility 0s linear 0.26s;
			will-change: transform, opacity;
		}

	.ast-desktop .main-header-menu > .menu-item-has-children:hover > .mega-inner,
	.ast-desktop .main-header-menu > .menu-item-has-children:focus-within > .mega-inner,
	.ast-desktop .main-header-menu > .menu-item-has-children.hs-menu-item-active > .mega-inner,
	.ast-desktop .main-header-menu > .menu-item-has-children.open > .mega-inner {
			visibility: visible;
			opacity: 1;
			pointer-events: auto;
			transform: translate3d(0, 0, 0) scaleY(1);
			transition:
				opacity 0.18s ease,
				transform 0.26s cubic-bezier(0.22, 1, 0.36, 1),
				visibility 0s linear 0s;
			}

	.ast-desktop .main-header-menu > .menu-item-has-children > .mega-inner .mega-container {
		width: min(1400px, calc(100vw - 40px));
		max-width: 1400px;
		margin-right: auto;
		margin-left: auto;
		padding-top: 0 !important;
		gap: clamp(56px, 6vw, 96px) !important;
		grid-template-columns: 280px minmax(0, 1fr) !important;
	}

	.ast-desktop .main-header-menu > .jssx-products-menu > .mega-inner {
		padding-top: 36px !important;
		padding-bottom: 36px !important;
	}

	.ast-desktop .main-header-menu > .jssx-products-menu > .mega-inner .mega-container {
		display: block;
		width: min(1440px, calc(100vw - 40px));
		line-height: normal;
	}

	.ast-desktop .jssx-products-menu .mega-product-overview {
		min-width: 0;
	}

	.ast-desktop .jssx-products-menu .mega-product-groups {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
		gap: 36px;
	}

	.ast-desktop .jssx-products-menu .mega-product-group {
		min-width: 0;
	}

	.ast-desktop .jssx-products-menu .mega-product-heading-row {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 16px;
		margin-bottom: 16px;
	}

	.ast-desktop .jssx-products-menu .mega-product-heading {
		position: relative;
		padding-left: 30px;
		line-height: normal;
	}

	.ast-desktop .jssx-products-menu .mega-product-icon {
		position: absolute;
		top: 50%;
		left: 0;
		width: 21px;
		height: 21px;
		color: #1764e8;
		stroke: currentColor;
		stroke-linecap: round;
		stroke-linejoin: round;
		stroke-width: 1.6;
		transform: translateY(-50%);
	}

	.ast-desktop .jssx-products-menu .mega-product-heading > a,
	.ast-desktop .jssx-products-menu .mega-product-heading > .menu-link {
		display: inline-flex;
		height: auto !important;
		min-height: 0 !important;
		padding: 0 !important;
		color: #1b2732 !important;
		font-size: 16px;
		font-weight: 650;
		line-height: 1.3 !important;
		text-decoration: none;
	}

	.ast-desktop .jssx-products-menu .mega-product-heading > a::after,
	.ast-desktop .jssx-products-menu .mega-product-heading > .menu-link::after,
	.ast-desktop .jssx-products-menu .mega-product-heading .ast-icon,
	.ast-desktop .jssx-products-menu .mega-product-heading .dropdown-menu-toggle {
		display: none !important;
		content: none !important;
	}

	.ast-desktop .jssx-products-menu .mega-product-more {
		flex: 0 0 auto;
		color: #66727d !important;
		font-size: 13px;
		font-weight: 500;
		line-height: 1.3;
		text-decoration: none;
	}

	.ast-desktop .jssx-products-menu .mega-product-more::after {
		display: inline-block;
		margin-left: 6px;
		content: ">";
		transition: transform 0.18s ease;
	}

	.ast-desktop .jssx-products-menu .mega-product-more:hover {
		color: #1764e8 !important;
	}

	.ast-desktop .jssx-products-menu .mega-product-more:hover::after {
		transform: translateX(3px);
	}

	.ast-desktop .jssx-products-menu .mega-left-item {
		border-left: 0;
		border-radius: 0;
		background: transparent;
	}

	.ast-desktop .jssx-products-menu .mega-left-item > a,
	.ast-desktop .jssx-products-menu .mega-left-item > .menu-link {
		height: auto !important;
		min-height: 38px !important;
		padding: 8px 14px !important;
		border-radius: 0;
		font-size: 15px !important;
		line-height: 1.35 !important;
	}

	.ast-desktop .jssx-products-menu .mega-left-item:hover,
	.ast-desktop .jssx-products-menu .mega-left-item.active {
		border-left: 0;
		background: #f0f3f6;
	}

	.ast-desktop .jssx-products-menu .mega-left-item:hover > a,
	.ast-desktop .jssx-products-menu .mega-left-item.active > a,
	.ast-desktop .jssx-products-menu .mega-left-item:hover > .menu-link,
	.ast-desktop .jssx-products-menu .mega-left-item.active > .menu-link {
		color: #0078c0 !important;
	}

	.ast-desktop .mega-inner .mega-grid {
		gap: 24px 28px !important;
		justify-items: center;
	}

	.ast-desktop .jssx-products-menu .mega-grid {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-auto-rows: 1fr;
		gap: 16px !important;
	}

	.ast-desktop .mega-inner .mega-left-item > a,
	.ast-desktop .mega-inner .mega-left-item > .menu-link {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 14px;
		width: 100%;
		color: var(--ast-global-color-2, #233443);
	}

	.ast-desktop .mega-inner .mega-left-item > a::after,
	.ast-desktop .mega-inner .mega-left-item > .menu-link::after {
		flex: 0 0 auto;
		width: 8px;
		height: 8px;
		border-top: 2px solid currentColor;
		border-right: 2px solid currentColor;
		content: "";
		opacity: 0.62;
		transform: rotate(45deg);
		transition: opacity 0.18s ease, transform 0.18s ease;
	}

	.ast-desktop .mega-inner .mega-left-item:hover > a::after,
	.ast-desktop .mega-inner .mega-left-item:hover > .menu-link::after,
	.ast-desktop .mega-inner .mega-left-item.active > a::after,
	.ast-desktop .mega-inner .mega-left-item.active > .menu-link::after {
		opacity: 1;
		transform: translateX(3px) rotate(45deg);
	}

	.ast-desktop .mega-inner .product {
		display: flex;
		flex-direction: column;
		align-items: center;
		width: 100%;
		text-align: center;
	}

	.ast-desktop .mega-inner .product-thumb {
		width: 100%;
		aspect-ratio: 4 / 3;
		margin-top: 0 !important;
		padding: 14px;
		background: #fff !important;
		border-radius: 10px !important;
		box-shadow: none !important;
	}

	.ast-desktop .mega-inner .product-thumb img,
	.ast-desktop .mega-inner .product img {
		width: auto;
		max-width: 100%;
		height: auto;
		max-height: 100%;
		margin-right: auto;
		margin-left: auto;
		object-fit: contain;
	}

	.ast-desktop .mega-inner .product .product-title,
	.ast-desktop .mega-inner .product-title {
		width: 100%;
		text-align: center;
	}

	.ast-desktop .jssx-products-menu .product-copy {
		display: flex;
		flex-direction: column;
		gap: 2px;
		width: 100%;
	}

	.ast-desktop .jssx-products-menu .product-thumb {
		box-sizing: border-box;
		height: auto !important;
		aspect-ratio: 1 / 1;
		padding: 12px;
		background: transparent !important;
		border-radius: 18px !important;
	}

	.ast-desktop .jssx-products-menu .product-thumb img {
		width: 100%;
		height: 100%;
		border-radius: 18px;
		object-fit: contain;
	}

	.ast-desktop .jssx-products-menu .product .product-title {
		display: -webkit-box;
		min-height: 1.8em;
		overflow: hidden;
		padding: 0 4px;
		color: #1b2732;
		font-size: 13px;
		font-weight: 500;
		line-height: 1.4;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
	}

	.ast-desktop .jssx-products-menu .product .product-subtitle {
		display: -webkit-box;
		overflow: hidden;
		padding: 0 4px;
		color: #71808c;
		font-size: 12px;
		font-weight: 400;
		line-height: 1.35;
		text-align: center;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
	}

	.ast-desktop .jssx-products-menu .mega-product-grid .product {
		box-sizing: border-box;
		justify-content: flex-start;
		gap: 20px;
		height: auto;
		padding: 8px;
		border: 1px dashed transparent;
		background: #f8f8f8;
		transition: transform 0.2s ease, border-color 0.2s ease;
	}

	.ast-desktop .jssx-products-menu .mega-product-grid .product:hover {
		border-color: #1764e8;
		transform: translateY(-3px);
	}

	/* Energy Operations: compact icon links with the same interaction language
	 * as Product Center cards. */
	.ast-desktop .jssx-ems-menu .mega-container.only-second-level {
		width: min(1120px, calc(100vw - 40px));
	}

	.ast-desktop .jssx-ems-menu .mega-container.only-second-level .mega-left-list {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 24px;
	}

	.ast-desktop .jssx-ems-menu .mega-container.only-second-level .mega-left-item {
		position: relative;
		display: flex !important;
		box-sizing: border-box;
		align-items: center;
		justify-content: center;
		gap: 14px;
		width: auto !important;
		min-height: 72px;
		margin: 0;
		padding: 14px 20px !important;
		border: 1px dashed transparent !important;
		border-radius: 8px;
		background: #fff;
		text-align: left;
		transition: transform 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
	}

	.ast-desktop .jssx-ems-menu .mega-container.only-second-level .mega-left-item:not(:last-child)::after {
		position: absolute;
		top: 50%;
		right: -13px;
		width: 1px;
		height: 30px;
		background: #d7dce2;
		content: "";
		transform: translateY(-50%);
	}

	.ast-desktop .jssx-ems-menu .mega-container.only-second-level .mega-left-item:hover,
	.ast-desktop .jssx-ems-menu .mega-container.only-second-level .mega-left-item.active,
	.ast-desktop .jssx-ems-menu .mega-container.only-second-level .mega-left-item.current-menu-item,
	.ast-desktop .jssx-ems-menu .mega-container.only-second-level .mega-left-item.current_page_item {
		border: 1px dashed #1764e8 !important;
		background: #fff;
		transform: translateY(-3px);
	}

	.ast-desktop .jssx-ems-menu .mega-product-icon {
		flex: 0 0 30px;
		width: 30px;
		height: 30px;
		color: #1764e8;
		stroke: currentColor;
		stroke-linecap: round;
		stroke-linejoin: round;
		stroke-width: 1.6;
	}

	.ast-desktop .jssx-ems-menu .mega-left-item > a,
	.ast-desktop .jssx-ems-menu .mega-left-item > .menu-link {
		flex: 0 1 auto;
		justify-content: flex-start;
		width: auto !important;
		height: auto !important;
		min-height: 0 !important;
		padding: 0 !important;
		color: #1b2732 !important;
		font-size: 16px !important;
		font-weight: 650;
		line-height: 1.35 !important;
		transform: none !important;
	}

	/* Keep the native link as the interactive element while expanding its hit
	 * area to the full Energy Operations card (icon, label and whitespace). */
	.ast-desktop .jssx-ems-menu .mega-left-item > a::before,
	.ast-desktop .jssx-ems-menu .mega-left-item > .menu-link::before {
		position: absolute;
		z-index: 1;
		inset: 0;
		content: "";
	}

	.ast-desktop .jssx-ems-menu .mega-left-item > a::after,
	.ast-desktop .jssx-ems-menu .mega-left-item > .menu-link::after,
	.ast-desktop .jssx-ems-menu .mega-left-item .ast-icon,
	.ast-desktop .jssx-ems-menu .mega-left-item .dropdown-menu-toggle {
		display: none !important;
		content: none !important;
	}

	.ast-desktop .jssx-ems-menu .mega-left-item:hover > a,
	.ast-desktop .jssx-ems-menu .mega-left-item.active > a,
	.ast-desktop .jssx-ems-menu .mega-left-item.current-menu-item > a,
	.ast-desktop .jssx-ems-menu .mega-left-item.current_page_item > a {
		color: #1764e8 !important;
	}

	@media (max-width: 860px) {
		.ast-desktop .jssx-ems-menu .mega-container.only-second-level .mega-left-list {
			grid-template-columns: 1fr;
		}

		.ast-desktop .jssx-ems-menu .mega-container.only-second-level .mega-left-item::after {
			display: none;
		}
	}

	.ast-desktop .main-header-menu > .menu-item-has-children > .sub-menu {
		display: block !important;
		position: fixed !important;
		top: 80px !important;
		z-index: 10000;
		right: auto !important;
		left: 0 !important;
		width: 100vw !important;
		max-width: none !important;
		margin-left: 0 !important;
		border-radius: 0 !important;
			background: #fff !important;
			box-shadow: 0 18px 34px rgba(4, 18, 32, 0.1);
			visibility: hidden;
			opacity: 0;
			pointer-events: none;
			transform: translate3d(0, -10px, 0) scaleY(0.98);
			transform-origin: top center;
			transition:
				opacity 0.2s ease,
				transform 0.26s cubic-bezier(0.22, 1, 0.36, 1),
				visibility 0s linear 0.26s;
			will-change: transform, opacity;
		}

	.ast-desktop .main-header-menu > .menu-item-has-children:hover > .sub-menu,
	.ast-desktop .main-header-menu > .menu-item-has-children:focus-within > .sub-menu,
	.ast-desktop .main-header-menu > .menu-item-has-children.hs-menu-item-active > .sub-menu {
			visibility: visible;
			opacity: 1;
			pointer-events: auto;
			transform: translate3d(0, 0, 0) scaleY(1);
			transition:
				opacity 0.18s ease,
				transform 0.26s cubic-bezier(0.22, 1, 0.36, 1),
				visibility 0s linear 0s;
		}
}

@media (min-width: 1025px) and (max-width: 1240px) {
	.ast-desktop .main-header-menu,
	.ast-desktop .ast-builder-menu-1 .main-header-menu {
		gap: 2px;
		padding-right: 12px;
		padding-left: 18px;
	}

	.ast-desktop .main-header-menu > .menu-item > a,
	.ast-desktop .main-header-menu > .menu-item > .menu-link {
		padding: 0 11px !important;
		font-size: 15px !important;
	}

	.ast-desktop .main-header-menu > .menu-item > a[href*="contact" i],
	.ast-desktop .main-header-menu > .menu-item > .menu-link[href*="contact" i] {
		min-width: 128px;
		padding: 0 22px !important;
	}
}

/* Astra header dropdown menu fix. Keep this desktop-only so Astra mobile menu behavior stays intact. */
.main-header-menu .menu-item,
.ast-builder-menu .menu-item {
	position: relative;
}

@media (min-width: 922px) {
	.ast-desktop .main-header-menu > .menu-item-has-children,
	.ast-desktop .ast-builder-menu .main-header-menu > .menu-item-has-children,
	.ast-desktop .ast-builder-menu .menu-item-has-children {
		position: relative;
	}

	.ast-desktop .main-header-menu > .menu-item-has-children > .sub-menu,
	.ast-desktop .ast-builder-menu .menu-item-has-children > .sub-menu,
	.ast-desktop .main-header-menu > .menu-item-has-children > .mega-inner,
	.ast-desktop .ast-builder-menu .menu-item-has-children > .mega-inner {
			display: block;
			visibility: hidden;
			opacity: 0;
			pointer-events: none;
			transform: translate3d(0, -10px, 0) scaleY(0.98);
			transform-origin: top center;
			margin-top: 0 !important;
			z-index: 99999;
			transition:
				opacity 0.2s ease,
				transform 0.26s cubic-bezier(0.22, 1, 0.36, 1),
				visibility 0s linear 0.26s;
			will-change: transform, opacity;
		}

	.ast-desktop .main-header-menu > .menu-item-has-children:hover > .sub-menu,
	.ast-desktop .main-header-menu > .menu-item-has-children:focus-within > .sub-menu,
	.ast-desktop .main-header-menu > .menu-item-has-children.hs-menu-item-active > .sub-menu,
	.ast-desktop .ast-builder-menu .menu-item-has-children:hover > .sub-menu,
	.ast-desktop .ast-builder-menu .menu-item-has-children:focus-within > .sub-menu,
	.ast-desktop .ast-builder-menu .menu-item-has-children.hs-menu-item-active > .sub-menu,
	.ast-desktop .main-header-menu > .menu-item-has-children:hover > .mega-inner,
	.ast-desktop .main-header-menu > .menu-item-has-children:focus-within > .mega-inner,
	.ast-desktop .main-header-menu > .menu-item-has-children.hs-menu-item-active > .mega-inner,
	.ast-desktop .main-header-menu > .menu-item-has-children.open > .mega-inner,
	.ast-desktop .ast-builder-menu .menu-item-has-children:hover > .mega-inner,
	.ast-desktop .ast-builder-menu .menu-item-has-children:focus-within > .mega-inner,
	.ast-desktop .ast-builder-menu .menu-item-has-children.hs-menu-item-active > .mega-inner,
	.ast-desktop .ast-builder-menu .menu-item-has-children.open > .mega-inner {
			visibility: visible;
			opacity: 1;
			pointer-events: auto;
			transform: translate3d(0, 0, 0) scaleY(1);
			transition:
				opacity 0.18s ease,
				transform 0.26s cubic-bezier(0.22, 1, 0.36, 1),
				visibility 0s linear 0s;
		}

	.ast-desktop .main-header-menu > .menu-item-has-children::after,
	.ast-desktop .ast-builder-menu .main-header-menu > .menu-item-has-children::after {
		position: absolute;
		top: 100%;
		right: 0;
		left: 0;
		z-index: 10001;
		height: 16px;
		content: "";
		pointer-events: auto;
	}

	.ast-desktop .site-header::after {
		position: fixed;
		top: var(--jssx-dropdown-top, 80px);
		right: 0;
		left: 0;
		z-index: 9998;
		height: 28px;
		content: "";
		pointer-events: none;
	}

	body.ast-desktop.is-header-hover .site-header::after {
		pointer-events: auto;
	}

	.ast-desktop .main-header-menu > .menu-item-has-children > a::after,
	.ast-desktop .main-header-menu > .menu-item-has-children > .menu-link::after,
	.ast-desktop .ast-builder-menu .main-header-menu > .menu-item-has-children > a::after,
	.ast-desktop .ast-builder-menu .main-header-menu > .menu-item-has-children > .menu-link::after {
		display: inline-block;
		width: 6px;
		height: 6px;
		margin-left: 7px;
		border-right: 1.5px solid currentColor;
		border-bottom: 1.5px solid currentColor;
		content: "";
		transform: rotate(45deg) translateY(-2px);
		transition: transform 0.22s ease;
	}

	.ast-desktop .main-header-menu > .menu-item-has-children:hover > a::after,
	.ast-desktop .main-header-menu > .menu-item-has-children:focus-within > a::after,
	.ast-desktop .main-header-menu > .menu-item-has-children.hs-menu-item-active > a::after,
	.ast-desktop .main-header-menu > .menu-item-has-children:hover > .menu-link::after,
	.ast-desktop .main-header-menu > .menu-item-has-children:focus-within > .menu-link::after,
	.ast-desktop .main-header-menu > .menu-item-has-children.hs-menu-item-active > .menu-link::after,
	.ast-desktop .ast-builder-menu .main-header-menu > .menu-item-has-children:hover > a::after,
	.ast-desktop .ast-builder-menu .main-header-menu > .menu-item-has-children:focus-within > a::after,
	.ast-desktop .ast-builder-menu .main-header-menu > .menu-item-has-children.hs-menu-item-active > a::after,
	.ast-desktop .ast-builder-menu .main-header-menu > .menu-item-has-children:hover > .menu-link::after,
	.ast-desktop .ast-builder-menu .main-header-menu > .menu-item-has-children:focus-within > .menu-link::after,
	.ast-desktop .ast-builder-menu .main-header-menu > .menu-item-has-children.hs-menu-item-active > .menu-link::after {
		transform: rotate(225deg) translateY(-1px);
	}

	.ast-desktop .main-header-menu .sub-menu,
	.ast-desktop .ast-builder-menu .sub-menu,
	.ast-desktop .main-header-menu .mega-inner,
	.ast-desktop .ast-builder-menu .mega-inner {
		box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);
	}

	.ast-desktop .main-header-menu .sub-menu a,
	.ast-desktop .ast-builder-menu .sub-menu a,
	.ast-desktop .main-header-menu .mega-inner a,
	.ast-desktop .ast-builder-menu .mega-inner a {
		white-space: nowrap;
	}
}

/*
 * Footer height reset.
 * Astra customizer output currently forces the primary footer to 600px tall,
 * which leaves a large empty band above the footer widgets on every page.

.site-primary-footer-wrap[data-section="section-primary-footer-builder"] {
	min-height: 0 !important;
	align-content: flex-start !important;
	grid-template-rows: max-content !important;
}

.site-primary-footer-wrap[data-section="section-primary-footer-builder"] .ast-builder-grid-row {
	height: auto !important;
	min-height: max-content !important;
	align-items: flex-start !important;
}
 */
