:root{color-scheme:light;--bg:#f5f8ef;--card:#ffffff;--ink:#12241a;--mute:#5a6b61;--line:#e1e8d8;--sage:#16a34a;--sage-d:#0f7a37;--sage-l:#e3f6e8;--acc:#ff8a3d;--vio:#7c5cff;--warn:#fff1de;--warn-i:#9a5200;--err:#d93f2f;--sh:0 14px 36px rgba(22,90,50,.14);--grad:linear-gradient(135deg,#15a34a,#3fbf4f 60%,#7bd23a);--grad-t:linear-gradient(90deg,#0f7a37,#16a34a 35%,#ff8a3d 70%,#0f7a37);--btn-ink:#fff;--bgo:.75;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){color-scheme:dark;--bg:#0a1410;--card:#13211a;--ink:#eaf6ee;--mute:#9bb3a5;--line:#23372c;--sage:#34d36b;--sage-d:#6aeb95;--sage-l:#173626;--acc:#ff9b57;--vio:#a08bff;--warn:#3a2a14;--warn-i:#ffc66b;--err:#ff7b6b;--sh:0 16px 44px rgba(0,0,0,.5);--grad:linear-gradient(135deg,#2fd46a,#7be04a 60%,#c4f23d);--grad-t:linear-gradient(90deg,#6aeb95,#c4f23d 35%,#ff9b57 70%,#6aeb95);--btn-ink:#06210f;--bgo:.32;}}
:root[data-theme="dark"]{color-scheme:dark;--bg:#0a1410;--card:#13211a;--ink:#eaf6ee;--mute:#9bb3a5;--line:#23372c;--sage:#34d36b;--sage-d:#6aeb95;--sage-l:#173626;--acc:#ff9b57;--vio:#a08bff;--warn:#3a2a14;--warn-i:#ffc66b;--err:#ff7b6b;--sh:0 16px 44px rgba(0,0,0,.5);--grad:linear-gradient(135deg,#2fd46a,#7be04a 60%,#c4f23d);--grad-t:linear-gradient(90deg,#6aeb95,#c4f23d 35%,#ff9b57 70%,#6aeb95);--btn-ink:#06210f;--bgo:.32;}

*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(env(safe-area-inset-top,0px) + 76px)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Plus Jakarta Sans',Inter,system-ui,sans-serif;line-height:1.55;transition:background .4s,color .4s}
a{color:inherit;text-decoration:none}.wrap{max-width:1100px;margin:0 auto;padding:0 20px}
.bgfx{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;opacity:var(--bgo)}
.bgfx i{position:absolute;border-radius:50%;filter:blur(80px);animation:drift 18s ease-in-out infinite}
.bgfx i:nth-child(1){width:46vmax;height:46vmax;background:#a3e635;left:-14vmax;top:-12vmax}
.bgfx i:nth-child(2){width:38vmax;height:38vmax;background:#ff9b57;right:-12vmax;top:22vh;animation-delay:-6s}
.bgfx i:nth-child(3){width:40vmax;height:40vmax;background:#7c5cff;left:22vw;bottom:-20vmax;animation-delay:-11s;opacity:.7}
@keyframes drift{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(4vmax,3vmax) scale(1.12)}}
header{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 78%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0px)}
.nav{display:flex;align-items:center;justify-content:space-between;height:66px;gap:12px}
.logo{font-weight:800;font-size:1.35rem;color:var(--sage-d);letter-spacing:-.02em}.logo span{background:var(--grad-t);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:sh 6s linear infinite}
nav.links{display:flex;gap:24px;font-size:.9rem;font-weight:600;color:var(--mute)}
nav.links a{position:relative;padding:4px 0;transition:color .2s}nav.links a:after{content:"";position:absolute;left:0;bottom:-2px;height:3px;width:0;border-radius:3px;background:var(--grad);transition:width .3s}
nav.links a:hover{color:var(--ink)}nav.links a:hover:after{width:100%}
.btn{position:relative;overflow:hidden;border:0;cursor:pointer;font:inherit;font-weight:700;border-radius:14px;padding:12px 20px;background:var(--grad);color:var(--btn-ink);transition:transform .2s,box-shadow .2s;box-shadow:0 6px 18px rgba(22,163,74,.28)}
.btn:after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.5),transparent);transform:skewX(-20deg);animation:shine 4.5s infinite}
@keyframes shine{0%,55%{left:-60%}100%{left:130%}}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(22,163,74,.38)}.btn:active{transform:scale(.97)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line);box-shadow:none}.btn.ghost:after{display:none}.btn.ghost:hover{background:var(--sage-l)}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn.sm{padding:9px 14px;font-size:.85rem}
.banner{background:var(--warn);color:var(--warn-i);text-align:center;padding:10px 16px;font-weight:700;font-size:.9rem}
.hero{padding:70px 0 44px;display:grid;gap:28px;position:relative;overflow:hidden}.hero>*:not(.fl){position:relative;z-index:1}
.hero h1{font-size:clamp(2.1rem,5.4vw,3.7rem);line-height:1.08;margin:0;font-weight:800;max-width:14em;letter-spacing:-.03em;animation:up .8s both}
.hero h1 em{font-style:normal;background:var(--grad-t);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:sh 6s linear infinite}
@keyframes sh{to{background-position:-200% 0}}@keyframes up{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.hero p{color:var(--mute);font-size:1.12rem;max-width:40em;margin:0;animation:up .8s .15s both}
.badges{display:flex;flex-wrap:wrap;gap:10px;animation:up .8s .3s both}
.badge{background:var(--card);border:1px solid var(--line);color:var(--sage-d);padding:9px 15px;border-radius:99px;font-size:.85rem;font-weight:700;transition:.25s;box-shadow:0 2px 8px rgba(0,0,0,.04)}.badge:hover{transform:translateY(-4px) rotate(-2deg);border-color:var(--sage)}
.fl{position:absolute;font-size:2.2rem;opacity:.7;animation:fl 7s ease-in-out infinite;pointer-events:none;user-select:none;filter:drop-shadow(0 6px 8px rgba(0,0,0,.15))}
@keyframes fl{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-26px) rotate(16deg)}}
.marq{overflow:hidden;border-block:1px solid var(--line);background:var(--card);padding:14px 0;margin:6px 0}
.mq{display:flex;gap:44px;width:max-content;animation:mq 32s linear infinite;font-weight:700;color:var(--sage-d);white-space:nowrap}.mq span{display:flex;gap:44px}
@keyframes mq{to{transform:translateX(-50%)}}
section{padding:54px 0}h2{font-size:clamp(1.6rem,3.4vw,2.1rem);margin:0 0 8px;font-weight:800;letter-spacing:-.02em}
h2:after{content:"";display:block;width:56px;height:5px;border-radius:9px;background:var(--grad);margin-top:9px}
.sub{color:var(--mute);margin:12px 0 28px}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}.tab{padding:10px 18px;border-radius:99px;border:1px solid var(--line);background:var(--card);cursor:pointer;font:inherit;font-weight:700;color:var(--mute);transition:.2s}
.tab:hover{border-color:var(--sage);color:var(--ink)}.tab.on{background:var(--grad);color:var(--btn-ink);border-color:transparent}
.grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.card{position:relative;overflow:hidden;background:var(--card);border:1px solid var(--line);border-radius:26px;padding:26px 24px 24px;display:flex;flex-direction:column;gap:12px;transition:transform .3s,box-shadow .3s,border-color .3s}
.card:hover{box-shadow:var(--sh);transform:translateY(-6px)}.card.sel{border-color:var(--ac,var(--sage));box-shadow:0 0 0 2px var(--ac,var(--sage)),var(--sh)}
.card h3{margin:0;font-size:1.2rem}.card .d{color:var(--mute);font-size:.92rem;margin:0}.kcal{font-weight:800;color:var(--sage-d)}
.pc{--ac:var(--sage)}.pc[data-k=loss]{--ac:#16a34a}.pc[data-k=gain]{--ac:#ff8a3d}.pc[data-k=custom]{--ac:#7c5cff}
.pc:before{content:"";position:absolute;inset:0 0 auto;height:6px;background:var(--ac)}
.pc:after{content:"";position:absolute;right:-40px;top:-40px;width:120px;height:120px;border-radius:50%;background:var(--ac);opacity:.1;transition:.4s}.pc:hover:after{transform:scale(1.7);opacity:.16}
.pc .kcal{color:var(--ac)}.pc .macros span{background:color-mix(in srgb,var(--ac) 14%,transparent);color:var(--ac)}
.pc .btn{background:var(--ac);color:#fff;box-shadow:none}
.macros{display:flex;gap:6px;flex-wrap:wrap}.macros span{background:var(--sage-l);color:var(--sage-d);border-radius:8px;padding:3px 9px;font-size:.78rem;font-weight:700}
.prices{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:auto}.prices div{background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:9px 6px;text-align:center;transition:.2s}
.card:hover .prices div{border-color:color-mix(in srgb,var(--ac,var(--sage)) 40%,var(--line))}
.prices small{display:block;color:var(--mute);font-size:.72rem}.prices b{font-size:1rem}
.oos{background:var(--warn);color:var(--warn-i);border-radius:10px;padding:4px 10px;font-size:.8rem;font-weight:700;align-self:flex-start}
.steps{counter-reset:s}.step{position:relative;padding-top:8px}
.step:before{counter-increment:s;content:counter(s);display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--grad);color:var(--btn-ink);font-weight:800;margin-bottom:8px;transition:.3s}.step:hover:before{transform:rotate(-8deg) scale(1.1)}
.step h3{margin:6px 0 4px}.step p{margin:0;color:var(--mute);font-size:.92rem}
form .row{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:14px}
label{display:block;font-size:.82rem;font-weight:700;margin-bottom:5px;color:var(--mute)}
input,select,textarea{width:100%;font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px 13px;outline:none;transition:.2s}
input[type=datetime-local],input[type=date]{display:block;min-height:48px;-webkit-appearance:none;appearance:none;color:var(--ink)}
input::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.85}
input:focus,select:focus,textarea:focus{border-color:var(--sage);box-shadow:0 0 0 4px var(--sage-l)}
.err{color:var(--err);font-size:.78rem;min-height:1em;margin-top:3px}.bad{border-color:var(--err)!important}
.total{display:flex;justify-content:space-between;align-items:center;background:var(--sage-l);border:1px dashed var(--sage);border-radius:18px;padding:16px 20px;margin:6px 0 16px;gap:10px;flex-wrap:wrap}
.total b{font-size:1.7rem;color:var(--sage-d)}.total small{color:var(--mute);display:block}
.notice{display:flex;gap:14px;background:var(--warn);color:var(--warn-i);border-radius:24px;padding:22px;font-weight:700;align-items:flex-start;border:1px solid color-mix(in srgb,var(--warn-i) 25%,transparent)}
.notice>span{animation:bob 2.4s ease-in-out infinite}
.towns{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.towns button{font:inherit;font-weight:600;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:99px;padding:8px 15px;font-size:.85rem;cursor:pointer;transition:.2s}
.towns button:hover{transform:translateY(-3px);border-color:var(--sage)}.towns button.on{background:var(--grad);color:var(--btn-ink);border-color:transparent}
footer{border-top:1px solid var(--line);padding:38px 0 96px;color:var(--mute);font-size:.9rem;background:color-mix(in srgb,var(--card) 70%,transparent)}
footer .cols{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}footer h4{margin:0 0 8px;color:var(--ink)}
.fab{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:30;background:#1fb851;color:#fff;border-radius:99px;padding:13px 20px;font-weight:800;box-shadow:0 10px 26px rgba(0,0,0,.3);transition:transform .2s}.fab:hover{transform:scale(1.06)}
.fab:before{content:"";position:absolute;inset:0;border-radius:99px;background:#25d366;z-index:-1;animation:ping 2.2s infinite}@keyframes ping{0%{transform:scale(1);opacity:.55}100%{transform:scale(1.5);opacity:0}}
.ov{position:fixed;inset:0;z-index:50;background:rgba(8,18,12,.6);backdrop-filter:blur(4px);display:none;align-items:flex-start;justify-content:center;overflow:auto;padding:calc(20px + env(safe-area-inset-top,0px)) 14px 30px}.ov.on{display:flex}
.modal{background:var(--card);border-radius:26px;padding:26px;width:100%;max-width:440px;margin:auto;animation:up .35s both;border:1px solid var(--line)}.modal.big{max-width:860px;margin-top:0}
.mh{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.mh h3{margin:0}
.x{background:none;border:0;font-size:1.5rem;cursor:pointer;color:var(--mute)}
.at{display:flex;gap:8px;margin-bottom:18px;border-bottom:1px solid var(--line);padding-bottom:12px;flex-wrap:wrap}
.fs{border:1px solid var(--line);border-radius:18px;padding:16px;margin-bottom:16px}.fs legend{font-weight:800;padding:0 8px}
.sw{display:flex;align-items:center;gap:10px;font-size:.9rem;font-weight:700;color:var(--ink)}.sw input{width:auto}
.acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.toast{position:fixed;left:50%;top:calc(16px + env(safe-area-inset-top,0px));transform:translate(-50%,-140%);background:var(--ink);color:var(--bg);padding:12px 20px;border-radius:14px;font-weight:700;z-index:90;transition:.35s;max-width:90vw}.toast.on{transform:translate(-50%,0)}.toast.bad{background:var(--err);color:#fff}
.rv{opacity:0;transform:translateY(22px);transition:opacity .7s,transform .7s}.rv.in{opacity:1;transform:none}
.emo{font-size:2.3rem;display:inline-block;animation:bob 3s ease-in-out infinite}@keyframes bob{50%{transform:translateY(-6px) scale(1.08)}}
.qty{display:flex;align-items:center;gap:10px}.qty button{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:var(--bg);color:var(--ink);font-size:1.1rem;cursor:pointer;transition:.2s}.qty button:hover{background:var(--sage);color:var(--btn-ink);transform:scale(1.1)}
.opt{display:flex;gap:10px}.opt label{flex:1;margin:0;border:1px solid var(--line);border-radius:12px;padding:12px;text-align:center;cursor:pointer;color:var(--ink);font-size:.9rem;transition:.2s}.opt label:hover{border-color:var(--sage)}.opt input{display:none}.opt label.on{background:var(--grad);color:var(--btn-ink);border-color:transparent}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}}
@media(max-width:760px){nav.links{display:none}.hero{padding-top:40px}.fl{opacity:.25}}
