@charset "UTF-8";
/*
 * top_layout.css
 *
 */

/* !Loading
---------------------------------------------------------- */
#loading {
  width: 100vw;
  height: 100vh;
  transition: all 1.8s;
  background-color: #FFF;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10000;
}

.loaded {
  opacity: 0;
  visibility: hidden;
}

/* !header
---------------------------------------------------------- */
#header #sidebar {
	width: 75%;
	height: 80px;
	background: rgba(255,255,255,0);
	text-align: center;
	z-index: 300;
	position:relative;
	float:right;
}

#header #global-nav ul {
	position:absolute;
	width:auto;
	height:80px;
	list-style: none;
	top:0;
	right:50px;
}
	#header #global-nav ul li {
		display:block;
		float:left;
	}
	#header #global-nav ul li:first-child {
		display:none;
	}
			#header #global-nav ul li.norm a {
				font-size:16px;
				font-weight:700;
				color:#FFF;
				letter-spacing:0.1em;
				height:80px;
				line-height:80px;
				position: relative;
				display: block;
				outline: none;
				text-decoration: none;
				text-transform: uppercase;
				margin-right:50px;
			}
				#header #global-nav ul li.norm a span {
					position:relative;
					z-index:2;
				}
				#header #global-nav ul li.norm:last-child a {
					margin-right:0;
				}
			#header #global-nav ul li.norm a:before {
				content: '';
				width: 0;
				height:5px;
				background:#4EB4C6;
				left: 0;
				top: 0;
				transition: all 0.45s ease;
				position: absolute;
				display: block;
				z-index:1;
			}
				#header #global-nav ul li.norm a:hover:before {
					width: 100%;
				}
				#header #global-nav ul li.norm a.current:before {
					width: 100%;
				}
			#header.transform #global-nav ul li.norm a {
				color:#FFF;
				transition:.6s;
			}

@media screen and (max-width:1039px){
#header #sidebar {
	padding-top: 60px;
	position: fixed;
	right: -50%;
	top: 0;
	height: 100%;
	width: 50%;
	background: #171926;
	-webkit-transition: .7s ease;
	transition: .7s ease;
}
	
#header #global-nav ul {
	position:inherit;
	width:60%;
	height:auto;
	margin:90px auto 0 auto;
}
	#header #global-nav ul li {
		display:block;
		float:none;
	}
	#header #global-nav ul li:first-child {
		display:block;
	}
			#header #global-nav ul li.norm a {
				font-size:18px;
				height:60px;
				color:#FFF;
				line-height:60px;
				display: block;
				margin-right:0;
			}
			#header #global-nav ul li.norm a.current {
				color:#BFE3F5;
			}
			#header #global-nav ul li.norm a:before {
				display:none;
			}
}

@media screen and (max-width:767px){
#header #sidebar {
	padding-top: 0;
	right: -100%;
	width: 100%;
}
	
#header #global-nav ul {
	width:60%;
	margin:90px auto 0 auto;
}
}

/* !mainvisual
---------------------------------------------------------- */
.main {
	width: 100%;
	height:100vh;
	background: url("../../img/main.jpg") 50% 50% no-repeat;
	background-size: cover;
	position: relative;
	z-index:-99;
	overflow: hidden;
}
	.main h2 {
		position: absolute;
		font-size:78px;
		font-weight:700;
		color:#FFF;
		line-height:1.4;
		letter-spacing:0.1em;
		top:38%;
		left:50px;
		z-index:2;
		-webkit-animation: copy 2.5s 1 ease;
		-moz-animation: copy 2.5s 1 ease;
		animation: copy 2.5s 1 ease ;
	}
		.main h2 span {
			display: block;
			font-size:22px;
			letter-spacing:0.1em;
			margin-top: 10px;
		}
	.main p.nameEn {
		position: absolute;
		font-size:18px;
		font-weight:700;
		color:#FFF;
		line-height:1;
		letter-spacing:0.3em;
		transform: rotate(90deg);
		bottom:190px;
		right:-100px;
		z-index:2;
		-webkit-animation: name 2.5s 1 ease;
		-moz-animation: name 2.5s 1 ease;
		animation: name 2.5s 1 ease ;
	}
		
@keyframes copy {
    0% {
        opacity: 0;
		top:42%;
    }
	55% {
        opacity: 0;
		top:42%;
    }
	100% {
        opacity: 1;
		top:38%;
    }
}
@keyframes name {
    0% {
        opacity: 0;
		right:-150px;
    }
	55% {
        opacity: 0;
		right:-150px;
    }
	100% {
        opacity: 1;
		right:-100px;
    }
}
		
	.main div.scroll {
		position:absolute;
		width:1px;
		height:100px;
		bottom:40px;
		left:50px;
		z-index:4;
		overflow:hidden;
	}

#mouse,
#mouse:before {
    position: absolute;
    left: 0;
}
#mouse {
    bottom: 0;
    width: 1px;
    height: 100px;
	background:#FFF;
	left:0;
}
#mouse:before {
    content: '';
    top: -40px;
    width: 1px;
    height: 40px;
    background: #4EB4C6;
    -webkit-animation: scroll 1.5s infinite;
    -moz-animation: scroll 1.5s infinite;
	animation: scroll 1.5s infinite;
}
@keyframes scroll {
    0% {
        opacity: 1
    }
    100% {
        opacity: 1;
        transform: translateY(140px);
    }
}
@-webkit-keyframes scroll {
    0% {
        opacity: 1
    }
    100% {
        opacity: 1;
        transform: translateY(140px);
    }
}
@-moz-keyframes scroll {
    0% {
        opacity: 1
    }
    100% {
        opacity: 1;
        transform: translateY(140px);
    }
}

@media screen and (max-width:1039px){
	.main h2 {
		font-size:64px;
		left:30px;
	}
		.main h2 span {
			font-size:20px;
		}
	.main p.nameEn {
		font-size:15px;
		bottom:150px;
		right:-90px;
	}
	.main div.scroll {
		bottom:30px;
		left:30px;
	}
	
@keyframes name {
    0% {
        opacity: 0;
		right:-140px;
    }
	55% {
        opacity: 0;
		right:-140px;
    }
	100% {
        opacity: 1;
		right:-90px;
    }
}
}

@media screen and (max-width:767px){
.main {
	background: url("../../img/main.jpg") 70% 50% no-repeat;
	background-size: cover;
}
	.main h2 {
		font-size:30px;
		top:40%;
		left:20px;
	}
		.main h2 span {
			font-size:14px;
			margin-top: 15px;
		}
	.main p.nameEn {
		font-size:12px;
		bottom:120px;
		right:-80px;
	}
		
	.main div.scroll {
		bottom:20px;
		left:20px;
	}
	
@keyframes copy {
    0% {
        opacity: 0;
		top:45%;
    }
	55% {
        opacity: 0;
		top:45%;
    }
	100% {
        opacity: 1;
		top:40%;
    }
}
	
@keyframes name {
    0% {
        opacity: 0;
		right:-120px;
    }
	55% {
        opacity: 0;
		right:-120px;
    }
	100% {
        opacity: 1;
		right:-80px;
    }
}

}

@media screen and (max-width:360px){
	.main h2 {
		font-size:28px;
		top:35%;
	}
	.main p.nameEn {
		font-size:11px;
		bottom:110px;
		right:-75px;
	}
	
@keyframes copy {
    0% {
        opacity: 0;
		top:40%;
    }
	55% {
        opacity: 0;
		top:40%;
    }
	100% {
        opacity: 1;
		top:35%;
    }
}
	
@keyframes name {
    0% {
        opacity: 0;
		right:-100px;
    }
	55% {
        opacity: 0;
		right:-100px;
    }
	100% {
        opacity: 1;
		right:-75px;
    }
}
}

/* !contents
---------------------------------------------------------- */
#contents {
	width:100%;
}

@media screen and (max-width:1039px){
#contents {
}
}

@media screen and (max-width:767px){
#contents {
}
}

/* !アニメーション
---------------------------------------------------------- */
.fadeIn_up {
  opacity: 0;
  transform: translate(0, 100px);
  transition: 1.6s .4s;
}
.fadeIn_up.is-show {
  transform: translate(0, 0);
  opacity: 1;
}

.fadeIn_right {
  opacity: 0;
  transform: translate(100px, 0);
  transition: 1.6s .4s;
}
.fadeIn_right.is-show {
  transform: translate(0, 0);
  opacity: 1;
}

.fadeIn_left {
  opacity: 0;
  transform: translate(-100px, 0);
  transition: 1.6s .4s;
}
.fadeIn_left.is-show {
  transform: translate(0, 0);
  opacity: 1;
}

/* !About us
---------------------------------------------------------- */
.topAbout {
	width:100%;
	padding:100px 50px 100px 50px;
	position: relative;
	overflow: hidden;
}
	.topAbout div.inner {
		width:100%;
		max-width:1100px;
		margin:0 auto 130px auto;
	}
		.topAbout div.inner div.about {
			width:100%;
			display: flex;
			justify-content: space-between;
			align-items: center;
		}
			.topAbout div.inner div.about div.left {
				width:52%;
			}
				.topAbout div.inner div.about div.left p.tit {
					font-size:80px;
					font-weight: 800;
					color: #283891;
					line-height: 1.2;
					margin-bottom: 10px;
				}
					.topAbout div.inner div.about div.left p.tit span {
						color:#4EB4C6;
					}
				.topAbout div.inner div.about div.left h2 {
					font-size:35px;
					font-weight: 700;
					line-height: 1.4;
					margin-bottom: 50px;
				}
					.topAbout div.inner div.about div.left h2 br {
						display: none;
					}
				.topAbout div.inner div.about div.left p.read {
					margin-bottom: 80px;
				}
				.topAbout div.inner div.about div.left p.linkBtn {
					text-align:right;
				}
					.topAbout div.inner div.about div.left p.linkBtn a {
						display: inline-block;
						font-size:20px;
						font-weight: 700;
						color: #222;
						line-height: 1.5;
						padding:0 3em 0.6em 0;
						border-bottom: 1px solid #222;
						position: relative;
						transition: .6s;
					}
						.topAbout div.inner div.about div.left p.linkBtn a::after {
							position: absolute;
							content:"";
							display: inline-block;
							width: 8px;
							height: 8px;
							border-top: 2px solid #283891;
							border-right: 2px solid #283891;
							transform: rotate(45deg);
							top:11px;
							right:2px;
							transition: .2s;
						}
						.topAbout div.inner div.about div.left p.linkBtn a:hover {
							color: #298CBA;
						}
							.topAbout div.inner div.about div.left p.linkBtn a:hover:after {
								border-top: 2px solid #298CBA;
								border-right: 2px solid #298CBA;
								right:7px;
							}
			.topAbout div.inner div.about div.right {
				width:45%;
			}
				.topAbout div.inner div.about div.right img {
					display: block;
					width:100%;
				}
	.topAbout img.square1 {
		position: absolute;
		width:256px;
		top:550px;
		left:1%;
		z-index: -1;
	}
	.topAbout img.square2 {
		position: absolute;
		width:62px;
		top:20px;
		left:44%;
		z-index: -1;
	}
	.topAbout img.square3 {
		position: absolute;
		width:120px;
		top:350px;
		right:3%;
		z-index: -1;
	}

	.topAbout ul.businessMenu {
		width:100%;
		max-width:1000px;
		margin:0 auto;
		display: flex;
		justify-content: space-between;
	}
		.topAbout ul.businessMenu li {
			width:47%;
		}
			.topAbout ul.businessMenu li a {
				display: block;
				width:100%;
				height: 100%;
				padding:40px 40px 60px 40px;
				background-color: #EEF1F2;
				border-radius: 20px;
				transition:.6s;
				position: relative;
			}
				.topAbout ul.businessMenu li a img {
					display: block;
					width:190px;
					margin: 0 auto 15px auto;
					border: 10px solid #E0E8EB;
					border-radius: 50%;
					transition:.6s;
				}
					.topAbout ul.businessMenu li a:hover img {
						border: 10px solid #37A8C9;
					}
				.topAbout ul.businessMenu li a h3 {
					font-size:24px;
					font-weight: 700;
					line-height: 1.5;
					text-align: center;
					color: #283891;
					margin-bottom: 20px;
					transition:.6s;
				}
					.topAbout ul.businessMenu li a:hover h3 {
						color: #37A8C9;
					}
				.topAbout ul.businessMenu li a p.read {
					color: #222;
				}
				.topAbout ul.businessMenu li a::after {
					position: absolute;
					content:"";
					display: inline-block;
					width: 16px;
					height: 16px;
					border-top: 2px solid #283891;
					border-right: 2px solid #283891;
					transform: rotate(135deg);
					bottom:30px;
					left:50%;
					margin-left:-8px;
					transition:.3s;
				}
					.topAbout ul.businessMenu li a:hover:after {
						border-top: 2px solid #37A8C9;
						border-right: 2px solid #37A8C9;
						bottom:25px;
					}

@media screen and (max-width:1039px){
.topAbout {
	padding:80px 30px 80px 30px;
}
	.topAbout div.inner {
		margin:0 auto 120px auto;
	}
				.topAbout div.inner div.about div.left p.tit {
					font-size:66px;
				}
				.topAbout div.inner div.about div.left h2 {
					font-size:30px;
					margin-bottom: 40px;
				}
					.topAbout div.inner div.about div.left h2 br {
						display: inherit;
					}
				.topAbout div.inner div.about div.left p.read {
					margin-bottom: 50px;
				}
					.topAbout div.inner div.about div.left p.linkBtn a {
						font-size:16px;
					}
						.topAbout div.inner div.about div.left p.linkBtn a::after {
							top:8px;
						}
						.topAbout div.inner div.about div.left p.linkBtn a:hover {
							color: #222;
						}
							.topAbout div.inner div.about div.left p.linkBtn a:hover:after {
								border-top: 2px solid #283891;
								border-right: 2px solid #283891;
								right:2px;
							}
	.topAbout img.square1 {
		width:230px;
		top:550px;
		left:1%;
	}
	.topAbout img.square2 {
		width:54px;
		top:20px;
		left:50%;
	}
	.topAbout img.square3 {
		width:100px;
		top:300px;
		right:1%;
	}
	
			.topAbout ul.businessMenu li a {
				border-radius: 16px;
			}
				.topAbout ul.businessMenu li a img {
					width:170px;
					border: 8px solid #E0E8EB;
				}
					.topAbout ul.businessMenu li a:hover img {
						border: 8px solid #E0E8EB;
					}
				.topAbout ul.businessMenu li a h3 {
					font-size:22px;
					margin-bottom: 15px;
				}
					.topAbout ul.businessMenu li a:hover h3 {
						color: #283891;
					}
					.topAbout ul.businessMenu li a:hover:after {
						border-top: 2px solid #283891;
						border-right: 2px solid #283891;
						bottom:30px;
					}
}
	
@media screen and (max-width:767px){
.topAbout {
	padding:70px 25px 70px 20px;
}
	.topAbout div.inner {
		margin:0 auto 70px auto;
	}
		.topAbout div.inner div.about {
			flex-wrap: wrap;
		}
			.topAbout div.inner div.about div.left {
				width:100%;
				margin-bottom: 40px;
			}
				.topAbout div.inner div.about div.left p.tit {
					font-size:40px;
					margin-bottom: 15px;
				}
				.topAbout div.inner div.about div.left h2 {
					font-size:20px;
					margin-bottom: 40px;
				}
				.topAbout div.inner div.about div.left p.read {
					margin-bottom: 50px;
				}
			.topAbout div.inner div.about div.right {
				width:100%;
			}
				.topAbout div.inner div.about div.right img {
					max-width:320px;
					margin: 0 auto;
				}
	.topAbout img.square1 {
		width:160px;
		top:450px;
		left:1%;
	}
	.topAbout img.square2 {
		width:40px;
		top:20px;
		left:56%;
	}
	.topAbout img.square3 {
		width:80px;
		top:300px;
		right:1%;
	}
	
	.topAbout ul.businessMenu {
		flex-wrap: wrap;
		max-width:320px;
		margin:0 auto;
	}
		.topAbout ul.businessMenu li {
			width:100%;
			margin-bottom: 30px;
		}
		.topAbout ul.businessMenu li:last-child {
			margin-bottom: 0;
		}
			.topAbout ul.businessMenu li a {
				display: block;
				padding:30px 20px 55px 20px;
				border-radius: 12px;
			}
				.topAbout ul.businessMenu li a img {
					width:160px;
					margin: 0 auto 15px auto;
				}
				.topAbout ul.businessMenu li a h3 {
					font-size:18px;
					margin-bottom: 15px;
				}
				.topAbout ul.businessMenu li a::after {
					bottom:25px;
				}
					.topAbout ul.businessMenu li a:hover:after {
						bottom:25px;
					}
}

@media screen and (max-width:360px){
}

/* !お知らせ
---------------------------------------------------------- */
.topNews {
	width:100%;
	padding:70px 50px 80px 50px;
	background:#EEF1F2;
}
	.topNews div.inner {
		width:100%;
		max-width:1100px;
		margin:0 auto;
		display:flex;
		flex-wrap:wrap;
		justify-content: space-between;
	}
		.topNews div.inner div.left {
			width:30%;
		}
			.topNews div.inner div.left h2 {
				font-size:24px;
				font-weight:700;
				line-height:1.4;
				letter-spacing:0.1em;
				margin-bottom:60px;
			}
				.topNews div.inner div.left h2 span {
					display:block;
					font-size:50px;
					font-weight:800;
					color: #283891;
				}
					.topNews div.inner div.left h2 span i {
						color: #4EB4C6;
						font-style: normal;
					}
			.topNews div.inner div.left a.moreBtn {
				display: inline-block;
				font-size:16px;
				font-weight: 700;
				color: #222;
				line-height: 1.5;
				letter-spacing:0.06em;
				padding:0 2em 0 0;
				position: relative;
				transition: .6s;
			}
				.topNews div.inner div.left a.moreBtn::after {
					position: absolute;
					content:"";
					display: inline-block;
					width: 8px;
					height: 8px;
					border-top: 2px solid #283891;
					border-right: 2px solid #283891;
					transform: rotate(45deg);
					top:8px;
					right:2px;
					transition: .2s;
				}
				.topNews div.inner div.left a.moreBtn:hover {
					color: #298CBA;
				}
					.topNews div.inner div.left a.moreBtn:hover:after {
						border-top: 2px solid #298CBA;
						border-right: 2px solid #298CBA;
						right:7px;
					}
				
		.topNews div.inner div.right {
			width:70%;
		}
			.topNews div.inner div.right div.newsList {
				display:block;
				width:100%;
			}
					.topNews div.inner div.right div.newsList dl {
						width:100%;
						line-height:1.8;
						display:flex;
						flex-wrap:wrap;
						border-bottom:1px solid #DDE3E5;
					}
						.topNews div.inner div.right div.newsList dl dt {
							width:22%;
							padding:1.2em 0;
						}
							.topNews div.inner div.right div.newsList dl dt span {
								display: inline-block;
								padding:0.2em 1em;
								background-color: #DDE3E5;
							}
						.topNews div.inner div.right div.newsList dl dd {
							width:78%;
							padding:1.2em 0;
						}
					.topNews div.inner div.right div.newsList a dl {
						color:#222;
					}
						.topNews div.inner div.right div.newsList a dl dd {
							transition:.6s;
						}
							.topNews div.inner div.right div.newsList a:hover dl dd {
								color:#37A8C9;
							}

@media screen and (max-width:1039px){
.topNews {
	padding:60px 30px 70px 30px;
}
		.topNews div.inner div.left {
			width:30%;
		}
			.topNews div.inner div.left h2 {
				font-size:20px;
			}
				.topNews div.inner div.left h2 span {
					font-size:40px;
				}
			.topNews div.inner div.left a.moreBtn {
				font-size:15px;
			}
				.topNews div.inner div.left a.moreBtn::after {
					top:7px;
				}
				.topNews div.inner div.left a.moreBtn:hover {
					color: #222;
				}
					.topNews div.inner div.left a.moreBtn:hover:after {
						border-top: 2px solid #283891;
						border-right: 2px solid #283891;
						right:2px;
					}
				
		.topNews div.inner div.right {
			width:70%;
		}
						.topNews div.inner div.right div.newsList dl dt {
							width:25%;
						}
						.topNews div.inner div.right div.newsList dl dd {
							width:75%;
						}
							.topNews div.inner div.right div.newsList a:hover dl dd {
								color:#222;
							}
}
	
@media screen and (max-width:767px){
.topNews {
	padding:50px 25px 60px 25px;
}
	.topNews div.inner {
		flex-wrap: wrap;
	}
		.topNews div.inner div.left {
			width:100%;
			margin-bottom: 30px;
			position: relative;
		}
			.topNews div.inner div.left h2 {
				font-size:18px;
				margin-bottom:0;
			}
				.topNews div.inner div.left h2 span {
					font-size:30px;
				}
			.topNews div.inner div.left a.moreBtn {
				font-size:14px;
				position: absolute;
				top:25px;
				right:0;
			}
				.topNews div.inner div.left a.moreBtn::after {
					top:6px;
				}
				
		.topNews div.inner div.right {
			width:100%;
		}
			.topNews div.inner div.right div.newsList {
				width:100%;
			}
					.topNews div.inner div.right div.newsList dl {
						width:100%;
						flex-wrap: wrap;
					}
						.topNews div.inner div.right div.newsList dl dt {
							width:100%;
							padding:1.2em 0 0 0;
						}
						.topNews div.inner div.right div.newsList dl dd {
							width:100%;
							padding:0.8em 0 1.2em 0;
						}
}
