@charset "utf-8";
/* CSS Document */


/* kv
   ================================================================== */
.kv{
	margin: 0 0 0;
	position: relative;
}

.kv .inner{
	padding: 0 0 15vw;
}

.kv .main{
	line-height: 0;
}

.kv .main img{
	width: 100%;
}

.kv .bottom{
    margin: -22vw auto 0;
    width: 85%;
	line-height: 0;
}

.kv .bottom img{
	width: 100%;
}

.kv .kv_access{
    display: none;
}


/* campaign_block
   ================================================================== */
.campaign_block{
	margin: 0 0 0;
	position: relative;
}

.campaign_block .top_title{
    margin: auto;
	position: absolute;
    top: -6vw;
    left: 0;
    right: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 95vw;
    height: 12vw;
    font-size: 4.8vw;
    font-family: 'Zen Kaku Gothic Antique';
    letter-spacing: 0.05em;
    font-weight: 700;
    background: #000;
    color: #fff;
    border-radius: 50px;
}

.campaign_block .top_title .siz_l{
    font-size: 5vw;
    letter-spacing: -0.1em;
    color: inherit;
    font-family: inherit;
}

.campaign_block .bg01{
    background-image: url("../images/campaign/webp/bg01_sp.webp");
	background-repeat: no-repeat;
	background-position: center top;
	background-size: cover;
}

.campaign_block .top{
    padding: 7vw 0 0;
}

.campaign_block .main{
    margin: 0 auto;
    line-height: 0;
    position: relative;
    z-index: 1;
}

.campaign_block .photo_block{
    margin: -5vw auto 0;
}

.campaign_block .photo_block img{
    width: 100%;
}

.campaign_block .photo_block .photo{
    margin: 0 auto;
}

.campaign_block .photo_block .photo_text{
    margin: -6vw auto 0;
    width: 85vw;
    line-height: 0;
}

.campaign_block .bg02{
    margin: -26vw 0 0;
    padding: 36vw 0 23vw;
    background-image: url("../images/campaign/webp/bg02_sp.webp");
	background-repeat: no-repeat;
	background-position: center top;
	background-size: cover;
}

.campaign_block .membership_block{
    margin: 0 auto;
    line-height: 0;
}

.campaign_block .membership_block .membership{
    margin: 0 auto;
    line-height: 0;
}


/* campaign_cv
   ================================================================== */
.campaign_cv{
	margin: -12vw 0 0;
    padding: 0 0 15vw;
	position: relative;
    background-image: url("../images/campaign/webp/bg02_sp.webp");
	background-repeat: no-repeat;
	background-position: center bottom;
	background-size: cover;
}

.campaign_cv .top_title{
    margin: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 95vw;
    height: 12vw;
    font-size: 4.8vw;
    font-family: 'Zen Kaku Gothic Antique';
    letter-spacing: 0.05em;
    font-weight: 700;
    background: #000;
    color: #fff;
    border-radius: 50px;
}

.campaign_cv .top_title .siz_l{
    font-size: inherit;
    letter-spacing: 0;
    color: inherit;
    font-family: inherit;
}

.campaign_cv .main{
    margin: 0 auto 0;
    line-height: 0;
}

.campaign_cv .btn{
    margin: 0 auto 0;
    line-height: 0;
}

.campaign_cv .btn a{
    display: inline-block;
    line-height: 0;
}


/* wave_top
   ================================================================== */
.wave_top{
    position: absolute;
    left: 0;
    bottom: calc(100% - 1px);
    width: 100%;
    line-height: 0;
}

.wave_top .sp{
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}


/* trouble
   ================================================================== */
.trouble{
	margin: 0 0 0;
    padding: 0 0 1px;
	position: relative;
    background-color: #F4F5F7;
    background-image: url("../images/trouble/webp/bg_sp.webp");
	background-repeat: no-repeat;
	background-position: center top;
	background-size: cover;
}

.trouble .title{
    margin: 0 auto;
    position: relative;
    z-index: 1;
    line-height: 0;
}

.trouble .title img{
    width: 100%;
}

.trouble .text_box{
    margin: 5vw auto 0;
    padding: 8vw 0 0;
    background: #fff;
    box-sizing: border-box;
    box-shadow: 0 0 20px rgba(43,49,74,.3);
}

.trouble .text_box .ttl{
    width: 70%;
    line-height: 0;
}

.trouble .text_box .list{
    margin: 3vw 0 0;
    padding: 0 0 0 4vw;
}

.trouble .text_box .list > li{
    margin: 4vw 0 0;
    padding: 0 0 0 7vw;
    font-size: 5.3vw;
    font-weight: 500;
    font-family: 'Zen Old Mincho';
    letter-spacing: 0.05em;
    background-image: url("../images/trouble/chdeck.svg");
	background-repeat: no-repeat;
	background-position: 0 2.4vw;
    background-size: 5vw;
}

.trouble .text_box .list > li *{
    font-family: inherit;
}

.trouble .text_box .photo{
    margin: 5vw 0 0;
}

.trouble .bottom_text{
    margin: 5vw auto 0;
    width: 100%;
    line-height: 0;
}

.trouble .arrow{
    margin: 5vw auto -10vw;
    width: 75%;
    line-height: 0;
    position: relative;
    z-index: 1;
}


/* resolved
   ================================================================== */
.resolved{
	margin: 0 0 0;
    padding: 10vw 0 0;
	position: relative;
    background-color: #484E67;
}

.resolved .title{
    margin: 0 auto;
    position: relative;
    z-index: 1;
    line-height: 0;
}

.resolved .text{
    margin: 2vw auto 0;
    width: 90%;
    line-height: 0;
}

.resolved .photo.sp{
    margin: 10vw -3vw 0;
}


/* bg_aurora
   ================================================================== */
.bg_aurora{
    background-image: url("../images/about/webp/bg_sp.webp");
	background-repeat: no-repeat;
	background-position: center top;
	background-size: cover;
}


/* about
   ================================================================== */
.about{
	margin: 0 0 0;
    padding: 1px 0 0;
	position: relative;
}

.about .top_box{
    padding: 0 0 0;
}

.about .title{
    margin: 0 auto;
    position: relative;
    z-index: 2;
    line-height: 0;
}

.about .coach{
    margin: 0 -50vw;
    position: relative;
    z-index: 1;
    line-height: 0;
}

/* bottom_box */
.about .bottom_box{
    margin: -49vw 0 0;
    background: rgba(154,165,208,.9);
    position: relative;
    z-index: 1;
    text-align: center;
}

.about .bottom_box .inner{
    padding-top: 10vw;
    padding-bottom: 20vw;
    position: relative;
}

.about .bottom_box .name{
    font-size: 9vw;
    font-family: 'Jost';
    letter-spacing: 0.05em;
    font-weight: 700;
    color: #fff;
}

.about .bottom_box .txt{
    margin: 1vw 0 0;
    font-size: 3.9vw;
    line-height: 210%;
    font-family: 'Zen Kaku Gothic Antique';
    letter-spacing: 0.05em;
    font-weight: 700;
    color: #fff;
}

.about .bottom_box .catch{
    margin: 5vw 0 0;
    padding: 1vw 0;
    font-size: 5.2vw;
    line-height: 150%;
    font-family: 'Zen Old Mincho';
    letter-spacing: 0.05em;
    font-weight: 700;
    color: #000;
    background: linear-gradient(to right,rgba(255,255,255,0),rgba(255,255,255,.8),rgba(255,255,255,0));
}

.about .bottom_box .ttl{
    position: absolute;
    line-height: 0;
    top: 0;
    left: 3vw;
    width: 8vw;
}


/* program
   ================================================================== */
.program{
	margin: 0 0 0;
    padding: 1px 0 0;
	position: relative;
}

.program .inner{
    padding-top: 10vw;
	position: relative;
}

.program .title{
    margin: 0 auto;
    font-size: 23vw;
    top: -23vw;
    position: absolute;
    left: 0;
    right: 0;
    color: #fff;
    white-space: nowrap;
    font-weight: 700;
    letter-spacing: 0.02em;
    opacity: .54;
    font-family: 'Zen Old Mincho';
    z-index: 1;
    text-align: center;
}

.program .list{
    margin: 0 0 0;
    position: relative;
    z-index: 1;
}

.program .list > li{
    margin: 3vw 0 0;
    position: relative;
    line-height: 0;
    box-shadow: 0 0 10px rgba(43,49,74,.2);
}

.program .list > li:before{
	content: "";
	background-image: url("../images/program/webp/box_bg.webp");
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
	width: 50%;
	height: 100%;
	position: absolute;
	top: 0;
	right: 0;
    opacity: .8;
}

.program .list li .text_box{
    padding: 5vw 0 0;
    position: absolute;
    top: 0;
	right: 0;
    width: 50%;
    height: 100%;
    text-align: center;
    box-sizing: border-box;
}

.program .list li .ttl{
    margin: 0 auto;
    width: 50%;
    line-height: 0;
}

.program .list li .txt{
    margin: 3vw 0 0;
    font-size: 3.4vw;
    font-weight: 500;
    letter-spacing: 0.05em;
    color: #fff;
}

.program .note{
    margin: 5vw 0 0;
    font-size: 4.3vw;
    font-weight: 500;
    letter-spacing: 0.05em;
    text-align: center;
}


/* point_block
   ================================================================== */
.point_block{
	margin: 15vw 0 0;
	position: relative;
}

.point_block .inner{
	position: relative;
}

.point_block .title{
    margin: 0 auto;
    line-height: 0;
}

.point_block .title img{
    width: 100%;
}

.point_block .list{
    margin: 5vw 0 0;
}

.point_block .list > li{
    margin: 5vw 0 0;
    display: flex;
    align-items: flex-start;
}

.point_block .list .ttl{
    margin: 2vw 0 0;
    background-image: url("../images/point/box.svg");
	background-repeat: no-repeat;
	background-position: center center;
	background-size: 100%;
    width: 16vw;
    aspect-ratio: 59 / 67;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
}

.point_block .list .ttl > span{
    display: block;
}

.point_block .list .ttl > span > span{
    display: block;
    line-height: 1;
    font-family: 'Jost';
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #9AA5D0
}

.point_block .list .ttl > span .txt{
    font-size: 3vw;
    font-weight: 500;
    letter-spacing: 0.05em;
}

.point_block .list .ttl > span .num{
    margin-top: 1vw;
    font-size: 5vw;
}

.point_block .list p{
    padding: 0 0 0 4vw;
    width: calc(100% - 16vw);
    font-size: 5.3vw;
    line-height: 150%;
    font-weight: 700;
    box-sizing: border-box;
}

.point_block .photo{
    margin: 10vw -3vw 0;
}


/* machine
   ================================================================== */
.machine{
	margin: 0 0 0;
    padding: 10vw 0 0;
    background-color: #F4F5F7;
    background-image: url("../images/machine/webp/bg.webp");
	background-repeat: no-repeat;
	background-position: left top;
	background-size: 200vw;
	position: relative;
}

.machine .inner{
	position: relative;
}

.machine .top_box{
	text-align: center;
}

.machine .top_box .title{
    margin: 0 auto;
    width: 95%;
    line-height: 0;
}

.machine .top_box .title img{
    width: 100%;
}

.machine .top_box .catch{
    margin: 5vw 0 0;
    font-size: 5vw;
    font-family: 'Zen Kaku Gothic Antique';
    font-weight: 700;
}

.machine .top_box p{
    margin: 3vw 0 0;
    font-size: 4.1vw;
    font-weight: 500;
}

/* list_wrap */
.machine .list_wrap{
    margin: 5vw 0 0;
}

.machine .list_wrap > li{
    margin: 10vw 0 0;
}

.machine .list_ttl_box{
    padding: 0 0 0;
}

.machine .list_ttl_box .list_ttl{
    text-align: center;
}

.machine .list_ttl_box .list_ttl > span{
    padding: 3vw 3vw;
    font-size: 8vw;
    line-height: 1;
    font-family: 'Zen Old Mincho';
    font-weight: 700;
    color: #fff;
    display: inline-block;
    background: linear-gradient(35deg,#88BBC6 0%,#88BBC6 60%,#CACFD0 100%);
}

.machine .list_ttl_box .list_ttl_right{
    padding: 7vw 0 0;
}

.machine .list_ttl_box .list_text_ttl{
    font-size: 4.3vw;
    font-weight: 700;
}

.machine .list_ttl_box p{
    margin: 2vw 0 0;
    font-size: 4.3vw;
    font-weight: 500;
}

.machine .list{
    margin: 10vw auto 0;
    width: 90%;
}

.machine .list > li{
    margin: 5vw 0 0;
}

.machine .list .thm{
    line-height: 0;
}

.machine .list .ttl{
    padding: 2vw 0 0;
    font-size: 4vw;
    text-align: center;
}


/* price
   ================================================================== */
.price{
	margin: 0 0 0;
    padding: 0 0 30vw;
	position: relative;
}

.price .wave_top{
	bottom: auto;
    top: 0;
}

.price .top_box{
	background: #F4F5F7;
}

.price .top_box .title{
    margin: 0 -3vw;
    line-height: 0;
}

.price .top_box .title img{
    width: 100%;
}

/* bottom_box */
.price .bottom_box{
    margin: -15vw 0 0;
}

.price .bottom_box .list{
    margin: 0 0 0;
}

.price .bottom_box .list > li + li{
    margin: 10vw 0 0;
}

.price .bottom_box .list img{
    width: 100%;
}

.price .bottom_box .list .ttl{
    line-height: 0;
}

.price .bottom_box .list .table{
    margin: 2vw auto 0;
    line-height: 0;
}


/* staff
   ================================================================== */
.staff{
	margin: 0 0 0;
	position: relative;
}

.staff .title{
	margin: 0 0 0;
	width: 67vw;
    line-height: 0;
    position: absolute;
    top: 5vw;
    left: 3vw;
}

.staff .title img{
    width: 100%;
}

.staff .bg{
    margin: 0 -3vw;
    line-height: 0;
}


/* information
   ================================================================== */
.information{
	margin: 0 0 0;
    padding: 0 0 25vw;
	position: relative;
}

.information .title{
	margin: 0 -3vw;
    line-height: 0;
}

.information .title img{
    width: 100%;
    position: relative;
    z-index: 1;
}

/* information_bg */
.information_bg{
    position: relative;
}

.information_bg > *{
    position: relative;
    z-index: 1;
}

.information_bg:before{
	content: "";
	background-image: url("../images/information/webp/bg.webp");
	background-repeat: no-repeat;
	background-position: center top;
	background-size: 100% 100%;
	width: 150vw;
	height: 80vw;
	position: absolute;
	top: 0;
	left: 0;
    z-index: -1;
}

/* box_title */
.information .box_title{
    position: absolute;
    top: 0;
    left: 3vw;
    width: 5vw;
    line-height: 0;
}

/* info_about */
.information .info_about{
    margin: 6vw 0 0;
    padding: 10vw 0 0;
    position: relative;
    z-index: 3;
}

.information .info_about .left{
    padding: 0;
}

.information .info_about .site_logo{
    margin: 0 auto;
    padding: 0 0 0 10vw;
    width: 50vw;
    line-height: 0;
}

.information .info_about .site_logo img{
    width: 100%;
}

.information .info_about .right{
    padding: 10vw 0 0;
}

.information .info_about .right .box + .box{
    margin: 10vw 0 0;
    padding: 10vw 0 0;
    border-top: 1px solid #9AA5D0;
}

.information .info_about .right .ttl{
    font-size: 5vw;
    font-family: 'Zen Kaku Gothic Antique';
    font-weight: 700;
}

.information .info_about .right .ttl_logo{
    width: 35vw;
    line-height: 0;
}

.information .info_about .right p{
    margin: 3vw 0 0;
    font-size: 4.5vw;
    font-weight: 500;
}

/* info_access */
.information .info_access{
    margin: 6vw 0 0;
    position: relative;
    z-index: 2;
}

.info_access.information_bg:before{
	top: -20vw;
}

.information .info_access .flex{
    margin: 0 0 0 15vw;
    position: relative;
    z-index: 2;
}

.information .info_access .list{
    margin: 0 0 0;
    position: relative;
    z-index: 2;
}

.information .info_access .list > li{
    padding: 5vw 0;
    border-bottom: 1px dashed #A3A3A3;
}

.information .info_access .flex .list:first-child > li:first-child{
    padding-top: 0;
}

.information .info_access .list .list_ttl,
.information .info_access .list p{
    font-size: 4vw;
}

.information .info_access .list .list_ttl{
    font-weight: 700;
}

.information .info_access .list p{
    margin: 2vw 0 0;
    font-weight: 500;
}

.information .info_access .map{
    margin: 10vw 0 0;
    line-height: 0;
}

.map.information_bg:before{
	top: -20vw;
}

.information .info_access .map iframe{
    height: 40vw;
    width: 100%;
}


/* faq
   ================================================================== */
.faq{
	margin: 0 0 0;
    padding: 1px 0 25vw;
	position: relative;
    z-index: 2;
    background: #F4F5F7;
}

.faq .title{
	margin: -15vw auto 0;
    width: 65%;
    line-height: 0;
}

.faq .title img{
    width: 100%;
    position: relative;
    z-index: 1;
}

.faq .list{
    margin: 10vw 0 0;
}

.faq .list > li{
    margin: 3vw 0 0;
}

.faq .list .question{
    padding: 5vw 3vw 3vw;
    border-radius: 10px;
    background: linear-gradient(25deg,#86BCDD 0%,#86BCDD 20%,#E6B6C4 70%,#E6B6C4 100%);
    position: relative;
    z-index: 1;
}

.faq .list .question > span{
    padding: 0 0 0 10vw;
    font-size: 7vw;
    line-height: 140%;
    font-family: 'Zen Old Mincho';
    color: #fff;
    font-weight: 700;
    position: relative;
    display: block;
}

.faq .list .question > span:before{
	content: "";
	background-image: url("../images/faq/q.svg");
	background-repeat: no-repeat;
	background-position: center 0;
	background-size: 100%;
	width: 6vw;
	height: 10vw;
	position: absolute;
	top: 1.8vw;
	left: 0;
}

.faq .list .answer{
    margin: -10px 0 0;
    padding: 7vw 3vw 6vw;
    background: #fff;
}

.faq .list .answer > p{
    padding: 0 0 0 10vw;
    font-size: 4vw;
    font-weight: 500;
    position: relative;
}

.faq .list .answer > p:before{
	content: "";
	background-image: url("../images/faq/a.svg");
	background-repeat: no-repeat;
	background-position: center 0;
	background-size: 100%;
	width: 6vw;
	height: 10vw;
	position: absolute;
	top: 0;
	left: 0;
}

.faq .note{
    margin: 5vw 0 0;
    font-size: 4vw;
    font-weight: 500;
    text-align: center;
}


@media screen and (min-width : 500px){


    /* kv
       ================================================================== */
    .kv{
        position: relative;
    }

    .kv .inner{
        padding: 0 0 2.5vw;
        position: relative;
    }

    .kv .main{
        line-height: 0;
    }

    .kv .bottom{
        margin:0 auto;
        width: 83%;
        position: absolute;
        bottom: 7.4vw;
        left: 0;
        right: 0;
    }

    .kv .kv_access{
        display: block;
        position: absolute;
        top: 18.0vw;
        right: 0;
        width: 4.2vw;
    }
        

    /* campaign_block
       ================================================================== */
    .campaign_block{
        margin: 0 0 0;
    }

    .campaign_block .top_title{
        top: -2.8vw;
        width: 55.0vw;
        height: 5.6vw;
        font-size: 2.6vw;
    }

    .campaign_block .top_title .siz_l{
        font-size: 2.7vw;
    }

    .campaign_block .bg01{
        background-image: url("../images/campaign/webp/bg01.webp");
    }

    .campaign_block .top{
        padding: .5vw 0 0;
    }

    .campaign_block .main{
        margin: 0 auto;
    }

    .campaign_block .photo_block{
        margin: -9.0vw 0 0;
    }

    .campaign_block .photo_block .photo{
        margin: 0 auto;
    }

    .campaign_block .photo_block .photo_text{
        margin: -3.4vw auto 0;
        width: 76.2vw;
    }

    .campaign_block .bg02{
        margin: -6.7vw 0 0;
        padding: 11.0vw 0 13.5vw;
        background-image: url("../images/campaign/webp/bg02.webp");
    }

    .campaign_block .membership_block{
        margin: 0 auto;
    }

    .campaign_block .membership_block .membership{
        margin: 0 auto;
        width: 98%;
    }


    /* campaign_cv
       ================================================================== */
    .campaign_cv{
        margin: -7.5vw 0 0;
        padding: 0 0 8.0vw;
        position: relative;
        background-image: url("../images/campaign/webp/cv_bg.webp");
        background-repeat: no-repeat;
        background-position: center top;
        background-size: cover;
    }

    .campaign_cv .top_title{
        width: 48.0vw;
        height: 4.2vw;
        font-size: 2.1vw;
    }

    .campaign_cv .main{
        margin: -2.8vw auto 0;
        width: 100%;
    }

    .campaign_cv .btn{
        margin: -3.6vw auto 0;
        width: 100%;
    }


    /* wave_top
       ================================================================== */
    .wave_top{
        height: 14.6vw;
    }

     .wave_top .sp{
        display: none !important;
    }

     .wave_top .tab.pc{
        width: 100%;
        height: 100%;
        object-fit: 100%;
        display: block;
    }


    /* trouble
       ================================================================== */
    .trouble{
        background-image: url("../images/trouble/webp/bg.webp");
    }

    .trouble .title{
        margin: 0 auto;
        width: 84.2vw;
    }

    .trouble .text_box{
        margin: -6.0vw auto 0;
        padding: 4.0vw 1.0vw 2.0vw 46.5vw;
        min-height: 48.7vw;
        box-sizing: border-box;
        position: relative;
        overflow: hidden;
    }

    .trouble .text_box .ttl{
        width: 31.1vw;
        position: relative;
        z-index: 1;
    }

    .trouble .text_box .list{
        margin: 3.0vw 0 0;
        padding: 0 0 0 0;
        position: relative;
        z-index: 1;
    }

    .trouble .text_box .list > li{
        margin: 2.0vw 0 0;
        padding: 0 0 0 3.5vw;
        font-size: 2.4vw;
        background-position: 0 .9vw;
        background-size: 2.4vw;
    }

    .trouble .text_box .photo{
        margin: 0 0 0;
        position: absolute;
        top: 0;
        left: 0;
    }

    .trouble .bottom_text{
        margin: 1.0vw auto 0;
        width: 68.2vw;
    }

    .trouble .arrow{
        margin: 2.0vw auto -4.5vw;
        width: 30.0vw;
    }


    /* resolved
       ================================================================== */
    .resolved{
        margin: 0 0 0;
        padding: 6.0vw 0 14.0vw;
        background-image: url("../images/resolved/webp/photo.webp");
        background-repeat: no-repeat;
        background-position: center top;
        background-size: cover;
    }

    .resolved .title{
        margin: 0;
        width: 60.3vw;
    }

    .resolved .text{
        margin: -2.0vw 0 0 3.2vw;
        width: 56.0vw;
    }


    /* bg_aurora
       ================================================================== */
    .bg_aurora{
        background-image: url("../images/about/webp/bg.webp");
    }


    /* about
       ================================================================== */
    .about{
        margin: 0 0 0;
    }

    .about .top_box{
        padding: 0 0 0;
    }

    .about .top_box .inner{
        padding-bottom: 2.0vw;
        position: relative;
    }

    .about .title{
        margin: 0 0 0 5.0vw;
        width: 67.6vw;
    }

    .about .coach{
        margin: 0;
        position: absolute;
        top: 3.3vw;
        left: 17.2vw;
        width: 133.1vw;
    }

    /* bottom_box */
    .about .bottom_box{
        margin: 0 0 0;
    }

    .about .bottom_box .inner{
        padding-top: 4.3vw;
        padding-bottom: 8.0vw;
    }

    .about .bottom_box .name{
        font-size: 3.8vw;
    }

    .about .bottom_box .txt{
        margin: 1.0vw 0 0;
        font-size: 2.0vw;
        line-height: 3.0vw;
    }

    .about .bottom_box .catch{
        margin: 2.0vw auto 0;
        padding: .5vw 0;
        font-size: 2.0vw;
        line-height: 3.0vw;
        width: 58.8vw;
        box-sizing: border-box;
    }

    .about .bottom_box .ttl{
        left: 11.3vw;
        width: 4.8vw;
    }


    /* program
       ================================================================== */
    .program{
        margin: 0 0 0;
    }

    .program .inner{
        padding-top: 5.0vw;
    }

    .program .title{
        font-size: 16.6vw;
        top: -14.7vw;
    }

    .program .list{
        margin: 0 auto;
        font-size: 0;
    }

    .program .list > li{
        margin: 1.0vw 0 0;
        width: 49%;
        display: inline-block;
        vertical-align: top;
        box-sizing: border-box;
    }

    .program .list > li:nth-child(2n+2){
        margin-left: 2%;
    }

    .program .list > li:before{
        width: 43%;
    }

    .program .list li .text_box{
        padding: 4.0vw 0 0;
        width: 43%;
    }

    .program .list li .ttl{
        margin: 0 auto;
        width: 12.6vw;
    }

    .program .list li .txt{
        margin: 2.0vw 0 0;
        font-size: 1.6vw;
        line-height: 2.6vw;
    }

    .program .note{
        margin: 2.0vw 0 0;
        font-size: 1.6vw;
        line-height: 2.6vw;
    }


    /* point_block
       ================================================================== */
    .point_block{
        margin: 4.0vw 0 0;
        position: relative;
    }

    .point_block .inner{
        min-height: 65.1vw;
        position: relative;
    }

    .point_block .text_box{
        padding: 0 0 0 50%;
        position: relative;
        z-index: 1;
    }

    .point_block .title{
        margin: 0 0 0 3.4vw;
        width: 46.7vw;
    }

    .point_block .list{
        margin: 4.0vw 0 0;
    }

    .point_block .list > li{
        margin: 2.0vw 0 0;
    }

    .point_block .list .ttl{
        margin: 1.0vw 0 0;
        width: 8.2vw;
    }

    .point_block .list .ttl > span .txt{
        font-size: 1.6vw;
    }

    .point_block .list .ttl > span .num{
        margin-top: .5vw;
        font-size: 2.0vw;
    }

    .point_block .list p{
        padding: 0 0 0 2.0vw;
        width: calc(100% - 8.2vw);
        font-size: 1.8vw;
        line-height: 3.0vw;
    }

    .point_block .photo{
        margin: 0;
        width: 81.0vw;
        position: absolute;
        top: 0;
        right: 39.3vw;
    }


    /* machine
       ================================================================== */
    .machine{
        margin: 11.2vw 0 0;
        padding: 1px 0 0;
        background-size: 100vw;
    }

    .machine .inner{
        position: relative;
    }

    .machine .top_box{
        margin-top: -8.0vw;
    }

    .machine .top_box .title{
        margin: 0 auto;
        width: 67.6vw;
    }

    .machine .top_box .catch{
        margin: 3.5vw 0 0;
        font-size: 2.0vw;
    }

    .machine .top_box p{
        margin: 1.5vw 0 0;
        font-size: 1.6vw;
    }

    /* list_wrap */
    .machine .list_wrap{
        margin: 4.0vw 0 0;
        font-size: 0;
    }

    .machine .list_wrap > li{
        margin: 4.0vw 0 0;
    }

    .machine .list_ttl_box{
        padding: 0 0 0;
        display: flex;
    }

    .machine .list_ttl_box .list_ttl{
        width: 33.5vw;
        text-align: left;
    }

    .machine .list_ttl_box .list_ttl > span{
        padding: 1.5vw 1.5vw;
        font-size: 2.8vw;
    }

    .machine .list_ttl_box .list_ttl_right{
        padding: 0 0 0 2.5vw;
        width: calc(100% - 33.5vw);
        box-sizing: border-box;
    }

    .machine .list_ttl_box .list_text_ttl{
        font-size: 1.6vw;
    }

    .machine .list_ttl_box p{
        margin: 1.0vw 0 0;
        font-size: 1.6vw;
        line-height: 2.6vw;
    }

    .machine .list{
        margin: 2.0vw auto 0;
        width: 100%;
        font-size: 0;
    }

    .machine .list > li{
        margin: 2.0vw 1.899% 0 0;
        width: 32%;
        display: inline-block;
        vertical-align: top;
        box-sizing: border-box;
    }

    .machine .list > li:nth-child(3n+3){
        margin-right: 0;
    }

    .machine .list .ttl{
        padding: 1.5vw 0 0;
        font-size: 1.6vw;
    }


    /* price
       ================================================================== */
    .price{
        margin: 0 0 0;
        padding: 0 0 10.0vw;
    }

    .price .top_box{
        padding: 21.7vw 0 0;
        height: 50.0vw;
        box-sizing: border-box;
        background-image: url("../images/price/webp/main_bg.webp");
        background-repeat: no-repeat;
        background-position: center center;
        background-size: cover;
    }
    
    .price .top_box .title{
        margin: 0;
        width: 47.6vw;
    }

    /* bottom_box */
    .price .bottom_box{
        margin: -1.0vw 0 0;
    }

    .price .bottom_box .list{
        margin: 0 0 0;
    }

    .price .bottom_box .list > li + li{
        margin: 4.0vw 0 0;
    }

    .price .bottom_box .list .ttl{
        margin: 0;
    }

    .price .bottom_box .list .table{
        margin: 1.0vw auto 0;
    }


    /* staff
       ================================================================== */
    .staff{
        margin: 0 0 0;
        position: relative;
        background-image: url("../images/staff/webp/bg.webp");
        background-repeat: no-repeat;
        background-position: center center;
        background-size: cover;
    }

    .staff .inner{
        height: 54.0vw;
        position: relative;
    }

    .staff .title{
        width: 48.8vw;
        top: 0;
        left: 2.0vw;
    }


    /* information
       ================================================================== */
    .information{
        margin: 0 0 0;
        padding: 0 0 8.6vw;
    }

    .information .title{
        margin: 0 auto;
        width: 88.8vw;
    }

    /* information_bg */
    .information_bg{
        position: relative;
    }

    .information_bg > *{
        position: relative;
        z-index: 1;
    }

    .information_bg:before{
        width: 68.0vw;
        height: 30.0vw;
        top: 0;
        left: 48.3vw;
    }

    /* box_title */
    .information .box_title{
        left: 2.0vw;
        width: 16.1vw;
    }

    /* info_about */
    .information .info_about{
        margin: 6.0vw 0 0;
        padding: 0 0 0;
        display: flex;
    }

    .information .info_about .left{
        padding: 0;
        width: 54.5vw;
    }

    .information .info_about .site_logo{
        margin: 0 0 0 13.2vw;
        padding: 0 0 0;
        width: 30.6vw;
    }

    .information .info_about .right{
        padding: 0 0 0;
        width: calc(100% - 54.5vw);
        box-sizing: border-box;
    }

    .information .info_about .right .box + .box{
        margin: 4.0vw 0 0;
        padding: 4.0vw 0 0;
    }

    .information .info_about .right .ttl{
        font-size: 2.0vw;
    }

    .information .info_about .right .ttl_logo{
        width: 14.8vw;
    }

    .information .info_about .right p{
        margin: 1.6vw 0 0;
        font-size: 1.6vw;
        line-height: 3.2vw;
    }

    /* info_access */
    .information .info_access{
        margin: 15.0vw 0 0;
    }

    .info_access.information_bg:before{
        top: -12.4vw;
        left: -14.0vw;
    }

    .information .info_access .flex{
        margin: 0 0 0 7.2vw;
        display: flex;
    }

    .information .info_access .list{
        margin: 0 0 0;
        width: 48.0vw;
    }

    .information .info_access .list + .list{
        margin: 0 0 0 2.0vw;
        width: 42.8vw;
    }

    .information .info_access .list > li{
        padding: 2.0vw 0;
        display: flex;
    }

    .information .info_access .flex .list > li:first-child{
        padding-top: 0;
    }

    .information .info_access .list .list_ttl,
    .information .info_access .list p{
        font-size: 1.5vw;
        line-height: 2.6vw
    }

    .information .info_access .list .list_ttl{
        width: 9.0vw;
    }

    .information .info_access .list p{
        margin: 0 0 0;
        padding: 0 0 0 1.3vw;
        width: calc(100% - 9.0vw);
        box-sizing: border-box;
    }

    .information .info_access .map{
        margin: 2.0vw 0 0;
    }

    .map.information_bg:before{
        top: 21.5vw ;
    }

    .information .info_access .map iframe{
        height: 43.0vw;
    }


    /* faq
       ================================================================== */
    .faq{
        margin: 9.0vw 0 0;
        padding: 1px 0 7.6vw;
    }

    .faq .title{
        margin: -8.3vw auto 0;
        width: 36.6vw;
    }

    .faq .list{
        margin: 2.6vw 0 0;
    }

    .faq .list > li{
        margin: 2.0vw 0 0;
    }

    .faq .list .question{
        padding: 2.0vw 0 1.9vw 11.5vw;
    }

    .faq .list .question > span{
        padding: 0 0 0 6.5vw;
        font-size: 2.8vw;
        line-height: 4.2vw;
    }

    .faq .list .question > span:before{
        background-size: 2.6vw;
        width: 4.4vw;
        height: 4.4vw;
        top: .5vw;
        left: .5vw;
    }

    .faq .list .answer{
        margin: -1.0vw 0 0;
        padding: 3.5vw 0 2.5vw 11.5vw;
    }

    .faq .list .answer > p{
        padding: 0 0 0 6.5vw;
        font-size: 1.6vw;
        line-height: 3.2vw;
    }

    .faq .list .answer > p:before{
        width: 4.4vw;
        height: 4.4vw;
        top: -.7vw;
    }

    .faq .note{
        margin: 2.0vw 0 0;
        font-size: 1.6vw;
        text-align: right;
    }

    
}
@media screen and (min-width : 1040px){


    /* kv
       ================================================================== */
    .kv{
        position: relative;
    }

    .kv .inner{
        padding: 0 0 25px;
        max-width: 2500px;
        position: relative;
    }

    .kv .main{
        line-height: 0;
    }

    .kv .bottom{
        margin:0 auto;
        width: 73%;
        position: absolute;
        bottom: 154px;
        left: 0;
        right: 0;
    }

    .kv .kv_access{
        display: block;
        position: absolute;
        top: 180px;
        right: 0;
        width: 52px;
    }
    

    /* campaign_block
       ================================================================== */
    .campaign_block{
        margin: 0 0 0;
    }

    .campaign_block .top_title{
        top: -28px;
        width: 550px;
        height: 56px;
        font-size: 26px;
    }

    .campaign_block .top_title .siz_l{
        font-size: 27px;
    }

    .campaign_block .bg01{
        background-image: url("../images/campaign/webp/bg01.webp");
    }

    .campaign_block .top{
        padding: 5px 0 0;
    }

    .campaign_block .main{
        margin: 0 auto;
        width: 1000px;
    }

    .campaign_block .photo_block{
        margin: -90px 40px 0;
    }

    .campaign_block .photo_block .photo{
        margin: 0 auto;
        max-width: 2500px;
    }

    .campaign_block .photo_block .photo_text{
        margin: -34px auto 0;
        width: 762px;
    }

    .campaign_block .bg02{
        margin: -67px 0 0;
        padding: 110px 0 135px;
        background-image: url("../images/campaign/webp/bg02.webp");
    }

    .campaign_block .membership_block{
        margin: 0 auto;
    }

    .campaign_block .membership_block .membership{
        margin: 0 auto;
        width: 984px;
    }


    /* campaign_cv
       ================================================================== */
    .campaign_cv{
        margin: -75px 0 0;
        padding: 0 0 80px;
        position: relative;
        background-image: url("../images/campaign/webp/cv_bg.webp");
        background-repeat: no-repeat;
        background-position: center top;
        background-size: cover;
    }

    .campaign_cv .top_title{
        width: 480px;
        height: 42px;
        font-size: 21px;
    }

    .campaign_cv .main{
        margin: -28px auto 0;
        width: 1000px;
    }

    .campaign_cv .btn{
        margin: -36px auto 0;
        width: 1000px;
    }


    /* wave_top
       ================================================================== */
     .wave_top{
        height: 146px;
    }


    /* trouble
       ================================================================== */
    .trouble{
        background-image: url("../images/trouble/webp/bg.webp");
    }

    .trouble .title{
        margin: 0 auto;
        width: 842px;
    }

    .trouble .text_box{
        margin: -60px auto 0;
        padding: 40px 10px 20px 465px;
        min-height: 507px;
        box-sizing: border-box;
        position: relative;
        overflow: hidden;
    }

    .trouble .text_box .ttl{
        width: 311px;
        position: relative;
        z-index: 1;
    }

    .trouble .text_box .list{
        margin: 30px 0 0;
        padding: 0 0 0 0;
        position: relative;
        z-index: 1;
    }

    .trouble .text_box .list > li{
        margin: 20px 0 0;
        padding: 0 0 0 35px;
        font-size: 28px;
        background-position: 0 12px;
        background-size: 26px;
    }

    .trouble .text_box .photo{
        margin: 0 0 0;
        position: absolute;
        top: 0;
        left: 0;
    }

    .trouble .bottom_text{
        margin: 10px auto 0;
        width: 682px;
    }

    .trouble .arrow{
        margin: 20px auto -45px;
        width: 300px;
    }


    /* resolved
       ================================================================== */
    .resolved{
        margin: 0 0 0;
        padding: 60px 0 140px;
        background-image: url("../images/resolved/webp/photo.webp");
        background-repeat: no-repeat;
        background-position: center top;
        background-size: cover;
    }

    .resolved .title{
        margin: 0;
        width: 633px;
    }

    .resolved .text{
        margin: -20px 0 0 32px;
        width: 560px;
    }


    /* bg_aurora
       ================================================================== */
    .bg_aurora{
        background-image: url("../images/about/webp/bg.webp");
        background-position: center bottom;
        background-size: 100% 100%;
    }


    /* about
       ================================================================== */
    .about{
        margin: 0 0 0;
    }

    .about .top_box{
        padding: 0 0 0;
    }

    .about .top_box .inner{
        padding-bottom: 20px;
        position: relative;
    }

    .about .title{
        margin: 0 auto;
        width: 676px;
    }

    .about .coach{
        margin: 0;
        position: absolute;
        top: 33px;
        left: 282px;
        width: 1331px;
    }

    /* bottom_box */
    .about .bottom_box{
        margin: 0 0 0;
    }

    .about .bottom_box .inner{
        padding-top: 43px;
        padding-bottom: 80px;
    }

    .about .bottom_box .name{
        font-size: 38px;
    }

    .about .bottom_box .txt{
        margin: 10px 0 0;
        font-size: 20px;
        line-height: 30px;
    }

    .about .bottom_box .catch{
        margin: 20px auto 0;
        padding: 5px 0;
        font-size: 20px;
        line-height: 30px;
        width: 588px;
        box-sizing: border-box;
    }

    .about .bottom_box .ttl{
        left: 113px;
        width: 48px;
    }


    /* program
       ================================================================== */
    .program{
        margin: 0 0 0;
    }

    .program .inner{
        padding-top: 50px;
    }

    .program .title{
        font-size: 166px;
        top: -147px;
    }

    .program .list{
        margin: 0 auto;
        font-size: 0;
    }

    .program .list > li{
        margin: 10px 0 0;
        width: 49%;
        display: inline-block;
        vertical-align: top;
        box-sizing: border-box;
    }

    .program .list > li:nth-child(2n+2){
        margin-left: 2%;
    }

    .program .list li .text_box{
        padding: 40px 0 0;
    }

    .program .list li .ttl{
        margin: 0 auto;
        width: 126px;
    }

    .program .list li .txt{
        margin: 20px 0 0;
        font-size: 16px;
        line-height: 26px;
    }

    .program .note{
        margin: 20px 0 0;
        font-size: 16px;
        line-height: 26px;
    }


    /* point_block
       ================================================================== */
    .point_block{
        margin: 40px 0 0;
        position: relative;
    }

    .point_block .inner{
        min-height: 651px;
        position: relative;
    }

    .point_block .text_box{
        padding: 0 0 0 50%;
        position: relative;
        z-index: 1;
    }

    .point_block .title{
        margin: 0 0 0 34px;
        width: 467px;
    }

    .point_block .list{
        margin: 40px 0 0;
    }

    .point_block .list > li{
        margin: 20px 0 0;
    }

    .point_block .list .ttl{
        margin: 10px 0 0;
        width: 82px;
    }

    .point_block .list .ttl > span .txt{
        font-size: 16px;
    }

    .point_block .list .ttl > span .num{
        margin-top: 5px;
        font-size: 20px;
    }

    .point_block .list p{
        padding: 0 0 0 20px;
        width: calc(100% - 82px);
        font-size: 20px;
        line-height: 30px;
    }

    .point_block .photo{
        margin: 0;
        width: 810px;
        position: absolute;
        top: 0;
        right: 393px;
    }


    /* machine
       ================================================================== */
    .machine{
        margin: 112px 0 0;
        padding: 1px 0 0;
        background-size: 100vw;
    }

    .machine .inner{
        position: relative;
    }

    .machine .top_box{
        margin-top: -80px;
    }

    .machine .top_box .title{
        margin: 0 auto;
        width: 676px;
    }

    .machine .top_box .catch{
        margin: 35px 0 0;
        font-size: 20px;
    }

    .machine .top_box p{
        margin: 15px 0 0;
        font-size: 16px;
    }

    /* list_wrap */
    .machine .list_wrap{
        margin: 40px 0 0;
        font-size: 0;
    }

    .machine .list_wrap > li{
        margin: 40px 0 0;
    }

    .machine .list_ttl_box{
        padding: 0 0 0;
        display: flex;
    }

    .machine .list_ttl_box .list_ttl{
        width: 335px;
        text-align: left;
    }

    .machine .list_ttl_box .list_ttl > span{
        padding: 15px 15px;
        font-size: 28px;
    }

    .machine .list_ttl_box .list_ttl_right{
        padding: 0 0 0 25px;
        width: calc(100% - 335px);
        box-sizing: border-box;
    }

    .machine .list_ttl_box .list_text_ttl{
        font-size: 16px;
    }

    .machine .list_ttl_box p{
        margin: 10px 0 0;
        font-size: 16px;
        line-height: 26px;
    }

    .machine .list{
        margin: 20px auto 0;
        width: 100%;
        font-size: 0;
    }

    .machine .list > li{
        margin: 20px 1.899% 0 0;
        width: 32%;
        display: inline-block;
        vertical-align: top;
        box-sizing: border-box;
    }

    .machine .list > li:nth-child(3n+3){
        margin-right: 0;
    }

    .machine .list .ttl{
        padding: 15px 0 0;
        font-size: 16px;
    }


    /* price
       ================================================================== */
    .price{
        margin: 0 0 0;
        padding: 0 0 100px;
    }

    .price .top_box{
        padding: 217px 0 0;
        height: 500px;
        box-sizing: border-box;
        background-image: url("../images/price/webp/main_bg.webp");
        background-repeat: no-repeat;
        background-position: center center;
        background-size: cover;
    }
    
    .price .top_box .title{
        margin: 0;
        width: 476px;
    }

    /* bottom_box */
    .price .bottom_box{
        margin: -10px 0 0;
    }

    .price .bottom_box .list{
        margin: 0 0 0;
    }

    .price .bottom_box .list > li + li{
        margin: 40px 0 0;
    }

    .price .bottom_box .list .ttl{
        margin: 0;
    }

    .price .bottom_box .list .table{
        margin: 10px auto 0;
    }


    /* staff
       ================================================================== */
    .staff{
        margin: 0 0 0;
        position: relative;
        background-image: url("../images/staff/webp/bg.webp");
        background-repeat: no-repeat;
        background-position: center center;
        background-size: cover;
    }

    .staff .inner{
        height: 540px;
        position: relative;
    }

    .staff .title{
        width: 488px;
        top: 0;
        left: 20px;
    }


    /* information
       ================================================================== */
    .information{
        margin: 0 0 0;
        padding: 0 0 86px;
    }

    .information .title{
        margin: 0 auto;
        width: 888px;
    }

    /* information_bg */
    .information_bg{
        position: relative;
    }

    .information_bg > *{
        position: relative;
        z-index: 1;
    }

    .information_bg:before{
        width: 680px;
        height: 300px;
        top: 0;
        left: 483px;
    }

    /* box_title */
    .information .box_title{
        left: 20px;
        width: 161px;
    }

    /* info_about */
    .information .info_about{
        margin: 60px 0 0;
        padding: 0 0 0;
        display: flex;
    }

    .information .info_about .left{
        padding: 0;
        width: 545px;
    }

    .information .info_about .site_logo{
        margin: 0 0 0 132px;
        padding: 0 0 0;
        width: 306px;
    }

    .information .info_about .right{
        padding: 0 0 0;
        width: calc(100% - 545px);
        box-sizing: border-box;
    }

    .information .info_about .right .box + .box{
        margin: 40px 0 0;
        padding: 40px 0 0;
    }

    .information .info_about .right .ttl{
        font-size: 20px;
    }

    .information .info_about .right .ttl_logo{
        width: 148px;
    }

    .information .info_about .right p{
        margin: 16px 0 0;
        font-size: 16px;
        line-height: 32px;
    }

    /* info_access */
    .information .info_access{
        margin: 150px 0 0;
    }

    .info_access.information_bg:before{
        top: -124px;
        left: -140px;
    }

    .information .info_access .flex{
        margin: 0 0 0 72px;
        display: flex;
    }

    .information .info_access .list{
        margin: 0 0 0;
        width: 480px;
    }

    .information .info_access .list + .list{
        margin: 0 0 0 20px;
        width: 428px;
    }

    .information .info_access .list > li{
        padding: 20px 0;
        display: flex;
    }

    .information .info_access .flex .list > li:first-child{
        padding-top: 0;
    }

    .information .info_access .list .list_ttl,
    .information .info_access .list p{
        font-size: 15px;
        line-height: 26px
    }

    .information .info_access .list .list_ttl{
        width: 90px;
    }

    .information .info_access .list p{
        margin: 0 0 0;
        padding: 0 0 0 13px;
        width: calc(100% - 90px);
        box-sizing: border-box;
    }

    .information .info_access .map{
        margin: 20px 0 0;
    }

    .map.information_bg:before{
        top: 215px ;
    }

    .information .info_access .map iframe{
        height: 430px;
    }


    /* faq
       ================================================================== */
    .faq{
        margin: 90px 0 0;
        padding: 1px 0 76px;
    }

    .faq .title{
        margin: -83px auto 0;
        width: 366px;
    }

    .faq .list{
        margin: 26px 0 0;
    }

    .faq .list > li{
        margin: 20px 0 0;
    }

    .faq .list .question{
        padding: 20px 0 19px 115px;
    }

    .faq .list .question > span{
        padding: 0 0 0 65px;
        font-size: 28px;
        line-height: 42px;
    }

    .faq .list .question > span:before{
        background-size: 26px;
        width: 44px;
        height: 44px;
        top: 5px;
        left: 5px;
    }

    .faq .list .answer{
        margin: -10px 0 0;
        padding: 35px 0 25px 115px;
    }

    .faq .list .answer > p{
        padding: 0 0 0 65px;
        font-size: 16px;
        line-height: 32px;
    }

    .faq .list .answer > p:before{
        width: 44px;
        height: 44px;
        top: -7px;
    }

    .faq .note{
        margin: 20px 0 0;
        font-size: 16px;
        text-align: right;
    }
    

}
@media screen and (min-width : 2000px){
    
    /* price
       ================================================================== */
    .price .top_box{
        padding: 417px 0 0;
        height: 800px;
        background-position: center center;
    }
    
}
