@charset "UTF-8";
/* ------------------------------
   concept.css
------------------------------ */
.page-ttl .small{
    color: #FFF;
    font-size: 1.5rem;
    letter-spacing: .1em;
    margin-bottom: 5px;
}
.page-ttl .ttl_inner{
    bottom: 25px;
    padding: 21px 30px;
}
.main_cnts .sec-ttl{
    text-align: center;
    font-size: 3.6rem;
    letter-spacing: -.01em;
    color: #bc121a;
    margin-bottom: 100px;
}
@media screen and (max-width: 767px) {
    .page-ttl .small{
        font-size: 1.2rem;
        margin-bottom: 5px;
    }
    .page-ttl .ttl_inner{
        bottom:-34px;
        padding: 10px 20px;
    }
    .main_cnts .sec-ttl{
        font-size: 2.6rem;
        margin-bottom: 10%;
    }

}

/*sec01*/
.sec01{
    position: relative;
    padding: 35px 0 65px 0;
    box-sizing: border-box;
}
.sec01 .greeting-box{
    width: 100%;
    max-width: 966px;
    margin: 0 auto;
    padding: 36px 75px 55px 75px;
    box-sizing: border-box;
}
.sec01 .greeting-box p,
.sec01 .greeting-box li{
    font-size: 1.7rem;
    line-height: calc(36 / 17);
    letter-spacing: -.01em;
    color: #333333;
}
.sec01 .greeting-box p+p{ margin-top: 35px;}
.sec01 .greeting-box ul{
    margin: 35px 0;
}
.sec01 .greeting-box li{}

.youtube_wrap{
    margin-top: 40px;
}

.youtube_wrap .youtube{
    width: 100%;
    max-width: 655px;
    margin: 0 auto 25px auto;
}
.youtube_wrap .youtube_inner{
    padding-top: 56.25%;
	position: relative;
	height: 0;
	overflow: hidden;
}
.youtube_wrap .youtube iframe{
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    border: none;
    box-sizing: border-box;
}
.youtube_wrap p{
    text-align: right;
    font-size: 2.4rem !important;
    margin-right: 20px;
}
.youtube_wrap p.sign{
    margin: 0 !important;
}

@media screen and (max-width: 767px) {
    .sec01{
        padding: 14% 0 10% 0;
        display: block;
        }

    .sec01 .greeting-box{
        max-width: inherit;
        margin: 0 auto;
        padding: 5% 4%;
        box-sizing: border-box;
    }
    .sec01 .greeting-box p,
    .sec01 .greeting-box li{
        font-size: 1.4rem;
    }
    .sec01 .greeting-box p+p{ margin-top: 5%;}
    .sec01 .greeting-box ul{
        margin: 6% 0;
    }
    .sec01 .greeting-box li{
        text-indent: -1.4rem;
        margin-left: 1.4rem;
    }
    .youtube_wrap{
        margin-top: 8%;
    }

    .youtube_wrap .youtube{
        max-width: inherit;
        margin: 0 auto 5% auto;
    }

    .youtube_wrap p{
        font-size: 1.6rem !important;
        margin-right: 10px;
    }
    .youtube_wrap p.sign{
        margin: 0 0 0 auto !important;
        width: 40%;
        max-width: 235px;
    }
}

/*sec02*/
.sec02{
    padding: 50px 0 40px 0;
    box-sizing: border-box;
}

.sec02 .flex .txt{
    width: 55%;
    padding-right: 40px;
    box-sizing: border-box;
}
.sec02 .flex .txt .potision{
    font-size: 1.6rem;
    line-height: calc(36 / 16);
    letter-spacing: .025em;
}
.sec02 .flex .txt .name{
    font-size: 3.6rem;
    letter-spacing: -.01em;
    font-weight: 700;
    margin-bottom: 25px;
}

.sec02 .flex .txt .list li{
    position: relative;
    font-size: 1.8rem;
    line-height: calc(36 / 18);
    color: #333333;
    padding-left: 26px;
    box-sizing: border-box;
}
.sec02 .flex .txt .list li:before{
    position: absolute;
    left: 0;
    top: 1px;
    display: block;
    content: '●';
}

.sec02 .flex .txt .txt_link{
    margin: 35px 0 0 0;
}
.sec02 .flex .txt .txt_link li a{
    position: relative;
    font-size: 1.6rem;
    line-height: calc(36 / 16);
    font-weight: 700;
    letter-spacing: .025em;
    padding-right: 24px;
    box-sizing: border-box;
}
.sec02 .flex .txt .txt_link li a:before,
.sec02 .flex .txt .txt_link li a:after{
    position: absolute;
    display: block;
    content: '';
    top: 50%;
    right: 0;
}

.sec02 .flex .txt .txt_link li a:before{
    width: 16px;
    height: 16px;
    -webkit-border-radius: 50%;
    border-radius: 50%;
    background: #bc121a;
    transform: translateY(-50%);
}
.sec02 .flex .txt .txt_link li a:after{
    right: 8px;
    margin-top: -1px;
    width: 5px;
    height: 5px;
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    -webkit-transform: rotate(45deg) translateY(-50%);
    transform: rotate(45deg) translateY(-50%);
}

.sec02 .flex .img{
    width: 45%;
    max-width: 537px;
}

@media screen and (max-width: 767px) {
    .sec02{
        padding: 10% 0 10% 0;
        box-sizing: border-box;
    }
    .sec02 .flex{
        flex-direction: column-reverse;
    }
    .sec02 .flex .txt{
        width: 100%;
        padding-right: 0;
        box-sizing: border-box;
    }
    .sec02 .flex .txt .potision{
        font-size: 1.4rem;
    }
    .sec02 .flex .txt .name{
        font-size: 2.2rem;
        margin-bottom: 5%;
    }

    .sec02 .flex .txt .list li{
        font-size: 1.5rem;
        padding-left: 20px;
        box-sizing: border-box;
    }
    .sec02 .flex .txt .txt_link{
        margin: 6% 0 0 0;
    }
    .sec02 .flex .txt .txt_link li a{
        font-size: 1.4rem;
        padding-right: 20px;
    }
    .sec02 .flex .txt .txt_link li a:before{
        margin-top: 1px;
        width: 14px;
        height: 14px;
    }
    .sec02 .flex .txt .txt_link li a:after{
        right: 7px;
        margin-top: 0;
        width: 4px;
        height: 4px;
    }

    .sec02 .flex .img{
        width: 100%;
        max-width: 537px;
        margin: 0 auto 4% auto;
    }

}

/*sec03*/
.sec03{
    padding: 50px 0 40px 0;
    box-sizing: border-box;
}

.book-list{
    display: flex;
    justify-content: space-between;
}
.book-list .box{
    width: calc(98% / 4);
}

.book-list .img{
    text-align: center;
    height: 367px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
}
.book-list .txt{
    padding-top: 12px;
}
.book-list .txt .ttl{
    text-align: center;
    font-size: 1.7rem;
    font-weight: 700;
    color: #111111;
    letter-spacing: -.001em;
    margin-bottom: 10px;
}
.book-list .txt .ttl.aL{ padding-left: 5px;}
.book-list .txt .text{
    text-align: center;
    font-size: 1.4rem;
    line-height: calc(18 / 14);
    color: #111111;
    letter-spacing: -.001em;
}

@media screen and (max-width: 767px) {
    .sec03{
        padding: 10% 0 10% 0;
    }
    .book-list{
        display: block;
    }
    .book-list .box{
        width: 100%;
        padding: 6% 4%;
        box-shadow: 0 0 6px 3px rgb(0 0 0 / 20%);
    }
    .book-list .box+.box{ margin-top: 10%;}
    .book-list .img{
        width: 50%;
        margin: 0 auto;
        height: auto;
    }
    .book-list .img img{
        width: auto;
        max-width: 100%;
        margin: 0 auto;
    }
    .book-list .txt{
        padding-top: 12px;
    }
    .book-list .txt .ttl{
        font-size: 1.5rem;
    }
    .book-list .txt .ttl.aL{ padding-left: 0; text-align: center !important;}
    .book-list .txt .text{
        font-size: 1.2rem;
    }
}


/*sec04*/
.sec04{
    padding: 50px 0 115px 0;
    box-sizing: border-box;
}
.main_cnts .sec04 .sec-ttl{ margin-bottom: 70px;}
.sec04 .img_list{
    position: relative;
    margin: 0 20px;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.sec04 .img_list:after{
    position: relative;
    display: block;
    content: '';
    width: 32%;
    max-width: 348px;
}
.sec04 .img_list li{
    width: 32%;
    max-width: 348px;
    margin-bottom: 50px;
}

@media screen and (max-width: 767px) {
    .sec04{
        padding: 10% 0 18% 0;
    }
    .main_cnts .sec04 .sec-ttl{ margin-bottom: 8%;}
    .sec04 .img_list{
        margin: 0 0;
        display: flex;
    }
    .sec04 .img_list:after{
        position: relative;
        display: block;
        content: '';
        width: 48%;
        max-width: inherit;
    }
    .sec04 .img_list li{
        width: 48%;
        max-width: inherit;
        margin-bottom: 4%;
    }

}

