@charset "UTF-8";

/*++++++++++++++++++++++++++
共通
++++++++++++++++++++++++++*/
body{
    font-family: "Noto Sans JP",'ヒラギノ角ゴシック','Hiragino Sans','Hiragino Kaku Gothic ProN','ヒラギノ角ゴ ProN W3','メイリオ','Yu Gothic';
    background-color: #fff;
    color: #1E1E1E;
}
section {
    max-width: 800px;
    width: 100%;
    margin: auto;
}
section img{
    vertical-align: bottom;
}
.wrapper{
    width: 90%;
    margin: auto;
}
/*++++++++++++++++++++++++++
ヘッダー
++++++++++++++++++++++++++*/
header {
    max-width: 800px;
    width: 100%;
    margin: 0 auto 0;
    padding: 10px 0;
    display: flex;
    flex-direction: row;
}
header img{
    vertical-align: bottom;
}
header h1 {
    max-width: 140px;
    width: 40%;
}
header .header_tel {
    max-width: 140px;
    width: 40%;
    display: block;
    margin-left: auto;
    margin-right: 10px;
}
@media screen and (min-width: 600px){
    header{
        padding: 15px 0;
    }
    header h1 {
        max-width: 260px;
    }
    header .header_tel {
        max-width: 250px;
    }
}
/*++++++++++++++++++++++++++
mainvisual
++++++++++++++++++++++++++*/
#mainvisual{
    line-height: 0;
}
/*++++++++++++++++++++++++++
tokuten
++++++++++++++++++++++++++*/
#tokuten{
    padding: clamp(50px, 7vw, 70px) 0;
    background-color: #EFEEE9;
    border-top: solid 2px #F47CA3;
}
#tokuten .taisyo{
    text-align: center;
    margin-bottom: 5px;
}
#tokuten .taisyo h6{
    font-size: clamp(20px, 2.4vw, 24px);
    font-weight: 600;
    line-height: 1.4em;
    display: inline-block;
    color: #FA577E;
    position: relative;
}
#tokuten .taisyo h6::before,
#tokuten .taisyo h6::after{
    content: '';
    position: absolute;
    bottom: 2px;
    width: 3px;
    height: 18px;
    background-color: #FA577E;
    border-radius: 10px;
}
#tokuten .taisyo h6::before{
    left: -12px;
    transform: rotate(-30deg);
    -webkit-transform: rotate(-30deg);
}
#tokuten .taisyo h6::after{
    right: -12px;
    transform: rotate(30deg);
    -webkit-transform: rotate(30deg);
}
#tokuten h5{
    width: clamp(270px, 60vw, 450px);
    margin: auto;
}
#tokuten p{
    font-size: clamp(12px, 1.6vw, 16px);
    line-height: 1.5em;
    margin-top: 5px;
    margin-top: 20px;
}
#tokuten ul li{
    background-color: #fff;
    border-radius: 7px;
    margin-top: clamp(25px, 5vw, 40px);
}
#tokuten ul li .age{
    font-size: clamp(16px, 2vw, 20px);
    line-height: 1.5em;
    font-weight: 600;
    text-align: center;
    color: #fff;
    padding: clamp(5px, 1vw, 12px);
    background-color: #F37CAA;
    border-radius: 7px 7px 0 0;
}
#tokuten ul li .inr{
    padding: clamp(15px, 2.5vw, 25px);
    text-align: center;
}
#tokuten ul li .inr .inbl{
    display: inline-block;
}
#tokuten ul li .inr .kaisu{
    font-size: clamp(24px, 3vw, 30px);
    line-height: 1.5em;
    font-weight: 700;
    margin-right: 10px;
}
#tokuten ul li:nth-child(2) .inr .kaisu{
    margin-right: 40px;
}
#tokuten ul li .inr .price1{
    width: clamp(170px, 20vw, 200px);
}
#tokuten ul li .inr .price2{
    width: clamp(140px, 17vw, 165px);
}
#tokuten figure.present{
    max-width: 520px;
    width: 94%;
    margin: 40px auto auto;
}
/*--------------------------------------
trial
---------------------------------------*/
#trial{
    background-color: #E4F4FD;
    padding: clamp(50px, 7vw, 60px) 0 clamp(70px, 10vw, 100px);
}
#trial h2{
    font-size: clamp(20px, 4.5vw, 36px);
    line-height: 2em;
    text-align: center;
    font-weight: 600;
}
#trial h2 span.pink{
    color: #FA577E;
    font-size: 1.3em;
    margin-left: -0.3em;
    margin-right: -0.3em;
    font-weight: 700;
}
#trial h2 strong{
    font-size: 1.5em;
    font-weight: 600;
}
#trial p{
    font-size: clamp(16px, 2vw, 18px);
    line-height: 1.8em;
    font-weight: 500;
    margin-top: clamp(30px, 5vw, 40px);
}
#trial p span.mark{
    background: linear-gradient(transparent 60%, #EAFF4E 40%);
}
#trial .contents{
    background-color: #fff;
    border-radius: 8px;
    margin-top: clamp(25px, 4vw, 40px);
    box-shadow: 0 0 6px rgba(0, 0, 0, 0.06);
}
#trial .contents .midashi{
    font-size: clamp(16px, 3vw, 20px);
    line-height: 1.4em;
    font-weight: 700;
    text-align: center;
    color: #fff;
    background-color: #008CDB;
    padding: clamp(10px, 2vw, 15px) 5px;
    border-radius: 8px 8px 0 0;
}
#trial .contents .detail{
    font-size: clamp(14px, 2.5vw, 18px);
    line-height: 1.6em;
    text-align: center;
    padding: clamp(15px, 2.5vw, 25px) 5px;
    font-weight: 500;
}
/*--------------------------------------
#course
---------------------------------------*/
#course{
    padding: clamp(50px, 7vw, 70px) 0 clamp(70px, 10vw, 100px);
}
#course h6{
    font-size: clamp(14px, 2.1vw, 20px);
    font-weight: 700;
    text-align: center;
    margin-bottom: 10px;
    line-height: 1.4em;
    letter-spacing: 0.08em;
}
#course h6 strong{
    font-size: 1.15em;
}
#course h6 small{
    font-weight: 500;
}
#course h6 span{
    position: relative;
}
#course h6 span::before{
    content: '・';
    position: absolute;
    font-size: 0.82em;
    top: -0.9em;
    left: 0;
    right: 0;
    margin: auto;
    color: #CD1111;
}
#course h6 span.num::before{
    left: -0.2em;
}
#course h2{
    font-size: clamp(25px, 3.5vw, 32px);
    font-weight: 700;
    color: #002C6A;
    text-align: center;
    margin-bottom: 40px;
}
#course .contents:not(:last-child){
    margin-bottom: 80px;
}
#course .contents .age{
    position: relative;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    margin-bottom: clamp(20px, 3vw, 30px);
}
#course .contents .age::after{
    position: absolute;
    content: '';
    top: -5px;
    left: 0;
    width: 100%;
    height: 10px;
    background-color: #CC3379;
    border-radius: 8px 3px 3px 3px;
}
#course .contents .age .left{
    width: clamp(90px, 15vw, 140px);
    height: clamp(90px, 15vw, 140px);
    background-color: #CC3379;
    border-radius: 0 0 8px 8px;
    display: flex;
    justify-content: center;
    align-items: center;
}

#course .contents .age .left h4{
    font-size: clamp(20px, 3vw, 28px);
    font-weight: 700;
    color: #fff;
    text-align: center;
    line-height: 1.4em;
}
#course .contents .age .right{
    width: calc(100% - clamp(100px, 16vw, 150px));
}
#course .contents .age .right .txt1{
    font-size: clamp(18px, 2.8vw, 26px);
    font-weight: 600;
    color: #CC3379;
    line-height: 1.6em;
    letter-spacing: -0.025em;
}
#course .contents .txt2{
    font-size: clamp(14px, 1.8vw, 16px);
    line-height: 1.6em;
    position: relative;
    margin-left: 0.7em;
    margin-bottom: 2px;
}
#course .contents .txt2::before{
    content: '';
    position: absolute;
    top: 0.55em;
    left: -0.7em;
    width: 7px;
    height: 7px;
    background-color: #CC3379;
}
#course .contents .point{
    margin-top: clamp(35px, 5vw, 50px);
}
#course .contents .point .txt3{
    font-size: clamp(16px, 2.2vw, 20px);
    line-height: 1.5em;
    margin-bottom: 15px;
    font-weight: 600;
    text-align: center;
    background-color: #CC3379;
    border-radius: 4px;
    padding: clamp(4px, 1vw, 10px) 4px;
    color: #fff;
}
#course .contents .point figure{
    margin-bottom: 15px;
}
#course .contents .point p{
    font-size: clamp(14px, 1.8vw, 16px);
    line-height: 1.7em;
}
#course .contents .taisaku{
    border-top: dashed 1px #004084;
    border-bottom: dashed 1px #004084;
    padding: clamp(8px, 1.5vw, 15px) 0;
    margin-top: clamp(25px, 4vw, 40px);
}
#course .contents .taisaku .txt4{
    font-size: clamp(16px, 2.2vw, 20px);
    line-height: 1.5em;
    text-align: center;
    color: #004084;
    margin-bottom: 5px;
}
#course .contents .taisaku .txt5{
    font-size: clamp(16px, 2.2vw, 20px);
    line-height: 1.5em;
    font-weight: 700;
    text-align: center;
}
#course .contents.junior .age::after,
#course .contents.junior .age .left,
#course .contents.junior .txt2::before,
#course .contents.junior .point .txt3{
    background-color: #0794D4;
}
#course .contents.junior .age .right .txt1{
    color: #0794D4;
}
#course .contents.high .age::after,
#course .contents.high .age .left,
#course .contents.high .txt2::before,
#course .contents.high .point .txt3{
    background-color: #004084;
}
#course .contents.high .age .right .txt1{
    color: #004084;
}
/*++++++++++++++++++++++++++
goukaku
++++++++++++++++++++++++++*/
#goukaku{
    padding: 50px 0;
    background-color: #E4F4FD;
}
#goukaku .goukaku_title{
    color: #002C6A;
    margin: 0 auto 30px;
    font-size: clamp(25px, 4vw, 34px);
    font-weight: 700;
    text-align: center;
}
#goukaku .goukaku_title small{
    font-size: 0.8em;
}
#goukaku .goukaku_txt{
    line-height: 1.8em;
    margin: 0 auto 30px;
}
#goukaku .goukaku_wrap{
    width: 100%;
    margin: auto;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    text-align: center;
    color: #fff;
}
#goukaku .goukaku_wrap a{
    width: 48%;
    background-color: #002C6A;
    color: #ffffff;
    padding: 20px 10px;
    margin-bottom: 15px;
    display: block;
    font-size: 20px;
    font-weight: 700;
    border-radius: 100px;
}
@media screen and (max-width: 600px) {
    #goukaku .goukaku_wrap a{
        width: 100%;
    }
}
/*++++++++++++++++++++++++++
school
++++++++++++++++++++++++++*/
#school {
    padding: 50px 0;
    background-color: #fff;
}

#school .school_title {
    font-size: 28px;
    text-align: center;
    font-weight: bold;
    line-height: 1.4em;
    margin: 0 auto 30px;
    color: #002C6A;
}

#school .school_wrap {
    width: 100%;
    margin: auto;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-start;
    text-align: center;
    color: #fff;
}

#school .school_wrap a {
    width: calc(94% / 3);
    background-color: #002C6A;
    border-radius: 100px;
    padding: 10px;
    margin: 0 1% 10px;
    display: block;
    color: #ffffff;
}
@media screen and (max-width: 600px) {
    #school .school_wrap a {
        width: 48%;
    }
}

/*++++++++++++++++++++++++++
フッター
++++++++++++++++++++++++++*/
footer {
    margin: clamp(40px, 5.5vw, 55px) auto 0;
    text-align: center;
}

footer .footer_logo {
    margin: 0 auto 15px;
    max-width: 350px;
    width: 80%;
}

footer .footer_tel {
    display: block;
    margin: 0 auto 15px;
    max-width: 300px;
    width: 80%;
}

footer .footer_copyright {
    color: #fff;
    background-color: #002C6A;
    padding: 5px;
    font-size: 11px;
}
@media screen and (max-width: 600px) {
    footer .footer_logo{
        max-width: 280px;
    }
    footer .footer_tel{
        max-width: 250px;
    }
}
/*--------------------------------------
contact
---------------------------------------*/
#contact{
    background-image: linear-gradient(0deg, rgba(158, 233, 255, 1), rgba(30, 180, 226, 1));
    padding: 50px 0;
}
#contact .ashirai{
    text-align: center;
}
#contact .ashirai h2{
    font-size: clamp(50px, 7vw, 65px);
    font-weight: 600;
    line-height: 1.4em;
    display: inline-block;
    color: #fff;
    margin-bottom: 7px;
    position: relative;
}
#contact .ashirai h2::before,
#contact .ashirai h2::after{
    content: '';
    position: absolute;
    top: -2px;
    width: 18px;
    height: 18px;
}
#contact .ashirai h2::before{
    left: -12px;
    background-image: url(../images/contact-ashirai_left.svg);
}
#contact .ashirai h2::after{
    right: -12px;
    background-image: url(../images/contact-ashirai_right.svg);
}
#contact ul.taisyo{
    text-align: center;
    font-size: 0;
    margin-bottom: 20px;
}
#contact ul.taisyo li{
    display: inline-block;
    font-size: clamp(16px, 2.4vw, 20px);
    line-height: 1.3em;
    font-weight: 500;
    color: #21B6E3;
    background-color: #fff;
    border-radius: 3px;
    padding: 3px 6px;
    margin: auto 3px;
}
#contact .btn .back{
    background-color: #FFF261;
    border: solid 3px #fff;
    border-radius: 100px;
    box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
}
#contact .btn .txt{
    font-size: clamp(20px, 3vw, 26px);
    font-weight: 700;
    text-align: center;
    line-height: 1.5em;
    padding: 4% 25px;
    color: #007BC2;
    letter-spacing: 0.05em;
    position: relative;
}
#contact .btn .txt::before{
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    right: 12px;
    margin: auto;
    width: 38px;
    height: 38px;
    background-color: #fff;
    border-radius: 100px;
}
#contact .btn .txt::after{
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    right: 26px;
    margin: auto;
    width: 11px;
    height: 11px;
    border-top: solid 3px #007BC2;
    border-right: solid 3px #007BC2;
    transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
}
@media screen and (min-width: 800px) {
    #contact .btn .txt::before{
        right: 20px;
        width: 50px;
        height: 50px;
    }
    #contact .btn .txt::after{
        right: 39px;
        width: 15px;
        height: 15px;
    }
}
/*--------------------------------------
    pagetop
---------------------------------------*/
a#btn_top {
    position: fixed;
    right: 40px;
    z-index: 10;
    text-decoration: none;
    color: #ffffff;
    text-align: center;
    display: block;
    width: 60px;
    height: 60px;
    box-sizing: border-box;
    padding: 8px 0 0 0;
    background: rgba(28, 99, 167, 0.54);
    font-size: 13px;
    border-radius: 40px;
    line-height: 1.2em;
    overflow: auto;
}


a#btn_top a:hover {
    text-decoration: none;
    background: rgba(28, 99, 167, 0.9);
    filter: alpha(opacity=100);
    -moz-opacity: 1;
    opacity: 1;
}

@media screen and (max-width: 600px) {
    a#btn_top {
        right: 10px;
    }
}


