/* ===========================
   Partners logos strip (Swiper marquee)
   - Add/remove logos in `js/partners-marquee.js`
   - Adjust speed in `js/partners-marquee.js` (SPEED_MS)
   - Adjust spacing/logo size below (CSS variables)
   =========================== */

.partners-marquee{
  /* --- quick knobs --- */
  --pm-height: 160px;            /* strip height */
  --pm-logo-height: 52px;        /* logo height */
  --pm-reflection-height: 52px;  /* reflection height */
  --pm-gap: 90px;                /* spacing between logos */
  --pm-reflection-gap: 50px;     /* space between logo + reflection */
  --pm-reflection-opacity: .30;  /* reflection intensity */
  --pm-tick-opacity: .28;        /* left/right tick line opacity */
  --pm-tick-height: 72%;         /* tick line height */

  position: relative;
  width: 100%;
  height: var(--pm-height);
  display: flex;
  align-items: center;
  overflow: hidden;
  background: transparent;
  margin-top: var(--section-flow-gap);
  /* Performance optimization */
  will-change: transform;
  transform: translateZ(0);
}


.partners-marquee .partners-swiper:not(.swiper-initialized) .swiper-wrapper{
  display: flex;
  align-items: center;
  width: max-content;
}

.partners-marquee .partners-swiper:not(.swiper-initialized) .swiper-slide{
  flex: 0 0 auto;
}

/* Constant speed feel (no easing bumps) */
.partners-marquee .swiper-wrapper{
  transition-timing-function: linear !important;
  will-change: transform;
}

.partners-marquee .swiper-slide{
  width: auto; /* slidesPerView: 'auto' */
  padding-inline: calc(var(--pm-gap) / 2);
  display: grid;
  place-items: center;
}

/* reflection structure:
   <div class="pm-logo">
     <img class="pm-logo__img" ...>
     <img class="pm-logo__ref" ... aria-hidden="true">
   </div>
*/
.partners-marquee .pm-logo{
  position: relative;
  display: grid;
  justify-items: center;
  gap: var(--pm-reflection-gap);
}

.partners-marquee .pm-logo__img,
.partners-marquee .pm-logo__ref{
  height: var(--pm-logo-height);
  width: auto;
  max-width: 220px;
  object-fit: contain;
  display: block;
  user-select: none;
  -webkit-user-drag: none;

  /* If your logos aren’t already white, uncomment:
     filter: brightness(0) invert(1); */
}

.partners-marquee .pm-logo__img{
  opacity: .92;
}

.partners-marquee .pm-logo__ref{
  height: var(--pm-reflection-height);
  transform: scaleY(-1);
  transform-origin: top;
  opacity: var(--pm-reflection-opacity);
  filter: blur(1.6px);

  /* fade out like the screenshot */
  -webkit-mask-image: linear-gradient(to bottom, rgb(0 0 0 / 0%), rgb(0 0 0));
  mask-image: linear-gradient(to bottom, rgb(0 0 0 / 0%), rgb(0 0 0));
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

/* Responsive: smaller logos + tighter spacing on mobile */
@media (max-width: 900px){
  .partners-marquee{
    --pm-height: 130px;
    --pm-logo-height: 40px;
    --pm-reflection-height: 40px;
    --pm-gap: 60px;
    --pm-reflection-gap: 40px;
  }

  .partners-marquee .pm-logo__img,
  .partners-marquee .pm-logo__ref{
    max-width: 160px;
  }
}
@media (max-width: 600px){
  .partners-marquee{
    --pm-height: 100px;
    --pm-logo-height: 30px;
    --pm-reflection-height: 30px;
    --pm-gap: 44px;
    --pm-reflection-gap: 28px;
    --pm-reflection-opacity: .18;
  }

  .partners-marquee .pm-logo__img,
  .partners-marquee .pm-logo__ref{
    max-width: 120px;
  }
}

/* end partners marquee */
