@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=Inter:wght@300;400;500;600&family=Libre+Baskerville:ital@0;1&display=swap');

:root{
  --burgundy:#5b1f2b;
  --cabernet:#2e1017;
  --ivory:#f2ece2;
  --paper:#faf7f1;
  --champagne:#8b6b3f;
  --charcoal:#1d1a19;
  --stone:#d7cec1;
  --line:rgba(29,26,25,.14);
  --serif:"Cormorant Garamond",Georgia,serif;
  --sans:Inter,Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:clip}
body{margin:0;background:var(--paper);color:var(--charcoal);font-family:var(--sans);font-weight:300;-webkit-font-smoothing:antialiased}
img{display:block;width:100%}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:400;margin:0;line-height:.98}
h1{font-size:clamp(3.2rem,6.8vw,7.25rem)}
h2{font-size:clamp(2.7rem,5vw,5.25rem)}
h3{font-size:clamp(1.7rem,2.4vw,2.5rem)}
p{font-size:1.02rem;line-height:1.88}
.eyebrow{margin:0 0 1.5rem;font-size:.7rem;line-height:1.25;text-transform:uppercase;letter-spacing:.22em;font-weight:600}
.burgundy{color:var(--burgundy)}
.champagne{color:var(--champagne)}
.headline-accent--light{color:var(--burgundy)}
.headline-accent--dark{color:var(--champagne)}
.headline-accent{display:block}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 1.7rem;text-decoration:none;text-transform:uppercase;letter-spacing:.16em;font-size:.68rem;font-weight:600;border:1px solid transparent;transition:.25s}
.button.primary{background:var(--burgundy);color:#fff}
.button.primary:hover{background:#431720}
.button.ghost{border-color:rgba(255,255,255,.6);color:#fff}
.button.ghost:hover{background:rgba(255,255,255,.08)}
.text-link{font-family:var(--serif);font-size:1.25rem;color:var(--burgundy);text-decoration:none;border-bottom:1px solid rgba(91,31,43,.25)}
.crush-announcement,.crush-social-proof{max-width:1180px;margin:0 auto;padding:4rem 6vw;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.crush-announcement h2{margin:.55rem 0 1rem;font-size:clamp(2rem,3.6vw,3.5rem)}
.crush-announcement>p:not(.eyebrow),.crush-social-proof blockquote{max-width:54ch;font-family:var(--serif);font-size:1.25rem;line-height:1.45;margin:0 0 1.25rem}
.crush-social-proof blockquote{font-size:clamp(1.8rem,3vw,3rem)}
.crush-social-proof figcaption{margin-bottom:1rem;color:var(--muted);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase}
.site-header{position:fixed;z-index:100;left:0;right:0;top:0;height:64px;padding:0 4vw;display:grid;grid-template-columns:10rem auto 1fr;align-items:center;color:#fff;transition:height .35s,background .35s;overflow:visible;background:rgba(29,26,25,.96)}
.site-header.scrolled{background:rgba(29,26,25,.94);backdrop-filter:blur(10px);height:60px}
.logo{display:inline-flex;align-items:center;text-decoration:none}
.site-header .logo{position:absolute;z-index:2;left:4vw;top:6px;width:92px;height:92px;transition:width .35s,height .35s,top .35s}
.site-header.scrolled .logo{top:5px;width:50px;height:50px}
.logo img{width:100%;height:100%;object-fit:contain}
.desktop-nav{grid-column:2;display:flex;gap:1.8rem;align-items:center}
.desktop-nav a,.nav-reserve{font-size:.78rem;text-transform:uppercase;letter-spacing:.15em;text-decoration:none;font-weight:600;opacity:.94}
.desktop-nav a{position:relative;padding:.55rem 0 .8rem;transition:color .28s ease,opacity .28s ease}
.desktop-nav a:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--champagne);transform:scaleX(0);transform-origin:left;transition:transform .32s ease}
.desktop-nav a.is-current{color:var(--champagne);opacity:1}
.desktop-nav a.is-current:after{transform:scaleX(1)}
.desktop-nav a:hover,.desktop-nav a:focus-visible{color:var(--champagne);opacity:1}
.desktop-nav a:hover:after,.desktop-nav a:focus-visible:after{transform:scaleX(1)}
.nav-reserve{grid-column:3;justify-self:end;border:1px solid rgba(199,164,106,.76);padding:.62rem .9rem;color:var(--champagne);transition:background .25s,color .25s}
.nav-reserve:hover{background:var(--champagne);color:var(--cabernet)}
.menu-button{display:none;justify-self:end;background:none;border:0;color:#fff;text-transform:uppercase;letter-spacing:.14em}
.mobile-nav{display:none;position:fixed;z-index:99;top:64px;left:0;right:0;background:rgba(29,26,25,.98);padding:1rem 1.5rem 2rem}
.mobile-nav.open{display:grid}
.mobile-nav a{padding:1rem 0;color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.08);font-size:.76rem;text-transform:uppercase;letter-spacing:.15em}

.parallax-scene{position:relative;overflow:hidden}
.media-layer{position:absolute;inset:-7% 0}
.media-layer img{height:114%;object-fit:cover;will-change:transform}
.hero{min-height:100vh;color:#fff;display:flex;align-items:flex-end}
.hero-media img{filter:saturate(.85) contrast(1.06)}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,10,12,.88) 0%,rgba(20,10,12,.58) 45%,rgba(20,10,12,.22) 78%),linear-gradient(to top,rgba(20,10,12,.62),transparent 60%)}
.hero-inner{position:relative;z-index:2;width:min(1120px,92vw);padding:0 0 12vh 6vw}
.hero-inner .eyebrow{color:var(--champagne);margin-bottom:1.3rem}
.hero h1,.hero .hero-heading{max-width:1000px;font-size:clamp(3.2rem,6.8vw,7.25rem)}
.hero h1 em,.hero .hero-heading em{color:var(--champagne);font-weight:400}
.hero-copy{max-width:680px;font-size:1.03rem;color:rgba(255,255,255,.76);margin:1.8rem 0 2rem}
.hero-actions{display:flex;gap:.8rem;flex-wrap:wrap}
.hero-meta{position:absolute;z-index:2;left:6vw;right:6vw;bottom:2rem;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.28);padding-top:1rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.13em;color:rgba(255,255,255,.72)}
.hero-meta span:nth-child(2){text-align:center}.hero-meta span:nth-child(3){text-align:right}

/* Editorial arrival sequence */
.hero{display:none}
.hero-intro{min-height:min(760px,82vh);padding:calc(84px + 8vh) 6vw 8vh;background:var(--ivory);display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,1fr);align-items:stretch;gap:5vw}
.hero-intro-copy{max-width:980px}
.hero-intro h1{color:var(--charcoal);max-width:1000px}
.hero-intro h1 em{color:var(--burgundy);font-weight:400}
.hero-intro .eyebrow{margin-bottom:1.3rem}
.hero-intro .hero-copy{max-width:650px;font-size:1.04rem;color:rgba(29,26,25,.7);margin:1.8rem 0 2rem}
.button.quiet{border-color:rgba(91,31,43,.35);color:var(--burgundy)}
.button.quiet:hover{background:rgba(91,31,43,.07)}
.hero-offer{display:grid;gap:.7rem;margin-top:3rem;padding-top:1.35rem;border-top:1px solid var(--line);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:rgba(29,26,25,.72)}
.hero-offer span{display:flex;align-items:center;gap:.7rem}.hero-offer span:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--champagne);flex:0 0 auto}
.hero-intro-aside{position:relative;overflow:hidden;min-height:520px;color:#fff;display:flex;align-items:flex-end;padding:2rem;isolation:isolate}
.hero-intro-aside:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(20,10,12,.78),rgba(20,10,12,.04) 58%);z-index:-1}
.hero-intro-aside img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.82) contrast(1.04);z-index:-2}
.hero-intro-aside span{font-family:var(--serif);font-size:1.45rem;line-height:1.1}
.arrival-scene{min-height:clamp(440px,62vw,760px);color:#fff}
.arrival-media img{filter:saturate(.78) contrast(1.04) brightness(.86)}
.arrival-shade{position:absolute;inset:0;background:linear-gradient(to top,rgba(20,10,12,.65),transparent 46%)}
.arrival-meta{position:absolute;z-index:2;left:6vw;right:6vw;bottom:2rem;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.36);padding-top:1rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.13em;color:rgba(255,255,255,.88)}
.arrival-meta span:nth-child(2){text-align:center}.arrival-meta span:nth-child(3){text-align:right}

.positioning{padding:9rem 6vw;background:var(--paper)}
.positioning-inner{max-width:1180px;margin:auto}
.positioning h2{margin:.6rem 0 1.5rem}
.large-copy{font-family:var(--serif);font-size:clamp(1.6rem,2.5vw,2.5rem);line-height:1.28;max-width:980px;margin-bottom:4rem}
.audience-band{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.audience-band div{padding:1.6rem 2rem;border-left:1px solid var(--line)}
.audience-band div:first-child{border-left:0}
.audience-band span{display:block;font-size:.65rem;text-transform:uppercase;letter-spacing:.18em;color:var(--burgundy);margin-bottom:.55rem}
.audience-band strong{font-family:var(--serif);font-weight:400;font-size:1.2rem}

.experience{display:grid;grid-template-columns:1.45fr .75fr;min-height:760px;background:var(--ivory)}
.experience-photo{min-height:760px;overflow:hidden}
.experience-photo .media-layer{position:absolute}
.experience-copy{padding:9rem 6vw 7rem 5vw;align-self:center}
.experience-copy h2{font-size:clamp(2.6rem,4.5vw,4.4rem);margin:.6rem 0 1.5rem}
.experience-copy p{color:rgba(29,26,25,.68);max-width:500px}

.editorial-strip{padding:6rem 6vw;display:grid;grid-template-columns:2fr 1fr;gap:4rem;align-items:end;background:#fff}
.editorial-strip blockquote{margin:0;font-family:var(--serif);font-size:clamp(2.4rem,4.5vw,4.7rem);line-height:1.02;max-width:17ch}
.editorial-strip span{font-size:.68rem;text-transform:uppercase;letter-spacing:.16em;color:var(--burgundy);border-top:1px solid var(--line);padding-top:1rem}

.wine-section{background:var(--cabernet);color:#fff;display:grid;grid-template-columns:1fr 1.35fr;grid-template-rows:auto auto}
.wine-intro{padding:8rem 6vw 5rem}
.wine-intro h2{font-size:clamp(2.8rem,4.5vw,4.5rem);margin:.7rem 0 1.5rem}
.wine-intro .headline-accent--dark{color:#e1bd70}
.wine-intro p{max-width:520px;color:rgba(255,255,255,.7)}
.wine-image{grid-column:2;grid-row:1/3;min-height:760px}
.wine-image img{height:100%;object-fit:cover}
.wine-details{padding:0 6vw 7rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.wine-details article{border-top:1px solid rgba(255,255,255,.22);padding-top:1.2rem}
.wine-details h3{font-size:1.55rem;margin:.5rem 0}
.wine-details p{font-size:.9rem;color:rgba(255,255,255,.72)}

.kitchen-section{padding:9rem 6vw 7rem;background:var(--paper)}
.kitchen-heading{display:grid;grid-template-columns:.75fr 1.25fr;gap:5rem;align-items:end;margin-bottom:4rem}
.kitchen-heading .eyebrow{grid-column:1}
.kitchen-heading h2{grid-column:1;max-width:700px}
.kitchen-heading p:last-child{grid-column:2;grid-row:2;color:rgba(29,26,25,.65);max-width:560px}
.kitchen-image{height:560px;overflow:hidden}
.kitchen-image img{height:100%;object-fit:cover}
.menu-edit{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:1040px;margin:4rem auto 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.menu-edit article{min-width:0;padding:2.4rem 2.6rem;border-left:1px solid var(--line);border-top:1px solid var(--line);overflow-wrap:anywhere}
.menu-edit article:nth-child(1),.menu-edit article:nth-child(2){border-top:0}
.menu-edit article:nth-child(odd){border-left:0}
.menu-edit span{font-size:.66rem;text-transform:uppercase;letter-spacing:.16em;color:var(--burgundy)}
.menu-edit h3{font-size:2rem;margin:.7rem 0 1rem}
.menu-edit p{font-size:1rem;color:rgba(29,26,25,.72);margin-bottom:0}

.gatherings-section{min-height:800px;color:#fff;display:flex;align-items:center}
.gathering-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(34,12,18,.9),rgba(34,12,18,.38) 60%,rgba(34,12,18,.12))}
.gathering-copy{position:relative;z-index:2;padding:7rem 6vw;max-width:720px}
.gathering-copy h2{font-size:clamp(3rem,5vw,5.4rem);margin:.7rem 0 1.5rem}
.gathering-copy p{color:rgba(255,255,255,.7);max-width:540px;margin-bottom:2rem}

.story-section{display:grid;grid-template-columns:1fr 1.1fr;background:var(--ivory)}
.story-copy{padding:9rem 6vw}
.story-copy h2{margin:.7rem 0 1.5rem}
.story-copy p{max-width:570px;color:rgba(29,26,25,.67)}
.story-photo{min-height:760px;overflow:hidden}
.story-photo img{height:100%;object-fit:cover}

.timeline-section{padding:7rem 6vw;background:#fff}
.timeline-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:3rem;gap:2rem}
.timeline-heading h2{font-size:clamp(3rem,5vw,5rem)}
.timeline-grid{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.timeline-grid article{padding:1.5rem;border-left:1px solid var(--line)}
.timeline-grid article:first-child{border-left:0}
.timeline-grid strong{display:block;font-family:var(--serif);font-size:2.1rem;color:var(--burgundy);font-weight:400}
.timeline-grid span{font-size:.78rem;color:rgba(29,26,25,.62)}
.fine-print{font-size:.73rem;color:rgba(29,26,25,.45);margin-top:1rem}

.gallery-section{padding:8rem 6vw;background:var(--charcoal);color:#fff}
.gallery-heading{display:flex;justify-content:space-between;align-items:end;gap:3rem;margin-bottom:3rem}
.gallery-heading h2{max-width:760px;text-align:right}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.gallery-grid img{height:520px;object-fit:cover}

.visit-section{display:grid;grid-template-columns:1.35fr .65fr;background:var(--paper)}
.visit-copy{padding:8rem 6vw}
.visit-copy h2{margin:.7rem 0 1.5rem;max-width:800px}
.visit-copy>p{max-width:650px;color:rgba(29,26,25,.65)}
.visit-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-top:3rem;border-top:1px solid var(--line);padding-top:2rem}
.visit-facts p{font-size:.82rem;color:rgba(29,26,25,.58)}
.visit-facts strong{color:var(--charcoal)}
.visit-action{background:var(--cabernet);color:#fff;padding:8rem 4vw;display:flex;flex-direction:column;justify-content:center}
.visit-action h3{margin:.8rem 0 1rem;font-size:2.7rem}
.visit-action p{color:rgba(255,255,255,.66);font-size:.88rem}
.visit-action .button{align-self:flex-start;margin-top:1rem}

.closing{min-height:72vh;color:#fff;display:flex;align-items:center}
.closing-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,10,12,.94),rgba(20,10,12,.54))}
.closing-copy{position:relative;z-index:2;padding:7rem 6vw}
.closing-copy h2{font-size:clamp(3rem,6vw,6rem);max-width:1000px;margin-top:.8rem}
.closing-copy .headline-accent--dark{color:#e1bd70}
.closing-copy em{color:var(--champagne)}

.footer{padding:4rem 6vw;background:#120b0d;color:#fff;display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.footer p{margin:0;color:rgba(255,255,255,.5);font-size:.78rem}
.footer div{display:flex;justify-content:flex-end;gap:1.2rem;flex-wrap:wrap}
.footer div a{font-size:.68rem;text-transform:uppercase;letter-spacing:.14em;text-decoration:none;color:rgba(255,255,255,.65)}

.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s ease,transform .9s ease}
.reveal.visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.media-layer img{transform:none!important}}

@media(max-width:1050px){
  .desktop-nav{gap:1rem}
  .experience{grid-template-columns:1fr}
  .experience-photo{min-height:620px}
  .wine-section{grid-template-columns:1fr}
  .wine-image{grid-column:1;grid-row:auto;min-height:620px}
  .wine-details{grid-template-columns:repeat(3,1fr)}
  .kitchen-heading{grid-template-columns:1fr}
  .kitchen-heading .eyebrow,.kitchen-heading h2,.kitchen-heading p:last-child{grid-column:1;grid-row:auto}
  .menu-edit{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .menu-edit article:nth-child(3){border-left:0}
  .story-section{grid-template-columns:1fr}
  .story-photo{min-height:620px}
  .timeline-grid{grid-template-columns:repeat(3,1fr)}
  .timeline-grid article:nth-child(4){border-left:0}
}
@media(max-width:800px){
  .site-header{grid-template-columns:1fr auto;width:var(--mobile-visible-width,100dvw);right:auto;height:64px;padding:0 1.5rem;overflow:hidden}
  .site-header.scrolled{height:60px}
  .site-header .logo{left:1.5rem;top:4px;width:72px;height:72px}
  .site-header.scrolled .logo{top:5px;width:48px;height:48px}
  .desktop-nav,.nav-reserve{display:none}
  .menu-button{display:grid;grid-template-columns:1fr auto;gap:9px;align-items:center;min-width:74px;min-height:44px;padding:0 10px;border:1px solid rgba(247,243,236,.4);font-size:.64rem;line-height:1;color:#fff}
  .menu-button b{font:400 1.35rem/1 var(--serif)}
  .mobile-nav{width:var(--mobile-visible-width,100dvw);right:auto}
  .hero-inner{padding-left:1.5rem;padding-right:1.5rem}
  .hero-meta{left:1.5rem;right:1.5rem;grid-template-columns:1fr}.hero-meta span:nth-child(n){text-align:left}.hero-meta span:not(:first-child){display:none}
  .positioning,.kitchen-section,.timeline-section,.gallery-section{padding-left:1.5rem;padding-right:1.5rem}
  .audience-band{grid-template-columns:1fr}
  .audience-band div{border-left:0;border-top:1px solid var(--line)}
  .audience-band div:first-child{border-top:0}
  .editorial-strip{grid-template-columns:1fr;padding:5rem 1.5rem}
  .wine-intro,.wine-details{padding-left:1.5rem;padding-right:1.5rem}
  .wine-details{grid-template-columns:1fr}
  .kitchen-image{height:480px}
  .gathering-copy,.story-copy,.visit-copy,.visit-action,.closing-copy{padding-left:1.5rem;padding-right:1.5rem}
  .menu-edit{grid-template-columns:minmax(0,1fr)}
  .menu-edit article{border-left:0;border-top:1px solid var(--line)}
  .menu-edit article:nth-child(n){border-top:1px solid var(--line)}
  .menu-edit article:first-child{border-top:0}
  .gallery-heading{display:block}.gallery-heading h2{text-align:left;margin-top:1rem}
  .gallery-grid{grid-template-columns:1fr}.gallery-grid img{height:430px}
  .visit-section{grid-template-columns:1fr}
  .footer{grid-template-columns:1fr;padding-left:1.5rem;padding-right:1.5rem}.footer div{justify-content:flex-start}
}
@media(max-width:560px){
  .hero{min-height:92vh}
  .hero h1,.hero .hero-heading{font-size:clamp(2.9rem,12vw,4.5rem)}
  .hero-copy{font-size:.92rem}
  .experience-photo,.wine-image,.story-photo{min-height:480px}
  .timeline-grid{grid-template-columns:1fr}
  .timeline-grid article{border-left:0;border-top:1px solid var(--line)}
  .visit-facts{grid-template-columns:1fr}
}

@media(max-width:800px){
  .hero-intro{min-height:auto;padding:calc(72px + 7rem) 1.5rem 5rem;grid-template-columns:1fr;gap:3rem}
  .hero-intro-aside{min-height:420px;border:0;padding:1.5rem}
  .arrival-meta{left:1.5rem;right:1.5rem;grid-template-columns:1fr}.arrival-meta span:nth-child(n){text-align:left}.arrival-meta span:not(:first-child){display:none}
}
@media(max-width:560px){
  .hero-intro h1{font-size:clamp(2.9rem,12vw,4.5rem)}
  .hero-intro .hero-copy{font-size:.92rem}
  .arrival-scene{min-height:500px}
}

@media(max-width:800px){
  .instagram-section{padding-left:1.5rem;padding-right:1.5rem}
  .instagram-heading{grid-template-columns:1fr;gap:1rem}
  .instagram-grid{grid-template-columns:repeat(2,1fr)}
}

.positioning-columns{display:grid;grid-template-columns:.8fr 1.2fr;gap:5rem;align-items:start}
.positioning-statement p{font-family:var(--serif);font-size:1.35rem;line-height:1.45;margin-top:0;color:rgba(29,26,25,.78)}
.positioning .audience-band{grid-template-columns:1fr}
.positioning .audience-band div{border-left:0;border-top:1px solid var(--line);padding:1.4rem 0}
.positioning .audience-band div:first-child{border-top:0;padding-top:1.35rem}

.editorial-strip.compact{padding-top:3.5rem;padding-bottom:3.5rem}
.editorial-strip.compact blockquote{font-size:clamp(1.9rem,3.1vw,3.2rem);max-width:22ch}
.editorial-strip.compact span{max-width:360px;line-height:1.6}

.value-section{padding:8rem 6vw;background:#fff}
.value-heading{display:grid;grid-template-columns:.65fr 1.35fr;align-items:end;gap:4rem;margin-bottom:3.5rem}
.value-heading h2{max-width:760px}
.value-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.value-grid article{padding:2.3rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.value-grid h3{margin:.65rem 0 1rem}
.value-grid p{font-size:.94rem;color:rgba(29,26,25,.72);max-width:520px}
.value-link{margin-top:2.5rem}

.proof-section{padding:8rem 6vw;background:var(--charcoal);color:#fff}
.proof-heading{display:grid;grid-template-columns:.65fr 1.35fr;align-items:end;gap:4rem;margin-bottom:2.25rem}
.proof-heading h2{text-align:left;max-width:720px}
.proof-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.proof-card{min-width:0;background:#241f1e;overflow-wrap:anywhere}
.proof-card img{height:360px;object-fit:cover}
.proof-card>div{padding:2rem}
.proof-card h3{font-size:1.8rem;margin:.7rem 0 1rem}
.proof-card p{font-size:.9rem;color:rgba(255,255,255,.74)}

.crush-gallery{padding:8rem 6vw;background:var(--paper)}
.crush-gallery-heading{max-width:700px;margin:0 auto 4.5rem;text-align:center}
.crush-gallery-heading h2{margin:.6rem 0 1.6rem}
.crush-gallery-heading p:last-child{color:rgba(29,26,25,.62)}
.crush-gallery-grid{columns:4 220px;column-gap:1rem;max-width:1440px;margin:auto}
.crush-gallery-grid img{width:100%;height:auto;break-inside:avoid;display:block;margin:0 0 1rem;filter:saturate(.9);transition:transform .3s,filter .3s}
.crush-gallery-grid img:hover{transform:translateY(-3px);filter:saturate(1.06)}

.instagram-section{padding:8rem 6vw;background:var(--cabernet);color:#fff}
.instagram-heading{max-width:1180px;margin:0 auto 3rem;display:grid;grid-template-columns:.9fr 1.1fr;gap:4rem;align-items:end}
.instagram-heading h2{margin-top:.65rem}
.instagram-heading>p{max-width:500px;margin:0;color:rgba(255,255,255,.72)}
.instagram-grid{max-width:1180px;margin:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}
.instagram-grid img{aspect-ratio:1;object-fit:cover;filter:saturate(.88);transition:filter .25s,transform .25s}
.instagram-grid img:hover{filter:saturate(1.08);transform:scale(1.015)}
.instagram-link{display:flex;width:max-content;gap:.65rem;margin:2.5rem auto 0;color:var(--champagne);text-decoration:none;text-transform:uppercase;letter-spacing:.16em;font-size:.7rem;font-weight:600;border-bottom:1px solid rgba(199,164,106,.45);padding-bottom:.45rem}
.instagram-link span{font-size:1rem;line-height:.7}

/* Tighter editorial hierarchy */
.hero-intro{min-height:clamp(680px,88vh,900px);grid-template-columns:minmax(0,.92fr) minmax(440px,1.08fr);gap:4vw}
.hero-intro-copy{max-width:680px;align-self:center}
.hero-intro h1{font-size:clamp(4rem,6.2vw,7.6rem)}
.hero-intro .hero-copy{font-size:1.1rem;max-width:580px}
.hero-offer{max-width:560px}
.hero-intro-aside{min-height:100%;padding:2.5rem}
.hero-intro-aside>span{display:none}
.hero-image-note{position:relative;z-index:1;display:grid;gap:.7rem}
.hero-image-note strong{font-family:var(--serif);font-size:clamp(2.1rem,3.2vw,3.4rem);font-weight:400;line-height:.95}
.arrival-scene{display:none}
.crush-gallery-grid{columns:3 250px;max-width:1120px}
.instagram-grid{max-width:1000px}

@media(max-width:800px){
  .hero-intro{min-height:auto;grid-template-columns:1fr;padding-top:calc(72px + 5rem)}
  .hero-intro-copy{align-self:auto}
  .hero-intro-aside{min-height:480px}
  .hero-intro h1{font-size:clamp(3.3rem,12vw,5.2rem)}
  .hero-image-note strong{font-size:2.4rem}
  .crush-gallery-grid{columns:2 170px}
}

.footer{padding:5rem 6vw 2rem;background:#120b0d;color:#fff;display:grid;grid-template-columns:1.3fr .8fr 1fr;gap:4rem}
.footer-brand p{font-family:var(--serif);font-size:1.5rem;line-height:1.25;color:rgba(255,255,255,.75);margin:1.3rem 0 0}
.footer-brand .logo{width:80px;height:80px}
.footer-contact p{font-size:.82rem;color:rgba(255,255,255,.58);line-height:1.8}
.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:.8rem 1rem;align-content:start}
.footer-links a{font-size:.68rem;text-transform:uppercase;letter-spacing:.14em;text-decoration:none;color:rgba(255,255,255,.68)}
.footer-note{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);padding-top:1.4rem;display:flex;justify-content:space-between;gap:1rem;font-size:.68rem;color:rgba(255,255,255,.38)}
.footer-note a{text-decoration:none;color:rgba(255,255,255,.55)}

.editorial-pause{height:clamp(420px,58vw,760px);overflow:hidden;background:var(--charcoal)}
.editorial-pause img{width:100%;height:100%;object-fit:cover;object-position:center 54%;filter:saturate(.9) contrast(1.04) brightness(.9)}

@media(max-width:900px){
  .positioning-columns,.value-heading,.proof-heading{grid-template-columns:1fr;gap:2rem}
  .value-grid,.proof-grid{grid-template-columns:minmax(0,1fr)}
  .footer{grid-template-columns:1fr 1fr}
  .footer-links{grid-column:1/-1}
}

/* Keep mobile editorial layouts inside the viewport even when a headline
   grows across several lines. */
@media(max-width:800px){
  .positioning-inner,.story-section,.story-copy,.story-photo,.hero-intro,.hero-intro-aside,.hero-intro-copy{min-width:0;max-width:100%}
  .experience{overflow-x:clip}
  .positioning h2,.story-copy h2{max-width:100%;overflow-wrap:anywhere}
}
@media(max-width:600px){
  .value-section,.proof-section{padding-left:1.5rem;padding-right:1.5rem}
  .footer{grid-template-columns:1fr;padding-left:1.5rem;padding-right:1.5rem}
  .footer-links{grid-column:auto}
  .footer-note{display:block}
  .footer-note a{display:block;margin-top:.75rem}
}

.proof-card img{height:420px!important}
.footer{padding-top:7rem!important;padding-bottom:3rem!important}
.hero-shade{background:linear-gradient(90deg,rgba(20,10,12,.92) 0%,rgba(20,10,12,.66) 45%,rgba(20,10,12,.28) 78%),linear-gradient(to top,rgba(20,10,12,.72),transparent 60%)}

.experience{display:block!important;background:var(--ivory)}
.experience-copy.wide{padding:7rem 6vw 3rem}
.experience-copy.wide p{max-width:780px}
.experience-photo{min-height:700px}
.proof-sub{display:block;font-size:.45em;color:var(--champagne);margin-top:.5rem}
.proof-card img{height:460px!important}
.proof-card>div{padding:2.5rem}
.proof-card p{font-size:.9rem;line-height:1.8}

.booking-section{padding:8rem 6vw;background:var(--paper);display:grid;grid-template-columns:.8fr 1.2fr;gap:6rem;align-items:start}
.booking-intro{position:sticky;top:110px}
.booking-intro h2{margin:.7rem 0 1.4rem}
.booking-intro>p{max-width:580px;color:rgba(29,26,25,.64)}
.booking-rules{margin-top:3rem;border-top:1px solid var(--line)}
.booking-rules div{display:flex;justify-content:space-between;gap:2rem;padding:1rem 0;border-bottom:1px solid var(--line)}
.booking-rules span{font-size:.68rem;text-transform:uppercase;letter-spacing:.15em;color:var(--burgundy)}
.booking-rules strong{font-family:var(--serif);font-weight:400;text-align:right}

.booking-shell{background:var(--cabernet);color:#fff;min-height:620px}
.booking-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid rgba(255,255,255,.14)}
.booking-tab{appearance:none;border:0;background:transparent;color:rgba(255,255,255,.48);padding:1.4rem 1rem;font:600 .68rem var(--sans);letter-spacing:.15em;text-transform:uppercase;cursor:pointer}
.booking-tab.active{color:#fff;background:rgba(255,255,255,.05)}
.booking-panel{display:none;padding:3rem}
.booking-panel.active{display:block}
.table-booking-form fieldset{border:0;padding:0;margin:0 0 2.5rem}
.table-booking-form legend{font:400 2rem var(--serif);margin-bottom:1.2rem}
.party-buttons{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid rgba(255,255,255,.17)}
.party-buttons button{border:0;border-left:1px solid rgba(255,255,255,.13);background:transparent;color:#fff;min-height:58px;font:400 1rem var(--sans);cursor:pointer}
.party-buttons button:first-child{border-left:0}
.party-buttons button:hover,.party-buttons button.selected{background:var(--champagne);color:var(--charcoal)}
.booking-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.booking-fields label,.event-fields label,.event-notes{font-size:.7rem;text-transform:uppercase;letter-spacing:.13em;color:rgba(255,255,255,.72)}
.booking-fields input,.booking-fields select,.event-fields input,.event-fields select,.event-notes textarea{display:block;width:100%;margin-top:.55rem;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.16);color:#fff;padding:.9rem;font:400 .86rem var(--sans);outline:none}
.booking-fields select option,.event-fields select option{color:#111}
.booking-fields input:focus,.booking-fields select:focus,.event-fields input:focus,.event-fields select:focus,.event-notes textarea:focus{border-color:var(--champagne)}
.occasion-message{margin:2.5rem 0;padding:1.5rem;border-left:1px solid var(--champagne);background:rgba(255,255,255,.035)}
.occasion-message p{font:400 1.4rem var(--serif);margin:.45rem 0 0;color:#fff}
.booking-summary{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}
.booking-summary span{font-size:.67rem;text-transform:uppercase;letter-spacing:.13em;padding:.55rem .75rem;border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.68)}
.button.primary.booking-cta{min-height:58px;margin-top:.5rem;padding:0 2.2rem;background:var(--champagne);color:var(--cabernet);font-weight:700;border-color:var(--champagne);box-shadow:0 8px 18px rgba(0,0,0,.16)}
.button.primary.booking-cta:hover{background:#e0c487;color:var(--cabernet);border-color:#e0c487}
.booking-note{font-size:.72rem;line-height:1.7;color:rgba(255,255,255,.44);margin-top:1.4rem}
.large-party-note{margin-top:2rem;padding:1.5rem;background:rgba(199,164,106,.13);border:1px solid rgba(199,164,106,.4)}
.large-party-note strong{font:400 1.5rem var(--serif);color:var(--champagne)}
.large-party-note p{font-size:.8rem;color:rgba(255,255,255,.65)}
.large-party-note a{color:#fff}

.event-intro h3{font-size:2.8rem;margin:.6rem 0 1rem}
.event-intro>p:not(.eyebrow){max-width:600px;color:rgba(255,255,255,.84)}
.event-next-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;max-width:760px;margin:2rem 0 2.5rem;padding:0;list-style:none;counter-reset:event-step}
.event-next-steps li{position:relative;padding:1rem 1rem 1rem 2.9rem;border-top:1px solid rgba(255,255,255,.28);counter-increment:event-step}
.event-next-steps li::before{content:"0" counter(event-step);position:absolute;left:0;top:1rem;color:var(--champagne);font-size:.7rem;font-weight:700;letter-spacing:.12em}
.event-next-steps strong{display:block;color:#fff;font-size:.8rem;letter-spacing:.05em;text-transform:uppercase}
.event-next-steps span{display:block;margin-top:.45rem;color:rgba(255,255,255,.84);font-size:.82rem;line-height:1.5}
.event-fields{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:2rem 0 1rem}
.event-notes{display:block;margin-bottom:1.5rem}
.event-notes textarea{resize:vertical}
.event-demo-message{font-size:.76rem;color:rgba(255,255,255,.55);margin-top:1.5rem}

@media(max-width:1000px){
  .booking-section{grid-template-columns:1fr;gap:3rem}
  .booking-intro{position:static}
}
@media(max-width:700px){
  .booking-section{padding-left:1.5rem;padding-right:1.5rem}
  .booking-panel{padding:2rem 1.2rem}
  .party-buttons{grid-template-columns:repeat(4,1fr)}
  .party-buttons button:nth-child(5){border-left:0;border-top:1px solid rgba(255,255,255,.13)}
  .party-buttons button:nth-child(n+5){border-top:1px solid rgba(255,255,255,.13)}
  .booking-fields,.event-fields,.event-next-steps{grid-template-columns:1fr}
  .booking-rules div{display:block}
  .booking-rules strong{display:block;text-align:left;margin-top:.35rem}
}

.guest-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;margin-bottom:2.2rem}
.guest-fields label,.reservation-notes{font-size:.7rem;text-transform:uppercase;letter-spacing:.13em;color:rgba(255,255,255,.72)}
.guest-fields input,.reservation-notes textarea{display:block;width:100%;margin-top:.55rem;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.16);color:#fff;padding:.9rem;font:400 .86rem var(--sans);outline:none}
.guest-fields input:focus,.reservation-notes textarea:focus{border-color:var(--champagne)}
.reservation-notes{display:block;margin:1rem 0 0}
.reservation-notes textarea{resize:vertical}
.booking-status{min-height:1.5em;margin-top:1rem;font-size:.82rem;color:var(--champagne)}
.booking-status.error{color:#f3b4b4}
.booking-status.success{color:#d7e8c7}
.text-button{background:none;border:0;padding:0;color:#fff;text-decoration:underline;cursor:pointer;font:400 .86rem var(--sans)}
.reservation-demo-banner{padding:.8rem 6vw;background:#e9dfd0;color:#5b1f2b;border-top:1px solid rgba(91,31,43,.12);border-bottom:1px solid rgba(91,31,43,.12);font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;font-weight:600}
@media(max-width:800px){.guest-fields{grid-template-columns:1fr}}

/* Reservation controls use explicit rows instead of squeezing three native
   controls together. This is deliberately conservative for touch devices:
   iPad Chrome uses WebKit and can report a wider layout viewport than the
   physical screen, particularly when page zoom is involved. */
@media (min-width:701px){
  .booking-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
  .booking-fields label:last-child{grid-column:1/-1}
}
@media (min-width:701px) and (max-width:1439px), (min-width:701px) and (hover:none) and (pointer:coarse){
  .booking-fields{grid-template-columns:1fr}
  .booking-fields label:last-child{grid-column:auto}
}

/* Image-first cover: photograph, then invitation */
.hero-intro{display:grid;grid-template-columns:1fr;grid-template-areas:"media" "content";min-height:0;padding:84px 0 0;gap:0;background:var(--ivory)}
.hero-intro-aside{grid-area:media;min-height:clamp(390px,48vw,620px);padding:2rem 6vw;margin:0}
.hero-intro-copy{grid-area:content;max-width:none;width:min(1180px,88vw);margin:auto;padding:5rem 0 6rem;display:grid;grid-template-columns:minmax(0,.95fr) minmax(300px,.8fr);column-gap:9vw;align-items:start}
.hero-intro-copy .eyebrow,.hero-intro-copy h1{grid-column:1}
.hero-intro h1{font-size:clamp(3rem,4.4vw,5.15rem);max-width:620px;margin:.8rem 0 0}
.hero-intro .hero-copy,.hero-intro .hero-actions,.hero-intro .hero-offer{grid-column:2}
.hero-intro .hero-copy{font-size:1.05rem;max-width:500px;margin:0 0 1.7rem;line-height:1.8}
.hero-actions{align-self:start}
.hero-offer{margin-top:2.2rem;max-width:500px;font-size:.68rem}
.hero-image-note{max-width:420px}
.hero-image-note strong{font-size:clamp(1.8rem,2.7vw,2.85rem)}

@media(max-width:800px){
  .hero-intro{padding-top:72px}
  .hero-intro-aside{min-height:360px;padding:1.5rem}
  .hero-intro-copy{width:min(100% - 3rem,640px);padding:3.5rem 0 4rem;grid-template-columns:1fr;gap:0}
  .hero-intro-copy .eyebrow,.hero-intro-copy h1,.hero-intro .hero-copy,.hero-intro .hero-actions,.hero-intro .hero-offer{grid-column:1}
  .hero-intro h1{font-size:clamp(2.8rem,11vw,4.1rem);margin-bottom:2rem}
  .hero-intro .hero-copy{font-size:1rem;margin-bottom:1.5rem}
  .hero-offer{margin-top:2rem}
}

/* Invitation-card cover using temporary staged concept photography. */
.hero-intro{position:relative;display:block;min-height:clamp(720px,84vh,960px);padding:64px 0 6rem;background:var(--ivory)}
.hero-intro-aside.hero-invitation-image{min-height:100%;height:calc(clamp(720px,84vh,960px) - 64px - 6rem);padding:0;color:var(--ivory)}
.hero-intro-aside.hero-invitation-image:after{background:linear-gradient(90deg,rgba(0,0,0,.18) 0%,rgba(0,0,0,.06) 40%,rgba(0,0,0,.02) 100%)}
.hero-intro-aside.hero-invitation-image img{filter:saturate(.96) contrast(1.05) brightness(.86) sepia(.08);object-position:center;transform:scale(1);animation:hero-room-drift 26s ease-in-out infinite alternate}
.hero-intro-copy.hero-invitation-card{position:absolute;z-index:2;left:clamp(2rem,6vw,7rem);bottom:-3.25rem;display:block;width:min(410px,31vw);max-width:none;margin:0;padding:clamp(1.8rem,2.6vw,2.65rem);background:rgba(247,243,236,.88);border:1px solid rgba(255,255,255,.56);backdrop-filter:blur(4px);box-shadow:0 8px 24px rgba(0,0,0,.1);color:var(--burgundy);transform:translateY(0);transition:transform 320ms ease,box-shadow 320ms ease,background 320ms ease}
.hero-invitation-card:hover{transform:translateY(-8px) rotate(-.15deg);background:rgba(247,243,236,.94);box-shadow:0 12px 28px rgba(0,0,0,.13)}
.hero-invitation-card .eyebrow{margin:0 0 1.25rem;color:var(--burgundy)}
.hero-intro .hero-invitation-card h1{max-width:none;margin:0;color:var(--charcoal);font-size:clamp(2.35rem,3vw,3.65rem);line-height:1.15}
.hero-intro .hero-invitation-card h1 em{color:var(--burgundy);font-style:italic}
.hero-invitation-card.reveal{transition:opacity 1.1s ease .12s,transform 1.1s ease .12s,box-shadow 320ms ease,background 320ms ease}
.hero-intro .hero-invitation-card .hero-copy,.hero-invitation-card .hero-offer{display:none}
.hero-invitation-card .hero-actions{margin-top:1.6rem}
.hero-invitation-card .button.primary{padding:.7rem 0;border:0;border-bottom:1px solid rgba(91,31,43,.65);background:transparent;color:var(--burgundy);font-size:.7rem}
.hero-invitation-card .button.primary:hover{background:transparent;color:#2f0d15;border-bottom-color:var(--burgundy)}
.hero-invitation-card .button.ghost{border-color:rgba(91,31,43,.65);color:var(--burgundy)}
.hero-invitation-card .button.ghost:hover{background:rgba(91,31,43,.08);color:#2f0d15;border-color:var(--burgundy)}
.hero-invitation-image .hero-image-note,.hero-invitation-image>span{display:none}
@keyframes hero-room-drift{from{transform:scale(1)}to{transform:scale(1.03)}}

@media(max-width:800px){
  .hero-intro{min-height:680px;padding:64px 1.5rem 5rem}
  .hero-intro-aside.hero-invitation-image{height:560px;min-height:560px}
  .hero-intro-copy.hero-invitation-card{left:1.5rem;bottom:1.5rem;width:min(385px,calc(100% - 3rem));padding:2rem}
  .hero-intro .hero-invitation-card h1{font-size:clamp(2.6rem,7.5vw,3.8rem)}
}

@media(prefers-reduced-motion:reduce){.hero-intro-aside.hero-invitation-image img{animation:none;transform:none}.hero-invitation-card{transition:none}}

/* Final editorial refinement: slightly denser pacing and stronger reading contrast. */
.positioning{padding-top:8.25rem;padding-bottom:8.25rem}
.experience,.experience-photo{min-height:700px}
.experience-copy{padding-top:8.25rem;padding-bottom:6.25rem}
.wine-intro{padding-top:7.25rem;padding-bottom:4.5rem}
.wine-details{padding-bottom:6.25rem}
.kitchen-section{padding-top:8.25rem;padding-bottom:6.25rem}
.gatherings-section{min-height:740px}
.gathering-copy{padding-top:6.25rem;padding-bottom:6.25rem}
.story-copy{padding-top:8.25rem;padding-bottom:8.25rem}
.story-photo{min-height:700px}
.gallery-section,.proof-section,.instagram-section{padding-top:7.25rem;padding-bottom:7.25rem}
.visit-copy,.visit-action{padding-top:7.25rem;padding-bottom:7.25rem}
.closing{min-height:66vh}
.experience-copy p,.kitchen-heading p:last-child,.menu-edit p,.story-copy p,.visit-copy>p{color:rgba(29,26,25,.8)}
.wine-intro p,.wine-details p,.gathering-copy p,.visit-action p{color:rgba(255,255,255,.8)}

@media(max-width:800px){
  .positioning,.kitchen-section,.gallery-section,.proof-section,.instagram-section{padding-top:5.5rem;padding-bottom:5.5rem}
  .experience,.experience-photo,.story-photo{min-height:auto}
  .experience-copy,.story-copy,.visit-copy,.visit-action{padding-top:5.5rem;padding-bottom:5.5rem}
  .gatherings-section{min-height:680px}
}

/* Final hospitality polish: a more legible mark and a roomier last impression. */
.site-header .logo{width:120px;height:120px;top:2px}
.site-header.scrolled .logo{width:54px;height:54px;top:3px}
.hero-intro-copy.hero-invitation-card{left:clamp(2.5rem,7vw,8rem);bottom:-5.5rem;width:min(490px,37vw);padding:clamp(2.2rem,3.2vw,3.25rem)}
.hero-intro .hero-invitation-card h1{font-size:clamp(2.55rem,3.25vw,3.9rem)}
.proof-heading{margin-bottom:3.15rem}
.story-copy{padding-right:8vw}
.closing{min-height:76vh}
.closing-copy{padding-top:8rem;padding-bottom:8rem}
.footer-brand .logo{width:106px;height:106px}
.footer-brand p{font-size:1.65rem}
.footer-contact p{font-size:.94rem;line-height:1.85}
.footer-links a{font-size:.74rem}

@media(max-width:800px){
  .site-header .logo{width:92px;height:92px;top:1px}
  .site-header.scrolled .logo{width:50px;height:50px;top:4px}
  .hero-intro-copy.hero-invitation-card{bottom:1.5rem;width:min(385px,calc(100% - 3rem))}
  .editorial-pause{height:420px}
  .proof-heading{margin-bottom:2.5rem}
  .story-copy{padding-right:1.5rem}
  .closing{min-height:70vh}
}

/* Guest-focused additions, kept within the established editorial system. */
.section-action{display:flex;width:max-content;margin:3.25rem auto 0;padding-bottom:.55rem;border-bottom:1px solid rgba(91,31,43,.48);color:var(--burgundy);gap:.65rem;text-decoration:none;text-transform:uppercase;letter-spacing:.16em;font-size:.7rem;font-weight:600}
.section-action-light{grid-column:1;justify-self:start;margin:0 0 6.25rem 6vw;color:var(--champagne);border-bottom-color:rgba(199,164,106,.55)}
.wine-details{grid-template-columns:repeat(4,1fr)}
.wine-details .wine-lead{grid-column:1/-1;display:grid;grid-template-columns:.7fr 1.35fr 1fr;gap:1.5rem;align-items:end;padding-bottom:1.6rem}
.wine-lead h3{font-size:clamp(1.85rem,2.1vw,2.45rem)}
.wine-lead p{margin:0}
.table-glass-section{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;background:var(--ivory)}
.table-glass-copy{padding:8rem 10vw 8rem 6vw;align-self:center}
.table-glass-copy h2{margin:.75rem 0 1.5rem;max-width:660px}
.table-glass-copy p:last-child{max-width:560px;color:rgba(29,26,25,.78)}
.table-glass-section>img{width:100%;height:100%;min-height:540px;object-fit:cover;filter:saturate(.9) contrast(1.02)}
.menu-edit{margin-bottom:0}
.menu-edit article{padding:3rem 3.1rem}
.menu-edit .menu-category-title{display:block;font-size:1.02rem;font-weight:600;letter-spacing:.1em;color:var(--burgundy)}
.menu-edit h3{font-size:2.2rem;margin:.8rem 0 1.1rem}
.menu-detail{max-width:1040px;margin:0 auto;padding:2.5rem 3.1rem;background:#f7f3ec;border:1px solid var(--line);border-top:0}
.menu-detail p{margin:.65rem 0 0;font-family:var(--serif);font-size:1.45rem;line-height:1.45;color:var(--burgundy)}
.menu-detail strong{font-weight:500}
.visit-essentials{margin-top:3.25rem;padding-top:2.2rem;border-top:1px solid var(--line)}
.booking-section{gap:8rem}
.visit-essentials>p{margin:.8rem 0;font-size:.98rem;line-height:1.7;color:rgba(29,26,25,.78)}
.visit-essentials .visit-hours{font-size:.86rem;color:rgba(29,26,25,.62)}
.visit-actions{display:flex;flex-wrap:wrap;gap:1.1rem;margin-top:1.25rem}
.visit-actions a{display:inline-flex;align-items:center;min-height:24px;color:var(--burgundy);text-decoration:none;text-transform:uppercase;font-size:.68rem;letter-spacing:.14em;font-weight:600;border-bottom:1px solid rgba(91,31,43,.32);padding:.15rem 0 .4rem}
.crush-gallery{padding-bottom:5.75rem}
.section-divider{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1.5rem;padding:1.5rem 6vw;background:var(--paper)}
.section-divider:before,.section-divider:after{content:"";height:1px;background:var(--line)}
.section-divider span{width:28px;height:28px;background:url("../crush-logo-header.svg") center/contain no-repeat}
.gallery-image{display:block;width:100%;padding:0;margin:0 0 1rem;border:0;background:transparent;cursor:zoom-in;break-inside:avoid}
.crush-gallery-grid .gallery-image img{margin:0}
.gallery-image:focus-visible{outline:2px solid var(--burgundy);outline-offset:4px}
.gallery-lightbox{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:4.5rem 5rem;background:rgba(16,10,11,.94)}
.gallery-lightbox[hidden]{display:none}
.gallery-lightbox>img{width:auto;max-width:min(100%,1200px);height:auto;max-height:calc(100vh - 9rem);object-fit:contain;box-shadow:0 24px 70px rgba(0,0,0,.45)}
.lightbox-close,.lightbox-nav{position:absolute;border:0;background:transparent;color:#fff;text-transform:uppercase;letter-spacing:.16em;font-size:.7rem;font-weight:600;cursor:pointer}
.lightbox-close{top:1.75rem;right:2rem;padding:.75rem}
.lightbox-nav{top:50%;transform:translateY(-50%);padding:1rem}
.lightbox-prev{left:1.5rem}.lightbox-next{right:1.5rem}
.lightbox-close:focus-visible,.lightbox-nav:focus-visible{outline:1px solid var(--champagne);outline-offset:4px}

/* On wide screens, the evening resolves as a composed two-row spread. */
@media(min-width:801px){
  .crush-gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));columns:auto;column-gap:0;gap:1.15rem}
  .crush-gallery-grid .gallery-image{margin:0;break-inside:auto;aspect-ratio:4/3;overflow:hidden}
  .crush-gallery-grid .gallery-image img{width:100%;height:100%;object-fit:cover}
}

@media(max-width:1100px){
  .wine-details{grid-template-columns:repeat(2,1fr)}
  .table-glass-section{grid-template-columns:1fr}
  .table-glass-copy{padding:6rem 6vw}
  .table-glass-section>img{min-height:460px;max-height:620px}
  .booking-section{gap:3rem}
  .wine-details .wine-lead{grid-template-columns:.75fr 1.25fr 1fr}
}
@media(max-width:800px){
  .wine-details{grid-template-columns:1fr}
  .wine-details .wine-lead{grid-template-columns:1fr;gap:.75rem}
  .section-action-light{margin:0 1.5rem 5.5rem}
  .table-glass-copy{padding:5.5rem 1.5rem}
  .table-glass-section>img{min-height:380px}
  .menu-edit{margin-top:3rem}
  .menu-edit article{padding:2.4rem 1.5rem}
  .menu-edit .menu-category-title{font-size:.95rem}
  .menu-detail{padding:2rem 1.5rem}
  .visit-essentials{margin-top:2.5rem}
  .gallery-lightbox{padding:4.5rem 1rem 5rem}
  .crush-gallery{padding-bottom:4.25rem}
  .section-divider{padding:2.15rem 1.5rem}
  .gallery-lightbox>img{max-height:calc(100vh - 10rem)}
  .lightbox-close{top:1rem;right:.75rem}
  .lightbox-nav{top:auto;bottom:1rem;transform:none}.lightbox-prev{left:1rem}.lightbox-next{right:1rem}
}

/* Compact desktop header while preserving the logo's established presence. */
@media(min-width:801px){
  .site-header{height:54px}
  .site-header.scrolled{height:52px}
  .desktop-nav a{padding-top:.25rem;padding-bottom:.55rem}
  .nav-reserve{padding-top:.48rem;padding-bottom:.48rem}
  .hero-intro{padding-top:54px}
  .hero-intro-aside.hero-invitation-image{height:calc(clamp(720px,84vh,960px) - 54px - 6rem)}
}

/* Direct, practical actions stay visible without changing the editorial navigation. */
.nav-actions{grid-column:3;justify-self:end;display:flex;align-items:center;gap:0;border:1px solid rgba(247,243,236,.6)}
.nav-phone,.nav-menu,.nav-reserve{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:.6rem .9rem;font-size:.68rem;line-height:1;text-transform:uppercase;letter-spacing:.14em;font-weight:650;text-decoration:none;white-space:nowrap;transition:background .25s,color .25s,border-color .25s,transform .25s}
.nav-phone{background:var(--paper);color:var(--charcoal);letter-spacing:.1em}
.nav-menu{border-left:1px solid rgba(247,243,236,.6);background:var(--cabernet);color:#fff}
.nav-reserve{grid-column:auto;justify-self:auto;border-left:1px solid rgba(29,26,25,.22);border-color:rgba(29,26,25,.22);background:var(--champagne);color:var(--cabernet)}
.nav-menu:hover,.nav-menu:focus-visible{background:#42151f;color:#fff}
.nav-reserve:hover,.nav-reserve:focus-visible{background:#e0bd7d;border-color:#e0bd7d;color:var(--cabernet);transform:translateY(-1px)}

@media(min-width:801px) and (max-width:1160px){
  .site-header{grid-template-columns:7.75rem auto 1fr;padding-left:3vw;padding-right:3vw}
  .site-header .logo{left:3vw}
  .desktop-nav{gap:.8rem}
  .nav-actions{gap:0}
  .nav-phone,.nav-menu,.nav-reserve{padding:.55rem .65rem;font-size:.61rem;letter-spacing:.11em}
  .nav-phone{padding-left:.65rem;padding-right:.65rem}
}

/* Navigation shell adapted to Crush's palette and links. */
.crush-nav{position:sticky;top:0;z-index:10000;width:100%;min-height:70px;overflow:visible;background:var(--charcoal);color:#fff;border-bottom:1px solid rgba(247,243,236,.18);box-shadow:0 10px 28px rgba(29,26,25,.14);font-family:var(--sans)}
.crush-nav__bar{position:relative;width:min(1600px,100%);min-height:70px;margin:auto;padding:7px clamp(16px,4vw,56px);display:flex;align-items:center;gap:22px}
.crush-nav__logo{position:absolute;z-index:2;top:4px;left:clamp(16px,4vw,56px);width:116px;height:116px;transform:none;transition:top .35s ease,width .35s ease,height .35s ease;text-decoration:none}.crush-nav__logo img{display:block;width:100%;height:100%;object-fit:contain}
.crush-nav.is-scrolled .crush-nav__logo{top:8px;width:54px;height:54px}
.crush-nav__desktop{margin-left:clamp(11rem,12vw,13rem);display:flex;align-items:center;gap:4px}.crush-nav__desktop a{min-height:44px;padding:12px 10px;display:inline-flex;align-items:center;color:#eee8e1;text-decoration:none;font-size:.72rem;font-weight:700;letter-spacing:.075em;text-transform:uppercase;white-space:nowrap}.crush-nav__desktop a.is-current{box-shadow:inset 0 -2px 0 var(--champagne);color:#fff}
.crush-nav__desktop a.nav-pointer-clicked:not(.is-current),.crush-nav__desktop a.nav-pointer-clicked:not(.is-current):hover{color:#eee8e1;opacity:.94}.crush-nav__desktop a.nav-pointer-clicked:not(.is-current)::after{transform:scaleX(0)}
.crush-nav__actions{margin-left:auto;display:flex;align-items:center;gap:0;border:1px solid rgba(247,243,236,.58)}.crush-nav__actions .nav-phone,.crush-nav__actions .nav-menu,.crush-nav__actions .nav-reserve{min-height:38px;padding:.68rem .86rem;font-size:.65rem}
.crush-nav__actions .nav-phone{background:var(--cabernet);color:#fff;border:0}.crush-nav__actions .nav-menu{background:var(--paper);color:var(--charcoal);border-left:1px solid rgba(247,243,236,.58)}.crush-nav__actions .nav-menu:hover,.crush-nav__actions .nav-menu:focus-visible{background:#fff;color:var(--cabernet)}
.crush-nav__actions .nav-menu{position:relative;isolation:isolate;overflow:hidden}
.crush-nav__actions .nav-menu::after{content:"";position:absolute;z-index:0;inset:0;background:linear-gradient(108deg,transparent 35%,rgba(199,164,106,.32) 48%,rgba(255,255,255,.72) 50%,rgba(199,164,106,.32) 52%,transparent 65%);transform:translateX(-140%);animation:menu-attention-shimmer 18s ease-in-out infinite;pointer-events:none}
@keyframes menu-attention-shimmer{0%,36%{transform:translateX(-140%)}48%{transform:translateX(140%)}49%,100%{transform:translateX(140%)}}
@media(prefers-reduced-motion:reduce){.crush-nav__actions .nav-menu::after{animation:none}}
.crush-nav__current,.crush-nav__toggle,.crush-nav__panel{display:none}
.crush-nav__dock{display:none}

@media(max-width:900px){
  .crush-nav{min-height:72px;width:100%}
  .crush-nav__bar{min-height:72px;padding:8px 12px;gap:10px}
  .crush-nav__logo{top:4px;left:12px;width:84px;height:84px;transform:none}
  .crush-nav.is-scrolled .crush-nav__logo{top:11px;width:54px;height:54px}
  .crush-nav__desktop,.crush-nav__actions{display:none}
  .crush-nav__current{display:flex;min-width:0;margin-left:auto;flex-direction:column;line-height:1.1}
.crush-nav__current span{color:#e1bd70;font-size:.58rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase}
  .crush-nav__current strong{max-width:40vw;overflow:hidden;color:#fff;font-size:.74rem;font-weight:700;letter-spacing:.04em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}
  .crush-nav__toggle{display:grid;place-items:center;flex:none;width:50px;min-height:48px;padding:0;border:1px solid rgba(247,243,236,.58);background:transparent;color:var(--champagne);font:400 1.45rem/1 var(--serif);cursor:pointer}.crush-nav__toggle::before{content:"+"}.crush-nav.is-open .crush-nav__toggle::before{content:"−"}
  .crush-nav__panel{position:absolute;top:100%;left:0;right:0;width:auto;display:none;max-height:calc(100dvh - 72px);overflow:auto;background:var(--charcoal);border-top:1px solid rgba(247,243,236,.18);box-shadow:0 20px 36px rgba(0,0,0,.34)}.crush-nav.is-open .crush-nav__panel{display:block}
  .crush-nav__panel nav{width:min(700px,100%);margin:auto;padding:10px 12px 20px;display:grid}.crush-nav__panel a{min-height:52px;padding:13px 14px;display:flex;align-items:center;gap:12px;color:#eee8e1;border-bottom:1px solid rgba(247,243,236,.12);text-decoration:none;font-size:.9rem;font-weight:650}.crush-nav__panel a span{color:var(--champagne);font-size:.68rem;font-weight:800}
  .crush-nav__panel .crush-nav__panel-reserve{margin-top:12px;justify-content:center;background:var(--champagne);color:var(--cabernet);border:1px solid var(--champagne);font-size:.76rem;letter-spacing:.1em;text-transform:uppercase}.crush-nav__panel .crush-nav__panel-reserve span{color:var(--cabernet)}
}

/* The compact dock is the complete practical-action group for tablets and
   phones. Keeping it through the mid-width header range prevents the phone
   action from disappearing when the top navigation is compressed. */
@media(max-width:1240px){
  .restaurant-page .crush-nav__actions{display:none}
  body{padding-bottom:calc(86px + env(safe-area-inset-bottom))}
  .crush-nav__dock{position:fixed;z-index:100;left:clamp(14px,5vw,28px);right:clamp(14px,5vw,28px);bottom:max(0px,env(safe-area-inset-bottom));width:auto;min-height:56px;padding:0;display:grid;grid-template-columns:1fr 1.08fr 1fr;overflow:visible;background:var(--paper);border:1px solid var(--charcoal);box-shadow:0 -13px 18px -15px rgba(20,10,12,.48);transform:translateZ(0)}
  .crush-nav__dock a{min-width:0;min-height:54px;padding:6px 5px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;text-decoration:none;border-right:1px solid var(--charcoal);font:650 clamp(.64rem,2.9vw,.78rem)/1.05 var(--sans);letter-spacing:.085em;text-transform:uppercase;white-space:nowrap}.crush-nav__call{background:var(--cabernet);color:#fff;letter-spacing:.045em}.crush-nav__menu{background:var(--paper);color:var(--charcoal)}.crush-nav__directions{border-right:0!important;background:var(--champagne);color:var(--cabernet)}.crush-nav__menu b{margin-top:2px;font:400 .88rem/1 var(--sans)}
}

/* On a burgundy phone dock, the call action needs its own light edge. */
@media(max-width:700px){
  .crush-nav__dock .crush-nav__call{box-shadow:inset 0 0 0 1px rgba(255,255,255,.92)}
}

/* Mobile cover: the room begins immediately beneath the navigation, edge to edge. */
@media(max-width:800px){
  /* A room-first cover: image and invitation read as one composition. */
  .hero-intro{margin-top:0;padding:0 0 2.25rem}
  .hero-intro-aside.hero-invitation-image{
    width:100%;
    min-height:530px;
    height:530px;
    margin:0;
  }
  /* A real bar moment: cocktails and the wine wall take precedence over the room's ceiling. */
  .hero-intro-aside.hero-bar-moment img{top:-24px;bottom:auto;height:calc(100% + 24px);object-position:50% 68%;transform-origin:50% 68%;animation:hero-bar-moment-drift 26s ease-in-out infinite alternate}
  .hero-intro-copy.hero-invitation-card{left:1.65rem;bottom:.625rem;width:calc(100% - 3.3rem);padding:1.45rem 1.65rem;background:rgba(247,243,236,.92);backdrop-filter:blur(8px)}
  .hero-invitation-card .eyebrow{margin-bottom:.8rem}
  .hero-invitation-card .hero-actions{margin-top:1.1rem}

  /* Give the kitchen categories room to read as individual invitations. */
  .menu-edit article{padding-top:3.1rem;padding-bottom:3.1rem}

  /* A closer, less catalog-like photo edit on small screens. */
  .gallery-section{padding:6.15rem 1rem}
  .crush-gallery-heading{padding:0 .5rem;margin-bottom:3.5rem}
  .crush-gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-count:auto;column-width:auto;gap:1rem}
  .crush-gallery-grid .gallery-image{margin:0;break-inside:auto;overflow:hidden}
  .crush-gallery-grid .gallery-image img{width:100%;height:100%;object-fit:cover}
  .crush-gallery-grid .gallery-image:nth-child(1),.crush-gallery-grid .gallery-image:nth-child(4){aspect-ratio:4/5}
  .crush-gallery-grid .gallery-image:nth-child(2),.crush-gallery-grid .gallery-image:nth-child(5){aspect-ratio:5/4}
  .crush-gallery-grid .gallery-image:nth-child(3),.crush-gallery-grid .gallery-image:nth-child(6){aspect-ratio:1/1}
  .crush-gallery-grid .gallery-image:nth-child(n+7){display:none}

  .positioning,.kitchen-section,.proof-section,.instagram-section{padding-top:6.15rem;padding-bottom:6.15rem}
  .experience-copy,.story-copy,.visit-copy,.visit-action{padding-top:6.15rem;padding-bottom:6.15rem}

  /* A quieter editorial measure lets the photography carry more of the page. */
  .positioning-statement p,.experience-copy p,.kitchen-heading p:last-child,.story-copy p,.visit-copy>p{max-width:34ch}
  .positioning h2,.experience-copy h2,.wine-intro h2,.kitchen-heading h2,.story-copy h2,.visit-copy h2{margin-bottom:1.75rem}
  .hero-intro .hero-invitation-card h1{font-size:clamp(2.45rem,9.5vw,3rem);line-height:1.08}

  /* One full-bleed pause keeps the cream editorial run from becoming uniform. */
  .experience-photo{min-height:32rem}
  .experience-photo img{object-position:center 56%}

  /* A featured room image leads the gallery; supporting details follow beneath it. */
  .crush-gallery-grid .gallery-image:nth-child(2){order:-1;grid-column:1/-1;aspect-ratio:16/10}
  .crush-gallery-grid .gallery-image:nth-child(6){display:none}

  /* The menu reads as a sequence of small editorial chapters, not a long list. */
  .kitchen-heading p:last-child{font-size:.96rem;line-height:1.65}
  .menu-edit article{padding:2.55rem 1.5rem 2.35rem}
  .menu-edit .menu-category-title{font-size:.85rem;font-weight:700;letter-spacing:.14em}
  .menu-edit h3{font-size:clamp(1.95rem,7.8vw,2.18rem);margin:.5rem 0 .72rem}
  .menu-edit p{max-width:34ch;font-size:.95rem;line-height:1.55}

  /* Let the photographic payoff occupy more of the handset without changing its order. */
  .crush-gallery{padding-left:.5rem;padding-right:.5rem}
  .crush-gallery-heading{padding-left:1rem;padding-right:1rem}
  .crush-gallery-grid{gap:.85rem}

  /* Keep the understated text links easy to use at thumb-scroll speed. */
  .section-action,.visit-actions a,.footer-links a{min-height:44px;display:inline-flex;align-items:center}
}

@keyframes hero-bar-moment-drift{from{transform:scale(1)}to{transform:scale(1.035)}}
@media(prefers-reduced-motion:reduce){.hero-intro-aside.hero-invitation-image img{animation:none;transform:none}}

/* Mobile navigation: maintain the intended logo overhang without crowding narrow handsets. */
@media(max-width:900px){
  .crush-nav{position:sticky!important;top:0;left:auto;right:auto;width:100%;min-height:76px}
  .crush-nav__bar{min-height:76px}
  .crush-nav__bar{padding:8px 12px 8px 116px}
  .crush-nav__logo{top:2px;left:12px;width:96px;height:96px}
  .crush-nav.is-scrolled .crush-nav__logo{top:11px;width:54px;height:54px}
  .crush-nav__current{max-width:calc(100vw - 178px);margin-left:auto}
  .crush-nav__current strong{max-width:100%}
  .crush-nav__toggle{width:48px;min-height:48px}
}
@media(max-width:360px){
  .crush-nav__bar{padding-left:104px}
  .crush-nav__logo{width:86px;height:86px}
  .crush-nav.is-scrolled .crush-nav__logo{top:13px;width:50px;height:50px}
  .crush-nav__current{max-width:calc(100vw - 166px)}
}


/* FINAL MOBILE TYPOGRAPHY SAFETY — PM QA lesson applied to Crush */
@media (max-width: 680px) {
  h1, h2, h3, h4, h1 span, h2 span, h3 span, h4 span, h1 em, h2 em, h3 em, h4 em,
  .headline-lock, .headline-lock span, .headline-lock em {
    white-space: normal !important;
    max-width: 100%;
    overflow-wrap: normal;
    word-break: normal;
  }
  h1, h2, .headline-lock { text-wrap: balance; }
}

/* Final freeze QA: preserve the footer's decorative tagline visually without
   duplicating meaningful text in the DOM/accessibility tree. */
.footer-tagline-decorative::before{
  content:"Wine, food, and good company — right in downtown Sandusky.";
  white-space:normal;
}

/* 2026-08-13 final concept-site polish: hero/nav seam + wine composition */
/* Header is sticky and remains in document flow, so the hero should start at its bottom edge. */
.hero-intro{padding-top:0}
.hero-intro-aside.hero-invitation-image{height:calc(clamp(720px,84vh,960px) - 6rem)}

/* Treat the wine feature as one editorial statement rather than three competing columns. */
.wine-details .wine-lead{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:minmax(0,1.55fr) auto;
  gap:clamp(2rem,5vw,5rem);
  align-items:center;
  padding:1.75rem 0 2.35rem;
  border-top:1px solid rgba(255,255,255,.22);
  border-bottom:1px solid rgba(255,255,255,.22);
}
.wine-details .wine-lead>div{max-width:520px}
.wine-details .wine-lead h3{margin:0 0 .7rem;font-size:clamp(2rem,2.5vw,2.8rem)}
.wine-details .wine-lead>div>p{max-width:430px}
.wine-details .wine-lead>.eyebrow{display:none}
.wine-details>article:not(.wine-lead){padding-top:1.5rem}

@media(max-width:800px){
  .hero-intro{padding-top:0}
  .hero-intro-aside.hero-invitation-image{height:560px}
  .wine-details .wine-lead{grid-template-columns:1fr;gap:1.35rem;padding:1.5rem 0 2rem}
}

/* Golden-hour exterior cover test: keep the sign and patio clear of the editorial card. */
.hero-intro-aside.hero-patio-moment img{
  object-position:50% 40%;
  transform-origin:50% 40%;
  animation:hero-patio-drift 26s ease-in-out infinite alternate;
}

/* The card shifts toward the street side at desktop widths so the sign and patio remain legible. */
@media(min-width:801px){
  .hero-intro-copy.hero-invitation-card{
    left:auto;
    right:clamp(2.5rem,6vw,7rem);
  }
}

/* At wide desktop scale, retain more of the warm sky and the depth toward the water. */
@media(min-width:1441px){
  .hero-intro-aside.hero-patio-moment img{
    object-position:50% 38%;
    transform-origin:50% 38%;
  }
}

/* A tablet crop keeps the storefront, sign, and patio in the same read. */
@media(min-width:801px) and (max-width:1100px){
  .hero-intro-aside.hero-patio-moment img{
    object-position:48% 42%;
    transform-origin:48% 42%;
  }
}

/* Mobile favors the sign and storefront over the full streetscape. */
@media(max-width:800px){
  .hero-intro-aside.hero-patio-moment img{
    top:0;
    bottom:auto;
    height:100%;
    object-position:31% 52%;
    transform-origin:31% 52%;
    animation-name:hero-patio-drift;
  }
}

@keyframes hero-patio-drift{from{transform:scale(1)}to{transform:scale(1.025)}}
@media(prefers-reduced-motion:reduce){.hero-intro-aside.hero-patio-moment img{animation:none;transform:none}}

/* C-MARK MICRO-IDENTITY */
.section-divider--cmark{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1.35rem;width:min(88%,1440px);margin:clamp(3.75rem,7vw,6rem) auto}
.section-divider--cmark span{display:block;height:1px;background:rgba(69,31,35,.18)}
.section-divider--cmark img{display:block;width:clamp(58px,4.75vw,78px);height:auto}
.footer-site-credit{display:inline-block;margin-left:1.25rem;color:inherit;text-decoration:none;opacity:.78;transition:opacity .2s ease}
.footer-site-credit:hover,.footer-site-credit:focus-visible{opacity:1;text-decoration:underline}
@media(max-width:700px){.section-divider--cmark{gap:.8rem;margin:3rem auto;width:90%}.section-divider--cmark img{width:54px}.footer-note{gap:.65rem;flex-wrap:wrap}.footer-site-credit{margin-left:0}}

/* RESTAURANT BORDERLINE QA
   Keep frames deliberate and prevent internal rules from reading as crosshairs. */

/* Four-up value cards: continuous outer frame, inset internal rules. */
@media (min-width:801px){
  .value-grid{
    position:relative;
    border:1px solid var(--line)!important;
    border-top:1px solid var(--line)!important;
    border-left:1px solid var(--line)!important;
  }
  .value-grid article{position:relative;border:0!important}
  .value-grid article:nth-child(even)::before{
    content:"";position:absolute;left:0;top:1rem;bottom:1rem;width:1px;background:var(--line)
  }
  .value-grid article:nth-child(n+3)::after{
    content:"";position:absolute;left:1rem;right:1rem;top:0;height:1px;background:var(--line)
  }
}

/* Party-size selector: keep the 4-column mobile grid clearly segmented,
   including the intentionally empty eighth cell. Inset rules stay visible
   over selected-state backgrounds without changing the control geometry. */
@media (max-width:800px){
  .party-buttons{position:relative}
  .party-buttons::after{
    content:"";position:absolute;left:0;right:0;top:50%;height:1px;
    background:rgba(255,255,255,.13);pointer-events:none;z-index:2
  }
  .party-buttons button{border-left:0!important;border-top:0!important;position:relative}
  .party-buttons button:not(:nth-child(4n+1)){
    box-shadow:inset 1px 0 0 rgba(255,255,255,.13)
  }
}

/* The wine feature already has its own top/bottom frame; don't double-rule child cards. */
.wine-details .wine-lead + article{border-top:0}

/* Tiny decorative divider uses the simplified C mark and uninterrupted inset rules. */
.section-divider--cmark span{min-width:0}
.section-divider--cmark img{flex:none}

/* Footer rule and action underlines should not visually collide at narrow widths. */
@media(max-width:700px){
  .footer-note{align-items:flex-start}
  .footer-site-credit{padding-bottom:.2rem}
}

/* WINE SECTION V2 — scoped so legacy wine-grid rules cannot squeeze the feature. */
.wine-section .wine-details-v2{
  display:grid!important;
  grid-template-columns:minmax(360px,1.08fr) minmax(300px,.92fr)!important;
  gap:clamp(3rem,5vw,5.5rem)!important;
  align-items:start!important;
}
.wine-section .wine-details-v2 .wine-feature-v2{
  display:block!important;
  min-width:0!important;
  padding:clamp(1.8rem,3vw,3rem) 0!important;
  border-top:1px solid rgba(255,255,255,.2)!important;
}
.wine-section .wine-feature-v2 h3{
  width:auto!important;max-width:10ch!important;margin:.7rem 0 1rem!important;
  font:400 clamp(2.7rem,3.8vw,4.7rem)/.96 var(--serif)!important;
  letter-spacing:-.02em!important;
}
.wine-section .wine-feature-v2>p:not(.eyebrow){max-width:34rem!important;line-height:1.7!important}
.wine-section .pour-list-v2{display:grid!important;min-width:0!important}
.wine-section .pour-list-v2 article{
  display:block!important;padding:1.35rem 0 1.55rem!important;margin:0!important;
  border:0!important;border-top:1px solid rgba(255,255,255,.18)!important;
}
.wine-section .pour-list-v2 article:last-child{border-bottom:1px solid rgba(255,255,255,.18)!important}
.wine-section .pour-list-v2 h3{margin:.5rem 0 .55rem!important;max-width:18ch!important;font-size:clamp(1.55rem,1.8vw,2rem)!important}
.wine-section .pour-list-v2 p{max-width:30rem!important}

/* C-mark divider: guarantee both rules render symmetrically. */
.section-divider--cmark{
  display:grid!important;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;
  align-items:center!important;column-gap:1.35rem!important;
}
.section-divider--cmark span{
  display:block!important;width:100%!important;min-width:0!important;height:1px!important;
  background:rgba(69,31,35,.18)!important;
}
.section-divider--cmark img{position:relative;z-index:1}

@media(max-width:800px){
  .wine-section .wine-details-v2{grid-template-columns:1fr!important;gap:2rem!important}
  .wine-section .wine-feature-v2 h3{font-size:clamp(2.65rem,12vw,4rem)!important;max-width:10ch!important}
  .wine-section .pour-list-v2 article{padding:1.35rem 0 1.5rem!important}
  .section-divider--cmark{column-gap:.85rem!important}
}

/* NAV LOGO — larger and stable at all scroll positions */
.site-header .brand img,
.site-header .site-logo img,
.site-header .nav-logo img,
.site-header .brand-mark,
.site-header .logo img,
header .brand img,
header .site-logo img,
header .nav-logo img{
  width:78px!important;
  height:78px!important;
  max-width:none!important;
  transform:none!important;
  scale:1!important;
  transition:opacity .2s ease!important;
}

/* Do not shrink the mark when the sticky header enters its scrolled state. */
.site-header.is-scrolled .brand img,
.site-header.scrolled .brand img,
.site-header.is-scrolled .site-logo img,
.site-header.scrolled .site-logo img,
.site-header.is-scrolled .nav-logo img,
.site-header.scrolled .nav-logo img,
header.is-scrolled .brand img,
header.scrolled .brand img{
  width:78px!important;
  height:78px!important;
  transform:none!important;
  scale:1!important;
}

/* Give the larger mark enough vertical room without making the nav feel oversized. */
@media (min-width:801px){
  .site-header,
  .site-header .nav-inner,
  header .nav-inner{
    min-height:88px;
  }
}
@media (max-width:800px){
  .site-header .brand img,
  .site-header .site-logo img,
  .site-header .nav-logo img,
  .site-header .brand-mark,
  .site-header .logo img,
  header .brand img,
  header .site-logo img,
  header .nav-logo img{
    width:64px!important;
    height:64px!important;
  }
  .site-header.is-scrolled .brand img,
  .site-header.scrolled .brand img,
  .site-header.is-scrolled .site-logo img,
  .site-header.scrolled .site-logo img,
  header.is-scrolled .brand img,
  header.scrolled .brand img{
    width:64px!important;
    height:64px!important;
  }
}

/* NAV LOGO FINAL: target the actual Crush navigation selectors.
   The mark remains a stable brand anchor instead of collapsing after scroll. */
.crush-nav__logo,
.crush-nav.is-scrolled .crush-nav__logo{
  top:4px!important;
  width:92px!important;
  height:92px!important;
  transform:none!important;
  transition:none!important;
}
.crush-nav__logo img{width:100%!important;height:100%!important}

@media (max-width:800px){
  .crush-nav__bar{padding-left:108px!important}
  .crush-nav__logo,
  .crush-nav.is-scrolled .crush-nav__logo{
    top:4px!important;
    left:12px!important;
    width:90px!important;
    height:90px!important;
  }
  .crush-nav__current{max-width:calc(100vw - 170px)!important}
}
@media (max-width:390px){
  .crush-nav__bar{padding-left:96px!important}
  .crush-nav__logo,
  .crush-nav.is-scrolled .crush-nav__logo{
    top:4px!important;
    width:78px!important;
    height:78px!important;
  }
}

/* FOOTER FINAL COMPOSITION — logo/tagline are one brand block, not separate rows. */
.footer{
  grid-template-columns:minmax(420px,1.45fr) minmax(250px,.7fr) minmax(280px,.85fr)!important;
  column-gap:clamp(3rem,6vw,7rem)!important;
  row-gap:3.25rem!important;
  align-items:start!important;
}
.footer .footer-brand{
  display:grid!important;
  grid-template-columns:106px minmax(0,1fr)!important;
  align-items:center!important;
  justify-content:start!important;
  gap:1.6rem!important;
  flex-wrap:nowrap!important;
}
.footer-brand .logo{width:106px!important;height:106px!important}
.footer-brand .footer-tagline-decorative{margin:0!important;max-width:none!important;font-size:clamp(1.2rem,1.45vw,1.45rem)!important}
.footer-tagline-decorative::before{
  content:"Wine, food, and good company\A in downtown Sandusky.";
  white-space:pre-line!important;
}
.footer .footer-contact{
  display:grid!important;
  grid-template-columns:auto 1fr!important;
  justify-content:start!important;
  align-items:start!important;
  gap:.3rem 1.15rem!important;
}
.footer .footer-links{
  display:grid!important;
  grid-template-columns:repeat(2,max-content)!important;
  justify-content:start!important;
  gap:.45rem 1.6rem!important;
}
.footer .footer-note{
  grid-column:1/-1!important;
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  display:flex!important;
  justify-content:space-between!important;
  align-items:center!important;
  padding-top:1.25rem!important;
}
@media(max-width:1200px){
  .footer{grid-template-columns:1fr 1fr!important}
  .footer-brand{grid-column:1/-1}
  .footer-links{grid-column:auto!important}
}
@media(max-width:700px){
  .footer{grid-template-columns:1fr!important;gap:2.25rem!important;padding-top:4.5rem!important}
  .footer .footer-brand{grid-template-columns:82px minmax(0,1fr)!important;gap:1.2rem!important}
  .footer-brand .logo{width:82px!important;height:82px!important}
  .footer-brand .footer-tagline-decorative{font-size:1.2rem!important}
  .footer .footer-contact{grid-template-columns:1fr!important;gap:.45rem!important}
  .footer .footer-links{grid-template-columns:1fr 1fr!important}
  .footer .footer-note{display:block!important}
}

/* FOOTER EXPLORE — deliberate third column */
.footer .footer-explore{justify-self:start!important;align-self:start!important;min-width:190px!important}
.footer .footer-explore__label{margin:0 0 1rem!important;color:#76562f!important;font:700 .72rem/1 var(--sans)!important;letter-spacing:.22em!important;text-transform:uppercase!important}
.footer .footer-explore .footer-links{display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;gap:.72rem!important}
.footer .footer-explore .footer-links a{display:inline-block!important;font-size:.84rem!important;line-height:1.25!important;letter-spacing:.14em!important;text-transform:uppercase!important;opacity:.88!important;padding:.08rem 0!important}
.footer .footer-explore .footer-links a:hover{opacity:1!important}
@media(max-width:700px){.footer .footer-explore{min-width:0!important}.footer .footer-explore .footer-links{gap:.8rem!important}.footer .footer-explore .footer-links a{font-size:.9rem!important}}

/* C-MARK DIVIDER FINAL — exactly one symmetrical rule on each side. */
.section-divider,
.section-divider--cmark{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;
  align-items:center!important;
  gap:clamp(.9rem,2vw,1.5rem)!important;
}
.section-divider::before,
.section-divider::after,
.section-divider--cmark::before,
.section-divider--cmark::after{
  content:none!important;
  display:none!important;
}
.section-divider--cmark>span{
  display:block!important;
  width:100%!important;
  height:1px!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  background:rgba(69,31,35,.18)!important;
  border:0!important;
}
.section-divider--cmark>img{
  display:block!important;
  width:clamp(58px,4.75vw,78px)!important;
  height:auto!important;
  margin:0!important;
}
@media(max-width:700px){
  .section-divider--cmark>img{width:54px!important}
}

/* ==========================================================
   FINAL RESTAURANT POLISH — composition, rhythm, mobile QA
   ========================================================== */

/* Keep cream editorial sections from feeling excessively disconnected. */
#food,
.food-section,
.kitchen-section{
  scroll-margin-top:90px;
}
.food-section .section-inner,
.kitchen-section .section-inner{
  padding-top:clamp(4.5rem,6.5vw,7rem)!important;
  padding-bottom:clamp(4.5rem,6.5vw,7rem)!important;
}

/* Give the reservation module enough visual weight to balance its whitespace. */
#reserve .reservation-layout,
.reservation-section .reservation-layout,
.reserve-section .reservation-layout{
  grid-template-columns:minmax(300px,.78fr) minmax(560px,1.22fr)!important;
  gap:clamp(3rem,6vw,7rem)!important;
  align-items:start!important;
}
#reserve .reservation-panel,
.reservation-section .reservation-panel,
.reserve-section .reservation-panel,
#reserve form{
  width:100%!important;
  max-width:none!important;
}
#reserve .reservation-copy,
.reservation-section .reservation-copy{
  max-width:34rem!important;
}

/* Borders should terminate cleanly at their component edges. */
.restaurant-page .card,
.restaurant-page article,
.restaurant-page .detail-card{
  background-clip:padding-box;
}
.restaurant-page hr,
.restaurant-page .rule{
  margin-left:0;
  margin-right:0;
}

/* Prevent editorial headlines from creating accidental horizontal overflow. */
.restaurant-page h1,
.restaurant-page h2,
.restaurant-page h3,
.restaurant-page .display,
.restaurant-page .section-title{
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}

/* Make buttons/CTAs feel consistently seated rather than floating. */
.restaurant-page .section-action,
.restaurant-page .button,
.restaurant-page .btn{
  align-self:flex-start;
}

/* Gallery-to-reservation divider remains a single symmetric rule on each side. */
.section-divider--cmark{
  width:min(88%,1440px)!important;
  margin:clamp(3.5rem,6vw,5.75rem) auto!important;
}
.section-divider--cmark>span{
  height:1px!important;
  background:rgba(69,31,35,.18)!important;
}

/* Desktop footer columns get a little more deliberate breathing room. */
@media(min-width:1001px){
  .footer{
    padding-top:clamp(4.5rem,6vw,6.5rem)!important;
    padding-bottom:2.5rem!important;
  }
}

/* Tablet: reservation becomes balanced before it becomes stacked. */
@media(max-width:1050px){
  #reserve .reservation-layout,
  .reservation-section .reservation-layout,
  .reserve-section .reservation-layout{
    grid-template-columns:minmax(240px,.72fr) minmax(430px,1.28fr)!important;
    gap:2.5rem!important;
  }
}

/* Mobile hardening. */
@media(max-width:800px){
  .food-section .section-inner,
  .kitchen-section .section-inner{
    padding-top:4rem!important;
    padding-bottom:4rem!important;
  }

  #reserve .reservation-layout,
  .reservation-section .reservation-layout,
  .reserve-section .reservation-layout{
    grid-template-columns:1fr!important;
    gap:2.25rem!important;
  }

  #reserve .reservation-panel,
  .reservation-section .reservation-panel,
  .reserve-section .reservation-panel{
    width:100%!important;
    min-width:0!important;
  }

  .restaurant-page input,
  .restaurant-page select,
  .restaurant-page textarea,
  .restaurant-page button{
    max-width:100%;
  }

  .section-divider--cmark{
    width:calc(100% - 2rem)!important;
    margin:3rem auto!important;
  }
}

/* Pixel-7 / narrow-phone stress protection. */
@media(max-width:430px){
  .restaurant-page h1,
  .restaurant-page h2,
  .restaurant-page h3{
    max-width:100%!important;
  }

  .wine-section .wine-feature-v2 h3{
    font-size:clamp(2.35rem,11vw,3.25rem)!important;
  }

  .footer .footer-brand{
    grid-template-columns:72px minmax(0,1fr)!important;
  }
  .footer-brand .logo{
    width:72px!important;
    height:72px!important;
  }
  .footer-tagline-decorative::before{
    content:"Wine, food, and good company\A in downtown Sandusky."!important;
  }
}

/* Very narrow device fallback. */
@media(max-width:360px){
  .restaurant-page{
    overflow-x:clip;
  }
  .footer .footer-brand{
    grid-template-columns:1fr!important;
  }
  .footer-brand .footer-tagline-decorative{
    max-width:20ch!important;
  }
}

@media(max-width:430px){
  .restaurant-page .positioning h2{
    font-size:clamp(2.05rem,9.2vw,2.5rem);
    line-height:1.04;
  }
}

/* FINAL SCOPE STRIP BREATHING FIX
   Make "No surprise expansion" a full-width closing statement, not a cramped cell. */
@media (min-width: 901px) {
  .proposal-page :is(div,section,aside):has(> *:first-child):has(*[class*="eyebrow"]) {
    /* no global layout change; exact component override follows below */
  }
}

/* Exact component: the dark scope-expansion band immediately below the five scope columns. */
.scope-expansion,
.scope-note,
.scope-band,
.no-surprise-expansion {
  box-sizing: border-box;
}

/* Existing build uses the component's own class; these declarations are intentionally
   duplicated across likely legacy names so prior CSS cannot re-cramp the row. */
@media (min-width: 901px) {
  .scope-expansion,
  .scope-note,
  .scope-band,
  .no-surprise-expansion {
    display: grid !important;
    grid-template-columns: max-content minmax(0, 1fr) !important;
    align-items: center !important;
    column-gap: clamp(1.75rem, 3vw, 3.5rem) !important;
    width: 100% !important;
    max-width: none !important;
    padding: 1.8rem clamp(2.5rem, 4vw, 4.5rem) !important;
  }
  .scope-expansion > :first-child,
  .scope-note > :first-child,
  .scope-band > :first-child,
  .no-surprise-expansion > :first-child {
    width: max-content !important;
    max-width: none !important;
    margin: 0 !important;
    white-space: nowrap !important;
  }
  .scope-expansion > :last-child,
  .scope-note > :last-child,
  .scope-band > :last-child,
  .no-surprise-expansion > :last-child {
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
  }
}

@media (max-width: 900px) {
  .scope-expansion,
  .scope-note,
  .scope-band,
  .no-surprise-expansion {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: .8rem !important;
    padding: 1.6rem 1.4rem !important;
  }
  .scope-expansion > *,
  .scope-note > *,
  .scope-band > *,
  .no-surprise-expansion > * {
    margin: 0 !important;
    max-width: none !important;
  }
}

@media (min-width:901px){
  .scope-promise{
    display:grid!important;
    grid-template-columns:max-content minmax(0,1fr)!important;
    align-items:center!important;
    column-gap:clamp(1.75rem,3vw,3.5rem)!important;
    width:100%!important;
    max-width:none!important;
    padding:1.8rem clamp(2.5rem,4vw,4.5rem)!important;
  }
  .scope-promise>:first-child{width:max-content!important;max-width:none!important;margin:0!important;white-space:nowrap!important;}
  .scope-promise>:last-child{width:auto!important;max-width:none!important;min-width:0!important;margin:0!important;}
}
@media (max-width:900px){
  .scope-promise{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:.8rem!important;padding:1.6rem 1.4rem!important;}
  .scope-promise>*{margin:0!important;max-width:none!important;}
}

/* RESERVATION QUESTIONS — plain-English operating FAQ */
.reservation-questions{margin:clamp(3rem,5vw,5rem) 0 2.25rem}
.reservation-questions__intro{max-width:780px;margin-bottom:2rem}
.reservation-questions__intro h3{margin:.55rem 0 .8rem;font-size:clamp(2rem,3.2vw,3.35rem);line-height:1}
.reservation-questions__intro>p:last-child{max-width:680px}
.reservation-questions__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line)}
.reservation-questions__grid article{padding:1.45rem 1.6rem 1.55rem 0;border-bottom:1px solid var(--line)}
.reservation-questions__grid article:nth-child(even){padding-left:1.6rem;padding-right:0;border-left:1px solid var(--line)}
.reservation-questions__grid strong{display:block;margin-bottom:.55rem;font-size:1rem;line-height:1.35}
.reservation-questions__grid p{margin:0;line-height:1.65}
.reservation-questions__note{margin-top:1.6rem;padding:1.35rem 1.5rem;border:1px solid var(--line)}
.reservation-questions__note strong{display:block;margin-bottom:.45rem}
.reservation-questions__note p{margin:0;max-width:1000px}
@media(max-width:760px){
 .reservation-questions__grid{grid-template-columns:1fr}
 .reservation-questions__grid article,.reservation-questions__grid article:nth-child(even){padding:1.25rem 0;border-left:0}
}

/* RESERVATION FAQ — give the opening hierarchy more breathing room */
.reservation-questions{
  margin-top:clamp(4.5rem,7vw,7rem) !important;
}
.reservation-questions__intro .eyebrow{
  margin-bottom:1.5rem !important;
}
.reservation-questions__intro h3{
  margin-top:0 !important;
  margin-bottom:1.35rem !important;
}
.reservation-questions__intro > p:last-child{
  margin-top:0 !important;
  line-height:1.75 !important;
}
.reservation-questions__grid{
  margin-top:2.4rem !important;
}
@media(max-width:760px){
  .reservation-questions{margin-top:3.5rem !important}
  .reservation-questions__intro .eyebrow{margin-bottom:1.15rem !important}
  .reservation-questions__grid{margin-top:1.8rem !important}
}

/* RESERVATION FAQ ACCORDION — compact like the main FAQ */
.reservation-questions__accordion{
  display:block !important;
  border-top:1px solid var(--line);
  margin-top:2.4rem !important;
}
.reservation-question{
  border-bottom:1px solid var(--line);
}
.reservation-question summary{
  list-style:none;
  cursor:pointer;
  display:grid;
  grid-template-columns:minmax(0,1fr) 2.25rem;
  gap:1.25rem;
  align-items:center;
  padding:1.2rem 0;
  font-weight:700;
}
.reservation-question summary::-webkit-details-marker{display:none}
.reservation-question summary i{
  width:2.25rem;height:2.25rem;
  display:grid;place-items:center;
  border:1px solid currentColor;
  font-style:normal;font-weight:400;
  transition:transform .2s ease;
}
.reservation-question[open] summary i{transform:rotate(45deg)}
.reservation-question__answer{
  max-width:760px;
  padding:0 3.5rem 1.35rem 0;
}
.reservation-question__answer p{margin:0;line-height:1.7}
.reservation-questions__grid article{border:0}
@media(max-width:760px){
 .reservation-questions__accordion{margin-top:1.8rem !important}
 .reservation-question summary{padding:1.05rem 0;grid-template-columns:minmax(0,1fr) 2rem}
 .reservation-question summary i{width:2rem;height:2rem}
 .reservation-question__answer{padding:0 0 1.2rem}
}

/* RESERVATION FAQ — make each accordion unmistakably interactive */
.reservation-questions__accordion{
  border-top:0 !important;
  display:grid !important;
  gap:.75rem !important;
}
.reservation-question{
  border:1px solid rgba(230,198,145,.38) !important;
  background:rgba(255,255,255,.035);
}
.reservation-question summary{
  padding:1.15rem 1.25rem !important;
  grid-template-columns:minmax(0,1fr) 2.5rem !important;
  min-height:4.75rem;
  transition:background .18s ease,border-color .18s ease;
}
.reservation-question summary:hover{
  background:rgba(255,255,255,.055);
}
.reservation-question summary span{
  font-size:1.02rem;
  line-height:1.35;
}
.reservation-question summary i{
  width:2.35rem !important;
  height:2.35rem !important;
  border:1px solid rgba(230,198,145,.72) !important;
  color:#e2b966;
  font-size:1.35rem;
  flex:none;
}
.reservation-question[open]{
  background:rgba(255,255,255,.055);
  border-color:rgba(230,198,145,.62) !important;
}
.reservation-question[open] summary{
  border-bottom:1px solid rgba(230,198,145,.24);
}
.reservation-question__answer{
  padding:1.15rem 5rem 1.4rem 1.25rem !important;
  max-width:860px !important;
}
@media(max-width:760px){
 .reservation-questions__accordion{gap:.6rem !important}
 .reservation-question summary{
   min-height:4.25rem;
   padding:1rem !important;
   grid-template-columns:minmax(0,1fr) 2.25rem !important;
 }
 .reservation-question summary i{width:2.15rem !important;height:2.15rem !important}
 .reservation-question__answer{padding:1rem !important}
}

/* RESERVATION QUESTIONS — intentionally reuse the proposal's established FAQ experience */
.reservation-questions__accordion{
  display:grid !important;
  margin-top:2.4rem !important;
  gap:0 !important;
  border:0 !important;
}
.reservation-questions__accordion .reservation-question{
  background:transparent !important;
  border:0 !important;
}
.reservation-questions__accordion .reservation-question summary{
  display:list-item !important;
  min-height:0 !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  font-weight:inherit !important;
}
.reservation-questions__accordion .reservation-question summary:hover{
  background:transparent !important;
}
.reservation-questions__accordion .reservation-question[open]{
  background:transparent !important;
  border-color:transparent !important;
}
.reservation-questions__accordion .reservation-question[open] summary{
  border-bottom:0 !important;
}
.reservation-questions__accordion .reservation-question > p{
  max-width:none !important;
}
@media(max-width:760px){
 .reservation-questions__accordion{margin-top:1.8rem !important}
}

/* Scope guardrail — extra bottom breathing room for wrapped copy */
.scope-promise{
  padding-bottom:1.6rem !important;
}
@media(max-width:760px){
  .scope-promise{padding-bottom:1.45rem !important;}
}

/* Chef image: preserve the supplied photograph as a wide editorial frame. */
.kitchen-image{
  height:auto;
  aspect-ratio:16 / 9;
}
.kitchen-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
}
@media (max-width: 760px){
  .kitchen-image{
    height:auto;
    aspect-ratio:4 / 3;
  }
}


/* Phase 1B — tighten the opening editorial sequence */
.positioning{padding-top:7rem;padding-bottom:7rem}
.positioning .large-copy{margin-bottom:3rem}
.experience-copy.wide{padding-top:4.5rem;padding-bottom:2.5rem}
.experience-copy.wide h2{margin-bottom:1rem}
.experience-photo{min-height:560px}
.editorial-strip.compact.hospitality-line{display:block;padding:3.75rem 6vw;background:#fff}
.editorial-strip.compact.hospitality-line blockquote{max-width:26ch;margin:0 auto;font-size:clamp(1.9rem,3vw,3.05rem);text-align:center}
@media(max-width:700px){
  .positioning{padding-top:5rem;padding-bottom:5rem}
  .experience-copy.wide{padding-top:4rem;padding-bottom:2rem}
  .experience-photo{min-height:430px}
  .editorial-strip.compact.hospitality-line{padding:3rem 1.5rem}
  .editorial-strip.compact.hospitality-line blockquote{text-align:left}
}

/* Phase 1C — kitchen proportion + photographic composition */
.kitchen-section{
  padding-top:7rem;
  padding-bottom:5.75rem;
}
.kitchen-heading{
  margin-bottom:2.75rem;
}
.kitchen-image{
  width:min(100%,1280px);
  margin-inline:auto;
  aspect-ratio:2 / 1;
  max-height:520px;
}
.kitchen-image img{
  object-position:center 48%;
}
.menu-edit{
  grid-template-columns:repeat(3,minmax(0,1fr));
  max-width:1120px;
  margin-top:2.75rem;
}
.menu-edit article{
  padding:2rem 2.15rem;
  border-left:1px solid var(--line);
  border-top:1px solid var(--line);
}
.menu-edit article:nth-child(-n+3){border-top:0}
.menu-edit article:nth-child(3n+1){border-left:0}
.menu-edit article:nth-child(3){border-left:1px solid var(--line)}
.menu-edit article:nth-child(4){border-left:0}
.menu-edit h3{
  font-size:1.8rem;
  margin:.65rem 0 .85rem;
}
.menu-edit p{
  font-size:.94rem;
  line-height:1.58;
}
.menu-detail{
  max-width:1120px;
  padding:1.8rem 2.15rem;
}
.menu-detail p{
  font-size:1.28rem;
}
.kitchen-section .section-action{
  margin-top:2.5rem;
}
.editorial-strip.compact.hospitality-line{
  padding-top:3.15rem;
  padding-bottom:3.15rem;
}
.editorial-strip.compact.hospitality-line blockquote{
  position:relative;
  max-width:30ch;
  font-size:clamp(1.75rem,2.45vw,2.6rem);
}
.editorial-strip.compact.hospitality-line blockquote:after{
  content:"";
  display:block;
  width:42px;
  height:1px;
  margin:1.35rem auto 0;
  background:var(--burgundy);
  opacity:.45;
}
@media(max-width:1050px){
  .menu-edit{grid-template-columns:repeat(2,minmax(0,1fr))}
  .menu-edit article:nth-child(n){border-top:1px solid var(--line);border-left:1px solid var(--line)}
  .menu-edit article:nth-child(-n+2){border-top:0}
  .menu-edit article:nth-child(odd){border-left:0}
}
@media(max-width:700px){
  .kitchen-section{padding-top:5rem;padding-bottom:4.5rem}
  .kitchen-heading{margin-bottom:2.25rem}
  .kitchen-image{aspect-ratio:4 / 3;max-height:none}
  .menu-edit{grid-template-columns:1fr;margin-top:2rem}
  .menu-edit article:nth-child(n){border-left:0;border-top:1px solid var(--line);padding:1.75rem 0}
  .menu-edit article:first-child{border-top:0}
  .menu-edit h3{font-size:1.65rem}
  .menu-detail{padding:1.6rem 0;background:transparent;border-left:0;border-right:0}
  .editorial-strip.compact.hospitality-line{padding-top:2.5rem;padding-bottom:2.5rem}
  .editorial-strip.compact.hospitality-line blockquote:after{margin-left:0}
}


/* Phase 1D photo upgrade — high-resolution Crush bar interior */
.experience-photo img{object-position:center 67%}
@media(max-width:700px){.experience-photo img{object-position:center 62%}}

/* Phase 1D — Wine Garden feature */
.gatherings-section .gathering-media img{object-position:center 54%}
@media(max-width:700px){.gatherings-section .gathering-media img{object-position:center center}}

/* Phase 1D closing composition: keep the wine pour clear of the headline. */
@media (min-width: 901px){
  .closing-copy{
    width:min(720px,46vw);
    margin-left:auto;
    padding-left:2rem;
    padding-right:6vw;
  }
  .closing-copy h2{
    max-width:680px;
  }
  .closing-shade{
    background:linear-gradient(90deg,rgba(20,10,12,.42) 0%,rgba(20,10,12,.50) 34%,rgba(20,10,12,.86) 58%,rgba(20,10,12,.94) 100%);
  }
}

/* Phase 1 final polish — make the Wine Garden identity unmistakable. */
.gatherings-section .gathering-copy > .eyebrow{
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.22em;
  text-transform:uppercase;
  margin-bottom:1rem;
}
@media(max-width:700px){
  .gatherings-section .gathering-copy > .eyebrow{
    font-size:.72rem;
    letter-spacing:.18em;
  }
}

/* Phase 2J: unobtrusive bot trap; hidden from guests and assistive tech. */
.form-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}

/* Phase 3A: clear portfolio-concept disclosure. */
.concept-disclosure{margin:18px auto 0;max-width:760px;text-align:center;font-size:11px;line-height:1.5;letter-spacing:.04em;opacity:.68}


/* Reliable custom calendar glyph.
   Chromium's native calendar artwork can ignore CSS filters on Windows.
   Keep the native picker clickable but hide its artwork and draw our own
   high-contrast ivory calendar icon in the same position. */
.booking-fields input[type="date"],
.event-fields input[type="date"] {
  color-scheme: dark;
  padding-right: 3rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%23fff4df' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 10h18'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.9rem center;
  background-size: 18px 18px;
}
.booking-fields input[type="date"]::-webkit-calendar-picker-indicator,
.event-fields input[type="date"]::-webkit-calendar-picker-indicator {
  opacity: 0 !important;
  filter: none !important;
  cursor: pointer;
  width: 22px;
  height: 22px;
}

/* iPad Chrome uses WebKit's native date field. Its picker indicator cannot
   reliably be hidden or repositioned, so do not layer a second custom glyph
   over it. Let the platform control sit within the field normally. */
@media (hover:none) and (pointer:coarse){
  .booking-fields input[type="date"],
  .event-fields input[type="date"] {
    padding-right:.9rem;
    background-image:none;
  }
  .booking-fields input[type="date"]::-webkit-calendar-picker-indicator,
  .event-fields input[type="date"]::-webkit-calendar-picker-indicator {
    opacity:1 !important;
    width:auto;
    height:auto;
  }
}


/* Phase 3D — targeted visual hierarchy refinement */

/* Atmosphere: reduce the oversized text-to-photo gap while keeping the
   editorial pause that separates the opening positioning section. */
.experience-copy.wide{
  padding-top:5.9rem;
  padding-bottom:2.35rem;
}
.experience-copy.wide h2{
  margin-bottom:1rem;
}
.experience-copy.wide p:last-child{
  max-width:720px;
}
.experience-photo{
  min-height:640px;
}

/* Kitchen: give the menu information more authority beneath the chef image. */
.kitchen-heading{
  margin-bottom:2.75rem;
}
.kitchen-image{
  margin-bottom:0;
}
.menu-edit{
  margin-top:2.6rem;
}
.menu-edit article{
  padding-top:2.55rem;
  padding-bottom:2.55rem;
}
.menu-edit .menu-category-title{
  font-size:1.05rem;
}
.menu-edit h3{
  font-size:2.05rem;
  line-height:1.08;
}

/* Gallery: preserve the calm editorial treatment but remove excess empty
   space so photography flows more naturally into the reservation experience. */
.crush-gallery{
  padding-top:6.4rem;
  padding-bottom:4.15rem;
}
.crush-gallery-heading{
  margin-bottom:3.15rem;
}
.crush-gallery-heading h2{
  margin-bottom:1rem;
}
.section-divider--cmark{
  margin-top:0;
  margin-bottom:0;
}

/* Responsive tuning keeps the same hierarchy on narrower screens. */
@media(max-width:700px){
  .experience-copy.wide{
    padding-top:4.75rem;
    padding-bottom:2rem;
  }
  .experience-photo{
    min-height:460px;
  }
  .kitchen-heading{
    margin-bottom:2rem;
  }
  .menu-edit{
    margin-top:1.75rem;
  }
  .menu-edit article{
    padding-top:1.6rem;
    padding-bottom:1.6rem;
  }
  .crush-gallery{
    padding-top:4.75rem;
    padding-bottom:3.35rem;
  }
  .crush-gallery-heading{
    margin-bottom:2.6rem;
  }
}


/* Phase 3E — reservation presence + menu readability */

/* Give the reservation experience more presence without changing its structure. */
.reservation-section{
  padding-top:6.25rem;
  padding-bottom:6.25rem;
}
.reservation-section .reservation-shell,
.reservation-section .reservation-grid,
#visit .reservation-shell,
#visit .reservation-grid{
  gap:4.75rem;
}
.reservation-intro h2,
#visit .reservation-intro h2{
  font-size:clamp(3.7rem,5.2vw,5.65rem);
  line-height:.94;
}
.reservation-intro > p,
#visit .reservation-intro > p{
  max-width:31rem;
  font-size:1.04rem;
  line-height:1.65;
}
.reservation-panel,
#visit .reservation-panel{
  box-shadow:0 20px 50px rgba(39,12,18,.08);
}

/* Improve the scanability of the six menu entries under the chef image. */
.menu-edit article h3,
.menu-edit h3{
  font-size:clamp(1.2rem,1.45vw,1.55rem);
  line-height:1.15;
  margin-bottom:.55rem;
}
.menu-edit article p,
.menu-edit p{
  font-size:.92rem;
  line-height:1.55;
}
.menu-edit .menu-category-title{
  font-size:.78rem;
  letter-spacing:.16em;
  margin-bottom:.65rem;
}
.menu-edit article{
  min-width:0;
}

/* Keep the editorial scale balanced on laptops/tablets. */
@media(max-width:1050px){
  .reservation-section{
    padding-top:5.25rem;
    padding-bottom:5.25rem;
  }
  .reservation-section .reservation-shell,
  .reservation-section .reservation-grid,
  #visit .reservation-shell,
  #visit .reservation-grid{
    gap:3rem;
  }
}

/* Mobile: presence comes from typography and spacing, not oversized controls. */
@media(max-width:700px){
  .reservation-section{
    padding-top:4.35rem;
    padding-bottom:4.35rem;
  }
  .reservation-intro h2,
  #visit .reservation-intro h2{
    font-size:clamp(3rem,14vw,4.25rem);
  }
  .reservation-section .reservation-shell,
  .reservation-section .reservation-grid,
  #visit .reservation-shell,
  #visit .reservation-grid{
    gap:2.5rem;
  }
  .menu-edit article h3,
  .menu-edit h3{
    font-size:1.3rem;
  }
  .menu-edit article p,
  .menu-edit p{
    font-size:.95rem;
  }
}

/* Small-screen resilience and keyboard visibility. */
.skip-link{
  position:fixed;
  z-index:10000;
  top:.75rem;
  left:.75rem;
  padding:.75rem 1rem;
  background:var(--paper);
  color:var(--cabernet);
  font:700 .78rem/1 var(--sans);
  letter-spacing:.08em;
  text-transform:uppercase;
  text-decoration:none;
  transform:translateY(-160%);
  transition:transform .18s ease;
}
.skip-link:focus{transform:translateY(0);outline:2px solid var(--champagne);outline-offset:3px}
:where(a,button,input,select,textarea):focus-visible{
  outline:2px solid var(--champagne);
  outline-offset:3px;
}
@media(max-width:430px){
  h1,h2,h3,h4,h1 span,h2 span,h3 span,h4 span,h1 em,h2 em,h3 em,h4 em{
    overflow-wrap:anywhere;
  }
  .crush-nav__dock a{
    white-space:normal;
    overflow-wrap:anywhere;
  }
}

/* Final homepage polish — removed standalone C divider and tightened gallery-to-reservation transition */
.gallery-section,
.gallery {
  margin-bottom: 0;
}

/* Readability & typography polish — homepage only. Keep display type editorial;
   give guest-facing supporting copy a sturdier sans-serif reading measure. */
.restaurant-page main p:not(.eyebrow):not(.booking-status),
.restaurant-page .form-note,
.restaurant-page .large-party-note,
.restaurant-page .reservation-question > p{
  font-family:var(--sans);
  font-size:1.05rem;
  font-weight:400;
  line-height:1.65;
}
.restaurant-page :is(.hero-intro .hero-copy,.experience-copy p,.positioning-statement p,.kitchen-heading p:last-child,.story-copy p,.visit-copy>p,.table-glass-copy p:last-child,.menu-detail p){
  color:rgba(29,26,25,.86);
}
.restaurant-page :is(.wine-intro p,.wine-details p,.gathering-copy p,.visit-action p,.proof-card p,.booking-panel p){
  color:rgba(255,255,255,.9);
}
.restaurant-page .wine-details p,
.restaurant-page .proof-card p,
.restaurant-page .menu-edit p,
.restaurant-page .visit-essentials>p,
.restaurant-page .visit-essentials .visit-hours{
  font-size:1rem;
  font-weight:400;
  line-height:1.62;
}
.restaurant-page .menu-edit p{color:rgba(29,26,25,.82)}
.restaurant-page .visit-essentials .visit-hours{color:rgba(29,26,25,.7)}
.restaurant-page :is(h1,h2,h3){text-wrap:pretty;hyphens:none}
.restaurant-page :is(h1,h2,h3,h1 span,h2 span,h3 span,h1 em,h2 em,h3 em){overflow-wrap:normal;word-break:normal}
.restaurant-page .crush-nav__desktop a{font-size:.75rem}
.restaurant-page .crush-nav__actions :is(.nav-phone,.nav-menu,.nav-reserve){font-size:.7rem}
.restaurant-page .booking-tab{font-size:.75rem;font-weight:700}
.restaurant-page .booking-status{font-size:.94rem;font-weight:500;line-height:1.55}
.restaurant-page .visit-actions a,.restaurant-page .section-action{font-size:.74rem;font-weight:700}
.restaurant-page .footer-contact p{font-family:var(--sans);font-size:1rem;font-weight:400;line-height:1.65;color:rgba(255,255,255,.78)}
.restaurant-page .footer-links a{font-size:.75rem;font-weight:700;color:rgba(255,255,255,.82)}

/* Wine Garden: dense copy-side veil that feathers into the patio rather than
   dimming the full photograph. */
.restaurant-page .gathering-shade{
  background:
    radial-gradient(ellipse 72% 110% at 0% 50%,rgba(33,10,16,.5) 0%,rgba(33,10,16,0) 72%),
    linear-gradient(90deg,rgba(32,9,15,.96) 0%,rgba(40,12,19,.9) 34%,rgba(49,16,24,.68) 53%,rgba(49,16,24,.28) 72%,rgba(49,16,24,.04) 100%);
}
.restaurant-page .gathering-copy{max-width:680px}
.restaurant-page .gathering-copy p{max-width:510px;text-shadow:0 1px 16px rgba(0,0,0,.32)}
.restaurant-page .gathering-copy :is(h2,.eyebrow,.button){text-shadow:0 1px 18px rgba(0,0,0,.36)}

@media(max-width:800px){
  .restaurant-page main p:not(.eyebrow):not(.booking-status),
  .restaurant-page .form-note,
  .restaurant-page .large-party-note,
  .restaurant-page .reservation-question > p{font-size:1rem;line-height:1.65}
  .restaurant-page .wine-details p,
  .restaurant-page .proof-card p,
  .restaurant-page .menu-edit p,
  .restaurant-page .visit-essentials>p,
  .restaurant-page .visit-essentials .visit-hours{font-size:1rem;line-height:1.62}
  .restaurant-page .gathering-shade{
    background:linear-gradient(to bottom,rgba(32,9,15,.84) 0%,rgba(32,9,15,.78) 42%,rgba(32,9,15,.48) 72%,rgba(32,9,15,.2) 100%);
  }
  .restaurant-page .gathering-copy{max-width:100%}
}

@media(max-width:430px){
  .restaurant-page :is(h1,h2,h3,h1 span,h2 span,h3 span,h1 em,h2 em,h3 em){overflow-wrap:normal;word-break:normal}
  .restaurant-page .crush-nav__dock a{font-size:clamp(.68rem,2.9vw,.78rem);font-weight:700}
}

/* Mobile hero: keep the patio composition intact; compact only the invitation card. */
@media(max-width:800px){
  /* Let the storefront and patio do the first part of the selling before the
     invitation begins. The card still belongs to the image, but now rests
     primarily in the cream runway below it instead of covering the seating. */
  .hero-intro{min-height:51.25rem}
  .hero-intro-copy.hero-invitation-card{
    top:23.125rem;
    bottom:auto;
    padding:1.3rem 1.65rem 1.05rem;
  }
  .hero-invitation-card .hero-actions{margin-top:.9rem}
}

/* Small serif information needs enough weight and leading to remain readable on phones. */
.restaurant-page .audience-band strong{
  font-family:var(--serif);
  font-size:1.25rem;
  font-weight:600;
  line-height:1.48;
  color:var(--charcoal);
  letter-spacing:normal;
}
.restaurant-page .audience-band span{font-size:.72rem;font-weight:700;color:var(--burgundy)}
.restaurant-page .booking-rules span{font-size:.72rem;font-weight:700;color:var(--burgundy)}
.restaurant-page .booking-rules strong{font-family:var(--serif);font-size:1.25rem;font-weight:600;line-height:1.48;color:var(--charcoal);letter-spacing:normal}

/* Wine feature reflow after removing the redundant serving-format tags. */
.wine-section .wine-details-v2 .wine-feature-v2{padding-bottom:1.5rem!important}
@media(max-width:800px){.wine-section .wine-details-v2{gap:0!important}}

/* The desktop two-column gap becomes a row gap once the kitchen stacks. */
@media(max-width:800px){
  .kitchen-heading{row-gap:.75rem;margin-bottom:2rem}
  .kitchen-heading h2{margin-bottom:1rem}
  .kitchen-heading p:last-child{margin:0}
}

/* Mobile editorial sections share a deliberate text-to-photograph handoff.
   Clear the browser's trailing paragraph margin so panel padding alone sets it. */
@media(max-width:800px){
  .experience-copy.wide{padding-bottom:2.5rem}
  .experience-copy.wide p:last-child{margin-bottom:0}
  .wine-intro{padding-bottom:3rem}
  .wine-intro p:last-child{margin-bottom:0}
  .table-glass-copy{padding-bottom:3rem}
  .table-glass-copy p:last-child{margin-bottom:0}
  .story-copy{padding-bottom:3rem}
  .story-copy p:last-child{margin-bottom:0}
  .kitchen-heading{margin-bottom:2.5rem}
}

/* Supporting copy needs a firmer reading weight on a handset than the
   editorial display face above it. */
@media(max-width:800px){
  .restaurant-page :is(
    .experience-copy p,
    .wine-intro p,
    .table-glass-copy p:last-child,
    .kitchen-heading p:last-child,
    .story-copy p,
    .positioning-statement p,
    .visit-copy > p
  ){
    font-size:1.04rem;
    font-weight:500;
    line-height:1.62;
  }
}

/* Wine Garden mobile: statement over the image, invitation beneath the proof. */
@media(max-width:800px){
  .gatherings-section{
    display:grid;
    grid-template-areas:"garden-photo" "garden-panel";
    grid-template-rows:clamp(31rem,128vw,35rem) auto;
    min-height:0;
    align-items:stretch;
    background:var(--cabernet);
  }
  .gatherings-section .gathering-media.media-layer{
    position:relative;
    inset:auto;
    grid-area:garden-photo;
    width:100%;
    height:100%;
    min-height:0;
  }
  .gatherings-section .gathering-media.media-layer img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;
  }
  .restaurant-page .gathering-shade{
    position:relative;
    inset:auto;
    z-index:1;
    grid-area:garden-photo;
    background:linear-gradient(to bottom,rgba(32,9,15,.78) 0%,rgba(32,9,15,.52) 24%,rgba(32,9,15,.16) 46%,rgba(32,9,15,0) 66%);
  }
  .gathering-copy{display:contents}
  .gathering-headline{
    position:relative;
    z-index:2;
    grid-area:garden-photo;
    align-self:start;
    padding:1.5rem 1.5rem 0;
    isolation:isolate;
  }
  .gathering-headline::before{
    content:"";
    position:absolute;
    z-index:0;
    inset:.7rem auto auto 0;
    width:min(86%,18rem);
    height:12.9rem;
    background:linear-gradient(105deg,rgba(42,10,18,.92) 0%,rgba(42,10,18,.8) 56%,rgba(42,10,18,.22) 82%,rgba(42,10,18,0) 100%);
  }
  .gathering-headline > *{position:relative;z-index:1}
  .gathering-headline .eyebrow{margin-bottom:.85rem}
  .gathering-headline h2{margin:0;max-width:12ch}
  .gathering-headline h2{ text-shadow:0 1px 2px rgba(18,5,10,.82); }
  .gathering-headline .headline-accent--dark{
    color:#e1bd70;
    text-shadow:0 1px 2px rgba(18,5,10,.92);
  }
  .gathering-detail{
    position:relative;
    z-index:2;
    grid-area:garden-panel;
    padding:2.25rem 1.5rem 2.5rem;
    background:var(--cabernet);
  }
  .restaurant-page .gathering-detail p{
    max-width:34ch;
    margin:0 0 1.5rem;
    color:rgba(255,255,255,.92);
    text-shadow:none;
  }
  .gathering-detail .button{margin:0;text-shadow:none}
}

.booking-provider-note {
  margin: .75rem 0 0;
  font-size: .78rem;
  line-height: 1.45;
  opacity: .72;
}
.booking-provider-note strong { font-weight: 600; }

/* PHASE 2 — HAPPENING AT CRUSH: recurring, special, and limited-time content */
.happening-section{background:var(--ivory);padding:clamp(76px,8vw,138px) clamp(24px,7vw,112px);color:var(--ink)}
.happening-heading{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.55fr);column-gap:clamp(32px,7vw,110px);row-gap:clamp(10px,1.2vw,18px);align-items:end;max-width:1320px;margin:0 auto clamp(34px,4vw,56px)}
.happening-heading .eyebrow{grid-column:1/-1;margin:0 0 .1rem}.happening-heading h2{font:400 clamp(3.1rem,5.4vw,6.1rem)/.92 var(--serif);margin:0;max-width:9ch}.happening-heading>p:last-child{max-width:38ch;line-height:1.6;margin:0 0 .35rem}
.happening-layout{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:clamp(18px,2vw,30px);align-items:stretch}
.weekly-feature{background:#1d1918;color:var(--ivory);display:grid;grid-template-columns:minmax(0,1.08fr) minmax(250px,.92fr);min-height:520px;overflow:hidden;box-shadow:0 22px 60px rgba(38,24,20,.08)}
.weekly-feature__image{min-height:100%;display:grid;place-items:center;overflow:hidden;background:#111;padding:clamp(16px,2vw,28px)}.weekly-feature__image img{width:100%;height:100%;max-height:520px;object-fit:contain;object-position:center;display:block;filter:saturate(.94) contrast(1.02)}
.weekly-feature__copy{padding:clamp(34px,3.6vw,58px);display:flex;flex-direction:column;justify-content:center}.weekly-feature__copy .eyebrow{margin:0 0 .45rem}.weekly-feature__copy h3{font:400 clamp(3.2rem,5vw,5.9rem)/.9 var(--serif);margin:0 0 .9rem}.weekly-feature__copy p{max-width:30ch;line-height:1.62}.weekly-feature__copy a{color:var(--champagne);font-weight:700;margin-top:1.6rem;text-underline-offset:.25em}.weekly-feature .event-time{font-weight:700;letter-spacing:.02em;color:var(--champagne)}
.special-feature{position:relative;border:1px solid rgba(43,20,20,.2);padding:clamp(42px,5vw,76px);display:flex;flex-direction:column;justify-content:center;background:linear-gradient(145deg,rgba(255,255,255,.38),rgba(255,255,255,.08));box-shadow:0 22px 60px rgba(38,24,20,.05)}
.special-feature:before{content:"";position:absolute;inset:18px;border:1px solid rgba(91,25,36,.09);pointer-events:none}.special-feature>*{position:relative}.special-feature h3{font:400 clamp(3rem,4.8vw,5.2rem)/.9 var(--serif);margin:.55rem 0 1rem;max-width:9ch}.special-feature__dek{font:italic 400 clamp(1.35rem,2vw,2rem)/1.15 var(--serif);color:var(--burgundy);max-width:22ch}.special-feature__meta{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;border-block:1px solid rgba(43,20,20,.18);padding:1rem 0;margin:1.5rem 0}.special-feature__meta span{font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.special-feature>p:not(.eyebrow):not(.special-feature__dek){line-height:1.65;max-width:48ch}
.event-menu{margin-top:1.3rem;border-top:1px solid rgba(43,20,20,.2);border-bottom:1px solid rgba(43,20,20,.2)}.event-menu summary{cursor:pointer;padding:1rem 0;font-weight:700;color:var(--burgundy);list-style:none}.event-menu summary::-webkit-details-marker{display:none}.event-menu summary:after{content:"+";float:right;font-size:1.15rem}.event-menu[open] summary:after{content:"–"}.event-menu ol{list-style:none;padding:0 0 1rem;margin:0;counter-reset:course}.event-menu li{counter-increment:course;padding:1rem 0;border-top:1px solid rgba(43,20,20,.12)}.event-menu li:before{content:"0" counter(course);display:block;font-size:.62rem;letter-spacing:.14em;color:var(--burgundy);margin-bottom:.35rem}.event-menu strong,.event-menu span,.event-menu em{display:block}.event-menu strong{font:400 1.25rem var(--serif)}.event-menu span{font-size:.86rem;line-height:1.5;margin:.25rem 0}.event-menu em{font:italic .86rem var(--serif);color:var(--burgundy)}
.seasonal-feature{max-width:1320px;margin:clamp(24px,3vw,38px) auto 0;display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);border-top:1px solid rgba(43,20,20,.2);border-bottom:1px solid rgba(43,20,20,.2);background:rgba(255,255,255,.12)}.seasonal-feature__intro{padding:clamp(34px,4vw,56px);border-right:1px solid rgba(43,20,20,.18)}.seasonal-feature__intro h3{font:400 clamp(2.6rem,4vw,4.5rem)/.94 var(--serif);margin:.45rem 0 1rem;max-width:10ch}.seasonal-feature__intro p{max-width:32ch;line-height:1.6}.seasonal-feature__intro .text-link{display:inline-block;margin-top:1rem;color:var(--burgundy);font-weight:700;text-underline-offset:.25em}.seasonal-feature__menu{display:grid;grid-template-columns:1fr 1fr}.seasonal-feature__menu>div{padding:clamp(28px,3vw,44px);border-bottom:1px solid rgba(43,20,20,.14);border-right:1px solid rgba(43,20,20,.14)}.seasonal-feature__menu>div:nth-child(2n){border-right:0}.seasonal-feature__menu>div:nth-last-child(-n+2){border-bottom:0}.seasonal-feature__menu strong,.seasonal-feature__menu span{display:block}.seasonal-feature__menu strong{font:400 clamp(1.35rem,2vw,1.8rem) var(--serif);margin-bottom:.55rem}.seasonal-feature__menu span{font-size:.88rem;line-height:1.55;color:rgba(29,26,25,.72)}
@media(max-width:1050px){.happening-heading{grid-template-columns:1fr;column-gap:0;row-gap:12px}.happening-heading .eyebrow{grid-column:auto}.happening-layout{grid-template-columns:1fr}.weekly-feature{min-height:480px}.seasonal-feature{grid-template-columns:1fr}.seasonal-feature__intro{border-right:0;border-bottom:1px solid rgba(43,20,20,.18)}}
@media(max-width:720px){.happening-section{padding-inline:20px}.weekly-feature{grid-template-columns:1fr;min-height:0}.weekly-feature__image{min-height:0;padding:16px}.weekly-feature__image img{height:auto;max-height:none}.weekly-feature__copy{padding:34px 24px}.special-feature{padding:42px 24px}.special-feature:before{inset:10px}.seasonal-feature__menu{grid-template-columns:1fr}.seasonal-feature__menu>div{border-right:0;border-bottom:1px solid rgba(43,20,20,.14)!important}.seasonal-feature__menu>div:last-child{border-bottom:0!important}.happening-heading h2{font-size:clamp(3.3rem,15vw,5.4rem)}}

/* PHASE 2 — HAPPENING HORIZONTAL MODULES
   Let supplied artwork keep its natural aspect ratio. The row grows from the image/content,
   artwork is never cropped, and very wide/tall uploads are capped rather than distorted. */
.happening-layout{
  grid-template-columns:1fr;
  gap:clamp(22px,2.6vw,38px);
  align-items:start;
}
.weekly-feature{
  display:grid;
  grid-template-columns:minmax(220px,max-content) minmax(300px,1fr);
  min-height:0;
  width:100%;
  align-items:stretch;
}
.weekly-feature__image{
  min-height:0;
  width:auto;
  max-width:560px;
  padding:clamp(14px,1.6vw,22px);
  display:flex;
  align-items:center;
  justify-content:center;
  background:#111;
}
.weekly-feature__image img{
  width:auto;
  height:auto;
  max-width:min(42vw,520px);
  max-height:520px;
  object-fit:contain;
  object-position:center;
  display:block;
}
.weekly-feature__copy{
  min-width:0;
  padding:clamp(30px,3.2vw,52px);
  justify-content:center;
}
.weekly-feature__copy h3{
  font-size:clamp(2.9rem,4.5vw,5.2rem);
  max-width:12ch;
}

/* Special-event cards use the same horizontal rhythm without pretending they need an image. */
.special-feature{
  display:grid;
  grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);
  gap:clamp(34px,5vw,82px);
  align-items:start;
  justify-content:stretch;
  padding:clamp(38px,4.5vw,68px);
}
.special-feature>.eyebrow,
.special-feature>h3,
.special-feature>.special-feature__dek{
  grid-column:1;
}
.special-feature>.special-feature__meta,
.special-feature>p:not(.eyebrow):not(.special-feature__dek),
.special-feature>.event-menu{
  grid-column:2;
}
.special-feature>.special-feature__meta{margin-top:0}
.special-feature h3{max-width:10ch}
.special-feature__dek{margin-bottom:0}
.special-feature>p:not(.eyebrow):not(.special-feature__dek){margin-top:0}

@media(max-width:900px){
  .weekly-feature{grid-template-columns:1fr;}
  .weekly-feature__image{width:100%;max-width:none;justify-content:flex-start;}
  .weekly-feature__image img{max-width:100%;max-height:560px;}
  .special-feature{grid-template-columns:1fr;gap:18px;}
  .special-feature>.eyebrow,
  .special-feature>h3,
  .special-feature>.special-feature__dek,
  .special-feature>.special-feature__meta,
  .special-feature>p:not(.eyebrow):not(.special-feature__dek),
  .special-feature>.event-menu{grid-column:1;}
  .special-feature>.special-feature__meta{margin-top:.7rem}
}


/* PHASE 2 — flexible editorial event copy
   Special events may be terse or text-heavy. Wrappers keep the layout compact
   while allowing multiple paragraphs without creating empty grid rows. */
.special-feature{
  grid-template-columns:minmax(250px,.68fr) minmax(0,1.32fr);
  gap:clamp(28px,4vw,64px);
  align-items:start;
  padding:clamp(30px,3.6vw,52px);
}
.special-feature__lead,
.special-feature__body{
  min-width:0;
}
.special-feature__lead{
  align-self:start;
}
.special-feature__lead .eyebrow{margin:0 0 .55rem;}
.special-feature__lead h3{
  font:400 clamp(3rem,4.8vw,5.2rem)/.9 var(--serif);
  margin:0 0 .85rem;
  max-width:10ch;
}
.special-feature__lead .special-feature__dek{
  margin:0;
}
.special-feature__body{
  display:flex;
  flex-direction:column;
  gap:clamp(16px,1.8vw,24px);
  padding-top:.15rem;
}
.special-feature__body .special-feature__meta{
  margin:0;
}
.special-feature__copy{
  display:grid;
  gap:.85rem;
  max-width:62ch;
}
.special-feature__copy p{
  margin:0;
  line-height:1.68;
}
.special-feature__body .event-menu{
  margin-top:.15rem;
}
/* neutralize the earlier direct-child grid placement now that the card has wrappers */
.special-feature>.eyebrow,
.special-feature>h3,
.special-feature>.special-feature__dek,
.special-feature>.special-feature__meta,
.special-feature>p:not(.eyebrow):not(.special-feature__dek),
.special-feature>.event-menu{grid-column:auto;}
@media(max-width:900px){
  .special-feature{grid-template-columns:1fr;gap:22px;}
  .special-feature__body{padding-top:0;}
}

/* Phase 2: compact Happening intro */
.happening-heading{
  display:block;
  max-width:1320px;
  margin:0 auto clamp(30px,3.5vw,48px);
}
.happening-heading .eyebrow{margin:0 0 clamp(12px,1.1vw,18px)}
.happening-heading h2{
  font:400 clamp(3rem,4.6vw,5.25rem)/.96 var(--serif);
  margin:0;
  max-width:none;
  white-space:nowrap;
}
.happening-heading>p:last-child{
  max-width:58ch;
  line-height:1.55;
  margin:clamp(14px,1.3vw,20px) 0 0;
}
@media(max-width:900px){
  .happening-heading h2{white-space:normal}
}

/* Phase 2 navigation UX: six task-oriented section anchors remain readable before the mobile menu takes over. */
@media(min-width:901px) and (max-width:1240px){
  .restaurant-page .crush-nav__bar{gap:12px;padding-left:24px;padding-right:24px}
  .restaurant-page .crush-nav__logo{left:24px}
  .restaurant-page .crush-nav__desktop{margin-left:clamp(8.5rem,10vw,10.5rem)}
  .restaurant-page .crush-nav__desktop a{padding-left:7px;padding-right:7px;font-size:.67rem;letter-spacing:.055em}
  .restaurant-page .crush-nav__actions .nav-phone{display:none}
  .restaurant-page .crush-nav__actions .nav-menu,.restaurant-page .crush-nav__actions .nav-reserve{padding-left:.7rem;padding-right:.7rem}
}

/* Phase 2 task-path QA: anchored destinations clear the persistent header. */
#experience,
#wine,
#kitchen,
#gatherings,
#happening,
#story,
#visit{
  scroll-margin-top:clamp(76px,8vw,104px);
}

/* PHASE 2.5 — COMPRESSION & CONVERSION PASS */
@media (min-width: 901px){
  .experience-copy.wide{padding-top:5.75rem;padding-bottom:2.5rem}
  .kitchen-section{padding-top:6.75rem;padding-bottom:5.5rem}
  .story-copy{padding-top:5.75rem;padding-bottom:5.75rem}
  .story-section{align-items:stretch}
  .story-copy h2{font-size:clamp(2.55rem,3.8vw,4rem);max-width:10.5ch}
  .story-copy p{max-width:38ch}
}

/* PHASE 2.8 LIVE SMOKETEST — food/wine headline composition */
@media (min-width: 901px){
  .table-glass-section{grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr)}
  .table-glass-copy{padding-right:clamp(3rem,5vw,6rem)}
  .table-glass-copy h2{max-width:820px;font-size:clamp(3rem,4.35vw,5.35rem);text-wrap:balance}
}

/* Phase 2.8 smoketest — control positioning intro measure to avoid orphaned last word */
.positioning .large-copy{max-width:72ch}

/* Phase 2.8 smoketest: keep the kitchen headline to a deliberate two-line lockup. */
@media (min-width: 901px){
  .kitchen-heading{grid-template-columns:1fr 1fr;gap:4rem;}
  .kitchen-heading h2{max-width:820px;}
  .kitchen-title-line{white-space:nowrap;}
}
@media (max-width: 900px){
  .kitchen-title-line{white-space:normal;}
}

/* Phase 2.8 smoke-test: preserve the Wine Garden headline as a deliberate two-line lockup on wide screens. */
@media (min-width: 701px){
  .restaurant-page .gathering-headline h2{max-width:none;}
  .restaurant-page .gathering-title-line{white-space:nowrap;}
}

/* Phase 2.8 accessibility contrast/readability pass */
.hero-meta{color:rgba(255,255,255,.9)}
.concept-disclosure{font-size:.78rem;opacity:1;color:#686562}
.text-link{border-bottom-color:rgba(91,31,43,.5)}
.crush-nav__desktop a,.crush-nav__actions a{font-size:.72rem}
.crush-nav__panel a{font-size:.94rem}
.site-footer,footer{font-size:.75rem}
@media(max-width:860px){.crush-nav__dock a{font-size:.72rem}}
.fine-print{font-size:.8rem;color:#686562}
.visit-facts p{font-size:.9rem;color:#686562}
/* Accessibility: dark-surface small copy must remain comfortably above AA minimums. */
.footer p,.footer-contact p,.footer-note,.footer-note a,.booking-note,.event-demo-message{color:#d8cbbd}
.footer-note{font-size:.78rem}
.footer-note a{text-decoration:underline}
.booking-note{font-size:.8rem}
.event-demo-message{font-size:.82rem}
.booking-tab{color:#d8cbbd;font-size:.75rem;min-height:44px}
.booking-tab[aria-selected="true"]{color:#fff}
.crush-nav__current span{font-size:.66rem}
.crush-nav__panel a span{font-size:.72rem}

/* 2026-08-16 Phase 2.8 readability correction — gallery intro copy must remain
   comfortably readable on the cream surface, not merely technically present. */
.crush-gallery-heading p:last-child{
  color:#5f5955!important;
  opacity:1!important;
  font-size:1rem;
  line-height:1.65;
}

.footer-hours{margin-top:.85rem;}

/* Phase 4: make operating hours a first-class footer destination. */
.restaurant-page .footer{
  grid-template-columns:minmax(360px,1.25fr) minmax(220px,.65fr) minmax(220px,.65fr) minmax(220px,.75fr)!important;
}
.footer-hours-block{
  align-self:start;
}
.footer-hours-block .eyebrow{
  display:block;
  margin-bottom:.9rem;
}
.footer-hours-block .visit-hours{
  margin:0;
  font-family:var(--sans);
  font-size:1rem;
  font-weight:400;
  line-height:1.65;
  color:#d8cbbd;
}
.footer-hours-block .visit-hours strong{
  color:#fff;
}
.footer-hours-block .visit-hours span{
  color:#d8cbbd;
}
@media (max-width:1100px){
  .restaurant-page .footer{
    grid-template-columns:1fr 1fr!important;
  }
}
@media (max-width:700px){
  .restaurant-page .footer{
    grid-template-columns:1fr!important;
  }
}

.home-tonights-special{background:#4b0d18;color:#fff;padding:34px clamp(24px,7vw,110px)}
.home-tonights-special__inner{max-width:1320px;margin:auto;display:grid;grid-template-columns:auto 1fr auto auto;gap:30px;align-items:center}.home-tonights-special .eyebrow{color:#d8b875;margin:0}.home-tonights-special span{color:#e1c78d;font-style:italic}.home-tonights-special h2{margin:3px 0;font-size:clamp(1.7rem,3vw,3rem)}.home-tonights-special p{margin:0;color:#e8ded8}.home-tonights-special strong{font-size:1.3rem}.home-tonights-special a{color:#fff;text-transform:uppercase;letter-spacing:.12em;font-size:.75rem}
@media(max-width:850px){.home-tonights-special__inner{grid-template-columns:1fr;gap:12px}}

.dynamic-wine-home{max-width:1200px;margin:28px auto;padding:28px;border:1px solid rgba(72,16,26,.22);background:#f7f2ea;color:#171313}.dynamic-wine-home h3{font-family:var(--serif);font-size:clamp(2rem,4vw,4rem);margin:.3rem 0 1rem}.dynamic-wine-home .special-feature__meta{display:flex;gap:18px;flex-wrap:wrap;margin:14px 0;text-transform:uppercase;font-size:.78rem;font-weight:700}

/* Phase 5 exact standalone target fixes */
.case-header > a:last-child{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding-block:2px;
}

/* Phase 5C — mid-desktop navigation containment */
@media(min-width:1161px) and (max-width:1320px){
  .restaurant-page .crush-nav__bar{
    gap:12px;
    padding-left:20px;
    padding-right:20px;
  }
  .restaurant-page .crush-nav__logo{
    left:20px;
    width:104px;
    height:104px;
  }
  .restaurant-page .crush-nav__desktop{
    margin-left:clamp(8.5rem,9vw,9.5rem);
    gap:2px;
  }
  .restaurant-page .crush-nav__desktop a{
    padding-left:6px;
    padding-right:6px;
    font-size:.66rem;
    letter-spacing:.05em;
  }
  .restaurant-page .crush-nav__actions{
    gap:0;
  }
  .restaurant-page .crush-nav__actions .nav-phone{
    display:none;
  }
}

/* Phase 5F — exact 1280px footer overflow fix */
@media (min-width:701px) and (max-width:1320px){
  .restaurant-page .footer{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  }
  .restaurant-page .footer>*{
    min-width:0!important;
  }
  .restaurant-page .footer-explore,
  .restaurant-page .footer-note{
    max-width:100%!important;
    min-width:0!important;
  }
  .restaurant-page .footer-note{
    grid-column:1 / -1;
    width:auto!important;
  }
}


/* Final accessibility pass — active Food/Wine menu index */
.menu-index__grid > a[aria-current="location"] .menu-index__number{
  color:#e2c58e!important;
}


/* Final accessibility pass — Restaurant contrast */
.restaurant-page .nav-reserve{
  background:#d8b875!important;
  color:#1f0f13!important;
}
.restaurant-page .wine-section .section-action-light{
  color:#e2c58e!important;
}
.restaurant-page #occasionMessage .eyebrow.champagne,
.restaurant-page .footer-hours-block .eyebrow.champagne{
  color:#e2c58e!important;
}
.restaurant-page #reservationSubmit{
  background:#d8b875!important;
  color:#120b0d!important;
}
.restaurant-page .footer-explore__label{
  color:#e2c58e!important;
}

/* Dark-wine editorial type uses one high-contrast gold consistently. */
.restaurant-page :is(
  .wine-section,
  .gatherings-section,
  .visit-action,
  .instagram-section,
  .booking-shell,
  .closing,
  .weekly-feature
) .eyebrow.champagne,
.restaurant-page :is(
  .wine-section,
  .gatherings-section,
  .visit-action,
  .instagram-section,
  .booking-shell,
  .closing,
  .weekly-feature
) .headline-accent--dark{
  color:#e1bd70!important;
}

/* Event details need the same gold signal as the other dark editorial calls to action. */
.weekly-feature .event-time,
.weekly-feature__copy a{
  color:#e1bd70;
}

/* Keep every informational accent on the restaurant's dark surfaces readable.
   The warmer copper remains reserved for light-background treatments. */
.restaurant-page :is(
  .wine-section,
  .gatherings-section,
  .visit-action,
  .instagram-section,
  .booking-shell,
  .closing,
  .weekly-feature,
  .footer
) .eyebrow,
.restaurant-page .footer-explore__label,
.restaurant-page .closing-copy em,
.restaurant-page .crush-nav__toggle{
  color:#e1bd70!important;
}

/* Final Axe pass — active menu index contrast */
.menu-index__grid a[aria-current="location"] .menu-index__number,
.menu-index__grid a[aria-current="page"] .menu-index__number,
a[aria-current="location"] > .menu-index__number,
a[aria-current="page"] > .menu-index__number {
  color:#e2c58e !important;
}

/* BUYER-PASS 2026-08-20 — mobile homepage editorial rhythm */
.seasonal-feature__details{min-width:0}
.seasonal-feature__details>summary{display:none}
.seasonal-feature__details[open]>.seasonal-feature__menu{display:grid}

@media(max-width:720px){
  /* Seasonal menus remain available without turning What's On into a long menu wall. */
  .seasonal-feature__details>summary{
    display:flex;align-items:center;justify-content:space-between;min-height:52px;
    padding:0 24px;cursor:pointer;color:var(--burgundy);font-weight:700;
    text-decoration:underline;text-underline-offset:.28em;list-style:none
  }
  .seasonal-feature__details>summary::-webkit-details-marker{display:none}
  .seasonal-feature__details>summary:after{content:'+';font:400 1.4rem/1 var(--serif);text-decoration:none}
  .seasonal-feature__details[open]>summary:after{content:'–'}
  .seasonal-feature__details:not([open])>.seasonal-feature__menu{display:none}

  /* Give the historical chapter and gallery introduction a calmer handoff. */
  .story-section{margin-top:clamp(28px,8vw,38px)}
  .crush-gallery-heading{padding-top:clamp(28px,8vw,38px)}

  /* Editorial photo sequence: one room-setting lead, then supporting details. */
  .crush-gallery-grid .gallery-image:nth-child(2){order:-1;grid-column:1/-1;aspect-ratio:16/10}
  .crush-gallery-grid .gallery-image:nth-child(1){grid-column:1/-1;aspect-ratio:4/3}
  .crush-gallery-grid .gallery-image:nth-child(3),
  .crush-gallery-grid .gallery-image:nth-child(4),
  .crush-gallery-grid .gallery-image:nth-child(5){grid-column:auto}
}

/* FINAL MOBILE HERO POSITION — move the existing invitation card down without changing its dimensions. */
@media(max-width:800px){
  .hero-intro-copy.hero-invitation-card{top:calc(23.125rem + 44px)}
}
