/* ================= THE CONSUL — the menu (/menu/) and Your Table =================
   Loaded after table.css, which sets the night tokens (body.tb-page), the
   dish sheet and the toast. Here: the full menu (rooms, sections, cards and
   printed lists, the sticky bar) and Your Table (the button and its list),
   which /table/ shares. */

/* ---------------- hero ---------------- */
.ca-hero{padding-bottom:clamp(40px,7vh,80px)}
.ca-hero .arch{outline-color:rgba(233,181,121,.3)}
.ca-hero__count{margin-top:22px;font:500 9.5px var(--sans);letter-spacing:.3em;color:var(--ink-45);text-transform:uppercase}

/* ---------------- the bar: rooms, search, leave out ----------------
   Inside the menu, the site's nav slides away and the bar takes the top of
   the screen (carta.js → body.ca-docked); above the menu, the nav returns. */
.ca-page .nav.nav--page{transition:transform .45s var(--ease)}
body.ca-docked .nav.nav--page{transform:translateY(-110%)}
body.ca-docked .ca-bar{top:0;padding-top:calc(12px + env(safe-area-inset-top))}
/* wide screens: the club's wordmark rides in the docked bar */
.ca-bar__home{display:none;order:0;font-size:15px;line-height:0;color:var(--light);margin-right:8px}
@media (min-width:881px){body.ca-docked .ca-bar__home{display:block}}
.ca{position:relative;padding:0 0 clamp(70px,11vh,120px);scroll-margin-top:60px}
.ca-bar{position:sticky;top:var(--navh);z-index:30;transition:top .45s var(--ease),padding .45s var(--ease);display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;
  padding:12px var(--pad);background:rgba(20,11,6,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border-top:1px solid rgba(233,181,121,.12);border-bottom:1px solid rgba(233,181,121,.12)}
.ca-bar__tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;min-width:0;flex:1 1 auto}
.ca-bar__tabs::-webkit-scrollbar{display:none}
.ca-tab{flex:none;display:inline-flex;align-items:center;gap:8px;padding:10px 16px 9px;border-radius:40px;border:1px solid transparent;
  font:500 10px var(--sans);letter-spacing:.24em;color:var(--ink-70);text-transform:uppercase;white-space:nowrap;transition:color .3s,border-color .3s,background .3s}
.ca-tab b{font:500 13px/1 var(--serif);letter-spacing:0;color:var(--gold)}
.ca-tab:hover{color:var(--light)}
.ca-tab[aria-selected="true"]{border-color:rgba(233,181,121,.5);color:var(--light);background:rgba(233,181,121,.08)}
.ca-bar__tools{display:flex;align-items:center;gap:10px;flex:0 1 auto}

/* ---------------- search: expandable button & bar ---------------- */
.ca-search{position:relative;display:flex;align-items:center}
/* Collapsed search button */
.ca-search__btn{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 16px;border-radius:40px;
  border:1px solid var(--ink-20);background:none;cursor:pointer;
  font:500 9.5px var(--sans);letter-spacing:.24em;color:var(--ink-70);transition:border-color .3s,color .3s,background .3s}
.ca-search__btn svg{width:15px;height:15px;fill:none;stroke:var(--gold);stroke-width:1.5;flex:none}
.ca-search__btn:hover,.ca-search__btn[aria-expanded="true"]{border-color:var(--gold);color:var(--light);background:rgba(233,181,121,.08)}
/* Expanded search box */
.ca-search__box{display:none;align-items:center;gap:8px;height:40px;border-radius:40px;
  border:1px solid var(--gold);background:rgba(20,11,6,.96);padding:0 6px 0 14px;
  box-shadow:0 4px 20px rgba(0,0,0,.45);animation:caSearchIn .2s var(--ease)}
@keyframes caSearchIn{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}
.ca-search__icon{width:15px;height:15px;fill:none;stroke:var(--gold);stroke-width:1.5;flex:none}
/* Search input: font-size 16px strictly prevents iOS Safari automatic browser zoom */
.ca-search input{flex:1;min-width:0;border:0;background:none;outline:0;color:var(--light);
  font:500 16px/1.3 var(--sans);letter-spacing:0;-webkit-appearance:none;appearance:none}
.ca-search input::placeholder{color:var(--ink-45);font-size:13px;letter-spacing:.04em}
.ca-search input::-webkit-search-cancel-button,.ca-search input::-webkit-search-decoration{display:none;-webkit-appearance:none}
/* The escape/close button at the end */
.ca-search__esc{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;
  border:0;background:none;color:var(--ink-45);cursor:pointer;padding:0;transition:color .2s,background .2s,transform .2s}
.ca-search__esc svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ca-search__esc:hover{color:var(--light);background:rgba(233,181,121,.18);transform:scale(1.08)}
/* Active open state */
.ca-search.is-open .ca-search__btn{display:none}
.ca-search.is-open .ca-search__box{display:flex;width:clamp(260px,26vw,340px)}
/* For readers with JS disabled */
html:not(.js) .ca-search__btn{display:none}
html:not(.js) .ca-search__box{display:flex;width:clamp(220px,24vw,320px)}
html:not(.js) .ca-search__esc{display:none}
.ca-out__toggle{flex:none;height:40px;padding:0 16px;border-radius:40px;border:1px solid var(--ink-20);background:none;cursor:pointer;
  font:500 9.5px var(--sans);letter-spacing:.24em;color:var(--ink-70);transition:border-color .3s,color .3s}
.ca-out__toggle:hover,.ca-out__toggle[aria-expanded="true"]{border-color:var(--gold);color:var(--light)}
.ca-out__toggle i{font-style:normal;color:var(--gold)}
.ca-out{order:4;flex-basis:100%;display:flex;flex-wrap:wrap;gap:8px;padding:2px 0 4px}
.ca-bar__tabs{order:1}
.ca-bar__tools{order:2}
/* the room's sections: a quiet second row, underlined where you are */
.ca-bar__subs{order:3;flex-basis:100%;display:flex;gap:4px 22px;overflow-x:auto;scrollbar-width:none;margin-top:-4px;padding:0 4px}
.ca-bar__subs::-webkit-scrollbar{display:none}
.ca-sub{flex:none;padding:6px 0 7px;border-bottom:1px solid transparent;white-space:nowrap;
  font:500 9.5px var(--sans);letter-spacing:.2em;color:var(--ink-45);text-transform:uppercase;transition:color .3s,border-color .3s}
.ca-sub:hover{color:var(--light)}
.ca-sub.is-on{color:var(--gold);border-color:var(--gold)}
.ca-out[hidden]{display:none}

/* ---------------- the rooms ---------------- */
.ca__body{padding:0 var(--pad);max-width:1500px;margin:0 auto}
/* the menu written into the HTML at build (prerender.mjs) for readers that run
   no script; with scripts, carta.js draws the menu and this copy never shows */
.js .ca-pre{display:none}
.ca-pre .cw{margin-bottom:60px}
.cw{padding-top:clamp(56px,9vh,96px);scroll-margin-top:calc(var(--navh) + 70px)}
.cw[hidden],.cs[hidden],.cc[hidden],.cl[hidden]{display:none}
.cw__head{display:flex;align-items:flex-end;gap:22px;margin-bottom:12px;padding-bottom:22px;border-bottom:1px solid rgba(233,181,121,.18)}
.cw__mark{font:400 italic clamp(54px,6vw,86px)/.8 var(--serif);color:rgba(233,181,121,.35)}
.cw__title{font:500 clamp(34px,4vw,56px)/1 var(--serif);color:var(--light)}
.cw__note{margin-top:10px;max-width:54ch;font:400 clamp(15px,1.3vw,18px)/1.5 var(--sans);color:var(--ink-70)}
/* Bar Won's room: a way into the consultant (/bar/) */
.cw__cta{display:flex;align-items:center;justify-content:space-between;gap:10px 24px;flex-wrap:wrap;margin:22px 0 4px;padding:16px 20px;
  border:1px solid rgba(233,181,121,.4);border-radius:10px;background:rgba(233,181,121,.06);transition:border-color .3s,background .3s}
.cw__cta b{font:400 clamp(15px,1.3vw,18px)/1.4 var(--sans);color:var(--ink-70)}
.cw__cta span{flex:none;font:500 9.5px var(--sans);letter-spacing:.28em;color:var(--gold)}
.cw__cta:hover{border-color:var(--gold);background:rgba(233,181,121,.12)}
.cs{padding-top:34px}
.cs__title{display:flex;align-items:baseline;gap:12px;margin-bottom:18px;font:500 10.5px var(--sans);letter-spacing:.34em;color:var(--gold);text-transform:uppercase}
.cs__title span{font:400 13px var(--sans);letter-spacing:0;color:var(--ink-45);text-transform:none}

/* cards: the dish edge to edge, as on the table */
.cs__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px}
.cc{position:relative;min-width:0;transition:opacity .4s}
.cc__hit{position:relative;display:block;width:100%;aspect-ratio:4/5;padding:0;border:0;border-radius:6px;overflow:hidden;cursor:pointer;
  background:#0e0704;color:var(--light);text-align:left;font:inherit;
  box-shadow:0 0 0 1px rgba(233,181,121,.14),0 18px 38px rgba(0,0,0,.55);transition:box-shadow .45s var(--ease)}
.cc__hit:hover{box-shadow:0 0 0 1px rgba(233,181,121,.5),0 22px 44px rgba(0,0,0,.6)}
.cc__hit:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.cc__media{position:absolute;inset:0}
.cc__media img,.cc__media video{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.01);transition:transform 1.2s var(--ease)}
.cc__hit:hover .cc__media img,.cc__hit:hover .cc__media video{transform:scale(1.06)}
.cc__media::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(to bottom,rgba(10,5,2,.35) 0,rgba(10,5,2,0) 20%,rgba(10,5,2,0) 50%,rgba(10,5,2,.75) 78%,rgba(10,5,2,.95) 100%)}
.cc__media--none{display:grid;place-items:center;padding-bottom:26%;
  background:radial-gradient(70% 55% at 50% 38%,rgba(233,181,121,.16),transparent 70%),linear-gradient(170deg,#2a1a0e,#120a05);
  font:400 italic 56px/1 var(--serif);color:rgba(233,181,121,.42)}
.cc__media--none::after{display:none}
.cc__film{position:absolute;left:12px;top:12px;display:inline-flex;align-items:center;gap:5px;font:500 7.5px var(--sans);font-style:normal;letter-spacing:.3em;color:rgba(255,247,235,.85)}
/* the heart, top right on the photo: white and light, red once tapped (btm-account.js) */
.cc__like{position:absolute;top:8px;right:8px;z-index:2;display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:6px 8px;border:0;
  background:none;cursor:pointer;color:rgba(255,255,255,.82);font:500 11px/1 var(--sans);letter-spacing:.04em;
  filter:drop-shadow(0 1px 3px rgba(0,0,0,.55));transition:color .25s var(--ease),transform .25s var(--ease)}
.cc__like svg{width:19px;height:19px;fill:rgba(255,255,255,.12);stroke:currentColor;stroke-width:1.5;stroke-linejoin:round;transition:fill .25s var(--ease)}
.cc__like:hover{color:#fff}
.cc__like:active{transform:scale(.9)}
.cc__like.is-liked{color:#ff5a5f}
.cc__like.is-liked svg{fill:#ff5a5f}
.cc__like [data-btm-like-count]:empty{display:none}
.cc__like:focus-visible{outline:1px solid var(--gold);outline-offset:2px;border-radius:4px}
.cc__like[hidden]{display:none}
.cc__film::before{content:"";width:5px;height:5px;border-radius:50%;background:#e2584a;animation:rec 1.6s ease-in-out infinite}
.cc__cap{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;gap:4px;padding:0 14px 14px}
.cc__x{font:400 italic 12px/1.2 var(--serif);color:var(--gold)}
.cc__name{font:500 17px/1.25 var(--sans);letter-spacing:.02em;color:var(--light);text-shadow:0 1px 12px rgba(0,0,0,.5);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cc__price{display:flex;align-items:center;flex-wrap:wrap;gap:4px;min-height:30px;padding-right:92px;font:500 11px var(--sans);letter-spacing:.1em;color:rgba(255,247,235,.78)}
.cc__price small{font-size:8px;letter-spacing:.2em;color:rgba(255,247,235,.5)}
.cc__price i{font-style:normal;color:rgba(255,247,235,.35)}
.cc__ctl{position:absolute;z-index:2;right:12px;bottom:14px}

/* − n + and the round + (cards, lists, the sheet) */
.ctl{display:inline-flex;align-items:center;gap:1px;padding:2px;border-radius:30px;border:1px solid rgba(233,181,121,.55);
  background:rgba(10,5,2,.6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.ctl button,.sheet__qty button{width:28px;height:28px;border:0;border-radius:50%;background:none;color:var(--light);font:400 16px/1 var(--sans);cursor:pointer;transition:background .25s,color .25s}
.ctl button:hover,.sheet__qty button:hover{background:var(--gold);color:#2a1a0e}
.ctl b,.sheet__qty b{min-width:18px;text-align:center;font:500 13px/1 var(--sans);color:var(--gold)}
.ctl__add{width:34px;height:34px;border-radius:50%;border:0;background:var(--gold);color:#2a1a0e;font:400 20px/1 var(--sans);cursor:pointer;
  box-shadow:0 6px 16px rgba(0,0,0,.4);transition:transform .25s var(--ease),background .25s}
.ctl__add:hover{transform:scale(1.1);background:var(--light)}

/* the printed list: spirits, wines, the dim sum until its photos arrive */
.cs__list{list-style:none;columns:2;column-gap:clamp(30px,5vw,80px)}
.cl{break-inside:avoid;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:6px 16px;
  padding:14px 0;border-bottom:1px solid rgba(233,181,121,.1);transition:opacity .4s}
.cl__hit{display:flex;flex-direction:column;gap:4px;min-width:0;padding:0;border:0;background:none;text-align:left;cursor:pointer;font:inherit;color:inherit}
/* the names in Optima: Playfair's thin strokes and old-style figures (US1 read as "USı")
   were hard to read this small on the dark */
.cl__name{font:500 17px/1.3 var(--sans);letter-spacing:.02em;color:var(--light);transition:color .3s}
.cl__hit:hover .cl__name{color:var(--gold)}
.cl__cam{display:inline-block;width:15px;height:12px;margin-left:8px;color:var(--gold);vertical-align:-1px}
.cl__cam svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linejoin:round}
.cl__desc{font:500 12px/1.5 var(--sans);color:var(--ink-45);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cl__price{font:500 12px var(--sans);letter-spacing:.06em;color:var(--gold);text-align:right;white-space:nowrap}
.cl__price small{font-size:8px;letter-spacing:.18em;color:var(--ink-45)}
.cl__price i{font-style:normal;color:var(--ink-20);margin:0 2px}
.cl__ctl .ctl__add{width:30px;height:30px;font-size:17px;box-shadow:none;background:none;border:1px solid rgba(233,181,121,.55);color:var(--gold)}
.cl__ctl .ctl__add:hover{background:var(--gold);color:#2a1a0e;transform:none}
.cl__ctl .ctl button{width:26px;height:26px}

/* left out: still there, quietly */
.is-out{opacity:.22}
.is-out:hover{opacity:.6}

/* sold out in Bite The Menu: in its place, greyed, a tag where the + would be */
.sold{display:inline-block;padding:5px 9px 4px;border:1px solid rgba(255,247,235,.35);border-radius:30px;background:rgba(10,5,2,.7);
  font:500 8.5px/1 var(--sans);font-style:normal;letter-spacing:.24em;color:rgba(255,247,235,.8);white-space:nowrap}
.cc.is-sold .cc__media{filter:grayscale(1) brightness(.6)}
.cc.is-sold .cc__name,.cc.is-sold .cc__price{opacity:.6}
.cl.is-sold .cl__name,.cl.is-sold .cl__desc,.cl.is-sold .cl__price{opacity:.45}
.cl.is-sold .sold{background:none}
.sheet__price .sold{margin-left:10px;vertical-align:1px}

.ca__none{margin:60px var(--pad) 0;text-align:center;font:400 18px var(--sans);color:var(--ink-70)}
.ca__none button{margin-left:8px;border:0;background:none;color:var(--gold);font:inherit;text-decoration:underline;cursor:pointer}
.ca__foot{max-width:70ch;margin:70px auto 0;padding:0 var(--pad);text-align:center;font:500 11px/1.7 var(--sans);letter-spacing:.06em;color:var(--ink-45)}
.ca__foot a{color:var(--gold);border-bottom:1px solid rgba(233,181,121,.4)}

/* the sheet's − n + */
.sheet__qty{display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:40px;border:1px solid rgba(233,181,121,.55)}
.sheet__qty button{width:36px;height:36px;font-size:18px}
.sheet__qty b{min-width:26px;font-size:16px}

/* ---------------- Your Table: the button ---------------- */
.yt-fab{position:fixed;z-index:66;right:clamp(14px,2.4vw,28px);bottom:calc(clamp(14px,2.4vw,28px) + env(safe-area-inset-bottom));
  display:flex;align-items:center;gap:12px;padding:8px 20px 8px 8px;border-radius:40px;border:1px solid rgba(233,181,121,.5);
  background:rgba(30,18,10,.94);color:var(--light);cursor:pointer;box-shadow:0 14px 34px rgba(0,0,0,.55);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  transform:translateY(160%);opacity:0;pointer-events:none;transition:transform .5s var(--ease),opacity .35s,border-color .3s}
.yt-fab.is-on{transform:none;opacity:1;pointer-events:auto}
/* the folded site menu is open: the list button waits underneath */
html.mnav-open .yt-fab{transform:translateY(160%);opacity:0;pointer-events:none}
.yt-fab:hover{border-color:var(--gold)}
.yt-fab__n{display:grid;place-items:center;min-width:34px;height:34px;padding:0 6px;border-radius:20px;background:var(--gold);color:#2a1a0e;font:500 15px/1 var(--sans)}
.yt-fab__t{font:500 9.5px var(--sans);letter-spacing:.3em}
.yt-fab__sum{font:500 13px var(--sans);color:var(--gold)}
.yt-spark{position:fixed;left:0;top:0;z-index:96;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,#fff3d6 0,var(--gold) 45%,rgba(233,181,121,0) 72%);box-shadow:0 0 18px 6px rgba(233,181,121,.55)}
/* the table page has its own app bar on phones: the button sits above it */
/* the table page's phone bar carries the list's count itself: the button steps aside while the bar is up */
@media (max-width:880px){.tb-bar.is-on ~ .yt-fab{transform:translateY(160%);opacity:0;pointer-events:none}}

/* ---------------- Your Table: the list ---------------- */
.yt{position:fixed;inset:0;z-index:92}
.yt[hidden]{display:none}
.yt__scrim{position:absolute;inset:0;background:rgba(5,2,1,.7);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.yt__panel{position:absolute;top:0;right:0;bottom:0;display:flex;flex-direction:column;width:min(470px,100%);background:#170d07;color:var(--ink);
  border-left:1px solid rgba(233,181,121,.18);box-shadow:-30px 0 80px rgba(0,0,0,.6)}
.yt__head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:26px 26px 14px}
.yt__k{font:500 8.5px var(--sans);letter-spacing:.36em;color:var(--gold);margin-bottom:8px}
.yt__title{font:500 34px/1 var(--serif);color:var(--light)}
.yt__x{flex:none;width:40px;height:40px;border-radius:50%;border:1px solid rgba(233,181,121,.4);background:none;color:var(--light);font:400 24px/1 var(--sans);cursor:pointer}
.yt__guests{display:flex;align-items:center;gap:10px;margin:0 26px;padding:12px 0 16px;border-bottom:1px solid rgba(233,181,121,.14);
  font:500 9px var(--sans);letter-spacing:.3em;color:var(--ink-45)}
.yt__guests button{width:30px;height:30px;border-radius:50%;border:1px solid var(--ink-20);background:none;color:var(--light);font:400 16px/1 var(--sans);cursor:pointer}
.yt__guests button:hover{border-color:var(--gold);color:var(--gold)}
.yt__guests b{min-width:22px;text-align:center;font:500 20px/1 var(--sans);letter-spacing:0;color:var(--light)}
.yt__body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:6px 26px 20px}
.yt-group h3{display:flex;align-items:center;gap:10px;margin:20px 0 6px;font:500 9px var(--sans);letter-spacing:.34em;color:var(--gold);text-transform:uppercase}
.yt-group h3 i{font:400 italic 13px/1 var(--serif);letter-spacing:0}
.yt-group ol{list-style:none}
.yt-line{display:grid;grid-template-columns:48px minmax(0,1fr) auto 72px;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid rgba(233,181,121,.08)}
.yt-line__ph{width:48px;height:56px;border-radius:4px;overflow:hidden;background:var(--felt)}
.yt-line__ph img{width:100%;height:100%;object-fit:cover}
.yt-line__ph.is-none{display:grid;place-items:center;font:400 italic 20px/1 var(--serif);color:rgba(233,181,121,.5)}
.yt-line__t{display:flex;flex-direction:column;gap:3px;min-width:0}
.yt-line__t b{font:500 14.5px/1.25 var(--sans);color:var(--light)}
.yt-line__t span,.yt-line__t small{font:500 10.5px var(--sans);letter-spacing:.08em;color:var(--ink-45)}
.yt-line__t span small{font-size:8px;letter-spacing:.2em}
.yt-line__q{display:inline-flex;align-items:center;gap:2px}
.yt-line__q button{width:26px;height:26px;border-radius:50%;border:1px solid var(--ink-20);background:none;color:var(--light);font:400 14px/1 var(--sans);cursor:pointer;transition:background .25s,color .25s,border-color .25s}
.yt-line__q button:hover{background:var(--gold);border-color:var(--gold);color:#2a1a0e}
.yt-line__q b{min-width:20px;text-align:center;font:500 14px/1 var(--sans);color:var(--light)}
.yt-line__sum{text-align:right;font:500 13px var(--sans);color:var(--gold)}
.yt__empty{padding:40px 0;text-align:center}
.yt__empty p{font:400 17px/1.5 var(--sans);color:var(--ink-70)}
.yt__empty p:first-child{font-size:22px;color:var(--light);margin-bottom:8px}
.yt__empty b{color:var(--gold);font-style:normal}
.yt__empty div{display:flex;flex-direction:column;gap:10px;margin-top:26px}
.yt__foot{flex:none;padding:16px 26px calc(20px + env(safe-area-inset-bottom));border-top:1px solid rgba(233,181,121,.18);background:#120a05}
.yt__foot[hidden]{display:none}
.yt__sums div{display:flex;justify-content:space-between;padding:2px 0;font:500 11.5px var(--sans);letter-spacing:.06em;color:var(--ink-45)}
/* the total, one line; a tap on its label folds out subtotal, service and VAT */
.yt__sums .yt__total{align-items:flex-start;gap:12px;padding:0;font:500 13px var(--sans);color:var(--light)}
.yt__total button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:2px 0;border:0;background:none;color:inherit;font:inherit;letter-spacing:.06em;text-align:left;cursor:pointer}
.yt__total button small{display:inline-flex;align-items:center;gap:6px;font:500 10.5px var(--sans);letter-spacing:.06em;color:var(--ink-45);transition:color .25s}
.yt__total button:hover small,.yt__total button:focus-visible small{color:var(--gold)}
.yt__total button i{font-style:normal;font-size:12px;line-height:1;transition:transform .3s var(--ease)}
.yt__total button[aria-expanded="true"] i{transform:rotate(180deg)}
.yt__sums .yt__total dd{display:flex;flex-direction:column;align-items:flex-end;gap:5px;font:500 24px/1 var(--sans);color:var(--gold)}
.yt__total dd small{font:500 10.5px var(--sans);letter-spacing:.06em;color:var(--ink-45)}
.yt__sums .yt__detail{display:block;margin-top:10px;padding:8px 0 0;border-top:1px solid rgba(233,181,121,.12)}
.yt__sums .yt__detail[hidden]{display:none}
.yt__sums p{margin-top:4px;font:400 12px var(--sans);color:var(--ink-45)}
.yt__row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.yt__row .btn{padding:14px 10px 13px;font-size:9.5px;letter-spacing:.2em}
.yt__row .btn--gold{grid-column:1/-1}
/* to the table map (/reserve/): one plain button across, under the others */
.yt__book{display:block;width:100%;margin-top:8px;padding:14px 10px 13px;font-size:9.5px;letter-spacing:.2em;text-align:center}
.yt__empty .yt__book{margin-top:4px}
.yt__duo{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.yt__duo .yt__book{margin-top:0}
.yt__duo .is-long{grid-column:1/-1}

/* ---- gift this table (prototype) ---- */
.yt-gift__card{max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain}
.yt-gift__p{margin:-6px 0 16px;font:400 14px/1.5 var(--sans);color:rgba(255,247,235,.72)}
.yt-gift__p b{color:var(--gold);font-weight:500}
.yt-gift__form{display:grid;gap:12px}
.yt-gift__form .btn{margin-top:4px}
.yt-gift__proto{margin-top:10px;text-align:center;font:400 12px var(--sans);color:rgba(255,247,235,.5)}
.yt-gift__card > .btn{display:block;width:100%;margin-top:16px;text-align:center}
.yt-gift__paper{padding:26px 22px 22px;border-radius:4px;background:#FFF7EB;color:#412612;text-align:center;box-shadow:inset 0 0 0 1px rgba(65,38,18,.12),inset 0 0 0 7px #FFF7EB,inset 0 0 0 8px rgba(160,110,50,.45)}
.yt-gift__k{font:600 9px var(--sans);letter-spacing:.32em;color:#8a6a45}
.yt-gift__t{margin:12px 0 2px;font:500 28px/1.15 var(--serif)}
.yt-gift__from{font:400 16px var(--sans);color:rgba(65,38,18,.7)}
.yt-gift__msg{margin:14px auto 0;max-width:30ch;font:400 17px/1.45 var(--sans)}
.yt-gift__lbl{margin-top:20px;font:600 9px var(--sans);letter-spacing:.28em;color:#8a6a45}
.yt-gift__list{list-style:none;margin:8px 0 0;font:400 14.5px/1.6 var(--sans)}
.yt-gift__list span{color:#8a6a45;font-weight:600}
.yt-gift__list small{color:rgba(65,38,18,.45)}
.yt-gift__amt,.yt-gift__code{margin-top:18px;padding-top:16px;border-top:1px dashed rgba(65,38,18,.28);display:grid;gap:2px}
.yt-gift__amt span,.yt-gift__code span{font:600 9px var(--sans);letter-spacing:.28em;color:#8a6a45;text-transform:uppercase}
.yt-gift__amt b{font:500 30px var(--serif)}
.yt-gift__code b{font:600 19px ui-monospace,Menlo,monospace;letter-spacing:.08em}
.yt-gift__amt small,.yt-gift__code small{font:400 12.5px var(--sans);color:rgba(65,38,18,.7)}
.yt__more{display:flex;justify-content:center;flex-wrap:wrap;gap:6px 18px;margin-top:14px;font:500 10px var(--sans);letter-spacing:.14em}
.yt__more a,.yt__more button{border:0;background:none;padding:0;color:var(--ink-45);font:inherit;letter-spacing:inherit;cursor:pointer;border-bottom:1px solid transparent;transition:color .3s}
.yt__more a:hover,.yt__more button:hover{color:var(--gold)}

/* ---------------- phones ---------------- */
@media (max-width:880px){
  .ca-bar__subs{order:2;margin-top:-2px}
  .ca-bar__tools{order:3;display:flex;align-items:center;gap:7px}
  .ca-tab{padding:9px 13px 8px}
  .ca-search__btn,.ca-search__box,.ca-out__toggle{height:36px}
  .ca-bar{padding:10px 16px;gap:8px}
  .ca-bar__tabs{flex-basis:100%;margin:0 -16px;padding:0 16px}
  .ca-bar__tools{flex:1 1 100%}
  .ca-search{flex:none}
  .ca-search__btn{width:36px;padding:0;justify-content:center}
  .ca-search__btnText{display:none}
  .ca-bar__tools.has-search-open > *:not(.ca-search){display:none !important}
  .ca-bar__tools.has-search-open .ca-search{flex:1 1 100%;width:100%}
  .ca-search.is-open .ca-search__box{display:flex;width:100%}
  .ca-search input{font-size:16px}
  .cs__list{columns:1}
}
@media (max-width:700px){
  .ca__body{padding:0 16px}
  .cs__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .cc__cap{padding:0 10px 10px}
  .cc__name{font-size:15px}
  .cc__price{padding-right:0;min-height:0;font-size:10px}
  .cc__ctl{top:8px;right:8px;bottom:auto}
  /* the + is top right on a phone, so the heart goes top left, and a film's label under it */
  .cc__like{right:auto;left:4px;top:6px}
  .cc:has(.cc__like:not([hidden])) .cc__film{top:44px}
  .cw__head{gap:14px}
  .cl{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}
  .cl__price{grid-column:1;grid-row:2;text-align:left}
  .cl__ctl{grid-column:2;grid-row:1/3}
  /* phones: Your Table takes the whole screen, so a long list has room */
  .yt__panel{top:0;width:100%;height:100%;max-height:none;border:0;border-radius:0}
  .yt__head{padding:calc(14px + env(safe-area-inset-top)) 20px 6px;align-items:center}
  .yt__k{margin-bottom:6px}
  .yt__title{font-size:28px}
  .yt__guests{padding:8px 0 10px}
  .yt__foot{padding-top:12px}
  .yt__row{margin-top:12px}
  .yt__more{margin-top:10px}
  /* one of a dish: its price is already on the line, the sum would repeat it */
  .yt-line.is-one .yt-line__sum{display:none}
  .yt__guests,.yt__body{margin-left:0;margin-right:0;padding-left:20px;padding-right:20px}
  .yt__guests{margin:0 20px;padding-left:0;padding-right:0}
  .yt__foot{padding-left:20px;padding-right:20px}
  .yt-line{grid-template-columns:42px minmax(0,1fr) auto;gap:10px}
  .yt-line__ph{width:42px;height:50px}
  .yt-line__sum{grid-column:2;grid-row:2;text-align:left;font-size:12px;margin-top:-6px}
  .yt-fab{padding:6px 16px 6px 6px;gap:10px}
}
@media (prefers-reduced-motion:reduce){.yt-fab{transition:none}}

/* ---------------- Your Table, at a table: the order goes to the kitchen ---------------- */
.yt__at{margin-top:6px;font:500 10px var(--sans);letter-spacing:.3em;color:var(--gold);text-transform:uppercase}
.yt__at[hidden],.yt__order[hidden],.yt__note[hidden],.yt__order .btn[hidden],.yt__row .btn[hidden]{display:none}
.yt__order{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.yt__note{display:flex;flex-direction:column;gap:6px;font:500 9px var(--sans);letter-spacing:.24em;color:var(--ink-45);text-transform:uppercase}
.yt__note input{width:100%;padding:11px 12px;border:1px solid rgba(233,181,121,.25);border-radius:2px;background:rgba(255,255,255,.03);color:var(--light);font:400 14px var(--sans);letter-spacing:0;text-transform:none}
.yt__note input:focus{outline:none;border-color:var(--gold)}
.yt__msg{font:400 13px/1.4 var(--sans);color:var(--ink-70)}
.yt__msg:empty{display:none}
.yt__order .btn{padding:15px 10px 14px;font-size:10px;letter-spacing:.2em}
.yt__order .btn[disabled]{opacity:.55;cursor:wait}
.yt__row.is-seated{grid-template-columns:1fr}

/* ---------------- which size: a glass or a bottle (tray.js choose) ---------------- */
.yt-pick{position:fixed;inset:0;z-index:120;display:grid;place-items:end center}
.yt-pick[hidden]{display:none}
.yt-pick__scrim{position:absolute;inset:0;background:rgba(10,5,2,.7);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.yt-pick__card{position:relative;width:min(440px,100%);padding:26px 22px calc(20px + env(safe-area-inset-bottom));
  border:1px solid rgba(233,181,121,.25);border-radius:18px 18px 0 0;background:#1a0f08;box-shadow:0 -20px 50px rgba(0,0,0,.5)}
@media (min-width:701px){.yt-pick{place-items:center}.yt-pick__card{border-radius:18px}}
.yt-pick__k{font:500 9px var(--sans);letter-spacing:.32em;color:var(--gold)}
.yt-pick__name{margin:8px 0 18px;font:500 22px/1.25 var(--sans);color:var(--light)}
.yt-pick__opts{display:grid;gap:8px}
.yt-pick__opt{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:16px 18px;border:1px solid rgba(233,181,121,.4);
  border-radius:12px;background:none;color:var(--light);font:500 15px var(--sans);text-align:left;cursor:pointer;transition:background .25s,border-color .25s}
.yt-pick__opt:hover,.yt-pick__opt:focus-visible{background:rgba(233,181,121,.12);border-color:var(--gold);outline:none}
.yt-pick__opt i{font:500 10px var(--sans);letter-spacing:.06em;color:var(--ink-45);font-style:normal}
.yt-pick__opt b{font:500 13px var(--sans);letter-spacing:.06em;color:var(--gold)}
.yt-pick__x{display:block;margin:14px auto 0;padding:8px;border:0;background:none;color:var(--ink-45);font:500 10px var(--sans);letter-spacing:.24em;text-transform:uppercase;cursor:pointer}

/* ---------------- show to the waiter (tray.js showWaiter) ----------------
   Plain on purpose: dark ink on white, large, both languages, to read across a table */
.yt-waiter{position:fixed;inset:0;z-index:130;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  background:#fbf8f3;color:#1b120c;padding:calc(64px + env(safe-area-inset-top)) 20px calc(40px + env(safe-area-inset-bottom))}
.yt-waiter[hidden]{display:none}
html.yw-open .yt-fab{opacity:0;pointer-events:none}
.yt-waiter [lang="th"]{display:block;font-family:'Sukhumvit Set','Thonburi','Noto Sans Thai','Leelawadee UI',sans-serif;font-weight:400;letter-spacing:0;text-transform:none}
.yt-waiter__tools{position:fixed;top:calc(12px + env(safe-area-inset-top));right:14px;z-index:1;display:flex;align-items:center;gap:10px}
.yt-waiter__x{flex:none;width:46px;height:46px;border:0;border-radius:50%;
  background:#1b120c;color:#fbf8f3;font:300 26px/1 var(--sans);cursor:pointer}
.yt-waiter__in{max-width:680px;margin:0 auto}
.yw-k{font:600 10px var(--sans);letter-spacing:.32em;color:#8a6a45}
.yw-title{margin:10px 0 6px;font:500 clamp(34px,8vw,48px)/1.05 var(--serif)}
.yw-title [lang="th"]{margin-top:6px;font-size:.62em;color:#5a4a3c}
.yw-meta{font:600 18px/1.3 var(--sans);color:#3a2c22}
.yw-meta [lang="th"]{display:inline;margin-left:10px;color:#5a4a3c}
.yw-group{margin-top:30px}
.yw-group h3{padding-bottom:8px;border-bottom:2px solid #1b120c;font:600 12px var(--sans);letter-spacing:.24em;text-transform:uppercase}
.yw-group h3 [lang="th"]{display:inline;margin-left:10px;font-size:15px}
.yw-group ol{list-style:none}
.yw-row{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:12px;align-items:baseline;padding:16px 0;border-bottom:1px dashed #c9bba9}
.yw-q{font:600 26px/1 var(--sans)}
.yw-name{font:500 21px/1.3 var(--sans)}
.yw-name [lang="th"]{margin-top:4px;font-size:19px;line-height:1.35;color:#3a2c22}
.yw-name small{display:block;margin-top:6px;font:600 12px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#8a6a45}
.yw-name small [lang="th"]{display:inline;margin-left:8px;font-size:14px;color:#8a6a45}
.yw-p{font:600 17px var(--sans);white-space:nowrap;text-align:right}
.yw-p [lang="th"]{font-size:14px}
.yw-sums{margin-top:22px}
.yw-sums div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:7px 0;font:500 16px var(--sans);color:#3a2c22}
.yw-sums dt [lang="th"]{display:inline;margin-left:8px}
.yw-sums .yw-total{margin-top:8px;padding-top:14px;border-top:2px solid #1b120c;font:700 24px var(--sans);color:#1b120c}
.yw-note{margin-top:16px;font:500 14px/1.5 var(--sans);color:#5a4a3c}
.yw-back{display:block;margin:30px auto 0;border-color:#1b120c;color:#1b120c}
@media (max-width:420px){.yw-row{grid-template-columns:40px minmax(0,1fr);}.yw-p{grid-column:2;text-align:left}}

/* ---------------- text size: A− / A+ (menu-core.js) ----------------
   One variable, --tz, as zoom on what is read: every font, line and gap grows
   together. On a scrolling box the zoom goes on what is inside, so the box
   keeps the screen's size. */
.ca__body,.sheet__body>*:not(.sheet__row),.yt__guests,.yt__body>*,.yt__sums,.yt-waiter__in,.yt-pick__card{zoom:var(--tz,1)}
.tz{display:inline-flex;flex:none;height:40px;border:1px solid var(--ink-20);border-radius:40px;overflow:hidden}
.tz button{display:flex;align-items:center;justify-content:center;gap:1px;width:46px;padding:0;border:0;background:none;color:var(--light);font:500 15px/1 var(--sans);cursor:pointer;transition:background .25s,color .25s}
.tz button + button{border-left:1px solid var(--ink-20);font-size:19px}
.tz button i{font:600 15px/1 var(--sans);font-style:normal}
.tz button:hover:not(:disabled){background:var(--gold);color:#2a1a0e}
.tz button:disabled{opacity:.3;cursor:default}
.yt__tools{display:flex;align-items:center;gap:10px;flex:none}
.yt__tools .tz{height:40px}
/* the waiter's list is dark on white */
.yt-waiter .tz{height:46px;border-color:#1b120c;background:#fbf8f3}
.yt-waiter .tz button{width:52px;color:#1b120c}
.yt-waiter .tz button + button{border-left-color:#1b120c}
.yt-waiter .tz button:hover:not(:disabled){background:#1b120c;color:#fbf8f3}
/* in the menu's bar A− / A+ are a size smaller, so the search keeps its room */
.ca-bar__tools .tz button{width:38px;font-size:13px}
.ca-bar__tools .tz button + button{font-size:16px}
.ca-bar__tools .tz button i{font-size:13px}
@media (max-width:880px){.ca-bar__tools .tz{height:36px}.ca-bar__tools .tz button{width:34px}
  .ca-bar__tools{gap:7px}.ca-bar__tools .ca-out__toggle:not(.ca-lang__toggle){padding:0 12px}}

/* ---------------- the language: 文 EN, beside FILTERS (carta.js) ----------------
   Thai and Chinese have no capitals: their words keep the bar's size without
   the wide letter-spacing, in the phone's own Thai or Chinese type. */
.ca-lang__toggle{display:inline-flex;align-items:center;gap:7px;letter-spacing:.16em}
.ca-lang__toggle[hidden]{display:none}
.ca-lang__toggle i{font-size:13px;letter-spacing:0}
.ca-lang .tq-chip:lang(th),.ca-lang .tq-chip:lang(zh){letter-spacing:.04em}
/* a choice of one, not a filter: no + on the others, the house ✦ on the one in use */
.ca-lang .tq-chip:not([aria-checked="true"])::before{content:none}
/* the small spaced capitals (the kitchen line, INGREDIENTS, the section titles)
   are too small and too far apart for Thai or Chinese: a little larger, close set */
:is(html:lang(th),html:lang(zh)) .ca-page :is(.ca-out__toggle,.ca-sub,.ca-tab,.cs__title,.cc__film,.cc__x,.xp-kicker,.ca__foot),
:is(html:lang(th),html:lang(zh)) .ca-page .sheet :is(.sheet__k,.sd-h,.sheet__read,.sheet__ing b,.sheet__all b,.sheet__group-h){letter-spacing:.06em}
:is(html:lang(th),html:lang(zh)) .ca-page :is(.ca-sub,.cs__title,.ca-out__toggle),
:is(html:lang(th),html:lang(zh)) .ca-page .sheet :is(.sheet__k,.sd-h,.sheet__read,.sheet__ing b,.sheet__all b,.sheet__group-h){font-size:11.5px}
@media (max-width:880px){.ca-lang__toggle{padding:0 12px}}
/* a phone's row is full: the 文 alone, its name in the chips below */
@media (max-width:520px){.ca-lang__toggle{padding:0;width:40px;justify-content:center}.ca-lang__toggle span{display:none}.ca-lang__toggle i{font-size:15px}}
