body{line-height:1.6; overflow-x:hidden;}
a{color:inherit; text-decoration:none;}
em{font-style:italic; color:var(--ember);}
section{position:relative;}

/* NAV */
.nav{position:fixed; top:0; left:0; right:0; z-index:100; padding:24px 0; transition:background .3s, padding .3s, box-shadow .3s;}
.nav.scrolled{background:rgba(251,243,230,.95); backdrop-filter:blur(8px); box-shadow:0 1px 0 rgba(36,28,22,.08); padding:12px 0;}
.nav .wrap{display:flex; align-items:center; justify-content:space-between;}
.logo{font-family:'Instrument Serif', serif; font-style:italic; font-size:1.5rem; color:var(--ink);}
.logo span{color:var(--ember);}
.nav-links{display:flex; align-items:center; gap:32px;}
.nav-links a{font-size:.85rem; font-weight:600; color:var(--ink-soft); position:relative; padding:4px 0;}
.nav-links a:hover{color:var(--ember);}
.nav-cta{background:var(--ember); color:#fff !important; padding:10px 20px; border-radius:2px; font-size:.82rem !important;}
.nav-cta:hover{background:var(--ember-bright);}
.burger{display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer;}
.burger span{width:24px; height:2px; background:var(--ink);}

/* HERO */
.hero{min-height:96vh; display:flex; align-items:flex-end; position:relative; background:var(--char);}
.hero-media{position:absolute; inset:0; overflow:hidden;}
.hero-media img{width:100%; height:100%; object-fit:cover; object-position:center 30%;}
.hero-media::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(32,24,20,0) 0%, rgba(32,24,20,0) 45%, rgba(32,24,20,.55) 72%, rgba(24,16,12,.94) 100%);
}
.hero-glow{
  position:absolute; left:50%; bottom:-120px; transform:translateX(-50%);
  width:900px; height:340px; z-index:1;
  background:radial-gradient(ellipse at center, rgba(226,102,47,.35) 0%, rgba(226,102,47,0) 70%);
  filter:blur(10px); pointer-events:none;
}
.hero-content{position:relative; z-index:2; color:#fff; padding:0 32px 80px; max-width:1180px; margin:0 auto; width:100%;}
.hero-content .eyebrow{color:var(--gold);}
.hero-content h1{font-size:clamp(2.4rem, 5.6vw, 4.4rem); line-height:1.05; margin:16px 0 20px; max-width:760px; color:#fff;}
.hero-content p{font-size:1.05rem; max-width:480px; color:#EDE3D6; font-weight:300; margin-bottom:30px;}
.hero-cta{display:flex; gap:14px; flex-wrap:wrap;}
.btn{display:inline-flex; align-items:center; gap:8px; padding:14px 26px; font-size:.85rem; font-weight:700; letter-spacing:.02em; border-radius:2px; transition:.25s; cursor:pointer; border:1px solid transparent;}
.btn-primary{background:var(--ember); color:#fff;}
.btn-primary:hover{background:var(--ember-bright);}
.btn-ghost{border-color:rgba(255,255,255,.5); color:#fff;}
.btn-ghost:hover{border-color:#fff; background:rgba(255,255,255,.08);}
.btn-outline{border-color:var(--ember); color:var(--ember);}
.btn-outline:hover{background:var(--ember); color:#fff;}

/* BADGES */
.badges{background:var(--char); padding:26px 0; position:relative; z-index:2;}
.badges .wrap{display:flex; justify-content:space-between; flex-wrap:wrap; gap:18px;}
.badge{display:flex; align-items:center; gap:10px; color:#EDE3D6; font-size:.85rem; font-weight:600;}
.badge .dot{width:6px; height:6px; border-radius:50%; background:var(--ember-bright);}

/* INTRO */
.intro{padding:110px 0 90px; background:var(--cream);}
.intro .wrap{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;}
.intro-img{position:relative;}
.intro-img img{border-radius:2px; width:100%; height:420px; object-fit:cover;}
.intro-text h2{font-size:2.2rem; margin-bottom:20px; line-height:1.15;}
.intro-text p{color:var(--ink-soft); font-size:1rem; margin-bottom:16px;}
.intro-tags{margin-top:24px; display:flex; flex-wrap:wrap; gap:10px;}
.tag{font-family:'JetBrains Mono', monospace; font-size:.72rem; letter-spacing:.05em; padding:6px 12px; border:1px solid var(--line); border-radius:20px; color:var(--ink-soft);}

/* MENU */
.menu{padding:110px 0; background:var(--char); color:#fff;}
.menu .section-head{display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; margin-bottom:48px;}
.menu .eyebrow{color:var(--gold);}
.menu h2{color:#fff; font-size:2.2rem; margin-top:12px;}
.menu-sub{color:rgba(255,255,255,.6); font-size:.92rem; max-width:340px;}
.tabs{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:44px; border-bottom:1px solid rgba(255,255,255,.14); padding-bottom:26px;}
.tab-btn{
  font-family:'JetBrains Mono', monospace; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase;
  background:none; border:1px solid rgba(255,255,255,.25); color:rgba(255,255,255,.7);
  padding:9px 16px; border-radius:20px; cursor:pointer; transition:.2s;
}
.tab-btn:hover{border-color:var(--ember-bright); color:#fff;}
.tab-btn.active{background:var(--ember); border-color:var(--ember); color:#fff;}
.panel{display:none;}
.panel.active{display:block; animation:fade .35s ease;}
@keyframes fade{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:translateY(0);}}
.panel-grid{display:grid; grid-template-columns:220px 1fr; gap:44px; align-items:flex-start;}
.panel-img{border-radius:2px; overflow:hidden; height:100%;}
.panel-img img{width:100%; height:100%; object-fit:cover; min-height:260px;}
.menu-group{margin-bottom:28px;}
.menu-group h4{color:var(--gold); font-size:.95rem; font-family:'JetBrains Mono', monospace; letter-spacing:.04em; margin-bottom:14px; text-transform:uppercase;}
.menu-item{display:flex; justify-content:space-between; gap:16px; padding:11px 0; border-bottom:1px dashed rgba(255,255,255,.14); font-size:.94rem;}
.menu-item .name{color:#fff;}
.menu-item .name .num{color:rgba(255,255,255,.4); margin-right:8px; font-family:'JetBrains Mono', monospace; font-size:.78rem;}
.menu-item .desc{color:rgba(255,255,255,.5); font-size:.86rem; display:block; margin-top:2px;}
.menu-item .price{white-space:nowrap; color:var(--gold); font-weight:600; font-family:'JetBrains Mono', monospace; font-size:.88rem;}
.menu-note{margin-top:8px; font-size:.85rem; color:rgba(255,255,255,.55);}
.menu-pdf{margin-top:36px; display:inline-flex; align-items:center; gap:8px; color:var(--gold); font-size:.88rem; font-weight:600; border-bottom:1px solid rgba(217,164,65,.4); padding-bottom:2px;}
@media (max-width:760px){.panel-grid{grid-template-columns:1fr;} .panel-img img{min-height:180px;}}

/* GALLERY */
.gallery{padding:110px 0; background:var(--cream);}
.gal-grid{display:grid; grid-template-columns:repeat(4, 1fr); grid-auto-rows:210px; gap:6px; margin-top:48px;}
.gal-grid figure{overflow:hidden; cursor:pointer; position:relative; margin:0;}
.gal-grid img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
.gal-grid figure:hover img{transform:scale(1.06);}
.gal-grid figure::after{content:'+'; position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:'Instrument Serif', serif; font-size:2.2rem; color:#fff; background:rgba(193,67,42,0); transition:background .25s; opacity:0;}
.gal-grid figure:hover::after{background:rgba(193,67,42,.4); opacity:1;}
.gal-grid figure.wide{grid-column:span 2;}
.gal-grid figure.tall{grid-row:span 2;}

.lightbox{position:fixed; inset:0; background:rgba(32,24,20,.95); z-index:1000; display:none; align-items:center; justify-content:center; padding:40px;}
.lightbox.open{display:flex;}
.lightbox img{max-width:90vw; max-height:85vh; object-fit:contain; box-shadow:0 20px 60px rgba(0,0,0,.5);}
.lightbox-close{position:absolute; top:28px; right:38px; color:#fff; font-size:2rem; cursor:pointer; font-family:'Instrument Serif', serif; font-weight:300; line-height:1;}
@media (max-width:900px){.gal-grid{grid-template-columns:repeat(2, 1fr); grid-auto-rows:170px;} .gal-grid figure.wide{grid-column:span 2;}}

/* REVIEW */
.review{padding:90px 0; background:var(--cream-2);}
.review .wrap{max-width:720px; text-align:center;}
.review p{font-family:'Instrument Serif', serif; font-style:italic; font-size:1.7rem; line-height:1.35; color:var(--ink); margin-bottom:18px;}
.review .src{font-family:'JetBrains Mono', monospace; font-size:.78rem; color:var(--ember); letter-spacing:.04em;}

/* VISIT */
.visit{padding:110px 0; background:var(--cream);}
.visit .wrap{display:grid; grid-template-columns:1fr 1fr 1fr; gap:50px;}
.visit h2{font-size:2.1rem; margin:14px 0 18px; max-width:320px;}
.visit > .wrap > div:first-child p{color:var(--ink-soft); font-size:.95rem; max-width:320px;}
.v-col h4{font-family:'JetBrains Mono', monospace; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ember); margin-bottom:16px;}
.v-col .line{font-size:.98rem; margin-bottom:6px;}
.v-col .muted{color:var(--ink-soft); font-size:.92rem; margin-bottom:6px;}
.hours-row{display:flex; justify-content:space-between; font-size:.92rem; padding:9px 0; border-bottom:1px solid var(--line);}
.hours-row span:first-child{color:var(--ink-soft);}
.map-link{display:inline-flex; gap:8px; margin-top:14px; color:var(--ember); font-size:.88rem; font-weight:600; border-bottom:1px solid rgba(193,67,42,.35); padding-bottom:2px;}
.social-row{display:flex; gap:12px; margin-top:22px;}
.social-row a{width:36px; height:36px; border:1px solid var(--line); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:.78rem; transition:.2s;}
.social-row a:hover{background:var(--ember); border-color:var(--ember); color:#fff;}

@media (max-width:900px){
  .nav-links{position:fixed; top:0; right:0; height:100vh; width:74%; max-width:300px; background:var(--cream); flex-direction:column; align-items:flex-start; padding:100px 30px 40px; gap:24px; transform:translateX(100%); transition:transform .35s; box-shadow:-6px 0 30px rgba(0,0,0,.12);}
  .nav-links.open{transform:translateX(0);}
  .burger{display:flex;}
  .intro .wrap{grid-template-columns:1fr; gap:34px;}
  .intro-img img{height:280px;}
  .visit .wrap{grid-template-columns:1fr; gap:40px;}
  .badges .wrap{justify-content:flex-start;}
}
@media (max-width:560px){
  .wrap{padding:0 20px;}
  .hero-cta{flex-direction:column; align-items:flex-start;}
}
