@charset "utf-8";
/* ------------------------------------------------------------ 共通 */
.flex{display: flex;}
body{min-width: 1200px; }
.over_box{overflow: hidden;background: #FFFAEB;}

/* ------------------------------------------------------------ header */
header{position: fixed; z-index: 2000; min-width: 1200px; width: 100%;}
header div.flex{width: 100%; justify-content: space-between;padding: 34px 61px 0 25px; }
header nav ul{padding: 8px 0 0;}
header nav ul li:not(:last-child){margin: 0 41px 0 0;}
header nav ul li a{font-size: 14px; line-height: 160%; }

/* ------------------------------------------------------------ #cta */
#cta{background: #E6F6B0; }
#cta .flex{position: relative;}
#cta .flex .img_1{position: relative; ; left: -79px; bottom: 0px;margin: -42px 0 0;}
#cta .flex .tt{width: 550px; height: auto; text-align: center; padding: 51px 0;}
#cta .flex .tt h3{color: #1EAC4B; font-size: 26px; line-height: 160%;font-family: fot-tsukubrdgothic-std, sans-serif; font-weight: 700; font-style: normal;}
#cta .flex .tt img{padding: 19px 0 0;} 
#cta .flex .tt p{font-size: 18px; line-height: 160%; padding: 19px 0 0;}
#cta .flex .tt a{background: #00923F; border-radius: 100px; width: 352px; margin: 29px auto 0; color: #fff; text-align: center; position: relative; line-height: 160%; padding: 19px 0 24px; display: block;transition: 0.5s;}
#cta .flex .tt a.thumb-hover{opacity: 0.8; transition: 0.5s;}
#cta .flex .tt a:before{content: ""; display: block; position: absolute; right: 27px; top: 50%; transform: translateY(-50%); background:url(../images/common/icn_2.svg) no-repeat center center; background-size: 100%; width: 17px; height: 14px;}

/* ------------------------------------------------------------.page_top */
.page_top{position: fixed; right: 18px; bottom: 60px; z-index: 100;display: none;}

/* ------------------------------------------------------------ #footer */
footer{width: 100%; height: auto; min-width: 1200px; padding: 44px 0 34px; background: #fff;}
footer .flex{width: 100%; height: auto;padding: 0px 52px 43px;align-items: center; }
footer .flex ul{display: flex; align-items: center;margin: 0 0 0 86px;}
footer .flex ul li:not(:last-child){margin: 0 41px 0 0;}
footer .flex ul li a{font-size: 14px; line-height: 160%;}
footer p{text-align: center; font-size: 12px; font-family: 'Noto-Sans-JP-Regular';}

/* ------------------------------------------------------------ mobile ------------------------------------------------------------ */
@media only screen and (max-width: 640px) {
	/* ------------------------------------------------------------ 共通 */
	body{min-width: 100%;}
	body.stop{overflow: hidden;}
	/* ------------------------------------------------------------ header */
	header{ min-width: 100%}
	header h1{width: 54px; height: auto; position: relative; z-index: 1000;}
	header div.flex{width: 100%; justify-content: space-between;padding: 6px 8px 0 16px; }
	header nav{position: absolute; width: 100%; height: 100vh; background: #fff; display: none; left: 0px; top: 0px; }
	header nav ul.flex{padding: 100px 20px 0; display: block;}
	header nav ul li:not(:last-child){margin: 0;}
	header nav ul li{border-bottom: 1px solid #000; width: 100%;}
	header nav ul li a{font-size: 14px; line-height: 160%; width: 100%;height: auto; padding: 20px 16px 20px; display: block; position: relative;}
	header nav ul li a:before{display: block; content: ""; width: 12px; height: 12px; transform: translateY(-50%) rotateZ(-45deg); border-bottom: 1px solid #000; border-right: 1px solid #000; position: absolute; top: 50%; right: 20px;}
	header .header_btn{width: 39px; height: 39px; background: #003A83; position: relative; display: block; border-radius: 1000px; z-index: 1000;}
	header .header_btn span{display: block; width: 15px; height: 2px; border-radius: 100px; position: absolute; background: #fff; transition: 0.5s;}
	header .header_btn span.btn_line_1{top: 14px; left: 50%; transform: translateX(-50%);}
	header .header_btn span.btn_line_2{top: 50%; left: 50%; transform: translate(-50%,-50%);}
	header .header_btn span.btn_line_3{top: 24px; left: 50%; transform: translateX(-50%);}
	header .header_btn.active span{transition: 0.5s;width: 15px; height: 2px; }
	header .header_btn.active span.btn_line_1{top: 50%; transform: translate(-50%,-50%) rotateZ(-45deg);}
	header .header_btn.active span.btn_line_2{opacity: 0;}
	header .header_btn.active span.btn_line_3{top: 50%; transform: translate(-50%,-50%) rotateZ(45deg);}

	/* ------------------------------------------------------------ #cta */
	#cta .flex{display: block;}
	#cta .flex .img_1{ left: -17%; bottom: 0px;margin: -23px 0 0; width: 102.7%;}
	#cta .flex .tt{width: 100%; height: auto; text-align: center; padding: 25px 0 42px;}
	#cta .flex .tt h3{ font-size: 19px; }
	#cta .flex .tt img{padding: 12px 0 0; width: 43.6%;} 
	#cta .flex .tt p{font-size: 14px; line-height: 160%; padding: 17px 0 0;}
	#cta .flex .tt a{width: 89%; margin: 25px auto 0; padding: 16px 0 20px; display: block; font-size: 14px;}
	#cta .flex .tt a:before{right: 27px; top: 50%; width: 13px; height: 12px;}
	
	/* ------------------------------------------------------------.page_top */
	.page_top{right: 0; bottom: 5%; width: 33.1%;}
		
	/* ------------------------------------------------------------ #footer */
	footer{ min-width: 100%; padding: 28px 0 34px;}
	footer .flex{padding: 28px 0 36px; width: 90%; margin: 0 auto;display: block;}
	footer .flex h2{width: 28.3%; height: auto;}
	footer .flex ul{display: block; align-items: center;margin: 43px 0 0;}
	footer .flex ul li:not(:last-child){margin: 0 0 23px;}
	footer .flex ul li a{font-size: 16px; line-height: 160%;position: relative; padding: 0 0 0 29px; display: block;}
	footer .flex ul li a:before{content: ""; display: block; width: 16px; height: 1px; top: 50%; transform: translateY(-50%); left: 0px; background: #003A83;position: absolute;}
	footer p{font-size: 12px; ;}
	}