

.site-header {
	position:sticky;
	top:0;
	z-index:1000;
	width:100%;
	background-color:var(--bg-carbon);
	border-bottom:var(--border-thick);
	transition:padding var(--duration-fast) var(--ease-standard),
							background-color var(--duration-fast) var(--ease-standard);
}

.site-header.is-condensed {
	background-color:rgba(20, 20, 20, 0.96);
	backdrop-filter:blur(8px);
	-webkit-backdrop-filter:blur(8px);
	border-bottom:2px solid var(--rule-strong);
}

.site-header__inner {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:var(--space-s);
	min-height:var(--header-height);
	padding-block:var(--space-2xs);
}

.brand {
	display:inline-flex;
	align-items:center;
	text-decoration:none;
	min-height:44px;
	padding:var(--space-3xs) 0;
	outline-offset:4px;
}

.brand:hover { opacity:0.92; }

.brand:active { transform:translateY(1px); }

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

.brand__logo {
	height:2.1rem;
	width:auto;
	max-width:100%;
	display:block;
}

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

.site-nav__list {
	display:flex;
	align-items:center;
	gap:var(--space-xs);
	list-style:none;
	margin:0;
	padding:0;
}

.site-nav__link {
	font-family:var(--ripa-c30);
	font-size:var(--step--1);
	font-weight:500;
	text-transform:uppercase;
	letter-spacing:0.08em;
	color:var(--text-ink);
	text-decoration:none;
	padding:var(--space-2xs) var(--space-xs);
	border:1px solid transparent;
	min-height:44px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	transition:color var(--duration-fast) var(--ease-standard),
							background-color var(--duration-fast) var(--ease-standard),
							border-color var(--duration-fast) var(--ease-standard);
}

.site-nav__link:hover {
	color:var(--accent-signal);
	background-color:var(--surface-gunmetal);
	border-color:var(--rule-border);
}

.site-nav__link:active {
	background-color:var(--surface-iron);
	transform:translateY(1px);
}

.site-nav__link:focus-visible {
	outline:2px solid var(--accent-signal);
	outline-offset:2px;
	border-color:var(--accent-signal);
}

.site-nav__link[aria-current="page"] {
	color:var(--accent-signal);
	border-bottom:2px solid var(--accent-signal);
}

.site-nav__cta {
	display:inline-flex;
	align-items:center;
	gap:var(--space-3xs);

	font-family:var(--ripa-c30);
	font-size:var(--step--1);
	font-weight:600;
	text-transform:uppercase;
	letter-spacing:0.08em;
	color:var(--bg-carbon);
	background-color:var(--accent-signal);
	padding:var(--space-2xs) var(--space-s);
	min-height:44px;
	text-decoration:none;
	border:1px solid var(--accent-signal);
	white-space:nowrap;
	transition:background-color var(--duration-fast) var(--ease-standard),
							border-color var(--duration-fast) var(--ease-standard),
							transform var(--duration-fast) var(--ease-snap);

}

.site-nav__cta:hover {
	background-color:var(--accent-signal-hover);
	border-color:var(--accent-signal-hover);
	color:var(--bg-carbon);
}

.site-nav__cta:active {
	background-color:var(--accent-signal-active);
	transform:scale(0.98);
}

.site-nav__cta:focus-visible {
	outline:2px solid var(--text-ink);
	outline-offset:3px;
}

.site-nav__link { white-space:nowrap; }

@media (min-width: 900px) and (max-width: 1100px) {
	.site-nav { gap:var(--space-xs); }
	.site-nav__list { gap:2px; }
	.site-nav__link {
		padding:var(--space-2xs) 6px;
		font-size:var(--step--2);
	}
	.site-nav__cta {
		padding:var(--space-2xs) var(--space-xs);
		font-size:var(--step--2);
	}
}

/* Nav toggle button for small screens */
.nav-toggle {
	display:none;
	align-items:center;
	justify-content:center;
	gap:var(--space-3xs);
	min-width:44px;
	min-height:44px;
	padding:var(--space-2xs) var(--space-xs);
	background-color:var(--surface-gunmetal);
	color:var(--text-ink);
	border:var(--border-thick);
	font-family:var(--ripa-c30);
	font-size:var(--step--1);
	text-transform:uppercase;
	letter-spacing:0.08em;
	cursor:pointer;
	transition:background-color var(--duration-fast) var(--ease-standard),
							border-color var(--duration-fast) var(--ease-standard),
							color var(--duration-fast) var(--ease-standard);
}

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

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

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

.nav-toggle__icon {
	width:1.2rem;
	height:1.2rem;
}

.nav-toggle .icon-close { display:none; }

.nav-toggle[aria-expanded="true"] .icon-menu { display:none; }

.nav-toggle[aria-expanded="true"] .icon-close { display:block; }

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

	.site-nav {
		position:fixed;
		top:var(--header-height);
		left:0;

		right:0;
		background-color:var(--bg-carbon);
		border-bottom:var(--border-thick);
		flex-direction:column;
		align-items:stretch;
		padding:var(--space-m) var(--space-s) var(--space-l);
		gap:var(--space-m);
		transform:translateY(-110%);
		opacity:0;
		visibility:hidden;
		transition:transform var(--duration-normal) var(--ease-snap),
								opacity var(--duration-fast) var(--ease-standard),
								visibility var(--duration-fast);
	}

	.site-nav.is-open {
		transform:translateY(0);
		opacity:1;
		visibility:visible;
	}

	.site-nav__list {
		flex-direction:column;
		align-items:stretch;
		gap:var(--space-2xs);
	}

	.site-nav__link {
		justify-content:flex-start;
		padding:var(--space-s);
		background-color:var(--surface-gunmetal);
		border:1px solid var(--rule-border);
		font-size:var(--ripa-546);
	}

	.site-nav__cta {
		justify-content:center;
		padding:var(--space-s);
		font-size:var(--ripa-546);
	}
}


.btn {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:var(--space-2xs);
	font-family:var(--ripa-c30);
	font-size:var(--step--1);
	font-weight:600;
	text-transform:uppercase;
	letter-spacing:0.08em;
	padding:var(--space-xs) var(--space-l);
	min-height:48px;
	text-decoration:none;
	cursor:pointer;
	border-radius:0;
	border:2px solid transparent;
	transition:background-color var(--duration-fast) var(--ease-standard),
							border-color var(--duration-fast) var(--ease-standard),
							color var(--duration-fast) var(--ease-standard),
							transform var(--duration-fast) var(--ease-snap);
}

.btn .icon {
	width:1.15em;
	height:1.15em;
}

.btn--primary {
	background-color:var(--accent-signal);
	color:var(--bg-carbon);
	border-color:var(--accent-signal);
}

.btn--primary:hover {
	background-color:var(--accent-signal-hover);
	border-color:var(--accent-signal-hover);
	color:var(--bg-carbon);
}

.btn--primary:active {
	background-color:var(--accent-signal-active);
	transform:translateY(2px) scale(0.99);
}

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

.btn--secondary {
	background-color:var(--surface-gunmetal);
	color:var(--text-ink);
	border:var(--border-thick);
}

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

.btn--secondary:active {
	background-color:var(--bg-carbon);
	transform:translateY(2px);
}

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

.btn--outline {
	background-color:transparent;
	color:var(--text-ink);
	border:2px solid var(--rule-strong);
}

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

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

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

.btn--sm {
	padding:var(--space-3xs) var(--space-s);
	min-height:44px;
	font-size:var(--step--2);
}

.btn--full { width:100%; }

.btn-group {
	display:flex;
	flex-wrap:wrap;
	gap:var(--space-xs);
	align-items:center;
}


.block-section {
	width:100%;
	padding-block:var(--space-2xl);
	border-bottom:var(--border-thick);
	position:relative;
}

@media (min-width: 768px) {
	.block-section { padding-block:var(--space-3xl); }
}

.block-section--carbon { background-color:var(--bg-carbon); }

.block-section--gunmetal { background-color:var(--surface-gunmetal); }

.block-section--iron { background-color:var(--surface-iron); }

.block-section--hero {
	padding-block:var(--space-3xl) var(--space-2xl);
	border-bottom:4px solid var(--accent-signal);
}

@media (min-width: 768px) {
	.block-section--hero { padding-block:var(--space-4xl) var(--space-3xl); }
}

.verb-opener {
	display:block;
	font-family:var(--ripa-440);
	font-size:var(--step-verb);
	font-weight:700;
	line-height:0.95;
	letter-spacing:-0.01em;
	text-transform:uppercase;
	color:var(--text-ink);
	margin-bottom:var(--space-m);
}

.verb-opener--signal { color:var(--accent-signal); }

.verb-prose {
	max-width:62ch;
	width:100%;
}

.verb-prose > * + * { margin-top:var(--space-s); }

.verb-prose p {
	font-size:var(--ripa-1f4);
	line-height:1.55;
	color:var(--text-ink);
}

.verb-prose p.subtle {
	font-size:var(--ripa-546);
	color:var(--text-muted);
}

/* Full-bleed photo bands placed between verbs */
.photo-band {
	width:100%;
	border-top:var(--border-thick);
	border-bottom:var(--border-thick);
	background-color:var(--surface-slate);
	overflow:hidden;
	position:relative;
}

.photo-band img {
	width:100%;
	aspect-ratio:16 / 9;
	height:auto;
	object-fit:cover;
	object-position:center;
	display:block;
}

.photo-band__caption {
	position:absolute;
	bottom:0;
	left:0;
	right:0;
	background-color:rgba(20, 20, 20, 0.92);
	border-top:1px solid var(--rule-border);
	padding:var(--space-2xs) var(--space-s);
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:var(--space-xs);
	font-family:var(--ripa-c30);
	font-size:var(--step--2);
	color:var(--text-muted);
	text-transform:uppercase;
	letter-spacing:0.05em;
}

@media (max-width: 600px) {
	.photo-band__caption {
		flex-direction:column;
		align-items:flex-start;
	}
}


.spec-grid {
	display:grid;
	grid-template-columns:1fr;
	border-top:var(--border-thick);
	border-left:var(--border-thick);
	margin-top:var(--space-l);
}

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

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

.spec-cell {
	border-right:var(--border-thick);
	border-bottom:var(--border-thick);
	padding:var(--space-m);
	background-color:var(--surface-gunmetal);
	min-width:0;
	display:flex;
	flex-direction:column;
	justify-content:space-between;
	gap:var(--space-xs);
	transition:background-color var(--duration-fast) var(--ease-standard);
}

.spec-cell:hover { background-color:var(--surface-iron); }

.spec-cell__label {
	font-family:var(--ripa-c30);
	font-size:var(--step--2);
	text-transform:uppercase;
	letter-spacing:0.08em;
	color:var(--text-muted);
}

.spec-cell__value {
	font-family:var(--ripa-440);
	font-size:var(--ripa-fcd);
	font-weight:700;
	color:var(--text-ink);
	line-height:1.15;
}

.spec-cell__detail {
	font-family:var(--ripa-d0b);
	font-size:var(--step--1);
	color:var(--text-muted);
	line-height:1.45;
}

/* SPECIFICATION TABLES */
.table-container {
	width:100%;
	overflow-x:auto;
	border:var(--border-thick);
	background-color:var(--surface-gunmetal);
	margin-top:var(--space-m);
	margin-bottom:var(--space-l);
}

.spec-table {
	width:100%;
	border-collapse:collapse;
	min-width:580px;
}

.spec-table th {
	background-color:var(--bg-carbon);
	color:var(--text-ink);
	font-family:var(--ripa-c30);
	font-size:var(--step--1);
	font-weight:600;
	text-transform:uppercase;
	letter-spacing:0.08em;
	padding:var(--space-s) var(--space-m);
	border-bottom:var(--border-thick);
	border-right:var(--border-subtle);
	min-width:140px;
}

.spec-table td {
	padding:var(--space-s) var(--space-m);
	border-bottom:var(--border-subtle);
	border-right:var(--border-subtle);
	font-size:var(--ripa-546);
	color:var(--text-ink);
	vertical-align:top;
}

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

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

.spec-table tr:hover td { background-color:rgba(255, 85, 0, 0.04); }

.spec-table .num {
	font-family:var(--ripa-c30);
	font-weight:600;
	color:var(--accent-signal);
	white-space:nowrap;
}


.signature-collage {
	position:relative;
	width:100%;
	min-height:480px;
	margin-block:var(--space-xl);
	padding:var(--space-l) 0;
}

@media (min-width: 900px) {
	.signature-collage { min-height:560px; }
}

.signature-collage__layer {
	position:relative;
	box-shadow:0 16px 36px rgba(0, 0, 0, 0.6);
	border:3px solid var(--rule-border);
	background-color:var(--surface-gunmetal);
	overflow:hidden;
	transition:transform var(--duration-normal) var(--ease-snap),
							border-color var(--duration-fast) var(--ease-standard);
}

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

.signature-collage__layer--base {
	width:68%;
	height:360px;
	margin-left:0;
	transform:rotate(-1deg);
	z-index:1;
}

.signature-collage__layer--overlay {
	position:absolute;
	top:15%;
	right:4%;
	width:48%;
	height:320px;
	transform:rotate(2deg);
	z-index:2;
	border-color:var(--accent-signal);
}

.signature-collage__layer--accent {
	position:absolute;
	bottom:0;
	left:32%;
	width:38%;
	height:220px;
	transform:rotate(-1.5deg);
	z-index:3;
	border-color:var(--rule-strong);
}

.signature-collage:hover .signature-collage__layer--base { transform:rotate(-1.5deg) scale(1.01); }

.signature-collage:hover .signature-collage__layer--overlay { transform:rotate(2.5deg) translateY(-4px) scale(1.02); }

.signature-collage:hover .signature-collage__layer--accent { transform:rotate(-2deg) translateY(4px) scale(1.02); }

@media (max-width: 680px) {
	.signature-collage {
		min-height:auto;
		display:flex;
		flex-direction:column;
		gap:var(--space-s);
		padding:0;
	}

	.signature-collage__layer--base,
	.signature-collage__layer--overlay,
	.signature-collage__layer--accent {
		position:static;
		width:100%;
		height:240px;
		transform:none !important;
	}
}


.inquiry-form {
	background-color:var(--surface-gunmetal);
	border:var(--border-thick);
	padding:var(--space-m);
}

@media (min-width: 768px) {
	.inquiry-form { padding:var(--space-xl); }
}

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

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

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

.form-label {
	font-family:var(--ripa-c30);
	font-size:var(--step--1);
	font-weight:600;
	text-transform:uppercase;
	letter-spacing:0.08em;
	color:var(--text-ink);
	display:flex;
	align-items:center;
	justify-content:space-between;
}

.form-label__note {
	font-weight:400;
	color:var(--text-muted);
	font-size:var(--step--2);
}

.form-input,
.form-select,
.form-textarea {
	width:100%;
	min-height:48px;
	padding:var(--space-2xs) var(--space-s);
	background-color:var(--bg-carbon);
	color:var(--text-ink);
	border:2px solid var(--rule-border);
	font-family:var(--ripa-d0b);
	font-size:var(--ripa-546);
	border-radius:0;
	transition:border-color var(--duration-fast) var(--ease-standard),
							background-color var(--duration-fast) var(--ease-standard);
}

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

.form-input:focus,
.form-select:focus,
.form-textarea:focus {
	outline:none;
	border-color:var(--accent-signal);
	background-color:var(--surface-slate);
}

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

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

.form-checkbox-label {
	display:flex;
	align-items:flex-start;
	gap:var(--space-xs);
	cursor:pointer;
	font-size:var(--step--1);
	color:var(--text-ink);
	line-height:1.45;
}

.form-checkbox {
	appearance:none;
	-webkit-appearance:none;
	width:22px;
	height:22px;
	border:2px solid var(--rule-strong);
	background-color:var(--bg-carbon);
	flex-shrink:0;
	cursor:pointer;
	margin-top:2px;
	display:grid;
	place-content:center;
	transition:border-color var(--duration-fast) var(--ease-standard),
							background-color var(--duration-fast) var(--ease-standard);
}

.form-checkbox:hover { border-color:var(--accent-signal); }

.form-checkbox:checked {
	background-color:var(--accent-signal);
	border-color:var(--accent-signal);
}

.form-checkbox:checked::before {
	content:"";
	width:10px;
	height:6px;
	border-left:2px solid var(--bg-carbon);
	border-bottom:2px solid var(--bg-carbon);
	transform:rotate(-45deg) translate(1px, -1px);
}

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

.form-error {
	display:none;
	font-family:var(--ripa-c30);
	font-size:var(--step--2);
	color:#FF4D4D;
	margin-top:var(--space-3xs);
}

.form-group.has-error .form-input,
.form-group.has-error .form-select,
.form-group.has-error .form-textarea {
	border-color:#FF4D4D;
	background-color:rgba(255, 77, 77, 0.05);
}

.form-group.has-error .form-error { display:block; }

.form-status {
	padding:var(--space-s);
	border:var(--border-thick);
	font-family:var(--ripa-c30);
	font-size:var(--step--1);
	display:none;
	margin-top:var(--space-m);
}

.form-status--success {
	display:block;
	background-color:rgba(64, 180, 100, 0.1);
	border-color:#40B464;
	color:#A4F0BF;
}

.form-status--error {
	display:block;
	background-color:rgba(255, 77, 77, 0.1);
	border-color:#FF4D4D;
	color:#F99;
}


.site-footer {
	width:100%;
	background-color:var(--bg-carbon);
	border-top:4px solid var(--accent-signal);
	color:var(--text-ink);
}

.site-footer__main {
	padding-block:var(--space-2xl) var(--space-xl);
	display:grid;
	grid-template-columns:1fr;
	gap:var(--space-xl);
	border-bottom:var(--border-thick);
}

@media (min-width: 900px) {
	.site-footer__main { grid-template-columns:2fr 1fr 1fr; }
}

.site-footer__brand-col {
	display:flex;
	flex-direction:column;
	gap:var(--space-m);
}

.site-footer__logo {
	height:2.6rem;
	width:auto;
	max-width:100%;
	display:block;
}

.site-footer__tagline {
	font-size:var(--ripa-546);
	color:var(--text-muted);
	max-width:44ch;
	line-height:1.5;
}

.site-footer__meta-list {
	list-style:none;
	display:flex;
	flex-direction:column;
	gap:var(--space-2xs);
	margin-top:var(--space-xs);
	font-family:var(--ripa-c30);
	font-size:var(--step--1);
}

.site-footer__meta-item {
	display:flex;
	align-items:center;
	gap:var(--space-2xs);
	color:var(--text-ink);
}

.site-footer__meta-item a {
	color:var(--text-ink);
	text-decoration:none;
}

.site-footer__meta-item a:hover {
	color:var(--accent-signal);
	text-decoration:underline;
}

.site-footer__heading {
	font-family:var(--ripa-c30);
	font-size:var(--step--1);
	font-weight:600;
	text-transform:uppercase;
	letter-spacing:0.08em;
	color:var(--accent-signal);
	margin-bottom:var(--space-s);
}

.site-footer__nav-list {
	list-style:none;
	display:flex;
	flex-direction:column;
	gap:var(--space-2xs);
}

.site-footer__nav-link {
	font-family:var(--ripa-c30);
	font-size:var(--step--1);
	color:var(--text-muted);
	text-decoration:none;
	display:inline-block;
	padding:var(--space-3xs) 0;
	min-height:38px;
	transition:color var(--duration-fast) var(--ease-standard);
}

.site-footer__nav-link:hover {
	color:var(--text-ink);
	text-decoration:underline;
}

.site-footer__nav-link:active { color:var(--accent-signal); }

.site-footer__nav-link:focus-visible {
	outline:2px solid var(--accent-signal);
	outline-offset:2px;
}

.site-footer__legal-band {
	background-color:var(--surface-gunmetal);
	padding-block:var(--space-m);
	font-family:var(--ripa-c30);
	font-size:var(--step--2);
	color:var(--text-muted);
	line-height:1.6;
}

.site-footer__legal-inner {
	display:flex;
	flex-direction:column;
	gap:var(--space-s);
}

@media (min-width: 900px) {
	.site-footer__legal-inner {
		flex-direction:row;
		justify-content:space-between;
		align-items:center;
	}
}

.site-footer__legal-links {
	display:flex;
	flex-wrap:wrap;
	gap:var(--space-xs) var(--space-m);
	list-style:none;
}

.site-footer__legal-links a {
	color:var(--text-muted);
	text-decoration:none;
	min-height:44px;
	display:inline-flex;
	align-items:center;
}

.site-footer__legal-links a:hover {
	color:var(--accent-signal);
	text-decoration:underline;
}

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


.cookie-banner {
	position:fixed;
	bottom:0;
	left:0;
	right:0;
	z-index:9990;
	background-color:var(--surface-gunmetal);
	border-top:3px solid var(--accent-signal);
	padding:var(--space-s) var(--space-m);
	box-shadow:0 -8px 24px rgba(0, 0, 0, 0.7);
	transform:translateY(110%);
	opacity:0;
	visibility:hidden;
	transition:transform var(--duration-normal) var(--ease-snap),
							opacity var(--duration-fast) var(--ease-standard),
							visibility var(--duration-fast);
}

.cookie-banner.is-visible {
	transform:translateY(0);
	opacity:1;
	visibility:visible;
}

.cookie-banner__inner {
	max-width:var(--container-max);
	margin-inline:auto;
	display:flex;
	flex-direction:column;
	gap:var(--space-s);
	align-items:stretch;
}

@media (min-width: 820px) {
	.cookie-banner__inner {
		flex-direction:row;
		justify-content:space-between;
		align-items:center;
		gap:var(--space-l);
	}
}

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

.cookie-banner__text a {
	color:var(--accent-signal);
	text-decoration:underline;
}

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

.cookie-btn {
	font-family:var(--ripa-c30);
	font-size:var(--step--2);
	font-weight:600;
	text-transform:uppercase;
	letter-spacing:0.08em;
	padding:var(--space-2xs) var(--space-s);
	min-height:44px;
	cursor:pointer;
	border-radius:0;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	transition:background-color var(--duration-fast) var(--ease-standard),
							color var(--duration-fast) var(--ease-standard),
							border-color var(--duration-fast) var(--ease-standard),
							transform var(--duration-fast) var(--ease-snap);
}

.cookie-btn--allow {
	background-color:var(--accent-signal);
	color:var(--bg-carbon);
	border:2px solid var(--accent-signal);
}

.cookie-btn--allow:hover {
	background-color:var(--accent-signal-hover);
	border-color:var(--accent-signal-hover);
}

.cookie-btn--allow:active {
	background-color:var(--accent-signal-active);
	transform:translateY(1px);
}

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

.cookie-btn--deny {
	background-color:var(--bg-carbon);
	color:var(--text-ink);
	border:2px solid var(--rule-strong);
}

.cookie-btn--deny:hover {
	background-color:var(--surface-iron);
	border-color:var(--text-ink);
}

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

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


.chat-widget {
	position:fixed;
	bottom:var(--space-m);
	right:var(--space-m);
	z-index:9980;
	display:flex;
	flex-direction:column;
	align-items:flex-end;
	pointer-events:none;
}

.chat-widget > * { pointer-events:auto; }

body.cookie-banner-active .chat-widget {
	bottom:calc(var(--space-m) + 85px);
	transition:bottom var(--duration-normal) var(--ease-snap);
}

.chat-launcher {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:var(--space-2xs);
	min-height:52px;
	padding:var(--space-2xs) var(--space-m);
	background-color:var(--surface-gunmetal);
	color:var(--text-ink);
	border:2px solid var(--accent-signal);
	cursor:pointer;
	font-family:var(--ripa-c30);
	font-size:var(--step--1);
	font-weight:600;
	text-transform:uppercase;
	letter-spacing:0.08em;
	box-shadow:0 8px 24px rgba(0, 0, 0, 0.6);
	transition:background-color var(--duration-fast) var(--ease-standard),
							color var(--duration-fast) var(--ease-standard),
							border-color var(--duration-fast) var(--ease-standard),
							transform var(--duration-fast) var(--ease-snap);
}

.chat-launcher:hover {
	background-color:var(--accent-signal);
	color:var(--bg-carbon);
	border-color:var(--accent-signal);
	transform:translateY(-2px);
}

.chat-launcher:active {
	background-color:var(--accent-signal-active);
	transform:translateY(1px) scale(0.98);
}

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

.chat-launcher .icon {
	width:1.3em;
	height:1.3em;
}

.chat-launcher__badge {
	display:none;
	align-items:center;
	justify-content:center;
	width:20px;
	height:20px;
	background-color:var(--accent-signal);
	color:var(--bg-carbon);
	font-family:var(--ripa-c30);
	font-size:0.75rem;
	font-weight:700;
	margin-left:var(--space-3xs);
}

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

/* Chat Panel Window */
.chat-panel {
	display:none;
	flex-direction:column;
	width:clamp(300px, 92vw, 380px);
	height:clamp(420px, 70vh, 560px);
	background-color:var(--surface-gunmetal);
	border:var(--border-thick);
	border-top:4px solid var(--accent-signal);
	box-shadow:0 16px 40px rgba(0, 0, 0, 0.8);
	margin-bottom:var(--space-xs);
	overflow:hidden;
}

.chat-panel.is-open { display:flex; }

.chat-panel__header {
	display:flex;
	align-items:center;
	justify-content:space-between;
	padding:var(--space-xs) var(--space-s);
	background-color:var(--bg-carbon);
	border-bottom:var(--border-thick);
}

.chat-panel__title {
	font-family:var(--ripa-c30);
	font-size:var(--step--1);
	font-weight:600;
	text-transform:uppercase;
	letter-spacing:0.08em;
	color:var(--text-ink);
	display:flex;
	align-items:center;
	gap:var(--space-2xs);
}

.chat-panel__status-dot {
	width:8px;
	height:8px;
	background-color:#40B464;
	border-radius:50%;
	display:inline-block;
}

.chat-panel__close {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:36px;
	height:36px;
	background:transparent;
	color:var(--text-muted);
	border:1px solid transparent;
	cursor:pointer;
	transition:color var(--duration-fast) var(--ease-standard),
							border-color var(--duration-fast) var(--ease-standard);
}

.chat-panel__close:hover {
	color:var(--accent-signal);
	border-color:var(--rule-border);
}

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

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

.chat-panel__messages {
	flex:1;
	overflow-y:auto;
	padding:var(--space-s);
	display:flex;
	flex-direction:column;
	gap:var(--space-s);
	background-color:var(--surface-slate);
}

.chat-bubble {
	max-width:85%;
	padding:var(--space-2xs) var(--space-s);
	font-size:var(--step--1);
	line-height:1.45;
}

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

.chat-bubble--user {
	align-self:flex-end;
	background-color:var(--accent-signal);
	color:var(--bg-carbon);
	font-weight:500;
}

.chat-bubble__meta {
	font-family:var(--ripa-c30);
	font-size:0.7rem;
	color:var(--text-dim);
	margin-top:var(--space-3xs);
}

.chat-bubble--user .chat-bubble__meta { color:rgba(20, 20, 20, 0.7); }

.chat-panel__form {
	padding:var(--space-s);
	background-color:var(--bg-carbon);
	border-top:var(--border-thick);
	display:flex;
	flex-direction:column;
	gap:var(--space-2xs);
}

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

.chat-panel__input {
	flex:1;
	min-height:44px;
	padding:var(--space-2xs) var(--space-xs);
	background-color:var(--surface-gunmetal);
	color:var(--text-ink);
	border:1px solid var(--rule-border);
	font-family:var(--ripa-d0b);
	font-size:var(--step--1);
	border-radius:0;
}

.chat-panel__input:focus {
	outline:none;
	border-color:var(--accent-signal);
}

.chat-panel__send {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:44px;
	min-height:44px;
	background-color:var(--accent-signal);
	color:var(--bg-carbon);
	border:none;
	cursor:pointer;
	transition:background-color var(--duration-fast) var(--ease-standard),
							transform var(--duration-fast) var(--ease-snap);
}

.chat-panel__send:hover { background-color:var(--accent-signal-hover); }

.chat-panel__send:active {
	background-color:var(--accent-signal-active);
	transform:scale(0.96);
}

.chat-panel__send:focus-visible {
	outline:2px solid var(--text-ink);
	outline-offset:2px;
}

/* First-contact gate in chat panel */
.chat-gate {
	padding:var(--space-s);
	background-color:var(--surface-gunmetal);
	display:flex;
	flex-direction:column;
	gap:var(--space-xs);
	font-size:var(--step--1);
}

.chat-gate p {
	color:var(--text-muted);
	font-size:var(--step--2);
}
