@charset "UTF-8";

/* mv  ------------------------------- */
#main-visual{
    width: 100%;
}
#main-visual .main-container{
    width: 100%;
    height: 650px;
    position: relative;
}
#main-visual .main-container .img-area{
    width: 100%;
    height: 100%;
}
#main-visual .main-container .img-area img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
#main-visual .main-container .img-area li{
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    animation: fade 15s infinite;
}
#main-visual .main-container .img-area li:nth-child(1){
    animation-delay: 0s;
}
#main-visual .main-container .img-area li:nth-child(2){
    animation-delay: 5s;
}
#main-visual .main-container .img-area li:nth-child(3){
    animation-delay: 10s;
}

@keyframes fade{
    0%{
        opacity: 0;
    }
    15%{
        opacity: 1;
    }
    30%{
        opacity: 1;
    }
    45%{
        opacity: 0;
    }
    100%{
        opacity: 0;
    }
}

#main-visual .main-container .text-area{
    position: absolute;
    top: 30px;
    right: 15%;
    z-index: 10;
    display: flex;
    flex-direction: row-reverse;
    align-items: flex-start;
    gap: 5px;
}
#main-visual .main-container .text-area p{
    display: inline-block;
    writing-mode: vertical-rl;
    font-weight: 500;
    background-color: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(4px);
    padding: 8px 3px;
}
#main-visual .main-container .text-area .main-catch{
    font-size: 38px;
}
#main-visual .main-container .text-area .sub-catch{
    font-size: 32px;
    margin-top: 180px;
}


/* top-news  ------------------------- */
#top-news{
    width: 100%;
    background-color: #F3E6DE;
    position: relative;
    padding: 50px 0;
    margin: 0;
}

#top-news .wave-wrap{
    width: 600px;
    position: absolute;
    top: -150px;
    left: 0;
    z-index: 10px;
}
#top-news .main-wrap{
    width: 60%;
    background-color: #fff;
    border-radius: 20px 0 0 20px;
    display: flex;
    gap: 20px;
    padding: 40px;
    margin: 0 0 0 auto;
}


/* introduction  --------------------- */
#introduction{
    width: 100%;
    background-color: #F3E6DE;
    padding: 75px 0;
    margin: 0;
}
#introduction .main-wrap{
    width: 85%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 40px;
    margin: 0 5% 0 10%;
}
#introduction .main-wrap .text-area{
    width: 60%;
}
#introduction .main-wrap .img-area{
    width: 40%;
}
#introduction .main-wrap .img-area img{
    width: 100%;
}


/* top-care  ------------------------- */
#top-care{
    width: 100%;
    background-image: 
        url(../img/backimage-beige_stripe.jpg),
        url(../img/backimage-beige_dot.jpg);
    background-repeat: no-repeat, no-repeat;
    background-position:
        right -100px top 300px,
        left -100px bottom;
    background-size: 30%, 30%;
    padding: 0 0 90px 0;
    margin: 0;
}
#top-care .wave-area{
    width: 100%;
    margin-top: -1px;
    margin-bottom: 90px;
}
#top-care .wave-area img{
    width: 100%;
    overflow: hidden;
}

#top-care .info{
    width: 60%;
    margin: 0 auto 50px 10%;
}

#top-care .service-list{
    width: 80%;
    margin: 0 10% 70px 10%;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
#top-care .service-list li{
    background-color: #F3E6DE;
    border-radius: 20px;
    border: 1px solid #A36637;
}
#top-care .service-list li .img-area{
    border-radius: 20px 20px 0 0;
    overflow: hidden;
}
#top-care .service-list li .img-area img{
    width: 100%;
    overflow: hidden;
}
#top-care .service-list li .title{
    font-size: 24px;
    font-weight: 500;
    text-align: center;
    padding: 10px 5px 5px 5px;
}
#top-care .service-list li .description{
    font-size: 16px;
    text-align: center;
    padding: 0 5px 20px 5px;
}

#top-care .btn{
    margin: 0 10% 0 auto;
}

/* top-taxi  ------------------------- */
#top-taxi{
    width: 100%;
    padding: 0 0 90px 0;
    background-image: url(../img/taxi/img-illust.jpg);
    background-repeat: no-repeat;
    background-position: right 20% top;
    background-size: 20%;
}

#top-taxi .info{
    width: 40%;
    min-width: 450px;
    margin: 0 auto 50px 10%;
}

#top-taxi .list-wrap{
    width: 80%;
    margin: 0 auto 70px auto;
    display: flex;
    gap: 40px;
}
#top-taxi .list-wrap ul{
    width: calc(50% - 20px);
    background-color: #F3E6DE;
    border-radius: 20px;
    border: 1px solid #A36637;
    padding: 20px 40px;
}
#top-taxi .list-wrap ul li{
    margin-bottom: 8px;
}
#top-taxi .list-wrap ul li.list-title{
    font-weight: 500;
    padding-bottom: 5px;
    border-bottom: 1px solid #A36637;
}

#top-taxi .btn{
    margin: 0 10% 0 auto;
}

/* access  --------------------------- */
#top-access{
    width: 100%;
    background-color: #F3E6DE;
    padding-bottom: 90px;
}

#top-access .wave-area{
    width: 100%;
    background-color: #fff;
    margin-top: -1px;
    margin-bottom: 50px;
}

#top-access .main-wrap{
    width: 100%;
    padding: 0 10% 70px 10%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
}
#top-access .main-wrap .img-wrap{
    width: 45%;
    min-width: 350px;

}
#top-access .main-wrap .img-wrap img{
    width: 100%;
}

#top-access .main-wrap .info-list{
    width: calc(55% - 20px);
    padding: 30px;
}
#top-access .main-wrap .info-list .info-item-wrap{
    width: 100%;
    display: flex;
    margin-bottom: 10px;
}
#top-access .main-wrap .info-list .info-item-wrap dt{
    width: 80px;
    text-align: right;
}
#top-access .main-wrap .info-list .info-item-wrap dd{
    width: calc(100% - 80px);
}

#top-access .btn{
    margin: 0 10% 0 auto;
}
#top-access .btn::before,
#top-access .btn::after {
    background-color: #fff;
}

/* top-recruit  ---------------------- */
#top-recruit{
    width: 100%;
    background-color: #F3E6DE;
    padding: 0 5% 40px 5%;
}

#top-recruit .main-wrap{
    width: 100%;
    background-color: #5D2E0A;
    background-image: url(../img/recruit-backimg.jpg);
    background-size: cover;
    background-position: center;
    border-radius: 40px;
    overflow: hidden;
    padding: 60px 0;
}
#top-recruit .main-wrap .title{
    font-size: 32px;
    font-weight: 500;
    line-height: 1.2em;
    color: #fff;
    margin-left: 5%;
    margin-bottom: 40px;
}
#top-recruit .main-wrap .text{
    width: 45%;
    color: #fff;
    margin-left: 5%;
    margin-bottom: 40px;
}
#top-recruit .main-wrap .link-text{
    color: #fff;
    font-size: 20px;
    font-weight: 500;
    margin-left: 5%;
}
#top-recruit .main-wrap .link-text:hover{
    text-decoration: underline;
}


/*-------------------------------------------
調整用
-------------------------------------------*/
@media screen and (max-width: 1340px) {

    /* top-care  ------------------------- */
    #top-care .service-list{
        grid-template-columns: repeat(2, 1fr);
        gap: 40px;
    }

    /* top-taxi  ------------------------- */
    #top-taxi{
        background-position: right 20% top 33px;
        background-size: 25%;
    }
    
}

/*-------------------------------------------
タブレット
-------------------------------------------*/
@media screen and (max-width: 960px) {

    /* 共通設定 ------------------------------- */
    .pc{
        display: none;
    }
    .tb{
        display: block;
    }

    /* mv  ------------------------------- */
    #main-visual .main-container .text-area{
        right: 10%;
    }

    /* top-news  ------------------------- */
    #top-news .wave-wrap{
        width: 400px;
        top: -100px;
    }
    #top-news .main-wrap{
        width: 70%;
    }

    /* introduction  --------------------- */
    #introduction .main-wrap{
        align-items: flex-end;
    }

    /* top-care  ------------------------- */
    #top-care{
        background-position:
            right -100px top 200px,
            left -100px bottom 60px;
        background-size: 40%, 40%;
    }

    #top-care .service-list{
        margin: 0 10% 50px 10%;
        gap: 20px;
    }
    #top-care .service-list li .title{
        font-size: 20px;
    }

    /* top-taxi  ------------------------- */
    #top-taxi{
        background-position: right 10% top 63px;
        background-size: 22%;
    }

    #top-taxi .list-wrap{
        margin: 0 auto 50px auto;
        gap: 20px;
    }
    #top-taxi .list-wrap ul{
        width: calc(50% - 10px);
        padding: 20px;
    }
    #top-taxi .list-wrap ul li{
        font-size: 16px;
    }
    #top-taxi .list-wrap ul li.list-title{
        font-size: 18px;
    }

    /* access  --------------------------- */
    #top-access .main-wrap{
        padding: 0 10%;
        flex-direction: column;
    }
    #top-access .main-wrap .img-wrap{
        width: 100%;
    }

    #top-access .main-wrap .info-list{
        width: 100%;
    }

    /* top-recruit  ---------------------- */
    #top-recruit .main-wrap{
        background-size: contain;
        background-repeat: no-repeat;
        background-position: top right;
    }
    #top-recruit .main-wrap .title{
        margin-top: 100px;
    }
    #top-recruit .main-wrap .text{
        width: 90%;
        margin: 120px auto 40px auto;
    }
    #top-recruit .main-wrap .link-text:hover{
        text-decoration: none;
    }

}

/*-------------------------------------------
スマホ
-------------------------------------------*/
@media screen and (max-width: 767px) {

    /* 共通設定 ------------------------------- */
    .sp{
        display: block;
    }

    /* mv  ------------------------------- */
    #main-visual .main-container{
        height: calc(100vh - 60px);
    }

    #main-visual .main-container .text-area{
        right: 50%;
        transform: translateX(50%);
    }
    #main-visual .main-container .text-area .main-catch{
        font-size: 28px;
    }
    #main-visual .main-container .text-area .sub-catch{
        font-size: 24px;
    }

    /* top-news  ------------------------- */
    #top-news{
        padding: 20px 0;
    }

    #top-news .wave-wrap{
        width: 230px;
        top: -60px;
    }
    #top-news .main-wrap{
        width: 100%;
        border-radius: 0;
        flex-direction: column;
        gap: 5px;
        padding: 20px 5%;
    }

    /* introduction  --------------------- */
    #introduction .main-wrap{
        width: 90%;
        flex-direction: column;
        margin: 0 5%;
    }
    #introduction .main-wrap .text-area{
        width: 100%;
    }
    #introduction .main-wrap .img-area{
        width: 100%;
    }

    /* top-care  ------------------------- */
    #top-care{
        background-position:
            right -50px top 130px,
            left -50px bottom 80px;
    }

    #top-care .info{
        width: 90%;
        margin: 0 5% 50px 5%;
    }

    #top-care .service-list{
        width: 90%;
        margin: 0 5% 50px 5%;
        grid-template-columns: repeat(1, 1fr);
    }
    #top-care .service-list li .title{
        font-size: 20px;
    }

    #top-care .btn{
        text-align: center;
        margin: 0 auto;
    }

    /* top-taxi  ------------------------- */
    #top-taxi{
        background-image: none;
    }
    #top-taxi .info{
        width: 90%;
        min-width: auto;
        margin: 0 5% 40px 5%;
    }
    
    #top-taxi .list-wrap{
        width: 90%;
        margin: 0 5% 40px 5%;
        flex-direction: column;
    }
    #top-taxi .list-wrap ul{
        width: 100%;
    }

    #top-taxi .btn{
        margin: 0 auto;
    }

    /* access  --------------------------- */
    #top-access .main-wrap{
        padding: 0 5% 40px 5%;
        gap: 30px;
    }
    #top-access .main-wrap .img-wrap{
        width: 100%;
    }

    #top-access .main-wrap .info-list{
        width: 100%;
        padding: 0;
    }

    #top-access .btn{
        margin: 0 auto;
    }

    /* top-recruit  ---------------------- */
    #top-recruit .main-wrap{
        background-image: url(../img/recruit-backimg-sp.jpg);
        background-position: top center;
    }
    #top-recruit .main-wrap .title{
        font-size: 24px;
        margin-top: 200px;
    }
    #top-recruit .main-wrap .text{
        width: 90%;
        margin: 40px auto;
    }
    #top-recruit .main-wrap .link-text:hover{
        text-decoration: none;
    }

}