/* Xyod Menu — desktop + fullscreen mobile overlay */

.xyod-menu {
	--xyod-menu-burger-size: 24px;
	--xyod-menu-burger-bar: 2px;
	--xyod-menu-burger-gap: 7px;
	position: relative;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

/* Keep hamburger usable inside Elementor flex headers on small screens */
.elementor-widget-xyod-menu {
	flex: 0 0 auto !important;
	flex-shrink: 0 !important;
	min-width: 44px;
	max-width: none;
	box-sizing: border-box;
}

.elementor-widget-xyod-menu .xyod-menu__bar {
	width: auto;
	min-width: 44px;
	max-width: 100%;
}

.xyod-menu--empty {
	padding: 0.75rem 1rem;
	border: 1px dashed rgba(0, 0, 0, 0.25);
	background: rgba(0, 0, 0, 0.03);
	font-size: 13px;
	color: #555;
}

/* —— Burger (morph → X) —— */
.xyod-menu__bar {
	display: none;
	align-items: center;
	width: 100%;
	position: relative;
	z-index: 2;
}

.xyod-menu__burger {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box !important;
	width: 32px;
	height: 32px;
	min-width: 32px;
	min-height: 32px;
	/* Beat Elementor kit `button { padding }` — otherwise bars are crushed inside 32px */
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	background-color: transparent !important;
	box-shadow: none !important;
	outline: none !important;
	/* Beat Elementor kit `button { color }` so the bars stay visible */
	color: var(--xyod-menu-burger-solid, #111111) !important;
	font-size: 0 !important;
	line-height: 0 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	cursor: pointer;
	text-decoration: none !important;
	appearance: none;
	-webkit-appearance: none;
	-webkit-tap-highlight-color: transparent;
	overflow: visible;
	opacity: 1;
	visibility: visible;
}

.xyod-menu__burger:hover,
.xyod-menu__burger:focus,
.xyod-menu__burger:focus-visible,
.xyod-menu__burger:active {
	padding: 0 !important;
	margin: 0 !important;
	background: transparent !important;
	background-color: transparent !important;
	box-shadow: none !important;
	outline: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	text-decoration: none !important;
	color: var(--xyod-menu-burger-solid, #111111) !important;
	opacity: 1;
	visibility: visible;
}

.xyod-menu__burger-box {
	position: relative;
	display: block;
	width: var(--xyod-menu-burger-size, 24px);
	height: calc(var(--xyod-menu-burger-size, 24px) * 0.72);
	overflow: visible;
	pointer-events: none;
}

.xyod-menu__burger-inner,
.xyod-menu__burger-inner::before,
.xyod-menu__burger-inner::after {
	position: absolute;
	left: 0;
	display: block;
	width: 100%;
	height: var(--xyod-menu-burger-bar, 2px);
	/* Use the solid var directly so kit `button { color }` cannot blank the lines */
	background: var(--xyod-menu-burger-solid, #111111) !important;
	background-color: var(--xyod-menu-burger-solid, #111111) !important;
	border-radius: 1px;
	transition:
		transform 0.55s cubic-bezier(0.68, -0.55, 0.27, 1.55),
		top 0.55s cubic-bezier(0.23, 1, 0.32, 1),
		opacity 0.35s ease,
		width 0.45s ease,
		background-color 0.35s ease;
	transform-origin: center;
}

.xyod-menu__burger-inner {
	top: 50%;
	margin-top: calc(var(--xyod-menu-burger-bar, 2px) / -2);
	width: 100%;
	opacity: 1;
}

.xyod-menu__burger-inner::before,
.xyod-menu__burger-inner::after {
	content: "";
}

.xyod-menu__burger-inner::before {
	top: calc(var(--xyod-menu-burger-gap, 7px) * -1);
	width: 100%;
}

.xyod-menu__burger-inner::after {
	top: var(--xyod-menu-burger-gap, 7px);
	width: 72%;
}

/* Morph to X — hide only the middle bar fill; keep opacity so ::before/::after stay visible */
.xyod-menu.is-open .xyod-menu__burger-inner,
.xyod-menu__burger.is-open .xyod-menu__burger-inner {
	background: transparent !important;
	background-color: transparent !important;
	/* Do NOT set opacity: 0 — that hides the X arms (::before / ::after). */
	opacity: 1;
}

.xyod-menu.is-open .xyod-menu__burger-inner::before,
.xyod-menu__burger.is-open .xyod-menu__burger-inner::before {
	top: 0;
	width: 100%;
	opacity: 1;
	transform: rotate(45deg) scaleX(1.05);
	background: var(--xyod-menu-burger-solid, #111111) !important;
	background-color: var(--xyod-menu-burger-solid, #111111) !important;
}

.xyod-menu.is-open .xyod-menu__burger-inner::after,
.xyod-menu__burger.is-open .xyod-menu__burger-inner::after {
	top: 0;
	width: 100%;
	opacity: 1;
	transform: rotate(-45deg) scaleX(1.05);
	background: var(--xyod-menu-burger-solid, #111111) !important;
	background-color: var(--xyod-menu-burger-solid, #111111) !important;
}

/* Floated above fullscreen overlay (portaled into the overlay panel) */
.xyod-menu__burger--floating {
	position: absolute !important;
	z-index: 20 !important;
	background: transparent !important;
	color: var(--xyod-burger-color, #111111) !important;
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
	/* Live Style offsets — separate from transform so dismiss scale still works */
	translate: var(--xyod-toggle-offset-x, 0px) var(--xyod-toggle-offset-y, 0px);
}

/* Fallback when overlay parent is missing (rare) */
body > .xyod-menu__burger--floating {
	position: fixed !important;
	z-index: 10051 !important;
}

.xyod-menu-overlay > .xyod-menu__burger--floating {
	position: absolute !important;
	z-index: 20 !important;
}

.xyod-menu__burger--floating .xyod-menu__burger-inner,
.xyod-menu__burger--floating .xyod-menu__burger-inner::before,
.xyod-menu__burger--floating .xyod-menu__burger-inner::after {
	background: var(--xyod-burger-color, #111111) !important;
	background-color: var(--xyod-burger-color, #111111) !important;
}

.xyod-menu__burger--floating.is-open .xyod-menu__burger-inner {
	background: transparent !important;
	background-color: transparent !important;
	opacity: 1 !important;
}

.xyod-menu__burger--floating.is-open .xyod-menu__burger-inner::before,
.xyod-menu__burger--floating.is-open .xyod-menu__burger-inner::after {
	background: var(--xyod-burger-color, #111111) !important;
	background-color: var(--xyod-burger-color, #111111) !important;
	opacity: 1 !important;
}

.xyod-menu__burger--floating.is-dismissing {
	opacity: 0 !important;
	transform: scale(0.15) !important;
	transform-origin: center center;
	transition:
		opacity 0.35s cubic-bezier(0.4, 0, 0.2, 1),
		transform 0.38s cubic-bezier(0.4, 0, 0.2, 1) !important;
	pointer-events: none;
}

/* Editor: room on the right to click past Elementor handles */
.elementor-editor-active .elementor-widget-xyod-menu .xyod-menu__bar {
	position: relative;
	z-index: 25;
	pointer-events: auto !important;
	padding-right: 10px;
	box-sizing: border-box;
}

.elementor-editor-active .elementor-widget-xyod-menu .xyod-menu__burger {
	position: relative;
	z-index: 26;
	pointer-events: auto !important;
	margin-right: 4px;
}

.elementor-editor-active .elementor-widget-xyod-menu .elementor-editor-element-settings {
	pointer-events: none;
}

.elementor-editor-active .elementor-widget-xyod-menu .elementor-editor-element-setting {
	pointer-events: auto;
}

.elementor-editor-active .elementor-widget-xyod-menu > .elementor-widget-container {
	overflow: visible !important;
}

/* —— Desktop panel —— */
.elementor-widget-xyod-menu,
.elementor-widget-xyod-menu > .elementor-widget-container,
.xyod-menu,
.xyod-menu__panel--desktop,
.xyod-menu__list,
.xyod-menu__item {
	overflow: visible !important;
}

.xyod-menu__panel--desktop {
	width: 100%;
}

.xyod-menu__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	list-style: none;
	margin: 0;
	padding: 0;
}

/* Desktop button — menu item with CSS class "xyod-btn" */
.xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item--btn {
	align-items: center;
}

.xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item--btn > .xyod-menu__cta {
	--xyod-btn-text: var(--xyod-btn-solid-text, #ffffff);
	--xyod-btn-icon: var(--xyod-btn-solid-icon, var(--xyod-btn-text));
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 10px 22px;
	border: 1px solid var(--xyod-btn-solid-border, #ffffff);
	border-radius: 0;
	background: var(--xyod-btn-solid-bg, transparent);
	color: var(--xyod-btn-text);
	text-decoration: none !important;
	line-height: 1.2;
	letter-spacing: 0.08em;
	white-space: nowrap;
	box-sizing: border-box;
	transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease;
}

.xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item--btn > .xyod-menu__cta .xyod-menu__link-text {
	color: var(--xyod-btn-text) !important;
	transition: color 0.25s ease;
}

.xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item--btn > .xyod-menu__cta:hover,
.xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item--btn > .xyod-menu__cta:focus,
.xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item--btn:hover > .xyod-menu__cta {
	--xyod-btn-text: var(--xyod-btn-solid-text-hover, var(--xyod-btn-solid-text, #ffffff));
	--xyod-btn-icon: var(--xyod-btn-solid-icon-hover, var(--xyod-btn-solid-icon, var(--xyod-btn-text)));
	background: var(--xyod-btn-solid-bg-hover, var(--xyod-btn-solid-bg, transparent));
	border-color: var(--xyod-btn-solid-border-hover, var(--xyod-btn-solid-border, #ffffff));
	text-decoration: none !important;
	color: var(--xyod-btn-text);
}

.xyod-menu__panel--desktop .xyod-menu__cta-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	font-size: 12px;
	color: var(--xyod-btn-icon) !important;
	fill: var(--xyod-btn-icon);
	transition: color 0.25s ease, fill 0.25s ease;
}

.xyod-menu__panel--desktop .xyod-menu__cta-icon i {
	color: inherit !important;
}

.xyod-menu__panel--desktop .xyod-menu__cta-icon svg {
	display: block;
	width: 1em;
	height: 1em;
	fill: currentColor;
	color: inherit;
}

/* No pointer underline on button items */
.xyod-menu--pointer-underline .xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item--btn > .xyod-menu__link::after,
.xyod-menu--pointer-overline .xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item--btn > .xyod-menu__link::after,
.xyod-menu--pointer-double .xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item--btn > .xyod-menu__link::after,
.xyod-menu--pointer-double .xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item--btn > .xyod-menu__link::before {
	display: none !important;
}

/* Mobile overlay: treat button item as a normal link (no outline/graphic) */
.xyod-menu-overlay .xyod-menu__item--btn > .xyod-menu__cta,
.xyod-menu-overlay .xyod-menu__item--btn > .xyod-menu__link {
	display: inline;
	padding: 0;
	border: 0 !important;
	border-radius: 0;
	background: transparent !important;
	letter-spacing: inherit;
	gap: 0;
	white-space: normal;
}

.xyod-menu-overlay .xyod-menu__cta-icon {
	display: none !important;
}

.xyod-menu__item {
	position: relative;
	display: inline-flex;
	flex-wrap: nowrap;
	align-items: center;
	margin: 0;
	padding: 0;
	list-style: none;
}

.xyod-menu__item--has-children {
	/* Keep chevron + link on one row; submenu is absolute */
	flex-wrap: nowrap;
	cursor: pointer;
}

/* Desktop: space via gap (hits the item) instead of toggle margin (dead zone). */
.xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item--has-children {
	column-gap: 0.2rem;
}

.xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item--has-children > .xyod-menu__toggle {
	margin-left: 0;
}

.xyod-menu__link {
	display: inline-flex;
	align-items: center;
	position: relative;
	padding: 0.35rem 0;
	color: var(--xyod-menu-solid-color, inherit);
	text-decoration: none;
	letter-spacing: normal;
	font-size: 12px;
	line-height: 1.4;
	transition: color 0.25s ease;
}

/* Solid by default (header editor + solid pages); transparent when header state says so */
.xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item:not(.xyod-menu__item--btn) > .xyod-menu__link {
	color: var(--xyod-menu-solid-color, #111111) !important;
}

.xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item:not(.xyod-menu__item--btn):hover > .xyod-menu__link,
.xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item:not(.xyod-menu__item--btn) > .xyod-menu__link:hover {
	color: var(--xyod-menu-solid-color-hover, var(--xyod-menu-solid-color, #111111)) !important;
}

.xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item:not(.xyod-menu__item--btn) > .xyod-menu__link.is-active {
	color: var(--xyod-menu-solid-color-active, var(--xyod-menu-solid-color, #111111)) !important;
}

.xyod-header--transparent .xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item:not(.xyod-menu__item--btn) > .xyod-menu__link {
	color: var(--xyod-menu-transparent-color, #ffffff) !important;
}

.xyod-header--transparent .xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item:not(.xyod-menu__item--btn):hover > .xyod-menu__link,
.xyod-header--transparent .xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item:not(.xyod-menu__item--btn) > .xyod-menu__link:hover {
	color: var(--xyod-menu-transparent-color-hover, var(--xyod-menu-transparent-color, #ffffff)) !important;
}

.xyod-header--transparent .xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item:not(.xyod-menu__item--btn) > .xyod-menu__link.is-active {
	color: var(--xyod-menu-transparent-color-active, var(--xyod-menu-transparent-color, #ffffff)) !important;
}

/* Button — transparent header surface */
.xyod-header--transparent .xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item--btn > .xyod-menu__cta {
	--xyod-btn-text: var(--xyod-btn-transparent-text, #ffffff);
	--xyod-btn-icon: var(--xyod-btn-transparent-icon, var(--xyod-btn-text));
	background: var(--xyod-btn-transparent-bg, transparent);
	border-color: var(--xyod-btn-transparent-border, #ffffff);
}

.xyod-header--transparent .xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item--btn > .xyod-menu__cta:hover,
.xyod-header--transparent .xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item--btn > .xyod-menu__cta:focus,
.xyod-header--transparent .xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item--btn:hover > .xyod-menu__cta {
	--xyod-btn-text: var(--xyod-btn-transparent-text-hover, var(--xyod-btn-transparent-text, #ffffff));
	--xyod-btn-icon: var(--xyod-btn-transparent-icon-hover, var(--xyod-btn-transparent-icon, var(--xyod-btn-text)));
	background: var(--xyod-btn-transparent-bg-hover, var(--xyod-btn-transparent-bg, transparent));
	border-color: var(--xyod-btn-transparent-border-hover, var(--xyod-btn-transparent-border, #ffffff));
	color: var(--xyod-btn-text);
}

/* Submenu indicator — own colors; empty falls back to link color */
.xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item > .xyod-menu__toggle {
	color: var(--xyod-menu-indicator-color, var(--xyod-menu-solid-color, #111111)) !important;
}

.xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item:hover > .xyod-menu__toggle,
.xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item > .xyod-menu__toggle:hover {
	color: var(--xyod-menu-indicator-color-hover, var(--xyod-menu-indicator-color, var(--xyod-menu-solid-color-hover, var(--xyod-menu-solid-color, #111111)))) !important;
}

.xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item.is-sub-open > .xyod-menu__toggle,
.xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item:focus-within > .xyod-menu__toggle {
	color: var(--xyod-menu-indicator-color-active, var(--xyod-menu-indicator-color, var(--xyod-menu-solid-color-active, var(--xyod-menu-solid-color, #111111)))) !important;
}

.xyod-header--transparent .xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item > .xyod-menu__toggle {
	color: var(--xyod-menu-indicator-transparent-color, var(--xyod-menu-transparent-color, #ffffff)) !important;
}

.xyod-header--transparent .xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item:hover > .xyod-menu__toggle,
.xyod-header--transparent .xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item > .xyod-menu__toggle:hover {
	color: var(--xyod-menu-indicator-transparent-color-hover, var(--xyod-menu-indicator-transparent-color, var(--xyod-menu-transparent-color-hover, var(--xyod-menu-transparent-color, #ffffff)))) !important;
}

.xyod-header--transparent .xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item.is-sub-open > .xyod-menu__toggle,
.xyod-header--transparent .xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item:focus-within > .xyod-menu__toggle {
	color: var(--xyod-menu-indicator-transparent-color-active, var(--xyod-menu-indicator-transparent-color, var(--xyod-menu-transparent-color-active, var(--xyod-menu-transparent-color, #ffffff)))) !important;
}

.xyod-header--transparent .xyod-menu__burger {
	color: var(--xyod-menu-burger-transparent, #ffffff) !important;
}

.xyod-header--transparent .xyod-menu__burger:hover,
.xyod-header--transparent .xyod-menu__burger:focus,
.xyod-header--transparent .xyod-menu__burger:focus-visible,
.xyod-header--transparent .xyod-menu__burger:active {
	color: var(--xyod-menu-burger-transparent, #ffffff) !important;
}

.xyod-header--transparent .xyod-menu__burger-inner,
.xyod-header--transparent .xyod-menu__burger-inner::before,
.xyod-header--transparent .xyod-menu__burger-inner::after {
	background: var(--xyod-menu-burger-transparent, #ffffff) !important;
	background-color: var(--xyod-menu-burger-transparent, #ffffff) !important;
}

.xyod-header--transparent .xyod-menu.is-open .xyod-menu__burger-inner,
.xyod-header--transparent .xyod-menu__burger.is-open .xyod-menu__burger-inner {
	background: transparent !important;
	background-color: transparent !important;
}

.xyod-header--transparent .xyod-menu.is-open .xyod-menu__burger-inner::before,
.xyod-header--transparent .xyod-menu.is-open .xyod-menu__burger-inner::after,
.xyod-header--transparent .xyod-menu__burger.is-open .xyod-menu__burger-inner::before,
.xyod-header--transparent .xyod-menu__burger.is-open .xyod-menu__burger-inner::after {
	background: var(--xyod-menu-burger-transparent, #ffffff) !important;
	background-color: var(--xyod-menu-burger-transparent, #ffffff) !important;
}

/* Pointer — solid / transparent + hover / active */
.xyod-menu--pointer-underline .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item > .xyod-menu__link::after,
.xyod-menu--pointer-overline .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item > .xyod-menu__link::after,
.xyod-menu--pointer-double .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item > .xyod-menu__link::after,
.xyod-menu--pointer-double .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item > .xyod-menu__link::before {
	background-color: var(--xyod-menu-pointer-solid-hover, currentColor);
}

.xyod-menu--pointer-underline .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item > .xyod-menu__link.is-active::after,
.xyod-menu--pointer-overline .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item > .xyod-menu__link.is-active::after,
.xyod-menu--pointer-double .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item > .xyod-menu__link.is-active::after,
.xyod-menu--pointer-double .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item > .xyod-menu__link.is-active::before {
	background-color: var(--xyod-menu-pointer-solid-active, var(--xyod-menu-pointer-solid-hover, currentColor));
}

.xyod-header--transparent .xyod-menu--pointer-underline .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item > .xyod-menu__link::after,
.xyod-header--transparent .xyod-menu--pointer-overline .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item > .xyod-menu__link::after,
.xyod-header--transparent .xyod-menu--pointer-double .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item > .xyod-menu__link::after,
.xyod-header--transparent .xyod-menu--pointer-double .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item > .xyod-menu__link::before {
	background-color: var(--xyod-menu-pointer-transparent-hover, currentColor);
}

.xyod-header--transparent .xyod-menu--pointer-underline .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item > .xyod-menu__link.is-active::after,
.xyod-header--transparent .xyod-menu--pointer-overline .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item > .xyod-menu__link.is-active::after,
.xyod-header--transparent .xyod-menu--pointer-double .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item > .xyod-menu__link.is-active::after,
.xyod-header--transparent .xyod-menu--pointer-double .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item > .xyod-menu__link.is-active::before {
	background-color: var(--xyod-menu-pointer-transparent-active, var(--xyod-menu-pointer-transparent-hover, currentColor));
}

/* Pointer structure */
.xyod-menu--pointer-underline .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item > .xyod-menu__link::after,
.xyod-menu--pointer-overline .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item > .xyod-menu__link::after,
.xyod-menu--pointer-double .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item > .xyod-menu__link::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	height: 1px;
	background-color: var(--xyod-menu-pointer-solid-hover, currentColor);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.3s ease;
}

.xyod-menu--pointer-underline .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item > .xyod-menu__link::after {
	bottom: 0;
}

.xyod-menu--pointer-overline .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item > .xyod-menu__link::after {
	top: 0;
}

.xyod-menu--pointer-double .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item > .xyod-menu__link::after {
	bottom: 0;
}

.xyod-menu--pointer-double .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item > .xyod-menu__link::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 1px;
	background-color: var(--xyod-menu-pointer-solid-hover, currentColor);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.3s ease;
}

.xyod-menu--pointer-underline .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item:hover > .xyod-menu__link::after,
.xyod-menu--pointer-underline .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item > .xyod-menu__link.is-active::after,
.xyod-menu--pointer-overline .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item:hover > .xyod-menu__link::after,
.xyod-menu--pointer-overline .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item > .xyod-menu__link.is-active::after,
.xyod-menu--pointer-double .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item:hover > .xyod-menu__link::after,
.xyod-menu--pointer-double .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item > .xyod-menu__link.is-active::after,
.xyod-menu--pointer-double .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item:hover > .xyod-menu__link::before,
.xyod-menu--pointer-double .xyod-menu__panel--desktop .xyod-menu__list > .xyod-menu__item > .xyod-menu__link.is-active::before {
	transform: scaleX(1);
}

.xyod-menu__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	align-self: center;
	width: 1.35rem;
	height: 1.35rem;
	margin-left: 0.2rem;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	background-color: transparent !important;
	box-shadow: none !important;
	outline: none !important;
	color: inherit;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	text-decoration: none !important;
	flex-shrink: 0;
}

/* Border-chevron reads low vs uppercase desktop labels — lift to optical center */
.xyod-menu__panel--desktop > .xyod-menu__list > .xyod-menu__item > .xyod-menu__toggle {
	transform: translateY(-0.18em);
}

.xyod-menu__toggle:hover,
.xyod-menu__toggle:focus,
.xyod-menu__toggle:active {
	background: transparent !important;
	background-color: transparent !important;
	box-shadow: none !important;
	outline: none !important;
	border: 0 !important;
	color: inherit;
}

.xyod-menu--no-indicator .xyod-menu__toggle {
	display: none;
}

.xyod-menu__chevron {
	display: block;
	width: 6px;
	height: 6px;
	border-style: solid;
	border-color: currentColor;
	border-width: 0 1.5px 1.5px 0;
	transform: rotate(45deg);
	pointer-events: none;
}

.xyod-menu__item.is-sub-open > .xyod-menu__toggle .xyod-menu__chevron {
	transform: rotate(45deg);
}

/* Desktop dropdowns — premium fade + rise */
.xyod-menu--horizontal .xyod-menu__panel--desktop .xyod-menu__sub {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 1000;
	display: block;
	min-width: 220px;
	margin: 0;
	padding: 0.5rem 0;
	list-style: none;
	background: #111;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(14px);
	transition:
		opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.6s cubic-bezier(0.22, 1, 0.36, 1),
		visibility 0.55s;
	box-shadow: 0 2px 2px rgba(0, 0, 0, 0.15);
}

.xyod-menu--horizontal .xyod-menu__panel--desktop .xyod-menu__sub::before {
	/* Hit-area bridge between trigger and panel (keeps :hover while moving down) */
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -12px;
	height: 12px;
}

.xyod-menu--horizontal .xyod-menu__panel--desktop .xyod-menu__sub .xyod-menu__item {
	display: block;
	width: 100%;
}

.xyod-menu--horizontal .xyod-menu__panel--desktop .xyod-menu__sub .xyod-menu__link {
	display: block;
	width: 100%;
	box-sizing: border-box;
	padding: 0.6rem 1.1rem;
	letter-spacing: 0.02em;
	font-size: 13px;
	color: #fff;
	opacity: 0;
	transform: translateY(8px);
	transition:
		opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
		color 0.2s ease;
}

.xyod-menu--horizontal .xyod-menu__panel--desktop .xyod-menu__sub .xyod-menu__item:nth-child(1) .xyod-menu__link { transition-delay: 0.08s; }
.xyod-menu--horizontal .xyod-menu__panel--desktop .xyod-menu__sub .xyod-menu__item:nth-child(2) .xyod-menu__link { transition-delay: 0.14s; }
.xyod-menu--horizontal .xyod-menu__panel--desktop .xyod-menu__sub .xyod-menu__item:nth-child(3) .xyod-menu__link { transition-delay: 0.2s; }
.xyod-menu--horizontal .xyod-menu__panel--desktop .xyod-menu__sub .xyod-menu__item:nth-child(4) .xyod-menu__link { transition-delay: 0.26s; }
.xyod-menu--horizontal .xyod-menu__panel--desktop .xyod-menu__sub .xyod-menu__item:nth-child(5) .xyod-menu__link { transition-delay: 0.32s; }
.xyod-menu--horizontal .xyod-menu__panel--desktop .xyod-menu__sub .xyod-menu__item:nth-child(6) .xyod-menu__link { transition-delay: 0.38s; }
.xyod-menu--horizontal .xyod-menu__panel--desktop .xyod-menu__sub .xyod-menu__item:nth-child(n+7) .xyod-menu__link { transition-delay: 0.44s; }

.xyod-menu--horizontal .xyod-menu__panel--desktop .xyod-menu__sub .xyod-menu__link:hover {
	color: #fff;
	opacity: 0.75;
}

.xyod-menu--horizontal .xyod-menu__panel--desktop .xyod-menu__sub .xyod-menu__toggle {
	display: none;
}

.xyod-menu--horizontal .xyod-menu__panel--desktop .xyod-menu__sub .xyod-menu__sub {
	top: 0;
	left: 100%;
	padding-top: 0;
	margin-left: 0;
	transform: translateX(8px);
}

.xyod-menu--horizontal .xyod-menu__panel--desktop .xyod-menu__sub .xyod-menu__sub::before {
	display: none;
}

.xyod-menu--horizontal .xyod-menu__panel--desktop .xyod-menu__item:hover > .xyod-menu__sub,
.xyod-menu--horizontal .xyod-menu__panel--desktop .xyod-menu__item:focus-within > .xyod-menu__sub,
.xyod-menu--horizontal .xyod-menu__panel--desktop .xyod-menu__item.is-sub-open > .xyod-menu__sub {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0);
}

.xyod-menu--horizontal .xyod-menu__panel--desktop .xyod-menu__item:hover > .xyod-menu__sub .xyod-menu__link,
.xyod-menu--horizontal .xyod-menu__panel--desktop .xyod-menu__item:focus-within > .xyod-menu__sub .xyod-menu__link,
.xyod-menu--horizontal .xyod-menu__panel--desktop .xyod-menu__item.is-sub-open > .xyod-menu__sub .xyod-menu__link {
	opacity: 1;
	transform: translateY(0);
}

.xyod-menu--horizontal .xyod-menu__panel--desktop .xyod-menu__item:hover > .xyod-menu__sub .xyod-menu__link:hover,
.xyod-menu--horizontal .xyod-menu__panel--desktop .xyod-menu__item:focus-within > .xyod-menu__sub .xyod-menu__link:hover {
	opacity: 0.75;
}

.xyod-menu--horizontal .xyod-menu__panel--desktop .xyod-menu__sub .xyod-menu__item:hover > .xyod-menu__sub {
	transform: translateX(0);
}

/* —— Breakpoint: show burger / hide desktop (CSS so it works without JS) —— */
@media (max-width: 1024px) {
	.xyod-menu--bp-tablet .xyod-menu__bar {
		display: flex;
	}

	.xyod-menu--bp-tablet .xyod-menu__panel--desktop {
		display: none;
	}
}

@media (max-width: 767px) {
	.xyod-menu--bp-mobile .xyod-menu__bar {
		display: flex;
	}

	.xyod-menu--bp-mobile .xyod-menu__panel--desktop {
		display: none;
	}
}

.xyod-menu--bp-always .xyod-menu__bar {
	display: flex;
}

.xyod-menu--bp-always .xyod-menu__panel--desktop {
	display: none;
}

.xyod-menu--dropdown .xyod-menu__bar {
	display: flex;
}

.xyod-menu--dropdown .xyod-menu__panel--desktop {
	display: none;
}

/* JS sync class (same as CSS bp) */
.xyod-menu.is-mobile .xyod-menu__bar {
	display: flex;
}

.xyod-menu.is-mobile .xyod-menu__panel--desktop {
	display: none;
}

/* —— Fullscreen overlay (ported to body by JS) —— */
.xyod-menu-overlay {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	/* inset fill — avoid 100vw (causes horizontal scroll with scrollbars) */
	width: auto;
	height: auto;
	max-width: none;
	box-sizing: border-box;
	z-index: 10050;
	display: flex;
	flex-direction: column;
	/* Variable so Elementor Style > Background wins on frontend (overlay is portaled to body) */
	background-color: var(--xyod-menu-overlay-bg, #ffffff);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
	color: #111;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	overflow: hidden;
	/* JS/GSAP drives show — keep CSS fallback soft */
	transition: none;
}

/* Color tint over background image / color (Elementor-style background overlay) */
.xyod-menu-overlay::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background-color: var(--xyod-menu-overlay-scrim, #000000);
	opacity: var(--xyod-menu-overlay-scrim-opacity, 0);
}

.xyod-menu-overlay.is-visible {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.xyod-menu-overlay[hidden] {
	display: none !important;
}

.xyod-menu-overlay.is-visible[hidden] {
	display: flex !important;
}

/*
 * Dedicated close ✕ — lives inside the overlay so Elementor mobile preview
 * cannot bury it (unlike a body-level floating burger).
 * Default: white bars + dark halo so it stays visible on photo / dark panels
 * (auto “black on white bg” was invisible when a dark image sits on top).
 */
.xyod-menu-overlay__close {
	position: absolute;
	top: var(--xyod-toggle-top, 24px);
	right: var(--xyod-toggle-right, 20px);
	left: auto;
	/* Above __inner (z-index:1) and any portaled chrome */
	z-index: 10060 !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	min-width: 48px;
	min-height: 48px;
	margin: 0;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0;
	background: transparent !important;
	background-color: transparent !important;
	box-shadow: none !important;
	color: var(--xyod-menu-close-color, #ffffff) !important;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	/* Offsets applied by JS as translate (Elementor tablet/mobile values) */
	translate: 0 0;
	pointer-events: auto !important;
	opacity: 1 !important;
	visibility: visible !important;
	filter: drop-shadow(0 0 1px rgba(0, 0, 0, 0.9)) drop-shadow(0 1px 3px rgba(0, 0, 0, 0.55));
}

.xyod-menu-overlay__close:hover,
.xyod-menu-overlay__close:focus,
.xyod-menu-overlay__close:focus-visible,
.xyod-menu-overlay__close:active {
	background: transparent !important;
	background-color: transparent !important;
	box-shadow: none !important;
	outline: none;
	opacity: 0.9 !important;
	color: var(--xyod-menu-close-color, #ffffff) !important;
}

.xyod-menu-overlay__close-icon {
	position: relative;
	display: block;
	width: 22px;
	height: 22px;
	background: transparent !important;
	pointer-events: none;
}

.xyod-menu-overlay__close-icon::before,
.xyod-menu-overlay__close-icon::after {
	content: "" !important;
	position: absolute;
	left: 0;
	top: 50%;
	width: 100%;
	height: 2px;
	margin-top: -1px;
	background: var(--xyod-menu-close-color, #ffffff) !important;
	background-color: var(--xyod-menu-close-color, #ffffff) !important;
	border-radius: 1px;
}

.xyod-menu-overlay__close-icon::before {
	transform: rotate(45deg);
}

.xyod-menu-overlay__close-icon::after {
	transform: rotate(-45deg);
}

/*
 * Only hide the morphing burger when a real close ✕ exists.
 * Older cached markup without .xyod-menu-overlay__close was left with
 * nothing clickable because this rule zeroed the floating burger always.
 */
.xyod-menu-overlay--has-close > .xyod-menu__burger--floating,
.xyod-menu-overlay:has(> .xyod-menu-overlay__close) > .xyod-menu__burger--floating {
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
	width: 0 !important;
	height: 0 !important;
	overflow: hidden !important;
}

/* Sit below the WP admin bar when logged in (same offsets as smart header) */
body.admin-bar .xyod-menu-overlay {
	top: 32px;
}

@media screen and (max-width: 782px) {
	body.admin-bar .xyod-menu-overlay {
		top: 46px;
	}
}

.xyod-menu-overlay__inner {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	justify-content: flex-start;
	flex: 1 1 auto;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin: 0;
	padding: 4.5rem 1.5rem 2.5rem;
	box-sizing: border-box;
	overflow-x: hidden;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	/* Prevent browser scroll-anchoring from nudging ~2px when accordion height settles */
	overflow-anchor: none;
}

.xyod-menu-overlay__logo-wrap {
	display: flex;
	flex: 0 0 auto;
	justify-content: center;
	align-items: center;
	width: 100%;
	margin: 0;
	padding: 0;
}

.xyod-menu-overlay__logo img {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	margin: 0;
}

.xyod-menu-overlay__logo-text {
	font-size: 1.5rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	text-decoration: none;
	color: inherit;
}

.xyod-menu-overlay__nav {
	flex-grow: var(--xyod-social-nav-grow, 1);
	flex-shrink: 1;
	flex-basis: auto;
	display: flex;
	/* Top-align so accordion open/close doesn't re-center (and nudge) siblings */
	align-items: flex-start;
	justify-content: flex-start;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

.xyod-menu-overlay__nav .xyod-menu__list {
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

/* Lilou-style rows: full-width, top border, padding (no gap) */
.xyod-menu-overlay__nav .xyod-menu__item {
	position: relative;
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: flex-start;
	align-items: stretch;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-top: 1px solid color-mix(
		in srgb,
		var(--xyod-mobile-item-border-color, #111111) calc(var(--xyod-mobile-item-border-opacity, 0.15) * 100%),
		transparent
	);
	column-gap: 0;
	box-sizing: border-box;
}

.xyod-menu-overlay__nav .xyod-menu__list > .xyod-menu__item:last-child {
	border-bottom: 1px solid color-mix(
		in srgb,
		var(--xyod-mobile-item-border-color, #111111) calc(var(--xyod-mobile-item-border-opacity, 0.15) * 100%),
		transparent
	);
}

.xyod-menu-overlay__nav .xyod-menu__link {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	flex: 1 1 auto;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	padding: 15px 0;
	font-size: clamp(1.15rem, 4vw, 1.65rem);
	letter-spacing: normal;
	overflow-wrap: anywhere;
	word-break: break-word;
	transition: color 0.45s ease, opacity 0.45s ease;
}

/* Leave room for the 10% accordion hit area */
.xyod-menu-overlay__nav .xyod-menu__item--has-children > .xyod-menu__link {
	flex: 1 1 90%;
	width: 90%;
	max-width: 90%;
}

.xyod-menu-overlay__nav .xyod-menu__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 10%;
	width: 10%;
	max-width: 10%;
	height: auto;
	margin: 0;
	align-self: stretch;
	transition: color 0.45s ease;
}

/* Closed → point right; open → point down */
.xyod-menu-overlay__nav .xyod-menu__chevron {
	transform: rotate(-45deg);
	transition: border-color 0.45s ease, transform 0.45s ease;
}

.xyod-menu-overlay__nav .xyod-menu__item.is-sub-open > .xyod-menu__toggle .xyod-menu__chevron {
	transform: rotate(45deg);
}

/* Force accordion under the parent — never fly out to the side */
.xyod-menu-overlay__nav .xyod-menu__sub,
.xyod-menu-overlay__nav .xyod-menu__sub .xyod-menu__sub {
	position: static !important;
	left: auto !important;
	top: auto !important;
	display: none;
	flex: 0 0 100%;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	width: 100% !important;
	min-width: 0 !important;
	margin: 0;
	/* No vertical padding here — leftover padding at height:0 caused a close snap */
	padding: 0;
	opacity: 1;
	visibility: visible !important;
	pointer-events: auto !important;
	transform: none !important;
	background: transparent !important;
	box-shadow: none !important;
	overflow: hidden;
	box-sizing: border-box;
	overflow-anchor: none;
}

.xyod-menu-overlay__nav .xyod-menu__sub::before {
	display: none !important;
}

.xyod-menu-overlay__nav .xyod-menu__item.is-sub-open > .xyod-menu__sub {
	display: flex;
	overflow: hidden;
}

.xyod-menu-overlay__nav .xyod-menu__sub.is-animating {
	display: flex !important;
	overflow: hidden !important;
}

.xyod-menu-overlay__nav .xyod-menu__sub .xyod-menu__item {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	align-items: stretch;
	width: 100%;
	cursor: default;
}

.xyod-menu-overlay__nav .xyod-menu__sub .xyod-menu__link {
	/* Same size/weight as main links; tone via Style → Mobile Submenu opacity */
	color: var(--xyod-overlay-sub-color, inherit) !important;
	opacity: var(--xyod-overlay-sub-opacity, 0.75);
	transition: color 0.45s ease, opacity 0.45s ease;
	cursor: pointer;
	text-decoration: none !important;
}

.xyod-menu-overlay__nav .xyod-menu__sub .xyod-menu__link .xyod-menu__link-text {
	color: inherit !important;
}

.xyod-menu-overlay__nav .xyod-menu__sub .xyod-menu__link:hover {
	color: var(--xyod-overlay-sub-hover-color, var(--xyod-overlay-sub-color, inherit)) !important;
	opacity: var(--xyod-overlay-sub-hover-opacity, var(--xyod-overlay-sub-opacity, 1));
}

.xyod-menu-overlay__nav .xyod-menu__sub .xyod-menu__link.is-active {
	color: var(--xyod-overlay-sub-active-color, var(--xyod-overlay-sub-color, inherit)) !important;
	opacity: var(--xyod-overlay-sub-active-opacity, var(--xyod-overlay-sub-opacity, 1));
}

.xyod-menu__social {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 100%;
	gap: 1.25rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.xyod-menu__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.5rem;
	height: 1.5rem;
	/* Beat Elementor kit `a { color }` so Style → Social Icons Color applies */
	color: var(--xyod-social-color, #111111) !important;
	opacity: var(--xyod-social-opacity, 1);
	transition: color 0.35s ease, opacity 0.35s ease;
	text-decoration: none !important;
}

.xyod-menu__social-link:hover,
.xyod-menu__social-link:focus {
	color: var(--xyod-social-hover-color, var(--xyod-social-color, #111111)) !important;
	opacity: var(--xyod-social-hover-opacity, var(--xyod-social-opacity, 1));
	text-decoration: none !important;
}

.xyod-menu__social-link svg {
	width: 100%;
	height: 100%;
	display: block;
	fill: currentColor !important;
	color: inherit !important;
}

.xyod-menu__social-link svg path {
	fill: currentColor !important;
}

.xyod-menu-overlay__placeholder {
	text-align: center;
	opacity: 0.7;
	padding: 2rem 1rem;
}

body.xyod-menu-overlay-open {
	overflow: hidden !important;
	padding-right: var(--xyod-scrollbar-compensate, 0px);
}

html.xyod-menu-overlay-open {
	overflow: hidden !important;
}

/* Mega stub */
.xyod-menu__item--mega > .xyod-menu__sub {
	/* Reserved */
}
