.city-switcher{padding-top:6px;padding-bottom:22px;scroll-margin-top:110px}
.city-switcher-buttons{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.city-switcher-buttons>a{min-width:0;display:flex;align-items:center;gap:12px;padding:10px;border:1px solid #d2d2d2;border-radius:12px;background:#fff;color:#282828;text-decoration:none;font:600 14px/1.4 var(--ui);box-shadow:0 3px 12px #00000005;transition:background .18s,border-color .18s,box-shadow .18s}
.city-switcher-buttons>a>img{display:block;width:72px;height:48px;flex:0 0 72px;object-fit:cover;border-radius:6px}
.city-switcher-buttons>a>span{min-width:0;flex:1}
.city-switcher-buttons>a>i{font-size:17px;color:#666}
.city-switcher-buttons>a:hover,.city-switcher-buttons>a:focus-visible{border-color:#74273b;box-shadow:0 2px 10px #0001;outline-offset:4px}
.city-switcher-buttons>a[aria-current]{background:#282828;color:#fff;border-color:#282828}
.city-switcher-buttons>a[aria-current]>i{color:#fff}
.city-switcher-label strong{display:block;font-size:15px;font-weight:650;line-height:1.35}
.city-switcher-label small{display:block;margin-top:4px;font-size:11px;font-weight:400;line-height:1.3;color:#777}
.city-switcher-buttons>a[aria-current] .city-switcher-label small{color:#d8d8d8}

@media(max-width:1100px){.city-switcher-buttons{gap:9px}.city-switcher-buttons>a{gap:8px}.city-switcher-buttons>a>img{width:50px;flex-basis:50px;height:42px}}
@media(max-width:850px){.city-switcher-buttons{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.city-switcher{padding-bottom:18px;scroll-margin-top:90px}.city-switcher-buttons{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.city-switcher-buttons>a{justify-content:center;padding:11px 6px;min-height:60px;text-align:center}.city-switcher-buttons>a>img{display:none}.city-switcher-buttons>a>span{flex:0 1 auto}.city-switcher-label strong{font-size:13px}.city-switcher-label small{font-size:11px;margin-top:3px}}
/* Districts and projects share a light, frosted window on the masterplan. */
.city-panorama-viewport{position:relative;overflow:hidden;background:#e9e9e9;touch-action:pan-y pinch-zoom}
.city-panorama-scene{position:relative;isolation:isolate;width:100%;max-width:100%;aspect-ratio:1672/941}
.city-panorama-art{display:block;width:100%;height:100%;object-fit:contain}
.city-area-contours{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
.city-area-contours path{fill:transparent;stroke:transparent;stroke-width:1.4;vector-effect:non-scaling-stroke;pointer-events:all;cursor:pointer;transition:fill .22s,stroke .22s}
.city-area-contours path.is-active,.city-area-contours path:hover{fill:rgb(255 255 255 / 18%);stroke:rgb(255 255 255 / 95%);stroke-width:2}
.city-panorama-pin{position:absolute;z-index:3;left:var(--pin-x);top:var(--pin-y);transform:translate(-50%,-50%);display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 17px;border:1px solid #ffffffcc;border-radius:999px;background:rgb(247 248 248 / 88%);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 2px 10px #0002;color:#222;text-decoration:none;font:600 13px/1.4 var(--ui);white-space:nowrap;transition:background .18s,color .18s,box-shadow .18s}
.city-panorama-pin:after{content:'';position:absolute;left:50%;top:100%;width:1px;height:15px;background:#fffd;pointer-events:none}
.city-panorama-pin:before{content:'';position:absolute;left:50%;top:calc(100% + 15px);transform:translate(-50%,-50%);width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px #ffffff44;pointer-events:none}
.city-panorama-pin[aria-current],.city-panorama-pin:hover{background:#282828;color:#fff;border-color:#fff}
.city-panorama-pin:focus-visible,.city-area-chips>a:focus-visible,.city-project-marker:focus-visible{outline:3px solid #fff;outline-offset:4px;box-shadow:0 0 0 7px #74273b}
.city-panorama-viewport>.city-area-chips{position:absolute;z-index:5;inset:14px 0 auto;display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-inline:auto;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.city-area-chips>a{display:flex;flex:1 1 90px;min-width:0;align-items:center;justify-content:center;text-align:center;min-height:44px;padding:9px 14px;border:1px solid #ffffffb0;border-radius:999px;background:rgb(245 246 246 / 57%);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 2px 8px #0001;color:#222;font:500 13px/1.4 var(--ui);text-decoration:none;transition:background .18s,color .18s}
.city-area-chips>a[aria-current]{background:#282828;color:#fff;border-color:#282828}
.city-area-chips>a:hover{background:rgb(247 247 247 / 90%);color:#222}
.city-project-markers{position:absolute;z-index:4;left:var(--pin-x);top:calc(var(--pin-y) + 4.7%);transform:translateX(-50%);display:flex;align-items:start;justify-content:center;gap:8px;max-width:calc(100% - 20px)}
.city-project-markers[hidden]{display:none}
.city-project-marker{position:relative;display:flex;flex-direction:column;align-items:center;min-width:0;width:76px;flex:0 0 76px;padding:4px;border:1px solid #fff9;border-radius:13px;background:rgb(245 246 247 / 80%);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#171717;text-decoration:none;box-shadow:0 4px 16px #0003;transition:border-color .2s,box-shadow .2s,background .2s,transform .2s}
.city-project-marker>img{display:block;width:100%;height:46px;object-fit:cover;border-radius:9px}
.city-project-marker>span{display:block;width:100%;font:600 10px/1.35 var(--ui);text-align:center;margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.city-project-marker:hover,.city-project-marker.is-active{border-color:#74273b;box-shadow:0 0 0 2px #74273b,0 5px 24px #0004;background:#f0f0f0;transform:translateY(-3px)}
.city-map-window{position:absolute;z-index:10;inset:auto;margin:0;width:420px;max-width:calc(100% - 32px);max-height:650px;padding:0;overflow:hidden;border:1px solid rgb(255 255 255 / 75%);border-radius:20px;background:rgb(236 239 240 / 86%);color:#202428;backdrop-filter:blur(20px) saturate(110%);-webkit-backdrop-filter:blur(20px) saturate(110%);box-shadow:0 12px 50px #10202c35;overscroll-behavior:contain;font-family:var(--ui);box-sizing:border-box}
.city-map-window:not([open]){display:none}
.city-map-window[open]{display:flex;flex-direction:column;animation:city-window-in .18s ease-out}
.city-window-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 12px 8px 18px;min-height:53px;flex:0 0 auto;border-bottom:1px solid #23313b1a}
.city-window-context{font-size:11px;line-height:1.5;color:#485159;letter-spacing:.025em;margin-right:auto}
.city-window-close,.city-window-back{border:1px solid #a8afb44d;background:#ffffff7a;color:#202428;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:36px;height:36px;padding:7px;border-radius:999px;font:500 12px/1.3 var(--ui);cursor:pointer}
.city-window-close{margin-left:auto;flex:0 0 36px}
.city-window-close i{font-size:18px}
.city-window-back{padding-inline:11px;white-space:nowrap}
.city-window-back i{font-size:15px}
.city-window-back[hidden]{display:none}
.city-window-back:not([hidden])+.city-window-context{display:none}
.city-window-close:hover,.city-window-back:hover{background:#fff;border-color:#a1a7aa}
.city-map-window :focus-visible{outline:2px solid #74273b;outline-offset:3px}
.city-window-body{min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#a4acb0 transparent}
.city-window-view[hidden]{display:none!important}
.city-window-photo{position:relative;display:block;margin:0;overflow:hidden;background:#e7e9eb}
.city-window-photo>img{display:block;width:100%;height:135px;object-fit:cover}
.city-window-photo>figcaption{position:absolute;bottom:0;left:0;padding:3px 9px;background:#ffffffd9;color:#42474b;font:400 9px/1.45 var(--ui);max-width:100%;text-wrap:pretty}
.city-window-project-photo>img{height:180px;object-fit:cover}
.city-window-copy{padding:20px}
.city-map-window .eyebrow{margin:0 0 8px;color:#74273b;font-size:10px;line-height:1.5;letter-spacing:.1em}
.city-map-window h2{font:500 29px/1.23 var(--serif,Lora,serif);margin:0 0 13px;color:#202428;overflow-wrap:anywhere;outline:0}
.city-window-story p,.city-project-story p{font:400 13px/1.7 var(--ui);margin:0 0 12px;color:#37424a;text-wrap:pretty}
.city-window-story p:last-child{margin-bottom:0}
.city-district-facts{margin:0;padding:0}
.city-district-facts>div{position:relative;padding:11px 0 11px 33px;border-bottom:1px solid #34414a1c;min-width:0}
.city-district-facts>div:first-child{padding-top:2px}
.city-district-facts>div:last-child{border-bottom:0;padding-bottom:0}
.city-district-facts dt{margin:0 0 4px;font:650 11px/1.45 var(--ui);letter-spacing:.025em;color:#59646b}
.city-district-facts dt>i{position:absolute;left:0;top:12px;width:23px;color:#74273b;font-size:21px;line-height:1.3;text-align:center}
.city-district-facts>div:first-child dt>i{top:3px}
.city-district-facts dd{margin:0;font:400 13px/1.6 var(--ui);color:#26343d;overflow-wrap:break-word;text-wrap:pretty}
.city-window-subtitle{display:flex;gap:8px;align-items:center;font:600 14px/1.5 var(--ui);margin:18px 0 12px;color:#202428}
.city-window-subtitle>span{display:inline-flex;justify-content:center;align-items:center;min-width:23px;height:23px;padding-inline:5px;border-radius:50%;background:#ffffffa6;font-size:11px;color:#62686c}
.city-window-projects{display:grid;grid-template-columns:repeat(auto-fit,minmax(98px,1fr));gap:9px}
.city-popup-project{display:flex;flex-direction:column;min-width:0;border-radius:12px;background:#ffffff7a;border:1px solid #ffffffb0;overflow:hidden;color:#202428;text-decoration:none;transition:box-shadow .18s,border-color .18s}
.city-popup-project>img{display:block;width:100%;height:72px;object-fit:cover}
.city-popup-project>span{padding:9px 8px 3px;font:600 12px/1.4 var(--ui);overflow-wrap:anywhere}
.city-popup-project>small{padding:0 8px 9px;font:400 10px/1.4 var(--ui);color:#59616a}
.city-popup-project:hover{border-color:#74273b;box-shadow:0 0 0 1px #74273b}
.city-window-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:9px;margin-top:16px}
.city-window-actions .button{font-size:12px;white-space:normal}
.city-map-window .button{min-height:44px;width:100%;justify-content:center;padding:12px 16px;border-radius:999px;font-size:13px;line-height:1.45}
.city-map-window .button.outline{background:rgb(255 255 255 / 45%);border-color:#9ca4aa;color:#24282b}
.city-window-catalog{margin-top:18px}
.city-window-price{font:650 23px/1.35 var(--ui);margin:0 0 18px;color:#74273b}
.city-window-facts{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;border-top:1px solid #293d4d26;border-bottom:1px solid #293d4d26;padding:14px 0}
.city-window-facts>div{min-width:0}
.city-window-facts dt{font-size:11px;color:#657078;margin:0 0 3px;line-height:1.5}
.city-window-facts dd{font-size:13px;font-weight:600;line-height:1.5;margin:0}
.city-project-story{margin-top:16px;font-size:13px;line-height:1.7}
.city-project-story>summary{font-weight:600;cursor:pointer;padding-block:6px;list-style-position:inside}
.city-project-story p{margin-top:10px}
.city-window-unit-list{display:flex;flex-direction:column;gap:10px;margin-top:18px}
.city-popup-unit{display:flex;gap:12px;align-items:stretch;padding:9px;border:1px solid #ffffffbf;border-radius:14px;background:#ffffff80;text-decoration:none;color:#24292c;min-width:0}
.city-popup-unit:hover{border-color:#74273b}
.city-popup-unit-photo{position:relative;width:106px;min-height:100px;flex:0 0 106px;overflow:hidden;border-radius:9px}
.city-popup-unit-photo>img{display:block;width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.city-popup-unit-photo>small{position:absolute;bottom:0;left:0;font-size:8px;line-height:1.5;color:#fff;background:#252c32cc;padding:2px 5px}
.city-popup-unit-copy{display:flex;flex-direction:column;gap:6px;min-width:0;padding:3px 0}
.city-popup-unit-copy>strong{font:600 14px/1.35 var(--ui);overflow-wrap:anywhere}
.city-popup-unit-copy>span{font:400 11px/1.5 var(--ui);color:#626a70}
.city-popup-unit-copy>b{font:650 16px/1.4 var(--ui);margin-top:auto}
.city-unit-status{font-size:10px;color:#4f5b61;line-height:1.4}
.city-unit-status.is-sold{color:#74273b;font-weight:650}
.city-panorama-footer{display:flex;padding-top:12px;padding-bottom:16px;font-size:10px;line-height:1.6;color:#646c72}
.city-panorama-footer p{margin:0}
.directions-page :is(button,.button,.round,.field .fhe-select-trigger){border-radius:999px}
.city-map-fallback details{padding:20px;border-bottom:1px solid #ccc}
.city-map-fallback summary{font-size:20px;cursor:pointer}
.city-panorama-scene:has(.city-map-window[open]){isolation:auto}
.city-map-window.is-compact-window{position:fixed!important;z-index:200;inset:auto 12px 12px!important;width:calc(100% - 24px)!important;max-width:500px!important;margin-inline:auto!important;max-height:min(78dvh,700px)!important;border-radius:20px;box-shadow:0 10px 70px #13232c4d}
.city-map-window::backdrop{background:rgb(20 30 36 / 25%);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
/* Map information is not a page-level scroll lock. Other site dialogs keep theirs. */
body:has(.city-map-window[open]):not(:has(dialog[open]:not(.city-map-window))){overflow:auto}
@keyframes city-window-in{from{opacity:0;translate:0 5px}to{opacity:1;translate:0 0}}
@media(max-width:1280px) and (min-width:1051px){.city-panorama-viewport>.city-area-chips{top:8px;gap:6px}.city-area-chips>a{font-size:12px;padding:9px 10px;flex-basis:90px}}
@media(max-width:1050px){
 .city-panorama-viewport>.city-area-chips{position:relative;inset:auto;width:100%;gap:6px;padding:10px 16px;background:var(--paper);margin:0}
 .city-area-chips>a{flex:0 1 auto;min-height:38px;padding:7px 12px;font-size:12px;background:#e5e7e9;border-color:#c4c9cc;box-shadow:none}
 .city-panorama-pin{font-size:12px;min-height:40px;padding:8px 13px}
 .city-project-marker{width:65px;flex-basis:65px}.city-project-marker>img{height:40px}
}
@media(max-width:850px){
 .city-panorama-pin{width:36px;height:36px;min-height:36px;padding:0;border-radius:50%;font-size:13px;line-height:1}
 .city-panorama-pin:before{content:attr(data-area-number);position:static;transform:none;display:block;width:auto;height:auto;background:none;box-shadow:none;color:inherit;font:inherit}
 .city-panorama-pin:after{display:none}.city-panorama-pin>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
 .city-area-chips>a{min-height:40px;gap:6px;padding:7px 10px}
 .city-area-chips>a:before{content:attr(data-area-number);display:flex;align-items:center;justify-content:center;width:19px;height:19px;flex:0 0 19px;border-radius:50%;background:#ffffffb0;color:#333;font-size:10px;font-weight:650}
 .city-area-chips>a[aria-current]:before{background:#fff;color:#282828}
 .city-project-markers{gap:5px;top:calc(var(--pin-y) + 6%)}
 .city-project-marker{width:50px;flex-basis:50px;padding:3px;border-radius:9px}.city-project-marker>img{height:31px;border-radius:6px}
 .city-project-marker>span{font-size:8px;line-height:1.3;margin-top:3px}
 .city-window-toolbar{min-height:57px}.city-window-close{width:40px;height:40px;flex-basis:40px}.city-window-back{min-height:40px}
 .city-window-copy{padding:18px}.city-map-window h2{font-size:28px}.city-window-photo>img{height:125px}.city-window-project-photo>img{height:170px}
}
@media(max-width:420px){.city-area-chips>a{padding:6px 9px;font-size:11px}.city-window-projects{grid-template-columns:repeat(2,minmax(0,1fr))}.city-popup-unit-photo{width:90px;flex-basis:90px}.city-window-copy{padding:16px}.city-window-story p{font-size:13px;line-height:1.65}}
@media(prefers-reduced-motion:reduce){.city-map-window[open]{animation:none}.city-area-contours path,.city-panorama-pin,.city-area-chips>a,.city-project-marker,.city-popup-project{transition:none}}
