/* The discovery page keeps the product header and places the list below the map.
   All overrides are scoped so account, checkout and onboarding retain their UI. */
body.map-discovery { background: #fff; padding-bottom: var(--cr-safe-bottom, 0px); color: #202724; }
.map-discovery main#main-content { max-width: none; padding: 0; }
.map-discovery .top-in { max-width: 90rem; }
.map-discovery .topnav { display: flex; }
.map-discovery .skip-link { position: fixed; top: -10rem; z-index: 100; padding: 1rem; background: white; color: #123e33; }
.map-discovery .skip-link:focus { top: calc(1rem + var(--cr-safe-top, 0px)); }
.map-stage { position: relative; isolation: isolate; height: clamp(342px, 45svh, 414px); background: #e9eeea; }
.discovery-map { width: 100%; height: 100%; z-index: 0; background: #e9eeea; }
.map-toolbar { position: absolute; top: 16px; left: max(16px, var(--cr-safe-left, 0px)); right: max(16px, var(--cr-safe-right, 0px)); z-index: 4; max-width: 620px; margin: auto; pointer-events: none; }
.map-toolbar > * { pointer-events: auto; }
.map-discovery .seek { margin: 0; border: 1px solid #dadfdb; border-radius: 30px; background: #fff; box-shadow: 0 3px 12px #172e2424; min-height: 56px; padding-left: 10px; }
.map-discovery .sk-ico { color: #526059; }
.map-discovery .sk-in { color: #25342d; background: transparent; font-size: 16px; min-width: 0; padding: 14px 0; }
/* Center an SVG instead of a text glyph: Android font metrics shift the arrow. */
.map-discovery .sk-submit { display: inline-flex; align-items: center; justify-content: center; -webkit-appearance: none; appearance: none; border-radius: 50%; width: 44px; height: 44px; padding: 0; line-height: 1; background: #eff4f0; color: #173f32; }
.map-discovery .sk-submit svg { display: block; flex: none; width: 24px; height: 24px; }
.map-discovery .sk-submit:hover { background: #dce9df; }
.map-actions { position: absolute; z-index: 4; bottom: 60px; right: max(16px, var(--cr-safe-right, 0px)); display: flex; flex-direction: column; align-items: flex-end; gap: 9px; max-width: calc(100% - 32px); }
.map-actions button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; min-width: 44px; border: 1px solid #dce1dd; border-radius: 24px; padding: 10px; background: #fff; color: #315242; box-shadow: 0 2px 6px #1b332322; cursor: pointer; font: 650 12px/1.3 system-ui, sans-serif; }
.map-actions button svg { width: 21px; height: 21px; flex: none; }
.map-actions #geo-btn { padding: 10px; }
.map-actions button:disabled { opacity: .7; cursor: wait; }
.map-actions [hidden], .card-map-link[hidden], .map-status[hidden], .map-location-hint[hidden] { display: none; }
.map-status, .map-nojs { position: absolute; z-index: 3; left: max(16px, var(--cr-safe-left, 0px)); right: max(16px, var(--cr-safe-right, 0px)); top: 45%; width: fit-content; max-width: min(380px, calc(100% - max(16px, var(--cr-safe-left, 0px)) - max(16px, var(--cr-safe-right, 0px)))); padding: 12px 16px; border-radius: 12px; background: #fff; color: #52665b; font-size: 13px; box-shadow: 0 2px 8px #1b332318; }
.map-status.is-tile-error { top: auto; bottom: 54px; max-width: 55%; font-size: 11px; }
.map-location-hint { position: absolute; z-index: 5; top: 82px; left: max(16px, var(--cr-safe-left, 0px)); right: max(16px, var(--cr-safe-right, 0px)); width: fit-content; max-width: min(580px, calc(100% - max(16px, var(--cr-safe-left, 0px)) - max(16px, var(--cr-safe-right, 0px)))); margin: auto; background: white; padding: 12px 16px; border-radius: 12px; color: #854422; font-size: 13px; box-shadow: 0 2px 8px #1b332322; }
.map-discovery .results-sheet { position: relative; z-index: 2; max-width: 1200px; margin: -24px auto 0; padding: 10px 20px 24px; border-radius: 28px 28px 0 0; background: #f4f6f3; box-shadow: 0 -4px 16px #233d2510; scroll-margin-top: 80px; }
.sheet-handle { width: 40px; height: 4px; margin: 0 auto 12px; background: #d1d5d2; border-radius: 6px; }
.map-discovery .browse-heading { font: 650 27px/1.2 system-ui, sans-serif; letter-spacing: -.7px; color: #202724; margin: 0 0 8px; }
.map-discovery .pickup-only { font-size: 12px; color: #64736a; margin: 0 0 12px; }
.listing-title-row { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 4px 12px; margin-bottom: 8px; }
.map-discovery .listing-title-row .browse-heading, .map-discovery .listing-title-row .pickup-only { margin: 0; }
.listing-title-row .pickup-only { white-space: nowrap; }
.map-discovery .browse-tools { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.map-discovery .browse-tools .modebar { flex: 0 1 300px; margin: 0; }
/* Quiet list-header controls: 32px visual surfaces within 44px touch targets.
   Native GET buttons preserve keyboard and JavaScript-free filtering. */
.listing-filter-bar { display: flex; align-items: flex-start; flex: 1 1 auto; min-width: 0; gap: 8px; }
.listing-filter-options { display: flex; align-items: center; gap: 6px; min-width: 0; overflow-x: auto; overscroll-behavior-x: contain; padding: 3px; margin: -3px; scrollbar-width: thin; scrollbar-color: #c6cec8 transparent; }
.listing-filter-option { flex: none; margin: 0; }
.listing-cuisine-dropdown { position: relative; flex: none; width: max-content; max-width: min(200px, 45vw); min-width: 0; }
.listing-cuisine-dropdown[open] { z-index: 10; }
.listing-cuisine-dropdown > summary { width: 100%; gap: 6px; list-style: none; }
.listing-cuisine-dropdown > summary::-webkit-details-marker { display: none; }
.listing-cuisine-summary { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.listing-cuisine-dropdown > summary svg { flex: none; width: 14px; height: 14px; }
.listing-cuisine-dropdown[open] > summary svg { transform: rotate(180deg); }
.listing-cuisine-form { position: absolute; top: calc(100% + 6px); left: 0; width: min(340px, calc(100vw - 40px)); padding: 0; border: 1px solid #dce2dc; border-radius: 12px; background: #fff; box-shadow: 0 8px 28px #172e2426; overflow: hidden; }
.listing-cuisine-hint { margin: 0; padding: 14px 14px 8px; font: 400 12px/1.4 system-ui, sans-serif; color: #67766c; }
.listing-cuisine-options { margin: 0; padding: 0 8px 6px; border: 0; min-width: 0; max-height: min(320px, 45dvh); overflow-y: auto; overscroll-behavior-y: contain; scrollbar-width: thin; }
.listing-cuisine-choice { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 9px 7px; border-radius: 6px; cursor: pointer; color: #345443; font: 400 14px/1.4 system-ui, sans-serif; }
.listing-cuisine-choice:hover { background: #f1f5f0; }
.listing-cuisine-choice input { flex: none; width: 18px; height: 18px; margin: 0; accent-color: #345443; }
.listing-cuisine-count { color: #748076; font-size: 12px; }
.listing-cuisine-empty { padding: 8px; margin: 0; color: #67766c; font-size: 13px; }
.listing-cuisine-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid #e6ebe5; padding: 8px 12px; background: #fff; }
.listing-cuisine-clear { display: inline-flex; align-items: center; min-height: 44px; color: #657168; font: 400 12px/1.3 system-ui, sans-serif; text-underline-offset: 3px; }
.listing-cuisine-apply { min-height: 44px; padding: 8px 16px; border: 1px solid #345443; border-radius: 8px; color: #fff; background: #345443; font: 600 13px/1.3 system-ui, sans-serif; cursor: pointer; }
.instant-listing-filters .listing-cuisine-apply { display: none; }
.listing-cuisine-dropdown summary:focus-visible, .listing-cuisine-choice input:focus-visible, .listing-cuisine-clear:focus-visible, .listing-cuisine-apply:focus-visible { outline: 2px solid #34795a; outline-offset: 3px; }
.listing-cuisine-dropdown > summary, .listing-filter-chip { position: relative; isolation: isolate; display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 6px 10px; border: 0; border-radius: 8px; background: transparent; color: #59675e; box-shadow: none; font: 500 12px/1.3 system-ui, sans-serif; white-space: nowrap; cursor: pointer; }
.listing-cuisine-dropdown > summary::before, .listing-filter-chip::before { content: ''; position: absolute; z-index: -1; inset: 6px 0; border: 1px solid #dce2dc; border-radius: 7px; background: #fff; }
.listing-filter-chip[aria-pressed="true"] { color: #345443; }
.listing-filter-chip[aria-pressed="true"]::before { background: #e7eee6; border-color: #c6d4c6; }
.listing-filter-clear { flex: none; display: inline-flex; align-items: center; min-height: 44px; padding: 6px 2px; color: #657168; background: transparent; font: 400 11px/1.3 system-ui, sans-serif; text-underline-offset: 3px; }
.listing-filter-clear[hidden] { display: inline-flex; visibility: hidden; }
#listing-results { overflow-anchor: none; }
#listing-filter-status.is-error { position: absolute; z-index: 3; width: auto; height: auto; clip: auto; clip-path: none; overflow: visible; white-space: normal; margin: 0; padding: 6px 10px; border-radius: 6px; background: #fff; color: #924b34; font-size: 12px; }
.listing-filter-signin { display: inline-flex; align-items: center; min-height: 44px; margin-right: 16px; color: #345443; font-size: 13px; font-weight: 600; }
.listing-filter-sort, .listing-filter-reset { display: inline-flex; align-items: center; min-height: 44px; color: #657168; font-size: 12px; font-weight: 400; text-underline-offset: 3px; }
.map-discovery .browse-tools { align-items: center; column-gap: 16px; row-gap: 0; margin: 8px 0 0; }
@media (max-width: 47.99rem) { .listing-filter-bar { flex-basis: 100%; flex-wrap: wrap; } .listing-filter-options { flex: 1; } }
.map-discovery .browse-tools:empty { display: none; }
.map-discovery .count, .map-discovery .count.plain { margin: 12px 0 8px; padding: 0; font-size: 13px; color: #67726a; }
.map-discovery .count .n { font: 700 22px system-ui, sans-serif; }
.map-discovery #restaurant-results ul.feed { display: grid; grid-template-columns: 1fr; grid-auto-rows: 1fr; align-items: stretch; gap: 16px; margin: 12px 0 0; padding: 0; }
.map-discovery .card { position: relative; border: 1px solid #e0e6df; border-radius: 16px; padding: 0; margin: 0; background: white; box-shadow: none; scroll-margin-top: 84px; min-width: 0; }
.map-discovery .card.is-map-selected { border-color: #34795a; box-shadow: 0 0 0 3px #34795a33; }
.map-discovery .card-in { display: flex; flex-direction: column; }
.map-discovery .card .row { padding: 14px; flex: 1; min-width: 0; align-items: stretch; }
.map-discovery .card-in > .row:not(.with-hero) { padding-right: 14px; }
.map-discovery .card .body { display: flex; flex-direction: column; gap: 8px; }
/* Reserve two title lines without removing the full name from accessibility. */
.map-discovery .card .name { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; min-height: 2.5em; font: 650 17px/1.25 system-ui, sans-serif; letter-spacing: -.25px; }
.map-discovery .card-cuisines { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #67766c; font: 400 12px/1.4 system-ui, sans-serif; }
.map-discovery .card-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; min-height: 20px; }
.map-discovery .card .rating { margin: 0; font-size: 13px; }
.map-discovery .card .chips { gap: 6px; margin: 0; align-content: flex-start; }
.map-discovery .card .card-availability { min-height: 48px; }
.map-discovery .card .card-promos { min-height: 26px; margin-top: auto; }
.map-discovery .card .pill { font-size: 11px; border-radius: 6px; white-space: normal; }
.map-discovery .card .metatxt, .map-discovery .card .ready { font-size: 12px; }
.map-discovery .card .hero-img { flex: none; aspect-ratio: 2.2 / 1; height: auto; margin: 0; border-radius: 0; overflow: hidden; background: #e5ece3; }
.map-discovery .card .hero-img::after { display: none; }
.map-discovery .photo-monogram { position: absolute; inset: 0; display: grid; place-items: center; color: #7b9279; font: 600 48px/1 Georgia, serif; background: radial-gradient(ellipse at top right, #f4f7ef, transparent 70%); }
.map-discovery .card .hero-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.map-discovery .card .coin { position: absolute; bottom: 12px; left: 14px; z-index: 1; width: 36px; height: 36px; margin: 0; border: 1px solid #fff; background: #fff; object-fit: contain; box-shadow: 0 1px 5px #1b332322; border-radius: 9px; }
.map-discovery .card .fav { top: 10px; right: 10px; width: 44px; height: 44px; min-height: 44px; border: 1px solid #e3e8e4; box-shadow: 0 1px 5px #1b332322; background: #fff; }
/* Keep both actions independent and aligned, including cards without a map pin
   or an available menu. The map control overlays only the empty footer half. */
.map-discovery .card-footer { display: grid; grid-template-columns: 1fr 1fr; align-items: center; min-height: 50px; border-top: 1px solid #edf0eb; padding: 0 14px; }
.map-discovery .card .menu-link { grid-column: 2; display: flex; justify-content: flex-end; align-items: center; gap: 8px; border: 0; border-radius: 0; background: transparent; margin: 0; padding: 10px 0; font-size: 12px; color: #174e3c; }
.map-discovery .card-map-link { position: absolute; left: 14px; bottom: 0; display: flex; align-items: center; justify-content: flex-start; gap: 5px; width: calc(50% - 14px); min-height: 50px; padding: 10px 0; margin: 0; border: 0; color: #426453; background: transparent; font: 600 12px/1.4 system-ui, sans-serif; cursor: pointer; text-align: left; }
.map-discovery .card-map-link[hidden] { display: none; }
.card-map-link svg { width: 16px; height: 16px; }
.map-discovery .card.off { opacity: 1; }
.map-discovery .card.off .hero-img { opacity: .65; }
.map-discovery .dmd { margin: 12px 0; }
.map-discovery .doors, .map-discovery footer { max-width: 1200px; }
.discovery-map .leaflet-bottom { bottom: 26px; }
.discovery-map .leaflet-control-attribution { font-size: 10px; }
.restaurant-pin { display: flex; align-items: center; gap: 5px; min-height: 32px; width: max-content; max-width: 160px; padding: 4px 8px 4px 4px; border: 1px solid #b3bcb5; border-radius: 20px; background: #fff; color: #263b30; box-shadow: 0 2px 5px #263b3033; font: 700 12px/1.2 system-ui, sans-serif; }
.restaurant-pin::after { content: ''; position: absolute; bottom: -4px; left: 13px; width: 8px; height: 8px; background: #fff; border-right: 1px solid #b3bcb5; border-bottom: 1px solid #b3bcb5; transform: rotate(45deg); }
.restaurant-pin svg { width: 24px; height: 24px; padding: 5px; border-radius: 50%; background: #d75036; color: white; flex: none; }
.restaurant-pin.is-closed svg { background: #77877c; }
.restaurant-pin .pin-name { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.restaurant-pin.is-selected { background: #143e31; color: #fff; border-color: #143e31; }
.restaurant-pin.is-selected::after { background: #143e31; border-color: #143e31; }
.search-point, .device-point { display: block; width: 18px; height: 18px; border: 3px solid white; border-radius: 50%; background: #3579e6; box-shadow: 0 0 0 7px #3579e626, 0 1px 5px #193d6555; }
.search-point { background: white; border-color: #3579e6; }
.discovery-map .map-popup { font: 13px/1.5 system-ui, sans-serif; min-width: 150px; }
.map-popup strong { display: block; font-size: 15px; }
.map-popup p { margin: 4px 0 8px; color: #647568; }
.map-popup button, .map-popup a.map-list-link { display: inline-block; font: 650 12px system-ui, sans-serif; padding: 10px 14px; border: 0; border-radius: 20px; background: #eaf2ed; color: #254f3c; cursor: pointer; text-decoration: none; }
.map-discovery :focus-visible { outline: 3px solid #34795a; outline-offset: 3px; }
@media (min-width: 48rem) {
  .map-discovery .top-in { padding: max(14px, var(--cr-safe-top, 0px)) max(32px, var(--cr-safe-right, 0px)) 14px max(32px, var(--cr-safe-left, 0px)); }
  .map-stage { height: clamp(342px, 45.9svh, 486px); }
  .map-toolbar { top: 24px; }
  .map-discovery .results-sheet { padding: 12px 32px 36px; width: calc(100% - 64px); }
  .map-discovery #restaurant-results ul.feed { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .map-discovery .browse-heading { font-size: 30px; }
  .map-actions { right: max(32px, var(--cr-safe-right, 0px)); }
}
@media (max-width: 359px) {
  .map-discovery .browse-heading { font-size: 24px; }
  .map-toolbar { left: max(10px, var(--cr-safe-left, 0px)); right: max(10px, var(--cr-safe-right, 0px)); }
  .map-discovery .results-sheet { padding-left: 16px; padding-right: 16px; }
  .map-discovery .wordmark { font-size: .93rem; }
  .map-discovery .top-in { gap: 6px; padding-left: max(12px, var(--cr-safe-left, 0px)); padding-right: max(12px, var(--cr-safe-right, 0px)); }
}
.map-discovery .account-badge { display: inline-grid; place-items: center; min-width: 18px; height: 18px; margin-left: 6px; border-radius: 20px; padding: 0 4px; background: #df542a; color: #fff; font-size: 10px; }
.discovery-map { scroll-margin-top: 80px; }
.restaurant-cluster { display: grid; place-items: center; width: 42px; height: 42px; border: 3px solid #fff; border-radius: 50%; background: #174e3c; color: white; box-shadow: 0 0 0 5px #174e3c24, 0 2px 6px #193d3533; font: 750 15px system-ui, sans-serif; }
.restaurant-cluster-icon:focus-visible { outline: 3px solid #de5327; outline-offset: 5px; border-radius: 50%; }

/* The field stays visually part of the search pill when tapped. Keyboard
   navigation gets one ring around the complete control, not an inner box. */
.map-discovery .sk-in:focus, .map-discovery .sk-in:focus-visible { outline: none; box-shadow: none; }
.map-discovery .seek:focus-within { border-color: #dadfdb; box-shadow: 0 3px 12px #172e2424; }
.map-discovery.keyboard-navigation .seek:focus-within { outline: 3px solid #34795a; outline-offset: 3px; }
.map-search-area { position: absolute; top: 84px; left: 50%; transform: translateX(-50%); z-index: 4; border: 1px solid #dce1dd; border-radius: 24px; padding: 11px 17px; min-height: 44px; white-space: nowrap; background: white; color: #244f3e; box-shadow: 0 2px 8px #172e2424; font: 650 13px system-ui, sans-serif; cursor: pointer; }
.map-search-area[hidden] { display: none; }
.map-discovery .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (min-width: 48rem) { .map-search-area { top: 92px; } }
/* Result replacement must not let the browser anchor to a disappearing card. */
html.instant-listing-filters { overflow-anchor: none; }
/* Map art stays edge-to-edge; only interactive controls and list content inset. */
.map-discovery .results-sheet { padding-left: max(20px, var(--cr-safe-left, 0px)); padding-right: max(20px, var(--cr-safe-right, 0px)); }
@media (min-width: 48rem) { .map-discovery .results-sheet { padding-left: max(32px, var(--cr-safe-left, 0px)); padding-right: max(32px, var(--cr-safe-right, 0px)); } }
@media (max-width: 359px) { .map-discovery .results-sheet { padding-left: max(16px, var(--cr-safe-left, 0px)); padding-right: max(16px, var(--cr-safe-right, 0px)); } }
.discovery-map .leaflet-left { left: var(--cr-safe-left, 0px); }
.discovery-map .leaflet-right { right: var(--cr-safe-right, 0px); }

/* Cart priority is ordering, independent of restaurant eligibility filters. */
.listing-cart-option[hidden]{display:none}
.listing-cart-count{font-size:11px;min-width:17px;line-height:17px;text-align:center;border-radius:50%;background:var(--sage,#e9f1eb);color:var(--sage-ink,#244b3d);margin-left:5px}
.card-cart{display:inline-flex;align-items:center;gap:5px;color:var(--sage-ink,#244b3d);font-size:12px;font-weight:650;line-height:1.35}
