/* Catálogo de la ficha; los estilos quedan limitados a este módulo. */
.catalogo-comercio { margin-top: 2rem; }
.catalogo-comercio[hidden], .catalogo-comercio [hidden], .catalogo-form [hidden] { display: none !important; }
.catalogo-localidad { gap: .75rem; flex-wrap: wrap; }
.catalogo-localidad label { color: var(--text-secondary); font-size: 14px; }
.catalogo-localidad select { min-height: 44px; max-width: 100%; }
.catalogo-seccion { padding: 1rem; border-radius: 4px 24px 24px 24px; border-top: 4px solid var(--accent); }
.catalogo-promociones { border-top-color: var(--sun); }
.catalogo-head { align-items: flex-start; flex-wrap: wrap; gap: 1rem; }
.catalogo-head .label { color: var(--text-secondary); }
.catalogo-head h2 { margin: .4rem 0 0; display: flex; gap: .5rem; align-items: center; font-size: 23px; }
.catalogo-head h2 .lucide { width: 23px; height: 23px; color: var(--accent); flex-shrink: 0; }
.catalogo-grid { grid-template-columns: minmax(0, 1fr); gap: 1rem; margin-bottom: 0; }
.catalogo-grid .skeleton { height: 280px; }
.catalogo-card { min-width: 0; }
.catalogo-abrir { display: flex; flex-direction: column; width: 100%; padding: 0; flex: 1; border: 0; border-radius: inherit; background: transparent; color: var(--text-primary); font: inherit; text-align: left; cursor: pointer; min-height: 44px; }
.catalogo-abrir:focus-visible { outline: 3px solid var(--accent); outline-offset: -3px; }
.catalogo-abrir .media { display: block; width: 100%; height: 180px; }
.catalogo-card .body { padding: 1rem; width: 100%; box-sizing: border-box; }
.catalogo-nombre { display: block; font-size: 18px; line-height: 1.35; overflow-wrap: anywhere; }
.catalogo-precio { display: block; font-weight: 700; color: var(--accent); margin: .4rem 0; font-size: 18px; }
.catalogo-desc { color: var(--text-secondary); font-size: 14px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; white-space: pre-line; overflow-wrap: anywhere; }
.catalogo-ver { display: flex; align-items: center; gap: .35rem; color: var(--text-secondary); font-size: 13px; margin-top: auto; padding-top: .8rem; }
.catalogo-ver .lucide { width: 16px; height: 16px; color: var(--lake); }
.catalogo-acciones { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .5rem; padding: .25rem 1rem; border-top: 1px solid var(--border); }
.catalogo-acciones .link-btn, .catalogo-form .link-btn { min-height: 44px; display: inline-flex; gap: .4rem; align-items: center; }
.catalogo-acciones .lucide { width: 16px; height: 16px; }
.catalogo-oferta .badge { align-self: flex-start; margin-bottom: .6rem; }
.catalogo-seccion .cargar-mas { margin: 1rem 0 0; }
.catalogo-seccion .empty-state { padding: 1.5rem .5rem; }
.catalogo-seccion .empty-state > .lucide { width: 36px; height: 36px; color: var(--accent); }
.catalogo-seccion .empty-state p { margin: .75rem 0; }
.catalogo-detalle img, .catalogo-preview { display: block; width: 100%; height: auto; object-fit: cover; border-radius: 4px 20px 20px 20px; background: var(--bg-secondary); }
.catalogo-preview { max-width: 280px; margin-bottom: .75rem; }
.catalogo-detalle .catalogo-texto { white-space: pre-wrap; overflow-wrap: anywhere; color: var(--text-secondary); }
.catalogo-baja { background: var(--danger); color: #fff; }
.catalogo-form input, .catalogo-form button { min-height: 44px; }
.catalogo-form input[type="file"] { max-width: 100%; font-size: 14px; }
.catalogo-form [data-cat-upload] { display: block; color: var(--text-secondary); font-size: 14px; }
@media (min-width: 540px) { .catalogo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 960px) {
  .catalogo-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .catalogo-seccion { padding: 1.5rem; }
}
@media (prefers-reduced-motion: reduce) {
  .catalogo-card, .catalogo-card .media img { transition: none; }
  .catalogo-card:hover, .catalogo-card:hover .media img { transform: none; }
  .catalogo-grid .skeleton { animation: none; }
}
