/* Navigation und Fußzeile — gilt für alle Seiten.
   Wird in head.html NACH dem seitenspezifischen CSS geladen, damit
   Alt-Regeln aus den früheren Inline-Styles nicht mehr durchschlagen. */

/* Sprunglink: nur bei Tastaturfokus sichtbar.
   Muss hier stehen, da nicht alle Seiten site.css laden. */
.skip{position:absolute;left:-9999px;top:0;width:1px;height:1px;overflow:hidden}
.skip:focus{left:0;z-index:200;width:auto;height:auto;background:var(--magenta);color:#fff;padding:12px 20px;border-radius:0 0 8px 0;font-size:14px;font-weight:600;text-decoration:none}

/* ---------- Kopfzeile ---------- */
.navbar{background:#fff;border-bottom:1px solid var(--hairline);position:sticky;top:0;z-index:50}
.nav-inner{max-width:1240px;margin:0 auto;display:flex;align-items:center;gap:48px;padding:18px 36px;min-height:76px}
.brand{flex-shrink:0;display:flex;align-items:center}
.brand a{display:block;line-height:0}
.brand img{height:44px!important;width:auto!important;max-width:none!important;mix-blend-mode:multiply;display:block}
.links{display:flex;align-items:center;gap:6px;margin-left:auto;margin-right:8px}
.links>a,.navgroup>a{color:var(--ink);text-decoration:none;font-size:14.5px;font-weight:500;padding:10px 16px;border-radius:8px;position:relative;white-space:nowrap;display:inline-flex;align-items:center;gap:5px}
.links>a:hover,.navgroup>a:hover{background:#F1F2F6}
.links a.act{color:var(--magenta);font-weight:600}
.links>a.act::after,.navgroup>a.act::after{content:"";position:absolute;left:13px;right:13px;bottom:4px;height:2px;background:var(--magenta);border-radius:2px}
.caret{width:11px!important;height:11px!important;flex:0 0 auto;opacity:.55;transition:transform .14s}
.navgroup:hover .caret,.navgroup:focus-within .caret{transform:rotate(180deg);opacity:1}
.nav-cta{display:flex;align-items:center;gap:10px;flex-shrink:0}
.nav-cta .arrow{width:14px!important;height:14px!important;flex:0 0 auto}

/* Untermenü beim Hovern */
.navgroup{position:relative;display:inline-flex}
.subnav{position:absolute;top:100%;left:0;min-width:262px;background:#fff;border:1px solid var(--hairline);border-radius:10px;box-shadow:0 12px 32px rgba(33,38,78,.12);padding:8px;display:flex;flex-direction:column;gap:1px;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .14s,transform .14s,visibility .14s;z-index:60}
.navgroup:hover .subnav,.navgroup:focus-within .subnav{opacity:1;visibility:visible;transform:translateY(0)}
.subnav a{font-size:13.5px;font-weight:500;color:var(--ink);text-decoration:none;padding:9px 14px;border-radius:6px;white-space:normal;line-height:1.35;display:block;position:relative}
.subnav a.sub{padding-left:28px}
.subnav a.sub::before{content:"";position:absolute;left:14px;top:50%;width:7px;height:1px;background:var(--magenta);transform:translateY(-50%)}
.subnav a:hover{background:#FBFBFD;color:var(--magenta)}

/* ---------- Fußzeile ---------- */
footer{background:var(--navy-deep);color:#C9CDDB;padding:52px 36px 28px}
.footer-inner{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:2.4fr 1fr 1fr;gap:56px;align-items:start}
.footer-inner.two{grid-template-columns:2.4fr 1fr 1fr}
.footer-inner img{height:34px!important;width:auto!important;max-width:none!important;margin-bottom:16px;display:block}
.footer-inner h2,.footer-inner h5{font-size:11px!important;letter-spacing:.18em!important;text-transform:uppercase!important;color:#fff!important;margin:0 0 12px!important;font-weight:700!important;line-height:1.3!important;font-family:inherit!important}
.footer-inner h2::after,.footer-inner h5::after,.footer-inner h2::before,.footer-inner h5::before{display:none!important}
.footer-inner ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:7px}
.footer-inner li{margin:0;padding:0}
.footer-inner li::before{display:none!important}
.footer-inner a{color:rgba(255,255,255,.86)!important;text-decoration:none;font-size:13px;line-height:1.45}
.footer-inner a:hover{color:#fff!important;text-decoration:underline}
.footer-inner p{font-size:13px!important;line-height:1.65!important;color:rgba(255,255,255,.86)!important;max-width:400px;margin:0!important}
footer .legal{max-width:1240px!important;margin:36px auto 0!important;padding-top:22px;border-top:1px solid rgba(255,255,255,.14);font-size:12px!important;color:rgba(255,255,255,.72)!important;line-height:1.5!important;background:none!important}
footer :focus-visible{outline:2px solid #fff;outline-offset:2px}


/* Burger nur auf Mobil */
.navtoggle,.burger,.nav-cta-mobile{display:none}

@media (max-width:1180px){.nav-cta{display:none}}

/* ---------- Mobile Navigation ---------- */
@media (max-width:900px){
  .navbar{position:static}
  .nav-inner{flex-wrap:wrap;gap:0;min-height:0;padding:12px 18px;align-items:center}
  .brand{margin-right:auto}
  .brand img{height:34px!important}

  .burger{display:flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:10px;cursor:pointer;border-radius:8px;flex:0 0 auto}
  .burger:hover{background:#F1F2F6}
  .burger span{display:block;height:2px;width:100%;background:var(--navy);border-radius:2px;transition:transform .18s,opacity .18s}
  .navtoggle:focus-visible+.burger{outline:2px solid var(--magenta);outline-offset:2px}
  .navtoggle:checked+.burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .navtoggle:checked+.burger span:nth-child(2){opacity:0}
  .navtoggle:checked+.burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

  .links{display:none;flex-direction:column;align-items:stretch;gap:2px;width:100%;margin:0;padding:10px 0 4px;border-top:1px solid var(--hairline)}
  .navtoggle:checked~.links{display:flex}
  .links>a,.navgroup>a{padding:12px 8px;font-size:15.5px;width:100%;justify-content:space-between;border-radius:8px}
  .links>a.act::after,.navgroup>a.act::after{left:8px;right:auto;width:26px;bottom:6px}
  .navgroup{display:block;width:100%}
  .caret{opacity:.5}

  /* Untermenü ausklappbar per Fokus/Hover, dauerhaft sichtbar eingerückt */
  .subnav{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;border-left:1px solid var(--hairline);border-radius:0;background:none;padding:2px 0 8px 14px;margin:0 0 0 8px;min-width:0!important;width:auto!important;gap:0}
  .subnav a{padding:9px 8px;font-size:14px}
  .subnav a.sub{padding-left:20px}
  .subnav a.sub::before{left:6px}

  .nav-cta-mobile{display:block;margin:10px 0 4px;padding:13px 20px!important;background:var(--magenta);color:#fff!important;border-radius:999px;font-size:15px;font-weight:600;text-align:center;text-decoration:none}
  .nav-cta-mobile:hover{background:#B30FA5;color:#fff!important}
}

/* ---------- Überlauf und Umbruch ---------- */
html,body{overflow-x:hidden;max-width:100%}
main{overflow-x:clip}
@media (max-width:900px){
  /* Dekorative Leuchtflächen sprengen sonst den Viewport */
  .heroglow,.gcta::after,.callout::after,.nicht::after,.lead-card::after,
  .role-card.self::after,.erbe-card.them::after,.stamm-stats::after,.sb-side::after,
  .constellation{display:none!important}
  /* Nichts darf am Zeilenende hängen bleiben */
  .hero .eyebrow,.eyebrow,.eyebrow-s,.gcta-btns a,.btn{white-space:normal!important}
  /* Bilder mit fester Breite und Umfluss werden zentriert */
  .prodshot.side,.prodshot.side.sm{float:none!important;width:auto!important;max-width:280px!important;margin:24px auto!important}
  /* Lange Adressen und Kennungen umbrechen */
  .mail,.rmail,code,.f-route{overflow-wrap:anywhere;word-break:break-word}
}
@media (max-width:760px){
  .footer-inner,.footer-inner.two{grid-template-columns:1fr!important;gap:32px}
  footer{padding:40px 20px 24px}
  .hero{padding-left:20px!important;padding-right:20px!important}
  .wrap,.container,.article{padding-left:20px!important;padding-right:20px!important}
}
