/*!
 * main.css — GeneratePress-Child blitzer-soforthilfe.com (Elementor-Exit)
 *
 * Einzige CSS-Datei des Child-Themes (Kontrakt: ARCHITEKTUR.md).
 * Lädt NACH dem GP-Parent (generate-style) und überschreibt dessen Basis.
 *
 * INHALT
 *  01  Design-Tokens (:root)
 *  02  Basis: Body-Gradient, Hintergrundbilder (.bsh-bg-team), Scroll-Verhalten
 *  03  Utilities: .wrap / .wrap--narrow / .card / .stack / Helfer
 *  04  Entrance-Animationen (Keyframes + .is-invisible/.animate-*) + Reduced Motion
 *  05  Header (.bsh-header, .bsh-nav, .bsh-burger)
 *  06  Footer (.bsh-footer)
 *  07  Floating-Action-Button (.bsh-fab)
 *  08  Buttons/CTAs (.bsh-btn, .bsh-cta)
 *  09  Kontaktformular (.bsh-form) inkl. Upload-Button-Zustände
 *  10  FAQ-Accordion (.bsh-faq)
 *  11  Homepage (.bsh-home: Hero, Texte, Videos)
 *  12  Single Post (.bsh-sticky-cta, .bsh-post-frame)
 *  13  Gutenberg-Content (.entry-content) für die 1686 Posts
 *  14  /aktuelles (.bsh-aktuelles, .bsh-suche, .bsh-post, .bsh-pagination)
 *  15  Suchergebnisse (.bsh-search-results)
 *  16  404-Seite (.bsh-error404)
 *  17  Danke-Seite (.bsh-danke)
 *
 * Breakpoints (Kontrakt): Mobil max-width:767px, Tablet max-width:1024px,
 * Desktop min-width:1025px. Bild-URLs domain-los (/wp-content/uploads/…).
 *
 * BEWUSSTE ABWEICHUNG vom Original (dokumentierte Entscheidung):
 * Das Original hat KEINE mobilen Typo-Overrides — 72px-/70px-Überschriften
 * laufen dort auf kleinen Screens über (in allen Specs als offene Frage
 * markiert). Dieser Nachbau verkleinert große Überschriften bei ≤767px
 * bewusst (Hero 48px, /aktuelles 44px, 404 42px, Post-H1 34px, Suche 32px,
 * CTA 28px usw.), damit nichts aus dem Viewport läuft.
 */

/* =========================================================================
   01  DESIGN-TOKENS (spec-design-tokens.md, Abschnitt 12)
   ========================================================================= */

:root {
	/* Elementor-Globals (Kit 442) */
	--e-global-color-primary: #677073;
	--e-global-color-secondary: #54595F;
	--e-global-color-text: #7A7A7A;
	--e-global-color-accent: #000000;
	--e-global-typography-primary-font-family: "Roboto";
	--e-global-typography-primary-font-weight: 600;
	--e-global-typography-secondary-font-family: "Roboto Slab";
	--e-global-typography-secondary-font-weight: 400;
	--e-global-typography-text-font-family: "Roboto";
	--e-global-typography-text-font-weight: 400;
	--e-global-typography-accent-font-family: "Roboto";
	--e-global-typography-accent-font-weight: 500;

	/* Layout */
	--container-max-width: 1140px;
	--widgets-spacing: 20px;

	/* GP-Palette (beibehalten) */
	--contrast: #222222;
	--contrast-2: #575760;
	--contrast-3: #b2b2be;
	--base: #f0f0f0;
	--base-2: #f7f8f9;
	--base-3: #ffffff;
	--accent: #1e73be;

	/* Grün-System (CTAs, Submit, FAB) */
	--bsh-green: #28a745;
	--bsh-green-dark: #218838;
	--bsh-green-darker: #1e7e34;

	/* Header-/Nav-Farben (spec-header.md) */
	--bsh-nav-color: #404042;
	--bsh-nav-hover: #324A6D;
}

/* =========================================================================
   02  BASIS: Body-Gradient, Hintergrundbilder, Scroll-Verhalten
   ========================================================================= */

html {
	scroll-padding-top: 60px; /* Höhe des fixierten Menüs (Customizer-CSS-Erbe) */
	scroll-behavior: smooth;
}

/* Kit-Gradient 163deg als siteweiter Default (post-442.css-Erbe) */
body {
	background-color: transparent;
	background-image: linear-gradient(163deg, #FFFFFF 0%, #000000 100%);
	background-attachment: fixed;
}

/*
 * Team-Hintergrundbild (Body-Klasse .bsh-bg-team via setup.php:
 * home, single-post, search, /aktuelles).
 * Desktop: team_hintergrund6_neu2.png fixed/cover.
 * ≤1024px: Hintergrund_mobile.png (contain, no-repeat, scroll).
 */
body.bsh-bg-team {
	background-color: #FFFFFF;
	background-image: url('/wp-content/uploads/2026/05/team_hintergrund6_neu2.png');
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}

@media (min-width: 1025px) {
	body.bsh-bg-team {
		background-attachment: fixed;
	}
}

@media (max-width: 1024px) {
	body.bsh-bg-team {
		background-image: url('/wp-content/uploads/2024/12/Hintergrund_mobile.png');
		background-size: contain;
		background-position: top center;
		background-attachment: scroll;
	}
}

/*
 * /aktuelles (einzige Seite mit .page UND .bsh-bg-team außer der Startseite,
 * die zusätzlich .home trägt) — Snippet-17-Verhalten:
 * >768px festes Cover-Teambild, ≤768px schlicht weiß.
 */
@media (max-width: 1024px) and (min-width: 769px) {
	body.page.bsh-bg-team:not(.home) {
		background-image: url('/wp-content/uploads/2026/05/team_hintergrund6_neu2.png');
		background-size: cover;
		background-position: center center;
		background-attachment: fixed;
	}
}

@media (max-width: 768px) {
	body.page.bsh-bg-team:not(.home) {
		background-color: #ffffff;
		background-image: none;
		background-attachment: scroll;
	}
}

/*
 * /danke (Body-Klasse .bsh-bg-danke via setup.php): Teamfoto _neu1
 * (spec-danke.md / post-4398.css) — cover auf allen Breakpoints,
 * fixed nur ≥1025px.
 */
body.bsh-bg-danke {
	background-color: #FFFFFF;
	background-image: url('/wp-content/uploads/2026/05/team_hintergrund6_neu1.png');
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}

@media (min-width: 1025px) {
	body.bsh-bg-danke {
		background-attachment: fixed;
	}
}

/*
 * 404 (Body-Klasse .bsh-bg-404 via setup.php): Desktop bleibt der
 * Kit-Gradient (Live-Zustand laut spec-error-404.md §1/§8),
 * ≤1024px zeigt das Original Hintergrund_mobile.png (cover).
 */
@media (max-width: 1024px) {
	body.bsh-bg-404 {
		background-color: #FFFFFF;
		background-image: url('/wp-content/uploads/2024/12/Hintergrund_mobile.png');
		background-size: cover;
		background-position: top center;
		background-repeat: no-repeat;
		background-attachment: scroll;
	}
}

/* Karten-Optik für GP-gerenderte Inhalte (Customizer-CSS-Erbe, Pflicht) */
.inside-article {
	background-color: rgba(255, 255, 255, 0.93) !important;
	border-radius: 10px !important;
}

/* Formular-Anker: Scroll-Puffer wie Snippet 18 */
#formular {
	scroll-margin-top: -15px !important;
	scroll-behavior: smooth;
}

/* Leere Anker-Divs (#start, #uberuns, #faq, #formular2, #suche) */
.bsh-anchor,
.bsh-aktuelles__anker {
	display: block;
	height: 0;
	margin: 0;
	padding: 0;
	visibility: hidden;
}

/* Abstandshalter (Original-Spacer 5px) */
.bsh-spacer {
	height: 5px;
}

/* Nur Tablet/Mobil sichtbar (Beispielzeile /aktuelles) */
@media (min-width: 1025px) {
	.bsh-hidden-desktop {
		display: none !important;
	}
}

/* =========================================================================
   03  UTILITIES
   ========================================================================= */

/* Zentrale Inhaltsspalte (Elementor-Boxed-Erbe: 1140px) */
.wrap {
	width: 100%;
	max-width: var(--container-max-width);
	margin-left: auto;
	margin-right: auto;
}

/* Schmale, linksbündige Spalte (Original: .container max-width 950px) */
.wrap--narrow {
	width: 100%;
	max-width: 950px;
	margin-left: 0;
	margin-right: auto;
}

/*
 * Halbtransparente weiße Karte. Basis OHNE Schatten: Home/Aktuelles/Danke
 * haben im Original keinen box-shadow; nur 404 und Single-Post (dort via
 * .bsh-post-frame) tragen 2px 2px 10px rgba(0,0,0,.5) — Overrides in den
 * jeweiligen Abschnitten (Suche/404 zusätzlich Opacity 0.9 statt 0.93).
 */
.card {
	background-color: rgba(255, 255, 255, 0.93);
	border-radius: 10px;
	padding: 40px;
}

@media (max-width: 768px) {
	.card {
		padding: 30px;
	}
}

/* Vertikaler Kind-Abstand (Kit-Widget-Spacing 20px) */
.stack > * + * {
	margin-top: var(--widgets-spacing);
}

/* =========================================================================
   04  ENTRANCE-ANIMATIONEN
   Mechanik: Elemente starten mit .is-invisible; main.js entfernt
   .is-invisible per IntersectionObserver und setzt .animate-*.
   ========================================================================= */

.is-invisible {
	visibility: hidden;
}

@keyframes bshBounceInDown {
	0%, 60%, 75%, 90%, 100% {
		animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
	}
	0% {
		opacity: 0;
		transform: translate3d(0, -3000px, 0);
	}
	60% {
		opacity: 1;
		transform: translate3d(0, 25px, 0);
	}
	75% {
		transform: translate3d(0, -10px, 0);
	}
	90% {
		transform: translate3d(0, 5px, 0);
	}
	100% {
		transform: translate3d(0, 0, 0);
	}
}

@keyframes bshBounceInUp {
	0%, 60%, 75%, 90%, 100% {
		animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
	}
	0% {
		opacity: 0;
		transform: translate3d(0, 3000px, 0);
	}
	60% {
		opacity: 1;
		transform: translate3d(0, -20px, 0);
	}
	75% {
		transform: translate3d(0, 10px, 0);
	}
	90% {
		transform: translate3d(0, -5px, 0);
	}
	100% {
		transform: translate3d(0, 0, 0);
	}
}

@keyframes bshBounceInRight {
	0%, 60%, 75%, 90%, 100% {
		animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
	}
	0% {
		opacity: 0;
		transform: translate3d(3000px, 0, 0);
	}
	60% {
		opacity: 1;
		transform: translate3d(-25px, 0, 0);
	}
	75% {
		transform: translate3d(10px, 0, 0);
	}
	90% {
		transform: translate3d(-5px, 0, 0);
	}
	100% {
		transform: translate3d(0, 0, 0);
	}
}

@keyframes bshFadeInDown {
	0% {
		opacity: 0;
		transform: translate3d(0, -100%, 0);
	}
	100% {
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}
}

/* Dauer "fast" ≈ 750ms (Elementor animated-fast) */
.animate-bounce-in-down {
	visibility: visible;
	animation: bshBounceInDown 0.75s both;
}

.animate-bounce-in-up {
	visibility: visible;
	animation: bshBounceInUp 0.75s both;
}

.animate-bounce-in-right {
	visibility: visible;
	animation: bshBounceInRight 0.75s both;
}

.animate-fade-in-down {
	visibility: visible;
	animation: bshFadeInDown 0.75s both;
}

/* Reduced-Motion-Guard: alles sofort sichtbar, keine Bewegung */
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	.is-invisible {
		visibility: visible;
	}

	.animate-bounce-in-down,
	.animate-bounce-in-up,
	.animate-bounce-in-right,
	.animate-fade-in-down,
	.bsh-sticky-cta,
	.bsh-sticky-cta__marker-svg path {
		animation: none !important;
	}
}

/* =========================================================================
   05  HEADER (spec-header.md — Nachbau Elementor-Template 1503)
   ========================================================================= */

.bsh-header {
	position: sticky;
	top: 0;
	z-index: 9999;
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
	gap: 0;
	min-height: 60px;
	margin: 0;
	padding: 0 8%;
	background-color: #FFFFFF;
}

@media (max-width: 1024px) {
	.bsh-header {
		padding: 0 5%;
	}
}

@media (max-width: 767px) {
	.bsh-header {
		min-height: 50px;
	}
}

/* Logo: max. 43px, Hover-Animation "grow" */
.bsh-header__logo {
	display: inline-flex;
	align-items: center;
	line-height: 0;
}

.bsh-header__logo-img {
	width: 100%;
	max-width: 43px;
	height: auto;
	object-fit: scale-down;
	object-position: top left;
	transition: transform 0.3s ease;
}

.bsh-header__logo:hover .bsh-header__logo-img,
.bsh-header__logo:focus .bsh-header__logo-img {
	transform: scale(1.1);
}

/* Desktop-/Tablet-Navigation (horizontal, Underline-Fade) */
.bsh-nav {
	display: block;
}

.bsh-nav__list {
	display: flex;
	flex-direction: row;
	align-items: center;
	list-style: none;
	margin: 0;
	padding: 0;
}

.bsh-nav__list li {
	margin: 0 15px; /* Item-Abstand 30px */
}

.bsh-nav__list a {
	position: relative;
	display: inline-block;
	padding: 5px 0;
	font-family: "Poppins", sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1em;
	letter-spacing: 0;
	text-decoration: none;
	color: var(--bsh-nav-color);
	transition: color 0.3s ease;
}

@media (max-width: 1024px) {
	.bsh-nav__list a {
		font-size: 14px;
	}
}

/* Pointer: Underline 1px #324A6D, Animation fade */
.bsh-nav__list a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1px;
	background-color: var(--bsh-nav-hover);
	opacity: 0;
	transition: opacity 0.3s ease;
}

.bsh-nav__list a:hover,
.bsh-nav__list a:focus,
.bsh-nav__list a.bsh-nav__link--active,
.bsh-nav__list .current-menu-item > a,
.bsh-nav__list .current_page_item > a {
	color: var(--bsh-nav-hover);
}

.bsh-nav__list a:hover::after,
.bsh-nav__list a:focus::after,
.bsh-nav__list a.bsh-nav__link--active::after,
.bsh-nav__list .current-menu-item > a::after,
.bsh-nav__list .current_page_item > a::after {
	opacity: 1;
}

/* Burger-Toggle: nur Mobil sichtbar */
.bsh-burger {
	display: none;
	align-items: center;
	justify-content: center;
	margin-left: auto;
	padding: 6px;
	background: transparent;
	border: 0;
	cursor: pointer;
	color: #707174;
}

.bsh-burger:hover,
.bsh-burger:focus {
	color: #000000;
	background: transparent;
}

.bsh-burger__icon {
	width: 20px;
	height: 20px;
	display: block;
}

.bsh-burger__icon--close {
	display: none;
}

.bsh-burger[aria-expanded="true"] .bsh-burger__icon--open {
	display: none;
}

.bsh-burger[aria-expanded="true"] .bsh-burger__icon--close {
	display: block;
}

/* Mobile-Dropdown: volle Breite, Panel #F3F5F8, 15px unter dem Header */
@media (max-width: 767px) {
	.bsh-burger {
		display: inline-flex;
	}

	.bsh-nav {
		display: none;
		position: absolute;
		top: calc(100% + 15px);
		left: 0;
		right: 0;
		background-color: #F3F5F8;
		box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
	}

	.bsh-nav.bsh-nav--open {
		display: block;
	}

	.bsh-nav__list {
		flex-direction: column;
		align-items: stretch;
	}

	.bsh-nav__list li {
		margin: 0;
	}

	.bsh-nav__list a {
		display: block;
		padding: 14px 20px;
		font-size: 14px; /* Tablet-Override 14px gilt laut spec-header.md §4/§7 auch mobil */
		color: #454649;
	}

	.bsh-nav__list a::after {
		display: none;
	}

	.bsh-nav__list a:hover,
	.bsh-nav__list a:focus {
		color: #030303;
		background-color: #F9FAFD;
	}

	.bsh-nav__list a.bsh-nav__link--active,
	.bsh-nav__list .current-menu-item > a,
	.bsh-nav__list .current_page_item > a {
		color: #000000;
		background-color: #F9FAFD;
	}
}

/* =========================================================================
   06  FOOTER (spec-footer.md — Nachbau Elementor-Template 1603)
   ========================================================================= */

.bsh-footer {
	background-color: #FFFFFF;
	padding: 30px 0;
}

@media (max-width: 1024px) {
	.bsh-footer {
		padding: 30px 20px;
	}
}

@media (max-width: 767px) {
	.bsh-footer {
		padding: 25px 20px;
	}
}

/* Zeilen-Gap 50px (Mobil 40px) */
.bsh-footer .wrap > * + * {
	margin-top: 50px;
}

@media (max-width: 767px) {
	.bsh-footer .wrap > * + * {
		margin-top: 40px;
	}
}

/* Zeile 1: Menü links, Telefon rechts, gepunktete Trennlinie */
.bsh-footer__row--top {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px;
	border-bottom: 1px dotted #9b9b9b;
	padding-bottom: 30px;
}

.bsh-footer__menu {
	display: flex;
	flex-direction: row;
	align-items: center;
	flex-wrap: wrap;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 0 31px;
}

.bsh-footer__menu a {
	font-size: 15px;
	font-weight: 500;
	text-decoration: none;
	color: #A59D9D;
	transition: color 0.3s ease;
}

.bsh-footer__menu a:hover,
.bsh-footer__menu a:focus {
	color: #000000;
}

@media (max-width: 1024px) {
	.bsh-footer__menu a {
		font-size: 13px;
	}
}

/* Footer-Burger (nur ≤767px sichtbar — spec-footer.md §3: Toggle 30px
   #777777, Hover #000000, transparenter Hintergrund) */
.bsh-footer__burger {
	display: none;
	align-items: center;
	justify-content: center;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	cursor: pointer;
	color: #777777;
}

.bsh-footer__burger:hover,
.bsh-footer__burger:focus {
	color: #000000;
	background: transparent;
}

.bsh-footer__burger-icon {
	width: 30px;
	height: 30px;
	display: block;
}

.bsh-footer__burger-icon--close {
	display: none;
}

.bsh-footer__burger[aria-expanded="true"] .bsh-footer__burger-icon--open {
	display: none;
}

.bsh-footer__burger[aria-expanded="true"] .bsh-footer__burger-icon--close {
	display: block;
}

/* Mobil: Zeile 1 = 30% (Burger) / 70% (Telefon), Menü wird Full-Width-
   Dropdown (zentriert, 40px Abstand oben, Items #676767 auf #eaeaea,
   Hover #000000 auf #ededed, 15px) — spec-footer.md §3/§9 */
@media (max-width: 767px) {
	.bsh-footer__row--top {
		flex-wrap: wrap;
		gap: 0;
	}

	.bsh-footer__burger {
		display: inline-flex;
		flex: 0 0 30%;
		justify-content: flex-start;
	}

	.bsh-footer__phone {
		flex: 0 0 70%;
		margin: 0;
	}

	.bsh-footer__nav {
		display: none;
		flex: 0 0 100%;
		width: 100%;
		order: 3;
		margin-top: 40px;
	}

	.bsh-footer__nav.bsh-footer__nav--open {
		display: block;
	}

	.bsh-footer__menu {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		text-align: center;
	}

	.bsh-footer__menu a {
		display: block;
		padding: 12px 20px;
		font-size: 15px;
		color: #676767;
		background-color: #eaeaea;
	}

	.bsh-footer__menu a:hover,
	.bsh-footer__menu a:focus {
		color: #000000;
		background-color: #ededed;
	}
}

.bsh-footer__phone {
	margin: 0 0 0 auto;
	text-align: right;
}

.bsh-footer__phone a {
	font-family: "Poppins", sans-serif;
	font-size: 15px;
	font-weight: 500;
	color: #54595f;
	text-decoration: none;
	cursor: pointer;
}

@media (max-width: 1024px) {
	.bsh-footer__phone a {
		font-size: 22px;
	}
}

@media (max-width: 767px) {
	.bsh-footer__phone a {
		font-size: 20px;
	}
}

/* Zeile 2: Copyright-Block */
.bsh-footer__copyright,
.bsh-footer__credit {
	margin: 0;
	font-size: 13px;
	font-weight: 300;
	text-align: left;
}

.bsh-footer__copyright a,
.bsh-footer__credit a {
	color: #54595f;
	text-decoration: none;
}

.bsh-footer__copyright a:hover,
.bsh-footer__credit a:hover {
	text-decoration: underline;
}

@media (max-width: 767px) {
	.bsh-footer__copyright,
	.bsh-footer__credit {
		text-align: center;
		line-height: 19px;
	}
}

/* Zeilen 3+4: Impressum/Datenschutz als native <details>-Accordions */
.bsh-footer__legal {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.bsh-footer__legal-item {
	border: none;
}

.bsh-footer__legal-summary {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	cursor: pointer;
	list-style: none;
	color: var(--contrast);
	font-size: 17px;
}

.bsh-footer__legal-summary::-webkit-details-marker,
.bsh-footer__legal-summary::marker {
	display: none;
	content: "";
}

.bsh-footer__legal-summary:hover .bsh-footer__legal-title {
	text-decoration: underline;
}

.bsh-footer__legal-icon {
	width: 16px;
	height: 16px;
	flex: 0 0 auto;
}

.bsh-footer__legal-content {
	padding: 20px 0 10px;
	max-width: 950px;
}

.bsh-footer__legal-content h2,
.bsh-footer__legal-content h3,
.bsh-footer__legal-content h4 {
	margin: 0 0 20px;
	line-height: 1.2em;
	font-weight: 400;
	color: var(--contrast);
}

.bsh-footer__legal-content h2 {
	font-size: 35px;
}

.bsh-footer__legal-content h3 {
	font-size: 29px;
}

.bsh-footer__legal-content h4 {
	font-size: 24px;
}

.bsh-footer__legal-content p {
	margin: 0 0 20px;
	color: var(--contrast);
}

.bsh-footer__legal-content a {
	color: var(--contrast);
	text-decoration: underline;
}

/* =========================================================================
   07  FLOATING-ACTION-BUTTON (Portierung Snippet 18)
   ========================================================================= */

.bsh-fab {
	display: flex;
	align-items: center;
	justify-content: center;
	position: fixed;
	bottom: 30px;
	right: 30px;
	width: 70px;
	height: 70px;
	background: linear-gradient(135deg, #28a745 0%, #218838 100%);
	border: 2px solid #ffffff;
	border-radius: 50%;
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
	z-index: 999999;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.bsh-fab__icon {
	width: 35px;
	height: 35px;
}

.bsh-fab:hover,
.bsh-fab:focus {
	transform: scale(1.1);
	box-shadow: 0 8px 25px rgba(0, 0, 0, 0.4);
}

@media (max-width: 767px) {
	.bsh-fab {
		bottom: 20px;
		right: 20px;
		width: 60px;
		height: 60px;
	}

	.bsh-fab__icon {
		width: 30px;
		height: 30px;
	}
}

/* =========================================================================
   08  BUTTONS / CTAs (grünes Gradient-System #28a745/#218838/#1e7e34)
   ========================================================================= */

.bsh-btn,
.bsh-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background-color: var(--bsh-green);
	background-image: linear-gradient(135deg, #28a745 0%, #218838 100%);
	color: #ffffff;
	font-size: 18px;
	font-weight: 700;
	text-align: center;
	text-decoration: none;
	border: none;
	border-radius: 5px;
	padding: 15px 30px;
	box-shadow: 0 4px 15px rgba(40, 167, 69, 0.3);
	transition: all 0.3s ease;
	cursor: pointer;
}

.bsh-btn:hover,
.bsh-btn:focus,
.bsh-cta:hover,
.bsh-cta:focus {
	background-image: linear-gradient(135deg, #218838 0%, #1e7e34 100%);
	color: #ffffff;
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(40, 167, 69, 0.4);
}

.bsh-cta-wrap,
.bsh-search-results__cta,
.bsh-aktuelles__cta {
	text-align: center;
}

/* Neutraler Button (Danke-Seite, Elementor-Default-Optik) */
.bsh-btn--neutral {
	background-color: #69727d;
	background-image: none;
	color: #ffffff;
	font-size: 15px;
	font-weight: 400;
	line-height: 1;
	padding: 12px 24px;
	border-radius: 3px;
	box-shadow: none;
}

.bsh-btn--neutral:hover,
.bsh-btn--neutral:focus {
	background-color: #69727d;
	background-image: none;
	color: #ffffff;
	transform: none;
	box-shadow: none;
}

/* =========================================================================
   09  KONTAKTFORMULAR (.bsh-form — spec-homepage 4.2 / spec-single-post 3.9)
   ========================================================================= */

.bsh-form {
	display: flex;
	flex-wrap: wrap;
	width: 100%;
	margin: 0;
}

.bsh-form__group {
	width: 100%;
	padding-left: 5px;
	padding-right: 5px;
	margin-bottom: 10px;
}

.bsh-form__group--half {
	width: 50%;
}

@media (max-width: 767px) {
	.bsh-form__group--half {
		width: 100%;
	}
}

.bsh-form__label {
	display: block;
	padding-bottom: 0;
	margin-bottom: 4px;
	font-size: 15px;
	color: var(--contrast);
}

.bsh-form__label--upload {
	color: #000000;
	font-size: 17px;
	line-height: 1.5;
}

/* Felder: weiß, Radius 10px, Eingabetext #CF1B1B (Original) */
.bsh-form__field {
	display: block;
	width: 100%;
	background-color: #ffffff;
	color: #CF1B1B;
	border: 1px solid #69727d;
	border-radius: 10px;
	font-size: 15px;
	line-height: 1.4;
	padding: 8px 12px;
}

.bsh-form__field:focus {
	outline: 2px solid var(--bsh-nav-hover);
	outline-offset: 1px;
}

/* Fehlerbox (role="alert") */
.bsh-form__error {
	width: 100%;
	margin: 0 5px 10px;
	padding: 12px 16px;
	background-color: #fdecea;
	border: 1px solid #cf1b1b;
	border-radius: 5px;
	color: #8f1414;
	font-size: 15px;
}

/* Upload-Feld: File-Input visuell versteckt (aber fokussierbar), der
   sichtbare Button ist ein echtes <label>-Element — Pseudo-Elemente auf
   <input type="file"> rendert iOS Safari nicht (Live-Bug 03.07.2026). */
.bsh-form__upload {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
}

.bsh-form__group--upload {
	position: relative;
}

.bsh-form__upload-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 55px;
	background-color: #000000;
	color: #ffffff;
	border-radius: 5px;
	font-size: 17px;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.3s ease;
	-webkit-user-select: none;
	user-select: none;
}

.bsh-form__upload-button:hover,
.bsh-form__upload:focus ~ .bsh-form__upload-button {
	background-color: #1a1a1a;
}

/* Zustand "Datei gewählt": rein per CSS über :valid (funktioniert auch ohne
   JS — iOS-sicher); data-bsh-upload-state (JS) als zweiter Trigger. Der
   Button trägt beide Texte als Spans, CSS blendet um. */
.bsh-form__upload-button-valid {
	display: none;
}

.bsh-form__upload[data-bsh-upload-state='valid'] ~ .bsh-form__upload-button,
.bsh-form__upload:valid ~ .bsh-form__upload-button {
	background-color: #0056b3;
}

.bsh-form__upload[data-bsh-upload-state='valid'] ~ .bsh-form__upload-button:hover,
.bsh-form__upload:valid ~ .bsh-form__upload-button:hover {
	background-color: #004a99;
}

.bsh-form__upload[data-bsh-upload-state='valid'] ~ .bsh-form__upload-button .bsh-form__upload-button-empty,
.bsh-form__upload:valid ~ .bsh-form__upload-button .bsh-form__upload-button-empty {
	display: none;
}

.bsh-form__upload[data-bsh-upload-state='valid'] ~ .bsh-form__upload-button .bsh-form__upload-button-valid,
.bsh-form__upload:valid ~ .bsh-form__upload-button .bsh-form__upload-button-valid {
	display: inline;
}

/* Submit-Button: grünes Gradient-System, volle Breite */
.bsh-form__submit {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	background-color: var(--bsh-green);
	background-image: linear-gradient(135deg, #28a745 0%, #218838 100%);
	color: #ffffff;
	font-size: 18px;
	font-weight: 700;
	text-align: center;
	border: none;
	border-radius: 5px;
	padding: 15px 30px;
	box-shadow: 0 4px 15px rgba(40, 167, 69, 0.3);
	transition: all 0.3s ease;
	cursor: pointer;
}

.bsh-form__submit:hover,
.bsh-form__submit:focus {
	background-color: var(--bsh-green-dark);
	background-image: linear-gradient(135deg, #218838 0%, #1e7e34 100%);
	color: #ffffff;
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(40, 167, 69, 0.4);
}

/* SSL-Hinweis unter dem Formular (12px, kursiv, #555555) */
.bsh-ssl-hinweis,
.bsh-post-frame__ssl-hinweis {
	text-align: center;
}

.bsh-ssl-hinweis,
.bsh-post-frame__ssl-hinweis span {
	display: inline-block;
	font-size: 12px;
	font-style: italic;
	font-family: sans-serif;
	color: #555555;
	line-height: 1.1;
}

/* =========================================================================
   10  FAQ-ACCORDION (.bsh-faq — 13 Items, natives <details>/<summary>)
   ========================================================================= */

.bsh-faq {
	width: 100%;
}

.bsh-faq__item {
	border: none;
	margin: 0;
}

.bsh-faq__item + .bsh-faq__item {
	margin-top: 8px;
}

.bsh-faq__summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	cursor: pointer;
	list-style: none;
	padding: 10px 0;
	font-size: 1rem;
	font-weight: 600;
	color: var(--contrast);
}

.bsh-faq__summary::-webkit-details-marker,
.bsh-faq__summary::marker {
	display: none;
	content: "";
}

.bsh-faq__summary:hover .bsh-faq__question {
	text-decoration: underline;
}

.bsh-faq__icon {
	display: inline-flex;
	flex: 0 0 auto;
	width: 15px;
	height: 15px;
	color: var(--contrast);
}

.bsh-faq__icon svg {
	width: 15px;
	height: 15px;
	display: block;
}

/* Icon-Zustände: plus (zu) / minus (offen) */
.bsh-faq__icon-minus {
	display: none;
}

.bsh-faq__item[open] .bsh-faq__icon-plus {
	display: none;
}

.bsh-faq__item[open] .bsh-faq__icon-minus {
	display: block;
}

.bsh-faq__content {
	padding: 5px 0 15px;
	color: #000000;
}

.bsh-faq__content p,
.bsh-faq__content ul,
.bsh-faq__content ol {
	color: #000000;
	margin: 0 0 20px;
}

.bsh-faq__content ul,
.bsh-faq__content ol {
	padding-left: 1.5em;
}

.bsh-faq__content > :last-child {
	margin-bottom: 0;
}

/* =========================================================================
   11  HOMEPAGE (.bsh-home — spec-homepage.md)
   ========================================================================= */

.bsh-home {
	color: var(--contrast);
}

/* Hero */
.bsh-hero__title {
	margin: 0 0 20px;
	font-size: 72px;
	font-weight: 600;
	letter-spacing: -2.6px;
	line-height: 1.1;
	text-align: left;
	overflow-wrap: break-word;
}

@media (max-width: 767px) {
	.bsh-hero__title {
		font-size: 48px;
		letter-spacing: -1.8px;
	}
}

.bsh-hero__image {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	border-radius: 10px;
}

/* Sektions-Überschriften */
.bsh-heading {
	margin: 0 0 20px;
	font-weight: 600;
	line-height: 1.15;
	color: var(--contrast);
	overflow-wrap: break-word;
}

.bsh-heading--uberuns {
	font-size: 52px;
	letter-spacing: -1.6px;
}

.bsh-heading--faq {
	font-size: 45px;
	letter-spacing: -1.9px;
}

@media (max-width: 767px) {
	.bsh-heading--uberuns {
		font-size: 38px;
	}

	.bsh-heading--faq {
		font-size: 34px;
	}
}

/* Fließtexte */
.bsh-text {
	color: var(--contrast);
}

.bsh-text p {
	margin: 0 0 20px;
}

.bsh-text > :last-child {
	margin-bottom: 0;
}

.bsh-text ul {
	margin: 0 0 20px;
	padding-left: 1.5em;
}

/* Portrait Dr. Bunzel (alignleft, Text umfließt) */
.bsh-text .alignleft {
	float: left;
	margin: 0 1.5em 1em 0;
	max-width: 100%;
	height: auto;
	border-radius: 10px;
}

@media (max-width: 767px) {
	.bsh-text .alignleft {
		float: none;
		display: block;
		margin: 0 auto 1em;
	}
}

.bsh-text--bunzel::after {
	content: "";
	display: table;
	clear: both;
}

/* Videos: Reel 9:16 nur ≤1024px, 1:1 nur Desktop, YouTube 16:9 */
.bsh-video {
	width: 100%;
}

.bsh-video video {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 10px;
	background-color: #000000;
}

.bsh-video--reel-mobile {
	display: none;
}

.bsh-video--reel-desktop {
	display: none;
}

/* Beide Reel-Widgets laufen wie im Original über die volle Inhaltsbreite
   (spec-homepage.md §4.4 — kein max-width-Deckel) */
@media (max-width: 1024px) {
	.bsh-video--reel-mobile {
		display: block;
	}

	.bsh-video--reel-mobile video {
		aspect-ratio: 9 / 16;
		object-fit: cover;
	}
}

@media (min-width: 1025px) {
	.bsh-video--reel-desktop {
		display: block;
	}

	.bsh-video--reel-desktop video {
		aspect-ratio: 1 / 1;
		object-fit: cover;
	}
}

.bsh-video--youtube {
	position: relative;
	aspect-ratio: 16 / 9;
	border-radius: 10px;
	overflow: hidden;
}

.bsh-video--youtube iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

/* Abschluss-Absatz mit externen Links */
.bsh-home__more {
	margin-top: 20px;
}

.bsh-home__more a {
	color: #000000;
	text-decoration: underline;
	display: inline-block;
	transition: transform 0.3s ease, color 0.3s ease;
}

.bsh-home__more a:hover {
	color: #000000;
	transform: scale(0.99);
}

/* =========================================================================
   12  SINGLE POST (spec-single-post.md — Sticky-CTA + Artikel-Karte)
   ========================================================================= */

/* Sticky-CTA-Leiste: erscheint 5s nach Seitenladung (fadeInDown, both!) */
.bsh-sticky-cta {
	position: sticky;
	top: 60px;
	z-index: 990;
	background-color: #FFFFFF;
	border-radius: 10px;
	box-shadow: 3px 3px 10px 0 rgba(0, 0, 0, 0.5);
	margin: 3%;
	max-width: 950px; /* wie .bsh-post-frame (950px-Spalte des Originals) */
	padding: 4px 10px;
	animation-name: bshFadeInDown;
	animation-duration: 2s;
	animation-delay: 5s;
	animation-fill-mode: both; /* initial unsichtbar, kein Aufblitzen! */
}

@media (max-width: 1024px) {
	.bsh-sticky-cta {
		top: 58px;
		margin: 0 0 20px;
	}
}

@media (max-width: 767px) {
	.bsh-sticky-cta {
		top: 50px;
		padding: 4px 8px;
	}
}

.bsh-sticky-cta__link {
	display: block;
	text-decoration: none;
	color: #000000;
}

.bsh-sticky-cta__headline {
	margin: 0;
	font-size: 30px;
	font-weight: 600;
	letter-spacing: -1.7px;
	line-height: 1.2;
	color: #000000;
	text-align: left;
}

@media (max-width: 767px) {
	.bsh-sticky-cta__headline {
		font-size: 22px;
		letter-spacing: -1px;
	}
}

/* Roter handgezeichneter Kreis um „Messfehler" (Loop alle 8s, 1200ms Zeichnen) */
.bsh-sticky-cta__marker {
	position: relative;
	display: inline-block;
}

.bsh-sticky-cta__marker-svg {
	position: absolute;
	top: -30%;
	left: -10%;
	width: 120%;
	height: 160%;
	overflow: visible;
	pointer-events: none;
}

.bsh-sticky-cta__marker-svg path {
	stroke-dasharray: 1560;
	stroke-dashoffset: 1560;
	animation: bshMarkerDraw 8s linear infinite;
}

@keyframes bshMarkerDraw {
	0% {
		stroke-dashoffset: 1560;
	}
	15% {
		stroke-dashoffset: 0;
	}
	100% {
		stroke-dashoffset: 0;
	}
}

/* Artikel-Karte (halbtransparent weiß, Original-Opacity 0.9) */
.bsh-post-frame {
	background-color: rgba(255, 255, 255, 0.9);
	border-radius: 10px;
	box-shadow: 2px 2px 10px 0 rgba(0, 0, 0, 0.5);
	margin: 3%;
	max-width: 950px;
	color: var(--contrast);
}

@media (max-width: 1024px) {
	.bsh-post-frame {
		margin: 0;
	}
}

.bsh-post-frame__title {
	margin: 0 0 20px;
	font-size: 50px;
	font-weight: 600;
	line-height: 49px;
	letter-spacing: -1.1px;
	color: var(--contrast);
	overflow-wrap: break-word;
}

@media (max-width: 767px) {
	.bsh-post-frame__title {
		font-size: 34px;
		line-height: 1.15;
		letter-spacing: -0.8px;
	}
}

/* Meta-Zeile: Datum + Kommentare (Inline-Icons) */
.bsh-post-frame__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 20px;
	margin-bottom: 20px;
	font-size: 15px;
	color: var(--e-global-color-text);
}

.bsh-post-frame__meta-item {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.bsh-post-frame__meta-icon {
	width: 14px;
	height: 14px;
	flex: 0 0 auto;
}

.bsh-post-frame__meta a {
	color: inherit;
	text-decoration: none;
}

.bsh-post-frame__meta a:hover {
	text-decoration: underline;
}

/* CTA-H2 vor dem Formular */
.bsh-post-frame__cta-heading {
	margin: 40px 0 20px;
	font-size: 35px;
	font-weight: 600;
	line-height: 35px;
	letter-spacing: -1.6px;
	color: var(--contrast);
}

@media (max-width: 767px) {
	.bsh-post-frame__cta-heading {
		font-size: 28px;
		line-height: 1.15;
	}
}

.bsh-post-frame__form-intro,
.bsh-post-frame__vertraulich {
	margin-bottom: 20px;
	color: var(--contrast);
}

.bsh-post-frame__form-intro p,
.bsh-post-frame__vertraulich p {
	margin: 0 0 20px;
}

.bsh-post-frame__form-intro > :last-child,
.bsh-post-frame__vertraulich > :last-child {
	margin-bottom: 0;
}

.bsh-post-frame__ssl-hinweis {
	margin: 5px 0 20px;
}

.bsh-post-frame__vertraulich {
	margin-top: 20px;
}

/* „zur Startseite"-Link (zentriert, schwarz, Hover underline + scale) */
.bsh-post-frame__home-link {
	margin: 40px 0 0;
	text-align: center;
}

.bsh-post-frame__home-link a {
	display: inline-block;
	color: #000000;
	text-decoration: none;
	transition: transform 0.3s ease, color 0.3s ease, text-decoration 0.3s ease;
}

.bsh-post-frame__home-link a:hover {
	color: #000000;
	text-decoration: underline;
	transform: scale(0.99);
}

/* Kommentare (GP-Markup via comments_template) — dezente Anpassung */
.bsh-post-frame .comments-area {
	margin-top: 40px;
}

.bsh-post-frame .comment-form input[type="text"],
.bsh-post-frame .comment-form input[type="email"],
.bsh-post-frame .comment-form input[type="url"],
.bsh-post-frame .comment-form textarea {
	background-color: #ffffff;
	border: 1px solid #69727d;
	border-radius: 10px;
	color: var(--contrast);
	width: 100%;
	padding: 8px 12px;
}

.bsh-post-frame .comment-form input[type="submit"] {
	background-color: var(--bsh-green);
	background-image: linear-gradient(135deg, #28a745 0%, #218838 100%);
	color: #ffffff;
	font-weight: 700;
	border: none;
	border-radius: 5px;
	padding: 12px 24px;
	cursor: pointer;
	transition: all 0.3s ease;
}

.bsh-post-frame .comment-form input[type="submit"]:hover {
	background-image: linear-gradient(135deg, #218838 0%, #1e7e34 100%);
}

/* =========================================================================
   13  GUTENBERG-CONTENT (.entry-content) — Rahmen für die 1686 Posts
   (Look: GP-Defaults laut spec-design-tokens.md + spec-single-post.md)
   ========================================================================= */

.entry-content {
	color: var(--contrast);
	font-size: 17px;
	line-height: 1.5;
}

.entry-content p {
	margin: 0 0 20px;
}

.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6 {
	margin: 0 0 20px;
	font-weight: 400;
	line-height: 1.2em;
	color: var(--contrast);
	overflow-wrap: break-word;
}

.entry-content h1 {
	font-size: 42px;
}

.entry-content h2 {
	font-size: 35px;
}

.entry-content h3 {
	font-size: 29px;
}

.entry-content h4 {
	font-size: 24px;
}

.entry-content h5 {
	font-size: 20px;
}

.entry-content h6 {
	font-size: 17px;
}

@media (max-width: 767px) {
	.entry-content h1 {
		font-size: 34px;
	}

	.entry-content h2 {
		font-size: 29px;
	}

	.entry-content h3 {
		font-size: 25px;
	}
}

/* Links: GP-Default (Kontrastfarbe, unterstrichen) */
.entry-content a {
	color: var(--contrast);
	text-decoration: underline;
}

.entry-content a:hover,
.entry-content a:focus {
	color: #000000;
}

/* Listen, Zitate, Tabellen, Medien */
.entry-content ul,
.entry-content ol {
	margin: 0 0 20px;
	padding-left: 1.75em;
}

.entry-content li {
	margin-bottom: 6px;
}

.entry-content blockquote {
	margin: 0 0 20px;
	padding: 10px 0 10px 20px;
	border-left: 5px solid rgba(0, 0, 0, 0.05);
	font-style: italic;
	color: var(--contrast-2);
}

.entry-content table {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 20px;
}

.entry-content th,
.entry-content td {
	border: 1px solid var(--base);
	padding: 8px 12px;
	text-align: left;
}

.entry-content img {
	max-width: 100%;
	height: auto;
}

.entry-content iframe,
.entry-content video {
	max-width: 100%;
}

.entry-content .alignleft {
	float: left;
	margin: 0 1.5em 1em 0;
}

.entry-content .alignright {
	float: right;
	margin: 0 0 1em 1.5em;
}

.entry-content .aligncenter {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

/* wp-block-button */
.entry-content .wp-block-button {
	margin: 0 0 20px;
}

.entry-content .wp-block-button__link {
	display: inline-block;
	background-color: #32373c;
	color: #ffffff;
	font-size: 1.125em;
	line-height: 1.4;
	padding: calc(0.667em + 2px) calc(1.333em + 2px);
	border-radius: 9999px;
	border: none;
	text-decoration: none;
	text-align: center;
	transition: background-color 0.3s ease;
	overflow-wrap: break-word;
}

.entry-content .wp-block-button__link:hover,
.entry-content .wp-block-button__link:focus {
	background-color: #000000;
	color: #ffffff;
}

.entry-content .wp-block-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
	margin: 0 0 20px;
}

.entry-content .wp-block-buttons > .wp-block-button {
	margin: 0;
}

/* wp-block-columns */
.entry-content .wp-block-columns {
	display: flex;
	flex-wrap: wrap;
	gap: 2em;
	margin: 0 0 20px;
}

.entry-content .wp-block-column {
	flex-grow: 1;
	flex-basis: 0;
	min-width: 0;
}

@media (max-width: 767px) {
	.entry-content .wp-block-columns {
		flex-direction: column;
		gap: 20px;
	}

	.entry-content .wp-block-column {
		flex-basis: 100% !important;
	}
}

/* wp-block-file */
.entry-content .wp-block-file {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.75em;
	margin: 0 0 20px;
}

.entry-content .wp-block-file a:first-child {
	color: var(--contrast);
	text-decoration: underline;
	overflow-wrap: anywhere;
}

.entry-content .wp-block-file__button {
	display: inline-block;
	background-color: #32373c;
	color: #ffffff !important;
	font-size: 0.8em;
	padding: 0.5em 1em;
	border-radius: 5px;
	text-decoration: none !important;
	transition: background-color 0.3s ease;
}

.entry-content .wp-block-file__button:hover,
.entry-content .wp-block-file__button:focus {
	background-color: #000000;
}

/* wp-block-group (GP-Look: Inner-Container 1200px, Padding 40/30px) */
.entry-content .wp-block-group {
	margin: 0 0 20px;
}

.entry-content .wp-block-group__inner-container {
	max-width: 1200px;
	margin: auto;
	padding: 40px;
}

@media (max-width: 768px) {
	.entry-content .wp-block-group__inner-container {
		padding: 30px;
	}
}

/* wp-block-pullquote */
.entry-content .wp-block-pullquote {
	margin: 0 0 20px;
	padding: 3em 0;
	border-top: 4px solid var(--contrast);
	border-bottom: 4px solid var(--contrast);
	text-align: center;
}

.entry-content .wp-block-pullquote blockquote {
	margin: 0;
	padding: 0;
	border: none;
}

.entry-content .wp-block-pullquote p {
	font-size: 1.5em;
	line-height: 1.4;
	font-style: italic;
	margin: 0 0 0.5em;
}

.entry-content .wp-block-pullquote cite {
	display: block;
	font-size: 0.85em;
	font-style: normal;
	color: var(--contrast-2);
}

.entry-content > :last-child {
	margin-bottom: 0;
}

/* =========================================================================
   14  /AKTUELLES (.bsh-aktuelles — spec-aktuelles.md)
   ========================================================================= */

.bsh-aktuelles {
	color: var(--contrast);
}

.bsh-aktuelles__heading {
	margin: 0 0 20px;
	font-size: 70px;
	font-weight: 600;
	letter-spacing: -2.5px;
	line-height: 1.1;
	color: var(--contrast);
	overflow-wrap: break-word;
}

@media (max-width: 767px) {
	.bsh-aktuelles__heading {
		font-size: 44px;
		letter-spacing: -1.5px;
	}
}

.bsh-aktuelles__subheading {
	margin: 0 0 20px;
	font-size: 41px;
	font-weight: 600;
	line-height: 39px;
	letter-spacing: -2.1px;
	color: var(--contrast);
	overflow-wrap: break-word;
}

@media (max-width: 767px) {
	.bsh-aktuelles__subheading {
		font-size: 30px;
		line-height: 1.15;
		letter-spacing: -1.2px;
	}
}

.bsh-aktuelles__intro p,
.bsh-aktuelles__erlaeuterung p,
.bsh-aktuelles__schlusstext p {
	margin: 0 0 20px;
}

.bsh-aktuelles__intro > :last-child,
.bsh-aktuelles__erlaeuterung > :last-child,
.bsh-aktuelles__schlusstext > :last-child {
	margin-bottom: 0;
}

.bsh-aktuelles__beispiel {
	margin: 0;
	font-style: italic;
	color: var(--contrast-2);
}

/* Suchformular (#suche): Input + Suchen-Button */
.bsh-suche {
	display: flex;
	align-items: stretch;
	gap: 0;
	width: 100%;
}

.bsh-suche__input {
	flex: 1 1 auto;
	min-width: 0;
	background-color: var(--base-2);
	color: var(--contrast);
	border: 1px solid var(--base);
	border-radius: 3px 0 0 3px;
	padding: 10px 15px;
	font-size: 17px;
}

.bsh-suche__input::placeholder {
	color: #999;
	font-style: italic;
}

.bsh-suche__input:focus {
	outline: 2px solid var(--bsh-nav-hover);
	outline-offset: 1px;
}

.bsh-suche__submit {
	flex: 0 0 auto;
	background-color: #55555e;
	color: #ffffff;
	border: none;
	border-radius: 0 3px 3px 0;
	padding: 10px 20px;
	font-size: 17px;
	cursor: pointer;
	transition: background-color 0.3s ease;
}

.bsh-suche__submit:hover,
.bsh-suche__submit:focus {
	background-color: #3f4047;
}

/* Trennlinie (Divider: 1px solid #000, 15px vertikales Padding) */
.bsh-divider {
	width: 100%;
	border: none;
	border-top: 1px solid #000000;
	margin: 15px 0;
}

/* Beitragsliste: 1 Spalte, Row-Gap 35px */
.bsh-aktuelles__list,
.bsh-search-results__list {
	display: grid;
	grid-template-columns: 1fr;
	row-gap: 35px;
}

@media (min-width: 768px) and (max-width: 1024px) {
	/* Suchergebnisse: Tablet 2 Spalten (spec-search-results 4.2) */
	.bsh-search-results__list {
		grid-template-columns: 1fr 1fr;
		column-gap: 30px;
	}
}

/* Beitrags-Teaser (gemeinsame Basis für /aktuelles + Suche) */
.bsh-post__title {
	margin: 0 0 13px;
	font-weight: 600;
	overflow-wrap: break-word;
}

.bsh-post__title a {
	display: inline-block;
	color: #000000;
	text-decoration: none;
	transition: transform 0.3s ease, color 0.3s ease;
}

.bsh-post__meta {
	margin-bottom: 7px;
	font-size: 15px;
	color: #353535;
}

.bsh-post__excerpt {
	margin-bottom: 5px;
	color: var(--e-global-color-secondary);
}

.bsh-post__excerpt p {
	margin: 0;
}

.bsh-post__read-more {
	display: inline-block;
	color: #000000;
	font-size: 18px;
	text-decoration: none;
	transition: transform 0.3s ease, color 0.3s ease, text-decoration 0.3s ease;
}

/* /aktuelles-Variante: Karte mit Rahmen, Titel 41px, Hover scale(1.02/1.10) */
.bsh-aktuelles .bsh-post {
	border: 1px solid #848484;
	border-radius: 10px;
	padding: 11px;
	background-color: transparent;
}

.bsh-aktuelles .bsh-post__title {
	font-size: 41px;
	line-height: 39px;
	letter-spacing: -2.1px;
}

@media (max-width: 767px) {
	.bsh-aktuelles .bsh-post__title {
		font-size: 29px;
		line-height: 1.15;
		letter-spacing: -1.2px;
	}
}

.bsh-aktuelles .bsh-post__title a:hover {
	color: #000000;
	transform: scale(1.02);
}

.bsh-aktuelles .bsh-post__read-more:hover {
	color: #000000;
	text-decoration: underline;
	transform: scale(1.1);
}

/* Suchergebnis-Variante: kein Rahmen, Titel 35px, Hover scale(0.99/0.98) */
.bsh-search-results .bsh-post__title {
	font-size: 35px;
	line-height: 31px;
	letter-spacing: -1.7px;
}

@media (max-width: 767px) {
	.bsh-search-results .bsh-post__title {
		font-size: 27px;
		line-height: 1.15;
		letter-spacing: -1px;
	}
}

.bsh-search-results .bsh-post__title a:hover {
	color: #000000;
	transform: scale(0.99);
}

.bsh-search-results .bsh-post__read-more:hover {
	color: #000000;
	text-decoration: underline;
	transform: scale(0.98);
}

/* Pagination /aktuelles/2/ … */
.bsh-pagination ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px;
	list-style: none;
	margin: 20px 0 0;
	padding: 0;
}

.bsh-pagination .page-numbers {
	display: inline-block;
	min-width: 40px;
	padding: 8px 12px;
	background-color: #ffffff;
	border: 1px solid #848484;
	border-radius: 5px;
	color: var(--contrast);
	text-align: center;
	text-decoration: none;
	transition: background-color 0.3s ease, color 0.3s ease;
}

.bsh-pagination a.page-numbers:hover,
.bsh-pagination a.page-numbers:focus {
	background-color: var(--base);
	color: #000000;
}

.bsh-pagination .page-numbers.current {
	background-color: var(--contrast);
	border-color: var(--contrast);
	color: #ffffff;
}

.bsh-pagination .page-numbers.dots {
	border: none;
	background: transparent;
}

/* =========================================================================
   15  SUCHERGEBNISSE (.bsh-search-results — spec-search-results.md)
   ========================================================================= */

.bsh-search-results {
	color: var(--contrast);
}

/* Original: Container-Overlay Opacity 0.9, KEIN Schatten; Desktop sitzt die
   950px-Spalte mit margin-left 4% und die Karte mit 3% Außenmargin
   (spec-search-results.md §3, Tablet/Mobil Margin 0) */
.bsh-search-results .card {
	background-color: rgba(255, 255, 255, 0.9);
}

@media (min-width: 1025px) {
	.bsh-search-results {
		margin-left: 4%;
	}

	.bsh-search-results .card {
		margin: 3%;
	}
}

.bsh-search-results__heading {
	margin: 0 0 20px;
	font-family: "Roboto", sans-serif;
	font-size: 46px;
	font-weight: 600;
	line-height: 40px;
	letter-spacing: -2.3px;
	color: var(--e-global-color-primary);
	overflow-wrap: break-word;
}

@media (max-width: 767px) {
	.bsh-search-results__heading {
		font-size: 32px;
		line-height: 1.15;
		letter-spacing: -1.3px;
	}
}

.bsh-search-results__subheading {
	margin: 0 0 20px;
	font-family: "Roboto", sans-serif;
	font-size: 35px;
	font-weight: 600;
	line-height: 30px;
	letter-spacing: -1.7px;
	color: var(--e-global-color-primary);
	overflow-wrap: break-word;
}

@media (max-width: 767px) {
	.bsh-search-results__subheading {
		font-size: 27px;
		line-height: 1.15;
		letter-spacing: -1px;
	}
}

.bsh-search-results__hinweis p,
.bsh-search-results__langtext p {
	margin: 0 0 20px;
}

.bsh-search-results__hinweis > :last-child,
.bsh-search-results__langtext > :last-child {
	margin-bottom: 0;
}

/* Textlinks: schwarz, Hover underline + scale(0.99) */
.bsh-search-results__hinweis a,
.bsh-search-results__langtext a {
	display: inline-block;
	color: #000000;
	text-decoration: underline;
	transition: transform 0.3s ease, color 0.3s ease, text-decoration 0.3s ease;
}

.bsh-search-results__hinweis a:hover,
.bsh-search-results__langtext a:hover {
	color: #000000;
	text-decoration: underline;
	transform: scale(0.99);
}

/* =========================================================================
   16  404-SEITE (.bsh-error404 — spec-error-404.md)
   ========================================================================= */

.bsh-error404 {
	color: var(--contrast);
}

/* Original-Karte: Opacity 0.9 MIT Schatten 2px 2px 10px rgba(0,0,0,.5);
   Desktop 3% Außenmargin, Tablet/Mobil 0 (spec-error-404.md §2/§7) */
.bsh-error404 .card {
	background-color: rgba(255, 255, 255, 0.9);
	box-shadow: 2px 2px 10px 0 rgba(0, 0, 0, 0.5);
}

@media (min-width: 1025px) {
	.bsh-error404 .card {
		margin: 3%;
	}
}

.bsh-error404__logo {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	margin: 0 auto;
}

.bsh-error404__heading {
	margin: 0 0 20px;
	font-size: 72px;
	font-weight: 600;
	line-height: 65px;
	letter-spacing: -2.6px;
	color: var(--contrast);
	overflow-wrap: break-word;
}

@media (max-width: 767px) {
	.bsh-error404__heading {
		font-size: 42px;
		line-height: 1.1;
		letter-spacing: -1.5px;
	}
}

.bsh-error404__text p {
	margin: 0 0 20px;
}

.bsh-error404__text > :last-child {
	margin-bottom: 0;
}

.bsh-error404__text a {
	display: inline-block;
	color: #000000;
	text-decoration: underline;
	transition: transform 0.3s ease, color 0.3s ease, text-decoration 0.3s ease;
}

.bsh-error404__text a:hover {
	color: #000000;
	text-decoration: underline;
	transform: scale(0.99);
}

.bsh-error404__bild {
	display: block;
	max-width: 100%;
	height: auto;
	border: 7px solid #222222;
	border-radius: 10px;
}

/* =========================================================================
   17  DANKE-SEITE (.bsh-danke — spec-danke.md)
   ========================================================================= */

.bsh-danke {
	color: var(--contrast);
}

.bsh-danke__heading {
	margin: 0 0 20px;
	font-size: 35px;
	font-weight: 400;
	line-height: 1;
	color: var(--contrast);
}

.bsh-danke__text {
	margin: 0 0 20px;
	font-size: 17px;
	line-height: 1.5;
}
