.masthead {
	width:100%;
	background-color:var(--ground);
	border-bottom:1px solid var(--line);
	position:relative;
	z-index:50;
}

.masthead-topline {
	display:none;
	border-bottom:1px solid var(--line);
	padding-block:var(--space-2);
	font-family:var(--hole-a12);
	font-size:var(--text-xs);
	color:var(--ink-soft);
	text-transform:uppercase;
	letter-spacing:var(--tracking-wider);
}

@media (min-width: 1080px) {
	.masthead-topline { display:block; }
}

.masthead-topline-inner {
	display:flex;
	justify-content:space-between;
	align-items:center;
	gap:var(--space-4);
}

.masthead-main {
	padding-block:var(--space-3);
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:var(--space-4);
}

@media (min-width: 1080px) {
	.masthead-main {
		padding-block:var(--space-4);
		border-bottom:1px solid var(--line);
	}
}

.brand {
	display:inline-flex;
	align-items:center;
	text-decoration:none;
	flex-shrink:0;
	max-width:38vw;
}

@media (min-width: 1080px) {
	.brand { max-width:none; }
}

.brand img {
	height:2.1rem;
	width:auto;
	display:block;
}

.masthead-aside {
	display:none;
	align-items:center;
	gap:var(--space-6);
	font-size:var(--text-xs);
	color:var(--ink-soft);
}

@media (min-width: 1080px) {
	.masthead-aside { display:flex; }
}

.masthead-aside-item {
	display:flex;
	flex-direction:column;
	line-height:var(--leading-tight);
}

.masthead-aside-item strong {
	color:var(--ink);
	font-family:var(--hole-a12);
	font-weight:500;
}

.masthead-nav-row {
	display:none;
	padding-block:0;
}

@media (min-width: 1080px) {
	.masthead-nav-row { display:block; }
}

.masthead-nav-list {
	display:flex;
	align-items:stretch;
	list-style:none;
	margin:0;
	padding:0;
	gap:0;
	border-left:1px solid var(--line);
}

.masthead-nav-item { display:flex; }

.masthead-nav-link {
	display:inline-flex;
	align-items:center;
	padding:var(--space-3) var(--space-4);
	font-family:var(--hole-651);
	font-weight:700;
	font-size:var(--text-xs);
	letter-spacing:var(--tracking-wider);
	text-transform:uppercase;
	color:var(--ink);
	text-decoration:none;
	border-right:1px solid var(--line);
	border-bottom:2px solid transparent;
	background-color:transparent;
	min-height:44px;
	white-space:nowrap;
	transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}

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

.masthead-nav-link:active { background-color:var(--surface-2); }

.masthead-nav-link:focus-visible {

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

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

.masthead-nav-cta {
	margin-left:auto;
	border-left:1px solid var(--line);
}

.masthead-nav-cta .btn { border-right:1px solid var(--line); }

.mobile-dock {
	position:fixed;
	inset:auto 0 0 0;
	z-index:900;
	height:var(--dock-height);
	background-color:var(--ground);
	border-top:1px solid var(--line);
	padding-bottom:env(safe-area-inset-bottom, 0);
	display:block;
}

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

.mobile-dock-list {
	display:flex;
	height:100%;
	list-style:none;
	margin:0;
	padding:0;
}

.mobile-dock-item {
	flex:1 1 0;
	display:flex;
	min-width:0;
	border-right:1px solid var(--surface-2);
}

.mobile-dock-item:last-child { border-right:0; }

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

.mobile-dock-link .icon,
.mobile-dock-btn .icon {
	width:22px;
	height:22px;
}

.mobile-dock-label {
	font-family:var(--hole-651);
	font-size:11px;
	font-weight:700;
	letter-spacing:var(--tracking-wider);
	text-transform:uppercase;
	line-height:1;
	white-space:nowrap;
}

.mobile-dock-link:hover,
.mobile-dock-btn:hover {
	background-color:var(--surface);
	color:var(--ink);
}

.mobile-dock-link:active,
.mobile-dock-btn:active {
	background-color:var(--surface-2);
	color:var(--accent);
}

.mobile-dock-link:focus-visible,
.mobile-dock-btn:focus-visible {

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

.mobile-dock-link[aria-current="page"] {
	color:var(--accent);
	background-color:var(--surface);
}

.mobile-dock-link[aria-current="page"] .mobile-dock-label { color:var(--accent); }

.mobile-nav-drawer {
	position:fixed;
	inset:0;
	z-index:1100;
	background-color:rgba(39, 41, 43, 0.72);
	display:flex;
	flex-direction:column;
	justify-content:flex-end;
	opacity:0;
	pointer-events:none;
	transition:opacity var(--dur-med) var(--ease-out);
}

.mobile-nav-drawer.is-open,
.mobile-nav-drawer[aria-hidden="false"] {
	opacity:1;
	pointer-events:auto;
}

.mobile-nav-panel {
	width:100%;
	max-height:88vh;
	background-color:var(--ground);
	border-top:2px solid var(--accent);
	display:flex;
	flex-direction:column;
	overflow-y:auto;
	-webkit-overflow-scrolling:touch;
	transform:translateY(100%);
	transition:transform var(--dur-med) var(--ease-out);
	padding-bottom:calc(var(--dock-height) + env(safe-area-inset-bottom, 0));
}

.mobile-nav-drawer.is-open .mobile-nav-panel,
.mobile-nav-drawer[aria-hidden="false"] .mobile-nav-panel { transform:translateY(0); }

.mobile-nav-header {
	display:flex;
	align-items:center;
	justify-content:space-between;
	padding:var(--space-4) var(--space-5);
	border-bottom:1px solid var(--line);
}

.mobile-nav-title {
	font-family:var(--hole-651);
	font-size:var(--text-sm);
	font-weight:700;
	letter-spacing:var(--tracking-wider);
	text-transform:uppercase;
	color:var(--ink);
}

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

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

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

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

.mobile-nav-body { padding:var(--space-4) var(--space-5); }

.mobile-nav-group { margin-bottom:var(--space-6); }

.mobile-nav-heading {
	font-family:var(--hole-a12);
	font-size:var(--text-xs);
	color:var(--ink-soft);
	text-transform:uppercase;
	letter-spacing:var(--tracking-wider);
	padding-bottom:var(--space-2);
	border-bottom:1px solid var(--surface-2);
	margin-bottom:var(--space-3);
}

.mobile-nav-sublist {
	list-style:none;
	padding:0;
	margin:0;
}

.mobile-nav-subitem + .mobile-nav-subitem { border-top:1px solid var(--surface); }

.mobile-nav-sublink {
	display:flex;
	align-items:center;
	justify-content:space-between;

	padding:var(--space-3) 0;
	font-family:var(--hole-651);
	font-size:var(--text-md);
	font-weight:700;
	color:var(--ink);
	text-decoration:none;
	min-height:44px;
}

.mobile-nav-sublink:hover { color:var(--accent); }

.mobile-nav-sublink:active { color:var(--ink); }

.mobile-nav-sublink[aria-current="page"] { color:var(--accent); }

.mobile-nav-footer {
	padding:var(--space-4) var(--space-5);
	background-color:var(--surface);
	border-top:1px solid var(--line);
	font-size:var(--text-xs);
	color:var(--ink-soft);
	display:flex;
	flex-direction:column;
	gap:var(--space-2);
}

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

.btn {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:var(--space-2);
	padding:var(--space-3) var(--space-6);
	min-height:var(--control-h);
	height:var(--control-h);
	border-radius:var(--radius);
	font-family:var(--hole-651);
	font-size:var(--text-sm);
	font-weight:700;
	letter-spacing:var(--tracking-wider);
	text-transform:uppercase;
	text-decoration:none;
	cursor:pointer;
	border:1px solid transparent;
	white-space:nowrap;
	transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}

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

.btn-primary {
	background-color:var(--accent);
	color:#FFF !important;
	border-color:var(--accent);
}

a.btn-primary { color:#FFF !important; }

.btn-primary:hover,
a.btn-primary:hover {
	background-color:#093C43;
	border-color:#093C43;
	color:#FFF !important;
}

.btn-primary:active,
a.btn-primary:active {
	background-color:#05262B;
	border-color:#05262B;
	color:#FFF !important;
}

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

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

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

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

.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);
	border-color:var(--ink);
}

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

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

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

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

.btn-ghost:active { background-color:var(--surface-2); }

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

.btn-sm {
	padding:var(--space-2) var(--space-4);
	font-size:var(--text-xs);
	min-height:var(--control-h-sm);
	height:var(--control-h-sm);
}

.btn-lg {
	padding:var(--space-4) var(--space-8);
	font-size:var(--text-base);
	min-height:var(--control-h-lg);
	height:var(--control-h-lg);
}

.btn-full { width:100%; }

.tag,
.badge,
.chip {
	display:inline-flex;
	align-items:center;
	gap:var(--space-2);
	padding:var(--space-1) var(--space-3);
	font-family:var(--hole-a12);
	font-size:var(--text-xs);
	font-weight:500;
	line-height:1.4;
	border:1px solid var(--line);
	background-color:var(--surface);
	color:var(--ink-soft);
	white-space:nowrap;
}

.tag-accent {
	background-color:#E2F2F4;
	color:var(--accent);
	border-color:var(--accent);
}

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

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

div.flow a.btn-primary,
.flow a.btn-primary { color:#FFF !important; }

div.flow a.btn-secondary,
.flow a.btn-secondary { color:var(--ink) !important; }

.plate-section > :first-child { margin-top:0; }

.plate-section > :last-child { margin-bottom:0; }

.plate-figure {
	width:100%;
	margin:0;
	display:flex;
	flex-direction:column;
}

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

.plate-image-frame picture {
	width:100%;
	height:100%;
	display:flex;
}

.plate-image-frame img {
	width:100%;
	height:100%;
	display:block;
	object-fit:cover;
}

.plate-caption {
	margin-top:var(--space-6);
	max-width:var(--measure-narrow);
}

.plate-caption-lead {
	display:block;
	font-family:var(--hole-651);
	font-size:var(--text-lg);
	font-weight:700;
	line-height:var(--leading-tight);
	color:var(--ink);
	margin-bottom:var(--space-2);
}

.plate-caption-text {
	font-size:var(--text-base);
	line-height:var(--leading-relaxed);
	color:var(--ink-soft);
	margin:0;
}

.card {
	background-color:var(--surface);
	border:1px solid var(--line);
	display:flex;
	flex-direction:column;
	height:100%;
	transition:border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);
}

.card:hover { border-color:var(--ink); }

.card-body {
	padding:var(--space-6);
	display:flex;
	flex-direction:column;
	flex-grow:1;
}

.card-header {
	padding:var(--space-6) var(--space-6) var(--space-3);
	border-bottom:1px solid var(--line);
}

.card-footer {
	padding:var(--space-4) var(--space-6);
	border-top:1px solid var(--line);
	background-color:var(--ground);
	margin-top:auto;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:var(--space-3);
}

.card-title {
	font-size:var(--text-xl);
	font-weight:700;
	margin-bottom:var(--space-3);
}

.card-price {
	font-family:var(--hole-a12);
	font-size:var(--text-lg);
	font-weight:700;
	color:var(--accent);
	margin-bottom:var(--space-4);
	display:flex;
	align-items:baseline;
	gap:var(--space-2);
}

.card-price-unit {
	font-size:var(--text-xs);
	color:var(--ink-soft);
	font-weight:400;
}

.card-text {
	color:var(--ink-soft);
	font-size:var(--text-sm);
	line-height:var(--leading-relaxed);
	margin-bottom:var(--space-4);
}

.card-features {
	list-style:none;
	padding:0;
	margin:var(--space-4) 0;
	display:flex;
	flex-direction:column;
	gap:var(--space-2);
}

.card-feature-item {
	display:flex;
	align-items:flex-start;
	gap:var(--space-3);
	font-size:var(--text-sm);
	color:var(--ink);
}

.card-feature-item .icon {
	color:var(--accent);
	margin-top:0.2em;
}

.filter-bar {
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:var(--space-2);
	margin-bottom:var(--space-8);
	border-bottom:1px solid var(--line);
	padding-bottom:var(--space-4);
}

.filter-btn {
	appearance:none;
	background:var(--surface);
	border:1px solid var(--line);
	border-radius:var(--radius);
	color:var(--ink);
	font-family:var(--hole-651);
	font-size:var(--text-xs);
	font-weight:700;
	letter-spacing:var(--tracking-wider);
	text-transform:uppercase;
	padding:var(--space-2) var(--space-4);
	min-height:var(--control-h);
	height:var(--control-h);
	cursor:pointer;
	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-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}

.filter-btn:hover {
	background-color:var(--surface-2);
	border-color:var(--ink);
	transform:translateY(-1px);
	box-shadow:0 2px 4px rgba(0, 0, 0, 0.08);
}

.filter-btn:active {
	background-color:var(--line);
	transform:translateY(0);
	box-shadow:none;
}

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

.filter-btn[aria-pressed='true'],
.filter-btn.is-active {
	background-color:var(--ink);
	color:var(--ground);
	border-color:var(--ink);
}

.filter-btn[aria-pressed='true']:hover,
.filter-btn.is-active:hover {
	background-color:#383B3D;
	color:#FFF;
}

.duotone-break {
	position:relative;
	width:100%;
	padding-block:80px;
	display:flex;
	align-items:center;
	justify-content:center;
	overflow:hidden;
	background-color:var(--ink);
	color:#FFF;
	border-block:1px solid var(--line);
}

@media (max-width: 639px) {
	.duotone-break { padding-block:48px; }
}

.duotone-image {
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	aspect-ratio:3 / 2;
	object-fit:cover;
	mix-blend-mode:luminosity;
	opacity:0.35;
}

.duotone-overlay {
	position:absolute;
	inset:0;
	background:linear-gradient(135deg, rgba(25, 128, 142, 0.72) 0%, rgba(39, 41, 43, 0.88) 100%);
}

.duotone-content {
	position:relative;
	z-index:2;
	padding:var(--space-6) var(--space-4);
	max-width:var(--container-narrow);
	text-align:left;
}

@media (min-width: 640px) {
	.duotone-content { padding:var(--space-12) var(--space-6); }
}

.duotone-content h2 {
	color:#FFF;
	font-size:var(--text-3xl);
	margin-bottom:var(--space-4);
}

.duotone-content p {
	color:#E0E7EB;
	font-size:var(--text-md);
	line-height:var(--leading-relaxed);
	max-width:var(--measure-prose);
	margin-bottom:var(--space-6);
}

.form-group {
	display:flex;
	flex-direction:column;
	gap:var(--space-2);
	margin-bottom:var(--space-5);
}

.form-label {
	font-family:var(--hole-651);
	font-size:var(--text-sm);
	font-weight:700;
	letter-spacing:var(--tracking-wider);
	text-transform:uppercase;
	color:var(--ink);
	display:flex;
	align-items:center;
	justify-content:space-between;
}

.form-optional {
	font-family:var(--hole-a12);
	font-size:var(--text-xs);
	font-weight:400;
	color:var(--ink-soft);
	text-transform:none;
}

.form-input,
.form-select,
.form-textarea {
	width:100%;
	background-color:#FFF;
	border:1px solid var(--line);
	color:var(--ink);
	font-size:var(--text-base);
	padding:var(--space-3) var(--space-4);
	min-height:48px;
	line-height:var(--leading-normal);
	transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}

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

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

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

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

.form-hint {
	font-size:var(--text-xs);
	color:var(--ink-soft);
	line-height:var(--leading-snug);
}

.form-error {
	font-size:var(--text-xs);
	color:#A32828;
	font-weight:600;
	display:none;
}

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

.form-checkbox-label {
	display:grid;
	grid-template-columns:24px 1fr;
	gap:var(--space-3);
	align-items:flex-start;
	font-size:var(--text-sm);
	color:var(--ink);
	cursor:pointer;
	margin-block:var(--space-4);
}

.form-checkbox {
	width:20px;
	height:20px;
	margin-top:2px;
	border:1px solid var(--line);
	accent-color:var(--accent);
	cursor:pointer;
}

.form-hp {
	position:absolute;
	width:1px;
	height:1px;
	padding:0;
	margin:-1px;
	overflow:hidden;
	clip:rect(0, 0, 0, 0);
	border:0;
}

.site-footer {
	width:100%;
	background-color:var(--surface);
	border-top:2px solid var(--ink);
	padding-top:80px;
	padding-bottom:48px;
	margin-top:0;
}

.site-footer-grid {
	display:grid;
	grid-template-columns:1fr;
	gap:var(--space-10);
	padding-bottom:var(--space-12);
	border-bottom:1px solid var(--line);
}

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

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

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

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

.footer-col-heading {
	font-family:var(--hole-651);
	font-size:var(--text-xs);
	font-weight:700;
	letter-spacing:var(--tracking-wider);
	text-transform:uppercase;
	color:var(--ink);
	margin-bottom:var(--space-4);
}

.footer-nav-list {
	list-style:none;
	padding:0;
	margin:0;
	display:flex;
	flex-direction:column;
	gap:var(--space-2);
}

.footer-nav-link {
	font-size:var(--text-sm);
	color:var(--ink-soft);
	text-decoration:none;
	display:inline-block;
	padding-block:2px;
	transition:color var(--dur-fast) var(--ease-out);
}

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

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

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

.footer-meta-block {
	font-size:var(--text-xs);
	color:var(--ink-soft);
	line-height:var(--leading-normal);
	display:flex;
	flex-direction:column;
	gap:var(--space-2);
}

.footer-meta-block strong {
	color:var(--ink);
	font-family:var(--hole-a12);
}

.footer-legal-bar {
	display:flex;
	flex-direction:column;
	gap:var(--space-4);
	padding-top:var(--space-8);
	font-size:var(--text-xs);
	color:var(--ink-soft);
}

@media (min-width: 840px) {
	.footer-legal-bar {
		flex-direction:row;
		justify-content:space-between;
		align-items:center;
	}
}

.footer-legal-links {
	display:flex;
	flex-wrap:wrap;
	gap:var(--space-4);
	list-style:none;
	padding:0;
	margin:0;
}

.footer-legal-link {
	color:var(--ink-soft);
	text-decoration:underline;
	text-decoration-thickness:1px;
	display:inline-flex;
	align-items:center;
	min-height:44px;
}

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

.footer-consent-btn {
	background:none;
	border:0;
	color:var(--ink-soft);
	text-decoration:underline;
	text-decoration-thickness:1px;
	font:inherit;
	font-size:var(--text-xs);
	cursor:pointer;
	padding:0;
	display:inline-flex;
	align-items:center;
	min-height:44px;
}

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

.back-to-top {
	display:inline-flex;
	align-items:center;
	gap:var(--space-2);
	color:var(--ink-soft);
	font-family:var(--hole-a12);
	font-size:var(--text-xs);
	text-decoration:none;
	text-transform:uppercase;
	letter-spacing:var(--tracking-wider);
}

.back-to-top:hover { color:var(--accent); }

.cookie-banner {
	position:fixed;
	left:0;
	right:0;
	bottom:var(--dock-height);
	z-index:950;
	max-height:25vh;
	background-color:var(--ground);
	border-top:2px solid var(--accent);
	border-bottom:1px solid var(--line);
	padding:var(--space-2) var(--space-4);
	box-shadow:0 -4px 16px rgba(0, 0, 0, 0.08);
	transition:transform var(--dur-med) var(--ease-out);
}

@media (min-width: 1080px) {
	.cookie-banner {
		bottom:0;
		padding:var(--space-4) var(--space-6);
	}
}

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

.cookie-banner-inner {
	display:flex;
	flex-direction:column;
	gap:var(--space-3);
	max-width:var(--container-max);
	margin-inline:auto;
}

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

.cookie-banner-text {
	font-size:var(--text-xs);
	line-height:var(--leading-snug);
	color:var(--ink);
	max-width:70ch;
	margin:0;
}

.cookie-banner-actions {
	display:flex;
	align-items:center;
	gap:var(--space-2);
	flex-shrink:0;
}

.cookie-banner-actions .btn {
	padding:var(--space-2) var(--space-4);
	font-size:var(--text-xs);
	min-height:44px;
	transition:transform var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}

.cookie-banner-actions .btn:hover {
	transform:translateY(-1px);
	box-shadow:0 2px 6px rgba(0, 0, 0, 0.12);
}

.cookie-banner-actions .btn:active {
	transform:translateY(0);
	box-shadow:none;
}

.chat-launcher {
	position:fixed;
	right:var(--space-4);
	bottom:calc(var(--dock-height) + var(--space-4));
	z-index:850;
	width:52px;
	height:52px;
	background-color:var(--ink);
	color:var(--ground);
	border:1px solid var(--line);
	display:inline-flex;
	align-items:center;
	justify-content:center;
	cursor:pointer;
	box-shadow:0 4px 14px rgba(0, 0, 0, 0.16);
	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-fast) var(--ease-out);
}

@media (min-width: 1080px) {
	.chat-launcher {
		bottom:var(--space-6);
		right:var(--space-6);
		width:auto;
		height:48px;
		padding-inline:var(--space-4);
		gap:var(--space-2);
	}
}

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

.chat-launcher:active {
	background-color:#146B77;
	transform:translateY(0);
}

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

.chat-launcher-label {
	display:none;
	font-family:var(--hole-651);
	font-size:var(--text-xs);
	font-weight:700;
	letter-spacing:var(--tracking-wider);
	text-transform:uppercase;
}

@media (min-width: 1080px) {
	.chat-launcher-label { display:inline; }
}

.chat-badge {
	position:absolute;
	top:-4px;
	right:-4px;
	min-width:20px;
	height:20px;
	padding-inline:4px;
	background-color:var(--accent);
	color:var(--accent-ink);
	font-family:var(--hole-a12);
	font-size:11px;
	font-weight:700;
	display:flex;
	align-items:center;
	justify-content:center;
	border:1px solid #FFF;
}

.chat-badge[hidden] { display:none; }

.chat-panel {
	position:fixed;
	right:var(--space-4);
	bottom:calc(var(--dock-height) + var(--space-4));
	z-index:1050;
	width:calc(100vw - 2 * var(--space-4));
	max-width:380px;
	height:520px;
	max-height:80vh;
	background-color:var(--ground);
	border:2px solid var(--ink);
	box-shadow:0 8px 28px rgba(0, 0, 0, 0.2);
	display:flex;
	flex-direction:column;
}

@media (min-width: 1080px) {
	.chat-panel {
		bottom:var(--space-6);
		right:var(--space-6);
	}
}

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

.chat-header {
	padding:var(--space-3) var(--space-4);
	background-color:var(--ink);
	color:var(--ground);
	display:flex;
	align-items:center;
	justify-content:space-between;
}

.chat-header-info {
	display:flex;
	flex-direction:column;
	line-height:var(--leading-tight);
}

.chat-title {
	font-family:var(--hole-651);
	font-size:var(--text-sm);
	font-weight:700;
	color:#FFF;
}

.chat-subtitle {
	font-family:var(--hole-a12);
	font-size:11px;
	color:var(--surface-2);
}

.chat-close-btn {
	background:transparent;
	border:1px solid var(--surface-2);
	color:#FFF;
	width:32px;
	height:32px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	cursor:pointer;
	transition:background-color var(--dur-fast) var(--ease-out);
}

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

.chat-close-btn:active { background-color:#146B77; }

.chat-close-btn:focus-visible {
	outline:2px solid #FFF;
	outline-offset:2px;
}

.chat-messages {
	flex-grow:1;
	padding:var(--space-4);
	overflow-y:auto;
	display:flex;
	flex-direction:column;
	gap:var(--space-3);
	background-color:#F7FAFC;
}

.chat-msg {
	max-width:85%;
	padding:var(--space-3) var(--space-4);
	font-size:var(--text-xs);
	line-height:var(--leading-snug);
	display:flex;
	flex-direction:column;
	gap:var(--space-1);
}

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

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

.chat-msg-time {
	font-family:var(--hole-a12);
	font-size:10px;
	opacity:0.75;
}

.chat-intake {
	padding:var(--space-4);
	background-color:var(--ground);
	border-top:1px solid var(--line);
	display:flex;
	flex-direction:column;
	gap:var(--space-3);
}

.chat-intake-title {
	font-size:var(--text-xs);
	font-weight:700;
	color:var(--ink);
}

.chat-input-row {
	display:flex;
	border-top:1px solid var(--line);
	background-color:#FFF;
}

.chat-input-field {
	flex-grow:1;
	border:0;
	padding:var(--space-3) var(--space-4);
	font-size:var(--text-xs);
	color:var(--ink);
	min-height:48px;
	background:transparent;
}

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

.chat-send-btn {
	background-color:var(--ink);
	color:var(--ground);
	border:0;
	padding:var(--space-3) var(--space-4);
	font-family:var(--hole-651);
	font-size:var(--text-xs);
	font-weight:700;
	text-transform:uppercase;
	cursor:pointer;
	display:inline-flex;
	align-items:center;
	gap:var(--space-1);
	transition:background-color var(--dur-fast) var(--ease-out);
}

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

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

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

.tool-card {
	background-color:var(--surface);
	border:1px solid var(--line);
	padding:var(--space-6);
	display:flex;
	flex-direction:column;
	gap:var(--space-6);
}

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

@media (min-width: 960px) {
	.tool-grid { grid-template-columns:1.4fr 1fr; }
}

.tool-output-panel {
	background-color:var(--ground);
	border:2px solid var(--ink);
	padding:var(--space-6);
	display:flex;
	flex-direction:column;
	gap:var(--space-4);
}

.tool-output-figure {
	font-family:var(--hole-a12);
	font-size:var(--text-3xl);
	font-weight:700;
	color:var(--accent);
	line-height:1;
}

.tool-output-note {
	font-size:var(--text-sm);
	color:var(--ink-soft);
	border-top:1px solid var(--line);
	padding-top:var(--space-3);
}

.tool-range-slider {
	width:100%;
	accent-color:var(--accent);
	cursor:pointer;
}

.tool-choices {
	display:grid;
	grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
	gap:var(--space-3);
}

.tool-choice-label {
	display:flex;
	flex-direction:column;
	padding:var(--space-3) var(--space-4);
	background-color:#FFF;
	border:1px solid var(--line);
	cursor:pointer;
	transition:border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);
}

.tool-choice-label:hover { border-color:var(--ink); }

.tool-choice-label:has(input:checked) {
	border-color:var(--accent);
	background-color:#EBF4F6;
}

.tool-choice-title {
	font-family:var(--hole-651);
	font-size:var(--text-xs);
	font-weight:700;
	text-transform:uppercase;
	color:var(--ink);
}

.tool-choice-desc {
	font-size:var(--text-xs);
	color:var(--ink-soft);
	margin-top:var(--space-1);
}
