@charset "utf-8";

/* common===================================================== */

*{
    margin: 0 ;
    padding: 0 ;
    box-sizing: border-box ;
}
html, body {
    height: 100%;
}
html{
    font-size: 62.5% ;
}
body{
    color: #333 ;
    line-height: 1 ;
    font-family: YuGothic , 'Yu Gothic' ,  sans-serif ;
    font-weight: bold ;
    font-size: 1.5rem ;
}
a:hover{
    cursor: pointer ;
}
.clearfix{
    zoom:1;
}
.clearfix:after {  
    content: ".";   
    display: block;   
    height: 0;   
    clear: both;   
    visibility: hidden;  
    overflow: hidden;/* 隙間対応 */
    font-size: 0.1em;/* 隙間対応 */
    line-height: 0;/* 隙間対応 */
}
@media (max-width: 767px){
    html{
        font-size: 50% ;
    }
}
p{
    line-height: 1.5em ;
}
.wrap{
    overflow: hidden ;
}

/* eyectach====================================================== */

.eyecatch-padding{
    padding: 50px ;
    padding-bottom: 70px ;
}
.eyecatch-frame{
    border: #2384da 3px solid ;
    position: relative ;
}

/* students======================= */
.students-container{
    display: flex ;
    height: calc(100vh - 100px);
    max-height: 750px ;
    min-height: 450px ;
    width: 100% ;
}
.students-photo{
    width: 100% ;
    position: absolute ;
    text-align: center ;
    left: 0 ;
    bottom: -11% ;
    padding-bottom: 35px ;
}
.students-photo img{
    max-width: 615px ;
    width: 70% ;
    position: relative ;
}
.students-photo::before{
    position: absolute ;
    content: "" ;
    width: 60% ;
    max-width: 400px ;
    height: 130px ;
    background: radial-gradient(ellipse at center, rgb(0, 0, 0, 0.35) 0%, rgb(0, 0, 0, 0.2) 30%,rgb(0, 0, 0, 0) 70%) ;
    border-radius: 50% ;
    bottom: 0 ;
    left: 50% ;
    transform: translateX(-50%) ;
    display: block ;
}

/* girl */
.students-girl{
    width: 50% ;
    position: relative ;
    z-index: 5 ;
    background-image: url(images/eyecatch_bg_girl.jpg) ;
    background-repeat: no-repeat ;
    background-size: cover ;
    background-position: center ;
}

/* boy */
.students-boy{
    width: 50% ;
    position: relative ;
    z-index: 5 ;
    background-image: url(images/eyecatch_bg_boy.jpg) ;
    background-repeat: no-repeat ;
    background-size: cover ;
    background-position: center ;
}

/* h1 - login================== */

.login-container{
    width: 23% ;
    max-width: 370px ;
    position: absolute ;
    z-index: 10 ;
    left: 50% ;
    top: 47% ;
    transform: translateX(-50%) translateY(-50%) ;
}
.login-container .h1{
    margin-bottom: 20px ;
    text-align: center ;
}
.login-container .h1 h1 img{
    max-width: 100% ;
    margin-bottom: 15px ;
}
.login-container .h1 h1 p{
    color: #005bac ;
    font-size: 2.3rem ;
}

.loginform{
    max-width: 280px ;
    margin: 0 auto ;
}
.loginform dl{
    margin-bottom: 15px ;
}
.loginform dl dt{
    color: #005bac ;
    font-size: 1.7rem ;
    margin-bottom: 5px ;
}
.loginform dl dd input{
    border: #005bac 2px solid ;
    height: 45px ;
    padding: 5px;
    border-radius: 8px ;
    width: 100% ;
    font-size: 1.7rem ;
}
.loginform p.submit{
    padding-top: 20px ;
    text-align: center ;
}
.loginform p.submit input{
    border: 0 ;
    background-color: #f77413 ;
    color: #fff ;
    font-size: 1.8rem ;
    padding: 10px ;
    width: 100% ;
    max-width: 250px ;
    font-weight: bold ;
    border-radius: 30px ;
    font-family: YuGothic , 'Yu Gothic' ,  sans-serif ;
    transition: all 0.3s ;
    -webkit-appearance: none;
}
.loginform p.submit input:hover{
    background-color: #f7b113 ;
    cursor: pointer ;
}
/* reset */
.loginform dl dd input:-webkit-autofill {
    -webkit-box-shadow: 0 0 0px 1000px #fff inset;
}
.loginform dl dd input:focus{
    outline: none ;
}

@media (max-width: 992px){
    
    /* eyectach */
    .eyecatch-padding{
        padding: 25px ;
    }
    .students-container{
        max-height: 530px ;
        height: calc(100vh) ;
    }
    .students-photo{
        bottom: -9% ;
        padding-bottom: 20px ;
    }
    .students-photo img{
        max-width: 300px ;
        width: 100% ;
    }
    .students-photo::before{
        height: 80px ;
    }
    /* login============== */
    .login-container{
        width: 220px ;
        max-width: 70% ;
        top: 42% ;
    }
    .login-container .h1{
        margin-bottom: 10px ;
    }
    .login-container .h1 h1 img{
        width: 200px ;
    }
    .loginform p.submit{
        padding-top: 10px ;
    }
}
@media (max-width: 767px){
    .students-photo{
        bottom: -6% ;
        padding-bottom: 15px ;
    }
    .students-photo img{
        max-width: 220px ;
    }
    .students-photo::before{
        height: 60px ;
    }
    /* girl */
    .students-girl{
        background-image: url(images/eyecatch_bg_girl_sp.jpg) ;
    }
    /* boy */
    .students-boy{
        background-image: url(images/eyecatch_bg_boy_sp.jpg) ;
    }
    .loginform dl dd input[type="text"],
    .loginform dl dd input[type="password"]{
        font-size: 16px !important ;
    }
}



/* About LMS ========================================================*/

.about-lms .background{
    background-color: #3695e9 ;
}
.about-lms .container{
    max-width: 1140px ;
    width: 100% ;
    margin: 0 auto ;
    padding: 60px 15px ;
}

/* h2 */
.h2.about{
    padding-top: 55px ;
    position: relative ;
    margin-bottom: 40px ;
}
.h2.about h2{
    font-size: 4rem ;
    color: #fff ;
    text-align: center ;
    letter-spacing: 0.1em ;
    position: relative ;
    z-index: 2 ;
    margin-bottom: 15px ;
}
.h2.about p.disc{
    text-align: center ;
    color: #fff ;
    font-size: 2rem ;
}
.h2.about p.img{
    position: absolute ;
    z-index: 1 ;
    top: 0 ;
    left: 0 ;
    width: 100% ;
    text-align: center ;
}
.h2.about .img img{
    max-width: 100% ;
}

/* 3step */
.flow-3steps{
    display: flex ;
}
.flow-3steps .block{
    width: 30% ;
}
.flow-3steps .illust{
    position: relative ;
    height: 270px ;
    margin-bottom: 20px ;
}
.flow-3steps .illust::before{
    position: absolute ;
    content: " " ;
    z-index: 1 ;
    background-color: #2384da ;
    height: 270px ;
    width: 270px ;
    border-radius: 50% ;
    left: 50% ;
    top: 0 ;
    transform: translateX(-50%) ;
}
.flow-3steps .num{
    position: absolute ;
    z-index: 2 ;
    top: 0 ;
    left: 15px ;
    height: 65px ;
    width: 65px ;
    background-color: #fff ;
    border-radius: 50% ;
    padding-top: 12px ;
    text-align: center ;
    font-size: 2.8rem ;
    color: #3695e9 ;
}
.flow-3steps .img{
    position: relative ;
    z-index: 3 ;
    text-align: center ;
    padding-top: 20px ;
}
.flow-3steps .img img{
    max-width: 100% ;
}
.flow-3steps p.disc{
    text-align: center ;
    color: #fff ;
    max-width: 250px ;
    margin: 0 auto ;
}
/* arrow */
.flow-3steps .arrow{
    width: 5% ;
    padding: 0 5px ;
    padding-top: 100px ;
    text-align: center ;
}
.flow-3steps .arrow img{
    max-width: 100% ;
}

@media (max-width: 992px){
    .about-lms .container{
        max-width: 500px ;
    }
    .h2.about{
        padding-top: 30px ;
    }
    .flow-3steps{
        display: block ;
    }
    .flow-3steps .block{
        width: 100% ;
        margin: 0 auto ;
    }
    .flow-3steps .illust{
        height: 230px ;
        width: 230px ;
        margin: 0 auto ;
        margin-bottom: 15px ;
    }
    .flow-3steps .illust::before{
        width: 230px ;
        height: 230px ;
    }
    .flow-3steps p.disc{
        max-width: inherit ;
    }
    .flow-3steps .num{
        left: 0 ;
        height: 55px ;
        width: 55px ;
    }
    .flow-3steps .arrow{
        padding: 0 ;
        width: 100% ;
    }
    .flow-3steps .arrow img{
        transform: rotate(90deg) ;
        width: 25px ;
    }
}


/* howto============================================= */

.howto .container{
    padding: 15px ;
    padding-top: 100px ;
    padding-bottom: 50px ;
    max-width: 1280px ;
    width: 100% ;
    margin: 0 auto ;
}

/* h2 */
.h2.howto{
    padding-top: 55px ;
    position: relative ;
    margin-bottom: 60px ;
}
.h2.howto h2{
    font-size: 4rem ;
    color: #00968a ;
    text-align: center ;
    letter-spacing: 0.1em ;
    position: relative ;
    z-index: 2 ;
    margin-bottom: 15px ;
}
.h2.howto p.img{
    position: absolute ;
    z-index: 1 ;
    top: 0 ;
    left: 0 ;
    width: 100% ;
    text-align: center ;
}
.h2.howto .img img{
    max-width: 100% ;
}

/* block */
.howto-block{
    display: flex ;
    flex: 1 ;
    margin-bottom: 50px ;
}
.col-img,
.col-text{
    width: 50% ;
}

/* img */
.col-img .img{
    width: 100% ;
    height: 340px ;
    background-size: cover;
    background-position: center ;
    background-repeat: no-repeat ;
    border-radius: 20px ;
}

/* text */
.col-text{
    padding: 15px 20px ;
    padding-left: 30px ;
    padding-top: 90px ;
    max-width: 520px ;
}
.col-text .h3{
    margin-bottom: 30px ;
    letter-spacing: 0.1em ;
    line-height: 2.2em ;
    position: relative ;
}
.col-text .h3 img{
    position: absolute ;
    top: -63px ;
    left: 0 ;
    z-index: -1 ;
}
.col-text .h3 h3{
    font-size: 2.5rem ;
}
.col-text .h3 h3 span.green{
    background-color: #00ac9e ;
    color: #fff ;
    font-size: 1.3em ;
    padding: 0 5px ;
}
.col-text p.disc{
    line-height: 1.8em ;
    margin-bottom: 20px ;
}

/* link */
.col-text p.link a{
    padding: 10px 35px 10px 20px ;
    color: #2384da ;
    border: #2384da 1px solid ;
    border-radius: 20px ;
    line-height: 1em ;
    display: inline-block ;
    text-decoration: none ;
    position: relative ;
    transition: all 0.3s ;
}
.col-text p.link a::after{
    position: absolute ;
    top: 10px ;
    right: 15px ;
    content: "\f105" ;
    font-family: 'Font Awesome 5 Free' ;
    display: inline-block ;
    font-size: 20px ;
    margin-left: 5px ;
}
.col-text p.link a:hover{
    background-color: rgba(35, 132, 218, 0.1) ;
}

/* reverse */
.howto-block.reverse{
    flex-flow: row-reverse;
}
.howto-block.reverse .col-text{
    padding-left: 15px ;
    padding-right: 30px ;
}

/* 01 */
.howto-01 .col-img .img{
    background-image: url(images/howto-img01.jpg) ;
}
/* 02 */
.howto-02 .col-img .img{
    background-image: url(images/howto-img02.jpg) ;
}
/* 03 */
.howto-03 .col-img .img{
    background-image: url(images/howto-img03.jpg) ;
}
/* 04 */
.howto-04 .col-img .img{
    background-image: url(images/howto-img04.jpg) ;
}

@media (max-width: 992px){
    .howto .container{
        max-width: 500px ;
        padding-bottom: 0 ;
    }
    .h2.howto{
        padding-top: 30px ;
    }
    .howto-block{
        display: block ;
        margin-bottom: 0 ;
    }
    .col-img,
    .col-text{
        width: 100% ;
    }
    .col-text{
        padding: 15px ;
        padding-top: 50px ;
    }
    .col-text .h3{
        margin-bottom: 15px ;
    }
    .howto-block.reverse .col-text{
        padding-right: 15px ;
    }
    .col-text p.disc{
        line-height: 1.5em ;
    }
    .col-text p.link{
        margin-bottom: 20px ;
    }
    .col-text .h3 h3{
        font-size: 2.2rem ;
    }
    .col-text .h3 img{
        height: 35px;
        top: -34px;
    }
    .col-text p.link a{
        width: 100% ;
        text-align: center ;
    }
    .col-img{
        padding: 0 15px ;
    }
    .col-img .img{
        height: 150px ;
        border-radius: 15px ;
    }
}

/* footer================================================ */

.footer{
    background-color: #1579d1 ;
    width: 100% ;
}
.footer .container{
    max-width: 1140px ;
    padding: 25px 15px ;
    margin: 0 auto ;
    display: flex ;
}
.footer .link{
    margin-left: auto ;
    padding-top: 40px ;
}
.footer .link a{
    color: #fff ;
    position: relative ;
}
.footer .link a::before{
    position: absolute ;
    top: 0 ;
    left: -15px ;
    content: "\f105" ;
    font-family: 'Font Awesome 5 Free' ;
    display: inline-block ;
    font-size: 20px ;
}
.footer .link a:hover{
    text-decoration: none ;
}
.address address{
    text-align: center ;
    padding: 15px ;
    font-style: normal ;
    color: #1579d1 ;
}

@media (max-width: 992px){
    .footer .container{
        display: block ;
    }
    .footer .container p.logo{
        text-align: center ;
    }
    .footer .container p.logo img{
        width: 150px ;
    }
    .footer .link{
        padding-top: 15px ;
        text-align: center ;
    }
}





