/* ============================================================
   Naughty Pine — /menu page styles
   Loaded ALONGSIDE styles.css, never instead of it. Kept separate
   so building this page does not invalidate the homepage's cached
   stylesheet for returning visitors. Bump menu.css?v= when edited.
   Tokens (--pine, --amber, --cream...) come from styles.css :root.
   ============================================================ */

.mhead{
  background:linear-gradient(165deg,var(--pine) 0%,var(--pine-700) 55%,var(--charcoal) 100%);
  color:var(--cream);
  padding:148px 24px 64px;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.mhead::after{
  content:"";position:absolute;inset:auto 0 -1px 0;height:90px;
  background:linear-gradient(to bottom,transparent,var(--cream));
  pointer-events:none;
}
.mhead__inner{max-width:760px;margin:0 auto;position:relative;z-index:1}
.mhead h1{
  font-family:Fraunces,Georgia,serif;font-weight:800;
  font-size:clamp(2.4rem,6vw,4rem);line-height:1.04;margin:.2em 0 .3em;
  color:var(--white);
}
.mhead p{font-size:clamp(1rem,2.2vw,1.18rem);line-height:1.6;color:#e6dcc6;margin:0 auto;max-width:56ch}
.mhead__meta{
  margin-top:26px;display:flex;gap:10px;justify-content:center;flex-wrap:wrap;
  font-size:.88rem;color:#cbbfa6;
}
.mhead__meta span{
  background:rgba(255,253,248,.09);border:1px solid rgba(255,253,248,.16);
  padding:7px 14px;border-radius:999px;
}

/* sticky section jump bar */
.mjump{
  position:sticky;top:100px;z-index:40;
  background:var(--cream);border-bottom:1px solid rgba(27,23,20,.1);
  box-shadow:0 6px 18px -14px rgba(27,23,20,.5);
}
.mjump__scroll{
  max-width:var(--maxw);margin:0 auto;display:flex;gap:4px;
  overflow-x:auto;padding:10px 16px;scrollbar-width:none;-webkit-overflow-scrolling:touch;
}
.mjump__scroll::-webkit-scrollbar{display:none}
.mjump a{
  flex:0 0 auto;text-decoration:none;color:var(--ink);font-weight:600;font-size:.9rem;
  padding:8px 15px;border-radius:999px;white-space:nowrap;transition:background .18s var(--ease),color .18s var(--ease);
}
.mjump a:hover{background:rgba(30,58,43,.09)}
.mjump a.is-active{background:var(--pine);color:var(--cream)}

.mwrap{max-width:var(--maxw);margin:0 auto;padding:56px 24px 96px}

.msec{margin:0 0 62px;scroll-margin-top:172px}
.msec__head{
  display:flex;align-items:baseline;gap:16px;margin:0 0 6px;
  border-bottom:2px solid rgba(30,58,43,.18);padding-bottom:12px;
}
.msec__head h2{
  font-family:Fraunces,Georgia,serif;font-weight:800;
  font-size:clamp(1.55rem,3.4vw,2.1rem);color:var(--pine);margin:0;line-height:1.1;
}
.msec__note{font-size:.95rem;color:var(--muted);margin:14px 0 4px;line-height:1.6;max-width:70ch}

.mlist{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:4px}
@media(min-width:860px){ .mlist{grid-template-columns:1fr 1fr;gap:4px 44px} }

.mitem{
  padding:15px 14px;border-radius:12px;
  transition:background .18s var(--ease),transform .18s var(--ease);
}
.mitem:hover{background:rgba(30,58,43,.05);transform:translateY(-1px)}
.mitem__top{display:flex;align-items:baseline;gap:10px}
.mitem__name{
  font-weight:700;color:var(--ink);font-size:1.02rem;line-height:1.3;
}
.mitem__dots{
  flex:1 1 auto;border-bottom:1px dotted rgba(27,23,20,.3);
  transform:translateY(-4px);min-width:18px;
}
.mitem__price{font-weight:700;color:var(--amber-700);font-size:1.02rem;white-space:nowrap}
.mitem__price--ask{font-weight:600;color:var(--muted);font-size:.9rem;font-style:italic}
.mitem__desc{margin:5px 0 0;font-size:.93rem;line-height:1.55;color:var(--muted);max-width:52ch}

.mflag{
  display:inline-block;margin-left:8px;font-size:.7rem;font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;color:var(--amber-700);background:rgba(200,119,46,.13);
  padding:3px 8px;border-radius:999px;vertical-align:middle;
}

/* one-price groups (kids, wings) */
.mflat{
  background:var(--white);border:1px solid rgba(27,23,20,.1);border-radius:var(--radius);
  padding:24px 26px;margin:22px 0 0;box-shadow:var(--shadow-sm);
}
.mflat__price{
  font-family:Fraunces,Georgia,serif;font-weight:800;color:var(--amber-700);
  font-size:1.5rem;line-height:1;margin:0 0 6px;
}
.mflat__items{margin:12px 0 0;font-size:1rem;line-height:1.85;color:var(--ink)}

/* bar callout */
.mbar-cta{
  background:linear-gradient(160deg,var(--pine) 0%,var(--pine-700) 100%);
  color:var(--cream);border-radius:var(--radius-lg);padding:44px 34px;text-align:center;
  box-shadow:var(--shadow);margin:8px 0 0;
}
.mbar-cta h2{font-family:Fraunces,Georgia,serif;font-weight:800;font-size:clamp(1.5rem,3.4vw,2rem);color:var(--white);margin:0 0 10px}
.mbar-cta p{color:#ddd2ba;margin:0 auto 22px;max-width:52ch;line-height:1.65}

/* order band */
.morder{
  text-align:center;background:var(--white);border:1px solid rgba(27,23,20,.1);
  border-radius:var(--radius-lg);padding:46px 30px;box-shadow:var(--shadow-sm);margin:70px 0 0;
}
.morder h2{font-family:Fraunces,Georgia,serif;font-weight:800;font-size:clamp(1.6rem,3.6vw,2.2rem);color:var(--pine);margin:0 0 10px}
.morder p{color:var(--muted);margin:0 auto 26px;max-width:50ch;line-height:1.65}
.morder__btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
/* .btn--ghost is white-on-dark by design (it lives on the hero). On this
   light card it would be invisible, so re-colour it here, exactly the way
   styles.css already does for .careers .btn--ghost. */
.morder .btn--ghost{color:var(--pine);border-color:rgba(30,58,43,.4)}
.morder .btn--ghost:hover{background:rgba(30,58,43,.08);border-color:var(--pine)}

.mnote{
  margin:54px auto 0;max-width:70ch;text-align:center;
  font-size:.86rem;line-height:1.7;color:var(--muted);
}

@media(max-width:760px){
  .mhead{padding:116px 20px 52px}
  .mwrap{padding:40px 18px 80px}
  .msec{margin-bottom:48px}
  .mitem{padding:13px 10px}
}

/* The nav's own breakpoint is 600px, not 760px: styles.css drops .nav__tree
   from 84px to 60px there, taking the fixed nav from ~100px to ~76px. The
   jump bar has to pin to whatever the nav actually measures or it tucks
   underneath it, so these offsets track THAT breakpoint deliberately. */
@media(max-width:600px){
  .mjump{top:76px}
  .msec{scroll-margin-top:148px}
  .mhead{padding:98px 18px 46px}
}

/* ============================================================
   Edit mode (staging only, ?edit=<token>)
   Descriptions become editable in place so the kitchen can write
   their own copy without an account. None of this renders for a
   normal visitor: .is-editing is only set when a token is present.
   ============================================================ */

.mitem__desc.is-prompt{color:#a99e8c;font-style:italic}

.is-editing .mitem__desc{
  border:1px dashed rgba(30,58,43,.28);border-radius:8px;
  padding:7px 10px;margin-top:8px;min-height:1.2em;cursor:text;
  transition:border-color .15s var(--ease),background .15s var(--ease);
  max-width:none;
}
.is-editing .mitem__desc:hover{border-color:rgba(30,58,43,.5);background:rgba(255,253,248,.7)}
.is-editing .mitem__desc:focus{
  outline:none;border-style:solid;border-color:var(--amber);
  background:var(--white);box-shadow:0 0 0 3px rgba(200,119,46,.16);
}
.is-editing .mitem__desc.is-dirty{
  border-style:solid;border-color:var(--pine-soft);background:rgba(58,107,79,.07);
}
.is-editing .mitem__desc.is-dirty::after{
  content:"unsaved";float:right;font-size:.68rem;font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;color:var(--pine-soft);margin-left:10px;
}
/* keep the save bar from covering the last section */
.is-editing .mwrap{padding-bottom:180px}
.is-editing .mbar{display:none}

.medit{
  position:fixed;left:0;right:0;bottom:0;z-index:80;
  background:var(--charcoal);color:var(--cream);
  box-shadow:0 -12px 34px -18px rgba(0,0,0,.8);
  padding:12px 18px;padding-bottom:calc(12px + env(safe-area-inset-bottom));
}
.medit__inner{
  max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;gap:16px;flex-wrap:wrap;
}
.medit__stat{font-size:.92rem;color:#cdbfa8}
.medit__stat strong{color:var(--cream);font-size:1.1rem}
.medit__pending{color:var(--amber);font-weight:600}
.medit__who{font-size:.9rem;color:#cdbfa8;display:flex;align-items:center;gap:8px}
.medit__who select{
  font:inherit;padding:7px 10px;border-radius:8px;border:1px solid rgba(247,241,227,.3);
  background:rgba(247,241,227,.08);color:var(--cream);
}
.medit__who select option{color:#1b1714}
.medit #meditSave{margin-left:auto}
.medit #meditSave:disabled{opacity:.45;cursor:not-allowed}
.medit__msg{font-size:.88rem;color:#cdbfa8;flex-basis:100%}
.medit__msg--ok{color:#8fd0a6}
.medit__msg--warn{color:#f0b46a}

@media(max-width:700px){
  .medit__inner{gap:10px}
  .medit__stat{flex-basis:100%}
  .medit #meditSave{margin-left:0;flex:1}
  .medit__who{flex:1}
}
.medit__hint{font-size:.82rem;color:#9b907f;flex-basis:100%;margin-top:-2px}
@media(min-width:900px){.medit__hint{flex-basis:auto;margin-top:0}}

/* Invalid edit link: say so immediately, before anyone types a word. */
.medit--dead{background:#5a2020;color:#ffe9e0}
.medit--dead .medit__inner{gap:18px;align-items:center}
.medit--dead strong{color:#fff}
.medit--dead a{margin-left:auto;flex:0 0 auto}

/* ============================================================
   Preview mode (?view=preview) — the read-only view to share
   with the owner. No editing, no cart, and the gaps are shown
   rather than hidden, because seeing what is outstanding is
   the point of sending it.
   ============================================================ */
.is-preview .mitem__desc.is-pending{
  color:#a99e8c;font-style:italic;
  border-left:2px solid rgba(200,119,46,.45);padding-left:10px;
}
.is-preview .mwrap{padding-bottom:150px}
.is-preview .mbar{display:none}

.mprev{
  position:fixed;left:0;right:0;bottom:0;z-index:80;
  background:var(--charcoal);color:var(--cream);
  box-shadow:0 -12px 34px -18px rgba(0,0,0,.8);
  padding:14px 18px;padding-bottom:calc(14px + env(safe-area-inset-bottom));
}
.mprev__inner{max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.mprev__txt{font-size:.92rem;color:#cdbfa8;flex:0 0 auto}
.mprev__txt strong{color:var(--cream);font-size:1.05rem}
.mprev__bar{flex:1;min-width:160px;height:8px;border-radius:999px;background:rgba(247,241,227,.16);overflow:hidden}
.mprev__bar span{display:block;height:100%;border-radius:999px;background:var(--amber);transition:width .6s var(--ease)}
@media(max-width:700px){ .mprev__txt{flex-basis:100%} }

/* ============================================================
   Per-dish photo upload (edit mode) and display (preview).
   ============================================================ */
.mphoto{margin-top:10px}
.mphoto__add{
  display:inline-flex;align-items:center;gap:7px;
  background:none;border:1px dashed rgba(30,58,43,.35);border-radius:9px;
  padding:7px 13px;font:inherit;font-size:.84rem;font-weight:600;
  color:var(--muted);cursor:pointer;transition:all .15s var(--ease);
}
.mphoto__add:hover{border-color:var(--amber);color:var(--amber-700);background:rgba(200,119,46,.07)}
.mphoto__cam{font-size:.95rem}
.mphoto__img{
  display:block;width:100%;max-width:260px;aspect-ratio:4/3;object-fit:cover;
  border-radius:10px;border:1px solid rgba(27,23,20,.14);background:var(--cream-2);
}
.mphoto__row{display:flex;align-items:center;gap:12px;margin-top:7px;flex-wrap:wrap}
.mphoto__ok{font-size:.78rem;font-weight:700;color:var(--pine-soft)}
.mphoto__btn{
  background:none;border:0;padding:0;font:inherit;font-size:.78rem;font-weight:600;
  color:var(--muted);text-decoration:underline;cursor:pointer;
}
.mphoto__btn:hover{color:var(--ink)}
.mphoto__btn--del:hover{color:#a3342a}
.mphoto__busy{font-size:.82rem;color:var(--amber-700);font-weight:600;padding:9px 0}
.mphoto--view .mphoto__img{max-width:300px}
/* The cart runs in preview too, so the owner can build an order and see how
   it works. Its button has to clear the progress bar pinned to the bottom. */
.is-preview .np-cartbtn{bottom:96px}
@media(max-width:700px){ .is-preview .np-cartbtn{bottom:132px} }

/* What the upgrade engine earned on this order. The number an owner
   actually cares about, so it is stated in the cart and on the receipt. */
.np-uplift{
  display:flex;align-items:center;gap:6px;margin:0 0 10px;padding:8px 11px;
  border-radius:9px;background:rgba(58,107,79,.1);border:1px solid rgba(58,107,79,.25);
  font-size:.82rem;color:var(--pine);line-height:1.4;
}
.np-uplift strong{color:var(--pine-soft);font-size:.92rem}
.np-uplift__arrow{color:var(--pine-soft);font-weight:800}
.np-rc__sub--up{color:var(--pine-soft);font-weight:600}

/* Editable dish names. Kept visually quieter than the description boxes so
   the page still reads as a menu, not a form. */
.is-editing .mitem__name.is-nameedit{
  border-bottom:1px dashed rgba(30,58,43,.3);cursor:text;padding-bottom:1px;
  transition:border-color .15s var(--ease),background .15s var(--ease);
}
.is-editing .mitem__name.is-nameedit:hover{border-bottom-color:rgba(30,58,43,.6)}
.is-editing .mitem__name.is-nameedit:focus{
  outline:none;border-bottom:1px solid var(--amber);
  background:rgba(200,119,46,.08);border-radius:3px;
}
.is-editing .mitem__name.is-nameedit.is-dirty{
  border-bottom:1px solid var(--pine-soft);background:rgba(58,107,79,.09);border-radius:3px;
}

/* Section picker on each row, so the kitchen can move a dish out of
   whichever section I guessed it into. */
.msec-pick{
  display:inline-flex;align-items:center;gap:7px;margin-top:9px;
  font-size:.76rem;font-weight:600;color:var(--muted);
}
.msec-pick select{
  font:inherit;font-size:.78rem;padding:4px 8px;border-radius:7px;
  border:1px solid rgba(27,23,20,.2);background:var(--white);color:var(--ink);
}
.msec-pick select:focus{outline:none;border-color:var(--amber)}
.is-editing .msec__note.is-noteedit{
  border:1px dashed rgba(30,58,43,.28);border-radius:8px;padding:6px 10px;cursor:text;
}
.is-editing .msec__note.is-noteedit:focus{
  outline:none;border-style:solid;border-color:var(--amber);background:var(--white);
}

/* Section add-ons, e.g. proteins on the salads. */
.msec__addons{
  font-size:.86rem;color:var(--amber-700);font-weight:600;
  margin:6px 0 0;line-height:1.6;
}
.is-editing .msec__addons.is-noteedit{
  border:1px dashed rgba(200,119,46,.4);border-radius:8px;padding:6px 10px;cursor:text;
  color:var(--muted);font-weight:500;
}

/* Seasonal items from the rotating Branching Out board. They sort to the end
   of their section and say so, because the permanent menu is what leads. */
.mitem.is-seasonal .mitem__name::after{
  content:"Seasonal";margin-left:9px;font-size:.62rem;font-weight:700;
  letter-spacing:.05em;text-transform:uppercase;color:var(--amber-700);
  background:rgba(200,119,46,.14);padding:2px 7px;border-radius:999px;vertical-align:middle;
}
.mseason{
  background:none;border:1px solid rgba(27,23,20,.2);border-radius:7px;
  padding:3px 9px;font:inherit;font-size:.72rem;font-weight:600;
  color:var(--muted);cursor:pointer;margin-right:4px;
}
.mseason:hover{border-color:var(--amber);color:var(--amber-700)}

/* A dish taken off the menu. Invisible to customers, greyed while editing. */
.is-editing .mitem.is-retired{opacity:.42}
.is-editing .mitem.is-retired .mitem__name::before{
  content:"Removed";margin-right:8px;font-size:.62rem;font-weight:700;
  letter-spacing:.05em;text-transform:uppercase;color:#a3342a;
  background:rgba(163,52,42,.12);padding:2px 7px;border-radius:999px;vertical-align:middle;
}
.mseason--off:hover{border-color:#a3342a;color:#a3342a}
/* the Kids card fields are editable now too */
.is-editing .mflat__price.is-noteedit,
.is-editing .mflat__items.is-noteedit{
  border:1px dashed rgba(30,58,43,.28);border-radius:8px;padding:6px 10px;cursor:text;
}

/* Adding dishes (Sarah, 2026-10-18): a button under each section opens a
   short form; prices are editable in place like names and descriptions. */
.madd{
  display:inline-flex;align-items:center;gap:8px;align-self:center;margin-left:4px;
  padding:5px 14px 5px 5px;border-radius:999px;cursor:pointer;
  border:1.5px solid var(--amber);background:var(--white);color:var(--amber-700);
  font:inherit;font-weight:700;font-size:.86rem;white-space:nowrap;
}
.madd__plus{
  display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;
  background:var(--amber);color:#fff;font-size:1.15rem;line-height:1;
}
.madd:hover{background:rgba(200,119,46,.1)}
.msec__head{flex-wrap:wrap}
.maddf{
  display:grid;gap:10px;margin:10px 0 6px;padding:14px;border-radius:12px;
  border:1px solid rgba(30,58,43,.22);background:var(--white);
}
.maddf label{display:grid;gap:4px;font-size:.8rem;font-weight:700;color:var(--muted)}
.maddf input,.maddf textarea{
  font:inherit;font-size:.95rem;font-weight:400;padding:8px 10px;border-radius:8px;
  border:1px solid rgba(27,23,20,.2);background:var(--white);color:var(--ink);width:100%;box-sizing:border-box;
}
.maddf input:focus,.maddf textarea:focus{outline:none;border-color:var(--amber)}
.maddf .maddf__check{display:flex;align-items:center;gap:8px;color:var(--ink)}
.maddf .maddf__check input{width:auto}
.maddf__row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.maddf__row[hidden],.maddf__one[hidden],.madd[hidden]{display:none}
.maddf__go{display:flex;gap:8px;flex-wrap:wrap}
.is-editing .mitem__price.is-priceedit{
  border-bottom:1px dashed rgba(200,119,46,.55);cursor:text;padding:0 2px;
}
.is-editing .mitem__price.is-priceedit:focus{outline:none;border-bottom-style:solid;background:var(--white)}
.mitem.is-new{animation:mnew 2.4s ease-out}
@keyframes mnew{from{background:rgba(200,119,46,.18)}to{background:transparent}}
.is-editing .mhead p.is-noteedit{
  border:1px dashed rgba(255,255,255,.4);border-radius:8px;padding:6px 10px;cursor:text;
}
.is-editing .mhead p.is-noteedit:focus{outline:none;border-style:solid;border-color:var(--amber)}

/* Toast check (?view=toast): the readout for whoever keeps Toast in step
   with the website. Plain table, prints cleanly. */
.tsheet{max-width:1180px;margin:0 auto;padding:130px 20px 60px}
.tsheet h1{font-family:Fraunces,Georgia,serif;color:var(--pine);font-size:clamp(1.8rem,4vw,2.4rem);margin:0 0 8px}
.tsheet__head p{margin:0 0 8px;color:var(--ink);max-width:75ch}
.tsheet__sum{font-size:1.05rem}
.tsheet__fine{font-size:.82rem;color:var(--muted)}
.tsheet__btns{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:14px 0 18px;font-weight:600;font-size:.9rem}
.tsheet__t{width:100%;border-collapse:collapse;font-size:.9rem;background:var(--white)}
.tsheet__t th{position:sticky;top:0;background:var(--pine);color:var(--cream);text-align:left;padding:9px 10px;font-size:.78rem;letter-spacing:.03em}
.tsheet__t td{padding:9px 10px;border-bottom:1px solid rgba(27,23,20,.1);vertical-align:top}
.ts__tag{display:inline-block;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:5px;margin-right:4px;background:#e9e4da;color:var(--muted)}
.ts--add .ts__tag{background:#d8ecd9;color:#1e5a2c}
.ts--change .ts__tag{background:#f6e2c8;color:#8a4a12}
.ts--off .ts__tag{background:#f3d3d0;color:#8a221a}
.ts--name .ts__tag{background:#e3e8f1;color:#2f4a73}
.ts--check .ts__tag{background:#f6e2c8;color:#8a4a12}
.ts-only .tsheet__t tr.ts--ok{display:none}
.is-toastview .np-cartbtn,.is-toastview #np-cartbtn,.is-toastview .mprev{display:none!important}
@media(max-width:760px){
  .tsheet{padding-top:110px}
  .tsheet__t thead{display:none}
  .tsheet__t tr{display:block;border-bottom:1px solid rgba(27,23,20,.15);padding:8px 0}
  .tsheet__t td{display:block;border:0;padding:2px 10px}
  .tsheet__t td:nth-child(1){font-size:.75rem;color:var(--muted);text-transform:uppercase}
  .tsheet__t td[data-l]:not(:empty)::before{content:attr(data-l) ": ";color:var(--muted);font-size:.8rem}
  .tsheet__t td[data-l="Website"]::before{content:none}
}
@media print{
  .nav,.mobile-bar,.tsheet__btns,#np-cartbtn{display:none!important}
  .tsheet{padding-top:0}
  .tsheet__t th{position:static}
}

/* Placeholder shown until the real dish photo is uploaded. */
.mphoto--ph .mphoto__ph{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  width:100%;max-width:260px;aspect-ratio:4/3;border-radius:10px;
  border:1px dashed rgba(30,58,43,.28);background:var(--cream-2);
  color:var(--muted);font-size:.78rem;font-weight:600;letter-spacing:.02em;
}
.mphoto--ph .mphoto__ph img{opacity:.55;height:42px;width:auto}

/* One pizza, two sizes (customer view). */
.mitem.is-sizepartner{display:none!important}
.mitem.is-sized .mitem__top > .mitem__price,
.mitem.is-sized .mitem__top > .mitem__add{display:none}
.msizes{margin:10px 0 2px;max-width:340px}
.msizes__row{display:flex;align-items:center;gap:10px;padding:6px 0}
.msizes__sz{font-weight:700;min-width:2.4em}
.msizes__dots{flex:1;border-bottom:1px dotted rgba(27,23,20,.35);transform:translateY(-3px)}
.msizes__pr{font-weight:700;color:var(--amber-700,#a85f1f)}

/* Size toggle: chips with price, one add button. */
.msizes{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:10px 0 4px}
.msizes__chips{display:flex;gap:8px;flex-wrap:wrap}
.msizes__chip{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:74px;padding:7px 14px;border-radius:12px;
  border:1.5px solid rgba(30,58,43,.3);background:transparent;font:inherit;font-size:.86rem;color:var(--ink,#1b1714);cursor:pointer;transition:all .15s}
.msizes__chip b{font-weight:700;color:var(--amber-700,#a85f1f)}
.msizes__chip:hover{border-color:var(--pine,#1e3a2b)}
.msizes__chip.is-on{background:var(--pine,#1e3a2b);border-color:var(--pine,#1e3a2b);color:var(--cream,#fffdf8)}
.msizes__chip.is-on b{color:var(--cream,#fffdf8)}
.msizes__add{flex:none}

/* Compact one-line size buttons (overrides the taller first version). */
.msizes{gap:10px;margin:8px 0 2px}
.msizes__chip{flex-direction:row;align-items:baseline;gap:7px;min-width:0;padding:5px 13px;border-radius:7px;font-size:.88rem;line-height:1.3;white-space:nowrap}
.msizes__chip span{font-weight:600}

/* Lunch special carousel */
.mcar{position:relative;width:100%;max-width:260px;aspect-ratio:4/3;border-radius:10px;overflow:hidden;border:1px solid rgba(27,23,20,.14);background:var(--cream-2)}
.mcar__s{position:absolute;inset:0;margin:0;opacity:0;transition:opacity .5s ease}
.mcar__s.is-on{opacity:1}
.mcar__s img{width:100%;height:100%;object-fit:cover;display:block}
.mcar__s figcaption{position:absolute;left:8px;bottom:26px;background:rgba(20,28,23,.78);color:#fff;font-size:.76rem;font-weight:600;padding:3px 9px;border-radius:6px}
.mcar__nav{position:absolute;top:50%;transform:translateY(-50%);width:28px;height:34px;border:0;border-radius:6px;background:rgba(20,28,23,.55);color:#fff;font-size:1.3rem;line-height:1;cursor:pointer;padding:0}
.mcar__prev{left:6px}.mcar__next{right:6px}
.mcar__nav:hover{background:rgba(20,28,23,.85)}
.mcar__dots{position:absolute;left:0;right:0;bottom:7px;display:flex;justify-content:center;gap:6px}
.mcar__dot{width:8px;height:8px;border-radius:50%;border:0;padding:0;background:rgba(255,255,255,.6);cursor:pointer}
.mcar__dot.is-on{background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.25)}

/* Size toggle sits in the title row so sized cards are no taller than plain ones. */
.mitem.is-sized .mitem__top{flex-wrap:wrap;row-gap:8px;align-items:center}
.mitem.is-sized .mitem__name{flex:none}
.mitem__top .msizes{margin:0 0 0 auto;flex-wrap:nowrap;gap:8px}
.mitem__top .msizes__chips{flex-wrap:nowrap;gap:6px}
.mitem__top .msizes__chip{padding:4px 10px;font-size:.84rem;flex:none}
/* Wings section: same description height on both cards so the photos line up when the wing text changes. */
@media(max-width:560px){.mitem__top .msizes{margin-left:0;flex-wrap:wrap}.mitem__top .msizes__chips{flex-wrap:wrap}}

.mitem__top .msizes{min-width:0;max-width:100%}

/* Dotted leader runs from the name to the size buttons, like every other card. */
.mitem__top .msizes{margin:0}
@media(max-width:560px){.mitem.is-sized .mitem__top > .mitem__dots{display:none}}

/* Long names wrap beside the buttons instead of pushing them to a second line. */
.mitem.is-sized .mitem__top{flex-wrap:nowrap;align-items:center}
.mitem.is-sized .mitem__name{flex:0 1 auto;min-width:0;line-height:1.25}
.mitem.is-sized .mitem__top > .mitem__dots{flex:1 1 16px;min-width:16px}
.mitem__top .msizes{flex:none}
@media(max-width:560px){.mitem.is-sized .mitem__top{flex-wrap:wrap}.mitem.is-sized .mitem__name{flex:none}}
