@charset "UTF-8";

/* ----------------------------------------------------------------------------------------------------
*  基本情報
* --------------------------------------------------------------------------------------------------*/

html,body{
	height: 100%;
}
html{
	font-size: 62.5%;
	/*overflow-y: scroll;*/
}

body, h1, h2, h3, h4, h5, h6, p, address,ul, ol, li, dl, dt, dd,table, th, td, img, form, input, figure {
	margin: 0;
	padding: 0;
	border: none;
	line-height: 100%;
	list-style-type: none;
	font-style: normal;
	font-weight: normal;
	font-family: -apple-system, BlinkMacSystemFont, Roboto, "Segoe UI", "Helvetica Neue", HelveticaNeue, YuGothic, "Yu Gothic Medium", "Yu Gothic", Verdana, Meiryo, sans-serif;
	font-weight: 500;
	text-align: left;
	color: #fff;
}

a{
	text-decoration: none;
	color: #fff;
	transition: all .3s cubic-bezier(0.645, 0.045, 0.355, 1);
}
div,h1,h2,h3,h4,h5,h6,p,dl,dt,dd,ol,ul,li,form,input,textarea,button,table,tr,th,td,article,aside,footer,header,hgroup,nav,section,a,span,img{
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
}
body{
	width: 100%;
	word-break: break-all;
	-webkit-appearance: none;
	-webkit-text-size-adjust: 100%;
}
h1,h2,h3,h4,h5,p{
	text-align: justify;
	text-justify: distribute;
	line-height: 1.5;
}
img{
	max-width: 100%;
	height: auto;
	vertical-align: bottom;
}
p img{
	margin: 0 0.1em;
	vertical-align: unset;
}
input, button, textarea, select {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
select::-ms-expand {
    display: none;
}
p{
	font-weight: 100;
}

.aligncenter{
    display: block;
    margin: 0 auto;
}

.alignright{
	float: right;
}

.alignleft{
	float: left;
}

.flex{
	display: flex;
	display: -webkit-flex;
	display: -ms-flex;
}
.flexwrap_wrap{
	-webkit-flex-wrap: wrap;
	    -ms-flex-wrap: wrap;
	        flex-wrap: wrap;
}
.flexdirection_column{
	-webkit-flex-direction: column;
	    -ms-flex-direction: column;
	        flex-direction: column;
}
.justifycontent_flexend{
	-webkit-justify-content: flex-end;
	        justify-content: flex-end;
}
.justifycontent_center{
	-webkit-justify-content: center;
	        justify-content: center;
}
.justifycontent_spacebetween{
	-webkit-justify-content: space-between;
	        justify-content: space-between;
}
.justifycontent_spacearound{
	-webkit-justify-content: space-around;
	        justify-content: space-around;
}
.aligncontent_spacebetween{
	-webkit-align-content: space-between;
	        align-content: space-between;
}
.alignitems_center{
	-webkit-align-items: center;
	        align-items: center;
}
.alignitems_flexend{
	-webkit-align-items: flex-end;
	        align-items: flex-end;
}
.alignitems_flexstart{
	-webkit-align-items: flex-start;
	        align-items: flex-start;
}
.mb1em{
	margin-bottom: 1em;
}
.mb2em{
	margin-bottom: 2em;
}
p{
	font-size: 1.5rem;
	font-weight: 600;
	line-height: 1.75;
}
.tab_wide,
.sp{
	display: none;
}
.fadeup {
	opacity: 0;
}
.fadeup.on {
  animation: fadeup 1s cubic-bezier(0.33, 1, 0.68, 1) 1 forwards;
}
 
@keyframes fadeup {
  0% {
    transform: translateY(50px);
    opacity: 0;
  }
  80% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ------------------------------
    clearfix
------------------------------ */

.cf:after{
	content: ".";
	display: block;
	height: 0;
	font-size: 0;
	clear: both;
	visibility: hidden;
}

.cf{
	display: inline-block;
}

/* Hides from IE Mac */
* html .cf{
	height: 1%;
}
.cf{
	display: block;
}
/* End Hack */


/* ---------------------------------------
  contents_wrap
-----------------------------------------*/
.contents_wrap {
	position: relative;
	width: 100%;
}

.contents {
	width: 100%;
	margin: 0 628px 0 auto;
	overflow: hidden;
	position: relative;
	z-index: 1;
}

@media screen and (min-width: 801px) {
	.contents {
		max-width: 37.5rem;
	}
}

.blue{
	background: #00469b;
}
.yellow{
	background: #fff000;
}
.yellow p{
	color: #00469b;
}
section{
	position: relative;
	padding: 90px 0 150px;
}
section h2{
	position: absolute;
	top: -55px;
	left: -2px;
	width: 100%;
}
.txt{
	max-width: 638px;
	width: calc(100% - 62px);
	margin: auto;
}
.txt p + p{
	margin-top: 1.5em;
}
.txt p span{
	font-size: 2rem;
	font-weight: bold;
}
.blue .txt p span{
	color: #fff000;
}
.yellow .txt p span{
	color: #009844;
}
.btn{
	width: 285px;
	margin: 20px auto 35px;
}
.btn a{
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 285px;
	height: 85px;
	margin: auto;
	border-radius: 42px;
	background: #009844;
	box-shadow: 3px 3px #fff000;
	transition: 0.3s ease-in-out;
}
.btn_blue a{
	background: #00469b;
	box-shadow: 3px 3px #009844;
}
.btn a:hover{
	box-shadow: none;
	transform: translate(3px, 3px);
}
.white_box_circle{
	width: calc(100% - 20px);
	padding: 25px 46px 25px 40px;
	margin: 36px 0 0;
	background: #fff;
	border-radius: 0 100px 100px 0;
}
.white_box_circle h3{
	margin-bottom: 10px;
}
.white_box_circle p{
	font-size: 1.4rem;
	line-height: 1.85;
}
.white_box{
	width: calc(100% - 40px);
	padding: 35px 20px 50px;
	margin: auto;
	background: #fff;
}
.white_box h3{
	margin-bottom: 30px;
}
.green_box_circle{
	width: calc(100% - 20px);
	padding: 25px 46px 25px 40px;
	margin: 36px 0 0;
	background: #009844;
	border-radius: 0 100px 100px 0;
}
.green_box_circle h3{
	margin-bottom: 10px;
}
.green_box_circle p{
	font-size: 1.4rem;
	line-height: 1.85;
}

#sec_fv{
	padding: 0;
}

#sec01{
	padding: 45px 0 175px;
}
#sec01 h2{
	position: unset;
	margin-left: -2px;
	margin-bottom: 50px;
}
#sec01 figure{
	max-width: 638px;
	width: calc(100% - 72px);
	margin: 65px auto 0;
}
#sec01 .btn{
	margin: 80px auto 0;
}
#sec01 .btn + .btn{
	margin: 20px auto 0;
}

#sec02 figure{
	margin: 60px 0 50px;
}
#sec02 figure:last-child{
	margin: 50px 0 0;
}
#sec02 .white_box_circle{
	margin: 36px 0 46px;
}

#sec03 figure{
	margin: 50px 0;
}
#sec03 p img{
	vertical-align: text-bottom;
}

#sec05 figure{
	margin: 50px 0 0;
}

#sec08{
	padding: 110px 0 140px;
}

#sec13{
	padding: 90px 0 50px;
}

footer{
	padding: 46px 0 15px;
	background: #009844;
}
footer .btn{
	width: 320px;
	margin: 0 auto;
}
footer .btn a{
	width: 320px;
	height: 76px;
	color: #00469b;
	text-align: center;
	background: #fff;
	box-shadow: none;
}
footer .btn a:hover{
	opacity: 0.5;
	transform: none;
}
footer .flex{
	width: 262px;
	margin: 25px auto 10px;
}
footer .flex p{
	width: 50%;
}
footer .copy{
	font-size: 0.9rem;
	text-align: center;
}
.cnt_l_pc,
.cnt_r_pc{
	display: none;
}

@media screen and (min-width: 801px) {
	.bg_main {
		width: 100%;
		height: 100%;
		display: block;
		position: fixed;
		top: 0;
		left: 0;
		background: url(../img/top_img.svg) repeat-x left 30px, #0dac67;
		background-size: 62px;
	}

	.contents {
		max-width: 37.5rem;
	}

	.cnt_l_pc{
		display: block;
		width: calc(100% - 37.5rem - 628px);
		height: 100vh;
		position: absolute;
		top: 0;
		left: 0;
		background: url(../img/img_left.svg) no-repeat 5% 200px;
		background-size: 95% calc(100vh - 250px - 10px);
	}
	.cnt_r_pc {
		display: flex;
		justify-content: center;
		flex-direction: column;
		width: 628px;
		height: 100vh;
		padding-left: 140px;
		position: absolute;
		top: 0;
		right: 0;
	}
	.cnt_r_pc .menu_title{
		margin-bottom: 50px;
	}
	.cnt_r_pc li{
		margin-bottom: 35px;
	}
	.cnt_r_pc li a{
		position: relative;
		padding-left: 35px;
	}
	.cnt_r_pc li a.is-current:before{
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		bottom: 0;
		width: 25px;
		height: 10px;
		margin: auto;
		background: url(../img/menu_icon.svg) no-repeat center center;
	}
}