@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@500;600;700;800&family=Nunito+Sans:opsz,wght@6..12,400;6..12,600;6..12,700;6..12,800&display=swap');
:root{
  --verde:#15803D; --verde-esc:#0F5E2C; --agua:#059669; --sol:#D97706; --sol-esc:#B45309;
  --fundo:#F3F8F4; --card:#FFFFFF; --texto:#0F172A; --suave:#475569; --borda:#DCE9E0; --erro:#B91C1C; --ok:#15803D;
  --raio:16px; --sombra:0 6px 22px rgba(15,94,44,.10);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--fundo);color:var(--texto);font:16px/1.5 'Nunito Sans',system-ui,sans-serif}
h1,h2,h3{font-family:Outfit,system-ui,sans-serif;line-height:1.15;margin:0}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--verde-esc)}
:focus-visible{outline:3px solid var(--sol);outline-offset:2px}
.demo{background:#FEF3C7;color:#78350F;text-align:center;font-size:.85rem;font-weight:800;padding:6px 12px}
.wrap{max-width:760px;margin:0 auto;padding:0 16px}
.hero{background:linear-gradient(160deg,var(--verde-esc),var(--agua));color:#fff;padding:28px 0 64px}
.hero h1{font-size:clamp(1.7rem,6vw,2.4rem)}
.hero p{margin:8px 0 0;opacity:.92}
.hero .loc{display:flex;gap:6px;align-items:center;font-size:.9rem;margin-top:12px;opacity:.9}
.passos{margin-top:-40px}
.card{background:var(--card);border:1px solid var(--borda);border-radius:var(--raio);box-shadow:var(--sombra);padding:18px;margin-bottom:16px}
.card h2{font-size:1.25rem;margin-bottom:12px}
.titulo-passo{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.num{width:30px;height:30px;border-radius:50%;background:var(--verde);color:#fff;display:grid;place-items:center;font:700 .95rem Outfit}
.grade-prod{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.prod{border:2px solid var(--borda);background:#fff;border-radius:14px;padding:14px;text-align:left;min-height:96px;transition:border-color .15s,transform .15s}
.prod:hover{border-color:var(--agua)}
.prod[aria-pressed=true]{border-color:var(--verde);background:#ECFDF3}
.prod b{display:block;font-family:Outfit;font-size:1.02rem}
.prod small{color:var(--suave)}
.grupo{font:700 .8rem 'Nunito Sans';letter-spacing:.06em;color:var(--suave);text-transform:uppercase;margin:14px 0 8px}
.mes{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.mes button{width:44px;height:44px;border-radius:12px;border:1px solid var(--borda);background:#fff}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cal .dow{font-size:.75rem;text-align:center;color:var(--suave);font-weight:800}
.dia{min-width:0;overflow:hidden;min-height:58px;border-radius:12px;border:1px solid var(--borda);background:#fff;padding:4px 2px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}
.dia b{font:700 1rem Outfit}
.dia small{font-size:.68rem;line-height:1.15;color:var(--suave);white-space:nowrap}
.dia.fechado{background:#F1F5F2;color:#94A3B8;border-style:dashed}
.dia.poucas small{color:var(--sol-esc);font-weight:800}
.dia.esgotado{background:#FEF2F2;color:#B91C1C}
.dia.feriado{box-shadow:inset 0 -3px 0 var(--sol)}
.dia[aria-pressed=true]{background:var(--verde);color:#fff;border-color:var(--verde)}
.dia[aria-pressed=true] small{color:#fff}
.dia:disabled{cursor:not-allowed}
.legenda{display:flex;flex-wrap:wrap;gap:12px;font-size:.8rem;color:var(--suave);margin-top:10px}
.linha{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--borda)}
.linha:last-child{border-bottom:0}
.stepper{display:flex;align-items:center;gap:6px}
.stepper button{width:44px;height:44px;border-radius:12px;border:1px solid var(--borda);background:#fff;font-size:1.3rem}
.stepper output{min-width:28px;text-align:center;font-weight:800}
label{display:block;font-weight:700;font-size:.92rem;margin:12px 0 4px}
input,select{width:100%;min-height:48px;border:1px solid #B8CFC0;border-radius:12px;padding:10px 12px;background:#fff}
.ajuda{font-size:.82rem;color:var(--suave);margin:4px 0 0}
.erro{color:var(--erro);font-weight:700;min-height:1.4em;margin:8px 0 0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:52px;border:0;border-radius:14px;background:var(--sol);color:#1C1002;font:800 1.05rem Outfit;padding:12px 18px;transition:background .15s,transform .1s}
.btn:hover{background:#F59E0B}
.btn:active{transform:scale(.98)}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.btn.sec{background:#fff;border:1px solid var(--borda);color:var(--texto)}
.resumo .total{font:800 1.6rem Outfit;color:var(--verde-esc)}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{min-height:44px;padding:8px 14px;border-radius:999px;border:1px solid var(--borda);background:#fff;font-weight:700}
.chip[aria-pressed=true]{background:var(--verde);color:#fff;border-color:var(--verde)}
.qr{background:#fff;border:1px solid var(--borda);border-radius:14px;padding:14px;display:grid;place-items:center;margin:12px 0}
.qr svg{width:220px;height:220px}
.voucher{text-align:center}
.voucher .cod{font:800 2rem Outfit;letter-spacing:.06em;color:var(--verde-esc)}
.ok{width:64px;height:64px;border-radius:50%;background:var(--ok);display:grid;place-items:center;margin:0 auto 8px}
.oculto{display:none!important}
footer{color:var(--suave);font-size:.85rem;text-align:center;padding:24px 16px 40px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
