/* =============================================================================
   Header Block — single unified stylesheet
   ============================================================================= */

body {
  &.scrolling-down {
    & .header {
      top: -9.375rem !important;
      transition: top 0.7s ease 0.5s;
    }
  }

  & .header {
    box-shadow: 0 0.125rem 0.25rem 0 rgba(0 0 0 / 20%);
    top: 0;
    padding: 0;
    transition: all 0.3s ease;

    /* -------------------------------------------------------------------------
       Mobile bar
       ------------------------------------------------------------------------- */
    & .site-header-mobile-bar {
      align-items: center;
      background-color: var(--white);
      display: flex;
      flex-wrap: wrap;
      height: var(--nav-faux-height);
      justify-content: space-between;
      position: relative;
      width: 100%;

      @media (width >= 993px) {
        display: none;
      }

      & .site-header-right button {
        justify-content: center;
      }

      & .site-header-logo {
        display: flex;
        align-items: center;
        font-size: 1.125rem;
        line-height: 1.125rem;
        font-weight: 700;
        margin-left: 0.375rem;

        &.hidden {
          display: none;
        }

        &.logo-white svg > path {
          fill: var(--white);
        }
      }
    }

    /* -------------------------------------------------------------------------
       Buttons (search, menu toggle, menu close)
       ------------------------------------------------------------------------- */
    & button {
      &.btn-search,
      &.btn-menu-close,
      &.btn-menu-toggle {
        align-items: center;
        background-color: transparent;
        border-radius: 0;
        border-width: 0 0 0 0.0625rem;
        box-shadow: none;
        color: var(--gray3);
        font-size: 1rem;
        height: 3.125rem;
        line-height: 1.875rem;
        padding: 0;
        width: 3.125rem;
      }

      &.btn-menu-toggle:focus,
      &.btn-menu-close:focus {
        box-shadow: none;
      }

      &.btn-menu-toggle {
        &:hover {
          color: var(--gray3);
          cursor: pointer;
        }

        &::after {
          content: var(--icon-menu);
          font-family: var(--cme-group-icons);
        }
      }

      &.btn-search {
        border: 0.0625rem solid rgba(0 0 0 / 10%);
        border-bottom: none;
        border-top: none;

        &:hover {
          color: var(--black);
          cursor: pointer;
        }

        &::before {
          content: var(--icon-search);
          font-family: var(--cme-group-icons);
          font-size: 1rem;
          font-weight: normal;
        }

        &:focus-visible {
          outline: none;
        }
      }
    }

    /* -------------------------------------------------------------------------
       Overlays
       ------------------------------------------------------------------------- */
    & .search-overlay,
    & .nav-overlay {
      &.is-open {
        background-color: var(--gray3);
        height: 100%;
        left: 0;
        opacity: 0.8;
        position: fixed;
        top: 0;
        transition: visibility 0.2s linear, opacity 0.2s linear;
        width: 100%;
      }
    }

    & .search-overlay.is-open {
      z-index: 4;
    }

    & .nav-overlay.is-open {
      z-index: 3;

      @media (width >= 993px) {
        top: 6.25rem;
      }
    }

    /* -------------------------------------------------------------------------
       Nav wrapper
       ------------------------------------------------------------------------- */
    & .nav-wrapper {
      align-items: center;
      display: flex;
      flex-wrap: wrap;
      height: 6.25rem;
      justify-content: space-between;
      max-width: 25rem;
      position: absolute;
      top: 0;
      transform: translateX(-100%);
      transition: transform 0.5s ease-out;
      width: 100%;
      z-index: 4;

      @media (width >= 993px) {
        display: flex;
        margin: 0 auto;
        max-width: 100rem;
        position: relative;
        transform: none;
        width: 100%;
      }

      &.is-open {
        transform: translateX(0);
      }

      /* -----------------------------------------------------------------------
         Nav
         ----------------------------------------------------------------------- */
      & .nav {
        visibility: unset;
        -webkit-font-smoothing: antialiased;
        box-sizing: border-box;
        align-items: center;
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;

        @media (width >= 993px) {
          padding: 0 0 0 4.125rem;
        }

        @media (width >= 1201px) {
          padding: 0 0 0 5.5rem;
        }

        &.is-open {
          position: fixed;
          left: 0;
          top: 0;
          right: 0;
          max-height: 100%;
          max-width: 25rem;
          background-color: var(--white);
          align-items: center;
          display: flex;
          flex-wrap: wrap;
          justify-content: space-between;

          & .btn-menu-close {
            background-color: var(--blue1);
            color: var(--white);

            &:hover {
              color: var(--gray3);
              cursor: pointer;
            }

            &::after {
              content: var(--icon-menu-close);
            }
          }

          & .navigation {
            display: block;
            align-items: center;
            flex-basis: 100%;
            flex-grow: 1;
            width: 25rem;
            max-height: calc(100vh - 3.125rem);
            overflow: auto;
            background-color: var(--blue2);
          }
        }

        & .mobile-right-side-in-nav {
          @media (width >= 993px) {
            display: none;
          }

          & button {
            justify-content: center;
          }
        }

        & a {
          color: var(--gray13);
          text-decoration: none;
        }

        & .site-header-logo {
          display: flex;
          align-items: center;
          font-size: 1.125rem;
          line-height: 1.125rem;
          font-weight: 700;
          margin-left: 0.375rem;

          @media (width >= 993px) {
            margin-right: 0.75rem;
            margin-left: 0;
          }

          @media (width >= 1201px) {
            margin-right: 3.75rem;
          }

          &.hidden {
            display: none;
          }

          &.logo-white svg > path {
            fill: var(--white);
          }
        }

        /* ---------------------------------------------------------------------
           Navigation list
           --------------------------------------------------------------------- */
        & .navigation {
          grid-area: navlist;
          display: none;
          margin: 0;
          padding: 0;
          list-style: none;
          background: var(--white);

          @media (width >= 993px) {
            display: flex;
            background: unset;
          }

          & .navigation-item {
            font-size: 1rem;
            text-transform: uppercase;
            font-family: var(--averta);
            margin-right: 0;
            margin-bottom: 0;

            @media (width >= 993px) {
              display: flex;
              align-items: stretch;
              position: relative;
              margin-right: 0.875rem;
              background-color: transparent;
            }

            @media (width >= 1201px) {
              margin-right: 1.875rem;
            }

            &.primary {
              font-weight: 700;
            }

            &.secondary {
              font-weight: 400;
              position: relative;

              & [aria-controls="nav-menu-0"]::before {
                border-top: 0.0625rem solid var(--gray3);
                content: "";
                display: block;
                position: absolute;
                inset: 0 0 auto 0;

                @media (width >= 993px) {
                  display: none;
                }
              }

              &::before {
                @media (width >= 993px) {
                  color: var(--gray3);
                  content: "|";
                  display: inline-block;
                  margin-right: 1.25rem;
                }
              }

              & ~ .secondary::before {
                @media (width >= 993px) {
                  border-top: 0;
                  content: "";
                  display: none;
                  margin: 0;
                }
              }

              &.has-menu.is-open .submenu {
                @media (width >= 993px) {
                  left: 25%;
                  width: auto;
                  right: 0;
                }
              }
            }

            /* -----------------------------------------------------------------
               Navigation links
               ----------------------------------------------------------------- */
            & .navigation-link,
            & .login-navigation-link,
            & .submenu-link {
              background-color: var(--blue1);
              color: var(--white);
              text-transform: uppercase;
              position: relative;
              padding: 0.9375rem 1rem;
              font-size: 1rem;
              line-height: 1.5rem;
              letter-spacing: 0.1322rem;
              display: flex;
              justify-content: space-between;
              align-items: center;
              transition: background-color 0.1s ease;

              @media (width >= 993px) {
                background-color: transparent;
              }

              &:hover {
                color: var(--blue5);
              }

              &::after {
                content: var(--icon-plus);
                font-family: var(--cme-group-icons);
                pointer-events: none;
              }
            }

            & .navigation-link {
              @media (width >= 993px) {
                color: var(--gray7);
                padding: 0;

                &::after {
                  content: "";
                }
              }
            }

            /* -----------------------------------------------------------------
               Submenu home link
               ----------------------------------------------------------------- */
            & .submenu-home-link a {
              align-items: center;
              color: var(--white);
              display: block;
              font-size: 0.875rem;
              letter-spacing: 0.09rem;
              line-height: 1.375rem;
              margin-bottom: 0;
              position: relative;
              transition: background-color 0.1s ease;
              padding-top: 0.9375rem;

              @media (width >= 481px) {
                font-size: 1rem;
              }
            }

            /* -----------------------------------------------------------------
               Submenu
               ----------------------------------------------------------------- */
            & .submenu {
              background-color: var(--blue2);
              display: none;

              @media (width >= 993px) {
                position: absolute;
                opacity: 0;
                display: flex;
                margin-top: -1.5rem;
                visibility: hidden;
                top: -312.5rem;
                transition: visibility 0.5s linear, margin-top 0.5s linear, opacity 0.5s linear;
              }

              & ul {
                list-style: none;
                margin: 0;
                padding-left: 0;
              }

              /* ---------------------------------------------------------------
                 Submenu list (submenu.css content)
                 --------------------------------------------------------------- */
              & .submenu-container .submenu-column {
                & .submenu-list {
                  @media (width >= 993px) {
                    display: flex;
                    margin: 0;
                  }

                  & .submenu-item {
                    &.sub-nav {
                      margin: 0;
                      box-sizing: border-box;
                    }

                    & .submenu-content {
                      margin-bottom: 1.125rem;
                      border-bottom: 0.0625rem solid var(--gray4);
                      padding-bottom: 1.5625rem;
                      display: none;

                      @media (width >= 993px) {
                        display: block;
                        border: 0;
                        margin-bottom: 0;
                        padding-bottom: 0;
                      }

                      & a::after {
                        content: "";
                      }

                      & li {
                        padding: 0.4375rem 0;
                        line-height: 1.25rem;
                        margin: 0;
                        height: 1.25rem;

                        @media (width >= 993px) {
                          height: auto;
                        }

                        & strong {
                          background-color: transparent;
                          display: inline-block;
                          min-width: 1.875rem;
                          height: 1.25rem;

                          & a {
                            text-transform: uppercase;
                            color: var(--blue5);
                          }
                        }

                        & a {
                          padding: 0;
                          background-color: transparent;
                          letter-spacing: normal;
                          font-size: 1rem;
                          font-weight: 400;
                          text-transform: initial;
                          display: inline;
                          color: var(--white);
                          line-height: 1.25rem;

                          &:hover {
                            color: var(--blue5);
                          }
                        }

                        & a[target="_blank"]::after {
                          font-family: var(--cme-group-icons);
                          content: var(--icon-positive);
                          color: var(--blue4);
                          font-size: 0.625rem;
                          position: absolute;
                          margin: 0 0 0 0.625rem;
                        }
                      }
                    }

                    & a.submenu-link {
                      color: var(--citron);
                      font-size: 0.6875rem;
                      line-height: 1;
                      font-weight: 400;
                      font-family: var(--averta);
                      font-style: normal;
                      padding: 1rem 0;
                      background: transparent;
                      cursor: pointer;
                      width: 100%;
                      text-transform: uppercase;
                      position: relative;
                      letter-spacing: 0.1322rem;
                      display: flex;
                      justify-content: space-between;
                      align-items: center;
                      transition: background-color 0.1s ease;

                      @media (width >= 993px) {
                        cursor: default;
                      }

                      &::after {
                        color: var(--white);
                        font-size: 0.625rem;
                      }

                      & em {
                        font-style: normal;
                        letter-spacing: normal;

                        @media (width >= 993px) {
                          font-weight: 700;
                        }
                      }
                    }

                    &.has-menu {
                      & a.submenu-link::after {
                        content: var(--icon-plus);
                      }

                      &.is-open {
                        & .submenu-content {
                          display: block;
                        }

                        & a.submenu-link::after {
                          content: var(--icon-minus);
                        }
                      }
                    }
                  }
                }

                & .sub-section {
                  @media (width >= 993px) {
                    width: calc((100% / var(--cols)) - 1rem);
                    padding-right: 1rem;
                  }

                  & .submenu-link {
                    @media (width >= 993px) {
                      font-weight: 700;
                      cursor: auto;
                    }

                    &::after {
                      @media (width >= 993px) {
                        display: none;
                      }
                    }

                    & em {
                      @media (width >= 993px) {
                        letter-spacing: 0.0938rem;
                      }
                    }
                  }
                }
              }
            }

            /* -----------------------------------------------------------------
               Open state
               ----------------------------------------------------------------- */
            &.is-open {
              & .submenu-home-link {
                @media (width >= 993px) {
                  display: block;
                  margin-top: 3.125rem;
                  margin-bottom: 0.9375rem;
                }

                & a {
                  @media (width >= 481px) {
                    font-size: 1rem;
                    font-weight: 700;
                  }

                  @media (width >= 993px) {
                    padding: 0;
                    margin: 0;
                    display: inline-block;
                  }

                  &:hover {
                    color: var(--blue5);
                    background-color: transparent;
                  }

                  &::after {
                    margin-left: 1rem;
                    content: var(--icon-chevron-right);
                    font-family: var(--cme-group-icons);
                    color: var(--blue5);
                    font-size: 80%;
                  }

                  &:hover::after {
                    margin-left: 1.3125rem;
                  }
                }
              }

              & .navigation-link::after,
              & .login-navigation-link::after {
                content: var(--icon-minus);
                font-family: var(--cme-group-icons);
                pointer-events: none;
              }

              &.primary .submenu {
                &#nav-menu-0,
                &#nav-menu-1 {
                  & .submenu-container {
                    & .submenu-column {
                      @media (width >= 993px) {
                        width: 58.3333%;
                      }
                    }

                    & .promo-box-column {
                      @media (width >= 993px) {
                        width: 41.6666%;
                      }
                    }
                  }
                }
              }
            }

            &.has-menu.is-open {
              position: relative;

              & > a {
                @media (width >= 993px) {
                  color: var(--blue5);

                  &::after {
                    border-bottom: 0.5625rem solid var(--blue2);
                    border-left: 0.5625rem solid transparent;
                    border-right: 0.5625rem solid transparent;
                    content: "";
                    height: 0;
                    left: auto;
                    margin: 0 auto;
                    opacity: 1;
                    position: absolute;
                    right: calc(50% - 0.3125rem);
                    top: 3.3125rem;
                    transition-delay: 0s;
                    visibility: visible;
                    width: 0;
                  }
                }
              }

              & .submenu {
                display: block;

                @media (width >= 993px) {
                  display: flex;
                  position: fixed;
                  top: 6.25rem;
                  background-color: var(--blue2);
                  border: 0;
                  border-radius: 0;
                  left: 0;
                  padding: 0;
                  width: 100vw;
                  margin-top: 0;
                  opacity: 1;
                  transition-delay: 0s;
                  visibility: visible;
                }

                & .submenu-container {
                  @media (width >= 993px) {
                    display: flex;
                    margin: 0 auto;
                    max-width: 94.5rem;
                    position: relative;
                    width: 100%;
                    padding-left: 4.125rem;
                  }

                  @media (width >= 1201px) {
                    padding: 0 8rem 0 5.5rem;
                    overflow-y: auto;
                    max-height: calc(100vh - 6.25rem);
                  }

                  & .submenu-column {
                    padding: 0 1.875rem 0;

                    @media (width >= 993px) {
                      width: 66.6666%;
                      padding: 0;
                    }
                  }

                  & .promo-box-column {
                    @media (width >= 993px) {
                      width: 33.3333%;
                    }

                    & .layout {
                      @media (width >= 993px) {
                        display: flex;
                      }
                    }
                  }
                }
              }
            }

            /* -----------------------------------------------------------------
               Login nav (mobile)
               ----------------------------------------------------------------- */
            &.login-nav {
              @media (width >= 993px) {
                display: none;
              }

              & a::after {
                content: var(--icon-arrow-right);
              }

              &.is-logged {
                & a {
                  color: var(--citron);
                  font-family: var(--averta);
                  font-size: 0.6875rem;
                  font-weight: 400;
                  line-height: 1.5rem;
                  text-transform: uppercase;

                  &::after {
                    content: var(--icon-plus);
                    font-size: 0.9375rem;
                  }
                }

                &.is-open .navigation-link::after {
                  color: var(--white);
                  content: var(--icon-minus);
                }
              }

              & .submenu {
                padding-left: 0;
                padding-right: 0;

                & .login .login-container {
                  padding: 1.5625rem 0;

                  & div {
                    border-bottom: 0.0625rem solid rgba(255 255 255 / 30%);

                    & li {
                      margin: 0;

                      & a {
                        background: none;
                        color: var(--white);
                        font-size: 0.8125rem;
                        font-weight: 600;
                        letter-spacing: normal;
                        line-height: normal;
                        padding: 0 0 1rem 1.5625rem;
                        text-transform: capitalize;
                        justify-content: left;
                        display: flex;
                        align-items: center;

                        &::after {
                          content: none;
                        }
                      }

                      &:last-child a {
                        padding-bottom: 0;
                      }
                    }

                    &.links-container {
                      border-bottom: 0.0625rem solid rgba(255 255 255 / 30%);
                      padding: 1.5625rem 0;
                      margin-bottom: 1.25rem;
                    }

                    &.user-container {
                      border-bottom: 0.0625rem solid rgba(255 255 255 / 30%);
                      padding: 1.25rem 0;

                      &:first-of-type {
                        padding-top: 0;
                      }

                      &:last-of-type {
                        border: none;
                        padding-bottom: 1.75rem;

                        & ul li a::after {
                          margin-left: 0.3125rem;
                          content: var(--icon-arrow-right-thin);
                          font-family: var(--cme-group-icons);
                          color: var(--white);
                          font-size: 100%;
                          transform: rotate(-45deg);
                        }
                      }
                    }

                    &.account-container {
                      padding-bottom: 1.5625rem;

                      & li a::after {
                        color: var(--blue5);
                        content: var(--icon-chevron-right);
                        font-family: var(--cme-group-icons);
                        margin-left: 0.3125rem;
                        font-weight: 400;
                      }
                    }
                  }
                }

                & .nav-logout {
                  color: var(--white);
                  margin-left: 1.5625rem;
                  width: 10rem;
                  justify-content: center;
                }
              }
            }
          }
        }
      }

      /* -----------------------------------------------------------------------
         Desktop right (user menu — user-menu.css content)
         ----------------------------------------------------------------------- */
      & .nav-desktop-right {
        align-items: center;
        flex-wrap: wrap;
        justify-content: space-between;
        padding-right: 4.125rem;
        display: none;

        @media (width >= 993px) {
          display: flex;
        }

        @media (width >= 1201px) {
          padding-right: 5.5rem;
        }

        & .utilities {
          display: flex;
          align-items: center;
          justify-content: center;
          margin-right: 0.625rem;
        }

        & .navigation-item {
          font-size: 1rem;
          text-transform: uppercase;
          font-family: var(--averta);
          margin-right: 0;
          margin-bottom: 0;

          @media (width >= 993px) {
            display: flex;
            align-items: stretch;
            position: relative;
            margin-right: 0.875rem;
            background-color: transparent;
          }
        }

        & .user-menu {
          position: relative;

          &.is-open {
            & .submenu {
              display: flex;
              top: 6.25rem;
              background-color: var(--blue2);
              border: 0;
              border-radius: 0;
              left: 0;
              padding: 0;
              margin-top: 0;
              opacity: 1;
              transition-delay: 0s;
              visibility: visible;
            }

            & > button::after {
              border-bottom: 0.5625rem solid var(--blue2);
              border-left: 0.5625rem solid transparent;
              border-right: 0.5625rem solid transparent;
              content: "";
              height: 0;
              left: 0.625rem;
              margin: 0 auto;
              opacity: 1;
              position: absolute;
              right: calc(50% - 0.3125rem);
              top: 3.8125rem;
              transition-delay: 0s;
              visibility: visible;
              width: 0;
            }

            &.is-logged .submenu .login .login-container .user-container:last-child {
              margin-bottom: 2.5rem;

              &::after {
                content: unset;
              }
            }
          }

          & .submenu {
            position: absolute;
            opacity: 0;
            display: flex;
            margin-top: -1.5rem;
            visibility: hidden;
            top: -312.5rem;
            transition: visibility 0.5s linear, margin-top 0.5s linear, opacity 0.5s linear;

            @media (width >= 993px) {
              left: -11.3125rem !important;
              width: 15.625rem !important;
              transform: translateZ(0) !important;
              display: block !important;
              padding: 2.5rem 2.8125rem !important;
              min-height: auto !important;
              background-color: var(--gray1) !important;
              box-sizing: border-box;
              top: 4.375rem !important;
            }

            & p {
              padding: 0 0 1.25rem;
              font-family: var(--averta);
              margin: 0 0 1.25rem;
              color: var(--white);
              background: none;
              font-size: 0.6875rem;
              font-weight: 700;
              line-height: 2rem;
              letter-spacing: normal;
              border-bottom: 0.0625rem solid rgba(255 255 255 / 30%);
              text-transform: uppercase;
            }

            & .login .login-container {
              & div {
                &::after {
                  content: "";
                  height: 0.0625rem;
                  background-color: var(--white);
                  opacity: 0.3;
                  display: block;
                  margin: 1.25rem 0;
                  width: 100%;
                }

                &:last-child {
                  border-bottom: none;

                  & a::after {
                    margin-left: 0.3125rem;
                    content: var(--icon-arrow-right-thin);
                    font-family: var(--cme-group-icons);
                    color: var(--white);
                    font-size: 100%;
                    transform: rotate(-45deg);
                    display: inline-block;
                  }
                }

                &.links-container:last-child {
                  & a::after {
                    content: "" !important;
                  }

                  &::after {
                    content: "";
                    height: 0.0625rem;
                    background-color: var(--white);
                    opacity: 0.3;
                    display: block;
                    margin: 1.25rem 0;
                    width: 100%;
                  }
                }

                & ul {
                  list-style: none;
                  padding: 0;
                  margin: 0;
                }

                & li {
                  margin: 0;

                  &:last-child a {
                    padding-bottom: 0;
                  }

                  & a {
                    color: var(--white);
                    padding: 0 0 0.75rem;
                    background: none;
                    text-transform: capitalize;
                    font-size: 0.8125rem;
                    font-weight: 600;
                    line-height: normal;
                    letter-spacing: normal;

                    &:hover {
                      text-decoration: none;
                      color: var(--blue5);
                    }

                    &::after {
                      content: none;
                    }
                  }
                }

                &.account-container {
                  & ul {
                    margin: 0;
                    padding: 0;
                  }

                  & li a {
                    justify-content: left;

                    &::after {
                      font-family: var(--cme-group-icons);
                      content: var(--icon-chevron-right);
                      color: var(--blue5);
                      margin-left: 0.3125rem;
                    }
                  }
                }
              }
            }

            & .nav-logout {
              color: var(--white);
              width: 100%;
              justify-content: center;
            }
          }
        }

        & button {
          box-shadow: none;
          min-width: 2.5rem;
          background: none;
          color: var(--gray3);
          font-size: 0.875rem;

          &:hover {
            cursor: pointer;
            color: var(--black);
          }

          &.btn-search,
          &.btn-user-menu-toggle {
            border: none;
            padding: 0;
            align-items: center;
            display: inline-flex;
            justify-content: center;
            height: 2.5rem;

            &::before {
              font-family: var(--cme-group-icons);
              font-size: 1rem;
              font-weight: normal;
            }
          }

          &.btn-search,
          &.user-menu {
            width: 2.5rem;
          }

          &.user-menu {
            position: relative;
          }

          &.btn-search::before {
            content: var(--icon-search);
          }

          &.btn-user-menu-toggle {
            position: relative;

            &::before {
              content: var(--icon-user);
            }
          }

          &.nav-login {
            padding: 0.75rem 2rem;
          }
        }
      }
    }

    /* -------------------------------------------------------------------------
       Home variant
       ------------------------------------------------------------------------- */
    &.home {
      & .site-header-mobile-bar {
        transition: 0.1s ease-in, top 0.7s, background-color 0.5s;
      }

      &.transparent {
        @media (width >= 993px) {
          background-color: rgb(58 70 79 / 80%);
          box-shadow: 0 0.125rem 0.25rem 0 rgb(0 0 0 / 20%);
        }

        & .nav-desktop-right button {
          color: var(--white);
        }

        & .site-header-mobile-bar {
          background-color: rgb(58 70 79 / 80%);
          box-shadow: 0 0.125rem 0.25rem 0 rgb(0 0 0 / 20%);
        }

        & button.btn-menu-toggle,
        & button.btn-menu-close,
        & button.btn-search {
          color: var(--gray6);
        }

        & .nav-wrapper .nav {
          background-color: rgb(58 70 79 / 80%);

          @media (width >= 993px) {
            background-color: transparent;
          }

          & .site-header-logo svg > path {
            fill: var(--white);
          }

          & .navigation .navigation-item {
            &::before {
              color: var(--white);
            }

            & > a {
              color: var(--white);

              @media (width >= 993px) {
                background-color: transparent;
              }
            }
          }
        }
      }
    }
  }
}

/* =============================================================================
   Search panel
   ============================================================================= */
.search-panel {
  background: var(--gray2);
  bottom: 0;
  display: none;
  min-width: 100%;
  opacity: 1;
  overflow-y: auto;
  padding: 6.125rem 0.9375rem 3.125rem;
  position: fixed;
  right: 0;
  top: 0;
  z-index: 5;

  @media (width >= 481px) {
    max-width: 31.25rem;
  }

  @media (width >= 769px) {
    min-width: 37.5rem;
  }

  @media (width >= 993px) {
    min-width: 46.875rem;
  }

  &.is-open {
    display: block;
  }

  & .btn-search-panel-close {
    background: none;
    color: var(--white);
    cursor: pointer;
    font-family: var(--cme-group-icons);
    font-size: 0.75rem;
    margin: 0 0.8125rem 0 0;
    opacity: 1;
    outline: none;
    padding: 0.4375rem;
    position: absolute;
    right: 0;
    text-shadow: none;
    top: 1rem;

    &:hover {
      background-color: var(--gray3);
      border-radius: 50%;
    }

    &:active {
      background: var(--blue-active);
      border-radius: 50%;
      color: var(--blue5);
    }

    &::before {
      content: var(--icon-menu-close);
    }
  }

  & .custom-search {
    background: var(--gray2);
    padding: 0 1.875rem;

    & .search-container {
      display: flex;
      height: 2.8125rem;

      & input {
        background: transparent;
        border: none;
        border-bottom: 0.125rem solid var(--gray3);
        color: var(--white);
        font-size: 1.125rem;
        line-height: 2.5rem;
        outline: none;
        width: 100%;

        &::placeholder {
          color: var(--gray6);
        }

        &::-ms-clear {
          display: none;
        }

        @media (width >= 769px) {
          font-size: 1.5rem;
          line-height: 2.75rem;
        }
      }

      & button {
        background: transparent;
        border: none;
        color: var(--gray3);
        font-size: 1.125rem;
        margin-left: -1.125rem;
        outline: none;
        padding: 0;

        &.searching {
          cursor: pointer;

          &:hover {
            color: var(--white);
          }

          &:active {
            color: var(--blue5);
          }

          & .icon-search {
            display: flex;
            align-items: center;

            &::before {
              content: var(--icon-search);
              font-family: var(--cme-group-icons);
            }
          }
        }
      }
    }

    & .popular-searches {
      & .title {
        padding-top: 2.6875rem;
        color: var(--citron);
        font-size: 0.625rem;
        font-weight: bold;
        letter-spacing: 0.0625rem;
        text-transform: uppercase;
      }

      & .searches {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        padding-top: 0.375rem;

        & .search-box {
          align-items: center;
          background: var(--gray3);
          border-radius: 0.1875rem;
          color: var(--white);
          cursor: pointer;
          display: flex;
          height: 3.75rem;
          justify-content: space-between;
          margin: 0.3125rem 0;
          padding: 0 1.25rem;
          text-decoration: none;
          width: 100%;

          @media (width >= 769px) {
            width: 42%;
          }

          &:hover {
            color: var(--blue5);
          }

          &:active {
            background: var(--gray1);
            color: var(--white);
          }

          & .box-title {
            align-items: center;
            display: flex;
            height: 3rem;
            padding-right: 0.3125rem;
          }

          & .icon-arrow-right::before {
            content: var(--icon-arrow-right);
            font-family: var(--cme-group-icons);
            font-size: 1rem;
            font-weight: normal;
          }
        }
      }
    }

    & .suggestion-searches {
      & .title,
      & .searches .search button span:first-child {
        color: var(--citron);
        font-size: 0.625rem;
        font-weight: bold;
        letter-spacing: 0.0625rem;
        text-transform: uppercase;
      }

      & .title {
        padding-top: 3.3125rem;
      }

      & .searches {
        display: flex;
        flex-direction: column;

        & .search {
          color: var(--white);
          font-size: 0.875rem;
          padding-top: 0.875rem;

          & button {
            background: transparent;
            border: 0;
            box-shadow: none;
            cursor: pointer;
            font-size: 0.875rem;
            font-weight: normal;
            padding: 0.625rem 0;
            text-transform: capitalize;

            &:hover > * {
              color: var(--blue5);
            }

            & span {
              color: var(--white);

              &:first-child {
                font-size: 0.625rem;
                font-weight: bold;

                &::before {
                  content: var(--icon-arrow-right);
                  font-family: var(--cme-group-icons);
                  font-weight: normal;
                }
              }

              &:last-child {
                padding-left: 0.5rem;
              }
            }
          }
        }
      }
    }

    & .recent-searches {
      display: inline-block;

      & .title {
        padding-top: 3.3125rem;
        color: var(--citron);
        font-size: 0.625rem;
        font-weight: bold;
        letter-spacing: 0.0625rem;
        text-transform: uppercase;
      }

      & .search {
        color: var(--white);
        cursor: pointer;
        display: table;
        font-size: 0.875rem;
        padding-top: 0.5625rem;

        & button {
          background-color: transparent;
          border: 0;
          box-shadow: none;
          color: var(--white);
          cursor: pointer;
          font-size: 0.875rem;
          font-weight: normal;
          outline: none;
          padding: 0 0.625rem;
          text-decoration: none;
          text-transform: capitalize;

          &:hover {
            color: var(--blue5);
          }
        }

        & .icon-history::before {
          content: var(--icon-history);
          font-family: var(--cme-group-icons);
          font-size: 1rem;
          font-weight: normal;
        }
      }
    }
  }
}

/* =============================================================================
   Spinner
   ============================================================================= */
.spinner-in-navbar {
  display: inline-block;
  position: relative;
  width: 4rem;
  height: 4rem;
  margin-bottom: 2rem;

  & div {
    box-sizing: border-box;
    display: block;
    position: absolute;
    width: 3.1875rem;
    height: 3.1875rem;
    margin: 0.375rem;
    border: 0.25rem solid var(--white);
    border-radius: 50%;
    animation: spinner-in-navbar 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
    border-color: var(--white) transparent transparent;

    &:nth-child(1) { animation-delay: -0.45s; }
    &:nth-child(2) { animation-delay: -0.3s; }
    &:nth-child(3) { animation-delay: -0.15s; }
  }
}

@keyframes spinner-in-navbar {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
