:root{
  --charcoal:#1F1F1F;
  --brick:#8A3A2B;
  --wheat:#E6D8C3;
  --olive:#6C7A49;
  --off:#FAF7F2;
  --muted:#6B6B6B;
  --radius:14px;
  --shadow:0 8px 24px rgba(0,0,0,.12);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--off);
  background:#121212;
  line-height:1.6;
}
img{max-width:100%;display:block}
.container{width:min(1100px,92%);margin-inline:auto}
h1,h2,h3,h4{font-family:"Playfair Display", Georgia, serif; line-height:1.2; margin:0 0 .4em}
h1{font-size:clamp(2rem,5vw,3.2rem)}
h2{font-size:clamp(1.6rem,4vw,2.4rem)}
h3{font-size:clamp(1.25rem,3vw,1.8rem)}
h4{font-size:1.05rem}
p{margin:.4rem 0 .9rem}
a{color:inherit;text-decoration:none}
.btn{display:inline-block;padding:.7rem 1rem;border-radius:10px;font-weight:700}
.btn-brick{background:var(--brick);color:#fff}
.btn-wheat{background:var(--wheat);color:#1E1E1E}
.btn-ghost{border:1px solid #fff1; padding:.65rem 1rem; border-radius:10px}
.link-arrow{opacity:.9}
.link-arrow:hover{opacity:1}

.skip-link{position:absolute;left:-999px;top:auto}
.skip-link:focus{left:16px;top:16px;background:#fff;color:#000;padding:8px;border-radius:6px}

.util-bar{
  background:#171717;border-bottom:1px solid #ffffff10;
  display:flex;gap:12px;align-items:center;justify-content:center;
  padding:.45rem .75rem;font-size:.9rem;color:#ddd
}
.badge{background:#1e2a1e;border:1px solid #2d3c2d;color:#b6f3b6;padding:.2rem .5rem;border-radius:999px}
.util-location{color:#bbb}

/* Header/Nav */
.site-header{
  position:sticky;top:0;z-index:20;
  background:rgba(18,18,18,.8);backdrop-filter:saturate(150%) blur(10px);
  border-bottom:1px solid #ffffff10;
}
.nav-wrap{display:flex;align-items:center;justify-content:space-between;padding:.7rem 0}
.logo{font-family:"Playfair Display",Georgia,serif;font-size:1.4rem;font-weight:700;letter-spacing:.3px}
.site-nav ul{display:flex;gap:1.2rem;list-style:none;margin:0;padding:0}
.site-nav a{opacity:.9}
.site-nav a:hover{opacity:1}
.header-ctas{display:flex;gap:.6rem;align-items:center}
.nav-toggle{display:none;background:transparent;border:1px solid #fff2;border-radius:10px;color:#fff;padding:.4rem .6rem}

/* Hero */
.hero{
  position:relative;min-height:min(80vh,720px);isolation:isolate;overflow:hidden
}
.hero-slide{
  position:absolute;inset:0;
  background-image: var(--bg);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  opacity:0;transition:opacity .6s ease;
}
.hero-slide::before{
  content:"";
  position:absolute;inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,.55), rgba(0,0,0,.5));
  pointer-events:none;
}

.hero-slide.current{opacity:1}
.hero-content{position:relative;z-index:1;padding-block:clamp(4rem,12vw,8rem)}
.hero-ctas{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1rem}
.hero-nav{
  position:absolute;top:50%;transform:translateY(-50%);
  background:#0009;border:1px solid #fff2;color:#fff;padding:.2rem .6rem;border-radius:10px
}
.hero-nav.prev{left:16px}
.hero-nav.next{right:16px}

/* Quick actions */
.quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin:1rem auto}
.qa{display:block;text-align:center;padding:.8rem;border:1px solid #ffffff20;border-radius:12px;background:#1a1a1a}

/* Specials */
.specials{padding-block:2.5rem;background:linear-gradient(180deg,#141414,#121212)}
.specials-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}
.flag{background:#2b2430;border:1px solid #483657;color:#e5c8ff;padding:.25rem .55rem;border-radius:999px}
.specials-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1rem
}
.card{
  background:#181818;border:1px solid #ffffff10;border-radius:var(--radius);
  padding:1rem;box-shadow:var(--shadow)
}
.price{float:right;color:var(--wheat);font-weight:700}

/* Menu preview */
.menu-preview{padding-block:2.5rem}
.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.8rem}
.menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.item{background:#181818;border:1px solid #ffffff10;border-radius:var(--radius);padding:1rem}
.chip{font-size:.8rem;background:#ffffff12;border:1px solid #ffffff20;border-radius:999px;padding:.05rem .4rem}

/* Gallery */
.gallery{padding-block:2rem}
.gallery-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}
.gallery-strip img{border-radius:12px}

/* Reviews */
.reviews{padding-block:2.5rem;background:#101010;border-top:1px solid #ffffff10;border-bottom:1px solid #ffffff10}
.review-carousel{min-height:88px;margin-top:.6rem}
.rev{display:none;margin:0;font-style:italic}
.rev.current{display:block}
.dots{display:flex;gap:.4rem;margin-top:.8rem}
.dot{width:10px;height:10px;border-radius:50%;border:1px solid #fff5;background:transparent}
.dot.active{background:#fff8}

/* Location */
.location{padding-block:2.5rem}
.loc-wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:1rem;align-items:start}
.loc-copy p{margin:.3rem 0}
.loc-actions{display:flex;gap:.6rem;margin-top:.6rem}
.loc-map iframe{width:100%;height:300px;border:0;border-radius:12px}

/* Footer */
.site-footer{padding-top:1.8rem}
.footer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.legal{text-align:center;color:#aaa;border-top:1px solid #ffffff10;padding:1rem 0;margin-top:1rem}

.mobile-sticky{
  position:sticky;bottom:0;z-index:30;
  display:none; /* hidden on desktop */
  grid-template-columns:repeat(3,1fr);
  gap:1px;background:#2a2a2a
}
.mobile-sticky a{
  display:block;text-align:center;padding:.9rem 0;background:#1a1a1a
}

/* Header responsive */
@media (max-width: 860px){
  .site-nav ul{display:none;position:absolute;right:0;top:100%;background:#141414;border:1px solid #ffffff10;padding:.8rem;border-radius:12px}
  .site-nav ul.show{display:flex;flex-direction:column;gap:.6rem}
  .nav-toggle{display:inline-block}
  .header-ctas{display:none}
  .loc-wrap{grid-template-columns:1fr}
  .menu-grid,.specials-grid{grid-template-columns:1fr 1fr}
  .gallery-strip{grid-template-columns:1fr 1fr 1fr}
  .mobile-sticky{display:grid}
}
@media (max-width:560px){
  .menu-grid,.specials-grid,.gallery-strip{grid-template-columns:1fr}
}