/* ============================================================
   SIRRAH — A Steakhouse with a French Twist
   Dark-luxe homepage. Cinzel (display caps) · Bodoni Moda (italic
   editorial accent) · Jost (geometric body). Candlelight gold on
   warm near-black, oxblood accents, grain + vignette atmosphere.
   ============================================================ */

:root{
  --ink:        #0C0B0A;   /* warm near-black ground */
  --ink-2:      #141210;
  --ink-3:      #1B1814;
  --bone:       #ECE5D8;   /* warm off-white text */
  --bone-dim:   #ADA293;
  --gold:       #C6A15B;   /* candlelight */
  --gold-2:     #D9BC7E;
  --oxblood:    #4A1419;
  --cherry:     #8E2A2E;
  --hair:       rgba(236,229,216,.14);
  --hair-soft:  rgba(236,229,216,.08);

  /* Sirrah brand type — Mostra Nuova (titles, set lowercase per brand) + Futura PT (body).
     Jost is the Futura-clone fallback until Futura PT is added to the Adobe kit. */
  --f-display:  "mostra-nuova", "Josefin Sans", "Jost", sans-serif;
  --f-body:     "futura-pt", "Jost", system-ui, sans-serif;

  --maxw: 1240px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  background:var(--ink);
  color:var(--bone);
  font-family:var(--f-body);
  font-weight:300;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,video{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }

/* ---------- atmosphere overlays ---------- */
.grain{
  position:fixed; inset:0; z-index:9; pointer-events:none; opacity:.05;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  mix-blend-mode:overlay;
}
.vignette{
  position:fixed; inset:0; z-index:8; pointer-events:none;
  background:radial-gradient(120% 90% at 50% 40%, transparent 55%, rgba(0,0,0,.55) 100%);
}

/* ---------- shared type ---------- */
.eyebrow{
  font-family:var(--f-body);
  font-weight:500;
  font-size:.72rem;
  letter-spacing:.42em;
  text-transform:uppercase;
  color:var(--bone-dim);
}
.eyebrow--gold{ color:var(--gold); }

.display{
  font-family:var(--f-display);
  font-weight:700;   /* all headings bold to match "At night" per Ryan 2026-06-24 */
  line-height:1.06;
  letter-spacing:.01em;
  text-transform:none;   /* sentence-case headings per Ryan 2026-06-24 (was lowercase) */
  font-size:clamp(2.1rem, 4.2vw, 3.4rem);   /* one even size across all headings, 2026-06-24 */
  color:var(--bone);
}
.display--xl{ font-size:clamp(2.1rem, 4.2vw, 3.4rem); font-weight:700; }
.display--center{ text-align:center; }

.lede{
  font-family:var(--f-body);
  font-weight:300;
  font-size:clamp(1.05rem, 1.5vw, 1.3rem);
  line-height:1.7;
  letter-spacing:.01em;
  color:var(--bone-dim);
  max-width:46ch;
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  font-family:var(--f-body); font-weight:500;
  font-size:.74rem; letter-spacing:.26em; text-transform:uppercase;
  padding:.95em 1.9em; border:1px solid transparent;
  transition:all .4s var(--ease); cursor:pointer; white-space:nowrap;
}
.btn--gold{ background:var(--gold); color:var(--ink); }
.btn--gold:hover{ background:var(--gold-2); transform:translateY(-2px); }
.btn--ghost{ border-color:var(--hair); color:var(--bone); }
.btn--ghost:hover{ border-color:var(--gold); color:var(--gold); }
.btn--book{
  background:transparent; border-color:var(--gold); color:var(--gold);
  padding:.7em 1.5em; font-size:.68rem;
}
.btn--book:hover{ background:var(--gold); color:var(--ink); }
.btn--lg{ padding:1.15em 2.6em; font-size:.8rem; }

.ulink{ color:var(--gold); border-bottom:1px solid var(--hair); padding-bottom:2px; transition:border-color .3s; }
.ulink:hover{ border-color:var(--gold); }

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:1.6rem clamp(1.2rem,4vw,3rem);
  transition:background .5s var(--ease), padding .5s var(--ease), border-color .5s;
  border-bottom:1px solid transparent;
}
.nav.is-stuck{
  background:rgba(12,11,10,.86);
  backdrop-filter:blur(14px);
  padding-top:1rem; padding-bottom:1rem;
  border-bottom:1px solid var(--hair-soft);
}
.nav__mark{ display:flex; align-items:center; }
.nav__mark img{ height:30px; width:auto; transition:height .5s var(--ease); }
.nav.is-stuck .nav__mark img{ height:26px; }
.nav__links{ display:flex; gap:2.4rem; align-items:center; }
.nav__links a{
  font-family:var(--f-body); font-weight:400;
  font-size:.78rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone); opacity:.82; transition:opacity .3s, color .3s;
}
.nav__links a:hover{ opacity:1; color:var(--gold); }
.nav__ig{ color:var(--gold)!important; opacity:1!important; }

/* ============================================================
   HERO
   ============================================================ */
.hero{ position:relative; height:100svh; min-height:600px; overflow:hidden; display:flex; align-items:center; justify-content:center; }
.hero__media{ position:absolute; inset:0; }
.hero__img{
  width:100%; height:100%; object-fit:cover;
  animation:slowpush 22s var(--ease) infinite alternate;
}
@keyframes slowpush{ from{ transform:scale(1.04); } to{ transform:scale(1.16); } }
.hero__scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(12,11,10,.55) 0%, rgba(12,11,10,.15) 32%, rgba(12,11,10,.35) 62%, rgba(12,11,10,.92) 100%),
    radial-gradient(80% 60% at 50% 55%, transparent 40%, rgba(12,11,10,.55) 100%);
}
.hero__inner{ position:relative; z-index:2; text-align:center; padding:0 1.2rem; }
.hero__inner .eyebrow{ color:var(--bone); text-shadow:0 1px 3px rgba(0,0,0,.95), 0 2px 18px rgba(0,0,0,.7); }   /* legible on the photo */
.hero__mark{ margin:.15em 0 .5em; }
.hero__mark img{
  width:clamp(250px, 42vw, 580px); height:auto; margin:0 auto;
  filter:drop-shadow(0 8px 44px rgba(0,0,0,.55));
}
.hero__line{
  font-family:var(--f-body); font-weight:300;
  font-size:clamp(1.05rem, 1.9vw, 1.5rem); color:var(--gold-2);
  letter-spacing:.04em;
}
.hero__sub{
  font-family:var(--f-body); font-weight:300;
  font-size:clamp(1.05rem, 1.7vw, 1.4rem); color:var(--bone-dim);
  letter-spacing:.04em; margin-top:.9rem; text-shadow:0 2px 14px rgba(0,0,0,.55);
}
.hero__cta{ margin-top:2.4rem; display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }
.hero__scroll{
  position:absolute; bottom:2.2rem; left:50%; transform:translateX(-50%);
  z-index:2; width:1px; height:54px; background:var(--hair); overflow:hidden;
}
.hero__scroll span{
  position:absolute; top:-54px; left:0; width:1px; height:54px; background:var(--gold);
  animation:drip 2.4s var(--ease) infinite;
}
@keyframes drip{ 0%{ top:-54px; } 60%,100%{ top:54px; } }

/* ============================================================
   BANDS / shared section frame
   ============================================================ */
.band{ padding:clamp(5rem,11vw,9rem) clamp(1.2rem,5vw,3rem); position:relative; }
.what-band{
  border-top:1px solid var(--hair-soft);
  background:
    radial-gradient(90% 70% at 50% 30%, rgba(74,20,25,.55) 0%, transparent 60%),
    linear-gradient(180deg, var(--ink) 0%, var(--ink-2) 100%);
}
.what{
  max-width:var(--maxw); margin:0 auto;
  display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(2rem,6vw,5rem); align-items:center;
}
.what__text .display{ margin:.6rem 0 1.4rem; }
.what__fig{ position:relative; }
.what__fig img,.what__fig video{ width:100%; aspect-ratio:3/4; object-fit:cover; border:1px solid var(--hair-soft); }
.what__fig::after{
  content:""; position:absolute; inset:0; box-shadow:inset 0 0 80px rgba(0,0,0,.5); pointer-events:none;
}

/* ---------- THE ROOM (full-bleed) ---------- */
.room{ position:relative; min-height:82svh; display:flex; align-items:flex-end; overflow:hidden; }
.room__bg{ position:absolute; inset:0; }
.room__bg img{ width:100%; height:100%; object-fit:cover; }
.room__scrim{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(12,11,10,.6) 0%, transparent 30%, rgba(12,11,10,.4) 60%, rgba(12,11,10,.95) 100%);
}
/* Bar sits on bright marble — stronger left+bottom scrim so cream text reads (2026-06-24) */
#bar .room__scrim{
  background:
    linear-gradient(90deg, rgba(10,9,8,.94) 0%, rgba(10,9,8,.78) 40%, rgba(10,9,8,.18) 72%, transparent 100%),
    linear-gradient(180deg, transparent 38%, rgba(10,9,8,.82) 100%);
}
/* Bar on mobile: the copy goes nearly full-width, so the left-weighted scrim
   leaves the heading + top body lines sitting on bright marble. Swap to a strong
   bottom-up wash that darkens the whole copy zone uniformly. (Ryan 2026-06-25) */
@media (max-width:620px){
  #bar .room__scrim{
    background:linear-gradient(180deg,
      rgba(10,9,8,.12) 0%,
      rgba(10,9,8,.40) 36%,
      rgba(10,9,8,.76) 55%,
      rgba(10,9,8,.93) 74%,
      rgba(10,9,8,.97) 100%);
  }
}

/* Brunch: portrait hero shown in full (no forced 3/4 crop) per Ryan 2026-06-24 */
#brunch .what__fig img{ aspect-ratio:auto; height:auto; }
.room__copy{ position:relative; z-index:2; padding:clamp(2.5rem,7vw,6rem); max-width:760px; }
.room__copy .display{ margin:.8rem 0 1.2rem; }

/* ---------- THE CONCEPT ---------- */
.concept{
  position:relative; text-align:center; border-top:1px solid var(--hair-soft);
  background:
    radial-gradient(90% 70% at 50% 30%, rgba(74,20,25,.55) 0%, transparent 60%),
    linear-gradient(180deg, var(--ink) 0%, var(--ink-2) 100%);
}
.concept__inner{ position:relative; max-width:820px; margin:0 auto; }
/* hairline ornament above the heading */
.concept .eyebrow::after{
  content:""; display:block; width:48px; height:1px; background:var(--gold);
  margin:1.1rem auto 0; opacity:.7;
}
.concept .display{ margin:1rem 0 1.6rem; }
.concept__body{
  font-family:var(--f-body); font-weight:300; font-size:clamp(1.05rem,1.4vw,1.25rem);
  line-height:1.85; color:var(--bone); max-width:56ch; margin:0 auto;
}
.concept__cta{ margin-top:2.6rem; }

/* interactive à-la-carte dishes — hover reveals the food, following the cursor */
.dish{ cursor:pointer; color:var(--gold-2); border-bottom:1px solid rgba(198,161,91,.45);
  padding-bottom:1px; transition:color .3s, border-color .3s; white-space:nowrap; }
.dish:hover{ color:var(--gold); border-color:var(--gold); }
.menu-preview{ position:fixed; top:0; left:0; z-index:60; width:220px; aspect-ratio:3/4;
  pointer-events:none; opacity:0; transform:translate(-50%,-118%) scale(.92);
  transition:opacity .25s var(--ease), transform .25s var(--ease);
  border:1px solid var(--hair); box-shadow:0 24px 70px rgba(0,0,0,.6);
  overflow:hidden; background:var(--ink-3); border-radius:2px; }
.menu-preview.show{ opacity:1; transform:translate(-50%,-118%) scale(1); }
.menu-preview img,.menu-preview video{ width:100%; height:100%; object-fit:cover; display:block; }

/* ---------- THE TABLE (living-stills grid) ---------- */
.table{ padding:clamp(4.5rem,9vw,7rem) clamp(1.2rem,5vw,3rem); max-width:var(--maxw); margin:0 auto; }
.table__head{ text-align:center; margin-bottom:clamp(2.4rem,5vw,3.4rem); }
.table__head .display{ margin-top:.7rem; }
.stills{ display:grid; grid-template-columns:repeat(5,1fr); gap:clamp(.5rem,1vw,.9rem); }
.still{ position:relative; overflow:hidden; aspect-ratio:9/16; background:var(--ink-3); border:1px solid var(--hair-soft); }
.still video,.still img{ width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease), filter .6s; filter:brightness(.96) saturate(1.02); }
.still:hover video{ transform:scale(1.06); filter:brightness(1.06) saturate(1.06); }
/* poster fallback so the food reads even before the video lazy-loads */
.still video{ background:#1B1814 center/cover no-repeat; }
.still figcaption{
  position:absolute; left:0; right:0; bottom:0; z-index:2; text-align:left;
  padding:1.6rem .95rem 1.05rem;
  background:linear-gradient(transparent, rgba(12,11,10,.94));
}
.still figcaption b{
  display:block; font-family:var(--f-display); font-weight:500;
  text-transform:lowercase; letter-spacing:.03em; font-size:1.1rem;
  color:var(--bone); margin-bottom:.22rem;
}
.still figcaption span{
  display:block; font-family:var(--f-body); font-weight:300;
  font-size:.72rem; letter-spacing:.03em; line-height:1.45; color:var(--bone-dim);
}
.still::before{ /* gold hairline accent on hover */
  content:""; position:absolute; inset:0; z-index:3; border:1px solid transparent; transition:border-color .5s; pointer-events:none;
}
.still:hover::before{ border-color:rgba(198,161,91,.6); }

/* ---------- PRIVATE EVENTS ---------- */
.events{ position:relative; min-height:68svh; display:flex; align-items:center; overflow:hidden; }
.events__bg{ position:absolute; inset:0; }
.events__bg img{ width:100%; height:100%; object-fit:cover; filter:brightness(.7); }
.events__scrim{ position:absolute; inset:0; background:linear-gradient(90deg, rgba(12,11,10,.92) 0%, rgba(12,11,10,.55) 55%, transparent 100%); }
.events__copy{ position:relative; z-index:2; padding:clamp(2.5rem,7vw,6rem); max-width:620px; }
.events__copy .display{ margin:.8rem 0 1.1rem; }
.events__copy .btn{ margin-top:1.8rem; }

/* ---------- RESERVE ---------- */
.reserve{
  text-align:center; border-top:1px solid var(--hair-soft);
  background:
    radial-gradient(90% 70% at 50% 20%, rgba(74,20,25,.5) 0%, transparent 60%),
    linear-gradient(180deg, var(--ink) 0%, var(--ink-2) 100%);
}
.reserve__hours{ max-width:460px; margin:0 auto; }
.reserve__hours ul{ list-style:none; }
.reserve__hours li{
  display:flex; justify-content:space-between; gap:1.5rem;
  padding:.62rem 0; border-bottom:1px solid var(--hair-soft);
  font-family:var(--f-body); font-weight:300; font-size:1rem; letter-spacing:.01em;
}
.reserve__hours li span:first-child{ color:var(--bone); }
.reserve__hours li span:last-child{ color:var(--bone-dim); }
.reserve__contact{
  margin-top:1.6rem; display:flex; flex-direction:column; gap:.55rem; align-items:center;
}
.reserve__contact a{
  font-family:var(--f-body); font-weight:500; font-size:.82rem;
  letter-spacing:.14em; color:var(--gold); transition:color .3s;
}
.reserve__contact a:hover{ color:var(--gold-2); }
.reserve__inner{ max-width:900px; margin:0 auto; }
.reserve .display{ margin:1rem 0 1.4rem; font-size:clamp(1.3rem, 2.9vw, 2.05rem); white-space:nowrap; }
.reserve__lede{ margin:0 auto 2.4rem; text-align:center; max-width:54ch; }
.reserve__cta{ margin-bottom:3.4rem; }
.reserve__meta{
  display:grid; grid-template-columns:repeat(2,1fr); gap:2rem; max-width:560px; margin:0 auto;
  border-top:1px solid var(--hair); padding-top:2.6rem; text-align:center;
}
.reserve__meta p{ font-weight:300; color:var(--bone-dim); line-height:1.7; }
.meta__label{ font-family:var(--f-body); font-weight:500; font-size:.68rem; letter-spacing:.28em; text-transform:uppercase; color:var(--gold); margin-bottom:.7rem; }

/* ---------- FOOTER ---------- */
.foot{ background:var(--ink); text-align:center; padding:clamp(3.5rem,7vw,5.5rem) 1.2rem 3rem; border-top:1px solid var(--hair-soft); }
.foot__seal{ width:64px; height:auto; margin:0 auto 1.8rem; opacity:.8; }
.foot__nav{ display:flex; gap:1.8rem; justify-content:center; flex-wrap:wrap; margin-bottom:1.8rem; }
.foot__nav a{ font-size:.74rem; letter-spacing:.2em; text-transform:uppercase; color:var(--bone-dim); transition:color .3s; }
.foot__nav a:hover{ color:var(--gold); }
.foot__wink{ font-family:var(--f-body); font-weight:300; font-size:1.05rem; letter-spacing:.03em; color:var(--gold); margin-bottom:1rem; }
.foot__legal{ font-size:.72rem; letter-spacing:.1em; color:var(--bone-dim); opacity:.6; }

/* ============================================================
   REVEAL animation
   ============================================================ */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity 1s var(--ease), transform 1s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
.reveal[data-d="1"]{ transition-delay:.12s; }
.reveal[data-d="2"]{ transition-delay:.24s; }
.reveal[data-d="3"]{ transition-delay:.36s; }
.reveal[data-d="4"]{ transition-delay:.48s; }
.reveal[data-d="5"]{ transition-delay:.6s; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 900px){
  .nav__links{ display:none; }
  .nav{ padding:1.1rem 1.2rem; }
  .what{ grid-template-columns:1fr; }
  .what__fig{ order:-1; max-width:420px; }
  .stills{ grid-template-columns:repeat(2,1fr); }
  .still:nth-child(5){ grid-column:1 / -1; aspect-ratio:16/10; }
  .reserve__meta{ grid-template-columns:1fr; gap:2.2rem; }
  .reserve .display{ white-space:normal; font-size:clamp(1.5rem,5.5vw,2rem); }
  .events__scrim{ background:linear-gradient(180deg, rgba(12,11,10,.5), rgba(12,11,10,.9)); }
}
@media (max-width: 520px){
  .stills{ grid-template-columns:1fr; }
  .still{ aspect-ratio:4/5; }
  .still:nth-child(5){ aspect-ratio:4/5; }
  .hero__cta{ flex-direction:column; align-items:stretch; }
}
@media (prefers-reduced-motion: reduce){
  .hero__img{ animation:none; }
  .hero__scroll span{ animation:none; }
  .reveal{ transition:none; opacity:1; transform:none; }
  .curtain{ transition:none; }
}

/* ---------- Sirrah S-mark cursor ---------- */
html, body{ cursor:url("cursor-woman-gold.png") 16 6, auto; }
a, button, .btn, .nav__mark, .hero__scroll, label{ cursor:url("cursor-woman-gold.png") 16 6, pointer; }

/* ===== THE ROOM — collage (2026-06-24) ===== */
.room-collage{
  position:relative; overflow:hidden; text-align:center;
  border-top:1px solid var(--hair-soft);
  background:
    radial-gradient(90% 70% at 50% 12%, rgba(74,20,25,.42) 0%, transparent 60%),
    linear-gradient(180deg, var(--ink) 0%, var(--ink-2) 100%);
  padding:clamp(3.5rem,8vw,6rem) clamp(1.2rem,5vw,3rem) clamp(4rem,9vw,6.5rem);
}
.room-collage__copy{ max-width:760px; margin:0 auto clamp(2.4rem,6vw,3.8rem); }
.room-collage__copy .display{ margin:.7rem 0 1.1rem; }
.room-collage__copy .lede{ margin-left:auto; margin-right:auto; }   /* center the lede block, not just its text */

.collage{
  max-width:1040px; margin:0 auto;
  display:grid; gap:16px;
  grid-template-columns:1fr 1fr;
}
.collage figure{
  aspect-ratio:3 / 2; overflow:hidden; cursor:zoom-in;
  border:1px solid var(--hair-soft); background:var(--ink-3);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s;
}
.collage figure:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }
.collage figure img{ width:100%; height:100%; object-fit:cover; display:block; }
.collage figure:hover{
  transform:scale(1.045); z-index:3;
  box-shadow:0 26px 64px rgba(0,0,0,.6); border-color:var(--gold);
}
/* mobile: swipeable snap carousel instead of a tall stack */
.collage__dots{ display:none; }
@media (max-width:620px){
  .collage{
    display:flex; max-width:none; margin:0 -1.2rem; padding:0 1.2rem; gap:12px;
    overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .collage::-webkit-scrollbar{ display:none; }
  .collage figure{
    flex:0 0 84%; scroll-snap-align:center; aspect-ratio:3 / 2;
    transform:none !important;   /* no sticky hover-scale on touch */
  }
  .collage__dots{
    display:flex; justify-content:center; gap:.55rem; margin-top:1.3rem;
  }
  .collage__dots span{
    width:7px; height:7px; border-radius:50%;
    background:var(--hair); transition:background .3s, transform .3s;
  }
  .collage__dots span.is-active{ background:var(--gold); transform:scale(1.3); }
}
/* ===== /THE ROOM collage ===== */

/* ===== accessibility / SEO: visually-hidden text (crawlable + screen-reader, invisible on screen) ===== */
.u-visually-hidden{
  position:absolute !important;
  width:1px; height:1px;
  padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); clip-path:inset(50%);
  white-space:nowrap; border:0;
}

/* menu links row (Menu section) — compact so all four fit one line */
.menu-links{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.6rem; }
.menu-links .btn{ padding:.72em 1.05em; font-size:.62rem; letter-spacing:.09em; white-space:nowrap; }

/* OpenTable reservation widget — center it; no reserved gap so a blocked widget doesn't leave a hole */
.reserve__widget{ display:flex; justify-content:center; margin:clamp(1rem,3vw,2rem) auto 0; }
.reserve__widget iframe{ max-width:100%; border-radius:6px; box-shadow:0 18px 44px rgba(0,0,0,.4); }
.reserve__widget:empty{ margin:0; }

/* Private event inquiry — Tripleseat iframe on a warm cream card (form bg is transparent) */
.events-form{
  text-align:center; border-top:1px solid var(--hair-soft);
  background:
    radial-gradient(90% 70% at 50% 16%, rgba(74,20,25,.42) 0%, transparent 60%),
    linear-gradient(180deg, var(--ink) 0%, var(--ink-2) 100%);
}
.events-form__inner{ max-width:880px; margin:0 auto; }
.events-form__embed{
  margin:1.7rem auto 0; max-width:660px;
  background:var(--gold); border-radius:6px; overflow:hidden;   /* gold card to match the buttons (Ryan 2026-06-25) */
  padding:clamp(1rem,3vw,1.8rem) clamp(.9rem,2.5vw,1.6rem);
  box-shadow:0 24px 60px rgba(0,0,0,.45);
}
.events-form__embed iframe{ display:block; width:100%; border:0; background:transparent; }

/* Concierge email link — make it obviously clickable (icon + underline) */
.reserve__email{ display:inline-flex; align-items:center; gap:.6ch; text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px; text-decoration-color:rgba(198,161,91,.55); }
.reserve__email svg{ width:1.05em; height:1.05em; flex:none; }
.reserve__email:hover{ text-decoration-color:var(--gold-2); }

/* ===== Menu viewer (lightbox) ===== */
.menu-lightbox{
  position:fixed; inset:0; z-index:200; display:none;
  background:rgba(8,7,6,.96); overflow:auto; -webkit-overflow-scrolling:touch;
  padding:clamp(.8rem,3vw,2.4rem);
}
.menu-lightbox.is-open{ display:flex; }
/* margin:auto centers when it fits and still scrolls (no top-clip) when taller than the viewport */
.menu-lightbox__scroll{ margin:auto; display:flex; flex-direction:column; gap:16px; align-items:center; }
.menu-lightbox__scroll img{
  max-width:100%; max-height:90vh; width:auto; height:auto; display:block; border-radius:4px;
  background:#F3E9DB; box-shadow:0 20px 60px rgba(0,0,0,.55);
}
.menu-lightbox__close{
  position:fixed; top:14px; right:16px; z-index:201;
  width:46px; height:46px; border-radius:50%;
  border:1px solid var(--hair); background:rgba(20,18,16,.82); color:var(--bone);
  font-size:1.7rem; line-height:1; cursor:pointer; transition:color .3s, border-color .3s;
}
.menu-lightbox__close:hover{ color:var(--gold); border-color:var(--gold); }
body.menu-lock{ overflow:hidden; }

/* ===== Room photo carousel (lightbox) ===== */
.photo-lightbox{
  position:fixed; inset:0; z-index:200; display:none;
  background:rgba(8,7,6,.96);
}
.photo-lightbox.is-open{ display:block; }
.photo-lightbox__track{
  position:absolute; inset:0;
  display:flex; overflow-x:auto; overflow-y:hidden;
  scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; scrollbar-width:none;
}
.photo-lightbox__track::-webkit-scrollbar{ display:none; }
.photo-lightbox__track figure{
  flex:0 0 100%; height:100%; margin:0; scroll-snap-align:center;
  display:flex; align-items:center; justify-content:center;
  padding:clamp(1rem,4vw,3.2rem); cursor:zoom-out;
}
.photo-lightbox__track img{
  max-width:100%; max-height:88vh; width:auto; height:auto;
  object-fit:contain; display:block; border-radius:4px; cursor:default;
  box-shadow:0 26px 70px rgba(0,0,0,.6);
}
.photo-lightbox__close{
  position:fixed; top:14px; right:16px; z-index:202;
  width:46px; height:46px; border-radius:50%;
  border:1px solid var(--hair); background:rgba(20,18,16,.82); color:var(--bone);
  font-size:1.7rem; line-height:1; cursor:pointer; transition:color .3s, border-color .3s;
}
.photo-lightbox__close:hover{ color:var(--gold); border-color:var(--gold); }
.photo-lightbox__nav{
  position:fixed; top:50%; transform:translateY(-50%); z-index:202;
  width:50px; height:50px; border-radius:50%;
  border:1px solid var(--hair); background:rgba(20,18,16,.7); color:var(--bone);
  font-size:1.9rem; line-height:1; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:color .3s, border-color .3s, background .3s;
}
.photo-lightbox__nav:hover{ color:var(--gold); border-color:var(--gold); background:rgba(20,18,16,.92); }
.photo-lightbox__nav--prev{ left:18px; }
.photo-lightbox__nav--next{ right:18px; }
.photo-lightbox__dots{
  position:fixed; bottom:20px; left:0; right:0; z-index:202;
  display:flex; justify-content:center; gap:.55rem;
}
.photo-lightbox__dots span{
  width:8px; height:8px; border-radius:50%;
  background:rgba(255,255,255,.34); transition:background .3s, transform .3s;
}
.photo-lightbox__dots span.is-active{ background:var(--gold); transform:scale(1.3); }
.photo-lightbox__caption{
  position:fixed; bottom:44px; left:0; right:0; z-index:202; text-align:center;
  font-size:.62rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--bone); opacity:.82; pointer-events:none;
}
/* Menus are tall documents — give them more of the viewport than the room photos */
.menu-carousel .photo-lightbox__track figure{ padding:clamp(.6rem,2.5vw,1.8rem); }
.menu-carousel .photo-lightbox__track img{ max-height:92vh; }
.menu-carousel .photo-lightbox__track figure{ position:relative; }
/* "Coming Soon" stamp on a not-yet-launched menu (Ryan 2026-06-25) */
.menu-ribbon{
  position:absolute; top:8%; left:50%; transform:translateX(-50%) rotate(-2.5deg);
  z-index:3; padding:.38em 1.05em; border-radius:3px;
  background:var(--gold); color:var(--ink); white-space:nowrap; pointer-events:none;
  font-size:clamp(.52rem,1.5vw,.7rem); font-weight:600; letter-spacing:.2em; text-transform:uppercase;
  box-shadow:0 6px 18px rgba(0,0,0,.4);
}
@media (max-width:620px){
  .photo-lightbox__nav{ display:none; }   /* pure swipe on touch, no arrows */
}

/* ===== Private event inquiry — pop-out modal ===== */
.events-modal{
  position:fixed; inset:0; z-index:200; display:none;
  background:rgba(8,7,6,.9); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px);
  overflow-y:auto; padding:clamp(1rem,4vw,2.4rem);
}
.events-modal.is-open{ display:flex; align-items:flex-start; justify-content:center; }
.events-modal__panel{
  position:relative; width:100%; max-width:640px; margin:auto;
  background:var(--gold); border-radius:8px;
  box-shadow:0 30px 80px rgba(0,0,0,.5);
  padding:clamp(1.2rem,3.5vw,2rem) clamp(1rem,3vw,1.7rem) clamp(1rem,3vw,1.6rem);
}
.events-modal__title{
  text-align:center; color:var(--ink); margin:0 0 .9rem;
  font-size:clamp(1.1rem,2.6vw,1.45rem); font-weight:700; letter-spacing:.01em;
}
.events-modal__body iframe{ display:block; width:100%; border:0; background:transparent; }
.events-modal__close{
  position:fixed; top:14px; right:16px; z-index:202;
  width:46px; height:46px; border-radius:50%;
  border:1px solid var(--hair); background:rgba(20,18,16,.85); color:var(--bone);
  font-size:1.7rem; line-height:1; cursor:pointer; transition:color .3s, border-color .3s;
}
.events-modal__close:hover{ color:var(--gold); border-color:var(--gold); }

/* ===== Mobile hamburger nav ===== */
.nav__burger{ display:none; }
.nav__mobile{ display:none; }
body.nav-lock{ overflow:hidden; }
@media (max-width:900px){
  .nav{ z-index:65; }
  .nav__burger{
    display:flex; flex-direction:column; justify-content:center; gap:5px;
    width:36px; height:36px; padding:0; margin-left:.5rem;
    background:none; border:0; cursor:pointer;
  }
  .nav__burger span{ display:block; width:24px; height:2px; margin:0 auto; background:var(--bone);
    transition:transform .35s var(--ease), opacity .2s; }
  .nav__burger.is-open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .nav__burger.is-open span:nth-child(2){ opacity:0; }
  .nav__burger.is-open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  .nav__mobile{
    position:fixed; inset:0; z-index:60; display:flex; flex-direction:column;
    align-items:center; justify-content:center; gap:1.5rem;
    background:rgba(12,11,10,.98); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
    opacity:0; visibility:hidden; transition:opacity .4s var(--ease), visibility .4s;
  }
  .nav__mobile.is-open{ opacity:1; visibility:visible; }
  .nav__mobile-links{ display:flex; flex-direction:column; align-items:center; gap:1.6rem; }
  .nav__mobile-links a{
    font-family:var(--f-body); font-weight:400; font-size:1.08rem;
    letter-spacing:.24em; text-transform:uppercase; color:var(--bone); transition:color .3s;
  }
  .nav__mobile-links a:active,.nav__mobile-links a:hover{ color:var(--gold); }
  .nav__mobile-ig{ color:var(--gold)!important; }
}
