/* ============================================================
   Our Menu — "Savor the Oak. Discover the Ivy."
   ivy green + cream paper + gold, floral corners from the print menu
   ============================================================ */
:root{--fm-green:#163a2c;--fm-green-2:#21533f;--fm-cream:#fbf6ea;--fm-paper:#fffdf7;--fm-gold:var(--c-primary,#c9974b);--fm-ink:#22302a;--fm-muted:#76807a;--fm-line:#e7dcc3}

/* ---------- hero ---------- */
.fm-hero{position:relative;min-height:74vh;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;overflow:hidden;padding:120px 0 70px}
.fm-hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.08);animation:heroZoom 16s ease-out forwards}
.fm-hero::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(14,38,29,.45),rgba(10,26,20,.85))}
.fm-hero-in{position:relative;z-index:2;width:min(860px,92%)}
.fm-hero-logo{height:96px;margin:0 auto 8px;filter:drop-shadow(0 4px 14px rgba(0,0,0,.35));opacity:0;animation:fadeUp 1s .2s forwards}
.fm-hero .rule{letter-spacing:6px;font-size:12.5px;text-transform:uppercase;color:#e9d9b4;opacity:0;animation:fadeUp 1s .35s forwards}
.fm-hero h1{color:#fff;font-size:clamp(46px,8vw,92px);margin:4px 0 0;line-height:1;opacity:0;animation:fadeUp 1s .5s forwards;text-shadow:0 4px 30px rgba(0,0,0,.4)}
.fm-hero .fm-script{color:#f1dfae;font-size:clamp(28px,4.4vw,46px);margin:6px 0 14px;opacity:0;animation:fadeUp 1s .65s forwards}
.fm-hero p{color:#dfe8e3;max-width:640px;margin:0 auto;opacity:0;animation:fadeUp 1s .8s forwards}
.fm-hero-pills{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:22px 0 26px;opacity:0;animation:fadeUp 1s .95s forwards}
.fm-hero-pills span{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);backdrop-filter:blur(6px);padding:7px 15px;border-radius:30px;font-size:13.5px}
.fm-hero-cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;opacity:0;animation:fadeUp 1s 1.1s forwards}
.fm-script{font-family:var(--f-accent,'Great Vibes'),cursive;font-weight:400;letter-spacing:.5px}

/* ---------- buttons ---------- */
.fm-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:40px;padding:11px 20px;font:600 14px var(--f-body);cursor:pointer;text-decoration:none;transition:.25s;white-space:nowrap}
.fm-btn:hover{transform:translateY(-1px)}
.fm-btn-primary{background:linear-gradient(135deg,var(--fm-green),var(--fm-green-2));color:#fff;box-shadow:0 8px 22px rgba(22,58,44,.32)}
.fm-btn-primary:hover{color:#fff;box-shadow:0 12px 28px rgba(22,58,44,.42)}
.fm-btn-primary[disabled]{opacity:.55;cursor:not-allowed;transform:none}
.fm-btn-call{background:#fff;color:var(--fm-green);border:1.5px solid var(--fm-green)}
.fm-btn-call:hover{background:var(--fm-green);color:#fff}
.fm-btn-qr{background:var(--fm-cream);color:var(--fm-ink);border:1px solid var(--fm-line)}
.fm-btn-wa{background:#25d366;color:#fff}
.fm-btn-wa:hover{color:#fff;background:#1fb457}
.fm-btn-wa.pulse{animation:waPulse 1.6s infinite}
.fm-btn-ghost{background:transparent;color:var(--fm-muted);border:1px dashed var(--fm-line)}
.fm-btn-gold{background:linear-gradient(135deg,var(--c-primary),var(--c-primary-dark));color:#fff}
.fm-btn-gold:hover{color:#fff}
.fm-btn-light{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.5)}
.fm-btn-light:hover{background:#fff;color:var(--fm-green)}
.fm-wide{width:100%}

/* ---------- wrapper ---------- */
.fm-wrap{background:linear-gradient(180deg,#f3eee1,#f8f4ea 240px,#f6f1e4);padding:34px 0 80px}
.fm{width:min(1280px,94%);margin:0 auto;color:var(--fm-ink)}
.fm-banner{background:#fff4e0;border:1px solid #f0d49a;color:#7a5410;border-radius:14px;padding:12px 16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.fm-banner .fm-btn{margin-left:auto;padding:8px 16px}

/* toolbar */
.fm-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.fm-search{flex:1 1 260px;display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--fm-line);border-radius:40px;padding:0 16px;box-shadow:0 4px 14px rgba(40,50,30,.05)}
.fm-search i{color:var(--fm-muted)}
.fm-search input{border:0;outline:0;background:transparent;padding:12px 0;width:100%;font:15px var(--f-body);color:var(--fm-ink)}
.fm-vegonly{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--fm-line);border-radius:40px;padding:9px 14px;cursor:pointer;font-size:14px;user-select:none}
.fm-vegonly input{display:none}
.fm-vegonly .sw{width:34px;height:20px;border-radius:12px;background:#d8dcd6;position:relative;transition:.25s}
.fm-vegonly .sw::after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:.25s}
.fm-vegonly input:checked + .sw{background:#1e8a3e}
.fm-vegonly input:checked + .sw::after{left:16px}

/* category chips */
.fm-cats{position:sticky;top:64px;z-index:40;display:flex;gap:8px;overflow-x:auto;padding:10px 2px;margin:0 0 18px;background:linear-gradient(180deg,#f4efe3 70%,rgba(244,239,227,0));scrollbar-width:none}
.fm-cats::-webkit-scrollbar{display:none}
.fm-cats a{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:30px;background:#fff;border:1px solid var(--fm-line);color:var(--fm-ink);font-size:14px;font-weight:500;transition:.25s}
.fm-cats a i{color:var(--fm-gold)}
.fm-cats a:hover{border-color:var(--fm-green)}
.fm-cats a.on{background:var(--fm-green);border-color:var(--fm-green);color:#fff;box-shadow:0 6px 16px rgba(22,58,44,.28)}
.fm-cats a.on i{color:#f1dfae}

/* layout */
.fm-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:26px;align-items:start}
@media(max-width:1020px){.fm-layout{grid-template-columns:1fr}.fm-panel{display:none!important}}

/* the "menu book" */
.fm-book{position:relative;background:var(--fm-paper);border-radius:22px;padding:56px clamp(18px,4vw,58px) 40px;
  box-shadow:0 30px 60px -30px rgba(40,50,30,.35),0 0 0 1px #efe4c9,inset 0 0 0 10px var(--fm-paper),inset 0 0 0 11px #e3d3ad;
  background-image:radial-gradient(circle at 15% 10%,rgba(201,151,75,.06),transparent 40%),radial-gradient(circle at 85% 90%,rgba(22,58,44,.05),transparent 45%)}
.fm-corner{position:absolute;width:clamp(110px,16vw,190px);pointer-events:none;opacity:.95;z-index:1}
.fm-corner.tl{top:-14px;left:-14px}
.fm-corner.br{bottom:-14px;right:-14px}
.fm-book-head{text-align:center;margin-bottom:10px;position:relative;z-index:2}
.fm-book-head .fm-script{font-size:clamp(28px,4vw,40px);color:var(--fm-green)}
.fm-legend{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;font-size:12.5px;color:var(--fm-muted);margin-top:6px}
.fm-legend span{display:inline-flex;align-items:center;gap:6px}

/* diet marks (Indian veg / non-veg symbol) */
.diet{display:inline-block;flex:0 0 auto;width:14px;height:14px;border:1.6px solid #1e8a3e;border-radius:3px;position:relative;vertical-align:-1px;margin-right:8px}
.diet::after{content:'';position:absolute;inset:2.5px;border-radius:50%;background:#1e8a3e}
.diet-nonveg{border-color:#a5281b}.diet-nonveg::after{background:#a5281b}
.diet-egg{border-color:#d29b0b}.diet-egg::after{background:#d29b0b}
.diet-both{border-color:#6f6a3a}.diet-both::after{background:linear-gradient(90deg,#1e8a3e 50%,#a5281b 50%)}

/* sections */
.fm-sec{padding:30px 0 6px;position:relative;z-index:2;scroll-margin-top:130px}
.fm-sec + .fm-sec{border-top:1px solid #efe5cc}
.fm-sec-head{text-align:center;margin-bottom:18px;position:relative}
.fm-sec-head[style*="--sec-img"]{padding:34px 16px 22px;border-radius:16px;overflow:hidden;color:#fff;background:linear-gradient(rgba(14,32,25,.62),rgba(14,32,25,.72)),var(--sec-img) center/cover}
.fm-sec-head[style*="--sec-img"] h2,.fm-sec-head[style*="--sec-img"] p{color:#fff}
.fm-sec-ico{display:inline-flex;width:46px;height:46px;border-radius:50%;align-items:center;justify-content:center;background:var(--fm-green);color:#f1dfae;font-size:19px;box-shadow:0 0 0 5px rgba(22,58,44,.08)}
.fm-sec-head h2{font-size:clamp(28px,3.6vw,40px);margin:8px 0 2px;color:var(--fm-green);letter-spacing:.3px}
.fm-sec-head p{font-style:italic;color:var(--fm-muted);font-family:var(--f-heading);font-size:18px}
.fm-sec-head::after{content:'';display:block;width:120px;height:12px;margin:10px auto 0;background:radial-gradient(circle,var(--fm-gold) 0 2.5px,transparent 3px) center/12px 12px no-repeat,linear-gradient(90deg,transparent,var(--fm-gold),transparent) center/100% 1px no-repeat}
.fm-sec-badges{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:8px}
.fm-badge{font-size:12px;padding:4px 11px;border-radius:20px;background:#f3ead4;color:#6f5320;font-weight:500}
.fm-badge.adv{background:#e6efe9;color:var(--fm-green)}

/* items */
.fm-items{display:grid;grid-template-columns:1fr 1fr;column-gap:38px}
@media(max-width:760px){.fm-items{grid-template-columns:1fr}}
.fm-item{display:flex;gap:14px;padding:16px 4px;border-bottom:1px dashed #e4d7b8;transition:background .25s;border-radius:10px}
.fm-item:hover{background:rgba(201,151,75,.05)}
.fm-item.in-cart{background:rgba(30,138,62,.05)}
.fm-thumb{width:78px;height:78px;border-radius:14px;object-fit:cover;flex:0 0 78px;box-shadow:0 6px 16px rgba(0,0,0,.12)}
.fm-i-body{flex:1;min-width:0}
.fm-i-body h4{font-size:20px;line-height:1.25;color:var(--fm-ink);font-weight:600;display:flex;align-items:center;flex-wrap:wrap;gap:4px 0}
.fm-i-body p{font-size:13.5px;color:var(--fm-muted);line-height:1.5;margin-top:3px}
.fm-tag{font:600 10.5px var(--f-body);letter-spacing:.6px;text-transform:uppercase;padding:3px 8px;border-radius:12px;margin-left:8px}
.fm-tag.best{background:#fff1dc;color:#b86a00}
.fm-tag.chef{background:#e6efe9;color:var(--fm-green)}
.fm-tag.new{background:#f2e8fb;color:#7a3db8}
.fm-vars{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.fm-var{border:1px solid var(--fm-line);background:#fff;color:var(--fm-ink);font:12.5px var(--f-body);padding:4px 11px;border-radius:20px;cursor:pointer;transition:.2s}
.fm-var.on{background:var(--fm-green);border-color:var(--fm-green);color:#fff}
.fm-i-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex:0 0 auto}
.fm-price{font-family:var(--f-heading);font-size:22px;font-weight:700;color:#8a6420;white-space:nowrap}
.fm-add{border:1.5px solid var(--fm-green);background:#fff;color:var(--fm-green);font:700 12.5px var(--f-body);letter-spacing:1px;padding:7px 14px;border-radius:30px;cursor:pointer;transition:.2s;white-space:nowrap}
.fm-add:hover,.fm-item.in-cart .fm-add{background:var(--fm-green);color:#fff}
.fm-add:active{transform:scale(.94)}
.fm-sold{font-size:11.5px;color:#a5281b;background:#fbeceb;padding:4px 10px;border-radius:14px;white-space:nowrap}
.fm-item.soldout{opacity:.55;filter:grayscale(.6)}
.fm-note{text-align:center;color:var(--fm-muted);font-size:13px;margin-top:24px;font-style:italic}
.fm-empty{text-align:center;color:var(--fm-muted);padding:40px 0}
.fm-muted{color:var(--fm-muted);font-size:13.5px}

/* desktop order panel */
.fm-panel{position:sticky;top:130px;background:#fff;border-radius:20px;padding:20px;box-shadow:0 20px 50px -24px rgba(40,50,30,.35);border:1px solid #efe5cc;display:flex;flex-direction:column;gap:12px}
.fm-panel h3{font-size:24px;color:var(--fm-green)}
.fm-panel-list{max-height:34vh;overflow:auto;display:flex;flex-direction:column;gap:2px}
.fm-total-row{display:flex;justify-content:space-between;align-items:center;font-size:15px;padding:8px 0;border-top:1px dashed var(--fm-line)}
.fm-total-row b{font-size:22px;font-family:var(--f-heading);color:var(--fm-green)}
.fm-wait{display:flex;gap:10px;align-items:center;background:#f3f7f4;border-radius:12px;padding:10px 12px;font-size:13px;color:#405048}
.fm-wait i{color:var(--fm-green);font-size:17px}
.fm-wait.big{font-size:14px;margin:12px 0;align-items:flex-start}
.fm-wait.big i{font-size:22px;margin-top:2px}
.fm-panel-qr{text-align:center;padding-top:10px;border-top:1px dashed var(--fm-line)}
.fm-panel-qr canvas{margin:0 auto 6px;display:block;box-shadow:0 6px 20px rgba(0,0,0,.08);border-radius:12px}
.fm-panel-qr small{color:var(--fm-muted)}

/* cart lines */
.fm-line{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid #f2ecdc}
.fm-line .diet{margin:0}
.fm-line-name{font-size:14px;line-height:1.3}
.fm-line-name small{display:block;color:var(--fm-muted);font-size:12px}
.fm-line-amt{font-weight:600;font-size:14px;min-width:62px;text-align:right}
.fm-step{display:inline-flex;align-items:center;border:1.5px solid var(--fm-green);border-radius:20px;overflow:hidden}
.fm-step button{border:0;background:#fff;color:var(--fm-green);width:28px;height:28px;font-size:17px;cursor:pointer;line-height:1}
.fm-step button:hover{background:var(--fm-green);color:#fff}
.fm-step b{min-width:22px;text-align:center;font-size:14px}

/* mobile cart bar */
.fm-cartbar{position:fixed;left:12px;right:12px;bottom:16px;z-index:870;background:linear-gradient(135deg,var(--fm-green),var(--fm-green-2));color:#fff;border-radius:16px;padding:12px 14px 12px 18px;display:flex;align-items:center;justify-content:space-between;gap:10px;box-shadow:0 14px 34px rgba(14,38,29,.45)}
.fm-cartbar[hidden]{display:none}
.fm-cartbar div{display:flex;flex-direction:column;line-height:1.2}
.fm-cartbar b{font-size:12.5px;font-weight:500;opacity:.85}
.fm-cartbar span{font-size:19px;font-weight:700}
.fm-cartbar button{border:0;background:#fff;color:var(--fm-green);font:700 14px var(--f-body);padding:10px 16px;border-radius:12px;cursor:pointer}
.fm-cartbar.bump{animation:fmBump .45s ease}
@keyframes fmBump{0%{transform:scale(1)}40%{transform:scale(1.04)}100%{transform:scale(1)}}
@media(min-width:1021px){.fm-cartbar{display:none!important}}
@media(max-width:768px){.fm-cartbar{bottom:76px}body.fm-has-cart .wa-float,body.fm-has-cart .chat-fab{bottom:150px}}
@media(min-width:769px) and (max-width:1020px){body.fm-has-cart .wa-float,body.fm-has-cart .chat-fab{bottom:96px}}

/* sheet / modal */
body.fm-lock{overflow:hidden}
.fm-sheet{position:fixed;inset:0;z-index:1000;background:rgba(12,24,19,.55);backdrop-filter:blur(3px);display:flex;align-items:flex-end;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s}
.fm-sheet.show{opacity:1;pointer-events:auto}
.fm-sheet-box{position:relative;background:#fff;width:min(600px,100%);max-height:92vh;overflow:auto;border-radius:24px 24px 0 0;padding:26px 22px 24px;transform:translateY(40px);transition:transform .3s ease}
.fm-sheet.show .fm-sheet-box{transform:none}
@media(min-width:769px){.fm-sheet{align-items:center}.fm-sheet-box{border-radius:24px;padding:30px 30px 26px}}
.fm-sheet-box h3{font-size:28px;color:var(--fm-green);margin-bottom:10px}
.fm-x{position:absolute;top:12px;right:14px;width:36px;height:36px;border-radius:50%;border:0;background:#f2efe6;font-size:24px;line-height:1;cursor:pointer;color:#555}
.fm-lines{margin-bottom:6px}
.fm-totals div{display:flex;justify-content:space-between;font-size:14px;padding:3px 0;color:#58625c}
.fm-totals .grand{font-size:18px;color:var(--fm-ink);font-weight:700;border-top:1px dashed var(--fm-line);padding-top:8px;margin-top:4px}
#fmForm{margin-top:14px}
#fmForm label{display:block;font-size:13px;color:#55605a;font-weight:500;margin-bottom:10px}
#fmForm .req{color:#c0392b}
#fmForm input,#fmForm textarea{width:100%;margin-top:4px;border:1px solid #dfe3dc;border-radius:12px;padding:11px 13px;font:15px var(--f-body);background:#fbfcfa;transition:.2s}
#fmForm input:focus,#fmForm textarea:focus{outline:0;border-color:var(--fm-green);box-shadow:0 0 0 3px rgba(22,58,44,.12);background:#fff}
.fm-grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
@media(max-width:520px){.fm-grid2{grid-template-columns:1fr}}
.fm-err{background:#fdecec;color:#a93226;border-radius:10px;padding:10px 12px;font-size:14px;margin-bottom:10px}
.fm-actions{display:grid;gap:10px}
.fm-actions .fm-btn{padding:14px 20px;font-size:15px}
.fm-fine{font-size:12px;color:var(--fm-muted);text-align:center;margin-top:10px}

/* done + tracker */
[data-step="done"]{text-align:center}
.fm-done-ico{width:84px;height:84px;border-radius:50%;margin:4px auto 10px;background:linear-gradient(135deg,#1e8a3e,#27ae60);color:#fff;font-size:38px;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 10px rgba(39,174,96,.12);animation:fmPop .55s cubic-bezier(.2,1.6,.4,1)}
@keyframes fmPop{0%{transform:scale(.3);opacity:0}100%{transform:scale(1);opacity:1}}
.fm-code{color:var(--fm-muted)}
.fm-code b{color:var(--fm-ink);letter-spacing:1px}
.fm-eta{margin:16px auto;background:var(--fm-cream);border:1px solid var(--fm-line);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:2px;max-width:320px}
.fm-eta span{font-size:12.5px;text-transform:uppercase;letter-spacing:1.5px;color:var(--fm-muted)}
.fm-eta b{font-size:34px;font-family:var(--f-heading);color:var(--fm-green);line-height:1.1}
.fm-eta small{color:#8a6420;font-weight:500}
.fm-track{list-style:none;display:flex;justify-content:space-between;margin:18px 0 18px;padding:0;position:relative}
.fm-track::before{content:'';position:absolute;top:19px;left:8%;right:8%;height:3px;background:#ece6d6;border-radius:2px}
.fm-track li{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:11.5px;color:#9aa29d}
.fm-track li i{width:40px;height:40px;border-radius:50%;background:#fff;border:2px solid #e2dccb;display:flex;align-items:center;justify-content:center;font-size:15px;transition:.3s}
.fm-track li.done{color:var(--fm-green)}
.fm-track li.done i{background:var(--fm-green);border-color:var(--fm-green);color:#fff}
.fm-track li.now i{box-shadow:0 0 0 6px rgba(22,58,44,.15);animation:fmNow 1.6s infinite}
@keyframes fmNow{50%{box-shadow:0 0 0 10px rgba(22,58,44,.05)}}
.fm-cancelled{color:#a93226;background:#fdecec;padding:10px;border-radius:10px;margin-bottom:12px}
[data-step="done"] .fm-btn{margin-top:8px;padding:13px 18px}

/* QR modal + public QR block */
.fm-qr-box{text-align:center;max-width:420px}
.fm-qr-box canvas{margin:8px auto 10px;display:block;border-radius:16px;box-shadow:0 12px 30px rgba(0,0,0,.12)}
.fm-qr-box .fm-btn{margin-top:12px}
.fm-qrband{background:linear-gradient(135deg,var(--fm-green),#0f2a20);color:#fff;border-radius:24px;padding:32px clamp(18px,4vw,48px);display:grid;grid-template-columns:auto 1fr;gap:34px;align-items:center;margin-top:34px;position:relative;overflow:hidden}
.fm-qrband::after{content:'';position:absolute;right:-60px;top:-60px;width:260px;height:260px;border-radius:50%;background:rgba(241,223,174,.07)}
.fm-qrband canvas{border-radius:18px;box-shadow:0 18px 40px rgba(0,0,0,.35)}
.fm-qrband h3{color:#fff;font-size:clamp(28px,3.4vw,40px)}
.fm-qrband .fm-script{color:#f1dfae;font-size:30px}
.fm-qrband p{color:#cfe0d6;margin:8px 0 16px}
.fm-qrband .fm-steps{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:18px}
.fm-qrband .fm-steps span{display:flex;align-items:center;gap:8px;font-size:14px;color:#e6efe9}
.fm-qrband .fm-steps b{width:28px;height:28px;border-radius:50%;background:#f1dfae;color:var(--fm-green);display:flex;align-items:center;justify-content:center;font-size:13px}
@media(max-width:700px){.fm-qrband{grid-template-columns:1fr;text-align:center}.fm-qrband canvas{margin:0 auto}.fm-qrband .fm-steps{justify-content:center}}

/* account: my food orders */
.fo-list{display:grid;gap:10px}
.fo-card{background:#fff;border:1px solid #efe5cc;border-radius:14px;padding:12px 16px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:center}
.fo-st{font-size:12px;font-weight:600;padding:4px 11px;border-radius:14px;color:#fff}
