/*
|--------------------------------------------------------------------------
| Block: Image Card (Carousel)
|--------------------------------------------------------------------------
| Swiper carousel + common-scrollbar per layout CAROUSEL_*.
*/

.js-imagecard-carousel.swiper {
  width: 100%;
  min-width: 0;
}

.block-imageCard {
  overflow-x: hidden;
  overflow-x: clip;
}

/*
 * Lo Swiper carousel_small deve restare al 100% del proprio container
 * fluido. In passato esisteva una regola `width: 104%` (e `width: 100%`
 * compensativa a >=1280px) che faceva sforare il container parent fra
 * 768px e 1280px, generando overflow orizzontale del documento.
 * Il peek mobile (sotto) resta intenzionale: è scoped a max-width: 767px
 * e la viewport mobile è gestita dall'overflow del layout di pagina.
 */

@media (max-width: 767px) {
  .js-imagecard-small-header.imagecard-title-center {
    transform: none;
  }

  .js-imagecard-carousel.swiper[data-imagecard-type="carousel_small"] {
    transform: translateX(-16px);
    width: 114%;
  }

  .js-imagecard-carousel.swiper[data-imagecard-type="carousel_small"] + div {
    margin-inline: -16px;
    width: calc(100% + 32px);
  }

  .js-imagecard-small-header {
    transform: translateX(-16px);
  }
}

/*
 * Niente width fissa sul .swiper-wrapper: Swiper la calcola da solo
 * (somma slide-width + spaceBetween in modalità "auto", oppure imposta
 * direttamente la width delle slide in modalità slidesPerView numerica).
 * Fissarla causa overflow orizzontale sui viewport intermedi quando il
 * container risulta più stretto del valore hardcoded.
 */
.js-imagecard-carousel .swiper-wrapper {
  align-items: stretch;
}

.js-imagecard-carousel .swiper-slide {
  height: auto;
  width: auto;
  box-sizing: border-box;
  flex-shrink: 0;
}

.js-imagecard-carousel[data-imagecard-type="carousel_small"] .swiper-slide {
  width: 288px !important;
}

@media (max-width: 359px) {
  .js-imagecard-carousel[data-imagecard-type="carousel_large"] .swiper-slide,
  .js-imagecard-carousel[data-imagecard-type="carousel_large"] .swiper-slide > div {
    width: 100% !important;
    max-width: 100% !important;
  }

  .js-imagecard-carousel[data-imagecard-type="carousel_large"] .swiper-slide > div > div > div {
    width: 100% !important;
    max-width: 100% !important;
  }
}

@media (min-width: 768px) {
  /* Quando center_cards è attivo, centra il wrapper se le slide totali
   * sono più strette del container. Se sono più larghe, viene clippato
   * dall'overflow:hidden della .swiper. */
  .js-imagecard-carousel.imagecard-cards-center .swiper-wrapper {
    width: fit-content;
    margin-inline: auto;
  }

  .js-imagecard-carousel.imagecard-cards-center[data-imagecard-type="carousel_small"] {
    width: 100%;
  }
}

/* Text-button proveniente dal secondo repeater (auxiliary) della card:
 * deve stare a filo sinistro col testo soprastante. La utility
 * .btn-text-button del tema ha padding-inline 28px (utile per CTA generici
 * dentro pattern centrati); qui il padding sinistro viene azzerato cosi'
 * il glifo del label parte allineato al contenuto della card. */
.btn-text-button--card.btn-text-button {
  padding-left: 0;
}
