/* ============================================================
   Tier B - Scroll-spy section nav  (feature: featSpy)
   Styles the "On this page" nav injected by js/spy.js. The nav is
   only built when full text with enough headings is present on-page;
   otherwise nothing renders. Active state is not colour-only (also a
   left border + weight) for accessibility.
   ============================================================ */

.synth-spy {
	font-size: 0.85rem;
	line-height: 1.35;
}
.synth-spy__label {
	font-size: 0.68rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	opacity: 0.55;
	margin: 0 0 0.55rem;
}
.synth-spy ul { list-style: none; margin: 0; padding: 0; border-left: 2px solid rgba(0, 0, 0, 0.12); }
.synth-spy li a {
	display: block;
	padding: 0.28rem 0 0.28rem 0.8rem;
	margin-left: -2px;
	border-left: 2px solid transparent;
	text-decoration: none;
	color: inherit;
	opacity: 0.75;
}
.synth-spy li a:hover { opacity: 1; }
.synth-spy li a.is-current {
	opacity: 1;
	font-weight: 700;
	border-left-color: currentColor;
}

/* sticky on wide screens; static (inline) on narrow ones */
@media (min-width: 900px) {
	.synth-spy { position: sticky; top: 1.5rem; }
}
@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
}
.synth-spy-target { scroll-margin-top: 1.5rem; }
