/* ******************************************************************
 *	File name		: base.css
 *	Summary			: css base
 * ******************************************************************
 */
/*

#397C8F
rgb(57,124,143)

*/

/* lang */

#languages{
	display:none !important;
}

/* -----------------------------------------------------------------
   base
----------------------------------------------------------------- */

html{
	background:linear-gradient(45deg, #A2D4B4, #BDDA85, #A2D4B4);
	background-attachment:fixed;
}
body{
	position:relative;
	width:100%;
	height:100%;
	line-height:145%;
	color:#222;
	}
	#wrapper{
		position:relative;
		width:100%;
}

/* --- responsive --- */
@media screen and (max-width:1000px){
	body{
		background-size:contain;
	}
}
@media print {
	body{
		margin:0;
		width:1100px;
	}
}

/* -----------------------------------------------------------------
   header
----------------------------------------------------------------- */

header{
	position:fixed;
	top:0px;
	left:0px;
	width:100%;
	height:75px;
	margin:0px;
	z-index:100;
	transition-duration:0.5s;
	}
	#head_contents{
		position:relative;
		width:1000px;
		max-width:100%;
		height:100%;
		margin:0 auto;
		padding:0px 0 0 0;
		text-align:center;
		z-index:1;
	}
	header h1{
		display:-webkit-flex;
		display:flex;
		justify-content:center;
		align-items:center;
		position:absolute;
		left:-3px;
		width:200px;
		height:75px;
		text-align:left;
		z-index:2;
		}
		header h1 a{
			display:inline-block;
			font-weight:500;
			font-size:1.1rem;
			text-decoration:none;
			color:#000;
			}
			header h1 a:hover{
				text-decoration:none;
		}
		header h1 a span{
			font-weight:500;
			font-size:0.9rem;
}

/* nav */
header nav{
	display:-webkit-flex;
	display:flex;
	justify-content:center;
	align-items:center;
	position:relative;
	height:75px;
	padding-left:200px;
	padding-right:150px;
}
header nav > ul{
	display:-webkit-flex;
	display:flex;
	justify-content:center;
	align-items:center;
	width:auto;
	max-width:100%;
	list-style:none;
	}
	header nav > ul > li{
		display:inline-block;
		position:relative;
		margin:0px !important;
		text-align:center;
		color:#222;
		transition-duration:0.5s;
		}
		header nav > ul > li::before,
		header nav > ul > li::after{
			content:" ";
			position:absolute;
			top:calc(50% - 7px);
			width:1px;
			height:15px;
			background:#222;
			z-index:0;
		}
		header nav > ul > li::before{
			left:0px;
		}
		header nav > ul > li::after{
			right:-1px;
	}
	header nav > ul > li > a{
		display:-webkit-flex;
		display:flex;
		justify-content:center;
		align-items:center;
		position:relative;
		width:100%;
		height:100%;
		padding:0 20px;
		margin:0 auto;
		font-weight:500;
		font-size:0.9rem;
		text-decoration:none;
		text-align:left;
		color:#222;
		z-index:10;
		transition-duration:0.5s;
	}
	header nav > ul > li.active a,
	header nav > ul > li > a:hover{
		text-decoration:none;
	}
	header nav > ul > li.active a::before,
	header nav > ul > li a::before{
		content:" ";
		position:absolute;
		top:-5px;
		width:calc(100% - 20px);
		height:calc(100% + 12px);
		background:#DADF00;
		-moz-border-radius:6px;
		-webkit-border-radius:6px;
		border-radius:6px;
		z-index:-1;
		opacity:0;
		transition-duration:0.5s;
	}
	header nav > ul > li.active a::before,
	header nav > ul > li a:hover::before{
		opacity:1;
	}

/* ul ul */
header nav > ul > li.sub_nav > a::after{
	content:" ";
	position:absolute;
	bottom:-15px;
	right:calc(50% - 5px);
	border:5px solid transparent;
	border-top:5px solid rgba(0,0,0,1);
}
header nav ul li.sub_nav ul{
	position:absolute;
	top:20px;
	left:calc(50% - 80px);
	padding-top:20px;
	}
	header nav ul li.sub_nav ul li{
		position:relative;
		width:170px;
		height:0px;
		overflow:hidden;
		transition-duration:0.5s;
		}
		header nav ul li.sub_nav:hover ul li{
			height:30px;
		}
		header nav ul li.sub_nav ul li a{
			display:-webkit-flex;
			display:flex;
			justify-content:center;
			align-items:center;
			padding:0px;
			font-size:0.84rem;
			background:rgba(0,140,35,1.0);
			border:2px solid #FFF;
			-moz-border-radius:6px;
			-webkit-border-radius:6px;
			border-radius:6px;
			color:#FFF;
		}
		header nav ul li.sub_nav ul li a:hover{
			text-decoration:none;
			opacity:0.8;
		}
		header nav ul li.sub_nav ul li a:hover::before{
			display:none !important;
}
/* other li */
header nav ul li#nav_top{
	display:none;
}
header nav > ul > li#languages{
	position:absolute;
	width:140px;
	top:19px;
	right:10px;
	margin:0 auto;
	padding:5px 10px 5px 10px;
	font-size:0.9rem;
	text-align:center;
	background:#F1E900;
	-moz-border-radius:6px;
	-webkit-border-radius:6px;
	border-radius:6px;
	-moz-box-shadow:5px 5px 5px rgba(0,0,0,0.4);
	-webkit-box-shadow:5px 5px 5px rgba(0,0,0,0.4);
	box-shadow:3px 3px 2px rgba(0,0,0,0.4);
	color:#000;
	transition-duration:0.5s;
	}
	header nav > ul > li#languages span{
		display:inline-block;
		position:relative;
		margin:0 0 2px;
		padding:0 15px 0 0;
	}
	header nav > ul > li#languages::before{
		display:none;
	}
	header nav > ul > li#languages::after{
		top:15px;
		right:12px;
		width:0px;
		height:0px;
		background:none;
		border:7px solid transparent;
		border-top:7px solid rgba(0,0,0,1);
}
header nav > ul > li#languages ul{
	position:relative;
	}
	header nav > ul > li#languages ul li{
		position:relative;
		width:100%;
		height:0px;
		overflow:hidden;
		transition-duration:0.5s;
		}
		header nav > ul > li#languages:hover ul{
			margin:7px 0 0;
		}
		header nav > ul > li#languages:hover ul li{
			height:30px;
		}
		header nav > ul > li#languages ul li a{
			display:-webkit-flex;
			display:flex;
			justify-content:center;
			align-items:center;
			width:100%;
			padding:0px;
			font-size:0.84rem;
			background:rgba(0,0,0,0.5);
			-moz-border-radius:6px;
			-webkit-border-radius:6px;
			border-radius:6px;
			color:#FFF;
		}
		header nav > ul > li#languages ul li a:hover{
			text-decoration:none;
			opacity:0.8;
}

/* --- responsive --- */
@media screen and (max-width:1000px){
}

/* -----------------------------------------------------------------
   h_slide
----------------------------------------------------------------- */

#wrapper:has(header.h_slide){
	top:75px;
}
header.h_slide{
		position:fixed !important;
		top:0px;
		left:0px;
		width:100%;
		height:75px;
		-moz-box-shadow:0px 0px 3px 3px rgba(0,0,0,0.2);
		-webkit-box-shadow:0px 0px 3px 3px rgba(0,0,0,0.2);
		box-shadow:0px 0px 3px 3px rgba(0,0,0,0.2);
		background:#FFF;
}
header.h_slide nav{
}

/* --- responsive --- */
@media only screen and (max-width:1200px){
	header.h_slide nav li a{
	}
}

/* -----------------------------------------------------------------
   nav icon
----------------------------------------------------------------- */

#nav_icon{
	display:none;
	position:fixed;
	top:12px;
	right:20px;
	width:36px;
	height:36px;
	background:#00B22D;
	-moz-border-radius:6px;
	-webkit-border-radius:6px;
	border-radius:6px;
	cursor:pointer;
	z-index:1000;
	}
	#nav_icon::before,
	#nav_icon::after{
		content:" ";
		position:absolute;
		left:4px;
		width:29px;
		height:4px;
		background:#FFF;
		transition-duration:0.5s;
	}
	#nav_icon::before{
		top:7px;
	}
	#nav_icon::after{
		top:25px;
	}
	#nav_icon span{
		position:absolute;
		top:16px;
		left:4px;
		width:29px;
		height:4px;
		background:#FFF;
		transition-duration:0.5s;
}

/* sp open menu */
.open_menu #nav_icon::before,
.open_menu #nav_icon::after{
		left:4px;
	}
	.open_menu #nav_icon::before{
		top:16px;
		transform:rotate(-135deg) !important;
	}
	.open_menu #nav_icon::after{
		top:16px;
		transform:rotate(135deg) !important;
	}
	.open_menu #nav_icon span{
		left:50%;
		width:0px;
}

/* -----------------------------------------------------------------
   SP MENU
----------------------------------------------------------------- */
/* --- responsive --- */
@media only screen and (max-width:1000px){
	header{
		position:fixed;
		height:60px;
/*		background:#FFF;*/
		background:#FFF;
		z-index:999;
	}
	header #head_contents{
		height:60px;
		background:#FFF;
		-moz-box-shadow: 0px 0px 5px rgba(0,0,0,0.4);
		-webkit-box-shadow: 0px 0px 5px rgba(0,0,0,0.4);
		box-shadow: 0px 0px 5px rgba(0,0,0,0.4);
	}
	header h1{
		display:-webkit-flex;
		display:flex;
		justify-content:flex-start;
		align-items:center;
		position:absolute;
		top:0px;
		left:0px;
		width:calc(100% - 60px);
		height:100%;
		padding:0 0 0 20px;
		text-align:center;
		z-index:2;
		}
		header h1 br{
			display:none;
	}
	header #main_nav{
		position:fixed;
		top:60px;
		bottom:auto;
		left:auto;
		right:-100%;
		width:100%;
		height:calc(100% - 60px);
		background:#F7F3C6;
		border-top:1px solid #555;
		border-left:30px solid #00B22D;
		transition-duration:0.5s;
		overflow-y:scroll;
		z-index:999;
		}
		header.open_menu #main_nav{
			right:0px;
	}
	header #main_nav::before{
		content:"MENU";
		display:-webkit-flex;
		display:flex;
		justify-content:flex-start;
		align-items:center;
		position:fixed;
		left:-30px;
		top:100px;/* 30 + 50 */
		width:300px;
		height:30px;
		padding-bottom:2px;
		text-indent:-50px;
		color:rgba(255,255,255,0.5);
		transform:rotate(90deg) !important;
		transform-origin:0 100%;
		transition-duration:0.5s;
		line-height:1;
		z-index:999;
		}
		header.open_menu #main_nav::before{
			left:0px;
	}
	header nav{
		display:block;
		position:relative;
		height:auto;
		padding:0px;
	}
	header nav > ul{
		display:block;
		height:auto !important;
		padding:20px 20px 20px;
	}
	header nav > ul > li{
		position:relative !important;
		top:0px !important;
		left:auto !important;
		right:auto !important;
		width:100% !important;
		height:40px !important;
		min-height:40px !important;
		margin:0 0 5px !important;
		text-align:center;
		color:#000;
		transition-duration:0.5s;
		background:rgba(255,255,255,0.9) !important;
		border:1px solid rgba(0,0,0,0.3);
		-moz-border-radius:6px !important;
		-webkit-border-radius:6px !important;
		border-radius:6px !important;
		overflow:hidden;
	}
	header nav > ul > li:has(ul){
		height:auto !important;
		padding-top:7px;
	}
	header nav > ul > li.sub_nav > a::after{
		display:none;
	}
	header nav > ul > li::before,
	header nav > ul > li::after{
		display:none;
	}
	header nav ul li#nav_top{
		display:block;
	}
	header nav > ul > li.active,
	header nav > ul > li:hover{
		background:#2EA7E0;
	}
	header nav ul li a{
		display:-webkit-flex !important;
		display:flex !important;
		justify-content:center !important;
		align-items:center !important;
		position:relative !important;
		width:100% !important;
		height:100% !important;
		padding:0px !important;
		font-weight:bold !important;
		font-size:0.95rem !important;
		text-decoration:none;
		text-align:left;
		color:#000 !important;
		border:none !important;
		text-shadow:none !important;
		z-index:10;
		}
	header nav ul li a::before{
		display:none;
	}

/* ul ul */
header nav > ul > li.sub_nav > ul{
	position:relative;
	top:0px;
	left:15px;
	width:calc(100% - 30px);
	padding-top:0px;
	}
	header nav > ul > li.sub_nav > ul > li{
		width:100%;
		height:auto !important;
		margin:7px auto 7px;
		border-bottom:none !important;
		-moz-border-radius:6px !important;
		-webkit-border-radius:6px !important;
		border-radius:6px !important;
		}
		header nav > ul > li.sub_nav > ul > li > a{
			padding:2px 7px !important;
			font-weight:normal !important;
			font-size:0.80rem !important;
			border:1px solid rgba(0,140,35,1) !important;
			background:rgba(0,140,35,0.3);
}

header nav > ul > li > ul > li{
	height:30px;
	border-bottom:1px solid rgba(255,255,255,0.5);
}

header nav > ul > li#languages{
	-moz-box-shadow:none;
	-webkit-box-shadow:none;
	box-shadow:none;
	color:#000;
	background:#F1E900 !important;
	}
	header nav > ul > li#languages span{
		font-weight:bold;
	}
	header nav > ul > li#languages ul li{
		width:100%;
		height:auto;
		margin:7px auto 0px;
		}
		header nav > ul > li#languages ul li a{
			height:30px !important;
			font-weight:normal !important;
			font-size:0.84rem;
			background:rgba(255,255,255,0.5);
			color:#000;
}

#nav_icon{
	display:block;
}
#sns_icon{
	display:none;
}
}
/* -----------------------------------------------------------------
   main
----------------------------------------------------------------- */

main{
	display:block;
	position:relative;
	margin-top:0px;
	padding:0px;
	width:100%;
	z-index:1;
	border-bottom:7px solid #D1DC00;
}
#main_contents{
	position:relative;
}

section{
	position:relative;
	width:1000px;
	max-width:100%;
	margin:0 auto;
}
.contents{
	position:relative;
	width:1000px;
	max-width:100%;
	margin:0 auto 40px;
}

/* --- responsive --- */
@media screen and (max-width:1000px){
	#main_contents{
	}
}


/* -----------------------------------------------------------------
   footer
----------------------------------------------------------------- */

footer{
	position:relative;
	width:100%;
	margin:0px;
	text-align:left;
	overflow:hidden;
	background:#D3DF42;
	z-index:500;
}

/* -- end_nav -- */

#end_nav{
	position:relative;
	width:100%;
	margin-bottom:0px;
	padding:20px 0 5px;
	background:#FFF;
	text-align:center;
	z-index:500;
}
#end_nav ul{
	display:-webkit-flex;
	display:flex;
	justify-content:center;
	align-items:center;
	flex-wrap:wrap;
	width:770px;
	max-width:100%;
	margin:0 auto;
	list-style:none;
	}
	#end_nav ul li{
		display:inline-block;
		position:relative;
		margin:0 0 15px;
		text-align:center;
		color:#222;
		transition-duration:0.5s;
		}
		#end_nav ul li::before,
		#end_nav ul li::after{
			content:" ";
			position:absolute;
			top:calc(50% - 9px);
			width:1px;
			height:18px;
			background:#222;
			z-index:0;
		}
		#end_nav ul li::before{
			left:0px;
		}
		#end_nav ul li::after{
			right:-1px;
	}
	#end_nav ul li a{
		display:-webkit-flex;
		display:flex;
		justify-content:center;
		align-items:center;
		position:relative;
		width:100%;
		height:100%;
		padding:0 27px;
		margin:0 auto;
		font-weight:400;
		font-size:1.25rem;
		text-decoration:none;
		text-align:left;
		color:#000;
		z-index:10;
		transition-duration:0.5s;
	}
	#end_nav ul li.active a,
	#end_nav ul li a:hover{
		text-decoration:none;
		background:rgba(0,0,0,0.2);
}

/* --- responsive --- */
@media screen and (max-width:1000px){
	#end_nav ul{
		width:100%;
		}
		#end_nav ul li a{
			padding:0 15px;
			font-size:0.87rem;
	}
}
@media screen and (max-width:640px){
	#end_nav ul li a{
		padding:0 10px;
		font-size:0.80rem;
	}
}

/* -- address -- */
footer address{
	padding:30px 20px 30px;
}
footer address h2{
	position:relative;
	margin:0 0 10px;
	font-weight:600;
	font-size:1.0rem;
	text-align:center;
	}
	footer address p{
		margin:0 0 30px;
		font-size:0.9rem;
		text-align:center;
}

footer p#copy{
	position:relative;
	margin:0px;
	font-size:0.9rem;
	text-align:center;
}

/* --- responsive --- */
@media screen and (max-width:1000px){
}

/* -----------------------------------------------------------------
   pagetop
----------------------------------------------------------------- */

#pagetop{
	position:fixed;
	right:20px;
	bottom:25px;
	width:50px;
	height:50px;
	border-radius:10px;
	-webkit-border-radius:10px;
	-moz-border-radius:10px;
	background:rgba(100,100,100,1);
	opacity:0.5;
	z-index:999;
	}
	#pagetop:before,
	#pagetop:after{
		content:" ";
		position:absolute;
	}
	#pagetop:before{
		top:8px;
		left:10px;
		width: 0;
		height: 0;
		margin-top: -15px;
		border:15px solid transparent;
		border-bottom:15px solid rgba(255,255,255,1);
	}
	#pagetop:after{
		top:23px;
		left:19px;
		width:13px;
		height:18px;
		background:rgba(255,255,255,1);
		z-index:0;
	}
	#pagetop span{
		display:none;
		position:absolute;
		top:-25px;
		height:22px;
		right:0px;
		width:80px;
		font-size:10px;
		background:rgba(255,255,255,1);
		border:1px solid #000;
		border-radius:5px;
		-webkit-border-radius:5px;
		-moz-border-radius:5px;
		color:#000;
		line-height:20px;
		}
		#pagetop span:before,
		#pagetop span:after{
			content:" ";
			position:absolute;
		}
		#pagetop span:before{
			bottom:-12px;
			right:8px;
			width:0;
			height:0;
			border:5px solid transparent;
			border-top:7px solid rgba(0,0,0,1);
		}
		#pagetop span:after{
			bottom:-11px;
			right:8px;
			width:0;
			height:0;
			border:5px solid transparent;
			border-top:7px solid rgba(255,255,255,1);
	}
	/* hover */
	#pagetop:hover{
		opacity:1;
	}
	
	#pagetop a{
		display:block;
		position:absolute;
		left:0px;
		top:0px;
		width:100%;
		height:100%;
		color:#0061B1;
		border-radius:6px;
		-webkit-border-radius:6px;
		-moz-border-radius:6px;
		z-index:1;
}
@media print{
	#pagetop{
		display:none;
	}
}

/* -----------------------------------------------------------------
   table_scroll
----------------------------------------------------------------- */
/* --- responsive --- */
@media only screen and (max-width:767px){
	.table_scroll,
	.table_scroll_small,
	.table_scroll_big,
	.table_scroll_wide,
	.table_scroll_large{
		overflow:auto;
		position:relative;
		margin-bottom:20px;
	}
	.table_scroll table,
	.table_scroll_small table,
	.table_scroll_big table,
	.table_scroll_wide table,
	.table_scroll_large table{
		margin-bottom:15px;
	}
	.table_scroll::-webkit-scrollbar,
	.table_scroll_small::-webkit-scrollbar,
	.table_scroll_big::-webkit-scrollbar,
	.table_scroll_wide::-webkit-scrollbar,
	.table_scroll_large::-webkit-scrollbar{
		height:10px;
	}
	.table_scroll::-webkit-scrollbar-track,
	.table_scroll_small::-webkit-scrollbar-track,
	.table_scroll_big::-webkit-scrollbar-track,
	.table_scroll_wide::-webkit-scrollbar-track,
	.table_scroll_large::-webkit-scrollbar-track{
		background: #555;
		-moz-border-radius:6px;
		-webkit-border-radius:6px;
		border-radius:6px;
	}
	.table_scroll::-webkit-scrollbar-thumb,
	.table_scroll_small::-webkit-scrollbar-thumb,
	.table_scroll_big::-webkit-scrollbar-thumb,
	.table_scroll_wide::-webkit-scrollbar-thumb,
	.table_scroll_large::-webkit-scrollbar-thumb{
		background: #BCBCBC;
		-moz-border-radius:5px;
		-webkit-border-radius:5px;
		border-radius:5px;
	}

	.table_scroll table{
		width: 200% !important;
		max-width:200% !important;
	}
	.table_scroll_small table{
		width: 150% !important;
		max-width:150% !important;
	}
	.table_scroll_big table{
		width: 225% !important;
		max-width:225% !important;
	}
	.table_scroll_wide table{
		width: 250% !important;
		max-width:250% !important;
	}
	.table_scroll_large table{
		width: 300% !important;
		max-width:300% !important;
	}
}

