/* nc-header-wrapper-fix */
/* Heller Header nach Design v2: #FAF9F5 mit feiner Trennlinie. */
#kt-layout-id_header-1,
.wp-block-kadence-rowlayout.kt-layout-id_header-1,
.site-header .header-desktop-display,
.kt-layout-id_header-1 .kt-row-column-wrap,
.kt-layout-id_header-1 > .kt-row-layout-inner{
  background:#FAF9F5 !important;
}
#kt-layout-id_header-1{border-bottom:1px solid rgba(18,50,74,0.12) !important}
/* Navigation und Telefonnummer auf Navy */
.kt-layout-id_header-1 a:not(.wp-block-button__link){color:#12324A !important}
.kt-layout-id_header-1 .wp-block-navigation-item__content{color:#12324A !important;font-weight:600}
.kt-layout-id_header-1 .wp-block-navigation-item__content:hover{color:#1C6E63 !important}
/* Untermenue-Pfeile ebenfalls dunkel */
.kt-layout-id_header-1 .wp-block-navigation__submenu-icon svg{fill:#12324A !important;stroke:#12324A !important}
/* Burger-Icon: auf hellem Grund dunkel */
#kt-layout-id_header-1 .wp-block-navigation__responsive-container-open{color:#12324A !important}
#kt-layout-id_header-1 .wp-block-navigation__responsive-container-open svg{fill:#12324A !important;color:#12324A !important}
/* Logo: der Weissfilter entfaellt, die Wortmarke steht auf hellem Grund */
.nc-header-logo{filter:none !important}
/* Das geoeffnete Mobilmenue bleibt dunkel - dort weiterhin helle Schrift */
.wp-block-navigation__responsive-container.is-menu-open a,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{color:#FAF9F5 !important}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content{color:#E1E7EC !important}
/* CTA im Header: Navy auf Mint (5,39:1). Vorher cremefarben auf #2FB8A6 = 1,77:1. */
#kt-layout-id_header-1 .wp-block-button__link,
#kt-layout-id_header-1 a.nc-header-cta{
  background:#2FB8A6 !important;color:#12324A !important;border-radius:0 !important;font-weight:700 !important;
}
#kt-layout-id_header-1 .wp-block-button__link:hover{background:#279C8D !important;color:#12324A !important}
/* nc-hero-still-css */
@keyframes ncHeroKen{0%{transform:scale(1.08) translate3d(0,0,0)}100%{transform:scale(1.20) translate3d(-2%,-1.6%,0)}}@keyframes ncHeroSweep{0%{opacity:0;transform:translateX(-130%) skewX(-14deg)}10%{opacity:.42}38%{opacity:0;transform:translateX(150%) skewX(-14deg)}100%{opacity:0;transform:translateX(150%) skewX(-14deg)}}.nc-hero-still{animation:ncHeroKen 32s ease-in-out infinite alternate;transform-origin:58% 45%;will-change:transform}.nc-hero-background-media::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(120% 82% at 50% 34%,transparent 38%,rgba(8,20,36,.58) 100%)}.nc-hero-background-media::before{content:"";position:absolute;top:-20%;left:0;width:42%;height:140%;z-index:3;pointer-events:none;background:linear-gradient(100deg,transparent,rgba(255,255,255,.15),transparent);animation:ncHeroSweep 11s ease-in-out 1.4s infinite}@media (prefers-reduced-motion:reduce){.nc-hero-still{animation:none;transform:scale(1.04)}.nc-hero-background-media::before{display:none}}
/* nc-design-effects-css */
/* E1 — Scroll-Progress-Bar (alle Seiten) */
#nc-scrollprogress{position:fixed;top:0;left:0;height:3px;width:0;z-index:100000;pointer-events:none;
 background:linear-gradient(90deg,#0ea99b,#5eead4);box-shadow:0 0 8px rgba(14,169,155,.45);
 transition:width .12s linear}

/* E3 — Wordmark-Wasserzeichen */
.nc-wm-host{position:relative}
.nc-wm-host>*:not(.nc-wm-clip){position:relative;z-index:1}
.nc-wm-clip{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.nc-wm{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
 font-family:Manrope,'Plus Jakarta Sans',sans-serif;font-weight:800;letter-spacing:-.04em;
 font-size:clamp(80px,20vw,340px);line-height:.9;white-space:nowrap;color:currentColor;
 opacity:.05;user-select:none}

/* E6 — Wort-fuer-Wort-Blur-Headline */
.ncx-word-blur .nc-w{display:inline-block;will-change:filter,opacity}

/* E7 — Hero-Parallax */
.nc-parallax{will-change:transform}

@media (prefers-reduced-motion:reduce){
 #nc-scrollprogress{transition:none}
 .ncx-word-blur .nc-w{filter:none !important;opacity:1 !important}
 .nc-parallax{transform:none !important}
}
/* nc-district-map-css */
.ncx-map-dot{cursor:pointer}
.nc-dm-link{position:absolute;inset:0;border-radius:50%;display:block;text-decoration:none;z-index:2}
.nc-dm-link:focus-visible{outline:3px solid #5eead4;outline-offset:3px}
/* nc-dm-hit: Die Punkte sind kleiner als die von Lighthouse geforderten 24px.
   Unsichtbare Trefferflaeche vergroessert sie, ohne die Grafik zu veraendern. */
.nc-dm-link::after{content:'';position:absolute;left:50%;top:50%;width:30px;height:30px;transform:translate(-50%,-50%);border-radius:50%}
.ncx-map-dot{transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease,background .2s ease}
.ncx-map-dot:hover,.ncx-map-dot:focus-within{transform:scale(1.35);
 box-shadow:0 0 0 6px rgba(14,169,155,.22),0 6px 16px rgba(14,169,155,.45);z-index:5}
.nc-dm-tip{position:absolute;left:50%;bottom:145%;transform:translateX(-50%) translateY(4px);
 background:#0f1f38;color:#fff;font-family:'Plus Jakarta Sans',sans-serif;font-size:12px;font-weight:700;
 line-height:1.25;white-space:nowrap;padding:6px 10px;border-radius:8px;pointer-events:none;opacity:0;
 transition:opacity .18s ease,transform .18s ease;box-shadow:0 8px 20px rgba(0,0,0,.3);z-index:9}
.nc-dm-tip::after{content:"";position:absolute;left:50%;top:100%;transform:translateX(-50%);
 border:5px solid transparent;border-top-color:#0f1f38}
.ncx-map-dot:hover .nc-dm-tip,.ncx-map-dot:focus-within .nc-dm-tip{opacity:1;transform:translateX(-50%) translateY(0)}
@media (prefers-reduced-motion:reduce){.ncx-map-dot,.nc-dm-tip{transition:none}}
/* nc-reveal-failsafe-css */
/* Ohne JavaScript darf nichts unsichtbar bleiben. */
.no-js .nc-reveal,
.no-js [data-nc-reveal]{opacity:1 !important;transform:none !important}
/* Sicherheitsnetz-Klasse: gilt fuer alle bekannten Reveal-Varianten. */
.nc-reveal.nc-shown,
.ncx-reveal.nc-shown,
[data-nc-reveal].nc-shown{opacity:1 !important;transform:none !important}
@media (prefers-reduced-motion:reduce){
 .nc-reveal,.ncx-reveal,[data-nc-reveal]{opacity:1 !important;transform:none !important;transition:none !important}
}
/* nc-ux-polish-css */
/* 1) Ankersprung: Ziel darf nicht unter dem Sticky-Header landen. */
:root{--nc-anchor-offset:140px}
.entry-content h2,.entry-content h3,.entry-content h4,
main h2,main h3,main h4,
[id^="nc-abschnitt-"],
.entry-content [id],main [id]{scroll-margin-top:var(--nc-anchor-offset)}

/* 2) Einblenden. Bewusst als Animation mit fill-mode:both statt Transition:
      Ohne die Klasse ist das Element ganz normal sichtbar - die Animation
      kann also niemals Inhalt dauerhaft verstecken. */
@keyframes ncRise{from{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}
.nc-anim{animation:ncRise .55s cubic-bezier(.22,.61,.36,1) both}

/* 2b) Layout-Sprung im Hero-CTA (CLS 0,13).
      Ein CRO-Skript hat die USP-Zeile .nc-core-cta-trust *zwischen* die beiden
      Buttons gesetzt. In einem flex-wrap-Container drueckt dieses Block-Element
      den zweiten Button in eine zweite Zeile; sobald sich Schrift-/Breitenwerte
      nach dem ersten Bildaufbau aendern, klappt die Zeile um und alles darunter
      springt. Entfernen ist keine Option: auf 37 der 62 betroffenen Seiten ist es
      die einzige Trust-Zeile. Sie bekommt deshalb eine eigene Zeile und wandert
      per order ans Ende - Inhalt bleibt, Layout ist stabil. */
/* 3) Zurueck nach oben */
#nc-top{position:fixed;right:20px;bottom:26px;width:46px;height:46px;border-radius:50%;
 display:flex;align-items:center;justify-content:center;z-index:90;border:0;cursor:pointer;
 background:#0ea99b;color:#fff;box-shadow:0 10px 26px rgba(14,169,155,.42);
 opacity:0;visibility:hidden;transform:translateY(10px);
 transition:opacity .25s ease,transform .25s ease,visibility .25s,background .2s ease}
#nc-top.is-on{opacity:1;visibility:visible;transform:none}
#nc-top:hover{background:#0b8074}
#nc-top:focus-visible{outline:3px solid #5eead4;outline-offset:3px}
#nc-top svg{width:20px;height:20px}
@media (max-width:600px){#nc-top{right:14px;bottom:84px;width:42px;height:42px}}

/* 5) Honeypot sicher verstecken. Der Wrapper .nck-hp traegt aria-hidden,
      wurde aber sichtbar ausgeliefert (34x55px, Label "Website (bitte frei lassen)").
      Sichtbar = unprofessionell UND Lead-Risiko: ausgefuellt wird die Anfrage still verworfen.
      Bewusst per Off-Screen statt display:none, damit Bots das Feld weiterhin ausfuellen. */
.nck-hp{position:absolute !important;left:-9999px !important;top:auto !important;
 width:1px !important;height:1px !important;overflow:hidden !important;
 clip:rect(0 0 0 0) !important;white-space:nowrap !important;pointer-events:none !important}

/* 4) Feinschliff: Textlinks, Bilder, Tabellen */
.entry-content p a:not([class]),.entry-content li a:not([class]){
 background-image:linear-gradient(currentColor,currentColor);
 background-size:0% 1px;background-position:0 100%;background-repeat:no-repeat;
 transition:background-size .28s ease,color .2s ease;text-decoration:none}
.entry-content p a:not([class]):hover,.entry-content li a:not([class]):hover{background-size:100% 1px}
.entry-content figure img{transition:transform .45s cubic-bezier(.22,.61,.36,1)}
.entry-content figure:hover img{transform:scale(1.025)}
.entry-content table tbody tr{transition:background .2s ease}
.entry-content table tbody tr:hover{background:rgba(14,169,155,.06)}
a:focus-visible,button:focus-visible{outline:3px solid #0ea99b;outline-offset:2px;border-radius:4px}

@media (prefers-reduced-motion:reduce){
 .nc-anim{animation:none}
 #nc-top,.entry-content figure img,.entry-content table tbody tr,
 .entry-content p a:not([class]),.entry-content li a:not([class]){transition:none}
 .entry-content figure:hover img{transform:none}
}
/* nc-nav-submenu-fix-css */
@media (min-width: 1025px) {
	/* Nur oeffnen, nie verstecken: ohne diese Klasse gilt weiter der Core-Zustand.
	   Ein Fehler in dieser Datei kann also kein Menue unsichtbar machen. */
	.wp-block-navigation li.nc-sub-open > .wp-block-navigation__submenu-container {
		display: flex !important;
		flex-direction: column !important;
		visibility: visible !important;
		opacity: 1 !important;
		pointer-events: auto !important;
		transform: none !important;
	}
	.wp-block-navigation li.wp-block-navigation-submenu.has-child > .wp-block-navigation__submenu-container {
		transition: opacity 0.18s ease;
	}
	/* Hoverbruecke: ohne sie schliesst das Menue im Spalt zwischen Eintrag und Panel. */
	.wp-block-navigation li.wp-block-navigation-submenu.has-child.nc-sub-open::after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		top: 100%;
		height: 14px;
	}
}

/* nc-header-balance: Die Kadence-Kopfzeile stand auf drei starren Spalten
   (247px Logo / 797px Menue / 330px CTA). Logo und Menue brauchen davon nur
   117px bzw. 527px - rund 380px blieben als Leerraum stehen. Spalten richten
   sich jetzt nach ihrem Inhalt, der Rest sammelt sich vor dem CTA. */
@media (min-width: 1025px) {
	.ncx-header-target .kt-row-column-wrap.kt-has-3-columns {
		grid-template-columns: auto minmax(0, 1fr) auto !important;
		column-gap: 44px !important;
		align-items: center;
	}
	.ncx-header-target .inner-column-1,
	.ncx-header-target .inner-column-2 { justify-content: flex-start !important; }
	.ncx-header-target .inner-column-3 { justify-content: flex-end !important; }
	.ncx-header-target .inner-column-2 .wp-block-navigation { justify-content: flex-start !important; }
	/* Die Zentrierung sitzt auf dem inneren Wrapper, nicht auf der Spalte. */
	.ncx-header-target .inner-column-1 .kt-inside-inner-col,
	.ncx-header-target .inner-column-2 .kt-inside-inner-col { justify-content: flex-start !important; }
	.ncx-header-target .inner-column-3 .kt-inside-inner-col { justify-content: flex-end !important; }
	/* Der Navigationsblock zentriert sich zusaetzlich ueber Auto-Margins.
	   Nur das Zuruecksetzen der linken Marge holt ihn wirklich nach links. */
	.ncx-header-target .inner-column-2 .wp-block-navigation {
		margin-left: 0 !important;
		margin-right: auto !important;
	}
}
/* nc-mega-css */
@media (min-width: 1025px) {
	.wp-block-navigation li.has-child.nc-mega > .wp-block-navigation__submenu-container {
		position: absolute;
		left: 50%;
		transform: translateX(-50%) !important;
		width: min(940px, calc(100vw - 64px)) !important;
		padding: 26px !important;
		background: #0E293C !important;
		border: 1px solid rgba(94, 234, 212, 0.16) !important;
		border-radius: 18px !important;
		box-shadow: 0 26px 60px rgba(4, 20, 36, 0.42) !important;
		display: block !important;
	}
	/* nc-mega-anker: Das breite Panel zentrierte auf seinem Menuepunkt und ragte
	   nach dem Header-Ausgleich links aus dem Bild. Es haengt jetzt an der
	   Menueleiste statt am Eintrag - dafuer muss der Eintrag static werden,
	   damit die Leiste zum Bezugsrahmen wird. Schmale Panels bleiben unberuehrt. */
	.ncx-header-target .wp-block-navigation > .wp-block-navigation__container { position: relative; }
	.wp-block-navigation li.has-child.nc-mega:not(.nc-mega-s) { position: static !important; }
	.wp-block-navigation li.has-child.nc-mega:not(.nc-mega-s) > .wp-block-navigation__submenu-container {
		left: 0 !important;
		right: auto !important;
		transform: none !important;
	}
	/* Schmale Panels (wenige Eintraege) bleiben links buendig statt zentriert. */
	.wp-block-navigation li.has-child.nc-mega.nc-mega-s > .wp-block-navigation__submenu-container {
		left: 0;
		transform: none !important;
		width: 380px !important;
	}

	.nc-mega-grid { display: grid; gap: 22px; }
	.nc-mega-grid.cols-1 { grid-template-columns: 1fr; }
	.nc-mega-grid.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) 260px; }

	.nc-mega-coltitle {
		color: #5EEAD4; font-size: 11.5px; font-weight: 800;
		letter-spacing: .1em; text-transform: uppercase;
		margin: 0 0 12px; padding-bottom: 9px;
		border-bottom: 1px solid rgba(94, 234, 212, 0.22);
	}

	a.nc-mega-link {
		display: flex; gap: 11px; align-items: flex-start;
		padding: 9px 10px; border-radius: 11px;
		text-decoration: none; color: #fff;
		transition: background .16s ease, transform .16s ease;
	}
	a.nc-mega-link:hover, a.nc-mega-link:focus-visible {
		background: rgba(94, 234, 212, 0.10);
		transform: translateX(2px);
		outline: none;
	}
	a.nc-mega-link:focus-visible { box-shadow: 0 0 0 2px #5EEAD4 inset; }
	.nc-mega-ico {
		flex: 0 0 auto; width: 30px; height: 30px; border-radius: 9px;
		display: inline-flex; align-items: center; justify-content: center;
		background: rgba(47, 184, 166, 0.14); color: #2FB8A6;
	}
	.nc-mega-ico svg { width: 16px; height: 16px; }
	.nc-mega-link > span:last-child { display: block; min-width: 0; }
	.nc-mega-t { display: block; font-size: 14.5px; font-weight: 700; line-height: 1.25; color: #fff !important; }
	.nc-mega-d { display: block; font-size: 12.5px; line-height: 1.4; color: rgba(225, 231, 236, 0.72); margin-top: 2px; }

	.nc-mega-promo {
		border-radius: 14px; overflow: hidden; position: relative;
		display: flex; flex-direction: column; justify-content: flex-end;
		min-height: 230px; padding: 18px; text-decoration: none;
		background-size: cover; background-position: center;
	}
	.nc-mega-promo::before {
		content: ""; position: absolute; inset: 0;
		background: linear-gradient(180deg, rgba(14,41,60,.25) 0%, rgba(14,41,60,.92) 78%);
	}
	.nc-mega-promo > * { position: relative; }
	.nc-mega-promo-k { color: #5EEAD4; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
	.nc-mega-promo-t { color: #fff; font-size: 17px; font-weight: 800; line-height: 1.25; margin: 6px 0 4px; }
	.nc-mega-promo-d { color: rgba(225,231,236,.8); font-size: 12.5px; line-height: 1.45; }
	.nc-mega-promo-c { color: #2FB8A6; font-size: 13px; font-weight: 700; margin-top: 10px; }
	.nc-mega-promo:hover .nc-mega-promo-c { text-decoration: underline; }

	@media (prefers-reduced-motion: reduce) {
		a.nc-mega-link { transition: none; }
		a.nc-mega-link:hover { transform: none; }
	}
}
/* nc-mega-v2: groesser, kontrastreicher, groessere Schrift und Icons.
   Zusaetzlich z-index, weil das Panel vorher unter dem Seiteninhalt lag
   und die Hero-Ueberschrift quer darueber schrieb. */
@media (min-width: 1025px) {
.wp-block-navigation li.has-child.nc-mega > .wp-block-navigation__submenu-container {
width: min(1180px, calc(100vw - 48px)) !important; padding: 34px !important;
background: linear-gradient(160deg, #0E293C 0%, #0A1F30 100%) !important;
border: 1px solid rgba(94,234,212,.24) !important; border-radius: 22px !important;
box-shadow: 0 34px 80px rgba(3,15,28,.55) !important; z-index: 9999 !important; }
.wp-block-navigation li.has-child.nc-mega > .wp-block-navigation__submenu-container::before {
content: ''; position: absolute; left: 34px; right: 34px; top: 0; height: 3px;
background: linear-gradient(90deg, #5EEAD4 0%, #2FB8A6 45%, rgba(47,184,166,0) 100%); }
.wp-block-navigation li.has-child.nc-mega.nc-mega-s > .wp-block-navigation__submenu-container { width: 460px !important; }
.nc-mega-grid { gap: 26px; }
.nc-mega-grid.cols-3 { grid-template-columns: repeat(3, minmax(0,1fr)) 300px; }
.nc-mega-coltitle { font-size: 13px; letter-spacing: .12em; margin: 0 0 14px; padding-bottom: 11px; border-bottom: 1px solid rgba(94,234,212,.30); }
a.nc-mega-link { gap: 14px; padding: 11px 12px; border-radius: 13px; border-left: 3px solid transparent; }
a.nc-mega-link:hover, a.nc-mega-link:focus-visible { background: rgba(94,234,212,.13); border-left-color: #5EEAD4; }
.nc-mega-ico { width: 44px; height: 44px; border-radius: 13px; background: rgba(94,234,212,.14); color: #5EEAD4; border: 1px solid rgba(94,234,212,.22); }
a.nc-mega-link:hover .nc-mega-ico { background: rgba(94,234,212,.24); }
.nc-mega-ico svg { width: 22px; height: 22px; }
.nc-mega-t { font-size: 16.5px; line-height: 1.25; }
.nc-mega-d { font-size: 13.5px; line-height: 1.45; color: rgba(226,232,240,.85); margin-top: 3px; }
.nc-mega-promo { min-height: 300px; padding: 22px; border-radius: 16px; }
.nc-mega-promo-k { font-size: 12px; }
.nc-mega-promo-t { font-size: 20px; margin: 8px 0 5px; }
.nc-mega-promo-d { font-size: 13.5px; color: rgba(226,232,240,.88); }
.nc-mega-promo-c { font-size: 14px; margin-top: 12px; }
}
