:root{--ink:#303b35;--muted:#69736a}
.wordmark small{font-size:11px;letter-spacing:.16em}.wordmark .mark{font-size:24px;letter-spacing:-.03em}
#plan-floor-switch button,.floor-tabs button{font-size:13px;min-height:40px;padding:7px 15px}
#floorplan{display:block;width:100%;height:auto;max-height:none;min-height:240px;border-radius:6px;background:#e6e3dc}
#floorplan g{cursor:pointer}#floorplan g:focus circle{stroke:#bc925c;stroke-width:10px}
#plan-legend{display:grid;grid-template-columns:1fr;gap:2px;margin:12px 0}#plan-legend button{text-align:left;min-height:44px;font-size:14px;border-bottom:1px solid var(--line)}
.plan-source{display:inline-block;padding:12px 0;font-size:14px}.room-group{font-size:11px}.room-item{font-size:14px}.room-item small{font-size:11px}
#location-view{position:absolute;inset:82px 18px 78px;z-index:5;display:grid;grid-template-columns:minmax(230px,28%) 1fr;background:#f5f2eb;border-radius:10px;overflow:hidden;box-shadow:0 10px 70px #30352d18}
.location-heading{padding:34px}.location-heading h2{margin:20px 0 14px}.location-heading p{margin-bottom:24px;font-size:16px}.location-heading a{font-size:14px}.location-heading .eyebrow{font-size:11px;line-height:1.6;display:block}
#location-map{width:100%;height:100%;border:0;background:#e0e7dc}body.location .bottom-bar{display:none}
#ai-render{background:#181a17}#ai-render img{object-fit:contain!important}.render-tools>span{display:none}
#reference-badge{position:absolute;bottom:76px;left:50%;transform:translateX(-50%);z-index:20;border-radius:18px;background:#f6f2e9e8;padding:7px 14px;font-size:12px;pointer-events:none;white-space:nowrap}
body:not(.render-open) #reference-badge{display:none}
#gallery-dialog{max-width:min(1050px,94vw);max-height:92dvh}#gallery-dialog img{width:100%;height:auto;margin:16px 0;border-radius:3px}#gallery-dialog p{margin:12px 0;color:var(--muted)}
.credits{font-size:10px;left:18px;right:18px;bottom:8px}
@media(max-width:700px){.wordmark>span:nth-child(2){display:none}#plan-floor-switch{top:77px;max-width:calc(100vw - 20px)}#plan-floor-switch button{font-size:12px;padding:6px 12px}#location-view{grid-template-columns:1fr;grid-template-rows:auto 1fr;inset:76px 10px 25px}.location-heading{padding:18px}.location-heading h2{margin:8px 0;font-size:24px}.location-heading p{font-size:14px;margin-bottom:10px}.location-heading .eyebrow{font-size:10px}#reference-badge{bottom:76px;font-size:11px}}
.topbar .wordmark{background:transparent;border-radius:0;padding:0;gap:0}.topbar .mark{height:38px;width:38px;font-size:23px}.render-open .credits{color:#d6d7ce}
@media(max-width:700px){.topbar .wordmark{padding:0;background:none}.topbar .mark{background:#f3f0e8eb}}

/* Location is part of the 3D canvas; only the controls intercept pointers. */
#location-view{inset:0;z-index:8;display:block;background:none;box-shadow:none;border-radius:0;pointer-events:none;overflow:hidden}
.location-card{position:absolute;top:106px;left:26px;width:282px;padding:22px;border:1px solid #ffffffb3;border-radius:12px;background:#f7f4ebed;backdrop-filter:blur(12px);pointer-events:auto;box-shadow:0 10px 35px #25382f16}
.location-card .eyebrow{font-size:10px;letter-spacing:.15em;line-height:1.5}.location-card h2{font-size:29px;line-height:1.08;margin:12px 0 15px;max-width:200px;font-weight:400}.location-card p{font-size:12px;line-height:1.55;margin:12px 0}.location-card #location-coordinates{font-size:11px;font-variant-numeric:tabular-nums;color:#627065}.location-card a{font-size:12px}.location-card #location-status{min-height:32px}.location-switch{display:flex;padding:4px;background:#dfE3d7;border-radius:24px;gap:3px}.location-switch button{font-size:12px;padding:9px 12px;border-radius:20px;min-height:40px;flex:1}.location-switch button.active,.location-frames button.active{background:#303e35;color:white}
#location-retry{display:block;font-size:12px;text-decoration:underline;min-height:36px;margin-bottom:8px}
#location-site{position:absolute;transform:translate(-50%,-100%);display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:10px;background:#f9f5eafa;box-shadow:0 4px 25px #172d3540;pointer-events:auto;font-size:13px;text-align:left;white-space:nowrap;border:1px solid #fffc}
#location-site:after{content:'';position:absolute;bottom:-10px;left:calc(50% - 10px);border-top:11px solid #f9f5eafa;border-left:10px solid transparent;border-right:10px solid transparent}#location-site small{display:block;margin-top:4px;font-size:10px;color:#697668}.site-dot{width:11px;height:11px;border-radius:50%;background:#3e5a43;box-shadow:0 0 0 5px #9eac9640}.location-place{position:absolute;transform:translate(-50%,-50%);font-size:11px;white-space:nowrap;color:#24362d;text-shadow:0 1px 4px white,0 0 9px white;background:#f5f1e394;padding:3px 7px;border-radius:4px}
.location-frames{position:absolute;bottom:82px;left:50%;transform:translateX(-50%);display:flex;gap:3px;white-space:nowrap;padding:5px;background:#f7f4ebed;backdrop-filter:blur(12px);border:1px solid white;border-radius:30px;pointer-events:auto}.location-frames button{padding:10px 19px;font-size:12px;min-height:42px;border-radius:24px}
.location-data{position:absolute;bottom:10px;right:18px;left:18px;display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:7px 14px;font-size:10px;line-height:1.3;color:#28342d;background:#f6f3ebeb;border-radius:5px;padding:7px 10px;pointer-events:auto}.location-data a{white-space:nowrap}.location-data #location-credits{max-width:65%;text-align:right}#location-photo-brands{display:flex;align-items:center;gap:25px;margin-right:auto}#location-photo-brands img{object-fit:contain;height:22px;width:auto}.google-logo-wrap{padding:5px 10px}#location-photo-brands .google-logo-wrap img{height:18px}
body.location .credits,body.location #render-view-btn,body.location #saved-toggle{display:none!important}
@media(max-width:700px){.location-card{top:76px;left:12px;right:12px;width:auto;padding:14px 16px;display:grid;grid-template-columns:1fr auto;gap:0 12px}.location-card h2{font-size:21px;margin:5px 0 7px;max-width:none;grid-column:1}.location-card .eyebrow{font-size:9px;grid-column:1/-1}.location-card #location-coordinates{grid-column:1/-1;margin:0 0 10px;font-size:10px}.location-switch{grid-column:1/-1}.location-card #location-status{grid-column:1/-1;font-size:11px;min-height:0;margin:9px 0 5px}.location-card #location-maps{grid-column:1/-1;font-size:11px}.location-card #location-retry{grid-column:1/-1}.location-frames{bottom:106px;max-width:calc(100vw - 24px)}.location-frames button{padding:9px 14px;font-size:11px}.location-data{bottom:6px;left:10px;right:10px;padding:5px 8px;font-size:9px;gap:5px 10px;justify-content:flex-start}.location-data #location-credits{max-width:100%;text-align:left}#location-photo-brands{width:100%;gap:25px}#location-site{font-size:12px;padding:10px 12px}.location-place{font-size:10px}}
@media(max-height:580px){.location-card{top:78px;left:14px;width:235px;padding:13px;display:block}.location-card h2{font-size:22px;margin:7px 0}.location-frames{bottom:65px}.location-card #location-status{margin:6px 0;min-height:0}.location-data{font-size:9px}}

/* Shared villa context and local highlights. */
#villa-context{position:absolute;top:106px;right:26px;z-index:8;width:282px;padding:16px;border:1px solid #fff9;border-radius:12px;background:#f7f4ebed;backdrop-filter:blur(12px);box-shadow:0 8px 30px #25382f16}
#villa-context .eyebrow{display:block;font-size:10px;margin-bottom:10px;letter-spacing:.15em}#villa-context p{font-size:11px;color:#627065;margin:9px 3px 0}#villa-context-retry{font-size:12px;text-decoration:underline;min-height:36px}
#context-attribution{z-index:9}body:not(.location) #context-attribution{bottom:78px;left:auto;max-width:calc(100vw - 100px)}
body.has-context .credits,body.google-context #render-view-btn,body.google-context #saved-toggle{display:none!important}
body.render-open #villa-context,body.drawer-open #villa-context,body.render-open #context-attribution{display:none!important}
.location-card{max-height:calc(100dvh - 235px);overflow:auto;overscroll-behavior:contain}.location-card .site-placement-note{font-size:10px;line-height:1.45;color:#69736a;margin-bottom:0}
#nearby-highlights{border-top:1px solid #69736a33;margin-top:16px;padding-top:14px;grid-column:1/-1}.nearby-heading h3{font-size:17px;font-weight:500;margin:0 0 5px}.nearby-heading span{font-size:10px;color:#69736a}
.poi-filters{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;margin:10px 0}.poi-filters button{font-size:11px;min-height:34px;border:1px solid #69736a33;border-radius:6px;padding:5px 4px}.poi-filters button.active{background:#303e35;color:white;border-color:#303e35}
#poi-select{max-width:100%;width:100%;min-height:40px;font-size:12px;color:#303b35;background:#fffc;border:1px solid #69736a44;border-radius:6px;padding:6px}#poi-select:focus-visible{outline:2px solid #66806a;outline-offset:3px}
#poi-detail{padding-top:13px}#poi-detail h4{font-size:14px;font-weight:500;margin:0;line-height:1.4}#poi-detail p{font-size:11px;margin:7px 0}.poi-links{display:flex;gap:15px;flex-wrap:wrap}.poi-links a{min-height:32px;display:inline-flex;align-items:center;font-size:11px}
.place-pin{position:absolute;transform:translate(-21px,-39px);display:flex;align-items:center;padding:6px;min-height:44px;min-width:44px;background:none;pointer-events:auto;gap:5px;white-space:nowrap;z-index:1}
.pin-glyph{display:grid;place-items:center;flex-shrink:0;width:29px;height:29px;border-radius:50% 50% 50% 5%;transform:rotate(-8deg);background:var(--pin-color);border:2px solid #fff;color:white;font-size:12px;font-weight:600;box-shadow:0 2px 8px #182d3540}
.pin-name{background:#fbf8eeed;border:1px solid #fffb;padding:5px 7px;border-radius:5px;font-size:11px;max-width:185px;overflow:hidden;text-overflow:ellipsis;box-shadow:0 2px 8px #182d3520}.place-pin.selected{z-index:4}.place-pin.selected .pin-glyph{outline:3px solid #f3e4a5;outline-offset:2px}.place-pin.selected .pin-name{background:#fff9e3}
@media(max-width:700px){#villa-context{top:78px;right:12px;width:254px;padding:12px}#villa-context .eyebrow{font-size:9px;margin-bottom:7px}#villa-context .location-switch button{padding:7px 9px;font-size:11px;min-height:36px}#villa-context p{font-size:10px}body:not(.location) #context-attribution{left:12px;right:12px;bottom:78px;max-width:none}.location-card{max-height:calc(100dvh - 240px)}.location-card:has(#nearby-highlights:not([hidden])) h2,.location-card:has(#nearby-highlights:not([hidden])) #location-coordinates,.location-card:has(#nearby-highlights:not([hidden])) #location-maps,.location-card:has(#nearby-highlights:not([hidden])) .site-placement-note{display:none}.location-card .site-placement-note{grid-column:1/-1;margin-top:8px}.poi-filters{grid-template-columns:repeat(4,1fr);gap:4px}.poi-filters button{font-size:10px;min-height:36px;padding:4px 2px}#nearby-highlights{margin-top:8px;padding-top:10px}.nearby-heading{display:flex;align-items:center;justify-content:space-between}.nearby-heading h3{font-size:15px;margin:0}.nearby-heading span{font-size:9px}.pin-name{font-size:10px;max-width:125px}.pin-glyph{width:27px;height:27px}.location-card #location-status{margin-top:6px}}
@media(max-height:580px){#villa-context{top:78px;right:16px}.location-card{max-height:calc(100dvh - 160px)}.poi-filters{grid-template-columns:repeat(4,1fr)}.poi-filters button{font-size:9px}}

#villa-context .location-switch button{white-space:nowrap;padding-inline:9px}

@media(max-width:700px){.place-pin .pin-name{display:none}.place-pin{gap:0;width:44px;padding:7px}}
