/* LBCA Städteseiten – einheitliche Formatierung für das Textfeld.
   Farben greifen auf die Divi-5-Globalfarben zurück, mit Fallbacks.
   Anpassen: nur die Variablen im ersten Block. */

body.lbca-stadtseite,
.lbca-stadt {
	--lbca-akzent: #b42725; /* überschreibbar in Einstellungen → LBCA Städteseiten */
	--lbca-akzent-hell: color-mix(in srgb, var(--lbca-akzent) 8%, #fff);
	--lbca-text: var(--gcid-body-color, #2b2b2b);
	--lbca-ueberschrift: var(--gcid-heading-color, #1a1a1a);
	--lbca-linie: #e3e3e3;
	--lbca-radius: 6px;
	--lbca-abstand: clamp(2rem, 4vw, 3rem);
}

.lbca-stadt {
	/* volle Breite des Divi-Inhaltsbereichs, damit Text und Seitentitel bündig sind */
	color: var(--lbca-text);
	font-size: 1.0625rem;
	line-height: 1.7;
}

/* Einstieg */
.lbca-stadt .lbca-intro {
	font-size: 1.2rem;
	line-height: 1.6;
	margin-bottom: var(--lbca-abstand);
}

/* Überschriften: zentriert, in der Akzentfarbe – inkl. Seitentitel (H1) von Divi */
body.lbca-stadtseite .entry-title,
body.lbca-stadtseite .main_title,
body.lbca-stadtseite #main-content h1 {
	text-align: center;
	color: var(--lbca-akzent);
}
.lbca-stadt h2,
.lbca-stadt h3 {
	text-align: center;
	color: var(--lbca-akzent);
}
.lbca-stadt h2 {
	font-size: clamp(1.4rem, 2.4vw, 1.75rem);
	line-height: 1.3;
	margin: var(--lbca-abstand) 0 0.75rem;
	padding-top: 0;
}
.lbca-stadt h3 {
	font-size: 1.2rem;
	margin: 1.5rem 0 0.5rem;
}
.lbca-stadt p { margin: 0 0 1rem; }
.lbca-stadt a { color: var(--lbca-akzent); text-decoration: underline; text-underline-offset: 2px; }

/* Listen */
.lbca-stadt ul { margin: 0 0 1rem 1.25rem; padding: 0; }
.lbca-stadt li { margin-bottom: 0.35rem; }

/* Faktenbox, z. B. Anreise auf einen Blick */
.lbca-stadt .lbca-fakten {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 1rem;
	margin: 1.25rem 0 1.5rem;
	padding: 1.25rem;
	background: var(--lbca-akzent-hell);
	border-radius: var(--lbca-radius);
}
.lbca-stadt .lbca-fakt-wert {
	display: block;
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--lbca-akzent);
	line-height: 1.2;
}
.lbca-stadt .lbca-fakt-label { display: block; font-size: 0.9rem; }

/* Kundenstimme */
.lbca-stadt blockquote.lbca-stimme {
	margin: 1.5rem 0;
	padding: 1rem 1.25rem;
	border-left: 4px solid var(--lbca-akzent);
	background: #fafafa;
	font-style: italic;
}
.lbca-stadt blockquote.lbca-stimme cite {
	display: block;
	margin-top: 0.5rem;
	font-style: normal;
	font-size: 0.9rem;
}

/* Termine (Shortcode [lbca_termine]) */
.lbca-stadt .lbca-termine {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 1rem;
	margin: 1rem 0 1.5rem;
}
.lbca-stadt .lbca-termin-karte {
	padding: 1.25rem;
	border: 1px solid var(--lbca-linie);
	border-top: 4px solid var(--lbca-akzent);
	border-radius: var(--lbca-radius);
}
.lbca-stadt .lbca-termin-titel { font-weight: 700; margin-bottom: 0.5rem; }
.lbca-stadt .lbca-termin-karte ul { list-style: none; margin: 0 0 0.75rem; }
.lbca-stadt .lbca-termin-preis { font-size: 0.95rem; margin: 0; }

/* Kurzinfo und Anfahrt (Shortcodes) */
.lbca-stadt .lbca-kurzinfo,
.lbca-stadt .lbca-anfahrt-ffm {
	padding: 1rem 1.25rem;
	border-radius: var(--lbca-radius);
	background: #f6f6f6;
	margin: 1rem 0 1.5rem;
}
.lbca-stadt .lbca-kurzinfo p:last-child,
.lbca-stadt .lbca-anfahrt-ffm p:last-child { margin-bottom: 0; }

/* FAQ als <details> */
.lbca-stadt .lbca-faq { margin: 1rem 0 1.5rem; border-top: 1px solid var(--lbca-linie); }
.lbca-stadt .lbca-faq-item { border-bottom: 1px solid var(--lbca-linie); }
.lbca-stadt .lbca-faq-item summary {
	cursor: pointer;
	list-style: none;
	padding: 1rem 2rem 1rem 0;
	position: relative;
	font-weight: 600;
	color: var(--lbca-ueberschrift);
}
.lbca-stadt .lbca-faq-item summary::-webkit-details-marker { display: none; }
.lbca-stadt .lbca-faq-item summary::after {
	content: "+";
	position: absolute;
	right: 0.25rem;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.4rem;
	color: var(--lbca-akzent);
}
.lbca-stadt .lbca-faq-item[open] summary::after { content: "–"; }
.lbca-stadt .lbca-faq-item > :not(summary) { padding: 0 0 1rem; }

/* Weitere Städte */
.lbca-stadt .lbca-nachbarn { font-size: 0.95rem; }

/* CTA (Shortcode [lbca_cta]) */
.lbca-stadt .lbca-cta {
	margin: var(--lbca-abstand) 0 1rem;
	padding: 1.75rem;
	text-align: center;
	background: var(--lbca-akzent-hell);
	border-radius: var(--lbca-radius);
}
.lbca-stadt .lbca-cta-button {
	display: inline-block;
	padding: 0.85rem 1.75rem;
	background: var(--lbca-akzent);
	color: #fff !important;
	text-decoration: none !important;
	font-weight: 600;
	border-radius: var(--lbca-radius);
}
.lbca-stadt .lbca-cta-button:hover { filter: brightness(1.1); }
.lbca-stadt .lbca-cta-tel { margin: 0.75rem 0 0; font-size: 0.95rem; }

/* Platzhalter für Angaben der Kundin: für Redakteure deutlich, für Besucher unauffällig.
   Seiten mit Platzhaltern dürfen ohnehin nicht veröffentlicht werden (Importer prüft das). */
.lbca-stadt mark.lbca-todo { background: transparent; color: inherit; }
.lbca-redaktion .lbca-stadt mark.lbca-todo {
	background: #ffe58a;
	outline: 2px dashed #d39e00;
	padding: 0 0.2em;
}

/* Faktenblock „Auf einen Blick“ */
.lbca-stadt .lbca-auf-einen-blick ul { list-style: none; margin: 0 0 1rem; padding: 0; }
.lbca-stadt .lbca-auf-einen-blick li { padding: 0.45rem 0; border-bottom: 1px solid var(--lbca-linie); margin: 0; }
.lbca-stadt .lbca-auf-einen-blick li:last-child { border-bottom: 0; }
.lbca-stadt .lbca-auf-einen-blick strong { color: var(--lbca-akzent); }
