:root{--red:#9B1A1E;--cream:#FFFBF1;--pink:#FAC1B6;--brown:#5A2A1E;--ink:#2b1712;--mut:#8a6f68;--line:#efe3d3;--card:#fff;--r:18px}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;background:var(--cream);color:var(--ink);font:15px/1.4 Mulish,system-ui,sans-serif}
h1,h2,h3,.ot{font-family:Onest,system-ui,sans-serif;font-weight:900;letter-spacing:-.01em;margin:0}
#app{max-width:480px;margin:0 auto;min-height:100vh;position:relative;padding-bottom:110px}
#test-ribbon{white-space:nowrap;position:fixed;top:0;left:50%;transform:translateX(-50%);background:#ffe9a8;color:#6b4e00;font:800 9px Mulish;padding:1px 10px;border-radius:0 0 8px 8px;z-index:100;letter-spacing:.04em}
button{font:inherit;cursor:pointer;border:0}
.top{background:var(--red);color:#fff;padding:32px 18px 70px;border-radius:0 0 28px 28px}
.brandrow{display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:10px;align-items:center}
.brand h1{font-size:26px;text-transform:lowercase}.brand small{display:block;opacity:.85;font-weight:700;font-size:12px}
.pill{background:rgba(255,255,255,.18);color:#fff;border-radius:99px;padding:7px 14px;font-weight:800;font-size:13px}
.rewards{margin:-48px 14px 0;background:var(--card);border-radius:var(--r);padding:16px;box-shadow:0 8px 24px #5a2a1e22;position:relative}
.rewards .row{display:flex;justify-content:space-between;align-items:flex-end}.rewards .pts{font:900 34px Onest;color:var(--red);line-height:1}
.rewards .lbl{color:var(--mut);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.06em}
.bar{height:10px;background:#f3e6e1;border-radius:99px;margin:12px 0 6px;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--red),#d4452f);border-radius:99px}
.rewards .sm{font-size:12.5px;color:var(--mut);font-weight:700}.rewards .cta{background:var(--red);color:#fff;padding:9px 16px;border-radius:99px;font-weight:800}
.sec{padding:22px 16px 0}.sec h2{font-size:22px;color:var(--brown);margin-bottom:12px}
.car{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 16px 4px;margin:0 -16px;scroll-padding-left:16px;scrollbar-width:none}.car::-webkit-scrollbar{display:none}
.rc{flex:0 0 66%;scroll-snap-align:start;background:var(--card);border-radius:var(--r);overflow:hidden;box-shadow:0 2px 10px #5a2a1e14;text-align:left;padding:0}
.rc img,.rc .ph{width:100%;aspect-ratio:1/1;object-fit:cover;display:block}.rc .b{padding:10px 12px 14px}.rc b{font:900 16px Onest;color:var(--brown);display:block}.rc span{color:var(--mut);font-weight:700;font-size:13px}
.ph{background:var(--red);display:flex;align-items:center;justify-content:center}.ph svg{width:46%;opacity:.95}
.chips{position:sticky;top:0;z-index:20;background:var(--cream);padding:10px 12px 8px;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--line);margin-top:18px}
.chips::-webkit-scrollbar{display:none}.chip{white-space:nowrap;padding:8px 14px;border-radius:99px;background:#fff;border:1.5px solid var(--line);font-weight:800;color:var(--brown);font-size:13.5px}
.chip.on{background:var(--red);color:#fff;border-color:var(--red)}
.item{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);background:none;width:100%;text-align:left;align-items:center}
.item .t{flex:1}.item b{font:900 16px Onest;color:var(--brown);display:block}.item p{margin:3px 0 6px;color:var(--mut);font-size:13px}
.item .pr{font-weight:800}.tag{display:inline-block;background:var(--pink);color:var(--brown);font:800 10.5px Mulish;padding:2px 8px;border-radius:99px;margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em}
.item img,.item .ph{width:104px;height:104px;border-radius:16px;object-fit:cover;flex:none}
.plus{position:relative}.plus i{position:absolute;right:-6px;bottom:-6px;width:32px;height:32px;border-radius:50%;background:#fff;color:var(--red);font:900 22px/30px Onest;text-align:center;box-shadow:0 2px 8px #0003;font-style:normal}
.sheetbg{position:fixed;inset:0;background:#2b171299;z-index:50;display:flex;align-items:flex-end;justify-content:center;animation:fi .2s}
.sheet{background:var(--cream);width:100%;max-width:480px;max-height:92vh;overflow:auto;border-radius:24px 24px 0 0;animation:up .25s ease-out;position:relative}
@keyframes up{from{transform:translateY(60px);opacity:.5}to{transform:none;opacity:1}}@keyframes fi{from{opacity:0}to{opacity:1}}
.sheet .hero{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.sheet .hero.ph{aspect-ratio:4/3;height:auto}
.x{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;background:#fff;font-size:20px;color:var(--brown);box-shadow:0 2px 8px #0003}
.sb{padding:16px 18px 20px}.sb h2{font-size:24px;color:var(--brown)}.sb .d{color:var(--mut);margin:4px 0 12px}
.grp{margin:14px 0}.grp h3{font-size:14px;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);margin-bottom:8px;font-family:Mulish;font-weight:800}
.opts{display:flex;flex-wrap:wrap;gap:8px}.opt{padding:10px 14px;border-radius:12px;background:#fff;border:2px solid var(--line);font-weight:800;color:var(--brown)}.opt.on{border-color:var(--red);background:#fdeceb;color:var(--red)}
.foot{position:sticky;bottom:0;background:var(--cream);padding:12px 18px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);display:flex;gap:12px;align-items:center}
.qty{display:flex;align-items:center;gap:6px;background:#fff;border-radius:99px;border:2px solid var(--line)}.qty button{width:38px;height:38px;background:none;font:900 22px Onest;color:var(--red)}.qty span{min-width:20px;text-align:center;font-weight:800}
.go{flex:1;background:var(--red);color:#fff;padding:15px;border-radius:99px;font:900 16px Onest;display:flex;justify-content:space-between;padding-inline:22px}.go:disabled{opacity:.5}
.cartbar{position:fixed;bottom:calc(14px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:calc(min(480px,100%) - 28px);background:var(--red);color:#fff;border-radius:99px;padding:15px 22px;display:flex;justify-content:space-between;font:900 16px Onest;box-shadow:0 10px 28px #9b1a1e66;z-index:30;animation:up .25s}
.cartbar small{font:700 12px Mulish;opacity:.9;display:block;font-weight:700}
.line{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);align-items:center}.line .n{flex:1}.line b{font-family:Onest;font-weight:900;color:var(--brown)}.line small{color:var(--mut);display:block}
.sum{display:flex;justify-content:space-between;padding:5px 0;font-weight:700}.sum.tot{font:900 20px Onest;color:var(--brown);border-top:2px solid var(--line);margin-top:6px;padding-top:12px}.sum .g{color:#2e7d32}
.card{background:#fff;border-radius:16px;padding:14px;margin:12px 0;border:1.5px solid var(--line)}
.sw{display:flex;justify-content:space-between;align-items:center}.tog{width:50px;height:30px;border-radius:99px;background:#d9cdc6;position:relative;transition:.2s}.tog i{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;transition:.2s}.tog.on{background:var(--red)}.tog.on i{left:23px}
input[type=text],input[type=tel]{width:100%;padding:14px;border-radius:12px;border:2px solid var(--line);font:700 17px Mulish;background:#fff;margin:6px 0}input:focus{outline:0;border-color:var(--red)}
input[type=range]{width:100%;accent-color:var(--red)}
.ok{text-align:center;padding:40px 24px}.ok .tick{width:84px;height:84px;border-radius:50%;background:var(--red);color:#fff;font:900 48px/84px Onest;margin:10px auto 16px}
.ok h2{font-size:28px;color:var(--brown)}.earn{background:#fff;border-radius:16px;padding:14px;margin:18px 0;border:1.5px dashed var(--red);font-weight:800;color:var(--red)}
.mut{color:var(--mut);font-size:13px}.err{color:#c62828;font-weight:700;font-size:13px}
