:root{--g:#0f3d14;--g2:#1c5a24;--o:#e65100;--c:#f6f3ea;--t:#1d2b1f;--m:#6b7468;--l:#e5dfcf;--r:16px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font:16px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans Telugu",sans-serif;background:var(--c);color:var(--t)}
a{color:var(--g)}img{max-width:100%}
.top{position:sticky;top:0;z-index:5;display:flex;gap:14px;align-items:center;padding:10px 20px;background:#fff;box-shadow:0 1px 0 var(--l),0 6px 18px rgba(15,61,20,.05)}
.brand img{display:block;height:40px;width:auto}
.search{flex:1;min-width:0;height:44px;padding:0 16px 0 42px;border:1px solid var(--l);border-radius:999px;font-size:16px;background:var(--c) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' stroke='%236b7468' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='9' cy='9' r='6'/%3E%3Cpath d='m14 14 4 4'/%3E%3C/svg%3E") no-repeat 14px center}
.search:focus{outline:2px solid var(--g2);background-color:#fff}
.nav{display:flex;gap:14px;align-items:center;white-space:nowrap}.nav a{text-decoration:none;font-weight:600;color:var(--t)}.nav a:hover{color:var(--g2)}
.cartbtn{display:inline-flex;align-items:center;gap:6px;background:var(--g);color:#fff!important;height:42px;padding:0 16px;border-radius:999px}
.cartbtn b{background:var(--o);border-radius:999px;min-width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;font-size:13px;padding:0 6px}
.chip{border:1px solid var(--g);background:#fff;color:var(--g);border-radius:999px;height:38px;padding:0 14px;cursor:pointer;font-weight:600;font-size:15px}
main{max-width:1180px;margin:0 auto;padding:18px 20px 30px}

.hero{background:linear-gradient(120deg,var(--g) 0%,var(--g2) 100%);color:#fff;border-radius:22px;padding:26px 28px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center;gap:16px;overflow:hidden;position:relative}
.hero h1{margin:0 0 6px;font-size:clamp(22px,3.4vw,34px);line-height:1.15}.hero p{margin:0;opacity:.9}
.hero .pill{display:inline-block;background:rgba(255,255,255,.16);border-radius:999px;padding:6px 14px;font-weight:700;font-size:14px;white-space:nowrap}

.cats{display:flex;gap:14px;overflow-x:auto;padding:4px 2px 12px;scrollbar-width:thin}
.ct{flex:none;width:92px;text-align:center;background:none;border:0;cursor:pointer;color:var(--t);font:inherit;font-size:13px;font-weight:600}
.ct .ci{width:72px;height:72px;margin:0 auto 6px;border-radius:50%;background:#fff;border:2px solid var(--l);overflow:hidden;display:flex;align-items:center;justify-content:center;transition:.15s}
.ct .ci img{width:100%;height:100%;object-fit:cover}.ct:hover .ci{border-color:var(--g2)}
.ct.on .ci{border-color:var(--o);box-shadow:0 0 0 3px rgba(230,81,0,.18)}.ct.on{color:var(--o)}
.ct span{display:block;line-height:1.2;max-height:2.4em;overflow:hidden}
.subs{display:flex;gap:8px;overflow-x:auto;padding:2px 0 14px}.subs .chip{height:34px;font-size:14px;flex:none}.subs .chip.on{background:var(--o);border-color:var(--o);color:#fff}
.sec{display:flex;justify-content:space-between;align-items:baseline;margin:6px 2px 12px}.sec h2{margin:0;font-size:20px}.sec .muted{font-size:14px}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px;align-items:stretch}
.card{background:#fff;border:1px solid var(--l);border-radius:var(--r);padding:12px;display:flex;flex-direction:column;position:relative;transition:box-shadow .15s,transform .15s}
.card:hover{box-shadow:0 10px 24px rgba(15,61,20,.10);transform:translateY(-2px)}
.card .im{height:150px;display:flex;align-items:center;justify-content:center;margin-bottom:10px}.card .im img{max-height:100%;max-width:100%;object-fit:contain}
.card .off{position:absolute;top:10px;left:10px;background:var(--o);color:#fff;border-radius:8px;padding:2px 8px;font-size:12px;font-weight:800}
.card .info{flex:1;display:flex;flex-direction:column;gap:4px}
.card h3{font-size:15px;line-height:1.3;margin:0;height:2.6em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.card .sz{color:var(--m);font-size:13px;min-height:18px}
.card .pr{display:flex;align-items:baseline;gap:8px;min-height:26px}.price{font-weight:800;color:var(--g);font-size:18px}.mrp{color:var(--m);text-decoration:line-through;font-size:13px}
.card .minq{color:var(--o);font-size:12px;min-height:16px}
.act{margin-top:10px;height:42px}
.btn{border:0;background:var(--g);color:#fff;min-height:42px;padding:0 18px;border-radius:12px;font-size:16px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;transition:filter .15s}
.btn:hover{filter:brightness(1.12)}.btn.o{background:var(--o)}.btn.line{background:#fff;color:var(--g);border:1.5px solid var(--g)}.btn:disabled{opacity:.55;cursor:default}
.act .btn{width:100%;height:42px}
.qty{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;height:42px;border:1.5px solid var(--g);border-radius:12px;overflow:hidden;background:#fff}
.qty button{height:100%;border:0;background:var(--g);color:#fff;font-size:22px;cursor:pointer;line-height:1}.qty b{text-align:center}
.out{height:42px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:var(--c);color:var(--m);font-weight:700;font-size:14px}

.box{background:#fff;border:1px solid var(--l);border-radius:var(--r);padding:18px;margin-bottom:14px}
.box h2{margin-top:0}
label{display:block;font-weight:600;margin:12px 0 5px}
input,select,textarea{width:100%;padding:11px 13px;border:1px solid var(--l);border-radius:12px;font-size:16px;background:#fff;font-family:inherit}
input:focus,select:focus,textarea:focus{outline:2px solid var(--g2)}
.row{display:flex;gap:12px;align-items:center;justify-content:space-between}.muted{color:var(--m)}.err{color:#b00020;margin:8px 0 0}.ok{color:var(--g);font-weight:700}
.line1{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--l)}.line1:last-child{border:0}.line1 img{width:54px;height:54px;object-fit:contain;background:#fff;border-radius:8px}.line1 .grow{flex:1;min-width:0}
.line1 .qty{width:116px;flex:none}
.line1{flex-wrap:wrap}.line1 .grow{flex:1 1 150px}
@media(max-width:600px){.line1{gap:8px 12px}.line1 .grow{flex:1 1 calc(100% - 70px)}.line1 > .qty{margin-left:66px}.line1 > b:last-child{margin-left:auto;font-size:16px}}
.bill-title{font-weight:800;font-size:17px;margin:4px 0 8px}.bill-row{padding:3px 0;font-size:15px;align-items:flex-start}.bill-row>span:first-child{flex:1;min-width:0}.bill-row>span:last-child{white-space:nowrap}
.bill-sep{border-top:1px dashed var(--l);margin:8px 0}.bill-warn{margin-top:10px;padding:10px 12px;border-radius:10px;background:#fff4d6;color:#7a4b00;font-weight:600}
.btn.disabled,.btn:disabled{opacity:.45;pointer-events:none;filter:grayscale(.3)}
.tl{list-style:none;padding:0;margin:10px 0}.tl li{padding:5px 0 5px 28px;position:relative;color:var(--m)}.tl li:before{content:"\25CB";position:absolute;left:2px}.tl li.done{color:var(--t);font-weight:600}.tl li.done:before{content:"\2713";color:var(--g)}
.tag{display:inline-block;padding:3px 12px;border-radius:999px;background:var(--c);border:1px solid var(--l);font-weight:700;font-size:13px}.tag.Completed{color:#1b7a2a}.tag.Cancelled{color:#b00020}.tag.Pending{color:var(--o)}
.bar{position:sticky;bottom:12px;background:var(--g);color:#fff;padding:12px 18px;display:flex;justify-content:space-between;align-items:center;border-radius:999px;margin-top:18px;box-shadow:0 8px 24px rgba(15,61,20,.3)}.bar a{color:#fff;font-weight:700;text-decoration:none}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#222;color:#fff;padding:10px 18px;border-radius:12px;z-index:9;max-width:90vw}
.foot{text-align:center;color:var(--m);padding:26px 12px 44px;font-size:14px}.foot a{color:var(--m)}
@media(max-width:640px){.top{flex-wrap:wrap;padding:8px 12px;gap:8px}.brand img{height:32px}.nav{gap:8px;font-size:14px}.nav .chip{height:32px;padding:0 10px;font-size:13px}.cartbtn{height:36px;padding:0 12px}.search{order:3;flex-basis:100%}.nav{margin-left:auto;gap:10px}main{padding:12px}
.hero{padding:18px;border-radius:18px}.hero .pill{display:none}.grid{grid-template-columns:repeat(2,1fr);gap:10px}.card{padding:9px}.card .im{height:120px}.card h3{font-size:14px}.price{font-size:16px}.ct{width:80px}.ct .ci{width:62px;height:62px}}

.opt{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--l);border-radius:12px;padding:10px 12px;margin:8px 0;font-weight:400;cursor:pointer}.opt input{width:auto;margin-top:4px}.opt:has(input:checked){border-color:var(--g2);background:#f3f8f1}

/* ---------- motion and polish ---------- */
@keyframes rise{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
@keyframes fadein{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes shimmer{0%{background-position:-400px 0}100%{background-position:400px 0}}
@keyframes drift{0%,100%{transform:translate(0,0)}50%{transform:translate(24px,-12px)}}
@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.35)}100%{transform:scale(1)}}
@keyframes slideup{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes toastin{from{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%,0)}}
#app.fade{animation:fadein .35s ease both}
.card.rise{animation:rise .5s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i)*35ms)}
.card .im img{opacity:0;transform:scale(.96);transition:opacity .4s ease,transform .5s ease}.card .im img.in{opacity:1;transform:none}
.card:hover .im img.in{transform:scale(1.06)}
.top{transition:box-shadow .25s,padding .25s}.top.scrolled{box-shadow:0 1px 0 var(--l),0 10px 28px rgba(15,61,20,.12);padding-top:6px;padding-bottom:6px}
.btn,.qty button,.chip,.ct .ci{transition:transform .15s,filter .15s,background .2s,box-shadow .2s,border-color .2s}
.btn:active,.qty button:active{transform:scale(.94)}.btn.o:hover{box-shadow:0 8px 18px rgba(230,81,0,.3)}.btn:not(.line):not(.o):hover{box-shadow:0 8px 18px rgba(15,61,20,.25)}
.ct:hover .ci{transform:translateY(-3px) scale(1.05)}.ct.on .ci{transform:scale(1.08)}
.cats,.subs{scroll-snap-type:x proximity;scroll-behavior:smooth}.ct,.subs .chip{scroll-snap-align:start}
#cartCount.pop,.qty b.pop{animation:pop .45s ease}
.fly{position:fixed;z-index:20;width:18px;height:18px;border-radius:50%;background:var(--o);box-shadow:0 4px 12px rgba(230,81,0,.5);pointer-events:none}
.bar{animation:slideup .4s cubic-bezier(.2,.7,.2,1) both;transition:opacity .25s,transform .25s}.bar.out{opacity:0;transform:translateY(20px)}
.toast.in{animation:toastin .3s ease both}
.hero{position:relative;background-size:200% 200%;animation:fadein .6s ease both}.hero:before,.hero:after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.07);animation:drift 9s ease-in-out infinite}
.hero:before{width:220px;height:220px;right:-40px;top:-70px}.hero:after{width:140px;height:140px;right:160px;bottom:-60px;animation-delay:-4s}.hero>*{position:relative;z-index:1}
.box{animation:fadein .4s ease both}
#up{position:fixed;right:18px;bottom:84px;width:44px;height:44px;border-radius:50%;border:0;background:var(--g);color:#fff;font-size:22px;cursor:pointer;box-shadow:0 8px 20px rgba(15,61,20,.3);opacity:0;transform:translateY(12px);pointer-events:none;transition:.25s;z-index:6}
#up.show{opacity:1;transform:none;pointer-events:auto}
/* loading skeletons */
.sk-b,.sk-l,.sk-btn{background:linear-gradient(90deg,#ece6d6 0,#f7f3e8 40%,#ece6d6 80%);background-size:800px 100%;animation:shimmer 1.3s linear infinite}
.sk-hero{height:110px;border-radius:22px;margin-bottom:20px}.sk-cats{display:flex;gap:14px;margin-bottom:20px}.sk-cats i{width:72px;height:72px;border-radius:50%;flex:none}
.card.sk{pointer-events:none}.card.sk .im{height:150px;border-radius:10px;margin-bottom:12px}.sk-l{height:12px;border-radius:6px;margin:6px 0}.w80{width:80%}.w50{width:50%}.w40{width:40%}.sk-btn{height:42px;border-radius:12px;margin-top:14px}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.card .im img{opacity:1;transform:none}}

.opt{align-items:center}.opt .pi{font-size:22px;width:30px;text-align:center}.opt .pt{flex:1}.opt.off{opacity:.62;cursor:not-allowed;background:#faf8f2}
.soon{background:var(--c);border:1px solid var(--l);color:var(--m);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700;white-space:nowrap}
.opt:has(input:checked) .pi{transform:scale(1.15)}.opt{transition:border-color .2s,background .2s}

.upi{max-width:480px;margin:0 auto}.upi h2{text-align:center;margin-bottom:4px}.upi-amt{text-align:center;font-size:40px;font-weight:800;color:var(--g);margin:6px 0}
.qr{width:240px;max-width:70vw;margin:10px auto;padding:10px;background:#fff;border:1px solid var(--l);border-radius:16px}.qr svg{width:100%;height:auto;display:block}
.upi-open{display:flex;margin:10px auto;max-width:320px}.steps{padding-left:20px;color:var(--t)}.steps li{margin:4px 0}

/* Out of stock: a watermark across the product picture */
.card .im{position:relative}
.card .im.oos::before{content:"";position:absolute;inset:0;background:rgba(255,255,255,.62);border-radius:10px;z-index:1}
.card .im.oos::after{content:attr(data-oos);position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-30deg);z-index:2;font-weight:700;font-size:17px;line-height:1.1;text-align:center;color:#1b1b1b;white-space:nowrap}
.card:hover .im.oos img.in{transform:none}

/* keep the % OFF label above the product picture */
.card .off{z-index:3}
/* Coming soon items: no price, cannot be ordered */
.card .out.soon{background:#eef3ea;color:#1b5a3a;font-weight:700}
