.icon {
	display:inline-block;
	width:1.2em;
	height:1.2em;
	vertical-align:-0.22em;
	fill:currentColor;
	stroke:none;
	flex-shrink:0;
	transition:transform var(--dur-fast) var(--ease-out);
}


.icon--sm {
	width:1em;
	height:1em;
	vertical-align:-0.15em;
}


.icon--lg {
	width:1.5em;
	height:1.5em;
	vertical-align:-0.28em;
}


.btn {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:var(--space-xs);
	min-height:48px;
	padding:0.75rem 1.5rem;
	font-family:var(--heta-b8f);
	font-size:var(--text-sm);
	font-weight:700;
	letter-spacing:-0.01em;
	text-decoration:none;
	border-radius:var(--radius);
	border:1px solid transparent;
	cursor:pointer;
	white-space:normal;
	text-align:center;
	line-height:1.2;
	transition:background-color var(--dur-fast) var(--ease-out),
							color var(--dur-fast) var(--ease-out),
							border-color var(--dur-fast) var(--ease-out),
							transform var(--dur-instant) var(--ease-out),
							box-shadow var(--dur-fast) var(--ease-out);
	user-select:none;
	-webkit-user-select:none;
}


.btn--primary {
	background-color:var(--ink);
	color:var(--surface-lift);
	border-color:var(--ink);
}


.btn--primary:hover {
	background-color:var(--accent);
	border-color:var(--accent);
	color:var(--surface-lift);
}


.btn--primary:active {
	background-color:var(--accent-hover);
	border-color:var(--accent-hover);
	transform:translateY(1px);
}


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


.btn--secondary {
	background-color:var(--accent);
	color:var(--surface-lift);
	border-color:var(--accent);
}


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


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


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


.btn--ghost {
	background-color:transparent;
	color:var(--ink);
	border-color:var(--ink);
}


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


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


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


.btn--surface {
	background-color:var(--surface-lift);
	color:var(--ink);
	border-color:var(--line);
}


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


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


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


.btn--sm {
	min-height:44px;
	padding:0.5rem 1rem;
	font-size:var(--text-xs);
}


.btn--lg {
	min-height:56px;
	padding:1rem 2rem;
	font-size:var(--text-base);

}


.btn-text {
	display:inline-flex;
	align-items:center;
	gap:var(--space-2xs);
	min-height:44px;
	padding:0.5rem 0.25rem;
	background:none;
	border:none;
	color:var(--ink);
	font-family:var(--heta-b8f);
	font-weight:700;
	font-size:var(--text-sm);
	cursor:pointer;
	text-decoration:underline;
	text-underline-offset:4px;
	text-decoration-thickness:1px;
	transition:color var(--dur-fast) var(--ease-out),
							text-decoration-color var(--dur-fast) var(--ease-out),
							transform var(--dur-instant) var(--ease-out);
}


.btn-text:hover {
	color:var(--accent);
	text-decoration-color:var(--accent);
}


.btn-text:active {

	color:var(--accent-hover);
	transform:translateY(1px);
}


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


.badge {
	display:inline-flex;
	align-items:center;
	gap:0.35rem;
	padding:0.35rem 0.65rem;
	font-family:var(--heta-c73);

	font-size:var(--text-2xs);
	font-weight:500;
	line-height:1;
	text-transform:uppercase;
	letter-spacing:0.05em;
	background-color:var(--surface);
	color:var(--ink);
	border:1px solid var(--line);
	border-radius:var(--radius);
}


.badge--accent {
	background-color:var(--accent);
	color:var(--surface-lift);
	border-color:var(--accent);
}


.badge--ink {
	background-color:var(--ink);
	color:var(--surface-lift);
	border-color:var(--ink);
}


.badge--outline {
	background-color:transparent;
	border-color:var(--ink-muted);
	color:var(--ink);
}


.site-header {
	position:sticky;
	top:0;
	z-index:900;
	width:100%;
	background-color:var(--ground);
	border-bottom:1px solid var(--line);
	transition:background-color var(--dur-fast) var(--ease-out),
							border-color var(--dur-fast) var(--ease-out),
							box-shadow var(--dur-fast) var(--ease-out),
							padding var(--dur-fast) var(--ease-out);
}


@supports (backdrop-filter: blur(12px)) {
	.site-header {
		background-color:rgba(237, 230, 228, 0.94);
		backdrop-filter:blur(12px);
		-webkit-backdrop-filter:blur(12px);
	}
}


.site-header.is-condensed {
	box-shadow:0 4px 20px rgba(26, 22, 22, 0.06);
}


.header-inner {
	display:flex;
	align-items:center;
	justify-content:space-between;
	min-height:72px;
	gap:var(--space-md);
}


.site-header.is-condensed .header-inner {
	min-height:60px;
}


.brand {
	display:inline-flex;
	align-items:center;
	padding-block:var(--space-2xs);
	min-height:44px;
}


.brand img {
	height:2.1rem;
	width:auto;
	max-height:40px;
	display:block;
}


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


.nav-rail {
	display:flex;
	align-items:center;
	gap:var(--space-lg);
}


.nav-rail__list {
	display:flex;
	align-items:center;
	gap:var(--space-xs);
}


.nav-rail__item {
	display:inline-flex;
}


.nav-rail__link {
	display:inline-flex;
	align-items:center;
	min-height:44px;
	padding:0.5rem 0.85rem;
	font-family:var(--heta-b8f);
	font-size:var(--text-sm);
	font-weight:700;
	color:var(--ink);
	border-bottom:2px solid transparent;
	transition:color var(--dur-fast) var(--ease-out),
							border-color var(--dur-fast) var(--ease-out),
							background-color var(--dur-fast) var(--ease-out);
}


.nav-rail__link:hover {
	color:var(--accent);
	background-color:var(--surface);
}


.nav-rail__link:active {
	color:var(--accent-hover);
	background-color:var(--line);
}


.nav-rail__link:focus-visible {
	outline:2px solid var(--ink);
	outline-offset:2px;
}


.nav-rail__link[aria-current='page'] {
	border-bottom-color:var(--accent);
	color:var(--ink);
}


.nav-rail__action {
	display:inline-flex;
}


.nav-toggle {
	display:none;
	min-height:44px;
	min-width:44px;
	padding:0.5rem;
	background-color:transparent;
	border:1px solid var(--line-dark);
	color:var(--ink);
	cursor:pointer;
	align-items:center;
	justify-content:center;
	transition:background-color var(--dur-fast) var(--ease-out),
							border-color var(--dur-fast) var(--ease-out),
							transform var(--dur-instant) var(--ease-out);
}


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


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


.nav-toggle:focus-visible {
	outline:2px solid var(--ink);
	outline-offset:2px;
}


@media (max-width: 900px) {
	.nav-toggle {
		display:inline-flex;
	}


	.nav-rail {
		position:fixed;
		top:72px;
		right:0;
		bottom:0;
		width:min(340px, 86vw);
		background-color:var(--surface-lift);
		border-left:1px solid var(--line);
		flex-direction:column;
		align-items:stretch;
		justify-content:flex-start;
		padding:var(--space-xl) var(--space-lg);
		gap:var(--space-xl);
		transform:translateX(100%);
		visibility:hidden;
		overflow-y:auto;
		transition:transform var(--dur-base) var(--ease-out),
								visibility var(--dur-base) var(--ease-out);
		box-shadow:var(--shadow-deep);
	}


	.nav-rail.is-open {
		transform:translateX(0);
		visibility:visible;
	}


	.nav-rail__list {
		flex-direction:column;
		align-items:stretch;
		gap:0;
	}


	.nav-rail__item {
		border-bottom:1px solid var(--line);
	}


	.nav-rail__link {
		width:100%;
		padding:1rem 0.5rem;
		font-size:var(--text-md);
	}


	.nav-rail__action {
		width:100%;
	}


	.nav-rail__action .btn {
		width:100%;
	}
}


.hero-block {
	padding-block:clamp(2rem, 5vw, 4.5rem);
	border-bottom:1px solid var(--line);
}


.hero-headline {
	font-size:var(--text-3xl);
	font-weight:800;
	line-height:1.05;
	letter-spacing:-0.035em;
	margin-block-end:var(--space-md);
}


.hero-prose {
	font-size:var(--text-md);
	color:var(--ink-muted);
	line-height:1.5;
	margin-block-end:var(--space-lg);
	max-width:58ch;
}


.signature-collage {
	position:relative;
	width:100%;
	min-height:380px;
	display:flex;
	align-items:center;
	justify-content:center;
}


.signature-collage__stage {
	position:relative;
	width:100%;
	height:420px;
}


.signature-collage__img {
	position:absolute;
	object-fit:cover;
	border:1px solid var(--line);
	background-color:var(--surface);
	box-shadow:var(--shadow-subtle);
	border-radius:var(--radius);
}


.signature-collage__img--base {
	top:0;
	left:0;
	width:78%;
	height:290px;
	z-index:1;
}


.signature-collage__img--overlap {
	right:0;
	bottom:0;
	width:62%;
	height:240px;
	z-index:2;
	border:2px solid var(--ground);
	box-shadow:var(--shadow-lift);
}


.signature-collage__badge {
	position:absolute;
	top:15%;
	right:8%;
	z-index:3;
	background-color:var(--ink);
	color:var(--surface-lift);
	padding:0.6rem 0.9rem;
	font-family:var(--heta-c73);
	font-size:var(--text-2xs);
	border-radius:var(--radius);
	line-height:1.2;
}


.signature-collage__caption {
	position:absolute;
	left:4%;
	bottom:12px;
	z-index:3;
	background-color:rgba(237, 230, 228, 0.96);
	padding:0.4rem 0.75rem;
	font-family:var(--heta-c73);
	font-size:var(--text-2xs);
	color:var(--ink-muted);
	border:1px solid var(--line);
}


.job-section {
	padding-block:clamp(2.5rem, 6vw, 5rem);
	border-bottom:1px solid var(--line);
}


.job-section:nth-of-type(even) {
	background-color:var(--surface);
}


.job-heading {
	font-size:var(--text-2xl);
	font-weight:700;
	line-height:1.15;
	letter-spacing:-0.025em;
	margin-block-end:var(--space-md);
}


.job-prose {
	font-size:var(--text-base);
	color:var(--ink);
	line-height:1.65;
	max-width:var(--measure-prose);
	margin-block-end:var(--space-lg);
}


.job-facts {
	display:grid;
	grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));
	gap:var(--space-sm);
	padding:var(--space-md);
	background-color:var(--surface-lift);
	border:1px solid var(--line);
	border-radius:var(--radius);
}


.job-fact {
	display:flex;
	flex-direction:column;
	gap:0.25rem;
}


.job-fact__label {
	font-family:var(--heta-c73);
	font-size:var(--text-2xs);
	color:var(--ink-muted);
	text-transform:uppercase;
	letter-spacing:0.05em;
}


.job-fact__value {
	font-family:var(--heta-c73);
	font-size:var(--text-sm);
	font-weight:500;
	color:var(--ink);
}


.job-evidence {
	width:100%;
	margin-block:var(--space-xl);
	border-top:1px solid var(--line);
	border-bottom:1px solid var(--line);
	background-color:var(--surface);
}


.job-evidence__img {
	width:100%;
	max-height:600px;
	object-fit:cover;
	display:block;
}


.job-evidence__bar {
	padding:0.75rem var(--gutter);
	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
	align-items:center;
	gap:var(--space-sm);
	border-top:1px solid var(--line);
	background-color:var(--ground);
}


.job-evidence__caption {
	font-family:var(--heta-c73);
	font-size:var(--text-xs);
	color:var(--ink-muted);
}


.throw-deck {
	position:relative;
	width:100%;
	padding-block:clamp(2rem, 5vw, 4rem);
	border-bottom:1px solid var(--line);
}


.throw-deck__header {
	margin-block-end:var(--space-lg);
}


.throw-deck__viewport {
	width:100%;
	overflow-x:auto;
	scroll-snap-type:x mandatory;
	-webkit-overflow-scrolling:touch;
	scrollbar-width:thin;
	scrollbar-color:var(--line-dark) transparent;
	cursor:grab;
	padding-block-end:var(--space-sm);
}


.throw-deck__viewport:active {
	cursor:grabbing;
}


.throw-deck__track {
	display:flex;
	gap:var(--space-md);
	width:max-content;
}


.throw-deck__card {
	flex:0 0 clamp(280px, 80vw, 360px);
	scroll-snap-align:start;
	background-color:var(--surface-lift);
	border:1px solid var(--line);
	padding:var(--space-lg);
	display:flex;
	flex-direction:column;
	justify-content:space-between;
	min-height:380px;
	border-radius:var(--radius);
	transition:border-color var(--dur-fast) var(--ease-out),
							box-shadow var(--dur-fast) var(--ease-out);
}


.throw-deck__card:hover {
	border-color:var(--ink);
	box-shadow:var(--shadow-lift);
}


.throw-deck__card:focus-within {
	border-color:var(--ink);
	outline:2px solid var(--accent);
	outline-offset:2px;
}


.throw-deck__card-head {
	display:flex;
	flex-direction:column;
	gap:var(--space-xs);
	margin-block-end:var(--space-md);
}


.throw-deck__card-title {
	font-size:var(--text-lg);
	font-weight:700;
	line-height:1.2;
}


.throw-deck__card-price {
	font-family:var(--heta-c73);
	font-size:var(--text-md);
	font-weight:600;
	color:var(--accent);
}


.throw-deck__card-body {
	font-size:var(--text-sm);
	color:var(--ink-muted);
	line-height:1.5;
	margin-block-end:var(--space-lg);
}


.throw-deck__card-foot {
	display:flex;
	align-items:center;
	justify-content:space-between;
	padding-top:var(--space-sm);
	border-top:1px solid var(--line);
}


.throw-deck__controls {
	display:flex;
	align-items:center;
	gap:var(--space-xs);
	margin-block-start:var(--space-md);
}


.throw-deck__btn {
	min-height:44px;
	min-width:44px;
	padding:0.5rem;
	background-color:var(--surface-lift);
	border:1px solid var(--line);
	color:var(--ink);
	cursor:pointer;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	transition:background-color var(--dur-fast) var(--ease-out),
							border-color var(--dur-fast) var(--ease-out),
							transform var(--dur-instant) var(--ease-out);
}


.throw-deck__btn:hover {
	background-color:var(--ink);
	border-color:var(--ink);
	color:var(--surface-lift);
}


.throw-deck__btn:active {
	background-color:var(--accent);
	border-color:var(--accent);
	transform:translateY(1px);
}


.throw-deck__btn:focus-visible {
	outline:2px solid var(--ink);
	outline-offset:2px;
}


.pinned-deck {
	position:relative;
	border-bottom:1px solid var(--line);
	background-color:var(--surface);
	padding-block:clamp(3rem, 6vw, 6rem);
}


.pinned-deck__indicator {
	width:100%;
	height:2px;
	background-color:var(--line);
	margin-block-end:var(--space-xl);
	position:relative;
}


.pinned-deck__bar {
	height:100%;
	width:33.333%;
	background-color:var(--accent);
	transition:width var(--dur-base) var(--ease-out);
}


.pinned-deck__pane {
	background-color:var(--surface-lift);
	border:1px solid var(--line);
	padding:var(--space-xl);
	border-radius:var(--radius);
}


.fit-checker {
	background-color:var(--surface-lift);
	border:1px solid var(--line);
	padding:clamp(1.5rem, 4vw, 3rem);
	border-radius:var(--radius);
	margin-block:var(--space-xl);
}


.fit-checker__grid {
	display:grid;
	grid-template-columns:1fr;
	gap:var(--space-xl);
}


@media (min-width: 900px) {
	.fit-checker__grid {
		grid-template-columns:1.4fr 1fr;
	}
}


.fit-checker__options {
	display:flex;
	flex-direction:column;
	gap:var(--space-sm);
}


.checker-option {
	display:flex;
	align-items:flex-start;
	gap:var(--space-sm);
	padding:0.85rem 1rem;
	border:1px solid var(--line);
	cursor:pointer;
	background-color:var(--surface);
	transition:border-color var(--dur-fast) var(--ease-out),
							background-color var(--dur-fast) var(--ease-out);
	min-height:48px;
}


.checker-option:hover {
	border-color:var(--ink);
	background-color:var(--surface-lift);
}


.checker-option:active {
	background-color:var(--line);
}


.checker-option:focus-within {
	outline:2px solid var(--accent);
	outline-offset:2px;
}


.checker-option input[type='checkbox'] {
	width:20px;
	height:20px;
	accent-color:var(--accent);
	margin-top:2px;
	cursor:pointer;
}


.checker-option__label {
	display:flex;
	flex-direction:column;
	gap:0.2rem;
	flex:1 1 auto;
}


.checker-option__title {
	font-family:var(--heta-b8f);
	font-weight:700;
	font-size:var(--text-sm);
	color:var(--ink);
}


.checker-option__detail {
	font-family:var(--heta-c73);
	font-size:var(--text-2xs);
	color:var(--ink-muted);
}


.fit-checker__output {
	display:flex;
	flex-direction:column;
	justify-content:space-between;
	padding:var(--space-lg);
	background-color:var(--ground);
	border:1px solid var(--line);
	min-height:320px;
}


.fit-checker__total-row {
	display:flex;
	flex-direction:column;
	gap:var(--space-2xs);
	margin-block-end:var(--space-md);
	padding-bottom:var(--space-md);
	border-bottom:1px solid var(--line);
}


.fit-checker__total-num {
	font-family:var(--heta-c73);
	font-size:var(--text-2xl);
	font-weight:700;
	color:var(--accent);
	letter-spacing:-0.02em;
}


.fit-checker__duration {
	font-family:var(--heta-c73);
	font-size:var(--text-md);
	color:var(--ink);
}


.fit-checker__note {
	font-size:var(--text-sm);
	color:var(--ink-muted);
	line-height:1.5;
	margin-block-end:var(--space-md);
}


.fit-checker__disclaimer {
	font-family:var(--heta-c73);
	font-size:var(--text-2xs);
	color:var(--ink-muted);
	line-height:1.4;
	padding-top:var(--space-sm);
	border-top:1px solid var(--line);
}


.form {
	display:flex;
	flex-direction:column;
	gap:var(--space-md);
}


.form-group {
	display:flex;
	flex-direction:column;
	gap:var(--space-2xs);
	position:relative;
}


.form-label {
	font-family:var(--heta-b8f);
	font-size:var(--text-xs);
	font-weight:700;
	color:var(--ink);
	letter-spacing:0.02em;
}


.form-label__note {
	font-family:var(--heta-c73);
	font-weight:400;
	color:var(--ink-muted);
}


.form-input,
.form-select,
.form-textarea {
	width:100%;
	min-height:48px;
	padding:0.75rem 1rem;
	background-color:var(--surface-lift);
	border:1px solid var(--line-dark);
	color:var(--ink);
	font-family:var(--heta-175);
	font-size:var(--text-base);
	border-radius:var(--radius);
	transition:border-color var(--dur-fast) var(--ease-out),
							background-color var(--dur-fast) var(--ease-out),
							box-shadow var(--dur-fast) var(--ease-out);
}


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


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


.form-input:focus-visible,
.form-select:focus-visible,
.form-textarea:focus-visible {
	outline:2px solid var(--accent);
	outline-offset:1px;
	border-color:var(--accent);
}


.form-input[aria-invalid='true'],
.form-select[aria-invalid='true'],
.form-textarea[aria-invalid='true'],
.form-input.is-invalid,
.form-select.is-invalid,
.form-textarea.is-invalid {
	border-color:#b91c1c;
	background-color:#fff5f5;
}


.field-error {
	font-family:var(--heta-c73);
	font-size:var(--text-2xs);
	color:#b91c1c;
	margin-top:0.25rem;
	display:none;
}


.form-input[aria-invalid='true'] + .field-error,
.form-select[aria-invalid='true'] + .field-error,
.form-textarea[aria-invalid='true'] + .field-error,
.field-error.is-visible {
	display:block;
}


.form-checkbox-wrap {
	display:flex;
	align-items:flex-start;
	gap:var(--space-xs);
	cursor:pointer;
	min-height:44px;
	padding-block:0.25rem;
}


.form-checkbox {
	width:20px;
	height:20px;
	accent-color:var(--accent);
	margin-top:2px;
	flex-shrink:0;
	cursor:pointer;
}


.form-checkbox-label {
	font-size:var(--text-sm);
	color:var(--ink);
	line-height:1.45;
	cursor:pointer;
}


.form-checkbox-wrap:focus-within {
	outline:2px solid var(--accent);
	outline-offset:2px;
}


.form-notice {
	padding:var(--space-md);
	border:1px solid var(--line);
	font-family:var(--heta-c73);
	font-size:var(--text-xs);
	border-radius:var(--radius);
	display:none;
}


.form-notice--success {
	background-color:#f0fdf4;
	border-color:#86efac;
	color:#166534;
	display:block;
}


.form-notice--error {
	background-color:#fef2f2;
	border-color:#fecaca;
	color:#991b1b;
	display:block;
}


.hp-field {
	position:absolute !important;
	opacity:0 !important;
	pointer-events:none !important;
	height:0 !important;
	width:0 !important;
	margin:0 !important;
	padding:0 !important;
	border:0 !important;
	clip:rect(0, 0, 0, 0) !important;
	overflow:hidden !important;
}


.spec-table-container {
	width:100%;
	overflow-x:auto;
	border:1px solid var(--line);
	background-color:var(--surface-lift);
	margin-block:var(--space-lg);
	border-radius:var(--radius);
}


.spec-table {
	width:100%;
	border-collapse:collapse;
	text-align:left;
}


.spec-table th,
.spec-table td {
	padding:1rem 1.25rem;
	border-bottom:1px solid var(--line);
	font-size:var(--text-sm);
	line-height:1.4;
}


.spec-table th {
	background-color:var(--surface);
	font-family:var(--heta-b8f);
	font-weight:700;
	color:var(--ink);
	text-transform:uppercase;
	letter-spacing:0.04em;
	font-size:var(--text-xs);
}


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


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


.spec-table td.mono {
	font-family:var(--heta-c73);
	font-size:var(--text-xs);
}


.site-footer {
	width:100%;
	background-color:var(--surface);
	border-top:1px solid var(--line);
	padding-block:clamp(3rem, 6vw, 5rem) clamp(1.5rem, 3vw, 2.5rem);
	margin-top:auto;
}


.footer-top {
	display:grid;
	grid-template-columns:1fr;
	gap:var(--space-xl);
	margin-block-end:var(--space-2xl);
}


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


.footer-brand {
	display:flex;
	flex-direction:column;
	gap:var(--space-md);
}


.footer-brand .brand img {
	height:2.5rem;
	width:auto;
	max-height:48px;
}


.footer-address {
	font-size:var(--text-sm);
	color:var(--ink-muted);
	line-height:1.6;
}


.footer-address a {
	color:var(--ink);
	text-decoration:underline;
	text-underline-offset:3px;
	min-height:44px;
	display:inline-flex;
	align-items:center;
}


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


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


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


.footer-col-title {
	font-family:var(--heta-b8f);
	font-size:var(--text-sm);
	font-weight:700;
	text-transform:uppercase;
	letter-spacing:0.05em;
	margin-block-end:var(--space-md);
	color:var(--ink);
}


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


.footer-link {
	display:inline-flex;
	align-items:center;
	min-height:44px;
	padding-block:0.25rem;
	color:var(--ink);
	font-size:var(--text-sm);
	transition:color var(--dur-fast) var(--ease-out),
							transform var(--dur-instant) var(--ease-out);
}


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


.footer-link:active {
	color:var(--accent-hover);
	transform:translateY(1px);
}


.footer-link:focus-visible {
	outline:2px solid var(--ink);
	outline-offset:2px;
}


.footer-proof {
	padding:var(--space-md);
	background-color:var(--ground);
	border:1px solid var(--line);
	font-family:var(--heta-c73);
	font-size:var(--text-2xs);
	color:var(--ink-muted);
	line-height:1.5;
	border-radius:var(--radius);
}


.footer-bottom {
	padding-top:var(--space-lg);
	border-top:1px solid var(--line);
	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
	align-items:center;
	gap:var(--space-md);
}


.footer-legal-row {
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:var(--space-sm) var(--space-md);
}


.footer-legal__link {
	font-family:var(--heta-c73);
	font-size:var(--text-2xs);
	color:var(--ink-muted);
	min-height:44px;
	display:inline-flex;
	align-items:center;
	background:none;
	border:none;
	cursor:pointer;
	text-decoration:underline;
	text-underline-offset:3px;
	transition:color var(--dur-fast) var(--ease-out);
}


.footer-legal__link:hover {
	color:var(--ink);
}


.footer-legal__link:active {
	color:var(--accent);
}


.footer-legal__link:focus-visible {
	outline:2px solid var(--ink);
	outline-offset:2px;
}


.cookie-banner {
	position:fixed;
	bottom:0;
	left:0;
	right:0;
	z-index:950;
	background-color:var(--surface-lift);
	border-top:2px solid var(--ink);
	padding:0.4rem var(--gutter);
	box-shadow:0 -4px 24px rgba(26, 22, 22, 0.12);
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	justify-content:space-between;
	gap:var(--space-xs);
	transform:translateY(0);
	transition:transform var(--dur-base) var(--ease-out),
							visibility var(--dur-base) var(--ease-out);
}


.cookie-banner[hidden] {
	display:none !important;
}


.cookie-banner__text {
	font-size:var(--text-xs);
	color:var(--ink);
	line-height:1.45;
	max-width:72ch;
	margin:0;
}


.cookie-banner__text a {
	color:var(--ink);
	text-decoration:underline;
	text-underline-offset:2px;
	font-weight:600;
}


.cookie-banner__text a:hover {
	color:var(--accent);
}


.cookie-banner__actions {
	display:flex;
	align-items:center;
	gap:var(--space-xs);
	flex-shrink:0;
}


.chat-launcher {
	position:fixed;
	bottom:calc(env(safe-area-inset-bottom, 0px) + 1.25rem);
	right:clamp(1rem, 3vw, 2rem);
	z-index:920;
	min-height:52px;
	min-width:52px;
	padding:0.75rem 1.15rem;
	background-color:var(--ink);
	color:var(--surface-lift);
	border:1px solid var(--ink);
	border-radius:var(--radius);
	cursor:pointer;
	display:inline-flex;
	align-items:center;
	gap:var(--space-2xs);
	font-family:var(--heta-b8f);
	font-size:var(--text-xs);
	font-weight:700;
	box-shadow:var(--shadow-lift);
	transition:background-color var(--dur-fast) var(--ease-out),
							border-color var(--dur-fast) var(--ease-out),
							transform var(--dur-instant) var(--ease-out),
							bottom var(--dur-base) var(--ease-out);
}


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


.chat-launcher:active {
	background-color:var(--accent-hover);
	border-color:var(--accent-hover);
	transform:translateY(1px);
}


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


body.has-cookie-banner .chat-launcher {
	bottom:calc(env(safe-area-inset-bottom, 0px) + 5.5rem);
}


.chat-launcher__badge {
	display:none;
	background-color:var(--accent);
	color:var(--surface-lift);
	font-family:var(--heta-c73);
	font-size:0.7rem;
	padding:0.1rem 0.35rem;
	border-radius:var(--radius);
	line-height:1;
}


.chat-launcher__badge.has-unread {
	display:inline-block;
}


.chat-panel {
	position:fixed;
	bottom:calc(env(safe-area-inset-bottom, 0px) + 1.25rem);
	right:clamp(1rem, 3vw, 2rem);
	z-index:960;
	width:min(380px, calc(100vw - 2rem));
	height:min(540px, calc(100vh - 5rem));
	background-color:var(--surface-lift);
	border:1px solid var(--line-dark);
	box-shadow:var(--shadow-deep);
	display:flex;
	flex-direction:column;
	border-radius:var(--radius);
	overflow:hidden;
	visibility:hidden;
	transform:translateY(16px);
	opacity:0;
	pointer-events:none;
	transition:transform var(--dur-fast) var(--ease-out),
							opacity var(--dur-fast) var(--ease-out),
							visibility var(--dur-fast) var(--ease-out);
}


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


.chat-header {
	padding:0.85rem 1rem;
	background-color:var(--ink);
	color:var(--surface-lift);
	display:flex;
	align-items:center;
	justify-content:space-between;
}


.chat-header__title {
	font-family:var(--heta-b8f);
	font-size:var(--text-sm);
	font-weight:700;
	color:var(--surface-lift);
}


.chat-close-btn {
	background:transparent;
	border:none;
	color:var(--surface-lift);
	min-height:44px;
	min-width:44px;
	padding:0.5rem;
	cursor:pointer;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	transition:background-color var(--dur-fast) var(--ease-out),
							transform var(--dur-instant) var(--ease-out);
}


.chat-close-btn:hover {
	background-color:rgba(255, 255, 255, 0.15);
}


.chat-close-btn:active {
	background-color:rgba(255, 255, 255, 0.25);
	transform:translateY(1px);
}


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


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


.chat-gate {
	padding:var(--space-md);
	background-color:var(--surface-lift);
	border:1px solid var(--line);
	display:flex;
	flex-direction:column;
	gap:var(--space-xs);
}


.chat-bubble {
	max-width:82%;
	padding:0.65rem 0.9rem;
	font-size:var(--text-xs);
	line-height:1.45;
	border-radius:var(--radius);
}


.chat-bubble--agent {
	align-self:flex-start;
	background-color:var(--surface-lift);
	color:var(--ink);
	border:1px solid var(--line);
}


.chat-bubble--user {
	align-self:flex-end;
	background-color:var(--ink);
	color:var(--surface-lift);
	border:1px solid var(--ink);
}


.chat-footer {
	padding:0.75rem;
	background-color:var(--surface-lift);
	border-top:1px solid var(--line);
}


.chat-composer {
	display:flex;
	gap:var(--space-2xs);
}


.chat-input {
	flex:1 1 auto;
	min-height:44px;
	padding:0.5rem 0.75rem;
	border:1px solid var(--line-dark);
	font-size:var(--text-xs);
	border-radius:var(--radius);
}


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


.chat-send-btn {
	min-height:44px;
	min-width:44px;
	padding:0.5rem;
	background-color:var(--ink);
	color:var(--surface-lift);
	border:1px solid var(--ink);
	cursor:pointer;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	border-radius:var(--radius);
	transition:background-color var(--dur-fast) var(--ease-out),
							transform var(--dur-instant) var(--ease-out);
}


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


.chat-send-btn:active {
	background-color:var(--accent-hover);
	transform:translateY(1px);
}


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