/* ==========================================================================
   Sabor Peruano — shared stylesheet
   Norwalk-only site. Brand tokens normalized to the primary (homepage)
   design system; page-specific sections are scoped by body class below.
   ========================================================================== */

:root{
  --char:#15110D;        /* near-black brand ground */
  --oxblood:#7A2A1A;
  --ember:#B8451E;
  --red:#A62317;         /* primary CTA */
  --red-dark:#7E1A10;
  --gold:#C08A34;
  --chicha:#4A2545;
  --parchment:#EFE6D3;
  --ivory:#F6F1E6;
  --cream:#FAF6EC;       /* page ground */
  --ink:#201B14;
  --line:rgba(21,17,13,0.14);
  --radius:2px;
}

*{box-sizing:border-box;}
[hidden]{display:none !important;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
}
body{margin:0; background:var(--cream); color:var(--ink); font-family:'Work Sans', sans-serif; -webkit-font-smoothing:antialiased;}
a{color:inherit;}
img{max-width:100%;}
h1,h2,h3{font-family:'Anton', sans-serif; font-weight:400; letter-spacing:0.01em; margin:0; text-transform:uppercase;}
.eyebrow{font-family:'Work Sans',sans-serif; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; font-size:0.72rem;}
:focus-visible{outline:3px solid var(--gold); outline-offset:3px;}
.skip-link{position:absolute; left:-999px; top:0; background:var(--gold); color:var(--char); padding:10px 16px; z-index:100;}
.skip-link:focus{left:12px; top:12px;}

/* --- pending-content badges ------------------------------------------- */
.content-required, .verify{font-size:0.78rem; letter-spacing:0.03em; text-transform:uppercase; color:var(--ember); font-weight:700; border:1px dashed var(--ember); padding:4px 10px; display:inline-block; font-family:'Work Sans',sans-serif;}

/* --- header / navigation ---------------------------------------------- */
header{position:sticky; top:0; z-index:50; background:var(--char); color:var(--ivory); border-bottom:1px solid rgba(246,241,230,0.1);}
.nav-inner{max-width:1280px; margin:0 auto; padding:16px 32px; display:flex; align-items:center; justify-content:space-between; gap:20px;}
.logo-slot{display:flex; align-items:center; text-decoration:none;}
.logo-slot img{height:32px; width:auto; display:block;}
header nav ul{list-style:none; display:flex; gap:20px; margin:0; padding:0;}
header nav a{text-decoration:none; font-size:0.78rem; letter-spacing:0.04em; text-transform:uppercase; font-weight:600; opacity:0.85;}
header nav a:hover{opacity:1; color:var(--gold);}
.nav-cta{display:flex; gap:10px;}
.menu-toggle{display:none; background:none; border:none; color:var(--ivory); font-size:1.6rem; line-height:1; cursor:pointer;}

/* --- buttons ----------------------------------------------------------- */
.btn{display:inline-flex; align-items:center; justify-content:center; padding:13px 22px; font-family:'Work Sans',sans-serif; font-weight:700; font-size:0.75rem; letter-spacing:0.09em; text-transform:uppercase; text-decoration:none; border-radius:var(--radius); border:1.5px solid transparent; cursor:pointer;}
.btn-red{background:var(--red); color:var(--ivory);}
.btn-red:hover{background:var(--red-dark);}
/* Primary CTA: one colour site-wide. .btn-solid is retained as an alias of
   .btn-red so existing markup keeps working. --ember stays a decorative
   accent token (gradients, badges, inline links) and is unchanged. */
.btn-solid{background:var(--red); color:var(--ivory);}
.btn-solid:hover{background:var(--red-dark);}
.btn-outline{border-color:rgba(246,241,230,0.5); color:var(--ivory);}
.btn-outline:hover{background:var(--ivory); color:var(--char);}
.btn-dark{border-color:var(--char); color:var(--char);}
.btn-dark:hover{background:var(--char); color:var(--ivory);}

/* --- image slots ------------------------------------------------------- */
.img-slot{position:relative; overflow:hidden; display:flex; align-items:center; justify-content:center;
  background:repeating-linear-gradient(45deg, #d8d4c9 0 14px, #cfcabd 14px 28px); border:1px dashed #8a8577;}
.img-slot .slot-label{font-size:0.66rem; letter-spacing:0.06em; text-transform:uppercase; color:#4a463c; background:#F6F1E6; padding:8px 14px; font-weight:700; border:1px solid #8a8577; text-align:center;}
.img-slot img.slot-fill{width:100%; height:100%; object-fit:cover; display:block;}
.ratio-16-9{aspect-ratio:16/9;}
.ratio-4-5{aspect-ratio:4/5;}

/* --- breadcrumb -------------------------------------------------------- */
.breadcrumb{max-width:1240px; margin:0 auto; padding:14px 32px 0; font-size:0.78rem; opacity:0.6;}

/* --- footer ------------------------------------------------------------ */
.foot-wrap{background:var(--char); color:rgba(246,241,230,0.75); padding:56px 32px 90px;}
.foot-logo{max-width:1240px; margin:0 auto 36px;}
.foot-logo img{height:32px; width:auto;}
.foot-grid{max-width:1240px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:40px;}
.foot-col h4{font-family:'Work Sans',sans-serif; text-transform:uppercase; font-size:0.72rem; letter-spacing:0.1em; color:var(--gold); margin:0 0 16px; font-weight:700;}
.foot-col address{font-style:normal; font-size:0.86rem; line-height:1.6; margin-bottom:10px; opacity:0.85;}
.foot-links{display:flex; flex-direction:column; gap:7px; font-size:0.84rem;}
.foot-links a, .foot-links button{text-decoration:none; color:inherit; background:none; border:none; padding:0; font:inherit; text-align:left; cursor:pointer; opacity:0.85;}
.foot-links a:hover, .foot-links button:hover{opacity:1; color:var(--gold);}
.foot-bottom2{max-width:1240px; margin:40px auto 0; padding-top:20px; border-top:1px solid rgba(246,241,230,0.12); font-size:0.74rem; opacity:0.6;}
@media (max-width:800px){ .foot-grid{grid-template-columns:1fr;} }

/* --- sticky mobile action bar ------------------------------------------ */
.sticky-mobile{display:none;}

/* --- mobile navigation drawer ------------------------------------------ */
@media (max-width: 980px){
  header{position:relative;}
  .menu-toggle{display:block;}
  header nav{display:none;}
  header.nav-open nav{display:block; position:absolute; top:100%; left:0; right:0; background:var(--char); border-bottom:1px solid rgba(246,241,230,0.12); padding:18px 32px 24px; z-index:55;}
  header.nav-open nav ul{flex-direction:column; gap:16px;}
  header.nav-open nav a{font-size:0.9rem; opacity:1;}
  /* the header is not sticky at this width, so the menu daypart tabs pin to the top */
  body.page-menu .daypart-tabs{top:0;}
}

/* ===== index.html (/) ===== */
body.page-home{margin:0; background:var(--cream); color:var(--ink); font-family:'Work Sans', sans-serif; -webkit-font-smoothing:antialiased;}
body.page-home .hero{position:relative; color:var(--ivory); min-height:82vh; display:flex; align-items:flex-end;}
body.page-home .hero .img-slot{position:absolute; inset:0; aspect-ratio:auto; height:100%;}
body.page-home .hero::after{content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(21,17,13,0.92) 8%, rgba(21,17,13,0.35) 55%, rgba(21,17,13,0.15) 100%); pointer-events:none;}
body.page-home .hero-inner{position:relative; z-index:2; max-width:1240px; margin:0 auto; padding:0 32px 64px; width:100%;}
body.page-home .hero h1{font-size:clamp(2.6rem, 6.4vw, 5.4rem); line-height:0.96;}
body.page-home .hero p{font-family:'Fraunces',serif; font-size:1.1rem; max-width:56ch; margin:24px 0 32px; color:rgba(246,241,230,0.9); line-height:1.55;}
body.page-home .hero-ctas{display:flex; flex-wrap:wrap; gap:14px;}
body.page-home section{padding:96px 32px;}
body.page-home .section-inner{max-width:1240px; margin:0 auto;}
body.page-home .section-head{max-width:64ch; margin-bottom:44px;}
body.page-home .section-head .eyebrow{color:var(--oxblood); margin-bottom:10px; display:block;}
body.page-home .section-head h2{font-size:clamp(1.8rem, 3.4vw, 2.6rem); line-height:1.08;}
body.page-home .signature{background:var(--ivory);}
body.page-home .dish-trio{display:grid; grid-template-columns:repeat(3,1fr); gap:32px; margin-top:16px;}
body.page-home .dish-trio figure{margin:0;}
body.page-home .dish-trio figcaption{margin-top:14px;}
body.page-home .dish-trio figcaption h3{font-family:'Fraunces',serif; text-transform:none; font-weight:600; font-size:1.15rem;}
body.page-home .dish-trio figcaption p{font-size:0.86rem; color:rgba(32,27,20,0.65); margin:6px 0 0; line-height:1.5;}
body.page-home .signature-cta{text-align:center; margin-top:48px;}
body.page-home .story{background:var(--cream); padding:0;}
body.page-home .story-grid{display:grid; grid-template-columns:0.95fr 1.05fr; align-items:stretch;}
body.page-home .story-art{min-height:520px;}
body.page-home .story-copy{padding:88px 64px; align-self:center;}
body.page-home .story-copy h2{font-size:clamp(1.7rem,2.8vw,2.3rem); margin:12px 0 24px; line-height:1.15;}
body.page-home .story-copy p{font-size:1.02rem; line-height:1.75; margin:0 0 16px; max-width:52ch; color:rgba(32,27,20,0.85);}
body.page-home .story-copy .btn{margin-top:14px;}
body.page-home .locations{background:var(--char); padding:0;}
body.page-home .locations-head{max-width:1240px; margin:0 auto; padding:88px 32px 44px;}
body.page-home .locations-head .eyebrow{color:var(--gold); display:block; margin-bottom:10px;}
body.page-home .locations-head h2{color:var(--ivory); font-size:clamp(1.8rem,3.4vw,2.6rem);}
body.page-home .loc-grid{display:grid; grid-template-columns:1fr 1fr;}
body.page-home .loc-grid-single{grid-template-columns:1fr;}
body.page-home .locations-head p{font-family:'Fraunces',serif; color:rgba(246,241,230,0.85); font-size:1.02rem; line-height:1.7; max-width:62ch; margin:20px 0 0;}
body.page-home .loc-card{position:relative; min-height:460px; display:flex; align-items:flex-end; color:var(--ivory);}
body.page-home .loc-card .img-slot{position:absolute; inset:0; aspect-ratio:auto; height:100%;}
body.page-home .loc-card::after{content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(21,17,13,0.9) 15%, rgba(21,17,13,0.2) 70%);}
body.page-home .loc-card-inner{position:relative; z-index:2; padding:40px;}
body.page-home .loc-card h3{font-size:2rem; margin-bottom:8px;}
body.page-home .loc-card .loc-ctas{display:flex; gap:12px; flex-wrap:wrap;}
body.page-home .pisco{background:var(--oxblood); color:var(--ivory);}
body.page-home .pisco-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;}
body.page-home .pisco .eyebrow{color:var(--gold);}
body.page-home .pisco h2{font-size:clamp(1.8rem,3.4vw,2.6rem); margin:12px 0 20px;}
body.page-home .experiencia{background:var(--char); color:var(--ivory); padding:0;}
body.page-home .exp-copy{max-width:760px; margin:0 auto; padding:96px 32px 48px; text-align:center;}
body.page-home .exp-copy .eyebrow{color:var(--gold); display:block; margin-bottom:12px;}
body.page-home .exp-copy h2{font-size:clamp(1.8rem,3.4vw,2.6rem); line-height:1.08;}
body.page-home .exp-copy p{font-family:'Fraunces',serif; font-size:1.06rem; line-height:1.7; color:rgba(246,241,230,0.88); margin:22px auto 0; max-width:60ch;}
body.page-home .exp-copy .exp-parties{font-family:'Work Sans',sans-serif; font-size:0.74rem; font-weight:700; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold); margin-top:26px;}
body.page-home .exp-copy .btn{margin-top:30px;}
body.page-home .exp-art .img-slot{aspect-ratio:21/9;}
body.page-home .come-hungry{background:var(--ivory);}
body.page-home .come-hungry h2{font-size:clamp(2.2rem,5.2vw,3.6rem); line-height:1; margin-bottom:40px;}
body.page-home .ch-primary{border-top:1px solid var(--line);}
body.page-home .ch-primary a{display:flex; align-items:baseline; justify-content:space-between; gap:20px; padding:26px 0; border-bottom:1px solid var(--line); text-decoration:none; color:var(--ink);}
body.page-home .ch-primary .ch-label{font-family:'Anton',sans-serif; text-transform:uppercase; font-size:clamp(1.7rem,4vw,2.8rem); line-height:1;}
body.page-home .ch-primary .ch-go{font-size:1.8rem; line-height:1; color:var(--red);}
body.page-home .ch-primary a:hover .ch-label, body.page-home .ch-primary a:focus-visible .ch-label{color:var(--red);}
body.page-home .ch-secondary{display:flex; flex-wrap:wrap; gap:10px 28px; margin-top:30px;}
body.page-home .ch-secondary a{font-family:'Work Sans',sans-serif; font-weight:700; font-size:0.78rem; letter-spacing:0.12em; text-transform:uppercase; text-decoration:none; color:rgba(32,27,20,0.7); padding:6px 0;}
body.page-home .ch-secondary a:hover, body.page-home .ch-secondary a:focus-visible{color:var(--red);}
body.page-home .final-cta{background:var(--red); color:var(--ivory); text-align:center;}
body.page-home .final-cta .section-inner{max-width:720px;}
body.page-home .final-cta h2{font-size:clamp(2rem,4.4vw,3rem); margin-bottom:16px;}
body.page-home .final-cta p{font-family:'Fraunces',serif; font-size:1.1rem; color:rgba(246,241,230,0.92); margin-bottom:32px;}
body.page-home .final-ctas{display:flex; gap:14px; justify-content:center; flex-wrap:wrap;}
body.page-home footer{background:var(--char); color:rgba(246,241,230,0.7); padding:48px 32px 90px; text-align:center;}
@media (max-width: 980px){
  body.page-home .story-grid, body.page-home .loc-grid, body.page-home .pisco-grid{grid-template-columns:1fr;}
  body.page-home .story-copy{padding:56px 28px;}
  body.page-home .dish-trio{grid-template-columns:1fr;}
  body.page-home .exp-copy{padding:64px 26px 36px;}
  body.page-home .exp-art .img-slot{aspect-ratio:3/2;}
  body.page-home .sticky-mobile{display:flex; position:fixed; bottom:0; left:0; right:0; z-index:60; background:var(--char); border-top:1px solid rgba(246,241,230,0.15); padding:10px 14px; gap:10px;}
  body.page-home .sticky-mobile a, body.page-home .sticky-mobile button{flex:1; text-align:center;}
  body.page-home{padding-bottom:64px;}
}
@media (max-width: 520px){
  body.page-home section{padding:64px 22px;}
}

/* ===== norwalk.html (/norwalk) ===== */
body.page-norwalk{margin:0; background:var(--cream); color:var(--ink); font-family:'Work Sans', sans-serif; -webkit-font-smoothing:antialiased;}
body.page-norwalk .hero-intro{font-family:'Fraunces',serif; font-size:1.08rem; line-height:1.7; max-width:58ch; margin:20px 0 28px; color:rgba(247,242,231,0.9);}
body.page-norwalk .brand{font-family:'Anton',sans-serif; font-size:1.15rem; letter-spacing:0.06em; text-decoration:none;}
body.page-norwalk .brand span{color:var(--ember);}
body.page-norwalk .breadcrumb a{text-decoration:underline;}
body.page-norwalk .page-hero{background:var(--char); color:var(--cream); padding:40px 28px 60px; position:relative; overflow:hidden;}
body.page-norwalk .page-hero::before{content:""; position:absolute; inset:0; background:radial-gradient(ellipse at 85% 10%, rgba(193,68,14,0.3), transparent 55%); pointer-events:none;}
body.page-norwalk .page-hero-inner{max-width:1200px; margin:0 auto; position:relative;}
body.page-norwalk .page-hero .eyebrow{color:var(--gold); display:block; margin-bottom:14px;}
body.page-norwalk .page-hero h1{font-size:clamp(2.1rem,4.6vw,3.4rem); max-width:16ch;}
body.page-norwalk .page-hero p{font-family:'Fraunces',serif; font-size:1.05rem; color:rgba(247,242,231,0.85); max-width:58ch; margin:18px 0 28px;}
body.page-norwalk .page-hero-ctas{display:flex; gap:14px; flex-wrap:wrap;}
body.page-norwalk .loc-photo-band{line-height:0;}
body.page-norwalk .loc-photo-band img{width:100%; height:auto; max-height:620px; object-fit:cover; display:block;}
body.page-norwalk .info-strip{background:var(--parchment); border-bottom:1px solid var(--line);}
body.page-norwalk .info-grid{max-width:1200px; margin:0 auto; padding:28px; display:grid; grid-template-columns:repeat(auto-fit,minmax(185px,1fr)); gap:24px 28px;}
body.page-norwalk .info-item .eyebrow{color:var(--oxblood); display:block; margin-bottom:6px;}
body.page-norwalk .info-item address, body.page-norwalk .info-item p{font-style:normal; font-size:0.92rem; line-height:1.6; margin:0;}
body.page-norwalk .info-item .info-note{font-size:0.8rem; line-height:1.5; color:rgba(34,28,21,0.6); margin-top:6px;}
body.page-norwalk main{max-width:1200px; margin:0 auto; padding:64px 28px;}
body.page-norwalk .content-grid{display:grid; grid-template-columns:1.2fr 0.8fr; gap:56px;}
body.page-norwalk .content h2{font-size:clamp(1.6rem,3vw,2.1rem); margin-bottom:18px;}
body.page-norwalk .content p{font-size:1rem; line-height:1.75; color:rgba(34,28,21,0.82); margin:0 0 18px;}
body.page-norwalk .content ul{padding-left:20px; line-height:1.8;}
body.page-norwalk aside .map-embed{aspect-ratio:4/3; background:linear-gradient(160deg, var(--oxblood), var(--char)); border-radius:var(--radius); display:flex; align-items:center; justify-content:center; color:var(--gold); font-size:0.8rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; text-align:center; padding:20px;}
body.page-norwalk aside .reserve-box{margin-top:24px; padding:26px; background:var(--char); color:var(--cream); border-radius:var(--radius);}
body.page-norwalk aside .reserve-box h3{font-size:1.2rem; margin-bottom:14px;}
body.page-norwalk aside .reserve-box a{display:block; text-align:center; margin-bottom:10px;}
body.page-norwalk .highlights{background:var(--parchment); padding:64px 28px;}
body.page-norwalk .highlights-inner{max-width:1200px; margin:0 auto;}
body.page-norwalk .highlights h2{font-size:clamp(1.6rem,3vw,2.1rem); margin-bottom:30px;}
body.page-norwalk .hl-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line);}
body.page-norwalk .hl-card{background:var(--cream); padding:26px;}
body.page-norwalk .hl-card h3{font-size:1.05rem; margin:0 0 8px; font-family:'Fraunces',serif; font-style:italic; text-transform:none; font-weight:600;}
body.page-norwalk .hl-card p{font-size:0.85rem; line-height:1.5; color:rgba(34,28,21,0.7); margin:0;}
body.page-norwalk .hl-grid-3{grid-template-columns:repeat(3,1fr);}
body.page-norwalk .hl-card a{display:inline-block; margin-top:16px; font-family:'Work Sans',sans-serif; font-weight:700; font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase; text-decoration:none; color:var(--oxblood); border-bottom:1px solid rgba(138,42,22,0.35); padding-bottom:2px;}
body.page-norwalk .hl-card a:hover{color:var(--ember); border-bottom-color:var(--ember);}
body.page-norwalk footer{background:var(--char); color:rgba(247,242,231,0.6); padding:34px 28px; text-align:center; font-size:0.8rem;}
@media (max-width: 880px){
  body.page-norwalk .nav-cta .btn-outline{display:none;}
  body.page-norwalk .info-grid{grid-template-columns:1fr 1fr;}
  body.page-norwalk .content-grid{grid-template-columns:1fr;}
  body.page-norwalk .hl-grid{grid-template-columns:1fr 1fr;}
  body.page-norwalk .hl-grid-3{grid-template-columns:1fr;}
}

/* ===== menu.html (/menu) ===== */
body.page-menu{margin:0; background:var(--cream); color:var(--ink); font-family:'Work Sans', sans-serif; -webkit-font-smoothing:antialiased;}
body.page-menu .weave{height:14px; width:100%;
    background-image:
      repeating-linear-gradient(135deg, var(--gold) 0 6px, transparent 6px 12px),
      repeating-linear-gradient(45deg, var(--oxblood) 0 6px, transparent 6px 12px);
    background-size:24px 24px; background-position:0 0, 12px 0; opacity:0.9;}
body.page-menu .brand{font-family:'Anton',sans-serif; font-size:1.15rem; letter-spacing:0.06em; text-decoration:none;}
body.page-menu .brand span{color:var(--ember);}
body.page-menu .btn:hover{transform:translateY(-1px);}
body.page-menu .page-hero{background:var(--char); color:var(--cream); padding:64px 28px 40px; position:relative; overflow:hidden;}
body.page-menu .page-hero::before{content:""; position:absolute; inset:0; background:radial-gradient(ellipse at 85% 10%, rgba(193,68,14,0.3), transparent 55%); pointer-events:none;}
body.page-menu .page-hero-inner{max-width:1200px; margin:0 auto; position:relative;}
body.page-menu .page-hero .eyebrow{color:var(--gold); display:block; margin-bottom:14px;}
body.page-menu .page-hero h1{font-size:clamp(2.2rem,5vw,3.6rem);}
body.page-menu .page-hero p{font-family:'Fraunces',serif; font-size:1.05rem; color:rgba(247,242,231,0.8); max-width:56ch; margin-top:16px;}
body.page-menu .daypart-tabs{position:sticky; top:65px; z-index:40; background:var(--char);}
body.page-menu .daypart-tabs-inner{max-width:1200px; margin:0 auto; padding:0 28px; display:flex; gap:2px; overflow-x:auto;}
body.page-menu .tab-link{display:inline-block; text-decoration:none;}
body.page-menu .tab-btn, body.page-menu .tab-link{flex:0 0 auto; background:none; border:none; cursor:pointer; padding:16px 20px;
    font-family:'Work Sans',sans-serif; font-weight:700; font-size:0.82rem; letter-spacing:0.06em;
    text-transform:uppercase; color:rgba(247,242,231,0.55); border-bottom:3px solid transparent; white-space:nowrap;}
body.page-menu .tab-btn:hover, body.page-menu .tab-link:hover{color:rgba(247,242,231,0.85);}
body.page-menu .tab-btn.active{color:var(--gold); border-bottom-color:var(--gold);}
body.page-menu .filters{position:sticky; top:112px; z-index:39; background:var(--parchment); border-bottom:1px solid var(--line);}
body.page-menu .filters-inner{max-width:1200px; margin:0 auto; padding:14px 28px; display:flex; gap:10px; overflow-x:auto;}
body.page-menu .chip{flex:0 0 auto; padding:8px 16px; border-radius:20px; border:1.5px solid var(--char); font-size:0.76rem; font-weight:600; text-transform:uppercase; letter-spacing:0.04em; text-decoration:none; color:var(--char); white-space:nowrap;}
body.page-menu main{max-width:1200px; margin:0 auto; padding:48px 28px 40px;}
body.page-menu .daypart-panel{display:none;}
body.page-menu .daypart-panel.active{display:block;}
body.page-menu .daypart-intro{max-width:60ch; margin-bottom:44px;}
body.page-menu .daypart-intro .eyebrow{color:var(--oxblood); display:block; margin-bottom:8px;}
body.page-menu .daypart-intro h2{font-size:clamp(1.7rem,3.4vw,2.4rem);}
body.page-menu .category{margin-bottom:54px; scroll-margin-top:190px;}
body.page-menu .category-head{display:flex; align-items:baseline; gap:18px; margin-bottom:22px; border-bottom:2px solid var(--char); padding-bottom:12px;}
body.page-menu .category-head h3{font-size:clamp(1.3rem,2.4vw,1.7rem); font-family:'Anton',sans-serif; text-transform:uppercase;}
body.page-menu .dish-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px 40px;}
body.page-menu .dish{display:flex; justify-content:space-between; gap:18px; padding-bottom:18px; border-bottom:1px dashed var(--line);}
body.page-menu .dish-name{font-family:'Fraunces',serif; font-weight:600; font-size:1.08rem; margin-bottom:5px;}
body.page-menu .dish-desc{font-size:0.86rem; line-height:1.5; color:rgba(34,28,21,0.68); max-width:42ch;}
body.page-menu .dish-price{font-family:'Fraunces',serif; font-style:italic; font-size:1rem; color:var(--oxblood); white-space:nowrap; padding-top:2px;}

/* multi-price dishes, add-ons and section notes */
body.page-menu .dish-variants{display:flex; flex-direction:column; gap:5px; margin-top:10px;}
body.page-menu .dish-variants span{display:flex; align-items:baseline; gap:8px; max-width:26ch; font-size:0.86rem; color:rgba(34,28,21,0.8);}
body.page-menu .dish-variants i{font-style:normal; white-space:nowrap;}
body.page-menu .dish-variants span::before{content:""; order:1; flex:1 1 auto; min-width:16px; border-bottom:1px dotted rgba(34,28,21,0.35); transform:translateY(-4px);}
body.page-menu .dish-variants em{order:2; font-family:'Fraunces',serif; font-style:italic; color:var(--oxblood); white-space:nowrap;}
body.page-menu .dish-addon{margin-top:10px; font-size:0.82rem; line-height:1.5; color:rgba(34,28,21,0.72);}
body.page-menu .dish-addon strong{font-family:'Work Sans',sans-serif; font-weight:700; font-size:0.71rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--oxblood); margin-right:7px;}
body.page-menu .category-note{font-family:'Fraunces',serif; font-style:italic; font-size:0.88rem; color:rgba(34,28,21,0.65); margin:18px 0 0;}

/* Experiencia feature inside the dinner menu */

/* Menú del Día: compact weekday lunch feature */
body.page-menu .menu-del-dia{background:var(--parchment); border-left:3px solid var(--oxblood); padding:26px 30px; margin:0 0 54px;}
body.page-menu .menu-del-dia .mdd-head{display:flex; align-items:baseline; justify-content:space-between; gap:12px 24px; flex-wrap:wrap; margin-bottom:12px;}
body.page-menu .menu-del-dia h3{font-family:'Anton',sans-serif; text-transform:uppercase; font-size:clamp(1.15rem,2.2vw,1.5rem); line-height:1;}
body.page-menu .menu-del-dia .mdd-meta{font-family:'Work Sans',sans-serif; font-size:0.74rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--oxblood); margin:0;}
body.page-menu .menu-del-dia .mdd-copy{font-family:'Fraunces',serif; font-size:1rem; line-height:1.55; color:rgba(34,28,21,0.85); margin:0;}
body.page-menu .menu-del-dia .mdd-note{font-family:'Fraunces',serif; font-style:italic; font-size:0.88rem; color:rgba(34,28,21,0.62); margin:8px 0 0;}

body.page-menu .experiencia-menu{background:var(--char); color:var(--ivory); padding:clamp(32px,5vw,56px); margin:0 0 54px; scroll-margin-top:190px;}
body.page-menu .experiencia-menu .exp-title{font-family:'Anton',sans-serif; text-transform:uppercase; color:var(--ivory); font-size:clamp(1.4rem,2.8vw,2rem); line-height:1.1; margin:0 0 16px;}
body.page-menu .experiencia-menu .exp-lead{font-family:'Fraunces',serif; font-size:1.02rem; line-height:1.7; color:rgba(246,241,230,0.85); max-width:62ch; margin:0 0 28px;}
body.page-menu .experiencia-menu .exp-courses{list-style:none; counter-reset:course; margin:0 0 28px; padding:0; display:grid; gap:11px;}
body.page-menu .experiencia-menu .exp-courses li{counter-increment:course; position:relative; padding-left:36px; font-family:'Fraunces',serif; font-size:1rem; line-height:1.4; color:var(--ivory);}
body.page-menu .experiencia-menu .exp-courses li::before{content:counter(course, decimal-leading-zero); position:absolute; left:0; top:3px; font-family:'Work Sans',sans-serif; font-size:0.72rem; font-weight:700; letter-spacing:0.08em; color:var(--gold);}
body.page-menu .experiencia-menu .exp-parties{font-family:'Work Sans',sans-serif; font-size:0.74rem; font-weight:700; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold); margin:0;}

body.page-menu .allergy-note{max-width:900px; margin:20px auto 0; padding:18px 22px; background:var(--parchment); border-left:3px solid var(--oxblood); font-size:0.8rem; line-height:1.6; color:rgba(34,28,21,0.75);}
body.page-menu .allergy-note p{margin:0 0 9px;}
body.page-menu .allergy-note p:last-child{margin-bottom:0;}
body.page-menu .advisory-disclosure{font-weight:700; color:var(--oxblood);}
body.page-menu .order-band{background:var(--oxblood); color:var(--cream); text-align:center; padding:64px 28px;}
body.page-menu .order-band h2{font-size:clamp(1.8rem,4vw,2.6rem); margin-bottom:14px;}
body.page-menu .order-band p{font-family:'Fraunces',serif; font-size:1.05rem; color:rgba(247,242,231,0.85); margin-bottom:28px;}
body.page-menu .order-ctas{display:flex; gap:14px; justify-content:center; flex-wrap:wrap;}
body.page-menu footer{background:var(--char); color:rgba(247,242,231,0.6); padding:34px 28px; text-align:center; font-size:0.8rem;}
@media (max-width: 880px){
  body.page-menu .nav-cta .btn-outline{display:none;}
  body.page-menu .dish-grid{grid-template-columns:1fr;}
  body.page-menu .filters{top:104px;}
  body.page-menu .dish-variants span{max-width:22ch;}
  body.page-menu .menu-del-dia{padding:22px 22px; margin-bottom:44px;}
}
body.page-menu .btn{transition:transform 0.15s ease, background 0.15s ease;}

/* ===== our-story.html (/our-story) ===== */
/* TEMPORARY — real family photographs pending. This block hides the six photo slots and
   collapses the two column story blocks so the copy flows without empty boxes. The slot
   markup is untouched: delete this block to reactivate all six slots exactly as built. */
body.page-our-story .figure{display:none;}
body.page-our-story .split, body.page-our-story .split.reverse{grid-template-columns:1fr;}

body.page-our-story{margin:0; background:var(--cream); color:var(--ink); font-family:'Work Sans', sans-serif;}
body.page-our-story h1, body.page-our-story h2{font-family:'Anton', sans-serif; font-weight:400; margin:0; text-transform:uppercase;}
body.page-our-story .page-hero{max-width:900px; margin:0 auto; padding:64px 32px 0; text-align:center;}
body.page-our-story .page-hero .eyebrow{color:var(--oxblood); display:block; margin-bottom:14px;}
body.page-our-story .page-hero h1{font-size:clamp(2rem,4.4vw,3.2rem); line-height:1.1;}

/* editorial story flow */
body.page-our-story .story{max-width:1120px; margin:0 auto; padding:0 32px;}
body.page-our-story .chapter{padding:76px 0 0;}
body.page-our-story .chapter.tight{padding-top:44px;}
body.page-our-story .chapter.finale{padding-bottom:8px;}

/* chapter head, with a restrained journey marker on the eyebrow */
body.page-our-story .chapter-head{margin-bottom:26px;}
body.page-our-story .chapter-head .eyebrow{display:block; color:var(--oxblood); margin-bottom:14px; position:relative; padding-left:40px;}
body.page-our-story .chapter-head .eyebrow::before{content:""; position:absolute; left:0; top:50%; width:28px; height:1px; background:var(--gold);}
body.page-our-story .chapter-head h2{font-size:clamp(1.6rem,3vw,2.4rem); line-height:1.14; max-width:26ch;}

/* narrative copy */
body.page-our-story .prose p{font-family:'Fraunces',serif; font-size:1.06rem; line-height:1.85; color:rgba(32,27,20,0.88); margin:0 0 20px; max-width:64ch;}
body.page-our-story .prose p:last-child{margin-bottom:0;}
body.page-our-story .prose .lead{font-size:1.22rem; line-height:1.7; color:var(--ink);}
body.page-our-story .prose .turn{font-size:1.18rem; font-style:italic; line-height:1.6; color:var(--oxblood);}

/* emphasis lines supplied in the brief */
body.page-our-story .statement{font-family:'Anton',sans-serif; text-transform:uppercase; font-size:clamp(1.45rem,3vw,2.2rem); line-height:1.22; color:var(--oxblood); max-width:30ch; margin:48px 0; padding-top:26px; border-top:2px solid var(--gold);}
body.page-our-story .triad{margin:38px 0 0; padding-top:24px; border-top:1px solid var(--gold); font-family:'Anton',sans-serif; text-transform:uppercase; font-size:clamp(1.1rem,2vw,1.45rem); line-height:1.3; color:var(--char);}
body.page-our-story .triad span{display:block;}
body.page-our-story .triad span + span{padding-top:4px;}
body.page-our-story .triad span:nth-child(2){color:var(--oxblood);}

/* photography placeholders: swap the img-slot for a real <img> later, no layout change */
body.page-our-story .figure{margin:0;}
body.page-our-story .figure.wide{margin:44px 0 48px;}

/* two column story blocks */
body.page-our-story .split{display:grid; grid-template-columns:1.12fr 0.88fr; gap:clamp(32px,5vw,72px); align-items:start;}
body.page-our-story .split.reverse{grid-template-columns:0.88fr 1.12fr;}

/* full width statement bands */
body.page-our-story .band{background:var(--char); color:var(--ivory); margin:72px 0 0; padding:clamp(56px,9vw,100px) 32px; text-align:center;}
body.page-our-story .band .band-line{font-family:'Anton',sans-serif; text-transform:uppercase; font-size:clamp(1.5rem,3.6vw,2.6rem); line-height:1.25; margin:0 auto; max-width:26ch;}
body.page-our-story .band .amount{color:var(--gold);}
body.page-our-story .band.welcome{background:var(--oxblood); margin-top:76px;}
body.page-our-story .band.welcome .band-line{font-family:'Fraunces',serif; font-style:italic; text-transform:none; font-size:clamp(1.55rem,3.8vw,2.5rem); line-height:1.35;}

body.page-our-story footer{background:var(--char); color:rgba(246,241,230,0.6); padding:34px 32px; text-align:center; font-size:0.8rem;}

@media (max-width:800px){
  body.page-our-story .page-hero{padding:48px 24px 0;}
  body.page-our-story .story{padding:0 24px;}
  body.page-our-story .chapter{padding-top:54px;}
  body.page-our-story .chapter.tight{padding-top:36px;}
  body.page-our-story .split, body.page-our-story .split.reverse{grid-template-columns:1fr; gap:30px;}
  body.page-our-story .chapter-head h2{max-width:none;}
  body.page-our-story .statement{margin:34px 0; padding-top:20px; max-width:none;}
  body.page-our-story .figure.wide{margin:32px 0 36px;}
  body.page-our-story .band{margin-top:56px; padding-left:24px; padding-right:24px;}
  body.page-our-story .band.welcome{margin-top:60px;}
}

/* ===== brunch.html (/brunch) ===== */
body.page-brunch{--char:#15110D; --oxblood:#7A2A1A; --red:#A62317; --gold:#C08A34; --ivory:#FFFDF8; --cream:#FFFBF2; --ink:#201B14; --line:rgba(21,17,13,0.12);}
body.page-brunch{margin:0; background:var(--cream); color:var(--ink); font-family:'Work Sans', sans-serif;}
body.page-brunch h1, body.page-brunch h2{font-family:'Anton', sans-serif; font-weight:400; margin:0; text-transform:uppercase;}
body.page-brunch .page-hero{max-width:1240px; margin:0 auto; padding:56px 32px 24px; background:linear-gradient(180deg, #FFF6E4, transparent);}
body.page-brunch .page-hero .eyebrow{color:var(--oxblood); display:block; margin-bottom:12px;}
body.page-brunch .page-hero h1{font-size:clamp(2rem,4.4vw,3.2rem); max-width:20ch;}
body.page-brunch .page-hero p{font-family:'Fraunces',serif; font-size:1.08rem; max-width:60ch; margin-top:18px; color:rgba(32,27,20,0.8); line-height:1.6;}
body.page-brunch .feature-row{display:grid; grid-template-columns:1fr 1fr; gap:28px; max-width:1240px; margin:0 auto 40px; padding:0 32px;}
body.page-brunch .feature-card{background:#fff; border:1px solid var(--line);}
body.page-brunch .feature-img{aspect-ratio:16/9; background:repeating-linear-gradient(45deg,#f0e3c8 0 14px,#f7ecd6 14px 28px); border-bottom:1px dashed #d8c9a0; display:flex; align-items:center; justify-content:center;}
body.page-brunch .feature-img span{font-size:0.65rem; letter-spacing:0.06em; text-transform:uppercase; color:#8a6f3d; font-weight:700;}
body.page-brunch .feature-img img{width:100%; height:100%; object-fit:cover; display:block;}
body.page-brunch .feature-body{padding:20px 22px;}
body.page-brunch .feature-body h3{font-family:'Fraunces',serif; text-transform:none; font-weight:600; font-size:1.2rem;}
body.page-brunch main{max-width:1240px; margin:0 auto; padding:20px 32px 100px;}
body.page-brunch .category{margin-bottom:54px;}
body.page-brunch .category-head{border-bottom:2px solid var(--ink); padding-bottom:12px; margin-bottom:22px;}
body.page-brunch .category-head h2{font-size:clamp(1.3rem,2.4vw,1.7rem);}
body.page-brunch .dish-grid{display:grid; grid-template-columns:1fr 1fr; gap:22px 40px;}
body.page-brunch .dish{display:flex; justify-content:space-between; gap:16px; padding-bottom:16px; border-bottom:1px dashed var(--line);}
body.page-brunch .dish-name{font-family:'Fraunces',serif; font-weight:600; font-size:1.08rem;}
body.page-brunch .dish-desc{font-size:0.85rem; color:rgba(32,27,20,0.62); margin-top:4px; max-width:40ch;}
body.page-brunch .dish-price{font-family:'Fraunces',serif; font-style:italic; font-size:1rem; color:var(--oxblood); white-space:nowrap;}
body.page-brunch .allergy-note{max-width:900px; margin:20px 0 0; padding:16px 20px; background:var(--ivory); border-left:3px solid var(--oxblood); font-size:0.78rem; line-height:1.6; color:rgba(32,27,20,0.75);}
body.page-brunch footer{background:var(--char); color:rgba(246,241,230,0.6); padding:34px 32px; text-align:center; font-size:0.8rem;}
@media (max-width:800px){
  body.page-brunch .dish-grid, body.page-brunch .feature-row{grid-template-columns:1fr;}
}

/* ===== happy-hour.html (/happy-hour) ===== */
body.page-happy-hour{--char:#120D0A; --oxblood:#8A2A16; --red:#A62317; --gold:#C08A34; --ivory:#F6F1E6; --cream:#F6F1E6; --ink:#221C15; --line:rgba(246,241,230,0.14);}
body.page-happy-hour{margin:0; background:var(--char); color:var(--ivory); font-family:'Work Sans', sans-serif;}
body.page-happy-hour h1, body.page-happy-hour h2{font-family:'Anton', sans-serif; font-weight:400; margin:0; text-transform:uppercase;}
body.page-happy-hour .page-hero{max-width:1240px; margin:0 auto; padding:64px 32px 30px; position:relative;}
body.page-happy-hour .page-hero::before{content:""; position:absolute; inset:0; background:radial-gradient(ellipse at 80% 20%, rgba(193,68,14,0.18), transparent 60%); pointer-events:none;}
body.page-happy-hour .page-hero .eyebrow{color:var(--gold); display:block; margin-bottom:12px; position:relative;}
body.page-happy-hour .page-hero h1{font-size:clamp(2.2rem,4.6vw,3.4rem); position:relative;}
body.page-happy-hour .page-hero p{font-family:'Fraunces',serif; font-size:1.1rem; max-width:60ch; margin-top:18px; color:rgba(246,241,230,0.82); line-height:1.6; position:relative;}
body.page-happy-hour .photo-band{line-height:0;}
body.page-happy-hour .photo-band img{width:100%; height:auto; max-height:640px; object-fit:cover; display:block;}
body.page-happy-hour main{max-width:1240px; margin:0 auto; padding:20px 32px 100px;}
body.page-happy-hour .hh-hours{display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 32px; padding:22px 0 26px; margin-bottom:34px; border-bottom:1px solid var(--line);}
body.page-happy-hour .hh-when{font-family:'Work Sans',sans-serif; font-weight:700; font-size:0.82rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold); margin:0;}
body.page-happy-hour .hh-when span{color:var(--ivory);}
body.page-happy-hour .hh-where{flex:1 1 100%; font-family:'Fraunces',serif; font-size:0.9rem; color:rgba(246,241,230,0.6); margin:2px 0 0;}
body.page-happy-hour .category{margin-bottom:54px;}
body.page-happy-hour .category-sub{font-family:'Fraunces',serif; font-style:italic; font-size:0.95rem; color:rgba(246,241,230,0.65); margin:-8px 0 22px;}
body.page-happy-hour .dish-tag{display:inline-block; font-family:'Work Sans',sans-serif; font-weight:700; font-size:0.62rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold); border:1px solid rgba(192,138,52,0.5); border-radius:2px; padding:2px 7px; margin-left:8px; vertical-align:2px;}
body.page-happy-hour .category-head{border-bottom:2px solid rgba(246,241,230,0.3); padding-bottom:12px; margin-bottom:22px;}
body.page-happy-hour .category-head h2{font-size:clamp(1.3rem,2.4vw,1.7rem);}
body.page-happy-hour .dish-grid{display:grid; grid-template-columns:1fr 1fr; gap:22px 40px;}
body.page-happy-hour .dish{display:flex; justify-content:space-between; gap:16px; padding-bottom:16px; border-bottom:1px dashed var(--line);}
body.page-happy-hour .dish-name{font-family:'Fraunces',serif; font-weight:600; font-size:1.08rem;}
body.page-happy-hour .dish-desc{font-size:0.85rem; color:rgba(246,241,230,0.6); margin-top:4px; max-width:40ch;}
body.page-happy-hour .dish-price{font-family:'Fraunces',serif; font-style:italic; font-size:1rem; color:var(--gold); white-space:nowrap;}
body.page-happy-hour .allergy-note{max-width:900px; margin:20px 0 0; padding:16px 20px; background:rgba(246,241,230,0.06); border-left:3px solid var(--gold); font-size:0.78rem; line-height:1.6; color:rgba(246,241,230,0.7);}
body.page-happy-hour .verify{color:var(--gold); font-weight:700;}
body.page-happy-hour footer{background:#0d0906; color:rgba(246,241,230,0.5); padding:34px 32px; text-align:center; font-size:0.8rem;}
@media (max-width:800px){
  body.page-happy-hour .dish-grid{grid-template-columns:1fr;}
  body.page-happy-hour .hh-hours{gap:6px 0; padding:18px 0 22px; margin-bottom:28px;}
  body.page-happy-hour .hh-when{flex:1 1 100%;}
  body.page-happy-hour .dish-tag{margin-left:0; margin-top:6px;}
  body.page-happy-hour .dish-name{display:flex; flex-direction:column; align-items:flex-start;}
}

/* ===== drinks.html (/drinks) ===== */
body.page-drinks{margin:0; background:var(--cream); color:var(--ink); font-family:'Work Sans', sans-serif;}
body.page-drinks h1, body.page-drinks h2{font-family:'Anton', sans-serif; font-weight:400; margin:0; text-transform:uppercase;}
body.page-drinks .page-hero{max-width:1240px; margin:0 auto; padding:56px 32px 20px;}
body.page-drinks .page-hero .eyebrow{color:var(--oxblood); display:block; margin-bottom:12px;}
body.page-drinks .page-hero h1{font-size:clamp(2rem,4.4vw,3.2rem); max-width:20ch;}
body.page-drinks .page-hero p{font-family:'Fraunces',serif; font-size:1.08rem; max-width:64ch; margin-top:18px; color:rgba(32,27,20,0.8); line-height:1.65;}
body.page-drinks .photo-band{line-height:0;}
body.page-drinks .photo-band img{width:100%; height:auto; max-height:640px; object-fit:cover; display:block;}
body.page-drinks main{max-width:1240px; margin:0 auto; padding:20px 32px 100px;}
body.page-drinks .category{margin-bottom:54px;}
body.page-drinks .category-head{border-bottom:2px solid var(--ink); padding-bottom:12px; margin-bottom:22px;}
body.page-drinks .category-head h2{font-size:clamp(1.3rem,2.4vw,1.7rem);}
body.page-drinks .dish-grid{display:grid; grid-template-columns:1fr 1fr; gap:22px 40px;}
body.page-drinks .dish{display:flex; justify-content:space-between; gap:16px; padding-bottom:16px; border-bottom:1px dashed var(--line);}
body.page-drinks .dish-name{font-family:'Fraunces',serif; font-weight:600; font-size:1.08rem;}
body.page-drinks .dish-desc{font-size:0.85rem; color:rgba(32,27,20,0.62); margin-top:4px; max-width:40ch;}
body.page-drinks .dish-price{font-family:'Fraunces',serif; font-style:italic; font-size:1rem; color:var(--oxblood); white-space:nowrap;}
body.page-drinks footer{background:var(--char); color:rgba(246,241,230,0.6); padding:34px 32px; text-align:center; font-size:0.8rem;}
@media (max-width:800px){
  body.page-drinks .dish-grid{grid-template-columns:1fr;}
}
