@import '../base/grid-settings';
@import 'neat/neat'; // lib - Neat

header.global {
  @extend %ui-depth1;
  border-bottom: 1px solid $m-gray;
  box-shadow: 0 1px 5px 0 $shadow-l1;
  background: $header-bg;
  height: 76px;
  position: relative;
  width: 100%;

  .wrapper-header {
    @include clearfix();
    height: 40px;
    margin: 0 auto;
    padding: 18px ($baseline/2) 0;
    max-width: grid-width(12);
    width: 100%;
  }

  h1.logo {
    @include float(left);
    @include margin(-2px, 39px, 0, 0);
    position: relative;

    a {
      display: block;
    }
  }

  nav {
    @include clearfix();
    height: 40px;
    margin: 0 auto;
    padding: 18px ($baseline/2) 0;
    max-width: grid-width(12);
    min-width: 760px;
  }

  .left {
    @include float(left);
  }

  .guest {
    @include float(right);
  }

  > li {
    display: inline-block;
    margin-right: $baseline;
    position: relative;
    vertical-align: middle;

    &:last-child {
      margin-right: 0;
    }

    a {
      letter-spacing: 1px;
      vertical-align: middle;
    }
  }

  li.secondary {
    > a {
      color: $link-color;
      display: block;
      font-family: $sans-serif;
      display: inline-block;
      margin: 0 ($baseline*1.5) 0 0;
      text-decoration: none;
      text-transform: uppercase;
      text-shadow: 0 1px rgba(255,255,255, 0.6);

      &:last-child {
        margin-right: 0;
      }

      &:hover, &:focus {
        color: $base-font-color;
      }
    }
  }

  .primary {
    margin-right: ($baseline/4);

    > a {
      @include background-image($button-bg-image);
      background-color: $button-bg-color;
      border: 1px solid $border-color-2;
      border-radius: 3px;
      @include box-sizing(border-box);
      box-shadow: 0 1px 0 0 rgba(255,255,255, 0.6);
      color: $base-font-color;
      display: inline-block;
      font-family: $sans-serif;
      display: inline-block;
      line-height: 1em;
      margin: 1px 5px;
      padding: 10px 12px;
      text-decoration: none;
      text-transform: uppercase;
      text-shadow: 0 1px rgba(255,255,255, 0.6);
      vertical-align: middle;

      &:last-child {
        margin-right: 0;
      }

      &:hover, &:focus, &:active {
        background: $button-bg-hover-color;
      }
    }
  }

  .user {
    @include float(right);
    margin-top: ($baseline/4);

    > .primary {
      display: block;
      @include float(left);
      margin: 0;
      position: relative;

      > a {
        margin: 0;
        @include border-right-radius(0px);
        background-image: none;
      }

      &:last-child {
        > a {
          @include border-radius(0, 4px, 4px, 0);
          @include border-left(none);
          padding: ($baseline/4) 8px 11px ($baseline/2);

          &.shopping-cart {
            border-radius: 4px;
            border: 1px solid $border-color-2;
            @include margin-right(10px);
            padding-bottom: 6px;
          }
        }
      }
    }

    a.user-link {
      @include padding(5px, 12px, 10px, 10px);
      position: relative;
      text-transform: none;
      font-size: 14px;
      font-weight: bold;
      letter-spacing: 0;

      .icon {
        display: inline-block;
        @include float(left);
        @include margin(2px, 6px, -3px, 3px);
        font-size: 1.2em;
        color: $m-gray;
      }

      .avatar {

        // CASE: right to left layout

        display: inline-block;
        @include left(8px);
        opacity: 0.5;
        overflow: hidden;
        top: 4px;
        margin-top: 1px;
        margin-right: 2px;
        @include transition(all 0.15s linear 0s);
        width: 19px;
      }
      div {
        margin-top: 3px;
        float: right;
        margin-left: 4px;
      }
      div {
        margin-top: 3px;
        float: right;
        margin-left: 4px;
      }

      &:hover, &:focus {
        .avatar {
          opacity: 0.8;
        }
      }
    }

    .dropdown-menu {
      background: $white;
      border-radius: 4px;
      box-shadow: 0 2px 2px 0 rgba(0,0,0, 0.3);
      border: 1px solid $gray-l3;
      display: none;
      margin-top: 0;
      padding: 5px 10px;
      position: absolute;
      @include right(0px);
      top: 37px;
      min-width: 120px;
      z-index: 3;

      &.expanded {
        display: block;
      }

      &::before {
        background: transparent;
        border: {
          top: 6px solid $border-color-4;
          right: 6px solid $border-color-4;
          bottom: 6px solid transparent;
          left: 6px solid transparent;
        }
        box-shadow: 1px 0 0 0 $gray-l3, 0 -1px 0 0 $gray-l3;
        content: "";
        display: block;
        height: 0px;
        position: absolute;
        @include transform(rotate(-45deg));
        @include right(7px);
        top: -5px;
        width: 0px;
      }

      li {
        display: block;
        border-top: 1px dotted $border-color-2;
        box-shadow: inset 0 1px 0 0 rgba(255,255,255, 0.05);

        &:first-child {
          border: none;
          box-shadow: none;
        }

        > a {
          border: 1px solid transparent;
          border-radius: 3px;
          @include box-sizing(border-box);
          color: $link-color;
          cursor: pointer;
          display: block;
          margin: 5px 0px;
          overflow: hidden;
          padding: 3px 5px 4px;
          text-overflow: ellipsis;
          @include transition(padding 0.15s linear 0s);
          white-space: nowrap;
          width: 100%;

          &:hover, &:focus {
            color: $base-font-color;
            text-decoration: none;
          }
        }
      }
    }
  }

  .nav-global {
    margin-top: ($baseline/2);
    list-style: none;
    @include float(left);

    li,
    div {
      display: inline-block;
      margin: 0 $baseline+1 0 0;
      font-size: em(14);
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0 !important;

      &:last-child {
        margin-right: 0;
      }

      a {
        display:block;
        padding: ($baseline/4);
        color: $lighter-base-font-color;
        font-weight: 600;

        &:hover, &:focus, &:active {
          text-decoration: none;
          color: $link-color;
        }
      }

      &.active {

        a {
          text-decoration: none;
          color: $link-color;
        }
      }
    }

    // logged in
    &.authenticated {

    }
  }

  .nav-courseware {
    @include float(right);
    margin-top: ($baseline/4);
    list-style: none;

    li, div {
      display: inline-block;

      .cta {
        @extend %m-btn-primary;
      }
    }
  }
}

// marketing site design syncing
.view-register, .view-login, .view-passwordreset {

  header.global nav {
    width: 960px;
  }
}

// page-based nav states
.view-howitworks .nav-global-01,
.view-courses .nav-global-02,
.view-schools .nav-global-03,
.view-register .nav-global-04 {
  a {
    text-decoration: none;
    color: $link-color !important;
  }
}


// edX theme: Global Header
// ====================

// CASE: marketing/course discovery
header.global-new {
  @extend %ui-depth1;
  /* Temp. fix until applied globally */
  @include box-sizing(border-box);
  position: relative;
  width: 100%;
  border-bottom: 4px solid $courseware-border-bottom-color;
  box-shadow: 0 1px 5px 0 $shadow-l1;
  background: $header-bg;

  .wrapper-header {
    @include clearfix();
    @include box-sizing(border-box);
    height: 74px;
    margin: 0 auto;
    padding: 17px 0;
    max-width: grid-width(12);

    &:not(.rwd) {
      min-width: grid-width(9);
    }
  }

  h1.logo {
    @include float(left);
    margin: -2px 39px 0 10px;
    position: relative;

    a {
      display: block;
    }
  }

  .nav-global {
    @include float(left);
  }

  .nav-account-management {
    margin: 0 auto;
  }

  .guest {
    @include float(right);
  }

  > li {
    display: inline-block;
    margin-right: $baseline;
    position: relative;
    vertical-align: middle;

    &:last-child {
      margin-right: 0;
    }

    a {
      vertical-align: middle;
    }
  }

  li.secondary {
    > a {
      color: $link-color;
      font-family: $sans-serif;
      display: inline-block;
      margin: 0 ($baseline*1.5) 0 0;
      text-decoration: none;
      text-transform: uppercase;
      text-shadow: 0 1px rgba(255,255,255, 0.6);

      &:last-child {
        margin-right: 0;
      }

      &:hover, &:focus {
        color: $base-font-color;
      }
    }
  }

  .primary {
    @include margin-right(5px);

    > a {
      @include background-image($button-bg-image);
      background-color: $button-bg-color;
      border: 1px solid $border-color-2;
      border-radius: 3px;
      @include box-sizing(border-box);
      box-shadow: 0 1px 0 0 rgba(255,255,255, 0.6);
      color: $base-font-color;
      font-family: $header-sans-serif;
      display: inline-block;
      line-height: 1em;
      margin: 1px 5px;
      padding: 10px 12px;
      text-decoration: none;
      text-transform: uppercase;
      text-shadow: 0 1px rgba(255,255,255, 0.6);
      vertical-align: middle;

      &:last-child {
        @include margin-right(0);
      }

      &:hover, &:focus, &:active {
        background: $button-bg-hover-color;
      }
    }
  }

  .user {
    @include float(right);
    margin-top: 4px;

    > .primary {
      display: block;
      @include float(left);
      margin: 0;
      position: relative;

      > a {
        margin: 0;
        @include border-right-radius(0);
        background-image: none;
      }

      &:last-child {
        > a {
          @include border-radius(0, 4px, 4px, 0);
          @include border-left(none);
          padding: 5px 8px 7px 8px;

          &.shopping-cart {
            border-radius: 4px;
            border: 1px solid $border-color-2;
            margin-right: ($baseline/2);
            padding-bottom: 6px;
          }
        }
      }
    }
     a.user-link {
      @include padding(3px, 12px, 8px, 8px);
      position: relative;
      text-transform: none;
      font-size: 14px;
      font-weight: bold;
      letter-spacing: 0;

      .icon {
        display: inline-block;
        @include float(left);
        @include margin(2px, 6px, -3px, 3px);
        font-size: 1.2em;
        color: $m-gray;
      }

      .avatar {

        // CASE: right to left layout

        display: inline-block;
        @include left(8px);
        opacity: 0.5;
        overflow: hidden;
        top: 4px;
        margin-top: 1px;
        margin-right: 2px;
        @include transition(all 0.15s linear 0s);
        width: 19px;
      }
      div {
        margin-top: 3px;
        float: right;
        margin-left: 4px;
      }
      div {
        margin-top: 3px;
        float: right;
        margin-left: 4px;
      }

      &:hover, &:focus {
        .avatar {
          opacity: 0.8;
        }
      }
    }

    .dropdown-menu {
      background: $border-color-4;
      border-radius: 4px;
      box-shadow: 0 2px 24px 0 rgba(0,0,0, 0.3);
      border: 1px solid $border-color-3;
      display: none;
      margin-top: 0;
      padding: 5px 10px;
      position: absolute;
      @include right(0);
      top: 34px;
      width: 170px;
      z-index: 3;

      &.expanded {
        display: block;
      }

      &::before {
        background: transparent;
        border: {
          top: 6px solid $border-color-4;
          right: 6px solid $border-color-4;
          bottom: 6px solid transparent;
          left: 6px solid transparent;
        }
        box-shadow: 1px 0 0 0 $border-color-3, 0 -1px 0 0 $border-color-3;
        content: "";
        display: block;
        height: 0px;
        position: absolute;
        @include transform(rotate(-45deg));
        @include right(7px);
        top: -6px;
        width: 0px;
      }

      li {
        display: block;
        border-top: 1px solid $gray-l3;
        box-shadow: inset 0 1px 0 0 rgba(255,255,255, 0.05);

        &:first-child {
          border: none;
          box-shadow: none;
        }

        > a {
          border: 1px solid transparent;
          border-radius: 3px;
          @include box-sizing(border-box);
          color: $link-color;
          cursor: pointer;
          display: block;
          margin: 5px 0px;
          overflow: hidden;
          padding: 3px 5px 4px;
          text-overflow: ellipsis;
          @include transition(padding 0.15s linear 0s);
          white-space: nowrap;
          width: 100%;

          &:hover, &:focus {
            color: $base-font-color;
            text-decoration: none;
          }
        }
      }
    }
  }

  %default-header-nav {
    margin-top: ($baseline/4);
    list-style: none;
    @include float(left);

    li,
    div {
      display: inline-block;
      margin: 0;
      text-transform: uppercase;
      letter-spacing: 0 !important;

      a {
        display:block;
        padding: 3px 10px;
        font-size: 18px;
        line-height: 24px;
        font-weight: 600;
        font-family: $header-sans-serif;
        color: $courseware-navigation-color;

        &:hover,
        &:focus {
          text-decoration: none;
          color: $courseware-hover-color;
        }
      }
    }
  }

  .nav-global {
    @extend %default-header-nav;
  }

  .nav-courseware {
    @extend %default-header-nav;
    @include float(right);

    div {
      display: inline-block;
      text-transform: uppercase;
      letter-spacing: 0!important;
      position: relative;

      &:last-child {
        margin-right: ($baseline/2);
      }

      a {
        &.nav-courseware-button {
          border: 3px solid $courseware-button-border-color;
          border-radius: 5px;
          margin-top: -22px;

          &:hover, &:focus, &:active {
            border-color: $courseware-navigation-color;
          }

          .view-login &:hover, &:focus, &:active {
            border-color: $courseware-button-border-color;
          }
        }
      }
    }
  }

  &.rwd {
    .wrapper-header {
      width: 320px;
    }

    .mobile-menu-button {
      @include float(left);
      display: inline;
      text-decoration: none;
      color: $m-gray;
      font-size: 18px;
      margin-top: 9px;

      &:hover,
      &:active,
      &:focus {
        text-decoration: none;
      }
    }

    .logo {
      position: absolute;
      top: 20px;
      @include left(calc(50% - 90px));
      width: 54px;

      img {
        width: 54px;
      }
    }

    .nav-global,
    .nav-courseware {
      a {
        font-size: 14px;

        &.nav-courseware-button {
          width: 86px;
          text-align: center;
          margin-top: -3px;
        }
      }
    }

    .nav-global,
    .nav-courseware-01 {
      display: none;
    }

    .nav-global {
      position: absolute;
      top: 73px;
      left: calc( 50% - 160px );
      z-index: 1000;
      width: 320px;
      background: $m-blue-d3;

      &.show {
        display: inline;
      }

      a {
        color: white;
        padding: 10px;
        font-weight: 400;

        &:hover,
        &:focus {
          background: $m-blue-d5;
          color: white;
          border-bottom: none;
        }
      }

      li {
        display: block;
        border-bottom: 1px solid $m-blue-d5;
      }
    }

    .nav-courseware {
      display: inline;

      div:last-child {
        margin-right: 0;
      }
    }

    @include media( $desktop ) {
      .wrapper-header {
        width: 100%;
        min-width: 800px;
      }

      .mobile-menu-button {
        display: none;
      }

      .logo {
        position: relative;
        top: 0;
        @include left(0);
        width: auto;

        img {
          width: auto;
        }
      }

      .nav-global {
        display: inline;
        position: relative;
        z-index: auto;
        width: auto;
        top: auto;
        left: auto;
        background: inherit;

        a {
          color: $courseware-navigation-color;
          padding: 3px 10px;
          font-weight: 600;

          &:hover,
          &:focus {
            background: inherit;
            color: $courseware-hover-color;
          }
        }

        li {
          display: inline-block;
          border-bottom: none;
        }
      }

      .nav-courseware {
        div:last-child {
          margin-right: ($baseline/2);
        }
      }

      .nav-courseware-01 {
        display: inline-block;
      }

      .desktop-hide {
        display: none!important;
      }
    }

    @include media( $xl-desktop ) {
      .wrapper-header {
        padding: 17px 0;
      }

      .nav-global,
      .nav-courseware {
        a {
          font-size: 18px;
        }
      }
    }
  }
}

.view-register header.global-new .cta-register {
  text-decoration: none;
  color: $courseware-hover-color;
  border-bottom-color: $courseware-border-bottom-color;
}

.view-login header.global-new .cta-login {
  text-decoration: none;
  color: $courseware-hover-color;
}

// marketing site design syncing
.view-register, .view-login {

  header.global nav {
    width: 960px;
  }
}

// page-based nav states
.view-howitworks .nav-global-01,
.view-courses .nav-global-02,
.view-schools .nav-global-03,
.view-register .nav-global-04 {

  a {
    text-decoration: none;
    color: $link-color !important;
  }
}