/*
 * Scroll-Reveals: AUSSCHLIESSLICH per transform, NIE opacity:0 als Startzustand.
 * Ohne JavaScript bleibt jeder Endzustand im HTML sichtbar (nur leicht versetzt),
 * damit ein headless Sicht-Check nie eine leere Seite sieht.
 */

.reveal-up {
	transform: translateY(28px);
	transition: transform var(--dur-slow) var(--ease-out);
	transition-delay: var(--reveal-delay, 0ms);
	will-change: transform;
}

.reveal-up.is-revealed {
	transform: translateY(0);
}

.service-row.reveal-up:nth-child(2) { --reveal-delay: 40ms; }
.service-row.reveal-up:nth-child(3) { --reveal-delay: 80ms; }
.service-row.reveal-up:nth-child(4) { --reveal-delay: 120ms; }
.service-row.reveal-up:nth-child(5) { --reveal-delay: 160ms; }
.service-row.reveal-up:nth-child(6) { --reveal-delay: 200ms; }

.usp-list li.reveal-up:nth-child(2) { --reveal-delay: 60ms; }
.usp-list li.reveal-up:nth-child(3) { --reveal-delay: 120ms; }

/* Buttons/Karten/Links: Press-Feedback */
.btn:active,
.hero__dot:active,
.link-arrow:active {
	transform: scale(0.98);
}

.service-row {
	transition: transform var(--dur) var(--ease-out);
}

/* Sticky-Header Verdichtung ist bereits transition-basiert in layout.css */

@keyframes zff-fade-slide {
	from { transform: translateY(16px); }
	to { transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
	.reveal-up {
		transition: none !important;
	}

	.service-row:hover .service-row__media img {
		transform: none !important;
	}

	html {
		scroll-behavior: auto;
	}
}
