/* ==================================================
REVEAL ANIMATIONS – GMR
Smooth / performant / accessible
================================================== */

/* ------------------------------
État initial
-------------------------------- */
.js-reveal-up,
.js-reveal-down,
.js-reveal-left,
.js-reveal-right {
	opacity: 0;
	/*transition:
	transform 700ms cubic-bezier(0.22, 0.61, 0.36, 1),
	opacity 700ms cubic-bezier(0.22, 0.61, 0.36, 1);*/
	transition-delay: var(--gmr-anim-delay, 0s);
	transition: all 1.2s cubic-bezier(.165, .84, .44, 1);
	backface-visibility: hidden;
}

/* ------------------------------
Offsets (position de départ)
-------------------------------- */
.js-reveal-up {
	transform: translate3d(0, 24px, 0);
}
.js-reveal-down {
	transform: translate3d(0, -24px, 0);
}
.js-reveal-left {
	transform: translate3d(-28px, 0, 0);
}

.js-reveal-right {
	transform: translate3d(28px, 0, 0);
}

/* ------------------------------
État visible
-------------------------------- */
.js-reveal-up.is-in-view,
.js-reveal-left.is-in-view,
.js-reveal-right.is-in-view,
.js-reveal-down.is-in-view {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

/* ------------------------------
Delays utilitaires (optionnels)
-------------------------------- */
.delay-0 { --gmr-anim-delay: 0s; }
.delay-1 { --gmr-anim-delay: 0.15s; }
.delay-2 { --gmr-anim-delay: 0.30s; }
.delay-3 { --gmr-anim-delay: 0.45s; }
.delay-4 { --gmr-anim-delay: 0.60s; }

/* Beaver Builder : désactiver les reveals en mode édition */
body.fl-builder-edit .js-reveal-up,
body.fl-builder-edit .js-reveal-down,
body.fl-builder-edit .js-reveal-left,
body.fl-builder-edit .js-reveal-right {
	opacity: 1 !important;
	transform: none !important;
	transition: none !important;
	animation: none !important;
}

/* ------------------------------
Fallback NO-JS (propre)
-------------------------------- */
.no-js .js-reveal-up,
.no-js .js-reveal-down,
.no-js .js-reveal-left,
.no-js .js-reveal-right {
	opacity: 1;
	transform: none;
	transition: none;
}

/* ------------------------------
Accessibilité
-------------------------------- */
@media (prefers-reduced-motion: reduce) {
	.js-reveal-up,
	.js-reveal-down,
	.js-reveal-left,
	.js-reveal-right {
		transition: none !important;
		opacity: 1 !important;
		transform: none !important;
	}
}
