.cat-hero {
  background: linear-gradient(135deg, var(--t-accent, #0a9396), var(--t-accent2, #14213d));
  padding: 56px 24px; text-align: center; color: #fff;
}
.cat-hero-inner { max-width: 700px; margin: 0 auto; }
.cat-hero-title { font-size: 2.2rem; font-weight: 800; margin: 0 0 10px; }
.cat-hero-sub { font-size: 1rem; opacity: .9; margin: 0; }

.cat-layout { max-width: 1100px; margin: 0 auto; padding: 40px 24px 64px; }

.cat-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 24px; margin-bottom: 40px;
}
.cat-card {
  display: flex; flex-direction: column; text-decoration: none; color: inherit;
  background: var(--t-panel, #fff); border: 1px solid var(--t-line, #e5e7eb);
  border-radius: 16px; overflow: hidden; transition: box-shadow .18s, transform .18s;
}
.cat-card:hover { box-shadow: 0 8px 24px rgba(0,0,0,.1); transform: translateY(-3px); }
.cat-card-img {
  height: 200px; position: relative; background: linear-gradient(135deg, #f0fdfe, #e0f2fe);
  display: flex; align-items: center; justify-content: center;
}
.cat-card-img img { width: 100%; height: 100%; object-fit: cover; }
.cat-card-placeholder { font-size: 3.5rem; opacity: .5; }
.cat-card-badge {
  position: absolute; top: 12px; right: 12px; background: rgba(0,0,0,.65); color: #fff;
  font-size: .72rem; font-weight: 700; padding: 4px 10px; border-radius: 999px;
}
.cat-card-badge--proximamente { background: #f59e0b; }
.cat-card--proximamente .cat-card-img { filter: grayscale(.25); }
.cat-card-price--muted { font-size: .95rem; font-weight: 700; color: var(--t-muted); }
.cat-card-body { padding: 18px 20px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.cat-card-title { font-size: 1.2rem; font-weight: 800; margin: 0; color: var(--t-text); }
.cat-card-meta { font-size: .82rem; color: var(--t-muted); margin: 0; }
.cat-card-desc { font-size: .84rem; color: var(--t-text-dim, var(--t-muted)); margin: 4px 0 0; line-height: 1.5; }
.cat-card-footer {
  display: flex; align-items: center; justify-content: space-between;
  margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--t-line, #e5e7eb);
}
.cat-card-price { font-size: 1.3rem; font-weight: 800; color: var(--t-accent, #0a9396); }
.cat-card-price small { font-size: .7rem; font-weight: 600; color: var(--t-muted); }
.cat-card-link { font-size: .8rem; font-weight: 700; color: var(--t-accent, #0a9396); }

.cat-empty { text-align: center; padding: 60px 20px; color: var(--t-muted); }
.cat-empty-icon { font-size: 3rem; margin-bottom: 12px; }

.cat-cta { text-align: center; }
.cat-cta-btn {
  display: inline-block; background: var(--t-accent, #0a9396); color: #fff;
  font-weight: 700; padding: 14px 32px; border-radius: 10px; text-decoration: none;
}
.cat-cta-btn:hover { opacity: .9; }
