/**
 * Institutional pages (08): side navigation, heading, table of contents, prose, FAQ accordion,
 * contact form, order tracking page.
 */
.fsc-page {
	display: grid;
	gap: var(--fs-space-6);
	padding-bottom: var(--fs-space-12);
}

.fsc-page > * {
	min-width: 0;
}

.fsc-page__nav ul {
	display: flex;
	gap: var(--fs-space-1);
	margin: 0;
	padding: 0;
	overflow-x: auto;
	list-style: none;
	scrollbar-width: none;
}

.fsc-page__nav a {
	display: flex;
	align-items: center;
	min-height: var(--fs-tap);
	padding: 0 var(--fs-space-3);
	border: 1px solid var(--fs-line-soft);
	color: var(--fs-ink);
	font-size: var(--fs-text-meta);
	white-space: nowrap;
	text-decoration: none;
}

.fsc-page__nav a[aria-current="page"] {
	border-color: var(--fs-ink);
	font-weight: 800;
}

@media (min-width: 1024px) {
	.fsc-page.has-nav {
		grid-template-columns: 15rem minmax(0, 1fr);
		gap: var(--fs-space-12);
		align-items: start;
	}

	.fsc-page__nav {
		position: sticky;
		top: var(--fs-space-4);
	}

	.fsc-page__nav ul {
		flex-direction: column;
		overflow: visible;
	}

	.fsc-page__nav a {
		border: 0;
		border-left: 3px solid transparent;
	}

	.fsc-page__nav a[aria-current="page"] {
		border-left-color: var(--fs-brand);
	}
}

.fsc-page__body {
	max-width: 46rem;
}

.fsc-page__title {
	margin: 0;
	font-size: 2rem;
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1.05;
}

.fsc-page__meta {
	margin: var(--fs-space-2) 0 var(--fs-space-6);
	color: var(--fs-ink-2);
	font-size: var(--fs-text-caption);
}

@media (min-width: 768px) {
	.fsc-page__title {
		font-size: 2.75rem;
	}
}

.fsc-page__content h2 {
	margin: var(--fs-space-8) 0 var(--fs-space-3);
	font-size: 1.25rem;
	font-weight: 800;
	scroll-margin-top: var(--fs-space-4);
}

.fsc-page__content h3 {
	margin: var(--fs-space-5) 0 var(--fs-space-2);
	font-size: var(--fs-text-body);
	font-weight: 800;
}

.fsc-page__content ul {
	padding-left: var(--fs-space-5);
}

.fsc-toc {
	margin-bottom: var(--fs-space-6);
	padding: var(--fs-space-4);
	background: var(--fs-ground-2);
}

.fsc-toc__title {
	margin: 0 0 var(--fs-space-2);
	color: var(--fs-ink-2);
	font-size: var(--fs-text-label);
	font-weight: 800;
	letter-spacing: var(--fs-track-label);
	text-transform: uppercase;
}

.fsc-toc ol {
	margin: 0;
	padding-left: var(--fs-space-5);
	font-size: var(--fs-text-meta);
}

.fsc-toc a {
	display: inline-flex;
	min-height: 1.75rem;
	align-items: center;
	color: var(--fs-ink);
}

/* ---- FAQ ---- */
.fsc-faq {
	border-top: 1px solid var(--fs-line);
}

.fsc-faq__item {
	border-bottom: 1px solid var(--fs-line);
}

.fsc-faq__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--fs-space-4);
	min-height: 3.5rem;
	padding: var(--fs-space-3) 0;
	font-weight: 800;
	list-style: none;
	cursor: pointer;
}

.fsc-faq__q::-webkit-details-marker {
	display: none;
}

.fsc-faq__chevron {
	flex: none;
	transition: transform var(--fs-t-hover);
}

.fsc-faq__item[open] .fsc-faq__chevron {
	transform: rotate(180deg);
}

.fsc-faq__a {
	padding-bottom: var(--fs-space-4);
	color: var(--fs-ink-2);
}

.fsc-faq__a p {
	margin: 0 0 var(--fs-space-2);
}

/* ---- Contact ---- */
.fsc-contact {
	display: grid;
	gap: var(--fs-space-6);
	margin-top: var(--fs-space-8);
	padding-top: var(--fs-space-6);
	border-top: 1px solid var(--fs-line);
}

.fsc-contact__title {
	margin: 0 0 var(--fs-space-4);
	font-size: 1.25rem;
	font-weight: 800;
}

.fsc-contact__form {
	display: grid;
	gap: var(--fs-space-3);
}

.fsc-contact__form .fsc-field__input {
	height: 3rem;
	font-size: var(--fs-text-body);
}

.fsc-contact__form .fsc-field__input--area {
	height: auto;
}

.fsc-contact__trap {
	position: absolute;
	left: -9999px;
}

.fsc-contact__aside {
	display: grid;
	align-content: start;
	gap: var(--fs-space-3);
	padding: var(--fs-space-4);
	background: var(--fs-ground-2);
	font-size: var(--fs-text-meta);
}

.fsc-contact__aside p {
	display: grid;
	gap: 0.125rem;
	margin: 0;
}

.fsc-contact__aside a {
	display: inline-flex;
	min-height: 1.5rem;
	align-items: center;
	color: var(--fs-ink);
}

@media (min-width: 768px) {
	.fsc-contact {
		grid-template-columns: minmax(0, 1fr) 15rem;
	}
}

/* ---- Track order ---- */
.fsc-track {
	max-width: 46rem;
	padding-bottom: var(--fs-space-12);
}

.fsc-track__form {
	display: grid;
	gap: var(--fs-space-3);
	margin: var(--fs-space-5) 0;
}

.fsc-track__form .fsc-field__input {
	height: 3rem;
	font-size: var(--fs-text-body);
}

@media (min-width: 768px) {
	.fsc-track__form {
		grid-template-columns: 1fr 1fr auto;
		align-items: end;
	}
}
