.toc {
  display: block;
  margin: var(--spacing) 0;
  background-color: var(--lightest);
  border-radius: var(--border-radius);
  border: 1px solid var(--lines);
  contain: content;
}

.toc:not([open]) {
  width: fit-content;
}

.toc:not([open]):hover {
  border-color: var(--primary);
}

.toc:not([open]):hover summary {
  color: var(--primary);
}

.toc summary {
  padding: .75em;
  color: var(--dark);
}

.toc summary:hover {
  cursor: pointer;
}

.toc[open] summary .hide,
.toc summary .show {
  display: inline;
}

.toc summary .hide,
.toc[open] summary .show {
  display: none;
}

.intoc {
  padding: 0 1em 1em;
  margin: 0;
  list-style-type: none;
}

.intoc ul {
  margin-left: 1em;
}

.intoc > li {
  margin-bottom: .75em;
}

.intoc ul > li {
  margin-left: 1em;
  padding-left: .5em;
}

.intoc > li > a {
  font-weight: 600;
  margin-bottom: .75em;
}

.intoc a {
  text-wrap: balance;
}

.intoc a:hover {
  color: var(--darkest);
}

.intoc ul > li::marker {
  content: "\22A2";
  color: var(--medium);
}

.intoc ul > li:has(ul) > a {
  font-weight: 500;
}
