@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@300;500;700;900&display=swap');

/* ------------------------------------------- CSS Information 
 Style Info:     ブラウザスタイルのリセット設定
----------------------------------------------------------- */  
html{overflow-y:scroll;} 
body,div,blockquote,pre,h1,h2,h3,h4,h5,h6,dl,dt,dd,ul,ol,li,table,th,td,form,input,textarea,fieldset{margin:0;padding:0;}
h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}
table{border-collapse:collapse;border-spacing:0;}
caption,th{text-align:left;}   
img,abbr,acronym,fieldset{border:none;}
address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;}
hr,legend{display:none;}
object,embed{vertical-align:top;}
li{list-style:none;}

/* ------------------------------------------- CSS Information 
 Style Info:     基本設定
----------------------------------------------------------- */
/*A Style*/  
a{text-decoration:underline;color:#666666;}
a:hover{text-decoration:underline;color:#999999;}

/*font*/
.b{font-weight:bold;}
.ul{background:linear-gradient(transparent 70%, #fff799 0%)}
.bg{background-color:#f9e427;}
.big{font-size:22px;line-height:36px;}@media only screen and (max-width:750px){.big{font-size:16px;line-height:24px;}}
.small{font-size:14px;line-height:20px;}
.red{color:#c9171e;}
.text_center{text-align:center !important;}
.text_right{text-align:right;}
.pc{display:block;}
.sp{display:none;}
@media only screen and (max-width:750px){
.pc{display:none;}
.sp{display:block;}
}

/* ----------------------- CSS Information 
 Style Info: HTML/BODY
--------------------------------------- */
html,body{  
font-family:'Noto Sans JP',"メイリオ","ヒラギノ角ゴ Pro W3",Sans-Serif;
color:#333333;
font-size:18px;
line-height:0;
text-align:center;
letter-spacing:0em;
background:#ffffff;
width:100%;
height:100%;
}

/* ----------------------- CSS Information 
 Style Info: MAIN_VISUAL
--------------------------------------- */
.mv{
position:relative;
width:100%;
margin:0;
padding:0;
background:#31004a url(../img/bg_mv.png) no-repeat center top;
background-size:auto 100%;
box-sizing:border-box;
}
.mv:after{
content:"";
display:block;
width:100%;
height:60px;
position:absolute;
bottom:0;
left:0;
background:url(../img/bg_mv_bottom.png) repeat-x center bottom;
background-size:auto 100%;
}
.mv_wrapper{
width:100%;
max-width:1000px;
margin:0 auto;
padding:0;
}
.mv_box{
position:relative;
width:100%;
max-width:750px;
margin:0 auto;
padding:0;
}
.logo{
display:block;
width:100%;
max-width:750px;
margin:0 auto;
padding:0;
}
.mv_img{
display:block;
width:150px;
margin:0 auto;
}
/*header*/
.header_text{
width:100%;
max-width:750px;
margin:0 auto;
padding:0;
}
@media only screen and (max-width:750px){
.mv{}
.mv:after{height:30px;}
.mv_wrapper{}
.mv_box{}
.logo{}
.mv_img{width:25%;}
/*header*/
.header_text{}
}

/* ----------------------- CSS Information 
 Style Info: CTA
--------------------------------------- */
.cta{
position:relative;
width:100%;
margin:0;
padding:40px 0 80px 0;
color:#ffffff;
background:#000000;
}
.cta_wrapper{
width:100%;
max-width:750px;
margin:0 auto;
box-sizing:border-box;
}
.cta_box{
width:100%;
margin:0 auto;
padding:0 4%;
box-sizing:border-box;
}
.price_img{
width:100%;
max-width:750px;
margin:0 auto;
padding:0;
}
.cta_dl{
width:100%;
margin:40px auto 20px auto;
padding:0;
text-align:center
}
.cta_dl dt{
display:flex;
align-items:center;
justify-content:center;
margin:0 auto 10px auto;
font-size:16px;
line-height:30px;
color:#ffffff;
font-weight:500;
}
.cta_dl dt:before,.cta_dl dt:after{
content:"";
height:1px;
background:#ffffff;
flex:1;
}
.cta_dl dt:before{margin-right:10px;}
.cta_dl dt:after{margin-left:10px;}
.cta_dl dd{
margin:0;
padding:0;
font-size:16px;
line-height:30px;
}
.payment_img{
display:block;
width:auto;
height:40px;
margin:10px auto 0 auto;
}
.btn_cta{
position:relative;
width:100%;
max-width:600px;
margin:0 auto;
padding:0;
box-sizing:border-box;
}
.btn_cta a{
position:relative;
display:block;
width:100%;
max-width:600px;
padding:0;
background:#ffffff;
overflow:hidden;
border-radius:8px;
box-shadow:2px 2px 4px 0px rgba(0,0,0,0.5);
box-sizing:border-box;
}
.btn_cta a img{width:100%;}
.btn_cta a img:hover{opacity:0.5;}
@media only screen and (max-width:750px){
.cta{padding:20px 0 0 0;}
.cta_wrapper{}
.cta_box{}
.price_img{}
.cta_dl{margin:20px auto 20px auto;}
.cta_dl dt{margin:0;font-size:14px;line-height:24px;}
.cta_dl dt:before,.cta_dl dt:after{}
.cta_dl dt:before{margin-right:5px;}
.cta_dl dt:after{margin-left:5px;}
.cta_dl dd{font-size:14px;line-height:24px;text-align:justify;}
.cta_dl dd br{display:none;}
.payment_img{width:100%;max-width:690px;height:auto;}
.btn_cta{margin:0 auto 40px auto;}
.btn_cta a{}
.btn_cta a img{}
}

/* ----------------------- CSS Information 
 Style Info: PRESENT
--------------------------------------- */
.present{
position:relative;
width:100%;
max-width:1000px;
margin:0 auto;
padding:40px 0 0 0;
}
.present_img{
width:92%;
max-width:920px;
margin:0 auto;
padding:0 4%;
}

@media only screen and (max-width:750px){
.present{padding:20px 0 0 0;}
.present_img{width:100%;max-width:750px;padding:0;}
}

/* ----------------------- CSS Information 
 Style Info: 共通設定
--------------------------------------- */
.section{
position:relative;
width:100%;
margin:0;
padding:120px 0 120px 0;
background:#ffffff;
}
.section_wrapper{
width:100%;
max-width:750px;
margin:0 auto;
box-sizing:border-box;
}
.section_box{
width:100%;
margin:0 auto;
padding:0 4%;
box-sizing:border-box;
}

@media only screen and (max-width:750px){
.section{padding:40px 0 40px 0;}
.section_wrapper{}
.section_box{}
}

/* ----------------------- CSS Information 
 Style Info: TITLE
--------------------------------------- */
.title{
position:relative;
display:block;
width:100%;
margin:0 auto 80px auto;
padding:60px 0;
color:#ffffff;
z-index:100;
border-top:1px solid #ffffff;
border-bottom:1px solid #ffffff;
}
.title_img{
display:block;
width:100%;
max-width:690px;
margin:0 auto;
padding:0;
}
.title_overview{
position:relative;
display:block;
width:100%;
margin:0 auto 80px auto;
padding:0;
z-index:100;
}
.title_en{
display:flex;
justify-content:flex-start;
align-items:center;
margin:0 0 40px 0;
padding:0;
}
.title_en img{
display:block;
width:auto;
height:30px;
margin:0;
padding:0;
}
.title_en:before,.title_en:after{
content:"";
margin:0;
flex:1;
height:2px;
}
.title_en:before{margin:0 15px 0 0;background:linear-gradient(to right,#9760af,#a870b4);}
.title_en:after{margin:0 0 0 15px;background:linear-gradient(to right,#a870b4,#9760af);}
@media only screen and (max-width:750px){
.title{margin:0 auto 30px auto;padding:30px 0;}
.title_img{}
.title_overview{margin:0 auto 30px auto;}
.title_en{margin:0 0 20px 0;}
.title_en img{height:16px;}
.title_en:before,.title_en:after{}
.title_en:before{margin:0 10px 0 0;}
.title_en:after{margin:0 0 0 10px;}
}

/* -- text -- */
.text{
position:relative;
width:100%;
margin:0 auto;
padding:0;
font-size:18px;
line-height:40px;
text-align:left;
box-sizing:border-box;
z-index:100;
}
.text p{margin:0 0 30px 0;padding:0;}
.text p:last-child{margin:0;}
.text ul{margin:0 0 30px 0;padding:0;}
@media only screen and (max-width:750px){
.text{
font-size:14px;
line-height:24px;
text-align:justify;
}
.text p{margin:0 0 20px 0;}
.text p:last-child{margin:0;}
.text ul{margin:0 0 20px 0;padding:0;}
/* -- br -- */
.text br{display:none;}
.text br.sp{display:block;}
.text br.all{display:block;}
}

/* ----------------------- CSS Information 
 Style Info: SECTION01
--------------------------------------- */
#section01{
padding:540px 0 120px 0;
background:#000000 url(../img/bg_01.png) no-repeat center top;
}
#section01 .text{color:#ffffff;text-align:center;}
@media only screen and (max-width:750px){
#section01{
padding:72vw 0 40px 0;
background:#000000 url(../img/bg_01_sp.png) no-repeat center top;
background-size:100% auto;
}
#section01 .text{text-align:justify;}
}

/* ----------------------- CSS Information 
 Style Info: SECTION02
--------------------------------------- */
#section02{
padding:120px 0 120px 0;
position:relative;
background-color:#000000;
background-image:url(../img/bg_02a.png),url(../img/bg_02b.png);
background-repeat:no-repeat,no-repeat;
background-position:center,center;
}
#section02:before{
content:"";
position:absolute;
top:0;
display:block;
width:100%;
height:240px;
background:linear-gradient(to bottom,rgba(0,0,0,1),rgba(0,0,0,0));
z-index:10;
}
#section02:after{
content:"";
position:absolute;
bottom:0;
display:block;
width:100%;
height:240px;
background:linear-gradient(to bottom,rgba(0,0,0,0),rgba(0,0,0,1));
z-index:10;
}
#section02 .text{color:#ffffff;text-align:center;}
@media only screen and (max-width:750px){
#section02{padding:40px 0 40px 0;background-size:cover,cover;}
#section02:before{height:80px;}
#section02:after{height:80px;}
#section02 .text{text-align:justify;}
}

/* ----------------------- CSS Information 
 Style Info: SECTION03
--------------------------------------- */
#section03{
padding:120px 0 120px 0;
position:relative;
background-image:url(../img/bg_03.png),url(../img/bg_03_color.png);
background-repeat:no-repeat,repeat-x;
background-position:center,center top;
background-size:auto 100%,auto 100%;
}
#section03:before{
content:"";
position:absolute;
top:0;
display:block;
width:100%;
height:480px;
background:linear-gradient(to bottom,rgba(0,0,0,1),rgba(0,0,0,0));
z-index:10;
}
#section03:after{
content:"";
position:absolute;
bottom:0;
display:block;
width:100%;
height:240px;
background:linear-gradient(to bottom,rgba(253,243,231,0),rgba(253,243,231,1));
z-index:10;
}
ul.section03_list{
display:block;
width:100%;
max-width:690px;
margin:0 auto;
padding:0;
}
ul.section03_list li{
position:relative;
display:block;
font-family:'Noto Serif JP',"メイリオ","ヒラギノ角ゴ Pro W3",Sans-Serif;
width:100%;
margin:0 0 20px 0;
padding:20px 0;
font-size:18px;
line-height:30px;
text-align:center;
font-weight:500;
color:#c888b5;
background:rgba(255,255,255,0.8);
border-radius:35px;
box-shadow:0 0 10px 0px rgba(255,255,255,0.5);
box-sizing:border-box;
}
@media only screen and (max-width:750px){
#section03{padding:60px 0 60px 0;}
ul.section03_list{}
ul.section03_list li{margin:0 0 10px 0;padding:15px 10px;font-size:14px;line-height:24px;}
}

/* ----------------------- CSS Information 
 Style Info: SECTION04
--------------------------------------- */
#section04{background:#fdf3e7;}
#section04 .section_wrapper{max-width:1000px;}
@media only screen and (max-width:750px){}

/* ----------------------- CSS Information 
 Style Info: SECTION05
--------------------------------------- */
#section05{background:#fdf3e7;}
#section05 .section_wrapper{max-width:1000px;}
.sc_box{
width:100%;
max-width:690px;
margin-top:0;
margin-bottom:60px;
padding:20px;
background:#ffffff;
border-radius:10px;
box-sizing:border-box;
}
.sc_box:nth-child(odd){
margin-left:auto;
margin-right:0;
}
.sc_box:nth-child(even){
margin-left:0;
margin-right:auto;
}
.sc_box:last-child{margin-bottom:0;}
.schedule{
display:flex;
flex-direction:row;
flex-wrap:nowrap;
justify-content:flex-start;
align-items:center;
}
.chapter{
display:block;
width:100px;
height:100px;
margin:0 10px 0 0;
padding:0;
font-size:16px;
line-height:100px;
text-align:center;
color:#ffffff;
background:url(../img/octagon.png) no-repeat left top;
background-size:100% 100%;
}
.s_text{
display:block;
flex:1;
margin:0 auto;
padding:0;
text-align:left;
font-size:22px;
line-height:35px;
font-weight:700;
color:#c888b5;
} 
.s_text span.day{
display:block;
margin:0 0 10px 0;
font-size:16px;
line-height:20px;
color:#9760af;
}
.s_text p{margin:0;padding:0;} 
.curriculum{
display:flex;
flex-direction:row-reverse;
margin:25px 0 0 0;
}
.c_text{
flex:1;
padding:0 20px 0 0;
font-size:18px;
line-height:30px;
text-align:justify;
}
.c_text p{margin:0;padding:0;}
.c_text p br{display:none;}
.c_img{
display:block;
width:180px;
}
.c_img .pc{
display:block;
width:100%;
border-radius:8px;
overflow:hidden;
}
@media only screen and (max-width:750px){
#section05{}
#section05 .section_wrapper{}
.sc_box{margin-bottom:40px;padding:20px 4% 40px 4%;}
.sc_box:nth-child(odd){margin-left:0;}
.sc_box:nth-child(even){margin-right:0;}
.sc_box:last-child{margin-bottom:0;}
.schedule{flex-direction:column;align-items:flex-start;}
.chapter{width:70px;height:70px;margin:0 auto 10px auto;font-size:13px;line-height:70px;}
.s_text{text-align:center;font-size:17px;line-height:30px;} 
.s_text span.day{margin:0 0 10px 0;font-size:14px;line-height:20px;}
.s_text p{margin:0;padding:0;} 
.curriculum{flex-direction:column;align-items:flex-start;margin:20px 0 0 0;}
.c_text{padding:0;font-size:14px;line-height:24px;}
.c_text p{margin:0;padding:0;}
.c_text p br{display:none;}
.c_img{width:100%;}
.c_img .pc{display:none;}
.c_img .sp{
display:block;
width:100%;
margin:0 0 20px 0;
border-radius:8px;
overflow:hidden;
}
}

/* ----------------------- CSS Information 
 Style Info: SECTION06
--------------------------------------- */
#section06{background:#fdf3e7;}
#section06 .section_wrapper{max-width:1000px;}
.step{
margin:90px 0 0 0;
}
.step_box{
position:relative;
border-top:1px solid #c888b5;
padding:30px 0 30px 80px;
margin:0 0 18px 20px;
}
.step_box:before{
content:"";
display:block;
position:absolute;
bottom:0;
left:20px;
border-style:solid;
border-width:18px 10px 0 10px;
border-color:#c888b5 transparent transparent transparent;
}
.step_box:after{
content:"";
display:block;
position:absolute;
top:20px;
left:29px;
height:calc(100% - 40px);
border-left:dashed 2px #c888b5;
}
.step_num{
position:absolute;
top:-20px;
left:-20px;
width:100px;
height:40px;
padding:0;
color:#ffffff;
font-size:16px;
line-height:40px;
font-weight:700;
text-align:center;
background:#9760af;
border-radius:20px;
z-index:1;
}
.step_text{
font-size:17px;
line-height:36px;
}
.step_wrapper > :last-child:before, .step_wrapper > :last-of-type:after{display:none;}
@media only screen and (max-width:750px){
.step{margin:40px 0 0 0;}
.step_box{margin:0 0 15px 15px;padding:20px 0 20px 45px;}
.step_box:before{left:9px;border-width:10px 6px 0 6px;}
.step_box:after{top:5px;left:14px;height:calc(100% - 10px);}
.step_num{top:-15px;left:-15px;width:60px;height:30px;font-size:13px;line-height:30px;border-radius:15px;}
.step_text{font-size:14px;line-height:24px;}
.step_wrapper > :last-child:before, .step_wrapper > :last-of-type:after{}
}

/* ----------------------- CSS Information 
 Style Info: MESSAGE
--------------------------------------- */
#message{
background-image:url(../img/bg_08.png),linear-gradient(to right,#dfeafe 50%,#ffe7e9 50%);
background-repeat:no-repeat,no-repeat;
background-position:center top,center;
background-size:auto 100%,auto 100%;
}
#message .section_wrapper{max-width:1000px;}

.message_box{
padding:60px 4%;
background:rgba(255,255,255,0.75);
box-sizing:border-box;
}
.message_box .text{
font-family:'Noto Serif JP',"メイリオ","ヒラギノ角ゴ Pro W3",Serif;
line-height:40px;
background:url(../img/letter_pc.png) repeat top left;
}
.message_box .text p,.message_box .text ul{margin:0 0 40px 0;}
.sign{
display:block;
width:auto;
height:50px;
margin:0 0 0 auto;
padding:0;
}
@media only screen and (max-width:750px){
.message_box{padding:40px 4%;}
.message_box .text{line-height:30px;background:url(../img/letter_sp.png) repeat top left;}
.message_box .text p,.message_box .text ul{margin:0 0 30px 0;}
.sign{height:26px;}
}

/* ----------------------- CSS Information 
 Style Info: FAQ
--------------------------------------- */
#faq{background:#fdf3e7;}
#faq .section_wrapper{max-width:1000px;}
#faq input[type=checkbox]{display:none;}
#faq label{
position:relative;
display:block;
width:100%;
max-width:920px;
margin:0 auto;
padding:20px 40px 20px 70px;
font-size:16px;
line-height:30px;
text-align:justify;
color:#333333;
border-radius:10px;
cursor:pointer;
text-transform:uppercase;
box-sizing:border-box;
background-color:#f9f9f9;
background-image:url(../img/faq_q.png);
background-size:30px 30px;
background-repeat:no-repeat;
background-position:20px 20px;
text-transform:none;
}
#faq label:after{
content:"＋";
position:absolute;
display:block;
top:50%;
margin-top:-10px;
right:10px;
width:20px;
height:20px;
font-size:18px;
line-height:19px;
color:#6864c2;
}
#faq input[type=checkbox]:checked + label:after{content:"－";}
#faq label:hover{background-color:#ffffff;}
#faq input[type=checkbox]:checked + label{background-color:#f9f9f9;border-radius:10px 10px 0 0;}
.faq_answer{
position:relative;
margin:0 auto 30px auto;
padding:0 20px 0 70px;
width:100%;
max-width:920px;
height:0;
font-size:16px;
line-height:30px;
text-align:justify;
transition:1s;
box-sizing:border-box;
background-color:#ffffff;
background-image:url(../img/faq_a.png);
background-size:30px 30px;
background-repeat:no-repeat;
background-position:20px 20px;
border-radius:0 0 10px 10px;
overflow:hidden;
opacity:0;
}
.faq_answer p{margin:0;padding:0;}
.faq_answer:last-child{margin:0 auto 0 auto;}
#faq input[type=checkbox]:checked + label + .faq_answer{
padding:20px 20px 20px 70px;
height:auto;
opacity:1;
}
@media only screen and (max-width:750px){
#faq{}
#faq label{
padding:10px 26px 10px 40px;
font-size:14px;
line-height:20px;
border-radius:6px;
background-size:20px 20px;
background-position:10px 10px;
}
#faq label:after{
margin-top:-8px;
right:5px;
width:16px;
height:16px;
font-size:16px;
line-height:16px;
}
#faq input[type=checkbox]:checked + label:after{}
#faq input[type=checkbox]:checked + label{border-radius:6px 6px 0 0;}
.faq_answer{
margin:0 auto 15px auto;
padding:0 10px 0 40px;
font-size:14px;
line-height:24px;
background-size:20px 20px;
background-position:10px 10px;
border-radius:0 0 6px 6px;
}
.faq_answer br{display:none;}
#faq input[type=checkbox]:checked + label + .faq_answer{padding:8px 10px 20px 40px;}
}

/* ----------------------- CSS Information 
 Style Info: PROFILE
--------------------------------------- */
#profile{background:#fdf3e7;}
#profile .section_wrapper{max-width:1000px;}
.profile_img{
display:block;
width:320px;
margin:0 auto 40px auto;
}
@media only screen and (max-width:750px){
#profile{}
.profile_img{width:180px;margin:0 auto 30px auto;}
}

/* ----------------------- CSS Information 
 Style Info: FOOTER
--------------------------------------- */
footer{
margin:0;
padding:40px 0 40px 0;
width:100%;
color:#eeeeee;
background:#000000;
}
footer a{color:#eeeeee;text-decoration:none;}
footer a:hover{color:#eeeeee;text-decoration:underline;}
#nav_footer{
display:block;
width:100%;
max-width:750px;
margin:0 auto;
}
#nav_footer ul{
display:flex;
flex-direction:row;
flex-wrap:nowrap;
justify-content:center;
align-items:flex-start;
width:100%;
text-align:center;
list-style-type:none;
}
#nav_footer ul li{
display:block;
font-size:12px;
line-height:20px;
margin:0;
padding:0 20px;
border-right:1px solid #c888b5;
}
#nav_footer ul li:last-child{border-right:none;}
footer small{
display:block;
margin:20px 0 0 0;
padding:0;
text-align:center;
font-size:12px;
line-height:20px;
}
@media only screen and (max-width:750px){
footer{}
#nav_footer{}
#nav_footer ul{flex-direction:column;}
#nav_footer ul li{width:100%;margin:0 0 20px 0;padding:0;border-right:none;}
#nav_footer ul li:last-child{border-right:none;}
footer small{margin:0;}
.sp_no{display:none;}
}

/* ----------------------- CSS Information 
 Style Info: VOICE
--------------------------------------- */
#voice{
background:#f1d7c2 url(../img/bg_voice_pc.png) no-repeat center top;
background-size:cover;
}
#voice .section_wrapper{max-width:1000px;}
.voice_wrapper{
width:100%;
max-width:1000px;
margin:0 auto;
}
.voice_box{
margin:0 4% 40px 4%;
border-radius:10px;
background:rgba(255,255,255,0.75);
box-sizing:border-box;
}
.voice_wrapper .voice_box:last-child{margin:0 4% 0 4%;}
.voice_header{
display:flex;
align-items:center;
padding:30px;
border-bottom:2px dotted #c888b5;
}
.voice_img{width:70px;}
.voice_img img{width:100%;}
.voice_index{
flex:1;
padding:0 0 0 20px;
text-align:left;
font-size:20px;
line-height:30px;
font-weight:700;
color:#9760af;
}
.voice_box .text{
font-size:18px;
line-height:30px;
padding:30px;
}
#slider-pro{display:none;}
@media only screen and (max-width:750px){
#voice{
background:#f1d7c2 url(../img/bg_voice_sp.png) no-repeat center top;
background-size:100% auto;
}
.voice_wrapper{display:none;}
#slider-pro{display:block;}
.sp-slide{
border-radius:10px;
background:rgba(255,255,255,0.75);
box-sizing:border-box;
}
.voice_header{
display:flex;
align-items:flex-start;
padding:20px 4%;
border-bottom:2px dotted #c888b5;
}
.voice_img{width:60px;}
.voice_img img{width:100%;}
.voice_index{
flex:1;
padding:0 0 0 10px;
text-align:left;
font-size:14px;
line-height:20px;
font-weight:700;
}
.sp-slide .text{padding:20px 4% 20px 4%;}
}

/* スライド下のページャーの設定 */
.sp-buttons{padding-top:10px;}
.sp-button{width:10px;height:10px;border:none;border-radius:50%; margin:0 5px; background:#cccccc;}
.sp-selected-button{background:#c888b5; }