  /* === VISTAS: inicio (hero + generos) / catalogo === */
  body:not(.vista-catalogo) #catalogo{display:none;}
  body.vista-catalogo .hero, body.vista-catalogo #generos{display:none;}
  .cat-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 14px;margin-bottom:26px;}
  .cat-volver{display:inline-flex;align-items:center;gap:8px;width:100%;font-family:inherit;font-size:var(--fs-etiqueta);font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--black);background:none;border:none;padding:0 0 10px;cursor:pointer;transition:color var(--fast) var(--ease);}
  .cat-volver:hover{color:var(--gris-texto);}
  .cat-volver svg{width:16px;height:16px;transition:transform var(--fast) var(--ease);}
  .cat-volver:hover svg{transform:translateX(-3px);}
  .cat-titulo{font-family:var(--font-titulo);font-weight:800;text-transform:uppercase;color:var(--black);}
  .cat-cuenta{font-size:var(--fs-etiqueta);color:var(--muted);}
  .fav-fila{position:relative;display:flex;align-items:center;gap:24px;padding:24px;background:#fff;border:1px solid var(--border2);margin-bottom:16px;}
  .fav-fila:last-child{border-bottom:1px solid var(--border2);margin-bottom:0;}
  .fav-fila-foto{width:clamp(96px,11vw,154px);aspect-ratio:1/1;height:auto;object-fit:cover;border-radius:0;flex-shrink:0;background:var(--bg);cursor:pointer;}
  .fav-fila-info{flex:1;min-width:0;padding-right:28px;cursor:pointer;}
  .fav-badge{display:inline-block;font-size:10px;font-weight:600;letter-spacing:.1em;color:#555;background:var(--bg);padding:5px 10px;border-radius:var(--r-pill);margin-bottom:12px;}
  .fav-fila-nombre{font-weight:500;font-size:var(--fs-etiqueta);letter-spacing:.02em;text-transform:uppercase;color:var(--black);line-height:14px;overflow-wrap:anywhere;}
  .fav-fila-sub{font-size:var(--fs-etiqueta);color:var(--gris-texto);margin-top:4px;line-height:16px;}
  .fav-fila-precio{font-size:var(--fs-etiqueta);color:var(--black);margin-top:4px;line-height:16px;}
  .fav-fila-quitar{position:absolute;top:14px;right:14px;background:none;border:none;color:var(--muted);cursor:pointer;padding:6px;line-height:0;transition:color var(--fast) var(--ease);}
  .fav-fila-quitar:hover{color:var(--black);}
  .fav-fila-quitar:active{color:var(--red);}
  @media (max-width:820px){
    .fav-drawer{width:100%;min-width:0;}
    .fav-head{padding:26px 76px 0 20px;}
    .fav-cerrar{top:12px;right:16px;width:42px;height:42px;}
    .fav-body{padding:22px 20px 20px;}
    .fav-foot{padding:16px 20px calc(16px + env(safe-area-inset-bottom,0px));}
    .fav-fila{gap:16px;padding:16px;}
    .fav-fila-info{padding-right:22px;}
  }
  .fav-vacio{color:var(--muted);font-size:var(--fs-texto);padding:14px 0 6px;line-height:1.6;}
  .card-foto img{width:100%;height:100%;object-fit:cover;}
  .card-foto .sinfoto{color:var(--muted2);font-size:12px;}
  .card-foto.agotada img{filter:grayscale(45%);opacity:0.55;}
  .badge-tag{position:absolute;top:10px;left:10px;font-size:11px;font-weight:700;letter-spacing:0.02em;padding:5px 11px;border-radius:var(--r-pill);box-shadow:0 2px 8px rgba(9,9,11,0.18);}
  .badge-tag.camino{background:var(--bronze);color:#fff;font-style:italic;}
  .badge-tag.agotado{background:rgba(9,9,11,0.85);color:#fff;}
  .badge-tag.pedido{background:var(--gray);color:#fff;font-style:italic;}
  .card-info{padding:14px 16px;}
  .card-nombre{font-weight:700;font-size:14px;color:var(--black);letter-spacing:-0.01em;line-height:1.3;}
  .card-sub{font-size:12px;color:var(--muted);margin-top:2px;}
  .card-precio{font-weight:700;font-size:16px;color:var(--black);margin-top:8px;letter-spacing:-0.02em;font-variant-numeric:tabular-nums;}
  .card-precio.cotizar{font-weight:700;font-style:italic;font-size:12.5px;color:var(--red);letter-spacing:0;}
  .card-cotizar{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;background:var(--black);color:#fff;border:none;border-radius:0;padding:9px 10px;font-family:inherit;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;margin-top:8px;transition:transform var(--fast) var(--ease),box-shadow var(--fast) var(--ease);}
  .card-cotizar svg{width:13px;height:13px;flex-shrink:0;}
  .card-cotizar:active{transform:scale(0.96);}
  .card-agotado .card-nombre,.card-agotado .card-precio{color:var(--muted);}
  .empty{text-align:center;padding:70px 20px;color:var(--gris-texto);font-size:var(--fs-texto);line-height:21px;max-width:520px;margin:0 auto;}
  .empty b{display:block;font-size:var(--fs-seccion);font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:var(--black);margin-bottom:10px;}
  .empty span{display:block;font-size:26px;margin-bottom:10px;opacity:0.4;}
