:root{
  --red-dark:#8C2410;
  --red:#B93A0F;
  --teal-dark:#0E3B3E;
  --teal:#1C5C56;
  --gold:#E8A93E;
  --pink:#6B2545;
  --cream:#FBF3E4;
  --cream-soft:#F1E6CC;
  --ink:#241812;
  --ink-soft:#6B5745;

  --display: 'Bricolage Grotesque', sans-serif;
  --body: 'Lora', serif;
  --mono: 'Space Mono', monospace;

  /* Motion */
  --ease-out-quint: cubic-bezier(.23, 1, .32, 1);
  --ease-in-out-cubic: cubic-bezier(.645, .045, .355, 1);
  --ease-out-cubic: cubic-bezier(.33, 1, .68, 1);
  --header-h: 90px;
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }

/* <picture> wraps every photo (webp + jpg fallback); it must not break the
   frames its <img> is sized against. */
picture{ display:contents; }

body{
  font-family: var(--body);
  background: var(--cream);
  color: var(--ink);
  line-height:1.6;
  overflow-x:hidden;
}

body.no-scroll{ overflow:hidden; }

a{ color:inherit; text-decoration:none; }
ul{ list-style:none; }
img{ max-width:100%; display:block; }

h1,h2,h3,.brand{ font-family: var(--display); letter-spacing:-0.01em; }

.eyebrow{
  font-family: var(--mono);
  font-size:0.72rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  font-weight:700;
}

.skip-link{
  position:absolute; left:1rem; top:-3rem;
  background:var(--gold); color:var(--ink);
  padding:0.6rem 1rem; font-family:var(--mono); font-size:0.8rem;
  z-index:100; transition: top 200ms var(--ease-out-quint);
}
.skip-link:focus{ top:1rem; }

/* Anchor offset so the sticky header never covers a jumped-to section */
#nosotros, #menu, #reservar, #ubicacion, .menu-tab{
  scroll-margin-top: var(--header-h);
}

/* ---------- Zigzag step-pattern signature ---------- */
.zigzag{
  height:14px;
  width:100%;
  background-image:
    linear-gradient(135deg, var(--z-a, var(--gold)) 25%, transparent 25%),
    linear-gradient(225deg, var(--z-a, var(--gold)) 25%, transparent 25%),
    linear-gradient(45deg, var(--z-a, var(--gold)) 25%, transparent 25%),
    linear-gradient(315deg, var(--z-a, var(--gold)) 25%, transparent 25%);
  background-position: 14px 0, 14px 0, 0 0, 0 0;
  background-size: 14px 14px;
  background-repeat: repeat-x;
}
.zigzag.on-red{ --z-a: var(--cream); background-color: var(--red); }
.zigzag.on-teal{ --z-a: var(--gold); background-color: var(--teal-dark); }
.zigzag.on-cream{ --z-a: var(--red); background-color: var(--cream); }

/* ---------- Nav ---------- */
header{
  position:sticky; top:0; z-index:50;
  background: var(--ink);
  border-bottom:3px solid var(--gold);
}
.nav-inner{
  max-width:1200px; margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
  padding:0.9rem 1.5rem;
}
.brand{
  display:flex; align-items:center; gap:0.6rem;
  color:var(--cream); font-size:1.3rem; font-weight:800;
}
.brand-mark{
  width:34px; height:34px;
  display:flex; align-items:center; justify-content:center;
  color: var(--gold);
}
.brand-mark svg{ width:28px; height:28px; }
nav ul{ display:flex; align-items:center; gap:1.8rem; }
nav a{
  position:relative;
  color: var(--cream-soft);
  font-family: var(--mono);
  font-size:0.75rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  transition: color 200ms var(--ease-out-quint);
  padding-bottom:0.3rem;
}
nav a::after{
  content:"";
  position:absolute; left:0; right:100%; bottom:0;
  height:2px; background:var(--gold);
  transition: right 240ms var(--ease-out-quint);
}
nav a:hover, nav a:focus-visible, nav a.active{ color: var(--gold); }
nav a:hover::after, nav a:focus-visible::after, nav a.active::after{ right:0; }
.nav-cta{
  background: var(--gold); color: var(--ink) !important;
  padding:0.5rem 1rem; font-weight:700;
}
.nav-cta::after{ display:none; }

/* Hamburger toggle (mobile only) */
.nav-toggle{
  display:none;
  width:38px; height:38px;
  background:none; border:none; cursor:pointer;
  flex-direction:column; align-items:center; justify-content:center; gap:6px;
}
.nav-toggle span{
  display:block; width:22px; height:2px; background:var(--cream);
  transition: transform 260ms var(--ease-in-out-cubic), opacity 200ms var(--ease-out-quint);
}
.nav-toggle:focus-visible{ outline:3px solid var(--gold); outline-offset:3px; }

/* ---------- Mobile menu overlay ---------- */
.mobile-menu{
  position:fixed; inset:0; z-index:60;
  background: var(--ink);
  display:flex; align-items:center; justify-content:center;
  opacity:0; transform:translateY(-16px);
  pointer-events:none;
  transition: opacity 280ms var(--ease-out-quint), transform 280ms var(--ease-out-quint);
}
.mobile-menu.is-open{ opacity:1; transform:translateY(0); pointer-events:auto; }
.mobile-menu ul{ display:flex; flex-direction:column; align-items:center; gap:1.9rem; }
.mobile-menu a{
  font-family:var(--display); font-size:1.7rem; font-weight:700; color:var(--cream);
  transition: color 200ms var(--ease-out-quint);
}
.mobile-menu a:hover, .mobile-menu a:focus-visible{ color:var(--gold); }
.mobile-menu .nav-cta{ padding:0.7rem 1.6rem; font-family:var(--mono); font-size:1rem; }
.mobile-menu-close{
  position:absolute; top:1.4rem; right:1.5rem;
  width:44px; height:44px; border:none; background:none; cursor:pointer;
  color:var(--cream); font-size:1.8rem; line-height:1;
}
.mobile-menu-close:focus-visible{ outline:3px solid var(--gold); outline-offset:3px; }

/* ---------- Hero ---------- */
.hero{
  position:relative;
  background: radial-gradient(circle at 15% 20%, var(--red) 0%, var(--red-dark) 55%, #2A0D06 100%);
  color: var(--cream);
  padding: 5.5rem 1.5rem 4.5rem;
  overflow:hidden;
}
.hero::before{
  content:"";
  position:absolute; inset:0;
  background-image: repeating-linear-gradient(45deg, rgba(232,169,62,0.08) 0 2px, transparent 2px 26px);
  pointer-events:none;
}
.hero-inner{
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns: 1.1fr 0.9fr; gap:3rem;
  align-items:center; position:relative; z-index:2;
}
.hero .eyebrow{ color: var(--gold); margin-bottom:1rem; display:block; }
.hero h1{
  font-size: clamp(2.8rem, 6vw, 5rem);
  font-weight:900;
  line-height:0.95;
  margin-bottom:1.2rem;
}
.hero h1 em{
  font-style:italic; color: var(--gold);
}
.hero p{
  font-size:1.1rem; max-width:38ch; color: var(--cream-soft);
  margin-bottom:2rem;
}
.btn-row{ display:flex; gap:1rem; flex-wrap:wrap; }
.btn{
  font-family: var(--mono);
  font-size:0.8rem; letter-spacing:0.06em; text-transform:uppercase;
  padding:0.95rem 1.7rem;
  border:2px solid transparent;
  font-weight:700;
  display:inline-flex; align-items:center; gap:0.5rem;
  transition: transform 220ms var(--ease-out-quint), box-shadow 220ms var(--ease-out-quint);
}
.btn:hover{ transform: translateY(-2px); }
.btn:active{ transform: translateY(-2px) scale(0.97); }
.btn-primary{ background: var(--gold); color: var(--ink); }
.btn-ghost{ border-color: var(--cream); color: var(--cream); }

/* Hero entrance sequence */
.hero .eyebrow{ animation: heroFade 600ms var(--ease-out-quint) both; }
.hero h1{ animation: heroFade 700ms var(--ease-out-quint) 120ms both; }
.hero p{ animation: heroFade 700ms var(--ease-out-quint) 220ms both; }
.hero .btn-row{ animation: heroFade 700ms var(--ease-out-quint) 320ms both; }
@keyframes heroFade{
  from{ opacity:0; transform:translateY(16px); }
  to{ opacity:1; transform:translateY(0); }
}

.hero-plate{
  position:relative;
  width: clamp(240px, 26vw, 340px);
  aspect-ratio: 1;
  border-radius:50%;
  padding:10px;
  justify-self:center;
  animation: heroPlateIn 800ms var(--ease-out-quint) 200ms both;
}
.hero-plate::before{
  content:"";
  position:absolute; inset:0; border-radius:50%;
  background: conic-gradient(from 180deg, var(--gold), var(--pink), var(--teal), var(--gold));
  animation: spin 150s linear infinite;
}
@keyframes heroPlateIn{
  from{ opacity:0; transform:scale(0.85) rotate(-8deg); }
  to{ opacity:1; transform:scale(1) rotate(0deg); }
}
@keyframes spin{ to{ transform: rotate(360deg); } }
.hero-plate-inner{
  position:relative; width:100%; height:100%; border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%, transparent 0 63%, rgba(36,24,18,0.08) 63% 64%, transparent 64%),
    var(--cream);
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
}
.plate-ring-text{
  position:absolute; inset:0; width:100%; height:100%;
  animation: spin 40s linear infinite;
}
.plate-ring-text text{
  font-family:var(--mono); font-size:6.6px; font-weight:700;
  letter-spacing:2.2px; fill:var(--red);
}
.plate-core{
  position:relative; z-index:2;
  display:flex; flex-direction:column; align-items:center;
  text-align:center; gap:0.25rem;
}
.plate-mark{
  display:flex; align-items:center; justify-content:center;
  color: var(--red); margin-bottom:0.4rem;
}
.plate-core strong{
  font-family:var(--display); font-size:2.6rem; font-weight:900; color:var(--ink); line-height:1;
}
.plate-rule{
  display:block; width:34px; height:3px; margin:0.5rem 0 0.4rem;
  background: var(--gold);
}
.plate-sub{
  font-family:var(--mono); font-size:0.68rem; letter-spacing:0.1em;
  text-transform:uppercase; color:var(--ink-soft);
}

/* ---------- Sections shared ---------- */
section{ padding: 5rem 1.5rem; }
.section-inner{ max-width:1200px; margin:0 auto; }
.section-head{ max-width:640px; margin-bottom:3rem; }
.section-head .eyebrow{ color: var(--red); margin-bottom:0.6rem; display:block; }
.section-head h2{ font-size: clamp(2rem,4vw,3rem); font-weight:800; }

/* ---------- Scroll reveal ---------- */
.reveal{ opacity:1; transform:none; }
html.js .reveal{
  opacity:0; transform: translateY(28px);
  transition: opacity 700ms var(--ease-out-quint), transform 700ms var(--ease-out-quint);
  transition-delay: calc(var(--reveal-i, 0) * 70ms);
}
html.js .reveal.in-view{ opacity:1; transform:none; }

/* ---------- Nosotros ---------- */
.about{
  display:grid; grid-template-columns: 0.9fr 1.1fr; gap:3rem; align-items:center;
}
.about-art{
  aspect-ratio: 4/5;
  background: linear-gradient(160deg, var(--teal) 0%, var(--teal-dark) 100%);
  position:relative;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
  box-shadow: 10px 10px 0 var(--gold);
}
.about-art img{
  width:100%; height:100%; object-fit:cover;
  transition: transform 420ms var(--ease-out-quint);
}
.about-art:hover img{ transform: scale(1.04); }
.about-art::after{
  content:"";
  position:absolute; inset:14px;
  border:2px dashed rgba(251,243,228,0.55);
  pointer-events:none;
}

/* ---------- Carrusel del local ---------- */
.carousel-track{ position:absolute; inset:0; }
.carousel-slide{
  position:absolute; inset:0; margin:0;
  opacity:0; visibility:hidden;
  transition: opacity 700ms var(--ease-out-quint), visibility 700ms;
}
.carousel-slide.is-active{ opacity:1; visibility:visible; }

.carousel-btn{
  position:absolute; top:50%; z-index:3;
  transform: translateY(-50%);
  width:38px; height:38px;
  display:flex; align-items:center; justify-content:center;
  background: var(--cream); color: var(--ink);
  border:2px solid var(--ink);
  font-family: var(--display); font-size:1.5rem; font-weight:900; line-height:1;
  padding-bottom:4px;
  cursor:pointer;
  transition: background 200ms var(--ease-out-quint), color 200ms var(--ease-out-quint), transform 200ms var(--ease-out-quint);
}
.carousel-btn:hover{ background: var(--gold); }
.carousel-prev{ left:26px; }
.carousel-next{ right:26px; }
.carousel-prev:hover{ transform: translateY(-50%) translateX(-2px); }
.carousel-next:hover{ transform: translateY(-50%) translateX(2px); }

.carousel-dots{
  position:absolute; left:0; right:0; bottom:28px; z-index:3;
  display:flex; justify-content:center; gap:0.5rem;
}
.carousel-dot{
  width:10px; height:10px; padding:0;
  background: var(--cream); border:2px solid var(--ink);
  cursor:pointer;
  transition: background 200ms var(--ease-out-quint), transform 200ms var(--ease-out-quint);
}
.carousel-dot:hover{ background: var(--gold); }
.carousel-dot.is-active{ background: var(--gold); transform: scale(1.3); }
.about-text p{ margin-bottom:1.2rem; color: var(--ink-soft); }
.about-text p:first-of-type::first-letter{
  font-family:var(--display); font-size:3.2rem; font-weight:900; color:var(--red);
  float:left; line-height:0.8; margin-right:0.5rem; margin-top:0.3rem;
}
.stat-row{ display:flex; gap:2.2rem; margin-top:2rem; }
.stat b{ display:block; font-family:var(--display); font-size:1.8rem; color:var(--red); }
.stat span{ font-family:var(--mono); font-size:0.7rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--ink-soft); }

/* ---------- Menu tabs ---------- */
.menu-tabs{
  display:flex; flex-wrap:wrap; gap:0.7rem;
  margin-bottom:3rem;
}
.menu-tab{
  font-family: var(--mono); font-size:0.75rem; letter-spacing:0.06em; text-transform:uppercase; font-weight:700;
  padding:0.75rem 1.4rem; border:2px solid var(--ink); background:var(--cream); color:var(--ink);
  cursor:pointer;
  transition: transform 200ms var(--ease-out-quint), background 200ms var(--ease-out-quint), color 200ms var(--ease-out-quint), box-shadow 200ms var(--ease-out-quint);
}
.menu-tab:hover{ transform: translateY(-2px); }
.menu-tab.is-active{
  background: var(--ink); color: var(--gold); border-color: var(--ink);
  box-shadow: 4px 4px 0 var(--red);
}

.menu-panel{ display:none; }
.menu-panel.is-active{ display:block; animation: panelFade 380ms var(--ease-out-quint) both; }
@keyframes panelFade{
  from{ opacity:0; transform:translateY(10px); }
  to{ opacity:1; transform:none; }
}
.panel-tagline{
  font-family: var(--display); font-size: clamp(1.4rem,2.4vw,1.9rem); font-weight:800;
  margin-bottom:1.8rem;
}
.menu-panel.on-teal{
  background: var(--teal-dark);
  padding: 2.5rem clamp(1.2rem,4vw,2.8rem);
}
.menu-panel.on-teal .panel-tagline{ color: var(--cream); }

/* ---------- Ofertas ---------- */
.offers-grid{
  display:grid; grid-template-columns: repeat(5, 1fr); gap:1.5rem;
}
.offer-card{
  background: var(--cream); border:2px solid var(--ink);
  box-shadow: 6px 6px 0 var(--red);
  position:relative; overflow:hidden;
  display:flex; flex-direction:column;
  transition: transform 220ms var(--ease-out-quint), box-shadow 220ms var(--ease-out-quint);
}
.offer-card:hover{ transform: translate(-3px,-3px); box-shadow: 9px 9px 0 var(--red); }
.offer-media{
  aspect-ratio: 4/3; overflow:hidden;
}
.offer-media img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition: transform 320ms var(--ease-out-quint);
}
.offer-card:hover .offer-media img{ transform: scale(1.06); }
.offer-body{ padding:1.3rem 1.6rem 1.4rem; display:flex; flex-direction:column; gap:0.8rem; flex:1; }
.offer-card h3{ font-size:1.05rem; line-height:1.35; margin-bottom:0; }
.offer-day{
  font-family: var(--mono); font-size:0.68rem; text-transform:uppercase;
  color: var(--red); letter-spacing:0.07em; font-weight:700;
  display:flex; align-items:center; gap:0.45rem;
  padding-top:0.75rem; margin-top:auto;
  border-top:1px dashed rgba(36,24,18,0.18);
}
.offer-day::before{
  content:""; width:6px; height:6px; border-radius:50%;
  background: var(--gold); flex-shrink:0;
}
.price-tag{
  font-family: var(--mono); font-weight:700; font-size:1.3rem; color: var(--red);
}

/* ---------- Especialidades ---------- */
.on-teal{ background: var(--teal-dark); }
.dish-grid{
  display:grid; grid-template-columns: repeat(6,1fr); gap:1rem;
}
.dish-card{
  background: var(--cream);
  display:flex; flex-direction:column;
  transition: transform 220ms var(--ease-out-quint);
}
.dish-card:hover{ transform: translateY(-6px); }
.dish-media{
  aspect-ratio: 5/4;
  background: linear-gradient(150deg, var(--pink), var(--red));
  display:flex; align-items:center; justify-content:center;
  position:relative;
  overflow:hidden;
}
.dish-media img{
  width:100%; height:100%; object-fit:cover;
  transition: transform 320ms var(--ease-out-quint);
}
.dish-card:hover .dish-media img{ transform: scale(1.06); }
.dish-body{ padding:1.3rem 1.4rem 1.6rem; flex:1; display:flex; flex-direction:column; }
.dish-body h3{ font-size:1.2rem; margin-bottom:0.4rem; }
.dish-body p{ color: var(--ink-soft); font-size:0.9rem; flex:1; margin-bottom:1rem; }
.dish-foot{ display:flex; justify-content:space-between; align-items:center; }
.dish-foot .price-tag{ font-size:1.1rem; }
.tag-fusion{
  font-family:var(--mono); font-size:0.62rem; text-transform:uppercase;
  color: var(--teal-dark); border:1px solid var(--teal-dark); padding:0.15rem 0.45rem;
}

/* ---------- Platos combinados (counter list) ---------- */
.combo-list{
  border-top:2px solid var(--ink);
}
.combo-row{
  display:grid; grid-template-columns:84px 1fr; gap:1.4rem; align-items:center;
  padding:1.1rem 0.2rem;
  border-bottom:1px dashed rgba(36,24,18,0.25);
  transition: padding-left 200ms var(--ease-out-quint);
}
.combo-row:hover{ padding-left:0.5rem; }
.combo-media{
  width:84px; height:84px; overflow:hidden; flex-shrink:0;
  border:2px solid var(--ink);
}
.combo-media img{
  width:100%; height:100%; object-fit:cover;
  transition: transform 320ms var(--ease-out-quint);
}
.combo-row:hover .combo-media img{ transform: scale(1.08); }
.combo-text h3{ font-size:1.05rem; margin-bottom:0.25rem; }
.combo-text p{ color: var(--ink-soft); font-size:0.88rem; }

/* ---------- Raciones (chalkboard list) ---------- */
.menu-board{
  background: var(--ink); color: var(--cream); padding: 3rem 2.5rem;
  position:relative;
}
.menu-board::before{ content:""; position:absolute; top:0; left:0; right:0; height:6px; background: var(--gold); }
.menu-cols{ display:grid; grid-template-columns:1fr 1fr; gap:0 3rem; }
.menu-row{
  display:flex; justify-content:space-between; align-items:baseline;
  padding:0.85rem 0; border-bottom:1px dotted rgba(251,243,228,0.25);
  gap:1rem;
  transition: padding-left 200ms var(--ease-out-quint), color 200ms var(--ease-out-quint);
}
.menu-row:hover{ padding-left:0.4rem; color:var(--gold); }
.menu-row .name{ font-family:var(--body); font-size:1rem; }
.menu-row .name small{ display:block; font-family:var(--mono); font-size:0.7rem; color: var(--gold); margin-top:0.15rem; text-transform:uppercase; letter-spacing:0.05em;}
.menu-row .price{ font-family:var(--mono); color: var(--gold); white-space:nowrap; }

/* ---------- Reservas banner ---------- */
.reserve{
  background: linear-gradient(120deg, var(--red-dark), var(--red));
  color: var(--cream);
  text-align:center;
  padding:4.5rem 1.5rem;
}
.reserve h2{ font-size:clamp(1.8rem,4vw,2.8rem); margin-bottom:1rem; }
.reserve p{ color: var(--cream-soft); max-width:46ch; margin:0 auto 2rem; }
.reserve .btn-row{ justify-content:center; }

/* ---------- Ubicación ---------- */
.location{
  display:grid; grid-template-columns:1fr 1fr; gap:3rem;
}
.info-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.6rem; margin-top:1.5rem; }
.info-item .eyebrow{ color:var(--red); display:block; margin-bottom:0.4rem; }
.info-item p{ color: var(--ink-soft); }
.map-block{
  border:2px solid var(--ink);
  min-height:320px;
  position:relative;
  overflow:hidden;
  background: repeating-linear-gradient(135deg, var(--cream-soft), var(--cream-soft) 12px, var(--cream) 12px, var(--cream) 24px);
}
.map-block iframe{
  position:absolute; inset:0;
  width:100%; height:100%; min-height:320px; border:0; display:block;
  filter: grayscale(0.15) contrast(1.05) sepia(0.06);
}
.map-btn{
  position:absolute; right:1rem; bottom:1rem; z-index:2;
  box-shadow: 4px 4px 0 var(--ink);
}
.map-btn:hover{ box-shadow: 6px 6px 0 var(--ink); }

/* ---------- Footer ---------- */
footer{ background: var(--ink); color: var(--cream-soft); padding:3rem 1.5rem 2rem; }
.footer-inner{
  max-width:1200px; margin:0 auto;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:2rem;
  padding-bottom:2rem; border-bottom:1px solid rgba(251,243,228,0.15);
}
.footer-inner .brand{ margin-bottom:0.8rem; }
footer .cols{ display:flex; gap:3.5rem; }
footer h4{ font-family:var(--mono); font-size:0.72rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--gold); margin-bottom:0.8rem; }
footer li{ margin-bottom:0.5rem; font-size:0.9rem; }
footer a:hover, footer a:focus-visible{ color:var(--gold); }
.footer-bottom{
  max-width:1200px; margin:1.5rem auto 0; display:flex; justify-content:space-between;
  font-family:var(--mono); font-size:0.7rem; color: rgba(251,243,228,0.5); flex-wrap:wrap; gap:0.6rem;
}

/* ---------- Back to top ---------- */
.to-top{
  position:fixed; right:1.4rem; bottom:1.4rem; z-index:40;
  width:46px; height:46px; border-radius:50%;
  background:var(--gold); color:var(--ink); border:none; cursor:pointer;
  font-size:1.1rem; font-weight:900;
  opacity:0; transform:translateY(12px); pointer-events:none;
  transition: opacity 220ms var(--ease-out-quint), transform 220ms var(--ease-out-quint);
}
.to-top.is-visible{ opacity:1; transform:translateY(0); pointer-events:auto; }
.to-top:hover{ transform: translateY(-3px); }
.to-top:focus-visible{ outline:3px solid var(--ink); outline-offset:2px; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px){
  .dish-grid{ grid-template-columns: repeat(2,1fr); }
  .offers-grid{ grid-template-columns: repeat(3,1fr); }
}
@media (min-width: 861px) and (max-width: 1180px){
  .brand{ font-size:1.05rem; }
  nav ul{ gap:1rem; }
  nav a{ font-size:0.66rem; }
}
@media (max-width: 640px){
  .offers-grid{ grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 420px){
  .offers-grid{ grid-template-columns: 1fr; }
}
@media (max-width: 860px){
  .hero-inner{ grid-template-columns:1fr; }
  .hero-plate{ max-width:260px; margin:0 auto; }
  .about{ grid-template-columns:1fr; }
  .dish-grid{ grid-template-columns:1fr; }
  .menu-cols{ grid-template-columns:1fr; }
  .location{ grid-template-columns:1fr; }
  nav ul{ display:none; }
  .nav-toggle{ display:flex; }
  .footer-inner{ flex-direction:column; }
}

:focus-visible{ outline:3px solid var(--gold); outline-offset:2px; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *, *::before, *::after{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; }
  .btn:hover, .offer-card:hover, .dish-card:hover{ transform:none; }
  .hero-plate::before{ animation:none; }
}
