/* ******************************************************************
 *	File name		: base.css
 *	Summary			: css base
 * ******************************************************************
 */
 
:root {
	--base-color: #3B4182;/* 紫 */
}
/*
rgb(59,65,130)
*/
/* -----------------------------------------------------------------
   base
----------------------------------------------------------------- */

body{
	position:relative;
	width:100%;
	height:100%;
	line-height:145%;
	color:#222;
	}
	#wrapper{
		position:relative;
		width:100%;
		height:100%;
		text-align:center;
	}
	#wrapper::before{
		content:" ";
		position:fixed;
		top:0px;
		left:0px;
		width:100%;
		height:0px;
		-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);
		background:rgba(255,255,255,0.85);
		z-index:9;
		transition-duration:0.5s;
	}
	#wrapper.h_scroll::before{
		height:60px;
}


/* --- responsive --- */
@media screen and (max-width:1100px){
	#wrapper::before{
		height:60px;
	}
}

@media print {
	body{
		margin:0;
		width:1100px;
	}
}

/* -----------------------------------------------------------------
   header
----------------------------------------------------------------- */

header{
	position:fixed;
	top:0px;
	left:0px;
	width:100%;
	height:0px;
	margin:0px;
	z-index:100;
	transition-duration:0.5s;
	}
	#head_contents{
		position:relative;
		width:100%;
		height:100%;
		margin:0 auto;
		text-align:center;
	}
	#head_title{
		position:relative;
		}
		#head_title h1 a{
			display:block;
		}
		#head_title h1{
			position:absolute;
			top:19px;
			left:41px;
			width:103px;
			height:93px;
			text-align:left;
			color:#FFF;
			z-index:2;
			transition-duration:0.5s;
			}
			#head_title h1 img:nth-child(1){
				position:absolute;
				top:0px;
		}
		#head_title p{
			position:absolute;
			top:21px;
			left:175px;
			width:166px;
			height:21px;
			text-align:left;
			transition-duration:0.5s;
		}
		#head_title div{
			display:-webkit-flex;
			display:flex;
			justify-content:center;
			align-items:center;
			position:absolute;
			top:56px;
			left:175px;
			width:166px;
			height:60px;
			padding:0 15px;
			font-size:0.65rem;
			text-align:left;
			background:#F2F2F2;
			line-height:1.3;
			color:#000;
			-moz-border-radius:6px;
			-webkit-border-radius:6px;
			border-radius:6px;
}

/* nav */
header nav{
	position:absolute;
	top:0px;
	right:0px;
	height:60px;
	background:#3B4182;
	}
	header nav *{
		color:rgba(255,255,255,0.8);
	}
	header nav::before{
		content:" ";
		position:absolute;
		top:0px;
		left:-59px;
		width:60px;
		height:60px;
		background:#3B4182;
		-moz-border-radius:0 0 0 100%;
		-webkit-border-radius:0 0 0 100%;
		border-radius:0 0 0 100%;
	}
	header nav > ul{
		display:-webkit-flex;
		display:flex;
		-webkit-box-pack:justify;
		-ms-flex-pack:justify;
		justify-content:flex-end;
		flex-wrap:wrap;
		width:100%;
		height:100%;
		padding-right:280px;
		list-style:none;
	}
	header nav > ul > li{
		display:block;
		position:relative;
		margin:0 0 0 10px;
	}
	header nav > ul > li:has(ul) div{
		display:-webkit-flex;
		display:flex;
		justify-content:center;
		align-items:center;
		position:relative;
		height:60px;
		cursor:pointer;
	}
	header nav > ul > li:has(ul) div::after{
		content:"＋";
		position:relative;
		width:10px;
		text-align:right;
		font-size:0.77rem;
	}
	header nav > ul > li:has(ul):hover div::after{
		content:"－";
	}
	header nav > ul > li > a{
		display:-webkit-flex;
		display:flex;
		justify-content:center;
		align-items:center;
		position:relative;
		width:100%;
		height:100%;
		margin:0 auto;
		padding:0 13px;
		font-weight:500;
		font-size:0.9rem;
		text-decoration:none;
		text-align:center;
		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 > a::before,
	header nav > ul > li:has(ul) div::before{
		content:" ";
		position:absolute;
		bottom:calc(50% - 0.75rem);
		left:13px;
		width:0px;
		height:1px;
		background:rgba(255,255,255,0.7);
		transition-duration:0.5s;
		}
		header nav > ul > li > a:hover::before,
		header nav > ul > li:has(ul) div:hover::before{
			width:calc(100% - 26px);
	}
	header nav > ul > li:has(ul) div::before{
		left:0px;
		}
		header nav > ul > li:has(ul) div:hover::before{
			width:100%;
	}

	/* ul ul */
	header nav > ul > li > ul{
		position:absolute;
		top:100%;
		left:0px;
		width:210px;
		min-width:100%;
		text-align:left;
		background:var(--base-color);
		transition-duration:0.5s;
	}
	header nav > ul > li:hover > ul{
		padding:10px 10px 10px 30px;
	}
	header nav > ul > li > ul > li{
		height:0px;
		overflow:hidden;
		transition-duration:0.5s;
	}
	header nav > ul > li:hover > ul > li{
		width:100%;
		height:40px;
		}
		header nav > ul > li > ul > li a{
			position:relative;
			width:100%;
			height:100%;
			padding:5px 20px;
			font-size:0.85rem !important;
			text-decoration:none;
			color:#FFF;
		}
		header nav > ul > li > ul > li a:hover{
			text-decoration:none;
		}
		header nav > ul > li > ul > li a::before{
			content:" ";
			position:absolute;
			top:calc(50% - 6px);
			left:0px;
			border: 6px solid transparent;
			border-left: 6px solid #FFF;
		}
		header nav > ul > li > ul > li a::after{
			content:" ";
			position:absolute;
			width:0%;
			height:1px;
			left:0px;
			bottom:0px;
			background:#FFF;
			transition-duration:0.5s;
			}
			header nav > ul > li > ul > li a:hover::after{
				width:100%;
		}

/* other li */
header nav ul li#nav_top{
	display:none;
}

header #nav_recruit{
	display:-webkit-flex;
	display:flex;
	justify-content:center;
	align-items:center;
	flex-wrap:wrap;
	position:absolute;
	top:10px;
	right:60px;
	width:90px;
	height:90px;
	background:#196C19;
	-moz-border-radius:50%;
	-webkit-border-radius:50%;
	border-radius:50%;
	cursor:pointer;
	transition-duration:0.2s;
	z-index:10;
	}
	header #nav_recruit:hover{
		width:150px;
		height:auto;
		-moz-border-radius:0%;
		-webkit-border-radius:0%;
		border-radius:0%;
	}
	header #nav_recruit div{
		display:inline-block;
	}
	header #nav_recruit div::before{
		display:none !important;
	}
	header #nav_recruit div span{
		font-size:0.75rem;
		border-bottom:1px solid #FFF;
	}
	header #nav_recruit:hover div{
		width:100%;
		padding-top:10px;
	}
	header #nav_recruit ul{
		position:relative;
		top:0px;
		width:0px;
		min-width:0px;
		text-align:left;
		transition-duration:0s;
		background:none;
		overflow:hidden;
		}
		header #nav_recruit:hover ul{
			width:150px;
			min-width:100%;
			padding:10px 10px 0px 10px;
	}
	header #nav_recruit ul li{
		text-align:center;
		overflow:hidden;
		transition-duration:0s;
	}
	header #nav_recruit ul li a{
		padding:5px 10px;
		text-align:center;
		}
		header #nav_recruit ul li a:before{
			display:none;
	}

header #nav_sns{
	position:absolute;
	top:16px;
	right:190px;
	}
	header #nav_sns ul{
		display:-webkit-flex;
		display:flex;
		-webkit-box-pack:justify;
		-ms-flex-pack:justify;
		justify-content:space-between;
		flex-wrap:wrap;
		width:70px;
	}
	header #nav_sns li{
		width:26px;
		height:26px;
		}
		header #nav_sns li a{
			display:block;
			width:100%;
			height:100%;
			padding:0px 3px 2px;
			-moz-border-radius:6px;
			-webkit-border-radius:6px;
			border-radius:6px;
			transition-duration:0.5s;
		}
		header #nav_sns li img{
			mix-blend-mode:normal;
	}
	header #nav_sns li a:hover{
		background:#FFF;
		}
		header #nav_sns li:hover img{
			mix-blend-mode:exclusion;
}

/* -----------------------------------------------------------------
   nav icon
----------------------------------------------------------------- */

#nav_icon{
	display:none;
	position:fixed;
	top:24px;
	right:20px;
	width:36px;
	height:36px;
	background:none;
	-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:2px;
		background:#FFF;
		transition-duration:0.5s;
	}
	#nav_icon::before{
		top:7px;
	}
	#nav_icon::after{
		top:26px;
	}
	#nav_icon span{
		position:absolute;
		top:16px;
		left:4px;
		width:29px;
		height:2px;
		background:#FFF;
		transition-duration:0.5s;
}
/* --- responsive --- */
@media only screen and (max-width:1200px){
	#nav_icon{
		top:14px;
	}
}

/* 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;
}

/* -----------------------------------------------------------------
   SCROLL
----------------------------------------------------------------- */

.h_scroll header #head_title h1{
	top:7px;
	left:30px;
	width:80px;
	height:50px;
	}
	.h_scroll header #head_title h1 img{
		width:50px;
		height:auto;
	}
	.h_scroll header #head_title p{
		top:18px;
		left:110px;
	}
	.h_scroll header #head_title h1 p{
	}
	.h_scroll #head_title h1 img:nth-child(2),
	.h_scroll #head_title div{
		display:none;
}

/* -----------------------------------------------------------------
   SP MENU
----------------------------------------------------------------- */
/* --- responsive --- */
@media only screen and (max-width:1100px){
	header{
		position:fixed;
		top:0px;
		left:0px;
		width:100%;
		margin:0px;
		z-index:100;
	}
	#head_contents{
		position:relative;
		width:100%;
		height:100%;
		margin:0 auto;
		text-align:center;
		z-index:1;
	}
	#head_title h1{
		top:7px;
		left:30px;
		width:80px;
		height:55px;
		}
		#head_title h1 img{
			width:50px;
			height:auto;
	}
	#head_title p,
	.h_scroll header #head_title p{
		top:20px;
		left:auto;
		right:80px;
		width:166px;
		height:21px;
		background:url(../../image/base/logo_text_sp.png) no-repeat 0 0;
		background-size:contain;
		transition-duration:0.5s;
		}
		.open_menu #head_title p{
			right:80px !important;
		}
		#head_title h1 img:nth-child(2){
			display:none;
		}
		#head_title p img{
			display:none;
	}
	#head_title div{
		display:none;
	}

	header #main_nav{
		position:relative;
	}
	header nav{
		display:block;
		background:none;
	}
	header nav::before{
		display:none;
	}
	header nav > ul > li{
		display:none;
		margin:0 0 0 0px;
	}
	header nav > ul > li::before,
	header nav > ul > li::after{
		display:none;
	}

	#nav_icon{
		display:block;
	}

	header #nav_recruit,
	header #nav_contact{
		display:block;
		position:fixed;
		width:43%;
		height:50px;
		top:auto;
		bottom:10px;
		left:auto;
		right:auto;
		transition-duration:0.5s;
		}
		header #nav_recruit{
			left:5%;
		}
		header #nav_contact{
			right:5%;
			border:1px solid #FFF;
			-moz-border-radius:40px;
			-webkit-border-radius:40px;
			border-radius:40px;
			background:var(--base-color);
	}
	header #nav_recruit *,
	header #nav_contact *{
		font-size:1.1rem !important;
	}
	header #nav_contact a{
		font-weight:bold;
		}
		header #nav_contact:hover{
			border:1px solid #3B4182;
			background:#FFF;
		}
		header #nav_contact:hover a{
			font-weight:bold;
			color:#3B4182;
		}
		header #nav_contact a::before{
			display:none !important;
	}


	header nav > ul > li:hover > ul{
		padding:0px;
	}
	header nav > ul > li.open_recruit > ul{
		padding:10px 10px 10px 30px;
	}
	header nav > ul > li:hover > ul > li{
		height:0px;
	}
	header nav > ul > li.open_recruit > ul > li{
		width:100%;
		height:40px;
	}
	header nav > ul > li > ul > li a:hover::after{
		width:0%;
	}
	header nav > ul > li#nav_recruit:has(ul):hover div::after{
		content:"＋";
	}
	header nav > ul > li#nav_recruit.open_recruit:has(ul):hover div::after{
		content:"－";
	}
	header #nav_recruit{
		width:43% !important;
		height:50px !important;
		padding-bottom:0px;
		border:1px solid #FFF !important;
		-moz-border-radius:0px !important;
		-webkit-border-radius:0px !important;
		border-radius:0px !important;
		-moz-border-radius:40px !important;
		-webkit-border-radius:40px !important;
		border-radius:40px !important;
		background:#196C19;
	}
	header #nav_recruit:hover{
		width:43% !important;
		height:50px !important;
		-moz-border-radius:40px !important;
		-webkit-border-radius:40px !important;
		border-radius:40px !important;
	}
	header #nav_recruit.open_recruit{
		height:auto !important;
		padding-bottom:50px;
		border:1px solid #196C19 !important;
		-moz-border-radius:0px !important;
		-webkit-border-radius:0px !important;
		border-radius:0px !important;
		background:#FFF !important;
	}

	header #nav_recruit div{
		display:-webkit-flex;
		display:flex;
		justify-content:center;
		align-items:center;
		position:absolute;
		bottom:0px;
		left:0px;
		width:100%;
		height:50px !important;
		padding:0px 0 20px !important;
		font-size:3.5vw;
		-moz-border-radius:40px !important;
		-webkit-border-radius:40px !important;
		border-radius:40px !important;
		font-weight:bold;
		transition-duration:0s;
		z-index:10;
	}
	header #nav_recruit div *{
		padding:0px !important;
	}
	header #nav_recruit div::after{
		top:11px;
		font-size:1.3rem !important;
	}
	header #nav_recruit div span{
		display:none;
	}
	header #nav_recruit:hover div{
		padding-top:0px;
	}
	header #nav_recruit.open_recruit div{
		width:100% !important;
		padding-top:10px;
		color:#196C19 !important;
		-moz-border-radius:0px !important;
		-webkit-border-radius:0px !important;
		border-radius:0px !important;
	}

	header #nav_recruit ul{
		top:0px;
		left:-1px;
		width:calc(100% + 2px) !important;
		margin:0px !important;
		padding:10px 10px 0px;
		text-align:left;
		border:none;
		transition-duration:0s;
		background:none;
		overflow:hidden;
		z-index:1;
		}
		header #nav_recruit.open_recruit ul{
			padding:10px 10px 0px !important;
		}
		header #nav_recruit ul li{
			width:100%;
			margin:0px !important;
			text-align:center;
		}
		header #nav_recruit ul li a{
			display:block;
			position:relative;
			width:100%;
			padding:5px 10px 5px 20px;
			font-weight:bold;
			text-align:left !important;
			color:#196C19;
			}
			header #nav_recruit ul li a::before{
				content:" ";
				display:block !important;
				position:absolute;
				top:calc(50% - 10px);
				left:7px;
				border: 6px solid transparent;
				border-left:6px solid #196C19;
	}
	header #nav_sns{
		display:none;
	}
}
@media only screen and (max-width:640px){
	header #nav_recruit *,
	header #nav_contact *{
		font-size:1.0rem !important;
	}
	header #nav_recruit div::after{
		top:12px;
		font-size:1.1rem !important;
	}
}
@media only screen and (max-width:450px){
	header #nav_recruit *,
	header #nav_contact *{
		font-size:0.9rem !important;
	}
	header #nav_recruit div::after{
		top:12px;
		font-size:1.0rem !important;
	}
	#head_title h1{
		left:30px !important;
	}
}
@media only screen and (max-width:360px){
	#head_title h1{
		left:20px !important;
	}
}

/* -----------------------------------------------------------------
   main
----------------------------------------------------------------- */

main{
	display:block;
	position:relative;
	margin-top:0px;
	padding:0px;
	width:100%;
	z-index:1;
}
#main_contents{
	position:relative;
	width:100%;
	max-width:100%;
	margin:0 auto;
	background:#FFF;
}
section{
	position:relative;
	width:100%;
	max-width:100%;
	margin:0 auto;
}
.contents{
	position:relative;
	width:1124px;
	max-width:100%;
	padding:50px 50px;
	margin:0 auto;
}

/* --- responsive --- */
@media screen and (max-width:767px){
	.contents{
		padding:50px 20px;
	}
	.contents.line{
		padding:50px 20px 30px;
	}
	.contents.line::before,
	.contents.line::after{
		left:20px;
		}
		.contents.line::before{
			width:calc(100% - 40px);
	}
}

/* -----------------------------------------------------------------
   footer
----------------------------------------------------------------- */

footer{
	position:relative;
	width:100%;
	margin:0px;
	margin-top:30vw;
	background:var(--base-color);
	text-align:left;
	z-index:0;
}
footer::before{
	content:" ";
	position:absolute;
	}
	footer::before{
		top:-30vw;
		left:0px;
		width:100%;
		height:30vw;
		background:url(../../image/base/ft_bg.webp) no-repeat 0 0 #FFF;
		background-size:cover;
		z-index:0;
}
footer object{
	position:absolute;
	top:-9.4vw;
	left:0px;
	width:100%;
	height:10.4vw;
	z-index:1;
	overflow:hidden;
}

/* ft_banner */
#ft_contents{
	display:-webkit-flex;
	display:flex;
	-webkit-box-pack:justify;
	-ms-flex-pack:justify;
	justify-content:space-between;
	flex-wrap:wrap;
	position:relative;
	width:100%;
	padding:0px 50px 50px;
	background:var(--base-color);
	margin:0 auto;
	z-index:2;
}


footer address{
	position:relative;
	width:300px;
	max-width:100%;
	padding:0px;
	}
	footer address *{
		color:#FFF;
	}
	footer address figure{
		position:relative;
		top:0px;
		left:0px;
		width:180px;
		margin:0 10px 30px;
	}
	footer address p{
		position:relative;
		margin:0 0 50px;
		font-weight:normal;
		font-size:1.0rem;
		letter-spacing:1px;
		line-height:1.75;
	}
	footer address p:has(strong){
		position:relative;
		margin:0 0 10px;
		font-weight:500;
		font-size:1.4rem;
		line-height:1.5;
	}
	footer address h3 + p{
		margin:0 0 50px;
}

footer #ft_sns{
	position:relative;
	width:55%;
	z-index:5;
}
footer #ft_sns ul{
	display:-webkit-flex;
	display:flex;
	-webkit-box-pack:justify;
	-ms-flex-pack:justify;
	justify-content:space-between;
	flex-wrap:wrap;
	position:relative;
	width:100%;
	}
	footer #ft_sns ul li{
		width:28px;
	}
	footer #ft_sns ul li a{
		opacity:0.5;
		transition-duration:0.5s;
	}
	footer #ft_sns ul li a:hover{
		opacity:1;
}


footer #ft_menu{
	position:relative;
	width:calc(100% - 350px);
	padding:50px 0;
	z-index:999;
	}
	footer #ft_menu > ul{
		display:-webkit-flex;
		display:flex;
		-webkit-box-pack:justify;
		-ms-flex-pack:justify;
		justify-content:space-between;
		flex-wrap:wrap;
		position:relative;
		width:100%;
	}
	footer #ft_menu > ul *{
		color:#FFF;
	}
	footer #ft_menu > ul > li{
		display:block;
		position:relative;
		width:30%;
		max-width:100%;
		transition-duration:0.5s;
	}
	footer #ft_menu > ul li div{
		position:relative;
		padding-bottom:3px;
		font-size:1.0rem;
		border-bottom:1px solid rgba(255,255,255,0.5);
	}
	/* ul ul */
	footer #ft_menu > ul li ul{
		padding-top:20px;
	}
	footer #ft_menu > ul li ul li{
		margin:0 0 15px;
	}
	footer #ft_menu > ul li ul li a{
		display:inline-block;
		position:relative;
		padding-left:15px;
		font-size:1.0rem;
	}
	footer #ft_menu > ul li ul li a:hover{
		text-decoration:none;
	}
	footer #ft_menu > ul li ul li a::before{
		content:" ";
		position:absolute;
		top:calc(50% - 6px);
		left:0px;
		border: 6px solid transparent;
		border-left: 6px solid rgba(255,255,255,1);
	}
	footer #ft_menu > ul li ul li a::after{
		content:" ";
		position:absolute;
		left:15px;
		bottom:0px;
		width:0px;
		height:1px;
		background:rgba(255,255,255,0.8);
		transition-duration:0.5s;
		}
		footer #ft_menu > ul li ul li a:hover::after{
			width:calc(100% - 15px);
	}

footer p#copy{
	position:relative;
	width:100%;
	margin:-20px 0 0;
	padding:0px 0 30px;
	font-weight:400;
	font-size:1.0rem;
	text-align:center;
	color:#FFF;
	z-index:0;
}

/* --- responsive --- */
@media only screen and (max-width:1100px){
	footer{
		z-index:10;
	}
	footer #ft_contents{
		padding-top:50px;
		text-align:center;
	}
	footer #ft_menu{
		position:fixed;
		top:0px;
		right:0px;
		width:220px;
		height:60px;
		padding:0px;
		background:var(--base-color);
		transition-duration:0.5s;
		}
		footer.open_menu #ft_menu{
			width:270px !important;
			height:100%;
		}
		footer #ft_menu::before{
			content:" ";
			position:absolute;
			top:0px;
			left:-59px;
			width:60px;
			height:60px;
			background:var(--base-color);
			-moz-border-radius:0 0 0 100%;
			-webkit-border-radius:0 0 0 100%;
			border-radius:0 0 0 100%;
			transition-duration:0.5s;
			}
			footer.open_menu #ft_menu::before{
				left:0px;
				width:0px;
				height:0px;
		}
		footer #ft_menu > ul{
			display:block;
			position:absolute;
			top:60px;
			right:auto;
			left:30px;
			width:calc(100% - 30px);
			height:0%;
			text-align:left;
			overflow-y:scroll;
			transition-duration:0.5s;
			}
			footer.open_menu #ft_menu > ul{
				height:100%;
				padding-bottom:120px;
		}
		footer #ft_menu > ul *{
			color:#FFF;
		}
		footer #ft_menu > ul > li{
			position:relative;
			width:100%;
			margin:0 0 30px 0px;
		}
		footer #ft_menu > ul li div{
			position:relative;
			font-size:0.8rem;
			border-bottom:1px solid rgba(255,255,255,0.5);
		}
		/* ul ul */
		footer #ft_menu > ul li ul{
			padding-top:20px;
		}
		footer #ft_menu > ul li ul li{
			margin:0 0 15px;
		}
		footer #ft_menu > ul li ul li a{
			display:block;
			position:relative;
			padding-left:15px;
			font-size:1.0rem;
		}
		footer #ft_menu > ul li ul li a::before{
			content:" ";
			position:absolute;
			top:calc(50% - 6px);
			left:0px;
			border: 6px solid transparent;
			border-left: 6px solid rgba(255,255,255,1);
	}

	footer address{
		width:100%;
		margin:0 auto 60px;
		padding:0 0 0 0px;
		}
		footer address *{
			color:#FFF;
		}
		footer address figure{
			position:relative;
			width:100px;
			margin:0 auto 15px;
		}
		footer address p{
			font-size:0.87rem;
			letter-spacing:0px;
			line-height:1.75;
			text-align:center;
		}
		footer address p:has(strong){
			margin:0 0 10px;
			font-size:1.5rem;
	}

	footer #ft_sns{
		width:100%;
	}
	footer #ft_sns ul{
		display:inline-block;
		text-align:center;
		}
		footer #ft_sns ul li{
			display:inline-block;
			width:28px;
			margin:0 10px;
	}
	footer p#copy{
		padding:0px 0 100px;
		font-size:0.87rem;
	}
}

/* sp open menu */
.open_menu #ft_menu > ul{
	right:0px !important;
}

/* -----------------------------------------------------------------
   pagetop
----------------------------------------------------------------- */

#pagetop{
	position:fixed;
	right:20px;
	bottom:25px;
	width:75px;
	height:75px;
	border:1px solid rgba(59,65,130,1);
	-moz-border-radius:50%;
	-webkit-border-radius:50%;
	border-radius:50%;
	background:rgba(255,255,255,1);
	opacity:0.5;
	transition-duration:0.5s;
	z-index:5000;
	}
	#pagetop::before,
	#pagetop::after{
		content:" ";
		position:absolute;
	}
	#pagetop::before{
		top:calc(50% - 14px);
		left:calc(50% + 4px);
		width:15px;
		height:15px;
		border:2px solid transparent;
		border-right:2px solid rgba(59,65,130,1);
		border-top:2px solid rgba(59,65,130,1);
		transform:rotate(-45deg) translate(-50%, -50%);
	}
	#pagetop::after{
		top:50%;
		left:50%;
		width:2px;
		height:30px;
		background:rgba(59,65,130,1);
		transform:translate(-50%, -50%);
		z-index:0;
	}
	/* hover */
	#pagetop:hover{
		opacity:1;
		background:rgba(59,65,130,1);
		}
		#pagetop:hover::before{
			border-right:2px solid rgba(255,255,255,1);
			border-top:2px solid rgba(255,255,255,1);
		}
		#pagetop:hover::after{
			background:rgba(255,255,255,1);
	}
	#pagetop span{
		display:none;
	}
	
	#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;
	}
}

@media only screen and (max-width:1100px){
	#pagetop{
		display:none;
	}
}

/* -----------------------------------------------------------------
   btn
----------------------------------------------------------------- */

.btn{
	position:relative;
	width:320px;
	max-width:100%;
	height:55px;
	background:#1354C5;
	text-align:center;
	}
	.btn::before,
	.btn::after{
		content:" ";
		position:absolute;
		transition-duration:0.5s;
	}
	.btn::before{
		top:1px;
		left:1px;
		width:0px;
		height:calc(100% - 2px);
		background:#FFF;
	}
	.btn::after{
		top:12px;
		right:58px;
		width:1px;
		height:31px;
		background:#FFF;
	}
	.btn:hover::before{
		width:calc(100% - 59px);
	}
	.btn a{
		display:-webkit-flex;
		display:flex;
		justify-content:flex-start;
		align-items:center;
		position:relative;
		width:100%;
		height:100%;
		padding:0 70px 0 20px;
		font-weight:500;
		color:#FFF;
		transition-duration:0.5s;
		letter-spacing:3px;
		z-index:100;
	}
	.btn a:hover{
		text-decoration:none;
		color:#1354C5;
	}
	.btn a::before,
	.btn a::after{
		content:" ";
		position:absolute;
		transition-duration:0.5s;
	}
	.btn a::before{
		top:calc(50%);
		right:23px;
		width:17px;
		height:1px;
		background:#FFF;
	}
	.btn a::after{
		top:calc(50% - 5px);
		right:23px;
		width:10px;
		height:10px;
		border-top:1px solid #FFF;
		border-right:1px solid #FFF;
		transform:rotate(45deg);
	}
	.btn a:hover::before{
		right:23px;
		transform:rotate(90deg);
	}
	.btn a:hover::after{
		right:25px;
	}

/* --- responsive --- */
@media screen and (max-width:767px){
	.btn{
		width:100%;
	}
	.btn a{
		width:100%;
	}
}


