@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700;800;900&display=swap');

:root{
  --bg:#090909;
  --bg2:#101010;
  --card:#141414;
  --gold:#d9ad58;
  --gold2:#f1d38a;
  --cream:#f6f0e5;
  --muted:#9a948a;
  --line:rgba(255,255,255,.10);
  --white:#fff;
  --max:1200px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--cream);
  font-family:"DM Sans",sans-serif;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{cursor:pointer}

.wrap{width:min(var(--max),92%);margin:auto}

/* ---------- GLOBAL ATMOSPHERE ---------- */
body:before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-2;
  background:
    radial-gradient(circle at 85% 12%,rgba(217,173,88,.12),transparent 24%),
    radial-gradient(circle at 8% 78%,rgba(217,173,88,.06),transparent 28%);
}
.noise{
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  opacity:.045;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
}

/* ---------- HEADER ---------- */
.header{
  position:fixed;
  top:0;left:0;width:100%;
  z-index:100;
  border-bottom:1px solid transparent;
  transition:.35s ease;
}
.header.scrolled{
  background:rgba(9,9,9,.86);
  backdrop-filter:blur(18px);
  border-color:var(--line);
}
.nav{
  height:82px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
}
.logo{
  width:42px;height:42px;
  border:1px solid var(--gold);
  display:grid;place-items:center;
  transform:rotate(45deg);
}
.logo span{
  transform:rotate(-45deg);
  font-family:"Playfair Display",serif;
  font-size:19px;
  color:var(--gold2);
}
.brand-name{
  font-family:"Playfair Display",serif;
  font-size:22px;
  font-weight:800;
  letter-spacing:.16em;
}
.brand-name small{
  display:block;
  color:var(--gold);
  font-family:"DM Sans",sans-serif;
  font-size:8px;
  letter-spacing:.34em;
  margin-top:1px;
}
.links{display:flex;gap:30px}
.links a{
  position:relative;
  font-size:12px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#d8d2c7;
}
.links a:after{
  content:"";
  position:absolute;
  left:0;bottom:-8px;
  width:0;height:1px;
  background:var(--gold);
  transition:.3s;
}
.links a:hover:after,.links a.active:after{width:100%}
.links a:hover,.links a.active{color:var(--gold2)}
.header-btn{
  border:1px solid var(--gold);
  background:transparent;
  color:var(--gold2);
  padding:11px 18px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.header-btn:hover{background:var(--gold);color:#090909}

.menu-toggle{
  display:none;
  width:44px;height:44px;
  border:1px solid var(--line);
  background:#111;
  color:white;
}
.menu-toggle span,.menu-toggle:before,.menu-toggle:after{
  content:"";
  display:block;
  width:19px;height:1px;
  background:var(--gold2);
  margin:5px auto;
  transition:.3s;
}
.menu-toggle.open span{opacity:0}
.menu-toggle.open:before{transform:translateY(6px) rotate(45deg)}
.menu-toggle.open:after{transform:translateY(-6px) rotate(-45deg)}

/* ---------- HERO — NO IMAGE ---------- */
.hero{
  min-height:100vh;
  display:flex;
  align-items:center;
  position:relative;
  overflow:hidden;
  border-bottom:1px solid var(--line);
}
.hero-grid{
  position:absolute;
  inset:0;
  opacity:.22;
  background-image:
    linear-gradient(rgba(217,173,88,.08) 1px,transparent 1px),
    linear-gradient(90deg,rgba(217,173,88,.08) 1px,transparent 1px);
  background-size:80px 80px;
  mask-image:linear-gradient(to bottom,black,transparent 92%);
}
.hero-ring{
  position:absolute;
  width:min(720px,75vw);
  height:min(720px,75vw);
  border:1px solid rgba(217,173,88,.14);
  border-radius:50%;
  right:-170px;
  top:50%;
  transform:translateY(-50%);
}
.hero-ring:before,.hero-ring:after{
  content:"";
  position:absolute;
  inset:55px;
  border:1px solid rgba(217,173,88,.10);
  border-radius:50%;
}
.hero-ring:after{inset:120px}
.hero-line{
  position:absolute;
  right:16%;
  top:14%;
  width:1px;height:72%;
  background:linear-gradient(transparent,var(--gold),transparent);
  opacity:.35;
}
.hero-content{
  position:relative;
  z-index:2;
  padding-top:70px;
  max-width:800px;
}
.kicker{
  color:var(--gold2);
  font-size:11px;
  font-weight:700;
  letter-spacing:.35em;
  text-transform:uppercase;
  display:flex;
  align-items:center;
  gap:12px;
}
.kicker:before{content:"";width:45px;height:1px;background:var(--gold)}
.hero h1{
  margin-top:22px;
  font-family:"Playfair Display",serif;
  font-size:clamp(68px,11vw,150px);
  line-height:.78;
  letter-spacing:-.055em;
  font-weight:800;
}
.hero h1 em{
  color:transparent;
  -webkit-text-stroke:1px var(--gold);
  font-style:normal;
}
.hero-copy{
  max-width:560px;
  margin-top:35px;
  color:var(--muted);
  font-size:15px;
  line-height:1.9;
}
.hero-actions{
  display:flex;
  gap:12px;
  margin-top:32px;
}
.btn{
  border:1px solid var(--gold);
  padding:14px 22px;
  font-size:11px;
  font-weight:800;
  letter-spacing:.15em;
  text-transform:uppercase;
  transition:.3s;
}
.btn.gold{background:var(--gold);color:#0a0908}
.btn.gold:hover{background:var(--gold2);transform:translateY(-2px)}
.btn.dark{background:transparent;color:var(--cream);border-color:var(--line)}
.btn.dark:hover{border-color:var(--gold);color:var(--gold2)}
.hero-mark{
  position:absolute;
  right:8%;
  bottom:11%;
  font-family:"Playfair Display",serif;
  color:rgba(217,173,88,.18);
  font-size:clamp(90px,14vw,210px);
  font-weight:900;
  line-height:1;
  user-select:none;
}

/* ---------- SECTIONS ---------- */
.section{padding:120px 0}
.section-head{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:30px;
  margin-bottom:50px;
}
.eyebrow{
  color:var(--gold);
  font-size:10px;
  font-weight:800;
  letter-spacing:.3em;
  text-transform:uppercase;
}
h2{
  font-family:"Playfair Display",serif;
  font-size:clamp(42px,6vw,74px);
  line-height:.95;
  margin-top:13px;
  letter-spacing:-.035em;
}
.section-head p{
  max-width:400px;
  color:var(--muted);
  line-height:1.8;
  font-size:14px;
}

/* ---------- SIGNATURE ---------- */
.signature{
  background:#0d0d0d;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.signature-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  align-items:center;
}
.big-quote{
  font-family:"Playfair Display",serif;
  font-size:clamp(35px,4vw,58px);
  line-height:1.05;
}
.big-quote span{color:var(--gold2)}
.story{
  color:var(--muted);
  font-size:14px;
  line-height:1.9;
}
.story strong{color:var(--cream)}

/* ---------- MENU ---------- */
.filters{display:flex;flex-wrap:wrap;gap:8px}
.filter{
  border:1px solid var(--line);
  background:transparent;
  color:var(--muted);
  padding:10px 15px;
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.filter.active,.filter:hover{border-color:var(--gold);color:var(--gold2)}
.menu-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}
.dish{
  min-height:330px;
  padding:28px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  background:linear-gradient(145deg,#121212,#0d0d0d);
  transition:.35s;
}
.dish:hover{
  background:linear-gradient(145deg,#17150f,#0d0d0d);
  transform:translateY(-3px);
}
.dish-no{color:rgba(217,173,88,.5);font-size:10px;letter-spacing:.15em}
.dish h3{
  font-family:"Playfair Display",serif;
  font-size:30px;
  margin:35px 0 10px;
}
.dish p{color:var(--muted);font-size:12px;line-height:1.7;max-width:310px}
.dish-bottom{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:25px;
}
.price{color:var(--gold2);font-weight:800}
.add{
  width:38px;height:38px;
  border:1px solid var(--line);
  background:transparent;
  color:var(--gold2);
  font-size:20px;
}
.add:hover{background:var(--gold);color:#000;border-color:var(--gold)}

/* ---------- EXPERIENCE ---------- */
.experience{
  background:var(--gold);
  color:#0a0908;
}
.exp-grid{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:70px;
}
.experience .eyebrow{color:#6b4b17}
.experience h2{max-width:720px}
.exp-text{font-size:14px;line-height:1.9;max-width:520px;margin-top:25px}
.exp-numbers{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #0a090844;margin-top:35px}
.num{padding:22px 0;border-bottom:1px solid #0a090844}
.num b{display:block;font-family:"Playfair Display",serif;font-size:42px}
.num span{font-size:10px;letter-spacing:.15em;text-transform:uppercase}

/* ---------- RESERVATION ---------- */
.reservation{background:#0b0b0b}
.reserve-box{
  border:1px solid var(--line);
  padding:55px;
  display:grid;
  grid-template-columns:.75fr 1.25fr;
  gap:70px;
  background:
    linear-gradient(135deg,rgba(217,173,88,.07),transparent 35%),
    #101010;
}
.reserve-copy p{color:var(--muted);font-size:13px;line-height:1.8;margin-top:22px}
.contact-line{margin-top:28px;color:var(--gold2);font-size:13px}
.form{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.field{
  width:100%;
  background:#090909;
  border:1px solid var(--line);
  color:var(--cream);
  padding:15px;
  outline:none;
}
.field:focus{border-color:var(--gold)}
.field.full{grid-column:1/-1}
.form .btn{width:100%}

/* ---------- FOOTER ---------- */
footer{
  padding:60px 0 25px;
  border-top:1px solid var(--line);
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:35px;
}
.footer-title{font-family:"Playfair Display",serif;font-size:25px}
.footer p,.footer a{color:var(--muted);font-size:12px;line-height:2}
.footer h4{color:var(--gold2);font-size:10px;letter-spacing:.2em;text-transform:uppercase;margin-bottom:14px}
.copyright{
  border-top:1px solid var(--line);
  margin-top:45px;
  padding-top:20px;
  color:#68635b;
  font-size:10px;
  display:flex;
  justify-content:space-between;
}

/* ---------- CART ---------- */
.cart-button{
  position:fixed;
  right:22px;bottom:22px;
  z-index:90;
  border:1px solid var(--gold);
  background:#111;
  color:var(--gold2);
  padding:13px 17px;
  box-shadow:0 15px 45px #000;
}
.count{
  display:inline-grid;
  place-items:center;
  min-width:19px;height:19px;
  border-radius:50%;
  background:var(--gold);
  color:#000;
  font-size:10px;
  margin-left:6px;
}
.cart-panel{
  position:fixed;
  z-index:120;
  right:-420px;top:0;
  width:min(410px,92vw);
  height:100vh;
  background:#101010;
  border-left:1px solid var(--line);
  padding:28px;
  transition:.4s ease;
  box-shadow:-20px 0 70px #000;
}
.cart-panel.open{right:0}
.cart-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:20px}
.cart-head h3{font-family:"Playfair Display",serif;font-size:28px}
.close{
  background:none;border:0;color:var(--cream);font-size:28px;
}
.cart-items{padding:20px 0;max-height:65vh;overflow:auto}
.cart-row{display:flex;justify-content:space-between;gap:15px;padding:15px 0;border-bottom:1px solid var(--line)}
.cart-row small{color:var(--muted)}
.qty button{background:none;border:1px solid var(--line);color:var(--cream);width:25px;height:25px}
.cart-foot{border-top:1px solid var(--line);padding-top:20px}
.total{display:flex;justify-content:space-between;margin-bottom:15px}

/* ---------- MODAL ---------- */
.modal{
  position:fixed;inset:0;
  z-index:200;
  background:rgba(0,0,0,.78);
  display:none;
  place-items:center;
  padding:20px;
  backdrop-filter:blur(8px);
}
.modal.show{display:grid}
.modal-box{
  width:min(520px,100%);
  background:#121212;
  border:1px solid var(--line);
  padding:35px;
  position:relative;
}
.modal-box h3{font-family:"Playfair Display",serif;font-size:40px}
.modal-box p{color:var(--muted);font-size:12px;margin:10px 0 25px}

/* ---------- TOAST ---------- */
.toast{
  position:fixed;
  z-index:300;
  left:50%;bottom:25px;
  transform:translate(-50%,20px);
  opacity:0;
  pointer-events:none;
  background:var(--gold);
  color:#080706;
  padding:12px 18px;
  font-size:11px;
  font-weight:800;
  letter-spacing:.06em;
  transition:.3s;
}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ---------- RESPONSIVE ---------- */
/* Mobile menu is ALWAYS hidden until the hamburger opens it.
   This is deliberately global so Firefox and Chrome behave identically. */
.mobile-nav{
  display:none;
}
.mobile-nav.open{
  display:block;
}

@media(max-width:900px){
  .links,.header-btn{display:none}
  .menu-toggle{display:block}
  .mobile-nav{
    position:absolute;
    top:82px;left:0;width:100%;
    background:#0c0c0c !important;
    color:var(--cream);
    border-bottom:1px solid var(--line);
    padding:15px 4%;
    box-shadow:0 20px 45px rgba(0,0,0,.65);
  }
  .mobile-nav a{
    display:block;padding:15px 0;
    border-bottom:1px solid var(--line);
    font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  }
  .hero-mark{right:2%;bottom:15%}
  .signature-grid,.exp-grid,.reserve-box{grid-template-columns:1fr;gap:35px}
  .reserve-box{padding:30px}
  .menu-grid{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .nav{height:72px}
  .mobile-nav{top:72px}
  .hero{min-height:850px}
  .hero h1{font-size:clamp(62px,19vw,105px)}
  .hero-copy{font-size:13px}
  .hero-ring{right:-300px}
  .section{padding:85px 0}
  .section-head{display:block}
  .section-head p{margin-top:20px}
  .menu-grid{grid-template-columns:1fr}
  .form{grid-template-columns:1fr}
  .field.full{grid-column:auto}
  .footer-grid{grid-template-columns:1fr}
  .copyright{display:block;line-height:2}
}


/* ---------- INTERACTION RESET ---------- */
html,body{background:#090909}
button,a,input,select,textarea{
  -webkit-tap-highlight-color:transparent;
}
button{
  appearance:none;
  -webkit-appearance:none;
}
button:focus,button:active,
a:focus,a:active{
  outline:none !important;
  box-shadow:none !important;
}
@media(max-width:900px){
  .mobile-nav{display:none !important;background:#0c0c0c !important}
  .mobile-nav.open{display:block !important}
  .footer-grid + .copyright{padding-bottom:105px}
}


/* ---------- CROSS-BROWSER TOUCH / FOCUS RESET ---------- */
html{
  color-scheme:dark;
}
button,
a{
  -webkit-tap-highlight-color:transparent !important;
  tap-highlight-color:transparent !important;
}
button{
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  background-clip:padding-box;
}
.menu-toggle,
.menu-toggle:hover,
.menu-toggle:focus,
.menu-toggle:focus-visible,
.menu-toggle:active{
  background:#111 !important;
  color:var(--gold2) !important;
  border-color:var(--line) !important;
  outline:none !important;
  box-shadow:none !important;
}
.mobile-nav a,
.mobile-nav button{
  -webkit-tap-highlight-color:transparent !important;
  outline:none !important;
}
.copyright{
  padding-bottom:95px;
}

/* ---------- STICKY SOCIAL RAIL ---------- */
.social-rail{
  position:fixed;
  right:0;
  top:50%;
  transform:translateY(-50%);
  z-index:500;
  display:flex;
  align-items:center;
  gap:0;
}
.social-links{
  display:flex;
  flex-direction:column;
  gap:7px;
  width:66px;
  padding:8px;
  background:rgba(8,8,8,.96);
  border:1px solid rgba(217,173,88,.22);
  border-right:0;
  overflow:hidden;
  transition:width .3s ease,opacity .25s ease,padding .3s ease;
}
.social{
  width:48px;
  height:48px;
  flex:0 0 48px;
  display:grid;
  place-items:center;
  border:1px solid rgba(217,173,88,.32);
  background:#101010;
  color:var(--gold2);
  transition:transform .2s ease,background .2s ease,color .2s ease;
}
.social svg{width:32px;height:32px;display:block}
.social:hover{
  background:var(--gold);
  color:#090909;
  transform:translateX(-3px);
}
.social-handle{
  width:34px;
  height:112px;
  flex:0 0 34px;
  display:grid;
  place-items:center;
  border:1px solid rgba(217,173,88,.28);
  border-right:0;
  background:#0a0a0a !important;
  color:var(--gold2) !important;
  padding:0 !important;
  margin:0 !important;
  cursor:pointer;
  outline:none !important;
  box-shadow:none !important;
  -webkit-tap-highlight-color:transparent !important;
}
.social-handle span{
  display:block;
  font-family:Georgia,serif;
  font-size:34px;
  line-height:1;
  transform:none;
  transition:transform .3s ease;
}
.social-rail.collapsed .social-links{
  width:0;
  padding-left:0;
  padding-right:0;
  opacity:0;
  border:0;
  pointer-events:none;
}
.social-rail.collapsed .social-handle span{
  transform:none;
}
.social-rail.collapsed .social-handle{
  border-left:1px solid rgba(217,173,88,.28);
  border-right:0;
}

/* ---------- BAG NEVER HIDES FOOTER CREDIT ---------- */
.cart-button{z-index:450}
@media(max-width:600px){
  footer{padding-bottom:115px}
  .social-rail{top:50%;transform:translateY(-50%)}
  .social-links{width:60px;padding:7px;gap:6px}
  .social{width:44px;height:44px;flex-basis:44px}
  .social svg{width:29px;height:29px}
  .social-handle{width:30px;flex-basis:30px;height:100px}
  .social-handle span{font-size:31px}
}

/* ---------- MOBILE NAV MUST NEVER BE WHITE ---------- */
@media(max-width:900px){
  .mobile-nav,
  .mobile-nav.open{
    background:#0c0c0c !important;
    color:#f6f0e5 !important;
  }
  .menu-toggle,
  .menu-toggle:focus,
  .menu-toggle:active{
    background:#111 !important;
    color:var(--gold2) !important;
    border-color:var(--line) !important;
  }
}


@media(max-width:900px){
  .mobile-nav,
  .mobile-nav.open{
    background:#0c0c0c !important;
    color:var(--cream) !important;
  }
}
@media(max-width:600px){
  .copyright{
    display:flex;
    flex-direction:column;
    gap:8px;
    line-height:1.6;
  }

  .copyright span{
    display:block;
  }
}

/* ---------- HAMBURGER: 3 LINES → X ---------- */
.menu-toggle{
  position:relative;
}
.menu-toggle span,
.menu-toggle span::before,
.menu-toggle span::after{
  content:"";
  display:block;
  width:19px;
  height:1px;
  background:var(--gold2);
  margin:0 auto;
  transition:transform .3s ease, opacity .2s ease;
}
.menu-toggle span::before{transform:translateY(-6px)}
.menu-toggle span::after{transform:translateY(5px)}
.menu-toggle.open span{background:transparent}
.menu-toggle.open span::before{transform:translateY(0) rotate(45deg)}
.menu-toggle.open span::after{transform:translateY(-1px) rotate(-45deg)}
