:root{
  --creme:#fbf0e3; --creme2:#fbebdb; --ouro:#ce9030; --ouro-esc:#8f6213; --vinho:#4d1417; --vinho2:#6b1d22;
  --pinho:#1f4a38; --rubi:#a8243a; --linha:#ecd6bd; --branco:#fffaf4; --tinta:#3a1a1c;
  --serif:'Cormorant Garamond',Georgia,serif; --sans:'Figtree',system-ui,sans-serif; --script:'Dancing Script',cursive;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--creme);color:var(--tinta);font:400 1rem/1.6 var(--sans);min-height:100vh}
h1,h2,h3,h4{font-family:var(--serif);line-height:1.1;margin:0;color:var(--vinho)}
a{color:var(--vinho2)}
img{max-width:100%}
:focus-visible{outline:3px solid var(--ouro);outline-offset:2px}

/* topo */
.topo{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:.5rem clamp(1rem,4vw,3rem);
  background:#fbf0e3ee;backdrop-filter:blur(8px);border-bottom:2px solid var(--ouro)}
.marca{display:flex;align-items:center;gap:.7rem;text-decoration:none}
.marca img{height:34px;width:auto}
.marca span{font:600 1.3rem var(--serif);letter-spacing:.3em;color:var(--vinho)}
.badge{display:inline-block;min-width:1.5rem;text-align:center;background:var(--ouro);color:var(--vinho);border-radius:99px;padding:0 .45rem;margin-left:.35rem;font-weight:600}

/* botões */
.btn{display:inline-block;background:var(--vinho);color:var(--creme);font:600 1rem var(--sans);border:2px solid var(--ouro);border-radius:12px;
  padding:.75rem 1.4rem;cursor:pointer;text-decoration:none;text-align:center}
.btn:hover{background:var(--vinho2)}
.btn-claro{background:transparent;color:var(--vinho);border-color:var(--vinho)}
.btn-claro:hover{background:#4d141711}
.btn-peq{padding:.45rem 1rem}
.btn:disabled{opacity:.45;cursor:not-allowed}

/* hero */
.hero{position:relative;overflow:hidden;text-align:center;padding:clamp(2.5rem,6vw,4rem) clamp(1rem,4vw,3rem) 0;border-bottom:6px solid var(--ouro);
  background:radial-gradient(circle at 15% 25%,#ffe3a855,#ffe3a800 220px),radial-gradient(circle at 88% 15%,#fff9,#fff0 240px),linear-gradient(var(--creme2),var(--creme))}
.hero-in{position:relative;display:flex;flex-direction:column;align-items:center;gap:1rem}
.logo-hero{width:clamp(230px,38vw,400px);height:auto}
.titulo-script{font:700 clamp(2.4rem,6vw,4rem)/1.1 var(--script);color:var(--vinho)}
.titulo-script span{color:var(--rubi)}
.hero-sub{margin:0;font-size:1.1rem;color:var(--vinho2)}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;list-style:none;padding:0;margin:0}
.chips li{padding:.3rem .9rem;border:1.5px solid var(--ouro);border-radius:99px;font-size:.92rem;font-weight:500;background:#fffaf4aa}
.hero-bt{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center;margin-top:.4rem}
.hero-fotos{position:relative;display:flex;justify-content:center;align-items:flex-end;gap:clamp(.5rem,2vw,1.2rem);margin-top:2.2rem}
.hero-fotos img{width:clamp(90px,24vw,210px);object-fit:cover;border:3px solid var(--ouro);border-bottom:0;border-radius:999px 999px 0 0;box-shadow:0 -6px 24px #4d141722}
.hero-fotos img:nth-child(1){height:clamp(120px,26vw,230px)}
.hero-fotos img:nth-child(2){height:clamp(150px,34vw,300px)}
.hero-fotos img:nth-child(3){height:clamp(120px,26vw,230px)}

/* enfeites de Natal (ligados por NATAL = True) */
.luzes{position:absolute;top:0;left:0;right:0;height:38px;display:flex;justify-content:space-around;pointer-events:none}
.luzes::before{content:"";position:absolute;top:8px;left:0;right:0;height:2px;background:#8f621355}
.luzes i{width:11px;height:16px;margin-top:9px;border-radius:50% 50% 50% 50%/60% 60% 40% 40%;background:var(--c);box-shadow:0 0 12px var(--c);animation:pisca 2.6s ease-in-out infinite}
.luzes i:nth-child(3n+1){--c:#e0a82e}.luzes i:nth-child(3n+2){--c:#c4263d;animation-delay:.6s}.luzes i:nth-child(3n){--c:#2f7a56;animation-delay:1.2s}
@keyframes pisca{50%{opacity:.45}}
.natal .rodape{border-top:6px solid var(--pinho)}

/* seções */
main{max-width:1060px;margin:0 auto;padding:0 clamp(1rem,4vw,2rem)}
.bloco{padding:3.5rem 0 .5rem}
.bloco h2{font:700 clamp(1.9rem,4.5vw,2.6rem) var(--serif);display:flex;align-items:center;gap:.8rem;margin-bottom:1.4rem}
.n{display:inline-grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:50%;background:var(--vinho);color:var(--creme);font:600 1rem var(--sans)}
.nota,.desc-prod{color:#7a5a50}
.duas{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start}

/* abas do cardápio */
.abas{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.5rem;scroll-snap-type:x proximity}
.abas button{flex:none;scroll-snap-align:start;white-space:nowrap;font:600 1rem var(--sans);padding:.6rem 1.15rem;border-radius:99px;border:2px solid var(--linha);background:var(--branco);color:var(--vinho);cursor:pointer}
.abas button:hover{border-color:var(--ouro)}
.abas button[aria-selected=true]{background:var(--vinho);border-color:var(--vinho);color:var(--creme)}
.painel{display:grid;grid-template-columns:1fr 1.1fr;gap:2rem;margin-top:1.2rem;background:var(--branco);border:1px solid var(--linha);border-radius:22px;padding:1.4rem}
.painel-fotos{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;align-content:start}
.painel-fotos img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:16px;border:2px solid var(--ouro)}
.painel-fotos img:only-child,.painel-fotos img:first-child:nth-last-child(3){grid-column:1/-1;aspect-ratio:4/3}
.sem-foto{grid-column:1/-1;aspect-ratio:4/3;display:grid;place-content:center;justify-items:center;gap:.5rem;border-radius:16px;border:2px dashed var(--ouro);color:var(--ouro-esc);background:var(--creme2)}
.painel-info h3{font-size:2rem}
.preco-txt{font-weight:600;color:var(--ouro-esc);margin:.3rem 0 .8rem}
.painel-info h4{font:600 1.15rem var(--serif);margin:.9rem 0 .4rem}
.lista{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;padding:0;margin:0}
.lista li{padding:.2rem .75rem;border:1px solid var(--linha);border-radius:99px;background:var(--creme);font-size:.95rem}
.nota-aba{margin:1rem 0 0;padding:.7rem .9rem;border-left:4px solid var(--ouro);background:var(--creme);border-radius:0 10px 10px 0;font-size:.95rem}
.acoes{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.2rem}
.no-pedido{margin:.8rem 0 0;font-weight:600;color:var(--pinho);min-height:1.4em}

/* cartão de data e retirada */
.cartao{display:flex;flex-direction:column;gap:.3rem;max-width:520px;text-decoration:none;color:inherit;background:var(--branco);border:2px solid var(--linha);border-radius:16px;padding:1.2rem}
.cartao:hover{border-color:var(--ouro)}
.cartao h3{font-size:1.5rem}
.cartao p{margin:0;color:#7a5a50}
.escolher{font-weight:600;color:var(--vinho2);margin-top:.4rem}
.retirada{display:grid;grid-template-columns:1fr 1.2fr;gap:1.5rem;align-items:center}
.retirada iframe{width:100%;height:280px;border:0;border-radius:16px}
.endereco{margin:.8rem 0 1.2rem}

/* resumo e formulário */
.resumo{background:var(--branco);border:1px solid var(--linha);border-radius:16px;padding:1.2rem}
.resumo ul{list-style:none;margin:0 0 .8rem;padding:0}
.resumo li,.resumo .lin{display:flex;justify-content:space-between;gap:1rem;padding:.35rem 0;border-bottom:1px dashed var(--linha)}
.resumo li.grupo{font-weight:600}
.resumo li.sub{padding-left:1rem;font-size:.92rem;color:#7a5a50}
.resumo .total{font:700 1.7rem var(--serif);color:var(--vinho);border:0;padding-top:.8rem}
.aviso-bloq{margin:.4rem 0;padding:.6rem .8rem;background:#fde9e4;border-left:4px solid var(--rubi);border-radius:0 8px 8px 0;font-size:.92rem}
.aviso-pend{margin:.4rem 0;padding:.6rem .8rem;background:#fff1d6;border-left:4px solid var(--ouro);border-radius:0 8px 8px 0;font-size:.92rem}
.vazio{color:#7a5a50}
.campos{display:grid;gap:1rem}
.campos label{display:grid;gap:.3rem;font-weight:600;font-size:.95rem}
input,select,textarea{font:400 1rem var(--sans);padding:.7rem .8rem;border:2px solid var(--linha);border-radius:10px;background:var(--branco);color:var(--tinta);width:100%}
.politica{background:var(--branco);border:1px solid var(--ouro);border-radius:10px;padding:.8rem 1rem;font-size:.92rem;margin:0}
.campos label.aceite{display:flex;gap:.6rem;align-items:flex-start;font-weight:400}
.aceite input{width:auto;margin-top:.35rem}
.erro{color:#b3261e;font-weight:600;min-height:1.4em;margin:0}
.ok{margin-top:1.5rem;padding:1.5rem;border-radius:16px;background:var(--vinho);color:var(--creme)}
.ok h3{font-size:2rem;color:var(--creme);margin-bottom:.5rem}
.ok textarea{margin:.8rem 0;font-size:.85rem}
.ok .btn{margin:.3rem .5rem .3rem 0}
.ok .btn-claro{color:var(--creme);border-color:var(--creme)}
.nota-ok{opacity:.9;font-size:.92rem}

/* páginas internas */
.pagina{max-width:760px;margin:0 auto;padding:2rem clamp(1rem,4vw,2rem) 9rem}
.voltar{display:inline-block;margin-bottom:1rem;font-weight:600}
.titulo-prod{font:700 clamp(2.4rem,7vw,3.6rem)/1.05 var(--serif)}
.desc-prod{margin:.5rem 0 .3rem}
.contador{display:inline-block;margin:.8rem 0;padding:.3rem 1rem;border-radius:99px;background:var(--creme2);border:1.5px solid var(--ouro);font-size:1.05rem}
.contador.cheio{background:var(--pinho);border-color:var(--pinho);color:#fff}
.sabores{margin-top:.6rem}
.sabor{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1rem;background:var(--branco);border:1px solid var(--linha);border-radius:12px;margin-bottom:.6rem;font-weight:600}
.sabor small{display:block;font-weight:400;color:var(--ouro-esc)}
.qtd{display:flex;align-items:center;gap:.7rem}
.qtd button{width:2.4rem;height:2.4rem;border-radius:50%;border:2px solid var(--vinho);background:transparent;font-size:1.2rem;cursor:pointer;color:var(--vinho)}
.qtd button:hover{background:var(--vinho);color:var(--creme)}
.qtd output{min-width:2ch;text-align:center;font-weight:600}
.consulta{margin:1rem 0;padding:1rem;border-radius:12px;background:#fff1d6;border:1px solid var(--ouro)}
.consulta p{margin:0 0 .7rem}
fieldset{border:0;padding:0;margin:1.2rem 0 0}
legend{font:600 1.3rem var(--serif);color:var(--vinho);margin-bottom:.4rem}
.chip{position:relative;display:inline-block;margin:0 .4rem .5rem 0}
.chip input{position:absolute;opacity:0;width:1px;height:1px}
.chip span{display:inline-block;padding:.55rem 1.1rem;border:2px solid var(--linha);border-radius:99px;background:var(--branco);cursor:pointer;font-weight:500}
.chip input:checked+span{background:var(--vinho);border-color:var(--vinho);color:var(--creme)}
.chip input:focus-visible+span{outline:3px solid var(--ouro);outline-offset:2px}
.check{display:flex;gap:.7rem;align-items:flex-start;margin:1.2rem 0;font-weight:500}
.check input{width:auto;margin-top:.35rem}
.check small{display:block;font-weight:400;color:#7a5a50}
.linha-add{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap}
.sub-t{font-size:1.6rem;margin:2rem 0 .6rem}
.pacotes{display:grid;gap:.7rem;margin-top:1rem}
.pacote{display:block;position:relative}
.pacote input{position:absolute;opacity:0}
.pacote>span{display:grid;gap:.1rem;padding:1rem 1.2rem;border:2px solid var(--linha);border-radius:14px;background:var(--branco);cursor:pointer}
.pacote em{font:700 1.5rem var(--serif);font-style:normal;color:var(--vinho)}
.pacote small{color:#7a5a50}
.pacote input:checked+span{border-color:var(--vinho);box-shadow:inset 0 0 0 2px var(--vinho)}
.pacote input:focus-visible+span{outline:3px solid var(--ouro);outline-offset:2px}
.barra-add{position:fixed;left:0;right:0;bottom:0;z-index:15;display:flex;justify-content:space-between;align-items:center;gap:1rem;
  padding:.8rem clamp(1rem,4vw,3rem);background:#fbf0e3f5;border-top:2px solid var(--ouro)}
.barra-add small{display:block;color:#7a5a50;font-size:.8rem}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cal .sem{font-size:.8rem;text-align:center;color:#7a5a50}
.dia{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:10px;border:2px solid var(--linha);background:var(--branco);font:700 1.15rem var(--serif);cursor:pointer;color:var(--vinho);line-height:1}
.dia:hover:not(:disabled){border-color:var(--ouro)}
.dia[aria-pressed=true]{background:var(--vinho);border-color:var(--vinho);color:var(--creme)}
.dia:disabled{opacity:.4;cursor:not-allowed;text-decoration:line-through}
.pontos{font-size:.8rem;color:var(--ouro);letter-spacing:-1px;height:.6rem}
.dia[aria-pressed=true] .pontos{color:var(--ouro)}
.horarios{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.6rem;margin-top:1rem}
.hora{padding:.6rem;border-radius:10px;border:2px solid var(--linha);background:var(--branco);font:600 1rem var(--sans);cursor:pointer;color:var(--vinho)}
.hora[aria-pressed=true]{background:var(--pinho);border-color:var(--pinho);color:#fff}

/* rodapé, whatsapp, toast */
.rodape{margin-top:4rem;padding:2.2rem 1rem 6rem;text-align:center;background:var(--vinho);color:var(--creme);display:grid;justify-items:center;gap:.5rem}
.rodape p{margin:0;letter-spacing:.08em;font-size:.9rem}
.wa-flutuante{position:fixed;right:1rem;bottom:1rem;z-index:25;display:flex;align-items:center;gap:.5rem;padding:.7rem 1.1rem;border-radius:99px;background:#25a244;color:#fff;font-weight:600;text-decoration:none;box-shadow:0 8px 22px #0003}
.wa-flutuante:hover{background:#1e8a39}
body:has(.barra-add) .wa-flutuante{bottom:5.6rem}
.toast{position:fixed;left:50%;bottom:6.5rem;transform:translate(-50%,20px);opacity:0;visibility:hidden;background:var(--vinho);color:var(--creme);padding:.8rem 1.2rem;border-radius:10px;transition:transform .25s,opacity .25s,visibility .25s;z-index:30;max-width:90vw}
.toast.on{transform:translate(-50%,0);opacity:1;visibility:visible}
.painel-info{align-self:start}

@media (max-width:820px){
  .duas,.painel,.retirada{grid-template-columns:1fr}
  .wa-flutuante span{display:none}.wa-flutuante{padding:.8rem}
  body:has(.barra-add) .wa-flutuante{display:none}
  .marca span{font-size:1.05rem;letter-spacing:.22em}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.toast{transition:none}.luzes i{animation:none}}

.ok .btn{background:var(--ouro);color:var(--vinho);border-color:var(--ouro)}
.resumo .sinal{color:var(--ouro-esc);font-weight:600;border:0}

.topo-info{margin:1.2rem 0 0;padding:.9rem 1rem;border:1.5px dashed var(--ouro);border-radius:12px;background:var(--branco)}
.topo-info p{margin:.3rem 0 0;font-size:.95rem}
.topo-regra{color:var(--ouro-esc);font-weight:600}

.rem{margin-left:.5rem;padding:0;border:0;background:none;color:var(--rubi);font:600 .85rem var(--sans);text-decoration:underline;cursor:pointer}
.rem:hover{color:var(--vinho)}
