@charset "UTF-8";


/*----------------------------------------------------
	☆LOADING
----------------------------------------------------*/

body #header,
body #wrapper,
body #footer{
    opacity: 0;
}
body.loaded #header, body.loaded #wrapper, body.loaded #footer{
    animation: fadein .5s ease forwards;
}

#loading{
    background: #4cab98;
    width: 100%;
    height: 100vh;
    animation: fadeout 2.5s ease-in-out forwards;
    position: fixed;
    left: 0;
    top: 0;
    z-index: 9999;
    pointer-events: none;
}
#loading::before{
    content: "";
    display: block;
    width: 60%;
    max-width: 350px;
    aspect-ratio: 303 / 40;
    background: url("../images/common/logo_white.svg") center center / contain no-repeat;
    position: absolute;
    left: 50%;
    top: 50%;
    animation: logo 2.5s ease-in-out forwards;
    /*transform: translate(-50%,-50%);*/
}

@keyframes fadeout {
	0% {  opacity: 1;}
	80% {  opacity: 1;}
	100% { opacity: 0; }
}
@keyframes logo {
	0% {  transform: translate(-50%,100%); opacity: 0;}
	25% {  transform: translate(-50%,-60%); opacity: 1;}
	30% {  transform: translate(-50%,-50%); opacity: 1;}
	70% {  transform: translate(-50%,-50%); opacity: 1;}
	75% {  transform: translate(-50%,-40%); opacity: 1;}
	100% { transform: translate(-50%,-200%); opacity: 0; }
}

.slick {
    opacity: 0;
}

.slick.slick-initialized {
    opacity: 1;
}

/*----------------------------------------------------
	☆PC
----------------------------------------------------*/

/*--- mv --*/
#mv {
    width: calc(100% - 120px);
    height: calc(100vh - 103px - 60px);
    margin: 0 auto;
    position: relative;
    border-radius: 50px;
    margin-top: 103px;
}
#mv .slick,
#mv .slick .slick-list,
#mv .slick .slick-track{
    width: 100% !important;
    height: 100% !important;
    position: absolute;
    left: 0;
    top: 0;
    border-radius: 50px;
}
#mv .inr{
    width: 100% !important;
    height: 100% !important;
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%,-50%);
    background-position: center center;
    background-size: cover;
}

#mv .mv01{ background-image: url("../images/top/mv_01.jpg");}
#mv .mv02{ background-image: url("../images/top/mv_02.jpg");}
#mv .mv03{ background-image: url("../images/top/mv_03.jpg");}
#mv .mv04{ background-image: url("../images/top/mv_04.jpg");}

#mv .copyBox{
    position: absolute;
    left: 0;
    bottom: 0;
    background: #f5f5ee;
    padding: 60px;
    color: #19937b;
    border-radius: 0 30px 0 0;
}
#mv .copyBox h1{
    font-size: clamp(28px,3.3vw,60px);
    line-height: 1.4;
    position: relative;
    z-index: 2;
}
#mv .copyBox .sub{
    font-size: clamp(12px,1.2vw,22px);
    line-height: 1.5;
    margin-top: 1em;
    letter-spacing: 0.18em;
    position: relative;
    z-index: 2;
}
#mv .copyBox::before,
#mv .copyBox::after{
    content: "";
    display: block;
    position: absolute;
}
#mv .copyBox::before{
    background: url("../images/top/corner_01.svg") center center / contain no-repeat;
    width: 30px;
    height: 60px;
    left: 0;
    top: -30px;
}
#mv .copyBox::after{
    background: url("../images/top/corner_02.svg") center center / contain no-repeat;
    width: 60px;
    height: 30px;
    right: -30px;
    bottom: 0;
}
#mv .deco01{
    width: 390px;
    position: absolute;
    right: -30px;
    bottom: -20px;
}


/*--- message --*/
#message.photoAndTextBox .image .deco01{
    width: 335px;
    left: -30px;
    bottom: -20px;
}

#message.photoAndTextBox .image {
    background-position: right top;
}

/*--- service --*/
#service {
    position: relative;
}
#service .serviceList{
    display: flex;
    justify-content: center;
    max-width: 1065px;
    margin: 60px auto 0;
    align-items: flex-start;
}
#service .serviceList li{
    width: calc(100% / 3);
    padding: 0 30px;
    display: flex;
    flex-direction: column;
    text-align: center;
    justify-content: center;
    align-items: center;
}
#service .serviceList li a{
    color: #fff;
    transition: .4s;
}
#service .serviceList li .image{
    max-width: 225px;
    border-radius: 200px;
    background: #fff;
    box-shadow: 7px 7px 5px rgba(68, 53, 21, 0.15);
    margin-left: auto;
    margin-right: auto;
}
#service .serviceList li .title{
    font-size: clamp(20px,2.6vw,26px);
    font-weight: 700;
    display: flex;
    flex-direction: column;
    text-align: center;
    justify-content: center;
    line-height: 1.35;
    margin: 15px auto;
}
#service .serviceList li .title .small{
    display: inline-block;
    font-size: 0.8em;
}
#service .deco{
    width: 250px;
    bottom: 120px;
}
#service .deco01{
    left: 10%;
}
#service .deco02{
    right: 10%;
}


/*--- other --*/
#contents #other{
    padding-bottom: 0;
}
#other .otherList{
    display: flex;
    justify-content: center;
    align-items: flex-start;
    max-width: 1020px;
    margin: 0 auto;
}
#other .otherList li{
    width: calc(100% / 3);
    padding: 0 30px;
}
#other .otherList li a{
    color: #3da591;
}
#other .otherList .image{
    max-width: 260px;
    background: #fff;
    border-radius: 30px;
    box-shadow: 7px 7px 5px rgba(68,53,21,0.15);
}
#other .otherList .title{
    margin: 20px auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: clamp(20px,3.4vw,32px);
    font-weight: 700;
    line-height: 1.35;
}
#other .otherList .title .en{
    font-size: 14px;
    color: #ffca05;
    font-weight: 700;
    
}

/*----------------------------------------------------
	☆ANIMATION
----------------------------------------------------*/



/*----------------------------------------------------
	☆901以上　PCのみ & HOVER
----------------------------------------------------*/

@media screen and (min-width:901px) {
    
    #service .serviceList li a:hover{
        color: #ffca05;
    }
    
}


/*----------------------------------------------------
	☆TOP HEIGHT UNDER 800
----------------------------------------------------*/

@media screen and (max-height:800px) {
}

/*----------------------------------------------------
	☆TOP HEIGHT UNDER 700
----------------------------------------------------*/

@media screen and (max-height:700px) {
}

/*----------------------------------------------------
	☆TOP UNDER 1200
----------------------------------------------------*/

@media screen and (max-width:1200px) {
    
    #mv {
        width: calc(100% - 80px);
        height: calc(100vh - 90px - 40px);
        border-radius: 30px;
        margin-top: 90px;
    }
    
    #mv .slick .slick-list,
    #mv .slick .slick-track{
        border-radius: 30px;
    }
    
    #mv .copyBox {
        padding: 50px;
    }
    
    #service .deco{
        width: 200px;
        bottom: 100px;
    }
    #service .deco01{
        left: 2%;
    }
    #service .deco02{
        right: 2%;
    }
    
    
}

/*----------------------------------------------------
	☆TOP UNDER 900
----------------------------------------------------*/

@media screen and (max-width:900px) {  
    
    #mv {
        background-position: 66% top;
    }
    #mv .deco01 {
        width: 44%;
    }
    
    #mv .mv01{ background-image: url("../images/top/mv_01_sp.jpg");}
    #mv .mv02{ background-image: url("../images/top/mv_02_sp.jpg");}
    #mv .mv03{ background-image: url("../images/top/mv_03_sp.jpg");}
    #mv .mv04{ background-image: url("../images/top/mv_04_sp.jpg"); background-position: left center;}
    
}


/*----------------------------------------------------
	☆TOP UNDER 600
----------------------------------------------------*/

@media screen and (max-width:600px) {
    
    #mv {
        width: calc(100% - 60px);
        height: 120vw;
        max-height: calc(100vh - 70px - 30px);
        border-radius: 20px;
        margin-top: 70px;
    }
    #mv .slick .slick-list,
    #mv .slick .slick-track{
        border-radius: 20px;
    }
    #mv .copyBox {
        padding: 6.6vw 2.5vw 0 2vw;
        border-radius: 0 20px 0 0;
    }
    #mv .copyBox .sub{
        letter-spacing: 0.1em;
    }
    
    /*--- message ---*/
    #message.photoAndTextBox .image .deco01 {
        width: 200px;
        left: -18px;
        bottom: -17px;
    }
    
    /*--- service ---*/
    #service{
        overflow: hidden;
    }
    #service .serviceList{
        flex-direction: column;
        margin-top: 30px;
    }
    #service .serviceList li{
        width: 100%;
        margin: 0 auto;
    }
    #service .serviceList li + li{
        margin-top: 30px;
    }
    #service .serviceList li .image {
        max-width: 180px;
    }
    #service .serviceList li .title{
        margin: 10px auto;
    }
    #service .deco{
        width: 180px;
        bottom: -2px;
    }
    #service .deco01{
        left: -4%;
    }
    #service .deco02{
        right: -4%;
    }    
    #service .btn01 {
        margin: 20px auto 30px;
    }
    
    /*--- other ---*/
    #other .otherList {
        flex-direction: column;
    }
    #other .otherList li{
        width: 100%;
    }
    #service .serviceList li a,
    #other .otherList li a{
        display: flex;
        align-items: center;
        width: 100%;
    }
    #other .otherList li + li{
        margin-top: 30px;
    }
    #service .serviceList li .image{
        width: 30%;
        max-width: 150px;
        margin: 0;
    }
    #other .otherList li .image{
        width: 40%;
        max-width: 180px;
        margin: 0;
    }
    #other .otherList li .image{
        border-radius: 10px;
    }
    #service .serviceList li .image,    
    #other .otherList li .image{
        box-shadow: 5px 5px 3px rgba(68, 53, 21, 0.1);
    }
    #service .serviceList li .info,
    #other .otherList li .info{
        width: 60%;
        text-align: left;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        height: 100%;
        display: flex;
        padding-left: 25px;
    }
    #service .serviceList li .info{
        width: 70%;
        padding-left: 18px;
    }
    #service .serviceList li .title{
        margin-left: 0;
        margin-right: 0;
        text-align: left;
    }
    #other .otherList .title{
        margin: 0 0 10px 0;
        align-items: flex-start;
    }
    #other .otherList .moreBtn .inr{
        justify-content: flex-start;
    }
    
}

/*----------------------------------------------------
	☆TOP UNDER 480
----------------------------------------------------*/

@media screen and (max-width:480px) {
    
    #mv .copyBox h1 {
        font-size: 6.9vw;
    }
    #mv .copyBox .sub {
        font-size: 3vw;
        letter-spacing: 0.1em;
    }
    
}

