/* POWER WASHING PROS - Components Stylesheet */



.site-header {
	position:sticky;

	top:0;
	z-index:1000;
	background-color:var(--ground);
	border-bottom:1px solid var(--border);
	transition:padding var(--duration-normal) var(--ease-swift),
							background-color var(--duration-normal) var(--ease-swift),
							box-shadow var(--duration-normal) var(--ease-swift);
}


.site-header[data-condensed='true'] {
	background-color:rgba(237, 230, 228, 0.94);
	backdrop-filter:blur(8px);
	-webkit-backdrop-filter:blur(8px);
	box-shadow:0 2px 12px rgba(30, 27, 26, 0.05);
}


.masthead-dateline {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:var(--space-s);
	padding-block:0.35rem;
	border-bottom:1px solid var(--border);
	background-color:var(--surface-alt);
	font-family:var(--foho-308);
	font-size:var(--step--2);
	color:var(--ink);
	letter-spacing:0.02em;
	text-transform:uppercase;
}


.masthead-dateline .dateline-item {
	display:inline-flex;
	align-items:center;
	gap:0.4rem;
}


.masthead-dateline .dateline-divider {
	color:var(--border-strong);
	user-select:none;
}


.masthead-main {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:var(--space-xs);
	padding-block:0.85rem;
	transition:padding-block var(--duration-normal) var(--ease-swift);
}


.brand {
	min-width:0;
	flex-shrink:1;
}


.site-header[data-condensed='true'] .masthead-main {
	padding-block:0.45rem;
}


.site-header[data-condensed='true'] .masthead-dateline {
	display:none;
}


.brand {
	display:inline-flex;
	align-items:center;
	text-decoration:none;
	line-height:1;
	padding:0.25rem 0;
	border:1px solid transparent;
}


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


.brand-logo {
	height:2.1rem;
	width:auto;
	object-fit:contain;
	transition:transform var(--duration-fast) var(--ease-out);
}


.brand:hover .brand-logo {
	transform:translateY(-1px);
}


.header-actions {
	display:flex;
	align-items:center;
	gap:var(--space-s);
}


@media (max-width: 480px) {
	.header-phone-link span {
		display:none;
	}
	.header-phone-link {
		padding:0.45rem 0.6rem;
	}
}


.header-phone-link {
	display:inline-flex;
	align-items:center;
	gap:0.45rem;
	font-family:var(--foho-308);
	font-size:var(--step--1);
	font-weight:600;
	color:var(--ink);
	text-decoration:none;
	padding:0.45rem 0.85rem;
	border:1px solid var(--border);
	background-color:var(--surface);
	border-radius:var(--radius-xs);
	min-height:44px;
	white-space:nowrap;
	flex-shrink:0;
	transition:background-color var(--duration-fast) var(--ease-swift),
							border-color var(--duration-fast) var(--ease-swift),
							color var(--duration-fast) var(--ease-swift),
							transform var(--duration-fast) var(--ease-swift);
}


.header-phone-link:hover {
	background-color:var(--surface-alt);
	border-color:var(--border-strong);
	color:var(--accent-dark);
	transform:translateY(-1px);
}


.header-phone-link:active {
	transform:translateY(0);
	background-color:var(--accent-soft);
}


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


.nav-toggle {
	display:none;
	align-items:center;
	justify-content:center;
	gap:0.4rem;
	background-color:var(--surface);
	color:var(--ink);
	border:1px solid var(--border);
	padding:0.5rem 0.85rem;
	min-height:44px;
	min-width:44px;
	font-family:var(--foho-308);
	font-size:var(--step--1);
	font-weight:600;
	text-transform:uppercase;
	cursor:pointer;
	border-radius:var(--radius-xs);
	transition:background-color var(--duration-fast) var(--ease-swift),
							border-color var(--duration-fast) var(--ease-swift),
							color var(--duration-fast) var(--ease-swift),
							transform var(--duration-fast) var(--ease-swift);
}


.nav-toggle:hover {
	background-color:var(--surface-alt);
	border-color:var(--border-strong);
	color:var(--accent);
	transform:translateY(-1px);
}


.nav-toggle:active {
	background-color:var(--accent-soft);
	transform:translateY(0);
}


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


.site-nav {
	border-top:1px solid var(--border);
	background-color:var(--surface);
}


.nav-list {
	display:flex;
	align-items:stretch;
	list-style:none;
	padding:0;
	margin:0;
	overflow-x:auto;
	-webkit-overflow-scrolling:touch;
}


.nav-item {

	flex-shrink:0;
	border-right:1px solid var(--border);
}


.nav-item:first-child {
	border-left:1px solid var(--border);
}


.nav-link {
	display:inline-flex;
	align-items:center;
	gap:0.5rem;
	padding:0.65rem 1.15rem;
	min-height:44px;
	font-family:var(--foho-308);
	font-size:var(--step--1);
	font-weight:500;
	color:var(--ink);
	text-decoration:none;
	white-space:nowrap;
	background-color:transparent;
	border-bottom:2px solid transparent;
	transition:background-color var(--duration-fast) var(--ease-swift),
							color var(--duration-fast) var(--ease-swift),
							border-color var(--duration-fast) var(--ease-swift);
}


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


.nav-link:active {
	background-color:var(--accent-soft);
}


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


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


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


	.site-nav {
		display:none;
		position:absolute;
		top:100%;
		left:0;
		right:0;
		background-color:var(--surface);
		border-top:1px solid var(--border);
		border-bottom:2px solid var(--border-strong);
		box-shadow:0 8px 24px rgba(30, 27, 26, 0.12);
	}


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


	.nav-list {
		flex-direction:column;
		overflow-x:visible;
	}


	.nav-item {
		border-right:none;
		border-left:none;
		border-bottom:1px solid var(--border);
	}


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



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


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


.btn-primary:hover {
	background-color:var(--accent-dark);

	border-color:var(--accent-dark);
	color:var(--white);
	transform:translateY(-1px);
	box-shadow:0 3px 8px rgba(184, 90, 72, 0.28);
}


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


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


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


.btn-secondary:hover {
	background-color:var(--surface-alt);
	border-color:var(--ink);
	color:var(--ink);
	transform:translateY(-1px);
}


.btn-secondary:active {
	transform:translateY(0);
	background-color:var(--accent-soft);
}


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


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


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


.btn-outline:active {
	transform:translateY(0);
	background-color:rgba(184, 90, 72, 0.15);
}


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


.btn-sm {
	padding:0.4rem 0.85rem;
	min-height:38px;
	font-size:var(--step--2);
}


.btn-lg {
	padding:0.85rem 1.75rem;
	min-height:50px;
	font-size:var(--foho-d1f);
}


.badge {
	display:inline-flex;
	align-items:center;
	gap:0.35rem;
	padding:0.25rem 0.55rem;
	min-height:24px;
	font-family:var(--foho-308);
	font-size:var(--step--2);
	font-weight:600;
	line-height:1;
	text-transform:uppercase;
	letter-spacing:0.04em;
	background-color:var(--surface-alt);
	color:var(--ink);
	border:1px solid var(--border);
	border-radius:var(--radius-xs);
}


.badge-accent {
	background-color:var(--accent-soft);
	color:var(--accent-dark);
	border-color:rgba(184, 90, 72, 0.3);
}


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



.plate-section {
	padding-block:var(--space-2xl);
	border-bottom:1px solid var(--border);
	position:relative;
}


.plate-figure {
	width:100%;
	position:relative;
	border:1px solid var(--border);
	background-color:var(--surface);
	overflow:hidden;
	margin-bottom:var(--space-m);
}


.plate-img {
	width:100%;
	height:auto;
	object-fit:cover;
	aspect-ratio:3 / 2;
	display:block;
}


.plate-crop-wide .plate-img {
	aspect-ratio:21 / 9;
}


.plate-crop-classic .plate-img {
	aspect-ratio:3 / 2;
}


.plate-crop-tall .plate-img {
	aspect-ratio:4 / 3;
}


.plate-caption {
	max-width:var(--measure-narrow);
	margin-inline:0;
}


.plate-caption .caption-lead {
	font-family:var(--foho-cf8);
	font-size:var(--foho-a9b);
	font-weight:800;
	line-height:1.25;
	color:var(--ink);
	margin-bottom:var(--space-2xs);
	display:block;
}


.plate-caption p {
	font-family:var(--foho-6a4);
	font-size:var(--foho-d1f);
	line-height:1.68;
	color:var(--ink);
}


.plate-specs {
	display:grid;
	grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
	gap:var(--space-xs);
	margin-top:var(--space-s);
	padding-top:var(--space-xs);
	border-top:1px dashed var(--border);
}


.plate-spec-item {
	font-family:var(--foho-308);
	font-size:var(--step--1);
}


.plate-spec-key {
	color:var(--ink-muted);
	font-size:var(--step--2);
	text-transform:uppercase;
	display:block;
	letter-spacing:0.03em;
}


.plate-spec-val {
	font-weight:600;
	color:var(--ink);
}



[data-model-stage] {
	position:relative;
	width:100%;
	aspect-ratio:16 / 10;
	min-height:380px;
	background-color:var(--surface);
	border:1px solid var(--border);
	overflow:hidden;
}


[data-model-still] {
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	object-fit:cover;
	transition:opacity var(--duration-normal) var(--ease-out);
	z-index:1;
}


[data-model-canvas] {
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	display:block;
	z-index:2;
	cursor:grab;
}


[data-model-canvas]:active {
	cursor:grabbing;
}


[data-model-stage][data-model-live='true'] [data-model-still] {
	opacity:0;
	pointer-events:none;
}


.model-controls-hint {
	position:absolute;
	bottom:0.75rem;
	right:0.75rem;
	z-index:10;
	padding:0.35rem 0.65rem;
	background-color:#151312;
	color:#fff;
	font-family:var(--foho-308);
	font-size:var(--step--2);
	letter-spacing:0.04em;
	border-radius:var(--radius-xs);
	display:inline-flex;
	align-items:center;
	gap:0.4rem;
	pointer-events:none;
}



[data-tool] {
	background-color:var(--surface);
	border:1px solid var(--border);
	padding:var(--space-m);
	position:relative;
}


.tool-grid {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:var(--space-m);
	margin-top:var(--space-s);
}


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


.tool-control-group {
	display:flex;
	flex-direction:column;
	gap:0.4rem;
}


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


.tool-hint {
	font-weight:400;
	font-size:var(--step--2);
	color:var(--ink-muted);
}


.tool-input-text,
.tool-select {
	width:100%;
	padding:0.65rem 0.85rem;
	min-height:44px;
	background-color:var(--white);
	border:1px solid var(--border);
	border-radius:var(--radius-xs);
	font-family:var(--foho-308);
	font-size:var(--foho-d1f);
	color:var(--ink);
	transition:border-color var(--duration-fast) var(--ease-swift),
							box-shadow var(--duration-fast) var(--ease-swift);
}


.tool-input-text:hover,
.tool-select:hover {
	border-color:var(--border-strong);
}


.tool-input-text:focus-visible,
.tool-select:focus-visible {
	outline:none;
	border-color:var(--accent);
	box-shadow:0 0 0 3px var(--accent-focus);
}


.tool-results-panel {
	background-color:var(--surface-alt);
	border:1px solid var(--border);
	padding:var(--space-m);
	display:flex;
	flex-direction:column;
	justify-content:space-between;
	gap:var(--space-s);
}


.tool-output-figure {
	font-family:var(--foho-cf8);
	font-size:var(--foho-166);
	font-weight:800;
	line-height:1.1;
	color:var(--accent-dark);
}


.tool-breakdown {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:var(--space-xs);
	border-top:1px solid var(--border);
	padding-top:var(--space-xs);
	margin-top:var(--space-2xs);
}


.tool-breakdown-cell {
	font-family:var(--foho-308);
	font-size:var(--step--1);
}


.tool-breakdown-label {
	display:block;
	font-size:var(--step--2);
	color:var(--ink-muted);
	text-transform:uppercase;
}


.tool-breakdown-val {
	font-weight:600;
	color:var(--ink);
}


.tool-disclaimer {
	font-family:var(--foho-308);
	font-size:var(--step--2);
	color:var(--ink-muted);
	line-height:1.5;
	margin-top:var(--space-xs);
	padding-top:var(--space-xs);
	border-top:1px dashed var(--border);
}



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


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


.form-label .optional-tag {
	font-size:var(--step--2);
	color:var(--ink-muted);
	font-weight:400;
}


.form-input,
.form-textarea,
.form-select {
	width:100%;
	padding:0.65rem 0.85rem;
	min-height:44px;
	background-color:var(--white);
	border:1px solid var(--border);
	border-radius:var(--radius-xs);
	font-family:var(--foho-308);
	font-size:var(--foho-d1f);
	color:var(--ink);
	transition:border-color var(--duration-fast) var(--ease-swift),
							background-color var(--duration-fast) var(--ease-swift),
							box-shadow var(--duration-fast) var(--ease-swift);
}


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


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


.form-input:focus-visible,
.form-textarea:focus-visible,
.form-select:focus-visible {
	outline:none;
	border-color:var(--accent);
	box-shadow:0 0 0 3px var(--accent-focus);
}


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


.form-error {
	display:none;
	font-family:var(--foho-308);
	font-size:var(--step--2);
	color:#b22222;
	font-weight:600;
	margin-top:0.2rem;
}


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


.form-checkbox-label {
	display:flex;
	align-items:flex-start;
	gap:0.65rem;
	font-family:var(--foho-308);
	font-size:var(--step--1);
	line-height:1.45;
	color:var(--ink);
	cursor:pointer;
}


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


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


.form-status {
	padding:0.85rem 1rem;
	border-radius:var(--radius-xs);
	font-family:var(--foho-308);
	font-size:var(--step--1);
	margin-top:var(--space-s);
	display:none;
}


.form-status[data-state='success'] {
	display:block;
	background-color:#ebf8f2;
	color:#17653c;
	border:1px solid #b8e5d0;
}


.form-status[data-state='error'] {
	display:block;
	background-color:#fdf2f2;
	color:#9b1c1c;
	border:1px solid #f8b4b4;
}



.table-wrapper {
	width:100%;
	overflow-x:auto;
	-webkit-overflow-scrolling:touch;
	border:1px solid var(--border);
	background-color:var(--surface);
	margin-block:var(--space-m);
}


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


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


.ledger-table th {
	background-color:var(--surface-alt);
	font-weight:600;
	font-size:var(--step--2);
	text-transform:uppercase;
	letter-spacing:0.04em;
	color:var(--ink-muted);
}


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


.ledger-table tr:hover td {
	background-color:rgba(184, 90, 72, 0.04);
}



.site-footer {
	margin-top:auto;
	background-color:#151312;
	color:#d8cfcd;
	border-top:2px solid var(--accent);
	font-family:var(--foho-308);
	font-size:var(--step--1);
	padding-top:var(--space-2xl);
	padding-bottom:var(--space-xl);
}


.site-footer a {
	color:#ede6e4;
	text-decoration:underline;
	text-underline-offset:3px;
}


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


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


.footer-top-grid {
	display:grid;
	grid-template-columns:2fr 1fr 1fr;
	gap:var(--space-xl);
	padding-bottom:var(--space-xl);
	border-bottom:1px solid rgba(216, 207, 205, 0.15);
}


@media (max-width: 1100px) {
	.footer-top-grid {
		grid-template-columns:1fr;
		gap:var(--space-l);
	}
}


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


.footer-logo {
	height:2.3rem;
	width:auto;
	object-fit:contain;
}


.footer-operator-bio {
	max-width:48ch;
	font-size:var(--step--1);
	line-height:1.6;
	color:#b4aaa7;
}


.footer-heading {
	font-family:var(--foho-cf8);
	font-size:var(--foho-d1f);
	font-weight:800;
	color:var(--white);
	text-transform:uppercase;
	letter-spacing:0.05em;
	margin-bottom:var(--space-s);
}


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


.footer-list li {
	margin:0;
}


.footer-contact-item {
	display:flex;
	align-items:flex-start;
	gap:0.6rem;
	color:#b4aaa7;
	font-size:var(--step--1);
}


.footer-contact-item .icon {
	margin-top:0.25rem;
	color:var(--accent);
}


.footer-legal-bar {
	padding-top:var(--space-l);
	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
	align-items:center;
	gap:var(--space-m);
	font-size:var(--step--2);
	color:#8e8480;
}


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


.footer-legal-links li {
	margin:0;
}


.footer-consent-trigger {
	background:none;
	border:none;
	padding:0;
	color:#b4aaa7;
	font-family:var(--foho-308);
	font-size:var(--step--2);
	text-decoration:underline;
	text-underline-offset:3px;
	cursor:pointer;
	transition:color var(--duration-fast) var(--ease-swift);
}


.footer-consent-trigger:hover {
	color:var(--white);
}


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



.cookie-bar {
	position:fixed;
	bottom:0;
	left:0;
	right:0;
	z-index:9990;
	background-color:var(--ink);
	color:var(--surface);
	border-top:2px solid var(--accent);
	box-shadow:0 -4px 20px rgba(0, 0, 0, 0.25);
	padding:0.85rem var(--container-pad);
	max-height:20vh;
	display:none;
}


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


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


.cookie-text {
	font-family:var(--foho-308);
	font-size:var(--step--2);
	line-height:1.45;
	color:#d8cfcd;
	margin:0;
	flex:1 1 320px;
}


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


.cookie-text a:hover {
	color:var(--accent-soft);
}


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


.cookie-btn {
	font-family:var(--foho-308);
	font-size:var(--step--2);
	font-weight:600;
	padding:0.45rem 0.85rem;
	min-height:38px;
	border-radius:var(--radius-xs);
	cursor:pointer;
	border:1px solid transparent;
	transition:background-color var(--duration-fast) var(--ease-swift),
							color var(--duration-fast) var(--ease-swift),
							border-color var(--duration-fast) var(--ease-swift),
							transform var(--duration-fast) var(--ease-swift);
}


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


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


.cookie-btn-accept:active {
	transform:translateY(0);
}


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


.cookie-btn-decline {
	background-color:transparent;
	color:#d8cfcd;
	border-color:#635c59;
}


.cookie-btn-decline:hover {
	background-color:rgba(255, 255, 255, 0.1);
	color:var(--white);
	border-color:var(--white);
	transform:translateY(-1px);
}


.cookie-btn-decline:active {
	transform:translateY(0);
}


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



.chat-launcher {
	position:fixed;
	bottom:1.25rem;
	right:1.25rem;
	z-index:9980;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:0.5rem;
	padding:0.65rem 1.15rem;
	min-height:48px;
	background-color:var(--ink);
	color:var(--white);
	border:1px solid var(--accent);
	border-radius:var(--radius-xs);
	box-shadow:0 4px 16px rgba(0, 0, 0, 0.2);
	cursor:pointer;
	font-family:var(--foho-308);
	font-size:var(--step--1);
	font-weight:600;
	transition:transform var(--duration-fast) var(--ease-swift),
							background-color var(--duration-fast) var(--ease-swift),
							border-color var(--duration-fast) var(--ease-swift),
							bottom var(--duration-normal) var(--ease-swift);
}


body[data-cookie-open='true'] .chat-launcher {
	bottom:5.5rem;
}


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


.chat-launcher:active {
	transform:translateY(0);
}


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


.chat-launcher .unread-badge {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:18px;
	height:18px;
	background-color:var(--accent);
	color:var(--white);
	border-radius:50%;
	font-size:0.7rem;
	font-weight:700;
	margin-left:0.2rem;
}


.chat-panel {
	position:fixed;
	bottom:5rem;
	right:1.25rem;
	width:min(380px, calc(100vw - 2.5rem));
	height:520px;
	max-height:calc(100vh - 6.5rem);
	background-color:var(--surface);
	border:1px solid var(--border-strong);
	box-shadow:0 12px 36px rgba(30, 27, 26, 0.22);
	border-radius:var(--radius-xs);
	z-index:9985;
	display:none;
	flex-direction:column;
	overflow:hidden;
}


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


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


.chat-panel-title {
	font-family:var(--foho-cf8);
	font-size:var(--foho-d1f);
	font-weight:800;
	color:var(--white);
}


.chat-close-btn {
	background:transparent;
	border:none;
	color:var(--surface);
	cursor:pointer;
	padding:0.25rem;
	min-height:36px;
	min-width:36px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	border-radius:var(--radius-xs);
	transition:background-color var(--duration-fast) var(--ease-swift),
							color var(--duration-fast) var(--ease-swift);
}


.chat-close-btn:hover {
	background-color:rgba(255, 255, 255, 0.15);
	color:var(--white);
}


.chat-close-btn:active {
	background-color:rgba(255, 255, 255, 0.25);
}


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


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


.chat-msg {
	max-width:82%;
	padding:0.6rem 0.85rem;
	border-radius:var(--radius-xs);
	font-family:var(--foho-308);
	font-size:var(--step--1);
	line-height:1.45;
	position:relative;
	word-break:break-word;
}


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


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


.chat-msg-time {
	display:block;
	font-size:var(--step--2);
	margin-top:0.25rem;
	opacity:0.75;
}


.chat-input-bar {
	padding:0.75rem 1rem;
	background-color:var(--surface);
	border-top:1px solid var(--border);
	display:flex;
	gap:0.5rem;
}


.chat-input-field {
	flex:1;
	padding:0.5rem 0.75rem;
	min-height:40px;
	border:1px solid var(--border);
	border-radius:var(--radius-xs);
	font-family:var(--foho-308);
	font-size:var(--step--1);
	background-color:var(--white);
	transition:border-color var(--duration-fast) var(--ease-swift);
}


.chat-input-field:hover {
	border-color:var(--border-strong);
}


.chat-input-field:focus-visible {
	outline:none;
	border-color:var(--accent);
}


.chat-send-btn {
	padding:0.5rem 0.85rem;
	min-height:40px;
	background-color:var(--accent);
	color:var(--white);
	border:none;
	border-radius:var(--radius-xs);
	cursor:pointer;
	font-family:var(--foho-308);
	font-size:var(--step--1);
	font-weight:600;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	transition:background-color var(--duration-fast) var(--ease-swift),
							transform var(--duration-fast) var(--ease-swift);
}


.chat-send-btn:hover {
	background-color:var(--accent-dark);
	transform:translateY(-1px);
}


.chat-send-btn:active {
	transform:translateY(0);
}


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