:root{
  --bg:#faf6ee; --bg2:#efe6d4; --card:#fffdf8; --ink:#1c1613; --ink2:#5a4d44;
  --terra:#7a1f2e; --terra-d:#5e1522; --saf:#c5a043; --brown:#1c1613; --linha:#e4d9c2;
  --ok:#1f6b3a; --nok:#9b1c1c;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:4.5rem}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1rem/1.55 "Nunito Sans",system-ui,sans-serif;padding-bottom:5rem}
img{max-width:100%;height:auto;display:block}
a{color:var(--terra-d)}
:focus-visible{outline:3px solid var(--saf);outline-offset:2px}
.wrap{max-width:1120px;margin:0 auto;padding:0 1rem}
.skip{position:absolute;left:-999px;top:0;background:#fff;padding:.6rem 1rem;z-index:100}
.skip:focus{left:0}
h1,h2,.marca{font-family:Fraunces,Georgia,serif}
h2{font-size:1.7rem;margin:0 0 .5rem;line-height:1.2}

.estado{padding:.7rem 1rem;text-align:center;font-weight:700;background:var(--bg2);position:sticky;top:0;z-index:30}
.estado.aberto{background:var(--ok);color:#fff}
.estado.fechado{background:var(--nok);color:#fff;font-size:1.05rem}

.topo{background:var(--brown);color:#fff}
.topo-in{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:3.6rem;flex-wrap:wrap}
.marca{color:#fff;text-decoration:none;font-weight:800;font-size:1.25rem}
.marca-a{color:#fff}.marca-b{color:var(--saf);font-style:italic;font-weight:600}
.topo{border-bottom:1px solid rgba(197,160,67,.35)}
.topo nav{display:flex;gap:1rem}
.topo nav a{color:#eadfc9;text-decoration:none;padding:.5rem 0;font-weight:600}
.topo nav a:hover{color:var(--saf)}

.hero{background:var(--brown);color:#fff;
  background-image:radial-gradient(circle at 1px 1px,rgba(197,160,67,.16) 1px,transparent 0);background-size:22px 22px}
.hero-in{display:grid;gap:1.5rem;padding-top:2rem;padding-bottom:2.5rem}
.sobre{color:var(--saf);text-transform:uppercase;letter-spacing:.12em;font-size:.8rem;font-weight:700;margin:0 0 .5rem}
h1{font-size:clamp(2.1rem,8vw,3.6rem);line-height:1.05;margin:0 0 1rem;font-weight:800}
h1 em{color:var(--saf);font-style:italic}
.lead{font-size:1.1rem;color:#eadfc9;max-width:34rem}
.hero-img{border-radius:1.2rem;border:4px solid var(--saf);aspect-ratio:4/3;object-fit:cover;width:100%}

.btn{display:inline-block;background:var(--terra);color:#fff;border:0;border-radius:.7rem;padding:.95rem 1.5rem;
  font:700 1rem "Nunito Sans",sans-serif;text-decoration:none;cursor:pointer;min-height:3rem}
.btn:hover{background:var(--terra-d)}
.btn[disabled]{background:#b9a995;color:#fff;cursor:not-allowed}
.btn.grande{width:100%;font-size:1.05rem}
.hero .btn{background:var(--saf);color:var(--brown)}

.layout{display:grid;gap:2rem;padding-top:2.5rem;padding-bottom:2rem}
.nota{color:var(--ink2);font-size:.92rem}
.cat{font-size:1.2rem;margin:1.8rem 0 .8rem;padding-bottom:.4rem;border-bottom:2px solid var(--saf);font-family:Fraunces,serif}
.item{display:flex;gap:.8rem;justify-content:space-between;align-items:center;background:var(--card);
  border:1px solid var(--linha);border-radius:.8rem;padding:.9rem 1rem;margin-bottom:.6rem}
.foto-item{order:-1;flex:none;width:4.5rem;height:4.5rem;border-radius:.7rem;object-fit:cover;background:var(--bg2)}
.info-item{flex:1;min-width:0}
.item h4{margin:0;font-size:1.05rem}
.item p{margin:.15rem 0 0;font-size:.92rem;color:var(--ink2)}
.preco{font-weight:700;color:var(--terra-d);white-space:nowrap}
.sem-preco{font-size:.85rem;font-style:italic;color:var(--ink2);white-space:nowrap;max-width:7rem;text-align:right}
.acao{display:flex;flex-direction:column;align-items:flex-end;gap:.4rem}
.add{background:var(--brown);color:#fff;border:0;border-radius:.6rem;min-height:2.75rem;padding:0 1rem;font:700 .95rem "Nunito Sans",sans-serif;cursor:pointer}
.add:hover{background:var(--terra)}
.add[disabled]{background:#b9a995;cursor:not-allowed}

.carrinho{position:fixed;left:0;right:0;bottom:0;max-height:88vh;overflow:auto;background:var(--card);
  border-radius:1.2rem 1.2rem 0 0;box-shadow:0 -8px 30px rgba(0,0,0,.3);padding:1rem;z-index:50;
  transform:translateY(105%);visibility:hidden;transition:transform .25s,visibility .25s}
.carrinho.aberto{transform:none;visibility:visible}
.carr-cab{display:flex;justify-content:space-between;align-items:center}
.carr-cab h2{margin:0}
.fechar{background:none;border:0;font-size:2rem;line-height:1;width:3rem;height:3rem;cursor:pointer;color:var(--ink)}
.fundo{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:40}
.vazio{color:var(--ink2)}
.carr-itens{list-style:none;margin:0 0 1rem;padding:0}
.carr-itens li{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.55rem 0;border-bottom:1px solid var(--linha)}
.qtd{display:flex;align-items:center;gap:.3rem}
.qtd button{width:2.75rem;height:2.75rem;border-radius:.5rem;border:1px solid var(--linha);background:#fff;font-size:1.3rem;cursor:pointer}
.qtd span{min-width:1.5rem;text-align:center;font-weight:700}
form label{display:block;font-weight:700;margin:.8rem 0 .25rem;font-size:.95rem}
input[type=text],input[type=tel],select,textarea{width:100%;padding:.8rem;border:1.5px solid var(--linha);border-radius:.6rem;
  font:inherit;background:#fff;color:var(--ink);min-height:3rem}
fieldset{border:0;padding:0;margin:0}
legend{font-weight:700;padding:0}
label.opc{display:flex;gap:.6rem;align-items:center;font-weight:600;margin:.3rem 0;min-height:2.75rem}
.opc input{width:1.3rem;height:1.3rem;accent-color:var(--terra)}
.totais{margin:1rem 0 .3rem}
.totais div{display:flex;justify-content:space-between;padding:.2rem 0}
.totais dt,.totais dd{margin:0}
.totais .tot{font-weight:800;font-size:1.2rem;border-top:2px solid var(--brown);margin-top:.3rem;padding-top:.5rem}
.pag{font-size:.9rem;background:var(--bg2);padding:.6rem .8rem;border-radius:.5rem;margin:.6rem 0}
.erro{color:var(--nok);font-weight:700;min-height:1.2em;margin:.3rem 0}

.barra{position:fixed;left:.6rem;right:.6rem;bottom:.6rem;z-index:35;display:flex;justify-content:space-between;align-items:center;
  background:var(--terra);color:#fff;border:0;border-radius:.9rem;padding:.9rem 1.1rem;min-height:3.4rem;
  font:700 1rem "Nunito Sans",sans-serif;box-shadow:0 6px 20px rgba(0,0,0,.35);cursor:pointer}

.faixa{background:var(--bg2);padding:2rem 0}
.fotos{display:grid;gap:.8rem}
.fotos img{border-radius:.8rem;aspect-ratio:4/3;object-fit:cover;width:100%}
.info{padding-top:2.5rem;padding-bottom:1rem}
.hor{list-style:none;padding:0;margin:0 0 .6rem;max-width:26rem}
.hor li{display:flex;justify-content:space-between;padding:.45rem .2rem;border-bottom:1px solid var(--linha)}
.hor li.hoje{font-weight:800;color:var(--terra-d)}
.rodape{border-top:3px solid var(--saf);background:var(--brown);color:#eadfc9;padding:1.5rem 0;margin-top:2rem;font-size:.9rem}

@media(min-width:900px){
  body{padding-bottom:0}
  .hero-in{grid-template-columns:1.1fr 1fr;align-items:center;padding-top:3.5rem;padding-bottom:3.5rem}
  .layout{grid-template-columns:1fr 380px;align-items:start}
  .carrinho{position:sticky;top:3.6rem;transform:none;visibility:visible;border-radius:1rem;box-shadow:none;
    border:1px solid var(--linha);max-height:calc(100vh - 4.5rem);z-index:1}
  .fechar,.barra,.fundo{display:none!important}
  .fotos{grid-template-columns:repeat(3,1fr)}
}
/* Refinamento visual */
.hero{background-image:radial-gradient(ellipse at 80% 0,rgba(197,160,67,.22),transparent 55%),radial-gradient(circle at 1px 1px,rgba(197,160,67,.12) 1px,transparent 0);background-size:auto,22px 22px}
.hero-in{padding-top:2.5rem;padding-bottom:3rem}
.sobre::before{content:"";display:inline-block;width:2rem;height:1px;background:var(--saf);vertical-align:middle;margin-right:.7rem}
.hero-img{border:0;border-radius:1.6rem;box-shadow:0 24px 50px rgba(0,0,0,.45),0 0 0 1px rgba(197,160,67,.5);transform:rotate(1.2deg)}
.btn{border-radius:2rem;padding:1rem 1.9rem;letter-spacing:.02em;transition:background .2s,transform .2s}
.btn:hover{transform:translateY(-1px)}
.passos{background:var(--card);border-bottom:1px solid var(--linha)}
.passos-in{list-style:none;margin:0 auto;display:grid;gap:.6rem;padding-top:1.2rem;padding-bottom:1.2rem}
.passos-in li{display:flex;align-items:center;gap:.8rem;color:var(--ink2)}
.passos-in span{flex:none;width:2.2rem;height:2.2rem;border-radius:50%;background:var(--brown);color:var(--saf);display:grid;place-items:center;font:700 1rem Fraunces,serif}
.passos-in b{color:var(--ink)}
h2{font-size:2rem}
#t-menu::after{content:"";display:block;width:3.5rem;height:3px;background:var(--saf);margin-top:.6rem;border-radius:2px}
.cat{font-size:1.3rem;border-bottom:1px solid var(--linha);position:relative}
.cat::after{content:"";position:absolute;left:0;bottom:-1px;width:3rem;height:3px;background:var(--saf)}
.item{border-radius:1rem;box-shadow:0 1px 2px rgba(28,22,19,.05);transition:box-shadow .2s,transform .2s,border-color .2s}
.item:hover{box-shadow:0 8px 20px rgba(28,22,19,.1);transform:translateY(-1px);border-color:var(--saf)}
.item h4{font-family:Fraunces,Georgia,serif;font-size:1.1rem}
.add{border-radius:2rem}
.faixa{background:var(--brown);padding:2.5rem 0}
.fotos img{border-radius:1.2rem}
.info{padding-top:3rem}
@media(min-width:700px){.passos-in{grid-template-columns:repeat(3,1fr);gap:1.5rem}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* Logótipo */
.topo-in{min-height:4.2rem;padding-top:.4rem;padding-bottom:.4rem}
.marca{display:flex;align-items:center;gap:.6rem;line-height:1.1}
.marca-nome{color:#fff;font-size:1.15rem;font-weight:800}
.logo{height:2.4rem;width:2.4rem;flex:none;object-fit:contain}
.rodape-in{display:flex;align-items:center;gap:1rem}
.logo-rodape{height:2.2rem;width:2.2rem;object-fit:contain}
@media(min-width:900px){.logo{height:2.8rem;width:2.8rem}.marca-nome{font-size:1.3rem}}
/* Correções mobile: largura, botões e hero cortados */
.hero-in,.layout{grid-template-columns:minmax(0,1fr)}
.hero-txt{min-width:0}
.hero-img{transform:none;max-width:100%;min-width:0}
@media(min-width:900px){.hero-img{transform:rotate(1.2deg)}}
.item{min-width:0}
.acao{flex:none}
.add{white-space:nowrap;flex:none}
.sem-preco{white-space:normal;max-width:6.5rem}
.barra{min-width:0;max-width:calc(100vw - 1.2rem)}
.barra span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
