/* https://medium.com/@david.zhao.blog/bootstrap-5-3-3-on-hover-display-sub-menu-06c3301f471e   
/* --------------------------------------------------------------------------------------------------------------------*/
/* Variablen BS5 Navbar */

.navbar {
  --bs-navbar-nav-link-padding-x: 0.30rem;
  --b/s-navbar-brand-font-size: 1.25rem;
  --bs-nav-link-font-size: 0.85em;
}

.dropdown-menu {
  --bs-dropdown-spacer: 0rem;
}

/* Navbar innerhalb des Content für Demozwecken (Multilingual) ------------------------------------------------------- */
#content .navbar-nav .nav-item,  .navbar-nav .dropdown {
  list-style-type: none;
}

#content .nav-item:hover, #content  .dropdown:hover{
  background: #00000020;
  color: black;
}

#content .nav-item:active{
  background: #00000020;
  color: var(--bs-nav-link-color);
}
#content .navbar-nav  .dropdown-menu {
	width: max-content;
	padding: 0;
}

/* --- NAVBAR ---------------------------------------------------------------------------------------------------------*/
/*-Topbar -------------------------------------------------------------------------------------------------------------*/
.navbar-custom .topbar{
  width: 100%;
  float: none;
  margin-top: 2px;
  margin-bottom: 2px;
}
/* --Topbar -----------------------------------------------------------------------------------------------------------*/

.navbar-custom .topbar{
  display: flex;
  flex-direction: row; /* Inhalte der Topbar horizontal */
  justify-content: space-between; /* Platz zwischen den Elementen */
  background-color:   var(--topbar-bg-color);
  border-bottom: 0  solid  rgba(255,255,255,1.0); 
  -webkit-transition: margin-top .6s ease-in-out;
  -moz-transition: 	  margin-top .6s ease-in-out;
  -o-transition:      margin-top .6s ease-in-out;
  transition: 		  margin-top .6s ease-in-out;
}

.navbar .topbar .container{
  height: 30px;
}

.navbar .topbar li:last-child{
  border-right: none;
}

/* Farbe Schrift Topbar */
.navbar-custom .topbar p, .navbar-custom .topbar .linklist,      .navbar-custom .topbar span,
.navbar-custom .topbar a, .navbar-custom .topbar .email:before , .navbar-custom .topbar .phone:before{
  color: var(--topbar-navbar-font-color); 
}

.navbar .topbar p, .navbar .topbar .linklist, .navbar .topbar a {
  font-size: 0.90rem;
  margin-bottom: 0;
  padding-bottom: 0;
  align-items: center;
}

.navbar-custom .topbar .email:before , .navbar-custom .topbar .phone:before{
    color: var(--topbar-navbar-font-color); 
}

/* Topbar Adresse Icons vor Telefonnummer & Mail --------------------------------------------------------------------- */

.topbar .email::before {
    content: '\f003'; /* fa-envelope-o */	
    font: 100 95%/24px "FontAwesome";
	padding-right: 8px;
}

.topbar .phone:before {
    content: '\f095'; /* fa-envelope-o */	
    font: 100 95%/24px "FontAwesome";
	padding-right: 8px;
}

/* Topbar  Language Switch ------------------------------------------------------------------------------------------- */
.topbar p {
  display: flex;
}

.topbar a.lang-switch {
  height: 18px;
  vertical-align: baseline; 
  border: 2px solid grey;
  overflow: hidden;
  margin-left: 5px; /* Abstand zwischen den Sprachumschaltern */
}

.topbar a.lang-switch:first-child {
  margin-left: 10px;
}

.topbar .lang-switch:hover {
  border-top: 2px solid yellow;
}

/* --Navbar Custom Einstellungen / Dropdown Mutilevel ---------------------------------------------------------------- */ 
@media (max-width: 991px) { 
  .navbar-custom  .container {
    min-width: 100% !important; /* Mobil */
  }
}

#navbar {
    display: flex;
    flex-direction: column; /* Topbar oben, Navigation unten */
    /* padding: 0;  wird durch p-0 in der class gemacht */
}

.navbar-custom {
  color: var(--navbar-color); 
}

.navbar-custom .container {
    display: flex; /* Standardmäßige Flex-Ausrichtung */
    flex-wrap: wrap; /* Inhalte umbrechen, falls nötig */
}

/* --- NAVBAR Brand (Logo) weiter unten -------------------------------------------------------------------------------*/
.navbar-logo-img {
    display: var(--navbar-zeige-logo) !important;
}

.navbar-logo-text {
    display: var(--navbar-zeige-text)  !important;
}


.navbar-custom .navbar-brand {
    font-size: var(--navbar-brand-font-size);
    text-decoration: none;
    transition: 		all .6s ease-in-out;
}

.navbar-custom .navbar-brand:hover {
    text-decoration: none;
}

.navbar-custom .navbar-brand span {
    color: var(--navbar-brand-color);
    text-decoration: none;
}
.navbar-custom .navbar-brand span {
  background: linear-gradient(45deg, #4da3ff 0%, #4da3ff 40%, yellow 56%, yellow 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  text-decoration: none;
}

.navbar-custom .navbar-brand span:hover {
    color: var(--navbar-brand-hover-color) ;
    text-decoration: none;
}

.navbar-custom .navbar-nav .nav-link {
    position: relative; /* WICHTIG, weil sonst im Dropdown der Strich bei Hover nicht geht */     
}
/* Hintergrundfarbe Navbar & Dropdown-Fenster -------------------------------------------------------------------------*/
.bg-custom {
  border: 0;
  background-image:   var(--navbar-bg);
  background-repeat: no-repeat;
  background-color:   var(--navbar-bg-color) !important;
  background-size: 100%, 100%;
  background-position:  var(--navbar-bg-position) !important;
  -webkit-transition: all .6s ease-in-out;
  -moz-transition: 	all .6s ease-in-out;
  -o-transition:      all .6s ease-in-out;
  transition: 		all .6s ease-in-out;
  /* -webkit-backdrop-filter: var(--navbar-blur); macht Fehler , wenn verschachtelt */
  /*  backdrop-filter: var(--navbar-blur); macht Fehler , wenn verschachtelt */
  isolation: isolate !important;
}

.navbar:has(.dropdown:hover),
.navbar:focus-within {
  backdrop-filter: none;
}

.navbar:focus-within {
  backdrop-filter: none;
}

/* Navbar Links  ----------------------------------------------------------------------------------------------------- */
.navbar-custom .nav-link {
  color: var(--navbar-font-color);
  font-size:var(--navbar-font-size);
  @media (min-width: 992px) { 
    padding-top: 0.982em;
    padding-bottom: 0.982em;
    /* 50px hoch navbar ohne Topbar */
  }
}

@media (max-width: 991px) { 
  .navbar-custom .container {
      padding-top: 5px;
      padding-bottom: 5px;
    }
}

/* Links Navbar  hover  / active ------------------------------------------------------------------------------------- */

/* aktiver Top-Link Navbar Schriftfarbe */
/* aktiver Link dropdown */

.navbar-custom .dropdown.active.dropend > a,
.navbar-custom .nav-link.active{
  color: var(--navbar-font-color-active);
}

/* hover dropdown Links */
.navbar-custom .dropdown-menu .nav-link:hover{ 
  color:  var(--navbar-font-color-hover);
  text-decoration: none;
  background-color: var(--navbar-bg-color-hover);
}

.navbar-custom .dropdown.active.dropend > a:hover,
.navbar-custom .navbar-nav>li>a:hover{ 
  text-decoration: none;
  border-top-color: var(--border-top-color-hover);
  color: var(--navbar-font-color-hover);
  @media screen and (min-width: 991px)  { 
    background-color: var(--navbar-bg-color-hover);
  }
}
/*  Strich & Animation der TOP-LINKS --------------------------------------------------------------------------------- */
/* Stile für die erste Ebene der Navbar */
.navbar-custom .navbar-nav > .nav-item {
  position: relative;
}

.navbar-custom .navbar-nav > .active > a,
.navbar-custom .dropdown.active.dropend .nav-link:hover {
  color: var(--navbar-font-color-active);
}

/* Dropdown Links bei Hover */
.navbar-custom .dropdown.active.dropend .nav-link:hover {
  background-color: var(--navbar-bg-color-active);
  color: var(--navbar-font-color-active);
}

/* Strich über Top-Link */
@media screen and (min-width: 992px) {
  /* Focus-Zustand */
  .navbar-custom .dropdown .nav-link:focus {
    color: var(--navbar-font-color) !important; /* Stelle sicher, dass der Focus die Standardfarbe hat */
    outline: none; /* Verhindere, dass der Fokusrand sichtbar bleibt */
  }

  /* Entfernen des Strichs beim Fokus eines Dropdown-Links, falls er nicht aktiv ist */
  .navbar-custom .nav-link.dropdown-toggle.show:focus::before {
    background-color: transparent; 
  }

  /* Strich bei Klick über Link */
  .navbar-custom .nav-link.dropdown-toggle.show::before {
    content: '';
    position: absolute;
    top: 0;
    left: 1%;
    right: 1%;
    height: 2px;
    background-color: var(--border-top-color-hover); 
    transform: scaleX(1);
  }

  /* Strich für den aktiven Link */
  .navbar-custom .navbar-nav > .active::before {
    content: '';
    position: absolute;
    top: 0;
    left: 1%;
    right: 1%;
    height: 2px;
    background-color: var(--border-top-color-active); 
  }

  /* Animierter Strich bei Hover über Link */
  .navbar-custom .navbar-nav .nav-link::before {
    content: '';
    position: absolute;
    top: 0;
    left: 1%;
    right: 1%;
    height: 2px;
    background-color: transparent;
    -webkit-transform: scaleX(0);
    -ms-transform: scaleX(0);
    transform: scaleX(0);
    transition: transform .25s ease-in;
  }

  /* Hover Toplink Strich über */
  .navbar-custom .navbar-nav .nav-link:hover::before {
    background-color: var(--border-top-color-hover);
    -webkit-transform: scaleX(1);
    -ms-transform: scaleX(1);
    transform: scaleX(1);
  }

  /* Fokus explizit entfernen, wenn der Link nicht mehr fokussiert ist */
  .navbar-custom .navbar-nav .nav-link:not(:focus):not(:hover)::before {
    background-color: transparent; /* Entferne den Hover- oder Focus-Strich */
    transform: scaleX(0); /* Entferne die animierte Linie */
  }

  /* Fokus zurücksetzen, wenn der Link nicht aktiv ist */
  .navbar-custom .navbar-nav .nav-link.focus {
    background-color: transparent; /* Entferne Fokus-Stile */
    color: var(--navbar-font-color); /* Stelle die Standardfarbe wieder her */
  }

  /* Statische Schriftfarbe ohne Fokus oder Hover */
  .navbar-custom .navbar-nav .nav-link {
    color: var(--navbar-font-color); /* Standard Schriftfarbe */
  }

  /* Schriftfarbe beim Hover und Fokus */
  .navbar-custom .navbar-nav .nav-link:hover,
  .navbar-custom .navbar-nav .nav-link:focus {
    color: var(--navbar-font-color-hover);
  }

  /* Aktiver Link im Dropdown wird gelb */
  .navbar-custom .dropdown-menu .nav-link.active {
    color: var(--navbar-font-color-active);
  }

  /* Hintergrundfarbe des aktiven Links im Dropdown */
  .navbar-custom .dropdown-menu .nav-link.active:hover {
    color: var(--navbar-font-color-hover);
  }
}




/* Für das Dropdown-Menü den Hover-Effekt der Top-links deaktivieren */
.navbar-custom .navbar-nav .dropdown-menu .nav-link::before {
  display: none;
}
/* --------------------------------------------------------------------------------------------------------------------*/
.dropdown .dropdown-menu{
  display: none;
}
/* Dropdown ---------------------------------------------------------------------------------------------------------- */
/* Optik Dropdown wenn navbar-custom --------------------------------------------------------------------------------- */

@media (min-width: 992px) { 
  .navbar-custom .dropdown-menu{
    border-radius: 0;
    padding: 0;  /* Modifiziert  Original 0.5rem */
    border-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important;
    border: 0;
    background-color:   var(--navbar-bg-dropdown-color) !important;
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.0);

    /* -webkit-backdrop-filter: var(--navbar-blur); macht Fehler , wenn verschachtelt  funktioniert nicht bei Chrome in der Unterebene */
    /*  backdrop-filter: var(--navbar-blur); macht Fehler , wenn verschachtelt */
    isolation: isolate;
    -webkit-animation: dropdown-animation 0.4s;
    animation: dropdown-animation 0.4s;
    -webkit-transform-origin: top;
    -ms-transform-origin: top;
    transform-origin: top;    
  }
}

/* Dropdown Hover */
.dropdown:hover > .dropdown-menu{
  display: block;
}
@media screen and (min-width:992px) {


  .dropstart:hover > .dropdown-menu,
  .dropend:hover > .dropdown-menu{
    display: block
  }

  .dropstart:hover > .dropdown-menu{
    position: absolute;
    top: 0;
    right: 100%;
  }
  
  .dropend:hover > .dropdown-menu{
    position: absolute;
    top: 0;
    left: 100%;
  }
}
/* Dropdown wenn navbar-custom --------------------------------------------------------------------------------------- */
@media screen and (min-width: 992px)  { 
  .dropdown-menu {
      width: max-content;
      padding: 0;
  }
}

.navbar-custom .dropdown-menu{
  border: 0;
  background-color:  transparent;
}

/* Dropdown Rechtsbündig --------------------------------------------- */
/* Rechtsbündige Ausrichtung für ERSTE Dropdown-Ebene */
.ms-auto .dropdown > .dropdown-menu {
  right: 0   !important; /* Hauptmenü rechtsbündig */
  left: auto !important;
}

.navbar-custom .dropdown-menu .nav-link {
    padding-top: 0.24rem; /* nur desktop */
    padding-bottom: 0.24rem;
}

.navbar-custom .dropdown-menu .nav-link {
    padding-left: 18px;
    padding-right: 18px;
}

@media (min-width: 992px) { 

  .ms-auto .nav-pfeil .nav-link{
      width: 44px;
      text-align: center;
  }
  
  .ms-auto .nav-link {
    text-align: end; /* Links der Dropdown-Ebenen rechtsbündig */
  }

  .ms-auto .dropdown-menu,
  .dropdown .dropend .dropdown-menu {
    border-radius: 4px 0  4px 4px;
    border: 0;
  }
  
  /* Sublevel-Dropdowns nach links ausrichten */

  /* Rechtsbündige Ausrichtung für das Haupt-Dropdown-Menü */
  .ms-auto .dropdown > .dropdown-menu {
    right: 0 !important; /* Hauptmenü rechtsbündig */
    left: auto !important;
  }

  .dropdown .dropend .dropdown-menu {
    position: absolute;
    top: 0 !important; /* Gleiche Höhe wie das Eltern-Dropdown */
    right: 100% !important; /* Sublevel-Menüs nach links ausrichten */
    left: auto  !important; /* Deaktiviert Standard-Rechtsausrichtung */
    margin-right: -1px;
  }
  
  .ms-auto .dropdown-menu .dropdown-toggle::after {     /* verhindert caret rechts wenn dropdown auch rechts */
    display: none;
  }
}

@media (min-width: 992px) {
  .ms-auto .dropdown .dropdown-menu .caret { /* Pfeil rechts wenn navbar left */
    display: block;
    content: " ";
    float: left;
    width: 0;
    height: 0;
    border-color: transparent;
    border-style: solid;
    border-width: 5px 5px 5px 0;
    border-right-color: var(--navbar-font-color);
    margin-top: 5px;
    margin-right: 7px;
    margin-left: -6px;
  } 
}
.bg-light .dropdown .dropdown-menu .caret { /* Pfeil rechts wenn navbar left */
  border-right-color: black;
} 

/* Dropdown Linksbündige --------------------------------------------- */
/* Linksbündige Ausrichtung für ERSTE über .dropend  */
@media (min-width: 992px) { 

  .me-auto .nav-pfeil .nav-link{
      width: 44px;
      text-align: center;
  }
  
  .me-auto .dropdown-menu,
  .dropdown .dropstart .dropdown-menu {
    border-radius:  0 4px 4px 4px;
    border: 0;
  }
}

.me-auto .dropdown-menu .dropdown-menu {
  top: 1px;
  left: 100%;        /* Positionierung nach links */
  margin-left: -1px; /* Nahtlosigkeit */
}

.dropend .dropdown-toggle::after {
    margin-left: 10px;
}

/* Mobile NAVAR ----------------------------------- */
@media (max-width: 991px) {
    .navbar-collapse {
      max-height: 450px;
      overflow: scroll;
    }
  
    .bg-custom {
      background-color:  black !important;
    }
  
    .navbar-custom .dropdown-menu .nav-link {
        padding-right: 10px;
    }
    .dropdown-toggle::after {
        float: right;
        transform: translateY(90px);
    }
}

@media (max-width: 991px) { 
  .dropend .nav-link.dropdown-toggle::after{
    transform: rotate(90deg);  /* dreht Pfeil nach Breakpoint Toggle */
  }
  .dropdown-toggle::after {
    float: right;
    transform: translateY(9px);
  }
  .nav-link{
    padding-left:  10px;
    padding-right: 10px;
  }

  /* sublevel strich vor Menüpunkt */
  .dropdown-menu .dropdown .dropdown-menu .nav-item a:before {
    font-family: FontAwesome;
    content: "\f068";
    display: inline-block;
    padding-right: 5px;
    padding-left: 0;
  }
  .dropdown-menu {
    padding-top: 0;
    padding-bottom: 0;
  }
}

/* ------------------------------------------------------------------------------------------------------------------------------------*/
/* Navbar Brand -------------------------------------------------------------------------------------------------------*/

.navbar-brand {
  position: relative;
  width: 100%;
  max-width: 360px;
  height: 100%;
  max-height: 50px;
  padding: 0;
  transform: translate(-1.9%, -4px);
  transition: all 0.5s ease;
}

.navbar-brand img {
  width: inherit;
  height: 100%;
}
.navbar-custom .navbar-brand h1 {

  transition: font-size 0.5s ease; 
  padding-left: 5px;
}

/* Media Query für Bildschirme zwischen 991px und 1200px @media (min-width: 992px) and (max-width: 1400px) { */
@media (min-width: 992px) and (max-width: 1024px) {
  .navbar-brand {
    max-width: 25%; /*  die maximale Breite in Prozent an */
    transform: translate( 0, 0);
  }
  
  .navbar-custom .navbar-brand h1 {
    font-size:  1.4rem;
  }
}



@media (min-width: 1025px) and (max-width: 1199px) {
  .navbar-brand {
    max-width: 25%; /*  die maximale Breite in Prozent an */
    transform: translate( 0, 0);
  }
  .top-nav-collapse .navbar-brand {
    width: 290px; /* Neue Breite beim Scrollen */
  }
  .navbar-custom .navbar-brand h1 {
    font-size: clamp(14px, 4vw, 22px); /* min, fluid, max */
  }
}

@media (min-width: 1200px) and (max-width: 1400px) {
  .navbar-brand {
    max-width: 25%; /*  die maximale Breite in Prozent an */
    transform: translate( 0, 0);
   
  }
  .navbar-custom .navbar-brand h1 {
    font-size: clamp(14px, 4vw, 28px); /* min, fluid, max */
  }
}

/* Größe der .navbar-brand ändern, wenn die Navigation zusammengeklappt ist */
@media (max-width: 991px) {
  .navbar-brand {
    padding-top: 5px;
    width: 80%; /* Neue Breite mobil */
  }
  .navbar-nav {
    padding-top: 10px; /* abstand mobil */
  }
  .navbar-custom  h1{
    padding-left: 10px;
    font-size: 2.0rem;
  } 
}

/* Navbar Collapse - Burger -------------------------------------------------------------------------------------------*/
/* Ändert die Farbe Burger */
.navbar-custom .navbar-toggler {
  border-color:  var(--navbar-burger-color); /* Farbe der Umrandung */
}

.navbar-custom .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='lightgrey' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
.navbar-custom .navbar-toggler:focus {
  text-decoration: none;
  outline:  none; 
  box-shadow: none; 
}

.navbar-custom .navbar-toggler:hover {
  background: rgba(0, 0, 255, 0.1);
}

/* --- Navbar collapse bei Scroll Animationen ------------------------------------------------------------------------ */
@media (min-width: 1025px) {
  .navbar-custom.top-nav-collapse .topbar { 
      margin-top: -31px;
  }
}

/* --- Animationen für Navbar bei Hover------------------------------------------------------------------------------- */
@-webkit-keyframes navbar-animation {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-100%);
    -ms-transform: translateY(-100%);
    transform: translateY(-100%);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}

@keyframes navbar-animation {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-100%);
    -ms-transform: translateY(-100%);
    transform: translateY(-100%);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}

@-webkit-keyframes dropdown-animation {
  0% {
    -webkit-transform: scaleY(0);
    -ms-transform: scaleY(0);
    transform: scaleY(0);
  }
  75% {
    -webkit-transform: scaleY(1.1);
    -ms-transform: scaleY(1.1);
    transform: scaleY(1.1);
  }
  100% {
    -webkit-transform: scaleY(1);
    -ms-transform: scaleY(1);
    transform: scaleY(1);
  }
}

@keyframes dropdown-animation {
  0% {
    -webkit-transform: scaleY(0);
    -ms-transform: scaleY(0);
    transform: scaleY(0);
  }
  75% {
    -webkit-transform: scaleY(1.1);
    -ms-transform: scaleY(1.1);
    transform: scaleY(1.1);
  }
  100% {
    -webkit-transform: scaleY(1);
    -ms-transform: scaleY(1);
    transform: scaleY(1);
  }
}

@keyframes swingdown {
  0% {
      opacity: .99999;
      transform: rotateX(90deg);
  }

  30% {			
      transform: rotateX(-20deg) rotateY(5deg);
      animation-timing-function: ease-in-out;
  }

  65% {
      transform: rotateX(20deg) rotateY(-3deg);
      animation-timing-function: ease-in-out;
  }

  100% {
      transform: rotateX(0);
      animation-timing-function: ease-in-out;
  }
}

