/* Shared by /texts/, /privacy/ and /terms/. Colors follow index.html. */
:root {
	--bg: #ffffff;
	--surface: #f7f8fa;
	--text: #222222;
	--muted: #4a4a4a;
	--link: #1a5ca8;
	--brand: #1a5ca8;
	--brand-dark: #134a8a;
	--accent: #e8a832;
	--border: #c9ced6;
	--error: #b3261e;
	--error-bg: #fdecea;
	--focus: #134a8a;
	--footer-bg: #0e2f54;
	--footer-text: #e3e9f0;
	--footer-link: #ffffff;
}
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) {
		--bg: #0f1722;
		--surface: #182231;
		--text: #e8edf3;
		--muted: #c3ccd7;
		--link: #9cc8ff;
		--brand: #9cc8ff;
		--brand-dark: #2b5f9e;
		--border: #3a4757;
		--error: #ffb4ab;
		--error-bg: #3b1714;
		--focus: #ffd27a;
		--footer-bg: #0a1018;
	}
}
:root[data-theme="dark"] {
	--bg: #0f1722;
	--surface: #182231;
	--text: #e8edf3;
	--muted: #c3ccd7;
	--link: #9cc8ff;
	--brand: #9cc8ff;
	--brand-dark: #2b5f9e;
	--border: #3a4757;
	--error: #ffb4ab;
	--error-bg: #3b1714;
	--focus: #ffd27a;
	--footer-bg: #0a1018;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	background: var(--bg);
	color: var(--text);
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
	font-size: 1.0625rem;
	line-height: 1.6;
}
a { color: var(--link); text-underline-offset: 0.15em; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }

.skip-link {
	position: absolute;
	left: 1rem;
	top: -4rem;
	background: var(--bg);
	color: var(--link);
	padding: 0.5rem 1rem;
	border: 2px solid var(--focus);
	z-index: 10;
}
.skip-link:focus { top: 1rem; }

.site-header {
	border-bottom: 3px solid var(--accent);
	background: var(--bg);
}
.site-header .inner {
	max-width: 46rem;
	margin: 0 auto;
	padding: 0.75rem 1rem;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem 1.5rem;
}
.site-header img { height: 64px; width: auto; display: block; }
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .site-header img { background: #fff; border-radius: 6px; padding: 4px; }
}
:root[data-theme="dark"] .site-header img { background: #fff; border-radius: 6px; padding: 4px; }
.site-header ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.25rem 1.25rem; }
.site-header nav a { font-weight: 500; }
.site-header nav a[aria-current="page"] { font-weight: 700; text-decoration-thickness: 2px; }

main {
	max-width: 46rem;
	margin: 0 auto;
	padding: 2rem 1rem 3rem;
}
h1 { font-size: 2rem; line-height: 1.2; color: var(--brand); margin: 0 0 1rem; }
h2 { font-size: 1.35rem; line-height: 1.3; color: var(--brand); margin: 2.25rem 0 0.5rem; }
.lead { font-size: 1.15rem; color: var(--muted); }
.revised { color: var(--muted); font-size: 0.95rem; }
li + li { margin-top: 0.4rem; }

/* Form */
.signup {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: 8px;
	padding: 1.25rem;
	margin-top: 1rem;
}
.field { margin-bottom: 1.25rem; }
.field label { display: block; font-weight: 600; }
.hint { display: block; color: var(--muted); font-size: 0.95rem; margin-top: 0.1rem; }
.field input[type="text"], .field input[type="tel"] {
	display: block;
	width: 100%;
	max-width: 22rem;
	margin-top: 0.35rem;
	padding: 0.6rem 0.7rem;
	font: inherit;
	color: var(--text);
	background: var(--bg);
	border: 2px solid var(--muted);
	border-radius: 4px;
}
.check { display: grid; grid-template-columns: auto 1fr; gap: 0.75rem; align-items: start; }
.check input { width: 1.5rem; height: 1.5rem; margin: 0.15rem 0 0; accent-color: var(--brand-dark); }
.check label { font-weight: 600; }
.consent-terms { margin: 0 0 0.5rem; color: var(--muted); font-size: 0.95rem; }
.error-message { display: block; color: var(--error); font-weight: 600; margin-top: 0.25rem; }
[aria-invalid="true"] { border-color: var(--error) !important; }
.error-summary {
	border: 3px solid var(--error);
	background: var(--error-bg);
	border-radius: 6px;
	padding: 1rem 1.25rem;
	margin-bottom: 1.25rem;
}
.error-summary h3 { margin: 0 0 0.5rem; font-size: 1.15rem; color: var(--error); }
.error-summary ul { margin: 0; padding-left: 1.25rem; }
.error-summary a { color: var(--error); font-weight: 600; }
button {
	font: inherit;
	font-weight: 700;
	color: #fff;
	background: var(--brand-dark);
	border: 2px solid transparent;
	border-radius: 6px;
	padding: 0.7rem 1.4rem;
	cursor: pointer;
}
button:hover { background: #0e3a6e; }
.trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

.site-footer {
	background: var(--footer-bg);
	color: var(--footer-text);
	padding: 1.5rem 1rem;
	font-size: 0.95rem;
}
.site-footer .inner { max-width: 46rem; margin: 0 auto; }
.site-footer a { color: var(--footer-link); }
.site-footer ul { list-style: none; margin: 0 0 0.5rem; padding: 0; display: flex; flex-wrap: wrap; gap: 0.25rem 1.25rem; }
.site-footer p { margin: 0; }

@media (prefers-reduced-motion: reduce) {
	* { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
