/**
 * Category Navigator block — a browsable, collapsible taxonomy tree with
 * per-term counts and a "show all vs only-with-content" toggle.
 */

.bsv-catnav {
  background: var(--card, #ffffff);
  border: 1px solid var(--border, #dce3ec);
  border-radius: var(--radius, 10px);
  padding: 16px 18px;
  margin: 0 0 20px;
}

.bsv-catnav__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
.bsv-catnav__title {
  margin: 0;
  font-size: 1.15rem;
  color: var(--navy, #14263e);
}
.bsv-catnav__switch {
  font-size: 0.85rem;
  color: var(--text-soft, #52627a);
  cursor: pointer;
  user-select: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

/* Top-level branches flow into responsive columns to use the horizontal band. */
.bsv-catnav__tree {
  columns: 240px;
  column-gap: 28px;
}
.bsv-catnav__tree > .bsv-catnav__node {
  break-inside: avoid;
  margin-bottom: 2px;
}

.bsv-catnav__row {
  display: flex;
  align-items: baseline;
  gap: 0.35em;
  line-height: 1.5;
}
.bsv-catnav__link {
  color: var(--blue-dark, #114a96);
  text-decoration: none;
}
.bsv-catnav__link:hover {
  color: var(--crimson, #dc143c);
  text-decoration: underline;
}
.bsv-catnav__count {
  color: var(--text-faint, #7a889b);
  font-size: 0.85em;
}
.bsv-catnav__count::before { content: "("; }
.bsv-catnav__count::after { content: ")"; }

.bsv-catnav__children {
  margin-left: 0.9em;
  padding-left: 0.6em;
  border-left: 1px solid var(--border, #dce3ec);
}

/* Expand/collapse triangle (CSS triangle; rotates when open). */
.bsv-catnav__tgl {
  flex: 0 0 auto;
  width: 1.1em;
  height: 1.1em;
  border: 0;
  background: none;
  padding: 0;
  cursor: pointer;
  color: var(--blue-dark, #114a96);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.bsv-catnav__tgl::before {
  content: "";
  display: inline-block;
  border-style: solid;
  border-width: 0.3em 0 0.3em 0.42em;
  border-color: transparent transparent transparent currentColor;
  transition: transform 0.12s ease;
}
.bsv-catnav__node.open > .bsv-catnav__row > .bsv-catnav__tgl::before {
  transform: rotate(90deg);
}
.bsv-catnav__node:not(.has-children) > .bsv-catnav__row > .bsv-catnav__tgl {
  visibility: hidden;
}

/* ---- Default mode: only categories with content, auto-expanded ---- */
.bsv-catnav__tree:not(.show-all) .bsv-catnav__node[data-has="0"] {
  display: none;
}
.bsv-catnav__tree:not(.show-all) .bsv-catnav__children {
  display: block;
}
.bsv-catnav__tree:not(.show-all) .bsv-catnav__tgl {
  display: none;
}

/* ---- Show-all mode: full collapsible tree ---- */
.bsv-catnav__tree.show-all .bsv-catnav__children {
  display: none;
}
.bsv-catnav__tree.show-all .bsv-catnav__node.open > .bsv-catnav__children {
  display: block;
}
