/* Deutschland Betriebsarzt – Stylesheet
   Farben aus dem Logo: Dunkelblau #0e4e96, Hellblau #2b93d1, Grün #70bf54, Grau #6d6e71.
   Systemschrift (keine Web-Schriften): schnell, kein Layout-Springen, keine Anfrage an Dritte.
   Kein Wichtig-Zusatz (important) – Vorrang über Spezifität. */

:root {
	--navy: #0e4e96;
	--navy-700: #0a3d78;
	--navy-900: #082a54;
	--sky: #2b93d1;
	--sky-200: #b9daf2;
	--sky-100: #e4f1fb;
	--sky-50: #f2f8fd;
	--green: #70bf54;
	--green-700: #3b7c28;
	--green-200: #c9e9bc;
	--green-100: #edf7e8;
	--ink: #0f2440;
	--text: #34465a;
	--muted: #5a6a7c;
	--line: #d9e3ee;
	--white: #fff;
	--logo-text: #6d6e71;
	--radius: 16px;
	--radius-sm: 10px;
	--shadow: 0 1px 2px rgba(15, 36, 64, .06), 0 10px 30px rgba(15, 36, 64, .08);
	--shadow-lg: 0 2px 6px rgba(15, 36, 64, .06), 0 24px 60px rgba(15, 36, 64, .14);
	--container: min(1200px, calc(100% - 48px));
	--nav-h: 60px;
	--font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- Grundlagen ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	hyphens: auto;
	overflow-wrap: break-word;
	background: var(--white);
	color: var(--text);
	font-family: var(--font);
	font-size: 17px;
	line-height: 1.65;
	text-rendering: optimizeLegibility;
}
img, svg, video { max-width: 100%; height: auto; }
img { display: block; }
a { color: var(--navy); text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { color: var(--navy-700); }
h1, h2, h3, h4, h5, h6 { color: var(--ink); line-height: 1.2; margin: 0 0 .5em; font-weight: 750; letter-spacing: -.01em; }
p { margin: 0 0 1em; }
:focus-visible { outline: 3px solid var(--sky); outline-offset: 3px; border-radius: 4px; }
.container { width: var(--container); margin-inline: auto; }
.narrow { max-width: 760px; }
.screen-reader-text {
	position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.skip-link {
	position: absolute; left: 16px; top: -100px; z-index: 200;
	background: var(--navy); color: var(--white); padding: 12px 18px; border-radius: var(--radius-sm);
	font-weight: 700; text-decoration: none;
}
.skip-link:focus { top: 12px; color: var(--white); }
main:focus { outline: none; }
.icon { width: 20px; height: 20px; flex: none; }

/* ---------- Knöpfe ---------- */
.btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 48px; padding: 10px 22px;
	border: 2px solid var(--sky-200); border-radius: 12px;
	background: var(--white); color: var(--navy);
	font: inherit; font-size: 16px; font-weight: 700; line-height: 1.2; text-align: center; text-decoration: none;
	cursor: pointer;
	transition: background-color .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease), box-shadow .2s var(--ease), transform .2s var(--ease);
}
.btn:hover { border-color: var(--navy); background: var(--sky-50); color: var(--navy-700); }
.btn-primary { background: var(--navy); border-color: var(--navy); color: var(--white); box-shadow: 0 6px 16px rgba(14, 78, 150, .22); }
.btn-primary:hover { background: var(--navy-700); border-color: var(--navy-700); color: var(--white); box-shadow: 0 10px 24px rgba(14, 78, 150, .3); }
.btn-secondary { background: var(--white); }
.btn-block { width: 100%; }
.btn .icon { width: 18px; height: 18px; }
.button-row { display: flex; flex-wrap: wrap; gap: 12px; }

/* Auf dunklem Grund */
.section-navy .btn-primary, .cta-navy .btn-primary, .page-heading .btn-primary {
	background: var(--white); border-color: var(--white); color: var(--navy); box-shadow: none;
}
.section-navy .btn-primary:hover, .cta-navy .btn-primary:hover { background: var(--sky-100); border-color: var(--sky-100); color: var(--navy-900); }
.section-navy .btn-secondary, .cta-navy .btn-secondary {
	background: transparent; border-color: rgba(255, 255, 255, .6); color: var(--white);
}
.section-navy .btn-secondary:hover, .cta-navy .btn-secondary:hover { background: rgba(255, 255, 255, .12); border-color: var(--white); color: var(--white); }

/* ---------- Kopfzeile ---------- */
.topbar { background: var(--navy-900); color: #dce9f7; font-size: 14px; }
.topbar-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 40px; }
.topbar-claim { display: flex; align-items: center; gap: 8px; margin: 0; font-weight: 600; }
.topbar-claim .icon { width: 16px; height: 16px; color: var(--green); }
.topbar-links { display: flex; gap: 20px; margin: 0; padding: 0; list-style: none; }
.topbar-links a { display: inline-flex; align-items: center; gap: 7px; min-height: 40px; color: #dce9f7; text-decoration: none; }
.topbar-links a:hover { color: var(--white); text-decoration: underline; }
.topbar-links .icon { width: 16px; height: 16px; }

.site-header { background: var(--white); position: relative; z-index: 60; }
.brandbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 92px; }
.brand { display: flex; align-items: center; gap: 18px; text-decoration: none; color: var(--ink); min-height: 44px; }
.brand .logo-svg { width: 132px; height: 54px; }
.brand-text { display: flex; flex-direction: column; padding-left: 18px; border-left: 1px solid var(--line); line-height: 1.3; }
.brand-text strong { font-size: 17px; color: var(--ink); }
.brand-text span { font-size: 14.5px; color: var(--muted); }
.brand-contact { display: flex; align-items: center; gap: 28px; }
.contact-chip { display: flex; align-items: center; gap: 12px; margin: 0; color: var(--ink); text-decoration: none; line-height: 1.25; min-height: 48px; }
.contact-chip small { display: block; font-size: 13px; color: var(--muted); font-weight: 600; }
.contact-chip strong { font-size: 16.5px; }
a.contact-chip:hover strong { color: var(--navy); text-decoration: underline; }
.icon-badge {
	display: inline-grid; place-items: center; flex: none;
	width: 44px; height: 44px; border-radius: 50%;
	background: var(--sky-100); color: var(--navy);
}
.icon-badge.is-green { background: var(--green-100); color: var(--green-700); }
.icon-badge .icon { width: 22px; height: 22px; }
.brand-mobile { display: none; align-items: center; gap: 8px; }
.icon-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	min-width: 48px; min-height: 48px; padding: 0 12px;
	border: 2px solid var(--sky-200); border-radius: 12px; background: var(--white); color: var(--navy);
	font: inherit; font-size: 15px; font-weight: 700; cursor: pointer;
}
.icon-btn:hover { border-color: var(--navy); background: var(--sky-50); }
.menu-btn .icon-close { display: none; }
.menu-btn[aria-expanded="true"] .icon-open { display: none; }
.menu-btn[aria-expanded="true"] .icon-close { display: block; }

/* ---------- Hauptnavigation (Desktop) ---------- */
.navbar {
	position: sticky; top: 0; z-index: 50;
	background: rgba(255, 255, 255, .97);
	border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
	transition: box-shadow .2s var(--ease);
}
.navbar.is-stuck { box-shadow: 0 8px 24px rgba(15, 36, 64, .1); }
.main-nav { display: flex; align-items: center; min-height: var(--nav-h); }
.nav-list { display: flex; align-items: center; flex-wrap: wrap; gap: 2px; width: 100%; margin: 0; padding: 0; list-style: none; }
.nav-list > li { position: relative; display: flex; align-items: center; }
.nav-list .nav-link {
	display: flex; align-items: center; min-height: 48px; padding: 0 12px;
	color: var(--ink); font-size: 15px; font-weight: 650; text-decoration: none; border-radius: 10px;
}
.nav-list .nav-link:hover, .nav-list > li:hover > .nav-link, .nav-list .nav-link.active { color: var(--navy); background: var(--sky-50); }
.nav-list .nav-link.active { box-shadow: inset 0 -3px 0 var(--green); }
.sub-toggle {
	display: inline-grid; place-items: center; width: 32px; height: 44px; margin-left: -8px;
	border: 0; border-radius: 8px; background: transparent; color: var(--muted); cursor: pointer;
}
.sub-toggle:hover { color: var(--navy); background: var(--sky-50); }
.sub-toggle .icon { width: 16px; height: 16px; transition: transform .2s var(--ease); }
.nav-list > li.nav-cta { order: 99; margin-left: auto; }
.nav-list > li.nav-cta > .nav-link {
	min-height: 44px; padding: 0 18px; margin-left: 8px;
	background: var(--navy); color: var(--white); border-radius: 12px;
}
.nav-list > li.nav-cta > .nav-link:hover { background: var(--navy-700); color: var(--white); }
.nav-drawer-contact { display: none; }

.nav-list .sub-menu {
	position: absolute; top: calc(100% + 6px); left: 0; z-index: 70;
	min-width: 290px; max-height: min(70vh, 640px); overflow: auto;
	margin: 0; padding: 10px; list-style: none;
	background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-lg);
	opacity: 0; visibility: hidden; transform: translateY(6px);
	transition: opacity .18s var(--ease), transform .18s var(--ease), visibility 0s linear .18s;
}
.nav-list .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -10px; height: 10px; }
.nav-list .sub-menu.is-wide { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 6px; width: min(640px, 92vw); }
.nav-list .sub-menu.is-cities { grid-template-columns: repeat(3, minmax(0, 1fr)); width: min(520px, 92vw); }
.nav-list > li:last-child .sub-menu, .nav-list > li.nav-cta ~ li .sub-menu { left: auto; right: 0; }
.nav-list .sub-link {
	display: flex; align-items: center; min-height: 44px; padding: 8px 12px;
	color: var(--ink); font-size: 15px; font-weight: 550; line-height: 1.35; text-decoration: none; border-radius: 10px;
}
.nav-list .sub-link:hover, .nav-list .sub-link.active { background: var(--sky-50); color: var(--navy); }

@media (hover: hover) and (min-width: 1200px) {
	.nav-list > li:hover > .sub-menu { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
}
@media (min-width: 1200px) {
	.nav-list > li:focus-within > .sub-menu, .nav-list > li.is-open > .sub-menu { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
	.nav-list > li.is-open > .sub-toggle .icon { transform: rotate(180deg); }
}

/* ---------- Mobil: Schublade ---------- */
@media (max-width: 1199px) {
	.topbar { display: none; }
	.site-header { position: sticky; top: 0; border-bottom: 1px solid var(--line); box-shadow: 0 4px 16px rgba(15, 36, 64, .06); }
	.brandbar { min-height: 68px; gap: 12px; }
	.brand { gap: 12px; }
	.brand .logo-svg { width: 98px; height: 40px; }
	.brand-text { padding-left: 12px; }
	.brand-text strong { font-size: 15px; }
	.brand-text span { font-size: 13px; }
	.brand-contact { display: none; }
	.brand-mobile { display: flex; }
	.navbar {
		position: fixed; left: 0; right: 0; bottom: 0; top: var(--drawer-top, 69px); z-index: 55;
		overflow-y: auto; overscroll-behavior: contain;
		border: 0; background: var(--white);
		visibility: hidden; opacity: 0; transform: translateY(-8px);
		transition: opacity .2s var(--ease), transform .2s var(--ease), visibility 0s linear .2s;
	}
	body.nav-open .navbar { visibility: visible; opacity: 1; transform: none; transition-delay: 0s; }
	body.nav-open { overflow: hidden; }
	.main-nav { display: block; padding: 8px 0 32px; }
	.nav-list { display: block; }
	.nav-list > li { flex-wrap: wrap; border-bottom: 1px solid var(--line); }
	.nav-list .nav-link { flex: 1; min-height: 56px; padding: 0 8px; font-size: 17px; border-radius: 0; }
	.nav-list .nav-link:hover, .nav-list > li:hover > .nav-link { background: transparent; }
	.nav-list .nav-link.active { box-shadow: inset 4px 0 0 var(--green); padding-left: 14px; }
	.sub-toggle { width: 52px; height: 52px; margin: 0; border-radius: 12px; }
	.sub-toggle[aria-expanded="true"] .icon { transform: rotate(180deg); }
	.nav-list .sub-menu, .nav-list .sub-menu.is-wide, .nav-list .sub-menu.is-cities {
		position: static; display: none; width: 100%; max-height: none; min-width: 0;
		padding: 0 0 12px 8px; border: 0; box-shadow: none; border-radius: 0;
		opacity: 1; visibility: visible; transform: none; transition: none;
	}
	.nav-list > li.is-open > .sub-menu { display: block; }
	.nav-list .sub-link { min-height: 48px; font-size: 16px; }
	.nav-list > li.nav-cta { margin: 16px 0 0; border-bottom: 0; }
	.nav-list > li.nav-cta > .nav-link { justify-content: center; min-height: 52px; margin: 0; }
	.nav-drawer-contact { display: grid; gap: 10px; margin-top: 20px; }
}
@media (max-width: 420px) {
	.brand-text { display: none; }
	.menu-btn-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
}

/* ---------- Abschnitte allgemein ---------- */
.section-pad { padding: 88px 0; }
.section-soft { background: var(--sky-50); }
.section-green { background: var(--green-100); }
.section-navy { background: linear-gradient(135deg, var(--navy) 0%, var(--navy-900) 100%); color: #e4eefa; }
.section-navy h2, .section-navy h3 { color: var(--white); }
.section-head { max-width: 780px; margin-bottom: 40px; }
.section-head h2, .about-copy h2, .cta-copy h2 { font-size: clamp(1.75rem, 1.2rem + 1.8vw, 2.5rem); }
.section-head .rich, .lead { font-size: 1.1rem; color: var(--text); }
.eyebrow {
	display: inline-flex; align-items: center; gap: 10px; margin-bottom: 14px;
	color: var(--green-700); font-size: 14px; font-weight: 750; letter-spacing: .06em; text-transform: uppercase;
}
.eyebrow::before { content: ""; width: 28px; height: 3px; border-radius: 3px; background: var(--green); }
.rich > :last-child { margin-bottom: 0; }

.check-list { margin: 18px 0 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.check-list li { position: relative; padding-left: 34px; }
.check-list li::before {
	content: ""; position: absolute; left: 0; top: .2em; width: 22px; height: 22px; border-radius: 50%;
	background: var(--green-100) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233b7c28' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4L18 8'/%3E%3C/svg%3E") center / 15px no-repeat;
}

/* ---------- Startseiten-Kopf ---------- */
.hero-home {
	position: relative; overflow: hidden;
	padding: 72px 0 88px;
	background:
		radial-gradient(900px 420px at 92% -10%, rgba(43, 147, 209, .16), transparent 60%),
		radial-gradient(700px 380px at -10% 110%, rgba(112, 191, 84, .14), transparent 60%),
		linear-gradient(180deg, var(--sky-50), var(--white));
}
.hero-grid { display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: 64px; }
.hero-copy h1 { font-size: clamp(2.3rem, 1.4rem + 3.4vw, 3.75rem); line-height: 1.08; letter-spacing: -.025em; color: var(--navy-900); }
.hero-text { font-size: 1.2rem; max-width: 34em; color: var(--text); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.hero-actions .btn { min-height: 54px; padding-inline: 26px; font-size: 17px; }
.hero-points { display: flex; flex-wrap: wrap; gap: 10px 22px; margin: 28px 0 0; padding: 0; list-style: none; font-weight: 650; color: var(--ink); font-size: 15.5px; }
.hero-points li { display: flex; align-items: center; gap: 8px; }
.hero-points .icon { width: 20px; height: 20px; padding: 3px; border-radius: 50%; background: var(--green-100); color: var(--green-700); }
.hero-photo { position: relative; margin: 0; }
.hero-photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 28px; box-shadow: var(--shadow-lg); }
.hero-photo::before {
	content: ""; position: absolute; inset: -18px -18px auto auto; width: 46%; height: 46%; z-index: -1;
	border-radius: 28px; background: linear-gradient(135deg, var(--sky) 0%, var(--green) 100%); opacity: .22;
}
.hero-badge {
	position: absolute; left: -22px; bottom: 26px;
	display: flex; align-items: center; gap: 12px; padding: 14px 18px;
	background: var(--white); border-radius: 16px; box-shadow: var(--shadow-lg); line-height: 1.3;
}
.hero-badge .icon { width: 30px; height: 30px; color: var(--green-700); }
.hero-badge strong { display: block; color: var(--ink); }
.hero-badge span { font-size: 14px; color: var(--muted); }

/* ---------- Seitenkopf ---------- */
.page-heading {
	position: relative; overflow: hidden;
	padding: 40px 0 52px;
	background:
		radial-gradient(600px 300px at 100% 0%, rgba(43, 147, 209, .45), transparent 65%),
		radial-gradient(500px 260px at 0% 100%, rgba(112, 191, 84, .22), transparent 60%),
		linear-gradient(135deg, var(--navy) 0%, var(--navy-900) 100%);
	color: #dfeaf7;
}
.page-heading h1 { max-width: 900px; margin-bottom: .4em; color: var(--white); font-size: clamp(1.9rem, 1.3rem + 2.2vw, 2.9rem); line-height: 1.15; }
.page-heading .eyebrow { color: #a9df93; }
.page-heading .eyebrow::before { background: var(--green); }
.page-lead { max-width: 820px; font-size: 1.12rem; color: #e4eefa; }
.page-lead > :last-child { margin-bottom: 0; }
.page-meta { max-width: 820px; margin: 0; color: #e4eefa; font-size: 1.08rem; }
.breadcrumbs { margin-bottom: 22px; font-size: 14px; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 4px 0; margin: 0; padding: 0; list-style: none; }
.breadcrumbs li { display: flex; align-items: center; color: #c7d9ee; }
.breadcrumbs li + li::before { content: "›"; margin: 0 10px; color: #8fb3d9; }
.breadcrumbs a { color: #e4eefa; text-decoration: none; }
.breadcrumbs a:hover { color: var(--white); text-decoration: underline; }
.trust-chips { display: flex; flex-wrap: wrap; gap: 10px; margin: 22px 0 0; padding: 0; list-style: none; }
.trust-chips li {
	display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px;
	border: 1px solid rgba(255, 255, 255, .28); border-radius: 999px; background: rgba(255, 255, 255, .08);
	color: var(--white); font-size: 14.5px; font-weight: 600;
}
.trust-chips .icon { width: 16px; height: 16px; color: #a9df93; }

/* ---------- Inhaltsseiten (unveränderter Seiteninhalt) ---------- */
.entry-wrap { padding: 56px 0 80px; }
.entry-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 56px; align-items: start; }
.entry-plain .entry-grid { grid-template-columns: minmax(0, 860px); }
.entry-content { min-width: 0; }
.entry-aside { position: sticky; top: calc(var(--nav-h) + 24px); display: grid; gap: 18px; }
.aside-card { padding: 24px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.aside-kicker { margin: 0 0 8px; color: var(--green-700); font-size: 13px; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.aside-name { margin: 0 0 14px; line-height: 1.35; }
.aside-name strong { display: block; color: var(--ink); font-size: 1.15rem; }
.aside-name span { color: var(--muted); font-size: 15px; }
.aside-points { margin: 0 0 18px; padding: 0; list-style: none; display: grid; gap: 8px; font-size: 15.5px; }
.aside-points li { display: flex; gap: 8px; align-items: flex-start; }
.aside-points .icon { width: 18px; height: 18px; margin-top: 3px; color: var(--green-700); }
.aside-actions { display: grid; gap: 10px; }
.aside-mail { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; font-size: 15px; font-weight: 600; word-break: break-all; }
.aside-mail .icon { width: 18px; height: 18px; }
.toc ol { margin: 0; padding: 0; list-style: none; counter-reset: toc; display: grid; gap: 2px; }
.toc li { counter-increment: toc; }
.toc a {
	display: flex; gap: 10px; padding: 8px 10px; border-radius: 10px;
	color: var(--text); font-size: 15px; line-height: 1.4; text-decoration: none;
}
.toc a::before { content: counter(toc); flex: none; min-width: 1.4em; color: var(--sky); font-weight: 750; }
.toc a:hover, .toc a.is-current { background: var(--sky-50); color: var(--navy); }

/* Fließtext */
.prose { max-width: 780px; color: var(--text); }
.entry-plain .prose { max-width: 860px; }
.prose > :first-child { margin-top: 0; }
.prose h2 { margin: 2.2em 0 .6em; font-size: clamp(1.45rem, 1.2rem + .9vw, 1.85rem); color: var(--navy-900); scroll-margin-top: calc(var(--nav-h) + 24px); }
.prose h3 { margin: 1.8em 0 .5em; font-size: 1.25rem; }
.prose h4, .prose h5, .prose h6 { margin: 1.6em 0 .5em; font-size: 1.08rem; }
.prose ul, .prose ol { margin: 0 0 1.2em; padding-left: 1.4em; }
.prose li { margin-bottom: .45em; }
.prose ul li::marker { color: var(--green-700); }
.prose ol li::marker { color: var(--navy); font-weight: 700; }
.prose strong { color: var(--ink); }
.prose a { font-weight: 600; }
.prose blockquote { margin: 1.6em 0; padding: 18px 22px; border-left: 4px solid var(--green); background: var(--green-100); border-radius: 0 12px 12px 0; }
.prose figure { margin: 0 0 1.4em; }
.prose figcaption { color: var(--muted); font-size: 14px; }
.prose img { border-radius: 12px; }
.prose table { width: 100%; margin: 0 0 1.4em; border-collapse: collapse; font-size: 15.5px; }
.prose th, .prose td { padding: 10px 12px; border: 1px solid var(--line); text-align: left; vertical-align: top; }
.prose th { background: var(--sky-50); color: var(--ink); }
.prose hr { margin: 2em 0; border: 0; border-top: 1px solid var(--line); }
.prose em { color: var(--muted); }
.prose .wp-block-table { overflow-x: auto; }
.prose .text-center { text-align: left; }

/* WPForms an das Theme angleichen (Formular bleibt das des Kunden) */
.entry-content .wpforms-container { margin: 0 0 1.5em; }
.entry-content div.wpforms-container-full .wpforms-form .wpforms-field-label,
.entry-content .wpforms-form .wpforms-field-label { color: var(--ink); font-size: 16px; font-weight: 700; }
.entry-content div.wpforms-container-full .wpforms-form .wpforms-field-sublabel,
.entry-content div.wpforms-container-full .wpforms-form .wpforms-field-description { color: var(--muted); font-size: 14px; }
.entry-content div.wpforms-container-full .wpforms-form input[type="text"],
.entry-content div.wpforms-container-full .wpforms-form input[type="email"],
.entry-content div.wpforms-container-full .wpforms-form input[type="tel"],
.entry-content div.wpforms-container-full .wpforms-form input[type="number"],
.entry-content div.wpforms-container-full .wpforms-form select,
.entry-content div.wpforms-container-full .wpforms-form textarea {
	min-height: 50px; padding: 10px 14px; max-width: 100%;
	border: 1.5px solid #b8c7d8; border-radius: 10px; background: var(--white);
	color: var(--ink); font: inherit; font-size: 16px;
}
.entry-content div.wpforms-container-full .wpforms-form textarea { min-height: 140px; }
.entry-content div.wpforms-container-full .wpforms-form input:focus,
.entry-content div.wpforms-container-full .wpforms-form select:focus,
.entry-content div.wpforms-container-full .wpforms-form textarea:focus {
	border-color: var(--navy); outline: 3px solid rgba(43, 147, 209, .35); outline-offset: 0; box-shadow: none;
}
.entry-content div.wpforms-container-full .wpforms-form button[type="submit"],
.entry-content div.wpforms-container-full .wpforms-form .wpforms-submit {
	min-height: 52px; padding: 12px 28px; border: 2px solid var(--navy); border-radius: 12px;
	background: var(--navy); color: var(--white); font: inherit; font-size: 17px; font-weight: 700; cursor: pointer;
}
.entry-content div.wpforms-container-full .wpforms-form button[type="submit"]:hover { background: var(--navy-700); border-color: var(--navy-700); }
.entry-content div.wpforms-container-full .wpforms-form label.wpforms-error,
.entry-content div.wpforms-container-full .wpforms-form em.wpforms-error { color: #b42318; font-size: 14px; }
.entry-content .wpforms-container .wpforms-field { padding: 10px 0; }
.entry-content .wpforms-form .wpforms-field-label { display: block; margin: 0 0 6px; }
.entry-content .wpforms-form .wpforms-field-sublabel { display: block; margin-top: 4px; }
.entry-content .wpforms-form .wpforms-field-row { display: flex; flex-wrap: wrap; gap: 12px; }
.entry-content .wpforms-form .wpforms-field-row-block { flex: 1 1 200px; }
.entry-content div.wpforms-container-full .wpforms-form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.entry-content div.wpforms-container-full .wpforms-form select,
.entry-content div.wpforms-container-full .wpforms-form textarea { width: 100%; }
.entry-content .wpforms-form .wpforms-field-checkbox ul, .entry-content .wpforms-form .wpforms-field-radio ul { margin: 0; padding: 0; list-style: none; }
.entry-content .wpforms-form .wpforms-field-checkbox li, .entry-content .wpforms-form .wpforms-field-radio li { display: flex; gap: 10px; align-items: flex-start; min-height: 44px; }
.entry-content .wpforms-form input[type="checkbox"], .entry-content .wpforms-form input[type="radio"] { width: 22px; height: 22px; margin-top: 2px; accent-color: var(--navy); }

/* ---------- Text und Bild ---------- */
.about { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 64px; }
.about.reverse .about-media { order: -1; }
.about-media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 22px; box-shadow: var(--shadow-lg); }
.about-copy .rich { font-size: 1.08rem; }
.about-action { margin: 26px 0 0; }

/* ---------- Karten mit Symbol ---------- */
.icon-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 22px; }
.icon-card {
	position: relative; display: flex; flex-direction: column; gap: 14px;
	padding: 28px; background: var(--white); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow);
	transition: transform .2s var(--ease), box-shadow .2s var(--ease), border-color .2s var(--ease);
}
.icon-card .icon-badge { width: 56px; height: 56px; background: var(--sky-100); }
.icon-card .icon-badge .icon { width: 26px; height: 26px; }
.icon-card h3 { margin: 0; font-size: 1.22rem; }
.icon-card h3 a { color: var(--ink); text-decoration: none; }
.icon-card h3 a::after { content: ""; position: absolute; inset: 0; border-radius: 18px; }
.icon-card.is-link:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); border-color: var(--sky-200); }
.icon-card.is-link:focus-within { border-color: var(--sky); }
.card-more { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; color: var(--navy); font-weight: 700; font-size: 15px; }
.card-more .icon { width: 18px; height: 18px; transition: transform .2s var(--ease); }
.icon-card:hover .card-more .icon, .post-card:hover .card-more .icon { transform: translateX(3px); }

/* ---------- Leistungen ---------- */
.services-top { display: grid; grid-template-columns: 1.05fr .95fr; gap: 48px; align-items: start; margin-bottom: 48px; }
.services-top .section-head { margin-bottom: 0; }
.services-note {
	margin-top: 22px; padding: 18px 20px; border-left: 4px solid var(--green);
	background: var(--white); border-radius: 0 14px 14px 0; color: var(--ink); font-weight: 650; box-shadow: var(--shadow);
}
.services-note > :last-child { margin-bottom: 0; }
.services-list { padding: 28px; background: var(--white); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow); }
.services-list h3 { font-size: 1.15rem; margin-bottom: 4px; }
.service-cards { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; margin: 0; padding: 0; list-style: none; }
.service-card {
	position: relative; overflow: hidden; display: flex; flex-direction: column;
	background: var(--white); border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow);
	transition: transform .2s var(--ease), box-shadow .2s var(--ease);
}
.service-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); }
.service-media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.service-title {
	display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; flex: 1;
	padding: 16px 16px 18px; color: var(--ink); font-weight: 700; font-size: 16px; line-height: 1.35; text-decoration: none; hyphens: auto;
}
a.service-title::after { content: ""; position: absolute; inset: 0; }
.service-title .icon { width: 18px; height: 18px; margin-top: 2px; color: var(--navy); }

/* ---------- Nummerierte Punkte ---------- */
.steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 22px; margin: 0; padding: 0; list-style: none; }
.step { position: relative; padding: 30px 28px 28px; background: var(--white); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow); }
.section-soft .step, .section-green .step { border-color: transparent; }
.step-number {
	display: inline-grid; place-items: center; width: 44px; height: 44px; margin-bottom: 16px;
	border-radius: 12px; background: var(--navy); color: var(--white); font-weight: 800; font-size: 18px;
}
.step:nth-child(3n+2) .step-number { background: var(--sky); }
.step:nth-child(3n+3) .step-number { background: var(--green-700); }
.step h3 { font-size: 1.2rem; }
.step .rich { color: var(--text); }

/* ---------- Freier Textblock ---------- */
.section-pad .prose { margin-inline: auto; }

/* ---------- Handlungsaufruf ---------- */
.cta-section { padding: 72px 0; }
.cta-navy {
	background:
		radial-gradient(520px 260px at 100% 0%, rgba(43, 147, 209, .5), transparent 65%),
		radial-gradient(420px 240px at 0% 100%, rgba(112, 191, 84, .25), transparent 60%),
		linear-gradient(135deg, var(--navy) 0%, var(--navy-900) 100%);
	color: #e4eefa;
}
.cta-navy h2 { color: var(--white); }
.cta-navy .eyebrow { color: #a9df93; }
.cta-soft { background: var(--sky-50); }
.cta-green { background: var(--green-100); }
.cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 32px 48px; flex-wrap: wrap; }
.cta-copy { flex: 1 1 520px; max-width: 760px; }
.cta-copy h2 { margin-bottom: .35em; }
.cta-copy .rich, .cta-copy p { font-size: 1.1rem; margin-bottom: 0; }
.cta-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.cta-actions .btn { min-height: 54px; padding-inline: 26px; font-size: 17px; }

/* ---------- Kontaktleiste ---------- */
.contact-band { padding: 56px 0; }
.contact-band-title { font-size: 1.5rem; margin-bottom: 20px; }
.contact-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 0; padding: 0; list-style: none; }
.contact-tile {
	display: flex; align-items: center; gap: 16px; height: 100%; min-height: 88px; padding: 18px 22px;
	background: var(--white); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow);
	color: var(--ink); text-decoration: none; line-height: 1.3; transition: border-color .2s var(--ease), transform .2s var(--ease);
}
.contact-tile small { display: block; color: var(--muted); font-size: 14px; font-weight: 600; }
.contact-tile strong { font-size: 17px; word-break: break-word; }
.contact-tile:hover { border-color: var(--navy); transform: translateY(-2px); color: var(--ink); }
.contact-tile.is-accent { background: var(--green-100); border-color: var(--green-200); }
.contact-tile.is-accent .icon-badge { background: var(--white); color: var(--green-700); }

/* ---------- Blog ---------- */
.post-grid { display: grid; gap: 24px; margin: 0; padding: 0; list-style: none; }
.post-card {
	position: relative; display: flex; flex-direction: column; overflow: hidden;
	background: var(--white); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow);
	transition: transform .2s var(--ease), box-shadow .2s var(--ease);
}
.post-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); }
.post-media img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.post-body { display: flex; flex-direction: column; flex: 1; padding: 24px; }
.post-date { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; color: var(--muted); font-size: 14px; font-weight: 600; }
.post-date .icon { width: 16px; height: 16px; }
.post-title { font-size: 1.2rem; line-height: 1.3; }
.post-title a { color: var(--ink); text-decoration: none; }
.post-title a::after { content: ""; position: absolute; inset: 0; }
.post-body p { color: var(--text); font-size: 15.5px; }
.nav-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 36px; }
.nav-links .page-numbers {
	display: inline-grid; place-items: center; min-width: 48px; min-height: 48px; padding: 0 14px;
	border: 2px solid var(--sky-200); border-radius: 12px; color: var(--navy); font-weight: 700; text-decoration: none;
}
.nav-links .page-numbers.current { background: var(--navy); border-color: var(--navy); color: var(--white); }
.post-navigation .nav-links { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 48px; }
.post-navigation a { display: block; height: 100%; padding: 18px 20px; border: 1px solid var(--line); border-radius: 16px; text-decoration: none; }
.post-navigation a:hover { border-color: var(--navy); background: var(--sky-50); }
.post-navigation .nav-next { text-align: right; }
.nav-kicker { display: block; color: var(--muted); font-size: 14px; font-weight: 600; }
.nav-title { display: block; color: var(--ink); font-weight: 700; line-height: 1.35; }

/* ---------- Fußzeile ---------- */
.site-footer { background: #f2f6fa; border-top: 1px solid var(--line); color: var(--text); font-size: 15.5px; }
.footer-grid { display: grid; grid-template-columns: 1.1fr 1.5fr .9fr; gap: 48px; padding: 64px 0 48px; }
.footer-logo { display: inline-block; margin-bottom: 14px; }
.footer-logo .logo-svg { width: 150px; height: 61px; }
.footer-title { margin-bottom: 16px; font-size: 1.05rem; color: var(--ink); }
.footer-contact, .footer-links, .location-list { margin: 0; padding: 0; list-style: none; }
.footer-contact { display: grid; gap: 4px; margin-top: 12px; }
.footer-contact a { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; color: var(--ink); text-decoration: none; font-weight: 600; }
.footer-contact a:hover { color: var(--navy); text-decoration: underline; }
.footer-contact .icon { width: 18px; height: 18px; color: var(--navy); }
.location-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 24px; }
.location-list li { display: flex; gap: 8px; align-items: flex-start; line-height: 1.45; }
.location-list .icon { width: 18px; height: 18px; margin-top: 2px; color: var(--green-700); }
.footer-links { display: grid; gap: 2px; }
.footer-links a { display: inline-flex; align-items: center; min-height: 44px; color: var(--ink); text-decoration: none; font-weight: 600; }
.footer-links a:hover { color: var(--navy); text-decoration: underline; }
.footer-bottom { border-top: 1px solid var(--line); }
.footer-bottom-inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; padding: 20px 0; font-size: 14.5px; color: var(--muted); }
.footer-bottom-inner p { margin: 0; }

/* ---------- Aktionsleiste (Handy) ---------- */
.action-bar { display: none; }
@media (max-width: 760px) {
	.action-bar {
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
		display: grid; grid-template-columns: 1fr 1.4fr; gap: 10px;
		padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
		background: rgba(255, 255, 255, .97); border-top: 1px solid var(--line); box-shadow: 0 -6px 20px rgba(15, 36, 64, .1);
	}
	.action-bar .btn { min-height: 50px; padding-inline: 12px; }
	body:has(.action-bar) .site-footer { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
}

/* ---------- Responsiv ---------- */
@media (max-width: 1199px) {
	.entry-grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
	.entry-aside { position: static; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
	.entry-aside .toc { order: -1; }
	.service-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.footer-grid { grid-template-columns: 1fr 1fr; }
	.footer-locations { grid-column: 1 / -1; order: 3; }
}
@media (max-width: 900px) {
	:root { --container: calc(100% - 36px); }
	.section-pad { padding: 64px 0; }
	.hero-home { padding: 40px 0 64px; }
	.hero-grid, .about, .services-top { grid-template-columns: minmax(0, 1fr); gap: 36px; }
	.about.reverse .about-media { order: 0; }
	.about-media { order: 0; }
	.hero-badge { left: 14px; bottom: 14px; }
	.hero-photo::before { display: none; }
	.contact-tiles { grid-template-columns: minmax(0, 1fr); }
	.cta-section { padding: 56px 0; }
}
@media (max-width: 640px) {
	body { font-size: 16.5px; }
	.service-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.service-title { font-size: 15px; padding: 12px 12px 14px; }
	.footer-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; padding-top: 48px; }
	.location-list { grid-template-columns: minmax(0, 1fr); }
	.hero-actions .btn, .cta-actions .btn { width: 100%; }
	.post-navigation .nav-links { grid-template-columns: minmax(0, 1fr); }
	.post-navigation .nav-next { text-align: left; }
	.entry-wrap { padding: 36px 0 56px; }
	.page-heading { padding: 28px 0 40px; }
	.trust-chips li { font-size: 13.5px; padding: 6px 12px; }
}

/* ---------- Bewegung reduzieren, Druck ---------- */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition-duration: .01ms; animation-duration: .01ms; }
	.icon-card.is-link:hover, .service-card:hover, .post-card:hover, .contact-tile:hover { transform: none; }
}
@media print {
	.topbar, .navbar, .brand-mobile, .brand-contact, .entry-aside, .action-bar, .cta-section, .site-footer .footer-locations { display: none; }
	.page-heading { background: none; color: #000; padding: 0 0 12px; }
	.page-heading h1 { color: #000; }
	.entry-grid { display: block; }
}

/* Schmalere Desktops: Hauptmenü bleibt einzeilig */
@media (min-width: 1200px) and (max-width: 1339px) {
	.nav-list .nav-link { padding: 0 8px; font-size: 14.5px; }
	.sub-toggle { width: 26px; margin-left: -6px; }
	.nav-list > li.nav-cta > .nav-link { padding: 0 14px; margin-left: 4px; }
}

/* ---------- Blog-Übersicht ---------- */
.blog-index { padding-top: 48px; }
.blog-tools { display: grid; gap: 18px; margin-bottom: 32px; padding: 22px; background: var(--sky-50); border: 1px solid var(--line); border-radius: var(--radius); }
.blog-tools[hidden] { display: none; }
.blog-search label { display: block; margin-bottom: 8px; color: var(--ink); font-weight: 700; }
.blog-search-field { position: relative; max-width: 560px; }
.blog-search-field .icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--muted); }
.blog-search-field input {
	width: 100%; min-height: 50px; padding: 10px 14px 10px 46px;
	border: 1.5px solid #b8c7d8; border-radius: 12px; background: var(--white); color: var(--ink); font: inherit; font-size: 16px;
}
.blog-search-field input:focus { border-color: var(--navy); outline: 3px solid rgba(43, 147, 209, .35); outline-offset: 0; }
.blog-topics { display: flex; flex-wrap: wrap; gap: 10px; }
.topic-chip {
	display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 16px;
	border: 1.5px solid var(--sky-200); border-radius: 999px; background: var(--white); color: var(--ink);
	font: inherit; font-size: 15px; font-weight: 650; cursor: pointer;
}
.topic-chip .icon { width: 18px; height: 18px; color: var(--navy); }
.topic-chip span { min-width: 1.6em; padding: 1px 7px; border-radius: 999px; background: var(--sky-100); color: var(--navy); font-size: 13px; text-align: center; }
.topic-chip:hover { border-color: var(--navy); }
.topic-chip[aria-pressed="true"] { background: var(--navy); border-color: var(--navy); color: var(--white); }
.topic-chip[aria-pressed="true"] .icon { color: var(--white); }
.topic-chip[aria-pressed="true"] span { background: rgba(255, 255, 255, .2); color: var(--white); }
.blog-status { margin: 0; color: var(--muted); font-size: 15px; }
.blog-empty { padding: 40px 24px; text-align: center; border: 1px dashed var(--sky-200); border-radius: var(--radius); }
.blog-empty[hidden] { display: none; }

.post-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.post-card[hidden] { display: none; }
.post-visual {
	display: grid; place-items: center; aspect-ratio: 16 / 7;
	background:
		radial-gradient(180px 120px at 85% 15%, rgba(255, 255, 255, .55), transparent 70%),
		linear-gradient(135deg, var(--sky-100), #d3e8f8);
	color: var(--navy);
}
.post-visual .icon { width: 46px; height: 46px; stroke-width: 1.4; }
.post-visual--vorsorge { background: radial-gradient(180px 120px at 85% 15%, rgba(255,255,255,.55), transparent 70%), linear-gradient(135deg, var(--green-100), #d6efcb); color: var(--green-700); }
.post-visual--fahrer { background: radial-gradient(180px 120px at 85% 15%, rgba(255,255,255,.5), transparent 70%), linear-gradient(135deg, #e3eef9, #c7dcf2); color: var(--navy-700); }
.post-visual--mutter { background: radial-gradient(180px 120px at 85% 15%, rgba(255,255,255,.55), transparent 70%), linear-gradient(135deg, #f2f7ee, #e1efd8); color: var(--green-700); }
.post-visual--betreuung { background: radial-gradient(180px 120px at 85% 15%, rgba(255,255,255,.5), transparent 70%), linear-gradient(135deg, #e6f4fb, #cbe7f6); color: var(--sky); }
.post-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin-bottom: 10px; color: var(--muted); font-size: 14px; font-weight: 600; }
.post-topic { padding: 3px 10px; border-radius: 999px; background: var(--green-100); color: var(--green-700); font-size: 13px; font-weight: 700; }
.post-excerpt { color: var(--text); font-size: 15.5px; }
.post-card .post-title { margin-bottom: .5em; }

/* Neuester Beitrag: groß, quer */
.post-card.is-featured { grid-column: 1 / -1; flex-direction: row; }
.post-card.is-featured .post-visual, .post-card.is-featured .post-media { flex: 0 0 42%; aspect-ratio: auto; min-height: 260px; }
.post-card.is-featured .post-media img { height: 100%; aspect-ratio: auto; }
.post-card.is-featured .post-visual .icon { width: 72px; height: 72px; }
.post-card.is-featured .post-body { padding: 32px 36px; justify-content: center; }
.post-card.is-featured .post-title { font-size: clamp(1.35rem, 1.1rem + 1vw, 1.75rem); }
.post-card.is-featured .post-excerpt { font-size: 16.5px; }
.post-card.is-featured .post-topic::before { content: "Neu · "; }
.blog-filtered .post-card.is-featured { grid-column: auto; flex-direction: column; }
.blog-filtered .post-card.is-featured .post-visual { flex: none; aspect-ratio: 16 / 7; min-height: 0; }
.blog-filtered .post-card.is-featured .post-body { padding: 24px; }
.blog-filtered .post-card.is-featured .post-topic::before { content: none; }

/* Beitrag */
.back-link { margin: 40px 0 0; }
.back-link a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; text-decoration: none; }
.back-link a:hover { text-decoration: underline; }
.related-posts .post-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.single .prose > section, .single .prose section { margin: 0 0 1.6em; }
.single .prose div[class=""], .single .prose section > div { margin-bottom: 1em; }

@media (max-width: 1099px) {
	.post-grid, .related-posts .post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
	.post-grid, .related-posts .post-grid { grid-template-columns: minmax(0, 1fr); }
	.post-card.is-featured { flex-direction: column; }
	.post-card.is-featured .post-visual { flex: none; aspect-ratio: 16 / 7; min-height: 0; }
	.post-card.is-featured .post-body { padding: 24px; }
	.blog-tools { padding: 16px; }
	.blog-topics { flex-wrap: nowrap; overflow-x: auto; margin: 0 -16px; padding: 0 16px 4px; scroll-snap-type: x proximity; }
	.topic-chip { flex: none; scroll-snap-align: start; }
}
