/* =========================================================
   MATEANDO IN FLORIPA
   Direção: profissional, marinho dominante, com vida.

   ENTRADA INVERTIDA: o cabeçalho é marinho e o hero é branco. O
   azul volta logo abaixo, no mini carrossel, e depois nas
   avaliações e no rodapé.

   RITMO DAS SEÇÕES
     cabeçalho marinho → hero branco → mini carrossel azul →
     categorias cinza → avaliações marinho → localização branco →
     rodapé marinho

   COR
     marinho  → estrutura, títulos, botões e links (dominante)
     branco e cinza azulado → base
     dourado  → estrelas, rótulos, fios
     verde    → SÓ ação de compra/conversa: adicionar à sacola,
                enviar pedido, WhatsApp do menu e o flutuante,
                "aberto agora"
     vermelho → SÓ o contador da sacola

   MOVIMENTO (todo CSS; o JS só diz quando começa)
     · cada seção se apresenta ao entrar na tela, filhos em cascata
     · o slide que chega entra em camadas
     · ícones se desenham no hover
     · botões com brilho que atravessa e seta que avança
     · mini carrossel e avaliações correndo, param sob o cursor
   Quem pede menos movimento no aparelho recebe tudo parado.

   CONTRASTE (WCAG, medido)
     --tinta / branco 17:1 · --tinta-2 / --cinza 6,4:1
     --marinho / --cinza 12:1 · --ouro-texto / --cinza 4,9:1
     --ouro / marinho-fundo 6,0:1 · branco / --verde 5,4:1
   ========================================================= */

:root{
  --marinho-fundo: #071B36;
  --marinho-2:     #0C2649;
  --marinho:       #0F2F5C;
  --marinho-hover: #173F75;

  --branco:        #FFFFFF;
  --cinza:         #F3F6FA;
  --cinza-2:       #E7EDF5;

  --ouro:          #B8944A;
  --ouro-texto:    #86672A;
  --ouro-estrela:  #A88438;

  --verde:         #117A43;
  --verde-hover:   #0D6537;
  --vermelho:      #B42318;

  --tinta:         #0B1B33;
  --tinta-2:       #4A5A72;

  --borda:         rgba(15,47,92,.12);
  --borda-2:       rgba(15,47,92,.24);
  --sombra:        0 1px 2px rgba(7,27,54,.05), 0 12px 30px -14px rgba(7,27,54,.24);
  --sombra-alta:   0 2px 4px rgba(7,27,54,.06), 0 22px 44px -18px rgba(7,27,54,.32);

  --topo:  84px;
  --wrap:  1240px;
  --r-sm:  8px;
  --r:     10px;
  --r-lg:  12px;

  --e-saida: cubic-bezier(.22,1,.36,1);
  --t:       .2s ease;

  --fonte: "Jost", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }

html{
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--topo) + 12px);
  background:var(--branco);
}
body{
  margin:0;
  background:var(--branco);
  color:var(--tinta);
  font-family:var(--fonte);
  font-size:17px;
  font-weight:400;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body.travado{ overflow:hidden; }

img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
button,input,select,textarea{ font-family:inherit; }
button{ color:inherit; }
i, em{ font-style:normal; }

.wrap{ width:100%; max-width:var(--wrap); margin:0 auto; padding:0 1.25rem; }

.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;
}

/* =========================================================
   TIPOGRAFIA
   ========================================================= */
h1,h2,h3,h4{ margin:0; font-weight:500; line-height:1.15; letter-spacing:-.015em; color:var(--marinho); }
h2{ font-size:clamp(1.7rem,3.2vw,2.45rem); }
h3{ font-size:1.05rem; letter-spacing:-.005em; line-height:1.3; }
h4{ font-size:.95rem; }

p{ margin:0 0 1rem; color:var(--tinta-2); max-width:70ch; }
p b{ font-weight:500; color:var(--tinta); }

.rotulo{
  display:inline-flex; align-items:center; gap:.6rem;
  font-size:.74rem; font-weight:500;
  letter-spacing:.2em; text-transform:uppercase;
  color:var(--ouro-texto);
}
/* fio dourado que acompanha os rótulos de seção */
.secao-topo .rotulo::before{
  content:""; width:22px; height:1px; background:currentColor; opacity:.7;
}
.secao-topo.centro .rotulo::after{
  content:""; width:22px; height:1px; background:currentColor; opacity:.7;
}

/* =========================================================
   MOVIMENTO BASE
   ========================================================= */
/* seção se apresentando: só esconde se o JS estiver vivo (.js vem
   de um script inline no <head>, antes do CSS pintar) */
.js .reveal{
  opacity:0; transform:translate3d(0,24px,0);
  transition:opacity .75s var(--e-saida), transform .75s var(--e-saida);
  transition-delay:calc(var(--d,0) * 90ms);
}
.js .reveal.visivel{ opacity:1; transform:none; }

/* ícone que se desenha: todo traço tem pathLength="1" */
@keyframes desenha{ from{ stroke-dashoffset:1; } to{ stroke-dashoffset:0; } }
.ic *{ stroke-dasharray:1; stroke-dashoffset:0; }

@keyframes sobe{ from{ opacity:0; transform:translate3d(0,22px,0); } to{ opacity:1; transform:none; } }
@keyframes surge{ from{ opacity:0; transform:scale(.85); } to{ opacity:1; transform:none; } }

/* =========================================================
   BOTÕES
   ========================================================= */
.btn{
  position:relative; overflow:hidden; isolation:isolate;
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  min-height:48px; padding:.75rem 1.5rem;
  font-size:.95rem; font-weight:500; letter-spacing:.01em;
  border-radius:var(--r-sm); border:1px solid transparent;
  cursor:pointer;
  transition:background var(--t), color var(--t), border-color var(--t),
             transform .25s var(--e-saida), box-shadow var(--t);
}
/* brilho que atravessa o botão no hover */
.btn::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(100deg, transparent 25%, rgba(255,255,255,.28) 50%, transparent 75%);
  transform:translateX(-120%);
  transition:transform .75s var(--e-saida);
}
.btn:hover::after{ transform:translateX(120%); }
.btn:hover{ transform:translateY(-2px); }
.btn:active{ transform:translateY(0) scale(.97); }
.btn svg{ flex:none; transition:transform .3s var(--e-saida); }
.btn:hover svg{ transform:translateX(3px); }

.btn-primario{ background:var(--marinho); color:var(--branco); box-shadow:0 10px 24px -14px rgba(15,47,92,.8); }
.btn-primario:hover{ background:var(--marinho-hover); box-shadow:0 16px 30px -14px rgba(15,47,92,.8); }
.btn-linha{ background:transparent; color:var(--marinho); border-color:var(--marinho); }
.btn-linha:hover{ background:var(--marinho); color:var(--branco); }
.btn-branco{ background:var(--branco); color:var(--marinho); }
.btn-branco:hover{ background:#E4EBF4; }
/* verde só para ação de conversa/compra */
.btn-verde,.btn-wa{ background:var(--verde); color:var(--branco); box-shadow:0 10px 24px -14px rgba(17,122,67,.9); }
.btn-verde:hover,.btn-wa:hover{ background:var(--verde-hover); }
.btn-bloco{ width:100%; }
.btn[disabled],.btn.travado{ opacity:.45; cursor:not-allowed; transform:none; box-shadow:none; }
.btn.travado::after{ display:none; }

.icon-btn{
  position:relative;
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; padding:0;
  background:transparent; border:0; border-radius:var(--r-sm);
  color:var(--marinho); cursor:pointer;
  transition:background var(--t), transform .25s var(--e-saida);
}
.icon-btn:hover{ background:var(--cinza); }
.icon-btn:active{ transform:scale(.92); }

/* =========================================================
   CABEÇALHO — marinho, logo maior
   ========================================================= */
#topbar{
  position:sticky; top:0; z-index:120;
  background:var(--marinho-fundo);
  box-shadow:0 1px 0 rgba(255,255,255,.06);
  transition:box-shadow .3s ease;
}
#topbar.compacto{ box-shadow:0 10px 30px -18px rgba(0,0,0,.6); }
/* Três colunas: as laterais têm o mesmo peso, então a busca fica no
   centro exato da tela; marca e ícones encostam nas bordas. As
   laterais nunca encolhem abaixo do conteúdo (a marca não invade a busca). */
#topbar .nav{
  display:grid;
  grid-template-columns:minmax(max-content,1fr) minmax(0,520px) minmax(max-content,1fr);
  grid-template-areas:"marca busca acoes";
  align-items:center; gap:0 2rem;
  min-height:var(--topo);
  padding:0 clamp(1rem,2.2vw,2rem);
  transition:min-height .35s var(--e-saida);
}
#topbar.compacto .nav{ min-height:68px; }
#topbar .brand{ grid-area:marca; justify-self:start; max-width:100%; }
#topbar .nav-acoes{ grid-area:acoes; justify-self:end; margin-right:-.4rem; }
#topbar .nav-dir{ grid-area:acoes; justify-self:end; display:flex; align-items:center; gap:.9rem; }

/* ---------- idioma PT | ES ---------- */
/* a pílula dourada desliza para o idioma escolhido */
.idioma{
  display:inline-flex; align-items:center; gap:.4rem;
  padding:3px 3px 3px .6rem;
  border:1px solid rgba(255,255,255,.22); border-radius:999px;
  color:var(--branco);
  transition:border-color var(--t);
}
.idioma:hover{ border-color:rgba(255,255,255,.45); }
.idioma-trilho{ position:relative; display:grid; grid-template-columns:1fr 1fr; }
.idioma-marca{
  position:absolute; top:0; bottom:0; left:0; width:50%;
  border-radius:999px; background:var(--ouro);
  box-shadow:0 4px 12px -6px rgba(0,0,0,.6);
  transition:transform .4s var(--e-saida);
}
.idioma[data-atual="es"] .idioma-marca{ transform:translateX(100%); }
.idioma-op{
  position:relative; z-index:1;
  display:inline-flex; align-items:center; gap:.35rem;
  min-width:52px; height:30px; padding:0 .65rem 0 .4rem;
  border:0; border-radius:999px; background:none;
  font:inherit; font-size:.78rem; font-weight:500; letter-spacing:.1em;
  color:rgba(255,255,255,.8); cursor:pointer;
  transition:color .3s ease;
}
.idioma-op:hover{ color:var(--branco); }
.idioma .idioma-op[aria-pressed="true"]{ color:var(--marinho-fundo); }
.idioma-op:focus-visible{ outline-offset:1px; }

/* bandeiras: um pouco de textura real ao lado da sigla */
.bandeira{
  flex:none; display:block; width:16px; height:16px;
  border-radius:50%; overflow:hidden;
  box-shadow:0 0 0 1px rgba(255,255,255,.4);
}
.sb-idioma .idioma-op .bandeira{ width:20px; height:20px; box-shadow:0 0 0 1px rgba(15,47,92,.15); }

/* troca de idioma: o conteúdo esmaece por um instante enquanto os textos mudam */
main,.rodape{ transition:opacity .16s ease; }
.trocando-idioma main,.trocando-idioma .rodape{ opacity:.25; }
/* espanhol já escolhido: a página só aparece depois de traduzida */
.carregando-idioma body{ visibility:hidden; }

/* fio dourado de leitura, na base do cabeçalho */
.progresso{
  position:absolute; left:0; bottom:0; z-index:1;
  width:100%; height:2px;
  transform:scaleX(0); transform-origin:0 50%;
  background:linear-gradient(90deg, var(--ouro), #D9BC7A);
  pointer-events:none;
}

.brand{ display:flex; align-items:center; gap:.9rem; min-width:0; }
/* A logo é o ponto de ancoragem, centrada no mesmo eixo do nome.
   O círculo desenhado no arquivo não encosta nas bordas (sobra clara
   em volta e fica um pouco acima do centro), então a imagem é ampliada
   e recentrada dentro do selo: o que aparece é só o círculo da logo,
   sem anel nem fundo atrás. */
.brand-selo{
  flex:none; width:66px; height:66px; border-radius:50%; overflow:hidden;
  background:var(--marinho-fundo);
  box-shadow:0 6px 16px -6px rgba(0,0,0,.6);
  transition:width .35s var(--e-saida), height .35s var(--e-saida), transform .4s var(--e-saida);
}
#topbar.compacto .brand-selo{ width:52px; height:52px; }
.brand:hover .brand-selo{ transform:rotate(-8deg) scale(1.05); }
.brand-selo img{ width:100%; height:100%; object-fit:cover; transform:translateY(.9%) scale(1.06); }
.wordmark{ display:flex; flex-direction:column; gap:.15rem; min-width:0; }
.wordmark b{
  font-size:1.18rem; font-weight:500; line-height:1.15; letter-spacing:-.01em;
  color:var(--marinho); white-space:nowrap;
}
.wordmark small{
  font-size:.64rem; font-weight:500; line-height:1.2;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--ouro-texto);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
#topbar .wordmark b{ color:var(--branco); }
#topbar .wordmark small{ color:var(--ouro); letter-spacing:.14em; }

.nav-acoes{ display:flex; align-items:center; gap:.3rem; }
#topbar .icon-btn{ color:var(--branco); }
#topbar .icon-btn:hover{ background:rgba(255,255,255,.1); }

/* ---------- busca ---------- */
.busca{ grid-area:busca; position:relative; width:100%; justify-self:center; }
.busca-campo{
  display:block; width:100%; height:46px;
  padding:0 2.9rem 0 2.95rem;
  font:inherit; font-size:1rem; color:var(--tinta);
  background:var(--branco);
  border:0; border-radius:12px;
  box-shadow:0 10px 24px -16px rgba(0,0,0,.8);
  -webkit-appearance:none; appearance:none;
  transition:box-shadow .25s ease;
}
.busca-campo::placeholder{ color:var(--tinta-2); opacity:1; }
.busca-campo::-webkit-search-cancel-button,
.busca-campo::-webkit-search-decoration{ -webkit-appearance:none; appearance:none; display:none; }
#topbar .busca-campo:focus,
#topbar .busca-campo:focus-visible{ outline:none; box-shadow:0 0 0 2px var(--ouro), 0 10px 24px -16px rgba(0,0,0,.8); }
.busca-lupa{
  position:absolute; left:1rem; top:50%; z-index:1;
  color:var(--marinho); pointer-events:none;
  transform:translateY(-50%);
  transition:transform .35s var(--e-saida);
}
.busca:focus-within .busca-lupa{ transform:translateY(-50%) rotate(-12deg) scale(1.08); }
.busca-limpar{
  position:absolute; right:.45rem; top:50%;
  width:34px; height:34px; margin-top:-17px; padding:0;
  display:grid; place-items:center;
  background:transparent; border:0; border-radius:50%;
  color:var(--tinta-2); cursor:pointer;
  animation:surge .2s var(--e-saida);
  transition:background var(--t), color var(--t);
}
.busca-limpar:hover{ background:var(--cinza); color:var(--marinho); }
.busca-limpar[hidden]{ display:none; }

/* sugestões */
.busca-painel{
  position:absolute; left:0; right:0; top:calc(100% + 8px); z-index:5;
  background:var(--branco); border-radius:14px; overflow:hidden;
  box-shadow:0 0 0 1px rgba(15,47,92,.08), 0 28px 60px -22px rgba(7,27,54,.6);
  animation:bsEntra .24s var(--e-saida);
}
.busca-painel[hidden]{ display:none; }
@keyframes bsEntra{ from{ opacity:0; transform:translateY(-6px); } }
#topbar .busca-painel :focus-visible{ outline-color:var(--marinho); }
.busca-lista{
  list-style:none; margin:0; padding:.45rem;
  max-height:min(560px, calc(100svh - 120px)); overflow-y:auto; overscroll-behavior:contain;
}
.bs-titulo{
  padding:.65rem .7rem .35rem;
  font-size:.68rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ouro-texto);
}
.bs-item{
  display:grid; grid-template-columns:52px minmax(0,1fr) auto; align-items:center; gap:.85rem;
  padding:.45rem .6rem; border-radius:10px;
  color:var(--tinta); text-decoration:none;
  transition:background .15s ease;
}
.bs-item.ativo{ background:var(--cinza); }
.bs-foto,.bs-ic{
  width:52px; height:52px; border-radius:8px; overflow:hidden;
  background:var(--cinza); border:1px solid var(--borda);
}
.bs-foto img{ width:100%; height:100%; object-fit:cover; transition:transform .4s var(--e-saida); }
.bs-item.ativo .bs-foto img{ transform:scale(1.08); }
.bs-ic{ display:grid; place-items:center; color:var(--marinho); }
.bs-item.ativo .bs-ic{ background:var(--branco); }
.bs-item.ativo .bs-ic .ic *{ animation:desenha .8s ease both; }
.bs-txt{ display:flex; flex-direction:column; gap:.12rem; min-width:0; }
.bs-txt b{
  font-size:.93rem; font-weight:400; line-height:1.3; color:var(--marinho);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.bs-txt mark{ background:transparent; color:var(--marinho); font-weight:500; box-shadow:inset 0 -.35em 0 rgba(184,148,74,.28); }
.bs-txt small{ font-size:.76rem; color:var(--tinta-2); }
.bs-preco{ font-size:.95rem; font-weight:500; color:var(--marinho); white-space:nowrap; font-variant-numeric:tabular-nums; }
.bs-preco.vazio{ color:rgba(15,47,92,.7); }
.bs-seta{ color:var(--marinho); opacity:.45; transition:transform .25s var(--e-saida), opacity .25s; }
.bs-item.ativo .bs-seta{ opacity:1; transform:translateX(3px); }
.bs-todos{
  display:flex; align-items:center; justify-content:space-between; gap:.6rem;
  margin:.35rem -.45rem -.45rem; padding:.85rem 1.15rem;
  border-top:1px solid var(--borda);
  font-size:.9rem; font-weight:500; color:var(--marinho); text-decoration:none;
  transition:background .15s ease;
}
.bs-todos.ativo{ background:var(--cinza); }
.bs-todos svg{ flex:none; transition:transform .25s var(--e-saida); }
.bs-todos.ativo svg{ transform:translateX(3px); }
.bs-vazio{ display:flex; flex-direction:column; align-items:flex-start; gap:.5rem; padding:1rem .8rem; font-size:.92rem; color:var(--tinta-2); }
.bs-vazio b{ color:var(--marinho); font-weight:500; }
.bs-vazio a{ color:var(--marinho); font-weight:500; text-decoration:underline; text-underline-offset:3px; }

.cart-count{
  position:absolute; top:3px; right:1px;
  min-width:19px; height:19px; padding:0 5px;
  display:flex; align-items:center; justify-content:center;
  background:var(--vermelho); color:var(--branco);
  font-size:.66rem; font-weight:500; font-variant-numeric:tabular-nums;
  border-radius:99px; box-shadow:0 0 0 2px var(--marinho-fundo);
  animation:surge .35s var(--e-saida);
}
.cart-count[hidden]{ display:none; }
.cart-btn .sacola-alca{ transform-origin:12px 8px; }
.cart-btn.pulou .sacola-corpo{ animation:sacolaPula .5s var(--e-saida); }
.cart-btn.pulou .sacola-alca{ animation:sacolaAlca .5s var(--e-saida); }
@keyframes sacolaPula{ 40%{ transform:translateY(2px) scaleY(.9); } }
@keyframes sacolaAlca{ 40%{ transform:scaleY(1.2); } }

.hamb{ display:block; width:24px; height:15px; position:relative; }
.hamb i{
  position:absolute; right:0; height:1.8px; width:100%;
  background:currentColor; border-radius:2px;
  transition:width .3s var(--e-saida);
}
.hamb i:nth-child(1){ top:0; }
.hamb i:nth-child(2){ top:6.6px; width:70%; }
.hamb i:nth-child(3){ top:13.2px; width:45%; }
.menu-toggle:hover .hamb i{ width:100%; }

/* =========================================================
   MENU LATERAL
   ========================================================= */
.scrim{
  position:fixed; inset:0; z-index:140;
  background:rgba(7,27,54,.5);
  backdrop-filter:blur(3px);
  opacity:0; transition:opacity .3s ease;
}
.scrim.aberto{ opacity:1; }

.sidebar,.cart{
  position:fixed; top:0; bottom:0; right:0; z-index:150;
  width:min(92vw,420px);
  display:flex; flex-direction:column;
  background:var(--branco);
  transform:translateX(100%);
  transition:transform .45s var(--e-saida);
  overflow:hidden;
}
.sidebar{ overflow-y:auto; overscroll-behavior:contain; }
.sidebar.aberto,.cart.aberto{ transform:none; box-shadow:-24px 0 60px -24px rgba(7,27,54,.45); }

/* topo marinho com a marca, igual ao cabeçalho */
.sb-topo{
  position:relative; flex:none;
  display:flex; align-items:center; justify-content:space-between; gap:.8rem;
  padding:1.2rem 1rem 1.2rem 1.25rem;
  background:var(--marinho-fundo);
  background-image:radial-gradient(rgba(255,255,255,.07) 1px, transparent 1px);
  background-size:16px 16px;
}
.sb-topo::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:2px;
  background:linear-gradient(90deg, var(--ouro), transparent 80%);
}
.sb-marca{ display:flex; align-items:center; gap:.8rem; min-width:0; }
.sb-marca .brand-selo{ width:54px; height:54px; }
.sb-marca .wordmark b{ color:var(--branco); font-size:1.08rem; }
.sb-marca .wordmark small{ color:var(--ouro); }
.sb-fechar{ color:var(--branco); }
.sb-fechar:hover{ background:rgba(255,255,255,.1); }
.sb-fechar svg{ transition:transform .4s var(--e-saida); }
.sb-fechar:hover svg{ transform:rotate(90deg); }

.sidebar-links{ display:grid; gap:.45rem; padding:1.1rem 1rem .6rem; }
.sidebar-links a{
  display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:.95rem;
  padding:.8rem .9rem;
  border:1px solid var(--borda); border-radius:var(--r-lg);
  background:var(--branco);
  opacity:0; transform:translateX(26px);
  transition:opacity .5s var(--e-saida), transform .5s var(--e-saida),
             background var(--t), border-color var(--t);
}
.sidebar.aberto .sidebar-links a{
  opacity:1; transform:none;
  transition-delay:calc(140ms + var(--i,0) * 70ms), calc(140ms + var(--i,0) * 70ms), 0s, 0s;
}
.sb-ic{
  width:44px; height:44px; display:grid; place-items:center;
  border-radius:var(--r); background:var(--cinza); color:var(--marinho);
  transition:background var(--t), color var(--t);
}
.sb-txt{ display:grid; gap:.05rem; min-width:0; }
.sidebar-links .t{ font-size:1.08rem; font-weight:500; color:var(--marinho); line-height:1.25; }
.sidebar-links .d{ font-size:.84rem; color:var(--tinta-2); }
.sb-seta{ color:var(--marinho); opacity:0; transform:translateX(-8px); transition:opacity var(--t), transform .3s var(--e-saida); }
.sidebar-links a:hover{ border-color:var(--borda-2); background:var(--cinza); }
.sidebar-links a:hover .sb-ic{ background:var(--marinho); color:var(--branco); }
.sidebar-links a:hover .sb-ic .ic *{ animation:desenha .8s ease both; }
.sidebar-links a:hover .sb-seta{ opacity:1; transform:none; }

.sb-atalhos{ padding:.9rem 1.25rem 1.2rem; display:grid; gap:.75rem; }
.sb-chips{ display:flex; flex-wrap:wrap; gap:.4rem; }
.sb-chip{
  padding:.38rem .75rem; border-radius:99px;
  border:1px solid var(--borda-2);
  font-size:.84rem; font-weight:500; color:var(--marinho);
  transition:background var(--t), color var(--t), border-color var(--t), transform .25s var(--e-saida);
}
.sb-chip:hover{ background:var(--marinho); color:var(--branco); border-color:var(--marinho); transform:translateY(-2px); }

.sidebar-rodape{
  margin-top:auto; padding:1.1rem 1.25rem 1.3rem;
  display:grid; gap:.85rem;
  background:var(--cinza); border-top:1px solid var(--borda);
}
.sb-info{ display:grid; gap:.25rem; }
.sb-idioma{ display:grid; gap:.5rem; padding-bottom:.9rem; border-bottom:1px solid var(--borda); }
.sb-idioma .rotulo{ font-size:.68rem; }
.sb-idioma-ops{ display:grid; grid-template-columns:1fr 1fr; gap:.5rem; }
.sb-idioma .idioma-op{
  display:flex; align-items:center; justify-content:center; gap:.5rem;
  height:44px; min-width:0;
  border:1px solid var(--borda-2); border-radius:var(--r-sm);
  background:var(--branco); color:var(--marinho);
  font-size:.92rem; letter-spacing:0;
  transition:background var(--t), color var(--t), border-color var(--t), transform .25s var(--e-saida);
}
.sb-idioma .idioma-op:hover{ border-color:var(--marinho); transform:translateY(-2px); }
.sb-idioma .idioma-op[aria-pressed="true"]{ background:var(--marinho); border-color:var(--marinho); color:var(--branco); }
.sb-end{ font-size:.86rem; color:var(--tinta-2); }
.sidebar-insta{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font-size:.88rem; color:var(--tinta-2);
  transition:color var(--t);
}
.sidebar-insta:hover{ color:var(--marinho); }
.sidebar-insta em{ color:var(--tinta-2); }

/* aberto agora / fechado */
.status-loja{ display:inline-flex; align-items:center; gap:.55rem; font-size:.9rem; font-weight:500; color:var(--tinta-2); }
.st-ponto{ position:relative; width:9px; height:9px; border-radius:50%; background:#9AA6B6; flex:none; }
.status-loja.aberto{ color:var(--verde); }
.status-loja.aberto .st-ponto{ background:var(--verde); }
.status-loja.aberto .st-ponto::after{
  content:""; position:absolute; inset:0; border-radius:50%;
  box-shadow:0 0 0 0 rgba(17,122,67,.55);
  animation:pulsa 2.2s ease-out infinite;
}
@keyframes pulsa{ to{ box-shadow:0 0 0 9px rgba(17,122,67,0); } }

.painel-topo{
  flex:none;
  display:flex; align-items:center; justify-content:space-between;
  padding:.9rem 1rem .9rem 1.25rem;
  border-bottom:1px solid var(--borda);
}

/* =========================================================
   HERO — base simples (o visual completo vive em tema-festa.css)
   O carrossel de banners saiu: o hero agora é a cena em tela cheia.
   ========================================================= */
.hero{ position:relative; background:var(--marinho-fundo); color:var(--branco); padding:4.5rem 0 3.5rem; }
.hero-titulo{ margin:0; max-width:none; color:var(--branco); font-size:clamp(2.6rem,8vw,5.5rem); font-weight:500; line-height:1; letter-spacing:-.03em; }
.hero-frase{ margin:1rem 0 1.6rem; max-width:none; color:rgba(255,255,255,.88); font-size:1.2rem; font-weight:300; }
.hero-botoes{ display:flex; flex-wrap:wrap; gap:.8rem; }

/* =========================================================
   DESTAQUES — cartões curtos logo abaixo do banner
   ========================================================= */
.destaques{ background:var(--branco); padding:.3rem 0 1.8rem; }
.destaques-trilho{ display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.destaque{
  display:flex; align-items:flex-start; gap:.8rem;
  padding:1.1rem 1.2rem; border:1px solid var(--borda); border-radius:var(--r);
  background:var(--cinza);
}
.destaque-ic{
  flex:none; width:42px; height:42px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--branco); color:var(--marinho);
  box-shadow:var(--sombra);
}
.destaque-txt{ display:flex; flex-direction:column; gap:.2rem; padding-top:.1rem; }
.destaque-txt b{ font-size:.92rem; font-weight:500; color:var(--marinho); }
.destaque-txt span{ font-size:.82rem; font-weight:300; color:var(--tinta-2); line-height:1.4; }

/* =========================================================
   MINI CARROSSEL AZUL
   ========================================================= */
.marquee{
  position:relative; overflow:hidden;
  background:var(--marinho-fundo);
  padding:.95rem 0;
}
/* esmaece as pontas com o próprio azul (máscara apagaria o fundo) */
.marquee::before,.marquee::after{
  content:""; position:absolute; top:0; bottom:0; z-index:1; width:8%; pointer-events:none;
}
.marquee::before{ left:0;  background:linear-gradient(90deg, var(--marinho-fundo), transparent); }
.marquee::after{  right:0; background:linear-gradient(-90deg, var(--marinho-fundo), transparent); }
.marquee-fita{ display:flex; width:max-content; animation:fita 42s linear infinite; }
@keyframes fita{ to{ transform:translateX(-50%); } }
.marquee-item{
  display:inline-flex; align-items:center; gap:.4rem;
  padding:0 1.4rem;
  font-size:.86rem; font-weight:400; letter-spacing:.08em; text-transform:uppercase;
  color:rgba(255,255,255,.82); white-space:nowrap;
}
.marquee-item b{ display:inline-flex; align-items:center; gap:.3rem; font-weight:500; color:var(--branco); }
.marquee-item svg{ color:var(--ouro); }
.marquee-item::after{
  content:""; width:5px; height:5px; margin-left:2.4rem; border-radius:50%;
  background:var(--ouro); opacity:.8;
}

/* =========================================================
   SEÇÕES
   ========================================================= */
.secao{ position:relative; padding:4.5rem 0; background:var(--branco); }
.secao-cinza{ background:var(--cinza); }
.secao-topo{ max-width:68ch; margin-bottom:2.4rem; }
.secao-topo h2{ margin:.6rem 0 .8rem; }
.secao-topo p{ margin:0; }
.secao-topo.centro{ margin-left:auto; margin-right:auto; text-align:center; }
.secao-topo.centro p{ margin-left:auto; margin-right:auto; }
.secao-cta{ display:flex; justify-content:center; margin-top:2.6rem; }

/* =========================================================
   CATEGORIAS — fileira com rolagem lateral e encaixe
   ========================================================= */
.fileira{ position:relative; }
.fileira-trilho{
  display:grid; grid-auto-flow:column; grid-auto-columns:72%;
  gap:1rem;
  overflow-x:auto; overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;
  padding:8px 4px 14px; margin:-8px -4px -14px;
  scrollbar-width:none;
}
.fileira-trilho::-webkit-scrollbar{ display:none; }

.cat-card{
  scroll-snap-align:start;
  display:flex; flex-direction:column;
  background:var(--branco);
  border:1px solid var(--borda); border-radius:var(--r-lg);
  overflow:hidden;
}
/* a cascata de entrada (.reveal) e o hover mexem no mesmo
   transform; o hover mora no filho para não brigar com ela */
.cat-card > *{ transition:transform .35s var(--e-saida); }
.cat-card{ transition:opacity .75s var(--e-saida), transform .75s var(--e-saida), border-color var(--t), box-shadow var(--t); }
.cat-card:hover{ border-color:var(--borda-2); box-shadow:var(--sombra-alta); }
.cat-card:focus-visible{ outline:2px solid var(--marinho); outline-offset:2px; }
.cat-foto{ display:block; aspect-ratio:4/3; background:var(--cinza-2); overflow:hidden; }
.cat-foto img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--e-saida); }
.cat-card:hover .cat-foto img{ transform:scale(1.06); }
.cat-vaga{
  width:100%; height:100%;
  display:grid; place-items:center;
  color:rgba(15,47,92,.55);
  background:
    radial-gradient(circle at 50% 50%, rgba(255,255,255,.9) 0 34%, transparent 35%),
    linear-gradient(180deg,#EDF2F8 0%,#E1E8F2 100%);
  transition:color var(--t);
}
.cat-card:hover .cat-vaga{ color:var(--marinho); }
/* ícone se desenha quando o card entra e de novo no hover */
.cat-card.visivel .cat-vaga .ic *{ animation:desenha 1.3s .25s ease both; }
.cat-card:hover .cat-vaga .ic *{ animation:desenha .9s ease both; }
.cat-corpo{
  display:grid; grid-template-columns:1fr auto; align-items:center;
  gap:.15rem .8rem;
  padding:1rem 1.1rem 1.1rem;
}
.cat-nome{ font-size:1.08rem; font-weight:500; color:var(--marinho); }
.cat-linha{ grid-column:1; font-size:.88rem; color:var(--tinta-2); line-height:1.4; }
.cat-seta{
  grid-column:2; grid-row:1/3;
  width:36px; height:36px; display:grid; place-items:center;
  border:1px solid var(--borda-2); border-radius:50%;
  color:var(--marinho);
  transition:background var(--t), color var(--t), border-color var(--t), transform .3s var(--e-saida);
}
.cat-card:hover .cat-seta{ background:var(--marinho); color:var(--branco); border-color:var(--marinho); transform:translateX(3px); }

.fileira-seta{
  display:none;
  position:absolute; top:calc((100% - 70px) * .5); z-index:2;
  width:46px; height:46px; margin-top:-23px;
  place-items:center;
  background:var(--branco); color:var(--marinho);
  border:1px solid var(--borda-2); border-radius:50%;
  box-shadow:var(--sombra);
  cursor:pointer;
  transition:background var(--t), color var(--t), opacity var(--t), transform .25s var(--e-saida);
}
.fileira-seta:hover{ background:var(--marinho); color:var(--branco); }
.fileira-ant:hover{ transform:translateX(-3px); }
.fileira-prox:hover{ transform:translateX(3px); }
.fileira-seta:disabled{ opacity:0; pointer-events:none; }
.fileira-ant{ left:-23px; }
.fileira-prox{ right:-23px; }

/* =========================================================
   AVALIAÇÕES — marinho, esteira infinita, detalhes no fundo
   ========================================================= */
.avaliacoes{ background:var(--marinho-fundo); overflow:hidden; }
.aval-fundo{
  position:absolute; inset:0; pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.06) 1px, transparent 1px);
  background-size:22px 22px;
  -webkit-mask-image:linear-gradient(180deg, transparent, #000 25%, #000 75%, transparent);
          mask-image:linear-gradient(180deg, transparent, #000 25%, #000 75%, transparent);
}
.aval-brilho{ position:absolute; border-radius:50%; filter:blur(10px); }
.aval-brilho.b1{ width:520px; height:520px; left:-160px; top:-220px; background:radial-gradient(circle, rgba(184,148,74,.18), transparent 65%); }
.aval-brilho.b2{ width:620px; height:620px; right:-200px; bottom:-300px; background:radial-gradient(circle, rgba(47,110,190,.28), transparent 65%); }
/* estrelas douradas piscando devagar, fora de sincronia */
.aval-fundo i{
  position:absolute; width:3px; height:3px; border-radius:50%;
  background:var(--ouro);
  opacity:.25;
  animation:pisca var(--dur,4s) ease-in-out var(--at,0s) infinite;
}
@keyframes pisca{ 0%,100%{ opacity:.2; transform:scale(1); } 50%{ opacity:.85; transform:scale(1.6); } }
.aval-fundo i:nth-of-type(1){ left:8%;  top:22%; --dur:4.2s; }
.aval-fundo i:nth-of-type(2){ left:22%; top:78%; --dur:5.1s; --at:1.2s; }
.aval-fundo i:nth-of-type(3){ left:37%; top:14%; --dur:3.6s; --at:.6s; width:2px; height:2px; }
.aval-fundo i:nth-of-type(4){ left:53%; top:86%; --dur:4.8s; --at:2s; }
.aval-fundo i:nth-of-type(5){ left:66%; top:18%; --dur:5.6s; --at:.3s; width:2px; height:2px; }
.aval-fundo i:nth-of-type(6){ left:79%; top:70%; --dur:3.9s; --at:1.6s; }
.aval-fundo i:nth-of-type(7){ left:91%; top:28%; --dur:4.5s; --at:2.6s; width:2px; height:2px; }
.aval-fundo i:nth-of-type(8){ left:47%; top:48%; --dur:6s;   --at:3.1s; width:2px; height:2px; }

.avaliacoes .wrap{ position:relative; z-index:1; }
.aval-topo{ margin-bottom:2.2rem; }
.avaliacoes .rotulo{ color:var(--ouro); }
.aval-nota{ font-size:clamp(1.4rem,2.6vw,2rem); color:var(--branco); }
.aval-estrelas-topo{ color:var(--ouro); letter-spacing:.08em; margin-right:.3rem; }

.aval-esteira{
  position:relative; z-index:1; overflow:hidden; outline:none;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
}
.aval-fita{
  display:flex; gap:1.1rem; width:max-content;
  padding:.5rem 0 .9rem;
  animation:fita 64s linear infinite;
}
.aval-copia{ display:contents; }
.aval-esteira:hover .aval-fita,
.aval-esteira:focus-within .aval-fita,
.aval-esteira:focus .aval-fita{ animation-play-state:paused; }

.aval-card{
  flex:none; width:min(82vw,360px);
  display:grid; gap:.85rem; align-content:start;
  padding:1.5rem 1.6rem;
  background:linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.03));
  border:1px solid rgba(255,255,255,.12); border-radius:var(--r-lg);
  transition:border-color var(--t), transform .35s var(--e-saida), background var(--t);
}
.aval-card:hover{ border-color:rgba(184,148,74,.6); transform:translateY(-5px); background:rgba(255,255,255,.08); }
.aval-estrelas{ color:var(--ouro); font-size:.95rem; letter-spacing:.12em; }
.aval-texto{ margin:0; max-width:none; font-size:.98rem; line-height:1.6; color:rgba(255,255,255,.86); }
.aval-pe{ display:flex; align-items:center; gap:.7rem; }
.aval-inicial{
  width:38px; height:38px; flex:none;
  display:grid; place-items:center; border-radius:50%;
  background:rgba(184,148,74,.18); color:#E3C98E;
  font-size:.95rem; font-weight:500;
}
.aval-nome{ display:grid; line-height:1.3; }
.aval-nome b{ font-size:.92rem; font-weight:500; color:var(--branco); }
.aval-nome span{ font-size:.8rem; color:rgba(255,255,255,.62); }

/* =========================================================
   ONDE ESTAMOS
   ========================================================= */
.duo{ display:grid; gap:2.5rem; align-items:center; grid-template-columns:minmax(0,1fr); }
.duo-txt h2{ margin:.6rem 0 1rem; }

.contatos{ display:grid; gap:.6rem; margin:1.8rem 0; }
.contato{
  display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:.95rem;
  padding:.95rem 1.1rem;
  background:var(--branco);
  border:1px solid var(--borda); border-radius:var(--r);
  transition:border-color var(--t), transform .3s var(--e-saida), box-shadow var(--t);
}
.contato svg{ color:var(--marinho); flex:none; transition:transform .4s var(--e-saida); }
.contato span{ display:grid; gap:.05rem; font-size:.86rem; color:var(--tinta-2); }
.contato b{ font-size:1rem; font-weight:500; color:var(--marinho); }
.contato .seta{ color:var(--marinho); opacity:0; transform:translateX(-6px); transition:opacity var(--t), transform .3s var(--e-saida); }
.contato:hover{ border-color:var(--marinho); transform:translateX(4px); box-shadow:var(--sombra); }
.contato:hover svg{ transform:scale(1.12); }
.contato:hover .seta{ opacity:1; transform:none; }

.horario{
  display:grid; max-width:460px; margin-top:1.8rem;
  padding:1.1rem 1.25rem .4rem;
  border:1px solid var(--borda); border-radius:var(--r-lg);
  background:var(--cinza);
}
.horario .status-loja{ margin-bottom:.4rem; }
.horario > div{
  display:flex; justify-content:space-between; gap:1rem; align-items:center;
  padding:.7rem 0; border-top:1px solid var(--borda);
  font-size:.94rem; color:var(--tinta-2);
}
.horario b{ font-weight:500; color:var(--marinho); font-variant-numeric:tabular-nums; }

.loja-foto{
  position:relative; justify-self:center;
  width:100%; max-width:420px; aspect-ratio:3/4;
  border-radius:var(--r-lg); overflow:hidden;
  border:1px solid var(--borda); box-shadow:var(--sombra);
}
.loja-foto img{ width:100%; height:100%; object-fit:cover; display:block; }
.loja-foto::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(0deg, rgba(7,27,54,.55) 0%, transparent 40%);
}
.loja-selo{
  position:absolute; left:1rem; bottom:1rem; z-index:1;
  padding:.5rem .9rem; border-radius:999px;
  background:rgba(7,27,54,.72); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
  color:var(--branco); font-size:.72rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase;
}
.loja-pontos{ list-style:none; margin:0 0 1.8rem; padding:0; display:grid; gap:.7rem; }
.loja-pontos li{ display:flex; align-items:flex-start; gap:.7rem; font-size:.95rem; color:var(--tinta-2); line-height:1.45; }
.loja-check{
  flex:none; width:22px; height:22px; margin-top:.05rem;
  display:grid; place-items:center; border-radius:50%;
  background:var(--branco); color:var(--marinho); box-shadow:var(--sombra);
}

.mapa-bloco{ display:grid; gap:1rem; justify-items:start; }
.mapa-moldura{
  width:100%; aspect-ratio:4/3;
  border-radius:var(--r-lg); overflow:hidden;
  border:1px solid var(--borda);
  background:var(--cinza-2);
  box-shadow:var(--sombra);
}
.mapa-moldura iframe{ width:100%; height:100%; border:0; display:block; }

/* =========================================================
   RODAPÉ
   ========================================================= */
.rodape{
  position:relative; overflow:hidden;
  background:var(--marinho-fundo);
  color:rgba(255,255,255,.78);
  --ponte:#FFFFFF;
}
.rodape::before{
  content:""; position:absolute; top:0; left:0; right:0; height:1px;
  background:linear-gradient(90deg, transparent, var(--ouro), transparent); opacity:.6;
}
.ponte-horizonte{
  position:absolute; z-index:0; pointer-events:none;
  left:50%; bottom:0; transform:translateX(-50%);
  width:min(1200px,130%); height:auto;
  opacity:.08;
}
.rodape > .wrap{ position:relative; z-index:1; }
.foot-grid{
  display:grid; gap:2.4rem;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));
  padding:3.6rem 0 2.4rem;
}
.rodape .brand-selo{ width:58px; height:58px; }
.rodape .wordmark b{ color:var(--branco); }
.rodape .wordmark small{ color:var(--ouro); }
.foot-marca p{ margin-top:1rem; font-size:.92rem; color:rgba(255,255,255,.72); }
.foot-grid h4{
  margin-bottom:1rem;
  font-size:.74rem; font-weight:500; letter-spacing:.2em; text-transform:uppercase;
  color:var(--ouro);
}
.foot-grid ul{ list-style:none; margin:0; padding:0; display:grid; gap:.55rem; }
.foot-grid li{ font-size:.93rem; color:rgba(255,255,255,.78); }
.foot-grid ul a{ position:relative; transition:color var(--t); }
.foot-grid ul a::after{
  content:""; position:absolute; left:0; bottom:-2px; width:100%; height:1px;
  background:var(--ouro); transform:scaleX(0); transform-origin:right;
  transition:transform .35s var(--e-saida);
}
.foot-grid ul a:hover{ color:var(--branco); }
.foot-grid ul a:hover::after{ transform:scaleX(1); transform-origin:left; }
.foot-horario{ color:var(--branco) !important; font-weight:500; }

.socials{ display:flex; gap:.6rem; margin-top:1.2rem; }
.socials a{
  width:42px; height:42px; border-radius:50%;
  display:grid; place-items:center;
  border:1px solid rgba(255,255,255,.28); color:var(--branco);
  transition:background var(--t), color var(--t), transform .3s var(--e-saida);
}
.socials a:hover{ background:var(--branco); color:var(--marinho); transform:translateY(-3px); }

.foot-fim{
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:.6rem;
  padding:1.4rem 0 2rem;
  border-top:1px solid rgba(255,255,255,.12);
  font-size:.82rem; color:rgba(255,255,255,.62);
}

/* =========================================================
   WHATSAPP FLUTUANTE
   ========================================================= */
.wa-flutuante{
  position:fixed; right:18px; bottom:18px; z-index:130;
  width:58px; height:58px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--verde); color:var(--branco);
  box-shadow:0 12px 28px -10px rgba(17,122,67,.8), 0 2px 6px rgba(0,0,0,.15);
  animation:surge .6s 1s var(--e-saida) both;
  transition:transform .3s var(--e-saida), background var(--t);
}
/* anel que chama atenção, bem espaçado para não cansar */
.wa-flutuante::before{
  content:""; position:absolute; inset:0; border-radius:50%;
  box-shadow:0 0 0 0 rgba(17,122,67,.5);
  animation:anelWa 3.6s 2s ease-out infinite;
}
@keyframes anelWa{ 0%{ box-shadow:0 0 0 0 rgba(17,122,67,.5); } 45%,100%{ box-shadow:0 0 0 16px rgba(17,122,67,0); } }
.wa-flutuante:hover{ transform:scale(1.08) rotate(-6deg); background:var(--verde-hover); }
.wa-dica{
  position:absolute; right:calc(100% + 12px); top:50%;
  padding:.45rem .8rem; border-radius:var(--r-sm);
  background:var(--marinho-fundo); color:var(--branco);
  font-size:.84rem; font-weight:500; white-space:nowrap;
  opacity:0; transform:translate(8px,-50%);
  transition:opacity var(--t), transform .3s var(--e-saida);
  pointer-events:none;
}
.wa-flutuante:hover .wa-dica{ opacity:1; transform:translate(0,-50%); }

/* =========================================================
   PÁGINA DO CATÁLOGO
   ========================================================= */
.pagina-cabeca{
  position:relative; overflow:hidden;
  padding:3rem 0 3.4rem;
  background:linear-gradient(180deg, var(--cinza) 0%, var(--branco) 100%);
  border-bottom:1px solid var(--borda);
  --ponte:var(--marinho);
}
.cab-deco{
  position:absolute; inset:0; pointer-events:none;
  background-image:radial-gradient(rgba(15,47,92,.09) 1px, transparent 1px);
  background-size:20px 20px;
  -webkit-mask-image:linear-gradient(90deg, transparent 20%, #000 75%);
          mask-image:linear-gradient(90deg, transparent 20%, #000 75%);
}
.cab-ponte{ opacity:.09; width:min(1100px,150%); left:auto; right:-8%; transform:none; }
.cab-conteudo{ position:relative; z-index:1; }
.pagina-cabeca h1{ margin:.8rem 0 .7rem; font-size:clamp(2.1rem,4.4vw,3.1rem); letter-spacing:-.025em; }
.pagina-cabeca p{ margin:0; }
.migalhas{ display:flex; align-items:center; gap:.55rem; font-size:.84rem; }
.migalhas a{ color:var(--tinta-2); transition:color var(--t); }
.migalhas a:hover{ color:var(--marinho); }
.migalhas span{ color:var(--tinta-2); }
.migalhas b{ color:var(--ouro-texto); font-weight:500; }

.secao.vitrine{ background:var(--cinza); padding-top:2.2rem; }

/* --- filtros em blocos com ícone de produto --- */
.filtros{
  display:grid; grid-auto-flow:column; grid-auto-columns:112px;
  gap:.6rem; margin:0 -1.25rem 1.4rem; padding:6px 1.25rem 10px;
  overflow-x:auto; scroll-snap-type:x proximity; scrollbar-width:none;
}
.filtros::-webkit-scrollbar{ display:none; }
.filtro{
  scroll-snap-align:start;
  display:flex; flex-direction:column; align-items:center; gap:.35rem;
  padding:.9rem .5rem .8rem;
  background:var(--branco);
  border:1px solid var(--borda); border-radius:var(--r-lg);
  color:var(--marinho); cursor:pointer; text-align:center;
  transition:background var(--t), color var(--t), border-color var(--t), transform .3s var(--e-saida), box-shadow var(--t);
}
.filtro-ic{
  width:54px; height:54px; display:grid; place-items:center;
  border-radius:50%; background:var(--cinza); color:var(--marinho);
  transition:background var(--t), color var(--t), transform .4s var(--e-saida);
}
.filtro-nome{ font-size:.86rem; font-weight:500; line-height:1.2; }
.filtro .conta-cat{ font-size:.74rem; color:var(--tinta-2); font-variant-numeric:tabular-nums; }
.filtro:hover{ border-color:var(--borda-2); transform:translateY(-3px); box-shadow:var(--sombra); }
.filtro:hover .filtro-ic{ transform:scale(1.06); }
.filtro:hover .ic *{ animation:desenha .9s ease both; }
.filtro[aria-selected="true"]{ background:var(--marinho); border-color:var(--marinho); color:var(--branco); box-shadow:0 14px 28px -16px rgba(15,47,92,.9); }
.filtro[aria-selected="true"] .filtro-ic{ background:rgba(255,255,255,.12); color:var(--branco); }
.filtro[aria-selected="true"] .conta-cat{ color:rgba(255,255,255,.75); }

.vitrine-barra{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.5rem 1rem;
  margin-bottom:1.3rem; padding-bottom:1rem;
  border-bottom:1px solid var(--borda);
  font-size:.92rem; color:var(--tinta-2);
}
.vitrine-barra b{ color:var(--marinho); font-weight:500; }
.st-limpar{
  margin-left:.4rem; padding:0; border:0; background:none;
  font:inherit; font-weight:500; color:var(--marinho);
  text-decoration:underline; text-underline-offset:3px; cursor:pointer;
}

/* filtro de preço: faixa em reais + ordem */
.preco-filtro{ display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; }
.pf-rot{
  margin-right:.15rem;
  font-size:.7rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ouro-texto);
}
.pf-campo{
  display:inline-flex; align-items:center; gap:.3rem;
  height:42px; padding:0 .75rem;
  background:var(--branco); border:1px solid var(--borda-2); border-radius:var(--r-sm);
  cursor:text; transition:border-color var(--t), box-shadow var(--t);
}
.pf-campo:hover{ border-color:rgba(15,47,92,.4); }
.pf-campo:focus-within{ border-color:var(--marinho); box-shadow:0 0 0 3px rgba(15,47,92,.12); }
.pf-campo span{ font-size:.82rem; color:var(--tinta-2); }
.pf-campo input{
  width:4.4rem; padding:0; border:0; outline:0; background:transparent;
  font:inherit; font-size:1rem; color:var(--tinta);
  -moz-appearance:textfield; appearance:textfield;
}
.pf-campo input::placeholder{ color:var(--tinta-2); opacity:1; }
.pf-campo input::-webkit-outer-spin-button,
.pf-campo input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.pf-ate{ font-size:.85rem; color:var(--tinta-2); }
.pf-ordem select{
  height:42px; padding:0 2.3rem 0 .85rem;
  font:inherit; font-size:1rem; color:var(--marinho);
  background:var(--branco) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F2F5C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right .75rem center / 15px;
  border:1px solid var(--borda-2); border-radius:var(--r-sm);
  -webkit-appearance:none; appearance:none; cursor:pointer;
  transition:border-color var(--t), box-shadow var(--t);
}
.pf-ordem select:hover{ border-color:rgba(15,47,92,.4); }
.pf-ordem select:focus-visible{ outline:none; border-color:var(--marinho); box-shadow:0 0 0 3px rgba(15,47,92,.12); }
.pf-limpar{
  height:42px; padding:0 .5rem; border:0; background:none;
  font:inherit; font-size:.9rem; font-weight:500; color:var(--marinho);
  text-decoration:underline; text-underline-offset:3px; cursor:pointer;
  animation:surge .25s var(--e-saida);
}
.pf-limpar[hidden]{ display:none; }

/* nenhuma peça no filtro escolhido */
.grade-vazia{
  grid-column:1/-1;
  display:flex; flex-direction:column; align-items:center; gap:.6rem;
  padding:3rem 1.25rem; text-align:center;
  background:var(--cinza); border:1px dashed var(--borda-2); border-radius:var(--r);
  animation:sobe .5s var(--e-saida) both;
}
.grade-vazia.saindo{ animation:none; opacity:0; }
.gv-ic{
  width:58px; height:58px; display:grid; place-items:center; margin-bottom:.2rem;
  border-radius:50%; background:var(--branco); color:var(--marinho); box-shadow:var(--sombra);
}
.grade-vazia b{ font-size:1.15rem; font-weight:500; color:var(--marinho); }
.grade-vazia p{ max-width:46ch; margin:0 0 .6rem; font-size:.95rem; color:var(--tinta-2); }

/* peça escolhida na busca: um anel dourado que acende e some */
.item.realce .card{ animation:realce 2.6s var(--e-saida); }
@keyframes realce{
  0%{ box-shadow:0 0 0 0 rgba(184,148,74,0); }
  15%,60%{ box-shadow:0 0 0 3px var(--ouro), 0 22px 44px -20px rgba(15,47,92,.6); }
  100%{ box-shadow:0 0 0 3px rgba(184,148,74,0); }
}

/* --- grade --- */
.grade{
  display:grid; gap:1.25rem;
  grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));
}
/* cartões entram em cascata sempre que a grade é montada */
.js .item{
  opacity:0; transform:translate3d(0,20px,0);
  transition:opacity .55s var(--e-saida), transform .55s var(--e-saida);
  transition-delay:calc(var(--i,0) * 55ms);
}
.js .item.dentro{ opacity:1; transform:none; }
.js .item.saindo{ opacity:0; transform:scale(.97); transition-duration:.18s; transition-delay:0s; }

.card{
  position:relative; height:100%;
  display:flex; flex-direction:column;
  background:var(--branco);
  border:1px solid var(--borda); border-radius:var(--r-lg);
  overflow:hidden;
  transition:border-color var(--t), box-shadow .3s ease, transform .35s var(--e-saida);
}
.card:hover{ border-color:var(--borda-2); box-shadow:var(--sombra-alta); transform:translateY(-5px); }

.card-foto{
  position:relative; display:block; width:100%; padding:0;
  border:0; background:var(--cinza-2); cursor:pointer;
  overflow:hidden; aspect-ratio:1/1;
}
.card-foto img{ width:100%; height:100%; object-fit:cover; transition:transform .9s var(--e-saida); }
.card:hover .card-foto img{ transform:scale(1.07); }
.card-ver{
  position:absolute; left:50%; bottom:.9rem;
  display:inline-flex; align-items:center; gap:.4rem;
  padding:.5rem .95rem; border-radius:99px;
  font-size:.84rem; font-weight:500; white-space:nowrap;
  color:var(--marinho); background:rgba(255,255,255,.95);
  box-shadow:0 8px 20px -10px rgba(7,27,54,.6);
  opacity:0; transform:translate(-50%,10px);
  transition:opacity var(--t), transform .35s var(--e-saida);
}
.card:hover .card-ver,.card-foto:focus-visible .card-ver{ opacity:1; transform:translate(-50%,0); }

.card-corpo{ display:flex; flex-direction:column; gap:.35rem; padding:1rem 1.1rem 1.1rem; flex:1; }
.card-cat{ font-size:.7rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--ouro-texto); }
.card h3{ flex:1; }
.card-nome{
  padding:0; border:0; background:none; cursor:pointer; text-align:left;
  font:inherit; color:var(--marinho);
  background-image:linear-gradient(currentColor,currentColor);
  background-size:0 1px; background-repeat:no-repeat; background-position:0 100%;
  transition:background-size .4s var(--e-saida);
}
.card-nome:hover{ background-size:100% 1px; }
.card-pe{
  display:flex; align-items:flex-end; justify-content:space-between; gap:.8rem;
  margin-top:.55rem; padding-top:.85rem;
  border-top:1px solid var(--borda);
}
/* espaço do valor */
.card-preco{ display:grid; line-height:1.15; }
.card-preco small{ font-size:.68rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--tinta-2); }
.card-preco b{ font-size:1.22rem; font-weight:500; color:var(--marinho); font-variant-numeric:tabular-nums; }
/* valor ainda não informado: apagado, mas legível (5,3:1) */
.card-preco.vazio b{ color:rgba(15,47,92,.7); }

/* adicionar à sacola: verde. Vazio mostra "+ Adicionar";
   com a peça no pedido vira − quantidade + */
.qtd-ctrl{
  display:flex; align-items:center; gap:.1rem;
  background:var(--verde); border-radius:var(--r-sm); padding:3px;
  box-shadow:0 8px 18px -10px rgba(17,122,67,.9);
  transition:background var(--t), transform .25s var(--e-saida);
}
.qtd-ctrl:hover{ background:var(--verde-hover); }
.qtd-btn{
  height:38px; min-width:38px; flex:none;
  display:inline-flex; align-items:center; justify-content:center; gap:.35rem;
  padding:0;
  background:transparent; border:0; border-radius:6px;
  color:var(--branco); cursor:pointer;
  transition:background var(--t), transform .2s var(--e-saida);
}
.qtd-btn:hover{ background:rgba(255,255,255,.16); }
.qtd-btn:active{ transform:scale(.88); }
.qtd-btn svg{ width:17px; height:17px; flex:none; }
.qtd-mais{ padding:0 .8rem 0 .6rem; }
.qtd-rot{ font-size:.86rem; font-weight:500; }
.qtd-ctrl.ativo .qtd-rot{ display:none; }
.qtd-ctrl.ativo .qtd-mais{ padding:0; }
.qtd-menos,.qtd-num{ width:0; min-width:0; opacity:0; overflow:hidden; padding:0; }
.qtd-ctrl.ativo .qtd-menos{ width:38px; opacity:1; }
.qtd-ctrl.ativo .qtd-num{ width:24px; opacity:1; }
.qtd-num{
  display:grid; place-items:center; height:38px;
  font-size:.98rem; font-weight:500; font-variant-numeric:tabular-nums;
  color:var(--branco);
}

/* --- "em breve" --- */
.vaga{
  position:relative; height:100%; min-height:320px;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:.65rem; padding:2rem 1.3rem; text-align:center;
  background:var(--branco);
  border:1px dashed var(--borda-2); border-radius:var(--r-lg);
  overflow:hidden;
}
.vaga::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(100deg, transparent 35%, rgba(15,47,92,.05) 50%, transparent 65%);
  transform:translateX(-100%);
  animation:varre 4s ease-in-out infinite;
}
@keyframes varre{ 0%{ transform:translateX(-100%); } 60%,100%{ transform:translateX(100%); } }
.vaga-ic{
  width:60px; height:60px; display:grid; place-items:center;
  border-radius:50%; background:var(--cinza); color:var(--marinho);
}
.vaga-ic svg{ width:28px; height:28px; }
.item.dentro .vaga-ic .ic *{ animation:desenha 1.2s .2s ease both; }
.vaga b{ font-size:1rem; font-weight:500; color:var(--marinho); }
.vaga span{ font-size:.86rem; color:var(--tinta-2); max-width:26ch; }
.vaga .em-breve{
  font-size:.68rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase;
  color:var(--tinta-2);
  padding:.22rem .6rem; border-radius:6px; border:1px solid var(--borda-2);
}

.vitrine-nota{ margin-top:2rem; font-size:.9rem; color:var(--tinta-2); max-width:80ch; }

/* =========================================================
   PEDIDO — itens + formulário
   ========================================================= */
.cart .painel-topo{ background:var(--marinho-fundo); border-bottom:0; }
.cart .painel-topo .rotulo{ color:var(--ouro); }
.cart .painel-topo .icon-btn{ color:var(--branco); }
.cart .painel-topo .icon-btn:hover{ background:rgba(255,255,255,.1); }

.cart-corpo{ flex:1; overflow-y:auto; overscroll-behavior:contain; }
.cart-itens{ padding:1rem 1.25rem; display:grid; gap:.7rem; align-content:start; }

.cart-vazio{ display:grid; gap:.5rem; justify-items:center; text-align:center; padding:2.8rem 1rem; }
.cart-vazio > span:first-child{
  width:64px; height:64px; display:grid; place-items:center; margin-bottom:.3rem;
  border:1px dashed var(--borda-2); border-radius:50%; color:var(--marinho);
}
.cart-vazio > span:first-child .ic *{ animation:desenha 1.4s ease both; }
.cart-vazio b{ font-size:1.1rem; font-weight:500; color:var(--marinho); }
.cart-vazio span{ font-size:.9rem; color:var(--tinta-2); max-width:30ch; }

.cart-item{
  display:grid; grid-template-columns:64px 1fr; gap:.85rem;
  padding:.75rem; border:1px solid var(--borda); border-radius:var(--r);
  animation:itemEntra .45s var(--e-saida) both;
}
@keyframes itemEntra{ from{ opacity:0; transform:translateX(18px); } }
.cart-item.saindo{ animation:itemSai .26s ease forwards; }
@keyframes itemSai{ to{ opacity:0; transform:translateX(24px); } }
.cart-item img{ width:64px; height:64px; object-fit:cover; border-radius:6px; }
.ci-info{ display:grid; gap:.3rem; min-width:0; align-content:start; }
.ci-cat{ font-size:.68rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--ouro-texto); }
.ci-nome{ font-size:.96rem; font-weight:500; line-height:1.3; color:var(--marinho); }
.ci-linha{ display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-top:.15rem; }
.ci-qtd{ display:inline-flex; align-items:center; gap:.1rem; border:1px solid var(--borda-2); border-radius:var(--r-sm); }
.ci-qtd button{
  width:32px; height:32px; display:grid; place-items:center;
  background:transparent; border:0; border-radius:6px; cursor:pointer; color:var(--marinho);
  transition:background var(--t);
}
.ci-qtd button:hover{ background:var(--cinza); }
.ci-qtd span{ min-width:24px; text-align:center; font-size:.92rem; font-weight:500; font-variant-numeric:tabular-nums; }
.ci-remover{
  border:0; background:transparent; cursor:pointer; padding:.3rem;
  font-size:.8rem; color:var(--tinta-2);
  text-decoration:underline; text-underline-offset:3px;
  transition:color var(--t);
}
.ci-remover:hover{ color:var(--marinho); }

.cart-form{ display:grid; gap:1.05rem; padding:1.25rem 1.25rem 1.5rem; border-top:1px solid var(--borda); }
.cart-form[hidden]{ display:none; }
.cart-form-titulo{ font-size:.74rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--ouro-texto); }
.campo{ display:grid; gap:.4rem; border:0; padding:0; margin:0; min-width:0; }
/* sem isto, o atributo "hidden" não some o campo: o display:grid acima
   é regra do autor e vence o display:none padrão do navegador */
.campo[hidden]{ display:none; }
.campo-rot{ font-size:.86rem; font-weight:500; color:var(--tinta); padding:0; }
.campo-rot i{ color:var(--marinho); }
.campo-rot i.opcional{ color:var(--tinta-2); font-size:.74rem; font-weight:400; }
.campo input[type="text"],
.campo input[type="date"],
.campo input[type="time"],
.campo textarea,
.campo select{
  width:100%; font-size:.96rem; color:var(--tinta);
  padding:.75rem .85rem; border-radius:var(--r-sm);
  border:1px solid var(--borda-2); background:var(--branco);
  transition:border-color var(--t), box-shadow var(--t);
}
.campo textarea{ resize:vertical; }
.campo input:focus,.campo textarea:focus,.campo select:focus{
  outline:none; border-color:var(--marinho);
  box-shadow:0 0 0 3px rgba(15,47,92,.14);
}
.campo input::placeholder,.campo textarea::placeholder{ color:rgba(74,90,114,.7); }
.campo.invalido input,.campo.invalido textarea,.campo.invalido select{ border-color:var(--marinho); border-width:2px; background:#F7F9FC; }
.campo-erro{ font-size:.8rem; font-weight:500; color:var(--marinho); }
.campo-erro:empty{ display:none; }
.campo.invalido .campo-erro{ animation:sobe .35s var(--e-saida); }

.select-wrap{ position:relative; }
.select-wrap select{ appearance:none; padding-right:2.4rem; cursor:pointer; }
.select-wrap svg{ position:absolute; right:.85rem; top:50%; transform:translateY(-50%); color:var(--marinho); pointer-events:none; }

.campo-retirada legend{ padding:0; margin-bottom:.4rem; }
.duo-campo{ display:grid; grid-template-columns:1.3fr 1fr; gap:.6rem; }

.campo-opcoes legend{ padding:0; margin-bottom:.4rem; }
.opcoes{ display:grid; gap:.6rem; grid-template-columns:1fr 1fr; }
.opcao input{ position:absolute; opacity:0; pointer-events:none; }
.opcao-caixa{
  display:grid; gap:.1rem; justify-items:center; text-align:center;
  padding:.85rem .6rem;
  background:var(--branco);
  border:1px solid var(--borda-2); border-radius:var(--r);
  cursor:pointer; color:var(--tinta-2);
  transition:border-color var(--t), background var(--t), color var(--t), transform .25s var(--e-saida);
}
.opcao-caixa svg{ margin-bottom:.15rem; color:var(--marinho); }
.opcao-caixa b{ font-size:.9rem; font-weight:500; color:var(--marinho); }
.opcao-caixa small{ font-size:.76rem; }
.opcao:hover .opcao-caixa{ border-color:var(--marinho); transform:translateY(-2px); }
.opcao input:checked + .opcao-caixa{ border-color:var(--marinho); background:var(--marinho); color:rgba(255,255,255,.8); }
.opcao input:checked + .opcao-caixa svg,
.opcao input:checked + .opcao-caixa b{ color:var(--branco); }
.opcao input:focus-visible + .opcao-caixa{ outline:2px solid var(--marinho); outline-offset:3px; }
.campo-endereco{ animation:sobe .4s var(--e-saida); }

.cart-rodape{
  flex:none;
  padding:1.1rem 1.25rem 1.4rem;
  border-top:1px solid var(--borda);
  background:var(--branco);
  display:grid; gap:.8rem;
}
.cart-aviso{ margin:0; max-width:none; font-size:.82rem; color:var(--tinta-2); }
.cart-aviso.alerta{ color:var(--marinho); font-weight:500; }
.btn-limpar{
  border:0; background:transparent; cursor:pointer; padding:.35rem;
  font-size:.82rem; color:var(--tinta-2);
  text-decoration:underline; text-underline-offset:3px;
  transition:color var(--t);
}
.btn-limpar:hover{ color:var(--marinho); }

/* =========================================================
   FOTO AMPLIADA (aqui ficam descrição e detalhes)
   ========================================================= */
.lightbox{
  position:fixed; inset:0; z-index:180;
  display:flex; align-items:center; justify-content:center;
  padding:4.5rem 1.2rem 2rem;
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(8px);
  overflow-y:auto;
  animation:lbFundo .3s ease;
}
.lightbox[hidden]{ display:none; }
@keyframes lbFundo{ from{ opacity:0; } }
.lb-fig{
  margin:auto 0; width:100%; max-width:1080px;
  display:grid; gap:1.6rem; align-content:center;
  animation:lbEntra .55s var(--e-saida);
}
@keyframes lbEntra{ from{ opacity:0; transform:translateY(22px) scale(.97); } }
.lb-foto{ border-radius:var(--r-lg); overflow:hidden; background:var(--cinza); border:1px solid var(--borda); }
.lb-foto img{ width:100%; max-height:56vh; object-fit:contain; }
.lb-fig figcaption{ display:grid; gap:.7rem; align-content:start; }
.lb-fig figcaption b{ font-size:clamp(1.4rem,3vw,2rem); font-weight:500; line-height:1.15; letter-spacing:-.015em; color:var(--marinho); }
.lb-desc{ font-size:1rem; color:var(--tinta-2); max-width:52ch; line-height:1.6; }
.lb-specs{ list-style:none; display:flex; flex-wrap:wrap; gap:.4rem; margin:.1rem 0 .3rem; padding:0; }
.lb-specs li{
  font-size:.78rem; font-weight:500;
  padding:.3rem .7rem; border-radius:6px;
  background:var(--cinza); color:var(--marinho);
}
.lb-acao{
  display:flex; align-items:flex-end; justify-content:space-between; gap:1rem;
  margin-top:.5rem; padding-top:1rem; border-top:1px solid var(--borda);
}
.lb-acao .card-preco b{ font-size:1.5rem; }
.lb-fechar{ position:absolute; top:1rem; right:1rem; }
.lb-fechar svg{ transition:transform .4s var(--e-saida); }
.lb-fechar:hover svg{ transform:rotate(90deg); }
.lb-nav{
  position:absolute; top:50%; margin-top:-24px;
  width:48px; height:48px; display:grid; place-items:center;
  border-radius:50%; border:1px solid var(--borda-2);
  background:var(--branco); color:var(--marinho);
  cursor:pointer;
  transition:background var(--t), color var(--t), transform .25s var(--e-saida);
}
.lb-nav:hover{ background:var(--marinho); color:var(--branco); }
.lb-prev:hover{ transform:translateX(-3px); }
.lb-next:hover{ transform:translateX(3px); }
.lb-prev{ left:.8rem; }
.lb-next{ right:.8rem; }

/* =========================================================
   AVISO (toast)
   ========================================================= */
.toast{
  position:fixed; left:50%; bottom:1.4rem; z-index:220;
  transform:translate(-50%,16px);
  display:flex; align-items:center; gap:.6rem;
  max-width:min(92vw,420px); padding:.8rem 1.25rem;
  background:var(--marinho-fundo); color:var(--branco);
  border-radius:var(--r);
  font-size:.92rem;
  box-shadow:0 16px 36px -16px rgba(7,27,54,.7);
  opacity:0; transition:opacity .25s ease, transform .4s var(--e-saida);
}
.toast[hidden]{ display:none; }
.toast.aberto{ opacity:1; transform:translate(-50%,0); }
.toast b{ font-weight:500; }
/* confirmação de item na sacola: o check é verde */
.toast svg{
  flex:none; width:24px; height:24px; padding:4px; border-radius:50%;
  background:var(--verde); color:var(--branco);
}

/* =========================================================
   LARGURAS
   ========================================================= */
@media (max-width:719px){
  :root{ --topo:64px; }
  /* celular: marca e ícones na primeira linha, busca inteira embaixo;
     o idioma some daqui (já mora no menu lateral) e a linha da busca
     recolhe a zero assim que a página rola, deixando só a linha fina */
  html{ scroll-padding-top:calc(var(--topo) + 60px); }
  #topbar .nav{
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:"marca acoes" "busca busca";
    grid-template-rows:var(--topo) 52px;
    column-gap:.5rem;
    min-height:0; padding:0 1rem .6rem;
    overflow:hidden;
    transition:grid-template-rows .35s var(--e-saida), padding .35s var(--e-saida);
  }
  #topbar.compacto .nav{ grid-template-rows:54px 0; padding-bottom:0; }
  #topbar .busca{ min-height:0; overflow:hidden; }
  #topbar.compacto .busca{ opacity:0; }
  #topbar .nav-dir{ display:contents; }
  #topbar .idioma{ display:none; }
  .busca-campo::placeholder{ font-size:.94rem; }
  #topbar .busca-campo{ height:44px; }
  #topbar .brand{ min-width:0; }
  /* no celular o subtítulo só ocupa espaço: fica só a marca */
  #topbar .wordmark small{ display:none; }
  .busca-lista{ max-height:calc(100svh - 170px); }
  .brand-selo{ width:46px; height:46px; }
  #topbar.compacto .brand-selo{ width:38px; height:38px; }
  .wordmark b{ font-size:1.02rem; }

  .destaques{ padding:0 0 1.3rem; }
  .destaques-trilho{
    grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:76%;
    overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory;
    scrollbar-width:none;
    margin:0 -1.25rem; padding:2px 1.25rem 6px;
  }
  .destaques-trilho::-webkit-scrollbar{ display:none; }
  .destaque{ scroll-snap-align:start; }

  .marquee-item{ font-size:.8rem; padding:0 1rem; }
  .marquee-item::after{ margin-left:2rem; }

  .toast{ bottom:5.6rem; }
  .wa-flutuante{ right:14px; bottom:14px; width:54px; height:54px; }
  .wa-dica{ display:none; }
}

@media (min-width:620px){
  .wrap{ padding:0 2rem; }
  .fileira-trilho{ grid-auto-columns:calc((100% - 2rem) / 2.6); }
  .filtros{ margin:0 -2rem 1.4rem; padding:6px 2rem 10px; }
}

@media (min-width:1024px) and (max-width:1259px){
  /* notebook pequeno: sem a frase da marca, a busca continua no centro */
  #topbar .nav{ grid-template-columns:minmax(max-content,1fr) minmax(0,460px) minmax(max-content,1fr); }
  #topbar .wordmark small{ display:none; }
}

@media (min-width:720px) and (max-width:1023px){
  /* tablet: a busca ocupa o espaço entre marca e ícones */
  #topbar .nav{ grid-template-columns:auto minmax(0,1fr) auto; gap:0 1.25rem; }
  #topbar .wordmark small{ display:none; }
}

@media (min-width:900px){
  .secao{ padding:5.5rem 0; }
  .duo{ grid-template-columns:1fr 1fr; gap:4rem; }
  .mapa-moldura{ aspect-ratio:1/1; }
  .lb-fig{ grid-template-columns:1.25fr .75fr; gap:2.4rem; align-items:center; }
  .lb-foto img{ max-height:74vh; }
  .lb-prev{ left:1.4rem; }
  .lb-next{ right:1.4rem; }
}

@media (min-width:1024px){
  .fileira-trilho{ grid-auto-columns:calc((100% - 3 * 1.25rem) / 4); gap:1.25rem; }
  /* os 9 blocos cabem numa linha só, sem rolagem */
  .filtros{ grid-auto-flow:row; grid-template-columns:repeat(9,minmax(0,1fr)); margin:0 0 1.6rem; padding:6px 0 10px; overflow:visible; }
}
@media (min-width:1024px) and (hover:hover){
  .fileira-seta{ display:grid; }
}

@media (min-width:1180px){
  .grade{ grid-template-columns:repeat(4,1fr); }
}

/* =========================================================
   ACESSIBILIDADE
   ========================================================= */
:focus-visible{ outline:2px solid var(--marinho); outline-offset:3px; border-radius:6px; }
#topbar :focus-visible,.rodape :focus-visible,.avaliacoes :focus-visible,.sb-topo :focus-visible{ outline-color:var(--ouro); }

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    transition-duration:.001ms !important;
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    animation-delay:0s !important;
    scroll-behavior:auto !important;
  }
  .js .reveal,.js .item{ opacity:1 !important; transform:none !important; }
  .marquee-fita,.aval-fita{ animation:none !important; }
  .sidebar-links a{ opacity:1; transform:none; }
  .item.realce .card{ box-shadow:0 0 0 3px var(--ouro); }
}
