.com-page-index {
  --color-com-page-index-text: hsl(0 0% 20% / 1);
  --color-com-page-index-border: hsl(0 0% 85% / 1);
  --color-com-page-index-marker: hsl(0 0% 50% / 1);
  --color-com-page-index-active: var(--color-link);
  position: sticky; top: calc(var(--subheader-height) + 40px);
  transition: opacity ease-out 200ms;
}

.com-page-index-content {
  position: absolute; top: 0; left: 0;
  width: 100%; height: auto;
  padding: 40px 20px;
}

.com-page-index header {
  --gap: 1rem;
  margin-bottom: var(--gap); padding-bottom: var(--gap);
  font-size: 12px; font-weight: bold;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--color-primary-purple); opacity: 0.5;
  border-bottom: 1px solid var(--color-com-page-index-border);
}

.com-page-index ul { margin: 0; padding: 0; }

.com-page-index li {
  list-style-type: disc;
  list-style-position: outside;
  margin: 0 0 0.7rem 1.08rem;
  padding: 0;
}

.com-page-index li.level-h2 { margin-left: 2.2rem; }
.com-page-index li.level-h3 { margin-left: 3.3rem; }

.com-page-index li::marker { color: var(--color-com-page-index-marker); }

.com-page-index a {
  font-size: 0.9rem;
  text-decoration: none;
  color: var(--color-com-page-index-text);
  transition: color ease-out 200ms;
}

.com-page-index a:hover { color: var(--color-com-page-index-active); }
.com-page-index a.active { color: var(--color-com-page-index-active); }
