/* Neo Mega Menu. Desktop: a row of items with dropdowns and mega panels. Below the widget's
 * breakpoint mega-menu.js adds .ndet-mm--mobile: a hamburger opens a drawer where every
 * submenu or panel slides in over the level before it. */

.ndet-mm {
	--ndet-mm-speed: 0.28s;
	--ndet-mm-ease: cubic-bezier(0.22, 0.7, 0.2, 1);
	position: relative;
	color: inherit;
}
.ndet-mm ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.ndet-mm .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}
/* Themes and the Elementor kit style every button (Hello Elementor turns them pink on hover);
 * these selectors outrank them in every state. The widget's own button controls outrank these. */
.ndet-mm button[type="button"],
.ndet-mm button[type="button"]:hover,
.ndet-mm button[type="button"]:focus,
.ndet-mm button[type="button"]:active {
	font: inherit;
	color: inherit;
	background: none;
	border: 0;
	border-radius: 0;
	margin: 0;
	padding: 0;
	cursor: pointer;
	box-shadow: none;
	text-decoration: none;
	text-transform: none;
	letter-spacing: normal;
	min-height: 0;
	width: auto;
	transition: none;
}
.ndet-mm button:focus-visible,
.ndet-mm a:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}
/* The menu's own icons only (arrows, hamburger, close, back), not icons inside panel content or
 * the slide-out menu's extra content, which keep their own fill and stroke. :where() keeps this
 * rule as easy to override as before. */
.ndet-mm svg:not(:where(.ndet-mm__panel-inner svg, .ndet-mm__extra svg)) {
	width: 1em;
	height: 1em;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
	flex: none;
}

/* Icons picked in an Icons control (Font Awesome or uploaded SVG): filled, 1em wide. */
.ndet-mm .ndet-mm__ic {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}
.ndet-mm .ndet-mm__ic svg {
	width: 1em;
	height: auto;
	fill: currentColor;
	stroke: none;
}
.ndet-mm .ndet-mm__ai--d .ndet-mm__ic svg {
	height: 1em;
}
.ndet-mm__ai {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.ndet-mm__ai--m {
	display: none;
}
/* The built-in arrow's line thickness (Style → Menu items → Arrow line thickness). */
.ndet-mm .ndet-mm__ai > svg {
	stroke-width: var(--ndet-mm-arrow-stroke, 2);
}

.ndet-mm__row {
	position: relative;
	display: flex;
	align-items: center;
	gap: 0.3em;
	transition: color 0.15s, background-color 0.15s;
}
/* The whole item is clickable, padding included, not only its label: the link reaches over the
 * row. The arrow button sits above it and keeps working on its own. */
.ndet-mm .ndet-mm__row > .ndet-mm__link::after {
	content: "";
	position: absolute;
	inset: 0;
}
.ndet-mm__row > .ndet-mm__arrow {
	position: relative;
	z-index: 1;
}
/* Arrow tap area (Style → Menu items): a bigger invisible target centred on the arrow. 0 unless set. */
.ndet-mm__row > .ndet-mm__arrow::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: var(--ndet-mm-arrow-hit, 0px);
	height: var(--ndet-mm-arrow-hit, 0px);
	transform: translate(-50%, -50%);
}
.ndet-mm__link {
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
	color: inherit;
	text-decoration: none;
}
.ndet-mm .ndet-mm__row > .ndet-mm__link,
.ndet-mm .ndet-mm__row > .ndet-mm__link:hover,
.ndet-mm .ndet-mm__row > .ndet-mm__link:focus,
.ndet-mm .ndet-mm__row > .ndet-mm__link:visited,
.ndet-mm .ndet-mm__title > a,
.ndet-mm .ndet-mm__title > a:hover,
.ndet-mm .ndet-mm__title > a:visited {
	color: inherit;
	text-decoration: none;
}
.ndet-mm__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 0.85em;
	line-height: 1;
	transition: transform var(--ndet-mm-speed) var(--ndet-mm-ease);
}
/* Circle behind the arrow (Style → Hamburger menu): the shape, kept apart from the colour rule. */
.ndet-mm--m-round.ndet-mm--mobile .ndet-mm__row .ndet-mm__arrow {
	border-radius: 999px;
}

.ndet-mm__badge {
	display: inline-block;
	padding: 0.32em 0.55em;
	border-radius: 999px;
	font-size: 0.68em;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
	color: var(--ndet-mm-badge-color, #fff);
	background: var(--ndet-mm-badge-bg, #1d1d1f);
}

/* Hamburger button: hidden on desktop. */
.ndet-mm__toggle {
	display: none;
	align-items: center;
	gap: 0.55em;
	line-height: 1;
}
.ndet-mm .ndet-mm__toggle[type="button"] {
	padding: 8px;
}
.ndet-mm .ndet-mm__toggle--icon[type="button"] {
	min-width: 35px;
	min-height: 35px;
	justify-content: center;
	padding: 0;
}
.ndet-mm__toggle-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: var(--ndet-mm-toggle-icon, 16px);
	line-height: 1;
}
.ndet-mm__toggle-icon--open,
.ndet-mm__toggle[aria-expanded="true"] .ndet-mm__toggle-icon--closed {
	display: none;
}
.ndet-mm__toggle[aria-expanded="true"] .ndet-mm__toggle-icon--open {
	display: inline-flex;
}
.ndet-mm__burger {
	--b: var(--ndet-mm-burger, 24px);
	position: relative;
	display: block;
	width: var(--b);
	height: calc(var(--b) * 0.72);
}
.ndet-mm__burger span,
.ndet-mm__burger::before,
.ndet-mm__burger::after {
	content: "";
	position: absolute;
	left: 0;
	width: 100%;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
	transition: transform var(--ndet-mm-speed) var(--ndet-mm-ease), opacity 0.15s;
}
.ndet-mm__burger::before {
	top: 0;
}
.ndet-mm__burger span {
	top: calc(50% - 1px);
}
.ndet-mm__burger::after {
	bottom: 0;
}
.ndet-mm__overlay,
.ndet-mm__head {
	display: none;
}

/* ---------- Desktop ---------- */

.ndet-mm:not(.ndet-mm--mobile) .ndet-mm__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: var(--ndet-mm-justify, flex-start);
	gap: var(--ndet-mm-gap, 0);
}
.ndet-mm:not(.ndet-mm--mobile) .ndet-mm__item {
	position: relative;
}
/* Mega panels are placed against the whole menu, not their item. */
.ndet-mm:not(.ndet-mm--mobile) .ndet-mm__list > .ndet-mm__item.has-mega {
	position: static;
}
.ndet-mm:not(.ndet-mm--mobile) .ndet-mm__list > .ndet-mm__item > .ndet-mm__row {
	padding: 10px 14px;
}
.ndet-mm:not(.ndet-mm--mobile) .ndet-mm__list > .ndet-mm__item.is-open > .ndet-mm__row .ndet-mm__arrow {
	transform: rotate(180deg);
}
.ndet-mm--no-rotate:not(.ndet-mm--mobile) .ndet-mm__list > .ndet-mm__item.is-open > .ndet-mm__row .ndet-mm__arrow {
	transform: none;
}
/* Underline while open (Style → Menu items): under the label's text, or a bar along the item's
 * bottom edge that spans the label and arrow. */
.ndet-mm--line-text:not(.ndet-mm--mobile) .ndet-mm__list > .ndet-mm__item.is-open > .ndet-mm__row .ndet-mm__label {
	text-decoration: underline var(--ndet-mm-line-c);
	text-decoration-thickness: var(--ndet-mm-line-w, 3px);
	text-underline-offset: var(--ndet-mm-line-gap, 8px);
}
.ndet-mm--line-edge:not(.ndet-mm--mobile) .ndet-mm__list > .ndet-mm__item > .ndet-mm__row::after {
	content: "";
	position: absolute;
	left: var(--ndet-mm-line-inset, 0px);
	right: var(--ndet-mm-line-inset, 0px);
	bottom: var(--ndet-mm-line-gap, 0px);
	height: var(--ndet-mm-line-w, 3px);
	border-radius: 3px 3px 0 0;
	background: var(--ndet-mm-line-c);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.2s;
}
.ndet-mm--line-edge:not(.ndet-mm--mobile) .ndet-mm__list > .ndet-mm__item.is-open > .ndet-mm__row::after {
	opacity: 1;
}
.ndet-mm--no-arrows:not(.ndet-mm--mobile) .ndet-mm__arrow:not(:focus-visible) {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
}

.ndet-mm:not(.ndet-mm--mobile) .ndet-mm__sub,
.ndet-mm:not(.ndet-mm--mobile) .ndet-mm__panel {
	position: absolute;
	z-index: 1000;
	top: 100%;
	left: 0;
	background: #fff;
	color: #1d1d1f;
	box-shadow: 0 14px 40px rgba(17, 24, 39, 0.14);
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity 0.2s, transform 0.2s var(--ndet-mm-ease), visibility 0s linear 0.2s;
}
.ndet-mm:not(.ndet-mm--mobile) .is-open > .ndet-mm__sub,
.ndet-mm:not(.ndet-mm--mobile) .is-open > .ndet-mm__panel {
	opacity: 1;
	visibility: visible;
	transform: none;
	transition-delay: 0s;
}
.ndet-mm:not(.ndet-mm--mobile) .ndet-mm__list > .ndet-mm__item > .ndet-mm__sub,
.ndet-mm:not(.ndet-mm--mobile) .ndet-mm__panel {
	margin-top: var(--ndet-mm-offset, 0px);
}
/* Keeps the pointer "inside" while crossing the gap above a dropdown. */
.ndet-mm:not(.ndet-mm--mobile) .ndet-mm__sub::before,
.ndet-mm:not(.ndet-mm--mobile) .ndet-mm__panel::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 100%;
	height: calc(var(--ndet-mm-offset, 0px) + 12px);
}
.ndet-mm:not(.ndet-mm--mobile) .ndet-mm__sub .ndet-mm__sub::before {
	display: none;
}
/* A closing dropdown or panel ignores the mouse: while it rolls up or fades it would otherwise
 * pass under a still pointer and reopen, over and over (a flicker). */
.ndet-mm.is-ready:not(.ndet-mm--mobile) .ndet-mm__item:not(.is-open) > :is(.ndet-mm__sub, .ndet-mm__panel) {
	pointer-events: none;
}

/* Dropdown animation options: fade only, or none (open and close instantly). */
.ndet-mm--anim-fade:not(.ndet-mm--mobile) .ndet-mm__sub,
.ndet-mm--anim-fade:not(.ndet-mm--mobile) .ndet-mm__panel {
	transform: none;
	transition: opacity 0.3s cubic-bezier(0.48, 0.01, 0.5, 0.99), visibility 0s linear 0.3s;
}
.ndet-mm--anim-fade:not(.ndet-mm--mobile) .is-open > .ndet-mm__sub,
.ndet-mm--anim-fade:not(.ndet-mm--mobile) .is-open > .ndet-mm__panel {
	transition-delay: 0s;
}
.ndet-mm--anim-none:not(.ndet-mm--mobile) .ndet-mm__sub,
.ndet-mm--anim-none:not(.ndet-mm--mobile) .ndet-mm__panel {
	transform: none;
	transition: none;
}

/* Expand from the top: the dropdown unrolls downward and rolls back up when it closes. Keyframes
 * rather than a transition, so an open dropdown isn't clipped at all (its shadow, the strip
 * bridging the gap above it and side dropdowns all show). */
@keyframes ndet-mm-unroll {
	from { clip-path: inset(0 0 100% 0); }
	to { clip-path: inset(-80px -80px -80px -80px); }
}
@keyframes ndet-mm-rollup {
	from { clip-path: inset(-80px -80px -80px -80px); }
	to { clip-path: inset(0 0 100% 0); }
}
.ndet-mm--anim-expand:not(.ndet-mm--mobile) .ndet-mm__sub,
.ndet-mm--anim-expand:not(.ndet-mm--mobile) .ndet-mm__panel {
	transform: none;
	clip-path: inset(0 0 100% 0);
	animation: ndet-mm-rollup 0.26s var(--ndet-mm-ease);
	transition: opacity 0s linear 0.26s, visibility 0s linear 0.26s;
}
.ndet-mm--anim-expand:not(.ndet-mm--mobile) .is-open > .ndet-mm__sub,
.ndet-mm--anim-expand:not(.ndet-mm--mobile) .is-open > .ndet-mm__panel,
.ndet-mm--anim-expand:not(.ndet-mm--mobile):not(.is-ready) .ndet-mm__item:is(:hover, :focus-within) > :is(.ndet-mm__sub, .ndet-mm__panel) {
	clip-path: none;
	animation: ndet-mm-unroll 0.34s var(--ndet-mm-ease);
	transition: none;
}

/* "Switch instantly between items": the dropdown left behind and the one taking its place skip
 * their animations (mega-menu.js marks both with .is-instant). */
.ndet-mm--swap:not(.ndet-mm--mobile) .is-instant > :is(.ndet-mm__sub, .ndet-mm__panel) {
	animation: none !important;
	transition: none !important;
}

/* "Content follows": what is inside fades up a moment after the dropdown opens, one piece after
 * another (mega-menu.js numbers them in --ndet-mm-i). The `translate` property, not transform, so
 * widgets keep their own transforms; backwards fill, so nothing is held once it has played.
 * Widgets with their own Elementor entrance animation are left to it. */
@keyframes ndet-mm-rise {
	from {
		opacity: 0;
		translate: 0 10px;
	}
}
.ndet-mm--stagger:not(.ndet-mm--mobile) .ndet-mm__list > .is-open > .ndet-mm__panel .elementor-widget:not(.elementor-invisible, .animated),
.ndet-mm--stagger:not(.ndet-mm--mobile) .ndet-mm__list > .is-open > .ndet-mm__sub > .ndet-mm__item {
	animation: ndet-mm-rise 0.42s var(--ndet-mm-ease) backwards;
	animation-delay: calc(var(--ndet-mm-lead, 0.14s) + var(--ndet-mm-i, 0) * 0.04s);
}
/* After an instant switch there is no opening to wait for. */
.ndet-mm--stagger:not(.ndet-mm--mobile) .ndet-mm__list > .is-instant {
	--ndet-mm-lead: 0s;
}

/* Until mega-menu.js has started, plain CSS opens dropdowns on hover and keyboard focus. */
.ndet-mm:not(.ndet-mm--mobile):not(.is-ready) .ndet-mm__item:hover > .ndet-mm__sub,
.ndet-mm:not(.ndet-mm--mobile):not(.is-ready) .ndet-mm__item:focus-within > .ndet-mm__sub,
.ndet-mm:not(.ndet-mm--mobile):not(.is-ready) .ndet-mm__item:hover > .ndet-mm__panel,
.ndet-mm:not(.ndet-mm--mobile):not(.is-ready) .ndet-mm__item:focus-within > .ndet-mm__panel {
	opacity: 1;
	visibility: visible;
	transform: none;
	transition-delay: 0s;
}

/* Normal dropdowns */
.ndet-mm:not(.ndet-mm--mobile) .ndet-mm__sub {
	width: 240px;
	padding: 8px 0;
	border-radius: 8px;
}
.ndet-mm:not(.ndet-mm--mobile) .ndet-mm__sub .ndet-mm__sub {
	top: -8px;
	left: 100%;
}
.ndet-mm:not(.ndet-mm--mobile) .ndet-mm__list > .ndet-mm__item.is-flip > .ndet-mm__sub {
	left: auto;
	right: 0;
}
.ndet-mm:not(.ndet-mm--mobile) .ndet-mm__sub .ndet-mm__item.is-flip > .ndet-mm__sub {
	left: auto;
	right: 100%;
}
.ndet-mm:not(.ndet-mm--mobile) .ndet-mm__sub .ndet-mm__row {
	justify-content: space-between;
	padding: 9px 18px;
}
.ndet-mm:not(.ndet-mm--mobile) .ndet-mm__sub .ndet-mm__row:hover,
.ndet-mm:not(.ndet-mm--mobile) .ndet-mm__sub .ndet-mm__row:focus-within {
	background-color: rgba(17, 24, 39, 0.05);
}
.ndet-mm:not(.ndet-mm--mobile) .ndet-mm__sub .ndet-mm__arrow {
	transform: rotate(-90deg);
}
.ndet-mm:not(.ndet-mm--mobile) .ndet-mm__sub .is-flip > .ndet-mm__row .ndet-mm__arrow {
	transform: rotate(90deg);
}

/* Mega panels: left and width are set by mega-menu.js when one opens. */
.ndet-mm:not(.ndet-mm--mobile) .ndet-mm__panel {
	box-sizing: border-box;
	width: 100%;
	border-radius: 0 0 8px 8px;
}
.ndet-mm:not(.ndet-mm--mobile) .ndet-mm__panel-inner {
	/* --ndet-mm-pad-y: the panel's own top + bottom padding, set by mega-menu.js (0 without padding). */
	max-height: calc(100vh - var(--ndet-mm-top, 0px) - var(--ndet-mm-offset, 0px) - var(--ndet-mm-pad-y, 0px) - 16px);
	overflow-y: auto;
	overscroll-behavior: contain;
	border-radius: inherit;
	/* The scroll box clips on every side, so glyphs that overhang their box (a serif "W", italics) get
	 * up to 8px of room, borrowed from the panel's padding by mega-menu.js (0 on a panel without
	 * padding). The negative margin keeps the content exactly where it was. */
	padding: var(--ndet-mm-bleed, 0px);
	margin: calc(-1 * var(--ndet-mm-bleed, 0px));
}

/* ---------- Hamburger / slide-out menu ---------- */

.ndet-mm--mobile .ndet-mm__toggle {
	display: inline-flex;
}
.ndet-mm--mobile .ndet-mm__toggle[aria-expanded="true"] .ndet-mm__burger::before {
	transform: translateY(calc(var(--b) * 0.36 - 1px)) rotate(45deg);
}
.ndet-mm--mobile .ndet-mm__toggle[aria-expanded="true"] .ndet-mm__burger span {
	opacity: 0;
}
.ndet-mm--mobile .ndet-mm__toggle[aria-expanded="true"] .ndet-mm__burger::after {
	transform: translateY(calc(var(--b) * -0.36 + 1px)) rotate(-45deg);
}

.ndet-mm--mobile .ndet-mm__overlay {
	display: block;
	position: fixed;
	inset: 0;
	z-index: 99998;
	background: var(--ndet-mm-overlay, rgba(17, 24, 39, 0.45));
	opacity: 0;
	pointer-events: none;
	transition: opacity var(--ndet-mm-speed);
}
.ndet-mm--mobile .ndet-mm__overlay.is-open {
	opacity: 1;
	pointer-events: auto;
}

.ndet-mm--mobile .ndet-mm__drawer {
	position: fixed;
	top: 0;
	bottom: 0;
	right: 0;
	z-index: 99999;
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	width: min(var(--ndet-mm-drawer-w, 380px), 100vw);
	height: 100vh;
	height: 100dvh;
	background: var(--ndet-mm-drawer-bg, #fff);
	color: #1d1d1f;
	box-shadow: 0 0 40px rgba(17, 24, 39, 0.18);
	transform: translateX(100%);
	visibility: hidden;
	transition: transform var(--ndet-mm-speed) var(--ndet-mm-ease), visibility 0s linear var(--ndet-mm-speed);
}
.ndet-mm--mobile.ndet-mm--left .ndet-mm__drawer {
	right: auto;
	left: 0;
	transform: translateX(-100%);
}
.ndet-mm--mobile .ndet-mm__drawer.is-open {
	transform: none;
	visibility: visible;
	transition-delay: 0s;
}

.ndet-mm--mobile .ndet-mm__head {
	display: flex;
	align-items: center;
	gap: 8px;
	flex: none;
	box-sizing: border-box;
	min-height: 60px;
	padding: 8px 10px 8px 18px;
	border-bottom: 1px solid var(--ndet-mm-divider, rgba(17, 24, 39, 0.09));
}
.ndet-mm--mobile .ndet-mm__head [hidden] {
	display: none;
}
.ndet-mm--mobile .ndet-mm__head .ndet-mm__back[type="button"] {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	margin-left: -8px;
	padding: 8px;
	font-size: 15px;
}
.ndet-mm--mobile .ndet-mm__head .ndet-mm__back[hidden] {
	display: none;
}
.ndet-mm--mobile .ndet-mm__back .ndet-mm__head-icon {
	display: inline-flex;
	font-size: var(--ndet-mm-head-icon, 18px);
}
.ndet-mm--mobile .ndet-mm__close .ndet-mm__head-icon {
	display: inline-flex;
	font-size: var(--ndet-mm-head-icon, 22px);
}
.ndet-mm--mobile .ndet-mm__title {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-weight: 600;
	font-size: 17px;
}
.ndet-mm--mobile .ndet-mm__title a {
	color: inherit;
	text-decoration: none;
}
.ndet-mm--mobile .ndet-mm__back:not([hidden]) + .ndet-mm__title {
	text-align: center;
}
.ndet-mm--mobile .ndet-mm__head .ndet-mm__close[type="button"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	margin-left: auto;
	font-size: 22px;
}

.ndet-mm--mobile .ndet-mm__viewport {
	position: relative;
	flex: 1;
	overflow: hidden;
}
.ndet-mm--mobile .ndet-mm__level {
	position: absolute;
	inset: 0;
	display: block;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
}
.ndet-mm--mobile .ndet-mm__level.is-covered {
	overflow: hidden;
}
.ndet-mm--mobile .ndet-mm__level > .ndet-mm__item > .ndet-mm__row {
	transition: color 0.15s, background-color 0.15s, visibility 0s;
}
.ndet-mm--mobile .ndet-mm__level.is-covered > .ndet-mm__item > .ndet-mm__row {
	visibility: hidden;
	transition-delay: 0s, 0s, var(--ndet-mm-speed);
}
/* Every level after the first waits off to the side and slides in over its parent. */
.ndet-mm--mobile .ndet-mm__sub,
.ndet-mm--mobile .ndet-mm__panel {
	z-index: 1;
	background: var(--ndet-mm-drawer-bg, #fff);
	transform: translateX(100%);
	visibility: hidden;
	transition: transform var(--ndet-mm-speed) var(--ndet-mm-ease), visibility 0s linear var(--ndet-mm-speed);
}
.ndet-mm--mobile.ndet-mm--left .ndet-mm__sub,
.ndet-mm--mobile.ndet-mm--left .ndet-mm__panel {
	transform: translateX(-100%);
}
.ndet-mm--mobile .ndet-mm__level.is-active {
	transform: none;
	visibility: visible;
	transition-delay: 0s;
}
.ndet-mm--mobile .ndet-mm__item {
	position: static;
}
.ndet-mm--mobile .ndet-mm__row {
	gap: 12px;
	padding: 12px 14px 12px 20px;
	border-bottom: 1px solid var(--ndet-mm-divider, rgba(17, 24, 39, 0.09));
}
.ndet-mm--mobile .ndet-mm__row.is-current > .ndet-mm__link {
	font-weight: 600;
}
.ndet-mm--mobile .ndet-mm__link {
	flex: 1;
	min-width: 0;
}
.ndet-mm--mobile .ndet-mm__row .ndet-mm__arrow[type="button"] {
	flex: none;
	width: 32px;
	height: 32px;
	font-size: 18px;
	transform: rotate(-90deg);
}
/* The arrow sits at the row's right edge; the rest of its tap area reaches inward. The turned
 * desktop arrow's bottom edge is its right edge once turned. */
.ndet-mm--mobile .ndet-mm__row .ndet-mm__arrow[type="button"] {
	align-items: flex-end;
}
/* With the circle behind it, the arrow sits in the middle of the circle. */
.ndet-mm--m-round.ndet-mm--mobile .ndet-mm__row .ndet-mm__arrow[type="button"] {
	align-items: center;
}
/* A separate icon picked for the slide-out menu replaces the turned desktop arrow. */
.ndet-mm--mobile.ndet-mm--m-arrow .ndet-mm__row .ndet-mm__arrow[type="button"] {
	align-items: center;
	justify-content: flex-end;
	transform: none;
}
.ndet-mm--mobile.ndet-mm--m-arrow .ndet-mm__ai--d {
	display: none;
}
.ndet-mm--mobile.ndet-mm--m-arrow .ndet-mm__ai--m {
	display: inline-flex;
}

/* Top bar: one button on the right (close at the top level, back inside a level). */
.ndet-mm--mobile.ndet-mm--compact .ndet-mm__head {
	min-height: 35px;
	padding: 0;
	gap: 8px;
	border-bottom: 0;
}
.ndet-mm--mobile.ndet-mm--compact .ndet-mm__title {
	order: 1;
	text-align: left;
}
.ndet-mm--mobile.ndet-mm--compact .ndet-mm__head .ndet-mm__back[type="button"] {
	order: 2;
	margin: 0 0 0 auto;
	padding: 0;
	min-width: 30px;
	min-height: 30px;
	justify-content: center;
	gap: 7px;
}
.ndet-mm--mobile.ndet-mm--compact .ndet-mm__head .ndet-mm__close[type="button"] {
	order: 3;
	width: auto;
	height: auto;
	min-width: 30px;
	min-height: 30px;
}
.ndet-mm--mobile.ndet-mm--compact .ndet-mm__back:not([hidden]) ~ .ndet-mm__close {
	display: none;
}
.ndet-mm--mobile.ndet-mm--compact .ndet-mm__head-icon {
	font-size: var(--ndet-mm-head-icon, 16px);
}
.ndet-mm--mobile.ndet-mm--no-title .ndet-mm__title {
	visibility: hidden;
}
.ndet-mm--mobile.ndet-mm--no-dividers .ndet-mm__row,
.ndet-mm--mobile.ndet-mm--no-dividers .ndet-mm__head {
	border-bottom: 0;
}

/* "Push" motion: the current level's rows slide out to the side as the next level slides in. */
.ndet-mm--mobile.ndet-mm--push .ndet-mm__level > .ndet-mm__item > .ndet-mm__row {
	transition: color 0.15s, background-color 0.15s, visibility 0s, transform var(--ndet-mm-speed) var(--ndet-mm-ease);
}
.ndet-mm--mobile.ndet-mm--push .ndet-mm__level.is-covered > .ndet-mm__item > .ndet-mm__row {
	transform: translateX(-110%);
	transition-delay: 0s, 0s, var(--ndet-mm-speed), 0s;
}
.ndet-mm--mobile.ndet-mm--push.ndet-mm--left .ndet-mm__level.is-covered > .ndet-mm__item > .ndet-mm__row {
	transform: translateX(110%);
}

/* Logo in the top bar: at the top level in place of the title; inside a level the title shows. */
.ndet-mm__logo {
	display: none;
}
.ndet-mm--mobile .ndet-mm__logo {
	display: inline-flex;
	align-items: center;
	flex: none;
	min-width: 0;
	line-height: 0;
}
.ndet-mm--mobile .ndet-mm__logo-img {
	display: block;
	width: var(--ndet-mm-logo-w, 140px);
	max-width: 100%;
	height: auto;
}
.ndet-mm--mobile.ndet-mm--logo .ndet-mm__back[hidden] ~ .ndet-mm__title,
.ndet-mm--mobile .ndet-mm__back:not([hidden]) ~ .ndet-mm__logo {
	display: none;
}
.ndet-mm--mobile.ndet-mm--logo .ndet-mm__back[hidden] ~ .ndet-mm__close {
	margin-left: auto;
}

/* Text beside the close icon. */
.ndet-mm--mobile .ndet-mm__head .ndet-mm__close--text[type="button"] {
	width: auto;
	min-width: 42px;
	gap: 8px;
	padding: 0 10px 0 12px;
	font-size: 15px;
}
.ndet-mm--mobile .ndet-mm__close-text {
	line-height: 1;
}

/* Extra content: only in the slide-out menu. Under the items it scrolls with them and slides away
 * with them when a level opens; pinned, it stays at the bottom of the top level. */
.ndet-mm:not(.ndet-mm--mobile) .ndet-mm__extra {
	display: none;
}
.ndet-mm--mobile .ndet-mm__extra {
	display: block;
	box-sizing: border-box;
	padding: 18px 20px;
}
.ndet-mm--mobile .ndet-mm__level > .ndet-mm__extra {
	transition: visibility 0s;
}
.ndet-mm--mobile .ndet-mm__level.is-covered > .ndet-mm__extra {
	visibility: hidden;
	transition-delay: var(--ndet-mm-speed);
}
.ndet-mm--mobile .ndet-mm__extra--pinned {
	flex: none;
	max-height: 50%;
	overflow-y: auto;
	border-top: 1px solid var(--ndet-mm-divider, rgba(17, 24, 39, 0.09));
}
.ndet-mm--mobile.ndet-mm--no-dividers .ndet-mm__extra--pinned {
	border-top: 0;
}
.ndet-mm--mobile .ndet-mm__drawer.is-deep .ndet-mm__extra--pinned {
	display: none;
}

/* The drawer's wrappers at the end of <body> copy Elementor's class names so the widget's styles
 * still match, but must never draw anything or become the drawer's positioning box. */
.ndet-mm-portal,
.ndet-mm-portal > .elementor-element,
.ndet-mm-portal > .elementor-element > .ndet-mm {
	display: contents !important;
}

/* Page behind the open drawer stays put. */
html.ndet-mm-lock,
html.ndet-mm-lock body {
	overflow: hidden;
}

.ndet-mm-empty {
	padding: 14px 16px;
	border: 1px dashed rgba(17, 24, 39, 0.25);
	border-radius: 6px;
	font-size: 13px;
	color: #6b7280;
}

@media (prefers-reduced-motion: reduce) {
	.ndet-mm,
	.ndet-mm-portal .ndet-mm {
		--ndet-mm-speed: 0.01s;
	}
	.ndet-mm--stagger:not(.ndet-mm--mobile) .ndet-mm__list > .is-open :is(.elementor-widget, .ndet-mm__item) {
		animation: none;
	}
	.ndet-mm--anim-expand:not(.ndet-mm--mobile) :is(.ndet-mm__sub, .ndet-mm__panel) {
		animation-duration: 0.01s !important;
		transition-delay: 0s !important;
	}
}

/* A menu item with its own phone panel: the desktop panel on large screens, the phone panel in the slide-out menu. */
.ndet-mm:not(.ndet-mm--mobile) .ndet-mm__pv--phone,
.ndet-mm--mobile .ndet-mm__pv--desk { display: none; }
