:root{
  --hero-photo:url("https://images.pexels.com/photos/34530206/pexels-photo-34530206/free-photo-of-vibrant-fruit-and-vegetable-market-display-london.jpeg?auto=compress&cs=tinysrgb&w=1600");
  --deep:#0d3b25; --leaf:#1f7a3f; --leaf2:#2fa053; --lime:#c4ee2c; --turmeric:#f5a30a; --chilli:#d92d20;
  --paper:#f2f8ee; --white:#fff; --ink:#14251b; --muted:#587061; --line:#d6e6d7; --mint:#e4f4e6;
  --shadow:0 14px 30px -16px rgba(13,59,37,.45);
  --safe-b:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:130px}
body{background:radial-gradient(90% 40% at 50% 0,#ffffff 0,rgba(255,255,255,0) 70%),linear-gradient(180deg,#f5faf1 0,#e9f2e4 100%);background-attachment:fixed;color:var(--ink);font:16px/1.55 'Inter','Noto Sans Kannada',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;overflow-x:hidden;-webkit-tap-highlight-color:transparent}
body.lock{overflow:hidden}
h1,h2,h3,.brand b{font-family:'Poppins','Noto Sans Kannada','Inter',system-ui,sans-serif;line-height:1.08;letter-spacing:-.01em}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;border:0;background:none}
a{color:inherit}
:focus-visible{outline:3px solid var(--turmeric);outline-offset:2px;border-radius:8px}
.wrap{max-width:1200px;margin:0 auto;padding:0 18px}
img{max-width:100%;display:block}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:0 22px;border-radius:99px;background:linear-gradient(180deg,#34b058,var(--leaf));color:#fff;font-weight:800;text-decoration:none;box-shadow:0 10px 18px -10px rgba(31,122,63,.9);transition:transform .15s,box-shadow .15s}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:scale(.97)}
.btn.big{min-height:54px;padding:0 28px;font-size:1.05rem}
.btn.ghost{background:#fff;color:var(--leaf);box-shadow:inset 0 0 0 2px var(--leaf)}
.btn.ghost-w{background:rgba(255,255,255,.12);color:#fff;box-shadow:inset 0 0 0 2px rgba(255,255,255,.7)}
.btn.warn{background:linear-gradient(180deg,#f0463a,var(--chilli))}
.btn[disabled]{opacity:.5;pointer-events:none}
.link{color:var(--leaf);font-weight:800;text-decoration:underline;padding:6px}

/* ---------- announce + header ---------- */
.announce{background:var(--turmeric);color:#2a1c00;text-align:center;font-weight:800;padding:8px 14px;font-size:.95rem}
.top{position:sticky;top:0;z-index:30;height:62px;background:rgba(13,59,37,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fff}
.bar{height:100%;display:flex;align-items:center;gap:14px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;min-width:0;margin-right:auto}
.logo{width:42px;height:42px;border-radius:13px;background:var(--lime);color:var(--deep);display:grid;place-items:center;flex:0 0 auto}
.logo .ic{width:24px;height:24px}
.ic{width:1.15em;height:1.15em;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.2em;flex:0 0 auto}
.phico{display:grid;place-items:center;width:100%;height:100%;color:var(--leaf)}
.phico{position:relative}.phico b{font:700 clamp(3.4rem,10vw,4.8rem)/1 'Poppins',sans-serif;color:rgba(18,80,44,.20);letter-spacing:-.04em}
.phico .ic{position:absolute;right:10px;bottom:10px;width:22px;height:22px;stroke-width:1.7;opacity:.55}
.dart .phico b,.thumb .phico b{font-size:1.7rem}.dart .phico .ic,.thumb .phico .ic{display:none}
.bn{display:flex;flex-direction:column;min-width:0}
.bn b{font-size:1.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bn small{font-size:.72rem;opacity:.75;white-space:nowrap}
.nav{display:flex;gap:6px}
.nav a{padding:8px 14px;border-radius:99px;text-decoration:none;font-weight:700}
.nav a:hover{background:rgba(255,255,255,.12)}
.cartbtn{position:relative;display:flex;align-items:center;gap:8px;height:44px;padding:0 16px;border-radius:99px;background:var(--lime);color:var(--deep);font-weight:800}
.cartbtn .ci{display:grid;place-items:center}.cartbtn .ic{width:22px;height:22px}
.badge{min-width:22px;height:22px;border-radius:99px;background:var(--chilli);color:#fff;font-size:.78rem;display:grid;place-items:center;padding:0 6px}
.badge.bump{animation:bump .4s}
@keyframes bump{40%{transform:scale(1.5)}}
@media(max-width:700px){.nav{display:none}.cl{display:none}.bn small{display:none}}

/* ---------- hero (the one big 3D moment) ---------- */
.hero{position:relative;color:#fff;padding:52px 0 124px;overflow:hidden;clip-path:ellipse(135% 100% at 50% 0);isolation:isolate;background-color:#0a301c;
  background-image:
   radial-gradient(46% 60% at 76% 50%,rgba(255,244,214,.20) 0,rgba(255,244,214,0) 70%),
   radial-gradient(70% 60% at 50% 118%,rgba(3,18,10,.9) 0,rgba(3,18,10,0) 70%),
   linear-gradient(100deg,rgba(4,28,16,.94) 0%,rgba(7,42,24,.82) 46%,rgba(9,54,31,.58) 100%),
   var(--hero-photo,none),
   linear-gradient(168deg,#1f7345 0%,#12502c 46%,#0a301c 100%);
  background-size:auto,auto,auto,cover,auto;background-position:0 0,0 0,0 0,center,0 0;background-repeat:no-repeat}
.hero::before{display:none}
.hero::after{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.14;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");box-shadow:inset 0 0 170px 30px rgba(2,14,8,.6)}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;gap:10px;align-items:center}
.chip::before{content:'';display:inline-block;width:9px;height:9px;border-radius:50%;background:#6be07d;margin-right:8px;box-shadow:0 0 0 4px rgba(107,224,125,.25)}
.chip.closed::before{background:#ffb347;box-shadow:0 0 0 4px rgba(255,179,71,.25)}
.chip{display:inline-block;background:rgba(255,255,255,.14);border-radius:99px;padding:6px 14px;font-weight:800;font-size:.9rem}
.hero h1{font-size:clamp(2.3rem,5.4vw,4.2rem);font-weight:700;letter-spacing:-.03em;line-height:1.06;margin:16px 0 14px;text-wrap:balance}
.lead{font-size:1.12rem;max-width:34em;opacity:.92}
.cta{display:flex;flex-wrap:wrap;gap:12px;margin:26px 0 20px}
.mini li{display:flex;align-items:center;gap:7px}.mini .ic{stroke:var(--lime);width:18px;height:18px}
.mini{list-style:none;display:flex;flex-wrap:wrap;gap:8px 18px;font-weight:700;font-size:.95rem;opacity:.9}
.stage{position:relative;height:440px;perspective:1400px;display:grid;place-items:center;--rad:232px;--cw:182px;--ch:240px}
.stage::after{content:'';position:absolute;bottom:26px;left:16%;right:16%;height:30px;background:radial-gradient(ellipse at center,rgba(0,0,0,.42),transparent 70%)}
.ring{position:relative;width:var(--cw);height:var(--ch);transform-style:preserve-3d;transform:rotateX(-7deg);animation:spin 40s linear infinite}
.ring i{position:absolute;inset:0;transform:rotateY(var(--a)) translateZ(var(--rad));-webkit-backface-visibility:hidden;backface-visibility:hidden}
.ring i img{display:block;width:100%;height:100%;object-fit:cover;border-radius:18px;border:4px solid #fff;background:#2c7a4b;box-shadow:0 26px 44px -16px rgba(0,0,0,.65);-webkit-backface-visibility:hidden;backface-visibility:hidden;pointer-events:none;-webkit-user-drag:none}
@keyframes spin{from{transform:rotateX(-7deg) rotateY(0)}to{transform:rotateX(-7deg) rotateY(360deg)}}
@media(max-width:820px){
  .hero{padding:32px 0 96px}
  .hero-grid{grid-template-columns:1fr;text-align:center}
  .lead{margin:0 auto}.cta,.mini{justify-content:center}
  .stage{height:290px;--rad:158px;--cw:128px;--ch:170px;order:-1}
}

/* ---------- info strip ---------- */
.strip{position:relative;z-index:2;margin:-62px auto 0;max-width:1100px;padding:0 18px}
.strip ul{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-radius:26px;box-shadow:var(--shadow);overflow:hidden}
.strip li{padding:16px 18px;display:flex;align-items:center;gap:12px;border-right:2px dashed var(--line)}
.strip li:last-child{border-right:0}
.strip em{font-style:normal;width:48px;height:48px;border-radius:14px;background:var(--mint);color:var(--leaf);display:grid;place-items:center;flex:0 0 auto}.strip em .ic{width:24px;height:24px}
.strip b{display:block;font-family:'Poppins',sans-serif;font-size:1.05rem;line-height:1.15}
.strip small{color:var(--muted);font-weight:600;line-height:1.2;display:block}
@media(max-width:820px){.strip ul{grid-template-columns:1fr 1fr}.strip li:nth-child(2){border-right:0}.strip li:nth-child(-n+2){border-bottom:2px dashed var(--line)}}

/* ---------- sections ---------- */
.sec{padding:44px 0 6px}
.sech{font-size:clamp(1.7rem,4vw,2.4rem);margin-bottom:6px}
.sub{color:var(--muted);font-weight:600;margin-bottom:18px}
.deals{display:flex;gap:14px;overflow-x:auto;padding:6px 2px 18px;scroll-snap-type:x proximity;scrollbar-width:thin}
.deal{flex:0 0 auto;scroll-snap-align:start;display:flex;align-items:center;gap:12px;padding:10px 18px 10px 10px;border-radius:99px;background:#fff;box-shadow:var(--shadow);text-align:left;position:relative}
.dart{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;overflow:hidden;flex:0 0 auto}
.dart .emo{font-size:2.3rem;line-height:1}
.dart img{width:100%;height:100%}.dart img.photo{object-fit:cover}.dart img.svg{object-fit:contain;padding:8%}
.dt b{display:block;font-family:'Poppins',sans-serif;font-size:1.05rem;line-height:1.1}
.dt s{color:#8b9b90;margin-right:4px}.dt strong{color:var(--chilli);font-size:1.1rem}.dt span{font-size:.85rem;color:var(--muted)}
.off{background:var(--chilli);color:#fff;font-weight:800;border-radius:99px;padding:4px 10px;font-size:.82rem;white-space:nowrap}

/* toolbar */
.toolbar{position:sticky;top:62px;z-index:20;background:rgba(242,248,238,.93);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:10px 0;border-bottom:1px solid var(--line)}
.tb{display:flex;gap:12px;align-items:center}
.search{position:relative;flex:0 0 min(320px,38%)}
.search .ic{width:18px;height:18px}
.search span{position:absolute;left:14px;display:grid;top:50%;transform:translateY(-50%);pointer-events:none}
.search input{width:100%;height:46px;border-radius:99px;border:2px solid var(--line);background:#fff;padding:0 16px 0 42px}
.search input:focus{border-color:var(--leaf2);outline:none}
.tabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;flex:1;padding:2px}
.tabs::-webkit-scrollbar{display:none}
.tab{flex:0 0 auto;height:44px;padding:0 18px;border-radius:99px;background:#fff;border:2px solid var(--line);font-weight:800;white-space:nowrap}
.tab.on{background:var(--deep);border-color:var(--deep);color:#fff}
.tab small{opacity:.65;margin-left:4px}
@media(max-width:700px){.toolbar{position:static}.tb{flex-direction:column;align-items:stretch;gap:8px}.search{flex:none}}

/* product grid + 3D cards */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:16px;padding:22px 0 10px}
@media(min-width:900px){.grid{grid-template-columns:repeat(auto-fill,minmax(222px,1fr));gap:24px}}
.card{position:relative;display:flex;flex-direction:column;gap:9px;background:#fff;border-radius:22px;padding:10px 10px 14px;border:1px solid rgba(13,59,37,.07);box-shadow:0 10px 26px -18px rgba(13,59,37,.5);transform-style:preserve-3d;transition:transform .18s ease-out,box-shadow .3s}
.card:hover{box-shadow:0 26px 40px -18px rgba(13,59,37,.55)}
.art{position:relative;width:100%;aspect-ratio:1/1;border-radius:16px;display:grid;place-items:center;overflow:hidden;transform:translateZ(22px);box-shadow:0 14px 20px -16px rgba(0,0,0,.45)}
.c-veg{background:linear-gradient(145deg,#eef9ea,#cdebc4)}
.c-leafy{background:linear-gradient(145deg,#e8f8ee,#bfe9cd)}
.c-masala{background:linear-gradient(145deg,#fff1e0,#f3c996)}
.c-fruit{background:linear-gradient(145deg,#fff4e2,#ffd9a6)}
.c-dairy{background:linear-gradient(145deg,#eef6ff,#cfe3f8)}
.c-snacks{background:linear-gradient(145deg,#fff0d8,#f5cd8c)}
.c-sweets{background:linear-gradient(145deg,#ffeaf1,#ffc4d6)}
.c-grocery{background:linear-gradient(145deg,#f8f2de,#e8d9a3)}
.art.ph{background:#eef3ee}
.art .emo{font-size:clamp(3.4rem,9vw,4.8rem);line-height:1;filter:drop-shadow(0 9px 6px rgba(0,0,0,.28));animation:bob 4.2s ease-in-out infinite}
.card:nth-child(3n+2) .emo{animation-delay:-1.4s}.card:nth-child(3n) .emo{animation-delay:-2.8s}
@keyframes bob{0%,100%{transform:translateY(-3px) rotate(-2deg)}50%{transform:translateY(5px) rotate(2deg)}}
.art img{width:100%;height:100%}.art img.photo{object-fit:cover}.art img.svg{object-fit:contain;padding:12%;filter:drop-shadow(0 8px 6px rgba(0,0,0,.2))}
.ribbon{position:absolute;top:18px;left:0;z-index:2;background:var(--chilli);color:#fff;font-weight:800;font-size:.8rem;padding:4px 12px 4px 13px;border-radius:0 99px 99px 0;transform:translateZ(60px);box-shadow:0 6px 10px -4px rgba(217,45,32,.7)}
.card h3{font-size:1.06rem;font-weight:600;margin-top:2px;padding:0 4px;letter-spacing:-.01em}
.card .price,.card .chips,.card .step,.card .add,.card .na{margin-left:2px;margin-right:2px}
.card h3 small{display:block;font-family:'Noto Sans Kannada','Inter',sans-serif;font-size:.8rem;font-weight:700;color:var(--muted);margin-top:2px}
.price{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.price b{font:800 1.45rem 'Poppins',sans-serif}
.price s{color:#8b9b90;font-weight:700}
.price small{color:var(--muted);font-weight:700}
.chips{display:flex;gap:6px}
.chips button{flex:1;height:34px;border-radius:10px;background:var(--mint);font-weight:800;font-size:.82rem;border:2px solid transparent}
.chips button.on{background:#fff;border-color:var(--leaf2);color:var(--leaf)}
.step{display:flex;align-items:center;justify-content:space-between;background:var(--mint);border-radius:16px;padding:4px}
.step button{width:42px;height:42px;border-radius:50%;background:#fff;font-size:1.4rem;font-weight:800;color:var(--leaf);box-shadow:0 3px 8px -4px rgba(0,0,0,.35)}
.step button:active{transform:scale(.9)}
.step output{font-weight:800;font-size:1.05rem}
.add{display:flex;justify-content:space-between;align-items:center;min-height:46px;padding:0 16px;border-radius:99px;background:linear-gradient(180deg,#34b058,var(--leaf));color:#fff;font-weight:800;box-shadow:0 10px 16px -10px rgba(31,122,63,.95);transition:transform .15s}
.add:active{transform:scale(.97)}
.add span{white-space:nowrap}
.lg{display:none}
@media(min-width:900px){.lg{display:inline}}
.chips button{white-space:nowrap;font-size:.76rem;padding:0 2px}
.na{background:#fdeceb;color:#a3190f;border-radius:14px;padding:12px;text-align:center;font-weight:800}
.card.out .art{filter:grayscale(1);opacity:.55}
.card.out h3{opacity:.6}
.empty{grid-column:1/-1;text-align:center;padding:40px 10px;color:var(--muted);font-weight:700}
.empty big{display:block}.empty big .ic,.emptyc big .ic{width:46px;height:46px;opacity:.45;stroke-width:1.5}
.fly{position:fixed;z-index:200;border-radius:50%;overflow:hidden;pointer-events:none;display:grid;place-items:center;box-shadow:0 10px 20px rgba(0,0,0,.3)}
.fly .emo{font-size:2.6rem}.fly img{width:100%;height:100%;object-fit:cover}

/* how it works */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:20px;counter-reset:s}
.steps div{position:relative;padding-left:70px}
.steps div::before{counter-increment:s;content:counter(s);position:absolute;left:0;top:0;width:54px;height:54px;border-radius:50%;background:var(--deep);color:var(--lime);font:800 1.7rem 'Poppins',sans-serif;display:grid;place-items:center}
.steps h3{font-size:1.3rem;margin-bottom:4px}
.steps p{color:var(--muted);font-weight:600}
@media(max-width:760px){.steps{grid-template-columns:1fr}}

/* visit */
.visit{display:grid;grid-template-columns:1.2fr 1fr;gap:26px;background:var(--deep);color:#fff;border-radius:34px;padding:34px;margin-top:10px}
.visit h2{font-size:2rem;margin-bottom:10px}
.visit p{opacity:.9;margin-bottom:8px}
.visit .row{display:flex;flex-wrap:wrap;gap:10px;align-content:flex-start}
.visit .btn{background:var(--lime);color:var(--deep);box-shadow:none}
.visit .btn.wa{background:#25d366}
@media(max-width:760px){.visit{grid-template-columns:1fr;padding:24px;border-radius:26px}}
footer.foot{text-align:center;padding:40px 18px calc(110px + var(--safe-b));color:var(--muted);font-weight:700}
footer.foot b{display:block;font:800 1.5rem 'Poppins',sans-serif;color:var(--deep)}
footer.foot a{color:var(--muted);font-size:.85rem}

/* floating buttons */
.wafloat .ic{width:28px;height:28px;color:#fff}
.wafloat{position:fixed;right:16px;bottom:calc(18px + var(--safe-b));z-index:40;width:56px;height:56px;border-radius:50%;background:#25d366;display:grid;place-items:center;text-decoration:none;box-shadow:0 12px 20px -8px rgba(0,0,0,.45)}
.cartbar{position:fixed;left:12px;right:84px;bottom:calc(14px + var(--safe-b));z-index:40;height:56px;border-radius:99px;background:var(--deep);color:#fff;display:none;align-items:center;justify-content:space-between;padding:0 22px;box-shadow:0 14px 24px -10px rgba(0,0,0,.6);font-weight:800}
.cartbar small{display:block;opacity:.75;font-weight:700;line-height:1}
.cartbar .tot{font:800 1.3rem 'Poppins',sans-serif;color:var(--lime)}
@media(max-width:760px){body.hascart .cartbar{display:flex}}

/* ---------- basket drawer ---------- */
.drawer{position:fixed;inset:0;z-index:60;pointer-events:none}
.drawer.open{pointer-events:auto}
.scrim{position:absolute;inset:0;background:rgba(8,28,18,.55);opacity:0;transition:opacity .3s}
.drawer.open .scrim{opacity:1}
.sheet{position:absolute;top:0;right:0;bottom:0;width:min(460px,100%);background:#fff;display:flex;flex-direction:column;transform:translateX(104%);transition:transform .35s cubic-bezier(.2,.8,.2,1);box-shadow:-20px 0 40px -20px rgba(0,0,0,.4)}
.drawer.open .sheet{transform:none}
.sh-h{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line)}
.sh-h h2{font-size:1.5rem}
.x{width:42px;height:42px;border-radius:50%;background:var(--mint);font-size:1.1rem;font-weight:800}
.sh-b{flex:1;overflow-y:auto;padding:14px 18px;-webkit-overflow-scrolling:touch}
.sh-f{border-top:1px solid var(--line);padding:14px 18px calc(14px + var(--safe-b));background:#fff}
.line{display:grid;grid-template-columns:60px 1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px dashed var(--line)}
.line .dart{width:60px;height:60px}
.line h4{font:800 1.05rem 'Poppins',sans-serif;line-height:1.1}
.line .up{font-size:.85rem;color:var(--muted);font-weight:700}
.line .up s{color:#8b9b90}
.line .lt{font:800 1.15rem 'Poppins',sans-serif;text-align:right}
.line .mini-step{display:flex;align-items:center;gap:6px;margin-top:6px}
.line .mini-step button{width:34px;height:34px;border-radius:50%;background:var(--mint);font-weight:800;font-size:1.1rem;color:var(--leaf)}
.line .mini-step output{min-width:62px;text-align:center;font-weight:800}
.line .rm{display:block;margin:6px 0 0 auto;font-size:.8rem;color:var(--chilli);font-weight:800;padding:4px}
.line.gone{opacity:.55}
.line.gone .tag{background:#fdeceb;color:#a3190f;border-radius:99px;padding:2px 10px;font-size:.78rem;font-weight:800}
.free{background:var(--mint);border-radius:16px;padding:10px 14px;margin-bottom:8px;font-weight:700;font-size:.92rem}
.free i{display:block;height:8px;border-radius:99px;background:#fff;margin-top:6px;overflow:hidden}
.free i b{display:block;height:100%;background:var(--leaf2);border-radius:99px}
.tots{font-weight:700}
.tots div{display:flex;justify-content:space-between;padding:2px 0}
.tots .save{color:var(--leaf)}
.tots .grand{font:800 1.4rem 'Poppins',sans-serif;border-top:2px solid var(--ink);margin-top:6px;padding-top:8px}
.sh-f .btn{width:100%;margin-top:10px;min-height:54px;font-size:1.05rem}
.emptyc{text-align:center;padding:50px 10px;color:var(--muted);font-weight:700}
.emptyc big{display:block;margin-bottom:6px}

/* checkout form */
.back{font-weight:800;color:var(--leaf);padding:6px 0 10px}
.fld{display:block;margin:0 0 14px;font-weight:800;font-size:.92rem}
.fld input,.fld textarea,.fld select,.ai{display:block;width:100%;min-height:50px;margin-top:5px;border:2px solid var(--line);border-radius:14px;padding:10px 14px;background:#fff;font-weight:600}
.fld textarea{min-height:84px;resize:vertical}
.fld input:focus,.fld textarea:focus,.fld select:focus,.ai:focus{border-color:var(--leaf2);outline:none}
.fld.err input,.fld.err textarea{border-color:var(--chilli);background:#fff6f5}
.fld .em{display:none;color:var(--chilli);font-size:.85rem;margin-top:4px}
.fld.err .em{display:block}
.fs{border:0;margin:0 0 14px}
.fs legend{font-weight:800;font-size:.92rem;margin-bottom:6px}
.opts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.opt{position:relative;display:block;cursor:pointer}
.opt input{position:absolute;opacity:0}
.opt span{display:block;border:2px solid var(--line);border-radius:16px;padding:10px 12px;font-weight:800;line-height:1.25;height:100%}
.opt span small{display:block;font-weight:600;color:var(--muted);font-size:.8rem}
.opt input:checked+span{border-color:var(--leaf2);background:var(--mint)}
.opt input:focus-visible+span{outline:3px solid var(--turmeric)}
.opt input:disabled+span{opacity:.5}
.locbox{background:var(--mint);border-radius:18px;padding:14px;margin-bottom:14px}
.locbox .btn{width:100%}
.locbox p{font-size:.88rem;font-weight:700;margin-top:8px;color:var(--muted)}
.locbox p.ok{color:var(--leaf)}.locbox p.bad{color:var(--chilli)}
.locbox a{color:var(--leaf)}
.sum{background:#f7fbf5;border:1px solid var(--line);border-radius:16px;padding:10px 14px;font-size:.9rem;font-weight:600}
.sum div{display:flex;justify-content:space-between;gap:10px;padding:2px 0}

/* modals / thank-you cards */
.modal{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:18px;background:rgba(8,28,18,.68);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);overflow:auto;perspective:1000px}
.tc{position:relative;width:min(430px,100%);border-radius:34px;background:linear-gradient(155deg,#fff 0,#eefaf0 70%,#e0f5e5 100%);padding:38px 26px 28px;text-align:center;box-shadow:0 40px 70px -24px rgba(0,0,0,.6);transform-style:preserve-3d;animation:cardIn 1s cubic-bezier(.2,.9,.3,1.15) backwards}
@keyframes cardIn{from{opacity:0;transform:perspective(900px) rotateX(-75deg) rotateY(28deg) scale(.7)}to{opacity:1;transform:perspective(900px) rotateX(0) rotateY(0) scale(1)}}
.tc .hand{font-size:3.4rem;line-height:1;transform:translateZ(60px);display:inline-block;animation:bob 3.6s ease-in-out infinite}
.tc .kn{font-weight:800;color:var(--leaf);margin-top:8px}
.tc h2{font-size:2.1rem;margin:4px 0 10px;transform:translateZ(30px)}
.tc p{color:#34503f;font-weight:600;margin-bottom:10px}
.tc .btn{margin-top:8px;width:100%}
.tc small{display:block;margin-top:14px;color:var(--muted);font-weight:700}
.tc .fl{position:absolute;font-size:2rem;animation:bob 4s ease-in-out infinite}
.tc .fl.a{left:-10px;top:30px;transform:translateZ(80px)}.tc .fl.b{right:-8px;top:90px;transform:translateZ(70px);animation-delay:-1.5s}.tc .fl.c{left:8px;bottom:-14px;transform:translateZ(60px);animation-delay:-2.5s}
.tc .ono{display:inline-block;background:var(--deep);color:var(--lime);border-radius:99px;padding:4px 16px;font-weight:800;margin-bottom:10px}
.tc .stepbox{background:#fff7df;border:2px dashed var(--turmeric);border-radius:16px;padding:10px 14px;font-weight:800;color:#6a4700;margin-bottom:8px}
.plainbox{width:min(400px,100%);background:#fff;border-radius:22px;padding:26px 22px;text-align:center;box-shadow:0 30px 60px -20px rgba(0,0,0,.5)}
.plainbox h2{font-size:1.7rem;margin-bottom:8px}
.plainbox p{font-weight:600;margin-bottom:12px}
.plainbox .btn{width:100%;margin-top:8px}
.stepbox{background:#fff7df;border:2px dashed var(--turmeric);border-radius:16px;padding:10px 14px;font-weight:800;color:#6a4700;margin-bottom:8px}
.toast{position:fixed;left:50%;bottom:calc(90px + var(--safe-b));transform:translate(-50%,30px);background:var(--deep);color:#fff;padding:12px 20px;border-radius:99px;font-weight:800;z-index:150;opacity:0;pointer-events:none;transition:.3s;max-width:90vw;text-align:center;box-shadow:0 14px 24px -10px rgba(0,0,0,.5)}
.toast.show{opacity:1;transform:translate(-50%,0)}
.toast.bad{background:var(--chilli)}

/* ---------- admin ---------- */
body.is-admin{background:#eef3ee}
body.is-admin .announce,body.is-admin .top,body.is-admin .wafloat,body.is-admin .cartbar{display:none!important}
.ahead{position:sticky;top:0;z-index:30;background:var(--deep);color:#fff}
.abar{display:flex;align-items:center;gap:14px;height:56px}
.abar b{font:800 1.2rem 'Poppins',sans-serif}
.aback{color:#fff;font-weight:800;text-decoration:none;background:rgba(255,255,255,.14);border-radius:99px;padding:7px 16px}
.astat{margin-left:auto;font-weight:800;font-size:.85rem;text-align:right}
.astat.ok{color:var(--lime)}.astat.bad{color:#ffb4ac}
.atabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:10px;scrollbar-width:none}
.atabs button{flex:0 0 auto;height:42px;padding:0 18px;border-radius:99px;background:rgba(255,255,255,.12);color:#fff;font-weight:800}
.atabs button.on{background:var(--lime);color:var(--deep)}
.apanel{padding-top:18px;padding-bottom:80px}
.login{max-width:420px;margin:7vh auto;background:#fff;border-radius:28px;padding:30px 26px;box-shadow:var(--shadow);text-align:center}
.login .ic{width:44px;height:44px;color:var(--leaf)}
.login h1{font-size:2rem;margin:6px 0 6px}
.login p{color:var(--muted);font-weight:600;margin-bottom:16px}
.login .fld{text-align:left}
.login .err{color:var(--chilli);font-weight:800;margin-bottom:10px;min-height:1.2em}
.atools{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.atools .ai{margin:0;flex:1 1 180px}
.hint{background:#fff;border-left:5px solid var(--turmeric);border-radius:12px;padding:10px 14px;font-weight:600;margin-bottom:14px;color:#3d4f43}
.arow{display:grid;grid-template-columns:84px 1fr auto;gap:14px;background:#fff;border-radius:22px;padding:14px;margin-bottom:12px;box-shadow:0 8px 20px -14px rgba(13,59,37,.5);align-items:start}
.arow.off{background:#fff6f5}
.thumb{position:relative;width:84px;height:84px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:var(--mint)}
.thumb .emo{font-size:2.9rem}
.thumb img{width:100%;height:100%}.thumb img.photo{object-fit:cover}.thumb img.svg{object-fit:contain;padding:8%}
.thumb::after{content:'Change';position:absolute;inset:auto 0 0 0;background:rgba(13,59,37,.82);color:#fff;font-size:.72rem;font-weight:800;padding:3px 0 5px}
.f2,.f4{display:grid;gap:10px;margin-bottom:8px}
.f2{grid-template-columns:1fr 1fr}.f4{grid-template-columns:1.2fr 1fr 1fr 1fr}
.arow label{font-weight:800;font-size:.78rem;color:var(--muted)}
.arow .ai{min-height:44px;margin-top:3px;padding:6px 10px}
.apreview{font-weight:800;padding:2px 2px}
.apreview s{color:#8b9b90;margin:0 4px}.apreview b{font:800 1.3rem 'Poppins',sans-serif;color:var(--leaf)}
.tagx{display:inline-block;margin-left:6px;background:var(--chilli);color:#fff;border-radius:99px;padding:2px 10px;font-size:.78rem}
.acts{display:flex;flex-direction:column;gap:10px;align-items:flex-end}
.sw{display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:800;position:relative}
.sw input{position:absolute;opacity:0}
.sw span{width:48px;height:27px;border-radius:99px;background:#c4cdc7;position:relative;transition:.2s;flex:0 0 auto}
.sw span::after{content:'';position:absolute;top:3px;left:3px;width:21px;height:21px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 2px 4px rgba(0,0,0,.3)}
.sw input:checked+span{background:var(--leaf2)}.sw input:checked+span::after{left:24px}
.sw input:focus-visible+span{outline:3px solid var(--turmeric)}
.sw em{font-style:normal;font-size:.85rem}
.del{color:var(--chilli);font-weight:800;padding:6px 10px;border-radius:10px}
.del:hover{background:#fdeceb}
.box{background:#fff;border-radius:22px;padding:20px;margin-bottom:16px;box-shadow:0 8px 20px -14px rgba(13,59,37,.5)}
.box h3{font-size:1.3rem;margin-bottom:10px}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.orow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px dashed var(--line);font-weight:700}
.ord{background:#fff;border-radius:22px;padding:16px;margin-bottom:12px;box-shadow:0 8px 20px -14px rgba(13,59,37,.5)}
.ord header{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.ord header b{font:800 1.2rem 'Poppins',sans-serif}
.ord p{font-weight:600;font-size:.93rem;margin:3px 0}
.ord .btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.ord .btns .btn{min-height:40px;padding:0 16px;font-size:.9rem}
.ord select{height:40px;border-radius:99px;border:2px solid var(--line);padding:0 12px;font-weight:800;background:#fff}
.heroGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:12px}
.hs{text-align:center}
.hp{height:100px;display:grid;place-items:center;background:var(--deep);border-radius:16px;margin-bottom:6px}
.hp img{height:100%;width:100%;object-fit:cover;border-radius:16px}
.hs .btn{min-height:38px;padding:0 14px;font-size:.88rem;cursor:pointer}
.pe{text-align:left}.pe h3{font-size:1.4rem;text-align:center;margin-bottom:12px}
.pe .pv{width:150px;height:150px;margin:0 auto 14px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:var(--mint)}
.pe .pv .emo{font-size:5rem}.pe .pv img{width:100%;height:100%}.pe .pv img.photo{object-fit:cover}.pe .pv img.svg{object-fit:contain;padding:10%}
.pe .row{display:flex;gap:8px;margin-top:10px}
.pe .row input{flex:1;min-height:46px;border:2px solid var(--line);border-radius:14px;padding:0 12px}
.pe .btn{margin-top:10px}
@media(max-width:760px){
  .arow{grid-template-columns:84px 1fr}
  .acts{grid-column:1/-1;flex-direction:row;justify-content:space-between;align-items:center}
  .f2{grid-template-columns:1fr}.f4{grid-template-columns:1fr 1fr}
  .g2,.g3{grid-template-columns:1fr}
  .abar .aback{padding:7px 12px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.phwrap{position:relative;display:block;width:100%;height:100%}
.phwrap .fp{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
