.site-header {
	position:relative;
	width:100%;
	background-color:var(--ground) !important;
	border-bottom:1px solid var(--line);
	z-index:100;
	transition:padding var(--duration-base) var(--ease-ledger), background-color var(--duration-base) ease;
}

.utility-bar {
	display:none;
	font-family:var(--wube-883);
	font-size:var(--text-xs);
	color:var(--ink-soft);
	background-color:var(--surface);
	border-bottom:1px solid var(--line);
	padding:0.35rem 0;
	letter-spacing:var(--tracking-wide);
}

@media (min-width: 1120px) {
	.utility-bar {
		display:block;
	}
}

.utility-bar__inner {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:var(--space-md);
}

.utility-bar__group {
	display:flex;
	align-items:center;
	gap:var(--space-md);
}

.utility-bar__item {
	display:inline-flex;
	align-items:center;
	gap:0.35rem;
	color:var(--ink-soft);
	text-decoration:none;
}

.utility-bar__item:hover {
	color:var(--accent);
}

.masthead-row {
	display:flex;
	align-items:center;
	justify-content:space-between;
	padding-top:var(--space-sm);
	padding-bottom:var(--space-sm);
	min-height:60px;
	gap:var(--space-md);
	position:relative;
	background-color:var(--ground);
}

@media (min-width: 1440px) {
	.masthead-row {
		display:flex;
		justify-content:space-between;
		align-items:center;
		gap:var(--space-md);
	}
}

.brand {

	display:inline-flex;
	align-items:center;
	text-decoration:none;
	max-width:40vw;
	flex-shrink:0;
}

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

.masthead-nav {
	display:none;
	align-items:center;
	gap:var(--space-md);
	min-width:0;
	flex:0 1 auto;
	justify-content:center;
}

@media (min-width: 1120px) {
	.masthead-nav {
		display:flex;
		flex:0 1 auto;

		min-width:0;
	}
}

@media (min-width: 1440px) {
	.nav-links {
		gap:clamp(0.25rem, 0.1rem + 0.2vw, 0.55rem);
	}
}

.nav-links {
	display:flex;
	align-items:center;
	flex-wrap:nowrap !important;
	list-style:none;
	gap:clamp(0.25rem, 0.1rem + 0.2vw, 0.55rem);
	padding:0;
	margin:0;
}

.nav-link {
	font-family:var(--wube-292);
	font-size:var(--text-sm);
	font-weight:500;
	color:var(--ink);
	background-color:var(--ground);
	text-decoration:none;
	padding:0.35rem 0.15rem;
	position:relative;
	letter-spacing:0.01em;
	white-space:nowrap !important;
	transition:color var(--duration-fast) ease;
}

.nav-link::after {
	content:"";
	position:absolute;
	bottom:0;
	left:0;
	width:100%;
	height:1px;
	background-color:var(--accent);
	transform:scaleX(0);
	transform-origin:right;
	transition:transform var(--duration-base) var(--ease-ledger);
}

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

.nav-link:hover::after {
	transform:scaleX(1);
	transform-origin:left;
}

.nav-link[aria-current='page'] {
	color:#7a2e0f !important;
	font-weight:700;
}

.nav-link[aria-current='page']::after {
	transform:scaleX(1);
}

.masthead-actions {
	display:none;
	align-items:center;
	gap:var(--space-sm);
	flex-shrink:0;
}

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

.nav-toggle {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	appearance:none;
	background:none;
	border:1px solid var(--line);
	padding:0.5rem 0.75rem;
	border-radius:var(--radius-xs);

	color:var(--ink);
	cursor:pointer;
	font-size:var(--text-sm);
	gap:0.35rem;
	transition:background-color var(--duration-fast) ease, border-color var(--duration-fast) ease, color var(--duration-fast) ease;
}

.nav-toggle:hover {
	background-color:var(--surface);
	border-color:var(--ink-soft);
	color:var(--accent);
}

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

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

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

.scroll-spine {
	display:none;
}

@media (min-width: 980px) {
	.scroll-spine {
		display:block;
		position:fixed;
		top:0;
		left:0;
		bottom:0;
		width:3px;
		background-color:rgba(167, 156, 138, 0.25);
		z-index:90;
		pointer-events:auto;
	}

	.scroll-spine__fill {
		width:100%;
		height:0%;
		background-color:var(--accent);
		transition:height 80ms linear;
	}

	.scroll-spine__markers {
		position:absolute;
		top:0;
		left:0;
		width:100%;
		height:100%;
		display:flex;
		flex-direction:column;
		justify-content:space-between;
		pointer-events:none;
	}

	.scroll-spine__mark {
		width:7px;
		height:7px;
		margin-left:max(-2px, calc(50% - 50vw));
		border-radius:50%;
		background-color:var(--line);
		border:1px solid var(--ground);
		pointer-events:auto;
		cursor:pointer;
		transition:transform var(--duration-fast) ease, background-color var(--duration-fast) ease;
	}

	.scroll-spine__mark:hover,
	.scroll-spine__mark.is-active {
		background-color:var(--accent);
		transform:scale(1.4);
	}
}

.mobile-dock {
	position:fixed;
	inset:auto 0 0 0;
	height:var(--dock-height);
	background-color:var(--ground);
	border-top:1px solid var(--line);
	z-index:1000;
	display:flex;
	align-items:stretch;
	padding-bottom:env(safe-area-inset-bottom, 0px);
	box-shadow:0 -2px 10px rgba(44, 40, 33, 0.08);
}

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

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

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

.mobile-dock__link,
.mobile-dock__button {
	appearance:none;
	background:none;
	border:0;
	font:inherit;
	color:var(--ink-soft);
	text-decoration:none;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	width:100%;
	height:100%;
	padding:0.25rem 0.15rem;
	min-height:44px;
	cursor:pointer;
	transition:color var(--duration-fast) ease, background-color var(--duration-fast) ease;
}

.mobile-dock__link:hover,
.mobile-dock__button:hover {
	color:var(--accent);
	background-color:rgba(218, 208, 191, 0.4);
}

.mobile-dock__link:active,
.mobile-dock__button:active {
	background-color:var(--surface-2);
}

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

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

.mobile-dock__icon {
	width:22px;
	height:22px;
	margin-bottom:2px;
}

.mobile-dock__label {
	font-size:11px;
	font-family:var(--wube-292);
	line-height:1;
	white-space:nowrap;
}

.nav-drawer {
	position:fixed;
	inset:0;
	background-color:rgba(44, 40, 33, 0.65);
	backdrop-filter:blur(4px);
	z-index:1100;
	opacity:0;
	visibility:hidden;
	transition:opacity var(--duration-base) ease, visibility var(--duration-base) ease;
}

.nav-drawer.is-open {
	opacity:1;
	visibility:visible;
}

.nav-drawer__panel {
	position:absolute;
	bottom:0;
	left:0;
	right:0;
	max-height:85vh;
	overflow-y:auto;
	background-color:var(--ground);
	border-top:2px solid var(--accent);
	padding:var(--space-lg) var(--container-pad) calc(var(--dock-height) + var(--space-md) + env(safe-area-inset-bottom, 0px));
	transform:translateY(100%);
	transition:transform var(--duration-base) var(--ease-ledger);
	box-shadow:var(--shadow-lift);
}

.nav-drawer.is-open .nav-drawer__panel {
	transform:translateY(0);
}

@media (min-width: 640px) {
	.nav-drawer__panel {
		top:0;
		right:0;
		left:auto;
		bottom:0;
		width:380px;
		max-height:100vh;
		border-top:0;
		border-left:2px solid var(--accent);
		padding:var(--space-xl) var(--space-lg);
		transform:translateX(100%);
	}

	.nav-drawer.is-open .nav-drawer__panel {
		transform:translateX(0);
	}
}

.nav-drawer__head {
	display:flex;
	align-items:center;
	justify-content:space-between;
	margin-bottom:var(--space-lg);
	padding-bottom:var(--space-sm);
	border-bottom:1px solid var(--line);
}

.nav-drawer__title {
	font-family:var(--wube-e5c);
	font-size:var(--text-lg);
	font-weight:600;
	margin:0;
}

.nav-drawer__close {
	appearance:none;
	background:none;
	border:1px solid var(--line);
	padding:0.4rem 0.6rem;
	border-radius:var(--radius-xs);
	cursor:pointer;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:44px;
	min-width:44px;
	color:var(--ink);
	transition:background-color var(--duration-fast) ease, border-color var(--duration-fast) ease, color var(--duration-fast) ease;
}

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

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

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

.nav-drawer__list {
	list-style:none;
	padding:0;
	margin:0 0 var(--space-xl) 0;
}

.nav-drawer__link {
	display:block;
	font-family:var(--wube-e5c);
	font-size:var(--text-md);
	font-weight:500;
	color:var(--ink);
	text-decoration:none;
	padding:var(--space-xs) 0;
	border-bottom:1px solid rgba(167, 156, 138, 0.4);
	transition:color var(--duration-fast) ease, padding-left var(--duration-fast) ease;
}

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

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

.nav-drawer__meta {
	font-family:var(--wube-883);
	font-size:var(--text-xs);
	color:var(--ink-soft);
	line-height:1.5;
	border-top:1px solid var(--line);
	padding-top:var(--space-md);
}

.btn {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:0.5rem;
	font-family:var(--wube-292);
	font-size:var(--text-base);
	font-weight:600;
	letter-spacing:0.02em;
	padding:0.65rem 1.4rem;
	height:48px;
	min-height:48px;
	max-width:100%;
	border-radius:var(--radius-xs);
	text-decoration:none;
	cursor:pointer;
	border:1px solid transparent;
	white-space:normal;
	text-align:center;
	transition:background-color var(--duration-fast) ease, color var(--duration-fast) ease, border-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease, transform var(--duration-fast) ease;
}

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

.btn--primary {
	background-color:var(--accent) !important;
	color:#ffffff !important;
	border-color:var(--accent) !important;
	box-shadow:var(--shadow-subtle);
}

.btn--primary:hover {
	background-color:#722e10 !important;
	border-color:#722e10 !important;
	color:#ffffff !important;
	box-shadow:var(--shadow-card);
	transform:translateY(-1px);
}

.btn--primary:active {
	background-color:#58230c !important;
	border-color:#58230c !important;
	transform:translateY(1px);
	box-shadow:0 1px 2px rgba(44, 40, 33, 0.2);
}

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

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

.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 {
	border-color:var(--accent);
	color:var(--accent);
	background-color:rgba(181, 84, 43, 0.06);
}

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

.btn--sm {
	padding:0.4rem 0.9rem;
	font-size:var(--text-sm);
	height:48px;
	min-height:48px;
}

.btn--lg {
	padding:0.85rem 1.8rem;
	font-size:var(--text-md);
	height:48px;
	min-height:48px;
}

.form-group {
	margin-bottom:var(--space-md);
	position:relative;
}

.form-label {
	display:block;
	font-family:var(--wube-292);
	font-size:var(--text-sm);
	font-weight:600;
	color:var(--ink);
	margin-bottom:var(--space-2xs);
	letter-spacing:0.01em;
}

.form-label small {
	font-weight:400;
	color:var(--ink-soft);
}

.form-control,
.form-select {
	width:100%;
	appearance:none;
	background-color:#f3ece1;
	border:1px solid var(--line);
	border-radius:var(--radius-xs);
	padding:0.65rem 0.9rem;
	color:var(--ink);
	font-family:var(--wube-292);
	font-size:var(--text-base);
	line-height:var(--leading-normal);
	height:48px;
	min-height:48px;
	box-shadow:var(--shadow-subtle);
	transition:border-color var(--duration-fast) ease, background-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease;
}

.form-textarea {
	width:100%;
	appearance:none;
	background-color:#f3ece1;
	border:1px solid var(--line);
	border-radius:var(--radius-xs);
	padding:0.65rem 0.9rem;
	color:var(--ink);
	font-family:var(--wube-292);
	font-size:var(--text-base);
	line-height:var(--leading-normal);
	box-shadow:var(--shadow-subtle);
	transition:border-color var(--duration-fast) ease, background-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease;
}

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

.form-control:focus,
.form-select:focus,
.form-textarea:focus {
	outline:none;
	border-color:var(--accent);
	background-color:#faf6ef;
	box-shadow:0 0 0 3px rgba(181, 84, 43, 0.18);
}

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

.form-check {
	display:flex;
	align-items:flex-start;
	gap:0.65rem;
	margin-top:var(--space-sm);
	margin-bottom:var(--space-sm);
}

.form-check__input {
	appearance:none;
	width:20px;
	height:20px;
	margin-top:3px;
	border:1px solid var(--line);
	border-radius:var(--radius-xs);
	background-color:#f3ece1;
	cursor:pointer;
	flex-shrink:0;
	display:grid;
	place-content:center;
	transition:border-color var(--duration-fast) ease, background-color var(--duration-fast) ease;
}

.form-check__input::before {
	content:"";
	width:10px;
	height:10px;
	transform:scale(0);
	transition:transform var(--duration-fast) ease;
	background-color:var(--accent);
}

.form-check__input:checked {
	border-color:var(--accent);
	background-color:#faf6ef;
}

.form-check__input:checked::before {
	transform:scale(1);
}

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

.form-check__label {
	font-size:var(--text-sm);
	line-height:var(--leading-snug);
	color:var(--ink);
	cursor:pointer;
}

.form-error {
	display:block;
	font-size:var(--text-xs);
	font-family:var(--wube-883);
	color:#8c2a10;
	margin-top:0.35rem;
	min-height:1.2em;
}

.is-invalid {
	border-color:#8c2a10 !important;
	background-color:#f8ece8 !important;
}

.is-valid {
	border-color:#4a6b48 !important;
}

.form-status {
	padding:var(--space-md);
	border:1px solid var(--line);
	background-color:var(--surface);
	border-radius:var(--radius-xs);
	margin-top:var(--space-md);
	display:none;
}

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

.form-status--success {
	border-color:#4a6b48;
	background-color:#e6efe6;
	color:#244123;
}

.form-status--error {
	border-color:#8c2a10;
	background-color:#f8ece8;
	color:#631b08;
}

.inset-panel {
	border:1px solid var(--line);
	background-color:var(--surface);
	padding:var(--space-md);
	margin:var(--space-lg) 0;
	position:relative;
}

.inset-panel::before {
	content:"";
	position:absolute;
	top:0;
	left:0;
	right:0;
	height:2px;
	background-color:var(--accent);
}

.inset-panel__title {
	font-family:var(--wube-e5c);
	font-size:var(--text-md);
	font-weight:600;
	margin-top:0;
	margin-bottom:var(--space-xs);
	color:var(--ink);
}

.spec-table {
	width:100%;
	border-collapse:collapse;
	font-size:var(--text-sm);
	margin:var(--space-md) 0;
	font-variant-numeric:tabular-nums;
}

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

.spec-table th {
	font-family:var(--wube-e5c);
	font-weight:600;
	color:var(--ink);
	background-color:rgba(167, 156, 138, 0.15);
	letter-spacing:0.02em;
}

.spec-table tr:hover td {
	background-color:rgba(218, 208, 191, 0.35);
}

.cookie-banner {
	position:fixed;
	inset:auto 0 0 0;
	top:auto;
	bottom:0;
	background-color:var(--surface);
	border-top:2px solid var(--accent);
	box-shadow:var(--shadow-lift);
	z-index:1200;
	padding:0.75rem var(--container-pad);
	font-size:var(--text-sm);
	line-height:var(--leading-snug);
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:var(--space-md);
	max-height:22vh;
	box-sizing:border-box;
}

@media (max-width: 768px) {
	.cookie-banner {
		flex-direction:column;
		align-items:stretch;
		padding-bottom:calc(var(--dock-height) + 0.5rem + env(safe-area-inset-bottom, 0px));
		max-height:35vh;
	}
}

.cookie-banner.is-dismissed {
	display:none !important;
}

.cookie-banner__text {
	max-width:68ch;
	margin:0;
	font-size:var(--text-sm);
	color:var(--ink);
}

.cookie-banner__text a {
	color:var(--ink);
	font-weight:600;
}

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

.cookie-banner__actions .btn {
	height:48px;
	min-height:48px;
}

.chat-launcher {
	position:fixed;
	right:1.25rem;
	bottom:calc(var(--dock-height) + 1rem);
	z-index:950;
	appearance:none;
	background-color:var(--surface);
	color:var(--ink);
	border:1px solid var(--line);
	border-radius:var(--radius-sm);
	padding:0.6rem 0.9rem;
	display:inline-flex;
	align-items:center;
	gap:0.5rem;
	font-family:var(--wube-292);
	font-size:var(--text-sm);
	font-weight:600;
	min-height:44px;
	cursor:pointer;
	box-shadow:var(--shadow-card);
	transition:background-color var(--duration-fast) ease, border-color var(--duration-fast) ease, transform var(--duration-fast) ease, color var(--duration-fast) ease;
}

@media (max-width: 1023px) {
	body:has(.cookie-banner:not(.is-dismissed)) .chat-launcher {
		display:none;
	}
}

@media (min-width: 980px) {
	.chat-launcher {
		bottom:1.5rem;
		right:1.5rem;
	}
}

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

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

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

.chat-launcher__badge {
	display:inline-grid;
	place-content:center;
	min-width:1.25rem;
	height:1.25rem;
	padding:0 0.3rem;
	background-color:var(--accent);
	color:var(--accent-ink);
	border-radius:999px;
	font-family:var(--wube-883);
	font-size:0.75rem;
	font-weight:600;
	line-height:1;
}

.chat-launcher__badge:empty {
	display:none;
}

.chat-panel {
	position:fixed;
	right:1rem;
	bottom:calc(var(--dock-height) + 1rem);
	width:calc(100vw - 2rem);
	max-width:380px;
	height:520px;
	max-height:calc(100vh - var(--dock-height) - 3rem);
	background-color:var(--ground);
	border:1px solid var(--line);
	border-top:3px solid var(--accent);
	border-radius:var(--radius-sm);
	box-shadow:var(--shadow-lift);
	z-index:1050;
	display:flex;
	flex-direction:column;
	opacity:0;
	visibility:hidden;
	transform:translateY(12px);
	transition:opacity var(--duration-base) ease, transform var(--duration-base) var(--ease-ledger), visibility var(--duration-base) ease;
}

@media (min-width: 980px) {
	.chat-panel {
		bottom:4.5rem;
		right:1.5rem;
		max-height:calc(100vh - 6rem);
	}
}

.chat-panel.is-open {
	opacity:1;
	visibility:visible;
	transform:translateY(0);
}

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

.chat-panel__title {
	font-family:var(--wube-e5c);
	font-size:var(--text-base);
	font-weight:600;
	margin:0;
}

.chat-panel__close {
	appearance:none;
	background:none;
	border:0;
	padding:0.3rem;
	cursor:pointer;
	color:var(--ink-soft);
	min-height:36px;
	min-width:36px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	border-radius:var(--radius-xs);
	transition:color var(--duration-fast) ease, background-color var(--duration-fast) ease;
}

.chat-panel__close:hover {
	color:var(--accent);
	background-color:rgba(167, 156, 138, 0.2);
}

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

.chat-panel__body {
	flex:1 1 auto;
	overflow-y:auto;
	padding:1rem;
	display:flex;
	flex-direction:column;
	gap:0.75rem;
	background-color:#ece3d4;
}

.chat-msg {
	max-width:85%;
	padding:0.65rem 0.85rem;
	border-radius:var(--radius-sm);
	font-size:var(--text-sm);
	line-height:var(--leading-snug);
	word-break:break-word;
}

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

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

.chat-input-row {
	display:flex;
	gap:0.5rem;
}

.chat-input {
	flex:1 1 auto;
	background-color:#faf6ef;
	border:1px solid var(--line);
	border-radius:var(--radius-xs);
	padding:0.5rem 0.75rem;
	font-size:var(--text-sm);
	min-height:40px;
}

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

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

.site-footer__grid {
	display:grid;
	grid-template-columns:1fr;
	gap:var(--space-xl);
	margin-bottom:var(--space-xl);
}

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

.site-footer__brand-col p {
	font-size:var(--text-sm);
	color:var(--ink-soft);
	max-width:42ch;
	margin-top:var(--space-sm);
	line-height:var(--leading-snug);
}

.site-footer__heading {
	font-family:var(--wube-e5c);
	font-size:var(--text-base);
	font-weight:600;
	margin-top:0;
	margin-bottom:var(--space-sm);
	color:var(--ink);
}

.site-footer__list {
	list-style:none;
	padding:0;
	margin:0;
}

.site-footer__item {
	margin-bottom:0.4rem;
}

.site-footer__link {
	font-size:var(--text-sm);
	color:var(--ink);
	text-decoration:none;
	display:inline-block;
	padding:0.15rem 0;
	transition:color var(--duration-fast) ease, transform var(--duration-fast) ease;
}

.site-footer__link:hover {
	color:var(--accent);
	transform:translateX(2px);
}

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

.site-footer__legal-row {
	border-top:1px solid var(--line);
	padding-top:var(--space-lg);
	font-family:var(--wube-883);
	font-size:var(--text-xs);
	color:var(--ink-soft);
	display:flex;
	flex-direction:column;
	gap:var(--space-sm);
	line-height:1.6;
}

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

.site-footer__legal-links {
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:var(--space-sm) var(--space-md);
	list-style:none;
	padding:0;
	margin:0;
}

.site-footer__legal-link {
	color:var(--ink-soft);
	text-decoration:underline;
	text-underline-offset:2px;
	display:inline-flex;
	align-items:center;
	min-height:44px;
	padding:0.5rem 0.25rem;
}

.site-footer__legal-link:hover {
	color:var(--accent);
}

.site-footer__btn-reset {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	appearance:none;
	background:none;
	border:1px solid var(--line);
	border-radius:var(--radius-xs);
	padding:0.5rem 1rem;
	height:48px;
	min-height:48px;
	box-sizing:border-box;
	font-family:var(--wube-292);
	font-size:var(--text-sm);
	font-weight:600;
	color:var(--ink);
	text-decoration:none;
	box-shadow:var(--shadow-subtle);
	cursor:pointer;
	transition:background-color var(--duration-fast) ease, border-color var(--duration-fast) ease, color var(--duration-fast) ease;
}

.site-footer__btn-reset:hover {
	color:var(--accent);
}

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