@font-face { font-family: 'Onest Map'; src: url('../assets/brand/fonts/onest/Onest[wght].ttf') format('truetype'); font-weight: 100 900; font-display: swap; }
.main-map-marker-shell { background: transparent; border: 0; }
.main-map-marker { box-sizing: border-box; width: calc(28px * var(--marker-scale,1)); height: calc(28px * var(--marker-scale,1)); display: grid; place-items: center; border: 1px solid var(--marker-color); border-radius: calc(8px * var(--marker-scale,1)); background: var(--marker-color); color: var(--marker-ink); box-shadow: 0 1px 4px #2D303433; font: 700 calc(11px * var(--marker-scale,1))/1 'Onest Map', Arial, sans-serif; }
.main-map-marker-shell:hover { z-index: 10000 !important; }
.main-map-marker-shell:hover .main-map-marker { box-shadow: 0 0 0 2px #FFFDF9, 0 0 0 4px #6B3453; }
.main-map-rail { border: 0; border-radius: calc(6px * var(--marker-scale,1)); background: #FFFDF9; }
.main-map-rail img { width: calc(24px * var(--marker-scale,1)); height: calc(22px * var(--marker-scale,1)); object-fit: contain; }
.main-map-wide { width: calc(44px * var(--marker-scale,1)); }
.main-map-wide img { width: calc(42px * var(--marker-scale,1)); }
.main-map-future { width: calc(32px * var(--marker-scale,1)); height: calc(32px * var(--marker-scale,1)); border: max(1px, calc(2px * var(--marker-scale,1))) dashed #EF2A20B3; border-radius: 50%; background: #FAD5D0; }
.main-map-future img { opacity: .78; }
.main-map-risk { background: #FFFDF9; border-width: max(1px, calc(2px * var(--marker-scale,1))); }
.main-map-inactive { border-style: dashed; }
.map-compact-dot { display: block; box-sizing: border-box; border: 2px solid; border-radius: 50%; }
.map-presentation.leaflet-container { font-family: 'Onest Map',Arial,sans-serif; background: #FBF5EA; }
.map-presentation .leaflet-tooltip { font-family: inherit; color: #2D3034; background: #FFFDF9; border-color: #D7C8C1; }
.map-presentation .leaflet-popup-content-wrapper { color: #2D3034; background: #FFFDF9; border-radius: 20px; }
.map-presentation .leaflet-popup-content { font: 400 12px/1.5 'Onest Map',Arial,sans-serif; max-height: min(46svh,360px); overflow-y: auto; overflow-wrap: anywhere; }
.map-presentation .leaflet-popup-content :is(h2,h3,h4) { font: 600 20px/1.2 'Onest Map',Arial,sans-serif; }
.map-presentation .leaflet-control-zoom a { width: 44px; height: 44px; line-height: 44px; color: #3B2232; background: #FFFDF9; }
.map-presentation .leaflet-popup-close-button { width: 32px; height: 32px; font-size: 24px; }
.map-presentation :focus-visible { outline: 3px solid #6B3453; outline-offset: 3px; }
.map-inline-legend { display: flex; gap: 12px; flex-wrap: wrap; padding: 8px 12px; color: #2D3034; background: #FFFDF9; border: 1px solid #D7C8C1; border-radius: 12px; font: 400 12px/1.4 'Onest Map',Arial,sans-serif; }
.map-inline-legend > span { display: inline-flex; align-items: center; gap: 6px; }
.map-inline-legend i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; }
.map-symbol-key { padding: 8px 12px; background: #FFFDF9; color: #2D3034; font: 400 12px/1.4 'Onest Map',Arial,sans-serif; }
.map-symbol-key summary { min-height: 32px; cursor: pointer; font-weight: 600; }
.map-symbol-key .map-key-symbol { width: 44px; height: 32px; display: grid; place-items: center; font-style: normal; }
.map-investment-key { position: absolute; z-index: 500; right: 12px; top: 12px; max-width: min(320px,calc(100% - 82px)); }
/* Leaflet declares this decoration inline !important; keep its text credit visible. */
.leaflet-control-attribution .leaflet-attribution-flag { display: none !important; }

.leaflet-popup.house-card-popup .leaflet-popup-content-wrapper { background:#FFFCF7;color:#352D32;border-radius:24px 24px 24px 12px;clip-path:none; }
.leaflet-popup.house-card-popup .leaflet-popup-content { margin:24px;max-width:min(352px,calc(100vw - 88px));max-height:min(70svh,560px);overflow:auto; }
.leaflet-popup.house-card-popup .leaflet-popup-close-button { right:7px;top:7px;width:44px;height:44px;display:grid;place-items:center;font-size:26px;color:#746970; }
.house-card { min-width:0;color:#352D32;font:400 14px/1.5 'Onest Map','Onest',Arial,sans-serif;overflow-wrap:anywhere; }
.house-card * { box-sizing:border-box; }
.house-card .house-card-kind { margin:0 30px 12px 0;color:#6B3453;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase; }
.house-card .house-card-title { margin:0;font:500 25px/1.15 'Onest Map','Onest',Arial,sans-serif;letter-spacing:-.035em; }
.house-card .house-card-subtitle,.house-card .house-card-meta { margin:7px 0 0;color:#746970;font-size:13px; }
.house-card .house-card-badges { display:flex;flex-wrap:wrap;gap:7px;margin:14px 0 0; }
.house-card-badges>span { padding:5px 9px;border-radius:9px 15px 9px 9px;background:#F4E9E3;font-size:12px; }
.house-card-badges>.house-card-renovation { background:#F9DED8;color:#8C312B; }
.house-card .house-card-facts { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px;margin:22px 0; }
.house-card-fact { min-width:0; }
.house-card-fact>strong { display:block;font-size:24px;font-weight:500;letter-spacing:-.025em;font-variant-numeric:tabular-nums; }
.house-card-fact>span { display:block;margin-top:3px;color:#746970;font-size:12px; }
.house-card-more,.house-card-section { border-top:1px solid #E6DDD7; }
.house-card-more>summary,.house-card-section>summary { min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;cursor:pointer;font-size:13px;font-weight:500; }
.house-card summary::-webkit-details-marker { display:none; }
.house-card summary::after { content:'+';color:#6B3453;font-size:20px;flex-shrink:0; }
.house-card details[open]>summary::after { content:'−'; }
.house-card .house-card-section-body { padding-bottom:14px;font-size:12px; }
.house-card dl { margin:6px 0 12px; }
.house-card dl>div { display:grid;grid-template-columns:minmax(0,1fr) minmax(60px,1fr);gap:12px;margin:8px 0; }
.house-card dt { color:#746970; }
.house-card dd { margin:0;text-align:right; }
.house-card .house-card-note { margin:8px 0;color:#746970;font-size:12px; }
.house-card .house-card-caption,.house-card-load { margin:12px 0 0;color:#746970;font:400 11px/1.5 'Onest Map','Onest',Arial,sans-serif; }
.house-card a { display:block;margin-top:8px;color:#6B3453;text-decoration:underline;text-underline-offset:3px; }
.house-card .house-card-score>p { display:flex;justify-content:space-between;gap:12px;margin:8px 0 4px; }
.house-card-score strong { font-weight:500;white-space:nowrap; }
.house-card-track { height:4px;background:#F4E9E3;border-radius:4px;overflow:hidden; }
.house-card-track>span { display:block;height:100%;background:#6B3453; }
.house-card summary:focus-visible,.house-card a:focus-visible { outline:3px solid #6B3453;outline-offset:3px; }
@media(max-width:420px) { .leaflet-popup.house-card-popup .leaflet-popup-content { margin:20px; }.house-card .house-card-facts { gap:16px 12px; }.house-card .house-card-title { font-size:23px; } }
@media(max-width:680px) {
  .fullscreen-map-stage:has(.house-card-popup) :is(.floor-legend,.newbuild-legend,.red-flag-legend,.main-symbol-legend,.map-status-strip),
  .map-stage:has(.house-card-popup) :is(.map-legend,.map-status) { visibility:hidden; }
}
