.viewport, .carousel {
    overflow:hidden;
    width: 100%;
    position: relative;/*
    margin-bottom: 40px;*/
}
.carousel {
    margin-top: 15px;
    height: calc((100vw - 40px) / 3);
}
@media (min-width: 769px) {
    .carousel {
        height: calc((748px - 30px) / 4);
    }
}
.flipsnap, .flipsnap_carousel{
    overflow:hidden;
    -webkit-backface-visibility:hidden;
    backface-visibility:hidden;
}
.flipsnap_carousel {
    margin-right: -5px;
    margin-left: -5px;
}
.carousel .item {
    padding: 0 5px;
    box-sizing: border-box;
    height: calc((100vw - 40px) / 3);
    width: calc((100vw - 10px) / 3);
}
@media (min-width: 769px) {
    .carousel .item {
        padding: 0 5px;
        box-sizing: border-box;
        height: calc((748px - 30px) / 4);
        width: calc(758px / 4);
    }
}
.item {
    float:left;
}

.item img {
    
    width:100%;
    height:auto;
}
.flipsnap .item {
    width: 428px;
}
.flipsnap:after {
    content: '';
    display: block;
    clear: both;
    height: 0;
}
.prev-icon, .next-icon {
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 100%;
    color: rgba(0,0,0,0);
    background-color: rgba(0,0,0,0.5);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 20px 20px;
    position: absolute;
    top: -20px;
}
@media ( min-width: 769px ) {
    .prev-icon:hover, .next-icon:hover {
        background-color: rgba(0,0,0,0.2);
    }
}
.prev-icon {
    background-image: url(../images/slide_arrow_l.png);
}
.next-icon {
    background-image: url(../images/slide_arrow_r.png);

}
.controls {
    position: absolute;
    width: 100%;
    top: 50%;
}
.prev-icon {
    left: 5px;
}
.next-icon {
    right: 5px;
}
@media ( max-width: 768px ) {
    .prev-icon, .next-icon {
        width: 24px;
        height: 24px;
        background-size: 10px 10px;
        top: -12px;
    }
    .prev-icon {
        left: 10px;
    }
    .next-icon {
        right: 10px;
    }
    .carousel-wrap .viewport {
        margin-bottom: 10px;
    }
}
@media only screen and (min-width: 768px) {
    .viewport {
        margin-bottom: 0;
    }
}

#top .slick-slider {
    margin-bottom: 0;
}
.slide-pager, ul.slick-dots {
    position: absolute;
    bottom: 5px;
    text-align: center;
    width: 100%;
    letter-spacing: -0.35em;
}
.slide-pager span,
#top ul.slick-dots li button {
    width: 25px;
    height: 5px;
    padding: 0;
    background: rgba(255,255,255,.5);
    border-radius: 0;
    display: inline-block;
    letter-spacing: normal;
    margin: 0 4px;
}
#top ul.slick-dots li button:before {
    font-size: 0;
}
.slide-pager span:hover,
#top ul.slick-dots li button:hover {
    background: #fff;
}
.slide-pager .current,
#top ul.slick-dots li.slick-active button {
    background: #fff;
}
@media ( max-width: 768px ) {
    .single-slide .viewport {
        margin-bottom: 0;
    }
    .single-slide .slide-pager {
        bottom: -10px;
    }
}


.carousel-wrap {
  position: relative;

}
.carousel-wrap .slide-pager, ul.slick-dots {
  left: 0;
  height: 15px;
}
.carousel-wrap .slide-pager span {
  width: 20px;
  height: 5px;
}
