.elementor-2059 .elementor-element.elementor-element-df7e8de{--display:flex;--flex-direction:column-reverse;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--gap:30px 30px;--row-gap:30px;--column-gap:30px;}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}/* Start custom CSS for html, class: .elementor-element-cf4b2cb */:root{
  --bg: rgba(5,6,10,.75);
  --ink:#e6f7ff; --muted:#9aa4ad;
  --glass: rgba(255,255,255,.06);
  --line: rgba(255,255,255,.10);
  --accent:#7b61ff; --accent2:#00f59e;
}

/* Header Frame */
.aix-header{
  position:sticky; top:0; z-index:1000;
  background:linear-gradient(to bottom,var(--bg),rgba(5,6,10,.45));
  -webkit-backdrop-filter:saturate(150%) blur(10px);
  backdrop-filter:saturate(150%) blur(10px);
  border-bottom:1px solid var(--line);
}
.aix-header .shell.header-inner{
  max-width:1200px; margin:auto;
  display:grid; grid-template-columns:auto 1fr auto;
  align-items:center; gap:1rem;
  padding:.85rem 1.2rem; position:relative; isolation:isolate;
}

/* Brand */
.brand{display:inline-flex; align-items:center; gap:.6rem; text-decoration:none}
.brand__text{font:800 1.05rem/1 Rajdhani,sans-serif; letter-spacing:.08em; color:var(--ink)}
.brand__dot{width:.75rem;height:.75rem;border-radius:50%;
  background:radial-gradient(circle at 30% 30%,#8afcf1,#00f59e00);
  box-shadow:0 0 18px #8afcf180;
}

/* Nav Desktop */
.nav{justify-self:center}
.menu{display:flex; gap:1rem; list-style:none; margin:0; padding:0}
.menu>li{position:relative}
.menu a{display:inline-block; padding:.5rem .7rem; border-radius:.5rem; color:var(--muted); font-weight:700; text-decoration:none}
.menu a:hover{color:var(--ink); background:var(--glass)}

/* Submenu – zentriert & hover-bridge */
.has-sub{position:relative}
.has-sub::after{
  content:""; position:absolute; left:50%; transform:translateX(-50%);
  top:100%; width:120%; height:18px; pointer-events:auto;
}
.sub{
  position:absolute; top:calc(100% + .35rem); left:50%; transform:translateX(-50%);
  min-width:240px; padding:.5rem 0; list-style:none; margin:0;
  background:rgba(5,6,10,.96); border:1px solid var(--line); border-radius:.6rem;
  box-shadow:0 14px 40px rgba(0,0,0,.35);
  display:block; opacity:0; pointer-events:none; transition:opacity .2s ease;
  z-index:10;
}
.sub a{display:block; padding:.6rem .9rem; color:#dff; border-radius:0}
.sub a:hover{background:rgba(255,255,255,.08); color:#fff}
.has-sub:hover>.sub,
.has-sub:focus-within>.sub,
.has-sub:has(.sub:hover)>.sub{opacity:1; pointer-events:auto}

/* Actions */
.header-actions{display:flex; align-items:center; gap:.6rem}
.cta{display:inline-flex; align-items:center; gap:.4rem; padding:.55rem .85rem; font-weight:800; border-radius:.8rem; text-decoration:none}
.cta--ghost{border:1px solid var(--line); background:var(--glass); color:var(--ink)}
.cta--primary{background:linear-gradient(90deg,var(--accent2),#b8ffe7); color:#063; box-shadow:0 10px 30px #00f59e2c}

/* Toggle (Hamburger) */
.nav-toggle{display:none; align-items:center; justify-content:center; width:42px; height:42px; border-radius:.6rem; border:1px solid var(--line); background:var(--glass); cursor:pointer}
.nav-toggle__icon{width:22px; height:22px}
.nav-toggle .bar{stroke:#e6f7ff; stroke-width:2; stroke-linecap:round; transition:transform .18s, opacity .18s}

/* Scrim (hidden by default) */
.nav-scrim{
  position:fixed; inset:0; background:rgba(0,0,0,.5);
  opacity:0; pointer-events:none; transition:opacity .2s ease;
  z-index: 900; /* unter Drawer (1001), über Content */
}

/* Mobile Drawer */
@media (max-width: 980px){
  .nav-toggle{display:inline-flex}
  .nav{position:fixed; top:0; right:0; bottom:0; width:84vw; max-width:360px;
    background:rgba(8,10,16,.95); border-left:1px solid var(--line);
    transform:translateX(100%); transition:transform .25s ease;
    z-index:1001; /* über Scrim */
    padding:84px 1rem 1rem; /* Platz für Header */
  }
  .menu{flex-direction:column}
  .has-sub::after{display:none}
  .sub{position:static; transform:none; opacity:1; pointer-events:auto; border:none; box-shadow:none; background:transparent; padding:.2rem 0}
  .sub a{padding:.45rem .7rem}
  /* open state via checkbox */
  .navchk:checked ~ .nav{transform:translateX(0)}
  .navchk:checked ~ .header-actions .nav-toggle{box-shadow:0 0 0 2px rgba(0,245,158,.18) inset}
  .navchk:checked ~ .header-actions .bar--top{transform:translateY(6px) rotate(45deg)}
  .navchk:checked ~ .header-actions .bar--mid{opacity:0}
  .navchk:checked ~ .header-actions .bar--bottom{transform:translateY(-6px) rotate(-45deg)}
  /* scrim sichtbar wenn open */
  .aix-header .navchk:checked ~ .nav-scrim{opacity:1; pointer-events:auto}
}

/* Accessibility helpers */
.visually-hidden{position:absolute!important; clip:rect(1px,1px,1px,1px); clip-path:inset(50%); height:1px; width:1px; overflow:hidden; white-space:nowrap}/* End custom CSS */
/* Start custom CSS *//* === AIX Header: Top-Offset Fix (WP + Neve/Elementor safe) === */

/* 1) Header wirklich ganz oben fixieren */
.aix-header{
  position: fixed;           /* statt sticky */
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
}

/* 2) WordPress Admin-Bar berücksichtigen (nur wenn eingeloggt) */
.admin-bar .aix-header{ top: 32px; }      /* Desktop Admin-Bar Höhe */
@media (max-width: 782px){
  .admin-bar .aix-header{ top: 46px; }    /* Mobile Admin-Bar Höhe */
}

/* 3) Ersten Inhaltsblock unter den Header schieben (damit nichts verdeckt) */
:root{
  --aix-header-h: 64px;                   /* tatsächliche Headerhöhe (innen + Border) */
}
/* Standard */
body:not(.admin-bar) {
  /* Falls dein Theme NICHT automatisch kompensiert: */
  padding-top: var(--aix-header-h);
}
/* Mit Admin-Bar addiere die Bar-Höhe oben drauf */
.admin-bar body{
  padding-top: calc(var(--aix-header-h) + 32px);
}
@media (max-width: 782px){
  .admin-bar body{
    padding-top: calc(var(--aix-header-h) + 46px);
  }
}

/* 4) Eventuelle Theme-/Section-Topabstände neutralisieren (nur ganz oben) */
body > header.aix-header + * {
  /* Ersten folgenden Block: negiere überschüssige Außenabstände nach oben */
  margin-top: 0 !important;
}

/* 5) Scrim muss unterhalb des fixen Headers liegen */
.nav-scrim{
  z-index: 900; /* bleibt unter .aix-header (1000) und unter Drawer (1001) */
}

/* 6) Visuelles: gleiche Höhe innen sicherstellen */
.aix-header .shell.header-inner{
  min-height: var(--aix-header-h);
  box-sizing: border-box;
}/* End custom CSS */