html.irox-gallery-open,
html.irox-gallery-open body { overflow: hidden; }
.irox-property-gallery {
    position: fixed; inset: 0; margin: auto; width: 100%; height: 100%;
    height: 100dvh; max-width: none; max-height: none; padding: 0; border: 0;
    background: #111a1d; color: #fff; box-sizing: border-box;
}
.irox-property-gallery::backdrop { background: #111a1d; }
.irox-property-gallery[open] {
    display: grid; grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto minmax(0, 1fr) auto;
}
.irox-property-gallery [hidden] { display: none !important; }
.irox-gallery-header {
    display: flex; align-items: center; gap: 16px; padding: 10px 20px;
    padding-top: max(10px, env(safe-area-inset-top)); min-height: 68px;
    color: #fff; font-size: 15px; line-height: 1.5;
}
.irox-gallery-counter { margin-left: auto; font-variant-numeric: tabular-nums; white-space: nowrap; }
.irox-property-gallery button {
    display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
    min-width: 48px; min-height: 48px; padding: 0; border: 1px solid #718086;
    border-radius: 50%; background: #20343b; color: #fff; cursor: pointer;
    font: inherit; line-height: 1;
}
.irox-property-gallery button:hover { background: #17616b; }
.irox-property-gallery button:focus-visible { outline: 3px solid #efc878; outline-offset: 3px; }
.irox-property-gallery button span { color: inherit; font-size: 34px; line-height: 1; }
.irox-gallery-stage {
    position: relative; display: flex; align-items: center; justify-content: center;
    min-width: 0; min-height: 0; padding: 8px 76px 20px;
    touch-action: pan-y pinch-zoom; user-select: none;
}
.irox-gallery-stage > img {
    display: block; width: auto; height: auto; max-width: 100%; max-height: 100%;
    object-fit: contain; border: 0; border-radius: 0; margin: 0;
}
.irox-gallery-previous, .irox-gallery-next { position: absolute; top: calc(50% - 24px); z-index: 2; }
.irox-gallery-previous { left: 16px; }
.irox-gallery-next { right: 16px; }
.irox-gallery-status {
    position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%);
    max-width: calc(100% - 32px); margin: 0; padding: 8px 14px; border-radius: 8px;
    background: #111a1deb; color: #fff; text-align: center; font-size: 14px;
    line-height: 1.5; pointer-events: none;
}
.irox-property-gallery .irox-gallery-retry {
    position: absolute; left: 50%; top: 55%; transform: translateX(-50%);
    padding: 10px 20px; border-radius: 8px;
}
.irox-gallery-caption {
    margin: 0; padding: 8px 24px max(16px, env(safe-area-inset-bottom));
    max-height: 20vh; overflow-y: auto; color: #fff; text-align: center;
    font-size: 14px; line-height: 1.6;
}
.irox-property-gallery.irox-gallery-has-contact { grid-template-columns: minmax(0, 1fr) 300px; }
.irox-gallery-has-contact > .irox-gallery-header { grid-column: 1 / -1; }
.irox-gallery-has-contact > [data-irox-gallery-contact] {
    grid-column: 2; grid-row: 2 / 4; overflow-y: auto; padding: 20px; background: #fff; color: #26343a;
}
@media (max-width: 767px) {
    .irox-gallery-header { padding-left: 14px; padding-right: 14px; gap: 10px; font-size: 13px; }
    .irox-gallery-stage { padding: 8px 12px 24px; }
    .irox-gallery-previous { left: 6px; }
    .irox-gallery-next { right: 6px; }
    .irox-property-gallery .irox-gallery-previous,
    .irox-property-gallery .irox-gallery-next { background: #20343be8; }
    .irox-property-gallery.irox-gallery-has-contact { grid-template-columns: minmax(0, 1fr); overflow-y: auto; }
    .irox-gallery-has-contact > [data-irox-gallery-contact] { grid-column: 1; grid-row: auto; max-height: 40vh; }
}
