@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;600;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:#333333;}
a:hover{text-decoration:underline;color:#666666;}
/*font*/
.b{font-weight:900;}
.ul{text-decoration:underline;}
.bg{background:linear-gradient(transparent 70%, #fff799 0%)}
.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%;
word-break:break-all;
word-wrap:break-word;
}

/* ----------------------- CSS Information 
 Style Info: HEADER
--------------------------------------- */
header{
position:relative;
width:100%;
margin:0;
padding:0;
text-align:center;
background:#d7ccfe url(../img/header_bg_pc.png) no-repeat center bottom;
background-size:cover;
box-sizing:border-box;
}
.header_wrapper{
position:relative;
display:block;
width:100%;
max-width:1100px;
margin:0 auto;
padding:0;
text-align:center;
box-sizing:border-box;
background:url(../img/header_img_pc.png) no-repeat center top;
}
.header_img{
width:100%;
max-width:1000px;
margin:0 auto;
padding:0;
}
@media only screen and (max-width:750px){
header{background:none;}
.header_wrapper{background:none;}
.header_img{}
}

/* ----------------------- CSS Information 
 Style Info: CTA
--------------------------------------- */
.cta{
position:relative;
width:100%;
margin:0;
padding:80px 0 80px 0;
text-align:center;
background:#03004c url(../img/cta_bg_pc.png) no-repeat center;
background-size:cover;
box-sizing:border-box;
}
.cta:before{
content:"";
position:absolute;
left:0;
right:0;
top:0;
width:0;
height:0px;
margin:0 auto auto auto;
border-style:solid;
border-color:#ddc8ee transparent transparent transparent;
border-width:40px 40px 0 40px;
}
#profile + .cta:before{
border-color:#876396 transparent transparent transparent;
}
.cta_wrapper{
position:relative;
display:block;
width:100%;
max-width:750px;
margin:0 auto;
padding:0;
text-align:center;
box-sizing:border-box;
}
.cta_box{
width:100%;
margin:0;
padding:0 4%;
box-sizing:border-box;
}
.cta_box p{
font-size:18px;
line-height:30px;
margin:0 0 20px 0;
padding:0;
color:#ffffff;
}
.payment{
width:100%;
margin:40px auto 0 auto;
padding:0;
text-align:center;
color:#ffffff;
box-sizing:border-box;
}
.payment dt{
display:flex;
align-items:center;
justify-content:center;
font-size:16px;
line-height:30px;
color:#ffffff;
font-weight:700;
}
.payment dt:before,.payment dt:after{
content:"";
height:1px;
background:#ffffff;
flex:1;
}
.payment dt:before{margin-right:10px;}
.payment dt:after{margin-left:10px;}
.payment dd{
margin:0;
padding:0;
font-size:16px;
line-height:30px;
text-align:left;
}
.payment_img{
display:block;
width:100%;
max-width:300px;
margin:10px auto;
padding:0;
}
@media only screen and (max-width:750px){
.cta{
padding:40px 0 40px 0;
background:#03004c url(../img/cta_bg_sp.png) no-repeat center top;
background-size:cover;
}
.cta:before{border-width:20px 20px 0 20px;}
.cta_wrapper{}
.cta_box{}
.cta_box p{font-size:14px;line-height:24px;margin:0 0 20px 0;}
.payment{margin:20px auto 0 auto;}
.payment dt{font-size:14px;line-height:30px;}
.payment dd{font-size:14px;line-height:30px;}
.payment_img{}
}

/* ----------------------- CSS Information 
 Style Info: BTN
--------------------------------------- */
.btn{
width:100%;
max-width:750px;
margin:0 auto;
padding:0;
}
.btn a{
display:block;
width:100%;
margin:0;
background:#ffffff;
border-radius:10px;
box-shadow:2px 2px 4px 0px rgba(0,0,0,0.5);
overflow:hidden;
}
.btn a img{width:100%;}
.btn a img:hover{opacity:0.5;}

/* ----------------------- CSS Information 
 Style Info: 共通設定
--------------------------------------- */
.section{
position:relative;
width:100%;
margin:0;
padding:120px 0 120px 0;
}
.section_wrapper{
width:100%;
max-width:750px;
margin:0 auto;
box-sizing:border-box;
}
.section_box{
width:100%;
margin:0 auto;
padding:0;
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%;
max-width:750px;
margin:0 auto 80px auto;
padding:0;
font-family:'Noto Serif JP',serif;
font-weight:500;
font-size:34px;
line-height:40px;
color:#ffffff;
z-index:100;
}
#present .title{color:#876396;}
#profile .title{color:#876396;}
.title:before{/*スペースを作る*/
content:"";
margin:0 auto;
width:100%;
max-width:750px;
max-height:60px;
padding-top:8%;/*画像の幅に対する高さ比率*/
padding-bottom:10px;
display:block;
}
.title:after{
content:"";
position:absolute;
top:0;
left:0;
display:block;
width:100%;
height:60px;
background-image: url(../img/title_hr.png);
background-size: contain;
background-repeat: no-repeat;/*画像を繰り返さない*/
}
@media only screen and (max-width:750px){
.title{margin:0 auto 40px auto;font-size:20px;line-height:30px;}
.title:before{}
.title:after{}
}

/* ----------------------- CSS Information 
 Style Info: TEXT
--------------------------------------- */
.text{
position:relative;
width:100%;
margin:0 auto;
padding:0 4%;
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;}
@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;}
/* -- br -- */
.text br{display:none;}
.text br.sp{display:block;}
.text br.all{display:block;}
}

/* ----------------------- CSS Information 
 Style Info: OUTLINE
--------------------------------------- */
#outline{
padding:0;
background:#a284c0;
}
#outline .section_wrapper{max-width:1250px;}
#outline .section_box{max-width:750px;margin:0 auto;}
#outline .text{color:#ffffff;}
#outline .text .red{color:#ebd842;}


/* ----------------------- CSS Information 
 Style Info: CONTENT
--------------------------------------- */
#content{
position:relative;
background:url(../img/content_bg_pc.png) no-repeat center right;
}
#content:before{
content:"";
position:absolute;
top:0;
display:block;
width:100%;
height:240px;
background:linear-gradient(to bottom,rgba(162,132,192,1),rgba(162,132,192,0));
z-index:10;
}
#content:after{
content:"";
position:absolute;
bottom:0;
display:block;
width:100%;
height:240px;
background:linear-gradient(to bottom,rgba(162,132,192,0),rgba(162,132,192,1));
z-index:10;
}
@media only screen and (max-width:750px){
#content{background:url(../img/content_bg_sp.png) no-repeat center top;background-size:100% auto;}
#content:before{height:80px;}
#content:after{height:80px;}
}

/* ----------------------- CSS Information 
 Style Info: WAY
--------------------------------------- */
#way{
position:relative;
background:url(../img/way_bg_pc.png) no-repeat center left;
}
#way:before{
content:"";
position:absolute;
top:0;
display:block;
width:100%;
height:240px;
background:linear-gradient(to bottom,rgba(162,132,192,1),rgba(162,132,192,0));
z-index:10;
}
#way:after{
content:"";
position:absolute;
bottom:0;
display:block;
width:100%;
height:240px;
background:linear-gradient(to bottom,rgba(162,132,192,0),rgba(162,132,192,1));
z-index:10;
}
@media only screen and (max-width:750px){
#way{background:url(../img/way_bg_sp.png) no-repeat center top;background-size:100% auto;}
#way:before{height:80px;}
#way:after{height:80px;}
}

/* ----------------------- CSS Information 
 Style Info: PRICE
--------------------------------------- */
#price{padding:240px 0 120px;}
#price .text ul{margin:0;padding:0;}
#price .text ul li{
position:relative;
margin:0;
padding:0 0 0 18px;
}
#price .text ul li:before{
content:"";
position:absolute;
left:0;
top:18px;
width:10px;
height:10px;
border-radius:50%;
background:#ebd842;
}
@media only screen and (max-width:750px){
#price{padding:80px 0 40px;}
#price .text ul{}
#price .text ul li{padding:0 0 0 14px;}
#price .text ul li:before{top:8px;}
}

/* ----------------------- CSS Information 
 Style Info: PRESENT
--------------------------------------- */
#present{
background:#ffffff url(../img/present_bg_pc.png) no-repeat center;
background-size:cover;
}
#present .section_wrapper{max-width:750px;}
#present .text{text-align:center;}
.present_img{
display:flex;
justify-content:space-around;
align-items:flex-start;
width:100%;
max-width:690px;
margin:0 auto;
}
.present_img span{
position:relative;
display:block;
width:48%;
border:1px solid #000000;
background:#ffffff;
box-sizing:border-box;
}
.present_img span:after{
content:"";
position:absolute;
bottom:0;
right:0;
display:block;
width:30px;
height:30px;
background:#000000 url(../img/icon01.png) no-repeat center;
background-size:cover;
z-index:100;
}
.present_img span img{display:block;width:100%;}
.present_img span img:hover{opacity:0.5;cursor:pointer;}
@media only screen and (max-width:750px){
#present{background:#ffffff url(../img/present_bg_sp.png) no-repeat center;}
#present .section_wrapper{}
#present .text{text-align:justify;}
}

/* ----------------------- CSS Information 
 Style Info: FLOW
--------------------------------------- */
#flow{
background:linear-gradient(to bottom,#a284c0,#ddc8ee);
}
.step{margin:0;padding:0 4%;}
.step_box{
position:relative;
padding:0 0 30px 110px;
margin:0;
}
.step_box:before{
content:"";
display:block;
position:absolute;
bottom:0;
left:40px;
border-style:solid;
border-width:18px 10px 0 10px;
border-color:#ffffff transparent transparent transparent;
}
.step_box:after{
content:"";
display:block;
position:absolute;
top:40px;
left:49px;
height:calc(100% - 40px);
border-left:dashed 2px #ffffff;
}
.step_num{
position:absolute;
top:0;
left:0;
width:100px;
height:40px;
padding:0;
color:#333333;
font-size:16px;
line-height:40px;
font-weight:700;
text-align:center;
background:#ffffff;
border-radius:20px;
z-index:1;
}
.step_text{
font-size:17px;
line-height:36px;
color:#ffffff;
text-align:left;
}
.step_wrapper > :last-child:before, .step_wrapper > :last-of-type:after{display:none;}
@media only screen and (max-width:750px){
.step{}
.step_box{padding:0 0 20px 65px;}
.step_box:before{left:24px;border-width:10px 6px 0 6px;}
.step_box:after{top:30px;left:29px;height:calc(100% - 30px);}
.step_num{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: PROFILE
--------------------------------------- */
#profile{
padding:120px 0 360px 0;
background:url(../img/profile_bg_pc.png) no-repeat center bottom;
background-size:cover;
}
.profile_img{
display:block;
width:320px;
margin:0 auto 40px auto;
}
#profile .section_wrapper{max-width:750px;}
#profile .text{color:#333333;}
@media only screen and (max-width:750px){
#profile{
padding:40px 0 50vw 0;
background:url(../img/profile_bg_sp.png) no-repeat center bottom;
background-size:cover;
}
.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:#ffffff;
background:#876396;
}
footer a{color:#ffffff;text-decoration:none;}
footer a:hover{color:#ffffff;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: MODAL
--------------------------------------- */
.modal{
display:none;
position:fixed;
top:0;
bottom:0;
left:0;
right:0;
width:100%;
height:100%;
overflow:hidden;
transition:all 0.4s;
z-index:100;
}
.modal.is-show{display:block;}
.modal_bg{
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
background-color:rgba(0,0,0,0.8);
cursor:pointer;
}
.modal_close{
position:absolute;
top:20px;
right:20px;
font-size:40px;
line-height:40px;
color:#ffffff;
cursor:pointer;
}
.modal_box{
position:absolute;
left:50%;
top:50%;
-webkit-transform:translate(-50%, -50%);
transform:translate(-50%, -50%);
margin:auto;
padding:0;
width:92%;
max-height:92%;
max-width:750px;
overflow-y:auto;
}
.modal_img{width:100%;max-width:600px;}
@media only screen and (max-width:750px){
.modal{}
.modal.is-show{}
.modal_bg{}
.modal_close{font-size:30px;line-height:30px;}
.modal_box{}
.modal_img{}
}