.npbs-ks {
	--npbs-ks-accent: #ff7607;
	--npbs-ks-width: 100%;
	--npbs-ks-top: 110px;
	--npbs-ks-list-height: 410px;
	box-sizing: border-box;
	width: 100%;
	max-width: var(--npbs-ks-width);
	margin: 0;
	padding: 34px 28px 38px;
	border: 1px solid #ededed;
	background: #f4f4f4;
	font-family: inherit;
}
.npbs-ks--sticky { position: -webkit-sticky; position: sticky; top: var(--npbs-ks-top); z-index: 20; }
.npbs-ks__title { margin: 0 0 22px; padding: 0 4px; color: #191c21; font-size: 21px; font-weight: 600; line-height: 1.25; letter-spacing: 0; text-transform: none; }
.npbs-ks__list {
	position: relative;
	box-sizing: border-box;
	height: var(--npbs-ks-list-height);
	max-height: var(--npbs-ks-list-height);
	margin: 0;
	padding: 0;
	overflow-x: hidden !important;
	overflow-y: auto !important;
	border: 0;
	background: transparent;
	list-style: none;
	overscroll-behavior: auto;
	-webkit-overflow-scrolling: touch;
	-ms-overflow-style: none !important;
	scrollbar-width: none !important;
}

/* v2.2.1 — Adaptive TOC height: show up to six rows and remove empty space when fewer headings exist. */
.npbs-ks__list.npbs-ks__list--adaptive {
	height: auto;
	max-height: none;
}

.npbs-ks__list::-webkit-scrollbar,
.npbs-ks__list::-webkit-scrollbar-track,
.npbs-ks__list::-webkit-scrollbar-thumb,
.npbs-ks-sticky-tail::-webkit-scrollbar,
.npbs-ks-sticky-tail::-webkit-scrollbar-track,
.npbs-ks-sticky-tail::-webkit-scrollbar-thumb { display: none !important; width: 0 !important; height: 0 !important; background: transparent !important; }
.npbs-ks__item { position: relative; margin: 0 0 3px; padding: 0; border: 0; background: #fff; }
.npbs-ks__item:last-child { margin-bottom: 0; }
.npbs-ks__item--h3 { padding-left: 0; }
.npbs-ks__link {
	display: block;
	position: relative;
	box-sizing: border-box;
	min-height: 56px;
	padding: 15px 24px;
	overflow: hidden;
	background: #fff;
	color: #222;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.55;
	text-decoration: none !important;
	text-overflow: ellipsis;
	white-space: nowrap;
	transition: background-color .18s ease, color .18s ease;
}
.npbs-ks__item--h3 .npbs-ks__link { padding-left: 24px; color: #222; font-size: 16px; font-weight: 600; }
.npbs-ks__link::before,
.npbs-ks__link::after { display: none !important; content: none !important; }
.npbs-ks__link:hover,
.npbs-ks__link:focus,
.npbs-ks__link.is-active { padding-left: 24px; background: var(--npbs-ks-accent); color: #fff; font-size: 16px; outline: 0; }
.npbs-ks__link.is-active { font-weight: 600; }
.npbs-ks__item--h3 .npbs-ks__link:hover,
.npbs-ks__item--h3 .npbs-ks__link:focus,
.npbs-ks__item--h3 .npbs-ks__link.is-active { padding-left: 24px; font-size: 16px; }
.npbs-ks__empty { margin: 0; padding: 14px 18px; background: #fff; color: #707782; font-size: 13px; line-height: 1.5; }
.npbs-ks-target { scroll-margin-top: calc(var(--npbs-ks-top, 110px) + 20px); }

.npbs-ks-column-placeholder { display: none; min-height: 1px; }
.npbs-ks-column-placeholder.is-active { display: block; visibility: hidden; pointer-events: none; }
.npbs-ks-sticky-tail { box-sizing: border-box; -ms-overflow-style: none !important; scrollbar-width: none !important; }
.npbs-ks-sticky-tail.npbs-ks-sidebar-is-floating {
	position: fixed !important;
	z-index: 90;
	box-sizing: border-box;
	margin: 0 !important;
	overflow-x: hidden !important;
	overflow-y: auto !important;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
}

.npbs-ks-progress {
	position: fixed !important;
	top: var(--npbs-ks-progress-top, 110px) !important;
	right: 0 !important;
	left: 0 !important;
	z-index: 2147483647 !important;
	display: block !important;
	width: 100% !important;
	height: 4px !important;
	margin: 0 !important;
	padding: 0 !important;
	background: rgba(0,0,0,.10) !important;
	opacity: 0;
	visibility: hidden;
	pointer-events: none !important;
	transform: translateZ(0);
	transition: opacity .18s ease;
}
.npbs-ks-progress.is-visible { opacity: 1; visibility: visible; }
.npbs-ks-progress__bar { display: block !important; width: 100% !important; height: 100% !important; background: var(--npbs-ks-accent,#ff7607) !important; box-shadow: 0 0 7px rgba(255,118,7,.35); transform: scaleX(0); transform-origin: left center; will-change: transform; }

@media (max-width: 991px) {
	.npbs-ks,.npbs-ks--sticky { position: relative !important; top: auto !important; left: auto !important; width: 100% !important; max-width: none; margin-bottom: 30px !important; padding: 26px; }
	.npbs-ks__title { font-size: 20px; }
	.npbs-ks__list { height: 380px; max-height: 380px; }
	.npbs-ks__link { white-space: normal; }
	.npbs-ks-sticky-tail.npbs-ks-sidebar-is-floating { position: relative !important; top: auto !important; left: auto !important; width: 100% !important; max-height: none !important; overflow: visible !important; }
	.npbs-ks-column-placeholder.is-active { display: none; }
}
@media (prefers-reduced-motion: reduce) { .npbs-ks__link,.npbs-ks-progress { transition: none; } }

/* v2.0.2 Final UI alignment — refined to match the Industic Categories widget. */
.npbs-ks__title {
	font-family: inherit;
	font-synthesis: none;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
.npbs-ks__link,
.npbs-ks__item--h3 .npbs-ks__link,
.npbs-ks__link:hover,
.npbs-ks__link:focus,
.npbs-ks__link.is-active {
	font-weight: 600;
}

/* v2.0.3 — Hover and active items retain the normal text size, matching Categories hover behavior. */
.npbs-ks__link:hover,
.npbs-ks__link:focus,
.npbs-ks__link.is-active,
.npbs-ks__item--h3 .npbs-ks__link:hover,
.npbs-ks__item--h3 .npbs-ks__link:focus,
.npbs-ks__item--h3 .npbs-ks__link.is-active {
	font-size: 16px;
}

/* v2.0.4 — Hover/current-section changes color only; text position and padding remain fixed. */
.npbs-ks__link:hover,
.npbs-ks__link:focus,
.npbs-ks__link.is-active,
.npbs-ks__item--h3 .npbs-ks__link:hover,
.npbs-ks__item--h3 .npbs-ks__link:focus,
.npbs-ks__item--h3 .npbs-ks__link.is-active {
	padding-left: 24px;
	transform: none;
}

/* v2.0.7 — Align the widget title with the navigation list; retain directional fade cues. */
.npbs-ks__title {
	transform: none;
}

/* Top of list: fade only the last visible heading when more items remain below. */
.npbs-ks__list.has-more-below:not(.has-more-above) {
	-webkit-mask-image: linear-gradient(to bottom, #000 0, #000 calc(100% - 64px), rgba(0,0,0,.62) calc(100% - 34px), transparent 100%);
	mask-image: linear-gradient(to bottom, #000 0, #000 calc(100% - 64px), rgba(0,0,0,.62) calc(100% - 34px), transparent 100%);
}

/* Middle of list: indicate that hidden headings exist in both directions. */
.npbs-ks__list.has-more-above.has-more-below {
	-webkit-mask-image: linear-gradient(to bottom, transparent 0, rgba(0,0,0,.62) 34px, #000 64px, #000 calc(100% - 64px), rgba(0,0,0,.62) calc(100% - 34px), transparent 100%);
	mask-image: linear-gradient(to bottom, transparent 0, rgba(0,0,0,.62) 34px, #000 64px, #000 calc(100% - 64px), rgba(0,0,0,.62) calc(100% - 34px), transparent 100%);
}

/* Bottom of list: remove the lower fade and fade the first visible heading instead. */
.npbs-ks__list.has-more-above:not(.has-more-below) {
	-webkit-mask-image: linear-gradient(to bottom, transparent 0, rgba(0,0,0,.62) 34px, #000 64px, #000 100%);
	mask-image: linear-gradient(to bottom, transparent 0, rgba(0,0,0,.62) 34px, #000 64px, #000 100%);
}

.npbs-ks__list:not(.has-more-above):not(.has-more-below) {
	-webkit-mask-image: none;
	mask-image: none;
}

/* v2.1.0 Reading Experience Edition */
.npbs-ks__reading-time {
	margin: -8px 4px 16px;
	color: #777;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.4;
}
.npbs-ks__reading-footer {
	margin-top: 18px;
	padding: 16px 4px 0;
	border-top: 1px solid #dedede;
}
.npbs-ks__reading-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 9px;
	color: #4d4d4d;
	font-size: 13px;
	line-height: 1.4;
}
.npbs-ks__percentage { color: #222; font-size: 13px; font-weight: 600; }
.npbs-ks__meter {
	height: 3px;
	overflow: hidden;
	background: #ddd;
}
.npbs-ks__meter > span {
	display: block;
	width: 100%;
	height: 100%;
	background: var(--npbs-ks-accent);
	transform: scaleX(0);
	transform-origin: left center;
	will-change: transform;
}
.npbs-ks__back-to-top {
	display: block;
	width: 100%;
	margin-top: 14px;
	padding: 11px 14px;
	border: 0;
	background: #fff;
	color: #222;
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
	text-align: left;
	cursor: pointer;
	transition: background-color .18s ease, color .18s ease;
}
.npbs-ks__back-to-top:hover,
.npbs-ks__back-to-top:focus {
	background: var(--npbs-ks-accent);
	color: #fff;
	outline: 0;
}
.npbs-ks-heading-anchor {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-left: 8px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--npbs-ks-accent, #ff7607);
	font: inherit;
	font-size: .75em;
	font-weight: 600;
	line-height: 1;
	opacity: 0;
	cursor: pointer;
	vertical-align: middle;
	transition: opacity .18s ease;
}
h2:hover > .npbs-ks-heading-anchor,
h3:hover > .npbs-ks-heading-anchor,
.npbs-ks-heading-anchor:focus { opacity: 1; outline: 0; }
.npbs-ks__toast {
	position: fixed;
	right: 24px;
	bottom: 24px;
	z-index: 2147483647;
	max-width: 280px;
	padding: 12px 16px;
	background: #222;
	color: #fff;
	font-size: 13px;
	line-height: 1.4;
	box-shadow: 0 8px 24px rgba(0,0,0,.18);
	opacity: 0;
	transform: translateY(8px);
	transition: opacity .18s ease, transform .18s ease;
}
.npbs-ks__toast.is-visible { opacity: 1; transform: translateY(0); }
@media (max-width: 991px) {
	.npbs-ks__toast { right: 14px; bottom: 14px; left: 14px; max-width: none; text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
	.npbs-ks-heading-anchor,
	.npbs-ks__toast,
	.npbs-ks__back-to-top { transition: none; }
}


/* v2.3.0 Reading Navigation Edition */
.npbs-ks__jump-to-end {
	display: block;
	width: 100%;
	margin-top: 8px;
	padding: 11px 14px;
	border: 0;
	background: #fff;
	color: #222;
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
	text-align: left;
	cursor: pointer;
	transition: background-color .18s ease, color .18s ease;
}
.npbs-ks__jump-to-end:hover,
.npbs-ks__jump-to-end:focus {
	background: var(--npbs-ks-accent);
	color: #fff;
	outline: 0;
}
@media (prefers-reduced-motion: reduce) {
	.npbs-ks__jump-to-end { transition: none; }
}
