/*
 * Wahl-o-Rad, ADFC Kreisverband Cuxhaven.
 *
 * Shared by the start page and the municipality pages. Radii and hairlines are
 * taken from the thesis screen (Bootstrap card 4px, .btn-lg 4.8px, borders
 * rgba(0,0,0,.125)) so that screen can stay untouched and still match.
 *
 * Loaded after bootstrap.min.css.
 */

:root {
	--wor-blue: #004b7c;
	--wor-blue-hover: #00639f;
	--wor-orange: #ee7f00;
	--wor-ink: #14161a;
	--wor-muted: #6b7178;
	--wor-body: #3d434a;
	--wor-hair: rgba(0, 0, 0, .125);
	--wor-zebra: #fafaf7;
	--wor-r: 4px;
	--wor-r-lg: 4.8px;
}

body.wor {
	display: block;
	margin: 0;
	background: #f4f3ee;
	color: var(--wor-ink);
	-webkit-font-smoothing: antialiased;
}

.wor-sheet {
	max-width: 820px;
	margin: 0 auto;
	background: #fff;
	min-height: 100vh;
	padding: 40px 44px 72px;
	border-left: 1px solid var(--wor-hair);
	border-right: 1px solid var(--wor-hair);
}

@media (max-width: 640px) {
	.wor-sheet { padding: 24px 20px 56px; }
}

/* ---------------------------------------------------------------- header */

.wor-head {
	border: 1px solid var(--wor-hair);
	border-radius: var(--wor-r);
	box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
	padding: 26px 24px;
	text-align: center;
}

.wor-eyebrow {
	margin: 0;
	font-size: 11px;
	letter-spacing: .18em;
	text-transform: uppercase;
	font-weight: 700;
	color: var(--wor-muted);
}

.wor-head h1 {
	margin: 12px 0 0;
	font-size: clamp(34px, 6.6vw, 56px);
	line-height: 1;
	letter-spacing: -.03em;
	font-weight: 800;
}

.wor-subtitle {
	margin: 12px auto 0;
	font-size: 18px;
	font-weight: 600;
	color: var(--wor-blue);
	max-width: 28ch;
}

.wor-branding { margin-top: 16px; font-size: 1.05rem; }
.wor-branding img { display: inline-block; vertical-align: middle; }

/* centred prose keeps a measure; full-width centred text is hard to track */
.wor-intro {
	margin: 22px auto 0;
	font-size: 15.5px;
	line-height: 1.6;
	color: var(--wor-body);
	max-width: 56ch;
	text-align: center;
}

/* ------------------------------------------------------- section headings */

.wor-rule {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 16px;
	margin: 38px 0 12px;
	font-size: 12px;
	letter-spacing: .14em;
	text-transform: uppercase;
	font-weight: 700;
}

.wor-rule em {
	font-style: normal;
	text-transform: none;
	letter-spacing: .04em;
	color: var(--wor-muted);
	font-weight: 600;
}

/* ------------------------------------------------- card holding a list ---*/

.wor-card {
	border: 1px solid var(--wor-hair);
	border-radius: var(--wor-r);
	overflow: hidden;
	background: #fff;
}

.wor-card ol,
.wor-card ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.wor-card li + li { border-top: 1px solid var(--wor-hair); }
.wor-card li:nth-child(odd) { background: var(--wor-zebra); }

.wor-num {
	font-variant-numeric: tabular-nums;
	font-size: 13px;
	font-weight: 700;
	color: var(--wor-muted);
}

.wor-name {
	font-size: 19px;
	font-weight: 700;
	letter-spacing: -.01em;
}

.wor-sub {
	display: block;
	margin-top: 2px;
	font-size: 12.5px;
	color: var(--wor-muted);
	font-variant-numeric: tabular-nums;
}

/* ------------------------------------------------------ start page rows --*/

.wor-row {
	display: grid;
	grid-template-columns: 34px 38px 1fr auto;
	align-items: center;
	gap: 16px;
	padding: 13px 18px;
	color: inherit;
}

a.wor-row:hover { text-decoration: none; color: inherit; }
a.wor-row:focus-visible { outline: 3px solid var(--wor-orange); outline-offset: -3px; }

@media (max-width: 520px) {
	.wor-row { grid-template-columns: 26px 32px 1fr auto; gap: 11px; padding: 13px 12px; }
}

.wor-wappen { width: 38px; height: 46px; object-fit: contain; display: block; }

.wor-row.is-waiting .wor-wappen { filter: grayscale(1); opacity: .38; }
.wor-row.is-waiting .wor-name { color: #7b818a; font-weight: 600; }

/* the mark: an empty circle you fill, like a ballot */
.wor-mark {
	width: 30px;
	height: 30px;
	border: 2px solid #b9b6a8;
	border-radius: 50%;
	display: grid;
	place-items: center;
	font-size: 17px;
	font-weight: 800;
	color: transparent;
	transition: background .14s ease, border-color .14s ease, color .14s ease;
}

a.wor-row:hover .wor-mark,
a.wor-row:focus-visible .wor-mark {
	background: var(--wor-blue);
	border-color: var(--wor-blue);
	color: #fff;
}

.wor-tag {
	display: block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	color: var(--wor-muted);
	text-align: right;
}

/* one tick per list: the quantity is small and discrete, a percentage bar
   would imply a precision that is not there */
.wor-ticks { display: flex; gap: 3px; justify-content: flex-end; margin-top: 5px; }
.wor-ticks i { width: 11px; height: 5px; border-radius: 1px; background: #ddd9c9; }
.wor-ticks i.on { background: var(--wor-blue); }

/* ------------------------------------------------ municipality page bits -*/

.wor-back {
	display: inline-block;
	font-size: 13px;
	font-weight: 650;
	color: var(--wor-blue);
	margin-bottom: 20px;
}

.wor-back:hover { color: var(--wor-blue-hover); text-decoration: underline; text-underline-offset: 3px; }

.wor-muni-head {
	display: flex;
	align-items: center;
	gap: 22px;
	text-align: left;
}

@media (max-width: 520px) {
	.wor-muni-head { flex-direction: column; text-align: center; gap: 14px; }
}

.wor-muni-head .wor-muni-wappen {
	width: 62px;
	height: 76px;
	object-fit: contain;
	flex: none;
	display: block;
}

.wor-muni-head h1 { font-size: clamp(28px, 5.4vw, 44px); }

.wor-facts {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 16px 0 0;
	padding: 0;
	list-style: none;
}

.wor-facts li {
	flex: 1 1 150px;
	padding: 12px 16px;
	border: 1px solid var(--wor-hair);
	border-radius: var(--wor-r);
	font-size: 13.5px;
	color: var(--wor-muted);
}

.wor-facts strong {
	display: block;
	font-size: 22px;
	color: var(--wor-ink);
	font-variant-numeric: tabular-nums;
	letter-spacing: -.02em;
}

.wor-list-row {
	display: grid;
	grid-template-columns: 36px 1fr auto;
	gap: 16px;
	align-items: center;
	padding: 12px 18px;
}

.wor-list-name { font-size: 17px; font-weight: 700; }

.wor-pill {
	font-size: 11.5px;
	font-weight: 700;
	color: var(--wor-blue);
	letter-spacing: .04em;
	background: #eaf2f8;
	border-radius: 999px;
	padding: 5px 12px;
	white-space: nowrap;
}

.wor-bullets { margin: 26px 0 0; padding: 0; list-style: none; }

.wor-bullets li {
	position: relative;
	padding: 8px 0 8px 28px;
	font-size: 15px;
	line-height: 1.6;
	color: var(--wor-body);
}

.wor-bullets li + li { border-top: 1px solid var(--wor-hair); }

.wor-bullets li::before {
	content: "\2713";
	position: absolute;
	left: 2px;
	top: 8px;
	color: var(--wor-blue);
	font-weight: 800;
}

.wor-go { margin: 32px 0 0; }

.wor-cta {
	display: inline-block;
	background: var(--wor-blue);
	color: #fff;
	font-size: 18px;
	font-weight: 700;
	padding: 16px 34px;
	border: 0;
	border-radius: var(--wor-r-lg);
	transition: background .14s ease;
}

.wor-cta:hover { background: var(--wor-blue-hover); color: #fff; text-decoration: none; }
.wor-cta:focus-visible { outline: 3px solid var(--wor-orange); outline-offset: 3px; }

.wor-ghost {
	display: inline-block;
	margin-left: 16px;
	font-size: 14.5px;
	font-weight: 650;
	color: var(--wor-blue);
	background: none;
	border: 0;
	padding: 0;
	text-decoration: underline;
	text-underline-offset: 4px;
	cursor: pointer;
}

.wor-cta-sub { display: block; margin-top: 12px; font-size: 13.5px; color: var(--wor-muted); }

.wor-caption { margin: 30px 0 0; font-size: 12.5px; line-height: 1.55; color: var(--wor-muted); }

/* ------------------------------------------------------------------ FAQ --*/

.wor-faq { margin-top: 52px; }

.wor-faq h2 {
	margin: 0 0 12px;
	font-size: 12px;
	letter-spacing: .14em;
	text-transform: uppercase;
	font-weight: 700;
}

.wor-faq details + details { border-top: 1px solid var(--wor-hair); }

.wor-faq summary {
	display: flex;
	gap: 14px;
	align-items: baseline;
	padding: 14px 18px;
	cursor: pointer;
	font-size: 16px;
	font-weight: 650;
	list-style: none;
}

.wor-faq summary::-webkit-details-marker { display: none; }

.wor-faq summary::before {
	content: "+";
	flex: none;
	width: 14px;
	color: var(--wor-blue);
	font-weight: 800;
	font-size: 18px;
	line-height: 1.1;
}

.wor-faq details[open] summary { color: var(--wor-blue); }
.wor-faq details[open] summary::before { content: "\2212"; }
.wor-faq summary:focus-visible { outline: 3px solid var(--wor-orange); outline-offset: -3px; }

.wor-answer {
	padding: 0 18px 18px 46px;
	font-size: 15px;
	line-height: 1.6;
	color: var(--wor-body);
}

.wor-answer > :first-child { margin-top: 0; }
.wor-answer ul { padding-left: 18px; }
.wor-answer a { color: var(--wor-blue); font-weight: 600; }

/* --------------------------------------------------------------- footer --*/

.wor-footer { margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--wor-hair); }

.wor-footer .wor-privacy { margin: 0; font-size: 12.5px; line-height: 1.65; color: var(--wor-muted); }

.wor-footer .wor-legal {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 22px;
	margin-top: 14px;
	font-size: 13px;
	font-weight: 650;
}

.wor-footer .wor-legal a {
	color: var(--wor-blue);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.wor-footer .wor-legal a:hover { color: var(--wor-blue-hover); }

@media (prefers-reduced-motion: reduce) {
	.wor-mark, .wor-cta { transition: none; }
}
