.ctoc {
	position: sticky;
	top: 0;
}

.ctoc__title {
	display: block;
	margin-bottom: 0.5em;
	font-size: var(--e-global-typography-fc02340-font-size);
	font-weight: var(--e-global-typography-fc02340-font-weight);
	text-transform: var(--e-global-typography-fc02340-text-transform);
	line-height: var(--e-global-typography-fc02340-line-height);
	letter-spacing: var(--e-global-typography-fc02340-letter-spacing);
}

.ctoc__list,
.ctoc__sublist {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.ctoc__sublist {
	margin-left: 1em;
	margin-top: 0.25em;
}

.ctoc__item {
	display: flex;
	flex-direction: row;
	margin: 0.25em 0;
	gap: 20px;
	color: var(--e-global-color-text);
	-webkit-text-decoration: var(--item-text-decoration);
	text-decoration: var(--item-text-decoration);
	transition-duration: var(--item-text-transition-duration);
	font-family: var(--e-global-typography-8c37042-font-family), Sans-serif;
	font-size: var(--e-global-typography-8c37042-font-size);
	font-weight: var(--e-global-typography-8c37042-font-weight);
	line-height: var(--e-global-typography-8c37042-line-height);
}

.ctoc__link {
	color: var(--e-global-color-text);
	display: block;
	text-decoration: inherit;
	transition: opacity 0.15s ease;
}

.ctoc__link:hover {
	text-decoration: underline;
	color: var(--e-global-color-text);
}

.ctoc__link--active,
.ctoc__item--active .ctoc__link,
.ctoc .ctoc__link.active {
	font-weight: 900 !important;
}

.ctoc__item--h1 .ctoc__link { font-size: 1em; }
.ctoc__item--h2 .ctoc__link { font-size: 0.95em; }
.ctoc__item--h3 .ctoc__link { font-size: 0.9em; }
.ctoc__item--h4 .ctoc__link,
.ctoc__item--h5 .ctoc__link,
.ctoc__item--h6 .ctoc__link { font-size: 0.85em; }

.ctoc--numbered .ctoc__list {
	counter-reset: item;
}

.ctoc--numbered .ctoc__item {
	counter-increment: item;
}

.ctoc--numbered .ctoc__item::before {
	content: counter(item, decimal-leading-zero) ". ";
}

.ctoc-placeholder {
	margin: 0;
	padding: 0.5em 0;
	color: #666;
	font-size: 0.9em;
}
