/**
 * Scroll-triggered and page animations
 */

[data-animate] {
	opacity: 0;
	transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
		transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

[data-animate="fade-up"] {
	transform: translateY(40px);
}

[data-animate="fade-down"] {
	transform: translateY(-40px);
}

[data-animate="fade-left"] {
	transform: translateX(40px);
}

[data-animate="fade-right"] {
	transform: translateX(-40px);
}

[data-animate="scale-in"] {
	transform: scale(0.92);
}

[data-animate].is-visible {
	opacity: 1;
	transform: none;
}

.imvusa-stagger > * {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.5s ease, transform 0.5s ease;
}

.imvusa-stagger.is-visible > *:nth-child(1) { transition-delay: 0ms; opacity: 1; transform: none; }
.imvusa-stagger.is-visible > *:nth-child(2) { transition-delay: 80ms; opacity: 1; transform: none; }
.imvusa-stagger.is-visible > *:nth-child(3) { transition-delay: 160ms; opacity: 1; transform: none; }
.imvusa-stagger.is-visible > *:nth-child(4) { transition-delay: 240ms; opacity: 1; transform: none; }
.imvusa-stagger.is-visible > *:nth-child(5) { transition-delay: 320ms; opacity: 1; transform: none; }
.imvusa-stagger.is-visible > *:nth-child(6) { transition-delay: 400ms; opacity: 1; transform: none; }

.imvusa-service-card:hover .imvusa-service-card-image img {
	transform: scale(1.08);
}

.imvusa-category-card:hover {
	transform: translateY(-8px);
	box-shadow: 0 24px 48px rgba(12, 23, 28, 0.15);
}

.imvusa-category-card-interactive:hover .imvusa-category-card-bg {
	opacity: 1;
}

.imvusa-services-step {
	animation: imvusaStepIn 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes imvusaStepIn {
	from {
		opacity: 0;
		transform: translateX(20px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

.imvusa-gallery-item img {
	transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.imvusa-gallery-item:hover img {
	transform: scale(1.06);
}

.imvusa-gallery-zoom {
	transition: transform 0.3s ease, background 0.3s ease;
}

.imvusa-gallery-item:hover .imvusa-gallery-zoom {
	transform: scale(1.1);
	background: var(--imvusa-gold);
}

@media (prefers-reduced-motion: reduce) {
	[data-animate] {
		opacity: 1;
		transform: none;
		transition: none;
	}
}
