/* ============================================================
   carousel.css — carrousel photos accessible (scroll-snap + flèches)
   Aucune dépendance externe. Défilement tactile + clavier + boutons.
   ============================================================ */
.carousel { position: relative; }

.carousel__track {
  display: flex;
  gap: var(--sp-3);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  padding-bottom: var(--sp-2);
  scrollbar-width: thin;
}
.carousel__track:focus-visible { outline: 0.18rem solid var(--yellow-2); outline-offset: 0.2rem; }

.carousel__slide {
  flex: 0 0 85%;
  scroll-snap-align: center;
  margin: 0;
}
@media (min-width: 48rem) { .carousel__slide { flex-basis: 48%; } }
@media (min-width: 72rem) { .carousel__slide { flex-basis: 32%; } }

.carousel__slide img,
.carousel__slide .ph {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  min-height: 12rem;
  object-fit: cover;
  border: 1px solid var(--line);
}
.carousel__slide figcaption {
  margin-top: 0.5rem;
  font-size: var(--step--1);
  color: var(--ink-soft);
}

/* Flèches précédent / suivant */
.carousel__btn {
  position: absolute;
  top: calc(50% - 1.4rem);
  transform: translateY(-50%);
  width: 2.8rem;
  height: 2.8rem;
  border-radius: 50%;
  border: 0;
  cursor: pointer;
  background: var(--ink);
  color: #fff;
  font-size: 1.4rem;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  box-shadow: 0 0.3rem 0.8rem rgba(0, 0, 0, .3);
  transition: background .15s ease;
}
.carousel__btn:hover { background: var(--olive); }
.carousel__btn:focus-visible { outline: 0.18rem solid var(--yellow-2); outline-offset: 0.2rem; }
.carousel__btn--prev { left: -0.6rem; }
.carousel__btn--next { right: -0.6rem; }
.carousel__btn[hidden] { display: none; }

@media (prefers-reduced-motion: reduce) { .carousel__track { scroll-behavior: auto; } }
