/* AORA — effets au défilement. Tout est neutralisé dans l'éditeur Elementor et si l'utilisateur réduit les animations. */
:root { --aora-fx-ease: cubic-bezier(.16, 1, .3, 1); }

/* ---------- Effet 1 : cascade — chaque élément monte, se défloute et se redresse, l'un après l'autre ---------- */
html.aora-fx-js body:not(.elementor-editor-active) .aora-fx-cascade .aora-fx-item {
	opacity: 0;
	transform: perspective(900px) translate3d(0, 46px, 0) rotateX(12deg);
	transform-origin: 50% 100%;
	filter: blur(8px);
	transition: opacity .9s var(--aora-fx-ease), transform 1.1s var(--aora-fx-ease), filter .9s var(--aora-fx-ease);
	transition-delay: var(--aora-fx-d, 0ms);
}
html.aora-fx-js body:not(.elementor-editor-active) .aora-fx-cascade .aora-fx-item.is-in { opacity: 1; transform: none; filter: none; }

/* ---------- Effet 2 : parallaxe — l'image se dévoile par un balayage, puis dérive et se dézoome au fil du scroll ---------- */
.aora-fx-media .elementor-widget-container { overflow: hidden; border-radius: inherit; }
.aora-fx-media img, .aora-fx-media .elementor-widget-container > svg { will-change: transform; transform: scale(var(--aora-fx-zoom, 1)) translate3d(0, var(--aora-fx-shift, 0px), 0); }
html.aora-fx-js body:not(.elementor-editor-active) .aora-fx-media:not(.aora-fx-drift) .elementor-widget-container {
	clip-path: inset(0 100% 0 0 round 24px);
	transition: clip-path 1.4s var(--aora-fx-ease);
}
html.aora-fx-js body:not(.elementor-editor-active) .aora-fx-media.is-in:not(.aora-fx-drift) .elementor-widget-container { clip-path: inset(0 0 0 0 round 24px); }
.aora-fx-drift .elementor-widget-container { overflow: visible; }
.aora-fx-parallax .aora-fx-lift { will-change: transform; }

/* ---------- Effet 3 : déploiement — le panneau s'ouvre d'une carte arrondie à pleine largeur, les chiffres glissent ---------- */
html.aora-fx-js body:not(.elementor-editor-active) .aora-fx-expand {
	--k: 1;
	clip-path: inset(0 calc((1 - var(--k)) * 7%) round calc(24px + (1 - var(--k)) * 36px));
	will-change: clip-path;
}
html.aora-fx-js body:not(.elementor-editor-active) .aora-fx-expand > .elementor-container {
	transform: scale(calc(.94 + var(--k) * .06));
	will-change: transform;
}
html.aora-fx-js body:not(.elementor-editor-active) .aora-fx-expand .elementor-widget-counter {
	transform: translate3d(calc((1 - var(--k)) * -90px), 0, 0);
}

@media (prefers-reduced-motion: reduce) {
	html.aora-fx-js body .aora-fx-cascade .aora-fx-item { opacity: 1 !important; transform: none !important; filter: none !important; transition: none !important; }
	html.aora-fx-js body .aora-fx-media .elementor-widget-container, html.aora-fx-js body .aora-fx-expand { clip-path: none !important; }
	html.aora-fx-js body .aora-fx-expand > .elementor-container, html.aora-fx-js body .aora-fx-expand .elementor-widget-counter, .aora-fx-media img, .aora-fx-media svg, .aora-fx-parallax .aora-fx-lift { transform: none !important; opacity: 1 !important; }
}

/* SVG animé inséré en widget HTML : pleine largeur de colonne, sans coins arrondis coupant le décor. */
.aora-fx-media .elementor-widget-container > svg { display: block; width: 100%; height: auto; }
.aora-bpa-svg .elementor-widget-container > svg { transform: none !important; }
