/* TOC block */
.toc__box { padding: 0; overflow: hidden; }
.toc__toggle {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.1rem var(--card-padding);
  text-align: left;
  color: var(--color-white);
  background: var(--color-bg-dark);
}
.toc__title { font-family: var(--font-display); font-size: var(--fs-h3); font-weight: var(--fw-bold); color: var(--color-heading); }
.toc__arrow { width: 22px; height: 22px; color: var(--color-heading); transition: transform var(--transition); }
.toc__toggle[aria-expanded="false"] .toc__arrow { transform: rotate(-90deg); }

.toc__nav {
  display: grid;
  grid-template-rows: 1fr;
  transition: grid-template-rows var(--transition);
}
.toc__nav[hidden] { display: grid; grid-template-rows: 0fr; }
.toc__list { overflow: hidden; }
.toc__nav[hidden] .toc__list { padding-block: 0; }

.toc__list {
  padding: 0.5rem var(--card-padding) 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.toc__list li { border-bottom: 1px solid rgba(57,73,80,0.35); }
.toc__list li:last-child { border-bottom: none; }
.toc__list a {
  display: block;
  padding: 0.6rem 0.25rem 0.6rem 1.4rem;
  position: relative;
  color: var(--color-text);
  transition: color var(--transition), padding var(--transition);
}
.toc__list a::before {
  content: "";
  position: absolute;
  left: 0; top: 50%;
  width: 7px; height: 7px;
  background: var(--color-accent);
  transform: translateY(-50%) rotate(45deg);
}
.toc__list a:hover { color: var(--color-heading); padding-left: 1.7rem; }
