.nearby-section { padding: 40px 0 32px; border-top: 1px solid var(--line); }
.nearby-heading { display: flex; justify-content: space-between; align-items: center; gap: 30px; margin-bottom: 25px; }
.nearby-heading .eyebrow { font-size: 9px; color: #87947b; letter-spacing: 1.6px; }
.nearby-heading h2 { margin: 10px 0 8px; font-size: 29px; color: #233e30; letter-spacing: -.8px; }
.nearby-heading p { font-size: 12px; color: #8a9286; margin: 0; }
.location-mode-label { display: flex; gap: 7px; align-items: center; padding: 8px 12px; border: 1px solid #e0e7dc; border-radius: 6px; font-size: 10px; color: #667f5c; white-space: nowrap; }
.location-mode-label .icon { width: 15px; height: 15px; }
.listing-map-shell { display: grid; grid-template-columns: minmax(0,1fr) 325px; min-height: 535px; border: 1px solid #e0e6db; border-radius: 14px; overflow: hidden; box-shadow: 0 6px 24px #23432a08; }
.listing-map-stage { height: 535px; position: relative; min-width: 0; isolation: isolate; background: #f0f2e9; }
#listing-nearby-map { width: 100%; height: 100%; z-index: 0; background: #f2f2e9; font-family: inherit; }
.nearby-map-chip { display: flex; align-items: center; gap: 9px; position: absolute; left: 20px; top: 20px; z-index: 500; padding: 12px 15px; background: #ffffffef; border: 1px solid #e1e8d9; border-radius: 8px; box-shadow: 0 2px 14px #28492d0a; color: #46643b; font-size: 12px; pointer-events: none; }
.nearby-map-chip .icon { width: 19px; height: 19px; }
.nearby-map-chip small { display: block; font-size: 7px; letter-spacing: 1.3px; color: #96a18a; margin-top: 3px; }
.nearby-map-tools { position: absolute; top: 20px; right: 20px; display: grid; background: white; border: 1px solid #dce5d2; border-radius: 8px; box-shadow: 0 2px 14px #28492d0a; overflow: hidden; z-index: 500; }
.nearby-map-tools button { background: white; width: 37px; height: 37px; border: 0; border-bottom: 1px solid #edf1e7; color: #49643d; font-size: 21px; }
.nearby-map-tools button:last-child { border: 0; }
.nearby-map-tools button:hover { background: #eff4e9; }
.nearby-map-tools .icon { width: 16px; height: 16px; }
.nearby-map-loading { position: absolute; inset: 0; display: grid; place-items: center; background: #f1f4eb; color: #72886a; padding: 25px; text-align: center; font-size: 12px; z-index: 600; }
.area-privacy-note { position: absolute; left: 19px; bottom: 26px; z-index: 500; display: flex; gap: 10px; align-items: center; background: #fffffff3; border: 1px solid #e2e8da; border-radius: 7px; padding: 12px 14px; color: #6f8463; font-size: 9px; line-height: 1.7; box-shadow: 0 2px 12px #23432a07; pointer-events: none; }
.area-privacy-note .icon { width: 20px; height: 20px; }
.area-privacy-note strong { font-weight: 500; color: #839276; font-size: 8px; }
.nearby-places-panel { background: white; border-left: 1px solid #e3e8dd; display: flex; flex-direction: column; min-width: 0; }
.nearby-panel-heading { padding: 25px 24px 19px; }
.nearby-panel-heading .eyebrow { color: #8d9a80; font-size: 8px; letter-spacing: 1.3px; }
.nearby-panel-heading h3 { font-size: 20px; font-weight: 550; line-height: 1.3; letter-spacing: -.5px; color: #2c4c34; margin: 10px 0; }
.nearby-panel-heading p { font-size: 11px; line-height: 1.8; color: #8c9683; margin: 0; }
.nearby-categories { display: flex; gap: 6px; padding: 0 22px 18px; }
.nearby-categories button { border: 1px solid #e5eadd; background: white; color: #8c9981; border-radius: 20px; padding: 6px 12px; font-size: 9px; }
.nearby-categories button[aria-pressed=true] { background: #edf3e7; color: #3c6335; border-color: #d9e5cd; }
.nearby-place-list { border-top: 1px solid #edf0e8; max-height: 355px; overflow: auto; scrollbar-width: thin; }
.nearby-place-row { border-bottom: 1px solid #edf0e8; }
.nearby-place-row.is-active { background: #f6f9f2; }
.nearby-place-select { width: 100%; display: flex; align-items: center; gap: 12px; padding: 20px; border: 0; background: transparent; text-align: left; color: #2c4c34; }
.nearby-place-select:hover { background: #f8faf4; }
.place-logo { display: grid; place-items: center; flex: 0 0 63px; width: 63px; height: 43px; border: 1px solid #e8ecdf; border-radius: 6px; overflow: hidden; background: #fff; }
.place-logo img { max-width: 100%; max-height: 100%; width: 100%; height: 100%; object-fit: contain; padding: 5px; }
.place-logo.logo-stock-express img { transform: scale(1.7); padding: 0; }
.place-logo.logo-delsol { background: #233f35; border-color: #233f35; }
.place-logo.logo-delsol img { padding: 5px; }
.place-logo.logo-biggie img { padding: 8px; }
.place-copy { display: grid; gap: 5px; flex: 1; min-width: 0; }
.place-copy small { font-size: 8px; color: #99a18f; text-transform: uppercase; letter-spacing: .7px; }
.place-copy strong { font-size: 11px; font-weight: 550; line-height: 1.5; }
.place-copy > span { color: #8c9a7e; font-size: 9px; }
.place-open-arrow { color: #91a17f; font-size: 14px; }
.nearby-place-details { padding: 0 22px 18px; }
.nearby-place-details p { color: #7f8b74; font-size: 10px; line-height: 1.8; margin: 0 0 7px; }
.nearby-place-details small { font-size: 8px; color: #a0aa96; display: block; line-height: 1.8; }
.nearby-place-details a { display: block; color: #476b39; font-size: 10px; margin-top: 11px; }
.nearby-place-details a.place-source { color: #a3ac99; font-size: 8px; margin-top: 6px; }
.nearby-panel-footnote { color: #adb5a5; font-size: 8px; line-height: 1.8; padding: 17px 22px; margin-top: auto; }
.nearby-empty { padding: 20px; font-size: 12px; color: #8c9982; }
.nearby-source-note { display: flex; align-items: start; justify-content: space-between; gap: 35px; margin-top: 15px; }
.nearby-source-note p { max-width: 800px; color: #a2aa98; font-size: 9px; line-height: 1.8; margin: 0; }
.nearby-source-note > a { font-size: 10px; color: #70885f; white-space: nowrap; }
.nearby-selection-status { margin: 10px 0 0; font-size: 10px; color: #8a997c; }
.nearby-selection-status:empty { display: none; }
.public-zone-label { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 7px 9px; background: #fff; border: 1px solid #b9cfac; border-radius: 22px; font-size: 10px; color: #46623d; box-shadow: 0 3px 12px #28492d19; white-space: nowrap; }
.public-zone-label img { width: 23px; height: 23px; border-radius: 50%; }
.exact-home-label { border-color: #376344; background: #f1f5ed; }
.branded-poi-marker { display: grid; place-items: center; filter: drop-shadow(0 4px 5px #29422918); }
.branded-poi-marker::after { content: ''; width: 8px; height: 8px; background: #fff; border-right: 1px solid #d4dfcb; border-bottom: 1px solid #d4dfcb; transform: rotate(45deg); position: absolute; bottom: -3px; left: 37px; z-index: -1; }
.branded-poi-marker > .place-logo { width: 83px; height: 48px; border-radius: 7px; border: 1px solid #d4dfcb; }
.branded-poi-marker .place-logo.logo-delsol { border-color: #233f35; }
.branded-poi-marker.poi-selected > .place-logo { outline: 2px solid #6b915b; outline-offset: 3px; }
.branded-poi-marker:focus { outline: 2px solid #477444; outline-offset: 5px; border-radius: 7px; }
.listing-street-label { font-size: 8px; color: #9ba38f; display: block; width: 150px; text-align: center; white-space: nowrap; text-shadow: 0 1px 2px white,1px 0 2px white; }
#listing-nearby-map .leaflet-control-attribution { font-size: 7px; color: #8e9d7f; background: #ffffffd9; padding: 3px 6px; }
#listing-nearby-map .leaflet-control-attribution a { color: #708861; }
#listing-nearby-map .leaflet-control-scale-line { font-size: 8px; background: #ffffffd9; border-color: #91a281; border-width: 1px; color: #829575; }
.branded-place-popup .leaflet-popup-content-wrapper { border-radius: 11px; box-shadow: 0 4px 24px #243e2920; padding: 3px; }
.branded-place-popup .leaflet-popup-content { margin: 18px; }
.nearby-popup-content > .place-logo { margin-bottom: 13px; width: 80px; height: 45px; }
.nearby-popup-content h3 { font-size: 14px; color: #355834; margin: 0 0 8px; }
.nearby-popup-content p { font-size: 11px; color: #7e8d74; line-height: 1.7; margin: 0 0 9px; }
.nearby-popup-content small { display: block; font-size: 9px; line-height: 1.6; color: #a6af9b; }
.nearby-popup-content > a { display: block; margin-top: 14px; font-size: 10px; color: #446f39; }
@media(max-width:1050px) { .listing-map-shell { grid-template-columns: minmax(0,1fr) 285px; } .nearby-place-select { padding: 18px 16px; gap: 10px; } .nearby-panel-heading { padding: 23px 20px 18px; } .nearby-heading h2 { font-size: 25px; } .nearby-source-note { gap: 22px; } }
@media(max-width:780px) {
  .nearby-heading { align-items: start; gap: 15px; flex-direction: column; }
  .listing-map-shell { grid-template-columns: 1fr; }
  .listing-map-stage { height: 470px; }
  .nearby-places-panel { border-left: 0; border-top: 1px solid #e3e8dd; }
  .nearby-panel-heading { padding-bottom: 15px; }
  .nearby-panel-heading h3 { font-size: 21px; }
  .nearby-place-list { max-height: none; }
  .nearby-source-note { flex-direction: column; gap: 12px; }
  .nearby-panel-footnote br { display: none; }
}
@media(max-width:480px) {
  .nearby-section { padding-top: 30px; }
  .nearby-heading h2 { font-size: 25px; }
  .nearby-heading .eyebrow { font-size: 8px; }
  .listing-map-stage { height: 440px; }
  .nearby-map-chip { left: 12px; top: 12px; padding: 9px 12px; font-size: 11px; }
  .nearby-map-tools { top: 12px; right: 12px; }
  .nearby-map-tools button { width: 34px; height: 34px; }
  .area-privacy-note { left: 12px; bottom: 28px; max-width: calc(100% - 24px); padding: 10px 12px; gap: 8px; font-size: 8px; }
  .area-privacy-note strong { font-size: 7px; }
  .public-zone-label { font-size: 9px; gap: 5px; }
}
/* Override Leaflet's tile-image resets only for our HTML brand markers. */
#listing-nearby-map .place-logo img { width: 100%; height: 100%; max-width: 100% !important; max-height: 100% !important; padding: 5px; }
#listing-nearby-map .place-logo.logo-stock-express img { padding: 0; }
#listing-nearby-map .place-logo.logo-biggie img { padding: 8px; }
#listing-nearby-map .public-zone-label img { width: 23px; height: 23px; }
.nearby-categories { flex-wrap: wrap; gap: 6px; }
.nearby-categories button { padding: 6px 10px; }
.nearby-place-list { max-height: 340px; }
.logo-smartfit { background: #fff9e9; }
.logo-biggie-farma img { padding: 5px; }
.poi-logo-group { display: flex; border-radius: 7px; overflow: hidden; border: 1px solid #d4dfcb; background: white; width: 100%; height: 48px; }
.poi-logo-group .place-logo { width: 100%; height: 48px; border: 0; border-radius: 0; flex: 1 1 0; min-width: 0; }
.poi-logo-group .place-logo + .place-logo { border-left: 1px solid #e5ebde; }
.shared-poi-marker::after { left: 62px; }
.branded-poi-marker.poi-selected > .poi-logo-group { outline: 2px solid #6b915b; outline-offset: 3px; }
.shared-place-choices h3 { font-size: 15px; margin: 0 0 10px; color: #345637; }
.shared-place-choices > p { font-size: 10px; color: #8d9a81; line-height: 1.7; }
.shared-place-choices button { display: flex; width: 100%; gap: 12px; align-items: center; border: 0; background: #f6f9f1; border-radius: 6px; padding: 8px; margin-top: 8px; text-align: left; color: #45643d; font-size: 11px; }
.shared-place-choices .place-logo { flex-basis: 63px; }
.airport-island { position: absolute; bottom: 31px; right: 16px; width: 190px; border: 1px solid #dce6d2; background: #fff; border-radius: 12px; box-shadow: 0 5px 20px #27432614; z-index: 510; overflow: hidden; transition: opacity .15s; }
.airport-island.is-muted { opacity: .65; }
.airport-island.is-active { outline: 2px solid #739565; outline-offset: 3px; }
.island-kicker { display:flex; justify-content:space-between; align-items:center; padding:9px 12px; color:#5d7e4c; font-size:11px; background:#fff; }
.island-kicker span { color:#9aa88d; font-size:7px; letter-spacing:1px; }
.airport-inset-map { height:95px; background:#edf2e5; position:relative; }
.airport-location-symbol { display:grid; place-items:center; }
.airport-inset-map.leaflet-container .airport-location-symbol img { width:85px; height:47px; max-width:85px!important; max-height:47px!important; }
.airport-geography-label { position:absolute; right:8px; top:6px; font-size:7px; letter-spacing:1px; color:#8fa17e; z-index:450; pointer-events:none; }
.airport-inset-map .leaflet-control-scale-line { font-size:6px; background:#ffffffe0; border-color:#a9ba97; border-width:1px; padding:1px 3px; }
.island-select { border:0; background:white; width:100%; text-align:left; display:grid; gap:5px; padding:12px; color:#426538; }
.island-select strong { font-size:11px; font-weight:550; display:flex; justify-content:space-between; gap:5px; }
.island-select strong span { font-size:8px; color:#a0ad94; }
.island-select > span { font-size:10px; }
.island-select small { color:#a1ac95; font-size:7px; line-height:1.6; }
@media(max-width:1050px) { .airport-island { width:170px; right:12px; } .island-select strong { font-size:10px; } }
@media(max-width:780px) { .nearby-place-list { max-height:none; } }
@media(max-width:480px) {
 .listing-map-stage { height:610px; }
 .airport-island { right:12px; bottom:72px; width:153px; }
 .airport-inset-map { height:77px; }
 .island-select { padding:9px; }
 .island-select strong { font-size:9px; }
 .island-select > span { font-size:9px; }
 .island-select small { font-size:6px; }
 .area-privacy-note { bottom:26px; }
}
/* Place the geographically separate airport island toward the northeast. */
.airport-island { top:20px; right:72px; bottom:auto; }
@media(max-width:1050px) { .airport-island { right:65px; } }
@media(max-width:480px) { .airport-island { top:140px; right:12px; bottom:auto; } }
.island-source { display:block; color:#a2ae96; font-size:7px; padding:0 12px 9px; }
/* On phones, dock the separate island below the main map instead of covering POIs. */
@media(max-width:480px) {
 .listing-map-stage { height:650px; }
 #listing-nearby-map { height:440px; }
 .airport-island { top:456px; right:12px; left:12px; width:auto; display:grid; grid-template-columns:125px minmax(0,1fr); }
 .island-kicker { grid-column:1 / -1; padding:8px 12px; }
 .airport-inset-map { grid-column:1; grid-row:2 / 4; height:119px; }
 .island-select { grid-column:2; grid-row:2; padding:12px 10px 6px; }
 .island-source { grid-column:2; grid-row:3; padding:0 10px 10px; }
 .area-privacy-note { top:382px; bottom:auto; }
}
