/**
 * Premier affichage : éviter les sauts pendant le chargement.
 *
 * - Carrousels Swiper (thème parent) : avant leur démarrage, les vignettes
 *   ont déjà la largeur et l'écart que Swiper leur donnera (configs « books »
 *   et « categories-books » de Carousel.js), au lieu d'une vignette par ligne.
 * - En-tête : hauteur attendue avant que site-header.js la mesure, pour que
 *   les carrousels plein écran aient tout de suite la bonne hauteur.
 */
:root {
  --site-header-height: 84px;
}
@media (min-width: 1100px) {
  :root {
    --site-header-height: 152px;
  }
}
@media (min-width: 1600px) {
  :root {
    --site-header-height: 104px;
  }
}

.Carousel--books .swiper-container:not(.swiper-container-initialized),
.Carousel--categories-books .swiper-container:not(.swiper-container-initialized) {
  overflow: hidden;
}
.Carousel--books .swiper-container:not(.swiper-container-initialized) .swiper-slide,
.Carousel--categories-books .swiper-container:not(.swiper-container-initialized) .swiper-slide {
  flex-shrink: 0;
  width: calc((100% - 16px) / 1.5);
  margin-right: 32px;
}
@media (min-width: 768px) {
  .Carousel--books .swiper-container:not(.swiper-container-initialized) .swiper-slide,
  .Carousel--categories-books .swiper-container:not(.swiper-container-initialized) .swiper-slide {
    width: calc((100% - 64px) / 3);
  }
}
@media (min-width: 1024px) {
  .Carousel--books .swiper-container:not(.swiper-container-initialized) .swiper-slide,
  .Carousel--categories-books .swiper-container:not(.swiper-container-initialized) .swiper-slide {
    width: calc((100% - 108px) / 4);
    margin-right: 36px;
  }
}

/* Flèches du parent : invisibles tant que le carrousel n'a pas démarré */
.Carousel:has(.swiper-container:not(.swiper-container-initialized)) .carousel-arrows {
  visibility: hidden;
}
