





/* ==== Reset & Base ==== */
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Poppins',sans-serif;background:#f5f8fc;padding-top:120px}

.navbar {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: 120px;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 40px;
  z-index: 1000;

  /* Vertikal (oben hell → unten dunkel) + horizontal gespiegelt */
  background: linear-gradient(180deg, #2c5364 0%, #203a43 60%, #0f2027 100%),
              linear-gradient(270deg, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.25) 100%);
  box-shadow: 0 4px 20px rgba(0,0,0,.35);
}
.logo-container{display:flex;align-items:flex-end;height:100%;margin-left:-10px}
.logo{height:120px;width:auto}

/* ==== Links (Layout) ==== */
.nav-links{display:flex;align-items:center;gap:24px;list-style:none}
.nav-links li{position:relative}
.nav-links a{
  display:inline-flex;align-items:center;gap:6px;
  text-decoration:none;color:#fff;font-weight:500;font-size:18.5px;
  transition:color .25s ease
}
.nav-links a:hover{color:#00ffcc}
.nav-links .active>a{color:#00ffcc;border-bottom:2px solid #00ffcc}

/* ==== Pill-Stil + Hover / Press ==== */
.nav-links>li:not(.active)>a{
  position:relative;overflow:hidden;
  padding:7px 14px;border-radius:14px;
  background:rgba(0,0,0,.2);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
  -webkit-backdrop-filter:saturate(120%) blur(2px);
  backdrop-filter:saturate(120%) blur(2px);
  transition:background-color .25s ease,box-shadow .25s ease,transform .18s ease,color .25s ease;
}
.nav-links>li:not(.active)>a:hover,
.nav-links>li:not(.active)>a:focus{
  background:rgba(0,0,0,.3);
  color:#00ffcc;
  box-shadow:0 8px 22px rgba(0,184,169,.18), inset 0 1px 0 rgba(255,255,255,.14);
  outline:none;
}
.nav-links>li:not(.active)>a:active{transform:translateY(1px) scale(.985)}
/* Glanz-Sweep */
.nav-links>li:not(.active)>a::before{
  content:"";position:absolute;inset:0;left:-130%;
  background:linear-gradient(120deg,transparent 0%,rgba(255,255,255,.15) 50%,transparent 100%);
  transform:skewX(-20deg);opacity:0;transition:transform .55s ease,opacity .35s ease;pointer-events:none
}
.nav-links>li:not(.active)>a:hover::before,
.nav-links>li:not(.active)>a:focus::before{transform:translateX(230%) skewX(-20deg);opacity:.9}
/* Ripple */
.nav-links>li:not(.active)>a::after{
  content:"";position:absolute;top:50%;left:50%;width:10px;height:10px;border-radius:999px;
  background:radial-gradient(circle at center,rgba(0,184,169,.45),transparent 70%);
  transform:translate(-50%,-50%) scale(0);transition:transform .35s ease;pointer-events:none
}
.nav-links>li:not(.active)>a:active::after{transform:translate(-50%,-50%) scale(14)}

/* ==== Neuer Pfeil (näher am Text + Animationen) ==== */
.nav-arrow{
  display:inline-block;margin-left:2px;width:.9em;text-align:center;line-height:1;opacity:.9;
  transform:translateY(1px) rotate(0deg);transition:
    transform .22s cubic-bezier(.3,.7,.2,1.2),
    opacity .2s ease,color .2s ease, letter-spacing .2s ease
}
.nav-arrow::before{content:"❯"}              /* schlanker Rechts-Pfeil */
.dropdown>a:hover .nav-arrow,
.dropdown>a:focus .nav-arrow{color:#00ffcc;opacity:1;letter-spacing:.5px}
.dropdown>a:active .nav-arrow{transform:translateY(2px) rotate(10deg) scale(1.08)}
.dropdown>a[aria-expanded="true"] .nav-arrow{transform:translateY(2px) rotate(90deg)} /* nach unten */

/* ==== Dropdown (connected) ==== */
.dropdown-menu{
  position:absolute;top:calc(100% + 12px);left:0;min-width:230px;
  background:#1b2a37;border-radius:14px;border:1px solid rgba(255,255,255,.08);
  box-shadow:0 16px 40px rgba(0,0,0,.35);
  list-style:none;padding:8px 0;
  opacity:0;transform:translateY(6px) scale(.98);
  pointer-events:none;transition:opacity .22s ease, transform .22s ease;
  z-index:2000
}
/* Connector unter dem Pill – perfekt zentriert */
.dropdown.open > a::after{
  content:"";position:absolute;left:50%;bottom:-8px;transform:translateX(-50%);
  width:22px;height:12px;border-radius:0 0 10px 10px;background:#1b2a37;
  border-left:1px solid rgba(255,255,255,.08);
  border-right:1px solid rgba(255,255,255,.08);
  border-bottom:1px solid rgba(255,255,255,.08);
  box-shadow:0 6px 12px rgba(0,0,0,.22);pointer-events:none
}
/* wenn offen, Pill optisch verbinden */
.dropdown.open > a{
  background:rgba(0,0,0,.34);
  border-color:rgba(0,255,204,.22);
  box-shadow:0 12px 26px rgba(0,184,169,.16), inset 0 1px 0 rgba(255,255,255,.18);
}

.dropdown-menu.show{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}

.dropdown-menu li{width:100%}
.dropdown-menu a{
  display:block;padding:12px 16px;color:#fff;font-size:15px;
  transition:background .18s ease, padding-left .18s ease
}
.dropdown-menu a:hover,
.dropdown-menu a:focus{background:#2a3a48;color:#00ffcc;outline:none;padding-left:20px}

/* ==== CTA ==== */
.highlight-link{
  color:#00ffcc;border:2px solid #00ffcc;border-radius:12px;padding:6px 14px;transition:all .3s ease
}
.highlight-link:hover{background:#00ffcc;color:#003344}

/* ==== Mobile ==== */
.hamburger{display:none;font-size:26px;color:#fff;background:none;border:none;cursor:pointer}
.mobile-shortcuts{display:none}

@media (max-width:900px){
  body{padding-top:80px}

  .navbar{height:80px;padding:0 20px}
  .logo{height:70px}
  .logo-container{margin-left:-10px;margin-bottom:8px}

  .navbar-right-mobile{display:flex;align-items:center;gap:12px}

  .mobile-shortcuts{display:flex;gap:12px;align-items:center}
  .mobile-shortcuts a{
    display:flex;align-items:center;justify-content:center;width:40px;height:40px;
    background:rgba(0,184,169,.12);border-radius:50%;color:#00b8a9;font-size:18px;
    transition:transform .2s ease, background-color .2s ease, color .2s ease
  }
  .mobile-shortcuts a:hover{background:rgba(0,184,169,.2);color:#009e92;transform:scale(1.1)}

  .hamburger{display:block}

  /* Burger-Menü Panel */
  .nav-links{
    display:none;flex-direction:column;position:absolute;top:80px;left:0;right:0;
    background:#1a2733;padding:20px;gap:15px;border-radius:0px;
    box-shadow:0 4px 12px rgba(0,0,0,.2);z-index:999
  }
  .nav-links.active{display:flex}

  /* Zentrierte Links (CTA bleibt rund, weil wir gleich nur .dropdown überschreiben) */
  .nav-links a{
    font-size:16px;
    padding:14px 16px;
    display:flex;align-items:center;justify-content:center;gap:8px;
    border-radius:12px;
    background:rgba(255,255,255,.04);
    transition:background-color .25s ease, transform .15s ease, color .25s ease
  }
  .nav-links a:hover{background:rgba(255,255,255,.08);transform:scale(1.03)}
  .nav-links a:active{transform:scale(.97);background:rgba(0,184,169,.15)}
  .dropdown > a{width:100%} /* volle Klickfläche */

  /* >>> Nur DROPDOWN kantig (Trigger + Menü + Items) <<< */
  .dropdown > a{ border-radius:0; }
  .dropdown.open > a{ border-radius:0; }
  .dropdown-menu{ border-radius:0; }
  .dropdown-menu a{ border-radius:0; } /* falls später abgerundet wird, hier hart auf 0 */

  /* Pfeil näher am Text + Rotation beim Öffnen */
  .nav-arrow{
    display:inline-block;margin-left:6px;line-height:1;opacity:.95;
    transition:transform .22s cubic-bezier(.3,.7,.2,1.2), color .2s ease
  }
  .dropdown > a:hover .nav-arrow{color:#00ffcc}
  .dropdown > a[aria-expanded="true"] .nav-arrow{transform:rotate(90deg)} /* nach unten */

  /* Mobile-Dropdown: standardmäßig zu, weich ausfahren */
  .dropdown-menu{
    position:static;min-width:unset;border:none;
    background:#253544;box-shadow:none;margin-top:8px;

    display:block;max-height:0;opacity:0;overflow:hidden;pointer-events:none;padding:0;
    transform:none;
    transition:max-height .28s ease, opacity .22s ease, padding .22s ease
  }
  .dropdown.open .dropdown-menu{
    max-height:1000px;opacity:1;pointer-events:auto;padding:6px 0
  }

  /* Mobile: kein Connector unter dem Pill */
  .dropdown.open > a::after{display:none}
}
  
  
  
  
  
  
  
  .step-container {
    max-width: 1100px;
    margin: 40px auto;
    padding: 0 20px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
  }
  
  @media screen and (max-width: 768px) {
    .step-container {
      grid-template-columns: 1fr;
    }
  }
  
  .step-box {
    background: #ffffff;
    border: 1px solid #e3e9ef;
    border-radius: 12px;
    padding: 24px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05);
    transition: box-shadow 0.3s ease, transform 0.2s ease;
    cursor: pointer;
  }
  
  .step-box:hover {
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.08);
    transform: translateY(-2px);
  }
  
  /* ✅ Nur für abgeschlossene Schritte */
  .step-box.completed {
    border: 2px solid #28a745;
    background-color: #f5fff5;
  }
  
  /* Header: Icon, Titel, Häkchen */
  .step-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
  }
  
  .step-header i {
    font-size: 20px;
    color: #00b8a9;
  }
  
  .step-title {
    font-size: 18px;
    font-weight: 600;
    color: #1a2a33;
    flex: 1;
  }
  
  /* ✔️ Haken */
  .step-status {
    font-size: 16px;
    font-weight: 600;
    color: #28a745;
  }
  
  /* Beschreibung */
  .step-description {
    font-size: 14.5px;
    color: #4a5a68;
    line-height: 1.6;
  }
  
  
  
  .tarif-section {
    max-width: 1100px;
    margin: 40px auto 60px;
    padding: 0 20px;
    text-align: center;
  }
  
  .tarif-title {
    font-size: 24px;
    font-weight: 600;
    color: #1a2a33;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
  }
  
  .tarif-subtitle {
    font-size: 14.5px;
    color: #4a5a68;
    margin-bottom: 26px;
  }
  
  .tarif-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 20px;
  }
  
  .tarif-box {
    background: #ffffff;
    border: 1px solid #e3e9ef;
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04);
    transition: transform 0.2s ease, box-shadow 0.3s ease, border-color 0.2s ease;
    cursor: pointer;
  }
  
  .tarif-box:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
  }
  
  .tarif-box.selected {
    border: 2px solid #00b8a9;
    box-shadow: 0 0 10px rgba(0, 184, 169, 0.25);
    transform: scale(1.02);
  }
  
  .tarif-box h3 {
    font-size: 16px;
    color: #1a2a33;
    font-weight: 600;
    margin-bottom: 8px;
  }
  
  .tarif-price {
    font-size: 15px;
    font-weight: 500;
    color: #00b8a9;
  }
  
  /* Toggle-Button für mehr/weniger Tarife */
  .tarif-toggle-btn {
    margin-top: 24px;
    padding: 10px 20px;
    background-color: #00b8a9;
    color: white;
    border: none;
    border-radius: 8px;
    font-weight: 600;
    font-size: 14px;
    cursor: pointer;
    transition: background 0.3s ease;
  }
  
  .tarif-toggle-btn:hover {
    background-color: #009d94;
  }
  
  /* Für Mobilgeräte: Tarife ab Index 2 zunächst ausblenden */
  @media screen and (max-width: 600px) {
    .hide-mobile {
      display: none;
    }
    .mobile-only {
      display: inline-block;
      margin-top: 20px;
    }
  }
  
  @media screen and (min-width: 601px) {
    .mobile-only {
      display: none;
    }
  }
  
  
  
  
  
  











  .navbar-user-display {
    display: block;
    color: #bbb;
    font-size: 15px;
    padding: 12px 16px;
    cursor: default;
    opacity: 0.9;
    background: transparent;
    font-weight: 500;
  }
  








  /* Toasts */
#toast-container {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.toast {
  opacity: 0;
  transform: translateY(-8px);
  background: #1a2a33;
  color: #fff;
  padding: 12px 14px;
  border-radius: 10px;
  box-shadow: 0 10px 22px rgba(0,0,0,.15);
  transition: all .25s ease;
  font-size: 14px;
  max-width: 280px;
}

.toast.show {
  opacity: 1;
  transform: translateY(0);
}

.toast.success { background: #00b8a9; }
.toast.error   { background: #d64545; }
