@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400&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: underline;color: #666666;}
a:visited{text-decoration: none;color: #66666;}
a:hover{text-decoration: underline;color: #999999;}
a:active{text-decoration: none;color: #66666;}
/*font*/
.b{font-weight:bold;}
.ul{text-decoration:underline;}
.bg{background-color:#fff45c;}
.big{font-size:20px;line-height:30px;}@media only screen and (max-width:750px){.big{font-size:16px;line-height:24px;}}
.small{font-size:12px;line-height:20px;}
.red{color:#b7282e;}
.text_center{text-align:center;}
.text_right{text-align:right;}

/*----- image -----*/
.img1280{width:100%;max-width:1280px;margin:0 auto;}
.img960{width:100%;max-width:960px;margin:0 auto;}
.img900{width:100%;max-width:900px;margin:0 auto;}
.img750{width:100%;max-width:750px;margin:0 auto;}
.pc{display:block;}
.sp{display:none;}
@media only screen and (max-width:750px){
.pc{display:none;}
.sp{display:block;}
}

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

/* ----------------------- CSS Information 
 Style Info: HEADER
--------------------------------------- */
header{
position:relative;
width:100%;
margin:0;
padding:0;
text-align:center;
background:#578a3d url(../img/bg.png) no-repeat center;
background-size:cover;
}
@media only screen and (max-width:750px){header{background:#578a3d;}}

/* ----------------------- CSS Information 
 Style Info: TITLE
--------------------------------------- */
.title{
width:100%;
max-width:960px;
margin:0 auto;
padding:0 30px;
text-align:center;
box-sizing:border-box;
}
.title img{width:100%;max-width:710px;margin:0 auto;}
.title.scrollin:after{
content:"";
display:block;
margin:40px auto 0 auto;
padding:0;
width:0;
height:6px;
background:#fdd033;
animation:title_hr 0.2s linear 0.5s both;
-webkit-animation:title_hr 0.2s linear 0.5s both;
}

@keyframes title_hr{0%{width:0%;}100%{width:80px;}}
@-webkit-keyframes title_hr{0%{width:0%;}100%{width:80px;}}
@media only screen and (max-width:750px){
.title{padding:0 20px;}
.title.scrollin:after{margin:30px auto 0 auto;}
}

/* ----------------------- CSS Information 
 Style Info: 共通設定
--------------------------------------- */
/* -- contents -- */
.contents{
width:100%;
margin:0;
padding:120px 0 120px 0;
position:relative;
background:#ffffff;
}
.contents_box{
width:100%;
max-width:1280px;
margin:0 auto;
padding:40px 0 0 0;
box-sizing:border-box;
}
.flex_wrapper{
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-webkit-box-pack:start;
-ms-flex-pack:start;
justify-content:flex-start;
width:100%;
margin:0 auto;
padding:40px 0 0 0;
box-sizing:border-box;
}
.flex_box{margin:0 15px;box-sizing:border-box;}
@media only screen and (max-width:750px){
.contents{padding:60px 0 20px 0;}
.contents_box{padding:20px 0 0 0;}
.flex_wrapper{padding:30px 10px 0 10px;}
.flex_box{margin:0 10px;box-sizing:border-box;}
}


/* -- text -- */
.text{
width:100%;
max-width:960px;
margin:0 auto;
padding:30px 30px 0 30px;
font-size:16px;
line-height:30px;
text-align:left;
box-sizing:border-box;
}
.text p{margin:0 0 30px 0;padding:0;}
@media only screen and (max-width:750px){
.text{
padding:20px 20px 0 20px;
font-size:14px;
line-height:24px;
text-align:justify;
}
.text p{margin:0 0 20px 0;}
.text br{display:none;}
.text br.sp{display:block;}
}


/* ----------------------- CSS Information 
 Style Info: RECOMMEND
--------------------------------------- */
#recommend{background:#eeeeee;}
#recommend .flex_wrapper{
max-width:1280px;
-ms-flex-wrap:wrap;
flex-wrap:wrap;
}
#recommend .flex_box{
margin:0 1.2%;
width:22.6%;
padding:20px 0;
background:#ffffff;
box-sizing:border-box;
}
#recommend .flex_box .recommend_img{
display:block;
width:75%;
max-width:180px;
margin:0 auto;
}
#recommend .flex_box dl{padding:20px 0 0 0;}
#recommend .flex_box dt{
margin:0;
padding:0;
font-size:17px;
line-height:30px;
font-weight:bold;
text-align:center;
color:#385278;
}
#recommend .flex_box dd{
margin:0;
padding:0 10px;
font-size:14px;
line-height:24px;
text-align:center;
color:#666666;
}
#recommend .flex_box dd br{display:none;}
@media only screen and (max-width:1080px){
#recommend .flex_box dd br{display:block;}
}
@media only screen and (max-width:768px){
#recommend .flex_box{
margin:0 0.7% 6px 0.7%;
width:48.6%;
padding:20px 0;
}
#recommend .flex_box .recommend_img{width:50%;}
#recommend .flex_box dl{padding:20px 0 0 0;}
#recommend .flex_box dt{
font-size:15px;
line-height:30px;
}
#recommend .flex_box dd{
margin:0;
padding:0 10px;
font-size:13px;
line-height:20px;
text-align:center;
}
}

/* ----------------------- CSS Information 
 Style Info: POINT
--------------------------------------- */
#point{background:#f6f6f5}
#point .contents_box{max-width:1260px;}
#point dl{padding:0 0 60px 0;}
#point dt{
position:relative;
display:flex;
align-items:center;
margin:0 30px 0 30px;
padding:0;
font-size:20px;
line-height:30px;
font-weight:bold;
text-align:center;
color:#385278;
box-sizing:border-box;
}
#point dt:before,#point dt:after{
content:"";
flex-grow:1;
border-top:1px solid #385278;
}
#point dt:before{margin-right:20px;}
#point dt:after{margin-left:20px;}
#point dd{
margin:0 30px;
padding:20px 0;
font-size:24px;
line-height:40px;
text-align:center;
font-weight:bold;
}
#point .point_img{
width:100%;
margin:0 auto;
}
#point dd.flex_wrapper{
max-width:1000px;
margin:0 auto;
padding:0;}
#point dd .flex_box{
width:45.5%;
padding:20px;
background:#ffffff;
box-sizing:border-box;
}
#point dd.point01 .flex_box{background:#d9333f;color:#ffffff;}
#point dd .flex_box:first-child{margin:0 3% 0 3%;}
#point dd .flex_box:last-child{margin:0 3% 0 0;}
.offense{
display:block;
width:100%;
margin:0 0 20px 0;
padding:30px;
color:#ffffff;
font-size:30px;
line-height:40px;
background:#d9333f;
box-sizing:border-box;
}
.defence{
display:block;
width:100%;
margin:0 0 20px 0;
padding:30px;
color:#ffffff;
font-size:30px;
line-height:40px;
background:#385278;
box-sizing:border-box;
}
#point dd .flex_box dl{padding:0;}
#point dd .flex_box dt{
position:relative;
display:flex;
align-items:center;
margin:0;
padding:0;
font-size:20px;
line-height:30px;
font-weight:bold;
text-align:center;
color:#385278;
box-sizing:border-box;
}
#point dd .flex_box dd{
margin:0;
padding:20px 0 20px 0;
font-size:16px;
line-height:24px;
text-align:center;
font-weight:normal;
color:#666666;
}
@media only screen and (max-width:768px){
#point{}
#point .contents_box{}
#point dl{padding:0 0 40px 0;}
#point dt{
margin:0 20px 0 20px;
font-size:14px;
line-height:20px;
}
#point dt:before,#point dt:after{}
#point dt:before{margin-right:10px;}
#point dt:after{margin-left:10px;}
#point dd{
margin:0 20px;
padding:20px 0 0 0;
font-size:17px;
line-height:30px;
}
#point .point_img{}
#point dd.flex_wrapper{margin:20px 0 0 0;}
#point dd .flex_box{
width:45.5%;
padding:10px;
}
#point dd.point01 .flex_box{font-size:16px;line-height:30px;}
#point dd .flex_box:first-child{margin:0 3% 0 3%;}
#point dd .flex_box:last-child{margin:0 3% 0 0;}
.offense{
margin:0 0 20px 0;
padding:10px;
font-size:20px;
line-height:30px;
}
.defence{
margin:0 0 20px 0;
padding:10px;
font-size:20px;
line-height:30px;
}
#point dd .flex_box dl{}
#point dd .flex_box dt{
font-size:16px;
line-height:30px;
}
#point dd .flex_box dd{
margin:0;
padding:20px 0 20px 0;
font-size:14px;
line-height:24px;
text-align:justify;
}
}

/* ----------------------- CSS Information 
 Style Info: ABOUT
--------------------------------------- */
#about{
color:#f6f6f5;
background:#1c2f3d url(../img/about_bg_pc.png) no-repeat center right;
background-size:cover;
}
@media only screen and (max-width:750px){
#about{
background:#1c2f3d url(../img/about_bg_sp.png) no-repeat center;
background-size:cover;
}
}

/* ----------------------- CSS Information 
 Style Info: STRENGTH
--------------------------------------- */
#strength{background:#eeeeee;}
#strength .flex_wrapper{
max-width:1500px;
-ms-flex-wrap:wrap;
flex-wrap:wrap;
}
#strength .flex_box{
margin:0 2% 30px 0;
width:22.5%;
padding:20px 0;
background:#ffffff;
box-sizing:border-box;
}
#strength .flex_box:nth-child(1),#strength .flex_box:nth-child(5),#strength .flex_box:nth-child(9){margin:0 2% 30px 2%;}
#strength .flex_box .strength_img{
display:block;
width:50%;
max-width:120px;
margin:0 auto;
}
#strength .flex_box dl{padding:20px 0 0 0;}
#strength .flex_box dt{
margin:0 0 10px 0;
padding:0;
font-size:18px;
line-height:30px;
font-weight:bold;
text-align:center;
color:#385278;
}
#strength .flex_box dd{
margin:0;
padding:0 20px;
font-size:14px;
line-height:24px;
text-align:justify;
color:#666666;
}
#strength .flex_box dt br{display:none;}
@media only screen and (max-width:1080px){
#strength .flex_box dt{
font-size:17px;
line-height:24px;
}
#strength .flex_box dt br{display:block;}
}
@media only screen and (max-width:768px){
#strength .flex_box{
margin:0 0.7% 6px 0.7%;
width:48.6%;
padding:20px 0;
}
#strength .flex_box:nth-child(1),#strength .flex_box:nth-child(3),#strength .flex_box:nth-child(5),#strength .flex_box:nth-child(7),#strength .flex_box:nth-child(9){margin:0 0.7% 6px 0.7%;}
#strength .flex_box .strength_img{width:40%;}
#strength .flex_box dl{padding:20px 0 0 0;}
#strength .flex_box dt{margin:0 0 15px 0;font-size:16px;}
#strength .flex_box dd{
margin:0;
padding:0 10px;
font-size:13px;
line-height:20px;
}
#strength .flex_box dd br{display:none;}
}

/* ----------------------- CSS Information 
 Style Info: SUPPORT
--------------------------------------- */
#support{
color:#333333;
background:#eeeeee url(../img/support_bg_pc.png) no-repeat center right;
background-size:cover;
}
@media only screen and (max-width:750px){
#support{
background:#eeeeee url(../img/support_bg_sp.png) no-repeat center;
background-size:cover;
}
}

/* ----------------------- CSS Information 
 Style Info: FLOW
--------------------------------------- */
#flow{background:#f6f6f5;}
#flow .flex_wrapper{max-width:1000px;}
#flow .flex_box{
margin:0 2.5%;
width:30%;
padding:20px;
background:#ffffff;
box-sizing:border-box;
}
#flow .flex_box:first-child{margin:0 0 0 2.5%;}
#flow .flex_box:last-child{margin:0 2.5% 0 0;}
#flow .flex_box .flow_img{
display:block;
width:100%;
margin:0 auto;}
#flow .flex_box dl{padding:20px 0 0 0;}
#flow .flex_box dt{
position:relative;
display:flex;
align-items:center;
margin:0 0 10px 0;
padding:0;
font-size:16px;
line-height:20px;
font-weight:bold;
text-align:center;
color:#385278;
box-sizing:border-box;
}
#flow dt:before,#flow dt:after{
content:"";
flex-grow:1;
border-top:1px solid #385278;
}
#flow dt:before{margin-right:20px;}
#flow dt:after{margin-left:20px;}
#flow .flex_box dd{
margin:0;
padding:0;
font-size:20px;
line-height:30px;
font-weight:bold;
text-align:center;
color:#666666;
}
@media only screen and (max-width:768px){
#flow{}
#flow .flex_wrapper{}
#flow .flex_box{
margin:0 2.5%;
width:30%;
padding:10px 10px 20px 10px;
}
#flow .flex_box:first-child{margin:0 0 0 2.5%;}
#flow .flex_box:last-child{margin:0 2.5% 0 0;}
#flow .flex_box .flow_img{}
#flow .flex_box dl{padding:10px 0 0 0;}
#flow .flex_box dt{
margin:0 0 5px 0;
font-size:13px;
line-height:20px;
}
#flow dt:before,#flow dt:after{}
#flow dt:before{margin-right:10px;}
#flow dt:after{margin-left:10px;}
#flow .flex_box dd{font-size:16px;line-height:20px;}
}

/* ----------------------- CSS Information 
 Style Info: FAQ
--------------------------------------- */
#faq{background:#eeeeee;}
#faq dl{
width:100%;
max-width:960px;
margin:40px auto 0 auto;
padding:0 30px;
box-sizing:border-box;
}
#faq dt{
font-size:16px;
line-height:30px;
text-align:justify;
margin:0;
padding:20px 20px 20px 70px;
background:#ffffff url(../img/faq_q.png) no-repeat 20px 20px;
background-size:30px 30px;
border-radius:10px 10px 0 0;
border-bottom:1px solid #a2a5aa;
}
#faq dd{
font-size:16px;
line-height:30px;
text-align:justify;
margin:0 0 30px 0;
padding:20px 20px 20px 70px;
background:#ffffff url(../img/faq_a.png) no-repeat 20px 20px;
background-size:30px 30px;
border-radius:0 0 10px 10px;
}
#faq dd:last-child{margin:0;}
.faq_img{margin:20px auto 0 auto;}
@media only screen and (max-width:750px){
#faq{padding:40px 0 40px 0;}
#faq dl{
margin:20px 0 0 0;
padding:0 20px;
}
#faq dt{
font-size:14px;
line-height:24px;
padding:20px 20px 20px 40px;
background:#ffffff url(../img/faq_q.png) no-repeat 10px 20px;
background-size:24px 24px;
}
#faq dd{
font-size:14px;
line-height:24px;
text-align:justify;
margin:0 0 20px 0;
padding:20px 20px 20px 40px;
background:#ffffff url(../img/faq_a.png) no-repeat 10px 20px;
background-size:24px 24px;
}
}

/* ----------------------- CSS Information 
 Style Info: LINK
--------------------------------------- */
.link{
width:100%;
margin:0;
padding:30px;
box-sizing:border-box;
background:#ffffff;
}
@media only screen and (max-width:750px){.link{padding:20px;}}

/* ----------------------- CSS Information 
 Style Info: CTA
--------------------------------------- */
#cta{
width:100%;
margin:0;
padding:60px 0;
text-align:center;
background:#333333 url(../img/bg.png) no-repeat center;
background-size:cover;
}
/* -- outline -- */
.outline{
margin:0 auto;
padding:20px 30px 40px 30px;
width:100%;
max-width:960px;
box-sizing:border-box;
}
.outline dl{}
.outline dt{
position:relative;
display:flex;
align-items:center;
margin:0 0 4px 0;
text-align:left;
font-size:14px;
line-height:20px;
color:#f6f6f5;
}
.outline dt:after{
content:"";
flex-grow:1;
border-top:1px solid #f6f6f5;
margin-left:10px;padding-right:20px;
}
.outline dd{
padding:0 0 20px 0;
text-align:justify;
font-size:14px;
line-height:24px;
color:#cccccc;
}

@media only screen and (max-width:750px){
#cta{
padding:0 0 40px 0;
background:#333333;
}
/* -- outline -- */
.outline{padding:40px 20px 20px 20px;}
.outline dl{}
.outline dt{}
.outline dt:after{}
.outline dd{
padding:0 0 20px 0;
text-align:justify;
font-size:13px;
line-height:24px;
}
}


/* ----------------------- CSS Information 
 Style Info: BTN
--------------------------------------- */
.btn{
width:100%;
margin:0;
padding:0;
}
.btn_flex{
display:flex;
align-items:flex-end;
width:100%;
max-width:960px;
margin:0 auto;
padding:0 30px;
box-sizing:border-box;
}
.btn_box{width:50%;margin:0;box-sizing:border-box;}
.btn_box:first-child{padding:0 10px 0 0;}
.btn_box:last-child{padding:0 0 0 10px;}
.btn_img{
width:100%;
max-width:440px;
margin:0 auto;
border-radius:10px;
box-shadow:2px 2px 4px 0px rgba(0,0,0,0.5);
background:#ffffff;
overflow:hidden;
}
.btn_img img{width:100%;}
.btn_img img:hover{opacity:0.5;}
@media only screen and (max-width:750px){
.btn{}
.btn_flex{display:block;padding:0 20px;}
.btn_box{width:100%;}
.btn_box:first-child{padding:0;margin:0 0 20px 0;}
.btn_box:last-child{padding:0;}
.btn_img{max-width:670px;}
.btn_img img{}
.btn_img img:hover{}
}

/* --------------------------------- CSS Information 
 Style Info: FOOTER
------------------------------------------------- */
footer{
margin:0;
padding:40px 0;
width:100%;
background:#222222;
color:#d1d1d1;
}
#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:12px;
line-height:20px;
display:inline-block;
padding:0 20px;
border-right:1px solid #666666;
}
#fnav li:last-child{border-right:none;}
address{
text-align:center;
font-size:12px;
line-height:20px;
padding:0;
}
@media only screen and (max-width:767px){
#fnav{margin:0 0 40px 0;}
#fnav li{
display:block;
border-right:0;
margin:0 0 20px 0;
}
}

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