/* GLOBAL */
*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html,
body{
    font-family: 'Roboto', sans-serif;
    width: 100%;
    color: #636363;
}

.container{
    max-width: 1199px;
    margin: 0 auto;
}

.title p{
    font-size: 22px;
    font-weight: 600;
    color: #F55F8D;
    margin-bottom: 20px;
}

.title h2{
    font-size: 70px;
    color: #262626;
    margin-bottom: 20px;
    line-height: 80px;
}

/* HEADER */
header{
    margin: 0 auto;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1;
    /* need to set z-index because header position: absolute make it losing initial position leading to lose effects such as hover */
}

.header__content{
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.header__content nav{
    display: flex;
    align-items: center;
}

.header__content nav ul{
    display: flex;
    margin-right: 30px;
}

.header__content nav ul li{
    list-style: none;
    padding: 55px 15px;
}

.header__content nav ul li a{
    text-decoration: none;
    font-size: 15px;
    color: black;
    font-weight: 500;
}

.header__content nav ul li i{
    font-size: 11px;
    margin-left: 3px;
}

.header__content a,span{
    transition: all .5s;
    display: inline-block;
}

.header__content a:hover{
    color: #F55F8D;
}

.header__content a:hover span{
    animation: nav_jump .4s ease 1;
}
@keyframes nav_jump{
    49%{
        transform: translateY(100%)
    }
    50%{
        transform: translateY(-100%);
        opacity: 0;
    }
    51%{
        opacity: 1;
    }
}

.big-button{
    text-transform: uppercase;
    width: 170px;
    height: 60px;
    border: none;
    border-radius: 30px;
    font-size: 15px;
    color: white;
    background-image: linear-gradient(
    to right,#f55f8d 0%,#f8ae56 51%,#f55f8d 100%);
    cursor: pointer;
    background-size: 200%;
    transition: all .5s ease;
    /* background-position: default = left top */
}

.big-button:hover{
    background-position: right center;
}

/* CAROUSEL */
.carousel{
    padding-top: 180px;
    overflow: hidden;
    background-image: url(../image/pic2.png);
    background-position: top;
    background-size: 100%;
}

.carousel__content{
    display: flex;
    justify-content: space-between;
}

.carousel__lp{
    width: 60%;
    padding-top: 50px;
}

.carousel__desc p{
    font-size: 18px;
    /* font-weight: 600; */
    color: #636363;
    margin-bottom: 20px;
    line-height: 30px;
}

.carousel__desc ul li{
    font-size: 20px;
    color: #636363;
    margin-bottom: 25px;
    list-style: none;
}

.carousel__desc ul li i{
    /* display: inline-block; */
    width: 35px;
    height: 35px;
    border: none;
    border-radius: 50%;
    background-image: linear-gradient(
    to right,#f55f8d 0%,#f8ae56 51%,#f55f8d 100%);
    background-size: 200%;
    text-align: center;
    margin-right: 10px;
    line-height: 35px;
    color: white;
}

.carousel__rp{
    width: 40%;
}

.carousel__banner{
    width: 100%;
    margin-left: 50px;
}

/* SERVICE */
.service{
    padding-top: 150px;
    padding-bottom: 0;
    background-image: url(../image/bg2.png);
    background-size: cover;
    background-position: top center;
    text-align: center;
}

.service__container{
    text-align: center;
}

.service__content{
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 30px;
    margin-top: 40px;
}

.service__item{
    background-color:white;
    border-radius: 10px;
    padding: 30px 45px;
    box-shadow: 0 0 60px 0 rgba(0, 0, 0, .1);
    transition: all .5s;
}

.service__item:hover{
    transform: translateY(-20px);
}

.service__item img{
    width: 75%;
    padding-bottom: 20px;
}

.service__item h3{
    font-size: 24px;
    padding-bottom: 20px;
}

.service__item p{
    font-size: 16px;
    color: #636363;
    line-height: 25px;
}

/* ABOUT US */
.aboutus{
    padding-top: 150px;
    background-image: url(../image/bg15.png);
    background-size: 100%;
    background-position: center right;
    background-repeat: no-repeat;
    padding-bottom: 85px;
    overflow: hidden;
}

.aboutus__container{
    display: flex;
    justify-content: flex-end;
    position: relative;
}

.aboutus__lp img{
    width: 100%;
    border-top-right-radius: 100px;
    border-bottom-right-radius: 100px;
}

.aboutus__lp{
    width: 60%;
    margin: 100px 150px 100px 0;
    position: absolute;
    left: -200px;
}

.aboutus__rp{
    width: 50%;
}

.aboutus__info p:first-child{
    font-size: 22px;
    font-weight: 600;
    color: #F55F8D;
    margin-bottom: 20px;
}

.aboutus__info h2{
    font-size: 70px;
    color: #262626;
    margin-bottom: 20px;
    line-height: 80px;
}

.aboutus__info p:nth-child(3){
    font-size: 16px;
    /* font-weight: 600; */
    color: #636363;
    margin-bottom: 20px;
    line-height: 30px;
}

.aboutus__info ul li{
    font-size: 16px;
    color: #636363;
    margin-bottom: 25px;
    list-style: none;
}

.aboutus__info ul li i{
    /* display: inline-block; */
    width: 25px;
    height: 25px;
    font-weight: bold;
    font-size: 16px;
    border: 2px solid #f55f8d;
    border-radius: 50%;
    text-align: center;
    margin-right: 10px;
    line-height: 20px;
    color:#f55f8d;
}

/* NUMBER */
.number{
    background-image: url(../image/bg14.png);
    background-position: center;
    background-repeat: no-repeat;
    padding: 80px 0 50px;
    text-align: center;
}

.number__content{
    display: flex;
    justify-content: space-around;
    text-align: center;
}

.number__item i{
    font-size: 45px;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background-image: linear-gradient(to right,#f55f8d 0,#f8ae56 51%,#f55f8d 100%);
    background-size: 200%;
    color: white;
    line-height: 80px;
    margin-bottom: 15px;
    display: inline-block;
}

.number__item p:nth-child(2){
    font-size: 65px;
    font-weight: 800;
    color: #f55f8d;
    line-height: 1;
    padding-bottom: 5px;
}

.number__item p:nth-child(2) span{
    padding-right: 15px;
}

.number__item p:last-child{
    color: #262626;
    font-size: 18px;
}

/* FEATURE */
.feature{
    padding-top: 150px;
    background-image: url(../image/bg2.png);
    background-size: 100%;
    background-position: center;
    background-repeat: no-repeat;
    padding-bottom: 0;
    overflow: hidden;
}

.feature__content{
    display: flex;
}

.feature__lp{
    width: 50%;
}

.feature__rp{
    width: 50%;
    padding-right: -80px;
}

.feature__img{
    width: 110%;
}

.feature__img img{
    max-width: 100%;
    animation: feature_move 5s linear infinite;
}
@keyframes feature_move {
    0% {
     transform:rotate(1deg) translate(2px,2px)
    }
    50% {
     transform:rotate(-1deg) translate(-2px,-2px)
    }
    100% {
     transform:rotate(1deg) translate(2px,2px)
    }
   }

.feature__item{
    padding: 0 50px 30px 0;
    /* position: relative; */
}

.feature__item:nth-child(2){
    padding: 0 0 30px 50px;
}

.feature__detail i{
    font-size: 80px;
    color: #f55f8d;
    z-index: 1;
    transition: all 1s;
}  

.feature__detail div{
    padding-left: 25px;
    z-index: 1;
    transition: all 1s;
}

.feature__detail h3{
    font-size: 24px;
    padding-bottom: 5px;
}

.feature__detail p{
    font-size: 16px;
    color: #636363;
    line-height: 25px;
}

.feature__detail{
    display: flex;
    box-shadow: 0 0 60px 0 rgb(0 0 0 / 10%);
    background-color: white;
    border-radius: 10px;
    padding: 30px;
    align-items: center;
    position: relative;
    overflow: hidden;
    /* Use overflow will curve the border when hover, removed the corner of retangular. Otherwise can use border-radius 10px, get the same result */
}

.feature__detail::after{
    content: "";
    background-image: linear-gradient(to right,#f55f8d 0,#f8ae56 51%,#f55f8d 100%);
    background-size: 200%;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: all 1s;
    /* border-radius: 10px; */
}

.feature__detail:hover::after{
    opacity: 1;
}

/* Add adjustment of color to be shown when hover for each element */
.feature__detail:hover p,
.feature__detail:hover h3,
.feature__detail:hover i {
 color:#fff
}

/* PORTFOLIO */
.portfolio{
    padding-top: 150px;
    background-image: url(../image/bg17.png);
    background-size: cover;
    background-position: top center;
    text-align: center;
}

.portfolio__container{
    text-align: center;
}

.portfolio__content{
    display: grid;
    grid-template-columns: repeat(2,1fr) 1.5fr;
    /* Look at the whole structure of image: 2x1 & 1.5 */
    gap: 35px;
}

/* Need to create this seperate class because this class take more than 1 fr */
.portfolio__item-1{
    grid-column: 1/span 2;
}

.portfolio__item-5{
    grid-column: 1/span 2;
}

.portfolio__item-6{
    grid-column: 3/4;
    /* Count line from first small img */
    grid-row: 2/4;
    /* Count row from big img above but also take small img as row */
}

.portfolio__item img{
    width: 100%;
    height: 100%;
}

.portfolio__item{
    border-radius: 10px;
    position: relative;
    overflow: hidden;
    /* set overflow:hidden will show the curve from border-radius */
}

.portfolio__overlay{
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,.4);
    opacity: 0;
    transition: all .8s;
}

.portfolio__overlay .portfolio__icon{
    position: absolute;
    content: "";
    top: 10px;
    right: 10px;
    width: 50px;
    height: 50px;
    font-size: 28px;
    text-align: center;
    line-height: 50px;
    background-image: linear-gradient(to right,#f55f8d 0,#f8ae56 51%,#f55f8d 100%);
    background-size: 200%;
    border-radius: 10px;
    transform: translate(20px,-20px);
    transition: all .8s;
}

.portfolio__icon i{
    color: white;
}

.portfolio__overlay .portfolio__desc{
    position: absolute;
    content: "";
    bottom: 30px;
    left: 30px;
    text-align: left;
    transform: translateY(150px);
    transition: all .8s;
}

.portfolio__desc h3{
    font-size: 22px;
    font-weight: 800;
    color: white;
}

.portfolio__desc p{
    color: white;
    opacity: .7;
}

.portfolio__item:hover .portfolio__overlay{
    opacity: 1;
}

.portfolio__item:hover .portfolio__icon{
    transform: translate(-10px,10px);
    /* translate(x,y) */
}

.portfolio__item:hover .portfolio__desc{
    transform: translateY(0);
}


/* Start light effect */
.portfolio__item::before{
    position: absolute;
    content: "";
    width: 50%;
    height: 100%;
    top: 0;
    left: -100%;
    display: block;
    background: linear-gradient(to right,rgba(255, 255, 255, 0) 0%,rgba(255, 255, 255, 0.3) 100%);
    transform: skewX(-25deg);
    transition: all 0.8s;
}

.portfolio__item:hover::before {
    left: 125%;
  }
  /* End light effect */

/* PLAN SECTION */
.plan{
    padding-top: 150px;
    background-image: url(../image/bg16.png);
    background-size: cover;
    background-position: center;
    text-align: center;
}

.plan__container{
    text-align: center;
}

.plan__content{
    display: grid;
    grid-template-columns: repeat(3,1fr);
    margin-top: 40px;
    gap: 30px;
}

.plan__option{
    padding: 35px 60px;
    border: 3px solid transparent;
    border-radius: 8px;
    background-color: #fff;
    box-shadow: 1px 0 50px rgb(0,0,0,.1);
    border-image: 100 round;
    transition: all .5s;
}

.plan__option:hover{
    border-image: url(../image/br.png) 1 round;
}

.plan__option h3{
    color: #262626;
    font-size: 32px;
    font-weight: 700;
}

.plan__option img{
    width: 125px;
}

.plan__option p{
    color: #262626;
    font-size: 18px;
    font-weight: 600;
}

.plan__option span{
    color: #f8ae56;
    font-size: 50px;
    font-weight: 800;
}

.plan__option ul{
    text-align: left;
    padding: 15px 0;
    border-top: 1px solid #e1e1f0;
}

.plan__option li{
    padding: 5px 0;
    font-weight: 400;
    font-size: 18px;
    color: #262626;
    list-style: none;
}

.plan__option i{
    font-size: 12px;
    width: 26px;
    height: 26px;
    line-height: 26px;
    text-align: center;
    background-color: #feeff3;
    color: #f55f8d;
    border-radius: 100%;
    margin-right: 15px;
}

/* FEEDBACK */
.feedback{
    padding-top: 150px;
    text-align: center;
    background-image: url(../image/bg17.png);
    background-size: 100%;
    background-position: center;
    background-repeat: no-repeat;
}

.feedback__container{
    text-align: center;
    overflow: hidden;
    /* to remove all moving part outside the container's size */
}

.feedback__content{
    max-width: 1199px;
    margin: auto;
    text-align: center;
    /* padding: 100px 0 0 0; */
}

.feedback__thumbs .feedback__pic img{
    width: 80px;
    height: 80px;
    border-radius: 100%;
    padding: 4px;
    position: relative;
    z-index: 2;
    background-color:#f55f8d;
}

.feedback__thumbs{
    width: 300px;
    margin: auto;
    box-sizing: border-box;
    height: 170px;
    position: relative;
    overflow: hidden;
}

.feedback__comment{
    min-height: 300px;
    width: 100%;
}

.feedback__comment .swiper-wrapper{
    padding-bottom: 20px;
}

.feedback__thumbs .feedback__pic{
    padding: 30px 0 0;
    transition: all 0.5s;
}

.feedback__thumbs .swiper-slide-thumb-active .feedback__pic{
    padding: 0 0 40px;
}

.feedback__text{
    padding: 30px;
    text-align: center;
    box-shadow: 0 10px 20px 0 rgb(0,0,0,10%);
    margin: 20px 100px;
    border-radius: 10px;
    background-color: #fff;
    max-width: 770px;
    margin-left: auto;
    margin-right: auto;
}

.feedback__text i{
    position: absolute;
    top: 40px;
    left: 250px;
    font-size: 70px;
    color: #f55f8d;
    font-weight: light;
    transform: rotate(-180deg);
}

.feedback__text .quotation{
    text-align: left;
}

.feedback__name{
    font-size: 22px;
    font-weight: 800;
    color: #000;
    line-height: 26px;
    margin-bottom: 5px;
}

.feedback__position{
    font-size: 18px;
    font-style: italic;
    color: #f55f8d;
    margin-bottom: 20px;
    padding: 0 15px 15px;
}

.feedback__text p:last-child{
    font-size: 18px;
    font-weight: 400;
    font-style: italic;
    padding: 0 15px 15px;
    color: #636363;
}

.feedback__thumbs .swiper-wrapper{
    position: relative;
    width: 100%;
    height: 100%;
    z-index: 1;
    display: flex;
    transition-property: transform;
    box-sizing: content-box;
}

.feedback__comment .swiper-wrapper{
    position: relative;
    width: 100%;
    height: 100%;
    z-index: 1;
    display: flex;
    transition-property: transform;
    box-sizing: content-box;
}

.feedback__thumbs::after,
.feedback__thumbs::before{
    content:"";
    width:30px;
    position:absolute;
    top:0;
    height:100%;
    z-index:2
}

.feedback__thumbs::before{
    left:0;
    background:linear-gradient(to right,#fff 0,rgba(255,255,255,0) 100%)
}

.feedback__thumbs::after{
    right:0;
    background:linear-gradient(to left,#fff 0,rgba(255,255,255,0) 100%)
}

.feedback__pic .shape-bx{
    position:relative;
    height:35px;
    width:50px;
    left:50%;
    transform:translateX(-50%);
    bottom:18px;
    opacity:0;
    transition:all 1s;
    background-color:#f55f8d
}

.swiper-slide-thumb-active .feedback__pic .shape-bx {
    opacity:1
}

.feedback__pic .shape-bx::before {
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    background-image:url(../image/pattern12.png);
    background-position:bottom;
    background-size:contain;
    height:100%;
    width:100%;
    transition:all 1s
}

.feedback__pic::after,
.feedback__pic::before {
    content:"";
    background-color:#f55f8d;
    border-radius:50px;
    position:absolute;
    left:50%;
    transform:translateX(-50%);
    opacity:0
}

.feedback__pic::before {
    height:15px;
    width:15px;
    bottom:30px
}

.feedback__pic::after {
    height:10px;
    width:10px;
    bottom:0
}

.swiper-slide-thumb-active .feedback__pic::after,
.swiper-slide-thumb-active .feedback__pic::before {
    opacity:1
}

.swiper-pagination-bullets.swiper-pagination-horizontal,
.testimonial .swiper-horizontal>.swiper-pagination-bullets {
    bottom:auto
}
.swiper-pagination-bullet-active {
    background:#f55f8d
}

/* BLOG */
.blog{
    padding-top: 150px;
    background-image: url(../image/bg16.png);
    background-size: cover;
    background-position: top center;
    text-align: center;
    padding-bottom: 50px;
}

.blog__container{
    text-align: center;
}

.blog__item{
    text-align: left;
    background: rgba(245,95,141,.1);
    border-radius: 8px;
    margin-right: 30px;
}

.blog__top{
    position: relative;
}

.blog__top img{
    width: 100%;
    border-radius: 8px;
    /* display: block; */
}

.blog__top p{
    position: absolute;
    content: "";
    left: 15px;
    bottom: -20px;
    font-size: 14px;
    padding: 10px 20px;
    background-image: linear-gradient(to right,#f55f8d 0,#f8ae56 51%,#f55f8d 100%);
    background-size: 200%;
    color: white;
    border-radius: 5px;
}

.blog__body{
    padding: 30px 15px 20px 15px;
    line-height: 1.4;
    margin-bottom: 20px;
}

.blog__body h3{
    font-size: 24px;
    font-weight: 700;
    color: #262626;
}

.blog__bottom{
    display: flex;
    align-items: center;
    padding: 15px;
    font-size: 14px;
    border-top: 1px solid rgba(0,0,0,5%);
}

.blog__bottom i{
    font-size: 20px;
    color: #f55f8d;
    font-weight: lighter;
    vertical-align: sub;
    /* vertical align:sub to lower the position of icon */
}

.blog__bottom p:first-child{
    margin-right: 20px;
}

.blog__bottom span{
    color: #f55f8d;
}

/* FOOTER */
footer{
    padding-top: 150px;
    background-image: url(../image/bg4.png);
    display: block;
    height: auto;
    background-repeat: no-repeat;
    background-position: center;
    background-color: #0e1b1f;
    background-size: contain;
    color: #fff;
    font-size: 15px;
    position: relative;
}

footer::before {
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url(../image/pattern2.png);
    background-position: left top;
    background-repeat: no-repeat;
    background-size: contain;
}

.footer__container{
    text-align: left;
}

.footer__subscriber{
    display: flex;
    position: relative;
    padding: 50px 60px;
    background-color: white;
    border-radius: 10px;
    box-shadow: 0 0 30px 0 rgba(0,0,0,10%);
    background-image: url(../image/pattern3.png);
    background-position: bottom;
    background-repeat: no-repeat;
    background-size: 100%;
    height: 160px;
}

.footer__text h2{
    font-size: 28px;
    color: #262626;
}

.footer__form form{
    display: flex;
    /* justify-content:space-between; */
}

.footer__form input{
    width: 400px;
    padding: 20px 20px;
    font-size: 15px;
    font-weight: 400;
    color: #888;
    background: white;
    border-radius: .5rem 0 0 .5rem;
    border: 1px solid white;
    outline: 0;
    transition: all .5s;
    position: absolute;
    top: 40px;
    left: 650px;
    height: 65px;
}

.footer__form input:focus,
.footer__form input:hover{
    border-color: #f55f8d;
}

.footer__form button{
    padding: 20px 35px;
    font-size: 20px;
    background-image: linear-gradient(
    to right,#f55f8d 0%,#f8ae56 51%,#f55f8d 100%);
    background-size: 200%;
    border-color: transparent;
    transition: all .5s ease;
    border-radius: 0 8px 8px 0;
    color: white;
    cursor: pointer;
    position: absolute;
    top: 40px;
    left: 1050px;
    height: 65px;
}

.footer__form button:hover{
    background-position: right center;
}

.footer__form button:hover i{
    animation: form_icon .5s forwards;
    display: inline-block;
}
@keyframes form_icon{
    49%{
        transform:translateX(100%)
       }
    50%{
        opacity:0;
        transform:translateX(-100%)
       }
    51%{
        opacity:1
       }
}

.footer__info{
    display: flex;
    padding: 65px 0;
    position: relative;
}

.footer__item{
    width: 25%;
}

.footer__item a{
    font-size: 30px;
    text-decoration: none;
    color: #636363;
    font-size: 16px;
    transition: all .5s;
}

.footer__item a:hover{
    color: white;
}

.footer__item i{
    margin-right: 10px;
}

.footer__item li{
    padding: 8px 0;
    list-style: none;
}


.footer__item h3{
    color: white;
    font-size: 24px;
    font-weight: 700;
    padding-bottom: 10px;
    margin-bottom: 30px;
    position: relative;
}

.footer__item h3:before,
.footer__item h3:after{
    position: absolute;
    content: "";
    left: 0;
    bottom: 0;
    height: 4px;
    background: linear-gradient(to right,#f55f8d 0,#f8ae56 51%,#f55f8d 100%);
    background-size: 200%;
    border-radius: 10px;
}

.footer__item h3:before{
    width: 20px;
}

.footer__item h3:after{
    width: 50px;
    left: 25px;
}

.footer__contact li{
    display: flex;
    color: white;
}

.footer__contact i{
    width: 40px;
    height: 40px;
    background: linear-gradient(to right,#f55f8d 0,#f8ae56 51%,#f55f8d 100%);
    border-radius: 50%;
    line-height: 40px;
    text-align: center;
}

.footer__copyright{
    background-color: #1f343b;
    padding: 10px 0;
    position: relative;
    color: white;
    font-size: 15px;
}

.footer__copyright a{
    height: 32px;
    width: 32px;
    line-height: 32px;
    text-align: center;
    display: inline-block;
    border-radius: 50px;
    font-size: 14px;
    color: white;
    background-color: rgba(255,255,255,.1);
    transition: all .5s ease;
}

.footer__copyright a:hover{
    background-color: #f55f8d;
}

.footer__copyright-container{
    display: flex;
    justify-content: space-between;
}

.footer__copyright-lp span{
    color: #f55f8d;
}

.footer__copyright-rp a{
    text-align: center;
    font-size: 14px;
    color: white;
}

/* BACK TO TOP BUTTON */
.backtotop i{
    position: fixed;
    right: 20px;
    bottom: 20px;
    width: 50px;
    height: 50px;
    color: white;
    background-color:#f55f8d;
    border-radius: 10px;
    text-align: center;
    line-height: 50px;
    cursor: pointer;
}

/* END OF SITE */