.taxonomy-hero {
  padding-block: clamp(2.5rem, 5vw, 4rem);
  text-align: center;
  border-bottom: 1px solid var(--color-border);
  margin-bottom: var(--sp-8);
}

.taxonomy-hero h1 {
  margin: 0 0 var(--sp-3);
}

.taxonomy-hero p {
  max-width: 640px;
  margin: 0 auto;
  color: var(--color-ink-muted);
}

.taxonomy-count {
  display: inline-block;
  padding: var(--sp-1) var(--sp-3);
  background: var(--color-primary-100);
  color: var(--color-primary-700);
  border-radius: var(--r-pill);
  font-size: var(--fs-14);
  font-weight: var(--fw-semibold);
  margin-bottom: var(--sp-4);
}

.taxonomy-layout {
  display: grid;
  gap: var(--sp-6);
  grid-template-columns: 1fr;
  align-items: start;
}

@media (min-width: 1024px) {
  .taxonomy-layout { grid-template-columns: 240px 1fr; gap: var(--sp-8); }
}

.taxonomy-sidebar {
  position: sticky;
  top: calc(var(--header-h) + var(--sp-4));
  display: flex;
  flex-direction: column;
  gap: var(--sp-5);
  padding: var(--sp-5);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--r-lg);
  box-shadow: var(--sh-1);
}

.taxonomy-sidebar h3 {
  font-size: var(--fs-14);
  font-weight: var(--fw-semibold);
  text-transform: uppercase;
  letter-spacing: var(--tracking-caps);
  color: var(--color-ink-subtle);
  margin: 0 0 var(--sp-2);
}

.az-jump {
  display: grid;
  grid-template-columns: repeat(9, 1fr);
  gap: 2px;
}

.az-jump a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 28px;
  border-radius: var(--r-xs);
  color: var(--color-ink-muted);
  font-size: var(--fs-12);
  font-weight: var(--fw-semibold);
  transition: background var(--dur-fast) var(--ease-out),
              color var(--dur-fast) var(--ease-out);
}

.az-jump a:hover,
.az-jump a.is-active {
  background: var(--color-primary);
  color: #fff;
}

.az-jump a.is-disabled {
  opacity: 0.35;
  pointer-events: none;
}

.toggle-field {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  cursor: pointer;
}

.toggle-field input { accent-color: var(--color-primary); width: 16px; height: 16px; }
.toggle-field span { font-size: var(--fs-14); color: var(--color-ink); }

.pagination {
  display: flex;
  justify-content: center;
  gap: var(--sp-1);
  margin-top: var(--sp-8);
  flex-wrap: wrap;
}

.pagination a,
.pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding-inline: var(--sp-3);
  border-radius: var(--r-sm);
  color: var(--color-ink);
  font-weight: var(--fw-medium);
  font-size: var(--fs-14);
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  transition: background var(--dur-fast) var(--ease-out),
              color var(--dur-fast) var(--ease-out);
}

.pagination a:hover {
  background: var(--color-primary-50);
  color: var(--color-primary-700);
}

.pagination .current {
  background: var(--color-primary);
  color: #fff;
  border-color: var(--color-primary);
}
