@font-face{font-family:Gotham;src:url("/fonts/gothamlight1.otf") format("opentype");font-weight:300;font-display:swap}
@font-face{font-family:Gotham;src:url("/fonts/GothamBook.otf") format("opentype");font-weight:400;font-display:swap}
@font-face{font-family:Gotham;src:url("/fonts/gothambold.otf") format("opentype");font-weight:700;font-display:swap}
:root{--bg:#fbfaf7;--paper:#fff;--ink:#11110f;--muted:#777771;--line:#e8e7e2;--soft:#f5f4f0;--green:#5f9446;--green-dark:#477b35;--safe-bottom:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 Gotham,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}button,input{font:inherit}button{color:inherit}svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}
:focus-visible{outline:2px solid var(--green-dark);outline-offset:3px}
.app-shell{width:min(1440px,100%);margin:0 auto;display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh;padding:0 18px}
.rail{border-right:1px solid var(--line);min-width:0}.rail-inner{position:sticky;top:0;height:100vh;padding:30px 14px 22px 4px;display:flex;flex-direction:column}
.brand{display:flex;align-items:baseline;gap:7px;white-space:nowrap;letter-spacing:-.055em;font-weight:700}.brand span{font-size:22px}.brand em{font:italic 26px/1 Georgia,serif;color:var(--green-dark)}
.brand-sub{margin:8px 0 25px 2px;max-width:175px;color:#8b8984;font-size:7.5px;line-height:1.5;letter-spacing:.18em}
.rail-nav{display:grid;gap:4px}.rail-link{display:flex;align-items:center;gap:13px;min-height:49px;width:max-content;min-width:156px;padding:5px 12px 5px 2px;border-radius:14px;font-weight:700;font-size:15px}.rail-link:hover{background:#f0efea}.rail-link.is-active{font-weight:800}
.nav-ico{width:38px;height:38px;border-radius:50%;display:grid;place-items:center}.rail-link.is-active .nav-ico{background:#eceee8}.nav-ico svg{width:22px;height:22px;stroke-width:1.8}.rail-link.is-active .nav-ico svg{stroke-width:2}
.share-btn{margin-top:18px;width:195px;min-height:52px;border-radius:999px;background:#111;color:#fff;display:flex;align-items:center;gap:11px;padding:0 18px;font-weight:700}.share-btn span{display:grid;place-items:center;width:24px}.share-btn svg{width:23px;height:23px;stroke-width:1.9}
.rail-footer{margin-top:auto;display:flex;flex-wrap:wrap;gap:8px 12px;color:#999791;font-size:8px}.rail-footer span{width:100%}
.main{min-width:0;padding:28px 0 70px 24px}.topbar{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:0 0 18px;border-bottom:1px solid var(--line)}.eyebrow{margin:0 0 6px;color:#888680;font-size:9px;letter-spacing:.19em}.topbar h1{margin:0;font-size:34px;line-height:1.02;letter-spacing:-.055em;font-weight:700}
.view-switch{display:flex;align-items:center;padding:3px;background:#f0efeb;border-radius:999px}.view-switch a,.view-switch span{min-width:66px;text-align:center;padding:8px 13px;border-radius:999px;font-size:11px;font-weight:700}.view-switch span{background:#111;color:#fff}
.search-block{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:16px 0 11px}.search-box{height:50px;border:1px solid var(--line);background:#fff;border-radius:999px;display:flex;align-items:center;padding:0 15px 0 16px}.search-box>svg{width:20px;height:20px;stroke-width:1.8;color:#777;margin-right:10px}.search-box input{border:0;outline:0;background:transparent;width:100%;min-width:0;font-size:15px}.search-box input::placeholder{color:#aaa8a2}.search-box button{border:0;background:transparent;color:#777;font-size:10px;cursor:pointer}
.near-btn{height:50px;border:1px solid var(--line);background:#111;color:#fff;border-radius:999px;padding:0 17px;display:flex;align-items:center;gap:8px;font-weight:700;cursor:pointer}.near-btn svg{width:18px;height:18px;stroke-width:1.7}
.city-chips{display:flex;gap:7px;overflow:auto;padding:0 0 14px;scrollbar-width:none}.city-chips::-webkit-scrollbar{display:none}.city-chips button{flex:0 0 auto;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 12px;font-size:10px;cursor:pointer}.city-chips button.is-active{background:#111;color:#fff;border-color:#111}
.error{margin:0 0 12px;padding:12px 14px;border:1px solid #e6c4bf;background:#fff8f7;color:#7d3932;border-radius:13px}
.workspace{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px;min-height:670px}.map-panel{position:relative;border:1px solid var(--line);border-radius:22px;overflow:hidden;background:#e9e9e4;min-height:670px}.map-panel iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;filter:saturate(.78) contrast(.96)}
.map-actions{position:absolute;top:14px;left:14px;z-index:3;display:flex;gap:8px;flex-wrap:wrap}.map-actions button{height:38px;border:1px solid rgba(0,0,0,.08);background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-radius:999px;padding:0 12px;font-size:10px;font-weight:700;box-shadow:0 4px 18px rgba(0,0,0,.08);display:flex;align-items:center;gap:6px;cursor:pointer}.map-actions svg{width:15px;height:15px;stroke-width:1.7}
.selected-card{position:absolute;z-index:4;left:14px;right:14px;bottom:14px;max-width:470px;background:rgba(255,255,255,.97);backdrop-filter:blur(18px);border:1px solid rgba(0,0,0,.07);border-radius:18px;padding:15px;box-shadow:0 15px 40px rgba(0,0,0,.12)}.selected-top{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.selected-top small,.selected-empty small{color:#84827c;font-size:8px;letter-spacing:.14em;text-transform:uppercase}.selected-card h2{margin:3px 0 0;font-size:22px;line-height:1.1;letter-spacing:-.04em}.selected-address{margin:8px 0 7px;color:#696863;font-size:11px;line-height:1.45}.selected-meta{color:#77756f;font-size:10px}.selected-actions{display:flex;align-items:center;gap:13px;margin-top:12px}.selected-actions a{font-size:10px;font-weight:800}.selected-actions .primary{background:#111;color:#fff;border-radius:999px;padding:9px 12px}.save-btn{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 10px;font-size:9px;font-weight:800;cursor:pointer}.save-btn[aria-pressed=true]{background:#edf4e9;border-color:#c9dabb;color:#477b35}.selected-empty p{margin:8px 0 0;color:#777;font-size:11px}
.results-panel{border:1px solid var(--line);border-radius:22px;background:#fff;overflow:hidden;min-width:0;display:flex;flex-direction:column;max-height:670px}.results-head{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--line)}.results-head>div{display:grid;gap:2px}.results-head span{font-size:8px;color:#8a8882;letter-spacing:.17em}.results-head strong{font-size:14px}.results-head button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 11px;font-size:9px;font-weight:800;cursor:pointer}.results-head button[aria-pressed=true]{background:#111;color:#fff;border-color:#111}
.results-list{overflow:auto;min-height:0}.place-card{position:relative;padding:16px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .15s ease}.place-card:hover{background:#faf9f6}.place-card.is-active{background:#f5f7f2}.place-card:last-child{border-bottom:0}.place-row{display:grid;grid-template-columns:1fr auto;gap:12px}.place-card small{display:block;color:#87857f;font-size:8px;letter-spacing:.1em;text-transform:uppercase}.place-card h3{margin:4px 0 4px;font-size:17px;line-height:1.16;letter-spacing:-.03em}.place-card p{margin:0;color:#77756f;font-size:10px;line-height:1.45}.place-rating{margin-top:7px!important;color:#55534f!important}.place-save{align-self:start;width:40px;height:40px;display:grid;place-items:center;border:0;background:transparent;color:#777;padding:0;border-radius:50%;cursor:pointer;transition:background .15s ease,color .15s ease,transform .15s ease}.place-save svg{width:21px;height:21px;stroke-width:1.8}.place-save.is-saved,.place-save[aria-pressed=true]{background:#eef6e9;color:#5aa73d}.place-save.is-saved svg,.place-save[aria-pressed=true] svg{fill:currentColor;stroke:currentColor}.place-save:active{transform:scale(.94)}.empty-list{padding:24px}.empty-list strong{font-size:18px}.empty-list p{color:#777;font-size:11px;line-height:1.6}.mobile-nav{display:none}
@media(min-width:1450px){.app-shell{max-width:1480px;grid-template-columns:240px minmax(0,1fr)}.workspace{grid-template-columns:minmax(0,1fr) 380px}.main{padding-left:26px}}
@media(max-width:1120px) and (min-width:821px){.app-shell{grid-template-columns:200px minmax(0,1fr);padding:0 10px}.rail-link{min-width:145px}.share-btn{width:175px}.workspace{grid-template-columns:minmax(0,1fr) 310px}.brand span{font-size:20px}.brand em{font-size:24px}}
@media(max-width:820px){
  body{padding-bottom:calc(74px + var(--safe-bottom))}
  .app-shell{display:block;padding:0}.rail{display:none}.main{padding:0 0 20px}.topbar{position:sticky;top:0;z-index:10;background:rgba(251,250,247,.96);backdrop-filter:blur(14px);padding:calc(15px + env(safe-area-inset-top,0px)) 15px 12px}.topbar .eyebrow{display:none}.topbar h1{font-size:24px}.view-switch a,.view-switch span{min-width:52px;padding:7px 9px;font-size:9px}
  .search-block{padding:12px 12px 9px;grid-template-columns:1fr auto}.search-box{height:46px}.search-box input{font-size:16px}.near-btn{height:46px;width:46px;padding:0;justify-content:center}.near-btn svg{width:19px;height:19px}.near-btn{font-size:0}
  .city-chips{padding:0 12px 10px}.workspace{display:flex;flex-direction:column;gap:0;min-height:0}.map-panel{border-radius:0;border-left:0;border-right:0;min-height:58dvh;height:58dvh}.map-panel iframe{height:100%}.map-actions{top:10px;left:10px}.map-actions #map-near{display:none}
  .selected-card{left:10px;right:10px;bottom:10px;max-width:none;border-radius:17px;padding:13px}.selected-card h2{font-size:19px}.selected-address{font-size:10px}.selected-actions{margin-top:10px}
  .results-panel{border:0;border-radius:0;max-height:none;overflow:visible}.results-head{padding:16px 14px}.results-list{overflow:visible}.place-card{padding:15px 14px}.place-card h3{font-size:16px}
  .mobile-nav{position:fixed;z-index:30;left:0;right:0;bottom:0;display:grid;grid-template-columns:1fr 1fr 72px 1fr 1fr;align-items:center;height:calc(64px + var(--safe-bottom));padding:0 8px var(--safe-bottom);background:rgba(255,255,255,.96);backdrop-filter:blur(16px);border-top:1px solid var(--line)}.mobile-nav a{display:grid;place-items:center;min-height:52px;font-size:9px;color:#777}.mobile-nav a.is-active{color:#111;font-weight:800}.mobile-plus{width:52px;height:52px;min-height:52px!important;justify-self:center;border-radius:50%;background:#111;color:#fff!important;font-size:23px!important;border:3px solid #fff;box-shadow:0 5px 18px rgba(0,0,0,.15)}
}
@media(max-width:480px){.map-panel{height:56dvh;min-height:56dvh}.selected-card{bottom:8px}.selected-actions{gap:10px}.selected-actions a{font-size:9px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* =========================================================
   W18.161 — MOBILE MAP ZOOM CONTROLS
   Keep Mapbox + / − above mobile map overlays and reliably tappable on Safari.
   ========================================================= */
.map-panel .mapboxgl-ctrl-top-right{
  z-index:8!important;
  pointer-events:auto!important;
}
.map-panel .mapboxgl-ctrl-top-right .mapboxgl-ctrl,
.map-panel .mapboxgl-ctrl-top-right button{
  pointer-events:auto!important;
  touch-action:manipulation!important;
  -webkit-tap-highlight-color:transparent;
}


/* =========================================================
   W18.163 — MAP LAYOUT RECOVERY
   Restore the current map-page classes that were not present
   in the stale stylesheet loaded by W18.161. No data/API changes.
   ========================================================= */
.mobile-clubbar,
.mobile-view-switch{display:none}
.topbar-copy{min-width:0}
.back-to-explore{display:inline-flex;align-items:center;margin:0 0 7px;color:#777771;font-size:10px;font-weight:700}
.topbar-copy>p:not(.eyebrow){max-width:520px;margin:9px 0 0;color:#777771;font-size:11px;line-height:1.55}
.drinks-link{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;padding:9px 0;color:#30302d;font-size:11px;font-weight:700}
.drinks-link span{color:var(--green-dark);font-size:16px}
.discovery-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:16px 0 11px}
.results-helper{margin:0;padding:10px 16px;border-bottom:1px solid var(--line);color:#96938d;font-size:9px;line-height:1.4}
.cluster-map,.mapbox-map-shell,.mapbox-canvas{position:absolute;inset:0;width:100%;height:100%}
.cluster-map{overflow:hidden}
.cluster-map-loading{position:absolute;inset:0;z-index:2;display:grid;place-items:center;background:#ecece7;color:#777771;font-size:10px;font-weight:700;letter-spacing:.04em;transition:opacity .18s ease}
.cluster-map-loading[hidden]{display:none}
.mapbox-fallback{position:absolute;inset:0;z-index:2;display:grid;place-content:center;gap:7px;padding:28px;text-align:center;background:#efefeb;color:#55534f}
.mapbox-fallback[hidden]{display:none}
.mapbox-fallback strong{font-size:18px}.mapbox-fallback span,.mapbox-fallback small{color:#777771;font-size:10px;line-height:1.5}
.map-search-area{position:absolute;z-index:6;top:14px;left:50%;transform:translateX(-50%);height:38px;padding:0 16px;border:1px solid rgba(0,0,0,.08);border-radius:999px;background:rgba(255,255,255,.97);box-shadow:0 4px 18px rgba(0,0,0,.09);font-size:10px;font-weight:800;cursor:pointer;white-space:nowrap}
.map-search-area[hidden]{display:none}
.place-card{display:grid;grid-template-columns:minmax(0,1fr) 40px 18px;align-items:center;gap:8px}
.place-card-hit{display:grid;grid-template-columns:70px minmax(0,1fr);align-items:center;gap:12px;min-width:0}
.place-photo{width:70px;height:70px;display:grid;place-items:center;overflow:hidden;border-radius:14px;background:linear-gradient(145deg,#edf4e8,#f5f2e9);color:#477b35;font-size:24px;font-weight:700;object-fit:cover}
.place-copy{min-width:0}.place-copy h3,.place-copy p,.place-copy small{overflow:hidden;text-overflow:ellipsis}.place-copy h3{white-space:nowrap}.place-copy p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.place-arrow{color:var(--green-dark);font-size:21px;font-weight:400}
.selected-card{display:grid;grid-template-columns:96px minmax(0,1fr);gap:13px;align-items:stretch}
.selected-photo{width:96px;height:96px;border-radius:14px;object-fit:cover;background:linear-gradient(145deg,#edf4e8,#f5f2e9)}
.selected-photo--blank{display:grid;place-items:center;color:#477b35;font-size:30px;font-weight:700}
.selected-body{min-width:0}.selected-popular{margin:7px 0 0;color:#77756f;font-size:10px;line-height:1.45}
.verified-cafe-inline{display:inline-grid!important;place-items:center!important;width:17px!important;height:17px!important;min-width:17px!important;margin-left:5px!important;border-radius:50%!important;background:#6BB346!important;color:#fff!important;vertical-align:-2px!important}
.verified-cafe-inline svg{width:10px!important;height:10px!important;stroke:#fff!important;stroke-width:2.4!important;fill:none!important}
.mobile-nav-ico{display:grid;place-items:center;width:25px;height:25px;margin:0 auto 3px}.mobile-nav-ico svg{width:22px;height:22px;stroke-width:1.8}
body[data-map-view="map"] .map-panel,
body[data-map-view="list"] .results-panel,
body[data-map-view="stacked"] .map-panel{min-width:0}

@media(max-width:820px){
  .mobile-clubbar{position:sticky;top:0;z-index:25;min-height:calc(69px + env(safe-area-inset-top,0px));display:flex;align-items:center;justify-content:space-between;gap:16px;padding:calc(12px + env(safe-area-inset-top,0px)) 24px 12px;background:rgba(255,255,255,.97);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
  .mobile-clubbrand{display:flex;align-items:baseline;gap:7px;min-width:0;color:#11110f;font-weight:700;letter-spacing:-.055em;white-space:nowrap}
  .mobile-clubbrand span{font-size:18px}.mobile-clubbrand em{color:#6BB346;font:italic 22px/1 Georgia,serif}
  .mobile-clubchat{width:42px;height:42px;min-width:42px;display:grid;place-items:center;border-radius:50%;color:#11110f}
  .mobile-clubchat svg{width:24px!important;height:24px!important;stroke-width:1.9!important}
  .topbar{position:static;display:flex;align-items:flex-end;padding:28px 28px 22px;background:var(--bg);backdrop-filter:none;border-bottom:0}
  .back-to-explore{margin-bottom:10px;font-size:10px;color:#7f7d78}
  .topbar .eyebrow{display:none}
  .topbar h1{font-size:40px;line-height:.98;letter-spacing:-.055em}
  .topbar-copy>p:not(.eyebrow){max-width:300px;margin-top:14px;font-size:13px;line-height:1.55}
  .drinks-link{align-self:flex-end;max-width:95px;padding:0 0 4px;font-size:11px;line-height:1.35;text-align:left}
  .discovery-toolbar{grid-template-columns:minmax(0,1fr) 52px;gap:9px;padding:0 14px 10px}
  .discovery-toolbar .search-box{height:52px}
  .discovery-toolbar .near-btn{width:52px;height:52px;border-radius:16px}
  .city-chips{padding:0 14px 14px}
  .city-chips button{min-height:42px;padding:0 15px;font-size:10px;font-weight:700}
  .mobile-view-switch{display:none!important}
  .workspace{display:flex;flex-direction:column;gap:0;min-height:0}
  body[data-map-view="stacked"] .map-panel{order:1;display:block}
  body[data-map-view="stacked"] .results-panel{order:2;display:flex}
  .map-panel{height:58dvh;min-height:430px;border-radius:0;border-left:0;border-right:0}
  .map-search-area{top:14px}
  .map-actions{top:14px;left:14px}
  .selected-card{display:none}
  .results-panel{max-height:none;border:0;border-radius:0;background:var(--bg)}
  .results-head{padding:18px 22px 13px;border-bottom:0}.results-head span{font-size:9px}.results-head strong{font-size:22px;letter-spacing:-.035em}
  .results-helper{display:none}
  .results-list{padding:0 0 18px;overflow:visible}
  .place-card{grid-template-columns:minmax(0,1fr) 44px;padding:10px 12px;margin:0 18px 12px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:none}
  .place-card.is-active{background:#f7f8f4;border-color:#dfe7d8}
  .place-card-hit{grid-template-columns:72px minmax(0,1fr);gap:12px}
  .place-photo{width:72px;height:72px;border-radius:16px}
  .place-card small{font-size:8px}.place-card h3{font-size:16px}.place-card p{font-size:10px}
  .place-save{width:44px;height:44px}.place-save svg{width:21px;height:21px}
  .place-arrow{display:none}
  .mobile-nav{grid-template-columns:repeat(4,1fr)!important;height:calc(70px + var(--safe-bottom));padding:3px 9px var(--safe-bottom)}
  .mobile-nav a{min-height:58px;font-size:9px}.mobile-nav-ico{width:26px;height:26px}.mobile-nav-ico svg{width:23px;height:23px}
}

@media(max-width:430px){
  .mobile-clubbar{padding-left:18px;padding-right:18px}
  .mobile-clubbrand span{font-size:17px}.mobile-clubbrand em{font-size:21px}
  .topbar{padding:24px 18px 20px}.topbar h1{font-size:37px}.topbar-copy>p:not(.eyebrow){font-size:12px}
  .drinks-link{font-size:10px;max-width:82px}
  .discovery-toolbar{padding-left:12px;padding-right:12px}.city-chips{padding-left:12px;padding-right:12px}
  .map-panel{height:56dvh;min-height:400px}
  .place-card{margin-left:12px;margin-right:12px}
}


/* =========================================================
   W18.185 — EXPLORE HEADER RESTORE
   Return mobile Explore header to the compact pre-W18.163 rhythm.
   Keep W18.163 map/card recovery rules intact below the header.
   ========================================================= */
@media(max-width:820px){
  .topbar{
    position:static!important;
    display:block!important;
    padding:18px 18px 12px!important;
    background:var(--bg)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    border-bottom:0!important;
  }
  .back-to-explore{
    margin:0 0 7px!important;
    font-size:10px!important;
    line-height:1.2!important;
  }
  .topbar h1{
    margin:0!important;
    font-size:24px!important;
    line-height:1.02!important;
    letter-spacing:-.055em!important;
  }
  .topbar-copy>p:not(.eyebrow),
  .drinks-link{
    display:none!important;
  }
  .discovery-toolbar{
    padding:0 12px 10px!important;
  }
}
@media(max-width:430px){
  .topbar{padding:16px 18px 10px!important}
  .topbar h1{font-size:24px!important}
}


/* =========================================================
   W18.186 — MOBILE MAP HEADER ALIGNMENT
   Match the main Explore header rhythm: same compact scale,
   left alignment, and search spacing. Keep map behavior intact.
   ========================================================= */
@media(max-width:820px){
  .topbar{
    position:static!important;
    display:block!important;
    padding:15px 24px 13px!important;
    background:var(--bg)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    border-bottom:0!important;
  }
  .back-to-explore{
    display:inline-flex!important;
    margin:0 0 7px!important;
    color:#777771!important;
    font-size:9px!important;
    line-height:1.2!important;
    letter-spacing:.12em!important;
    text-transform:uppercase!important;
    font-weight:700!important;
  }
  .topbar h1{
    margin:0!important;
    max-width:360px!important;
    font-size:32px!important;
    line-height:1!important;
    letter-spacing:-.05em!important;
    font-weight:700!important;
  }
  .topbar-copy>p:not(.eyebrow),
  .drinks-link{
    display:none!important;
  }
  .discovery-toolbar{
    padding:0 24px 10px!important;
  }
}
@media(max-width:430px){
  .topbar{
    padding:15px 24px 13px!important;
  }
  .topbar h1{
    font-size:32px!important;
  }
  .discovery-toolbar{
    padding-left:24px!important;
    padding-right:24px!important;
  }
}


/* =========================================================
   W18.187 — MOBILE MAP + CAFÉ PEEK UX
   Keep the map useful, but shorten it so the café list begins
   on the first screen instead of living below a full-height map.
   ========================================================= */
@media(max-width:820px){
  .map-panel{
    height:32dvh!important;
    min-height:260px!important;
    max-height:330px!important;
  }
  .results-head{
    padding:13px 18px 9px!important;
  }
  .results-head strong{
    font-size:19px!important;
  }
  .results-list{
    padding:0 0 calc(88px + var(--safe-bottom))!important;
  }
  .place-card{
    margin:0 14px 9px!important;
    padding:9px 10px!important;
    border-radius:16px!important;
  }
  .place-card-hit{
    grid-template-columns:64px minmax(0,1fr)!important;
    gap:10px!important;
  }
  .place-photo{
    width:64px!important;
    height:64px!important;
    border-radius:14px!important;
  }
}
@media(max-width:430px){
  .map-panel{
    height:30dvh!important;
    min-height:245px!important;
    max-height:285px!important;
  }
}


/* =========================================================
   W18.188 — RESTORE POLISHED MAP CAFÉ POPUP
   W18.163 recovery dropped the old popup presentation, leaving
   the Mapbox popup content visually raw. Restore the compact
   café card while preserving W18.187's shorter map/list peek.
   ========================================================= */
.mapboxgl-popup{
  z-index:9!important;
  font-family:Gotham,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
}
.mapboxgl-popup-content{
  width:min(300px,calc(100vw - 34px))!important;
  padding:0!important;
  overflow:hidden!important;
  border:1px solid rgba(17,17,15,.07)!important;
  border-radius:20px!important;
  background:rgba(255,255,255,.985)!important;
  box-shadow:0 15px 38px rgba(0,0,0,.14)!important;
}
.mapboxgl-popup-tip{
  border-top-color:#fff!important;
  border-bottom-color:#fff!important;
}
.mm-mapbox-popup-card{
  min-width:0;
  padding:14px!important;
  color:var(--ink)!important;
}
.mm-mapbox-popup-top{
  display:grid!important;
  grid-template-columns:64px minmax(0,1fr)!important;
  gap:12px!important;
  align-items:center!important;
}
.mm-mapbox-popup-top>img,
.mm-mapbox-popup-blank{
  width:64px!important;
  height:64px!important;
  min-width:64px!important;
  display:grid!important;
  place-items:center!important;
  margin:0!important;
  border-radius:14px!important;
  object-fit:cover!important;
  overflow:hidden!important;
  background:linear-gradient(145deg,#edf4e8,#f5f2e9)!important;
  color:var(--green-dark)!important;
  font-size:20px!important;
  font-weight:700!important;
}
.mm-mapbox-popup-top>div{
  min-width:0!important;
}
.mm-mapbox-popup-top small{
  display:block!important;
  margin:0 0 4px!important;
  overflow:hidden!important;
  color:#8a8882!important;
  font-size:8px!important;
  line-height:1.25!important;
  font-weight:400!important;
  letter-spacing:.11em!important;
  text-transform:uppercase!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.mm-mapbox-popup-top strong{
  display:flex!important;
  align-items:center!important;
  min-width:0!important;
  margin:0 0 5px!important;
  overflow:hidden!important;
  color:#11110f!important;
  font-size:17px!important;
  line-height:1.15!important;
  font-weight:700!important;
  letter-spacing:-.03em!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.mm-mapbox-popup-top>div>span{
  display:block!important;
  margin:0!important;
  overflow:hidden!important;
  color:#77756f!important;
  font-size:10px!important;
  line-height:1.4!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.mm-mapbox-popup-actions{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:8px!important;
  margin-top:13px!important;
}
.mm-mapbox-popup-actions a{
  min-height:42px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  margin:0!important;
  padding:0 12px!important;
  border:1px solid var(--line)!important;
  border-radius:999px!important;
  background:#fff!important;
  color:#11110f!important;
  font-size:10px!important;
  line-height:1!important;
  font-weight:800!important;
  text-decoration:none!important;
  white-space:nowrap!important;
}
.mm-mapbox-popup-actions a:first-child{
  border-color:#11110f!important;
  background:#11110f!important;
  color:#fff!important;
}
@media(max-width:430px){
  .mapboxgl-popup-content{
    width:min(292px,calc(100vw - 28px))!important;
    border-radius:18px!important;
  }
  .mm-mapbox-popup-card{padding:13px!important}
  .mm-mapbox-popup-top{
    grid-template-columns:60px minmax(0,1fr)!important;
    gap:11px!important;
  }
  .mm-mapbox-popup-top>img,
  .mm-mapbox-popup-blank{
    width:60px!important;
    height:60px!important;
    min-width:60px!important;
    border-radius:13px!important;
  }
  .mm-mapbox-popup-top strong{font-size:16px!important}
  .mm-mapbox-popup-actions a{min-height:40px!important}
}

/* =========================================================
   W18.224 — MOBILE NEAR-ME ICON CENTER LOCK
   The mobile Near me control is icon-only. Remove the inherited
   desktop flex gap so the crosshair sits exactly in the center.
   No geolocation behavior changes.
   ========================================================= */
@media(max-width:820px){
  .discovery-toolbar .near-btn{
    display:grid!important;
    place-items:center!important;
    gap:0!important;
    padding:0!important;
  }
  .discovery-toolbar .near-btn>span{
    display:none!important;
  }
  .discovery-toolbar .near-btn>svg{
    display:block!important;
    margin:0!important;
    flex:none!important;
  }
}

/* =========================================================
   W18.320 — CAFÉ MAP DESKTOP PREMIUM POLISH
   Desktop/laptop only. Bring the standalone Café Map into the
   same clean, disciplined visual system as the polished Club:
   white product canvas, tighter discovery controls, denser café
   list, stronger map presence, and a compact sticky map card.
   Mobile <=820px is intentionally untouched.
   ========================================================= */
@media (min-width:821px){
  :root{
    --bg:#fff;
    --paper:#fff;
    --line:#ecece8;
    --soft:#f7f7f5;
    --green:#6BB346;
    --green-dark:#5ca13e;
  }

  html,
  body,
  .app-shell,
  .rail,
  .main{
    background:#fff!important;
  }

  /* Match the main Club desktop shell instead of feeling like a separate utility page. */
  .app-shell{
    width:min(1500px,100%)!important;
    grid-template-columns:240px minmax(0,1fr)!important;
    padding:0 18px!important;
  }
  .rail{
    border-right:1px solid #ecece8!important;
  }
  .rail-inner{
    padding:28px 14px 22px 4px!important;
  }
  .brand{
    padding-left:4px!important;
  }
  .rail-nav{
    gap:2px!important;
    margin-top:21px!important;
  }
  .rail-link{
    min-height:50px!important;
    min-width:158px!important;
    padding:0 10px 0 2px!important;
    border-radius:14px!important;
    color:#22221f!important;
    font-size:15px!important;
    letter-spacing:-.018em!important;
    transition:background .14s ease,color .14s ease,transform .12s ease!important;
  }
  .nav-ico{
    width:38px!important;
    height:38px!important;
    color:#35342f!important;
  }
  .rail-link.is-active .nav-ico{
    background:#f3f3f0!important;
    color:#11110f!important;
  }
  .rail-footer{
    gap:8px 11px!important;
    color:#aaa79f!important;
    font-size:8px!important;
  }

  /* Main page hierarchy: one clear title, then discovery. */
  .main{
    padding:24px 0 54px 26px!important;
  }
  .topbar{
    align-items:flex-start!important;
    padding:2px 0 20px!important;
    border-bottom:1px solid #efefeb!important;
  }
  .back-to-explore{
    margin:0 0 8px!important;
    color:#96938d!important;
    font-size:9px!important;
    line-height:1.2!important;
    font-weight:700!important;
    letter-spacing:.09em!important;
    text-transform:uppercase!important;
  }
  .topbar .eyebrow{
    display:none!important;
  }
  .topbar h1{
    font-size:38px!important;
    line-height:1!important;
    letter-spacing:-.055em!important;
    color:#11110f!important;
  }

  /* Search + Near me should read as one refined toolbar. */
  .discovery-toolbar{
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:10px!important;
    padding:16px 0 10px!important;
  }
  .discovery-toolbar .search-box{
    height:48px!important;
    padding:0 16px!important;
    border:1px solid #e7e6e1!important;
    border-radius:999px!important;
    background:#fafaf8!important;
    box-shadow:none!important;
    transition:background .14s ease,border-color .14s ease!important;
  }
  .discovery-toolbar .search-box>svg{
    width:18px!important;
    height:18px!important;
    margin-right:10px!important;
    color:#8f8c85!important;
  }
  .discovery-toolbar .search-box input{
    color:#22221f!important;
    font-size:14px!important;
    letter-spacing:-.01em!important;
  }
  .discovery-toolbar .search-box input::placeholder{
    color:#aaa79f!important;
  }
  .discovery-toolbar .near-btn{
    height:48px!important;
    min-width:118px!important;
    padding:0 17px!important;
    border:1px solid #11110f!important;
    border-radius:999px!important;
    background:#11110f!important;
    color:#fff!important;
    font-size:11px!important;
    font-weight:760!important;
    box-shadow:none!important;
  }

  /* Smaller filter chips keep the focus on actual cafés. */
  .city-chips{
    gap:7px!important;
    padding:0 0 14px!important;
  }
  .city-chips button{
    min-height:34px!important;
    padding:0 13px!important;
    border:1px solid #e7e6e1!important;
    border-radius:999px!important;
    background:#fff!important;
    color:#55534e!important;
    font-size:9.5px!important;
    font-weight:650!important;
    transition:background .14s ease,border-color .14s ease,color .14s ease!important;
  }
  .city-chips button.is-active{
    border-color:#11110f!important;
    background:#11110f!important;
    color:#fff!important;
  }

  /* App-like split workspace: denser list, more useful map, matched heights. */
  .workspace{
    grid-template-columns:minmax(0,1.18fr) minmax(400px,.82fr)!important;
    gap:18px!important;
    min-height:0!important;
    align-items:start!important;
  }
  .results-panel,
  .map-panel{
    height:clamp(560px,calc(100dvh - 230px),760px)!important;
    min-height:560px!important;
    max-height:760px!important;
  }

  .results-panel{
    border:1px solid #ecece8!important;
    border-radius:20px!important;
    background:#fff!important;
    box-shadow:0 1px 2px rgba(17,17,15,.018)!important;
    overflow:hidden!important;
  }
  .results-head{
    min-height:66px!important;
    padding:14px 17px 12px!important;
    border-bottom:1px solid #efefeb!important;
  }
  .results-head span{
    color:#9a978f!important;
    font-size:7.5px!important;
    letter-spacing:.16em!important;
  }
  .results-head strong{
    color:#171714!important;
    font-size:15px!important;
    line-height:1.15!important;
    font-weight:780!important;
    letter-spacing:-.022em!important;
  }
  .results-helper{
    padding:8px 17px!important;
    border-bottom:1px solid #f1f0ec!important;
    background:#fdfdfc!important;
    color:#aaa79f!important;
    font-size:8.5px!important;
  }
  .results-list{
    overflow:auto!important;
    scrollbar-width:thin!important;
    scrollbar-color:#d9d7d1 transparent!important;
  }

  /* Café rows: compact social-directory density instead of admin-table spacing. */
  .place-card{
    grid-template-columns:minmax(0,1fr) 36px 16px!important;
    gap:7px!important;
    min-height:84px!important;
    padding:11px 14px!important;
    border-bottom:1px solid #f0efeb!important;
    background:#fff!important;
    transition:background .14s ease,box-shadow .14s ease!important;
  }
  .place-card.is-active{
    background:#fafcf8!important;
    box-shadow:inset 3px 0 0 #6BB346!important;
  }
  .place-card-hit{
    grid-template-columns:58px minmax(0,1fr)!important;
    gap:11px!important;
  }
  .place-photo{
    width:58px!important;
    height:58px!important;
    border-radius:14px!important;
    background:linear-gradient(145deg,#f0f5ec,#f7f5f0)!important;
    color:#5b9e40!important;
    font-size:20px!important;
  }
  .place-card small{
    color:#9a978f!important;
    font-size:7.5px!important;
    line-height:1.2!important;
    letter-spacing:.105em!important;
  }
  .place-card h3{
    margin:3px 0 3px!important;
    color:#171714!important;
    font-size:15.5px!important;
    line-height:1.14!important;
    font-weight:760!important;
    letter-spacing:-.028em!important;
  }
  .place-card p{
    color:#8a8780!important;
    font-size:9.5px!important;
    line-height:1.35!important;
  }
  .place-save{
    width:36px!important;
    height:36px!important;
    color:#8f8c85!important;
  }
  .place-save svg{
    width:19px!important;
    height:19px!important;
    stroke-width:1.7!important;
  }
  .place-arrow{
    color:#6BAF4A!important;
    font-size:18px!important;
  }

  /* Map has more visual weight but stays quiet beside the list. */
  .map-panel{
    position:sticky!important;
    top:18px!important;
    align-self:start!important;
    border:1px solid #e9e8e3!important;
    border-radius:20px!important;
    background:#ecece8!important;
    box-shadow:0 1px 2px rgba(17,17,15,.018)!important;
  }
  .map-actions{
    top:12px!important;
    left:12px!important;
    gap:7px!important;
  }
  .map-actions button,
  .map-search-area{
    height:36px!important;
    border:1px solid rgba(17,17,15,.075)!important;
    background:rgba(255,255,255,.96)!important;
    box-shadow:0 5px 18px rgba(17,17,15,.07)!important;
    font-size:9.5px!important;
    font-weight:740!important;
  }
  .map-search-area{
    top:12px!important;
    padding:0 14px!important;
  }

  /* Selected café becomes a compact context card, not a map-blocking modal. */
  .selected-card{
    left:12px!important;
    right:auto!important;
    bottom:12px!important;
    width:min(340px,calc(100% - 24px))!important;
    max-width:none!important;
    grid-template-columns:72px minmax(0,1fr)!important;
    gap:11px!important;
    padding:12px!important;
    border:1px solid rgba(17,17,15,.07)!important;
    border-radius:17px!important;
    background:rgba(255,255,255,.975)!important;
    box-shadow:0 14px 34px rgba(17,17,15,.11)!important;
  }
  .selected-photo{
    width:72px!important;
    height:72px!important;
    border-radius:13px!important;
  }
  .selected-card h2{
    margin-top:2px!important;
    font-size:17px!important;
    line-height:1.08!important;
    letter-spacing:-.035em!important;
  }
  .selected-top small,
  .selected-empty small{
    color:#9a978f!important;
    font-size:7px!important;
    letter-spacing:.13em!important;
  }
  .selected-popular{
    margin-top:5px!important;
    color:#85827c!important;
    font-size:9px!important;
    line-height:1.35!important;
  }
  .selected-actions{
    gap:10px!important;
    margin-top:9px!important;
  }
  .selected-actions a{
    font-size:9px!important;
    font-weight:760!important;
  }
  .selected-actions .primary{
    padding:8px 11px!important;
    background:#11110f!important;
  }
  .save-btn{
    padding:6px 9px!important;
    border-color:#e7e6e1!important;
    font-size:8px!important;
  }
  .selected-empty{
    grid-column:1/-1!important;
    padding:3px 2px!important;
  }
  .selected-empty h2{
    margin:3px 0 0!important;
    font-size:20px!important;
  }
  .selected-empty p{
    max-width:230px!important;
    margin-top:6px!important;
    color:#89867f!important;
    font-size:9.5px!important;
    line-height:1.45!important;
  }
}

@media (hover:hover) and (min-width:821px){
  .rail-link:hover{
    background:#f7f7f5!important;
    color:#11110f!important;
  }
  .rail-link:active{
    transform:scale(.985)!important;
  }
  .discovery-toolbar .search-box:hover{
    background:#f7f7f5!important;
    border-color:#dfded8!important;
  }
  .city-chips button:not(.is-active):hover{
    border-color:#dcdad4!important;
    background:#fafaf8!important;
    color:#11110f!important;
  }
  .place-card:hover{
    background:#fdfdfb!important;
  }
}

/* Keep laptop layouts balanced without falling back to the older cramped split. */
@media (min-width:821px) and (max-width:1120px){
  .app-shell{
    grid-template-columns:200px minmax(0,1fr)!important;
    padding:0 10px!important;
  }
  .main{
    padding-left:18px!important;
  }
  .workspace{
    grid-template-columns:minmax(0,1fr) 340px!important;
    gap:12px!important;
  }
  .place-card-hit{
    grid-template-columns:54px minmax(0,1fr)!important;
  }
  .place-photo{
    width:54px!important;
    height:54px!important;
  }
  .selected-card{
    width:min(310px,calc(100% - 24px))!important;
    grid-template-columns:64px minmax(0,1fr)!important;
  }
  .selected-photo{
    width:64px!important;
    height:64px!important;
  }
}

/* =========================================================
   W18.321 — FIND MATCHA PRODUCT ALIGNMENT POLISH
   Align the standalone map with the current MR MATCHA CLUB
   navigation language, give the map stronger desktop priority,
   and remove the redundant café-row arrow beside Save.
   Existing Mapbox/search/geolocation behavior is unchanged.
   ========================================================= */
@media (min-width:821px){
  /* Match the current Club rail rhythm and icon treatment. */
  .brand-sub{
    margin:7px 0 24px 4px!important;
    max-width:176px!important;
    color:#9a978f!important;
    font-size:7px!important;
    line-height:1.45!important;
    letter-spacing:.18em!important;
  }
  .rail-nav{
    margin-top:0!important;
    gap:2px!important;
  }
  .rail-link{
    min-height:50px!important;
    padding:0 10px!important;
  }
  .rail-link .nav-label{
    font-weight:690!important;
    letter-spacing:-.018em!important;
  }
  .rail-link.is-active .nav-label{
    color:#11110f!important;
    font-weight:790!important;
  }
  .nav-ico{
    width:38px!important;
    height:38px!important;
    background:transparent!important;
    color:#35342f!important;
  }
  .nav-ico svg{
    width:22px!important;
    height:22px!important;
    stroke-width:1.8!important;
  }
  .rail-link.is-active .nav-ico{
    background:transparent!important;
    color:#11110f!important;
  }
  .rail-link.is-active .nav-ico svg{
    stroke-width:2!important;
  }

  /* The map is the primary discovery surface: ~63% map / ~37% list. */
  .workspace{
    grid-template-columns:minmax(330px,.58fr) minmax(0,1fr)!important;
    gap:18px!important;
  }

  /* Café row ends cleanly with Save — the whole row already opens the café. */
  .place-card{
    grid-template-columns:minmax(0,1fr) 36px!important;
    gap:8px!important;
  }
  .place-save{
    align-self:center!important;
  }
  .place-arrow{
    display:none!important;
  }
}

@media (min-width:821px) and (max-width:1120px){
  .workspace{
    grid-template-columns:minmax(300px,315px) minmax(0,1fr)!important;
    gap:12px!important;
  }
}
