/* Masonry : chaque image garde ses proportions d'origine */
.wp-block-gallery.is-style-masonry {
  display: block !important;
  columns: 3 250px;
  column-gap: 12px;
}
.wp-block-gallery.is-style-masonry .wp-block-image {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  flex: none !important;
  margin: 0 0 12px !important;
  break-inside: avoid;
  position: relative;
}
.wp-block-gallery.is-style-masonry .wp-block-image a {
  display: block !important;
  height: auto !important;
  flex: none !important;
}
.wp-block-gallery.is-style-masonry .wp-block-image img {
  display: block;
  width: 100% !important;
  height: auto !important;
  flex: none !important;
  object-fit: contain !important;
  /* on ne touche plus à aspect-ratio : le navigateur utilise width/height */
}


/* Grille régulière : cases carrées recadrées */
.wp-block-gallery.is-style-grille {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 12px;
}
.wp-block-gallery.is-style-grille .wp-block-image {
  width: 100% !important;
  margin: 0 !important;
}
.wp-block-gallery.is-style-grille .wp-block-image img {
  width: 100%;
  height: 100% !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
}

/* Justifiée : la figure impose le ratio, l'image la remplit */
.wp-block-gallery.is-style-justifie {
  --row-height: 320px;
  display: flex !important;
  flex-wrap: wrap;
  align-items: flex-start !important;
  gap: 12px;
}
.wp-block-gallery.is-style-justifie figure.wp-block-image {
  flex: none !important;
  margin: 0 !important;
  overflow: hidden;
}
.wp-block-gallery.is-style-justifie figure.wp-block-image a {
  display: block !important;
  width: 100%;
  height: 100%;
}
.wp-block-gallery.is-style-justifie figure.wp-block-image img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  aspect-ratio: auto !important;
  object-fit: cover;
}
@media (max-width: 600px) {
  .wp-block-gallery.is-style-justifie { --row-height: 200px; }
}