:root{
  --ink:#f4f6f7;
  --muted:#aeb8c0;
  --paper:#101418;
  --card:#182028;
  --card2:#1d2730;
  --line:#31404c;
  --accent:#435c70;
  --accent-hover:#57738a;
  --accent-soft:#22303b;
  --max:1180px
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Arial,Helvetica,sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.6
}
a{color:inherit}
img{max-width:100%;display:block}

.topbar{
  background:#090c0f;
  color:#d7dde2;
  font-size:.92rem;
  border-bottom:1px solid #222c34
}
.topbar .wrap{
  display:flex;
  gap:24px;
  justify-content:space-between;
  align-items:center;
  padding:8px 20px;
  max-width:var(--max);
  margin:auto
}
.topbar a{text-decoration:none}

.site-header{
  background:rgba(16,20,24,.97);
  position:sticky;
  top:0;
  z-index:20;
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(10px)
}
.nav{
  max-width:var(--max);
  margin:auto;
  padding:12px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  white-space:nowrap
}
.brand-logo{
  width:58px;
  height:58px;
  object-fit:contain
}
.brand-copy{
  letter-spacing:.22em;
  font-size:1.05rem;
  font-weight:700
}
.brand-copy small{
  display:block;
  letter-spacing:.15em;
  font-size:.55rem;
  font-weight:400;
  color:var(--muted);
  margin-top:2px
}
.links{display:flex;gap:22px;align-items:center}
.links a{
  text-decoration:none;
  font-size:.95rem;
  color:#dce2e6;
  transition:color .2s ease
}
.links a:hover,.links a.active{color:#8fa8bb}
.actions{display:flex;gap:10px}
.btn{
  display:inline-block;
  text-decoration:none;
  padding:10px 16px;
  border:1px solid #6f8799;
  border-radius:999px;
  font-weight:700;
  transition:transform .15s ease,background .2s ease,border-color .2s ease
}
.btn.primary{
  background:var(--accent);
  border-color:var(--accent);
  color:#fff
}
.btn:hover{
  transform:translateY(-1px);
  background:var(--accent-hover);
  border-color:var(--accent-hover);
  color:#fff
}
.menu-toggle{
  display:none;
  background:#182028;
  color:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  padding:8px 10px;
  font-size:1.2rem
}

.hero{
  min-height:68vh;
  background:
    linear-gradient(90deg,rgba(7,10,13,.86),rgba(7,10,13,.38)),
    url('../images/restaurant-01.jpg') center/cover;
  color:#fff;
  display:grid;
  place-items:center
}
.hero-inner{
  width:min(var(--max),100%);
  padding:80px 20px
}
.hero-mark{
  width:110px;
  height:110px;
  margin-bottom:22px;
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.35))
}
.eyebrow{
  text-transform:uppercase;
  letter-spacing:.25em;
  font-size:.8rem;
  color:#9eb1c0
}
.hero h1{
  font-family:Georgia,'Times New Roman',serif;
  font-weight:400;
  font-size:clamp(3rem,8vw,6.8rem);
  line-height:.95;
  margin:.15em 0
}
.hero p{max-width:650px;font-size:1.1rem;color:#e3e8eb}

.section{
  max-width:var(--max);
  margin:auto;
  padding:72px 20px
}
.section h1,.section h2{
  font-family:Georgia,'Times New Roman',serif;
  font-weight:400
}
.section h1{
  font-size:clamp(2.4rem,5vw,4rem);
  margin:.1em 0 .5em
}
.section h2{font-size:2rem}
.section-title{text-align:center;margin-bottom:38px}
.grid-2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
  align-items:center
}
.info-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:16px;
  padding:28px;
  box-shadow:0 16px 40px rgba(0,0,0,.16)
}
.info-card h3{margin-top:0}

.feature-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px
}
.feature{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 16px 38px rgba(0,0,0,.14)
}
.feature img{
  aspect-ratio:4/3;
  object-fit:cover;
  filter:saturate(.88) contrast(1.02)
}
.feature div{padding:18px}
.feature a{color:#9eb4c5;text-decoration:none}

.page-hero{
  background:linear-gradient(135deg,#151c22,#253542);
  color:#fff;
  padding:66px 20px;
  text-align:center;
  border-bottom:1px solid var(--line)
}
.page-hero h1{
  font-family:Georgia,serif;
  font-weight:400;
  font-size:3.2rem;
  margin:0
}

.menu-sections{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:28px
}
.menu-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:14px;
  padding:24px
}
.menu-card h2{
  font-size:1.55rem;
  margin:0 0 14px;
  border-bottom:1px solid var(--line);
  padding-bottom:10px
}
.menu-item{
  padding:10px 0;
  border-bottom:1px dotted #41515e
}
.menu-item:last-child{border-bottom:0}
.menu-item strong{
  display:flex;
  justify-content:space-between;
  gap:14px
}
.menu-item span{color:var(--muted);font-size:.94rem}

.note{
  background:var(--accent-soft);
  border-left:4px solid #6f8799;
  padding:15px 18px;
  margin:24px 0
}

.gallery-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px
}
.gallery-grid img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  border-radius:12px;
  cursor:pointer;
  border:1px solid var(--line)
}
.lightbox{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.92);
  display:none;
  place-items:center;
  padding:24px;
  z-index:100
}
.lightbox.open{display:grid}
.lightbox img{max-height:90vh;max-width:94vw}
.lightbox button{
  position:absolute;
  top:18px;
  right:22px;
  background:#fff;
  color:#111;
  border:0;
  border-radius:999px;
  width:42px;
  height:42px;
  font-size:1.4rem
}
.contact-img{
  border-radius:16px;
  border:1px solid var(--line)
}
.map-button{margin-top:12px}

.footer{
  background:#090c0f;
  color:#aeb8c0;
  border-top:1px solid #202a32
}
.footer .wrap{
  max-width:var(--max);
  margin:auto;
  padding:46px 20px;
  display:grid;
  grid-template-columns:1.2fr 1fr 1fr;
  gap:32px
}
.footer h3{color:#fff;margin-top:0}
.footer a{text-decoration:none}
.footer-bottom{
  border-top:1px solid #222c34;
  padding:18px 20px;
  text-align:center;
  font-size:.88rem;
  color:#7e8b95
}

@media(max-width:860px){
  .topbar .wrap{display:none}
  .menu-toggle{display:block}
  .links{
    display:none;
    position:absolute;
    left:0;
    right:0;
    top:83px;
    background:#101418;
    padding:18px 20px;
    border-bottom:1px solid var(--line);
    flex-direction:column;
    align-items:flex-start
  }
  .links.open{display:flex}
  .actions{display:none}
  .grid-2,.menu-sections,.footer .wrap{grid-template-columns:1fr}
  .feature-grid,.gallery-grid{grid-template-columns:repeat(2,1fr)}
  .hero{min-height:58vh}
}
@media(max-width:520px){
  .brand-logo{width:50px;height:50px}
  .brand-copy{font-size:.9rem}
  .feature-grid,.gallery-grid{grid-template-columns:1fr}
  .hero-inner{padding:60px 20px}
  .hero-mark{width:88px;height:88px}
  .section{padding:52px 18px}
}