/* Scroll-triggered fade-in + slide-up */
.animate-on-scroll {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 600ms ease, transform 600ms ease;
}

.animate-on-scroll.is-visible {
	opacity: 1;
	transform: translateY(0);
}

/* Staggered card reveal */
.animate-stagger > * {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 500ms ease, transform 500ms ease;
}

.animate-stagger > *.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.animate-stagger > *:nth-child(1) {
	transition-delay: 0ms;
}

.animate-stagger > *:nth-child(2) {
	transition-delay: 100ms;
}

.animate-stagger > *:nth-child(3) {
	transition-delay: 200ms;
}

.animate-stagger > *:nth-child(4) {
	transition-delay: 300ms;
}

.animate-stagger > *:nth-child(5) {
	transition-delay: 400ms;
}

.animate-stagger > *:nth-child(6) {
	transition-delay: 500ms;
}

@media (prefers-reduced-motion: reduce) {
	.why-card::after {
		display: none;
	}

	.animate-stagger > .why-card.is-visible:hover {
		transform: none;
	}
}

/* Image hover zoom */
.img-inner {
	transition: transform 700ms ease;
}

.img-inner:hover {
	transform: scale(1.05);
}

/* Button interaction states */
.btn-primary:hover {
	opacity: 0.88;
}

.btn-primary:active {
	transform: scale(0.98);
}

/* Nav link underline animation */
.nav-links a {
	position: relative;
}

.nav-links a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 2px;
	background: var(--color-sand);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 250ms ease;
}

.nav-links a:hover::after,
.nav-links a:focus-visible::after {
	transform: scaleX(1);
}
