@charset "UTF-8";
@import url("https://fonts.googleapis.com/css?family=Noto+Sans+JP:400,500,700&display=swap&subset=japanese");


/*-- Convention Format - Base --
----------------------------------

Base
Main header
Main area
Main footer

Media Queries 1500 1150 750 (print 1280)

----------------------------------
----------------------------------*/

/*-----
Disable transition on page load
-----*/
.preload *{
	-webkit-transition:none !important;
	-moz-transition:none !important;
	-ms-transition:none !important;
	-o-transition:none !important;
	transition:none !important;
}
/*-----
Hide the entire page in white until the page is loaded
-----*/
.preload::before{
	content:"";
	position:fixed;
	top:0;
	right:0;
	bottom:0;
	left:0;
	display:block;
	background-color:rgb(255,255,255);
	background-image:url(../img/icon_loader.gif);
	background-position:center center;
	background-repeat:no-repeat;
	animation-name:preloadcover;
	animation-duration:.3s;
	animation-delay:2s;
	animation-fill-mode:both;
	z-index:1999;
	pointer-events:none;
}
@keyframes preloadcover{
	0%{opacity:1;}
	100%{opacity:0;}
}

/*-----------------------------
	Base
-----------------------------*/
*,
*::before,
*::after{
	box-sizing:border-box;
}
html{
	font-size:100%;
}
body{
	margin:0;
	background: linear-gradient(rgb(4, 49, 141) 0%, rgb(60, 151, 206) 100%);
	background-repeat:no-repeat;
	background-position:center center;
	background-size:cover;
	background-attachment:fixed;
	font-family:font-family: "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", Meiryo, メイリオ, "MS PGothic", arial, helvetica, sans-serif;
	font-size:1em;
	font-weight:400;
	color:rgb(255,255,255);
	font-feature-settings:"palt";
	line-height:1.75;
	-webkit-text-size-adjust:100%;
}
main{
	display:block;
}
p{
	margin:.75em 0;
	font-size:.937rem;
}
.clearfix::after{
	content:"";
	display:table;
	clear:both;
}

/*-----------------------------
	Main header
-----------------------------*/
.main_header{
	position:fixed;
	margin:0 auto;
	padding:0;
	width:100%;
	z-index:2000;
}
.main_header > .inner{
	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
	align-items:center;
	margin:0 auto;
	padding:15px 30px;
	width:100%;
	background:linear-gradient(to bottom,rgba(6, 0, 54, 0.854),rgba(0, 0, 112, 0.63));
	border-bottom:1px solid rgba(255,255,255,.5);
	transition:.15s ease-out;
	transition-property:padding;
}
.main_header h1{
	margin:0;
	width:450px;
	transition:.15s ease-out;
	transition-property:width,height;
}
.main_header h1 a{
	display:block;
	line-height:1;
	text-decoration:none;
	transition:opacity .2s ease-out;
}
.main_header h1 a:hover{
	opacity:.5;
}
.main_header h1 a img{
	vertical-align:bottom;
	line-height:1;
	width:100%;
}

/* nav
--------------------*/
.main_header .nav_area{
	line-height:1.4;
}
.main_header .nav_area #small_menu_button{
	display:none;
}
.main_header .nav_area #small_menu_button + label{
	display:none;
}

/*-- nav area --*/
.main_header nav{
	display:flex;
	justify-content:flex-end;
	align-items:center;
	width:100%;
}

/* main */
.main_header .nav_area .main{
	display:flex;
	justify-content:flex-end;
	align-items:center;
	align-content:center;
	margin:0;
	padding:0;
	list-style:none;
}
.main_header .nav_area .main > li{
	display:flex;
	position:relative;
}
.main_header .nav_area .main > li > a{
	position:relative;
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	align-content:center;
	padding:.5em 1em;
	font-size:1rem;
	font-weight:200;
	color:inherit;
	line-height:1.2;
	text-decoration:none;
	transition:.15s ease-out;
	transition-property:width,color;
	overflow:hidden;
}
.main_header .nav_area .main > li > a::before{
	content:"";
	position:absolute;
	top:50%;
	left:-12px;
	display:block;
	border-style:solid;
	border-width:7px 0 7px 7px;
	border-color:rgba(22,174,191,0) rgba(22,174,191,0) rgba(22,174,191,0) rgba(22,174,191,1);
	transform:translateY(-50%);
	transition:left .15s ease-out;
}
.wrapper:not(.fk-touch_device) .main_header .nav_area .main > li:hover > a,
.main_header .nav_area .main > li.active > a{
	color:rgb(22,174,191);
}
.main_header .nav_area .main > li.current > a{
	color:rgb(22,174,191);
}
.main_header .nav_area .main > li.current > a::before{
	left:1px;
}
.main_header .nav_area .main > li .fk-touch_arrow{
	position:relative;
	display:none;
	align-items:center;
	align-content:center;
	margin-left:-13px;
	padding:5px 11px;
	box-shadow:-1px -1px 1px rgba(0,0,0,.4) inset, 1px 1px 1px rgba(0,0,0,.1) inset;
	color:rgba(22,174,191,1);
	transition:.2s ease-out;
	transition-property:color;
}
.main_header .nav_area .main > li .fk-touch_arrow::before{
	content:"";
	display:block;
	border-style:solid;
	border-width:.5rem .3rem 0 .3rem;
	border-color:currentColor rgba(165,0,65,0) rgba(165,0,65,0) rgba(165,0,65,0);
	transition:.2s ease-out;
	transition-property:transform;
}
.fk-touch_device .main_header .nav_area .main > li .fk-touch_arrow.active::before{
	transform:rotate(180deg);
}
.fk-touch_device .main_header .nav_area .main > li .fk-touch_arrow{
	display:flex;
}
.main_header .nav_area .layer2{
	position:absolute;
	top:100%;
	right:0;
	display:block;
	margin:0;
	padding:0;
	width:200px;
	height:0;
	background:rgba(0,0,0,.8);
	list-style:none;
	transition:.15s ease-out .1s;
	transition-property:opacity;
	overflow:hidden;
	opacity:0;
}
.wrapper:not(.fk-touch_device) .main_header .nav_area .main li:hover .layer2,
.fk-touch_device .main_header .nav_area .main li .fk-touch_arrow.active + .layer2{
	padding:8px 0;
	height:auto;
	opacity:1;
	z-index:1;
}
.main_header .nav_area .layer2 li{
	width:100%;
}
.main_header .nav_area .layer2 a{
	position:relative;
	display:block;
	padding:.5em 1.2em;
	font-size:.875rem;
	font-weight:500;
	color:rgb(255,255,255);
	line-height:1.2;
	letter-spacing:0.05em;
	text-decoration:none;
	text-shadow:1px 1px 2px rgba(0,0,0,.4);
	transition:.2s ease-out;
	transition-property:background-color,color;
}
.main_header .nav_area .layer2 a::before{
	position:absolute;
	left:.5rem;
	top:50%;
	content:"";
	display:inline-block;
	margin-right:3px;
	border-style:solid;
	border-width:.3rem 0 .3rem .4rem;
	border-color:rgba(255,255,255,0) rgba(255,255,255,0) rgba(255,255,255,0) currentColor;
	transform:translateY(-50%);
}
.main_header .nav_area .layer2 a:hover{
	background:rgb(255,255,255);
	color:inherit;
}
.main_header .nav_area .layer2 li.current > a{
	background:rgba(255,255,255,.85);
	color:inherit;
}
.main_header .nav_area .layer2 a.external::after{
	content:"";
	display:inline-block;
	width:1em;
	height:1em;
	margin-left:.3em;
	background-image:url(../img/icon_external_white.svg);
	background-repeat:no-repeat;
	background-size:80%;
	background-position:center center;
	vertical-align:-12%;
}
.main_header .nav_area .layer2 a.external:hover::after{
	background-image:url(../img/icon_external_black.svg);
}
.main_header .sub_links{
	display:flex;
	margin:0 5px 0 15px;
	padding:0;
	list-style:none;
	transition:padding .15s ease-out;
}
.main_header .sub_links li{
	margin-right:10px;
}
.main_header .sub_links li:last-child{
	margin-right:0;
}
.main_header .sub_links a{
	transition:opacity .15s ease-out;
}
.main_header .sub_links a:hover{
	opacity:.65;
}
.main_header .sub_links img{
	vertical-align:bottom;
	height:45px;
}

/* Disabled when in small menu */
@media screen and (min-width:1501px){
	/* scrolled */
	.main_header.fk-scrolled > .inner{
		padding-top:8px;
		padding-bottom:8px;
	}
	.main_header.fk-scrolled h1{
		width:400px;
	}
}

/*-----------------------------
	Main area
-----------------------------*/
.main_area{
	padding-top:58px;
	min-height:calc(100vh - 180px);
	background-size:auto;
}

/*-----------------------------
	Main footer
-----------------------------*/
.main_footer{
	position:relative;
	margin:70px auto 0;
	padding:0;
	border-top:solid 1px rgba(255,255,255,.7);
	z-index:1;
}
#page_home + .main_footer{
	margin-top:0;
}
.main_footer > .inner{
	margin:0 auto;
	padding:45px 50px;
	text-align:center;
}
.main_footer > .inner > .logo{
	max-width: 1000px;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.main_footer > .inner > .logo a:hover{
	opacity: .5;
}
.main_footer address{
	font-style:normal;
	color:rgb(255,255,255);
}
.main_footer .logo{
	margin:0 auto 1.5rem;
}
.main_footer .logo img{
	margin:0 .5rem;
}
.main_footer address .title{
	margin:0 auto;
	padding:0 10px 6px;
	max-width:360px;
	width:100%;
	font-size:1.125rem;
	font-weight: 200;
	font-weight:700;
	border-bottom:solid 1px rgb(255,255,255);
	line-height:1.4;
}
.main_footer address .info{
	margin:.5rem 0 0;
	font-size:.812rem;
	font-weight:400;
	line-height:1.6;
	letter-spacing:0.05em;
}
.main_footer .page_up{
	margin:0;
	text-align:right;
}
.main_footer .page_up a{
	position:fixed;
	right:2px;
	bottom:2px;
	display:block;
	width:70px;
	transition:opacity .2s ease-out;
	z-index:10;
	opacity:.8;
	overflow:hidden;
}
.wrapper:not(.fk-touch_device) .main_footer .page_up a:hover{
	opacity:.4;
}
.main_footer .page_up a img{
	width:100%;
	vertical-align:bottom;
}
.main_footer .copyright{
	margin:0;
	padding:1.2em 25px;
	border-top:solid 1px rgba(255,255,255,.7);
	font-size:.75rem;
	color:rgb(255,255,255);
	line-height:1.3;
	text-align:center;
}


/*---------------------------------
---------------------------------
	Media Queries
---------------------------------
---------------------------------*/
@media screen and (max-width:1500px){
	/*-----------------------------
		Main header
	-----------------------------*/
	.main_header > .inner{
		padding:8px 30px;
	}
	.main_header h1{
		width:400px;
	}
	.main_header .nav_area .main > li > a{
		padding:.4em .6em;
		font-size:.875rem;
	}
	/*-----------------------------
		Main area
	-----------------------------*/
	.main_area{
		padding-top:50px;
	}
}

@media screen and (max-width:1150px){
	/*-----------------------------
		Main header
	-----------------------------*/
	.main_header > .inner{
		padding:10px 20px;
	}

	/* nav
	--------------------*/
	.main_header .nav_area #small_menu_button{
		display:none;
	}
	.main_header .nav_area #small_menu_button + label{
		position:absolute;
		top:14px;
		right:40px;
		display:block;
		padding:8px 7px;
		width:40px;
		z-index:1200;
	}
	.main_header .nav_area #small_menu_button + label > span{
		display:block;
		margin:0 auto 6px;
		width:100%;
		height:3px;
		background:rgb(255,255,255);
		transition:.25s ease-out;
		transition-property:transform,background,width;
	}
	.main_header .nav_area #small_menu_button + label > span:nth-child(3){
		margin-bottom:0;
	}
	.main_header .nav_area #small_menu_button:checked + label > span{
		background:rgb(0,180,255);
	}
	.main_header .nav_area #small_menu_button:checked + label > span:nth-child(1){
		transform:rotate(45deg) translate(6px,7px);
	}
	.main_header .nav_area #small_menu_button:checked + label > span:nth-child(2){
		width:0px;
	}
	.main_header .nav_area #small_menu_button:checked + label > span:nth-child(3){
		transform:rotate(-45deg) translate(6px,-7px);
	}

	.main_header .nav_area #small_menu_button:checked ~ nav{
		right:0;
		opacity:1;
	}
	.main_header .nav_area #small_menu_button ~ .close_field{
		position:fixed;
		top:0;
		right:0;
		display:block;
		width:40%;
		max-width:300px;
		height:0;
		background:rgba(0,0,0,0);
		transition:background .15s ease-out;
	}
	.main_header .nav_area #small_menu_button:checked ~ .close_field{
		height:100vh;
		background:rgba(0,0,0,.75);
		z-index:1000;
	}
	.main_header nav{
		position:fixed;
		top:30px;
		right:120%;
		display:block;
		padding:0 5px;
		padding-top:20px;
		width:40%;
		max-width:300px;
		z-index:1100;
		opacity:0;
		transition:opacity .15s ease-out;
	}
	.main_header nav{
		flex-wrap:wrap;
		border-bottom:none;
	}
	/* main */
	.main_header .nav_area .main{
		flex-wrap:wrap;
		width:100%;
	}
	.main_header .nav_area .main > li{
		position:relative;
		margin-bottom:5px;
		width:100%;
	}
	.main_header .nav_area .main > li > a{
		padding:.5em 1em;
		min-height:0;
		display:flex;
		width:100%;
		font-size:.937rem;
		font-weight:700;
		color:rgb(255,255,255);
		line-height:1.2;
		letter-spacing:0.05em;
		text-decoration:none;
		transition:.15s ease-out;
		transition-property:width,min-height;
	}
	.wrapper:not(.fk-touch_device) .main_header .nav_area .main > li:hover > a,
	.main_header .nav_area .main > li.active > a{
		background:rgb(255,255,255);
	}
	.main_header .nav_area .main > li.current > a{
		background:rgb(255,255,255);
	}
	.main_header .nav_area .main > li .fk-touch_arrow{
		position:absolute;
		top:0;
		right:0;
		bottom:0;
		background:rgba(255,255,255,.3);
	}
	.main_header .nav_area .main > li.current{
		background:none;
	}
	.main_header .nav_area .layer2{
		width:100%;
	}

	.main_header .sub_links{
		order:1;
		flex-wrap:wrap;
		width:100%;
		margin:0 5px 10px 0;
		padding:0;
	}
	.main_header .sub_links li{
		margin-top:4px;
		margin-bottom:4px;
	}
	.main_header .sub_links img{
		height:40px;
	}
	/*-----------------------------
		Main area
	-----------------------------*/
	.main_area{
		padding-top:40px;
	}
	/*-----------------------------
		Main footer
	-----------------------------*/
	.main_footer > .inner{
		padding:30px 20px;
	}
	.main_footer address{
		margin:15px 0;
		width:100%;
		text-align:center;
	}
	.main_footer .logo img{
		height:75px;
	}
	.main_footer address .title{
		max-width:290px;
	}
}

@media screen and (max-width:750px){
	/*-----------------------------
		Base
	-----------------------------*/
	html{
		font-size:90%;
	}

	/*-----------------------------
		Main header
	-----------------------------*/
	.main_header h1{
		width:85%;
		max-width:380px;
	}
	.main_header h1 a{
		line-height: 44px;
	}
	.main_header h1 a img {
		vertical-align:top;
	}
	.main_header .nav_area #small_menu_button + label{
		top:13px;
		right:35px;
	}

	/*-----------------------------
		Main area
	-----------------------------*/
	.main_area{
		padding-top:50px;
		background-size:90% auto;
	}

	/*-----------------------------
		Main footer
	-----------------------------*/
	.main_footer > .inner{
		max-width:500px;
		padding:30px 20px;
		text-align:center;
	}
	.main_footer .logo img{
		height:33px;
	}
}
@media screen and (max-width:500px){
	.main_area {
    padding-top: 50px;
    background-size: 90% auto;
}
@media screen and (max-width:400px){
	.main_area {
    padding-top: 65px;
    background-size: 90% auto;
}
}
@media print{
	body{min-width:1280px;}
	.main_header{position:absolute;}
}
