/* =========================================================================
   TXM v3, Stillwell's-inspired
   Design cues: burgundy statement sections, script section titles, pill photos
   with dotted borders, sketch icons as dividers, slide-out reveals, and
   TWO-LOCATION differentiation baked into the mid-page structure.
   ========================================================================= */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:#100807;color:#F3E7D3;font-family:'Cormorant Garamond',Georgia,serif;font-weight:400;font-size:20px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit;transition:color .3s}
ul{list-style:none}

:root{
  --ink:#100807;
  --ink-2:#1A0F0D;
  --wine:#7A171C;          /* Stillwell's burgundy, used for statement sections */
  --wine-dk:#5C1015;
  --wine-lt:#8E1F26;
  --cream:#F3E7D3;         /* warm cream, Stillwell's text color */
  --cream-dk:#D5C4A6;
  --cream-mut:rgba(243,231,211,.6);
  --brass:#C89B3C;         /* used sparingly for premium accents */
  --line:rgba(243,231,211,.28);
  --line-wine:rgba(243,231,211,.45);

  --fD:'Rye',serif;                 /* TXM brand DNA, matches physical menus */
  --fS:'Rye',serif;                 /* Section headlines also Rye, brand consistency */
  --fH:'Oswald',sans-serif;         /* Small-caps labels */
  --fB:'Cormorant Garamond',Georgia,serif;  /* Elevated body serif */
}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;top:-100%;left:1rem;background:var(--cream);color:var(--ink);padding:.75rem 1.5rem;font-family:var(--fH);font-weight:500;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;z-index:9999;transition:top .2s}
.skip:focus{top:0}

.container{max-width:1180px;margin:0 auto;padding:0 1.75rem}
.container-narrow{max-width:840px;margin:0 auto;padding:0 1.75rem}

/* Small caps label, used above script headlines */
.smcap{display:inline-block;font-family:var(--fH);font-size:.72rem;font-weight:400;letter-spacing:.42em;text-transform:uppercase;color:var(--cream-mut);margin-bottom:1.5rem}
.smcap--wine{color:var(--cream)}

/* Section headline, Rye (matches TXM's physical menus) */
.script{font-family:var(--fS);font-weight:400;line-height:1.05;color:var(--cream);letter-spacing:.005em}
.script--xl{font-size:clamp(2.25rem,5vw,4rem)}
.script--lg{font-size:clamp(2rem,3.75vw,3rem)}
.script--md{font-size:clamp(1.5rem,2.5vw,2rem)}
.script--brass{color:var(--brass)}

/* Rye, same font, kept as an alias for backward compatibility in inline markup */
.rye{font-family:var(--fD);letter-spacing:.02em}

/* Serif body */
.lede{font-size:1.15rem;line-height:1.7;color:var(--cream)}
.lede--soft{color:var(--cream-mut);font-weight:400}

/* Sketch icon divider, 5 small illustrations used throughout */
.divider{display:flex;align-items:center;justify-content:center;gap:1.25rem;margin:1.5rem 0;color:var(--cream-mut)}
.divider__line{width:2rem;height:1px;background:var(--line)}
.divider svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.1}

/* Buttons, thin solid borders. Dots are the pill + footer language;
   buttons contrast with clean lines. */
.btn{display:inline-block;font-family:var(--fH);font-size:.72rem;font-weight:400;letter-spacing:.32em;text-transform:uppercase;padding:1rem 2rem;border:1px solid transparent;cursor:pointer;transition:all .35s cubic-bezier(.4,0,.2,1);line-height:1;background:transparent}
.btn--cream{color:var(--ink);background:var(--cream);border-color:var(--cream)}
.btn--cream:hover{background:var(--wine);color:var(--cream);border-color:var(--wine)}
.btn--outline{color:var(--cream);border-color:var(--cream)}
.btn--outline:hover{background:var(--wine);color:var(--cream);border-color:var(--wine)}
.btn--outline-wine{color:var(--cream);border-color:rgba(243,231,211,.55)}
.btn--outline-wine:hover{background:var(--cream);color:var(--wine)}
.btn--text{padding:0;font-size:.75rem;letter-spacing:.32em;border:none;position:relative;color:var(--cream);padding-bottom:.4rem;background:none}
.btn--text::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor}
.btn--text:hover{color:var(--brass)}
.btn:focus-visible{outline:2px solid var(--brass);outline-offset:4px}

/* =========================================================================
   NAV
   ========================================================================= */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:1.5rem 0;background:linear-gradient(to bottom,rgba(16,8,7,.94) 0%,rgba(16,8,7,.82) 45%,rgba(16,8,7,.45) 80%,rgba(16,8,7,0) 100%);padding-bottom:2.75rem;transition:background .35s,padding .35s}
.nav.scrolled{background:rgba(16,8,7,.96);padding:.85rem 0;border-bottom:1px solid var(--line)}
.nav__inner{display:flex;align-items:center;justify-content:space-between;padding:0 1.75rem;max-width:1440px;margin:0 auto}
.nav__logo{display:flex;align-items:center;text-decoration:none}
.nav__logo img{width:104px;height:104px;object-fit:contain;transition:width .35s,height .35s;filter:drop-shadow(0 2px 8px rgba(0,0,0,.45))}
.nav.scrolled .nav__logo img{width:80px;height:80px}
.nav__list{display:none;gap:2.75rem;align-items:center}
@media(min-width:960px){.nav__list{display:flex}}
.nav__link{font-family:var(--fH);font-size:.68rem;font-weight:400;letter-spacing:.34em;text-transform:uppercase;color:var(--cream);position:relative;padding:.5rem 0}
.nav__link::after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--brass);transform:scaleX(0);transform-origin:right;transition:transform .4s cubic-bezier(.7,0,.3,1)}
.nav__link:hover{color:var(--brass)}
.nav__link:hover::after{transform:scaleX(1);transform-origin:left}
/* Nav location buttons, Tyler & Lindale as prominent right-side CTAs.
   Outlined by default; hover fills with each location's chip color. */
.nav__loc-btns{display:none;gap:.6rem;align-items:center}
@media(min-width:820px){.nav__loc-btns{display:flex}}
.nav__loc-btn{display:inline-flex;align-items:center;gap:.55rem;padding:.7rem 1.2rem;font-family:var(--fH);font-size:.7rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--cream);border:1px solid rgba(243,231,211,.4);background:transparent;transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer;line-height:1}
.nav__loc-btn--t:hover{background:var(--brass);color:var(--ink);border-color:var(--brass)}
.nav__loc-btn--l:hover{background:var(--cream);color:var(--ink);border-color:var(--cream)}
.nav__loc-btn:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
/* Chip inside nav location buttons */
.nav__chip{display:inline-flex;align-items:center;justify-content:center;width:1.15rem;height:1.15rem;font-family:var(--fH);font-size:.6rem;font-weight:600;letter-spacing:0;color:var(--ink);border-radius:2px;line-height:1}
.nav__chip--t{background:var(--brass)}
.nav__chip--l{background:var(--cream)}
.nav__cta{display:none}
@media(min-width:700px){.nav__cta{display:inline-block;padding:.6rem 1.4rem;font-family:var(--fH);font-size:.66rem;font-weight:400;letter-spacing:.28em;text-transform:uppercase;color:var(--ink);background:var(--cream);cursor:pointer;transition:all .3s}}
.nav__cta:hover{background:var(--brass);color:var(--ink)}
.nav__burger{display:flex;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:.5rem}
.nav__burger span{display:block;width:22px;height:1px;background:var(--cream)}
@media(min-width:960px){.nav__burger{display:none}}

/* =========================================================================
   HERO, split panel: Tyler + Lindale visible from the first frame
   ========================================================================= */
.hero{position:relative;min-height:100vh;background:var(--ink);overflow:hidden}
.hero__split{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr}
.hero__pane{position:relative;overflow:hidden}
/* Individual slides stack absolutely; only the .hero__slide--active is visible.
   Filter matches the previous pane filter (brightness + contrast) so photos
   read as background rather than foreground images. */
.hero__slide{position:absolute;inset:0;background-size:cover;background-position:center;filter:brightness(.72) contrast(1.02);opacity:0;transition:opacity 1.6s ease-in-out;will-change:opacity}
.hero__slide--active{opacity:1}
/* Four-stop gradient: darker at very top so the nav (Our Story, GoodStock
   Beef, Billiards) reads clearly, fades to a light middle for the hero
   title, then re-darkens toward the bottom edge. */
.hero__pane::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,8,7,.75) 0%,rgba(16,8,7,.15) 22%,rgba(16,8,7,.15) 55%,rgba(16,8,7,.6) 100%);z-index:2;pointer-events:none}
@media (prefers-reduced-motion: reduce){
  .hero__slide{transition:none}
}
.hero__divider{position:absolute;top:20%;bottom:20%;left:50%;width:1px;background:var(--line);z-index:2;transform:translateX(-.5px)}
@media(max-width:800px){
  .hero__split{grid-template-columns:1fr;grid-template-rows:1fr 1fr}
  .hero__divider{top:auto;left:0;right:0;bottom:auto;width:auto;height:1px;top:50%}
}
.hero__content{position:relative;z-index:3;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:8rem 1.75rem 3rem;max-width:900px;margin:0 auto;text-shadow:0 2px 14px rgba(16,8,7,.55)}
.hero__eyebrow{font-family:var(--fH);font-size:.68rem;font-weight:400;letter-spacing:.42em;text-transform:uppercase;color:var(--cream-mut);margin-bottom:1.75rem}
.hero__title-rye{font-family:var(--fD);font-size:clamp(2.75rem,7vw,5.25rem);color:var(--cream);line-height:1;letter-spacing:.015em;margin-bottom:1rem}
.hero__title-script{font-family:var(--fH);font-weight:300;font-size:clamp(.95rem,1.5vw,1.2rem);color:var(--brass);line-height:1;margin-bottom:2.75rem;letter-spacing:.42em;text-transform:uppercase}
/* Hero location columns, Tyler and Lindale each get their own vertical
   stack (button → name → address) positioned over their respective hero
   pane, symmetric off-center so nothing crowds the middle divider. */
.hero__loc-grid{display:grid;grid-template-columns:1fr 1fr;gap:6rem;margin-top:3rem;align-items:start;max-width:820px;margin-left:auto;margin-right:auto}
.hero__loc-col{display:flex;flex-direction:column;align-items:center;gap:1.75rem;text-align:center}
.hero__loc-name{font-family:var(--fB);font-style:italic;font-weight:500;font-size:clamp(2.4rem,3.5vw,2.75rem);color:var(--cream);margin:0;line-height:1}
.hero__loc-tag{font-family:var(--fB);font-style:italic;font-size:clamp(1.05rem,1.4vw,1.2rem);color:var(--cream-mut);margin:0;line-height:1.4;letter-spacing:0}
@media(max-width:640px){
  .hero__loc-grid{grid-template-columns:1fr;gap:2.5rem}
}
.hero__scroll{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);z-index:3;color:var(--cream-mut);font-family:var(--fH);font-size:.6rem;letter-spacing:.4em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:.6rem}
.hero__scroll svg{animation:bounceScroll 2s ease-in-out infinite}
@keyframes bounceScroll{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}

/* =========================================================================
   HERO-ALT v2, editorial video-column split.
   Left ~62% = steaks.mp4 stage. Right ~38% = ink editorial masthead column
   with brass eyebrow, Rye title, italic subtitle, SEO paragraph, and two
   location CTAs. Stacks on mobile (video 42vh top, editorial column below).
   Video is decorative, plays muted, pauses under prefers-reduced-motion.
   ========================================================================= */
.hero-alt{
  position:relative;background:var(--ink);overflow:hidden;
  display:grid;grid-template-columns:1fr;grid-template-rows:auto auto;min-height:0;
  border-bottom:1px solid rgba(200,155,60,.28);
}
@media(min-width:960px){
  .hero-alt{grid-template-columns:1.62fr 1fr;grid-template-rows:1fr;min-height:88vh}
}
/* LEFT: video stage */
.hero-alt__stage{position:relative;overflow:hidden;background:#000;min-height:44vh;isolation:isolate}
@media(min-width:960px){.hero-alt__stage{min-height:0;aspect-ratio:1/1;align-self:center;width:100%}.hero-alt{align-items:center}}
.hero-alt__video{
  width:100%;height:100%;object-fit:cover;display:block;
  filter:brightness(.92) contrast(1.04) saturate(1.05);
}
/* Cinematic edge treatment, not a template overlay */
.hero-alt__stage::before{
  content:'';position:absolute;inset:0;z-index:2;pointer-events:none;
  background:
    linear-gradient(90deg, rgba(16,8,7,.35) 0%, transparent 24%, transparent 72%, rgba(16,8,7,.55) 100%),
    linear-gradient(180deg, rgba(16,8,7,.42) 0%, transparent 22%, transparent 78%, rgba(16,8,7,.45) 100%);
}
.hero-alt__stage::after{
  /* subtle brass corner cross, editorial framing detail */
  content:'';position:absolute;top:1.5rem;left:1.5rem;width:28px;height:28px;z-index:3;
  border-left:1px solid rgba(200,155,60,.55);border-top:1px solid rgba(200,155,60,.55);
  pointer-events:none;
}
.hero-alt__stage-tag{
  position:absolute;bottom:1.25rem;left:1.5rem;z-index:3;
  font-family:var(--fH);font-size:.72rem;font-weight:400;letter-spacing:.34em;text-transform:uppercase;
  color:var(--cream);
  padding:.5rem .85rem;background:rgba(16,8,7,.55);
  border:1px solid rgba(200,155,60,.4);backdrop-filter:blur(4px);
}
/* RIGHT: editorial column
   NOTE: top padding must clear the fixed nav (logo is 104px + ~1.5rem padding,
   nav shrinks to 80px + .85rem when scrolled). Column content starts below
   the nav so the eyebrow and title never collide with nav items. */
.hero-alt__col{
  position:relative;background:var(--ink);padding:7rem 1.75rem 3rem;
  display:flex;flex-direction:column;justify-content:center;
}
@media(min-width:960px){
  .hero-alt__col{padding:9rem 3.5rem 4rem 4rem}
}
/* Editorial masthead rule down the inside edge */
.hero-alt__col::before{
  content:'';position:absolute;top:2rem;bottom:2rem;left:0;width:1px;
  background:linear-gradient(180deg, transparent 0%, rgba(200,155,60,.4) 25%, rgba(200,155,60,.4) 75%, transparent 100%);
  display:none;
}
@media(min-width:960px){.hero-alt__col::before{display:block}}
/* Small brass ornament above the eyebrow */
.hero-alt__mark{display:flex;align-items:center;gap:.75rem;color:var(--brass);margin-bottom:1.25rem;opacity:.9}
.hero-alt__mark svg{width:24px;height:6px}
.hero-alt__mark-txt{font-family:var(--fH);font-size:.68rem;font-weight:500;letter-spacing:.42em;text-transform:uppercase;color:var(--brass)}
.hero-alt__title{
  font-family:var(--fD);color:var(--cream);line-height:.95;letter-spacing:.015em;
  margin:0 0 1.5rem;
  font-size:clamp(2.6rem,5.5vw,4.5rem);
}
.hero-alt__title span{display:block}
.hero-alt__rule{
  width:56px;height:0;border-bottom:2px dotted rgba(200,155,60,.55);margin:0 0 1.75rem;
}
.hero-alt__sub{
  font-family:var(--fB);font-style:italic;font-weight:500;
  font-size:clamp(1.35rem,1.85vw,1.75rem);color:var(--cream);
  line-height:1.35;margin:0 0 1.25rem;max-width:44ch;
}
.hero-alt__body{
  font-family:var(--fB);font-weight:400;font-size:clamp(1.05rem,1.15vw,1.15rem);
  color:var(--cream-dk);line-height:1.65;margin:0 0 1.75rem;max-width:52ch;
}
.hero-alt__ctas{display:flex;flex-direction:column;gap:.85rem;align-items:stretch;max-width:340px}
.hero-alt__cta{
  display:flex;align-items:baseline;justify-content:space-between;gap:1rem;
  padding:1rem 1.25rem;border:1px solid var(--cream);background:transparent;color:var(--cream);
  text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer;
}
.hero-alt__cta:hover{background:var(--cream);color:var(--ink)}
.hero-alt__cta:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
.hero-alt__cta-loc{
  font-family:var(--fB);font-style:italic;font-weight:500;font-size:1.35rem;
  letter-spacing:0;text-transform:none;line-height:1;
}
.hero-alt__cta-tag{
  font-family:var(--fH);font-size:.62rem;font-weight:500;letter-spacing:.32em;
  text-transform:uppercase;line-height:1;opacity:.7;
}
@media(max-width:640px){
  .hero-alt__col{padding:6.5rem 1.25rem 2.5rem}
  .hero-alt__title{font-size:clamp(2.4rem,10vw,3.25rem);margin-bottom:1.25rem}
  .hero-alt__sub{font-size:1.2rem;margin-bottom:1.15rem}
  .hero-alt__body{font-size:1.05rem;line-height:1.7;margin-bottom:1.5rem}
  .hero-alt__ctas{max-width:100%}
  .hero-alt__stage{min-height:42vh;max-height:56vh}
}
@media (prefers-reduced-motion: reduce){
  .hero-alt__video{display:none}
  .hero-alt__stage{background:var(--ink) url('../img/txm-steak.jpg') center/cover no-repeat}
}

/* =========================================================================
   INTRO STATEMENT, burgundy background block, Stillwell's "A cut above" vibe
   ========================================================================= */
.statement{background:var(--wine);color:var(--cream);padding:6rem 0;position:relative;overflow:hidden}
.statement__inner{max-width:820px;margin:0 auto;padding:0 1.75rem;text-align:center;position:relative;z-index:2}
.statement .smcap{color:var(--cream-mut)}
.statement__hd{font-family:var(--fB);font-style:italic;font-weight:500;font-size:clamp(2.5rem,5vw,4rem);color:var(--cream);line-height:1.1;margin-bottom:1.75rem;letter-spacing:0}
.statement__body{font-family:var(--fB);font-size:1.15rem;line-height:1.75;color:var(--cream);opacity:.92;max-width:640px;margin:0 auto}
.statement__body em{color:var(--cream);font-style:italic}
/* Dotted arcs on the sides (Stillwell's has these framing the burgundy block) */
.statement__arc{position:absolute;top:50%;transform:translateY(-50%);width:180px;height:340px;border:4px dotted rgba(243,231,211,.35);pointer-events:none}
.statement__arc--l{left:-100px;border-radius:0 200px 200px 0/50%}
.statement__arc--r{right:-100px;border-radius:200px 0 0 200px/50%}
@media(max-width:900px){.statement__arc{display:none}}

/* =========================================================================
   GOODSTOCK PRIME, feature section, pill photo on right, script on left
   ========================================================================= */
/* Warm charcoal wall with a brass "candle glow" upper-right and a brown
   warmth lower-left. Gradients strong enough to see. */
.gsprime{
  background:
    radial-gradient(ellipse 55% 65% at 85% 25%, rgba(200,155,60,.18), transparent 60%),
    radial-gradient(ellipse 50% 60% at 15% 80%, rgba(80,50,30,.75), transparent 65%),
    linear-gradient(180deg, #2A1810 0%, #170C08 100%);
  padding:8rem 0;
  position:relative;
}
.gsprime::after{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:1;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:180px 180px;
  opacity:.06;mix-blend-mode:overlay;
}
.gsprime > *{position:relative;z-index:2}
.gsprime__inner{max-width:1180px;margin:0 auto;padding:0 1.75rem;display:grid;grid-template-columns:1fr;gap:4rem;align-items:center}
@media(min-width:900px){.gsprime__inner{grid-template-columns:1fr 1fr;gap:5rem}}
.gsprime__text{max-width:520px}
.gsprime__badge{display:inline-block;padding:.55rem 1.1rem;border:1px solid var(--line);font-family:var(--fH);font-size:.62rem;font-weight:400;letter-spacing:.34em;text-transform:uppercase;color:var(--cream);margin-bottom:1.5rem;background:transparent}
.gsprime__hd{font-family:var(--fB);font-style:italic;font-weight:500;font-size:clamp(2.25rem,4.5vw,3.5rem);color:var(--cream);line-height:1.1;margin-bottom:1.5rem;letter-spacing:0}
/* Nolan Ryan logo plaque, cream card gives the black-on-white PNG a proper
   backdrop and treats it as a brand credential (like a stamped seal). */
.gsprime__logo{
  display:inline-block;
  background:var(--cream);
  padding:1rem 1.5rem;
  margin-bottom:2rem;
  border:1px solid var(--brass);
  max-width:280px;
}
.gsprime__logo img{width:100%;height:auto;display:block}
.gsprime__brand{font-family:var(--fH);font-size:.75rem;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:var(--brass);margin-bottom:2rem;padding-bottom:1.75rem;border-bottom:1px solid var(--line)}
.gsprime__body{font-family:var(--fB);font-size:1.12rem;line-height:1.75;color:var(--cream);margin-bottom:2rem}
.gsprime__meta{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-bottom:2.5rem}
.gsprime__meta-item{padding-top:1rem;border-top:1px solid var(--line)}
.gsprime__meta-lbl{font-family:var(--fH);font-size:.55rem;letter-spacing:.28em;text-transform:uppercase;color:var(--cream-mut);margin-bottom:.35rem}
.gsprime__meta-val{font-family:var(--fS);font-size:1.4rem;color:var(--brass);line-height:1}
/* Pill photo: width:100% is critical, aspect-ratio needs an explicit width
   to compute a height, otherwise the container collapses. background-clip:
   content-box makes the image fill inside the padding while the dotted
   border stays visible around the outside. */
.gsprime__photo{
  position:relative;
  width:100%;
  aspect-ratio:3/4;
  max-width:440px;
  margin:0 auto;
  padding:18px;
  border-radius:50rem;
  border:4px dotted rgba(243,231,211,.35);
  background-image:url('../img/goodstock-burger-flag.jpg');
  background-size:cover;
  background-position:center top;
  background-repeat:no-repeat;
  background-clip:content-box;
}
.gsprime__photo-inner{display:none} /* legacy element from earlier iteration */

/* =========================================================================
   TYLER, location section (photo LEFT, text SLIDES OUT RIGHT)
   ========================================================================= */
.loc-section{position:relative;padding:8rem 0;overflow:hidden}
/* Tyler = warm walnut-cabin interior. Firelight glow bottom-left,
   subtle brass upper-right. */
.loc-section--tyler{
  background:
    radial-gradient(ellipse 60% 70% at 15% 85%, rgba(105,65,38,.9), transparent 60%),
    radial-gradient(ellipse 45% 50% at 90% 20%, rgba(200,155,60,.12), transparent 55%),
    linear-gradient(180deg, #23140D 0%, #150C08 100%);
}
/* Lindale = cooler dark plum with wine glow upper-right, bridging into
   the billiards burgundy section that follows. */
.loc-section--lindale{
  background:
    radial-gradient(ellipse 55% 65% at 85% 20%, rgba(140,30,35,.30), transparent 60%),
    radial-gradient(ellipse 45% 55% at 10% 80%, rgba(80,50,30,.6), transparent 60%),
    linear-gradient(180deg, #1D100E 0%, #241214 100%);
}
/* Shared grain overlay on both location sections for filmic tactile depth. */
.loc-section::after{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:1;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:180px 180px;
  opacity:.06;mix-blend-mode:overlay;
}
.loc-section > *{position:relative;z-index:2}
.loc-section__inner{max-width:1180px;margin:0 auto;padding:0 1.75rem;display:grid;grid-template-columns:1fr;gap:3rem;align-items:center;position:relative}
@media(min-width:900px){
  .loc-section__inner{grid-template-columns:1fr 1fr;gap:5rem}
  .loc-section--lindale .loc-section__inner{grid-template-columns:1fr 1fr}
  .loc-section--lindale .loc-section__photo{grid-column:2;grid-row:1}
  .loc-section--lindale .loc-section__text{grid-column:1;grid-row:1;text-align:right}
  .loc-section--lindale .loc-section__text .divider{justify-content:flex-end}
  .loc-section--lindale .loc-section__ctas{justify-content:flex-end}
}
/* Same pill-photo pattern as GoodStock, width:100% + content-box clip. */
.loc-section__photo{
  position:relative;
  width:100%;
  aspect-ratio:3/4;
  max-width:460px;
  margin:0 auto;
  z-index:3;
  padding:18px;
  border-radius:50rem;
  border:4px dotted rgba(243,231,211,.35);
  background-color:var(--ink);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  background-clip:content-box;
}
.loc-section__photo-inner{display:none} /* legacy from earlier iteration */
.loc-section--tyler .loc-section__photo{background-image:url('../img/tyler-lodge-dining.jpg')}
.loc-section--lindale .loc-section__photo{background-image:url('../img/lindale-booths.jpg')}
/* Text is always visible; slide-r / slide-l classes on markup handle the
   optional enter animation via the JS-progressive-enhancement pattern below. */
.loc-section__text{position:relative;z-index:2;max-width:520px}
.loc-section__title{font-family:var(--fB);font-style:italic;font-weight:500;font-size:clamp(2.75rem,6vw,4.75rem);color:var(--cream);line-height:1;margin-bottom:.4rem;letter-spacing:0}
.loc-section__label{font-family:var(--fH);font-size:.72rem;font-weight:400;letter-spacing:.42em;text-transform:uppercase;color:var(--brass);margin-bottom:1.5rem}
.loc-section__body{font-family:var(--fB);font-size:1.1rem;line-height:1.75;color:var(--cream);margin-bottom:1.5rem}
.loc-section__meta{list-style:none;padding:0;margin:0 0 2rem;display:flex;flex-direction:column;gap:.4rem}
.loc-section__meta li{font-family:var(--fB);font-size:1rem;color:var(--cream-dk);font-style:italic}
.loc-section__addr{font-family:var(--fH);font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--cream-mut);margin-bottom:2rem;padding-top:1.25rem;border-top:1px solid var(--line)}
.loc-section__ctas{display:flex;gap:1rem;flex-wrap:wrap}

/* =========================================================================
   BILLIARDS, burgundy statement block (Lindale exclusive)
   ========================================================================= */
.billiards{background:var(--wine);color:var(--cream);padding:7rem 0;position:relative;overflow:hidden}
.billiards__inner{max-width:1080px;margin:0 auto;padding:0 1.75rem;display:grid;grid-template-columns:1fr;gap:3rem;align-items:center}
@media(min-width:900px){.billiards__inner{grid-template-columns:1fr 1fr;gap:5rem}}
/* Billiards pill, video-driven. Source is a low-res 320×240 video with
   letterboxing baked in; pill uses portrait 2/3 aspect + object-fit:cover
   to crop past the source black bars. The placeholder badge overlaid on
   the pill flags that a higher-res replacement (photo OR video) is needed
   before launch. Swap when the real asset arrives. */
.billiards__photo{
  position:relative;
  width:100%;
  max-width:420px;
  aspect-ratio:2/3;
  margin:0 auto;
  padding:18px;
  border-radius:50rem;
  border:4px dotted rgba(243,231,211,.45);
  background:var(--wine-dk);
  overflow:hidden;
}
.billiards__photo-inner{display:none} /* legacy from earlier iteration */
.billiards__video{
  width:100%;
  height:100%;
  border-radius:50rem;
  object-fit:cover;
  object-position:center;
  display:block;
  background:var(--wine-dk);
}
.billiards__placeholder{position:absolute;bottom:1.5rem;left:50%;transform:translateX(-50%);background:rgba(16,8,7,.92);color:var(--brass);font-family:var(--fH);font-size:.62rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;padding:.6rem 1rem;border:1px solid var(--brass);text-align:center;max-width:82%;line-height:1.5;z-index:5}
.billiards__text{max-width:480px}
.billiards .smcap{color:var(--cream);opacity:.75}
.billiards__hd{font-family:var(--fB);font-style:italic;font-weight:500;font-size:clamp(2.25rem,4.75vw,3.75rem);color:var(--cream);line-height:1.1;margin-bottom:1.5rem;letter-spacing:0}
.billiards__body{font-family:var(--fB);font-size:1.1rem;line-height:1.75;color:var(--cream);opacity:.95;margin-bottom:1.5rem}
.billiards__list{list-style:none;padding:0;margin:0 0 2rem;display:flex;flex-direction:column;gap:.6rem}
.billiards__list li{position:relative;padding-left:1.75rem;font-family:var(--fB);font-style:italic;font-size:1rem;color:var(--cream);opacity:.92}
.billiards__list li::before{content:'';position:absolute;left:0;top:.75em;width:1rem;height:1px;background:var(--cream)}

/* =========================================================================
   LIVE MUSIC, small backseat section
   ========================================================================= */
.music{background:var(--ink);padding:5rem 0;text-align:center}
.music__inner{max-width:680px;margin:0 auto;padding:0 1.75rem}
.music__hd{font-family:var(--fD);font-size:clamp(2rem,3.25vw,2.5rem);color:var(--cream);line-height:1.1;margin-bottom:1.25rem;letter-spacing:.015em}
.music__body{font-family:var(--fB);font-size:1.05rem;color:var(--cream-mut);margin-bottom:2rem;line-height:1.7}
.music__ctas{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}

/* =========================================================================
   RESERVE, two-column pre-footer with reservation CTAs per location
   ========================================================================= */
/* Come See Us = warm welcoming room. Brass glow at top-center (like the
   entry sign lit above the door), warm brown warmth pooling at the bottom
   (welcoming firelight underfoot). Same filmic grain overlay as the other
   middle sections. */
.reserve{
  background:
    radial-gradient(ellipse 65% 45% at 50% 0%, rgba(200,155,60,.18), transparent 60%),
    radial-gradient(ellipse 55% 55% at 20% 100%, rgba(105,65,38,.55), transparent 60%),
    radial-gradient(ellipse 55% 55% at 80% 100%, rgba(105,65,38,.55), transparent 60%),
    linear-gradient(180deg, #23140D 0%, #1A0F0C 100%);
  padding:6rem 0;
  border-top:1px solid var(--line);
  position:relative;
}
.reserve::after{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:1;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:180px 180px;
  opacity:.06;mix-blend-mode:overlay;
}
.reserve > *{position:relative;z-index:2}
.reserve__intro{text-align:center;margin-bottom:4rem;padding:0 1.75rem}
.reserve__hd{font-family:var(--fB);font-style:italic;font-weight:500;font-size:clamp(2rem,4vw,3rem);color:var(--cream);line-height:1.1;margin-bottom:.85rem;letter-spacing:0}
.reserve__sub{font-family:var(--fH);font-size:.72rem;letter-spacing:.42em;text-transform:uppercase;color:var(--cream-mut)}
.reserve__grid{max-width:1080px;margin:0 auto;padding:0 1.75rem;display:grid;grid-template-columns:1fr;gap:2rem}
@media(min-width:800px){.reserve__grid{grid-template-columns:1fr 1fr;gap:2rem}}
.reserve__card{padding:2.5rem 2.25rem;border:1px solid var(--line);text-align:center;background:rgba(122,23,28,.06)}
.reserve__city{font-family:var(--fB);font-style:italic;font-weight:500;font-size:2rem;color:var(--cream);margin-bottom:.5rem;line-height:1;letter-spacing:0}
/* Google review aggregate rating, visible signal that matches the
   aggregateRating schema in JSON-LD. Google's post-July 2026 review
   guidelines cross-reference schema against visible page content. */
.reserve__rating{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1.25rem;font-family:var(--fH);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cream-mut)}
.reserve__rating-stars{color:var(--brass);letter-spacing:0;font-size:.95rem;line-height:1}
.reserve__rating-value{color:var(--cream);font-weight:600;letter-spacing:.08em}
.reserve__rating-count{color:var(--cream-mut)}
.reserve__addr{font-family:var(--fB);font-size:.95rem;color:var(--cream-mut);font-style:italic;margin-bottom:1.5rem;line-height:1.5}
.reserve__phone{font-family:var(--fH);font-size:.9rem;letter-spacing:.14em;color:var(--cream);margin-bottom:1.75rem;display:block}
.reserve__ctas{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}

/* =========================================================================
   FAQ, common questions block
   ========================================================================= */
.faq{background:var(--ink);padding:5rem 0;border-top:1px solid var(--line)}
.faq__inner{max-width:820px;margin:0 auto;padding:0 1.75rem}
.faq__hd{font-family:var(--fB);font-style:italic;font-weight:500;font-size:clamp(2rem,3.5vw,2.75rem);color:var(--cream);text-align:center;margin-bottom:.6rem;line-height:1.1;letter-spacing:0}
.faq__sub{text-align:center;font-family:var(--fH);font-size:.72rem;letter-spacing:.42em;text-transform:uppercase;color:var(--cream-mut);margin-bottom:3rem}
.faq__item{border-top:1px solid var(--line);padding:1.4rem 0}
.faq__item:last-child{border-bottom:1px solid var(--line)}
.faq__item summary{cursor:pointer;list-style:none;font-family:var(--fB);font-style:italic;font-weight:500;font-size:1.25rem;color:var(--cream);display:flex;justify-content:space-between;align-items:center;gap:1rem}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary::after{content:'+';font-family:var(--fH);font-weight:300;color:var(--brass);font-style:normal;font-size:1.5rem;transition:transform .25s}
.faq__item[open] summary::after{transform:rotate(45deg)}
.faq__item p{font-family:var(--fB);font-size:1.02rem;color:var(--cream-dk);line-height:1.7;margin-top:1rem}

/* =========================================================================
   REVEAL PHOTO, Stillwell's-style dramatic bar reveal above footer
   ========================================================================= */
/* Scroll-reveal photo, background-attachment:fixed anchors the image to the
   viewport so the section above scrolls up off the top like a curtain lifting,
   gradually revealing more of the photo. Degrades to normal scrolling on
   iOS Safari (which doesn't support fixed attachment). */
.reveal-photo{
  position:relative;
  height:min(85vh,900px);
  background-image:url('../img/image8.jpg');
  background-size:cover;
  background-position:center;
  background-attachment:scroll;
  background-repeat:no-repeat;
  overflow:hidden;
}
/* Parallax fixed-attachment only on true desktop, mobile browsers
   (iOS Safari, most mobile Chrome) drop fixed backgrounds entirely. */
@media (min-width:900px) and (hover:hover){
  .reveal-photo{background-attachment:fixed}
}
.reveal-photo::before{
  /* Top gradient, softens the entry as the reveal begins */
  content:'';
  position:absolute;top:0;left:0;right:0;height:35%;
  background:linear-gradient(180deg,var(--ink) 0%,rgba(16,8,7,0) 100%);
  z-index:1;
}
.reveal-photo::after{
  /* Bottom gradient, softens the transition into the footer */
  content:'';
  position:absolute;bottom:0;left:0;right:0;height:45%;
  background:linear-gradient(0deg,var(--ink) 0%,rgba(16,8,7,0) 100%);
  z-index:1;
}

/* =========================================================================
   FOOTER
   ========================================================================= */
/* Dotted border across the top of the footer + a matching dotted rule
   separating the grid from the copyright, carries the pill-border dot
   language into the footer for visual continuity. */
.foot{background:var(--ink);padding:5rem 0 2rem;border-top:4px dotted rgba(200,155,60,.35)}
.foot__grid{max-width:1180px;margin:0 auto;padding:0 1.75rem;display:grid;grid-template-columns:1fr;gap:3rem;padding-bottom:3rem;border-bottom:4px dotted rgba(200,155,60,.25)}
@media(min-width:800px){.foot__grid{grid-template-columns:1.4fr 1fr 1fr 1fr}}
.foot__brand-logo{width:110px;height:auto;margin-bottom:1.25rem}
.foot__brand-name{font-family:var(--fD);font-size:1.15rem;color:var(--cream);line-height:1.1;margin-bottom:.75rem;letter-spacing:.02em}
.foot__brand-tag{font-family:var(--fH);font-size:.62rem;letter-spacing:.32em;text-transform:uppercase;color:var(--cream-mut);line-height:2}
.foot__loc h3{font-family:var(--fB);font-style:italic;font-weight:500;font-size:1.35rem;color:var(--brass);margin-bottom:1rem;letter-spacing:0}
.foot__loc address{font-style:normal;font-family:var(--fB);font-size:.95rem;line-height:1.85;color:var(--cream);margin-bottom:1rem}
.foot__loc address a{color:var(--cream)}
.foot__loc address a:hover{color:var(--brass)}
.foot__loc-hrs{font-family:var(--fH);font-size:.7rem;letter-spacing:.1em;line-height:1.9;color:var(--cream-mut);text-transform:uppercase}
.foot__loc-hrs dt{display:inline;color:var(--cream)}
.foot__loc-hrs dd{display:inline;margin-left:.5rem}
.foot__loc-hrs div{display:block}
.foot__nav h3{font-family:var(--fH);font-size:.68rem;letter-spacing:.32em;text-transform:uppercase;color:var(--brass);margin-bottom:1.25rem}
.foot__nav ul{display:flex;flex-direction:column;gap:.3rem}
.foot__nav a{font-family:var(--fB);font-size:.95rem;line-height:1.5;color:var(--cream-mut)}
.foot__nav a:hover{color:var(--brass)}
.foot__bot{max-width:1180px;margin:0 auto;padding:2rem 1.75rem 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-family:var(--fH);font-size:.62rem;letter-spacing:.24em;color:var(--cream-mut);text-transform:uppercase;opacity:.55}
.foot__socials{display:flex;gap:.85rem;margin-top:1rem}
.foot__socials a{color:var(--cream-mut)}
.foot__socials a:hover{color:var(--brass)}

/* Reveal/slide animations, progressive enhancement.
   Base state: content is ALWAYS visible. If JS loads and finds an element
   below the fold, it applies .pending which hides it, then removes .pending
   as the element scrolls into view. Screenshots and non-JS users see
   everything by default. */
.reveal,.slide-r,.slide-l{transition:opacity 1s ease,transform 1s cubic-bezier(.16,1,.3,1)}
.js-on .reveal.pending{opacity:0;transform:translateY(30px)}
.js-on .slide-r.pending{opacity:0;transform:translateX(-40%)}
.js-on .slide-l.pending{opacity:0;transform:translateX(40%)}

/* =========================================================================
   BRUNCH NOTE - editorial split band, Tyler only. Steakhouse-restrained.
   Photo left, text right. Menu-style item list. Ink bg with warm wash.
   ========================================================================= */
.brunch-note{
  background:var(--ink);
  padding:7rem 0;
  border-top:1px solid rgba(200,155,60,.35);
  border-bottom:1px solid rgba(200,155,60,.35);
  position:relative;
  overflow:hidden;
}
.brunch-note::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse at 15% 50%, rgba(122,23,28,.22) 0%, transparent 60%);
  pointer-events:none;
}
.brunch-note::after{
  content:'';position:absolute;inset:0;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence baseFrequency='.9' seed='4'/><feColorMatrix values='0 0 0 0 0.95 0 0 0 0 0.9 0 0 0 0 0.8 0 0 0 .09 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  mix-blend-mode:overlay;opacity:.35;pointer-events:none;
}
.brunch-note__inner{
  max-width:1180px;margin:0 auto;padding:0 1.75rem;
  display:grid;grid-template-columns:1fr;gap:3.5rem;
  align-items:center;position:relative;z-index:2;
}
@media(min-width:900px){
  .brunch-note__inner{grid-template-columns:1fr 1.05fr;gap:5rem}
}
.brunch-note__figure{
  position:relative;margin:0;aspect-ratio:4/5;overflow:hidden;
  border:1px solid rgba(200,155,60,.35);
}
.brunch-note__figure::before{
  content:'';position:absolute;inset:.6rem;border:1px dotted rgba(243,231,211,.28);
  pointer-events:none;z-index:2;
}
.brunch-note__figure img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 1.2s cubic-bezier(.2,.8,.2,1);
}
.brunch-note__figure:hover img{transform:scale(1.03)}
.brunch-note__figure-tag{
  position:absolute;bottom:1rem;left:1rem;z-index:3;
  font-family:var(--fH);font-size:.62rem;letter-spacing:.32em;text-transform:uppercase;
  color:var(--cream);background:rgba(16,8,7,.75);padding:.5rem .85rem;
  border:1px solid rgba(200,155,60,.4);
}
.brunch-note__text{text-align:left}
.brunch-note__ornament{display:flex;justify-content:flex-start;margin:0 0 1.5rem;color:var(--brass);opacity:.85}
.brunch-note__ornament svg{width:44px;height:12px}
.brunch-note .smcap{
  color:var(--brass);
  margin-bottom:.85rem;
  padding-bottom:1rem;
  position:relative;
  display:inline-block;
}
.brunch-note .smcap::after{
  content:'';position:absolute;left:0;bottom:0;
  width:110px;height:0;border-bottom:2px dotted rgba(200,155,60,.55);
}
.brunch-note__title{
  font-family:var(--fB);font-style:normal;font-weight:500;
  font-size:clamp(2.4rem,4.8vw,3.4rem);
  color:var(--cream);line-height:1.05;margin:.75rem 0 1.5rem;letter-spacing:0;
}
.brunch-note__title em{font-style:italic;font-weight:500;color:var(--brass)}
.brunch-note__body{
  font-family:var(--fB);font-size:1.15rem;line-height:1.7;
  color:var(--cream-mut);margin:0 0 2rem;max-width:540px;
}
.brunch-note__menu{
  margin:0 0 2.25rem;padding:1.5rem 0;
  border-top:1px dotted rgba(200,155,60,.5);
  border-bottom:1px dotted rgba(200,155,60,.5);
  max-width:540px;
}
.brunch-note__menu-label{
  display:block;font-family:var(--fH);font-size:.66rem;font-weight:500;
  letter-spacing:.38em;text-transform:uppercase;color:var(--brass);
  margin-bottom:1rem;
}
.brunch-note__menu-list{list-style:none;padding:0;margin:0;display:grid;gap:.55rem}
.brunch-note__menu-list li{
  font-family:var(--fB);font-style:italic;font-size:1.15rem;
  color:var(--cream);line-height:1.35;display:flex;align-items:baseline;
}
.brunch-note__menu-list li::before{
  content:'';display:inline-block;width:6px;height:6px;
  border:1px solid var(--brass);border-radius:50%;
  margin-right:.85rem;flex-shrink:0;transform:translateY(-2px);
}
.brunch-note__hours{
  font-family:var(--fH);font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--cream-mut);margin:0 0 2rem;
}
.brunch-note__hours strong{color:var(--cream);font-weight:400}
.brunch-note__cta{display:flex;gap:1.5rem;justify-content:flex-start;flex-wrap:wrap;align-items:center}

/* =========================================================================
   MOBILE FIXES, applied at 768px and below.
   1. Prose line-height 1.7 (phone readability, base is 1.65).
   2. Larger button + smcap sizing so touch targets and eyebrows read.
   3. Pre-footer .reveal-photo min-height so section still reads as photo.
   4. Hero split-pane restructure: 40vh photo panes with overlaid buttons,
      title as compact header band above rather than centered over the panes.
   ========================================================================= */
.hero__pane-content{display:none}
@media (max-width:768px){
  body{font-size:20px;line-height:1.75}
  .statement__body,.gsprime__body,.loc-section__body,.billiards__body,
  .music__body,.brunch-note__body,.faq__item p,.reserve__addr,.lede{line-height:1.75}

  /* Small caps eyebrows min ~14px */
  .smcap{font-size:.82rem;letter-spacing:.34em}

  /* Buttons min ~15px, slightly tighter padding for mobile fit */
  .btn{font-size:.85rem;letter-spacing:.24em;padding:.95rem 1.6rem}
  .btn--text{font-size:.85rem;letter-spacing:.24em;padding:0 0 .4rem}

  /* Pre-footer photo: parallax off, use a sensible height so it reads. */
  .reveal-photo{height:60vh;min-height:60vh}

  /* --- HERO restructure ------------------------------------------------ */
  .hero{min-height:0;display:flex;flex-direction:column}
  .hero__content{position:relative;order:0;min-height:0;padding:6rem 1.25rem 1.75rem;max-width:100%}
  .hero__title-rye{font-size:clamp(2.4rem,7vw,3rem);margin-bottom:.4rem}
  .hero__title-script{margin-bottom:0;font-size:.95rem}
  .hero__eyebrow{margin-bottom:.85rem}
  .hero__split{position:relative;inset:auto;order:1;grid-template-columns:1fr;grid-template-rows:40vh 40vh;height:auto}
  .hero__pane{height:40vh;min-height:40vh}
  .hero__divider{display:none}
  .hero__loc-grid{display:none}
  .hero__scroll{display:none}

  /* Mobile-only per-pane overlay: name + tag + Enter button. */
  .hero__pane-content{
    display:flex;flex-direction:column;align-items:center;gap:.55rem;
    position:absolute;left:0;right:0;bottom:1.5rem;z-index:4;
    padding:0 1rem;text-align:center;
    text-shadow:0 2px 14px rgba(16,8,7,.7);
  }
  .hero__pane-content .hero__loc-name{font-size:2.15rem;margin:0;color:var(--cream)}
  .hero__pane-content .hero__loc-tag{font-size:.98rem;margin:0 0 .4rem;color:var(--cream)}
  .hero__pane-content .btn{padding:.75rem 1.4rem}
}
/* ============ A11y + readability patch (second pass) ============ */
.nav__burger{min-width:44px;min-height:44px;align-items:center;justify-content:center}
.nav__burger:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
.nav__link:focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:2px}
.faq__item summary:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
.reserve__phone:focus-visible,
.foot__loc address a:focus-visible,
.foot__nav a:focus-visible,
.foot__socials a:focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:2px}
.skip:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
.event-card a:focus-visible,
.gallery__tile a:focus-visible,
.blog-card a:focus-visible,
.hero__pane-content .btn:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
@media (max-width:768px){
  body{font-size:20px;line-height:1.75}
  p,li,.lede,.statement__body,.gsprime__body,.loc-section__body,
  .billiards__body,.music__body,.brunch-note__body,.feat__body,
  .reserve__addr,.faq__item p,.gs-callout__body,.lineup__body,
  .nearby__body,.wells__body,.today__body,.timeline__event-body{
    font-size:1.15rem;line-height:1.75
  }
  .loc-section__meta li,.billiards__list li{font-size:1.05rem}
  .btn,.btn--outline,.btn--cream,.btn--outline-wine{
    font-size:1rem;letter-spacing:.22em;padding:1.1rem 1.8rem;min-height:44px
  }
  .btn--text{font-size:1rem;letter-spacing:.22em}
  .smcap,.hero__eyebrow,.feat__label,.reserve__sub,.faq__sub,
  .gsprime__badge,.loc-section__label{font-size:.85rem;letter-spacing:.32em}
  .nav__link{font-size:.85rem;letter-spacing:.28em}
  .nav__loc-btn{font-size:.85rem;letter-spacing:.22em;padding:.85rem 1.15rem}
  .loc-section__title,.hero__loc-name,.hero__title-rye{font-size:2.6rem}
  .statement__hd,.gsprime__hd,.billiards__hd,.brunch-note__title,
  .music__hd,.reserve__hd,.faq__hd{font-size:2.25rem}
  .feat__title{font-size:2.4rem}
  .faq__item summary{font-size:1.15rem;padding:.5rem 0;min-height:44px}
  .meal-tabs__link,.event-card__title,.gallery__tab,.menu-item__name{font-size:1rem}
}
@media (prefers-reduced-motion: reduce){
  .hero__slide,.brunch-note__figure img{transition:none;animation:none}
  .hero__scroll svg{animation:none}
}
/* ============ end a11y patch ============ */

/* ===== Accessibility patch (Sept 2026): WCAG 2.2 AA ===== */
html{scroll-padding-top:140px}
.statement,.billiards,.follow,.gs-callout{--brass:#D9B25A;--cream-mut:rgba(243,231,211,.85)}
.nav__drawer{display:none}
@media(max-width:959px){
  .nav--open{background:var(--ink)}
  .nav--open .nav__drawer{display:block;position:absolute;top:100%;left:0;right:0;background:var(--ink);border-top:1px solid rgba(200,155,60,.35);border-bottom:4px dotted rgba(200,155,60,.4);padding:1.25rem 1.75rem 2rem;max-height:calc(100vh - 100px);overflow-y:auto}
  .nav__drawer .nav__list{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;margin-bottom:1.5rem}
  .nav__drawer .nav__link{display:flex;align-items:center;min-height:44px;font-size:1rem}
  .nav__drawer .nav__loc-btns{display:flex;flex-wrap:wrap;gap:.75rem}
}
.motion-toggle{position:fixed;left:1rem;bottom:1rem;z-index:95;display:inline-flex;align-items:center;min-height:44px;padding:.6rem 1rem;background:rgba(16,8,7,.9);color:var(--cream);border:1px solid rgba(200,155,60,.7);font-family:var(--fH);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;cursor:pointer}
.motion-toggle:hover{border-color:var(--brass);color:var(--brass)}
.motion-toggle:focus-visible,.nav__drawer a:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
/* Nav dropdowns (Oct 29, 2026): Tyler and Lindale submenus, Order Online menu */
.nav__list{gap:2.25rem}
.nav__item{position:relative;display:flex;align-items:center;gap:.3rem}
.nav__item::after{content:'';position:absolute;left:0;right:0;top:100%;height:.9rem}
.nav__sub-toggle{background:none;border:0;color:var(--cream);cursor:pointer;padding:.5rem .2rem;display:inline-flex;align-items:center;font:inherit}
.nav__sub-toggle svg{width:10px;height:6px;transition:transform .3s}
.nav__item--open>.nav__sub-toggle svg{transform:rotate(180deg)}
.nav__sub{display:none;position:absolute;top:calc(100% + .6rem);left:-1.1rem;min-width:200px;padding:.6rem 0;margin:0;list-style:none;background:rgba(16,8,7,.97);border:1px solid rgba(200,155,60,.35);border-bottom:4px dotted rgba(200,155,60,.4);z-index:110}
.nav__sub--right{left:auto;right:0}
.nav__sub-link{display:block;padding:.65rem 1.25rem;font-family:var(--fH);font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;color:var(--cream);text-decoration:none;white-space:nowrap}
.nav__sub-link:hover,.nav__sub-link:focus-visible{color:var(--brass);background:rgba(200,155,60,.08);outline:none}
.nav__order-btn{gap:.6rem;background:transparent}
.nav__order-btn{font-family:var(--fH);font-size:.7rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;padding:.7rem 1.2rem;gap:.6rem;background:transparent}
@media(max-width:768px){.nav__order-btn{font-size:.85rem;letter-spacing:.22em;padding:.85rem 1.15rem}}
.nav__order-btn svg{width:10px;height:6px}
.nav__order-btn:hover svg,.nav__order-btn:hover{color:var(--ink)}
@media(min-width:960px){.nav__item:hover>.nav__sub,.nav__item:focus-within>.nav__sub,.nav__item--open>.nav__sub{display:block}}
@media(max-width:959px){
  .nav__drawer .nav__item{flex-direction:column;align-items:flex-start;gap:0;width:100%}
  .nav__drawer .nav__item::after{display:none}
  .nav__drawer .nav__list>li{width:100%}
  .nav__drawer .nav__item--has-sub>.nav__sub-toggle{display:none}
  .nav__drawer .nav__sub{display:block;position:static;border:0;background:none;padding:0 0 .6rem 1.25rem;min-width:0}
  .nav__drawer .nav__sub-link{font-size:.95rem;letter-spacing:.22em;min-height:40px;display:flex;align-items:center;padding:.3rem 0}
  .nav__drawer .nav__order{display:block}
  .nav__drawer .nav__order>.nav__order-btn{display:inline-flex}
  .nav__drawer .nav__order>.nav__sub{display:none;padding:.5rem 0 0 .25rem}
  .nav__drawer .nav__order.nav__item--open>.nav__sub{display:block}
}
.hero-alt__col{overflow:hidden}
.hero-alt__watermark{position:absolute;top:5.5rem;right:-3rem;width:min(300px,55%);height:auto;opacity:.07;transform:rotate(10deg);pointer-events:none;user-select:none;z-index:0}
.hero-alt__col>*:not(.hero-alt__watermark){position:relative;z-index:1}
@media(min-width:960px){.hero-alt__watermark{top:7rem;right:-2.5rem;width:320px}}
/* Order Online as a filled button */
.nav__order-btn{background:var(--brass);color:var(--ink);border-color:var(--brass)}
.nav__order-btn:hover,.nav__order-btn:focus-visible{background:var(--cream);color:var(--ink);border-color:var(--cream)}
.nav__order.nav__item--open>.nav__order-btn{background:var(--cream);border-color:var(--cream)}
.nav__drawer .nav__order-btn{margin-top:.25rem}
