/* Tía Vicenta v457 · logo y publicidades visibles, sin alterar carrito ni empanadas */
:root{
  --tv-v457-logo:url("assets/icons/app-logo-v457.png?v=457");
  --tv-v457-promo-bg:linear-gradient(135deg,#101b36,#1d2c4e 54%,#101b36);
}

html body header.topbar .brand#brandTap .brand-logo{
  position:relative!important;
  display:grid!important;
  place-items:center!important;
  width:72px!important;
  height:72px!important;
  min-width:72px!important;
  flex:0 0 72px!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
  border:0!important;
  border-radius:22px!important;
  background:var(--tv-v457-logo) center/contain no-repeat!important;
  box-shadow:none!important;
  isolation:isolate!important;
}

html body header.topbar .brand#brandTap .brand-logo::before,
html body header.topbar .brand#brandTap .brand-logo::after{
  content:none!important;
  display:none!important;
}

html body header.topbar .brand#brandTap .brand-logo img,
html body #brandLogo{
  position:relative!important;
  z-index:2!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  object-fit:contain!important;
  object-position:center!important;
  opacity:1!important;
  visibility:visible!important;
  transform:none!important;
  filter:drop-shadow(0 8px 13px rgba(23,34,72,.18))!important;
}

html body #promoBanners.promo-banners{
  position:relative!important;
  display:block!important;
  width:min(1280px,calc(100% - 28px))!important;
  max-width:1280px!important;
  min-height:120px!important;
  margin:12px auto 22px!important;
  overflow:hidden!important;
  border:1px solid rgba(255,145,22,.22)!important;
  border-radius:24px!important;
  background:var(--tv-v457-promo-bg)!important;
  box-shadow:0 18px 44px rgba(45,28,12,.16)!important;
  contain:layout paint!important;
}

html body #promoBanners.hidden{
  display:none!important;
}

html body #promoBanners .promo-premium-shell,
html body #promoBanners .promo-premium-track{
  width:100%!important;
  max-width:100%!important;
  border-radius:inherit!important;
}

html body #promoBanners .promo-premium-track{
  display:flex!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scroll-snap-type:x mandatory!important;
  scrollbar-width:none!important;
  overscroll-behavior-inline:contain!important;
  touch-action:pan-x!important;
}

html body #promoBanners .promo-premium-track::-webkit-scrollbar{
  display:none!important;
}

html body #promoBanners .promo-premium-slide{
  position:relative!important;
  flex:0 0 100%!important;
  width:100%!important;
  min-width:100%!important;
  max-width:100%!important;
  aspect-ratio:1280/426!important;
  overflow:hidden!important;
  border:0!important;
  border-radius:inherit!important;
  background:var(--tv-v457-promo-bg)!important;
  scroll-snap-align:start!important;
  opacity:1!important;
  visibility:visible!important;
}

html body #promoBanners .promo-picture,
html body #promoBanners .promo-picture img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  aspect-ratio:auto!important;
}

html body #promoBanners .promo-picture img{
  object-fit:cover!important;
  object-position:center!important;
  background:var(--tv-v457-promo-bg)!important;
  opacity:1!important;
  visibility:visible!important;
  transform:translateZ(0)!important;
}

/* Nunca dejar el banner en blanco por una promesa decode/carga demorada. */
html body #promoBanners.is-loading .promo-picture img,
html body #promoBanners.is-loading .promo-order-btn{
  opacity:1!important;
  visibility:visible!important;
}

html body #promoBanners.is-loading .promo-premium-slide:not(:first-child){
  visibility:visible!important;
}

html body #promoBanners.is-loading::after{
  content:none!important;
  display:none!important;
}

html body #promoBanners .promo-order-btn{
  z-index:4!important;
  min-height:34px!important;
  padding:8px 14px!important;
  border-radius:999px!important;
  box-shadow:0 8px 20px rgba(0,0,0,.24)!important;
}

html body #promoBanners .promo-dots{
  z-index:6!important;
}

@media (max-width:760px){
  html body header.topbar .brand#brandTap{
    grid-template-columns:58px minmax(0,1fr)!important;
    column-gap:9px!important;
  }

  html body header.topbar .brand#brandTap .brand-logo{
    width:58px!important;
    height:58px!important;
    min-width:58px!important;
    flex-basis:58px!important;
    border-radius:18px!important;
  }

  html body header.topbar .brand#brandTap .brand-title{
    font-size:clamp(27px,8.3vw,34px)!important;
    line-height:.94!important;
  }

  html body #promoBanners.promo-banners{
    width:calc(100% - 18px)!important;
    min-height:142px!important;
    margin:13px auto 22px!important;
    border-radius:20px!important;
    box-shadow:0 14px 30px rgba(45,28,12,.16)!important;
  }

  html body #promoBanners .promo-premium-slide{
    aspect-ratio:2.5/1!important;
  }

  html body #promoBanners .promo-picture img{
    object-fit:cover!important;
    object-position:center!important;
  }

  html body #promoBanners .promo-order-btn{
    right:9px!important;
    bottom:9px!important;
    min-height:32px!important;
    padding:7px 12px!important;
    font-size:11px!important;
  }
}

@media (max-width:390px){
  html body header.topbar .brand#brandTap{
    grid-template-columns:54px minmax(0,1fr)!important;
  }

  html body header.topbar .brand#brandTap .brand-logo{
    width:54px!important;
    height:54px!important;
    min-width:54px!important;
    flex-basis:54px!important;
  }

  html body #promoBanners.promo-banners{
    min-height:136px!important;
  }
}

@media (prefers-reduced-motion:reduce){
  html body #promoBanners .promo-premium-track{scroll-behavior:auto!important}
}
