@charset 'UTF-8';

.site-header {
	position:sticky;
	top:0;
	left:0;
	width:100%;
	z-index:1000;
	background-color:rgba(13, 11, 12, 0.88);
	border-bottom:1px solid var(--hairline);
	backdrop-filter:blur(12px);
	-webkit-backdrop-filter:blur(12px);
	transition:background-color var(--dur-fast) var(--ease-standard),
							border-color var(--dur-fast) var(--ease-standard),
							padding var(--dur-fast) var(--ease-standard);
}

.site-header.is-condensed {
	background-color:rgba(13, 11, 12, 0.96);
	border-bottom-color:rgba(197, 160, 89, 0.35);
}

.header-inner {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:var(--space-md);
	min-height:4.5rem;
	padding-top:var(--space-xs);
	padding-bottom:var(--space-xs);
	transition:min-height var(--dur-fast) var(--ease-standard);
}

.site-header.is-condensed .header-inner { min-height:3.75rem; }

.brand-link {
	display:inline-flex;
	align-items:center;
	flex-shrink:0;
	padding:var(--space-2xs) 0;
	transition:opacity var(--dur-fast) var(--ease-standard);
}

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

.brand-link:active { opacity:0.75; }

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

.brand-logo {
	height:2.15rem;
	width:auto;
	display:block;
}

.site-header.is-condensed .brand-logo { height:1.85rem; }

.nav-desktop {
	display:flex;
	align-items:center;
	gap:var(--space-lg);
}

.nav-list {
	display:flex;
	align-items:center;
	gap:clamp(1rem, 1.8vw, 2.25rem);
}

.nav-item { position:relative; }

.nav-link {
	font-family:var(--milu-80f);
	font-size:var(--type-body-sm);
	font-weight:500;
	letter-spacing:0.08em;
	text-transform:uppercase;
	color:var(--ink-secondary);
	padding:var(--space-2xs) 0;
	display:inline-block;
	position:relative;
	transition:color var(--dur-fast) var(--ease-standard);
}

.nav-link::after {
	content:"";
	position:absolute;
	bottom:0;
	left:0;
	width:0;
	height:1px;
	background-color:var(--brass);
	transition:width var(--dur-fast) var(--ease-standard);
}

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

.nav-link:hover::after { width:100%; }

.nav-link:active { color:var(--brass-bright); }

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

.nav-link[aria-current='page'] { color:var(--brass); }

.nav-link[aria-current='page']::after { width:100%; }

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

.nav-toggle {
	display:none;
	background:transparent;
	border:1px solid var(--hairline);
	color:var(--ink);
	min-height:44px;

	min-width:44px;
	padding:0.65rem;
	align-items:center;
	justify-content:center;
	border-radius:var(--radius-xs);
	cursor:pointer;
	transition:background-color var(--dur-fast) var(--ease-standard),
							border-color var(--dur-fast) var(--ease-standard),
							color var(--dur-fast) var(--ease-standard);
}

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

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

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

.nav-toggle .icon-close { display:none; }

.nav-toggle[aria-expanded='true'] .icon-menu { display:none; }

.nav-toggle[aria-expanded='true'] .icon-close { display:block; }

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

	.nav-panel {
		position:fixed;
		top:4.5rem;
		left:0;
		right:0;
		bottom:0;
		background-color:rgba(13, 11, 12, 0.98);
		backdrop-filter:blur(16px);
		-webkit-backdrop-filter:blur(16px);
		padding:var(--space-lg) var(--gutter);
		overflow-y:auto;
		display:none;
		flex-direction:column;
		gap:var(--space-xl);
		border-top:1px solid var(--hairline);
	}

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

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

	.nav-link {
		font-size:var(--type-display-3);
		font-family:var(--milu-caf);
		padding:var(--space-xs) 0;
		width:100%;
		border-bottom:1px solid var(--hairline);
	}

	.header-actions .btn-header-cta { display:none; }
}

.btn {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:var(--space-xs);
	font-family:var(--milu-80f);
	font-size:var(--type-body-sm);
	font-weight:500;
	letter-spacing:0.08em;
	text-transform:uppercase;
	text-align:center;
	padding:0.85rem 1.65rem;
	min-height:44px;
	border-radius:var(--radius-xs);
	border:1px solid transparent;
	cursor:pointer;
	white-space:normal;
	word-break:normal;
	transition:background-color 160ms var(--ease-standard),
							border-color 160ms var(--ease-standard),
							color 160ms var(--ease-standard),
							transform 160ms var(--ease-standard),
							box-shadow 160ms var(--ease-standard);
}

.btn:hover { transform:translateY(-2px); }

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

.btn-primary {
	background-color:var(--garnet);
	border-color:var(--garnet);
	color:var(--ink);
	box-shadow:0 2px 12px var(--garnet-glow);
}

.btn-primary:hover {
	background-color:#a82f3f;

	border-color:#dfb96c;
	color:#ffffff;
	box-shadow:0 4px 18px rgba(192, 57, 75, 0.45);
}

.btn-primary:active {
	background-color:#8c2433;
	transform:translateY(1px);
}

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

.btn-brass {
	background-color:var(--brass);
	border-color:var(--brass);
	color:var(--ground);
	font-weight:600;
}

.btn-brass:hover {
	background-color:var(--brass-bright);
	border-color:#ffffff;
	color:#0d0b0c;
	box-shadow:0 4px 18px rgba(197, 160, 89, 0.5);
	transform:translateY(-2px);
}

.btn-brass:active {
	background-color:#b08d47;
	transform:translateY(1px);
}

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

}

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

.btn-secondary:hover {
	background-color:var(--surface-highlight);
	border-color:var(--brass-bright);
	color:#ffffff;
	box-shadow:0 4px 14px rgba(0, 0, 0, 0.4);
	transform:translateY(-2px);
}

.btn-secondary:active {
	background-color:var(--surface-elevated);
	transform:translateY(1px);
	box-shadow:0 1px 4px rgba(0, 0, 0, 0.5);
}

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

.btn-sm {
	padding:0.55rem 1.15rem;
	font-size:var(--type-body-xs);
	min-height:38px;
}

.btn-block { width:100%; }

.spec-ledger {
	width:100%;
	border-top:1px solid var(--hairline);
	margin-top:var(--space-lg);
	margin-bottom:var(--space-lg);
}

.spec-row {
	display:grid;
	grid-template-columns:minmax(130px, 200px) minmax(0, 1fr);
	align-items:baseline;
	gap:var(--space-md);
	padding:1.15rem 0;
	border-bottom:1px solid var(--hairline);
	min-width:0;
}

.spec-row:hover { background-color:rgba(255, 255, 255, 0.015); }

.spec-label {
	font-family:var(--milu-80f);
	font-size:var(--type-body-xs);
	font-weight:500;
	letter-spacing:0.1em;
	text-transform:uppercase;
	color:var(--ink-muted);
	word-break:break-word;
}

.spec-value {
	font-family:var(--milu-80f);
	font-size:var(--type-body);
	line-height:var(--line-snug);
	color:var(--ink);
	min-width:0;
	word-break:break-word;
}

.spec-value strong {
	color:var(--brass-bright);
	font-weight:600;
}

.spec-value .badge {
	display:inline-block;
	padding:0.18rem 0.55rem;
	font-size:var(--type-body-xs);
	border:1px solid var(--hairline-light);
	background-color:var(--surface);
	color:var(--ink-secondary);
	border-radius:var(--radius-xs);
	margin-right:0.35rem;
}

@media (max-width: 640px) {
	.spec-row {
		grid-template-columns:1fr;
		gap:var(--space-2xs);
		padding:0.95rem 0;
	}
}

.spec-table-wrap {
	width:100%;
	overflow-x:auto;
	border:1px solid var(--hairline);
	background-color:var(--surface);
	margin-top:var(--space-md);
	margin-bottom:var(--space-lg);
}

.spec-table {
	width:100%;
	table-layout:auto;
	font-size:var(--type-body-sm);
	text-align:left;
}

.spec-table th {
	font-family:var(--milu-80f);
	font-size:var(--type-body-xs);
	font-weight:600;
	letter-spacing:0.08em;
	text-transform:uppercase;
	color:var(--brass);
	background-color:var(--surface-elevated);
	padding:0.95rem 1.15rem;
	border-bottom:1px solid var(--hairline);
	white-space:normal;
}

.spec-table td {
	padding:0.95rem 1.15rem;
	border-bottom:1px solid var(--hairline);
	color:var(--ink-secondary);
	vertical-align:top;
	min-width:120px;
}

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

.spec-table tr:hover td {
	background-color:rgba(255, 255, 255, 0.02);
	color:var(--ink);
}

.form-group {
	display:flex;
	flex-direction:column;
	gap:var(--space-2xs);
	margin-bottom:var(--space-md);
	min-width:0;
}

.form-label {
	font-family:var(--milu-80f);
	font-size:var(--type-body-xs);
	font-weight:500;
	letter-spacing:0.08em;
	text-transform:uppercase;
	color:var(--ink-muted);
}

.form-label .optional-tag {
	color:var(--ink-tertiary);
	font-size:0.85em;
	text-transform:none;
	letter-spacing:normal;
}

.form-control {
	width:100%;
	min-height:44px;
	background-color:var(--surface);
	border:1px solid var(--hairline);
	border-radius:var(--radius-xs);
	padding:0.75rem 1rem;
	color:var(--ink);
	font-family:var(--milu-80f);
	font-size:var(--type-body);
	transition:border-color var(--dur-fast) var(--ease-standard),
							background-color var(--dur-fast) var(--ease-standard);
}

.form-control:hover { border-color:var(--hairline-light); }

.form-control:focus {
	outline:none;
	border-color:var(--brass);
	background-color:var(--surface-elevated);
}

.form-control.is-invalid {
	border-color:var(--garnet) !important;
	background-color:rgba(192, 57, 75, 0.06);
}

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

.form-feedback {
	font-size:var(--type-body-xs);
	color:var(--garnet);
	display:none;
	line-height:var(--line-snug);
	margin-top:0.2rem;
}

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

.form-checkbox-label {
	display:grid;
	grid-template-columns:20px 1fr;
	gap:var(--space-sm);
	align-items:flex-start;
	font-size:var(--type-body-sm);
	color:var(--ink-secondary);
	cursor:pointer;
	user-select:none;
}

.form-checkbox-label input[type='checkbox'] {
	width:18px;
	height:18px;
	margin-top:3px;
	accent-color:var(--brass);
	cursor:pointer;
}

.form-status-box {
	padding:1rem 1.25rem;
	border-radius:var(--radius-xs);
	border:1px solid var(--hairline);
	margin-bottom:var(--space-md);
	display:none;
	font-size:var(--type-body-sm);
}

.form-status-box.is-success {
	display:block;
	background-color:rgba(197, 160, 89, 0.12);
	border-color:var(--brass);
	color:var(--ink);
}

.form-status-box.is-error {
	display:block;
	background-color:rgba(192, 57, 75, 0.15);
	border-color:var(--garnet);
	color:var(--ink);
}

.cookie-bar {
	position:fixed;
	bottom:0;
	left:0;
	right:0;
	z-index:950;
	background-color:rgba(13, 11, 12, 0.96);
	border-top:1px solid var(--hairline-brass);
	padding:0.85rem var(--gutter);
	backdrop-filter:blur(14px);
	-webkit-backdrop-filter:blur(14px);
	box-shadow:0 -4px 20px rgba(0, 0, 0, 0.6);
	display:none;
}

.cookie-bar.is-visible { display:block; }

.cookie-bar-inner {
	max-width:var(--shell-max);
	margin-left:auto;
	margin-right:auto;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:var(--space-md);
	flex-wrap:wrap;
}

.cookie-bar-text {
	font-size:var(--type-body-xs);
	line-height:var(--line-snug);
	color:var(--ink-secondary);
	max-width:64ch;
	margin:0;
}

.cookie-bar-text a {
	color:var(--brass-bright);
	text-decoration:underline;
	text-underline-offset:3px;
}

.cookie-bar-text a:hover { color:var(--ink); }

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

.cookie-bar-actions .btn {
	min-height:38px;
	padding:0.45rem 1.05rem;
	font-size:var(--type-body-xs);
}

.chat-launcher {
	position:fixed;
	bottom:1.5rem;
	right:1.5rem;
	z-index:900;
	min-height:48px;
	min-width:48px;
	padding:0.75rem 1.15rem;
	border-radius:var(--radius-xs);
	background-color:var(--surface-elevated);
	border:1px solid var(--brass);
	color:var(--ink);
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:var(--space-xs);
	cursor:pointer;
	box-shadow:0 4px 18px rgba(0, 0, 0, 0.5);
	font-family:var(--milu-80f);
	font-size:var(--type-body-xs);
	font-weight:600;
	letter-spacing:0.08em;
	text-transform:uppercase;
	transition:transform var(--dur-fast) var(--ease-standard),
							background-color var(--dur-fast) var(--ease-standard),
							border-color var(--dur-fast) var(--ease-standard),
							bottom var(--dur-fast) var(--ease-standard);
}

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

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

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

.chat-launcher .badge-unread {
	background-color:var(--garnet);
	color:#fff;
	font-size:0.7rem;
	padding:0.1rem 0.45rem;
	border-radius:var(--radius-xs);
	display:none;
}

.chat-launcher .badge-unread.is-visible { display:inline-block; }

body.has-cookie-banner .chat-launcher { bottom:5.5rem; }

@media (max-width: 640px) {
	.chat-launcher {
		bottom:1rem;
		right:1rem;
		padding:0.65rem 0.95rem;
	}
	body.has-cookie-banner .chat-launcher { bottom:6rem; }
}

.chat-panel {
	position:fixed;
	bottom:5rem;
	right:1.5rem;
	width:clamp(300px, 92vw, 390px);
	height:clamp(420px, 75vh, 560px);
	background-color:var(--surface);
	border:1px solid var(--hairline-brass);
	border-radius:var(--radius-xs);
	box-shadow:0 12px 36px rgba(0, 0, 0, 0.7);
	z-index:920;
	display:none;
	flex-direction:column;
	overflow:hidden;
}

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

.chat-header {
	padding:0.95rem 1.15rem;
	background-color:var(--surface-elevated);
	border-bottom:1px solid var(--hairline);
	display:flex;
	align-items:center;
	justify-content:space-between;
}

.chat-header-title {
	font-family:var(--milu-caf);
	font-size:var(--type-body);
	letter-spacing:0.06em;
	color:var(--ink);
	margin:0;
}

.chat-header-close {
	background:transparent;
	border:none;
	color:var(--ink-muted);
	cursor:pointer;
	padding:0.35rem;
	min-height:36px;
	min-width:36px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	transition:color var(--dur-fast) var(--ease-standard);
}

.chat-header-close:hover { color:var(--ink); }

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

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

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

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

.chat-msg-user {
	align-self:flex-end;
	background-color:var(--garnet-subtle);
	border:1px solid rgba(192, 57, 75, 0.45);
	color:var(--ink);
}

.chat-msg-time {
	display:block;
	font-size:0.7em;
	color:var(--ink-tertiary);
	margin-top:0.25rem;
	text-align:right;
}

.chat-auth-stage {
	padding:1rem;
	background-color:var(--surface);
	border-top:1px solid var(--hairline);
	display:flex;
	flex-direction:column;
	gap:var(--space-xs);
}

.chat-auth-stage p {
	font-size:var(--type-body-xs);
	color:var(--ink-muted);
	margin-bottom:0.25rem;
}

.chat-auth-stage input {
	min-height:38px;
	padding:0.45rem 0.75rem;
	font-size:var(--type-body-sm);
}

.chat-input-stage {
	padding:0.75rem 1rem;
	background-color:var(--surface-elevated);
	border-top:1px solid var(--hairline);
	display:flex;
	gap:var(--space-2xs);
}

.chat-input-stage textarea {
	flex:1;
	min-height:42px;
	max-height:90px;
	resize:none;
	padding:0.55rem 0.75rem;
	font-size:var(--type-body-sm);
	background-color:var(--surface);
	border:1px solid var(--hairline);
	color:var(--ink);
	border-radius:var(--radius-xs);
}

.chat-input-stage textarea:focus {
	outline:none;
	border-color:var(--brass);
}

.chat-input-stage button {
	min-height:42px;
	padding:0 1rem;
}

@media (max-width: 640px) {
	.chat-panel {
		bottom:0;
		right:0;
		left:0;
		width:100%;
		height:80vh;
		border-radius:var(--radius-none);
		border-bottom:none;
	}
}

.site-footer {
	background-color:#080607;
	border-top:1px solid var(--hairline);
	margin-top:auto;
	padding-top:var(--space-2xl);
	padding-bottom:var(--space-xl);
	font-size:var(--type-body-sm);
}

.footer-top {
	display:grid;
	grid-template-columns:minmax(240px, 360px) 1fr;
	gap:var(--space-2xl);
	padding-bottom:var(--space-2xl);
	border-bottom:1px solid var(--hairline);
}

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

.footer-logo {
	height:2.5rem;
	width:auto;
	align-self:flex-start;
}

.footer-descriptor {
	font-size:var(--type-body-sm);
	color:var(--ink-muted);
	line-height:var(--line-snug);
}

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

.footer-col-title {
	font-family:var(--milu-80f);
	font-size:var(--type-body-xs);
	font-weight:600;
	letter-spacing:0.12em;
	text-transform:uppercase;
	color:var(--brass);
	margin-bottom:var(--space-sm);
}

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

.footer-col-list a {
	color:var(--ink-secondary);
	font-size:var(--type-body-sm);
	line-height:1.8;
	transition:color var(--dur-fast) var(--ease-standard);
}

.footer-col-list a:hover { color:var(--brass-bright); }

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

.footer-ledger {
	padding-top:var(--space-xl);
	padding-bottom:var(--space-xl);
	border-bottom:1px solid var(--hairline);
	display:flex;
	flex-direction:column;
	gap:var(--space-xs);
}

.footer-ledger-row {
	display:grid;
	grid-template-columns:minmax(180px, 240px) 1fr;
	gap:var(--space-md);
	font-size:var(--type-body-xs);
	line-height:var(--line-snug);
	padding:0.35rem 0;
	border-bottom:1px dotted rgba(58, 45, 51, 0.7);
}

.footer-ledger-row:last-child { border-bottom:none; }

.footer-ledger-label {
	color:var(--ink-muted);
	text-transform:uppercase;
	letter-spacing:0.08em;
}

.footer-ledger-value { color:var(--ink-secondary); }

.footer-ledger-value a {
	color:var(--ink);
	text-decoration:underline;
	text-underline-offset:2px;
}

.footer-ledger-value a:hover { color:var(--brass-bright); }

.footer-bottom {
	padding-top:var(--space-lg);
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:var(--space-md);
	flex-wrap:wrap;
	font-size:var(--type-body-xs);
	color:var(--ink-muted);
}

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

.footer-legal-links a {
	color:var(--ink-muted);
	transition:color var(--dur-fast) var(--ease-standard);
}

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

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

.btn-cookie-reopen {
	background:var(--surface);
	border:1px solid var(--hairline-light);
	color:var(--ink-secondary);
	padding:0.35rem 0.75rem;
	font-size:var(--type-body-xs);
	border-radius:var(--radius-xs);
	cursor:pointer;
	transition:color 160ms var(--ease-standard),
							border-color 160ms var(--ease-standard),
							background-color 160ms var(--ease-standard),
							transform 160ms var(--ease-standard);
}

.btn-cookie-reopen:hover {
	color:#ffffff;
	border-color:var(--brass-bright);
	background-color:var(--surface-highlight);
	transform:translateY(-1px);
}

.btn-cookie-reopen:active {
	background-color:var(--surface-elevated);
	transform:translateY(1px);
}

.btn-cookie-reopen:focus-visible { outline:2px solid var(--brass); }

@media (max-width: 840px) {
	.footer-top {
		grid-template-columns:1fr;
		gap:var(--space-xl);
	}
	.footer-ledger-row {
		grid-template-columns:1fr;
		gap:0.2rem;
	}
}
