/* =========================================================
   Carrousel partenaires — mécanique visuelle uniquement
   Les styles de la section finale sont dans partenaires-section.css.
   ========================================================= */

.partenaires-carousel {
  --partenaires-gap: clamp(26px, 4.8vw, 58px);
  --partenaires-transition: 650ms;
  position: relative;
  width: min(1080px, 100%);
  max-width: 100%;
  margin: 0 auto;
  padding: clamp(12px, 1.8vw, 20px) 0 clamp(10px, 1.6vw, 18px);
  overflow-x: hidden;
}

.partenaires-carousel::before,
.partenaires-carousel::after {
  content: "";
  display: block;
  width: min(780px, 78vw);
  height: 1px;
  margin: 0 auto;
  background: linear-gradient(90deg, transparent, rgba(255, 247, 233, 0.14), transparent);
}

.partenaires-carousel::before {
  margin-bottom: clamp(22px, 3vw, 34px);
}

.partenaires-carousel::after {
  margin-top: clamp(22px, 3vw, 34px);
}

.partenaires-carousel__viewport {
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
}

.partenaires-carousel__track {
  display: flex;
  align-items: center;
  gap: var(--partenaires-gap);
  max-width: none;
  will-change: transform;
  transition: transform var(--partenaires-transition) ease-in-out;
}

.partenaires-carousel__item {
  flex: 0 0 calc((100% - (3 * var(--partenaires-gap))) / 4);
  min-width: 0;
  min-height: 104px;
  display: flex;
  align-items: center;
  justify-content: center;
}

#part .partenaires-carousel .part {
  width: auto;
  max-width: 100%;
  max-height: 78px;
  margin: 0;
  padding: 0;
  object-fit: contain;
  transition: transform 180ms ease, filter 180ms ease;
}

#part .partenaires-carousel .part:hover {
  box-shadow: none;
  transform: translateY(-1px);
  filter: drop-shadow(0 5px 12px rgba(0, 5, 28, 0.22));
}

@media (max-width: 991.98px) {
  .partenaires-carousel {
    --partenaires-gap: clamp(22px, 5vw, 42px);
    width: min(760px, 100%);
  }

  .partenaires-carousel__item {
    flex-basis: calc((100% - (2 * var(--partenaires-gap))) / 3);
    min-height: 92px;
  }

  #part .partenaires-carousel .part {
    max-height: 68px;
  }
}

@media (max-width: 575.98px) {
  .partenaires-carousel {
    --partenaires-gap: 24px;
    width: 100%;
    padding-top: 2px;
  }

  .partenaires-carousel::before {
    margin-bottom: 20px;
  }

  .partenaires-carousel::after {
    margin-top: 20px;
  }

  .partenaires-carousel__viewport {
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 11%, #000 89%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0, #000 11%, #000 89%, transparent 100%);
  }

  .partenaires-carousel__item {
    flex-basis: calc((100% - var(--partenaires-gap)) / 2);
    min-height: 78px;
  }

  #part .partenaires-carousel .part {
    max-height: 58px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .partenaires-carousel__track {
    transition: none;
  }
}
