body.gallery-open { overflow: hidden; }
button.listing-media { display: block; width: 100%; padding: 0; border: 0; color: inherit; font: inherit; text-align: left; cursor: zoom-in; }
button.listing-media:focus-visible { outline: 3px solid #a27a33; outline-offset: -4px; }
.property-gallery-dialog { width: min(1100px, calc(100% - 48px)); max-width: none; max-height: calc(100dvh - 48px); margin: auto; padding: 0; border: 1px solid #dde3e3; border-radius: 8px; color: #0b1f25; background: #fff; overflow: auto; box-shadow: 0 24px 90px #0006; }
.property-gallery-dialog::backdrop { background: #071217d9; }
.property-gallery-dialog { overscroll-behavior: contain; }
.property-gallery-dialog [hidden] { display: none !important; }
.gallery-header { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; gap: 20px; justify-content: space-between; padding: 14px 20px; background: #fff; }
.gallery-title { margin: 0; font: 500 21px/1.3 var(--sans, sans-serif); letter-spacing: 0; overflow-wrap: anywhere; }
.gallery-close, .gallery-prev, .gallery-next { display: grid; place-items: center; flex: none; width: 44px; height: 44px; padding: 0; border: 1px solid #dce2e2; border-radius: 50%; background: #fff; color: #0b1f25; cursor: pointer; }
.property-gallery-dialog button:hover { background: #edf4f4; }
.property-gallery-dialog :focus-visible { outline: 3px solid #a27a33; outline-offset: 3px; }
.property-gallery-dialog svg { width: 22px; height: 22px; flex: none; }
.gallery-stage { position: relative; background: #10191d; }
.gallery-photo-link { display: flex; align-items: center; justify-content: center; width: 100%; height: min(64dvh, 690px); min-height: 180px; cursor: pointer; touch-action: pan-y pinch-zoom; }
.gallery-image { display: block; width: 100%; height: 100%; object-fit: contain; }
.gallery-prev, .gallery-next { position: absolute; top: 50%; transform: translateY(-50%); z-index: 1; box-shadow: 0 2px 12px #0003; }
.gallery-prev { left: 14px; } .gallery-next { right: 14px; }
.gallery-image-error { position: absolute; inset: 0; display: grid; place-items: center; margin: 0; padding: 24px 64px; color: #fff; pointer-events: none; text-align: center; }
.gallery-footer { display: flex; align-items: center; gap: 18px; padding: 16px 20px; }
.gallery-caption { flex: 1; min-width: 0; margin: 0; font-size: 13px; line-height: 1.45; overflow-wrap: anywhere; }
.gallery-count { white-space: nowrap; font-size: 13px; font-variant-numeric: tabular-nums; }
.gallery-detail { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; color: #0b1f25; font-size: 14px; font-weight: 600; white-space: nowrap; text-decoration: underline; text-underline-offset: 4px; }
.gallery-status { margin: 0; padding: 0 20px 14px; color: #53656b; font-size: 13px; }
@media (max-width: 600px) {
  .property-gallery-dialog { width: calc(100% - 20px); max-height: calc(100dvh - 24px); }
  .gallery-header { padding: 10px 12px; gap: 10px; }
  .gallery-title { font-size: 17px; }
  .gallery-photo-link { height: min(54dvh, 500px); }
  .gallery-footer { flex-wrap: wrap; gap: 6px 16px; padding: 10px 12px; }
  .gallery-caption { flex-basis: calc(100% - 65px); }
  .gallery-detail { margin-left: auto; }
  .gallery-prev { left: 8px; } .gallery-next { right: 8px; }
}
