/* ============================================================
   Avrile — cs-img-grid
   Grille 3 colonnes : 50% grande image + 25% + 25%.
   Variantes : --big-center, --big-right.
   Défaut : grande image à gauche.

   La largeur de la grande colonne est calculée pour aligner son
   gap vertical avec celui de cs-img-twin quand ils sont empilés :
   calc((100% - var(--avr-space-xs)) / 2) = même formule que 1fr dans une grille 2 colonnes.
   ============================================================ */

.avr-cs-img-grid {
  width: 100%;
  padding: calc(var(--avr-space-xs) / 2) var(--avr-space-gutter);
}

.avr-cs-img-grid__inner {
  width: 100%;
  max-width: var(--avr-max-content);
  margin: 0 auto;
  display: grid;
  grid-template-columns: calc((100% - var(--avr-space-xs)) / 2) 1fr 1fr;
  gap: var(--avr-space-xs);
  min-height: clamp(360px, 40vw, 560px);
}

.avr-cs-img-grid__img {
  border-radius: var(--avr-radius-sm);
  overflow: hidden;
  position: relative;
  width: 100%;
  height: 100%;
  grid-row: 1;
}

.avr-cs-img-grid__img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.avr-cs-img-grid__img video,
.avr-cs-img-grid__img .brxe-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.avr-cs-img-grid__img video {
  object-fit: cover;
  display: block;
}

.avr-cs-img-grid__img .bricks-video-container {
  padding-bottom: 0 !important;
  height: 100% !important;
}

.avr-cs-img-grid__img .brxe-video video,
.avr-cs-img-grid__img iframe {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 0;
  display: block;
}

/* ----------------------------------------------------------
   Default : big-left (grande image à gauche)
---------------------------------------------------------- */
.avr-cs-img-grid__img--big  { grid-column: 1; }
.avr-cs-img-grid__img--sm-1 { grid-column: 2; }
.avr-cs-img-grid__img--sm-2 { grid-column: 3; }

/* ----------------------------------------------------------
   Variante --big-center : grande image au centre
---------------------------------------------------------- */
.avr-cs-img-grid--big-center .avr-cs-img-grid__inner {
  grid-template-columns: 1fr calc((100% - var(--avr-space-xs)) / 2) 1fr;
}

.avr-cs-img-grid--big-center .avr-cs-img-grid__img--sm-1 { grid-column: 1; }
.avr-cs-img-grid--big-center .avr-cs-img-grid__img--big  { grid-column: 2; }
.avr-cs-img-grid--big-center .avr-cs-img-grid__img--sm-2 { grid-column: 3; }

/* ----------------------------------------------------------
   Variante --big-right : grande image à droite
---------------------------------------------------------- */
.avr-cs-img-grid--big-right .avr-cs-img-grid__inner {
  grid-template-columns: 1fr 1fr calc((100% - var(--avr-space-xs)) / 2);
}

.avr-cs-img-grid--big-right .avr-cs-img-grid__img--sm-1 { grid-column: 1; }
.avr-cs-img-grid--big-right .avr-cs-img-grid__img--sm-2 { grid-column: 2; }
.avr-cs-img-grid--big-right .avr-cs-img-grid__img--big  { grid-column: 3; }

/* ----------------------------------------------------------
   Responsive
---------------------------------------------------------- */
@media (max-width: 768px) {
  .avr-cs-img-grid__inner,
  .avr-cs-img-grid--big-center .avr-cs-img-grid__inner,
  .avr-cs-img-grid--big-right .avr-cs-img-grid__inner {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .avr-cs-img-grid__img {
    grid-row: auto;
    height: auto;
  }

  .avr-cs-img-grid__img--big {
    grid-column: 1;
    aspect-ratio: 16 / 9;
  }

  .avr-cs-img-grid__img--sm-1,
  .avr-cs-img-grid__img--sm-2 {
    grid-column: 1;
    aspect-ratio: 4 / 3;
  }

  .avr-cs-img-grid--big-center .avr-cs-img-grid__img--big,
  .avr-cs-img-grid--big-center .avr-cs-img-grid__img--sm-1,
  .avr-cs-img-grid--big-center .avr-cs-img-grid__img--sm-2,
  .avr-cs-img-grid--big-right .avr-cs-img-grid__img--big,
  .avr-cs-img-grid--big-right .avr-cs-img-grid__img--sm-1,
  .avr-cs-img-grid--big-right .avr-cs-img-grid__img--sm-2 {
    grid-column: 1;
  }
}
