/* =========================================================================
   Dos Amigos Market & Cantina — styles.css
   Layout inspired by celenosbistro.com, branded in Dos Amigos red/green/gold.
   ========================================================================= */

:root{
  --red:#c1272d;          /* brand red */
  --red-dark:#9e1b20;
  --green:#1e7d34;        /* brand green */
  --green-dark:#123d20;   /* header / hero panel green */
  --green-deep:#0d2c17;
  --orange:#e8821e;       /* La Flor-style accent / CTA */
  --orange-dark:#cf6f12;
  --gold:#c9a24b;         /* accent / dividers */
  --charcoal:#222425;     /* dark sections */
  --charcoal-2:#2c2f30;
  --cream:#fbf7f0;        /* light background */
  --ink:#23201c;          /* body text */
  --muted:#6f6a63;
  --white:#ffffff;
  --radius:14px;
  --shadow:0 14px 40px rgba(0,0,0,.14);
  --shadow-sm:0 6px 18px rgba(0,0,0,.10);
  --container:1180px;
  --header-h:74px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Poppins',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  color:var(--ink);
  background:var(--cream);
  line-height:1.6;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.container{width:min(var(--container),92%);margin-inline:auto;}
.pre{white-space:pre-line;}

h1,h2,h3,h4{font-family:'Playfair Display',Georgia,serif;line-height:1.15;margin:0 0 .4em;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  font-family:'Poppins',sans-serif;font-weight:600;font-size:.95rem;
  padding:.8em 1.6em;border-radius:999px;border:2px solid transparent;
  cursor:pointer;transition:transform .15s ease, box-shadow .2s ease, background .2s ease;
  white-space:nowrap;
}
.btn--primary{background:var(--red);color:#fff;box-shadow:0 8px 20px rgba(193,39,45,.32);}
.btn--primary:hover{background:var(--red-dark);transform:translateY(-2px);}
.btn--order{background:var(--orange);color:#fff;box-shadow:0 8px 20px rgba(232,130,30,.34);}
.btn--order:hover{background:var(--orange-dark);transform:translateY(-2px);}
.btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.8);}
.btn--ghost:hover{background:#fff;color:var(--ink);}
.btn--lg{padding:1em 2.1em;font-size:1.05rem;}
.btn--sm{padding:.6em 1.2em;font-size:.85rem;}
.btn__icon{width:1.35em;height:1.35em;flex:0 0 auto;object-fit:contain;margin-left:-.15em;}
.btn--lg .btn__icon{width:1.5em;height:1.5em;}

/* ---------- Top bar ---------- */
.topbar{background:var(--charcoal);color:#e9e4da;font-size:.85rem;}
.topbar__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 0;}
.topbar__hours{letter-spacing:.02em;}
.topbar__right{display:flex;align-items:center;gap:.6rem;}
.lang{display:flex;align-items:center;gap:.5rem;}
.lang__label{color:#b9b2a6;text-transform:uppercase;font-size:.72rem;letter-spacing:.08em;}
.lang__select{
  background:var(--charcoal-2);color:#fff;border:1px solid #46494a;
  border-radius:999px;padding:.35em 2em .35em .9em;font:inherit;font-size:.85rem;cursor:pointer;
  appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M0 0l5 6 5-6z' fill='%23ffffff'/></svg>");
  background-repeat:no-repeat;background-position:right .8em center;
}
.lang__select:focus{outline:2px solid var(--gold);}

/* ---------- Header ---------- */
.header{
  position:sticky;top:0;z-index:50;background:#fff;
  box-shadow:0 2px 14px rgba(0,0,0,.06);transition:box-shadow .2s ease;
}
.header.scrolled{box-shadow:0 6px 22px rgba(0,0,0,.12);}
.header__inner{position:relative;display:flex;align-items:center;justify-content:space-between;height:var(--header-h);gap:1rem;}
.brand{display:flex;align-items:center;gap:.6rem;}
.brand-group{display:flex;align-items:center;gap:.7rem;}
.brand--wordmark .brand__wordmark{height:34px;width:auto;display:block;}
.brand--badge .brand__badge{height:56px;width:auto;display:block;filter:drop-shadow(0 4px 8px rgba(0,0,0,.12));}
@media(max-width:560px){
  .brand-group{gap:.5rem;}
  .brand--wordmark .brand__wordmark{height:24px;}
  .brand--badge .brand__badge{height:46px;}
}
.brand__fallback{
  display:none;flex-direction:column;line-height:1;
  font-family:'Playfair Display',serif;font-weight:800;color:var(--red);font-size:1.4rem;letter-spacing:.02em;
}
.brand__fallback small{color:var(--green);font-family:'Poppins',sans-serif;font-weight:600;font-size:.62rem;letter-spacing:.18em;margin-top:.25em;text-transform:uppercase;}

.nav{display:flex;align-items:center;gap:1.6rem;}
.nav__link{font-weight:500;font-size:.95rem;color:var(--ink);position:relative;padding:.2em 0;}
.nav__link::after{content:"";position:absolute;left:0;bottom:-4px;width:0;height:2px;background:var(--gold);transition:width .2s ease;}
.nav__link:hover::after{width:100%;}
.nav__cta{margin-left:.4rem;}

.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px;}
.nav-toggle span{width:26px;height:3px;background:var(--ink);border-radius:2px;transition:.25s;}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}

/* ---------- Hero (banner = interior taco photo) ---------- */
.hero{
  position:relative;min-height:80vh;display:flex;align-items:center;
  color:#fff;text-align:center;overflow:hidden;
  background:#1d1410 url("../images/hero.jpg");
  background-size:cover;background-position:center 40%;background-repeat:no-repeat;
}
.hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;z-index:0;}
.hero__overlay{position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(0,0,0,.30),rgba(0,0,0,.30) 45%,rgba(0,0,0,.62));}
.hero__content{position:relative;z-index:2;max-width:820px;padding:5rem 0;margin:0 auto;}
.hero__kicker{text-transform:uppercase;letter-spacing:.16em;font-size:.8rem;font-weight:600;color:var(--gold);margin-bottom:1rem;}
.hero__title{font-size:clamp(2.4rem,6vw,4.4rem);color:#fff;text-shadow:0 4px 24px rgba(0,0,0,.45);}
.hero__subtitle{font-size:clamp(1rem,2.2vw,1.25rem);max-width:620px;margin:0 auto 2rem;color:#f3eee6;text-shadow:0 2px 12px rgba(0,0,0,.4);}
.hero__actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;}

/* ---------- Feature strip (cream, under hero) ---------- */
.features{background:var(--cream);border-bottom:1px solid #e6ddcd;}
.features__grid{display:grid;grid-template-columns:repeat(4,1fr);}
.feature{
  display:flex;align-items:center;gap:.9rem;justify-content:center;
  padding:1.5rem 1rem;text-align:left;position:relative;
}
.feature:not(:last-child)::after{content:"";position:absolute;right:0;top:22%;height:56%;width:1px;background:#dcd2c0;}
.feature__icon{
  width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:1.25rem;border:2px solid currentColor;flex:0 0 auto;
}
.feature__icon--green{color:var(--green);}
.feature__icon--orange{color:var(--orange);}
.feature__text{font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:.82rem;color:var(--ink);line-height:1.2;}
@media(max-width:760px){
  .features__grid{grid-template-columns:1fr 1fr;}
  .feature:nth-child(2)::after{display:none;}
}
@media(max-width:430px){
  .features__grid{grid-template-columns:1fr;}
  .feature::after{display:none !important;}
  .feature{border-bottom:1px solid #e6ddcd;}
}

/* ---------- Quick info strip ---------- */
.info{background:var(--charcoal);color:#fff;}
.info__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.08);}
.info__card{background:var(--charcoal);padding:1.8rem 1rem;text-align:center;}
.info__card h3{color:var(--gold);font-size:1.15rem;margin-bottom:.35em;}
.info__phone{font-size:1.2rem;font-weight:600;color:#fff;transition:color .2s;}
.info__phone:hover{color:var(--gold);}
.info__hours{margin:0;font-weight:500;color:#e9e4da;}

/* ---------- Generic section ---------- */
.section{padding:5.5rem 0;}
.section__head{text-align:center;max-width:720px;margin:0 auto 3rem;}
.kicker{text-transform:uppercase;letter-spacing:.16em;font-size:.78rem;font-weight:700;color:var(--red);margin-bottom:.7rem;}
.kicker--light{color:var(--gold);}
.section__title{font-size:clamp(1.9rem,4vw,2.9rem);color:var(--ink);}
.section__title--light{color:#fff;}
.section__sub{color:var(--muted);font-size:1.05rem;margin:0;}

/* divider motif under titles */
.section__head .section__title::after{
  content:"";display:block;width:64px;height:4px;border-radius:2px;
  background:linear-gradient(90deg,var(--red),var(--gold),var(--green));
  margin:.7rem auto 0;
}

/* ---------- Gallery / Carousel ---------- */
.gallery{background:var(--cream);}
.carousel{position:relative;width:min(var(--container),92%);margin-inline:auto;}
.carousel__viewport{overflow:hidden;border-radius:var(--radius);}
.carousel__track{
  display:flex;list-style:none;margin:0;padding:0;
  transition:transform .55s cubic-bezier(.4,.0,.2,1);
}
.carousel__slide{flex:0 0 33.3333%;padding:0 .6rem;}
@media(max-width:900px){.carousel__slide{flex-basis:50%;}}
@media(max-width:600px){.carousel__slide{flex-basis:100%;}}

/* light card framing for each dish photo — whole card links to ordering */
.dish{
  position:relative;display:flex;flex-direction:column;height:100%;
  border-radius:var(--radius);overflow:hidden;
  background:#ffffff;border:1px solid #ece4d6;
  box-shadow:var(--shadow);cursor:pointer;
  transition:transform .2s ease, box-shadow .2s ease;
}
.dish:hover{transform:translateY(-5px);box-shadow:0 22px 50px rgba(0,0,0,.18);}
.dish__media{position:relative;flex:0 0 auto;aspect-ratio:1/1;overflow:hidden;}
.dish__media::after{ /* subtle vignette to blend tray edges */
  content:"";position:absolute;inset:0;pointer-events:none;
  box-shadow:inset 0 0 60px 14px rgba(20,12,8,.18);
}
.dish img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .6s ease;
}
.dish:hover img{transform:scale(1.06);}
.dish--missing{background:linear-gradient(150deg,var(--red),var(--green));}
.dish--missing .dish__media::before{
  content:"DOS AMIGOS";position:absolute;inset:0;z-index:1;
  display:flex;align-items:center;justify-content:center;
  font-family:'Playfair Display',serif;font-weight:800;color:rgba(255,255,255,.85);
  letter-spacing:.08em;font-size:1.2rem;text-align:center;
}
/* the light "sign" panel with dish name + description + Order tag */
.dish__caption{
  flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;
  padding:.9rem 1rem 1rem;background:var(--cream);border-top:3px solid var(--gold);
}
.dish__name{
  font-family:'Playfair Display',serif;font-size:1.04rem;font-weight:700;color:var(--ink);line-height:1.15;
}
.dish__desc{
  font-family:'Poppins',sans-serif;font-size:.82rem;line-height:1.35;color:var(--muted);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  min-height:2.3em;
}
.dish__order{
  margin-top:.15rem;background:var(--red);color:#fff;
  font-family:'Poppins',sans-serif;font-weight:700;font-size:.66rem;letter-spacing:.05em;text-transform:uppercase;
  padding:.5em .9em;border-radius:999px;white-space:nowrap;transition:background .2s;
}
.dish:hover .dish__order{background:var(--red-dark);}

.carousel__arrow{
  position:absolute;top:50%;transform:translateY(-50%);z-index:5;
  width:48px;height:48px;border-radius:50%;border:0;cursor:pointer;
  background:var(--red);color:#fff;font-size:1.1rem;box-shadow:var(--shadow-sm);
  display:flex;align-items:center;justify-content:center;transition:background .2s,transform .15s;
}
.carousel__arrow:hover{background:var(--red-dark);}
.carousel__arrow--prev{left:-10px;}
.carousel__arrow--next{right:-10px;}
@media(max-width:700px){
  .carousel__arrow--prev{left:4px;}
  .carousel__arrow--next{right:4px;}
}
.carousel__dots{display:flex;gap:.5rem;justify-content:center;margin-top:1.6rem;}
.carousel__dots button{
  width:10px;height:10px;border-radius:50%;border:0;background:#d8cfc2;cursor:pointer;transition:.2s;padding:0;
}
.carousel__dots button.active{background:var(--red);transform:scale(1.3);}

/* ---------- About ---------- */
.about{background:#fff;}
.about__grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:3rem;align-items:center;}
.about__media{display:flex;justify-content:center;}
.about__logo{max-width:300px;filter:drop-shadow(0 18px 30px rgba(0,0,0,.18));}
.about__text p{color:#4a463f;margin-bottom:1.1rem;}

/* ---------- App section ---------- */
.app{
  position:relative;overflow:hidden;color:#fff;
  background:
    radial-gradient(900px 520px at 88% 12%, rgba(232,130,30,.32), transparent 60%),
    radial-gradient(820px 560px at 8% 92%, rgba(30,125,52,.30), transparent 60%),
    radial-gradient(700px 500px at 50% 50%, rgba(193,39,45,.20), transparent 65%),
    linear-gradient(135deg, #2a1012 0%, #1b1410 50%, #0f2419 100%);
}
/* festive papel-picado style accent strip along the top */
.app::before{
  content:"";position:absolute;top:0;left:0;right:0;height:8px;
  background:repeating-linear-gradient(90deg,var(--red) 0 28px,var(--gold) 28px 56px,var(--green) 56px 84px);
  opacity:.9;
}
.app__grid{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center;}
.app__body{color:#e7e1d6;font-size:1.06rem;max-width:540px;margin-bottom:1.6rem;}

/* rewards / promo perks */
.app__perks{list-style:none;margin:0 0 2rem;padding:0;display:grid;gap:1rem;max-width:520px;}
.app-perk{display:flex;align-items:flex-start;gap:.9rem;}
.app-perk__icon{
  flex:0 0 auto;width:46px;height:46px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  font-size:1.4rem;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);box-shadow:0 6px 16px rgba(0,0,0,.25);
}
.app-perk__text{display:flex;flex-direction:column;gap:.1rem;}
.app-perk__text strong{font-size:1rem;color:#fff;}
.app-perk__text span{font-size:.9rem;color:#cfc8bb;line-height:1.4;}
.app__badges{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:2rem;}
.store-badge{
  display:inline-flex;align-items:center;gap:.7rem;
  background:#000;border:1px solid #3a3d3e;border-radius:12px;padding:.6rem 1.1rem;
  transition:transform .15s,border-color .2s;
}
.store-badge:hover{transform:translateY(-2px);border-color:var(--gold);}
.store-badge__icon{width:26px;height:26px;background:#fff;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'><path fill='black' d='M318.7 268c-.3-37 16.4-65 50.1-85-18.8-27-47.3-42-84.9-45-35.6-2.8-74.5 21-88.7 21-15 0-49.4-20-76.4-20C72.5 114.5 24 159 24 246c0 26 4.8 53 14.3 80.9 12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.6-90-61.6-91.8zM255.7 80.6c30.3-36 27.6-68.8 26.7-80.6-26.8 1.6-57.8 18.3-75.5 38.9-19.5 22.2-31 49.6-28.5 79.6 29 2.2 55.5-12.7 77.3-37.9z'/></svg>") center/contain no-repeat;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'><path fill='black' d='M318.7 268c-.3-37 16.4-65 50.1-85-18.8-27-47.3-42-84.9-45-35.6-2.8-74.5 21-88.7 21-15 0-49.4-20-76.4-20C72.5 114.5 24 159 24 246c0 26 4.8 53 14.3 80.9 12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.6-90-61.6-91.8zM255.7 80.6c30.3-36 27.6-68.8 26.7-80.6-26.8 1.6-57.8 18.3-75.5 38.9-19.5 22.2-31 49.6-28.5 79.6 29 2.2 55.5-12.7 77.3-37.9z'/></svg>") center/contain no-repeat;
}
.store-badge__icon--play{
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path fill='black' d='M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34-65.7 64.4 65.7 64.4 60.1-34c18-14.3 18-46.5-1.2-60.8zM104.6 499l220.7-221.3 60.1 60.1L104.6 499z'/></svg>") center/contain no-repeat;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path fill='black' d='M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34-65.7 64.4 65.7 64.4 60.1-34c18-14.3 18-46.5-1.2-60.8zM104.6 499l220.7-221.3 60.1 60.1L104.6 499z'/></svg>") center/contain no-repeat;
}
.store-badge__text{display:flex;flex-direction:column;line-height:1.1;color:#fff;}
.store-badge__text small{font-size:.62rem;letter-spacing:.04em;text-transform:uppercase;color:#cfcabf;}
.store-badge__text strong{font-size:1.05rem;}
.app__or{color:#b9b2a6;font-size:.85rem;text-transform:uppercase;letter-spacing:.1em;margin:0 0 .8rem;}

/* Menu-page app download strip */
.menu-app{background:#fbf3e6;border-top:1px solid #ece3d4;border-bottom:1px solid #ece3d4;}
.menu-app__inner{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:1rem 2rem;padding:1.4rem 0;text-align:center;}
.menu-app__title{margin:0;font-weight:700;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--ink);}
.menu-app__badges{margin-bottom:0;}
.app__partners{display:flex;gap:.7rem;flex-wrap:wrap;}
.partner-chip{
  background:rgba(255,255,255,.08);border:1px solid #46494a;border-radius:999px;
  padding:.5rem 1.2rem;font-weight:600;font-size:.9rem;transition:.2s;
}
.partner-chip:hover{background:var(--gold);color:#1c1c1c;border-color:var(--gold);}

/* phone mockup */
.app__phone{display:flex;justify-content:center;}
.phone-mock{
  position:relative;width:248px;height:500px;border-radius:38px;
  background:#0f0f10;border:9px solid #1c1c1d;box-shadow:0 30px 60px rgba(0,0,0,.45);
  overflow:hidden;
}
.phone-mock__notch{position:absolute;top:0;left:50%;transform:translateX(-50%);width:120px;height:22px;background:#1c1c1d;border-radius:0 0 14px 14px;z-index:3;}
.phone-mock__shot{width:100%;height:100%;object-fit:cover;}
.phone-mock__placeholder{
  display:none;position:absolute;inset:0;flex-direction:column;align-items:center;justify-content:center;
  background:linear-gradient(160deg,var(--red),var(--green));
  font-family:'Playfair Display',serif;font-weight:800;color:#fff;font-size:1.5rem;letter-spacing:.05em;text-align:center;
}
.phone-mock__placeholder span{font-family:'Poppins',sans-serif;font-size:.8rem;letter-spacing:.4em;margin-top:.4rem;color:var(--gold);}
.phone-mock--empty .phone-mock__placeholder{display:flex;}

/* ---------- Services ---------- */
.services{background:var(--cream);}
.services__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
.service-card{
  background:#fff;border-radius:var(--radius);padding:2rem 1.7rem;box-shadow:var(--shadow-sm);
  border-top:4px solid transparent;transition:transform .2s,box-shadow .2s,border-color .2s;
}
.service-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-top-color:var(--red);}
.service-card__icon{font-size:2.2rem;margin-bottom:.6rem;}
.service-card h3{font-size:1.25rem;color:var(--ink);}
.service-card p{color:var(--muted);margin:0;font-size:.97rem;}

/* ---------- Contact ---------- */
.contact{background:#fff;}
.contact__grid{display:grid;grid-template-columns:1fr 1.1fr;gap:2.5rem;}
.contact__info{display:grid;grid-template-columns:1fr 1fr;gap:1.8rem;}
.contact__block h3{font-size:1.15rem;color:var(--red);}
.contact__block p{margin:0 0 .8rem;color:#4a463f;}
.contact__block a{color:var(--green);font-weight:600;}
.contact__map{min-height:380px;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);}
.contact__map iframe{width:100%;height:100%;min-height:380px;}

/* ---------- Storefront band ---------- */
.storefront-band{
  position:relative;min-height:58vh;display:flex;align-items:center;justify-content:center;
  text-align:center;color:#fff;overflow:hidden;
  background:#1d1410 url("../images/storefront.jpg");
  background-size:cover;background-position:center 58%;background-attachment:fixed;
}
.storefront-band__overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.42),rgba(0,0,0,.70));}
.storefront-band__content{position:relative;padding:4rem 0;}
.storefront-band__content .section__title{margin-bottom:1.4rem;}
@media(max-width:700px){.storefront-band{background-attachment:scroll;}}

/* ---------- Footer ---------- */
.footer{background:var(--charcoal);color:#cfcabf;padding-top:3.5rem;}
.footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:2rem;padding-bottom:2.5rem;}
.footer__logo{height:46px;width:auto;background:#fff;padding:.5rem .7rem;border-radius:10px;}
.footer__brand p{max-width:320px;margin:.8rem 0 0;font-size:.92rem;}
.brand__fallback--footer{display:flex;color:#fff;}
.brand__fallback--footer small{color:var(--gold);}
.footer__col h4{color:#fff;font-family:'Poppins',sans-serif;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:1rem;}
.footer__col a{display:block;color:#cfcabf;margin-bottom:.6rem;font-size:.92rem;transition:color .2s;}
.footer__col a:hover{color:var(--gold);}
.footer__bar{border-top:1px solid rgba(255,255,255,.1);padding:1.2rem 0;font-size:.85rem;color:#a8a296;}

/* ============================ MENU PAGE ============================ */
.menu-hero{
  position:relative;min-height:42vh;display:flex;align-items:center;text-align:center;color:#fff;overflow:hidden;
  background:linear-gradient(135deg,#9e1b20 0%,#c1272d 45%,#1e7d34 100%);
}
.menu-hero__overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,.45));}
.menu-hero__content{position:relative;margin:0 auto;max-width:760px;padding:3.6rem 0;}
.menu-hero__title{font-size:clamp(2.4rem,6vw,4rem);color:#fff;text-shadow:0 4px 22px rgba(0,0,0,.4);}
.menu-hero__sub{color:#f3eee6;font-size:1.05rem;max-width:560px;margin:0 auto 1.7rem;}

.menu-controls{position:sticky;top:var(--header-h);z-index:40;background:var(--cream);border-bottom:1px solid #e6ddcd;box-shadow:0 4px 14px rgba(0,0,0,.06);}
.menu-controls__inner{padding:.9rem 0;}
.menu-search{width:100%;max-width:440px;display:block;margin:0 auto .85rem;padding:.7em 1.2em;border:1px solid #d9cfbf;border-radius:999px;font:inherit;font-size:.95rem;background:#fff;}
.menu-search:focus{outline:2px solid var(--gold);border-color:transparent;}
.menu-tabs{display:flex;gap:.5rem;overflow-x:auto;scrollbar-width:none;padding-bottom:.2rem;}
.menu-tabs::-webkit-scrollbar{display:none;}
.menu-tab{flex:0 0 auto;padding:.45em 1.05em;border-radius:999px;background:#fff;border:1px solid #e0d6c6;font-weight:600;font-size:.84rem;color:var(--ink);white-space:nowrap;transition:.18s;cursor:pointer;}
.menu-tab:hover{border-color:var(--red);color:var(--red);}
.menu-tab.active{background:var(--red);color:#fff;border-color:var(--red);}

.menu-body{padding:3rem 0 4rem;background:var(--cream);}
.menu-cat{scroll-margin-top:calc(var(--header-h) + 96px);margin-bottom:1rem;background:#fff;border:1px solid #ece3d4;border-radius:14px;box-shadow:0 4px 14px rgba(0,0,0,.04);overflow:hidden;}
.menu-cat__bar{display:flex;align-items:stretch;border-left:5px solid var(--red);}
.menu-cat__head{display:flex;align-items:center;gap:1rem;flex:1 1 auto;min-width:0;text-align:left;background:none;border:0;cursor:pointer;padding:1.15rem 1.3rem;font:inherit;transition:background .18s;}
.menu-cat__head:hover{background:#fbf7ef;}
.menu-cat__order{flex:0 0 auto;align-self:center;display:inline-flex;align-items:center;gap:.45em;margin-right:1.3rem;padding:.5em 1.05em;border-radius:999px;background:var(--orange);color:#fff;font-weight:700;font-size:.82rem;line-height:1;white-space:nowrap;box-shadow:0 6px 16px rgba(232,130,30,.3);transition:.18s;}
.menu-cat__order:hover{background:var(--orange-dark);transform:translateY(-2px);}
.menu-cat__order svg{width:18px;height:18px;flex:0 0 auto;}
@media(max-width:560px){.menu-cat__order span{display:none;}.menu-cat__order{margin-right:1rem;padding:.5em;}}
.menu-cat__title{font-size:clamp(1.3rem,3vw,1.85rem);color:var(--ink);margin:0;flex:1;}
.menu-cat__count{flex:0 0 auto;font-size:.78rem;font-weight:700;color:var(--red);background:#fdecea;border-radius:999px;padding:.25em .7em;}
.menu-cat__chevron{flex:0 0 auto;width:24px;height:24px;color:var(--red);transition:transform .3s ease;}
.menu-cat.is-open .menu-cat__chevron{transform:rotate(180deg);}
.menu-cat__panel{max-height:0;overflow:hidden;transition:max-height .4s ease;}
.menu-cat.is-open .menu-cat__panel{max-height:8000px;}
.menu-cat__note{color:var(--muted);font-size:.9rem;max-width:780px;margin:0 1.3rem 1rem;line-height:1.5;padding-top:.4rem;}
.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:.2rem 2.4rem;padding:.4rem 1.3rem 1.4rem;}
@media(max-width:680px){.menu-grid{grid-template-columns:1fr;}}
.mi{padding:1rem 0;border-bottom:1px dashed #ddd3c2;}
.mi__row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;}
.mi__name{font-family:'Playfair Display',serif;font-size:1.12rem;font-weight:700;color:var(--ink);margin:0;}
.mi__price{font-weight:700;color:var(--red);white-space:nowrap;}
.mi__price--mp{color:var(--muted);font-style:italic;font-weight:600;}
.mi__variants{display:flex;flex-wrap:wrap;gap:.2rem .9rem;justify-content:flex-end;}
.mi__variant{display:inline-flex;gap:.35rem;align-items:baseline;}
.mi__vlabel{font-size:.76rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;}
.mi__vprice{font-weight:700;color:var(--red);}
.mi__desc{color:#5a554d;font-size:.91rem;line-height:1.45;margin:.35rem 0 0;}
.mi__extra{color:var(--green);font-size:.82rem;font-weight:600;margin:.3rem 0 0;}
.menu-empty{text-align:center;color:var(--muted);padding:2.5rem 0;font-size:1.05rem;}
.menu-notice{margin-top:2.5rem;padding:1rem 1.3rem;background:#fff;border:1px dashed var(--gold);border-radius:10px;color:#6f6a63;font-size:.85rem;text-align:center;line-height:1.5;}

/* ---------- Mobile nav ---------- */
@media(max-width:920px){
  .nav-toggle{display:flex;}
  .nav{
    position:fixed;top:var(--header-h);right:0;height:calc(100vh - var(--header-h));width:min(78vw,320px);
    background:#fff;flex-direction:column;align-items:flex-start;gap:.4rem;padding:1.5rem;
    box-shadow:-10px 0 40px rgba(0,0,0,.15);transform:translateX(100%);transition:transform .28s ease;
  }
  .nav.open{transform:translateX(0);}
  .nav__link{width:100%;padding:.8rem 0;border-bottom:1px solid #eee;color:var(--ink);}
  .nav__link:hover{color:var(--red);}
  .nav__cta{margin-top:1rem;width:100%;}
}

@media(max-width:780px){
  .info__grid{grid-template-columns:1fr 1fr;}
  .about__grid,.app__grid,.contact__grid{grid-template-columns:1fr;gap:2rem;}
  .services__grid{grid-template-columns:1fr 1fr;}
  .contact__info{grid-template-columns:1fr 1fr;}
}
@media(max-width:520px){
  .services__grid,.contact__info{grid-template-columns:1fr;}
  .section{padding:4rem 0;}
  .topbar__hours{display:none;}
}
