/* Q's Corner Café - visual prototype
   Palette: deep navy, rich red, warm cream, electric blue accent, charcoal
   Type: Anton (display), Archivo (text), Caveat (handwritten notes) */

@font-face { font-family:'Anton'; src:url(fonts/anton-400.woff2) format('woff2'); font-weight:400; font-display:swap; }
@font-face { font-family:'Archivo'; src:url(fonts/archivo-400.woff2) format('woff2'); font-weight:400; font-display:swap; }
@font-face { font-family:'Archivo'; src:url(fonts/archivo-500.woff2) format('woff2'); font-weight:500; font-display:swap; }
@font-face { font-family:'Archivo'; src:url(fonts/archivo-600.woff2) format('woff2'); font-weight:600; font-display:swap; }
@font-face { font-family:'Archivo'; src:url(fonts/archivo-700.woff2) format('woff2'); font-weight:700; font-display:swap; }
@font-face { font-family:'Archivo'; src:url(fonts/archivo-800.woff2) format('woff2'); font-weight:800; font-display:swap; }
@font-face { font-family:'Archivo'; src:url(fonts/archivo-900.woff2) format('woff2'); font-weight:900; font-display:swap; }
@font-face { font-family:'Caveat'; src:url(fonts/caveat-600.woff2) format('woff2'); font-weight:600; font-display:swap; }
@font-face { font-family:'Caveat'; src:url(fonts/caveat-700.woff2) format('woff2'); font-weight:700; font-display:swap; }

:root {
  --navy:#131b2b;
  --navy2:#1b2540;
  --red:#d5303e;
  --red-dark:#a92330;
  --cream:#f7f0e2;
  --cream2:#efe4cd;
  --paper:#fbf7ec;
  --blue:#2f6bff;
  --ink:#201b1c;
  --gold:#f0ad2e;
  --line:rgba(19,27,43,.14);
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
#top { scroll-margin-top:80px; } /* land at page top; sticky nav would otherwise cover the hero eyebrow */
body {
  font-family:'Archivo', system-ui, sans-serif;
  background:var(--cream);
  color:var(--ink);
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img, video { display:block; max-width:100%; }
a { color:inherit; }
.wrap { width:min(1120px, 100% - 40px); margin-inline:auto; }

.display { font-family:'Anton', 'Arial Narrow', sans-serif; font-weight:400; text-transform:uppercase; line-height:.94; letter-spacing:.01em; }
.eyebrow {
  font-size:12px; font-weight:800; letter-spacing:.22em; text-transform:uppercase;
  color:var(--red-dark); margin-bottom:18px;
}
.eyebrow.light { color:var(--gold); }
.eyebrow .dot, .dot { color:var(--red); }
.section-navy .dot, .section-navy2 .dot { color:var(--gold); }
.scribble { font-family:'Caveat', cursive; font-weight:600; font-size:clamp(20px,2.4vw,26px); color:var(--red); }
@media (max-width:999px) { .scribble { color:var(--red-dark); } } /* under 24px the scribble is not "large text"; red on cream is 4.28:1 */
.section-navy .scribble, .section-navy2 .scribble { color:var(--gold); }

.section-title {
  font-size:clamp(46px,8vw,96px);
  color:var(--navy);
  margin-bottom:34px;
}
.section-title .accent { color:var(--red); }
.section-navy .section-title, .section-navy2 .section-title { color:var(--cream); }

section { padding:96px 0; }
section[id] { scroll-margin-top:84px; }
.section-cream { background:var(--cream); }
.section-paper { background:var(--cream2); }
.section-navy { background:var(--navy); color:var(--cream); }
.section-navy2 { background:var(--navy2); color:var(--cream); }
.section-red { background:var(--red-dark); color:var(--cream); }
.section-red .eyebrow { color:#fff; }
.section-red .dot { color:var(--cream); }

/* ---------- buttons ---------- */
.btn {
  display:inline-block; font-weight:800; font-size:14px; letter-spacing:.08em; text-transform:uppercase;
  padding:15px 26px; border-radius:999px; text-decoration:none;
  transition:transform .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
}
.btn:hover { transform:translateY(-2px); }
.btn-red { background:var(--red-dark); color:var(--cream); }
.btn-red:hover { filter:brightness(.88); }
.btn-ghost { border:2px solid rgba(247,240,226,.5); color:var(--cream); }
.btn-ghost:hover { border-color:var(--cream); background:rgba(247,240,226,.08); }
.btn-navy { background:var(--navy); color:var(--cream); }
.btn-navy:hover { background:var(--navy2); }
.btn-cream { background:var(--cream); color:var(--red-dark); }
.btn-cream:hover { background:#fff; }
.btn-outline-cream { border:2px solid rgba(247,240,226,.65); color:var(--cream); }
.btn-outline-cream:hover { background:rgba(247,240,226,.12); }

/* ---------- nav ---------- */
.nav {
  position:sticky; top:0; z-index:50;
  display:flex; align-items:center; gap:26px;
  padding:10px 20px;
  background:rgba(247,240,226,.92);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-bottom:3px solid var(--red);
}
.nav-brand { display:flex; align-items:center; gap:10px; text-decoration:none; }
.nav-logo { width:38px; height:38px; border-radius:50%; }
.nav-name { font-family:'Anton',sans-serif; text-transform:uppercase; font-size:17px; letter-spacing:.03em; color:var(--navy); }
.nav-links { display:flex; gap:22px; margin-left:auto; }
.nav-links a {
  text-decoration:none; font-size:13px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--navy);
  border-bottom:2px solid transparent; padding-bottom:2px;
}
.nav-links a:hover { border-color:var(--red-dark); color:var(--red-dark); }
.nav-call {
  text-decoration:none; background:var(--red-dark); color:var(--cream);
  font-size:13px; font-weight:800; letter-spacing:.06em;
  padding:9px 16px; border-radius:999px; white-space:nowrap;
}
.nav-call:hover { filter:brightness(.88); }

/* ---------- hero ---------- */
.hero {
  background:var(--navy);
  color:var(--cream);
  overflow:hidden;
  display:flex; flex-direction:column;
}
.hero-grid {
  display:grid; grid-template-columns:1.15fr .85fr; gap:48px;
  align-items:center;
  padding:72px 0 88px;
  flex:1;
}
.hero-eyebrow { color:var(--gold); animation:rise .6s .1s cubic-bezier(.2,.7,.2,1) both; }
.hero-title {
  font-size:clamp(54px,7.8vw,104px);
  margin-bottom:26px;
}
.hero-title .line { display:block; overflow:hidden; }
.hero-title .line > span { display:block; animation:linerise .8s cubic-bezier(.2,.75,.2,1) both; }
.hero-title .line:nth-child(1) > span { animation-delay:.18s; }
.hero-title .line:nth-child(2) > span { animation-delay:.32s; }
.hero-title .line:nth-child(3) > span { animation-delay:.44s; }
.hero-title .line:nth-child(4) > span { animation-delay:.56s; }
.hero-title .accent { color:var(--red); text-shadow:0 0 0 var(--red); }
.hero-sub {
  font-size:clamp(16px,1.6vw,19px); max-width:46ch; color:rgba(247,240,226,.85);
  margin-bottom:30px;
  animation:rise .6s .45s cubic-bezier(.2,.7,.2,1) both;
}
.hero-ctas { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:22px; animation:rise .6s .58s cubic-bezier(.2,.7,.2,1) both; }
.hero-loc {
  font-size:13px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color:rgba(247,240,226,.6); text-decoration:none;
  animation:rise .6s .68s cubic-bezier(.2,.7,.2,1) both;
}
.hero-loc:hover { color:var(--cream); }
@keyframes linerise { from { transform:translateY(110%); } to { transform:translateY(0); } }
@keyframes rise { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }

.hero-visual { position:relative; animation:heroimg .9s .35s cubic-bezier(.2,.7,.2,1) both; }
@keyframes heroimg { from { opacity:0; transform:translateY(26px) rotate(5deg) scale(.97); } to { opacity:1; transform:none; } }
.hero-photo {
  border:10px solid var(--cream);
  border-radius:6px;
  transform:rotate(2.5deg);
  box-shadow:0 30px 60px rgba(0,0,0,.45);
  overflow:hidden;
}
.hero-photo img { width:100%; aspect-ratio:4/4.6; object-fit:cover; }
.hero-badge {
  position:absolute; top:-26px; right:-10px;
  width:112px; height:112px; border-radius:50%;
  background:var(--red-dark); color:var(--cream);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  transform:rotate(-8deg);
  box-shadow:0 14px 30px rgba(0,0,0,.35);
  border:3px dashed rgba(247,240,226,.55);
}
.hero-badge-num { font-family:'Anton',sans-serif; font-size:30px; line-height:1; }
.hero-badge-star { color:var(--gold); font-size:16px; line-height:1.2; }
.hero-badge-label { font-size:9px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.hero-scribble { position:absolute; bottom:-30px; left:-6px; transform:rotate(-3deg); color:var(--gold); }

/* ---------- marquee ---------- */
.marquee {
  background:var(--red-dark); color:var(--cream);
  overflow:hidden; padding:13px 0;
  border-top:3px solid var(--navy);
}
.marquee-track { display:flex; width:max-content; animation:marquee 26s linear infinite; }
.marquee-track span {
  font-family:'Anton',sans-serif; text-transform:uppercase; font-size:16px; letter-spacing:.12em;
  white-space:nowrap;
}
@keyframes marquee { from { transform:translateX(0); } to { transform:translateX(-50%); } }

/* ---------- story ---------- */
.story-grid { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start; }
.story-copy p { font-size:17px; margin-bottom:18px; max-width:52ch; }
.stamps { list-style:none; display:flex; flex-wrap:wrap; gap:10px; margin-top:26px; }
.stamps li {
  font-size:12px; font-weight:800; letter-spacing:.14em; text-transform:uppercase;
  color:var(--navy);
  border:2px solid var(--navy); border-radius:4px;
  padding:8px 12px;
  transform:rotate(-1.2deg);
  background:var(--paper);
}
.stamps li:nth-child(2) { transform:rotate(1deg); }
.stamps li:nth-child(3) { transform:rotate(-.6deg); }
.story-visual { position:relative; padding-bottom:46px; }
.story-photo { overflow:hidden; border-radius:6px; box-shadow:0 20px 44px rgba(19,27,43,.22); }
.story-photo img { width:100%; object-fit:cover; }
.story-photo-main { border:8px solid #fff; transform:rotate(-1.4deg); }
.story-photo-main img { aspect-ratio:4/3.4; }
.story-photo-tilt {
  position:absolute; right:-8px; bottom:-30px; width:44%;
  border:8px solid #fff; transform:rotate(3deg);
}
.story-photo-tilt img { aspect-ratio:1/1.1; object-position:50% 0%; }
.story-duo { margin-top:34px; max-width:340px; border:8px solid #fff; border-radius:6px; background:#fff; box-shadow:0 20px 44px rgba(19,27,43,.22); transform:rotate(1.2deg); }
.story-duo img { width:100%; aspect-ratio:4/4.6; object-fit:cover; object-position:50% 40%; }
.story-duo figcaption { padding:10px 4px 4px; text-align:center; }
.story-scribble { position:absolute; bottom:-38px; left:4px; }

/* ---------- food showcase ---------- */
.food-head { display:flex; align-items:baseline; gap:22px; flex-wrap:wrap; }
.food-scribble { transform:rotate(-2deg); margin-bottom:30px; }
.showcase { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start; margin-top:14px; }
.showcase-stage { position:relative; aspect-ratio:4/4.4; }
.panel {
  position:absolute; inset:0; margin:0;
  opacity:0; transform:scale(.96) rotate(.5deg);
  transition:opacity .45s ease, transform .45s ease;
  pointer-events:none;
  border-radius:8px; overflow:hidden;
  box-shadow:0 24px 50px rgba(0,0,0,.4);
}
.panel.is-active { opacity:1; transform:none; pointer-events:auto; }
.panel img, .panel video { width:100%; height:100%; object-fit:cover; }
.showcase-list { display:flex; flex-direction:column; }
.show-item {
  display:grid; grid-template-columns:auto 1fr; grid-template-rows:auto auto; column-gap:18px;
  text-align:left; background:none; border:0; cursor:pointer;
  padding:16px 4px; border-bottom:1px solid rgba(247,240,226,.16);
  font-family:inherit; color:inherit;
}
.show-num { grid-row:1; font-family:'Anton',sans-serif; font-size:15px; color:var(--cream); opacity:.8; padding-top:6px; }
.show-item.is-active .show-num { color:var(--gold); opacity:1; }
.show-name {
  grid-column:2;
  font-family:'Anton',sans-serif; text-transform:uppercase; letter-spacing:.02em;
  font-size:clamp(24px,3.4vw,38px); line-height:1;
  color:transparent; -webkit-text-stroke:1.2px rgba(247,240,226,.75);
  transition:color .25s ease, -webkit-text-stroke-color .25s ease;
}
.show-item:hover .show-name { -webkit-text-stroke-color:var(--cream); }
.show-item.is-active .show-name { color:var(--cream); -webkit-text-stroke-color:transparent; }
.show-desc { grid-column:2; font-size:14px; color:rgba(247,240,226,.6); margin-top:6px; max-width:44ch; }
.show-item:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
.food-more { margin-top:44px; font-size:13px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:rgba(247,240,226,.55); line-height:2.1; }

/* typography-led panel */
.panel-type { background:var(--paper); display:flex; }
.panel-type-inner {
  margin:auto; text-align:center; padding:34px 30px;
  display:flex; flex-direction:column; align-items:center; gap:14px;
}
.panel-type-kicker {
  font-size:12px; font-weight:800; letter-spacing:.22em; text-transform:uppercase; color:var(--red);
}
.panel-type-big { font-size:clamp(52px,5.2vw,84px); color:var(--navy); line-height:.94; }
.panel-type-list {
  font-size:12px; font-weight:800; letter-spacing:.14em; text-transform:uppercase;
  color:rgba(19,27,43,.75); line-height:2;
}
.panel-type-list .dot { color:var(--red); }
.panel-type .panel-type-note { color:var(--red-dark); transform:rotate(-2deg); } /* beats .section-navy .scribble (gold) */

/* ---------- chef ---------- */
.chef-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:center; }
.chef-visual { position:relative; padding-bottom:44px; }
.chef-photo { border:10px solid #fff; border-radius:6px; transform:rotate(-2deg); box-shadow:0 24px 50px rgba(19,27,43,.25); overflow:hidden; }
.chef-photo img { width:100%; aspect-ratio:4/4.7; object-fit:cover; }
.chef-scribble { position:absolute; bottom:-6px; right:0; transform:rotate(-2.5deg); }
.chef-copy p { font-size:17px; margin-bottom:18px; max-width:52ch; }
.chef-copy .btn { margin-top:8px; }

.menu { padding-top:118px; }
.hood { padding-top:118px; }

/* ---------- menu ticket ---------- */
.menu-head { display:flex; align-items:baseline; gap:22px; flex-wrap:wrap; }
.menu-scribble { transform:rotate(-2deg); margin-bottom:26px; }
.ticket {
  background:var(--paper);
  border-radius:6px;
  border-top:8px solid var(--red);
  box-shadow:0 22px 48px rgba(19,27,43,.16);
  padding:34px clamp(20px,4vw,54px) 26px;
}
.menu-tabs { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:30px; }
.menu-tab {
  font-family:'Archivo',sans-serif; font-size:13px; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
  background:none; border:2px solid var(--navy); color:var(--navy);
  border-radius:999px; padding:9px 18px; cursor:pointer;
  transition:background .18s ease, color .18s ease;
}
.menu-tab:hover { background:rgba(19,27,43,.08); }
.menu-tab.is-active { background:var(--navy); color:var(--cream); }
.menu-tab:focus-visible { outline:2px solid var(--red); outline-offset:2px; }
.menu-panel { display:none; }
.menu-panel.is-active { display:grid; grid-template-columns:1fr 1fr; gap:6px 40px; animation:panelin .35s ease; }
@keyframes panelin { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
.menu-item { padding:13px 0; border-bottom:1px dashed rgba(19,27,43,.25); }
.menu-item-wide { grid-column:1 / -1; }
.menu-item h3 { font-family:'Anton',sans-serif; font-size:18px; letter-spacing:.04em; text-transform:uppercase; color:var(--navy); margin-bottom:3px; }
.menu-item p { font-size:14px; color:rgba(32,27,28,.72); }
.menu-note {
  grid-column:1 / -1;
  font-family:'Caveat',cursive; font-size:22px; font-weight:600; color:var(--red);
  margin-bottom:8px;
}
.menu-ig { grid-column:1 / -1; display:inline-block; margin-top:12px; font-weight:800; font-size:14px; letter-spacing:.08em; text-transform:uppercase; color:var(--red-dark); text-decoration:underline; text-underline-offset:3px; }
.ticket-foot { margin-top:26px; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:rgba(32,27,28,.72); }

/* ---------- neighborhood ---------- */
.hood-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:52px; align-items:center; }
.hood-video { position:relative; border-radius:8px; overflow:hidden; box-shadow:0 24px 50px rgba(0,0,0,.4); }
.hood-video video { width:100%; aspect-ratio:3/3.9; object-fit:cover; }
.hood-video figcaption { position:absolute; left:14px; bottom:10px; transform:rotate(-2deg); text-shadow:0 2px 10px rgba(0,0,0,.6); }
.hood-copy p { font-size:17px; color:rgba(247,240,226,.85); margin-bottom:26px; max-width:50ch; }
.hood-feats { list-style:none; display:flex; flex-direction:column; gap:0; }
.hood-feats li { padding:16px 0; border-top:1px solid rgba(247,240,226,.18); }
.hood-feats strong { display:block; font-family:'Anton',sans-serif; text-transform:uppercase; font-size:20px; letter-spacing:.04em; color:var(--cream); }
.hood-feats span { font-size:14px; color:rgba(247,240,226,.6); }

/* ---------- reviews ---------- */
.rev-grid {
  display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:start;
  margin-top:8px;
}
.rev-featured { position:relative; padding-top:44px; }
.rev-mark {
  position:absolute; top:-30px; left:-8px;
  font-family:'Anton',sans-serif; font-size:150px; line-height:1; color:var(--red);
}
.rev-quote {
  font-size:clamp(23px,2.6vw,31px); line-height:1.42; font-weight:700;
  color:var(--cream); max-width:26ch;
}
.rev-by {
  margin-top:20px; font-size:14px; font-weight:800; letter-spacing:.06em;
  text-transform:uppercase; color:rgba(247,240,226,.85);
}
.rev-stars { color:var(--gold); letter-spacing:.12em; margin-right:10px; font-size:13px; }
.rev-src { color:rgba(247,240,226,.68); font-weight:600; text-transform:none; letter-spacing:.02em; }
.rev-side { display:flex; flex-direction:column; gap:22px; }
.rev-score {
  background:var(--cream); color:var(--navy);
  border-radius:8px; padding:24px 26px;
  display:flex; flex-direction:column; gap:2px;
  transform:rotate(-.8deg);
  box-shadow:0 20px 44px rgba(0,0,0,.35);
}
.rev-num { font-size:64px; color:var(--red); line-height:1; }
.rev-stars-big { color:var(--gold); font-size:20px; letter-spacing:.14em; margin:6px 0 4px; }
.rev-count { font-size:13px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.rev-verified { font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:rgba(19,27,43,.75); margin-top:6px; }
.rev-mini {
  border-left:3px solid var(--red);
  padding:6px 0 6px 22px;
}
.rev-mini blockquote { font-size:16px; line-height:1.55; color:rgba(247,240,226,.88); }
.rev-mini .rev-by { margin-top:12px; font-size:12px; }
.rev-more {
  display:inline-block; margin-top:40px;
  font-weight:800; font-size:14px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--gold); text-decoration:none; border-bottom:2px solid rgba(240,173,46,.4); padding-bottom:3px;
}
.rev-more:hover { border-color:var(--gold); }

/* ---------- faq ---------- */
.faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:34px 48px; }
.faq-item h3 {
  font-family:'Anton',sans-serif; font-size:19px; letter-spacing:.04em; text-transform:uppercase;
  color:var(--navy); margin-bottom:8px;
}
.faq-item p { font-size:15px; color:rgba(32,27,28,.75); max-width:44ch; }
.faq-item a { color:var(--red-dark); font-weight:700; text-decoration:none; }
.faq-item a:hover { text-decoration:underline; }

/* ---------- visit ---------- */
.visit-title { color:var(--cream); font-size:clamp(64px,12vw,150px); }
.visit-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:36px; margin:20px 0 40px; }
.visit-label { font-family:'Anton',sans-serif; text-transform:uppercase; font-size:15px; letter-spacing:.14em; color:rgba(247,240,226,.9); margin-bottom:12px; }
.visit-block p, .visit-block a { font-size:19px; font-weight:600; text-decoration:none; line-height:1.5; }
.visit-block a:hover { text-decoration:underline; }
.hours { border-collapse:collapse; font-size:16px; }
.hours td { padding:5px 26px 5px 0; font-weight:600; }
.hours td:last-child { font-weight:800; }
.visit-ctas { display:flex; gap:14px; flex-wrap:wrap; }
.visit-foot { margin-top:30px; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:rgba(247,240,226,.9); }

/* ---------- footer ---------- */
.footer { background:var(--navy); color:var(--cream); padding:64px 0 34px; }
.footer-grid { display:flex; flex-wrap:wrap; gap:36px; align-items:center; justify-content:space-between; }
.footer-brand { display:flex; gap:16px; align-items:center; }
.footer-logo { width:64px; height:64px; border-radius:50%; }
.footer-name { font-size:24px; }
.footer-addr { font-size:13px; color:rgba(247,240,226,.6); margin-top:4px; }
.footer-nav { display:flex; gap:20px; }
.footer-nav a { font-size:12px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; text-decoration:none; color:rgba(247,240,226,.7); }
.footer-nav a:hover { color:var(--cream); }
.footer-frog { text-align:center; }
.footer-frog .scribble { color:var(--cream); }
.footer-frog img { width:92px; height:92px; border-radius:50%; object-fit:cover; margin:0 auto 6px; border:3px solid var(--cream); transition:transform .3s cubic-bezier(.2,1.6,.4,1); }
.footer-frog img:hover { transform:rotate(8deg) scale(1.07); }
.footer-note { text-align:center; margin-top:44px; font-size:12px; color:#9a9b9d; letter-spacing:.06em; }
.footer-note a { color:inherit; text-decoration:underline; text-underline-offset:3px; }
.footer-note a:hover { color:var(--cream); }

/* ---------- mobile call bar ---------- */
.callbar { display:none; }

/* ---------- reveals ---------- */
.reveal { opacity:0; transform:translateY(26px); transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal.in { opacity:1; transform:none; }

/* ---------- responsive ---------- */
@media (max-width:900px) {
  .hero-grid { grid-template-columns:1fr; gap:40px; padding:52px 0 76px; }
  .hero-visual { max-width:440px; }
  .story-grid, .showcase, .chef-grid, .hood-grid, .rev-grid, .faq-grid { grid-template-columns:1fr; gap:40px; }
  .visit-grid { grid-template-columns:1fr; gap:26px; }
}
@media (max-width:767px) {
  body { padding-bottom:64px; }
  section { padding:70px 0; }
  .nav { gap:14px; padding:9px 14px; }
  .nav-links { display:none; }
  .nav-name { font-size:15px; }
  .nav-call { margin-left:auto; font-size:12px; padding:8px 13px; }
  .hero-title { font-size:clamp(44px,14.5vw,72px); }
  .hero-badge { width:92px; height:92px; top:-18px; right:-4px; }
  .hero-badge-num { font-size:24px; }
  .hero-photo img { aspect-ratio:4/4.2; }
  .hero-scribble { bottom:-34px; }
  .showcase-stage { aspect-ratio:4/3.6; order:-1; }
  .menu-panel.is-active { grid-template-columns:1fr; }
  .menu-tabs { flex-wrap:nowrap; overflow-x:auto; padding-top:4px; margin-top:-4px; padding-bottom:8px; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
  .menu-tabs::-webkit-scrollbar { display:none; }
  .menu-tab { white-space:nowrap; }
  .story-photo-tilt { width:52%; }
  .callbar {
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:60;
    background:var(--navy); border-top:2px solid var(--red);
    padding:9px 10px calc(9px + env(safe-area-inset-bottom)); gap:8px;
  }
  .callbar-btn {
    flex:1; text-align:center; text-decoration:none;
    font-size:13px; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
    color:var(--cream); padding:11px 6px; border-radius:8px;
    border:1.5px solid rgba(247,240,226,.35);
  }
  .callbar-call { background:var(--red-dark); border-color:var(--red-dark); }
  .footer { padding-bottom:88px; }
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .marquee-track { animation:none; }
  .reveal { opacity:1; transform:none; }
}

/* ---------- touch hit areas: invisible, no layout change (>=44px tall) ---------- */
.nav-brand, .nav-call, .nav-links a, .hero-loc, .menu-tab, .menu-ig, .rev-more, .footer-nav a { position:relative; }
.nav-brand::after, .nav-call::after, .nav-links a::after, .hero-loc::after, .menu-tab::after, .menu-ig::after, .rev-more::after, .footer-nav a::after {
  content:""; position:absolute; left:0; right:0; top:50%; height:max(100%, 44px); transform:translateY(-50%);
}
.nav-links a::after, .footer-nav a::after { left:-3px; right:-3px; } /* short labels ("Visit") reach 44px wide */
.footer-note a { position:relative; }
.footer-note a::after { content:""; position:absolute; left:0; right:0; top:50%; height:44px; transform:translateY(-50%); }
