.etc-gallery-masonry {
  --egm-gap: 16px;
  --egm-row-height: 360px;
  --egm-row-max: 520px;
}

.etc-gallery-masonry__grid {
  width: 100%;
}

/* Masonry (CSS columns) */
.etc-gallery-masonry--masonry .etc-gallery-masonry__grid {
  column-count: 3;
  column-gap: var(--egm-gap);
}

.etc-gallery-masonry--masonry .etc-gallery-masonry__item {
  break-inside: avoid;
  margin-bottom: var(--egm-gap);
}

/* Grid */
.etc-gallery-masonry--grid .etc-gallery-masonry__grid {
  display: grid;
  gap: var(--egm-gap);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* Justified rows */
.etc-gallery-masonry--justified .etc-gallery-masonry__grid {
  display: flex;
  flex-wrap: wrap;
  gap: var(--egm-gap);
}

.etc-gallery-masonry--justified .etc-gallery-masonry__item {
  margin: 0;
  overflow: hidden;
}

.etc-gallery-masonry__media {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.etc-gallery-masonry__media img,
.etc-gallery-masonry__media video {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  border-radius: 20px;
}

/* Equal height rows (grid only) */
.etc-gallery-masonry--grid.etc-gallery-masonry--equal .etc-gallery-masonry__item {
  height: var(--egm-row-height);
}

.etc-gallery-masonry--grid.etc-gallery-masonry--equal .etc-gallery-masonry__media {
  height: 100%;
}

.etc-gallery-masonry--grid.etc-gallery-masonry--equal .etc-gallery-masonry__media img,
.etc-gallery-masonry--grid.etc-gallery-masonry--equal .etc-gallery-masonry__media video {
  height: 100%;
}

.etc-gallery-masonry__caption {
  font-size: 0.95rem;
  margin-top: 8px;
  opacity: 0.85;
}

.etc-gallery-masonry__notice {
  padding: 10px 12px;
  background: #fff8e1;
  border: 1px solid #ffe08a;
  border-radius: 6px;
}
