@charset "UTF-8";
/**
 * CTA gallery module.
 * Layout: content (title + btn) on top, gallery images below (column, not side-by-side).
 * Structure: .row > .text (h2 + btn) + .media (grid of 2/3/4 images).
 * Only the main row (direct child) gets column layout; .media .row must stay grid.
 */
.mod_cta_gallery.container > .row {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.5rem;
}
.mod_cta_gallery .text {
  width: 100%;
  max-width: 100%;
  text-align: center;
}
.mod_cta_gallery .text h2 {
  margin: 0 0 0.75em;
}
.mod_cta_gallery .text h2 .small {
  display: block;
  font-size: 0.85em;
  font-weight: 500;
  opacity: 0.9;
}
.mod_cta_gallery .text .btn {
  display: inline-block;
}
.mod_cta_gallery .media {
  width: 100%;
  min-width: 0;
}
.mod_cta_gallery .media .row {
  display: grid;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}
.mod_cta_gallery .media .row:last-of-type {
  margin-bottom: 0;
}
/* 2 images: one row, 2 columns */
.mod_cta_gallery .media.cols-2 .row {
  grid-template-columns: 1fr 1fr;
}
/* 3 images: one row, 3 columns */
.mod_cta_gallery .media.cols-3 .row {
  grid-template-columns: repeat(3, 1fr);
}
/* 4 images: one row, 4 columns (per module doc) */
.mod_cta_gallery .media.cols-4 .row {
  grid-template-columns: repeat(4, 1fr);
}
.mod_cta_gallery .media .gallery-item,
.mod_cta_gallery .media picture.gallery-item {
  display: block;
  margin: 0;
}
.mod_cta_gallery .media .gallery-item img,
.mod_cta_gallery .media picture.gallery-item img {
  width: 100%;
  height: auto;
  display: block;
  vertical-align: middle;
}
.mod_cta_gallery .media .gallery-label {
  display: block;
  margin-top: 0.5rem;
  font-size: 0.9em;
}
