@charset "utf-8";
/* ================================================ CSS Information
 File Name:      layout.css
 Last updated:   2015/08/05
 Style Info:    レイアウト定義
 Notes:          
================================================================ */

h1, h2, h3, h4, h5, h6
	        { margin-top:0; margin-bottom: 1em; font-size:1.6rem;}
p	        { margin-top:0; margin-bottom: 1em; }
ul, ol	    { margin-top:0; margin-bottom: 1em; }
dl	        { margin-top:0; margin-bottom: 1em; }
dt	        { font-weight: bold; }
dd	        { margin-bottom: .5em; margin-left:0;}
strong	    { font-weight: bold; }
cite,
em          { font-style:normal; font-weight:bold; }
i	        { font-style: italic; }
address	    { margin-top:0; margin-bottom:1.8em; }
ins	        { background: #fff9c0; text-decoration: none; }

a { outline:none;}
a:link,
a:visited   { color: #333; text-decoration: underline;}
a:hover,
a:active 	{ color: #333; text-decoration: none; }

table {
	width: 100%;
	margin: 0 0 1.5em;
	}
	table th,
	table td {
		padding: 5px;
		border: 1px dotted #666;
		border-width: 0 0 1px;
		-webkit-box-sizing: border-box;
		   -moz-box-sizing: border-box;
				box-sizing: border-box;
		font-weight: normal;
		text-align: left;
	}
	tbody th { vertical-align: top; }


/**html { font-size: 62.5%; }**/
html { font-size: 65.625%; min-width: 1020px; }
body {
	min-width: 1020px;
	margin: 0;
	background: #fff;
	color: #333;
	font-size: 16px;
	font-size: 1.6rem;
	line-height: 1;
	-webkit-text-size-adjust: 100%; /* iPhone */
}

#base {
	position: relative;
	/*min-width: 1020px;*/
}

/* ヘッダー
   ------------------------------------------------ */

#siteHeader {
	width: 100%;
	height: 120px;
	background: #fff;
	}
	
	.hd-wrap {
		position: relative;
		width: 1020px;
		height: 100px;
		overflow: hidden;
		margin: 0 auto;
		padding-top: 26px;
		-webkit-box-sizing: border-box;
		   -moz-box-sizing: border-box;
				box-sizing: border-box;
		}
		.hd-logo {
			float: left;
			/**width: 290px;**/
			width: 320px;
			margin: 0;
			padding-left: 10px;
		}
		.hd-logo img {
			width: 100%;
		}
		.hd-contact {
			position: relative;
			float: right;
			width: 32em;
			min-width: 315px;
			max-width: 315px;
			line-height: 24px;
			padding-right: 0;
			-webkit-box-sizing: border-box;
			   -moz-box-sizing: border-box;
			   		box-sizing: border-box;
			font-size: 15px;
			font-size: 1.5rem;
			letter-spacing: .1em;
			}
			.hd-contact .btnImg {
				position: absolute;
				right: 0;
				top: 0;
			}
		.hd-recruit {
			position: relative;
			float: right;
			width: 144px;
			padding-right: 0;
			-webkit-box-sizing: border-box;
			   -moz-box-sizing: border-box;
				    box-sizing: border-box;
			margin: 25px 0 0;
			}

/* End / #siteHeader */

.gnav {
	clear: both;
	width: 100%;
	height: 80px;
	margin: 0 auto;
	background: #000;
	}
	.gnav .gnav-wrap {
		width: 1020px;
		margin: 0 auto;
		}
		.gnav ul {
			list-style: none;
			margin: 0;
			padding: 0;
		}
		.gnav a,
		.gnav span {
			display: block;
			background: #000;
		}
	
	/* 親メニュー */
	.gnav .parent-menu {
		position: relative;
		float: left;
		width: 204px;
		height: 80px;
		}
		.gnav .parent-menu a,
		.gnav .parent-menu span {
			position: relative;
			z-index: 210;
		}
		
	/* 子メニュー */
	.gnav .child-menu {
		position: absolute;
		top: 40px;
		left: 0;
		z-index: 200;
		opacity: 0;
		visibility: hidden;
		-webkit-transition: all .2s linear;
		   -moz-transition: all .2s linear;
				transition: all .2s linear;
		}
		.gnav .child-menu li:not(:last-child) a {
			border-bottom: 1px solid #44af35;
		}
			
	/* 子メニュー(新) */
	.gnav .mega-menu {
		position: absolute;
		top: 60px;
		left: 0;
		z-index: 220;
		opacity: 0;
		visibility: hidden;
		-webkit-transition: all .2s linear;
		   -moz-transition: all .2s linear;
				transition: all .2s linear;
		background: rgba(255, 255, 255, .95);
		padding: 30px 20px 20px;
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 25px 18px;
		width: max-content;
		min-width: 100%;
		max-width: 506px;
		-webkit-box-sizing: border-box;
		   -moz-box-sizing: border-box;
			    box-sizing: border-box;
		}
		.gnav .mega-menu li {
			width: 143px;
			font-size: 1.5rem;
			line-height: 1.375;
		}
		.gnav .mega-menu li a {
			color: #000;
			text-align: center;
			background: none;
			text-decoration: none;
			-webkit-transition: all .2s linear;
			   -moz-transition: all .2s linear;
			        transition: all .2s linear;
		}
		.gnav .mega-menu li a .img {
			display: block;
			margin: 0 auto 10px;
			position: relative;
			width: 138px;
		}
		.gnav .mega-menu li a .img:before {
			content: "▶詳しく見る";
			width: 100%;
			height: 100%;
			background: rgba(0, 0, 0, .4);
			position: absolute;
			top: 0;
			left: 0;
			color: #fff;
			display: flex;
			align-items: center;
			justify-content: center;
			opacity: 0;
			-webkit-transition: all .2s linear;
			   -moz-transition: all .2s linear;
			        transition: all .2s linear;
		}
		.gnav .mega-menu li a .txt {
			background: none;
			position: relative;
			width: fit-content;
			margin: 0 auto;
		}
		.gnav .mega-menu li a .txt:before {
			content: "";
			width: 0;
			height: 1px;
			background: #FF0000;
			position: absolute;
			bottom: 0;
			left: 0;
			-webkit-transition: all .2s linear;
			   -moz-transition: all .2s linear;
			        transition: all .2s linear;
		}
		.gnav .mega-menu li a:hover {
			color: #FF0000;
		}
		.gnav .mega-menu li a:hover .img:before {
			opacity: 1.0;
		}
		.gnav .mega-menu li a:hover .txt:before {
			width: 100%;
		}
		.gnav li:last-child .mega-menu {
			left: auto;
			right: 0;
		}
	
	/* マウスオーバー */
	.gnav .parent-menu:hover .child-menu {
		top: 80px;
		opacity: 1;
		visibility: visible;
	}
	.gnav .current-menu > a,
	.gnav .current-menu > span,
	.gnav .parent-menu > a:hover { background: #4d4d4d; }
	.gnav .child-menu a:hover { background: #44af35; }
    
    .gnav .parent-menu:hover span {
    	background: #4D4D4D;
	    }
    	.gnav .parent-menu:hover .mega-menu {
			top: 70px;
			opacity: 1;
			visibility: visible;
		}
    
    
.r_box{
width: 55%;
position: absolute;
top: 10px;
right: 0;
}

.r_box .lang{
display: flex;
justify-content: flex-end;
column-gap: 20px;
}

.r_box li{
list-style: none;
font-size: 1.5rem;
}

.r_box li a{
text-decoration: none;
display: inline-flex;
align-items: center;
column-gap: 5px;
}    

.r_box li a:hover{
text-decoration: underline;
}

/* End / .gnav */

.aside-contact {
	position: fixed;
	z-index: 1000;
	bottom: 120px;
	right: 20px;
	width: 149px;
}

/* サイトボディ
   ------------------------------------------------ */

#siteBody {
	line-height: 2.125;
	}
	
	/* メイン＋サイドバー構成 */
	.grid2columns {
		min-height: 300px;
		}
		.grid2columns .main {
			float: right;
			width: 730px;
		}
		.grid2columns .sidebar {
			float: left;
			width: 230px;
		}
	
	

/* End / #siteBody */


/* フッター
   ------------------------------------------------ */

#siteFooter {
	line-height: 1.75;
	background: #000;
	color: #fff;
	letter-spacing: .1em;
	}
	.ft-wrap {
		width: 1020px;
		overflow: hidden;
		margin: 0 auto;
		padding: 60px 0;
		}
		
		/* 連絡先 */
		.ft-info {
			float: left;
			width: 300px;
			}
			.ft-info address {
				margin: 20px 0 0;
				font-size: 17px;
				font-size: 1.7rem;
				font-style: normal;
			}
        .f-tel{
        font-size: 24px;
		font-size: 2.4rem;
        font-weight: bold;
        }    
		
		/* サイトマップ */
		.ft-sitemap {
			display: table;
			float: right;
			width: 660px;
			padding-top: 10px;
			}
			.ft-sitemap a {
				color: #fff;
				text-decoration: underline;
			}
			.ft-sitemap ul {
				list-style: none;
				margin: 0;
				padding: 0;
			}
			.ft-sitemap > ul {
				display: table-cell;
			}
			
			/* 親メニュー */
			.ft-sitemap .parent-menu {
				position: relative;
				margin: 0 0 .9em;
				padding: 0 0 0 1.2em;
				font-weight: bold;
				}
				.ft-sitemap .parent-menu:before {
					position: absolute;
					top: 0;
					left: 0;
					color: #44af35;
					content: '■';
				}
				.ft-sitemap ul > .parent-menu:last-child { margin-bottom: 0; }
				.ft-sitemap ul:last-child > .parent-menu:not(:last-child) { margin-bottom: 1.25em; }
			
			/* 子メニュー */
			.ft-sitemap .child-menu {
				line-height: 1.5;
				font-size: 14px;
				font-size: 1.4rem;
				font-weight: normal;
				}
				.ft-sitemap .child-menu li { margin-bottom: .5em; }
	
	#copyright {
		display: block;
		line-height: 30px;
		background: #4d4d4d;
		font-size: 120px;
		font-size: 1.2rem;
		text-align: center;
	}


/* End / #siteFooter */



/* ページの先頭へ */
.btn-pagetop {
	display: block;
	position: fixed;
	z-index: 1000;
	bottom: 20px;
	right: 20px;
	width: 80px;
	height: 80px;
}



/* ---------------------------------------------------

 コンテンツ内の固定要素、サイドバー内の要素定義

--------------------------------------------------- */

/* メインコンテンツ
 ------------------------------------*/

[class*="contents-wrap"] {
	position: relative;
	clear: both;
	width: 1020px;
	margin-right: auto;
	margin-left: auto;
	-webkit-box-sizing: border-box;
	   -moz-box-sizing: border-box;
	   		box-sizing: border-box;
	}
	[class*="contents-wrap"]:not([class*="mb"]) { margin-bottom: 130px; }
	[class*="contents-wrap"]:after {
		 display: block;
		 clear: both;
		 height:0;
		 content: ""; 
	}


/* コンテンツヘッダー */
.contents-header {
	position: relative;
	width: 100%;
	height: 240px;
	margin: 0 0 70px;
	padding: 100px 0 10px;
	-webkit-box-sizing: border-box;
	   -moz-box-sizing: border-box;
			box-sizing: border-box;
	background: #e9e9e9;
	}
	.page-title {
		width: 100%;
		margin: 0;
		text-align:center;
	}



/* パンくずナビ */
.topicspath-wrap {
	position: relative;
	width: 1024px;
	margin: 0 auto;
	}
	.topicspath {
		position: absolute;
		list-style: none;
		clear: both;
		top: 32px;
		left: 50%;
		z-index: 10;
		width: 1020px;
		margin: 0 0 0 -510px;
		padding: 0;
		font-size: 14px;
		font-size: 1.4rem;
		letter-spacing: -.40em;
	}
	.topicspath li {
		display: inline-block;
		line-height: 24px;
		margin: 0 0 0 10px;
		padding: 0 0 0 16px;
		background: url(../img/shared/topicPaht-divider.png) no-repeat 0 50%;
		letter-spacing: normal;
		}
		.topicspath .home {
			margin-left: 0;
			padding-left: 0;
			background: none;
		}
	

/* メインタイトル */
.page-title {
	position: relative;
	width: 100%;
	height: 240px;
	margin: 0 0 70px;
	padding: 100px 0 10px;
	-webkit-box-sizing: border-box;
	   -moz-box-sizing: border-box;
			box-sizing: border-box;
	background: #e9e9e9;
	text-align: center;
	}
	.page-title:not([class*=mb]) { margin-bottom: 80px; }

.page-title img {
    width: 60%;
    margin: 0 auto;
    /* max-width: 200px; */
}

/* コンテンツ単位のブロック */
.content {
	width: 1020px;
	margin-right: auto;
	margin-left: auto;
	padding-left: 0;
	padding-right: 0;
	-webkit-box-sizing: border-box;
	   -moz-box-sizing: border-box;
			box-sizing: border-box;
	}
	.content:after {
		 display: block;
		 clear: both;
		 height: 0;
		 content: ""; 
	}


/* 関連コンテンツへの誘導 */
.page-induction-wrap {
	clear: both;
	width: 100%;
	margin: 0 auto;
	background: #e6e6e6;
}
.page-induction {
	display: table;
	width: 1020px;
	height: 350px;
	margin: 0 auto;
	}
	.pi-inner {
		display: table-cell;
		text-align: center;
		vertical-align: middle;
	}
	.pi-heading {
		line-height: 1.71;
		margin: 0 0 1em;
		font-size: 24px;
		font-size: 2.4rem;
		font-weight: normal;
	}
	.pi-heading b {
		color: #006837;
	}
	.pi-btn {
		list-style: none;
		margin: 0;
		padding: 0;
		letter-spacing: -.4em;
	}
	.pi-btn li {
		display: inline-block;
		vertical-align: middle;
		letter-spacing: normal;
	}
	.pi-btn li:not([class*=mr]) {
		margin-right: 15px;
	}
	.pi-btn li:not([class*=ml]) {
		margin-left: 15px;
	}



/* wpページナビ */
.wp-pagenavi {
	position:relative;
	clear: both;
	width: 100%;
	margin: 80px auto 120px;
	text-align: center;
	letter-spacing: -.40em;
	}
	.wp-pagenavi a, .wp-pagenavi span {
		display: inline-block;
		min-width: 30px;
		height: 40px;
		line-height: 42px;
		overflow: hidden;
		margin: 0 6px;
		padding: 0 8px;
		box-sizing: border-box;
		background: #b3b3b3;
		color: #fff;
		font-size: 18px;
		font-size: 1.8rem;
		text-decoration: none;
		text-align: center;
		letter-spacing: normal;
	}
	.pc .wp-pagenavi a:hover,
	.wp-pagenavi span.current {
		background: #000;
		color: #fff;
	}



/* サイドバー
 ------------------------------------*/

/* ウィジェット、カスタムメニュー */
.side-menu-box .box-title {}
.side-menu-box .box-content { margin: 0 0 30px; }
/* child */
.side-menu-box .child {}

.side-menu-box ul,
.side-menu-box ol {
	list-style: none;
	width: 100%;
	margin: 0;
	padding: 0;
	}
	.side-menu-box li {
		margin-bottom: 20px;
	}
	.side-menu-box li .count {}
	.side-menu-box .cat_list li a {
		display: block;
		color: #fff;
		text-decoration: none;
		text-align: center;
		font-size: 20px;
		font-size: 2.0rem;
		font-weight: bold;
		padding: 15px 0;
	}
	
	.side-menu-box .cat_list li a:hover {
		opacity: 0.7;
	}
	
	/* 画像がない場合 */
	.side-menu-box li:not(.banner) {
		display: table;
		width: 230px;
		height: 86px;
		border: 5px solid #e6e6e6;
		-webkit-box-sizing: border-box;
		   -moz-box-sizing: border-box;
				box-sizing: border-box;
		}
		.side-menu-box li:not(.banner) a {
			display: table-cell;
			line-height: 1.8;
			padding: 10px 10px 10px 20px;
			background: #000 url(../img/shared/cat-img-marker.png) no-repeat 0 50%;
			color: #fff;
			font-size: 20px;
			font-size: 2rem;
			font-weight: bold;
			font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
			text-decoration: none;
			vertical-align: middle;
		}
		.side-menu-box li:not(.banner) a:hover {
			background-color: #666;
		}
		
		
		
@media (max-width: 1020px) {
	/* @media (max-width: 650px) Reduce font-sizes for better readability on smaller devices */

		/* 連絡先 */
		.ft-info {
			float: left;
			width: 300px;
			margin-left:3% !important;
			}

}		



/* スマホ用ヘッダー
------------------------------------------------ */
#base.is-mobile .pc-only {
	display: none!important;
}

#base:not(.is-mobile) .sm-only {
	display: none!important;
}

#base.is-mobile .sp_hd {
	padding-top: 14.7%;
}

#base.is-mobile .sp_hd-wrap {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 2000;
	background: #fff;
	padding: 5%;
	display: flex;
	align-items: center;
	box-sizing: border-box;
}

#base.is-mobile .sp_hd-logo {
	margin: 0;
}

#base.is-mobile .sp_hd-lang {
	display: flex;
	align-items: center;
	column-gap: 1.5em;
	margin: 0 8% 0 auto;
	list-style: none;
	font-size: 175%;
}

#base.is-mobile .sp_hd-lang li a {
	text-decoration: none;
	color: #999;
	font-weight: 700;
}

#base.is-mobile .sp_hd-lang li a.current {
	border-bottom: 2px solid currentColor;
}

#base.is-mobile .sp_hd-menubtn {
	width: 8%;
	padding-top: 5%;
	position: relative;
}

#base.is-mobile .sp_hd-menubtn-inner {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
}

#base.is-mobile .sp_hd-menubtn span {
	width: 100%;
	height: 4px;
	background: #44af35;
	position: absolute;
	left: 0;
	transition: all 0.2s;
}

#base.is-mobile .sp_hd-menubtn span:first-child {
	top: 0;
}

#base.is-mobile .sp_hd-menubtn span:nth-child(2),
#base.is-mobile .sp_hd-menubtn span:nth-child(3) {
	top: 0;
	bottom: 0;
	margin: auto;
}

#base.is-mobile .sp_hd-menubtn span:last-child {
	bottom: 0;
}

#base.is-mobile .sp_hd-menubtn.is-open span:first-child,
	.sp_hd-menubtn.is-open span:last-child {
	opacity: 0;
}

#base.is-mobile .sp_hd-menubtn.is-open span:nth-child(2) {
	transform: rotate(45deg);
}

#base.is-mobile .sp_hd-menubtn.is-open span:nth-child(3) {
	transform: rotate(-45deg);
}

#base.is-mobile .sp_hd-gnav {
	position: fixed;
	top: 0;
	right: 0;
	z-index: 1500;
	box-sizing: border-box;
	width: 100%;
	max-height: 100%;
	padding-top: 14.7%;
	overflow: scroll;
	background: #000;
	font-size: 250%;
	display: none;
}

#base.is-mobile .sp_hd-gnav-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

#base.is-mobile .sp_hd-gnav-list-item {
	border-bottom: 2px solid #fff;
}

#base.is-mobile .sp_hd-gnav-list-item > a,
#base.is-mobile .sp_hd-gnav-list-item > span {
	background: #16ac3c;
	display: block;
	padding: 1em 2em 0.75em;
	color: #fff;
	text-decoration: none;
	position: relative;
}

#base.is-mobile .sp_hd-gnav-list-item > span:before,
#base.is-mobile .sp_hd-gnav-list-item > span:after {
	content: "";
	width: 1em;
	height: 4px;
	background: currentColor;
	position: absolute;
	right: 1em;
	top: 0;
	bottom: 0;
	margin: auto;
	transition: all 0.2s;
}

#base.is-mobile .sp_hd-gnav-list-item > span:after {
	transform: rotate(90deg);
}

#base.is-mobile .sp_hd-gnav-list-parent.is-open > span:after {
	transform: rotate(0deg);
}

#base.is-mobile .sp_hd-gnav-list-parent {
	position: relative;
}

#base.is-mobile .sp_hd-gnav-list-children {
	background: #eef7ec;
	margin: 0;
	padding: 0;
	list-style: none;
	display: none;
}

#base.is-mobile .sp_hd-gnav-list-children > li {
	border-bottom: 2px solid currentColor;
}

#base.is-mobile .sp_hd-gnav-list-children > li > a {
	display: flex;
	align-items: center;
	column-gap: 0.5em;
	padding: 1em 2em 0.75em 3em;
	text-decoration: none;
}

#base.is-mobile .sp_hd-gnav-list-children > li > a:before {
	content: "";
	width: 0.25em;
	height: 0.25em;
	border-right: 5px solid #16ac3c;
	border-bottom: 5px solid #16ac3c;
	transform: rotate(-45deg);
}

#base.is-mobile .sp_hd-gnav-link {
	padding: 5%;
	margin: 0;
	list-style: none;
}

#base.is-mobile .sp_hd-gnav-link > li {
	margin-bottom: 1em;
}

#base.is-mobile .sp_hd-gnav-link > li:last-child {
	margin-bottom: 0;
}

#base.is-mobile .sp_hd-gnav-link a {
	background: #16ac3c;
	color: #fff;
	border-radius: 15px;
	padding: 0.75em 2em 0.5em;
	display: inline-block;
	font-weight: 700;
	text-decoration: none;
}

/* =====================
　↓↓　2025年10月追加　↓↓
======================= */
.gnav .mega-menu li a .txt .new-img {
	width: 25px;
	vertical-align: bottom;
	margin-right: 5px;
}
/* =====================
　↑↑　2025年10月追加　↑↑
======================= */