$component: 'widget';
$template: 'products-1';

@mixin transition($time, $property) {
  -webkit-transition: $property $time;
  -moz-transition: $property $time;
  -ms-transition: $property $time;
  -o-transition: $property $time;
  transition: $property $time;
}
@mixin border-radius($radius) {
  -webkit-border-radius: $radius;
  -moz-border-radius: $radius;
  border-radius: $radius;
}
@mixin box-sizing($sizing) {
  -webkit-box-sizing: $sizing;
  -moz-box-sizing: $sizing;
  box-sizing: $sizing;
}
@mixin user-select($select) {
  -webkit-user-select: $select;
  -moz-user-select: $select;
  -ms-user-select: $select;
  user-select: $select;
}
@mixin transition-property($property) {
  -webkit-transition-property: $property;
  -moz-transition-property: $property;
  -ms-transition-property: $property;
  -o-transition-property: $property;
  transition-property: $property;
}
@mixin transition-duration($time) {
  -webkit-transition-duration: $time;
  -moz-transition-duration: $time;
  -ms-transition-duration: $time;
  -o-transition-duration: $time;
  transition-duration: $time;
}
@mixin translateY($Y) {
  -webkit-transform: translateY($Y);
  -moz-transform: translateY($Y);
  -ms-transform: translateY($Y);
  -o-transform: translateY($Y);
  transform: translateY($Y);
}
@mixin webkit-box ($lines, $line-height) {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: $lines;
  overflow: hidden;
  max-height: #{$lines * $line-height}px;
}

.widget.c-#{$component}.c-#{$component}-#{$template} {
  position: relative;
  display: block;
  z-index: 1;
  overflow: hidden;

  .widget-wrapper {}
  .widget-wrapper-2 {}

  .widget-content {
    position: relative;
  }
  .widget-footer {
    &[data-type='tabs'] {
      position: absolute;
      top: 0;
      right: 0;
      padding: 12px 0;

      .widget-footer-button {
        display: block;
        max-width: 140px;
        font-size: 12px;
        font-weight: 500;
        line-height: 1;
        color: #808080;
        text-transform: uppercase;
        text-decoration: none;
        word-break: break-all;
        text-overflow: ellipsis;
        letter-spacing: 0.1em;

        @include webkit-box(2, 12);
      }
    }
    &[data-type='default'] {
      .widget-footer-button {
        color: #2d2d2d !important;

        &:hover,
        &:active {
          color: #FFF !important;
        }
      }
    }
  }

  .widget-tabs {
    margin-left: -15px;
    margin-right: -15px;

    &.widget-tabs-margin-left,
    &.widget-tabs-margin-right {
      margin-right: 140px;
    }
    &.widget-tabs-margin-center {
      margin-right: 140px;
      margin-left: 140px;
    }
  }
  .widget-tab {}
  .widget-tab-text {}

  .widget-items {
    z-index: 0;
  }

  .widget-item {
    position: relative;
    z-index: 0;
  }

  .widget-item-wrapper {
    position: relative;
    padding: 25px;
  }

  .widget-item-wrapper {
    &:hover {
      .widget-item-action-container-wrap {
        display: block;
      }
    }
  }

  .widget-item-advanced {
    display: block;
    position: relative;
  }
  .widget-item-name {
    font-size: 16px;
    line-height: 1.25;
    margin-bottom: 10px;
    word-break: break-word;
    height: 40px;
    overflow: hidden;
    @extend %align;

    div, a {
      display: inline;
      text-decoration: none;
      color: #363532;
      cursor: pointer;
      @include transition(0.4s, color);
    }
  }
  .widget-item-section {
    font-size: 13px;
    line-height: 1.39;
    height: 20px;
    margin-bottom: 12px;
    word-break: break-all;
    @extend %align;

    @include webkit-box(1, 18);

    a {
      text-decoration: none;
      color: #888b92;
    }
  }
  .widget-item-vote {
    margin-top: 15px;
    margin-bottom: 15px;
    @extend %align;

    & .ns-bitrix.c-iblock-vote.c-iblock-vote-template-1 .iblock-vote-rating-item {
      font-size: 13px;
      padding: 0 3px;
    }
  }
  .widget-item-quantity-wrap {
    margin-top: 15px;
  }
  .widget-item-quantity {
    margin-bottom: 10px;
    font-size: 12px;
    font-style: normal;
    font-weight: normal;
    line-height: 1.5;
    color: #777;
    text-align: left;
    white-space: normal;
    @extend %align;
    display: none;

    &[data-offer='false'] {
      display: block;
    }
  }
  .widget-item-quantity-icon {
    margin-right: 5px;
  }
  .widget-item-quantity-check {
    color: #14cc8d;
  }
  .widget-item-quantity-times {
    color: #fa9696;
  }
  .widget-item-image-container {
    position: relative;
    margin-bottom: 20px;
  }
  .widget-item-marks {
    position: absolute;
    top: 0px;
    left: 0px;
    right: 20px;
    pointer-events: none;
    z-index: 2;
  }
  .widget-item-image {
    position: relative;
    display: none;
    font-size: 0;
    text-align: center;
    white-space: nowrap;
    padding-top: 250px;
    margin-bottom: 30px;
    z-index: 1;

    &[data-offer='false'] {
      display: block;
    }
    &-wrapper {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      font-size: 0;
      text-align: center;
      white-space: nowrap;

      .owl-stage-outer,
      .owl-stage,
      .owl-item {
        height: 100%;
      }
    }
    &-element {
      display: block;
      font-size: 0;
      height: 100%;
      white-space: nowrap;
      cursor: pointer;

      &::after {
        content: '';
        display: inline-block;
        vertical-align: middle;
        width: 0;
        height: 100%;
        overflow: hidden;
      }
    }
    img {
      display: inline-block;
      max-width: 100%;
      max-height: 100%;
      width: auto;
      vertical-align: middle;
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
      -moz-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
      -o-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
    }
    &-buttons {
      position: absolute;
      top: 0;
      right: 0;
      margin-bottom: -5px;
      min-height: 5px;
      z-index: 2;
      display: none;

      &[data-offer='false'] {
        display: block;
      }
    }
    &-button {
      font-size: 16px;
      line-height: 0;
      text-align: center;
      color: #bfc0c0;
      width: 20px;
      margin-bottom: 15px;
      opacity: 0;
      cursor: pointer;
      @include transition(0.4s, null);

      &-delay {
        display: block;

        &[data-basket-state='delayed'] {
          display: none;
        }
      }
      &-delayed {
        display: none;

        &[data-basket-state='delayed'] {
          display: block;
          opacity: 1;
        }
      }
      &-compare {
        display: block;

        &[data-compare-state='added'] {
          display: none;
        }
      }
      &-compared {
        display: none;

        &[data-compare-state='added'] {
          display: block;
          opacity: 1;
        }
      }
    }
    .owl-nav {
      position: absolute;
      left: 0;
      right: 0;
      top: 50%;
      margin-top: -12px;
      opacity: 0;
      @include transition(0.4s, opacity);

      > button {
        position: absolute;
        width: 25px;
        height: 25px;
        font-size: 14px;
        line-height: 25px;
        text-align: center;
        color: #ababab;
        outline: none;
        @include transition(0.4s, color);

        &:hover {
          color: #000;
        }
      }
      .disabled {
        color: #ebebeb!important;
      }
    }
    .owl-prev {
      left: -25px;
    }
    .owl-next {
      right: -25px;
    }
  }
  .widget-item-action-container-wrap {
    display: none;
    position: absolute;
    top: 0;
    right: 20px;
    bottom: 0;
    left: 20px;
    height: 100%;
    visibility: hidden;
    font-size: 0;
    text-align: center;
    z-index: 3;

    &::after {
      content: '';
      display: inline-block;
      vertical-align: middle;
      width: 0;
      height: 100%;
      overflow: hidden;
    }

    @media all and (max-width: 768px) {
      display: none !important;
    }
  }
  .widget-item-action-container {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    -moz-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    -o-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    width: 100%;
  }

  .widget-item-quick-view {
    margin: 10px 0;
  }
  .widget-item-quick-view-button {
    display: inline-block;
    vertical-align: middle;
    visibility: visible;
    line-height: 1;
    padding: 7px 20px;
    font-size: 0;
    background: #fff;
    border: 1px solid #ccc;
    border-radius: 21px;
    color: #848790;
    opacity: 0.9;
    cursor: pointer;
    width: 100%;
  }
  .widget-item-quick-view-button-icon,
  .widget-item-quick-view-button-text {
    display: inline-block;
    vertical-align: middle;
    font-size: 12px;
  }
  .widget-item-quick-view-button-text {
    line-height: 1.5;
    margin-left: 10px;
  }
  .widget-item-price {

    &-discount {
      font-size: 18px;
      font-weight: 600;
      line-height: 1;
      color: #363532;
      word-break: break-all;
    }
    &-base {
      color: #888888;
      font-size: 12px;
      line-height: 1.2;
      text-decoration: line-through;
      word-break: break-all;
      visibility: hidden;
      display: none;
    }
    &[data-discount='true'] {
      .widget-item-price-base {
        display: block;
        visibility: visible;
      }
    }
    &[data-discount='false'] {
      .widget-item-price-percent-container {
        display: none;
      }
    }
    @extend %align;
  }
  .widget-item-price-limited-width {
    max-width: 100%;
  }
  .widget-item-price-percent-container {
    font-size: 0;
    margin-top: 8px;
  }

  .widget-item-price-percent {
    display: inline-block;
    border: 1px solid #F4BB28;

    @include border-radius(2px);

    & > div {
      display: inline-block;
      vertical-align: middle;
    }
  }

  .widget-item-price-percent-part {
    display: inline-block;
    vertical-align: middle;
  }

  .widget-item-price-percent-value,
  .widget-item-price-percent-difference {
    font-size: 11px;
    font-weight: 600;
    line-height: 12px;
    color: #404040;
  }

  .widget-item-price-percent-value {
    padding: 3px 4px;
    background-color: #F4BB28;
  }

  .widget-item-price-percent-difference {
    padding-left: 4px;
    padding-right: 4px;
  }

  .widget-item-price-percent-decoration {
    padding-right: 6px;

    svg {
      display: inline-block;
      width: auto;
      height: auto;
      max-width: 10px;
      max-height: 10px;

      path {
        stroke: #404040;
      }
    }
  }
  .widget-item-offers-properties {
    min-height: 15px;
  }
  .widget-item-offers-property {
    display: block;
    margin-top: 15px;

    &-title {
      display: block;
      font-size: 12px;
      font-style: normal;
      font-weight: normal;
      line-height: 1.5;
      @extend %align;
    }
    &-values {
      display: block;
      font-size: 0;
      margin: 4px -3px -3px -3px;
      @extend %align;
    }
    &-value {
      display: inline-block;
      vertical-align: top;
      position: relative;
      margin: 3px;
      border: 1px solid #e8e8e8;
      border-radius: 14px;
      cursor: pointer;
      background: #fff;
      color: #222222;
      overflow: hidden;
      @include user-select(none);
      @include transition-property(#{color, border-color, background-color, opacity, transform});
      @include transition-duration(#{0.4s, 0.4s, 0.4s, 0.4s, 0.2s});

      &:active {
        @include translateY(3px);
      }
      &[data-state="hidden"] {
        display: none;
      }
      &[data-state="enabled"] {}
      &[data-state="disabled"] {
        opacity: 0.5;
        border-color: #e8e8e8 !important;

        &:active {
          @include translateY(0);
        }
      }
      &[data-state="selected"] {
        background: #e8e8e8;
      }
    }
    &-value-text {
      display: block;
      padding: 4px 9px;
      color: inherit;
      font-size: 12px;
      font-style: normal;
      font-weight: normal;
      line-height: 1.5;
      min-width: 24px;
      text-align: center;
      -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
      box-sizing: border-box;
    }
    &-value-image {
      font-size: 0;
      text-align: center;
      height: 24px;
      width: 24px;
      background-size: cover;
      border-radius: 50%;
      overflow: hidden;

      &::after {
        content: '';
        display: inline-block;
        vertical-align: middle;
        width: 0;
        height: 0;
        overflow: hidden;
      }

      i {
        display: inline-block;
        vertical-align: middle;
        font-size: 12px;
        line-height: 0;
        color: #FFF;
        opacity: 0;
        text-shadow: 0 0 2px rgba(0, 0, 0, 0.3);
        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%, -50%);
        -moz-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
        -o-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
        @include transition(0.4s, opacity);
      }
    }
    &[data-type="picture"] {
      .widget-item-offers-property-value {
        border-radius: 17px;
      }
      [data-state='selected'] {
        i {
          opacity: 1;
        }
      }
    }
    &[data-visible="false"] {
      display: none !important;
    }
  }
  .widget-item-section-timer {
    margin-top: 10px;
  }
  .widget-item-purchase {
    &-container {
      margin: 16px 0 10px 0;
    }
    &-order {
      visibility: visible;
    }
    &-detail {
      visibility: visible;
    }
    &-buttons {
      visibility: visible;
      display: none;

      &[data-offer='false'] {
        display: block;
      }
    }
    &-button {
      display: block;
      font-size: 14px;
      line-height: 1;
      color: #FFF;
      text-align: center;
      text-decoration: none;
      padding-top: 10px;
      padding-bottom: 10px;
      cursor: pointer;
      @include transition(0.4s, background-color);
      @include border-radius(25px);

      &-add {
        display: block;

        &[data-basket-state='added'] {
          display: none;
        }
      }

      &-added {
        display: none;

        &[data-basket-state='added'] {
          display: block;
        }
      }
    }
  }

  .widget-item-purchase-mobile {
    display: none;

    .intec-ui-part-effect-wrapper {
      position: absolute;
      top: 0;
      left: 0;
    }

    .widget-item-purchase-button {
      border: 1px solid;
      -webkit-border-radius: 0;
      -moz-border-radius: 0;
      border-radius: 0;
      font-size: 10px!important;
      font-weight: 500;
      letter-spacing: 0.1em;
      text-transform: uppercase;
    }
  }

  .widget-item-purchase-adaptive {
    display: none;
  }
  .widget-item-substrate {
    display: block;
    position: absolute;
    background: #fff;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    border-radius: 5px;
    @include transition-property(#{top, right, bottom, left, box-shadow});
    @include transition-duration(350ms);
  }
  .widget-item {
    position: relative;
    z-index: 1;
    margin: 20px 0 30px;
    padding: 0 6px;

    &-wrapper {
      height: 100%;
      background-color: #FFF;

    }
    &-base {
      position: relative;
    }
    &[data-expanded='true'] {
      .widget-item-substrate {
        top: -10px;
        right: -10px;
        bottom: -10px;
        left: -10px;
        -webkit-box-shadow: 0 4px 16px 0 rgba(0, 0, 0, 0.2);
        -moz-box-shadow: 0 4px 16px 0 rgba(0, 0, 0, 0.2);
        box-shadow: 0 4px 16px 0 rgba(0, 0, 0, 0.2);
      }
      .widget-item-image {
        .owl-nav {
          opacity: 1;
        }
      }
      .widget-item-image-button {
        opacity: 1;
      }
    }
    &:hover {
      z-index: 2;

      [data-borders-style='rounded'] {
        @include border-radius(10px);
      }
      [data-borders-style='squared'] {
        @include border-radius(0);
      }
    }
  }
  &[data-columns-desktop="4"] {
    .widget-item-purchase-button {
      padding-top: 11px;
      padding-bottom: 11px;
    }
    .widget-item-purchase-button,
    .widget-item-quick-view-button-icon,
    .widget-item-quick-view-button-text {
      font-size: 12px;
    }
  }

  %align {
    &[data-align='left'] {
      text-align: left;
    }
    &[data-align='center'] {
      text-align: center;
    }
    &[data-align='right'] {
      text-align: right;
    }
  }

  .widget-header {
    overflow: hidden;
  }
  .widget-all-container {
    display: none;
  }
  .widget-all-button {
    font-size: 14px;
    font-weight: 500;
    line-height: 1;
    color: #808080;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.1em;

    i {
      display: none;
      font-size: 18px;
    }
  }
  @media all and (max-width: 720px) {
    .widget-item-image {
      .owl-nav {
        opacity: 1;
      }
    }
    .widget-item-image-button {
      opacity: 1;
    }
    .widget-item-advanced {
      display: block;
    }
  }

  .widget-more {
    display: block;
    font-size: 0;
    font-style: normal;
    font-weight: normal;
    text-align: center;
    line-height: 1px;
    margin-top: 30px;

    + .widget-navigation {
      margin-top: 20px;
    }
  }
  .widget-more-button {
    display: inline-block;
    vertical-align: top;
    cursor: pointer;
  }
  .widget-more-icon,
  .widget-more-text {
    display: inline-block;
    vertical-align: middle;
  }
  .widget-more-icon {
    font-size: 16px;
    color: #fff;
    padding: 7px;
    border-radius: 50%;
    background: #0065ff;
    text-align: center;
    height: 16px;
    width: 16px;

    -webkit-box-sizing: content-box;
    -moz-box-sizing: content-box;
    box-sizing: content-box;

    -webkit-transition: transform 350ms;
    -moz-transition: transform 350ms;
    -ms-transition: transform 350ms;
    -o-transition: transform 350ms;
    transition: transform 350ms;
  }
  .widget-more-text {
    font-size: 16px;
    font-weight: bold;
    line-height: 1.5;
    margin-left: 10px;
  }
  .widget-more-button:hover {
    .widget-more-icon {
      -webkit-transform: rotate(180deg);
      -moz-transform: rotate(180deg);
      -ms-transform: rotate(180deg);
      -o-transform: rotate(180deg);
      transform: rotate(180deg);
    }
  }

  .widget-items {
    .owl-item {
      z-index: 1;

      &:hover {
        z-index: 2;
      }
    }

    & > .owl-stage-outer {
      overflow: visible;

      & > .owl-stage {
        & > .owl-item {
          opacity: 0;
          @include transition(0.4s, opacity);
        }
        & > .owl-item.active {
          opacity: 1;
        }
      }
    }

    & > .owl-nav {
      display: block;
      position: absolute;
      visibility: hidden;
      top: 20px;
      right: -20px;
      bottom: 30px;
      left: -20px;

      .owl-prev,
      .owl-next {
        display: block;
        position: absolute;
        visibility: visible;
        width: 40px;
        height: 40px;
        top: 50%;
        font-size: 9px;
        line-height: 1;
        background: #fff;
        text-align: center;
        color: #808080;
        border: 1px solid #E8E8E8;
        @include border-radius(2px);
        @include transition(all, 0.35s);
        transform: translateY(-50%);
        cursor: pointer;
        outline: none;

        svg {
          display: inline-block;
          vertical-align: middle;
          max-width: 100%;
          max-height: 100%;
          width: auto;
          height: auto;

          path {
            stroke: #808080;

            transition: all 0.4s;
          }
        }

        &:hover {
          svg {
            path {
              stroke: #FFF;
            }
          }
        }
      }

      &.disabled {
        display: none;
      }

      .owl-prev.disabled,
      .owl-next.disabled {
        opacity: 0.5;
        cursor: not-allowed;
        background-color: #FFF !important;
        border-color: #F2F2F2 !important;

        @include user-select(none);

        &:hover {
          svg {
            path {
              stroke: #808080;
            }
          }
        }
      }

      .owl-prev {
        left: 0;
      }

      .owl-next {
        right: 0;
      }
    }

    .owl-dots {
      display: block;
      font-size: 0;
      text-align: center;

      &.disabled {
        display: none;
      }
    }

    .owl-dot {
      display: inline-block;
      vertical-align: middle;
      width: 10px;
      height: 10px;
      border: 2px solid #bcbcbc;
      border-radius: 50%;
      cursor: pointer;
      margin: 10px;
      outline: none;

      -webkit-transition-duration: 350ms;
      -moz-transition-duration: 350ms;
      -ms-transition-duration: 350ms;
      -o-transition-duration: 350ms;
      transition-duration: 350ms;

      -webkit-transition-property: background-color, border-color;
      -moz-transition-property: background-color, border-color;
      -ms-transition-property: background-color, border-color;
      -o-transition-property: background-color, border-color;
      transition-property: background-color, border-color;
    }
  }

  .widget-item-purchase-detail.mobile {
    display: none;
  }

  .widget-navigation-counter {
    display: none;
    text-align: center;

    &.disabled {
      display: none;
    }
  }

  @media all and (max-width: 768px) {
    .widget-item {
      margin-bottom: 24px;
    }
    .widget-footer {
      &[data-type='tabs'] {
        display: none;
      }
    }
    .widget-item-purchase-adaptive {
      display: block;
    }
    .widget-all-container {
      display: block;
    }
    .widget-title.align-center.widget-title-margin {
      margin-left: 25px;
    }
    .widget-all-container.mobile {
      text-align: right;
      width: 25px;
      max-height: 36px;
    }
    .widget-all-container i {
      display: inline-block;
    }
    .widget-footer.mobile,
    .widget-footer-button.mobile{
      display: none;
    }
    .widget-all-container {
      width: 25px;
    }

    .widget-tabs {

      &.widget-tabs-margin-left,
      &.widget-tabs-margin-right {
        margin-right: -10px;
      }
      &.widget-tabs-margin-center {
        margin-right: -10px;
        margin-left: -10px;
      }
    }
    .widget-tabs-content[data-navigation="true"] {
      .intec-ui-part-tab {
        padding-left: 0;
        padding-right: 0;
      }
    }
    .widget-navigation-counter {
      display: block;
      max-height: 40px;
      padding: 10px 0;
      font-size: 13px;
      line-height: 24px;
      color: #808080;


      [data-role="navigation.counter"] {
        font-size: 15px;
        color: #404040;
      }
    }
    .widget-items {
      & > .owl-nav {
        display: block;
        position: absolute;
        visibility: hidden;
        top: auto;
        right: 0;
        bottom: -36px;
        left: 0;
        margin: 0 auto;

        .owl-prev,
        .owl-next {
          position: absolute;
          width: 32px;
          height: 32px;
          top: auto;
          bottom: 0;
          transform: translateY(0);
        }
      }
    }

  }
  @media all and (max-width: 720px) {
    .widget-tabs {
      margin-right: -10px;
      margin-left: -10px;
    }
  }
  @media all and (max-width: 600px) {
    .widget-item-purchase-adaptive {
      display: none;
    }
    .widget-item-purchase-mobile {
      display: block;
    }
  }
  @media all and (max-width: 500px) {
    .widget-item-purchase-mobile{
      .widget-item-purchase-buttons:not([data-offer="false"]) {
        display: none!important;
      }
    }
    .widget-item-purchase-buttons:not([data-offer="false"]) + .widget-item-purchase-detail.mobile {
      display: block;
    }
    .widget-header + .widget-content {
      margin-top: 16px;
    }
    &[data-columns-mobile="2"] {
      .owl-carousel {
        .widget-item {
          margin-bottom: 24px;
        }
      }

      .widget-item {
        margin: 1px 0 1px;
        padding: 0 1px;

        &[data-expanded=true] .widget-item-wrapper {
          padding: 25px;
        }
      }

      .widget-item-price {
        overflow: hidden;
      }

      .widget-item-image {
        padding-top: 100%;
        margin-bottom: 10px;
      }

      .widget-item-substrate,
      .widget-item-vote,
      .widget-item-quantity-wrap,
      .widget-item-marks,
      .widget-item-advanced .widget-item-offers-properties,
      .widget-item-section {
        display: none;
      }

      .widget-item-name {
        font-size: 14px;
        line-height: 1.29;
      }

      .widget-item-price-discount {
        font-size: 14px;
      }
      .widget-item-price-base {
        font-size: 11px;
      }
    }
  }
}