// Shop Single Content
.single-content {
  .woocommerce-breadcrumb {
    @include min-break(1024) {
      padding: 1.5rem 0;
    }
  }
  &.single-gray {
    background-color: #f7f8fd;
    margin-bottom: -2.5rem;
    padding-bottom: 2.5rem;
    @include min-break(1024) {
      margin-bottom: -7.1875rem;
      padding-bottom: 7.1875rem;
    }
    .single-wrapper {
      & > .product {
        background-color: #fff;
        border-radius: getSize(border-radius);
        padding: 1.25rem;
        @include min-break(1024) {
          padding: 2.5rem;
        }
      }
    }
  }
  .product {
    .product-badges {
      .style-1 {
        &.onsale {
          font-size: .875rem;
        }
      }
      .style-2 {
        &.onsale {
          font-size: .875rem;
        }
      }
    }
    .product-header {
      margin-bottom: 1.25rem;
      width: 100%;
      @include min-break(1024) {
        margin-bottom: 1.875rem;
      }
      &.bordered {
        padding-bottom: 1.25rem;
        border-bottom: 1px solid getColor(border);
        @include min-break(1024) {
          padding-bottom: 1.875rem;
        }
      }
    }
    .product_title {
      font-size: 1.5rem;
      font-weight: 600;
      margin-bottom: .9375rem;
    }
    .product-meta {
      &.top {
        @include max-break(576) {
          flex-direction: row;
          & > * {
            margin-right: 1.25rem;
            margin-bottom: .625rem;
            &.store-info {
              width: 100%;
            }
            & + * {
              &::before {
                display: none;
              }
            }
          }
        }
        & > * {
          & + * {
            @include min-break(1024) {
              margin-left: .9375rem;
            }
            &::before {
              content: '|';
              color: getColor(border);
              margin-right: .5rem;
              @include min-break(1024) {
                margin-right: .8125rem;
              }
            }
          }
        }
      }
      .product-brand {
        display: inline-flex;
        align-items: center;
        span {
          color: getColor(info-dark);
          margin-right: 4px;
        }
        a {
          font-weight: 500;
          color: getColor(text-light);
        }
      }
      .sku-wrapper {
        span {
          &:not(.sku) {
            color: getColor(info-dark);
          }
          &.sku {
            font-weight: 500;
            color: getColor(text-light);
          }
        }
      }
      .store-info {
        &::before {
          content: '';
        }
        span {
          position: relative;
          display: inline-flex;
          align-items: center;
          padding: .3125rem .625rem;
          color: getColor(info-dark);
          border: 1px solid getColor(border-dark);
          border-right: inherit;
          border-top-left-radius: getSize(form-radius);
          border-bottom-left-radius: getSize(form-radius);
          &::before, &:after {
            content: '';
            position: absolute;
            right: -4px;
            border-right: 1px solid getColor(border-dark);
            display: block;
            height: 55%;
            background: #fff;
            width: 10px;
          }
          &::before {
            border-top: 1px solid getColor(border-dark);
            top: -1px;
            transform: skew(155deg);
          }
          &::after {
            border-bottom: 1px solid getColor(border-dark);
            bottom: -1px;
            transform: skew(25deg);
          }
          a {
            margin-left: 4px;
            font-weight: 500;
            color: getColor(text-light);
          }
        }
      }
    }
    .product-content {
      .product-detail {
        display: flex;
        flex-flow: row wrap;
        .column {
          flex-direction: column;
          align-items: flex-start;
          &:not(.product-icons) {
            flex: 1;
          }
          &.product-icons {
            flex: 0 0 16.25rem;
            max-width: 16.25rem;
            margin-left: 2.5rem;
            @include max-break(1024) {
              flex: 0 0 100%;
              max-width: 100%;
              margin-left: 0;
              margin-top: 1.875rem;
            }
          }
        }
        @include min-break(1024) {
          padding-left: 1.875rem;
        }
        @include max-break(768) {
          margin-top: 1.875rem;
        }
      }
    }
    .price {
      margin-bottom: .9375rem;
      @include max-break(768) {
        font-size: 1.5rem;
      }
      & + .product-meta {
        margin-bottom: 1.25rem;
        @include max-break(576) {
          flex-direction: row;
          align-items: center;
          .product-available {
            margin-left: .75rem;
          }
        }
      }
      del {
        font-size: 75%;
        font-weight: 500;
      }
    }
    .product-short-description {
      margin-bottom: 1.25rem;
      p {
        font-size: .8125rem;
        color: getColor(text-light);
      }
    }
    form.cart {
      display: flex;
      align-items: center;
      width: 100%;
      margin-bottom: 1.875rem;
      @include min-break(1024) {
        margin-bottom: 2.5rem;
      }
      .quantity {
        .quantity-button {
          transition: all .2s $bezier;
          &:hover {
            background-color: getColor(rating);
          }
        }
      }
      .add_to_cart_button {
        font-size: .8125rem;
        flex: 1;
        height: 2.75rem;
        margin-left: .9375rem;
        justify-content: center;
      }
    }
    .product-actions {
      display: flex;
      align-items: center;
      margin-bottom: 1.875rem;
      a {
        display: inline-flex;
        align-items: center;
        font-family: getFont(secondary);
        font-size: .75rem;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0;
        color: getColor(text-lighter);
        text-decoration: none;
        & + a {
          margin-left: 1.25rem;
        }
        i {
          margin-right: 6px;
        }
        &.add-to-wishlist {
          justify-content: center;
          height: 2.0625rem;
          padding-left: .75rem;
          padding-right: .75rem;
          border: 1px solid getColor(border-dark);
          border-radius: 2.0625rem;
          i {
            color: getColor(border-dark);
            transition: all .2s $bezier;
          }
          &:hover {
            i {
              color: getColor(danger);
            }
          }
        }
      }
    }
    .product-checklist {
      margin-bottom: 1.5rem;
      ul {
        margin: 0;
        padding: 0;
        list-style: none;
        li {
          position: relative;
          display: flex;
          align-items: center;
          font-size: .75rem;
          color: getColor(text-light);
          & + li {
            margin-top: .375rem;
          }
          &::before {
            font-family: "klbtheme";
            font-size: .6875rem;
            content: '\e8e1';
            color: getColor(success);
            margin-right: .625rem;
          }
        }
      }
    }
    .product-meta {
      &.bottom {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        width: 100%;
        border-top: 1px solid getColor(border);
        padding-top: 1.5rem;
        & > * {
          margin-left: 0;
          color: getColor(info-dark);
          span {
            text-transform: uppercase;
          }
          a {
            position: relative;
            font-weight: 500;
            color: getColor(text-lighter);
            & + a {
              &::before {
                content: ',';
                margin-right: 4px;
              }
            }
          }
          & + * {
            margin-top: .375rem;
          }
        }
      }
    }
    .product-share {
      margin-top: 1.875rem;
      @include min-break(1200) {
        margin-top: 2.5rem;
      }
    }
    .alert-message {
      font-size: .75rem;
      text-align: center;
      width: 100%;
      color: getColor(danger-dark);
      background-color: getColor(danger-light);
      border-radius: getSize(form-radius);
      padding: 10px 10px;
      margin-bottom: .75rem;
    }
    .icon-messages {
      padding: 1.875rem;
      width: 100%;
      background-color: getColor(light);
      border-radius: getSize(form-radius);
      ul {
        margin: 0;
        padding: 0;
        list-style: none;
        li {
          display: flex;
          align-items: flex-start;
          & + li {
            margin-top: 1.875rem;
          }
          .icon {
            display: inline-flex;
            align-items: flex-start;
            font-size: 1.25rem;
            margin-right: 1.25rem;
            i {
              position: relative;
              top: -1px;
            }
          }
          .message {
            font-size: .75rem;
          }
        }
      }
    }
    .woocommerce-product-gallery {
      &.vertical {
        position: relative;
        @include min-break(1024) {
          .slider-wrapper {
            position: relative;
            padding-left: 4.375rem;
          }
          .product-badges {
            left: 5.625rem;
            top: 1.25rem;
          }
          .product-thumbnails {
            position: absolute;
            max-width: 3.5rem;
            width: 100%;
            top: 0;
            left: 0;
            margin-left: 0;
            margin-right: 0;
            .slick-track {
              display: flex;
              flex-direction: column;
              width: 100%!important;
              .slick-slide {
                width: 100%!important;
                margin-left: 0;
                margin-right: 0;
                & + .slick-slide {
                  margin-top: 6px;
                }
              }
            }
          }
        }
      }
    }
  }
  .promotion-products {
    margin-top: 1.875rem;
    @include min-break(1024) {
      margin-top: 3.75rem;
    }
    .module-body {
      display: flex;
      flex-flow: row wrap;
      background-color: #fff;
      border: 2px solid getColor(secondary);
      border-radius: getSize(border-radius);
      .products {
        flex: 0 0 100%;
        max-width: 100%;
        @include min-break(1024) {
          flex: 0 0 75%;
          max-width: 75%;
        }
        &:before {
          display: none;
        }
      }
      .product {
        .product-button-group {
          border-top: 1px solid getColor(border-light);
          margin-left: -.9375rem;
          margin-right: -.9375rem;
          padding-left: .9375rem;
          padding-right: .9375rem;
          padding-top: 1.25rem;
          @include min-break(1024) {
            margin-left: -1.25rem;
            margin-right: -1.25rem;
            padding-left: 1.25rem;
            padding-right: 1.25rem;
          }
          .add_to_cart_button {
            position: relative;
            display: inline-flex;
            align-items: center;
            font-size: .75rem;
            color: getColor(text-lighter);
            &::before {
              display: inline-flex;
              align-items: center;
              justify-content: center;
              font-family: "klbtheme";
              content: '\e8c5';
              width: 1.625rem;
              height: 1.625rem;
              border: 1px solid getColor(border-dark);
              border-radius: 50%;
              margin-right: .625rem;
            }
            @include max-break(1024) {
              span {
                display: none;
              }
            }
          }
        }
      }
      .promotion-detail {
        display: flex;
        flex-direction: column;
        flex: 0 0 100%;
        max-width: 100%;
        padding: 1.25rem;
        @include min-break(1024) {
          flex: 0 0 25%;
          max-width: 25%;
          padding: 2.5rem;
        }
        .products-list {
          margin: 0;
          padding: 0;
          list-style: none;
          li {
            position: relative;
            display: flex;
            align-items: flex-start;
            font-size: .75rem;
            & + li {
              margin-top: 1.5rem;
            }
            &::before {
              position: relative;
              font-family: "klbtheme";
              font-size: .6875rem;
              content: '\e8e1';
              color: getColor(success);
              margin-right: .625rem;
              top: 2px;
            }
          }
        }
        .total-promotion {
          margin-top: auto;
          padding-top: 1.875rem;
          .total-price {
            font-size: .75rem;
            .price {
              color: getColor(price);
            }
          }
          .button {
            font-size: .8125rem;
            margin-top: .625rem;
          }
        }
      }
    }
  }
  .woocommerce-tabs {
    margin-top: 1.875rem;
    background-color: #fff;
    border-radius: getSize(border-radius);
    border: 1px solid getColor(border-light);
    @include min-break(1024) {
      margin-top: 3.75rem;
    }
    .wc-tabs {
      display: flex;
      align-items: center;
      flex-flow: row wrap;
      margin: 0;
      padding: 0;
      list-style: none;
      border-bottom: 1px solid getColor(border-light);
      @include min-break(1024) {
        padding-left: 1.25rem;
        padding-right: 1.25rem;
      }
      li {
        display: inline-flex;
        &.active {
          a {
            color: getColor(text);
          }
        }
      }
      a {
        font-family: getFont(secondary);
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0;
        text-decoration: none;
        padding: 1.25rem;
        color: getColor(info);
      }
    }
    .woocommerce-Tabs-panel {
      padding: 1.25rem;
      @include min-break(1024) {
        padding: 1.25rem 2.5rem;
      }
      &--description {
        & > h2 {
          display: none;
        }
      }
      p {
        font-size: .9375rem;
        line-height: 1.8;
      }
    }
  }
}

// Breadcrumb
.woocommerce-breadcrumb {
  padding: .625rem 0;
  ul {
    display: flex;
    align-items: center;
    flex-flow: row wrap;
    margin:0;
    padding: 0;
    list-style: none;
    li {
      position: relative;
      display: inline-flex;
      align-items: center;
      font-family: getFont(secondary);
      font-size: .75rem;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0;
      color: getColor(info-dark);
      & + li {
        &::before {
          font-family: "klbtheme";
          font-size: 110%;
          content: '\e8d3';
          margin-left: .625rem;
          margin-right: .625rem;
        }
      }
    }
    a {
      color: getColor(text-light);
    }
  }
  & + .content-wrapper {
    margin-top: 1.875rem;
    @include min-break(1024) {
      margin-top: 2.5rem;
    }
  }
}

// Product header
.woocommerce-products-header {
  margin-top: .625rem;
  margin-bottom: .9375rem;
  @include min-break(1200) {
    margin-top: .9375rem;
    margin-bottom: 2.1875rem;
  }
  .woocommerce-products-header__title {
    font-size: 2.25rem;
    @include min-break(1200) {
      font-size: 2.5rem;
      font-weight: 500;
    }
  }
  p {
    font-size: .9375rem;
    font-weight: 300;
  }
}
.content-primary {
  & > .woocommerce-products-header {
    @include min-break(1024) {
      margin-top: 0
    }
  }
}

// Shop Banner
.shop-banner {
  margin-bottom: 1.25rem;
  .banner-wrapper {
    text-align: inherit!important;
  }
  a {
    width: 100%;
  }
  img {
    width: 100%;
  }
}

// Before shop loop
.before-shop-loop {
  position: relative;
  display: flex;
  align-items: center;
  flex-flow: row wrap;
  min-height: 3.5rem;
  background-color: getColor(light);
  border-radius: getSize(border-radius);
  padding-left: .9375rem;
  padding-right: .9375rem;
  margin-bottom: 1.25rem;
  @include min-break(1200) {
    padding-left: 1.875rem;
    padding-right: 1.875rem;
  }
  .shop-view-selector {
    margin-right: auto;
    a {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      font-size: .875rem;
      width: 1rem;
      height: 1rem;
      color: getColor(info);
      & + a {
        margin-left: .75rem;
      }
      &:hover, &.active {
        color: getColor(text);
      }
    }
    @include max-break(1024) {
      display: none;
    }
  }
  .product-filter {
    position: relative;
    display: inline-flex;
    align-items: center;
    & > span {
      font-size: .8125rem;
      &:not(.select2) {
        font-size: .75rem;
        color: getColor(info-dark);
      }
    }
    .select2 {
      font-weight: 500;
      width: auto!important;
      box-shadow: none;
      outline: none;
      .select2-selection {
        display: flex;
        align-items: center;
        height: 2.375rem;
        background-color: transparent;
        border: 0;
        box-shadow: none;
        outline: none;
        .select2-selection__rendered {
          color: getColor(text);
          padding-left: .375rem;
          padding-right: 1.5625rem;
        }
        .select2-selection__arrow {
          display: inline-flex;
          align-items: center;
          justify-content: center;
          top: auto;
          &:after {
            font-family: 'klbtheme';
            font-size: 130%;
            content: '\e8c3';
          }
          b {
            display: none;
          }
        }
      }
    }
    & + .product-filter {
      border-left: 1px solid getColor(border-light);
      padding-left: 1.125rem;
      margin-left: .9375rem;
    }
    &.products-per-page {
      @include max-break(576) {
        display: none;
      }
    }
    &.woocommerce-ordering {
      @include max-break(576) {
        position: relative;
        &::before {
          font-family: 'klbtheme';
          font-size: 1rem;
          content: '\e890';
          position: absolute;
          display: inline-flex;
          align-items: center;
          justify-content: center;
          width: 100%;
          height: 100%;
          top: 0;
          right: -1.25rem;
        }
        .orderby-label {
          margin-right: .625rem;
        }
        .select2 {
          display: none;
        }
        .filterSelect {
          all: unset;
          position: relative!important;
          display: inline-flex!important;
          align-items: center!important;
          justify-content: center!important;
          clip: none!important;
          clip-path:none!important;
          font-size: 0!important;
          width: 1.625rem!important;
          height: 1.625rem!important;
          overflow: auto!important;
        }
      }
    }
  }
  .mobile-filter {
    display: none;
    margin-right: auto;
    @include max-break(1024) {
      display: inline-flex
    }
    .filter-toggle {
      display: inline-flex;
      align-items: center;
      color: getColor(text);
      text-decoration: none;
      span {
        position: relative;
        font-size: .8125rem;
        font-weight: 500;
        margin-left: .4375rem;
        top: 1px;
      }
    }
  }
}

// Product Filter Select
.select-filter-orderby, .select-filter-perpage {
  min-width: 180px;
  background-color: getColor(background);
  border-color: getColor(border-light);
  border-bottom-right-radius: getSize(border-radius);
  border-bottom-left-radius: getSize(border-radius);
  box-shadow: 0px 5px 10px rgba($color: $--color-mix, $alpha: 0.1);
  margin-left: -1.875rem;
  .select2-results__options {
    padding-top: 1.375rem;
    padding-bottom: 1.375rem;
    max-height: 13.75rem!important;
    .select2-results__option {
      font-size: .8125rem;
      padding-left: 2.125rem;
      padding-right: 3.875rem;
      color: getColor(text-light);
      &[aria-selected=true] {
        font-weight: 600;
        color: getColor(primary)!important;
        background-color: transparent!important;
        &:hover {
          color: getColor(primary);
        }
      }
      &.select2-results__option--highlighted {
        background-color: transparent;
        color: currentColor;
      }
      &:hover {
        color: getColor(secondary);
      }
    }
  }
}
.select-filter-perpage {
  margin-left: -1.5625rem;
  .select2-results__options {
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
    max-height: 12.5rem!important;
    .select2-results__option {
      padding-left: 1.875rem;
      padding-right: 1.875rem;
    }
  }
}

// Star Rating
.product-rating {
  display: flex;
  align-items: center;
  .count-rating {
    font-family: getFont(secondary);
    font-size: .8125rem;
    font-weight: 600;
    text-transform: uppercase;
    margin-left: .5rem;
    color: getColor(text-lighter);
  }
}
.star-rating {
  position: relative;
  font-size: .6875rem;
  width: 3.9375rem;
  overflow: hidden;
  &::before {
    font-family: 'klbtheme';
    content: '\e84a\e84a\e84a\e84a\e84a';
    text-transform: uppercase;
    letter-spacing: 3px;
    color: getColor(border-dark);
  }
  span {
    position: absolute;
    top: 0;
    left: 0;
    overflow: hidden;
    &::before {
      font-family: 'klbtheme';
      content: '\e84a\e84a\e84a\e84a\e84a';
      text-transform: uppercase;
      letter-spacing: 3px;
      color: getColor(rating);
    }
  }
}

// Product Meta
.product-meta {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  font-size: .75rem;
  @include max-break(420) {
    flex-direction: column;
    align-items: flex-start;
  }
  & > * {
    & + * {
      @include min-break(420) {
        margin-left: .625rem;
      }
    }
  }
  .product-unit {
    color: getColor(text-lighter);
  }
  .product-available {
    font-family: getFont(secondary);
    font-weight: 600;
    text-transform: uppercase;
    padding: 4px 10px;
    background-color: getColor(success-light);
    border-radius: 1.875rem;
    &.in-stock {
      color: getColor(success);
    }
  }
}

// Product Price
.price {
  font-family: getFont(secondary);
  font-size: 1.125rem;
  font-weight: 600;
  @include min-break(1200) {
    font-size: 1.625rem;
  }
  del {
    font-size: 85%;
    color: getColor(info);
    .amount {
      color: getColor(info);
    }
  }
  ins {
    text-decoration: none;
    margin-left: .3125rem;
  }
  .amount {
    color: getColor(price);
  }
}

// Quantity
.quantity {
  display: inline-flex;
  flex-flow: row wrap;
  align-items: center;
  .quantity-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    background-color: getColor(border-light);
    border-radius: 50%;
    cursor: pointer;
  }
  .qty {
    width: 2.625rem;
    height: 2.75rem;
    border: 0;
    padding: 0;
    margin: 0;
    background-color: transparent;
    text-align: center;
    pointer-events: none;
  }
}

// Product Badges
.product-badges {
  position: absolute;
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  top: 1.125rem;
  left: 1.125rem;
  pointer-events: none;
  z-index: 1;
  @include max-break(320) {
    top: .625rem;
    left: .625rem;
  }
}
.badge {
  display: inline-flex;
  align-items: center;
  font-family: getFont(secondary);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0;
  width: auto;
  max-height: 1.5rem;
  padding: .375rem .75rem;
  color: #fff;
  background-color: getColor(info-dark);
  & + .badge {
    margin-top: 3px;
  }
  &.style-2 {
    border-radius: 1.125rem;
  }
  &.style-3 {
    justify-content: center;
    font-size: .875rem;
    width: 2.875rem;
    height: 2.875rem;
    max-height: none;
    padding: 0;
    border-radius: 50%;
  }
  &.onsale {
    background-color: getColor(secondary);
  }
  &.recommend {
    font-size: .625rem;
    font-weight: 700;
    background-color: getColor(text-lighter);
  }
  &.organic {
    color: getColor(success-dark);
    background-color: getColor(success-light);
  }
}

// Product Buttons
.product-buttons {
  position: absolute;
  display: inline-flex;
  flex-direction: column;
  top: .9375rem;
  right: .9375rem;
  & > * {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    color: getColor(text-light);
    background-color: #fff;
    border: 1px solid getColor(border-light);
    box-shadow: 0 3px 5px rgba($color: #000000, $alpha: 0.1);
    opacity: 0;
    transform: translateX(10px);
    transition: opacity .25s $bezier-third, transform .25s $bezier-third;
    svg {
      width: 14px;
      fill: currentColor;
    }
    & + * {
      margin-top: 5px;
    }
    &:hover {
      color: #fff;
      background-color: getColor(primary);
      border-color: transparent;
    }
  }
}

// Products
.products {
  position: relative;
  display: flex;
  flex-flow: row wrap;
  margin: 0;
  padding: 0;
  list-style: none;
  &::before {
    position: absolute;
    content: '';
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    border: 1px solid getColor(border-light);
    border-radius: getSize(border-radius);
    pointer-events: none;
  }
  .product {
    position: relative;
    flex: 1 1 0px;
    min-width: 0;
    z-index: 1;
    border-right: 1px solid getColor(border-light);
    border-bottom: 1px solid getColor(border-light);
    transition: z-index .2s $bezier;
    &:hover {
      z-index: 10;
      transition: z-index .2s $bezier;
      .product-content-fade {
        opacity: 1;
      }
      .product-fade-block {
        opacity: 1;
        visibility: visible;
        transform: translateY(0px);
      }
      .switcher-wrapper {
        transform: translateY(0);
      }
      .product-buttons {
        & > * {
          opacity: 1;
          transform: translateX(0);
          &:nth-child(2) {
            transition-delay: 0.14s;
          }
        }
      }
    }
  }
  .product-content-fade {
    position: absolute;
    top: -1px;
    bottom: 0;
    left: -1px;
    right: -1px;
    background-color: getColor(background);
    border-radius: getSize(border-radius);
    opacity: 0;
    transition: opacity .2s $bezier;
    will-change: opacity;
    box-shadow: 5px 15px 30px rgba($color: #3e445a, $alpha: 0.1);
    pointer-events: none;
    &.border-primary {
      border: 1px solid getColor(primary)!important;
    }
    &.border-secondary {
      border: 1px solid getColor(secondary)!important;
    }
    &.border-success {
      border: 1px solid getColor(success)!important;
    }
    &.border-danger {
      border: 1px solid getColor(danger)!important;
    }
    &.border-rating {
      border: 1px solid getColor(rating)!important;
    }
    &.border-info {
      border: 1px solid getColor(info)!important;
    }
    &.shadow-dark {
      box-shadow: 5px 20px 90px rgba($color: #3e445a, $alpha: 0.2);
    }
  }
  .product-fade-block {
    position: absolute;
    left: 0;
    right: 0;
    padding: 0 .9375rem;
    opacity: 0;
    visibility: hidden;
    transform: translateY(5px);
    transition: all .2s $bezier;
    will-change: opacity, transform;
    @include min-break(768) {
      padding: 0 1.25rem;
    }
  }
  .product-switcher {
    display: block;
    position: relative;
    overflow: hidden;
    margin-bottom: .625rem;
    .switcher-wrapper {
      position: relative;
      transform: translateY(-100%);
      transition: transform .3s $bezier-third;
      will-change: transform;
      & > *:nth-child(2) {
        position: absolute;
        bottom: -100%;
      }
      & > * {
        margin-bottom: 0!important;
      }
    }
  }
  .product-wrapper {
    position: relative;
    display: flex;
    flex-direction: column;
    z-index: 1;
  }
  .content-wrapper {
    position: relative;
    padding: 0 .9375rem .9375rem;
    z-index: 1;
    @include min-break(768) {
      padding: 0 1.25rem 1.25rem;
    }
    .store-info {
      font-size: .75rem;
      margin-bottom: .625rem;
      color: getColor(info);
      a {
        font-weight: 500;
        color: getColor(text-lighter);
        margin-left: .3125rem;
      }
    }
    .product-title {
      font-size: .875rem;
      font-weight: 500;
      line-height: 1.4;
      a {
        display: flex;
        display: -webkit-box;
        color: getColor(text);
        text-decoration: none;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        white-space: normal;
        overflow: hidden;
        text-overflow: ellipsis;
        transition: all .2s $bezier;
        &:hover {
          color: getColor(primary);
        }
      }
    }
    .product-meta  {
      font-size: .6875rem;
      margin-bottom: .625rem;
      .product-unit {
        color: getColor(info-dark);
      }
      .product-available {
        padding: 0;
        background-color: transparent;
      }
    }
    .product-rating {
      margin-bottom: .4375rem;
      .rating-text {
        display: none;
      }
    }
    .price {
      display: block;
      font-size: 1.125rem;
      margin-bottom: .625rem;
    }
    .product-button-group {
      display: block;
      margin-top: .9375rem;
      & > * {
        &:hover {
          opacity: 1!important;
        }
      }
    }
  }
  .thumbnail-wrapper {
    position: relative;
    padding: .9375rem;
    @include min-break(768) {
      padding: 1.25rem;
    }
    & > a:not(.quick-view-button) {
      position: relative;
      display: block;
      img {
        width: 100%;
      }
    }
  }
  .cart-with-quantity {
    .quantity {
      display: none;
      justify-content: center;
      .qty {
        font-size: .875rem;
        width: 2.5rem;
        height: 2.125rem;
        border-top: 1px solid getColor(border-light);
        border-bottom: 1px solid getColor(border-light);
        border-radius: 0;
        flex: 1;
      }
      .quantity-button {
        width: 2.125rem;
        height: 2.125rem;
        color: getColor(text);
        background-color: getColor(rating);
        &.minus {
          border-top-right-radius: 0;
          border-bottom-right-radius: 0;
          background-color: getColor(border-light);
        }
        &.plus {
          border-top-left-radius: 0;
          border-bottom-left-radius: 0;
        }
      }
    }
  }
  &.align-center {
    .content-wrapper {
      text-align: center;
      .product-meta {
        @include max-break(420) {
          align-items: center;
        }
      }
      .product-meta, .product-rating {
        justify-content: center;
      }
    }
    .product-switcher {
      .switcher-wrapper {
        display: flex;
        justify-content: center;
      }
    }
  }
  &.mobile-column-1 {
    .product {
      flex: 0 0 100%;
      max-width: 100%;
    }
  }
  &.mobile-column-2 {
    .product {
      @include min-break(320) {
        flex: 0 0 50%;
        max-width: 50%;
      }
    }
  }
  &.column-5 {
    .product {
      @include min-break(768) {
        flex: 0 0 50%;
        max-width: 50%;
      }
      @include min-break(1200) {
        flex: 0 0 20%;
        max-width: 20%;
      }
    }
  }
  &.column-4 {
    .product {
      @include min-break(768) {
        flex: 0 0 33.3333333333%;
        max-width: 33.3333333333%;
      }
      @include min-break(1200) {
        flex: 0 0 25%;
        max-width: 25%;
      }
    }
  }
  &.column-3 {
    .product {
      @include min-break(768) {
        flex: 0 0 50%;
        max-width: 50%;
      }
      @include min-break(1200) {
        flex: 0 0 33.3333333333%;
        max-width: 33.3333333333%;
      }
    }
  }
  &.column-2 {
    .product {
      @include min-break(768) {
        flex: 0 0 50%;
        max-width: 50%;
      }
    }
  }
  &.column-1 {
    .product {
      @include min-break(768) {
        flex: 0 0 100%;
        max-width: 100%;
        .product-wrapper {
          flex-direction: row;
        }
      }
    }
  }
}

// Pagination
.woocommerce-pagination {
  ul {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-flow: row wrap;
    margin: 1.875rem 0 0;
    padding: 0;
    list-style: none;
    @include min-break(1024) {
      margin: 2.5rem 0 0;
    }
    li {
      margin-right: 3px;
      & > *:not(.next, .prev) {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-size: .875rem;
        font-weight: 600;
        width: 2.25rem;
        height: 2.25rem;
        border-radius: 50%;
        color: currentColor;
        text-decoration: none;
        &.dots {
          position: relative;
          font-size: 1.125rem;
          font-weight: 300;
          top: -5px;
        }
        &.current {
          color: #fff;
          background-color: getColor(secondary)!important;
        }
        &:hover {
          &:not(.dots) {
            background-color: getColor(info-light);
          }
        }
      }
    }
  }
}

// Cart
.cart-wrapper {
  display: flex;
  flex-direction: column;
  @include min-break(1200) {
    flex-direction: row;
    flex-flow: row wrap;
    .woocommerce-cart-form, #customer_details {
      flex: 1;
    }
    .cart-collaterals {
      flex: 0 0 20rem;
      max-width: 20rem;
      margin-left: 1.875rem;
    }
    .order-review-wrapper {
      flex: 0 0 25rem;
      max-width: 25rem;
      margin-left: 1.875rem;
    }
  }
}
.woocommerce-cart-form {
  position: relative;
  table {
    th {
      font-size: .75rem;
      font-weight: 600;
      border-top: 0;
      border-bottom: 1px solid getColor(border);
      color: getColor(text-lighter);
      &.product-price, &.product-subtotal, &.product-remove {
        @include max-break(576) {
          display: none!important;
        }
      }
    }
    td {
      font-size: .875rem;
      vertical-align: middle;
      a {
        color: currentColor;
        text-decoration: none;
      }
      &.product-remove {
        @include max-break(576) {
          padding: 0!important;
          width: 0!important;
          a {
            position: absolute;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 1.375rem;
            height: 1.375rem;
            border-radius: 50%;
            color: #fff;
            background-color: getColor(danger);
            font-size: .625rem;
            left: 0;
            margin-top: -10px;
          }
        }
      }
      &.product-thumbnail {
        img {
          max-width: 4.375rem;
        }
      }
      .amount {
        font-weight: 500;
      }
      &.product-price {
        .amount {
          color: getColor(text-lighter);
        }
        @include max-break(576) {
          display: none!important;
        }
      }
      &.product-subtotal {
        @include max-break(576) {
          display: none!important;
        }
      }
      .quantity {
        flex-flow: row;
      }
      .quantity-button {
        width: 1.875rem;
        height: 1.875rem;
        i {
          line-height: 1;
        }
      }
      .qty {
        font-size: .875rem;
        width: 1.875rem;
        height: 1.875rem;
      }
      &.actions {
        padding-left: 0;
        padding-right: 0;
      }
    }
    tbody {
      position: relative;
      tr {
        position: relative;
      }
      td {
        &:first-child {
          padding-left: 0;
        }
        &:last-child {
          padding-right: 0;
        }
      }
    }
  }
  .actions-wrapper {
    display: flex;
    flex-direction: column;
    padding-top: .625rem;
    padding-bottom: .625rem;
    @include min-break(768) {
      flex-direction: row;
      flex-flow: row wrap;
      align-items: center;
      justify-content: space-between;
    }
    .empty-cart-button {
      display: none;
    }
    .coupon {
      display: inline-flex;
      align-items: center;
      label {
        display: none;
      }
      #coupon_code {
        flex: 1;
        @include min-break(576) {
          min-width: 17.5rem;
        }
      }
      .button {
        white-space: nowrap;
        margin-left: .625rem;
      }
    }
    input {
      height: 2.75rem;
    }
    .button {
      font-size: .75rem;
      height: 2.75rem;
      &[name=update_cart] {
        color: #fff;
        background-color: getColor(secondary);
        &:disabled {
          color: getColor(info);
          background-color: getColor(info-light);
        }
        @include max-break(576) {
          margin-top: .625rem;
          text-align: center;
        }
      }
    }
  }
}

.cart-collaterals {
  border: 1px solid getColor(border);
  border-radius: getSize(border-radius);
  padding: 1.25rem;
  .cart_totals {
    & > h2 {
      font-family: getFont(secondary);
      font-size: 1rem;
      font-weight: 700;
      text-transform: uppercase;
      padding-bottom: .9375rem;
      border-bottom: .9375rem;
      border-bottom: 1px solid getColor(border-light);
    }
  }
  .shop_table {
    width: 100%;
    th {
      font-size: .8125rem;
      font-weight: 600;
    }
    td {
      text-align: right;
    }
    .amount {
      font-size: .9375rem;
    }
    .cart-subtotal {
      th, td {
        padding-top: .4375rem;
        padding-bottom: .625rem;
        border-bottom: 1px solid getColor(border-light);
      }
    }
    .order-total {
      th, td {
        padding-top: 1.25rem;
        padding-bottom: .625rem;
        strong {
          font-weight: 600;
        }
      }
      .amount {
        font-size: 1.25rem;
      }
    }
  }
}

.wc-proceed-to-checkout {
  padding-top: .9375rem;
  border-top: 1px solid getColor(border-light);
}

#customer_details {
  border: 1px solid getColor(border-light);
  border-radius: getSize(border-radius);
  padding: .9375rem;
  @include min-break(1024) {
    padding: 1.875rem;
  }
  .col-1, .col-2 {
    flex: 0 0 100%;
    max-width: 100%;
  }
  h3 {
    font-family: getFont(secondary);
    font-size: 1rem;
    font-weight: 600;
    text-transform: uppercase;
    padding-bottom: .75rem;
    margin-bottom: .75rem;
    border-bottom: 1px solid getColor(border-light);
  }
  .woocommerce-billing-fields__field-wrapper, .woocommerce-additional-fields__field-wrapper {
    display: flex;
    flex-flow: row wrap;
    margin-left: -10px;
    margin-right: -10px;
    .form-row {
      display: flex;
      flex-direction: column;
      flex: 0 0 100%;
      max-width: 100%;
      padding-left: 10px;
      padding-right: 10px;
      margin-left: 0;
      margin-right: 0;
      label {
        font-size: .8125rem;
      }
      .woocommerce-input-wrapper {
        & > input {
          height: 2.875rem;
        }
        & > textarea {
          min-height: 120px;
          resize: none;
        }
      }
      &#billing_first_name_field, &#billing_last_name_field, &#billing_phone_field, &#billing_email_field {
        @include min-break(768) {
          flex: 0 0 50%;
          max-width: 50%;
        }
      }
    }
  }
  .woocommerce-additional-fields {
    margin-top: 1.875rem;
  }
}

.order-review-wrapper {
  border: 2px solid getColor(primary);
  border-radius: getSize(border-radius);
  padding: .9375rem;
  height: fit-content;
  @include min-break(1024) {
    padding: 1.875rem;
  }
  @include max-break(768) {
    margin-top: 1.25rem;
  }
  h3 {
    font-family: getFont(secondary);
    font-size: 1rem;
    font-weight: 600;
    text-transform: uppercase;
    padding-bottom: .75rem;
    margin-bottom: .75rem;
    border-bottom: 1px solid getColor(border-light);
  }
  .shop_table {
    width: 100%;
    font-size: .8125rem;
    .amount {
      font-size: .9375rem;
    }
    th {
      font-weight: 600;
    }
    thead {
      th {
        color: getColor(info);
        padding-bottom: .75rem;
        border-bottom: 1px solid getColor(border-light);
        &:last-child {
          text-align: right;
        }
      }
    }
    tbody {
      td {
        padding-top: .75rem;
        padding-bottom: .75rem;
        &.product-name {
          font-size: .8125rem;
          padding-right: 1.25rem;
        }
        &:last-child {
          text-align: right;
        }
      }
    }
    tfoot {
      tr {
        th {
          padding-top: .75rem;
          padding-bottom: .75rem;
          color: getColor(text-lighter);
          border-top: 1px solid getColor(border-light);
        }
        td {
          padding-top: .75rem;
          padding-bottom: .75rem;
          text-align: right;
          border-top: 1px solid getColor(border-light);
        }
        &.order-total {
          .amount {
            font-size: 1.25rem;
            font-weight: 600;
          }
        }
      }
    }
  }
  .woocommerce-checkout-payment {
    padding-top: .9375rem;
    border-top: 1px solid getColor(border-light);
    ul.payment_methods {
      margin: 0;
      padding: 0;
      list-style: none;
      label {
        font-size: .875rem;
        font-weight: 600;
        margin-left: 1.25rem;
        color: getColor(primary);
      }
      .payment_box {
        p {
          font-size: .75rem;
          line-height: 1.6;
          color: getColor(text-lighter);
        }
      }
    }
    .woocommerce-privacy-policy-text {
      margin-top: .9375rem;
      p {
        font-size: .8125rem;
        line-height: 1.6;
        a {
          color: getColor(danger);
          font-weight: 500;
          text-decoration: underline;
        }
      }
    }
    .validate-required {
      margin-left: 0;
      margin-right: 0;
      .woocommerce-form__label {
        display: inline-flex;
        font-size: .75rem;
        input {
          position: relative;
          top: 1px;
        }
        span {
          position: relative;
          line-height: 1.5;
          padding-left: .625rem;
          a {
            font-weight: 500;
            color: getColor(danger);
            text-decoration: underline;
          }
        }
      }
    }
  }
}

.cart-empty-page {
  text-align: center;
  max-width: 760px;
  margin-top: 40px;
  margin-bottom: 40px;
  margin-left: auto;
  margin-right: auto;
  .empty-icon {
    display: inline-flex;
    align-items: flex-end;
    justify-content: center;
    width: 10rem;
    height: 10rem;
    margin-bottom: 1.875rem;
    svg {
      width: 5rem;
    }
  }
  .cart-empty {
    font-family: getFont(secondary);
    font-size: 1.125rem;
    font-weight: 700;
    text-transform: uppercase;
    color: getColor(danger);
    margin-bottom: 1.25rem;
  }
  .button {
    padding-left: 2.25rem;
    padding-right: 2.25rem;
    margin-top: 1.875rem;
  }
}

// My Account
.my-account-wrapper {
  .my-account-navigation {
    margin-bottom: 2.5rem;
  }
  .account-toggle-menu {
    display: inline-flex;
    align-items: center;
    font-size: .875rem;
    font-weight: 500;
    width: 100%;
    padding: .9375rem;
    border: 1px solid getColor(border);
    border-radius: getSize(border-radius);
    background-color: getColor(info-light);
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    svg {
      margin-right: 1.25rem;
    }
    @include min-break(1024) {
      display: none;
    }
  }
  .my-account-navigation {
    @include max-break(1024) {
      &.dropdown {
        .woocommerce-MyAccount-navigation {
          display: block;
        }
      }
    }
  }
  .woocommerce-MyAccount-navigation {
    display: none;
    @include min-break(1024) {
      display: block;
    }
    ul {
      position: relative;
      margin: 0;
      padding: 0;
      list-style: none;
      border: 1px solid getColor(border);
      border-top: 0;
      overflow: hidden;
      @include min-break(1024) {
        border: 0;
        border-bottom: 1px solid getColor(border);
      }
      li {
        display: flex;
        align-items: center;
        width: 100%;
        @include min-break(1024) {
          display: inline-flex;
          align-items: center;
          width: auto;
          margin-right: 1.875rem;
        }
        & + li {
          border-top: 1px solid getColor(border);
          @include min-break(1024) {
            border: 0;
          }
        }
        &.is-active {
          a {
            color: #fff;
            background-color: getColor(primary);
            @include min-break(1024) {
              color: getColor(text);
              background-color: transparent;
              &::before {
                opacity: 1;
              }
            }
          }
        }
        a {
          position: relative;
          display: flex;
          align-items: center;
          font-family: getFont(secondary);
          font-size: 1rem;
          font-weight: 600;
          text-transform: uppercase;
          width: 100%;
          font-size: .875rem;
          padding: .9375rem 1.25rem;
          color: getColor(text);
          text-decoration: none;
          @include min-break(1024) {
            font-size: 1.0625rem;
            width: auto;
            padding-left: 0;
            padding-right: 0;
            color: getColor(info);
            &::before {
              content: '';
              position: absolute;
              width: 100%;
              height: 2px;
              bottom: 0;
              background-color: getColor(secondary);
              opacity: 0;
            }
          }
        }
      }
    }
  }
  .woocommerce-MyAccount-content {
    p {
      a {
        font-weight: 500;
        color: getColor(secondary);
        text-decoration: underline;
      }
    }
  }
}

// Site Login
.site-login {
  margin-top: 2.5rem;
  @include min-break(1024) {
    margin-top: 5.5rem;
  }
  .site-login-container {
    display: block;
    max-width: 560px;
    padding: 0 .9375rem;
    margin-left: auto;
    margin-right: auto;
  }
  .site-login-overflow {
    position: relative;
    overflow: hidden;
    @include min-break(1024) {
      border: 1px solid getColor(border);
      border-radius: getSize(border-radius);
      padding: 60px;
    }
  }
  .login-page-tab {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-flow: row wrap;
    margin: 0 0 1.75rem;
    padding: 0;
    list-style: none;
    li {
      & + li {
        margin-left: 1.25rem;
        @include min-break(1024) {
          margin-left: 2.5rem;
        }
      }
      a {
        font-family: getFont(secondary);
        font-size: 1.065rem;
        font-weight: 600;
        text-transform: uppercase;
        color: getColor(text);
        text-decoration: none;
        &:not(.active) {
          color: getColor(info);
        }
      }
    }
  }
  .login-form-container {
    display: flex;
    width: 200%;
    transform: translateX(0);
    transition: all .4s $bezier-third;
    & > * {
      padding: 0 1px;
      width: 100%;
      will-change: opacity;
      margin-top: .9375rem;
      transition: all .4s $bezier-third;
      &.register-form {
        opacity: 0;
      }
      & > p {
        text-align: center;
        margin-bottom: 1.875rem;
        max-width: 21.25rem;
        margin-left: auto;
        margin-right: auto;
        color: getColor(info-dark);
      }
      form {
        .form-row {
          flex-direction: column;
          align-items: flex-start;
          margin-left: 0;
          margin-right: 0;
          label {
            font-size: .8125rem;
          }
          .password-input {
            width: 100%;
          }
          .woocommerce-Input {
            height: 2.875rem;
          }
        }
      }
    }
    .lost-password {
      display: flex;
      align-items: center;
      justify-content: space-between;
      .woocommerce-form-login__rememberme {
        .woocommerce-form__input {
          position: relative;
          top: 1px;
          margin-right: 6px;
        }
      }
      .woocommerce-LostPassword {
        font-size: .8125rem;
        font-weight: 500;
      }
    }
    .woocommerce-button {
      font-size: .8125rem;
      width: 100%;
      height: 2.875rem;
      justify-content: center;
    }
    .woocommerce-privacy-policy-text {
      p {
        font-size: .75rem;
        a {
          color: getColor(danger);
          text-decoration: underline;
        }
      }
    }
    &.show-register-form {
      transform: translateX(-50%);
      .login-form {
        opacity: 0;
      }
      .register-form {
        opacity: 1;
      }
    }
  }
}