/*
 * Animations d'entrée Smäk — sélectionnables dans Elementor (Avancé > Effets de mouvement > Animation d'entrée).
 * La durée suit le réglage Elementor (lente / normale / rapide) ; la courbe est volontairement douce.
 */

:root {
	--smaak-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
	--smaak-ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
	--smaak-distance: 20px;
	--smaak-blur: 4px;
}

.animated[class*="smaak"] {
	animation-timing-function: var(--smaak-ease-out);
	animation-fill-mode: both;
}

/* Durée « normale » d'Elementor ramenée à 1 s ; « lente » et « rapide » restent réglables dans l'éditeur. */
.animated[class*="smaak"]:not(.animated-slow):not(.animated-fast) {
	animation-duration: 1s;
}

.animated.smaakRevealUp,
.animated.smaakRevealDown,
.animated.smaakRevealLeft,
.animated.smaakRevealRight {
	animation-timing-function: var(--smaak-ease-in-out);
}

.smaakFadeIn { animation-name: smaakFadeIn; }
.smaakFadeUp { animation-name: smaakFadeUp; }
.smaakFadeDown { animation-name: smaakFadeDown; }
.smaakFadeLeft { animation-name: smaakFadeLeft; }
.smaakFadeRight { animation-name: smaakFadeRight; }
.smaakBlurIn { animation-name: smaakBlurIn; }
.smaakRevealUp { animation-name: smaakRevealUp; }
.smaakRevealDown { animation-name: smaakRevealDown; }
.smaakRevealLeft { animation-name: smaakRevealLeft; }
.smaakRevealRight { animation-name: smaakRevealRight; }
.smaakZoomOut { animation-name: smaakZoomOut; }
.smaakZoomIn { animation-name: smaakZoomIn; }

@keyframes smaakFadeIn {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes smaakFadeUp {
	from { opacity: 0; transform: translate3d(0, var(--smaak-distance), 0); filter: blur(var(--smaak-blur)); }
	to { opacity: 1; transform: none; filter: none; }
}

@keyframes smaakFadeDown {
	from { opacity: 0; transform: translate3d(0, calc(var(--smaak-distance) * -1), 0); filter: blur(var(--smaak-blur)); }
	to { opacity: 1; transform: none; filter: none; }
}

@keyframes smaakFadeLeft {
	from { opacity: 0; transform: translate3d(calc(var(--smaak-distance) * -1), 0, 0); filter: blur(var(--smaak-blur)); }
	to { opacity: 1; transform: none; filter: none; }
}

@keyframes smaakFadeRight {
	from { opacity: 0; transform: translate3d(var(--smaak-distance), 0, 0); filter: blur(var(--smaak-blur)); }
	to { opacity: 1; transform: none; filter: none; }
}

@keyframes smaakBlurIn {
	from { opacity: 0; filter: blur(10px); transform: translate3d(0, 14px, 0); }
	to { opacity: 1; filter: none; transform: none; }
}

@keyframes smaakRevealUp {
	from { clip-path: inset(100% 0 0 0); }
	to { clip-path: inset(0 0 0 0); }
}

@keyframes smaakRevealDown {
	from { clip-path: inset(0 0 100% 0); }
	to { clip-path: inset(0 0 0 0); }
}

@keyframes smaakRevealLeft {
	from { clip-path: inset(0 100% 0 0); }
	to { clip-path: inset(0 0 0 0); }
}

@keyframes smaakRevealRight {
	from { clip-path: inset(0 0 0 100%); }
	to { clip-path: inset(0 0 0 0); }
}

@keyframes smaakZoomOut {
	from { opacity: 0; transform: scale(1.08); }
	to { opacity: 1; transform: none; }
}

@keyframes smaakZoomIn {
	from { opacity: 0; transform: scale(0.94); }
	to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
	.animated[class*="smaak"] {
		animation: none !important;
	}
}
