.crumb-row { display: flex; align-items: center; gap: 8px; font-size: 0.78rem; color: var(--ink-soft); padding: 18px 32px 0; }
.crumb-row a:hover { color: var(--accent-deep); }
.crumb-row .current { color: var(--ink); font-weight: 600; }

.cat-hero { background: var(--bg-soft); margin-top: 14px; padding: 40px 0; }
.cat-hero-inner h1 { font-size: 2.1rem; margin: 8px 0 10px; }
.cat-hero-inner p { color: var(--ink-soft); font-size: 0.92rem; max-width: 560px; }

.quicklinks { display: flex; flex-wrap: wrap; gap: 10px; padding: 18px 32px 0; }
.quicklink-chip {
  display: inline-flex; align-items: center; padding: 8px 18px; border-radius: var(--radius-pill);
  border: 1px solid var(--line); font-size: 0.82rem; font-weight: 600; color: var(--ink);
  transition: border-color .15s, color .15s;
}
.quicklink-chip:hover { border-color: var(--accent-deep); color: var(--accent-deep); }

.cat-layout { display: grid; grid-template-columns: 240px 1fr; gap: 40px; align-items: start; }
/* con búsqueda (?q=) el aside se oculta con [hidden] -- deja de contar
   para el auto-placement del grid y .cat-results cae en la primera
   columna (240px) en vez de la segunda, achicando toda la grilla de
   productos. Colapsar a una sola columna cuando no hay aside. */
.cat-layout.no-aside { grid-template-columns: 1fr; }

.filters {
  position: sticky; top: 90px; display: flex; flex-direction: column; gap: 26px;
  max-height: calc(100vh - 110px); overflow-y: auto; padding-right: 4px;
}
.filter-block h4 { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 12px; }
.filter-check {
  display: flex; align-items: center; gap: 9px; font-size: 0.86rem; padding: 6px 0; cursor: pointer; color: var(--ink);
}
.filter-check input { accent-color: var(--accent); width: 16px; height: 16px; }
.filter-check span { color: var(--ink-soft); font-size: 0.78rem; margin-left: auto; }
.btn-block { width: 100%; }

.results-bar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 22px; }
.results-count { font-size: 0.86rem; color: var(--ink-soft); }
.sort-select {
  border: 1.5px solid var(--line); border-radius: var(--radius-pill); padding: 9px 16px; font: inherit;
  font-size: 0.82rem; background: #fff; color: var(--ink);
}

.grid-5 { grid-template-columns: repeat(4, 1fr); }

.pagination { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 40px; }
.page-btn {
  width: 36px; height: 36px; border-radius: 50%; border: 1.5px solid var(--line); background: #fff;
  font: inherit; font-weight: 600; font-size: 0.82rem; cursor: pointer; color: var(--ink);
}
.page-btn.active { background: var(--dark); color: #fff; border-color: var(--dark); }
.page-btn:disabled { opacity: 0.35; cursor: default; }
.page-dots { color: var(--ink-soft); padding: 0 2px; }

@media (max-width: 980px) {
  .cat-layout { grid-template-columns: 1fr; }
  .filters { position: static; max-height: none; overflow-y: visible; }
  .grid-5 { grid-template-columns: repeat(2, 1fr); }
}
