/* nested-nav-menus */

@keyframes skeleton-shimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}

div.shopify-section-group-header-group.nested-nav-menus {
  --border-radius: 6px;
  --icon-size: 12px;
  --icon-thickness: 3px;
  --animation-duration: 0.3s;

  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  z-index: var(--mobile-nav-index);

  display: flex;
  flex-direction: column;
  align-items: flex-start;

  visibility: hidden;
  pointer-events: none;
  transition: visibility 0s var(--animation-duration);

  &.active {
    visibility: visible;
    pointer-events: auto;
    transition: visibility 0s 0s;

    & div.nested-nav-menus__backdrop {
      opacity: 1;
    }

    & aside.nested-nav-menus__container {
      transform: translateX(0);
    }
  }

  & * {
    line-height: 1;
  }

  & ul:not(.js-country-list),
  & li {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  & div.nested-nav-menus__backdrop {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    opacity: 0;
    transition: opacity var(--animation-duration) ease;
  }

  &.no-transition,
  &.no-transition * {
    transition: none !important;
  }
}

aside.nested-nav-menus__container {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 400px;
  height: 100%;
  overflow: hidden;
  background-color: var(--brand-white);
  transform: translateX(-100%);
  transition: transform var(--animation-duration) ease;

  @media (max-width: 450px) {
    width: 100%;
    max-width: 100vw;
  }

  & div.nested-nav-menus__header {
    flex-shrink: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 5px 10px;
    background-color: var(--brand-white);
    border-bottom: var(--light-gray-border);

    & div.nested-nav-menus__header--icons {
      display: flex;
      align-items: center;
      gap: 8px;

      & div.nested-nav-menus__locale-selector {
        display: flex;
        align-items: center;

        & .disclosure.country-opener {
          display: flex;
          transform: translateY(-2px);
        }

        & .disclosure__button {
          padding-bottom: 0;
        }
      }

      & div.nested-nav-menus__close {
        display: flex;
        align-items: center;

        & button.nested-nav-menus__close-button {
          background: none;
          border: none;
          cursor: pointer;
          padding: 4px;
        }
      }
    }
  }

  & div.nested-nav-menus__body {
    flex: 1;
    overflow-y: scroll;

    /* hide scrollbar */
    &::-webkit-scrollbar {
      display: none;
    }
    scrollbar-width: none;
    -ms-overflow-style: none;
  }

  & div.nested-nav-menus__selectors-container {
    display: flex;
    flex-direction: row;
    gap: 10px;

    & button.nested-nav-menus__selector {
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 0;
      background: none;
      border: none;
      cursor: pointer;

      &.active {
        & p.nested-nav-menus__selector--title {
          background-color: #000;
          color: #fff;
          font-weight: bold;
        }
      }

      & p.nested-nav-menus__selector--title {
        font-size: 16px;
        font-weight: normal;
        text-transform: capitalize;
        background-color: #f4f4f4;
        border-radius: 50px;
        padding: 5px 20px;
        margin: 0;
      }
    }
  }

  & div.nested-nav-menus__menus-container {
    padding: 0 10px 10px;

    & nav.nested-nav-menu {
      display: none;

      &.active {
        display: block;
      }

      & div.nested-nav-banners {
        padding: 5px 0 10px;

        &.top-banners {
          padding: 10px 0;
        }

        & .nested-nav-banners__blocks {
          display: grid;
          grid-template-columns: repeat(2, 1fr);
          gap: 10px;
        }

        & .nested-nav-banners__banner {
          display: flex;
          flex-direction: column;
          align-items: center;
          justify-content: center;
          width: 100%;
          min-height: 60px;
          border-radius: var(--border-radius);
          padding: 12px 8px;
          background-color: black;
          color: white;
          border: none;
          cursor: pointer;
          text-decoration: none;

          &.red {
            background: linear-gradient(180deg, #651f17 0%, #41140f 100%);
            color: #fff;

            & .nested-nav-banners__text {
              font-size: 14px;

              &.timer-hidden {
                font-size: 20px;
              }
            }

            & .deals__countdown-timer {
              margin-top: 5px;
              gap: 2px;
            }

            & .deals__countdown-timer--time-block {
              font-size: 12px;
              width: fit-content;
              height: fit-content;
              min-width: 30px;
              padding: 2px 0;
              background: #000;
            }

            & .deals__countdown-timer--separator {
              color: #fff;
              font-size: 12px;
            }
          }

          &.blue {
            background: linear-gradient(179deg, #efeeec 0.81%, #dee2e9 99.19%);
            color: black;
          }

          &.yellow {
            background: linear-gradient(185deg, #f1a337 3.65%, #fdbe67 96.35%);
            color: black;
            min-height: 0;
            padding: 8px;
          }

          &.dark {
            background: linear-gradient(179deg, #efeeec 0.81%, #dee2e9 99.19%);
            color: black;
            min-height: 0;
            padding: 8px;
          }
        }

        & .nested-nav-banners__text {
          white-space: break-spaces;
          line-height: 1.2;
          display: block;
          text-align: center;
          font-size: 20px;
          font-weight: 700;
          color: inherit;

          &.nested-nav-banners__text--clearance {
            font-size: 20px;
            color: #c42f41;
          }
        }

        & small {
          font-size: 11px;
          opacity: 0.8;
        }

        &.bottom-banners .nested-nav-banners__text {
          font-size: 14px;
        }
      }

      & div.nested-nav-tiles {
        /* padding: 0 0 10px; */

        & ul.nested-nav-tiles__list {
          display: grid;
          grid-template-columns: repeat(2, 1fr);
          gap: 10px;
          margin: 0;
          padding: 0;
          list-style: none;
        }

        & li.nested-nav-tiles__tile {
          margin: 0;
          padding: 0;
        }

        & a.nested-nav-tiles__link {
          display: flex;
          flex-direction: column;
          text-decoration: none;
          color: var(--brand-black);
        }

        & div.nested-nav-tiles__img-wrapper {
          width: 100%;
          border-top-right-radius: var(--border-radius);
          border-top-left-radius: var(--border-radius);
          overflow: hidden;
        }

        & img.nested-nav-tiles__img {
          width: 100%;
          height: 140px;
          object-fit: cover;
        }

        & div.nested-nav-tiles__text-wrapper {
          padding: 8px 0;
          background: linear-gradient(179deg, #efeeec 0.8%, #dee2e9 99.2%);
          border-bottom-right-radius: var(--border-radius);
          border-bottom-left-radius: var(--border-radius);
        }

        & p.nested-nav-tiles__text {
          margin: 0;
          font-size: 14px;
          font-weight: bold;
          text-align: center;
        }
      }

      & nav.nested-nav-text-links {
        /* margin-top: 10px; */
        /* border-top: var(--light-gray-border); */
        padding-top: 15px;

        & ul.nested-nav-text-links__list {
          display: flex;
          flex-direction: column;
          gap: 10px;
          margin: 0;
          padding: 0;
          list-style: none;
        }

        & li.nested-nav-text-links__item {
          margin: 0;
          padding: 0;
        }

        & a.nested-nav-text-links__link {
          font-size: 15px;
          font-weight: bold;
          color: var(--brand-black);
          text-decoration: none;
        }
      }

      & ul.nested-nav-menu__parents {
        display: flex;
        flex-direction: column;
        gap: 10px;
        margin: 10px 0;
      }

      & li.nested-nav-menu__parent {
        & div.nested-nav-menu__parent--content {
          display: flex;
          align-items: center;
          justify-content: space-between;
          width: 100%;
          gap: 10px;

          &[data-toggle-nested-nav-children] {
            cursor: pointer;
          }

          & img.nested-nav-menu__parent--image {
            flex-shrink: 0;
            width: 96px;
            border-radius: var(--border-radius);
            overflow: hidden;
            aspect-ratio: 3 / 2.1;
            object-fit: cover;
            transition: opacity 0.3s ease;
          }

          & div.nested-nav-menu__parent--text {
            flex: 1;
            display: flex;
            flex-direction: column;
            align-self: center;
            align-items: flex-start;
            gap: 2px;

            & span.nested-nav-menu__parent--title,
            & a.nested-nav-menu__parent--title {
              font-size: var(--font-xl);
              font-weight: bold;
              color: var(--brand-black);
              text-decoration: none;
            }

            & p.nested-nav-menu__parent--subheading {
              margin: 0;
              font-size: 14px;
              font-weight: bold;
              color: var(--brand-red);
            }
          }

          & div.nested-nav-menu__parent--toggle {
            flex-shrink: 0;
            display: flex;
            align-items: center;
            justify-content: center;
            width: 24px;
            height: 24px;

            & .nested-nav-menu__toggle--plus {
              display: flex;
              position: relative;
              width: var(--icon-size);
              height: var(--icon-size);
              transition: transform 0.3s ease;

              & .nested-nav-menu__toggle--plus-h,
              & .nested-nav-menu__toggle--plus-v {
                position: absolute;
                background-color: var(--brand-black);
              }

              & .nested-nav-menu__toggle--plus-h {
                width: 100%;
                height: var(--icon-thickness);
                top: 50%;
                transform: translateY(-50%);
              }

              & .nested-nav-menu__toggle--plus-v {
                width: var(--icon-thickness);
                height: 100%;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%);
                transition: height 0.3s ease;
              }
            }
          }
        }

        &[data-expanded='true'] div.nested-nav-menu__parent--content {
          & img.nested-nav-menu__parent--image {
            opacity: 0.5;
          }

          & div.nested-nav-menu__parent--toggle .nested-nav-menu__toggle--plus {
            transform: rotate(180deg);

            & .nested-nav-menu__toggle--plus-v {
              height: var(--icon-thickness);
            }
          }
        }
      }

      & div.nested-nav-menu__children-wrapper {
        display: grid;
        grid-template-rows: 0fr;
        transition: grid-template-rows 0.3s ease;

        &[data-collapsed='false'] {
          grid-template-rows: 1fr;

          & ul.nested-nav-menu__children {
            border-left-color: var(--brand-gray-light);
          }
        }

        & ul.nested-nav-menu__children {
          overflow: hidden;
          min-height: 0;
          display: flex;
          flex-direction: column;
          gap: 5px;
          margin: 0 0 0 20px;
          padding: 5px 0 0 10px;
          border-left: 2px solid transparent;
          transition: border-left-color 0.3s ease;
        }
      }

      & li.nested-nav-menu__child {
        --height: 26px;
        min-height: var(--height);
        display: flex;
        flex-direction: column;
        justify-content: center;

        &.no-grandchildren {
          display: flex;
          /* align-items: center; */
        }

        & .nested-nav-menu__badge {
          display: none;
          background-color: #000;
          color: #fff;
          font-size: 10px;
          font-weight: 600;
          line-height: 1;
          padding: 2px 6px;
          border-radius: 4px;
          text-transform: uppercase;
          margin-left: 6px;
          flex-shrink: 0;
        }

        & div.nested-nav-menu__child--content {
          display: flex;
          align-items: center;
          justify-content: space-between;
          width: 100%;

          &[data-toggle-grandchildren] {
            cursor: pointer;
          }

          & span.nested-nav-menu__child--title {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            font-size: 15px;
            font-weight: 600;
            color: var(--brand-black);
          }

          & div.nested-nav-menu__child--toggle {
            flex-shrink: 0;
            display: flex;
            align-items: center;
            justify-content: center;
            width: var(--height);
            height: var(--height);

            &.nested-nav-menu__toggle--hidden {
              opacity: 0;
              transition: opacity 0.3s ease;
            }

            &.nested-nav-menu__toggle--visible {
              opacity: 1;
            }

            & .nested-nav-menu__toggle--plus {
              display: flex;
              position: relative;
              width: var(--icon-size);
              height: var(--icon-size);
              transition: transform 0.3s ease;

              & .nested-nav-menu__toggle--plus-h,
              & .nested-nav-menu__toggle--plus-v {
                position: absolute;
                background-color: #9d9d9d;
              }

              & .nested-nav-menu__toggle--plus-h {
                width: 100%;
                height: calc(var(--icon-thickness) / 2);
                top: 50%;
                transform: translateY(-50%);
              }

              & .nested-nav-menu__toggle--plus-v {
                width: calc(var(--icon-thickness) / 2);
                height: 100%;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%);
                transition: height 0.3s ease;
              }
            }
          }
        }

        &[data-expanded='true']
          div.nested-nav-menu__child--content
          div.nested-nav-menu__child--toggle {
          & .nested-nav-menu__toggle--plus {
            transform: rotate(180deg);

            & .nested-nav-menu__toggle--plus-v {
              height: calc(var(--icon-thickness) / 4);
            }
          }
        }

        & a.nested-nav-menu__child--title {
          display: inline-flex;
          align-items: center;
          gap: 4px;
          font-size: 15px;
          font-weight: 600;
          color: var(--brand-black);
          text-decoration: none;
          flex-wrap: wrap;

          &.show-loading-skeleton {
            & span {
              opacity: 0;
            }

            cursor: default;
            width: max-content;
            border-radius: 5px;
            background: linear-gradient(90deg, #e0e0e0 25%, #f0f0f0 50%, #e0e0e0 75%);
            background-size: 200% 100%;
            animation: skeleton-shimmer 3s ease-in-out infinite;
          }

          &.has-chevron {
            width: 100%;
            justify-content: space-between;
          }

          & div.nested-nav-menu__child--chevron {
            display: flex;
            align-items: center;
            justify-content: center;
            width: var(--height);
            height: var(--height);
            flex-shrink: 0;
            opacity: 0;

            &.nested-nav-menu__toggle--visible {
              opacity: 1;
            }

            & svg {
              width: auto;
              height: 16px;
              fill: #9d9d9d;
            }
          }
        }
      }

      & div.nested-nav-menu__grandchildren-wrapper {
        display: grid;
        grid-template-rows: 0fr;
        transition: grid-template-rows 0.3s ease;

        &[data-collapsed='false'] {
          grid-template-rows: 1fr;
        }

        & ul.nested-nav-menu__grandchildren {
          overflow: hidden;
          min-height: 0;
          display: flex;
          flex-direction: column;
          gap: 10px;
          /* padding: 10px 0; */
        }
      }

      & li.nested-nav-menu__grandchild {
        &:first-child {
          margin-top: 10px;
        }

        &:last-child {
          margin-bottom: 10px;
        }

        & a.nested-nav-menu__grandchild--title {
          display: inline-flex;
          align-items: center;
          gap: 6px;
          font-size: 14px;
          font-weight: normal;
          color: var(--brand-black);
          text-decoration: none;
        }

        & .nested-nav-menu__badge {
          display: none;
          background-color: #000;
          color: #fff;
          font-size: 10px;
          font-weight: 600;
          line-height: 1;
          padding: 2px 6px;
          border-radius: 4px;
          text-transform: uppercase;
          flex-shrink: 0;
        }
      }
    }
  }

  & div.mobile-nav__footer {
    & .mobile-nav__utilities {
      padding: 0;
      margin: 0 10px;

      & .list-unstyled {
        padding: 10px 0 20px;
        border-top: var(--light-gray-border);
      }
    }
  }
}
