@charset "UTF-8";

/*==========*/
/*!BASE*/
/*==========*/
* {
	-webkit-box-sizing:border-box;
	-moz-box-sizing:border-box;
	box-sizing:border-box;
	-webkit-tap-highlight-color:transparent;
	tap-highlight-color:transparent;
}

html {
	overflow-y:scroll;
	-webkit-font-smoothing:subpixel-antialiased;
}

body {
	background-color:#fff;
	letter-spacing:0;
	font-weight:400;
	font-size:16px;
	font-family:YakuHanJP,"ヒラギノ角ゴ Pro W3",Hiragino Kaku Gothic Pro,"メイリオ",Meiryo,"ＭＳ Ｐゴシック",Osaka,sans-serif;
	line-height:1.6;
	-webkit-text-size-adjust:100%;
	-webkit-backface-visibility:hidden;
}

@media screen and (max-width:768px) {
	body {
		font-size:3.4vw;
	}
}

p {
	text-align:justify;
}

img {
	width:100%;
	height:auto;
	vertical-align:top;
}

a {
	outline:none;
	color:#000;
	text-decoration:none;
}

.cf:after {
	display:block;
	clear:both;
	content:'';
}

.smg {
	font-family:'Sorts Mill Goudy';
}

@media screen and (min-width:769px) {
	.flash:hover {
		opacity:1;
		-webkit-animation-name:flash;
		animation-name:flash;
		-webkit-animation-duration:2s;
		animation-duration:2s;
	}
}

@-webkit-keyframes flash {
	0% {
		opacity:.5;
	}
	
	100% {
		opacity:1;
	}
}

@keyframes flash {
	0% {
		opacity:.5;
	}
	
	100% {
		opacity:1;
	}
}

@-webkit-keyframes fuwa {
	0% {
		-webkit-transform:translate(0,0);
	}
	
	50% {
		-webkit-transform:translate(0,5px);
	}
	
	100% {
		-webkit-transform:translate(0,0);
	}
}

@keyframes fuwa {
	0% {
		transform:translate(0,0);
	}
	
	50% {
		transform:translate(0,5px);
	}
	
	100% {
		transform:translate(0,0);
	}
}

/*==========*/
/*!wrapper*/
/*==========*/
.wrapper {
	overflow:hidden;
	min-width:1024px;
	width:100%;
}

.wrapper .pc {
	display:inherit;
}

.wrapper .sp {
	display:none!important;
}

@media screen and (max-width:768px) {
	.wrapper {
		min-width:inherit;
	}
	
	.wrapper .pc {
		display:none!important;
	}
	
	.wrapper .sp {
		display:inherit!important;
	}
}

/*==========*/
/*!main*/
/*==========*/
main {
	min-height:75vh;
}

/*==========*/
/*!header*/
/*==========*/
@media screen and (min-width:769px) {
	header {
		position:fixed;
		z-index:10000;
		min-width:1024px;
		width:100%;
		background-color:#FFF;
	}
	
	header .logo {
		position:absolute;
		top:50%;
		left:40px;
		display:block;
		-webkit-transform:translateY(-50%);
		-ms-transform:translateY(-50%);
		transform:translateY(-50%);
	}
	
	header .logo a {
		display:block;
	}
	
	header .logo img {
		width:auto;
		height:43px;
		transition:.2s;
	}
	
	header nav {
		float:right;
		font-size:0;
	}
	
	header nav .wrap > div {
		display:inline-block;
		vertical-align:top;
	}
	
	header nav .wrap > div > ul > li {
		position:relative;
		display:inline-block;
		width:150px;
		vertical-align:top;
		transition:width .2s;
	}
	
	header nav .wrap > div > ul > li > a,header nav .wrap > div > ul > li > span {
		display:block;
		padding-left:.05em;
		width:100%;
		color:#333;
		text-align:center;
		letter-spacing:.05em;
		font-weight:700;
		font-size:13px;
		line-height:120px;
		cursor:pointer;
		transition:all .2s .2s;
	}
	
	header nav .wrap > div > ul > li.ptn > a {
		position:relative;
	}
	
	header nav .wrap > div > ul > li.ptn > a b {
		position:absolute;
		top:50%;
		left:50%;
		display:block;
		width:100%;
		line-height:1.5em;
		transform:translate(-50%,-50%);
	}
	
	header nav .wrap > div > ul > li > span {
		cursor:default;
	}
	
	header nav .wrap .menu > ul > li > a:hover {
		background-color:#345992;
		color:#FFF!important;
	}
	
	header nav .wrap > div > ul > .sub > a:hover {
		background-color:inherit;
	}
	
	header nav .sub .line {
		position:absolute;
		bottom:0;
		left:10%;
		width:80%;
		height:0;
		background-color:#345992;
		transition:height .2s;
	}
	
	/*header nav .news-current:after {
					position:absolute;
					bottom:0;
					left:50%;
					width:0;
					height:0;
					border-top:6px solid transparent;
					border-right:4px solid transparent;
					border-bottom:6px solid #FFA200;
					border-left:4px solid transparent;
					content:"";
					-webkit-transform:translateX(-50%);
					-ms-transform:translateX(-50%);
					transform:translateX(-50%);
				}*/
	header nav .news-current:after,header nav .partners-current:after {
		position:absolute;
		bottom:0;
		left:50%;
		display:block;
		width:80%;
		height:6px;
		background-color:#FFA200;
		content:"";
		-webkit-transform:translateX(-50%);
		-ms-transform:translateX(-50%);
		transform:translateX(-50%);
	}
	
	header nav .sub ul {
		position:absolute;
		left:-2450%;
		overflow:hidden;
		width:5000%;
		height:0;
		text-align:center;
		font-size:0;
		transition:height .2s;
	}
	
	header nav .sub li {
		position:relative;
		display:inline-block;
	}
	
	/*header nav .sub li.current:before {
					position:absolute;
					bottom:0;
					left:50%;
					width:0;
					height:0;
					border-top:6px solid transparent;
					border-right:4px solid transparent;
					border-bottom:6px solid #FFA200;
					border-left:4px solid transparent;
					content:"";
					-webkit-transform:translateX(-50%);
					-ms-transform:translateX(-50%);
					transform:translateX(-50%);
					opacity:0;
					transition:opacity 1s;
				}*/
	header nav .sub li.current span:before {
		position:absolute;
		bottom:0;
		left:50%;
		display:block;
		width:80%;
		height:4px;
		background-color:#FFA200;
		content:"";
		-webkit-transform:translateX(-50%);
		-ms-transform:translateX(-50%);
		transform:translateX(-50%);
	}
	
	header nav .sub li a {
		display:block;
		padding:0 30px;
		transition:background .2s;
	}
	
	header nav .sub li a span {
		display:block;
		color:#FFF;
		font-size:13px;
		line-height:80px;
		opacity:0;
		transition:opacity .5s;
	}
	
	header nav .sub li a:hover {
		background-color:#FFA200;
	}
	
	.news-article header nav .sub li a:hover,.company.profile header nav .sub li a:hover {
		background-color:#002F77;
	}
	
	header .menu-bg {
		position:absolute;
		top:120px;
		width:100%;
		height:0;
		background-color:#345992;
		transition:height .1s;
	}
	
	header.anim .menu-bg {
		top:80px;
	}
	
	header nav li.contact a {
		background-color:#1D4786;
		color:#FFF!important;
		text-shadow:none!important;
	}
	
	header nav li.contact.current a {
		color:#FE9!important;
	}
	
	header nav li.contact a:hover {
		background-color:#002F77;
	}
	
	header nav li.employment a {
		background-color:#FFA200;
		color:#FFF!important;
		text-shadow:none!important;
	}
	
	header nav li.employment a:hover {
		background-color:#F70;
	}
	
	header nav li.menu-bt {
		display:none;
	}
	
	header nav li a.ex-link:after {
		display:inline-block;
		width:1.25em;
		height:1em;
		background:url(../img/icon-exlink.png) right center no-repeat;
		background-size:.9em;
		content:"";
	}
	
	/*top*/
	.top header {
		background-color:transparent;
		transition:background-color .2s;
	}
	
	.top header .logo img.blue {
		position:absolute;
		top:0;
		left:0;
	}
	
	.top header .logo img.blue {
		opacity:0;
	}
	
	.top header .logo img.white {
		opacity:1;
	}
	
	.top header nav .wrap .menu > ul > li > a,.top header nav .wrap .menu > ul > li > span {
		color:#FFF;
		text-shadow:0 .1em .5em rgba(60,90,100,.6);
	}
	
	header nav .sub.open .line {
		height:6px;
	}
	
	header nav .sub.open ul {
		height:auto;
	}
	
	header nav .sub.open li a span {
		opacity:1;
	}
	
	header nav .sub.open li.current:before {
		opacity:1;
	}
	
	header .menu-bg.open {
		height:80px;
	}
	
	/*anim*/
	header.anim nav .wrap > div > ul > li > a,header.anim nav .wrap > div > ul > li > span {
		line-height:80px;
	}
	
	/*anim-top*/
	.top header.anim-top {
		background-color:#FFF;
	}
	
	.top header.anim-top .logo img.blue {
		opacity:1;
	}
	
	.top header.anim-top .logo img.white {
		opacity:0;
	}
	
	.top header.anim-top nav .wrap > div > ul > li > a,.top header.anim-top nav .wrap > div > ul > li > span {
		color:#333;
		text-shadow:none!important;
	}
	
	.menu-fix > div {
		margin-top:0!important;
	}
}

@media screen and (min-width:769px) and (max-width:1240px) {
	header nav .wrap .menu > ul > li {
		width:100px!important;
	}
	
	header nav .button ul > li {
		width:125px!important;
	}
}

@media screen and (max-width:768px) {
	header {
		position:fixed;
		z-index:10000;
		width:100%;
		height:4em;
		background-color:#FFF;
	}
	
	header .logo {
		position:absolute;
		top:50%;
		left:0;
		display:block;
		padding:0 1em;
		width:55%;
		-webkit-transform:translateY(-50%);
		-ms-transform:translateY(-50%);
		transform:translateY(-50%);
	}
	
	header .logo a {
		display:block;
	}
	
	header nav {
		float:right;
		width:55%;
		font-size:0;
	}
	
	/*
				header nav .button {
					font-size:0;
				}
				
				header nav .button li {
					display:inline-block;
					width:40%;
					vertical-align:top;
				}
				
				header nav .button li a,header nav .button li.menu-bt span {
					display:block;
					height:4em;
					color:#FFF;
					text-align:center;
					font-weight:700;
					font-size:3.4vw;
					line-height:4em;
				}
				
				header nav .button li a span {
					font-size:80%;
				}
				*/
	header nav .wrap {
		position:absolute;
		top:0;
		bottom:0;
		overflow-y:scroll;
		width:200%;
		background-color:#F9F9F9;
		font-weight:700;
	}
	
	header nav .wrap ul > li {
		width:18em;
		border-top:1px solid #FDFDFD;
		background-color:#F9F9F9;
	}
	
	header nav .wrap ul > li:first-child {
		border-top:none;
	}
	
	header nav .wrap li > a {
		position:relative;
		display:block;
		padding:0 1.5em;
		color:#333;
		line-height:4em;
	}
	
	header nav .wrap li > span {
		display:block;
		padding:0 1.75em;
		background-color:#E9E9E9;
		font-weight:400;
		font-size:85%;
		line-height:2.5em;
	}
	
	header nav .wrap .sub li {
		border-top:1px solid #FDFDFD;
		border-left:1em solid #E9E9E9;
	}
	
	header nav .wrap .sub a {
		display:block;
		padding:0 1.5em;
	}
	
	header nav .news-current a:after,header nav .partners-current a:after,header nav .menu .current a:after,header nav .button .current a:after {
		position:absolute;
		top:50%;
		right:0;
		display:block;
		width:.25em;
		height:2.5em;
		background-color:#FFA200;
		content:"";
		line-height:1;
		-webkit-transform:translateY(-50%);
		-ms-transform:translateY(-50%);
		transform:translateY(-50%);
	}
	
	header nav .button ul li {
		border-top:none;
	}
	
	header nav .button li.contact a {
		background-color:#1D4786;
		color:#FFF;
	}
	
	header nav .button li.employment a {
		background-color:#FFA200;
		color:#FFF;
	}
	
	header nav .button a.ex-link:after {
		display:inline-block;
		width:1.25em;
		height:1em;
		background:url(../img/icon-exlink.png) right center no-repeat;
		background-size:.9em;
		content:"";
	}
	
	header .menu-bt {
		position:absolute;
		top:0;
		right:0;
		width:4.25em;
		height:4em;
		background-color:#1D4786;
	}
	
	header .menu-bt i {
		position:absolute;
		top:50%;
		left:50%;
		display:block;
		color:#FFF;
		font-size:1.5em;
		-webkit-transform:translate(-50%,-50%);
		-ms-transform:translate(-50%,-50%);
		transform:translate(-50%,-50%);
	}
	
	header .menu-bt i:before {
		content:"\f0c9";
	}
	
	header .menu-bt.spm-opened i:before {
		content:"\f00d";
	}
	
	header nav {
		position:fixed;
		top:4em;
		right:0;
		bottom:0;
		overflow:hidden;
		width:0;
		font-size:3.4vw;
		transition:width .2s;
	}
	
	header nav.spm-opened {
		width:18em;
	}
	
	header .menu-bg {
		position:fixed;
		top:4em;
		right:0;
		bottom:0;
		z-index:-1;
		width:0;
		background-color:rgba(0,0,0,.6);
		opacity:0;
		transition:opacity .2s;
	}
	
	header .menu-bg.spm-opened {
		width:100%;
		opacity:1;
	}
	
	.menu-fix.spm-opened {
		position:absolute;
		top:0;
		bottom:0;
		overflow:hidden;
		width:100%;
	}
	
	.menu-fix.spm-opened > div {
		position:fixed;
		top:0;
		bottom:0;
		width:100%;
	}
}

/*==========*/
/*!app*/
/*==========*/
.app {
	margin-bottom:100px;
	width:100%;
	background:url(../img/footer-app-bg.jpg) center center no-repeat;
	background-size:cover;
}

.partners .app {
	background:url(../img/footer-app-bg-contact.jpg) center center no-repeat #123788;
}

.app li {
	display:block;
	float:left;
	width:50%;
}

.partners .app li {
	width:100%;
}

.app .contact {
	border-right:2px solid #FFF;
}

.app .employment {
	border-left:2px solid #FFF;
}

.partners .app .contact {
	border:none;
}

.app li a {
	position:relative;
	display:block;
	width:100%;
	height:170px;
	color:#FFF;
	white-space:nowrap;
	font-size:150%;
}

@media screen and (min-width:769px) {
	.app li a > i {
		position:absolute;
		top:0;
		bottom:0;
		width:0;
		opacity:.6;
		transition:width .2s;
	}
	
	.app li a:hover > i {
		width:100%;
	}
	
	.app li.contact a > i {
		left:0;
		background-color:#1D4786;
	}
	
	.app li.employment a > i {
		right:0;
		background-color:#FFA200;
	}
}

.app li a span {
	position:absolute;
	top:50%;
	left:50%;
	display:block;
	padding-left:2em;
	background:left center no-repeat;
	letter-spacing:.1em;
	line-height:1.5em;
	-webkit-transform:translate(-50%,-50%);
	-ms-transform:translate(-50%,-50%);
	transform:translate(-50%,-50%);
}

.app li a.ex-link span:after {
	display:inline-block;
	width:1em;
	height:1.5em;
	background:url(../img/icon-exlink.png) right center no-repeat;
	background-size:.7em;
	content:"";
	vertical-align:top;
}

.app li.contact a span {
	background-image:url(../img/icon-contact.png);
	background-size:1.4em;
}

.app li.employment a span {
	background-image:url(../img/icon-employment.png);
	background-size:1.4em;
}

@media screen and (max-width:768px) {
	.app {
		margin-bottom:3em;
		background:url(../img/footer-app-bg-sp.jpg) center center no-repeat;
		background-size:cover;
	}
	
	.partners .app {
		background:url(../img/footer-app-bg-sp-contact.jpg) center center no-repeat;
	}
	
	.app li a {
		height:6em;
		font-size:120%;
	}
}

/*==========*/
/*!pagetop*/
/*==========*/
.pagetop {
	position:relative;
	width:100%;
	height:70px;
}

.pagetop i {
	position:absolute;
	right:0;
	display:block;
	overflow:hidden;
	padding-left:.05em;
	width:100%;
	background-color:#EAEAEA;
	text-align:center;
	letter-spacing:.05em;
	font-weight:700;
	font-family:'Roboto',YakuHanJP,sans-serif;
	line-height:70px;
	opacity:1;
	cursor:pointer;
}

@media screen and (min-width:769px) {
	.pagetop i:hover {
		background-color:#CCC;
	}
}

.pagetop i:before {
	content:"PAGE TOP";
}

.pagetop.fixed i {
	position:fixed;
	right:0;
	bottom:0;
	min-width:inherit;
	width:70px;
	font-size:110%;
	font-family:'FontAwesome';
}

.pagetop.fixed i:before {
	content:"\f077";
}

.pagetop.hide i {
	right:-70px;
	opacity:0;
}

@media screen and (max-width:768px) {
	.pagetop {
		height:4em;
	}
	
	.pagetop i {
		min-width:inherit;
		line-height:4em;
	}
	
	.pagetop.fixed i {
		width:4em;
		font-size:100%;
	}
	
	.pagetop.hide i {
		right:-4em;
	}
}

/*==========*/
/*!footer*/
/*==========*/
footer {
	padding:50px 0 30px;
	background-color:#1D4786;
}

footer .sitemap {
	position:relative;
	margin:0 auto;
	max-width:1300px;
	width:90%;
}

footer .sitemap .logo {
	position:absolute;
	top:0;
	bottom:0;
	float:left;
	max-width:360px;
	width:25%;
}

footer .sitemap .logo img {
	position:absolute;
	top:50%;
	display:block;
	-webkit-transform:translateY(-50%);
	-ms-transform:translateY(-50%);
	transform:translateY(-50%);
}

footer .sitemap ul {
	float:right;
	width:70%;
	text-align:center;
}

footer .sitemap li {
	display:inline-block;
	padding:0 10px;
	width:22%;
	vertical-align:top;
	text-align:left;
}

footer .sitemap a,footer .sitemap span {
	display:inline-block;
	margin-bottom:5px;
	padding:2px;
	border-bottom:1px solid transparent;
	color:#FFF;
	text-align:left;
	font-size:14px;
	transition:border-bottom-color .2s,font-size .2s;
}

footer .sitemap span {
	color:#92A4BC;
}

footer .sitemap a.ex-link:after {
	display:inline-block;
	width:1.25em;
	height:1em;
	background:url(../img/icon-exlink.png) right center no-repeat;
	background-size:.8em;
	content:"";
}

@media screen and (max-width:1200px) {
	footer .sitemap a,footer .sitemap span {
		font-size:13px;
	}
}

footer .sitemap a:hover {
	border-bottom-color:#FFF;
}

footer .sitemap a:hover {
	border-bottom-color:#B0BED2;
}

footer .sitemap .sub a {
/*color:#B0BED2;*/
}

footer .copyright small {
	display:block;
	padding:50px 0 30px;
	padding-left:.1em;
	width:100%;
	color:#FFF;
	text-align:center;
	text-align:center;
	letter-spacing:.1em;
	font-weight:300;
	font-size:70%;
	font-family:'Roboto',YakuHanJP,sans-serif;
}

@media screen and (max-width:768px) {
	footer {
		padding:0;
	}
	
	footer .copyright small {
		padding:3em 0;
	}
}

/*==========*/
/*!page*/
/*==========*/
body.page main {
	padding-top:120px;
}

@media screen and (max-width:768px) {
	body.page main {
		padding-top:4em;
	}
}

/*==========*/
/*!visual*/
/*==========*/
body.page .visual {
	position:relative;
	margin-bottom:50px;
	width:100%;
	height:420px;
	background:center center no-repeat;
	background-size:cover;
}

body.page .visual div {
	position:absolute;
	top:50%;
	left:50%;
	display:block;
	width:90%;
	text-align:center;
	-webkit-transform:translate(-50%,-50%);
	-ms-transform:translate(-50%,-50%);
	transform:translate(-50%,-50%);
}

body.page .visual div span {
	display:inline-block;
	padding:0 .1em .05em;
	color:#FFF;
	white-space:nowrap;
	letter-spacing:.05em;
	font-size:300%;
	font-family:'Sorts Mill Goudy';
	line-height:1.1;
}

body.page .visual div h1 {
	display:block;
	padding:.5em .1em .05em;
	color:#FFF;
	letter-spacing:.15em;
	font-size:140%;
}

@media screen and (max-width:768px) {
	body.page .visual {
		margin-bottom:2em;
		min-height:15em;
		height:25vh;
	}
	
	body.page .visual div span {
		font-size:200%;
	}
	
	body.page .visual div h1 {
		font-size:110%;
	}
}

/*==========*/
/*!page h2*/
/*==========*/
body.page h2 {
	margin-bottom:50px;
	text-align:center;
}

body.page h2 span {
	display:block;
	margin-bottom:20px;
	padding-left:.1em;
	color:#1D4786;
	letter-spacing:.1em;
	font-weight:400;
	font-size:200%;
	line-height:1.4;
}

body.page h2:after {
	display:block;
	margin:0 auto;
	width:60px;
	height:5px;
	background-color:#1D4786;
	content:"";
}

@media screen and (max-width:768px) {
	body.page h2 {
		margin-bottom:2em;
	}
	
	body.page h2 span {
		margin-bottom:1em;
		font-size:150%;
	}
	
	body.page h2:after {
		width:4em;
		height:3px;
	}
}
