.discovery-switch { display:flex; gap:3px; padding:4px; width:max-content; max-width:100%; border:1px solid var(--control-line); border-radius:99px; background:var(--paper); }
.discovery-switch a { min-height:42px; display:flex; align-items:center; justify-content:center; gap:6px; padding:8px 13px; color:var(--ink); text-decoration:none; font-size:.85rem; border-radius:99px; font-weight:600; }
.discovery-switch a[aria-current] { background:var(--action); color:#fff; }
.discovery-switch svg { width:17px; height:17px; }
.list-heading { flex-wrap:wrap; gap:10px; }
.list-heading .discovery-switch { margin-left:auto; }
.discovery-map-layer { position:fixed; inset:0; z-index:10; }
.discovery-map-layer[hidden] { display:none; }
.map-surface,.festival-map { position:absolute; inset:0; }
.map-surface { background:var(--surface); }
.map-surface:focus { outline:none; }
body.map-open { overflow:hidden; }
body.map-restaurant-open .restaurant-stage { background:transparent; pointer-events:none; z-index:30; }
body.map-restaurant-open .restaurant-card { pointer-events:auto; }
body.map-restaurant-open .restaurant-back { display:none; }
.discovery-map-toolbar { position:absolute; top:max(12px,env(safe-area-inset-top)); left:max(12px,env(safe-area-inset-left)); right:max(12px,env(safe-area-inset-right)); display:flex; justify-content:space-between; gap:12px; align-items:flex-start; pointer-events:none; }
.discovery-map-toolbar > * { pointer-events:auto; box-shadow:0 2px 14px #701a4218; }
.map-profile { display:grid; place-items:center; min-width:50px; min-height:50px; padding:10px 13px; font-size:.8rem; font-weight:600; color:var(--ink); text-decoration:none; border-radius:99px; background:var(--paper); border:1px solid var(--control-line); }
.map-profile .logo { width:30px; height:32px; }
.map-location-controls { position:absolute; right:max(12px,env(safe-area-inset-right)); bottom:calc(var(--pass-dock-height,0px) + max(52px,calc(40px + env(safe-area-inset-bottom)))); display:flex; flex-direction:column; align-items:flex-end; gap:8px; max-width:min(300px,calc(100% - 24px)); }
.map-position-button { display:grid; place-items:center; flex:none; width:48px; height:48px; padding:12px; border:1px solid var(--control-line); border-radius:50%; background:var(--paper); color:var(--ink); box-shadow:0 2px 12px #701a4218; cursor:pointer; }
.map-position-button svg { display:block; width:22px; height:22px; fill:none; }
.map-position-button[data-position-state='ready'] { border-color:var(--action); color:var(--action); }
.map-position-button[data-position-state='ready'] svg { fill:currentColor; }
.map-position-button[aria-busy='true'] { opacity:.65; cursor:wait; }
.map-position-button:focus-visible { outline:3px solid var(--action); outline-offset:3px; }
.map-position-status { margin:0; max-width:100%; font-size:.8rem; line-height:1.4; background:var(--paper); color:var(--ink); border:1px solid var(--control-line); border-radius:9px; padding:8px 10px; }
.map-position-status[hidden],.map-position-status:empty { display:none; }
.map-coverage { position:absolute; bottom:max(30px,calc(18px + env(safe-area-inset-bottom))); left:12px; right:12px; padding:10px 12px; border:1px solid var(--line); border-radius:15px; background:var(--paper); font-size:.75rem; line-height:1.4; box-shadow:0 2px 12px #701a4218; }
.map-coverage span { display:block; }
.map-coverage a { color:var(--action); display:inline-flex; align-items:center; min-height:30px; font-weight:650; }
.has-restaurant .map-coverage,.has-restaurant .map-location-controls { display:none; }
.branch-distance { font-size:.75rem; color:var(--muted); }
.branch-distance[hidden] { display:none; }
.food-card-body .branch-distance { display:block; margin-top:3px; padding-right:2px; }
.food-card-body .branch-distance[hidden] { display:none; }
.map-open .skip-link { z-index:100; }
@media(min-width:900px) { .map-coverage { left:auto; width:280px; } }

.discovery-map-toolbar { z-index:5; }
.map-location-controls,.map-coverage { z-index:4; }
.map-surface .matmeg-map-status { top:90px; }
.map-branch-choices { display:grid; gap:10px; }
.map-branch-choices .button { text-align:left; justify-content:flex-start; }
.map-branch-choices small { display:block; font-weight:400; margin-top:3px; }
@media (min-width:900px) and (min-height:500px) {
  .has-restaurant .discovery-map-toolbar { left:462px; }
  .restaurant-card[data-presentation='side-panel'] .restaurant-heading { padding-top:4px; }

}
/* Leave the provider's two-line credit readable below the coverage notice. */
.map-coverage { bottom:max(46px,calc(34px + env(safe-area-inset-bottom))); }
