/* ── Category accordion ── */
.ds-stack { display: flex; flex-direction: column; gap: 14px; margin-bottom: 48px; }

.cat-accordion {
  background: #ffffff;
  border-radius: 12px; overflow: hidden; box-shadow: var(--shadow);
}
.cat-header {
  display: flex; align-items: center; cursor: pointer;
  user-select: none; border: none; width: 100%; background: transparent;
  text-align: left;
}
.cat-header-inner {
  background: #ffffff;
  display: flex; align-items: center; gap: 0; width: 100%; padding: 0;
  transition: filter .2s ease;
}
.cat-header:hover .cat-header-inner { filter: brightness(0.96); }
.cat-icon {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  width: 54px; min-height: 58px; flex-shrink: 0;
  border-radius: 8px; margin-left: 8px; opacity: 0.85;
}
.cat-icon svg {
  display: block;
  overflow: visible;
}
.cat-title-area { flex: 1; padding: 12px 16px; }
.cat-name {
  font-family: -apple-system, sans-serif; font-size: 16px;
  font-weight: 700; line-height: 1.2;
}
.cat-tagline {
  font-family: -apple-system, sans-serif; font-size: 11px; margin-top: 3px; opacity: .7;
}
.cat-tool-count {
  font-family: -apple-system, sans-serif; font-size: 10px; font-weight: 700;
  letter-spacing: .06em; text-transform: uppercase;
  padding: 3px 9px; border-radius: 20px; margin-top: 4px; display: inline-block;
}
.cat-chevron {
  width: 44px; display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.cat-chevron svg { transition: transform .3s cubic-bezier(.4,0,.2,1); }
.cat-accordion.open .cat-chevron svg { transform: rotate(180deg); }
.cat-body { display: none; padding: var(--accordion-body-padding); background: #ffffff; }
.cat-body .tools-grid { padding-top: var(--accordion-grid-top-padding); }
.cat-accordion.open .cat-body { display: block; }
