.cc-category-list {
  display: grid;
  gap: var(--cc-space-sm);
  margin-top: var(--cc-space-lg);
}

.cc-category {
  display: block;
  padding: var(--cc-space-md);
  border: 0.0625em solid var(--cc-color-border);
  border-radius: var(--cc-radius);
}

.cc-category__body {
  display: grid;
  gap: var(--cc-space-xs);
  min-width: 0;
}

.cc-category__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--cc-space-md);
}

.cc-category__copy {
  display: grid;
  gap: var(--cc-space-xs);
  min-width: 0;
}

.cc-category__title {
  font: inherit;
}

.cc-category__description {
  color: var(--cc-color-muted);
  font: 400 0.875em/1.45 var(--cc-font-family);
}

.cc-category__details-toggle {
  display: inline-flex;
  align-items: center;
  gap: var(--cc-space-xs);
  width: fit-content;
  padding: 0;
  color: var(--cc-color-primary);
  font: 600 0.875em/1.35 var(--cc-font-family);
  text-align: inherit;
  background: transparent;
  border: 0;
  cursor: pointer;
  transition:
    color var(--cc-duration) var(--cc-easing),
    background-color var(--cc-duration) var(--cc-easing);
}

.cc-category__details-toggle:hover {
  color: var(--cc-color-primary-hover);
  text-decoration: underline;
  text-underline-offset: 0.125em;
}

.cc-category__details-toggle:active {
  color: var(--cc-color-primary-active);
}

.cc-category__details-icon,
.cc-category__details-icon svg {
  display: block;
  width: 1em;
  height: 1em;
}

.cc-category__details-icon {
  transition: transform 160ms ease;
}

.cc-category__details-toggle[aria-expanded='true'] .cc-category__details-icon {
  transform: rotate(180deg);
}

.cc-category__details {
  max-height: 0;
  margin: 0;
  overflow: hidden;
  color: var(--cc-color-muted);
  font: 400 0.875em/1.45 var(--cc-font-family);
  opacity: 0;
  transition:
    max-height var(--cc-duration) var(--cc-easing),
    margin var(--cc-duration) var(--cc-easing),
    opacity var(--cc-duration) var(--cc-easing);
}

.cc-category__details.is-expanded {
  max-height: 12em;
  margin: var(--cc-space-sm) 0 0;
  opacity: 1;
}

.cc-category__switch {
  flex: 0 0 auto;
  align-self: center;
}
