.bp-element-product-banner {

  &.layout-1,
  &.layout-2 {
    .group-banner {
      margin: 0 -15px;
      .item {
        position: relative;
        float: left;
        padding: 0 15px;

        .content {
          position: relative;
          overflow: hidden;

          a.link-overlay {
            position: absolute;
            content: "";
            top: 0;
            right: 0;
            left: 0;
            bottom: 0;
            z-index: 3;
            opacity: 0;
            background-color: rgba(0,0,0,.5);
            -webkit-transition: opacity .3s ease;
            -moz-transition: opacity .3s ease;
            transition: opacity .3s ease;
          }
          &:hover {
            .link-overlay {
             opacity: 1;
            }

            .title {
              opacity: 1;
              -webkit-transform: translate(-50%,-50%);
              -moz-transform: translate(-50%,-50%);
              transform: translate(-50%,-50%);
              -webkit-transition: all .3s cubic-bezier(.23,1,.32,1) .1s;
              -moz-transition: all .3s cubic-bezier(.23,1,.32,1) .1s;
              transition: all .3s cubic-bezier(.23,1,.32,1) .1s;
            }
          }
        }

        img {
          width: 100%;
          height: 100%;
          object-fit: cover;
          transition: all 1s;
        }

        .title {
          opacity: 0;
          margin: 0;
          position: absolute;
          top: 50%;
          left: 50%;
          z-index: 5;
          font-family: "Kaushan Script";
          font-size: 60px;
          font-weight: normal;
          font-style: normal;
          line-height: 1.17;
          letter-spacing: 1.2px;
          text-align: center;
          -webkit-transform: translate(-50%,50%);
          -moz-transform: translate(-50%,50%);
          transform: translate(-50%,50%);
          -webkit-transition: -webkit-transform 0s .3s,opacity .3s;
          transition: transform 0s .3s,opacity .3s;
          a {
            color: #fff;
          }
        }

        .flag {
          text-align: center;
          position: absolute;
          top: 0;
          left: 30px;
          width: 91px;
          z-index: 2;
          display: inline-block;
          color: #fff;
          * {
            display: block;
          }

          .flag-content {
            position: relative;
            padding: 16px 24px;
            background-color: rgba(214,22,28,0.80);
            &:after {
              background: linear-gradient(-45deg, rgba(214,22,28,0.80) 15px, transparent 0), linear-gradient(45deg, rgba(214,22,28,0.80) 15px, transparent 0);
              background-position: initial;
              background-repeat: repeat-x;
              background-size: 30px 30px;
              content: " ";
              display: block;
              position: absolute;
              bottom: -25px;
              left: 0;
              width: auto;
              height: 25px;
              right: 0;
              -moz-transform: rotate(180deg);
              -webkit-transform: rotate(180deg);
              -ms-transform: rotate(180deg);
              transform: rotate(180deg);
            }

          }
          .text {
            font-size: 20px;
            font-weight: 300;
            line-height: normal;
            letter-spacing: 0.4px;
            color: #cccccc;
          }
          .sale-price {
            font-size: 20px;
            font-weight: 300;
            line-height: normal;
            letter-spacing: 0.4px;
            color: #cccccc;
            text-decoration: line-through #999;
          }
          .price {
            font-size: 25.5px;
            font-weight: 600;
            letter-spacing: 0.5px;
            color: #ffffff;
          }
        }
      }
      .rank-1 {
        width: 50%;
        .title a {
          font-size: 80px;
        }
        .flag {
          top: 0;
          left: auto;
          right: 30px;
          width: 181px;
          .flag-content {
            padding: 35px 30px;
          }
          .text {
            font-size: 30px;
            font-weight: normal;
            line-height: 1;
            letter-spacing: normal;
          }
          .sale-price {
            padding-top: 8px;
            font-size: 25.5px;
            font-weight: 300;
            letter-spacing: 0.5px;
            color: #cccccc;
            line-height: normal;
            text-decoration: line-through #999;
          }
          .price {
            padding-top: 3px;
            font-size: 35.5px;
            font-weight: 600;
            font-style: normal;
            letter-spacing: 0.7px;
            line-height: normal;
          }
        }
      }
      .rank-2 {
        width: 50%;
        padding-bottom: 30px;
        .title a {
          font-size: 70px;
        }

        .flag {
          top: 0;
          left: auto;
          right: 30px;
          width: 119px;
          .flag-content {
            padding: 22px 30px;
            &:after {
              bottom: -24px;
              height: 24px;
              background-size: 24px 33px;
            }
          }
          .text {
            font-size: 25px;
            font-weight: 300;
            line-height: normal;
            color: #cccccc;
          }
          .sale-price {
            padding-top: 8px;
            font-size: 25.5px;
            font-weight: 300;
            color: #cccccc;
            line-height: normal;
            text-decoration: line-through #999;
          }
          .price {
            font-size: 30px;
            font-weight: 600;
            letter-spacing: 0.6px;
            color: #ffffff;
          }
        }
      }
      .rank-3 {
        width: 25%;
        .flag-content {
          &:after {
            background-size: 15px 38px !important;
          }
        }
      }
      .rank-4 {
        width: 25%;
        .flag-content {
          &:after {
            background-size: 15px 38px !important;
          }
        }
      }
    }
  }

  &.layout-3 {
    .group-banner {
      margin: 0 -5px;
      .item {
        width: 50%;
        float: left;
        padding: 5px;
      }
      .content {
        position: relative;
        overflow: hidden;
        a.link-overlay {
          position: absolute;
          content: "";
          top: 0;
          right: 0;
          left: 0;
          bottom: 0;
          z-index: 3;
          background-color: rgba(0,0,0,.5);
          transition: all .3s;
        }
        &:hover {

          img {
            transform: scale(1.1);
            -webkit-transform: scale(1.1);
            -moz-transform: scale(1.1);
            -ms-transform: scale(1.1);
            -o-transform: scale(1.1);
          }
        }

        img {
          width: 100%;
          height: 100%;
          object-fit: cover;
          transition: all 1s;
        }
        .text {
          text-align: center;
          position: absolute;
          top: 50%;
          left: 0;
          right: 0;
          z-index: 10;
          color: #ffffff;
          transform: translate(0, -50%);
          width: 53%;
          margin: 0 auto;
        }
        .title {
          font-size: 42px;
          line-height: 1.19;
          letter-spacing: 1.3px;
          color: #ffffff;
          margin-bottom: 25px;
          text-transform: uppercase;
        }
        .description {
          font-weight: 300;
          margin-bottom: 20px;
        }
        .all-price {

          * {
            margin: 0 17px;
          }
          .sale-price {
            position: relative;
            font-size: 30px;
            line-height: 1.5;
            letter-spacing: 0.9px;
            color: #cccccc;
            &:after {
              content: "";
              position: absolute;
              top: 57%;
              left: 0;
              right: 0;
              height: 1px;
              background: #ccc;
              z-index: 2;
              display: inline-block;
              transform: translate(0,-50%);
            }
          }
          .price {
            font-size: 42px;
            font-weight: bold;
            line-height: 1.19;
            letter-spacing: 1.3px;
            color: #ffffff;
          }
        }
        .order {
          margin-top: 50px;
          a {
            display: inline-block;
            height: 50px;
            line-height: 50px;
            font-size: 14px;
            text-transform: uppercase;
            font-weight: normal;
            padding: 0 42px;
            border-radius: 30px;
            color: #fff;
            background-color: #ec235a;
          }
        }
      }
    }
  }

  .banner-option {
    text-align: center;
    .title-top {
      text-shadow: 7.1px 8.4px 6.4px rgba(0, 0, 0, 0.7);
      -webkit-text-stroke: 3px #ffffff;
      font-family: "Playball";
      font-size: 95px;
      font-weight: normal;
      line-height: 100%;
      letter-spacing: 2.9px;
      color: #e9003f;
      text-transform: capitalize;
      position: relative;
      display: block;
      z-index: 4;
    }

    .title-large {
      font-size: 140px;
      font-weight: bold;
      line-height: 100%;
      letter-spacing: 4.2px;
      margin-top: -35px;
      margin-bottom: -8px;
      position: relative;
      display: block;
      color: #e4c5a6;
      text-transform: uppercase;
    }
    .title-bottom {
      text-transform: uppercase;
      color: #e4c5a6;
      font-size: 95px;
      font-weight: bold;
      font-style: normal;
      line-height: 100%;
      letter-spacing: 2.9px;
    }
    .sub-title {
      margin-top: 44px;
      font-weight: 300;
      color: #cccccc;
      padding: 0 15%;
      margin-bottom: 0;
    }
    .line {
      margin-top: 20px;
      display: block;
      color: #cccccc;
      &:after,
      &:before {
        top: -4px;
        position: relative;
        content: "";
        height: 2px;
        width: 139px;
        display: inline-block;
        background-color: #ebebeb;
        opacity: .5;
      }
      &:after {
        margin-left: 18px;
      }
      &:before {
        margin-right: 18px;
      }
    }
    .size-options {
      margin-top: 30px;
      display: flex;
      align-items: center;
      justify-content: center;
      .option {
        margin: 0 17px;
        display: flex;
        align-items: center;
        justify-content: center;
        .size {
          background-color: #fff;
          width: 57px;
          height: 57px;
          border-radius: 50%;
          font-size: 14px;
          letter-spacing: 0.4px;
          text-align: center;
          color: #333333;
          line-height: 121%;
          display: flex;
          justify-content: center;
          flex-direction: column;
          span {
            line-height: 1;
          }
        }
        .price {
          margin-left: 11px;
          font-size: 21px;
          line-height: 1.43;
          letter-spacing: 0.6px;
          color: #ffffff;
        }
      }

    }

    .btn-link {
      margin-top: 43px;
      a {
        height: 43px;
        display: inline-block;
        padding: 0 37px;
        line-height: 43px;
        border-radius: 30px;
        text-transform: uppercase;
        color: #fff;
        background-color: #cc0033;
      }
    }

  }

}

@media (max-width: 1366px) {
  .bp-element-product-banner {
    &.layout-1,
    &.layout-2 {
      .group-banner .item  {
        .content {
          height: 265px !important;
        }
        &.rank-1 .content {
          height: 560px !important;
        }
        img {
          object-fit: cover;
        }
      }
    }

    &.layout-3 {
      .group-banner .item {
        .content {
          height: 400px !important;
        }
      }
    }
  }
}

@media (max-width: 800px) {
  .bp-element-product-banner {
    &.layout-1,
    &.layout-2 {
      .group-banner .item {
        .content {
          height: 175px !important;
        }
        &.rank-1 .content {
          height: 380px !important;
        }
      }
    }
  }
}

@media (max-width: 768px) {
  .bp-element-product-banner {
    &.layout-3 {
      .group-banner .item {
        width: 100%;
        padding-bottom: 15px;
      }
    }
  }
}

@media (max-width: 600px) {
  .bp-element-product-banner {
    &.layout-1,
    &.layout-2 {
      .group-banner .item .content {
        text-align: center;
        width: auto;
        float: none;
        height: auto !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        margin-bottom: 30px;
        img {
          width: auto;
          height: auto;
        }
        &.rank-1 .content {
          height: auto !important;
        }
      }
    }
    }
  }

@media (max-width: 414px) {
  .bp-element-product-banner .group-banner .item .content {
    img {
      width: 100%;
    }
  }
}