.site-header {
	position:fixed;
	top:0;
	left:0;
	right:0;
	width:100%;
	z-index:950;
	height:var(--header-height-full);
	background-color:rgba(27, 16, 34, 0.94);
	border-bottom:1px solid rgba(88, 50, 114, 0.4);

	transition:height var(--dur-base) var(--ease-out),
							background-color var(--dur-base) var(--ease-out),
							border-color var(--dur-base) var(--ease-out),
							box-shadow var(--dur-base) var(--ease-out);
	-webkit-backdrop-filter:blur(10px);
	backdrop-filter:blur(10px);
}

@supports not ((-webkit-backdrop-filter: blur(10px)) or (backdrop-filter: blur(10px))) {
	.site-header { background-color:rgba(27, 16, 34, 0.92); }
}

.site-header.header--condensed-dock,
.site-header.site-header--compact {
	height:var(--header-height-condensed);
	background-color:var(--ground);
	border-bottom:1px solid var(--violet-rule);
	box-shadow:0 4px 20px rgba(10, 4, 14, 0.65);
}

.site-header__main {
	height:100%;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:var(--space-md);
}

.brand {
	display:inline-flex;
	align-items:center;
	text-decoration:none;
	flex-shrink:0;
	transition:opacity var(--dur-rapid) var(--ease-letterpress);
	min-height:44px;
}

.brand:hover { opacity:0.88; }

.brand:active { opacity:0.75; }

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

.brand img {
	height:2.1rem;
	width:auto;
	max-width:100%;
	max-height:38px;
	display:block;
	transition:height var(--dur-base) var(--ease-out);
}

@media (max-width: 420px) {
	.brand img {
		height:1.65rem;
		max-height:28px;
		max-width:180px;
	}
	.site-header__main { gap:0.35rem; }
}

.site-header.header--condensed-dock .brand img,
.site-header.site-header--compact .brand img {
	height:1.75rem;
	max-height:32px;
}

.site-nav {
	display:flex;
	align-items:center;
}

.site-nav__list {
	display:flex;
	align-items:center;
	gap:clamp(0.5rem, 1.6vw, 1.75rem);
	list-style:none;
}

.site-nav__item { position:relative; }

.site-nav__link {
	font-family:var(--zazo-70e);
	font-size:var(--fs-xs);
	text-transform:uppercase;
	letter-spacing:var(--tracking-wide);
	font-weight:700;
	color:var(--ink-soft);
	text-decoration:none;
	padding:0.35rem 0.6rem;
	min-height:44px;
	display:inline-flex;
	align-items:center;
	position:relative;
	border-radius:var(--radius-xs);
	overflow-wrap:normal !important;
	word-break:normal !important;
	white-space:nowrap !important;
	transition:color var(--dur-rapid) var(--ease-letterpress),
							background-color var(--dur-rapid) var(--ease-letterpress);
}

.site-nav__link::after {
	content:"";
	position:absolute;
	bottom:0.4rem;
	left:0.6rem;
	right:0.6rem;
	height:2px;
	background-color:var(--accent);
	transform:scaleX(0);
	transform-origin:center;
	transition:transform var(--dur-rapid) var(--ease-out);
}

.site-nav__link:hover {

	color:var(--ink);
	background-color:rgba(255, 255, 255, 0.04);
}

.site-nav__link:hover::after,
.site-nav__link[aria-current='page']::after { transform:scaleX(1); }

.site-nav__link:active {
	color:var(--accent);
	background-color:rgba(212, 255, 50, 0.08);
}

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

.site-nav__link[aria-current='page'] { color:var(--accent); }

.nav-toggle {
	display:none;
	align-items:center;
	justify-content:center;
	gap:0.35rem;
	padding:0.4rem 0.6rem;
	min-height:44px;
	min-width:44px;
	max-width:100%;
	flex-shrink:0;
	white-space:nowrap;
	border:1px solid var(--violet-rule);
	background-color:var(--ground-elevated);
	color:var(--ink);
	font-family:var(--zazo-70e);
	font-size:var(--fs-xs);
	text-transform:uppercase;
	letter-spacing:var(--tracking-wide);
	font-weight:700;
	border-radius:var(--radius-xs);
	cursor:pointer;
	transition:background-color var(--dur-rapid) var(--ease-letterpress),
							color var(--dur-rapid) var(--ease-letterpress),
							border-color var(--dur-rapid) var(--ease-letterpress),
							transform var(--dur-rapid) var(--ease-letterpress);
}

.nav-toggle:hover {
	background-color:var(--ground-card);
	border-color:var(--violet-mid);
	color:var(--accent);
}

.nav-toggle:active {
	background-color:var(--violet-mid);
	color:var(--ground);
	transform:scale(0.98);
}

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

.site-header__top-bar { display:none !important; }

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

	.site-nav {
		display:none;
		position:absolute;
		top:100%;
		left:0;
		width:100%;
		background-color:var(--ground-elevated);
		border-top:1px solid var(--violet-rule);
		border-bottom:2px solid var(--violet-mid);
		padding:var(--space-md) var(--container-pad);
		box-shadow:0 16px 32px rgba(10, 4, 14, 0.85);
	}

	.site-nav[data-2b0270-open='true'] { display:block; }

	.site-nav__list {
		flex-direction:column;
		align-items:flex-start;
		gap:0;
		width:100%;
	}

	.site-nav__item {
		width:100%;
		border-bottom:1px solid var(--violet-rule);
	}

	.site-nav__item:last-child { border-bottom:none; }

	.site-nav__link {
		display:flex;
		width:100%;
		padding:0.85rem 0.5rem;

	}

	.site-nav__link::after { display:none; }
}

.btn {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:0.5rem;
	padding:0.75rem 1.6rem;
	min-height:44px;
	font-family:var(--zazo-70e);
	font-size:var(--fs-xs);
	font-weight:700;
	text-transform:uppercase;
	letter-spacing:var(--tracking-wide);
	text-decoration:none;
	border-radius:var(--radius-xs);
	border:1px solid transparent;
	cursor:pointer;
	white-space:normal;
	text-align:center;
	line-height:var(--lh-snug);
	transition:background-color var(--dur-rapid) var(--ease-letterpress),
							color var(--dur-rapid) var(--ease-letterpress),
							border-color var(--dur-rapid) var(--ease-letterpress),
							box-shadow var(--dur-rapid) var(--ease-letterpress),
							transform var(--dur-rapid) var(--ease-letterpress);
}

.btn--primary {
	background-color:var(--accent);
	color:var(--ground);
	border-color:var(--accent);
	box-shadow:0 2px 10px rgba(212, 255, 50, 0.18);
}

.btn--primary:hover {
	background-color:var(--accent-hover);
	border-color:var(--accent-hover);
	color:var(--ground);
	box-shadow:0 4px 16px rgba(212, 255, 50, 0.32);
	transform:translateY(-1px);
}

.btn--primary:active {
	background-color:var(--accent-active);
	border-color:var(--accent-active);
	color:var(--ground);
	transform:translateY(0);
	box-shadow:none;
}

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

.btn--secondary {
	background-color:var(--ground-elevated);
	color:var(--ink);
	border-color:var(--violet-rule);
}

.btn--secondary:hover {
	background-color:var(--ground-card);
	border-color:var(--violet-mid);
	color:var(--accent);
	transform:translateY(-1px);
}

.btn--secondary:active {
	background-color:var(--violet-mid);
	color:var(--ground);
	transform:translateY(0);
}

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

.btn--outline {
	background-color:transparent;
	color:var(--accent);
	border-color:var(--accent);
}

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

.btn--outline:active {
	background-color:var(--accent);
	color:var(--ground);
	border-color:var(--accent);
	transform:translateY(0);
}

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

.btn--ghost {
	background-color:transparent;
	color:var(--ink-soft);
	border-color:transparent;
	padding-inline:0.75rem;
}

.btn--ghost:hover {
	color:var(--accent);
	background-color:rgba(255, 255, 255, 0.04);
}

.btn--ghost:active {
	color:var(--ink);
	background-color:rgba(255, 255, 255, 0.08);
}

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

.catalogue-grid {
	display:grid;
	grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));
	gap:var(--space-xl);
	margin-block:var(--space-xl);
}

@media (max-width: 480px) {
	.catalogue-grid { grid-template-columns:1fr; }
}

.catalogue-card {
	background-color:var(--ground-card);
	border:1px solid var(--violet-rule);
	border-radius:var(--radius-xs);
	display:flex;
	flex-direction:column;
	position:relative;
	overflow:hidden;
	transition:border-color var(--dur-base) var(--ease-out),
							box-shadow var(--dur-base) var(--ease-out),
							transform var(--dur-base) var(--ease-out);
}

.catalogue-card:hover {
	border-color:var(--violet-mid);
	box-shadow:0 8px 24px rgba(10, 4, 14, 0.65);
	transform:translateY(-2px);
}

.catalogue-card__media {
	width:100%;
	aspect-ratio:16 / 10;
	overflow:hidden;
	background-color:var(--ground-elevated);
	position:relative;
	border-bottom:1px solid var(--violet-rule);
}

.catalogue-card__img {
	width:100%;
	height:100%;
	object-fit:cover;
	transition:transform var(--dur-flow) var(--ease-out);
}

.catalogue-card:hover .catalogue-card__img { transform:scale(1.04); }

.catalogue-card__badge {
	position:absolute;
	top:0.75rem;
	right:0.75rem;
	background-color:var(--ground-overlay);
	color:var(--accent);
	font-family:var(--zazo-70e);
	font-size:var(--fs-2xs);
	font-weight:700;
	text-transform:uppercase;
	letter-spacing:var(--tracking-wide);
	padding:0.35rem 0.65rem;
	border:1px solid var(--violet-rule);
	border-radius:var(--radius-xs);
	-webkit-backdrop-filter:blur(6px);
	backdrop-filter:blur(6px);
}

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

.catalogue-card__price {
	font-family:var(--zazo-70e);
	font-size:var(--fs-sm);
	font-weight:700;
	color:var(--accent);
	margin-block-end:var(--space-xs);
	display:inline-block;
	letter-spacing:-0.01em;
}

.catalogue-card__title {
	font-size:var(--fs-lg);
	margin-block-end:var(--space-xs);
	font-family:var(--zazo-d48);
	color:var(--ink);
}

.catalogue-card__desc {
	font-size:var(--fs-sm);
	color:var(--ink-soft);
	margin-block-end:var(--space-md);
	flex-grow:1;
	line-height:var(--lh-base);
}

.catalogue-card__footer {
	border-top:1px solid var(--violet-rule);
	padding-top:var(--space-sm);
	margin-top:auto;
	display:flex;
	justify-content:space-between;
	align-items:center;
	font-family:var(--zazo-70e);
	font-size:var(--fs-xs);
	color:var(--ink-dim);
}

.catalogue-item-detailed {
	border:1px solid var(--violet-rule);
	background-color:var(--ground-card);
	margin-block-end:var(--space-2xl);
	border-radius:var(--radius-xs);
	overflow:hidden;
	display:grid;
	grid-template-columns:1fr 1.2fr;
	align-items:stretch;
	transition:border-color var(--dur-base) var(--ease-out);
}

.catalogue-item-detailed:hover { border-color:var(--violet-mid); }

.catalogue-item-detailed__media {
	position:relative;
	background-color:var(--ground-elevated);
	border-right:1px solid var(--violet-rule);
	display:flex;
	height:100%;
}

.catalogue-item-detailed__media picture {
	width:100%;
	height:100% !important;
	display:flex;
	flex:1 1 100%;
}

.catalogue-item-detailed__img {
	width:100%;
	height:100% !important;
	min-height:100%;
	object-fit:cover;
	display:block;
	flex:1 1 100%;
}

.catalogue-item-detailed__content {
	padding:clamp(1.25rem, 3vw, 2.25rem);
	display:flex;
	flex-direction:column;
}

.catalogue-item-detailed__header { margin-block-end:var(--space-md); }

.catalogue-item-detailed__price {
	font-family:var(--zazo-70e);
	font-size:var(--fs-base);
	font-weight:700;
	color:var(--accent);
	display:block;
	margin-block-end:var(--space-2xs);
}

.catalogue-item-detailed__title {
	font-size:var(--fs-xl);
	color:var(--ink);
	margin-block-end:var(--space-xs);
}

.catalogue-item-detailed__desc {
	font-size:var(--fs-base);
	color:var(--ink-soft);
	margin-block-end:var(--space-md);
	line-height:var(--lh-base);
}

.catalogue-item-detailed__specs {
	margin-top:auto;
	padding-top:var(--space-md);
	border-top:1px solid var(--violet-rule);
	display:flex;
	flex-direction:column;
	gap:0.35rem;
	font-family:var(--zazo-70e);
	font-size:var(--fs-xs);
	color:var(--ink-dim);
}

@media (max-width: 820px) {
	.catalogue-item-detailed { grid-template-columns:1fr; }

	.catalogue-item-detailed__media {
		border-right:none;
		border-bottom:1px solid var(--violet-rule);
		min-height:240px;
	}
}

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

.signature-collage__item {
	position:absolute;
	border-radius:var(--radius-xs);
	box-shadow:0 12px 32px rgba(10, 4, 14, 0.7);
	border:1px solid var(--violet-rule);
	overflow:hidden;
	transition:transform var(--dur-flow) var(--ease-out),
							border-color var(--dur-base) var(--ease-out),
							z-index 0s;
}

.signature-collage__item:hover {
	transform:scale(1.03) rotate(0deg) !important;
	border-color:var(--accent);
	z-index:10 !important;
}

.signature-collage__item--lead {
	top:0;
	left:0;
	width:65%;
	z-index:1;
	transform:rotate(-1.5deg);
}

.signature-collage__item--support {
	bottom:0;
	right:0;
	width:55%;
	z-index:2;
	transform:rotate(2deg);
}

.signature-collage__item--detail {
	top:25%;
	left:35%;
	width:35%;
	z-index:3;
	transform:rotate(-0.5deg);
}

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

@media (max-width: 640px) {
	.signature-collage { min-height:380px; }

	.signature-collage__item--lead { width:78%; }

	.signature-collage__item--support { width:70%; }

	.signature-collage__item--detail { display:none; }
}

.spec-table-container {
	overflow-x:auto;
	-webkit-overflow-scrolling:touch;
	margin-block:var(--space-lg);
	border:1px solid var(--violet-rule);
	border-radius:var(--radius-xs);
	background-color:var(--ground-card);
}

.luku588.vipadf8.jema5f6 > table,
.luku588.vipadf8.jema5f6 > table > tbody,
.luku588.vipadf8.jema5f6 > table > tbody > tr,
.luku588.vipadf8.jema5f6 > table > tbody > tr > td,
.luku588.vipadf8.jema5f6 > table > tbody > tr > th {
	display:block;
	inline-size:auto;
	min-inline-size:0 !important;
}

.luku588.vipadf8.jema5f6 > table > thead { display:none; }

.luku588.vipadf8.jema5f6 > table > tbody > tr {
	margin-block-end:.75rem;
	padding:.5rem .75rem;
	border:1px solid var(--violet-rule);
	border-radius:.25rem;
	background-color:var(--ground-card);
}

.luku588.vipadf8.jema5f6 > table > tbody > tr > td {
	padding-block:.4rem;
	padding-inline:.5rem;
	border-bottom:1px solid rgba(88, 50, 114, 0.2);
}

.luku588.vipadf8.jema5f6 > table > tbody > tr > td:last-child { border-bottom:none; }

.luku588.vipadf8.jema5f6 > table > tbody > tr > td[data-label]::before {
	content:attr(data-label);
	display:block;
	font-size:.75em;
	font-family:var(--zazo-70e);
	font-weight:700;
	text-transform:uppercase;
	letter-spacing:.03em;
	color:var(--accent);
	margin-bottom:0.2rem;
}

.spec-table {
	width:100%;
	font-size:var(--fs-sm);
	border-collapse:collapse;
	min-width:520px;
}

.spec-table th,
.spec-table td {
	padding:0.85rem 1rem;
	text-align:left;
	border-bottom:1px solid var(--violet-rule);
}

.spec-table th {
	background-color:var(--ground-elevated);
	font-family:var(--zazo-70e);
	text-transform:uppercase;
	font-size:var(--fs-xs);
	letter-spacing:var(--tracking-wide);
	color:var(--ink);
	font-weight:700;
}

.spec-table tbody tr { transition:background-color var(--dur-rapid) var(--ease-letterpress); }

.spec-table tbody tr:hover td { background-color:rgba(255, 255, 255, 0.03); }

.spec-table td.numeric {
	font-family:var(--zazo-70e);
	font-weight:700;
	color:var(--accent);
}

.proof-grid {
	display:grid;
	grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
	gap:var(--space-lg);
	margin-block:var(--space-xl);
}

.proof-item {
	background-color:var(--ground-card);
	border:1px solid var(--violet-rule);
	padding:var(--space-lg);
	border-radius:var(--radius-xs);
	display:flex;
	flex-direction:column;
	gap:0.5rem;
	transition:border-color var(--dur-rapid) var(--ease-letterpress);
}

.proof-item:hover { border-color:var(--violet-mid); }

.proof-item__icon {
	color:var(--accent);
	font-size:var(--fs-lg);
	margin-block-end:0.25rem;
}

.proof-item__title {
	font-family:var(--zazo-d48);
	font-size:var(--fs-base);
	color:var(--ink);
}

.proof-item__desc {
	font-size:var(--fs-sm);
	color:var(--ink-soft);
	line-height:var(--lh-base);
	margin-block-end:0;
}

.rail-section {
	position:relative;
	margin-block:var(--space-2xl);
	overflow:hidden;
}

.rail-track {
	display:flex;
	gap:var(--space-lg);
	overflow-x:auto;
	scroll-snap-type:x mandatory;
	-webkit-overflow-scrolling:touch;
	padding-block:var(--space-md);
	padding-inline:0.25rem;
	scrollbar-width:none;
}

.rail-track::-webkit-scrollbar { display:none; }

.rail-item {
	flex:0 0 320px;
	scroll-snap-align:start;
}

.rail-controls {
	display:flex;
	align-items:center;
	justify-content:space-between;
	margin-block-start:var(--space-md);
	gap:var(--space-md);
}

.rail-progress {
	flex-grow:1;
	height:3px;
	background-color:var(--violet-rule);
	position:relative;
	border-radius:var(--radius-pill);
	overflow:hidden;
}

.rail-progress-bar {
	position:absolute;
	top:0;
	left:0;
	width:25%;
	height:100%;
	background-color:var(--accent);
	transition:left var(--dur-rapid) linear;
}

.rail-btn {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:44px;
	height:44px;
	border:1px solid var(--violet-rule);
	background-color:var(--ground-card);
	color:var(--ink);
	border-radius:var(--radius-xs);
	cursor:pointer;
	transition:background-color var(--dur-rapid) var(--ease-letterpress),
							color var(--dur-rapid) var(--ease-letterpress),
							border-color var(--dur-rapid) var(--ease-letterpress);
}

.rail-btn:hover {
	background-color:var(--ground-elevated);
	border-color:var(--accent);
	color:var(--accent);
}

.rail-btn:active {
	background-color:var(--accent);
	color:var(--ground);
}

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

.tabs-strip {
	display:flex;
	flex-wrap:wrap;
	border-bottom:1px solid var(--violet-rule);
	background-color:var(--ground-elevated);
	margin-block-end:var(--space-xl);
	border-radius:var(--radius-xs) var(--radius-xs) 0 0;
}

.tabs-strip__button {
	padding:0.85rem 1.5rem;
	font-family:var(--zazo-70e);
	font-size:var(--fs-xs);
	font-weight:700;
	text-transform:uppercase;
	letter-spacing:var(--tracking-wide);
	color:var(--ink-soft);
	border-right:1px solid var(--violet-rule);
	border-bottom:2px solid transparent;
	margin-bottom:-1px;
	background:transparent;
	min-height:44px;
	cursor:pointer;
	transition:background-color var(--dur-rapid) var(--ease-letterpress),
							color var(--dur-rapid) var(--ease-letterpress),
							border-bottom-color var(--dur-rapid) var(--ease-letterpress);
}

.tabs-strip__button:hover {
	background-color:var(--ground-card);
	color:var(--ink);
}

.tabs-strip__button:active {
	background-color:var(--accent-muted);
	color:var(--accent);
}

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

.tabs-strip__button[aria-selected='true'] {
	background-color:var(--ground-card);
	color:var(--accent);
	border-bottom-color:var(--accent);
}

.tab-panel { display:block; }

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

.workout-curriculum {
	display:flex;
	flex-direction:column;
	gap:var(--space-md);
	margin-block:var(--space-xl);
}

.workout-curriculum__block {
	background-color:var(--ground-card);
	border:1px solid var(--violet-rule);
	border-radius:var(--radius-xs);
	padding:var(--space-lg);
	display:flex;
	flex-direction:column;
	gap:var(--space-xs);
	transition:border-color var(--dur-rapid) var(--ease-letterpress);
}

.workout-curriculum__block:hover { border-color:var(--violet-mid); }

.workout-curriculum__title {
	font-family:var(--zazo-d48);
	font-size:var(--fs-md);
	color:var(--ink);
}

.workout-curriculum__desc {
	font-size:var(--fs-sm);
	color:var(--ink-soft);
	line-height:var(--lh-base);
	margin-block-end:0;
}

.inquiry-form {
	border:1px solid var(--violet-rule);
	border-radius:var(--radius-xs);
	padding:clamp(1.25rem, 3.5vw, 2.75rem);
	background-color:var(--ground-card);
	margin-block:var(--space-xl);
	box-shadow:var(--shadow-md);
}

.inquiry-form__grid {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:var(--space-md);
}

@media (max-width: 680px) {
	.inquiry-form__grid { grid-template-columns:1fr; }
}

.form-group {
	display:flex;
	flex-direction:column;
	gap:0.35rem;
	margin-block-end:var(--space-md);
}

.form-group--full { grid-column:1 / -1; }

.form-label {
	font-family:var(--zazo-70e);
	font-size:var(--fs-xs);
	text-transform:uppercase;
	letter-spacing:var(--tracking-wide);
	font-weight:700;
	color:var(--ink);
}

.form-label .optional {
	font-weight:400;
	color:var(--ink-dim);
	text-transform:none;
	font-size:var(--fs-2xs);
}

.form-input,
.form-select,
.form-textarea {
	width:100%;
	padding:0.75rem 0.95rem;
	border:1px solid var(--violet-mid);
	background-color:var(--ground);
	color:var(--ink);
	font-size:var(--fs-sm);
	border-radius:var(--radius-xs);
	transition:border-color var(--dur-rapid) var(--ease-letterpress),
							box-shadow var(--dur-rapid) var(--ease-letterpress),
							background-color var(--dur-rapid) var(--ease-letterpress);
	min-height:44px;
}

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

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

.form-input:focus-visible,
.form-select:focus-visible,
.form-textarea:focus-visible {
	outline:2px solid var(--accent);
	outline-offset:1px;
	border-color:var(--accent);
	background-color:var(--ground);
	box-shadow:0 0 12px rgba(212, 255, 50, 0.15);
}

.form-input[aria-invalid='true'],
.form-select[aria-invalid='true'],
.form-textarea[aria-invalid='true'] {
	border-color:var(--status-error-border);
	background-color:rgba(186, 24, 27, 0.1);
}

.form-error {
	font-size:var(--fs-xs);
	color:#FF8A8A;
	font-family:var(--zazo-70e);
	margin-top:0.25rem;
	display:none;
	line-height:var(--lh-snug);
}

.form-error.is-visible { display:block; }

.form-checkbox-label {
	display:flex;
	align-items:flex-start;
	gap:0.75rem;
	font-size:var(--fs-sm);
	color:var(--ink-soft);
	cursor:pointer;
	line-height:var(--lh-snug);
}

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

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

.form-hp,
input[name='branch'],
input[name='site'] {
	display:none !important;
	visibility:hidden !important;
	position:absolute !important;
	left:-9999px !important;
}

.form-status {
	padding:var(--space-md);
	margin-block-start:var(--space-md);
	border-radius:var(--radius-xs);
	font-size:var(--fs-sm);
	display:none;
	line-height:var(--lh-snug);
}

.form-status.is-success {
	display:block;
	background-color:var(--status-success-bg);
	border:1px solid var(--status-success-border);
	color:var(--status-success-ink);
}

.form-status.is-error {
	display:block;
	background-color:var(--status-error-bg);
	border:1px solid var(--status-error-border);
	color:var(--status-error-ink);
}

.site-footer {
	border-top:1px solid var(--violet-rule);
	background-color:var(--ground-elevated);
	margin-top:auto;
	padding:var(--space-3xl) 0 var(--space-xl);
	font-size:var(--fs-sm);
	position:relative;
	z-index:10;
}

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

@media (max-width: 860px) {
	.site-footer__grid {
		grid-template-columns:1fr;
		gap:var(--space-xl);
	}
}

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

.site-footer__brand-col .brand img {
	height:2.3rem;
	width:auto;
}

.site-footer__brand-col p {
	font-size:var(--fs-sm);
	color:var(--ink-soft);
	max-width:44ch;
	line-height:var(--lh-base);
}

.site-footer__heading {
	font-family:var(--zazo-70e);
	font-size:var(--fs-xs);
	text-transform:uppercase;
	letter-spacing:var(--tracking-wide);
	color:var(--ink);
	margin-block-end:var(--space-sm);
	border-bottom:1px solid var(--violet-rule);
	padding-bottom:0.4rem;
}

.site-footer__list {
	display:flex;
	flex-direction:column;
	gap:0.45rem;
}

.site-footer__link {
	color:var(--ink-soft);
	text-decoration:none;
	display:inline-flex;
	align-items:center;
	padding-block:0.25rem;
	min-height:44px;
	line-height:var(--lh-snug);
	transition:color var(--dur-rapid) var(--ease-letterpress),
							transform var(--dur-rapid) var(--ease-letterpress);
}

.site-footer__link:hover {
	color:var(--accent);
	text-decoration:underline;
	transform:translateX(2px);
}

.site-footer__link:active { color:var(--ink); }

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

.site-footer__facts {
	display:flex;
	flex-direction:column;
	gap:0.45rem;
	color:var(--ink-soft);
	font-size:var(--fs-xs);
	font-family:var(--zazo-70e);
	line-height:var(--lh-snug);
}

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

.site-footer__facts a:hover { color:var(--accent); }

.site-footer__facts a:active { color:var(--ink-dim); }

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

.site-footer__legal-row {
	border-top:1px solid var(--violet-rule);
	padding-top:var(--space-md);
	display:flex;
	justify-content:space-between;
	align-items:center;
	flex-wrap:wrap;
	gap:var(--space-md);
	font-size:var(--fs-xs);
	color:var(--ink-dim);
}

.site-footer__legal-links {
	display:flex;
	gap:var(--space-md);
	flex-wrap:wrap;
	align-items:center;
}

.site-footer__consent-btn {
	font-family:var(--zazo-70e);
	font-size:var(--fs-xs);
	color:var(--ink-soft);
	text-decoration:underline;
	cursor:pointer;
	padding:0.4rem 0.65rem;
	min-height:44px;
	display:inline-flex;
	align-items:center;
	border:1px dashed var(--violet-mid);
	border-radius:var(--radius-xs);
	background:transparent;
	transition:color var(--dur-rapid) var(--ease-letterpress),
							border-color var(--dur-rapid) var(--ease-letterpress),
							background-color var(--dur-rapid) var(--ease-letterpress);
}

.site-footer__consent-btn:hover {
	color:var(--accent);
	border-color:var(--accent);
	background-color:var(--accent-muted);
}

.site-footer__consent-btn:active {
	color:var(--ink);
	background-color:var(--violet-mid);
}

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

.site-footer__copy {
	font-family:var(--zazo-70e);
	font-size:var(--fs-2xs);
}

.cookie-banner {
	position:fixed;
	bottom:0;
	left:0;
	width:100%;
	max-height:25vh;
	overflow-y:auto;
	background-color:var(--ground-elevated);
	border-top:1px solid var(--violet-rule);
	padding:0.5rem clamp(0.75rem, 2vw, 1.5rem);
	z-index:960;
	box-shadow:0 -8px 24px rgba(10, 4, 14, 0.75);
}

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

.cookie-banner__inner {
	max-width:var(--container-max);
	margin:0 auto;
	display:flex;
	justify-content:space-between;
	align-items:center;
	gap:var(--space-md);
	flex-wrap:wrap;
}

.cookie-banner__text {
	font-size:var(--fs-xs);
	color:var(--ink-soft);
	margin-block-end:0;
	max-width:78ch;
	line-height:var(--lh-snug);
}

.cookie-banner__text a {
	color:var(--accent);
	font-weight:600;
}

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

.cookie-banner__btn {
	padding:0.45rem 1rem;
	font-family:var(--zazo-70e);
	font-size:var(--fs-xs);
	font-weight:700;
	text-transform:uppercase;
	letter-spacing:var(--tracking-wide);
	border-radius:var(--radius-xs);
	border:1px solid var(--violet-mid);
	cursor:pointer;
	min-height:44px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	transition:background-color var(--dur-rapid) var(--ease-letterpress),
							color var(--dur-rapid) var(--ease-letterpress),
							border-color var(--dur-rapid) var(--ease-letterpress),
							transform var(--dur-rapid) var(--ease-letterpress);
}

.cookie-banner__btn--accept {
	background-color:var(--accent);
	color:var(--ground);
	border-color:var(--accent);
}

.cookie-banner__btn--accept:hover {
	background-color:var(--accent-hover);
	border-color:var(--accent-hover);
	color:var(--ground);
	transform:translateY(-1px);
}

.cookie-banner__btn--accept:active {
	background-color:var(--accent-active);
	transform:translateY(0);
}

.cookie-banner__btn--accept:focus-visible {
	outline:2px solid var(--ink);
	outline-offset:2px;
}

.cookie-banner__btn--decline {
	background-color:var(--ground-card);
	color:var(--ink-soft);
	border-color:var(--violet-rule);
}

.cookie-banner__btn--decline:hover {
	background-color:var(--ground);
	border-color:var(--violet-mid);
	color:var(--ink);
	transform:translateY(-1px);
}

.cookie-banner__btn--decline:active {
	background-color:var(--violet-mid);
	color:var(--ground);
	transform:translateY(0);
}

.cookie-banner__btn--decline:focus-visible {
	outline:2px solid var(--accent);
	outline-offset:2px;
}

.chat-launcher {
	position:fixed;
	bottom:clamp(1rem, 2.5vw, 2rem);
	right:clamp(1rem, 2.5vw, 2rem);
	width:52px;
	height:52px;
	border-radius:50%;
	background-color:var(--accent);
	color:var(--ground);
	border:2px solid var(--ground-elevated);
	box-shadow:0 6px 20px rgba(10, 4, 14, 0.6);
	display:flex;
	align-items:center;
	justify-content:center;
	z-index:930;
	cursor:pointer;
	transition:background-color var(--dur-rapid) var(--ease-letterpress),
							transform var(--dur-rapid) var(--ease-letterpress),
							box-shadow var(--dur-rapid) var(--ease-letterpress),
							bottom var(--dur-base) var(--ease-out);
}

body:has(.cookie-banner:not([hidden])) .chat-launcher { bottom:clamp(4.5rem, 8vw, 5.5rem); }

.chat-launcher:hover {
	background-color:var(--accent-hover);
	transform:translateY(-2px) scale(1.04);
	box-shadow:0 8px 24px rgba(212, 255, 50, 0.35);
}

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

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

.chat-launcher__badge {
	position:absolute;
	top:-4px;
	right:-4px;
	background-color:var(--ground);
	color:var(--accent);
	font-family:var(--zazo-70e);
	font-size:11px;
	font-weight:700;
	width:20px;
	height:20px;
	border-radius:50%;
	display:flex;
	align-items:center;
	justify-content:center;
	border:2px solid var(--accent);
}

.chat-launcher__badge[hidden] { display:none !important; }

.chat-panel {
	position:fixed;
	bottom:clamp(5rem, 7vw, 6.25rem);
	right:clamp(1rem, 2.5vw, 2rem);
	width:min(390px, calc(100vw - 2rem));
	height:520px;
	max-height:calc(100vh - 7.5rem);
	background-color:var(--ground-elevated);
	border:1px solid var(--violet-mid);
	border-radius:var(--radius-xs);
	box-shadow:0 16px 48px rgba(10, 4, 14, 0.85);
	display:flex;
	flex-direction:column;
	z-index:940;
}

.chat-panel[hidden] { display:none !important; }

.chat-panel__header {
	padding:0.85rem 1rem;
	background-color:var(--ground-card);
	border-bottom:1px solid var(--violet-rule);
	display:flex;
	justify-content:space-between;
	align-items:center;
}

.chat-panel__title {
	font-family:var(--zazo-d48);
	font-size:var(--fs-sm);
	color:var(--ink);
	letter-spacing:var(--tracking-wide);
	margin:0;
	font-weight:700;
}

.chat-panel__close {
	color:var(--ink-soft);
	display:flex;
	align-items:center;
	justify-content:center;
	min-height:44px;
	min-width:44px;
	border-radius:var(--radius-xs);
	cursor:pointer;
	transition:color var(--dur-rapid) var(--ease-letterpress),
							background-color var(--dur-rapid) var(--ease-letterpress),
							transform var(--dur-rapid) var(--ease-letterpress);
}

.chat-panel__close:hover {
	color:var(--accent);
	background-color:rgba(255, 255, 255, 0.05);
	transform:rotate(90deg);
}

.chat-panel__close:active {
	color:var(--ink);
	background-color:var(--violet-mid);
}

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

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

.chat-message {
	max-width:85%;
	padding:0.65rem 0.85rem;
	font-size:var(--fs-xs);
	line-height:var(--lh-base);
	word-wrap:break-word;
	border-radius:var(--radius-xs);
}

.chat-message--agent {
	align-self:flex-start;
	background-color:var(--ground-card);
	border:1px solid var(--violet-rule);
	color:var(--ink);
}

.chat-message--user {
	align-self:flex-end;
	background-color:var(--violet-mid);
	color:var(--ink);
	border:1px solid var(--violet-rule);
}

.chat-panel__footer {
	padding:0.75rem;
	background-color:var(--ground-card);
	border-top:1px solid var(--violet-rule);
}

.chat-panel__form {
	display:flex;
	gap:0.4rem;
}

.chat-panel__input {
	flex-grow:1;
	padding:0.5rem 0.75rem;
	border:1px solid var(--violet-mid);
	background-color:var(--ground);
	color:var(--ink);
	font-size:var(--fs-xs);
	border-radius:var(--radius-xs);
	min-height:44px;
}

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

.chat-panel__send {
	padding:0.5rem 0.95rem;
	background-color:var(--accent);
	color:var(--ground);
	font-family:var(--zazo-70e);
	font-size:var(--fs-xs);
	font-weight:700;
	min-height:44px;
	border-radius:var(--radius-xs);
	cursor:pointer;
	transition:background-color var(--dur-rapid) var(--ease-letterpress),
							color var(--dur-rapid) var(--ease-letterpress);
}

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

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

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

.chat-pre-auth {
	display:flex;
	flex-direction:column;
	gap:0.5rem;
}

.chat-pre-auth .form-input {
	min-height:40px;
	font-size:var(--fs-xs);
	padding:0.45rem 0.65rem;
}
