/* The Bistro of Oakwood. Brand tokens sampled from their Wix site + logo. */
:root {
  /* their ground is black; warmed a touch so the walnut sits on it */
  --night:   #0f0c0b;
  --night-2: #16110f;
  --night-3: #1f1815;
  --walnut:  #3d312c;   /* theirs */
  --walnut-2:#2a211d;
  --brass:   #907a55;   /* theirs: fills, rules, large type */
  --brass-d: #705f42;   /* theirs */
  --brass-l: #c9ae7e;   /* brass for small text on dark (AA) */
  --cream:   #f1e6d2;
  --cream-2: #c9bda9;   /* body copy on dark */
  --cream-3: #a59883;   /* meta text, AA on night */
  --line:    rgba(241, 230, 210, .12);
  --line-2:  rgba(241, 230, 210, .2);

  --f-display: "Playfair Display", Georgia, "Times New Roman", serif;
  --f-body: "Raleway", "Helvetica Neue", Arial, sans-serif;

  --r: 3px;
  --r-lg: 4px;
  --wrap: 1200px;
  --gut: clamp(16px, 4vw, 40px);
  --nav-h: 108px;
}

*, *::before, *::after { box-sizing: border-box; }
html { color-scheme: dark; scroll-behavior: smooth; scroll-padding-top: calc(var(--nav-h) + 24px); -webkit-text-size-adjust: 100%; }
a, button, summary, label, select, input, textarea { touch-action: manipulation; -webkit-tap-highlight-color: rgba(201,174,126,.18); }
.skip { position: absolute; left: 12px; top: -60px; z-index: 200; padding: 12px 16px; border-radius: var(--r); background: var(--brass-l); color: #1a130e; font-weight: 700; text-decoration: none; }
.skip:focus { top: 12px; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
html, body { overflow-x: hidden; }
@supports (overflow: clip) { html, body { overflow-x: clip; } }
body { margin: 0; background: var(--night); color: var(--cream-2); font: 400 17px/1.65 var(--f-body); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
figure { margin: 0; }
a { color: inherit; }
h1, h2, h3 { margin: 0; text-wrap: balance; color: var(--cream); font-family: var(--f-display); font-weight: 500; line-height: 1.08; letter-spacing: -.01em; }
p { margin: 0; }
ul { margin: 0; padding: 0; list-style: none; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--brass-l); outline-offset: 3px; }

.wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 max(var(--gut), env(safe-area-inset-right)) 0 max(var(--gut), env(safe-area-inset-left)); }

/* ---------- buttons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 46px; padding: 0 20px; border-radius: var(--r); border: 1px solid transparent; font: 600 .82rem/1 var(--f-body); letter-spacing: .14em; text-transform: uppercase; text-decoration: none; cursor: pointer; transition: background .2s, border-color .2s, color .2s, transform .15s; white-space: nowrap; }
.btn svg { width: 16px; height: 16px; fill: currentColor; flex: none; }
.btn:active { transform: translateY(1px); }
.btn--lg { min-height: 54px; padding: 0 26px; }
.btn--brass { background: var(--brass-l); color: #1a130e; }
.btn--brass:hover { background: #d8bf92; }
.btn--ghost { border-color: #6f6456; color: var(--cream); background: rgba(15, 12, 11, .35); }
.btn--ghost:hover { border-color: var(--brass-l); color: #fff; }

/* ---------- small type ---------- */
.eyebrow, .kicker { display: flex; align-items: center; gap: 10px; font: 600 .78rem/1.3 var(--f-body); letter-spacing: .2em; text-transform: uppercase; color: var(--brass-l); }
.kicker::before { content: ""; width: 28px; height: 1px; background: var(--brass); flex: none; }
.kicker:has(svg)::before { display: none; }
.kicker--light { color: #dcc49a; }
.eyebrow__oak { width: 11px; height: 18px; fill: var(--brass); color: var(--night); flex: none; }
.sec-title { font-size: clamp(2rem, 4.4vw, 3.4rem); margin-top: 14px; text-wrap: balance; }
.sec-lede { margin-top: 14px; max-width: 58ch; }
.sec-head { margin-bottom: clamp(28px, 4vw, 48px); }
.sec-head--row { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; }

/* ---------- status dot ---------- */
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--cream-3); flex: none; }
.status-dot { position: relative; }
.status-dot.is-open { background: #7fbf7a; }
.status-dot.is-open::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: #7fbf7a; animation: pulse 2.4s ease-out infinite; }
@keyframes pulse { 0% { transform: scale(1); opacity: .55; } 80%, 100% { transform: scale(3); opacity: 0; } }

/* ============================================================
   Nav
   ============================================================ */
.nav-shell { position: fixed; inset: 0 0 auto 0; z-index: 80; transition: background .3s, box-shadow .3s, transform .3s; }
.nav-shell.is-solid { background: rgba(15, 12, 11, .94); backdrop-filter: blur(10px); box-shadow: 0 1px 0 var(--line); }
.topbar { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 8px var(--gut); border-bottom: 1px solid var(--line); font: 500 .78rem/1.3 var(--f-body); letter-spacing: .04em; color: var(--cream-2); }
.topbar__l { display: flex; align-items: center; gap: 9px; }
.topbar__r { display: flex; gap: 20px; }
.topbar__r a { color: var(--cream); text-decoration: none; font-weight: 600; }
.nav { display: flex; align-items: center; gap: 28px; padding: 10px var(--gut); max-width: calc(var(--wrap) + 80px); margin: 0 auto; }
.brand img { height: 62px; width: auto; }
.nav__links { display: flex; gap: 28px; margin-left: auto; }
.nav__links a { font: 600 .78rem/1 var(--f-body); letter-spacing: .16em; text-transform: uppercase; text-decoration: none; color: var(--cream); opacity: .86; padding: 8px 0; position: relative; }
.nav__links a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 2px; height: 1px; background: var(--brass-l); transform: scaleX(0); transform-origin: left; transition: transform .25s; }
.nav__links a:hover { opacity: 1; }
.nav__links a:hover::after { transform: scaleX(1); }

/* ============================================================
   Hero
   ============================================================ */
.hero { position: relative; min-height: min(100svh, 920px); display: flex; align-items: flex-end; padding: calc(var(--nav-h) + 60px) 0 clamp(44px, 7vw, 88px); overflow: hidden; isolation: isolate; }
.hero__media { position: absolute; inset: 0; z-index: -1; background: var(--night); }
.hero__slide { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 1.6s ease; }
.hero__slide.is-on { opacity: 1; }
.hero__media::after, .phero__media::after { content: ""; position: absolute; inset: 0; z-index: 1; background: var(--scrim); }
/* ONE scrim for every photo/video that carries text: a flat base dim, then darker
   where the copy sits. Any new photo or clip dropped in inherits it, so legibility
   never depends on which image happens to be showing. QA checks every slide. */
.hero, .phero { --scrim:
  linear-gradient(90deg, rgba(15,12,11,.92) 0%, rgba(15,12,11,.8) 50%, rgba(15,12,11,.4) 82%, rgba(15,12,11,.3) 100%),
  linear-gradient(180deg, rgba(15,12,11,.7) 0%, rgba(15,12,11,.25) 22%, rgba(15,12,11,.25) 55%, rgba(15,12,11,.97) 100%); }
.hero__title, .hero__sub, .phero .hero__title { text-shadow: 0 1px 2px rgba(0,0,0,.55), 0 0 28px rgba(0,0,0,.45); }
/* small caps labels on media sit on their own solid chip: no photo can wash them out */
.hero .eyebrow, .phero .eyebrow { text-wrap: balance; display: inline-flex; padding: 8px 12px; border-radius: var(--r); background: #0f0c0b; box-shadow: inset 0 0 0 1px rgba(201,174,126,.3); color: #e3cda4; }
/* ghost buttons on photos get a solid ground too */
.hero .btn--ghost, .phero .btn--ghost { background: rgba(15,12,11,.88); }
.hero__inner { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 48px; align-items: end; }
.hero__title { font-size: clamp(2.6rem, 6.6vw, 5.4rem); margin-top: 20px; line-height: 1.02; text-wrap: balance; }
.hero__title em { font-style: italic; font-weight: 400; color: #e3cda4; }
.hero__sub { margin-top: 22px; max-width: 54ch; font-size: 1.08rem; color: #e1d6c3; }
.hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }

.tonight-card { position: relative; z-index: 2; padding: 22px 22px 18px; border: 1px solid var(--line-2); border-radius: var(--r-lg); background: #0f0c0b; }
.tonight-card__k { font: 600 .76rem/1 var(--f-body); letter-spacing: .22em; text-transform: uppercase; color: var(--brass-l); }
.tonight-card__status { display: flex; align-items: center; gap: 10px; margin-top: 14px; font: 500 1.3rem/1.25 var(--f-display); color: var(--cream); }
.tonight-card__hh { margin-top: 10px; font-size: .9rem; color: var(--cream-2); }
.tonight-card__hh.is-live { color: #e3cda4; font-weight: 600; }
.tonight-card__link { display: flex; align-items: center; min-height: 44px; margin-top: 12px; padding-top: 6px; border-top: 1px solid var(--line); width: 100%; font: 600 .78rem/1 var(--f-body); letter-spacing: .16em; text-transform: uppercase; color: var(--cream); text-decoration: none; }
.tonight-card__link:hover { color: var(--brass-l); }

/* ============================================================
   Proof strip
   ============================================================ */
.proof { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--night-2); }
.proof__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.proof__list li { display: flex; flex-direction: column; gap: 6px; padding: 26px 20px; border-left: 1px solid var(--line); }
.proof__list li:first-child { border-left: 0; padding-left: 0; }
.proof__big { display: flex; align-items: center; gap: 6px; font: 500 2.1rem/1 var(--f-display); color: var(--cream); }
.proof__big svg { width: 20px; height: 20px; fill: var(--brass-l); }
.proof__small { font-size: .84rem; letter-spacing: .02em; color: var(--cream-3); }

/* ============================================================
   Favorites
   ============================================================ */
.favs { padding: clamp(72px, 10vw, 128px) 0 clamp(56px, 8vw, 96px); }
.favs__grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; }
.fav { display: grid; text-decoration: none; }
.fav img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--r-lg); filter: saturate(1.04) contrast(1.02); transition: transform .5s cubic-bezier(.2,.7,.2,1), filter .3s; }
.fav:hover img { transform: translateY(-4px); filter: saturate(1.12) contrast(1.05); }
.fav__name { margin-top: 12px; font: 500 1.08rem/1.25 var(--f-display); color: var(--cream); }
.fav__price { margin-top: 3px; font-size: .88rem; color: var(--brass-l); font-variant-numeric: tabular-nums; }

/* ============================================================
   Menu
   ============================================================ */
.menu { position: relative; padding-bottom: clamp(72px, 10vw, 120px); background: var(--night-2); border-top: 1px solid var(--line); }
.menu__head { padding-top: clamp(64px, 9vw, 110px); }
.menu__head .sec-head { margin-bottom: 26px; }
.menu__switch { display: inline-flex; padding: 4px; border: 1px solid var(--line-2); border-radius: var(--r-lg); background: var(--night); }
.menu__switch button { min-height: 44px; padding: 0 22px; border: 0; border-radius: var(--r); background: transparent; font: 600 .78rem/1 var(--f-body); letter-spacing: .16em; text-transform: uppercase; color: var(--cream-2); cursor: pointer; transition: background .2s, color .2s; }
.menu__switch button[aria-selected="true"] { background: var(--brass-l); color: #1a130e; }

.menu__bar { position: sticky; top: calc(var(--nav-h) - 1px); z-index: 20; background: rgba(22, 17, 15, .95); backdrop-filter: blur(10px); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.menu__bar-in { display: flex; align-items: center; gap: 18px; }
.menu__chips { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; padding: 10px 0; flex: 1; min-width: 0; }
.menu__chips::-webkit-scrollbar { display: none; }
.menu__chips button { flex: none; padding: 9px 14px; border-radius: var(--r); min-height: 44px; font: 600 .78rem/1 var(--f-body); letter-spacing: .12em; text-transform: uppercase; text-decoration: none; color: var(--cream-2); border: 1px solid transparent; background: transparent; cursor: pointer; transition: color .2s, border-color .2s, background .2s; }
.menu__chips small { margin-left: 4px; font-size: .78rem; color: var(--brass-l); }
.menu__chips button:hover { color: var(--cream); }
.menu__chips button.is-on { color: var(--cream); border-color: var(--brass); background: rgba(144, 122, 85, .14); }

.gf-toggle { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; flex: none; cursor: pointer; font: 600 .78rem/1 var(--f-body); letter-spacing: .1em; text-transform: uppercase; color: var(--cream); user-select: none; }
.gf-toggle[hidden] { display: none; }
.gf-toggle input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.gf-toggle__track { position: relative; width: 40px; height: 22px; border-radius: 11px; background: var(--walnut); border: 1px solid var(--line-2); transition: background .2s; }
.gf-toggle__track span { position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: var(--cream-2); transition: transform .22s cubic-bezier(.3,.7,.3,1), background .2s; }
.gf-toggle input:checked + .gf-toggle__track { background: var(--brass-d); border-color: var(--brass-l); }
.gf-toggle input:checked + .gf-toggle__track span { transform: translateX(18px); background: #fff; }
.gf-toggle input:focus-visible + .gf-toggle__track { outline: 2px solid var(--brass-l); outline-offset: 3px; }

.menu__note { margin-top: 30px; padding: 14px 16px; max-width: 880px; border-left: 2px solid var(--brass); background: rgba(144, 122, 85, .08); font-size: .9rem; color: var(--cream-2); }
.menu__note:empty { display: none; }
.menu__count { margin-top: 14px; font-size: .84rem; color: var(--cream-3); min-height: 1.3em; }

.msec { padding-top: 28px; min-height: 420px; }
.msec[hidden] { display: none; }
.msec__head { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: baseline; gap: 18px; padding-bottom: 16px; border-bottom: 1px solid var(--line-2); }
.msec__title { font-size: clamp(1.7rem, 3vw, 2.3rem); }
.msec__desc { color: var(--cream-3); font-size: .9rem; }
.msec__desc p + p { margin-top: 4px; }
.msec__items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 48px; }

.mi { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.mi[hidden] { display: none; }
.mi--noimg { grid-template-columns: minmax(0, 1fr); }
.mi__img { width: 76px; height: 76px; padding: 0; border: 0; border-radius: var(--r-lg); overflow: hidden; cursor: zoom-in; background: var(--night-3); }
.mi__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.mi__img:hover img { transform: scale(1.07); }
.mi__top { display: flex; align-items: baseline; gap: 10px; }
.mi__name { min-width: 0; overflow-wrap: anywhere; font: 500 1.14rem/1.3 var(--f-display); color: var(--cream); }
.mi__lead { flex: 1; min-width: 12px; border-bottom: 1px dotted rgba(241, 230, 210, .25); transform: translateY(-4px); }
.mi__price { font: 600 1rem/1 var(--f-body); color: var(--brass-l); font-variant-numeric: tabular-nums; white-space: nowrap; }
.mi__desc { margin-top: 6px; font-size: .93rem; line-height: 1.55; color: var(--cream-2); }
.mi__extras { margin-top: 6px; font-size: .84rem; font-style: italic; color: var(--cream-3); }
.mi__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.tag { display: inline-flex; align-items: center; height: 24px; padding: 0 8px; border-radius: var(--r); border: 1px solid rgba(201, 174, 126, .5); font: 700 .75rem/1 var(--f-body); letter-spacing: .1em; text-transform: uppercase; color: var(--brass-l); }
.tag--hot { border-color: rgba(214, 120, 90, .6); color: #e39a80; }
.tag--sold-out { border-color: var(--cream-3); color: var(--cream); background: rgba(241,230,210,.08); }

.mi__variants { display: flex; gap: 18px; margin-top: 8px; flex-wrap: wrap; }
.mi__variants span { font-size: .84rem; color: var(--cream-3); }
.mi__variants b { color: var(--brass-l); font-weight: 600; margin-left: 4px; font-variant-numeric: tabular-nums; }

/* compact list for beer */
.msec--compact .msec__items { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.msec--compact .mi { padding: 13px 0; }
.msec--compact .mi__name { font-size: 1rem; }
.msec--compact .mi__desc { margin-top: 2px; font-size: .82rem; color: var(--cream-3); }

.menu__empty { padding: 40px 0; color: var(--cream-3); }

/* ============================================================
   Tonight
   ============================================================ */
.tonight { padding: clamp(72px, 10vw, 128px) 0; }
.tonight__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.board { display: flex; flex-direction: column; padding: 30px 28px 26px; border: 1px solid var(--line-2); border-radius: var(--r-lg); background: linear-gradient(180deg, var(--night-3), var(--night-2)); }
.board__k { font: 600 .78rem/1 var(--f-body); letter-spacing: .22em; text-transform: uppercase; color: var(--brass-l); }
.board__t { margin: 16px 0 12px; font-size: 1.7rem; }
.board p:not([class]) { font-size: .96rem; }
.board__foot { margin-top: auto; padding-top: 20px; font-size: .9rem; color: var(--cream); font-weight: 600; }
.board__foot a { color: var(--brass-l); }
.board--photo { padding: 0; overflow: hidden; position: relative; min-height: 320px; }
.board--photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.board--photo::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(15,12,11,0) 25%, rgba(15,12,11,.86) 55%, rgba(15,12,11,.97) 100%); }
.board__cap { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 16px 22px 18px; background: rgba(15,12,11,.92); border-top: 1px solid rgba(201,174,126,.25); font: italic 400 1.15rem/1.35 var(--f-display); color: var(--cream); }

/* ============================================================
   Walnut bands (oak grain)
   ============================================================ */
.walnut { position: relative; isolation: isolate; background: linear-gradient(160deg, var(--walnut) 0%, var(--walnut-2) 100%); overflow: hidden; }
.walnut__grain { position: absolute; inset: 0; z-index: -1; opacity: .5; mix-blend-mode: soft-light; pointer-events: none; }
.walnut__grain { background: url(assets/grain.webp?v=2) 0 0 / 1600px 800px repeat; }
.walnut .kicker::before { background: #dcc49a; }
.walnut p { color: #ddd1bd; }

/* ---------- Happy hour ---------- */
.hh { padding: clamp(72px, 10vw, 120px) 0; }
.hh__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(32px, 6vw, 80px); align-items: center; }
.hh__photo { position: relative; margin: 0; }
.hh__photo .board__video { border-radius: var(--r-lg); }
.hh__photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-lg); box-shadow: 0 30px 60px -30px rgba(0,0,0,.8); }
.hh__when { display: flex; flex-wrap: wrap; gap: 8px 28px; margin-top: 18px; font-size: 1.05rem; }
.hh__when b { color: var(--cream); font-weight: 600; }
.hh__deals { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin-top: 28px; background: rgba(241, 230, 210, .16); border: 1px solid rgba(241, 230, 210, .16); border-radius: var(--r-lg); overflow: hidden; }
.hh__deals li { display: flex; flex-direction: column; gap: 4px; padding: 20px 22px; background: rgba(26, 20, 17, .82); }
.hh__deals b { font: 500 2.1rem/1 var(--f-display); color: #e3cda4; }
.hh__deals span { font-size: .88rem; color: #d4c7b1; }
.hh__more { margin-top: 22px; font-size: .95rem; }
.hh__more a { color: #e3cda4; font-weight: 600; white-space: nowrap; }

/* ============================================================
   Reviews
   ============================================================ */
.reviews { padding: clamp(72px, 10vw, 128px) 0; }
.reviews__stars { display: flex; gap: 4px; }
.reviews__stars svg { width: 26px; height: 26px; fill: var(--brass-l); }
.reviews__stars .is-part { opacity: .55; }
.reviews__grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr; grid-template-rows: auto auto; gap: 18px; }
.rev { display: flex; flex-direction: column; justify-content: space-between; gap: 22px; padding: 28px; border: 1px solid var(--line-2); border-radius: var(--r-lg); background: var(--night-2); }
.rev blockquote { margin: 0; font: 400 1.08rem/1.5 var(--f-display); color: var(--cream); }
.rev--lead { grid-row: span 2; background: linear-gradient(170deg, var(--night-3), var(--night-2)); }
.rev--lead blockquote { font-size: clamp(1.3rem, 2.2vw, 1.7rem); line-height: 1.4; font-style: italic; }
.rev figcaption { font-size: .82rem; color: var(--cream-3); letter-spacing: .04em; }
.rev figcaption b { display: block; color: var(--brass-l); font-size: .92rem; letter-spacing: .02em; }
.reviews__grid .rev:nth-child(4) { grid-column: 2 / span 2; }

/* ============================================================
   Events
   ============================================================ */
.events { padding: clamp(72px, 10vw, 128px) 0; background: var(--night-2); border-top: 1px solid var(--line); }
.events__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 80px); align-items: start; }
.events__copy > p { margin-top: 18px; }
.events__quote { margin-top: 26px; padding-left: 18px; border-left: 2px solid var(--brass); }
.events__quote blockquote { margin: 0; font: italic 400 1.12rem/1.45 var(--f-display); color: var(--cream); }
.events__quote figcaption { margin-top: 8px; font-size: .84rem; color: var(--cream-3); }
.events__photo { margin-top: 30px; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--r-lg); }

.evform { display: grid; gap: 16px; padding: clamp(24px, 4vw, 36px); border: 1px solid var(--line-2); border-radius: var(--r-lg); background: var(--night); position: sticky; top: calc(var(--nav-h) + 24px); }
.evform__title { font-size: 1.7rem; }
.evform__sub { margin-top: -8px; font-size: .9rem; color: var(--cream-3); }
.evform__row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; }
.evform label { display: grid; gap: 7px; font: 600 .78rem/1.2 var(--f-body); letter-spacing: .14em; text-transform: uppercase; color: var(--cream-2); }
.evform input, .evform select, .evform textarea { width: 100%; min-width: 0; min-height: 48px; padding: 12px 14px; border: 1px solid #6f6456; border-radius: var(--r); background: var(--night-2); color: var(--cream); font: 400 1rem/1.3 var(--f-body); letter-spacing: 0; text-transform: none; color-scheme: dark; }
.evform textarea { resize: vertical; min-height: 92px; }
.evform input::placeholder, .evform textarea::placeholder { color: #8a7f6f; }
/* iOS Safari gives date inputs a native min-width and centred text, so they overhang the column */
.evform label { min-width: 0; }
.evform input[type="date"] { -webkit-appearance: none; appearance: none; display: block; max-width: 100%; text-align: left; }
.evform input[type="date"]::-webkit-date-and-time-value { text-align: left; margin: 0; }
.evform input[type="date"]::-webkit-calendar-picker-indicator { filter: invert(.8) sepia(.3); cursor: pointer; }
.evform input:focus-visible, .evform select:focus-visible, .evform textarea:focus-visible { outline: 2px solid var(--brass-l); outline-offset: 1px; border-color: var(--brass-l); }
.evform__btn { width: 100%; margin-top: 4px; }

/* ============================================================
   Story
   ============================================================ */
.story { padding: clamp(72px, 10vw, 120px) 0; }
.story__in { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 80px); align-items: center; }
.story__photo img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--r-lg); box-shadow: 0 30px 60px -30px rgba(0,0,0,.8); }
.story__copy p:not(.kicker) { margin-top: 18px; }
.story .eyebrow__oak { fill: #dcc49a; color: var(--walnut); }

/* ============================================================
   Visit
   ============================================================ */
.visit { padding: clamp(72px, 10vw, 128px) 0; }
.visit__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: clamp(32px, 6vw, 72px); }
.visit__addr { margin: 22px 0 20px; font: normal 400 1.3rem/1.45 var(--f-display); color: var(--cream); }
.visit__addr span { font: 500 .88rem/1 var(--f-body); color: var(--cream-3); }
.hours { width: 100%; margin-top: 34px; border-collapse: collapse; font-size: .95rem; }
.hours th, .hours td { padding: 11px 0; border-bottom: 1px solid var(--line); text-align: left; font-weight: 500; }
.hours th { color: var(--cream-2); }
.hours td { text-align: right; color: var(--cream-2); font-variant-numeric: tabular-nums; }
.hours tr.is-today th, .hours tr.is-today td { color: var(--cream); font-weight: 700; }
.hours tr.is-today th::after { content: "Today"; margin-left: 10px; padding: 3px 7px; border-radius: var(--r); background: var(--brass-l); color: #1a130e; font: 700 .75rem/1 var(--f-body); letter-spacing: .1em; text-transform: uppercase; vertical-align: 1px; }
.visit__contact { display: grid; gap: 12px; margin-top: 28px; }
.visit__contact li { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 12px; font-size: .95rem; }
.visit__contact span { color: var(--cream-3); font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; padding-top: 3px; }
.visit__contact a { color: var(--cream); text-decoration: none; font-weight: 600; overflow-wrap: anywhere; }
.visit__contact a:hover { color: var(--brass-l); }
.visit__map { min-height: 460px; border: 1px solid var(--line-2); border-radius: var(--r-lg); overflow: hidden; background: var(--night-3); }
.visit__map iframe { display: block; width: 100%; height: 100%; min-height: 460px; border: 0; filter: grayscale(.4) invert(.9) hue-rotate(180deg) sepia(.25) brightness(.9); }

/* ============================================================
   Footer
   ============================================================ */
.foot { padding: 64px 0 28px; border-top: 1px solid var(--line); background: #0a0807; font-size: .9rem; }
.foot__in { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 48px; align-items: start; }
.foot__brand { display: inline-block; }
.foot__logo { width: 120px; height: auto; }
.foot__cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; }
.foot__cols p { margin: 0 0 10px; line-height: 1.7; }
.foot__h { font: 600 .75rem/1.2 var(--f-body); letter-spacing: .18em; text-transform: uppercase; color: var(--brass-l); margin-bottom: 12px !important; }
.foot__cols a { color: var(--cream); text-decoration: none; border-bottom: 1px solid rgba(201, 174, 126, .35); }
.foot__cols a:hover, .foot__cols a:focus-visible { color: var(--brass-l); border-color: var(--brass-l); }
.foot__small { font-size: .82rem; color: var(--cream-3); }
.foot__cols a[href^="tel:"] { white-space: nowrap; }
@media (max-width: 1080px) { .foot__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 28px; } }
.foot__base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 24px; margin-top: 44px; padding-top: 20px; border-top: 1px solid var(--line); font-size: .8rem; color: var(--cream-3); }
.foot__base p { margin: 0; }
.foot__legal { display: flex; flex-wrap: wrap; gap: 6px 20px; }
.foot__legal a { color: var(--cream-2); text-decoration: none; }
.foot__legal a:hover, .foot__legal a:focus-visible { color: var(--brass-l); text-decoration: underline; }

/* legal pages (privacy, terms) */
.legal { padding: calc(var(--nav-h) + 56px) 0 80px; }
.legal__in { max-width: 760px; }
.legal__title { font-size: clamp(2.2rem, 5vw, 3.4rem); margin-top: 14px; }
.legal__date { margin: 10px 0 34px; font-size: .85rem; color: var(--cream-3); }
.legal h2 { font-size: 1.35rem; margin: 36px 0 10px; color: var(--cream); }
.legal p, .legal li { color: var(--cream-2); line-height: 1.75; max-width: 68ch; }
.legal p { margin: 0 0 16px; }
.legal h2 + p { margin-top: 0; }
.legal ul { padding-left: 20px; display: grid; gap: 6px; }
.legal a { color: var(--brass-l); }
.legal b { color: var(--cream); font-weight: 600; }

/* inquiry form: hidden spam trap + result message */
.evform__hp { position: absolute !important; top: 0; left: 0; width: 1px; height: 1px; padding: 0; border: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.evform__status { margin: 0; padding: 12px 14px; border-radius: var(--r); font-size: .92rem; line-height: 1.5; }
.evform__status.is-ok { background: rgba(127, 181, 138, .12); border: 1px solid rgba(127, 181, 138, .5); color: var(--cream); }
.evform__status.is-err { background: rgba(214, 120, 96, .12); border: 1px solid rgba(214, 120, 96, .55); color: var(--cream); }
.evform__btn[disabled] { opacity: .7; cursor: progress; }

/* ============================================================
   Lightbox + toast
   ============================================================ */
.lightbox { padding: 0; border: 0; background: transparent; max-width: min(92vw, 900px); max-height: 92vh; overflow: visible; }
.lightbox::backdrop { background: rgba(8, 6, 5, .88); backdrop-filter: blur(4px); }
.lightbox img { max-width: 100%; max-height: 80vh; width: auto; margin: 0 auto; border-radius: var(--r-lg); }
.lightbox__cap { margin-top: 12px; text-align: center; font: 500 1.1rem/1.3 var(--f-display); color: var(--cream); }
.lightbox__x { position: absolute; top: 8px; right: 8px; z-index: 1; width: 44px; height: 44px; border: 1px solid var(--line-2); border-radius: var(--r); background: var(--night); color: var(--cream); font-size: 1.6rem; line-height: 1; cursor: pointer; }

.toast { position: fixed; left: 50%; bottom: 28px; z-index: 120; max-width: min(92vw, 460px); padding: 14px 18px; border-radius: var(--r); background: var(--cream); color: #1a130e; font-size: .9rem; font-weight: 600; box-shadow: 0 18px 40px -12px rgba(0,0,0,.6); transform: translate(-50%, 20px); opacity: 0; pointer-events: none; transition: opacity .25s, transform .25s; }
.toast[data-show="true"] { opacity: 1; transform: translate(-50%, 0); }

.mbar { display: none; }

/* ============================================================
   Reveal
   ============================================================ */
[data-rv] { opacity: 0; transform: translateY(18px); transition: opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
[data-rv][data-seen="true"] { opacity: 1; transform: none; }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 1080px) {
  .nav__links { gap: 20px; }
  .favs__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hero__inner { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .tonight-card { max-width: 420px; }
}

@media (max-width: 900px) {
  :root { --nav-h: 66px; }
  .topbar { display: none; }
  .nav { padding: 8px var(--gut); }
  .brand img { height: 50px; }
  .nav__links { display: none; }
  .nav__cta { margin-left: auto; min-height: 44px; padding: 0 14px; font-size: .78rem; }
  .nav-shell { background: rgba(15, 12, 11, .9); backdrop-filter: blur(10px); box-shadow: 0 1px 0 var(--line); }

  .proof__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .proof__list li { padding: 20px 16px; }
  .proof__list li:nth-child(odd) { border-left: 0; padding-left: 0; }
  .proof__list li:nth-child(n+3) { border-top: 1px solid var(--line); }

  .msec__items { grid-template-columns: minmax(0, 1fr); }
  .msec--compact .msec__items { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
  .tonight__grid { grid-template-columns: minmax(0, 1fr); }
  .board--photo { min-height: 260px; }
  .hh__in, .events__in, .story__in, .visit__in { grid-template-columns: minmax(0, 1fr); }
  .evform { position: static; }
  .reviews__grid { grid-template-columns: minmax(0, 1fr); }
  .rev--lead { grid-row: auto; }
  .reviews__grid .rev:nth-child(4) { grid-column: auto; }
  .visit__map, .visit__map iframe { min-height: 340px; }

  .mbar { position: fixed; z-index: 90; left: calc(10px + env(safe-area-inset-left)); right: calc(10px + env(safe-area-inset-right)); bottom: calc(10px + env(safe-area-inset-bottom)); display: grid; grid-template-columns: 70px minmax(0, 1fr); gap: 8px; padding: 8px; border-radius: var(--r-lg); background: rgba(15, 12, 11, .95); backdrop-filter: blur(12px) saturate(1.2); box-shadow: 0 0 0 1px rgba(201, 174, 126, .4), 0 18px 40px -10px rgba(0,0,0,.7); }
  .mbar a { display: flex; align-items: center; justify-content: center; min-height: 54px; border-radius: var(--r); text-decoration: none; -webkit-tap-highlight-color: transparent; }
  .mbar a:active { transform: scale(.97); }
  .mbar__call { flex-direction: column; gap: 4px; border: 1px solid rgba(201, 174, 126, .5); color: var(--brass-l); font: 700 .75rem/1 var(--f-body); letter-spacing: .16em; text-transform: uppercase; }
  .mbar__call svg { width: 20px; height: 20px; fill: var(--brass-l); }
  .mbar__main { position: relative; overflow: hidden; gap: 12px; background: linear-gradient(120deg, #d6bb8a, #b3955f); color: #1a130e; box-shadow: inset 0 1px 0 rgba(255,255,255,.35); }
  .mbar__main::after { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 40%; background: linear-gradient(100deg, transparent, rgba(255,255,255,.45), transparent); transform: translateX(-150%) skewX(-18deg); animation: shine 3.8s ease-in-out infinite; }
  .mbar__main svg { width: 22px; height: 22px; color: #1a130e; flex: none; }
  .mbar__main span { display: grid; line-height: 1.15; }
  .mbar__main b { font: 700 .86rem/1.15 var(--f-body); letter-spacing: .1em; text-transform: uppercase; }
  .mbar__main small { font: 600 .78rem/1.25 var(--f-body); color: #2b2016; }
  .foot { padding-bottom: calc(110px + env(safe-area-inset-bottom)); }
  .toast { bottom: calc(96px + env(safe-area-inset-bottom)); }
}
@keyframes shine { 0%, 55% { transform: translateX(-150%) skewX(-18deg); } 85%, 100% { transform: translateX(330%) skewX(-18deg); } }

@media (max-width: 640px) {
  body { font-size: 16px; }
  .nav__cta { display: none; }
  .brand img { height: 46px; }
  .hero { min-height: auto; padding-top: calc(var(--nav-h) + 120px); }
  .hero, .phero { --scrim: linear-gradient(180deg, rgba(15,12,11,.72) 0%, rgba(15,12,11,.62) 30%, rgba(15,12,11,.9) 58%, rgba(15,12,11,1) 100%); }
  .hero__title { font-size: clamp(2.35rem, 11vw, 3rem); }
  .hero__ctas .btn { flex: 1 1 100%; }
  .tonight-card { max-width: none; }
  .favs__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .menu__switch { width: 100%; }
  .menu__switch button { flex: 1; padding: 0 8px; }
  .menu__bar-in { flex-wrap: wrap; gap: 0 12px; }
  .menu__chips { flex-basis: 100%; }
  .gf-toggle { padding: 0 0 10px; }
  .msec__head { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .mi { grid-template-columns: 64px minmax(0, 1fr); gap: 14px; }
  .mi--noimg { grid-template-columns: minmax(0, 1fr); }   /* rows without a photo (sides, wine, beer) keep the full width on phones */
  .mi__img { width: 64px; height: 64px; }
  /* price stays top-right; a long name wraps beside it instead of pushing the price down */
  .mi__top { flex-wrap: nowrap; align-items: baseline; gap: 12px; }
  .mi__name { flex: 1 1 auto; }
  .mi__lead { display: none; }
  .msec--compact .msec__items { grid-template-columns: minmax(0, 1fr); }
  .hh__deals b { font-size: 1.7rem; }
  .evform__row { grid-template-columns: minmax(0, 1fr); }
  .visit__contact li { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .foot__in { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .foot__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 18px; }
  .foot__base { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  [data-rv] { opacity: 1; transform: none; }
}

/* favorite -> menu jump */
.mi.is-flash { animation: flash 1.8s ease-out; }
@keyframes flash { 0%, 30% { background: rgba(201, 174, 126, .16); box-shadow: -12px 0 0 rgba(201, 174, 126, .16), 12px 0 0 rgba(201, 174, 126, .16); } 100% { background: transparent; box-shadow: none; } }
.mi--noimg { padding: 16px 0; }
.mi--noimg .mi__variants { margin-top: 4px; }
.events__cap { display: inline-flex; gap: 8px; margin-top: 20px; padding: 8px 12px; border: 1px solid rgba(201,174,126,.45); border-radius: var(--r); font-size: .82rem; letter-spacing: .06em; color: var(--cream-2); }
.events__cap b { color: var(--brass-l); font-weight: 700; }

/* optional video slots: invisible until the file loads */
.hero__video, .board__video { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 1.2s ease; }
.hero__video.is-ready, .board__video.is-ready { opacity: 1; }
.board__video { z-index: 0; }
.story__btn { margin-top: 26px; color: var(--cream); }
.reviews .sec-lede { color: var(--cream-3); font-size: .95rem; }

/* ============================================================
   About page
   ============================================================ */
.nav__links a[aria-current="page"] { opacity: 1; }
.nav__links a[aria-current="page"]::after { transform: scaleX(1); }

.phero { position: relative; isolation: isolate; overflow: hidden; min-height: min(78svh, 720px); display: flex; align-items: flex-end; padding: calc(var(--nav-h) + 80px) 0 clamp(48px, 7vw, 88px); }
.phero__media { position: absolute; inset: 0; z-index: -1; }
.phero__media img { width: 100%; height: 100%; object-fit: cover; }

.phero .hero__title { max-width: 16ch; font-size: clamp(2.4rem, 5.6vw, 4.6rem); }

.owner { padding: clamp(72px, 10vw, 128px) 0; }
.owner__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(32px, 6vw, 80px); align-items: center; }
.owner__photo { position: relative; border-radius: var(--r-lg); overflow: hidden; aspect-ratio: 4 / 5; background: var(--night-3); box-shadow: 0 30px 60px -30px rgba(0,0,0,.8); }
.owner__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.owner__portrait { opacity: 0; transition: opacity .6s; object-position: 50% 18%; }
.owner__portrait.is-ready { opacity: 1; }
.owner__quote { margin: 26px 0; padding-left: 20px; border-left: 2px solid var(--brass); }
.owner__quote blockquote { margin: 0; font: italic 400 clamp(20px, 2.2vw, 24px)/1.4 var(--f-display); color: var(--cream); }
.gf-quote { max-width: 720px; margin: 18px 0 8px; }
.gf-quote[hidden] { display: none; }
.owner__quote figcaption { margin-top: 10px; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--brass-l); }
.owner__lede { margin-top: 18px; font: italic 400 1.45rem/1.4 var(--f-display); color: #e3cda4; }
.owner__copy p:not(.kicker):not(.owner__lede) { margin-top: 16px; }

.history { padding: clamp(64px, 9vw, 112px) 0; background: var(--night-2); border-top: 1px solid var(--line); }
.tl { position: relative; margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 22px; }
.tl::before { content: ""; position: absolute; top: 7px; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, var(--brass), rgba(144,122,85,.2)); }
.tl__item { position: relative; padding-top: 34px; }
.tl__item::before { content: ""; position: absolute; top: 0; left: 0; width: 15px; height: 15px; border-radius: 50%; background: var(--night-2); border: 2px solid var(--brass-l); }
.tl__item:last-child::before { background: var(--brass-l); }
.tl__when { font: 600 .78rem/1 var(--f-body); letter-spacing: .2em; text-transform: uppercase; color: var(--brass-l); }
.tl__title { margin: 12px 0 10px; font-size: 1.35rem; line-height: 1.2; }
.tl__item p:not(.tl__when) { font-size: .93rem; }

.beliefs { padding: clamp(72px, 10vw, 120px) 0; }
.beliefs__quote { max-width: 900px; }
.beliefs__quote blockquote { margin: 0; font: italic 400 clamp(1.9rem, 4.4vw, 3.4rem)/1.18 var(--f-display); color: var(--cream); }
.beliefs__quote figcaption { margin-top: 16px; font: 600 .78rem/1 var(--f-body); letter-spacing: .22em; text-transform: uppercase; color: #dcc49a; }
.beliefs__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin-top: 48px; background: rgba(241,230,210,.16); border: 1px solid rgba(241,230,210,.16); border-radius: var(--r-lg); overflow: hidden; }
.beliefs__grid li { padding: 26px 24px; background: rgba(26, 20, 17, .82); }
.beliefs__grid b { display: block; font: 500 1.35rem/1.2 var(--f-display); color: #e3cda4; }
.beliefs__grid p { margin-top: 10px; font-size: .94rem; color: #d4c7b1; }

.strip__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.strip__grid img { width: 100%; height: clamp(200px, 26vw, 360px); object-fit: cover; }

.cta { padding: clamp(64px, 9vw, 104px) 0; }
.cta__in { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
.cta__hours { display: flex; align-items: center; gap: 10px; margin-top: 16px; font: 500 1.15rem/1.3 var(--f-display); color: var(--cream); }
.cta__btns { display: flex; gap: 12px; flex-wrap: wrap; }

@media (max-width: 900px) {
  .owner__in { grid-template-columns: minmax(0, 1fr); }
  .owner__photo { aspect-ratio: 4 / 3; }
  .tl { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .tl::before { top: 0; bottom: 0; left: 7px; right: auto; width: 1px; height: auto; background: linear-gradient(180deg, var(--brass), rgba(144,122,85,.2)); }
  .tl__item { padding: 0 0 30px 38px; }
  .tl__when { padding-top: 2px; }
  .beliefs__grid { grid-template-columns: minmax(0, 1fr); }
  .strip__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .strip__grid img { height: 44vw; }
}
@media (max-width: 640px) {
  .phero { min-height: auto; padding-top: calc(var(--nav-h) + 110px); }
  .phero .hero__title { font-size: clamp(2.1rem, 9.6vw, 2.7rem); }
  .cta__btns .btn { flex: 1 1 100%; }
}
/* grill clip: keep the steaks, not the cook's sleeve, in frame on narrow screens */
.hero__video { object-position: 62% 78%; }
@media (max-width: 640px) { .hero__video { object-position: 58% 100%; } }
.hero__media picture { display: contents; }
/* phone home hero: the wine clip is a wide shot, so it sits as a square panel under the nav,
   fading into the dark, with the headline below it (a full-bleed tall crop lost the three glasses) */
@media (max-width: 640px) and (orientation: portrait) {
  .hero--prime { background: var(--night); --scrim: linear-gradient(180deg, rgba(15,12,11,.18) 0%, rgba(15,12,11,.12) 30%, rgba(15,12,11,.7) 50%, rgba(15,12,11,1) 64%); }
  .hero--prime .hero__slide, .hero--prime .hero__video { top: var(--nav-h); bottom: auto; height: auto; aspect-ratio: 1 / 1; object-position: 50% 50%;
    -webkit-mask-image: linear-gradient(180deg, #000 72%, transparent 100%); mask-image: linear-gradient(180deg, #000 72%, transparent 100%); }
}

/* ============================================================
   Occasions page + home teaser
   ============================================================ */
.occ-teaser { padding: clamp(72px, 10vw, 128px) 0; background: var(--night-2); border-top: 1px solid var(--line); }
.occ-teaser__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 80px); align-items: center; }
.occ-teaser__photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-lg); box-shadow: 0 30px 60px -30px rgba(0,0,0,.8); }
.occ-teaser__copy > p:not(.kicker) { margin-top: 18px; }
.occ-teaser__btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }

.occ-types { padding: clamp(72px, 10vw, 120px) 0; }
.occ-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.occ-card { display: flex; flex-direction: column; border: 1px solid var(--line-2); border-radius: var(--r-lg); overflow: hidden; background: var(--night-2); }
.occ-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.occ-card div { padding: 20px 20px 24px; }
.occ-card h3 { font-size: 1.35rem; }
.occ-card p { margin-top: 10px; font-size: .93rem; }

.steps { padding: clamp(64px, 9vw, 104px) 0; }
.steps__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 36px 0 0; padding: 0; list-style: none; }
.steps__list li { padding: 24px; border: 1px solid rgba(241,230,210,.16); border-radius: var(--r-lg); background: rgba(26, 20, 17, .82); }
.steps__n { display: inline-grid; place-items: center; width: 34px; height: 34px; border: 1px solid #dcc49a; border-radius: 50%; font: 500 1rem/1 var(--f-display); color: #e3cda4; }
.steps__list b { display: block; margin-top: 16px; font: 500 1.3rem/1.2 var(--f-display); color: var(--cream); }
.steps__list p { margin-top: 8px; font-size: .94rem; color: #d4c7b1; }

.events__list { margin-top: 14px; display: grid; gap: 8px; }
.events__list li { position: relative; padding-left: 20px; font-size: .95rem; }
.events__list li::before { content: ""; position: absolute; left: 0; top: .7em; width: 8px; height: 1px; background: var(--brass-l); }

.reserve { padding: clamp(72px, 10vw, 120px) 0; border-top: 1px solid var(--line); }
.reserve__in { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 64px); align-items: start; }
.reserve__side img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-lg); }
.reserve__hh { margin-top: 18px; padding: 22px; border-radius: var(--r-lg); background: linear-gradient(160deg, var(--walnut), var(--walnut-2)); }
.reserve__hh p:not(.kicker) { margin-top: 10px; font-size: .95rem; color: #ddd1bd; }
.reserve__hh b { color: #e3cda4; }

@media (max-width: 1080px) { .occ-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 900px) {
  .occ-teaser__in, .reserve__in { grid-template-columns: minmax(0, 1fr); }
  .steps__list { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .occ-grid { grid-template-columns: minmax(0, 1fr); }
  .occ-teaser__btns .btn { flex: 1 1 100%; }
}

/* ---------- mobile menu ---------- */
.nav__toggle { display: none; }
.mnav { display: none; }
@media (max-width: 900px) {
  .nav__toggle { display: grid; place-content: center; gap: 6px; width: 46px; height: 46px; margin-left: 8px; padding: 0; border: 1px solid var(--line-2); border-radius: var(--r); background: transparent; cursor: pointer; }
  .nav__cta + .nav__toggle { margin-left: 8px; }
  .nav__toggle span { display: block; width: 20px; height: 1.5px; background: var(--cream); transition: transform .25s; }
  .nav__toggle[aria-expanded="true"] span:first-child { transform: translateY(3.75px) rotate(45deg); }
  .nav__toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.75px) rotate(-45deg); }
  .mnav:not([hidden]) { overscroll-behavior: contain; display: grid; gap: 2px; padding: 12px var(--gut) 22px; background: rgba(15, 12, 11, .98); border-top: 1px solid var(--line); max-height: calc(100svh - var(--nav-h)); overflow-y: auto; }
  .mnav a:not(.btn) { padding: 14px 0; border-bottom: 1px solid var(--line); font: 500 1.35rem/1.2 var(--f-display); color: var(--cream); text-decoration: none; }
  .mnav .btn { margin-top: 18px; }
  .mnav__meta { margin-top: 14px; font-size: .84rem; color: var(--cream-3); text-align: center; }
}
@media (max-width: 640px) { .nav .nav__toggle { margin-left: auto; } }
.reserve__call-card { align-self: center; }
.reserve__call-card > p:not(.kicker) { margin-top: 16px; }
.reserve__phone { display: inline-flex; align-items: center; gap: 14px; min-height: 48px; margin-top: 26px; font: 500 clamp(2rem, 5vw, 3rem)/1 var(--f-display); color: var(--cream); text-decoration: none; }
.reserve__phone svg { width: 30px; height: 30px; fill: var(--brass-l); flex: none; }
.reserve__phone:hover { color: var(--brass-l); }
.reserve__alt { font-size: .9rem; color: var(--cream-3); }
.reserve__alt a { color: var(--cream); font-weight: 600; }
.reserve__hours { display: flex; align-items: center; gap: 10px; font: 500 1.1rem/1.3 var(--f-display); color: var(--cream); }

/* ============================================================
   Menu: section rail + pager (easier on phones)
   ============================================================ */
.chiprail { position: relative; flex: 1; min-width: 0; display: flex; align-items: center; padding-bottom: 6px; }
.chiprail .menu__chips { scroll-snap-type: x proximity; scroll-padding: 0 40px; }
.chiprail .menu__chips button { scroll-snap-align: start; }
.chiprail__arrow { position: absolute; top: 10px; z-index: 2; width: 44px; height: 44px; display: none; place-items: center; padding: 0; border: 0; cursor: pointer; color: var(--cream); }
.chiprail__arrow svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.chiprail__arrow--l { left: 0; background: linear-gradient(90deg, rgb(22,17,15) 55%, rgba(22,17,15,0)); justify-content: start; }
.chiprail__arrow--r { right: 0; background: linear-gradient(270deg, rgb(22,17,15) 55%, rgba(22,17,15,0)); justify-content: end; }
.chiprail.has-left .chiprail__arrow--l, .chiprail.has-right .chiprail__arrow--r { display: grid; }
.chiprail__track { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; border-radius: 2px; background: rgba(241,230,210,.1); overflow: hidden; opacity: 0; transition: opacity .2s; }
.chiprail.is-scrollable .chiprail__track { opacity: 1; }
.chiprail__thumb { display: block; height: 100%; border-radius: 2px; background: var(--brass-l); will-change: transform; }
.chiprail__hint { display: none; }
.chiprail__hint[hidden] { display: none !important; }

.menu__note { margin-top: 26px; max-width: 880px; padding: 0; border-left: 2px solid var(--brass); background: rgba(144, 122, 85, .08); font-size: .9rem; }
.menu__note[hidden] { display: none; }
.menu__note summary { cursor: pointer; padding: 12px 16px; font-weight: 600; color: var(--cream); list-style: none; }
.menu__note summary::-webkit-details-marker { display: none; }
.menu__note summary::after { content: "+"; float: right; color: var(--brass-l); font-weight: 700; }
.menu__note[open] summary::after { content: "\2013"; }
.menu__note p { padding: 0 16px 14px; color: var(--cream-2); }

.mpager { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 12px; margin-top: 30px; }
.mpager__btn { display: grid; gap: 4px; min-height: 64px; padding: 12px 16px; border: 1px solid var(--line-2); border-radius: var(--r-lg); background: var(--night); color: var(--cream); font: 500 1.08rem/1.2 var(--f-display); cursor: pointer; transition: border-color .2s, background .2s; }
.mpager__btn:hover { border-color: var(--brass-l); background: var(--night-3); }
.mpager__btn small { font: 600 .75rem/1 var(--f-body); letter-spacing: .18em; text-transform: uppercase; color: var(--brass-l); }
.mpager__btn--prev { text-align: left; }
.mpager__btn--prev small::before { content: "\2190  "; }
.mpager__btn--next { text-align: right; border-color: rgba(201,174,126,.55); }
.mpager__btn--next small::after { content: "  \2192"; }
.mpager__count { font-size: .8rem; letter-spacing: .1em; color: var(--cream-3); white-space: nowrap; }

@media (max-width: 640px) {
  .chiprail { flex-wrap: wrap; padding-bottom: 0; min-width: 0; }
  .chiprail .menu__chips { padding: 6px 0 6px; }
  .chiprail__arrow { top: 10px; }
  .chiprail__track { position: relative; flex-basis: 100%; }
  .chiprail__hint { display: block; font-size: .8rem; letter-spacing: .04em; color: var(--brass-l); }
  .chiprail__hint[hidden] { display: none; }
  .chiprail__hint span { display: inline-block; animation: nudge 1.6s ease-in-out infinite; }

  .mpager { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .mpager__count { grid-column: 1 / -1; grid-row: 1; text-align: center; }
  .mpager > span:empty { display: none; }
  .mpager__btn:only-of-type { grid-column: 1 / -1; }
}
@keyframes nudge { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(4px); } }
/* phones: hint and gluten-free switch share one line so the sticky bar stays short */
@media (max-width: 640px) {
  .menu__bar-in { flex-wrap: nowrap !important; align-items: flex-start; gap: 10px !important; }
  .menu__bar-in .gf-toggle { order: -1; flex-direction: column; gap: 4px; justify-content: center; min-height: 56px; padding: 0 !important; font-size: .75rem; letter-spacing: .08em; }
  .gf-toggle__txt--long { display: none; }
  .chiprail { flex: 1 1 auto !important; }
  .chiprail__hint { display: block; margin: 0 auto 10px !important; min-height: 0; }
  .gf-toggle__track { width: 36px; height: 20px; }
  .gf-toggle__track span { width: 14px; height: 14px; }
  .gf-toggle input:checked + .gf-toggle__track span { transform: translateX(16px); }
}

/* ============================================================
   Phone scroll fixes (Tony's audit, 2026-09-24)
   ============================================================ */
.visit__map { position: relative; }
.visit__map-cover { display: none; }
@media (max-width: 900px) {
  /* live blur behind fixed/sticky bars repaints every scroll frame on phones: use solid fills */
  .nav-shell, .nav-shell.is-solid, .menu__bar, .mbar, .tonight-card { -webkit-backdrop-filter: none; backdrop-filter: none; }
  .nav-shell, .nav-shell.is-solid { background: #0f0c0b; }
  .menu__bar { background: #16110f; }
  .mbar { background: #0f0c0b; }

  /* no fade-ins on phones: momentum scrolling outruns them and sections look blank */
  [data-rv] { opacity: 1 !important; transform: none !important; transition: none !important; }
  /* the map swallows swipes; it stays inert until tapped */
  .visit__map-cover { display: flex; align-items: flex-end; justify-content: center; position: absolute; inset: 0; z-index: 2; padding: 0 0 16px; border: 0; background: linear-gradient(180deg, transparent 60%, rgba(15,12,11,.75)); color: var(--cream); font: 600 .78rem/1 var(--f-body); letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
  .visit__map-cover[hidden] { display: none; }
  .visit__map iframe { pointer-events: none; }
  .visit__map.is-live iframe { pointer-events: auto; }
  html:has(body.nav-open), body.nav-open { overflow: hidden; }
}

@media (max-width: 900px) { html { scroll-padding-bottom: 96px; } }
.gf-toggle__txt--short { display: none; }
@media (max-width: 640px) { .gf-toggle__txt--short { display: inline; } }
/* hero crossfade pause (WCAG 2.2.2) */
.hero__pause { position: absolute; right: max(16px, env(safe-area-inset-right)); bottom: 16px; z-index: 3; width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid #6f6456; border-radius: 50%; background: rgba(15,12,11,.85); color: var(--cream); cursor: pointer; }
.hero__pause svg { width: 16px; height: 16px; fill: currentColor; }
.hero__pause .i-play { display: none; }
.hero__pause[aria-pressed="true"] .i-play { display: block; }
.hero__pause[aria-pressed="true"] .i-pause { display: none; }
@media (max-width: 640px) { .hero__pause { top: calc(var(--nav-h) + 12px); bottom: auto; } }
.lightbox img { background: var(--night-3); min-height: 200px; }

/* ============================================================
   Events & Catering landing page
   ============================================================ */
.ways { padding: clamp(72px, 10vw, 120px) 0; }
.ways__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.way { display: flex; flex-direction: column; border: 1px solid var(--line-2); border-radius: var(--r-lg); overflow: hidden; background: var(--night-2); }
.way--feature { border-color: rgba(201,174,126,.55); }
.way img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.way__media { position: relative; overflow: hidden; }
.way__media img { display: block; }
.way__body { display: flex; flex-direction: column; gap: 14px; padding: 26px 26px 28px; flex: 1; }
.way__k { font: 600 .78rem/1 var(--f-body); letter-spacing: .2em; text-transform: uppercase; color: var(--brass-l); }
.way__t { font-size: clamp(1.6rem, 2.6vw, 2rem); text-wrap: balance; }
.way__list { display: grid; gap: 8px; }
.way__list li { position: relative; padding-left: 20px; font-size: .95rem; }
.way__list li::before { content: ""; position: absolute; left: 0; top: .7em; width: 8px; height: 1px; background: var(--brass-l); }
.way .btn { align-self: flex-start; margin-top: auto; }

.occ-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--line-2); border: 1px solid var(--line-2); border-radius: var(--r-lg); overflow: hidden; }
.occ-list li { padding: 24px; background: var(--night-2); }
.occ-list h3 { font-size: 1.35rem; }
.occ-list p { margin-top: 8px; font-size: .94rem; }

.evfood { padding: clamp(72px, 10vw, 120px) 0; }
.evfood__head { max-width: 760px; }
.evfood__head p:not(.kicker) { margin-top: 14px; }
.evfood__grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; margin-top: 32px; }
.evfood__grid li { display: grid; gap: 10px; }
.evfood__grid img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--r-lg); }
.evfood__grid span { font: 500 1.02rem/1.25 var(--f-display); color: var(--cream); }
.evfood__gf { margin-top: 28px; padding: 20px 22px; border-radius: var(--r-lg); background: rgba(15,12,11,.85); border-left: 2px solid var(--brass-l); }
.evfood__gf b { color: #e3cda4; font: 500 1.2rem/1.2 var(--f-display); }
.evfood__gf p { margin-top: 6px; }

.steps__list--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.steps:not(.walnut) .steps__list li { background: var(--night-2); border-color: var(--line-2); }

.evquotes { padding: 0 0 clamp(64px, 9vw, 104px); }
.evquotes__grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 18px; }

.inquiry { padding: clamp(72px, 10vw, 120px) 0; background: var(--night-2); border-top: 1px solid var(--line); scroll-margin-top: calc(var(--nav-h) + 8px); }
.inquiry__in { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 64px); align-items: start; }
.inquiry__copy > p:not(.kicker) { margin-top: 16px; }
.inquiry__call { margin-top: 30px; padding-top: 22px; border-top: 1px solid var(--line); }
.inquiry__call .reserve__phone { margin-top: 8px; }
.inquiry .evform { position: static; }
.evform__where { margin-top: 6px !important; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; border: 0; }
.evform__where legend { margin-bottom: 8px; font: 600 .78rem/1.2 var(--f-body); letter-spacing: .14em; text-transform: uppercase; color: var(--cream-2); }
.choice { position: relative; display: flex !important; align-items: center; justify-content: center; min-height: 52px; padding: 8px 10px; border: 1px solid #6f6456; border-radius: var(--r); cursor: pointer; text-align: center; font: 600 .86rem/1.2 var(--f-body) !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--cream) !important; }
.choice input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.choice:has(input:checked) { border-color: var(--brass-l); background: rgba(201,174,126,.14); box-shadow: inset 0 0 0 1px var(--brass-l); }
.choice:has(input:focus-visible) { outline: 2px solid var(--brass-l); outline-offset: 2px; }
.evform__fine { font-size: .86rem; color: var(--cream-3); text-align: center; }

.faq { padding: clamp(72px, 10vw, 120px) 0; }
.faq__in { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.4fr); gap: clamp(28px, 5vw, 64px); }
.faq__list details { border-bottom: 1px solid var(--line-2); }
.faq__list summary { display: flex; justify-content: space-between; gap: 16px; align-items: center; min-height: 56px; padding: 14px 0; cursor: pointer; list-style: none; font: 500 1.15rem/1.3 var(--f-display); color: var(--cream); }
.faq__list summary::-webkit-details-marker { display: none; }
.faq__list summary::after { content: "+"; flex: none; color: var(--brass-l); font: 600 1.3rem/1 var(--f-body); }
.faq__list details[open] summary::after { content: "\2013"; }
.faq__list p { padding: 0 0 18px; max-width: 62ch; }
.faq__list a { color: var(--brass-l); font-weight: 600; }

.cta--events { padding: clamp(64px, 9vw, 96px) 0; }

@media (max-width: 1080px) {
  .evfood__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .steps__list--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .ways__grid, .inquiry__in, .faq__in, .evquotes__grid { grid-template-columns: minmax(0, 1fr); }
  .occ-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .occ-list { grid-template-columns: minmax(0, 1fr); }
  .evfood__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .steps__list--4 { grid-template-columns: minmax(0, 1fr); }
  .evform__where { grid-template-columns: minmax(0, 1fr); }
  .way .btn { align-self: stretch; }
}

@media (max-width: 400px) { .btn { white-space: normal; text-align: center; line-height: 1.25; padding-top: 10px; padding-bottom: 10px; } }

/* ============================================================
   v2 — "less is more" homepage (Eleven Madison Park / Carbone reference):
   pictures carry it, one line per section, detail lives on the inner pages
   ============================================================ */
.page-index .hero { min-height: 100svh; }
.hero__status { display: flex; align-items: center; gap: 10px; margin-top: 22px; font: 500 1rem/1.3 var(--f-body); color: #e1d6c3; text-shadow: 0 1px 2px rgba(0,0,0,.6); }
.weekline { padding-top: 18px; padding-bottom: 18px; text-align: center; font: italic 400 1.15rem/1.4 var(--f-display); color: #e3cda4; }

/* proof in one line */
.proofline { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--night-2); }
.proofline p { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 34px; padding-top: 18px; padding-bottom: 18px; font-size: .92rem; color: var(--cream-2); }
.proofline span { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.proofline b { font: 500 1.25rem/1 var(--f-display); color: var(--cream); }
.proofline svg { width: 14px; height: 14px; fill: var(--brass-l); }

/* photo reel: an endless, captionless strip */
.reel { padding: 12px 0; overflow: hidden; background: var(--night); }
.reel__track { display: flex; width: max-content; animation: reel 90s linear infinite; }
.reel:hover .reel__track { animation-play-state: paused; }
.reel__row { display: flex; gap: 12px; padding-right: 12px; }
.reel__row li { flex: none; width: clamp(200px, 22vw, 320px); }
.reel__row img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--r-lg); }
@keyframes reel { to { transform: translateX(-50%); } }

/* menu doorway: picture + one line + three doors */
.doorway { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); align-items: center; background: var(--night-2); }
.doorway__media img { width: 100%; height: 100%; min-height: 420px; object-fit: cover; }
.doorway__copy { padding: clamp(40px, 6vw, 88px); }
.doorway__btns { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }

/* full-bleed picture bands with one line of copy */
.band { position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: flex-end; min-height: min(78svh, 640px); padding: clamp(56px, 8vw, 96px) 0; }
.band__img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.band::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(15,12,11,.35) 0%, rgba(15,12,11,.55) 45%, rgba(15,12,11,.94) 100%), linear-gradient(90deg, rgba(15,12,11,.7), rgba(15,12,11,.1) 70%); }
.band__in { display: grid; justify-items: start; gap: 6px; }
.band__line { margin: 6px 0 18px; font: 400 1.25rem/1.4 var(--f-display); color: #efe4d2; text-shadow: 0 1px 2px rgba(0,0,0,.6); }
.band .sec-title { text-shadow: 0 1px 2px rgba(0,0,0,.55), 0 0 24px rgba(0,0,0,.4); }
.band .kicker { display: inline-flex; padding: 7px 11px; border-radius: var(--r); background: #0f0c0b; box-shadow: inset 0 0 0 1px rgba(201,174,126,.3); color: #e3cda4; }
.band .kicker::before { display: none; }
.band .btn--ghost { background: rgba(15,12,11,.88); }

/* one review, set large */
.onequote { padding: clamp(64px, 10vw, 120px) 0; text-align: center; }
.onequote blockquote { margin: 0 auto; max-width: 22ch; font: italic 400 clamp(1.9rem, 4.6vw, 3.2rem)/1.2 var(--f-display); color: var(--cream); text-wrap: balance; }
.onequote figcaption { margin-top: 18px; font: 600 .8rem/1 var(--f-body); letter-spacing: .18em; text-transform: uppercase; color: var(--brass-l); }

/* owner teaser */
.owner-teaser { padding: 0 0 clamp(64px, 9vw, 104px); }
.owner-teaser__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 64px); align-items: center; }
.owner-teaser__photo { position: relative; aspect-ratio: 4 / 3; border-radius: var(--r-lg); overflow: hidden; }
.owner-teaser__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.owner-teaser .btn { margin-top: 24px; }

/* visit essentials */
.visitline { padding: 36px 0; border-top: 1px solid var(--line); background: var(--night-2); }
.visitline__in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; }
.visitline__t { font-size: clamp(1.4rem, 2.6vw, 1.9rem); }
.visitline__s { display: flex; align-items: center; gap: 10px; margin-top: 8px; color: var(--cream-2); }
.visitline__btns { display: flex; flex-wrap: wrap; gap: 10px; }

/* slim page header (menu, visit) */
.phero--slim { min-height: min(46svh, 420px); }
.phero--slim .menu__switch { margin-top: 22px; }
.menu--page { border-top: 0; }
.menu--page .chiprail__hint { padding-top: 18px; }

@media (max-width: 900px) {
  .doorway { grid-template-columns: minmax(0, 1fr); }
  .doorway__media img { min-height: 0; aspect-ratio: 4 / 3; }
  .owner-teaser__in { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .proofline p { gap: 10px 22px; font-size: .85rem; }
  .reel__row li { width: 62vw; }
  .reel__track { animation-duration: 70s; }
  .doorway__btns .btn { flex: 1 1 30%; padding: 0 10px; }
  .band { min-height: 72svh; }
  .band .btn { align-self: stretch; }
  .visitline__btns .btn { flex: 1 1 45%; }
  .phero--slim { min-height: 0; padding-top: calc(var(--nav-h) + 90px); }
  .phero--slim .menu__switch { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .reel { overflow-x: auto; } .reel__track { animation: none; } }
@media (max-width: 640px) {
  .proofline p { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 12px; justify-items: start; }
  .proofline span { white-space: normal; flex-wrap: wrap; }
}

/* ============================================================
   Homepage directions A / B / C (shared pieces first)
   ============================================================ */
/* ---- hero: phones get picture + headline only (the bottom bar does Call + Menu) */
.hero--prime { min-height: 100svh; }
.hero__cue { display: none; }
@media (max-width: 640px) {
  .hero--prime { align-items: flex-end; padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
  .hero--prime .hero__ctas--desk { display: none; }
  .hero--prime .hero__title { font-size: clamp(2.5rem, 12vw, 3.3rem); line-height: 1.02; }
  .hero__cue { display: block; position: absolute; left: 50%; bottom: calc(92px + env(safe-area-inset-bottom)); z-index: 3; width: 44px; height: 44px; transform: translateX(-50%); }
  .hero__cue span { position: absolute; left: 50%; top: 6px; width: 1px; height: 32px; background: linear-gradient(180deg, rgba(227,205,164,0), #e3cda4); overflow: hidden; }
  .hero__cue span::after { content: ""; position: absolute; left: -1px; top: -12px; width: 3px; height: 12px; border-radius: 2px; background: #f1e6d2; animation: cue 2.2s ease-in-out infinite; }
  .hero--prime .hero__copy { padding-bottom: 36px; }
}
@keyframes cue { 0% { transform: translateY(0); opacity: 0; } 30% { opacity: 1; } 100% { transform: translateY(44px); opacity: 0; } }

/* ---- shared arrow chip */
.go { display: inline-grid; place-items: center; width: 48px; height: 48px; flex: none; border-radius: 50%; border: 1px solid rgba(241,230,210,.45); color: var(--cream); transition: background .25s, border-color .25s, transform .25s; }
.go svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
a:hover > .go, a:hover .go { background: var(--brass-l); border-color: var(--brass-l); color: #1a130e; transform: translateX(3px); }

.panel__n { font: 600 .78rem/1 var(--f-body); letter-spacing: .24em; color: #e3cda4; text-shadow: 0 1px 2px rgba(0,0,0,.7); }
.panel__n i { font-style: normal; margin-left: 6px; color: rgba(241,230,210,.7); }

/* ---- A · panels: three full-screen pictures that stack as you scroll */
.panels { position: relative; }
.panel { position: sticky; top: var(--nav-h); display: flex; align-items: flex-end; height: calc(100svh - var(--nav-h)); min-height: 460px; overflow: hidden; isolation: isolate; text-decoration: none; color: var(--cream); box-shadow: 0 -24px 48px -12px rgba(0,0,0,.6); }
.panel > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(.2,.7,.2,1); }
.panel:hover > img { transform: scale(1.03); }
.panel::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(15,12,11,.12) 0%, rgba(15,12,11,.3) 30%, rgba(15,12,11,.82) 58%, rgba(15,12,11,.96) 100%); }
.panel__in { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "n n" "t go" "s go"; column-gap: 20px; row-gap: 12px; align-items: end; padding-bottom: clamp(40px, 8vh, 80px); }
.panel__n { grid-area: n; }
.panel__t { grid-area: t; font: 400 clamp(2.8rem, 8vw, 6.4rem)/.95 var(--f-display); letter-spacing: -.02em; text-shadow: 0 2px 24px rgba(0,0,0,.35); }
.panel__s { grid-area: s; font-size: 1.05rem; color: #e1d6c3; }
.panel .go { grid-area: go; align-self: end; }

/* ---- B · editorial index */
.idx { padding: clamp(40px, 8vw, 96px) 0 clamp(32px, 6vw, 72px); }
.idx__list { list-style: none; margin: 0 auto; border-top: 1px solid var(--line-2); }
.idx__row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: clamp(14px, 3vw, 36px); padding: clamp(20px, 3.4vw, 34px) 0; border-bottom: 1px solid var(--line-2); text-decoration: none; color: var(--cream); }
.idx__n { align-self: start; padding-top: .5em; font: 600 .78rem/1 var(--f-body); letter-spacing: .2em; color: var(--brass-l); }
.idx__txt { display: grid; gap: 8px; min-width: 0; }
.idx__t { font: 400 clamp(2rem, 6.2vw, 4.6rem)/1 var(--f-display); letter-spacing: -.015em; transition: color .25s; }
.idx__row:hover .idx__t { color: #e3cda4; }
.idx__s { font-size: .95rem; color: var(--cream-3); }
.idx__img { width: clamp(88px, 20vw, 260px); aspect-ratio: 4 / 3; border-radius: var(--r-lg); overflow: hidden; }
.idx__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.idx__row:hover .idx__img img { transform: scale(1.06); }

/* ---- C · three tall cards: swipe on phones, triptych on desktop */
.cards { padding: clamp(28px, 6vw, 72px) 0; }
.cards__track { list-style: none; margin: 0; display: grid; grid-auto-flow: column; grid-auto-columns: 84%; gap: 12px; padding: 0 var(--gut); overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 var(--gut); scrollbar-width: none; }
.cards__track::-webkit-scrollbar { display: none; }
.cards__track li { scroll-snap-align: start; }
.pcard { position: relative; display: flex; align-items: flex-end; aspect-ratio: 4 / 5.2; border-radius: var(--r-lg); overflow: hidden; isolation: isolate; text-decoration: none; color: var(--cream); }
.pcard > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform 1s cubic-bezier(.2,.7,.2,1); }
.pcard:hover > img { transform: scale(1.04); }
.pcard::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(15,12,11,.05) 10%, rgba(15,12,11,.62) 32%, rgba(15,12,11,.9) 50%, rgba(15,12,11,.97) 100%); }
.pcard__in { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "n n" "t go" "s go"; column-gap: 14px; row-gap: 10px; align-items: end; width: 100%; padding: 24px; }
.pcard__in .panel__n { grid-area: n; }
.pcard__t { grid-area: t; font: 400 clamp(2rem, 7vw, 2.8rem)/1 var(--f-display); letter-spacing: -.01em; }
.pcard__s { grid-area: s; font-size: .95rem; color: #e1d6c3; }
.pcard .go { grid-area: go; }
.cards__dots { display: flex; justify-content: center; gap: 8px; margin-top: 18px; }
.cards__dots span { width: 7px; height: 7px; border-radius: 50%; background: rgba(241,230,210,.28); transition: background .25s, transform .25s; }
.cards__dots span.is-on { background: var(--brass-l); transform: scale(1.25); }
@media (min-width: 901px) {
  .cards__track { grid-auto-flow: row; grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: calc(var(--wrap) + 2 * var(--gut)); margin: 0 auto; overflow: visible; }
  .cards__dots { display: none; }
}

/* ---- praise: stars, one voice, the numbers */
.praise { padding: clamp(72px, 12vw, 140px) 0; text-align: center; }
.praise__stars { display: flex; justify-content: center; gap: 4px; }
.praise__stars svg { width: 16px; height: 16px; fill: var(--brass-l); }
.praise blockquote { margin: 22px auto 0; max-width: 20ch; font: italic 400 clamp(2rem, 5vw, 3.4rem)/1.15 var(--f-display); color: var(--cream); text-wrap: balance; }
.praise figcaption { margin-top: 18px; font: 600 .8rem/1 var(--f-body); letter-spacing: .18em; text-transform: uppercase; color: var(--brass-l); }
.praise__meta { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 28px; margin-top: 40px; padding-top: 28px; border-top: 1px solid var(--line); max-width: 560px; margin-left: auto; margin-right: auto; font-size: .92rem; color: var(--cream-2); }
.praise__meta b { font: 500 1.2rem/1 var(--f-display); color: var(--cream); margin-right: 4px; }

/* ---- Tony: one quiet, fully tappable line */
.owner-line { border-top: 1px solid var(--line); }
.owner-line__in { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: clamp(16px, 3vw, 32px); padding-top: 28px; padding-bottom: 28px; text-decoration: none; color: var(--cream); }
.owner-line__photo { position: relative; width: clamp(88px, 14vw, 150px); aspect-ratio: 1; border-radius: 50%; overflow: hidden; }
.owner-line__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.owner-line__txt { display: grid; gap: 6px; }
.owner-line__txt small { font: 600 .78rem/1 var(--f-body); letter-spacing: .18em; text-transform: uppercase; color: var(--brass-l); }
.owner-line__t { font: 400 clamp(1.5rem, 4vw, 2.4rem)/1.1 var(--f-display); }
.owner-line__more { font-size: .92rem; color: var(--cream-3); }
.page-home .visitline { border-top: 1px solid var(--line); }

@media (max-width: 640px) {
  .idx__row { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "img img" "txt go"; row-gap: 16px; }
  .idx__n { display: none; }
  .idx__img { grid-area: img; width: 100%; aspect-ratio: 16 / 9; }
  .idx__txt { grid-area: txt; }
  .idx__row .go { grid-area: go; }
  .panel { height: calc(100svh - var(--nav-h)); }
  .panel__in { padding-bottom: calc(104px + env(safe-area-inset-bottom)); }
  .owner-line__in { grid-template-columns: auto minmax(0, 1fr); }
  .owner-line__in .go { display: none; }
}
@media (prefers-reduced-motion: reduce) { .hero__cue span::after { animation: none; } }

/* ---- homepage focal points: B list on phones/tablets, C cards on desktop */
.pillars { padding: clamp(40px, 8vw, 96px) 0 clamp(32px, 6vw, 72px); }
.pillars .pillars__desk { display: none; }
@media (min-width: 901px) {
  .pillars .pillars__mobile { display: none; }
  .pillars .pillars__desk { display: grid; padding: 0 var(--gut); }
}

/* ---- reviews: an endless, pausable strip of real Google reviews */
.rscroll { padding: clamp(64px, 10vw, 120px) 0 clamp(48px, 8vw, 96px); overflow: hidden; }
.rscroll__head { text-align: center; }
.rscroll__head .kicker { justify-content: center; }
.rscroll__meta { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 28px; margin-top: 16px; font-size: .95rem; color: var(--cream-2); }
.rscroll__meta b { font: 500 1.2rem/1 var(--f-display); color: var(--cream); margin-right: 4px; }
.rscroll__view { margin-top: clamp(32px, 5vw, 56px); outline-offset: -2px; }
.rscroll__track { display: flex; width: max-content; animation: reel 80s linear infinite; }
.rscroll__view:hover .rscroll__track, .rscroll__view:focus .rscroll__track, .rscroll__view:active .rscroll__track { animation-play-state: paused; }
.rscroll__row { display: flex; gap: 16px; padding-right: 16px; }
.rscroll__row li { flex: none; width: clamp(280px, 30vw, 380px); display: flex; }
.rcard { display: flex; flex-direction: column; gap: 16px; width: 100%; margin: 0; padding: 26px 26px 24px; border: 1px solid var(--line-2); border-radius: var(--r-lg); background: var(--night-2); }
.rcard__stars { display: flex; gap: 3px; }
.rcard__stars svg { width: 14px; height: 14px; fill: var(--brass-l); }
.rcard blockquote { margin: 0; flex: 1; font: 400 1.08rem/1.5 var(--f-display); color: var(--cream); }
.rcard figcaption { font-size: .82rem; color: var(--cream-3); }
.rcard figcaption b { display: block; margin-bottom: 2px; font-size: .95rem; color: var(--brass-l); }

/* ---- about on the homepage: picture / clip left, a little story right */
.home-about { padding: clamp(64px, 10vw, 120px) 0; border-top: 1px solid var(--line); background: var(--night-2); }
.home-about__in { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 80px); align-items: center; }
.home-about__media { position: relative; aspect-ratio: 4 / 3; border-radius: var(--r-lg); overflow: hidden; background: var(--night-3); }
.home-about__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.home-about__copy p:not(.kicker) { margin-top: 18px; max-width: 52ch; }
.home-about__copy .btn { margin-top: 28px; }
.page-home .visit { border-top: 1px solid var(--line); }

@media (max-width: 900px) { .home-about__in { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 640px) { .rscroll__row li { width: 82vw; } .rscroll__track { animation-duration: 60s; } }
@media (prefers-reduced-motion: reduce) { .rscroll__view { overflow-x: auto; } .rscroll__track { animation: none; } }

/* ---------- Tony film: teaser buttons + lightbox ---------- */
.phero__cta { margin-top: 22px; position: relative; z-index: 2; }
.home-about__copy .btn + .btn { margin-left: 10px; }
.film-len { font-weight: 500; opacity: .75; letter-spacing: .08em; }
.home-about__media { position: relative; }
.film-chip { position: absolute; left: 14px; bottom: 14px; z-index: 3; display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 16px; border: 1px solid rgba(201,174,126,.45); border-radius: var(--r); background: rgba(15,12,11,.9); color: var(--cream); font: 600 .78rem/1 var(--f-body); letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
.film-chip svg { width: 14px; height: 14px; fill: var(--brass-l); }
.film-chip:hover { border-color: var(--brass-l); }
.film { padding: 0; border: 0; background: transparent; width: min(1100px, 94vw); max-height: 94svh; overflow: visible; }
.film::backdrop { background: rgba(8,6,5,.92); }
.film__v { display: block; width: 100%; max-height: 90svh; aspect-ratio: 16 / 9; background: #000; border-radius: var(--r); }
.film--tall { width: min(460px, 94vw); }
.film--tall .film__v { aspect-ratio: 9 / 16; }
.film__x { position: absolute; top: -52px; right: 0; width: 44px; height: 44px; border: 1px solid #6f6456; border-radius: var(--r); background: #0f0c0b; color: var(--cream); font-size: 1.6rem; line-height: 1; cursor: pointer; }
@media (max-width: 560px) {
  .home-about__copy .btn + .btn { margin-left: 0; margin-top: 10px; }
  .film__x { top: -50px; }
}

/* Tony's 9:16 soundbites inline on About (owner + gluten-free) */
.owner__photo--film { aspect-ratio: 9 / 16; max-width: 420px; width: 100%; justify-self: center; background: #000; }
.owner__film { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; background: #000; }
@media (min-width: 901px) { .owner--flip .owner__photo { order: 2; } }
@media (max-width: 900px) { .owner__photo--film { max-width: 360px; } }

/* ---------- About: family photos (Tony's own) ---------- */
.family { padding: clamp(72px, 10vw, 120px) 0; }
.family__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-areas: "wide wide note" "roger rusty golf"; gap: clamp(12px, 1.6vw, 20px); margin-top: 40px; align-items: start; }
.family__fig { margin: 0; }
.family__fig img { display: block; width: 100%; height: auto; border-radius: var(--r-lg); background: var(--night-3); }
.family__fig figcaption { margin-top: 10px; font-size: .86rem; line-height: 1.45; color: #cbbfae; }
.family__fig--wide { grid-area: wide; }
.family__fig--roger { grid-area: roger; }
.family__fig--rusty { grid-area: rusty; }
.family__fig--golf { grid-area: golf; }
.family__fig--roger img, .family__fig--rusty img, .family__fig--golf img { aspect-ratio: 3 / 4; object-fit: cover; }
.family__fig--roger img { object-position: 50% 75%; }
.family__fig--golf img { object-position: 50% 40%; }
.family__note { grid-area: note; align-self: center; }
.family__note p { margin: 0; font: italic 400 clamp(1.15rem, 1.6vw, 1.4rem)/1.45 var(--f-display); color: var(--cream); }
@media (max-width: 900px) {
  .family__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "wide wide" "roger rusty" "golf note"; }
}

/* permanent allergen line under the menu, and the plain-text menu for no-JS visitors */
.menu__allergen{max-width:62ch;margin:28px 0 8px;font-size:.875rem;line-height:1.55;color:var(--cream-2)}
.menu__allergen a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.menu__text h2{margin:28px 0 8px}
.menu__text h3{margin:22px 0 6px;font-size:1.1rem}
.menu__text ul{margin:0;padding-left:1.1em}
.menu__text li{margin:6px 0;line-height:1.5}
.menu__all{margin-top:40px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.menu__all summary{cursor:pointer;padding:18px 0;font:500 1.15rem/1.3 var(--f-display);color:var(--cream);list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px}
.menu__all summary::-webkit-details-marker{display:none}
.menu__all summary::after{content:"+";font:400 1.5rem/1 var(--f-body);color:var(--brass-l)}
.menu__all[open] summary::after{content:"\2212"}
.menu__all summary:focus-visible{outline:2px solid var(--brass-l);outline-offset:4px}
.menu__all .menu__text{padding-bottom:24px;columns:2 340px;column-gap:48px}
.menu__all .menu__text h2{column-span:all}
.menu__all .menu__text h3,.menu__all .menu__text li{break-inside:avoid}
.menu__all .menu__text h2:first-child{margin-top:4px}

/* popups don't scroll the page behind them */
.lightbox, .film { overscroll-behavior: contain; }

/* review links under the home scroller and the event quotes */
.rscroll__more,.evquotes__more{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:22px;font-size:.95rem}
.rscroll__more{justify-content:center}
.rscroll__more a,.evquotes__more a{color:var(--cream);text-decoration:none;border-bottom:1px solid rgba(201,174,126,.45);padding:6px 0}
.rscroll__more a:hover,.rscroll__more a:focus-visible,.evquotes__more a:hover,.evquotes__more a:focus-visible{color:var(--brass-l);border-color:var(--brass-l)}
.evquotes__grid--5{grid-template-columns:1.3fr 1fr 1fr}
.evquotes__grid--5 .rev{padding:22px}
.evquotes__grid--5 .rev blockquote{font-size:1rem}
.evquotes__grid--5 .rev--lead blockquote{font-size:clamp(1.15rem,1.8vw,1.45rem)}
@media (max-width:1080px){.evquotes__grid--5{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.evquotes__grid--5 .rev--lead{grid-column:1/-1;grid-row:auto}}
@media (max-width:640px){.evquotes__grid--5{grid-template-columns:minmax(0,1fr)}}
