/* =====================================================================
   Vai pro Carrinho — estilo
   ===================================================================== */
:root {
  --roxo: #6d28d9;
  --roxo-forte: #5b21b6;
  --roxo-claro: #ede9fe;
  --rosa: #db2777;
  --laranja: #f97316;
  --amarelo: #facc15;
  --verde: #15803d;
  --verde-fundo: #dcfce7;
  --vermelho: #dc2626;

  --bg: #f6f5fb;
  --card: #ffffff;
  --texto: #1a1530;
  --suave: #625d78;
  --borda: #e6e3ef;
  --sombra: 0 1px 2px rgba(26, 21, 48, .06), 0 8px 24px rgba(26, 21, 48, .06);
  --sombra-forte: 0 4px 10px rgba(26, 21, 48, .08), 0 18px 40px rgba(109, 40, 217, .18);
  --gradiente: linear-gradient(135deg, #5b21b6 0%, #9333ea 48%, #db2777 100%);
  --raio: 16px;
  color-scheme: light; /* sempre fundo claro, mesmo com o aparelho no tema escuro */
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  background: var(--bg);
  color: var(--texto);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

button, input, select { font: inherit; color: inherit; }
button { cursor: pointer; }
a { color: inherit; }

.container { max-width: 1600px; margin: 0 auto; padding: 0 16px; }

/* ---------- avisos ---------- */
.aviso-teste {
  background: var(--amarelo); color: #3b2a00;
  font-size: .85rem; text-align: center; padding: 8px 16px;
}

/* ---------- topo (no estilo das grandes lojas: faixa fina + logo, busca e carrinho; fixo no alto) ---------- */
.topo {
  position: sticky; top: 0; z-index: 30;
  background: var(--gradiente); color: #fff;
  box-shadow: 0 4px 18px rgba(30, 0, 60, .28);
}
.topo-faixa { font-size: .8rem; }
.numeros-faixa::before { content: " · "; }
/* "Aqui você encontra milhões de produtos de mais de N lojas" (só na página inicial) */
/* Mesmo card roxo dos resultados da busca (.resumo), pedido do Giovanni */
.numeros-inicio {
  margin: 0 0 14px; padding: 16px 24px; border-radius: 20px; font-size: 1rem; color: #fff;
  background: var(--gradiente); box-shadow: var(--sombra-forte);
}
.numeros-inicio strong { color: #fff; }
.numeros-inicio .aviso-cupom { display: block; margin-top: 4px; font-size: .78rem; opacity: .85; }
.nota-lojas { margin: -2px 0 10px; font-size: .8rem; line-height: 1.35; color: var(--suave); }
.topo-faixa-linha { display: flex; align-items: center; justify-content: space-between; gap: 16px; height: 30px; opacity: .92; }
.topo-links { display: flex; gap: 14px; }
.topo-links a { color: #fff; text-decoration: none; }
.topo-links a:hover { text-decoration: underline; }
.topo-linha { display: flex; align-items: center; gap: 28px; padding-top: 6px; padding-bottom: 10px; }

.logo { display: flex; align-items: center; gap: 10px; text-decoration: none; flex: none; color: inherit; }
.logo-icone {
  width: 44px; height: 44px; display: grid; place-items: center;
  border-radius: 12px;
  box-shadow: 0 0 0 2px rgba(255, 255, 255, .75), 0 6px 16px rgba(30, 0, 60, .35);
  transition: transform .2s;
}
.logo:hover .logo-icone { transform: rotate(-8deg) scale(1.06); }
.logo-texto { font-size: 1.3rem; letter-spacing: -.02em; margin: 0; }
.logo-texto strong { color: var(--roxo); font-weight: 800; }
.topo .logo-texto strong { color: #fde047; }

.topo-acoes { margin-left: auto; flex: none; display: flex; gap: 8px; }
.botao-topo {
  position: relative; flex: none;
  width: 44px; height: 44px; border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, .55); background: rgba(255, 255, 255, .14); color: #fff;
  display: grid; place-items: center; transition: transform .15s;
}
.botao-topo:hover { transform: scale(1.08); }
.botao-conta .inicial {
  width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center;
  background: var(--gradiente); color: #fff; font-weight: 800; font-size: 1rem;
}
.contador {
  position: absolute; top: -4px; right: -4px;
  min-width: 20px; height: 20px; padding: 0 5px; border-radius: 999px;
  background: #facc15; color: #3b2a00; font-size: .72rem; font-weight: 700;
  display: grid; place-items: center;
}
.contador.pulo { animation: pulo .4s ease; }
@keyframes pulo { 50% { transform: scale(1.4); } }

/* ---------- busca ---------- */
.busca { position: relative; display: flex; }
.busca input {
  flex: 1; min-width: 0; border: 2px solid transparent; outline: none;
  background: var(--card); color: var(--texto);
}
.busca input::-webkit-search-cancel-button { cursor: pointer; }
.busca button {
  display: flex; align-items: center; gap: 8px; border: 0; color: #fff;
  background: linear-gradient(135deg, var(--laranja), var(--rosa));
  font-weight: 700; transition: filter .15s, transform .15s;
}
.busca button:hover { filter: brightness(1.08); }
.busca button:active { transform: scale(.97); }

.topo-busca { flex: 1; min-width: 0; max-width: 960px; }
.busca-topo { background: #fff; border-radius: 12px; padding: 3px; }
.busca-topo input { height: 42px; padding: 0 14px; border: 0; border-radius: 10px 0 0 10px; background: #fff; color: #1a1530; font-size: .98rem; }
.busca-topo button { padding: 0 26px; border-radius: 9px; }

/* termos em alta, logo abaixo da busca */
.em-alta { display: flex; gap: 16px; margin-top: 6px; overflow: hidden; white-space: nowrap; }
.chips { display: flex; gap: 16px; }
.chip-alta {
  border: 0; background: none; padding: 0; color: rgba(255, 255, 255, .9);
  font-size: .78rem; cursor: pointer;
}
.chip-alta:hover { color: #fff; text-decoration: underline; }

.sugestoes {
  position: absolute; top: calc(100% + 8px); left: 0; right: 0; z-index: 40;
  list-style: none; margin: 0; padding: 6px;
  background: var(--card); color: var(--texto); text-align: left;
  border: 1px solid var(--borda); border-radius: 14px; box-shadow: var(--sombra-forte);
}
.sugestoes li {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 12px; border-radius: 10px; cursor: pointer;
}
.sugestoes li::before { content: "🔍"; font-size: .85rem; opacity: .6; }
.sugestoes li[aria-selected="true"], .sugestoes li:hover { background: var(--roxo-claro); }
.sugestoes mark { background: none; color: var(--roxo); font-weight: 700; }

/* ---------- loja (bolinha colorida) ---------- */
.loja-ponto { width: 10px; height: 10px; border-radius: 50%; flex: none; background: var(--cor-loja); box-shadow: 0 0 0 3px color-mix(in srgb, var(--cor-loja) 25%, transparent); }

/* ---------- seções ---------- */
.secao { margin-top: 40px; }
.secao-ofertas { margin-top: 24px; }
.secao-titulo { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.secao-titulo .botao-frete { margin: 0 auto 0 14px; }
.secao-titulo h2 { margin: 0; font-size: clamp(1.3rem, 3vw, 1.7rem); letter-spacing: -.02em; }
/* "🔍 Buscando ofertas do dia…": a lupa procura de um lado para o outro */
.secao-titulo h2.carregando { color: var(--suave); }
.secao-titulo h2 .lupa { display: inline-block; animation: lupa-procura 1.2s ease-in-out infinite; }
@keyframes lupa-procura {
  0%, 100% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(-4px) rotate(-12deg); }
  75% { transform: translateX(4px) rotate(12deg); }
}

.setas { display: flex; gap: 8px; }
.seta {
  width: 40px; height: 40px; border-radius: 50%;
  border: 1px solid var(--borda); background: var(--card);
  font-size: 1.4rem; line-height: 1; transition: background .15s, color .15s;
}
.seta:hover { background: var(--roxo); color: #fff; border-color: var(--roxo); }

.carrossel {
  display: grid; grid-auto-flow: column; grid-auto-columns: minmax(230px, 250px);
  gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory;
  padding: 4px 4px 18px; margin: 0 -4px; scrollbar-width: thin;
}
.carrossel > * { scroll-snap-align: start; }

/* ---------- cartão de oferta ---------- */
.oferta {
  position: relative; display: flex; flex-direction: column;
  background: var(--card); border: 1px solid var(--borda); border-radius: var(--raio);
  overflow: hidden; box-shadow: var(--sombra);
  transition: transform .2s, box-shadow .2s, border-color .2s;
  animation: surgir .35s ease both;
}
.oferta:hover { transform: translateY(-5px); box-shadow: var(--sombra-forte); border-color: color-mix(in srgb, var(--roxo) 45%, var(--borda)); }
@keyframes surgir { from { opacity: 0; transform: translateY(12px); } }

.oferta.melhor { border: 2px solid var(--verde); }

.oferta-foto {
  position: relative; display: grid; place-items: center; aspect-ratio: 1 / 1;
  background: #fff; text-decoration: none; overflow: hidden;
}
.oferta-foto img { width: 100%; height: 100%; object-fit: contain; padding: 10px; transition: transform .3s; }
.oferta:hover .oferta-foto img, .oferta:hover .foto-emoji { transform: scale(1.07); }
.foto-emoji {
  width: 100%; height: 100%; display: grid; place-items: center; font-size: 4.5rem;
  background: var(--fundo-cat); transition: transform .3s;
}

.selos { position: absolute; top: 10px; left: 10px; max-width: calc(100% - 20px); display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.selo {
  font-size: .74rem; font-weight: 800; padding: 4px 10px; border-radius: 999px;
  color: #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, .15);
}
.selo-desconto { background: #dc2626; }
.selo-melhor { background: #15803d; }

.acoes-oferta { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; row-gap: 6px; }
/* Os links ficam ao lado dos botões redondos quando cabem; se não, vão para a linha de cima (sem quebrar "Ver detalhes") */
.acoes-oferta .links-oferta { flex: 1 1 100px; }
.acoes-oferta .links-oferta .ver-historico { white-space: nowrap; }
.botoes-oferta { display: flex; gap: 6px; margin-left: auto; flex: none; }
.botoes-oferta > * { margin-left: 0 !important; }
.favoritar {
  flex: none; margin-left: auto;
  width: 38px; height: 38px; border-radius: 50%; border: 1.5px solid var(--roxo);
  background: #fff; color: var(--roxo);
  display: grid; place-items: center; cursor: pointer;
  transition: transform .15s, color .15s, background .15s;
}
.favoritar:hover { transform: scale(1.12); }
.favoritar[aria-pressed="true"] { color: #fff; background: var(--roxo); animation: pulo .35s ease; }
.favoritar .icone-ok, .favoritar[aria-pressed="true"] .icone-mais { display: none; }
.favoritar[aria-pressed="true"] .icone-ok { display: inline; }
/* Sino do alerta de preço, ao lado do carrinho */
.alertar {
  flex: none; margin-left: auto;
  width: 38px; height: 38px; border-radius: 50%; border: 1.5px solid var(--roxo);
  background: #fff; font-size: 1rem; line-height: 1;
  display: grid; place-items: center; cursor: pointer; filter: grayscale(1); opacity: .75;
  transition: transform .15s, filter .15s, opacity .15s, background .15s;
}
.alertar:hover { transform: scale(1.12); filter: none; opacity: 1; }
.alertar[aria-pressed="true"] { filter: none; opacity: 1; background: #fef3c7; border-color: #d97706; }
.alertar + .favoritar { margin-left: 0; }
.whatsapp {
  flex: none; margin-left: auto;
  width: 38px; height: 38px; border-radius: 50%; border: 1.5px solid #16a34a; background: #fff; color: #16a34a;
  display: grid; place-items: center; cursor: pointer; transition: transform .15s, background .15s, color .15s;
}
.whatsapp:hover { transform: scale(1.12); background: #16a34a; color: #fff; }
.whatsapp + .alertar { margin-left: 0; }
.botao-whatsapp {
  display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; margin: 10px 0 0;
  padding: 11px 16px; border: 0; border-radius: 12px; background: #16a34a; color: #fff; font: inherit; font-weight: 800; cursor: pointer;
}
.botao-whatsapp:hover { background: #15803d; }
.icone-whatsapp { display: inline-grid; place-items: center; }

/* Comparar: pílula no canto da foto, barra no rodapé e janela com tabela */
.oferta-topo { position: relative; }
.comparar {
  position: absolute; bottom: 8px; right: 8px; z-index: 2;
  padding: 4px 10px; border-radius: 999px; border: 1.5px solid var(--roxo); background: rgba(255, 255, 255, .92);
  color: var(--roxo); font: inherit; font-size: .74rem; font-weight: 800; cursor: pointer;
}
.comparar:hover { background: var(--roxo-claro); }
.comparar[aria-pressed="true"] { background: var(--roxo); color: #fff; }
.barra-comparar {
  position: fixed; left: 50%; bottom: 16px; transform: translateX(-50%); z-index: 40;
  display: flex; align-items: center; gap: 12px; max-width: calc(100% - 32px);
  background: var(--card); border: 1px solid var(--borda); border-radius: 16px; padding: 10px 14px; box-shadow: var(--sombra-forte);
}
.barra-comparar .botao-primario { width: auto; margin: 0; padding: 10px 18px; white-space: nowrap; }
.barra-comparar .botao-primario[disabled] { opacity: .6; cursor: default; }
.barra-comparar-fotos { display: flex; gap: 6px; }
.barra-comparar-item { position: relative; width: 44px; height: 44px; border-radius: 10px; border: 1px solid var(--borda); background: #fff; padding: 0; cursor: pointer; overflow: hidden; display: grid; place-items: center; }
.barra-comparar-item img { width: 100%; height: 100%; object-fit: contain; }
.barra-comparar-item .tirar { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(26, 21, 48, .55); color: #fff; font-weight: 800; opacity: 0; transition: opacity .15s; }
.barra-comparar-item:hover .tirar { opacity: 1; }
body.com-comparar .rodape { padding-bottom: 96px; }
.janela.janela-comparar { width: min(1000px, calc(100vw - 32px)); max-width: none; max-height: calc(100vh - 32px); overflow-y: auto; }
.comparar-rolagem { overflow-x: auto; }
.tabela-comparar { width: 100%; border-collapse: collapse; font-size: .88rem; }
.tabela-comparar th, .tabela-comparar td { padding: 10px 8px; border-bottom: 1px solid var(--borda); text-align: left; vertical-align: top; min-width: 150px; }
.tabela-comparar tbody th { min-width: 90px; width: 100px; color: var(--suave); font-weight: 700; position: sticky; left: 0; background: var(--card); }
.tabela-comparar thead th:first-child { position: sticky; left: 0; background: var(--card); min-width: 90px; }
.tabela-comparar .titulo-botao { font-weight: 700; font-size: .85rem; text-align: left; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.comparar-foto { width: 100%; aspect-ratio: 1 / 1; max-width: 140px; border-radius: 10px; background: #fff; border: 1px solid var(--borda); display: grid; place-items: center; overflow: hidden; margin-bottom: 8px; }
.comparar-foto img { width: 100%; height: 100%; object-fit: contain; }
.comparar-preco { font-size: 1.1rem; display: block; }
.comparar-melhor { color: var(--verde); font-weight: 800; }
.comparar-melhor small, .tabela-comparar small { display: block; font-weight: 700; }
.tabela-comparar td .botao-oferta { display: flex; margin-bottom: 6px; }

/* "Vale a pena comprar agora?" (janelas de histórico, detalhes e alerta) */
.momento { display: flex; flex-direction: column; gap: 2px; border-radius: 12px; padding: 10px 12px; margin: 0 0 12px; font-size: .88rem; border: 1px solid; }
.momento strong { font-size: .95rem; }
.momento-verde { background: #f0fdf4; border-color: #86efac; color: #14532d; }
.momento-amarelo { background: #fefce8; border-color: #fde047; color: #713f12; }
.momento-vermelho { background: #fef2f2; border-color: #fca5a5; color: #7f1d1d; }
.momento-cedo { background: var(--bg); border-color: var(--borda); color: var(--suave); }
.momento-cedo strong { color: var(--texto); }

/* "Confirme seu e-mail" em "Meus alertas de preço" (conta com senha: os avisos só saem depois da confirmação) */
.aviso-confirmar { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; border-radius: 12px; padding: 10px 12px;
  margin: 0 0 12px; font-size: .88rem; background: #fefce8; border: 1px solid #fde047; color: #713f12; }
.aviso-confirmar strong { font-size: .95rem; }

/* Janela do alerta de preço */
.alerta-produto { display: flex; gap: 12px; align-items: center; margin: 0 0 12px; }
.alerta-produto img { width: 64px; height: 64px; object-fit: contain; border-radius: 10px; background: #fff; border: 1px solid var(--borda); flex: none; }
.alerta-produto strong { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: .9rem; }
.alerta-produto span { font-size: .85rem; color: var(--suave); }
.opcoes-alerta { border: 0; padding: 0; margin: 0 0 8px; display: flex; flex-direction: column; gap: 8px; }
.opcoes-alerta legend { font-weight: 800; margin-bottom: 6px; }
.opcao-alerta { display: flex !important; align-items: center; gap: 8px; flex-wrap: wrap; font-weight: 600; }
.opcao-alerta input[type="radio"] { width: 18px; height: 18px; padding: 0; margin: 0; accent-color: var(--roxo); }
.opcao-alerta input[name="alvo"] { width: 130px; height: 40px; margin: 0; }
.aviso-alerta { background: #fef3c7; border-radius: 10px; padding: 8px 12px; font-weight: 700; }
.botao-alerta { width: 100%; margin: 12px 0 0; }
.lista-alertas { list-style: none; padding: 0; margin: 0 0 8px; display: flex; flex-direction: column; gap: 10px; max-height: 55vh; overflow: auto; }
.lista-alertas li { display: flex; gap: 10px; align-items: center; border: 1px solid var(--borda); border-radius: 12px; padding: 8px; }
.lista-alertas img { width: 48px; height: 48px; object-fit: contain; flex: none; border-radius: 8px; }
.lista-alertas div { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.lista-alertas a { font-weight: 700; font-size: .85rem; color: inherit; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.lista-alertas span { font-size: .78rem; color: var(--suave); }

.oferta-corpo { display: flex; flex-direction: column; gap: 6px; padding: 14px 16px 16px; flex: 1; }

.loja-tag {
  display: inline-flex; align-items: center; align-self: flex-start; gap: 7px; max-width: 100%;
  font-size: .8rem; font-weight: 800; color: var(--roxo-forte); background: var(--roxo-claro);
  padding: 3px 10px 3px 8px; border-radius: 999px;
}

.oferta-titulo {
  margin: 0; font-size: .97rem; font-weight: 600; line-height: 1.35;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  min-height: 2.7em;
}

.nota { display: flex; align-items: center; flex-wrap: wrap; gap: 2px 8px; font-size: .8rem; color: var(--suave); }
.nota span { white-space: nowrap; }
.estrelas { color: #f59e0b; letter-spacing: 1px; }

.precos { margin-top: auto; padding-top: 6px; }
.preco-antigo { font-size: .85rem; color: var(--suave); text-decoration: line-through; }
.preco { display: block; font-size: 1.55rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.15; }
.preco small { font-size: .9rem; font-weight: 700; margin-right: 2px; }

.frete { display: inline-block; align-self: flex-start; font-size: .82rem; font-weight: 800; color: #fff; background: #16a34a; padding: 4px 10px; border-radius: 8px; }
.economia-tag { display: block; margin-top: 2px; font-size: .8rem; font-weight: 700; color: var(--verde); }
.nota .vendidos-muitos { color: #ea580c; font-weight: 700; }
.selo-vendido { background: #f59e0b; color: #3b2a00; }
.so-curto { display: none; }
@media (max-width: 640px) { .so-longo { display: none; } .so-curto { display: inline; } }
.internacional { display: inline-block; align-self: flex-start; font-size: .75rem; font-weight: 700; color: #1d4ed8; background: #dbeafe; padding: 3px 8px; border-radius: 6px; margin-top: 4px; }

.botao-oferta {
  display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: 10px;
  padding: 12px; border-radius: 12px; font-weight: 800; text-decoration: none; font-size: .95rem; line-height: 1.4rem;
  /* Uma cor só para todas as lojas (muitas lojas = "salada de frutas"; pedido do Giovanni, 20/10/2026).
     A loja aparece em destaque no selo acima do nome do produto (.loja-tag) */
  background: var(--gradiente); color: #fff;
  transition: filter .15s, transform .15s;
}
.botao-oferta > span:not(.flecha) { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.botao-oferta.texto-longo { font-size: .84rem; }
@media (max-width: 640px) {
  .botao-oferta .comprar-curto { display: inline-flex; flex-direction: column; align-items: center; line-height: 1.15; min-width: 0; }
  .botao-oferta .comprar-curto small { font-size: .72rem; font-weight: 700; opacity: .92; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}
.botao-oferta:hover { filter: brightness(1.08); }
.botao-oferta:active { transform: scale(.97); }
.botao-oferta .flecha { transition: transform .2s; }
.botao-oferta:hover .flecha { transform: translateX(4px); }

/* esqueleto enquanto carrega */
.oferta.carregando .oferta-foto,
.oferta.carregando .linha {
  background: linear-gradient(90deg, var(--borda) 25%, var(--bg) 50%, var(--borda) 75%);
  background-size: 200% 100%; animation: brilho 1.2s infinite;
}
.oferta.carregando .linha { height: 14px; border-radius: 6px; }
@keyframes brilho { to { background-position: -200% 0; } }

/* ---------- resultados ---------- */
#resultados { padding-top: 24px; padding-bottom: 64px; }
.barra-lista { margin-top: 20px; }

.resumo {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px;
  padding: 22px 24px; border-radius: 20px; background: var(--gradiente); color: #fff;
  box-shadow: var(--sombra-forte);
}
.resumo h1 { margin: 0; font-size: clamp(1.4rem, 4vw, 2rem); letter-spacing: -.02em; }
.resumo h1 span { opacity: .8; font-weight: 600; }
.resumo p { margin: 4px 0 0; opacity: .9; }
.resumo .resumo-categoria { margin-top: 8px; font-weight: 600; opacity: 1; }
.resumo-categoria button {
  font: inherit; font-size: .85rem; color: #fff; cursor: pointer;
  padding: 3px 10px; border-radius: 999px; background: rgba(255, 255, 255, .18); border: 1px solid rgba(255, 255, 255, .35);
}
.resumo-categoria button:hover { background: rgba(255, 255, 255, .3); }
.resumo .aviso-sem-produto {
  margin-top: 12px; padding: 10px 14px; border-radius: 12px; font-weight: 600; opacity: 1;
  background: rgba(255, 255, 255, .18); border: 1px solid rgba(255, 255, 255, .35);
}

/* Lojas da busca dentro do card de resultados: botões que ligam/desligam cada loja */
.resumo-lojas { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 14px; }
.resumo-lojas-titulo { font-weight: 700; font-size: .9rem; margin-right: 2px; }
.chip-loja, .chip-acao {
  display: inline-flex; align-items: center; gap: 8px; font: inherit; font-size: .88rem; font-weight: 600; cursor: pointer;
  padding: 6px 12px; border-radius: 999px; transition: background .15s, color .15s, opacity .15s;
}
.chip-loja { color: var(--texto); background: #fff; border: 1px solid #fff; }
.chip-loja .qtd { font-size: .76rem; color: var(--suave); background: var(--bg); padding: 1px 7px; border-radius: 999px; }
.chip-loja[aria-pressed="false"] { color: #fff; background: transparent; border-color: rgba(255, 255, 255, .5); opacity: .75; text-decoration: line-through; }
.chip-loja[aria-pressed="false"] .loja-ponto { box-shadow: none; opacity: .6; }
.chip-loja[aria-pressed="false"] .qtd { background: rgba(255, 255, 255, .2); color: #fff; }
.chip-loja:hover { opacity: 1; }
.chip-acao { color: #fff; background: rgba(255, 255, 255, .18); border: 1px solid rgba(255, 255, 255, .35); }
.chip-acao:hover { background: rgba(255, 255, 255, .3); }
.resumo-acoes { margin-top: 10px; }
.chip-limpar { font-weight: 700; }
.resumo .resumo-lojas-nota { flex-basis: 100%; font-size: .78rem; opacity: .85; }

/* Animação "buscando": boneco empurrando o carrinho da esquerda para a direita, olhando para os lados */
.anim-buscando {
  position: relative; flex: 1 1 260px; align-self: stretch; min-height: 96px; margin: -10px 0; overflow: hidden;
  background: repeating-linear-gradient(90deg, rgba(255, 255, 255, .45) 0 14px, transparent 14px 26px) left bottom 6px / 100% 3px no-repeat;
}
.anim-andando { position: absolute; bottom: 8px; left: 0; width: 140px; animation: anim-andar 7s linear infinite; }
.anim-andando svg { display: block; width: 100%; height: auto; overflow: visible; }
.anim-corpo { animation: anim-pulo .3s ease-in-out infinite alternate; }
.anim-perna { transform-box: view-box; transform-origin: 45px 62px; animation: anim-passo .5s ease-in-out infinite alternate; animation-delay: var(--fase); }
.anim-cabeca { transform-box: view-box; transform-origin: 46px 28px; animation: anim-cabeca 3.5s ease-in-out infinite; }
.anim-olhos { animation: anim-olhos 3.5s ease-in-out infinite; }
.anim-rabo { transform-box: view-box; transform-origin: 36px 14px; animation: anim-rabo .3s ease-in-out infinite alternate; }
@keyframes anim-rabo { from { transform: rotate(-10deg); } to { transform: rotate(12deg); } }
.anim-vento path { animation: anim-vento .8s ease-in-out infinite; }
.anim-vento path:nth-child(2) { animation-delay: .25s; }
.anim-vento path:nth-child(3) { animation-delay: .5s; }
.anim-roda { transform-box: fill-box; transform-origin: center; animation: anim-roda .6s linear infinite; }
@keyframes anim-andar { from { left: -150px; } to { left: 100%; } }
/* Produtos caindo no carrinho, um de cada vez, no mesmo ritmo da caminhada (7 s): no fim o carrinho está cheio */
.anim-produto { opacity: 0; }
.anim-produto.p1 { animation: anim-encher-1 7s linear infinite; }
.anim-produto.p2 { animation: anim-encher-2 7s linear infinite; }
.anim-produto.p3 { animation: anim-encher-3 7s linear infinite; }
.anim-produto.p4 { animation: anim-encher-4 7s linear infinite; }
.anim-produto.p5 { animation: anim-encher-5 7s linear infinite; }
.anim-produto.p6 { animation: anim-encher-6 7s linear infinite; }
@keyframes anim-encher-1 { 0%, 8% { opacity: 0; transform: translateY(-45px); } 8.5% { opacity: 1; } 12% { transform: translateY(0); } 13% { transform: translateY(-3px); } 14%, 100% { opacity: 1; transform: translateY(0); } }
@keyframes anim-encher-2 { 0%, 18% { opacity: 0; transform: translateY(-45px); } 18.5% { opacity: 1; } 22% { transform: translateY(0); } 23% { transform: translateY(-3px); } 24%, 100% { opacity: 1; transform: translateY(0); } }
@keyframes anim-encher-3 { 0%, 28% { opacity: 0; transform: translateY(-45px); } 28.5% { opacity: 1; } 32% { transform: translateY(0); } 33% { transform: translateY(-3px); } 34%, 100% { opacity: 1; transform: translateY(0); } }
@keyframes anim-encher-4 { 0%, 40% { opacity: 0; transform: translateY(-45px); } 40.5% { opacity: 1; } 44% { transform: translateY(0); } 45% { transform: translateY(-3px); } 46%, 100% { opacity: 1; transform: translateY(0); } }
@keyframes anim-encher-5 { 0%, 52% { opacity: 0; transform: translateY(-45px); } 52.5% { opacity: 1; } 56% { transform: translateY(0); } 57% { transform: translateY(-3px); } 58%, 100% { opacity: 1; transform: translateY(0); } }
@keyframes anim-encher-6 { 0%, 64% { opacity: 0; transform: translateY(-45px); } 64.5% { opacity: 1; } 68% { transform: translateY(0); } 69% { transform: translateY(-3px); } 70%, 100% { opacity: 1; transform: translateY(0); } }
@keyframes anim-pulo { to { transform: translateY(-2px); } }
@keyframes anim-passo { from { transform: rotate(-22deg); } to { transform: rotate(22deg); } }
@keyframes anim-cabeca {
  0%, 12% { transform: rotate(0); } 20%, 38% { transform: rotate(-12deg); }
  46%, 64% { transform: rotate(12deg); } 72%, 100% { transform: rotate(0); }
}
@keyframes anim-olhos {
  0%, 12% { transform: translateX(1px); } 20%, 38% { transform: translateX(-3px); }
  46%, 64% { transform: translateX(3px); } 72%, 100% { transform: translateX(1px); }
}
@keyframes anim-vento { 0%, 100% { opacity: .2; transform: translateX(6px); } 50% { opacity: 1; transform: translateX(-6px); } }
@keyframes anim-roda { to { transform: rotate(360deg); } }
/* Jeito de andar (Meu personagem, 23/10/2026): correndo = tudo mais rápido; de patins = desliza, pernas quase paradas */
.anim-correndo { animation-duration: 4s; }
.anim-correndo .anim-perna { animation-duration: .22s; }
.anim-correndo .anim-roda { animation-duration: .3s; }
.anim-correndo .anim-corpo { animation-duration: .15s; }
.anim-patins { animation-duration: 5.5s; }
.anim-patins .anim-perna { animation: anim-patinar 1.1s ease-in-out infinite alternate; animation-delay: var(--fase); }
@keyframes anim-patinar { from { transform: rotate(-8deg); } to { transform: rotate(10deg); } }
/* Chamas do carrinho de corrida e fumaça do foguete */
.anim-chama { transform-box: fill-box; transform-origin: right center; animation: anim-chama .18s ease-in-out infinite alternate; }
@keyframes anim-chama { from { transform: scaleX(.75); opacity: .85; } to { transform: scaleX(1.15); opacity: 1; } }
.anim-fumaca circle { animation: anim-fumaca 1s ease-out infinite; }
.anim-fumaca circle:nth-child(2) { animation-delay: .33s; }
.anim-fumaca circle:nth-child(3) { animation-delay: .66s; }
@keyframes anim-fumaca { from { opacity: .9; transform: translateX(0); } to { opacity: 0; transform: translateX(-10px); } }

/* Página: barra lateral (ordem, categorias, lojas, filtros) + conteúdo */
/* Cabeçalho, página e rodapé usam a tela toda: a barra lateral encosta na esquerda */
.topo .container, .pagina, .rodape .container { max-width: none; padding-left: 20px; padding-right: 20px; }
@media (max-width: 640px) { .topo .container, .pagina, .rodape .container { padding-left: 16px; padding-right: 16px; } }
.pagina { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 24px; align-items: start; }
.pagina-conteudo { min-width: 0; }
@media (min-width: 861px) { .filtros .filtros-cabecalho { display: none; } }
.grade > .vazio { grid-column: 1 / -1; }

.filtros {
  position: sticky; top: calc(var(--altura-topo, 120px) + 16px); margin-top: 24px;
  max-height: calc(100vh - var(--altura-topo, 120px) - 32px); overflow-y: auto; scrollbar-width: thin;
  padding: 4px 20px 20px; border-radius: var(--raio); background: var(--card); border: 1px solid var(--borda);
}
.filtros .opcao { padding: 5px 8px; font-size: .92rem; }
.cat-ordem { display: inline-flex; gap: 2px; padding: 3px; margin-bottom: 8px; border-radius: 999px; background: var(--roxo-claro); }
.cat-ordem button { border: 0; background: none; padding: 4px 12px; border-radius: 999px; font: inherit; font-size: .8rem; font-weight: 600; color: var(--suave); cursor: pointer; }
.cat-ordem button[aria-pressed="true"] { background: var(--card); color: var(--roxo); box-shadow: 0 1px 3px rgba(26, 21, 48, .12); }
.cat-lista { display: grid; gap: 2px; }
.cat-item {
  display: flex; align-items: center; gap: 10px; padding: 5px 8px; margin: 0 -8px;
  border: 0; border-radius: 10px; background: transparent; color: inherit; font-weight: 600; font-size: .92rem; text-align: left;
}
.cat-item:hover, .cat-item.ativa { background: var(--roxo-claro); }
.cat-item.ativa { color: var(--roxo); }
.cat-lista:not(.todas) .cat-item:nth-child(n + 13) { display: none; }
.cat-ver-todas { grid-column: 1 / -1; justify-self: start; margin-top: 4px; border: 0; background: none; padding: 4px 0; color: var(--roxo); font-weight: 700; font-size: .88rem; }
.cat-ver-todas:hover { text-decoration: underline; }
.cat-icone {
  width: 30px; height: 30px; flex: none; display: grid; place-items: center; font-size: 1.05rem;
  border-radius: 9px; background: var(--fundo-cat);
}
.filtros-cabecalho { display: flex; align-items: center; justify-content: space-between; }
.filtros h2 { margin: 0; font-size: 1.1rem; }
.filtros fieldset { border: 0; padding: 0; margin: 18px 0 0; }
.filtros legend { font-weight: 700; font-size: .85rem; text-transform: uppercase; letter-spacing: .06em; color: var(--suave); margin-bottom: 8px; }

.opcao {
  display: flex; align-items: center; gap: 10px; padding: 7px 8px; margin: 0 -8px;
  border-radius: 10px; cursor: pointer; font-weight: 500;
}
.opcao:hover { background: var(--roxo-claro); }
.opcao input { width: 18px; height: 18px; accent-color: var(--roxo); }
.opcao .qtd { margin-left: auto; font-size: .78rem; color: var(--suave); background: var(--bg); padding: 1px 8px; border-radius: 999px; }

.faixa-preco { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.faixa-preco label { font-size: .8rem; color: var(--suave); }
.faixa-preco input {
  width: 100%; margin-top: 4px; padding: 9px 10px; border-radius: 10px;
  border: 1px solid var(--borda); background: var(--bg); color: var(--texto);
}
.faixa-preco input:focus { outline: 2px solid var(--roxo); border-color: transparent; }

.botao-secundario, .botao-primario {
  width: 100%; margin-top: 20px; padding: 11px; border-radius: 12px; font-weight: 700;
}
.botao-secundario { border: 1px solid var(--borda); background: transparent; }
.botao-secundario:hover { border-color: var(--roxo); color: var(--roxo); }
.botao-primario { border: 0; background: var(--gradiente); color: #fff; margin-top: 10px; }

.fechar { border: 0; background: transparent; font-size: 1.1rem; width: 36px; height: 36px; border-radius: 50%; }
.fechar:hover { background: var(--bg); }

.barra-lista { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.total { margin: 0; color: var(--suave); font-weight: 600; }
.botao-frete {
  padding: 7px 14px; border-radius: 999px; border: 1.5px solid var(--verde); background: var(--verde-fundo);
  color: var(--verde); font: inherit; font-size: .88rem; font-weight: 800; cursor: pointer;
}
.botao-frete:hover, .botao-frete[aria-pressed="true"] { background: var(--verde); color: #fff; }
.botao-filtros {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 9px 14px; border-radius: 10px; border: 1px solid var(--borda); background: var(--card); font-weight: 700;
}

.grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 18px; }

.vazio { text-align: center; padding: 60px 16px; color: var(--suave); }
.vazio span { font-size: 3rem; }
.vazio h3 { color: var(--texto); margin: 8px 0 4px; }

.so-celular { display: none; }

/* ---------- painel de favoritos ---------- */
.painel-fundo { position: fixed; inset: 0; z-index: 50; background: rgba(15, 12, 26, .5); animation: aparecer .2s; }
.painel {
  position: fixed; top: 0; right: 0; bottom: 0; z-index: 51;
  width: min(400px, 100%); background: var(--card); box-shadow: -10px 0 40px rgba(0, 0, 0, .2);
  display: flex; flex-direction: column; animation: deslizar .25s ease;
}
@keyframes aparecer { from { opacity: 0; } }
@keyframes deslizar { from { transform: translateX(100%); } }
.painel-cabecalho { display: flex; align-items: center; justify-content: space-between; padding: 18px 20px; border-bottom: 1px solid var(--borda); }
.painel-cabecalho h2 { margin: 0; font-size: 1.15rem; }
.painel-lista { overflow-y: auto; padding: 12px 16px; flex: 1; }
.fav-item { display: grid; grid-template-columns: 64px 1fr auto; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--borda); }
.fav-foto { width: 64px; height: 64px; border-radius: 12px; overflow: hidden; display: grid; place-items: center; font-size: 2rem; background: var(--fundo-cat, var(--bg)); }
.fav-foto img { width: 100%; height: 100%; object-fit: contain; background: #fff; }
.fav-item a { text-decoration: none; font-weight: 600; font-size: .9rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.fav-item a:hover { color: var(--roxo); }
.fav-item strong { display: block; margin-top: 2px; }
.fav-vazio { text-align: center; color: var(--suave); padding: 48px 12px; }
.fav-vazio span { font-size: 2.5rem; }
.painel-conta { padding: 14px 20px 18px; border-top: 1px solid var(--borda); background: var(--roxo-claro); font-size: .9rem; }
.painel-conta p { margin: 0 0 10px; }

/* ---------- janela da conta ---------- */
.janela {
  width: min(420px, calc(100% - 32px)); padding: 28px 24px 24px; border: 0; border-radius: 22px;
  background: var(--card); color: var(--texto); box-shadow: 0 20px 60px rgba(0, 0, 0, .35);
}
.janela::backdrop { background: rgba(15, 12, 26, .55); }
.janela[open] { animation: aparecer .2s; }
.janela-fechar { position: absolute; top: 14px; right: 14px; }
.janela h2 { margin: 0 0 6px; font-size: 1.3rem; padding-right: 32px; }
.janela p { color: var(--suave); margin: 0 0 16px; font-size: .92rem; }
.janela form { display: grid; gap: 12px; }
.janela label { display: grid; gap: 6px; font-weight: 600; font-size: .88rem; }
.janela input {
  height: 48px; padding: 0 14px; border-radius: 12px; border: 1.5px solid var(--borda);
  background: var(--bg); color: var(--texto); font: inherit; font-size: 1rem;
}
.janela input:focus { outline: none; border-color: var(--roxo); }
.janela .botao-primario { width: 100%; }
.janela .botao-primario[disabled] { opacity: .6; cursor: wait; }
.janela .legal { font-size: .8rem; margin: 4px 0 0; }
.janela .erro-conta { color: var(--vermelho); font-weight: 600; margin: 0; font-size: .88rem; }
.janela .botao-google {
  width: 100%; display: flex; align-items: center; justify-content: center; gap: 10px; padding: 11px;
  border-radius: 12px; border: 1px solid var(--borda); background: #fff; color: #1f1f1f; font-weight: 700;
}
.janela .botao-google:hover { border-color: var(--roxo); }
.janela .separador { display: flex; align-items: center; gap: 10px; margin: 14px 0; font-size: .82rem; }
.janela .separador::before, .janela .separador::after { content: ""; flex: 1; border-top: 1px solid var(--borda); }
.janela .campo-senha { position: relative; }
.janela .campo-senha input { width: 100%; padding-right: 84px; }
.janela .mostrar-senha { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); font-size: .82rem; }
.janela .links-conta { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.botao-link { border: 0; background: none; padding: 0; color: var(--roxo); font: inherit; font-weight: 600; font-size: .88rem; cursor: pointer; text-decoration: underline; }
.botao-link.perigo { color: var(--vermelho); }
.conta-dados { background: var(--bg); border-radius: 14px; padding: 14px 16px; margin-bottom: 16px; }
.botao-personagem { width: 100%; margin-top: 8px; }
/* Meu personagem: prévia andando + opções */
/* Na prévia o personagem fica no meio, andando sem sair do lugar (atravessando a tela ele aparecia cortado) */
.previa-personagem .anim-andando { left: calc(50% - 70px); animation: none; }
.botao-sortear { width: 100%; margin: 0 0 12px; }
/* Editor do personagem no computador: janela larga, prévia e botões à esquerda, opções em 2 colunas (sem rolar) */
.janela.janela-larga { width: min(1120px, calc(100% - 32px)); max-height: calc(100vh - 24px); }
.editor-personagem { display: grid; grid-template-columns: 300px 1fr; gap: 28px; align-items: start; }
.editor-lado { display: flex; flex-direction: column; }
.editor-lado .previa-personagem { margin-top: 0; }
.editor-opcoes { columns: 2; column-gap: 28px; }
.editor-opcoes .grupo-personagem { break-inside: avoid; }
@media (max-width: 860px) {
  .editor-personagem { grid-template-columns: 1fr; gap: 0; }
  .editor-opcoes { columns: 1; order: 1; }
  .editor-lado { display: contents; }
  .editor-lado > .erro-conta, .editor-lado > .botao-primario, .editor-lado > .links-conta { order: 2; }
}
.previa-personagem { flex: none; height: 110px; margin: 4px 0 12px; border-radius: 14px; background-color: transparent; background-image: repeating-linear-gradient(90deg, rgba(255, 255, 255, .45) 0 14px, transparent 14px 26px), var(--gradiente); background-size: 100% 3px, 100% 100%; background-position: left bottom 6px, 0 0; background-repeat: no-repeat; }
.grupo-personagem { margin-bottom: 10px; }
.grupo-personagem .titulo-grupo { display: block; font-size: .8rem; font-weight: 700; color: var(--suave); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 6px; }
.opcoes-personagem { display: flex; flex-wrap: wrap; gap: 6px; }
.chip-personagem { font: inherit; font-size: .85rem; padding: 6px 12px; border-radius: 999px; border: 1.5px solid var(--borda); background: #fff; cursor: pointer; }
.chip-personagem.ativa { border-color: var(--roxo); background: var(--roxo-claro); font-weight: 700; }
.cor-personagem { width: 30px; height: 30px; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 0 0 1.5px var(--borda); cursor: pointer; }
.cor-personagem.ativa { box-shadow: 0 0 0 3px var(--roxo); }
.conta-dados strong { display: block; }
.conta-dados span { color: var(--suave); font-size: .9rem; word-break: break-all; }

/* ---------- toast ---------- */
.toast {
  position: fixed; left: 50%; bottom: 24px; z-index: 60;
  transform: translate(-50%, 140%); opacity: 0;
  padding: 12px 20px; border-radius: 12px; background: #1a1530; color: #fff; font-weight: 600;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .3); transition: transform .3s, opacity .3s; pointer-events: none;
  max-width: calc(100% - 32px); text-align: center;
}
.toast.visivel { transform: translate(-50%, 0); opacity: 1; }

/* ---------- rodapé ---------- */
.rodape { border-top: 1px solid var(--borda); background: var(--card); padding: 32px 0; font-size: .88rem; color: var(--suave); }
.rodape-conteudo { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; }
.rodape p { margin: 4px 0; }
.rodape .logo-texto { color: var(--texto); font-size: 1.05rem; }
.rodape-aviso { max-width: 460px; }

/* ---------- celular ---------- */
@media (max-width: 860px) {
  .pagina { grid-template-columns: 1fr; }
  .so-celular { display: inline-flex; justify-content: center; }
  .filtros {
    position: fixed; inset: auto 0 0 0; top: auto; z-index: 51;
    max-height: 85vh; overflow-y: auto; border-radius: 22px 22px 0 0;
    box-shadow: 0 -10px 40px rgba(0, 0, 0, .25);
    transform: translateY(105%); transition: transform .3s ease; visibility: hidden;
  }
  .filtros.aberto { transform: none; visibility: visible; }
  .filtros { margin-top: 0; padding-top: 16px; }
  .cat-lista { grid-template-columns: 1fr 1fr; column-gap: 20px; }
  .secao-titulo .botao-filtros { font-size: .85rem; padding: 8px 12px; }
  .botao-primario.so-celular { display: block; }
}

@media (max-width: 640px) {
  .topo-faixa { display: none; }
  .topo-linha { flex-wrap: wrap; padding-top: 10px; padding-bottom: 10px; gap: 10px; }
  .topo-busca { order: 3; flex-basis: 100%; max-width: none; }
  .em-alta { display: none; }
  .logo-texto { font-size: 1.1rem; }
  .logo-icone { width: 38px; height: 38px; }



  .grade { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .oferta-corpo { padding: 10px 12px 12px; }
  .oferta-titulo { font-size: .86rem; }
  .preco { font-size: 1.25rem; }
  .botao-oferta { font-size: .82rem; padding: 10px 6px; }
  .favoritar, .alertar, .whatsapp { width: 34px; height: 34px; }
  .comparar { bottom: 6px; right: 6px; padding: 3px 8px; }
  .barra-comparar { bottom: 10px; gap: 8px; padding: 8px 10px; }
  .barra-comparar-item { width: 36px; height: 36px; }
  .barra-comparar .botao-primario { padding: 9px 12px; font-size: .85rem; }
  .tabela-comparar th, .tabela-comparar td { min-width: 130px; padding: 8px 6px; }
  .tabela-comparar tbody th, .tabela-comparar thead th:first-child { min-width: 72px; width: 72px; }
  /* Com o sino e o carrinho lado a lado, os links ("Ver detalhes", "Histórico") ficam numa linha só, em cima */
  .acoes-oferta { flex-wrap: wrap; row-gap: 6px; }
  .acoes-oferta .links-oferta { flex: 1 0 100%; }
  /* Selos menores e no máximo 2, para não cobrir a foto do produto */
  .selos { top: 8px; left: 8px; gap: 4px; }
  .selo { font-size: .66rem; padding: 3px 8px; }
  .selos .selo:nth-child(n + 3) { display: none; }
  .setas { display: none; }
  .resumo { padding: 18px; }
  .anim-buscando { flex-basis: 100%; margin: 0; }
}


/* ============ Histórico de preço ============ */
.selo-historico { background: #1d4ed8; }
.selo-real { background: var(--verde); }
.ver-historico {
  align-self: flex-start; background: none; border: 0; padding: 2px 0; cursor: pointer;
  font: inherit; font-size: .8rem; font-weight: 700; color: var(--roxo);
}
.ver-historico:hover { text-decoration: underline; }
.janela-historico { width: min(440px, calc(100vw - 32px)); }
.janela-historico .botao-oferta { margin-top: 8px; }
.historico-numeros { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 12px; }
.historico-numeros div { background: var(--bg); border-radius: 10px; padding: 8px; min-width: 0; }
.historico-numeros small { display: block; color: var(--suave); font-size: .75rem; }
.historico-numeros strong { font-size: .9rem; white-space: nowrap; }
.historico-nota { font-size: .8rem !important; margin: 10px 0 0 !important; }
.grafico-caixa { position: relative; }
.grafico { width: 100%; height: auto; display: block; touch-action: pan-y; }
.grafico-base { stroke: var(--borda); stroke-width: 1; }
.grafico-grade { stroke: var(--borda); stroke-width: 1; stroke-dasharray: 2 4; }
.grafico-linha { fill: none; stroke: var(--roxo); stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.grafico-ponto { fill: var(--card); stroke: var(--roxo); stroke-width: 2; }
.grafico-menor { fill: var(--verde); stroke: var(--card); stroke-width: 2; }
.grafico-menor-texto { fill: var(--verde); font-size: 10px; font-weight: 700; }
.grafico-costume { stroke: var(--suave); stroke-width: 1; stroke-dasharray: 5 4; opacity: .7; }
.grafico-costume-texto { fill: var(--suave); font-size: 9.5px; font-weight: 600; }
.grafico-atual { fill: var(--roxo); stroke: var(--card); stroke-width: 2; }
.grafico-halo { fill: var(--roxo); opacity: .16; }
.grafico-etiqueta { fill: var(--roxo); }
.grafico-etiqueta-texto { fill: #fff; font-size: 10px; font-weight: 700; }
.grafico-marca { fill: var(--roxo); stroke: var(--card); stroke-width: 2; }
.grafico-guia { stroke: var(--suave); stroke-width: 1; stroke-dasharray: 3 3; }
.grafico-eixo { fill: var(--suave); font-size: 10px; }
.grafico-dica {
  position: absolute; top: -6px; transform: translateX(-50%); pointer-events: none;
  background: var(--texto); color: var(--card); border-radius: 10px; padding: 5px 10px;
  font-size: .78rem; display: flex; gap: 6px; white-space: nowrap; box-shadow: 0 6px 18px rgba(26, 21, 48, .22);
}
.grafico-dica[hidden] { display: none; }

/* ============ Ver detalhes ============ */
.titulo-botao { all: unset; cursor: pointer; }
.titulo-botao:hover { color: var(--roxo); text-decoration: underline; }
.titulo-botao:focus-visible { outline: 2px solid var(--roxo); outline-offset: -2px; border-radius: 4px; }
/* O título que é botão também corta em 2 linhas (o corte do h3 não vale para o botão dentro dele) */
.oferta-titulo .titulo-botao { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-align: left; }
.links-oferta { display: flex; flex-wrap: wrap; gap: 4px 14px; }
.janela-detalhes { width: min(880px, calc(100vw - 32px)); max-height: calc(100vh - 32px); overflow-y: auto; }
.detalhes { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; }
.detalhes-foto {
  aspect-ratio: 1; border-radius: 14px; overflow: hidden; display: grid; place-items: center;
  background: var(--fundo-cat); font-size: 5rem;
}
.detalhes-foto img { width: 100%; height: 100%; object-fit: contain; background: #fff; }
.detalhes-miniaturas { display: flex; gap: 8px; margin-top: 10px; overflow-x: auto; }
.detalhes-miniaturas button { flex: none; width: 60px; height: 60px; padding: 0; border-radius: 10px; overflow: hidden; border: 2px solid var(--borda); background: #fff; cursor: pointer; }
.detalhes-miniaturas button.ativa { border-color: var(--roxo); }
.detalhes-miniaturas img { width: 100%; height: 100%; object-fit: cover; }
.detalhes-info { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.detalhes-info h2 { font-size: 1.15rem !important; line-height: 1.3; margin: 0 !important; padding-right: 28px; }
.detalhes-loja { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: .85rem; }
.detalhes-vendedor { color: var(--suave); }
.selo-oficial { font-size: .75rem; font-weight: 800; color: #fff; background: #dc2626; padding: 2px 8px; border-radius: 6px; }
.detalhes-selos { display: flex; flex-wrap: wrap; gap: 6px; }
.detalhes-selos .internacional { margin-top: 0; }
.internacional.nacional { color: #15803d; background: #dcfce7; }
.detalhes-descricao h3 { margin: 4px 0; font-size: .95rem; }
.detalhes-descricao p { margin: 0 !important; color: var(--texto) !important; font-size: .9rem !important; line-height: 1.5; }
.detalhes-info .preco-antigo { display: block; }
.detalhes-info .botao-oferta { margin-top: 4px; padding: 14px; font-size: 1rem; }
.detalhes-nota { font-size: .78rem !important; margin: 0 !important; }
@media (max-width: 700px) {
  .detalhes { grid-template-columns: 1fr; gap: 14px; }
  .detalhes-foto { aspect-ratio: 4 / 3; }
}
.detalhes-info .precos { margin-top: 4px; }
.janela-detalhes .janela-fechar { z-index: 2; background: var(--card); box-shadow: 0 2px 8px rgba(0, 0, 0, .2); }
.loja-linha { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.loja-linha .selo-oficial { font-size: .68rem; padding: 1px 6px; }

/* ============ Ver mais ofertas ============ */
.mais-ofertas { display: flex; justify-content: center; margin-top: 8px; }
.mais-ofertas .botao-secundario { width: auto; padding: 12px 36px; background: var(--card); }
.mais-ofertas .botao-secundario[disabled] { opacity: .6; cursor: wait; }

/* Bandeira do Brasil desenhada (o Windows não mostra o emoji 🇧🇷, aparece só "BR") */
.bandeira-br {
  display: inline-block; width: 1.3em; height: .9em; border-radius: 2px; vertical-align: -.12em; flex: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 14'%3E%3Crect width='20' height='14' fill='%23009c3b'/%3E%3Cpath d='M10 1.6 18.4 7 10 12.4 1.6 7z' fill='%23ffdf00'/%3E%3Ccircle cx='10' cy='7' r='3.1' fill='%23002776'/%3E%3C/svg%3E") center / cover no-repeat;
}

/* Lojas parceiras (22/10/2026): botão na barra lateral, link no card roxo e janela com todas as lojas */
.botao-ver-lojas { width: 100%; margin-top: 8px; padding: 9px 12px; font-size: .88rem; color: var(--roxo); border-color: var(--roxo); }
.botao-ver-lojas:hover { background: color-mix(in srgb, var(--roxo) 8%, transparent); }
.botao-link-claro { border: 0; background: none; padding: 0; color: inherit; font: inherit; font-weight: 700; text-decoration: underline; cursor: pointer; }
.resumo small.resumo-lojas-nota { display: block; margin-top: 8px; }
.janela-lojas { width: min(560px, calc(100% - 24px)); max-height: min(86vh, 760px); flex-direction: column; overflow: hidden; }
.janela-lojas[open] { display: flex; }
.janela-lojas input { width: 100%; flex: none; margin-bottom: 8px; }
.lojas-lista { overflow-y: auto; margin: 0 -24px -24px; padding: 0 24px 24px; }
.lojas-lista h3 { margin: 14px 0 6px; font-size: .78rem; text-transform: uppercase; letter-spacing: .05em; color: var(--suave); }
.lojas-lista ul { list-style: none; margin: 0; padding: 0; }
.lp-linha { display: flex; align-items: center; gap: 12px; padding: 10px 2px; border-bottom: 1px solid var(--borda); }
.lp-nome { flex: 1; min-width: 0; font-weight: 700; overflow-wrap: anywhere; }
.lp-nome small { display: block; font-weight: 500; font-size: .78rem; color: var(--suave); }
.lp-linha .botao-secundario { flex: none; width: auto; margin: 0; padding: 7px 14px; font-size: .85rem; font-weight: 700; color: var(--roxo); border-color: var(--roxo); border-radius: 999px; }
.lp-linha .botao-secundario:hover { background: var(--roxo); color: #fff; }
.lp-botoes { flex: none; display: flex; flex-direction: column; gap: 6px; align-items: stretch; }
.lp-botoes .botao-secundario, .lp-ir { text-align: center; }
.lp-ir { width: auto; margin: 0; padding: 7px 14px; font-size: .85rem; border-radius: 999px; min-height: 0; }

/* Cupons (24/10/2026): selo nos cartões, botão no card roxo da página inicial e janela com os cupons */
.selo-cupom { border: 1px dashed #b45309; background: #fffbeb; color: #b45309; font: inherit; font-size: .68rem; font-weight: 800;
  padding: 1px 6px; border-radius: 6px; cursor: pointer; }
.selo-cupom:hover { background: #fef3c7; }
.lp-nome .selo-cupom { margin-top: 3px; }
.botao-cupons-inicio { display: inline-block; margin-top: 10px; border: 0; border-radius: 999px; padding: 7px 16px; background: #fff;
  color: var(--roxo); font: inherit; font-size: .88rem; font-weight: 800; cursor: pointer; }
.botao-cupons-inicio:hover { background: #fef3c7; }
.cupons-lista { list-style: none; }
.cupom { padding: 12px 2px; border-bottom: 1px solid var(--borda); display: flex; flex-direction: column; gap: 6px; }
.cupom-topo { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.cupom-validade { color: var(--suave); font-size: .78rem; }
.cupom-titulo { font-size: 1rem; }
.cupom-descricao { margin: 0; font-size: .85rem; color: var(--suave); }
.cupom-acoes { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.cupom-codigo { display: inline-flex; align-items: stretch; border: 2px dashed #b45309; border-radius: 10px; overflow: hidden; background: #fffbeb; }
.cupom-codigo code { padding: 6px 12px; font-size: .95rem; font-weight: 800; letter-spacing: .04em; color: #92400e; user-select: all; }
.cupom-codigo code { letter-spacing: .12em; }
.cupom-codigo.revelado { background: #dcfce7; border-color: #16a34a; }
.cupom-codigo.revelado code { color: #166534; user-select: all; letter-spacing: .04em; }
.cupom-aviso { color: #166534; font-weight: 700; font-size: .82rem; }
.cupom-sem-codigo { font-size: .85rem; color: var(--suave); }
.cupom-ir { width: auto; margin: 0 0 0 auto; padding: 8px 16px; font-size: .88rem; text-decoration: none; }

/* Black Friday (24/10/2026): botão preto no card da página inicial, chip nos "em alta" e legenda no card roxo */
.botoes-inicio { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.botoes-inicio .botao-cupons-inicio { margin-top: 0; }
.botao-bf { background: #111827; color: #fff; }
.botao-bf:hover { background: #000; color: #facc15; }
.chip-bf { background: #111827 !important; color: #fff !important; border-color: #111827 !important; font-weight: 800; }
.bf-explica { font-size: .92rem; opacity: .95; }
.bf-legendas { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.bf-legenda { display: inline-flex; align-items: center; gap: 6px; background: rgba(255,255,255,.16); border-radius: 999px; padding: 4px 10px; font-size: .8rem; font-weight: 700; }
.bf-legenda .qtd { background: rgba(255,255,255,.25); border-radius: 999px; padding: 0 7px; }

/* Centavos menores e no alto (26/10/2026, pesquisa: o preço parece menor quando os centavos aparecem menores) */
.preco small { font-size: .52em; }
.preco .centavos { vertical-align: .62em; margin-left: 1px; }

/* "✨ Escolha rápida" no topo da busca (26/10/2026): 3 sugestões com o critério à mostra */
.escolha-rapida { animation: surgir .35s ease-out; margin-bottom: 22px; padding: 14px 16px 16px; border-radius: var(--raio); background: var(--roxo-claro); border: 1px solid #ddd6fe; }
.escolha-cabeca { margin: 0 0 10px; font-size: 1.05rem; color: var(--roxo-forte); }
.escolha-lista { display: grid; grid-template-columns: repeat(3, minmax(0, 260px)); gap: 18px; }
.escolha { display: flex; flex-direction: column; min-width: 0; }
.escolha .oferta { flex: 1; }
.escolha-titulo { margin: 0 0 8px; font-weight: 800; color: var(--roxo-forte); line-height: 1.2; }
.escolha-titulo small { display: block; font-weight: 500; font-size: .76rem; color: var(--suave); margin-top: 2px; min-height: 2.5em; }
@media (max-width: 640px) {
  .escolha-rapida { padding: 12px 10px; margin-bottom: 16px; }
  .escolha-lista { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 46%; gap: 10px;
    overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 4px; }
  .escolha { scroll-snap-align: start; }
  .escolha-titulo { font-size: .88rem; }
}

/* Foto que "voa" até o carrinho ao guardar um produto (26/10/2026) */
.voando { position: fixed; z-index: 1000; pointer-events: none; object-fit: cover; border-radius: 12px; background: #fff;
  box-shadow: 0 8px 24px rgba(0,0,0,.25); display: grid; place-items: center; font-size: 2.4rem; }
.botao-favoritos.chegou { animation: chegou .45s ease; }
@keyframes chegou { 30% { transform: scale(1.25) rotate(-8deg); } 60% { transform: scale(.95) rotate(4deg); } }

/* Resumo do Meu carrinho: total e "Você economiza" (26/10/2026) */
.fav-resumo { padding: 10px 12px; margin-bottom: 6px; border-radius: 12px; background: var(--roxo-claro); }
.fav-resumo p { margin: 0 0 4px; }
.fav-economia { color: #047857; font-weight: 600; }
.fav-resumo small { color: var(--suave); font-size: .75rem; }
.fav-antigo { margin-left: 6px; font-weight: 400; font-size: .8rem; color: var(--suave); }
.fim-da-grade { grid-column: 1 / -1; height: 1px; }

/* ============ Celular no molde do app do Mercado Livre (30/10/2026, pedido do Giovanni), com as nossas cores ============
   Topo numa linha só (ícone + busca), abas de categorias, atalhos com ícone, cartões enxutos (carrinho em cima da foto,
   desconto verde ao lado do preço antigo) e barra fixa embaixo (Início, Categorias, Carrinho, Cupons, Conta) */
.abas-cel, .atalhos-cel, .barra-baixo, .favoritar-foto, .desconto-pill { display: none; }
.linha-de { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.bb-item.chegou { animation: chegou .45s ease; }

@media (max-width: 640px) {
  /* Topo: ícone do logo + busca em formato de pílula; conta e carrinho foram para a barra de baixo */
  .topo-linha { flex-wrap: nowrap; gap: 10px; padding-top: 10px; padding-bottom: 6px; }
  .topo .logo-texto, .topo-acoes { display: none; }
  .topo-busca { order: 0; flex: 1; flex-basis: auto; }
  .logo-icone { width: 38px; height: 38px; border-radius: 50%; }
  .busca-topo { border-radius: 999px; padding: 3px; }
  .busca-topo input { height: 38px; border-radius: 999px 0 0 999px; padding: 0 16px; font-size: .95rem; }
  .busca-topo button { border-radius: 999px; padding: 0 16px; }

  /* Abas de categorias: deslizam para o lado, a ativa sublinhada */
  .abas-cel { display: flex; gap: 22px; overflow-x: auto; scrollbar-width: none; padding: 2px 16px 0; white-space: nowrap; }
  .abas-cel::-webkit-scrollbar { display: none; }
  .aba-cel { flex: none; border: 0; background: none; color: rgba(255, 255, 255, .88); font: inherit; font-size: .95rem; font-weight: 600;
    padding: 6px 0 10px; border-bottom: 3px solid transparent; cursor: pointer; }
  .aba-cel.ativa { color: #fff; font-weight: 800; border-bottom-color: #fde047; }

  /* Atalhos com ícone (só na página inicial) */
  .atalhos-cel { display: flex; gap: 14px; overflow-x: auto; scrollbar-width: none; margin: 0 -8px 14px; padding: 2px 8px 4px; }
  .atalhos-cel::-webkit-scrollbar { display: none; }
  .atalhos-cel button { flex: none; width: 66px; display: flex; flex-direction: column; align-items: center; gap: 6px; border: 0; background: none;
    padding: 0; color: var(--texto); font: inherit; font-size: .72rem; font-weight: 600; line-height: 1.15; text-align: center; cursor: pointer; }
  .atalhos-cel button[hidden] { display: none; }
  .atalhos-cel span { width: 54px; height: 54px; border-radius: 16px; display: grid; place-items: center; font-size: 1.6rem;
    background: var(--card); box-shadow: 0 2px 8px rgba(60, 20, 120, .12); border: 1px solid var(--borda); }
  .atalhos-cel .atalho-bf span { background: #111827; border-color: #111827; }

  /* Faixa "milhões de produtos": menor; os botões de Black Friday e cupons já estão nos atalhos */
  .numeros-inicio { padding: 12px 14px; border-radius: 14px; font-size: .88rem; margin-bottom: 12px; }
  .numeros-inicio .botoes-inicio { display: none; }
  .secao-titulo { margin-bottom: 10px; }
  .secao-titulo h2 { font-size: 1.15rem; }
  /* "Categorias e filtros" ao lado de "Ofertas do dia" saiu: já está nos atalhos e na barra de baixo */
  .secao-titulo .botao-filtros { display: none; }

  /* Cartões enxutos */
  .grade { gap: 8px; }
  .pagina { padding-left: 8px; padding-right: 8px; }
  .oferta { border-radius: 10px; box-shadow: 0 1px 4px rgba(30, 0, 60, .08); border-color: transparent; }
  .oferta:hover { transform: none; }
  .oferta-foto img { padding: 4px; }
  .selo-desconto { display: none; }
  .favoritar-foto { display: grid; position: absolute; right: 8px; bottom: 8px; z-index: 2; width: 38px; height: 38px;
    border: 0; box-shadow: 0 2px 8px rgba(0, 0, 0, .18); }
  .comparar { right: auto; left: 6px; }
  .oferta-corpo { padding: 8px 10px 10px; gap: 4px; }
  .loja-tag { font-size: .7rem; padding: 2px 8px 2px 6px; gap: 5px; }
  .oferta-titulo { font-size: .86rem; font-weight: 500; min-height: 2.6em; }
  .acoes-oferta { display: none; }
  .desconto-pill { display: inline-block; font-size: .72rem; font-weight: 800; color: #fff; background: #16a34a; padding: 1px 6px; border-radius: 4px; }
  .preco-antigo { font-size: .76rem; }
  .preco { font-size: 1.35rem; font-weight: 700; }
  .economia-tag { font-size: .72rem; }
  .botao-oferta { margin-top: 6px; padding: 8px 6px; border-radius: 10px; font-size: .8rem; }
  .nota { font-size: .74rem; }

  /* Barra fixa embaixo */
  body { padding-bottom: calc(62px + env(safe-area-inset-bottom)); }
  .barra-baixo { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); position: fixed; left: 0; right: 0; bottom: 0; z-index: 45;
    background: var(--card); border-top: 1px solid var(--borda); box-shadow: 0 -4px 16px rgba(30, 0, 60, .08);
    padding: 6px 4px calc(6px + env(safe-area-inset-bottom)); }
  .bb-item { position: relative; display: flex; flex-direction: column; align-items: center; gap: 2px; border: 0; background: none;
    color: var(--suave); font: inherit; font-size: .7rem; font-weight: 600; text-decoration: none; padding: 2px 0; cursor: pointer; }
  .bb-item[hidden] { display: none; }
  .bb-item svg { color: var(--roxo); }
  .bb-item.ativa { color: var(--roxo); font-weight: 800; }

  /* Card roxo dos resultados mais baixo; lojas numa linha que desliza */
  #resultados { padding-top: 12px; }
  .resumo { padding: 14px; border-radius: 14px; gap: 8px; }
  /* Sem isto a linha de lojas (que desliza) alargava a página inteira */
  .resumo > * { min-width: 0; max-width: 100%; flex: 1 1 100%; }
  .resumo h1 { font-size: 1.15rem; }
  .resumo p { font-size: .85rem; }
  .resumo-lojas { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 10px -14px 0; padding: 0 14px 2px; }
  .resumo-lojas::-webkit-scrollbar { display: none; }
  .resumo-lojas > * { flex: none; }
  .chip-loja, .chip-acao { font-size: .8rem; padding: 4px 10px; gap: 6px; }
  .resumo small.resumo-lojas-nota { font-size: .72rem; }
  .barra-lista { margin-top: 10px; }
  .bb-item .contador { top: -3px; right: calc(50% - 22px); }
  .toast { bottom: calc(76px + env(safe-area-inset-bottom)); }
  .barra-comparar { bottom: calc(72px + env(safe-area-inset-bottom)); }
}

/* ============ Gaveta "Categorias e filtros" no celular, mais moderna (31/10/2026, pedido do Giovanni) ============
   Alça no topo, cabeçalho e botões presos, opções em pílulas (marcada = roxa) e categorias em blocos com ícone */
@media (max-width: 640px) {
  .filtros { padding: 0 16px; border-radius: 24px 24px 0 0; max-height: 88vh; overscroll-behavior: contain; }
  .filtros-cabecalho { position: sticky; top: 0; z-index: 2; margin: 0 -16px; padding: 22px 16px 10px; background: var(--card);
    border-bottom: 1px solid var(--borda); }
  .filtros-cabecalho::before { content: ""; position: absolute; top: 8px; left: 50%; width: 40px; height: 4px; margin-left: -20px;
    border-radius: 999px; background: var(--borda); }
  .filtros h2 { font-size: 1.15rem; font-weight: 800; }
  .filtros-cabecalho .fechar { background: var(--bg); }

  .filtros fieldset { margin: 20px 0 0; }
  .filtros legend { text-transform: none; letter-spacing: 0; font-size: 1rem; font-weight: 800; color: var(--texto); margin-bottom: 10px; }

  /* Opções em pílulas que quebram linha (ordem, envio, mais opções, marcas, categorias e lojas da lista) */
  #filtro-marcas, #filtro-secoes, #filtro-lojas { display: flex; flex-wrap: wrap; gap: 8px; }
  .filtros fieldset:has(> .opcao) { display: flex; flex-wrap: wrap; gap: 8px; }
  .filtros fieldset:has(> .opcao) > legend { flex-basis: 100%; }
  .filtros .opcao { position: relative; margin: 0; gap: 6px; padding: 8px 14px; border-radius: 999px; font-size: .86rem; font-weight: 600;
    border: 1.5px solid var(--borda); background: var(--card); }
  .filtros .opcao:hover { background: var(--card); }
  .filtros .opcao input { position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px; }
  .filtros .opcao:has(input:checked) { border-color: var(--roxo); background: var(--roxo-claro); color: var(--roxo-forte); }
  .filtros .opcao:has(input:focus-visible) { outline: 2px solid var(--roxo); outline-offset: 2px; }
  .filtros .opcao .qtd { margin-left: 2px; background: var(--bg); }
  #filtro-marcas .botao-link, #filtro-secoes .botao-link { flex-basis: 100%; text-align: left; }

  /* Categorias: blocos com ícone, 3 por linha */
  .cat-lista { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .cat-item { flex-direction: column; justify-content: flex-start; gap: 6px; margin: 0; padding: 12px 4px 10px; min-height: 92px;
    border-radius: 16px; background: var(--bg); font-size: .74rem; font-weight: 600; line-height: 1.15; text-align: center; }
  .cat-item.ativa { box-shadow: inset 0 0 0 2px var(--roxo); }
  .cat-icone { width: 42px; height: 42px; border-radius: 14px; font-size: 1.35rem; }
  .cat-ver-todas { justify-self: center; padding: 8px 16px; border-radius: 999px; background: var(--roxo-claro); }

  .faixa-preco input { padding: 11px 12px; border-radius: 12px; }

  /* Botões presos embaixo: Limpar | Ver ofertas */
  .filtros-rodape { position: sticky; bottom: 0; z-index: 2; display: grid; grid-template-columns: 1fr 1.6fr; gap: 10px; margin: 20px -16px 0;
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: var(--card); border-top: 1px solid var(--borda); }
  .filtros-rodape .botao-secundario, .filtros-rodape .botao-primario { margin: 0; padding: 13px; border-radius: 999px; }
}
