/* Cookie banner & chat launcher fixed positions and clearance */
.cookie-banner {
	position:fixed;
	bottom:0;
	left:0;
	right:0;
	z-index:950;
	background-color:var(--surface);
	border-top:1px solid var(--line);
	padding:0.75rem var(--frame-padding);
	box-shadow:0 -4px 20px rgba(10, 28, 27, 0.5);
	display:none;
}

body {
	padding-bottom:clamp(16rem, 28vh, 26rem);
}

.site-frame {
	padding-bottom:8rem;
}

.site-header {
	position:sticky;
	top:0;
	z-index:100;
	background-color:var(--surface);
	border-bottom:1px solid var(--line);
	transition:padding var(--duration-base) var(--ease-standard),
							background-color var(--duration-base) var(--ease-standard),
							box-shadow var(--duration-base) var(--ease-standard);
	will-change:padding;
}

.site-header.docked-bar {
	background-color:rgba(26, 77, 76, 0.96);
	backdrop-filter:blur(8px);
	-webkit-backdrop-filter:blur(8px);
	box-shadow:0 4px 16px rgba(10, 28, 27, 0.4);
}

.header-inner {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:var(--space-s);
	min-height:var(--header-height);
	padding-inline:var(--frame-padding);
	transition:min-height var(--duration-base) var(--ease-standard);
}

.site-header.docked-bar .header-inner {
	min-height:var(--header-condensed-height);
}

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

.brand-link img {
	height:2.85rem;
	width:auto;
	display:block;
	transition:height var(--duration-base) var(--ease-standard);
}

.site-header.docked-bar .brand-link img {
	height:2.15rem;
}

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

.site-nav-list {
	display:flex;
	align-items:center;
	gap:clamp(0.5rem, 1.2vw, 1.5rem);
	list-style:none;
	padding:0;
	margin:0;
}

.nav-link {
	display:inline-flex;
	align-items:center;
	padding:0.5rem 0.75rem;
	min-height:44px;
	font-size:var(--step--1);
	font-weight:500;
	color:var(--ink-soft);
	text-decoration:none;
	border-radius:var(--radius-s);
	border-bottom:2px solid transparent;
	transition:color var(--duration-fast) var(--ease-standard),
							background-color var(--duration-fast) var(--ease-standard),
							border-color var(--duration-fast) var(--ease-standard);
}

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

.nav-link:active {
	color:var(--ink);
	background-color:rgba(34, 94, 92, 0.75);
}

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

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

.nav-toggle-btn {
	display:none;
	align-items:center;
	justify-content:center;
	gap:0.5rem;
	min-height:44px;
	min-width:44px;
	padding:0.5rem 0.75rem;
	font-size:var(--step--1);
	font-weight:600;
	color:var(--ink);
	background-color:var(--surface-2);
	border:1px solid var(--line);
	border-radius:var(--radius-s);
	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-btn:hover {
	background-color:rgba(34, 94, 92, 0.9);
	border-color:var(--ink-soft);
}

.nav-toggle-btn:active {
	background-color:var(--ground);
}

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

.header-action {
	display:inline-flex;
	align-items:center;
	margin-inline-start:var(--space-xs);
}

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

	.site-nav {
		position:absolute;
		top:100%;
		left:0;
		right:0;
		background-color:var(--surface);
		border-bottom:1px solid var(--line);
		padding:var(--space-s) var(--frame-padding);
		display:none;
		box-shadow:0 8px 24px rgba(10, 28, 27, 0.5);
	}

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

	.site-nav-list {
		flex-direction:column;
		align-items:stretch;
		gap:0.25rem;
	}

	.nav-link {
		width:100%;
		padding:0.65rem 0.85rem;
	}

	.header-action {
		display:none;
	}

	.site-header.docked-bar .header-inner {
		min-height:var(--header-condensed-height);
	}
}

.btn {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:0.5rem;
	padding:0.65rem 1.25rem;
	height:48px;
	min-height:48px;
	box-sizing:border-box;
	font-family:var(--nezi-dac);
	font-size:var(--step--1);
	font-weight:600;
	line-height:1.2;
	text-decoration:none;
	text-align:center;
	border-radius:var(--radius-s);
	border:1px solid transparent;
	cursor:pointer;
	white-space:normal;
	transition:background-color var(--duration-fast) var(--ease-standard),
							border-color var(--duration-fast) var(--ease-standard),
							color var(--duration-fast) var(--ease-standard),
							box-shadow var(--duration-fast) var(--ease-standard),
							transform var(--duration-fast) var(--ease-standard);
}

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

.btn-primary:hover {
	background-color:#D6AB58;
	border-color:#D6AB58;
	color:#000;
}

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

.btn-primary:focus-visible {

	outline:2px solid var(--ink);
	outline-offset:2px;
}

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

.btn-secondary:hover {
	background-color:#2B7471;
	border-color:var(--ink-soft);
	color:#FFF;
}

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

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

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

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

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

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

}

.badge {
	display:inline-flex;
	align-items:center;
	gap:0.35rem;
	padding:0.25rem 0.6rem;
	min-height:26px;
	font-family:var(--nezi-344);
	font-size:var(--step--2);
	font-weight:500;
	text-transform:uppercase;
	letter-spacing:0.05em;
	color:var(--ink-soft);
	background-color:var(--surface);
	border:1px solid var(--line);
	border-radius:var(--radius-xs);
}

.badge-accent {
	color:var(--accent-ink);
	background-color:var(--accent);
	border-color:var(--accent);
	font-weight:600;
}

.tabs-container {
	display:flex;
	flex-direction:column;
	width:100%;
}

.tab-nav {
	display:flex;
	align-items:stretch;
	border-bottom:1px solid var(--line);
	background-color:var(--surface);
	overflow-x:auto;
	scrollbar-width:thin;
}

.tab-btn {
	display:inline-flex;
	align-items:center;

	justify-content:center;
	padding:0.85rem 1.4rem;
	min-height:48px;
	font-size:var(--step--1);
	font-weight:600;
	color:var(--ink-soft);
	background-color:transparent;
	border:0;
	border-bottom:3px solid transparent;
	border-right:1px solid var(--line);
	white-space:nowrap;
	flex:1 0 auto;
	text-align: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),
							transform var(--duration-fast) var(--ease-standard);
}

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

.tab-btn:active {
	background-color:rgba(34, 94, 92, 0.8);
	transform:translateY(1px);
}

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

.tab-btn[aria-selected='true'] {
	color:var(--ink);
	background-color:var(--ground);
	border-bottom-color:var(--accent);
}

.tab-panel {
	display:none;
	padding-block:var(--space-xl);
}

.tab-panel[data-active='true'] {
	display:block;
}

.plate-section {
	padding-block:var(--space-l);
	border-bottom:1px solid var(--line);
}

.plate-section:last-of-type {
	border-bottom:none;
}

.plate-frame {
	margin-inline:auto;
	width:100%;
	max-width:var(--frame-max);
}

.plate-image-wrap {
	width:100%;
	background-color:var(--surface);
	border:1px solid var(--line);
	border-radius:var(--radius-s);
	overflow:hidden;
}

.plate-image-wrap img {
	width:100%;
	height:auto;
	object-fit:cover;
	aspect-ratio:16 / 9;
	display:block;
}

.plate-image-wrap.tall-ratio img {
	aspect-ratio:21 / 9;
}

.plate-image-wrap.compact-ratio img {
	aspect-ratio:3 / 2;
}

.plate-caption {
	margin-block-start:var(--space-s);
	max-width:var(--measure-caption);
}

.plate-caption-lead {
	display:block;
	font-family:var(--nezi-878);
	font-size:var(--nezi-0ba);
	font-weight:600;
	line-height:1.25;
	color:var(--ink);
	margin-block-end:0.35rem;
}

.plate-caption-body {
	font-size:var(--step--1);
	line-height:1.5;
	color:var(--ink-soft);
	margin-block-end:0.5rem;
}

.plate-caption-meta {
	display:flex;
	flex-wrap:wrap;
	gap:0.75rem;
	font-family:var(--nezi-344);
	font-size:var(--step--2);
	color:var(--ink-soft);
}

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

.spec-table {
	width:100%;
	text-align:left;
	font-size:var(--step--1);
	border-collapse:collapse;
}

.spec-table th,
.spec-table td {
	padding:0.85rem 1.15rem;
	border-bottom:1px solid var(--line);
	vertical-align:top;
}

.spec-table th {
	font-family:var(--nezi-dac);
	font-weight:600;
	color:var(--ink);
	background-color:var(--surface-2);
	letter-spacing:0.02em;
}

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

.spec-table tr:hover td {
	background-color:rgba(34, 94, 92, 0.35);
}

.spec-table .price-cell {
	font-family:var(--nezi-344);
	font-weight:500;
	color:var(--ink);
	white-space:nowrap;
}

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

.form-label {
	font-size:var(--step--1);
	font-weight:600;
	color:var(--ink);
	display:flex;
	align-items:baseline;
	justify-content:space-between;
}

.form-label-hint {
	font-size:var(--step--2);
	font-weight:400;
	color:var(--ink-soft);
}

.form-input,
.form-select,
.form-textarea {
	width:100%;
	height:48px;
	min-height:48px;
	box-sizing:border-box;
	padding:0.65rem 0.85rem;
	font-family:var(--nezi-dac);
	font-size:var(--nezi-9bd);
	color:var(--ink);
	background-color:var(--surface-2);
	border:1px solid var(--line);
	border-radius:var(--radius-s);
	transition:border-color var(--duration-fast) var(--ease-standard),
							background-color var(--duration-fast) var(--ease-standard),
							box-shadow var(--duration-fast) var(--ease-standard);
}

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

.form-input:hover,
.form-select:hover,
.form-textarea:hover {
	border-color:var(--ink-soft);
	background-color:rgba(34, 94, 92, 0.85);
}

.form-input:focus-visible,
.form-select:focus-visible,
.form-textarea:focus-visible {
	outline:none;
	border-color:var(--accent);
	box-shadow:0 0 0 2px rgba(196, 154, 74, 0.35);
}

.form-input[aria-invalid='true'],
.form-select[aria-invalid='true'],
.form-textarea[aria-invalid='true'] {
	border-color:#E57373;
	background-color:rgba(229, 115, 115, 0.08);
}

.form-field-error {
	font-size:var(--step--2);
	color:#FF9E9E;
	display:none;
	margin-top:0.2rem;
}

.form-field-error[data-visible='true'] {
	display:block;
}

.form-checkbox-label {
	display:grid;
	grid-template-columns:1.25rem 1fr;
	align-items:start;
	gap:0.65rem;
	font-size:var(--step--1);
	color:var(--ink-soft);
	cursor:pointer;
	margin-block:var(--space-s);
}

.form-checkbox {
	width:1.25rem;
	height:1.25rem;
	margin-top:0.15rem;
	accent-color:var(--accent);
	cursor:pointer;
}

.form-alert {
	padding:0.85rem 1.15rem;
	border-radius:var(--radius-s);
	margin-block-end:var(--space-s);
	font-size:var(--step--1);
	display:none;
}

.form-alert[data-status='success'] {
	display:block;
	background-color:rgba(68, 126, 124, 0.35);
	border:1px solid var(--accent);
	color:var(--ink);
}

.form-alert[data-status='error'] {
	display:block;
	background-color:rgba(229, 115, 115, 0.15);
	border:1px solid #E57373;
	color:#FFD8D8;
}

.site-footer {
	margin-top:auto;
	background-color:var(--surface);
	border-top:1px solid var(--line);
	padding-block:var(--space-xl) var(--space-m);
	color:var(--ink-soft);
	font-size:var(--step--1);
}

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

.footer-top {
	display:grid;
	grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
	gap:var(--space-l);
}

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

.footer-brand-col img {
	height:3.25rem;
	width:auto;
	display:block;
}

.footer-disclaimer {
	font-size:var(--step--2);
	line-height:1.45;
	color:var(--ink-soft);
	max-width:44ch;
	border-left:2px solid var(--line);
	padding-left:0.75rem;
}

.footer-col-title {
	font-family:var(--nezi-878);
	font-size:var(--nezi-9bd);
	font-weight:600;
	color:var(--ink);
	margin-block-end:0.75rem;
}

.footer-nav-list {
	list-style:none;
	display:flex;
	flex-direction:column;
	gap:0.45rem;
}

.footer-link {
	color:var(--ink-soft);
	text-decoration:none;
	padding:0.2rem 0;
	margin-inline-start:0.5rem;
	display:inline-flex;
	align-items:center;
	min-height:44px;
	transition:color var(--duration-fast) var(--ease-standard);
}

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

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

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

.footer-legal-row {
	border-top:1px solid var(--line);
	padding-top:var(--space-m);
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	justify-content:space-between;
	gap:var(--space-s);
	font-size:var(--step--2);
}

.footer-legal-links {
	display:flex;
	flex-wrap:wrap;
	gap:1.25rem;
	list-style:none;
}

.cookie-banner {
	position:static;
	z-index:950;
	background-color:rgba(26, 77, 76, 0.98);
	backdrop-filter:blur(8px);
	-webkit-backdrop-filter:blur(8px);
	border-top:1px solid var(--line);
	padding:0.75rem var(--frame-padding);
	box-shadow:0 -4px 20px rgba(10, 28, 27, 0.5);
	display:none;
}

@media (max-width: 48rem) {
	.cookie-banner-inner {
		flex-direction:row;
		align-items:center;
		justify-content:space-between;
		gap:0.5rem;
	}
	.cookie-banner-actions {
		width:auto;
		justify-content:flex-end;
	}
}

.cookie-banner[data-visible='true'] {
	display:block;
}

.cookie-banner-inner {
	max-width:var(--frame-max);
	margin-inline:auto;
	display:flex;
	align-items:center;
	justify-content:space-between;
	flex-wrap:wrap;
	gap:0.75rem;
}

.cookie-banner-text {
	font-size:var(--step--1);
	color:var(--ink);
	margin-bottom:0;
	max-width:68ch;
	line-height:1.4;
}

.cookie-banner-text a {
	color:var(--ink);
	text-decoration:underline;
}

.cookie-banner-actions {
	display:flex;
	align-items:center;
	gap:0.5rem;
	flex-shrink:0;
}

.cookie-btn {
	padding:0.45rem 0.95rem;
	min-height:44px;
	font-size:var(--step--1);
	font-weight:600;
	border-radius:var(--radius-s);
	border:1px solid transparent;
	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),
							transform var(--duration-fast) var(--ease-standard);
}

.cookie-btn-accept {
	background-color:var(--accent);
	color:var(--accent-ink);
	border-color:var(--accent);
}

.cookie-btn-accept:hover {
	background-color:#D6AB58;
	border-color:#D6AB58;
}

.cookie-btn-accept:active {
	background-color:#B3893A;
	transform:translateY(1px);
}

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

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

.cookie-btn-decline:hover {
	background-color:#2B7471;
	border-color:var(--ink-soft);
}

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

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

.chat-launcher {
	position:fixed;
	bottom:1.25rem;
	right:1.25rem;
	z-index:900;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:0.5rem;
	min-height:48px;
	padding:0.65rem 1.15rem;
	background-color:var(--surface-2);
	color:var(--ink);
	border:1px solid var(--line);
	border-radius:9999px;
	box-shadow:var(--elevation-panel);
	cursor:pointer;
	font-size:var(--step--1);
	font-weight:600;
	transition:transform var(--duration-fast) var(--ease-standard),
							background-color var(--duration-fast) var(--ease-standard),
							border-color var(--duration-fast) var(--ease-standard),
							bottom var(--duration-base) var(--ease-standard),
							box-shadow var(--duration-fast) var(--ease-standard);
}

.chat-launcher:hover {
	background-color:#2B7471;
	border-color:var(--ink-soft);
	transform:translateY(-2px);
	box-shadow:var(--elevation-raised);
}

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

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

.chat-launcher.with-banner-offset {
	bottom:5.5rem;
}

.chat-unread-badge {
	display:none;
	align-items:center;
	justify-content:center;
	min-width:20px;
	height:20px;
	padding-inline:5px;
	border-radius:10px;
	background-color:var(--accent);
	color:var(--accent-ink);
	font-family:var(--nezi-344);
	font-size:0.75rem;
	font-weight:700;
}

.chat-unread-badge[data-count] {
	display:inline-flex;
}

.chat-panel {
	position:fixed;
	bottom:5.5rem;
	right:1.25rem;
	z-index:920;
	width:min(380px, calc(100vw - 2.5rem));
	height:min(520px, calc(100vh - 7rem));
	background-color:var(--surface);
	border:1px solid var(--line);
	border-radius:var(--radius-m);
	box-shadow:var(--elevation-raised);
	display:none;
	flex-direction:column;
	overflow:hidden;
}

.chat-panel[data-open='true'] {
	display:flex;
}

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

.chat-title {
	font-family:var(--nezi-878);
	font-size:var(--nezi-9bd);
	font-weight:600;
	color:var(--ink);
}

.chat-close-btn {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:44px;
	min-width:44px;
	padding:0.25rem;
	color:var(--ink-soft);
	border-radius:var(--radius-s);
	transition:color var(--duration-fast) var(--ease-standard),
							background-color var(--duration-fast) var(--ease-standard);
}

.chat-close-btn:hover {
	color:var(--ink);
	background-color:rgba(34, 94, 92, 0.5);
}

.chat-close-btn:active {
	background-color:var(--ground);
}

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

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

.chat-bubble {
	padding:0.65rem 0.85rem;
	border-radius:var(--radius-s);
	font-size:var(--step--1);
	line-height:1.45;
	max-width:85%;
}

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

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

.chat-input-row {
	display:flex;
	align-items:center;
	gap:0.5rem;
	padding:0.75rem 1rem;
	background-color:var(--surface-2);
	border-top:1px solid var(--line);
}

.chat-input {
	flex:1 1 auto;
	min-height:44px;
	padding:0.5rem 0.75rem;
	background-color:var(--ground);
	color:var(--ink);
	border:1px solid var(--line);
	border-radius:var(--radius-s);
	font-size:var(--step--1);
}

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

.chat-send-btn {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:44px;
	min-width:44px;
	padding:0.5rem;
	background-color:var(--accent);
	color:var(--accent-ink);
	border-radius:var(--radius-s);
	transition:background-color var(--duration-fast) var(--ease-standard);
}

.chat-send-btn:hover {
	background-color:#D6AB58;
}

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

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