.portfolio{ padding: 20px 0 70px; background:#fff; }
.section-title{ text-align:center; margin: 20px 0 10px; font-size: clamp(22px, 2.4vw, 30px); color: var(--brand-dark); }
.section-sub{ text-align:center; color: var(--text-muted); margin-bottom: 22px; }

.slider{ position: relative; overflow: hidden; padding: 10px 0; }
.slide-track{
  display:flex; align-items:center; gap: 24px;
  animation: scrollX 45s linear infinite; /* vitesse */
  will-change: transform;
}
.slider:hover .slide-track{ animation-play-state: paused; } /* pause au survol */

@keyframes scrollX{
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); } /* -50% car duplication de la série */
}

.slide{
  flex: 0 0 auto;
  width: clamp(220px, 26vw, 320px);
  aspect-ratio: 4/3;
  border-radius: 14px;
  overflow:hidden;
  position: relative;
  box-shadow: 0 8px 20px rgba(16,34,58,.10);
  background: #f4f6f8;
}
.slide img{
  width:100%; height:100%; object-fit: cover;
  transition: transform .5s ease, filter .5s ease;
  transform: scale(1.0);
}
.slide:hover img{ transform: scale(1.06); filter: saturate(1.05) contrast(1.03); }
.slide figcaption{
  position:absolute; left:8px; bottom:8px; right:8px;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.45) 100%);
  color:#fff; font-size: 12px; padding: 28px 10px 8px; border-radius: 8px;
}

/* Ancrages */
section{ scroll-margin-top: 90px; }
