:root { --cor: #e63946; }
body { background: #f6f7f9; }
.btn-cor { background: var(--cor); border-color: var(--cor); color: #fff; }
.btn-cor:hover, .btn-cor:focus { filter: brightness(.92); background: var(--cor); border-color: var(--cor); color: #fff; }
.btn-outline-cor { color: var(--cor); border-color: var(--cor); background: transparent; }
.btn-outline-cor:hover { background: var(--cor); color: #fff; }
.text-cor { color: var(--cor) !important; }
.bg-cor { background: var(--cor) !important; color: #fff; }

/* Cardápio público */
.capa { background: var(--cor); color: #fff; padding: 1.5rem 0 3.5rem; }
.logo-empresa { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; background: #fff; border: 3px solid rgba(255,255,255,.6); }
.logo-placeholder { width: 72px; height: 72px; border-radius: 50%; background: rgba(255,255,255,.25); display: flex; align-items: center; justify-content: center; font-size: 2rem; }
.cardapio-corpo { margin-top: -2rem; }
.nav-categorias { position: sticky; top: 0; z-index: 20; background: #f6f7f9; padding: .6rem 0; overflow-x: auto; white-space: nowrap; }
.nav-categorias .btn { border-radius: 2rem; }
.produto-card { cursor: pointer; border: 0; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.produto-img { width: 96px; height: 96px; object-fit: cover; border-radius: .5rem; flex-shrink: 0; }
.produto-img-vazio { width: 96px; height: 96px; border-radius: .5rem; background: #eceef1; color: #aab; display: flex; align-items: center; justify-content: center; font-size: 2rem; flex-shrink: 0; }
.barra-carrinho { position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; padding: .75rem; }
.barra-carrinho .btn { box-shadow: 0 4px 14px rgba(0,0,0,.25); }
.espaco-barra { height: 90px; }

/* PDV */
.pdv-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .6rem; }
.pdv-prod { background: #fff; border: 1px solid #e3e5e8; border-radius: .5rem; padding: .5rem; text-align: left; cursor: pointer; }
.pdv-prod:hover { border-color: var(--cor); }
.pdv-prod img { width: 100%; height: 80px; object-fit: cover; border-radius: .35rem; margin-bottom: .35rem; }
.pdv-lista { max-height: calc(100vh - 150px); overflow-y: auto; }
.pdv-carrinho { position: sticky; top: 70px; }
.pdv-carrinho-itens { max-height: 38vh; overflow-y: auto; }

/* Impressão de comanda (80mm) */
.comanda { width: 300px; margin: 0 auto; font-family: "Courier New", monospace; font-size: 13px; color: #000; background: #fff; padding: 10px; }
.comanda hr { border-top: 1px dashed #000; opacity: 1; margin: 6px 0; }
@media print {
    body { background: #fff; }
    .no-print { display: none !important; }
    .comanda { width: 100%; padding: 0; }
}

/* Janela "monte seu item": passos numerados automaticamente */
#im-corpo { counter-reset: passo; }
.im-secao { counter-increment: passo; }
.im-titulo::before { content: counter(passo) ". "; color: var(--cor); }
.badge-extra { font-weight: 500; font-size: .68rem; }

/* Página inicial */
.lp { background: #fffaf6; }
.lp-nav { background: rgba(255,250,246,.92); backdrop-filter: blur(6px); border-bottom: 1px solid #f0e6dc; }
.lp-hero { background: radial-gradient(1200px 500px at 85% -10%, #ffe3d3 0, transparent 60%), radial-gradient(800px 400px at -10% 110%, #ffeccb 0, transparent 55%); }
.lp-link { display: inline-block; background: #fff; border: 1px dashed #e0c9b8; border-radius: .6rem; padding: .45rem .8rem; font-size: .92rem; color: #5b4a3f; word-break: break-all; }
.lp-mock { position: relative; max-width: 420px; margin: 0 auto; padding-bottom: 5.5rem; }
.lp-phone { background: #fff; border-radius: 1.4rem; box-shadow: 0 18px 50px rgba(120,60,20,.18); overflow: hidden; border: 6px solid #2b2b2b; }
.lp-phone-top { display: flex; align-items: center; gap: .5rem; background: var(--cor); color: #fff; padding: .8rem 1rem; font-weight: 600; }
.lp-item { display: flex; justify-content: space-between; gap: .6rem; padding: .8rem 1rem; border-bottom: 1px solid #f1f1f1; }
.lp-item b { display: block; }
.lp-item small { display: block; color: #777; }
.lp-item em { font-style: normal; font-size: .68rem; background: #f3f3f3; border-radius: .4rem; padding: .05rem .4rem; margin-right: .2rem; color: #555; }
.lp-foto { width: 56px; height: 56px; border-radius: .5rem; background: #eceef1; color: #b0b4bb; display: flex; align-items: center; justify-content: center; font-size: 1.5rem; flex-shrink: 0; }
.lp-barra { display: flex; justify-content: space-between; background: var(--cor); color: #fff; margin: .8rem; padding: .7rem 1rem; border-radius: .6rem; }
.lp-zap { position: absolute; right: -8px; bottom: 0; width: 82%; background: #e7ddd3; border-radius: 1rem; box-shadow: 0 12px 30px rgba(0,0,0,.18); overflow: hidden; }
.lp-zap-head { background: #1f8f5f; color: #fff; padding: .45rem .8rem; font-size: .85rem; font-weight: 600; }
.lp-bolha { background: #dcf8c6; margin: .6rem; padding: .55rem .7rem; border-radius: .6rem; font-size: .78rem; line-height: 1.35; }
.lp-passo { position: relative; background: #fffaf6; border: 1px solid #f0e6dc; border-radius: 1rem; padding: 1.4rem; }
.lp-num { position: absolute; top: -14px; left: 16px; width: 30px; height: 30px; border-radius: 50%; background: var(--cor); color: #fff; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.lp-card { background: #fffaf6; border: 1px solid #f0e6dc; border-radius: .9rem; padding: 1.1rem; }
.lp-lista { padding-left: 1.1rem; margin: 0; color: #555; }
.lp-lista li { margin-bottom: .55rem; }
.lp-conta { background: #fff; border: 1px solid #f0e6dc; border-radius: 1rem; padding: 1.4rem; max-width: 420px; margin: 0 auto; box-shadow: 0 10px 30px rgba(120,60,20,.08); }
.lp-cta { background: linear-gradient(135deg, var(--cor), #b3262f); color: #fff; }
