/* Mega Menu Plus — desktop layout (loaded above the mobile breakpoint). */

li.mmp-mega {
	position: relative;
}
li.mmp-mega.mmp-caret > a {
	padding-inline-end: 1.9em;
}
li.mmp-mega.mmp-caret > .mmp-toggle {
	display: inline-flex;
}

/* ---------- Panel ---------- */
li.mmp-mega > ul.sub-menu {
	display: grid !important;
	position: absolute !important;
	z-index: 99999;
	top: 100% !important;
	left: var(--mmp-left, 0) !important;
	right: auto !important;
	width: var(--mmp-w, 760px) !important;
	min-width: 0 !important;
	max-width: none !important;
	height: auto !important;
	margin: var(--mmp-offset, 10px) 0 0 !important;
	padding: var(--mmp-pad, 22px) var(--mmp-pad-x, var(--mmp-pad, 22px)) !important;
	box-sizing: border-box;
	list-style: none;
	background: var(--mmp-panel-bg, #fff);
	border: 1px solid var(--mmp-border, #e2e8f0);
	border-radius: var(--mmp-radius, 16px);
	box-shadow: var(--mmp-shadow, none);
	color: var(--mmp-text, #475569);
	gap: var(--mmp-gap, 4px) 20px;
	grid-auto-flow: column;
	grid-template-columns: repeat(var(--mmp-cols, 3), minmax(0, 1fr));
	grid-template-rows: repeat(var(--mmp-rows, 1), auto);
	align-content: start;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity var(--mmp-speed, 180ms) ease, transform var(--mmp-speed, 180ms) ease, visibility 0s linear var(--mmp-speed, 180ms);
}

/* Invisible bridge so the pointer can cross the gap. */
li.mmp-mega > ul.sub-menu::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: calc(var(--mmp-offset, 10px) * -1 - 1px);
	height: calc(var(--mmp-offset, 10px) + 1px);
}

li.mmp-mega.mmp-anim-slide > ul.sub-menu { transform: translateY(10px); }
li.mmp-mega.mmp-anim-scale > ul.sub-menu { transform: scale(.97); transform-origin: top center; }
li.mmp-mega.mmp-anim-none  > ul.sub-menu { transition: none; }

li.mmp-mega.mmp-open > ul.sub-menu {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: none;
	transition-delay: 0s;
}

/* Fallback when JavaScript is unavailable. */
html:not(.mmp-js) li.mmp-mega:hover > ul.sub-menu,
html:not(.mmp-js) li.mmp-mega:focus-within > ul.sub-menu {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: none;
	transition-delay: 0s;
}

/* Grouped panels: sub-items with their own children become columns. */
li.mmp-mega.mmp-grouped > ul.sub-menu {
	grid-auto-flow: row;
	grid-template-rows: none;
	align-items: start;
	row-gap: 22px;
	column-gap: 28px;
}

/* ---------- Items ---------- */
li.mmp-mega > ul.sub-menu li {
	display: block;
	float: none;
	position: static;
	width: auto;
	margin: 0 !important;
	padding: 0 !important;
	border: 0;
	background: none;
	list-style: none;
}

li.mmp-mega ul.sub-menu a {
	display: flex !important;
	align-items: center;
	gap: 12px;
	position: relative;
	width: auto;
	margin: 0;
	padding: 9px 10px !important;
	border: 0;
	border-radius: calc(var(--mmp-radius, 16px) * .6);
	background: transparent;
	color: var(--mmp-link, #0f172a);
	font-size: var(--mmp-link-size, 15px);
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
	text-transform: none;
	letter-spacing: 0;
	white-space: normal;
	transition: background-color .15s ease, color .15s ease;
}
li.mmp-mega ul.sub-menu a::after,
li.mmp-mega ul.sub-menu a::before {
	content: none;
}
li.mmp-mega ul.sub-menu a:hover,
li.mmp-mega ul.sub-menu a:focus {
	background: var(--mmp-hover-bg, #f1f2ff);
	color: var(--mmp-link-hover, #4338ca);
}
li.mmp-mega ul.sub-menu a:hover .mmp-icon--panel,
li.mmp-mega ul.sub-menu a:focus .mmp-icon--panel {
	transform: scale(1.06);
}
li.mmp-mega ul.sub-menu a:focus-visible {
	outline: 2px solid var(--mmp-accent, #4338ca);
	outline-offset: -2px;
}
li.mmp-mega ul.sub-menu li.current-menu-item > a,
li.mmp-mega ul.sub-menu li.current-menu-ancestor > a {
	color: var(--mmp-accent, #4338ca);
}

/* Nested lists inside a grouped panel are always visible and unstyled. */
li.mmp-mega > ul.sub-menu > li > ul.sub-menu {
	position: static !important;
	display: block !important;
	width: auto !important;
	margin: 4px 0 0 !important;
	padding: 0 !important;
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
	transform: none !important;
	background: none !important;
	border: 0 !important;
	box-shadow: none !important;
}

/* Group headings. */
li.mmp-mega.mmp-grouped > ul.sub-menu > li.menu-item-has-children > a,
li.mmp-mega ul.sub-menu li.mmp-heading > a {
	margin-bottom: 2px;
	padding: 4px 10px 10px !important;
	border-radius: 0;
	border-bottom: 1px solid var(--mmp-border, #e2e8f0);
	background: transparent;
	color: var(--mmp-heading, #64748b);
	font-size: calc(var(--mmp-link-size, 15px) - 2px);
	font-weight: 700;
}
li.mmp-mega.mmp-grouped > ul.sub-menu > li.menu-item-has-children > a:hover,
li.mmp-mega ul.sub-menu li.mmp-heading > a:hover {
	background: transparent;
	color: var(--mmp-link-hover, #4338ca);
}

/* ---------- Layout: tiles ---------- */
li.mmp-mega.mmp-layout-tiles ul.sub-menu a {
	flex-direction: column;
	justify-content: center;
	gap: 10px;
	padding: 18px 10px 14px !important;
	border: 1px solid var(--mmp-border, #e2e8f0);
	text-align: center;
}
li.mmp-mega.mmp-layout-tiles ul.sub-menu a:hover,
li.mmp-mega.mmp-layout-tiles ul.sub-menu a:focus {
	border-color: var(--mmp-accent, #4338ca);
}
li.mmp-mega.mmp-layout-tiles ul.sub-menu .mmp-badge {
	position: absolute;
	top: 8px;
	inset-inline-end: 8px;
	margin: 0;
}
li.mmp-mega.mmp-layout-tiles > ul.sub-menu {
	gap: 12px;
}

/* ---------- Layout: compact list ---------- */
li.mmp-mega.mmp-layout-list {
	--mmp-icon-size: 26px;
}
li.mmp-mega.mmp-layout-list ul.sub-menu a {
	gap: 10px;
	padding: 7px 10px !important;
	font-weight: 500;
}

@media (prefers-reduced-motion: reduce) {
	li.mmp-mega > ul.sub-menu,
	li.mmp-mega ul.sub-menu a,
	.mmp-icon--panel {
		transition: none !important;
	}
}

/* Headings stay flat even in the tiles layout. */
li.mmp-mega.mmp-layout-tiles.mmp-grouped > ul.sub-menu > li.menu-item-has-children > a,
li.mmp-mega.mmp-layout-tiles ul.sub-menu li.mmp-heading > a {
	flex-direction: row;
	justify-content: flex-start;
	border-width: 0 0 1px;
	text-align: start;
}
