/* Full viewport photo viewer, independent of gallery card dimensions. */
.lightbox:not([hidden]) {
  display: flex;
  align-items: stretch;
  justify-content: center;
  padding: 64px 4vw 24px;
  height: 100vh;
  height: 100dvh;
  box-sizing: border-box;
  overflow: auto;
}
.lightbox figure {
  flex: 1;
  width: 100%;
  max-width: 1800px;
  height: 100%;
  min-width: 0;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
}
.lightbox-image { min-width: 0; min-height: 0; }
.lightbox .lightbox-image img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: contain;
  object-position: center;
}
.lightbox figcaption { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.lightbox figcaption strong { flex: 1 1 240px; }
.lightbox-close { z-index: 1; min-height: 44px; font-size: 12px; }
@media (max-width: 600px) {
  .lightbox:not([hidden]) { padding: 60px 12px 20px; }
  .lightbox figure { gap: 12px; }
  .lightbox figcaption { flex-direction: column; gap: 6px; }
  .lightbox figcaption strong { flex: none; font-size: 16px; }
}
