/* Elbetal v21 - Mobile Navigation ohne 40px-Scrollframe
   Das mobile Menue wird als echtes Fullscreen-/Offcanvas-Panel behandelt und darf nicht mehr in der Headerhoehe scrollen. */
:root{--ef-v21-blue:#071d4f;--ef-v21-green:#72b72a;--ef-v21-line:rgba(7,29,79,.12);}

@media (max-width: 991px){
  html.ef-mobile-menu-open,
  body.ef-menu-open,
  body.ef-mobile-menu-open{
    overflow:hidden!important;
    height:100%!important;
    touch-action:none!important;
  }

  .ef-site-header,
  .ef-nav,
  .ef-nav-inner{
    height:auto!important;
    max-height:none!important;
    min-height:0!important;
    overflow:visible!important;
    contain:none!important;
    transform:none!important;
    filter:none!important;
    clip-path:none!important;
  }

  .ef-nav-inner{
    min-height:72px!important;
    padding-top:8px!important;
    padding-bottom:8px!important;
  }

  .ef-menu-toggle{
    position:relative!important;
    z-index:2147483647!important;
    flex-shrink:0!important;
  }

  body.ef-mobile-menu-open .ef-menu-toggle,
  body.ef-menu-open .ef-menu-toggle{
    position:fixed!important;
    top:16px!important;
    right:16px!important;
    background:#fff!important;
    border-color:rgba(7,29,79,.2)!important;
    box-shadow:0 14px 36px rgba(0,0,0,.18)!important;
  }

  body.ef-mobile-menu-open .ef-site-header,
  body.ef-menu-open .ef-site-header{
    z-index:2147483600!important;
  }

  .ef-menu-panel,
  body > .ef-menu-panel{
    position:fixed!important;
    inset:0!important;
    top:0!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    width:100vw!important;
    height:100vh!important;
    height:100dvh!important;
    max-width:none!important;
    max-height:none!important;
    min-height:100vh!important;
    display:block!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
    padding:94px 18px 48px!important;
    margin:0!important;
    background:linear-gradient(180deg,#ffffff 0%,#f4f8fd 100%)!important;
    box-shadow:none!important;
    border:0!important;
    border-radius:0!important;
    clip-path:none!important;
    contain:none!important;
    transform:translateX(105%)!important;
    translate:0 0!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:none!important;
    z-index:2147483500!important;
    transition:transform .24s ease!important;
  }

  .ef-menu-panel.is-open,
  .ef-menu-panel.v20-open,
  .ef-menu-panel.v21-open,
  body > .ef-menu-panel.is-open,
  body > .ef-menu-panel.v20-open,
  body > .ef-menu-panel.v21-open{
    transform:translateX(0)!important;
    pointer-events:auto!important;
  }

  .ef-menu-panel:before{
    content:""!important;
    position:fixed!important;
    top:0!important;
    left:0!important;
    right:0!important;
    height:76px!important;
    background:#fff!important;
    box-shadow:0 1px 0 var(--ef-v21-line),0 16px 34px rgba(7,29,79,.10)!important;
    z-index:-1!important;
  }

  .ef-menu{
    display:block!important;
    width:100%!important;
    max-width:680px!important;
    margin:0 auto!important;
    padding:0!important;
    list-style:none!important;
    overflow:visible!important;
  }

  .ef-menu-item{
    position:relative!important;
    border-bottom:1px solid var(--ef-v21-line)!important;
    overflow:visible!important;
  }

  .ef-menu-link{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    width:100%!important;
    min-height:58px!important;
    padding:17px 58px 17px 4px!important;
    color:var(--ef-v21-blue)!important;
    background:transparent!important;
    border-radius:0!important;
    text-align:left!important;
    line-height:1.25!important;
    white-space:normal!important;
  }

  .ef-menu-cta > .ef-menu-link{
    justify-content:center!important;
    margin:18px 0 0!important;
    padding:16px 20px!important;
    border-radius:12px!important;
    background:var(--ef-v21-blue)!important;
    color:#fff!important;
  }

  .ef-sub-toggle{
    display:block!important;
    position:absolute!important;
    right:0!important;
    top:8px!important;
    width:44px!important;
    height:44px!important;
    border:1px solid rgba(7,29,79,.16)!important;
    background:#fff!important;
    border-radius:10px!important;
    z-index:3!important;
    box-shadow:0 8px 18px rgba(7,29,79,.06)!important;
  }

  .ef-sub-toggle:before,
  .ef-sub-toggle:after{
    content:""!important;
    position:absolute!important;
    left:13px!important;
    right:13px!important;
    top:21px!important;
    height:2px!important;
    background:var(--ef-v21-blue)!important;
  }
  .ef-sub-toggle:after{transform:rotate(90deg)!important;}
  .ef-menu-item.is-open > .ef-sub-toggle:after{opacity:0!important;}

  .ef-mega,
  .ef-dropdown{
    position:static!important;
    display:none!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    translate:0 0!important;
    margin:0 0 14px!important;
    padding:10px 0 16px 16px!important;
    border:0!important;
    border-left:4px solid var(--ef-v21-green)!important;
    border-radius:0!important;
    background:#eef6fc!important;
    box-shadow:none!important;
    overflow:visible!important;
  }

  .ef-menu-item.is-open > .ef-mega,
  .ef-menu-item.is-open > .ef-dropdown{
    display:block!important;
  }

  .ef-mega{
    grid-template-columns:1fr!important;
    gap:6px!important;
  }

  .ef-mega a,
  .ef-dropdown a{
    display:block!important;
    color:var(--ef-v21-blue)!important;
    padding:10px 8px!important;
    line-height:1.25!important;
  }
}
