/* Colores centralizados en assets/menu_colores.css */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Arial, Helvetica, sans-serif;
  background:linear-gradient(180deg,#faefe3 0%, #f7f0e8 100%);
  color:var(--text);
  padding-bottom:110px;
}
img{display:block;max-width:100%}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font:inherit}
button{cursor:pointer}

.menu-page{
  width:min(100%, 860px);
  margin:0 auto;
}

.top-cover{
  position:relative;
  width:100%;
  aspect-ratio:16 / 7.4;
  background:linear-gradient(135deg,#e6b07a 0%, #8b5a30 100%);
  overflow:hidden;
}
.top-cover img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.top-cover__overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(69,39,19,.28) 0%, rgba(69,39,19,.48) 58%, rgba(69,39,19,.62) 100%);
}
.top-cover__content{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
  text-align:center;
  padding:24px 18px 28px;
}
.top-cover__title{
  margin:0;
  color:#fff;
  font-size:34px;
  line-height:1.05;
  font-weight:700;
  text-shadow:0 2px 12px rgba(0,0,0,.35);
}
.top-cover__sub{
  margin:8px 0 0;
  color:#fff2e4;
  font-size:19px;
  line-height:1.1;
  font-weight:400;
  text-shadow:0 2px 10px rgba(0,0,0,.35);
}

.main-shell{
  position:relative;
  margin-top:-14px;
  background:var(--paper);
  border-radius:30px 30px 0 0;
  box-shadow:0 -1px 0 rgba(0,0,0,.02), 0 8px 22px rgba(81,47,22,.08);
  padding:18px 18px 18px;
}

.banner-shell{
  border-radius:22px;
  overflow:hidden;
  background:#f8f0e7;
  box-shadow:var(--shadow);
}
#banner-promocional.banner-bottom{
  min-height:140px;
}

.hero-meta-center{
  margin:18px 0 10px;
  text-align:center;
}
.hero-meta-title{
  display:block;
  font-size:24px;
  line-height:1.1;
  color:var(--brown-dark);
  font-weight:700;
}
.hero-meta-date{
  display:block;
  margin-top:6px;
  font-size:14px;
  line-height:1.3;
  color:var(--muted);
  font-weight:400;
}

.category-nav-shell{
  margin-top:12px;
  padding:0 0 2px;
  border-bottom:1px solid var(--line);
  position:sticky;
  top:0;
  z-index:40;
  background:rgba(255,253,249,.96);
  backdrop-filter:blur(6px);
}
.category-nav{
  display:flex;
  gap:10px;
  overflow-x:auto;
  scrollbar-width:none;
  padding:12px 0 10px 2px;
}
.category-nav::-webkit-scrollbar{display:none}
.category-tab{
  appearance:none;
  border:1px solid var(--line);
  background:#fff;
  padding:10px 14px;
  color:var(--brown);
  font-size:14px;
  line-height:1;
  font-weight:600;
  border-radius:999px;
  white-space:nowrap;
  transition:all .18s ease;
}
.category-tab.is-active{
  color:#fff;
  background:linear-gradient(135deg,var(--orange) 0%, #b85f14 100%);
  border-color:transparent;
  box-shadow:0 8px 16px rgba(217,122,30,.24);
}

.menu-sections{
  display:grid;
  gap:24px;
  padding-top:14px;
}
.menu-section{scroll-margin-top:112px}
.section-head{
  display:flex;
  align-items:center;
  gap:12px;
  margin:4px 0 12px;
}
.section-head__line{
  flex:1 1 auto;
  height:1px;
  background:linear-gradient(90deg, transparent 0%, var(--line) 100%);
}
.section-head__title{
  margin:0;
  font-size:18px;
  line-height:1.1;
  color:var(--brown-dark);
  font-weight:700;
  white-space:nowrap;
}
.section-head__title::first-letter{text-transform:uppercase}
.section-note{
  margin:-4px 0 12px;
  padding:10px 12px;
  border:1px solid #f0dcc8;
  border-radius:14px;
  background:#fff8f1;
  color:var(--muted);
  font-size:13px;
  line-height:1.4;
  font-weight:400;
}
.section-note strong{
  color:var(--brown-dark);
  font-weight:700;
}
.menu-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:14px;
}

/* CARD DE PLATILLO */
.menu-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  overflow:hidden;
  box-shadow:var(--shadow);
  display:grid;
  grid-template-columns:118px minmax(0, 1fr);
  height:126px;
  min-height:126px;
  max-height:126px;
  min-width:0;
}
.menu-card.is-unavailable{opacity:.76}

.menu-card__media{
  position:relative;
  padding:0;
  border:none;
  background:#efdfd2;
  width:100%;
  height:126px;
  min-height:0;
  max-height:126px;
  overflow:hidden;
  align-self:stretch;
}
.menu-card__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
}
.menu-card__state{
  position:absolute;
  left:8px;
  bottom:8px;
  padding:5px 9px;
  border-radius:999px;
  background:rgba(81,47,22,.86);
  color:#fff;
  font-size:10px;
  font-weight:700;
}
.menu-card__body{
  padding:11px 11px 11px 13px;
  display:flex;
  flex-direction:column;
  gap:8px;
  min-width:0;
  min-height:0;
  overflow:hidden;
}
.menu-card__title{
  margin:0;
  font-size:16px;
  line-height:1.16;
  font-weight:700;
  color:var(--brown-dark);
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.menu-card.is-unavailable .menu-card__title{
  text-decoration:line-through;
  color:#9a8678;
}
.menu-card__prices{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) 40px;
  align-items:end;
  gap:7px;
  margin-top:auto;
  min-width:0;
}
.menu-card__price{min-width:0}
.menu-card__price.is-single{grid-column:1 / span 2}
.menu-card__label{
  display:block;
  font-size:10px;
  line-height:1.12;
  color:var(--muted);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.2px;
}
.menu-card__amount{
  display:block;
  margin-top:3px;
  font-size:14px;
  line-height:1.1;
  color:var(--brown-dark);
  font-weight:700;
  white-space:nowrap;
}
.menu-card__add{
  appearance:none;
  border:none;
  width:40px;
  height:40px;
  border-radius:999px;
  background:linear-gradient(135deg,var(--orange) 0%, #b85f14 100%);
  color:#fff;
  font-size:27px;
  line-height:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 6px 14px rgba(217,122,30,.26);
  justify-self:end;
  align-self:end;
}
.menu-card__add[disabled]{background:#d3c3b5;box-shadow:none}

.empty-state{
  padding:40px 14px;
  text-align:center;
  color:var(--muted);
}

.bottom-actions,
.order-bar{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:70;
  padding:12px 14px calc(12px + env(safe-area-inset-bottom));
  background:linear-gradient(180deg, rgba(248,241,231,0) 0%, rgba(248,241,231,.92) 28%, rgba(248,241,231,.98) 100%);
}
.bottom-actions__grid,
.order-bar__inner{
  width:min(100%, 860px);
  margin:0 auto;
}
.bottom-actions__grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:14px;
}
.cta-btn{
  min-height:60px;
  border-radius:14px;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-size:18px;
  font-weight:700;
  box-shadow:0 8px 18px rgba(81,47,22,.16);
}
.cta-btn--wa{background:linear-gradient(135deg,var(--orange) 0%, #b85f14 100%)}
.cta-btn--call{background:linear-gradient(135deg,var(--brown) 0%, var(--brown-dark) 100%)}

.is-hidden{display:none !important}

.order-bar__button{
  width:100%;
  appearance:none;
  border:none;
  background:#fffdfb;
  border-radius:16px;
  padding:12px 14px;
  box-shadow:0 8px 18px rgba(81,47,22,.14);
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  text-align:left;
}
.order-bar__title{
  font-size:18px;
  line-height:1.1;
  color:var(--brown-dark);
  font-weight:700;
}
.order-bar__meta{
  margin-top:4px;
  font-size:13px;
  line-height:1.3;
  color:var(--muted);
  font-weight:400;
}
.order-bar__send{
  appearance:none;
  border:none;
  min-width:116px;
  min-height:46px;
  padding:10px 14px;
  border-radius:12px;
  background:linear-gradient(135deg,var(--green) 0%, var(--green-dark) 100%);
  color:#fff;
  font-size:16px;
  font-weight:700;
  box-shadow:0 6px 14px rgba(32,163,91,.24);
}

/* ==========================================================
   MODALES GENERALES
   Corregido para que en celular no se salgan de pantalla
   y los botones inferiores siempre sean accesibles.
========================================================== */
.modal{
  position:fixed;
  inset:0;
  display:none;
  z-index:110;
  padding:10px 0 calc(10px + env(safe-area-inset-bottom));
  overflow:hidden;
  -webkit-overflow-scrolling:touch;
}
.modal.is-open{display:flex;align-items:center;justify-content:center}
.modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(58,33,18,.48);
}
.modal__dialog{
  position:relative;
  width:min(560px, calc(100% - 24px));
  max-height:calc(100dvh - 24px - env(safe-area-inset-bottom));
  margin:auto;
  background:#fffdf9;
  border-radius:20px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  box-shadow:0 18px 44px rgba(58,33,18,.22);
}
.modal__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:16px 16px 14px;
  border-bottom:1px solid var(--line);
  flex:0 0 auto;
  background:#fffdf9;
}
.modal__title{
  margin:0;
  font-size:22px;
  line-height:1.15;
  font-weight:700;
  color:var(--brown-dark);
}
.modal__close{
  appearance:none;
  border:none;
  width:38px;
  height:38px;
  min-width:38px;
  border-radius:999px;
  background:var(--brown-soft);
  color:var(--brown-dark);
  font-size:22px;
}
.modal__body{
  padding:16px;
  overflow:auto;
  min-height:0;
  flex:1 1 auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
}
.modal__foot{
  padding:14px 16px calc(16px + env(safe-area-inset-bottom));
  border-top:1px solid var(--line);
  flex:0 0 auto;
  background:#fffdf9;
  display:flex;
  align-items:center;
  gap:10px;
}
.product-config__subtitle{
  margin:0 0 14px;
  color:var(--muted);
  font-size:14px;
  line-height:1.4;
  font-weight:400;
}
.option-pills{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:10px;
  margin-bottom:14px;
}
.option-pill{
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  text-align:left;
  padding:12px;
}
.option-pill.is-active{
  border-color:#e3a96b;
  background:var(--orange-soft);
}
.option-pill__name{
  display:block;
  font-size:15px;
  line-height:1.2;
  color:var(--brown-dark);
  font-weight:700;
}
.option-pill__price{
  display:block;
  margin-top:4px;
  font-size:13px;
  line-height:1.2;
  color:var(--muted);
  font-weight:400;
}
.form-group{display:grid;gap:6px;margin-top:10px}
.form-group label{
  font-size:13px;
  line-height:1.2;
  color:var(--brown);
  font-weight:700;
}
.form-group select{
  min-height:46px;
  border-radius:12px;
  border:1px solid var(--line);
  background:#fff;
  padding:10px 12px;
  color:var(--brown-dark);
}
.helper-note{
  margin:12px 0 0;
  font-size:12px;
  line-height:1.4;
  color:var(--muted);
}
.primary-btn{
  width:100%;
  min-height:52px;
  appearance:none;
  border:none;
  border-radius:12px;
  background:linear-gradient(135deg,var(--orange) 0%, #b85f14 100%);
  color:#fff;
  font-size:17px;
  font-weight:700;
}
.primary-btn--whatsapp{
  background:linear-gradient(135deg,var(--green) 0%, var(--green-dark) 100%);
  box-shadow:0 8px 18px rgba(32,163,91,.22);
}

.cart-list{display:grid;gap:12px}
.cart-item{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  padding:14px;
  border-radius:16px;
  border:1px solid var(--line);
  background:#fff;
}
.cart-item__name{
  margin:0;
  color:var(--brown-dark);
  font-size:16px;
  line-height:1.25;
  font-weight:700;
}
.cart-item__meta{
  margin:6px 0 0;
  color:var(--muted);
  font-size:12px;
  line-height:1.4;
  font-weight:400;
}
.cart-item__price{
  margin-top:7px;
  color:var(--brown-dark);
  font-size:15px;
  font-weight:700;
}
.cart-item__actions{
  display:flex;
  align-items:center;
  gap:8px;
  align-self:center;
}
.qty-btn,
.remove-btn{
  appearance:none;
  border:none;
  width:34px;
  height:34px;
  border-radius:999px;
  background:var(--brown-soft);
  color:var(--brown-dark);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:20px;
}
.remove-btn{background:#fff2ec;color:#b85f14;font-size:16px}
.qty-num{
  min-width:24px;
  text-align:center;
  color:var(--brown-dark);
  font-size:15px;
  font-weight:700;
}
.cart-empty{
  padding:26px 18px;
  border:1px dashed #ddc8b3;
  border-radius:16px;
  text-align:center;
  color:var(--muted);
  font-size:14px;
}
.cart-total{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
  padding:14px 16px;
  border-radius:14px;
  background:#fbf1e7;
}
.cart-total span{
  color:var(--muted);
  font-size:13px;
  font-weight:400;
}
.cart-total strong{
  color:var(--brown-dark);
  font-size:24px;
  line-height:1;
  font-weight:700;
}

.foto-modal.hidden{display:none}
.foto-modal{
  position:fixed;
  inset:0;
  z-index:120;
  background:rgba(58,33,18,.55);
  padding:20px;
  overflow:auto;
}
.foto-card{
  width:min(560px, 100%);
  max-height:calc(100vh - 40px);
  margin:4vh auto 0;
  background:#fffdf9;
  border-radius:22px;
  overflow:hidden;
  position:relative;
  box-shadow:0 20px 42px rgba(81,47,22,.24);
  display:flex;
  flex-direction:column;
}
.foto-close{
  position:absolute;
  top:14px;
  right:14px;
  width:40px;
  height:40px;
  border:none;
  border-radius:999px;
  background:rgba(255,253,249,.96);
  color:var(--brown-dark);
  font-size:22px;
  z-index:2;
}
.foto-wrap{
  height:min(68vh, 520px);
  background:#efdfd2;
  display:flex;
  align-items:center;
  justify-content:center;
}
.foto-wrap img{width:100%;height:100%;object-fit:contain}
.foto-title{padding:16px}
#fotoTitulo{font-size:20px;font-weight:700;color:var(--brown-dark)}
.foto-sub{margin-top:6px;font-size:13px;color:var(--muted)}

.page-footer{
  margin-top:18px;
  padding:0 4px;
  text-align:center;
  color:var(--muted);
  font-size:12px;
  line-height:1.4;
}

/* ==========================================================
   Pedido directo independiente - menú de hoy
========================================================== */
.send-choice{display:grid;gap:12px}
.send-choice__card{
  width:100%;
  border:1px solid rgba(124,74,29,.18);
  background:#fff;
  border-radius:18px;
  padding:16px;
  text-align:left;
  display:grid;
  gap:5px;
  box-shadow:0 10px 22px rgba(0,0,0,.06);
}
.send-choice__card strong{font-size:18px;color:#2b1b0e}
.send-choice__card span{font-size:14px;color:#6b5a48;line-height:1.35}
.send-choice__card--primary{background:#fff7ed;border-color:#f59e0b}

.modal__dialog--order{
  width:min(640px, calc(100% - 18px));
  max-height:calc(100dvh - 18px - env(safe-area-inset-bottom));
  overflow:hidden;
  display:flex;
  flex-direction:column;
}

.direct-order{
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  padding-bottom:12px;
}

.order-step h4{font-size:18px;margin:0 0 12px;color:#3b2412}
.form-group input,.form-group textarea{
  width:100%;
  border:1px solid rgba(124,74,29,.22);
  border-radius:14px;
  padding:12px 13px;
  background:#fff;
  color:#2b1b0e;
  outline:none;
}
.form-group textarea{resize:vertical;min-height:82px}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{
  border-color:#d97706;
  box-shadow:0 0 0 3px rgba(217,119,6,.12);
}
.field-help{display:block;margin-top:6px;color:#6b5a48;font-size:12px;line-height:1.35}
.secondary-btn{
  border:1px solid rgba(124,74,29,.24);
  background:#fff;
  color:#5b3418;
  border-radius:999px;
  padding:11px 15px;
  font-weight:800;
  margin-top:8px;
}
.direct-order__foot{
  gap:10px;
}
.direct-order__foot .secondary-btn{
  margin-top:0;
  flex:0 0 auto;
  min-height:52px;
}
.direct-order__foot .primary-btn{
  flex:1 1 auto;
}
.shipping-box{
  margin-top:10px;
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:14px;
  padding:11px 12px;
  color:#334155;
  font-size:14px;
  display:grid;
  gap:3px;
}
.shipping-box small{color:#b91c1c;font-size:12px;margin-top:2px}
.transfer-box{
  background:#fff7ed;
  border:1px solid #fed7aa;
  border-radius:15px;
  padding:13px;
  color:#4b2d13;
  font-size:14px;
  line-height:1.55;
  margin-bottom:12px;
}
.transfer-box p{margin:8px 0 0}
.include-shipping{
  background:#fff7d0;
  border:2px solid #fbbf24;
  border-radius:15px;
  padding:13px;
  margin:12px 0;
  color:#784F17;
}
.include-shipping label{display:flex;align-items:center;gap:10px;font-weight:900}
.include-shipping input{width:21px;height:21px;accent-color:#b91c1c}
.include-shipping small{display:block;margin-top:7px;font-size:12px;text-align:center}

.final-summary{display:grid;gap:8px}
.summary-row{
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding:8px 0;
  border-bottom:1px solid rgba(124,74,29,.12);
  font-size:14px;
}
.summary-row--sub{padding-left:12px;color:#6b5a48;font-size:13px}
.summary-total,.summary-grand{display:flex;justify-content:space-between;gap:10px;margin-top:8px}
.summary-total{font-size:14px;color:#6b5a48}
.summary-grand{
  font-size:19px;
  font-weight:950;
  padding-top:10px;
  border-top:2px solid rgba(124,74,29,.18);
  color:#2b1b0e;
}
.summary-note{font-size:13px;color:#92400e;background:#fff7ed;border-radius:12px;padding:9px 10px}
.summary-observation{font-size:13px;color:#334155;background:#f8fafc;border-radius:12px;padding:10px;line-height:1.4}
.success-box{text-align:center;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:18px;padding:18px;color:#14532d}
.success-box h4{margin:0 0 8px;color:#15803d}
.success-box p{margin:7px 0;line-height:1.45}

@media (max-width: 640px){
  .top-cover{aspect-ratio:16 / 8.3}
  .top-cover__title{font-size:28px}
  .top-cover__sub{font-size:17px}
  .main-shell{padding:16px 14px 16px;border-radius:26px 26px 0 0}
  .hero-meta-title{font-size:21px}
  .menu-section{scroll-margin-top:108px}
  .section-head__title{font-size:17px}

  .menu-card{
    grid-template-columns:108px minmax(0,1fr);
    height:118px;
    min-height:118px;
    max-height:118px;
  }
  .menu-card__media{
    height:118px;
    max-height:118px;
  }
  .menu-card__body{
    padding:10px 10px 10px 12px;
    gap:7px;
  }
  .menu-card__title{font-size:15px}
  .menu-card__prices{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 38px;gap:6px}
  .menu-card__amount{font-size:14px}
  .menu-card__add{width:38px;height:38px;font-size:26px}

  .cta-btn{min-height:58px;font-size:17px}
  .order-bar__title{font-size:16px}
  .order-bar__send{font-size:15px;min-width:108px}

  .modal{
    padding:6px 0 calc(6px + env(safe-area-inset-bottom));
  }
  .modal.is-open{
    align-items:center;
    justify-content:center;
  }
  .modal__dialog{
    width:min(100% - 12px, 640px);
    max-height:calc(100dvh - 12px - env(safe-area-inset-bottom));
    border-radius:18px;
  }
  .modal__dialog--order{
    width:min(100% - 12px, 640px);
    max-height:calc(100dvh - 12px - env(safe-area-inset-bottom));
  }
  .modal__head{
    padding:13px 14px 12px;
  }
  .modal__body{
    padding:14px;
  }
  .modal__foot{
    padding:12px 14px calc(14px + env(safe-area-inset-bottom));
  }
  .send-choice__card{
    padding:14px;
  }
  .summary-row{
    font-size:13px;
  }
}

@media (max-width: 480px){
  .menu-page{width:100%}
  .top-cover{aspect-ratio:16 / 9.2}
  .top-cover__content{padding:18px 14px 22px}
  .top-cover__title{font-size:23px}
  .top-cover__sub{font-size:15px;margin-top:6px}
  .main-shell{margin-top:-12px}
  .hero-meta-title{font-size:19px}
  .hero-meta-date{font-size:13px}
  .category-nav{gap:8px;padding-top:10px}
  .category-tab{font-size:13px;padding:9px 12px}
  .menu-section{scroll-margin-top:102px}
  .menu-grid{gap:12px}

  .menu-card{
    border-radius:18px;
    grid-template-columns:96px minmax(0,1fr);
    height:108px;
    min-height:108px;
    max-height:108px;
  }
  .menu-card__media{
    height:108px;
    max-height:108px;
  }
  .menu-card__body{
    padding:9px 9px 9px 11px;
    gap:6px;
  }
  .menu-card__title{
    font-size:14px;
    line-height:1.14;
  }
  .menu-card__label{font-size:9px}
  .menu-card__amount{font-size:13px}
  .menu-card__prices{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) 36px;
    gap:5px;
  }
  .menu-card__add{
    width:36px;
    height:36px;
    font-size:24px;
  }

  .bottom-actions,
  .order-bar{padding:10px 10px calc(10px + env(safe-area-inset-bottom))}
  .bottom-actions__grid{gap:10px}
  .cta-btn{min-height:54px;font-size:15px;border-radius:12px}
  .order-bar__button{padding:11px 12px}
  .order-bar__send{min-width:96px;min-height:42px;font-size:14px}
  .modal__title{font-size:20px}
  .primary-btn{font-size:16px}
  .foto-modal{padding:10px}
  .foto-card{max-height:calc(100vh - 20px);margin:2vh auto 0}
  .foto-wrap{height:min(72vh, 520px)}
}

@media (max-width: 390px){
  .modal{
    padding:4px 0 calc(4px + env(safe-area-inset-bottom));
  }
  .modal__dialog,
  .modal__dialog--order{
    width:calc(100% - 8px);
    max-height:calc(100dvh - 8px - env(safe-area-inset-bottom));
    border-radius:16px;
  }
  .modal__head{
    padding:11px 12px 10px;
  }
  .modal__body{
    padding:12px;
  }
  .modal__foot{
    padding:10px 12px calc(12px + env(safe-area-inset-bottom));
  }
  .modal__title{
    font-size:18px;
  }
  .modal__close{
    width:36px;
    height:36px;
    min-width:36px;
  }
  .direct-order__foot .secondary-btn{
    padding:10px 12px;
    min-height:48px;
  }
  .direct-order__foot .primary-btn{
    min-height:48px;
  }
}
/* ==========================================================
   Ajustes cliente: card abre configuración + guarniciones tipo mesas
========================================================== */
.menu-card__body.js-config-product{
  position:relative;
  appearance:none;
  border:0;
  background:#fff;
  text-align:left;
  cursor:pointer;
  outline:none;
}
.menu-card__body.js-config-product:focus-visible{
  box-shadow:inset 0 0 0 3px rgba(217,122,30,.25);
}
.menu-card__body.js-config-product[data-disabled="1"]{
  cursor:not-allowed;
  pointer-events:none;
}
.menu-card__prices{
  grid-template-columns:minmax(0,1fr) minmax(0,1.28fr) 38px;
}
.menu-card__label{
  text-transform:none;
  letter-spacing:0;
  font-size:9px;
  line-height:1.08;
  min-height:20px;
  white-space:normal;
  color:#7c5b43;
}
.menu-card__amount{
  margin-top:2px;
  font-weight:800;
}
.menu-card__add{
  position:absolute;
  right:10px;
  bottom:10px;
  width:38px;
  height:38px;
  border-radius:999px;
  background:linear-gradient(135deg,var(--orange) 0%, #b85f14 100%);
  color:#fff;
  font-size:27px;
  line-height:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 6px 14px rgba(217,122,30,.26);
  pointer-events:none;
}
.menu-card.is-unavailable .menu-card__add{
  background:#d3c3b5;
  box-shadow:none;
}

.product-config__subtitle{
  margin-bottom:10px;
  font-weight:800;
}
.option-pill{
  min-height:58px;
  padding:10px 11px;
}
.option-pill__desc{
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:11px;
  line-height:1.15;
  font-weight:700;
}
.option-pill.is-active .option-pill__desc,
.option-pill.is-active .option-pill__price{
  color:rgba(255,255,255,.78);
}
.qty-row{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  margin:8px 0 10px;
}
.qty-row__btn{
  appearance:none;
  border:0;
  background:#f2e5d7;
  color:var(--brown-dark);
  width:42px;
  height:42px;
  border-radius:999px;
  font-size:24px;
  line-height:1;
  font-weight:900;
  display:flex;
  align-items:center;
  justify-content:center;
}
.qty-row__btn:disabled{
  opacity:.45;
}
.qty-row strong{
  min-width:44px;
  text-align:center;
  font-size:22px;
  font-weight:900;
  color:var(--brown-dark);
}
#productModalSubmit{
  background:linear-gradient(135deg,var(--green) 0%, var(--green-dark) 100%);
  box-shadow:0 8px 18px rgba(32,163,91,.22);
}
.guarniciones-wrap{
  display:grid;
  gap:10px;
  margin-top:8px;
}
.guarniciones-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:0;
}
.guarniciones-header strong{
  color:var(--brown-dark);
  font-size:15px;
  font-weight:900;
}
.guarniciones-counter{
  background:#fff7ed;
  color:var(--orange);
  border:1px solid #fed7aa;
  border-radius:999px;
  padding:6px 10px;
  font-size:12px;
  line-height:1;
  font-weight:900;
  white-space:nowrap;
}
.guarniciones-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.guarnicion-card{
  position:relative;
  overflow:hidden;
  border:1px solid var(--line);
  background:#fff;
  color:var(--brown-dark);
  border-radius:16px;
  padding:8px;
  display:grid;
  grid-template-columns:56px minmax(0,1fr);
  align-items:center;
  gap:8px;
  text-align:left;
  min-height:74px;
  box-shadow:0 8px 18px rgba(92,53,24,.08);
}
.guarnicion-card:active{transform:scale(.985)}
.guarnicion-card.is-selected{
  border-color:var(--green);
  background:#ecfdf5;
  box-shadow:0 10px 20px rgba(22,163,74,.14);
}
.guarnicion-card.is-agotada{
  background:#f1f5f9;
  color:#64748b;
  border-color:#cbd5e1;
}
.guarnicion-card.is-blocked:not(.is-selected){opacity:.72}
.guarnicion-photo{
  width:56px;
  height:56px;
  border-radius:13px;
  overflow:hidden;
  background:#fff7ed;
  border:1px solid rgba(124,74,29,.12);
}
.guarnicion-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.guarnicion-name{
  display:block;
  padding-right:22px;
  font-size:12px;
  line-height:1.08;
  font-weight:900;
}
.guarnicion-status{
  display:inline-flex;
  margin-top:5px;
  border-radius:999px;
  background:#e2e8f0;
  color:#475569;
  padding:4px 7px;
  font-size:9px;
  line-height:1;
  font-weight:900;
}
.guarnicion-card.is-selected .guarnicion-status{
  background:#bbf7d0;
  color:#166534;
}
.guarnicion-check{
  position:absolute;
  top:7px;
  right:7px;
  width:23px;
  height:23px;
  border-radius:999px;
  background:#e2e8f0;
  color:#64748b;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:13px;
  line-height:1;
  font-weight:900;
}
.guarnicion-card.is-selected .guarnicion-check{
  background:var(--green);
  color:#fff;
}
.guarnicion-card.is-complete .guarnicion-check{
  background:#15803d;
  color:#fff;
  font-size:11px;
}
.helper-note{
  min-height:0;
  margin-top:8px;
  font-weight:800;
  color:#b45309;
}

@media (max-width:480px){
  .menu-card__prices{
    grid-template-columns:minmax(0,1fr) minmax(0,1.26fr) 34px;
    gap:5px;
  }
  .menu-card__label{
    font-size:8.5px;
    min-height:19px;
  }
  .menu-card__add{
    right:9px;
    bottom:9px;
    width:34px;
    height:34px;
    font-size:23px;
  }
  .option-pills{
    gap:8px;
    margin-bottom:8px;
  }
  .option-pill{
    padding:9px 10px;
    min-height:56px;
    border-radius:14px;
  }
  .option-pill__name{font-size:13px}
  .option-pill__desc{font-size:10px}
  .option-pill__price{font-size:12px}
  .qty-row{
    margin:6px 0 8px;
  }
  .qty-row__btn{
    width:38px;
    height:38px;
    font-size:22px;
  }
  .qty-row strong{
    font-size:20px;
  }
  .guarniciones-grid{
    gap:8px;
  }
  .guarnicion-card{
    grid-template-columns:48px minmax(0,1fr);
    min-height:66px;
    padding:7px;
    gap:7px;
    border-radius:14px;
  }
  .guarnicion-photo{
    width:48px;
    height:48px;
    border-radius:12px;
  }
  .guarnicion-name{font-size:11px}
  .guarnicion-status{font-size:8.5px;padding:3px 6px}
  .guarnicion-check{width:22px;height:22px;font-size:12px}
  .guarniciones-header strong{font-size:14px}
  .guarniciones-counter{font-size:11px;padding:5px 8px}
}

/* Acceso visible a versión ligera para clientes con internet lento */
.lite-access{
  display:flex;
  justify-content:center;
  margin:10px auto 16px;
  padding:0 14px;
}
.lite-access__link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  max-width:520px;
  width:100%;
  padding:11px 14px;
  border:1px solid rgba(146, 64, 14, .18);
  border-radius:999px;
  background:#fff7ed;
  color:#7c2d12;
  font-weight:900;
  font-size:13px;
  text-decoration:none;
  box-shadow:0 8px 18px rgba(146,64,14,.08);
}
.lite-access__link:active{
  transform:scale(.99);
}


/* Modal de carga lenta: ofrece versión lite sin guardar preferencia */
.slow-lite-modal{z-index:130}
.slow-lite-modal__dialog{width:min(430px, calc(100% - 26px))}
.slow-lite-modal__head{border-bottom:0;padding-bottom:6px}
.slow-lite-modal__body{text-align:center;padding-top:8px}
.slow-lite-modal__icon{
  width:54px;
  height:54px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto 10px;
  background:#fff7ed;
  color:#9a3412;
  font-size:28px;
  box-shadow:0 10px 22px rgba(146,64,14,.12);
}
.slow-lite-modal__lead{
  margin:0 0 7px;
  color:var(--brown-dark);
  font-size:19px;
  line-height:1.25;
  font-weight:1000;
}
.slow-lite-modal__text{
  margin:0;
  color:#6b5a48;
  font-size:14px;
  line-height:1.45;
}
.slow-lite-modal__status{
  display:block;
  margin-top:10px;
  color:#8a6a4a;
  font-size:12px;
  line-height:1.35;
}
.slow-lite-modal__foot{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
}
.slow-lite-modal__primary{
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  text-decoration:none;
  min-height:54px;
}
.slow-lite-modal__secondary{
  width:100%;
  margin-top:0;
  border-radius:12px;
  min-height:46px;
}
