.frame-container {
	width:100%;
	max-width:var(--frame-max-width);
	margin-inline:auto;
	border-inline:1px solid var(--line);
	background-color:var(--ground);
	display:flex;
	flex-direction:column;
	min-height:100vh;
	min-height:100dvh;
	box-shadow:var(--shadow-frame);
}

@media (max-width: 1280px) {
	.frame-container {
		border-inline:none;
	}
}

.top-strip {
	background-color:var(--surface);
	border-bottom:1px solid var(--line);
	padding:var(--space-1) var(--space-4);
	font-family:var(--hutu-558);
	font-size:var(--fs-caption);
	color:var(--ink-soft);
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:var(--space-3);
	min-height:var(--top-strip-height);
	overflow-x:auto;
	white-space:nowrap;
}

.top-strip-meta {
	display:inline-flex;
	align-items:center;
	gap:var(--space-2);
}

.top-strip-meta .icon {
	width:0.85rem;
	height:0.85rem;
	color:var(--accent);
}

.top-strip-notice {
	font-weight:500;
	color:var(--ink);
}

.top-strip-link {
	color:var(--ink);
	text-decoration:none;
	display:inline-flex;
	align-items:center;
	gap:var(--space-1);
	min-height:28px;
	padding-block:var(--space-1);
}

.top-strip-link:hover {
	color:var(--accent);
	text-decoration:underline;
}

.site-header {
	position:static;
	background-color:var(--ground);
	border-bottom:1px solid var(--line);

	padding:var(--space-3) var(--space-6);
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:var(--space-4);
	min-height:64px;
}

@media (max-width: 640px) {
	.site-header {
		padding-inline:var(--space-4);
		padding-block:var(--space-2);
	}
}

.brand-link {
	display:inline-flex;
	align-items:center;
	text-decoration:none;
	border-radius:var(--radius-subtle);
	transition:opacity var(--dur-fast) var(--ease-in-out-subtle);
	max-width:42vw;
	flex-shrink:0;
}

.brand-link:hover {
	opacity:0.88;
}

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

.brand-logo {
	height:2.15rem;
	width:auto;
	aspect-ratio:10.605 / 1;
	display:block;
	view-transition-name:brand-mark;
}

@media (max-width: 640px) {
	.brand-logo {
		height:1.65rem;
	}
}

.desk-nav {
	display:none;
}

@media (min-width: 960px) {
	.desk-nav {
		display:flex;
		align-items:center;
		gap:var(--space-1);
	}
}

.desk-nav-list {
	display:flex;
	align-items:center;
	list-style:none;
	gap:var(--space-1);
	padding:0;
	margin:0;
}

.desk-nav-link {
	display:inline-flex;
	align-items:center;
	padding:var(--space-2) var(--space-3);
	font-family:var(--hutu-df5);
	font-size:var(--fs-body-sm);
	font-weight:500;
	color:var(--ink);
	text-decoration:none;
	border-radius:var(--radius-subtle);
	transition:background-color var(--dur-fast) var(--ease-in-out-subtle), color var(--dur-fast) var(--ease-in-out-subtle);
	min-height:40px;
}

.desk-nav-link:hover {
	background-color:var(--surface);
	color:var(--accent);
	text-decoration:none;
}

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

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

.desk-nav-link[aria-current='page'] {
	color:var(--accent);
	font-weight:600;
	box-shadow:inset 0 -2px 0 var(--accent);
}

.desk-nav-cta {
	margin-left:var(--space-2);
}

.btn {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:var(--space-2);
	padding:var(--space-2) var(--space-4);
	font-family:var(--hutu-df5);
	font-size:var(--fs-body-sm);
	font-weight:600;
	line-height:1.2;
	text-decoration:none;
	text-align:center;
	cursor:pointer;
	border-radius:var(--radius-subtle);
	min-height:44px;
	height:44px;
	min-width:44px;
	box-shadow:var(--shadow-subtle);
	transition:background-color var(--dur-fast) var(--ease-in-out-subtle),
							border-color var(--dur-fast) var(--ease-in-out-subtle),
							color var(--dur-fast) var(--ease-in-out-subtle),
							box-shadow var(--dur-fast) var(--ease-in-out-subtle),
							transform var(--dur-fast) var(--ease-in-out-subtle);
}

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

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

html body .frame-container a.btn.btn-primary,
.btn-primary {
	background-color:var(--accent);
	color:var(--accent-ink) !important;
	border:1px solid var(--accent);
}

.btn-primary:hover {
	background-color:#146B77;
	border-color:#146B77;
	color:var(--accent-ink);
	text-decoration:none;
}

.btn-primary:active {
	background-color:#0F5761;
	border-color:#0F5761;
}

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

.btn-secondary:hover {
	background-color:var(--surface-2);
	color:var(--accent);
	border-color:var(--accent);
	text-decoration:none;
}

.btn-secondary:active {

	background-color:var(--ground);
}

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

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

.btn-ghost:active {

	background-color:var(--surface-2);
}

.btn-sm {
	min-height:44px;
	height:44px;
	padding:var(--space-2) var(--space-4);
	font-size:var(--fs-body-sm);
}

.btn-lg {
	min-height:44px;
	height:44px;
	padding:var(--space-2) var(--space-6);
	font-size:var(--fs-body-sm);
}

.btn-block {
	width:100%;
}

.dock-nav {
	position:fixed;
	inset:auto 0 0 0;
	height:var(--dock-height);
	background-color:var(--surface);
	border-top:1px solid var(--line);
	box-shadow:var(--shadow-dock);
	z-index:80;
	display:flex;
	align-items:stretch;
	padding-bottom:env(safe-area-inset-bottom, 0px);
}

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

.dock-item {
	flex:1 1 0;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:2px;
	padding:var(--space-1);
	color:var(--ink-soft);
	text-decoration:none;
	background:none;
	border:none;
	appearance:none;
	cursor:pointer;
	min-height:44px;
	min-width:44px;
	transition:color var(--dur-fast) var(--ease-in-out-subtle), background-color var(--dur-fast) var(--ease-in-out-subtle);
}

.dock-item:hover {
	color:var(--ink);
	background-color:rgba(204, 211, 215, 0.4);
	text-decoration:none;
}

.dock-item:active {
	background-color:var(--surface-2);
}

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

.dock-item[aria-current='page'] {
	color:var(--accent);
	font-weight:600;
}

.dock-item[aria-current='page'] .dock-icon {
	transform:translateY(-1px);
}

.dock-icon {
	width:1.35rem;
	height:1.35rem;
	transition:transform var(--dur-fast) var(--ease-in-out-subtle);
}

.dock-label {
	font-family:var(--hutu-df5);
	font-size:var(--fs-micro);
	line-height:1.1;
	white-space:nowrap;
	letter-spacing:0.01em;
}

.menu-drawer {
	position:fixed;
	inset:0;
	z-index:95;
	display:flex;
	justify-content:flex-end;
	visibility:hidden;
	pointer-events:none;
	transition:visibility var(--dur-normal);
}

.menu-drawer[data-open='true'] {
	visibility:visible;
	pointer-events:auto;
}

.drawer-backdrop {
	position:absolute;
	inset:0;
	background-color:rgba(39, 41, 43, 0.45);
	backdrop-filter:blur(2px);
	-webkit-backdrop-filter:blur(2px);
	opacity:0;
	transition:opacity var(--dur-normal) var(--ease-out-editorial);
}

.menu-drawer[data-open='true'] .drawer-backdrop {
	opacity:1;
}

.drawer-panel {
	position:relative;
	width:100%;
	max-width:380px;
	height:100%;
	background-color:var(--ground);
	border-left:1px solid var(--line);
	box-shadow:var(--shadow-drawer);
	display:flex;
	flex-direction:column;
	transform:translateX(100%);
	transition:transform var(--dur-settle) var(--ease-out-editorial);
	overflow-y:auto;
	padding:var(--space-6) var(--space-6) calc(var(--space-8) + env(safe-area-inset-bottom, 0px));
}

.menu-drawer[data-open='true'] .drawer-panel {
	transform:translateX(0);
}

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

.drawer-title {
	font-family:var(--hutu-11c);
	font-size:var(--fs-h3);
	color:var(--ink);
	margin:0;
}

.drawer-close {
	appearance:none;
	background:none;
	border:1px solid var(--line);
	border-radius:var(--radius-subtle);
	padding:var(--space-2);
	cursor:pointer;
	color:var(--ink);
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:44px;
	min-width:44px;
	transition:background-color var(--dur-fast), border-color var(--dur-fast), color var(--dur-fast);
}

.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;
}

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

.drawer-nav-link {
	display:flex;
	align-items:center;
	justify-content:space-between;
	padding:var(--space-3) var(--space-2);
	font-family:var(--hutu-11c);
	font-size:var(--fs-h3);
	color:var(--ink);
	text-decoration:none;
	border-bottom:1px solid var(--surface-2);
	transition:color var(--dur-fast), padding-left var(--dur-fast);
	min-height:44px;
}

.drawer-nav-link:hover {
	color:var(--accent);
	padding-left:var(--space-2);
	text-decoration:none;
}

.drawer-nav-link:active {
	color:#146B77;
}

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

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

.drawer-meta-section {
	margin-top:auto;
	padding-top:var(--space-6);
	border-top:1px solid var(--line);
	font-family:var(--hutu-df5);
	font-size:var(--fs-body-sm);
	color:var(--ink-soft);
	display:flex;
	flex-direction:column;
	gap:var(--space-2);
}

.drawer-meta-item {
	display:flex;
	align-items:center;
	gap:var(--space-2);
}

.drawer-meta-item .icon {
	color:var(--accent);
}

.inpage-tabs {
	border-bottom:1px solid var(--line);
	background-color:var(--surface);
	position:relative;
	overflow-x:auto;
	-webkit-overflow-scrolling:touch;
}

.tab-list {
	display:flex;
	list-style:none;
	padding:0 var(--space-6);
	margin:0;
	gap:var(--space-2);
	min-width:max-content;
}

@media (max-width: 640px) {
	.tab-list {
		padding-inline:var(--space-4);
	}
}

.tab-btn {
	appearance:none;
	background:transparent;
	border:none;
	border-bottom:2px solid transparent;
	padding:var(--space-3) var(--space-4);
	font-family:var(--hutu-11c);
	font-size:var(--fs-body-lg);
	color:var(--ink-soft);
	cursor:pointer;
	white-space:nowrap;
	display:inline-flex;
	align-items:center;
	gap:var(--space-2);
	min-height:48px;
	transition:color var(--dur-fast), border-color var(--dur-fast), background-color var(--dur-fast);
}

.tab-btn:hover {
	color:var(--ink);
	background-color:rgba(204, 211, 215, 0.3);
}

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

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

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

.tab-panel {
	display:none;
	padding:var(--space-12) var(--space-6);
}

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

@media (max-width: 640px) {
	.tab-panel {
		padding:var(--space-8) var(--space-4);
	}
}

.rate-table-wrap {
	width:100%;
	overflow-x:auto;
	border:1px solid var(--line);
	background-color:var(--ground);
	margin-block:var(--space-6);
}

.rate-table {
	width:100%;
	border-collapse:collapse;
	font-size:var(--fs-body);
}

.rate-table th {
	background-color:var(--surface);
	font-family:var(--hutu-558);
	font-size:var(--fs-caption);
	font-weight:500;
	letter-spacing:var(--track-mono);
	color:var(--ink);
	padding:var(--space-3) var(--space-4);
	border-bottom:1px solid var(--line);
	white-space:nowrap;
}

.rate-table td {
	padding:var(--space-4);
	border-bottom:1px solid var(--line);
	vertical-align:top;
}

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

.rate-table tbody tr:hover td {
	background-color:rgba(222, 229, 233, 0.4);
}

.rate-price {
	font-family:var(--hutu-558);
	font-size:var(--fs-body-lg);
	font-weight:500;
	color:var(--ink);
	white-space:nowrap;
}

.rate-unit {
	font-size:var(--fs-caption);
	color:var(--ink-soft);
	display:block;
	font-family:var(--hutu-df5);
}

.rate-specs {
	font-size:var(--fs-body-sm);
	color:var(--ink-soft);
	margin-top:var(--space-1);
}

.badge {
	display:inline-flex;
	align-items:center;
	gap:var(--space-1);
	padding:0.15rem 0.5rem;
	font-family:var(--hutu-558);
	font-size:var(--fs-caption);
	font-weight:500;
	letter-spacing:var(--track-mono);
	background-color:var(--surface-2);
	color:var(--ink);
	border:1px solid var(--line);
	border-radius:var(--radius-subtle);
	line-height:1.3;
}

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

.duotone-caesura {
	position:relative;
	width:100%;
	aspect-ratio:16 / 9;
	overflow:hidden;
	background-color:#146B77;
	display:flex;
	align-items:center;
	justify-content:center;
	padding:var(--space-12) var(--space-6);
	border-block:1px solid var(--line);
}

@media (min-width: 960px) {
	.duotone-caesura {
		padding:var(--space-16) var(--space-6);
	}
}

.duotone-bg {
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	object-fit:cover;
	filter:grayscale(100%) contrast(120%);
	mix-blend-mode:multiply;
	opacity:0.65;
}

.duotone-overlay {
	position:absolute;
	inset:0;
	background-color:rgba(25, 128, 142, 0.88);
	mix-blend-mode:hard-light;
}

.duotone-content {
	position:relative;
	z-index:2;
	max-width:var(--content-measure);
	color:#FFFFFF;
	text-align:center;
}

.duotone-heading {
	font-family:var(--hutu-11c);
	font-size:var(--fs-h2);
	color:#FFFFFF;
	margin-bottom:var(--space-4);
	line-height:var(--lh-snug);
}

.duotone-text {
	font-family:var(--hutu-df5);
	font-size:var(--fs-body-lg);
	color:#E2ECEF;
	margin-inline:auto;
	max-width:var(--narrow-measure);
}

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

.form-label {
	font-family:var(--hutu-df5);
	font-size:var(--fs-body-sm);
	font-weight:600;
	color:var(--ink);
	display:flex;
	align-items:center;
	justify-content:space-between;
}

.form-label-hint {
	font-family:var(--hutu-558);
	font-size:var(--fs-caption);
	font-weight:400;
	color:var(--ink-soft);
}

.form-input,
.form-select {
	width:100%;
	padding:0 var(--space-4);
	font-family:var(--hutu-df5);
	font-size:var(--fs-body);
	color:var(--ink);
	background-color:var(--ground);
	border:1px solid var(--line);
	border-radius:var(--radius-subtle);
	transition:border-color var(--dur-fast), background-color var(--dur-fast), box-shadow var(--dur-fast);
	min-height:44px;
	height:44px;
	line-height:42px;
	box-sizing:border-box;
}

.form-textarea {
	width:100%;
	padding:var(--space-3) var(--space-4);
	font-family:var(--hutu-df5);
	font-size:var(--fs-body);
	color:var(--ink);
	background-color:var(--ground);
	border:1px solid var(--line);
	border-radius:var(--radius-subtle);
	transition:border-color var(--dur-fast), background-color var(--dur-fast), box-shadow var(--dur-fast);
	box-sizing:border-box;
	min-height:110px;
	resize:vertical;
}

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

.form-input:focus,
.form-select:focus,
.form-textarea:focus {
	outline:none;
	border-color:var(--accent);
	box-shadow:0 0 0 3px rgba(25, 128, 142, 0.15);
	background-color:#FFFFFF;
}

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

.form-input[aria-invalid='true']:focus,
.form-select[aria-invalid='true']:focus,
.form-textarea[aria-invalid='true']:focus {
	box-shadow:0 0 0 3px rgba(179, 38, 30, 0.15);
}

.form-error {
	font-family:var(--hutu-558);
	font-size:var(--fs-caption);
	color:#B3261E;
	display:none;
	margin-top:var(--space-1);
}

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

.form-checkbox-label {
	display:flex;
	align-items:flex-start;
	gap:var(--space-3);
	font-size:var(--fs-body-sm);
	color:var(--ink);
	cursor:pointer;
	user-select:none;
	min-height:44px;
	padding-block:var(--space-1);
}

.form-checkbox {
	appearance:none;
	width:1.25rem;
	height:1.25rem;
	border:1px solid var(--line);
	border-radius:var(--radius-subtle);
	background-color:var(--ground);
	cursor:pointer;
	flex-shrink:0;
	margin-top:0.15rem;
	display:grid;
	place-content:center;
	transition:background-color var(--dur-fast), border-color var(--dur-fast);
}

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

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

.form-checkbox:checked::before {
	content:"";
	width:0.65rem;
	height:0.4rem;
	border-left:2px solid #FFFFFF;
	border-bottom:2px solid #FFFFFF;
	transform:rotate(-45deg) translate(1px, -1px);
}

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

.form-status {
	padding:var(--space-4);
	border:1px solid var(--line);
	margin-top:var(--space-4);
	font-family:var(--hutu-558);
	font-size:var(--fs-body-sm);
	display:none;
}

.form-status[data-state="success"] {
	display:block;
	background-color:#E6F4EA;
	border-color:#137333;
	color:#137333;
}

.form-status[data-state='error'] {
	display:block;
	background-color:#FCE8E6;
	border-color:#C5221F;
	color:#C5221F;
}

.cookie-bar {
	position:fixed;
	bottom:0;
	left:0;
	right:0;
	z-index:90;
	background-color:var(--surface);
	border-top:1px solid var(--line);
	box-shadow:0 -4px 20px rgba(39, 41, 43, 0.12);
	padding:var(--space-3) var(--space-4);
	transform:translateY(110%);
	transition:transform var(--dur-normal) var(--ease-out-editorial);
}

.cookie-bar[data-visible='true'] {
	transform:translateY(0);
}

.cookie-bar[data-visible='true'] ~ .chat-launcher {
	display:none;
}

@media (max-width: 959px) {
	.cookie-bar {
		bottom:var(--dock-height);
	}
}

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

.cookie-bar-text {
	font-family:var(--hutu-df5);
	font-size:var(--fs-body-sm);
	color:var(--ink);
	margin:0;
	flex:1 1 300px;
	line-height:var(--lh-snug);
}

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

.chat-launcher {
	position:fixed;
	bottom:calc(var(--dock-height) + var(--space-4));
	right:var(--space-4);
	z-index:85;
	width:52px;
	height:52px;
	border-radius:50%;
	background-color:var(--accent);
	color:var(--accent-ink);
	border:1px solid #146B77;
	box-shadow:0 4px 16px rgba(25, 128, 142, 0.35);
	display:flex;
	align-items:center;
	justify-content:center;
	cursor:pointer;
	transition:background-color var(--dur-fast), transform var(--dur-fast), box-shadow var(--dur-fast);
}

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

.chat-launcher:hover {
	background-color:#146B77;
	transform:scale(1.05);
	box-shadow:0 6px 20px rgba(25, 128, 142, 0.45);
}

.chat-launcher:active {
	transform:scale(0.96);
	background-color:#0F5761;
}

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

.chat-unread {
	position:absolute;
	top:-2px;
	right:-2px;
	background-color:#C5221F;
	color:#FFFFFF;
	font-family:var(--hutu-558);
	font-size:0.65rem;
	font-weight:600;
	width:18px;
	height:18px;
	border-radius:50%;
	display:none;
	place-content:center;
	border:2px solid var(--ground);
}

.chat-unread[data-count]:not([data-count="0"]) {
	display:grid;
}

.chat-panel {
	position:fixed;
	bottom:calc(var(--dock-height) + var(--space-4));
	right:var(--space-4);
	z-index:86;
	width:calc(100vw - 32px);
	max-width:360px;
	height:500px;
	max-height:calc(100vh - 120px);
	background-color:var(--ground);
	border:1px solid var(--line);
	box-shadow:var(--shadow-drawer);
	display:none;
	flex-direction:column;
	overflow:hidden;
}

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

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

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

.chat-panel-title {
	font-family:var(--hutu-11c);
	font-size:var(--fs-h4);
	color:var(--ink);
	margin:0;
	display:flex;
	align-items:center;
	gap:var(--space-2);
}

.chat-panel-close {
	appearance:none;
	background:none;
	border:none;
	color:var(--ink);
	cursor:pointer;
	padding:var(--space-1);
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:36px;
	min-width:36px;
	border-radius:var(--radius-subtle);
	transition:background-color var(--dur-fast), color var(--dur-fast);
}

.chat-panel-close:hover {
	background-color:var(--surface-2);
	color:var(--accent);
}

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

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

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

.chat-msg {
	max-width:82%;
	padding:var(--space-2) var(--space-3);
	font-size:var(--fs-body-sm);
	line-height:var(--lh-snug);
	border-radius:var(--radius-subtle);
	word-break:break-word;
}

.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(--hutu-558);
	font-size:0.65rem;
	color:var(--ink-soft);
	margin-top:2px;
	display:block;
}

.chat-msg-user .chat-msg-time {
	color:rgba(255, 255, 255, 0.8);
}

.chat-panel-footer {
	border-top:1px solid var(--line);
	padding:var(--space-3);
	background-color:var(--surface);
}

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

.chat-input {
	flex:1 1 auto;
	padding:var(--space-2) var(--space-3);
	font-size:var(--fs-body-sm);
	background-color:var(--ground);
	border:1px solid var(--line);
	border-radius:var(--radius-subtle);
	min-height:40px;
}

.chat-input:focus {
	outline:none;
	border-color:var(--accent);
	box-shadow:0 0 0 2px rgba(25, 128, 142, 0.15);
}

.site-footer {
	background-color:var(--surface);
	border-top:1px solid var(--line);
	padding:var(--space-10) var(--space-6) var(--space-8);
	margin-top:auto;
}

@media (max-width: 640px) {
	.site-footer {
		padding-inline:var(--space-4);
		padding-block:var(--space-8) var(--space-6);
	}
}

.footer-top {
	display:grid;
	grid-template-columns:1fr;
	gap:var(--space-8);
	margin-bottom:var(--space-8);
}

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

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

.footer-logo {
	height:2.35rem;
	width:auto;
	aspect-ratio:10.605 / 1;
}

.footer-summary {
	font-size:var(--fs-body-sm);
	color:var(--ink-soft);
	max-width:44ch;
	line-height:var(--lh-snug);
}

.footer-col-title {
	font-family:var(--hutu-11c);
	font-size:var(--fs-h4);
	color:var(--ink);
	margin-bottom:var(--space-3);
}

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

.footer-link {
	font-size:var(--fs-body-sm);
	color:var(--ink);
	text-decoration:none;
	transition:color var(--dur-fast);
	display:inline-flex;
	align-items:center;
	gap:var(--space-1);
	min-height:28px;
	padding-block:2px;
}

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

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

.footer-operator-details {
	border-top:1px solid var(--line);
	padding-top:var(--space-6);
	margin-bottom:var(--space-6);
	display:grid;
	grid-template-columns:1fr;
	gap:var(--space-4);
	font-size:var(--fs-body-sm);
	color:var(--ink-soft);
}

@media (min-width: 768px) {
	.footer-operator-details {
		grid-template-columns:repeat(3, 1fr);
	}
}

.operator-fact {
	display:flex;
	align-items:flex-start;
	gap:var(--space-2);
}

.operator-fact .icon {
	color:var(--accent);
	margin-top:0.15rem;
}

.footer-legal-row {
	border-top:1px solid var(--line);
	padding-top:var(--space-4);
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:var(--space-4);
	flex-wrap:wrap;
	font-family:var(--hutu-558);
	font-size:var(--fs-caption);
	color:var(--ink-soft);
}

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

.footer-legal-links a {
	display:inline-flex;
	align-items:center;
	min-height:44px;
	color:var(--ink-soft);
	text-decoration:none;
}

.footer-legal-links a:hover {
	color:var(--accent);
	text-decoration:underline;
}

.footer-reopen-consent {
	appearance:none;
	background:none;
	border:1px solid var(--line);
	border-radius:var(--radius-subtle);
	padding:var(--space-1) var(--space-2);
	font-family:var(--hutu-558);
	font-size:var(--fs-caption);
	color:var(--ink-soft);
	cursor:pointer;
	transition:color var(--dur-fast), border-color var(--dur-fast), background-color var(--dur-fast);
}

.footer-reopen-consent:hover {
	color:var(--ink);
	border-color:var(--ink);
	background-color:var(--surface-2);
}

.footer-reopen-consent:active {
	background-color:var(--ground);
}

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