/* ============ Scroll reveal ============ */
/* Transform-only, always visible without JS — never opacity:0 as a start
   state (a headless render mid-animation must never show a blank section). */
[data-reveal] {
	transform: translateY(28px);
	transition: transform 700ms var(--ease-out);
	transition-delay: calc(var(--reveal-i, 0) * 60ms);
}
[data-reveal].is-visible {
	transform: translateY(0);
}

/* ============ Hero load-in ============ */
.hero__content { transform: translateY(18px); transition: transform 900ms var(--ease-out); }
.hero.is-loaded .hero__content { transform: translateY(0); }

/* ============ Micro-interactions ============ */
.service-row__media,
.band__image,
.slider__slide {
	transition: transform var(--dur-base) var(--ease-out);
}
.service-row:hover .service-row__media,
.slider__slide:hover { transform: scale(1.015); }

a, button { -webkit-tap-highlight-color: transparent; }

.nav-menu a,
.footer-nav-menu a,
.mobile-nav-menu a,
.link-arrow {
	transition: color var(--dur-fast) var(--ease-out);
}

@media (prefers-reduced-motion: reduce) {
	[data-reveal],
	.hero__content,
	.service-row__media,
	.band__image,
	.slider__slide,
	.site-header__inner,
	.site-logo img,
	.burger__bar {
		transition: none !important;
		transform: none !important;
	}
}
