.ef-toc__title {
	font-size: var(--ef-font-s);
	font-weight: var(--ef-weight-m);
	text-transform: uppercase;
	letter-spacing: var(--ef-letter-spacing-caps);
	margin-block-end: var(--ef-gap-l);
}

.ef-toc__list,
.ef-toc__children {
	list-style: none;
	padding: 0;
	margin: 0;
}

.ef-toc__list {
	display: flex;
	flex-direction: column;
}

.ef-toc__item {
	border-inline-start: var(--ef-border-m) solid var(--ef-color-border);
	transition: border-color var(--ef-transition);
}

.ef-toc__link {
	display: block;
	padding: var(--ef-gap-s) 0 var(--ef-gap-s) var(--ef-gap-l);
	color: var(--ef-color-gray);
	font-size: var(--ef-font-s);
	text-decoration: none;
	transition: color var(--ef-transition);
}

.ef-toc__link:hover {
	color: var(--ef-color-text);
}

.ef-toc__link.is-active {
	color: var(--ef-color-text);
	font-weight: var(--ef-weight-m);
}

.ef-toc__link--child {
	padding-inline-start: calc(var(--ef-gap-l) + var(--ef-pad-m));
	font-size: calc(var(--ef-font-s) - 1px);
}

[id^="toc-"] {
	scroll-margin-top: 100px;
}

@media (prefers-reduced-motion: reduce) {
	.ef-toc__item,
	.ef-toc__link {
		transition: none;
	}
}
