/* V3 photo-rich layouts. Every source image keeps its natural aspect ratio. */
.photo-showcase-grid,
.product-gallery-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}

.photo-showcase-card{
  display:flex;
  flex-direction:column;
  min-width:0;
  margin:0;
  background:#fff;
  border:1px solid var(--border);
  overflow:hidden;
  transition:transform .25s var(--ease),box-shadow .25s var(--ease);
}

a.photo-showcase-card:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 44px rgba(13,27,42,.1);
}

.photo-showcase-card img{
  display:block;
  width:100%;
  height:auto;
  min-height:0;
  aspect-ratio:auto;
  object-fit:contain;
  background:#eeeae3;
}

.photo-showcase-card figcaption,
.photo-showcase-card .photo-caption{
  display:block;
  padding:16px 18px 18px;
  color:var(--muted);
  font-size:13px;
  line-height:1.5;
}

.photo-showcase-card strong{
  display:block;
  margin-bottom:4px;
  color:var(--navy);
  font-family:var(--sans);
  font-size:14px;
}

.photo-note{
  max-width:820px;
  margin:26px auto 0;
  color:var(--muted);
  font-size:13px;
  text-align:center;
}

.more-photo-strip{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:12px;
  margin-top:24px;
}

.more-photo-strip a{
  display:block;
  min-width:0;
  background:#fff;
  border:1px solid var(--border);
}

.more-photo-strip img{
  display:block;
  width:100%;
  height:auto;
  min-height:0;
  aspect-ratio:auto;
  object-fit:contain;
}

.gallery-grid.gallery-grid-four{
  grid-template-columns:repeat(4,minmax(0,1fr));
}

.gallery-grid.gallery-grid-five{
  grid-template-columns:repeat(5,minmax(0,1fr));
}

.gallery-grid.gallery-grid-four .gallery-card img,
.gallery-grid.gallery-grid-five .gallery-card img{
  width:100%;
  height:auto;
  min-height:0;
  aspect-ratio:auto;
  object-fit:contain;
}

@media(max-width:1080px){
  .photo-showcase-grid,.product-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .more-photo-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
  .gallery-grid.gallery-grid-four,.gallery-grid.gallery-grid-five{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:700px){
  .photo-showcase-grid,.product-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .more-photo-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:480px){
  .photo-showcase-grid,.product-gallery-grid,.gallery-grid.gallery-grid-four,.gallery-grid.gallery-grid-five{grid-template-columns:1fr}
  .more-photo-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
}
