.has-mega-menu { position: relative; }

/* Disable mega on mobile / tablet: hide the mega dropdown and let the theme's
   normal submenu behave again so links stay reachable. */
@media (max-width: 768px) {
	.has-mega-menu.mm-hide-mobile > .mega-menu-dropdown,
	.has-mega-menu.mm-hide-mobile > .mega-fake-submenu { display: none !important; }
	.has-mega-menu.mm-hide-mobile > .sub-menu,
	.has-mega-menu.mm-hide-mobile > ul.sub-menu,
	.has-mega-menu.mm-hide-mobile > .children { display: revert !important; }
}
@media (min-width: 769px) and (max-width: 1024px) {
	.has-mega-menu.mm-hide-tablet > .mega-menu-dropdown,
	.has-mega-menu.mm-hide-tablet > .mega-fake-submenu { display: none !important; }
	.has-mega-menu.mm-hide-tablet > .sub-menu,
	.has-mega-menu.mm-hide-tablet > ul.sub-menu,
	.has-mega-menu.mm-hide-tablet > .children { display: revert !important; }
}

.has-mega-menu > .sub-menu,
.has-mega-menu > ul.sub-menu,
.has-mega-menu > .children,
.has-mega-menu > .mega-fake-submenu { display: none !important; }

.has-mega-menu > .mega-menu-dropdown {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 9999;
	padding: 24px;
	overflow-y: auto;
	overflow-x: hidden;
}

.has-mega-menu > .mega-menu-dropdown.mega-full {
	position: absolute !important;
	top: 100% !important;
	width: 100vw !important;
	min-width: 100vw !important;
	max-width: 100vw !important;
	padding: 28px 60px !important;
}

.has-mega-menu > .mega-menu-dropdown::-webkit-scrollbar { width: 8px; }
.has-mega-menu > .mega-menu-dropdown::-webkit-scrollbar-track { background: rgba(0,0,0,0.04); }
.has-mega-menu > .mega-menu-dropdown::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.25); border-radius: 4px; }
.has-mega-menu > .mega-menu-dropdown::-webkit-scrollbar-thumb:hover { background: rgba(0,0,0,0.4); }
.has-mega-menu > .mega-menu-dropdown { scrollbar-width: thin; scrollbar-color: rgba(0,0,0,0.25) rgba(0,0,0,0.04); }

.has-mega-menu > a .sub-arrow ~ .sub-arrow,
.has-mega-menu > a > svg ~ svg,
.has-mega-menu > a > .e-font-icon-svg ~ .e-font-icon-svg {
	display: none !important;
}

/* Desktop only: open on hover/focus. On mobile/tablet the JS click-toggle
   controls it, so :hover/:focus-within must NOT force it open (would stick). */
@media (min-width: 1025px) {
	.has-mega-menu:hover > .mega-menu-dropdown,
	.has-mega-menu:focus-within > .mega-menu-dropdown { display: block !important; }
}

.mega-menu-inner {
	display: flex !important;
	gap: 32px !important;
}

/* Full-width dropdown with a constrained, centered inner row. */
.mega-menu-dropdown.mega-full .mega-menu-inner,
.mega-menu-dropdown.mega-full .mega-menu-main-heading {
	max-width: var(--mm-inner-w, 1250px) !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

.mega-menu-column {
	flex: 1 !important;
	min-width: 120px !important;
}

.mega-menu-dropdown .mega-menu-column:only-child .mega-menu-links {
	display: grid !important;
	grid-template-columns: repeat(var(--mm-cols, 4), 1fr) !important;
	gap: 4px 24px !important;
}

.mega-menu-heading {
	font-size: var(--mm-h-fs, 13px) !important;
	font-weight: 700 !important;
	margin: 0 0 var(--mm-h-gap, 10px) 0 !important;
	padding-bottom: 8px !important;
	border-bottom: 2px solid rgba(0,0,0,0.07) !important;
	display: block !important;
	text-transform: uppercase !important;
	letter-spacing: 0.04em !important;
}

.mega-menu-dropdown.mega-no-divider .mega-menu-heading {
	border-bottom: none !important;
	padding-bottom: 0 !important;
}

.mega-menu-heading a { text-decoration: none !important; }
.mega-menu-heading a:hover { opacity: 0.75 !important; }

.mega-menu-links {
	display: block !important;
	padding: 0 !important;
	margin: 0 !important;
}

.mega-menu-link {
	display: block !important;
	text-decoration: none !important;
	padding: 5px 0 !important;
	margin: 0 !important;
	transition: opacity 0.15s ease, padding-left 0.15s ease !important;
	line-height: 1.5 !important;
}

.mega-menu-link:hover {
	opacity: 0.65 !important;
	padding-left: 4px !important;
}

/* Touch devices: no sticky hover state. */
@media (hover: none) {
	.mega-menu-link:hover { opacity: 1 !important; padding-left: 0 !important; }
}

/* ---- Icons (Dashicons) ---- */
.mega-menu-dropdown .mega-icon {
	color: var(--mm-icon, #f59e0b) !important;
	vertical-align: middle !important;
	line-height: 1 !important;
}

.mega-menu-link {
	display: flex !important;
	align-items: center !important;
	gap: 6px !important;
}
.mega-menu-link .mega-icon {
	font-size: 16px !important;
	width: 16px !important;
	height: 16px !important;
	flex: 0 0 auto !important;
}

.mega-menu-heading .mega-icon {
	font-size: 16px !important;
	width: 16px !important;
	height: 16px !important;
	margin-right: 6px !important;
}

/* ---- Main heading (spans full dropdown) ---- */
.mega-menu-main-heading {
	display: flex !important;
	align-items: center !important;
	gap: 10px !important;
	font-size: 18px !important;
	font-weight: 800 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.04em !important;
	margin: 0 0 18px 0 !important;
	width: 100% !important;
}
.mega-menu-main-heading .mega-icon {
	font-size: 24px !important;
	width: 24px !important;
	height: 24px !important;
}

/* ---- Promo column (icon + text, quote-style) ---- */
.mega-menu-column.mega-promo {
	display: flex !important;
	flex-direction: column !important;
	gap: 14px !important;
	justify-content: flex-start !important;
}
.mega-menu-column.mega-promo a { text-decoration: none !important; }
.mega-menu-column.mega-promo .mega-promo-icon {
	font-size: 48px !important;
	width: 48px !important;
	height: 48px !important;
}
.mega-menu-column.mega-promo .mega-promo-text {
	font-size: 18px !important;
	font-weight: 800 !important;
	line-height: 1.3 !important;
	display: block !important;
}

.mega-menu-column.mega-promo-center {
	align-items: center !important;
	text-align: center !important;
}
.mega-menu-column.mega-promo-right {
	align-items: flex-end !important;
	text-align: right !important;
}
.mega-menu-column.mega-promo-left {
	align-items: flex-start !important;
	text-align: left !important;
}

.mega-menu-column.mega-promo-vtop    { justify-content: flex-start !important; }
.mega-menu-column.mega-promo-vmiddle { justify-content: center !important; }
.mega-menu-column.mega-promo-vbottom { justify-content: flex-end !important; }

@media (max-width: 1024px) {
	.has-mega-menu > .mega-menu-dropdown.mega-full .mega-menu-column:only-child .mega-menu-links {
		grid-template-columns: repeat(min(var(--mm-cols, 4), 3), 1fr) !important;
	}
}

@media (max-width: 1024px) {
	.has-mega-menu > .mega-menu-dropdown,
	.has-mega-menu > .mega-menu-dropdown.mega-full {
		position: static !important;
		left: auto !important;
		right: auto !important;
		top: auto !important;
		transform: none !important;
		width: 100% !important;
		min-width: 0 !important;
		max-width: 100% !important;
		height: auto !important;
		max-height: none !important;
		overflow: visible !important;
		border: none !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		padding: 0 0 0 16px !important;
		background: transparent !important;
		margin-top: 6px !important;
	}
	.has-mega-menu > .mega-menu-dropdown .mega-menu-inner {
		display: block !important;
		gap: 0 !important;
	}
	.has-mega-menu > .mega-menu-dropdown .mega-menu-column,
	.has-mega-menu > .mega-menu-dropdown .mega-menu-column:only-child .mega-menu-links {
		display: block !important;
		grid-template-columns: none !important;
		min-width: 0 !important;
	}
	.has-mega-menu > .mega-menu-dropdown .mega-menu-link {
		padding: 8px 0 !important;
		font-size: 14px !important;
	}
	.has-mega-menu > .mega-menu-dropdown .mega-menu-heading {
		margin: 12px 0 6px !important;
		padding-bottom: 4px !important;
		border-bottom: none !important;
		font-size: 12px !important;
	}
	/* Optional: hide column headings on mobile to save space. */
	.has-mega-menu.mm-hide-headings-mobile > .mega-menu-dropdown .mega-menu-heading {
		display: none !important;
	}
	/* Tighten vertical gaps between stacked blocks on mobile. */
	.has-mega-menu > .mega-menu-dropdown .mega-menu-column { margin-bottom: 4px !important; }
	.has-mega-menu > .mega-menu-dropdown .mega-menu-column.mega-promo { gap: 6px !important; margin: 8px 0 !important; }
	.has-mega-menu > .mega-menu-dropdown .mega-menu-main-heading { margin: 6px 0 8px !important; }
}
