        .odi-single-property { 
            width: 100%; 
            max-width: min(100%, var(--odi-site-max, 1400px));
            margin: 0 auto; 
            padding: 15px 20px; 
            font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
            color: var(--odi-brand-dark); 
            box-sizing: border-box;
            overflow-x: clip;
        }
        /* Dodatkowe klocki w #odi-main ogłoszenia (Moduły). */
        .odi-app-extra {
            width: 100%;
            max-width: 100%;
            margin: 24px 0 0;
            padding: 0;
            box-sizing: border-box;
        }
        .odi-app-extra--in-main {
            margin-top: 28px;
            padding-top: 8px;
            border-top: 1px solid var(--odi-brand-gray-light, #E5E8EB);
        }
        .odi-single-property * { box-sizing: border-box; }

        .odi-mono-svg {
            display: inline-block;
            vertical-align: middle;
            fill: currentColor;
        }

        /* MASTER GRID + sidebar: listing-sidebar.css */

        /* GŁÓWNA STRONA OGŁOSZENIA */
        .odi-main-property-content { display: flex; flex-direction: column; gap: 10px; width: 100%; min-width: 0; position: relative; }

        .odi-breadcrumbs { font-size: 12px; color: var(--odi-brand-slate); margin-bottom: 4px; display: flex; align-items: center; flex-wrap: wrap; gap: 5px; }
        .odi-breadcrumbs a { color: var(--odi-brand-slate); text-decoration: none; transition: color 0.15s; }
        .odi-breadcrumbs a:hover { color: var(--odi-brand-red); }
        .odi-bc-sep { color: var(--odi-brand-slate); font-weight: 500; }
        .odi-bc-current { color: var(--odi-brand-red); }

        /* GRID WEWNĘTRZNY OGŁOSZENIA NA PC (2 RÓWNE KOLUMNY PODZIELONE PŁYNNIE) */
        .odi-property-inner-layout { 
            display: grid; 
            grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); 
            gap: 25px; 
            align-items: stretch; 
        }

        .odi-inner-left, .odi-inner-right { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
        .odi-inner-right { width: 100%; }

        /* GALERIA */
        .odi-gallery-container { width: 100%; display: flex; flex-direction: column; gap: 8px; }
        .odi-main-photo-wrap { position: relative; width: 100%; aspect-ratio: 3 / 2; height: auto; max-height: 420px; background: var(--odi-brand-dark); border-radius: 8px; overflow: hidden; box-shadow: 0 3px 10px rgba(43, 47, 51, 0.05); user-select: none; touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
        .odi-main-photo-hit {
            position: absolute;
            inset: 0;
            z-index: 1;
            display: block;
            width: 100%;
            height: 100%;
            margin: 0;
            padding: 0;
            border: 0;
            background: transparent;
            cursor: pointer;
            -webkit-tap-highlight-color: transparent;
        }
        .odi-main-photo-hit:focus-visible { outline: 2px solid #FFE500; outline-offset: -2px; }
        .odi-main-photo { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; pointer-events: none; -webkit-user-drag: none; display: block; }
        .odi-main-photo-wrap:hover .odi-main-photo { transform: scale(1.015); }
        .odi-main-photo-badge { position: absolute; top: 8px; left: 8px; background: rgba(43, 47, 51, 0.94); color: var(--odi-brand-white); font-size: 10px; font-weight: 800; padding: 4px 9px; border-radius: 3px; border-left: 3px solid var(--odi-brand-red); z-index: 10; line-height: 1.25; box-sizing: border-box; }
        .odi-main-photo-overlay { position: absolute; bottom: 0; left: 0; right: 0; z-index: 5; background: linear-gradient(transparent, rgba(0,0,0,0.75)); color: var(--odi-brand-white); padding: 10px 14px; font-size: 12px; font-weight: 600; display: flex; justify-content: center; align-items: center; pointer-events: none; }
        .odi-main-photo-cta { display: flex; align-items: center; gap: 7px; letter-spacing: 0.01em; }

        .odi-thumbs-slider { position: relative; display: block; width: 100%; margin-top: 4px; padding: 0 36px; box-sizing: border-box; }
        .odi-thumbs-viewport { overflow: hidden; width: 100%; min-width: 0; touch-action: pan-y; overscroll-behavior-x: contain; cursor: grab; }
        .odi-thumbs-viewport.is-swiping { cursor: grabbing; }
        .odi-thumbs-track { display: flex; will-change: transform; transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1); align-items: stretch; width: 100%; min-width: 0; }
        .odi-thumbs-track.is-swiping { transition: none; }
        /* Fallback zanim JS zbuduje strony (Chrome bywa z clientWidth=0 na starcie). */
        .odi-thumbs-track:not([data-paged="1"]) {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 10px;
            transform: none !important;
        }
        .odi-thumbs-track[data-paged="1"] {
            display: flex;
        }
        .odi-thumbs-page {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 10px;
            box-sizing: border-box;
            align-content: start;
            justify-items: stretch;
            flex: 0 0 auto;
            flex-shrink: 0;
            min-width: 0;
        }
        .odi-thumb-item {
            position: relative;
            width: 100%;
            height: auto !important;
            min-width: 0;
            min-height: 0;
            aspect-ratio: 4 / 3;
            padding: 0;
            background: var(--odi-brand-dark);
            border-radius: 8px;
            overflow: hidden;
            cursor: pointer;
            border: 2px solid transparent;
            transition: border-color 0.2s, transform 0.2s, box-shadow 0.2s;
            align-self: start;
            flex: none;
            touch-action: manipulation;
            -webkit-tap-highlight-color: transparent;
        }
        .odi-thumb-item:hover { border-color: var(--odi-brand-red); transform: translateY(-2px); box-shadow: 0 4px 12px rgba(43, 47, 51, 0.12); }
        .odi-thumb-item img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; pointer-events: none; -webkit-user-drag: none; }
        .odi-thumb-broken { display: none !important; }
        .odi-single-property .odi-thumbs-nav {
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            z-index: 4;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 32px;
            height: 32px;
            min-width: 32px;
            max-width: 32px;
            margin: 0;
            padding: 0;
            line-height: 1;
            border: 1px solid var(--odi-brand-gray-light);
            background: var(--odi-brand-white);
            border-radius: 50%;
            cursor: pointer;
            color: var(--odi-brand-dark);
            font-size: 15px;
            font-weight: 700;
            box-shadow: 0 2px 8px rgba(43, 47, 51, 0.18);
            transition: background 0.15s, color 0.15s, border-color 0.15s;
        }
        .odi-single-property .odi-thumbs-prev { left: 0; }
        .odi-single-property .odi-thumbs-next { right: 0; }
        .odi-single-property .odi-thumbs-nav:hover { background: var(--odi-brand-red); color: var(--odi-brand-white); border-color: var(--odi-brand-red); }
        .odi-thumbs-slider.is-static .odi-thumbs-nav { display: none; }
        .odi-gallery-count { margin: 2px 0 0; text-align: center; font-size: 11px; font-weight: 700; color: var(--odi-brand-slate); letter-spacing: 0.02em; }

        /* METADANE & CENA */
        .odi-property-header-box { background: var(--odi-brand-white); border: 1px solid var(--odi-brand-gray-light); border-top: 3px solid var(--odi-brand-red); border-radius: 8px; padding: 16px 20px; box-shadow: 0 2px 6px rgba(43, 47, 51, 0.02); }
        .odi-meta-badges-row { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; min-height: 0; }
        .odi-meta-badges-row:empty { display: none; }
        .odi-meta-badges-row .odi-chip { font-size: 10px; padding: 5px 10px; }
        
        .odi-property-title { font-size: 20px; font-weight: 800; color: var(--odi-brand-dark); margin: 0 0 6px 0; line-height: 1.25; }
        .odi-location-sub { font-size: 12.5px; color: var(--odi-brand-slate); margin-bottom: 8px; display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
        .odi-location-map-btn {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            margin: 0;
            padding: 0;
            border: none;
            background: none;
            color: inherit;
            font: inherit;
            text-align: left;
            cursor: pointer;
            max-width: 100%;
        }
        .odi-location-map-btn:hover,
        .odi-location-map-btn:focus-visible {
            color: var(--odi-brand-red);
            outline: none;
        }
        .odi-location-map-btn__text { text-decoration: none; }
        .odi-location-map-btn:hover .odi-location-map-btn__text,
        .odi-location-map-btn:focus-visible .odi-location-map-btn__text {
            color: var(--odi-brand-red);
        }
        .odi-location-map-btn__hint {
            display: inline-flex;
            align-items: center;
            min-height: 20px;
            padding: 0 7px;
            border-radius: 999px;
            background: var(--odi-brand-dark);
            color: #fff;
            font-size: 10px;
            font-weight: 800;
            letter-spacing: 0.03em;
            text-transform: uppercase;
            flex-shrink: 0;
        }
        .odi-location-sub--map {
            flex-direction: column;
            align-items: flex-start;
            gap: 6px;
        }
        a.odi-location-map-btn {
            text-decoration: none;
            color: inherit;
        }
        .odi-location-map-gmaps-fallback {
            font-size: 11px;
            font-weight: 700;
            color: var(--odi-brand-slate);
            text-decoration: none;
        }
        .odi-location-map-gmaps-fallback:hover {
            color: var(--odi-brand-red);
            text-decoration: underline;
        }
        .odi-location-map-note {
            display: none;
            width: 100%;
            font-size: 11px;
            color: var(--odi-brand-slate);
            line-height: 1.4;
        }

        /* Mapa oferty · modal div (P2, bez <dialog>) */
        html.odi-map-modal-open,
        html.odi-map-modal-open body {
            overflow: hidden;
        }
        .odi-map-modal {
            position: fixed;
            inset: 0;
            z-index: 100050;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
            box-sizing: border-box;
            -webkit-overflow-scrolling: touch;
        }
        .odi-map-modal[hidden] {
            display: none !important;
        }
        .odi-map-modal__backdrop {
            position: absolute;
            inset: 0;
            background: rgba(43, 47, 51, 0.55);
        }
        .odi-map-modal__panel {
            position: relative;
            z-index: 1;
            width: min(920px, 100%);
            max-height: min(90vh, 720px);
            background: #fff;
            border: 1px solid var(--odi-brand-gray-light);
            border-radius: 12px;
            overflow: hidden;
            box-shadow: 0 16px 40px rgba(43, 47, 51, 0.18);
            display: flex;
            flex-direction: column;
        }
        .odi-map-modal__head {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            gap: 10px;
            padding: 12px 14px;
            border-bottom: 1px solid var(--odi-brand-gray-light);
            flex-shrink: 0;
        }
        .odi-map-modal__head-main {
            flex: 1 1 auto;
            min-width: 0;
        }
        .odi-map-modal__back {
            box-sizing: border-box;
            display: inline-flex;
            align-items: center;
            gap: 6px;
            max-width: 42%;
            margin: 0;
            padding: 8px 10px;
            border: 1px solid var(--odi-brand-gray-light);
            border-radius: 8px;
            background: #fff;
            color: var(--odi-brand-dark);
            font-size: 12px;
            font-weight: 700;
            line-height: 1.2;
            cursor: pointer;
            flex-shrink: 0;
        }
        .odi-map-modal__back span[aria-hidden="true"] {
            font-size: 16px;
            font-weight: 800;
            line-height: 1;
        }
        .odi-map-modal__back:hover,
        .odi-map-modal__back:focus-visible {
            border-color: var(--odi-brand-red);
            color: var(--odi-brand-red);
            outline: none;
        }
        .odi-map-modal__title {
            display: block;
            font-size: 15px;
            color: var(--odi-brand-dark);
            line-height: 1.3;
        }
        .odi-map-modal__meta {
            margin: 4px 0 0;
            font-size: 12px;
            color: var(--odi-brand-slate);
        }
        .odi-map-modal__close {
            box-sizing: border-box;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 36px;
            height: 36px;
            margin: 0;
            padding: 0;
            border: 1px solid var(--odi-brand-gray-light);
            border-radius: 8px;
            background: #fff;
            color: var(--odi-brand-dark);
            font-size: 22px;
            line-height: 1;
            cursor: pointer;
            flex-shrink: 0;
        }
        .odi-map-modal__close:hover,
        .odi-map-modal__close:focus-visible {
            border-color: var(--odi-brand-red);
            color: var(--odi-brand-red);
            outline: none;
        }
        .odi-map-modal__body {
            position: relative;
            display: flex;
            flex-direction: column;
            flex: 1 1 auto;
            min-height: 0;
        }
        .odi-map-modal__main {
            position: relative;
            display: flex;
            flex-direction: column;
            flex: 1 1 auto;
            min-height: 0;
            min-width: 0;
        }
        .odi-map-modal__canvas {
            position: relative;
            flex: 1 1 auto;
            width: 100%;
            min-height: 360px;
            height: min(62vh, 520px);
            background: var(--odi-brand-soft-bg, #F8F9FA);
        }
        .odi-map-modal__poi,
        .odi-map-modal__poi-title,
        .odi-map-modal__poi-list,
        .odi-map-modal__poi-item,
        .odi-map-modal__poi-btn {
            display: none !important;
        }
        @media (min-width: 900px) {
            .odi-map-modal__canvas {
                height: auto;
                min-height: min(56vh, 520px);
            }
        }
        .odi-map-modal__canvas.is-loading::after {
            content: "";
            position: absolute;
            inset: 0;
            background: linear-gradient(90deg, transparent, rgba(255,255,255,0.55), transparent);
            background-size: 200% 100%;
            animation: odi-map-shimmer 1.1s linear infinite;
            pointer-events: none;
            z-index: 500;
        }
        @keyframes odi-map-shimmer {
            0% { background-position: 100% 0; }
            100% { background-position: -100% 0; }
        }
        .odi-map-modal__canvas .leaflet-container,
        .odi-map-modal__canvas .odi-map-engine-host {
            width: 100% !important;
            height: 100% !important;
            min-height: inherit;
            font: inherit;
            z-index: 1;
        }
        .odi-map-home-control {
            margin: 0 0 10px 10px;
            z-index: 1000;
        }
        .odi-map-home-control__btn {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            margin: 0;
            padding: 9px 12px;
            border: 1px solid var(--odi-brand-gray-light, #E5E8EB);
            border-radius: 8px;
            background: #fff;
            color: var(--odi-brand-dark, #2B2F33);
            font: inherit;
            font-size: 12px;
            font-weight: 800;
            line-height: 1.2;
            cursor: pointer;
            box-shadow: 0 2px 10px rgba(43, 47, 51, 0.16);
            -webkit-tap-highlight-color: transparent;
        }
        .odi-map-home-control__btn:hover,
        .odi-map-home-control__btn:focus-visible {
            border-color: var(--odi-brand-red, #D3212B);
            color: var(--odi-brand-red, #D3212B);
            outline: none;
        }
        .odi-map-home-control__icon {
            display: inline-flex;
            color: var(--odi-brand-red, #D3212B);
            flex-shrink: 0;
        }
        .odi-map-home-control__label {
            white-space: nowrap;
        }
        @media (max-width: 478px) {
            .odi-map-home-control__label {
                display: none;
            }
            .odi-map-home-control__btn {
                padding: 10px;
            }
        }
        /* Zoom Leaflet w kolorach ODI */
        .odi-map-modal__canvas .leaflet-control-zoom a {
            color: var(--odi-brand-dark, #2B2F33) !important;
            border-color: var(--odi-brand-gray-light, #E5E8EB) !important;
        }
        .odi-map-modal__canvas .leaflet-control-zoom a:hover {
            color: var(--odi-brand-red, #D3212B) !important;
        }
        .odi-map-marker {
            background: transparent;
            border: 0;
        }
        .odi-map-marker__disc {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 36px;
            height: 36px;
            border-radius: 50%;
            background: #fff;
            border: 2px solid var(--odi-brand-red, #D3212B);
            box-shadow: 0 2px 8px rgba(43, 47, 51, 0.25);
            box-sizing: border-box;
        }
        .odi-map-marker__img {
            width: 22px;
            height: 22px;
            object-fit: contain;
            display: block;
        }
        .odi-map-poi {
            background: transparent !important;
            border: 0 !important;
        }
        .odi-map-poi__pin {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 30px;
            height: 30px;
            border-radius: 50%;
            background: var(--odi-poi, #555D61);
            color: #fff;
            border: 2px solid #fff;
            box-shadow: 0 2px 8px rgba(43, 47, 51, 0.35);
            box-sizing: border-box;
        }
        .odi-map-poi__svg {
            display: block;
            flex-shrink: 0;
        }
        .odi-map-poi-tip {
            font-size: 11px !important;
            font-weight: 600;
        }
        .odi-map-poi-tip--warning {
            background: #fef2f2 !important;
            border: 1px solid #fecaca !important;
            color: #991b1b !important;
        }
        .odi-map-poi__pin--warning {
            box-shadow: 0 0 0 2px #fecaca, 0 2px 8px rgba(220, 38, 38, 0.45);
        }
        .odi-map-modal__legend-warn,
        .odi-map-modal__legend,
        .odi-map-modal__legend-item,
        .odi-map-modal__legend-swatch,
        .odi-map-modal__legend-swatch--icon,
        .odi-map-modal__legend-swatch--home {
            display: none !important;
        }
        .odi-map-modal__legend-item {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            font-size: 11px;
            font-weight: 600;
            color: var(--odi-brand-dark);
            line-height: 1.2;
        }
        .odi-map-modal__legend-swatch {
            width: 10px;
            height: 10px;
            border-radius: 50%;
            background: #555D61;
            border: 1px solid rgba(43, 47, 51, 0.2);
            flex-shrink: 0;
        }
        .odi-map-modal__legend-swatch--icon {
            width: 20px;
            height: 20px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background: var(--odi-poi, #555D61);
            color: #fff;
            border: 1px solid rgba(255, 255, 255, 0.85);
            box-shadow: 0 1px 3px rgba(43, 47, 51, 0.2);
            box-sizing: border-box;
        }
        .odi-map-modal__legend-swatch--icon .odi-map-poi__svg {
            width: 11px;
            height: 11px;
        }
        .odi-map-modal__legend-swatch--home {
            background: #fff;
            border: 2px solid var(--odi-brand-red, #D3212B);
            box-sizing: border-box;
        }
        .odi-map-modal__fallback {
            padding: 28px 20px;
            text-align: center;
        }
        .odi-map-modal__fallback-title {
            margin: 0 0 8px;
            font-size: 15px;
            font-weight: 800;
            color: var(--odi-brand-dark);
        }
        .odi-map-modal__fallback-text {
            margin: 0 0 14px;
            font-size: 13px;
            color: var(--odi-brand-slate);
        }
        .odi-map-modal__fallback-btn,
        .odi-map-modal__gmaps {
            color: var(--odi-brand-red, #D3212B);
            font-weight: 800;
            text-decoration: none;
        }
        .odi-map-modal__fallback-btn {
            display: inline-flex;
            padding: 10px 14px;
            border-radius: 8px;
            border: 1px solid var(--odi-brand-red, #D3212B);
        }
        .odi-map-modal__fallback-btn:hover,
        .odi-map-modal__gmaps:hover {
            text-decoration: underline;
        }
        .odi-map-modal__foot {
            display: flex;
            flex-wrap: wrap;
            justify-content: flex-start;
            align-items: center;
            gap: 8px 14px;
            padding: 10px 16px 12px;
            font-size: 11px;
            color: var(--odi-brand-slate);
            border-top: 1px solid var(--odi-brand-gray-light);
            flex-shrink: 0;
        }
        @media (max-width: 640px) {
            .odi-map-modal__back-text {
                display: none;
            }
            .odi-map-modal__back {
                width: 36px;
                height: 36px;
                padding: 0;
                justify-content: center;
                max-width: none;
            }
        }

        /* Atrybucja Leaflet: bez flagi (prefix off w JS), mała i dyskretna */
        .odi-map-modal__canvas .leaflet-control-attribution,
        .odi-contact-map .leaflet-control-attribution,
        .odi-map-engine-host .leaflet-control-attribution {
            font-size: 9px !important;
            line-height: 1.2 !important;
            padding: 2px 5px !important;
            margin: 0 !important;
            max-width: min(42vw, 160px);
            opacity: 0.42;
            background: rgba(255, 255, 255, 0.55) !important;
            color: #555 !important;
            box-shadow: none !important;
            border-radius: 3px 0 0 0;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .odi-map-modal__canvas .leaflet-control-attribution:hover,
        .odi-contact-map .leaflet-control-attribution:hover,
        .odi-map-engine-host .leaflet-control-attribution:hover {
            opacity: 0.85;
            max-width: min(70vw, 280px);
        }
        .odi-map-modal__canvas .leaflet-control-attribution a,
        .odi-contact-map .leaflet-control-attribution a,
        .odi-map-engine-host .leaflet-control-attribution a {
            color: inherit !important;
        }
        .odi-price-box { display: flex; align-items: baseline; gap: 6px; border-top: 1px solid var(--odi-brand-gray-light); padding-top: 8px; }
        .odi-price-val { font-size: 24px; font-weight: 900; color: var(--odi-brand-red); }

        /* PARAMETRY */
        .odi-details-table-card { background: var(--odi-brand-white); border: 1px solid var(--odi-brand-gray-light); border-radius: 8px; padding: 12px 16px; box-shadow: 0 2px 6px rgba(43, 47, 51, 0.02); }
        .odi-params-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 148px), 1fr)); gap: 6px; }
        .odi-param-cell { background: var(--odi-brand-bg-soft); border: 1px solid var(--odi-brand-gray-light); padding: 6px 10px; border-radius: 5px; display: flex; flex-direction: column; gap: 1px; }
        .odi-p-label { font-size: 9px; font-weight: 700; color: var(--odi-brand-slate); text-transform: uppercase; letter-spacing: 0.5px; }
        .odi-p-val { font-size: 12px; font-weight: 800; color: var(--odi-brand-dark); }

        /* BLOKI OPISOWE */
        .odi-descriptions-wrapper { display: flex; flex-direction: column; gap: 14px; width: 100%; }
        .odi-property-block { background: var(--odi-brand-white); border: 1px solid var(--odi-brand-gray-light); border-radius: 8px; padding: 16px 20px; box-shadow: 0 2px 6px rgba(43, 47, 51, 0.02); }

        /* Wirtualny spacer 360 (pod YouTube). */
        .odi-tour-section { margin: 18px 0 0; width: 100%; }
        .odi-tour-shell {
            background: var(--odi-brand-white);
            border: 1px solid var(--odi-brand-gray-light);
            border-radius: 8px;
            overflow: hidden;
            box-shadow: 0 2px 8px rgba(43, 47, 51, 0.04);
        }
        .odi-tour-frame-wrap {
            position: relative;
            width: 100%;
            aspect-ratio: 16 / 9;
            background: #111;
        }
        .odi-tour-frame-wrap iframe {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            border: 0;
        }
        .odi-tour-facade {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 8px;
            margin: 0;
            padding: 16px;
            border: 0;
            cursor: pointer;
            background: linear-gradient(160deg, #1c1f22 0%, #2b2f33 55%, #3a4046 100%);
            color: #fff;
            font: inherit;
            text-align: center;
        }
        .odi-tour-facade:hover,
        .odi-tour-facade:focus-visible {
            outline: 2px solid var(--odi-brand-red, #D3212B);
            outline-offset: -2px;
        }
        .odi-tour-facade__label {
            font-size: 15px;
            font-weight: 800;
        }
        .odi-tour-facade__hint {
            font-size: 12px;
            font-weight: 600;
            opacity: 0.82;
            max-width: 28em;
        }
        .odi-tour-cta {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            justify-content: space-between;
            gap: 10px;
            padding: 12px 14px;
            border-top: 1px solid var(--odi-brand-gray-light);
            background: var(--odi-brand-bg-soft, #F8F9FA);
        }
        .odi-tour-cta-text {
            margin: 0;
            font-size: 12px;
            line-height: 1.4;
            color: var(--odi-brand-slate, #555D61);
            font-weight: 600;
        }
        .odi-tour-cta-btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 6px;
            padding: 8px 12px;
            border-radius: 5px;
            border: 1px solid var(--odi-brand-red, #D3212B);
            background: var(--odi-brand-red, #D3212B);
            color: #fff !important;
            font-size: 12px;
            font-weight: 700;
            text-decoration: none !important;
            white-space: nowrap;
        }
        .odi-tour-cta-btn:hover {
            filter: brightness(0.95);
        }
        .odi-tour-shell--link-only .odi-tour-cta {
            border-top: none;
        }

        .odi-listing-legal {
            margin: 18px 0 8px;
            padding: 14px 16px;
            background: var(--odi-brand-bg-soft, #F8F9FA);
            border: 1px solid var(--odi-brand-gray-light, #E5E8EB);
            border-radius: 8px;
        }

        /* Desktop: nota przed przyciskiem powrotu (DOM: powrot -> nota). */
        @media (min-width: 1281px) {
            .odi-inner-right .odi-elem-legal { order: 10; }
            .odi-inner-right .odi-elem-back-btn { order: 11; }
        }
        .odi-listing-legal__block {
            margin: 0 0 8px;
            font-size: 11px;
            line-height: 1.45;
            color: var(--odi-brand-slate, #555D61);
            font-weight: 500;
        }
        .odi-listing-legal__block:last-child { margin-bottom: 0; }
        .odi-listing-legal__block strong {
            color: var(--odi-brand-dark, #2B2F33);
            font-weight: 800;
        }
		.odi-typography-content {
			font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
			font-size: 13px;
			line-height: 1.65;
			color: var(--odi-brand-dark);
			text-align: left;
			text-align-last: auto;
			hyphens: none;
			-webkit-hyphens: none;
			-ms-hyphens: none;
			overflow-wrap: break-word;
			word-spacing: normal;
		}
		.odi-typography-content pre,
		.odi-typography-content code {
			font-family: inherit;
			white-space: normal;
		}
        .odi-single-property .odi-typography-content.odi-typography-content--prose,
        .odi-single-property .odi-typography-content.odi-typography-content--prose p,
        .odi-typography-content p {
			margin: 0 0 12px 0;
			text-align: left !important;
			text-align-last: auto;
			hyphens: none;
			-webkit-hyphens: none;
			-ms-hyphens: none;
			overflow-wrap: break-word;
		}
        .odi-typography-content p:last-child { margin-bottom: 0; }
        .odi-typography-content--prose p + p { margin-top: 0; }
        .odi-typography-content.odi-list-check,
        .odi-typography-content ul,
        .odi-typography-content ol {
			text-align: left !important;
			text-align-last: start;
			hyphens: none;
			-webkit-hyphens: none;
		}
        .odi-typography-content.odi-list-check p {
			text-align: left !important;
			hyphens: manual;
		}
        .odi-list-check ul { margin: 0; padding-left: 18px; list-style-type: disc; }
        .odi-list-check li { margin-bottom: 4px; }

        /* CTA pod parametrami */
        .odi-listing-cta {
            background: var(--odi-brand-white);
            border: 1px solid var(--odi-brand-gray-light);
            border-left: 3px solid var(--odi-brand-red);
            border-radius: 8px;
            padding: 14px 16px;
            box-shadow: 0 2px 6px rgba(43, 47, 51, 0.02);
            text-align: center;
        }
        .odi-listing-cta__price {
            margin: 0 0 8px;
            font-size: 15px;
            font-weight: 900;
            color: var(--odi-brand-red);
            letter-spacing: 0.02em;
        }
        .odi-listing-cta__title {
            margin: 0 0 6px;
            font-size: 15px;
            font-weight: 800;
            color: var(--odi-brand-dark);
            line-height: 1.35;
        }
        .odi-listing-cta__text {
            margin: 0 0 6px;
            font-size: 13px;
            font-weight: 600;
            color: var(--odi-brand-slate);
            line-height: 1.45;
        }
        .odi-listing-cta__phone {
            margin: 8px 0 0;
            font-size: 16px;
            font-weight: 900;
        }
        .odi-listing-cta__phone a {
            color: var(--odi-brand-red);
            text-decoration: none;
        }
        .odi-listing-cta__phone a:hover {
            text-decoration: underline;
        }
        .odi-listing-cta__credit {
            margin: 10px 0 0;
            padding-top: 10px;
            border-top: 1px dashed var(--odi-brand-gray-light);
            font-size: 12px;
            font-weight: 700;
            color: var(--odi-brand-dark);
            line-height: 1.4;
        }

        /* AGENT & POI */
        .odi-agent-lead-container, .odi-poi-lead-container { 
            background: var(--odi-brand-white); 
            border: 1px solid var(--odi-brand-gray-light); 
            border-radius: 8px; 
            padding: 14px 16px; 
            box-shadow: 0 2px 6px rgba(43, 47, 51, 0.02); 
            width: 100%;
        }

        .odi-agent-lead-container {
            display: flex;
            flex-direction: column;
        }

        .odi-agent-lead-container .odi-single-agent-wrap {
            flex: 1 1 auto;
        }

        .odi-poi-helper-box {
            display: flex;
            align-items: flex-start;
            gap: 8px;
            background: var(--odi-brand-bg-soft);
            border: 1px solid var(--odi-brand-gray-light);
            border-left: 3px solid var(--odi-brand-dark);
            border-radius: 6px;
            padding: 8px 10px;
            margin-bottom: 8px;
        }
        .odi-poi-helper-icon { color: var(--odi-brand-dark); flex-shrink: 0; margin-top: 1px; }
        .odi-poi-helper-text { font-size: 11px; line-height: 1.45; color: var(--odi-brand-slate); }
        .odi-poi-helper-text strong { color: var(--odi-brand-dark); }
        .odi-poi-helper-legend { display: flex; gap: 6px; margin-top: 4px; flex-wrap: wrap; }
        .odi-legend-pill { display: inline-flex; align-items: center; gap: 4px; background: var(--odi-brand-white); border: 1px solid var(--odi-brand-gray-light); padding: 4px 9px; border-radius: 4px; font-size: 10px; font-weight: 700; color: var(--odi-brand-dark); line-height: 1.25; box-sizing: border-box; }

        .odi-poi-clean-wrapper { display: flex; flex-direction: column; gap: 5px; width: 100%; }
        .odi-poi-clean-wrapper .odi-poi-section { background: var(--odi-brand-white); border: 1px solid var(--odi-brand-gray-light); border-radius: 6px; padding: 0; margin-bottom: 0; box-shadow: 0 1px 3px rgba(43,47,51,0.02); overflow: hidden; transition: border-color 0.2s; }
        .odi-poi-clean-wrapper .odi-poi-section.odi-poi-active { border-color: var(--odi-brand-dark); }

        .odi-poi-clean-wrapper .odi-poi-section-title { font-size: 11px; font-weight: 900; color: var(--odi-brand-dark); background: var(--odi-brand-bg-soft); margin: 0; padding: 0; border-bottom: 1px solid var(--odi-brand-gray-light); text-transform: uppercase; letter-spacing: 0.5px; text-align: left; user-select: none; }
        .odi-poi-clean-wrapper .odi-poi-section-toggle { width: 100%; margin: 0; padding: 7px 10px; border: 0; background: transparent; color: inherit; font: inherit; letter-spacing: inherit; text-transform: inherit; cursor: pointer; display: flex; justify-content: flex-start; align-items: center; gap: 8px; text-align: left; transition: background 0.15s; }
        .odi-poi-clean-wrapper .odi-poi-section-toggle:hover,
        .odi-poi-clean-wrapper .odi-poi-section-title:hover { background: #F1F5F9; }
        .odi-poi-clean-wrapper .odi-poi-section.odi-poi-active .odi-poi-section-title,
        .odi-poi-clean-wrapper .odi-poi-section.odi-poi-active .odi-poi-section-toggle { background: #FFF8F8; color: var(--odi-brand-dark); }
        .odi-poi-clean-wrapper .odi-poi-section-label { display: inline-flex; align-items: center; gap: 7px; min-width: 0; flex: 1; text-align: left; }
        .odi-poi-clean-wrapper .odi-poi-section-icon { width: 14px; height: 14px; flex-shrink: 0; color: var(--odi-brand-dark); fill: currentColor; }
        .odi-poi-clean-wrapper .odi-poi-section-text { min-width: 0; line-height: 1.3; }
        .odi-poi-clean-wrapper .odi-poi-arrow { margin-left: auto; flex-shrink: 0; font-size: 13px; font-weight: bold; color: var(--odi-brand-slate); transition: transform 0.2s ease; }
        .odi-poi-clean-wrapper .odi-poi-section.odi-poi-active .odi-poi-arrow { transform: rotate(180deg); color: var(--odi-brand-red); }

        .odi-poi-clean-wrapper .odi-poi-list,
        .odi-poi-clean-wrapper .odi-poi-grid { display: none; margin: 0; padding: 0; background: var(--odi-brand-white); }
        .odi-poi-clean-wrapper .odi-poi-section.odi-poi-active .odi-poi-list,
        .odi-poi-clean-wrapper .odi-poi-section.odi-poi-active .odi-poi-grid { display: block; }

        .odi-poi-clean-wrapper .odi-poi-item,
        .odi-poi-clean-wrapper .odi-poi-card { padding: 6px 10px; gap: 8px; }
        .odi-poi-clean-wrapper .odi-poi-label,
        .odi-poi-clean-wrapper .odi-poi-title { font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
        .odi-poi-clean-wrapper .odi-poi-name,
        .odi-poi-clean-wrapper .odi-poi-sub { display: none; }
        .odi-poi-clean-wrapper .odi-poi-dist { font-size: 10px; padding: 2px 6px; }

        /* PŁYWAJĄCY PRZYCISK FAB — ta sama wysokość i pozycja co chrome/archiwum */
        .odi-floating-menu-btn { 
            display: none; 
            position: fixed; 
            right: 0; 
            left: auto; 
            top: var(--odi-fab-top, 14px); 
            transform: none; 
            opacity: 1; 
            pointer-events: auto; 
            background: var(--odi-brand-dark); 
            color: var(--odi-brand-white); 
            border: none; 
            border-right: 4px solid var(--odi-brand-red); 
            border-left: 0;
            padding: 8px 6px 8px 10px; 
            border-radius: 6px 0 0 6px; 
            font-weight: 800; 
            font-size: 10px; 
            line-height: 1.15;
            min-height: 52px;
            min-width: 44px;
            box-sizing: border-box;
            cursor: pointer; 
            z-index: 99999; 
            flex-direction: column; 
            align-items: center; 
            justify-content: center;
            gap: 4px; 
            box-shadow: -3px 0 15px rgba(0,0,0,0.25); 
        }
        .odi-floating-menu-btn .odi-fab-icon { width: 18px; height: 14px; display: block; flex-shrink: 0; }
        .odi-floating-menu-btn .odi-fab-text { font-size: 10px; line-height: 1; letter-spacing: 0.02em; }
        .odi-floating-menu-btn.odi-fab-visible,
        .odi-floating-menu-btn.odi-fab-idle { 
            opacity: 1; 
        }

        /* OFFCANVAS DRAWER — nagłówek stały, treść menu się przewija */
        .odi-offcanvas-backdrop { 
            position: fixed; 
            inset: 0; 
            width: 100%; 
            height: 100%; 
            height: 100dvh; 
            background: rgba(43, 47, 51, 0.75); 
            z-index: 99999999 !important; 
            display: none; 
            align-items: stretch;
            justify-content: flex-start;
            overflow: hidden;
            overscroll-behavior: none;
        }
        .odi-offcanvas-backdrop.is-open {
            display: flex;
            visibility: visible;
            opacity: 1;
            pointer-events: auto;
        }
        .odi-offcanvas-panel { 
            width: min(320px, 88vw); 
            max-width: 88vw; 
            height: 100%;
            max-height: 100dvh;
            background: var(--odi-brand-white); 
            box-shadow: 4px 0 25px rgba(0,0,0,0.35); 
            padding: 0; 
            display: flex; 
            flex-direction: column; 
            overflow: hidden;
            touch-action: auto;
            z-index: 100000000 !important; 
        }
        .odi-offcanvas-header { display: flex; justify-content: space-between; align-items: center; border-bottom: 2px solid var(--odi-brand-red); padding: 14px 15px 10px; margin: 0; flex: 0 0 auto; }
        .odi-offcanvas-body { flex: 1 1 auto; min-height: 0; overflow-x: hidden; overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; touch-action: pan-y; padding: 12px 15px calc(28px + env(safe-area-inset-bottom, 0px)); display: flex; flex-direction: column; gap: 14px; }
        .odi-offcanvas-brand { font-weight: 800; font-size: 12px; color: var(--odi-brand-dark); display: flex; align-items: center; gap: 8px; }
        .odi-brand-svg-offcanvas { height: 26px; width: auto; }
        .odi-offcanvas-close { background: none; border: none; font-size: 24px; cursor: pointer; color: var(--odi-brand-slate); }
        .odi-offcanvas-body .odi-sidebar-nav-card { overflow: visible; }
        .odi-offcanvas-body .odi-offcanvas-site { margin-bottom: 14px; }

        /* LIGHTBOX PASSE-PARTOUT */
        .odi-lightbox-overlay { position: fixed; inset: 0; width: 100%; height: 100%; height: 100dvh; background: rgba(43, 47, 51, 0.94); z-index: 999999999; display: none; align-items: center; justify-content: center; padding: 15px; box-sizing: border-box; touch-action: pan-y; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; overflow: hidden; }
        .odi-lb-passepartout { background: var(--odi-brand-white); padding: 12px 12px 10px 12px; border-radius: 8px; box-shadow: 0 25px 60px rgba(0,0,0,0.6); width: min(95vw, 1400px); max-width: 100%; max-height: min(92vh, 92dvh); box-sizing: border-box; display: flex; flex-direction: column; align-items: center; touch-action: pan-y; overscroll-behavior: contain; }
        .odi-lb-img-wrap { width: 100%; height: 100%; max-height: min(78vh, 78dvh); overflow: hidden; display: flex; align-items: center; justify-content: center; background: #111; border-radius: 4px; cursor: grab; touch-action: pan-y; }
        .odi-lb-img-wrap.is-swiping { cursor: grabbing; }
        .odi-lb-img-wrap img { width: auto; height: auto; max-width: 100%; max-height: min(78vh, 78dvh); object-fit: contain; pointer-events: none; -webkit-user-drag: none; }
        .odi-lb-bottom-bar { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: nowrap; padding-top: 10px; font-size: 12px; color: var(--odi-brand-slate); box-sizing: border-box; min-width: 0; }
        .odi-lb-counter { flex: 0 0 auto; white-space: nowrap; }
        .odi-lb-signature { flex: 1 1 auto; min-width: 0; text-align: right; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
        .odi-lb-signature-label { margin-right: 0.35em; }
        .odi-lb-signature-id { font-weight: 700; }
        .odi-lb-save {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            flex: 0 0 auto;
            margin: 0;
            padding: 8px 12px;
            border: 1px solid var(--odi-brand-gray-light);
            border-radius: 6px;
            background: var(--odi-brand-dark);
            color: #fff;
            font: inherit;
            font-size: 12px;
            font-weight: 700;
            cursor: pointer;
            line-height: 1.2;
        }
        .odi-lb-save:hover { background: var(--odi-brand-red); border-color: var(--odi-brand-red); }
        .odi-lb-save .odi-mono-svg { flex-shrink: 0; }
        .odi-lb-close { position: absolute; top: 20px; right: 25px; background: none; border: none; color: var(--odi-brand-white); font-size: 38px; cursor: pointer; font-weight: bold; z-index: 10000000; }
        .odi-lb-arrow { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(43, 47, 51, 0.85); color: var(--odi-brand-white); border: none; font-size: 20px; width: 46px; height: 46px; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; z-index: 10000000; }
        .odi-lb-arrow:hover { background: var(--odi-brand-red); }
        .odi-lb-prev { left: 20px; }
        .odi-lb-next { right: 20px; }

        /* PRZYCISK POWROTU */
        .odi-back-action-wrap { margin-top: 6px; margin-bottom: 4px; display: flex; width: 100%; justify-content: center; }
        .odi-btn-back { display: inline-flex; align-items: center; justify-content: center; gap: 6px; background: var(--odi-brand-dark); color: var(--odi-brand-white); padding: 10px 18px; border-radius: 6px; text-decoration: none; font-size: 12px; font-weight: 700; transition: all 0.15s; text-align: center; }
        .odi-btn-back:hover { background: var(--odi-brand-red); color: var(--odi-brand-white); transform: translateX(-3px); }

        /* RESPONSIVE
         * Laptop 1280: chowa sidebar + stackuje galeria|szczegóły (wcześniej stack był dopiero ≤1024,
         * co w zakresie 1025–1280 ścisło boxy i miniatury).
         * Tablet 991 / mobile 767 — dalsze dopasowanie. */
        @media (max-width: 1280px) {
            .odi-property-master-grid { display: flex; flex-direction: column; gap: 15px; align-items: stretch; width: 100%; }
            .odi-desktop-sidebar { display: none !important; }
            .odi-floating-menu-btn { display: flex; }

            .odi-property-inner-layout { display: contents !important; }
            .odi-inner-left, .odi-inner-right { display: contents !important; }
            .odi-agent-lead-container { margin-top: 0; }

            .odi-main-photo-wrap { height: auto; max-height: min(360px, 48vw); aspect-ratio: 3 / 2; width: 100%; }

            .odi-elem-breadcrumbs  { order: 1; width: 100%; }
            .odi-elem-gallery      { order: 2; width: 100%; }
            .odi-elem-youtube      { order: 3; width: 100%; }
            .odi-elem-pano         { order: 4; width: 100%; }
            .odi-elem-tour        { order: 5; width: 100%; }
            .odi-elem-header-price { order: 6; }
            .odi-elem-params       { order: 7; }
            .odi-elem-descriptions { order: 8; }
            .odi-elem-poi          { order: 9; }
            .odi-elem-portal       { order: 10; width: 100%; }
            .odi-elem-cta          { order: 11; width: 100%; }
            .odi-elem-agent        { order: 12; }
            .odi-share-pdf-wrap--mobile { order: 13; width: 100%; }
            .odi-tax-box--mobile { order: 14; width: 100%; }

            .odi-elem-back-btn {
                order: 99 !important;
                width: 100% !important;
                display: flex;
                justify-content: center;
                padding: 10px 0 12px 0 !important;
                margin: 0 !important;
            }
            .odi-elem-legal {
                order: 100 !important;
                width: 100% !important;
                margin: 0 0 20px !important;
            }
            .odi-btn-back {
                width: 100%;
                justify-content: center;
                padding: 12px 14px;
                font-size: 13px;
            }

            .odi-params-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr)); }
        }

        @media (max-width: 991px) {
            .odi-poi-lead-container,
            .odi-agent-lead-container,
            .odi-details-table-card,
            .odi-property-header-box,
            .odi-property-block,
            .odi-listing-cta {
                padding: 12px !important;
                width: 100% !important;
                box-sizing: border-box !important;
            }
            .odi-typography-content { font-size: 12.5px; }
            .odi-main-photo-wrap { height: auto; max-height: min(300px, 52vw); aspect-ratio: 3 / 2; }
            .odi-params-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
        }

        @media (max-width: 767px) {
            .odi-main-photo-wrap { height: auto; max-height: 240px; aspect-ratio: 3 / 2; }
            .odi-thumbs-slider { padding: 0 30px; }
            .odi-single-property .odi-thumbs-nav { width: 28px; height: 28px; min-width: 28px; max-width: 28px; font-size: 13px; }
            .odi-single-property .odi-thumbs-prev { left: 0; }
            .odi-single-property .odi-thumbs-next { right: 0; }
            .odi-property-title { font-size: 18px; }
            .odi-price-val { font-size: 22px; }
            .odi-params-grid { grid-template-columns: 1fr; }
            .odi-main-photo-overlay { font-size: 11px; padding: 8px 10px; }

            /* Lightbox mobile: full-bleed photo chrome, stacked bottom bar, safe-area arrows */
            .odi-lightbox-overlay {
                padding:
                    max(6px, env(safe-area-inset-top, 0px))
                    max(4px, env(safe-area-inset-right, 0px))
                    max(6px, env(safe-area-inset-bottom, 0px))
                    max(4px, env(safe-area-inset-left, 0px));
            }
            .odi-lb-passepartout {
                width: 100%;
                max-width: 100%;
                padding: 8px 8px 8px;
                border-radius: 6px;
                max-height: min(90vh, 90dvh);
            }
            .odi-lb-img-wrap,
            .odi-lb-img-wrap img { max-height: min(72vh, 72dvh); }
            .odi-lb-bottom-bar {
                display: grid;
                grid-template-columns: auto minmax(0, 1fr);
                grid-template-areas:
                    "counter save"
                    "sig sig";
                gap: 6px 8px;
                align-items: center;
                font-size: 11px;
                padding-top: 8px;
            }
            .odi-lb-counter { grid-area: counter; font-size: 11px; }
            .odi-lb-save {
                grid-area: save;
                justify-self: end;
                padding: 6px 10px;
                font-size: 11px;
                gap: 5px;
            }
            .odi-lb-signature {
                grid-area: sig;
                text-align: left;
                font-size: 10px;
                letter-spacing: 0.01em;
                max-width: 100%;
            }
            .odi-lb-close {
                top: max(8px, env(safe-area-inset-top, 0px));
                right: max(10px, env(safe-area-inset-right, 0px));
                font-size: 32px;
                line-height: 1;
            }
            .odi-lb-arrow {
                width: 36px;
                height: 36px;
                font-size: 15px;
            }
            .odi-lb-prev { left: max(10px, calc(env(safe-area-inset-left, 0px) + 6px)); }
            .odi-lb-next { right: max(10px, calc(env(safe-area-inset-right, 0px) + 6px)); }
        }

        @media (max-width: 380px) {
            .odi-lb-signature-label { display: none; }
            .odi-lb-save span { display: none; }
            .odi-lb-save { padding: 6px 8px; }
        }
