/* ==========================================================================
   Lohnsteuerhilfeverein Donauland – Theme-Styles
   Farben, Schriften und Abstände kommen aus theme.json (--wp--preset--*).
   Farben aus dem Logo; angedeutete Hügel im Suchband.
   ========================================================================== */

:root {
	--c-navy: var(--wp--preset--color--navy, #1c2d57);
	--c-blue: var(--wp--preset--color--blue, #4a62a5);
	--c-river: var(--wp--preset--color--river, #3f97d6);
	--c-green: var(--wp--preset--color--green, #3e7b56);
	--c-meadow: var(--wp--preset--color--meadow, #dcebdf);
	--c-sky: var(--wp--preset--color--sky, #e8f3f9);
	--c-paper: var(--wp--preset--color--paper, #f7f5ef);
	--c-ink: var(--wp--preset--color--ink, #1f2633);
	--c-muted: var(--wp--preset--color--muted, #5b6474);
	--c-line: #dfe3ea;
	--f-serif: var(--wp--preset--font-family--serif, Georgia, serif);
	--f-sans: var(--wp--preset--font-family--sans, system-ui, sans-serif);
	--wide: 76rem;
	--content: 58rem;
	--gutter: clamp(1rem, 4vw, 2.5rem);
	--radius: 10px;
	--radius-photo: 16px;
	--shadow: 0 1px 2px rgba(28, 45, 87, .06), 0 8px 24px rgba(28, 45, 87, .08);
	--header-h: 6.5rem;
}

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-padding-top: calc(var(--header-h) + 1rem); -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	background: #fff;
	color: var(--c-ink);
	font-family: var(--f-sans);
	font-size: 1.125rem;
	line-height: 1.65;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}

img, svg { max-width: 100%; height: auto; }
img { display: block; }

a { color: var(--c-blue); text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { color: var(--c-navy); text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--c-river); outline-offset: 3px; border-radius: 2px; }

h1, h2, h3, h4 {
	font-family: var(--f-serif);
	color: var(--c-navy);
	font-weight: 600;
	line-height: 1.2;
	margin: 0 0 .6em;
	text-wrap: balance;
}

p { margin: 0 0 1em; text-wrap: pretty; }

/* Silbentrennung in Überschriften nur auf schmalen Bildschirmen, wo lange Wörter sonst überlaufen */
@media (max-width: 600px) {
	h1, h2, h3, h4 { hyphens: auto; -webkit-hyphens: auto; hyphenate-limit-chars: 10 4 4; }
}

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0);
	white-space: nowrap; border: 0;
}

.skip-link:focus {
	position: fixed !important;
	top: .75rem; left: .75rem;
	width: auto; height: auto; clip: auto;
	z-index: 1000;
	padding: .75rem 1.25rem;
	background: var(--c-navy); color: #fff;
	border-radius: var(--radius);
}

.icon { width: 1.15em; height: 1.15em; flex: none; vertical-align: -.2em; }

.eyebrow {
	font-family: var(--f-sans);
	font-size: .875rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--c-green);
	margin-bottom: .75rem;
}
.eyebrow a { color: inherit; }
.ldlev-hero .eyebrow,
.ldlev-intro .eyebrow { font-size: clamp(1rem, 1.45vw, 1.25rem); line-height: 1.4; }

.small-print { font-size: .9375rem; color: var(--c-muted); }

/* --------------------------------------------------------------- Buttons */

.button,
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	padding: .8rem 1.6rem;
	border: 2px solid var(--c-green);
	border-radius: 999px;
	background: var(--c-green);
	color: #fff;
	font-family: var(--f-sans);
	font-size: 1.0625rem;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .15s, border-color .15s, color .15s;
}
.button:hover,
.wp-block-button__link:hover {
	background: var(--c-navy);
	border-color: var(--c-navy);
	color: #fff;
	text-decoration: none;
}

.button--small { padding: .55rem 1.15rem; font-size: 1rem; }

.button--outline,
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	border-color: currentColor;
	color: var(--c-navy);
}
.button--outline:hover,
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--c-navy);
	border-color: var(--c-navy);
	color: #fff;
}

.button--light { background: #fff; border-color: #fff; color: var(--c-green); }
.button--light:hover { background: var(--c-navy); border-color: var(--c-navy); color: #fff; }
.button--ghost { background: transparent; border-color: rgba(255, 255, 255, .7); color: #fff; }
.button--ghost:hover { background: #fff; border-color: #fff; color: var(--c-green); }

.wp-block-buttons { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.75rem; }

.text-link a,
a.text-link {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	font-weight: 600;
	color: var(--c-blue);
	text-decoration: none;
	border-bottom: 2px solid currentColor;
	padding-bottom: .1rem;
}
.text-link a::after { content: "→"; font-weight: 400; }
.text-link a:hover,
a.text-link:hover { color: var(--c-navy); }
a.text-link .icon { width: 1em; height: 1em; }
.text-link--back { flex-direction: row; }

/* --------------------------------------------------------------- Header */

.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(255, 255, 255, .97);
	border-bottom: 1px solid var(--c-line);
	backdrop-filter: saturate(1.4) blur(6px);
}
.admin-bar .site-header { top: 32px; }

.site-header__inner {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	max-width: calc(var(--wide) + 2 * var(--gutter));
	min-height: var(--header-h);
	margin: 0 auto;
	padding: .5rem var(--gutter);
}

.site-logo { display: block; flex: none; text-decoration: none; }
.site-logo__img { width: auto; height: 5.5rem; }
.site-logo__text { font-family: var(--f-serif); font-weight: 600; color: var(--c-navy); }

.site-nav {
	display: flex;
	align-items: center;
	gap: 2.25rem;
	margin-left: auto;
}

.menu { list-style: none; margin: 0; padding: 0; }

.menu--primary { display: flex; flex-wrap: nowrap; gap: 2rem; }
/* sieben Menüpunkte plus Button: auf kleineren Laptops enger setzen */
@media (max-width: 1320px) { .menu--primary { gap: 1.25rem; } }
.menu--primary > li { position: relative; }
.menu--primary a {
	display: flex;
	align-items: center;
	gap: .3rem;
	padding: .4rem 0;
	color: var(--c-navy);
	font-weight: 600;
	font-size: 1.0625rem;
	white-space: nowrap;
	text-decoration: none;
	border-bottom: 2px solid transparent;
}
.menu--primary a:hover { border-bottom-color: var(--c-river); }
.menu--primary .current-menu-item > a,
.menu--primary .current-menu-ancestor > a { border-bottom-color: var(--c-green); }

/* Pfeil am Menüpunkt mit Unterpunkten */
.menu--primary > .menu-item-has-children > a::after {
	content: "";
	width: .45em;
	height: .45em;
	margin: -.2em 0 0 .15em;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
	opacity: .7;
}

/* Untermenü: öffnet bei Maus und Tastatur */
.menu--primary .sub-menu {
	position: absolute;
	top: 100%;
	left: -1.25rem;
	min-width: 15rem;
	margin: 0;
	padding: .6rem 0;
	list-style: none;
	background: #fff;
	border: 1px solid var(--c-line);
	border-top: 3px solid var(--c-green);
	border-radius: 0 0 var(--radius) var(--radius);
	box-shadow: var(--shadow);
	opacity: 0;
	visibility: hidden;
	transform: translateY(.4rem);
	transition: opacity .15s, transform .15s, visibility .15s;
}
.menu--primary .sub-menu a { padding: .55rem 1.25rem; border: 0; font-weight: 600; }
.menu--primary .sub-menu a:hover,
.menu--primary .sub-menu .current-menu-item > a { background: var(--c-sky); }
.menu--primary .menu-item-has-children:hover > .sub-menu,
.menu--primary .menu-item-has-children:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }

.site-header__contact { display: flex; align-items: center; gap: 1rem; }
.site-header__contact .button { white-space: nowrap; }

/* Telefon nur im mobilen Menü, auf großen Bildschirmen steht es im Footer und auf der Kontaktseite */
.header-phone { display: none; }
.header-phone .icon { color: var(--c-green); }
.header-phone__label { display: block; font-size: .8125rem; font-weight: 600; color: var(--c-muted); line-height: 1.2; }
.header-phone > span { display: flex; flex-direction: column; line-height: 1.25; }

.nav-toggle {
	display: none;
	align-items: center;
	gap: .4rem;
	margin-left: auto;
	padding: .55rem .9rem;
	border: 1px solid var(--c-line);
	border-radius: 999px;
	background: #fff;
	color: var(--c-navy);
	font: 600 1rem var(--f-sans);
	cursor: pointer;
}
.nav-toggle__close { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__open { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__close { display: inline; }
.nav-toggle .icon { display: block; }

@media (max-width: 1180px) {
	:root { --header-h: 5.25rem; }
	.site-logo__img { height: 4.25rem; }
	.nav-toggle { display: inline-flex; }
	.site-nav {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		flex-direction: column;
		align-items: stretch;
		gap: 1.25rem;
		padding: 1rem var(--gutter) 1.75rem;
		background: #fff;
		border-bottom: 1px solid var(--c-line);
		box-shadow: var(--shadow);
		max-height: calc(100vh - var(--header-h));
		overflow-y: auto;
	}
	.site-nav.is-open { display: flex; }
	.menu--primary { flex-direction: column; gap: 0; }
	.menu--primary a { padding: .8rem 0; border-bottom: 1px solid var(--c-line); font-size: 1.125rem; }
	.menu--primary .current-menu-item > a,
	.menu--primary .current-menu-ancestor > a { color: var(--c-green); border-bottom-color: var(--c-line); }
	.menu--primary > .menu-item-has-children > a::after { display: none; }
	.menu--primary .sub-menu {
		position: static;
		min-width: 0;
		padding: 0 0 0 1.25rem;
		border: 0;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		transform: none;
	}
	.menu--primary .sub-menu a { padding: .7rem 0; border-bottom: 1px solid var(--c-line); font-weight: 400; }
	.menu--primary .sub-menu a:hover,
	.menu--primary .sub-menu .current-menu-item > a { background: none; }
	.site-header__contact { flex-direction: column; align-items: stretch; }
	.site-header__contact .button { width: 100%; }
	.header-phone { display: flex; align-items: center; justify-content: center; gap: .5rem; padding: .5rem 0; color: var(--c-navy); font-weight: 700; text-decoration: none; }
}

@media (max-width: 782px) {
	.admin-bar .site-header { top: 46px; }
}
@media (max-width: 600px) {
	.admin-bar .site-header { top: 0; }
}

/* --------------------------------------------------------------- Seitenkopf */

.page-hero {
	position: relative;
	background: linear-gradient(180deg, var(--c-sky) 0%, #f4f9fc 100%);
	padding: clamp(1.5rem, 3.5vw, 2.25rem) var(--gutter) clamp(2.25rem, 5vw, 3.5rem);
	overflow: hidden;
}

/* Brotkrümelnavigation */
.breadcrumbs { margin-bottom: clamp(1.5rem, 3.5vw, 2.5rem); font-size: .9375rem; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .25rem .5rem; margin: 0; padding: 0; list-style: none; }
.breadcrumbs li { display: flex; align-items: center; gap: .5rem; color: var(--c-muted); }
.breadcrumbs li + li::before { content: "›"; color: #9aa6bb; }
.breadcrumbs a { color: var(--c-blue); text-decoration: none; }
.breadcrumbs a:hover { text-decoration: underline; }
.breadcrumbs [aria-current] { color: var(--c-navy); font-weight: 600; }
.page-hero__inner { max-width: var(--wide); margin: 0 auto; }
.page-hero__title {
	max-width: 22em;
	margin: 0;
	font-size: clamp(2rem, 4.2vw, 3rem);
	line-height: 1.12;
}
.page-hero__lead { max-width: 44rem; margin: 1.1rem 0 0; font-size: clamp(1.0625rem, 1.6vw, 1.25rem); line-height: 1.55; color: #3b4456; }
.page-hero--compact .page-hero__title { font-size: clamp(1.75rem, 3.4vw, 2.5rem); max-width: 26em; }


/* --------------------------------------------------------------- Inhalte */

.page-body {
	max-width: calc(var(--wide) + 2 * var(--gutter));
	margin: 0 auto;
	padding: clamp(2.5rem, 5vw, 4rem) var(--gutter) clamp(3rem, 6vw, 5rem);
}
/* Ohne Seitenspalte nutzt der Inhalt die volle Breite des Seitenkopfs */
.page-body > .entry-content { max-width: none; margin-left: 0; margin-right: 0; }
/* Inhalt beginnt auf derselben Kante wie die H1 im Seitenkopf (WordPress zentriert und begrenzt sonst jeden Block) */
.page-body .entry-content.is-layout-constrained > :not(.alignfull):not(.alignwide) { max-width: none; margin-left: 0 !important; margin-right: 0 !important; }

.page-body--aside {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(16rem, 22rem);
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: start;
}
.page-body--aside > .entry-content,
.page-body--aside > .news-main { max-width: none; margin: 0; }
@media (max-width: 900px) {
	.page-body--aside { grid-template-columns: 1fr; }
}

.entry-content > * + * { margin-top: 1.25rem; }
.entry-content > :first-child { margin-top: 0; }
.entry-content > h2 { margin-top: 2.75rem; font-size: clamp(1.5rem, 2.6vw, 2rem); }
.entry-content > h3 { margin-top: 2rem; font-size: clamp(1.25rem, 2vw, 1.375rem); }
.entry-content > h2 + *, .entry-content > h3 + * { margin-top: .75rem; }

.entry-content ul:not(.check-list):not(.news-teaser):not(.fachinfo-list),
.entry-content ol:not(.numbered):not(.steps) { padding-left: 1.4rem; }
.entry-content li { margin-bottom: .45rem; }
.entry-content li::marker { color: var(--c-green); }
.entry-content li > ul { margin-top: .45rem; }

.wp-block-table { margin: 1.75rem 0; overflow-x: auto; }
.wp-block-table table { width: 100%; border-collapse: collapse; font-size: 1rem; background: #fff; }
.wp-block-table th,
.wp-block-table td { padding: .7rem .9rem; border: 0; border-bottom: 1px solid var(--c-line); text-align: left; vertical-align: top; }
.wp-block-table thead th {
	background: var(--c-navy);
	color: #fff;
	font-weight: 600;
	border-bottom: 0;
}
.wp-block-table thead th:first-child { border-top-left-radius: var(--radius); }
.wp-block-table thead th:last-child { border-top-right-radius: var(--radius); }
.wp-block-table tbody tr:nth-child(even) td { background: var(--c-paper); }
.wp-block-table td p { margin: 0 0 .5em; }
.wp-block-table td p:last-child { margin: 0; }
.wp-block-table td:first-child strong { color: var(--c-navy); }

.page-mitgliedsbeitraege .wp-block-table td:nth-child(n+3),
.page-mitgliedsbeitraege .wp-block-table th:nth-child(n+3) { text-align: right; white-space: nowrap; }
.page-mitgliedsbeitraege .wp-block-table td:last-child { font-weight: 700; color: var(--c-navy); }

.wp-block-separator { border: 0; border-top: 1px solid var(--c-line); margin: 2.5rem 0; }

.ldlev-sitemap ul { columns: 2 16rem; column-gap: 3rem; }
.ldlev-sitemap li { break-inside: avoid; }

.link-list { list-style: none; padding: 0; }
.link-list li { border-bottom: 1px solid var(--c-line); }
.link-list a { display: block; padding: .9rem 0; font-weight: 600; text-decoration: none; }

/* Hinweis-Kasten der Kontaktseite */
.office-card,
.aside-box {
	padding: 1.75rem;
	background: var(--c-paper);
	border-top: 4px solid var(--c-green);
	border-radius: 0 0 var(--radius) var(--radius);
}
.office-card__title,
.aside-box__title { font-size: 1.375rem; margin-bottom: .75rem; }
.office-card address { font-style: normal; margin-bottom: 1rem; }
.office-card__note { font-size: 1rem; color: var(--c-muted); margin: 1.25rem 0 .75rem; }
.aside-box + .aside-box { margin-top: 1.5rem; }
.aside-box--sky { background: var(--c-sky); border-top-color: var(--c-river); }
.aside-box p { font-size: 1rem; }

.contact-list { list-style: none; margin: 0; padding: 0; }
.contact-list li { display: flex; align-items: center; gap: .6rem; padding: .3rem 0; }
.contact-list .icon { color: var(--c-green); }
/* Kontaktangaben einheitlich: Links nicht unterstrichen, erst beim Überfahren */
.contact-list a,
.bs-facts dd a { color: inherit; text-decoration: none; }
.contact-list a:hover,
.contact-list a:focus-visible,
.bs-facts dd a:hover,
.bs-facts dd a:focus-visible { color: var(--c-blue); text-decoration: underline; }
/* E-Mail-Adresse auf der Beratungsstellen-Seite sichtbar als Link */
.bs-facts dd a.bs-facts__mail { color: var(--c-blue); text-decoration: underline; text-underline-offset: .15em; }

/* --------------------------------------------------------------- Bänder */

.band { padding-top: clamp(3rem, 7vw, 5.5rem); padding-bottom: clamp(3rem, 7vw, 5.5rem); }
.band--navy { background: var(--c-navy); color: #fff; }
.band--navy h2, .band--navy h3 { color: #fff; }
.band--sky { background: var(--c-sky); }
.band--paper { background: var(--c-paper); }
.band--green { background: var(--c-green); color: #fff; }
.band--green h2, .band--green h3 { color: #fff; }
.band--green .eyebrow { color: #d6ead9; }
.band--green a:not(.wp-block-button__link):not(.button) { color: #fff; }

.band--green .wp-block-button__link { background: #fff; border-color: #fff; color: var(--c-green); }
.band--green .wp-block-button__link:hover { background: var(--c-navy); border-color: var(--c-navy); color: #fff; }
.band--green .is-style-outline > .wp-block-button__link { background: transparent; border-color: rgba(255, 255, 255, .75); color: #fff; }
.band--green .is-style-outline > .wp-block-button__link:hover { background: #fff; border-color: #fff; color: var(--c-green); }

.cta-band__inner {
	max-width: var(--wide);
	margin: 0 auto;
	padding: 0 var(--gutter);
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	gap: .5rem 3rem;
	align-items: center;
}
.cta-band__title { grid-column: 1; margin: 0; font-size: clamp(1.6rem, 3vw, 2.25rem); }
.cta-band__text { grid-column: 1; margin: 0; color: #e7f2ea; }
.cta-band__links { grid-column: 2; grid-row: 1 / span 2; display: flex; flex-wrap: wrap; gap: .75rem; justify-content: flex-end; }
@media (max-width: 800px) {
	.cta-band__inner { grid-template-columns: 1fr; }
	.cta-band__links { grid-column: 1; grid-row: auto; justify-content: flex-start; margin-top: 1rem; }
}

/* --------------------------------------------------------------- Startseite */

.front-content { padding-bottom: 0; }
.front-content > * + * { margin-top: 0; }
.front-content > .alignwide { max-width: var(--wide); }

.ldlev-hero {
	position: relative;
	background:
		linear-gradient(180deg, var(--c-sky), #f5fafd 70%, #fff);
	padding-top: clamp(2.5rem, 6vw, 5rem);
	padding-bottom: clamp(2.5rem, 5vw, 4rem);
	overflow: hidden;
}
.ldlev-hero__columns { gap: clamp(2rem, 5vw, 4.5rem); }
.ldlev-hero__title { font-size: clamp(1.9rem, 4vw, 3rem); line-height: 1.08; letter-spacing: -.01em; margin-bottom: 1.25rem; }
.ldlev-hero__lead { font-size: clamp(1.0625rem, 1.35vw, 1.1875rem); line-height: 1.6; color: #3b4456; max-width: 34rem; }
.ldlev-hero__photo { position: relative; margin: 0; }

/* Neuester Newsletter im Hero: Karte am Foto (Desktop), Zeile oben (Handy) */
.ldlev-hero__photo .hero-news {
	position: absolute;
	left: -2.5rem;
	bottom: -3rem;
	display: grid;
	gap: .35rem;
	width: min(25rem, 88%);
	padding: 1.1rem 1.35rem 1.15rem;
	background: #fff;
	border-left: 4px solid var(--c-green);
	border-radius: var(--radius);
	box-shadow: 0 18px 40px -18px rgba(20, 35, 70, .45);
	color: var(--c-ink);
	text-decoration: none;
}
.hero-news__label { font-size: .8125rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--c-green); }
.hero-news__title { font-family: var(--f-serif); font-size: 1.2rem; font-weight: 600; line-height: 1.25; color: var(--c-navy); }
.hero-news__excerpt { font-size: .9375rem; line-height: 1.5; color: #3b4456; }
@media (max-width: 1100px) { .hero-news__excerpt { display: none; } }
.hero-news__more { display: inline-flex; align-items: center; gap: .35rem; font-weight: 600; color: var(--c-blue); }
.hero-news__more .icon { width: 1em; }
.hero-news:hover .hero-news__title { text-decoration: underline; }
.hero-news-strip { display: none; }

@media (max-width: 781px) {
	.ldlev-hero__photo .hero-news { display: none; }
	.hero-news-strip {
		display: block;
		margin: 0 0 1.5rem;
		padding: .7rem .9rem;
		background: #fff;
		border-left: 4px solid var(--c-green);
		border-radius: var(--radius);
		font-size: .9375rem;
		line-height: 1.4;
		color: var(--c-navy);
		text-decoration: none;
	}
	.hero-news-strip strong { color: var(--c-green); }
	.hero-news-strip .icon { width: 1em; vertical-align: -.15em; color: var(--c-blue); }
}
.ldlev-hero__photo img {
	width: 100%;
	aspect-ratio: 4 / 3.6;
	object-fit: cover;
	object-position: 50% 35%;
	border-radius: var(--radius-photo);
	box-shadow: var(--shadow);
}

.check-list { list-style: none; padding: 0; margin: 1.5rem 0 0; display: grid; gap: .55rem; }
.check-list li { position: relative; padding-left: 2.1rem; font-weight: 600; color: var(--c-navy); margin: 0; }
.check-list li::before {
	content: "";
	position: absolute;
	left: 0; top: .2em;
	width: 1.35rem; height: 1.35rem;
	border-radius: 50%;
	background: var(--c-green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4 8-9'/%3E%3C/svg%3E") center / 70% no-repeat;
}

.ldlev-notice { position: relative; z-index: 2; }
/* Startseite: rückt in den unteren Rand des Hero, damit der Hinweis zum Einstieg gehört */
.front-content .ldlev-notice { margin-top: calc(-1 * clamp(1.25rem, 3vw, 2.5rem)) !important; }
/* Unterseiten: Hinweis oben, mit Abstand zum folgenden Text */
.page-body .ldlev-notice { margin-bottom: 2.25rem; }
.ldlev-notice p {
	margin: 0;
	padding: .9rem 1.25rem .9rem 1.4rem;
	background: #fff;
	border-left: 5px solid #c0392b;
	border-radius: 0 var(--radius) var(--radius) 0;
	box-shadow: var(--shadow);
	font-size: 1.0625rem;
}
.ldlev-notice strong { color: #a5281c; }
.ldlev-notice p + p { margin-top: .75rem; }

/* Unterseiten: ein gemeinsamer, farbig hinterlegter Kasten mit Kennzeichnung „Aktuell“ */
.page-body .ldlev-notice {
	padding: 1.25rem 1.5rem 1.35rem 1.6rem;
	background: #fbefeb;
	border-left: 6px solid #c0392b;
	border-radius: 0 var(--radius) var(--radius) 0;
}
.page-body .ldlev-notice::before {
	content: "Aktuell";
	display: block;
	margin-bottom: .6rem;
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #a5281c;
}
.page-body .ldlev-notice p {
	position: relative;
	padding: 0 0 0 1.35rem;
	background: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.5;
	color: var(--c-navy);
}
.page-body .ldlev-notice p::before {
	content: "";
	position: absolute;
	left: 0;
	top: .55em;
	width: .5rem;
	height: .5rem;
	border-radius: 50%;
	background: #c0392b;
}
.page-body .ldlev-notice p + p { margin-top: .6rem; }

.ldlev-search-band { margin-top: clamp(2.5rem, 5vw, 4rem) !important; text-align: center; position: relative; z-index: 3; }
/* gleicher Abstand wie oben im Hero (Innenabstand oben + Abstand bis zur Dachzeile) */
.ldlev-notice + .ldlev-search-band { margin-top: calc(clamp(2.5rem, 6vw, 5rem) + 1.25rem) !important; }
/* ohne Hinweisbalken: Innenabstand unten im Hero zählt mit */
.ldlev-hero + .ldlev-search-band { margin-top: calc(clamp(2.5rem, 6vw, 5rem) + 1.25rem - clamp(2.5rem, 5vw, 4rem)) !important; }
.ldlev-search-band::before {
	/* Hügel aus dem Logo, angedeutet */
	content: "";
	position: absolute;
	inset: auto 0 0 0;
	height: 55%;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 200' preserveAspectRatio='none'%3E%3Cpath d='M0 200 V150 C 120 120 200 90 300 100 C 420 112 470 150 560 140 C 700 124 820 40 980 30 C 1120 22 1180 90 1260 110 C 1340 130 1400 120 1440 112 V200 Z' fill='%23ffffff' fill-opacity='.05'/%3E%3C/svg%3E") no-repeat bottom / 100% 100%;
	pointer-events: none;
}
.ldlev-search-band > * { position: relative; }
.ldlev-search-band h2 { font-size: clamp(1.75rem, 3.4vw, 2.5rem); margin-bottom: .5rem; }
.ldlev-search-band p { color: #d5def0; margin-left: auto; margin-right: auto; }

.bs-search { margin-top: 1.75rem; text-align: left; }
.bs-search__label { display: block; font-weight: 600; margin-bottom: .5rem; color: #fff; }
.bs-search__row { display: flex; gap: .5rem; padding: .4rem; background: #fff; border-radius: 999px; }
.bs-search__input {
	flex: 1;
	min-width: 0;
	padding: .75rem 1.1rem;
	border: 0;
	border-radius: 999px;
	font: inherit;
	color: var(--c-ink);
	background: transparent;
}
.bs-search__input:focus { outline: none; }
.bs-search__row:focus-within { box-shadow: 0 0 0 3px var(--c-river); }
.bs-search__button {
	padding: .75rem 1.5rem;
	border: 0;
	border-radius: 999px;
	background: var(--c-green);
	color: #fff;
	font: 600 1.0625rem var(--f-sans);
	cursor: pointer;
	white-space: nowrap;
}
.bs-search__button:hover { background: var(--c-blue); }
.bs-search__row { position: relative; }
/* auch im dunklen Suchband (dort gilt sonst die helle Absatzfarbe) */
.bs-search__error,
.ldlev-search-band .bs-search__error {
	margin: .75rem 0 0;
	padding: .6rem .9rem;
	border-radius: 8px;
	background: #fdecea;
	color: #8f1d12;
	font-size: .9375rem;
	font-weight: 600;
}

/* Vorschlagsliste der Ortssuche */
.place-list {
	position: absolute;
	top: calc(100% + .5rem);
	left: 0;
	right: 0;
	z-index: 20;
	max-height: 22rem;
	margin: 0;
	padding: .35rem 0;
	overflow-y: auto;
	list-style: none;
	background: #fff;
	border-radius: var(--radius);
	box-shadow: 0 12px 32px rgba(28, 45, 87, .22);
	text-align: left;
}
.place-list li {
	padding: .75rem 1.1rem;
	border-bottom: 1px solid var(--c-line);
	color: var(--c-ink);
	font-size: 1.0625rem;
	line-height: 1.3;
	cursor: pointer;
}
.place-list li:last-child { border-bottom: 0; }
.place-list li b { font-weight: 700; color: var(--c-navy); }
.place-list li[aria-selected="true"],
.place-list li:hover { background: var(--c-sky); }
.place-list__land { color: var(--c-muted); }

/* Helle Variante in der Beratungsstellen-Übersicht */
.bs-search--light { max-width: 46rem; margin-top: 0; }
.bs-search--light .bs-search__label { color: var(--c-navy); font-weight: 700; }
.bs-search--light .bs-search__row { border: 2px solid var(--c-line); }
.bs-search--light .bs-search__row:focus-within { border-color: var(--c-river); box-shadow: none; }

.bs-item__distance {
	display: inline-block;
	margin-top: .3rem;
	padding: .1rem .55rem;
	border-radius: 999px;
	background: var(--c-meadow);
	color: var(--c-green);
	font-size: .8125rem;
	font-weight: 700;
}

.ldlev-search-band .bs-search__meta { margin-top: .9rem; font-size: .9375rem; color: #b9c6e2; text-align: center; }
@media (max-width: 560px) {
	.bs-search__row { flex-direction: column; border-radius: var(--radius); }
	.bs-search__input, .bs-search__button { border-radius: 8px; }
}

.ldlev-intro { padding-top: clamp(3.5rem, 8vw, 6.5rem); padding-bottom: clamp(3.5rem, 8vw, 6rem); }
.ldlev-intro__columns { gap: clamp(2rem, 6vw, 6rem); }
.ldlev-intro h2 { font-size: clamp(1.75rem, 3.2vw, 2.5rem); }
.list-title { font-family: var(--f-sans); font-size: 1rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--c-muted); margin-bottom: 1rem; }

/* Nummerierte, redaktionelle Liste */
.numbered { list-style: none; padding: 0; margin: 0; counter-reset: num; }
.numbered li {
	counter-increment: num;
	position: relative;
	display: block;
	max-width: none;
	margin: 0;
	padding: 1.1rem 0 1.1rem 4.25rem;
	border-top: 1px solid var(--c-line);
	color: #3b4456;
}
.numbered li:last-child { border-bottom: 1px solid var(--c-line); }
.numbered li::before {
	content: counter(num, decimal-leading-zero);
	position: absolute;
	left: 0;
	top: .85rem;
	font-family: var(--f-serif);
	font-size: 1.9rem;
	font-weight: 500;
	line-height: 1;
	color: var(--c-river);
}
.numbered li strong { display: block; font-family: var(--f-serif); font-size: 1.2rem; font-weight: 600; color: var(--c-navy); }

/* Schritte */
.ldlev-steps__columns { gap: clamp(2rem, 6vw, 5.5rem); }
.ldlev-steps h2 { font-size: clamp(1.75rem, 3.2vw, 2.5rem); }
.ldlev-steps__photo { margin-top: 2rem; }
.ldlev-steps__photo img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; border-radius: var(--radius-photo); }

.steps { list-style: none; padding: 0; margin: 0; counter-reset: step; }
.steps li {
	counter-increment: step;
	position: relative;
	max-width: none;
	margin: 0;
	padding: 0 0 2.5rem 5rem;
	font-size: 1.0625rem;
	color: #3b4456;
}
.steps li:last-child { padding-bottom: 0; }
.steps li::before {
	content: counter(step);
	position: absolute;
	left: 0; top: 0;
	display: grid;
	place-items: center;
	width: 3.25rem; height: 3.25rem;
	border-radius: 50%;
	background: #fff;
	border: 2px solid var(--c-green);
	color: var(--c-green);
	font-family: var(--f-serif);
	font-size: 1.5rem;
	font-weight: 600;
}
.steps li:not(:last-child)::after {
	content: "";
	position: absolute;
	left: calc(1.625rem - 1px);
	top: 3.6rem;
	bottom: .4rem;
	border-left: 2px dashed #9fc4b0;
}
.steps li strong { display: block; font-family: var(--f-serif); font-size: clamp(1.3rem, 2vw, 1.6rem); color: var(--c-navy); margin-bottom: .35rem; padding-top: .35rem; }
.steps li a { display: inline-block; margin-top: .5rem; font-weight: 600; }
.steps li a::after { content: " →"; }

/* Zielgruppen, versetzte Spalten */
.ldlev-audience { padding-top: clamp(3.5rem, 8vw, 6.5rem); padding-bottom: clamp(3.5rem, 8vw, 6rem); }
.ldlev-audience__title { font-size: clamp(1.75rem, 3.2vw, 2.5rem); max-width: 18ch; }
.ldlev-audience__columns { gap: clamp(2rem, 5vw, 5rem); margin-top: 2rem; }
.ldlev-audience figure { margin: 0 0 1.5rem; }
.ldlev-audience figure img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--radius-photo); }
.ldlev-audience__offset figure img { aspect-ratio: 4 / 3.4; }
@media (min-width: 782px) {
	.ldlev-audience__offset { padding-top: 7rem; }
}
.ldlev-audience h3 { font-size: 1.6rem; }
.ldlev-audience > .small-print { margin-top: 2.5rem; padding-top: 1.25rem; border-top: 1px solid var(--c-line); max-width: none; }

/* Newsletter + Fachinfos */
.ldlev-news__columns { gap: clamp(2rem, 5vw, 4.5rem); }
.ldlev-news h2 { font-size: clamp(1.6rem, 2.8vw, 2.1rem); }
.news-teaser { list-style: none; margin: 0 0 1.75rem; padding: 0; }
.news-teaser__item { padding: 1.25rem 0; border-top: 1px solid #e3ddcd; margin: 0; max-width: none; }
.news-teaser__item:last-child { border-bottom: 1px solid #e3ddcd; }
.news-teaser time { font-size: .875rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--c-green); }
.news-teaser .news-teaser__title { font-size: 1.3rem; margin: .25rem 0 .4rem; }
.news-teaser__title a { color: var(--c-navy); text-decoration: none; }
.news-teaser__title a:hover { text-decoration: underline; }
.news-teaser p { margin: 0; color: var(--c-muted); font-size: 1rem; }

.fachinfo-box {
	padding: clamp(1.5rem, 3vw, 2.25rem);
	background: #fff;
	border-radius: var(--radius);
	border-top: 4px solid var(--c-river);
	align-self: flex-start;
}
.fachinfo-box > p { font-size: 1rem; color: var(--c-muted); }
.fachinfo-list { list-style: none; padding: 0; margin: 1rem 0 0; }
.fachinfo { padding: .9rem 0; border-top: 1px solid var(--c-line); margin: 0; max-width: none; }
.fachinfo__date { font-size: .875rem; color: var(--c-muted); }
.fachinfo__title { margin: .1rem 0 .25rem; font-weight: 700; color: var(--c-navy); }
.fachinfo__text { margin: 0; font-size: .9375rem; color: var(--c-muted); line-height: 1.5; }
.fachinfo-more { margin: 1rem 0 0; font-size: 1rem; font-weight: 600; }

/* Bewerbung */
.ldlev-jobs__columns { gap: clamp(2rem, 6vw, 5rem); }
.ldlev-jobs h2 { font-size: clamp(1.6rem, 3vw, 2.3rem); }
.ldlev-jobs p { color: #e7f2ea; }
.ldlev-jobs__photo { margin: 0; }
.ldlev-jobs__photo img { width: 100%; aspect-ratio: 4 / 3.4; object-fit: cover; border-radius: var(--radius-photo); }

@media (max-width: 781px) {
	.ldlev-hero__photo img { aspect-ratio: 4 / 3; border-radius: var(--radius); }
	.ldlev-jobs__photo img { aspect-ratio: 4 / 3; }
}

/* --------------------------------------------------------------- Beratungsstellen */

.bs-directory {
	max-width: calc(var(--wide) + 2 * var(--gutter));
	margin: 0 auto;
	padding: clamp(2rem, 4vw, 3rem) var(--gutter) clamp(3rem, 6vw, 5rem);
}

.bs-directory__status { margin: 1.25rem 0 1.5rem; color: var(--c-muted); font-size: 1rem; }
.bs-directory__status strong { color: var(--c-navy); }
.bs-directory__status a { margin-left: .5rem; white-space: nowrap; }

.bs-list { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--c-navy); }
.bs-item {
	display: grid;
	grid-template-columns: 4.5rem minmax(12rem, 1.2fr) 5.5rem minmax(14rem, 1.5fr) minmax(9rem, 1fr) auto;
	align-items: center;
	gap: 1rem 1.75rem;
	padding: 1.25rem 0;
	border-bottom: 1px solid var(--c-line);
}
.bs-item[hidden] { display: none; }
.bs-item p { margin: 0; }
.bs-item__photo img,
.bs-item .initials { width: 4.5rem; height: 4.5rem; border-radius: 50%; object-fit: cover; object-position: center top; }
/* Ort und Name gleich gewichtet */
.bs-item__ort { margin: 0 0 .15rem; font-family: var(--f-sans); font-size: 1.125rem; font-weight: 700; line-height: 1.3; }
.bs-item__ort a { color: var(--c-navy); text-decoration: none; }
.bs-item__ort a:hover { text-decoration: underline; }
.bs-item__address { font-size: 1rem; line-height: 1.45; color: #3b4456; }
.bs-item__person strong { display: block; font-family: var(--f-serif); font-size: 1.35rem; font-weight: 600; line-height: 1.2; color: var(--c-navy); }
.bs-item__person span { font-size: .9375rem; color: var(--c-muted); }
.bs-item__person a { color: inherit; text-decoration: none; }
.bs-item__person a:hover { text-decoration: underline; }
.bs-item__phone { display: flex; align-items: center; gap: .4rem; white-space: nowrap; }
.bs-item__phone .icon { color: var(--c-green); }
.bs-item__phone a { color: var(--c-ink); font-weight: 600; text-decoration: none; }
.bs-item__more { display: inline-flex; align-items: center; gap: .35rem; font-weight: 600; white-space: nowrap; text-decoration: none; }
.bs-item__more .icon { width: 1em; }
.bs-item__seal img { display: block; width: 5.5rem; height: auto; }
.bs-item__seal:empty { display: block; }
@media (min-width: 1101px) {
	/* Siegel zwischen Person und Ort */
	.bs-item__seal { grid-column: 3; grid-row: 1; }
	.bs-item__place { grid-column: 4; grid-row: 1; }
	.bs-item__phone { grid-column: 5; grid-row: 1; }
	.bs-item__more { grid-column: 6; grid-row: 1; }
}

@media (max-width: 1100px) {
	/* Links Name, Telefon, Link untereinander; rechts Anschrift und Siegel */
	.bs-item { grid-template-columns: 4.5rem 1fr 1fr; align-items: start; }
	.bs-item__photo { grid-column: 1; grid-row: 1 / span 3; }
	.bs-item__person { grid-column: 2; grid-row: 1; }
	.bs-item__phone { grid-column: 2; grid-row: 2; }
	.bs-item__more { grid-column: 2; grid-row: 3; }
	.bs-item__place { grid-column: 3; grid-row: 1 / span 2; }
	.bs-item__seal { grid-column: 3; grid-row: 3; }
	.bs-item__seal:empty { display: none; }
}
@media (max-width: 560px) {
	.bs-item { grid-template-columns: 3.5rem 1fr; gap: .5rem 1rem; }
	.bs-item__photo img, .bs-item .initials { width: 3.5rem; height: 3.5rem; }
	.bs-item__photo { grid-row: 1 / span 5; }
	.bs-item__person, .bs-item__place, .bs-item__seal, .bs-item__phone, .bs-item__more { grid-column: 2; grid-row: auto; }
}

.initials {
	display: grid;
	place-items: center;
	background: var(--c-meadow);
	color: var(--c-green);
	font-family: var(--f-serif);
	font-weight: 600;
	font-size: 1.4rem;
}
.initials--large { width: 100%; aspect-ratio: 4 / 5; border-radius: var(--radius-photo); font-size: 4rem; }

.bs-list--compact { margin-bottom: 1.5rem; }

.bs-detail {
	display: grid;
	grid-template-columns: minmax(10rem, 15rem) minmax(0, 1fr);
	gap: clamp(2rem, 6vw, 5rem);
	max-width: calc(var(--wide) + 2 * var(--gutter));
	margin: 0 auto;
	padding: clamp(2.5rem, 5vw, 4rem) var(--gutter);
}
.bs-detail__portrait img:first-child { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center top; border-radius: var(--radius-photo); box-shadow: var(--shadow); }
.bs-detail__seal { width: 9rem; margin: 1.5rem auto 0; }
.bs-detail__name { font-size: clamp(1.75rem, 3vw, 2.4rem); margin-bottom: .25rem; }
.bs-detail__role { color: var(--c-muted); font-size: 1.125rem; }
.bs-facts { margin: 2rem 0 0; border-top: 1px solid var(--c-line); }
.bs-facts > div { display: grid; grid-template-columns: 9rem 1fr; gap: 1rem; padding: .85rem 0; border-bottom: 1px solid var(--c-line); }
.bs-facts dt { display: flex; align-items: center; gap: .55rem; font-weight: 700; color: var(--c-navy); }
.bs-facts dt .icon { color: var(--c-green); }
.bs-facts dd { margin: 0; }
.bs-detail__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.bs-detail__hint { margin-top: .75rem; font-size: .875rem; color: var(--c-muted); }
@media (max-width: 760px) {
	.bs-detail { grid-template-columns: 1fr; }
	.bs-detail__portrait { max-width: 12rem; }
	.bs-facts > div { grid-template-columns: 1fr; gap: .15rem; }
}

.bs-prepare,
.bs-nearby {
	max-width: calc(var(--wide) + 2 * var(--gutter));
	margin: 0 auto;
	padding: 0 var(--gutter) clamp(3rem, 6vw, 4.5rem);
}
.bs-prepare {
	display: grid;
	grid-template-columns: minmax(10rem, 15rem) minmax(0, 1fr);
	gap: clamp(2rem, 6vw, 5rem);
}
.bs-prepare h2 { font-size: clamp(1.5rem, 2.6vw, 2rem); }
.bs-prepare .numbered li { padding-left: 4rem; }
@media (max-width: 760px) { .bs-prepare { grid-template-columns: 1fr; } }
.bs-nearby h2 { font-size: clamp(1.4rem, 2.4vw, 1.8rem); }

/* --------------------------------------------------------------- Newsletter */

.news-list { border-top: 2px solid var(--c-navy); }
.news-item {
	display: grid;
	grid-template-columns: 9rem minmax(0, 1fr);
	gap: .25rem 2rem;
	padding: 1.5rem 0;
	border-bottom: 1px solid var(--c-line);
}
.news-item__date { padding-top: .3rem; font-size: .9375rem; font-weight: 700; color: var(--c-green); }
.news-item__title { margin: 0 0 .4rem; font-size: clamp(1.2rem, 2vw, 1.45rem); }
.news-item__title a { color: var(--c-navy); text-decoration: none; }
.news-item__title a:hover { text-decoration: underline; }
.news-item__excerpt { margin: 0; color: var(--c-muted); font-size: 1rem; }
.news-item__more { display: inline-flex; align-items: center; gap: .35rem; margin-top: .6rem; font-weight: 600; color: var(--c-blue); text-decoration: none; }
.news-item__more:hover { text-decoration: underline; }
.news-item__more .icon { width: 1em; }
@media (max-width: 640px) {
	.news-item { grid-template-columns: 1fr; }
}
.news-intro { margin-bottom: 2rem; }

.pagination { margin-top: 2.5rem; }
.pagination ul { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; margin: 0; padding: 0; }
.pagination a,
.pagination span.page-numbers {
	display: grid;
	place-items: center;
	min-width: 2.6rem;
	height: 2.6rem;
	padding: 0 .6rem;
	border: 1px solid var(--c-line);
	border-radius: 999px;
	color: var(--c-navy);
	font-weight: 600;
	text-decoration: none;
}
.pagination a:hover { border-color: var(--c-navy); }
.pagination span.page-numbers.current { background: var(--c-navy); border-color: var(--c-navy); color: #fff; }
.pagination .dots { border: 0; }

.post-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; max-width: var(--content); margin: 3rem 0 1.5rem; }
.post-nav__link { padding: 1rem 1.25rem; border: 1px solid var(--c-line); border-radius: var(--radius); color: var(--c-navy); text-decoration: none; font-weight: 600; line-height: 1.35; }
.post-nav__link:hover { border-color: var(--c-navy); }
.post-nav__link--next { grid-column: 2; text-align: right; }
.post-nav__label { display: block; font-size: .8125rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--c-muted); margin-bottom: .2rem; }
.single-news .page-body > p { margin: 0; }
@media (max-width: 640px) {
	.post-nav { grid-template-columns: 1fr; }
	.post-nav__link--next { grid-column: 1; text-align: left; }
}

/* --------------------------------------------------------------- Formulare (Contact Form 7) */

.wpcf7 { margin-top: 1rem; }
.wpcf7 .hidden-fields-container { display: none; border: 0; margin: 0; padding: 0; }
.wpcf7 .screen-reader-response { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.wpcf7-form { display: grid; gap: 1.25rem; }
.wpcf7-form > p { margin: 0; }
.ldlev-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem 1.5rem; }
.ldlev-field { display: flex; flex-direction: column; gap: .35rem; font-weight: 600; color: var(--c-navy); font-size: 1rem; }
.ldlev-field--wide { grid-column: 1 / -1; }
.ldlev-spacer { display: block; }
@media (max-width: 640px) {
	.ldlev-form-grid { grid-template-columns: 1fr; }
	.ldlev-spacer { display: none; }
}
.wpcf7-form-control-wrap { display: block; }
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 select,
.wpcf7 textarea {
	width: 100%;
	padding: .75rem .9rem;
	border: 2px solid var(--c-line);
	border-radius: 8px;
	background: #fff;
	font: 400 1.0625rem var(--f-sans);
	color: var(--c-ink);
}
.wpcf7 input:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus { outline: none; border-color: var(--c-river); }
.wpcf7 textarea { min-height: 10rem; resize: vertical; }
.ldlev-form-note { margin: 0; font-size: .9375rem; line-height: 1.55; color: #3b4456; }
/* Datenschutzhinweis als eigener Absatz unter der Checkbox, nicht eingerückt (gehört nicht zur Einwilligung) */
.wpcf7-form > .ldlev-form-note { margin: 0; }
.wpcf7-turnstile:empty { display: none; }
.wpcf7-acceptance .wpcf7-list-item { margin: 0; }
.wpcf7-acceptance label { display: flex; gap: .75rem; align-items: flex-start; font-size: .9375rem; color: #3b4456; line-height: 1.55; }
.wpcf7-acceptance input { width: 1.25rem; height: 1.25rem; margin: .15rem 0 0; flex: none; accent-color: var(--c-green); }
.wpcf7-submit {
	justify-self: start;
	padding: .85rem 1.8rem;
	border: 0;
	border-radius: 999px;
	background: var(--c-green);
	color: #fff;
	font: 600 1.0625rem var(--f-sans);
	cursor: pointer;
}
.wpcf7-submit:hover { background: var(--c-navy); }
.wpcf7-submit:disabled { opacity: .5; cursor: not-allowed; }
.wpcf7-not-valid-tip { margin-top: .3rem; color: #a5281c; font-size: .9375rem; font-weight: 600; }
.wpcf7 .wpcf7-not-valid { border-color: #a5281c; }
.wpcf7-response-output { margin: 0 !important; padding: 1rem 1.25rem !important; border-radius: 8px; border-width: 2px !important; }
.wpcf7-spinner { margin: 0 0 0 1rem; vertical-align: middle; }
.ldlev-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* --------------------------------------------------------------- Footer */

.site-footer { position: relative; margin-top: 0; background: var(--c-paper); border-top: 1px solid #e8e3d6; }
.site-footer__main {
	display: grid;
	grid-template-columns: 1.1fr 1.3fr 1fr 1fr;
	gap: 2.5rem;
	max-width: calc(var(--wide) + 2 * var(--gutter));
	margin: 0 auto;
	padding: clamp(3rem, 6vw, 4.5rem) var(--gutter) 3rem;
}
.site-footer .site-logo__img { height: 5.5rem; }
.site-footer__claim { margin-top: 1.25rem; font-size: .9375rem; color: var(--c-muted); max-width: 22rem; }
.site-footer__heading { font-family: var(--f-sans); font-size: .875rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--c-green); margin-bottom: 1rem; }
.site-footer address { font-style: normal; margin-bottom: .75rem; }
.site-footer__hours { margin-top: 1rem; font-size: 1rem; }
.menu--footer li { margin-bottom: .35rem; }
.menu--footer a { color: var(--c-ink); text-decoration: none; }
.menu--footer a:hover { color: var(--c-blue); text-decoration: underline; }
.bvl-badge { display: block; color: var(--c-ink); text-decoration: none; font-size: .9375rem; }
.bvl-badge__img { width: 9rem; margin-bottom: .75rem; mix-blend-mode: multiply; }
.bvl-badge:hover span { text-decoration: underline; }

.site-footer__legal {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: .5rem 2rem;
	padding: 1.1rem max(var(--gutter), calc((100% - var(--wide)) / 2));
	background: var(--c-navy);
	color: #aab6d3;
	font-size: .875rem;
}
.site-footer__copy { margin: 0; }
.menu--legal { display: flex; flex-wrap: wrap; align-items: center; }
.menu--legal li { display: flex; align-items: center; }
.menu--legal li + li::before { content: "·"; margin: 0 .6rem; color: #6f7ea6; }
.menu--legal a { color: #c9d3ea; text-decoration: none; }
.menu--legal a:hover,
.menu--legal a:focus-visible { color: #fff; text-decoration: underline; }
@media (max-width: 700px) {
	.site-footer__legal { flex-direction: column-reverse; align-items: flex-start; gap: 1rem; }
	.menu--legal { gap: .35rem 1.25rem; }
	.menu--legal li + li::before { display: none; }
}

@media (max-width: 960px) {
	.site-footer__main { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
	.site-footer__main { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------- Block-Editor */

.editor-styles-wrapper { font-family: var(--f-sans); }

/* --------------------------------------------------------------- Bewegung */

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