@charset "UTF-8";

/* ================================================
===================================================
===================================================
Base
===================================================
===================================================
================================================ */
body {
    -webkit-text-size-adjust: 100%;
    color: #292929;
    font-family: 游ゴシック体, 'Yu Gothic', YuGothic, 'ヒラギノ角ゴシック Pro', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
    padding: 0;
    height: auto;
    font-size: 16px;
}

img {
    max-width: 100%;
    height: auto;
}

body * {
    box-sizing: border-box;
}

/*++++++++++++++++++++++++++
	Link : Img
++++++++++++++++++++++++++*/
/*  PC  */
@media screen and (min-width: 641px) {
    a:hover img {
        filter: alpha(opacity=75);
        -moz-opacity: 0.75;
        opacity: 0.75;
    }

    a:hover {
        filter: alpha(opacity=75);
        -moz-opacity: 0.75;
        opacity: 0.75;
    }

    /* hover */
    .hover, a.hover {
        text-decoration: none;
        -webkit-transition: background-color 0.4s linear;
        -moz-transition: background-color 0.4s linear;
        -o-transition: background-color 0.4s linear;
        transition: background-color 0.4s linear;
        filter: alpha(opacity=100);
        -moz-opacity: 1;
        opacity: 1;
    }
}

dl, dt, dd, ul, ol, li {
    margin: 0px;
    padding: 0px;
    list-style: none;
}

/*++++++++++++++++++++++++++
	汎用クラス
++++++++++++++++++++++++++*/
td {
    text-align: left;
}

th {
    font-weight: normal;
    text-align: center;
}

section {
    clear: both;
    margin: 0;
    padding: 0;
}

/* ================================================
===================================================
===================================================
Base end
===================================================
===================================================
================================================ */

/* ================================================
===================================================
===================================================
reset
===================================================
===================================================
================================================ */
/*
	html5doctor.com Reset Stylesheet
	v1.6.1
	Last Updated: 2010-09-17
	Author: Richard Clark - http://richclarkdesign.com
	Twitter: @rich_clark
*/

html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tfoot, thead,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
    margin: 0;
    font-style: normal;
}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
    display: block;
}

nav ul {
    list-style: none;
    padding: 0;
}

blockquote, q {
    quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
    content: '';
    content: none;
}

.clear_both {
    clear: both;
}

a {
    margin: 0;
    padding: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
}

h1, h2, h3, h4, h5, h6 {
    font-size: 100%;
    font-weight: normal;
}

address {
    font-style: normal;
}

/* ================================================
===================================================
===================================================
reset end
===================================================
===================================================
================================================ */

/*++++++++++++++++++++++++++
	背景
++++++++++++++++++++++++++*/
.wrapper {
    font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN", "游ゴシック", "Yu Gothic", "メイリオ", "sans-serif";
    max-width: 800px;
    width: 90%;
    margin: auto;
}

body {
    background-color: #fff;
    color: #171717;
    font-size: 16px;
    font-weight: normal;
    line-height: 1.7em;
    position: relative;
    overflow-x: hidden;
}

img {
    vertical-align: bottom;
    width: 100%;
    height: auto;
}


.maincontents {
    position: relative;
    z-index: 1000;
    box-shadow: 0 0 15px rgba(0, 0, 0, .1);
    overflow: hidden;
    max-width: 500px;
    width: 100%;
    margin: auto;
    background-color: #fff;
}

@media only screen and (max-width: 500px) {
    .maincontents {
        box-shadow: none;
    }
}

/*++++++++++++++++++++++++++
	ボタン
++++++++++++++++++++++++++*/

a {
    text-decoration: none;
    color: #171717;
}

a:link {
    text-decoration: none;
    color: #171717;
}

a:visited {
    text-decoration: none;
    color: #171717;
}

a:hover {
    text-decoration: none;
    color: #171717;
}

a:active {
    text-decoration: none;
    color: #171717;
}

/*++++++++++++++++++++++++++
	共通コンテンツ
++++++++++++++++++++++++++*/
.sp {
    display: none;
}

.pc {
    display: block;
}

@media only screen and (max-width: 500px) {
    .sp {
        display: block;
    }

    .pc {
        display: none;
    }
}

.space_80 {
    margin-bottom: 80px;
}


/*++++++++++++++++++++++++++
背景
++++++++++++++++++++++++++*/
.background {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 0;

    & .back {
        width: 100vw;
        height: 100dvh;
        background-image: url(../images/line.png);
        background-position: top left;
        background-repeat: repeat;
        background-size: 20px;
    }

    & .back img {
        width: 100vw;
        height: 100dvh;
        object-fit: cover;
    }

    & .conts_left {
        position: fixed;
        top: 0;
        /* left: calc(50vw - 775px); */
        right: calc(50vw + 250px);
        z-index: 1;
    }

    & .conts_left figure img {
        width: auto;
        /* width: 525px; */
        height: 100vh;
        /* object-fit: cover; */
    }

    & .conts_right {
        position: fixed;
        top: 0;
        /* right: calc(50vw - 775px); */
        left: calc(50vw + 250px);
        z-index: 1;
    }

    & .conts_right figure img {
        width: auto;
        /* width: 525px; */
        height: 100vh;
        /* object-fit: cover; */
    }

    & .bg_pc {
        display: block;
    }

    & .bg_sp {
        display: none;
    }
}

@media only screen and (max-width: 1200px) {
    .background {
        & .bg_pc {
            display: none;
        }

        & .bg_sp {
            display: block;
        }
    }
}

@media only screen and (max-width: 500px) {
    .background {
        display: none;
    }
}

/*++++++++++++++++++++++++++
cta
++++++++++++++++++++++++++*/

.cta {
    background-color: #FFF1E4;
    padding: 55px 0;
    margin: 0 0 0 0;
    text-align: center;

    & .cta_title {
        width: clamp(310px, 70vw, 360px);
        margin: 0 auto 30px;
    }

    & .cta_day {
        width: clamp(200px, 70vw, 260px);
        margin: 0 auto 10px;
    }
}

a.form_btn {
    position: relative;
    display: block;
    background-color: #F06060;
    max-width: 350px;
    width: 100%;
    color: #fff;
    padding: 15px;
    margin: 0 auto 0;
    text-align: center;
    border-radius: 100vh;
}

a.form_btn::after {
    content: "▶";
    position: absolute;
    top: 50%;
    right: 18px;
    transform: translateY(-50%);
    font-size: 10px;
    line-height: 1;
}

/*++++++++++++++++++++++++++
ヘッダー
++++++++++++++++++++++++++*/
header {
    padding: 15px 0;

    & .contents {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        align-items: center;
    }

    & .contents .left {
        width: clamp(20px, 40%, 160px);
    }

    & .contents .right {
        width: clamp(20px, 35%, 140px);
        margin-right: 15px;
    }
}

/*++++++++++++++++++++++++++
メインビジュアル
++++++++++++++++++++++++++*/
#mainvisual {
    width: 100%;
}





/*++++++++++++++++++++++++++
about
++++++++++++++++++++++++++*/

#about {
    background-color: #F2F4F3;
    padding: 0 0 55px;
    margin: -50px 0 0 0;

    & .about_title {
        width: clamp(330px, 70vw, 380px);
        margin: 0 auto 30px;
    }

    & .about_txt {
        color: #223A70;
        text-align: center;
        line-height: 2.5em;
        font-size: 16px;
        margin: 0 0 25px;
    }

    & .about_day {
        color: #223A70;
        text-align: center;
        font-size: 22px;
        font-weight: 700;
        margin: 0 0 30px;
    }

    & .about_day>* {
        margin: 0 0 8px;
    }

    & .about_day em {
        font-size: 16px;
    }

    & .about_day span {
        background-color: #00A0E9;
        color: #FFF;
        font-size: 14px;
        font-weight: normal;
        padding: 3px 6px;
        border-radius: 5px;
        margin: 0 10px 0 0;
    }
}


/*++++++++++++++++++++++++++
step
++++++++++++++++++++++++++*/

#step {
    padding: 55px 0 55px;
    margin: 0 0 0 0;

    & .step_title {
        width: clamp(220px, 70vw, 280px);
        margin: 0 auto 30px;
    }

    & .step_item {
        width: clamp(260px, 70vw, 300px);
        margin: 0 auto 20px;
    }
}



/*++++++++++++++++++++++++++
point
++++++++++++++++++++++++++*/

#point {
    padding: 0 0 55px;
    margin: 0 0 0 0;
    background-color: #F7F8F2;

    & .point_photo {
        width: 100%;
        margin: 0 auto 50px;
    }

    & .point_title {
        width: clamp(250px, 70vw, 320px);
        margin: 0 auto 30px;
    }

    & .point_wrap {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: space-around;
        margin: 20px 0 20px;
        padding: 0 0 20px;
        border-bottom: 1px #223A70 dotted;
    }

    & .poin_cont {
        flex: 8;

        & .poin_no {
            max-width: 50px;
            width: 100%;
        }

        & p {
            display: block;
            font-size: clamp(17px, 4.0vw, 20px);
            font-weight: 700;
            line-height: 1.8em;
            color: #223A70;
            margin: 5px 10px 0 0;
        }

        & p span {
            color: #00A0E9;
        }
    }

    & .poin_icon {
        flex: 2;
        display: flex;
        align-items: center;
    }
}



/*++++++++++++++++++++++++++
plan
++++++++++++++++++++++++++*/

#plan {
    padding: 55px 0 55px;
    margin: 0 0 0 0;

    & .plan_title {
        width: clamp(320px, 70vw, 380px);
        margin: 0 auto 30px;
    }

    & .plan_photo {
        width: 120%;
        margin: 50px auto 30px -10%;
        border-top: #CC3379 5px solid;
    }

    & .plan_photo.blue {
        border-top: #0896D5 5px solid;
    }

    & .plan_photo.d-blue {
        border-top: #004085 5px solid;
    }
    & .plan_gakunen {
        font-size: clamp(28px, 4.0vw, 32px);
        font-weight: 700;
        line-height: 1.8em;
        color: #CC3379;
        margin: 0 0 5px 0;
        text-align: center;
    }

    & .plan_gakunen.blue {
        color: #0896D5;
    }

    & .plan_gakunen.d-blue {
        color: #004085;
    }
    & .plan_txt {
        font-size: clamp(15px, 4.0vw, 16px);
        line-height: 1.8em;
        margin: 0 0 0 0;
    }

    & .plan_subject {
        font-size: clamp(17px, 4.0vw, 18px);
        font-weight: 700;
        margin: 30px 0 20px;
    }

    & .plan_subject::before {
        content: "■";
        font-size: clamp(15px, 4.0vw, 16px);
        color: #CC3379;
        margin: 0 3px 0 0;
    }

    & ul {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: flex-start;
    }

    & li {
        font-size: clamp(16px, 4.0vw, 17px);
        padding: 5px 20px;
        margin: 0 10px 10px 0;
        background-color: #EFEFEF;
        border-radius: 5px;
    }

    & dl {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: space-between;
        border-bottom: #EFEFEF 1px solid;
        margin: 0 0 15px;
        padding: 0 0 15px;
    }

    & dt {
        font-size: clamp(18px, 4.0vw, 19px);
        padding: 0 0;
        margin: 0 0;
        display: flex;
        align-items: center;
    }

    & dd {
        font-size: clamp(32px, 4.0vw, 33px);
        padding: 0 0;
        margin: 0 0;
        color: #223A70;
        font-weight: 700;
    }

    & dd span {
        font-size: clamp(16px, 4.0vw, 17px);
    }

    & em {
        font-size: clamp(16px, 4.0vw, 17px);
        color: #fff;
        padding: 3px 10px;
        border-radius: 5px;
        background-color: #F02381;
        font-weight: normal;
        margin: 0 0 0 10px;
    }

    & .red_color {
        color: #F02381;
        font-size: clamp(50px, 4.0vw, 55px);
    }
}





/*++++++++++++++++++++++++++
gokaku
++++++++++++++++++++++++++*/

#gokaku {
    background-color: #f5fafe;
    padding: 50px 0 50px;
    margin: -0 0 0 0;

    & .gokaku_title {
        width: clamp(320px, 70vw, 350px);
        margin: 0 auto 30px;
    }

    & .gokaku_txt {
        line-height: 1.8em;
        font-size: clamp(15px, 4.0vw, 16px);
        margin: 0 0 25px;
    }
    & .gokaku_photo {
        width: 100%;
        margin: 0 auto 30px;
    }
    & .gokaku_subject {
        font-size: clamp(17px, 4.0vw, 18px);
        font-weight: 700;
        margin: 0 0 10px;
    }
    & ul {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        justify-content: flex-start;
        margin: 0 0 15px;
    }
    & ol {
        font-size: clamp(15px, 4.0vw, 16px);
        padding: 0 0;
        margin: 0 0;
        font-weight: 700;
        white-space: nowrap;
    }

    & li {
        font-size: clamp(15px, 4.0vw, 16px);
        padding: 0 0;
        margin: 0 0;
    }
    & .link_subject {
        font-size: clamp(17px, 4.0vw, 18px);
        font-weight: 700;
        margin: 0 0 10px;
        color: #223A70;
        text-align: center;
        margin: 30px 0 10px;
    }

    & a.gokaku_link {
    position: relative;
    display: block;
    background-color: #223A70;
    max-width: 380px;
    width: 100%;
    color: #fff;
    padding: 15px;
    margin: 0 auto 10px;
    text-align: center;
    border-radius: 5px;
}

    & a.gokaku_link::after {
    content: url(../images/gokaku_arrow.svg);
    position: absolute;
    top: 50%;
    right: 18px;
    transform: translateY(-50%);
    font-size: 10px;
    line-height: 1;
}



}










/*++++++++++++++++++++++++++
教室一覧
++++++++++++++++++++++++++*/
#school {
    padding: 60px 0 40px;

    /*& h2 {
        font-size: 20px;
        text-align: center;
        font-weight: 700;
        margin-bottom: 20px;
    }*/

    & .school_title {
        width: clamp(135px, 70vw, 170px);
        margin: 0 auto 30px;
    }

    & ul.list {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
    }

    & ul.list li {
        width: 49%;
        margin-bottom: 2%;
    }

    & ul.list li a {
        width: 100%;
        display: block;
        background-color: #223A70;
        font-size: clamp(14px, 1.5vw, 15px);
        font-weight: 500;
        text-align: center;
        color: #fff;
        padding: 4px;
        border-radius: 4px;
    }
}

/*++++++++++++++++++++++++++
フッター
++++++++++++++++++++++++++*/
footer {
    & .blk1 {
        padding: 20px 0;
    }

    & .blk1 .rogo {
        width: clamp(20px, 70%, 300px);
        margin: auto auto 4%;
    }

    & .blk1 .tel {
        width: clamp(20px, 65%, 260px);
        margin: auto;
    }

    & .blk2 {
        padding: 10px 0;
        background-color: #223A70;
    }

    & .blk2 p {
        font-size: clamp(11px, 1.5vw, 12px);
        text-align: center;
        color: #fff;
        line-height: 1.4em;
        font-weight: 300;
        letter-spacing: 0.01em;
    }
}