.food-greeting, .food-cart, .food-hero-copy, .food-bottom-nav, .food-promo, .food-mobile-only { display:none!important; }
@media (max-width: 991.98px) {
.food-mobile-only { display:inline-block!important; }
.food-desktop-only { display:none!important; }
.food-greeting, .food-hero-copy, .food-promo { display:block!important; }
.food-cart { display:inline-flex!important; }
.food-bottom-nav { display:grid!important; }
.food-store .food-category-icon.food-mobile-only { display:grid!important; }
body.food-store { --primary:#e60000; --secondary:#b90000; --bg:#fff; --surface:#fff; --surface-soft:#fafafa; --text:#191713; --muted:#746c64; --border:#eee; }
/* Vitrine responsiva inspirada na referência. Escopo exclusivo do cardápio público. */
body.food-store {
    --food-accent: #e60000; --food-ink: #191713; --food-muted: #746c64;
    --food-paper: #ffffff; --food-bg: #ffffff; --food-line: #e7e3dc;
    --front-topbar-height: 0px;
    color: var(--food-ink); background: var(--food-bg);
    font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
    padding-bottom: 110px; overflow-x: clip;
}

.food-store .front-topbar { position:relative; inset:auto; height:auto; background:transparent; backdrop-filter:none; padding:28px 24px 18px; z-index:30; }
.food-store .front-topbar-inner { width:min(1180px, 100%); max-width:1180px; margin:auto; padding:0; display:grid; grid-template-columns:56px minmax(0,1fr) 56px; gap:18px; height:auto; }
.food-store .topbar-icon { width:56px; height:56px; border:0; border-radius:18px; background:var(--food-paper); color:var(--food-ink); box-shadow:0 6px 18px #6d381311; align-self:center; }
.food-store .topbar-icon i { color:inherit; font-size:27px; }
.food-greeting { min-width:0; align-self:center; }
.food-greeting span { display:block; font-size:14px; margin-bottom:5px; }
.food-greeting strong { display:block; font-size:clamp(24px,3vw,35px); letter-spacing:-1.2px; line-height:1.12; font-weight:750; }
.food-cart { position:relative; }
.food-store .food-cart { grid-column:3; grid-row:1; }
.food-cart [data-food-cart-count] { position:absolute; top:-4px; right:-3px; display:grid; place-items:center; min-width:23px; height:23px; padding:0 4px; background:var(--food-accent); border:2px solid var(--food-bg); color:#fff; border-radius:50%; font-size:11px; }
.food-store .topbar-search-shell { grid-column:1 / 3; grid-row:2; position:relative!important; inset:auto!important; width:100%!important; max-width:none!important; height:54px; opacity:1!important; visibility:visible!important; pointer-events:auto!important; transform:none!important; display:flex!important; align-items:center; padding:0 20px; border:1px solid #ece7e2; border-radius:30px; background:var(--food-paper); box-shadow:0 6px 16px #6d38130b; }
.food-store .topbar-search-input { width:100%; height:100%; border:0; outline:none; background:transparent; color:var(--food-ink); font-size:16px; padding:0 0 0 12px; }
.food-store .topbar-search-shell:focus-within { border-color:#ddd3ca; box-shadow:0 6px 16px #6d38130b, 0 0 0 3px rgba(236,231,226,.45); }
.food-store .topbar-search-input::placeholder { color:var(--food-muted); }
.food-store .topbar-search-toggle { grid-column:3; grid-row:2; background:var(--food-paper)!important; color:var(--food-ink)!important; border:0!important; }
.food-store .topbar-search-toggle .topbar-search-toggle-open { display:block!important; }
.food-store .topbar-search-toggle .topbar-search-toggle-close { display:none!important; }
.food-store .menu-hero { width:min(1180px,calc(100% - 48px)); margin:0 auto; display:grid; grid-template-columns:minmax(0,1fr); border-radius:28px; overflow:hidden; background:#4c0b03; position:relative; }
.food-store .hero-banner { height:360px; width:100%; border-radius:0; margin:0; position:relative; }
.food-store .hero-banner::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#390700e8 0%,#39070055 49%,transparent 80%); }
.food-store .hero-banner-img { width:100%; height:100%; object-fit:cover; object-position:center 57%; }
.food-hero-copy { position:absolute; top:30px; left:34px; color:#fff; max-width:55%; z-index:2; }
.food-eyebrow { display:inline-flex; align-items:center; gap:6px; background:#b32a11ba; font-size:11px; font-weight:650; padding:6px 12px; border-radius:30px; }
.food-hero-copy h2 { font-size:clamp(30px,4vw,53px); font-weight:750; letter-spacing:-1.4px; line-height:1.04; margin:14px 0 10px; color:#fff; }
.food-hero-copy p { font-size:16px; line-height:1.4; margin:0 0 16px; }
.food-cta { background:var(--food-accent); color:#fff!important; display:inline-flex; align-items:center; gap:16px; padding:10px 12px 10px 20px; border-radius:30px; text-decoration:none; font-size:15px; font-weight:600; }
.food-cta i { display:grid; place-items:center; background:#fff; color:var(--food-accent); border-radius:50%; width:30px; height:30px; }
.food-store .store-panel { position:relative; margin:0; padding:16px 24px; width:100%; max-width:none; border:0; border-radius:0; background:var(--food-paper); box-shadow:none; display:flex; align-items:center; flex-wrap:wrap; gap:8px 16px; text-align:left; color:var(--food-ink); }
.food-store .store-logo-wrap { display:none; }
.food-store .store-title { font-size:18px; margin:0; color:inherit; }
.food-store .store-subtitle { display:none; }
.food-store .store-meta-line { margin:0; display:flex; gap:12px; flex-wrap:wrap; font-size:11px; color:var(--food-muted); }
.food-store .category-strip-wrap { position:relative; top:auto; background:transparent; border:0; box-shadow:none; padding:20px 24px 12px; z-index:1; }
.food-store .category-scroll { width:min(1180px,100%); padding:0 0 8px; margin:auto; display:flex; gap:24px; overflow-x:auto; scrollbar-width:none; -ms-overflow-style:none; -webkit-overflow-scrolling:touch; }
.food-store .category-scroll::-webkit-scrollbar { display:none; width:0; height:0; }
.food-store .chip, .food-store .chip.has-media { flex:0 0 96px; min-width:0; width:96px; height:auto; min-height:0; display:flex; flex-direction:column; justify-content:flex-start; align-items:center; gap:8px; padding:0 0 10px; border:0!important; border-radius:0; background:transparent!important; box-shadow:none!important; color:var(--food-ink); font-size:14px; position:relative; white-space:normal; text-align:center; }
.food-store .chip-media, .food-category-icon { width:90px; height:90px; flex:none; max-width:none; border-radius:50%; object-fit:cover; background:var(--food-paper); padding:4px; box-shadow:0 3px 12px #6d381308; }
.food-category-icon { display:grid; place-items:center; font-size:32px; color:var(--food-accent); }
.food-store .chip.active { color:var(--food-accent)!important; }
.food-store .chip.active::after { content:''; position:absolute; bottom:0; width:28px; height:3px; border-radius:4px; background:var(--food-accent); }
.food-store .chip.active .chip-media, .food-store .chip.active .food-category-icon { outline:2px solid #ffb5b5; background:#fff0f0; }
.food-store .menu-main { width:min(1180px,calc(100% - 48px)); max-width:1180px; margin:0 auto; padding:4px 0 0; background:transparent; }
.food-store .menu-section { margin:16px 0 28px; }
.food-store .menu-section-head { margin-bottom:14px; padding:0; border:0; background:transparent; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.food-store .menu-section-head h2 { color:var(--food-ink); font-size:24px; font-weight:700; letter-spacing:-.7px; }
.food-store .menu-section-head h2 a { text-decoration:none; text-transform:none; }
.food-store .food-see-all { font-size:13px; color:var(--food-accent); text-decoration:none; }
.food-store .section-products { grid-template-columns:repeat(4,minmax(0,1fr))!important; gap:20px; }
.food-store .product-card { display:flex!important; flex-direction:column!important; grid-template-columns:none!important; padding:0!important; gap:0!important; border:1px solid #e8e8e8!important; border-radius:22px!important; overflow:hidden; background:var(--food-paper)!important; box-shadow:0 4px 14px rgba(25, 23, 19, 0.05)!important; min-width:0; height:100%; color:var(--food-ink); }
.food-store .product-card[hidden], .food-store .menu-section[hidden] { display:none!important; }
.food-store .menu-section.is-collapsed .section-products { display:none; }
.food-store .product-thumb-wrap { width:100%!important; height:auto!important; aspect-ratio:1.55; border-radius:0; margin:0!important; flex:none; overflow:hidden; }
.food-store .product-thumb { width:100%!important; height:100%!important; object-fit:cover; border-radius:0; }
.food-store .product-tag { top:10px; left:10px; border-radius:20px; padding:5px 9px; font-size:9px; line-height:1.3; }
.food-store .product-body, .food-store .product-card.has-coupon-timer .product-body { display:flex; flex-direction:column; width:100%; padding:13px; flex:1; min-width:0; }
.food-store .product-body h3 { font-size:17px; line-height:1.2; margin:0; color:var(--food-ink); letter-spacing:-.5px; }
.food-store .product-title-link { color:inherit; text-decoration:none; }
.food-store .product-body .category-name { font-size:10px; color:var(--food-muted); margin:0 0 5px; }
.food-store .product-body p { margin:6px 0 12px; font-size:12px; color:var(--food-muted); line-height:1.4; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.food-store .product-footer { margin-top:auto; padding-top:5px; gap:5px; }
.food-store .price-box strong { color:var(--food-ink); font-size:19px; letter-spacing:-.7px; }
.food-store .btn-add-product { width:40px!important; height:40px!important; min-width:40px; padding:0!important; border-radius:50%!important; background:var(--food-accent)!important; border:0!important; color:#fff!important; display:grid; place-items:center; font-size:22px; box-shadow:none!important; }
.food-store .btn-add-product.is-disabled { background:#a59a90!important; }
.food-store .btn-view-product { display:none; }
.food-store .choose-size-label { font-size:11px; color:var(--food-accent); }
.food-store .top-ordered-section { margin-top:8px; }
.food-store .top-ordered-carousel { display:flex!important; gap:18px; overflow-x:auto; overflow-y:hidden; padding:4px 2px 10px; scroll-snap-type:x proximity; scrollbar-width:none; -ms-overflow-style:none; -webkit-overflow-scrolling:touch; }
.food-store .top-ordered-carousel::-webkit-scrollbar { display:none; width:0; height:0; }
.food-store .top-ordered-carousel .product-card { flex:0 0 260px; max-width:260px; scroll-snap-align:start; }
.food-store .cart-fab { display:none!important; }
.food-bottom-nav { position:fixed; bottom:max(12px,env(safe-area-inset-bottom)); left:50%; transform:translateX(-50%); width:min(520px,calc(100% - 24px)); height:74px; background:var(--food-paper); border:1px solid var(--food-line); border-radius:40px; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); align-items:center; padding:0 10px; z-index:70; box-shadow:0 8px 35px #61340d18; }
.food-bottom-nav a, .food-bottom-nav button { border:0; background:transparent; color:var(--food-muted); text-decoration:none; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; font:inherit; font-size:11px; padding:4px 0; min-width:0; }
.food-bottom-nav i { font-size:24px; line-height:1.2; }
.food-bottom-nav [aria-current='page'] { color:var(--food-accent); }
.food-bottom-nav .food-nav-order { width:76px; height:76px; justify-self:center; margin-top:-12px; background:var(--food-accent); border:4px solid var(--food-bg); color:#fff; border-radius:50%; }
.food-store .catalog-footer { background:transparent; color:var(--food-muted); padding:12px 18px; margin-bottom:0; }
.food-store :is(a,button,input):focus-visible { outline:3px solid #ef8c43; outline-offset:4px; }
@media(min-width:1000px) {
 .food-store .front-topbar-inner { grid-template-columns:56px minmax(220px,1fr) minmax(300px,440px) 56px; }
 .food-store .topbar-search-shell { grid-column:3; grid-row:1; }
 .food-store .food-cart { grid-column:4; grid-row:1; }
 .food-store .topbar-search-toggle { display:none; }
 .food-store .food-greeting strong br { display:none; }
 .food-store .food-greeting strong { font-size:28px; }
}
@media(max-width:1000px) { .food-store .section-products { grid-template-columns:repeat(3,minmax(0,1fr))!important; gap:16px; } }
@media(max-width:600px) {
 .food-store .front-topbar { padding:22px 18px 12px; }
 .food-store .front-topbar-inner { grid-template-columns:46px minmax(0,1fr) 46px; gap:14px; }
 .food-store .topbar-icon { width:46px; height:46px; border-radius:15px; }
 .food-store .food-greeting span { font-size:10px; }
 .food-store .food-greeting strong { font-size:24px; letter-spacing:-1px; }
 .food-store .topbar-search-shell { height:46px; padding:0 14px; }
 .food-store .topbar-search-input { font-size:13px; }
 .food-store .menu-hero { width:calc(100% - 36px); border-radius:22px; }
 .food-store .hero-banner { height:235px; }
 .food-hero-copy { top:18px; left:18px; max-width:70%; }
 .food-eyebrow { font-size:8px; padding:5px 8px; }
 .food-hero-copy h2 { font-size:30px; margin:10px 0 8px; letter-spacing:-1px; }
 .food-hero-copy p { font-size:12px; margin-bottom:10px; }
 .food-cta { font-size:12px; gap:10px; padding:7px 8px 7px 13px; }
 .food-cta i { width:24px; height:24px; }
 .food-store .store-panel { padding:12px 16px; gap:7px 10px; }
 .food-store .store-title { font-size:14px; }
 .food-store .store-meta-line { gap:6px 10px; font-size:10px; }
 .food-store .category-strip-wrap { padding:16px 18px 6px; }
 .food-store .category-scroll { gap:10px; }
 .food-store .chip, .food-store .chip.has-media { flex-basis:76px; width:76px; font-size:11px; gap:6px; }
 .food-store .chip-media, .food-category-icon { width:72px; height:72px; }
 .food-store .menu-main { width:calc(100% - 36px); }
 .food-store .menu-section-head h2 { font-size:20px; }
 .food-store .section-products { grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:12px; }
 .food-store .product-card { border-radius:17px!important; }
 .food-store .product-body, .food-store .product-card.has-coupon-timer .product-body { padding:10px; }
 .food-store .product-body h3 { font-size:14px; }
 .food-store .product-body p { font-size:11px; }
 .food-store .price-box strong { font-size:17px; }
 .food-store .btn-add-product { width:34px!important; height:34px!important; min-width:34px; font-size:19px; }
 .food-store .product-tag { top:7px; left:7px; font-size:8px; padding:4px 6px; }
 .food-store .top-ordered-carousel { gap:12px; padding-bottom:6px; }
 .food-store .top-ordered-carousel .product-card { flex-basis:220px; max-width:220px; }
}
@media(max-width:350px) {
 .food-store .food-greeting strong { font-size:21px; }
 .food-store .food-greeting span { font-size:9px; }
 .food-store .product-footer { flex-wrap:wrap; }
 .food-bottom-nav { width:calc(100% - 16px); padding:0 6px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .food-store * { transition:none!important; } }
.food-store .topbar-search-shell-icon { position:static; transform:none; color:var(--food-ink); flex:none; }
.food-store .topbar-search-input { min-height:0; box-shadow:none; }
.food-store .section-products { align-items:stretch; }
.food-store .product-tag { max-width:100%; }
.food-promo { position:relative; border-radius:24px; overflow:hidden; padding:28px; margin:24px 0; background:linear-gradient(90deg,#ffdebb 0%,#ffdebbec 32%,#ffdebb11 100%),url('../img/pizza-hero.webp') right 60% / cover; color:#351809; }
.food-promo div { position:relative; max-width:65%; }
.food-promo span { color:#c42b06; font-size:14px; font-weight:650; }
.food-promo h2 { font-size:26px; font-weight:700; line-height:1.15; margin:8px 0; }
.food-promo p { font-size:12px; }
.food-promo button { border:0; }
@media(max-width:600px) { .food-promo { padding:20px; } .food-promo h2 { font-size:21px; } .food-promo div { max-width:80%; } }
/* Os cupons acompanham o fluxo vertical dos novos cards em todas as larguras. */
.food-store .product-card.has-coupon-timer .product-body { padding:13px!important; }
.food-store .product-card.has-coupon-timer .product-coupon-timer { position:static!important; inset:auto!important; width:fit-content!important; max-width:100%!important; margin:0 0 10px!important; font-size:10px; }
.food-store .product-card.has-coupon-timer .product-footer .btn-add-product { position:static!important; inset:auto!important; margin:0!important; }
.food-store .store-logo-wrap { display:flex; margin:0; flex:none; }
.food-store .store-logo, .food-store .store-logo-fallback { width:34px; height:34px; border-radius:11px; font-size:17px; border:0; box-shadow:none; }
@media(max-width:600px) { .food-store .product-card.has-coupon-timer .product-body { padding:10px!important; } }

.food-store .hero-banner picture { display:block; height:100%; }
.food-store .product-thumb-wrap picture { display:contents; }
.food-store .topbar-search-input { background:#fff; }
.food-store .food-promo { background:linear-gradient(90deg,#fff 0%,#fffffff2 32%,#ffffff11 100%),url('../img/pizza-hero.webp') right 60% / cover; }
.food-store :is(a,button,input):focus-visible { outline-color:#e60000; }
}
@media (max-width: 991.98px) {
 body.food-store { padding-bottom:88px; }
 .food-store .catalog-footer { margin-top:8px; margin-bottom:0; padding:10px 16px; }
}
@media (max-width: 991.98px) {
 .food-store .product-tag.tag-default, .food-store .product-tag.tag-oferta { background:#e60000!important; border-color:#e60000!important; }
 .food-store .food-eyebrow { background:#c90000; }
}

/* Área dos produtos com fundo branco. */
@media (max-width: 991.98px) {
    body.food-store { background:#fff!important; }
    .food-store .menu-main,
    .food-store .menu-section,
    .food-store .section-products { background:transparent!important; box-shadow:none!important; }
    .food-store .product-card,
    .food-store .product-card:hover { border:1px solid #e7e7e7!important; box-shadow:0 6px 18px rgba(25, 23, 19, 0.06)!important; }
    .food-store .product-thumb-wrap,
    .food-store .product-body { box-shadow:none!important; }
}

/* Com itens no pedido, o acesso ao carrinho acompanha a rolagem no topo do app. */
@media (max-width: 991.98px) {
    .food-store .food-cart.is-floating {
        position:fixed!important;
        top:calc(12px + env(safe-area-inset-top, 0px));
        right:calc(16px + env(safe-area-inset-right, 0px));
        bottom:auto;
        left:auto;
        z-index:80;
        margin:0;
        background:var(--food-accent)!important;
        color:#fff!important;
        border:1px solid var(--food-accent);
        box-shadow:none;
    }
    .food-store .food-cart.is-floating [data-food-cart-count] {
        background:#fff;
        color:var(--food-accent);
        border-color:var(--food-accent);
    }
}

/* Categorias: manter o gesto de rolagem horizontal, sem trilho, polegar ou setas.
   Sobrescreve a regra global de scrollbars (inclusive as declaradas com !important). */
.food-store #categoryFilter.category-scroll {
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none !important;
    -ms-overflow-style: none;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x pan-y;
}
.food-store #categoryFilter.category-scroll::-webkit-scrollbar,
.food-store #categoryFilter.category-scroll::-webkit-scrollbar-track,
.food-store #categoryFilter.category-scroll::-webkit-scrollbar-thumb,
.food-store #categoryFilter.category-scroll::-webkit-scrollbar-button,
.food-store #categoryFilter.category-scroll::-webkit-scrollbar-button:single-button {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    background: transparent !important;
}

/* No desktop, categorias exibem somente os nomes. As imagens/ícones permanecem no mobile. */
@media (min-width: 992px) {
  .food-store .category-scroll .chip-media,
  .food-store .category-scroll .food-category-icon { display:none!important; }
  .food-store .category-scroll .chip,
  .food-store .category-scroll .chip.has-media { flex:0 0 auto; width:auto; min-width:0; padding:10px 4px 12px; gap:0; }
}

/* Ajuste final: cards brancos com contorno discreto, sem qualquer sombra. */
.food-store .product-card,
.food-store .product-card:hover,
.food-store .product-card:focus-within {
    border:1px solid #e8e8e8!important;
    box-shadow:none!important;
}

/* Produtos mais pedidos: mesma altura, rolagem horizontal sem barra nem setas. */
.food-store .top-ordered-carousel {
    display:flex!important;
    align-items:stretch!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scrollbar-width:none!important;
    -ms-overflow-style:none;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-x pan-y;
    scroll-snap-type:x proximity;
}
.food-store .top-ordered-carousel::-webkit-scrollbar,
.food-store .top-ordered-carousel::-webkit-scrollbar-track,
.food-store .top-ordered-carousel::-webkit-scrollbar-thumb,
.food-store .top-ordered-carousel::-webkit-scrollbar-button,
.food-store .top-ordered-carousel::-webkit-scrollbar-button:single-button {
    display:none!important;
    width:0!important;
    height:0!important;
    background:transparent!important;
}
.food-store .top-ordered-carousel > .product-card {
    height:auto!important;
    align-self:stretch!important;
    display:flex!important;
    flex-direction:column!important;
}
.food-store .top-ordered-carousel > .product-card > .product-body {
    flex:1 1 auto!important;
    display:flex!important;
    flex-direction:column!important;
}
.food-store .top-ordered-carousel > .product-card .product-footer { margin-top:auto!important; }

/* Vitrine: fundo branco uniforme e sete produtos visíveis por vez no desktop. */
@media (max-width: 991.98px) {
 body.food-store { background-color:#fff!important; }
 .food-store .menu-main, .food-store .menu-section, .food-store .section-products { background-color:transparent!important; }
}

.food-store #topOrderedSection .top-ordered-carousel {
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:stretch!important;
    width:100%;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scroll-behavior:smooth;
    overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none!important;
    -ms-overflow-style:none;
    touch-action:pan-x pan-y;
}
.food-store #topOrderedSection .top-ordered-carousel::-webkit-scrollbar,
.food-store #topOrderedSection .top-ordered-carousel::-webkit-scrollbar-track,
.food-store #topOrderedSection .top-ordered-carousel::-webkit-scrollbar-thumb,
.food-store #topOrderedSection .top-ordered-carousel::-webkit-scrollbar-button { display:none!important; width:0!important; height:0!important; }
.food-store #topOrderedSection .top-ordered-carousel > .product-card {
    height:auto!important;
    min-width:0!important;
    scroll-snap-align:start;
    align-self:stretch;
    border:1px solid #e8e8e8!important;
    box-shadow:none!important;
}

@media (max-width: 991.98px) {
    .food-store #topOrderedSection .top-ordered-carousel > .product-card {
        flex:0 0 220px!important; width:220px!important; max-width:220px!important;
    }
}
@media (max-width: 480px) {
    .food-store #topOrderedSection .top-ordered-carousel > .product-card {
        flex:0 0 70%!important; width:70%!important; max-width:250px!important;
    }
}


/* Cabeçalho do catálogo no desktop: banner amplo e cartão sobreposto. */
@media (min-width: 992px) {
  .food-store .menu-hero {
    display: block;
    width: calc(100% - 40px);
    max-width: none;
    margin: 14px auto 0;
    overflow: visible;
    border-radius: 0;
    background: transparent;
  }
  .food-store .hero-banner {
    width: 100%;
    height: clamp(300px, 24vw, 410px);
    border-radius: 22px;
    overflow: hidden;
    background: #e8e8e8;
  }
  .food-store .hero-banner picture { display: block; height: 100%; }
  .food-store .hero-banner-img { width: 100%; height: 100%; object-fit: cover; }
  .food-store .hero-banner::after { display: none; }
  .food-store .store-panel {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr) 18px;
    grid-template-rows: auto auto auto;
    align-items: center;
    column-gap: 20px;
    row-gap: 5px;
    width: min(760px, calc(100% - 48px));
    min-height: 150px;
    margin: -105px auto 0;
    padding: 22px 26px;
    border: 1px solid #e5e7eb;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(15, 23, 42, .025);
    color: #151515;
    text-align: left;
  }
  .food-store .store-logo-wrap {
    grid-column: 1;
    grid-row: 1 / 4;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
  }
  .food-store .store-logo,
  .food-store .store-logo-fallback {
    width: 96px;
    height: 96px;
    border: 2px solid #fff;
    border-radius: 50%;
    box-shadow: 0 2px 9px rgba(0, 0, 0, .12);
    object-fit: cover;
  }
  .food-store .store-title {
    grid-column: 2;
    grid-row: 1;
    margin: 0;
    font-size: clamp(21px, 1.65vw, 27px);
    font-weight: 750;
    line-height: 1.2;
    color: #131313;
  }
  .food-store .store-subtitle { display: none; }
  .food-store .status-badge {
    grid-column: 2;
    grid-row: 2;
    justify-self: start;
    margin: 0;
    padding: 0;
    border-radius: 0;
    background: transparent;
    font-size: 15px;
    font-weight: 700;
  }
  .food-store .status-badge.closed { color: #df222a; }
  .food-store .status-badge.open { color: #16824c; }
  .food-store .status-badge::before {
    content: '';
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-right: 8px;
    border-radius: 50%;
    background: currentColor;
    vertical-align: 1px;
  }
  .food-store .store-meta-line {
    grid-column: 2;
    grid-row: 3;
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
    margin: 4px 0 0;
    font-size: 13px;
    font-weight: 600;
    color: #555;
  }
  .food-store .store-meta-line > span {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 7px 12px;
    border-radius: 999px;
    background: #f2f2f3;
    white-space: nowrap;
  }
  .food-store .store-meta-line .store-review-btn,
  .food-store .store-meta-line .store-more-btn { font-size: 12px; }
  .food-store .category-strip-wrap { padding-top: 2px; padding-bottom: 2px; }
}



/* Correção da vitrine "Produtos mais pedidos" no desktop.
   Usa a largura da tela, não a coluna limitada de 1180px, para evitar cards comprimidos. */
@media (min-width: 992px) {
  .food-store #topOrderedSection {
    width: calc(100vw - 80px);
    max-width: none;
    margin-left: calc(50% - 50vw + 40px);
    margin-right: 0;
    box-sizing: border-box;
  }
  .food-store #topOrderedSection .top-ordered-carousel {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 14px !important;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none;
    scroll-snap-type: x mandatory;
  }
  .food-store #topOrderedSection .top-ordered-carousel::-webkit-scrollbar,
  .food-store #topOrderedSection .top-ordered-carousel::-webkit-scrollbar-track,
  .food-store #topOrderedSection .top-ordered-carousel::-webkit-scrollbar-thumb,
  .food-store #topOrderedSection .top-ordered-carousel::-webkit-scrollbar-button {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
  }
  .food-store #topOrderedSection .top-ordered-carousel > .product-card {
    flex: 0 0 max(175px, calc((100% - 84px) / 7)) !important;
    width: max(175px, calc((100% - 84px) / 7)) !important;
    min-width: max(175px, calc((100% - 84px) / 7)) !important;
    max-width: max(175px, calc((100% - 84px) / 7)) !important;
    box-sizing: border-box !important;
    min-height: 0;
    overflow: hidden;
    transform: none !important;
  }
  .food-store #topOrderedSection .product-body {
    min-width: 0;
    box-sizing: border-box;
  }
  .food-store #topOrderedSection .product-body h3,
  .food-store #topOrderedSection .product-body p {
    overflow-wrap: anywhere;
    word-break: normal;
  }
  .food-store #topOrderedSection .product-footer {
    min-width: 0;
    flex-wrap: wrap;
    row-gap: 8px;
    align-items: flex-end;
  }
  .food-store #topOrderedSection .product-footer > * { min-width: 0; }
}

/* Mostra Produtos mais pedidos apenas no layout responsivo. */
@media (min-width: 992px) {
  .food-store #topOrderedSection { display: none !important; }
}

/* Fundo branco uniforme do cardápio em todos os tamanhos de tela. */
body.food-store {
    --bg: #ffffff;
    background: #ffffff !important;
}

/* Banner contínuo no cabeçalho do popup de informações da loja. */
#storeInfoModal .store-info-hero {
    position:relative;
    isolation:isolate;
    background-size:cover;
    background-position:center;
    background-color:#181818;
    overflow:hidden;
}
#storeInfoModal .store-info-hero::before {
    content:'';
    position:absolute;
    inset:0;
    z-index:0;
    pointer-events:none;
    background:linear-gradient(180deg, rgba(0,0,0,.18) 0%, rgba(0,0,0,.40) 42%, rgba(0,0,0,.78) 100%);
}
#storeInfoModal .store-info-hero .store-info-cover {
    position:relative;
    z-index:1;
    background:transparent;
}
#storeInfoModal .store-info-hero .store-info-cover::after { display:none; }
#storeInfoModal .store-info-hero .store-info-header {
    position:relative;
    z-index:2;
    background:transparent!important;
    color:#fff;
    padding-bottom:18px;
}
#storeInfoModal .store-info-hero .store-info-name { color:#fff; text-shadow:0 2px 8px rgba(0,0,0,.35); }
#storeInfoModal .store-info-hero .store-info-meta {
    background:rgba(0,0,0,.22)!important;
    border-color:rgba(255,255,255,.3);
    color:#fff!important;
}

/* Mantém logo e nome visíveis: o cabeçalho não pode ser comprimido pelo modal. */
#storeInfoModal .modal-content {
    overflow-y:auto;
    overflow-x:hidden;
}
#storeInfoModal .store-info-hero {
    flex:0 0 auto;
    min-height:min-content;
}
#storeInfoModal .store-info-hero .store-info-header {
    display:flow-root;
    overflow:visible;
}
#storeInfoModal .store-info-hero .store-info-logo { position:relative; z-index:3; }
#storeInfoModal .store-info-hero .store-info-logo img { display:inline-block; }
#storeInfoModal .store-info-hero .store-info-name { display:block; overflow-wrap:anywhere; }
#storeInfoModal .modal-body {
    flex:0 0 auto;
    overflow:visible;
}

/* Identidade do cliente autenticado junto ao carrinho. */
.topbar-customer-account {
    display:inline-flex; align-items:center; gap:9px; min-width:0;
    max-width:260px; margin-left:auto; margin-right:12px;
    color:var(--text, #191713); text-decoration:none;
}
.topbar-customer-avatar {
    display:grid; place-items:center; flex:0 0 40px; width:40px; height:40px;
    border-radius:50%; overflow:hidden; background:#f3f4f6; color:var(--primary); font-size:23px;
}
.topbar-customer-avatar img { width:100%; height:100%; object-fit:cover; }
.topbar-customer-avatar [hidden] { display:none!important; }
.topbar-customer-copy { display:flex; flex-direction:column; min-width:0; line-height:1.25; }
.topbar-customer-copy small { font-size:11px; color:var(--muted, #64748b); }
.topbar-customer-copy strong { font-size:13px; font-weight:500; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@media(max-width:380px) {
    .food-store .topbar-customer-account { gap:6px; }
    .food-store .topbar-customer-avatar { width:34px; height:34px; flex-basis:34px; }
    .food-store .topbar-customer-copy { max-width:110px; }
    .food-store .topbar-customer-copy strong { font-size:12px; }
}

/* Cabeçalho compacto no popup da loja. */
#storeInfoModal .store-info-hero .store-info-cover { height:110px; }
#storeInfoModal .store-info-hero .store-info-header { padding:0 16px 14px; }
#storeInfoModal .store-info-hero .store-info-logo { margin-top:-30px; margin-bottom:7px; }
#storeInfoModal .store-info-hero .store-info-logo img,
#storeInfoModal .store-info-hero .store-info-logo span { width:76px; height:76px; }
#storeInfoModal .store-info-hero .store-info-name { font-size:clamp(20px, 3vw, 26px); line-height:1.2; }
#storeInfoModal .store-info-hero .store-info-meta { margin-top:9px; padding:8px 10px; }
@media(max-width:575.98px) {
    #storeInfoModal .store-info-hero .store-info-cover { height:94px; }
    #storeInfoModal .store-info-hero .store-info-logo img,
    #storeInfoModal .store-info-hero .store-info-logo span { width:66px; height:66px; }
    #storeInfoModal .store-info-hero .store-info-logo { margin-top:-26px; }
}

/* Opções de entrega lado a lado também no celular. */
@media(max-width:768px) {
    #storeInfoModal .store-delivery-grid {
        grid-template-columns:repeat(3,minmax(0,1fr));
        gap:6px;
    }
    #storeInfoModal .store-delivery-card { min-width:0; padding:10px 4px; }
    #storeInfoModal .store-delivery-card strong {
        font-size:clamp(10px,2.7vw,13px);
        line-height:1.25;
        overflow-wrap:anywhere;
    }
}

/* Formas de pagamento: ícones das configurações, sem rótulos visuais. */
#storeInfoModal .store-payment-icons { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
#storeInfoModal .store-payment-icons .store-payment-icon {
    display:inline-flex; align-items:center; justify-content:center;
    width:48px; height:48px; padding:4px; border:0!important;
    border-radius:0; background:transparent!important;
}
#storeInfoModal .store-payment-icon img { display:block; width:40px; height:40px; object-fit:contain; }

/* Links de avaliações e informações sem sublinhado. */
.food-store .store-review-btn,
.food-store .store-review-btn:hover,
.food-store .store-review-btn:focus-visible,
.food-store .store-more-btn,
.food-store .store-more-btn:hover,
.food-store .store-more-btn:focus-visible { text-decoration:none!important; }

/* Promoção: preço anterior riscado ao lado do valor atual em verde. */
.food-store .product-card .price-box.has-sale-price {
    display:flex;flex-direction:row;align-items:baseline;flex-wrap:wrap;gap:4px 6px;
}
.food-store .product-card .price-box.has-sale-price .price-old {
    display:inline;margin:0;color:#202020;font-size:13px;font-weight:400;
    line-height:1.3;text-decoration:line-through;
}
.food-store .product-card .price-box.has-sale-price > strong {
    display:inline;color:#35b96f;font-size:18px;font-weight:600;letter-spacing:0;line-height:1.3;
}
body[data-front-theme='dark'].food-store .product-card .price-box.has-sale-price .price-old { color:#d1d5db; }

/* No desktop, o acesso flutuante ao carrinho aparece apenas quando há itens. */
@media(min-width:992px) {
    body.food-store:not(.has-cart-items) .cart-fab,
    body.food-store:not(.has-cart-items) .food-cart { display:none!important; }
}

/* Percentual calculado do desconto promocional de cada produto. */
.food-store .product-discount-percent {
    display:inline-flex;align-items:center;gap:3px;padding:3px 6px;
    border-radius:6px;background:#e6f7ed;color:#21864e;
    font-size:10px;font-weight:600;line-height:1.2;white-space:nowrap;
}
.food-store .product-discount-percent i { font-size:12px; }

/* Consulta de entrega na barra superior. */
.topbar-delivery { min-width:0;margin-left:12px; }
.topbar-delivery-trigger { display:flex;align-items:center;gap:9px;max-width:100%;border:1px dashed #dedee3;border-radius:999px;background:#f7f7f8;color:#171717;padding:9px 14px;font:inherit;font-size:12px;line-height:1.3; }
.topbar-delivery-trigger > span { overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.topbar-delivery-menu { width:min(360px,calc(100vw - 24px));padding:18px;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 12px 32px #0001;background:#fff;color:#191919; }
.topbar-delivery-menu > small { display:block;color:#888;font-size:10px;letter-spacing:.7px;font-weight:600;margin-bottom:10px; }
.topbar-delivery-choice { display:flex;align-items:center;gap:13px;cursor:pointer;padding:12px 0; }
.topbar-delivery-choice > i { font-size:23px; }
.topbar-delivery-choice > input { margin-left:auto;accent-color:var(--primary);width:20px;height:20px;flex-shrink:0; }
.topbar-delivery-choice strong { font-size:15px; }
.topbar-delivery-choice small { display:block;color:#888;font-size:12px; }
#topbarDeliveryDetails[hidden] { display:none!important; }
@media(max-width:991.98px) {
    .food-store .topbar-delivery { grid-column:1 / -1;grid-row:3;margin:0;justify-self:start;max-width:100%; }
    .food-store .topbar-delivery-trigger { font-size:11px;padding:9px 12px; }
}
/* Seletor de endereço, GPS e confirmação de ponto no mapa. */
.topbar-delivery-open { width:100%;border:0;background:transparent;text-align:left;color:inherit;font:inherit; }
.address-picker-modal .modal-dialog { max-width:660px; }
.address-picker-modal .modal-content { background:#fff;color:#191919;border:0;border-radius:18px;overflow:hidden; }
.address-picker-modal .modal-title { font-size:18px;font-weight:600; }
.address-picker-modal .modal-body { padding:18px; }
.address-picker-option { display:flex;align-items:center;gap:14px;width:100%;padding:20px 14px;border:1px solid #e3e3e7;border-radius:14px;background:#fff;color:#191919;text-align:left;margin-bottom:12px; }
.address-picker-option > i:first-child { font-size:24px; }
.address-picker-option > i:last-child { margin-left:auto; }
.address-picker-option span { flex:1; }
.address-picker-option strong,.address-picker-option small { display:block; }
.address-picker-option strong { font-size:15px;font-weight:600; }
.address-picker-option small { font-size:12px;color:#888;margin-top:4px; }
.address-picker-option[hidden],#addressPickerConfirm[hidden],#addressPickerStart[hidden] { display:none!important; }
.address-picker-manual { padding:18px;border:1px solid #e3e3e7;border-radius:14px; }
.address-picker-manual > small { display:block;color:#888;font-size:12px;margin:4px 0 14px; }
#addressPickerSearchForm { display:flex;gap:8px; }
#addressPickerSearchForm input { min-width:0; }
#addressPickerMap { height:300px;max-height:45dvh;border-radius:12px;background:#f2f3f5;margin:12px 0;z-index:0; }
.address-picker-result { display:block;width:100%;background:#fff;border:0;border-bottom:1px solid #eee;text-align:left;padding:12px;font-size:13px; }
.address-picker-save { display:flex;gap:8px;align-items:center;margin:16px 0 5px;font-size:13px; }
.address-picker-modal .form-label { font-size:12px;margin-bottom:4px; }
.address-picker-modal .form-control { font-size:14px; }
#addressPickerSummary { font-size:13px;margin:6px 0; }
@media(max-width:575px) { .address-picker-modal .modal-dialog { margin:10px; } .address-picker-modal .modal-body { padding:14px; } }

/* No celular, consulta de entrega ao lado do botão de menu. */
@media(max-width:991.98px) {
    .food-store .front-topbar-inner > .menu-bars-btn { grid-column:1;grid-row:1; }
    .food-store .topbar-delivery { grid-column:2;grid-row:1;justify-self:stretch;width:100%;min-width:0;margin:0;align-self:center; }
    .food-store .topbar-delivery-trigger { width:100%;min-width:0;gap:6px;padding:9px 10px; }
    .food-store .topbar-delivery-trigger > i { flex-shrink:0; }
}

#addressPickerFields[hidden] { display:none!important; }

/* Evita sobreposição de localização e carrinho no celular. */
@media(max-width:991.98px) {
    .food-store .front-topbar-inner { column-gap:10px; }
    .food-store .food-cart,
    .food-store .food-cart.is-floating {
        position:relative!important;grid-column:3;grid-row:1;
        top:auto!important;right:auto!important;bottom:auto!important;left:auto!important;
        justify-self:end;align-self:center;flex-shrink:0;transform:none;
        min-width:46px;min-height:46px;overflow:visible;
    }
    .food-store .food-cart > i { line-height:1;flex-shrink:0; }
    .food-store .topbar-delivery { position:static;min-width:0; }
    .food-store .topbar-delivery-menu {
        position:fixed!important;
        top:var(--delivery-menu-top, 80px)!important;
        left:12px!important;right:12px!important;bottom:auto!important;
        transform:none!important;margin:0!important;
        width:calc(100vw - 24px);min-width:0;max-width:none;
        max-height:calc(100dvh - var(--delivery-menu-top,80px) - 12px);
        overflow-y:auto;z-index:1000;
    }
}

/* Localização: popup compacto com opções agrupadas, inspirado na referência. */
#addressPickerModal .modal-dialog { max-width:700px;margin:24px auto;align-items:flex-start;min-height:calc(100% - 48px); }
#addressPickerModal .modal-content { background:#fff!important;color:#222;border-radius:14px; }
#addressPickerModal .modal-header { padding:18px 16px;border-bottom:1px solid #e5e5e5; }
#addressPickerModal .modal-title { font-size:18px;line-height:1.3;letter-spacing:-.3px; }
#addressPickerModal .btn-close { width:20px;height:20px;background-color:#f7f7f7;border-radius:50%;padding:10px;opacity:.8;filter:none; }
#addressPickerModal .address-picker-body { position:relative;padding:18px 16px;background:#fff!important;color:#222; }
#addressPickerStart h6 { font-size:17px;font-weight:600;margin:0 0 16px; }
.address-picker-options { border:1px solid #dedee3;border-radius:18px;box-shadow:0 2px 6px #00000008;overflow:hidden;background:#fff; }
#addressPickerModal .address-picker-option { border:0;border-bottom:1px solid #dedee3;border-radius:0;margin:0;padding:22px 20px;gap:14px; }
#addressPickerModal .address-picker-option > i:first-child,
.address-picker-manual-heading > i { display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border-radius:50%;background:#f7f7f7;color:#222;font-size:23px; }
#addressPickerModal .address-picker-option > span:first-of-type { flex:1;min-width:0; }
#addressPickerModal .address-picker-option .address-picker-select-label { flex:0 0 auto;color:#888;font-size:12px; }
#addressPickerModal .address-picker-option > i:last-child { font-size:18px;color:#888; }
#addressPickerModal .address-picker-option strong { font-size:16px;line-height:1.4; }
#addressPickerModal .address-picker-option small { font-size:13px;line-height:1.5;color:#888; }
#addressPickerModal .address-picker-manual { border:0;border-radius:0;padding:30px 24px 20px;text-align:center; }
.address-picker-manual-heading { display:flex;justify-content:center;align-items:center;gap:12px;text-align:left;margin-bottom:18px; }
.address-picker-manual-heading strong { display:block;font-size:16px;font-weight:600; }
.address-picker-manual-heading small { display:block;color:#888;font-size:13px;margin-top:3px; }
#addressPickerSearchForm { max-width:440px;margin:0 auto;border:2px dashed #dedee3;padding:4px;gap:4px; }
#addressPickerSearchForm input { border:0;box-shadow:none;font-size:14px;padding:10px; }
#addressPickerSearchForm .btn-dark { padding:10px 18px;background:#222;border-color:#222;border-radius:9px;text-transform:uppercase;font-size:12px;font-weight:600; }
#addressPickerManual { margin-top:12px;font-size:12px;color:#777;text-decoration:none; }
.address-picker-summary-card { background:#fff;border:1px solid #e4e4e4;padding:14px;border-radius:12px;margin-top:8px; }
#addressPickerModal #addressPickerMap { height:380px;max-height:50dvh;margin-top:10px; }
#addressPickerModal #addressPickerStatus:empty { display:none; }
/* Indicador de pontos circular, no estilo do carregamento do Windows. */
.address-picker-loading { position:absolute;inset:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:28px;background:rgba(255,255,255,.94);text-align:center;min-height:200px; }
.address-picker-loading[hidden] { display:none!important; }
.address-picker-loading strong { max-width:350px;font-size:15px;font-weight:500;color:#222; }
.address-picker-loading small { font-size:12px;color:#888; }
.address-picker-windows-spinner { width:48px;height:48px;position:relative;margin-bottom:8px;animation:address-windows-turn 2s linear infinite; }
.address-picker-windows-spinner span { position:absolute;inset:0;transform:rotate(calc(var(--dot) * 45deg)); }
.address-picker-windows-spinner span::before { content:'';display:block;width:5px;height:5px;margin:0 auto;border-radius:50%;background:#222;animation:address-windows-dot 1.1s linear infinite;animation-delay:calc(var(--dot) * -.1375s); }
@keyframes address-windows-turn { to { transform:rotate(360deg); } }
@keyframes address-windows-dot { 0%,20% { opacity:1; } 80%,100% { opacity:.12; } }
@media(prefers-reduced-motion:reduce) { .address-picker-windows-spinner { animation:none; } .address-picker-windows-spinner span::before { animation:none;opacity:.6; } }
@media(max-width:767px) {
    #addressPickerModal .modal-dialog { margin:12px;max-width:calc(100% - 24px);min-height:calc(100% - 24px); }
    #addressPickerModal .modal-title { font-size:16px; }
    #addressPickerModal .address-picker-body { padding:16px 12px; }
    #addressPickerModal .address-picker-option { padding:18px 12px;gap:10px; }
    #addressPickerModal .address-picker-option strong { font-size:14px; }
    #addressPickerModal .address-picker-option small { font-size:12px; }
    #addressPickerModal .address-picker-option .address-picker-select-label { display:none; }
    #addressPickerModal .address-picker-manual { padding:24px 12px 16px; }
    .address-picker-manual-heading strong { font-size:14px; }
    .address-picker-manual-heading small { font-size:12px; }
    #addressPickerSearchForm .btn-dark { padding:10px 12px; }
}

/* Etapas do endereço e ações com a cor configurada da loja. */
#addressPickerDetails[hidden], #addressPickerMapStep[hidden], #addressPickerAdjust[hidden] { display:none!important; }
#addressPickerModal .btn-dark { background:var(--primary);border-color:var(--primary);color:#fff; }
#addressPickerModal .btn-dark:hover, #addressPickerModal .btn-dark:focus-visible { background:var(--secondary,var(--primary));border-color:var(--secondary,var(--primary));color:#fff; }
#addressPickerModal .btn-outline-dark, #addressPickerModal .btn-outline-secondary { color:var(--primary);border-color:var(--primary);background:#fff; }
#addressPickerModal .btn-outline-dark:hover, #addressPickerModal .btn-outline-secondary:hover { color:#fff;background:var(--primary);border-color:var(--primary); }
#addressPickerModal #addressPickerManual { color:var(--primary); }
#addressPickerSave { accent-color:var(--primary); }
#addressPickerModal .address-picker-windows-spinner span::before { background:var(--primary); }

/* Popup estreito e mapa ocupando toda a área de confirmação. */
#addressPickerModal .modal-dialog { width:calc(100% - 24px);max-width:520px;margin:12px auto;min-height:calc(100% - 24px); }
#addressPickerModal.address-picker-map-active .modal-header { display:none; }
#addressPickerModal.address-picker-map-active .address-picker-body { padding:0; }
#addressPickerMapStep { position:relative; }
#addressPickerModal.address-picker-map-active #addressPickerMap { width:100%;height: min(70dvh,580px);min-height:280px;max-height:none;margin:0;border-radius:0; }
#addressPickerModal.address-picker-map-active .address-picker-summary-card { position:absolute;top:72px;left:12px;right:12px;z-index:500;margin:0;padding:12px 14px;border:0;border-radius:8px;box-shadow:0 2px 8px #0002;pointer-events:none; }
#addressPickerModal.address-picker-map-active #addressPickerBack { position:absolute;top:16px;left:16px;z-index:600;width:40px;height:40px;padding:0;margin:0!important;border:2px solid #fff;border-radius:50%;background:var(--primary);color:#fff;font-size:0;display:grid;place-items:center;box-shadow:0 2px 6px #0003; }
#addressPickerModal.address-picker-map-active #addressPickerBack i { font-size:24px; }
#addressPickerModal.address-picker-map-active #addressPickerMapStep > small { position:absolute;bottom:26px;left:12px;right:12px;z-index:500;padding:6px 10px;border-radius:6px;background:#fffffff0;font-size:11px;pointer-events:none; }
#addressPickerModal.address-picker-map-active .address-picker-actions { margin:0!important;padding:16px 14px;background:#fff; }
#addressPickerModal .address-picker-actions .btn { min-height:46px; }
#addressPickerModal.address-picker-map-active #addressPickerStatus:not(:empty) { margin:0!important;padding:0 14px 12px;background:#fff; }
#addressPickerModal.address-picker-map-active .leaflet-top.leaflet-left { top:auto;bottom:58px; }
@media(max-width:575px) {
    #addressPickerModal.address-picker-map-active #addressPickerMap { height:65dvh;min-height:260px; }
    #addressPickerModal.address-picker-map-active .address-picker-summary-card strong { font-size:14px; }
}

/* Ação do formulário centralizada; no celular ocupa toda a largura. */
#addressPickerModal:not(.address-picker-map-active) .address-picker-actions { justify-content:center; }
#addressPickerModal:not(.address-picker-map-active) #addressPickerConfirmBtn { width:auto!important;min-width:250px;max-width:100%; }
#addressPickerModal .address-picker-actions .btn i { margin-right:5px; }
@media(max-width:767px) {
    #addressPickerModal:not(.address-picker-map-active) #addressPickerConfirmBtn { width:100%!important;min-width:0; }
}

/* Não anima esqueletos de produtos antes de entrarem na tela. */

/* Bootstrap 5: perfil junto da busca no desktop e do carrinho no mobile. */
.topbar-account-actions { min-width:0; }
.topbar-account-actions .topbar-customer-account { margin:0; }
.topbar-customer-account:focus-visible { outline:3px solid var(--primary);outline-offset:4px;border-radius:999px; }
@media(min-width:992px) {
    .topbar-account-actions .topbar-customer-copy { max-width:160px; }
}
@media(max-width:991.98px) {
    .food-store .front-topbar-inner { grid-template-columns:56px minmax(0,1fr) auto; }
    .food-store .topbar-account-actions { grid-column:3;grid-row:1;justify-self:end;align-self:center; }
    .food-store .topbar-account-actions .topbar-customer-account { flex-shrink:0; }
    .food-store .topbar-account-actions .topbar-customer-copy {
        /* O nome continua acessível, sem ocupar espaço na barra compacta. */
        position:absolute;width:1px;height:1px;padding:0;margin:-1px;
        overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
    }
    .food-store .topbar-account-actions .topbar-customer-avatar { width:40px;height:40px;flex-basis:40px; }
}
@media(max-width:600px) {
    .food-store .front-topbar-inner { grid-template-columns:46px minmax(0,1fr) auto; }
}

/* Identidade da loja no celular: logo maior e circular, nome com quebra natural. */
@media(max-width:991.98px) {
    .food-store .store-panel {
        display:grid;grid-template-columns:72px minmax(0,1fr);
        column-gap:12px;row-gap:6px;align-items:center;
    }
    .food-store .store-logo-wrap {
        grid-column:1;grid-row:1 / 3;align-self:center;
        display:flex;align-items:center;justify-content:center;
        box-sizing:border-box;width:72px;height:72px;margin:0;padding:6px;
        border:1px solid #e5e7eb;border-radius:50%;background:#fff;
        box-shadow:0 2px 10px rgba(15,23,42,.045);overflow:hidden;
    }
    .food-store .store-logo,
    .food-store .store-logo-fallback {
        box-sizing:border-box;width:100%;height:100%;margin:0;border:0;
        border-radius:50%;object-fit:contain;box-shadow:none;
    }
    .food-store .store-logo-fallback { display:grid;place-items:center;font-size:26px; }
    .food-store .store-title {
        grid-column:2;grid-row:1;min-width:0;margin:0;
        white-space:normal;overflow-wrap:anywhere;line-height:1.35;text-align:left;
    }
    .food-store .store-panel > .status-badge {
        grid-column:2;grid-row:2;justify-self:start;align-self:start;margin:0;
    }
    .food-store .store-meta-line { grid-column:1 / -1;grid-row:3;min-width:0; }
}

/* Contorno contínuo do cartão da loja no responsivo. */
@media(max-width:991.98px) {
    .food-store .menu-hero { border-radius:22px;background:#fff; }
    .food-store .store-panel {
        box-sizing:border-box;border:1px solid #e2e8f0;
        border-radius:0 0 22px 22px;background:#fff;
    }
}


/* Aproxima o banner da categoria dos produtos anteriores no celular/tablet. */
@media(max-width:991.98px) {
    .food-store #productsGrid .menu-section.has-category-banner {
        margin-top:0;padding-top:0;
    }
    .food-store #productsGrid .menu-section:has(+ .menu-section.has-category-banner) {
        margin-bottom:12px;
    }
}



/* Somente no responsivo: ocultar o botão de lupa e expandir o campo de busca.
   A apresentação do desktop permanece a original. */
@media (max-width: 991.98px) {
    .food-store .topbar-search-toggle { display: none !important; }
    .food-store .front-topbar-inner > .topbar-search-shell {
        grid-column: 1 / -1 !important;
        grid-row: 2 !important;
        justify-self: stretch;
        width: 100% !important;
        min-width: 0;
        max-width: none !important;
        box-sizing: border-box;
        margin: 0 !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }
}


/* V157: apenas a barra superior do cardápio fica fixa durante a rolagem
   em celulares e tablets. Categorias e conteúdo seguem a rolagem normal. */
@media (max-width: 991.98px) {
    body.food-store .front-topbar {
        position: sticky;
        top: 0;
        z-index: 60;
        background: var(--food-paper, #fff);
        border-bottom: 1px solid var(--food-line, #e7e3dc);
        box-shadow: 0 3px 14px rgba(25, 23, 19, 0.06);
    }

    body.food-store .category-strip-wrap {
        position: relative;
        top: auto;
        z-index: 1;
        background: transparent;
        border: 0;
        box-shadow: none;
    }
}


/* V159: no celular a barra fixa contém exclusivamente menu, entrega, conta e carrinho.
   A busca é movida pelo JS para uma linha independente que rola com o cardápio. */
@media (max-width: 991.98px) {
    body.food-store .front-topbar {
        position: sticky;
        top: 0;
        z-index: 60;
        padding: 10px 14px !important;
        box-shadow: 0 4px 16px rgba(15, 23, 42, .075);
        background: rgba(255,255,255,.985);
    }
    body.food-store .front-topbar-inner {
        display: grid;
        grid-template-columns: 42px minmax(0,1fr) auto;
        grid-template-rows: minmax(44px,auto);
        align-items: center;
        gap: 8px;
        padding: 0;
        max-width: 700px;
        margin: 0 auto;
    }
    body.food-store .front-topbar-inner > .menu-bars-btn {
        grid-row: 1;
        grid-column: 1;
        width: 42px;
        height: 44px;
        border-radius: 14px;
        box-shadow: 0 2px 10px rgba(15,23,42,.04);
    }
    body.food-store .front-topbar-inner > .topbar-delivery {
        grid-row: 1;
        grid-column: 2;
        max-width: 100%;
        min-width: 0;
        width: 100%;
        margin: 0;
    }
    body.food-store .topbar-delivery-trigger {
        width: 100%;
        min-width: 0;
        min-height: 42px;
        padding: 8px 10px;
        font-size: 11.5px;
        border-radius: 999px;
    }
    body.food-store .topbar-delivery-trigger #topbarDeliveryLabel {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    body.food-store .front-topbar-inner > .topbar-account-actions {
        grid-row: 1;
        grid-column: 3;
        display: flex;
        align-items: center;
        gap: 6px !important;
        margin: 0;
    }
    body.food-store .topbar-account-actions .topbar-customer-avatar {
        width: 40px;
        height: 40px;
        flex-basis: 40px;
    }
    body.food-store .food-cart,
    body.food-store .food-cart.is-floating {
        width: 44px;
        height: 44px;
        min-width: 44px;
        min-height: 44px;
        border-radius: 14px;
        grid-row: 1;
    }
    body.food-store .mobile-search-host {
        display: block;
        position: relative;
        width: 100%;
        padding: 12px 16px 5px;
        margin: 0;
        background: transparent;
        z-index: 1;
    }
    body.food-store .mobile-search-host .topbar-search-shell {
        display: flex !important;
        position: relative !important;
        inset: auto !important;
        width: 100% !important;
        max-width: 700px !important;
        height: 44px;
        min-width: 0;
        margin: 0 auto !important;
        padding: 0 14px;
        border: 1px solid #e6e9ef;
        border-radius: 14px;
        background: #f6f7f9;
        box-shadow: none;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        transform: none !important;
    }
    body.food-store .mobile-search-host .topbar-search-input {
        font-size: 13px;
        min-width: 0;
        color: #182235;
        background: transparent;
    }
    body.food-store .category-strip-wrap { position: relative; top: auto; }
}
@media (min-width: 992px) {
    body.food-store .mobile-search-host { display: none !important; }
}
@media (max-width: 380px) {
    body.food-store .front-topbar { padding-left: 9px !important; padding-right: 9px !important; }
    body.food-store .front-topbar-inner { grid-template-columns: 40px minmax(0,1fr) auto; gap: 5px; }
    body.food-store .front-topbar-inner > .menu-bars-btn { width: 40px; }
    body.food-store .topbar-delivery-trigger { padding: 8px 7px; font-size: 10px; }
    body.food-store .topbar-account-actions { gap: 4px !important; }
    body.food-store .topbar-account-actions .topbar-customer-avatar { width: 36px; height: 36px; flex-basis: 36px; }
    body.food-store .food-cart, body.food-store .food-cart.is-floating { width: 40px; height: 42px; min-width: 40px; min-height: 42px; }
}

/* V159 — acabamento compacto para o cardápio no mobile, mantendo áreas de toque. */
@media (max-width: 600px) {
    body.food-store { font-size: 12.5px; background: #f9fafb; }
    body.food-store .mobile-search-host { padding: 10px 12px 4px; }
    body.food-store .mobile-search-host .topbar-search-shell { min-height: 42px; height: 42px; }
    body.food-store .menu-hero,
    body.food-store .menu-main { width: calc(100% - 24px); }
    body.food-store .menu-hero { border-radius: 16px; }
    body.food-store .hero-banner { height: min(45vw, 195px); min-height: 140px; }
    body.food-store .food-hero-copy h2 { font-size: clamp(19px, 5vw, 24px); letter-spacing: -.5px; }
    body.food-store .food-hero-copy p { font-size: 11px; line-height: 1.4; }
    body.food-store .store-panel { padding: 10px 12px; gap: 6px 10px; border-radius: 0 0 16px 16px; }
    body.food-store .store-title { font-size: 14px; line-height: 1.24; }
    body.food-store .store-meta-line { font-size: 10px; line-height: 1.35; }
    body.food-store .category-strip-wrap { padding: 12px 12px 5px; }
    body.food-store .category-scroll { gap: 9px; }
    body.food-store .chip, body.food-store .chip.has-media { flex: 0 0 67px; width: 67px; gap: 5px; font-size: 10px; line-height: 1.28; }
    body.food-store .chip-media, body.food-store .food-category-icon { width: 62px; height: 62px; }
    body.food-store .menu-section { margin: 13px 0 20px; }
    body.food-store .menu-section-head { gap: 8px; margin-bottom: 10px; }
    body.food-store .menu-section-head h2 { font-size: 16px; letter-spacing: -.25px; }
    body.food-store .food-see-all { font-size: 11px; }
    body.food-store .section-products { gap: 9px; }
    body.food-store .product-card { border-radius: 14px !important; box-shadow: 0 2px 10px rgba(15,23,42,.04) !important; }
    body.food-store .product-body,
    body.food-store .product-card.has-coupon-timer .product-body { padding: 9px !important; }
    body.food-store .product-body h3 { font-size: 12.5px; line-height: 1.25; letter-spacing: -.2px; }
    body.food-store .product-body p { font-size: 10.5px; line-height: 1.35; margin: 4px 0 7px; }
    body.food-store .price-box strong { font-size: 14.5px; letter-spacing: -.3px; }
    body.food-store .btn-add-product { width: 38px !important; height: 38px !important; min-width: 38px; font-size: 18px; }
    body.food-store .top-ordered-carousel { gap: 10px; }
    body.food-store #topOrderedSection .top-ordered-carousel > .product-card { flex: 0 0 67% !important; width: 67% !important; max-width: 240px !important; }
    body.food-store .food-bottom-nav { height: 64px; border-radius: 20px; bottom: max(8px,env(safe-area-inset-bottom)); box-shadow: 0 4px 18px rgba(15,23,42,.11); }
    body.food-store .food-bottom-nav i { font-size: 20px; }
    body.food-store .food-bottom-nav a,
    body.food-store .food-bottom-nav button { font-size: 9px; min-height: 44px; }
}
