@keyframes clients-marquee{
from{ transform: translateX(0); }
to{ transform: translateX(-50%); }
}
@keyframes hero-zoom {
 from { transform: scale(1); }
 to { transform: scale(1.08); }
}

.hero .swiper-slide.hero-slide {
 overflow: hidden;
}

.hero .swiper-slide.hero-slide::after {
 content: "";
 position: absolute;
 inset: 0;
 background: inherit;
 background-size: cover;
 background-position: center center;
 background-repeat: no-repeat;
 transform: scale(1);
 will-change: transform;
 z-index: 0;
 pointer-events: none;
}

.hero .swiper-slide-active.hero-slide::after,
.hero .swiper-slide-duplicate-active.hero-slide::after {
 animation: hero-zoom 5s ease-out forwards;
}

.hero .hero-slide::before {
 z-index: 1;
}

.hero .slide-inner {
 z-index: 2;
}

body.preloading {
  overflow: hidden;
}

.site-preloader {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  z-index: 9999;
  opacity: 1;
  transition: opacity .35s ease;
}

.site-preloader.is-hidden {
  opacity: 0;
  pointer-events: none;
}

.site-preloader img {
  max-width: 140px;
  width: 22vw;
  height: auto;
}

/* CSS-first preloader overlay: shown immediately before JS runs */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: #fff url(../images/preloader.gif) center center no-repeat;
  background-size: 220px 70px;
  transition: opacity .35s ease, visibility .35s ease;
}

/* Hide overlay when ready */
body.preload-done::before {
  opacity: 0;
  visibility: hidden;
}

/* Prevent scroll while preloader is active */
body:not(.preload-done) {
  overflow: hidden;
}

@media (max-width: 767.98px) {
  body::before {
  background-size: 140px 50px;
}
}