
.top-strip {
	background-color:var(--surface);
	border-bottom:1px solid var(--line);
	padding:var(--sp-2xs) var(--frame-padding);
	font-family:var(--life-93a);
	font-size:var(--fs-xs);
	color:var(--ink-soft);
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:var(--sp-sm);

	line-height:var(--lh-snug);
	position:relative;
	z-index:40;
}

.top-strip-left,
.top-strip-right {
	display:flex;
	align-items:center;
	gap:var(--sp-md);
	flex-wrap:wrap;
}

.top-strip a {
	color:var(--ink-soft);
	text-decoration:none;
	display:inline-flex;
	align-items:center;

	gap:var(--sp-2xs);
	transition:color var(--dur-fast) var(--ease-out-luxury);
}

.top-strip a:hover { color:var(--accent); }

.top-strip a:focus-visible {
	outline:2px solid var(--accent);
	outline-offset:2px;
}

.status-indicator {
	display:inline-flex;
	align-items:center;
	gap:var(--sp-2xs);
}

.status-dot {
	width:6px;
	height:6px;
	background-color:var(--accent);
	display:inline-block;
}

@media (max-width: 640px) {
	.top-strip-right { display:none; }
}

.site-header {
	background-color:var(--ground);
	border-bottom:1px solid var(--line);
	padding:var(--sp-sm) var(--frame-padding);
	position:relative;
	z-index:50;
	width:100%;
}

.header-container {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:var(--sp-md);
	max-width:100%;
	flex-wrap:nowrap;
}

.brand {
	display:inline-flex;
	align-items:center;
	text-decoration:none;
	flex-shrink:1;
	max-width:clamp(140px, 32vw, 240px);
	transition:opacity var(--dur-fast) var(--ease-out-luxury);
}

.brand:hover { opacity:0.85; }

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

.brand img {
	height:2.1rem;
	width:auto;
	object-fit:contain;
}

.header-nav { display:none; }

.header-nav-list {
	display:flex;
	align-items:center;
	gap:var(--sp-xl);
	list-style:none;
	margin:0;
	padding:0;
}

.header-nav-link {
	font-family:var(--life-9d9);
	font-size:var(--fs-sm);
	font-weight:500;
	letter-spacing:-0.01em;
	color:var(--ink);
	text-decoration:none;
	padding:var(--sp-xs) 0;
	position:relative;
	display:inline-flex;
	align-items:center;
	min-height:44px;
	transition:color var(--dur-fast) var(--ease-out-luxury);
}

.header-nav-link::after {
	content:"";
	position:absolute;
	bottom:0;
	left:0;
	width:100%;
	height:2px;
	background-color:var(--accent);
	transform:scaleX(0);
	transform-origin:right;
	transition:transform var(--dur-normal) var(--ease-out-luxury);
}

.header-nav-link:hover { color:var(--accent); }

.header-nav-link:hover::after,
.header-nav-link[aria-current="page"]::after {
	transform:scaleX(1);
	transform-origin:left;
}

.header-nav-link[aria-current="page"] {
	color:var(--accent);
	font-weight:600;
}

.header-nav-link:focus-visible {
	outline:2px solid var(--accent);
	outline-offset:4px;
}

.header-actions {
	display:none;
	align-items:center;
	gap:var(--sp-sm);
	flex-shrink:0;
}

@media (min-width: 768px) {
	.header-nav { display:block; }
	.header-nav-list { gap:var(--sp-md); }
}

@media (min-width: 860px) {
	.header-actions { display:flex; }
	.header-nav-list { gap:var(--sp-lg); }
}

@media (min-width: 1040px) {
	.header-nav-list { gap:var(--sp-xl); }
}

.scroll-spine { display:none; }

@media (min-width: 1080px) {
	.scroll-spine {
		display:block;
		position:fixed;
		right:max(1rem, calc((100vw - var(--frame-max-width)) / 2 + 1rem));
		top:50%;
		transform:translateY(-50%);
		width:20px;
		height:180px;
		z-index:60;
		pointer-events:none;
	}

	.spine-track {

		width:2px;
		height:100%;
		background-color:var(--line);
		margin:0 auto;
		position:relative;
		pointer-events:auto;
	}

	.spine-fill {
		position:absolute;
		top:0;
		left:0;
		width:100%;
		height:0%;
		background-color:var(--accent);
		transition:height var(--dur-fast) linear;
	}

	.spine-marker {
		position:absolute;
		left:-4px;
		width:10px;
		height:2px;
		background-color:var(--ink-soft);
		cursor:pointer;
		transition:background-color var(--dur-fast) var(--ease-out-luxury), width var(--dur-fast) var(--ease-out-luxury), left var(--dur-fast) var(--ease-out-luxury);
	}

	.spine-marker:hover,
	.spine-marker:focus-visible {
		background-color:var(--accent);
		width:16px;
		left:-7px;
		outline:none;
	}

	.spine-marker.is-active {
		background-color:var(--accent);
		width:14px;
		left:-6px;
	}

	.spine-marker[data-target="intro"] { top: 0%; }
	.spine-marker[data-target="tabs"] { top: 33%; }
	.spine-marker[data-target="collage"] { top: 66%; }
	.spine-marker[data-target="contact"] { top: 100%; }
}

.mobile-dock {
	position:fixed;
	inset:auto 0 0 0;
	height:var(--dock-height);
	background-color:var(--surface);
	border-top:1px solid var(--line);
	box-shadow:0 -4px 16px rgba(39, 41, 43, 0.06);
	padding-bottom:env(safe-area-inset-bottom);
	z-index:100;
	display:flex;
	align-items:stretch;
	justify-content:space-around;
	width:100%;
}

@media (min-width: 768px) {
	.mobile-dock { display:none !important; }
}

.dock-item {
	flex:1 1 0;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:2px;
	text-decoration:none;
	color:var(--ink-soft);
	padding:var(--sp-2xs);
	min-height:44px;
	background:transparent;
	border:0;
	font:inherit;
	cursor:pointer;
	appearance:none;
	transition:color var(--dur-fast) var(--ease-out-luxury), background-color var(--dur-fast) var(--ease-out-luxury);
}

.dock-item .icon {
	width:22px;
	height:22px;
}

.dock-label {
	font-family:var(--life-540);
	font-size:11px;
	font-weight:500;
	letter-spacing:0.02em;
	line-height:1;
	white-space:nowrap;
}

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

.dock-item:active {
	color:var(--accent);
	background-color:var(--surface-2);
}

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

.dock-item[aria-current="page"] {
	color:var(--accent);
	font-weight:600;
}

.dock-item[aria-expanded="true"] {
	color:var(--accent);
	background-color:var(--surface-2);
}

.nav-drawer {
	position:fixed;
	inset:0 0 var(--dock-height) 0;
	background-color:rgba(39, 41, 43, 0.45);
	backdrop-filter:blur(4px);
	-webkit-backdrop-filter:blur(4px);
	z-index:99;
	display:flex;
	flex-direction:column;
	justify-content:flex-end;
	opacity:0;
	pointer-events:none;
	transition:opacity var(--dur-normal) var(--ease-out-luxury);
}

.nav-drawer.is-open {
	opacity:1;
	pointer-events:auto;
}

.nav-drawer-content {
	background-color:var(--ground);
	border-top:2px solid var(--accent);
	border-left:1px solid var(--line);
	border-right:1px solid var(--line);
	padding:var(--sp-xl) var(--sp-lg);
	max-height:80vh;
	overflow-y:auto;
	transform:translateY(100%);
	transition:transform var(--dur-normal) var(--ease-out-luxury);
}

.nav-drawer.is-open .nav-drawer-content { transform:translateY(0); }

.nav-drawer-header {
	display:flex;
	align-items:center;
	justify-content:space-between;
	margin-bottom:var(--sp-lg);
	padding-bottom:var(--sp-sm);
	border-bottom:1px solid var(--line);
}

.nav-drawer-title {
	font-family:var(--life-9d9);
	font-size:var(--fs-md);
	font-weight:600;
	letter-spacing:-0.01em;
}

.nav-drawer-close {
	background:none;
	border:1px solid var(--line);
	padding:var(--sp-2xs);
	min-width:44px;
	min-height:44px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	cursor:pointer;
	color:var(--ink);
	transition:background-color var(--dur-fast) var(--ease-out-luxury), border-color var(--dur-fast) var(--ease-out-luxury);
}

.nav-drawer-close:hover {
	background-color:var(--surface-2);
	border-color:var(--ink);
}

.nav-drawer-close:active { background-color:var(--surface); }

.nav-drawer-close:focus-visible {
	outline:2px solid var(--accent);
	outline-offset:2px;
}

.nav-drawer-list {
	display:flex;
	flex-direction:column;
	gap:var(--sp-xs);
	margin-bottom:var(--sp-xl);
}

.nav-drawer-link {
	font-family:var(--life-9d9);
	font-size:var(--fs-lg);
	font-weight:600;
	text-decoration:none;
	color:var(--ink);
	padding:var(--sp-sm) 0;
	border-bottom:1px solid var(--line);
	display:flex;
	align-items:center;
	justify-content:space-between;
	transition:color var(--dur-fast) var(--ease-out-luxury), padding-left var(--dur-fast) var(--ease-out-luxury);
}

.nav-drawer-link:hover {
	color:var(--accent);
	padding-left:var(--sp-xs);
}

.nav-drawer-link[aria-current="page"] {
	color:var(--accent);
	border-bottom-color:var(--accent);
}

.nav-drawer-link:focus-visible {
	outline:2px solid var(--accent);
	outline-offset:2px;
}

.nav-drawer-footer {
	font-family:var(--life-93a);
	font-size:var(--fs-xs);
	color:var(--ink-soft);
	line-height:var(--lh-snug);
}

.nav-drawer-footer a {
	color:var(--ink);
	text-decoration:underline;
}

.btn {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:var(--sp-xs);
	font-family:var(--life-93a);
	font-size:var(--fs-xs);
	font-weight:500;
	text-transform:uppercase;
	letter-spacing:0.05em;
	text-decoration:none;
	padding:0 1.5rem;
	height:44px;
	min-height:44px;
	cursor:pointer;
	border:1px solid transparent;
	border-radius:var(--radius-zero);
	line-height:42px;
	box-sizing:border-box;
	transition:background-color var(--dur-fast) var(--ease-out-luxury),
							color var(--dur-fast) var(--ease-out-luxury),
							border-color var(--dur-fast) var(--ease-out-luxury),
							transform var(--dur-fast) var(--ease-out-luxury);
}

.btn .icon {
	width:1rem;
	height:1rem;
}

/* Primary Button */
.btn-primary {
	background-color:var(--accent);
	color:var(--accent-ink);
	border-color:var(--accent);
}

.btn-primary:hover {
	background-color:#126B77;
	border-color:#126B77;
	color:var(--accent-ink);
}

.btn-primary:active {
	background-color:#0D535D;
	border-color:#0D535D;
	transform:translateY(1px);
}

.btn-primary:focus-visible {
	outline:2px solid var(--ink);
	outline-offset:3px;
}

/* Secondary Button */
.btn-secondary {
	background-color:var(--surface);
	color:var(--ink);
	border-color:var(--line);
}

.btn-secondary:hover {
	background-color:var(--surface-2);
	border-color:var(--ink);
	color:var(--ink);
}

.btn-secondary:active {
	background-color:var(--line);
	transform:translateY(1px);
}

.btn-secondary:focus-visible {
	outline:2px solid var(--accent);
	outline-offset:3px;
}

/* Outline Button */
.btn-outline {
	background-color:transparent;
	color:var(--ink);
	border-color:var(--line);
}

.btn-outline:hover {
	background-color:var(--surface);
	border-color:var(--ink);
	color:var(--ink);
}

.btn-outline:active {
	background-color:var(--surface-2);
	transform:translateY(1px);
}

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

/* Small Button variant */
.btn-sm {
	padding:0.5rem 1rem;
	font-size:0.72rem;
	min-height:38px;
}

/* Full Width Button */
.btn-block { width:100%; }

.tab-frame {
	border-top:1px solid var(--line);
	border-bottom:1px solid var(--line);
	background-color:var(--surface);
	position:relative;
	z-index:10;
}

.tab-nav {
	display:flex;
	overflow-x:auto;
	scrollbar-width:none;
	-ms-overflow-style:none;
	border-bottom:1px solid var(--line);
}

.tab-nav::-webkit-scrollbar { display:none; }

.tab-btn {
	flex:1 0 auto;
	font-family:var(--life-9d9);
	font-size:var(--fs-sm);
	font-weight:600;
	letter-spacing:-0.01em;
	color:#0B4952;
	background:transparent;
	border:0;
	border-right:1px solid var(--line);
	padding:var(--sp-md) var(--sp-lg);
	min-height:52px;
	text-align:left;
	cursor:pointer;
	display:inline-flex;
	align-items:center;
	justify-content:space-between;
	gap:var(--sp-sm);
	transition:background-color var(--dur-fast) var(--ease-out-luxury),
							color var(--dur-fast) var(--ease-out-luxury);
	border-radius:var(--radius-zero);
}

.tab-btn:last-child { border-right:0; }

.tab-btn:hover {
	background-color:var(--surface-2);
	color:var(--ink);
}

.tab-btn:active { background-color:var(--line); }

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

.tab-btn[aria-selected="true"] {
	background-color:var(--ground);
	color:#0B4952;
	border-bottom:2px solid var(--accent);
	margin-bottom:-1px;
}

.tab-btn .tab-num {
	font-family:var(--life-93a);
	font-size:var(--fs-xs);
	color:#0B4952;
	font-weight:400;
}

.tab-btn[aria-selected="true"] .tab-num { color:#0B4952; }

.tab-panel {
	display:block;
	padding:var(--sp-2xl) var(--frame-padding);
	background-color:var(--ground);
}

@media (min-width: 900px) {
	.tab-panel .statement-body {
		columns:2;
		column-gap:var(--sp-2xl);
		max-width:none;
	}
}

.tab-panel[hidden] { display:none; }

.signature-collage {
	position:relative;
	width:100%;
	padding:var(--sp-3xl) 0;
	overflow:hidden;
	background-color:var(--surface);
	border-top:1px solid var(--line);
	border-bottom:1px solid var(--line);
}

.collage-inner {
	max-width:var(--frame-max-width);
	margin:0 auto;
	padding:0 var(--frame-padding);
	position:relative;
	min-height:480px;
}

@media (min-width: 768px) {
	.collage-inner { min-height:580px; }
}

.collage-item {
	position:absolute;
	box-shadow:0 12px 32px rgba(39, 41, 43, 0.12);
	border:1px solid var(--line);
	background-color:var(--ground);
	transition:transform var(--dur-normal) var(--ease-out-luxury),
							box-shadow var(--dur-normal) var(--ease-out-luxury);
}

.collage-item:hover {
	box-shadow:0 18px 48px rgba(39, 41, 43, 0.18);
	z-index:5 !important;
}

.collage-item img {
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
}

.collage-item-1 {
	width:58%;
	max-width:560px;
	top:0;
	left:2%;
	z-index:1;
	transform:rotate(-1.5deg);
}

.collage-item-2 {
	width:46%;
	max-width:440px;
	top:18%;
	right:4%;
	z-index:2;
	transform:rotate(1.8deg);
}

.collage-item-3 {
	width:38%;
	max-width:360px;
	bottom:0;
	left:28%;
	z-index:3;
	transform:rotate(-0.8deg);
}

.collage-caption {
	position:absolute;
	bottom:var(--sp-md);
	left:var(--sp-md);
	right:var(--sp-md);
	background-color:rgba(238, 244, 247, 0.92);
	backdrop-filter:blur(6px);
	-webkit-backdrop-filter:blur(6px);
	border:1px solid var(--line);
	padding:var(--sp-xs) var(--sp-sm);
	font-family:var(--life-93a);
	font-size:var(--fs-xs);
	color:var(--ink);
}

@media (max-width: 640px) {
	.signature-collage { padding:var(--sp-xl) 0; }
	.collage-inner {
		min-height:auto;
		display:flex;
		flex-direction:column;
		gap:var(--sp-md);
		position:static;
	}
	.collage-item {
		position:static;
		width:100%;
		max-width:none;
		transform:none !important;
	}
}

.data-table-container {
	overflow-x:auto;
	border:1px solid var(--line);
	background-color:var(--ground);
	margin:var(--sp-lg) 0;
}

.data-table {
	width:100%;
	min-width:580px;
	border-collapse:collapse;
	font-family:var(--life-540);
}

.data-table th,
.data-table td {
	padding:var(--sp-sm) var(--sp-md);
	border-bottom:1px solid var(--line);
	border-right:1px solid var(--line);
}

.data-table th {
	font-family:var(--life-9d9);
	font-weight:600;
	letter-spacing:0.02em;
}

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

.data-table tr:last-child td { border-bottom:0; }

.data-table tr:hover td { background-color:var(--surface); }

.spec-list {
	border-top:1px solid var(--line);
	margin:var(--sp-md) 0;
}

.spec-item {
	display:flex;
	align-items:baseline;
	justify-content:space-between;
	padding:var(--sp-xs) 0;
	border-bottom:1px solid var(--line);
	font-size:var(--fs-sm);
}

.spec-key {
	font-family:var(--life-93a);
	font-size:var(--fs-xs);
	color:var(--ink-soft);
	text-transform:uppercase;
	letter-spacing:0.05em;
}

.spec-val {
	font-family:var(--life-93a);
	color:var(--ink);
	font-weight:500;
	text-align:right;
}

.catalogue-filter {
	display:flex;
	align-items:center;
	gap:var(--sp-xs);
	flex-wrap:wrap;
	padding:var(--sp-md) 0;
	border-bottom:1px solid var(--line);
	margin-bottom:var(--sp-xl);
	position:relative;
	z-index:10;
}

.filter-btn {
	font-family:var(--life-93a);
	font-size:var(--fs-xs);
	background:var(--surface);
	border:1px solid var(--line);
	padding:var(--sp-xs) var(--sp-sm);
	cursor:pointer;
	color:var(--ink);
	min-height:44px;
	display:inline-flex;
	align-items:center;
	gap:var(--sp-2xs);
	transition:background-color var(--dur-fast) var(--ease-out-luxury),
							border-color var(--dur-fast) var(--ease-out-luxury),
							color var(--dur-fast) var(--ease-out-luxury);
}

.filter-btn:hover {
	background:var(--surface-2);
	border-color:var(--ink);
}

.filter-btn:active { background:var(--line); }

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

.filter-btn.is-active {
	background:var(--accent);
	border-color:var(--accent);
	color:var(--accent-ink);
}

.catalogue-grid {
	display:grid;
	grid-template-columns:1fr;
	gap:1px;
	background-color:var(--line);
	border:1px solid var(--line);
}

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

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

.catalogue-item {
	background-color:var(--ground);
	display:flex;
	flex-direction:column;
	height:100%;
	position:relative;
	transition:background-color var(--dur-fast) var(--ease-out-luxury);
}

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

.catalogue-image-box {
	position:relative;
	aspect-ratio:4 / 3;
	overflow:hidden;
	background-color:var(--surface-2);
	border-bottom:1px solid var(--line);
}

.catalogue-image-box img {
	width:100%;
	height:100%;
	object-fit:cover;
	transition:transform var(--dur-deliberate) var(--ease-out-luxury);
}

.catalogue-item:hover .catalogue-image-box img { transform:scale(1.03); }

.catalogue-content {
	padding:var(--sp-lg);
	display:flex;
	flex-direction:column;
	flex-grow:1;
}

.catalogue-category {
	font-family:var(--life-93a);
	font-size:var(--fs-xs);
	text-transform:uppercase;
	letter-spacing:0.05em;
	color:var(--accent);
	margin-bottom:var(--sp-2xs);
}

.catalogue-title {
	font-family:var(--life-9d9);
	font-size:var(--fs-md);
	font-weight:600;
	line-height:var(--lh-snug);
	margin-bottom:var(--sp-xs);
}

.catalogue-price {
	font-family:var(--life-93a);
	font-size:var(--fs-sm);
	font-weight:700;
	color:var(--ink);
	margin-bottom:var(--sp-sm);
}

.catalogue-desc {
	font-size:var(--fs-sm);
	line-height:var(--lh-snug);
	color:var(--ink-soft);
	margin-bottom:var(--sp-md);
	flex-grow:1;
}

.catalogue-footer {
	margin-top:auto;
	padding-top:var(--sp-sm);
	border-top:1px solid var(--line);
}

.inquiry-form {
	background-color:var(--surface);
	border:1px solid var(--line);
	padding:var(--sp-xl);
}

.form-grid {
	display:grid;
	grid-template-columns:1fr;
	gap:var(--sp-md);
}

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

.form-field {
	display:flex;
	flex-direction:column;
	gap:var(--sp-2xs);
}

.form-label {
	font-family:var(--life-93a);
	font-size:var(--fs-xs);
	font-weight:500;
	text-transform:uppercase;
	letter-spacing:0.05em;
	color:var(--ink);
}

.form-label .req {
	color:var(--accent);
	margin-left:2px;
}

.form-input,
.form-textarea,
.form-select {
	background-color:var(--ground);
	border:1px solid var(--line);
	color:var(--ink);
	font-family:var(--life-540);
	font-size:16px;
	padding:0 var(--sp-md);
	border-radius:var(--radius-zero);
	height:44px;
	min-height:44px;
	line-height:42px;
	box-sizing:border-box;
	width:100%;
	transition:border-color var(--dur-fast) var(--ease-out-luxury),
							background-color var(--dur-fast) var(--ease-out-luxury),
							box-shadow var(--dur-fast) var(--ease-out-luxury);
}

@media (max-width: 48rem) {
	input, select, textarea { font-size:max(16px, 1rem) !important; }
}

.form-textarea {
	height:auto;
	line-height:var(--lh-reading);
	padding:0.75rem var(--sp-md);
}

.form-input:hover,
.form-textarea:hover,
.form-select:hover { border-color:var(--ink-soft); }

.form-input:focus,
.form-textarea:focus,
.form-select:focus {
	outline:none;
	border-color:var(--accent);
	box-shadow:0 0 0 1px var(--accent);
	background-color:#FFF;
}

.form-input.is-invalid,
.form-textarea.is-invalid,
.form-select.is-invalid {
	border-color:#C0392B;
	box-shadow:0 0 0 1px #C0392B;
}

.form-error {
	font-family:var(--life-93a);
	font-size:var(--fs-xs);
	color:#C0392B;
	display:none;
	margin-top:2px;
}

.form-input.is-invalid + .form-error,
.form-textarea.is-invalid + .form-error,
.form-select.is-invalid + .form-error { display:block; }

.form-textarea {
	min-height:120px;
	resize:vertical;
}

.form-consent {
	display:flex;
	align-items:flex-start;
	gap:var(--sp-xs);
	cursor:pointer;
	font-size:var(--fs-sm);
	color:var(--ink);
	margin:var(--sp-sm) 0;
}

.form-consent input[type="checkbox"] {
	width:20px;
	height:20px;
	margin-top:2px;
	accent-color:var(--accent);
	border-radius:var(--radius-zero);
	flex-shrink:0;
	cursor:pointer;
}

.form-consent input[type="checkbox"]:focus-visible {
	outline:2px solid var(--accent);
	outline-offset:2px;
}

.form-status {
	padding:var(--sp-md);
	border:1px solid var(--line);
	margin-top:var(--sp-md);
	display:none;
	font-family:var(--life-93a);
	font-size:var(--fs-sm);
}

.form-status.is-success {
	display:block;
	background-color:var(--ground);
	border-color:var(--accent);
	color:var(--ink);
}

.form-status.is-error {
	display:block;
	background-color:var(--surface-2);
	border-color:#C0392B;
	color:#C0392B;
}

.consent-banner {
	position:fixed;
	inset:auto 0 0 0;
	background-color:var(--surface);
	border-top:2px solid var(--accent);
	padding:var(--sp-sm) var(--frame-padding);
	box-shadow:0 -8px 24px rgba(39, 41, 43, 0.12);
	z-index:150;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:var(--sp-md);
	max-height:20vh;
	transform:translateY(0);
	transition:transform var(--dur-normal) var(--ease-out-luxury);
}

@media (min-width: 48rem) {
	.consent-banner {
		position:fixed;
		inset:auto 0 0 0;
		width:100%;
		max-width:100%;
		left:0;
		right:0;
		bottom:0;
		flex-direction:row;
		align-items:center;
		justify-content:space-between;
	}
}

@media (max-width: 767px) {
	.consent-banner { bottom:var(--dock-height); }
}

.consent-banner[hidden] { display:none; }

.consent-copy {
	font-family:var(--life-540);
	font-size:var(--fs-xs);
	line-height:var(--lh-snug);
	color:var(--ink);
	max-width:var(--measure-prose);
}

.consent-copy a {
	color:var(--accent);
	font-weight:500;
}

.consent-actions {
	display:flex;
	align-items:center;
	gap:var(--sp-xs);
	flex-shrink:0;
}

@media (max-width: 680px) {
	.consent-banner {
		flex-direction:column;
		align-items:flex-start;
	}
	.consent-actions { width:100%; }
	.consent-actions .btn { flex:1 1 0; }
}

.chat-launcher {
	position:fixed;
	bottom:calc(var(--dock-height) + 12px);
	right:1rem;
	z-index:120;
	background-color:var(--ink);
	color:var(--ground);
	border:1px solid var(--line);
	padding:0 var(--sp-md);
	min-height:46px;
	display:inline-flex;
	align-items:center;
	gap:var(--sp-xs);
	cursor:pointer;
	box-shadow:0 4px 14px rgba(39, 41, 43, 0.16);
	transition:background-color var(--dur-fast) var(--ease-out-luxury),
							transform var(--dur-fast) var(--ease-out-luxury),
							border-color var(--dur-fast) var(--ease-out-luxury);
}

@media (max-width: 767px) {
	.chat-launcher { display:none !important; }
}

@media (min-width: 768px) {
	.chat-launcher { display:none !important; }
}

.chat-launcher:hover {
	background-color:var(--accent);
	border-color:var(--accent);
	color:var(--accent-ink);
}

.chat-launcher:active { transform:translateY(1px); }

.chat-launcher:focus-visible {
	outline:2px solid var(--accent);
	outline-offset:3px;
}

.chat-launcher .icon {
	width:18px;
	height:18px;
}

.chat-launcher-label {
	font-family:var(--life-93a);
	font-size:var(--fs-xs);
	font-weight:500;
	letter-spacing:0.04em;
	text-transform:uppercase;
}

.chat-unread-badge {
	background-color:var(--accent);
	color:var(--accent-ink);
	font-family:var(--life-93a);
	font-size:10px;
	font-weight:700;
	padding:1px 6px;
	border-radius:var(--radius-zero);
	display:none;
}

.chat-unread-badge.is-visible { display:inline-block; }

/* Chat Panel */
.chat-panel {
	position:fixed;
	bottom:calc(var(--dock-height) + 12px);
	right:1rem;
	width:calc(100vw - 2rem);
	max-width:380px;
	height:520px;
	max-height:calc(100vh - var(--dock-height) - 40px);
	max-height:calc(100svh - var(--dock-height) - 40px);
	background-color:var(--ground);
	border:1px solid var(--line);
	box-shadow:0 16px 40px rgba(39, 41, 43, 0.2);
	z-index:130;
	display:flex;
	flex-direction:column;
	transform:translateY(20px);
	opacity:0;
	pointer-events:none;
	transition:transform var(--dur-normal) var(--ease-out-luxury),
							opacity var(--dur-normal) var(--ease-out-luxury);
}

@media (min-width: 1080px) {
	.chat-panel {
		bottom:1.5rem;
		right:1.5rem;
		max-height:calc(100vh - 60px);
		max-height:calc(100svh - 60px);
	}
}

.chat-panel.is-open {
	transform:translateY(0);
	opacity:1;
	pointer-events:auto;
}

.chat-header {
	background-color:var(--surface);
	border-bottom:1px solid var(--line);
	padding:var(--sp-sm) var(--sp-md);
	display:flex;
	align-items:center;
	justify-content:space-between;
}

.chat-header-title {
	font-family:var(--life-9d9);
	font-size:var(--fs-sm);
	font-weight:600;
	display:flex;
	align-items:center;
	gap:var(--sp-xs);
}

.chat-close-btn {
	background:transparent;
	border:0;
	cursor:pointer;
	padding:var(--sp-2xs);
	min-width:44px;
	min-height:44px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	color:var(--ink);
	transition:color var(--dur-fast) var(--ease-out-luxury);
}

.chat-close-btn:hover { color:var(--accent); }

.chat-close-btn:focus-visible {
	outline:2px solid var(--accent);
	outline-offset:-2px;
}

.chat-messages {
	flex-grow:1;
	overflow-y:auto;
	padding:var(--sp-md);
	display:flex;
	flex-direction:column;
	gap:var(--sp-sm);
	background-color:var(--ground);
}

.chat-bubble {
	max-width:85%;
	padding:var(--sp-xs) var(--sp-sm);
	font-size:var(--fs-sm);
	line-height:var(--lh-snug);
	border:1px solid var(--line);
}

.chat-bubble-operator {
	align-self:flex-start;
	background-color:var(--surface);
	color:var(--ink);
	border-left:2px solid var(--accent);
}

.chat-bubble-user {
	align-self:flex-end;
	background-color:var(--accent);
	color:var(--accent-ink);
	border-color:var(--accent);
}

.chat-bubble-time {
	font-family:var(--life-93a);
	font-size:10px;
	color:var(--ink-soft);
	margin-top:2px;
	display:block;
}

.chat-bubble-user .chat-bubble-time { color:rgba(255, 255, 255, 0.8); }

.chat-intake {
	padding:var(--sp-md);
	border-top:1px solid var(--line);
	background-color:var(--surface);
}

.chat-input-row {
	display:flex;
	align-items:stretch;
	border-top:1px solid var(--line);
	background-color:var(--ground);
}

.chat-input {
	flex-grow:1;
	border:0;
	padding:var(--sp-sm) var(--sp-md);
	background:transparent;
	color:var(--ink);
	min-height:44px;
}

.chat-input:focus {
	outline:none;
	background-color:#FFF;
}

.chat-send-btn {
	background-color:var(--ink);
	color:var(--ground);
	border:0;
	padding:0 var(--sp-md);
	min-height:44px;
	cursor:pointer;
	transition:background-color var(--dur-fast) var(--ease-out-luxury);
}

.chat-send-btn:hover {
	background-color:var(--accent);
	color:var(--accent-ink);
}

.chat-send-btn:active { background-color:#0D535D; }

.chat-send-btn:focus-visible {
	outline:2px solid var(--accent);
	outline-offset:-2px;
}

.site-footer {
	background-color:var(--surface);
	border-top:1px solid var(--line);
	padding:var(--sp-3xl) var(--frame-padding) calc(var(--sp-xl) + 140px);
	position:relative;
	z-index:20;
}

@media (max-width: 767px) {
	.site-footer { padding-bottom:calc(var(--dock-height) + 160px); }
}

.footer-grid {
	display:grid;
	grid-template-columns:1fr;
	gap:var(--sp-2xl);
	margin-bottom:var(--sp-2xl);
}

@media (min-width: 768px) {
	.footer-grid { grid-template-columns:1.5fr 1fr 1fr; }
}

.footer-brand-col .brand {
	max-width:280px;
	margin-bottom:var(--sp-md);
}

.footer-brand-col .brand img {
	height:2.4rem;
	width:auto;
}

.footer-summary {
	font-size:var(--fs-sm);
	color:var(--ink-soft);
	max-width:44ch;
	line-height:var(--lh-snug);
	margin-bottom:var(--sp-md);
}

.footer-facts-list {
	font-family:var(--life-93a);
	font-size:var(--fs-xs);
	color:var(--ink-soft);
	line-height:1.8;
}

.footer-facts-list strong { color:var(--ink); }

.footer-heading {
	font-family:var(--life-9d9);
	font-size:var(--fs-sm);
	font-weight:600;
	text-transform:uppercase;
	letter-spacing:0.05em;
	color:var(--ink);
	margin-bottom:var(--sp-md);
	padding-bottom:var(--sp-xs);
	border-bottom:1px solid var(--line);
}

.footer-links {
	display:flex;
	flex-direction:column;
	gap:var(--sp-xs);
}

.footer-links a {
	font-size:var(--fs-sm);
	color:var(--ink-soft);
	text-decoration:none;
	transition:color var(--dur-fast) var(--ease-out-luxury);
	padding:2px 0;
	display:inline-flex;
	align-items:center;
	min-height:44px;
}

.footer-links a:hover { color:var(--accent); }

.footer-links a:focus-visible {
	outline:2px solid var(--accent);
	outline-offset:2px;
}

.footer-legal-bar {
	border-top:1px solid var(--line);
	padding-top:var(--sp-lg);
	display:flex;
	align-items:center;
	justify-content:space-between;
	flex-wrap:wrap;
	gap:var(--sp-md);
	font-family:var(--life-93a);
	font-size:var(--fs-xs);
	color:var(--ink-soft);
}

.footer-legal-links {
	display:flex;
	align-items:center;
	gap:var(--sp-md);
	flex-wrap:wrap;
}

.footer-legal-links a,
.footer-legal-links button {
	color:var(--ink-soft);
	text-decoration:underline;
	text-decoration-color:var(--line);
	text-underline-offset:3px;
	background:none;
	border:0;
	font:inherit;
	cursor:pointer;
	padding:0;
	transition:color var(--dur-fast) var(--ease-out-luxury);
}

.footer-legal-links a:hover,
.footer-legal-links button:hover { color:var(--accent); }

.footer-legal-links a:focus-visible,
.footer-legal-links button:focus-visible {
	outline:2px solid var(--accent);
	outline-offset:2px;
}
