/* ******************************************************************
 *	File name		: base.css
 *	Summary			: css base
 * ******************************************************************
 */
 
/* -----------------------------------------------------------------
   base
----------------------------------------------------------------- */

html{
	position:relative;
}
body{
	position:relative;
	width:100%;
	line-height:145%;
	color:#222;
	background:rgba(240,248,251,1);
	}
	body::before,
	body::after{
		content:" ";
		position:absolute;
		z-index:0;
	}
	body::before{
		top:0px;
		width:100%;
		height:1070px;
		background:#FFF;
	}
	#wrapper{
		position:relative;
		width:100%;
		text-align:center;
		z-index:1;
}

#world{
	position:fixed;
	top:calc(50% -  361px);
	left:calc(50% - 640px);
	width:1280px;
	height:693px;
	background:url(../../image/world_disp.svg) no-repeat 0 0;
	mix-blend-mode:multiply;
	z-index:2 !important;
	transition-duration:1s;
	opacity:0.2;
	animation:worlds 2.0s ease 0s both;
}
@keyframes worlds{
	0% {opacity:0;}
	100% {opacity:0.2;}
}

/* --- responsive --- */
@media screen and (max-width:1300px){
	#world{
		position:fixed;
		top:0px;
		left:10px;
		width:calc(100% - 20px);
		height:100%;
		background:url(../../image/world_disp.svg) no-repeat center center;
		background-size:contain;
		mix-blend-mode:multiply;
	}
}

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

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

header{
	position:fixed;
	top:0px;
	left:0px;
	width:100%;
	height:90px;
	margin:0px;
	z-index:100;
	transition-duration:0.5s;
	}
	#head_contents{
		position:relative;
		width:100%;
		height:100%;
		margin:0 auto;
		text-align:center;
		z-index:1;
	}
	header h1{
		display:-webkit-flex;
		display:flex;
		justify-content:center;
		align-items:center;
		position:absolute;
		top:18px;
		left:30px;
		width:300;
		height:80px;
		text-align:left;
		color:#060B6F;
		transition-duration:0.5s;
		z-index:2;
		}
		header h1 *{
			font-family:YakuHanJP, "Lato", "Noto Sans JP", sans-serif;
		}
		header h1 a{
			display:inline-block;
			position:relative;
			padding:9px 10px 5px 93px;
			font-weight:700;
			font-size:1.21rem;
			text-decoration:none;
			color:#060B6F;
			line-height:1.25;
			}
			header h1 a:hover{
				text-decoration:none;
		}
		header h1 a span{
			display:block;
			font-weight:700;
			font-size:0.56rem;
		}
		header h1 a img{
			display:inline-block;
			position:absolute;
			top:-12px;
			left:0px;
			margin:0 0px 0 0;
			width:80px;
			height:auto;
}

/* nav */
header nav{
	position:absolute;
	top:30px;
	right:30px;
	}
	header nav > ul{
		display:-webkit-flex;
		display:flex;
		-webkit-box-pack:justify;
		-ms-flex-pack:justify;
		justify-content:flex-end;
		flex-wrap:wrap;
		width:auto;
		max-width:100%;
		list-style:none;
	}
	header nav > ul > li{
		display:inline-block;
		margin:0 0 7px 20px;
	}
	header nav > ul > li > a{
		display:-webkit-flex;
		display:flex;
		justify-content:center;
		align-items:center;
		position:relative;
		width:100%;
		min-width:115px;
		height:30px;
		padding:2px 10px 0;
		margin:0 auto;
		font-weight:400;
		font-size:0.9rem;
		text-decoration:none;
		text-align:left;
		-moz-border-radius:15px;
		-webkit-border-radius:15px;
		border-radius:15px;
		background:#060B6F;
		color:#FFF;
		z-index:10;
		transition-duration:0.5s;
	}
	header nav > ul > li.active a,
	header nav > ul > li > a:hover{
		text-decoration:none;
		font-weight:500;
		background:#51AEC8;
	}

/* other li */
header nav ul li#mn_top{
	display:none;
}
header nav ul li#mn_lang{
	position:relative;
	top:2px;
	}
	header nav ul li#mn_lang ul{
		display:-webkit-flex;
		display:flex;
		-webkit-box-pack:justify;
		-ms-flex-pack:justify;
		justify-content:space-between;
		flex-wrap:wrap;
		list-style:none;
		}
		header nav ul li#mn_lang ul li{
			display:inline-block;
		}
		header nav ul li#mn_lang ul li a{
			font-weight:bold;
			font-size:0.9rem;
		}
		header nav ul li#mn_lang ul li a:hover{
			text-decoration:none;
			color:#51AEC8;
		}
		header nav ul li#mn_lang ul li.active a{
			color:#51AEC8;
		}
		header nav ul li#mn_lang ul li:first-child::after{
			content:"/";
			display:inline-block;
			margin:0 7px;
}

/* --- responsive --- */
@media screen and (max-width:1100px){
	header nav > ul > li{
		margin:0 0 7px 10px !important;
	}
	header nav > ul > li > a{
		padding:0 16px;
	}
}

/* -----------------------------------------------------------------
   h_slide
----------------------------------------------------------------- */

header.h_slide{
	position:fixed !important;
	top:0px;
	left:0px;
	width:100%;
	height:90px;
	-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:linear-gradient(90deg, rgba(255,255,255,1), rgba(255,255,255,0.3));
	}
	header.h_slide h1{
		top:3px;
	}
	header.h_slide h1 a{
		padding:9px 10px 5px 73px;
	}
	header.h_slide h1 a img{
		top:-6px;
		width:64px;
	}

/* --- responsive --- */
@media only screen and (max-width:1200px){
	header.h_slide nav li a{
	}
}

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

#nav_icon{
	display:none;
	position:fixed;
	top:30px;
	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:1px;
		background:#060B6F;
		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:1px;
		background:#060B6F;
		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:1200px){
	header{
		position:fixed;
		height:90px;
/*		background:#FFF;*/
		z-index:999;
	}
	header.h_slide{
		background:linear-gradient(90deg, rgba(255,255,255,1), rgba(255,255,255,0.8));
	}
	header.open_menu::before,
	.bg_copy header::before{
		opacity:1;
	}
	header #head_contents{
		height:60px;
	}
	header h1{
		display:-webkit-flex;
		display:flex;
		justify-content:flex-start;
		align-items:center;
		position:absolute;
		top:3px;
		left:0px;
		width:calc(100% - 60px);
		height:100%;
		padding:20px 0 0 10px;
		text-align:left;
		z-index:1000;
	}
	header #main_nav{
		position:fixed;
		top:90px;
		bottom:auto;
		left:auto;
		right:-100%;
		width:100%;
		height:100%;
		padding-top:10px;
		background:linear-gradient(90deg, #BFE4ED, #C3C9E1);
		transition-duration:0.5s;
		overflow-y:scroll;
		z-index:999;
		opacity:0.95;
		}
		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:120px;/* 30 + 50 */
		width:300px;
		height:30px;
		padding-bottom:2px;
		text-indent:-50px;
		color:rgba(255,255,255,1);
		transform:rotate(90deg) !important;
		transform-origin:0 100%;
		transition-duration:0.5s;
		line-height:1;
		z-index:1000;
		}
		header.open_menu #main_nav::before{
			left:0px;
	}
	header nav{
		display:block;
		position:relative;
		height:auto;
		padding:0px;
	}
	header nav > ul{
		display:block;
		width:290px;
		height:auto !important;
		margin:0 auto;
		padding:20px 20px 20px;
	}
	header nav > ul > li{
		position:relative !important;
		top:0px !important;
		left:auto !important;
		right:auto !important;
		width:250px !important;
		max-width:100% !important;
		height:60px !important;
		min-height:40px !important;
		margin:0 0 5px !important;
		text-align:center;
		color:#000;
		transition-duration:0.5s;
		background:none !important;
		border:1px solid rgba(0,0,0,0.3);
		-moz-border-radius:30px !important;
		-webkit-border-radius:30px !important;
		border-radius:30px !important;
		overflow:hidden;
	}
	header nav > ul > li::before,
	header nav > ul > li::after{
		display:none;
	}
	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;
		font-size:1.3rem !important;
		color:#FFF !important;
		border:3px solid #FFF !important;
		-moz-border-radius:30px !important;
		-webkit-border-radius:30px !important;
		border-radius:30px !important;
		z-index:10;
	}
	header nav > ul > li.active a,
	header nav > ul > li > a:hover{
		background:none !important;
	}
	header nav > ul > li > a:hover{
		background:#FFF !important;
		color:#51AEC8 !important;
	}

	header nav > ul > li#mn_lang{
		border:none !important;
		-moz-border-radius:0px !important;
		-webkit-border-radius:0px !important;
		border-radius:0px !important;
	}
	header nav > ul > li#mn_lang ul{
	}
	header nav > ul > li#mn_lang ul li{
		width:47%;
	}
	header nav > ul > li#mn_lang ul li a{
		background:#000;
	}
	header nav > ul > li#mn_lang ul li.active a{
		background:#51AEC8;
	}


	#nav_icon{
		display:block;
	}
	#sns_icon{
		display:none;
	}
}
@media only screen and (max-width:640px){
	header h1{
		top:0px;
		left:0px;
		width:auto;
	}
	header h1 a{
		padding:15px 10px 5px 70px;
		font-size:0.9rem;
			}
			header h1 a:hover{
				text-decoration:none;
		}
		header h1 a span{
			font-size:0.4rem;
	}
	header h1 a{
		padding:9px 10px 5px 73px;
	}
	header h1 a img{
		top:-10px !important;
		width:64px;
	}
}
/* -----------------------------------------------------------------
   bg
----------------------------------------------------------------- */

#bg{
	position:absolute;
	top:500px;
	left:0px;
	width:100%;
	height:calc(100% - 750px);
	background:rgba(240,248,251,1);
	z-index:0;
	overflow:hidden;
	}
	#bg::before,
	#bg::after{
		content:" ";
		position:absolute;
		left:0px;
		width:100%;
	}
	#bg::before{
		top:0px;
		height:1070px;
		background:#FFF;
	}
	#bg::after{
		bottom:0px;
		background:#060B6F;
		height:1070px;
	}
#bg span{
	position:absolute;
	top:0px;
	left:0px;
	width:100%;
	height:100%;
	z-index:1;
	overflow:hidden;
	}
	#bg span::before,
	#bg span::after{
		content:" ";
		display:block;
		position:absolute;
		left:50%;
		width:100%;
		height:2140px;/*470*/
		background:linear-gradient(90deg, #BFE4ED, #C3C9E1);
		background-size:200% 200%;
		transform:translate(-50%, 0);
		-webkit-transform:translate(-50%, 0);
		-ms-transform:translate(-50%, 0);
		z-index:-1;
		animation:bg_grad 4s ease infinite forwards;
	}
	#bg span::before{
		mask-image:url(../../image/base/crip_img.png);
		mask-repeat:no-repeat;
		mask-mode:alpha;
		mask-position:50% 0px;
		mask-size:100% 2140px;
		top:0px;
	}
	#bg span::after{
		mask-image:url(../../image/base/crip_img_b.png);
		mask-repeat:no-repeat;
		mask-mode:alpha;
		mask-position:50% 0px;
		mask-size:100% 2140px;
		bottom:0px;
}

@keyframes bg_grad{
    0%  {opacity:1;background-position:50% 50%}
    25% {opacity:1;background-position:0% 50%}
    50% {opacity:1;background-position:50% 50%}
    75% {opacity:1;background-position:100% 50%}
    100%{opacity:1;background-position:50% 50%}
}

/* --- responsive --- */
@media screen and (max-width:2140px){
	#bg span::before,
	#bg span::after{
		width:2140px;
	}
}
/* -----------------------------------------------------------------
   main
----------------------------------------------------------------- */

main{
	display:block;
	position:relative;
	margin-top:0px;
	padding:0px 0;
	width:100%;
	z-index:10;
	overflow:hidden;
}
#main_contents{
	position:relative;
	max-width:100%;
	margin:0px;
	padding:0px 0 110px;
	text-align:center;
	z-index:1;
	}
	/*
	#main_contents::before,
	#main_contents::after{
		display:none;
		content:" ";
		position:absolute;
		left:0px;
		width:100%;
		z-index:-1;
	}
	#main_contents::before{
		height:calc(100% - 2140px);
		top:1070px;
		background:rgba(240,248,251,1);
		background:red;
		mix-blend-mode:multiply;
	}
	#main_contents::after{
}*/
/*
section:first-child{
	margin:-400px auto 0;
}
*/
section{
	position:relative;
	width:1180px;
	max-width:100%;
	margin:0 auto 110px;
	padding:0 20px;
}
.contents{
	position:relative;
	width:1000px;
	max-width:100%;
	margin:0 auto 40px;
}

/* --- responsive --- */
@media screen and (max-width:767px){
	section{
		margin:0 auto 50px;
	}
}


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

footer{
	position:relative;
	width:100%;
	height:250px;
	margin:0px 0 0;
	padding:50px 0 30px;
	text-align:left;
	background:#060B6F;
	z-index:10;
}

footer div{
	text-align:center;
}
footer div p{
	font-size:0.6rem;
	text-align:center;
	color:#FFF;
	line-height:1.35;
}
footer div strong{
	font-size:1.3rem;
}

#tu_logo{
	position:absolute;
	bottom:25px;
	left:0px;
	width:120px;
	height:auto;
	z-index:100;
	}
	#tu_logo a{
		display:block;
		width:100%;
		height:100%;
}
footer p#copy{
	position:relative;
	margin:0px;
	padding:30px 0;
	font-weight:400;
	font-size:0.8rem;
	text-align:center;
	color:#FFF;
}

/* --- responsive --- */
@media screen and (max-width:767px){
	#tu_logo{
		display:none;
	}
	footer p#copy{
		font-size:0.6rem;
	}
}

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

#pagetop{
	position:fixed;
	bottom:20px;
	right:10px;
	z-index:10;
	}
	#pagetop a{
		display:block;
		width:50px;
		height:50px;
		padding-top:40px;
		background:url(../../image/base/for_top.png) no-repeat 0 0;
		background-size:contain;
		font-size:0.9rem;
		text-decoration:none;
		color:#FFF;
	}
	#pagetop a:hover{
		text-decoration:none;
}
@media print{
	#pagetop{
		display:none;
	}
}

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

.btn{
	position:relative;
	width:100%;
	text-align:left;
	}
	.btn a{
		display:-webkit-flex;
		display:flex;
		justify-content:center;
		align-items:center;
		position:relative;
		width:260px;
		height:50px;
		font-size:0.87rem;
		font-weight:bold;
		background:#0B248E;
		color:#FFF;
		transition-duration:0.5s;
	}
	.btn a:hover{
		border:2px solid #387DCE;
		text-decoration:none;
		background:#FFF;
		color:#387DCE;
	}
	.btn a::after{
		content:" ";
}

.blank::after{
	content:" ";
	position:relative;
	top:0px;
	width:16px;
	height:16px;
	margin:0 0 0 5px;
	background:url(../../image/base/blank.png);
	transition-duration:0.5s;
	}
	.blank:hover::after{
		background:url(../../image/base/blank_b.png);
}


/* --- responsive --- */
@media screen and (max-width:767px){
	.btn{
		text-align:center;
	}
	.btn a{
		margin:0 auto;
	}
}
