/* nc-master-header-2026-v4 */
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

:root {
  --nc-primary: #081422;
  --nc-navy: #1A365D;
  --nc-accent: #48BB78;
  --nc-accent-hover: #38A169;
  --nc-bg: #F8FAFC;
  --nc-surface: #FFFFFF;
  --nc-border: #E2E8F0;
  --nc-text: #1A365D;
  --nc-text-muted: #64748B;
  --nc-font: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, sans-serif;
}

#masthead, .site-header, .site-header-wrap, .kadence-header-wrap {
  display: block !important;
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.nc-header-wrapper {
  font-family: var(--nc-font) !important;
  color: var(--nc-text);
  position: sticky;
  top: 0;
  z-index: 99999;
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--nc-border);
  box-shadow: 0 4px 20px rgba(8, 20, 34, 0.05);
}
.nc-header-wrapper * { box-sizing: border-box; }

/* TOP TRUST BAR */
.nc-top-trust-bar {
  background: #081422;
  color: #FFFFFF;
  font-size: 11.5px;
  font-weight: 700;
  padding: 7px 16px;
  letter-spacing: 0.03em;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.nc-top-trust-inner {
  max-width: 1240px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: nowrap;
}
.nc-trust-badges-list {
  display: flex;
  align-items: center;
  gap: 20px;
  list-style: none;
  margin: 0;
  padding: 0;
  white-space: nowrap;
}
.nc-trust-badge-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #E2E8F0;
}
.nc-trust-badge-item span.dot {
  color: var(--nc-accent);
}
.nc-top-phone-link {
  color: #FFFFFF;
  text-decoration: none;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: color 0.2s;
  white-space: nowrap;
}
.nc-top-phone-link:hover { color: var(--nc-accent); }

/* MAIN NAVBAR */
.nc-main-navbar {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 16px;
  height: 76px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
}

/* LOGO */
.nc-logo-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
}
.nc-original-logo-img {
  height: 48px;
  width: auto;
  max-width: 220px;
  display: block;
  object-fit: contain;
}

/* DESKTOP NAV LINKS */
.nc-nav-menu {
  display: flex;
  align-items: center;
  gap: 6px;
  list-style: none;
  margin: 0;
  padding: 0;
  height: 100%;
}
.nc-nav-item {
  height: 100%;
  display: flex;
  align-items: center;
  position: relative;
}
.nc-nav-item.nc-has-mega {
  position: static !important; /* CRITICAL: Enables exact horizontal centering of Mega Menu relative to navbar container! */
}
.nc-nav-link {
  padding: 8px 13px;
  font-size: 14.5px;
  font-weight: 700;
  color: var(--nc-navy);
  text-decoration: none;
  border-radius: 10px;
  transition: all 0.2s ease;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}
.nc-nav-link:hover, .nc-nav-item:hover > .nc-nav-link {
  color: var(--nc-primary);
  background: #F1F5F9;
}

/* MEGA MENU DROPDOWN - EXACTLY CENTERED */
.nc-mega-menu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(8px);
  width: min(1200px, calc(100vw - 32px));
  max-width: 1200px;
  background: #FFFFFF;
  border-radius: 20px;
  border: 1.5px solid var(--nc-border);
  box-shadow: 0 20px 60px rgba(8,20,34,0.14);
  padding: 28px 32px 22px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: all 0.24s cubic-bezier(0.16, 1, 0.3, 1);
  z-index: 100000;
  box-sizing: border-box;
}
.nc-nav-item.nc-has-mega:hover .nc-mega-menu,
.nc-mega-menu:hover {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}

.nc-mega-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.nc-mega-col {
  display: flex;
  flex-direction: column;
}
.nc-mega-col-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-bottom: 12px;
  border-bottom: 1.5px solid var(--nc-border);
  margin-bottom: 12px;
}
.nc-mega-col-icon {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: rgba(72,187,120,0.12);
  color: var(--nc-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 800;
}
.nc-mega-col-title {
  font-size: 14.5px;
  font-weight: 800;
  color: var(--nc-primary);
  margin: 0;
  letter-spacing: -0.01em;
}

.nc-mega-links-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.nc-mega-link-item a {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--nc-text);
  text-decoration: none;
  transition: all 0.15s ease;
}
.nc-mega-link-item a:hover {
  background: #F8FAFC;
  color: var(--nc-accent);
  transform: translateX(3px);
}
.nc-mega-link-item a span.dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--nc-border);
  transition: background 0.15s;
}
.nc-mega-link-item a:hover span.dot {
  background: var(--nc-accent);
}

/* MEGA MENU BOTTOM BAR */
.nc-mega-bottom-bar {
  margin-top: 20px;
  padding-top: 14px;
  border-top: 1px solid var(--nc-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #F8FAFC;
  padding: 12px 18px;
  border-radius: 12px;
}
.nc-mega-bottom-trust {
  font-size: 12px;
  font-weight: 700;
  color: var(--nc-text-muted);
  display: flex;
  align-items: center;
  gap: 16px;
}

/* HEADER CTAS */
.nc-header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}
.nc-btn-header-cta {
  background: var(--nc-accent);
  color: #081422 !important;
  padding: 11px 20px;
  border-radius: 12px;
  font-size: 13.5px;
  font-weight: 800;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  box-shadow: 0 4px 14px rgba(72,187,120,0.3);
  transition: all 0.2s ease;
  white-space: nowrap;
}
.nc-btn-header-cta:hover {
  background: var(--nc-accent-hover);
  transform: translateY(-2px);
}
.nc-burger-btn {
  display: none;
  background: none;
  border: none;
  font-size: 24px;
  color: var(--nc-primary);
  cursor: pointer;
  padding: 6px;
}

/* MOBILE DRAWER */
.nc-mobile-drawer {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(8,20,34,0.6);
  backdrop-filter: blur(8px);
  z-index: 200000;
}
.nc-mobile-drawer-content {
  width: 88%;
  max-width: 380px;
  height: 100%;
  background: #FFFFFF;
  margin-left: auto;
  padding: 24px 20px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.nc-mobile-header-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--nc-border);
}
.nc-mobile-group-title {
  font-size: 12px;
  text-transform: uppercase;
  font-weight: 800;
  color: var(--nc-accent);
  letter-spacing: 0.05em;
  margin: 14px 0 6px;
}
.nc-mobile-sublink {
  display: block;
  padding: 6px 12px;
  font-size: 14px;
  color: var(--nc-navy);
  text-decoration: none;
  font-weight: 600;
  border-radius: 8px;
}
.nc-mobile-sublink:hover { background: #F8FAFC; color: var(--nc-accent); }

@media (max-width: 1024px) {
  .nc-nav-menu, .nc-top-trust-bar { display: none !important; }
  .nc-burger-btn { display: block !important; }
}
/* nc-anim-engine-v4-styles */
/* Top Scroll Progress Bar */
#nc-scroll-progress-bar {
  position: fixed;
  top: 0;
  left: 0;
  height: 3.5px;
  width: 0%;
  background: linear-gradient(90deg, #48BB78, #38A169, #68D391);
  z-index: 999999;
  transition: width 0.08s ease-out;
  box-shadow: 0 0 10px rgba(72, 187, 120, 0.6);
  pointer-events: none;
}

/* 2026 Micro-Interactions & Hover Glow */
.nc-interactive-card,
.nc-silos-grid > div,
.nc-bento-3-grid > div,
.wp-block-kadence-column {
  transition: transform 0.28s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.28s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.28s ease !important;
}
.nc-interactive-card:hover,
.nc-silos-grid > div:hover,
.nc-bento-3-grid > div:hover {
  transform: translateY(-4px) scale(1.008) !important;
  box-shadow: 0 14px 34px rgba(8, 20, 34, 0.09), 0 0 0 1px rgba(72, 187, 120, 0.25) !important;
}

/* Button Pulse & Glow */
.nc-btn-accent, a.nc-btn-glow {
  position: relative;
  overflow: hidden;
}
.nc-btn-accent::after {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle, rgba(255,255,255,0.2) 0%, transparent 60%);
  opacity: 0;
  transform: scale(0.5);
  transition: opacity 0.3s, transform 0.3s;
  pointer-events: none;
}
.nc-btn-accent:hover::after {
  opacity: 1;
  transform: scale(1);
}

/* Badge Shimmer */
@keyframes ncShimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}
.nc-shimmer-badge {
  background: linear-gradient(90deg, rgba(72,187,120,0.12) 0%, rgba(72,187,120,0.3) 50%, rgba(72,187,120,0.12) 100%);
  background-size: 200% 100%;
  animation: ncShimmer 3.5s infinite;
}
/* 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 entfernt am 23.08.2026 auf Kundenwunsch: Der Wort-fuer-Wort-Blur machte
   Ueberschriften beim Scrollen zeitweise unlesbar. Regel bleibt als Notnagel,
   falls irgendwo noch die alte Klasse im Inhalt steht. */
.ncx-word-blur .nc-w{display:inline;filter:none !important;opacity:1 !important}

/* 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-scroll-hover-master-css */
/* ══════════════════════════════════════════════════════════
       1. HARDWARE-BESCHLEUNIGTE SCROLL-REVEAL ANIMATIONEN
       ══════════════════════════════════════════════════════════ */
    .ncx-reveal,
    .nc-reveal,
    [data-nc-reveal] {
        opacity: 0;
        transform: translateY(24px) scale(0.99);
        filter: blur(1.5px);
        transition: opacity 0.75s cubic-bezier(0.16, 1, 0.3, 1),
                    transform 0.75s cubic-bezier(0.16, 1, 0.3, 1),
                    filter 0.75s cubic-bezier(0.16, 1, 0.3, 1) !important;
        will-change: transform, opacity, filter;
    }

    .ncx-reveal.is-revealed,
    .ncx-reveal.nc-shown,
    .nc-reveal.is-revealed,
    .nc-reveal.nc-shown,
    .nc-reveal.in,
    .nc-reveal.nc-visible,
    [data-nc-reveal].is-revealed,
    [data-nc-reveal].nc-shown {
        opacity: 1 !important;
        transform: translateY(0) scale(1) !important;
        filter: blur(0) !important;
    }

    /* Stagger Delays für nebeneinanderliegende Elemente */
    .ncb-grid > *:nth-child(1), .nc-district-grid > *:nth-child(1), .nc-bento-grid > *:nth-child(1) { transition-delay: 0.05s !important; }
    .ncb-grid > *:nth-child(2), .nc-district-grid > *:nth-child(2), .nc-bento-grid > *:nth-child(2) { transition-delay: 0.12s !important; }
    .ncb-grid > *:nth-child(3), .nc-district-grid > *:nth-child(3), .nc-bento-grid > *:nth-child(3) { transition-delay: 0.19s !important; }
    .ncb-grid > *:nth-child(4), .nc-district-grid > *:nth-child(4), .nc-bento-grid > *:nth-child(4) { transition-delay: 0.26s !important; }
    .ncb-grid > *:nth-child(5), .nc-district-grid > *:nth-child(5), .nc-bento-grid > *:nth-child(5) { transition-delay: 0.33s !important; }
    .ncb-grid > *:nth-child(6), .nc-district-grid > *:nth-child(6), .nc-bento-grid > *:nth-child(6) { transition-delay: 0.40s !important; }

    /* ══════════════════════════════════════════════════════════
       2. HOVER MICRO-INTERACTIONS (CARDS, BUTTONS & LINKS)
       ══════════════════════════════════════════════════════════ */
    
    /* Bento Cards & Service Cards */
    .nc-bento-card,
    .ncb-card,
    .nc-district-card,
    .ncb-front,
    .ncb-pf,
    .ncb-hs2,
    .ncb-bedarf-karte,
    .nc-service-card {
        transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1),
                    box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1),
                    border-color 0.25s ease !important;
    }

    .nc-bento-card:hover,
    .ncb-card:hover,
    .nc-district-card:hover,
    .ncb-pf:hover,
    .ncb-bedarf-karte:hover {
        transform: translateY(-4.5px) scale(1.008) !important;
        border-color: #48BB78 !important;
        box-shadow: 0 18px 40px -10px rgba(72, 187, 120, 0.18), 0 0 0 1px rgba(72, 187, 120, 0.45) !important;
    }

    /* Icon Rotation & Zoom on Card Hover */
    .nc-bento-card:hover .ic,
    .ncb-card:hover .ic,
    .nc-district-card:hover .nc-district-badge,
    .nc-service-card:hover .nc-card-icon {
        transform: scale(1.12) rotate(-3deg) !important;
        transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
    }

    /* Image Shimmer on Hover */
    .ncb-hs2,
    .ncb-back {
        transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s ease !important;
    }
    .ncb-hs2:hover {
        transform: translateY(-4px) scale(1.01) !important;
        box-shadow: 0 20px 46px rgba(11, 24, 40, 0.35) !important;
    }

    /* Primary & Secondary Buttons Active/Hover */
    .nc-button,
    .ncb-btn,
    .wp-block-button__link,
    .nc-btn-primary,
    .header-cta-btn {
        position: relative;
        overflow: hidden;
    }

    .nc-button .arw,
    .ncb-btn .arw,
    .nc-district-action span {
        display: inline-block;
        transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;
    }

    .nc-button:hover .arw,
    .ncb-btn:hover .arw,
    .nc-district-card:hover .nc-district-action span {
        transform: translateX(6px) !important;
    }

    /* Links Subtile Unterstreichung & Hover */
    .entry-content a:not([class]):hover,
    p a:not([class]):hover {
        color: #48BB78 !important;
        text-decoration-thickness: 2px !important;
    }

    /* Reduced Motion Fallback */
    @media (prefers-reduced-motion: reduce) {
        *, .ncx-reveal, .nc-reveal, .nc-button, .nc-bento-card {
            transition: none !important;
            transform: none !important;
            animation: none !important;
            filter: none !important;
        }
    }
/* nc-district-map-css */
.ncx-map-dot{cursor:pointer}
/* nc-maplabel-kontrast: Faellt Text unformatiert in die Infoflaeche, erbte er
   die dunkle Fliesstextfarbe und war auf Navy unlesbar. */
.ncx-map-label,.ncx-map-label div{color:#E1E7EC}
.ncx-map-label div:first-child>div:first-child{color:#48BB78}
.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:#48BB78;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:#38A169}
#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 #48BB78;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) {
	/* Submenu closed by default */
	.wp-block-navigation li.has-child.nc-mega > .wp-block-navigation__submenu-container {
		position: absolute !important;
		top: calc(100% + 10px) !important;
		left: 50% !important;
		transform: translateX(-50%) translateY(8px) !important;
		width: min(1200px, calc(100vw - 48px)) !important;
		padding: 28px 24px !important;
		background: #FFFFFF !important;
		border: 1px solid rgba(0, 0, 0, 0.08) !important;
		border-radius: 20px !important;
		box-shadow: 0 25px 60px -10px rgba(18, 50, 74, 0.18), 0 0 0 1px rgba(0, 0, 0, 0.04) !important;
		z-index: 99999 !important;
		display: none !important;
		opacity: 0 !important;
		visibility: hidden !important;
		pointer-events: none !important;
		transition: opacity 0.25s ease, transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.25s ease !important;
	}

	/* Show on Hover / Focus / Class */
	.wp-block-navigation li.has-child.nc-mega:hover > .wp-block-navigation__submenu-container,
	.wp-block-navigation li.has-child.nc-mega:focus-within > .wp-block-navigation__submenu-container,
	.wp-block-navigation li.has-child.nc-mega.nc-sub-open > .wp-block-navigation__submenu-container {
		display: block !important;
		opacity: 1 !important;
		visibility: visible !important;
		pointer-events: auto !important;
		transform: translateX(-50%) translateY(0) !important;
	}

	.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: translateY(8px) !important;
	}
	.wp-block-navigation li.has-child.nc-mega:not(.nc-mega-s):hover > .wp-block-navigation__submenu-container,
	.wp-block-navigation li.has-child.nc-mega:not(.nc-mega-s):focus-within > .wp-block-navigation__submenu-container,
	.wp-block-navigation li.has-child.nc-mega:not(.nc-mega-s).nc-sub-open > .wp-block-navigation__submenu-container {
		transform: translateY(0) !important;
	}

	.wp-block-navigation li.has-child.nc-mega.nc-mega-s > .wp-block-navigation__submenu-container {
		left: auto !important;
		right: 0 !important;
		transform: translateY(8px) !important;
		width: 440px !important;
		padding: 24px !important;
	}
	.wp-block-navigation li.has-child.nc-mega.nc-mega-s:hover > .wp-block-navigation__submenu-container,
	.wp-block-navigation li.has-child.nc-mega.nc-mega-s:focus-within > .wp-block-navigation__submenu-container,
	.wp-block-navigation li.has-child.nc-mega.nc-mega-s.nc-sub-open > .wp-block-navigation__submenu-container {
		transform: translateY(0) !important;
	}

	.nc-mega-grid { display: grid; gap: 20px; }
	.nc-mega-grid.cols-1 { grid-template-columns: 1fr; }
	.nc-mega-grid.cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

	.nc-mega-coltitle {
		color: #0EA99B !important;
		font-family: "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;
		font-size: 13px !important;
		font-weight: 800 !important;
		letter-spacing: .06em;
		text-transform: uppercase;
		margin: 0 0 14px;
		padding-bottom: 8px;
		border-bottom: 1.5px solid rgba(14, 169, 155, 0.2);
	}

	a.nc-mega-link {
		display: flex;
		gap: 12px;
		align-items: flex-start;
		padding: 9px 10px;
		border-radius: 12px;
		border-left: 3px solid transparent;
		text-decoration: none;
		color: #12324A !important;
		transition: background .16s ease, transform .16s ease, border-color .16s ease;
		margin-bottom: 4px;
	}
	a.nc-mega-link:hover, a.nc-mega-link:focus-visible {
		background: #F0FDF4 !important;
		border-left-color: #0EA99B !important;
		transform: translateX(3px);
		outline: none;
	}
	.nc-mega-ico {
		flex: 0 0 auto;
		width: 36px;
		height: 36px;
		border-radius: 10px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		background: #E6FFFA !important;
		color: #0EA99B !important;
		border: 1px solid rgba(14, 169, 155, 0.2);
		transition: background .16s ease;
	}
	a.nc-mega-link:hover .nc-mega-ico {
		background: #0EA99B !important;
		color: #FFFFFF !important;
	}
	.nc-mega-ico svg { width: 18px; height: 18px; }
	.nc-mega-link > span:last-child { display: block; min-width: 0; }
	.nc-mega-t { display: block; font-size: 14px; font-weight: 700; line-height: 1.25; color: #12324A !important; }
	.nc-mega-d { display: block; font-size: 12px; line-height: 1.35; color: #64748B !important; margin-top: 2px; }

	@media (prefers-reduced-motion: reduce) {
		a.nc-mega-link { transition: none; }
		a.nc-mega-link:hover { transform: none; }
	}
}
