[hidden]{display:none!important}
:root{
  --paper:#FFFFFF; --ink:#1C1A19; --muted:#6B6460; --line:#E7E2DD;
  --beet:#9B1C31; --beet-dark:#7A1426; --dill:#3F6E35; --soft:#F6F3F1;
  --stitch:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='14' viewBox='0 0 28 14'%3E%3Cg stroke-width='2.2' stroke-linecap='square'%3E%3Cpath d='M3 3l8 8M11 3l-8 8' stroke='%239B1C31'/%3E%3Cpath d='M17 3l8 8M25 3l-8 8' stroke='%231C1A19'/%3E%3C/g%3E%3C/svg%3E");
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.55 "Alegreya Sans",system-ui,-apple-system,"Segoe UI",sans-serif}
a{color:var(--beet)}
:focus-visible{outline:3px solid var(--beet);outline-offset:2px}
.wrap{max-width:760px;margin:0 auto;padding:0 20px}
.stitch{height:14px;background:var(--stitch) repeat-x left center}

/* шапка */
.top{display:flex;align-items:center;justify-content:space-between;padding-top:14px;padding-bottom:14px}
.brand{font:700 1.15rem/1.2 "Alegreya",Georgia,serif;color:var(--ink);text-decoration:none}
.langs{display:flex;gap:4px}
.langs a{padding:4px 10px;border-radius:999px;text-decoration:none;color:var(--muted);font-size:.95rem}
.langs a.on{background:var(--ink);color:#fff}

.hero{padding:28px 0 8px}
.hero h1{font:800 clamp(2.2rem,7vw,3.6rem)/1.02 "Alegreya",Georgia,serif;margin:0 0 12px;letter-spacing:-.01em}
.hero p{margin:0;color:var(--muted);max-width:34em}

/* меню */
.menu{list-style:none;margin:24px 0 0;padding:0}
.dish{display:grid;grid-template-columns:104px 1fr;gap:16px;padding:20px 0;border-top:1px solid var(--line)}
.dish:last-child{border-bottom:1px solid var(--line)}
.dish img,.dish .ph{width:104px;height:104px;object-fit:cover;border-radius:6px;background:var(--soft);display:block}
.dish .ph{background:var(--soft) var(--stitch) center/56px 28px no-repeat;opacity:.55}
.dish h2{font:700 1.3rem/1.2 "Alegreya",Georgia,serif;margin:0 0 4px}
.dish p{margin:0 0 10px;color:var(--muted);font-size:.98rem}
.meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}
.price{font-weight:700;font-size:1.1rem}
.unit{color:var(--muted);font-weight:400;font-size:.95rem}
.left{color:var(--dill);font-weight:700;font-size:.95rem}
.dish.out{opacity:.5}
.dish.out .left{color:var(--muted)}
.stepper{margin-left:auto;display:flex;align-items:center;border:1.5px solid var(--ink);border-radius:999px;overflow:hidden}
.stepper button{all:unset;cursor:pointer;width:40px;height:38px;text-align:center;font-size:1.3rem;line-height:38px}
.stepper button:disabled{opacity:.3;cursor:default}
.stepper button:focus-visible{outline:3px solid var(--beet);outline-offset:-3px}
.stepper output{min-width:24px;text-align:center;font-weight:700}
.add{all:unset;cursor:pointer;margin-left:auto;padding:8px 18px;border:1.5px solid var(--ink);border-radius:999px;font-weight:700}
.add:focus-visible{outline:3px solid var(--beet)}
.empty{padding:40px 0;color:var(--muted)}

/* оформление */
.checkout{margin:40px 0 120px;padding-top:8px}
.checkout h2{font:800 1.9rem/1.1 "Alegreya",Georgia,serif;margin:18px 0 6px}
.summary{margin:12px 0 20px;padding:0;list-style:none}
.summary li{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px dashed var(--line)}
.summary .tot{font-weight:800;border:0;padding-top:10px;font-size:1.1rem}
.field{margin:0 0 16px}
.field label,.legend{display:block;font-weight:700;margin-bottom:6px}
.field input,.field textarea{width:100%;font:inherit;padding:11px 12px;border:1.5px solid #CFC8C2;border-radius:8px;background:#fff;color:var(--ink)}
.field input:focus,.field textarea:focus{border-color:var(--ink);outline:none}
.seg{display:flex;gap:8px;flex-wrap:wrap}
.seg label{display:flex;align-items:center;gap:8px;padding:10px 16px;border:1.5px solid #CFC8C2;border-radius:8px;cursor:pointer;font-weight:400}
.seg input{accent-color:var(--beet)}
.seg label:has(input:checked){border-color:var(--ink);font-weight:700}
.hint{color:var(--muted);font-size:.93rem;margin:6px 0 0}
.btn{display:inline-block;border:0;cursor:pointer;background:var(--beet);color:#fff;font:700 1.05rem/1 "Alegreya Sans",sans-serif;padding:15px 26px;border-radius:999px;text-decoration:none}
.btn:hover{background:var(--beet-dark)}
.btn.wide{width:100%}
.errors{background:#FBEAEC;border-left:4px solid var(--beet);padding:12px 16px;margin:0 0 18px;border-radius:4px}
.errors p{margin:4px 0}

/* нижняя панель корзины */
.bar{position:fixed;left:0;right:0;bottom:0;background:var(--ink);color:#fff;transform:translateY(110%);transition:transform .25s ease}
.bar.show{transform:none}
.bar .wrap{display:flex;align-items:center;gap:14px;padding-top:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}
.bar .sum{font-weight:700}
.bar .btn{margin-left:auto;padding:12px 20px}
@media (prefers-reduced-motion:reduce){.bar{transition:none}}

.done{padding:48px 0 80px}
.done h1{font:800 clamp(2rem,6vw,3rem)/1.05 "Alegreya",Georgia,serif;margin:0 0 12px}
footer{color:var(--muted);font-size:.9rem;padding:24px 0 100px}

@media (min-width:640px){
  .dish{grid-template-columns:140px 1fr;gap:22px}
  .dish img,.dish .ph{width:140px;height:140px}
}

/* ---------- админка ---------- */
.admin body,body.admin{background:var(--soft)}
.admin .top{border-bottom:1px solid var(--line)}
.tabs{display:flex;gap:6px;margin:16px 0}
.tabs{flex-wrap:wrap}
.tabs a{white-space:nowrap;padding:7px 13px;border-radius:999px;text-decoration:none;color:var(--ink);background:#fff;border:1px solid var(--line);font-weight:700}
.tabs a.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.badge{display:inline-block;min-width:22px;padding:0 6px;border-radius:999px;background:var(--beet);color:#fff;font-size:.85rem;text-align:center;margin-left:4px}
.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px;margin:0 0 12px}
.arow{display:grid;grid-template-columns:64px 1fr;gap:12px;align-items:start}
.arow img,.arow .ph{width:64px;height:64px;border-radius:6px;object-fit:cover;background:var(--soft)}
.arow h3{margin:0;font:700 1.1rem/1.25 "Alegreya",Georgia,serif}
.arow .sub{color:var(--muted);font-size:.92rem}
.qtyrow{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}
.qtyrow{margin-bottom:0}
.qlabel{font-weight:700;width:100%}
@media (min-width:480px){.qlabel{width:auto;margin-right:4px}}
.qtyrow input[type=number]{width:72px;font:inherit;font-weight:700;padding:7px 8px;border:1.5px solid #CFC8C2;border-radius:8px;text-align:center}
.sbtn{font:inherit;font-weight:700;border:1.5px solid var(--ink);background:#fff;color:var(--ink);border-radius:8px;padding:6px 12px;cursor:pointer;text-decoration:none;display:inline-block}
.sbtn.red{border-color:var(--beet);color:var(--beet)}
.sbtn.fill{background:var(--ink);color:#fff}
.tools{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.hidden-tag{color:var(--beet);font-weight:700;font-size:.85rem}
.flash{background:#E9F2E6;border-left:4px solid var(--dill);padding:10px 14px;border-radius:4px;margin:12px 0}
.grid2{display:grid;grid-template-columns:1fr;gap:0 16px}
@media (min-width:640px){.grid2{grid-template-columns:1fr 1fr}}
.status{font-weight:700}
.olines{margin:8px 0;padding-left:18px}

/* категории и комбо */
.cats{position:sticky;top:0;z-index:5;display:flex;gap:6px;overflow-x:auto;padding:10px 0;margin:16px -20px 0;padding-left:20px;padding-right:20px;background:var(--paper);scrollbar-width:none}
.cats::-webkit-scrollbar{display:none}
.cats a{flex:none;padding:6px 14px;border:1.5px solid var(--line);border-radius:999px;color:var(--ink);text-decoration:none;font-weight:700;font-size:.95rem}
.cats a:hover{border-color:var(--ink)}
.cat{scroll-margin-top:64px;padding-top:28px}
.cat-title{font:800 1.8rem/1.1 "Alegreya",Georgia,serif;margin:0}
.cat-sub{color:var(--muted);margin:4px 0 0;font-size:.95rem}
.cat .menu{margin-top:12px}
.dish h3{font:700 1.25rem/1.2 "Alegreya",Georgia,serif;margin:0 0 4px}
.controls{margin-top:10px}
.combo{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.combo select{font:inherit;padding:8px 10px;border:1.5px solid #CFC8C2;border-radius:8px;background:#fff;color:var(--ink);max-width:100%;flex:1 1 180px}
.combo select.need{border-color:var(--beet);box-shadow:0 0 0 3px #9B1C3133}
.combo .add{margin-left:0}
.add:disabled{opacity:.35;cursor:default}
.incart{font-weight:700;color:var(--dill)}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.summary li{align-items:center}
.summary .sname{flex:1}
.summary .sprice{min-width:64px;text-align:right;font-weight:700}
.stepper.small button{width:32px;height:30px;line-height:30px;font-size:1.1rem}
.stepper.small{border-width:1px}
.dish > div{min-width:0}
.dish h3,.dish p{overflow-wrap:anywhere}
.combo select{flex:1 1 100%;width:100%}
body{overflow-x:hidden}
.wide-select{width:100%;font:inherit;padding:10px;border:1.5px solid #CFC8C2;border-radius:8px;background:#fff;color:var(--ink)}
.check{display:flex;gap:8px;align-items:center;font-weight:400!important;margin-top:8px}
.check input{width:auto!important;accent-color:var(--beet)}

/* гарнир + мясо: блоки по гарнирам */
.sblock{border:1px solid var(--line);border-radius:12px;padding:14px;margin:14px 0}
.shead{display:flex;gap:14px;align-items:center}
.shead img{width:72px;height:72px;border-radius:8px;flex:none;object-fit:cover}
.shead h3{font:700 1.25rem/1.2 "Alegreya",Georgia,serif;margin:0}
.shead p{margin:2px 0;color:var(--muted);font-size:.95rem}
.opts{list-style:none;margin:10px 0 0;padding:0}
.opts li{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px dashed var(--line)}
.opts .oname{flex:1;min-width:0;overflow-wrap:anywhere}
.opts .oname small{font-size:.85rem;margin-left:4px}
.oprice{font-weight:700;white-space:nowrap}
.opts .add{padding:6px 14px}
.opts .stepper button{width:34px;height:32px;line-height:32px;font-size:1.15rem}
.nomeat .oname{font-style:italic}
.ctl{display:inline-flex}
.controls{margin-top:10px}
.controls .ctl{margin-left:0}
.add{margin-left:0}
.add.pre{border-color:#B7791F;color:#8A5A12}
.pre-tag{color:#8A5A12;font-weight:700;font-size:.95rem}
.pre-note{background:#FFF6E5;border-left:4px solid #D69E2E;padding:8px 12px;border-radius:4px;color:#5C4210;font-size:.95rem;margin:12px 0 0}
.dish.preo img{filter:saturate(.6)}
.left.muted{color:var(--muted)}
.custom{background:#FFFBF2;border-color:#F0DDB4}
.custom-row{display:grid;grid-template-columns:1fr;gap:10px;margin-top:10px}
.custom-row label span{display:block;font-weight:700;margin-bottom:4px}
.custom-row select{width:100%;font:inherit;padding:9px 10px;border:1.5px solid #CFC8C2;border-radius:8px;background:#fff;color:var(--ink)}
.custom-go{display:flex;align-items:center;gap:12px;justify-content:flex-end}
@media (min-width:640px){.custom-row{grid-template-columns:1fr 1fr auto;align-items:end}}

/* раскрывающиеся блоки гарниров */
details.sblock>summary{list-style:none;cursor:pointer}
details.sblock>summary::-webkit-details-marker{display:none}
details.sblock .shead>div{flex:1;min-width:0}
.chev{flex:none;width:12px;height:12px;border-right:2.5px solid var(--ink);border-bottom:2.5px solid var(--ink);transform:rotate(45deg);margin:0 6px 6px}
details[open] .chev{transform:rotate(-135deg);margin-bottom:0;margin-top:6px}
.opts li.is-pre .oname small{display:block;margin:2px 0 0;font-size:.82rem}
.opts li.is-na{opacity:.55}
.btn-alt{background:var(--ink)}
.btn-alt:hover{background:#000}
.opts .can{display:block;font-size:.82rem;color:var(--dill);font-weight:700;margin-top:2px}
.opts .can.none{color:var(--muted);font-weight:400}
