/* Scroll-Reveals — AUSSCHLIESSLICH transform, nie opacity:0 als Startzustand.
   Endzustand ist ohne JS im HTML sichtbar (kein leerer Render bei Sicht-Check). */
.reveal {
	transform: translateY(32px);
	transition: transform 700ms var(--ease-out);
	will-change: transform;
}
.reveal.is-visible { transform: translateY(0); }

.reveal-scale {
	transform: scale(0.96);
	transition: transform 600ms var(--ease-out);
}
.reveal-scale.is-visible { transform: scale(1); }

.reveal-media {
	transform: translateY(48px) scale(1.02);
	transition: transform 800ms var(--ease-out);
}
.reveal-media.is-visible { transform: translateY(0) scale(1); }

@media (prefers-reduced-motion: reduce) {
	.reveal, .reveal-scale, .reveal-media {
		transition: none !important;
		transform: none !important;
	}
	.service-card:hover,
	.service-card:hover .service-card__media img,
	.btn:active,
	.wpcf7-form .wpcf7-submit:active {
		transform: none !important;
	}
}

/* Hero: sanfte Einblendung beim Laden (kein opacity:0 — reine Bewegung + leichte Skalierung) */
.hero__text > * {
	transform: translateY(18px);
	transition: transform 800ms var(--ease-out);
}
.hero.is-loaded .hero__text > *:nth-child(1) { transition-delay: 60ms; }
.hero.is-loaded .hero__text > *:nth-child(2) { transition-delay: 140ms; }
.hero.is-loaded .hero__text > *:nth-child(3) { transition-delay: 220ms; }
.hero.is-loaded .hero__text > *:nth-child(4) { transition-delay: 300ms; }
.hero.is-loaded .hero__text > * { transform: translateY(0); }
.hero__media { transform: translateY(14px); transition: transform 900ms var(--ease-out) 120ms; }
.hero.is-loaded .hero__media { transform: translateY(0); }

@media (prefers-reduced-motion: reduce) {
	.hero__text > *, .hero__media { transition: none !important; transform: none !important; }
}
