/* =========================================================================
   Reichenwalde – Gestaltung
   Alle Größen in rem, damit die Schriftgrößen-Umschaltung die ganze Seite skaliert.
   Farben über Variablen, damit „Dunkel“ und „Hoher Kontrast“ sauber funktionieren.
   ========================================================================= */

/* ---------- Schriften (lokal, keine Verbindung zu Google) ---------- */
@font-face { font-family: "Inter"; src: url("../fonts/inter-400.woff") format("woff"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Inter"; src: url("../fonts/inter-600.woff") format("woff"); font-weight: 500 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Inter"; src: url("../fonts/inter-700.woff") format("woff"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Inter Display"; src: url("../fonts/interdisplay-700.woff") format("woff"); font-weight: 600 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Inter Display"; src: url("../fonts/interdisplay-800.woff") format("woff"); font-weight: 800; font-style: normal; font-display: swap; }
@font-face { font-family: "Lora"; src: url("../fonts/lora-italic.woff") format("woff"); font-weight: 400 700; font-style: italic; font-display: swap; }

/* ---------- Farben ---------- */
:root {
	--c-bg: #F6F5F0;
	--c-surface: #FFFFFF;
	--c-ink: #10291F;
	--c-muted: #4A5A52;
	--c-muted-2: #56665D;
	--c-line: #DDDDD3;
	--c-line-strong: #C9CDC2;
	--c-forest: #1F5138;
	--c-hero: #10291F;
	--c-hero-deep: #0A1D15;
	--c-on-hero: #FFFFFF;
	--c-on-hero-muted: #C3D4C9;
	--c-hero-line: #4C6B5B;
	--c-lake: #22607F;
	--c-lake-soft: #E4EFF4;
	--c-gold: #E3A72F;
	--c-on-gold: #10291F;
	--c-gold-soft: #FBEED2;
	--c-gold-ink: #6B4300;
	--c-clay: #9C4A33;
	--c-clay-ink: #7A3926;
	--c-clay-soft: #F6E4DD;
	--c-sand: #F3EEDC;
	--c-mint: #E8F0EA;
	--c-mint-2: #A8D0C0;
	--c-sky: #8FC1D9;
	--c-plum: #4B3A78;
	--c-plum-soft: #ECE8F6;
	--c-link: #1F5138;
	--c-focus: #E3A72F;
	--shadow: 0 24px 60px rgba(16, 41, 31, .10);

	--f-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--f-display: "Inter Display", "Inter", system-ui, sans-serif;
	--f-accent: "Lora", Georgia, "Times New Roman", serif;

	--radius: 1.75rem;
	--radius-sm: 1.25rem;
	--wrap: 80rem;
	--gutter: clamp(1rem, 3vw, 1.75rem);
	--lh: 1.6;
}

/* Dunkel */
html[data-scheme="dark"] {
	--c-bg: #121C17;
	--c-surface: #1C2922;
	--c-ink: #E9EEE9;
	--c-muted: #B8C6BD;
	--c-muted-2: #B8C6BD;
	--c-line: #33443A;
	--c-line-strong: #46594E;
	--c-forest: #2E6B4C;
	--c-hero: #0D1B14;
	--c-hero-deep: #08130E;
	--c-lake: #8FC1D9;
	--c-lake-soft: #22343C;
	--c-gold-soft: #3A3220;
	--c-gold-ink: #F2C46B;
	--c-clay: #EBA78E;
	--c-clay-ink: #EBA78E;
	--c-clay-soft: #3B2A24;
	--c-sand: #1F2B24;
	--c-mint: #23362C;
	--c-plum: #C9BDF0;
	--c-plum-soft: #2D2840;
	--c-link: #A8D0C0;
	--shadow: 0 24px 60px rgba(0, 0, 0, .35);
	color-scheme: dark;
}

/* Hoher Kontrast: Schwarz, Weiß, Gelb */
html[data-scheme="contrast"] {
	--c-bg: #000000;
	--c-surface: #000000;
	--c-ink: #FFFFFF;
	--c-muted: #FFFFFF;
	--c-muted-2: #FFFFFF;
	--c-line: #FFFFFF;
	--c-line-strong: #FFFFFF;
	--c-forest: #000000;
	--c-hero: #000000;
	--c-hero-deep: #000000;
	--c-on-hero: #FFFFFF;
	--c-on-hero-muted: #FFFFFF;
	--c-hero-line: #FFFFFF;
	--c-lake: #FFE600;
	--c-lake-soft: #000000;
	--c-gold: #FFE600;
	--c-on-gold: #000000;
	--c-gold-soft: #000000;
	--c-gold-ink: #FFE600;
	--c-clay: #FFE600;
	--c-clay-ink: #FFE600;
	--c-clay-soft: #000000;
	--c-sand: #000000;
	--c-mint: #000000;
	--c-mint-2: #FFFFFF;
	--c-sky: #FFFFFF;
	--c-plum: #FFE600;
	--c-plum-soft: #000000;
	--c-link: #FFE600;
	--c-focus: #00E5FF;
	--shadow: none;
	color-scheme: dark;
}
html[data-scheme="contrast"] .card,
html[data-scheme="contrast"] .card-verein,
html[data-scheme="contrast"] .spotlight,
html[data-scheme="contrast"] .quick,
html[data-scheme="contrast"] .post-card,
html[data-scheme="contrast"] .infostrip,
html[data-scheme="contrast"] .ortsteil__panel,
html[data-scheme="contrast"] .quote,
html[data-scheme="contrast"] .notruf,
html[data-scheme="contrast"] .tag,
html[data-scheme="contrast"] .chip,
html[data-scheme="contrast"] .opt { border: 2px solid #FFFFFF !important; }
html[data-scheme="contrast"] a { text-decoration: underline; }
html[data-scheme="contrast"] .btn { border: 2px solid #FFE600; }
html[data-scheme="contrast"] .hero__landscape,
html[data-scheme="contrast"] .ortsteil__art { filter: grayscale(1) contrast(1.3) brightness(.75); }

/* Schriftgröße */
html { font-size: 100%; }
html[data-size="2"] { font-size: 112.5%; }
html[data-size="3"] { font-size: 125%; }

/* Lesehilfen */
html[data-underline="on"] a { text-decoration: underline !important; text-underline-offset: .2em; }
html[data-font="on"] {
	--f-body: Verdana, Tahoma, "DejaVu Sans", "Segoe UI", sans-serif;
	--f-display: Verdana, Tahoma, "DejaVu Sans", "Segoe UI", sans-serif;
	--f-accent: Verdana, Tahoma, "DejaVu Sans", sans-serif;
}
html[data-font="on"] .accent, html[data-font="on"] .motto, html[data-font="on"] .quote blockquote, html[data-font="on"] .spotlight__motto { font-style: normal; }
html[data-spacing="on"] { --lh: 1.95; }
html[data-spacing="on"] body { letter-spacing: .03em; word-spacing: .12em; }
html[data-spacing="on"] p, html[data-spacing="on"] li, html[data-spacing="on"] dd { line-height: var(--lh); }

/* ---------- Grundlagen ---------- */
*, *::before, *::after { box-sizing: border-box; }
body {
	margin: 0;
	background: var(--c-bg);
	color: var(--c-ink);
	font-family: var(--f-body);
	font-size: 1.125rem;
	line-height: var(--lh);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
img, svg { max-width: 100%; }
img { height: auto; display: block; }
a { color: var(--c-link); text-underline-offset: .18em; }
a:hover { text-decoration-thickness: 2px; }
h1, h2, h3, h4 { font-family: var(--f-display); color: inherit; line-height: 1.12; letter-spacing: -.015em; margin: 0 0 .6em; }
p { margin: 0 0 1em; }
:focus-visible { outline: 3px solid var(--c-focus); outline-offset: 3px; border-radius: 4px; }
main:focus { outline: none; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }
html { scroll-behavior: smooth; }
[id] { scroll-margin-top: 1.5rem; }

.wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gutter); }
.wrap--text { max-width: 52rem; }
.section { padding-block: clamp(3.5rem, 8vw, 6.5rem); }
.section--tight { padding-block: clamp(2rem, 5vw, 3.5rem); }
.accent { font-family: var(--f-accent); font-style: italic; font-weight: 400; letter-spacing: 0; }

.skip-link { position: absolute; left: 1rem; top: -6rem; z-index: 100; background: var(--c-gold); color: var(--c-on-gold); padding: .9rem 1.4rem; border-radius: .75rem; font-weight: 700; text-decoration: none; }
.skip-link:focus { top: .75rem; }

/* ---------- Bausteine ---------- */
.kicker { font-size: .875rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted-2); margin: 0 0 .6rem; }
.kicker--gold { color: var(--c-gold); }
.kicker--lake { color: var(--c-lake); letter-spacing: .04em; text-transform: none; font-size: .95rem; }
.kicker--clay { color: var(--c-clay); }
.display { font-size: clamp(2.2rem, 4.5vw, 2.9rem); font-weight: 700; letter-spacing: -.025em; line-height: 1.05; margin-bottom: 1.6rem; }
.display--xl { font-size: clamp(2.6rem, 5.6vw, 4.5rem); line-height: 1; letter-spacing: -.03em; }
.display--sm { font-size: clamp(1.6rem, 3vw, 2.1rem); margin-bottom: 1rem; }
.lead { font-size: 1.25rem; color: var(--c-muted); }
.lead--narrow { max-width: 26em; margin: 0; }
.empty { color: var(--c-muted); font-style: italic; }
.hint { color: var(--c-muted); }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 3.1rem; padding: .85rem 1.7rem; border-radius: 999px; border: 2px solid var(--c-forest); background: var(--c-forest); color: #FFFFFF; font: inherit; font-weight: 700; line-height: 1.2; text-decoration: none; cursor: pointer; transition: transform .15s ease, box-shadow .15s ease; }
.btn:hover { transform: translateY(-1px); box-shadow: 0 8px 24px rgba(16, 41, 31, .18); }
.btn--gold { background: var(--c-gold); border-color: var(--c-gold); color: var(--c-on-gold); }
.btn--clay { background: var(--c-clay); border-color: var(--c-clay); color: #FFFFFF; }
.btn--outline { background: transparent; color: var(--c-ink); border-color: currentColor; }
.btn--outline-light { background: transparent; color: var(--c-on-hero); border-color: var(--c-hero-line); }
.btn--small { min-height: 2.75rem; padding: .55rem 1.1rem; }
html[data-scheme="dark"] .btn--clay { color: #1C1310; }
html[data-scheme="contrast"] .btn, html[data-scheme="contrast"] .btn--clay { background: #FFE600; color: #000; }
html[data-scheme="contrast"] .btn--outline, html[data-scheme="contrast"] .btn--outline-light { background: #000; color: #FFE600; }
.btn-row { display: flex; flex-wrap: wrap; gap: .75rem; }
.more { display: inline-flex; align-items: center; gap: .4rem; margin-top: 1.5rem; font-weight: 700; padding: .4rem 0; }
.more--clay { color: var(--c-clay-ink); }
.back-link { display: inline-flex; align-items: center; gap: .4rem; font-weight: 600; color: var(--c-on-hero-muted); text-decoration: none; padding: .4rem 0; margin-bottom: 1rem; }
.back-link:hover { color: var(--c-on-hero); }

.tags { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.tag { font-size: .8125rem; font-weight: 700; padding: .3rem .75rem; border-radius: 999px; }
.tag--lake { color: var(--c-lake); background: var(--c-lake-soft); }
.tag--clay { color: var(--c-clay-ink); background: var(--c-clay-soft); }
.tag--gold { color: var(--c-gold-ink); background: var(--c-gold-soft); }
.tag--plum { color: var(--c-plum); background: var(--c-plum-soft); }
.tag--forest { color: var(--c-forest); background: var(--c-mint); }
html[data-scheme="dark"] .tag--forest { color: var(--c-mint-2); }

.badge { position: absolute; top: 1.1rem; left: 1.1rem; font-size: .875rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: .5rem 1rem; border-radius: 999px; }
.badge--gold { background: var(--c-gold); color: var(--c-on-gold); }

.card { background: var(--c-surface); border-radius: var(--radius); padding: 2rem; display: flex; flex-direction: column; gap: .9rem; }
.card__title { font-size: 1.5rem; margin: 0; }
.card__eyebrow { margin: 0; font-size: .875rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--c-muted-2); }
.card__note { color: var(--c-muted); margin: 0; }
.card p { margin: 0; }
.card .btn { align-self: flex-start; margin-top: auto; }
.card--dark { background: var(--c-hero); color: var(--c-on-hero); }
.card--dark p { color: var(--c-on-hero-muted); }
.card--sand { background: var(--c-sand); }
.card--cta { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; margin-top: 2.5rem; }
.card--person { flex-direction: row; align-items: flex-start; gap: 1.25rem; }
.avatar { flex: 0 0 5.5rem; width: 5.5rem; height: 5.5rem; border-radius: 50%; background: var(--c-mint); color: var(--c-muted-2); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.avatar img { width: 100%; height: 100%; object-fit: cover; }
.contact-list { list-style: none; margin: .4rem 0 0; padding: 0; display: flex; flex-direction: column; gap: .25rem; }
.contact-list a { display: inline-flex; align-items: center; gap: .55rem; font-weight: 700; padding: .35rem 0; word-break: break-word; }

.facts { margin: 0; display: flex; flex-direction: column; border-top: 1px solid var(--c-line); }
.facts > div { display: flex; justify-content: space-between; gap: 1rem; padding: .8rem 0; border-bottom: 1px solid var(--c-line); }
.facts dt { color: var(--c-muted-2); }
.facts dd { margin: 0; font-weight: 700; text-align: right; }
.facts--plain { border-top: 0; }
.verein-side .facts > div { flex-direction: column; gap: .1rem; }
.verein-side .facts dd { text-align: left; }

/* ---------- Barrierefreiheits-Leiste ---------- */
.utility { background: var(--c-hero-deep); color: #FFFFFF; font-size: 1rem; }
html[data-scheme="contrast"] .utility { border-bottom: 2px solid #FFFFFF; }
.utility__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .25rem 1.5rem; padding-block: .3rem; }
.utility__nav { display: flex; flex-wrap: wrap; gap: 0 1.6rem; }
.utility__nav a { color: #FFFFFF; text-decoration: none; display: inline-flex; align-items: center; gap: .5rem; padding: .7rem 0; }
.utility__nav a:hover { text-decoration: underline; }
html[data-scheme="contrast"] .utility__nav a { color: #FFE600; }
.a11y-toggle { font: inherit; font-weight: 700; display: inline-flex; align-items: center; gap: .6rem; min-height: 2.75rem; padding: 0 1.1rem; border-radius: 999px; border: 0; background: var(--c-gold); color: var(--c-on-gold); cursor: pointer; }
.a11y-panel { background: var(--c-surface); border-bottom: 1px solid var(--c-line); }
.a11y-panel .wrap { padding-block: 1.75rem 1.5rem; display: flex; flex-direction: column; gap: 1.5rem; }
.a11y-groups { display: flex; flex-wrap: wrap; gap: 1.5rem 3rem; }
.a11y-group { display: flex; flex-direction: column; gap: .6rem; }
.a11y-label { font-size: .875rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--c-muted-2); }
.a11y-buttons { display: flex; flex-wrap: wrap; gap: .5rem; }
.opt { font: inherit; font-size: 1.0625rem; font-weight: 700; min-height: 3rem; padding: 0 1.1rem; border-radius: .75rem; border: 2px solid var(--c-line-strong); background: var(--c-surface); color: var(--c-ink); cursor: pointer; display: inline-flex; align-items: center; gap: .5rem; }
.opt[aria-pressed="true"] { background: var(--c-ink); border-color: var(--c-ink); color: var(--c-bg); }
html[data-scheme="contrast"] .opt[aria-pressed="true"] { background: #FFE600; color: #000; }
.opt--size { min-width: 3.5rem; justify-content: center; }
.opt--size2 { font-size: 1.25rem; }
.opt--size3 { font-size: 1.45rem; }
.a11y-foot { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.75rem; border-top: 1px solid var(--c-line); padding-top: 1rem; font-size: 1rem; }
.a11y-note { color: var(--c-muted-2); }
.a11y-foot a { font-weight: 700; }

/* ---------- Kopf & Navigation ---------- */
.site-header { background: var(--c-hero); color: var(--c-on-hero); }
.site-header__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding-block: 1.4rem; }
.brand { display: flex; align-items: center; gap: .85rem; color: var(--c-on-hero); text-decoration: none; }
.brand-logo { width: auto; height: 3rem; color: #F6F5F0; }
.brand__text { display: flex; flex-direction: column; line-height: 1.05; }
.brand__small { font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--c-on-hero-muted); font-weight: 600; }
.brand__name { font-family: var(--f-display); font-weight: 700; font-size: 1.45rem; letter-spacing: -.01em; }
.main-nav { display: flex; align-items: center; gap: .5rem 1.75rem; }
.nav-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .25rem 1.75rem; }
.nav-list a { color: var(--c-on-hero); text-decoration: none; font-weight: 500; font-size: 1.0625rem; padding: .6rem 0; display: inline-block; border-bottom: 2px solid transparent; }
.nav-list a:hover, .nav-list .current-menu-item > a, .nav-list a[aria-current="page"] { border-bottom-color: var(--c-gold); }
.nav-cta { background: var(--c-bg); color: var(--c-ink); text-decoration: none; font-weight: 700; padding: .7rem 1.4rem; border-radius: 999px; }
html[data-scheme="contrast"] .nav-list a { color: #FFE600; }
html[data-scheme="contrast"] .nav-cta { background: #FFE600; color: #000; }
.nav-toggle { display: none; font: inherit; font-weight: 700; align-items: center; gap: .5rem; min-height: 3rem; padding: 0 1rem; border-radius: 999px; border: 2px solid var(--c-hero-line); background: transparent; color: var(--c-on-hero); cursor: pointer; }
.nav-toggle__close { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__close { display: block; }
.nav-toggle[aria-expanded="true"] .nav-toggle__open { display: none; }

@media (max-width: 62rem) {
	.nav-toggle { display: inline-flex; }
	.main-nav { display: none; width: 100%; flex-direction: column; align-items: stretch; gap: .75rem; padding: .5rem 0 1rem; }
	.main-nav.is-open { display: flex; }
	.nav-list { flex-direction: column; gap: 0; }
	.nav-list a { display: block; font-size: 1.25rem; padding: .85rem 0; border-bottom: 1px solid var(--c-hero-line); }
	.nav-cta { text-align: center; padding: 1rem; }
}

/* ---------- Seitenkopf Unterseiten ---------- */
.page-head { background: var(--c-hero); color: var(--c-on-hero); padding-block: 1rem clamp(2.5rem, 6vw, 4.5rem); }
.page-head__title { font-size: clamp(2.3rem, 5vw, 3.75rem); font-weight: 700; letter-spacing: -.03em; line-height: 1.02; margin: 0 0 1rem; max-width: 18em; }
.page-head__title .accent { color: var(--c-mint-2); }
.page-head__lead { font-size: 1.25rem; color: var(--c-on-hero-muted); max-width: 40em; margin: 0; }

/* ---------- Startseite: Einstieg ---------- */
.hero { background: var(--c-hero); color: var(--c-on-hero); overflow: hidden; }
.hero__inner { padding-top: clamp(2.5rem, 6vw, 4.5rem); display: flex; flex-direction: column; gap: 1.75rem; }
.hero__award { align-self: flex-start; display: inline-flex; align-items: center; gap: .65rem; margin: 0; padding: .45rem 1rem .45rem .45rem; border-radius: 999px; background: rgba(255, 255, 255, .08); border: 1px solid var(--c-hero-line); color: var(--c-on-hero); font-weight: 600; font-size: 1rem; text-decoration: none; }
a.hero__award:hover { background: rgba(255, 255, 255, .14); }
.hero__award-icon { flex: 0 0 2.1rem; height: 2.1rem; border-radius: 50%; background: var(--c-gold); color: var(--c-on-gold); display: flex; align-items: center; justify-content: center; }
html[data-scheme="contrast"] .hero__award { color: #FFE600; border: 2px solid #FFE600; background: #000; }
.hero__kicker { margin: 0; font-size: .9375rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--c-gold); }
.hero__title { margin: 0; font-size: clamp(3rem, 7vw, 6.5rem); font-weight: 700; line-height: .98; letter-spacing: -.035em; max-width: 11em; }
.hero__title .accent { color: var(--c-mint-2); }
.hero__title .accent + .accent, .hero__title .accent:nth-of-type(2) { color: var(--c-sky); }
.hero__row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 2rem; }
.hero__text { margin: 0; font-size: 1.25rem; color: var(--c-on-hero-muted); max-width: 30em; }
.hero__landscape { display: block; width: 100%; height: clamp(12rem, 24vw, 20rem); margin-top: 1.5rem; }
.hero__landscape-edge { fill: var(--c-bg); }

.quick-wrap { position: relative; margin-top: -2.5rem; }
.quick { background: var(--c-surface); border-radius: var(--radius); box-shadow: var(--shadow); padding: .6rem; display: flex; flex-wrap: wrap; }
.quick a { flex: 1 1 13rem; display: flex; align-items: center; gap: 1rem; padding: 1.1rem 1.25rem; border-radius: 1.25rem; text-decoration: none; color: var(--c-ink); }
.quick a:hover { background: var(--c-bg); }
.quick strong { display: block; font-weight: 700; }
.quick small { display: block; font-size: .9375rem; color: var(--c-muted-2); }
.quick__icon { flex: 0 0 3.25rem; height: 3.25rem; border-radius: 1rem; display: flex; align-items: center; justify-content: center; }
.quick__icon--forest { background: var(--c-mint); color: var(--c-forest); }
.quick__icon--lake { background: var(--c-lake-soft); color: var(--c-lake); }
.quick__icon--gold { background: var(--c-gold-soft); color: var(--c-gold-ink); }
.quick__icon--clay { background: var(--c-sand); color: var(--c-clay-ink); }
html[data-scheme="dark"] .quick__icon--forest { color: var(--c-mint-2); }

/* Termine & Aktuelles */
.split { display: flex; flex-wrap: wrap; gap: 4rem; }
.split__col { flex: 1 1 26rem; min-width: 0; }
.termin-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--c-line); }
.termin-row { display: flex; align-items: center; gap: 1.5rem; padding: 1.35rem .25rem; border-bottom: 1px solid var(--c-line); text-decoration: none; color: var(--c-ink); }
.termin-row:hover .termin-row__title { text-decoration: underline; }
.termin-row__date { flex: 0 0 4rem; display: flex; flex-direction: column; line-height: 1; }
.termin-row__day { font-family: var(--f-display); font-weight: 700; font-size: 2.5rem; color: var(--c-forest); }
html[data-scheme="dark"] .termin-row__day, html[data-scheme="contrast"] .termin-row__day { color: var(--c-gold); }
.termin-row__month { font-size: .875rem; font-weight: 700; letter-spacing: .1em; color: var(--c-muted-2); margin-top: .3rem; }
.termin-row__date--big { flex: 0 0 auto; background: var(--c-forest); color: #FFFFFF; border-radius: 1.25rem; padding: 1rem 1.2rem; text-align: center; }
.termin-row__date--big .termin-row__day { color: #FFFFFF; font-size: 3rem; }
.termin-row__date--big .termin-row__month { color: #DDE8E1; }
.termin-row__body { flex: 1 1 auto; display: flex; flex-direction: column; }
.termin-row__title { font-weight: 700; font-size: 1.25rem; }
.termin-row__meta { font-size: 1rem; color: var(--c-muted-2); }
.termin-row__arrow { flex: 0 0 auto; }
.termin-list--compact .termin-row { gap: 1rem; padding-block: .9rem; }
.termin-list--compact .termin-row__day { font-size: 1.9rem; }
.termin-list--compact .termin-row__title { font-size: 1.0625rem; }

.post-card { background: var(--c-surface); border-radius: var(--radius); overflow: hidden; display: flex; flex-direction: column; }
.post-card__media img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.post-card__body { padding: 1.6rem 1.75rem 1.9rem; display: flex; flex-direction: column; gap: .5rem; }
.post-card__date { margin: 0; font-size: .9375rem; font-weight: 600; color: var(--c-muted-2); }
.post-card__title { margin: 0; font-size: 1.5rem; }
.post-card__title a { color: inherit; text-decoration: none; }
.post-card__title a:hover { text-decoration: underline; }
.post-card__excerpt { margin: 0; color: var(--c-muted); }
.post-card--big .post-card__title { font-size: 1.9rem; }
.post-card--small { border-radius: var(--radius-sm); }
.post-card--small .post-card__body { padding: 1.25rem 1.4rem; }
.post-card--small .post-card__title { font-size: 1.125rem; font-family: var(--f-body); letter-spacing: 0; line-height: 1.35; }
.post-mini { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1rem; }
.post-mini > * { flex: 1 1 13rem; }
.post-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr)); gap: 1.5rem; }
.nav-links { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 2.5rem; }
.nav-links .page-numbers { display: inline-flex; align-items: center; min-height: 3rem; min-width: 3rem; justify-content: center; padding: 0 1rem; border-radius: 999px; border: 2px solid var(--c-line-strong); text-decoration: none; font-weight: 700; color: var(--c-ink); }
.nav-links .current { background: var(--c-ink); color: var(--c-bg); border-color: var(--c-ink); }

/* ---------- Vereine ---------- */
.band { padding-block: clamp(4rem, 9vw, 6.5rem); }
.band--forest { background: var(--c-forest); color: #FFFFFF; }
html[data-scheme="dark"] .band--forest { background: #173C2A; }
html[data-scheme="contrast"] .band--forest { background: #000; border-block: 2px solid #FFF; }
.band__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.75rem; margin-bottom: 2.75rem; }
.band__head > div:first-child { max-width: 44rem; }
.band .lead { color: #C9DCCF; margin: 0; }
html[data-scheme="contrast"] .band .lead { color: #FFF; }
.band .display .accent { color: var(--c-mint-2); }
.band .btn--outline-light { border-color: #5C8A72; }

.chips { display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 1.75rem; }
.chip { font: inherit; font-size: 1rem; font-weight: 700; min-height: 2.9rem; padding: 0 1.25rem; border-radius: 999px; cursor: pointer; background: transparent; color: inherit; border: 2px solid currentColor; opacity: .92; }
.band .chip { color: #FFFFFF; border-color: #5C8A72; }
.chip[aria-pressed="true"] { background: var(--c-gold); border-color: var(--c-gold) !important; color: var(--c-on-gold) !important; opacity: 1; }
.vereine__count { margin: 2.75rem 0 1rem; font-weight: 600; font-size: 1.0625rem; }
.band .vereine__count { color: #C9DCCF; }
.vereine > .vereine__count:first-child, .chips + .vereine__count { margin-top: 0; }

.card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 20.5rem), 1fr)); gap: 1.25rem; }
.card-verein { background: var(--c-surface); color: var(--c-ink); border-radius: 1.6rem; overflow: hidden; display: flex; flex-direction: column; }
.card-verein[hidden] { display: none; }
.card-verein__media { display: block; height: 14.5rem; background: var(--c-mint); }
.card-verein__media img { width: 100%; height: 100%; object-fit: cover; }
.card-verein__media.is-logo { background: #FFFFFF; }
.card-verein__media.is-logo img { object-fit: contain; padding: 1.25rem; }
.card-verein__placeholder { position: relative; height: 100%; display: flex; align-items: center; justify-content: center; background: #E4EEE6; overflow: hidden; }
.card-verein__placeholder-art { position: absolute; inset: 0; width: 100%; height: 100%; }
.card-verein__monogram { position: relative; width: 5.5rem; height: 5.5rem; border-radius: 50%; background: #FFFFFF; color: #1F5138; display: flex; align-items: center; justify-content: center; font-family: var(--f-display); font-weight: 800; font-size: 1.9rem; letter-spacing: .02em; box-shadow: 0 8px 24px rgba(16, 41, 31, .15); }
html[data-scheme="contrast"] .card-verein__placeholder { background: #000; }
html[data-scheme="contrast"] .card-verein__monogram { background: #000; color: #FFE600; border: 2px solid #FFE600; }
.card-verein__body { padding: 1.4rem 1.5rem 1.6rem; display: flex; flex-direction: column; gap: .5rem; flex: 1 1 auto; }
.card-verein__title { margin: .35rem 0 0; font-size: 1.5rem; line-height: 1.15; }
.card-verein__title a { color: inherit; text-decoration: none; }
.card-verein__title a::after { content: ""; }
.card-verein__title a:hover { text-decoration: underline; }
.card-verein__sub { margin: 0; font-size: 1rem; font-weight: 600; color: var(--c-muted-2); }
.card-verein__teaser { margin: .2rem 0 0; font-size: 1.0625rem; color: var(--c-muted); }
.card-verein__foot { margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--c-line); display: flex; flex-direction: column; gap: .35rem; font-size: 1rem; }
.meta-line { display: flex; gap: .6rem; align-items: flex-start; margin: 0; color: var(--c-muted-2); }
.meta-line .icon { flex: 0 0 auto; margin-top: .15rem; }
.meta-line--strong { color: var(--c-ink); font-weight: 700; }
.meta-line--strong .icon { color: var(--c-forest); }
html[data-scheme="dark"] .meta-line--strong .icon { color: var(--c-mint-2); }

.spotlight { background: var(--c-surface); color: var(--c-ink); border-radius: 2.1rem; overflow: hidden; display: flex; flex-wrap: wrap; }
.spotlight__media { flex: 1 1 34rem; min-width: 0; padding: .9rem; display: flex; flex-direction: column; gap: .65rem; }
.spotlight__main { position: relative; border-radius: 1.5rem; overflow: hidden; height: clamp(18rem, 32vw, 27rem); }
.spotlight__main img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; }
.spotlight__thumbs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; }
.spotlight__thumbs a { display: block; border-radius: 1.1rem; overflow: hidden; }
.spotlight__thumbs img { width: 100%; height: 9.5rem; object-fit: cover; transition: transform .3s ease; }
.spotlight__thumbs a:hover img { transform: scale(1.04); }
.spotlight__body { flex: 1 1 24rem; min-width: 0; padding: 2.5rem 2.75rem 2.5rem 1.75rem; display: flex; flex-direction: column; gap: 1rem; }
.spotlight__body p { margin: 0; color: var(--c-muted); }
.spotlight__body .kicker { margin: 0; }
.spotlight__title { font-size: clamp(2rem, 3.6vw, 2.75rem); margin: 0; line-height: 1.02; letter-spacing: -.02em; }
.spotlight__motto { font-family: var(--f-accent); font-style: italic; font-size: 1.6rem; line-height: 1.25; color: var(--c-forest) !important; }
html[data-scheme="dark"] .spotlight__motto { color: var(--c-mint-2) !important; }
.spotlight .btn-row { margin-top: auto; padding-top: .5rem; }
@media (max-width: 40rem) { .spotlight__body { padding: 1.75rem 1.4rem 2rem; } }

/* Fotowand */
.fotowand { background: var(--c-sand); padding-block: clamp(4rem, 9vw, 6.5rem); }
.fotowand__head { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 2.5rem 4.5rem; margin-bottom: 2.5rem; }
.fotowand__head > div { flex: 1 1 32rem; min-width: 0; }
.fotowand .display { font-size: clamp(2.6rem, 5vw, 4.1rem); line-height: 1; }
.fotowand .display .accent { color: var(--c-clay); }
.fotowand .lead { margin: 0; color: var(--c-muted); }
.quote { flex: 1 1 20rem; margin: 0; background: var(--c-surface); border-radius: 1.6rem; padding: 1.9rem 2rem; }
.quote blockquote { margin: 0; font-family: var(--f-accent); font-style: italic; font-size: 1.75rem; line-height: 1.25; color: var(--c-ink); }
.quote figcaption { margin-top: .9rem; font-size: 1rem; color: var(--c-muted-2); font-weight: 600; }
.quote--wide { margin: 2rem 0; background: var(--c-sand); }
.mosaic { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 13.75rem; gap: .9rem; }
.mosaic__item { position: relative; display: block; border-radius: 1.6rem; overflow: hidden; }
.mosaic__item img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; transition: transform .4s ease; }
.mosaic__item:hover img { transform: scale(1.04); }
.mosaic__item--1 { grid-column: span 2; grid-row: span 2; }
.mosaic__item--2 { grid-row: span 2; }
.mosaic__item--7 { grid-column: span 2; }
.mosaic__cap { position: absolute; left: .9rem; bottom: .9rem; background: var(--c-hero); color: #FFFFFF; font-size: .9375rem; font-weight: 700; padding: .45rem .9rem; border-radius: 999px; }
@media (max-width: 47.5rem) {
	.mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 10.5rem; }
	.mosaic__item--7 { grid-column: span 2; }
}
.infostrip { margin-top: 2rem; background: var(--c-surface); border-radius: 1.6rem; padding: 1.75rem 2rem; display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem 3rem; }
.infostrip span { display: block; font-size: .9375rem; color: var(--c-muted-2); font-weight: 600; }
.infostrip strong { font-size: 1.25rem; }
.infostrip .btn { margin-left: auto; }

/* Ortsteile */
.section__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.25rem; margin-bottom: 2.25rem; }
.section__head .display { margin: 0; }
.ortsteile { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); gap: 1.25rem; }
.ortsteil { position: relative; display: block; height: 28.75rem; border-radius: 1.9rem; overflow: hidden; text-decoration: none; color: #FFFFFF; }
.ortsteil__art { position: absolute; inset: 0; width: 100%; height: 100%; transition: transform .5s ease; }
.ortsteil:hover .ortsteil__art { transform: scale(1.03); }
.ortsteil__panel { position: absolute; left: .9rem; right: .9rem; bottom: .9rem; background: var(--c-hero); border-radius: 1.4rem; padding: 1.4rem 1.5rem; display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; }
.ortsteil__name { display: block; font-family: var(--f-display); font-weight: 700; font-size: 1.75rem; line-height: 1.1; }
.ortsteil__text { display: block; font-size: 1rem; color: var(--c-on-hero-muted); margin-top: .35rem; }
.round-arrow { flex: 0 0 2.75rem; height: 2.75rem; border-radius: 50%; background: var(--c-gold); color: var(--c-on-gold); display: flex; align-items: center; justify-content: center; }

/* Geschichte */
.history { display: flex; flex-wrap: wrap; align-items: center; gap: 3rem 5rem; border-block: 1px solid var(--c-line); padding-block: 3rem; }
.history__year { margin: 0; font-family: var(--f-accent); font-style: italic; font-size: clamp(7rem, 14vw, 12.5rem); line-height: .85; color: var(--c-clay); }
.history__body { flex: 1 1 26rem; min-width: 0; max-width: 40rem; }
.history__body p { color: var(--c-muted); }
.history__steps { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr)); gap: .75rem; }
.history__steps li { background: var(--c-surface); border-radius: 1rem; padding: .9rem 1rem; display: flex; flex-direction: column; }
.history__steps strong { font-family: var(--f-display); font-size: 1.35rem; color: var(--c-clay-ink); }
.history__steps span { font-size: .9375rem; color: var(--c-muted-2); }

/* Service */
.service-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); gap: 1.25rem; }
.notruf { margin-top: 1.25rem; display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 2.25rem; padding: 1.25rem .25rem; color: var(--c-muted); font-size: 1.0625rem; }
.notruf p { margin: 0; }
.notruf a { color: var(--c-ink); text-decoration: none; }
.notruf__title { display: inline-flex; align-items: center; gap: .5rem; font-weight: 700; color: var(--c-clay-ink) !important; }

/* ---------- Unterseiten ---------- */
.prose { font-size: 1.1875rem; }
.prose > * { max-width: 46rem; }
.prose h2 { font-size: clamp(1.6rem, 3vw, 2.1rem); margin: 2.2em 0 .6em; }
.prose h3 { font-size: 1.4rem; margin: 1.8em 0 .5em; }
.prose ul, .prose ol { padding-left: 1.4em; }
.prose li { margin-bottom: .45em; }
.prose .lead { font-size: 1.35rem; color: var(--c-ink); }
.prose .source { color: var(--c-muted); font-size: 1rem; }
.prose--easy { font-size: 1.375rem; line-height: 1.75; }
.prose--easy h2 { margin-top: 1.6em; }
.prose img { border-radius: 1rem; }
.prose .gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); gap: .75rem; max-width: none; }
.prose .gallery-item { margin: 0; }
.prose .gallery img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.rw-timeline { list-style: none; padding: 0 !important; border-left: 3px solid var(--c-clay); }
.rw-timeline li { padding: 0 0 1em 1.25em; position: relative; }
.rw-timeline li::before { content: ""; position: absolute; left: -.55rem; top: .55em; width: .8rem; height: .8rem; border-radius: 50%; background: var(--c-clay); }
.hero-image { margin: 0 0 2rem; border-radius: var(--radius); overflow: hidden; }
.hero-image img { width: 100%; max-height: 34rem; object-fit: cover; }
.hero-image--logo { background: #FFFFFF; padding: 2rem; display: flex; justify-content: center; }
.hero-image--logo img { width: auto; max-height: 18rem; object-fit: contain; }
.motto { font-family: var(--f-accent); font-style: italic; font-size: clamp(1.6rem, 3vw, 2.1rem); line-height: 1.25; color: var(--c-forest); margin: 0 0 1.5rem; }
html[data-scheme="dark"] .motto { color: var(--c-mint-2); }
html[data-scheme="contrast"] .motto, html[data-scheme="contrast"] .spotlight__motto { color: #FFE600 !important; }
html[data-scheme="contrast"] .termin-row__date--big { border: 2px solid #FFF; }
.verein-layout, .termine-layout { display: flex; flex-wrap: wrap; gap: 3rem; align-items: flex-start; }
.verein-main, .termine-main { flex: 999 1 32rem; min-width: 0; }
.verein-side, .termine-side { flex: 1 1 20rem; min-width: 0; display: flex; flex-direction: column; gap: 1.25rem; }
.month-title { font-size: 1.25rem; text-transform: uppercase; letter-spacing: .08em; color: var(--c-muted-2); margin: 2rem 0 .5rem; font-family: var(--f-body); }
.regel-list { list-style: none; margin: .5rem 0 0; padding: 0; display: flex; flex-direction: column; gap: 1rem; }
.regel-list li { display: flex; flex-direction: column; padding-bottom: 1rem; border-bottom: 1px solid var(--c-line); }
.regel-list a { color: var(--c-ink); font-size: 1.15rem; }
.regel-list span { color: var(--c-muted); }
.regel-list__next { font-size: .9375rem; }
.event-box { display: flex; flex-wrap: wrap; gap: 1.5rem 2rem; align-items: flex-start; background: var(--c-surface); border-radius: var(--radius); padding: 1.75rem; margin-bottom: 2rem; }
.event-box .facts { flex: 1 1 18rem; }
.date-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.date-chips li { background: var(--c-surface); border-radius: 999px; padding: .55rem 1.1rem; font-weight: 600; }
.photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); gap: .9rem; }
.photo-grid a { display: block; border-radius: 1.1rem; overflow: hidden; }
.photo-grid img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .3s ease; }
.photo-grid a:hover img { transform: scale(1.04); }
.album-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr)); gap: 1.25rem; }
.album-card { display: flex; flex-direction: column; gap: .3rem; text-decoration: none; color: var(--c-ink); }
.album-card__media { position: relative; display: block; border-radius: 1.4rem; overflow: hidden; background: var(--c-mint); aspect-ratio: 4 / 3; }
.album-card__media img { width: 100%; height: 100%; object-fit: cover; }
.album-card__count { position: absolute; right: .75rem; bottom: .75rem; display: inline-flex; align-items: center; gap: .35rem; background: var(--c-hero); color: #FFF; font-size: .9375rem; font-weight: 700; padding: .35rem .8rem; border-radius: 999px; }
.album-card__title { font-weight: 700; font-size: 1.25rem; margin-top: .4rem; }
.album-card:hover .album-card__title { text-decoration: underline; }
.album-card__date { color: var(--c-muted-2); font-size: 1rem; }

/* ---------- Fußzeile ---------- */
.site-footer { background: var(--c-hero); color: var(--c-on-hero-muted); margin-top: 0; }
html[data-scheme="contrast"] .site-footer { border-top: 2px solid #FFF; }
.site-footer__inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 2.5rem; padding-block: 4rem 2.25rem; }
.site-footer__brand { flex: 1 1 18rem; }
.site-footer__name { font-family: var(--f-display); font-weight: 700; font-size: 1.75rem; color: #FFFFFF; margin: 0 0 .75rem; }
.site-footer__nav { flex: 1 1 18rem; }
.footer-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .15rem; }
.footer-list a { color: #FFFFFF; text-decoration: none; display: inline-block; padding: .35rem 0; }
.footer-list a:hover { text-decoration: underline; }
html[data-scheme="contrast"] .footer-list a { color: #FFE600; }
.site-footer__staff { flex: 1 1 14rem; display: flex; flex-direction: column; align-items: flex-start; gap: .75rem; }
.site-footer__staff p { margin: 0; }
.site-footer__bottom { border-top: 1px solid #24433A; padding-block: 1.25rem 2.25rem; font-size: .9375rem; }

/* ---------- Leuchtkasten ---------- */
.lightbox { width: 100vw; height: 100vh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(5, 12, 8, .94); color: #FFF; }
.lightbox[open] { display: flex; align-items: center; justify-content: center; }
.lightbox::backdrop { background: rgba(5, 12, 8, .94); }
.lightbox__figure { margin: 0; max-width: min(92vw, 80rem); max-height: 88vh; display: flex; flex-direction: column; align-items: center; gap: .75rem; }
.lightbox__figure img { max-width: 100%; max-height: 80vh; width: auto; height: auto; border-radius: .75rem; }
.lightbox__figure figcaption { font-size: 1.125rem; text-align: center; }
.lightbox__close, .lightbox__nav { position: absolute; display: flex; align-items: center; justify-content: center; width: 3.5rem; height: 3.5rem; border-radius: 50%; border: 0; background: #FFFFFF; color: #10291F; cursor: pointer; }
.lightbox__close { top: 1rem; right: 1rem; }
.lightbox__prev { left: 1rem; top: 50%; transform: translateY(-50%); }
.lightbox__next { right: 1rem; top: 50%; transform: translateY(-50%); }
@media (max-width: 40rem) { .lightbox__prev, .lightbox__next { top: auto; bottom: 1rem; transform: none; } }

/* ---------- Redaktionsseite ---------- */
.redaktion-page { background: var(--c-bg); }

/* ---------- Druck ---------- */
@media print {
	.utility, .a11y-panel, .site-header, .quick-wrap, .site-footer, .lightbox, .chips, .btn-row { display: none !important; }
	body { background: #fff; color: #000; }
	.hero, .page-head, .band--forest { background: #fff !important; color: #000 !important; }
}

/* =========================================================================
   Version 1.1 – Ortskarte, Im Fernsehen, Mitmachen
   ========================================================================= */
.section--flush-top { padding-top: 0; }
.page-map { margin: 0 0 3rem; }

/* ---------- Ortskarte ---------- */
.ortskarte { display: flex; flex-wrap: wrap; gap: 1.25rem; align-items: stretch; }
.ortskarte__map { flex: 1 1 32rem; min-width: 0; align-self: flex-start; position: relative; background: var(--c-surface); border-radius: var(--radius); overflow: hidden; }
.ortskarte__svg { display: block; width: 100%; height: auto; }
.ok-land { fill: #EEF1E6; }
.ok-forest path { fill: #C9DCC9; }
.ok-water path, .ok-water ellipse { fill: #9CC6DA; }
.ok-water-label text { fill: #22607F; font: italic 600 18px var(--f-accent); }
.ok-road path { fill: none; stroke: #FFFFFF; stroke-width: 9; stroke-linecap: round; }
.ok-road-label { fill: #56665D; font: 700 15px var(--f-body); }
.ok-neighbour circle { fill: #FFFFFF; stroke: #56665D; stroke-width: 3; }
.ok-neighbour text { fill: #4A5A52; font: 600 17px var(--f-body); }
.ok-place__halo { fill: var(--c-forest); opacity: .14; transition: opacity .2s ease, r .2s ease; }
.ok-place__dot { fill: var(--c-forest); stroke: #FFFFFF; stroke-width: 4; }
.ok-place__label { fill: #10291F; font: 800 24px var(--f-display); paint-order: stroke; stroke: #EEF1E6; stroke-width: 6px; stroke-linejoin: round; }
.ok-place.is-active .ok-place__halo { opacity: .35; }
.ok-place.is-active .ok-place__dot { fill: var(--c-gold); }
html[data-scheme="dark"] .ok-land { fill: #1F2B24; }
html[data-scheme="dark"] .ok-forest path { fill: #2A3D31; }
html[data-scheme="dark"] .ok-water path, html[data-scheme="dark"] .ok-water ellipse { fill: #2B5267; }
html[data-scheme="dark"] .ok-water-label text { fill: #9CC6DA; }
html[data-scheme="dark"] .ok-road path { stroke: #46594E; }
html[data-scheme="dark"] .ok-place__label { fill: #E9EEE9; stroke: #1F2B24; }
html[data-scheme="dark"] .ok-neighbour text, html[data-scheme="dark"] .ok-road-label { fill: #B8C6BD; }
html[data-scheme="contrast"] .ok-land { fill: #000; }
html[data-scheme="contrast"] .ok-forest path { fill: #1A1A1A; }
html[data-scheme="contrast"] .ok-water path, html[data-scheme="contrast"] .ok-water ellipse { fill: #002B45; stroke: #FFF; stroke-width: 2; }
html[data-scheme="contrast"] .ok-water-label text, html[data-scheme="contrast"] .ok-neighbour text, html[data-scheme="contrast"] .ok-road-label { fill: #FFF; }
html[data-scheme="contrast"] .ok-road path { stroke: #777; }
html[data-scheme="contrast"] .ok-place__label { fill: #FFE600; stroke: #000; }
html[data-scheme="contrast"] .ok-place__dot { fill: #FFF; stroke: #000; }
html[data-scheme="contrast"] .ok-place.is-active .ok-place__dot { fill: #FFE600; }
.ortskarte__pin { position: absolute; width: 5rem; height: 5rem; transform: translate(-50%, -50%); border-radius: 50%; border: 0; background: transparent; cursor: pointer; }
.ortskarte__pin:hover + .ortskarte__pin { }
.ortskarte__pin:focus-visible { outline: 3px solid var(--c-focus); outline-offset: 0; }
.ortskarte__note { position: absolute; right: 1rem; bottom: .75rem; margin: 0; font-size: .875rem; color: #56665D; background: rgba(255, 255, 255, .85); padding: .2rem .6rem; border-radius: 999px; }
html[data-scheme="contrast"] .ortskarte__note, html[data-scheme="dark"] .ortskarte__note { background: #000; color: #FFF; }
.ortskarte__side { flex: 1 1 22rem; min-width: 0; background: var(--c-surface); border-radius: var(--radius); padding: 1.6rem 1.75rem 1.9rem; display: flex; flex-direction: column; gap: 1rem; }
.ortskarte__tabs { display: flex; flex-wrap: wrap; gap: .5rem; }
.chip--light { color: var(--c-ink); border-color: var(--c-line-strong); }
.ortskarte__name { font-size: 1.9rem; margin: .25rem 0 0; }
.ortskarte__text { color: var(--c-muted); margin: 0; }
.orte-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.orte-list li { display: flex; align-items: center; gap: .9rem; padding: .7rem 0; border-bottom: 1px solid var(--c-line); }
.orte-list__icon { flex: 0 0 2.4rem; height: 2.4rem; border-radius: .8rem; background: var(--c-mint); color: var(--c-forest); display: flex; align-items: center; justify-content: center; }
html[data-scheme="dark"] .orte-list__icon { color: var(--c-mint-2); }
.orte-list__body { flex: 1 1 auto; min-width: 0; hyphens: auto; overflow-wrap: anywhere; display: flex; flex-direction: column; line-height: 1.35; }
.orte-list__body span { font-size: .9375rem; color: var(--c-muted-2); }
.orte-list__map { flex: 0 0 auto; font-weight: 700; font-size: .9375rem; padding: .45rem .8rem; border-radius: 999px; border: 2px solid var(--c-line-strong); text-decoration: none; }
.orte-list__map:hover { border-color: var(--c-forest); }
.ortskarte__panel .more { margin-top: .5rem; }

/* ---------- Im Fernsehen ---------- */
.band--ink { background: var(--c-hero); color: #FFFFFF; }
html[data-scheme="contrast"] .band--ink { border-block: 2px solid #FFF; }
.band--ink .lead { color: var(--c-on-hero-muted); }
.band--ink .display .accent { color: var(--c-gold); }
.media-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr)); gap: 1.25rem; }
.media-card { background: var(--c-surface); color: var(--c-ink); border-radius: 1.6rem; overflow: hidden; display: flex; flex-direction: column; }
.media-card__screen { position: relative; aspect-ratio: 16 / 9; background: #1A3D2D; overflow: hidden; }
.media-card__screen img { width: 100%; height: 100%; object-fit: cover; }
.media-card__pattern { position: absolute; inset: 0; background:
	radial-gradient(circle at 78% 30%, rgba(227, 167, 47, .9) 0 11.5%, transparent 12%),
	linear-gradient(180deg, transparent 55%, #2B6A8A 55% 72%, #21503A 72%),
	linear-gradient(180deg, #24493A, #1A3D2D); }
.media-card__play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 4.5rem; height: 4.5rem; border-radius: 50%; background: #FFFFFF; color: #10291F; display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 30px rgba(0, 0, 0, .3); padding-left: .25rem; }
.media-card__sender { position: absolute; left: .9rem; top: .9rem; background: #E3001B; color: #FFFFFF; font-size: .875rem; font-weight: 800; letter-spacing: .04em; padding: .35rem .75rem; border-radius: .5rem; }
html[data-scheme="contrast"] .media-card__sender { background: #000; border: 2px solid #FFF; }
.media-card__body { padding: 1.4rem 1.5rem 1.6rem; display: flex; flex-direction: column; gap: .55rem; flex: 1 1 auto; }
.media-card__meta { margin: 0; font-size: .9375rem; font-weight: 700; color: var(--c-muted-2); }
.media-card__title { margin: 0; font-size: 1.45rem; line-height: 1.2; }
.media-card__text { margin: 0; color: var(--c-muted); }
.media-card__btn { align-self: flex-start; margin-top: auto; }
.media-card__hint { margin: 0; font-size: .875rem; color: var(--c-muted-2); }

/* ---------- Mitmachen ---------- */
.mitmachen { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr)); gap: 1.25rem; align-items: start; }
.poll__title { font-size: 1.6rem; margin: 0; line-height: 1.2; }
.poll__options { border: 0; margin: 0 0 1rem; padding: 0; display: flex; flex-direction: column; gap: .55rem; }
.choice { position: relative; display: block; }
.choice input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.choice span { display: flex; align-items: center; gap: .8rem; min-height: 3.4rem; padding: .6rem 1rem; border-radius: 1rem; border: 2px solid var(--c-line-strong); background: var(--c-surface); font-weight: 600; cursor: pointer; }
.choice span::before { content: ""; flex: 0 0 1.4rem; height: 1.4rem; border-radius: 50%; border: 2px solid var(--c-muted-2); background: var(--c-surface); }
.choice input:checked + span { border-color: var(--c-forest); background: var(--c-mint); }
.choice input:checked + span::before { border: 6px solid var(--c-forest); }
.choice input:focus-visible + span { outline: 3px solid var(--c-focus); outline-offset: 2px; }
html[data-scheme="contrast"] .choice input:checked + span { background: #FFE600; color: #000; }
.poll__bars { list-style: none; margin: .25rem 0 0; padding: 0; display: flex; flex-direction: column; gap: .9rem; }
.poll__bar-label { display: flex; justify-content: space-between; gap: 1rem; font-weight: 600; margin-bottom: .3rem; }
.poll__bar { display: block; height: .9rem; border-radius: 999px; background: var(--c-mint); overflow: hidden; }
.poll__bar span { display: block; height: 100%; border-radius: 999px; background: var(--c-forest); min-width: .25rem; transition: width .6s ease; }
html[data-scheme="dark"] .poll__bar span { background: var(--c-gold); }
html[data-scheme="contrast"] .poll__bar { background: #333; border: 1px solid #FFF; }
html[data-scheme="contrast"] .poll__bar span { background: #FFE600; }
.linkbtn { font: inherit; font-weight: 700; color: var(--c-link); background: none; border: 0; padding: .6rem .25rem; cursor: pointer; text-decoration: underline; text-underline-offset: .2em; }
.notice { margin: 0; padding: .85rem 1.1rem; border-radius: 1rem; background: var(--c-lake-soft); }
.notice--ok { background: var(--c-mint); border: 2px solid #7FAF8E; }
.notice--warn { background: var(--c-gold-soft); border: 2px solid #E3A72F; }
html[data-scheme="contrast"] .notice { border: 2px solid #FFF; }
.hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form { display: flex; flex-direction: column; gap: 1rem; margin-top: .25rem; }
.field { display: flex; flex-direction: column; gap: .4rem; min-width: 0; }
.field-row { display: flex; flex-wrap: wrap; gap: 1rem; }
.field-row .field { flex: 1 1 12rem; }
.field label { font-weight: 700; }
.optional { font-weight: 500; color: var(--c-muted-2); }
.field input, .field select, .field textarea { font: inherit; font-size: 1.0625rem; width: 100%; min-height: 3.3rem; padding: .65rem .95rem; border: 2px solid var(--c-line-strong); border-radius: .9rem; background: var(--c-surface); color: var(--c-ink); }
.field textarea { min-height: 8rem; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { outline: 3px solid var(--c-focus); outline-offset: 2px; border-color: var(--c-forest); }
.check { display: flex; gap: .75rem; align-items: flex-start; font-size: 1rem; }
.check input { flex: 0 0 auto; width: 1.5rem; height: 1.5rem; margin-top: .1rem; accent-color: var(--c-forest); }
.btn--wide { width: 100%; min-height: 3.6rem; font-size: 1.125rem; }
.hinweis .card__note:last-child { font-size: .9375rem; }
@media (max-width: 40rem) {
	.ortskarte__note { position: static; display: block; text-align: center; border-radius: 0; background: transparent !important; color: var(--c-muted-2) !important; padding: .4rem .5rem .7rem; }
	.ortskarte__side { padding: 1.25rem 1.1rem 1.5rem; }
	.orte-list__map { padding: .4rem .65rem; }
	.ortskarte__pin { width: 3.5rem; height: 3.5rem; }
}
.card-verein__media { text-decoration: none; }
