/*------------------------------------
  Carousel indicators v27
------------------------------------*/

.u-carousel-indicators-v27,
.u-carousel-indicators-v27--white,
.u-carousel-indicators-v27--vertical,
.u-carousel-indicators-v27--vertical--white {
  li {
    position: relative;
    width: 40px;
    height: 4px;
    float: left;
    margin: 0 5px;

    span {
      position: relative;
      display: block;
      width: 100%;
      height: 4px;
      opacity: .7;
      overflow: hidden;
      transition: opacity .3s;

      &::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        display: block;
        width: 100%;
        height: 100%;
        transform: translate3d(0, 100%, 0);
        transition: transform .5s;
        transition-timing-function: cubic-bezier(.2, 1, .3, 1);
      }
    }

    strong {
      position: absolute;
      bottom: 105%;
      left: 0;
      display: block;
      width: 40px;
      font-weight: 700;
      font-size: 20px;
      opacity: 0;
      transform: translate3d(1em, 0, 0);
      transform-origin: 0 0;
      transition: transform .5s, opacity .5s;
      transition-timing-function: cubic-bezier(.2, 1, .3, 1);
    }

    &:not(.slick-active) {
      &:hover,
      &:focus {
        span {
          opacity: 1;
        }
      }
    }

    &.slick-active {
      span {
        &::before {
          transform: translate3d(0, 0, 0);
        }
      }

      strong {
        opacity: 1;
        transform: rotate3d(0, 0, 1, 0deg);
      }
    }
  }
}

.u-carousel-indicators-v27--vertical,
.u-carousel-indicators-v27--vertical--white {
  li {
    display: block;
    width: 40px;
    height: 40px;
    float: none;
    margin: 15px 0;

    span {
      position: relative;
      display: block;
      width: 4px;
      height: 100%;
      opacity: .7;
      overflow: hidden;
      transition: opacity .3s;

      &::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        display: block;
        width: 100%;
        height: 100%;
        transform: translate3d(0, 100%, 0);
        transition: transform .5s;
        transition-timing-function: cubic-bezier(.2, 1, .3, 1);
      }
    }

    strong {
      position: absolute;
      top: 0;
      bottom: auto;
      left: 105%;
      display: block;
      width: 40px;
      font-weight: 700;
      font-size: 20px;
      opacity: 0;
      transform: rotate3d(0, 0, 1, 90deg) translate3d(1em, 0, 0);
      transform-origin: 0 0;
      transition: transform .5s, opacity .5s;
      transition-timing-function: cubic-bezier(.2, 1, .3, 1);
    }

    &.slick-active {
      span {
        &::before {
          transform: translate3d(0, 0, 0);
        }
      }

      strong {
        opacity: 1;
        transform: rotate3d(0, 0, 1, 90deg);
      }
    }
  }
}

.u-carousel-indicators-v27--white,
.u-carousel-indicators-v27--vertical--white {
  li {
    span {
      background: $g-color-white;

      &::before {
        background: $g-color-primary;
      }
    }

    strong {
      color: $g-color-white;
    }
  }
}
