/* Shared Express / Events slider. Grid stacking keeps height stable across transitions. */
.pp-service-page .pp-service-carousel { overflow: hidden; }
.pp-service-page .pp-service-carousel-ready .pp-event-slides { display: grid; }
.pp-service-page .pp-service-carousel-ready .pp-event-slide { grid-area: 1 / 1; min-width: 0; opacity: 0; visibility: hidden; pointer-events: none; transform: translateX(24px); transition: opacity .55s ease, transform .55s ease, visibility .55s; }
.pp-service-page .pp-service-carousel-ready .pp-event-slide.is-active { opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(0); z-index: 1; }
.pp-service-page .pp-service-carousel .pp-event-slide h2 { font-size: clamp(32px, 3.6vw, 48px); line-height: 1.13; }
.pp-service-page .pp-service-carousel .pp-event-carousel-controls[hidden] { display: none; }
.pp-service-page .pp-service-carousel .pp-event-carousel-controls { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 16px; padding-block: 14px; }
.pp-service-page .pp-service-carousel .pp-event-carousel-controls button { display: inline-grid; place-items: center; border: 1px solid #a9cfb6; background: #fff; border-radius: 50%; width: 44px; height: 44px; cursor: pointer; color: var(--pp-service-green); font: inherit; }
.pp-service-page .pp-service-carousel .pp-event-carousel-controls .pp-service-slider-pause { width: auto; min-width: 70px; padding-inline: 14px; border-radius: 999px; font-size: 13px; }
.pp-service-page .pp-service-carousel .pp-event-carousel-controls button:focus-visible { outline: 3px solid var(--pp-service-green); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
  .pp-service-page .pp-service-carousel-ready .pp-event-slide { transition: none; transform: none; }
}
