/* Local city study: the existing homepage remains the framing device. */
.hero #map{background:#e6efb7 url('city/assets/neighborhood/opening-desktop.webp') 75% 50%/auto 100% no-repeat}
.hero #map canvas{opacity:0;transition:opacity .35s ease-out}
.hero[data-ready=true] #map canvas{opacity:1}
/* Local capture route for posters rendered from the exact opening camera. */
.poster-capture .hero>:not(#map){visibility:hidden!important}
.poster-capture header{display:none}
.poster-capture .hero{height:var(--capture-height);min-height:0;max-height:none}
.poster-capture .hero #map{inset:0;mask-image:none}
.poster-capture .hero #map canvas{transition:none}
.city-home-marker{position:absolute;top:0;left:0;z-index:1;pointer-events:none;will-change:transform;filter:drop-shadow(0 3px 7px #173d3526)}
.city-home-marker .customer-pin{margin:0;width:38px;height:38px;box-shadow:none}
.city-home-marker img{width:29px;height:29px}
.map-label.is-business .customer-pin{display:none}
@media(min-width:781px){.map-label.is-home .customer-pin{display:grid;width:44px;height:44px;margin:10px 0}.map-label.is-home .customer-pin img{width:34px;height:34px}}
@media(max-width:780px){
 .hero #map{top:calc(var(--copy-bottom,300px) + 26px);bottom:66px;background-image:url('city/assets/neighborhood/opening-mobile.webp');background-position:50% 50%}
 .reading-surface{background:linear-gradient(180deg,#fff 0%,#fff 29%,#ffffff00 43%,#ffffff00 88%,#ffffffed 100%)}
 .hero-bottom{bottom:30px}
 .city-home-marker .customer-pin{width:28px;height:28px}
 .city-home-marker img{width:22px;height:22px}
}
@media(prefers-reduced-motion:reduce){.hero #map canvas{transition:none}}

.map-label[hidden],.city-home-marker[hidden]{display:none!important}
.map-label>.customer-pin,.map-label>.business-bubble-pin{position:relative;left:calc(var(--bubble-pointer-x,50%) - 50%)}

.business-bubble-pin{display:none;width:36px;height:36px;margin:10px 0;background:var(--lime);color:var(--green);border-radius:50%;position:relative;place-items:center}
.business-bubble-pin::after{content:'';position:absolute;bottom:-3px;left:14px;width:8px;height:8px;transform:rotate(45deg);background:var(--lime)}
.map-label.is-business .business-bubble-pin{display:grid}
@media(max-width:780px){.hero #map{mask-image:linear-gradient(180deg,transparent,#000 12%,#000 90%,transparent)}.business-bubble-pin{width:28px;height:28px;margin:8px 0}.business-bubble-pin svg{width:18px;height:18px}.business-bubble-pin::after{left:10px}}

/* Contextual search, call and job cards; travel stays a light pill. */
.city-card-detail,.city-card-wave,.city-card-footer{display:none}
.map-label.has-card .search-query{display:grid;grid-template-columns:34px 1fr;column-gap:12px;row-gap:3px;width:270px;min-width:0;padding:15px;border:1px solid #d5dfd9;border-radius:12px;box-shadow:none;white-space:normal;color:var(--green);background:#fff;transform-origin:var(--bubble-pointer-x,50%) bottom}
.map-label.has-card .search-query>svg{grid-column:1;grid-row:1/3;width:34px;height:34px;padding:8px;align-self:center;background:var(--lime);border-radius:9px;color:var(--green)}
.map-label.has-card #query{grid-column:2;grid-row:1;font-size:15px;font-weight:750;line-height:1.3;letter-spacing:-.015em}
.map-label.has-card .city-card-detail{display:block;grid-column:2;grid-row:2;font-size:12px;line-height:1.4;color:#53655a}
.map-label.is-call .search-query{background:var(--green);color:#fff;border-color:var(--green)}
.map-label.is-call .search-query::after{background:var(--green)}
.map-label.is-call .city-card-detail{color:#cfddd4}
.map-label.is-call .city-card-wave{display:flex;grid-column:1/-1;grid-row:3;align-items:center;justify-content:center;gap:4px;height:32px;margin-top:9px;padding-top:9px;border-top:1px solid #ffffff26}
.city-card-wave i{display:block;width:3px;border-radius:2px;background:var(--lime);transform-origin:center}
.map-label.is-job .search-query>svg{border-radius:50%}
.map-label.is-result .search-query{grid-template-columns:18px 1fr;column-gap:8px;row-gap:0}
.map-label.is-result .search-query>svg{width:18px;height:18px;padding:0;background:none;border-radius:0;grid-row:1}
.map-label.is-result #query{font-size:13px;font-weight:600}
.map-label.is-result .city-card-detail{display:flex;align-items:center;gap:10px;grid-column:1/-1;grid-row:2;border-top:1px solid #d5dfd9;margin-top:12px;padding-top:12px}
.map-label.is-result .city-card-detail>svg{width:32px;height:32px;padding:7px;border-radius:8px;background:var(--lime);color:var(--green);flex-shrink:0}
.map-label.is-result .city-card-detail strong{display:block;color:var(--green);font-size:15px;line-height:1.4}
.map-label.is-result .city-card-detail span span{display:block;margin-top:2px;font-size:12px}
.map-label.is-result .city-card-footer{display:block;grid-column:1/-1;grid-row:3;color:#53655a;font-size:11px;padding-top:10px}
.map-label.is-finding .city-card-detail>svg{background:#eaf0ec}
.map-label.is-job .city-card-footer{display:flex;grid-column:1/-1;grid-row:3;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid #d5dfd9}
.city-card-footer>span{flex:1;font-size:10px;line-height:1.4;color:#53655a}
.city-card-footer>span i{display:block;height:3px;border-radius:2px;background:#eaf0ec;margin-bottom:5px}
.city-card-footer>span.is-done{color:var(--green)}
.city-card-footer>span.is-done i{background:var(--lime)}
.map-label.is-complete .search-query{border-color:#abc358}

@media(max-width:780px){
 .map-label.has-card .search-query{width:236px;padding:12px;grid-template-columns:30px 1fr;column-gap:10px;row-gap:2px}
 .map-label.has-card .search-query>svg{width:30px;height:30px;padding:7px}
 .map-label.has-card #query{font-size:13px}
 .map-label.has-card .city-card-detail{font-size:12px}
 .map-label.is-call .city-card-wave{height:28px;gap:3px;margin-top:6px;padding-top:6px}
 .map-label.is-result .search-query{grid-template-columns:16px 1fr}
 .map-label.is-result .search-query>svg{width:16px;height:16px;padding:0}
 .map-label.is-result #query{font-size:12px}
 .map-label.is-result .city-card-detail strong{font-size:13px}
 .map-label.is-result .city-card-detail span span{font-size:12px}
 .map-label.is-result .city-card-detail{margin-top:9px;padding-top:9px}
 .map-label.is-job .city-card-footer{margin-top:9px;padding-top:9px}
 .map-label.is-result .city-card-footer,.map-label.is-job .city-card-footer>span{font-size:12px}
}

/* One pointer connects each message directly to its subject. */
.hero .map-label>.customer-pin,.hero .map-label>.business-bubble-pin{display:none!important}
.map-label:not(.is-status) .search-query{width:300px}
.map-label:not(.is-status) #query{display:inline-block;min-height:1.5em}
.map-label.is-typing #query::after{content:'';display:inline-block;width:1px;height:1em;background:var(--green);margin-left:2px;vertical-align:-.1em}
@media(max-width:780px){.map-label:not(.is-status) .search-query{width:205px}}

/* Match the compact rounded controls in the city handoff. */
.sales,.sales.small,.hero .hero-copy>.sales{border-radius:999px;height:44px;min-height:44px;min-width:0;padding:10px 20px;font-size:14px;line-height:1.4;gap:0}

/* Reuse the site's accessible sheet on the preview's compact header. */
#preview-mobile-navigation{display:none}
@media(max-width:1050px){
  body>header>.sales{display:none}
  #preview-mobile-navigation{display:block;margin-left:auto;background:transparent}
  #preview-mobile-navigation .mobile-menu{display:inline-flex;width:44px;height:44px;border-radius:999px}
}

/* Restore the existing site dropdowns without changing the city hero framing. */
#homepage-desktop-navigation{margin-left:auto;background:transparent}
#homepage-desktop-navigation nav{gap:0;margin:0}
@media(max-width:1050px){#homepage-desktop-navigation{display:none}}
.hero .hero-copy>.sales{height:52px;min-height:52px;min-width:160px;padding:14px 28px;font-size:16px}

/* Approved home-services headline: keep the reviewed two-line mobile fit. */
@media(max-width:780px){.hero h1{font-size:clamp(30px,9vw,49px)}}
