/* =========================================================================
 * Schwarzwald-Lupe auf GeneratePress (29.10.2026)
 *
 * Eigenes Geruest, Muster aus sachsen-portale/design/LAYOUT-REGISTER.md ("noch nicht vergeben"):
 *   Kopf/Nav   Startseite im Titelbild, Unterseiten im Bildband mit Landschaftsfoto; Landschaften als direkte Links
 *   Block 1    Vollbild-Titel ueber die erste Bildschirmhoehe
 *   Raster     grosse Geschichten im Wechsel links und rechts, "Kurz notiert" in zwei Spalten, Lokalspiegel im Fliesssatz, Wortband
 *   Karten     Lupe: runder Ausschnitt mit Griff, zeigt ein Detail des Fotos vergroessert; ohne Foto steht der Ort darin
 *   Anzeigen   auf der Bildseite einer Wechselzeile, Rechteck in "Kurz notiert", sonst im Lesefluss
 *   Fuss       hell, Lupen-Emblem mit Wortmarke
 *   Schrift    Fraunces (weiche Old-Style-Serif) fuer Schlagzeilen, kursiv fuer Orte; Figtree fuer Text
 *   Farbe      Weiss, Tannenschwarz, Moosgruen als einziger Akzent, Nebelgruen fuer Flaechen
 *
 * 1. Tokens  2. Grundgeruest  3. Kopf und Bildband  4. Vollbild-Titel  5. Bausteine  6. Startseite
 * 7. Beitrag  8. Archiv, Suche, 404  9. Veranstaltungen  10. Werbeplaetze  11. Fuss
 * ====================================================================== */

/* 1. Tokens ------------------------------------------------------------ */
:root {
	--swl-tinte: #1c211b;          /* Tannenschwarz */
	--swl-text: #2b3029;
	--swl-grau: #5d6459;
	--swl-linie: #dfe3d8;
	--swl-nebel: #eef1e7;          /* Nebelgruen, nur Flaechen */
	--swl-papier: #ffffff;
	--swl-moos: #4a6122;           /* Moosgruen, einziger Akzent */
	--swl-moos-dunkel: #34461a;

	--swl-serif: "Fraunces", "Fraunces Ersatz", Georgia, "Times New Roman", serif;
	--swl-sans: "Figtree", "Figtree Ersatz", Arial, Helvetica, sans-serif;

	--swl-rand: 16px;              /* Seitenrand */
	--swl-breite: 1200px;          /* Inhaltsbreite */
	--swl-abstand: 72px;           /* Abstand zwischen Abschnitten */
	--swl-kopf: 104px;             /* Hoehe des Kopfs (mobil zwei Zeilen) */

	/* Werbeplaetze (MU-Plugin portale-werbung) */
	--pw-grund: var(--swl-nebel);
	--pw-rand: transparent;
	--pw-text: var(--swl-tinte);
	--pw-akzent: var(--swl-moos);
	--pw-kennung: var(--swl-grau);
}
@media (min-width: 800px) {
	:root { --swl-rand: 32px; --swl-abstand: 112px; --swl-kopf: 58px; }
}

/* 2. Grundgeruest ------------------------------------------------------- */
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	background: var(--swl-papier);
	color: var(--swl-text);
	font-family: var(--swl-sans);
	font-size: 17px;
	line-height: 1.6;
	overflow-wrap: break-word;
}
a { color: var(--swl-moos); }
a:hover, a:focus { color: var(--swl-moos-dunkel); }
:focus-visible { outline: 2px solid var(--swl-moos); outline-offset: 2px; }
img { max-width: 100%; height: auto; }
h1, h2, h3, h4 { font-family: var(--swl-serif); color: var(--swl-tinte); font-weight: 600; }
h1 a, h2 a, h3 a, h4 a { color: inherit; text-decoration: none; }
h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
details > summary { list-style: none; cursor: pointer; }
details > summary::-webkit-details-marker { display: none; }

/* GP-Huellen neutralisieren */
.site.grid-container, .site-content, .one-container .site-content { max-width: none; margin: 0; padding: 0; background: transparent; }
.one-container .container, .separate-containers .site-main { background: transparent; }
.site-main { margin: 0; padding: 0 0 8px; }
.site-footer { background: transparent; }
.page .site-main, .error404 .site-main { padding-top: 8px; }

/* Seiten (Impressum usw.) aus GP: Lesespalte */
.page .inside-article { box-sizing: border-box; max-width: 760px; margin: 0 auto; padding: 40px var(--swl-rand) 24px; }
.page .entry-title { font-size: clamp(32px, 5vw, 48px); line-height: 1.1; margin: 0 0 24px; }
.page .entry-content h2 { font-size: 26px; line-height: 1.2; margin: 1.6em 0 .5em; }

/* 3. Kopf: im Titelbild (Startseite) oder als Bildband (Unterseiten) ------ */
.swl-kopf { position: relative; z-index: 20; color: #fff; background: var(--swl-tinte); }
.swl-kopf a { color: #fff; text-decoration: none; }
.swl-kopf-innen {
	position: relative; z-index: 2;
	box-sizing: border-box;
	max-width: calc(var(--swl-breite) + 2 * var(--swl-rand));
	margin: 0 auto;
	padding: 14px var(--swl-rand) 0;
	text-shadow: 0 1px 10px rgba(10, 14, 9, .55);
}
.swl-kopf-zeile { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.swl-marke { margin: 0; font-family: var(--swl-serif); font-weight: 600; font-size: 25px; line-height: 1.1; letter-spacing: -.005em; color: #fff; }
.swl-marke a { display: inline-flex; align-items: center; gap: 9px; min-height: 44px; color: #fff; }
.swl-marke a:hover { text-decoration: none; }
.swl-marke-lupe { width: 25px; height: 25px; color: #fff; flex: none; filter: drop-shadow(0 1px 6px rgba(10, 14, 9, .5)); }
.swl-nav ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 18px; list-style: none; margin: 0; padding: 0; }
.swl-nav a { display: inline-block; padding: 8px 0; font-family: var(--swl-serif); font-style: italic; font-weight: 500; font-size: 17px; line-height: 1.3; }
.swl-nav a:hover, .swl-nav a[aria-current="page"], .swl-nav a.swl-nav-hier { text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 6px; }
.swl-kopf-service { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 18px; margin: 0; font-size: 13.5px; font-weight: 600; }
.swl-kopf-service a { display: inline-block; padding: 8px 0; opacity: .92; }
.swl-kopf-service a:hover, .swl-kopf-service a[aria-current="page"] { opacity: 1; text-decoration: underline; text-underline-offset: 4px; }

/* Bildband der Unterseiten */
.swl-kopf--band { min-height: 230px; display: flex; flex-direction: column; overflow: hidden; }
.swl-kopf--band.swl-kopf--mit-titel { min-height: 300px; }
.swl-band-bild, .swl-band-bild img { position: absolute; inset: 0; width: 100%; height: 100%; }
.swl-band-bild img { object-fit: cover; max-width: none; }
.swl-kopf--band::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(to bottom, rgba(14, 18, 12, .62) 0%, rgba(14, 18, 12, .28) 45%, rgba(14, 18, 12, .74) 100%); pointer-events: none; }
.swl-kopf--band .swl-kopf-innen { flex: 1; display: flex; flex-direction: column; width: 100%; padding-bottom: 30px; }
.swl-band-titel { margin-top: auto; padding-top: 22px; max-width: 900px; }
.swl-band-titel .swl-spitz { color: rgba(255, 255, 255, .92); }
.swl-band-titel .swl-spitz a { color: #fff; font-family: var(--swl-serif); font-style: italic; font-size: 1.12em; }
.swl-kopf .swl-archiv-titel { margin: 4px 0 0; color: #fff; font-size: clamp(30px, 4.6vw, 54px); line-height: 1.06; }
.swl-band-nachweis { position: relative; z-index: 2; box-sizing: border-box; max-width: calc(var(--swl-breite) + 2 * var(--swl-rand)); width: 100%; margin: 0 auto; padding: 0 var(--swl-rand) 8px; text-align: right; font-size: 11.5px; line-height: 1.3; color: rgba(255, 255, 255, .8); }
.swl-band-nachweis a { text-decoration: underline; text-underline-offset: 2px; }

@media (min-width: 800px) {
	.swl-kopf-innen { padding-top: 20px; }
	.swl-kopf-zeile { flex-direction: row; justify-content: space-between; gap: 24px; }
	.swl-marke { font-size: 27px; }
	.swl-nav ul { gap: 0 28px; }
	.swl-nav a { font-size: 18px; }
	.swl-kopf-service { justify-content: flex-end; gap: 0 22px; }
	.swl-kopf--band { min-height: 240px; }
	.swl-kopf--band.swl-kopf--mit-titel { min-height: 300px; }
}

/* Kopf im Titelbild (Startseite) */
.swl-kopf--ueber { position: absolute; top: 0; left: 0; right: 0; background: transparent; }

/* Suche (Fuss, Such- und 404-Seite) */
.swl-suche { display: flex; gap: 0; max-width: 520px; }
.swl-suche input[type="search"] {
	flex: 1; min-width: 0; box-sizing: border-box; height: 46px; padding: 0 14px;
	border: 1px solid var(--swl-grau); border-right: 0; border-radius: 23px 0 0 23px;
	background: var(--swl-papier); color: var(--swl-tinte); font: inherit; font-size: 16px;
}
.swl-suche button {
	height: 46px; padding: 0 20px; border: 0; border-radius: 0 23px 23px 0;
	background: var(--swl-moos); color: #fff; font: inherit; font-size: 15px; font-weight: 600; cursor: pointer;
}
.swl-suche button:hover, .swl-suche button:focus { background: var(--swl-moos-dunkel); }
.swl-suche-knopf { display: inline-flex; align-items: center; justify-content: center; min-width: 56px; }
.swl-suche-lupe { width: 20px; height: 20px; color: #fff; }

/* 4. Vollbild-Titel ----------------------------------------------------- */
.swl-cover {
	position: relative;
	height: 100vh; height: 100svh;
	min-height: 560px; max-height: 1040px;
	overflow: hidden;
	background: var(--swl-tinte);
	color: #fff;
}
.swl-cover-bild, .swl-cover-bild img { position: absolute; inset: 0; width: 100%; height: 100%; }
.swl-cover-bild img { object-fit: cover; object-position: 50% 45%; max-width: none; }
.swl-cover::before, .swl-cover::after { content: ""; position: absolute; left: 0; right: 0; pointer-events: none; }
.swl-cover::before { top: 0; height: 190px; background: linear-gradient(to bottom, rgba(14, 18, 12, .62), rgba(14, 18, 12, 0)); }
.swl-cover::after { bottom: 0; height: 72%; background: linear-gradient(to top, rgba(14, 18, 12, .86) 0%, rgba(14, 18, 12, .55) 42%, rgba(14, 18, 12, 0) 100%); }
.swl-cover-text {
	position: absolute; z-index: 2;
	left: var(--swl-rand); right: var(--swl-rand); bottom: 64px;
	max-width: 820px;
}
.swl-cover .swl-spitz { color: rgba(255, 255, 255, .92); }
.swl-cover .swl-ortsname { color: #fff; }
.swl-cover-titel {
	margin: 10px 0 14px;
	color: #fff;
	font-size: clamp(32px, 5vw, 66px); line-height: 1.04; letter-spacing: -.012em;
	text-wrap: balance;
}
.swl-cover-titel a:hover { text-decoration-thickness: 2px; }
.swl-cover-satz { margin: 0; max-width: 620px; font-size: 18px; line-height: 1.5; color: rgba(255, 255, 255, .92); }
.swl-cover-nachweis {
	position: absolute; z-index: 2; right: var(--swl-rand); bottom: 14px; left: var(--swl-rand);
	margin: 0; text-align: right; font-size: 12.5px; line-height: 1.4; color: rgba(255, 255, 255, .82);
}
.swl-cover-nachweis a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.swl-cover-nachweis a:hover { color: #fff; }
.swl-cover--leer { display: flex; align-items: center; justify-content: center; }
@media (min-width: 800px) {
	.swl-cover-text { left: max(var(--swl-rand), calc((100% - var(--swl-breite)) / 2)); bottom: 88px; }
	.swl-cover-satz { font-size: 19px; }
	.swl-cover-nachweis { left: auto; max-width: 46%; bottom: 18px; }
}

/* 5. Bausteine ---------------------------------------------------------- */
.swl-abschnitt {
	box-sizing: border-box;
	max-width: calc(var(--swl-breite) + 2 * var(--swl-rand));
	margin: var(--swl-abstand) auto 0;
	padding: 0 var(--swl-rand);
}
.swl-abschnitt-kopf { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 14px; margin: 0 0 30px; }
.swl-lupe-zeichen { width: 26px; height: 26px; color: var(--swl-moos); flex: none; }
.swl-titel { margin: 0; font-size: clamp(27px, 3vw, 34px); line-height: 1.15; letter-spacing: -.005em; }
.swl-kalender-link { margin: 0 0 0 auto; font-size: 14px; color: var(--swl-grau); }
.swl-kalender-link a { font-weight: 600; }

.swl-spitz { margin: 0; font-size: 14.5px; line-height: 1.4; color: var(--swl-grau); }
.swl-spitz a { color: inherit; text-decoration: none; }
.swl-spitz a:hover { text-decoration: underline; text-underline-offset: 3px; }
.swl-ortsname { font-family: var(--swl-serif); font-style: italic; font-weight: 500; font-size: 1.16em; color: var(--swl-moos-dunkel); }
.swl-trenner { color: var(--swl-grau); }
.swl-anriss { margin: 0; color: var(--swl-text); }
.swl-meta { display: flex; flex-wrap: wrap; gap: 2px 14px; margin: 10px 0 0; font-size: 14px; line-height: 1.4; color: var(--swl-grau); }
.swl-leer { color: var(--swl-grau); }
.swl-weiter { margin: 16px 0 0; font-weight: 600; }

/* Lupe: runder Ausschnitt mit Griff, zeigt ein Detail desselben Fotos vergroessert.
   Drei Lagen je Beitrag: unten aussen, oben aussen, unten innen; jede mit eigenem Ausschnitt. */
.swl-lupe {
	position: absolute; z-index: 2;
	width: 33%; max-width: 210px; aspect-ratio: 1;
	right: -5%; bottom: -12%;
	pointer-events: none;
}
.swl-lupe-glas {
	display: block; box-sizing: border-box;
	width: 100%; height: 100%;
	border-radius: 50%; overflow: hidden;
	border: 6px solid var(--swl-papier);
	box-shadow: 0 0 0 2px var(--swl-moos-dunkel);
	background: var(--swl-nebel);
}
.swl-lupe .swl-lupe-bild {
	display: block; width: 100%; height: 100%; max-width: none;
	object-fit: cover; object-position: 56% 46%;
	transform: scale(2.3); transform-origin: 56% 46%;
}
.swl-lupe::after {
	content: "";
	position: absolute; left: 84%; top: 82%;
	width: 11%; height: 34%;
	border-radius: 0 0 8px 8px;
	background: var(--swl-moos-dunkel);
	transform: rotate(-45deg); transform-origin: 50% 0;
}
.swl-lupe--oben { bottom: auto; top: -12%; }
.swl-lupe--oben::after { top: 18%; transform: rotate(-135deg); }
.swl-lupe--oben .swl-lupe-bild { object-position: 32% 62%; transform-origin: 32% 62%; transform: scale(2.1); }
.swl-lupe--innen { right: auto; left: 7%; }
.swl-lupe--innen .swl-lupe-bild { object-position: 72% 38%; transform-origin: 72% 38%; transform: scale(2.5); }

/* Grosse Geschichte im Wechsel */
.swl-wechsel { display: grid; gap: 30px; margin: 0 0 64px; }
.swl-wechsel-bild { position: relative; margin-right: max(8%, 40px); }
.swl-wechsel-bild > a > img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.swl-wechsel-titel { margin: 8px 0 12px; font-size: clamp(25px, 2.6vw, 36px); line-height: 1.13; letter-spacing: -.008em; text-wrap: balance; }
.swl-wechsel .swl-anriss { font-size: 17px; line-height: 1.62; }

/* Ohne Foto: der Ort in der Lupe */
.swl-lupe--ort {
	position: relative; right: auto; bottom: auto;
	display: flex; align-items: center; justify-content: center;
	width: 62%; margin: 0 0 12% 4%;
	border-radius: 50%;
	background: var(--swl-nebel);
	box-shadow: inset 0 0 0 6px var(--swl-papier), inset 0 0 0 8px var(--swl-moos-dunkel), 0 0 0 2px var(--swl-moos-dunkel);
	text-decoration: none; pointer-events: auto;
}
.swl-lupe--ort span {
	padding: 0 14%;
	text-align: center;
	font-family: var(--swl-serif); font-style: italic; font-weight: 500;
	font-size: clamp(24px, 3.2vw, 44px); line-height: 1.08;
	color: var(--swl-moos-dunkel);
	overflow-wrap: anywhere; hyphens: auto;
}
.swl-lupe--ort::after { left: 82%; top: 82%; }

@media (min-width: 800px) {
	.swl-wechsel { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 0 72px; align-items: center; margin: 0 0 104px; }
	.swl-wechsel-bild { margin: 0; }
	.swl-wechsel--rechts { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
	.swl-wechsel--rechts .swl-wechsel-bild { order: 2; }
	.swl-wechsel--rechts .swl-wechsel-text { justify-self: end; }
	.swl-wechsel--rechts .swl-lupe:not(.swl-lupe--ort) { right: auto; left: -5%; }
	.swl-wechsel--rechts .swl-lupe:not(.swl-lupe--ort)::after { left: auto; right: 84%; transform: rotate(45deg); }
	.swl-wechsel--ohne-bild .swl-wechsel-bild { display: flex; justify-content: center; }
	.swl-lupe--ort { width: 50%; margin: 0 6% 8% 0; }
	.swl-wechsel-text { max-width: 470px; }
}

/* Kurze Meldung mit Spitzmarke */
.swl-notiz { break-inside: avoid; padding: 0 0 22px; margin: 0 0 22px; border-bottom: 1px solid var(--swl-linie); }
.swl-notiz-titel { margin: 0 0 6px; font-size: 21px; line-height: 1.28; }
.swl-notiz-ort { font-style: italic; font-weight: 500; color: var(--swl-moos-dunkel); }
.swl-notiz .swl-anriss { font-size: 16px; line-height: 1.55; }
.swl-notiz .swl-meta { margin-top: 6px; }
.swl-spalten { column-gap: 72px; }
@media (min-width: 800px) {
	.swl-spalten { columns: 2; }
}

/* Listeneintrag mit runder Lupe */
.swl-liste { max-width: 860px; }
.swl-eintrag { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 0 18px; padding: 0 0 26px; margin: 0 0 26px; border-bottom: 1px solid var(--swl-linie); }
.swl-eintrag-rund { display: block; width: 76px; height: 76px; text-decoration: none; }
.swl-eintrag-rund img, .swl-eintrag-buchstabe {
	box-sizing: border-box; display: flex; align-items: center; justify-content: center;
	width: 100%; height: 100%; border-radius: 50%; object-fit: cover;
	border: 3px solid var(--swl-papier); box-shadow: 0 0 0 1.5px var(--swl-moos-dunkel);
}
.swl-eintrag-buchstabe { background: var(--swl-nebel); font-family: var(--swl-serif); font-style: italic; font-weight: 500; font-size: 34px; color: var(--swl-moos-dunkel); }
.swl-eintrag-titel { margin: 4px 0 8px; font-size: 21px; line-height: 1.25; }
.swl-eintrag .swl-anriss { font-size: 16px; line-height: 1.55; }
@media (min-width: 800px) {
	.swl-eintrag { grid-template-columns: 112px minmax(0, 1fr); gap: 0 30px; }
	.swl-eintrag-rund { width: 112px; height: 112px; }
	.swl-eintrag-buchstabe { font-size: 46px; }
	.swl-eintrag-titel { font-size: 24px; }
}

/* 6. Startseite --------------------------------------------------------- */
.swl-start .swl-cover + .swl-abschnitt { margin-top: calc(var(--swl-abstand) * .8); }

/* "Kreis fuer Kreis" als Lokalspiegel im Fliesssatz */
.swl-spiegel { max-width: 1120px; }
.swl-spiegel-landschaft { margin: 0 0 30px; }
.swl-spiegel-zwischen { margin: 0 0 10px; font-style: italic; font-weight: 500; font-size: 24px; line-height: 1.2; color: var(--swl-moos-dunkel); }
.swl-spiegel-zwischen a:hover { text-decoration: underline; text-underline-offset: 4px; }
.swl-spiegel-satz { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 40px; }
.swl-spiegel-absatz { break-inside: avoid; margin: 0 0 14px; font-size: 16.5px; line-height: 1.6; color: var(--swl-text); hyphens: auto; }
.swl-spiegel-absatz a { color: var(--swl-tinte); text-decoration: none; }
.swl-spiegel-absatz a:hover { color: var(--swl-moos); text-decoration: underline; text-underline-offset: 3px; }
.swl-spiegel-kreis, .swl-spiegel-absatz a.swl-spiegel-kreis { font-family: var(--swl-serif); font-style: italic; font-weight: 600; font-size: 1.08em; color: var(--swl-moos-dunkel); }
.swl-spiegel-still { color: var(--swl-grau); }
.swl-spiegel-landschaft--land { padding-top: 18px; border-top: 1px solid var(--swl-linie); }
.swl-spiegel-einsenden a { color: var(--swl-moos); text-decoration: underline; text-underline-offset: 3px; }
@media (min-width: 560px) { .swl-spiegel-satz { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .swl-spiegel-satz { grid-template-columns: repeat(var(--swl-spalten, 3), minmax(0, 1fr)); } .swl-spiegel-landschaft { margin-bottom: 36px; } }

/* Themen als Wortband */
.swl-wortband { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 0; list-style: none; margin: 0; padding: 0; }
.swl-wortband li { display: inline-flex; align-items: baseline; white-space: nowrap; }
.swl-wortband li:not(:last-child)::after {
	content: ""; display: inline-block; width: 9px; height: 9px; margin: 0 16px 0 14px;
	border: 2px solid var(--swl-moos); border-radius: 50%; transform: translateY(-4px);
}
.swl-wortband a {
	display: inline-block; padding: 4px 0;
	font-family: var(--swl-serif); font-weight: 500; font-size: clamp(23px, 2.6vw, 36px); line-height: 1.2;
	color: var(--swl-tinte); text-decoration: none;
}
@media (max-width: 799px) {
	.swl-wortband { gap: 0 22px; }
	.swl-wortband li:not(:last-child)::after { display: none; }
}
.swl-wortband a:hover { color: var(--swl-moos); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }

/* 7. Beitrag ------------------------------------------------------------ */
.swl-beitrag-kopf, .swl-beitrag-text, .swl-beitrag-fuss {
	box-sizing: border-box; max-width: calc(720px + 2 * var(--swl-rand)); margin-left: auto; margin-right: auto; padding: 0 var(--swl-rand);
}
.swl-beitrag-kopf { padding-top: 36px; }
.swl-brotkrumen { font-size: 13.5px; color: var(--swl-grau); }
.swl-brotkrumen p { margin: 0 0 18px; }
.swl-brotkrumen a { color: inherit; }
.swl-beitrag-titel { margin: 10px 0 14px; font-size: clamp(32px, 4.6vw, 54px); line-height: 1.07; letter-spacing: -.012em; text-wrap: balance; }
.swl-beitrag-meta { margin: 0 0 30px; }
.swl-beitrag-meta span::before { content: "von "; }
.swl-beitragsbild { box-sizing: border-box; max-width: calc(1000px + 2 * var(--swl-rand)); margin: 0 auto 36px; padding: 0 var(--swl-rand); }
.swl-beitragsbild img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.swl-beitragsbild figcaption { margin: 10px 0 0; font-size: 13.5px; line-height: 1.45; color: var(--swl-grau); }
.swl-beitragsbild figcaption a { color: inherit; }
.swl-beitrag--ohne-bild .swl-beitrag-kopf { padding-bottom: 6px; border-bottom: 1px solid var(--swl-linie); margin-bottom: 32px; }
.swl-beitrag-text { font-size: 18px; line-height: 1.7; }
.swl-beitrag-text > p:first-of-type { font-size: 20px; line-height: 1.6; color: var(--swl-tinte); }
.swl-beitrag-text h2 { font-size: 27px; line-height: 1.2; margin: 1.7em 0 .5em; }
.swl-beitrag-text h3 { font-size: 22px; margin: 1.5em 0 .4em; }
.swl-beitrag-text .pw-platz { margin: 10px auto 32px; }
.swl-beitrag-text .pv-quelle { margin: 2.2em 0 1em; padding: 18px 0 0; border-top: 2px solid var(--swl-moos-dunkel); font-size: 15px; line-height: 1.55; color: var(--swl-grau); }
.swl-beitrag-text .pv-quelle p, .swl-beitrag-text .pv-quelle div { margin: .3em 0; }
.swl-beitrag-text .pv-quelle a { color: var(--swl-moos-dunkel); }
.swl-beitrag-text .bp-quellen { margin: 2.2em 0 1em; padding: 18px 0 0; border-top: 2px solid var(--swl-moos-dunkel); font-size: 15px; opacity: 1; color: var(--swl-grau); }
.swl-beitrag-text .bp-quellen a { color: var(--swl-moos-dunkel); }
.swl-beitrag-orte { margin: 26px 0 0; font-size: 16px; }
.swl-beitrag-orte a { font-family: var(--swl-serif); font-style: italic; font-size: 1.12em; }
.swl-mehr-aus { margin-top: 80px; }
.swl-einzel .swl-mehr-aus .swl-liste, .swl-404 .swl-liste { margin-left: auto; margin-right: auto; }
.swl-einzel .swl-mehr-aus:not(.swl-notizen) .swl-abschnitt-kopf { max-width: 860px; margin-left: auto; margin-right: auto; }

/* 8. Archiv, Suche, 404 ------------------------------------------------- */
.swl-archiv-kopf {
	box-sizing: border-box;
	max-width: calc(var(--swl-breite) + 2 * var(--swl-rand));
	margin: 0 auto 40px; padding: 22px var(--swl-rand) 0;
}
.swl-archiv-titel { margin: 6px 0 14px; font-size: clamp(32px, 5vw, 60px); line-height: 1.06; letter-spacing: -.012em; max-width: 920px; text-wrap: balance; }
.swl-archiv-beschreibung { max-width: 720px; color: var(--swl-text); }
.swl-gemeinden { margin: 14px 0 0; max-width: 920px; font-size: 16.5px; line-height: 1.7; color: var(--swl-text); }
.swl-gemeinden a { color: var(--swl-tinte); text-decoration: underline; text-decoration-color: var(--swl-linie); text-underline-offset: 3px; }
.swl-gemeinden a:hover { color: var(--swl-moos); text-decoration-color: currentColor; }
.swl-archiv-liste {
	box-sizing: border-box;
	max-width: calc(var(--swl-breite) + 2 * var(--swl-rand));
	margin: 0 auto; padding: 0 var(--swl-rand);
}
.swl-archiv-liste > .swl-eintrag, .swl-archiv-liste > .swl-anzeige { max-width: 860px; margin-left: auto; margin-right: auto; }
.swl-archiv .swl-suche { margin-top: 18px; }
.swl-404 .swl-abschnitt { margin-top: 48px; }
.swl-404 .swl-liste { max-width: 860px; }
.nav-links, .pagination { box-sizing: border-box; max-width: calc(860px + 2 * var(--swl-rand)); margin: 0 auto; padding: 0 var(--swl-rand); }
.nav-links { display: flex; flex-wrap: wrap; gap: 10px; font-weight: 600; }
.nav-links .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 12px; box-sizing: border-box; border-radius: 22px; text-decoration: none; }
.nav-links .page-numbers.current { background: var(--swl-moos); color: #fff; }

/* 9. Veranstaltungen ---------------------------------------------------- */
.swl-termin-zeit { font-weight: 600; color: var(--swl-tinte); }
.swl-termin--abgesagt .swl-notiz-titel a { text-decoration: line-through; }
.swl-pv-kopf { box-sizing: border-box; max-width: calc(var(--swl-breite) + 2 * var(--swl-rand)); margin: 0 auto 40px; padding: 30px var(--swl-rand) 0; }
.swl-pv-kopf .swl-wechsel { margin: 0; }
.swl-pv-kopf .swl-wechsel-titel { font-size: clamp(30px, 3.6vw, 46px); line-height: 1.08; }
.swl-pv-saetze { margin: 4px 0 0; font-size: 17.5px; line-height: 1.6; color: var(--swl-tinte); }
.swl-pv-wann { font-family: var(--swl-serif); font-style: italic; font-weight: 500; font-size: 1.12em; color: var(--swl-moos-dunkel); }
.swl-pv-kalender { margin: 12px 0 0; font-weight: 600; }
.swl-pv-bildnachweis { margin: 22px 0 0; font-size: 13.5px; color: var(--swl-grau); }
.swl-pv-bildnachweis a { color: inherit; }
.pv-hinweis { margin: 0 0 10px; font-weight: 600; color: var(--swl-moos-dunkel); }
.swl-pv-filter { margin: 20px 0 0; }
.swl-pv-oben { display: flex; flex-wrap: wrap; gap: 0 22px; list-style: none; margin: 0 0 14px; padding: 0; }
.swl-pv-oben a { display: inline-block; padding: 6px 0; font-weight: 600; }
.swl-pv-filter a[aria-current="page"] { color: var(--swl-tinte); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 5px; }
.swl-pv-gruppen { display: grid; gap: 14px 40px; }
.swl-pv-gruppe ul { display: flex; flex-wrap: wrap; gap: 0 18px; list-style: none; margin: 0; padding: 0; }
.swl-pv-gruppe a { display: inline-block; padding: 5px 0; }
@media (min-width: 800px) { .swl-pv-gruppen { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.swl-pv-tag { margin-top: 56px; }
.swl-pv-liste { max-width: 860px; }
.swl-pv-anzeige { margin-top: 0; }
.swl-pv-anzeige .swl-anzeige--liste { max-width: 860px; margin: 0; padding: 0; border: 0; }
.swl-pv-anzeige .swl-anzeige .pw-platz { margin: 0; }
.swl-pv-schluss, .swl-pv-einsenden { box-sizing: border-box; max-width: calc(var(--swl-breite) + 2 * var(--swl-rand)); margin: 40px auto 0; padding: 0 var(--swl-rand); color: var(--swl-grau); }
.swl-pv-schluss .swl-pv-einsenden { padding: 0; margin: 0; max-width: 860px; }
.swl-beitrag-fuss .swl-pv-einsenden { padding: 0; margin-top: 22px; }

/* 10. Werbeplaetze ------------------------------------------------------- */
.swl-anzeige .pw-platz { margin: 0 auto; }
.swl-wechsel-bild--anzeige { display: flex; align-items: center; justify-content: flex-start; margin: 0; }
.swl-wechsel--rechts .swl-wechsel-bild--anzeige { justify-content: flex-end; }
.swl-anzeige--wechsel .pw-platz { margin: 0; }
.swl-anzeige--wechsel { width: 100%; }
.swl-anzeige--notiz { break-inside: avoid; margin: 0 0 22px; padding: 0 0 22px; border-bottom: 1px solid var(--swl-linie); }
.swl-anzeige--notiz .pw-platz { margin: 0; }
.swl-anzeige--liste { margin: 0 0 26px; padding: 0 0 26px; border-bottom: 1px solid var(--swl-linie); }
.swl-anzeige--ende { box-sizing: border-box; max-width: calc(720px + 2 * var(--swl-rand)); margin: 40px auto 0; padding: 0 var(--swl-rand); }
.swl-archiv > .swl-anzeige--ende { max-width: calc(860px + 2 * var(--swl-rand)); }
.pw-platz .pw-kennung { height: 22px; line-height: 22px; font-family: var(--swl-sans); font-size: 12.5px; letter-spacing: 0; text-transform: none; text-align: left; color: var(--swl-grau); }
.pw-platzhalter {
	border: 0 !important;
	background: var(--swl-nebel) !important;
	gap: 6px !important;
}
.pw-platzhalter .pw-titel { display: none; }
.pw-platzhalter::before { content: "Ihre Anzeige für Südbaden und die Baar"; font-family: var(--swl-serif); font-style: italic; font-weight: 500; font-size: 21px; line-height: 1.2; color: var(--swl-moos-dunkel); }
.pw-platzhalter .pw-mail { font-family: var(--swl-sans); font-size: 15px; font-weight: 600; color: var(--swl-moos); overflow-wrap: anywhere; }
.pw-platzhalter .pw-format { font-size: 13px; opacity: 1; color: var(--swl-grau); font-variant-numeric: tabular-nums; }
.pw-platzhalter:hover::before { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
@media (min-width: 768px) {
	.pw-quer .pw-platzhalter { flex-direction: row !important; align-items: center !important; flex-wrap: wrap; column-gap: 22px !important; }
	.pw-platz--start-band .pw-platzhalter { flex-direction: column !important; }
	.pw-platz--start-band .pw-platzhalter::before { font-size: 26px; }
	.pw-platz--start-band .pw-platzhalter { background: radial-gradient(circle at calc(100% - 92px) 50%, transparent 0 58px, rgba(52, 70, 26, .16) 58px 61px, transparent 61px), var(--swl-nebel) !important; padding-right: 150px !important; }
}

/* 11. Fuss -------------------------------------------------------------- */
.swl-fuss { margin-top: var(--swl-abstand); background: var(--swl-nebel); color: var(--swl-text); }
.swl-fuss-innen { box-sizing: border-box; max-width: 900px; margin: 0 auto; padding: 64px var(--swl-rand) 40px; text-align: center; }
.swl-fuss-lupe { position: relative; display: inline-block; text-decoration: none; color: var(--swl-tinte); margin: 0 34px 34px 0; }
.swl-fuss-glas {
	box-sizing: border-box; display: flex; align-items: center; justify-content: center;
	width: 210px; height: 210px; border-radius: 50%;
	background: var(--swl-papier);
	border: 3px solid var(--swl-moos-dunkel);
	box-shadow: inset 0 0 0 7px var(--swl-papier), inset 0 0 0 8px var(--swl-linie);
}
.swl-fuss-name { font-family: var(--swl-serif); font-weight: 600; font-size: 28px; line-height: 1.05; }
.swl-fuss-griff { position: absolute; left: 88%; top: 86%; width: 20px; height: 66px; border-radius: 0 0 10px 10px; background: var(--swl-moos-dunkel); transform: rotate(-45deg); transform-origin: 50% 0; }
.swl-fuss-lupe:hover .swl-fuss-name { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.swl-fuss-unterzeile { margin: 0 0 22px; font-family: var(--swl-serif); font-style: italic; font-size: 19px; color: var(--swl-moos-dunkel); }
.swl-fuss-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 22px; list-style: none; margin: 0; padding: 0; font-size: 15px; }
.swl-fuss-links a { display: inline-block; padding: 7px 0; color: var(--swl-tinte); text-decoration: none; }
.swl-fuss-links a:hover { color: var(--swl-moos); text-decoration: underline; text-underline-offset: 3px; }
.swl-fuss-themen ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 20px; list-style: none; margin: 0 0 18px; padding: 0; }
.swl-fuss-themen a { display: inline-block; padding: 6px 0; font-family: var(--swl-serif); font-size: 18px; color: var(--swl-tinte); text-decoration: none; }
.swl-fuss-themen a:hover, .swl-fuss-themen a[aria-current="page"] { color: var(--swl-moos); text-decoration: underline; text-underline-offset: 4px; }
.swl-fuss-suche { display: flex; justify-content: center; margin: 0 0 22px; }
.swl-fuss-suche .swl-suche { width: 100%; }
.swl-fuss-copy { margin: 18px 0 0; font-size: 13.5px; color: var(--swl-grau); }
.swl-pv-landschaft { margin: 0 0 4px; font-family: var(--swl-serif); font-style: italic; font-weight: 500; font-size: 18px; color: var(--swl-moos-dunkel); }
.swl-wechsel-bild:has(.swl-lupe--oben) { margin-top: 64px; }
