/* Kunstspirale – Ergänzungen für WordPress-Inhalte.
   ks.css bringt das Designsystem; hier steht nur, was im Redaktionsbetrieb
   dazukommt: Editor-Inhalte, Formulare aus Plugins, Blätterfunktion. */

/* ---------- Redaktioneller Fließtext ---------- */
.entry > * + * { margin-top: 1.15rem; }
.entry h2 { margin-top: 2.4rem; }
.entry h3 { margin-top: 2rem; }
.entry h2:first-child,
.entry h3:first-child { margin-top: 0; }
.entry p,
.entry li { max-width: 66ch; }
.entry ul,
.entry ol { padding-left: 1.3rem; }
.entry li + li { margin-top: .4rem; }
.entry img { max-width: 100%; height: auto; border-radius: var(--r-md); }
.entry figure { margin: 2rem 0; }
.entry figcaption {
	font-size: var(--fs-meta);
	color: var(--ink-3);
	margin-top: .55rem;
}
.entry blockquote {
	margin: 2.2rem 0;
	padding: 1.4rem 0 1.4rem 1.7rem;
	border-left: 4px solid var(--orange);
	font-family: var(--font-head);
	font-size: clamp(1.25rem, 1.05rem + .9vw, 1.6rem);
	font-style: italic;
	line-height: 1.35;
	color: var(--forest);
}
.entry blockquote cite {
	display: block;
	margin-top: .7rem;
	font: 600 var(--fs-meta)/1.4 var(--font-mono);
	letter-spacing: .08em;
	text-transform: uppercase;
	font-style: normal;
	color: var(--ink-3);
}
.entry hr {
	border: 0;
	border-top: 1px solid var(--line);
	margin: 2.6rem 0;
}
.entry table { width: 100%; border-collapse: collapse; font-size: var(--fs-small); }
.entry th, .entry td { text-align: left; padding: .6rem .5rem; border-bottom: 1px solid var(--line); }
.entry .wp-block-table { overflow-x: auto; }

.alignwide { max-width: min(100%, 1080px); margin-inline: auto; }
.alignfull { max-width: 100%; }
.alignleft { float: left; margin: .3rem 1.6rem 1.2rem 0; }
.alignright { float: right; margin: .3rem 0 1.2rem 1.6rem; }
.aligncenter { margin-inline: auto; display: block; }

/* ---------- Karte ohne Bild ---------- */
.offer__placeholder,
.news__img:empty {
	display: block;
	aspect-ratio: 16 / 10;
	background:
		radial-gradient(circle at 30% 30%, rgba(236,116,4,.14), transparent 60%),
		var(--cream-2);
}

/* ---------- Blätterfunktion ---------- */
.pagination,
.nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
	align-items: center;
	justify-content: center;
}
.pagination .page-numbers,
.nav-links .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 46px;
	min-height: 46px;
	padding: 0 .85rem;
	border-radius: var(--r-sm);
	border: 1px solid var(--line-strong);
	background: var(--paper);
	color: var(--ink);
	font: 600 var(--fs-small)/1 var(--font-body);
	text-decoration: none;
	transition: background .2s var(--ease), color .2s var(--ease);
}
.pagination .page-numbers:hover { background: var(--cream-2); }
.pagination .page-numbers.current {
	background: var(--forest);
	border-color: var(--forest);
	color: #fff;
}
.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

/* ---------- Formulare (WPForms) im Designsystem ----------
   Gilt für alle WPForms-Formulare: Kontakt, Mitmachen und die Anmeldungen
   auf Kurs-, Termin- und Marktseiten. Auf den Detailseiten steht das
   Formular zusätzlich auf einer weißen Karte wie auf der Kontaktseite. */
.wpforms-container.wpforms-container-full {
	--wpforms-field-border-radius: var(--r-sm);
	--wpforms-field-border-color: var(--line-strong);
	--wpforms-field-text-color: var(--ink);
	--wpforms-label-color: var(--ink-3);
	--wpforms-label-sublabel-color: var(--ink-3);
	--wpforms-label-error-color: #8c2f10;
	--wpforms-button-border-radius: 6px;
	--wpforms-button-background-color: var(--orange);
	--wpforms-button-text-color: var(--forest-deep);
	--wpforms-field-size-checkbox-size: 22px;
	margin: 0 !important;
}
.detail .entry .wpforms-container-full {
	background: var(--paper);
	border: 1px solid rgba(44, 44, 40, .09);
	border-radius: var(--r-lg);
	padding: clamp(1.4rem, 1rem + 1.6vw, 2.3rem);
	box-shadow: var(--shadow-sm);
	margin: .4rem 0 2.6rem !important;
}
.formcard .wpforms-container-full { margin: 0 !important; }

/* Zweispaltig: Name und E-Mail (und weitere kurze Felder) nebeneinander,
   alles Lange über die ganze Breite. */
.wpforms-container-full .wpforms-field-container {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 1.25rem;
}
.wpforms-container-full .wpforms-field {
	grid-column: 1 / -1;
	padding: 0 0 1.3rem !important;
	margin: 0 !important;
}
.wpforms-container-full .wpforms-field-name,
.wpforms-container-full .wpforms-field-email,
.wpforms-container-full .wpforms-field-phone,
.wpforms-container-full .wpforms-field-text:not(.ks-angebot-fest) { grid-column: auto; }
@media (max-width: 40rem) {
	.wpforms-container-full .wpforms-field-container { grid-template-columns: minmax(0, 1fr); }
}

/* Beschriftungen wie im übrigen Designsystem */
.wpforms-container-full .wpforms-field-label,
.wpforms-container-full .wpforms-field legend.wpforms-field-label {
	font: 600 var(--fs-meta)/1.4 var(--font-mono) !important;
	letter-spacing: .1em !important;
	text-transform: uppercase;
	color: var(--ink-3) !important;
	margin: 0 0 .45rem !important;
	padding: 0 !important;
}
.wpforms-container-full .wpforms-required-label { color: var(--orange-dark) !important; font-weight: 700; }
.wpforms-container-full .wpforms-field-description {
	font-size: var(--fs-meta) !important;
	line-height: 1.5 !important;
	color: var(--ink-3) !important;
	margin: .45rem 0 0 !important;
}
.wpforms-container-full .wpforms-field-description a { color: var(--orange-dark); }

/* Eingabefelder */
.wpforms-container-full input[type="text"],
.wpforms-container-full input[type="email"],
.wpforms-container-full input[type="tel"],
.wpforms-container-full input[type="url"],
.wpforms-container-full input[type="number"],
.wpforms-container-full input[type="date"],
.wpforms-container-full select,
.wpforms-container-full textarea,
.ks-newsletter input[type="text"],
.ks-newsletter input[type="email"] {
	font: 400 var(--fs-body)/1.45 var(--font-body) !important;
	color: var(--ink) !important;
	background-color: var(--paper) !important;
	border: 1px solid var(--line-strong) !important;
	border-radius: var(--r-sm) !important;
	padding: .8rem .95rem !important;
	min-height: 54px !important;
	height: auto !important;
	width: 100% !important;
	max-width: 100% !important;
	box-shadow: none !important;
	transition: border-color .2s var(--ease), box-shadow .2s var(--ease) !important;
}
.wpforms-container-full select { padding-right: 2.6rem !important; cursor: pointer; }
.wpforms-container-full textarea { min-height: 10rem !important; resize: vertical; }
.wpforms-container-full input:hover,
.wpforms-container-full select:hover,
.wpforms-container-full textarea:hover { border-color: rgba(44, 44, 40, .45) !important; }
.wpforms-container-full input:focus,
.wpforms-container-full select:focus,
.wpforms-container-full textarea:focus {
	outline: 0 !important;
	border-color: var(--orange) !important;
	box-shadow: 0 0 0 3px rgba(236, 116, 4, .25) !important;
}

/* Feld mit dem Angebot, das sich aus der Seite ergibt (Kurs, Termin, Markt):
   nichts zum Ausfüllen, sondern ein Hinweis oben in der Karte. Das eigentliche
   Eingabefeld bleibt unsichtbar im Formular und schickt den Wert mit. */
.wpforms-container-full .ks-angebot-fest .wpforms-required-label { display: none; }
.wpforms-container-full .ks-angebot-fest input[type="text"] {
	position: absolute !important;
	width: 1px !important;
	min-height: 0 !important;
	height: 1px !important;
	padding: 0 !important;
	border: 0 !important;
	opacity: 0;
	pointer-events: none;
}
.wpforms-container-full .ks-angebot-anzeige {
	background: var(--cream-2) !important;
	border-left: 4px solid var(--orange) !important;
	border-radius: var(--r-sm) !important;
	padding: .85rem 1.05rem !important;
	font: 600 var(--fs-body)/1.4 var(--font-body) !important;
	color: var(--forest) !important;
}

/* Auswahl mit mehreren Kästchen („Das interessiert mich“) als Schaltflächen */
.wpforms-container-full .wpforms-field-checkbox ul:has(> li + li) {
	display: flex !important;
	flex-wrap: wrap;
	gap: .55rem;
	margin: .1rem 0 0 !important;
}
.wpforms-container-full .wpforms-field-checkbox ul:has(> li + li) > li {
	display: flex !important;
	align-items: center;
	gap: .55rem;
	margin: 0 !important;
	padding: .55rem 1rem .55rem .8rem !important;
	border: 1px solid var(--line-strong);
	border-radius: var(--r-pill);
	background: var(--paper);
	cursor: pointer;
	transition: border-color .2s var(--ease), background-color .2s var(--ease);
}
.wpforms-container-full .wpforms-field-checkbox ul:has(> li + li) > li:hover { border-color: var(--orange); }
.wpforms-container-full .wpforms-field-checkbox ul:has(> li + li) > li:has(input:checked) {
	border-color: var(--orange);
	background: rgba(236, 116, 4, .1);
}
.wpforms-container-full .wpforms-field-checkbox ul:has(> li + li) label { cursor: pointer; }

/* Einzelnes Kästchen (Einwilligung Datenschutz) als ruhiger Kasten */
.wpforms-container-full .wpforms-field-checkbox ul:not(:has(> li + li)) {
	background: var(--cream-2);
	border-radius: var(--r-sm);
	padding: .95rem 1.1rem !important;
	margin: 0 !important;
}
.wpforms-container-full .wpforms-field-checkbox ul:not(:has(> li + li)) > li { margin: 0 !important; }
.wpforms-container-full .wpforms-field-checkbox li label,
.wpforms-container-full .wpforms-field-label-inline {
	font: 400 var(--fs-small)/1.5 var(--font-body) !important;
	color: var(--ink) !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}

/* Absenden: wie die Knöpfe der Website */
.wpforms-container-full .wpforms-submit-container { padding: .4rem 0 0 !important; margin: 0 !important; }
.wpforms-container-full button.wpforms-submit,
.ks-newsletter input[type="submit"],
.ks-newsletter button[type="submit"] {
	display: inline-flex !important;
	align-items: center;
	gap: .7rem;
	font: 700 .875rem/1 var(--font-body) !important;
	letter-spacing: .11em !important;
	text-transform: uppercase;
	min-height: 56px !important;
	height: auto !important;
	padding: 0 1.75rem !important;
	border: 2px solid var(--orange) !important;
	border-radius: 6px !important;
	background: var(--orange) !important;
	color: var(--forest-deep) !important;
	box-shadow: 0 3px 0 rgba(0, 0, 0, .16) !important;
	cursor: pointer;
	transition: transform .18s var(--ease), box-shadow .18s var(--ease), background-color .2s var(--ease) !important;
}
.wpforms-container-full button.wpforms-submit::after {
	content: "";
	width: 0;
	height: 0;
	border-top: 5px solid transparent;
	border-bottom: 5px solid transparent;
	border-left: 7px solid currentColor;
}
.wpforms-container-full button.wpforms-submit:hover,
.ks-newsletter input[type="submit"]:hover,
.ks-newsletter button[type="submit"]:hover {
	transform: translateY(-1px);
	box-shadow: 0 5px 0 rgba(0, 0, 0, .16) !important;
}
.wpforms-container-full button.wpforms-submit:focus-visible {
	outline: 3px solid var(--forest) !important;
	outline-offset: 3px;
}

/* Fehler und Bestätigung */
.wpforms-container-full label.wpforms-error,
.wpforms-container-full em.wpforms-error {
	font: 600 var(--fs-meta)/1.4 var(--font-body) !important;
	color: #8c2f10 !important;
	margin-top: .4rem !important;
	padding: 0 !important;
}
.wpforms-container-full input.wpforms-error,
.wpforms-container-full select.wpforms-error,
.wpforms-container-full textarea.wpforms-error { border-color: #b3401a !important; }
.wpforms-confirmation-container-full,
div[submit-success] > .wpforms-confirmation-container-full {
	background: #FDEEE1 !important;
	border: 0 !important;
	border-left: 4px solid var(--orange) !important;
	border-radius: var(--r-sm) !important;
	color: var(--ink) !important;
	padding: 1.1rem 1.3rem !important;
	font: 400 var(--fs-body)/1.55 var(--font-body) !important;
	margin: 0 0 1rem !important;
}
.wpforms-confirmation-container-full p { margin: 0 !important; }

/* Kästchen und Text sauber auf einer Linie */
.wpforms-container-full .wpforms-field-checkbox li {
	display: flex !important;
	align-items: flex-start;
	gap: .7rem;
}
.wpforms-container-full .wpforms-field-checkbox li input[type="checkbox"] {
	position: relative !important;
	inset: auto !important;
	flex: none;
	margin: .05rem 0 0 !important;
}
.wpforms-container-full .wpforms-field-checkbox li label {
	padding: 0 !important;
	margin: 0 !important;
}
.wpforms-container-full .wpforms-field-checkbox ul:has(> li + li) > li { align-items: center; }
.wpforms-container-full .wpforms-field-checkbox ul:has(> li + li) > li input[type="checkbox"] { margin: 0 !important; }

/* ---------- Newsletter auf dunklem Grund ---------- */
.ks-newsletter { max-width: 30rem; }
.ks-newsletter--dunkel .mailpoet_paragraph { margin-bottom: .9rem; }
.ks-newsletter--dunkel label,
.ks-newsletter--dunkel .mailpoet_text_label,
.ks-newsletter--dunkel .mailpoet_checkbox_label {
	color: var(--on-dark-2) !important;
	font: 600 var(--fs-meta)/1.4 var(--font-mono);
	letter-spacing: .1em;
	text-transform: uppercase;
}
.ks-newsletter--dunkel .mailpoet_checkbox_label {
	text-transform: none;
	letter-spacing: 0;
	font-family: var(--font-body);
	font-size: var(--fs-small);
}
.ks-newsletter input[type="text"],
.ks-newsletter input[type="email"] {
	font: 400 var(--fs-body)/1.45 var(--font-body) !important;
	color: var(--ink) !important;
	background: var(--paper) !important;
	border: 1px solid var(--line-strong) !important;
	border-radius: var(--r-sm) !important;
	padding: .8rem .95rem !important;
	min-height: 52px !important;
	width: 100% !important;
}
.ks-newsletter--dunkel .mailpoet_validate_success { color: var(--olive) !important; }
.ks-newsletter--dunkel .mailpoet_validate_error { color: #ffd2c2 !important; }

/* ---------- Karte erst nach Klick ---------- */
.mapembed {
	position: relative;
	aspect-ratio: 4 / 3;
	border-radius: var(--r-lg);
	overflow: hidden;
	background: var(--forest-soft);
	display: grid;
	place-items: center;
	text-align: center;
	padding: 2rem;
}
.mapembed[data-loaded="true"] > .mapembed__hint { display: none; }
.mapembed__hint { position: relative; color: var(--on-dark); max-width: 26rem; }
.mapembed__hint p { font-size: var(--fs-small); color: var(--on-dark-2); margin: 0 0 1.1rem; }

/* ---------- Adminleiste nicht über den Header legen ---------- */
body.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) {
	body.admin-bar .site-header { top: 46px; }
}

/* ---------- Lightbox ---------- */
.gallery a,
.entry .wp-block-gallery a { display: block; height: 100%; }
.gallery a img { display: block; }

.kslb {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: none;
	background: rgba(25, 39, 41, .94);
	padding: clamp(.75rem, .4rem + 1.5vw, 2.5rem);
}
.kslb[data-open="true"] { display: grid; grid-template-rows: auto 1fr auto; gap: .8rem; }
.kslb__bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.kslb__count {
	font: 600 var(--fs-meta)/1 var(--font-mono);
	letter-spacing: .14em;
	color: var(--on-dark-2);
}
.kslb__stage { position: relative; display: grid; place-items: center; min-height: 0; }
.kslb__stage img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	border-radius: var(--r-sm);
	box-shadow: 0 24px 60px -30px rgba(0, 0, 0, .8);
}
.kslb__caption {
	text-align: center;
	font-size: var(--fs-small);
	color: var(--on-dark-2);
	max-width: 60ch;
	margin: 0 auto;
	min-height: 1.4em;
}
.kslb button {
	display: inline-grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	border: 1.5px solid rgba(244, 243, 240, .3);
	background: rgba(244, 243, 240, .08);
	color: var(--on-dark);
	font-size: 1.15rem;
	line-height: 1;
	cursor: pointer;
	transition: background .2s var(--ease), border-color .2s var(--ease);
}
.kslb button:hover { background: rgba(244, 243, 240, .2); border-color: rgba(244, 243, 240, .55); }
.kslb button:focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; }
.kslb__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
}
.kslb__nav--prev { left: 0; }
.kslb__nav--next { right: 0; }
.kslb__nav[hidden] { display: none; }
@media (max-width: 599px) {
	.kslb__nav { position: static; transform: none; }
	.kslb__stage { grid-template-columns: 1fr; }
	.kslb__foot { display: flex; align-items: center; justify-content: center; gap: 1.4rem; }
}
body.kslb-open { overflow: hidden; }

/* ---------- Hinweiskasten (z. B. abgesagter Termin) ---------- */
.ks-hinweis {
	background: rgba(236, 116, 4, .12);
	border-left: 4px solid var(--orange);
	border-radius: var(--r-sm);
	padding: 1rem 1.2rem;
	font-size: var(--fs-small);
	color: var(--ink);
	max-width: 66ch;
}

/* ---------- Newsletter ---------- */
.ks-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ks-newsletter__meldung {
	border-radius: var(--r-sm);
	padding: .9rem 1.1rem;
	margin: 0 0 1.2rem;
	font-size: var(--fs-small);
	border-left: 4px solid;
}
.ks-newsletter__meldung--gut { background: rgba(236, 116, 4, .14); border-color: var(--orange); color: var(--on-dark); }
.ks-newsletter__meldung--schlecht { background: rgba(236, 116, 4, .16); border-color: var(--orange); color: var(--on-dark); }
.ks-newsletter--hell .ks-newsletter__meldung--gut { background: rgba(236, 116, 4, .1); color: var(--ink); }
.ks-newsletter--hell .ks-newsletter__meldung--schlecht { background: rgba(236, 116, 4, .12); color: var(--ink); }
.ks-newsletter--dunkel .field > label { color: var(--on-dark-2); }
.ks-newsletter--dunkel .check { color: var(--on-dark-2); }
.ks-newsletter--dunkel .check a { color: var(--olive); }
.ks-newsletter--dunkel .form__note { color: var(--on-dark-2); opacity: .8; }

/* ==========================================================================
   Korrekturen aus dem Testdurchgang
   ========================================================================== */

/* Filter: Karten haben eigene display-Werte und überschreiben damit das
   Standardverhalten von [hidden]. Ohne diese Zeile bleiben ausgefilterte
   Einträge sichtbar. */
[hidden] { display: none !important; }

/* Die Adminleiste ist auf schmalen Bildschirmen nicht fixiert, sie scrollt
   mit. Der Versatz am klebenden Header darf dort deshalb nicht greifen –
   sonst entsteht beim Scrollen eine Lücke über dem Header. */
@media (max-width: 600px) {
	body.admin-bar .site-header { top: 0; }
}

/* ---------- Logos von Partnern und Förderern ---------- */
.logos {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
	align-items: stretch;
}
.logos li { display: flex; }
.logos a,
.logos > li > span {
	display: grid;
	place-items: center;
	gap: .5rem;
	width: 100%;
	min-height: 6.5rem;
	padding: 1.1rem 1.2rem;
	background: var(--paper);
	border: 1px solid rgba(44, 44, 40, .1);
	border-radius: var(--r-md);
	text-decoration: none;
	color: var(--ink-2);
	transition: transform .25s var(--ease), box-shadow .25s var(--ease);
}
.logos a:hover { transform: translateY(-3px); box-shadow: var(--shadow-sm); }
.logos img {
	max-width: 100%;
	max-height: 3.6rem;
	width: auto;
	height: auto;
	object-fit: contain;
}
.logos__name {
	font-size: var(--fs-meta);
	font-family: var(--font-mono);
	letter-spacing: .04em;
	text-align: center;
	color: var(--ink-3);
}
.band--forest .logos a,
.band--forest .logos > li > span { border-color: transparent; }

/* Seite „Partner & Förderer“: dieselben Logos, gruppiert wie die Teamseite. */
.ppartner .pgroup { margin-top: 3rem; }
.ppartner .pgroup:first-child { margin-top: 0; }
.ks-partner-hinweis {
	margin-top: 3rem;
	max-width: 56ch;
	color: var(--ink-2);
}

/* ==========================================================================
   Zweiter Testdurchgang
   ========================================================================== */

/* Wortmarke ohne Versalien. */
.brand-name { text-transform: none; }

/* Schriftgröße und -stärke der Eyebrow kommen aus der Umgebung. */
.eyebrow { font-size: inherit; font-weight: inherit; }

/* Filterbeschriftungen und Trefferzahl. */
.filtergroup__label {
	font-size: .88rem;
	font-weight: 600;
	letter-spacing: .10em;
}
.filters__count { font-size: .88rem; }

/* Kopfzeile mit Adresse und Telefon: auf Mobil zu viel Text. */
@media (max-width: 767px) {
	.topbar { display: none; }
}

/* ---------- Mobile Navigation: hell, filigran, ruhig ---------- */
.mobile-nav__panel {
	background: var(--paper);
	color: var(--ink);
	box-shadow: 0 18px 40px -24px rgba(25, 39, 41, .35);
}
.mobile-nav__tear { --rip-fill: var(--paper); }
.mobile-nav__top {
	border-bottom: 1px solid var(--line);
	min-height: 62px;
}
.mobile-nav .brand { color: var(--forest); }
.mobile-nav .brand-name { font-weight: 500; letter-spacing: -.01em; }
.mobile-nav .brand-sub { color: var(--ink-3); font-weight: 500; }
.mobile-nav__close {
	border: 1px solid var(--line);
	border-radius: 50%;
	background: transparent;
	color: var(--ink-2);
	font-size: .95rem;
	width: 40px; height: 40px;
}
.mobile-nav__close:hover { background: var(--cream-2); color: var(--forest); border-color: var(--line-strong); }

.mobile-nav__list { padding: .5rem 0 0; }
.mobile-nav__list li + li { margin-top: 0; }
.mobile-nav__list a {
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--line);
	border-radius: 0;
	color: var(--ink);
	font-size: 1.0625rem;
	font-weight: 500;
	letter-spacing: -.005em;
	min-height: 54px;
	padding: .7rem .25rem;
	gap: 1rem;
}
.mobile-nav__list li:last-child a { border-bottom: 0; }
/* Keine Nummerierung links, keine Pfeilzeichen rechts – nur der Text.
   Die Aufklapp-Pfeile der Untermenüs sind eigene Schaltflächen und bleiben. */
.mobile-nav__list a::before,
.mobile-nav__list a::after,
.mobile-nav__list .is-primary a::before,
.mobile-nav__list .is-primary a::after { content: none; }
.mobile-nav__list a:hover,
.mobile-nav__list a:focus-visible {
	background: transparent;
	color: var(--orange-dark);
	padding-left: .55rem;
}

.mobile-nav__foot {
	border-top: 1px solid var(--line);
	padding-block: 1.1rem 1.3rem;
	display: flex;
	gap: .6rem;
	flex-wrap: wrap;
}
.mobile-nav__foot .btn {
	box-shadow: none;
	font-weight: 600;
	letter-spacing: .02em;
	min-height: 46px;
}
.mobile-nav__foot .btn--ghost-light {
	color: var(--forest);
	border-color: var(--line-strong);
	background: transparent;
}
.mobile-nav__foot .btn--ghost-light:hover { background: var(--cream-2); color: var(--forest); }
.mobile-nav__scrim { background: rgba(25, 39, 41, .35); }

/* ---------- Blätterleiste ---------- */
.pager {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	flex-wrap: wrap;
	margin-top: clamp(1.75rem, 1.2rem + 1.6vw, 2.75rem);
}
.pager[hidden] { display: none !important; }
/* Die Blätterleiste gehört unter die Liste, nicht hinein. Steht sie doch einmal
   in einem Raster, nimmt sie die volle Breite statt einer Kartenspalte. */
.grid > .pager { grid-column: 1 / -1; }
.pager__btn {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	min-height: 44px;
	padding: 0 1.15rem;
	border: 1.5px solid var(--line-strong);
	border-radius: var(--r-pill);
	background: var(--paper);
	color: var(--ink);
	font: 600 .875rem/1 var(--font-body);
	letter-spacing: .02em;
	cursor: pointer;
	transition: background .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease);
}
.pager__btn:hover:not(:disabled) { background: var(--forest); border-color: var(--forest); color: var(--cream); }
.pager__btn:focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; }
.pager__btn:disabled { opacity: .38; cursor: default; }
.pager__status {
	margin: 0;
	font-family: var(--font-mono);
	font-size: .8125rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--ink-3);
	font-variant-numeric: tabular-nums;
}
.pager__status strong { color: var(--ink); }
.band--forest .pager__btn, .topo .pager__btn { background: transparent; border-color: var(--line-dark); color: var(--on-dark); }
.band--forest .pager__status, .topo .pager__status { color: var(--on-dark-2); }
.band--forest .pager__status strong, .topo .pager__status strong { color: var(--cream); }

/* ---------- Sprungmarken mit Admin-Leiste ---------- */
/* Angemeldete sehen zusätzlich die WordPress-Leiste über der Seite. */
body.admin-bar { --ks-anchor: 136px; }
@media (max-width: 782px) {
	body.admin-bar { --ks-anchor: 150px; }
}
@media (max-width: 600px) {
	body.admin-bar { --ks-anchor: 104px; }
}

/* ---------- Untermenüs im mobilen Menü (helles Panel) ---------- */
.mobile-nav__list li.has-sub { border-bottom: 1px solid var(--line); }
.mobile-nav__list li.has-sub:last-child { border-bottom: 0; }
.mobile-nav__list li.has-sub > a { border-bottom: 0; }
.mobile-nav__toggle { color: var(--ink-3); }
.mobile-nav__toggle:hover { background: var(--cream-2); color: var(--orange-dark); }
.mobile-nav__sub { border-left-color: var(--line); }
.mobile-nav__sub a { border-bottom: 0; color: var(--ink-2); font-size: 1rem; }
.mobile-nav__sub a:hover { color: var(--orange-dark); }

/* ---------- Zeitstrahl im Editor-Inhalt ---------- */
/* Die allgemeinen Listenregeln oben würden Einzug und Abstände des
   Zeitstrahls verschieben – die Punkte lägen dann neben der Linie. */
.entry ol.timeline,
.entry ul.timeline { padding-left: var(--tl-x); }
.entry .timeline li { max-width: none; }
.entry .timeline li + li { margin-top: 0; }

/* ---------- Ansprechperson im Infokasten: Telefon und E-Mail ---------- */
.factbox__kontakt { display: grid; gap: .3rem; margin-top: .5rem; font-weight: 400; font-size: .875rem; }
.factbox__kontakt a { color: var(--olive); text-decoration: none; overflow-wrap: anywhere; }
.factbox__kontakt a:hover, .factbox__kontakt a:focus-visible { text-decoration: underline; }
.contactbox p a { overflow-wrap: anywhere; }
