/*
 * Lumo Menu — visual layer.
 *
 * Architecture:
 *   - All styleable values live on the `.lpt-menu` wrapper as CSS custom
 *     properties (`--lpt-menu-*`). The Style tab writes to those tokens
 *     so user overrides never fight specificity.
 *   - Submenu visibility is pure CSS by default (hover trigger). The
 *     click trigger relies on `[data-trigger="click"]` + the
 *     `.is-open` class set by the JS runtime.
 *   - The mobile breakpoint comes from `--lpt-menu-bp` resolved through
 *     three modifier classes (`lpt-menu--bp-{mobile,tablet,always,never}`)
 *     and a `:where()` media query. `always` and `never` skip the
 *     media query entirely.
 */

.lpt-menu {
	/* Layout tokens — overridden by responsive controls. */
	--lpt-menu-align: center;
	--lpt-menu-toggle-align: flex-end;
	--lpt-menu-item-py: 10px;
	--lpt-menu-item-px: 16px;
	--lpt-menu-item-gap: 4px;
	--lpt-menu-item-radius: 0;

	/* Item color tokens — defaults are set in Style → Items controls. */
	--lpt-menu-item-color: #0f172a;
	--lpt-menu-item-color-hover: #581c87;
	--lpt-menu-item-color-active: #581c87;
	--lpt-menu-item-bg: transparent;
	--lpt-menu-item-bg-hover: transparent;
	--lpt-menu-item-bg-active: transparent;

	/* Badge. */
	--lpt-menu-badge-bg: #581c87;
	--lpt-menu-badge-color: #ffffff;
	--lpt-menu-badge-font-size: 0.7em;
	--lpt-menu-badge-min-width: 1.4em;
	--lpt-menu-badge-padding: 2px 6px;
	--lpt-menu-badge-margin: 0 0 0 4px;
	--lpt-menu-badge-radius: 999px;

	/* CTA button items (Style → Button). */
	--lpt-menu-button-color: #ffffff;
	--lpt-menu-button-bg: #581c87;
	--lpt-menu-button-color-hover: #ffffff;
	--lpt-menu-button-bg-hover: #4c1d95;
	--lpt-menu-button-color-active: #ffffff;
	--lpt-menu-button-bg-active: #581c87;
	--lpt-menu-button-radius: 999px;
	--lpt-menu-button-px: var(--lpt-menu-item-px);
	--lpt-menu-button-py: var(--lpt-menu-item-py);

	/* Icon. */
	--lpt-menu-icon-size: 1.1em;
	--lpt-menu-icon-gap: 8px;
	--lpt-menu-icon-offset-x: 0px;
	--lpt-menu-icon-offset-y: 0px;
	--lpt-menu-icon-align: center;
	--lpt-menu-icon-color: currentColor;
	--lpt-menu-icon-color-hover: currentColor;
	--lpt-menu-icon-color-active: currentColor;
	--lpt-menu-link-gap: 8px;

	/* Submenu. */
	--lpt-menu-submenu-bg: #ffffff;
	--lpt-menu-submenu-radius: 8px;
	--lpt-menu-submenu-min-width: 200px;
	--lpt-menu-submenu-shadow: 0 12px 24px rgba(15, 23, 42, .08), 0 2px 4px rgba(15, 23, 42, .04);
	--lpt-menu-submenu-gap: 8px;
	--lpt-menu-submenu-offset: 8px;
	--lpt-menu-submenu-item-gap: 0px;
	--lpt-menu-submenu-item-color: #0f172a;
	--lpt-menu-submenu-item-color-hover: #581c87;
	--lpt-menu-submenu-item-color-active: #581c87;
	--lpt-menu-submenu-item-bg: transparent;
	--lpt-menu-submenu-item-bg-hover: transparent;
	--lpt-menu-submenu-item-bg-active: transparent;

	/* Mega menu. */
	--lpt-menu-mega-bg: #ffffff;
	--lpt-menu-mega-pad: 24px;
	--lpt-menu-mega-radius: 12px;
	--lpt-menu-mega-offset: 12px;
	--lpt-menu-mega-shadow: 0 24px 60px rgba(15, 23, 42, .14), 0 4px 12px rgba(15, 23, 42, .06);
	--lpt-menu-mega-max-h: none;

	/* Mobile. */
	--lpt-menu-toggle-size: 40px;
	--lpt-menu-toggle-color: #0f172a;
	--lpt-menu-toggle-bg: transparent;
	--lpt-menu-drawer-bg: #ffffff;
	--lpt-menu-drawer-width: 320px;
	--lpt-menu-overlay-bg: rgba(15, 23, 42, .55);

	position: relative;
	display: block;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	font-family: inherit;
}

/* ---------- Root list ---------- */
.lpt-menu__list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.lpt-menu__list--root {
	display: flex;
	flex-wrap: wrap;
	gap: var(--lpt-menu-item-gap);
	width: 100%;
	justify-content: var(--lpt-menu-align);
	align-items: flex-start;
	position: relative;
}
.lpt-menu__list--root > .lpt-menu__item {
	align-self: flex-start;
}
.lpt-menu__item-anchor {
	position: relative;
	display: inline-flex;
	flex-direction: column;
	align-items: stretch;
	max-width: 100%;
	box-sizing: border-box;
}
.lpt-menu--layout-vertical .lpt-menu__list--root > .lpt-menu__item > .lpt-menu__item-anchor,
.lpt-menu[data-layout="vertical"] .lpt-menu__list--root > .lpt-menu__item > .lpt-menu__item-anchor {
	width: 100%;
}
.lpt-menu--align-stretch.lpt-menu--layout-horizontal .lpt-menu__list--root > .lpt-menu__item > .lpt-menu__item-anchor {
	width: 100%;
}
/* Stretch — grow each top-level item equally (horizontal bar). */
.lpt-menu--align-stretch.lpt-menu--layout-horizontal .lpt-menu__list--root {
	justify-content: flex-start;
}
.lpt-menu--align-stretch.lpt-menu--layout-horizontal .lpt-menu__list--root > .lpt-menu__item {
	flex: 1 1 0;
	min-width: 0;
}
.lpt-menu--align-stretch.lpt-menu--layout-horizontal .lpt-menu__list--root > .lpt-menu__item > .lpt-menu__item-anchor > .lpt-menu__link {
	display: flex;
	width: 100%;
	box-sizing: border-box;
	justify-content: center;
}
.lpt-menu--align-stretch.lpt-menu--layout-vertical .lpt-menu__list--root {
	justify-content: flex-start;
}
.lpt-menu--align-stretch.lpt-menu--layout-vertical .lpt-menu__list--root > .lpt-menu__item {
	flex: 1 1 auto;
}
.lpt-menu--layout-vertical .lpt-menu__list--root {
	flex-direction: column;
	align-items: stretch;
	flex-wrap: nowrap;
}
.lpt-menu--layout-vertical .lpt-menu__list--root > .lpt-menu__item {
	width: 100%;
}
.lpt-menu--layout-vertical .lpt-menu__list--root > .lpt-menu__item > .lpt-menu__item-anchor > .lpt-menu__link {
	display: flex;
	width: 100%;
	box-sizing: border-box;
}
.lpt-menu[data-layout="vertical"] .lpt-menu__list--root {
	flex-direction: column;
	align-items: stretch;
	flex-wrap: nowrap;
}
.lpt-menu[data-layout="vertical"] .lpt-menu__list--root > .lpt-menu__item {
	width: 100%;
}
.lpt-menu[data-layout="vertical"] .lpt-menu__list--root > .lpt-menu__item > .lpt-menu__item-anchor > .lpt-menu__link {
	display: flex;
	width: 100%;
	box-sizing: border-box;
}

/* ---------- Items + links ---------- */
.lpt-menu__item {
	position: relative;
	display: block;
	margin: 0;
	padding: 0;
}
.lpt-menu__link {
	display: inline-flex;
	align-items: center;
	gap: var(--lpt-menu-link-gap);
	padding: var(--lpt-menu-item-py) var(--lpt-menu-item-px);
	border-radius: var(--lpt-menu-item-radius);
	text-decoration: none;
	font-weight: 500;
	line-height: 1.2;
	transition: color .2s ease, background-color .2s ease, transform .2s ease;
	cursor: pointer;
}

/* Top-level items — scoped so submenu styling never bleeds into the main bar. */
.lpt-menu__list--root > .lpt-menu__item > .lpt-menu__item-anchor > .lpt-menu__link {
	color: var(--lpt-menu-item-color);
	background: var(--lpt-menu-item-bg);
}
.elementor-widget-lumo-menu .lpt-menu .lpt-menu__list--root > .lpt-menu__item > .lpt-menu__item-anchor > .lpt-menu__link {
	color: var(--lpt-menu-item-color);
	background-color: var(--lpt-menu-item-bg);
}
.lpt-menu__link:focus { outline: none; }
.lpt-menu__link:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}
.lpt-menu__list--root > .lpt-menu__item:hover > .lpt-menu__item-anchor > .lpt-menu__link,
.lpt-menu__list--root > .lpt-menu__item > .lpt-menu__item-anchor > .lpt-menu__link:hover {
	color: var(--lpt-menu-item-color-hover);
	background: var(--lpt-menu-item-bg-hover);
}
.elementor-widget-lumo-menu .lpt-menu .lpt-menu__list--root > .lpt-menu__item:hover > .lpt-menu__item-anchor > .lpt-menu__link,
.elementor-widget-lumo-menu .lpt-menu .lpt-menu__list--root > .lpt-menu__item > .lpt-menu__item-anchor > .lpt-menu__link:hover {
	color: var(--lpt-menu-item-color-hover);
	background-color: var(--lpt-menu-item-bg-hover);
}
.lpt-menu__list--root > .lpt-menu__item--current > .lpt-menu__item-anchor > .lpt-menu__link,
.lpt-menu__list--root > .lpt-menu__item--current-ancestor > .lpt-menu__item-anchor > .lpt-menu__link,
.lpt-menu__list--root > .lpt-menu__item > .lpt-menu__item-anchor > .lpt-menu__link--current {
	color: var(--lpt-menu-item-color-active);
	background: var(--lpt-menu-item-bg-active);
}
.elementor-widget-lumo-menu .lpt-menu .lpt-menu__list--root > .lpt-menu__item--current > .lpt-menu__item-anchor > .lpt-menu__link,
.elementor-widget-lumo-menu .lpt-menu .lpt-menu__list--root > .lpt-menu__item--current-ancestor > .lpt-menu__item-anchor > .lpt-menu__link,
.elementor-widget-lumo-menu .lpt-menu .lpt-menu__list--root > .lpt-menu__item > .lpt-menu__item-anchor > .lpt-menu__link--current {
	color: var(--lpt-menu-item-color-active);
	background-color: var(--lpt-menu-item-bg-active);
}

/* Submenu item links — independent tokens from Style → Submenu. */
.lpt-menu__submenu .lpt-menu__item > .lpt-menu__item-anchor > .lpt-menu__link {
	color: var(--lpt-menu-submenu-item-color);
	background: var(--lpt-menu-submenu-item-bg);
}
.elementor-widget-lumo-menu .lpt-menu .lpt-menu__submenu .lpt-menu__item > .lpt-menu__item-anchor > .lpt-menu__link {
	color: var(--lpt-menu-submenu-item-color);
	background-color: var(--lpt-menu-submenu-item-bg);
}
.lpt-menu__submenu .lpt-menu__item:hover > .lpt-menu__item-anchor > .lpt-menu__link,
.lpt-menu__submenu .lpt-menu__item > .lpt-menu__item-anchor > .lpt-menu__link:hover {
	color: var(--lpt-menu-submenu-item-color-hover);
	background: var(--lpt-menu-submenu-item-bg-hover);
}
.elementor-widget-lumo-menu .lpt-menu .lpt-menu__submenu .lpt-menu__item:hover > .lpt-menu__link,
.elementor-widget-lumo-menu .lpt-menu .lpt-menu__submenu .lpt-menu__item > .lpt-menu__link:hover {
	color: var(--lpt-menu-submenu-item-color-hover);
	background-color: var(--lpt-menu-submenu-item-bg-hover);
}
.lpt-menu__submenu .lpt-menu__item--current > .lpt-menu__item-anchor > .lpt-menu__link,
.lpt-menu__submenu .lpt-menu__item--current-ancestor > .lpt-menu__item-anchor > .lpt-menu__link,
.lpt-menu__submenu .lpt-menu__item > .lpt-menu__item-anchor > .lpt-menu__link--current {
	color: var(--lpt-menu-submenu-item-color-active);
	background: var(--lpt-menu-submenu-item-bg-active);
}
.elementor-widget-lumo-menu .lpt-menu .lpt-menu__submenu .lpt-menu__item--current > .lpt-menu__link,
.elementor-widget-lumo-menu .lpt-menu .lpt-menu__submenu .lpt-menu__item--current-ancestor > .lpt-menu__link,
.elementor-widget-lumo-menu .lpt-menu .lpt-menu__submenu .lpt-menu__item > .lpt-menu__link--current {
	color: var(--lpt-menu-submenu-item-color-active);
	background-color: var(--lpt-menu-submenu-item-bg-active);
}

.lpt-menu__content {
	display: inline-flex;
	align-items: var(--lpt-menu-icon-align);
	justify-content: var(--lpt-menu-icon-align);
	gap: var(--lpt-menu-icon-gap);
	min-width: 0;
}
.lpt-menu__content--icon-before { flex-direction: row; }
.lpt-menu__content--icon-after  { flex-direction: row-reverse; }
.lpt-menu__content--icon-above  { flex-direction: column; }
.lpt-menu__content--icon-below  { flex-direction: column-reverse; }

.lpt-menu__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	font-size: var(--lpt-menu-icon-size);
	line-height: 0;
	width: 1em;
	height: 1em;
	color: var(--lpt-menu-icon-color);
	transform: translate(var(--lpt-menu-icon-offset-x), var(--lpt-menu-icon-offset-y));
	transition: color .2s ease, fill .2s ease, transform .2s ease;
}
.lpt-menu__icon i {
	width: 1em;
	height: 1em;
	line-height: 1;
	font-size: inherit;
	color: inherit;
}
.lpt-menu__icon svg {
	width: 1em;
	height: 1em;
	flex-shrink: 0;
	display: block;
	fill: currentColor;
}
.lpt-menu__icon svg path {
	fill: currentColor;
}
.lpt-menu__link:hover .lpt-menu__icon,
.lpt-menu__list--root > .lpt-menu__item:hover > .lpt-menu__item-anchor > .lpt-menu__link .lpt-menu__icon,
.lpt-menu__submenu .lpt-menu__item:hover > .lpt-menu__link .lpt-menu__icon {
	color: var(--lpt-menu-icon-color-hover);
}
.lpt-menu__link:hover .lpt-menu__icon svg,
.lpt-menu__link:hover .lpt-menu__icon svg path,
.lpt-menu__list--root > .lpt-menu__item:hover > .lpt-menu__item-anchor > .lpt-menu__link .lpt-menu__icon svg,
.lpt-menu__list--root > .lpt-menu__item:hover > .lpt-menu__item-anchor > .lpt-menu__link .lpt-menu__icon svg path,
.lpt-menu__submenu .lpt-menu__item:hover > .lpt-menu__link .lpt-menu__icon svg,
.lpt-menu__submenu .lpt-menu__item:hover > .lpt-menu__link .lpt-menu__icon svg path {
	fill: currentColor;
}
.lpt-menu__list--root > .lpt-menu__item--current > .lpt-menu__item-anchor > .lpt-menu__link .lpt-menu__icon,
.lpt-menu__list--root > .lpt-menu__item--current-ancestor > .lpt-menu__item-anchor > .lpt-menu__link .lpt-menu__icon,
.lpt-menu__list--root > .lpt-menu__item > .lpt-menu__item-anchor > .lpt-menu__link--current .lpt-menu__icon,
.lpt-menu__submenu .lpt-menu__item--current > .lpt-menu__link .lpt-menu__icon,
.lpt-menu__submenu .lpt-menu__item--current-ancestor > .lpt-menu__link .lpt-menu__icon,
.lpt-menu__submenu .lpt-menu__item > .lpt-menu__link--current .lpt-menu__icon {
	color: var(--lpt-menu-icon-color-active);
}
.lpt-menu__list--root > .lpt-menu__item--current > .lpt-menu__item-anchor > .lpt-menu__link .lpt-menu__icon svg,
.lpt-menu__list--root > .lpt-menu__item--current > .lpt-menu__item-anchor > .lpt-menu__link .lpt-menu__icon svg path,
.lpt-menu__list--root > .lpt-menu__item--current-ancestor > .lpt-menu__item-anchor > .lpt-menu__link .lpt-menu__icon svg,
.lpt-menu__list--root > .lpt-menu__item--current-ancestor > .lpt-menu__item-anchor > .lpt-menu__link .lpt-menu__icon svg path,
.lpt-menu__list--root > .lpt-menu__item > .lpt-menu__item-anchor > .lpt-menu__link--current .lpt-menu__icon svg,
.lpt-menu__list--root > .lpt-menu__item > .lpt-menu__item-anchor > .lpt-menu__link--current .lpt-menu__icon svg path,
.lpt-menu__submenu .lpt-menu__item--current > .lpt-menu__link .lpt-menu__icon svg,
.lpt-menu__submenu .lpt-menu__item--current > .lpt-menu__link .lpt-menu__icon svg path,
.lpt-menu__submenu .lpt-menu__item--current-ancestor > .lpt-menu__link .lpt-menu__icon svg,
.lpt-menu__submenu .lpt-menu__item--current-ancestor > .lpt-menu__link .lpt-menu__icon svg path,
.lpt-menu__submenu .lpt-menu__item > .lpt-menu__link--current .lpt-menu__icon svg,
.lpt-menu__submenu .lpt-menu__item > .lpt-menu__link--current .lpt-menu__icon svg path {
	fill: currentColor;
}

.lpt-menu__label { display: inline-block; }

.lpt-menu__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	min-width: var(--lpt-menu-badge-min-width);
	padding: var(--lpt-menu-badge-padding);
	margin: var(--lpt-menu-badge-margin);
	font-size: var(--lpt-menu-badge-font-size);
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--lpt-menu-badge-color);
	background: var(--lpt-menu-badge-bg);
	border-radius: var(--lpt-menu-badge-radius);
}

/* Badge placement — corner pins to the item link box. */
.lpt-menu--badge-pos-link_corner .lpt-menu__item > .lpt-menu__item-anchor > .lpt-menu__link,
.elementor-widget-lumo-menu.lpt-menu-badge-pos-link_corner .lpt-menu__item > .lpt-menu__item-anchor > .lpt-menu__link {
	position: relative;
}
.lpt-menu--badge-pos-link_corner .lpt-menu__badge,
.elementor-widget-lumo-menu.lpt-menu-badge-pos-link_corner .lpt-menu__badge {
	position: absolute;
	top: 4px;
	inset-inline-end: 4px;
	margin: 0;
	z-index: 1;
}

/* Button-style item — CTA pill; colours from Style → Button. */
.lpt-menu__list--root > .lpt-menu__item--button > .lpt-menu__item-anchor > .lpt-menu__link {
	color: var(--lpt-menu-button-color);
	background: var(--lpt-menu-button-bg);
	border-radius: var(--lpt-menu-button-radius);
	padding: var(--lpt-menu-button-py) var(--lpt-menu-button-px);
	font-weight: 600;
}
.elementor-widget-lumo-menu .lpt-menu .lpt-menu__list--root > .lpt-menu__item--button > .lpt-menu__item-anchor > .lpt-menu__link {
	color: var(--lpt-menu-button-color);
	background-color: var(--lpt-menu-button-bg);
}
.lpt-menu__list--root > .lpt-menu__item--button:hover > .lpt-menu__item-anchor > .lpt-menu__link,
.lpt-menu__list--root > .lpt-menu__item--button > .lpt-menu__item-anchor > .lpt-menu__link:hover {
	color: var(--lpt-menu-button-color-hover);
	background: var(--lpt-menu-button-bg-hover);
	transform: translateY(-1px);
}
.elementor-widget-lumo-menu .lpt-menu .lpt-menu__list--root > .lpt-menu__item--button:hover > .lpt-menu__item-anchor > .lpt-menu__link,
.elementor-widget-lumo-menu .lpt-menu .lpt-menu__list--root > .lpt-menu__item--button > .lpt-menu__item-anchor > .lpt-menu__link:hover {
	color: var(--lpt-menu-button-color-hover);
	background-color: var(--lpt-menu-button-bg-hover);
}
.lpt-menu__list--root > .lpt-menu__item--button.lpt-menu__item--current > .lpt-menu__item-anchor > .lpt-menu__link,
.lpt-menu__list--root > .lpt-menu__item--button.lpt-menu__item--current-ancestor > .lpt-menu__item-anchor > .lpt-menu__link,
.lpt-menu__list--root > .lpt-menu__item--button > .lpt-menu__item-anchor > .lpt-menu__link--current {
	color: var(--lpt-menu-button-color-active);
	background: var(--lpt-menu-button-bg-active);
}
.elementor-widget-lumo-menu .lpt-menu .lpt-menu__list--root > .lpt-menu__item--button.lpt-menu__item--current > .lpt-menu__item-anchor > .lpt-menu__link,
.elementor-widget-lumo-menu .lpt-menu .lpt-menu__list--root > .lpt-menu__item--button.lpt-menu__item--current-ancestor > .lpt-menu__item-anchor > .lpt-menu__link,
.elementor-widget-lumo-menu .lpt-menu .lpt-menu__list--root > .lpt-menu__item--button > .lpt-menu__item-anchor > .lpt-menu__link--current {
	color: var(--lpt-menu-button-color-active);
	background-color: var(--lpt-menu-button-bg-active);
}
.lpt-menu__list--root > .lpt-menu__item--button > .lpt-menu__item-anchor > .lpt-menu__link .lpt-menu__icon {
	color: currentColor;
}
.lpt-menu__list--root > .lpt-menu__item--button > .lpt-menu__item-anchor > .lpt-menu__link .lpt-menu__icon svg,
.lpt-menu__list--root > .lpt-menu__item--button > .lpt-menu__item-anchor > .lpt-menu__link .lpt-menu__icon svg path {
	fill: currentColor;
}

/* ---------- Submenu indicator ---------- */
.lpt-menu {
	--lpt-menu-indicator-duration: .25s;
}
.lpt-menu__indicator {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-inline-start: 4px;
	transition: transform var(--lpt-menu-indicator-duration) ease;
}
.lpt-menu__indicator svg,
.lpt-menu__indicator .e-font-icon-svg {
	display: block;
	width: 1em;
	height: 1em;
}
.lpt-menu__item--has-children:hover > .lpt-menu__item-anchor > .lpt-menu__link .lpt-menu__indicator:not(.lpt-menu__indicator--custom-dual):not(.lpt-menu__indicator--plus),
.lpt-menu__item.is-open > .lpt-menu__item-anchor > .lpt-menu__link .lpt-menu__indicator:not(.lpt-menu__indicator--custom-dual):not(.lpt-menu__indicator--plus) {
	transform: rotate(180deg);
}
.lpt-menu--indicator-plus .lpt-menu__indicator--plus .lpt-menu__indicator-v {
	transition: transform var(--lpt-menu-indicator-duration) ease;
	transform-origin: center;
}
.lpt-menu__item.is-open > .lpt-menu__item-anchor > .lpt-menu__link .lpt-menu__indicator--plus .lpt-menu__indicator-v {
	transform: rotate(90deg);
}
.lpt-menu--indicator-none .lpt-menu__indicator { display: none; }

/* Custom Elementor Icons — dual open/closed states. */
.lpt-menu__indicator--custom-dual {
	position: relative;
	min-width: 1em;
	min-height: 1em;
}
.lpt-menu__indicator--custom-dual .lpt-menu__indicator-state {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: opacity var(--lpt-menu-indicator-duration) ease, transform var(--lpt-menu-indicator-duration) ease;
}
.lpt-menu__indicator--custom-dual .lpt-menu__indicator-state--open {
	position: absolute;
	inset: 0;
	opacity: 0;
}
.lpt-menu__item--has-children:hover > .lpt-menu__item-anchor > .lpt-menu__link .lpt-menu__indicator--custom-dual .lpt-menu__indicator-state--closed,
.lpt-menu__item.is-open > .lpt-menu__item-anchor > .lpt-menu__link .lpt-menu__indicator--custom-dual .lpt-menu__indicator-state--closed {
	opacity: 0;
}
.lpt-menu__item--has-children:hover > .lpt-menu__item-anchor > .lpt-menu__link .lpt-menu__indicator--custom-dual .lpt-menu__indicator-state--open,
.lpt-menu__item.is-open > .lpt-menu__item-anchor > .lpt-menu__link .lpt-menu__indicator--custom-dual .lpt-menu__indicator-state--open {
	opacity: 1;
}

/* Custom Elementor Icons — single icon rotates when no open icon is set. */
.lpt-menu__indicator--custom-rotate {
	transition: transform var(--lpt-menu-indicator-duration) ease;
}
.lpt-menu__indicator--custom-rotate.lpt-menu__indicator--dir-end {
	transform: rotate(-90deg);
}
.lpt-menu__item--has-children:hover > .lpt-menu__item-anchor > .lpt-menu__link .lpt-menu__indicator--custom-rotate.lpt-menu__indicator--dir-end,
.lpt-menu__item.is-open > .lpt-menu__item-anchor > .lpt-menu__link .lpt-menu__indicator--custom-rotate.lpt-menu__indicator--dir-end {
	transform: rotate(90deg);
}
.lpt-menu__item--has-children:hover > .lpt-menu__item-anchor > .lpt-menu__link .lpt-menu__indicator--custom-rotate:not(.lpt-menu__indicator--dir-end),
.lpt-menu__item.is-open > .lpt-menu__item-anchor > .lpt-menu__link .lpt-menu__indicator--custom-rotate:not(.lpt-menu__indicator--dir-end) {
	transform: rotate(180deg);
}

/* Sub-toggle button — only used in mobile / click mode. Hidden by default,
   shown via the JS-driven `.lpt-menu--touch` class on small screens. */
.lpt-menu__sub-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	background: transparent;
	border: 0;
	color: inherit;
	cursor: pointer;
	border-radius: 8px;
	transition: background-color .2s ease, transform .2s ease;
}
.lpt-menu__sub-toggle:hover { background: rgba(15, 23, 42, .06); }
.lpt-menu__sub-toggle .lpt-menu__indicator {
	margin-inline-start: 0;
}
.lpt-menu__item.is-open > .lpt-menu__item-anchor > .lpt-menu__sub-toggle .lpt-menu__indicator:not(.lpt-menu__indicator--custom-dual):not(.lpt-menu__indicator--plus) {
	transform: rotate(180deg);
}
.lpt-menu__item.is-open > .lpt-menu__item-anchor > .lpt-menu__sub-toggle .lpt-menu__indicator--custom-dual .lpt-menu__indicator-state--closed {
	opacity: 0;
}
.lpt-menu__item.is-open > .lpt-menu__item-anchor > .lpt-menu__sub-toggle .lpt-menu__indicator--custom-dual .lpt-menu__indicator-state--open {
	opacity: 1;
}
.lpt-menu__item.is-open > .lpt-menu__item-anchor > .lpt-menu__sub-toggle .lpt-menu__indicator--custom-rotate.lpt-menu__indicator--dir-end {
	transform: rotate(90deg);
}
.lpt-menu__item.is-open > .lpt-menu__item-anchor > .lpt-menu__sub-toggle .lpt-menu__indicator--custom-rotate:not(.lpt-menu__indicator--dir-end) {
	transform: rotate(180deg);
}
.lpt-menu__item.is-open > .lpt-menu__item-anchor > .lpt-menu__sub-toggle .lpt-menu__indicator--plus .lpt-menu__indicator-v {
	transform: rotate(90deg);
}
.lpt-menu__item.is-open > .lpt-menu__item-anchor > .lpt-menu__sub-toggle {
	transition: background-color .2s ease;
}

/* ---------- Submenus (desktop dropdown) ---------- */
.lpt-menu__submenu {
	position: absolute;
	top: 100%;
	left: 0;
	display: flex;
	flex-direction: column;
	gap: var(--lpt-menu-submenu-item-gap);
	min-width: var(--lpt-menu-submenu-min-width);
	width: auto;
	height: auto;
	clip: auto;
	white-space: normal;
	/* Top padding bridges the visual gap so pointer travel parent → submenu keeps :hover. */
	padding: calc(8px + var(--lpt-menu-submenu-gap)) 8px 8px;
	margin: 0;
	background: var(--lpt-menu-submenu-bg);
	border-radius: var(--lpt-menu-submenu-radius);
	box-shadow: var(--lpt-menu-submenu-shadow);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	z-index: 50;
	transform: translateY(8px);
	transition: opacity .22s ease, transform .22s ease, visibility .22s ease;
}
.lpt-menu__submenu .lpt-menu__submenu {
	top: 0;
	left: 100%;
	margin-inline-start: 0;
	padding: 8px;
	padding-inline-start: calc(8px + var(--lpt-menu-submenu-offset));
	transform: translateY(0) translateX(8px);
	z-index: 60;
}
.lpt-menu__submenu {
	overflow: visible;
}
/* Nested flyout rows — position against full <li> width, not the narrow anchor column. */
.lpt-menu__submenu .lpt-menu__item--has-children {
	position: relative;
}
.lpt-menu__submenu .lpt-menu__item > .lpt-menu__item-anchor {
	position: static;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	width: 100%;
}
.lpt-menu__submenu .lpt-menu__item-anchor > .lpt-menu__link {
	display: flex;
	width: 100%;
	box-sizing: border-box;
}
/* Keep nested flyouts above parent panels on horizontal desktop. */
.lpt-menu:not(.lpt-menu--mobile-active),
.elementor-widget-lumo-menu .elementor-widget-container {
	overflow: visible;
}
.lpt-menu:not(.lpt-menu--mobile-active) .lpt-menu__submenu,
.lpt-menu:not(.lpt-menu--mobile-active) .lpt-menu__item {
	overflow: visible;
}

/* Hover trigger (default). Submenus are direct children of .lpt-menu__item. */
.lpt-menu--trigger-hover .lpt-menu__item:hover > .lpt-menu__submenu,
.lpt-menu--trigger-hover .lpt-menu__item:focus-within > .lpt-menu__submenu {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0);
	width: auto;
	height: auto;
	clip: auto;
	overflow: visible;
	white-space: normal;
}
.lpt-menu--trigger-hover .lpt-menu__submenu .lpt-menu__item:hover > .lpt-menu__submenu,
.lpt-menu--trigger-hover .lpt-menu__submenu .lpt-menu__item:focus-within > .lpt-menu__submenu {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translate(0, 0);
	width: auto;
	height: auto;
	clip: auto;
	overflow: visible;
	white-space: normal;
}

/* Click trigger — JS adds `.is-open`. */
.lpt-menu--trigger-click .lpt-menu__item.is-open > .lpt-menu__submenu {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0);
	width: auto;
	height: auto;
	clip: auto;
	overflow: visible;
	white-space: normal;
}

/* Animations */
.lpt-menu--anim-none .lpt-menu__submenu { transition: none; transform: none; }
.lpt-menu--anim-slide .lpt-menu__submenu { transform: translateY(-8px); }
.lpt-menu--anim-slide .lpt-menu__item:hover > .lpt-menu__submenu,
.lpt-menu--anim-slide .lpt-menu__item.is-open > .lpt-menu__submenu { transform: translateY(0); }
.lpt-menu--anim-zoom .lpt-menu__submenu { transform: scale(.96); transform-origin: top center; }
.lpt-menu--anim-zoom .lpt-menu__item:hover > .lpt-menu__submenu,
.lpt-menu--anim-zoom .lpt-menu__item.is-open > .lpt-menu__submenu { transform: scale(1); }
/* Nested flyouts must reset parent animation transforms when open. */
.lpt-menu--anim-slide .lpt-menu__submenu .lpt-menu__item:hover > .lpt-menu__submenu,
.lpt-menu--anim-slide .lpt-menu__submenu .lpt-menu__item.is-open > .lpt-menu__submenu,
.lpt-menu--anim-slide .lpt-menu__submenu .lpt-menu__item:focus-within > .lpt-menu__submenu {
	transform: translate(0, 0);
}
.lpt-menu--anim-zoom .lpt-menu__submenu .lpt-menu__item:hover > .lpt-menu__submenu,
.lpt-menu--anim-zoom .lpt-menu__submenu .lpt-menu__item.is-open > .lpt-menu__submenu,
.lpt-menu--anim-zoom .lpt-menu__submenu .lpt-menu__item:focus-within > .lpt-menu__submenu {
	transform: scale(1);
	transform-origin: top left;
}

/* Vertical + flyout: root submenus open to the side. */
.lpt-menu--layout-vertical.lpt-menu--v-sub-flyout:not(.lpt-menu--mobile-active) .lpt-menu__list--root > .lpt-menu__item > .lpt-menu__submenu {
	top: 0;
	left: 100%;
	margin-inline-start: 0;
	padding: 8px;
	padding-inline-start: calc(8px + var(--lpt-menu-submenu-offset));
}
/* Fade (default) — opacity + slide in from inline-end. */
.lpt-menu--layout-vertical.lpt-menu--v-sub-flyout:not(.lpt-menu--anim-slide):not(.lpt-menu--anim-zoom):not(.lpt-menu--anim-none):not(.lpt-menu--mobile-active) .lpt-menu__list--root > .lpt-menu__item > .lpt-menu__submenu {
	transform: translateX(8px);
}
.lpt-menu--layout-vertical.lpt-menu--v-sub-flyout.lpt-menu--anim-slide:not(.lpt-menu--mobile-active) .lpt-menu__list--root > .lpt-menu__item > .lpt-menu__submenu {
	transform: translateX(16px);
}
.lpt-menu--layout-vertical.lpt-menu--v-sub-flyout.lpt-menu--anim-zoom:not(.lpt-menu--mobile-active) .lpt-menu__list--root > .lpt-menu__item > .lpt-menu__submenu {
	transform: scale(0.96);
	transform-origin: inline-start center;
}
.lpt-menu--layout-vertical.lpt-menu--v-sub-flyout.lpt-menu--anim-none:not(.lpt-menu--mobile-active) .lpt-menu__list--root > .lpt-menu__item > .lpt-menu__submenu {
	transform: none;
	transition: opacity .22s ease, visibility .22s ease;
}
.lpt-menu--layout-vertical.lpt-menu--v-sub-flyout:not(.lpt-menu--anim-zoom):not(.lpt-menu--anim-none):not(.lpt-menu--mobile-active).lpt-menu--trigger-hover .lpt-menu__list--root > .lpt-menu__item:hover > .lpt-menu__submenu,
.lpt-menu--layout-vertical.lpt-menu--v-sub-flyout:not(.lpt-menu--anim-zoom):not(.lpt-menu--anim-none):not(.lpt-menu--mobile-active) .lpt-menu__list--root > .lpt-menu__item.is-open > .lpt-menu__submenu {
	transform: translateX(0);
}
.lpt-menu--layout-vertical.lpt-menu--v-sub-flyout.lpt-menu--anim-zoom:not(.lpt-menu--mobile-active).lpt-menu--trigger-hover .lpt-menu__list--root > .lpt-menu__item:hover > .lpt-menu__submenu,
.lpt-menu--layout-vertical.lpt-menu--v-sub-flyout.lpt-menu--anim-zoom:not(.lpt-menu--mobile-active) .lpt-menu__list--root > .lpt-menu__item.is-open > .lpt-menu__submenu {
	transform: scale(1);
}

/* Vertical + dropdown: expand submenus below the parent (accordion). */
.lpt-menu--layout-vertical.lpt-menu--v-sub-dropdown:not(.lpt-menu--mobile-active) .lpt-menu__item--has-children {
	position: relative;
}
.lpt-menu--layout-vertical.lpt-menu--v-sub-dropdown:not(.lpt-menu--mobile-active) .lpt-menu__item--has-children > .lpt-menu__link {
	padding-inline-end: 48px;
}
.lpt-menu--layout-vertical.lpt-menu--v-sub-dropdown:not(.lpt-menu--mobile-active) .lpt-menu__sub-toggle {
	display: inline-flex;
	position: absolute;
	top: 4px;
	inset-inline-end: 4px;
}
.lpt-menu--layout-vertical.lpt-menu--v-sub-dropdown:not(.lpt-menu--mobile-active) .lpt-menu__item--has-children > .lpt-menu__link .lpt-menu__indicator {
	display: none;
}
.lpt-menu--layout-vertical.lpt-menu--v-sub-dropdown:not(.lpt-menu--mobile-active) .lpt-menu__submenu,
.lpt-menu--layout-vertical.lpt-menu--v-sub-dropdown:not(.lpt-menu--mobile-active) .lpt-menu__submenu .lpt-menu__submenu {
	position: static;
	width: 100%;
	min-width: 0;
	margin: 0;
	padding: 0 0 0 16px;
	box-shadow: none;
	border-radius: 0;
	background: transparent;
	opacity: 0;
	visibility: hidden;
	max-height: 0;
	overflow: hidden;
	transition: max-height .3s ease, opacity .25s ease, visibility .25s, transform .22s ease;
	pointer-events: none;
}
.lpt-menu--layout-vertical.lpt-menu--v-sub-dropdown.lpt-menu--anim-none:not(.lpt-menu--mobile-active) .lpt-menu__submenu,
.lpt-menu--layout-vertical.lpt-menu--v-sub-dropdown.lpt-menu--anim-none:not(.lpt-menu--mobile-active) .lpt-menu__submenu .lpt-menu__submenu {
	transform: none;
	transition: max-height .3s ease, opacity .25s ease, visibility .25s;
}
.lpt-menu--layout-vertical.lpt-menu--v-sub-dropdown:not(.lpt-menu--anim-slide):not(.lpt-menu--anim-zoom):not(.lpt-menu--anim-none):not(.lpt-menu--mobile-active) .lpt-menu__submenu,
.lpt-menu--layout-vertical.lpt-menu--v-sub-dropdown:not(.lpt-menu--anim-slide):not(.lpt-menu--anim-zoom):not(.lpt-menu--anim-none):not(.lpt-menu--mobile-active) .lpt-menu__submenu .lpt-menu__submenu {
	transform: none;
}
.lpt-menu--layout-vertical.lpt-menu--v-sub-dropdown.lpt-menu--anim-slide:not(.lpt-menu--mobile-active) .lpt-menu__submenu,
.lpt-menu--layout-vertical.lpt-menu--v-sub-dropdown.lpt-menu--anim-slide:not(.lpt-menu--mobile-active) .lpt-menu__submenu .lpt-menu__submenu {
	transform: translateY(-8px);
}
.lpt-menu--layout-vertical.lpt-menu--v-sub-dropdown.lpt-menu--anim-zoom:not(.lpt-menu--mobile-active) .lpt-menu__submenu,
.lpt-menu--layout-vertical.lpt-menu--v-sub-dropdown.lpt-menu--anim-zoom:not(.lpt-menu--mobile-active) .lpt-menu__submenu .lpt-menu__submenu {
	transform: scale(0.96);
	transform-origin: top center;
}
.lpt-menu--layout-vertical.lpt-menu--v-sub-dropdown:not(.lpt-menu--mobile-active).lpt-menu--trigger-hover .lpt-menu__item:hover > .lpt-menu__submenu,
.lpt-menu--layout-vertical.lpt-menu--v-sub-dropdown:not(.lpt-menu--mobile-active).lpt-menu--trigger-hover .lpt-menu__item:focus-within > .lpt-menu__submenu,
.lpt-menu--layout-vertical.lpt-menu--v-sub-dropdown:not(.lpt-menu--mobile-active) .lpt-menu__item.is-open > .lpt-menu__submenu {
	opacity: 1;
	visibility: visible;
	max-height: 800px;
	pointer-events: auto;
}
.lpt-menu--layout-vertical.lpt-menu--v-sub-dropdown.lpt-menu--anim-slide:not(.lpt-menu--mobile-active).lpt-menu--trigger-hover .lpt-menu__item:hover > .lpt-menu__submenu,
.lpt-menu--layout-vertical.lpt-menu--v-sub-dropdown.lpt-menu--anim-slide:not(.lpt-menu--mobile-active).lpt-menu--trigger-hover .lpt-menu__item:focus-within > .lpt-menu__submenu,
.lpt-menu--layout-vertical.lpt-menu--v-sub-dropdown.lpt-menu--anim-slide:not(.lpt-menu--mobile-active) .lpt-menu__item.is-open > .lpt-menu__submenu {
	transform: translateY(0);
}
.lpt-menu--layout-vertical.lpt-menu--v-sub-dropdown.lpt-menu--anim-zoom:not(.lpt-menu--mobile-active).lpt-menu--trigger-hover .lpt-menu__item:hover > .lpt-menu__submenu,
.lpt-menu--layout-vertical.lpt-menu--v-sub-dropdown.lpt-menu--anim-zoom:not(.lpt-menu--mobile-active).lpt-menu--trigger-hover .lpt-menu__item:focus-within > .lpt-menu__submenu,
.lpt-menu--layout-vertical.lpt-menu--v-sub-dropdown.lpt-menu--anim-zoom:not(.lpt-menu--mobile-active) .lpt-menu__item.is-open > .lpt-menu__submenu {
	transform: scale(1);
}
.lpt-menu--layout-vertical.lpt-menu--v-sub-dropdown:not(.lpt-menu--mobile-active) .lpt-menu__mega {
	position: static;
	width: 100% !important;
	min-width: 0;
	margin: 0;
	box-shadow: none;
	border-radius: 0;
	background: transparent;
	opacity: 0;
	visibility: hidden;
	max-height: 0;
	overflow: hidden;
	pointer-events: none;
	transform: none !important;
	transition: max-height .3s ease, opacity .25s ease, visibility .25s;
}
.lpt-menu--layout-vertical.lpt-menu--v-sub-dropdown:not(.lpt-menu--mobile-active).lpt-menu--trigger-hover .lpt-menu__item--mega:hover > .lpt-menu__mega,
.lpt-menu--layout-vertical.lpt-menu--v-sub-dropdown:not(.lpt-menu--mobile-active).lpt-menu--trigger-hover .lpt-menu__item--mega:focus-within > .lpt-menu__mega,
.lpt-menu--layout-vertical.lpt-menu--v-sub-dropdown:not(.lpt-menu--mobile-active) .lpt-menu__item--mega.is-open > .lpt-menu__mega {
	opacity: 1;
	visibility: visible;
	max-height: 1600px;
	pointer-events: auto;
}
.lpt-menu--layout-vertical.lpt-menu--v-sub-dropdown:not(.lpt-menu--mobile-active) .lpt-menu__mega-inner {
	padding: 12px 8px 16px;
	max-height: none;
}

/* ---------- Mega menu ---------- */
.lpt-menu__mega {
	position: absolute;
	top: 100%;
	left: 0;
	right: auto;
	/* Undo critical FOUC clip so layout/open states can take over. */
	width: auto;
	height: auto;
	clip: auto;
	white-space: normal;
	margin: 0;
	margin-top: 0;
	padding-top: var(--lpt-menu-mega-offset);
	min-width: 320px;
	box-sizing: border-box;
	background: var(--lpt-menu-mega-bg);
	border-radius: var(--lpt-menu-mega-radius);
	box-shadow: var(--lpt-menu-mega-shadow);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	z-index: 60;
	transform: translateY(8px);
	/* No transition until .is-ready — prevents fade-out FOUC when CSS first applies. */
	transition: none;
	overflow: hidden;
}
/* Enable open/close motion only after first paint (JS adds .is-ready). */
.lpt-menu.is-ready .lpt-menu__mega {
	transition: opacity .25s ease, transform .25s ease, visibility .25s ease;
}
.lpt-menu__mega-inner {
	padding: var(--lpt-menu-mega-pad);
	max-height: var(--lpt-menu-mega-max-h);
	overflow-x: hidden;
	overflow-y: auto;
	box-sizing: border-box;
}
/* Embedded templates fill the panel; inner containers keep their own width when narrower. */
.lpt-menu__mega-inner > .elementor {
	width: 100% !important;
	max-width: 100% !important;
}
.lpt-menu__mega-inner > .elementor > .e-con,
.lpt-menu__mega-inner > .elementor > .elementor-section-wrap > .elementor-section {
	max-width: 100% !important;
}
.lpt-menu__mega-placeholder {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	padding: 18px 20px;
	text-align: start;
	color: #64748b;
	font-size: 13px;
	line-height: 1.5;
	background: #faf5ff;
	border: 1px dashed #d8b4fe;
	border-radius: 10px;
}
.lpt-menu__mega-placeholder strong {
	color: #581c87;
	font-size: 14px;
}
.lpt-menu__mega-placeholder-name {
	font-weight: 600;
	color: #0f172a;
}
.lpt-menu__mega-placeholder-hint {
	color: #64748b;
}
.lpt-menu__mega-placeholder-link {
	display: inline-flex;
	align-items: center;
	padding: 8px 14px;
	border-radius: 999px;
	background: #581c87;
	color: #fff !important;
	font-weight: 600;
	font-size: 13px;
	text-decoration: none !important;
}
.lpt-menu__mega-placeholder-link:hover {
	background: #4c1d95;
	color: #fff !important;
}

/*
 * Width modes — widget / viewport panels anchor to the root bar (.lpt-menu__list--root),
 * not the narrow trigger <li>, so the panel can actually span the menu rail or viewport.
 * Custom width stays on the trigger item so Start / Center / End alignment works.
 */
.lpt-menu__list--root > .lpt-menu__item--mega.lpt-menu__item--mega-w-widget,
.lpt-menu__list--root > .lpt-menu__item--mega.lpt-menu__item--mega-w-viewport {
	position: static;
}

.lpt-menu__item--mega-w-widget > .lpt-menu__mega {
	left: 0;
	right: 0;
	width: 100%;
	max-width: none;
	min-width: 0;
	transform: translateY(8px);
}
.lpt-menu__item--mega-w-viewport > .lpt-menu__mega {
	left: 50%;
	right: auto;
	width: 100vw;
	max-width: 100vw;
	min-width: 0;
	margin-left: 0;
	border-radius: 0;
	transform: translateX(-50%) translateY(8px);
}
.lpt-menu__item--mega-w-custom > .lpt-menu__item-anchor > .lpt-menu__mega {
	max-width: none;
	min-width: 0;
}

/* Panel alignment (meaningful for custom width; widget mode is full rail width). */
.lpt-menu__item--mega-a-start > .lpt-menu__mega {
	left: 0;
	right: auto;
}
.lpt-menu__item--mega-a-end > .lpt-menu__mega {
	left: auto;
	right: 0;
}
.lpt-menu__item--mega-a-center.lpt-menu__item--mega-w-custom > .lpt-menu__item-anchor > .lpt-menu__mega {
	left: 50%;
	right: auto;
	transform: translate(-50%, 8px);
}
.lpt-menu__item--mega-a-start.lpt-menu__item--mega-w-custom > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu__item--mega-a-end.lpt-menu__item--mega-w-custom > .lpt-menu__item-anchor > .lpt-menu__mega {
	transform: translateY(8px);
}

/* Open state — preserve horizontal transforms per width / alignment mode. */
.lpt-menu--trigger-hover .lpt-menu__item--mega:hover > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-custom:hover > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega:focus-within > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-custom:focus-within > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega.is-open > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-w-custom.is-open > .lpt-menu__item-anchor > .lpt-menu__mega {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	clip: auto;
	height: auto;
	margin: 0;
}
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-widget:hover > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-widget:focus-within > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-w-widget.is-open > .lpt-menu__mega {
	width: 100%;
	max-width: none;
	min-width: 0;
}
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-viewport:hover > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-viewport:focus-within > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-w-viewport.is-open > .lpt-menu__mega {
	width: 100vw;
	max-width: 100vw;
	min-width: 0;
}
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-widget:hover > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-widget:focus-within > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-w-widget.is-open > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-start:hover > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-start:focus-within > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-start.is-open > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-end:hover > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-end:focus-within > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-end.is-open > .lpt-menu__item-anchor > .lpt-menu__mega {
	transform: translateY(0);
}
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-viewport:hover > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-viewport:focus-within > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-w-viewport.is-open > .lpt-menu__mega {
	transform: translateX(-50%) translateY(0);
}
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-center:hover > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-center:focus-within > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-center.is-open > .lpt-menu__item-anchor > .lpt-menu__mega {
	transform: translate(-50%, 0);
}

/* ---------- Mega panel open animations (per item) ---------- */
.lpt-menu__item--mega-anim-slide > .lpt-menu__mega,
.lpt-menu__item--mega-anim-slide.lpt-menu__item--mega-w-custom > .lpt-menu__item-anchor > .lpt-menu__mega {
	transform: translateY(28px);
}
.lpt-menu__item--mega-anim-slide-up > .lpt-menu__mega,
.lpt-menu__item--mega-anim-slide-up.lpt-menu__item--mega-w-custom > .lpt-menu__item-anchor > .lpt-menu__mega {
	transform: translateY(-20px);
}
.lpt-menu__item--mega-anim-zoom > .lpt-menu__mega,
.lpt-menu__item--mega-anim-zoom.lpt-menu__item--mega-w-custom > .lpt-menu__item-anchor > .lpt-menu__mega {
	transform: translateY(6px) scale(0.94);
	transform-origin: top center;
}
.lpt-menu__item--mega-anim-zoom.lpt-menu__item--mega-a-start > .lpt-menu__mega,
.lpt-menu__item--mega-anim-zoom.lpt-menu__item--mega-a-start.lpt-menu__item--mega-w-custom > .lpt-menu__item-anchor > .lpt-menu__mega {
	transform-origin: top left;
}
.lpt-menu__item--mega-anim-zoom.lpt-menu__item--mega-a-end > .lpt-menu__mega,
.lpt-menu__item--mega-anim-zoom.lpt-menu__item--mega-a-end.lpt-menu__item--mega-w-custom > .lpt-menu__item-anchor > .lpt-menu__mega {
	transform-origin: top right;
}
.lpt-menu__item--mega-anim-reveal > .lpt-menu__mega,
.lpt-menu__item--mega-anim-reveal.lpt-menu__item--mega-w-custom > .lpt-menu__item-anchor > .lpt-menu__mega {
	transform: none;
	clip-path: inset(0 0 100% 0);
	transition: none;
}
.lpt-menu.is-ready .lpt-menu__item--mega-anim-reveal > .lpt-menu__mega,
.lpt-menu.is-ready .lpt-menu__item--mega-anim-reveal.lpt-menu__item--mega-w-custom > .lpt-menu__item-anchor > .lpt-menu__mega {
	transition: clip-path .38s cubic-bezier(.22, 1, .36, 1), opacity .28s ease, visibility .28s ease;
}
.lpt-menu__item--mega-anim-none > .lpt-menu__mega,
.lpt-menu__item--mega-anim-none.lpt-menu__item--mega-w-custom > .lpt-menu__item-anchor > .lpt-menu__mega {
	transition: none;
	transform: none;
}
.lpt-menu__item--mega-w-viewport.lpt-menu__item--mega-anim-slide > .lpt-menu__mega {
	transform: translateX(-50%) translateY(28px);
}
.lpt-menu__item--mega-w-viewport.lpt-menu__item--mega-anim-slide-up > .lpt-menu__mega {
	transform: translateX(-50%) translateY(-20px);
}
.lpt-menu__item--mega-w-viewport.lpt-menu__item--mega-anim-zoom > .lpt-menu__mega {
	transform: translateX(-50%) translateY(6px) scale(0.94);
	transform-origin: top center;
}
.lpt-menu__item--mega-w-viewport.lpt-menu__item--mega-anim-reveal > .lpt-menu__mega {
	transform: translateX(-50%);
	clip-path: inset(0 0 100% 0);
}
.lpt-menu__item--mega-w-viewport.lpt-menu__item--mega-anim-none > .lpt-menu__mega {
	transform: translateX(-50%);
}
.lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-center.lpt-menu__item--mega-anim-slide > .lpt-menu__item-anchor > .lpt-menu__mega {
	transform: translate(-50%, 28px);
}
.lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-center.lpt-menu__item--mega-anim-slide-up > .lpt-menu__item-anchor > .lpt-menu__mega {
	transform: translate(-50%, -20px);
}
.lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-center.lpt-menu__item--mega-anim-zoom > .lpt-menu__item-anchor > .lpt-menu__mega {
	transform: translate(-50%, 6px) scale(0.94);
}
.lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-center.lpt-menu__item--mega-anim-reveal > .lpt-menu__item-anchor > .lpt-menu__mega {
	transform: translate(-50%, 0);
	clip-path: inset(0 0 100% 0);
}
.lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-center.lpt-menu__item--mega-anim-none > .lpt-menu__item-anchor > .lpt-menu__mega {
	transform: translate(-50%, 0);
}

/* Open — animation-specific end states */
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-slide:hover > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-slide.lpt-menu__item--mega-w-custom:hover > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-slide:focus-within > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-slide.lpt-menu__item--mega-w-custom:focus-within > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-anim-slide.is-open > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-anim-slide.lpt-menu__item--mega-w-custom.is-open > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-slide.lpt-menu__item--mega-w-widget:hover > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-slide.lpt-menu__item--mega-w-widget:focus-within > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-anim-slide.lpt-menu__item--mega-w-widget.is-open > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-slide.lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-start:hover > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-slide.lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-start:focus-within > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-anim-slide.lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-start.is-open > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-slide.lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-end:hover > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-slide.lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-end:focus-within > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-anim-slide.lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-end.is-open > .lpt-menu__item-anchor > .lpt-menu__mega {
	transform: translateY(0);
}
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-slide-up:hover > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-slide-up.lpt-menu__item--mega-w-custom:hover > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-slide-up:focus-within > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-slide-up.lpt-menu__item--mega-w-custom:focus-within > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-anim-slide-up.is-open > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-anim-slide-up.lpt-menu__item--mega-w-custom.is-open > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-slide-up.lpt-menu__item--mega-w-widget:hover > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-slide-up.lpt-menu__item--mega-w-widget:focus-within > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-anim-slide-up.lpt-menu__item--mega-w-widget.is-open > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-slide-up.lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-start:hover > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-slide-up.lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-start:focus-within > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-anim-slide-up.lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-start.is-open > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-slide-up.lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-end:hover > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-slide-up.lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-end:focus-within > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-anim-slide-up.lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-end.is-open > .lpt-menu__item-anchor > .lpt-menu__mega {
	transform: translateY(0);
}
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-zoom:hover > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-zoom.lpt-menu__item--mega-w-custom:hover > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-zoom:focus-within > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-zoom.lpt-menu__item--mega-w-custom:focus-within > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-anim-zoom.is-open > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-anim-zoom.lpt-menu__item--mega-w-custom.is-open > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-zoom.lpt-menu__item--mega-w-widget:hover > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-zoom.lpt-menu__item--mega-w-widget:focus-within > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-anim-zoom.lpt-menu__item--mega-w-widget.is-open > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-zoom.lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-start:hover > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-zoom.lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-start:focus-within > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-anim-zoom.lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-start.is-open > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-zoom.lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-end:hover > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-zoom.lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-end:focus-within > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-anim-zoom.lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-end.is-open > .lpt-menu__item-anchor > .lpt-menu__mega {
	transform: translateY(0) scale(1);
}
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-reveal:hover > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-reveal.lpt-menu__item--mega-w-custom:hover > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-reveal:focus-within > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-reveal.lpt-menu__item--mega-w-custom:focus-within > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-anim-reveal.is-open > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-anim-reveal.lpt-menu__item--mega-w-custom.is-open > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-reveal.lpt-menu__item--mega-w-widget:hover > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-reveal.lpt-menu__item--mega-w-widget:focus-within > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-anim-reveal.lpt-menu__item--mega-w-widget.is-open > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-reveal.lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-start:hover > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-reveal.lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-start:focus-within > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-anim-reveal.lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-start.is-open > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-reveal.lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-end:hover > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-anim-reveal.lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-end:focus-within > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-anim-reveal.lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-end.is-open > .lpt-menu__item-anchor > .lpt-menu__mega {
	clip-path: inset(0 0 0 0);
}
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-viewport.lpt-menu__item--mega-anim-slide:hover > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-viewport.lpt-menu__item--mega-anim-slide:focus-within > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-w-viewport.lpt-menu__item--mega-anim-slide.is-open > .lpt-menu__mega {
	transform: translateX(-50%) translateY(0);
}
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-viewport.lpt-menu__item--mega-anim-slide-up:hover > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-viewport.lpt-menu__item--mega-anim-slide-up:focus-within > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-w-viewport.lpt-menu__item--mega-anim-slide-up.is-open > .lpt-menu__mega {
	transform: translateX(-50%) translateY(0);
}
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-viewport.lpt-menu__item--mega-anim-zoom:hover > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-viewport.lpt-menu__item--mega-anim-zoom:focus-within > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-w-viewport.lpt-menu__item--mega-anim-zoom.is-open > .lpt-menu__mega {
	transform: translateX(-50%) translateY(0) scale(1);
}
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-viewport.lpt-menu__item--mega-anim-reveal:hover > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-viewport.lpt-menu__item--mega-anim-reveal:focus-within > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-w-viewport.lpt-menu__item--mega-anim-reveal.is-open > .lpt-menu__mega {
	transform: translateX(-50%);
	clip-path: inset(0 0 0 0);
}
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-center.lpt-menu__item--mega-anim-slide:hover > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-center.lpt-menu__item--mega-anim-slide:focus-within > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-center.lpt-menu__item--mega-anim-slide.is-open > .lpt-menu__item-anchor > .lpt-menu__mega {
	transform: translate(-50%, 0);
}
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-center.lpt-menu__item--mega-anim-slide-up:hover > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-center.lpt-menu__item--mega-anim-slide-up:focus-within > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-center.lpt-menu__item--mega-anim-slide-up.is-open > .lpt-menu__item-anchor > .lpt-menu__mega {
	transform: translate(-50%, 0);
}
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-center.lpt-menu__item--mega-anim-zoom:hover > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-center.lpt-menu__item--mega-anim-zoom:focus-within > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-center.lpt-menu__item--mega-anim-zoom.is-open > .lpt-menu__item-anchor > .lpt-menu__mega {
	transform: translate(-50%, 0) scale(1);
}
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-center.lpt-menu__item--mega-anim-reveal:hover > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-hover .lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-center.lpt-menu__item--mega-anim-reveal:focus-within > .lpt-menu__item-anchor > .lpt-menu__mega,
.lpt-menu--trigger-click .lpt-menu__item--mega-w-custom.lpt-menu__item--mega-a-center.lpt-menu__item--mega-anim-reveal.is-open > .lpt-menu__item-anchor > .lpt-menu__mega {
	transform: translate(-50%, 0);
	clip-path: inset(0 0 0 0);
}

/* Indicator rotation also covers mega items. */
.lpt-menu__item--mega:hover > .lpt-menu__item-anchor > .lpt-menu__link .lpt-menu__indicator:not(.lpt-menu__indicator--custom-dual):not(.lpt-menu__indicator--plus),
.lpt-menu__item--mega.is-open > .lpt-menu__item-anchor > .lpt-menu__link .lpt-menu__indicator:not(.lpt-menu__indicator--custom-dual):not(.lpt-menu__indicator--plus) {
	transform: rotate(180deg);
}

/* ---------- Toggle (hamburger) ---------- */
.lpt-menu__toggle {
	display: none;
	position: relative;
	z-index: 10000;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: var(--lpt-menu-toggle-size);
	height: var(--lpt-menu-toggle-size);
	padding: 0;
	background: var(--lpt-menu-toggle-bg);
	color: var(--lpt-menu-toggle-color);
	border: 0;
	border-radius: 8px;
	cursor: pointer;
	transition: background-color .2s ease, transform .2s ease;
}
.lpt-menu__toggle:has(.lpt-menu__toggle-label),
.lpt-menu__toggle.lpt-menu__toggle--with-label {
	width: auto;
	padding: 0 14px;
}
.lpt-menu__toggle--label-left {
	flex-direction: row-reverse;
}
.lpt-menu__toggle--label-right {
	flex-direction: row;
}
.lpt-menu__toggle:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.lpt-menu__toggle:hover { transform: scale(1.05); }
.lpt-menu__toggle-label {
	font-size: 0.95em;
	font-weight: 600;
	white-space: nowrap;
}

/* Toggle glyph — three `<span>`s morphed per variant via modifier class. */
.lpt-menu__toggle-icon {
	display: inline-flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	flex-shrink: 0;
	width: 22px;
	height: 22px;
	gap: 5px;
	position: relative;
	visibility: visible;
	opacity: 1;
}
.lpt-menu__toggle-icon span {
	display: block;
	background: currentColor;
	transform-origin: center;
	transition: transform .28s ease, opacity .28s ease, width .28s ease, height .28s ease, border-radius .28s ease;
}

/* Three bars (default hamburger). */
.lpt-menu__toggle--icon-bars .lpt-menu__toggle-icon span {
	width: 100%;
	height: 2px;
	border-radius: 2px;
}

/* Three dots — horizontal ⋯ when closed; reflows to an X when open. */
.lpt-menu__toggle--icon-dots .lpt-menu__toggle-icon {
	flex-direction: row;
	gap: 4px;
}
.lpt-menu__toggle--icon-dots .lpt-menu__toggle-icon span {
	width: 4px;
	height: 4px;
	min-width: 4px;
	min-height: 4px;
	border-radius: 50%;
}

/* Squeeze — narrower stacked bars that expand while the middle shrinks into an X. */
.lpt-menu__toggle--icon-squeeze .lpt-menu__toggle-icon {
	gap: 4px;
}
.lpt-menu__toggle--icon-squeeze .lpt-menu__toggle-icon span {
	width: 72%;
	height: 2px;
	border-radius: 999px;
	transition: transform .36s cubic-bezier(.65, .05, .36, 1), opacity .24s ease, width .3s ease, height .28s ease, border-radius .28s ease;
}

/* Open state — dots: row of circles becomes a stacked X. */
.lpt-menu--open .lpt-menu__toggle--icon-dots .lpt-menu__toggle-icon {
	flex-direction: column;
	gap: 5px;
}
.lpt-menu--open .lpt-menu__toggle--icon-dots .lpt-menu__toggle-icon span:nth-child(1) {
	width: 100%;
	height: 2px;
	border-radius: 2px;
	transform: translateY(7px) rotate(45deg);
}
.lpt-menu--open .lpt-menu__toggle--icon-dots .lpt-menu__toggle-icon span:nth-child(2) {
	opacity: 0;
	transform: scale(0);
}
.lpt-menu--open .lpt-menu__toggle--icon-dots .lpt-menu__toggle-icon span:nth-child(3) {
	width: 100%;
	height: 2px;
	border-radius: 2px;
	transform: translateY(-7px) rotate(-45deg);
}

/* Open state — squeeze: lines widen, middle bar collapses horizontally. */
.lpt-menu--open .lpt-menu__toggle--icon-squeeze .lpt-menu__toggle-icon span:nth-child(1) {
	width: 100%;
	transform: translateY(7px) rotate(45deg);
}
.lpt-menu--open .lpt-menu__toggle--icon-squeeze .lpt-menu__toggle-icon span:nth-child(2) {
	transform: scaleX(0);
	opacity: 0;
}
.lpt-menu--open .lpt-menu__toggle--icon-squeeze .lpt-menu__toggle-icon span:nth-child(3) {
	width: 100%;
	transform: translateY(-7px) rotate(-45deg);
}

/* Open state — bars morph into an X. */
.lpt-menu--open .lpt-menu__toggle--icon-bars .lpt-menu__toggle-icon span:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}
.lpt-menu--open .lpt-menu__toggle--icon-bars .lpt-menu__toggle-icon span:nth-child(2) {
	opacity: 0;
}
.lpt-menu--open .lpt-menu__toggle--icon-bars .lpt-menu__toggle-icon span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

/* Custom Elementor Icons — mobile hamburger toggle. */
.lpt-menu__toggle--icon-custom .lpt-menu__toggle-icon {
	gap: 0;
	font-size: 22px;
	width: 1em;
	height: 1em;
}
.lpt-menu__toggle--icon-custom .lpt-menu__toggle-icon i {
	width: 1em;
	height: 1em;
	line-height: 1;
	font-size: inherit;
	color: inherit;
}
.lpt-menu__toggle--icon-custom .lpt-menu__toggle-icon svg,
.lpt-menu__toggle--icon-custom .lpt-menu__toggle-icon .e-font-icon-svg {
	width: 1em;
	height: 1em;
	display: block;
	flex-shrink: 0;
	fill: currentColor;
}
.lpt-menu__toggle--icon-custom .lpt-menu__toggle-icon svg path {
	fill: currentColor;
}
.lpt-menu__toggle--icon-custom.lpt-menu__toggle--custom-dual .lpt-menu__toggle-icon {
	position: relative;
}
.lpt-menu__toggle--icon-custom.lpt-menu__toggle--custom-dual .lpt-menu__toggle-state {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: opacity .28s ease;
}
.lpt-menu__toggle--icon-custom.lpt-menu__toggle--custom-dual .lpt-menu__toggle-state--open {
	position: absolute;
	inset: 0;
	opacity: 0;
}
.lpt-menu--open .lpt-menu__toggle--icon-custom.lpt-menu__toggle--custom-dual .lpt-menu__toggle-state--closed {
	opacity: 0;
}
.lpt-menu--open .lpt-menu__toggle--icon-custom.lpt-menu__toggle--custom-dual .lpt-menu__toggle-state--open {
	opacity: 1;
}
.lpt-menu__toggle--icon-custom.lpt-menu__toggle--custom-rotate .lpt-menu__toggle-icon {
	transition: transform .28s ease;
}
.lpt-menu--open .lpt-menu__toggle--icon-custom.lpt-menu__toggle--custom-rotate .lpt-menu__toggle-icon {
	transform: rotate(90deg);
}

/* ---------- Overlay + drawer ---------- */
.lpt-menu__overlay {
	display: none;
	position: fixed;
	inset: 0;
	background: var(--lpt-menu-overlay-bg);
	opacity: 0;
	transition: opacity .25s ease;
	z-index: 9998;
	/* !important: glass/fixed header MU CSS often forces children to pointer-events:auto
	   and an invisible closed overlay then eats every click on the page. */
	pointer-events: none !important;
}
.lpt-menu__drawer {
	display: contents;
}

/* ---------- Mobile mode ---------- */
.lpt-menu--mobile-active { display: flex; justify-content: var(--lpt-menu-toggle-align); align-items: center; }
.lpt-menu--mobile-active .lpt-menu__toggle { display: inline-flex; }
.lpt-menu--mobile-active .lpt-menu__drawer { display: block; }
.lpt-menu--mobile-active .lpt-menu__overlay { display: block; pointer-events: none !important; }
.lpt-menu--mobile-active.lpt-menu--open .lpt-menu__overlay { opacity: 1; pointer-events: auto !important; }

.lpt-menu--mobile-active .lpt-menu__drawer {
	position: fixed;
	top: 0;
	bottom: 0;
	inset-inline-start: auto;
	inset-inline-end: 0;
	width: var(--lpt-menu-drawer-width);
	max-width: 100vw;
	background: var(--lpt-menu-drawer-bg);
	box-shadow: 0 0 60px rgba(15, 23, 42, .18);
	z-index: 9999;
	transform: translateX(100%);
	transition: transform .32s cubic-bezier(.22, 1, .36, 1);
	overflow-y: auto;
	padding: 24px 16px;
	box-sizing: border-box;
}
[dir="rtl"] .lpt-menu--mobile-active:not(.lpt-menu--drawer-left) .lpt-menu__drawer {
	transform: translateX(-100%);
}
.lpt-menu--mobile-active.lpt-menu--drawer-left .lpt-menu__drawer {
	inset-inline-start: 0;
	inset-inline-end: auto;
	transform: translateX(-100%);
}
[dir="rtl"] .lpt-menu--mobile-active.lpt-menu--drawer-left .lpt-menu__drawer {
	transform: translateX(100%);
}
.lpt-menu--mobile-active.lpt-menu--open .lpt-menu__drawer {
	transform: translateX(0);
}

/* Dropdown panel variant — slides down from below the toggle, occupies
   the full widget width (not pinned to viewport edge). */
.lpt-menu--mobile-active.lpt-menu--mobile-dropdown .lpt-menu__drawer {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	bottom: auto;
	width: 100%;
	transform: translateY(-12px);
	opacity: 0;
	visibility: hidden;
	transition: opacity .22s ease, transform .22s ease, visibility .22s ease;
	box-shadow: 0 12px 32px rgba(15, 23, 42, .14);
	padding: 12px;
	max-height: 70vh;
}
.lpt-menu--mobile-active.lpt-menu--mobile-dropdown.lpt-menu--open .lpt-menu__drawer {
	transform: translateY(0);
	opacity: 1;
	visibility: visible;
}
.lpt-menu--mobile-active.lpt-menu--mobile-dropdown .lpt-menu__overlay { display: none; }

/* Full-screen overlay variant. */
.lpt-menu--mobile-active.lpt-menu--mobile-fullscreen .lpt-menu__drawer {
	width: 100vw;
	max-width: 100vw;
	inset-inline-start: 0;
	transform: translateY(-100%);
	padding-top: 24px;
}
.lpt-menu--mobile-active.lpt-menu--mobile-fullscreen.lpt-menu--open .lpt-menu__drawer {
	transform: translateY(0);
}

/* Drawer list — stacks items vertically and shows sub-toggles. */
.lpt-menu--mobile-active .lpt-menu__list--root {
	flex-direction: column;
	align-items: stretch;
	gap: 4px;
}
.lpt-menu--mobile-active .lpt-menu__item { width: 100%; }
.lpt-menu--mobile-active .lpt-menu__link {
	width: 100%;
	box-sizing: border-box;
	display: flex;
	justify-content: space-between;
}
.lpt-menu--mobile-active .lpt-menu__submenu {
	position: static;
	box-shadow: none;
	background: transparent;
	padding: 0 0 0 16px;
	margin: 0;
	border: 0;
	border-radius: 0;
	opacity: 0;
	visibility: hidden;
	max-height: 0;
	overflow: hidden;
	transform: none;
	transition: max-height .3s ease, opacity .25s ease, visibility .25s;
	pointer-events: none;
}
.lpt-menu--mobile-active .lpt-menu__item.is-open > .lpt-menu__submenu {
	opacity: 1;
	visibility: visible;
	max-height: 800px;
	pointer-events: auto;
}

/* Mega panel inside the mobile drawer — stack it vertically, full width
   of the drawer, no fancy positioning. */
.lpt-menu--mobile-active .lpt-menu__mega {
	position: static;
	width: 100% !important;
	min-width: 0;
	margin: 0;
	box-shadow: none;
	border-radius: 0;
	background: transparent;
	opacity: 0;
	visibility: hidden;
	max-height: 0;
	overflow: hidden;
	pointer-events: none;
	transform: none !important;
	transition: max-height .3s ease, opacity .25s ease, visibility .25s;
}
.lpt-menu--mobile-active .lpt-menu__item--mega.is-open > .lpt-menu__mega {
	opacity: 1;
	visibility: visible;
	max-height: 1600px;
	pointer-events: auto;
}
.lpt-menu--mobile-active .lpt-menu__mega-inner {
	padding: 12px 8px 16px;
	max-height: none;
}
.lpt-menu--mobile-active .lpt-menu__sub-toggle {
	display: inline-flex;
	position: absolute;
	top: 4px;
	inset-inline-end: 4px;
}
.lpt-menu--mobile-active .lpt-menu__item--has-children > .lpt-menu__link {
	padding-inline-end: 48px;
}
.lpt-menu--mobile-active .lpt-menu__list--root .lpt-menu__indicator { display: none; }

/* Body scroll lock helper (added by JS). */
.lpt-menu-body-lock { overflow: hidden !important; }

/* ---------- Breakpoint switches ---------- */
/* Toggle + layout must not depend on JS — the root list is already hidden here,
   so the hamburger has to appear via CSS even before menu.js runs. */
@media (max-width: 600px) {
	.lpt-menu--bp-mobile:not(.lpt-menu--bp-never) {
		display: flex;
		justify-content: var(--lpt-menu-toggle-align);
		align-items: center;
	}
	.lpt-menu--bp-mobile:not(.lpt-menu--bp-never) .lpt-menu__toggle { display: inline-flex; }
	.lpt-menu--bp-mobile .lpt-menu__list--root { display: none; }
	.lpt-menu--bp-mobile.lpt-menu--mobile-active .lpt-menu__drawer .lpt-menu__list--root { display: flex; }
}
@media (max-width: 1024px) {
	.lpt-menu--bp-tablet:not(.lpt-menu--bp-never) {
		display: flex;
		justify-content: var(--lpt-menu-toggle-align);
		align-items: center;
	}
	.lpt-menu--bp-tablet:not(.lpt-menu--bp-never) .lpt-menu__toggle { display: inline-flex; }
	.lpt-menu--bp-tablet .lpt-menu__list--root { display: none; }
	.lpt-menu--bp-tablet.lpt-menu--mobile-active .lpt-menu__drawer .lpt-menu__list--root { display: flex; }
}
.lpt-menu--bp-always:not(.lpt-menu--bp-never) {
	display: flex;
	justify-content: var(--lpt-menu-toggle-align);
	align-items: center;
}
.lpt-menu--bp-always:not(.lpt-menu--bp-never) .lpt-menu__toggle { display: inline-flex; }
.lpt-menu--bp-always .lpt-menu__list--root { display: none; }
.lpt-menu--bp-always.lpt-menu--mobile-active .lpt-menu__drawer .lpt-menu__list--root { display: flex; }

/* When mobile is "never", make sure toggle stays hidden no matter what. */
.lpt-menu--bp-never .lpt-menu__toggle { display: none !important; }
.lpt-menu--bp-never .lpt-menu__overlay { display: none !important; }
.lpt-menu--bp-never .lpt-menu__drawer { display: contents !important; }

/* Editor placeholder. */
.lpt-menu__placeholder {
	padding: 14px 18px;
	color: #64748b;
	font-style: italic;
	background: #f8fafc;
	border: 1px dashed #cbd5e1;
	border-radius: 6px;
	text-align: center;
}

/* Reduced motion respect. */
@media (prefers-reduced-motion: reduce) {
	.lpt-menu *,
	.lpt-menu *::before,
	.lpt-menu *::after {
		transition-duration: 0.001ms !important;
		animation-duration: 0.001ms !important;
	}
}

/*
 * Elementor editor — show mega placeholder panel on hover/focus (no embedded template HTML).
 */
.elementor-editor-preview .lpt-menu__item--mega:hover > .lpt-menu__mega,
.elementor-editor-preview .lpt-menu__item--mega:focus-within > .lpt-menu__mega,
.elementor-editor-preview .lpt-menu__item--mega-w-custom:hover > .lpt-menu__item-anchor > .lpt-menu__mega,
.elementor-editor-preview .lpt-menu__item--mega-w-custom:focus-within > .lpt-menu__item-anchor > .lpt-menu__mega {
	position: absolute;
	width: auto !important;
	height: auto !important;
	min-width: 280px;
	margin: 0;
	padding-top: var(--lpt-menu-mega-offset);
	clip: auto !important;
	overflow: visible !important;
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
	max-height: none;
	z-index: 9999;
}
.elementor-editor-preview .lpt-menu__item:hover > .lpt-menu__submenu,
.elementor-editor-preview .lpt-menu__item:focus-within > .lpt-menu__submenu,
.elementor-editor-preview .lpt-menu__submenu .lpt-menu__item:hover > .lpt-menu__submenu,
.elementor-editor-preview .lpt-menu__submenu .lpt-menu__item:focus-within > .lpt-menu__submenu {
	position: absolute;
	width: auto !important;
	height: auto !important;
	margin: 0;
	clip: auto !important;
	overflow: visible !important;
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
	max-height: none;
	z-index: 9999;
}
.elementor-editor-preview .lpt-menu__mega-placeholder--editor {
	min-width: 260px;
}
