/*
 * AFIWAI Divi Neo Hover Menu
 * Règles front statiques compatibles avec le module Menu Divi et le module Menu pleine largeur.
 */

.afiwai-neo-active {
	--afiwai-neo-primary: #00c8ff;
	--afiwai-neo-secondary: #a05aff;
	--afiwai-neo-accent: #00dcb4;
}

.afiwai-neo-active .et_pb_menu__menu > nav > ul.et-menu > li:not(.menu-item-has-children) > a,
.afiwai-neo-active .et_mobile_menu > li:not(.menu-item-has-children) > a {
	position: relative !important;
	display: inline-block !important;
	overflow: visible !important;
	text-decoration: none !important;
	-webkit-font-smoothing: antialiased !important;
	transform: translateZ(0);
	will-change: transform, filter;
	isolation: isolate;
}

.afiwai-neo-active .et_pb_menu__menu,
.afiwai-neo-active .et_pb_menu__menu > nav,
.afiwai-neo-active .et_pb_menu__menu > nav > ul.et-menu,
.afiwai-neo-active .et_pb_menu__menu > nav > ul.et-menu > li {
	overflow: visible !important;
}

/* Pseudo-éléments communs. */
.afiwai-neo-active .et_pb_menu__menu > nav > ul.et-menu > li:not(.menu-item-has-children) > a::before,
.afiwai-neo-active .et_pb_menu__menu > nav > ul.et-menu > li:not(.menu-item-has-children) > a::after,
.afiwai-neo-active .et_mobile_menu > li:not(.menu-item-has-children) > a::before,
.afiwai-neo-active .et_mobile_menu > li:not(.menu-item-has-children) > a::after {
	pointer-events: none !important;
	box-sizing: border-box !important;
}

/* 1 — Liquid Glow Underline */
.afiwai-neo-effect-liquid_glow .et_pb_menu__menu > nav > ul.et-menu > li:not(.menu-item-has-children) > a::after,
.afiwai-neo-effect-liquid_glow .et_mobile_menu > li:not(.menu-item-has-children) > a::after {
	content: "" !important;
	position: absolute !important;
	left: -6% !important;
	right: -6% !important;
	top: var(--afiwai-neo-underline-y, calc(100% - 2px)) !important;
	bottom: auto !important;
	height: .2em !important;
	border-radius: 999px !important;
	opacity: 0 !important;
	transform: scaleX(.25) !important;
	transform-origin: 50% 50% !important;
	filter: blur(10px) !important;
	background:
		radial-gradient(circle at 25% 50%, color-mix(in srgb, var(--afiwai-neo-primary) 75%, transparent), transparent 60%),
		radial-gradient(circle at 75% 50%, color-mix(in srgb, var(--afiwai-neo-secondary) 75%, transparent), transparent 60%),
		linear-gradient(90deg, color-mix(in srgb, var(--afiwai-neo-primary) 35%, transparent), color-mix(in srgb, var(--afiwai-neo-secondary) 35%, transparent)) !important;
	transition: opacity 220ms ease, transform 520ms cubic-bezier(.2,.9,.2,1), filter 520ms cubic-bezier(.2,.9,.2,1) !important;
}

.afiwai-neo-effect-liquid_glow .et_pb_menu__menu > nav > ul.et-menu > li:not(.menu-item-has-children) > a:hover::after,
.afiwai-neo-effect-liquid_glow .et_mobile_menu > li:not(.menu-item-has-children) > a:hover::after {
	opacity: 1 !important;
	transform: scaleX(1) !important;
	filter: blur(6px) !important;
}

/* 2 — Gradient Pill Slide */
.afiwai-neo-effect-pill_slide .et_pb_menu__menu > nav > ul.et-menu > li:not(.menu-item-has-children) > a,
.afiwai-neo-effect-pill_slide .et_mobile_menu > li:not(.menu-item-has-children) > a {
	padding: .18em .55em !important;
	border-radius: 999px !important;
}

.afiwai-neo-effect-pill_slide .et_pb_menu__menu > nav > ul.et-menu > li:not(.menu-item-has-children) > a::before,
.afiwai-neo-effect-pill_slide .et_mobile_menu > li:not(.menu-item-has-children) > a::before {
	content: "" !important;
	position: absolute !important;
	inset: -2px !important;
	border-radius: 999px !important;
	opacity: 0 !important;
	transform: translateY(6px) !important;
	background: linear-gradient(90deg, color-mix(in srgb, var(--afiwai-neo-primary) 35%, transparent), color-mix(in srgb, var(--afiwai-neo-secondary) 35%, transparent), color-mix(in srgb, var(--afiwai-neo-accent) 28%, transparent)) !important;
	filter: blur(10px) !important;
	transition: opacity 220ms ease, transform 520ms cubic-bezier(.2,.9,.2,1) !important;
	z-index: -1 !important;
}

.afiwai-neo-effect-pill_slide .et_pb_menu__menu > nav > ul.et-menu > li:not(.menu-item-has-children) > a:hover::before,
.afiwai-neo-effect-pill_slide .et_mobile_menu > li:not(.menu-item-has-children) > a:hover::before {
	opacity: 1 !important;
	transform: translateY(0) !important;
}

/* 3 — Neon Outline Draw */
.afiwai-neo-effect-outline_draw .et_pb_menu__menu > nav > ul.et-menu > li:not(.menu-item-has-children) > a,
.afiwai-neo-effect-outline_draw .et_mobile_menu > li:not(.menu-item-has-children) > a {
	padding: .18em .55em !important;
	border-radius: 999px !important;
}

.afiwai-neo-effect-outline_draw .et_pb_menu__menu > nav > ul.et-menu > li:not(.menu-item-has-children) > a::after,
.afiwai-neo-effect-outline_draw .et_mobile_menu > li:not(.menu-item-has-children) > a::after {
	content: "" !important;
	position: absolute !important;
	inset: -2px !important;
	border: 1px solid transparent !important;
	border-radius: 999px !important;
	opacity: 0 !important;
	background: linear-gradient(90deg, var(--afiwai-neo-primary), var(--afiwai-neo-secondary)) border-box !important;
	-webkit-mask: linear-gradient(#000 0 0) padding-box, linear-gradient(#000 0 0) !important;
	-webkit-mask-composite: xor !important;
	mask-composite: exclude !important;
	transition: opacity 220ms ease !important;
}

.afiwai-neo-effect-outline_draw .et_pb_menu__menu > nav > ul.et-menu > li:not(.menu-item-has-children) > a:hover::after,
.afiwai-neo-effect-outline_draw .et_mobile_menu > li:not(.menu-item-has-children) > a:hover::after {
	opacity: 1 !important;
}

/* 4 — Chromatic Glitch */
.afiwai-neo-effect-glitch_rgb .et_pb_menu__menu > nav > ul.et-menu > li:not(.menu-item-has-children) > a:hover,
.afiwai-neo-effect-glitch_rgb .et_mobile_menu > li:not(.menu-item-has-children) > a:hover {
	text-shadow: .9px 0 color-mix(in srgb, var(--afiwai-neo-primary) 55%, transparent), -.9px 0 color-mix(in srgb, var(--afiwai-neo-secondary) 45%, transparent) !important;
	transform: translateY(-1px) !important;
}

/* 5 — 3D Lift Shadow */
.afiwai-neo-effect-lift_3d .et_pb_menu__menu > nav > ul.et-menu > li:not(.menu-item-has-children) > a:hover,
.afiwai-neo-effect-lift_3d .et_mobile_menu > li:not(.menu-item-has-children) > a:hover {
	transform: translateY(-3px) !important;
	filter: drop-shadow(0 6px 7px rgba(0,0,0,.22)) saturate(1.08) !important;
}

/* 6 — Ink Spread */
.afiwai-neo-effect-ink_spread .et_pb_menu__menu > nav > ul.et-menu > li:not(.menu-item-has-children) > a::before,
.afiwai-neo-effect-ink_spread .et_mobile_menu > li:not(.menu-item-has-children) > a::before {
	content: "" !important;
	position: absolute !important;
	inset: -.15em -.25em !important;
	border-radius: 12px !important;
	opacity: 0 !important;
	transform: scale(.92) !important;
	background:
		radial-gradient(circle at 30% 50%, color-mix(in srgb, var(--afiwai-neo-primary) 28%, transparent), transparent 65%),
		radial-gradient(circle at 70% 50%, color-mix(in srgb, var(--afiwai-neo-secondary) 24%, transparent), transparent 65%) !important;
	filter: blur(8px) !important;
	transition: opacity 200ms ease, transform 520ms cubic-bezier(.2,.9,.2,1) !important;
	z-index: -1 !important;
}

.afiwai-neo-effect-ink_spread .et_pb_menu__menu > nav > ul.et-menu > li:not(.menu-item-has-children) > a:hover::before,
.afiwai-neo-effect-ink_spread .et_mobile_menu > li:not(.menu-item-has-children) > a:hover::before {
	opacity: 1 !important;
	transform: scale(1) !important;
}

/* 7 — Double Line Split */
.afiwai-neo-effect-double_split .et_pb_menu__menu > nav > ul.et-menu > li:not(.menu-item-has-children) > a::before,
.afiwai-neo-effect-double_split .et_pb_menu__menu > nav > ul.et-menu > li:not(.menu-item-has-children) > a::after,
.afiwai-neo-effect-double_split .et_mobile_menu > li:not(.menu-item-has-children) > a::before,
.afiwai-neo-effect-double_split .et_mobile_menu > li:not(.menu-item-has-children) > a::after {
	content: "" !important;
	position: absolute !important;
	left: 0 !important;
	right: 0 !important;
	height: .1em !important;
	border-radius: 999px !important;
	opacity: 0 !important;
	transform: scaleX(.25) !important;
	transition: opacity 180ms ease, transform 520ms cubic-bezier(.2,.9,.2,1) !important;
}

.afiwai-neo-effect-double_split .et_pb_menu__menu > nav > ul.et-menu > li:not(.menu-item-has-children) > a::before,
.afiwai-neo-effect-double_split .et_mobile_menu > li:not(.menu-item-has-children) > a::before {
	top: var(--afiwai-neo-underline-y, calc(100% - 2px)) !important;
	background: color-mix(in srgb, var(--afiwai-neo-primary) 55%, transparent) !important;
	transform-origin: 0 50% !important;
}

.afiwai-neo-effect-double_split .et_pb_menu__menu > nav > ul.et-menu > li:not(.menu-item-has-children) > a::after,
.afiwai-neo-effect-double_split .et_mobile_menu > li:not(.menu-item-has-children) > a::after {
	top: calc(var(--afiwai-neo-underline-y, calc(100% - 2px)) + 3px) !important;
	background: color-mix(in srgb, var(--afiwai-neo-secondary) 45%, transparent) !important;
	transform-origin: 100% 50% !important;
}

.afiwai-neo-effect-double_split .et_pb_menu__menu > nav > ul.et-menu > li:not(.menu-item-has-children) > a:hover::before,
.afiwai-neo-effect-double_split .et_pb_menu__menu > nav > ul.et-menu > li:not(.menu-item-has-children) > a:hover::after,
.afiwai-neo-effect-double_split .et_mobile_menu > li:not(.menu-item-has-children) > a:hover::before,
.afiwai-neo-effect-double_split .et_mobile_menu > li:not(.menu-item-has-children) > a:hover::after {
	opacity: 1 !important;
	transform: scaleX(1) !important;
}

/* 8 — Animated Text Gradient */
.afiwai-neo-effect-text_gradient .et_pb_menu__menu > nav > ul.et-menu > li:not(.menu-item-has-children) > a:hover,
.afiwai-neo-effect-text_gradient .et_mobile_menu > li:not(.menu-item-has-children) > a:hover {
	background: linear-gradient(90deg, var(--afiwai-neo-primary), var(--afiwai-neo-secondary), var(--afiwai-neo-accent)) !important;
	background-size: 220% 100% !important;
	-webkit-background-clip: text !important;
	background-clip: text !important;
	color: transparent !important;
	animation: afiwai-neo-gradient-move 900ms ease forwards !important;
}

@keyframes afiwai-neo-gradient-move {
	from { background-position: 0 50%; }
	to { background-position: 100% 50%; }
}

/* 9 — Ripple Underline */
.afiwai-neo-effect-ripple_line .et_pb_menu__menu > nav > ul.et-menu > li:not(.menu-item-has-children) > a::after,
.afiwai-neo-effect-ripple_line .et_mobile_menu > li:not(.menu-item-has-children) > a::after {
	content: "" !important;
	position: absolute !important;
	left: 0 !important;
	right: 0 !important;
	top: var(--afiwai-neo-underline-y, calc(100% - 2px)) !important;
	height: .14em !important;
	border-radius: 999px !important;
	opacity: 0 !important;
	background: linear-gradient(90deg, var(--afiwai-neo-primary), var(--afiwai-neo-secondary)) !important;
	transform: scaleX(.25) !important;
	transition: opacity 180ms ease, transform 520ms cubic-bezier(.2,.9,.2,1) !important;
}

.afiwai-neo-effect-ripple_line .et_pb_menu__menu > nav > ul.et-menu > li:not(.menu-item-has-children) > a:hover::after,
.afiwai-neo-effect-ripple_line .et_mobile_menu > li:not(.menu-item-has-children) > a:hover::after {
	opacity: 1 !important;
	transform: scaleX(1) !important;
	animation: afiwai-neo-ripple 520ms ease-out 1 !important;
}

@keyframes afiwai-neo-ripple {
	0% { filter: blur(0); }
	55% { filter: blur(5px); }
	100% { filter: blur(0); }
}

/* 10 — Minimal Dot & Line */
.afiwai-neo-effect-dot_minimal .et_pb_menu__menu > nav > ul.et-menu > li:not(.menu-item-has-children) > a::before,
.afiwai-neo-effect-dot_minimal .et_mobile_menu > li:not(.menu-item-has-children) > a::before {
	content: "" !important;
	position: absolute !important;
	left: -.55em !important;
	top: 50% !important;
	width: .38em !important;
	height: .38em !important;
	border-radius: 999px !important;
	opacity: 0 !important;
	transform: translateY(-50%) scale(.6) !important;
	background: var(--afiwai-neo-primary) !important;
	transition: opacity 180ms ease, transform 520ms cubic-bezier(.2,.9,.2,1) !important;
}

.afiwai-neo-effect-dot_minimal .et_pb_menu__menu > nav > ul.et-menu > li:not(.menu-item-has-children) > a::after,
.afiwai-neo-effect-dot_minimal .et_mobile_menu > li:not(.menu-item-has-children) > a::after {
	content: "" !important;
	position: absolute !important;
	left: 0 !important;
	right: 0 !important;
	top: var(--afiwai-neo-underline-y, calc(100% - 2px)) !important;
	height: .1em !important;
	border-radius: 999px !important;
	opacity: 0 !important;
	transform: scaleX(.22) !important;
	transform-origin: 0 50% !important;
	background: color-mix(in srgb, var(--afiwai-neo-primary) 55%, transparent) !important;
	transition: opacity 180ms ease, transform 520ms cubic-bezier(.2,.9,.2,1) !important;
}

.afiwai-neo-effect-dot_minimal .et_pb_menu__menu > nav > ul.et-menu > li:not(.menu-item-has-children) > a:hover::before,
.afiwai-neo-effect-dot_minimal .et_mobile_menu > li:not(.menu-item-has-children) > a:hover::before {
	opacity: 1 !important;
	transform: translateY(-50%) scale(1) !important;
}

.afiwai-neo-effect-dot_minimal .et_pb_menu__menu > nav > ul.et-menu > li:not(.menu-item-has-children) > a:hover::after,
.afiwai-neo-effect-dot_minimal .et_mobile_menu > li:not(.menu-item-has-children) > a:hover::after {
	opacity: 1 !important;
	transform: scaleX(1) !important;
}

@media (prefers-reduced-motion: reduce) {
	.afiwai-neo-active a,
	.afiwai-neo-active a::before,
	.afiwai-neo-active a::after {
		animation: none !important;
		transition: none !important;
	}
}
