.listing-page { background: var(--sand-2); min-height: 100vh; }
    .listing-top { padding: 28px clamp(18px,5vw,76px); display:flex; justify-content:space-between; align-items:center; gap:18px; background:var(--white); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:10; }
    .listing-brand small { color: var(--muted); }
    .listing-layout { padding: 34px clamp(18px,5vw,76px) 70px; display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:32px; align-items:start; }
    .listing-gallery { display:grid; grid-template-columns:1.35fr .65fr; gap:12px; margin-bottom:28px; }
    .gallery-main, .gallery-tile { border-radius:22px; overflow:hidden; background:var(--white); border:1px solid var(--line); box-shadow:0 18px 54px rgba(7,25,35,.08); }
    .gallery-main img, .gallery-tile img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .18s ease; }
    .gallery-main { min-height:520px; }
    .gallery-side { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
    .gallery-tile { min-height:254px; position:relative; }
    .gallery-open { width:100%; height:100%; border:0; padding:0; display:block; background:transparent; cursor:zoom-in; text-align:left; }
    .gallery-open:hover img { transform:scale(1.025); }
    .gallery-more { position:absolute; inset:0; display:grid; place-items:center; color:var(--white); font-weight:900; font-size:22px; background:rgba(7,25,35,.54); pointer-events:none; }
    .photo-lightbox { position:fixed; inset:0; z-index:200; background:rgba(7,25,35,.92); display:grid; grid-template-rows:auto 1fr auto; gap:16px; padding:18px; }
    .photo-lightbox[hidden] { display:none; }
    .lightbox-top { display:flex; justify-content:space-between; align-items:center; color:var(--white); font-weight:900; }
    .lightbox-close, .lightbox-nav { border:1px solid rgba(255,255,255,.28); background:rgba(255,255,255,.12); color:var(--white); cursor:pointer; }
    .lightbox-close { width:46px; height:46px; border-radius:50%; font-size:30px; line-height:1; }
    .lightbox-stage { display:grid; grid-template-columns:58px minmax(0,1fr) 58px; gap:14px; align-items:center; min-height:0; }
    .lightbox-image-wrap { min-height:0; height:100%; display:grid; place-items:center; }
    .lightbox-image-wrap img { max-width:100%; max-height:calc(100vh - 190px); object-fit:contain; border-radius:20px; box-shadow:0 24px 80px rgba(0,0,0,.35); }
    .lightbox-nav { height:68px; border-radius:999px; font-size:44px; line-height:1; }
    .lightbox-thumbs { display:flex; gap:10px; overflow:auto; padding:4px 0 2px; }
    .lightbox-thumbs button { flex:0 0 84px; height:62px; border:2px solid transparent; border-radius:12px; padding:0; overflow:hidden; background:transparent; cursor:pointer; opacity:.72; }
    .lightbox-thumbs button.active { border-color:var(--gold); opacity:1; }
    .lightbox-thumbs img { width:100%; height:100%; object-fit:cover; display:block; }
    @media (max-width:620px) { .photo-lightbox { padding:10px; } .lightbox-stage { grid-template-columns:42px minmax(0,1fr) 42px; gap:8px; } .lightbox-nav { height:54px; font-size:34px; } .lightbox-image-wrap img { max-height:calc(100vh - 170px); border-radius:14px; } .lightbox-thumbs button { flex-basis:68px; height:52px; } }
    .listing-main-card, .contact-card { background:var(--white); border:1px solid var(--line); border-radius:var(--radius-xl); padding:clamp(24px,4vw,42px); box-shadow:0 22px 70px rgba(7,25,35,.08); }
    .listing-price { color:var(--clay); font-size:clamp(32px,4vw,54px); font-weight:900; line-height:1; margin:6px 0 12px; }
    .listing-main-card h1 { font-family:Inter,system-ui,sans-serif; font-size:clamp(28px,4vw,48px); line-height:1.08; letter-spacing:-.035em; }
    .listing-location { color:var(--muted); font-weight:800; margin:16px 0 24px; line-height:1.55; }
    .listing-code { display:inline-flex; margin-left:8px; border:1px solid var(--line); border-radius:999px; padding:5px 9px; color:var(--muted); font-size:12px; }
    .listing-chips { display:flex; flex-wrap:wrap; gap:10px; margin:20px 0 30px; }
    .listing-chips span { background:var(--sand-2); border:1px solid var(--line); border-radius:999px; padding:11px 14px; font-weight:900; color:var(--navy); }
    .listing-section { border-top:1px solid var(--line); padding-top:28px; margin-top:28px; }
    .listing-section h2 { font-family:Inter,system-ui,sans-serif; font-size:24px; letter-spacing:-.02em; margin-bottom:14px; }
    .listing-description { color:var(--ink); line-height:1.85; white-space:pre-line; }
    .listing-amenities { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:10px; padding:0; margin:0; list-style:none; }
    .listing-amenities li { background:var(--sand-2); border:1px solid var(--line); border-radius:16px; padding:11px 13px; font-weight:800; color:var(--navy); }
    .contact-card { position:sticky; top:96px; }
    .contact-card h2 { font-family:Inter,system-ui,sans-serif; font-size:23px; line-height:1.2; margin:0 0 8px; }
    .contact-card p { color:var(--muted); line-height:1.65; }
    .contact-actions { display:grid; gap:10px; margin:22px 0; }
    .contact-actions .btn { width:100%; }
    .btn.call { background:var(--ink); color:var(--white); }
    .btn.offer { background:linear-gradient(135deg,var(--gold),#e2c783); color:var(--ink); }
    .favorite-inline { border:1px solid var(--line); border-radius:999px; padding:13px 18px; background:var(--sand-2); font-weight:900; cursor:pointer; }
    .source-note { font-size:13px; color:var(--muted); line-height:1.65; border-top:1px solid var(--line); padding-top:18px; }
    .listing-map-frame { width:100%; height:360px; border:0; border-radius:22px; box-shadow:0 18px 54px rgba(7,25,35,.08); background:var(--sand-2); }
    .listing-map-caption { color:var(--muted); font-weight:800; margin:0 0 14px; line-height:1.55; }
    @media (max-width: 980px) { .listing-layout { grid-template-columns:1fr; } .contact-card { position:static; } .listing-gallery { grid-template-columns:1fr; } .gallery-main { min-height:360px; } .gallery-side { grid-template-columns:repeat(2,1fr); } .gallery-tile { min-height:150px; } }
    @media (max-width: 620px) { .listing-top { position:static; } .listing-layout { padding-inline:14px; } .listing-gallery { margin-inline:-2px; } .gallery-main { min-height:320px; } .gallery-side { grid-template-columns:1fr 1fr; } .gallery-tile { min-height:110px; border-radius:16px; } .listing-main-card, .contact-card { padding:22px; border-radius:24px; } }

body.lightbox-open { overflow: hidden; }
