/* Design defaults; the Style-tab controls override them per widget.
   ol/li are fully reset: theme and kit list styles must not leak in.
   All spacing is flex gap + padding; the separator sits in the middle of the rows gap. */
.kmst-toc {
	--kmst-toc-border: #e9e9e9;
	--kmst-toc-gap: 0px;
	display: flex;
	flex-direction: column;
	gap: var(--kmst-toc-gap);
	margin: 0;
	padding: 0;
	list-style: none;
	background: #fff;
	border: 1px solid var(--kmst-toc-border);
	border-radius: 12px;
}

.kmst-toc__item {
	display: flex;
	align-items: center;
	gap: 28px;
	margin: 0;
	position: relative;
	padding: 28px 26px;
	list-style: none;
}

.kmst-toc__item + .kmst-toc__item::before {
	content: "";
	position: absolute;
	right: 0;
	left: 0;
	top: calc(var(--kmst-toc-gap) / -2 - 1px);
	height: 1px;
	background: var(--kmst-toc-border);
}

.kmst-toc__num {
	display: flex;
	flex: 0 0 68px;
	align-items: center;
	justify-content: center;
	height: 48px;
	border-radius: 8px;
	background-color: #f1f5fe;
	color: #345cad;
	font-size: 20px;
	font-weight: 700;
	line-height: 1;
}

.kmst-toc__text {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.kmst-toc__title {
	color: #121826;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.25;
}

.kmst-toc__desc {
	color: #6c727f;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.4;
}

.kmst-toc__desc:empty {
	display: none;
}

.kmst-toc__empty {
	padding: 16px;
	border: 1px dashed #c7cace;
	color: #6c727f;
	font-size: 14px;
}

@media (max-width: 767px) {
	.kmst-toc__item {
		gap: 16px;
		padding: 20px 16px;
	}

	.kmst-toc__num {
		flex-basis: 52px;
		height: 40px;
		font-size: 17px;
	}

	.kmst-toc__title {
		font-size: 17px;
	}

	.kmst-toc__desc {
		font-size: 14px;
	}
}
