.house-viewer{width:min(1240px,calc(100% - 64px));max-width:none;max-height:calc(100dvh - 64px);margin:auto;padding:0;border:0;border-radius:8px;background:var(--paper);color:var(--ink);box-shadow:0 24px 100px #102c2966;overflow:auto;overscroll-behavior:contain}
.house-viewer::backdrop{background:rgba(15,31,29,.78);backdrop-filter:blur(5px)}
html.house-viewer-open{overflow:hidden}
.house-viewer-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px 12px 28px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:2;background:var(--paper)}
.house-viewer-header>span{font-size:11px;font-weight:600;letter-spacing:.16em}
.house-viewer-close,.house-viewer-arrow{width:44px;height:44px;flex-shrink:0;display:grid;place-items:center;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--ink);font-size:26px;line-height:1}
.house-viewer-close:hover,.house-viewer-arrow:hover{background:var(--green);color:var(--white)}
.house-viewer-layout{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(300px,1fr)}
.house-viewer-gallery{min-width:0;background:#eae8df;padding:20px;align-self:start}
.house-viewer-stage{position:relative;display:grid;place-items:center;height:clamp(260px,53dvh,570px);background:#e1e0d7;touch-action:pan-y pinch-zoom;border-radius:4px;overflow:hidden}
.house-viewer-image{width:100%;height:100%;min-height:0;object-fit:contain}
.house-viewer-arrow{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,254,250,.96);box-shadow:0 2px 12px #102c2922;font-size:23px}
.house-viewer-prev{left:12px}.house-viewer-next{right:12px}
.house-viewer-caption{display:flex;align-items:start;justify-content:space-between;gap:16px;padding:13px 2px;font-size:13px;line-height:1.5;min-height:48px}
.house-viewer-caption p{margin:0}.house-viewer-caption>span{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--muted)}
.house-viewer-thumbnails{display:flex;gap:8px;overflow-x:auto;padding:4px 3px 10px;scrollbar-width:thin;overscroll-behavior-x:contain}
.house-viewer-thumbnail{flex:0 0 72px;height:56px;padding:0;border:2px solid transparent;border-radius:3px;background:transparent;overflow:hidden;opacity:.65}
.house-viewer-thumbnail img{width:100%;height:100%;object-fit:cover}
.house-viewer-thumbnail:hover{opacity:1}.house-viewer-thumbnail[aria-pressed=true]{border-color:var(--green);outline:1px solid var(--green);outline-offset:2px;opacity:1}
.house-viewer-thumbnail:focus-visible{outline:3px solid #d78951;outline-offset:2px;opacity:1}
.house-viewer-summary{padding:32px;min-width:0;align-self:start}
.house-viewer-summary .eyebrow{font-size:10px;letter-spacing:.17em;margin:0 0 16px}
.house-viewer-summary h2{font-size:clamp(30px,3vw,42px);margin-bottom:22px}
.house-viewer-facts{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px;padding:0}
.house-viewer-facts li{padding:7px 10px;background:#e6ebe0;border-radius:3px;font-size:12px;font-weight:500;line-height:1.5}
.house-viewer-description{font-size:14px;line-height:1.8;color:var(--muted);margin:0 0 20px}
.house-viewer-highlights{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 26px;padding:0;font-size:12px;line-height:1.6}
.house-viewer-highlights li{display:flex;gap:8px}.house-viewer-highlights li:before{content:'✓';color:var(--green)}
.house-viewer-actions{display:flex;flex-direction:column;align-items:start;gap:15px;border-top:1px solid var(--line);padding-top:22px}
.house-viewer-actions .button{width:100%;font-size:13px}.house-viewer-actions .text-link{font-size:12px}
.house-viewer-status{font-size:12px;line-height:1.6;color:var(--muted);margin:14px 0 0}.house-viewer-status:empty{display:none}
.house-viewer-image-error{position:absolute;inset:35% 65px auto;padding:16px;background:var(--paper);font-size:13px;text-align:center}
.house-viewer [hidden]{display:none!important}
@media(max-width:900px){.house-viewer{width:calc(100% - 32px);max-height:calc(100dvh - 32px)}.house-viewer-layout{grid-template-columns:minmax(0,1.3fr) minmax(270px,1fr)}.house-viewer-summary{padding:24px}.house-viewer-stage{height:43dvh}.house-viewer-highlights{grid-template-columns:1fr}}
@media(max-width:680px){.house-viewer{width:100%;max-height:100dvh;height:100dvh;margin:0;border-radius:0}.house-viewer-header{padding:10px 16px}.house-viewer-header>span{font-size:9px;letter-spacing:.12em}.house-viewer-layout{grid-template-columns:minmax(0,1fr)}.house-viewer-gallery{padding:12px 12px 4px}.house-viewer-stage{height:clamp(200px,39dvh,360px)}.house-viewer-thumbnail{flex-basis:64px;height:50px}.house-viewer-summary{padding:22px}.house-viewer-summary h2{font-size:32px;margin-bottom:16px}.house-viewer-summary .eyebrow{margin-bottom:10px}.house-viewer-facts{margin-bottom:16px}.house-viewer-highlights{grid-template-columns:1fr 1fr;gap:10px}.house-viewer-description{margin-bottom:16px}.house-viewer-actions{padding-bottom:env(safe-area-inset-bottom)}.house-viewer-prev{left:8px}.house-viewer-next{right:8px}}

/* Keep both actions visible while the gallery and summary scroll. */
.house-viewer[open]{display:flex;flex-direction:column;overflow:hidden}
.house-viewer-header{flex-shrink:0}
.house-viewer-layout{min-height:0;overflow-y:auto;overscroll-behavior:contain}
.house-viewer-actions{flex-shrink:0;flex-direction:row;align-items:stretch;justify-content:flex-end;gap:12px;background:var(--paper);padding:16px 24px max(16px,env(safe-area-inset-bottom));border-top:1px solid var(--line)}
.house-viewer-actions .button{width:auto;flex:0 1 310px;min-height:48px}
.house-viewer-actions .house-viewer-details{background:transparent;color:var(--green);border:2px solid var(--green);font-weight:600}
.house-viewer-actions .house-viewer-details:hover{background:var(--green);color:var(--white)}
@media(max-width:680px){.house-viewer-actions{flex-direction:column;gap:8px;padding:12px 16px max(12px,env(safe-area-inset-bottom))}.house-viewer-actions .button{flex:none;width:100%;padding:10px 14px}}
/* Fit the complete desktop gallery to the available window height. */
@media(min-width:681px){
.house-viewer{max-height:calc(100dvh - 32px)}
.house-viewer-layout{grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr)}
.house-viewer-gallery{padding:16px}
.house-viewer-stage{height:min(53dvh,calc(100dvh - 340px),570px);min-height:120px}
.house-viewer-caption{min-height:40px;padding:10px 2px}
.house-viewer-summary{padding:24px}
.house-viewer-highlights{grid-template-columns:1fr 1fr;margin-bottom:0}
}
@media(min-width:681px) and (max-height:800px){
.house-viewer-summary{padding:16px 20px}
.house-viewer-summary .eyebrow{margin-bottom:10px}
.house-viewer-summary h2{font-size:28px;margin-bottom:12px}
.house-viewer-facts{gap:6px;margin-bottom:12px}
.house-viewer-facts li{padding:5px 8px}
.house-viewer-description{line-height:1.6;margin-bottom:14px}
.house-viewer-highlights{gap:8px}
.house-viewer-actions{padding-top:12px;padding-bottom:12px}
}
/* Expand the photograph while keeping gallery navigation available. */
.house-viewer-fullscreen{position:absolute;right:12px;top:12px;z-index:2;display:flex;align-items:center;gap:7px;min-height:44px;padding:8px 12px;border:1px solid #fff8;border-radius:4px;background:#173d37e8;color:#fff;font-size:12px;cursor:pointer}
.house-viewer-fullscreen>span:first-child{font-size:24px;line-height:1}
.house-viewer-stage:fullscreen,.is-photo-fullscreen .house-viewer-stage{width:100vw;height:100dvh;max-height:none;border-radius:0;background:#10201d}
.is-photo-fullscreen .house-viewer-stage{position:fixed;inset:0;z-index:10}
.house-viewer-stage:fullscreen .house-viewer-image,.is-photo-fullscreen .house-viewer-image{width:100%;height:100%;object-fit:contain}
.house-viewer-stage:fullscreen .house-viewer-fullscreen,.is-photo-fullscreen .house-viewer-fullscreen{top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right))}