/**
 * Effets Animated Gradient Border (bleu → violet + brillance)
 * N’ajoute que la bordure animée : pas de fond, pas de changement de couleur du texte (Elementor par défaut).
 *
 * .new     : usage général, bordure 2px, radius 0.25em
 * .new2    : boutons (effet argent), bordure 2px, radius 25px
 * .new3    : sections / conteneurs (dégradé bleu/indigo), bordure 4px, radius 12px
 * .new-kit : conteneurs / cartes — couleurs marque + reflet (trou central : --new-inner-bg si fond opaque)
 * .new-kit-section : sections Elementor — contour uniquement (masque), fond + contenus intacts
 * .new-kit-btn : boutons — trou central = fond kit (--e-global-color-aba1669)
 *
 * Variables : --new-inner-bg, --new-radius, --new-border-width, --aimerg-flow-duration (durée du flux, défaut ~22s)
 */

.new {
	position: relative;
	box-sizing: border-box;
	border: none;
	overflow: visible;
	--new-border-width: 2px;
	--new-radius: 0.25em;
	--new-duration: 5s;
	border-radius: var(--new-radius);
}

/* Couche bordure : dégradé bleu → violet + pointe de blanc (brillance), animé */
.new::before {
	content: '';
	position: absolute;
	inset: calc(-1 * var(--new-border-width));
	z-index: 0;
	border-radius: calc(var(--new-radius, 0.25em) + var(--new-border-width, 2px));
	background: radial-gradient(
		circle,
		#3b82f6 0%,
		#6366f1 38%,
		rgba(255, 255, 255, 0.85) 48%,
		#6366f1 58%,
		#8b5cf6 100%
	);
	background-size: 200% 200%;
	animation: animatedgradient var(--new-duration, 5s) ease-in-out infinite;
}

/* Masque intérieur : on ne voit que la bande bordure */
.new::after {
	content: '';
	position: absolute;
	inset: var(--new-border-width, 2px);
	z-index: 1;
	border-radius: var(--new-radius, 0.25em);
	background: var(--new-inner-bg, transparent);
	pointer-events: none;
}

.new > *,
.new .elementor-button-content-wrapper {
	position: relative;
	z-index: 2;
}

.new.elementor-button .elementor-button-text {
	position: relative;
	z-index: 2;
}

/* --- .new2 : boutons, mode argent, fond blanc transparent, texte blanc, bords argent --- */
.new2 {
	position: relative;
	box-sizing: border-box;
	border: none;
	overflow: visible;
	color: #732070;
	--new-border-width: 2px;
	--new-radius: 25px;
	--new-duration: 5s;
	border-radius: var(--new-radius);
}

.new2::before {
	content: '';
	position: absolute;
	inset: calc(-1 * var(--new-border-width));
	z-index: 0;
	border-radius: calc(var(--new-radius) + var(--new-border-width));
	background: radial-gradient(
		circle,
		#a0a0a0 0%,
		#c8c8c8 35%,
		rgba(255, 255, 255, 0.9) 48%,
		#c0c0c0 62%,
		#909090 100%
	);
	background-size: 200% 200%;
	animation: animatedgradient var(--new-duration, 5s) ease-in-out infinite;
}

.new2::after {
	content: '';
	position: absolute;
	inset: var(--new-border-width);
	z-index: 1;
	border-radius: var(--new-radius);
	background: var(--new-inner-bg, rgba(255, 255, 255, 0.12));
	pointer-events: none;
}

.new2 > *,
.new2 .elementor-button-content-wrapper,
.new2 .elementor-button-text {
	position: relative;
	z-index: 2;
	color: inherit;
}

.new2.elementor-button .elementor-button-text {
	position: relative;
	z-index: 2;
	color: inherit;
}

/* --- .new3 : sections / conteneurs (blocs) --- */
.new3 {
	position: relative;
	box-sizing: border-box;
	border: none;
	overflow: visible;
	--new-border-width: 4px;
	--new-radius: 12px;
	--new-duration: 5s;
	border-radius: var(--new-radius);
}

.new3::before {
	content: '';
	position: absolute;
	inset: calc(-1 * var(--new-border-width));
	z-index: 0;
	border-radius: calc(var(--new-radius) + var(--new-border-width));
	background: radial-gradient(
		circle,
		#3b82f6 0%,
		#6366f1 38%,
		rgba(255, 255, 255, 0.85) 48%,
		#6366f1 58%,
		#8b5cf6 100%
	);
	background-size: 200% 200%;
	animation: animatedgradient var(--new-duration, 5s) ease-in-out infinite;
}

.new3::after {
	content: '';
	position: absolute;
	inset: var(--new-border-width);
	z-index: 1;
	border-radius: var(--new-radius);
	background: var(--new-inner-bg, transparent);
	pointer-events: none;
}

.new3 > * {
	position: relative;
	z-index: 2;
}

/* Parent Elementor : laisser dépasser la bordure si le conteneur a overflow hidden */
.e-con:has(> .new3),
.e-con-inner:has(> .new3),
.e-con:has(> .new-kit),
.e-con-inner:has(> .new-kit),
.elementor-section.new-kit-section,
.e-con.new-kit-section {
	overflow: visible;
}

/* Dégradé radial marque + reflet doux (partagé new-kit / new-kit-btn / new-kit-section) */
.new-kit,
.new-kit-btn,
.new-kit-section {
	--aimerg-flow-duration: 22s;
	--aimerg-shine: rgba(255, 255, 255, 0.48);
	--aimerg-shine-core: rgba(255, 255, 255, 0.62);
}

/* --- .new-kit : blocs — dégradé aligné sur le bouton Menu (bordure #732070 / fond #0A0165 du kit) --- */
.new-kit {
	position: relative;
	box-sizing: border-box;
	border: none;
	overflow: visible;
	--aimerg-border-deep: #0a0165;
	--aimerg-border-accent: #732070;
	--aimerg-border-plum: #3f133d;
	--new-border-width: 4px;
	--new-radius: 12px;
	border-radius: var(--new-radius);
}

.new-kit::before {
	content: '';
	position: absolute;
	inset: calc(-1 * var(--new-border-width));
	z-index: 0;
	border-radius: calc(var(--new-radius) + var(--new-border-width));
	background: radial-gradient(
		circle at 45% 42%,
		var(--aimerg-border-deep) 0%,
		var(--aimerg-border-accent) 28%,
		var(--aimerg-shine) 40%,
		var(--aimerg-shine-core) 47%,
		var(--aimerg-shine) 53%,
		var(--aimerg-border-accent) 62%,
		var(--aimerg-border-plum) 100%
	);
	background-size: 235% 220%;
	animation: aimergKitFlow var(--aimerg-flow-duration, 22s) cubic-bezier(0.42, 0.08, 0.58, 0.92) infinite;
	will-change: background-position, background-size;
}

.new-kit::after {
	content: '';
	position: absolute;
	inset: var(--new-border-width);
	z-index: 1;
	border-radius: var(--new-radius);
	background: var(--new-inner-bg, transparent);
	pointer-events: none;
}

.new-kit > * {
	position: relative;
	z-index: 2;
}

/* --- .new-kit-btn : boutons — bordure animée marque (trou central = fond bouton kit, comme le Menu) --- */
.new-kit-btn {
	position: relative;
	box-sizing: border-box;
	border: none !important;
	overflow: visible;
	--aimerg-border-deep: #0a0165;
	--aimerg-border-accent: #732070;
	--aimerg-border-plum: #3f133d;
	--new-border-width: 2px;
	--new-radius: 3px;
	/* Même fond que le bouton Menu Elementor : seule la couronne montre le dégradé */
	--new-inner-bg: var(--e-global-color-aba1669, #0a0165);
	border-radius: var(--new-radius) !important;
}

.new-kit-btn::before {
	content: '';
	position: absolute;
	inset: calc(-1 * var(--new-border-width));
	z-index: 0;
	border-radius: calc(var(--new-radius) + var(--new-border-width));
	background: radial-gradient(
		circle at 45% 42%,
		var(--aimerg-border-deep) 0%,
		var(--aimerg-border-accent) 28%,
		var(--aimerg-shine) 40%,
		var(--aimerg-shine-core) 47%,
		var(--aimerg-shine) 53%,
		var(--aimerg-border-accent) 62%,
		var(--aimerg-border-plum) 100%
	);
	background-size: 235% 220%;
	animation: aimergKitFlow var(--aimerg-flow-duration, 22s) cubic-bezier(0.42, 0.08, 0.58, 0.92) infinite;
	will-change: background-position, background-size;
}

.new-kit-btn::after {
	content: '';
	position: absolute;
	inset: var(--new-border-width);
	z-index: 1;
	border-radius: var(--new-radius);
	background: var(--new-inner-bg, transparent);
	pointer-events: none;
}

.new-kit-btn > *,
.new-kit-btn .elementor-button-content-wrapper,
.new-kit-btn .elementor-button-text {
	position: relative;
	z-index: 2;
}

/* --- .new-kit-section : sections — anneau bordure uniquement (masque), sans masquer le fond ni le contenu --- */
.new-kit-section {
	position: relative;
	box-sizing: border-box;
	isolation: isolate;
	overflow: visible;
	--aimerg-border-deep: #0a0165;
	--aimerg-border-accent: #732070;
	--aimerg-border-plum: #3f133d;
	--new-border-width: 3px;
	--new-radius: 0px;
	border-radius: var(--new-radius);
}

.new-kit-section::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 0;
	padding: var(--new-border-width);
	border-radius: inherit;
	background: radial-gradient(
		circle at 45% 42%,
		var(--aimerg-border-deep) 0%,
		var(--aimerg-border-accent) 28%,
		var(--aimerg-shine) 40%,
		var(--aimerg-shine-core) 47%,
		var(--aimerg-shine) 53%,
		var(--aimerg-border-accent) 62%,
		var(--aimerg-border-plum) 100%
	);
	background-size: 235% 220%;
	animation: aimergKitFlow var(--aimerg-flow-duration, 22s) cubic-bezier(0.42, 0.08, 0.58, 0.92) infinite;
	pointer-events: none;
	will-change: background-position, background-size;
	-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	-webkit-mask-composite: xor;
	mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	mask-composite: exclude;
}

.new-kit-section > * {
	position: relative;
	z-index: 1;
}

/**
 * Flux irrégulier (évite le carré 0→100% répétitif) : positions + tailles décalées,
 * durée longue + courbe douce = reflet qui « erre » plutôt qu’un cycle mécanique.
 */
@keyframes aimergKitFlow {
	0% {
		background-position: 6% 14%;
		background-size: 228% 208%;
	}
	13% {
		background-position: 78% 32%;
		background-size: 252% 236%;
	}
	29% {
		background-position: 38% 86%;
		background-size: 198% 248%;
	}
	46% {
		background-position: 91% 68%;
		background-size: 242% 212%;
	}
	61% {
		background-position: 22% 44%;
		background-size: 218% 232%;
	}
	77% {
		background-position: 64% 18%;
		background-size: 238% 224%;
	}
	90% {
		background-position: 14% 72%;
		background-size: 232% 218%;
	}
	100% {
		background-position: 6% 14%;
		background-size: 228% 208%;
	}
}

@keyframes animatedgradient {
	0% {
		background-position: 0% 0%;
	}
	25% {
		background-position: 100% 0%;
	}
	50% {
		background-position: 100% 100%;
	}
	75% {
		background-position: 0% 100%;
	}
	100% {
		background-position: 0% 0%;
	}
}

/**
 * Accueil (page 26) : bloc formulaire contact — contour animé identique au bouton Menu (.new-kit-btn / aimergKitFlow).
 * Le fond défini dans Elementor (--e-global-color-c029468, etc.) reste visible ; la bordure statique est retirée.
 */
.elementor-26 .elementor-element.elementor-element-2263629a.e-con {
	position: relative;
	box-sizing: border-box;
	isolation: isolate;
	overflow: visible;
	border: none !important;
	--aimerg-flow-duration: 22s;
	--aimerg-shine: rgba(255, 255, 255, 0.48);
	--aimerg-shine-core: rgba(255, 255, 255, 0.62);
	--aimerg-border-deep: #0a0165;
	--aimerg-border-accent: #732070;
	--aimerg-border-plum: #3f133d;
	--new-border-width: 2px;
	--new-radius: 3px;
	border-radius: var(--new-radius) !important;
}

.elementor-26 .elementor-element.elementor-element-2263629a.e-con::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 0;
	padding: var(--new-border-width);
	border-radius: inherit;
	background: radial-gradient(
		circle at 45% 42%,
		var(--aimerg-border-deep) 0%,
		var(--aimerg-border-accent) 28%,
		var(--aimerg-shine) 40%,
		var(--aimerg-shine-core) 47%,
		var(--aimerg-shine) 53%,
		var(--aimerg-border-accent) 62%,
		var(--aimerg-border-plum) 100%
	);
	background-size: 235% 220%;
	animation: aimergKitFlow var(--aimerg-flow-duration, 22s) cubic-bezier(0.42, 0.08, 0.58, 0.92) infinite;
	pointer-events: none;
	will-change: background-position, background-size;
	-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	-webkit-mask-composite: xor;
	mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	mask-composite: exclude;
}

.elementor-26 .elementor-element.elementor-element-2263629a.e-con > * {
	position: relative;
	z-index: 1;
}

/* Éviter que le parent colonne ne coupe l’anneau */
.elementor-26 .elementor-element.elementor-element-c21788c.e-con {
	overflow: visible;
}
