/* ==========================================================================
   Neues Design: Grundlagen (Seitenvorlage „Neues Design“)
   Formregel: Bedienelemente 6px Radius, Flächen und Bilder 14px.
   ========================================================================== */

/* Schrift: Archivo (SIL Open Font License, siehe assets/fonts/OFL.txt) */
@font-face {
	font-family: "Archivo";
	font-style: normal;
	font-weight: 400 800;
	font-stretch: 62% 125%;
	font-display: swap;
	src: url("../fonts/archivo-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Archivo";
	font-style: normal;
	font-weight: 400 800;
	font-stretch: 62% 125%;
	font-display: swap;
	src: url("../fonts/archivo-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ---------- Tokens ---------- */
.rd {
	--rd-font: "Archivo", system-ui, -apple-system, "Segoe UI", sans-serif;
	--rd-brand-solid: #020999;
	--rd-navy: #050a2e;
	--rd-navy-2: #0b1240;
	--rd-on-navy: #eef0fa;
	--rd-on-navy-muted: #aab2d4;
	--rd-line-navy: rgba(170, 178, 212, .2);
	--rd-accent-light: #9aa7ff;

	--rd-bg: #f5f6fa;
	--rd-surface: #ffffff;
	--rd-tint: #e9ecf7;
	--rd-ink: #0a0e2c;
	--rd-muted: #4c5372;
	--rd-line: #dde1ec;
	--rd-brand: #020999;
	--rd-accent: #2f43e8;
	--rd-accent-hover: #1f31cc;

	--rd-r-sm: 6px;
	--rd-r-lg: 14px;
	--rd-wrap: 1240px;
	--rd-header-h: 76px;
	--rd-ease: cubic-bezier(.16, 1, .3, 1);

}
@media (prefers-color-scheme: dark) {
	.rd {
		--rd-bg: #060920;
		--rd-surface: #0c1233;
		--rd-tint: #121a45;
		--rd-ink: #e8ebf8;
		--rd-muted: #a3abcc;
		--rd-line: #1f2852;
		--rd-brand: #9aa7ff;
		--rd-accent: #3a4cf2;
		--rd-accent-hover: #4b5cf6;
	}
	.rd .rd-header .rd-logo-svg--farbig { display: none; }
	.rd .rd-header .rd-logo-svg--negativ { display: block; }
}

/* ---------- Basis ---------- */
.rd { margin: 0; font-family: var(--rd-font); font-size: 1.0625rem; line-height: 1.6; color: var(--rd-ink); background: var(--rd-bg); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; caret-color: var(--rd-accent); accent-color: var(--rd-accent); }
html:has(body.rd) { scroll-behavior: smooth; scroll-padding-top: calc(var(--rd-header-h, 76px) + 16px); scrollbar-color: #8a92b8 transparent; }
.rd *, .rd *::before, .rd *::after { box-sizing: border-box; }
.rd ::selection { background: var(--rd-brand-solid); color: #fff; }
.rd img { max-width: 100%; height: auto; }
.rd a { color: inherit; text-underline-offset: .2em; }
.rd h1, .rd h2, .rd h3, .rd h4 { font-family: var(--rd-font); font-stretch: 108%; letter-spacing: -.022em; text-wrap: balance; color: inherit; overflow-wrap: break-word; hyphens: auto; }
.rd :focus-visible { outline: 2px solid var(--rd-accent); outline-offset: 3px; border-radius: 2px; }
.rd .rd-icon { width: 1.15em; height: 1.15em; flex: none; display: inline-block; vertical-align: -.15em; }
.rd-wrap { width: min(var(--rd-wrap), 100% - 40px); margin-inline: auto; }
.rd-skip { position: absolute; left: 16px; top: -60px; z-index: 100; padding: 10px 16px; background: var(--rd-surface); color: var(--rd-ink); border-radius: var(--rd-r-sm); }
.rd-skip:focus { top: 12px; }
.rd-h2 { margin: 0; font-size: clamp(2rem, 3.5vw, 3rem); font-weight: 800; line-height: 1.06; max-width: 20ch; }
.rd-intro { margin: 20px 0 0; max-width: 58ch; font-size: 1.125rem; color: var(--rd-muted); }

/* ---------- Buttons ---------- */
.rd-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 24px; border-radius: var(--rd-r-sm); border: 1px solid transparent; font: inherit; font-size: 1rem; font-weight: 650; line-height: 1.2; text-decoration: none; white-space: nowrap; cursor: pointer; transition: background-color .2s, border-color .2s, color .2s, transform .15s var(--rd-ease); }
.rd-btn:active { transform: translateY(1px) scale(.99); }
.rd .rd-btn-primary { background: var(--rd-accent); color: #fff; }
.rd .rd-btn-primary:hover { background: var(--rd-accent-hover); color: #fff; }
.rd .rd-btn-outline { border-color: var(--rd-line); background: var(--rd-surface); color: var(--rd-ink); }
.rd .rd-btn-outline:hover { border-color: var(--rd-ink); }
.rd .rd-btn-outline-light { border-color: rgba(238, 240, 250, .38); color: var(--rd-on-navy); }
.rd .rd-btn-outline-light:hover { border-color: var(--rd-on-navy); }

/* ---------- Logo ---------- */
.rd-brand { display: inline-flex; text-decoration: none; flex: none; }
.rd-logo { display: inline-flex; align-items: center; }
.rd-logo-svg { display: block; width: auto; height: 46px; }
.rd-header .rd-logo-svg--negativ { display: none; }
.rd-footer .rd-logo-svg { width: min(400px, 100%); height: auto; }

/* ---------- Header ---------- */
.rd-header { position: sticky; top: 0; z-index: 50; background: var(--rd-surface); border-bottom: 1px solid var(--rd-line); transition: box-shadow .3s; }
.admin-bar .rd-header { top: 32px; }
.rd-header.is-stuck { box-shadow: 0 8px 24px -16px rgba(0, 0, 0, .22); }
.rd-header-row { display: flex; align-items: center; gap: 28px; height: var(--rd-header-h); }
.rd-nav { margin-left: auto; }
.rd-nav-list { display: flex; gap: 4px; margin: 0; padding: 0; list-style: none; }
.rd-nav-list a { position: relative; display: block; padding: 10px 12px; font-size: .9375rem; font-weight: 600; text-decoration: none; color: var(--rd-muted); border-radius: var(--rd-r-sm); transition: color .2s; }
.rd-nav-list a:hover, .rd-nav-list .current-menu-item > a, .rd-nav-list a[aria-current] { color: var(--rd-ink); }
.rd-nav-list a::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: 4px; height: 2px; background: var(--rd-accent); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--rd-ease); }
.rd-nav-list .current-menu-item > a::after, .rd-nav-list a[aria-current]::after, .rd-nav-list .current-menu-ancestor > a::after { transform: scaleX(1); }
.rd-nav-list .current-menu-ancestor > a { color: var(--rd-ink); }
/* Untermenü (Desktop) */
.rd-nav-list > li { position: relative; display: flex; align-items: center; }
.rd-sub-toggle { display: grid; place-items: center; width: 28px; height: 28px; margin-left: -8px; padding: 0; border: 0; border-radius: var(--rd-r-sm); background: none; color: var(--rd-muted); cursor: pointer; }
.rd-sub-toggle:hover { color: var(--rd-ink); }
.rd-sub-toggle svg { width: 14px; height: 14px; transition: transform .25s var(--rd-ease); }
.rd-nav-list li.is-open > .rd-sub-toggle svg { transform: rotate(180deg); }
.rd-nav-list .sub-menu { position: absolute; top: calc(100% + 10px); left: 0; z-index: 60; min-width: 260px; margin: 0; padding: 8px; list-style: none; background: var(--rd-surface); border: 1px solid var(--rd-line); border-radius: var(--rd-r-lg); box-shadow: 0 18px 40px -20px rgba(0, 0, 0, .35); opacity: 0; visibility: hidden; transform: translateY(-4px); transition: opacity .2s var(--rd-ease), transform .25s var(--rd-ease), visibility 0s .25s; }
.rd-nav-list .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
.rd-nav-list li:hover > .sub-menu, .rd-nav-list li:focus-within > .sub-menu, .rd-nav-list li.is-open > .sub-menu { opacity: 1; visibility: visible; transform: none; transition: opacity .2s var(--rd-ease), transform .25s var(--rd-ease); }
.rd-nav-list li.is-closed > .sub-menu { opacity: 0; visibility: hidden; }
.rd-nav-list .sub-menu li { display: block; }
.rd-nav-list .sub-menu a { padding: 11px 14px; color: var(--rd-ink); white-space: nowrap; }
.rd-nav-list .sub-menu a::after { display: none; }
.rd-nav-list .sub-menu a:hover, .rd-nav-list .sub-menu .current-menu-item > a { background: var(--rd-tint); color: var(--rd-brand); }
.rd-header-cta { display: flex; align-items: center; gap: 18px; }
.rd-hotline { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--rd-ink); line-height: 1.2; }
.rd-hotline > .rd-icon { width: 1.4rem; height: 1.4rem; color: var(--rd-brand); }
.rd-hotline span { display: block; font-size: .75rem; color: var(--rd-muted); }
.rd-hotline strong { display: block; font-size: .98rem; color: var(--rd-ink); font-variant-numeric: tabular-nums; }
.rd-header-cta .rd-btn { min-height: 44px; padding: 0 18px; font-size: .9375rem; }
.rd-burger { display: none; place-items: center; width: 46px; height: 46px; margin-left: auto; padding: 0; border-radius: var(--rd-r-sm); border: 1px solid var(--rd-line); background: var(--rd-surface); color: var(--rd-ink); cursor: pointer; }
.rd-burger .rd-icon { width: 24px; height: 24px; }
.rd-burger-close, .rd-burger[aria-expanded="true"] .rd-burger-open { display: none; }
.rd-burger[aria-expanded="true"] .rd-burger-close { display: inline; }

/* Mobiles Menü */
.rd-mobile-nav { position: fixed; inset: var(--rd-header-h) 0 0; z-index: 49; padding: 24px 20px 40px; overflow-y: auto; background: var(--rd-surface); opacity: 0; transform: translateY(-8px); visibility: hidden; transition: opacity .25s var(--rd-ease), transform .35s var(--rd-ease), visibility 0s .35s; }
.admin-bar .rd-mobile-nav { top: calc(var(--rd-header-h) + 46px); }
.rd-mobile-nav.is-open { opacity: 1; transform: none; visibility: visible; transition: opacity .25s var(--rd-ease), transform .35s var(--rd-ease); }
.rd-mobile-list { margin: 0; padding: 0; list-style: none; }
.rd-mobile-list a { display: block; padding: 18px 0; border-bottom: 1px solid var(--rd-line); font-size: 1.375rem; font-weight: 700; font-stretch: 108%; text-decoration: none; color: var(--rd-ink); }
.rd-mobile-list .sub-menu { margin: 0; padding: 4px 0 12px 16px; list-style: none; border-bottom: 1px solid var(--rd-line); }
.rd-mobile-list .menu-item-has-children > a { border-bottom: 0; }
.rd-mobile-list .sub-menu a { padding: 10px 0; border-bottom: 0; font-size: 1.0625rem; font-weight: 600; font-stretch: 100%; color: var(--rd-muted); }
.rd-mobile-list .current-menu-item > a { color: var(--rd-brand); }
.rd-mobile-actions { display: grid; gap: 12px; margin-top: 28px; }
body.rd-nav-open { overflow: hidden; }

/* ---------- Inhalt (WPBakery) ---------- */
.rd-main { display: block; min-height: 40vh; }
.rd-main > .vc_row:not([data-vc-full-width]),
.rd-main > .vc_section:not([data-vc-full-width]) { width: min(calc(var(--rd-wrap) + 30px), 100% - 10px); margin-inline: auto; }
.rd-main .wpb_text_column h1 { font-size: clamp(2.4rem, 4.9vw, 4.25rem); font-weight: 800; font-stretch: 112%; line-height: 1.04; letter-spacing: -.03em; }
.rd-main .wpb_text_column h2 { font-size: clamp(2rem, 3.5vw, 3rem); font-weight: 800; line-height: 1.06; }
.rd-main .wpb_text_column h3 { font-size: clamp(1.25rem, 2vw, 1.625rem); font-weight: 750; line-height: 1.2; }
.rd-main .wpb_text_column p, .rd-main .wpb_text_column li { max-width: 68ch; }
.rd-main .wpb_text_column a { color: var(--rd-brand); }
.rd-empty { padding-block: clamp(76px, 9vw, 128px); }

/* ==========================================================================
   Bausteine (WPBakery-Kategorie „Neues Design“)
   ========================================================================== */

/* Volle Breite, auch innerhalb einer normalen WPBakery-Zeile */
body.rd { overflow-x: clip; }
.rd-main .vc_row:has(.rd-section) { width: auto; max-width: none; margin: 0; padding: 0; }
.rd-main .vc_column_container > .vc_column-inner:has(.rd-section) { padding: 0; }
.rd-main .wpb_wrapper > .rd-section { margin: 0; }
.rd-section { position: relative; width: 100vw; margin-left: calc(50% - 50vw); padding-block: clamp(76px, 9vw, 128px); }
.rd-section h2, .rd-section h3, .rd-section p { margin: 0; }
.rd-section .rd-intro { margin-top: 20px; }
.rd-section--compact { padding-block: 0 clamp(48px, 6vw, 80px); background: var(--rd-bg); }
.rd-split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 48px clamp(32px, 5vw, 80px); align-items: start; }
.rd-link-arrow { display: inline-flex; align-items: center; gap: 8px; font-weight: 650; color: var(--rd-brand); text-decoration: none; }
.rd-link-arrow .rd-icon { transition: transform .25s var(--rd-ease); }
.rd-link-arrow:hover .rd-icon { transform: translate(2px, -2px); }
.rd-editor-note { padding: 24px; border: 1px dashed var(--rd-line); border-radius: var(--rd-r-lg); color: var(--rd-muted); }

/* Hero */
.rd-hero { isolation: isolate; overflow: hidden; padding: clamp(64px, 8vw, 96px) 0 0; background: var(--rd-navy); color: var(--rd-on-navy); }
.rd-hero-photo { position: absolute; top: 0; right: 0; z-index: -3; width: auto; height: 100% !important; max-width: none !important; transform: scaleX(-1); filter: grayscale(1) contrast(1.12) brightness(.92); animation: rd-photo-in 1.6s var(--rd-ease) both; }
.rd-hero::before { content: ""; position: absolute; inset: 0; z-index: -2; background: #1b2bd6; mix-blend-mode: color; opacity: .55; pointer-events: none; }
.rd-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(90deg, var(--rd-navy) 0%, var(--rd-navy) 30%, rgba(5, 10, 46, .82) 48%, rgba(5, 10, 46, .35) 72%, rgba(5, 10, 46, .5) 100%), linear-gradient(0deg, var(--rd-navy) 0%, rgba(5, 10, 46, 0) 38%); }
.rd-hero-copy { max-width: 880px; }
.rd-hero h1 { margin: 0; font-size: clamp(2.4rem, 4.9vw, 4.25rem); font-weight: 800; font-stretch: 112%; line-height: 1.02; letter-spacing: -.03em; color: #fff; }
.rd-hero .rd-line { display: block; animation: rd-rise .9s var(--rd-ease) both; }
.rd-hero .rd-line + .rd-line { color: var(--rd-accent-light); animation-delay: .08s; }
.rd-lead { margin-top: 26px !important; max-width: 46ch; font-size: clamp(1.0625rem, 1.4vw, 1.25rem); color: #c9cfe8; animation: rd-rise .9s .16s var(--rd-ease) both; }
.rd-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 36px; animation: rd-rise .9s .24s var(--rd-ease) both; }
.rd-facts { display: grid; grid-template-columns: repeat(4, 1fr); margin: clamp(64px, 8vw, 104px) 0 0; padding: 0; border-top: 1px solid var(--rd-line-navy); }
.rd-facts div { display: flex; flex-direction: column-reverse; justify-content: flex-end; gap: 4px; padding: 28px 24px 40px 0; }
.rd-facts div + div { padding-left: 28px; border-left: 1px solid var(--rd-line-navy); }
.rd-facts dd { margin: 0; font-size: clamp(1.875rem, 3vw, 2.5rem); font-weight: 800; font-stretch: 112%; line-height: 1; letter-spacing: -.02em; font-variant-numeric: tabular-nums; color: #fff; }
.rd-facts dt { font-size: .9375rem; color: var(--rd-on-navy-muted); }
@keyframes rd-rise { from { opacity: 0; transform: translateY(18px); } }
@keyframes rd-photo-in { from { opacity: 0; transform: scaleX(-1) scale(1.05); } }

/* Leistungen */
.rd-services { background: var(--rd-bg); }
.rd-svc { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); grid-template-rows: repeat(var(--rd-svc-rows, 4), auto); column-gap: clamp(32px, 5vw, 80px); margin-top: 56px; }
.rd-svc-item { display: contents; }
.rd-svc-btn { grid-column: 1; display: grid; grid-template-columns: 1fr auto; gap: 6px 16px; align-items: center; width: 100%; padding: 26px 0; border: 0; border-top: 1px solid var(--rd-line); background: none; color: var(--rd-ink); font: inherit; text-align: left; cursor: pointer; }
.rd-svc-item:last-child .rd-svc-btn { border-bottom: 1px solid var(--rd-line); }
.rd-svc-btn h3 { font-size: clamp(1.375rem, 2.1vw, 1.75rem); font-weight: 750; line-height: 1.15; transition: color .25s; }
.rd-svc-sub { grid-column: 1; color: var(--rd-muted); font-size: 1rem; }
.rd-svc-btn > .rd-icon { grid-column: 2; grid-row: 1 / 3; width: 1.5rem; height: 1.5rem; color: var(--rd-muted); transition: transform .35s var(--rd-ease), color .25s; }
.rd-svc-item.is-active .rd-svc-btn h3, .rd-svc-btn:hover h3 { color: var(--rd-brand); }
.rd-svc-item.is-active .rd-svc-btn > .rd-icon { color: var(--rd-accent); transform: translateX(4px); }
.rd-svc-detail { grid-column: 2; grid-row: 1 / -1; align-self: start; position: sticky; top: calc(var(--rd-header-h) + 32px); opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity .35s var(--rd-ease), transform .45s var(--rd-ease), visibility 0s .45s; }
.rd-svc-item.is-active .rd-svc-detail { opacity: 1; visibility: visible; transform: none; transition: opacity .35s var(--rd-ease), transform .45s var(--rd-ease); }
.rd-svc-img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--rd-r-lg); filter: saturate(.7) contrast(1.05); background: var(--rd-tint); }
.rd-svc-detail p { margin-top: 22px; max-width: 52ch; color: var(--rd-muted); }
.rd-svc-detail .rd-link-arrow { margin-top: 14px; }
.rd-notice { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px 40px; align-items: center; margin-top: 56px; padding: clamp(28px, 4vw, 40px); border-radius: var(--rd-r-lg); background: var(--rd-tint); }
.rd-notice h3 { font-size: 1.5rem; font-weight: 750; }
.rd-notice p { margin-top: 8px; max-width: 60ch; color: var(--rd-muted); }
.rd-section--compact .rd-notice { margin-top: 0; }

/* Auftraggeber */
.rd-clients { background: var(--rd-surface); }
.rd-sectors { display: grid; grid-template-columns: 1fr 1fr; column-gap: 32px; margin: 0; padding: 0; list-style: none; }
.rd-sectors li { margin: 0; padding: 22px 0; border-top: 1px solid var(--rd-line); font-size: clamp(1.25rem, 2vw, 1.625rem); font-weight: 650; font-stretch: 106%; letter-spacing: -.015em; }
.rd-sectors li:nth-last-child(-n + 2) { border-bottom: 1px solid var(--rd-line); }

/* Ablauf */
.rd-process { background: var(--rd-bg); }
.rd-steps { display: grid; grid-template-columns: repeat(var(--rd-steps, 4), 1fr); gap: 32px; margin: 56px 0 0; padding: 0; list-style: none; counter-reset: rd-step; }
.rd-steps li { position: relative; margin: 0; padding-top: 26px; border-top: 1px solid var(--rd-line); counter-increment: rd-step; }
.rd-steps li::before { content: ""; position: absolute; top: -1px; left: 0; width: 56px; height: 2px; background: var(--rd-accent); }
.rd-steps li::after { content: counter(rd-step, decimal-leading-zero); position: absolute; top: -30px; left: 0; font-size: .875rem; font-weight: 700; color: var(--rd-brand); font-variant-numeric: tabular-nums; }
.rd-steps h3 { font-size: 1.25rem; font-weight: 750; }
.rd-steps p { margin-top: 10px; color: var(--rd-muted); font-size: 1rem; }

/* Zitat mit Faktenbox */
.rd-about { background: var(--rd-surface); }
.rd-about-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 48px clamp(32px, 6vw, 96px); align-items: center; }
.rd-quote { margin: 0; padding: 0; border: 0; font-size: clamp(2.25rem, 4.4vw, 3.75rem); font-weight: 800; font-stretch: 112%; font-style: normal; line-height: 1.04; letter-spacing: -.03em; color: var(--rd-brand); }
.rd-about-text { margin-top: 28px !important; max-width: 56ch; color: var(--rd-muted); font-size: 1.125rem; }
.rd-proof { padding: clamp(28px, 4vw, 44px); border-radius: var(--rd-r-lg); background: var(--rd-navy); color: var(--rd-on-navy); }
.rd-proof h3 { font-size: 1.125rem; font-weight: 700; color: #fff; }
.rd-proof ul { margin: 18px 0 0; padding: 0; list-style: none; }
.rd-proof li { display: flex; gap: 14px; align-items: baseline; margin: 0; padding: 14px 0; border-top: 1px solid var(--rd-line-navy); }
.rd-proof li .rd-icon { color: var(--rd-accent-light); transform: translateY(2px); }

/* Standorte */
.rd-locations { background: var(--rd-bg); }
.rd-offices { margin-top: 40px; }
.rd-office { padding: 24px 0; border-top: 1px solid var(--rd-line); }
.rd-office:last-child { border-bottom: 1px solid var(--rd-line); }
.rd-office h3 { display: flex; align-items: baseline; gap: 12px; font-size: 1.375rem; font-weight: 750; }
.rd-office h3 span { font-size: .875rem; font-weight: 600; font-stretch: 100%; letter-spacing: 0; color: var(--rd-muted); }
.rd-office address { margin-top: 6px; font-style: normal; color: var(--rd-muted); }
.rd-office a { display: inline-flex; align-items: center; gap: 8px; margin-top: 10px; font-weight: 650; color: var(--rd-brand); text-decoration: none; font-variant-numeric: tabular-nums; }
.rd-office a:hover { text-decoration: underline; }
.rd-map { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--rd-r-lg); background: var(--rd-tint); border: 1px solid var(--rd-line); }
.rd-map-consent { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 14px; padding: 32px; text-align: center; }
.rd-map-consent > .rd-icon { width: 2.25rem; height: 2.25rem; color: var(--rd-brand); }
.rd-map-consent p { max-width: 40ch; color: var(--rd-muted); font-size: .9375rem; }
.rd-map iframe { display: block; width: 100%; height: 100%; border: 0; }

/* Kontakt */
.rd-contact { background: var(--rd-surface); }
.rd-hotline-card { display: block; margin-top: 36px; padding: 28px; border-radius: var(--rd-r-lg); background: var(--rd-navy); color: var(--rd-on-navy); text-decoration: none; transition: background-color .25s; }
.rd-hotline-card:hover { background: var(--rd-navy-2); }
.rd-hotline-card span { display: flex; align-items: center; gap: 8px; color: var(--rd-on-navy-muted); font-size: .9375rem; }
.rd-hotline-card strong { display: block; margin-top: 8px; font-size: clamp(1.75rem, 3vw, 2.25rem); font-weight: 800; font-stretch: 110%; letter-spacing: -.02em; font-variant-numeric: tabular-nums; color: #fff; }
.rd-trust { display: grid; gap: 10px; margin: 24px 0 0; padding: 0; list-style: none; color: var(--rd-muted); font-size: .9375rem; }
.rd-trust li { display: flex; align-items: center; gap: 10px; margin: 0; }
.rd-trust .rd-icon { color: var(--rd-brand); }
.rd-form-wrap { padding: clamp(24px, 4vw, 40px); border-radius: var(--rd-r-lg); background: var(--rd-bg); border: 1px solid var(--rd-line); }
/* Kontaktformular (Contact Form 7) */
.rd-cf { display: grid; gap: 20px; }
.rd-cf-switch { margin: 0; padding: 0; border: 0; }
.rd-cf-switch legend { margin-bottom: 10px; padding: 0; font-size: .9375rem; font-weight: 650; color: var(--rd-ink); }
.rd-cf-switch .wpcf7-radio { display: grid; grid-template-columns: 1fr 1fr; gap: 0; padding: 4px; border-radius: calc(var(--rd-r-sm) + 4px); background: var(--rd-tint); }
.rd-cf-switch .wpcf7-form-control-wrap { display: block; }
.rd-cf-switch .wpcf7-list-item { display: block; margin: 0; }
.rd-cf-switch .wpcf7-list-item label { width: 100%; display: flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 12px; border-radius: var(--rd-r-sm); font-weight: 650; color: var(--rd-muted); text-align: center; cursor: pointer; transition: background-color .2s, color .2s, box-shadow .2s; }
.rd-cf-switch .wpcf7-list-item label.is-checked, .rd-cf-switch .wpcf7-list-item label:has(input:checked) { background: var(--rd-surface); color: var(--rd-brand); box-shadow: 0 2px 8px -4px rgba(0, 0, 0, .25); }
.rd-cf-switch .wpcf7-list-item label:has(input:focus-visible) { outline: 2px solid var(--rd-accent); outline-offset: 2px; }
.rd-cf-switch input[type="radio"] { position: absolute; opacity: 0; pointer-events: none; }
.rd-cf-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 20px; }
.rd-cf-field { display: grid; gap: 8px; align-content: start; }
.rd-cf-full, form[data-rd-mode="privat"] .rd-cf-name { grid-column: 1 / -1; }
.rd-cf-field[hidden] { display: none; }
.rd-cf-hint { grid-column: 1 / -1; margin: -6px 0 0 !important; font-size: .875rem; color: var(--rd-muted); }
.rd-cf-opt { font-weight: 400; color: var(--rd-muted); }
.rd-form-wrap label, .rd-cf-label { font-weight: 650; font-size: .9375rem; color: var(--rd-ink); }
.rd-form-wrap .wpcf7-form-control-wrap { display: block; }
.rd-form-wrap input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]),
.rd-form-wrap select, .rd-form-wrap textarea { width: 100%; min-height: 50px; padding: 12px 14px; border-radius: var(--rd-r-sm); border: 1px solid #b9bfd3; background: var(--rd-surface); color: var(--rd-ink); font: inherit; font-size: 1rem; box-shadow: none; }
.rd-form-wrap textarea { min-height: 140px; resize: vertical; }
.rd-form-wrap input:focus, .rd-form-wrap select:focus, .rd-form-wrap textarea:focus { outline: none; border-color: var(--rd-accent); box-shadow: 0 0 0 3px rgba(47, 67, 232, .2); }
.rd-form-wrap .wpcf7-radio:not(.rd-cf-switch .wpcf7-radio) { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.rd-form-wrap .wpcf7-list-item { margin: 0; }
.rd-form-wrap .wpcf7-list-item label { display: inline-flex; align-items: flex-start; gap: 10px; font-weight: 400; cursor: pointer; }
.rd-form-wrap input[type="checkbox"], .rd-form-wrap input[type="radio"] { width: 20px; height: 20px; margin: 1px 0 0; flex: none; }
.rd-cf-consent .wpcf7-list-item-label { font-size: .9375rem; color: var(--rd-muted); }
.rd-cf-consent a { color: var(--rd-brand); }
.rd-cf-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.rd-cf-actions small { margin-right: auto; font-size: .875rem; color: var(--rd-muted); }
.rd-form-wrap .wpcf7 form.init .wpcf7-response-output, .rd-form-wrap .wpcf7 form.submitting .wpcf7-response-output, .rd-form-wrap .wpcf7 form.resetting .wpcf7-response-output { display: none; }
.rd-form-wrap input[type="submit"], .rd-form-wrap button[type="submit"] { min-height: 52px; padding: 0 28px; border: 0; border-radius: var(--rd-r-sm); background: var(--rd-accent); color: #fff; font: inherit; font-weight: 650; cursor: pointer; transition: background-color .2s; }
.rd-form-wrap input[type="submit"]:hover, .rd-form-wrap button[type="submit"]:hover { background: var(--rd-accent-hover); }
.rd-form-wrap input[type="submit"]:disabled { opacity: .6; cursor: progress; }
.rd-form-wrap .wpcf7-spinner { margin: 0 0 0 12px; vertical-align: middle; }
.rd-form-wrap .wpcf7-not-valid { border-color: #b4232f !important; }
.rd-form-wrap .wpcf7-not-valid-tip { display: block; margin-top: 6px; font-size: .875rem; font-weight: 600; color: #b4232f; }
.rd-form-wrap .wpcf7 form .wpcf7-response-output { margin: 20px 0 0; padding: 14px 16px; border: 0; border-radius: var(--rd-r-sm); background: var(--rd-tint); color: var(--rd-ink); font-size: .9375rem; }
.rd-form-wrap .wpcf7 form.sent .wpcf7-response-output { background: #e3f4ea; color: #17734a; }
.rd-form-wrap .wpcf7 form.invalid .wpcf7-response-output, .rd-form-wrap .wpcf7 form.unaccepted .wpcf7-response-output, .rd-form-wrap .wpcf7 form.failed .wpcf7-response-output, .rd-form-wrap .wpcf7 form.spam .wpcf7-response-output { background: #fbe7e9; color: #b4232f; }
.rd-cf-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
@media (prefers-color-scheme: dark) {
	.rd-form-wrap .wpcf7-not-valid-tip { color: #ff8a93; }
	.rd-form-wrap .wpcf7 form.sent .wpcf7-response-output { background: #0f3324; color: #6fd3a3; }
	.rd-form-wrap .wpcf7 form.invalid .wpcf7-response-output, .rd-form-wrap .wpcf7 form.unaccepted .wpcf7-response-output { background: #3a1218; color: #ff8a93; }
}

/* ==========================================================================
   Bausteine für Unterseiten
   ========================================================================== */
.rd-bg-light { background: var(--rd-bg); }
.rd-bg-white { background: var(--rd-surface); }
.rd-h2--sm { font-size: clamp(1.75rem, 2.8vw, 2.375rem); max-width: 26ch; }

/* Seitenkopf */
.rd-pagehead { padding-block: clamp(48px, 6vw, 80px); background: var(--rd-navy); color: var(--rd-on-navy); }
.rd-pagehead-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 40px clamp(32px, 5vw, 72px); align-items: center; }
.rd-pagehead-grid--text { grid-template-columns: minmax(0, 1fr); max-width: 900px; }
.rd-pagehead h1 { margin: 18px 0 0; font-size: clamp(2.25rem, 4.2vw, 3.5rem); font-weight: 800; font-stretch: 110%; line-height: 1.05; letter-spacing: -.028em; color: #fff; }
.rd-pagehead .rd-lead { animation: none; }
.rd-pagehead .rd-hero-actions { animation: none; }
.rd-crumbs { display: flex; flex-wrap: wrap; gap: 8px; font-size: .875rem; color: var(--rd-on-navy-muted); }
.rd-crumbs a { color: var(--rd-on-navy-muted); text-decoration: none; }
.rd-crumbs a:hover { color: #fff; text-decoration: underline; }
.rd-crumbs [aria-current] { color: var(--rd-on-navy); }
.rd-pagehead-img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--rd-r-lg); filter: saturate(.75) contrast(1.05); }

/* Textabschnitt */
.rd-textblock-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 40px clamp(32px, 5vw, 80px); align-items: start; }
.rd-textblock-grid--left { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.rd-textblock-grid--left .rd-textblock-media { order: -1; }
.rd-textblock-img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--rd-r-lg); filter: saturate(.75) contrast(1.05); }
.rd-prose { max-width: 72ch; }
.rd-prose .rd-h2 { margin-bottom: 24px; }
.rd-prose p, .rd-prose ul, .rd-prose ol { margin: 0 0 1.1em; color: var(--rd-muted); font-size: 1.0625rem; line-height: 1.7; }
.rd-prose h3 { margin: 1.6em 0 .5em; font-size: 1.3125rem; font-weight: 750; color: var(--rd-ink); }
.rd-prose li { margin: .25em 0; }
.rd-prose a { color: var(--rd-brand); }
.rd-prose > :last-child { margin-bottom: 0; }

/* Leistungsumfang */
.rd-features-list { margin: 40px 0 0; padding: 0; list-style: none; display: grid; grid-template-columns: 1fr 1fr; column-gap: clamp(32px, 5vw, 80px); }
.rd-features-list li { margin: 0; }
.rd-features-list--check li { display: flex; align-items: center; gap: 14px; padding: 18px 0; border-top: 1px solid var(--rd-line); font-size: 1.125rem; font-weight: 650; }
.rd-features-list--check li:nth-last-child(-n + 2) { border-bottom: 1px solid var(--rd-line); }
.rd-features-list--check .rd-icon { flex: none; width: 26px; height: 26px; padding: 5px; border-radius: 50%; background: var(--rd-brand-solid); color: #fff; }
.rd-features-list--detail { row-gap: 8px; }
.rd-features-list--detail li { padding: 26px 0 22px; border-top: 1px solid var(--rd-line); }
.rd-features-list--detail h3 { margin: 0 0 8px; font-size: 1.25rem; font-weight: 750; }
.rd-features-list--detail p { margin: 0; color: var(--rd-muted); font-size: 1rem; line-height: 1.65; }

/* Normale Textseiten (Impressum, Datenschutz) */
.rd-pagehead--plain { padding-block: clamp(40px, 5vw, 64px); }
.rd-prose--page h2 { margin: 1.8em 0 .6em; font-size: clamp(1.375rem, 2.2vw, 1.75rem); font-weight: 750; color: var(--rd-ink); }
.rd-prose--page h3, .rd-prose--page h4 { margin: 1.5em 0 .5em; font-size: 1.1875rem; font-weight: 700; color: var(--rd-ink); }
.rd-prose--page > :first-child, .rd-prose--page .wpb_wrapper > :first-child { margin-top: 0; }
.rd-prose--page .vc_row { margin: 0; }
.rd-prose--page .vc_column-inner { padding: 0; }
.rd-prose--page img { border-radius: var(--rd-r-sm); }

/* Kontaktband */
.rd-ctaband { padding-block: clamp(56px, 7vw, 88px); background: var(--rd-navy); color: var(--rd-on-navy); }
.rd-ctaband-grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 32px 48px; align-items: center; }
.rd-ctaband h2 { color: #fff; }
.rd-ctaband p { margin-top: 12px !important; max-width: 56ch; color: var(--rd-on-navy-muted); font-size: 1.0625rem; }
.rd-ctaband-actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* ---------- Footer ---------- */
.rd-footer { padding: 72px 0 32px; background: var(--rd-navy); color: var(--rd-on-navy-muted); font-size: .9375rem; }
.rd-foot-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 48px; border-bottom: 1px solid var(--rd-line-navy); }
.rd-foot-brand p { margin: 20px 0 0; max-width: 36ch; }
.rd-foot-title { margin: 0 0 14px; font-size: .9375rem; font-weight: 700; font-stretch: 100%; letter-spacing: 0; color: var(--rd-on-navy); }
.rd-foot-list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.rd-foot-list a { text-decoration: none; }
.rd-foot-list a:hover { color: var(--rd-on-navy); text-decoration: underline; }
.rd-legal { padding-top: 24px; font-size: .875rem; }

.rd-mobile-bar { display: none; }

/* ---------- Responsive ---------- */
@media (max-width: 1180px) {
	.rd-hotline { display: none; }
}
@media (max-width: 1023px) {
	.rd-nav, .rd-header-cta { display: none; }
	.rd-burger { display: grid; }
	.rd-foot-grid { grid-template-columns: 1fr 1fr; }
	.rd-split, .rd-about-grid, .rd-pagehead-grid, .rd-textblock-grid, .rd-textblock-grid--left, .rd-ctaband-grid { grid-template-columns: minmax(0, 1fr); }
	.rd-textblock-grid--left .rd-textblock-media { order: 0; }
	.rd-svc { display: block; margin-top: 40px; }
	.rd-svc-item { display: block; }
	.rd-svc-detail { position: static; display: none; opacity: 1; visibility: visible; transform: none; padding-bottom: 28px; }
	.rd-svc-item.is-active .rd-svc-detail { display: block; }
	.rd-svc-item:last-child .rd-svc-btn { border-bottom: 0; }
	.rd-svc-item:last-child { border-bottom: 1px solid var(--rd-line); }
	.rd-steps { grid-template-columns: 1fr 1fr; row-gap: 56px; }
}
@media (max-width: 782px) {
	.admin-bar .rd-header { top: 46px; }
}
@media (max-width: 760px) {
	.rd { --rd-header-h: 68px; padding-bottom: 76px; }
	.rd-logo-svg { height: 38px; }
	.rd-foot-grid { grid-template-columns: 1fr; }
	.rd-hero-photo { opacity: .55; }
	.rd-hero::after { background: linear-gradient(0deg, var(--rd-navy) 0%, rgba(5, 10, 46, .78) 45%, rgba(5, 10, 46, .6) 100%); }
	.rd-hero-actions .rd-btn { flex: 1 1 100%; }
	.rd-facts { grid-template-columns: 1fr 1fr; }
	.rd-facts div { padding: 22px 16px 22px 0; }
	.rd-facts div + div { padding-left: 0; border-left: 0; }
	.rd-facts div:nth-child(even) { padding-left: 18px; border-left: 1px solid var(--rd-line-navy); }
	.rd-facts div:nth-child(n + 3) { border-top: 1px solid var(--rd-line-navy); }
	.rd-notice { grid-template-columns: 1fr; }
	.rd-sectors { grid-template-columns: 1fr; }
	.rd-sectors li:nth-last-child(2) { border-bottom: 0; }
	.rd-steps { grid-template-columns: 1fr; }
	.rd-cf-grid { grid-template-columns: 1fr; }
	.rd-features-list { grid-template-columns: minmax(0, 1fr); }
	.rd-pagehead h1 { font-size: clamp(1.875rem, 8vw, 2.25rem); }
	.rd-features-list--check li:nth-last-child(2) { border-bottom: 0; }
	.rd-ctaband-actions .rd-btn { flex: 1 1 100%; }
	.rd-cf-actions input[type="submit"] { width: 100%; }
	.rd-mobile-bar { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: var(--rd-surface); border-top: 1px solid var(--rd-line); box-shadow: 0 -8px 24px -16px rgba(0, 0, 0, .22); }
	.rd-mobile-bar .rd-btn { min-height: 48px; padding: 0 12px; }
}
@media (max-width: 600px) {
	.admin-bar .rd-header { top: 0; }
}
@media (prefers-reduced-motion: reduce) {
	html:has(body.rd) { scroll-behavior: auto; }
	.rd *, .rd *::before, .rd *::after { animation: none !important; transition-duration: .01ms !important; }
}
