/* ==========================================================================
   CWD-Solution – Theme-Styles
   Basis: freigegebenes Relaunch-Mockup (September 2026), Werte gemessen an
   der bisherigen Website (Blau #006C9D, Hellblau #E9F5F9, Lizenz #D3D3D3).
   ========================================================================== */

:root {
	--blue: #006C9D;
	--blue-dark: #00587F;
	--blue-ink: #004563;
	--blue-50: #E9F5F9;
	--blue-100: #D3E9F1;
	--ink: #333333;
	--ink-strong: #1F2124;
	--nav-ink: #2D2D2D;
	--muted: #646E75;
	--line: #D9E5EA;
	--lizenz: #D3D3D3;
	--nav-line: #3F444B;
	--red: #C0303B;
	--red-50: #FBEBEC;
	--green: #1D7A52;
	--amber: #A06200;
	--card-shadow: 0 2px 16px rgba(0, 45, 70, .12);
	--font: "Proxima", "Proxima Nova", "proxima-nova", "Segoe UI", system-ui, -apple-system, sans-serif;
	--gutter: max(20px, calc((100% - 1100px) / 2));
	--hdr-h: 92px;
	color-scheme: light;
}

/* ---------- Grundlagen ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }
body { margin: 0; background: #fff; color: var(--ink); font-family: var(--font); font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
body.modal-open { overflow: hidden; }
.wp-site-blocks { padding: 0; }
.wp-site-blocks > * { margin-block: 0; }
img { max-width: 100%; height: auto; }
a { color: var(--blue); text-decoration: none; }
a:hover { text-decoration: underline; }
h1, h2, h3, h4 { font-family: var(--font); text-wrap: balance; margin: 0; line-height: 1.2; }
p { margin: 0 0 14px; }
button, input, select, textarea { font-family: inherit; font-size: inherit; }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
[hidden] { display: none !important; }
[id] { scroll-margin-top: calc(var(--hdr-h) + 16px); }
.wrap { max-width: 1140px; margin: 0 auto; padding-inline: 20px; }
.wrap-wide { max-width: 1360px; margin: 0 auto; padding-inline: 24px; }
.wp-block-template-part:has(> .hdr), .wp-block-template-part:has(> .topbar) { display: contents; }

/* Lose Blöcke direkt im Seiteninhalt bekommen einen Rand */
.cwd-page > :where(p, h1, h2, h3, h4, ul, ol, .wp-block-buttons, .wp-block-image, .wp-block-table, .wp-block-columns, .wp-block-details, .wp-block-quote, .wp-block-embed, .wp-block-separator) {
	max-width: 1140px; margin-inline: auto; padding-inline: 20px;
}
.cwd-page > p:first-child, .cwd-page > h2:first-child { margin-top: 40px; }

/* ---------- Topbar ---------- */
.topbar { background: var(--blue-50); font-size: 13px; color: var(--ink); }
.topbar .wrap-wide { display: flex; justify-content: flex-end; gap: 22px; padding-block: 7px; flex-wrap: wrap; }
.topbar a { color: var(--ink); }
.topbar .tb-item { display: inline-flex; align-items: center; gap: 6px; }
.topbar .tb-emergency { color: var(--red); font-weight: 700; }
.topbar .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--red); display: inline-block; }

/* ---------- Header ---------- */
.hdr { background: #fff; position: sticky; top: env(safe-area-inset-top, 0px); z-index: 40; box-shadow: 0 1px 0 rgba(0, 0, 0, .06); }
.admin-bar .hdr { top: 32px; }
@media (max-width: 782px) { .admin-bar .hdr { top: 0; } }
.hdr .wrap-wide { display: flex; align-items: center; gap: 20px; min-height: var(--hdr-h); position: relative; }
.logo { display: inline-flex; align-items: center; flex: 0 0 auto; }
.logo img { height: 54px; width: auto; }
/* Das bestehende Logo ist eine quadratische Datei, das Signet liegt im mittleren Drittel → mittig zuschneiden */
.logo.is-square { display: block; position: relative; width: 190px; height: 64px; overflow: hidden; }
.logo.is-square img { position: absolute; left: 0; top: 50%; width: 190px; height: 190px; max-width: none; transform: translateY(-50%); }
.logo-text { font-weight: 800; font-size: 22px; color: var(--ink-strong); }
.nav { display: flex; align-items: stretch; margin-left: auto; align-self: stretch; }
.nav-item { position: relative; display: flex; align-items: center; }
.nav-link { display: flex; align-items: center; gap: 7px; height: 100%; padding: 0 12px; color: var(--nav-ink); font-size: 14px; position: relative; white-space: nowrap; }
.nav-link:hover { text-decoration: none; }
.nav-link::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: 0; height: 3px; background: var(--nav-line); transform: scaleX(0); transition: transform .2s; }
.nav-item:hover > .nav-link::after, .nav-item.active > .nav-link::after { transform: scaleX(1); }
.caret { width: 0; height: 0; border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 5px solid var(--nav-ink); }
.nav-lizenz { background: var(--lizenz); margin-left: 6px; align-self: center; height: 46px; }
.nav-lizenz .nav-link { padding: 0 20px; }
.nav-lizenz .nav-link::after { left: 20px; right: 20px; }
.dropdown { position: absolute; top: 100%; left: 0; min-width: 250px; background: #fff; box-shadow: 0 10px 24px rgba(0, 30, 50, .14); padding: 8px 0; opacity: 0; visibility: hidden; transform: translateY(6px); transition: all .18s; z-index: 50; border-top: 3px solid var(--blue); }
.nav-item:hover .dropdown, .nav-item:focus-within .dropdown { opacity: 1; visibility: visible; transform: none; }
.dropdown a { display: block; padding: 9px 20px; color: var(--nav-ink); font-size: 14px; }
.dropdown a:hover { background: var(--blue-50); color: var(--blue); text-decoration: none; }
.dropdown .dd-label { display: block; padding: 10px 20px 4px; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); font-weight: 700; }
.dropdown .ext::after { content: " ↗"; color: var(--muted); }
/* Mega-Menü (Hauptpunkt mit CSS-Klasse „mega“) */
.nav-item.mega { position: static; }
.dropdown.mega { left: 0; right: 0; display: grid; grid-template-columns: minmax(190px, 230px) 1fr; gap: 28px; padding: 26px 30px 24px; }
.mega-intro { border-right: 1px solid var(--line); padding-right: 24px; }
.mega-intro strong { display: block; font-size: 20px; color: var(--blue); font-weight: 700; margin-bottom: 8px; }
.mega-intro p { font-size: 13.5px; color: var(--muted); line-height: 1.55; margin: 0 0 14px; }
.dropdown .mega-intro .mega-all { display: inline; padding: 0; font-weight: 700; color: var(--blue); font-size: 13.5px; }
.dropdown .mega-intro .mega-all::after { content: " →"; }
.dropdown .mega-intro .mega-all:hover { background: none; text-decoration: underline; }
.mega-cols { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 8px 22px; align-content: start; }
.dropdown.mega .mega-col a.nav-notfall { color: var(--red); font-weight: 700; }
.dropdown.mega .mega-col a.nav-notfall::before { color: var(--red); }
.mega-col { display: flex; flex-direction: column; min-width: 0; }
.dropdown.mega .dd-label { padding: 0 0 8px; margin-bottom: 4px; border-bottom: 1px solid var(--line); }
.dropdown.mega .mega-col a { padding: 6px 0 6px 18px; position: relative; font-size: 13.5px; line-height: 1.35; }
.dropdown.mega .mega-col a::before { content: "→"; position: absolute; left: 0; top: 6px; color: var(--blue); font-size: 12px; }
.dropdown.mega .mega-col a:hover { background: none; color: var(--blue); text-decoration: underline; }
.hdr-kontakt { margin-left: 14px; }
.nav-kontakt-mobile { display: none !important; }
.burger { display: none; margin-left: auto; background: #fff; border: 1px solid var(--line); border-radius: 3px; width: 46px; height: 42px; align-items: center; justify-content: center; cursor: pointer; }
.burger span, .burger span::before, .burger span::after { display: block; width: 20px; height: 2px; background: var(--nav-ink); position: relative; }
.burger span::before, .burger span::after { content: ""; position: absolute; left: 0; }
.burger span::before { top: -6px; }
.burger span::after { top: 6px; }

@media (max-width: 1319px) {
	.burger { display: flex; }
	.hdr .hdr-kontakt { display: none; }
	.nav { display: none; position: absolute; top: 100%; left: 0; right: 0; background: #fff; flex-direction: column; align-items: stretch; padding: 8px 0 16px; box-shadow: 0 12px 24px rgba(0, 30, 50, .14); max-height: calc(100vh - 140px); overflow: auto; }
	.hdr.open .nav { display: flex; }
	.nav-item { flex-direction: column; align-items: stretch; }
	.nav-link { padding: 12px 20px; height: auto; font-size: 15px; }
	.nav-link::after { display: none; }
	.nav-item.active > .nav-link { color: var(--blue); font-weight: 700; }
	.dropdown { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border-top: 0; padding: 0 0 6px 16px; min-width: 0; }
	.dropdown a { padding: 7px 20px; font-size: 14px; color: var(--muted); }
	.dropdown.mega { display: block; padding: 0 0 6px 16px; }
	.mega-intro { display: none; }
	.mega-cols { display: block; }
	.dropdown.mega .dd-label { border-bottom: 0; padding: 10px 20px 2px; margin: 0; }
	.dropdown.mega .mega-col a { padding: 7px 20px; }
	.dropdown.mega .mega-col a::before { display: none; }
	.nav-lizenz { margin: 8px 20px 0; height: auto; align-self: stretch; }
	.hdr .nav .nav-kontakt-mobile { display: block !important; margin: 12px 20px 0; text-align: center; }
}
@media (max-width: 600px) {
	:root { --hdr-h: 76px; }
	.logo img { height: 44px; }
	.logo.is-square { width: 150px; height: 52px; }
	.logo.is-square img { width: 150px; height: 150px; }
}

/* ---------- Buttons ---------- */
.btn, .wp-block-button__link, .wp-element-button, .wpcf7-submit {
	display: inline-block; background: var(--blue); color: var(--blue-50); border: 2px solid var(--blue); border-radius: 3px;
	padding: 11px 26px; font-size: 15px; line-height: 1.3; font-weight: 400; cursor: pointer; text-align: center; text-decoration: none;
	transition: background .15s, border-color .15s, color .15s; font-family: inherit;
}
.btn:hover, .wp-block-button__link:hover, .wp-element-button:hover, .wpcf7-submit:hover { background: var(--blue-dark); border-color: var(--blue-dark); color: #fff; text-decoration: none; }
.btn-ghost, .is-style-ghost .wp-block-button__link, .is-style-outline .wp-block-button__link { background: #fff; color: var(--blue); border-color: var(--blue); }
.btn-ghost:hover, .is-style-ghost .wp-block-button__link:hover, .is-style-outline .wp-block-button__link:hover { background: var(--blue-50); color: var(--blue-ink); border-color: var(--blue); }
.btn-light, .is-style-light .wp-block-button__link { background: var(--blue-50); border-color: var(--blue-50); color: var(--blue-ink); font-weight: 600; }
.btn-light:hover, .is-style-light .wp-block-button__link:hover { background: #fff; border-color: #fff; color: var(--blue-ink); }
.btn-red, .is-style-red .wp-block-button__link { background: var(--red); border-color: var(--red); color: #fff; font-weight: 700; }
.btn-red:hover, .is-style-red .wp-block-button__link:hover { background: #A2262F; border-color: #A2262F; color: #fff; }
.is-style-arrow .wp-block-button__link, .link-arrow { background: none; border: 0; padding: 0; color: var(--blue); font-weight: 600; }
.is-style-arrow .wp-block-button__link:hover { background: none; color: var(--blue-ink); text-decoration: underline; }
.is-style-arrow .wp-block-button__link::after, .link-arrow::after { content: " →"; }
.btn-sm { padding: 8px 18px; font-size: 14px; }
.btn-block, .wpcf7-submit.btn-block { display: block; width: 100%; }
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin: 0; }
.wp-block-buttons > .wp-block-button { margin: 0; }
.btn-row { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }

/* ---------- Hero / Slider ---------- */
.hero { position: relative; overflow: hidden; background: #EEF3F6; }
.slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .7s ease; }
.slide.active { position: relative; opacity: 1; visibility: visible; }
.slide-bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.slide-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(255, 255, 255, .72) 0%, rgba(255, 255, 255, .35) 55%, rgba(255, 255, 255, 0) 100%); }
.slide.dark .slide-bg::after { background: linear-gradient(90deg, rgba(10, 20, 45, .72) 0%, rgba(10, 20, 45, .45) 60%, rgba(10, 20, 45, .2) 100%); }
.slide-inner { position: relative; display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; min-height: 520px; }
.slide-text { align-self: center; max-width: 590px; padding-block: 70px 90px; }
.slide-kicker { font-size: 14px; font-weight: 700; color: var(--blue); margin-bottom: 10px; letter-spacing: .02em; }
.slide .slide-text h1, .slide .slide-text h2 { font-size: clamp(30px, 4vw, 44px); line-height: 1.15; font-weight: 700; color: var(--ink-strong); margin-bottom: 18px; }
.slide .slide-text p { font-size: 16.5px; color: var(--ink); max-width: 540px; margin-bottom: 26px; }
.slide.dark .slide-kicker { color: #9FD2EA; }
.slide.dark .slide-text h1, .slide.dark .slide-text h2 { color: #fff; }
.slide.dark .slide-text p { color: #E3EDF2; }
.slide-media { flex: 0 1 440px; max-width: 440px; align-self: flex-end; display: flex; justify-content: center; }
.slide-media img { max-height: 470px; width: auto; object-fit: contain; }
.slide-media.box img { max-height: 360px; margin-bottom: 70px; filter: drop-shadow(0 18px 30px rgba(0, 0, 0, .18)); }
.slider-arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; background: none; border: 0; cursor: pointer; padding: 14px; color: #4b5760; }
.slider-arrow svg { width: 22px; height: 22px; display: block; }
.slider-arrow.prev { left: 8px; }
.slider-arrow.next { right: 8px; }
.hero.dark-active .slider-arrow { color: #fff; }
.slider-dots { position: absolute; left: 0; right: 0; bottom: 62px; display: flex; justify-content: center; gap: 10px; z-index: 3; }
.slider-dots button { width: 10px; height: 10px; border-radius: 50%; border: 0; background: rgba(0, 0, 0, .25); cursor: pointer; padding: 0; }
.slider-dots button[aria-current="true"] { background: var(--blue); }
.hero.dark-active .slider-dots button { background: rgba(255, 255, 255, .45); }
.hero.dark-active .slider-dots button[aria-current="true"] { background: #fff; }
.wave { display: block; width: 100%; height: 70px; }
.hero .wave { position: absolute; left: 0; right: 0; bottom: -1px; z-index: 2; pointer-events: none; }
.page-hero .slide-inner { min-height: 430px; }
.page-hero .slide-text { padding-block: 56px 84px; }
.page-hero .slide .slide-text h1 { color: var(--blue); }
.page-hero .slide.dark .slide-text h1 { color: #fff; }
.slide .wp-block-buttons { margin-top: 4px; }
.slide.dark .is-style-arrow .wp-block-button__link { color: #fff; }
@media (max-width: 800px) {
	.slide-inner { flex-direction: column; align-items: flex-start; min-height: 0; }
	.page-hero .slide-inner { min-height: 0; }
	.slide-text { padding-block: 48px 10px; }
	.page-hero .slide-text { padding-block: 40px 10px; }
	.slide-media { flex: 0 0 auto; align-self: center; max-width: 320px; margin-bottom: 70px; }
	.slide-media img { max-height: 280px; }
	.slide-media.box img { margin-bottom: 0; }
	.slider-arrow { display: none; }
	.slider-dots { bottom: 52px; }
}

/* Brotkrümel */
.crumbs { font-size: 13px; color: var(--muted); margin-bottom: 14px; }
.crumbs a { color: var(--muted); }
.slide.dark .crumbs, .slide.dark .crumbs a { color: #BFD3DE; }

/* ---------- Abschnitte ---------- */
.cwd-sec, .is-style-section, .is-style-band { padding-block: 64px; padding-inline: var(--gutter); }
.cwd-sec.pt-0, .is-style-section.pt-0, .is-style-band.pt-0 { padding-top: 0; }
.cwd-sec.pt-s, .is-style-section.pt-s { padding-top: 10px; }
.cwd-sec.pb-0, .is-style-section.pb-0 { padding-bottom: 0; }
.is-style-band { background: var(--blue-50); position: relative; margin-block: 60px; }
.is-style-band::before, .is-style-band::after {
	content: ""; position: absolute; left: 0; right: 0; height: 60px; pointer-events: none;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0 40C240 10 480 60 720 36s500-34 720-8v32H0z' fill='%23E9F5F9'/%3E%3C/svg%3E") no-repeat;
	background-size: 100% 100%;
}
.is-style-band::before { top: -59px; }
.is-style-band::after { bottom: -59px; transform: scaleY(-1); }

.cwd-page h2, .cwd-sec h2, .is-style-section h2, .is-style-band h2, .legal h2 { font-size: clamp(26px, 3vw, 32px); font-weight: 700; color: var(--blue); margin-bottom: 16px; line-height: 1.2; }
.cwd-page h2 em, .cwd-sec h2 em, .kicker em, .pillar-body .is-style-kicker em {
	font-style: normal; display: inline-block; vertical-align: middle; font-size: 12px; font-weight: 700; line-height: 1.5;
	background: var(--blue); color: #fff; padding: 3px 10px; border-radius: 2px; margin-left: 8px; letter-spacing: .02em;
}
.is-style-lead, .lead { font-size: 17px; max-width: 780px; }
.intro { max-width: 780px; margin-bottom: 28px; }
.is-style-kicker, .kicker { font-size: 13px; font-weight: 700; color: var(--muted); letter-spacing: .08em; text-transform: uppercase; margin-bottom: 6px; }
.is-style-sub { font-weight: 700; color: var(--ink-strong); margin-bottom: 12px; }
.hint { font-size: 13.5px; color: var(--muted); max-width: 760px; }

.sec-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 22px; }
.sec-head h2 { margin: 0 !important; }

/* Spalten */
.cwd-page .wp-block-columns, .cwd-sec .wp-block-columns { gap: 48px; margin: 0; }
.wp-block-columns.are-vertically-aligned-center { align-items: center; }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.two-col.top { align-items: start; }
.two-col.aside { grid-template-columns: 1fr 340px; }
@media (max-width: 860px) { .two-col, .two-col.aside { grid-template-columns: 1fr; gap: 28px; } }
.grid-2, .grid-3 { display: grid; gap: 28px; }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 980px) { .grid-3 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 680px) { .grid-3, .grid-2 { grid-template-columns: 1fr; } }
.stack { display: flex; flex-direction: column; gap: 26px; }
.grid-2 + .wp-block-heading, .grid-3 + .wp-block-heading { margin-top: 34px !important; }

/* Fotos */
.wp-block-image { margin: 0 0 14px; }
.is-style-photo, .photo { position: relative; background: var(--blue-50); overflow: hidden; margin: 0; }
.is-style-photo img, .photo img { display: block; width: 100%; height: 100%; object-fit: cover; aspect-ratio: 16 / 10; }
.is-style-photo.ratio-4-3 img { aspect-ratio: 4 / 3; }
.is-style-photo.ratio-tall { height: 100%; }
.is-style-photo.ratio-tall img { aspect-ratio: auto; min-height: 420px; }

/* ---------- Karten ---------- */
.icard { background: #fff; box-shadow: var(--card-shadow); padding: 30px 30px 28px; display: flex; gap: 26px; align-items: flex-start; }
.icard.col { flex-direction: column; gap: 18px; }
.icard.compact { padding: 24px; }
.icircle { flex: 0 0 auto; width: 92px; height: 92px; border-radius: 50%; background: var(--blue-50); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.icircle.sm { width: 70px; height: 70px; }
.icircle svg { width: 40px; height: 40px; stroke: var(--ink-strong); fill: none; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.icircle.sm svg { width: 32px; height: 32px; }
.icircle.red { background: var(--red-50); }
.icircle img { width: 100%; height: 100%; object-fit: cover; }
.icircle > span { font-size: 30px; color: var(--blue); }
.icard h3 { font-size: 26px; font-weight: 400; color: var(--blue); line-height: 1.2; margin-bottom: 10px; }
.icard.col h3, .icard.is-sm h3, .icard.compact h3, .icard.trainer h3 { font-size: 21px; }
.icard p { font-size: 15px; margin-bottom: 10px; }
.icard p:last-child { margin-bottom: 0; }
.icard ul { margin: 4px 0 0; padding-left: 18px; font-size: 14.5px; }
.icard li { margin-bottom: 6px; }
.icard-body > :last-child { margin-bottom: 0; }
@media (max-width: 680px) { .icard { flex-direction: column; gap: 16px; } }

.tag, .is-style-tags li { display: inline-block; font-size: 12px; font-weight: 700; color: var(--blue); background: var(--blue-50); padding: 3px 10px; border-radius: 2px; margin: 0 6px 6px 0; line-height: 1.5; }
.tag.red { color: var(--red); background: var(--red-50); }
.tag.new { background: var(--blue); color: #fff; }
ul.is-style-tags { list-style: none; padding: 0; margin: 0 0 12px; display: flex; flex-wrap: wrap; }
.is-style-tags li { margin: 0 6px 6px 0; }
.is-style-tags li:has(strong) { background: var(--red-50); }
.is-style-tags li strong { color: var(--red); }

ul.is-style-checks, ul.checks { list-style: none; padding: 0; margin: 0 0 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px 20px; font-size: 14.5px; }
ul.is-style-checks.cols-1 { grid-template-columns: 1fr; font-size: 15.5px; }
.is-style-checks li, .checks li { padding-left: 24px; position: relative; margin: 0; }
.is-style-checks li::before, .checks li::before { content: ""; position: absolute; left: 2px; top: 6px; width: 11px; height: 6px; border-left: 2px solid var(--blue); border-bottom: 2px solid var(--blue); transform: rotate(-45deg); }
@media (max-width: 860px) { ul.is-style-checks, ul.checks { grid-template-columns: 1fr; } }

ul.is-style-trust { list-style: none; padding: 0; margin: 0; display: flex; gap: 14px; flex-wrap: wrap; }
.is-style-trust li { background: #fff; box-shadow: var(--card-shadow); padding: 12px 18px 12px 44px; font-size: 14px; font-weight: 700; color: var(--ink-strong); position: relative; }
.is-style-trust li::before { content: ""; position: absolute; left: 18px; top: 50%; width: 14px; height: 8px; margin-top: -6px; border-left: 2px solid var(--blue); border-bottom: 2px solid var(--blue); transform: rotate(-45deg); }

.is-style-callout, .callout { background: #fff; box-shadow: var(--card-shadow); padding: 26px 30px; display: flex; gap: 24px; align-items: center; flex-wrap: wrap; justify-content: space-between; }
.is-style-callout > p, .callout > p { margin: 0; flex: 1 1 360px; }
.is-style-callout .wp-block-buttons { flex: 0 0 auto; }
.callout.col { flex-direction: column; align-items: flex-start; }
.is-style-panel { background: #fff; box-shadow: var(--card-shadow); padding: 32px; }

/* Geschäftsbereiche (Startseite) */
.pillar-row { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; background: #fff; box-shadow: var(--card-shadow); margin-bottom: 34px; }
.pillar-row.rev .pillar-media { order: 2; }
.pillar-media { min-height: 300px; position: relative; background: var(--blue-50); display: flex; align-items: flex-end; justify-content: center; overflow: hidden; }
.pillar-media img { max-height: 300px; width: auto; object-fit: contain; }
.pillar-media.cover img { width: 100%; height: 100%; max-height: none; object-fit: cover; }
.pillar-media.dark { background: #1b2740; }
.pillar-body { padding: 40px 44px; }
.pillar-body h3 { font-size: 28px; color: var(--blue); font-weight: 700; margin-bottom: 12px; line-height: 1.2; }
.pillar-body p { font-size: 15.5px; }
@media (max-width: 860px) { .pillar-row { grid-template-columns: 1fr; } .pillar-row.rev .pillar-media { order: 0; } .pillar-body { padding: 28px 24px; } }

/* Produkte */
.prow { display: grid; grid-template-columns: 320px 1fr; gap: 40px; align-items: center; background: #fff; box-shadow: var(--card-shadow); padding: 34px 40px; margin-bottom: 28px; }
.prow.rev { grid-template-columns: 1fr 320px; }
.prow.rev .pbox { order: 2; }
.pbox { display: flex; align-items: center; justify-content: center; min-height: 240px; background: linear-gradient(180deg, #fff, #F2F7FA); }
.pbox img { max-height: 250px; width: auto; filter: drop-shadow(0 16px 24px rgba(0, 0, 0, .16)); }
.prow h3 { font-size: 28px; color: var(--blue); font-weight: 700; margin-bottom: 4px; }
.prow-body > :last-child { margin-bottom: 0; }
@media (max-width: 860px) { .prow, .prow.rev { grid-template-columns: 1fr; padding: 26px 22px; } .prow.rev .pbox { order: 0; } }

/* Lizenz-Produktboxen */
.boxes { display: flex; gap: 26px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 10px 4px 20px; }
.boxes > .wp-block-image { margin: 0; flex: 0 0 190px; text-align: center; scroll-snap-align: start; }
.boxes img { max-height: 200px; width: auto; margin: 0 auto; filter: drop-shadow(0 12px 18px rgba(0, 0, 0, .14)); }
.boxes figcaption { font-size: 15px; color: var(--ink-strong); margin-top: 6px; }

/* ---------- Blaue Terminzeilen ---------- */
.brows { display: flex; flex-direction: column; gap: 8px; }
.brow-head, .brow { display: grid; grid-template-columns: 1.9fr 1.35fr 1fr 1.2fr .9fr 170px; align-items: center; gap: 14px; padding: 14px 20px; border-radius: 6px; }
.brow-head { background: var(--blue); color: #fff; font-size: 17px; font-weight: 700; }
.brow { background: var(--blue); color: #fff; font-size: 14.5px; }
.brow.no-course, .brow-head.no-course { grid-template-columns: 1.35fr 1fr 1.2fr .9fr 170px; }
.brow a.brow-title { color: #fff; font-weight: 700; }
.brow .seats { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.seatbar { width: 60px; height: 6px; background: rgba(255, 255, 255, .28); border-radius: 3px; overflow: hidden; flex: 0 0 auto; }
.seatbar i { display: block; height: 100%; background: #fff; }
.brow .seats.low { color: #FFD58A; }
.brow .seats.low .seatbar i { background: #FFD58A; }
.brow .seats.full { color: #FFC1C5; }
.brow .seats.full .seatbar i { background: #FFC1C5; }
.brow .btn { padding: 8px 12px; font-size: 13.5px; }
@media (max-width: 900px) {
	.brow-head { display: none; }
	.brow, .brow.no-course { grid-template-columns: 1fr; gap: 4px; padding: 16px; }
	.brow > span[data-l]::before { content: attr(data-l) ": "; opacity: .75; }
	.brow .btn { margin-top: 8px; }
}

/* ---------- Formulare (Contact Form 7) ---------- */
.wpcf7 form { display: flex; flex-direction: column; gap: 14px; }
.wpcf7 .hidden-fields-container { display: none; }
.field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.field label { color: var(--blue); font-weight: 700; font-size: 15px; }
.field label .req { color: #D0021B; }
.wpcf7-form-control-wrap { display: block; }
.field input, .field select, .field textarea,
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 input[type="number"], .wpcf7 input[type="url"], .wpcf7 select, .wpcf7 textarea {
	background: var(--blue-50); border: 1px solid var(--blue); border-radius: 8px; padding: 12px 14px; color: var(--ink-strong); width: 100%; font: inherit; line-height: 1.4;
}
.wpcf7 textarea, .field textarea { min-height: 110px; height: 130px; resize: vertical; }
.wpcf7 input[type="file"] { background: var(--blue-50); border: 1px dashed var(--blue); border-radius: 8px; padding: 12px 14px; width: 100%; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 600px) { .field-row { grid-template-columns: 1fr; } }
.check, .check .wpcf7-list-item label { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; }
.check input, .wpcf7 input[type="checkbox"] { margin-top: 4px; accent-color: var(--blue); width: 16px; height: 16px; flex: 0 0 auto; }
.wpcf7-list-item { margin: 0; }
.check-urgent { background: var(--blue-50); padding: 12px 14px; border-radius: 6px; }
.urgent-note { display: none; background: var(--red-50); border: 1px solid #EFC7CA; color: #8E1F28; padding: 12px 14px; border-radius: 6px; font-size: 14.5px; }
.urgent-note.is-visible { display: block; }
.urgent-note a { color: #8E1F28; }
.form-hint { font-size: 13px; color: var(--muted); margin: 0; }
.cwd-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
/* Spamschutz „Ich bin kein Roboter“ (Plugin CWD Core) */
.cwd-captcha { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; padding: 10px 14px; background: var(--blue-50); border: 1px solid var(--line); border-radius: 6px; }
.cwd-captcha.wpcf7-not-valid { border-color: #B0232E !important; }
.cwd-captcha-box { display: inline-flex; align-items: center; gap: 10px; color: var(--blue); font-weight: 700; font-size: 15px; cursor: pointer; }
.cwd-captcha .cwd-captcha-check { margin: 0; width: 20px; height: 20px; }
.cwd-captcha-status { font-size: 13.5px; color: var(--muted); display: inline-flex; align-items: center; gap: 6px; }
.cwd-captcha[data-state="working"] .cwd-captcha-status::before { content: ""; width: 12px; height: 12px; border: 2px solid var(--blue-100); border-top-color: var(--blue); border-radius: 50%; animation: cwd-spin .8s linear infinite; }
.cwd-captcha[data-state="done"] .cwd-captcha-status { color: var(--green); font-weight: 700; }
.cwd-captcha[data-state="error"] .cwd-captcha-status { color: #B0232E; }
.cwd-captcha-info { flex: 1 1 100%; font-size: 12.5px; color: var(--muted); }
.cwd-captcha-noscript { flex: 1 1 100%; color: #B0232E; font-size: 13px; }
@keyframes cwd-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .cwd-captcha[data-state="working"] .cwd-captcha-status::before { animation-duration: 2.4s; } }
.wpcf7-not-valid { border-color: #B0232E !important; }
.wpcf7-not-valid-tip { color: #B0232E; font-size: 13px; margin-top: 4px; }
.wpcf7-submit:disabled { opacity: .55; cursor: not-allowed; }
.wpcf7-spinner { margin: 8px auto 0; display: block; }
.btn-row .wpcf7-spinner { margin: 0; display: inline-block; flex: 0 0 auto; order: 9; }
.wpcf7 form .wpcf7-response-output { margin: 0; padding: 12px 14px; border-radius: 6px; font-size: 14.5px; border: 1px solid; }
.wpcf7 form.sent .wpcf7-response-output { background: #E7F5EE; border-color: #9CD3B8; color: #12583B; }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output { background: #FFF6E5; border-color: #F0D29A; color: #6B4A00; }
.wpcf7 form.failed .wpcf7-response-output, .wpcf7 form.aborted .wpcf7-response-output, .wpcf7 form.spam .wpcf7-response-output { background: var(--red-50); border-color: #EFC7CA; color: #8E1F28; }
.cwd-admin-hint { background: #FFF6E5; border: 1px dashed #D9A640; padding: 14px 16px; font-size: 14px; border-radius: 6px; }

/* Kontaktbereich */
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; background: #fff; box-shadow: var(--card-shadow); }
.contact-photo { background: #F1F6F9; position: relative; display: flex; align-items: flex-end; justify-content: center; min-height: 420px; overflow: hidden; padding-top: 175px; }
.contact-photo > img { max-height: 360px; width: auto; object-fit: contain; }
.contact-photo .cp-caption { position: absolute; left: 24px; right: 24px; top: 26px; }
.contact-photo .cp-caption h2 { font-size: 30px; color: var(--blue); font-weight: 700; margin-bottom: 8px; }
.contact-photo .cp-caption p { font-size: 15px; max-width: 360px; }
.contact-photo .cp-facts { position: absolute; left: 24px; bottom: 22px; background: rgba(255, 255, 255, .94); padding: 12px 16px; font-size: 14px; box-shadow: 0 2px 10px rgba(0, 0, 0, .08); }
.contact-photo .cp-facts a { color: var(--ink-strong); }
.contact-body { padding: 36px 40px; }
@media (max-width: 860px) { .contact-grid { grid-template-columns: 1fr; } .contact-photo { min-height: 380px; padding-top: 215px; } .contact-body { padding: 28px 22px; } }

/* ---------- Schulungskatalog ---------- */
.filters { display: flex; gap: 14px; flex-wrap: wrap; align-items: flex-end; background: #fff; box-shadow: var(--card-shadow); padding: 18px 20px; margin-bottom: 28px; }
.filters .field { min-width: 200px; }
.filters .field.grow { flex: 1 1 240px; }
.filters .count { margin-left: auto; font-size: 14px; color: var(--muted); align-self: center; }
.ccards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
@media (max-width: 1000px) { .ccards { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .ccards { grid-template-columns: 1fr; } .filters .field { min-width: 0; flex: 1 1 100%; } }
.ccard { background: #fff; box-shadow: var(--card-shadow); display: flex; flex-direction: column; padding: 24px; }
.ccard h3 { font-size: 19px; font-weight: 700; line-height: 1.3; margin: 6px 0 10px; }
.ccard h3 a { color: var(--blue); }
.ccard p { font-size: 14px; flex-grow: 1; }
.ccard .meta { font-size: 13.5px; color: var(--muted); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 9px 0; margin: 6px 0 12px; }
.ccard .next { display: flex; justify-content: space-between; align-items: flex-end; gap: 10px; margin-bottom: 16px; }
.ccard .next b { display: block; font-size: 14.5px; color: var(--ink-strong); }
.ccard .next small { font-size: 12.5px; }
.ccard .price { font-size: 19px; font-weight: 800; color: var(--ink-strong); white-space: nowrap; }
.ccard .actions { display: flex; gap: 10px; }
.ccard .actions .btn { flex: 1; padding: 9px 10px; font-size: 14px; }
.s-ok { color: var(--green); }
.s-low { color: var(--amber); }
.s-full { color: var(--red); }
.empty-note { padding: 30px; text-align: center; color: var(--muted); }

/* Kursseite */
.kurs-kopf { padding-top: 34px; }
.kd-title { font-size: clamp(28px, 3.6vw, 38px); color: var(--blue); font-weight: 700; line-height: 1.2; margin-bottom: 14px; }
.kd-tags { margin-bottom: 6px; }
.facts { background: #fff; box-shadow: var(--card-shadow); padding: 26px; }
.facts dl { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 9px 18px; font-size: 14.5px; }
.facts dt { color: var(--muted); }
.facts dd { margin: 0; font-weight: 700; color: var(--ink-strong); text-align: right; }
.facts hr { border: 0; border-top: 1px solid var(--line); margin: 16px 0; }
.facts .price-line { display: flex; justify-content: space-between; align-items: baseline; }
.facts .price-line > span:first-child { color: var(--muted); }
.facts .price-big { font-size: 28px; font-weight: 800; color: var(--ink-strong); }
.facts .price-note { font-size: 12.5px; color: var(--muted); text-align: right; margin-bottom: 16px; }
.facts .facts-help { font-size: 13px; text-align: center; margin: 10px 0 0; }
.cwd-tabs .tabs { display: flex; gap: 6px; flex-wrap: wrap; }
.tab { background: var(--blue-50); border: 0; border-radius: 3px 3px 0 0; padding: 11px 22px; color: var(--blue-ink); font-weight: 700; cursor: pointer; }
.tab[aria-selected="true"] { background: var(--blue); color: #fff; }
.tabpanel { background: #fff; box-shadow: var(--card-shadow); padding: 28px 30px; }
.js .cwd-tabs .tabpanel + .tabpanel { margin-top: 0; }
.no-js .tabpanel + .tabpanel, html:not(.js) .tabpanel + .tabpanel { margin-top: 16px; }
.tabpanel h3 { color: var(--blue); font-size: 21px; font-weight: 700; margin-bottom: 12px; }
.tabpanel ul { margin: 0; padding-left: 20px; }
.tabpanel li { margin-bottom: 8px; }
.kurs-text .entry-content { max-width: 820px; }

/* FAQ (Details-Block) */
.faq .wp-block-details, .faq details { background: #fff; box-shadow: var(--card-shadow); margin: 0 0 12px; }
.faq summary { cursor: pointer; padding: 18px 22px; font-weight: 700; color: var(--ink-strong); list-style: none; display: flex; justify-content: space-between; gap: 12px; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; color: var(--blue); font-size: 22px; line-height: 1; }
.faq details[open] summary::after { content: "–"; }
.faq details > :not(summary) { margin: 0; padding: 0 22px 18px; font-size: 15px; }

/* Vergleichs- und Preistabellen */
.wp-block-table.is-style-cmp, .wp-block-table.is-style-ctable { overflow-x: auto; margin: 0; }
.is-style-cmp table { width: 100%; border-collapse: separate; border-spacing: 0 8px; min-width: 680px; }
.is-style-cmp th, .is-style-cmp td, .is-style-ctable th, .is-style-ctable td { border: 0; }
.is-style-cmp thead, .is-style-ctable thead { border: 0; }
.is-style-cmp th { background: var(--blue); color: #fff; text-align: left; padding: 14px 18px; font-size: 16px; }
.is-style-cmp th:first-child { border-radius: 6px 0 0 6px; }
.is-style-cmp th:last-child { border-radius: 0 6px 6px 0; }
.is-style-cmp td { background: var(--blue-50); padding: 14px 18px; font-size: 14.5px; vertical-align: top; }
.is-style-cmp td:first-child { font-weight: 700; color: var(--blue-ink); border-radius: 6px 0 0 6px; width: 22%; }
.is-style-cmp td:last-child { border-radius: 0 6px 6px 0; }
.is-style-ctable table { width: 100%; border-collapse: collapse; font-size: 14.5px; background: #fff; box-shadow: var(--card-shadow); min-width: 520px; }
.is-style-ctable th { background: var(--blue); color: #fff; text-align: left; padding: 12px 16px; }
.is-style-ctable td { padding: 12px 16px; border-bottom: 1px solid var(--line); }
.is-style-ctable td:last-child { white-space: nowrap; font-weight: 700; }

/* Themenkreis */
.ring-wrap { display: flex; justify-content: center; }
.ring { position: relative; width: 560px; height: 560px; }
.ring::before { content: ""; position: absolute; inset: 55px; border: 2px solid var(--blue); border-radius: 50%; opacity: .8; }
.ring-bubble { position: absolute; width: 112px; height: 112px; margin: -56px 0 0 -56px; border-radius: 50%; background: var(--blue); color: #fff; border: 0; cursor: pointer; font-size: 14px; line-height: 1.3; padding: 10px; display: flex; align-items: center; justify-content: center; text-align: center; transition: transform .15s, background .15s; box-shadow: 0 4px 12px rgba(0, 60, 90, .25); hyphens: manual; }
.ring-bubble:hover { transform: scale(1.06); }
.ring-bubble[aria-pressed="true"] { background: var(--blue-ink); transform: scale(1.1); }
.ring-center { position: absolute; left: 50%; top: 50%; width: 270px; transform: translate(-50%, -50%); text-align: center; }
.ring-center h3 { color: var(--blue); font-size: 22px; font-weight: 700; margin-bottom: 8px; }
.ring-center p { font-size: 14.5px; margin: 0; }
.ring-center .bar { width: 50px; height: 3px; background: var(--blue); margin: 0 auto 12px; }
.ring-list { display: none; }
@media (max-width: 640px) {
	.ring { display: none; }
	.ring-list { display: flex; flex-direction: column; gap: 8px; width: 100%; }
	.ring-list .wp-block-details { background: #fff; box-shadow: var(--card-shadow); margin: 0; }
	.ring-list summary { background: var(--blue); color: #fff; padding: 12px 16px; font-weight: 700; cursor: pointer; border-radius: 6px; }
	.ring-list .wp-block-details[open] summary { background: var(--blue-ink); border-radius: 6px 6px 0 0; }
	.ring-list .wp-block-details > :not(summary) { padding: 12px 16px 16px; margin: 0; }
}

/* Team */
.team-title { font-size: 20px !important; color: var(--ink-strong) !important; font-weight: 700; margin: 6px 0 16px !important; }
.team { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-bottom: 34px; }
@media (max-width: 900px) { .team { grid-template-columns: repeat(2, 1fr); } }
.member { text-align: center; }
.member .ph { width: 150px; height: 150px; border-radius: 50%; margin: 0 auto 12px; overflow: hidden; background: var(--blue-50); display: flex; align-items: center; justify-content: center; font-size: 40px; font-weight: 300; color: var(--blue); max-width: 100%; }
.member .ph img { width: 100%; height: 100%; object-fit: cover; }
.member b { display: block; font-size: 17px; color: var(--ink-strong); }
.member span { font-size: 14px; color: var(--muted); }
.member.hiring .ph { border: 2px dashed var(--blue); background: #fff; font-size: 15px; font-weight: 700; padding: 14px; line-height: 1.3; }
.member.hiring .ph:hover { background: var(--blue-50); text-decoration: none; }

/* News */
.news { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; list-style: none; padding: 0; margin: 0; }
@media (max-width: 900px) { .news { grid-template-columns: 1fr; } }
.news article, .news > li { background: #fff; box-shadow: var(--card-shadow); padding: 24px; display: flex; flex-direction: column; }
.news > li > article { box-shadow: none; padding: 0; height: 100%; }
.news .kind, .news .taxonomy-category { font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; margin-bottom: 8px; color: var(--blue); }
.news .taxonomy-category a { color: var(--blue); }
.news .kind.blog { color: #6B4FB5; }
.news h3, .news .wp-block-post-title { font-size: 19px; color: var(--ink-strong); font-weight: 700; line-height: 1.3; margin: 0 0 10px; }
.news h3 a, .news .wp-block-post-title a { color: var(--ink-strong); }
.news p, .news .wp-block-post-excerpt { font-size: 14.5px; flex-grow: 1; }
.news .wp-block-post-excerpt__more-text { display: none; }
.news .wp-block-read-more { font-weight: 600; }
.news .wp-block-read-more::after { content: " →"; }
.wp-block-query-pagination { margin-top: 30px; gap: 14px; }

/* Prozessschritte (Spalten-Stil) */
.wp-block-columns.is-style-steps { counter-reset: step; gap: 0 !important; }
.is-style-steps > .wp-block-column { position: relative; padding-right: 16px; counter-increment: step; }
.is-style-steps > .wp-block-column::before { content: counter(step); width: 44px; height: 44px; border-radius: 50%; background: var(--blue); color: #fff; font-weight: 800; display: flex; align-items: center; justify-content: center; font-size: 18px; position: relative; z-index: 1; }
.is-style-steps > .wp-block-column::after { content: ""; position: absolute; left: 44px; right: 0; top: 21px; height: 2px; background: var(--blue-100); }
.is-style-steps > .wp-block-column:last-child::after { display: none; }
.is-style-steps h3 { font-size: 17px; color: var(--blue); margin: 14px 0 6px; }
.is-style-steps p { font-size: 14px; }
@media (max-width: 781px) { .wp-block-columns.is-style-steps { gap: 18px !important; } .is-style-steps > .wp-block-column::after { display: none; } }

/* Jobs */
.jobs { display: flex; flex-direction: column; gap: 18px; }
.job { background: #fff; box-shadow: var(--card-shadow); padding: 24px 28px; }
.job-head { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; flex-wrap: wrap; }
.job h3 { font-size: 21px; color: var(--blue); font-weight: 700; margin: 4px 0 6px; }
.job .meta { font-size: 14px; color: var(--muted); }
.job .job-lead { margin: 14px 0 0; }
.job .details { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.job .details h4 { font-size: 15px; color: var(--ink-strong); margin: 0 0 6px; }
.job .details ul { margin: 0 0 14px; padding-left: 20px; font-size: 14.5px; }

/* Notfall-Hinweis */
.notfall { background: var(--red-50); border-bottom: 1px solid #EFC7CA; padding: 14px var(--gutter); display: flex; align-items: center; justify-content: center; gap: 16px; flex-wrap: wrap; text-align: center; }
.notfall p { margin: 0; }
.notfall strong { color: var(--red); }

/* Seitenkopf ohne Bild (Jobportal, Lizenz) */
.page-head { padding-top: 40px; }
.page-head h1 { font-size: 40px; color: var(--blue); font-weight: 500; margin-bottom: 8px; }
.page-head .is-style-callout, .cwd-jobs + .is-style-callout { margin-top: 30px; }

/* Rechtliches / Textseiten / Beiträge */
.legal { max-width: 820px; }
.legal-sec { padding-inline: var(--gutter); }
.legal-sec .legal { margin: 0; }
.legal h1, .wp-block-post-title.legal-title { font-size: 40px; color: var(--blue); font-weight: 500; margin-bottom: 16px; }
.legal h2 { font-size: 22px; margin: 28px 0 10px; }
.legal address { font-style: normal; }
.article-meta { font-size: 14px; color: var(--muted); margin-bottom: 20px; display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }

/* ---------- Wissen (technischer Blog) ---------- */
.news .card-foot { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: auto; padding-top: 6px; }
.card-meta { font-size: 13px; color: var(--muted); }
.wissen-suche { display: flex; gap: 10px; margin-bottom: 18px; max-width: 760px; }
.wissen-suche input[type="search"] { flex: 1 1 auto; min-width: 0; height: 48px; padding: 0 14px; font: inherit; font-size: 15px; background: var(--blue-50); border: 1px solid var(--blue); border-radius: 3px; }
.wissen-suche .btn { flex: 0 0 auto; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.chip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1px solid var(--line); border-radius: 20px; font-size: 14px; color: var(--blue-ink); background: #fff; text-decoration: none; }
.chip span { font-size: 12px; color: var(--muted); }
.chip:hover { border-color: var(--blue); text-decoration: none; }
.chip.active { background: var(--blue); border-color: var(--blue); color: #fff; }
.chip.active span { color: rgba(255, 255, 255, .8); }
.wissen-info { font-size: 14px; color: var(--muted); margin: 0 0 18px; }
.pager { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 30px; }
.pager a, .pager span { min-width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: 3px; font-size: 14px; }
.pager .current { background: var(--blue); border-color: var(--blue); color: #fff; }
.tag-topic { font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--blue); }
.tag-archiv { font-size: 12px; padding: 2px 8px; border-radius: 3px; background: #FFF6E5; color: #6B4A00; }
.entry-content .is-style-lead { font-size: 18px; color: var(--ink-strong); }
.entry-content h2 { margin-top: 32px; }
.entry-content pre.wp-block-code { background: #0F2A38; color: #E6F1F6; border-radius: 4px; padding: 16px 18px; overflow-x: auto; font-size: 13.5px; line-height: 1.55; margin: 0 0 18px; }
.entry-content pre.wp-block-code code { font-family: Consolas, "Cascadia Mono", Menlo, monospace; white-space: pre; background: none; padding: 0; color: inherit; }
.entry-content :not(pre) > code { font-family: Consolas, "Cascadia Mono", Menlo, monospace; font-size: .9em; background: var(--blue-50); padding: 1px 5px; border-radius: 3px; overflow-wrap: anywhere; }
.entry-content .wp-block-table { overflow-x: auto; margin: 0 0 18px; }
.entry-content .wp-block-table table { border-collapse: collapse; width: 100%; font-size: 14.5px; }
.entry-content .wp-block-table th { background: var(--blue); color: #fff; text-align: left; font-weight: 700; }
.entry-content .wp-block-table th, .entry-content .wp-block-table td { padding: 9px 12px; border: 1px solid var(--line); vertical-align: top; }
.entry-content .wp-block-table tr:nth-child(even) td { background: #F6FAFC; }
.entry-content .wp-block-image { margin: 0 0 18px; }
.entry-content .wp-block-image figcaption { font-size: 13px; color: var(--muted); }
.callout { border-left: 4px solid var(--blue); background: var(--blue-50); padding: 14px 18px; margin: 0 0 18px; border-radius: 0 4px 4px 0; }
.callout > :last-child { margin-bottom: 0; }
.callout .callout-label { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--blue); margin: 0 0 4px; }
.callout-heute { border-left-color: var(--green); background: #EDF7F1; }
.callout-heute .callout-label { color: var(--green); }
.callout-achtung { border-left-color: var(--red); background: var(--red-50); }
.callout-achtung .callout-label { color: var(--red); }
.callout-hinweis { border-left-color: var(--amber); background: #FFF6E5; }
.callout-hinweis .callout-label { color: var(--amber); }
.article-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 28px 0 0; }
.article-tags a { font-size: 13px; padding: 3px 10px; border-radius: 20px; background: var(--blue-50); color: var(--blue-ink); }
.article-cta { background: var(--blue); color: #fff; padding: 26px 28px; margin: 34px 0 0; border-radius: 4px; }
.article-cta h2 { color: #fff !important; font-size: 22px !important; margin: 0 0 8px !important; }
.article-cta p { margin: 0 0 14px; }
.article-cta .btn { background: #fff; color: var(--blue); border-color: #fff; }
.article-cta .btn-ghost { background: transparent; color: #fff; border-color: #fff; }
.article-related { margin-top: 40px; }
.article-related h2 { font-size: 22px !important; }
.article-related .news { grid-template-columns: repeat(3, 1fr); }
.article-back { margin: 30px 0 0; }
@media (max-width: 900px) { .article-related .news { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .wissen-suche { flex-direction: column; } .wissen-suche .btn { width: 100%; } }
.entry-content > * + * { margin-top: 0; }
.entry-content ul, .entry-content ol { margin: 0 0 14px; }

/* ---------- Modal ---------- */
.modal { position: fixed; inset: 0; z-index: 1000; background: rgba(10, 25, 40, .55); display: flex; align-items: center; justify-content: center; padding: 16px; }
.modal-box { background: #fff; width: 100%; max-width: 580px; max-height: calc(100vh - 32px); overflow: auto; padding: 30px 32px; position: relative; }
.modal-box h2 { color: var(--blue); font-size: 26px; margin-bottom: 6px; padding-right: 30px; }
.modal-sub { margin-bottom: 18px; }
.modal-close { position: absolute; top: 12px; right: 14px; background: none; border: 0; font-size: 28px; line-height: 1; cursor: pointer; color: var(--muted); padding: 4px 8px; }
@media (max-width: 600px) { .modal-box { padding: 24px 18px; } }

/* ---------- Footer ---------- */
.ftr { background: var(--blue); color: #EAF5FA; }
.ftr .wrap { display: grid; grid-template-columns: 1.3fr 1fr 1.2fr 1.2fr; gap: 36px; padding-block: 52px 30px; }
.ftr .ftr-h { font-size: 16px; font-weight: 700; color: #fff; margin-bottom: 12px; }
.ftr a { color: #EAF5FA; display: block; padding: 3px 0; font-size: 14.5px; }
.ftr a.inline { display: inline; }
.ftr a:hover { color: #fff; }
.ftr p { font-size: 14.5px; margin-bottom: 6px; }
.ftr .flogo img { height: 52px; width: auto; }
.ftr .ftr-claim { margin-top: 14px; }
.ftr .kununu img { height: 34px; width: auto; margin-top: 14px; }
.ftr-bottom { border-top: 1px solid rgba(255, 255, 255, .2); }
.ftr-bottom .wrap { display: flex; justify-content: space-between; gap: 14px; padding-block: 16px; font-size: 13px; flex-wrap: wrap; }
.ftr-bottom a { display: inline; font-size: 13px; }
@media (max-width: 900px) { .ftr .wrap { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .ftr .wrap { grid-template-columns: 1fr; } }

/* 404 / Suche */
.wp-block-search__input { background: var(--blue-50); border: 1px solid var(--blue); border-radius: 8px; padding: 10px 12px; }
.wp-block-search__button { margin-left: 8px; }

/* ---------- Cybersecurity-Unterseiten ---------- */
.wp-block-image.is-style-screen { margin: 0; border-radius: 8px; overflow: hidden; background: #fff; box-shadow: 0 18px 50px rgba(0, 45, 70, .18); border: 1px solid var(--line); }
.wp-block-image.is-style-screen::before { content: ""; display: block; height: 26px; background: #EEF3F6 radial-gradient(circle at 14px 13px, #E2A4A9 4px, transparent 5px), radial-gradient(circle at 30px 13px, #EBCB8B 4px, transparent 5px), radial-gradient(circle at 46px 13px, #9CCFB0 4px, transparent 5px); background-repeat: no-repeat; border-bottom: 1px solid var(--line); }
.wp-block-image.is-style-screen img { display: block; width: 100%; height: auto; }
.wp-block-image.is-style-screen figcaption { margin: 0; padding: 10px 14px; font-size: 13px; color: var(--muted); background: #F8FBFC; border-top: 1px solid var(--line); }
.kicker-line { font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--blue); margin: 0 0 6px; }
ol.is-style-numbered { list-style: none; counter-reset: num; padding: 0; margin: 0; display: grid; gap: 12px; }
ol.is-style-numbered > li { counter-increment: num; position: relative; padding: 14px 16px 14px 62px; background: #fff; box-shadow: var(--card-shadow); min-height: 52px; }
ol.is-style-numbered > li::before { content: counter(num); position: absolute; left: 14px; top: 12px; width: 34px; height: 34px; border-radius: 50%; background: var(--blue); color: #fff; font-weight: 800; display: flex; align-items: center; justify-content: center; }
ol.is-style-numbered.red > li::before { background: var(--red); }
ul.is-style-sectors { list-style: none; padding: 0; margin: 0; columns: 2; column-gap: 28px; font-size: 15px; }
ul.is-style-sectors li { break-inside: avoid; padding: 6px 0 6px 18px; position: relative; border-bottom: 1px solid var(--line); }
ul.is-style-sectors li::before { content: ""; position: absolute; left: 2px; top: 15px; width: 7px; height: 7px; border-radius: 50%; background: var(--blue); }
@media (max-width: 600px) { ul.is-style-sectors { columns: 1; } }
.panel-white { background: #fff; box-shadow: var(--card-shadow); padding: 26px 28px; }
.panel-white > :last-child { margin-bottom: 0; }
.sev { display: inline-block; font-size: 11.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; padding: 3px 9px; border-radius: 3px; color: #fff; vertical-align: middle; }
.sev-krit { background: #B0232E; } .sev-hoch { background: #D9622B; } .sev-mittel { background: #C99A06; } .sev-ok { background: var(--green); }
.finding { background: #fff; box-shadow: var(--card-shadow); border-left: 5px solid #D9622B; padding: 22px 26px; }
.finding .finding-head { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; font-size: 13px; color: var(--muted); font-weight: 700; letter-spacing: .04em; margin: 0 0 8px; }
.finding h3 { margin: 0 0 14px; font-size: 20px; }
.finding h4 { font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: var(--blue); margin: 14px 0 4px; }
.finding p, .finding li { font-size: 14.5px; }
.risk-bars { display: grid; gap: 10px; }
.risk-bars p { display: grid; grid-template-columns: 110px 1fr 36px; align-items: center; gap: 12px; margin: 0; font-size: 14px; }
.risk-bars p span.bar { height: 12px; border-radius: 6px; background: var(--blue-100); position: relative; overflow: hidden; }
.risk-bars p span.bar i { position: absolute; inset: 0 auto 0 0; border-radius: 6px; }
.risk-bars p b { text-align: right; }
.wp-block-table.is-style-cmp td:first-child { font-weight: 700; color: var(--ink-strong); }
.quote-box { border-left: 4px solid var(--blue); padding: 6px 0 6px 20px; font-size: 19px; color: var(--blue-ink); max-width: 780px; }

.grid-4 { display: grid; gap: 24px; grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1100px) { .grid-4 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 680px) { .grid-4 { grid-template-columns: 1fr; } }
.cmp-2 td:first-child { width: 28%; }
/* Karten in schmalen Rastern (Spalte mit 2er-Raster): Symbol über dem Text */
.wp-block-column .grid-2 .icard { flex-direction: column; gap: 14px; padding: 24px 24px 22px; }
.wp-block-column .grid-2 .icard h3 { font-size: 19px; }
.icard-body { hyphens: auto; -webkit-hyphens: auto; overflow-wrap: break-word; }
.sev-na { background: #8A949B; }
.scale-legend { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.finding .wp-block-table, .panel-white .wp-block-table { margin: 0 0 12px; }
.panel-white .wp-block-table th, .panel-white .wp-block-table td { padding: 7px 10px; border-bottom: 1px solid var(--line); text-align: left; font-size: 14.5px; }
/* Vergleichstabellen in Spalten: keine Mindestbreite, Text umbrechen */
.wp-block-column .is-style-cmp table { min-width: 0; }
.wp-block-column .is-style-cmp td, .wp-block-column .is-style-cmp th { overflow-wrap: break-word; hyphens: auto; }
.wp-block-column .is-style-cmp td:first-child { width: 40%; }
.cmp-points th:nth-child(2), .cmp-points td:nth-child(2) { white-space: nowrap; width: 1%; hyphens: manual; }

/* Notfallmeldung (Pop-up „Sicherheitsvorfall melden“) */
.notfall-status { border: 1px solid #EFC7CA; background: var(--red-50); padding: 12px 14px; margin: 0 0 16px; font-size: 14.5px; }
.notfall-status p { margin: 0 0 6px; }
.notfall-status p:last-child { margin-bottom: 0; }
.notfall-status .nf-state { display: flex; align-items: baseline; gap: 8px; }
.notfall-status .nf-state .nf-dot { position: relative; top: -1px; }
.modal-box:has([data-pane="notfall"]:not([hidden])) h2 { color: var(--red); }
.notfall-status .nf-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--muted); flex: none; }
.notfall-status.is-open { background: #EEF7F2; border-color: #BFDFCD; }
.notfall-status.is-open .nf-dot { background: var(--green); box-shadow: 0 0 0 3px rgba(29, 122, 82, .18); }
.notfall-status.is-closed .nf-dot { background: var(--red); }
.notfall-status .nf-call { margin: 10px 0 8px; text-align: center; }
.notfall-status .nf-or { color: var(--muted); font-size: 13.5px; }
.wpcf7-submit.btn-red { background: var(--red); border-color: var(--red); color: #fff; }
.wpcf7-submit.btn-red:hover { background: #A2262F; border-color: #A2262F; }
.cwd-form-notfall .nf-steps { margin-top: 10px; }
.nf-tel { margin: 0; font-size: 14px; }
.nf-tel a { font-weight: 700; white-space: nowrap; }
.notfall .nf-tel { flex-basis: 100%; }

/* Aufbereitete News aus der Elementor-Zeit: frühere Unterzeile */
.entry-content .news-unterzeile { font-size: 18px; color: var(--blue-ink); }

/* Karriere: Kopfbild mit Jahreszahl auf der Straße (Position passt zum Bild: Seitenverhältnis bleibt fest) */
.karriere-kopf { padding: 24px var(--gutter) 8px; }
.karriere-kopf .kh-bild { position: relative; container-type: inline-size; overflow: hidden; background: #0d1a22; }
.karriere-kopf .kh-foto { margin: 0; }
.karriere-kopf .kh-foto img { display: block; width: 100%; height: auto; aspect-ratio: 943 / 490; }
.karriere-kopf .kh-jahr { position: absolute; left: 50%; top: 77.3%; transform: translate(-50%, -50%); margin: 0; font-size: 10.4cqw; line-height: 1; font-weight: 400; letter-spacing: .23em; padding-left: .23em; color: rgba(232, 232, 232, .88); pointer-events: none; user-select: none; white-space: nowrap; }
.karriere-kopf .kh-text { position: absolute; left: 0; top: 0; width: min(46%, 470px); padding: clamp(18px, 4cqw, 44px); color: #fff; }
.karriere-kopf .kh-text h1 { color: #fff; font-size: clamp(30px, 5cqw, 52px); margin: 0 0 10px; }
.karriere-kopf .kh-text p { color: rgba(255, 255, 255, .92); margin: 0 0 16px; }
.karriere-kopf .kh-text .kicker { color: rgba(255, 255, 255, .75); }
.karriere-kopf .kh-bild::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5, 14, 20, .78) 0%, rgba(5, 14, 20, .45) 38%, rgba(5, 14, 20, 0) 58%); pointer-events: none; z-index: 0; }
.karriere-kopf .kh-text, .karriere-kopf .kh-jahr { z-index: 1; }
@media (max-width: 860px) {
	.karriere-kopf .kh-bild::before { display: none; }
	.karriere-kopf .kh-text { position: static; width: auto; padding: 22px 0 0; color: var(--ink); }
	.karriere-kopf .kh-text h1 { color: var(--blue); }
	.karriere-kopf .kh-text p { color: var(--ink); }
	.karriere-kopf .kh-text .kicker { color: var(--muted); }
	.karriere-kopf .kh-bild { background: transparent; overflow: visible; }
	.karriere-kopf .kh-jahr { top: calc(77.3cqw * 490 / 943); }
}

/* Stellenseite (Vorlage für alle Stellen) */
.stelle-kopf { padding-bottom: 24px; }
.stelle-banner { position: relative; aspect-ratio: 3 / 1; min-height: 220px; background-size: cover; background-position: center; display: flex; align-items: flex-end; overflow: hidden; }
.stelle-banner::before { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(10, 25, 35, .65), rgba(10, 25, 35, 0) 55%); }
.stelle-banner-titel { position: relative; margin: 0; padding: 0 28px 22px; color: #fff; font-size: clamp(22px, 3.2vw, 34px); font-weight: 700; line-height: 1.2; }
.stelle-raster { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 36px; align-items: start; }
.stelle-titel { color: var(--blue); font-size: clamp(28px, 3.6vw, 40px); margin: 18px 0 10px; }
.stelle-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 18px; }
.tag.tag-light { background: var(--blue-50); color: var(--blue-ink); font-weight: 400; }
.stelle-einleitung p { margin: 0 0 14px; }
.stelle-zeilen { margin-top: 26px; }
.stelle-zeile { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 18px; padding: 18px 20px; }
.stelle-zeile:nth-child(odd) { background: var(--blue-50); }
.stelle-zeile h2 { font-size: 16px; margin: 0; color: var(--ink-strong); }
.stelle-liste { margin: 0; padding-left: 18px; }
.stelle-liste > li { margin: 0 0 10px; }
.stelle-liste ul { margin: 8px 0 4px; padding-left: 20px; list-style: circle; }
.stelle-liste ul li { margin: 0 0 4px; }
.stelle-seite { background: var(--blue-50); padding: 24px 26px; position: sticky; top: calc(var(--hdr-h) + 16px); font-size: 15px; }
.stelle-seite h2 { color: var(--blue); font-size: 26px; line-height: 1.2; margin: 0 0 14px; }
.stelle-seite p { margin: 0 0 12px; }
.stelle-bewerbung-inner { max-width: 760px; margin: 0 auto; }
@media (max-width: 960px) {
	.stelle-raster { grid-template-columns: 1fr; }
	.stelle-seite { position: static; }
}
@media (max-width: 600px) {
	.stelle-zeile { grid-template-columns: 1fr; gap: 8px; padding: 16px 14px; }
	.stelle-banner { aspect-ratio: auto; }
}
.job h3 a { color: inherit; text-decoration: none; }
.job h3 a:hover { text-decoration: underline; }
