/* ==========================================================================
   GRILL HALL PANORÂMICO
   Sistema visual, terceira iteração. Innovmedia, 2026.

   Vinho profundo como cor primária, madeira e couro como secundária,
   off-white apenas como respiro. A navegação alterna entre as três,
   para dar ritmo e peso de steakhouse.
   ========================================================================== */

:root{
  /* primária */
  --vinho:        #640D15;
  --vinho-fundo:  #4C090F;
  --vinho-claro:  #7E1721;

  /* secundária: madeira e couro */
  --marrom:       #2E1E14;
  --marrom-fundo: #211610;
  --marrom-alto:  #3B2819;
  --couro:        #5A4030;

  /* base: off-white quente, nunca branco puro */
  --creme:        #F3EADC;
  --creme-2:      #EADFCB;
  --creme-3:      #DDCEB5;

  /* destaque */
  --ouro:         #B8871F;   /* sobre fundo claro */
  --ouro-vivo:    #E0B040;   /* sobre fundo escuro */

  /* tinta */
  --tinta:        #2A1B12;
  --tinta-media:  #6B5644;
  --tinta-suave:  #8C7761;
  --sobre-escuro: rgba(243,234,220,.78);
  --sobre-fraco:  rgba(243,234,220,.58);

  /* fios */
  --fio:          rgba(42,27,18,.16);
  --fio-claro:    rgba(243,234,220,.20);

  --f-titulo: "Bitter", Georgia, serif;
  --f-texto:  "Karla", "Helvetica Neue", Arial, sans-serif;

  --larg: 1240px;
  --curva: cubic-bezier(.22,1,.36,1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}

body{
  font-family:var(--f-texto);
  font-size:1.0625rem;
  line-height:1.7;
  color:var(--tinta);
  background:var(--creme);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
address{font-style:normal}
::selection{background:var(--vinho);color:var(--creme)}

.wrap{max-width:var(--larg);margin-inline:auto;padding-inline:clamp(1.25rem,4vw,3rem)}
.estreito{max-width:940px;margin-inline:auto;padding-inline:clamp(1.25rem,4vw,3rem)}
.oculto{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- tipografia ---------- */

h1,h2,h3,.titulo{
  font-family:var(--f-titulo);
  font-weight:700;
  line-height:1.08;
  letter-spacing:-.02em;
  text-wrap:balance;
}
h1{font-size:clamp(2.5rem,6vw,5rem);font-weight:800}
h2{font-size:clamp(1.85rem,4vw,3.2rem);color:var(--vinho)}
h3{font-size:clamp(1.15rem,1.8vw,1.5rem);font-weight:700;line-height:1.2}

.chapeu{
  display:inline-block;
  font-family:var(--f-texto);
  font-size:.7rem;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;
  color:var(--vinho);
  padding-left:2.4rem;position:relative;
}
.chapeu::before{
  content:"";position:absolute;left:0;top:.55em;
  width:1.6rem;height:2px;background:var(--ouro);
}
.chapeu-claro{color:var(--sobre-escuro)}
.chapeu-claro::before{background:var(--ouro-vivo)}

.linha-fina{font-size:clamp(1.05rem,1.65vw,1.28rem);line-height:1.6;color:var(--tinta-media);max-width:34em}
.texto{color:var(--tinta-media);max-width:37em}
.texto p+p{margin-top:1.05em}
.texto strong{color:var(--tinta);font-weight:600}

/* sobre fundo escuro (vinho ou marrom) */
.claro{color:var(--creme)}
.claro h1,.claro h2,.claro h3{color:var(--creme)}
.claro .texto,.claro .linha-fina{color:var(--sobre-escuro)}
.claro .texto strong{color:var(--creme)}

/* ---------- botões ---------- */

.btn{
  display:inline-flex;align-items:center;gap:.6em;
  font-family:var(--f-texto);font-weight:600;font-size:.86rem;
  letter-spacing:.03em;
  padding:.92em 1.55em;
  border:1px solid transparent;cursor:pointer;
  transition:background .3s var(--curva),color .3s var(--curva),border-color .3s var(--curva),transform .3s var(--curva);
}
.btn svg{width:15px;height:15px;flex:none}

/* Todo botão nasce preenchido. A maioria dos acessos é por celular, onde não
   existe "passar o mouse": a cor final precisa estar visível desde o início.
   O hover apenas escurece um pouco, nunca revela a cor. */
.btn-vinho{background:var(--vinho);color:var(--creme);border-color:var(--vinho)}
.btn-vinho:hover{background:var(--vinho-fundo);border-color:var(--vinho-fundo);transform:translateY(-1px)}

.btn-linha{background:var(--vinho);color:var(--creme);border-color:var(--vinho)}
.btn-linha:hover{background:var(--vinho-fundo);border-color:var(--vinho-fundo);transform:translateY(-1px)}

.btn-claro{background:var(--creme);color:var(--vinho);border-color:var(--creme)}
.btn-claro:hover{background:#fff;border-color:#fff;transform:translateY(-1px)}

.btn-ouro{background:var(--ouro-vivo);color:var(--marrom-fundo);border-color:var(--ouro-vivo)}
.btn-ouro:hover{background:#F0C556;border-color:#F0C556;transform:translateY(-1px)}

/* verde do WhatsApp, para os botões que abrem a conversa */
.btn-zap{background:#25D366;color:#0B3D24;border-color:#25D366;font-weight:700}
.btn-zap:hover{background:#1EBE5A;border-color:#1EBE5A;transform:translateY(-1px)}

.link-seta{
  display:inline-flex;align-items:center;gap:.55em;
  font-weight:600;font-size:.9rem;color:var(--vinho);
  padding-bottom:2px;
}
.link-seta::after{content:"";width:16px;height:1px;background:var(--ouro);transition:width .35s var(--curva)}
.link-seta:hover::after{width:28px}
.claro .link-seta{color:var(--ouro-vivo)}
.claro .link-seta::after{background:var(--ouro-vivo)}

.acoes{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap;margin-top:2.25rem}

/* ---------- cabeçalho ---------- */

.topo{
  position:sticky;top:0;z-index:90;
  background:transparent;
  transition:background .45s var(--curva),box-shadow .45s var(--curva);
}
.topo.solido{background:var(--marrom-fundo);box-shadow:0 1px 0 rgba(0,0,0,.2)}
.topo.solido .nav-item,.topo.solido .marca-nome{color:var(--creme)}
.topo.solido .marca-sub{color:var(--ouro-vivo)}
.topo.solido .marca img{filter:brightness(0) invert(1)}
.topo.solido .hamb i{background:var(--creme)}
.topo.solido .btn-linha{background:var(--ouro-vivo);color:var(--marrom-fundo);border-color:var(--ouro-vivo)}

.topo.sobre-foto .nav-item,.topo.sobre-foto .marca-nome{color:var(--creme)}
.topo.sobre-foto .marca-sub{color:var(--ouro-vivo)}
.topo.sobre-foto .marca img{filter:brightness(0) invert(1)}
.topo.sobre-foto .hamb i{background:var(--creme)}
.topo.sobre-foto .btn-linha{background:var(--ouro-vivo);color:var(--marrom-fundo);border-color:var(--ouro-vivo)}

.topo-in{
  max-width:var(--larg);margin-inline:auto;
  padding:.85rem clamp(1.25rem,4vw,3rem);
  display:flex;align-items:center;justify-content:space-between;gap:2rem;
}

/* acima do painel do menu (70): o painel é filho do cabeçalho */
.marca{display:flex;align-items:center;gap:.75rem;position:relative;z-index:75}
.marca img{width:56px;height:56px;object-fit:contain;transition:transform .55s var(--curva),filter .45s}
.marca:hover img{transform:rotate(-9deg)}
.marca-txt{display:flex;flex-direction:column;line-height:1}
.marca-nome{font-family:var(--f-titulo);font-weight:800;font-size:1.3rem;letter-spacing:-.01em;color:var(--tinta);transition:color .45s}
.marca-sub{font-size:.6rem;font-weight:700;letter-spacing:.28em;text-transform:uppercase;color:var(--vinho);margin-top:4px;transition:color .45s}
@media(max-width:560px){
  .marca img{width:46px;height:46px}
  .marca-nome{font-size:1.12rem}
  .marca-sub{font-size:.54rem;letter-spacing:.24em}
}

.nav{display:flex;align-items:center;gap:clamp(1rem,2.1vw,1.9rem)}
.nav-item{
  font-size:.88rem;font-weight:500;color:var(--tinta);
  position:relative;padding-bottom:3px;transition:color .3s;
}
.nav-item::after{
  content:"";position:absolute;left:0;bottom:0;width:0;height:2px;
  background:var(--ouro-vivo);transition:width .35s var(--curva);
}
.nav-item:hover::after,.nav-item.atual::after{width:100%}
.nav .btn{padding:.72em 1.25em;font-size:.8rem}

.hamb{display:none;background:none;border:0;cursor:pointer;padding:.5rem;width:42px;height:42px;position:relative;z-index:75}
.hamb i{display:block;height:1.6px;width:24px;background:var(--tinta);margin:5px 0;transition:transform .35s var(--curva),opacity .25s,background .45s}
.hamb[aria-expanded="true"] i:nth-child(1){transform:translateY(6.6px) rotate(45deg)}
.hamb[aria-expanded="true"] i:nth-child(2){opacity:0}
.hamb[aria-expanded="true"] i:nth-child(3){transform:translateY(-6.6px) rotate(-45deg)}

/* ---------- ritmo das faixas ---------- */

.faixa{padding-block:68px;position:relative}
@media(min-width:768px){.faixa{padding-block:106px}}
@media(min-width:1100px){.faixa{padding-block:142px}}

.creme{background:var(--creme)}
.creme-2{background:var(--creme-2)}
.vinho{background:var(--vinho);color:var(--creme)}
.marrom{background:var(--marrom);color:var(--creme)}
.marrom-esc{background:var(--marrom-fundo);color:var(--creme)}

/* textura de papel/couro discreta nas faixas de cor */
.creme-2::before,.vinho::before,.marrom::before,.marrom-esc::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.55;
  background-image:radial-gradient(circle at 1px 1px,rgba(42,27,18,.05) 1px,transparent 0);
  background-size:22px 22px;
}
.vinho::before,.marrom::before,.marrom-esc::before{
  background-image:radial-gradient(circle at 1px 1px,rgba(243,234,220,.055) 1px,transparent 0);
}
.creme-2>*,.vinho>*,.marrom>*,.marrom-esc>*{position:relative;z-index:1}

/* filete dourado que separa faixas escuras consecutivas */
.borda-ouro{border-top:1px solid rgba(224,176,64,.22)}

/* ---------- hero ---------- */

.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;background:var(--marrom-fundo);margin-top:-72px}
.hero-foto{position:absolute;inset:0;z-index:0}
/* menos overshoot = menos ampliação da foto (a fonte tem resolução limitada) */
.hero-foto img{width:100%;height:106%;object-fit:cover;object-position:center 46%}
.hero-foto::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(to top,rgba(23,14,9,.95) 2%,rgba(28,17,11,.74) 27%,rgba(33,20,13,.26) 58%,rgba(33,20,13,.52) 100%),
    radial-gradient(130% 90% at 12% 108%,rgba(100,13,21,.68),transparent 58%);
}
.hero-in{position:relative;z-index:1;width:100%;padding-block:clamp(3.5rem,11vh,7rem) clamp(2.5rem,7vh,4.5rem)}
.hero h1{color:var(--creme);max-width:15em;margin:1.4rem 0 0}
.hero .linha-fina{color:rgba(243,234,220,.88);margin-top:1.6rem}

.hero-marca-agua{
  position:absolute;right:clamp(-2rem,-1vw,0rem);bottom:8%;z-index:1;
  width:clamp(180px,26vw,340px);opacity:.07;pointer-events:none;
  filter:brightness(0) invert(1);
}

.desce{
  position:absolute;left:50%;bottom:1.5rem;transform:translateX(-50%);z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:.5rem;
  font-size:.62rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;
  color:rgba(243,234,220,.55);
}
.desce span{width:1px;height:34px;background:linear-gradient(to bottom,transparent,var(--ouro-vivo));animation:desceLinha 2.4s var(--curva) infinite}
@keyframes desceLinha{0%{transform:scaleY(.25);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(.25);transform-origin:bottom}}

.capa{position:relative;min-height:62svh;display:flex;align-items:flex-end;overflow:hidden;background:var(--marrom-fundo);margin-top:-72px}
.capa .hero-foto img{height:110%;object-position:center 44%}
.capa .hero-foto::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(23,14,9,.94) 3%,rgba(28,17,11,.62) 44%,rgba(33,20,13,.3) 100%),
             radial-gradient(120% 80% at 8% 110%,rgba(100,13,21,.55),transparent 60%);
}
.capa-in{position:relative;z-index:1;width:100%;padding-block:clamp(4.5rem,11vh,7rem) clamp(2.5rem,6vh,4rem)}
.capa h1{color:var(--creme);font-size:clamp(2.2rem,5.2vw,4.2rem);margin-top:1.2rem}
.capa .linha-fina{color:rgba(243,234,220,.86);margin-top:1.1rem}

.capa-tipo{background:var(--vinho);color:var(--creme);padding-top:clamp(7rem,16vh,11rem);padding-bottom:clamp(3.5rem,9vh,6rem);position:relative;overflow:hidden;margin-top:-72px}
.capa-tipo h1{color:var(--creme);margin-top:1.3rem}
.capa-tipo .linha-fina{color:var(--sobre-escuro);margin-top:1.4rem}
.capa-tipo .selo-agua{
  position:absolute;right:-4%;top:12%;width:clamp(200px,30vw,420px);
  opacity:.08;filter:brightness(0) invert(1);pointer-events:none;
}

/* ---------- enquadramentos ---------- */

.foco-alto img{object-position:center 26%!important}
.foco-topo img{object-position:center 15%!important}
.foco-baixo img{object-position:center 72%!important}

/* ---------- composições ---------- */

.dupla{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(2.5rem,5vw,4.5rem);align-items:center}
@media(min-width:920px){
  .dupla{grid-template-columns:minmax(0,5.6fr) minmax(0,6.4fr)}
  .dupla.texto-direita{grid-template-columns:minmax(0,6.4fr) minmax(0,5.6fr)}
  .dupla.texto-direita .dupla-txt{order:2}
}

.sangra-dir{position:relative}
@media(min-width:920px){
  .sangra-dir{margin-right:calc(50% - 50vw)}
  .sangra-esq{margin-left:calc(50% - 50vw)}
}
.sangra-dir img,.sangra-esq img{width:100%;height:100%;object-fit:cover}

.moldura{position:relative;isolation:isolate}
.moldura::before{
  content:"";position:absolute;z-index:0;
  inset:auto auto -1.5rem -1.5rem;width:56%;height:62%;
  background:var(--vinho);
}
.moldura-ouro::before{background:var(--ouro)}
.moldura-creme::before{background:var(--creme-3)}
.moldura-couro::before{background:var(--couro)}
.moldura>*{position:relative;z-index:1}
@media(max-width:640px){.moldura::before{inset:auto auto -1rem -1rem;width:52%;height:50%}}

.par{position:relative;padding-bottom:clamp(2.5rem,7vw,5rem)}
.par-a img{width:100%;aspect-ratio:4/5;object-fit:cover}
.par-b{
  position:absolute;right:-4%;bottom:0;width:54%;z-index:2;
  box-shadow:0 26px 60px rgba(23,14,9,.4);
  border:6px solid var(--creme);
}
.par-b img{width:100%;aspect-ratio:1/1;object-fit:cover}
.vinho .par-b,.marrom .par-b,.marrom-esc .par-b{border-color:var(--marrom)}
.vinho .par-b{border-color:var(--vinho)}
/* home "Tres formas de comer": espeto a esquerda + inset mais p/ direita e baixo */
.par-esp .par-b{right:-8%;bottom:-3%}
@media(max-width:640px){
  .par{padding-bottom:3.5rem}
  .par-b{width:62%;right:0;border-width:5px}
  .par-esp{padding-bottom:6.5rem}
  .par-esp .par-b{width:60%;right:-4%;bottom:-6%}
}

.legenda{margin-top:1.1rem;font-size:.76rem;line-height:1.55;color:var(--tinta-suave);max-width:26em}
.claro .legenda{color:var(--sobre-fraco)}

.tira{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(.5rem,1.2vw,1rem)}
@media(min-width:820px){.tira{grid-template-columns:repeat(4,1fr)}}
.tira figure{overflow:hidden;aspect-ratio:3/4;background:var(--marrom-alto)}
.tira img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--curva)}
.tira figure:hover img{transform:scale(1.06)}
@media(min-width:820px){.tira figure:nth-child(odd){transform:translateY(clamp(1rem,2.5vw,2.5rem))}}

/* ==========================================================================
   CARROSSEL DE PRATOS
   ========================================================================== */

.carrossel{position:relative;margin-top:clamp(2.5rem,6vh,4rem)}

.carrossel-trilho{
  /* recuo lateral: alinha o primeiro card com a coluna de texto, mesmo o
     trilho sangrando até a borda da tela */
  --recuo:max(calc(50vw - var(--larg)/2 + clamp(1.25rem,4vw,3rem)),clamp(1.25rem,4vw,3rem));
  display:flex;gap:clamp(.75rem,1.6vw,1.25rem);
  overflow-x:auto;
  scrollbar-width:none;-ms-overflow-style:none;
  padding-bottom:.5rem;
  margin-inline:calc(50% - 50vw);
  padding-inline:var(--recuo);
  /* sem scroll-snap: com o recuo lateral grande, o snap disputa a posição com
     a rolagem programada e o carrossel para em lugares errados. O encaixe
     vem da animação do JS, que já para exatamente na borda de cada card. */
}
.carrossel-trilho::-webkit-scrollbar{display:none}

.prato{
  flex:0 0 78%;position:relative;
  overflow:hidden;background:var(--marrom-alto);
}
@media(min-width:640px){.prato{flex-basis:44%}}
@media(min-width:1000px){.prato{flex-basis:30%}}
@media(min-width:1400px){.prato{flex-basis:25%}}

.prato img{
  width:100%;aspect-ratio:4/5;object-fit:cover;
  transition:transform 1.3s var(--curva),filter .6s var(--curva);
}
.prato:hover img{transform:scale(1.05)}
.prato::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(to top,rgba(23,14,9,.86) 0%,rgba(23,14,9,.28) 34%,transparent 62%);
}
.prato figcaption{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  padding:clamp(1.1rem,2.2vw,1.6rem);
}
.prato figcaption b{
  display:block;font-family:var(--f-titulo);font-weight:700;
  font-size:clamp(1.05rem,1.5vw,1.22rem);color:var(--creme);line-height:1.2;
}
.prato figcaption span{
  display:block;margin-top:.3rem;
  font-size:.68rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ouro-vivo);
}

.carrossel-controles{
  display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
  margin-top:clamp(1.5rem,3vh,2rem);flex-wrap:wrap;
}
.carrossel-pontos{display:flex;gap:.45rem;flex-wrap:wrap}
.ponto{
  width:26px;height:2px;border:0;padding:0;cursor:pointer;
  background:rgba(243,234,220,.28);transition:background .35s var(--curva),width .35s var(--curva);
}
.ponto.ativo{background:var(--ouro-vivo);width:40px}
.creme .ponto,.creme-2 .ponto{background:rgba(42,27,18,.2)}
.creme .ponto.ativo,.creme-2 .ponto.ativo{background:var(--vinho)}

.carrossel-setas{display:flex;gap:.6rem}
.seta-btn{
  width:46px;height:46px;border:1px solid var(--fio-claro);
  background:transparent;color:var(--creme);cursor:pointer;
  display:grid;place-items:center;
  transition:background .3s var(--curva),color .3s var(--curva),border-color .3s var(--curva);
}
.seta-btn svg{width:17px;height:17px}
.seta-btn:hover{background:var(--creme);color:var(--vinho);border-color:var(--creme)}
.creme .seta-btn,.creme-2 .seta-btn{border-color:var(--fio);color:var(--vinho)}
.creme .seta-btn:hover,.creme-2 .seta-btn:hover{background:var(--vinho);color:var(--creme);border-color:var(--vinho)}

/* ==========================================================================
   AVALIAÇÕES
   ========================================================================== */

/* cartões no formato que o cliente já conhece do Google, porém com a
   tipografia e o papel da casa. Sem datas e sem rótulo repetido. */
.avaliacao{
  flex:0 0 84%;
  background:#fff;
  border:1px solid rgba(42,27,18,.10);
  border-radius:10px;
  padding:clamp(1.3rem,2.4vw,1.7rem);
  display:flex;flex-direction:column;gap:.85rem;
  box-shadow:0 2px 10px rgba(23,14,9,.06);
  transition:transform .45s var(--curva),box-shadow .45s var(--curva);
}
@media(min-width:640px){.avaliacao{flex-basis:47%}}
@media(min-width:1040px){.avaliacao{flex-basis:31.5%}}
.avaliacao:hover{transform:translateY(-4px);box-shadow:0 16px 38px rgba(23,14,9,.13)}

.aval-topo{display:flex;align-items:center;gap:.8rem}
.aval-foto{
  width:44px;height:44px;border-radius:50%;flex:none;
  object-fit:cover;background:var(--creme-3);
}
.aval-quem{display:flex;flex-direction:column;gap:.1rem;min-width:0}
.aval-quem b{font-family:var(--f-texto);font-weight:600;font-size:.94rem;color:#1f1f1f;line-height:1.3}
.aval-quem span{font-size:.75rem;color:#70757a}

.estrelas{display:flex;gap:1px;color:#FBBC04}
.estrelas svg{width:16px;height:16px}

.avaliacao p{font-size:.95rem;line-height:1.62;color:#3c4043;margin:0;flex:1}

.aval-g{
  display:flex;align-items:center;gap:.45rem;
  font-size:.72rem;color:#70757a;margin-top:.2rem;
}
.aval-g svg{width:14px;height:14px;flex:none}

/* ---------- horários e valores ---------- */

.tabela-servico{
  display:grid;grid-template-columns:minmax(0,1fr);gap:1px;
  background:var(--fio);margin-top:clamp(2.5rem,5vh,3.5rem);
}
@media(min-width:820px){.tabela-servico{grid-template-columns:repeat(3,1fr)}}
.claro .tabela-servico{background:var(--fio-claro)}

.servico{background:var(--creme);padding:clamp(1.6rem,3vw,2.2rem);display:flex;flex-direction:column;gap:.55rem}
.creme-2 .servico{background:var(--creme-2)}
.vinho .servico{background:var(--vinho)}
.marrom .servico{background:var(--marrom)}
.servico.destaque{background:var(--vinho);color:var(--creme)}
.servico.destaque h3,.servico.destaque .servico-valor{color:var(--creme)}
.servico.destaque .servico-inclui{color:var(--sobre-escuro)}
.servico.destaque .servico-selo{background:var(--ouro-vivo);color:var(--vinho)}

.servico h3{font-size:1.05rem;color:var(--vinho)}
.claro .servico h3{color:var(--ouro-vivo)}
.servico-valor{
  font-family:var(--f-titulo);font-weight:800;
  font-size:clamp(1.9rem,3.4vw,2.5rem);line-height:1;letter-spacing:-.02em;
  color:var(--tinta);font-variant-numeric:tabular-nums;
}
.claro .servico-valor{color:var(--creme)}
.servico-valor small{font-size:.42em;font-weight:600;letter-spacing:0;margin-right:.15em;opacity:.7}
.servico-inclui{font-size:.9rem;color:var(--tinta-media);line-height:1.6}
.claro .servico-inclui{color:var(--sobre-escuro)}
.servico-selo{
  align-self:flex-start;margin-top:.25rem;
  font-size:.63rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  padding:.3em .7em;background:var(--vinho);color:var(--creme);
}
/* selo secundário, discreto, para o "mais rápido" do buffet por quilo */
.servico-selo-claro{background:transparent;color:var(--vinho);box-shadow:inset 0 0 0 1px rgba(100,13,21,.4)}

/* ---------- vídeo vertical (formato story) ---------- */

.filme{position:relative;max-width:340px;margin-inline:auto}
.filme video{
  width:100%;aspect-ratio:9/16;object-fit:cover;display:block;
  border:7px solid var(--creme);
  box-shadow:0 26px 60px rgba(23,14,9,.4);
}
.vinho .filme video,.marrom .filme video{border-color:var(--marrom)}
.filme-tag{
  position:absolute;left:1rem;bottom:1rem;z-index:2;
  display:flex;align-items:center;gap:.5rem;
  font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--creme);background:rgba(23,14,9,.55);backdrop-filter:blur(4px);
  padding:.4em .8em;
}
.filme-tag i{width:7px;height:7px;border-radius:50%;background:#ff4d4d;animation:pisca 1.6s ease-in-out infinite}
@keyframes pisca{0%,100%{opacity:1}50%{opacity:.35}}

/* ---------- conveniência: faixa com foto ampla ao fundo ---------- */

.estrada{min-height:60vh;display:flex;align-items:center}
.estrada-foto{position:absolute;inset:0;z-index:0}
.estrada-foto img{width:100%;height:112%;object-fit:cover;object-position:center 60%}
.estrada-foto::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to right,rgba(76,9,15,.96) 8%,rgba(76,9,15,.82) 48%,rgba(76,9,15,.5) 100%),
             linear-gradient(to top,rgba(33,20,13,.5),transparent 60%);
}
.estrada-in{position:relative;z-index:1;max-width:44em}

/* ---------- conveniência: o que você encontra ---------- */

.encontra{display:grid;grid-template-columns:minmax(0,1fr);gap:0;margin-top:clamp(2.5rem,6vh,4rem);border-top:1px solid var(--fio)}
.claro .encontra{border-color:var(--fio-claro)}
@media(min-width:720px){.encontra{grid-template-columns:repeat(2,1fr);column-gap:clamp(2rem,5vw,4rem)}}
.encontra-item{
  display:flex;gap:1rem;align-items:flex-start;
  padding-block:clamp(1.1rem,2.4vw,1.5rem);
  border-bottom:1px solid var(--fio);
}
.claro .encontra-item{border-color:var(--fio-claro)}
.encontra-item svg{width:22px;height:22px;flex:none;color:var(--ouro);stroke-width:1.5;margin-top:2px}
.claro .encontra-item svg{color:var(--ouro-vivo)}
.encontra-item b{display:block;font-size:1rem;font-weight:600;color:var(--tinta);margin-bottom:.15rem}
.claro .encontra-item b{color:var(--creme)}
.encontra-item p{font-size:.9rem;color:var(--tinta-media);line-height:1.5;margin:0}
.claro .encontra-item p{color:var(--sobre-escuro)}

.horarios{
  display:grid;grid-template-columns:minmax(0,1fr);gap:1px;
  background:var(--fio);margin-top:1px;
}
@media(min-width:700px){.horarios{grid-template-columns:repeat(3,1fr)}}
.claro .horarios{background:var(--fio-claro)}
.horario{background:var(--creme);padding:clamp(1.2rem,2.4vw,1.6rem);display:flex;align-items:flex-start;gap:.8rem}
.creme-2 .horario{background:var(--creme-2)}
.vinho .horario{background:var(--vinho)}
.marrom .horario{background:var(--marrom)}
.horario svg{width:19px;height:19px;color:var(--ouro);flex:none;margin-top:3px;stroke-width:1.6}
.claro .horario svg{color:var(--ouro-vivo)}
.horario b{display:block;font-size:.7rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--tinta-suave);margin-bottom:.2rem}
.claro .horario b{color:var(--sobre-fraco)}
.horario p{font-family:var(--f-titulo);font-weight:700;font-size:1.08rem;color:var(--tinta);line-height:1.3}
.claro .horario p{color:var(--creme)}

.nota-servico{margin-top:1.5rem;font-size:.83rem;color:var(--tinta-suave)}
.claro .nota-servico{color:var(--sobre-fraco)}

/* ---------- números ---------- */

.fatos{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--fio);margin-top:clamp(3rem,7vh,4.5rem)}
@media(min-width:840px){.fatos{grid-template-columns:repeat(4,1fr)}}
.claro .fatos{background:var(--fio-claro)}
.fato{background:var(--creme);padding:clamp(1.4rem,3vw,2rem)}
.creme-2 .fato{background:var(--creme-2)}
.vinho .fato{background:var(--vinho)}
.marrom .fato{background:var(--marrom)}
.marrom-esc .fato{background:var(--marrom-fundo)}
/* todos os números com o mesmo peso: tamanho, cor e entrelinha idênticos */
.fato b{
  display:block;
  font-family:var(--f-titulo);
  font-size:clamp(2rem,3.8vw,2.9rem);
  font-weight:800;line-height:1;letter-spacing:-.03em;
  color:var(--vinho);
  font-variant-numeric:tabular-nums;
}
.claro .fato b{color:var(--ouro-vivo)}
.fato span{display:block;margin-top:.55rem;font-size:.72rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--tinta-suave);line-height:1.5}
.claro .fato span{color:var(--sobre-fraco)}

.numeral-fundo{
  position:absolute;right:-.03em;bottom:-.24em;z-index:0;
  font-family:var(--f-titulo);font-weight:800;line-height:.8;
  font-size:clamp(9rem,25vw,22rem);letter-spacing:-.04em;
  color:transparent;-webkit-text-stroke:1.5px rgba(243,234,220,.12);
  pointer-events:none;user-select:none;
}

/* ---------- modalidades ---------- */

.modos{margin-top:clamp(2.5rem,6vh,4rem);border-top:1px solid var(--fio)}
.claro .modos{border-color:var(--fio-claro)}
.modo{
  border-bottom:1px solid var(--fio);
  padding-block:clamp(1.5rem,3.4vw,2.2rem);
  display:grid;grid-template-columns:minmax(0,1fr);gap:.5rem;
  transition:padding-left .4s var(--curva);
}
.claro .modo{border-color:var(--fio-claro)}
@media(min-width:820px){
  .modo{grid-template-columns:minmax(0,12rem) minmax(0,1fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:baseline}
  .modo:hover{padding-left:.85rem}
}
.modo h3{color:var(--vinho)}
.claro .modo h3{color:var(--ouro-vivo)}
.modo p{color:var(--tinta-media);font-size:.98rem}
.claro .modo p{color:var(--sobre-escuro)}

/* ---------- responsabilidade ---------- */

.selo-linha{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(1.75rem,4vw,3rem);align-items:center}
@media(min-width:780px){.selo-linha{grid-template-columns:auto minmax(0,1fr)}}
.selo-linha img{width:clamp(104px,13vw,142px);height:auto}

.praticas{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(1.5rem,3vw,2.5rem);margin-top:clamp(2.5rem,5vh,3.5rem)}
@media(min-width:760px){.praticas{grid-template-columns:repeat(3,1fr)}}
.pratica{border-top:2px solid var(--ouro);padding-top:1.15rem}
.claro .pratica{border-color:var(--ouro-vivo)}
.pratica h3{font-size:1.02rem;margin-bottom:.4rem}
.pratica p{font-size:.93rem;color:var(--tinta-media)}
.claro .pratica p{color:var(--sobre-escuro)}

/* ---------- cardápio ---------- */

.categoria{padding-block:clamp(3rem,7vh,5.5rem);border-top:1px solid var(--fio)}
.claro .categoria{border-color:var(--fio-claro)}
.categoria:first-of-type{border-top:0;padding-top:clamp(2rem,5vh,3.5rem)}
.cat-topo{display:grid;grid-template-columns:minmax(0,1fr);gap:1.1rem;margin-bottom:clamp(1.75rem,4vh,2.75rem)}
@media(min-width:880px){.cat-topo{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(2rem,5vw,4rem);align-items:end}}

.galeria{display:grid;gap:clamp(.6rem,1.4vw,1.1rem)}
.gal-2{grid-template-columns:repeat(2,1fr)}
.gal-3{grid-template-columns:repeat(2,1fr)}
@media(min-width:860px){.gal-3{grid-template-columns:repeat(3,1fr)}}
.galeria figure{position:relative;overflow:hidden;background:var(--creme-3);aspect-ratio:1/1}
.galeria img{width:100%;height:100%;object-fit:cover;transition:transform 1.15s var(--curva)}
.galeria figure:hover img{transform:scale(1.05)}
.galeria figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:2.6rem .95rem .85rem;
  font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--creme);
  background:linear-gradient(to top,rgba(23,14,9,.9),transparent);
  opacity:0;transform:translateY(6px);
  transition:opacity .4s var(--curva),transform .4s var(--curva);
}
.galeria figure:hover figcaption{opacity:1;transform:none}

.cortes{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1.75rem}
.corte{
  font-size:.78rem;font-weight:600;letter-spacing:.03em;
  padding:.45em .95em;color:var(--tinta-media);
  border:1px solid var(--fio);
  transition:color .3s,border-color .3s,background .3s;
}
.corte:hover{color:var(--creme);background:var(--vinho);border-color:var(--vinho)}
.claro .corte{color:var(--sobre-escuro);border-color:var(--fio-claro)}
.claro .corte:hover{background:var(--ouro-vivo);color:var(--marrom);border-color:var(--ouro-vivo)}

/* ---------- narrativa ---------- */

.capitulo{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(2rem,4.5vw,4rem)}
@media(min-width:940px){
  .capitulo{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start}
  .capitulo.inverso{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
  .capitulo.inverso .capitulo-txt{order:2}
}
.citacao{
  font-family:var(--f-titulo);font-weight:700;
  font-size:clamp(1.4rem,3vw,2.35rem);line-height:1.26;
  letter-spacing:-.015em;max-width:22em;color:var(--vinho);
}
.claro .citacao{color:var(--creme)}
.citacao-fio{padding-left:clamp(1.1rem,2.5vw,2rem);border-left:3px solid var(--ouro-vivo)}

.retrato img{width:100%;aspect-ratio:4/5;object-fit:cover}
.paisagem img{width:100%;aspect-ratio:3/2;object-fit:cover}
.quadro img{width:100%;aspect-ratio:1/1;object-fit:cover}

/* ---------- mapa e contato ---------- */

.mapa{position:relative;background:var(--creme-3);line-height:0}
.mapa iframe{display:block;width:100%;height:clamp(360px,50vh,540px);border:0;filter:grayscale(.34) contrast(1.04) sepia(.08)}
.cartao{background:var(--creme);padding:clamp(1.6rem,3.4vw,2.4rem);box-shadow:0 24px 60px rgba(23,14,9,.22);line-height:1.7}
@media(min-width:1000px){
  .mapa-area{position:relative}
  .cartao{position:absolute;right:clamp(1.25rem,4vw,3rem);bottom:clamp(1.25rem,4vw,3rem);width:min(360px,34vw);z-index:2}
}
.info{display:flex;gap:.85rem;padding-block:.95rem;border-top:1px solid var(--fio)}
.info:first-of-type{border-top:0;padding-top:0}
.info svg{width:18px;height:18px;color:var(--ouro);flex:none;margin-top:4px;stroke-width:1.6}
.info b{display:block;font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--tinta-suave);margin-bottom:.2rem}
.info p,.info a,.info address{font-size:.97rem;color:var(--tinta)}
.info a:hover{color:var(--vinho)}

.canais{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(1.5rem,3vw,2.5rem);margin-top:clamp(2.5rem,5vh,3.5rem)}
@media(min-width:760px){.canais{grid-template-columns:repeat(3,1fr)}}
.canal{border-top:2px solid var(--ouro-vivo);padding-top:1.2rem}
.canal h3{font-size:1.05rem;margin-bottom:.35rem}
.claro .canal h3{color:var(--creme)}
.canal p{font-size:.92rem;color:var(--tinta-media);margin-bottom:.9rem}
.claro .canal p{color:var(--sobre-escuro)}

/* ---------- rodapé ---------- */

.rodape{background:var(--marrom-fundo);color:var(--creme);padding-top:clamp(3.5rem,7vh,5.5rem)}
.rodape-topo{
  display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(2rem,4vw,3rem);
  align-items:end;padding-bottom:clamp(2.5rem,5vh,3.5rem);
  border-bottom:1px solid var(--fio-claro);
}
@media(min-width:900px){.rodape-topo{grid-template-columns:minmax(0,1fr) auto}}
.rodape-frase{font-family:var(--f-titulo);font-weight:700;font-size:clamp(1.5rem,3.4vw,2.5rem);line-height:1.14;letter-spacing:-.02em;max-width:14em;color:var(--creme)}

.rodape-grade{display:grid;grid-template-columns:minmax(0,1fr);gap:2.25rem;padding-block:clamp(2.5rem,5vh,3.5rem)}
@media(min-width:640px){.rodape-grade{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.rodape-grade{grid-template-columns:1.3fr 1fr 1fr 1fr;gap:clamp(1.5rem,3vw,2.5rem)}}
.rod-col{display:flex;flex-direction:column;gap:.6rem}
.rod-col .chapeu{color:var(--ouro-vivo);margin-bottom:.6rem}
.rod-col .chapeu::before{background:var(--fio-claro)}
.rod-col a,.rod-col p,.rod-col address{font-size:.93rem;color:rgba(243,234,220,.72);width:fit-content;transition:color .3s}
.rod-col a:hover{color:var(--ouro-vivo)}
.rod-col address{line-height:1.75}

.rodape-marca{display:flex;align-items:center;gap:.9rem;margin-bottom:.4rem}
.rodape-marca img{width:64px;height:64px;object-fit:contain;filter:brightness(0) invert(1)}
.rodape-marca b{font-family:var(--f-titulo);font-size:1.26rem;font-weight:800;display:block;line-height:1.1}
.rodape-marca span{font-size:.6rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--ouro-vivo)}

.rodape-base{
  border-top:1px solid var(--fio-claro);
  padding-block:1.4rem 2rem;
  display:flex;justify-content:space-between;align-items:center;gap:1.2rem;flex-wrap:wrap;
  font-size:.79rem;color:rgba(243,234,220,.5);
}
.credito{display:flex;align-items:center;gap:.65rem}
.credito img{width:26px;height:26px;object-fit:contain;mix-blend-mode:screen}
.credito a{color:rgba(243,234,220,.78);transition:color .3s}
.credito a:hover{color:var(--ouro-vivo)}

/* ---------- whatsapp flutuante ---------- */

/* verde oficial do WhatsApp: o usuário reconhece o botão antes de ler */
.zap{
  position:fixed;right:1rem;bottom:1rem;z-index:80;
  display:flex;align-items:center;justify-content:center;
  width:54px;height:54px;border-radius:50%;
  background:#25D366;color:#fff;
  box-shadow:0 8px 24px rgba(11,61,36,.34);
  transition:transform .35s var(--curva),background .3s;
}
.zap svg{width:26px;height:26px}
.zap:hover{background:#1EBE5A;transform:scale(1.06)}
@media(min-width:1025px){.zap{right:1.5rem;bottom:1.5rem}}

/* ---------- revelação ---------- */

.js .rv{opacity:0;transform:translateY(26px);transition:opacity .8s var(--curva),transform .8s var(--curva)}
.js .rv.visto{opacity:1;transform:none}
/* trava de segurança: mostra sem transição, sem depender de animação terminar */
.js.tudo-visivel .rv{opacity:1!important;transform:none!important;transition:none!important}
.js .rv:nth-child(2){transition-delay:.07s}
.js .rv:nth-child(3){transition-delay:.14s}
.js .rv:nth-child(4){transition-delay:.21s}
.js .rv:nth-child(5){transition-delay:.28s}

.dividido .pal{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.06em}
.dividido .pal>span{display:inline-block;transform:translateY(105%);animation:sobePalavra .95s var(--curva) forwards}
@keyframes sobePalavra{to{transform:translateY(0)}}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .rv{opacity:1!important;transform:none!important;transition:none}
  .desce span{animation:none}
  .dividido .pal>span{transform:none;animation:none}
  .carrossel-trilho{scroll-behavior:auto}
}

/* ---------- responsivo ---------- */

@media(max-width:1024px){
  .nav{
    position:fixed;left:0;right:0;top:0;bottom:0;z-index:70;
    background:var(--vinho);
    flex-direction:column;align-items:flex-start;justify-content:center;
    padding:6.5rem clamp(1.5rem,7vw,3rem) 3rem;
    gap:1.35rem;
    opacity:0;visibility:hidden;pointer-events:none;
    transition:opacity .35s var(--curva),visibility .35s;
    overflow-y:auto;
  }
  .nav.aberta{opacity:1;visibility:visible;pointer-events:auto}
  .nav-item{font-family:var(--f-titulo);font-weight:700;font-size:1.75rem;color:var(--creme)!important}
  .nav-item::after{background:var(--ouro-vivo)}
  /* especificidade acima de .topo.sobre-foto .btn-linha, senão o texto some */
  .topo .nav .btn,.topo.sobre-foto .nav .btn,.topo.solido .nav .btn{
    margin-top:1rem;font-size:.88rem;padding:.95em 1.7em;
    background:var(--creme);color:var(--vinho);border-color:var(--creme);
  }
  .nav>*{opacity:0;transform:translateY(12px);transition:opacity .4s var(--curva),transform .4s var(--curva)}
  .nav.aberta>*{opacity:1;transform:none}
  .nav.aberta>*:nth-child(1){transition-delay:.08s}
  .nav.aberta>*:nth-child(2){transition-delay:.13s}
  .nav.aberta>*:nth-child(3){transition-delay:.18s}
  .nav.aberta>*:nth-child(4){transition-delay:.23s}
  .nav.aberta>*:nth-child(5){transition-delay:.28s}
  .nav.aberta>*:nth-child(6){transition-delay:.33s}
  .hamb{display:block}

  body.menu-aberto .topo{background:transparent;box-shadow:none}
  body.menu-aberto .marca-nome{color:var(--creme)!important}
  body.menu-aberto .marca-sub{color:var(--ouro-vivo)!important}
  body.menu-aberto .marca img{filter:brightness(0) invert(1)!important}
  body.menu-aberto .hamb i{background:var(--creme)!important}

  .dupla,.capitulo,.capitulo.inverso{grid-template-columns:1fr}
  .capitulo.inverso .capitulo-txt{order:0}
  .sangra-dir,.sangra-esq{margin-inline:0}
  .hero{min-height:68svh}
  .tira figure:nth-child(odd){transform:none}
  .carrossel-controles{justify-content:center}
  .carrossel-setas{display:none}
}

@media(max-width:768px){
  /* mobile: trava o hero da home em 4/5 (= recorte hero-home-mobile) p/ nao cortar as laterais */
  .hero{aspect-ratio:4/5;min-height:0}
  .hero .hero-foto img{height:100%;object-position:center 30%}
  /* cardapio: sem overshoot no mobile p/ dar folga lateral aos espetos (nao cortar a carne da ponta) */
  .capa-cardapio .hero-foto img{height:100%}
}

@media(max-width:640px){
  body{font-size:1rem}
  .fatos{grid-template-columns:repeat(2,1fr)}
  .gal-2,.gal-3{grid-template-columns:1fr}
  .rodape-grade{grid-template-columns:1fr}
  .rodape-base{flex-direction:column;align-items:flex-start;gap:.8rem}
  .hero-marca-agua{display:none}
}
