:root{
  --gold-1:#f5d27a; --gold-2:#e2b34a; --gold-3:#b8862c; --gold-deep:#8a5e16;
  --char-1:#0a0604; --char-2:#15100a; --char-3:#221710; --char-4:#2e2117;
  --text-soft:rgba(245,210,122,.75);
  --text-dim:rgba(245,210,122,.5);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:'Cormorant Garamond',Georgia,serif;
  background:var(--char-1);
  color:var(--gold-1);
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
  position:relative;
}
body::before{
  content:'';position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(ellipse at 15% 0%,rgba(184,134,44,.08),transparent 50%),
    radial-gradient(ellipse at 85% 100%,rgba(226,179,74,.06),transparent 50%);
}

/* ===== Olas de entrada ===== */
.enter-waves{
  position:fixed;inset:0;z-index:9999;pointer-events:none;
  transform:translateY(0);
  animation:waveRetreat .9s cubic-bezier(.7,0,.3,1) forwards;
}
.enter-waves svg{position:absolute;bottom:0;width:100%;height:100%}
@keyframes waveRetreat{
  0%{transform:translateY(0)}
  100%{transform:translateY(-110%)}
}

/* ===== Topbar ===== */
.topbar{
  position:sticky;top:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 16px;
  background:rgba(10,6,4,.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(226,179,74,.18);
}
.back-btn,.wa-btn{
  width:42px;height:42px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;text-decoration:none;
  border:1px solid rgba(226,179,74,.25);
  color:var(--gold-1);transition:all .25s ease;
}
.back-btn svg,.wa-btn svg{width:22px;height:22px}
.back-btn:hover,.wa-btn:hover{background:rgba(226,179,74,.12);border-color:var(--gold-2)}
.wa-btn{color:#cde6c5;border-color:rgba(120,200,110,.3)}
.wa-btn:hover{background:rgba(120,200,110,.12);border-color:#78c86e}
.topbar-logo{height:46px;width:auto;mix-blend-mode:screen;filter:drop-shadow(0 0 8px rgba(226,179,74,.3))}

/* ===== Navegación de categorías ===== */
.catnav{
  position:sticky;top:62px;z-index:99;
  display:flex;gap:8px;overflow-x:auto;
  padding:12px 16px;
  background:rgba(10,6,4,.88);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(226,179,74,.12);
  scrollbar-width:none;-webkit-overflow-scrolling:touch;
}
.catnav::-webkit-scrollbar{display:none}
.catnav-item{
  flex-shrink:0;white-space:nowrap;
  font-family:'Cinzel',serif;font-size:.72rem;letter-spacing:.1em;
  text-transform:uppercase;
  padding:9px 16px;border-radius:30px;cursor:pointer;
  background:transparent;color:var(--text-soft);
  border:1px solid rgba(226,179,74,.25);
  transition:all .25s ease;
}
.catnav-item.active{
  background:linear-gradient(180deg,var(--gold-1),var(--gold-3));
  color:var(--char-1);border-color:var(--gold-deep);font-weight:600;
}

/* ===== Main ===== */
.menu-main{position:relative;z-index:1;padding:8px 16px 40px;max-width:760px;margin:0 auto}

/* ===== Recomendados ===== */
.destacados-section{margin:18px 0 26px}
.destacados-title{
  font-family:'Cinzel',serif;font-size:.85rem;letter-spacing:.25em;
  text-transform:uppercase;text-align:center;color:var(--gold-2);
  margin-bottom:16px;font-weight:500;
}
.destacados-scroll{
  display:flex;gap:14px;overflow-x:auto;padding:4px 2px 12px;
  scrollbar-width:none;-webkit-overflow-scrolling:touch;
}
.destacados-scroll::-webkit-scrollbar{display:none}
.destacado-card{
  flex-shrink:0;width:170px;cursor:pointer;
  background:linear-gradient(180deg,var(--char-3),var(--char-2));
  border:1px solid rgba(226,179,74,.3);border-radius:12px;overflow:hidden;
  transition:transform .25s ease,border-color .25s ease;
}
.destacado-card:active{transform:scale(.97)}
.destacado-img{
  position:relative;width:100%;aspect-ratio:1;
  background-size:cover;background-position:center;
  background-color:var(--char-4);
  display:flex;align-items:center;justify-content:center;
}
.destacado-badge{
  position:absolute;top:8px;left:8px;
  background:linear-gradient(180deg,var(--gold-1),var(--gold-3));
  color:var(--char-1);font-family:'Cinzel',serif;font-size:.55rem;
  letter-spacing:.08em;text-transform:uppercase;font-weight:600;
  padding:4px 9px;border-radius:20px;
}
.destacado-info{padding:10px 12px 12px}
.destacado-nombre{font-size:1rem;font-weight:600;line-height:1.2;margin-bottom:4px;color:var(--gold-1)}
.destacado-precio{font-family:'Cinzel',serif;font-size:.8rem;color:var(--gold-2)}

/* ===== Categorías ===== */
.categoria-section{margin-bottom:34px;scroll-margin-top:120px}
.categoria-title{
  font-family:'Cinzel',serif;font-size:1.5rem;font-weight:600;
  letter-spacing:.04em;
  background:linear-gradient(180deg,#fff5d8,var(--gold-1) 40%,var(--gold-3));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  margin-bottom:6px;padding-bottom:10px;
  border-bottom:1px solid rgba(226,179,74,.2);
}
.subcategoria-title{
  font-family:'Cinzel',serif;font-size:.85rem;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;color:var(--gold-2);
  margin:22px 0 10px;opacity:.85;
}

/* ===== Lista de platos ===== */
.platos-lista{display:flex;flex-direction:column}
.plato-row{
  display:flex;align-items:center;gap:13px;
  padding:11px 0;cursor:pointer;
  border-bottom:1px solid rgba(226,179,74,.1);
  transition:background .2s ease;
}
.plato-row:active{background:rgba(226,179,74,.05)}
.plato-thumb{
  width:64px;height:64px;flex-shrink:0;border-radius:10px;
  background-size:cover;background-position:center;
  background-color:var(--char-4);
  border:1px solid rgba(226,179,74,.15);
  display:flex;align-items:center;justify-content:center;
}
.img-placeholder{color:rgba(226,179,74,.35);font-size:1.4rem}
.plato-data{flex:1;min-width:0}
.plato-nombre{font-size:1.12rem;font-weight:600;line-height:1.25;color:var(--gold-1)}
.plato-tag{
  display:inline-block;vertical-align:middle;
  background:linear-gradient(180deg,var(--gold-1),var(--gold-3));
  color:var(--char-1);font-family:'Cinzel',serif;font-size:.5rem;
  letter-spacing:.06em;text-transform:uppercase;font-weight:600;
  padding:2px 7px;border-radius:12px;margin-left:6px;
}
.plato-desc-mini{
  font-size:.92rem;color:var(--text-dim);line-height:1.3;margin-top:2px;
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;
}
.plato-precio{
  flex-shrink:0;font-family:'Cinzel',serif;font-size:.95rem;
  font-weight:500;color:var(--gold-2);text-align:right;
}

/* ===== Footer ===== */
.menu-footer{text-align:center;margin-top:30px;padding-top:24px;border-top:1px solid rgba(226,179,74,.15)}
.alergia-aviso{
  font-family:'Cinzel',serif;font-size:.72rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--gold-3);
  border:1px solid rgba(226,179,74,.3);border-radius:30px;
  padding:10px 18px;display:inline-block;margin-bottom:20px;
}
.footer-logo{height:70px;width:auto;mix-blend-mode:screen;opacity:.8;margin-bottom:8px}
.footer-redes{font-family:'Cinzel',serif;font-size:.75rem;letter-spacing:.15em;color:var(--text-dim)}

/* ===== Popup ===== */
.popup-overlay{
  position:fixed;inset:0;z-index:9000;
  background:rgba(0,0,0,.85);backdrop-filter:blur(8px);
  display:none;align-items:flex-end;justify-content:center;
  opacity:0;transition:opacity .3s ease;
}
.popup-overlay.show{display:flex;opacity:1}
.popup-box{
  background:linear-gradient(180deg,var(--char-3),var(--char-1));
  border-top:1px solid rgba(226,179,74,.3);
  border-radius:20px 20px 0 0;
  width:100%;max-width:560px;max-height:92vh;overflow-y:auto;
  position:relative;
  transform:translateY(100%);transition:transform .35s cubic-bezier(.2,.8,.2,1);
}
.popup-overlay.show .popup-box{transform:translateY(0)}
.popup-close{
  position:absolute;top:14px;right:14px;z-index:2;
  width:38px;height:38px;border-radius:50%;cursor:pointer;
  background:rgba(10,6,4,.7);border:1px solid rgba(226,179,74,.3);
  color:var(--gold-1);display:flex;align-items:center;justify-content:center;
}
.popup-close svg{width:20px;height:20px}
.popup-img{
  width:100%;aspect-ratio:4/3;
  background-size:cover;background-position:center;
  background-color:var(--char-4);
  display:flex;align-items:center;justify-content:center;
  border-radius:20px 20px 0 0;
}
.popup-img .img-placeholder{font-size:3rem}
.popup-content{padding:22px 22px 28px}
.popup-badge{
  display:inline-block;
  background:linear-gradient(180deg,var(--gold-1),var(--gold-3));
  color:var(--char-1);font-family:'Cinzel',serif;font-size:.6rem;
  letter-spacing:.1em;text-transform:uppercase;font-weight:600;
  padding:5px 12px;border-radius:20px;margin-bottom:12px;
}
.popup-nombre{
  font-family:'Cinzel',serif;font-size:1.5rem;font-weight:600;
  color:var(--gold-1);line-height:1.2;margin-bottom:10px;
}
.popup-desc{font-size:1.1rem;color:var(--text-soft);line-height:1.5;margin-bottom:18px}
.popup-precios{margin-bottom:22px}
.precio-unico{font-family:'Cinzel',serif;font-size:1.6rem;font-weight:600;color:var(--gold-2)}
.precio-variante{
  display:flex;justify-content:space-between;align-items:center;
  padding:11px 0;border-bottom:1px solid rgba(226,179,74,.12);
}
.precio-variante:last-child{border-bottom:none}
.variante-nombre{font-size:1.05rem;color:var(--gold-1)}
.variante-precio{font-family:'Cinzel',serif;font-size:1.1rem;font-weight:500;color:var(--gold-2)}
.precio-segun{font-family:'Cinzel',serif;font-size:1.1rem;color:var(--gold-2);font-style:normal}
.popup-wa{
  display:flex;align-items:center;justify-content:center;gap:10px;
  width:100%;padding:16px;text-decoration:none;
  font-family:'Cinzel',serif;font-size:.9rem;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;
  color:var(--char-1);
  background:linear-gradient(180deg,#f5d27a,#e2b34a 50%,#b8862c);
  border-radius:8px;border:1px solid var(--gold-deep);
  box-shadow:0 6px 18px rgba(0,0,0,.4);
  transition:transform .2s ease;
}
.popup-wa:active{transform:scale(.98)}
.popup-wa svg{width:20px;height:20px}

/* ===== Desktop ===== */
@media (min-width:768px){
  .platos-lista{display:grid;grid-template-columns:1fr 1fr;gap:0 28px}
  .plato-nombre{font-size:1.18rem}
  .categoria-title{font-size:1.8rem}
  .popup-overlay{align-items:center}
  .popup-box{border-radius:20px;border:1px solid rgba(226,179,74,.3);max-height:88vh}
  .popup-img{border-radius:20px 20px 0 0}
}
