

main { min-height:100vh; }

.poster-hero {
	position:relative;
	min-height:calc(100vh - 3.5rem);
	display:flex;
	flex-direction:column;
	justify-content:space-between;
	padding-block:var(--space-6) calc(14vh + var(--space-6));
	border-bottom:3px solid var(--ink);
	background-color:var(--ground);
	overflow:hidden;
}

@media (max-width: 480px) {
	.poster-hero { padding-block-end:calc(14vh + var(--space-6)); }
}

.poster-hero-dense {
	min-height:auto;
	padding-block:var(--space-8) var(--space-10);
}

.hero-meta-bar {
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	justify-content:space-between;
	gap:var(--space-3);
	padding-bottom:var(--space-4);
	border-bottom:1px solid var(--line);
	margin-bottom:var(--space-6);
	font-family:var(--tepu-e09);
	font-size:var(--text-xs);
	text-transform:uppercase;
	letter-spacing:0.08em;
	color:var(--ink-muted);
}

.hero-meta-coords {
	display:inline-block;
	line-height:1.4;
}

.hero-meta-coords svg {
	display:inline-block;
	vertical-align:middle;
	margin-right:var(--space-1);
}

.hero-headline-wrap {
	margin-block-start:0;
	margin-block-end:auto;
	padding-block:var(--space-2);
}

.hero-subline {
	font-family:var(--tepu-abf);
	font-size:clamp(1.1rem, 1rem + 0.6vw, 1.45rem);
	font-weight:500;
	line-height:1.4;
	max-width:58ch;
	color:var(--ink);
	margin-top:var(--space-6);
	margin-bottom:var(--space-8);
}

.hero-actions {
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:var(--space-4);
	margin-top:var(--space-4);
}

.hero-footer-bar {
	display:grid;
	grid-template-columns:1fr;
	gap:var(--space-4);
	padding-top:var(--space-6);
	border-top:2px solid var(--ink);
	margin-top:var(--space-8);
	font-family:var(--tepu-e09);
	font-size:var(--text-xs);
	letter-spacing:0.05em;
	text-transform:uppercase;
}

@media (min-width: 768px) {
	.hero-footer-bar { grid-template-columns:repeat(3, 1fr); }
}

.hero-footer-item strong {
	display:block;
	color:var(--accent);
	font-size:var(--text-sm);
	margin-bottom:var(--space-1);
}


.scene {
	position:relative;
	min-height:100vh;
	display:flex;
	flex-direction:column;
	justify-content:center;
	padding-block:var(--space-16) var(--space-16);
	border-bottom:2px solid var(--ink);
	background-color:var(--ground);
}

.scene-alt { background-color:var(--ground-deep); }

.scene-compact {
	min-height:auto;
	padding-block:var(--space-12) var(--space-12);
}

.scene-content { width:100%; }

.scene-body-text {
	font-size:var(--text-base);
	line-height:1.65;
	color:var(--ink);
	margin-top:var(--space-6);
}

.scene-body-text p { margin-bottom:var(--space-4); }


.num-scene-header {
	border-left:6px solid var(--ink);
	padding-left:clamp(1rem, 3vw, 2rem);
	margin-bottom:var(--space-8);
}

.num-scene-header.accent-line { border-left-color:var(--accent); }

.num-scene-value {
	font-family:var(--tepu-3e8);
	font-size:clamp(3.4rem, 2.6rem + 5vw, 6.8rem);
	font-weight:900;
	line-height:0.88;
	letter-spacing:-0.03em;
	text-transform:uppercase;
	color:var(--ink);
	display:block;
}

.num-scene-unit {
	font-family:var(--tepu-e09);
	font-size:clamp(0.85rem, 0.8rem + 0.3vw, 1.05rem);
	font-weight:600;
	text-transform:uppercase;
	letter-spacing:0.1em;
	color:var(--accent);
	display:block;
	margin-top:var(--space-2);
}

.num-scene-statement {
	font-family:var(--tepu-abf);
	font-size:clamp(1.15rem, 1.05rem + 0.45vw, 1.45rem);
	font-weight:500;
	line-height:1.4;
	color:var(--ink);

	max-width:var(--width-prose);
	margin-top:var(--space-4);
	margin-bottom:0;
}

/* Full-width photography between measured figures */
.scene-photo-wrap {
	width:100%;
	margin-block:var(--space-8);
	border:2px solid var(--ink);
	background-color:var(--ground-deep);
	position:relative;
	box-shadow:var(--shadow-hard);
	display:flex;
	flex-direction:column;
}

.scene-photo-wrap picture {

	display:block;
	width:100%;
	overflow:hidden;
	position:relative;
	z-index:1;
}

.scene-photo-wrap img {
	width:100%;
	max-height:70vh;
	object-fit:cover;
	display:block;
	transition:transform var(--dur-slow) var(--ease-out);
}

.scene-photo-wrap:hover img { transform:scale(1.02); }

.scene-photo-caption {
	position:relative;
	z-index:10;

	padding:var(--space-3) var(--space-4);
	background-color:var(--ink);
	color:#fff;
	font-family:var(--tepu-e09);
	font-size:var(--text-xs);
	letter-spacing:0.06em;
	text-transform:uppercase;
	display:flex;
	justify-content:space-between;
	align-items:center;
	flex-wrap:wrap;
	gap:var(--space-2);
	border-top:2px solid var(--accent);
}


[data-depth] { will-change:transform; }

.parallax-layer-back {
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
	pointer-events:none;
	opacity:0.08;
	background-image:repeating-linear-gradient(
		0deg,
		var(--ink),
		var(--ink) 1px,
		transparent 1px,
		transparent 40px
	);
	z-index:0;
}

.scene-content, .poster-hero > * {
	position:relative;
	z-index:1;
}


.diagnostic-grid {
	display:grid;
	grid-template-columns:1fr;
	gap:var(--space-6);
	margin-block:var(--space-8);
}

@media (min-width: 768px) {
	.diagnostic-grid { grid-template-columns:repeat(2, 1fr); }
}

@media (min-width: 1100px) {
	.diagnostic-grid { grid-template-columns:repeat(3, 1fr); }
}

.diagnostic-card {
	background-color:var(--ground-surface);
	border:2px solid var(--ink);
	padding:var(--space-6);
	box-shadow:var(--shadow-flat);
	display:flex;
	flex-direction:column;
	transition:transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}

.diagnostic-card:hover {
	transform:translateY(-2px);
	box-shadow:var(--shadow-hard);
}

.diagnostic-card-header {
	display:flex;
	align-items:baseline;
	justify-content:space-between;
	border-bottom:2px solid var(--ink);
	padding-bottom:var(--space-3);
	margin-bottom:var(--space-4);
}

.diagnostic-card-title {
	font-family:var(--tepu-3e8);
	font-size:var(--text-xl);
	font-weight:800;
	text-transform:uppercase;
	margin:0;
}

.diagnostic-card-metric {
	font-family:var(--tepu-e09);
	font-size:var(--text-sm);
	font-weight:600;
	color:var(--accent);
}

.diagnostic-card-body {
	font-size:var(--text-sm);
	color:var(--ink-muted);
	line-height:1.55;
	flex-grow:1;
}

.diagnostic-card-meta {
	margin-top:var(--space-5);
	padding-top:var(--space-3);
	border-top:1px dashed var(--line);
	font-family:var(--tepu-e09);
	font-size:var(--text-xs);
	text-transform:uppercase;
	color:var(--ink-faint);
	display:flex;
	justify-content:space-between;
}


.legal-stack-page {
	padding-block:var(--space-10) var(--space-16);
	background-color:var(--ground);
}

.stack-controls-bar {
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	justify-content:space-between;
	gap:var(--space-4);
	padding:var(--space-4);
	background-color:var(--ground-surface);
	border:2px solid var(--ink);
	margin-bottom:var(--space-8);
	box-shadow:var(--shadow-flat);
}

.stack-controls-group {
	display:flex;
	flex-wrap:wrap;
	gap:var(--space-3);
	width:100%;
}

.stack-controls-group .btn {
	white-space:nowrap;
	flex:1 1 auto;
}

.stack-meta-note {
	font-family:var(--tepu-e09);
	font-size:var(--text-xs);
	text-transform:uppercase;
	letter-spacing:0.08em;
	color:var(--ink-muted);
}

.legal-stack {
	display:flex;
	flex-direction:column;
	gap:var(--space-4);
}

.disclosure-block {
	border:2px solid var(--ink);
	background-color:var(--ground-surface);
	box-shadow:var(--shadow-flat);
	transition:box-shadow var(--dur-fast) var(--ease-out);
}

.disclosure-block[open] {
	box-shadow:var(--shadow-hard);
	background-color:var(--ground-surface);
}

.disclosure-summary {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:var(--space-4);
	padding:var(--space-4) var(--space-6);
	cursor:pointer;
	background-color:var(--ground-deep);
	border-bottom:2px solid transparent;
	font-family:var(--tepu-abf);
	font-size:var(--text-md);
	font-weight:700;
	color:var(--ink);
	list-style:none;
	min-height:52px;
	user-select:none;
	transition:background-color var(--dur-fast) var(--ease-out);
}

.disclosure-summary::-webkit-details-marker { display:none; }

.disclosure-summary:hover { background-color:var(--ground-plate); }

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

.disclosure-block[open] .disclosure-summary {
	border-bottom:2px solid var(--ink);
	background-color:var(--ground-surface);
}

.summary-heading-wrap {
	display:flex;
	flex-direction:column;
	gap:var(--space-1);
}

.summary-clause-title {
	font-family:var(--tepu-3e8);
	font-size:var(--text-xl);
	font-weight:800;
	text-transform:uppercase;
	color:var(--ink);
	line-height:1;
}

.summary-clause-lead {
	font-family:var(--tepu-abf);
	font-size:var(--text-sm);
	font-weight:400;
	color:var(--ink-muted);
	line-height:1.4;
	margin:0;
}

.summary-toggle-icon {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:32px;
	min-height:32px;
	background-color:var(--ink);
	color:var(--ink-invert);
	border:1px solid var(--ink);
	flex-shrink:0;
	transition:transform var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);
}

.disclosure-block[open] .summary-toggle-icon {
	transform:rotate(180deg);
	background-color:var(--accent);
}

.disclosure-body {
	padding:var(--space-6) var(--space-6) var(--space-8);
	font-size:var(--text-base);
	line-height:1.65;
	color:var(--ink);
	background-color:var(--ground);
}

.disclosure-body p { margin-bottom:var(--space-4); }

.disclosure-body ul, .disclosure-body ol { margin-bottom:var(--space-4); }


.legal-wide-page {
	padding-block:var(--space-10) var(--space-16);
	background-color:var(--ground);
}

.legal-wide-container {
	width:100%;
	max-width:var(--width-wide);
	margin-inline:auto;
	padding-inline:var(--space-4);
}

@media (min-width: 768px) {
	.legal-wide-container { padding-inline:var(--space-8); }
}

.clauses-wide-list {
	display:flex;
	flex-direction:column;
	gap:var(--space-12);
	margin-top:var(--space-10);
}

.clause-item {
	display:grid;
	grid-template-columns:1fr;
	gap:var(--space-3);
	padding-top:var(--space-6);
	border-top:1px solid var(--line-strong);
	position:relative;
}

@media (min-width: 768px) {
	.clause-item {
		grid-template-columns:80px 1fr;
		gap:var(--space-8);
	}
}

.clause-marker {
	font-family:var(--tepu-e09);
	font-size:var(--text-sm);
	font-weight:600;
	color:var(--accent);
	letter-spacing:0.05em;
	padding-top:var(--space-1);
}

.clause-content { max-width:var(--width-prose); }

.clause-content h2, .clause-content h3 {
	font-family:var(--tepu-3e8);
	font-size:var(--text-xl);
	font-weight:800;
	text-transform:uppercase;
	margin-bottom:var(--space-3);
	line-height:1.05;
}

.clause-content p {
	font-size:var(--text-base);
	line-height:1.65;
	margin-bottom:var(--space-4);
}

.clause-content p:last-child { margin-bottom:0; }


.legal-pinned-page {
	padding-block:var(--space-8) var(--space-16);
	background-color:var(--ground);
}

.pinned-nav-bar {
	position:sticky;
	top:4.25rem;
	z-index:800;
	background-color:var(--ground-deep);
	border-block:2px solid var(--ink);
	padding-block:var(--space-3);
	margin-bottom:var(--space-10);
	box-shadow:0 4px 10px rgba(20, 18, 16, 0.15);
}

.pinned-nav-scroll {
	display:flex;
	align-items:center;
	gap:var(--space-2);
	overflow-x:auto;
	padding-inline:var(--space-4);
	scrollbar-width:thin;
	scrollbar-color:var(--ink) var(--ground);
	-webkit-overflow-scrolling:touch;
}

.pinned-nav-scroll::-webkit-scrollbar { height:4px; }

.pinned-nav-scroll::-webkit-scrollbar-thumb { background:var(--ink); }

.jump-chip {
	display:inline-flex;
	align-items:center;
	white-space:nowrap;
	min-height:38px;
	padding:var(--space-2) var(--space-4);
	background-color:var(--ground-surface);
	border:1px solid var(--ink);
	color:var(--ink);
	font-family:var(--tepu-e09);
	font-size:var(--text-xs);
	font-weight:600;
	letter-spacing:0.05em;
	text-transform:uppercase;
	text-decoration:none;
	flex-shrink:0;
	transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}

.jump-chip:hover {
	background-color:var(--ink);
	color:var(--ink-invert);
	transform:translateY(-1px);
}

.jump-chip:active {
	background-color:var(--accent);
	color:var(--ink-invert);
}

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

.jump-chip.is-active {
	background-color:var(--accent);
	color:var(--ink-invert);
	border-color:var(--ink);
}

.pinned-sections-container {
	display:flex;
	flex-direction:column;
	gap:var(--space-12);
}

.pinned-legal-section {
	padding-top:var(--space-8);
	border-top:3px solid var(--ink);
	scroll-margin-top:8.5rem;
}

.pinned-section-standfirst {
	font-family:var(--tepu-abf);
	font-size:var(--text-lg);
	font-weight:500;
	line-height:1.4;
	color:var(--ink);
	padding:var(--space-4) var(--space-5);
	background-color:var(--ground-surface);
	border-left:4px solid var(--accent);
	margin-bottom:var(--space-6);
	border-top:1px solid var(--line);
	border-right:1px solid var(--line);
	border-bottom:1px solid var(--line);
}

.pinned-legal-section h2 {
	font-family:var(--tepu-3e8);
	font-size:var(--text-2xl);
	font-weight:900;
	text-transform:uppercase;
	margin-bottom:var(--space-3);
	letter-spacing:-0.01em;
}

.pinned-section-body {
	max-width:var(--width-prose);
	font-size:var(--text-base);
	line-height:1.65;
}


.legal-table-wrap {
	width:100%;
	overflow-x:auto;
	border:2px solid var(--ink);
	background-color:var(--ground-surface);
	margin-block:var(--space-6);
	box-shadow:var(--shadow-flat);
}

.legal-table {
	width:100%;
	border-collapse:collapse;
	min-width:640px;
}

.legal-table th, .legal-table td {
	padding:var(--space-3) var(--space-4);
	border-bottom:1px solid var(--line);
	text-align:left;
	font-size:var(--text-sm);
}

.legal-table th {
	background-color:var(--ground-deep);
	border-bottom:2px solid var(--ink);
	font-family:var(--tepu-e09);
	font-size:var(--text-xs);
	text-transform:uppercase;
	letter-spacing:0.08em;
	color:var(--ink);
}

.legal-table tr:hover td { background-color:var(--ground-elevated); }

.legal-tag-cell {
	font-family:var(--tepu-e09);
	font-size:var(--text-xs);
	font-weight:600;
	color:var(--accent);
}


.contact-layout-grid {
	display:grid;
	grid-template-columns:1fr;
	gap:var(--space-10);
	margin-block:var(--space-8);
}

@media (min-width: 992px) {
	.contact-layout-grid {
		grid-template-columns:1.1fr 1.3fr;
		gap:var(--space-12);
	}
}

.clinic-dossier-card {
	background-color:var(--ground-surface);
	border:3px solid var(--ink);
	padding:var(--space-6);
	box-shadow:var(--shadow-hard);
	display:flex;
	flex-direction:column;
	gap:var(--space-6);
}

@media (min-width: 768px) {
	.clinic-dossier-card { padding:var(--space-8); }
}

.dossier-block {
	border-bottom:1px solid var(--line);
	padding-bottom:var(--space-5);
}

.dossier-block:last-child {
	border-bottom:none;
	padding-bottom:0;
}

.dossier-label {
	font-family:var(--tepu-e09);
	font-size:var(--text-xs);
	font-weight:600;
	text-transform:uppercase;
	letter-spacing:0.08em;
	color:var(--accent);
	margin-bottom:var(--space-2);
	display:block;
}

.dossier-value {
	font-family:var(--tepu-abf);
	font-size:var(--text-base);
	color:var(--ink);
	line-height:1.5;
}

.dossier-value strong {
	font-family:var(--tepu-e09);
	font-size:var(--text-sm);
}

.map-service-link {
	display:inline-flex;
	align-items:center;
	gap:var(--space-2);
	margin-top:var(--space-3);
	font-family:var(--tepu-e09);
	font-size:var(--text-xs);
	font-weight:600;
	text-transform:uppercase;
	letter-spacing:0.05em;
	color:var(--ink);
}

.map-service-link:hover { color:var(--accent); }


.faq-accordion-group {
	display:flex;
	flex-direction:column;
	gap:var(--space-3);
	margin-block:var(--space-8);
}

.faq-item {
	border:2px solid var(--ink);
	background-color:var(--ground-surface);
	box-shadow:var(--shadow-flat);
	transition:box-shadow var(--dur-fast) var(--ease-out);
}

.faq-item[open] { box-shadow:var(--shadow-hard); }

.faq-summary {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:var(--space-4);
	padding:var(--space-4) var(--space-5);
	font-family:var(--tepu-3e8);
	font-size:var(--text-lg);
	font-weight:800;
	text-transform:uppercase;
	color:var(--ink);
	cursor:pointer;
	background-color:var(--ground-deep);
	list-style:none;
	user-select:none;
	min-height:48px;
}

.faq-summary::-webkit-details-marker { display:none; }

.faq-summary:hover { background-color:var(--ground-plate); }

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

.faq-item[open] .faq-summary {
	background-color:var(--ground-surface);
	border-bottom:2px solid var(--ink);
}

.faq-summary .icon {
	transition:transform var(--dur-fast) var(--ease-out);
	color:var(--ink);
}

.faq-item[open] .faq-summary .icon {
	transform:rotate(180deg);
	color:var(--accent);
}

.faq-answer {
	padding:var(--space-5);
	font-size:var(--text-sm);
	line-height:1.6;
	color:var(--ink);
	background-color:var(--ground);
}

.faq-answer p:last-child { margin-bottom:0; }


.error-scene {
	min-height:calc(100vh - 4.25rem);
	display:flex;
	flex-direction:column;
	justify-content:center;
	align-items:flex-start;
	padding-block:var(--space-12);
}

.error-code {
	font-family:var(--tepu-3e8);
	font-size:clamp(5rem, 18vw, 14rem);
	font-weight:900;
	line-height:0.82;
	color:var(--accent);
	margin-bottom:var(--space-4);
	letter-spacing:-0.04em;
}

.receipt-dossier {
	background-color:var(--ground-surface);
	border:3px solid var(--ink);
	padding:var(--space-6);
	box-shadow:var(--shadow-hard);
	max-width:44rem;
	margin-block:var(--space-8);
}

@media (min-width: 768px) {
	.receipt-dossier { padding:var(--space-8); }
}

.receipt-stamp {
	display:inline-block;
	padding:var(--space-2) var(--space-4);
	background-color:var(--accent);
	color:var(--ink-invert);
	font-family:var(--tepu-e09);
	font-size:var(--text-sm);
	font-weight:700;
	text-transform:uppercase;
	letter-spacing:0.1em;
	margin-bottom:var(--space-4);
	border:2px solid var(--ink);
}


@media print {
	.site-header,
	.site-footer,
	.cookie-banner,
	#chat-widget,
	.skip-link,
	.deck-controls,
	.stack-controls-bar,
	.pinned-nav-bar { display:none !important; }

	main { padding-top:0 !important; }

	body, html {
		background:#fff !important;
		color:#000 !important;
	}

	.disclosure-block {
		box-shadow:none !important;
		border:1px solid #000 !important;
		margin-bottom:1rem !important;
		break-inside:avoid;
	}

	.disclosure-block:not([open]) .disclosure-body { display:block !important; }

	.disclosure-summary {
		background:#eee !important;
		color:#000 !important;
	}

	.clause-item { break-inside:avoid; }
}
