:root{
  --red:#C41420;
  --red-dark:#8F0E17;
  --ink:#1A1414;
  --cream:#FBF7F1;
  --paper:#FFFFFF;
  --line:#EAE2D6;
  --muted:#6B6058;
  --maxw:1120px;
  --display:'Work Sans', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  --script:'Dancing Script', cursive;
  --body:'Work Sans', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--body);
  color:var(--ink);
  background-color:var(--cream);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:var(--display); font-weight:800; letter-spacing:-.01em; text-transform:none; margin:0 0 .4em; color:var(--ink); line-height:1.1;}
a{color:inherit;}
img{max-width:100%; display:block;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 32px;}
.skip-link{position:absolute; left:-9999px; top:0; background:var(--red); color:#fff; padding:12px 20px; z-index:100;}
.skip-link:focus{left:16px; top:16px;}
.script{font-family:var(--script); text-transform:none; font-weight:700; font-size:24px; color:var(--red);}
.eyebrow{font-family:var(--script); text-transform:none; font-weight:700; font-size:24px; color:var(--red); letter-spacing:0;}

/* Header */
header.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(251,247,241,.94); backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.nav-row{display:flex; align-items:center; justify-content:space-between; padding:14px 32px; max-width:var(--maxw); margin:0 auto;}
.brand{display:flex; align-items:center; gap:12px; text-decoration:none;}
.brand img{width:44px; height:44px; border-radius:50%;}
.brand span{font-family:var(--display); font-weight:400; font-size:19px; letter-spacing:.4px; text-transform:uppercase;}
nav.primary-nav ul{list-style:none; display:flex; gap:26px; margin:0; padding:0;}
nav.primary-nav a{text-decoration:none; font-weight:500; font-size:14.5px; color:var(--ink); opacity:.75;}
nav.primary-nav a:hover, nav.primary-nav a[aria-current="page"]{opacity:1; color:var(--red);}
.script-link{font-family:var(--script) !important; font-size:20px !important; text-transform:none !important; letter-spacing:0 !important;}
.btn{
  display:inline-block; padding:15px 30px; border-radius:999px; text-decoration:none;
  font-weight:700; font-size:15.5px; letter-spacing:.2px; white-space:nowrap;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
}
.btn-primary{background:var(--red); color:#fff; box-shadow:0 8px 20px -6px rgba(196,20,32,.55), 0 2px 5px rgba(0,0,0,.1);}
.btn-primary:hover{background:var(--red-dark); transform:translateY(-2px); box-shadow:0 12px 26px -8px rgba(196,20,32,.65), 0 3px 7px rgba(0,0,0,.14);}
.btn-primary:active{transform:translateY(0); box-shadow:0 5px 12px -5px rgba(196,20,32,.5);}
.btn-ghost{border:2px solid var(--ink); color:var(--ink);}
.btn-ghost:hover{background:var(--ink); color:#fff; transform:translateY(-2px);}

@media (max-width:820px){
  nav.primary-nav{display:none;}
}

/* Breadcrumb */
.breadcrumb{padding:18px 32px 0; max-width:var(--maxw); margin:0 auto; font-size:13px; color:var(--muted);}
.breadcrumb a{text-decoration:none; color:var(--muted);}
.breadcrumb a:hover{color:var(--red);}

/* Page hero (non-home pages) */
.page-hero{padding:56px 32px 36px; text-align:center; background:var(--ink); color:#fff;}
.page-hero .eyebrow{display:inline-flex; align-items:center; gap:12px; margin-bottom:8px;}
.page-hero h1{font-size:clamp(32px,5vw,52px); max-width:760px; margin:0 auto 14px; color:#fff;}
.page-hero p{max-width:560px; margin:0 auto; font-size:16.5px; color:rgba(255,255,255,.75); font-family:var(--body); text-transform:none;}

/* ============ HOME HERO: full-bleed photo ============ */
.hero{
  position:relative;
  min-height:92vh;
  display:flex; align-items:flex-end; justify-content:flex-start;
  padding:0 0 90px;
  background-image:
    linear-gradient(90deg, rgba(8,3,4,.62) 0%, rgba(8,3,4,.48) 32%, rgba(8,3,4,.18) 55%, rgba(8,3,4,0) 72%),
    linear-gradient(180deg, rgba(8,3,4,0) 0%, rgba(8,3,4,.12) 60%, rgba(8,3,4,.5) 100%),
    url('images/hero.png');
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  color:#fff;
}
.hero-inner{position:relative; z-index:2; max-width:860px; padding:0 32px;}
.hero .eyebrow{
  display:inline-flex; align-items:center; gap:12px; font-family:var(--display);
  text-transform:uppercase; letter-spacing:2px; font-size:14px; color:#fff; margin-bottom:14px;
  text-shadow:0 2px 8px rgba(0,0,0,.6);
}
.hero h1{font-size:clamp(40px,7vw,76px); line-height:.98; margin:0 0 18px; color:#fff; text-shadow:0 2px 10px rgba(0,0,0,.7), 0 10px 44px rgba(0,0,0,.45);}
.hero p.lead{max-width:460px; margin:0 0 34px; font-size:17px; color:rgba(255,255,255,.92); font-family:var(--body); text-transform:none; text-shadow:0 2px 10px rgba(0,0,0,.55);}
.cta-label{display:block; text-align:center; font-size:13px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.75); margin:0 0 10px; text-shadow:0 2px 8px rgba(0,0,0,.6);}
.menu-cta{text-align:center; margin-top:40px;}
.menu-cta .cta-label{color:var(--muted); text-shadow:none;}
.menu-cta .cta-row{display:flex; justify-content:center; gap:14px; flex-wrap:wrap;}
.menu-cta .cta-row .btn{min-width:150px; text-align:center;}
.menu-cta .view-full-menu{display:inline-block; margin-top:16px; text-decoration:underline; font-size:14.5px; color:var(--ink);}
.hero .cta-row{display:flex; justify-content:center; gap:14px; flex-wrap:wrap;}
.hero .cta-row .btn{flex:0 0 auto; min-width:150px; text-align:center;}
.hero .btn-ghost{border-color:rgba(255,255,255,.7); color:#fff;}
.hero .btn-ghost:hover{border-color:#fff; background:rgba(255,255,255,.12);}
.scroll-cue{position:absolute; left:32px; bottom:28px; z-index:2; display:flex; align-items:center; gap:10px; color:rgba(255,255,255,.7); font-size:12px; letter-spacing:2px; text-transform:uppercase;}
.scroll-cue .line{width:1px; height:34px; background:rgba(255,255,255,.5); animation:scrollpulse 1.8s ease-in-out infinite;}
@keyframes scrollpulse{0%,100%{opacity:.3;} 50%{opacity:1;}}
@media (max-width:640px){
  .hero{
    min-height:82vh; padding-bottom:64px;
    background-image:
      linear-gradient(180deg, rgba(8,3,4,.1) 0%, rgba(8,3,4,.22) 55%, rgba(8,3,4,.5) 100%),
      url('images/hero.png');
  }
  .scroll-cue{display:none;}
}

/* ============ AS FEATURED IN ============ */
.as-featured{background:var(--paper); text-align:center; padding:64px 0 56px;}
.as-featured h2{max-width:var(--maxw); margin:0 auto 40px; padding:0 32px; font-size:clamp(20px,2.6vw,28px); letter-spacing:1px;}

/* Continuous logo marquee */
.press-marquee{
  overflow:hidden; width:100%;
  -webkit-mask-image:linear-gradient(to right, transparent, #000 10%, #000 90%, transparent);
  mask-image:linear-gradient(to right, transparent, #000 10%, #000 90%, transparent);
}
.press-track{display:flex; width:max-content; animation:press-scroll 32s linear infinite;}
.press-marquee:hover .press-track{animation-play-state:paused;}
.press-logos{display:flex; align-items:center; gap:0; padding:0; flex-shrink:0;}
.press-logos img{width:84px; height:84px; object-fit:cover; border-radius:14px; border:1px solid var(--line); box-shadow:0 10px 22px -14px rgba(26,20,20,.28); transition:transform .18s ease, box-shadow .18s ease;}
.press-logos img:hover{transform:translateY(-3px); box-shadow:0 14px 26px -14px rgba(26,20,20,.34);}
.press-logos img.logo-wide{width:132px; object-fit:contain; background:var(--paper); padding:14px 16px;}
@keyframes press-scroll{from{transform:translateX(0);} to{transform:translateX(-50%);}}
@media (max-width:640px){ .press-logos img.logo-wide{width:110px;} }
@media (max-width:640px){ .press-logos{gap:0; padding:0;} .press-logos img{width:64px; height:64px; border-radius:10px;} }
@media (prefers-reduced-motion: reduce){ .press-track{animation:none;} }

/* ============ TRUST BAR ============ */
.trust-bar{
  border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:26px 32px;
  background-color:#F3ECE0;
  background-image:url('images/texture.png');
  background-repeat:repeat;
  background-size:300px auto;
  background-blend-mode:multiply;
}
.trust-bar .wrap{display:flex; align-items:center; justify-content:center; gap:36px; flex-wrap:wrap;}
.trust-bar .badge{display:flex; align-items:center; gap:8px; font-size:12.5px; letter-spacing:1px; text-transform:uppercase; color:var(--red-dark); font-weight:700;}
.trust-bar .divider{width:1px; height:16px; background:var(--red-dark); opacity:.3;}
.trust-bar .press span{font-size:12.5px; letter-spacing:1.5px; text-transform:uppercase; color:var(--muted); font-weight:600; margin:0 14px;}

/* ============ STORY HOOK (homepage teaser) ============ */
.story-hook{background:var(--ink); color:#fff; text-align:center; padding:100px 32px;}
.story-hook .script{display:block; margin-bottom:18px;}
.story-hook h2{color:#fff; font-size:clamp(26px,4vw,42px); max-width:820px; margin:0 auto 22px;}
.story-hook p{max-width:640px; margin:0 auto 30px; color:rgba(255,255,255,.72); font-size:17px; font-family:var(--body); text-transform:none;}

/* ============ Generic sections ============ */
section{padding:96px 32px;}
section.tight{padding:60px 32px;}
.section-head{max-width:640px; margin:0 auto 52px; text-align:center;}
.section-head .eyebrow{display:block; font-family:var(--script); font-size:24px; color:var(--red); margin-bottom:6px;}
.section-head h2{font-size:clamp(28px,3.8vw,42px);}
.section-head p{color:var(--muted); font-size:16.5px; margin-top:12px; font-family:var(--body); text-transform:none;}

/* Menu grid */
.menu-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:32px; max-width:var(--maxw); margin:0 auto;}
.dish-card{background:var(--paper); border-radius:14px; overflow:hidden; border:1px solid var(--line); box-shadow:0 1px 2px rgba(26,20,20,.03), 0 12px 24px -14px rgba(26,20,20,.18); transition:transform .18s ease, box-shadow .18s ease;}
.dish-card:hover{transform:translateY(-3px); box-shadow:0 1px 2px rgba(26,20,20,.04), 0 20px 32px -16px rgba(26,20,20,.24);}
.dish-card .img-wrap{aspect-ratio:4/3; overflow:hidden; background:#f1ece2;}
.dish-card img{width:100%; height:100%; object-fit:cover;}
.dish-card .body{padding:20px 22px 24px;}
.dish-card h3{font-size:17px; margin-bottom:6px; letter-spacing:.2px;}
.dish-card p{font-size:14.5px; color:var(--muted); margin:0; font-family:var(--body); text-transform:none;}
.dish-card .price{float:right; color:var(--red); font-family:var(--display); font-size:16px;}
.tag{display:inline-block; font-size:11px; font-weight:700; letter-spacing:.5px; text-transform:uppercase; background:#EFE4CF; color:#7A5A15; padding:4px 10px; border-radius:999px; margin-bottom:10px; font-family:var(--body);}
.tag.veg{background:#E1EEDD; color:#2F5C2A;}

/* Story (red block used inside About + teasers) */
.story{background:var(--red); color:#fff;}
.story .wrap{display:grid; grid-template-columns:1.1fr .9fr; gap:64px; align-items:center;}
.story h2{color:#fff;}
.story p{color:#F3DADD; font-size:17px; font-family:var(--body); text-transform:none;}
.story .stat-row{display:flex; gap:40px; margin-top:36px; flex-wrap:wrap;}
.story .stat b{display:block; font-family:var(--display); font-size:32px;}
.story .stat span{font-size:12.5px; letter-spacing:1px; text-transform:uppercase; color:#F0C6CC; font-family:var(--body);}
.story .cta-row{display:flex; justify-content:center; align-items:center; gap:16px; flex-wrap:wrap;}
.story .cta-row .btn{flex:0 0 auto; min-width:150px; text-align:center;}
@media (max-width:820px){ .story .wrap{grid-template-columns:1fr;} }
@media (max-width:480px){ .story .cta-row{flex-direction:column; gap:14px;} .story .cta-row .btn{width:100%; max-width:280px;} }

/* Pull-quote (founder, in his own words) */
.pull-quote{max-width:780px; margin:0 auto; text-align:center;}
.pull-quote img{width:88px; height:88px; border-radius:50%; margin:0 auto 26px; object-fit:cover;}
.pull-quote p.q{font-family:var(--script); font-weight:700; font-size:clamp(26px,3.4vw,36px); color:var(--ink); line-height:1.3; margin:0 0 20px;}
.pull-quote p.a{font-size:13px; letter-spacing:1.5px; text-transform:uppercase; color:var(--red); font-weight:700; font-family:var(--body);}

/* Quotes / reviews */
.quote-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:24px; max-width:var(--maxw); margin:0 auto; align-items:stretch;}
.quote-card{display:flex; flex-direction:column; background:var(--paper); border:1px solid var(--line); border-radius:14px; padding:28px; box-shadow:0 12px 24px -16px rgba(26,20,20,.16);}
.quote-card p.q{font-family:var(--body); font-style:italic; font-weight:400; font-size:16.5px; margin:0 0 16px; color:var(--ink); line-height:1.5; text-transform:none;}
.quote-card p.a{font-size:12.5px; text-transform:uppercase; letter-spacing:1px; color:var(--red); font-weight:700; margin-top:auto; font-family:var(--body);}
.stars{color:var(--red); letter-spacing:3px; font-size:15px; margin-bottom:10px;}
.social-proof-badges{display:flex; gap:16px; justify-content:center; flex-wrap:wrap; margin-bottom:44px;}
.badge-pill{display:flex; align-items:center; gap:10px; background:var(--paper); border:1px solid var(--line); border-radius:999px; padding:10px 20px; font-size:13.5px; font-weight:600; font-family:var(--body);}
.badge-pill .stars{margin:0;}
.review-cta{background:var(--paper); border:1px dashed var(--line); border-radius:14px; padding:28px; text-align:center; max-width:var(--maxw); margin:32px auto 0;}
.review-cta p{color:var(--muted); font-size:13.5px; margin:10px 0 0; font-family:var(--body);}

/* Visit / location */
.visit-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; max-width:var(--maxw); margin:0 auto; align-items:start;}
.info-card{background:var(--paper); border:1px solid var(--line); border-radius:14px; padding:32px;}
.info-card dt{font-size:11.5px; text-transform:uppercase; letter-spacing:1px; color:var(--muted); margin-top:20px; font-family:var(--body);}
.info-card dt:first-child{margin-top:0;}
.info-card dd{margin:4px 0 0; font-size:16.5px; font-weight:600; font-family:var(--body);}
.info-card dd a{text-decoration:none; color:var(--red);}
.hours-table{width:100%; border-collapse:collapse; margin-top:6px;}
.hours-table td{padding:4px 0; font-size:14.5px; font-weight:500; font-family:var(--body);}
.hours-table td:last-child{text-align:right; color:var(--muted); font-weight:400;}
.map-embed{border-radius:14px; overflow:hidden; border:1px solid var(--line); aspect-ratio:4/3;}
.map-embed iframe{width:100%; height:100%; border:0;}
.qr-block{display:flex; align-items:center; gap:16px; margin-top:24px; padding-top:24px; border-top:1px solid var(--line);}
.qr-block img{width:76px; height:76px;}
.qr-block span{font-size:13.5px; color:var(--muted); font-family:var(--body);}
@media (max-width:820px){ .visit-grid{grid-template-columns:1fr;} }

.location-photos{display:grid; grid-template-columns:1fr 1fr; gap:24px; max-width:var(--maxw); margin:0 auto 56px;}
.location-photos figure{margin:0; border-radius:14px; overflow:hidden; border:1px solid var(--line);}
.location-photos img{width:100%; height:100%; object-fit:cover; aspect-ratio:4/3;}
.location-photos figcaption{padding:12px 16px; font-size:13px; color:var(--muted); background:var(--paper); font-family:var(--body);}
@media (max-width:820px){ .location-photos{grid-template-columns:1fr;} }

/* FAQ */
.faq{max-width:760px; margin:0 auto;}
.faq details{border-bottom:1px solid var(--line); padding:20px 0;}
.faq summary{cursor:pointer; font-weight:600; font-size:16.5px; list-style:none; font-family:var(--body);}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+"; float:right; color:var(--red); font-size:20px;}
.faq details[open] summary::after{content:"\2212";}
.faq p{margin:14px 0 0; color:var(--muted); font-family:var(--body);}

/* Cross-links */
.next-links{display:flex; gap:20px; justify-content:center; flex-wrap:wrap; max-width:var(--maxw); margin:0 auto;}
.next-card{flex:1 1 220px; background:var(--paper); border:1px solid var(--line); border-radius:14px; padding:24px; text-decoration:none;}
.next-card h3{font-size:16px; margin-bottom:6px; color:var(--red);}
.next-card p{font-size:14px; color:var(--muted); margin:0; font-family:var(--body); text-transform:none;}

/* Full menu list (text sections without photos) */
.menu-list{max-width:760px; margin:0 auto 56px;}
.menu-list h3{font-size:13px; letter-spacing:1px; text-transform:uppercase; color:var(--red); margin:0 0 4px;}
.menu-list .note{font-size:13.5px; color:var(--muted); margin:0 0 14px; font-family:var(--body); text-transform:none;}
.menu-list ul{list-style:none; margin:0 0 40px; padding:0;}
.menu-list li{display:flex; justify-content:space-between; align-items:flex-start; gap:20px; padding:12px 0; border-bottom:1px solid var(--line); font-size:15.5px;}
.menu-list li span.name{font-weight:600;}
.menu-list li span.desc{display:block; font-size:13px; color:var(--muted); font-weight:400; margin-top:3px; font-family:var(--body);}
.menu-list li span.price{color:var(--red); font-family:var(--display); font-size:15px; white-space:nowrap;}

/* Story photos (About page) */
.story-photos{display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:40px;}
.story-photos figure{margin:0;}
.story-photos img{width:100%; height:auto; max-height:340px; object-fit:cover; border-radius:14px; border:1px solid var(--line);}
.story-photos figcaption{margin-top:10px; font-size:13px; color:var(--muted); font-family:var(--body); text-align:center;}
.story-photos .photo-placeholder{aspect-ratio:4/3; border-radius:14px; border:1px dashed var(--line); background:#F1ECE2; color:var(--muted); display:flex; align-items:center; justify-content:center; text-align:center; font-size:13px; padding:20px; font-family:var(--body);}
@media (max-width:640px){ .story-photos{grid-template-columns:1fr;} }
.story-photo{margin:36px auto; max-width:460px;}
.story-photo img{width:100%; height:auto; max-height:340px; object-fit:cover; border-radius:14px; border:1px solid var(--line);}
.story-photo figcaption{margin-top:10px; font-size:13px; color:var(--muted); font-family:var(--body); text-align:center;}

/* ============ SCROLL REVEAL / MOTION ============ */
/* Gated behind .js (set by an inline head script) so the page renders fully
   visible with no motion if JavaScript is off. This is progressive enhancement. */
.js .reveal,.js .reveal-left,.js .reveal-right,.js .reveal-scale{
  opacity:0; transition:opacity .8s cubic-bezier(.16,.8,.28,1), transform .8s cubic-bezier(.16,.8,.28,1);
  transition-delay:var(--reveal-delay,0ms);
}
.js .reveal{transform:translateY(32px);}
.js .reveal-left{transform:translateX(-36px);}
.js .reveal-right{transform:translateX(36px);}
.js .reveal-scale{transform:scale(.94);}
.js .reveal.is-visible,.js .reveal-left.is-visible,.js .reveal-right.is-visible,.js .reveal-scale.is-visible{
  opacity:1; transform:none;
}

/* Sticky header gains weight once the page has scrolled */
header.site-header{transition:background-color .3s ease, box-shadow .3s ease;}
header.site-header.is-scrolled{
  box-shadow:0 14px 30px -22px rgba(26,20,20,.45);
  background:rgba(251,247,241,.98);
}

/* Homepage hero: plays on load, not on scroll, since it's above the fold */
@keyframes heroUp{from{opacity:0; transform:translateY(26px);} to{opacity:1; transform:translateY(0);}}
.hero-inner .eyebrow{animation:heroUp .8s ease both; animation-delay:.05s;}
.hero-inner h1{animation:heroUp .9s ease both; animation-delay:.16s;}
.hero-inner p.lead{animation:heroUp .9s ease both; animation-delay:.3s;}
.hero-inner .cta-label{animation:heroUp .9s ease .38s both, pulseLabel 1.6s ease-in-out 1.3s infinite;}
@keyframes pulseLabel{0%,100%{transform:scale(1);} 50%{transform:scale(1.18);}}
.hero-inner .cta-row{animation:heroUp .9s ease both; animation-delay:.44s;}
.scroll-cue{animation:heroUp 1s ease both; animation-delay:.6s;}

/* Page hero (subpages) gets the same gentle entrance, staggered by child order */
.page-hero > *:nth-child(1){animation:heroUp .8s ease both; animation-delay:.05s;}
.page-hero > *:nth-child(2){animation:heroUp .8s ease both; animation-delay:.16s;}
.page-hero > *:nth-child(3){animation:heroUp .8s ease both; animation-delay:.3s;}

.story .stat b{font-variant-numeric:tabular-nums;}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .reveal,.reveal-left,.reveal-right,.reveal-scale{opacity:1 !important; transform:none !important; transition:none !important;}
  .hero-inner *,.scroll-cue,.page-hero > *{animation:none !important; opacity:1 !important; transform:none !important;}
  .scroll-cue .line{animation:none !important;}
}

footer{background:var(--ink); color:#D8CFC5; padding:64px 32px 32px;}
footer .wrap{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:48px;}
footer h4{color:#fff; font-family:var(--body); font-size:12.5px; text-transform:uppercase; letter-spacing:1px; margin-bottom:18px; font-weight:700;}
footer ul{list-style:none; margin:0; padding:0;}
footer li{margin-bottom:10px;}
footer a{text-decoration:none; color:#D8CFC5; font-size:14.5px; font-family:var(--body);}
footer a:hover{color:#fff;}
.footer-bottom{max-width:var(--maxw); margin:48px auto 0; padding-top:24px; border-top:1px solid #33292A; font-size:13px; color:#9C8F84; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; font-family:var(--body);}
.footer-credit{display:inline-flex; align-items:center; gap:10px; font-size:13px;}
.footer-credit a{display:inline-flex; align-items:center;}
.footer-credit img{height:38px; width:auto;}
@media (max-width:820px){ footer .wrap{grid-template-columns:1fr;} }
