:root{
  --ink:#0c0a08;
  --ink-2:#14100c;
  --bone:#f4efe5;
  --bone-2:#e8e0d2;
  --brass:#b8963e;
  --brass-lt:#d8b869;
  --champagne:#e6cf9c;
  --ivory:#f4ead7;
  --navy:#1c2440;
  --navy-lt:#2b3760;
  --cognac:#b5713a;
  --ember:#c25a2a;
  --display:'Cinzel','Didot',Georgia,serif;
  --sans:'Jost','Futura','Century Gothic',system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--ink);color:var(--bone);
  font-family:var(--sans);font-weight:300;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--display);font-weight:400;margin:0;line-height:1.15}
.wrap{max-width:1180px;margin:0 auto;padding:0 clamp(1.25rem,5vw,3.5rem)}
.narrow{max-width:760px;margin:0 auto}
section{padding:clamp(5rem,12vw,9.5rem) 0}
.skip{position:absolute;left:-9999px}
.skip:focus{left:1rem;top:1rem;z-index:100;background:var(--brass);color:var(--ink);padding:.7rem 1.2rem}

.eyebrow{
  font-family:var(--sans);font-size:.72rem;font-weight:400;
  letter-spacing:.38em;text-transform:uppercase;color:var(--brass);margin:0 0 1.6rem;
}
.deco-div{display:flex;align-items:center;justify-content:center;gap:1rem;color:var(--brass);margin:0 auto;max-width:220px}
.deco-div i{flex:1;height:1px;background:currentColor;opacity:.5}
.deco-div span{width:9px;height:9px;border:1px solid currentColor;transform:rotate(45deg)}

.btn{
  display:inline-block;font-family:var(--sans);font-size:.7rem;
  letter-spacing:.3em;text-transform:uppercase;padding:1.05rem 2.6rem;
  border:1px solid var(--brass);color:var(--brass);text-decoration:none;
  transition:background .45s ease,color .45s ease;
}
.btn:hover,.btn:focus-visible{background:var(--brass);color:var(--ink)}
.btn.solid{background:var(--brass);color:var(--ink)}
.btn.solid:hover{background:transparent;color:var(--brass)}

/* nav */
nav{
  position:fixed;top:0;left:0;right:0;z-index:60;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.3rem clamp(1.25rem,5vw,3.5rem);
  background:linear-gradient(to bottom,rgba(12,10,8,.85),rgba(12,10,8,0));
  backdrop-filter:blur(2px);
  transition:background .35s ease,border-color .35s ease;
  border-bottom:1px solid transparent;
}
/* once the page starts to scroll, give the nav a solid dark bar so it stays readable over the light sections */
nav.scrolled{background:rgba(12,10,8,.96);backdrop-filter:blur(8px);border-bottom-color:rgba(184,150,62,.18)}
nav a.lk{text-shadow:0 1px 10px rgba(0,0,0,.35)}
nav .mark{font-family:var(--display);font-size:1.15rem;letter-spacing:.34em;color:var(--champagne);text-decoration:none;text-shadow:0 1px 12px rgba(0,0,0,.45)}
nav ul{display:flex;gap:2.1rem;list-style:none;margin:0;padding:0}
nav a.lk{
  font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;text-decoration:none;
  color:var(--bone);opacity:.92;padding-bottom:3px;border-bottom:1px solid transparent;transition:.3s;
}
nav a.lk:hover,nav a.lk:focus-visible{opacity:1;border-color:var(--brass)}
.mobile-only{display:none}
.menu-toggle{display:none;background:transparent;border:1px solid var(--brass);color:var(--bone);width:42px;height:42px;align-items:center;justify-content:center;cursor:pointer}
.menu-toggle span,.menu-toggle span::before,.menu-toggle span::after{display:block;width:18px;height:1px;background:currentColor;position:relative;transition:.3s}
.menu-toggle span::before,.menu-toggle span::after{content:'';position:absolute;left:0}
.menu-toggle span::before{top:-6px}.menu-toggle span::after{top:6px}
@media(max-width:860px){
  nav{background:rgba(12,10,8,.94);backdrop-filter:blur(8px)}
  nav ul{display:none;position:absolute;top:100%;left:0;right:0;background:#0c0a08;box-shadow:0 18px 30px rgba(0,0,0,.45);padding:1.2rem 1.25rem 1.6rem;flex-direction:column;gap:0;border-top:1px solid rgba(184,150,62,.25)}
  nav ul.open{display:flex}
  nav ul li a{display:block;padding:1rem 0}
  nav ul li a.lk{padding:1.05rem 0;font-size:.8rem;border-bottom:1px solid rgba(184,150,62,.12)}
  nav ul li:last-child a.lk{border-bottom:0}
  nav ul .mobile-only{display:block}
  .menu-toggle{display:flex}
  nav>.reserve-link{display:none}
}

/* hero */
header.hero{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}
header.hero .bgvid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  /* footage is vertical; on landscape screens frame it on the brass emblem */
  object-position:center 20%;background:var(--ink);
  filter:brightness(1.2) saturate(1.04)}
@media(orientation:portrait){header.hero .bgvid{object-position:center center}}
header.hero::after{
  content:'';position:absolute;inset:0;
  /* warm charcoal, not black — keeps the brass in the footage alive */
  background:
    radial-gradient(ellipse at 50% 45%,rgba(26,19,12,.16) 0%,rgba(24,17,11,.54) 58%,rgba(22,16,10,.78) 100%),
    linear-gradient(to bottom,rgba(22,16,10,.62),rgba(22,16,10,.10) 38%,rgba(20,14,9,.76));
}
header.hero .inner{position:relative;z-index:3;padding:0 1.5rem}
.hero-frame{border:1px solid rgba(184,150,62,.42);padding:clamp(2.6rem,7vw,4.6rem) clamp(1.8rem,8vw,5.5rem);position:relative}
.hero-frame::before,.hero-frame::after{content:'';position:absolute;width:16px;height:16px;border:1px solid var(--brass)}
.hero-frame::before{top:-1px;left:-1px;border-right:none;border-bottom:none}
.hero-frame::after{bottom:-1px;right:-1px;border-left:none;border-top:none}
header.hero h1{margin:0 0 2.3rem}
header.hero h1 .brand{display:block;font-size:clamp(3.1rem,11vw,7.4rem);letter-spacing:.16em;
  text-indent:.16em;color:var(--champagne);text-shadow:0 2px 26px rgba(0,0,0,.45);line-height:1.15}
header.hero h1 .sub{display:block;font-family:var(--sans);font-weight:400;line-height:1.4;
  font-size:.68rem;letter-spacing:.5em;text-transform:uppercase;color:var(--ivory);
  margin:.35em 0 0;text-indent:.5em;text-shadow:0 1px 14px rgba(0,0,0,.5)}
header.hero .line{font-family:var(--display);font-size:clamp(1.05rem,2.4vw,1.5rem);font-style:italic;line-height:1.6;color:var(--ivory);max-width:26ch;margin:0 auto 2.6rem;opacity:.96;text-shadow:0 1px 16px rgba(0,0,0,.5)}
header.hero .btn{border-color:var(--champagne);color:var(--champagne);
  background:rgba(20,14,9,.18);backdrop-filter:blur(1px)}
header.hero .btn:hover,header.hero .btn:focus-visible{background:var(--champagne);color:#14100c}
header.hero .hero-frame{border-color:rgba(230,207,156,.45)}
header.hero .hero-frame::before,header.hero .hero-frame::after{border-color:var(--champagne)}

.scroll-cue{position:absolute;bottom:2.2rem;left:50%;transform:translateX(-50%);z-index:3;font-size:.68rem;letter-spacing:.32em;text-transform:uppercase;color:var(--brass);opacity:.9}
.scroll-cue i{display:block;width:1px;height:44px;background:var(--brass);margin:.9rem auto 0;opacity:.55;animation:pulse 2.6s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.2;transform:scaleY(.5)}50%{opacity:.7;transform:scaleY(1)}}

/* warm statement */
.warm{background:var(--bone);color:var(--ink)}
.warm .eyebrow{color:#96762c}
.statement{text-align:center}
.statement h2{font-size:clamp(1.9rem,4.6vw,3.3rem);line-height:1.28;letter-spacing:.02em;margin-bottom:1.8rem}
.statement p.body{font-size:clamp(1rem,1.5vw,1.14rem);line-height:1.95;color:#4a4238;max-width:56ch;margin:0 auto 2rem}
.statement p.pull{font-family:var(--display);font-style:italic;font-size:clamp(1.05rem,2vw,1.35rem);color:#2c261f;max-width:34ch;margin:0 auto 2.6rem;line-height:1.6}

/* gallery strip */
.strip{padding:0;background:var(--ink)}
.strip-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.strip-grid figure{margin:0;position:relative;overflow:hidden;aspect-ratio:4/5}
.strip-grid img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.8,.2,1)}
.strip-grid figure:hover img{transform:scale(1.07)}
@media(max-width:820px){.strip-grid{grid-template-columns:repeat(2,1fr)}}

/* menus */
.menus{background:var(--bone-2);color:var(--ink)}
.menus .eyebrow{color:#96762c}
.menu-head{text-align:center;margin-bottom:3.6rem}
.menu-head h2{font-size:clamp(1.8rem,4vw,2.9rem);letter-spacing:.06em}
.menu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;background:rgba(12,10,8,.16);border:1px solid rgba(12,10,8,.16)}
.menu-card{background:var(--bone-2);padding:2.9rem 1.4rem;text-align:center;text-decoration:none;color:var(--ink);transition:background .4s ease,color .4s ease}
.menu-card:hover,.menu-card:focus-visible{background:var(--ink);color:var(--bone)}
.menu-card .n{font-size:.72rem;letter-spacing:.3em;color:var(--brass);display:block;margin-bottom:1.1rem}
.menu-card .t{font-family:var(--display);font-size:1.32rem;letter-spacing:.09em;display:block}
.menu-card .pdf{display:block;margin-top:1.1rem;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;opacity:.78}

/* gallery */
.gallery{background:var(--ink)}
.gal-head{text-align:center;margin-bottom:3.4rem}
.gal-head h1{font-size:clamp(1.8rem,4vw,2.9rem);letter-spacing:.07em;color:var(--champagne);font-weight:400}
.gal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px}
@media(max-width:900px){.gal-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){.gal-grid{grid-template-columns:repeat(2,1fr)}}
.gal-grid a{display:block;position:relative;overflow:hidden;aspect-ratio:4/5;background:var(--ink-2);cursor:zoom-in}
.gal-grid a.wide{grid-column:span 2;aspect-ratio:8/5}
@media(max-width:620px){.gal-grid a.wide{grid-column:span 2}}
.gal-grid img{width:100%;height:100%;object-fit:cover;filter:brightness(.9) saturate(.94);
  transition:transform 1.1s cubic-bezier(.2,.8,.2,1),filter .6s}
.gal-grid a:hover img,.gal-grid a:focus-visible img{transform:scale(1.06);filter:brightness(1.05) saturate(1)}
.gal-grid a:focus-visible{outline:2px solid var(--champagne);outline-offset:-2px}

/* lightbox */
.lb{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;
  background:rgba(8,6,4,.95);padding:clamp(1rem,4vw,3rem)}
.lb.open{display:flex}
.lb img{max-width:100%;max-height:88vh;width:auto;height:auto;object-fit:contain;
  box-shadow:0 30px 90px rgba(0,0,0,.6)}
.lb button{position:absolute;background:transparent;border:1px solid rgba(230,207,156,.5);
  color:var(--champagne);width:46px;height:46px;cursor:pointer;font-size:1.1rem;line-height:1;
  display:flex;align-items:center;justify-content:center;transition:.3s;font-family:var(--sans)}
.lb button:hover{background:var(--champagne);color:var(--ink)}
.lb .lb-close{top:clamp(1rem,3vw,2rem);right:clamp(1rem,3vw,2rem)}
.lb .lb-prev{left:clamp(.6rem,3vw,2rem);top:50%;transform:translateY(-50%)}
.lb .lb-next{right:clamp(.6rem,3vw,2rem);top:50%;transform:translateY(-50%)}
.lb .lb-count{position:absolute;bottom:clamp(1rem,3vw,2rem);left:50%;transform:translateX(-50%);
  font-size:.62rem;letter-spacing:.3em;color:var(--brass);text-transform:uppercase}

/* dress code */
.dress{background:var(--ink-2);text-align:center;position:relative}
.dress::before{content:'';position:absolute;inset:0;
  background:linear-gradient(160deg,rgba(28,36,64,.34),transparent 62%);pointer-events:none}
.dress .wrap{position:relative;z-index:2}
.dress h2{font-size:clamp(1.7rem,3.8vw,2.6rem);letter-spacing:.07em;margin-bottom:1.8rem;color:var(--champagne)}
.dress p{font-family:var(--display);font-style:italic;
  font-size:clamp(1.05rem,2.2vw,1.4rem);line-height:1.85;color:var(--ivory);
  max-width:34ch;margin:0 auto 1.6rem}
.dress .patio{font-family:var(--sans);font-style:normal;font-size:.72rem;letter-spacing:.24em;
  text-transform:uppercase;color:#9d9384;max-width:none;margin:0 auto 2.4rem}


/* private dining */
.split{background:var(--ink-2);color:var(--bone);position:relative}
.split::before{content:'';position:absolute;inset:0;background:linear-gradient(160deg,rgba(28,36,64,.5),transparent 60%);pointer-events:none}
.split .wrap{position:relative;z-index:2}
.split .grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5.5rem);align-items:center}
@media(max-width:900px){.split .grid{grid-template-columns:1fr}}
.split img{aspect-ratio:4/5;object-fit:cover;width:100%}
.split h2{font-size:clamp(1.8rem,4vw,2.9rem);letter-spacing:.05em;margin-bottom:1.6rem}
.split p{line-height:1.95;color:#c3b9a8;font-size:1rem;margin:0 0 1.3rem;max-width:52ch}
.caps{list-style:none;padding:0;margin:2.4rem 0 2.8rem;border-top:1px solid rgba(184,150,62,.3)}
.caps li{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:1.05rem 0;border-bottom:1px solid rgba(184,150,62,.3);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase}
.caps li span:last-child{font-family:var(--display);color:var(--brass);letter-spacing:.1em;font-size:1.05rem}

/* private dining enquiry form */
.enq{margin-top:clamp(3rem,7vw,5rem);border:1px solid rgba(184,150,62,.3);padding:clamp(1.8rem,5vw,3.4rem);background:rgba(12,10,8,.5)}
.enq h3{font-size:clamp(1.4rem,3vw,2rem);letter-spacing:.05em;margin-bottom:.7rem;text-align:center}
.enq .lede{text-align:center;color:#a99e8c;font-size:.92rem;line-height:1.8;max-width:46ch;margin:0 auto 2.6rem}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem 1.6rem}
@media(max-width:720px){.fields{grid-template-columns:1fr}}
.field{display:flex;flex-direction:column;gap:.55rem}
.field.wide{grid-column:1/-1}
.field label{font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;color:var(--brass)}
.field label .req{color:var(--ember);margin-left:.25em}
.field input,.field select,.field textarea{
  background:transparent;border:1px solid rgba(184,150,62,.35);color:var(--bone);
  padding:.95rem 1rem;font-family:var(--sans);font-size:.9rem;font-weight:300;
  letter-spacing:.03em;border-radius:0;width:100%;
}
.field textarea{resize:vertical;min-height:130px;line-height:1.7}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--brass);background:rgba(184,150,62,.05)}
.field input::placeholder,.field textarea::placeholder{color:#6d6558}
.field select{appearance:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--brass) 50%),linear-gradient(135deg,var(--brass) 50%,transparent 50%);
  background-position:calc(100% - 18px) 52%,calc(100% - 13px) 52%;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:2.6rem}
.field select option{background:var(--ink);color:var(--bone)}
.enq .submit{text-align:center;margin-top:2.4rem}
.enq button{
  background:var(--brass);color:var(--ink);border:1px solid var(--brass);
  padding:1.1rem 3.2rem;font-family:var(--sans);font-size:.68rem;letter-spacing:.32em;
  text-transform:uppercase;cursor:pointer;transition:background .4s,color .4s;
}
.enq button:hover,.enq button:focus-visible{background:transparent;color:var(--brass)}
.enq .fineprint{margin-top:1.4rem;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:#958b7b;text-align:center}
.hp{position:absolute;left:-9999px}

/* TRIPLESEAT LEAD FORM (Beacon Social House lead form, themed to match) */
.ts-form #tripleseat_embed_form_inline{font-family:var(--sans) !important;color:var(--bone) !important;background:transparent !important;padding:0 !important;border:0 !important;width:100% !important;max-width:none !important;}
.ts-form #tripleseat_embed_form_inline h2{display:block !important;width:100% !important;float:none !important;font-family:var(--display) !important;font-weight:400 !important;font-size:1.15rem !important;letter-spacing:.08em !important;color:var(--brass-lt) !important;margin:2rem 0 .4rem !important;padding:0 0 .7rem !important;border-bottom:1px solid rgba(184,150,62,.3) !important;background:none !important;text-transform:none !important;}
.ts-form #tripleseat_embed_form_inline h2.row_contact_header{margin-top:0 !important;}
.ts-form #tripleseat_embed_form_inline .tripleseat_field_section{display:flex !important;flex-wrap:wrap;gap:0 1.6rem;clear:both;margin:0 !important;padding:0 !important;float:none !important;width:100% !important;}
.ts-form #tripleseat_embed_form_inline .tripleseat_field{flex:1 1 220px;min-width:0;float:none !important;width:auto !important;margin:1.1rem 0 0 !important;padding:0 !important;}
.ts-form #tripleseat_embed_form_inline label{display:block !important;float:none !important;font-size:.72rem !important;font-weight:400 !important;letter-spacing:.2em;text-transform:uppercase;color:var(--brass-lt) !important;margin:0 0 .55rem !important;line-height:1.6 !important;}
.ts-form #tripleseat_embed_form_inline .required{color:var(--ember) !important;}
.ts-form #tripleseat_embed_form_inline input[type=text],.ts-form #tripleseat_embed_form_inline input.text,.ts-form #tripleseat_embed_form_inline select,.ts-form #tripleseat_embed_form_inline textarea{float:none !important;display:block;width:100% !important;max-width:none !important;box-sizing:border-box;background:transparent !important;border:1px solid rgba(184,150,62,.35) !important;border-radius:0 !important;box-shadow:none !important;color:var(--bone) !important;font-family:var(--sans) !important;font-size:16px !important;font-weight:300;padding:.9rem 1rem !important;height:auto !important;margin:0 !important;}
.ts-form #tripleseat_embed_form_inline select{-webkit-appearance:none;appearance:none;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--brass) 50%),linear-gradient(135deg,var(--brass) 50%,transparent 50%) !important;background-position:calc(100% - 18px) 52%,calc(100% - 13px) 52% !important;background-size:5px 5px,5px 5px !important;background-repeat:no-repeat !important;}
.ts-form #tripleseat_embed_form_inline select option{background:var(--ink);color:var(--bone);}
.ts-form #tripleseat_embed_form_inline textarea{min-height:130px;resize:vertical;line-height:1.7;}
.ts-form #tripleseat_embed_form_inline input:focus,.ts-form #tripleseat_embed_form_inline select:focus,.ts-form #tripleseat_embed_form_inline textarea:focus{outline:none !important;border-color:var(--brass) !important;background:rgba(184,150,62,.05) !important;}
.ts-form #tripleseat_embed_form_inline .ts_gdpr_consent{display:flex;align-items:flex-start;gap:10px;}
.ts-form #tripleseat_embed_form_inline .ts_gdpr_consent input.checkbox{width:22px !important;height:22px;margin:1px 0 0 !important;accent-color:var(--brass);flex:none;}
.ts-form #tripleseat_embed_form_inline .ts_gdpr_consent label{text-transform:none;letter-spacing:.02em;font-size:.9rem !important;color:var(--bone-2) !important;}
.ts-form #tripleseat_embed_form_inline a{color:var(--brass-lt) !important;}
.ts-form #tripleseat_embed_form_inline .ts_robot_check{margin-top:1.6rem !important;}
.ts-form #tripleseat_embed_form_inline .ts_submit{text-align:center;}
.ts-form #tripleseat_embed_form_inline #lead_submit{float:none !important;background:var(--brass) !important;color:var(--ink) !important;border:1px solid var(--brass) !important;border-radius:0 !important;padding:1.1rem 3.2rem !important;font-family:var(--sans) !important;font-size:.78rem !important;font-weight:400;letter-spacing:.28em;text-transform:uppercase;cursor:pointer;width:auto !important;height:auto !important;box-shadow:none !important;text-shadow:none !important;transition:background .3s,color .3s;}
.ts-form #tripleseat_embed_form_inline #lead_submit:hover{background:transparent !important;color:var(--brass) !important;}
.ts-form #tripleseat_embed_form_inline .ts_powered_by{flex:1 1 100%;font-size:.72rem !important;margin-top:1rem !important;text-align:center;}
.ts-form #tripleseat_embed_form_inline .ts_powered_by a{color:#8a806f !important;}
.ts-form #lead_form_website_group{position:absolute !important;left:-9999px !important;}
.ts-form #tripleseat_embed_form_inline .error,.ts-form #tripleseat_embed_form_inline #lead_form_error_list{color:#e8a08c !important;background:transparent !important;border:1px solid rgba(232,160,140,.4) !important;padding:12px 16px !important;font-size:.95rem;}
.ts-form #tripleseat_embed_form_inline .success,.ts-form #lead_form_success{color:var(--brass-lt) !important;font-family:var(--display);font-size:1.3rem;text-align:center;background:transparent !important;border:0 !important;}
@media(max-width:380px){.ts-form .g-recaptcha{transform:scale(.88);transform-origin:0 0;}.ts-form #tripleseat_embed_form_inline .ts_robot_check{max-height:72px;overflow:hidden;}}
.ui-datepicker{font-family:var(--sans) !important;z-index:60 !important;}
.enq .fineprint a{color:inherit;text-decoration:none;}
.enq .ts-form+.fineprint{clear:both;display:block;width:100%;max-width:none;}



/* AFTER DARK */
.dark{position:relative;background:#050403;color:var(--bone);overflow:hidden;padding:clamp(6rem,15vw,12rem) 0}
.dark picture,.dark .bgimg{position:absolute;inset:0}
.dark .bgimg{width:100%;height:100%;object-fit:cover;filter:brightness(.42) contrast(1.3) saturate(.85)}
.dark::before{
  content:'';position:absolute;inset:0;z-index:1;
  background:
    radial-gradient(circle at 20% 30%,rgba(194,90,42,.36),transparent 46%),
    radial-gradient(circle at 80% 70%,rgba(28,36,64,.6),transparent 50%),
    radial-gradient(circle at 55% 50%,rgba(184,150,62,.14),transparent 58%),
    linear-gradient(to bottom,#050403,rgba(5,4,3,.42) 40%,#050403);
  animation:glow 10s ease-in-out infinite alternate;
}
@keyframes glow{from{opacity:.85}to{opacity:1}}
.dark .wrap{position:relative;z-index:3}
.dark-head{text-align:center;margin-bottom:3.2rem}
.dark-head .eyebrow{color:var(--ember);letter-spacing:.5em}
.dark-head h2{font-size:clamp(2.6rem,9vw,6rem);letter-spacing:.2em;text-indent:.2em;margin-bottom:1.4rem}
.dark-head p{font-family:var(--display);font-style:italic;font-size:clamp(1.05rem,2.3vw,1.45rem);line-height:1.7;max-width:30ch;margin:0 auto;color:#e2d8c6}
.nights{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(184,150,62,.26);border:1px solid rgba(184,150,62,.26);margin:4rem 0 3.4rem}
@media(max-width:760px){.nights{grid-template-columns:1fr}}
.nights div{background:rgba(5,4,3,.74);padding:2.5rem 1.5rem;text-align:center}
.nights .k{font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--ember);display:block;margin-bottom:.9rem}
.nights .v{font-family:var(--display);font-size:1.5rem;letter-spacing:.08em;display:block}
.nights .m{display:block;margin-top:.7rem;font-size:.72rem;letter-spacing:.14em;color:#9d9384}
.dark .cta{text-align:center}
.dark .btn{border-color:var(--ember);color:var(--ember)}
.dark .btn:hover,.dark .btn:focus-visible{background:var(--ember);color:#050403}

/* reserve */
.reserve{background:var(--bone);color:var(--ink);text-align:center}
.reserve .eyebrow{color:#96762c}
.reserve h2{font-size:clamp(1.9rem,4.4vw,3rem);letter-spacing:.05em;margin-bottom:1.2rem}
.reserve p{color:#4a4238;line-height:1.9;max-width:48ch;margin:0 auto 2.4rem}
.via,.reserve p.via{margin-top:1.4rem;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:#6f665a;text-align:center}
.via a{color:#96762c}


/* footer */
footer{background:var(--ink);color:var(--bone);padding:clamp(4rem,9vw,6.5rem) 0 3rem}
.f-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3rem;margin-bottom:3.5rem}
@media(max-width:820px){.f-grid{grid-template-columns:1fr;gap:2.4rem;text-align:center}}
footer h4{font-family:var(--sans);font-size:.72rem;letter-spacing:.32em;text-transform:uppercase;color:var(--brass);margin:0 0 1.2rem;font-weight:400}
footer p,footer li{font-size:.86rem;line-height:2;color:#b3a897;margin:0}
footer ul{list-style:none;padding:0;margin:0}
footer a{color:#b3a897;text-decoration:none;border-bottom:1px solid transparent;transition:.3s}
footer a:hover,footer a:focus-visible{color:var(--brass);border-color:var(--brass)}
.f-mark{text-align:center;font-family:var(--display);font-size:1.5rem;letter-spacing:.4em;text-indent:.4em;margin-bottom:2.6rem;color:var(--champagne)}
.social{margin:0 0 1.6rem}
.social li{margin-bottom:.55rem}
.social a{display:inline-flex;align-items:center;gap:.75rem;border-bottom:none;line-height:1.4}
.social .ico{width:19px;height:19px;flex:0 0 19px;fill:var(--brass);transition:fill .3s,transform .3s}
.social .handle{font-size:.9rem;letter-spacing:.04em;border-bottom:1px solid transparent;transition:.3s;padding-bottom:1px}
.social a:hover .ico,.social a:focus-visible .ico{fill:var(--brass-lt);transform:translateY(-1px)}
.social a:hover .handle,.social a:focus-visible .handle{color:var(--brass);border-color:var(--brass)}
@media(max-width:820px){.social a{justify-content:center}}
.f-links{margin-top:1.4rem;padding-top:1.2rem;border-top:1px solid rgba(184,150,62,.16)}

.f-base{text-align:center;padding-top:2.2rem;border-top:1px solid rgba(184,150,62,.2);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:#958b7b}
.hrs{display:flex;justify-content:space-between;gap:1rem;font-size:.84rem;color:#b3a897;padding:.15rem 0}
@media(max-width:820px){.hrs{justify-content:center;gap:.6rem}}

.rv{opacity:0;transform:translateY(26px);transition:opacity 1.1s ease,transform 1.1s cubic-bezier(.2,.8,.2,1)}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none;transition:none}
  .scroll-cue i,.dark::before{animation:none}
  html{scroll-behavior:auto}
}
/* ---------- sub-pages (gallery) ---------- */
body.subpage{background:var(--ink)}
body.subpage nav{background:rgba(12,10,8,.96);backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(184,150,62,.16)}
body.subpage nav a.lk[aria-current="page"]{opacity:1;color:var(--champagne);border-color:var(--champagne)}
.gallery.subhead{padding-top:clamp(8rem,16vw,12rem);padding-bottom:clamp(3rem,6vw,5rem)}
.gal-grid{grid-auto-flow:dense}
.gal-intro{font-family:var(--display);font-style:italic;color:var(--ivory);
  font-size:clamp(1rem,2.1vw,1.3rem);margin:1.1rem 0 0;opacity:.85}

.gal-body{max-width:62ch;margin:1.6rem auto 0;color:#a99e8c;line-height:1.95;font-size:.95rem}

/* hero logo lockup (replaces the BEACON / sub text) */
header.hero h1.hero-logo{margin:0 0 2.3rem}
header.hero h1.hero-logo img{
  display:block;margin:0 auto;height:auto;
  width:clamp(9.5rem,26vw,17rem);
  filter:drop-shadow(0 2px 26px rgba(0,0,0,.5));
}
.vh{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;
  overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

/* after dark — tuned for the DJ photo (portrait source, wide band) */
#afterdark .bgimg{
  object-position:34% 56%;
  filter:brightness(.95) contrast(1.05) saturate(1.05);
}
#afterdark::before{
  background:linear-gradient(to bottom,
    rgba(5,4,3,.80),
    rgba(5,4,3,.34) 45%,
    rgba(5,4,3,.85));
}
#afterdark .nights div{background:rgba(5,4,3,.86)}
#afterdark .cta .btn{background:rgba(5,4,3,.66)}
#afterdark .cta .btn:hover,#afterdark .cta .btn:focus-visible{background:var(--ember)}

/* private dining panel: let the declared 4/5 aspect win over the img height attribute */
.split img{height:auto}

/* hero: on short screens, scale the logo lockup so it clears the scroll cue */
@media (max-height: 960px){
  header.hero .hero-frame{padding:clamp(1.5rem,3.6vh,3rem) clamp(1.8rem,8vw,5.5rem)}
  header.hero h1.hero-logo{margin:0 0 1.4rem}
  header.hero h1.hero-logo img{width:clamp(9rem,min(34vw,23vh),15rem)}
  header.hero .line{font-size:clamp(.98rem,2.1vh,1.3rem);margin-bottom:1.7rem}
}
@media (max-height: 620px){ .scroll-cue{display:none} }

/* hero tagline under the logo */
header.hero h1.hero-logo .hero-tag{display:block;margin:1.3rem auto 0;font-family:var(--sans);font-weight:400;
  font-size:clamp(.72rem,1.5vw,.88rem);letter-spacing:.3em;text-transform:uppercase;color:var(--champagne);
  line-height:1.7;text-shadow:0 1px 14px rgba(0,0,0,.6)}
header.hero h1.hero-logo .hero-tag .dot{margin:0 .55em;color:var(--brass-lt)}
@media(max-width:560px){header.hero h1.hero-logo .hero-tag{letter-spacing:.2em;font-size:.72rem}
  header.hero h1.hero-logo .hero-tag .dot{display:block;height:0;overflow:hidden;margin:0}}
@media (max-height: 960px){header.hero h1.hero-logo .hero-tag{margin-top:1rem}}

/* ---------- menu pages (dinner/lunch/brunch/drinks-menu.html) ---------- */
.menupage .mn-top{padding:clamp(7.5rem,13vw,10rem) 0 clamp(2rem,4vw,3rem);text-align:center}
.mn-lede{max-width:46ch;margin-left:auto!important;margin-right:auto!important}
.menupage .mn-top h1{font-size:clamp(1.9rem,4.4vw,3.1rem);letter-spacing:.07em;color:var(--champagne);font-weight:400}
.mn-lede{font-family:var(--display);color:var(--ivory);font-size:clamp(1rem,2vw,1.2rem);margin:1rem 0 0;opacity:.9}
.mn-tabs{position:sticky;top:var(--navh,84px);z-index:40;display:flex;justify-content:center;gap:.4rem;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;background:#0c0a08;border-top:1px solid rgba(184,150,62,.18);border-bottom:1px solid rgba(184,150,62,.18);padding:0 1rem}
.mn-tabs::-webkit-scrollbar{display:none}
.mn-tabs a{flex:none;padding:1.15rem 1.2rem;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--bone-2);text-decoration:none;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}
.mn-tabs a:hover{color:var(--champagne)}
.mn-tabs a[aria-current="page"]{color:var(--brass-lt);border-bottom-color:var(--brass)}
.mn-body{padding:clamp(3rem,6vw,5rem) 0 clamp(4rem,8vw,6rem)}
.mn-head{text-align:center;max-width:620px;margin:0 auto 3.4rem}
.mn-head h2{font-size:clamp(1.7rem,3.6vw,2.5rem);letter-spacing:.08em;color:var(--champagne)}
.mn-head p{color:var(--bone-2);font-size:1rem;line-height:1.8;margin:1rem 0 0}
.mn-cols{columns:2;column-gap:clamp(2.5rem,6vw,5.5rem)}
.mn-sec{break-inside:avoid;margin:0 0 3rem;padding:0}
.mn-sec h3{font-size:1.15rem;letter-spacing:.14em;color:var(--brass-lt);padding-bottom:.8rem;border-bottom:1px solid rgba(184,150,62,.3);margin-bottom:.3rem}
.mn-note{font-style:italic;color:var(--bone-2);font-size:1rem;margin:.8rem 0 .2rem}
.mn-sec ul{list-style:none;margin:0;padding:0}
.mn-sec li{padding:1rem 0;border-bottom:1px solid rgba(244,239,229,.07)}
.mn-row{display:flex;align-items:baseline;gap:.6rem}
.mn-name{font-size:.95rem;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:var(--bone)}
.mn-dots{flex:1;min-width:14px;border-bottom:1px dotted rgba(184,150,62,.4);transform:translateY(-4px)}
.mn-price{font-family:var(--display);font-size:1.05rem;color:var(--brass-lt);white-space:nowrap}
.mn-desc{margin:.4rem 0 0;font-size:1rem;line-height:1.65;color:var(--bone-2);max-width:92%}
.mn-extra{margin:.25rem 0 0;font-size:.95rem;font-style:italic;color:#bfb3a0}
.mn-pdf{text-align:center;margin:1rem 0 0}
.mn-pdf a{font-size:.8rem;letter-spacing:.22em;text-transform:uppercase;color:var(--brass-lt);text-decoration:none;border-bottom:1px solid var(--brass);padding-bottom:.3rem}
.mn-legal{text-align:center;color:#bfb3a0;font-size:.95rem;line-height:1.7;margin:3rem auto 0;max-width:60ch}
.mn-cta{background:var(--ink-2);text-align:center;padding:clamp(4rem,8vw,6rem) 0;border-top:1px solid rgba(184,150,62,.14)}
.mn-cta h2{font-size:clamp(1.5rem,3vw,2.1rem);letter-spacing:.08em;color:var(--champagne)}
.mn-cta p{color:var(--bone-2);margin:1rem 0 2rem;font-size:1rem}
.mn-cta p a{color:var(--brass-lt)}
@media(max-width:860px){.mn-cols{columns:1}.mn-desc{max-width:none}}
@media(max-width:560px){.mn-tabs{justify-content:flex-start}.mn-tabs a{padding:1rem .75rem;font-size:.8rem;letter-spacing:.1em}.mn-name{font-size:.88rem;letter-spacing:.07em}}
#enquire{scroll-margin-top:calc(var(--navh,84px) + 1.5rem)}
