/* Gleicher Fade-up wie auf den Bestandsseiten; Details erscheinen kurz danach. */
.service-reveal.reveal { --dur:.6s; --ease:ease; --ty:24px; }
.service-reveal.reveal.service-reveal--detail { --delay:.22s; }
.service-reveal.in-view { will-change:auto; }
/* Opazität < 1 und will-change:opacity erzeugen einen neuen Backdrop-Root.
   Glasflächen bekommen deshalb keine zusätzliche Gruppen-Transparenz.
   Bewegung und kurze Verzögerung bleiben, die Texte blenden separat ein. */
.service-reveal.reveal:is(.service-reveal--glass,.service-reveal--glass-stage) {
 opacity:1;
 visibility:hidden;
 will-change:auto;
 transform:translateY(var(--ty));
 transition:transform var(--dur) var(--ease) var(--delay),visibility 0s linear var(--delay);
}
.service-reveal.reveal:is(.service-reveal--glass,.service-reveal--glass-stage).in-view { visibility:visible; transform:translateY(0); }
.service-reveal--glass-stage.reveal:not(.in-view) .service-reveal { visibility:hidden; }
.service-reveal--glass.reveal > * {
 opacity:0;
 transition:opacity var(--dur) var(--ease) var(--delay);
}
.service-reveal--glass.reveal.in-view > * { opacity:1; }
.service-reveal.reveal:focus-within { opacity:1; visibility:visible; transform:none; transition:none; }
.service-reveal--glass.reveal:focus-within > * { opacity:1; transition:none; }
@media(prefers-reduced-motion:reduce) {
  .service-reveal.reveal,.service-reveal.reveal .service-reveal { visibility:visible!important; opacity:1!important; transform:none!important; transition:none!important; }
  .service-reveal--glass.reveal > * { opacity:1; transition:none; }
}
@media print {
  .service-reveal.reveal,.service-reveal.reveal .service-reveal { visibility:visible!important; opacity:1!important; transform:none!important; transition:none!important; }
  .service-reveal--glass.reveal > * { opacity:1; transition:none; }
}
