.listing-page { background: var(--sand-2); min-height: 100vh; padding-top: 126px; }
    .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:126px; }
    .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); }
    .btn.directions { background:linear-gradient(135deg,#2f7d59,#43a872); color:#fff; }
    .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-page { padding-top:104px; } .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; }

.appointment-modal { position:fixed; inset:0; z-index:180; display:grid; place-items:center; padding:10px; background:rgba(7,25,35,.62); }
.appointment-modal[hidden] { display:none; }
.appointment-dialog { box-sizing:border-box; width:min(960px,calc(100vw - 20px)); max-height:calc(100vh - 20px); overflow:auto; overflow-x:hidden; position:relative; background:var(--white); border:1px solid var(--line); border-radius:28px; padding:clamp(22px,4vw,36px); box-shadow:0 28px 90px rgba(7,25,35,.28); }
.appointment-close { position:absolute; top:14px; right:14px; width:42px; height:42px; border:1px solid var(--line); border-radius:50%; background:var(--sand-2); color:var(--ink); font-size:28px; line-height:1; cursor:pointer; }
.appointment-dialog h2 { font-family:Inter,system-ui,sans-serif; font-size:clamp(24px,4vw,34px); line-height:1.12; letter-spacing:-.03em; margin:4px 42px 10px 0; }
.appointment-intro { color:var(--muted); line-height:1.6; margin:0 0 20px; }
.appointment-form { display:grid; gap:16px; }
.appointment-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.appointment-form label, .appointment-options legend { color:var(--navy); font-weight:900; }
.appointment-form input, .appointment-form select { width:100%; margin-top:7px; border:1px solid var(--line); border-radius:16px; padding:12px 13px; font:inherit; color:var(--ink); background:var(--white); }
.appointment-form input:focus, .appointment-form select:focus, .appointment-close:focus, .appointment-add-option:focus { outline:3px solid rgba(184,132,64,.32); outline-offset:2px; }
.appointment-options { box-sizing:border-box; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; border:1px solid var(--line); border-radius:20px; padding:16px; margin:0; background:var(--sand-2); }
.appointment-options legend { padding:0 8px; }
.appointment-options p { grid-column:1/-1; margin:0; color:var(--muted); line-height:1.55; font-weight:700; }
.appointment-options [hidden] { display:none !important; }
.appointment-add-option { width:46px; height:46px; align-self:end; justify-self:start; border:1px solid rgba(184,132,64,.42); border-radius:50%; background:var(--gold); color:var(--ink); font-size:28px; font-weight:900; line-height:1; cursor:pointer; box-shadow:0 10px 24px rgba(184,132,64,.18); }
.appointment-add-option:hover { filter:brightness(.98); transform:translateY(-1px); }
.appointment-check { display:flex; align-items:flex-start; gap:10px; color:var(--muted); line-height:1.5; font-weight:700; }
.appointment-check input { width:auto; margin-top:3px; flex:0 0 auto; }
.appointment-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.appointment-actions .btn { border:0; cursor:pointer; }
.appointment-status { min-height:22px; margin:0; color:var(--muted); font-weight:800; line-height:1.5; }
.appointment-status.success { color:#236b42; }
.appointment-status.error { color:#9b2f24; }
body.appointment-open { overflow:hidden; }
@media (max-width: 720px) { .appointment-grid, .appointment-options { grid-template-columns:1fr; } .appointment-actions .btn { width:100%; } }
