

.brand {
	display:inline-flex;
	align-items:center;
	line-height:1;
	text-decoration:none;
	transition:opacity var(--dur-fast) var(--ease-out-quad);
}


.brand:hover {
	opacity:0.9;
}


.brand:active {
	opacity:0.75;
}


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


.brand__img {
	height:2.1rem;
	width:auto;
	max-width:38vw;
	display:block;
}


@media (min-width: 1024px) {
	.brand__img {
		height:2.25rem;
		max-width:none;
	}
}


.brand--footer .brand__img {
	height:2.5rem;
	max-width:60vw;
}


.site-header {
	position:relative;
	width:100%;
	height:4rem;
	padding:0 var(--space-md);
	background-color:var(--ground);
	border-bottom:1px solid var(--line);
	display:flex;
	align-items:center;
	justify-content:space-between;
	z-index:80;
}


@media (min-width: 768px) {
	.site-header {
		padding:0 var(--space-xl);
		height:4.5rem;
	}
}


@media (min-width: 1024px) {
	.site-header {
		display:none; 
	}
}


.site-header__actions {
	display:flex;
	align-items:center;
	gap:var(--space-sm);
}


.site-header__contact-link {
	font-family:var(--paco-88d);
	font-size:var(--text-xs);
	letter-spacing:0.04em;
	color:var(--accent);
	text-transform:uppercase;
	padding:var(--space-2xs) var(--space-xs);
	border:1px solid var(--line);
	transition:background-color var(--dur-fast) var(--ease-out-quad),
							color var(--dur-fast) var(--ease-out-quad),
							border-color var(--dur-fast) var(--ease-out-quad);
}


.site-header__contact-link:hover {
	background-color:var(--surface-2);
	border-color:var(--accent);
}


.site-header__contact-link:active {
	background-color:var(--accent);
	color:var(--accent-ink);
}


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


.nav-rail {
	display:none;
}


@media (min-width: 1024px) {
	.nav-rail {
		display:flex;
		flex-direction:column;
		justify-content:space-between;
		align-items:center;
		position:fixed;
		top:0;
		left:0;
		bottom:0;
		width:var(--rail-width);
		background-color:var(--ground);
		border-right:1px solid var(--line);
		z-index:100;
		padding:var(--space-md) 0 var(--space-xl) 0;
	}
}


@media (min-width: 1440px) {
	.nav-rail {
		width:var(--rail-width-wide);
	}

}


.nav-rail__top {
	display:flex;
	flex-direction:column;
	align-items:center;
	gap:var(--space-md);
	width:100%;
}


.nav-rail__mark-link {
	display:flex;
	align-items:center;
	justify-content:center;
	width:2.75rem;
	height:2.75rem;
	transition:transform var(--dur-fast) var(--ease-out-quad);
}


.nav-rail__mark-link img {
	width:2.25rem;
	height:2.25rem;
	object-fit:contain;
}


.nav-rail__mark-link:hover {
	transform:scale(1.05);
}


.nav-rail__mark-link:active {
	transform:scale(0.95);
}


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


.nav-rail__toggle-btn {
	appearance:none;
	background-color:var(--ground);
	border:1px solid var(--line);
	color:var(--ink);
	width:2.75rem;
	height:2.75rem;
	display:flex;

	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:0.25rem;
	font-family:var(--paco-88d);
	font-size:0.625rem;
	text-transform:uppercase;
	letter-spacing:0.08em;
	padding:0;
	cursor:pointer;
	box-shadow:0 1px 3px rgba(0,0,0,0.2);
	transition:background-color var(--dur-fast) var(--ease-out-quad),
							border-color var(--dur-fast) var(--ease-out-quad),
							color var(--dur-fast) var(--ease-out-quad),
							transform var(--dur-fast) var(--ease-out-quad),
							box-shadow var(--dur-fast) var(--ease-out-quad);
}


.nav-rail__toggle-btn .icon {
	width:1.15rem;
	height:1.15rem;
}


.nav-rail__toggle-btn:hover {
	background-color:var(--surface-2) !important;
	border-color:var(--accent) !important;
	color:var(--accent) !important;
	transform:translateY(-1px);
	box-shadow:0 4px 8px rgba(0,0,0,0.3);
}


.nav-rail__toggle-btn:active {
	background-color:var(--accent) !important;
	border-color:var(--accent) !important;
	color:var(--accent-ink) !important;
	transform:translateY(1px);
	box-shadow:0 0 2px rgba(0,0,0,0.4);
}


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


.nav-rail__middle {
	writing-mode:vertical-rl;
	transform:rotate(180deg);
	display:flex;
	align-items:center;
	justify-content:center;
}


.nav-rail__status {
	font-family:var(--paco-88d);
	font-size:0.6875rem;
	color:var(--ink-soft);
	letter-spacing:0.16em;
	text-transform:uppercase;
	white-space:nowrap;
}


.nav-rail__bottom {
	display:flex;
	flex-direction:column;
	align-items:center;
	gap:var(--space-sm);
	width:100%;
}


.nav-rail__quick-link {
	width:2.75rem;
	height:2.75rem;
	display:flex;
	align-items:center;
	justify-content:center;
	color:var(--ink-soft);
	border:1px solid transparent;
	transition:color var(--dur-fast) var(--ease-out-quad),
							background-color var(--dur-fast) var(--ease-out-quad),
							border-color var(--dur-fast) var(--ease-out-quad);
}


.nav-rail__quick-link[aria-current='page'] {
	color:var(--accent);
	border-color:var(--line);
	background-color:var(--surface);
}


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


.nav-rail__quick-link:active {

	background-color:var(--accent);
	color:var(--accent-ink);
}


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


.nav-overlay {
	position:fixed;
	inset:0;
	background-color:var(--ground);
	z-index:1000;
	display:none;
	flex-direction:column;
	overflow-y:auto;
	padding:var(--space-xl) var(--space-md);
	opacity:0;
	visibility:hidden;
	transition:opacity var(--dur-slow) var(--ease-expo),
							visibility var(--dur-slow) var(--ease-expo);
}


.nav-overlay.is-active {
	display:flex;
	opacity:1;
	visibility:visible;
}


@media (min-width: 768px) {
	.nav-overlay {
		padding:var(--space-2xl) var(--space-2xl);
	}
}


.nav-overlay__header {
	display:flex;
	align-items:center;
	justify-content:space-between;
	width:100%;
	max-width:var(--content-max);
	margin:0 auto var(--space-2xl) auto;
	border-bottom:1px solid var(--line);
	padding-bottom:var(--space-lg);
}


.nav-overlay__close {
	appearance:none;
	background:none;
	border:1px solid var(--line);
	color:var(--ink);
	padding:var(--space-xs) var(--space-md);
	min-height:44px;
	display:inline-flex;
	align-items:center;
	gap:var(--space-xs);
	font-family:var(--paco-88d);
	font-size:var(--text-xs);
	text-transform:uppercase;
	letter-spacing:0.08em;
	cursor:pointer;
	transition:background-color var(--dur-fast) var(--ease-out-quad),
							color var(--dur-fast) var(--ease-out-quad),
							border-color var(--dur-fast) var(--ease-out-quad);
}


.nav-overlay__close:hover {
	background-color:var(--surface-2);
	border-color:var(--accent);
	color:var(--accent);
}


.nav-overlay__close:active {
	background-color:var(--accent);
	color:var(--accent-ink);
}


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


.nav-overlay__body {
	width:100%;
	max-width:var(--content-max);
	margin:0 auto;
	display:grid;
	grid-template-columns:1fr;
	gap:var(--space-2xl);
	flex:1 0 auto;
}


@media (min-width: 900px) {
	.nav-overlay__body {
		grid-template-columns:1.25fr 1fr;
		align-items:start;
		gap:var(--space-3xl);
	}
}


.nav-overlay__list {
	display:flex;
	flex-direction:column;
	gap:var(--space-xs);
}


.nav-overlay__link {
	font-family:var(--paco-5c9);
	font-size:clamp(1.75rem, 1.4rem + 2.2vw, 3.5rem);
	font-weight:700;
	line-height:1.15;
	letter-spacing:-0.03em;
	color:var(--ink);
	display:inline-flex;
	align-items:baseline;
	gap:var(--space-md);
	padding:var(--space-xs) 0;
	border-bottom:1px solid rgba(145, 82, 85, 0.35);
	transition:color var(--dur-fast) var(--ease-out-quad),
							padding-left var(--dur-base) var(--ease-expo);
}


.nav-overlay__link-meta {
	font-family:var(--paco-88d);
	font-size:var(--text-xs);
	font-weight:400;
	color:var(--ink-soft);
	letter-spacing:0.05em;
	text-transform:uppercase;
}


.nav-overlay__link[aria-current='page'] {
	color:var(--accent);
	padding-left:var(--space-sm);
	border-bottom-color:var(--accent);
}


.nav-overlay__link:hover {
	color:var(--accent);
	padding-left:var(--space-sm);
}


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


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


.nav-overlay__card {
	background-color:var(--surface);
	border:1px solid var(--line);
	padding:var(--space-lg);
	display:flex;
	flex-direction:column;
	gap:var(--space-md);
}


.nav-overlay__card-img {
	width:100%;
	aspect-ratio:16 / 10;
	object-fit:cover;
	border:1px solid var(--line);
}


.nav-overlay__info {
	display:flex;
	flex-direction:column;
	gap:var(--space-xs);
	font-family:var(--paco-88d);
	font-size:var(--text-xs);
	color:var(--ink-soft);
}


.mobile-dock {
	position:fixed;
	inset:auto 0 0 0;
	height:var(--dock-height);
	padding-bottom:env(safe-area-inset-bottom, 0px);
	background-color:var(--ground);
	border-top:1px solid var(--line);
	box-shadow:0 -4px 16px rgba(20, 8, 9, 0.5);
	z-index:90;
	display:flex;
	width:100%;
}


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


.mobile-dock__list {
	display:flex;
	width:100%;
	height:100%;
	align-items:stretch;
	margin:0;
	padding:0;
}


.mobile-dock__item {
	flex:1 1 0;
	min-width:0;
	display:flex;
}


.mobile-dock__link,
.mobile-dock__btn {
	appearance:none;
	background:none;
	border:0;
	font:inherit;
	color:var(--ink-soft);
	text-decoration:none;
	cursor:pointer;
	width:100%;
	height:100%;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:0.2rem;
	padding:0.35rem 0.25rem;
	transition:color var(--dur-fast) var(--ease-out-quad),
							background-color var(--dur-fast) var(--ease-out-quad);
}


.mobile-dock__icon {
	width:22px;
	height:22px;
	fill:currentColor;
	flex-shrink:0;
}


.mobile-dock__label {
	font-family:var(--paco-cd9);
	font-size:11px;
	line-height:1.1;
	white-space:nowrap;
	letter-spacing:-0.01em;
}


.mobile-dock__link[aria-current='page'] {
	color:var(--accent);
	font-weight:600;
	background-color:rgba(91, 39, 43, 0.5);
}


.mobile-dock__link:hover,
.mobile-dock__btn:hover {
	color:var(--ink);
	background-color:var(--surface);
}


.mobile-dock__link:active,
.mobile-dock__btn:active {
	color:var(--accent-ink);
	background-color:var(--accent);
}


.mobile-dock__link:focus-visible,
.mobile-dock__btn:focus-visible {
	outline:2px solid var(--accent);
	outline-offset:-2px;
}


.btn {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:var(--space-xs);
	height:var(--control-h, 44px);
	min-height:var(--control-h, 44px);
	padding:0 var(--space-xl);
	font-family:var(--paco-88d);
	font-size:var(--text-xs);
	font-weight:700;
	text-transform:uppercase;
	letter-spacing:0.08em;
	text-decoration:none;
	border-radius:var(--radius, 0px);
	border:1px solid transparent;
	cursor:pointer;
	white-space:nowrap;
	transition:background-color var(--dur-fast) var(--ease-out-quad),
							color var(--dur-fast) var(--ease-out-quad),
							border-color var(--dur-fast) var(--ease-out-quad),
							transform var(--dur-fast) var(--ease-out-quad);
}


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


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


.btn--primary:active {
	background-color:#A88849;
	border-color:#A88849;
	transform:translateY(0);
}


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


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


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


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


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


/* Text / Inline Action */
.action-link {
	font-family:var(--paco-88d);
	font-size:var(--text-xs);
	letter-spacing:0.06em;
	text-transform:uppercase;
	color:var(--accent);
	display:inline-flex;
	align-items:center;
	gap:var(--space-2xs);
	border-bottom:1px solid var(--accent);
	padding-bottom:2px;
	min-height:44px;
	transition:color var(--dur-fast) var(--ease-out-quad),
							border-color var(--dur-fast) var(--ease-out-quad);
}


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


.action-link:active {
	color:var(--ink-soft);
	border-color:var(--ink-soft);
}


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


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


.card-spec:hover {
	border-color:var(--accent);
	transform:translateY(-2px);
}


.card-spec__img-wrap {
	width:100%;
	aspect-ratio:4 / 3;
	overflow:hidden;
	background-color:var(--ground);
	border-bottom:1px solid var(--line);
}


.card-spec__img {
	width:100%;
	height:100%;
	object-fit:cover;
	transition:transform var(--dur-base) var(--ease-out-quad);
}


.card-spec:hover .card-spec__img {
	transform:scale(1.02);
}


.card-spec__body {
	padding:var(--space-lg);
	display:flex;
	flex-direction:column;
	gap:var(--space-sm);
	flex:1 0 auto;
}


.card-spec__price {
	font-family:var(--paco-88d);
	font-size:var(--text-md);
	font-weight:700;
	color:var(--accent);
	margin-bottom:var(--space-2xs);
}


.card-spec__title {
	font-family:var(--paco-5c9);
	font-size:var(--text-lg);
	color:var(--ink);
	margin-bottom:var(--space-2xs);
}


.card-spec__detail {
	font-family:var(--paco-cd9);
	font-size:var(--text-sm);
	color:var(--ink-soft);
	margin-bottom:var(--space-md);
	line-height:1.5;
}


.spec-table {
	width:100%;
	border-collapse:collapse;
	font-family:var(--paco-88d);
	font-size:var(--text-xs);
	margin-top:var(--space-md);
}


.spec-table th,
.spec-table td {
	padding:var(--space-xs) var(--space-sm);
	text-align:left;
	border-bottom:1px solid var(--line);
	vertical-align:top;
}


.spec-table th {
	color:var(--ink-soft);
	font-weight:400;
	text-transform:uppercase;
	letter-spacing:0.05em;
	width:38%;
}


.spec-table td {
	color:var(--ink);
}


.pullquote-spread {
	padding:var(--space-4xl) 0;
	border-top:1px solid var(--line);
	border-bottom:1px solid var(--line);
	background-color:var(--surface);
	position:relative;
	overflow:hidden;
}


@media (min-width: 768px) {
	.pullquote-spread {
		padding:var(--space-5xl) 0;
	}
}


.pullquote-spread__inner {
	max-width:var(--content-max);
	margin:0 auto;
	padding:0 var(--space-md);
}


@media (min-width: 768px) {
	.pullquote-spread__inner {
		padding:0 var(--space-xl);
	}
}


.pullquote-spread__text {
	font-family:var(--paco-5c9);
	font-size:clamp(2rem, 1.6rem + 2.8vw, 4.25rem);
	font-weight:700;
	line-height:1.12;
	letter-spacing:-0.035em;
	color:var(--ink);
	margin-bottom:var(--space-xl);
	max-width:22ch;
	text-wrap:balance;
}


.pullquote-spread__cite {
	display:block;
	font-family:var(--paco-88d);
	font-size:var(--text-xs);
	letter-spacing:0.12em;
	text-transform:uppercase;
	color:var(--accent);
	padding-left:var(--space-md);
	border-left:2px solid var(--accent);
}


.inquiry-form {
	display:flex;
	flex-direction:column;
	gap:var(--space-md);
	max-width:48rem;
}


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


.form-label {
	font-family:var(--paco-88d);
	font-size:var(--text-xs);
	text-transform:uppercase;
	letter-spacing:0.08em;
	color:var(--ink);
}


.form-label__hint {
	color:var(--ink-soft);
	text-transform:none;
	letter-spacing:normal;
	margin-left:var(--space-xs);
}


.form-input,
.form-select,
.form-textarea {
	background-color:var(--surface-2);
	border:1px solid var(--line);
	color:var(--ink);
	font-family:var(--paco-cd9);
	font-size:var(--text-base);
	padding:0 var(--space-md);
	height:var(--control-h, 44px);
	min-height:var(--control-h, 44px);
	border-radius:var(--radius, 0px);
	transition:border-color var(--dur-fast) var(--ease-out-quad),
							background-color var(--dur-fast) var(--ease-out-quad);
}


.form-textarea {
	min-height:7rem;
	resize:vertical;
}


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


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


.form-input.is-invalid,
.form-textarea.is-invalid {
	border-color:#FF8585;
	background-color:rgba(111, 51, 55, 0.8);
}


.form-error {
	font-family:var(--paco-88d);
	font-size:var(--text-xs);
	color:#FFB8B8;
	display:none;
	margin-top:var(--space-2xs);
}


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


/* Form Checkbox for Consent */
.form-consent {
	display:flex;
	align-items:flex-start;
	gap:var(--space-sm);
	margin-top:var(--space-xs);
}


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


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


.form-checkbox:checked::before {
	content:"";
	width:0.65rem;
	height:0.65rem;
	background-color:var(--accent-ink);
	clip-path:polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
}


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


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


.form-consent__label {
	font-family:var(--paco-cd9);
	font-size:var(--text-sm);
	color:var(--ink-soft);
	line-height:1.45;
}


.form-consent__label a {
	color:var(--ink);
	text-decoration:underline;
	text-underline-offset:3px;
}


/* Status Notifications */
.form-alert {
	padding:var(--space-md);
	border:1px solid var(--line);
	font-family:var(--paco-88d);
	font-size:var(--text-xs);
	display:none;
}


.form-alert--success {
	display:block;
	border-color:var(--accent);
	background-color:var(--surface);
	color:var(--ink);
}


.form-alert--error {
	display:block;
	border-color:#FF8585;
	background-color:var(--surface-2);
	color:#FFB8B8;
}


.site-footer {
	background-color:var(--surface);
	border-top:1px solid var(--line);
	padding-top:var(--space-xl);
	padding-bottom:var(--space-2xl);
	color:var(--ink);
	position:relative;
	z-index:50;
}


@media (min-width: 1024px) {
	.site-footer {
		padding-top:var(--space-xl);
		padding-bottom:var(--space-xl);
	}
}


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


@media (min-width: 768px) {
	.footer-top {
		display:grid !important;
		grid-template-columns:1fr 1fr !important;
		gap:var(--space-xl) !important;
	}
	.footer-col {
		min-width:0 !important;
	}
	.footer-col:last-child {
		grid-column:1 / -1;
	}
}


@media (min-width: 1024px) {
	.footer-top {
		grid-template-columns:2fr 1.2fr 1.5fr !important;
	}
	.footer-col:last-child {
		grid-column:auto;
	}
}


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


.footer-title {
	font-family:var(--paco-5c9);
	font-size:var(--text-base);
	letter-spacing:-0.01em;
	color:var(--ink);
	margin-bottom:var(--space-xs);
}


.footer-prose {
	font-family:var(--paco-cd9);
	font-size:var(--text-sm);
	color:var(--ink-soft);
	line-height:1.5;
	max-width:38ch;
}


.footer-meta-list {
	display:flex;
	flex-direction:column;
	gap:var(--space-xs);
	font-family:var(--paco-88d);
	font-size:var(--text-xs);
	color:var(--ink-soft);
}


.footer-meta-list a {
	color:var(--ink);
	display:inline-flex;
	align-items:center;
	min-height:44px;
	transition:color var(--dur-fast) var(--ease-out-quad);
}


.footer-meta-list a:hover {
	color:var(--accent);
}


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


.footer-nav-list {
	display:flex;
	flex-direction:column;
	gap:var(--space-xs);
	font-family:var(--paco-88d);
	font-size:var(--text-xs);
}


.footer-nav-list a {
	color:var(--ink-soft);
	text-transform:uppercase;
	letter-spacing:0.05em;
	display:inline-flex;
	align-items:center;
	min-height:44px;
	transition:color var(--dur-fast) var(--ease-out-quad);
}


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


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


/* Mandatory Footer Legal Bar */
.footer-legal-bar {
	border-top:1px solid var(--line);
	padding-top:var(--space-lg);
	display:flex;
	flex-direction:column;
	gap:var(--space-md);
	font-family:var(--paco-88d);
	font-size:var(--text-xs);
	color:var(--ink-soft);
}


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


.footer-legal-links {
	display:flex;
	flex-wrap:wrap;
	gap:var(--space-sm) var(--space-md);
}


.footer-legal-links a,
.footer-legal-links button {
	color:var(--ink-soft);
	text-decoration:none;
	font:inherit;
	cursor:pointer;
	min-height:44px;
	display:inline-flex;
	align-items:center;
	transition:color var(--dur-fast) var(--ease-out-quad);
}


.footer-legal-links a:hover,
.footer-legal-links button:hover {
	color:var(--accent);
}


.footer-legal-links a:focus-visible,
.footer-legal-links button:focus-visible {
	outline:2px solid var(--accent);
	outline-offset:2px;
}


.cookie-banner {
	position:fixed;
	inset:auto 0 0 0;
	background-color:var(--surface);
	border-top:2px solid var(--accent);
	box-shadow:0 -8px 24px rgba(15, 5, 6, 0.7);
	padding:var(--space-sm) var(--space-md);
	z-index:1000;
	display:none;
	align-items:center;
	justify-content:space-between;
	gap:var(--space-md);
	font-family:var(--paco-88d);
	font-size:var(--text-xs);
	color:var(--ink);
}


.cookie-banner.is-visible {
	display:flex;
	flex-direction:column;
}


@media (min-width: 768px) {
	.cookie-banner.is-visible {
		flex-direction:row;
		padding:var(--space-sm) var(--space-xl);
	}
}


/* Position above mobile dock on small screens */
@media (max-width: 1023px) {
	.cookie-banner {
		bottom:var(--dock-height);
	}
}


.cookie-banner__text {
	margin:0;
	max-width:52ch;
	line-height:1.45;
	color:var(--ink);
}


.cookie-banner__text a {
	color:var(--accent);
	text-decoration:underline;
	text-underline-offset:2px;
}


.cookie-banner__actions {
	display:flex;
	align-items:center;
	gap:var(--space-xs);
	flex-shrink:0;
	width:100%;
}


@media (min-width: 768px) {
	.cookie-banner__actions {
		width:auto;
	}
}


.cookie-banner__btn {
	appearance:none;
	border-radius:var(--radius-none);
	min-height:40px;
	padding:var(--space-2xs) var(--space-md);
	font-family:var(--paco-88d);
	font-size:var(--text-xs);
	font-weight:700;
	letter-spacing:0.05em;
	text-transform:uppercase;
	cursor:pointer;
	transition:background-color var(--dur-fast) var(--ease-out-quad),
							color var(--dur-fast) var(--ease-out-quad),
							border-color var(--dur-fast) var(--ease-out-quad);
	flex:1 1 50%;
}


@media (min-width: 768px) {
	.cookie-banner__btn {
		flex:0 0 auto;
	}
}


.cookie-banner__btn--accept {
	background-color:var(--accent);
	color:var(--accent-ink);
	border:1px solid var(--accent);
}


.cookie-banner__btn--accept:hover {
	background-color:#D1B272;
	border-color:#D1B272;
}


.cookie-banner__btn--accept:active {
	background-color:#A88849;
}


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


.cookie-banner__btn--decline {
	background-color:transparent;
	color:var(--ink);
	border:1px solid var(--line);
}


.cookie-banner__btn--decline:hover {
	background-color:var(--surface-2);
	border-color:var(--ink-soft);
}


.cookie-banner__btn--decline:active {
	background-color:var(--ground);
}


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


.chat-widget {
	position:fixed;
	bottom:calc(var(--dock-height) + var(--space-sm));
	right:var(--space-md);
	z-index:85;
}


@media (min-width: 1024px) {
	.chat-widget {
		bottom:var(--space-lg);
		right:var(--space-xl);
	}
}


/* Lift above banner if banner is active */
body.has-banner .chat-widget {
	bottom:calc(var(--dock-height) + 11rem);
}


@media (min-width: 768px) {
	body.has-banner .chat-widget {
		bottom:calc(var(--dock-height) + 6rem);
	}
}


@media (min-width: 1024px) {
	body.has-banner .chat-widget {
		bottom:5.5rem;
	}
}


.chat-launcher {
	appearance:none;
	background-color:var(--surface);
	border:1px solid var(--line);
	color:var(--ink);
	width:52px;
	height:52px;
	display:flex;
	align-items:center;
	justify-content:center;
	position:relative;
	cursor:pointer;
	box-shadow:var(--shadow-card);
	transition:background-color var(--dur-fast) var(--ease-out-quad),
							border-color var(--dur-fast) var(--ease-out-quad),
							transform var(--dur-fast) var(--ease-out-quad);
}


.chat-launcher .icon {
	width:24px;
	height:24px;
	color:var(--accent);
}


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


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


.chat-launcher:active .icon {
	color:var(--accent-ink);
}


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


.chat-launcher__badge {
	position:absolute;
	top:-4px;
	right:-4px;
	background-color:var(--accent);
	color:var(--accent-ink);
	font-family:var(--paco-88d);
	font-size:10px;
	font-weight:700;
	width:18px;
	height:18px;
	display:flex;
	align-items:center;
	justify-content:center;
	border:1px solid var(--ground);
}


/* Chat Floating Panel */
.chat-panel {
	position:fixed;
	bottom:calc(var(--dock-height) + var(--space-xs));
	right:var(--space-xs);
	left:var(--space-xs);
	max-width:24rem;
	height:28rem;
	background-color:var(--ground);
	border:1px solid var(--line);
	box-shadow:var(--shadow-overlay);
	z-index:1050;
	display:none;
	flex-direction:column;
}


@media (min-width: 480px) {
	.chat-panel {
		left:auto;
		right:var(--space-md);
	}
}


@media (min-width: 1024px) {
	.chat-panel {
		bottom:var(--space-xl);
		right:var(--space-xl);
		height:32rem;
		width:24rem;
	}
}


.chat-panel.is-open {
	display:flex;
}


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


.chat-panel__title {
	font-family:var(--paco-5c9);
	font-size:var(--text-sm);
	color:var(--ink);
	margin:0;
}


.chat-panel__close {
	appearance:none;
	background:none;
	border:1px solid transparent;
	color:var(--ink-soft);
	width:32px;
	height:32px;
	display:flex;
	align-items:center;
	justify-content:center;
	cursor:pointer;
	transition:color var(--dur-fast) var(--ease-out-quad),
							border-color var(--dur-fast) var(--ease-out-quad);
}


.chat-panel__close:hover {
	color:var(--accent);
	border-color:var(--line);
}


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


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


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


.chat-msg {
	max-width:82%;
	padding:var(--space-xs) var(--space-sm);
	font-family:var(--paco-cd9);
	font-size:var(--text-sm);
	line-height:1.4;
}


.chat-msg--bot {
	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(--surface-2);
	border:1px solid var(--line);
	color:var(--ink);
}


.chat-panel__footer {
	border-top:1px solid var(--line);
	padding:var(--space-xs) var(--space-sm);
	background-color:var(--surface);
}


.chat-panel__form {
	display:flex;
	gap:var(--space-xs);
}


.chat-panel__input {
	flex:1 1 auto;
	min-height:38px;
	background-color:var(--ground);
	border:1px solid var(--line);
	color:var(--ink);
	padding:0 var(--space-xs);
	font-size:var(--text-sm);
}


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


.chat-panel__send {
	appearance:none;
	background-color:var(--accent);
	color:var(--accent-ink);
	border:1px solid var(--accent);
	min-height:38px;
	padding:0 var(--space-sm);
	font-family:var(--paco-88d);
	font-size:var(--text-xs);
	font-weight:700;
	text-transform:uppercase;
	cursor:pointer;
	transition:background-color var(--dur-fast) var(--ease-out-quad);
}


.chat-panel__send:hover {
	background-color:#D1B272;
}


.chat-panel__send:active {
	background-color:#A88849;
}


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