/* Mosaic — square cells in a dense grid; the big ones span two by two */
.bsl-iso.is-mosaic .bsl-iso-stage {
  display: grid;
  grid-template-columns: repeat(var(--bsl-iso-cols), minmax(0, 1fr));
  grid-auto-flow: row dense;
  gap: var(--bsl-iso-gap, 10px);
}

.bsl-iso.is-mosaic .bsl-iso-item {
  aspect-ratio: 1 / 1;
}

.bsl-iso.is-mosaic .bsl-iso-link,
.bsl-iso.is-mosaic .bsl-iso-item img {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: cover;
}

.bsl-iso.is-mosaic .bsl-iso-item.is-big,
.bsl-iso.is-mosaic:not(.is-arranged) .bsl-iso-item:nth-child(6n + 1) {
  grid-column: span 2;
  grid-row: span 2;
}

.bsl-iso.is-mosaic .bsl-iso-caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 1.5rem .75rem .6rem;
  color: #fff;
  background: linear-gradient(to top, rgba(0, 0, 0, .55), rgba(0, 0, 0, 0));
  opacity: 0;
  transition: opacity .25s ease;
}

.bsl-iso.is-mosaic .bsl-iso-item:hover .bsl-iso-caption {
  opacity: 1;
}
