@charset "UTF-8";


/* サブセット化したフォントの読み込み */
@font-face {
	font-family: 'Noto Sans Japanese';
	font-style: normal;
	font-weight: 300;
	src: url(../fonts/NotoSans_DemiLight.woff2) format('woff2'),
		 url(../fonts/NotoSans_demilight.woff) format('woff'),
		 url(../fonts/NotoSans_demilight.otf) format('opentype');
}
@font-face {
	font-family: 'Noto Sans Japanese';
	font-style: normal;
	font-weight: 400;
	src: url(../fonts/NotoSans_Regular.woff2) format('woff2'),
		 url(../fonts/NotoSans_regular.woff) format('woff'),
		 url(../fonts/NotoSans_regular.otf) format('opentype');
}
@font-face {
	font-family: 'Noto Sans Japanese';
	font-style: normal;
	font-weight: 500;
	src: url(../fonts/NotoSans_Medium.woff2) format('woff2'),
		 url(../fonts/NotoSans_medium.woff) format('woff'),
		 url(../fonts/NotoSans_medium.otf) format('opentype');
}
@font-face {
	font-family: 'Noto Sans Japanese';
	font-style: normal;
	font-weight: 700;
	src: url(../fonts/NotoSans_Bold.woff2) format('woff2'),
		 url(../fonts/NotoSans_bold.woff) format('woff'),
		 url(../fonts/NotoSans_bold.otf) format('opentype');
}
@font-face {
	font-family: 'Noto Sans Japanese';
	font-style: normal;
	font-weight: 900;
	src: url(../fonts/NotoSans_Black.woff2) format('woff2'),
		 url(../fonts/NotoSans_black.woff) format('woff'),
		 url(../fonts/NotoSans_black.otf) format('opentype');
}


/* サイト全体の基本設定 */
body {
	font-family: "Noto Sans Japanese",sans-serif;
 	width: 100%;
	font-size: 14px;
	margin: 0 auto;
	font-weight: 300;
}

img {width: 100%; display: block;}

ol, ul, li {list-style-type: none;}

a {color: #006837;}

* {box-sizing: border-box;}

/* ====== clearfix ====== */
.clearfix:after{ /*for ModernBrowser*/
	content: ".";
	display: block;
	height: 0;
	clear: both;
	line-height: 0;
	visibility: hidden;
}
.clearfix {zoom: 1;} /*for IE5.5-7*/


/* レスポンシブ用の基本設定 */
.sp_only {
	display: none;
}

/* スマートフォン用 */
@media screen and (max-width: 768px) {
	.sp_only {
		display: block;
	}
	.pc_only {
		display: none;
	}
}





/* ヘッダー設定 */
header {
	position: relative;
}

header .header_wrapper {
	width: 100%;
	background: #fff;
}

header.TOP .header_wrapper {
	max-width: 1140px;
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	-webkit-transform: translateX(-50%);
	background: #fff;
	z-index: 100;
	box-shadow: 0 0 10px #000;
}

.header_container {
	max-width: 1140px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
}

h1.header_logo {
	max-width: 350px;
	padding: 10px;
}

.header_contents {
	max-width: 600px;
	display: flex;
	justify-content: space-between;
}

.header_contents .contents_box {
	padding: 10px;
	margin-right: 10px;
}

.header_contents .contents_box .header_txt {
	font-size: 12px;
	margin-bottom: 10px;
}

.header_contents .contents_box .header_tel {
	font-size: 42px;
	font-weight: 700;
}

.header_contact {
	max-width: 200px;
	max-height: 82px;
	overflow: hidden;
}

.header_contact img {
	transition: 0.3s;
}

.header_contact img:hover {
	transform: scale(1.1);
	opacity: 0.8;
}



/* グローバルナビゲーション設定 */
nav#gNav {
	background: #006837;
}

nav#gNav ul.nav {
	position: relative;
	display: flex;
	justify-content: space-between;
	max-width: 1140px;
	font-size: 18px;
	margin: 0 auto;
}

header.TOP nav#gNav ul.nav {
	background: linear-gradient(to bottom, #006837, #004C37);
}

nav#gNav ul.nav > li {
	position: relative;
	width: 25%;
	text-align: center;
}

nav#gNav ul.nav > li:hover {
	background: #6FAE36;
	-webkit-transition: all .5s;
	transition: all .5s;
}

nav#gNav ul.nav > li > a {
	border-right: 1px solid #fff;
	color: #fff;
	width: 100%;
	display: inline-block;
	text-decoration: none;
	margin: 0.5em auto;
	height: 2em;
	line-height: 2em;
}

nav#gNav ul.nav > li:nth-child(2) > a {
	border-left: 1px solid #fff;
}

header.TOP nav#gNav ul.nav > li:nth-child(2) > a {
	border-left: none;
}

header.TOP nav#gNav ul.nav > li:nth-child(5) > a {
	border: none;
}

nav#gNav ul.nav li ul.sub-menu {
	visibility: hidden;
	opacity: 0;
	z-index: 1;
	display: block;
	position: absolute;
	top: 3em;
	left: 0;
	width: 100%;
	-webkit-transition: all .2s ease;
	transition: all .2s ease;
	background: #6FAE36;
}

nav#gNav ul.nav li:hover ul.sub-menu {
	visibility: visible;
	opacity: 1;
	z-index: 9999;
}

nav#gNav ul.nav li ul.sub-menu li {
	display: block;
	font-size: 16px;
	padding: 0;
	margin: 0;
}

nav#gNav ul.nav li ul.sub-menu li a {
	padding: 10px;
	display: block;
	border-bottom: none;
	padding: 20px;
	line-height: 1.2em;
	text-decoration: none;
	color: #fff;
}

nav#gNav ul.nav li ul.sub-menu li a:hover {
	background: #E2EFD7;
	color: #000;
}



/* フッター設定 */
footer .foot01_wrapper {
	background: #eaeaea;
	margin-top: 50px;
}

footer .foot01_wrapper .foot01_container {
	width: 100%;
	max-width: 1140px;
	display: flex;
	justify-content: space-between;
	margin: 0 auto;
	padding: 40px 0;
}

footer .foot01_wrapper .foot01_container .contents_box {
	width: 18%;
}

footer .foot01_wrapper .foot01_container .contents_box .mainlink {
	font-size: 18px;
	line-height: 1.5em;
	border-bottom: 1px solid #000;
	margin-bottom: 10px;
}

footer .foot01_wrapper .foot01_container .contents_box:first-child .mainlink {
	margin-bottom: 30px;
}

footer .foot01_wrapper .foot01_container .contents_box .btnlink {
	margin-bottom: 20px;
}

footer .foot01_wrapper .foot01_container .contents_box .lowerlink {
	font-size: 14px;
	line-height: 1.5em;
	margin-bottom: 10px;
}

footer .foot01_wrapper .foot01_container .contents_box .btnlink {
	max-width: 250px;
	max-height: 80px;
	overflow: hidden;
}

footer .foot01_wrapper .foot01_container .contents_box .btnlink img {
	transition: 0.3s;
}

footer .foot01_wrapper .foot01_container .contents_box .btnlink img:hover {
	transform: scale(1.1);
	opacity: 0.8;
}

footer .foot01_wrapper .foot01_container .contents_box a {
	color: #000;
	text-decoration: none;
}

footer .foot01_wrapper .foot01_container .contents_box a:hover {
	color: #006837;
}

footer .foot02_wrapper {
	background: #006837;
}

footer .foot02_wrapper .foot02_container {
	width: 100%;
    max-width: 1140px;
	color: #fff;
	padding: 15px 0 10px;
	margin: 0 auto;
}

footer .foot02_wrapper .foot02_container .contents_box {
	display: flex;
	justify-content: space-between;
	border-bottom: 1px solid #fff;
	padding-bottom: 5px;
	align-items: baseline;
}

footer .foot02_wrapper .foot02_container .contents_box h2.foothl {
	font-size: 24px;
	font-weight: 300;
	text-align: left;
}

footer .foot02_wrapper .foot02_container .contents_box .foottxt {
	font-size: 12px;
	line-height: 1.5em;
}

footer .foot02_wrapper .foot02_container .contents_box .foottxt .largetxt {
	font-size: 16px;
	margin-right: 20px;
}

footer .foot02_wrapper .foot02_container .copyright {
	font-size: 12px;
	text-align: right;
	margin-top: 10px;
}



/* 個別設定 */

/* スライドインするコンテンツ */
.slide-left {
	opacity: 0;
	transform: translate(-500px, 0);
	transition: all 0.8s ease-out;
 }

.slide-right {
	opacity: 0;
	transform: translate(500px, 0);
	transition: all 0.8s ease-out;
 }
 

 a.linkbtn {
    width: 300px;
	margin: 0 auto;
	padding: 0 20px;
	display: block;
    background-color: #006837;
    color: #fff;
    font-size: 25px;
    text-decoration: none;
    text-align: left;
    line-height: 2.5em;
    border: 1px solid #006837;
	position: relative;
	background-size: 200% 100%;	
    background-image: -webkit-linear-gradient(left, transparent 50%, rgba(255, 255, 255, 1) 50%);	
    background-image: linear-gradient(to right, transparent 50%, rgba(255, 255, 255, 1) 50%);
    -webkit-transition: background-position .5s cubic-bezier(0.19, 1, 0.22, 1) .1s, color .8s ease 0s, background-color .8s ease;
    transition: background-position .5s cubic-bezier(0.19, 1, 0.22, 1) .1s, color .8s ease 0s, background-color .8s ease;
}

a.linkbtn::after {
	content: "";
	position: absolute;
	top: 20px;
	right: 10px;
	width: 20px;
	height: 20px;
	margin: 0 10px;
	border-top: 1px solid #fff;
	border-right: 1px solid #fff;
	transform: rotate(45deg);
}

a.linkbtn:hover {
	background-color: #fff;
	color: #006837;
	background-position: -100% 100%;
}

a.linkbtn:hover::after {
	border-top: 1px solid #006837;
	border-right: 1px solid #006837;
}

a.linkbtn_s {
    width: 150px;
	margin: 0 auto;
	padding: 10px 10px;
	display: block;
    background-color: #006837;
    color: #fff;
    font-size: 14px;
    text-decoration: none;
    text-align: left;
    line-height: 2.0em;
    border: 1px solid #006837;
	position: relative;
	background-size: 200% 100%;	
    background-image: -webkit-linear-gradient(left, transparent 50%, rgba(255, 255, 255, 1) 50%);	
    background-image: linear-gradient(to right, transparent 50%, rgba(255, 255, 255, 1) 50%);
    -webkit-transition: background-position .5s cubic-bezier(0.19, 1, 0.22, 1) .1s, color .8s ease 0s, background-color .8s ease;
    transition: background-position .5s cubic-bezier(0.19, 1, 0.22, 1) .1s, color .8s ease 0s, background-color .8s ease;
}

a.linkbtn_s::after {
	content: "";
	position: absolute;
	top: 15px;
	right: 5px;
	width: 15px;
	height: 15px;
	margin: 0 5px;
	border-top: 1px solid #fff;
	border-right: 1px solid #fff;
	transform: rotate(45deg);
}

a.linkbtn_s:hover {
	background-color: #fff;
	color: #006837;
	background-position: -100% 100%;
}

a.linkbtn_s:hover::after {
	border-top: 1px solid #006837;
	border-right: 1px solid #006837;
}

.pankuzu {
	padding: 10px 0;
	max-width: 1140px;
	margin: 0 auto;
}

.pankuzu a {
	text-decoration: none;
	color: #000;
}

.pankuzu a:hover {
	color: #006837;
	text-decoration: underline;
}

.page_top .container {
    max-width: 1140px;
    height: 150px;
    margin: 0 auto;
    text-align: center;
}

.page_top .container h2 {
	font-size: 50px;
	line-height: 3em;
	color: #fff;
	font-weight: 500;
}

.page_top .container h2 span {
	font-size: 40px;
}

h3 {
	font-size: 30px;
	line-height: 1.5em;
	font-weight: 400;
	text-align: center;
	border-bottom: 3px solid #C9CACA;
	position:relative;
	margin-bottom: 30px;
}

h3::before {
	content: "";
	position: absolute;
	bottom: -3px;
	left: 50%;
	transform: translate(-50%, 0);
	width: 400px;
	border-bottom: 3px solid #006837;
}

sup {
	font-size: 60%;
	vertical-align: super;
}



/* スマートフォン用 */
@media screen and (max-width: 768px) {

	header.TOP .header_wrapper {
		position: static;
		transform: none;
		-webkit-transform: none;
		box-shadow: none;
	}
	.header_container {
		display: block;
	}

	h1.header_logo {
		width: 70%;
		max-width: 290px;
	}
	
	.header_contents {
		display: none;
	}

	footer .foot01_wrapper .foot01_container {
		padding: 20px;
		flex-wrap: wrap;
	}
	
	footer .foot01_wrapper .foot01_container .contents_box {
		width: 45%;
		padding-bottom: 30px;
	}

	footer .foot01_wrapper .foot01_container .contents_box:last-child {
		width: 100%;
		padding-bottom: 0;
		display: flex;
		justify-content: space-between;
	}

	footer .foot01_wrapper .foot01_container .contents_box .mainlink{
		font-size: 16px;
	}

	footer .foot01_wrapper .foot01_container .contents_box .btnlink {
		width: 49%;
		max-width: 100%;
		max-height: 100%;
	}
	
	footer .foot02_wrapper .foot02_container .contents_box {
		display: block;
		padding: 0 20px;
	}

	footer .foot02_wrapper .foot02_container .contents_box .foottxt {
		padding: 10px 0;
	}

	footer .foot02_wrapper .foot02_container .contents_box .foottxt .largetxt {
		display: block;
		padding-bottom: 5px;;
	}

	.slide-left {
		transform: translate(0, 0);
	}
	
	.slide-right {
		transform: translate(0, 0);
	}
	
	a.linkbtn {
		width: 250px;
		font-size: 22px;
	}

	a.linkbtn::after {
		top: 18px;
	}

	.page_top .container h2 {
		font-size: 35px;
		line-height: 1.3em;
		padding: 50px 10px 0;
	}

	.page_top .container h2 span {
		font-size: 30px;
	}

	h3 {
		font-size: 25px;
	}

	h3::before {
		width: 200px;
	}

}





