/* Smooth carousels: no layout jump before Swiper starts, linear marquee motion. */

/* Before Swiper initialises, lay slides out in a row exactly as they will appear */
.sre-logo-slider .swiper:not(.swiper-initialized),
.sre-gallery-slider .swiper:not(.swiper-initialized),
.sre-rv-slider:not(.swiper-initialized) { overflow: hidden; }
.sre-logo-slider .swiper:not(.swiper-initialized) .swiper-wrapper,
.sre-gallery-slider .swiper:not(.swiper-initialized) .swiper-wrapper,
.sre-rv-slider:not(.swiper-initialized) .swiper-wrapper { display: flex; }

.sre-logo-slider .swiper:not(.swiper-initialized) .swiper-slide { flex: 0 0 calc((100% - 30px) / 2); margin-right: 30px; }
.sre-gallery-slider .swiper:not(.swiper-initialized) .swiper-slide { flex: 0 0 calc((100% - 16px) / 1.6); margin-right: 16px; }
.sre-rv-slider:not(.swiper-initialized) .swiper-slide { flex: 0 0 calc((100% - 16px) / 1.08); margin-right: 16px; }
@media (min-width: 576px) {
  .sre-gallery-slider .swiper:not(.swiper-initialized) .swiper-slide { flex-basis: calc((100% - 16px * 1.4) / 2.4); }
  .sre-rv-slider:not(.swiper-initialized) .swiper-slide { flex-basis: calc((100% - 20px * .4) / 1.4); margin-right: 20px; }
}
@media (min-width: 768px) {
  .sre-logo-slider .swiper:not(.swiper-initialized) .swiper-slide { flex-basis: calc((100% - 90px) / 4); }
  .sre-gallery-slider .swiper:not(.swiper-initialized) .swiper-slide { flex-basis: calc((100% - 20px * 2.4) / 3.4); margin-right: 20px; }
  .sre-rv-slider:not(.swiper-initialized) .swiper-slide { flex-basis: calc((100% - 24px) / 2); margin-right: 24px; }
}
@media (min-width: 991px) {
  .sre-logo-slider .swiper:not(.swiper-initialized) .swiper-slide { flex-basis: calc((100% - 120px) / 5); }
}
@media (min-width: 1200px) {
  .sre-gallery-slider .swiper:not(.swiper-initialized) .swiper-slide { flex-basis: calc((100% - 96px) / 5); margin-right: 24px; }
  .sre-rv-slider:not(.swiper-initialized) .swiper-slide { flex-basis: calc((100% - 56px) / 3); margin-right: 28px; }
}

/* Continuous marquee: constant speed, GPU-composited */
.sre-logo-slider .swiper-wrapper,
.sre-gallery-slider .swiper-wrapper { transition-timing-function: linear !important; will-change: transform; }

/* Logos: fixed box so nothing shifts while SVGs load */
.sre-logo-slider .swiper-slide { height: 75px; display: flex; align-items: center; justify-content: center; }
.sre-logo-slider .company-logo img { max-height: 75px; width: auto; max-width: 100%; }

/* Gallery: reserve 3:4 space up front, images fill it without resizing the row */
.sre-gallery-slider .swiper-slide > div { aspect-ratio: 3 / 4; overflow: hidden; border-radius: 16px; background: #e9e6e1; }
.sre-gallery-slider .swiper-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Reviews: smooth eased slide */
.sre-rv-slider .swiper-wrapper { will-change: transform; transition-timing-function: cubic-bezier(.45,.05,.25,1); }

@media (prefers-reduced-motion: reduce) {
  .sre-logo-slider .swiper-wrapper, .sre-gallery-slider .swiper-wrapper { transition: none !important; }
}
