/* =========================================================
   Scroll-Reveal — AUSSCHLIESSLICH per transform, nie opacity:0.
   Jeder Endzustand ist auch ohne JS sichtbar (kein leerer Render).
   ========================================================= */
.reveal {
	transform: translateY(28px);
	transition: transform 650ms var(--ease-out);
	will-change: transform;
}
.reveal.is-visible { transform: translateY(0); }

.reveal-group .reveal:nth-child(1) { transition-delay: 0ms; }
.reveal-group .reveal:nth-child(2) { transition-delay: 60ms; }
.reveal-group .reveal:nth-child(3) { transition-delay: 120ms; }
.reveal-group .reveal:nth-child(4) { transition-delay: 180ms; }
.reveal-group .reveal:nth-child(5) { transition-delay: 240ms; }

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

/* Hero-Einblendung beim Laden */
.hero__eyebrow, .hero__title, .hero__subtitle, .hero__actions {
	transform: translateY(16px);
	opacity: 1;
	animation: praxis-rise 700ms var(--ease-out) both;
}
.hero__title { animation-delay: 60ms; }
.hero__subtitle { animation-delay: 140ms; }
.hero__actions { animation-delay: 220ms; }

@keyframes praxis-rise {
	from { transform: translateY(16px); }
	to { transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
	.hero__eyebrow, .hero__title, .hero__subtitle, .hero__actions {
		animation: none;
		transform: none;
	}
}

/* Micro-Interactions */
.service-card, .pr-slide, .contact-card, .sidebar-card {
	transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);
}

a:active, .btn:active { transform: scale(0.98); }

/* Zähler */
.counter[data-counted] { font-variant-numeric: tabular-nums; }
