@charset "utf-8"; 
/* ------------------------------
sec01
------------------------------ */
.sec01 .sec_main{
    position: relative;
}
.sec01 .sec_main .inner{
    position: absolute;
    left: 0;
    right: 0;
    bottom: 100px;
    margin: 0 auto;
    z-index: 2;
}
.sec01 .sec_main .txt h2{
    font-size: 5.2rem;
    line-height: 1.5;
    margin-bottom: 30px;
    box-sizing: border-box;
}
.sec01 .sec_main .txt h2 span{
    background: #FFF;
    padding: 15px 15px 10px 15px;
    box-sizing: border-box;
}
.sec01 .sec_main .txt .text01{
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 2.0625;
    color: #FFF;
    text-shadow: 0 0 1px #2d2d2d;
}

.sec01 .sec_main .img{
    position: relative;
    z-index: 1;
}
.sec01 .sec_main .img img{
    width: 100%;
    height: auto;
}

.concept_box{
    position: relative;
}
.concept_box .inner{
    position: absolute;
    left: 0;
    right: 0;
    margin: auto;
    top: 0;
    bottom: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    z-index: 3;
}
.concept_box .txt p.num{
    margin-bottom: 45px;
    font-size: 5.0rem;
    font-weight: 700;
}
.concept_box .txt p.num span{ font-size: 2.8rem; margin-right: 10px;}

.concept_box .txt h3{
    font-size: 3.2rem;
    font-weight: 500;
    line-height: 1.75;
    margin-bottom: 35px;
}
.concept_box .txt p{
    text-align: left;
    letter-spacing: 0;
    font-size: 1.6rem;
    line-height: 1.875;
    font-family: 'Noto Serif JP', serif !important;
}
.concept_box .txt p+p{ margin-top: 34px;}

.concept_box .txt .btn_wrap{
    margin-top: 50px;
    width: 100%;
}
.concept_box .txt .btn_wrap .btn{
    max-width: inherit;
}
.concept_box .img{
    position: relative;
    box-sizing: border-box;
    z-index: 2;
}
.concept_box .img img{
    height: auto;
}

.concept01.concept_box .inner,
.concept03.concept_box .inner{
    align-items: flex-start;
}
.concept01.concept_box .txt .btn_wrap{ max-width: 161px;}
.concept01.concept_box .img{
    margin-top: -27px;
    text-align: right;
    background: url("../img/aboutus/bg_concept01.png") no-repeat left bottom;
    padding-bottom: 150px;
}
.concept01.concept_box .img img{
    width: 37%;
    max-width: 694px;
}
.concept02.concept_box .inner{
    align-items: flex-end;
    justify-content: flex-start;
}
.concept02.concept_box .txt{
    width: 100%;
    max-width: 495px;
    padding-top: 10%;
    padding-right: 30px;
    margin: 0 0 0 auto;
    box-sizing: border-box;
}
.concept02.concept_box .txt .btn_wrap{
    max-width: 201px;
    margin: 45px auto 0 0;
}
.concept02.concept_box .img{
    text-align: left;
    background: url("../img/aboutus/bg_concept02.png") no-repeat 60% bottom;
    padding-top: 125px;
    padding-bottom: 405px;
}
.concept02.concept_box .img img{
    width: 41%;
    max-width: 779px;
}

.concept03.concept_box{ margin-top: -280px; margin-bottom: 125px;}
.concept03.concept_box .inner{
    justify-content: flex-start;
}
.concept03.concept_box .txt{ padding-top: 5%;}
.concept03.concept_box .img{
    text-align: right;
}
.concept03.concept_box .img img{
    width: 45%;
    max-width: 847px;
}

@media screen and (max-width : 1024px){
    .concept_box .txt p.num {
        margin-bottom: 4%;
    }
    .concept02.concept_box .txt {
        max-width: 495px;
        padding-top: 8%;
        padding-right: 20px;
    }
    .concept03.concept_box .txt {
        padding-top: 2%;
    }
}
@media screen and (max-width : 767px){
    .sec01 .sec_main {
        display: flex;
        flex-direction: column-reverse;
        margin-bottom: 8%;
    }
    .sec01 .sec_main .inner{
        position: relative;
        bottom: 0;
        margin: -22vw auto 0 auto;
    }
    .sec01 .sec_main .txt h2{
        font-size: 6.667vw;
        font-weight: 500;
        letter-spacing: -.25rem;
        margin-bottom: 3%;
        line-height: 2;
        box-sizing: border-box;
    }
    .sec01 .sec_main .txt h2 span{
        padding: 4px 15px 5px 15px;
    }
    .sec01 .sec_main .txt .text01{
        font-size: 3.333vw;
        color: #2d2d2d;
        text-shadow: none;
    }
    .concept_box .inner{
        position: relative;
        height: auto;
        display: block;
    }
    .concept_box .txt p.num{
        margin-bottom: 1%;
        font-size: 10.417vw;
    }
    .concept_box .txt p.num span{ font-size: 5.833vw;}

    .concept_box .txt h3{
        font-size: 5.833vw;
        margin-bottom: 5%;
        letter-spacing: 0;
    }
    .concept_box .txt p{
        font-size: 3.333vw;
    }
    .concept_box .txt p+p{ margin-top: 5%;}

    .concept_box .txt .btn_wrap{
        margin: 8% auto 0 auto;
    }
    .concept_box .txt .btn_wrap .btn{
        font-size: 3.333vw;
        padding: 2.5vw 15px 3.2vw 15px;
    }
    .concept01.concept_box{
        margin-bottom: 10%;
        text-align: center;
        background: url("../img/aboutus/bg_concept01_sp.png") no-repeat center 43%;
        background-size: 100% auto;
        padding-bottom: 0;
    }
    .concept01.concept_box .txt .btn_wrap{ width: 44%; max-width: inherit;}
    .concept01.concept_box .img{
        margin-top: 6%;
        background: none;
        padding-bottom: 0;
    }
    .concept01.concept_box .img img{
        width: 100%;
        max-width: inherit;
    }

    .concept02.concept_box .txt{
        width: 100%;
        max-width: inherit;
        padding-top: 4%;
        padding-right: 0;
    }
    .concept02.concept_box .txt .btn_wrap{
        width: 54%;
        max-width: inherit;
        margin: 8% auto 0 auto;
    }
    .concept02.concept_box .img{
        background: none;
        margin-top: 8%;
        padding-top: 0;
        padding-bottom: 0;
    }
    .concept02.concept_box .img img{
        width: 100%;
        max-width: inherit;
    }
    .concept03.concept_box{
        margin-top: 6%;
        margin-bottom: 10%;
        background: url("../img/aboutus/bg_concept02_sp.png") no-repeat center top;
        background-size: 100% auto;
        padding-top: 0;
        padding-bottom: 0;
    }
    .concept03.concept_box .txt{ padding-top: 0;}
    .concept03.concept_box .img{
        margin-top: 8%;
    }
    .concept03.concept_box .img img{
        width: 100%;
        max-width: inherit;
    }


}
/* ------------------------------
sec02
------------------------------ */
.sec02{
    position: relative;
    background: url("../img/aboutus/bg_sec02.jpg") no-repeat center center;
    background-size: cover;
    padding: 245px 0;
    box-sizing: border-box;
}

.sec02 .box{
    width: 100%;
    max-width: 725px;
    margin: 0 auto;
    padding: 60px 10px;
    background: #2d2d2d;
    box-sizing: border-box;
}
.sec02 .box p{
    text-align: center;
    color: #FFF;
    font-size: 4.2rem;
    line-height: 1.547;
}


@media screen and (max-width : 767px){
    .sec02{
        background: url("../img/aboutus/bg_sec02_sp.jpg") no-repeat center center;
        background-size: cover;
        padding: 16% 0;
    }

    .sec02 .box{
        width: 100%;
        padding: 12% 10px;
    }
    .sec02 .box p{
        font-size: 5.833vw;
        letter-spacing: -.1rem;
    }

}














