/* reset */
:root{
   font-family: 'Source Sans Pro', sans-serif;;
   font-size: 16px;
   font-weight: 400;
}

*{
   margin: 0;
   box-sizing: border-box;
}

/* carousel */
.carousel_inner{
   width: 100%;
   overflow: hidden;
}

.carousel_inner::after{
   content: "";
   display: block;
   clear: both;
}

.carousel_item{
   position: relative;
   float: left;
   display: none;
   width: 100%;
   margin-right: -100%;
}

/* slide effect */
.carousel_item__active,
.carousel_item__pos_next{
   display: block;
}

.carousel_item__pos_next{
   left: 100%;
}

.carousel_item__next{
   transform: translateX(-100%);
   transition: transform 1.5s ease-in-out;
}

/* fade effect */
.carousel__fade .carousel_item__pos_next{
   left: 0;
   opacity: 0;
}

.carousel__fade .carousel_item__next{
   transform: none;
   opacity: 1;
   transition: opacity 1.5s ease-in-out;
}

.carousel__fade .carousel_item__active.carousel_item__next{
   opacity: 0;
}

/* carousel */
.carousel_img{
   display: flexbox;
   justify-content: center;
   width: 100%;
   max-width: 1920px;
}

.carousel_caption{
   position: absolute;
   top: 0;
   left: 0;
   display: flex;
   flex-direction: column;
   justify-content: center;
   width: 100%;
   height: 100%;
   padding: 3rem 2.5rem;
   text-align: center;
   color: #fff;
   z-index: 1;
}

.carousel_title{
   font-family: 'Source Sans Pro', sans-serif;;
   font-weight: 600;
}

.carousel_description{
   margin-top: .75rem;
   line-height: 150%;
}