/* Full-size gallery overlays preserve the original page layout. */
.gallery-strip img, .property-hero-media img { cursor: zoom-in; }
a:focus-visible, button:focus-visible, img[role="button"]:focus-visible { outline: 2px solid var(--coral); outline-offset: 4px; }
.photo-dialog { position: fixed; inset: 0; width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; color: var(--cream); background: rgba(10, 24, 32, .96); }
.photo-dialog::backdrop { background: rgba(10, 24, 32, .8); }
.photo-viewer { width: 100%; height: 100%; padding: 70px 6vw 35px; display: flex; align-items: center; justify-content: center; gap: 24px; }
.photo-viewer figure { width: min(1080px, 80vw); margin: 0; text-align: center; }
.photo-full { max-width: 100%; max-height: 75dvh; object-fit: contain; }
.photo-viewer figcaption { margin-top: 18px; font-size: 12px; letter-spacing: .04em; color: rgba(247,243,237,.75); }
.photo-viewer button { width: 44px; height: 44px; flex-shrink: 0; border: 1px solid rgba(247,243,237,.35); color: var(--cream); background: transparent; font-size: 24px; }
.photo-viewer button:hover { color: var(--coral-soft); border-color: var(--coral-soft); }
.photo-close { position: absolute; top: 20px; right: 24px; }
@media (max-width: 640px) {
  .photo-viewer { padding: 75px 4vw 35px; gap: 9px; }
  .photo-viewer figure { width: 100%; }
  .photo-viewer button { width: 32px; height: 38px; }
  .photo-close { right: 5vw; }
  .photo-viewer figcaption { font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}
