@use "@infineon/design-system-tokens/dist/tokens";

@keyframes fadeInDown {
  0% {
    opacity: 0;
    transform: translateY(-0.5rem);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

.ifx__navbar {
  position: sticky;
  top: 0;
  background-color: tokens.$color-bg-white;

  &.scrolling {
    box-shadow: 0px 10px 40px rgba(0, 0, 0, 0.05);
  }
}



// MOBILE NAV-BAR
.navbar {
  overflow: hidden;

  @include media-breakpoint-up(lg) { 
    overflow: visible;
  }

  & .ifx__nav-link-wrapper.ifx__mobile-show {
    margin-top: tokens.$spacing-m;
  }

  .ifx__mobile-show { // Javascript class
    @include media-breakpoint-up(lg) { 
      display: none;
    }
  }

  .ifx__menu { // Javascript class
    font-size: 20px;
    margin-bottom: 20px;
    font-weight: 600;
  }
}
// MOBILE NAV-BAR END



// NAV-BAR DEFAULT
.ifx__navbar-default {
  & .navbar-collapse {
    @include media-breakpoint-up(lg) {
      padding-top: 0 !important;
      padding-bottom: 0 !important;
    }
  }

  .ifx__searchbar-metalink-wrapper {
    flex-wrap: wrap;

    @include media-breakpoint-up(lg) {
      flex-wrap: nowrap;
    }
  }
}
// NAV-BAR DEFAULT END



.navbar {
  padding: 0;

  .ifx__desktop-show {
    display: none;
  }

  & > div:first-of-type {
    padding: 15px 0;
  }

  .navbar-brand {
    margin-right: tokens.$spacing-m;
    padding: 0;

    & img {
      width: 95px;
      height: 40px;
    }
  }

  & .ifx__application-name {
    font-size: 20px;
    color: tokens.$color-text-black;
    margin: 0;
  }

  & .navbar-toggler {
    border: none;
    color: transparent;
    padding: 0;
    margin-right: 24px;

    .navbar-toggler-icon {
      width: 21px;
      height: 24px;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='%231D1D1D' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
    
      &:hover {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='%23378375' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
      }
    }
  }

  & .navbar-collapse {
    border-right: 2px solid tokens.$color-default-500;
    padding-top: 24px;
    padding-bottom: 32px;

    @include media-breakpoint-up(lg) {
      border-right: none;
    }
  }

  .ifx__searchbar-metalink-wrapper {
    gap: 8px 16px;
    padding-right: 16px;

    @include media-breakpoint-up(lg) {
      margin-left: 24px;
      padding-right: 0;
    }
  }

  .ifx__searchbar {
    width: 182px;

    @include media-breakpoint-up(lg) {
      margin-right: auto;
    }
  }

  & .ifx__nav-link-wrapper {
    @include media-breakpoint-up(lg) {
      margin-left: 40px;
    }

    ul {
      margin-bottom: 0;
      padding-left: 0;
    }

    li {
      list-style: none;
    }

    & .ifx__first-level-nav li + li {
      margin-top: 8px;

      @include media-breakpoint-up(lg) {
        margin-top: 0;
        margin-left: 24px;
      }
    }

    & .dropdown-toggle::after {
      display: none;
    }

    & .ifx__second-level-nav.ifx__nav-mega-dropdown li + li {
      margin-top: 8px;

      @include media-breakpoint-up(lg) {
        margin-top: 0;
        margin-left: 0;
      }
    }
  }

  & li:hover > a {
    color: tokens.$color-default-500;    
  }

  & .nav-link {
    display: block;
    padding: 0;
    font-weight: 400;
    color: tokens.$color-text-black;
    transition: none;

    &:hover {
      color: tokens.$color-default-500;    
    }

    &:focus {
      color: tokens.$color-default-500;    
    }

    & svg {
      width: tokens.$sizing-m;
      height: tokens.$sizing-m;
      margin-left: 8px;
    }
  }

  & .ifx__nav-metalink-wrapper {
    margin-left: 16px;

    & .nav-link + .nav-link {
      margin-left: 16px;
    }
  }

  .dropdown .dropdown-menu {
    transform: translate3d(-12px, 0px, 0px) !important;
    margin-top: calc(21px + 8px);
  }
}

.ifx__nav-metalink {

  &:hover { 

    & svg { 
      color: tokens.$color-default-500;
    }
    
  }
}

.ifx__first-level-nav,
.ifx__second-level-nav {
  & a div {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
}



// NAV-BAR EXTENDED
.ifx__navbar-extended {
  .dropdown .dropdown-menu {
    margin-top: calc(8px + 8px);
  }


  & .navbar > div:first-child {
    @include media-breakpoint-up(lg) {
      padding: 24px 0 11px 0;
    }
  }

  .navbar-expand-lg {
    flex-wrap: wrap;
  }

  .navbar-brand {
    & img {
      @include media-breakpoint-up(lg) {
        width: 110px;
        height: 48px;
      }
    }
  }

  & .navbar-collapse {
    @include media-breakpoint-up(lg) {
      padding: 24px 0 11px 0;
    }
  }

  .ifx__searchbar {
    @include media-breakpoint-up(lg) {
      width: 272px;
    }
  }

  .navbar-expand-lg .navbar-collapse {
    @include media-breakpoint-up(lg) {
      display: flow-root !important;
    }
  }

  & .ifx__nav-link-wrapper {
    @include media-breakpoint-up(lg) {
      margin-left: 0;
    }
  }

  & .ifx__desktop-show.ifx__nav-link-wrapper .ifx__nav-wrapper {
    padding: 60px;
  }

  & .ifx__nav-wrapper {
    position: relative;
    left: 0;
    transition: left .2s;

    &.open {
      left: -100%;
    }

    & .ifx__nav-mega-dropdown-mobile-content {
      left: 100%;
      width: 100%;
    }
  }

  & .ifx__nav-mega-dropdown-mobile .ifx__nav-mega-dropdown-mobile-content {
    & > div:first-of-type {
      font-size: 20px;
      margin-bottom: 20px;
      font-weight: 600;

      a {
        font-weight: 600;
      }
    }
  }

  & .ifx__nav-link-wrapper.ifx__mobile-show {
    position: relative;

    a:hover {
      svg {
        color: tokens.$color-default-500;
      }
    }

    & .ifx__nav-mega-dropdown-next-layer svg {
      color: tokens.$color-gray-300;
    }
  }

  & .ifx__nav-link-wrapper.ifx__desktop-show {
    position: relative;
    padding-left: 126px;

    & li {
      padding-bottom: 8px;
    }

    & li.show a + .ifx__second-level-nav {
      display: block;

      & > li {
        animation: fadeInDown .2s ease-in;
      }
    }
  }

  .ifx__nav-mega-dropdown-mobile {
    position: absolute;
    left: 0;
    top: 0;
    display: none;
    background-color: tokens.$color-bg-white;

    &.show {
      display: block;
    }

    & .row > *:not(*:last-of-type) {
      margin-bottom: 20px;
    }

    & .nav-link {
      &:hover {
        & svg {
          color: tokens.$color-default-500;
        }
      }

      & svg {
        margin-left: 0;
        margin-right: 8px;
        color: tokens.$color-gray-300;
      }
    }
  }

  .ifx__nav-mega-dropdown-mobile-content {
    position: absolute;
  }

  .ifx__nav-mega-dropdown {
    position: absolute;
    left: 0;
    top: 36px;
    display: none;
    border-top: 2px solid tokens.$color-default-500;
    background-color: tokens.$color-bg-white;

    & .row {
      width: 100%;
    }

    .row > * {
      padding-right: 25px;
      padding-left: 25px;
    }

    a:hover {
      svg {
        color: tokens.$color-default-500;
      }
    }

    a + a {
      margin-top: 8px;
    }

    svg {
      color: tokens.$color-gray-300;
    }

    & .ifx__nav-mega-dropdown-level-3 {
      display: none;
      position: absolute;
      height: 100%;
      top: 0;
      left: 100%;
      background-color: tokens.$color-gray-100;
      
      & .w-100 {
        padding: 60px 60px 60px 50px;
      }

      .row {
        align-items: flex-start;
        --bs-gutter-x: 50px;
      }

      & .col-lg-6 {
        display: block;
      }
    }

    .show > .ifx__nav-mega-dropdown-level-3 {
      display: block;

      & .w-100 {
        animation: fadeInDown .2s ease-in;
      }
    }

    & .nav-link.show {      
      & .ifx__nav-link-with-icon {
        font-weight: 600;
      }
    }
  }
}
// NAV-BAR EXTENDED END



// NAV-BAR EXTENDED LEVEL 3
.ifx__navbar-extended-level3 {
  & .ifx__desktop-show.ifx__nav-link-wrapper .ifx__nav-wrapper {
    padding: 60px 0 60px 60px;
    width: 50%;
  }
}
// NAV-BAR EXTENDED LEVEL 3 END



// NAV-BAR VERTICAL
.ifx__nav-bar-vertical {
  position: relative;
  position: sticky;
  top: 0;
  display: inline-block;

  & > div:first-of-type {
    width: 190px;
    height: 100%;
    min-height: 100vh;
    padding-top: 40px;
    padding-bottom: 32px;
    padding-right: 16px;
    border-right: 2px solid tokens.$color-default-500;
  }

  & ul {
    padding: 0 16px 0 16px;
  }

  & ul + ul {
    margin-top: 24px;
  }

  & .ifx__content-nav__border {
    & .nav-item + .nav-item {
      margin-top: 8px;
    }

    & .nav-link {
      display: flex;
      align-items: center;
      font-weight: 400;
      padding: 0;
      color: tokens.$color-text-black;
    }
  }

  & .ifx__content-nav__divider {
    display: hidden;
    font-size: 20px;
    line-height: 25px;
    font-weight: 600;
    margin-bottom: 24px;
  }

  .ifx__nav-mega-dropdown-mobile {
    position: absolute;
    left: 0;
    top: 0;
    display: none;
    background-color: tokens.$color-bg-white;

    &.show {
      display: block;
    }

    & .nav-link {
      &:hover {
        & svg {
          color: tokens.$color-default-500;
        }
      }

      & svg {
        margin-left: 0;
        margin-right: 8px;
        color: tokens.$color-gray-300;
      }
    }
  }
}
// NAV-BAR VERTICAL END



// NAV-BAR VERTICAL COLLAPSIBLE
.ifx__nav-bar-vertical-collapsible {
  &.show {
    & div:first-of-type {
      width: 190px;
      transition: all 0.3s;
      overflow: hidden;
    }

    & .ifx__content-nav__divider {
      visibility: visible;
    }

    & span {
      visibility: visible;
    }
  }

  & div:first-of-type {
    width: 65px;
    transition: all 0.3s;
  }

  & .ifx__content-nav__divider {
    visibility: hidden;
  }

  & span {
    white-space: nowrap;
    visibility: hidden;
  }

  & ul {
    overflow: hidden;
  }

  & .ifx__vertical-nav-icons-btn {
    justify-content: center;
    align-items: center;
    width: 40px;
    height: 40px;
    padding: 0;
    background-color: tokens.$color-bg-white;
    border: 1px solid tokens.$color-gray-200;
    margin-top: 32.5px;

    &:focus {
      background-color: tokens.$color-bg-white;
      border-color: tokens.$color-gray-200;
    }

    &:hover {
      background-color: tokens.$color-bg-white;
      border-color: tokens.$color-gray-200;
    }

    &:active, &.active {
      background-color: tokens.$color-bg-white;
      border-color: tokens.$color-gray-200;
    }

    svg {
      color: tokens.$color-default-500;
      width: 16px;
      height: 16px;
    }
  }

  & .ifx__vertical-nav-icons-btn:after {
    content: "";
    width: 16px;
    height: 16px;
    background-position: center;
    background-repeat: no-repeat;
    transition: transform 0.2s ease-in-out;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23378375' viewBox='0 0 320 512'%3E%3C!--! Font Awesome Pro 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --%3E%3Cpath d='M85.14 475.8c-3.438-3.141-5.156-7.438-5.156-11.75c0-3.891 1.406-7.781 4.25-10.86l181.1-197.1L84.23 58.86c-6-6.5-5.625-16.64 .9062-22.61c6.5-6 16.59-5.594 22.59 .8906l192 208c5.688 6.156 5.688 15.56 0 21.72l-192 208C101.7 481.3 91.64 481.8 85.14 475.8z'/%3E%3C/svg%3E");
  }

  &.show .ifx__vertical-nav-icons-btn:after {
    transform: rotate(180deg);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23378375' viewBox='0 0 320 512'%3E%3C!--! Font Awesome Pro 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --%3E%3Cpath d='M85.14 475.8c-3.438-3.141-5.156-7.438-5.156-11.75c0-3.891 1.406-7.781 4.25-10.86l181.1-197.1L84.23 58.86c-6-6.5-5.625-16.64 .9062-22.61c6.5-6 16.59-5.594 22.59 .8906l192 208c5.688 6.156 5.688 15.56 0 21.72l-192 208C101.7 481.3 91.64 481.8 85.14 475.8z'/%3E%3C/svg%3E");
  }

  & .nav-link {
    & svg {
      width: 16px;
      height: 16px;
      margin-right: 8px;
    }
  }
}
// NAV-BAR VERTICAL COLLAPSIBLE END
