/*!
 * Slide-up entrance animation (WOW.js / Animate.css replica).
 * Pure CSS + IntersectionObserver — no jQuery, no library.
 * @package IOIPG_REIT
 */

@keyframes ioipgSlideUp {
	from {
		opacity: 0;
		transform: translate3d(0, 50px, 0);
	}
	to {
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}
}

/* Initial state — kept subtle so SSR/non-JS visitors still see content. */
[data-animate="slide-up"] {
	opacity: 0;
	transform: translate3d(0, 50px, 0);
	will-change: opacity, transform;
}

/* When the observer fires, swap in the keyframe animation.
 * `forwards` keeps the final state (visible, in place).
 */
.animate-slide-up {
	animation: ioipgSlideUp 0.8s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

/* Honour reduced-motion preferences. */
@media (prefers-reduced-motion: reduce) {
	[data-animate="slide-up"],
	.animate-slide-up {
		opacity: 1 !important;
		transform: none !important;
		animation: none !important;
	}
}