/* ==========================================================================
   Brandenburger Orte – Styles
   Farben und Schriften aus dem Prototyp: Creme, Waldgrün, Terrakotta, Georgia.
   ========================================================================== */

:root {
	--creme: #FAF6EF;
	--weiss: #FFFFFF;
	--gruen: #2D5A3D;
	--gruen-mittel: #4A7C59;
	--gruen-hell: #EBF2EE;
	--gruen-nacht: #1A2E21;
	--terra: #B85C38;
	--terra-dunkel: #9E4A2A;
	--bernstein: #C98A2A;
	--sand: #FDF3E8;
	--text: #1E1810;
	--text-mittel: #4A3F35;
	--text-hell: #6F6359;
	--linie: #DDD5C8;
	--schatten-s: 0 2px 8px rgba(30, 24, 16, .08);
	--schatten-m: 0 6px 24px rgba(30, 24, 16, .12);
	--radius: 12px;
	--serif: Georgia, 'Times New Roman', serif;
	--sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
	--breite: 1280px;
	--schmal: 720px;
	--rand: clamp(16px, 4vw, 32px);
	--kopfhoehe: 64px;
}

/* ---------- Grundlagen ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--kopfhoehe) + 16px); -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	font-family: var(--serif);
	font-size: 17px;
	line-height: 1.65;
	color: var(--text);
	background: var(--creme);
}
h1, h2, h3, h4 { font-family: var(--serif); line-height: 1.2; margin: 0 0 .5em; font-weight: 700; text-wrap: balance; }
p { margin: 0 0 1em; }
a { color: var(--gruen); }
a:hover { color: var(--terra); }
img, svg, video, iframe { max-width: 100%; }
img { display: block; height: auto; }
:focus-visible { outline: 3px solid var(--bernstein); outline-offset: 2px; }
.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}
.bo-skip {
	position: absolute; left: 12px; top: -60px; z-index: 2000;
	background: var(--weiss); color: var(--gruen); padding: 10px 16px; border-radius: 8px;
	font-family: var(--sans); font-weight: 600;
}
.bo-skip:focus { top: 12px; }

.bo-breite { max-width: var(--breite); margin: 0 auto; padding: 0 var(--rand); }
.bo-schmal { max-width: calc(var(--schmal) + 2 * var(--rand)); margin: 0 auto; padding: 0 var(--rand); }

/* ---------- Knöpfe ---------- */
.bo-knopf {
	display: inline-flex; align-items: center; justify-content: center; gap: .4em;
	padding: .75em 1.6em; border-radius: 999px; border: 2px solid transparent;
	font-family: var(--sans); font-size: .95rem; font-weight: 600; line-height: 1.2;
	text-decoration: none; cursor: pointer; transition: background .2s, color .2s, border-color .2s, transform .2s;
}
.bo-knopf:hover { transform: translateY(-1px); text-decoration: none; }
.bo-knopf--terra { background: var(--terra); color: #fff; }
.bo-knopf--terra:hover { background: var(--terra-dunkel); color: #fff; }
.bo-knopf--gruen { background: var(--gruen); color: #fff; }
.bo-knopf--gruen:hover { background: var(--gruen-mittel); color: #fff; }
.bo-knopf--hell { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .55); }
.bo-knopf--hell:hover { border-color: #fff; background: rgba(255, 255, 255, .1); color: #fff; }
.bo-knopf--rand { background: var(--weiss); color: var(--gruen); border-color: var(--linie); }
.bo-knopf--rand:hover { border-color: var(--gruen); color: var(--gruen); }
.bo-knopf--klein { padding: .5em 1.1em; font-size: .85rem; }

/* ---------- Kopf & Navigation ---------- */
.bo-kopf {
	position: sticky; top: 0; z-index: 1000;
	background: var(--gruen); color: #fff; box-shadow: var(--schatten-m);
}
.admin-bar .bo-kopf { top: 32px; }
@media (max-width: 782px) { .admin-bar .bo-kopf { top: 46px; } }
@media (max-width: 600px) { .admin-bar .bo-kopf { top: 0; } }

.bo-kopf__innen {
	max-width: var(--breite); margin: 0 auto; padding: 0 var(--rand);
	height: var(--kopfhoehe); display: flex; align-items: center; justify-content: space-between; gap: 1rem;
}
.bo-marke { display: flex; align-items: center; gap: .55rem; color: #fff; text-decoration: none; min-width: 0; }
.bo-marke:hover { color: #fff; }
.bo-marke__zeichen { color: #A8D5B5; display: flex; }
.bo-marke__text { font-family: var(--serif); font-size: 1.2rem; font-weight: 700; letter-spacing: .01em; white-space: nowrap; }
.bo-marke__logo { max-height: 44px; width: auto; }

.bo-nav { display: flex; align-items: center; gap: 1.5rem; font-family: var(--sans); font-size: .92rem; }
.bo-menue { list-style: none; margin: 0; padding: 0; display: flex; gap: 1.4rem; }
.bo-menue a { color: rgba(255, 255, 255, .88); text-decoration: none; padding: .4rem 0; border-bottom: 2px solid transparent; }
.bo-menue a:hover, .bo-menue .current-menu-item > a { color: #fff; border-bottom-color: #A8D5B5; }
.bo-nav__cta {
	background: var(--terra); color: #fff; text-decoration: none; font-weight: 600;
	padding: .45rem 1rem; border-radius: 999px; white-space: nowrap;
}
.bo-nav__cta:hover { background: var(--terra-dunkel); color: #fff; }

.bo-menueknopf {
	display: none; align-items: center; gap: .5rem;
	background: none; border: 1.5px solid rgba(255, 255, 255, .4); color: #fff; border-radius: 8px;
	padding: .45rem .75rem; font-family: var(--sans); font-size: .9rem; cursor: pointer;
}
.bo-menueknopf__striche, .bo-menueknopf__striche::before, .bo-menueknopf__striche::after {
	display: block; width: 18px; height: 2px; background: currentColor; border-radius: 2px; position: relative; transition: transform .2s;
}
.bo-menueknopf__striche::before, .bo-menueknopf__striche::after { content: ''; position: absolute; left: 0; }
.bo-menueknopf__striche::before { top: -6px; }
.bo-menueknopf__striche::after { top: 6px; }
.bo-nav-offen .bo-menueknopf__striche { background: transparent; }
.bo-nav-offen .bo-menueknopf__striche::before { transform: translateY(6px) rotate(45deg); }
.bo-nav-offen .bo-menueknopf__striche::after { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 960px) {
	.bo-menueknopf { display: inline-flex; }
	.bo-nav {
		display: none; position: absolute; left: 0; right: 0; top: var(--kopfhoehe);
		flex-direction: column; align-items: stretch; gap: 0;
		background: var(--gruen); padding: .5rem var(--rand) 1.25rem; box-shadow: var(--schatten-m);
	}
	.bo-nav-offen .bo-nav { display: flex; }
	.bo-menue { flex-direction: column; gap: 0; }
	.bo-menue a { display: block; padding: .8rem 0; border-bottom: 1px solid rgba(255, 255, 255, .12); }
	.bo-nav__cta { margin-top: 1rem; text-align: center; padding: .75rem 1rem; }
}

/* ---------- Einstieg (Hero) ---------- */
.bo-hero {
	background: linear-gradient(135deg, #2D5A3D 0%, #3D7A54 55%, #4F8E65 100%);
	color: #fff; text-align: center; position: relative; overflow: hidden;
	padding: clamp(3.5rem, 8vw, 6rem) 0 clamp(3rem, 6vw, 4.5rem);
}
.bo-hero::before {
	content: ''; position: absolute; inset: 0; pointer-events: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60'%3E%3Ccircle cx='30' cy='30' r='1.5' fill='rgba(255,255,255,.08)'/%3E%3C/svg%3E");
}
.bo-hero__innen { position: relative; max-width: 860px; margin: 0 auto; padding: 0 var(--rand); }
.bo-hero__eyebrow {
	font-family: var(--sans); font-size: .8rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
	color: rgba(255, 255, 255, .75); margin-bottom: 1rem;
}
.bo-hero__titel { font-size: clamp(2.1rem, 5.5vw, 3.6rem); font-style: italic; margin-bottom: 1.1rem; }
.bo-hero__titel em { font-style: normal; color: #A8D5B5; }
.bo-hero__text {
	font-family: var(--sans); font-size: clamp(1rem, 2vw, 1.15rem); color: rgba(255, 255, 255, .9);
	max-width: 600px; margin: 0 auto 2rem;
}
.bo-hero__knoepfe { display: flex; gap: .75rem; justify-content: center; flex-wrap: wrap; }
.bo-hero__zahlen {
	display: flex; justify-content: center; flex-wrap: wrap; gap: 1.5rem 3rem; margin: 2.75rem 0 0;
}
.bo-hero__zahlen div { display: flex; flex-direction: column-reverse; align-items: center; }
.bo-hero__zahlen dd { margin: 0; font-size: 2.1rem; font-weight: 700; color: #A8D5B5; line-height: 1.1; }
.bo-hero__zahlen dt {
	font-family: var(--sans); font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; color: rgba(255, 255, 255, .72);
}

/* ---------- Abschnitte ---------- */
.bo-abschnitt { padding: clamp(2.5rem, 6vw, 4rem) 0; }
.bo-abschnitt--hell { background: var(--weiss); border-top: 1px solid var(--linie); border-bottom: 1px solid var(--linie); }
.bo-abschnitt--dunkel { background: var(--gruen-nacht); color: #fff; }
.bo-abschnitt--dunkel .bo-abschnittskopf__titel { color: #fff; }
.bo-abschnitt--dunkel .bo-abschnittskopf__link { color: #A8D5B5; }
.bo-abschnittskopf {
	display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap;
	margin-bottom: 1.4rem;
}
.bo-abschnittskopf__titel { font-size: clamp(1.3rem, 2.5vw, 1.6rem); margin: 0; }
.bo-abschnittskopf__link, .bo-zaehler { font-family: var(--sans); font-size: .9rem; }
.bo-abschnittskopf__link { font-weight: 600; text-decoration: none; }
.bo-abschnittskopf__link::after { content: ' →'; }
.bo-zaehler { color: var(--text-hell); }

.bo-seitenkopf { background: var(--weiss); border-bottom: 1px solid var(--linie); padding: clamp(2rem, 5vw, 3.25rem) 0 clamp(1.5rem, 4vw, 2.25rem); }
.bo-seitenkopf__dach { font-family: var(--sans); font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; margin-bottom: .4rem; }
.bo-seitenkopf__dach a { color: var(--text-hell); text-decoration: none; }
.bo-seitenkopf__titel { font-size: clamp(1.9rem, 4.5vw, 2.8rem); margin-bottom: .4rem; }
.bo-seitenkopf__text { max-width: 640px; color: var(--text-mittel); font-family: var(--sans); }
.bo-seitenkopf__text p:last-child { margin-bottom: 0; }

.bo-reiter { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: 1.25rem; font-family: var(--sans); font-size: .9rem; }
.bo-reiter a {
	padding: .45rem 1rem; border-radius: 999px; border: 1.5px solid var(--linie); text-decoration: none; color: var(--text-mittel); background: var(--creme);
}
.bo-reiter a:hover { border-color: var(--gruen-mittel); color: var(--gruen); }
.bo-reiter a[aria-current="page"] { background: var(--gruen); border-color: var(--gruen); color: #fff; }

/* ---------- Verzeichnis: Filterleiste ---------- */
.bo-filter {
	background: var(--weiss); border-bottom: 1px solid var(--linie); box-shadow: var(--schatten-s);
	position: sticky; top: var(--kopfhoehe); z-index: 900;
}
.admin-bar .bo-filter { top: calc(var(--kopfhoehe) + 32px); }
@media (max-width: 782px) { .admin-bar .bo-filter { top: calc(var(--kopfhoehe) + 46px); } }
@media (max-width: 600px) { .admin-bar .bo-filter { top: var(--kopfhoehe); } }
.bo-filter__innen {
	max-width: var(--breite); margin: 0 auto; padding: .9rem var(--rand);
	display: flex; gap: .75rem 1rem; align-items: center; flex-wrap: wrap;
}
.bo-suche { position: relative; flex: 1 1 260px; min-width: 0; }
.bo-suche__icon { position: absolute; left: .8rem; top: 50%; transform: translateY(-50%); color: var(--text-hell); pointer-events: none; }
.bo-suche input, .bo-auswahl select, .bo-suchformular input {
	width: 100%; font: inherit; font-family: var(--sans); font-size: .95rem; color: var(--text);
	background: var(--creme); border: 1.5px solid var(--linie); border-radius: 8px; padding: .6rem 1rem;
}
.bo-suche input { padding-left: 2.4rem; }
.bo-suche input:focus, .bo-auswahl select:focus, .bo-suchformular input:focus { outline: none; border-color: var(--gruen-mittel); box-shadow: 0 0 0 3px var(--gruen-hell); }
.bo-auswahl { flex: 0 1 220px; }
.bo-auswahl select { appearance: auto; padding-right: .6rem; cursor: pointer; }

.bo-chips { display: flex; gap: .4rem; flex-wrap: wrap; flex: 1 1 100%; order: 3; }
@media (max-width: 700px) {
	.bo-chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 calc(-1 * var(--rand)); padding: 0 var(--rand) 2px; }
	.bo-chips::-webkit-scrollbar { display: none; }
	.bo-chip { white-space: nowrap; flex: 0 0 auto; }
	.bo-filter { position: static; box-shadow: none; }
	.bo-filter__innen { gap: .6rem; }
	.bo-suche { flex-basis: 100%; }
	.bo-auswahl { flex: 1 1 0; }
	.bo-ansicht { margin-left: 0 !important; }
	.bo-verzeichnis__layout { padding-top: 1.25rem; }
}
.bo-chip {
	--chip: var(--gruen);
	font-family: var(--sans); font-size: .84rem; font-weight: 500; line-height: 1.2;
	padding: .45rem .9rem; border-radius: 999px; border: 1.5px solid var(--linie);
	background: var(--creme); color: var(--text-mittel); cursor: pointer; transition: all .15s;
}
.bo-chip:hover { border-color: var(--chip); color: var(--text); }
.bo-chip[aria-pressed="true"] { background: var(--chip); border-color: var(--chip); color: #fff; }

.bo-ansicht { display: none; border: 1.5px solid var(--linie); border-radius: 8px; overflow: hidden; font-family: var(--sans); }
.bo-ansicht button { border: 0; background: var(--creme); color: var(--text-mittel); padding: .5rem .9rem; font: inherit; font-size: .85rem; cursor: pointer; }
.bo-ansicht button[aria-pressed="true"] { background: var(--gruen); color: #fff; }

/* ---------- Verzeichnis: Raster & Karte ---------- */
.bo-verzeichnis__layout {
	display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 2rem; align-items: start;
	padding-top: 2rem; padding-bottom: 3rem;
}
.bo-raster { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 1.25rem; }
.bo-verzeichnis .bo-karte {
	position: sticky; top: calc(var(--kopfhoehe) + 140px);
	height: calc(100vh - var(--kopfhoehe) - 170px); min-height: 420px; max-height: 680px;
}
.bo-leer { padding: 2rem; text-align: center; color: var(--text-hell); font-family: var(--sans); background: var(--weiss); border-radius: var(--radius); border: 1px dashed var(--linie); }

@media (max-width: 1080px) {
	.bo-verzeichnis__layout { grid-template-columns: minmax(0, 1fr); }
	.bo-ansicht { display: inline-flex; margin-left: auto; }
	.bo-verzeichnis[data-ansicht="raster"] .bo-verzeichnis__layout > .bo-karte { display: none; }
	.bo-verzeichnis[data-ansicht="karte"] .bo-verzeichnis__liste { display: none; }
	.bo-verzeichnis .bo-karte { position: relative; top: 0; height: 70vh; max-height: none; }
}

.bo-karte {
	border-radius: var(--radius); overflow: hidden; border: 1px solid var(--linie);
	background: var(--gruen-hell); box-shadow: var(--schatten-s);
	display: flex; align-items: center; justify-content: center;
}
.bo-karte--aktiv { display: block; }
.bo-karte--klein { height: 260px; margin-top: 1.25rem; }
.bo-karte__zustimmung { text-align: center; padding: 1.5rem; max-width: 300px; font-family: var(--sans); font-size: .9rem; color: var(--text-mittel); }
.bo-karte__zustimmung svg { margin: 0 auto .75rem; }
.bo-karte__zustimmung strong { color: var(--text); font-size: 1rem; }
.bo-karte__merken { display: block; margin-top: .75rem; font-size: .8rem; color: var(--text-hell); }

.bo-pin-huelle { background: none; border: 0; }
.bo-pin {
	width: 34px; height: 34px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg);
	display: flex; align-items: center; justify-content: center;
	border: 2px solid #fff; box-shadow: 0 2px 8px rgba(0, 0, 0, .3);
}
.bo-pin span { transform: rotate(45deg); font-size: 14px; line-height: 1; }
.bo-popup { font-family: var(--sans); font-size: .9rem; line-height: 1.5; }
.bo-popup strong { font-family: var(--serif); font-size: 1rem; }
.bo-popup a { font-weight: 600; }
.leaflet-container { font-family: var(--sans); }

/* ---------- Kachel: Ort ---------- */
.bo-kachel {
	--kat: var(--gruen);
	position: relative; display: flex; flex-direction: column;
	background: var(--weiss); border: 1px solid var(--linie); border-radius: var(--radius);
	overflow: hidden; box-shadow: var(--schatten-s); transition: transform .2s, box-shadow .2s, border-color .2s;
}
.bo-kachel[hidden] { display: none; }
.bo-kachel:hover, .bo-kachel:focus-within { transform: translateY(-3px); box-shadow: var(--schatten-m); border-color: var(--kat); }
.bo-kachel__bild { position: relative; aspect-ratio: 16 / 10; background: var(--gruen-hell); overflow: hidden; }
.bo-kachel__bild img, .bo-kachel__bild .bo-illu { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s; }
.bo-kachel:hover .bo-kachel__bild img { transform: scale(1.03); }
.bo-badge {
	position: absolute; top: .75rem; left: .75rem;
	background: var(--kat, var(--gruen)); color: #fff; text-decoration: none;
	font-family: var(--sans); font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
	padding: .3rem .7rem; border-radius: 999px;
}
.bo-badge--statisch { position: static; display: inline-block; }
.bo-badge--statisch:hover { color: #fff; filter: brightness(1.1); }
.bo-kachel__extras { position: absolute; right: .75rem; bottom: .75rem; display: flex; gap: .35rem; }
.bo-kachel__film {
	display: inline-flex; align-items: center; gap: .3rem;
	background: rgba(26, 46, 33, .85); color: #fff; font-family: var(--sans); font-size: .75rem; font-weight: 600;
	padding: .25rem .6rem; border-radius: 999px;
}
.bo-kachel__text { padding: 1.05rem 1.25rem 1.25rem; display: flex; flex-direction: column; flex: 1; }
.bo-dachzeile {
	font-family: var(--sans); font-size: .76rem; text-transform: uppercase; letter-spacing: .07em;
	color: var(--text-hell); margin-bottom: .3rem; display: flex; gap: .5rem; flex-wrap: wrap; align-items: center;
}
.bo-dachzeile a { color: inherit; text-decoration: none; }
.bo-dachzeile a:hover { color: var(--gruen); }
.bo-kachel__titel { font-size: 1.15rem; margin-bottom: .3rem; }
.bo-kachel__titel a { color: var(--text); text-decoration: none; }
.bo-kachel__titel a::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.bo-kachel__unter { font-size: .95rem; color: var(--text-mittel); margin-bottom: .8rem; }
.bo-merkmale { list-style: none; margin: 0 0 .9rem; padding: 0; display: flex; gap: .35rem; flex-wrap: wrap; }
.bo-merkmale li {
	font-family: var(--sans); font-size: .74rem; font-weight: 500; color: var(--gruen);
	background: var(--gruen-hell); padding: .2rem .55rem; border-radius: 6px;
}
.bo-merkmale--gross li { font-size: .88rem; padding: .35rem .75rem; }
.bo-kachel__mehr { margin-top: auto; font-family: var(--sans); font-size: .85rem; font-weight: 600; color: var(--gruen); }
.bo-kachel__mehr::after { content: ' →'; display: inline-block; transition: transform .2s; }
.bo-kachel:hover .bo-kachel__mehr::after { transform: translateX(3px); }

/* ---------- Kachel: Beitrag ---------- */
.bo-raster--beitraege { grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.bo-beitrag {
	position: relative; display: flex; flex-direction: column;
	background: var(--weiss); border: 1px solid var(--linie); border-radius: var(--radius); overflow: hidden;
	box-shadow: var(--schatten-s); transition: transform .2s, box-shadow .2s;
}
.bo-beitrag:hover, .bo-beitrag:focus-within { transform: translateY(-3px); box-shadow: var(--schatten-m); }
.bo-beitrag__bild { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--gruen-hell); }
.bo-beitrag__bild img, .bo-beitrag__bild .bo-illu { width: 100%; height: 100%; object-fit: cover; }
.bo-beitrag__text { padding: 1.05rem 1.25rem 1.2rem; display: flex; flex-direction: column; flex: 1; }
.bo-beitrag__titel { font-size: 1.15rem; margin-bottom: .45rem; }
.bo-beitrag__titel a { color: var(--text); text-decoration: none; }
.bo-beitrag__titel a::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.bo-beitrag__auszug { font-size: .95rem; color: var(--text-mittel); }
.bo-beitrag__meta { margin: auto 0 0; font-family: var(--sans); font-size: .8rem; color: var(--text-hell); }
.bo-beitrag--kurzmeldung { border-left: 4px solid var(--bernstein); }

.bo-format {
	display: inline-block; font-weight: 700; color: #fff; background: var(--gruen);
	padding: .15rem .55rem; border-radius: 4px; letter-spacing: .06em;
}
a.bo-format:hover, .bo-dachzeile .bo-format, .bo-dachzeile a.bo-format:hover { color: #fff; }
.bo-format--kurzmeldung { background: #8A5C12; }
.bo-format--kurzfilm { background: var(--terra); }

.bo-beitrag__play, .bo-video__play {
	position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
	width: 64px; height: 64px; border-radius: 50%; background: rgba(184, 92, 56, .92);
	box-shadow: 0 4px 18px rgba(0, 0, 0, .3); transition: transform .2s, background .2s;
}
.bo-beitrag__play::after, .bo-video__play::after {
	content: ''; position: absolute; left: 50%; top: 50%; transform: translate(-35%, -50%);
	border-style: solid; border-width: 11px 0 11px 18px; border-color: transparent transparent transparent #fff;
}
.bo-beitrag:hover .bo-beitrag__play { transform: translate(-50%, -50%) scale(1.08); background: var(--terra); }

/* Kurzfilm-Reihe auf der Startseite: hochkant wie Shorts/Reels */
.bo-raster--filme { grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); }
.bo-raster--filme .bo-beitrag { background: #24402F; border-color: #2F5440; color: #fff; }
.bo-raster--filme .bo-beitrag__bild { aspect-ratio: 9 / 13; }
.bo-raster--filme .bo-beitrag__titel a { color: #fff; }
.bo-raster--filme .bo-dachzeile, .bo-raster--filme .bo-beitrag__meta { color: rgba(255, 255, 255, .7); }

/* ---------- Über uns ---------- */
.bo-ueber { background: var(--gruen); color: #fff; padding: clamp(3rem, 7vw, 4.5rem) 0; text-align: center; }
.bo-ueber h2 { font-size: clamp(1.6rem, 3.5vw, 2.1rem); }
.bo-ueber p { color: rgba(255, 255, 255, .86); }
.bo-werte { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 1.25rem; margin-top: 2.25rem; text-align: left; max-width: 1000px; }
.bo-wert { background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .14); border-radius: var(--radius); padding: 1.3rem 1.4rem; }
.bo-wert h3 { font-size: 1.05rem; margin-bottom: .4rem; color: #fff; }
.bo-wert p { font-family: var(--sans); font-size: .9rem; margin: 0; color: rgba(255, 255, 255, .78); }
.bo-ueber__knoepfe { display: flex; gap: .75rem; justify-content: center; flex-wrap: wrap; margin-top: 2.25rem; }

/* ---------- Ort vorschlagen ---------- */
.bo-einreichen { background: var(--sand); border-top: 1px solid var(--linie); padding: clamp(3rem, 7vw, 4.5rem) 0; }
.bo-einreichen h2 { font-size: clamp(1.5rem, 3vw, 1.9rem); text-align: center; }
.bo-einreichen > .bo-schmal > p { text-align: center; color: var(--text-mittel); }
.bo-formular { display: grid; gap: 1rem; margin-top: 1.75rem; font-family: var(--sans); }
.bo-formular label { display: block; font-size: .9rem; font-weight: 600; color: var(--text-mittel); }
.bo-formular label > input, .bo-formular label > textarea { display: block; margin-top: .35rem; }
.bo-formular input, .bo-formular textarea {
	font: inherit; font-weight: 400; font-size: 1rem; color: var(--text);
	background: #fff; border: 1.5px solid var(--linie); border-radius: 8px; padding: .7rem .95rem; width: 100%;
}
.bo-formular textarea { resize: vertical; min-height: 110px; }
.bo-formular input:focus, .bo-formular textarea:focus { outline: none; border-color: var(--gruen-mittel); box-shadow: 0 0 0 3px var(--gruen-hell); }
.bo-formular__reihe { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 1rem; }
.bo-formular__honig { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.bo-formular__hinweis { font-size: .82rem; color: var(--text-hell); margin: 0; }
.bo-formular .bo-knopf { justify-self: start; }
.bo-optional { font-weight: 400; color: var(--text-hell); }
.bo-meldung { font-family: var(--sans); padding: .85rem 1.1rem; border-radius: 8px; margin: 1.25rem 0 0; }
.bo-meldung--ok { background: var(--gruen-hell); color: var(--gruen); border: 1px solid #C5DCCB; }
.bo-meldung--fehler { background: #FBEAE3; color: #8A3A1C; border: 1px solid #EBC3B2; }

/* ---------- Einzelseite Ort ---------- */
.bo-ort__kopf { position: relative; background: var(--gruen-nacht); color: #fff; }
.bo-ort__bild { height: clamp(260px, 46vw, 520px); overflow: hidden; }
.bo-ort__bild img, .bo-ort__bild .bo-illu { width: 100%; height: 100%; object-fit: cover; }
.bo-ort__bild .bo-illu { background: var(--creme); }
.bo-ort__bild::after {
	content: ''; position: absolute; inset: 0; pointer-events: none;
	background: linear-gradient(to top, rgba(20, 34, 25, .88) 0%, rgba(20, 34, 25, .35) 45%, rgba(20, 34, 25, 0) 70%);
}
.bo-ort__titelbox {
	position: absolute; left: 0; right: 0; bottom: 0; z-index: 1;
	max-width: var(--breite); margin: 0 auto; padding: 0 var(--rand) clamp(1.5rem, 4vw, 2.5rem);
}
.bo-ort__dach { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; font-family: var(--sans); font-size: .88rem; margin-bottom: .6rem; color: rgba(255, 255, 255, .88); }
.bo-ort__dach a { color: #fff; }
.bo-ort__dach .bo-badge { background: var(--kat); }
.bo-ort__titel { font-size: clamp(2rem, 5vw, 3.3rem); margin-bottom: .25rem; text-shadow: 0 2px 16px rgba(0, 0, 0, .35); }
.bo-ort__unter { font-size: clamp(1.05rem, 2.2vw, 1.3rem); font-style: italic; color: rgba(255, 255, 255, .9); margin: 0; }

.bo-ort__raster {
	display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: clamp(2rem, 5vw, 4rem);
	padding-top: clamp(2rem, 5vw, 3rem); padding-bottom: clamp(2.5rem, 6vw, 4rem); align-items: start;
}
.bo-ort__haupt { max-width: var(--schmal); }
.bo-ort__seite { position: sticky; top: calc(var(--kopfhoehe) + 24px); }
@media (max-width: 900px) {
	.bo-ort__raster { grid-template-columns: minmax(0, 1fr); }
	.bo-ort__seite { position: static; }
}
.bo-steckbrief { background: var(--weiss); border: 1px solid var(--linie); border-top: 4px solid var(--kat, var(--gruen)); border-radius: var(--radius); padding: 1.4rem 1.5rem; box-shadow: var(--schatten-s); }
.bo-steckbrief__titel { font-family: var(--sans); font-size: .78rem; text-transform: uppercase; letter-spacing: .1em; color: var(--text-hell); margin-bottom: 1rem; }
.bo-steckbrief dl { margin: 0; display: grid; gap: .85rem; }
.bo-steckbrief dt { font-family: var(--sans); font-size: .74rem; text-transform: uppercase; letter-spacing: .07em; color: var(--text-hell); }
.bo-steckbrief dd { margin: 0; font-family: var(--sans); font-size: .95rem; color: var(--text); }
.bo-steckbrief__links { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: 1.25rem; }

.bo-teilen {
	display: inline-flex; align-items: center; gap: .5rem; margin-top: 1.25rem;
	background: none; border: 1.5px solid var(--linie); border-radius: 999px; padding: .55rem 1.1rem;
	font-family: var(--sans); font-size: .88rem; font-weight: 600; color: var(--gruen); cursor: pointer;
}
.bo-teilen:hover { border-color: var(--gruen); background: var(--weiss); }

/* ---------- Fließtext ---------- */
.bo-inhalt { font-size: 1.1rem; line-height: 1.75; }
.bo-inhalt > * + * { margin-top: 0; }
.bo-inhalt p, .bo-inhalt ul, .bo-inhalt ol { margin: 0 0 1.25em; }
.bo-inhalt h2 { font-size: 1.55rem; margin: 2em 0 .6em; }
.bo-inhalt h3 { font-size: 1.25rem; margin: 1.75em 0 .5em; }
.bo-inhalt a { text-decoration-thickness: 1px; text-underline-offset: 3px; }
.bo-inhalt blockquote, .bo-zitat blockquote {
	margin: 2em 0; padding: 1rem 1.5rem; border-left: 4px solid var(--gruen-mittel);
	background: var(--gruen-hell); border-radius: 0 10px 10px 0; font-style: italic; color: var(--gruen); font-size: 1.2rem;
}
.bo-zitat { margin: 2em 0; }
.bo-zitat blockquote { margin: 0; }
.bo-zitat blockquote p { margin: 0; }
.bo-zitat figcaption { font-family: var(--sans); font-size: .88rem; color: var(--text-hell); margin-top: .6rem; padding-left: 1.5rem; }
.bo-zitat figcaption::before { content: '— '; }
.bo-zwischentitel { font-family: var(--sans); font-size: .8rem !important; text-transform: uppercase; letter-spacing: .12em; color: var(--text-hell); margin: 2.25em 0 .8em !important; }
.bo-inhalt figure { margin: 2em 0; }
.bo-inhalt figcaption, .bo-artikel__bild figcaption { font-family: var(--sans); font-size: .85rem; color: var(--text-hell); margin-top: .5rem; }
.bo-inhalt img { border-radius: 8px; }
.bo-inhalt .alignwide { margin-left: calc(-1 * min(12vw, 160px)); margin-right: calc(-1 * min(12vw, 160px)); max-width: none; }
.bo-inhalt .alignfull { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); max-width: 100vw; width: 100vw; }
.bo-inhalt .alignfull img { border-radius: 0; }
@media (max-width: 900px) { .bo-inhalt .alignwide { margin-left: 0; margin-right: 0; } }
.bo-inhalt .wp-block-embed, .bo-inhalt .wp-block-video { margin: 2em 0; }

/* ---------- Artikel ---------- */
.bo-artikel__kopf { padding-top: clamp(2.25rem, 6vw, 4rem); padding-bottom: 1.5rem; }
.bo-artikel__titel { font-size: clamp(2rem, 5vw, 3rem); margin-bottom: .6rem; }
.bo-artikel__vorspann { font-size: clamp(1.15rem, 2.2vw, 1.35rem); color: var(--text-mittel); line-height: 1.55; }
.bo-artikel__meta { font-family: var(--sans); font-size: .88rem; color: var(--text-hell); margin: 0; }
.bo-artikel__bild { margin: 0 auto 2.5rem; max-width: 1100px; padding: 0 var(--rand); }
.bo-artikel__bild img { width: 100%; border-radius: var(--radius); }
.bo-artikel__inhalt { padding-bottom: 1rem; }
.bo-artikel__fuss { padding-bottom: clamp(2.5rem, 6vw, 4rem); }
.bo-artikel--kurzmeldung .bo-artikel__titel { font-size: clamp(1.7rem, 4vw, 2.3rem); }
.bo-schlagworte a {
	display: inline-block; font-family: var(--sans); font-size: .82rem; text-decoration: none;
	background: var(--gruen-hell); padding: .2rem .65rem; border-radius: 6px; margin: 0 .2rem .4rem 0;
}

/* ---------- YouTube (Zwei-Klick) ---------- */
.bo-video {
	position: relative; aspect-ratio: 16 / 9; border-radius: var(--radius); overflow: hidden; margin: 2em 0;
	background: var(--gruen-nacht) var(--bo-poster, none) center / cover no-repeat;
}
.bo-video--hoch { aspect-ratio: 9 / 16; max-width: 400px; margin-left: auto; margin-right: auto; }
.bo-video::before { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(20, 34, 25, .85), rgba(20, 34, 25, .25)); }
.bo-video--aktiv::before { display: none; }
.bo-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.bo-video__start { position: absolute; inset: 0; background: none; border: 0; cursor: pointer; color: #fff; }
.bo-video__start:hover .bo-video__play { transform: translate(-50%, -50%) scale(1.08); background: var(--terra); }
.bo-video__label { position: absolute; left: 0; right: 0; top: calc(50% + 44px); font-family: var(--sans); font-weight: 600; font-size: .95rem; }
.bo-video__hinweis {
	position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: .75rem 1rem;
	font-family: var(--sans); font-size: .78rem; color: rgba(255, 255, 255, .85); text-align: center;
}
.bo-video__hinweis a { color: #fff; }
.bo-inhalt .bo-video { margin: 2em 0; }

/* ---------- Leerzustände, Blättern, Suche ---------- */
.bo-leerzustand { text-align: center; padding: 3rem 1rem; }
.bo-leerzustand h2 { font-size: 1.5rem; }
.bo-leerzustand p { color: var(--text-mittel); }
.bo-blaettern { margin-top: 2.5rem; font-family: var(--sans); }
.bo-blaettern .nav-links { display: flex; gap: .4rem; justify-content: center; flex-wrap: wrap; }
.bo-blaettern .page-numbers {
	padding: .5rem .9rem; border-radius: 8px; border: 1px solid var(--linie); background: var(--weiss); text-decoration: none;
}
.bo-blaettern .page-numbers.current { background: var(--gruen); color: #fff; border-color: var(--gruen); }
.bo-suchformular { display: flex; gap: .5rem; max-width: 520px; margin: 1.25rem auto; }
.bo-seitenkopf .bo-suchformular { margin-left: 0; }
.bo-suchformular label { flex: 1; }

/* ---------- Kommentare ---------- */
.bo-kommentare { padding-bottom: 3rem; font-family: var(--sans); }
.bo-kommentarliste { padding-left: 1.2rem; }
.bo-kommentarbereich textarea, .bo-kommentarbereich input[type="text"], .bo-kommentarbereich input[type="email"], .bo-kommentarbereich input[type="url"] {
	width: 100%; font: inherit; padding: .6rem .8rem; border: 1.5px solid var(--linie); border-radius: 8px; background: #fff;
}
.bo-kommentarbereich .submit { background: var(--gruen); color: #fff; border: 0; border-radius: 999px; padding: .7rem 1.4rem; font-weight: 600; cursor: pointer; }

/* ---------- Fuß ---------- */
.bo-fuss { background: var(--gruen-nacht); color: rgba(255, 255, 255, .7); font-family: var(--sans); font-size: .9rem; }
.bo-fuss__innen {
	max-width: var(--breite); margin: 0 auto; padding: 3rem var(--rand) 2rem;
	display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 2rem;
}
@media (max-width: 760px) { .bo-fuss__innen { grid-template-columns: 1fr; } }
.bo-fuss__name { font-family: var(--serif); font-size: 1.25rem; font-weight: 700; color: #fff; text-decoration: none; }
.bo-fuss__marke p { margin-top: .6rem; max-width: 380px; }
.bo-fuss__titel { font-family: var(--sans); font-size: .75rem; text-transform: uppercase; letter-spacing: .12em; color: rgba(255, 255, 255, .5); margin-bottom: .75rem; }
.bo-fuss__links, .bo-social { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.bo-fuss a { color: rgba(255, 255, 255, .8); }
.bo-fuss a:hover { color: #fff; }
.bo-fuss__unten { border-top: 1px solid rgba(255, 255, 255, .1); text-align: center; padding: 1.1rem var(--rand); font-size: .8rem; color: rgba(255, 255, 255, .5); }

/* ---------- Seiten mit Seitenleiste (Meldungen, Kalender) ---------- */
.bo-mit-seitenleiste {
	display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: clamp(2rem, 5vw, 3.5rem); align-items: start;
	padding-top: clamp(1.75rem, 4vw, 2.5rem); padding-bottom: clamp(2.5rem, 6vw, 4rem);
}
.bo-seitenleiste-klebend { position: sticky; top: calc(var(--kopfhoehe) + 24px); display: grid; gap: 1.25rem; }
.bo-kalender .bo-seitenleiste-klebend { top: calc(var(--kopfhoehe) + 140px); }
.bo-nur-schmal { display: none; }
@media (max-width: 960px) {
	.bo-mit-seitenleiste { grid-template-columns: minmax(0, 1fr); }
	.bo-seitenleiste-klebend { position: static; }
	.bo-nur-schmal { display: block; }
	.bo-mit-seitenleiste--band .bo-mit-seitenleiste__seite .bo-newsletter { display: none; }
}
.bo-seitenkasten { background: var(--weiss); border: 1px solid var(--linie); border-radius: var(--radius); padding: 1.25rem 1.35rem; font-family: var(--sans); font-size: .92rem; }
.bo-seitenkasten p { color: var(--text-mittel); }
.bo-seitenkasten__titel { font-family: var(--sans); font-size: .78rem; text-transform: uppercase; letter-spacing: .1em; color: var(--text-hell); margin-bottom: .9rem; }
.bo-seitenkasten .bo-termin { border: 0; box-shadow: none; padding: .6rem 0; border-radius: 0; border-bottom: 1px solid var(--linie); background: none; }
.bo-seitenkasten .bo-termin:hover { transform: none; }
.bo-seitenkasten .bo-abschnittskopf__link { display: inline-block; margin-top: .9rem; }
.bo-seitenkopf--mit-aktion { display: flex; justify-content: space-between; align-items: flex-end; gap: 1.5rem 3rem; flex-wrap: wrap; }
.bo-seitenkopf__aktion { max-width: 260px; }
.bo-klein { font-family: var(--sans); font-size: .8rem; color: var(--text-hell); margin: .5rem 0 0; }

/* ---------- Newsletter-Kasten ---------- */
.bo-newsletter {
	background: var(--gruen); color: #fff; border-radius: var(--radius); padding: 1.5rem 1.5rem 1.6rem;
	box-shadow: var(--schatten-m); position: relative; overflow: hidden;
}
.bo-newsletter::after {
	content: ''; position: absolute; right: -40px; top: -40px; width: 140px; height: 140px; border-radius: 50%;
	background: rgba(168, 213, 181, .14); pointer-events: none;
}
.bo-newsletter__icon { color: #A8D5B5; margin-bottom: .6rem; }
.bo-newsletter__titel { font-size: 1.35rem; color: #fff; margin-bottom: .4rem; }
.bo-newsletter p { font-family: var(--sans); font-size: .92rem; color: rgba(255, 255, 255, .86); margin-bottom: 1.1rem; }
.bo-newsletter .bo-knopf { position: relative; z-index: 1; }
.bo-newsletter__bald { font-style: italic; margin: 0 !important; }
.bo-newsletter--band { display: grid; grid-template-columns: auto 1fr; gap: 0 1rem; align-items: start; margin: .5rem 0; }
.bo-newsletter--band .bo-newsletter__icon { grid-row: span 2; margin: 0; }
.bo-newsletter--band .bo-knopf, .bo-newsletter--band .bo-newsletter__bald { grid-column: 2; justify-self: start; }

/* ---------- Meldungen ---------- */
.bo-meldungen { list-style: none; margin: 0; padding: 0; }
.bo-meldung-eintrag {
	display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 1.25rem;
	padding: 1.4rem 0; border-bottom: 1px solid var(--linie);
}
.bo-meldung-eintrag:first-child { padding-top: 0; }
.bo-meldung-eintrag__datum {
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	background: var(--weiss); border: 1px solid var(--linie); border-top: 3px solid var(--bernstein); border-radius: 8px;
	height: 64px; font-family: var(--sans); line-height: 1.1;
}
.bo-meldung-eintrag__datum span:first-child { font-size: 1.3rem; font-weight: 700; color: var(--text); }
.bo-meldung-eintrag__datum span:last-child { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: var(--text-hell); }
.bo-meldung-eintrag__titel { font-size: clamp(1.15rem, 2.2vw, 1.35rem); margin-bottom: .35rem; }
.bo-meldung-eintrag__titel a { color: var(--text); text-decoration: none; }
.bo-meldung-eintrag__titel a:hover { color: var(--gruen); text-decoration: underline; text-underline-offset: 3px; }
.bo-meldung-eintrag__auszug { color: var(--text-mittel); margin: 0; }
.bo-meldungen .bo-nur-schmal { padding: 1.4rem 0; border-bottom: 1px solid var(--linie); }

/* ---------- Termine ---------- */
.bo-termine { display: grid; gap: .85rem; }
.bo-termine--raster { grid-template-columns: repeat(auto-fill, minmax(min(100%, 270px), 1fr)); }
.bo-termin {
	--art: var(--gruen);
	position: relative; display: grid; grid-template-columns: 62px minmax(0, 1fr) auto; gap: 1rem; align-items: center;
	background: var(--weiss); border: 1px solid var(--linie); border-left: 4px solid var(--art); border-radius: 10px;
	padding: .9rem 1.1rem .9rem .9rem; box-shadow: var(--schatten-s); transition: transform .2s, box-shadow .2s;
}
.bo-termin[hidden], .bo-monat[hidden] { display: none; }
.bo-termin:hover, .bo-termin:focus-within { transform: translateY(-2px); box-shadow: var(--schatten-m); }
.bo-termin--kompakt { grid-template-columns: 52px minmax(0, 1fr); gap: .85rem; }
.bo-termin--vorbei { opacity: .7; }
.bo-termin__datum {
	display: flex; flex-direction: column; align-items: center; line-height: 1.05; font-family: var(--sans);
	background: var(--creme); border-radius: 8px; padding: .4rem 0;
}
.bo-termin__wochentag, .bo-termin__monat { font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; color: var(--text-hell); }
.bo-termin__tag { font-family: var(--serif); font-size: 1.55rem; font-weight: 700; color: var(--art); }
.bo-termin__dach { display: flex; gap: .6rem; flex-wrap: wrap; align-items: center; font-family: var(--sans); font-size: .76rem; color: var(--text-hell); margin-bottom: .2rem; }
.bo-termin__art { font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--art); }
.bo-dachzeile .bo-termin__art { color: var(--art, var(--gruen)); }
.bo-termin__titel { font-size: 1.08rem; margin: 0 0 .15rem; }
.bo-termin--kompakt .bo-termin__titel { font-size: 1rem; }
.bo-termin__titel a { color: var(--text); text-decoration: none; }
.bo-termin__titel a::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.bo-termin__wo { font-family: var(--sans); font-size: .86rem; color: var(--text-mittel); margin: 0; }
.bo-termin__auszug { font-size: .92rem; color: var(--text-mittel); margin: .4rem 0 0; }
.bo-termin__ics {
	position: relative; z-index: 2; display: inline-flex; align-items: center; gap: .35rem;
	font-family: var(--sans); font-size: .8rem; font-weight: 600; text-decoration: none; color: var(--gruen);
	border: 1.5px solid var(--linie); border-radius: 999px; padding: .4rem .75rem; background: var(--weiss);
}
.bo-termin__ics:hover { border-color: var(--gruen); color: var(--gruen); }
@media (max-width: 600px) {
	.bo-termin { grid-template-columns: 52px minmax(0, 1fr); }
	.bo-termin__ics { grid-column: 2; justify-self: start; }
	.bo-termin__ics span { display: inline; }
}
.bo-monat + .bo-monat { margin-top: 2.25rem; }
.bo-monat__titel {
	font-family: var(--sans); font-size: .82rem; text-transform: uppercase; letter-spacing: .12em; color: var(--text-hell);
	border-bottom: 1px solid var(--linie); padding-bottom: .5rem; margin-bottom: 1rem;
}
.bo-kalender__archiv { margin-top: 2rem; font-family: var(--sans); font-size: .9rem; }
.bo-kalender .bo-filter { position: sticky; }

/* Einzelseite Termin */
.bo-termin-infos { margin: 0 0 1.25rem; display: grid; gap: .9rem; background: var(--weiss); border: 1px solid var(--linie); border-left: 4px solid var(--art, var(--gruen)); border-radius: 10px; padding: 1.2rem 1.4rem; }
.bo-termin-infos dt { font-family: var(--sans); font-size: .74rem; text-transform: uppercase; letter-spacing: .08em; color: var(--text-hell); }
.bo-termin-infos dd { margin: 0; font-family: var(--sans); font-size: 1rem; }
.bo-termin-knoepfe { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 2rem; }

/* ---------- Bewegung reduzieren ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* ---------- Druck ---------- */
@media print {
	.bo-kopf, .bo-filter, .bo-karte, .bo-einreichen, .bo-fuss, .bo-teilen { display: none !important; }
	body { background: #fff; }
}

/* Trennpunkt zwischen Rubrik und Ort in Meldungen */
.bo-meldung-eintrag .bo-dachzeile span + span::before { content: '· '; }

/* ---------- Bildergalerie & Bildnachweise ---------- */
.bo-galerie { margin-top: .5rem; }
.bo-galerie__raster { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); gap: 1rem; }
@media (max-width: 600px) { .bo-galerie__raster { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; } }
.bo-galerie__bild { margin: 0 !important; }
.bo-galerie__bild a { display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 8px; background: var(--gruen-hell); cursor: zoom-in; }
.bo-galerie__bild img { width: 100%; height: 100%; object-fit: cover; border-radius: 0 !important; transition: transform .35s; }
.bo-galerie__bild a:hover img, .bo-galerie__bild a:focus-visible img { transform: scale(1.04); }
.bo-bildnachweis, .bo-inhalt .bo-galerie figcaption.bo-bildnachweis {
	display: block; font-family: var(--sans); font-size: .74rem !important; line-height: 1.35; color: var(--text-hell); margin-top: .35rem;
}
figcaption .bo-bildnachweis { display: inline; }
.bo-ort__nachweis {
	position: absolute; top: .75rem; right: 1rem; z-index: 2;
	font-family: var(--sans); font-size: .72rem; color: rgba(255, 255, 255, .9); text-shadow: 0 1px 4px rgba(0, 0, 0, .7);
}

.bo-lightbox {
	width: 100vw; height: 100vh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0;
	background: rgba(14, 24, 17, .96); color: #fff;
}
.bo-lightbox[open] { display: flex; flex-direction: column; }
.bo-lightbox::backdrop { background: rgba(14, 24, 17, .96); }
.bo-kein-scrollen, .bo-kein-scrollen body { overflow: hidden; }
.bo-lightbox__kopf { display: flex; justify-content: space-between; align-items: center; padding: .75rem 1rem; font-family: var(--sans); font-size: .85rem; color: rgba(255, 255, 255, .75); }
.bo-lightbox__zu { background: none; border: 0; color: #fff; font-size: 2rem; line-height: 1; cursor: pointer; padding: .25rem .6rem; }
.bo-lightbox__buehne { flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; gap: .5rem; padding: 0 .5rem 1rem; }
.bo-lightbox__figur { margin: 0; flex: 1; min-width: 0; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.bo-lightbox__figur img { max-width: 100%; max-height: calc(100vh - 150px); width: auto; height: auto; object-fit: contain; border-radius: 4px; }
.bo-lightbox__figur figcaption { font-family: var(--sans); font-size: .9rem; color: rgba(255, 255, 255, .88); text-align: center; max-width: 720px; margin-top: .75rem; }
.bo-lightbox__nachweis { color: rgba(255, 255, 255, .6); font-size: .8rem; white-space: nowrap; }
.bo-lightbox__pfeil {
	flex: 0 0 auto; width: 48px; height: 48px; border-radius: 50%; border: 1.5px solid rgba(255, 255, 255, .35);
	background: rgba(255, 255, 255, .08); color: #fff; font-size: 1.8rem; line-height: 1; cursor: pointer;
}
.bo-lightbox__pfeil:hover { background: rgba(255, 255, 255, .18); }
.bo-lightbox--einzeln .bo-lightbox__pfeil, .bo-lightbox--einzeln .bo-lightbox__zaehler { visibility: hidden; }
@media (max-width: 600px) {
	.bo-lightbox__pfeil { position: absolute; bottom: 1rem; width: 44px; height: 44px; }
	.bo-lightbox__pfeil--zurueck { left: 1rem; }
	.bo-lightbox__pfeil--weiter { right: 1rem; }
	.bo-lightbox__figur img { max-height: calc(100vh - 200px); }
}
