@charset "UTF-8";

/* ------------------------------------------- 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;} 

/* ------------------------------------------- CSS Information 
 Style Info: 基本設定
----------------------------------------------------------- */
/*A Style*/  
a:link{text-decoration:underline;color:#ffec47;}
a:visited{text-decoration:none;color:#ffec47;}
a:hover{text-decoration:underline;color:#ffec47;}
a:active{text-decoration:none;color:#ffec47;}

.b{font-weight:bold;}
.red{color:#dc3759;}
.big{font-size:20px;}
.small{font-size:14px;}
@media only screen and (max-width:750px){.big{font-size:16px;}.small{font-size:12px;}}
/*img*/
.img1280{display:block;width:100%;max-width:1280px;margin:0 auto;}
.img960{display:none;width:100%;max-width:960px;margin:0 auto;}
.img750{display:none;width:100%;max-width:750px;margin:0 auto;}
@media only screen and (max-width:960px){
.img1280{display:none;}
.img960{display:block;}
}
@media only screen and (max-width:750px){
.img960{display:none;}
.img750{display:block;}
}
.pc{display:block;margin:0 auto;}
.sp{display:none;margin:0 auto;}
@media only screen and (max-width:750px){
.pc{display:none;}
.sp{display:block;}
}
/* text */
.text{margin:0;padding:0;font-size:16px;line-height:30px;}
.text p{margin:0;padding:0 0 30px 0;}
.text p:last-child{margin:0;padding:0;}
.text p.text_center{text-align:center;}
.text p.text_right{text-align:right;}
@media only screen and (max-width:750px){
.text{font-size:14px;line-height:24px;}
.text p{margin:0;padding:0 0 20px 0;}
.text p:last-child{margin:0;padding:0;}
.text ul{margin:0 0 20px 0;}
.text ul li{padding:0 0 0 16px;}
.text ul li:before{top:5px;}
}
/*br*/
.br_sp{display:none;}
@media only screen and (max-width:750px){.br_sp{display:block;}}


/* ----------------------- CSS Information 
 Style Info: HTML/BODY
--------------------------------------- */
html,body{
width:100%;
height:100%;
margin:0;
padding:0;
font-family:"メイリオ",Osaka,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","ＭＳ Ｐゴシック","MS PGothic",Arial,Sans-Serif;
color:#333333;
font-size:16px;
line-height:0;
text-align:center;
background:#ffffff;
letter-spacing:0em;
min-height:100%;
position:relative;
box-sizing:border-box;
}

/* ----------------------- CSS Information 
 Style Info: HEADER
--------------------------------------- */
header{
position:relative;
margin:0;
padding:0;
width:100%;
box-sizing:border-box;
text-align:center;
overflow:hidden;
background:#ffffff;
}
.header_wrapper{
position:relative;
margin:0;
padding:0;
width:100%;
box-sizing:border-box;
text-align:center;
background:url(../img/header_bg_pc.png) repeat-x left top;
background-size:auto 100%;
z-index:10;
}
@media only screen and (max-width:960px){.header_wrapper{background:none;}}


/* ----------------------- CSS Information 
 Style Info: VIDEO
--------------------------------------- */
.videobox{
position:absolute;
top:-50%;
left:-50%;
width:200%;
height:200%;
z-index:1;
}
.videobox video{
position:absolute;
top:0;
bottom:0;
left:0;
right:0;
margin:auto;
min-width:50%;
min-height:50%;
}
.videobox.video03{background:#000000;}
.videobox.video03 video{opacity:0.75;background:url(../video/video03.png) no-repeat center;background-size:cover;}

/* --------------------------------- CSS Information 
 Style Info: OPT
------------------------------------------------- */
.opt{
position:relative;
margin:0;
padding:0 0 40px 0;
box-sizing:border-box;
text-align:center;
background:#000000 url(../img/opt_bg_pc.png) no-repeat center;
background-size:cover;
}
.opt01{
position:relative;
width:100%;
max-width:960px;
margin:0 auto;
z-index:100;
}
.opt01 img{
position:absolute;
top:0;
left:0;
right:0;
margin:-6.25% auto auto auto;
width:100%;
}
.opt02{
position:relative;
width:100%;
max-width:960px;
margin:0 auto;
padding:0;
}
.opt02 img{width:100%;}
.opt03{
position:relative;
width:100%;
max-width:750px;
margin:0 auto 20px auto;
padding:0;
}
.opt03 img{width:100%;}
.opt_box{
width:100%;
max-width:750px;
margin:0 auto;
padding:0 40px;
box-sizing:border-box;
}
.opt_box form{
width:100%;
max-width:670px;
margin:0 auto;
padding:0;
box-sizing:border-box;
}
.opt_box form input[type=text]{
font-family: "ヒラギノ角ゴ Pro W3",Osaka,"メイリオ","Hiragino Kaku Gothic Pro","ＭＳ Ｐゴシック","MS PGothic",Arial,Sans-Serif;
font-size:18px;
line-height:30px;
width:100%;
margin:0 0 20px 0;
padding:10px;
text-align:left;
background:#f6f6f5;
border:1px solid #333333;
box-sizing:border-box;
}
.opt_box form p{
width:100%;
margin:0;
padding:0;
border-radius:10px;
box-shadow:2px 2px 4px 0px rgba(0,0,0,0.5);
overflow:hidden;
background:#ffffff;
}
.opt_box form input[type=image]{
position:relative;
width:100%;
margin:0;
}
.opt_box form input[type=image]:hover{opacity:0.5;}
.opt_text{
width:100%;
max-width:670px;
margin:0 auto;
padding:30px 0 0 0;
font-size:12px;
line-height:20px;
text-align:justify;
color:#ecf7fb;
box-sizing:border-box;
}
@media only screen and (max-width:750px){
.opt{padding:0 0 40px 0;
background:#000000 url(../img/opt_bg_sp.png) no-repeat center top;
background-size:100% auto;}
.opt01{}
.opt01 img{margin:-14% auto auto auto;}
.opt02{}
.opt02 img{}
.opt_box{
max-width:100%;
padding:0 20px;
}
.opt_box form{}
.opt_box form input[type=text]{
font-family: "ヒラギノ角ゴ Pro W3",Osaka,"メイリオ","Hiragino Kaku Gothic Pro","ＭＳ Ｐゴシック","MS PGothic",Arial,Sans-Serif;
font-size:15px;
line-height:30px;
width:100%;
margin:0 0 10px 0;
padding:10px;
}
.opt_box form input[type=image]{}
.opt_box form input[type=image]:hover{}
.opt_text{padding:20px 0 0 0;}
}

/* ----------------------- CSS Information 
 Style Info: TITLE
--------------------------------------- */
.title{
position:relative;
width:100%;
max-width:750px;
margin:0 auto 60px auto;
padding:40px 0;
opacity:0;
transition:all ease 1s;
}
.title h1{
display:block;
margin:0 auto;
padding:0;
width:100%;
max-width:750px;
box-sizing:border-box;
}
.title img{width:100%;}
.title.scrollin{opacity:1;}
.title:before,.title:after{
content:"";
position:absolute;
left:0;
right:0;
display:block;
padding:0;
width:0;
height:4px;
border:0;
background:#e4459f;
background:-moz-linear-gradient(left,#e4459f,#3ebcea);
background:-webkit-linear-gradient(left,#e4459f,#3ebcea);
background:linear-gradient(to right,#e4459f,#3ebcea);
}
.title:before{top:0;margin:0 auto 0 0;}
.title:after{bottom:0;margin:0 0 0 auto;}
.title.scrollin:after,.title.scrollin:before{animation:title_hr 0.5s linear both;}
@keyframes title_hr{0%{width:0%;}100%{width:100%;}}
@media only screen and (max-width:750px){
.title{
margin:0 0 30px 0;
padding:30px 0;
}
}

/* ----------------------- CSS Information 
 Style Info: CONTENTS
--------------------------------------- */
.contents{
margin:0;
padding:120px 0;
width:100%;
position:relative;
box-sizing:border-box;
}
.contents .flexbox{
margin:0 auto;
padding:0;
width:100%;
max-width:1500px;
position:relative;
box-sizing:border-box;
display:flex;
flex-direction:reverse;
align-items:stretch;
}
.contents .textbox{
width:750px;
margin:0;
padding:0;
box-sizing:border-box;
color:#f6f6f5;
}
.contents .imgbox{
flex:1;
margin:0;
padding:0;
box-sizing:border-box;
position:relative;
}
.contents .imgbox img{display:none;}
@media only screen and (max-width:750px){
.contents{padding:30px 0 60px 0;}
.contents .flexbox{display:block;}
.contents .textbox{
width:100%;
min-width:320px;
padding:0;
}
.contents .text{
padding:0 20px;
text-align:justify;
}
.contents .text br{display:none;}
.contents .imgbox{display:none;}
.contents .imgbox img{display:none;}
}


/* ----------------------- CSS Information 
 Style Info: CONTENTS01
--------------------------------------- */
#contents01{
background:#030d29 url(../img/contents01_bg_pc.png) no-repeat center top;
background-size:cover;
}
#contents01 .text{padding:0 40px;text-align:justify;}
#contents01 .text img{width:100%;max-width:670px;margin:0 auto;}
@media only screen and (max-width:750px){
#contents01{
background:#030d29 url(../img/contents01_bg_sp.png) no-repeat center top;
background-size:100% auto;
}
#contents01 .text{padding:0 20px;text-align:justify;}
#contents01 .text p.text_center br{display:block;}
}

/* ----------------------- CSS Information 
 Style Info: CONTENTS02
--------------------------------------- */
#contents02{
padding:120px 0 60px 0;
background:#030d29 url(../img/contents02_bg_pc.png) no-repeat center top;
background-size:cover;
}
#contents02 .textbox{padding:0;}
#contents02 .text{
margin:0 20px;
padding:40px;
background:rgba(0,0,0,0.5);
box-sizing:border-box;
}
#contents02 .text ul{margin:0;padding:0;list-style:none;}
#contents02 .text ul li{
position:relative;
margin:0;
padding:10px 0 10px 30px;
font-size:18px;
line-height:30px;
font-weight:bold;
text-align:left;
}
#contents02 .text ul li:before{
content:"";
display:block;
position:absolute;
top:14px;
left:0;
width:20px;
height:20px;
background:#e4459f;
background:-moz-linear-gradient(top,#e4459f,#8e83c6);
background:-webkit-linear-gradient(top,#e4459f,#8e83c6);
background:linear-gradient(to bottom,#e4459f,#8e83c6);
box-sizing:border-box;
}
#contents02 .text ul li:after{
content:"";
display:block;
position:absolute;
top:14px;
left:5px;
width:6px;
height:12px;
transform:rotate(40deg);
border-bottom:3px solid #f6f6f5;
border-right:3px solid #f6f6f5;
}
@media only screen and (max-width:750px){
#contents02{
padding:30px 0;
background:#030d29 url(../img/contents02_bg_sp.png) no-repeat center top;
background-size:100% auto;
}
#contents02 .textbox{}
#contents02 .text{padding:20px;}
#contents02 .text ul{}
#contents02 .text ul li{
padding:10px 0 10px 26px;
font-size:14px;
line-height:24px;
text-align:justify;
}
#contents02 .text ul li:before{
top:14px;
left:0;
width:16px;
height:16px;
}
#contents02 .text ul li:after{
top:14px;
left:4px;
width:5px;
height:10px;
}
}

/* ----------------------- CSS Information 
 Style Info: PROFILE
--------------------------------------- */
#profile{
position:relative;
width:100%;
margin:0;
padding:120px 0;
background:#222222;
box-sizing:border-box;
}
#profile .flexbox{
position:relative;
width:100%;
max-width:1480px;
margin:0 auto;
padding:0 40px;
box-sizing:border-box;
display:flex;
flex-direction:reverse;
align-items:stretch;
}
#profile .textbox{
position:relative;
margin:0 auto;
padding:0;
width:50%;
max-width:540px;
box-sizing:border-box;
}
#profile .profile01{padding:0 20px 0 0;}
#profile .profile02{padding:0 0 0 20px;}
#profile img{width:100%;}
#profile h2{
position:relative;
display:block;
margin:-30px 30px 30px 30px;
padding:10px 0;
font-size:19px;
line-height:40px;
font-weight:bold;
color:#f6f6f5;
background:rgba(228,69,159,0.9);
background:-moz-linear-gradient(left,rgba(228,69,159,0.9),rgba(63,188,234,0.9));
background:-webkit-linear-gradient(left,rgba(228,69,159,0.9),rgba(63,188,234,0.9));
background:linear-gradient(to right,rgba(228,69,159,0.9),rgba(63,188,234,0.9));
z-index:100;
}
#profile .text{
margin:0;
padding:0;
width:100%;
font-size:14px;
line-height:20px;
text-align:justify;
color:#f6f6f5;
box-sizing:border-box;
}
#profile .text p{padding:0 0 20px 0;}
#profile .text p:last-child{padding:0;}
#profile .text dl{margin:0 0 20px 0;padding:0;}
#profile .text dt{
display:flex;
align-items:center;
font-weight:bold;
color:#e4459f;
}
#profile .text dt:after{
content:"";
flex-grow:1;
border-bottom:1px solid #e4459f;
margin-left:10px;
padding-right:20px;
}
@media only screen and (max-width:768px){
#profile{padding:30px 0;}
#profile .flexbox{
max-width:768px;
margin:0 auto;
padding:0;
display:block;
}
#profile .textbox{width:100%;max-width:710px;margin:0 auto;}
#profile .profile01{padding:0 20px 40px 20px;}
#profile .profile02{padding:0 20px 0 20px;}
#profile img{width:100%;}
#profile h2{
position:relative;
display:block;
margin:-20px 20px 20px 20px;
padding:10px 0;
font-size:16px;
line-height:20px;
}
#profile .text{font-size:14px;line-height:30px;}
#profile .text p{}
#profile .text p:last-child{}
#profile .text dl{}
#profile .text dt{}
#profile .text dt:after{}
}

/* ----------------------- CSS Information 
 Style Info: PERIOD
--------------------------------------- */
#period{
position:relative;
width:100%;
margin:0;
padding:120px 0;
background:#333333 url(../img/bg.png) repeat center top;
}
#period .flexbox{
position:relative;
width:100%;
max-width:1280px;
margin:0 auto 60px auto;
padding:0 40px;
box-sizing:border-box;
display:flex;
flex-direction:reverse;
align-items:stretch;
}
#period .textbox{
margin:0;
padding:0;
box-sizing:border-box;
flex:1;
}
#period .number{
display:block;
width:160px;
margin:0 auto 0 0;
padding:5px 10px;
font-size:14px;
line-height:20px;
font-weight:bold;
color:#f6f6f5;
background:#e4459f;
background:-moz-linear-gradient(left,#e4459f,#3ebcea);
background:-webkit-linear-gradient(left,#e4459f,#3ebcea);
background:linear-gradient(to right,#e4459f,#3ebcea);
box-sizing:border-box;
}
#period h2{
margin:0;
padding:20px 30px;
font-size:20px;
line-height:30px;
text-align:left;
font-weight:bold;
color:#fff799;
}
#period .text{
margin:0;
padding:0 30px 30px 30px;
width:100%;
text-align:justify;
box-sizing:border-box;
color:#f6f6f5;
}
#period .text p{
margin:0;
padding:0;
}
#period .imgbox{
position:relative;
width:40%;
margin:0;
padding:0;
}
#period .imgbox img{width:100%;}
@media only screen and (max-width:750px){
#period{padding:30px 0 100px 0;}
#period .flexbox{
max-width:750px;
margin:0 auto;
padding:0 20px;
display:block;
}
#period .textbox{
margin:0;
padding:0;
}
#period .number{
display:block;
width:100%;
margin:0 auto;
padding:5px;
font-size:14px;
line-height:20px;
}
#period h2{
padding:20px 0;
font-size:17px;
line-height:30px;
text-align:center;
}
#period .text{padding:0 0 40px 0;}
#period .text p{}
#period .imgbox{width:100%;}
#period .imgbox img{width:100%;box-shadow:none;}
}

/* ---------------------- CSS Information 
 Style Info: SERVICE
--------------------------------------- */
#service{
width:100%;
max-width:1280px;
margin:0 auto;
padding:0 30px;
box-sizing:border-box;
}
.title_service{
font-size:16px;
line-height:24px;
border-left:5px solid #e4459f;
text-align:left;
color:#f6f6f5;
font-weight:bold;
margin:0;
padding:0 0 0 5px;
}
.service_pc{
display:table;
width:100%;
margin:20px auto 0 auto;
box-sizing:border-box;
text-align:center;
color:#666666;
}
.service_pc th{
background:#3ebcea;
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;
}
.free{
box-sizing:border-box;
border:6px solid #e4459f;
}
.service_sp{display:none;}
@media only screen and (max-width:750px){
#service{
max-width:750px;
margin:0 auto;
padding:0 20px;
box-sizing:border-box;
}
.title_service{
font-size:14px;
line-height:20px;
}
.service_pc{display:none;}
.service_sp{
display:block;
margin:20px 0 0 0;
color:#666666;
}
.service_sp dt{
background:#0e8eb9;
color:#ffffff;
font-size:14px;
line-height:20px;
text-align:center;
padding:10px;
}
.service_sp dd{
font-size:14px;
line-height:20px;
text-align:center;
padding:10px;
background:#f6f6f5;
}
}

/* ---------------------- CSS Information 
 Style Info: FOOTER
--------------------------------------- */
footer{
width:100%;
margin:0;
padding:40px 20px;
text-align:center;
color:#d1d1d1;
background:#121619;
box-sizing:border-box;
}
footer a:link{color:#d1d1d1;text-decoration:none;}
footer a:hover{color:#d1d1d1;text-decoration:underline;}
footer a:visited{color:#d1d1d1;text-decoration:none;}
footer a:active{color:#d1d1d1;text-decoration:none;}
#fnav{
margin:0 auto;
padding:0;
text-align:center;
}
#fnav ul{
text-align:center;
list-style-type:none;
padding:0;
}
#fnav li{
display:inline-block;
/display:inline;
/zoom:1;
margin:0 20px 0 0;
padding:0 0 0 8px;
text-align:center;
font-size:12px;
line-height:20px;
border-left:2px solid #e4459f;
}
#fnav li:last-child{margin:0;}
.attention{
margin:0;
padding:40px 0 40px 0;
text-align:center;
font-size:12px;
line-height:20px;
}
.attention p{margin:0;padding:0;}
address{
display:block;
margin:0;
padding:40px 0 0 0;
border-top:1px solid #404040;
text-align:center;
font-size:12px;
line-height:20px;
}
@media only screen and (max-width:768px){
footer{padding:40px 20px;}
nav ul{line-height:30px;}
#fnav li{
display:block;/display:block;
margin:0 0 20px 0;
text-align:left;
}
.attention{text-align:justify;}
.attention br,.sp_no{display:none;}
}


/* --------------------------------- CSS Information 
 Style Info: fadein
------------------------------------------------- */
.fadein{opacity:0;transition:all ease 1s;}
.fadein.scrollin{opacity:1;}
/*左から----------*/
.fadein_left{
opacity:0;
transform:translateX(-40px);
transition:all 1s;
}
.fadein_left.scrollin{
opacity:1;
transform:translateX(0);
}
/*右から----------*/
.fadein_right{
opacity:0;
transform:translateX(40px);
transition:all 1s;
}
.fadein_right.scrollin{
opacity:1;
transform:translateX(0);
}
/*上から----------*/
.fadein_top{
opacity:0;
transform:translateY(-20px);
transition:all 1s;
}
.fadein_top.scrollin{
opacity:1;
transform:translateY(0);
}
/*下から----------*/
.fadein_bottom{
opacity:0;
transform:translateY(20px);
transition:all 1s;
}
.fadein_bottom.scrollin{
opacity:1;
transform:translateY(0);
}