@keyframes heroPlateReveal {
	0% {

		transform: translateY(28px) scale(0.98);
		opacity: 0.85;
	}
	100% {
		transform: translateY(0) scale(1);
		opacity: 1;
	}
}

@keyframes heroLedgerDraw {
	0% {
		transform: scaleX(0);
		opacity: 0;
	}
	100% {
		transform: scaleX(1);
		opacity: 1;
	}
}

@keyframes heroCaptionSettle {

	0% {
		opacity: 0;
		transform: translateY(12px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

[data-opening] [data-scene],
[data-scene] { animation-timeline: view(); }

[data-opening] [data-scene='plate'],
[data-scene='plate'],
[data-opening] .hero-inset-plate {
	animation-name: heroPlateReveal;
	animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
	animation-fill-mode: both;
	animation-timeline: view();
	animation-range: entry 10% cover 35%;
}

[data-opening] [data-scene='rule'],
[data-scene='rule'],
[data-opening] .hero-ledger-rule {
	transform-origin: left center;
	animation-name: heroLedgerDraw;
	animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
	animation-fill-mode: both;
	animation-timeline: view();
	animation-range: entry 0% cover 25%;
}

[data-opening] [data-scene='caption'],
[data-scene='caption'],
[data-opening] .hero-plate-caption {
	animation-name: heroCaptionSettle;
	animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
	animation-fill-mode: both;
	animation-timeline: view();
	animation-range: entry 15% cover 40%;
}

@supports (animation-timeline: view()) {
	[data-opening] [data-scene='plate'],
	[data-scene='plate'],
	[data-opening] .hero-inset-plate {
		animation-name: heroPlateReveal;
		animation-timeline: view();
		animation-range: entry 10% cover 35%;
	}

	[data-opening] [data-scene='rule'],
	[data-scene='rule'],
	[data-opening] .hero-ledger-rule {
		animation-name: heroLedgerDraw;
		animation-timeline: view();
		animation-range: entry 0% cover 25%;
	}

	[data-opening] [data-scene='caption'],
	[data-scene='caption'],
	[data-opening] .hero-plate-caption {
		animation-name: heroCaptionSettle;
		animation-timeline: view();
		animation-range: entry 15% cover 40%;
	}
}

.hero-inset-scene {
	position: relative;
	width: 100%;
	padding-top: clamp(2rem, 1.5rem + 2.5vw, 4.5rem);
	padding-bottom: clamp(3rem, 2rem + 3.5vw, 6rem);
	background-color: var(--ground);
	overflow: hidden;
}

.hero-inset-grid {
	display: grid;
	grid-template-columns: 1fr;
	row-gap: var(--space-lg);
	column-gap: clamp(1.5rem, 1rem + 2vw, 3.5rem);
}

.hero-headline-wrap {
	width: 100%;
	max-width: 1100px;
	grid-column: 1 / -1;
	border-bottom: var(--ledger-rule-soft);
	padding-bottom: var(--space-md);
}

.hero-title {
	font-family: var(--somo-f75);
	font-size: var(--text-display);
	font-weight: 600;
	line-height: var(--leading-tight);
	color: var(--ink);
	letter-spacing: var(--tracking-tighter);
	text-wrap: balance;
	margin: 0;
}

.hero-content-split {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-xl);
	align-items: start;
}

@media (min-width: 900px) {
	.hero-content-split {
		grid-template-columns: minmax(280px, 1fr) minmax(460px, 2fr);
		gap: clamp(2rem, 1.5rem + 2vw, 4rem);
	}
}

.hero-lede-column {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	gap: var(--space-md);
}

.hero-lede-text {
	font-family: var(--somo-25e);
	font-size: var(--text-md);
	line-height: var(--leading-normal);
	color: var(--ink);

	max-width: 42ch;
}

.hero-action-row {
	display: flex;
	flex-direction: column;
	gap: var(--space-xs);
	align-items: flex-start;
	margin-top: var(--space-xs);
}

.hero-supporting-meta {
	font-family: var(--somo-762);
	font-size: var(--text-xs);
	color: var(--ink-soft);
	letter-spacing: var(--tracking-wide);
	line-height: var(--leading-normal);
	max-width: 38ch;
}

.hero-plate-column {
	display: flex;
	flex-direction: column;
	width: 100%;
}

.hero-inset-plate {
	position: relative;
	width: 100%;
	background-color: var(--surface);
	border: var(--ledger-rule);
	overflow: hidden;
}

.hero-inset-plate img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	object-position: right 35%;
	display: block;
}

.hero-plate-caption {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--space-xs);
	padding-top: var(--space-xs);
	margin-top: var(--space-xs);
	border-top: var(--ledger-rule-soft);
	font-family: var(--somo-762);
	font-size: var(--text-xs);
	color: var(--ink-soft);
}

.hero-plate-caption span:first-child {
	letter-spacing: var(--tracking-wider);
	text-transform: uppercase;
	color: var(--accent);
}

.hero-plate-caption span:last-child { color: var(--ink-soft); }

.hero-ledger-rule {
	width: 100%;
	height: 1px;
	background-color: var(--line);
	margin-top: var(--space-lg);
}

.essay-flow {
	position: relative;
	width: 100%;
	padding-block: var(--space-xl) var(--space-3xl);
	background-color: var(--ground);
}

.essay-body {
	max-width: var(--container-normal);
	margin-inline: auto;
	padding-inline: clamp(1rem, 0.6rem + 2vw, 3rem);
}

.essay-lead-split {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-lg);
	align-items: start;
	margin-bottom: var(--space-xl);
}

@media (min-width: 900px) {
	.essay-lead-split {
		grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.95fr);
		gap: clamp(2rem, 1.5rem + 2vw, 4rem);
	}
}

.essay-lead-aside { margin: 0; }

.essay-subhead {
	font-family: var(--somo-f75);
	font-size: var(--text-2xl);
	font-weight: 600;
	line-height: var(--leading-tight);
	color: var(--ink);
	letter-spacing: var(--tracking-tight);
	margin-top: var(--space-2xl);
	margin-bottom: var(--space-md);
	padding-top: var(--space-lg);
	border-top: var(--ledger-rule-soft);
	text-wrap: balance;
}

.essay-subhead-compact {
	font-family: var(--somo-f75);
	font-size: var(--text-xl);
	font-weight: 600;
	line-height: var(--leading-snug);
	color: var(--ink);
	margin-top: var(--space-xl);
	margin-bottom: var(--space-sm);
	text-wrap: balance;
}

.essay-paragraph {
	font-family: var(--somo-25e);
	font-size: var(--text-base);
	line-height: var(--leading-loose);
	color: var(--ink);
	max-width: var(--reading-max);
	margin-bottom: 1.35em;
}

.essay-paragraph strong {
	color: var(--ink);
	font-weight: 600;
}

.essay-inset-box {
	background-color: var(--surface);
	border: var(--ledger-rule);
	border-left: 3px solid var(--accent);
	padding: clamp(1.25rem, 1rem + 1.2vw, 2.25rem);
	margin-block: var(--space-xl);
	max-width: var(--inset-measure);
	position: relative;
}

.essay-inset-header {
	font-family: var(--somo-762);
	font-size: var(--text-xs);
	letter-spacing: var(--tracking-widest);
	text-transform: uppercase;
	color: var(--accent);
	margin-bottom: var(--space-xs);
}

.essay-inset-title {
	font-family: var(--somo-f75);
	font-size: var(--text-lg);
	color: var(--ink);
	margin-bottom: var(--space-xs);
}

.essay-inset-text {
	font-size: var(--text-sm);
	line-height: var(--leading-normal);
	color: var(--ink-soft);
	margin-bottom: var(--space-sm);
}

.essay-inset-text:last-child { margin-bottom: 0; }

.essay-inset-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-sm);
	margin-top: var(--space-md);
	padding-top: var(--space-sm);
	border-top: var(--ledger-rule-soft);
}

@media (min-width: 540px) and (max-width: 899px) {
	.essay-inset-grid { grid-template-columns: repeat(2, 1fr); }
}

.inset-metric {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.inset-metric-value {
	font-family: var(--somo-762);
	font-size: var(--text-md);
	font-weight: 500;
	color: var(--ink);
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.inset-metric-label {
	font-family: var(--somo-762);
	font-size: var(--text-2xs);
	color: var(--ink-soft);
	text-transform: uppercase;
	letter-spacing: var(--tracking-wider);
}

.essay-plate-break {
	margin-block: var(--space-2xl);
	width: 100%;
}

.essay-plate-figure {
	width: 100%;
	margin: 0;
	background-color: var(--surface);
	border: var(--ledger-rule);
}

.essay-plate-figure img {
	width: 100%;
	height: auto;
	max-height: 580px;
	object-fit: cover;
	display: block;
}

.essay-plate-caption {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: var(--space-sm) var(--space-md);
	background-color: var(--surface);
	border-top: var(--ledger-rule-soft);
	font-family: var(--somo-762);
	font-size: var(--text-xs);
	color: var(--ink-soft);
}

@media (min-width: 720px) {
	.essay-plate-caption {
		flex-direction: row;
		align-items: baseline;
		justify-content: space-between;
	}
}

.essay-plate-caption strong {
	color: var(--ink);
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: var(--tracking-wider);
}

.pinned-crossfade-stage {
	position: relative;
	width: 100%;
	margin-block: var(--space-3xl);
	border-top: var(--ledger-rule);
	border-bottom: var(--ledger-rule);
	background-color: var(--surface);
}

.pinned-container {
	display: grid;
	grid-template-columns: 1fr;
	min-height: auto;
}

@media (min-width: 900px) {
	.pinned-container {
		grid-template-columns: minmax(320px, 1fr) minmax(400px, 1.25fr);
		min-height: 520px;
	}
}

.pinned-sidebar {
	padding: clamp(1.5rem, 1rem + 2vw, 3rem);
	border-bottom: var(--ledger-rule-soft);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

@media (min-width: 900px) {
	.pinned-sidebar {
		position: sticky;
		top: var(--header-height);
		height: calc(100vh - var(--header-height));
		max-height: 720px;
		border-bottom: none;
		border-right: var(--ledger-rule);
	}
}

.pinned-progress-track {
	width: 100%;
	height: 2px;
	background-color: var(--line);
	margin-top: var(--space-md);
	position: relative;
	overflow: hidden;
}

.pinned-progress-bar {
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
	width: 33.33%;
	background-color: var(--accent);
	transition: width var(--dur-med) var(--ease-out-quint);
}

.pinned-stops-track {
	display: flex;
	flex-direction: column;
}

.pinned-stop-item {
	padding: clamp(1.5rem, 1.2rem + 1.5vw, 3rem);
	border-bottom: var(--ledger-rule-soft);
	background-color: var(--surface);
	transition: opacity var(--dur-med) ease;
}

.pinned-stop-item:last-child { border-bottom: none; }

.pinned-stop-title {
	font-family: var(--somo-f75);
	font-size: var(--text-xl);
	color: var(--ink);
	margin-bottom: var(--space-xs);
}

.pinned-stop-text {
	font-size: var(--text-base);
	line-height: var(--leading-normal);
	color: var(--ink-soft);
}

.page-header-simple {
	position: relative;
	width: 100%;
	padding-top: clamp(2rem, 1.5rem + 2vw, 4rem);
	padding-bottom: clamp(1.5rem, 1rem + 1.5vw, 3rem);
	border-bottom: var(--ledger-rule);
	background-color: var(--ground);
}

.page-header-masthead {
	display: flex;
	flex-direction: column;
	gap: var(--space-xs);
	max-width: var(--container-normal);
	margin-inline: auto;
	padding-inline: clamp(1rem, 0.6rem + 2vw, 3rem);
}

.page-category-tag {
	font-family: var(--somo-762);
	font-size: var(--text-xs);
	letter-spacing: var(--tracking-widest);
	text-transform: uppercase;
	color: var(--accent);
}

.page-header-title {
	font-family: var(--somo-f75);
	font-size: var(--text-3xl);
	color: var(--ink);
	letter-spacing: var(--tracking-tight);
}

.page-header-lede {
	font-family: var(--somo-25e);
	font-size: var(--text-md);
	color: var(--ink-soft);
	max-width: 58ch;
	line-height: var(--leading-normal);
}

.suites-showcase-matrix {
	display: flex;
	flex-direction: column;
	gap: var(--space-2xl);
	margin-block: var(--space-2xl);
}

.suite-ledger-block {
	display: grid;
	grid-template-columns: 1fr;
	border: var(--ledger-rule);
	background-color: var(--surface);
}

@media (min-width: 860px) {
	.suite-ledger-block { grid-template-columns: minmax(320px, 1fr) minmax(420px, 1.4fr); }
}

.suite-ledger-media {
	position: relative;
	border-bottom: var(--ledger-rule-soft);
	background-color: var(--ground);
}

@media (min-width: 860px) {
	.suite-ledger-media {
		border-bottom: none;
		border-right: var(--ledger-rule);
	}
}

.suite-ledger-media img {
	width: 100%;
	height: 100%;
	min-height: 280px;
	object-fit: cover;
	display: block;
}

.suite-ledger-details {
	padding: clamp(1.25rem, 1rem + 1.2vw, 2.5rem);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.suite-ledger-meta {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	border-bottom: var(--ledger-rule-soft);
	padding-bottom: var(--space-xs);
	margin-bottom: var(--space-sm);
}

.suite-ledger-badge {
	font-family: var(--somo-762);
	font-size: var(--text-2xs);
	letter-spacing: var(--tracking-widest);
	text-transform: uppercase;
	color: var(--accent);
}

.suite-ledger-fee {
	font-family: var(--somo-762);
	font-size: var(--text-md);
	color: var(--ink);
	font-weight: 500;
	font-variant-numeric: tabular-nums;
}

.suite-ledger-title {
	font-family: var(--somo-f75);
	font-size: var(--text-xl);
	color: var(--ink);
	margin-bottom: var(--space-xs);
}

.suite-ledger-description {
	font-size: var(--text-sm);
	color: var(--ink-soft);
	line-height: var(--leading-normal);
	margin-bottom: var(--space-md);
}

.suite-specs-table {
	border-collapse: collapse;
	width: 100%;
	margin-bottom: var(--space-md);
	border-top: var(--ledger-rule-soft);
}

.suite-specs-table tr { border-bottom: var(--ledger-rule-soft); }

.suite-specs-table th {
	padding: var(--space-2xs) 0;
	font-family: var(--somo-762);
	font-size: var(--text-2xs);
	text-transform: uppercase;
	letter-spacing: var(--tracking-wider);
	color: var(--ink-soft);
	text-align: left;
	font-weight: 400;
	width: 45%;
}

.suite-specs-table td {
	padding: var(--space-2xs) 0;
	font-family: var(--somo-762);
	font-size: var(--text-xs);
	color: var(--ink);
	text-align: right;
	font-variant-numeric: tabular-nums;
}

.suite-ledger-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-xs);
	align-items: center;
	margin-top: var(--space-sm);
	padding-top: var(--space-sm);
	border-top: var(--ledger-rule-soft);
}

.comparison-ledger-wrap {
	width: 100%;
	overflow-x: auto;
	border: var(--ledger-rule);
	background-color: var(--surface);
	margin-block: var(--space-xl);
}

.comparison-table {
	width: 100%;
	min-width: 680px;
	border-collapse: collapse;
	font-family: var(--somo-762);
	font-size: var(--text-xs);
}

.comparison-table th,
.comparison-table td {
	padding: var(--space-sm) var(--space-md);
	border-bottom: var(--ledger-rule-soft);
	border-right: var(--ledger-rule-soft);
	text-align: left;
	vertical-align: top;
}

.comparison-table th:last-child,
.comparison-table td:last-child { border-right: none; }

.comparison-table th {
	background-color: var(--surface-2);
	color: var(--ink);
	font-size: var(--text-xs);
	letter-spacing: var(--tracking-wider);
	text-transform: uppercase;
}

.comparison-table td {
	color: var(--ink-soft);
	line-height: var(--leading-normal);
}

.comparison-table td strong {
	color: var(--ink);
	font-weight: 600;
}

.comparison-table tr:last-child td { border-bottom: none; }

.admissions-grid-layout {
	display: flex;
	flex-direction: column;
	gap: var(--space-2xl);
	margin-block: var(--space-xl);
	width: 100%;
	clear: both;
}

@media (min-width: 900px) {
	.admissions-grid-layout {
		display: grid;
		grid-template-columns: minmax(360px, 1fr) minmax(420px, 1.25fr);
		align-items: start;
	}
}

.intake-protocol-card {
	background-color: var(--surface);
	border: var(--ledger-rule);
	padding: clamp(1.25rem, 1rem + 1.2vw, 2.5rem);
	display: flex;
	flex-direction: column;
	gap: var(--space-md);
	position: relative;
	min-height: auto;
	height: auto;
}

.intake-protocol-title {
	font-family: var(--somo-f75);
	font-size: var(--text-xl);
	color: var(--ink);
	border-bottom: var(--ledger-rule-soft);
	padding-bottom: var(--space-xs);
}

.intake-protocol-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-md);
}

.intake-protocol-item {
	display: flex;
	flex-direction: column;
	gap: 4px;
	border-bottom: var(--ledger-rule-soft);
	padding-bottom: var(--space-sm);
}

.intake-protocol-item:last-child {
	border-bottom: none;
	padding-bottom: 0;
}

.intake-step-label {
	font-family: var(--somo-762);
	font-size: var(--text-xs);
	text-transform: uppercase;
	letter-spacing: var(--tracking-wider);
	color: var(--accent);
}

.intake-step-name {
	font-family: var(--somo-f75);
	font-size: var(--text-lg);
	color: var(--ink);
}

.intake-step-desc {
	font-size: var(--text-sm);
	color: var(--ink-soft);
	line-height: var(--leading-normal);
}

.admissions-contact-panel {
	display: flex;
	flex-direction: column;
	gap: var(--space-lg);
	position: relative;
	min-height: auto;
	height: auto;
}

.office-coordinates-plate {
	background-color: var(--surface);
	border: var(--ledger-rule);
	padding: clamp(1.25rem, 1rem + 1.2vw, 2rem);
	position: relative;
	min-height: auto;
	height: auto;
	overflow: visible;
}

.office-coordinates-plate picture {
	display: block;
	height: auto;
}

.office-coordinates-plate img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	margin-bottom: var(--space-md);
	border: var(--ledger-rule-soft);
}

.office-data-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-xs);
	position: relative;
	height: auto;
}

.office-data-row {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding-block: var(--space-2xs);
	border-bottom: var(--ledger-rule-soft);
	position: relative;
	height: auto;
}

.office-data-row:last-child { border-bottom: none; }

.office-data-key {
	font-family: var(--somo-762);
	font-size: var(--text-2xs);
	letter-spacing: var(--tracking-wider);
	text-transform: uppercase;
	color: var(--ink-soft);
	display: block;
}

.office-data-val {
	font-family: var(--somo-762);
	font-size: var(--text-sm);
	color: var(--ink);
	display: block;
	white-space: normal;
	overflow-wrap: break-word;
}

.office-data-val a {
	color: var(--ink);
	text-decoration: underline;
	display: inline-block;
	min-height: 44px;
	line-height: 44px;
}

.office-data-val a:hover { color: var(--accent); }

.legal-dated-rail {
	display: grid;
	grid-template-columns: 100%;
	gap: var(--space-xl);
	margin-block: var(--space-xl);
	background-color: var(--ground);
	width: 100%;
	max-width: 100%;
	overflow-x: hidden;
}

@media (min-width: 860px) {
	.legal-dated-rail {
		grid-template-columns: minmax(240px, 300px) minmax(0, 1fr);
		align-items: start;
	}
}

.rail-timeline-sidebar,
.rail-reading-content {
	min-width: 0;
	max-width: 100%;
	overflow-x: hidden;
}

.legal-section-block {
	min-width: 0;
	max-width: 100%;
	overflow-wrap: break-word;
	word-break: break-word;
}

.legal-section-block * { max-width: 100%; }

.legal-section-block table.legal-data-table {
	min-width: 0;
	width: 100%;
}

.rail-timeline-sidebar {
	display: flex;
	flex-direction: column;
	gap: var(--space-md);
	border-bottom: var(--ledger-rule);
	padding-bottom: var(--space-lg);
}

@media (min-width: 860px) {
	.rail-timeline-sidebar {
		position: sticky;
		top: calc(var(--header-height) + 1.5rem);
		border-bottom: none;
		border-right: var(--ledger-rule);
		padding-right: var(--space-lg);
		padding-bottom: 0;
	}
}

.rail-mobile-horizontal {
	display: flex;
	overflow-x: auto;
	gap: var(--space-xs);
	padding-bottom: var(--space-xs);
	border-bottom: var(--ledger-rule-soft);
}

@media (min-width: 860px) {
	.rail-mobile-horizontal { display: none; }
}

.rail-pill {
	flex-shrink: 0;
	font-family: var(--somo-762);
	font-size: var(--text-2xs);
	padding: 4px 8px;
	background-color: var(--surface);
	border: 1px solid var(--line);
	color: var(--ink-soft);
	text-transform: uppercase;
	letter-spacing: var(--tracking-wider);
}

.rail-pill strong { color: var(--accent); }

.rail-clocks-desktop {
	display: none;
	flex-direction: column;
	gap: var(--space-md);
}

@media (min-width: 860px) {
	.rail-clocks-desktop { display: flex; }
}

.rail-clock-card {
	background-color: var(--surface);
	border: var(--ledger-rule);
	padding: var(--space-md);
}

.rail-clock-heading {
	font-family: var(--somo-762);
	font-size: var(--text-2xs);
	letter-spacing: var(--tracking-widest);
	text-transform: uppercase;
	color: var(--accent);
	margin-bottom: 4px;
}

.rail-clock-date {
	font-family: var(--somo-762);
	font-size: var(--text-md);
	color: var(--ink);
	font-weight: 500;
	margin-bottom: 4px;
}

.rail-clock-detail {
	font-size: var(--text-xs);
	color: var(--ink-soft);
	line-height: var(--leading-normal);
}

.rail-anchors-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-xs);
	border-top: var(--ledger-rule-soft);
	padding-top: var(--space-md);
}

.rail-anchor-link {
	font-family: var(--somo-762);
	font-size: var(--text-xs);
	color: var(--ink-soft);
	text-decoration: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 4px 0;
	transition: color var(--dur-fast) ease;
}

.rail-anchor-link:hover { color: var(--accent); }

.rail-reading-content {
	display: flex;
	flex-direction: column;
	gap: var(--space-xl);
}

.legal-section-block {
	border-bottom: var(--ledger-rule-soft);
	padding-bottom: var(--space-xl);
}

.legal-section-block:last-child { border-bottom: none; }

.legal-section-title {
	font-family: var(--somo-f75);
	font-size: var(--text-xl);
	color: var(--ink);
	margin-bottom: var(--space-sm);
}

.legal-prose-text {
	font-size: var(--text-base);
	line-height: var(--leading-loose);
	color: var(--ink);
	max-width: var(--reading-max);
}

.legal-prose-text + .legal-prose-text { margin-top: 1.25em; }

.legal-data-table-wrap {
	width: 100%;
	overflow-x: auto;
	margin-top: var(--space-md);
	border: var(--ledger-rule);
	background-color: var(--surface);
}

.legal-data-table {
	width: 100%;
	min-width: 580px;
	border-collapse: collapse;
	font-family: var(--somo-762);
	font-size: var(--text-xs);
}

.legal-data-table th,
.legal-data-table td {
	padding: var(--space-xs) var(--space-sm);
	border-bottom: var(--ledger-rule-soft);
	border-right: var(--ledger-rule-soft);
	text-align: left;
}

.legal-data-table th:last-child,
.legal-data-table td:last-child { border-right: none; }

.legal-data-table th {
	background-color: var(--surface-2);
	color: var(--ink);
	letter-spacing: var(--tracking-wider);
	text-transform: uppercase;
}

.legal-data-table td { color: var(--ink-soft); }

.legal-data-table td strong { color: var(--ink); }

.legal-margin-layout {
	display: flex;
	flex-direction: column;
	gap: var(--space-xl);
	margin-block: var(--space-xl);
}

.margin-note-row {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-md);
	border-bottom: var(--ledger-rule-soft);
	padding-bottom: var(--space-lg);
}

@media (min-width: 860px) {
	.margin-note-row {
		grid-template-columns: minmax(460px, 2fr) minmax(260px, 1fr);
		gap: clamp(2rem, 1.5rem + 2vw, 4rem);
		align-items: start;
	}
}

.margin-reading-col {
	display: flex;
	flex-direction: column;
	gap: var(--space-sm);
}

.margin-reading-title {
	font-family: var(--somo-f75);
	font-size: var(--text-xl);
	color: var(--ink);
}

.margin-aside-col {
	background-color: var(--surface);
	border-left: 2px solid var(--accent);
	border-top: var(--ledger-rule-soft);
	border-bottom: var(--ledger-rule-soft);
	border-right: var(--ledger-rule-soft);
	padding: var(--space-sm);
	display: flex;
	flex-direction: column;
	gap: var(--space-2xs);
}

@media (min-width: 860px) {
	.margin-aside-col {
		background-color: transparent;
		border: none;
		border-left: 1px dashed var(--line);
		padding: 0 0 0 var(--space-md);
	}
}

.margin-aside-tag {
	font-family: var(--somo-762);
	font-size: var(--text-2xs);
	letter-spacing: var(--tracking-widest);
	text-transform: uppercase;
	color: var(--accent);
}

.margin-aside-text {
	font-family: var(--somo-762);
	font-size: var(--text-xs);
	line-height: var(--leading-normal);
	color: var(--ink-soft);
}

.margin-aside-param {
	font-family: var(--somo-762);
	font-size: var(--text-xs);
	color: var(--ink);
	background-color: var(--surface-2);
	padding: 2px 6px;
	display: inline-block;
	margin-top: 4px;
}

.legal-card-outer {
	max-width: var(--container-normal);
	margin-inline: auto;
	margin-block: var(--space-2xl);
	padding-inline: clamp(1rem, 0.6rem + 2vw, 3rem);
}

.framed-document-card {
	background-color: var(--surface);
	border: var(--ledger-rule);
	box-shadow: var(--shadow-elevated);
	padding: clamp(1.5rem, 1.2rem + 2.5vw, 4rem);
	position: relative;
}

.framed-card-masthead {
	border-bottom: 2px solid var(--line);
	padding-bottom: var(--space-lg);
	margin-bottom: var(--space-xl);
	display: flex;
	flex-direction: column;
	gap: var(--space-sm);
}

@media (min-width: 720px) {
	.framed-card-masthead {
		flex-direction: row;
		justify-content: space-between;
		align-items: flex-end;
	}
}

.card-doc-id {
	font-family: var(--somo-762);
	font-size: var(--text-xs);
	letter-spacing: var(--tracking-widest);
	text-transform: uppercase;
	color: var(--accent);
}

.card-doc-title {
	font-family: var(--somo-f75);
	font-size: var(--text-2xl);
	color: var(--ink);
	letter-spacing: var(--tracking-tight);
}

.card-doc-meta {
	font-family: var(--somo-762);
	font-size: var(--text-xs);
	color: var(--ink-soft);
	text-align: left;
}

@media (min-width: 720px) {
	.card-doc-meta { text-align: right; }
}

.clause-item {
	margin-bottom: var(--space-xl);
	padding-bottom: var(--space-lg);
	border-bottom: var(--ledger-rule-soft);
}

.clause-item:last-child {
	margin-bottom: 0;
	padding-bottom: 0;
	border-bottom: none;
}

.clause-header {
	display: flex;
	align-items: baseline;
	gap: var(--space-sm);
	margin-bottom: var(--space-xs);
}

.clause-number {
	font-family: var(--somo-762);
	font-size: var(--text-xs);
	color: var(--accent);
	font-weight: 500;
	letter-spacing: var(--tracking-wider);
}

.clause-title {
	font-family: var(--somo-f75);
	font-size: var(--text-lg);
	color: var(--ink);
}

.clause-prose {
	font-size: var(--text-base);
	line-height: var(--leading-loose);
	color: var(--ink);
	max-width: var(--reading-max);
}

.card-signature-block {
	margin-top: var(--space-2xl);
	padding-top: var(--space-lg);
	border-top: 2px solid var(--line);
	display: flex;
	flex-direction: column;
	gap: var(--space-md);
}

@media (min-width: 640px) {
	.card-signature-block {
		flex-direction: row;
		justify-content: space-between;
		align-items: flex-end;
	}
}

.sig-party-title {
	font-family: var(--somo-762);
	font-size: var(--text-2xs);
	letter-spacing: var(--tracking-widest);
	text-transform: uppercase;
	color: var(--ink-soft);
}

.sig-party-name {
	font-family: var(--somo-f75);
	font-size: var(--text-md);
	color: var(--ink);
}

.sig-party-licence {
	font-family: var(--somo-762);
	font-size: var(--text-xs);
	color: var(--accent);
}

.faq-section-wrap { margin-block: var(--space-2xl); }

.faq-accordion {
	border-top: var(--ledger-rule);
	display: flex;
	flex-direction: column;
}

.faq-item {
	border-bottom: var(--ledger-rule);
	background-color: var(--surface);
	transition: background-color var(--dur-fast) ease;
}

.faq-item:hover { background-color: var(--surface-2); }

.faq-trigger {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-md);
	padding: var(--space-md) var(--space-sm);
	background: none;
	border: none;
	text-align: left;
	cursor: pointer;
	color: var(--ink);
}

.faq-trigger:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: -2px;
}

.faq-question {
	font-family: var(--somo-f75);
	font-size: var(--text-lg);
	font-weight: 600;
	color: var(--ink);
	line-height: var(--leading-snug);
}

.faq-icon-holder {
	flex-shrink: 0;
	width: 24px;
	height: 24px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--accent);
	transition: transform var(--dur-med) var(--ease-out-quint);
}

.faq-item.is-open .faq-icon-holder { transform: rotate(180deg); }

.faq-panel {
	padding: 0 var(--space-sm) var(--space-md) var(--space-sm);
	display: none;
}

.faq-item.is-open .faq-panel { display: block; }

.faq-answer {
	font-family: var(--somo-25e);
	font-size: var(--text-base);
	line-height: var(--leading-loose);
	color: var(--ink-soft);
	max-width: var(--reading-max);
}

.error-scene {
	min-height: calc(80vh - var(--header-height));
	display: flex;
	align-items: center;
	justify-content: center;
	padding-block: var(--space-3xl);
	background-color: var(--ground);
}

.error-card {
	background-color: var(--surface);
	border: var(--ledger-rule);
	padding: clamp(2rem, 1.5rem + 3vw, 5rem);
	max-width: 680px;
	width: 100%;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space-md);
}

.error-status-code {
	font-family: var(--somo-762);
	font-size: var(--text-display);
	line-height: var(--leading-none);
	color: var(--accent);
	letter-spacing: -0.04em;
}

.error-headline {
	font-family: var(--somo-f75);
	font-size: var(--text-2xl);
	color: var(--ink);
}

.error-prose {
	font-size: var(--text-base);
	color: var(--ink-soft);
	max-width: 45ch;
	line-height: var(--leading-normal);
}

.error-action-row { margin-top: var(--space-sm); }

@media (max-width: 480px) {
	.hero-title { font-size: clamp(2.25rem, 1.95rem + 1.5vw, 2.75rem); }

	.suite-specs-table th { width: 40%; }

	.inquiry-form { padding: 1.25rem 1rem; }
}
