/* ==========================================================================
   04 — Animations: Scroll-Reveals (transform-only), Micro-Interactions
   Harte Regel: niemals opacity:0 als Startzustand — jeder Endzustand ist
   auch ohne JavaScript sichtbar (nur leicht versetzt positioniert).
   ========================================================================== */

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

.hero__media.reveal { transform: translateY(16px) scale(0.98); }
.hero__media.reveal.is-visible { transform: translateY(0) scale(1); }

/* Hover / Press Micro-Interactions ----------------------------------------- */
.service-row__media a { display: block; overflow: hidden; border-radius: var(--radius); }
.service-row__img { transition: transform var(--dur-base) var(--ease-out); }
.service-row:hover .service-row__img { transform: scale(1.035); }

.slide-card__img { transition: transform var(--dur-base) var(--ease-out); }
.slide-card:hover .slide-card__img { transform: scale(1.03); }

.site-nav a, .footer-nav a, .site-footer__address a { transition: color var(--dur-fast) var(--ease-out); }

a:active, button:active { transform: scale(0.98); }
.text-link:active { transform: none; }

/* Reduced motion: nur Opacity/instant, keine Transform-Bewegung ------------ */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.reveal, .hero__media.reveal {
		transition: opacity var(--dur-fast) linear;
		transform: none !important;
	}
	.service-row__img, .slide-card__img, .burger-inner, .burger-inner::before, .burger-inner::after,
	.mobile-drawer, .drawer-overlay, .site-brand__logo svg, .site-header__inner {
		transition-duration: 1ms !important;
	}
}
