/* ============================================================
   Restaurant Adda — Parc-Extension, Montréal
   Design system per MRRJ blueprint (restaurantindianspices.ca)
   Accents adapted to Bangladeshi cuisine: Bengal green + chili
   ============================================================ */

:root{
  --cream-bg:   #fdf6ea;
  --cream-bg-2: #f7ecd8;
  --card:       #fffdf8;
  --ink:        #35251a;
  --ink-soft:   #6e5844;
  --accent:       #1e7a4c;  /* PRIMARY — Bengal green: buttons, ornaments */
  --accent-light: #37a06c;
  --gold:         #f2b63c;  /* hero name, stars, badges on dark */
  --chili:      #c2402a;    /* SECONDARY — kickers, prices, active tabs */
  --cardamom:   #2e7d4f;
  --footer-bg:  #2a1c12;
  --cream:      #f5efe2;
  --cream-dim:  #e9dcc6;
  --radius: 10px;
  --shadow: 0 16px 40px rgba(90,62,30,.14);
  --font-head: "Playfair Display", Georgia, serif;
  --font-body: "Jost", "Segoe UI", sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
html, body{ overflow-x:hidden; }
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--cream-bg);
  line-height:1.7;
  font-weight:300;
}
img{ max-width:100%; display:block; }
a{ color:var(--chili); }
::selection{ background:var(--gold); color:#3a2308; }
:focus-visible{ outline:3px solid var(--accent); outline-offset:3px; border-radius:4px; }

h1,h2,h3,h4{ font-family:var(--font-head); font-weight:600; line-height:1.2; margin:0 0 .6em; }

.container{ width:min(1180px, 92vw); margin-inline:auto; }

section{ padding:clamp(3.5rem, 8vw, 6rem) 0; }
.section-alt{ background:var(--cream-bg-2); }

/* ---------- kickers, titles, ornament ---------- */
.kicker{
  display:block; font-size:.8rem; text-transform:uppercase;
  letter-spacing:.35em; color:var(--chili); font-weight:500; margin-bottom:.9rem;
}
.section-title{
  font-size:clamp(1.9rem, 4vw, 2.8rem); text-wrap:balance; margin-bottom:1rem;
}
.center{ text-align:center; }
.section-title.ornament{ padding-bottom:1.4rem; position:relative; }
.section-title.ornament::after{
  content:""; position:absolute; left:50%; transform:translateX(-50%);
  bottom:0; width:150px; height:12px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='12' viewBox='0 0 150 12'%3E%3Cline x1='0' y1='6' x2='60' y2='6' stroke='%231e7a4c' stroke-width='1.5'/%3E%3Cline x1='90' y1='6' x2='150' y2='6' stroke='%231e7a4c' stroke-width='1.5'/%3E%3Crect x='71' y='2' width='8' height='8' fill='%23c2402a' transform='rotate(45 75 6)'/%3E%3C/svg%3E") center/contain no-repeat;
}
.lead{ font-size:1.08rem; color:var(--ink-soft); max-width:62ch; }
.center .lead{ margin-inline:auto; }

/* ---------- buttons ---------- */
.btn{
  display:inline-block; padding:.85rem 2rem; border-radius:999px;
  font-family:var(--font-body); font-weight:500; font-size:.92rem;
  text-transform:uppercase; letter-spacing:.08em; text-decoration:none;
  border:2px solid transparent; cursor:pointer;
  transition:transform .25s ease, background .25s ease, color .25s ease, box-shadow .25s ease;
}
.btn:hover{ transform:translateY(-2px); }
.btn-gold{ background:var(--gold); border-color:var(--gold); color:#3a2308; }
.btn-gold:hover{ box-shadow:0 10px 24px rgba(242,182,60,.4); }
.btn-outline{ border-color:var(--cream); color:var(--cream); background:transparent; }
.btn-outline:hover{ background:var(--cream); color:var(--ink); }
.btn-outline-dark{ border-color:var(--chili); color:var(--chili); background:transparent; }
.btn-outline-dark:hover{ background:var(--chili); color:#fff; }
.btn-green{ background:var(--accent); border-color:var(--accent); color:#fff; }
.btn-green:hover{ box-shadow:0 10px 24px rgba(30,122,76,.35); }
.btn-sm{ padding:.55rem 1.3rem; font-size:.8rem; }
.btn-nav{ padding:.55rem 1.4rem; font-size:.8rem; }

/* ---------- navbar ---------- */
.navbar{
  position:fixed; inset:0 0 auto 0; z-index:100;
  padding:.9rem 0;
  background:linear-gradient(180deg, rgba(42,28,18,.55), rgba(42,28,18,0));
  transition:background .35s ease, box-shadow .35s ease, padding .35s ease;
}
.navbar .container{ display:flex; align-items:center; gap:1.2rem; }
.brand{
  display:flex; align-items:center; gap:.65rem; text-decoration:none;
  font-family:var(--font-head); font-size:1.25rem; font-weight:700; color:#fffaf0;
  margin-right:auto;
}
.brand img{ width:46px; height:46px; border-radius:50%; }
.brand em{ font-style:normal; color:var(--gold); }
.nav-links{ display:flex; gap:1.4rem; list-style:none; margin:0; padding:0; }
.nav-links a{
  color:#fffaf0; text-decoration:none; text-transform:uppercase;
  font-size:.92rem; letter-spacing:.04em; position:relative; padding:.2rem 0;
}
.nav-links a::after{
  content:""; position:absolute; left:0; bottom:-3px; height:2px; width:0;
  background:var(--gold); transition:width .3s ease;
}
.nav-links a:hover::after, .nav-links a.active::after{ width:100%; }
.lang-switch{
  display:flex; border:1.5px solid currentColor; border-radius:999px; overflow:hidden;
  font-size:.78rem; font-weight:500; color:#fffaf0;
}
.lang-switch a{
  color:inherit; text-decoration:none; padding:.3rem .7rem; letter-spacing:.05em;
}
.lang-switch a.active{ background:var(--gold); color:#3a2308; }
.nav-burger{
  display:none; background:none; border:0; cursor:pointer; padding:.4rem;
}
.nav-burger span{
  display:block; width:26px; height:2.5px; background:#fffaf0; margin:5px 0;
  transition:all .3s ease; border-radius:2px;
}
.navbar.scrolled{
  background:rgba(253,246,234,.96); backdrop-filter:blur(10px);
  box-shadow:0 6px 24px rgba(90,62,30,.12); padding:.5rem 0;
}
.navbar.scrolled .brand, .navbar.scrolled .nav-links a, .navbar.scrolled .lang-switch{ color:var(--ink); }
.navbar.scrolled .brand em{ color:var(--chili); }
.navbar.scrolled .nav-burger span{ background:var(--ink); }

/* mobile drawer */
@media (max-width: 1020px){
  .nav-links, .navbar .btn-nav{ display:none; }
  .nav-burger{ display:block; }
  .nav-drawer{
    position:fixed; inset:0 0 0 auto; width:min(320px, 84vw); z-index:150;
    background:var(--footer-bg); color:var(--cream);
    transform:translateX(100%); transition:transform .35s ease;
    display:flex; flex-direction:column; padding:5rem 2rem 2rem;
  }
  .nav-drawer.open{ transform:translateX(0); box-shadow:-20px 0 60px rgba(0,0,0,.4); }
  .nav-drawer a{
    color:var(--cream); text-decoration:none; font-size:1.1rem; text-transform:uppercase;
    letter-spacing:.08em; padding:.8rem 0; border-bottom:1px solid rgba(245,239,226,.12);
  }
  .nav-drawer .btn{ margin-top:1.5rem; text-align:center; }
  .drawer-close{
    position:absolute; top:1.2rem; right:1.2rem; background:none; border:0;
    color:var(--cream); font-size:2rem; cursor:pointer; line-height:1;
  }
  .drawer-backdrop{
    position:fixed; inset:0; background:rgba(42,28,18,.55); z-index:140;
    opacity:0; pointer-events:none; transition:opacity .3s ease;
  }
  .drawer-backdrop.show{ opacity:1; pointer-events:auto; }
}
@media (min-width:1021px){ .nav-drawer, .drawer-backdrop{ display:none; } }

/* ---------- hero ---------- */
.hero{
  position:relative; min-height:100vh; min-height:100svh;
  display:flex; align-items:center; justify-content:center; text-align:center;
  overflow:hidden; padding:0;
}
.hero-media{ position:absolute; inset:0; }
.hero-media picture, .hero-media img, .hero-media video{
  width:100%; height:100%; object-fit:cover;
}
.hero-media img{ animation:heroZoom 26s ease-in-out infinite alternate; }
.hero-media video{
  position:absolute; inset:0; opacity:0; transition:opacity 1.2s ease;
}
.hero-media video.playing{ opacity:1; }
@keyframes heroZoom{ from{ transform:scale(1.04);} to{ transform:scale(1.18);} }
.hero::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(42,28,18,.5) 0%, rgba(42,28,18,.6) 55%, rgba(26,17,10,.92) 88%, #1a110a 100%);
}
.hero-inner{ position:relative; z-index:2; padding:7rem 1rem 5rem; width:min(900px, 94vw); }
.hero-kicker{
  text-transform:uppercase; letter-spacing:.4em; color:var(--gold);
  font-size:.85rem; font-weight:400; margin-bottom:1.2rem;
}
.hero h1{
  font-size:clamp(2.6rem, 7.5vw, 5.2rem); font-weight:700; line-height:1.08;
  color:#fffaf0; text-shadow:0 4px 30px rgba(0,0,0,.45); margin-bottom:1rem;
}
.hero h1 em{ font-style:normal; color:var(--gold); display:block; }
.hero-tagline{
  font-family:var(--font-head); font-style:italic; font-weight:500;
  font-size:clamp(1.05rem, 2.2vw, 1.4rem); color:var(--cream-dim); margin:0 0 1.8rem;
}
.hero-pills{ display:flex; gap:.8rem; justify-content:center; flex-wrap:wrap; margin-bottom:2.2rem; }
.pill{
  display:inline-flex; align-items:center; gap:.5rem;
  background:rgba(42,28,18,.55); border:1px solid rgba(245,239,226,.25);
  color:var(--cream); border-radius:999px; padding:.45rem 1.1rem; font-size:.88rem;
  backdrop-filter:blur(6px);
}
.pill .stars{ color:var(--gold); letter-spacing:.1em; }
.status-dot{
  width:9px; height:9px; border-radius:50%; background:#9aa0a6; flex:none;
}
.status-dot.open{ background:#4cd97b; animation:pulse 1.8s infinite; }
@keyframes pulse{
  0%{ box-shadow:0 0 0 0 rgba(76,217,123,.5);}
  70%{ box-shadow:0 0 0 9px rgba(76,217,123,0);}
  100%{ box-shadow:0 0 0 0 rgba(76,217,123,0);}
}
.hero-cta{ display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }
.scroll-hint{
  position:absolute; bottom:2.2rem; left:50%; transform:translateX(-50%); z-index:2;
  width:26px; height:42px; border:2px solid rgba(245,239,226,.6); border-radius:14px;
}
.scroll-hint::before{
  content:""; position:absolute; top:7px; left:50%; width:4px; height:8px;
  margin-left:-2px; border-radius:2px; background:var(--gold);
  animation:wheel 1.8s infinite;
}
@keyframes wheel{ 0%{ opacity:1; transform:translateY(0);} 100%{ opacity:0; transform:translateY(14px);} }

/* ---------- about ---------- */
.about-grid{
  display:grid; grid-template-columns:1fr 1.15fr; gap:clamp(2rem, 5vw, 4.5rem);
  align-items:center;
}
.about-photo{ position:relative; }
.about-photo img{
  border-radius:50% 50% var(--radius) var(--radius) / 27% 27% 10px 10px;
  box-shadow:var(--shadow);
}
.about-photo::before{
  content:""; position:absolute; inset:-12px;
  border:1px solid var(--accent);
  border-radius:50% 50% calc(var(--radius) + 8px) calc(var(--radius) + 8px) / 27% 27% 14px 14px;
  pointer-events:none;
}
.hours-badge{
  position:absolute; right:-10px; bottom:26px;
  background:var(--gold); color:#3a2308; border-radius:var(--radius);
  padding:.9rem 1.2rem; box-shadow:var(--shadow); text-align:center;
  font-weight:500; font-size:.9rem; line-height:1.4; max-width:200px;
}
.hours-badge strong{ font-family:var(--font-head); font-size:1.05rem; display:block; }
.about-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:2rem; }
.icon-card{
  background:var(--card); border-radius:var(--radius); padding:1.2rem 1rem;
  text-align:center; box-shadow:0 8px 24px rgba(90,62,30,.08);
  border-top:3px solid var(--accent);
}
.icon-card .ic{ font-size:1.6rem; display:block; margin-bottom:.4rem; }
.icon-card h3{ font-size:1rem; margin-bottom:.2rem; }
.icon-card p{ font-size:.85rem; color:var(--ink-soft); margin:0; }

/* ---------- cinematic band ---------- */
.band{
  position:relative; height:62vh; min-height:380px; overflow:hidden;
  display:flex; align-items:center; justify-content:center; text-align:center;
  padding:0;
}
.band picture, .band img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.band::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(42,28,18,.55), rgba(42,28,18,.65));
}
.band-inner{ position:relative; z-index:2; padding:1rem; }
.band .kicker{ color:var(--gold); }
.band h2{
  color:#fffaf0; font-size:clamp(1.8rem, 4.5vw, 3.2rem);
  text-shadow:0 4px 24px rgba(0,0,0,.4); max-width:22ch; margin-inline:auto;
}

/* ---------- signature plates ---------- */
.plates-grid{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:1.6rem; margin-top:2.5rem;
}
.plate-card{
  background:var(--card); border-radius:var(--radius); overflow:hidden;
  box-shadow:0 10px 30px rgba(90,62,30,.1); border:1px solid transparent;
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
  display:flex; flex-direction:column;
}
.plate-card:hover{ transform:translateY(-6px); border-color:var(--gold); box-shadow:var(--shadow); }
.plate-card .ph{ height:210px; overflow:hidden; }
.plate-card .ph img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.plate-card:hover .ph img{ transform:scale(1.06); }
.plate-body{ padding:1.3rem 1.4rem 1.5rem; flex:1; display:flex; flex-direction:column; }
.plate-head{ display:flex; justify-content:space-between; align-items:baseline; gap:.8rem; }
.plate-head h3{ font-size:1.25rem; margin:0; }
.price{ font-family:var(--font-head); color:var(--chili); font-weight:700; white-space:nowrap; }
.plate-body p{ font-size:.92rem; color:var(--ink-soft); margin:.5rem 0 0; }

/* ---------- special banner ---------- */
.banner{
  background:linear-gradient(100deg, var(--chili), #8f2b1e);
  position:relative; color:#fff; text-align:center; overflow:hidden;
}
.banner::before{
  content:""; position:absolute; inset:0;
  background:repeating-linear-gradient(90deg, rgba(42,28,18,.10) 0 16px, transparent 16px 34px);
}
.banner .container{ position:relative; }
.banner h2{ color:#fff; font-size:clamp(1.7rem, 4vw, 2.6rem); max-width:26ch; margin:0 auto .6rem; }
.banner p{ color:#ffe9d9; max-width:60ch; margin:0 auto 1.6rem; }
.banner .btn{ background:#fff; border-color:#fff; color:var(--chili); }
.banner .btn:hover{ background:var(--cream); }

/* ---------- menu ---------- */
.menu-tabs-wrap{ position:relative; margin:2.4rem 0 1.4rem; }
.menu-tabs{
  display:flex; gap:.6rem; flex-wrap:wrap; justify-content:center;
  list-style:none; margin:0; padding:0;
}
.menu-tabs button{
  font-family:var(--font-body); font-size:.85rem; letter-spacing:.05em;
  text-transform:uppercase; padding:.6rem 1.25rem; min-height:44px;
  border-radius:999px; border:1.5px solid var(--chili);
  background:transparent; color:var(--chili); cursor:pointer;
  transition:background .25s ease, color .25s ease;
}
.menu-tabs button[aria-selected="true"], .menu-tabs button:hover{
  background:var(--chili); color:#fff;
}
@media (max-width: 760px){
  .menu-tabs{
    flex-wrap:nowrap; overflow-x:auto; justify-content:flex-start;
    -webkit-overflow-scrolling:touch; scrollbar-width:none; padding:0 2rem 6px 4px;
  }
  .menu-tabs::-webkit-scrollbar{ display:none; }
  .menu-tabs-wrap::after{
    content:""; position:absolute; right:0; top:0; bottom:0; width:48px;
    background:linear-gradient(90deg, transparent, var(--cream-bg-2));
    pointer-events:none;
  }
}
.menu-panel{ display:none; }
.menu-panel.active{ display:block; animation:fadeUp .45s ease; }
.menu-note{
  text-align:center; font-family:var(--font-head); font-style:italic;
  color:var(--ink-soft); margin:.2rem 0 1.6rem;
}
.menu-cols{
  display:grid; grid-template-columns:1fr 1fr; gap:.4rem 3rem;
}
.menu-item{
  display:flex; align-items:baseline; gap:.6rem; padding:.65rem 0;
  border-bottom:1px dashed rgba(30,122,76,.45);
  min-width:0;
}
.menu-item .mi-name{ font-family:var(--font-head); font-weight:600; font-size:1.02rem; }
.menu-item .mi-sub{ display:block; font-family:var(--font-body); font-weight:300; font-size:.82rem; color:var(--ink-soft); }
.menu-item .dots{ flex:1; }
.menu-item .price{ font-size:1rem; }
.menu-sub-head{
  grid-column:1 / -1; font-family:var(--font-head); color:var(--accent);
  font-size:1.15rem; font-weight:700; margin:1.4rem 0 .2rem;
  text-transform:none; letter-spacing:0;
}

/* ---------- what to order ---------- */
.order-guide-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; margin-top:2.4rem; }
.guide-card{
  background:var(--card); border-radius:var(--radius); padding:1.6rem 1.5rem;
  box-shadow:0 8px 24px rgba(90,62,30,.08); text-decoration:none; color:var(--ink);
  border-left:3px solid var(--accent); transition:transform .3s ease, box-shadow .3s ease;
  display:block;
}
.guide-card:hover{ transform:translateY(-5px); box-shadow:var(--shadow); }
.guide-card h3{ font-size:1.15rem; display:flex; justify-content:space-between; gap:.6rem; }
.guide-card h3 span:last-child{ color:var(--chili); }
.guide-card p{ font-size:.9rem; color:var(--ink-soft); margin:0; }

/* ---------- gallery ---------- */
.gallery-grid{ display:grid; gap:1rem; margin-top:2.4rem; }
/* every photo keeps its natural shape: column widths follow the aspect ratios so a row's photos share one height */
.g-row{ display:grid; gap:1rem; min-width:0; }
.g-row-1{ grid-template-columns:16fr 9fr; }      /* 4:3 dining room + 3:4 storefront */
.g-row-2{ grid-template-columns:75fr 164fr; }    /* 3:4 counter + 1.64:1 long tables */
.g-row-3{ grid-template-columns:75fr 133fr 164fr; } /* counter 3:4 + guests 4:3 + long tables 1.64:1 */
.g-item{
  position:relative; border-radius:var(--radius); overflow:hidden; cursor:pointer;
  border:0; padding:0; background:none; display:block; width:100%; min-width:0;
}
.g-item picture{ display:block; height:100%; }
.g-item img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.g-item:hover img{ transform:scale(1.05); }
.g-43{ aspect-ratio:4/3; }
.g-34{ aspect-ratio:3/4; }
.g-wide{ aspect-ratio:1600/976; }
.g-cap{
  position:absolute; inset:auto 0 0 0; padding:2.2rem 1rem .8rem;
  background:linear-gradient(180deg, transparent, rgba(42,28,18,.72));
  color:var(--cream); font-size:.75rem; text-transform:uppercase; letter-spacing:.18em;
  text-align:left;
}

/* lightbox */
.lightbox{
  position:fixed; inset:0; z-index:300; background:rgba(26,16,9,.93);
  display:none; align-items:center; justify-content:center;
}
.lightbox.open{ display:flex; }
.lightbox img{ max-width:92vw; max-height:86vh; border-radius:6px; box-shadow:0 30px 80px rgba(0,0,0,.5); }
.lb-btn{
  position:absolute; background:rgba(245,239,226,.12); color:var(--cream);
  border:1px solid rgba(245,239,226,.3); border-radius:50%;
  width:48px; height:48px; font-size:1.3rem; cursor:pointer; display:flex;
  align-items:center; justify-content:center;
}
.lb-btn:hover{ background:rgba(245,239,226,.25); }
.lb-close{ top:1.2rem; right:1.2rem; }
.lb-prev{ left:1rem; top:50%; transform:translateY(-50%); }
.lb-next{ right:1rem; top:50%; transform:translateY(-50%); }
.lb-cap{ position:absolute; bottom:1.4rem; left:0; right:0; text-align:center; color:var(--cream-dim); font-size:.85rem; }

/* ---------- testimonials ---------- */
.testi-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:2.4rem; }
.testi-card{
  background:var(--card); border-radius:var(--radius); padding:2.2rem 1.7rem 1.7rem;
  box-shadow:0 10px 30px rgba(90,62,30,.09); position:relative;
}
.testi-card::before{
  content:"“"; position:absolute; top:-6px; left:14px;
  font-family:var(--font-head); font-size:5.4rem; color:var(--gold); opacity:.35; line-height:1;
}
.testi-card .stars{ color:var(--gold); letter-spacing:.15em; margin-bottom:.6rem; }
.testi-card blockquote{
  margin:0 0 .9rem; font-family:var(--font-head); font-style:italic; font-size:1.02rem;
}
.testi-card cite{ font-style:normal; color:var(--chili); font-weight:500; font-size:.9rem; }

/* ---------- location ---------- */
.loc-grid{ display:grid; grid-template-columns:1fr 1.1fr; gap:1.6rem; margin-top:2.4rem; align-items:stretch; }
.loc-card{
  background:var(--card); border-radius:var(--radius); padding:2rem;
  box-shadow:0 10px 30px rgba(90,62,30,.1);
}
.loc-badge{
  display:inline-block; background:var(--accent); color:#fff; font-size:.72rem;
  text-transform:uppercase; letter-spacing:.2em; padding:.3rem .9rem; border-radius:999px;
  margin-bottom:.8rem;
}
.loc-card h3{ font-size:1.7rem; }
.loc-line{ margin:.3rem 0; color:var(--ink-soft); }
.loc-line a{ color:var(--ink); text-decoration:none; font-weight:500; }
.loc-line a:hover{ color:var(--chili); }
.loc-status{ display:flex; align-items:center; gap:.5rem; margin:.8rem 0; font-weight:500; }
.hours-table{ width:100%; border-collapse:collapse; font-size:.92rem; margin:.8rem 0 1.2rem; }
.hours-table td{ padding:.3rem 0; border-bottom:1px dashed rgba(30,122,76,.3); }
.hours-table td:last-child{ text-align:right; color:var(--ink-soft); }
.hours-table tr.today td{ color:var(--accent); font-weight:600; }
.loc-actions{ display:flex; gap:.8rem; flex-wrap:wrap; margin-top:1rem; }
.loc-map{ border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); min-height:420px; }
.loc-map iframe{ width:100%; height:100%; min-height:420px; border:0; display:block; }
.loc-nb{ font-size:.92rem; color:var(--ink-soft); margin-top:1rem; }

/* ---------- FAQ ---------- */
.faq-list{ max-width:820px; margin:2.4rem auto 0; display:grid; gap:.9rem; }
.faq-list details{
  background:var(--card); border-radius:var(--radius); padding:1.1rem 1.4rem;
  box-shadow:0 6px 18px rgba(90,62,30,.07);
}
.faq-list summary{
  display:flex; justify-content:space-between; align-items:center; gap:1rem;
  cursor:pointer; font-family:var(--font-head); font-weight:600; font-size:1.05rem;
  list-style:none;
}
.faq-list summary::-webkit-details-marker{ display:none; }
.faq-list summary::after{
  content:"+"; color:var(--accent); font-size:1.6rem; font-family:var(--font-body);
  transition:transform .3s ease; flex:none; line-height:1;
}
.faq-list details[open] summary::after{ transform:rotate(45deg); }
.faq-list details p{ color:var(--ink-soft); margin:.7rem 0 0; font-size:.95rem; }

/* ---------- footer ---------- */
.footer{
  background:var(--footer-bg); color:var(--cream-dim); margin-top:0;
  border-top:4px solid; padding:4rem 0 6.5rem;
  border-image:linear-gradient(90deg, var(--accent), var(--chili), var(--gold)) 1;
}
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.3fr; gap:2.5rem; }
.footer h4{ color:var(--cream); font-size:1.05rem; margin-bottom:1rem; }
.footer .brand{ color:var(--cream); margin:0 0 .8rem; }
.footer p{ font-size:.92rem; }
.footer ul{ list-style:none; margin:0; padding:0; }
.footer li{ margin:.45rem 0; }
.footer a{ color:var(--cream-dim); text-decoration:none; }
.footer a:hover{ color:var(--gold); }
.social-row{ display:flex; gap:.7rem; margin-top:1rem; }
.social-row a{
  width:40px; height:40px; border-radius:50%; border:1px solid rgba(245,239,226,.3);
  display:flex; align-items:center; justify-content:center; font-size:1rem;
}
.social-row a:hover{ border-color:var(--gold); color:var(--gold); }
.news-form{ display:flex; gap:.5rem; margin-top:.8rem; }
.news-form input{
  flex:1; min-width:0; padding:.7rem 1rem; border-radius:999px; border:1px solid rgba(245,239,226,.3);
  background:rgba(245,239,226,.08); color:var(--cream); font-family:var(--font-body);
}
.news-form input::placeholder{ color:rgba(233,220,198,.6); }
.news-msg{ font-size:.85rem; color:var(--gold); min-height:1.2em; margin-top:.4rem; }
.footer-bottom{
  margin-top:3rem; padding-top:1.5rem; border-top:1px solid rgba(245,239,226,.15);
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-size:.85rem;
}
.footer-bottom a{ color:var(--gold); }

/* ---------- mobile action bar + back to top ---------- */
.mobile-bar{
  position:fixed; left:0; right:0; bottom:0; z-index:120;
  display:none; grid-template-columns:1fr 1fr;
  background:var(--footer-bg); box-shadow:0 -6px 24px rgba(0,0,0,.25);
  transform:translateY(110%); transition:transform .35s ease;
}
.mobile-bar.show{ transform:translateY(0); }
.mobile-bar a{
  padding:.95rem .5rem; text-align:center; color:var(--cream); text-decoration:none;
  font-size:.9rem; text-transform:uppercase; letter-spacing:.08em; font-weight:500;
}
.mobile-bar a + a{ background:var(--gold); color:#3a2308; }
@media (max-width:760px){ .mobile-bar{ display:grid; } }
.to-top{
  position:fixed; right:1rem; bottom:5.2rem; z-index:119;
  width:46px; height:46px; border-radius:50%; border:0; cursor:pointer;
  background:var(--accent); color:#fff; font-size:1.2rem; box-shadow:var(--shadow);
  opacity:0; pointer-events:none; transition:opacity .3s ease;
}
.to-top.show{ opacity:1; pointer-events:auto; }
@media (min-width:761px){ .to-top{ bottom:1.4rem; } }

/* ---------- reveal animations ---------- */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease; }
.reveal.visible{ opacity:1; transform:none; }
.stagger > *{ opacity:0; transform:translateY(24px); transition:opacity .6s ease, transform .6s ease; }
.stagger.visible > *{ opacity:1; transform:none; }
.stagger.visible > *:nth-child(2){ transition-delay:.12s; }
.stagger.visible > *:nth-child(3){ transition-delay:.24s; }
.stagger.visible > *:nth-child(4){ transition-delay:.36s; }
.stagger.visible > *:nth-child(5){ transition-delay:.48s; }
.stagger.visible > *:nth-child(6){ transition-delay:.6s; }
.hero .fade-up{ opacity:0; transform:translateY(26px); animation:fadeUp .9s ease forwards; }
.hero .fade-up:nth-child(2){ animation-delay:.15s; }
.hero .fade-up:nth-child(3){ animation-delay:.3s; }
.hero .fade-up:nth-child(4){ animation-delay:.45s; }
.hero .fade-up:nth-child(5){ animation-delay:.6s; }
@keyframes fadeUp{ to{ opacity:1; transform:none; } }

/* ---------- responsive ---------- */
@media (max-width: 980px){
  .plates-grid, .order-guide-grid, .testi-grid{ grid-template-columns:repeat(2,1fr); }
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .loc-grid{ grid-template-columns:1fr; }
}
@media (max-width: 760px){
  .about-grid{ grid-template-columns:1fr; }
  .about-cards{ grid-template-columns:1fr 1fr; }
  .menu-cols{ grid-template-columns:1fr; }
  .g-row-1, .g-row-2, .g-row-3{ grid-template-columns:1fr; }
  .hours-badge{ right:8px; bottom:-18px; }
}
@media (max-width: 560px){
  .plates-grid, .order-guide-grid, .testi-grid, .about-cards, .footer-grid{ grid-template-columns:1fr; }
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .hero-media img{ animation:none; }
  .reveal, .stagger > *, .hero .fade-up{ opacity:1 !important; transform:none !important; animation:none !important; transition:none !important; }
  .status-dot.open{ animation:none; }
  .scroll-hint::before{ animation:none; }
  *{ transition-duration:.01ms !important; }
}

/* ---------- intro (logo animation) ---------- */
.intro{
  position:fixed; inset:0; z-index:1000; background:#1a110a;
  display:flex; align-items:center; justify-content:center;
  transition:opacity .7s ease, visibility .7s ease;
}
.intro[hidden]{ display:none; }
.intro.done{ opacity:0; visibility:hidden; }
.intro-video, .intro-fallback{
  width:min(80vmin, 600px); height:auto; aspect-ratio:1/1;
  -webkit-mask-image:radial-gradient(closest-side, #000 92%, transparent 100%);
          mask-image:radial-gradient(closest-side, #000 92%, transparent 100%);
}
.intro-fallback{ position:absolute; opacity:0; transform:scale(.94); transition:opacity .6s ease, transform 1.2s ease; }
.intro.fallback .intro-video{ opacity:0; }
.intro.fallback .intro-fallback{ opacity:1; transform:none; }
.intro-skip{
  position:absolute; right:24px; bottom:24px; min-height:44px;
  background:transparent; color:var(--cream-dim); cursor:pointer;
  border:1px solid rgba(245,239,226,.3); border-radius:999px; padding:.55rem 1.2rem;
  font:500 .76rem var(--font-body); letter-spacing:.18em; text-transform:uppercase;
}
.intro-skip:hover{ border-color:var(--gold); color:var(--gold); }
html.intro-on, html.intro-on body{ overflow:hidden; }
html.intro-on .hero .fade-up{ animation-play-state:paused; }

/* ---------- social links ---------- */
.social-row{ display:flex; flex-wrap:wrap; align-items:center; gap:.6rem; margin-top:1rem; }
.social-row a{ width:40px; height:40px; border-radius:50%; border:1px solid rgba(245,239,226,.3);
  display:inline-flex; align-items:center; justify-content:center; color:var(--cream-dim); }
.social-row a.social-pill{ width:auto; border-radius:999px; padding:0 .95rem; font-size:.78rem; font-weight:500; letter-spacing:.04em; }
.social-row a:hover{ border-color:var(--gold); color:var(--gold); }
.loc-social a{ color:var(--chili); }

/* ---------- order chooser ---------- */
.order-modal{ position:fixed; inset:0; z-index:500; display:flex; align-items:center; justify-content:center; padding:1rem; }
.order-modal[hidden]{ display:none; }
.om-backdrop{ position:absolute; inset:0; background:rgba(26,17,10,.72); backdrop-filter:blur(4px); }
.om-card{ position:relative; width:min(400px, 100%); background:var(--card); border-radius:16px;
  padding:2rem 1.6rem 1.5rem; text-align:center; box-shadow:0 30px 80px rgba(0,0,0,.45);
  border-top:4px solid var(--gold); animation:fadeUp .35s ease; }
.om-card img{ width:64px; height:64px; border-radius:50%; margin:0 auto .6rem; }
.om-card h3{ font-size:1.5rem; margin-bottom:.2rem; }
.om-sub{ color:var(--ink-soft); font-size:.95rem; margin:0 0 1.2rem; }
.om-btn{ display:flex; align-items:center; justify-content:center; gap:.6rem; min-height:52px;
  border-radius:999px; font-weight:600; font-size:1.05rem; text-decoration:none; margin:.6rem 0;
  transition:transform .2s ease, box-shadow .2s ease; }
.om-btn:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(0,0,0,.18); }
.om-uber{ background:#000; color:#fff; }
.om-uber .om-mark{ width:12px; height:12px; border-radius:3px; background:#06c167; }
.om-dd{ background:#ff3008; color:#fff; }
.om-dd .om-mark{ width:12px; height:12px; border-radius:50%; background:#fff; }
.om-call{ font-size:.9rem; color:var(--ink-soft); margin:1rem 0 0; }
.om-call a{ color:var(--chili); font-weight:600; text-decoration:none; }
.om-close{ position:absolute; top:.6rem; right:.7rem; width:44px; height:44px; border:0; background:none;
  font-size:1.8rem; line-height:1; color:var(--ink-soft); cursor:pointer; border-radius:50%; }
.om-close:hover{ color:var(--chili); }
html.om-open, html.om-open body{ overflow:hidden; }

/* ---------- Wednesday buffet band ---------- */
.buffet{ position:relative; padding:0; min-height:460px; display:flex; align-items:center; overflow:hidden; background:#1a110a; }
.buffet-bg, .buffet-bg img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.buffet::after{ content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(90deg, rgba(26,17,10,.95) 0%, rgba(26,17,10,.86) 36%, rgba(26,17,10,.45) 68%, rgba(26,17,10,.2) 100%); }
.buffet-inner{ position:relative; z-index:2; display:flex; gap:2.2rem; align-items:center; padding:4.5rem 0; }
.buffet-day{ flex:none; width:112px; border-radius:14px; overflow:hidden; text-align:center; background:var(--cream);
  box-shadow:0 18px 40px rgba(0,0,0,.45); transform:rotate(-4deg); }
.buffet-day::before{ content:""; display:block; height:28px; background:var(--chili);
  background-image:radial-gradient(circle at 30% 50%, #1a110a 3px, transparent 4px), radial-gradient(circle at 70% 50%, #1a110a 3px, transparent 4px); }
.buffet-day span{ display:block; font-family:var(--font-head); font-weight:700; font-size:2.1rem; color:var(--ink);
  text-transform:uppercase; letter-spacing:.04em; padding:.9rem 0 .2rem; }
.buffet-day i{ display:block; width:34px; height:2px; background:var(--gold); margin:0 auto 1.1rem; }
.buffet-copy{ max-width:560px; }
.buffet .kicker{ color:var(--gold); }
.buffet h2{ color:#fffaf0; font-size:clamp(1.9rem, 4vw, 2.8rem); margin-bottom:.8rem; }
.buffet p{ color:var(--cream-dim); margin:0 0 .8rem; }
.buffet-note{ font-family:var(--font-head); font-style:italic; color:var(--gold) !important; margin-bottom:1.4rem !important; }

/* ---------- food reel (auto-sliding showcase) ---------- */
.food-reel{
  position:relative; overflow:hidden; color:var(--cream);
  margin-top:clamp(3rem, 6vw, 4.5rem); margin-bottom:calc(-1 * clamp(3.5rem, 8vw, 6rem));
  padding:3.6rem 0 3.4rem;
  background:
    radial-gradient(1100px 380px at 12% 0%, rgba(242,182,60,.11), transparent 60%),
    radial-gradient(900px 360px at 92% 100%, rgba(194,64,42,.14), transparent 60%),
    #1a110a;
}
.food-reel::before, .food-reel::after{ content:""; position:absolute; left:0; right:0; height:1px;
  background:linear-gradient(90deg, transparent, rgba(242,182,60,.55), transparent); }
.food-reel::before{ top:14px; }
.food-reel::after{ bottom:14px; }
.reel-head .kicker{ color:var(--gold); }
.reel-title{ font-family:var(--font-head); color:#fffaf0; font-size:clamp(1.7rem, 3.6vw, 2.4rem); margin:0; }
.reel-title::after{ content:""; display:block; width:150px; height:12px; margin:.9rem auto 0; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='12' viewBox='0 0 150 12'%3E%3Cline x1='0' y1='6' x2='60' y2='6' stroke='%23f2b63c' stroke-width='1.5'/%3E%3Cline x1='90' y1='6' x2='150' y2='6' stroke='%23f2b63c' stroke-width='1.5'/%3E%3Crect x='71' y='2' width='8' height='8' fill='%23c2402a' transform='rotate(45 75 6)'/%3E%3C/svg%3E") center/contain no-repeat; }
.reel-lead{ color:var(--cream-dim); max-width:52ch; margin:.9rem auto 1.6rem; }
.reel{
  --reel-h:300px; position:relative; overflow:hidden; padding:16px 0 34px;
  -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%);
          mask-image:linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%);
}
.reel-track{ display:flex; width:max-content; animation:reel-scroll var(--reel-dur, 70s) linear infinite; will-change:transform; }
.reel:hover .reel-track, .reel:focus-within .reel-track, .reel.paused .reel-track{ animation-play-state:paused; }
@keyframes reel-scroll{ from{ transform:translate3d(0,0,0); } to{ transform:translate3d(-50%,0,0); } }
.g-item.reel-item{
  flex:none; width:auto; height:var(--reel-h); margin-right:22px;
  border-radius:16px; border:1px solid rgba(242,182,60,.28); background:#2a1c12;
  box-shadow:0 18px 40px rgba(0,0,0,.45);
  transition:transform .45s ease, border-color .3s ease, box-shadow .45s ease;
}
.g-item.reel-item:nth-child(even){ transform:translateY(18px); }
.g-item.reel-item:hover, .g-item.reel-item:focus-visible{ transform:translateY(-6px); border-color:var(--gold); box-shadow:0 26px 54px rgba(0,0,0,.6); }
.g-item.reel-item:nth-child(even):hover, .g-item.reel-item:nth-child(even):focus-visible{ transform:translateY(12px); }
.reel-item picture{ display:block; height:100%; }
.g-item.reel-item img{ width:auto; height:100%; object-fit:cover; }
.reel-item::after{ content:""; position:absolute; inset:auto 0 0 0; height:45%; pointer-events:none;
  background:linear-gradient(180deg, transparent, rgba(26,17,10,.55)); }
.reel-cap{ position:absolute; left:12px; bottom:12px; z-index:2; display:inline-flex; align-items:center; gap:.55rem;
  max-width:calc(100% - 24px); padding:.45rem .85rem; border-radius:999px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  background:rgba(26,17,10,.72); backdrop-filter:blur(6px); border:1px solid rgba(242,182,60,.35);
  color:var(--cream); font-size:.78rem; letter-spacing:.05em; }
.reel-diamond{ flex:none; width:7px; height:7px; background:var(--gold); transform:rotate(45deg); }
.reel.reel-static{ overflow-x:auto; -webkit-mask-image:none; mask-image:none; scrollbar-width:thin; }
.reel.reel-static .reel-track{ animation:none; padding:0 4vw; }
.reel.reel-static [data-dup]{ display:none; }
@media (max-width: 760px){
  .buffet{ min-height:0; }
  .buffet::after{ background:linear-gradient(180deg, rgba(26,17,10,.6) 0%, rgba(26,17,10,.92) 55%, rgba(26,17,10,.97) 100%); }
  .buffet-inner{ flex-direction:column; align-items:flex-start; gap:1.4rem; padding:3.4rem 0; }
  .buffet-day{ width:92px; }
  .buffet-day span{ font-size:1.7rem; }
  .reel{ --reel-h:210px; }
  .g-item.reel-item{ margin-right:14px; }
}
@media (prefers-reduced-motion: reduce){
  .reel-track{ animation:none !important; }
}

/* =================================================================
   MOBILE-FIRST POLISH (2026-11-05) — phones ≤ 760 px get their own
   rhythm: swipe carousels, pinned menu tabs, 44 px+ tap targets,
   safe-area aware bars, tighter type scale.
   ================================================================= */
html{ -webkit-text-size-adjust:100%; text-size-adjust:100%; }
@supports (overflow:clip){ html, body{ overflow-x:clip; } }   /* `hidden` on body breaks position:sticky */
a, button, summary, [role=tab]{ -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
section[id], [id^="panel-"]{ scroll-margin-top:68px; }
h1, h2, h3{ text-wrap:balance; }
p, blockquote, li{ text-wrap:pretty; }
.banner h2 .nw{ white-space:nowrap; }
.tel-chip svg{ display:none; }

/* touch screens: no sticky hover lifts after a tap, add press feedback instead */
@media (hover:none){
  .btn:hover, .plate-card:hover, .guide-card:hover, .om-btn:hover{ transform:none; box-shadow:none; }
  .plate-card:hover .ph img, .g-item:hover img{ transform:none; }
  .plate-card:hover{ border-color:transparent; }
  .btn:active, .om-btn:active, .mobile-bar a:active, .tel-chip:active{ transform:scale(.97); }
  .plate-card:active, .guide-card:active, .g-item:active{ transform:scale(.985); }
}

/* carousel dots (built by main.js, shown only when the row actually scrolls) */
.car-dots{ display:none; justify-content:center; gap:.5rem; margin-top:.9rem; }
.car-dots.on{ display:flex; }
.car-dots button{
  width:28px; height:28px; padding:0; border:0; background:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}
.car-dots button::before{
  content:""; width:7px; height:7px; border-radius:99px; background:rgba(110,88,68,.35);
  transition:width .3s ease, background .3s ease;
}
.car-dots button[aria-current="true"]::before{ width:22px; background:var(--chili); }

/* drawer footer (call + language) */
.drawer-foot{ display:none; }

@media (max-width: 1020px){
  .nav-burger{ width:44px; height:44px; padding:9px; margin-right:-6px; }
  .nav-burger span{ margin:5px 0; }
  .lang-switch a{ padding:.55rem .8rem; display:inline-flex; align-items:center; min-height:36px; }
  .drawer-close{ width:48px; height:48px; top:.8rem; right:.8rem; display:flex; align-items:center; justify-content:center; }
  .nav-drawer{ padding:calc(4.6rem + env(safe-area-inset-top)) 1.6rem calc(1.6rem + env(safe-area-inset-bottom)); overflow-y:auto; }
  .nav-drawer a{ min-height:52px; display:flex; align-items:center; }
  .nav-drawer .btn{ justify-content:center; min-height:52px; }
  .drawer-foot{ display:flex; flex-direction:column; gap:.2rem; margin-top:auto; padding-top:1.4rem; }
  .nav-drawer .drawer-foot a{ border:0; text-transform:none; letter-spacing:.02em; font-size:1rem; color:var(--cream-dim); gap:.6rem; min-height:48px; }
  .nav-drawer .drawer-foot .drawer-tel{ color:var(--gold); font-weight:500; }
  html.drawer-open, html.drawer-open body{ overflow:hidden; }
}

@media (max-width: 760px){
  :root{ --gutter:20px; --nav-h:56px; }
  body{ font-size:16px; line-height:1.65; }
  .container{ width:calc(100% - 2 * var(--gutter)); }
  section{ padding:3.4rem 0; }
  .kicker{ font-size:.74rem; letter-spacing:.28em; margin-bottom:.7rem; }
  .section-title{ font-size:clamp(1.65rem, 7.2vw, 2.05rem); }
  .section-title.ornament{ padding-bottom:1.2rem; }
  .lead{ font-size:1rem; }
  .btn{ min-height:48px; padding:.8rem 1.6rem; display:inline-flex; align-items:center; justify-content:center; text-align:center; }
  .btn-sm{ min-height:46px; font-size:.82rem; }

  /* navbar */
  .navbar{ padding:calc(.7rem + env(safe-area-inset-top)) 0 .7rem; }
  .navbar.scrolled{ padding:calc(.4rem + env(safe-area-inset-top)) 0 .4rem; }
  .navbar .container{ gap:.6rem; }
  .brand{ font-size:1.12rem; gap:.55rem; }
  .brand img{ width:42px; height:42px; }

  /* hero */
  .hero{ min-height:100vh; min-height:100svh; align-items:flex-end; }
  .hero-media img{ object-position:50% 40%; }
  .hero::after{ background:linear-gradient(180deg, rgba(26,17,10,.78) 0%, rgba(26,17,10,.58) 32%, rgba(26,17,10,.8) 60%, #1a110a 100%); }
  .hero-kicker, .hero-tagline{ text-shadow:0 2px 12px rgba(0,0,0,.65); }
  .hero-inner{ width:100%; padding:calc(6.5rem + env(safe-area-inset-top)) var(--gutter) calc(2.6rem + env(safe-area-inset-bottom)); }
  .hero-kicker{ font-size:.72rem; letter-spacing:.3em; margin-bottom:.9rem; }
  .hero-kicker .sep{ display:block; height:0; overflow:hidden; }
  .hero h1{ font-size:clamp(2.7rem, 13.5vw, 3.6rem); margin-bottom:.8rem; }
  .hero-tagline{ font-size:1.08rem; line-height:1.5; margin-bottom:1.4rem; padding:0 .4rem; }
  .hero-pills{ gap:.5rem; margin-bottom:1.6rem; }
  .pill{ font-size:.82rem; padding:.45rem .95rem; }
  .hero-cta{ flex-direction:column; align-items:stretch; gap:.7rem; width:min(340px, 100%); margin-inline:auto; }
  .hero-cta .btn{ width:100%; }
  .scroll-hint{ display:none; }

  /* about: shorter arch photo, compact feature list */
  .about-grid{ gap:2.6rem; }
  .about-photo{ width:min(100%, 380px); margin-inline:auto; }
  .about-photo picture{ display:block; }
  .about-photo img{ width:100%; aspect-ratio:4/4.4; object-fit:cover; object-position:50% 62%; }
  .hours-badge{ right:-6px; bottom:-16px; padding:.7rem 1rem; font-size:.84rem; max-width:none; }
  .hours-badge strong{ font-size:1rem; }
  .about-cards{ grid-template-columns:1fr; gap:.7rem; margin-top:1.6rem; }
  .icon-card{
    display:grid; grid-template-columns:44px 1fr; column-gap:.9rem; align-items:center;
    text-align:left; padding:.9rem 1rem; border-top:0; border-left:3px solid var(--accent);
  }
  .icon-card .ic{ grid-row:1 / span 2; width:44px; height:44px; border-radius:50%; background:var(--cream-bg-2);
    display:flex; align-items:center; justify-content:center; font-size:1.3rem; margin:0; }
  .icon-card h3{ margin:0; }
  .icon-card p{ font-size:.86rem; line-height:1.5; }

  /* cinematic band */
  .band{ height:auto; min-height:min(56svh, 420px); }
  .band h2{ font-size:1.75rem; padding:0 .4rem; }

  /* swipe carousels: plates, guide, reviews */
  [data-carousel]{
    display:flex !important; gap:14px; overflow-x:auto; overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory; scroll-padding-inline:var(--gutter);
    margin-inline:calc(-1 * var(--gutter)); padding:6px var(--gutter) 14px;
    scrollbar-width:none; -webkit-overflow-scrolling:touch;
  }
  [data-carousel]::-webkit-scrollbar{ display:none; }
  [data-carousel] > *{ flex:0 0 84%; scroll-snap-align:start; min-width:0; }
  .plates-grid{ margin-top:1.8rem; }
  .plate-card .ph{ height:auto; aspect-ratio:3/2; }
  .plate-card .ph picture{ display:block; height:100%; }
  .plate-body{ padding:1.05rem 1.15rem 1.25rem; }
  .plate-head h3{ font-size:1.18rem; }
  .plate-body p{ font-size:.9rem; line-height:1.55; }
  .order-guide-grid{ margin-top:1.8rem; }
  .order-guide-grid > *{ flex-basis:78%; }
  .guide-card{ padding:1.25rem 1.2rem; display:flex; flex-direction:column; }
  .guide-card h3{ font-size:1.1rem; }
  .guide-card p{ line-height:1.55; }
  .testi-grid{ margin-top:1.8rem; }
  .testi-card{ padding:2rem 1.3rem 1.3rem; }
  #avis p.center{ margin-top:1.4rem !important; }

  /* sharing-platter banner */
  .banner h2{ font-size:1.5rem; line-height:1.3; }
  .banner h2 .nw{ display:block; color:#ffe9d9; font-size:1.22rem; margin-top:.25rem; }
  .banner h2 .sep{ display:none; }
  .banner p{ font-size:.95rem; }

  /* menu: tabs pin under the navbar while browsing a category */
  .menu-tabs-wrap{
    position:sticky; top:var(--nav-h); z-index:30; margin:1.8rem calc(-1 * var(--gutter)) 1rem;
    padding:.6rem 0; background:var(--cream-bg-2);
    transition:box-shadow .25s ease;
  }
  .menu-tabs-wrap.stuck{ box-shadow:0 10px 18px -12px rgba(90,62,30,.35); }
  .menu-tabs{ padding:0 3rem 2px var(--gutter); scroll-padding-inline:var(--gutter); gap:.5rem; }
  .menu-tabs button{ flex:none; padding:.5rem 1.05rem; font-size:.8rem; white-space:nowrap; }
  .menu-tabs li{ flex:none; }
  .menu-tabs-wrap::after{ width:56px; }
  .menu-tabs-wrap::before{
    content:""; position:absolute; left:0; top:0; bottom:0; width:var(--gutter); z-index:1;
    background:linear-gradient(270deg, transparent, var(--cream-bg-2)); pointer-events:none;
  }
  .menu-item{ padding:.75rem 0; }
  .menu-item .mi-name{ font-size:1rem; }
  .menu-note{ font-size:.95rem; }

  /* gallery: compact 2-column mosaic, every photo keeps its natural shape */
  .gallery-grid{ grid-template-columns:1fr 1fr; gap:10px; margin-top:1.8rem; }
  .g-row{ display:contents; }
  .g-row-1 > .g-43, .g-row-3 > .g-43, .g-row-3 > .g-wide{ grid-column:1 / -1; }
  .g-cap{ font-size:.7rem; letter-spacing:.14em; padding:1.6rem .75rem .6rem; }
  .g-item{ border-radius:8px; }

  /* food reel + buffet */
  .reel{ --reel-h:220px; }
  .reel-cap{ font-size:.72rem; padding:.38rem .7rem; }
  .buffet-inner{ padding:3rem 0; }

  /* contact */
  .loc-grid{ margin-top:1.8rem; gap:1rem; }
  .loc-card{ padding:1.5rem 1.25rem; }
  .loc-card h3{ font-size:1.5rem; }
  .loc-tels{ display:flex; flex-wrap:wrap; gap:.5rem; margin:.7rem 0 !important; }
  .loc-tels .tel-ic, .loc-tels .sep{ display:none; }
  .tel-chip{
    display:inline-flex; align-items:center; gap:.45rem; min-height:46px; padding:0 1rem;
    border:1.5px solid rgba(30,122,76,.4); border-radius:999px; background:#fff; font-size:.95rem;
  }
  .tel-chip svg{ display:block; color:var(--accent); }
  .loc-social a{ display:inline-flex; align-items:center; min-height:44px; padding:0 .15rem; }
  .hours-table{ font-size:.95rem; }
  .hours-table td{ padding:.55rem 0; }
  .loc-actions{ display:grid; grid-template-columns:1fr 1fr; gap:.6rem; }
  .loc-actions .btn{ width:100%; }
  .loc-map, .loc-map iframe{ min-height:300px; }

  /* FAQ: the whole row is the tap target */
  .faq-list{ margin-top:1.8rem; gap:.65rem; }
  .faq-list details{ padding:0; }
  .faq-list summary{ padding:1rem 1.1rem; min-height:58px; font-size:1rem; line-height:1.4; }
  .faq-list details p{ margin:0; padding:0 1.1rem 1.1rem; }

  /* footer */
  .footer{ padding:3rem 0 calc(8.5rem + env(safe-area-inset-bottom)); }
  .footer-grid{ grid-template-columns:1fr 1fr !important; gap:2rem 1rem; }
  .footer-grid > div:first-child, .footer-grid > div:last-child{ grid-column:1 / -1; }
  .footer li{ margin:0; }
  .footer li a{ display:flex; align-items:center; min-height:44px; }
  .footer li:not(:has(a)){ padding:.6rem 0; line-height:1.4; }
  .footer h4{ margin-bottom:.3rem; }
  .social-row a{ width:46px; height:46px; }
  .social-row a.social-pill{ min-height:46px; padding:0 1.1rem; }
  .news-form input{ font-size:16px; min-height:48px; }       /* 16 px: no iOS auto-zoom */
  .news-form .btn{ min-height:48px; min-width:64px; }
  .footer-bottom{ flex-direction:column; align-items:center; text-align:center; gap:.4rem; margin-top:2rem; }
  .footer-bottom a{ display:inline-flex; min-height:44px; align-items:center; }

  /* bottom action bar + back-to-top, clear of the home indicator */
  .mobile-bar{ padding-bottom:env(safe-area-inset-bottom); background:var(--footer-bg); }
  .mobile-bar a{ display:flex; align-items:center; justify-content:center; gap:.55rem; min-height:56px; padding:0 .5rem; font-size:.88rem; }
  .mobile-bar a svg{ flex:none; }
  .to-top{ display:none; }   /* phones: bottom bar + always-visible navbar cover this; the floating button kept covering prices */

  /* order chooser as a bottom sheet */
  .order-modal{ align-items:flex-end; padding:0; }
  .om-card{ width:100%; border-radius:20px 20px 0 0; padding:1.8rem 1.25rem calc(1.4rem + env(safe-area-inset-bottom)); animation:sheetUp .32s cubic-bezier(.2,.8,.2,1); }
  .om-card::before{ content:""; position:absolute; top:8px; left:50%; width:40px; height:4px; margin-left:-20px; border-radius:4px; background:rgba(110,88,68,.3); }

  /* lightbox: full-width photos, thumb-reachable controls */
  .lightbox img{ max-width:100vw; max-height:78vh; border-radius:0; }
  .lb-prev, .lb-next{ top:auto; bottom:calc(1.2rem + env(safe-area-inset-bottom)); transform:none; }
  .lb-prev{ left:calc(50% - 64px); }
  .lb-next{ right:calc(50% - 64px); }
  .lb-close{ top:calc(.8rem + env(safe-area-inset-top)); right:.8rem; }
  .lb-cap{ bottom:auto; top:calc(1.4rem + env(safe-area-inset-top)); padding:0 4.5rem; }

  /* lighter entrance motion on phones */
  .reveal{ transform:translateY(18px); }
  .stagger > *{ transform:translateY(14px); }
}
@keyframes sheetUp{ from{ transform:translateY(100%); } to{ transform:none; } }

@media (max-width: 380px){
  :root{ --gutter:16px; }
  .brand{ font-size:1.02rem; }
  .brand img{ width:38px; height:38px; }
  .lang-switch a{ padding:.5rem .65rem; }
  .hero h1{ font-size:2.6rem; }
  .loc-actions{ grid-template-columns:1fr; }
}
