.kcp-toc {
	--kcp-toc-accent: #004e80;
	box-sizing: border-box;
	width: 100%;
	margin-block: clamp(1.5rem, 4vw, 2.5rem);
	border: 1px solid #d7e3ea;
	border-inline-start: 3px solid var(--kcp-toc-accent);
	border-radius: .5rem;
	background: #f6f9fb;
	color: #203542;
	font-family: inherit;
	font-size: 1rem;
	line-height: 1.55;
	text-align: start;
}
.kcp-toc *, .kcp-toc *::before, .kcp-toc *::after { box-sizing: border-box; }
.kcp-toc .kcp-toc__details { margin: 0; padding: 0; border: 0; background: transparent; }
.kcp-toc .kcp-toc__summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 3.5rem;
	margin: 0;
	padding: 1rem clamp(1rem, 3vw, 1.5rem);
	color: var(--kcp-toc-accent);
	font: inherit;
	font-weight: 600;
	list-style: none;
	cursor: pointer;
}
.kcp-toc .kcp-toc__summary::-webkit-details-marker { display: none; }
.kcp-toc .kcp-toc__summary::marker { content: ''; }
.kcp-toc .kcp-toc__summary::before, .kcp-toc .kcp-toc__summary::after { content: none; }
.kcp-toc .kcp-toc__title { font-size: 1.05em; letter-spacing: .01em; }
.kcp-toc .kcp-toc__chevron {
	flex: 0 0 .55rem;
	width: .55rem;
	height: .55rem;
	margin-inline-end: .2rem;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
	transition: transform .15s ease;
}
.kcp-toc .kcp-toc__details[open] > .kcp-toc__summary .kcp-toc__chevron { transform: rotate(225deg); }
.kcp-toc .kcp-toc__list, .kcp-toc .kcp-toc__sublist {
	display: block;
	margin: 0;
	list-style: none;
	padding: 0;
}
.kcp-toc .kcp-toc__list { padding: 0 clamp(1rem, 3vw, 1.5rem) 1.1rem; }
.kcp-toc .kcp-toc__sublist { margin-block: .1rem .25rem; margin-inline-start: .35rem; padding-inline-start: 1.1rem; border-inline-start: 1px solid #cfdee8; }
.kcp-toc .kcp-toc__item, .kcp-toc .kcp-toc__subitem { display: list-item; margin: 0; padding: 0; list-style: none; }
.kcp-toc .kcp-toc__item::before, .kcp-toc .kcp-toc__subitem::before { content: none; }
.kcp-toc .kcp-toc__subitem--orphan { padding-inline-start: 1.45rem; }
.kcp-toc .kcp-toc__link {
	display: block;
	width: fit-content;
	max-width: 100%;
	padding-block: .3rem;
	color: var(--kcp-toc-accent);
	font: inherit;
	font-weight: 500;
	line-height: 1.55;
	text-decoration: none;
	box-shadow: none;
	border: 0;
	overflow-wrap: anywhere;
	text-underline-offset: .2em;
}
.kcp-toc .kcp-toc__subitem > .kcp-toc__link { font-size: .94em; font-weight: 400; }
.kcp-toc .kcp-toc__link:hover { color: #003857; text-decoration: underline; }
.kcp-toc .kcp-toc__link:focus-visible, .kcp-toc .kcp-toc__summary:focus-visible { outline: 2px solid var(--kcp-toc-accent); outline-offset: 3px; border-radius: .15rem; }
.kcp-toc-target { scroll-margin-top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--kcp-toc-scroll-offset, 6rem)); }
@media (max-width: 640px) {
	.kcp-toc { font-size: .96rem; }
	.kcp-toc .kcp-toc__link { display: flex; align-items: center; min-height: 2.75rem; padding-block: .45rem; }
	.kcp-toc .kcp-toc__sublist { padding-inline-start: .9rem; }
}
@media (prefers-reduced-motion: reduce) { .kcp-toc .kcp-toc__chevron { transition: none; } }
@media print { .kcp-toc { display: none; } }
