/* Stable project gallery layout: no overlap, no dense packing, no cropping. */
.project-opening{
  position:relative!important;
  z-index:1!important;
  isolation:isolate!important;
  overflow:hidden!important;
}

.project-opening-media{
  overflow:hidden!important;
}

.gallery-section{
  position:relative!important;
  z-index:2!important;
  clear:both!important;
  overflow:visible!important;
}

.gallery-heading{
  position:relative!important;
  z-index:1!important;
}

.gallery-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  grid-auto-flow:row!important;
  grid-auto-rows:auto!important;
  align-items:start!important;
  align-content:start!important;
  gap:clamp(34px,4vw,68px) clamp(16px,2vw,30px)!important;
  position:relative!important;
  overflow:visible!important;
}

.gallery-item,
.gallery-item.gallery-feature-primary,
.gallery-item.gallery-companion,
.gallery-item.gallery-feature-wide,
.gallery-item.gallery-sequence-start,
.gallery-item.gallery-ending{
  grid-column:auto!important;
  grid-row:auto!important;
  align-self:start!important;
  justify-self:stretch!important;
  width:100%!important;
  min-width:0!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  position:relative!important;
  inset:auto!important;
  transform:none!important;
  overflow:visible!important;
}

.gallery-card{
  display:block!important;
  position:relative!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
  transform:none!important;
}

.gallery-media,
.gallery-media .responsive-picture{
  display:block!important;
  position:relative!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  transform:none!important;
}

.gallery-image{
  display:block!important;
  position:static!important;
  inset:auto!important;
  width:100%!important;
  height:auto!important;
  max-width:100%!important;
  max-height:none!important;
  aspect-ratio:auto!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0!important;
  transform:none!important;
  clip-path:none!important;
}

.gallery-note{
  position:static!important;
  width:100%!important;
  margin:0!important;
  padding-top:12px!important;
  transform:none!important;
}

@media(max-width:1100px){
  .gallery-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media(max-width:700px){
  .gallery-grid{
    grid-template-columns:1fr!important;
    gap:38px!important;
  }
}
