/* ============================================================
   FOOD HOUSE index2.css — Rediseño tipo Rappi/DiDi
   Mobile-first · 430px centrado · v3
   ============================================================ */
:root{
  --red:#e31e24;--red-d:#c01018;--yellow:#f5a623;
  --bg:#f5f5f5;--card:#fff;--text:#1a1a1a;--muted:#888;
  --border:#ebebeb;--radius:16px;--app-w:430px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
body{
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  background:#d0d0d0;color:var(--text);min-height:100vh;
  -webkit-font-smoothing:antialiased;
}
.app-shell{
  max-width:var(--app-w);margin:0 auto;background:var(--bg);
  min-height:100vh;position:relative;
  box-shadow:0 0 40px rgba(0,0,0,.2);
  overflow-x:hidden;
}

/* ══ PORTADA ════════════════════════════════════════════════ */
.fh-portada{
  width:100%;height:200px;
  background:linear-gradient(135deg,#e31e24 0%,#a01016 100%);
  position:relative;overflow:hidden;
}
.fh-portada-inner{
  position:absolute;inset:0;
  display:flex;flex-wrap:wrap;align-content:center;
  gap:2px;padding:8px;opacity:.18;
  font-size:26px;line-height:1.6;
}

/* ══ TARJETA RESTAURANTE ════════════════════════════════════ */
.fh-restaurant-card{
  background:#fff;margin:-32px 14px 0;
  border-radius:20px;padding:14px 16px 12px;
  box-shadow:0 6px 24px rgba(0,0,0,.1);
  display:flex;align-items:center;gap:12px;
  position:relative;z-index:10;
}
.fh-rest-logo{
  width:56px;height:56px;border-radius:12px;
  object-fit:contain;background:#fff;
  border:1.5px solid #efefef;flex-shrink:0;padding:3px;
}
.fh-rest-info{flex:1;min-width:0;}
.fh-rest-name{font-size:20px;font-weight:800;color:var(--text);line-height:1.2;}
.fh-rest-sub{font-size:13px;color:var(--muted);margin-top:4px;}
.fh-rest-meta{display:flex;gap:7px;margin-top:8px;flex-wrap:nowrap;align-items:center;}
.fh-rest-meta span{font-size:11px;font-weight:600;color:#444;background:#f5f5f5;padding:4px 10px;border-radius:50px;border:1px solid #e8e8e8;display:flex;align-items:center;gap:3px;white-space:nowrap;flex-shrink:0;}
.fh-cart-btn{
  position:relative;width:44px;height:44px;
  background:var(--red);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;color:#fff;font-size:20px;
  flex-shrink:0;border:none;
  box-shadow:0 3px 12px rgba(227,30,36,.35);
}
.fh-badge{
  position:absolute;top:-4px;right:-4px;
  background:var(--yellow);color:#fff;border-radius:50%;
  width:19px;height:19px;font-size:10px;font-weight:800;
  display:flex;align-items:center;justify-content:center;
}

/* ══ CATEGORÍAS GRID (estilo referencia) ═══════════════════ */
.cat-section-header{
  padding:20px 14px 10px;
  display:flex;align-items:center;gap:8px;
}
.cat-section-header h2{
  font-size:18px;font-weight:800;color:var(--text);
}
.cat-grid-wrapper{
  padding:0 14px 14px;
  overflow-x:auto;
  scrollbar-width:none;
}
.cat-grid-wrapper::-webkit-scrollbar{display:none;}
.cat-grid{
  display:grid;
  grid-template-columns:repeat(5,72px);
  gap:10px;
  width:max-content;
}
.cat-grid-item{
  display:flex;flex-direction:column;align-items:center;
  cursor:pointer;
  width:72px;
}
.cat-grid-icon{
  width:64px;height:64px;border-radius:16px;
  background:#f5f5f5;
  display:flex;align-items:center;justify-content:center;
  font-size:32px;
  border:2px solid transparent;
  transition:all .2s;
  margin-bottom:6px;
}
.cat-grid-item.active .cat-grid-icon{
  border-color:var(--red);background:#fff5f5;
}
.cat-grid-name{
  font-size:10px;font-weight:700;color:var(--muted);
  text-align:center;line-height:1.2;
}
.cat-grid-item.active .cat-grid-name{color:var(--red);}

/* ══ CUERPO DEL MENÚ ════════════════════════════════════════ */
.menu-body{padding:0 0 140px;}

/* ══ SECCIÓN POR CATEGORÍA ══════════════════════════════════ */
.cat-section{margin-bottom:8px;padding:16px 14px 0;}
.cat-title-row{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:14px;
}
.cat-title-row h3{
  font-size:17px;font-weight:800;color:var(--text);
  display:flex;align-items:center;gap:6px;
}
.cat-title-row h3.premium{color:#b45309;}
.cat-ver-todos{
  font-size:13px;font-weight:600;color:var(--red);
  background:none;border:none;cursor:pointer;
  display:flex;align-items:center;gap:2px;
}

/* ══ GRID 2 COLUMNAS ════════════════════════════════════════ */
.prod-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:12px;
}

/* ══ TARJETA DE PRODUCTO ════════════════════════════════════ */
.prod-card{
  background:#fff;border-radius:var(--radius);
  overflow:hidden;
  box-shadow:0 2px 12px rgba(0,0,0,.07);
  cursor:pointer;
  transition:transform .15s;
  position:relative;
  display:flex;flex-direction:column;
  border:1.5px solid transparent;
}
.prod-card:active{transform:scale(.97);}
.prod-card.premium{border-color:#d97706;}

/* Imagen / placeholder grande */
.prod-img{
  width:100%;height:130px;
  display:flex;align-items:center;justify-content:center;
  font-size:60px;
  background:linear-gradient(145deg,#fde8d5,#ffcba4);
  flex-shrink:0;position:relative;
}
.prod-card.premium .prod-img{
  background:linear-gradient(145deg,#fef3c7,#fde68a);
}

/* Badge cantidad (esquina superior derecha) */
.prod-qty-badge{
  position:absolute;top:8px;right:8px;
  background:rgba(255,255,255,.92);
  border-radius:8px;
  width:28px;height:28px;
  display:none;
  align-items:center;justify-content:center;
  font-size:12px;font-weight:700;color:var(--text);
  box-shadow:0 1px 4px rgba(0,0,0,.1);
}
.prod-qty-badge.visible{display:flex;}

/* Badge premium */
.prem-star{
  position:absolute;top:8px;left:8px;z-index:2;
  background:#d97706;color:#fff;
  font-size:9px;font-weight:800;
  padding:3px 8px;border-radius:50px;
}

/* Cuerpo de la tarjeta */
.prod-body{
  padding:10px 12px 12px;
  display:flex;flex-direction:column;flex:1;
}
.prod-name{
  font-size:13px;font-weight:700;
  color:var(--text);line-height:1.3;margin-bottom:4px;
}
.prod-desc{
  font-size:11px;color:var(--muted);line-height:1.4;
  flex:1;
  display:-webkit-box;-webkit-line-clamp:2;
  -webkit-box-orient:vertical;overflow:hidden;
  margin-bottom:10px;
}
.prod-foot{
  display:flex;align-items:center;
  justify-content:space-between;gap:6px;
  margin-top:auto;
}
.prod-price{
  font-size:16px;font-weight:800;color:var(--red);
  line-height:1;
}
.prod-card.premium .prod-price{color:#b45309;}

/* Botón "+ Agregar" tipo píldora */
.prod-add{
  background:var(--red);color:#fff;border:none;
  border-radius:50px;
  padding:7px 12px;
  font-size:12px;font-weight:700;
  cursor:pointer;
  white-space:nowrap;
  display:flex;align-items:center;gap:4px;
  box-shadow:0 2px 8px rgba(227,30,36,.3);
  transition:transform .1s;
  flex-shrink:0;
}
.prod-add:active{transform:scale(.94);}
.prod-card.premium .prod-add{background:#d97706;}

/* ══ SALCHIPAPAS ════════════════════════════════════════════ */
.salchi{
  background:#fff;border-radius:var(--radius);
  padding:14px;
  box-shadow:0 2px 8px rgba(0,0,0,.06);
  margin-bottom:10px;
  display:flex;align-items:center;gap:12px;
  cursor:pointer;border:1.5px solid transparent;
  transition:border-color .15s;
}
.salchi:active{border-color:var(--red);}
.salchi-ic{
  width:52px;height:52px;border-radius:14px;
  background:linear-gradient(135deg,#fde8d5,#ffcba4);
  display:flex;align-items:center;justify-content:center;
  font-size:28px;flex-shrink:0;
}
.salchi-inf{flex:1;min-width:0;}
.salchi-nm{font-size:14px;font-weight:700;}
.salchi-ds{font-size:11px;color:var(--muted);margin-top:2px;}
.salchi-ps{display:flex;gap:6px;margin-top:7px;flex-wrap:wrap;}
.salchi-pill{
  background:#fff0f0;color:var(--red);
  font-size:10px;font-weight:700;
  padding:3px 8px;border-radius:50px;
}

/* ══ CARRITO BAR ════════════════════════════════════════════ */
.cart-bar{
  position:fixed;bottom:16px;
  left:50%;transform:translateX(-50%);
  width:calc(100% - 28px);
  max-width:calc(var(--app-w) - 28px);
  z-index:200;
  background:var(--red);color:#fff;
  padding:14px 20px;
  border-radius:60px;
  box-shadow:0 6px 24px rgba(227,30,36,.45);
}
.cart-bar-in{
  display:flex;align-items:center;gap:12px;cursor:pointer;
}
.cb-bag{
  width:36px;height:36px;
  background:rgba(255,255,255,.2);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:17px;flex-shrink:0;position:relative;
}
.cb-num{
  position:absolute;top:-5px;right:-5px;
  background:#fff;color:var(--red);
  border-radius:50%;width:18px;height:18px;
  font-size:10px;font-weight:800;
  display:flex;align-items:center;justify-content:center;
}
.cb-label{flex:1;font-size:15px;font-weight:800;text-align:center;}
.cb-total{font-size:16px;font-weight:800;flex-shrink:0;}

/* ══ DRAWER CARRITO ═════════════════════════════════════════ */
.drawer{position:fixed;inset:0;z-index:300;display:flex;flex-direction:column;justify-content:flex-end;}
.drawer-bg{position:absolute;inset:0;background:rgba(0,0,0,.5);backdrop-filter:blur(3px);}
.drawer-sheet{
  position:relative;background:#fff;
  border-radius:22px 22px 0 0;
  max-height:86vh;display:flex;flex-direction:column;
  overflow:hidden;max-width:var(--app-w);width:100%;margin:0 auto;
}
.drawer-handle{width:36px;height:4px;background:#e5e7eb;border-radius:2px;margin:12px auto 0;}
.drawer-hdr{padding:14px 18px;font-size:17px;font-weight:800;border-bottom:1px solid #f0f0f0;}
.drawer-items{overflow-y:auto;flex:1;padding:10px 14px;}
.c-item{display:flex;align-items:flex-start;gap:10px;padding:11px 0;border-bottom:1px solid #f5f5f5;}
.c-ic{width:42px;height:42px;border-radius:10px;background:#fce8d5;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;}
.c-inf{flex:1;min-width:0;}
.c-nm{font-size:13px;font-weight:700;}
.c-mods{font-size:11px;color:var(--muted);margin-top:2px;line-height:1.5;}
.c-pr{font-size:13px;font-weight:700;color:var(--red);margin-top:3px;}
.c-qty{display:flex;align-items:center;gap:7px;flex-shrink:0;}
.qty-btn{width:26px;height:26px;border-radius:50%;border:2px solid var(--border);background:#fff;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text);font-weight:700;}
.drawer-foot{padding:14px 18px;border-top:1px solid #f0f0f0;background:#fff;}
.d-sub{display:flex;justify-content:space-between;font-size:14px;margin-bottom:10px;color:var(--muted);}
.d-sub strong{color:var(--text);}
.btn-co{width:100%;padding:15px;background:var(--red);color:#fff;border:none;border-radius:50px;font-size:15px;font-weight:800;cursor:pointer;}

/* ══ CHECKOUT ════════════════════════════════════════════════ */
.co-wrap{padding:14px 14px 120px;max-width:var(--app-w);margin:0 auto;}
.co-sec{background:#fff;border-radius:var(--radius);padding:16px;margin-bottom:12px;box-shadow:0 2px 8px rgba(0,0,0,.05);}
.co-sec h3{font-size:14px;font-weight:800;margin-bottom:12px;}
.opt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.opt-btn{padding:12px 6px;border:2px solid var(--border);border-radius:12px;text-align:center;cursor:pointer;font-size:12px;font-weight:700;color:var(--muted);background:#fff;transition:all .15s;}
.opt-btn.active{background:var(--red);color:#fff;border-color:var(--red);}
.mesa-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-top:8px;}
.mesa-btn{padding:12px 4px;border:2px solid var(--border);border-radius:11px;text-align:center;cursor:pointer;font-size:15px;font-weight:800;color:var(--muted);background:#fff;transition:all .15s;}
.mesa-btn.active{border-color:var(--red);background:var(--red);color:#fff;}
.prop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;}
.prop-btn{padding:10px;border:2px solid var(--border);border-radius:10px;text-align:center;cursor:pointer;font-size:12px;font-weight:700;color:var(--muted);background:#fff;transition:all .15s;}
.prop-btn.active{border-color:#10b981;background:#10b981;color:#fff;}
.campo{width:100%;padding:13px;border:2px solid var(--border);border-radius:11px;font-size:14px;color:var(--text);background:#fff;transition:border-color .2s;margin-bottom:9px;}
.campo:focus{outline:none;border-color:var(--red);}
.campo::placeholder{color:#c0c0c0;}
.co-total{background:var(--red);color:#fff;border-radius:var(--radius);padding:18px;}
.co-total .row{display:flex;justify-content:space-between;font-size:13px;margin-bottom:7px;opacity:.85;}
.co-total .trow{display:flex;justify-content:space-between;font-size:19px;font-weight:800;margin-top:10px;border-top:1px solid rgba(255,255,255,.25);padding-top:10px;}
.btn-confirm{width:100%;padding:16px;background:#fff;color:var(--red);border:none;border-radius:50px;font-size:16px;font-weight:800;cursor:pointer;margin-top:12px;}

/* ══ PEDIDO ENVIADO ══════════════════════════════════════════ */
.pe-wrap{padding:48px 20px;text-align:center;max-width:var(--app-w);margin:0 auto;}
.pe-check{width:76px;height:76px;background:#dcfce7;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:38px;margin:0 auto 18px;}
.btn-nuevo{display:inline-block;margin-top:22px;padding:14px 32px;background:var(--red);color:#fff;border-radius:50px;font-size:15px;font-weight:700;text-decoration:none;}

/* ══ MODAL PRODUCTO — estilo DiDi ══════════════════════════ */
.modal-ov{position:fixed;inset:0;z-index:400;display:flex;align-items:flex-end;justify-content:center;}
.modal-bg{position:absolute;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(3px);}
.modal-sheet{
  position:relative;background:#fff;
  border-radius:22px 22px 0 0;
  max-height:92vh;
  display:flex;flex-direction:column;
  width:100%;max-width:var(--app-w);
  overflow:hidden;
}
/* Hero imagen */
.m-hero{
  width:100%;height:200px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(145deg,#fde8d5,#ffcba4);
  position:relative;overflow:hidden;
}
.m-hero img{width:100%;height:100%;object-fit:cover;}
.m-hero-emoji{font-size:80px;}
.m-close-btn{
  position:absolute;top:12px;left:12px;z-index:10;
  width:32px;height:32px;border-radius:50%;
  background:rgba(255,255,255,.92);border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  font-size:15px;box-shadow:0 2px 8px rgba(0,0,0,.15);
  font-weight:700;
}
/* Contenido scrollable */
.modal-scroll{overflow-y:auto;flex:1;padding:16px 18px 4px;}
.m-title{font-size:20px;font-weight:800;color:var(--text);margin-bottom:6px;line-height:1.2;}
.m-desc{font-size:13px;color:var(--muted);line-height:1.5;margin-bottom:8px;}
.m-price{font-size:22px;font-weight:800;color:var(--red);margin-bottom:12px;}
/* Sección colapsable */
.m-section{border:1.5px solid #f0f0f0;border-radius:14px;margin-bottom:10px;overflow:hidden;}
.m-section-hdr{
  display:flex;align-items:center;justify-content:space-between;
  padding:13px 16px;cursor:pointer;background:#fafafa;
  user-select:none;
}
.m-section-title{font-size:14px;font-weight:800;color:var(--text);}
.m-section-sub{font-size:11px;color:var(--muted);margin-top:2px;}
.m-section-arrow{font-size:18px;color:var(--muted);transition:transform .2s;flex-shrink:0;}
.m-section-arrow.open{transform:rotate(180deg);}
.m-section-body{padding:0 16px 4px;display:none;}
.m-section-body.open{display:block;}
/* Opción con checkbox */
.m-option{
  display:flex;align-items:center;gap:12px;
  padding:12px 0;border-bottom:1px solid #f5f5f5;
  cursor:pointer;
}
.m-option:last-child{border-bottom:none;}
.m-option-name{font-size:14px;font-weight:500;color:var(--text);flex:1;}
.m-option-price{font-size:13px;font-weight:600;color:#555;flex-shrink:0;margin-right:8px;}
.m-checkbox{
  width:22px;height:22px;border-radius:6px;
  border:2px solid #d1d5db;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  transition:all .15s;background:#fff;font-size:13px;
}
.m-option.sel .m-checkbox,.m-option.sel-sal .m-checkbox{
  background:var(--red);border-color:var(--red);color:#fff;
}
.m-option.sel-sal .m-checkbox{background:#f59e0b;border-color:#f59e0b;}
/* Tamaños */
.tam-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:10px 0 4px;}
.tam-btn{
  padding:11px 6px;border:2px solid var(--border);border-radius:12px;
  text-align:center;cursor:pointer;font-size:12px;font-weight:700;
  color:var(--muted);background:#fff;transition:all .15s;
}
.tam-btn.active{border-color:var(--red);background:var(--red);color:#fff;}
/* Toggle combo */
.combo-toggle{
  display:flex;align-items:center;gap:12px;
  padding:12px 0;cursor:pointer;
}
.combo-ic{width:44px;height:44px;border-radius:10px;background:#fce8d5;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;}
.combo-inf{flex:1;}
.combo-inf strong{font-size:14px;font-weight:700;display:block;color:var(--text);}
.combo-inf span{font-size:12px;color:var(--muted);}
.combo-toggle .m-checkbox{border-color:#f59e0b;}
.combo-toggle.active .m-checkbox{background:#f59e0b;border-color:#f59e0b;}
.obs-field{width:100%;padding:12px;border:2px solid var(--border);border-radius:11px;font-size:13px;resize:none;}
.obs-field:focus{outline:none;border-color:var(--red);}
/* Barra inferior fija */
.m-footer{
  padding:12px 18px 16px;background:#fff;
  border-top:1px solid #f0f0f0;flex-shrink:0;
  display:flex;align-items:center;gap:12px;
}
.m-qty{
  display:flex;align-items:center;
  background:#f5f5f5;border-radius:50px;
  padding:4px;flex-shrink:0;
}
.m-qty-btn{
  width:34px;height:34px;border-radius:50%;border:none;
  background:#fff;font-size:20px;font-weight:700;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 1px 4px rgba(0,0,0,.1);color:var(--text);
  transition:transform .1s;
}
.m-qty-btn:active{transform:scale(.88);}
.m-qty-num{font-size:16px;font-weight:800;padding:0 12px;color:var(--text);}
.m-footer-btn{
  flex:1;padding:14px 16px;
  background:var(--red);color:#fff;
  border:none;border-radius:50px;
  display:flex;align-items:center;justify-content:space-between;
  cursor:pointer;font-weight:800;font-size:14px;
}
.m-footer-btn.gold{background:linear-gradient(135deg,#d97706,#b45309);}
.m-footer-btn .m-btn-label{font-size:14px;font-weight:800;}
.m-footer-btn .m-btn-price{font-size:15px;font-weight:800;}
/* ══ HORARIO MODAL ════════════════════════════════════════════ */
.hor-ov{position:fixed;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(0,0,0,.65);backdrop-filter:blur(5px);}
.hor-card{background:#fff;border-radius:22px;padding:34px 26px 26px;max-width:340px;width:100%;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.3);}
.hor-ic{font-size:50px;margin-bottom:10px;}
.hor-tt{font-size:18px;font-weight:800;margin-bottom:10px;}
.hor-tx{font-size:13px;color:var(--muted);line-height:1.65;margin-bottom:22px;}
.btn-ok{padding:13px 36px;background:var(--red);color:#fff;border:none;border-radius:50px;font-size:14px;font-weight:700;cursor:pointer;}

/* ══ NOTIF TOAST ══════════════════════════════════════════════ */
.notif{position:fixed;top:14px;left:50%;transform:translateX(-50%);z-index:600;background:#1a1a1a;color:#fff;padding:11px 20px;border-radius:50px;font-size:13px;font-weight:600;white-space:nowrap;pointer-events:none;animation:nIn .3s ease;}
@keyframes nIn{from{opacity:0;transform:translateX(-50%) translateY(-10px);}to{opacity:1;transform:translateX(-50%) translateY(0);}}

.fh-banner{display:flex;align-items:center;gap:6px;padding:7px 14px;font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;border-bottom:1px solid rgba(0,0,0,.04);}
.fh-banner.abierto{background:#f0fdf4;color:#15803d;}
.fh-banner.cerrado{background:#fef2f2;color:#991b1b;}
.fh-banner.fuera{background:#fffbeb;color:#92400e;}