@layer components {
	.klt-table-of-contents {
		max-height: calc(100vh - var(--klt-sticky-header-offset, 0px) - var(--klt-sticky-footer-offset, 0px) - (2 * var(--klt-space-m)));
		overflow-y: auto;
		padding-block: var(--klt-toc-padding-block, var(--klt-space-l));
		overscroll-behavior-y: auto;
		scrollbar-gutter: stable;
	}

	.klt-zones__side:has(.klt-table-of-contents) {
		position: sticky;
		top: calc(var(--klt-sticky-header-offset, 0px) + var(--klt-space-m));
	}

	.klt-table-of-contents__title {
		margin: 0;
	}

	.klt-table-of-contents__list {
		display: grid;
		gap: var(--klt-space-xs);
		margin: var(--klt-space-s) 0 0;
		padding: 0;
		list-style: none;
	}

	.klt-table-of-contents__item--level-3 {
		padding-inline-start: var(--klt-space-s);
	}

	.klt-table-of-contents__link {
		display: block;
	}

	@media (max-width: 60rem) {
		.klt-zones__side:has(.klt-table-of-contents) {
			position: static;
		}

		.klt-table-of-contents {
			max-height: none;
			overflow: visible;
		}
	}
}

/* The current reading position must remain visible above unlayered link resets. */
.klt-table-of-contents__link[aria-current="location"] {
	font-weight: bolder;
	text-decoration: underline;
}
