/*
|--------------------------------------------------------------------------
| 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;
}

@media (max-width: 1023.98px) {
  .block-imageCard .js-imagecard-carousel.swiper {
    overflow: visible;
  }
}

/*
 * Lo Swiper carousel_small deve restare al 100% del proprio container
 * fluido. Le slide a larghezza fissa conservano il peek mobile dentro la
 * viewport dello Swiper, senza allargare o traslare il container stesso.
 */

/*
 * 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;
}

/*
 * QA 175/176/177: le slide small hanno larghezza fissa responsive (248/255/288,
 * utility Tailwind nel markup) col peek di design; le large usano la larghezza
 * naturale della card su mobile e tornano fluide da tablet. Le vecchie regole
 * width hardcoded (288px flat per le small, 100% <360px per le large) sono
 * state rimosse: la prima era inefficace (persa nell'ordine dei layer), la
 * seconda superflua con le slide fluide da tablet.
 */
.js-imagecard-carousel .swiper-slide {
  height: auto;
  width: auto;
  box-sizing: border-box;
  flex-shrink: 0;
}

@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;
}

/* Image Card: image card 2 image. Scoped to the four-card banner wall. */
.block-imageCard--two-images > div {
  padding-block: 24px;
}

.image-card-two-images__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.block-imageCard--two-images .image-card-two-images__card {
  display: flex;
  flex-direction: row;
  width: 100%;
  max-width: none;
  min-width: 0;
  min-height: 216px;
  align-items: stretch;
}

.block-imageCard--two-images .image-card-two-images__card--right {
  flex-direction: row-reverse;
}

.block-imageCard--two-images .image-card-two-images__image {
  position: relative;
  width: 46%;
  height: auto;
  flex-shrink: 0;
}

.block-imageCard--two-images .image-card-two-images__image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: bottom center;
  clip-path: none;
}

.block-imageCard--two-images .image-card-two-images__image + div {
  width: 54%;
  min-width: 0;
  padding: 20px;
  gap: 12px;
}

.block-imageCard--two-images .btn-text-button {
  padding-block: 0;
}

@media (max-width: 1023px) {
  .image-card-two-images__grid { grid-template-columns: 1fr; }
}

@media (max-width: 767px) {
  .block-imageCard--two-images .image-card-two-images__card,
  .block-imageCard--two-images .image-card-two-images__card--right {
    flex-direction: column;
  }
  .block-imageCard--two-images .image-card-two-images__card--right { flex-direction: column-reverse; }
  .block-imageCard--two-images .image-card-two-images__image { width: 100%; height: 200px; }
  .block-imageCard--two-images .image-card-two-images__image img { object-fit: contain; }
  .block-imageCard--two-images .image-card-two-images__image + div { width: 100%; padding: 16px; }
}
