/*
 * Reveal-Effekte sind ausschliesslich transform-basiert. Der Startzustand
 * bleibt sichtbar (keine opacity:0) — Crawler und Headless-Checks sehen
 * immer echten Inhalt, auch ohne JS.
 */
.reveal {
	transform: translateY(28px);
	transition: transform 700ms var(--ease-out);
	transition-delay: var(--reveal-delay, 0ms);
	will-change: transform;
}
.reveal.is-visible { transform: translateY(0); }

.service-row { transition: transform 300ms var(--ease-out); }
.service-row:hover { transform: translateX(4px); }
.service-row__image { transition: transform 420ms var(--ease-out); }
.service-row:hover .service-row__image { transform: scale(1.05); }

.slide__image { transition: transform 600ms var(--ease-out); }

@media (prefers-reduced-motion: reduce) {
	.reveal { transform: none !important; transition: none !important; }
	.service-row:hover, .service-row:hover .service-row__image { transform: none; }
}
