:root{
  --cream:#f7f1e6; --paper:#fbf8f2; --ink:#2a2420; --muted:#6f645a;
  --terracotta:#b5583a; --olive:#5f6b45; --gold:#b8955a; --deep:#1f2a22;
  --serif:'Cormorant Garamond',Georgia,serif; --sans:'Jost',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);font-weight:300;color:var(--ink);background:var(--paper);line-height:1.7;font-size:17px}
a{color:inherit}
img{max-width:100%}
.container{width:min(1120px,90%);margin:0 auto}
.narrow{width:min(720px,90%)}
.center{text-align:center}
.section{padding:110px 0}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.1}
h2{font-size:clamp(2.2rem,4.5vw,3.3rem);margin-bottom:.4rem}
h3{font-size:1.9rem}
.eyebrow{font-size:.78rem;letter-spacing:.32em;text-transform:uppercase;color:var(--terracotta);margin-bottom:.9rem;font-weight:400}
.divider{width:70px;height:1px;background:var(--gold);margin:1.4rem auto 2rem;position:relative}
.divider::after{content:"";position:absolute;left:50%;top:50%;width:7px;height:7px;background:var(--paper);border:1px solid var(--gold);transform:translate(-50%,-50%) rotate(45deg)}
.divider.left{margin-left:0}
.lead{font-family:var(--serif);font-size:1.5rem;line-height:1.5;margin-bottom:1.2rem;color:var(--ink)}
.about p:not(.lead):not(.eyebrow){color:var(--muted)}

/* placeholders */
.ph{background:#fff3a8;color:#7a3b00;border:1px dashed #d08a00;padding:0 .35em;border-radius:3px;font-style:normal;font-family:var(--sans);font-weight:500;font-size:.85em;text-decoration:none;letter-spacing:0;text-transform:none}
.ph.block{display:inline-block;padding:.3em .7em;font-size:1rem}
.btn .ph{margin-left:.4em;font-size:.7em}

/* buttons */
.btn{display:inline-block;background:var(--terracotta);color:#fff;text-decoration:none;padding:.9em 1.9em;font-size:.82rem;letter-spacing:.18em;text-transform:uppercase;font-weight:400;border:1px solid var(--terracotta);transition:.25s}
.btn:hover{background:#9c472c;border-color:#9c472c}
.btn-ghost{background:transparent;border-color:rgba(255,255,255,.7)}
.btn-ghost:hover{background:rgba(255,255,255,.12);border-color:#fff}
.btn-outline{background:transparent;color:var(--terracotta);margin-top:1.6rem}
.btn-outline:hover{color:#fff}
.btn-small{padding:.6em 1.2em;font-size:.72rem}

/* nav */
.nav{position:fixed;inset:0 0 auto;z-index:50;transition:.3s;color:#fff}
.nav.scrolled{background:rgba(31,42,34,.96);box-shadow:0 2px 20px rgba(0,0,0,.15)}
.nav-inner{width:min(1200px,92%);margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:76px}
.brand{font-family:var(--serif);font-size:1.7rem;text-decoration:none;font-weight:500;letter-spacing:.02em}
.brand span{font-style:italic;color:var(--gold);font-weight:400}
.nav-links{display:flex;gap:2rem;align-items:center}
.nav-links a{text-decoration:none;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;font-weight:400}
.nav-links a:not(.btn):hover{color:var(--gold)}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;width:32px;height:24px;position:relative}
.nav-toggle span{display:block;height:1.5px;background:#fff;margin:6px 0;transition:.3s}

/* hero */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;overflow:hidden;
  background:radial-gradient(ellipse at 20% 15%,rgba(184,149,90,.35),transparent 55%),radial-gradient(ellipse at 85% 90%,rgba(181,88,58,.45),transparent 55%),linear-gradient(160deg,#1f2a22 0%,#2e3a2c 45%,#4a2e22 100%)}
.hero-pattern{position:absolute;inset:0;opacity:.09;
  background-image:repeating-linear-gradient(45deg,#fff 0 1px,transparent 1px 28px),repeating-linear-gradient(-45deg,#fff 0 1px,transparent 1px 28px)}
.hero::after{content:"";position:absolute;inset:28px;border:1px solid rgba(184,149,90,.4);pointer-events:none}
.hero-content{position:relative;z-index:1;padding:120px 6% 80px}
.hero .eyebrow{color:var(--gold)}
.hero h1{font-size:clamp(4rem,12vw,8.5rem);font-weight:400;letter-spacing:.02em}
.hero-sub{font-family:var(--serif);font-style:italic;font-size:clamp(1.6rem,3.5vw,2.4rem);color:var(--gold);margin-top:-.3rem}
.hero-tag{max-width:520px;margin:1.6rem auto 2.4rem;font-size:1.08rem;opacity:.88}
.hero-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.scroll-cue{position:absolute;bottom:50px;left:50%;width:1px;height:50px;background:linear-gradient(var(--gold),transparent);z-index:1}

/* menu */
.menu{background:var(--cream);background-image:radial-gradient(rgba(95,107,69,.07) 1px,transparent 1px);background-size:22px 22px}
.tabs{display:flex;justify-content:center;gap:.5rem;margin-bottom:3.5rem;flex-wrap:wrap}
.tab{font-family:var(--sans);background:transparent;border:1px solid var(--gold);color:var(--ink);padding:.75em 2em;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;transition:.25s}
.tab.active,.tab:hover{background:var(--deep);border-color:var(--deep);color:#fff}
.menu-panel{display:none;animation:fade .5s ease}
.menu-panel.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.menu-group{background:var(--paper);padding:2.6rem 3rem;margin-bottom:2rem;border:1px solid rgba(184,149,90,.25);box-shadow:0 10px 30px rgba(60,40,20,.05)}
.menu-group h3{text-align:center;color:var(--olive);margin-bottom:2rem;font-style:italic;font-weight:500}
.menu-group h3::after{content:"";display:block;width:40px;height:1px;background:var(--gold);margin:.8rem auto 0}
.menu-row{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
.menu-list{list-style:none;display:grid;gap:1.6rem 3.5rem}
.menu-list.two-col{grid-template-columns:1fr 1fr}
.item-head{display:flex;align-items:baseline;gap:.6rem}
.item-name{font-family:var(--serif);font-size:1.35rem;font-weight:600}
.dots{flex:1;border-bottom:1px dotted rgba(42,36,32,.35);transform:translateY(-4px)}
.price{font-family:var(--serif);font-size:1.25rem;color:var(--terracotta);font-weight:600;white-space:nowrap}
.price.ph{font-size:.8rem}
.item-desc{color:var(--muted);font-size:.95rem;margin-top:.2rem}
.mark{font-family:var(--sans);font-size:.7rem;font-weight:500;color:var(--olive);letter-spacing:.05em;vertical-align:middle}
.legend{text-align:center;font-size:.88rem;color:var(--muted);max-width:760px;margin:1.5rem auto 0}

/* visit */
.visit-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:4rem;align-items:center}
address{font-style:normal;font-family:var(--serif);font-size:1.7rem;line-height:1.4}
.map-wrap{position:relative;padding-top:68%;border:1px solid rgba(184,149,90,.4);box-shadow:0 20px 50px rgba(0,0,0,.08)}
.map-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(.75) sepia(.12)}

/* contact */
.contact{background:var(--deep);color:#f1ece2;padding:90px 0}
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.contact-card{text-align:center;padding:2.4rem 1.6rem;border:1px solid rgba(184,149,90,.35)}
.contact-card h3{color:var(--gold);margin-bottom:1.2rem;font-style:italic}
.contact-card p{margin-bottom:.6rem}
.contact-card .btn{margin-top:.8rem}
.small{font-size:.8rem;opacity:.6}

/* footer */
.footer{background:#161e18;color:rgba(241,236,226,.75);padding:50px 0;font-size:.9rem}
.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}
.footer-brand{color:#fff;margin-bottom:.3rem}
.footer-links{display:flex;gap:1rem}
.footer-legal{text-align:right}

/* responsive */
@media (max-width:900px){
  .menu-list.two-col,.menu-row,.visit-grid,.contact-grid{grid-template-columns:1fr}
  .menu-row{gap:0}
  .visit-grid{gap:2.5rem}
  .nav-toggle{display:block}
  .nav-links{position:fixed;top:76px;left:0;right:0;flex-direction:column;gap:1.4rem;padding:2rem;background:rgba(31,42,34,.98);transform:translateY(-130%);transition:.35s;z-index:-1}
  .nav.open .nav-links{transform:none}
  .nav.open{background:rgba(31,42,34,.98)}
  .nav.open .nav-toggle span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
  .nav.open .nav-toggle span:nth-child(2){opacity:0}
  .nav.open .nav-toggle span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
}
@media (max-width:600px){
  body{font-size:16px}
  .section{padding:80px 0}
  .menu-group{padding:2rem 1.3rem}
  .item-name{font-size:1.2rem}
  .hero::after{inset:14px}
  .footer-inner{flex-direction:column;text-align:center}
  .footer-legal{text-align:center}
}
.footer a{color:inherit}.footer a:hover{color:var(--gold)}
.footer-policies{display:flex;gap:1.2rem;flex-wrap:wrap;font-size:.85rem}
.hours{font-family:var(--serif);font-size:1.8rem;color:#fff}
.legal-page h2{margin-bottom:.4rem}.legal-body{background:var(--paper);border:1px solid rgba(184,149,90,.3);padding:2.4rem 2.6rem;line-height:1.75}
.legal-body h3{font-size:1.5rem;color:var(--olive);margin:1.8rem 0 .6rem}.legal-body p,.legal-body li{margin-bottom:.8rem}.legal-body ul,.legal-body ol{padding-left:1.4rem}
@media (max-width:600px){.legal-body{padding:1.5rem 1.2rem}}
.legal-page{padding:140px 0 100px;min-height:70vh;background:var(--cream)}
.legal-page .nav-links-static,.nav-links-static{position:static!important;transform:none!important;flex-direction:row!important;background:none!important;padding:0!important;z-index:auto!important}
@media (max-width:600px){.nav-links-static{display:none!important}}
.legal-meta{font-family:var(--serif);font-size:1.15rem;color:var(--muted);margin-bottom:1.4rem;padding-bottom:1.2rem;border-bottom:1px solid rgba(184,149,90,.35)}
.legal-body ul{list-style:disc;margin:0 0 1rem}.legal-body a{color:var(--terracotta);word-break:break-word}
.legal-address{padding-left:1rem;border-left:2px solid var(--gold)}
