/* Shared final UI layer. Keep approved logos, map data and marker geometry intact. */
:root{--ui-accent:#e8f9ae;--ui-text:#28322a;--ui-muted:#667168;--ui-line:#e2e7df;--ui-surface:#fff}
html body{color:var(--ui-text)}
/* One predictable header on every page. */
html body>header,html body .site-header{height:auto!important;box-sizing:border-box!important;align-items:center!important}
html body>header .brand,html body .site-header .brand{position:relative!important;min-width:0!important;width:auto!important;max-width:none!important}
html body>header nav,html body .site-header nav{min-width:0!important;box-sizing:border-box!important}
html body>header nav a,html body .site-header nav a{color:#59645b!important;font-weight:600!important;text-decoration:none!important}
html body>header nav a[aria-current=page],html body>header nav a.active,html body .site-header nav a[aria-current=page]{color:#28322a!important;box-shadow:inset 0 -3px var(--ui-accent)!important}
@media(max-width:900px){
 html body:not(.d21)>header,html body.d21 .site-header{display:grid!important;grid-template-columns:48px minmax(0,1fr)!important;gap:10px!important;flex-wrap:nowrap!important;padding:12px 16px!important;min-height:72px!important;align-items:center!important}
 html body:not(.d21)>header .brand,html body.d21 .site-header .brand{grid-column:1!important;grid-row:1!important;width:48px!important;min-width:48px!important;max-width:48px!important;flex:none!important;margin:0!important;padding:0!important;gap:0!important}
 html body:not(.d21)>header .brand .original-brand-word,html body:not(.d21)>header .brand .brand-word,html body.d21 .site-header .brand .brand-word,html body.d21 .site-header .brand .original-brand-word{display:none!important}
 html body:not(.d21)>header nav,html body.d21 .site-header nav{grid-column:2!important;grid-row:1!important;display:grid!important;grid-template-columns:.55fr 1.7fr .9fr 1fr 1fr!important;gap:0!important;width:100%!important;max-width:100%!important;overflow:visible!important;order:0!important;flex:none!important;margin:0!important;padding:0!important}
 html body:not(.d21)>header nav a,html body.d21 .site-header nav a{min-width:0!important;min-height:44px!important;padding:10px 0!important;font-size:clamp(10px,2.9vw,12px)!important;line-height:1.4!important;letter-spacing:-.35px!important;white-space:nowrap!important;display:flex!important;align-items:center!important;justify-content:center!important}
 html body>header .header-cta,html body .site-header .header-cta{display:none!important}
}
@media(min-width:901px){
 html body:not(.d21)>header .brand,html body.d21 .site-header .brand{flex:0 0 auto!important}
 html body:not(.d21)>header nav,html body.d21 .site-header nav{flex:0 1 auto!important;gap:clamp(16px,2vw,28px)!important;width:auto!important}
}
@media(min-width:901px) and (max-width:1100px){html body .site-header .header-cta{display:none!important}html body>header,html body .site-header{padding-left:24px!important;padding-right:24px!important;gap:20px!important}}
/* Approved light filters: white at rest, lemon lime when selected. */
html body .kind-filters{gap:8px!important;background:transparent!important;border:0!important;padding:0!important}
html body .kind-filters button,html body .market-switch button,html body .market-periods button,html body .school-tabs button{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;min-height:40px!important;padding:9px 14px!important;border:1px solid var(--ui-line)!important;border-radius:12px!important;background:#fff!important;color:#526057!important;font-weight:600!important;line-height:1.4!important;box-shadow:none!important;transition:background .15s,border-color .15s,color .15s}
html body .kind-filters button[aria-pressed=true],html body .kind-filters button.active,html body .market-switch button.is-active,html body .market-periods button.is-active,html body .school-tabs button[aria-selected=true]{background:var(--ui-accent)!important;color:#304126!important;border-color:#c4dc85!important;font-weight:700!important}
html body .kind-filters button[aria-pressed=true]::before,html body .kind-filters button.active::before{content:'';display:block;width:5px;height:5px;flex:0 0 5px;border-radius:50%;background:#3b502d}
html body .kind-filters button:hover,html body .market-switch button:hover,html body .market-periods button:hover,html body .school-tabs button:hover{border-color:#bdd58b!important;background:#f5fae9!important}
html body .kind-filters button:focus-visible,html body button:focus-visible,html body a:focus-visible,html body input:focus-visible,html body select:focus-visible{outline:2px solid #789a4d!important;outline-offset:3px!important}
/* Bright, legible forms and search tools. */
html body.map-page .door-map-tools .map-search-toggle,html body.map-page .map-search-toggle{background:#fff!important;color:#354334!important;border:1px solid var(--ui-line)!important;border-radius:12px!important;box-shadow:0 3px 14px #26362208!important}
html body.map-page .map-search-toggle:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234f653e' stroke-width='1.8'%3E%3Ccircle cx='10' cy='10' r='6'/%3E%3Cpath d='m14.5 14.5 5.5 5.5'/%3E%3C/svg%3E")!important}
html body.map-page #search-form button{background:var(--ui-accent)!important;color:#304126!important;border-radius:10px!important;min-width:44px!important;min-height:44px!important}
html body .field-map-heading button,html body .field-video-actions button{background:var(--ui-accent)!important;color:#304126!important;border:1px solid #c4dc85!important;border-radius:10px!important}
html body .offer-filters select,html body .field-library-filters input,html body .field-library-filters select{background:#fff!important;border-color:var(--ui-line)!important;border-radius:10px!important;color:#354239!important}
html body .page-intro .field-library-filters{background:#f8faf5!important;border:1px solid #e8ede2!important}
html body .detail-outline a[aria-current=true],html body .sheet-sizes button[aria-pressed=true]{background:var(--ui-accent)!important;color:#304126!important}
html body .detail-title,html body .detail-section,html body .offer,html body .recent-complex-card{border-color:#e4e9e1!important}
html body .page-intro>p,html body .commerce-intro>p,html body .field-map-heading p,html body .data-note{color:#657168!important}
html body .site-footer{color:#657168!important}
@media(max-width:759px){
 html body .kind-filters{gap:6px!important}
 html body .kind-filters button{min-height:40px!important;padding:8px 6px!important;font-size:12px!important;border-radius:10px!important}
 html body .field-library-filters input,html body .field-library-filters select,html body .offer-filters select,html body #home-search input,html body #search-form input{font-size:16px!important}
 html body .field-map-heading{align-items:center!important;gap:12px!important}
 html body .detail-title h1{overflow-wrap:anywhere!important}
 html body .detail-main,html body .field-library,html body .offers,html body .commerce-page-main{min-width:0!important}
 html body .market-heading{flex-wrap:wrap!important;gap:12px!important}
}
@media(prefers-reduced-motion:reduce){html body .kind-filters button{transition:none!important}}
/* Match the original component selectors so older map layers cannot win. */
html body.d21 .map-toolbar .kind-filters button,html body.map-page .door-map-tools .kind-filters button{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;min-height:40px!important;border:1px solid #e2e7df!important;border-radius:12px!important;background:#fff!important;color:#526057!important;font-weight:600!important;box-shadow:none!important}
html body.d21 .map-toolbar .kind-filters button[aria-pressed=true],html body.map-page .door-map-tools .kind-filters button[aria-pressed=true]{background:#e8f9ae!important;color:#304126!important;border-color:#c4dc85!important;font-weight:700!important}
html body .friendly-detail .market-switch button.is-active,html body .friendly-detail .market-periods button.is-active,html body .friendly-detail .school-tabs button[aria-selected=true]{background:#e8f9ae!important;color:#304126!important;border-color:#c4dc85!important}
html body.map-page .door-map-tools .map-search-toggle{background:#fff!important;color:#354334!important;border:1px solid #e2e7df!important}
/* Small factual labels keep enough contrast on white. */
html body .friendly-detail .detail-facts dt,html body .friendly-detail .info-table dt,html body .friendly-detail .assigned-school-table dt,html body .friendly-detail .data-note,html body .offers .data-note,html body .field-library .data-note,html body .field-library .field-meta,html body .recent-complex-list .data-note,html body .commerce-page-main .eyebrow,html body .commerce-page-main .local-poi small{color:#657168!important}
html body .field-video-grid .field-video-body,html body .field-channel-videos .field-video-body{background:#fff!important}
/* Recent places: reserve the short heading's width and let cards wrap instead. */
html body.d21 .continue{display:grid!important;grid-template-columns:180px minmax(0,1fr)!important;align-items:start!important;gap:24px!important}
html body.d21 .continue>span{display:block!important;min-width:0!important;white-space:nowrap!important;word-break:keep-all!important;line-height:1.5!important}
html body.d21 .continue .recent{min-width:0!important;width:100%!important;margin-top:0!important}
html body.d21 .continue .recent a{min-width:0!important;overflow-wrap:anywhere!important}
@media(max-width:900px){html body.d21 .continue{grid-template-columns:minmax(0,1fr)!important;gap:14px!important}html body.d21 .continue>span{font-size:18px!important}html body.d21 .continue .recent{grid-template-columns:1fr!important}}
/* Short section headings wrap at words rather than leaving a final character alone. */
html body .section-head>div{min-width:0!important}
html body .section-head h2,html body .field-map-heading h2,html body .field-channel-heading h2{word-break:keep-all!important;text-wrap:balance}
html body .section-head>a{flex:none!important;white-space:nowrap!important}
/* One complete SVG per badge. Disable the old clipped/pseudo-element layers. */
html body .door-counter,html body .area-pin .pin-face,html body .area-pin.newbuild .pin-face,html body .area-pin.existing .pin-face,html body .area-pin.with-video .pin-face,html body .apartment-cluster>span,html body .presale-sign.is-name-expanded .presale-name-card,html body .area-pin .door-home-label,html body .field-map-pin small,html body .show-site-labels .field-map-pin strong{clip-path:none!important;mask:none!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;overflow:visible!important;isolation:isolate!important;box-sizing:border-box!important}
html body .door-counter::before,html body .area-pin .pin-face::before,html body .apartment-cluster>span::before,html body .presale-sign.is-name-expanded .presale-name-card::before,html body .area-pin .door-home-label::before,html body .field-map-pin small::before,html body .show-site-labels .field-map-pin strong::before,html body .door-counter::after,html body .area-pin .pin-face::after,html body .apartment-cluster>span::after{content:none!important;display:none!important}
html body .door-counter,html body .area-pin .pin-face,html body .apartment-cluster>span{min-width:30px!important;min-height:26px!important;height:26px!important;padding:0 12px 0 6px!important}
html body .field-map-pin small{min-width:27px!important;height:24px!important;padding:0 11px 0 6px!important;display:flex!important;align-items:center!important;justify-content:center!important;line-height:1!important}
html body .presale-sign.is-name-expanded .presale-name-card,html body .area-pin .door-home-label,html body .show-site-labels .field-map-pin strong{padding:5px 14px 5px 8px!important;min-height:26px!important}
html body .paper-badge-shape{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;display:block!important;overflow:visible!important;pointer-events:none!important;z-index:0!important;clip-path:none!important;filter:none!important;transform:none!important}
html body .paper-badge-text,html body .presale-name-card>strong{position:relative!important;z-index:1!important;display:block!important;line-height:1.2!important;white-space:inherit!important;clip-path:none!important}
html body .area-pin,html body .apartment-cluster,html body .presale-sign,html body .presale-sign-dot,html body .field-map-pin,html body .field-map-pin>span{overflow:visible!important}
/* Symmetric safe space keeps numbers centred without entering the folded corner. */
html body .door-counter,html body .area-pin .pin-face,html body .apartment-cluster>span{min-width:32px!important;padding:0 11px!important}
html body .field-map-pin small{min-width:30px!important;padding:0 10px!important}
html body .presale-sign.is-name-expanded .presale-name-card,html body .area-pin .door-home-label,html body .show-site-labels .field-map-pin strong{padding:5px 11px!important}

/* Marker ancestors must never clip the attached paper badge. Hit boxes stay unchanged. */
html body :is(#map,#home-map,#field-map) :is(.apartment-cluster,.area-pin,.presale-sign,.presale-sign-dot,.field-map-pin,.field-map-pin>span){-webkit-clip-path:none!important;clip-path:none!important;clip:auto!important;-webkit-mask:none!important;mask:none!important;overflow:visible!important}

/* Map sidebar: one search row, one filter row, one quiet status row. */
html body.map-page .map-sidebar .search-box.door-map-tools{grid-template-columns:minmax(0,1fr) 48px!important;gap:12px!important;padding:12px!important;border-radius:14px!important}
html body.map-page .map-sidebar .door-map-tools:not(.is-search-collapsed)>#search-form{grid-column:1!important;grid-row:1!important;display:grid!important;grid-template-columns:18px minmax(0,1fr) 44px!important;align-items:center!important;gap:8px!important;height:48px!important;min-height:48px!important;padding:0 2px 0 12px!important;margin:0!important;border:1px solid var(--ui-line)!important;border-radius:12px!important;background:#fff!important}
html body.map-page .map-sidebar #search-form>.search-icon{display:block!important;width:18px!important;height:18px!important;font-size:0!important;background:center/18px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23576d47' stroke-width='1.8'%3E%3Ccircle cx='10' cy='10' r='6'/%3E%3Cpath d='m14.5 14.5 5.5 5.5'/%3E%3C/svg%3E")!important}
html body.map-page .map-sidebar #search-form input{width:100%!important;min-width:0!important;height:44px!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;line-height:1.4!important}
html body.map-page .map-sidebar #search-form button{width:44px!important;height:44px!important;min-height:44px!important;margin:0!important;padding:0!important;display:grid!important;place-items:center!important;line-height:1!important;font-size:20px!important;border-radius:10px!important}
html body.map-page .map-sidebar .door-map-tools>#map-nearby{grid-column:2!important;grid-row:1!important;width:48px!important;height:48px!important;border-radius:12px!important;align-self:center!important}
html body.map-page .map-sidebar .door-map-tools>.kind-filters{grid-column:1/-1!important;grid-row:2!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important;margin:0!important;padding:0!important}
html body.map-page .map-sidebar .door-map-tools>.kind-filters button{min-width:0!important;height:40px!important;min-height:40px!important;padding:0 6px!important;white-space:nowrap!important;line-height:1.4!important}
html body.map-page .map-sidebar .door-map-tools>#search-note{grid-column:1!important;grid-row:3!important;align-self:center!important;margin:0!important;padding:0!important;border:0!important;text-align:left!important;font-size:11px!important;line-height:1.6!important;color:#77836f!important}
html body.map-page .map-sidebar .door-map-tools:not(.is-search-collapsed)>.map-search-toggle{grid-column:2!important;grid-row:3!important;display:grid!important;place-items:center!important;width:48px!important;height:44px!important;min-height:44px!important;padding:0!important;margin:0!important;font-size:0!important;border:1px solid var(--ui-line)!important;border-radius:10px!important;background:#fff!important;box-shadow:none!important}
html body.map-page .map-sidebar .door-map-tools:not(.is-search-collapsed)>.map-search-toggle:before{width:18px!important;height:18px!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23576d47' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 15 6-6 6 6'/%3E%3C/svg%3E")!important}
html body.map-page .map-sidebar .door-map-tools>#map-search-results{grid-column:1/-1!important;grid-row:4!important;width:100%!important;margin:0!important}
html body.map-page .map-sidebar .door-map-tools.is-search-collapsed>.map-search-toggle{grid-column:1!important;grid-row:1!important;height:48px!important;min-height:48px!important;margin:0!important}
html body.map-page .map-sidebar #card>.card-top{min-height:44px!important;padding:6px 16px!important;gap:12px!important;border-bottom:1px solid #edf0e9!important}
html body.map-page .map-sidebar #card>.card-top .badge{margin:0!important;font-size:11px!important;line-height:1.5!important;padding:5px 8px!important;border-radius:6px!important}
html body.map-page .map-sidebar #card>h1{margin:12px 16px 6px!important;gap:8px!important;font-size:20px!important;line-height:1.45!important}
html body.map-page .map-sidebar #card>.facts{margin:0 16px 14px 52px!important;padding:0!important;gap:4px 10px!important;border:0!important;border-radius:0!important;background:transparent!important;font-size:12px!important;line-height:1.6!important}
@media(max-width:600px){html body.map-page .map-sidebar .search-box.door-map-tools{padding:10px!important;gap:10px!important}html body.map-page .map-sidebar #card>.card-top{padding:4px 16px!important}html body.map-page .map-sidebar #card>.facts{font-size:11px!important;gap:3px 8px!important}}
html body.map-page .map-sidebar .door-map-tools:not(.is-search-collapsed)>.map-search-toggle{display:flex!important;align-items:center!important;justify-content:center!important;gap:0!important;line-height:0!important}
html body.map-page .map-sidebar #card>.card-top{height:44px!important;box-sizing:border-box!important}
@media(min-width:901px){html body.map-page .map-sidebar #card{margin-top:12px!important}}

/* Match the two desktop panel edges, not just their inner controls. */
html body.map-page .map-sidebar .search-box.door-map-tools{box-sizing:border-box!important}
@media(min-width:901px){html body.map-page .map-sidebar #card{box-sizing:border-box!important;width:calc(100% - 24px)!important;max-width:calc(100% - 24px)!important;margin:12px 12px 0!important;align-self:center!important}}
html body.map-page .map-sidebar #card>h1{align-items:center!important;justify-content:center!important;text-align:center!important}
html body.map-page .map-sidebar #card>h1:after{content:''!important;display:block!important;flex:0 0 28px!important;width:28px!important;height:1px!important}
html body.map-page .map-sidebar #card>h1>.sheet-title-text{text-align:center!important;white-space:normal!important}
html body.map-page .map-sidebar #card>.facts{margin:0 16px 14px!important;justify-content:center!important;text-align:center!important}
html body.map-page .map-sidebar #card>h1:after{order:2!important}

/* Remove the map-count notice without leaving an empty bottom row. */
html body.map-page .map-sidebar .door-map-tools>#search-note:empty{display:none!important}
html body.map-page .map-sidebar .door-map-tools:not(.is-search-collapsed)>.kind-filters{grid-column:1!important;grid-row:2!important;align-self:center!important}
html body.map-page .map-sidebar .door-map-tools:not(.is-search-collapsed)>.map-search-toggle{grid-column:2!important;grid-row:2!important}
html body.map-page .map-sidebar .door-map-tools>#search-note:not(:empty){grid-column:1/-1!important;grid-row:3!important}

/* Compact painted button, full-size pointer/touch target. */
html body.map-page .map-sidebar #search-form button{position:relative!important;background:transparent!important;font-size:0!important}
html body.map-page .map-sidebar #search-form button:before{content:''!important;position:absolute!important;inset:4px!important;border-radius:8px!important;background:var(--ui-accent)!important}
html body.map-page .map-sidebar #search-form button>.map-submit-icon{position:relative!important;z-index:1!important;display:block!important;width:16px!important;height:16px!important;pointer-events:none!important}

/* Keep map names tied to zoom, never to pointer hover. */
html body .presale-sign:not(.is-name-expanded) .presale-name-card{display:none!important}
/* Three balanced facts cells, equal spacing around every separator. */
html body.map-page .map-sidebar #card>.facts{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:0!important;align-items:stretch!important;margin:0 20px 18px!important}
html body.map-page .map-sidebar #card>.facts>span{display:flex!important;align-items:center!important;justify-content:center!important;min-width:0!important;min-height:32px!important;padding:0 8px!important;margin:0!important;border:0!important;white-space:normal!important;word-break:keep-all!important;line-height:1.5!important;text-align:center!important;box-sizing:border-box!important}
html body.map-page .map-sidebar #card>.facts>span+span{border-left:1px solid #e2e7df!important}

html body.map-page .map-sidebar #card>.facts>span:nth-child(4){grid-column:1/-1!important;border-left:0!important;margin-top:6px!important}
@media(min-width:901px){html body.map-page>main{--map-sidebar-width:420px!important}}

html body.map-page .map-sidebar #card>.facts:not(:has(>span:nth-child(3))){grid-template-columns:repeat(2,minmax(0,1fr))!important}
html body.map-page .map-sidebar #card>.facts:has(>span:only-child){grid-template-columns:minmax(0,1fr)!important}

/* Painted badges and names are part of their own marker's hit target. */
html body .presale-sign .door-counter,html body .presale-sign.is-name-expanded .presale-name-card,html body .area-pin .pin-face,html body .area-pin .door-home-label,html body .apartment-cluster>span,html body .field-map-pin small,html body .show-site-labels .field-map-pin strong{pointer-events:auto!important;cursor:pointer!important;touch-action:manipulation}
html body .paper-badge-shape,html body .paper-badge-text,html body .presale-sign-dot>img,html body .door-pin-mark{pointer-events:none!important}
html body #home-map .area-pin{height:48px!important;touch-action:manipulation}
html body #field-map .field-map-pin{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;display:grid!important;place-items:center!important;overflow:visible!important;touch-action:manipulation}
html body #field-map .field-map-pin small,html body #field-map.show-site-labels .field-map-pin strong{left:24px!important;top:22px!important}
@media(max-width:900px){
 html body.map-page .map-sidebar #card{padding-bottom:env(safe-area-inset-bottom,0px)!important}
}

/* Mobile header: equal vertical slots and even gaps between text labels. */
@media(max-width:900px){
 html body:not(.d21)>header nav,html body.d21 .site-header nav{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:4px!important;height:48px!important;grid-template-columns:none!important}
 html body:not(.d21)>header nav a,html body.d21 .site-header nav a{position:relative!important;flex:0 0 auto!important;width:auto!important;height:48px!important;min-height:48px!important;margin:0!important;padding:0 2px!important;box-sizing:border-box!important;line-height:1.4!important;box-shadow:none!important}
 html body:not(.d21)>header nav a.active,html body:not(.d21)>header nav a[aria-current=page],html body.d21 .site-header nav a.active,html body.d21 .site-header nav a[aria-current=page]{box-shadow:inset 0 -2px #e8f9ae!important}
}

/* v34: one paper badge at a time; old geometry must not shrink/force numeric badges. */
html body #field-map .field-map-pin small{width:auto!important;min-width:30px!important;height:24px!important;padding:0 10px!important;display:flex!important}
html body #field-map.show-site-labels .field-map-pin small{display:none!important}
html body #field-map:not(.show-site-labels) .field-map-pin strong{display:none!important}
