/* Favorito Delivery — Build 407
   UX de app: modais, filtros, tabs, upsell e preservação das correções 402–406. */

/* Footer textual antigo nunca volta. */
body.marketplace-body .market-footer{display:none!important}

/* Desktop: conteúdo real centralizado em até 900px. */
@media (min-width:901px){
  body.marketplace-body .market-header>.market-wrap,
  body.marketplace-body .market-main>.market-wrap,
  body.marketplace-body .market-main>.market-section,
  body.marketplace-body .consumer-native-pagebar,
  body.marketplace-body .consumer-page-shell,
  body.marketplace-body .app-store-page,
  body.marketplace-body .market-app-bottom,
  body[data-market-page="produto"] .market-product-page,
  body[data-market-page="produto"] .market-product-shell,
  body[data-market-page="produto"] .market-product-sticky,
  body[data-market-page="produto"] .market-product-footer,
  body[data-market-page="produto"] [data-product-sticky]{max-width:900px!important;margin-left:auto!important;margin-right:auto!important}
}

/* Informações da loja — desktop = modal de verdade, solto em todas as bordas. */
body.marketplace-body .market-store-info-dialog{
  width:min(820px,calc(100vw - 48px))!important;
  height:auto!important;
  max-width:820px!important;
  max-height:calc(100dvh - 56px)!important;
  margin:28px auto!important;
  border:0!important;
  border-radius:22px!important;
  padding:0!important;
  overflow:hidden!important;
  background:#fff!important;
  box-shadow:0 26px 80px rgba(15,23,42,.30)!important;
  opacity:0!important;
  transform:translateY(10px) scale(.985)!important;
  transition:opacity .22s ease,transform .22s ease!important;
}
body.marketplace-body .market-store-info-dialog[open]{display:block!important}
body.marketplace-body .market-store-info-dialog.is-v407-open,
body.marketplace-body .market-store-info-dialog.is-open{opacity:1!important;transform:none!important}
body.marketplace-body .market-store-info-dialog.is-v407-closing{opacity:0!important;transform:translateY(8px) scale(.985)!important}
body.marketplace-body .market-store-info-dialog::backdrop{background:rgba(15,23,42,.48)!important;backdrop-filter:blur(2px)!important}
body.marketplace-body .market-store-info-screen{height:min(760px,calc(100dvh - 56px))!important;max-height:calc(100dvh - 56px)!important;border-radius:22px!important;overflow:hidden!important;box-shadow:none!important;background:#fff!important}
body.marketplace-body .market-store-info-scroll{overflow:auto!important;overscroll-behavior:contain!important;min-height:0!important}
html.fd407-overlay-open,html.fd407-overlay-open body{overflow:hidden!important;overscroll-behavior:none!important}

/* Mobile = tela lateral, entra da direita e volta para a direita ao fechar. */
@media (max-width:760px){
  body.marketplace-body .market-store-info-dialog{
    width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;
    margin:0!important;border-radius:0!important;inset:0!important;
    transform:translateX(100%)!important;opacity:1!important;
    transition:transform .28s cubic-bezier(.22,.8,.26,1)!important;
  }
  body.marketplace-body .market-store-info-dialog.is-v407-open,
  body.marketplace-body .market-store-info-dialog.is-open{transform:translateX(0)!important}
  body.marketplace-body .market-store-info-dialog.is-v407-closing{transform:translateX(100%)!important}
  body.marketplace-body .market-store-info-screen{width:100%!important;height:100dvh!important;max-height:none!important;border-radius:0!important}
  body.marketplace-body .market-store-info-head{position:sticky!important;top:0!important;z-index:5!important;background:#fff!important}
  body.marketplace-body .market-store-info-tabs{position:sticky!important;top:var(--fd407-info-head,62px)!important;z-index:4!important;background:#fff!important}
}

/* Filtro de pedidos com comportamento de app. */
body[data-market-page="pedidos"] [data-order-filter-sheet]{overflow:hidden!important}
@media (min-width:761px){
  body[data-market-page="pedidos"] [data-order-filter-sheet]{width:min(520px,calc(100vw - 48px))!important;margin:auto!important;border-radius:20px!important;transform:translateY(10px) scale(.985)!important;opacity:0!important;transition:.2s ease!important}
  body[data-market-page="pedidos"] [data-order-filter-sheet].is-v407-open{opacity:1!important;transform:none!important}
}
@media (max-width:760px){
  body[data-market-page="pedidos"] [data-order-filter-sheet]{
    width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;
    inset:0!important;margin:0!important;border-radius:0!important;padding:0!important;background:#fff!important;
    transform:translateX(100%)!important;opacity:1!important;transition:transform .28s cubic-bezier(.22,.8,.26,1)!important;
  }
  body[data-market-page="pedidos"] [data-order-filter-sheet].is-v407-open{transform:translateX(0)!important}
  body[data-market-page="pedidos"] [data-order-filter-sheet].is-v407-closing{transform:translateX(100%)!important}
  body[data-market-page="pedidos"] [data-order-filter-sheet] form{height:100dvh!important;padding:0 18px calc(20px + env(safe-area-inset-bottom))!important;overflow:auto!important}
  body[data-market-page="pedidos"] [data-order-filter-sheet] .consumer-sheet-handle{display:none!important}
  body[data-market-page="pedidos"] [data-order-filter-sheet] header{position:sticky!important;top:0!important;background:#fff!important;z-index:3!important;padding:15px 0 13px!important;border-bottom:1px solid #eceff3!important}
}

/* Tabs Marketplace: cor preservada + borda completa novamente. */
body[data-market-home-model="favorito_vitrine"][data-market-page="inicio"] .market-app-bottom{
  border-top:1px solid #dfe3e8!important;border-bottom:1px solid #dfe3e8!important;box-shadow:none!important;overflow:hidden!important;
}
body[data-market-home-model="favorito_vitrine"][data-market-page="inicio"] .market-app-bottom>a[data-fav-vitrine-bottom-tab]{
  position:relative!important;border:1px solid #dfe3e8!important;border-top:0!important;border-bottom:0!important;border-radius:0!important;background:#fff!important;
}
body[data-market-home-model="favorito_vitrine"][data-market-page="inicio"] .market-app-bottom>a[data-fav-vitrine-bottom-tab]+a[data-fav-vitrine-bottom-tab]{border-left-width:1px!important}
body[data-market-home-model="favorito_vitrine"][data-market-page="inicio"] .market-app-bottom>a[data-fav-vitrine-bottom-tab].active,
body[data-market-home-model="favorito_vitrine"][data-market-page="inicio"] .market-app-bottom>a[data-fav-vitrine-bottom-tab][aria-selected="true"]{background:#eef0f3!important}
body[data-market-home-model="favorito_vitrine"][data-market-page="inicio"] .market-app-bottom>a[data-fav-vitrine-bottom-tab].active::after,
body[data-market-home-model="favorito_vitrine"][data-market-page="inicio"] .market-app-bottom>a[data-fav-vitrine-bottom-tab][aria-selected="true"]::after{
  content:""!important;display:block!important;position:absolute!important;left:0!important;right:0!important;bottom:0!important;height:3px!important;background:var(--color-primary-ui,var(--color-primary,#ea010b))!important;border-radius:0!important;
}
body[data-market-model="offers_v1"] .offers-v1-tabs{border:1px solid #dfe3e8!important;overflow:hidden!important}
body[data-market-model="offers_v1"] .offers-v1-tabs button{border-right:1px solid #dfe3e8!important;border-radius:0!important}
body[data-market-model="offers_v1"] .offers-v1-tabs button:last-child{border-right:0!important}
body[data-market-model="offers_v1"] .offers-v1-tabs button[aria-selected="true"]{background:#eef0f3!important}

/* Upsell real no carrinho. */
.fd407-cart-upsell{margin:15px 0 18px;background:#fff;border:1px solid #e2e6eb;border-radius:16px;padding:14px 0;overflow:hidden}
.fd407-cart-upsell-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:0 14px 11px}
.fd407-cart-upsell-head small{display:block;font-size:11px;font-weight:900;letter-spacing:.08em;color:var(--color-primary-ui,var(--color-primary,#ea010b))}
.fd407-cart-upsell-head h2{margin:2px 0 0;font-size:19px;line-height:1.2}.fd407-cart-upsell-head>span{font-size:12px;color:#667085;white-space:nowrap}
.fd407-cart-upsell-track{display:flex;gap:10px;overflow-x:auto;padding:0 14px 3px;scrollbar-width:none;scroll-snap-type:x proximity}.fd407-cart-upsell-track::-webkit-scrollbar{display:none}
.fd407-cart-upsell-card{position:relative;flex:0 0 176px;min-height:74px;border:1px solid #e4e7ec;border-radius:13px;padding:9px;display:grid;grid-template-columns:55px 1fr;gap:9px;background:#fff;scroll-snap-align:start}
.fd407-cart-upsell-image{width:55px;height:55px;border-radius:10px;overflow:hidden;background:#f2f4f7;display:grid;place-items:center}.fd407-cart-upsell-image img{width:100%;height:100%;object-fit:cover}
.fd407-cart-upsell-copy{min-width:0;padding-right:29px}.fd407-cart-upsell-copy strong{display:block;font-size:14px;line-height:1.22;max-height:35px;overflow:hidden}.fd407-cart-upsell-copy b{display:block;margin-top:5px;font-size:14px;color:var(--color-primary-ui,var(--color-primary,#ea010b))}
.fd407-cart-upsell-form{position:absolute!important;right:8px!important;bottom:8px!important;margin:0!important}.fd407-cart-upsell-form button{width:28px;height:28px;border:0;border-radius:50%;background:var(--color-primary-ui,var(--color-primary,#ea010b));color:var(--color-primary-ui-contrast,#fff);font:800 21px/1 Arial;display:grid;place-items:center;cursor:pointer}

/* A confirmação visual é o contador/card do carrinho, não um aviso gigante. */
.market-product-added-bar,.market-cart-toast,.market-cart-toast-host{display:none!important}

/* Andamento: concluídas verdes; etapa atual usa a cor do contexto. */
body[data-market-page="pedido"] .fd404-order-timeline .consumer-order-timeline-step.is-done:not(.is-current)>span{background:#e8f7ee!important;border-color:#b7e5c8!important;color:#16843f!important}
body[data-market-page="pedido"] .fd404-order-timeline .consumer-order-timeline-step.is-done:not(.is-current)>div strong{color:#16843f!important}
body[data-market-page="pedido"] .fd404-order-timeline .consumer-order-timeline-step small{font-size:11px!important;color:#667085!important;white-space:nowrap!important}

@media(max-width:620px){.fd407-cart-upsell-head>span{display:none}.fd407-cart-upsell-card{flex-basis:164px}}

/* Os modais informativos do modelo Perfil seguem a mesma linguagem do app. */
@media (min-width:761px){
  body[data-market-page="loja"] dialog.profile-store-dialog{
    width:min(800px,calc(100vw - 56px))!important;max-width:800px!important;max-height:calc(100dvh - 56px)!important;
    margin:auto!important;border-radius:22px!important;overflow:auto!important;box-shadow:0 26px 80px rgba(15,23,42,.30)!important;
    opacity:0!important;transform:translateY(10px) scale(.985)!important;transition:opacity .22s ease,transform .22s ease!important;
  }
  body[data-market-page="loja"] dialog.profile-store-dialog.is-v407-open{opacity:1!important;transform:none!important}
}
@media (max-width:760px){
  body[data-market-page="loja"] dialog.profile-store-dialog{
    width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;inset:0!important;margin:0!important;border-radius:0!important;
    transform:translateX(100%)!important;opacity:1!important;transition:transform .28s cubic-bezier(.22,.8,.26,1)!important;overflow:auto!important;
  }
  body[data-market-page="loja"] dialog.profile-store-dialog.is-v407-open{transform:translateX(0)!important}
  body[data-market-page="loja"] dialog.profile-store-dialog.is-v407-closing{transform:translateX(100%)!important}
  body[data-market-page="loja"] dialog.profile-store-dialog .dialog-head{position:sticky!important;top:0!important;z-index:5!important;background:#fff!important}
}

/* Build 436 — correção definitiva SOMENTE das tabs Ofertas / Restaurantes do Marketplace.
   Linha ativa no topo (3px), nenhuma linha inferior e nenhum espaço/safe-area abaixo. */
body.marketplace-body[data-market-page="inicio"] nav.market-app-bottom{
  bottom:0!important;
  inset-block-end:0!important;
  height:58px!important;
  min-height:58px!important;
  max-height:58px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-top:0!important;
  border-bottom:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  background:transparent!important;
  overflow:hidden!important;
  align-items:stretch!important;
  box-sizing:border-box!important;
}
body.marketplace-body[data-market-page="inicio"] nav.market-app-bottom>a[data-fav-vitrine-bottom-tab]{
  position:relative!important;
  flex:1 1 50%!important;
  align-self:stretch!important;
  height:58px!important;
  min-height:58px!important;
  max-height:58px!important;
  margin:0!important;
  padding:0 10px!important;
  border:0!important;
  border-top:0!important;
  border-right:0!important;
  border-bottom:0!important;
  border-left:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
  background:#fff!important;
}
body.marketplace-body[data-market-page="inicio"] nav.market-app-bottom>a[data-fav-vitrine-bottom-tab].active,
body.marketplace-body[data-market-page="inicio"] nav.market-app-bottom>a[data-fav-vitrine-bottom-tab][aria-selected="true"]{
  background:#eef0f3!important;
}
/* mata a linha antiga que o v407 desenhava embaixo */
body.marketplace-body[data-market-page="inicio"] nav.market-app-bottom>a[data-fav-vitrine-bottom-tab]::after,
body.marketplace-body[data-market-page="inicio"] nav.market-app-bottom>a[data-fav-vitrine-bottom-tab].active::after,
body.marketplace-body[data-market-page="inicio"] nav.market-app-bottom>a[data-fav-vitrine-bottom-tab][aria-selected="true"]::after{
  content:none!important;
  display:none!important;
  height:0!important;
  background:transparent!important;
}
/* única linha permitida: 3px no topo da tab ativa */
body.marketplace-body[data-market-page="inicio"] nav.market-app-bottom>a[data-fav-vitrine-bottom-tab]::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  z-index:5!important;
  left:0!important;
  right:0!important;
  top:0!important;
  bottom:auto!important;
  height:3px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  pointer-events:none!important;
}
body.marketplace-body[data-market-page="inicio"] nav.market-app-bottom>a[data-fav-vitrine-bottom-tab].active::before,
body.marketplace-body[data-market-page="inicio"] nav.market-app-bottom>a[data-fav-vitrine-bottom-tab][aria-selected="true"]::before{
  background:var(--color-primary-ui,var(--color-primary,var(--primary,#ea010b)))!important;
}

/* Build 437 — animação rápida da linha superior das tabs Marketplace.
   A linha nasce no encontro das tabs e desliza/preenche em ~170ms. */
body.marketplace-body[data-market-page="inicio"] nav.market-app-bottom>a[data-fav-vitrine-bottom-tab]::before{
  transform:scaleX(0)!important;
  transition:transform .17s cubic-bezier(.22,.78,.24,1)!important;
  will-change:transform!important;
  background:var(--color-primary-ui,var(--color-primary,var(--primary,#ea010b)))!important;
}
/* Ofertas: a linha chega do centro para a esquerda. */
body.marketplace-body[data-market-page="inicio"] nav.market-app-bottom>a[data-fav-vitrine-bottom-tab="offers"]::before,
body.marketplace-body[data-market-page="inicio"] nav.market-app-bottom>a[data-fav-vitrine-bottom-tab="ofertas"]::before{
  transform-origin:100% 50%!important;
}
/* Restaurantes: a linha chega do centro para a direita. */
body.marketplace-body[data-market-page="inicio"] nav.market-app-bottom>a[data-fav-vitrine-bottom-tab="restaurants"]::before,
body.marketplace-body[data-market-page="inicio"] nav.market-app-bottom>a[data-fav-vitrine-bottom-tab="restaurantes"]::before{
  transform-origin:0 50%!important;
}
body.marketplace-body[data-market-page="inicio"] nav.market-app-bottom>a[data-fav-vitrine-bottom-tab].active::before,
body.marketplace-body[data-market-page="inicio"] nav.market-app-bottom>a[data-fav-vitrine-bottom-tab][aria-selected="true"]::before{
  transform:scaleX(1)!important;
}
@media (prefers-reduced-motion:reduce){
  body.marketplace-body[data-market-page="inicio"] nav.market-app-bottom>a[data-fav-vitrine-bottom-tab]::before{
    transition:none!important;
  }
}

/* Build 438 — linha única que DESLIZA entre Ofertas e Restaurantes.
   Não cria duas linhas independentes: a mesma barra sai da tab atual e encaixa na próxima. */
body.marketplace-body[data-market-page="inicio"] nav.market-app-bottom>a[data-fav-vitrine-bottom-tab]::before{
  content:none!important;
  display:none!important;
}
body.marketplace-body[data-market-page="inicio"] nav.market-app-bottom::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  z-index:12!important;
  top:0!important;
  left:0!important;
  bottom:auto!important;
  width:50%!important;
  height:3px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:var(--color-primary-ui,var(--color-primary,var(--primary,#ea010b)))!important;
  box-shadow:none!important;
  pointer-events:none!important;
  transform:translate3d(0,0,0)!important;
  transition:transform .155s cubic-bezier(.22,.82,.24,1)!important;
  will-change:transform!important;
}
/* Quando Restaurantes assume a seleção, a MESMA linha corre rapidamente para a segunda metade. */
body.marketplace-body[data-market-page="inicio"] nav.market-app-bottom:has(>a[data-fav-vitrine-bottom-tab="restaurants"].active)::before,
body.marketplace-body[data-market-page="inicio"] nav.market-app-bottom:has(>a[data-fav-vitrine-bottom-tab="restaurants"][aria-selected="true"])::before,
body.marketplace-body[data-market-page="inicio"] nav.market-app-bottom:has(>a[data-fav-vitrine-bottom-tab="restaurantes"].active)::before,
body.marketplace-body[data-market-page="inicio"] nav.market-app-bottom:has(>a[data-fav-vitrine-bottom-tab="restaurantes"][aria-selected="true"])::before{
  transform:translate3d(100%,0,0)!important;
}
/* Ofertas fixa a linha na primeira metade. */
body.marketplace-body[data-market-page="inicio"] nav.market-app-bottom:has(>a[data-fav-vitrine-bottom-tab="offers"].active)::before,
body.marketplace-body[data-market-page="inicio"] nav.market-app-bottom:has(>a[data-fav-vitrine-bottom-tab="offers"][aria-selected="true"])::before,
body.marketplace-body[data-market-page="inicio"] nav.market-app-bottom:has(>a[data-fav-vitrine-bottom-tab="ofertas"].active)::before,
body.marketplace-body[data-market-page="inicio"] nav.market-app-bottom:has(>a[data-fav-vitrine-bottom-tab="ofertas"][aria-selected="true"])::before{
  transform:translate3d(0,0,0)!important;
}
@media (prefers-reduced-motion:reduce){
  body.marketplace-body[data-market-page="inicio"] nav.market-app-bottom::before{transition:none!important}
}


/* Build 439 — Marketplace por distância, contatos limpos, filtros resetáveis e trilhos suaves */
body[data-market-home-model="favorito_vitrine"][data-market-page="inicio"] .market-store-new-badge{display:none!important}
body[data-market-home-model="favorito_vitrine"][data-market-page="inicio"] .fav-vitrine-store-copy strong{font-size:15px!important;line-height:1.22!important;font-weight:850!important}
body[data-market-home-model="favorito_vitrine"][data-market-page="inicio"] .fav-vitrine-store-copy small{font-size:11.5px!important;line-height:1.3!important}
body[data-market-home-model="favorito_vitrine"][data-market-page="inicio"] .fav-vitrine-store-copy i{font-size:10.5px!important;gap:8px!important}
body[data-market-home-model="favorito_vitrine"][data-market-page="inicio"] [data-market-distance]:not([hidden]){display:inline-flex!important;align-items:center;font-weight:850;color:#475467}

/* Contato: só ícone + número, sem caixas. */
.market-store-contact-actions>a.market-store-contact-phone,
.market-store-contact-actions>a.market-store-contact-whatsapp{border:0!important;background:transparent!important;box-shadow:none!important;padding:2px 4px!important;min-height:28px!important;border-radius:0!important;display:inline-flex!important;align-items:center!important;gap:6px!important;width:auto!important;flex:0 0 auto!important;font-size:13px!important;font-weight:800!important;color:#344054!important}
.market-store-contact-actions>a.market-store-contact-phone svg{color:#e11d2e!important;stroke:#e11d2e!important;fill:none!important}
.market-store-contact-actions>a.market-store-contact-whatsapp svg{color:#16a34a!important;stroke:#16a34a!important;fill:none!important}
.market-store-contact-actions>a.market-store-contact-phone:hover,
.market-store-contact-actions>a.market-store-contact-whatsapp:hover{background:transparent!important;transform:none!important;text-decoration:none!important}

/* Filtro com X pequeno quando existe filtro/busca ativa. */
.fav-vitrine-filter-control{position:relative;display:block;min-width:0}
.fav-vitrine-filter-control>.fav-vitrine-filter-open{width:100%;height:100%}
.fav-vitrine-filter-clear{position:absolute;z-index:4;top:-5px;right:-5px;width:19px;height:19px;border:2px solid #fff;border-radius:50%;background:var(--fav-detail,#e50914);color:#fff;display:grid;place-items:center;padding:0;font:900 15px/1 Arial,sans-serif;cursor:pointer;box-shadow:0 2px 7px rgba(16,24,40,.18)}
.fav-vitrine-filter-clear[hidden]{display:none!important}
.fav-vitrine-filter-empty{margin-top:12px;border:1px solid #e7eaf0;border-radius:16px;background:#fff;padding:18px;text-align:center;display:grid;justify-items:center;gap:5px;color:#667085}
.fav-vitrine-filter-empty[hidden]{display:none!important}
.fav-vitrine-filter-empty strong{font-size:14px;color:#101828}.fav-vitrine-filter-empty span{font-size:11px}.fav-vitrine-filter-empty button{margin-top:5px;border:0;border-radius:10px;background:#f2f4f7;padding:8px 11px;font:800 11px/1 var(--font,Nunito,sans-serif);cursor:pointer;color:#344054}

/* Categorias e banners: mouse/toque suave com encaixe curto. */
.fav-vitrine-category-track,.fav-vitrine-banner-track{scroll-behavior:smooth!important;scroll-snap-type:x proximity!important;cursor:grab!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior-inline:contain!important;touch-action:pan-x pan-y!important}
.fav-vitrine-category-track.is-dragging,.fav-vitrine-banner-track.is-dragging{scroll-behavior:auto!important;scroll-snap-type:none!important;cursor:grabbing!important;user-select:none!important}
.fav-vitrine-category,.fav-vitrine-banner{scroll-snap-align:start!important;scroll-snap-stop:normal!important}
.fav-vitrine-category,.fav-vitrine-category *,.fav-vitrine-banner,.fav-vitrine-banner *{-webkit-user-drag:none!important;user-drag:none!important}

/* Banners promocionais mais compactos para permitir vários cards na faixa. */
@media(min-width:761px){
  .fav-vitrine-banner{flex:0 0 clamp(270px,32vw,350px)!important}
  .fav-vitrine-banner-track{gap:12px!important}
}
@media(max-width:760px){
  .fav-vitrine-banner{flex:0 0 min(82vw,330px)!important}
  .fav-vitrine-banner-track{gap:10px!important}
  body[data-market-home-model="favorito_vitrine"][data-market-page="inicio"] .fav-vitrine-store-copy strong{font-size:14px!important}
}

/* Oferta: respeita a foto inteira enviada, sem cortar o produto. */
.fav-vitrine-product-media>img{object-fit:contain!important;object-position:center!important;background:#fff!important;padding:4px!important}
