.place-photo-enlarge {
  display: block;
  cursor: zoom-in;
}

.place-photo-enlarge:focus-visible {
  outline: 3px solid #25519a;
  outline-offset: 3px;
  border-radius: 8px;
}

.place-gallery-viewer {
  box-sizing: border-box;
  width: min(95vw, 1150px);
  max-height: 95dvh;
  padding: clamp(.5rem, 2vw, 1rem);
  border: 0;
  border-radius: 12px;
  background: #102039;
  color: #fff;
}

.place-gallery-viewer::backdrop {
  background: rgb(4 12 25 / 82%);
}

.place-gallery-stage img {
  display: block;
  width: 100%;
  height: min(74dvh, 800px);
  object-fit: contain;
}

.place-gallery-caption {
  margin: .3rem 0;
  font-size: .8rem;
  text-align: center;
}

.place-gallery-caption a {
  color: #dae8ff;
}

.place-gallery-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: .5rem;
}

.place-gallery-controls button {
  min-width: 44px;
  min-height: 44px;
}
