/* The Bluff Room Supper Club. Tokens locked in DESIGN.md */
@font-face{font-family:"DM Serif Display";src:url(../fonts/dm-serif-display-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"DM Serif Display";src:url(../fonts/dm-serif-display-400-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:Figtree;src:url(../fonts/figtree-300-900.woff2) format("woff2");font-weight:300 900;font-style:normal;font-display:swap}

:root{
  --bottle:#143223; --lounge:#0E2318; --felt:#1B3B29; --ox:#5C1A22; --brass:#C8A15A; --brass-hi:#DDBB76;
  --white:#F4EEE2; --sage:#B7C2B0; --lamp:#FFE3A3;
  --serif:"DM Serif Display",Georgia,"Times New Roman",serif; --sans:Figtree,system-ui,-apple-system,"Segoe UI",sans-serif;
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:72px;--s9:112px;
  --r:4px; --wrap:1180px; --read:46rem;
  --rule:inset 0 0 0 4px var(--felt),inset 0 0 0 5px var(--brass);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:96px}
body{margin:0;background:var(--bottle);color:var(--white);font:400 1.125rem/1.6 var(--sans);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;overflow-wrap:break-word}
img,svg{display:block;max-width:100%}
img{height:auto}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.1;margin:0 0 var(--s4);text-wrap:balance}
h1{font-size:clamp(2.25rem,1.45rem + 3.2vw,4rem);letter-spacing:-.005em}
h2{font-size:clamp(2rem,1.5rem + 2vw,3rem)}
h3{font-size:1.375rem;line-height:1.2;margin-bottom:var(--s2)}
p{margin:0 0 var(--s4);max-width:66ch}
ul,ol{margin:0;padding:0;list-style:none}
a{color:var(--brass-hi);text-decoration-thickness:1px;text-underline-offset:.2em}
a:hover{color:var(--white)}
address{font-style:normal}
strong{font-weight:650}
:focus-visible{outline:3px solid var(--brass);outline-offset:3px}
main:focus{outline:none}
.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.wrap{width:min(100% - 32px,var(--wrap));margin-inline:auto}
.skip{position:absolute;left:16px;top:-80px;z-index:50;background:var(--brass);color:var(--lounge);padding:12px 18px;border-radius:var(--r);font-weight:650;text-decoration:none}
.skip:focus{top:12px}
[hidden]{display:none!important}

/* ---------- buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.75em 1.35em;border-radius:var(--r);font:650 1rem/1.15 var(--sans);text-decoration:none;text-align:center;border:1px solid var(--brass);cursor:pointer;transition:background-color .15s,color .15s}
.btn-brass{background:var(--brass);color:var(--lounge);box-shadow:inset 0 0 0 3px var(--brass),inset 0 0 0 4px rgba(14,35,24,.4)}
.btn-brass:hover{background:var(--brass-hi);color:var(--lounge);box-shadow:inset 0 0 0 3px var(--brass-hi),inset 0 0 0 4px rgba(14,35,24,.4)}
.btn-line{background:transparent;color:var(--white)}
.btn-line:hover{background:rgba(200,161,90,.16);color:var(--white)}
.btn-lg{min-height:56px;font-size:1.0625rem;padding-inline:1.6em}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3) var(--s5);margin-top:var(--s5)}
.text-link{display:inline-flex;align-items:center;min-height:44px;font-weight:600}

/* ---------- header */
.site-head{background:var(--lounge);border-bottom:1px solid rgba(200,161,90,.45);position:relative;z-index:20}
.head-in{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);min-height:68px}
.brand{display:inline-flex;flex-direction:column;flex:none;text-decoration:none;color:var(--white);font-family:var(--serif);font-size:1.5rem;line-height:1;padding:10px 0}
.brand-the{font-style:italic;color:var(--brass);font-size:.72em}
.brand-name{text-shadow:0 0 14px rgba(255,214,140,.35)}
.brand-sub{font-family:var(--serif);font-style:italic;font-size:.62em;color:var(--sage);padding-left:2.1em;margin-top:3px}
.brand:hover{color:var(--white)}
.nav-btn{display:none;align-items:center;gap:10px;min-height:44px;padding:0 14px;background:transparent;color:var(--white);border:1px solid rgba(200,161,90,.7);border-radius:var(--r);font:600 1rem var(--sans);cursor:pointer}
.nav-btn[aria-expanded=true]{background:rgba(200,161,90,.16)}
.site-nav{display:flex;align-items:center;gap:var(--s5)}
.nav-list{display:flex;gap:var(--s5)}
.nav-list a{display:inline-flex;align-items:center;min-height:44px;color:var(--white);text-decoration:none;font-weight:500;font-size:1rem;border-bottom:2px solid transparent}
.nav-list a:hover{border-bottom-color:rgba(200,161,90,.6)}
.nav-list a[aria-current=page]{border-bottom-color:var(--brass)}
.nav-call{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--sage);text-decoration:none;font-size:1rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.nav-call:hover{color:var(--white)}
.nav-reserve{min-height:44px;padding:.6em 1.1em;font-size:.9375rem;white-space:nowrap}
@media (max-width:1180px){.nav-call{display:none}}
@media (max-width:959px){
  .js .nav-btn{display:inline-flex}
  .js .site-nav{display:none}
  .js .site-nav.open{display:block;position:absolute;left:0;right:0;top:100%;background:var(--lounge);border-bottom:1px solid var(--brass);padding:var(--s3) 16px var(--s5);box-shadow:0 18px 30px rgba(5,14,9,.55)}
  .site-nav{flex-wrap:wrap;padding-bottom:var(--s3)}
  .js .site-nav .nav-list{flex-direction:column;gap:0;margin-bottom:var(--s4)}
  .js .site-nav .nav-list a{display:flex;min-height:52px;font-size:1.25rem;font-family:var(--serif);border-bottom:1px solid rgba(200,161,90,.25)}
  .js .site-nav .nav-list a[aria-current=page]{color:var(--brass-hi)}
  .js .site-nav .nav-call{display:inline-flex;margin-right:var(--s4)}
  html:not(.js) .head-in{flex-wrap:wrap}
  html:not(.js) .site-nav{width:100%}
  html:not(.js) .nav-list{flex-wrap:wrap;gap:0 var(--s5)}
}

/* ---------- bands */
.band{padding-block:var(--s8)}
.band-ox{background:var(--ox)}
.band-felt{background:var(--felt)}
.band-lounge{background:var(--lounge)}
@media (max-width:640px){.band{padding-block:var(--s7)}}

/* ---------- frames (picture mat) */
.frame{margin:0;padding:6px;border:1px solid var(--brass);background:transparent}
.frame img{width:100%;height:100%;object-fit:cover}
.frame figcaption{font-size:.9375rem;color:var(--sage);padding:var(--s2) 2px 0}

/* ---------- the sign (signature) */
.sign{container-type:inline-size;width:100%;max-width:640px;margin:0 0 var(--s6)}
.sign-panel{position:relative;background:radial-gradient(120% 140% at 50% 0%,#6d2129 0%,var(--ox) 55%,#4a141b 100%);border:3px solid var(--brass);border-radius:22px;box-shadow:inset 0 0 0 5px var(--ox),inset 0 0 0 6px rgba(200,161,90,.55),0 0 60px rgba(255,190,110,.12);padding:9cqi 8cqi 8cqi}
.bulbs{position:absolute;inset:15px;pointer-events:none}
.bulbs i{position:absolute;left:var(--x);top:var(--y);width:11px;height:11px;margin:-5.5px 0 0 -5.5px;border-radius:50%;background:#3d1a14;box-shadow:0 0 0 2px #7d5a2a}
.bulbs i::after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 38% 34%,#fffaf0 0 18%,var(--lamp) 42%,#e2a74b 100%);box-shadow:0 0 7px 2px rgba(255,210,130,.55),0 0 18px 4px rgba(255,190,100,.18);animation:bulb-on .3s calc(var(--i) * 26ms + .15s) both}
@keyframes bulb-on{from{opacity:0}to{opacity:1}}
.sign-word{position:relative;margin:0;max-width:none;font-family:var(--serif);line-height:.9;color:#FFF6E6;font-size:16.5cqi;letter-spacing:-.01em;text-shadow:0 0 .12em rgba(255,226,170,.85),0 0 .45em rgba(255,180,90,.45);animation:glow-on 1.1s 1.25s both}
.sign-the{display:block;font-style:italic;color:var(--lamp);font-size:.36em;line-height:1;margin:0 0 .12em .08em}
.sign-name{display:block;white-space:nowrap}
@keyframes glow-on{0%{color:#a88b73;text-shadow:none}30%{color:#FFF6E6;text-shadow:0 0 .12em rgba(255,226,170,.85),0 0 .45em rgba(255,180,90,.45)}38%{color:#c9ab8e;text-shadow:none}46%,100%{color:#FFF6E6;text-shadow:0 0 .12em rgba(255,226,170,.85),0 0 .45em rgba(255,180,90,.45)}}
.sign-board{position:relative;width:max-content;margin:16px 0 0 9cqi;max-width:none;background:var(--white);color:var(--ox);border:2px solid var(--brass);border-radius:4px;font-family:var(--serif);font-style:italic;font-size:max(1.4rem,6.6cqi);line-height:1;padding:.2em .7em .26em}
.sign-board::before,.sign-board::after{content:"";position:absolute;top:-18px;width:4px;height:16px;background:linear-gradient(90deg,#8a6a33,var(--brass-hi),#8a6a33)}
.sign-board::before{left:18%}.sign-board::after{right:18%}

/* ---------- hero */
.hero{padding-block:var(--s7) var(--s8);background:radial-gradient(60% 70% at 22% 18%,rgba(255,190,110,.09),transparent 70%)}
.hero-in{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:var(--s7) clamp(32px,5vw,88px);align-items:start}
.hero h1{max-width:23ch;font-size:clamp(2.1rem,1.45rem + 2.3vw,3.25rem)}
.lede{font-size:1.1875rem;color:var(--white);max-width:56ch}
.tonight{margin-top:var(--s5);color:var(--sage);font-size:1rem;padding-left:var(--s4);border-left:2px solid var(--brass)}
.tonight strong{color:var(--white)}
.hero-photo{align-self:stretch;max-height:720px}
.hero-photo img{aspect-ratio:auto}
@media (max-width:959px){
  .hero{padding-top:var(--s5)}
  .hero-in{grid-template-columns:1fr}
  .hero-photo{max-height:none;aspect-ratio:4/3}
}
@media (max-width:640px){.sign{margin-bottom:var(--s5)}.bulbs{inset:11px}.bulbs i{width:8px;height:8px;margin:-4px 0 0 -4px;box-shadow:0 0 0 1.5px #7d5a2a}.sign-panel{border-radius:16px}}

/* ---------- menu-card system */
.card{background:var(--felt);border:1px solid var(--brass);box-shadow:var(--rule);padding:var(--s6) clamp(20px,4vw,var(--s7))}
.card-head{text-align:center;font-size:clamp(1.6rem,1.3rem + 1vw,2rem);margin-bottom:var(--s2)}
.card-sub{text-align:center;font-family:var(--serif);font-style:italic;color:var(--brass);font-size:1.0625rem;margin:0 auto var(--s5);max-width:40ch}
.card-head + .card-sub{margin-top:0}
.card-rule{display:block;width:72px;height:9px;margin:0 auto var(--s5);background:radial-gradient(circle,var(--brass) 2.5px,transparent 3px) center/9px 9px no-repeat,linear-gradient(var(--brass),var(--brass)) center/100% 1px no-repeat}
.row{display:flex;align-items:baseline;gap:var(--s2);margin:0;max-width:none}
.lead{flex:1 1 auto;min-width:24px;height:4px;align-self:baseline;background:radial-gradient(circle,var(--brass) 1.1px,transparent 1.6px) 0 50%/7px 4px repeat-x;opacity:.9}
.price{font-family:var(--serif);font-size:1.25rem;white-space:nowrap;color:var(--white)}
.price-incl{font-family:var(--sans);font-size:.9375rem;color:var(--sage)}
.leaders{margin:var(--s4) 0 var(--s2);max-width:34rem}
.leaders .row{padding:6px 0;font-size:1.0625rem}
.leaders .row > span:first-child{max-width:75%}

.hours li{padding:var(--s3) 0;border-bottom:1px solid rgba(200,161,90,.22)}
.hours li:last-child{border-bottom:0}
.hours .h-day{font-family:var(--serif);font-size:1.3rem}
.hours .h-time{font-variant-numeric:tabular-nums;white-space:nowrap}
.hours .h-night{margin:2px 0 0;color:var(--sage);font-size:1rem}
.hours li.is-today{position:relative;padding-left:var(--s4);margin-left:calc(-1 * var(--s4) - 3px);border-left:3px solid var(--brass)}
.hours li.is-today .h-night{color:var(--white)}
.today-tag{font-weight:650;color:var(--brass-hi)}

/* ---------- home sections */
.week-in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:var(--s7) clamp(32px,6vw,96px);align-items:start}
.week-text{padding-top:var(--s4)}
.week-photo{margin-top:var(--s6);aspect-ratio:3/2}
.week-photo img{object-position:20% 50%}
.week-card .card-head{margin-bottom:var(--s4)}
@media (max-width:959px){.week-in{grid-template-columns:1fr}}

.twin-in{display:grid;grid-template-columns:1fr 1fr;gap:var(--s7) clamp(32px,5vw,80px)}
.feature{display:grid;grid-template-columns:minmax(120px,200px) minmax(0,1fr);gap:var(--s5) var(--s6);align-items:start}
.feature-photo{aspect-ratio:3/4}
.feature .lead{background-image:radial-gradient(circle,var(--brass-hi) 1.1px,transparent 1.6px)}
.band-ox .card{background:#511720;box-shadow:inset 0 0 0 4px #511720,inset 0 0 0 5px var(--brass)}
@media (max-width:1100px){.twin-in{grid-template-columns:1fr}.feature{grid-template-columns:minmax(140px,240px) minmax(0,1fr)}}
@media (max-width:600px){.feature{grid-template-columns:1fr}.feature-photo{aspect-ratio:16/10;max-width:none}}

.ritual-in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:var(--s7) clamp(32px,6vw,96px);align-items:start}
.ritual-photo{margin-top:var(--s5);aspect-ratio:3/2}
.courses{counter-reset:course;border-top:1px solid rgba(200,161,90,.35)}
.courses li{counter-increment:course;display:grid;grid-template-columns:3.2rem minmax(0,1fr);column-gap:var(--s4);padding:var(--s5) 0;border-bottom:1px solid rgba(200,161,90,.35)}
.courses li::before{content:counter(course);grid-row:span 2;font-family:var(--serif);font-size:2.75rem;line-height:.9;color:var(--brass)}
.courses h3{margin-bottom:var(--s1)}
.courses p{margin:0;color:var(--sage)}
.courses p a{color:var(--brass-hi)}
@media (max-width:959px){.ritual-in{grid-template-columns:1fr}}

.parties-in{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:var(--s7) clamp(32px,6vw,96px);align-items:center}
.parties-photo{aspect-ratio:4/5;max-height:560px}
.parties .leaders{margin-bottom:var(--s5)}
@media (max-width:959px){.parties-in{grid-template-columns:1fr}.parties-photo{aspect-ratio:16/10;max-height:none}}

.closing{border-top:1px solid rgba(200,161,90,.3)}
.closing-in{max-width:var(--read);margin-inline:auto}
.closing-in > *{margin-inline:0}
.closing-addr{margin-top:var(--s5);color:var(--sage);font-size:1rem}

/* ---------- page heads (inner pages) */
.page-head{padding-block:var(--s7) var(--s6)}
.page-head-in{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:var(--s6) clamp(32px,6vw,96px);align-items:end}
.page-head h1{max-width:20ch}
.page-head .lede{margin-bottom:0}
.page-head .frame{aspect-ratio:4/3}
@media (max-width:959px){.page-head-in{grid-template-columns:1fr}.page-head .frame{max-width:560px}}
.prose{max-width:var(--read)}
.prose h2{margin-top:var(--s7)}
.prose h2:first-child{margin-top:0}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s7) clamp(32px,6vw,96px);align-items:start}
@media (max-width:959px){.split{grid-template-columns:1fr}}
.note-box{border:1px solid var(--brass);padding:var(--s4) var(--s5);margin:var(--s5) 0;max-width:var(--read)}
.note-box p:last-child{margin-bottom:0}
.note-box h3{font-size:1.25rem}

/* ---------- menu page */
.menu-tools{position:relative;z-index:10;background:var(--lounge);border-block:1px solid rgba(200,161,90,.45)}
.menu-tools-in{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s5);padding-block:var(--s3)}
.menu-tools fieldset{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3)}
.menu-tools legend{float:left;font-weight:600;margin-right:var(--s2);font-size:1rem}
.chip{position:relative;display:inline-flex}
.chip input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.chip span{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1px solid rgba(200,161,90,.7);border-radius:var(--r);font-size:.9375rem;font-weight:600;color:var(--white);cursor:pointer;user-select:none}
.chip span::before{content:"";width:14px;height:14px;border:1.5px solid var(--brass);border-radius:2px;flex:none}
.chip input:checked + span{background:var(--brass);color:var(--lounge)}
.chip input:checked + span::before{background:var(--lounge) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3 7.5l2.6 2.6L11 4.5' fill='none' stroke='%23C8A15A' stroke-width='2'/%3E%3C/svg%3E") center/12px no-repeat;border-color:var(--lounge)}
.chip input:focus-visible + span{outline:3px solid var(--brass);outline-offset:3px}
.chip span:hover{background:rgba(200,161,90,.16)}
.chip input:checked + span:hover{background:var(--brass-hi)}
.menu-status{margin:0;font-size:.9375rem;color:var(--sage)}
.menu-status strong{color:var(--white)}
.btn-clear{min-height:44px;padding:0 12px;background:none;border:0;color:var(--brass-hi);font:600 .9375rem var(--sans);text-decoration:underline;text-underline-offset:.2em;cursor:pointer}
.menu-key{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5);margin:0 0 var(--s5);font-size:.9375rem;color:var(--sage);max-width:none}
.menu-key span{display:inline-flex;align-items:center;gap:8px}
.menu-body{padding-block:var(--s7) var(--s8)}
.menu-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row dense;gap:var(--s6);align-items:start}
.menu-cols .card.wide{grid-column:1 / -1}
@media (max-width:959px){.menu-cols{grid-template-columns:1fr}}
.items{display:grid;gap:var(--s4)}
.wide .items{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--s7)}
@media (max-width:760px){.wide .items{grid-template-columns:1fr}}
.item .row{font-family:var(--serif);font-size:1.25rem;line-height:1.2}
.item-name{max-width:78%}
.item-desc{margin:4px 0 0;font-size:.9875rem;color:var(--sage);line-height:1.5}
.marks{display:inline-flex;gap:6px;vertical-align:1px;margin-left:4px;white-space:nowrap}
.mark{display:inline-block;font:700 .75rem/1 var(--sans);letter-spacing:.02em;padding:3px 5px 3px;border:1px solid var(--brass);border-radius:2px;color:var(--brass-hi)}
.mark-f{border-style:solid}
.mark-v{border-radius:999px;padding-inline:6px}
.mark-gf{border-width:1px;box-shadow:inset 0 0 0 1px var(--felt),inset 0 0 0 2px var(--brass)}
.item[hidden]{display:none}
.empty-note{color:var(--sage);font-size:1rem;text-align:center;margin:var(--s2) auto 0}
.bar-card{background:var(--ox);box-shadow:inset 0 0 0 4px var(--ox),inset 0 0 0 5px var(--brass)}

/* old fashioned builder */
.of{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:var(--s6) var(--s7);margin-top:var(--s6);align-items:start}
.of fieldset{border:0;padding:0;margin:0 0 var(--s5)}
.of legend{font-family:var(--serif);font-size:1.3rem;margin-bottom:var(--s2);padding:0}
.of-opts{display:flex;flex-wrap:wrap;gap:var(--s2)}
.opt{position:relative;display:inline-flex}
.opt input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.opt span{display:flex;flex-direction:column;justify-content:center;min-height:48px;padding:8px 14px;border:1px solid rgba(200,161,90,.75);border-radius:var(--r);cursor:pointer;font-weight:600;font-size:1rem;line-height:1.25}
.opt span small{font-weight:400;font-size:.875rem;color:var(--sage)}
.opt input:checked + span{background:var(--brass);color:var(--lounge);border-color:var(--brass)}
.opt input:checked + span small{color:var(--lounge)}
.opt input:focus-visible + span{outline:3px solid var(--brass);outline-offset:3px}
.opt span:hover{background:rgba(200,161,90,.16)}
.opt input:checked + span:hover{background:var(--brass-hi)}
.of-glass{position:sticky;top:96px}
.of-glass svg{width:100%;height:auto}
.of-say{font-family:var(--serif);font-size:1.5rem;line-height:1.25;margin:0 0 var(--s3)}
.of-out{border-top:1px solid rgba(200,161,90,.45);padding-top:var(--s4)}
.of-out ol{list-style:decimal;padding-left:1.4em;color:var(--sage);font-size:1rem}
.of-out ol li{margin-bottom:4px}
.of-taste{font-size:1rem}
.of-layer{transition:fill .35s ease}
@media (max-width:760px){.of{grid-template-columns:1fr}.of-glass{position:static;max-width:220px;order:-1}}
.press-terms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4);margin:var(--s5) 0 0}
.press-terms div{border-top:1px solid rgba(200,161,90,.5);padding-top:var(--s3)}
.press-terms dt{font-family:var(--serif);font-size:1.2rem}
.press-terms dd{margin:0;color:var(--sage);font-size:.975rem}
@media (max-width:640px){.press-terms{grid-template-columns:1fr}}

/* ---------- timeline (fish fry) */
.timeline{border-left:2px solid var(--brass);margin-left:6px}
.timeline li{position:relative;padding:0 0 var(--s5) var(--s5)}
.timeline li::before{content:"";position:absolute;left:-8px;top:.45em;width:14px;height:14px;border-radius:50%;background:var(--bottle);border:2px solid var(--brass)}
.timeline time,.timeline .t{font-family:var(--serif);font-size:1.4rem;display:block;line-height:1.2}
.timeline p{margin:2px 0 0;color:var(--sage)}

/* ---------- forms */
.form{max-width:var(--read)}
.field{margin:0 0 var(--s5)}
.field > label,.field > .label,.fs-legend{display:block;font-weight:650;margin-bottom:6px;font-size:1rem}
.hint{display:block;font-size:.9375rem;color:var(--sage);margin:-2px 0 8px}
.req{color:var(--brass-hi);font-weight:400}
fieldset.field{border:0;padding:0;margin:0 0 var(--s5);min-width:0}
input,select,textarea{color-scheme:dark}
input[type=text],input[type=tel],input[type=email],input[type=number],input[type=date],select,textarea{width:100%;min-height:50px;padding:10px 14px;background:var(--lounge);color:var(--white);border:1px solid rgba(200,161,90,.75);border-radius:var(--r);font:400 1.0625rem/1.4 var(--sans)}
textarea{min-height:120px;resize:vertical}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23C8A15A' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:12px;padding-right:40px}
input::placeholder,textarea::placeholder{color:#8f9c8c}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--brass);outline-offset:1px}
[aria-invalid=true]{border-color:#F0A08F;border-width:2px}
.err{display:flex;gap:8px;align-items:flex-start;color:#FFC2B3;font-size:.9375rem;font-weight:600;margin:6px 0 0}
.err::before{content:"";flex:none;width:16px;height:16px;margin-top:2px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='7' fill='none' stroke='%23FFC2B3' stroke-width='1.6'/%3E%3Cpath d='M8 4v5M8 11v1.5' stroke='%23FFC2B3' stroke-width='1.8'/%3E%3C/svg%3E")}
.error-summary{border:2px solid #F0A08F;padding:var(--s4) var(--s5);margin:0 0 var(--s5);background:rgba(92,26,34,.55)}
.error-summary h2,.error-summary h3{font-size:1.3rem;margin-bottom:var(--s2)}
.error-summary ul{list-style:disc;padding-left:1.2em}
.error-summary a{color:#FFD9CF}
.two{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--s4)}
@media (max-width:560px){.two{grid-template-columns:1fr}}
.choice-list{display:grid;gap:var(--s2)}
.choice{position:relative;display:flex}
.choice input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.choice span{flex:1;display:flex;align-items:center;gap:12px;min-height:50px;padding:10px 14px;border:1px solid rgba(200,161,90,.75);border-radius:var(--r);cursor:pointer}
.choice span::before{content:"";flex:none;width:18px;height:18px;border-radius:50%;border:2px solid var(--brass)}
.choice input:checked + span{background:rgba(200,161,90,.18);border-color:var(--brass)}
.choice input:checked + span::before{background:radial-gradient(circle,var(--brass) 0 4px,transparent 4.5px)}
.choice input:focus-visible + span{outline:3px solid var(--brass);outline-offset:2px}
.done{border:1px solid var(--brass);box-shadow:var(--rule);background:var(--felt);padding:var(--s6) clamp(20px,4vw,var(--s7))}
.done h2{font-size:clamp(1.8rem,1.4rem + 1.4vw,2.4rem)}
.demo-note{border-left:3px solid var(--brass);padding-left:var(--s4);color:var(--white);font-weight:600}
.summary-list{margin:0 0 var(--s5)}
.summary-list .row{padding:8px 0;border-bottom:1px solid rgba(200,161,90,.25)}
.summary-list dt{color:var(--sage);white-space:nowrap}
.summary-list dd{margin:0;text-align:right}

/* ---------- reserve flow */
.reserve-in{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:var(--s7) clamp(32px,5vw,80px);align-items:start}
@media (max-width:959px){.reserve-in{grid-template-columns:1fr}.reserve-aside{order:2}}
.steps{display:flex;gap:4px;margin:0 0 var(--s5);counter-reset:step}
.steps li{flex:1;counter-increment:step;font-size:.875rem;color:var(--sage);border-top:3px solid rgba(200,161,90,.3);padding-top:8px;min-width:0}
.steps li::before{content:counter(step) ". "}
.steps li[aria-current=step]{color:var(--white);border-top-color:var(--brass);font-weight:650}
.steps li.is-done{border-top-color:rgba(200,161,90,.75);color:var(--white)}
@media (max-width:560px){.steps li span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.steps li[aria-current=step] span{position:static;width:auto;height:auto;overflow:visible;clip:auto}}
.step{border:0;margin:0;padding:0}
.step-h{font-size:clamp(1.7rem,1.3rem + 1.4vw,2.3rem);margin-bottom:var(--s2)}
.step-h:focus{outline:none}
.step-nav{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s5);align-items:center}
.btn-back{background:none;border:1px solid rgba(200,161,90,.6);color:var(--white)}
.party{display:grid;grid-template-columns:repeat(7,minmax(44px,64px));gap:var(--s2)}
.party .opt span{width:100%}
@media (max-width:440px){.party{grid-template-columns:repeat(5,minmax(0,1fr))}}
.party .opt span{min-width:52px;align-items:center;font-size:1.125rem}
.cal{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.cal-dow{text-align:center;font-size:.875rem;color:var(--sage);padding-bottom:2px}
.day{position:relative;display:flex}
.day input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.day > span{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:64px;padding:6px 2px;border:1px solid rgba(200,161,90,.6);border-radius:var(--r);cursor:pointer;text-align:center;line-height:1.1}
.day .d-num{font-family:var(--serif);font-size:1.5rem}
.day .d-mon{font-size:.8125rem;color:var(--sage)}
.day .d-tag{font-size:.75rem;color:var(--brass-hi);margin-top:2px}
.day input:checked + span{background:var(--brass);color:var(--lounge);border-color:var(--brass)}
.day input:checked + span .d-mon,.day input:checked + span .d-tag{color:var(--lounge)}
.day input:focus-visible + span{outline:3px solid var(--brass);outline-offset:2px}
.day input:disabled + span{border-style:dashed;border-color:rgba(183,194,176,.35);color:#9aa797;cursor:not-allowed}
.day input:disabled + span .d-tag{color:#9aa797}
.day.blank{visibility:hidden}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));gap:var(--s2)}
.slot{position:relative;display:flex}
.slot input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.slot > span{flex:1;display:flex;flex-direction:column;justify-content:center;min-height:52px;padding:6px 12px;border:1px solid rgba(200,161,90,.7);border-radius:var(--r);cursor:pointer;line-height:1.2}
.slot .s-time{font-family:var(--serif);font-size:1.35rem}
.slot .s-why{font-size:.8125rem;color:var(--sage)}
.slot input:checked + span{background:var(--brass);color:var(--lounge)}
.slot input:checked + span .s-why{color:var(--lounge)}
.slot input:focus-visible + span{outline:3px solid var(--brass);outline-offset:2px}
.slot input:disabled + span{border-style:dashed;border-color:rgba(183,194,176,.35);color:#9aa797;cursor:not-allowed}
.slot input:disabled + span .s-why{color:#a9b5a6}
.rules-card .row{padding:6px 0}
.reserve-aside .card-head{font-size:1.5rem}
.reserve-aside p{font-size:1rem}
.reserve-aside h3{font-size:1.2rem;margin-top:var(--s4)}
.picked{margin:0 0 var(--s4);color:var(--sage);font-size:1rem}
.picked strong{color:var(--white)}

/* ---------- visit */
.map-wrap{margin:0}
.map-wrap svg{width:100%;height:auto;border:1px solid var(--brass)}
.map-wrap figcaption{font-size:.9375rem;color:var(--sage);margin-top:var(--s2)}
.dirs{display:grid;gap:var(--s4)}
.dirs h3{margin-bottom:2px}
.dirs p{margin:0;color:var(--sage)}
.faq details{border-bottom:1px solid rgba(200,161,90,.35)}
.faq details:first-child{border-top:1px solid rgba(200,161,90,.35)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:var(--s4);min-height:56px;padding:var(--s3) 0;cursor:pointer;font-family:var(--serif);font-size:1.3rem;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:12px;height:12px;border-right:2px solid var(--brass);border-bottom:2px solid var(--brass);transform:rotate(45deg) translateY(-3px);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(-135deg) translate(-2px,-2px)}
.faq details p{color:var(--sage);margin-bottom:var(--s4)}

/* ---------- events */
.rooms{display:grid;grid-template-columns:1fr 1fr;gap:var(--s6)}
@media (max-width:860px){.rooms{grid-template-columns:1fr}}
.room .frame{aspect-ratio:16/10;margin-bottom:var(--s5)}
.room .leaders{max-width:none}
.steps-list{counter-reset:s;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s5)}
.steps-list li{counter-increment:s;border-top:1px solid var(--brass);padding-top:var(--s4)}
.steps-list li::before{content:counter(s);display:block;font-family:var(--serif);font-size:2.4rem;line-height:1;color:var(--brass);margin-bottom:var(--s2)}
.steps-list p{color:var(--sage);font-size:1rem;margin:0}
@media (max-width:860px){.steps-list{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.steps-list{grid-template-columns:1fr}}

/* ---------- 404 */
.lost{padding-block:var(--s8) var(--s9)}
.lost .sign{max-width:460px}

/* ---------- footer */
.site-foot{background:var(--lounge);border-top:1px solid rgba(200,161,90,.45);padding-top:var(--s7);font-size:1rem}
.foot-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,.8fr);gap:var(--s6) clamp(24px,5vw,72px)}
.foot-mark{font-family:var(--serif);font-size:1.75rem;line-height:1;margin-bottom:var(--s4)}
.foot-club address{margin-bottom:var(--s4);color:var(--sage)}
.foot-club a{display:inline-block;padding:4px 0}
.foot-h{font-family:var(--serif);font-size:1.3rem;margin-bottom:var(--s3)}
.foot-hours-list .row{padding:3px 0;color:var(--sage);font-variant-numeric:tabular-nums}
.foot-hours-list .row span:first-child{color:var(--white)}
.foot-note{color:var(--sage);font-size:.9375rem;margin-top:var(--s3)}
.foot-nav a{display:inline-flex;align-items:center;min-height:40px;color:var(--white);text-decoration:none}
.foot-nav a:hover{color:var(--brass-hi);text-decoration:underline}
.foot-fine{border-top:1px solid rgba(200,161,90,.25);margin-top:var(--s6);padding-block:var(--s5) var(--s6);font-size:.9375rem;color:var(--sage)}
.foot-fine p{max-width:none}
.foot-fine strong{color:var(--white)}
@media (max-width:860px){.foot-grid{grid-template-columns:1fr 1fr}.foot-club{grid-column:1 / -1}}
@media (max-width:560px){.foot-grid{grid-template-columns:1fr}}

/* ---------- phone action dock */
.dock{display:none}
@media (max-width:959px){
  .dock{display:grid;grid-template-columns:1.25fr 1fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:30;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(14,35,24,.97);border-top:1px solid var(--brass)}
  .dock .btn{min-height:48px;padding-inline:.6em;font-size:.9875rem}
  body:has(.dock){padding-bottom:72px}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
@media print{.site-head,.dock,.menu-tools,.site-foot nav{display:none}body{background:#fff;color:#000}}

/* ---------- page-specific additions */
@media (min-width:760px){.menu-tools{position:sticky;top:0}}
@media (max-width:400px){.hero h1{font-size:2rem}h1{font-size:2.05rem}}
legend{padding:0}
.step > legend{margin-bottom:var(--s2)}
html:not(.js) .of-wrap{display:none}
.note-inline{color:var(--brass-hi);font-weight:600;font-size:1rem}
.menu-allergy{font-size:.9375rem;color:var(--sage);margin-bottom:var(--s6)}
.menu-cols{align-items:stretch}
.bar .wrap > * + *{margin-top:var(--s6)}
.bar-intro{max-width:var(--read)}
.bar-intro .press-terms{margin-top:var(--s5)}
.of-label{font-size:.9375rem;color:var(--sage);margin:0 0 4px}
.of-h{font-family:var(--serif);font-weight:400;font-size:1.25rem;margin:var(--s4) 0 var(--s2)}
.of-price{font-family:var(--serif);font-size:1.3rem;margin:var(--s3) 0 0}
.bar-card .item-desc,.bar-card .of-out ol,.bar-card .card-sub + *{color:#E3D3C9}
.bar-card .of-taste{color:var(--white)}
.bar-card .opt span small{color:#E3D3C9}
.bar-card .card-sub{color:var(--brass-hi)}
.bar-list .items{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--s7)}
@media (max-width:760px){.bar-list .items{grid-template-columns:1fr}}
.ff-photo{aspect-ratio:4/3}
.ff-photo img{object-position:50% 60%}
.ff-split{align-items:start}
.ff-key{justify-content:center;margin:var(--s5) 0 0}
.ff-with .leaders .row > span:last-child{color:var(--sage);text-align:right}
.ff-rules{margin-top:var(--s2)}
.carry{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s7) clamp(32px,6vw,96px);align-items:center}
.carry-photo{aspect-ratio:3/2}
@media (max-width:959px){.carry{grid-template-columns:1fr}}
.pk-h2{margin-top:var(--s7)}
.steps-two{grid-template-columns:repeat(2,minmax(0,1fr))}
.steps-two h3{font-size:1.25rem;margin-bottom:4px}
@media (max-width:480px){.steps-two{grid-template-columns:1fr}}
.inq{align-items:start}
.room .card-head{text-align:left}
.room .card-sub{text-align:left;margin-left:0}
.visit-head{align-items:start}
.visit-h2{margin-top:var(--s7)}
.faq h2{margin-bottom:var(--s4)}
.reserve-head{padding-bottom:var(--s5)}
.reserve-body{padding-bottom:var(--s8)}
.lost h1{max-width:20ch}
.lost-links{display:flex;flex-wrap:wrap;gap:0 var(--s5);margin-top:var(--s5)}
.lost-links a{display:inline-flex;align-items:center;min-height:44px}
.sign-small{max-width:460px}
@media (max-height:520px) and (orientation:landscape){.sign{max-width:340px;margin-bottom:var(--s4)}.hero{padding-top:var(--s4)}}
@media (max-width:959px){.week-photo{display:none}}
