*{margin:0;padding:0;box-sizing:border-box}
:root{
  --ink:#1a1714;
  --ink2:#3a3530;
  --warm:#f7f3ee;
  --warm2:#ede8e0;
  --warm3:#d9d0c3;
  --accent:#b07d4e;
  --accent2:#8a5f35;
  --cream:#faf7f3;
  --white:#fff;
  --green:#4a5e40;
  --green-light:#d4dbc8;
  --fs-hero:clamp(3rem,10vw,7rem);
  --fs-sec:clamp(1.9rem,4.5vw,3.2rem);
  --radius:2px;
}
html{scroll-behavior:smooth}
body{font-family:'Montserrat',sans-serif;background:var(--cream);color:var(--ink);overflow-x:hidden}

/* ── SCROLLBAR ── */
::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--warm)}::-webkit-scrollbar-thumb{background:var(--accent)}

/* ── NAV ── */
nav{position:fixed;top:0;left:0;width:100%;z-index:200;padding:1.4rem 2.4rem;display:flex;align-items:center;justify-content:space-between;transition:all .45s}
nav.solid{background:rgba(250,247,243,.96);backdrop-filter:blur(12px);padding:1rem 2.4rem;border-bottom:1px solid var(--warm3)}
.logo{font-family:'Cormorant Garamond',serif;font-size:1.6rem;font-weight:400;letter-spacing:.35em;text-transform:uppercase;text-decoration:none;color:var(--white);transition:color .4s}
nav.solid .logo{color:var(--ink)}
.nav-links{display:flex;gap:2.2rem;list-style:none}
.nav-links a{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;color:rgba(255,255,255,.8);transition:color .3s}
nav.solid .nav-links a{color:var(--ink2)}
.nav-links a:hover,.nav-links a:focus{color:var(--accent)}
.nav-reserve{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;padding:.5rem 1.3rem;background:var(--accent);color:var(--white);text-decoration:none;transition:background .3s}
.nav-reserve:hover{background:var(--accent2)}
.ham{display:none;flex-direction:column;gap:5px;cursor:pointer;z-index:300}
.ham span{width:22px;height:1px;background:var(--white);transition:all .3s;display:block}
nav.solid .ham span{background:var(--ink)}
.mob{display:none;position:fixed;inset:0;background:var(--ink);z-index:250;flex-direction:column;align-items:center;justify-content:center;gap:3rem}
.mob.open{display:flex}
.mob a{font-family:'Cormorant Garamond',serif;font-size:2.4rem;font-weight:300;letter-spacing:.08em;color:var(--warm);text-decoration:none;transition:color .3s}
.mob a:hover{color:var(--accent)}
.mob-close{position:absolute;top:1.5rem;right:2rem;color:var(--warm);font-size:1.6rem;cursor:pointer;opacity:.6}
.mob-close:hover{opacity:1}

/* ── HERO ── */
#hero{height:100dvh;min-height:580px;position:relative;display:grid;place-items:center;text-align:center;overflow:hidden}
.hero-reel{position:absolute;inset:0;display:flex;transition:transform .9s cubic-bezier(.77,0,.18,1)}
.hero-slide{min-width:100%;height:100%;position:relative;flex-shrink:0}
.hero-slide img{width:100%;height:100%;object-fit:cover;display:block}
.hero-slide::after{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,rgba(26,23,20,.45) 0%,rgba(26,23,20,.25) 40%,rgba(26,23,20,.6) 100%)}
.hero-content{position:relative;z-index:2;padding:0 1.5rem}
.hero-eyebrow{font-size:.65rem;letter-spacing:.4em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-bottom:1.4rem}
.hero-title{font-family:'Cormorant Garamond',serif;font-size:var(--fs-hero);font-weight:300;line-height:.95;color:var(--white);margin-bottom:1.8rem}
.hero-title em{font-style:italic;color:var(--warm3)}
.hero-sub{font-size:.78rem;letter-spacing:.06em;color:rgba(255,255,255,.65);line-height:1.9;max-width:380px;margin:0 auto 2.4rem}
.hero-ctas{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.btn-fill{padding:.85rem 2.2rem;background:var(--accent);color:var(--white);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;transition:background .3s;border:none;cursor:pointer;font-family:'Montserrat',sans-serif}
.btn-fill:hover{background:var(--accent2)}
.btn-ghost{padding:.85rem 2.2rem;border:1px solid rgba(255,255,255,.45);color:var(--white);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;transition:all .3s}
.btn-ghost:hover{background:rgba(255,255,255,.1)}
.hero-dots{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);display:flex;gap:.6rem;z-index:2}
.dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.35);cursor:pointer;transition:background .3s}
.dot.active{background:var(--accent)}
.hero-scroll-hint{position:absolute;bottom:1.8rem;right:2.4rem;display:flex;align-items:center;gap:.5rem;opacity:.5;z-index:2}
.hero-scroll-hint span{font-size:.58rem;letter-spacing:.3em;text-transform:uppercase;color:var(--white);writing-mode:vertical-rl}
.scroll-bar{width:1px;height:44px;background:linear-gradient(to bottom,var(--warm3),transparent);animation:sb 1.8s ease-in-out infinite}
@keyframes sb{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ── MARQUEE ── */
.marquee-bar{background:var(--accent);padding:.7rem 0;overflow:hidden;white-space:nowrap}
.marquee-track{display:inline-flex;animation:marquee 22s linear infinite;gap:0}
.marquee-item{font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--white);opacity:.85;padding:0 2.5rem}
.marquee-dot{color:var(--white);opacity:.4;margin:0 .5rem}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ── ABOUT ── */
#about{display:grid;grid-template-columns:1fr 1fr;min-height:90vh}
.about-img{position:relative;overflow:hidden}
.about-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s}
.about-img:hover img{transform:scale(1.03)}
.about-img-tag{position:absolute;bottom:2rem;left:2rem;background:var(--accent);color:var(--white);font-size:.6rem;letter-spacing:.25em;text-transform:uppercase;padding:.4rem .9rem}
.about-text{background:var(--ink);color:var(--warm);display:flex;flex-direction:column;justify-content:center;padding:5rem 4rem}
.about-text .section-tag{color:var(--accent)}
.about-text .section-title{color:var(--white)}
.about-text .section-title em{color:var(--warm3)}
.about-text p{font-size:.8rem;line-height:2;color:rgba(247,243,238,.6);margin-top:1.2rem;max-width:420px}
.about-text .divider{background:var(--accent)}
.stats-row{display:flex;gap:2.5rem;margin-top:3rem;flex-wrap:wrap}
.stat strong{font-family:'Cormorant Garamond',serif;font-size:2.2rem;font-weight:300;color:var(--warm);display:block}
.stat span{font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(247,243,238,.4)}

/* ── COMMON ── */
section{padding:5.5rem 2.4rem}
.section-tag{font-size:.65rem;letter-spacing:.35em;text-transform:uppercase;color:var(--accent);display:block;margin-bottom:.9rem}
.section-title{font-family:'Cormorant Garamond',serif;font-size:var(--fs-sec);font-weight:300;line-height:1.1;color:var(--ink)}
.section-title em{font-style:italic;color:var(--green)}
.divider{width:36px;height:1px;background:var(--accent);margin:1.4rem 0}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .75s,transform .75s}
.reveal.visible{opacity:1;transform:none}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}.d4{transition-delay:.4s}

/* ── MENU ── */
#menu{background:var(--warm)}
.menu-header{text-align:center;margin-bottom:3rem}
.menu-header .section-tag,.menu-header .divider{margin-left:auto;margin-right:auto;display:block}
.menu-header .divider{width:36px}
.menu-tabs{display:flex;gap:0;justify-content:center;margin-bottom:3.5rem;border-bottom:1px solid var(--warm3);flex-wrap:wrap}
.tab{font-size:.65rem;letter-spacing:.22em;text-transform:uppercase;padding:.9rem 1.8rem;cursor:pointer;border:none;background:transparent;color:var(--ink2);position:relative;transition:color .3s;font-family:'Montserrat',sans-serif}
.tab::after{content:'';position:absolute;bottom:-1px;left:0;width:0;height:2px;background:var(--accent);transition:width .3s}
.tab.active{color:var(--accent)}
.tab.active::after{width:100%}
.menu-panel{display:none}
.menu-panel.active{display:block}
.menu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:0;max-width:900px;margin:0 auto}
.menu-item{display:flex;justify-content:space-between;align-items:flex-start;padding:1.4rem 0;border-bottom:1px solid var(--warm3);gap:1rem;cursor:pointer;transition:background .2s}
.menu-item:hover .mi-name{color:var(--accent)}
.mi-left{flex:1}
.mi-name{font-family:'Cormorant Garamond',serif;font-size:1.15rem;font-weight:400;margin-bottom:.3rem;transition:color .3s}
.mi-desc{font-size:.7rem;color:rgba(42,42,34,.5);line-height:1.7}
.mi-tags{display:flex;gap:.4rem;margin-top:.5rem;flex-wrap:wrap}
.mi-tag{font-size:.55rem;letter-spacing:.15em;text-transform:uppercase;padding:.2rem .5rem;background:var(--green-light);color:var(--green)}
.mi-tag.new{background:var(--accent);color:var(--white)}
.mi-price{font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-weight:400;color:var(--accent);white-space:nowrap}
.menu-note{text-align:center;margin-top:2.5rem;font-size:.7rem;color:rgba(42,42,34,.4);letter-spacing:.05em}

/* ── ITEM MODAL ── */
.item-modal{display:none;position:fixed;inset:0;z-index:600;align-items:flex-end;justify-content:center;background:rgba(26,23,20,.7);backdrop-filter:blur(6px)}
.item-modal.open{display:flex}
.item-sheet{background:var(--cream);width:100%;max-width:520px;max-height:90dvh;overflow-y:auto;border-radius:12px 12px 0 0;padding:2rem;animation:slideUp .35s cubic-bezier(.22,1,.36,1)}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.item-sheet img{width:100%;height:220px;object-fit:cover;margin-bottom:1.5rem;border-radius:4px}
.item-sheet h3{font-family:'Cormorant Garamond',serif;font-size:1.8rem;font-weight:400;margin-bottom:.5rem}
.item-sheet p{font-size:.78rem;line-height:1.85;color:rgba(26,23,20,.6);margin-bottom:1.2rem}
.item-sheet .mi-price{font-size:1.4rem;margin-bottom:1.5rem;display:block}
.sheet-close{width:100%;padding:.85rem;background:var(--ink);color:var(--white);border:none;font-family:'Montserrat',sans-serif;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;transition:background .3s}
.sheet-close:hover{background:var(--accent)}
.sheet-pill{width:40px;height:4px;background:var(--warm3);border-radius:2px;margin:0 auto 1.5rem}

/* ── GALLERY ── */
#gallery{background:var(--cream);padding:5.5rem 0}
.gal-header{padding:0 2.4rem;margin-bottom:2.5rem}
.gal-scroll{display:flex;gap:.75rem;overflow-x:auto;padding:0 2.4rem 1.5rem;scrollbar-width:none;-ms-overflow-style:none;cursor:grab;user-select:none;align-items:flex-start}
.gal-scroll::-webkit-scrollbar{display:none}
.gal-scroll.dragging{cursor:grabbing}
.gal-img{flex-shrink:0;overflow:hidden;position:relative;border-radius:4px}
.gal-img img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;transition:transform .55s}
.gal-img:hover img{transform:scale(1.04)}
.gal-img.tall{width:260px;height:380px}
.gal-img.wide{width:360px;height:240px}
.gal-img.sq{width:260px;height:260px}
.gal-caption{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(26,23,20,.6));padding:.8rem .9rem .6rem;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.7);opacity:0;transition:opacity .3s}
.gal-img:hover .gal-caption{opacity:1}
.gal-lightbox{display:none;position:fixed;inset:0;background:rgba(0,0,0,.93);z-index:700;align-items:center;justify-content:center}
.gal-lightbox.open{display:flex}
.gal-lightbox img{max-width:92vw;max-height:90dvh;object-fit:contain}
.gal-lb-close{position:absolute;top:1.4rem;right:1.8rem;color:rgba(255,255,255,.6);font-size:1.8rem;cursor:pointer;line-height:1}
.gal-lb-close:hover{color:var(--white)}

/* ── BOOKING ── */
#booking{background:var(--ink);color:var(--warm)}
.bk-wrap{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start;max-width:1000px;margin:0 auto}
#booking .section-tag{color:var(--accent)}
#booking .section-title{color:var(--white)}
#booking .section-title em{color:var(--warm3)}
#booking .divider{background:var(--accent)}
.bk-desc{font-size:.78rem;line-height:1.95;color:rgba(247,243,238,.5);margin-top:1rem;max-width:400px}
.bk-info{display:flex;flex-direction:column;gap:1.2rem;margin-top:2rem}
.bk-row{display:flex;gap:.9rem;align-items:flex-start}
.bk-icon{font-size:.95rem;margin-top:.1rem;opacity:.55}
.bk-txt strong{display:block;font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:.2rem}
.bk-txt span{font-size:.73rem;line-height:1.7;color:rgba(247,243,238,.5)}
.bk-form{display:flex;flex-direction:column;gap:1.3rem}
.fg{display:flex;flex-direction:column;gap:.45rem}
.fg label{font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(247,243,238,.4)}
.fg input,.fg select,.fg textarea{background:transparent;border:none;border-bottom:1px solid rgba(247,243,238,.15);padding:.6rem 0;font-family:'Montserrat',sans-serif;font-size:.78rem;color:var(--warm);outline:none;transition:border-color .3s;width:100%;-webkit-appearance:none;appearance:none}
.fg input::placeholder{color:rgba(247,243,238,.2)}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--accent)}
.fg select option{background:var(--ink2);color:var(--warm)}
.fg textarea{resize:none;height:72px}
.fr{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.bk-submit{padding:.9rem;background:var(--accent);color:var(--white);border:none;font-family:'Montserrat',sans-serif;font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;cursor:pointer;transition:background .3s;width:100%}
.bk-submit:hover{background:var(--accent2)}
.bk-success{display:none;text-align:center;padding:2rem;border:1px solid rgba(247,243,238,.1)}
.bk-success h3{font-family:'Cormorant Garamond',serif;font-size:1.5rem;font-weight:300;color:var(--white);margin-bottom:.6rem}
.bk-success p{font-size:.75rem;color:rgba(247,243,238,.5);line-height:1.8}

/* ── SPECIALS ── */
#specials{background:var(--warm2)}
.specials-header{text-align:center;margin-bottom:3rem}
.specials-header .divider{margin:1.4rem auto}
.specials-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;max-width:960px;margin:0 auto}
.sp-card{background:var(--cream);position:relative;overflow:hidden}
.sp-card img{width:100%;height:200px;object-fit:cover;display:block;transition:transform .55s}
.sp-card:hover img{transform:scale(1.05)}
.sp-badge{position:absolute;top:.9rem;left:.9rem;background:var(--green);color:var(--white);font-size:.55rem;letter-spacing:.2em;text-transform:uppercase;padding:.25rem .65rem}
.sp-body{padding:1.4rem}
.sp-name{font-family:'Cormorant Garamond',serif;font-size:1.2rem;margin-bottom:.4rem}
.sp-desc{font-size:.7rem;color:rgba(42,42,34,.5);line-height:1.7;margin-bottom:.9rem}
.sp-price{font-family:'Cormorant Garamond',serif;font-size:1.1rem;color:var(--accent)}

/* ── REVIEWS ── */
#reviews{background:var(--green);padding:5rem 2.4rem}
#reviews .section-tag{color:var(--green-light)}
#reviews .section-title{color:var(--white)}
#reviews .section-title em{color:var(--green-light)}
#reviews .divider{background:var(--green-light)}
.reviews-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;margin-top:3rem}
.rv{background:rgba(255,255,255,.06);padding:1.8rem;border-top:2px solid rgba(255,255,255,.15)}
.rv-stars{font-size:.9rem;margin-bottom:.9rem;letter-spacing:.1em;color:#f0c040}
.rv-text{font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-weight:300;line-height:1.65;color:rgba(255,255,255,.85);margin-bottom:1rem;font-style:italic}
.rv-author{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.35)}

/* ── FOOTER ── */
footer{background:var(--ink);color:rgba(247,243,238,.4);padding:4rem 2.4rem 2rem}
.ft-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:3rem;max-width:960px;margin:0 auto 3rem}
.ft-logo{font-family:'Cormorant Garamond',serif;font-size:1.5rem;letter-spacing:.3em;color:var(--warm);text-decoration:none;display:inline-block;margin-bottom:1rem}
.ft-bio{font-size:.74rem;line-height:1.9;max-width:280px}
.ft-col h5{font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;color:var(--accent);margin-bottom:1rem}
.ft-col ul{list-style:none;display:flex;flex-direction:column;gap:.6rem}
.ft-col ul a{font-size:.74rem;color:rgba(247,243,238,.4);text-decoration:none;transition:color .3s}
.ft-col ul a:hover{color:var(--accent)}
.ft-hours{font-size:.74rem;line-height:2;color:rgba(247,243,238,.4)}
.ft-bottom{border-top:1px solid rgba(255,255,255,.07);padding-top:1.5rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;max-width:960px;margin:0 auto;font-size:.67rem}
.ft-social{display:flex;gap:1.2rem}
.ft-social a{color:rgba(247,243,238,.35);font-size:.67rem;letter-spacing:.15em;text-transform:uppercase;text-decoration:none;transition:color .3s}
.ft-social a:hover{color:var(--accent)}

/* ── RESPONSIVE ── */
@media(max-width:860px){
  #about{grid-template-columns:1fr}
  .about-img{height:340px}
  .about-text{padding:3.5rem 2.4rem}
  .bk-wrap{grid-template-columns:1fr;gap:3rem}
  .ft-grid{grid-template-columns:1fr 1fr;gap:2rem}
}
@media(max-width:640px){
  .nav-links,.nav-reserve{display:none}
  .ham{display:flex}
  section{padding:4rem 1.4rem}
  .hero-title{letter-spacing:-.01em}
  .hero-sub{font-size:.74rem}
  .fr{grid-template-columns:1fr}
  .ft-grid{grid-template-columns:1fr;gap:2rem}
  .ft-bottom{flex-direction:column;text-align:center}
  .menu-tabs{justify-content:flex-start;overflow-x:auto;padding-bottom:.2rem}
  .tab{padding:.8rem 1.3rem}
  .gal-img.tall{width:180px;height:270px}
  .gal-img.wide{width:260px;height:180px}
  .gal-img.sq{width:180px;height:180px}
  .stats-row{gap:1.5rem}
  #about{grid-template-columns:1fr}
}