/* L'Empreinte Quotidienne - animations
 * Tout est desactive si le visiteur prefere moins de mouvement, dans l'editeur Elementor,
 * ou si le JavaScript ne se charge pas (la classe .leq-anim n'est alors pas posee / retiree).
 */

@keyframes leqUp { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
@keyframes leqZoom { from { transform: scale(1.14); } to { transform: scale(1); } }
@keyframes leqSpin { to { transform: rotate(360deg); } }
@keyframes leqPop { 0% { transform: scale(.78); } 60% { transform: scale(1.16); } 100% { transform: scale(1); } }

/* ---------- Entree de l'accueil (au chargement) ---------- */
html.leq-anim .elementor .leq-hero .leq-eyebrow { animation: leqUp .8s cubic-bezier(.2, .7, .2, 1) .10s both; }
html.leq-anim .elementor .leq-hero__title .elementor-heading-title span { animation: leqUp .9s cubic-bezier(.2, .7, .2, 1) both; }
html.leq-anim .elementor .leq-hero__title .elementor-heading-title span:nth-child(1) { animation-delay: .22s; }
html.leq-anim .elementor .leq-hero__title .elementor-heading-title span:nth-child(2) { animation-delay: .36s; }
html.leq-anim .elementor .leq-hero__title .elementor-heading-title span:nth-child(3) { animation-delay: .50s; }
html.leq-anim .elementor .leq-hero__text { animation: leqUp .9s cubic-bezier(.2, .7, .2, 1) .66s both; }
html.leq-anim .elementor .leq-hero .leq-actions { animation: leqUp .9s cubic-bezier(.2, .7, .2, 1) .82s both; }

/* Photo d'accueil : leger zoom arriere a l'ouverture + parallaxe douce au defilement */
html.leq-anim .elementor .e-con.leq-hero .leq-hero__bg { top: -24px; bottom: -24px; height: calc(100% + 48px); }
html.leq-anim .elementor .e-con.leq-hero .leq-hero__bg { transform: translate3d(0, var(--leq-py, 0px), 0); will-change: transform; }
html.leq-anim .elementor .leq-hero__bg img { animation: leqZoom 2.4s cubic-bezier(.2, .7, .2, 1) both; }

/* ---------- Apparition au defilement ---------- */
html.leq-anim .elementor .leq-reveal { opacity: 0; transform: translateY(22px); transition: opacity .75s cubic-bezier(.2, .7, .2, 1) var(--leq-d, 0s), transform .75s cubic-bezier(.2, .7, .2, 1) var(--leq-d, 0s); }
html.leq-anim .elementor .leq-reveal--fade { transform: none; }
html.leq-anim .elementor .leq-reveal.is-in { opacity: 1; transform: none; }

/* ---------- Empreinte du bandeau de contact : rotation tres lente ---------- */
html.leq-anim .elementor .e-con.leq-cta::after { animation: leqSpin 120s linear infinite; }

/* ---------- En-tete : ombre douce quand on a defile ---------- */
.elementor .e-con.leq-header { transition: box-shadow .3s ease; }
.elementor .e-con.leq-header.leq-scrolled { box-shadow: 0 10px 28px rgba(4, 12, 26, .38); }

/* ---------- Interactions au survol ---------- */
@media (prefers-reduced-motion: no-preference) {
	.elementor .leq-btn--chev .elementor-button-text::after,
	.elementor .leq-form .elementor-button-text::after { transition: transform .22s ease; }
	.elementor .leq-btn--chev .elementor-button:hover .elementor-button-text::after,
	.elementor .leq-form .elementor-button:hover .elementor-button-text::after { transform: translateX(4px); }

	.elementor .leq-btn--primary .elementor-button:hover,
	.elementor .leq-form .elementor-button:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(12, 141, 254, .35); }
	.elementor .leq-btn--ghost .elementor-button:hover { transform: translateY(-2px); }

	.elementor .e-con.leq-card { transition: transform .28s ease, box-shadow .28s ease; }
	.elementor .e-con.leq-card:hover { transform: translateY(-5px); box-shadow: 0 16px 36px rgba(16, 42, 80, .16); }

	.elementor .e-con.leq-feature .elementor-icon-box-icon { transition: transform .3s ease; }
	.elementor .e-con.leq-feature:hover .elementor-icon-box-icon,
	.elementor .leq-feature:hover .elementor-icon-box-icon { transform: translateY(-3px) scale(1.08); }

	.elementor .leq-stat .elementor-icon-box-icon { transition: transform .3s ease; }
	.elementor .leq-stat:hover .elementor-icon-box-icon { transform: translateY(-3px) rotate(-4deg); }

	.elementor .leq-form .elementor-field-type-checkbox .elementor-field-option input:checked + label::before { animation: leqPop .28s ease; }
	.elementor .leq-brand img { transition: transform .3s ease; }
	.elementor .leq-brand:hover img { transform: scale(1.03); }
}
