/* ==========================================================
   SHRINK-ON-SCROLL NAVIGATION - FIX: Desktop Textposition stabilisiert
   ========================================================== */

/* =========================
   Navbar Allgemein
   ========================= */
.navbar-custom {
  transition: background-color 0.3s ease, box-shadow 0.3s ease, padding 0.3s ease;
  background-color: rgba(0, 0, 0, 0.45) !important; /* leicht abgedunkelt */
  padding: 0.75rem 1rem;
  text-transform: uppercase;
  font-family: "Sofia Sans Condensed", sans-serif;

  /* optional, sehr edel bei Hero-Bildern */
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}


.dropdown-menu a,
.dropdown-item {
  text-transform: none !important;
  font-size: 1.2rem;
}

.navbar-custom.scrolled {
  background-color: #000 !important;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  padding: 0.35rem 1rem;
}

/* Logo Größen */
.navbar-brand img {
  height: 48px;
  transition: height 0.3s ease;
}

.navbar-custom.scrolled .navbar-brand img {
  height: 36px;
}

/* =========================
   Mobile Styles (UNVERÄNDERT)
   ========================= */
@media (max-width: 991.98px) {
  .navbar-custom {
    background-color: #000 !important;
    padding: 0.75rem 1rem !important;
  }

  .navbar-custom.scrolled {
    background-color: #000 !important;
    box-shadow: none !important;
  }

  .navbar-custom .navbar-brand img {
    height: 48px !important;
  }

  .navbar-collapse {
    position: fixed;
    top: var(--bs-navbar-height, 72px); /* Fallback */
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #000;
    overflow-y: auto;
    z-index: 1050;
    transform: translateY(-20px);
    opacity: 0;
    transition: transform 0.3s ease, opacity 0.3s ease;
  }

  .navbar-collapse.show {
    transform: translateY(0);
    opacity: 1;
  }

  .mobile-menu-modern .nav-link {
    display: block;
    width: 100%;
    padding: 0.9rem 1rem;
    margin-bottom: 0.5rem;
    font-size: 1.5rem;
    border-radius: 0.5rem;
    text-align: left;
    color: #fff;
    background: transparent;
  }
  .mobile-menu-modern .nav-link:hover {
    background-color: rgba(255,255,255,0.05);
  }
	
  .nav-item .btn-toggle span {
    font-size: 1.5rem;
  }	

  .btn-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 0.9rem 1rem;
    background: transparent;
    border: 0;
    color: #fff;
    text-align: left;
  }
  .btn-toggle:focus { outline: none; box-shadow: none; }

  .btn-toggle .chev {
    transition: transform .22s ease;
    font-size: 1.05rem;
    line-height: 1;
    opacity: .95;
  }
  .btn-toggle .chev.rotate { transform: rotate(45deg); }

  .mobile-submenu {
    padding: .5rem 0 0.75rem 0;
  }
  .mobile-submenu .submenu-heading {
    padding: .45rem 1rem;
    font-weight: 700;
    color: #fff;
  }
  .mobile-submenu .dropdown-item {
    padding: .6rem 1rem;
    color: #e9ecef;
    display: block;
  }
  .mobile-submenu .dropdown-item:hover {
    background-color: rgba(255,255,255,0.03);
    color: #fff;
  }
}

/* =========================
   Desktop Navbar Optimiert
   ========================= */
@media (min-width: 992px) {
	
  /* Desktop Nav horizontale Anordnung */
  .navbar-nav.d-lg-flex {
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    justify-content: center;
  }

  .navbar-nav .nav-link {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
    font-size: 1.3rem;
    /* FIX: Hinzufügen der Transition für font-size, um den Wechsel zu animieren */
    transition: font-size 0.3s ease; 
    /* line-height: 1.4; war bereits da und hilft, die Position zu halten */
  }

  /* FIX: Definiere die neue (kleinere) Schriftgröße für den Scroll-Zustand */
  .navbar-custom.scrolled .navbar-nav .nav-link {
    font-size: 1.05rem; /* Beispiel: Verkleinern von 1.3rem auf 1.05rem */
  }

  /* Desktop Mega-Menu: leicht überlappend */
  .dropdown.position-static > .dropdown-menu.mega-menu {
    position: absolute;
    left: 0;
    right: 0;


    top: calc(100% - 4px); /* leicht überlappend, kein Spalt */
    width: 100%;
    border: 0;
    z-index: 1050;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    margin-top: 0;
    transition: top 0.3s ease; /* smooth scroll */
  }

  /* Scroll-Zustand */
  .navbar-custom.scrolled .dropdown.position-static > .dropdown-menu.mega-menu {
    top: calc(100% - 2px);
  }

  /* Abstand Mega-Menu Desktop Spalten */
  .mega-menu .col-md-3 {	
    margin-bottom: 0.75rem;	
  }
	
}


@media (min-width: 992px) {
  /* Verhindert Zeilenumbruch und sorgt für gleichmäßigen Abstand der Spalten */
  .mega-menu .row {
    display: flex;
    flex-wrap: nowrap;	 	/* kein Zeilenumbruch */
    justify-content: flex-start; /* optional: space-between oder center möglich */
    gap: 3rem;	 	 	/* Abstand zwischen den Spalten */
  }

  /* Optional: sorgt dafür, dass Spalten ihre Breite beibehalten */
  .mega-menu .col-6.col-md-2 {
    flex: 0 0 auto; /* verhindert, dass Spalten schrumpfen */
    white-space: nowrap;
  }

  /* h6-Titel größer und mit mehr Abstand */
  .mega-menu .col-6.col-md-2 h6 {
    font-size: 1.25rem; /* z. B. größerer Titel */
    margin-bottom: 1.25rem; /* mehr Abstand nach unten */
  }
}


.square-bullet {
  display: inline-block;
  width: 5px;	 	 	 	 	 /* Größe des Quadrats */
  height: 5px;
  background-color: #007bff;	 	/* Blau – ändere nach Bedarf */
  border-radius: 1px;	 	 	 /* Optional: leicht abgerundet */
  flex-shrink: 0;	 	 	 	 	 /* verhindert Schrumpfen bei flex */
}