html:has(body.mall-page),
body.mall-page{
  height:auto!important;
  min-height:100%;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  display:block!important;
}
body.mall-page .footer{margin-top:0}
.mall-page{
  --mall-blue:#0077ec;
  --mall-blue-dark:#045cc8;
  --mall-ink:#1a1a1a;
  --mall-muted:#5b6573;
  --mall-line:#e6eef8;
  --mall-paper:#f5f7fa;
  --mall-yellow:#ffc107;
  background:var(--mall-paper);
  color:var(--mall-ink);
}
.mall-page .mall,
.mall-page main.mall{
  overflow-x:hidden;
  overflow-y:visible;
  height:auto!important;
  max-height:none!important;
  transform:none;
  flex:none;
  margin:0;
  padding:0;
  max-width:none;
}
.mall-kicker{
  letter-spacing:.12em;
  text-transform:uppercase;
  font-size:.72rem;
  font-weight:700;
  margin:0 0 .45rem;
  color:var(--mall-blue);
}
.mall h1,.mall h2{
  font-family:inherit;
  font-weight:700;
  letter-spacing:-.02em;
  margin:0 0 .55rem;
  line-height:1.15;
  color:var(--mall-ink);
}
.mall h1{font-size:clamp(1.35rem,3.2vw,1.7rem)}
.mall h2{font-size:clamp(1.2rem,2.4vw,1.55rem)}
.mall-lede,.mall-wing-head p,.mall-map-card>p{
  margin:0 0 .7rem;
  font-size:.95rem;
  line-height:1.4;
  max-width:38rem;
  color:var(--mall-muted);
}
.sr-only{
  position:absolute;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);
  white-space:nowrap;border:0;
}

.mall-hero{
  position:relative;
  padding:1.1rem 1.25rem 1rem;
  background:linear-gradient(120deg,#0077ec 0%,#045cc8 55%,#003d8f 100%);
  color:#fff;
  overflow:hidden;
}
.mall-hero-copy{position:relative;z-index:1;max-width:520px;margin:0 auto;text-align:center}
.mall-hero h1{margin:0 0 .25rem}
.mall-hero h1,.mall-hero .mall-lede{color:#fff}
.mall-hero .mall-lede{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.4rem;
  flex-wrap:wrap;
  margin:0 auto .7rem;
  opacity:1;
  font-size:.9rem;
}
.mall-tag--novo{
  display:inline-block;
  flex:0 0 auto;
  font-size:.62rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  line-height:1.2;
  padding:.14rem .45rem;
  border-radius:999px;
  background:var(--mall-yellow);
  color:#1a1404;
}
.mall-kiosk{
  margin:0 auto;
  max-width:22rem;
  background:#fff;
  border-radius:10px;
  padding:.55rem .65rem .5rem;
  text-align:left;
  box-shadow:0 8px 22px rgba(0,50,120,.18);
}
.mall-kiosk input{
  width:100%;
  border:1px solid #d7e3f4;
  border-radius:8px;
  padding:.55rem .7rem;
  font-size:.95rem;
  background:#fff;
  color:var(--mall-ink);
}
.mall-kiosk-hint{margin:.35rem 0 0;font-size:.75rem;color:var(--mall-muted)}
.mall-kiosk-link{
  border:0;
  background:none;
  padding:0;
  color:var(--mall-blue);
  font:inherit;
  font-weight:700;
  cursor:pointer;
  text-decoration:underline;
}

.mall-dir-bar{
  position:sticky;
  top:0;
  z-index:20;
  display:flex;
  gap:.4rem;
  overflow-x:auto;
  padding:.7rem 1rem;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--mall-line);
  scrollbar-width:thin;
}
.mall-dir-bar a{
  flex:none;
  text-decoration:none;
  color:var(--mall-ink);
  font-size:.82rem;
  font-weight:700;
  padding:.4rem .75rem;
  border-radius:999px;
  background:#fff;
  border:1px solid var(--mall-line);
  white-space:nowrap;
}
.mall-dir-bar a:hover,.mall-dir-bar a.is-on{
  background:var(--mall-blue);
  color:#fff;
  border-color:var(--mall-blue);
}
.mall-dir-bar small{opacity:.55;margin-left:.25rem}

.mall-wing,#mapa,#alas{scroll-margin-top:64px}

.mall-wing{padding:1.6rem 0 1.8rem;background:var(--mall-paper);border-top:1px solid var(--mall-line)}
.mall-wing:nth-child(even){background:#fff}
.mall-wing-head{padding:0 1.25rem 1rem;max-width:1180px;margin:0 auto}

.mall-corridor{
  position:relative;
  overflow:visible;
  padding:0 0 .4rem;
}
.mall-walk{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:1rem;
  max-width:1180px;
  margin:0 auto;
  padding:0 1.25rem 1.1rem;
}

.mall-shop{
  position:relative;
  min-width:0;
  width:100%;
  display:flex;
  flex-direction:column;
  background:#fff;
  border:1px solid var(--mall-line);
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 8px 22px rgba(15,40,80,.06);
  transition:transform .2s ease, box-shadow .2s ease;
}
.mall-shop-hit{
  display:flex;
  flex-direction:column;
  flex:1;
  min-width:0;
  text-decoration:none;
  color:inherit;
}
.mall-shop:hover,.mall-shop:focus-within{
  transform:translateY(-4px);
  box-shadow:0 14px 28px rgba(0,119,236,.16);
  z-index:2;
}
.mall-shop-name-row{
  display:flex;
  align-items:center;
  gap:.4rem;
  min-width:0;
}
.mall-tag--cupom{
  flex:0 0 auto;
  margin-left:auto;
  display:inline-block;
  font-style:normal;
  font-size:.62rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  line-height:1.2;
  padding:.14rem .45rem;
  border-radius:999px;
  background:var(--mall-yellow);
  color:#1a1404;
  text-decoration:none;
}
.mall-tag--cupom:hover{filter:brightness(.95)}
.mall-shop-shotwrap{
  position:relative;
  display:block;
  aspect-ratio:16/10;
  background:#eef4fb;
  overflow:hidden;
}
.mall-shop-shot{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:top center;
  opacity:0;
  transition:opacity .35s ease;
}
.mall-shop-shot.is-on{opacity:1}
.mall-shop-fallback{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(180deg,#fff,#eef4fb);
  padding:1rem;
}
.mall-shop-shot.is-on + .mall-shop-fallback{display:none}
.mall-shop-fallback .mall-shop-logo{max-width:70%;max-height:55%;object-fit:contain;background:transparent;padding:0}
.mall-shop-cb{
  position:absolute;
  top:.55rem;
  right:.55rem;
  background:var(--mall-yellow);
  color:#1a1404;
  border-radius:999px;
  padding:.18rem .5rem;
  font-size:.72rem;
  font-weight:800;
  z-index:1;
}
.mall-shop-meta{
  display:grid;
  grid-template-columns:40px 1fr;
  grid-template-rows:auto auto;
  gap:.15rem .65rem;
  align-items:center;
  padding:.75rem .8rem .85rem;
}
.mall-shop-meta > .mall-shop-logo,
.mall-shop-meta > .mall-shop-logo--text{
  grid-row:1 / span 2;
  width:40px;
  height:40px;
  object-fit:contain;
  background:#f5f7fa;
  border-radius:8px;
  padding:4px;
}
.mall-shop-logo--text{
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:.62rem;
  font-weight:800;
  text-align:center;
  line-height:1.1;
}
.mall-shop-copy{min-width:0}
.mall-shop-name{
  display:block;
  min-width:0;
  flex:1;
  font-weight:700;
  font-size:.92rem;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:inherit;
  text-decoration:none;
}
.mall-shop-host{
  display:block;
  font-size:.72rem;
  color:var(--mall-muted);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.mall-shop-go{
  grid-column:1 / -1;
  margin-top:.45rem;
  display:block;
  text-align:center;
  background:var(--mall-blue);
  color:#fff;
  border-radius:8px;
  padding:.55rem .4rem;
  font-size:.82rem;
  font-weight:700;
  text-decoration:none;
}
.mall-shop:hover .mall-shop-go{background:var(--mall-blue-dark)}
.mall-shop.is-hit{outline:3px solid var(--mall-blue);outline-offset:3px}

.mall-map{padding:2.4rem 1.25rem 3.5rem;background:#fff;border-top:1px solid var(--mall-line)}
.mall-map a{color:var(--mall-blue)}
.mall-map-card{max-width:860px;margin:0 auto}
.mall-map-grid{
  list-style:none;
  margin:1.1rem 0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:.6rem;
}
.mall-map-grid a{
  display:block;
  padding:.85rem 1rem;
  background:#f5f7fa;
  border:1px solid var(--mall-line);
  border-radius:10px;
  text-decoration:none;
  color:var(--mall-ink);
}
.mall-map-grid a:hover{border-color:var(--mall-blue);background:#eef6ff}
.mall-map-grid strong{display:block;color:var(--mall-blue);font-size:.78rem;margin-bottom:.15rem}
.mall-map-note{font-size:.9rem;color:var(--mall-muted)}

.mall-overlay{
  position:fixed;
  inset:0;
  z-index:80;
  background:rgba(10,30,60,.45);
  display:grid;
  place-items:center;
  padding:1rem;
}
.mall-overlay[hidden]{display:none}
.mall-overlay-panel{
  width:min(520px,100%);
  max-height:min(80vh,720px);
  overflow:auto;
  background:#fff;
  border-radius:12px;
  padding:1.2rem 1.2rem 1.4rem;
  position:relative;
  color:var(--mall-ink);
}
.mall-overlay-close{position:absolute;top:.5rem;right:.7rem;border:0;background:none;font-size:1.6rem;cursor:pointer;color:var(--mall-muted)}
.mall-overlay-panel input{
  width:100%;
  margin:.4rem 0 1rem;
  padding:.7rem .8rem;
  border-radius:8px;
  border:1px solid var(--mall-line);
}
.mall-overlay-list{list-style:none;margin:0;padding:0}
.mall-overlay-list a{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding:.55rem 0;
  border-bottom:1px solid #eef2f7;
  text-decoration:none;
  color:inherit;
  font-weight:650;
}
.mall-overlay-list small{color:var(--mall-blue);font-weight:800}
.mall-overlay-list li.is-hide{display:none}

@media (max-width:720px){
  .mall-hero{padding:.9rem 1rem .85rem}
  .mall-walk{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}
}
@media (prefers-reduced-motion:reduce){
  .mall-shop{transition:none}
}
