/* ==========================================================================
   Bürger W. — Animationen: Reveal, Micro-Interactions
   Wichtig: Reveal animiert NUR transform, nie opacity:0 als Startzustand,
   damit Inhalte in Screenshots/Crawlern/JS-losen Renderern nie leer bleiben.
   ========================================================================== */

.reveal {
	transform: translateY(28px);
	transition: transform 700ms var(--ease-out);
	will-change: transform;
}

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

.reveal-stagger > * {
	transform: translateY(28px);
	transition: transform 700ms var(--ease-out);
}
.reveal-stagger.is-visible > * { transform: translateY(0); }
.reveal-stagger.is-visible > *:nth-child(1) { transition-delay: 0ms; }
.reveal-stagger.is-visible > *:nth-child(2) { transition-delay: 60ms; }
.reveal-stagger.is-visible > *:nth-child(3) { transition-delay: 120ms; }
.reveal-stagger.is-visible > *:nth-child(4) { transition-delay: 180ms; }
.reveal-stagger.is-visible > *:nth-child(5) { transition-delay: 240ms; }
.reveal-stagger.is-visible > *:nth-child(6) { transition-delay: 300ms; }

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

/* Hero: sanfte Einblendung beim Laden (nur transform, JS toggelt is-loaded) */
.hero-copy, .hero-media {
	transform: translateY(16px);
	transition: transform 800ms var(--ease-out);
}
.is-loaded .hero-copy { transform: translateY(0); }
.is-loaded .hero-media { transform: translateY(0); transition-delay: 100ms; }

@media (prefers-reduced-motion: reduce) {
	.hero-copy, .hero-media { transform: none !important; transition: none !important; }
}

/* Karten Press-Feedback */
.service-card, .btn, .slider-dot {
	transition: transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), background var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out);
}

/* Zähler */
.stat-num[data-count] { font-variant-numeric: tabular-nums; }
