@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;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:link{text-decoration:none;color:#333333;}
a:visited{text-decoration:none;color:#333333;}
a:hover{text-decoration:underline;color:#666666;}
a:active{text-decoration:none;color:#333333;}
/*font*/
.b{font-weight:700;}
.ul{text-decoration:underline;}
.bg{background:linear-gradient(transparent 75%, #ffe164 0%);}
.big{font-size:20px;}@media only screen and (max-width:768px){.big{font-size:16px;}}
.small{font-size:13px;}
.red{color:#ec6286;}
.text_center{text-align:center;}
.text_right{text-align:right;}
/* image */
.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',"游ゴシック体", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", "sans-serif";
font-weight:400;
color:#333333;
font-size:16px;
line-height:0;
text-align:center;
letter-spacing:0em;
background:#ffffff;
width:100%;
}

/* ----------------------- CSS Information 
 Style Info: HEADER
--------------------------------------- */
header{
position:relative;
margin:0;
padding:0;
width:100%;
background:#ffffff;
}
.header_img{
position:relative;
width:100%;
margin:0 auto;
padding:0;
}
.header_img:before{
content:"";
display:block;
position:absolute;
top:0;
left:0;
margin:0 auto 0 0;
width:50%;
height:100%;
background:url(../img/header_bg_left_pc.png) no-repeat center top,linear-gradient(to right,#50bdf1,#4fccc7);
background-size:auto 100%;
}
.header_img:after{
content:"";
display:block;
position:absolute;
top:0;
right:0;
margin:0 0 0 auto;
width:50%;
height:100%;
background:url(../img/header_bg_right_pc.png) no-repeat center top,linear-gradient(to right,#f781b4,#fb9367);
background-size:auto 100%;
}
.header_img img{
position:relative;
width:100%;
max-width:1000px;
margin:0 auto;
padding:0;
z-index:10;
}
@media only screen and (max-width:750px){
header{}
.header_img{}
.header_img:before{display:none;}
.header_img:after{display:none;}
.header_img img{}
}

/* ----------------------- CSS Information 
 Style Info: TITLE
--------------------------------------- */
.title{
display:block;
width:100%;
margin:0 auto;
padding:0;
box-sizing:border-box;
}
.title img{
width:100%;
max-width:1000px;
margin:0 auto;
padding:0;
}
@media only screen and (max-width:750px){}

/* ----------------------- CSS Information 
 Style Info: 共通設定
--------------------------------------- */
.section{
width:100%;
margin:0;
padding:30px 0 120px 0;
position:relative;
background:#ffffff;
}
.wrapper{
width:100%;
max-width:1000px;
margin:0 auto;
padding:0;
box-sizing:border-box;
}
.section_title{
position:relative;
margin:80px 0 40px 0;
padding:60px 0 0 10px;
font-size:24px;
line-height:40px;
font-weight:bold;
border-top:1px solid #dddddd;
}
.section_title:before{
content:"";
display:block;
position:absolute;
top:60px;
left:0;
width:4px;
height:40px;
background:#b00f14;
}
.section_img{
display:block;
width:40%;
margin:0 0 0 20px;
box-sizing:border-box;
float:right;
}
@media only screen and (max-width:750px){
.section{padding:20px 0 40px 0;}
.wrapper{}
.section_title{
margin:30px 0 20px 0;
padding:30px 0 0 6px;
font-size:16px;
line-height:30px;
}
.section_title:before{
content:"";
display:block;
position:absolute;
top:30px;
width:2px;
height:30px;
}
.section_img{margin:0 0 0 15px;}
}
/* -- text -- */
.text_wrapper{
width:100%;
margin:0 auto;
padding:0 4%;
box-sizing:border-box;
}
.text{
width:100%;
margin:0 auto;
padding:0;
font-size:17px;
line-height:30px;
text-align:left;
box-sizing:border-box;
}
.text p{margin:0 0 30px 0;padding:0;}
.text p:last-child{margin:0;}
/* -- ul -- */
ul{margin:0 0 30px 0;}
ul li{margin: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;}
/* -- ul -- */
.text ul{margin:0 0 20px 0;}
.text ul li{}
/* -- br -- */
.text br{display:none;}
.text br.sp,.text br.all{display:block;}
}

/* ----------------------- CSS Information 
 Style Info: INTRO
--------------------------------------- */
#intro{
position:relative;
width:100%;
margin:0;
padding:120px 0;
background:#ffffff url(../img/intro_bg_top_pc.png) no-repeat center top;
}
#intro .text{text-align:center;}
.heart_noise{display:inline-block;width:120px;}
@media only screen and (min-width:2000px) {#intro{background-size:100% auto,100% auto,100%;}}
@media only screen and (max-width:750px){
#intro{padding:60px 0;
background:url(../img/intro_bg_top_pc.png) no-repeat center top;
}
#intro .text{}
.heart_noise{width:80px;}
}

/* ----------------------- CSS Information 
 Style Info: POINT
--------------------------------------- */
#point{
padding:0 0 120px 0;
background:#ffffff;
}
.point_img{
width:100%;
max-width:1000px;
margin:0 auto;
padding:0;
box-sizing:border-box;
}
@media only screen and (max-width:750px){
#point{padding:0 0 60px 0;}
}

/* ----------------------- CSS Information 
 Style Info: SECTION01
--------------------------------------- */
#section01{padding:0;}
#section02{padding:0 0 80px 0;}
@media only screen and (max-width:750px){
#section01{padding:0;}
#section02{padding:0 0 40px 0;}
}

/* ----------------------- CSS Information 
 Style Info: LESSON
--------------------------------------- */
#lesson{
padding:0 0 80px 0;
background:#f3f3f3 url(../img/bg01.png) repeat center top;
}
#lesson .text{text-align:center;}
.lesson_box{
position:relative;
width:100%;
max-width:750px;
margin:100px auto 100px auto;
padding:50px 30px 60px 30px;
background:#ffffff;
box-sizing:border-box;
}
#lesson .lesson_box:last-child{margin:0 auto;}
/* -- title -- */
.lesson_number{
display:block;
position:absolute;
top:-50px;
left:0;
right:0;
width:100px;
height:100px;
margin:0 auto;
padding:35px 0;
font-size:20px;
line-height:30px;
text-align:center;
color:#ffffff;
background:linear-gradient(to right,#f781b4,#fb9367);
border-radius:50%;
box-sizing:border-box;
}
.lesson_title{
display:block;
width:100%;
margin:0;
padding:40px 0;
font-size:28px;
line-height:40px;
font-weight:bold;
text-align:center;
color:#000000;
box-sizing:border-box;
}
/* -- text -- */
#lesson .lesson_box .text{
width:100%;
margin:0 auto;
padding:40px 0 0 0;
color:#666666;
text-align:justify;
box-sizing:border-box;
}
#lesson .lesson_box .text p{margin:0;padding:0;}
/* -- img -- */
.lesson_img{
display:block;
width:100%;
margin:0;
padding:0;
box-sizing:border-box;
}
@media only screen and (max-width:750px){
#lesson{padding:0 0 40px 0;}
#lesson .text{text-align:justify;}
.lesson_box{
margin:50px auto;
padding:30px 4% 40px 4%;
background:#ffffff;
box-sizing:border-box;
}
#lesson .lesson_box:last-child{}
/* -- title -- */
.lesson_number{top:-30px;width:60px;height:60px;padding:20px 0;font-size:14px;line-height:20px;}
.lesson_title{padding:20px 0;font-size:18px;line-height:30px;}
/* -- text -- */
#lesson .lesson_box .text{padding:20px 0 0 0;}
#lesson .lesson_box .text p{}
/* -- img -- */
.lesson_img{}
}

/* ----------------------- CSS Information 
 Style Info: VOICE
--------------------------------------- */
#voice{
background:#ffffff url(../img/bg01.png) repeat center top;
}
.voice_wrapper{
width:100%;
height:auto;
max-width:1000px;
margin:0 auto;
padding:0 30px;
box-sizing:border-box;
}
.voice_box{
width:100%;
margin:0 0 30px 0;
padding:0;
background:#ffffff;
border:1px solid #f6f6f5;
box-sizing:border-box;
}
.voice_info{
display:flex;
flex-direction:row;
flex-wrap:nowrap;
justify-content:flex-start;
align-items:center;
width:100%;
margin:0;
padding:30px;
border-bottom:2px dotted #cccccc;
box-sizing:border-box;
}
.voice_img{display:block;width:100px;margin:0 20px 0 0;}
.voice_img img{display:block;width:100%;margin:0;}
.voice_index{
flex:1;
font-weight:bold;
font-size:20px;
line-height:30px;
text-align:left;
}
.voice_value{
display:block;
font-weight:normal;
font-size:16px;
line-height:30px;
color:#666666;
}
.voice_text{
position:relative;
display:block;
margin:0;
padding:30px;
text-align:justify;
font-size:16px;
line-height:30px;
}
.voice_text p{margin:0;padding:0;}
.voice_attention{margin:0 auto;padding:0;color:#999999;text-align:right;font-size:12px;line-height:20px;}
@media only screen and (max-width:750px){
#voice{}
.voice_wrapper{padding:0 4%;}
.voice_box{margin:0 0 20px 0;}
.voice_info{padding:20px;}
.voice_img{width:80px;margin:0 10px 0 0;}
.voice_img img{}
.voice_index{font-size:16px;line-height:30px;}
.voice_value{font-size:14px;line-height:30px;}
.voice_text{padding:20px;font-size:14px;line-height:30px;}
.voice_text p{margin:0;padding:0;}
.voice_attention{font-size:10px;line-height:14px;}
}

/* ----------------------- CSS Information 
 Style Info: PROFILE
--------------------------------------- */
#profile{
padding:0 0 80px 0;
background:#ffffff;
}
/* -- text -- */
#profile .text{margin:40px 0 0 0;padding:0;}
#profile .text p{margin:0;padding:0;text-align:justify;}
#profile .text p.profile_name{
font-size:28px;
line-height:30px;
font-weight:bold;
margin:0 0 40px 0;
padding:0;
}
#profile .text dl dt{
display:flex;
justify-content:center;
align-items:center;
margin:40px 0 0 0;
padding:0;
font-size:18px;
line-height:30px;
text-align:left;
color:#333333;
font-weight:bold;
}
#profile .text dl dt:after{
content:"";
margin:0 0 0 10px;
border-top:2px solid #4fccc7;
flex:1;
}
#profile .text dl dd{
margin:0;
padding:20px 0 0 0;
}
.book_img{
width:100%;
max-width:870px;
margin:0 auto;
}
.tv_img{
display:block;
width:100%;
max-width:920px;
margin:0 auto;
}
.media_img{
width:100%;
max-width:920px;
margin:0 auto 0 0;
}
@media only screen and (max-width:750px){
#profile{padding:0 0 60px 0;}
/* -- text -- */
#profile .text{margin:30px 0 0 0;}
#profile .text p{}
#profile .text p.profile_name{font-size:20px;margin:0 0 20px 0;}
#profile .text dl dt{
display:flex;
justify-content:center;
align-items:center;
margin:40px 0 0 0;
padding:0;
font-size:14px;
line-height:20px;
text-align:left;
color:#333333;
font-weight:bold;
}
#profile .text dl dt:after{border-top:1px solid #4fccc7;}
#profile .text dl dd{
margin:0;
padding:20px 0 0 0;
}
.media_img{
width:100%;
max-width:920px;
margin:0 auto 0 0;
}
.book_img{}
.tv_img{}
}

/* ----------------------- CSS Information 
 Style Info: OPT
--------------------------------------- */
.opt{
position:relative;
margin:0;
padding:80px 0;
width:100%;
text-align:center;
background:url(../img/opt_bg_pc.png) no-repeat center top;
background-size:cover;
box-sizing:border-box;
}
.opt_title{
display:block;
width:100%;
max-width:750px;
margin:0 auto 40px auto;
padding:0;
box-sizing:border-box;
}
.opt_wrapper{
width:100%;
max-width:750px;
margin:0 auto;
padding:0;
}
.opt_box{
width:100%;
margin:0 auto;
padding:0 4%;
box-sizing:border-box;
}
.opt_form{
width:100%;
margin:0 auto;
padding:30px;
background:#ffffff;
border-radius:8px;
box-sizing:border-box;
}
.form_item{
display:flex;
flex-direction:row;
flex-wrap:nowrap;
justify-content:flex-start;
align-items:center;
margin:0 0 10px 0;
}
.form_item label{
width:180px;
margin:0;
padding:10px 0;
font-size:16px;
line-height:20px;
font-weight:normal;
color:#ffffff;
background:linear-gradient(to right,#f781b4,#fb9367);
box-sizing:border-box;
}
.form_item .required{
display:inline-block;
margin:0 0 0 5px;
padding:0 5px;
font-size:12px;
line-height:20px;
color:#f781b4;
background:#ffffff;
border-radius:10px;
}
.form_item input[type=text]{
flex:1;
margin:0;
padding:10px;
font-family:'Noto Sans JP',"メイリオ","ヒラギノ角ゴ Pro W3",Sans-Serif;
font-size:16px;
line-height:20px;
text-align:left;
background:#f6f6f5;
border:1px solid #cccccc;
box-sizing:border-box;
}
.form_btn{
width:100%;
max-width:480px;
margin:0 auto;
padding:0;
border-radius:8px;
box-shadow:2px 2px 4px 0px rgba(0,0,0,0.5);
overflow:hidden;
background:#ffffff;
}
.form_btn input[type=image]{
position:relative;
width:100%;
margin:0 auto;
}
.form_btn input[type=image]:hover{opacity:0.5;}
.opt_attention{
width:100%;
margin:30px auto;
padding:0;
box-sizing:border-box;
}
.opt_attention li{
position:relative;
margin:0 0 10px 0;
padding:0 0 0 14px;
font-size:13px;
line-height:20px;
text-align:justify;
list-style:none;
color:#666666;
}
.opt_attention li:before{
content:"※";
position:absolute;
top:0;
left:0;
font-size:13px;
line-height:20px;
color:#666666;
}
.opt_attention a:link{text-decoration:underline;color:#222222;}
.opt_attention a:visited{text-decoration:none;color:#666666;}
.opt_attention a:hover{text-decoration:none;color:#000000;}
.opt_attention a:active{text-decoration:none;color:#666666;}
@media only screen and (max-width:750px){
.opt{padding:40px 0;background:url(../img/opt_bg_sp.png) no-repeat center bottom;}
.opt_title{}
.opt_form{padding:15px;}
.form_item{flex-direction:column;
margin:0 0 10px 0;
}
.form_item label{width:100%;padding:10px;font-size:14px;}
.form_item .required{
display:inline-block;
margin:0 0 0 5px;
padding:0 4px;
font-size:12px;
line-height:20px;
}
.form_item input[type=text]{width:100%;
padding:10px;
font-size:14px;
text-align:left;
}
.form_btn{}
.form_btn input[type=image]{}
.form_btn input[type=image]:hover{}
.opt_attention{margin:30px auto;}
.opt_attention li{
margin:0 0 10px 0;
padding:0 0 0 13px;
font-size:12px;
line-height:16px;
}
.opt_attention li:before{
font-size:12px;
line-height:16px;
}
}

/* ----------------------- CSS Information 
 Style Info: SERVICE
--------------------------------------- */
#service{
width:100%;
margin:0;
padding:60px 0 30px 0;
box-sizing:border-box;
}
.service_wrapper{
width:100%;
max-width:1200px;
margin:0 auto;
padding:0 40px;
box-sizing:border-box;
}
.title_service{
display:flex;
justify-content:center;
align-items:center;
margin:0;
padding:0;
font-size:14px;
line-height:24px;
text-align:left;
color:#333333;
font-weight:bold;
}
.title_service:after{
content:"";
margin:0 0 0 10px;
border-top:1px solid #f781b4;
flex:1;
}
.text_service{
margin:10px 0;
font-size:14px;
line-height:24px;
text-align:justify;
}
.text_service p{margin:0;padding:0;}
/* -- PC -- */
.service_pc{
display:table;
width:100%;
margin:20px auto 0 auto;
box-sizing:border-box;
text-align:center;
color:#666666;
}
.service_pc th{
background:#cccccc;
font-size:14px;
line-height:20px;
color:#ffffff;
text-align:center;
padding:10px;
border:1px solid #999999;
}
.service_pc td{
font-size:14px;
line-height:20px;
text-align:center;
padding:10px;
background:#ffffff;
}
.service_pc td.free_box{
box-sizing:border-box;
color:#ffffff;
font-weight:bold;
background:#f781b4;
border:4px solid #f781b4;
}
.service_pc .free{
box-sizing:border-box;
border:4px solid #f781b4;
}
/* -- SP -- */
.service_sp{display:none;}
@media only screen and (max-width:768px){
#service{padding:40px 0 20px 0;}
.service_wrapper{padding:0 4%;}
.title_service{}
.text_service{font-size:13px;}
.text_service p{}
/* -- PC -- */
.service_pc{display:none;}
/* -- SP -- */
.service_sp{
display:block;
margin:0 0 20px 0;
color:#666666;
}
.service_sp.free{
box-sizing:border-box;
border-left:4px solid #f781b4;
border-right:4px solid #f781b4;
border-bottom:4px solid #f781b4;
}
.service_sp dt{
background:#cccccc;
color:#ffffff;
font-size:13px;
line-height:20px;
text-align:center;
padding:10px 5px;
}
.service_sp dt.free_box{
box-sizing:border-box;
color:#ffffff;
font-weight:bold;
background:#f781b4;
}
.service_sp dd{
font-size:13px;
line-height:20px;
text-align:center;
padding:10px 5px;
background:#ffffff;
}
}

/* ----------------------- CSS Information 
 Style Info: AGREEMENT
--------------------------------------- */
#agreement{
width:100%;
margin:0;
padding:30px 0 60px 0;
background:#ffffff;
box-sizing:border-box;
}
.agreement_wrapper{
width:100%;
max-width:1200px;
margin:0 auto;
padding:0 40px;
box-sizing:border-box;
}
.title_agreement{
display:flex;
justify-content:center;
align-items:center;
margin:0;
padding:0;
font-size:14px;
line-height:24px;
text-align:left;
color:#333333;
font-weight:bold;
}
.title_agreement:after{
content:"";
margin:0 0 0 10px;
border-top:1px solid #f781b4;
flex:1;
}
.text_agreement{
margin:10px 0 0 0;
font-size:14px;
line-height:24px;
text-align:justify;
}
.text_agreement a:link{text-decoration:underline;color:#222222;}
.text_agreement a:visited{text-decoration:none;color:#666666;}
.text_agreement a:hover{text-decoration:none;color:#000000;}
.text_agreement a:active{text-decoration:none;color:#666666;}
.text_agreement ul{margin:0;padding:0;list-style:none;}
.text_agreement li{}
@media only screen and (max-width:750px){
#agreement{padding:20px 0 40px 0;}
.agreement_wrapper{padding:0 4%;}
.title_agreement{}
.title_agreement:after{}
.text_agreement{font-size:13px;}
.text_agreement a:link{}
.text_agreement a:visited{}
.text_agreement a:hover{}
.text_agreement a:active{}
.text_agreement ul{}
.text_agreement li{}
}

/* ----------------------- CSS Information 
 Style Info: FOOTER
--------------------------------------- */
footer{
width:100%;
margin:0;
padding:40px 0;
color:#d1d1d1;
background:#111111;
}
#fnav a{color:#d1d1d1;text-decoration:none;}
#fnav a:hover{color:#d1d1d1;text-decoration:underline;}
#fnav{margin:0 0 20px 0;}
#fnav ul{list-style-type:none;}
#fnav li{
font-size:14px;
line-height:20px;
display:inline-block;
padding:0 20px;
border-right:1px solid #f781b4;
}
#fnav li:last-child{border-right:none;}
address{
text-align:center;
font-size:14px;
line-height:20px;
padding:0;
}
@media only screen and (max-width:750px){
#fnav{margin:0 0 40px 0;}
#fnav li{display:block;border-right:0;margin:0 0 20px 0;font-size:12px;}
address{font-size:12px;}
.sp_no{display:none;}
}