@charset "UTF-8";

html{
	font-size: 62.5%;
	width: 100%;
}
body{
	font-family: "ヒラギノ角ゴ Pro W3" ,"Noto Sans JP", "メイリオ", sans-serif;
	font-weight: 500;
	color: #333;
	font-size: 1.6rem;
	line-height: 1.5;
	text-align: center;
}
*, *:before, *:after{
	box-sizing: border-box;
}
ul, ol{
	list-style-type: none;
}
a{
	text-decoration: none;
}
section h2 .title{
	font-size: 2.2rem;
}
section h2 .caption{
	font-size: 1.6rem;
	color: #0088cc;
	font-weight: 400;
}
section h3{
	font-size: 1.8rem;
	display: inline-block;
	border-bottom: 1px solid #0088cc;
	padding: 0 4px 4px;
}
@media(min-width: 960px){
	section h2 .title{
		font-size: 3.0rem;
	}
	section h2 .caption{
		font-size: 2.4rem;
	}
	section h3{
		font-size: 2.4rem;
		border-bottom: 2px solid #0088cc;
		padding: 0 6px 6px;
	}
	.br-sp{
		display: none;
	}
}
.none{
	display: none;
}
.en{
	font-family: 'Josefin Sans', futura, sans-serif;
	letter-spacing: .03em;
}
.btn{
    position: relative;
	overflow: hidden;
	text-decoration: none;
	display: inline-block;
   	height: 60px;
   	min-width: 200px;
   	max-width: 260px;
   	margin: 0 auto;
   	background: transparent;
   	display: flex;
   	align-items: center;
   	justify-content: center;
    text-align: center;
    outline: none; 
    transition: ease .2s;
    border-radius: 100px;
}
.btn span {
	position: relative;
	z-index: 3;
}
@media(min-width: 960px){
	.btn::before {
		content: '';
		position: absolute;
		top: 0;
		left: -130%;
		width:120%;
		height: 100%;
		transform: skewX(-25deg);
	}
	.btn:hover::before {
		animation: skewanime .5s forwards;
	}
	@keyframes skewanime {
		100% {
			left:-10%;
		}
	}
}
.trans-btn{
   	border: 1px solid #0088cc;
}
.trans-btn span {
	color:#0088cc;
}
@media(min-width: 960px){
	.trans-btn:hover span{
		color:#fff;
	}
	.trans-btn::before {
		background:#0088cc;
	}
}
.blue-btn{
	background: #0088cc;
   	border: none;
}
.blue-btn span {
	color:#fff;
}
@media(min-width: 960px){
	.blue-btn:hover span{
		color:#0088cc;
	}
	.blue-btn::before {
		background:#fff;
	}
}
.white-btn{
	background: #fff;
   	border: none;
}
.white-btn span {
	color:#0088cc;
}
@media(min-width: 960px){
	.white-btn:hover{
		border: 1px solid #fff;
	}
	.white-btn:hover span{
		color:#fff;
	}
	.white-btn::before {
		background:#0088cc;
	}
}
.header{
	position: fixed;
	top: 0;
	left: 0;
	height: 60px;
	width: 100%;
	z-index: 5000;
}
.header-content-wrapper{
	height: 100%;
}
.header h1{
	height: 100%;
	text-align: left;
	padding-left: 5px;
}
.header h1 img{
	height: 100%;
}
.header-btn{
	max-width: initial;
}
.header nav > ul > li .header-btn{
	display: flex;
	align-items: center;
	justify-content: center;
}
.fa-envelope{
	font-size: 2.2rem;
	color: #fff;
	padding-right: 10px;
}
.open-button, .close-button, .sp-only{
	display: none;
}
@media(max-width: 319px){
	.header-content-wrapper{
		display: flex;
		align-items: center;
	}
	.header h1{
		height: 23.529412vw;
	}
}
@media(max-width: 959px){
	.header.change-color{
		transition: all .5s;
		background: #fff;
		border-bottom: 1px solid #ddd;
	}
	.header h1{
		position: fixed;
		height: 60px;
		z-index: 9;
	}
	.header nav{
		position: fixed;
		top: 0;
		left: -120%;
		z-index: 10;
		height: 100%;
		padding: 120px 21.176%;
		background: #212b37;
		transition: all .6s;
	}
	@media(max-width: 600px){
		.header nav{
			width: 100%;
		}
	}
	@media(min-width: 601px){
		.header nav{
			width: 80%;
		}
	}
	.header nav.active{
		left: 0;
	}
	.header nav ul li a,
	.header nav ul li > span{
		color: #fff;
		display: block;
	}
	.header nav > ul > li{
		margin-bottom: 30px;		
	}
	.header nav > ul > li:first-child,
	.header nav > ul > .has-child > span,
	.header nav > ul > li:nth-child(3),
	.header nav > ul > li:nth-child(4){
		border-bottom: 1px solid #fff;
		padding-bottom: 10px;
		text-align: left;
	}
	.has-child > span{
		margin-bottom: 20px;
	}
	.has-child ul li{
		text-align: left;
		padding-left: 20px;
	}
	.has-child ul li:not(:last-child){
		margin-bottom: 20px;
	}
	.sp-only{
		display: block;
	}
}
@media(min-width: 960px){
	.header{
		height: 100px;
	}
	.header.change-color{
		height: 76px;
	}
	.header-sub{
		background-color: transparent;
		position: fixed;
	}
	.header nav{
		display: flex;
		align-items: center;
		text-align: left;
	}
	.header-content-wrapper{
		display: flex;
		justify-content: space-between;
		padding-right: 24px; 
	}
	.header nav > ul{
		display: flex;
		justify-content: flex-end;
		align-items: center;
		height: 100%;
	}
	.header nav > ul > li:not(:last-child){
		height: 100%;
		display: flex;
		align-items: center;
		margin: 0 26px;
		height: 100%;
	}
	.header.change-color nav > ul > li a,
	.header.change-color nav > ul > li span{
		font-size: 1.5rem;
	}
	.header nav > ul > li:not(:last-child) > a,
	.header nav > ul > li:not(:last-child) > span{
		text-shadow: 0 0 10px #888;
		height: 44px;
		background: 
		  linear-gradient(#fff, #fff) 
		  var(--p, 0) 100% /var(--d, 0) 2px 
		  no-repeat;
		transition: 0.3s, background-position 0s 0.3s;
	}
	.header.change-color nav > ul > li:not(:last-child) > a,
	.header.change-color nav > ul > li:not(:last-child) > span{
		background: 
		  linear-gradient(#0088cc, #0088cc) 
		  var(--p, 0) 100% /var(--d, 0) 2px 
		  no-repeat;
		transition: 0.3s, background-position 0s 0.3s;	
	}

	.header nav > ul > li.has-child{
		margin-right: 26px;
		padding-right: 20px;
	}
	.header nav > ul > li:not(:last-child) > a:hover,
	.header nav > ul > li:not(:last-child) > span:hover{
		--d: 100%;
		--p: 100%;
	}
	.header nav > ul > li > a,
	.header nav > ul > li > span{
		color: #fff;
		display: block;
		font-size: 1.7rem;
		height: 100%;
		 display: -webkit-flex;
		 display: flex;
		 -webkit-align-items: center;
		 align-items: center;
	}
	.header nav > ul > li:first-child,
	.header nav > ul > li:nth-child(5){
		display: none;
	}
	.header nav > ul > li:last-child{
		background-color: #0088cc;
		margin-left: 20px;
		height: 60px;
		display: flex;
		align-items: center;
		justify-content: center;
		border-radius: 60px;
		text-align: center;
		box-shadow: 0 0 50px rgba(255, 255, 255, .4);
	}
	.header.change-color nav > ul > li:last-child{
		height: 50px;	
	}
	.header.change-color nav > ul > li:last-child > a{
		font-size: 1.5rem;
	}
	.header nav > ul > li:last-child:hover{
		box-shadow: none;
	}
	.header nav > ul > li:last-child{
		border: 1px solid #0088cc;
	}
	.header nav > ul > li:last-child a{
		border-radius: 60px;
	}
	.header nav > ul > li:last-child .header-btn:hover .fa-envelope{
		position: relative;
		z-index: 3;
		color: #0088cc;
	}
}
.header nav > ul > li{
	position: relative;
}
nav ul li.has-child::before{
	content:'';
	position: absolute;
	width:6px;
	height:6px;
	border-top: 2px solid #fff;
    border-right:2px solid #fff;
    transform: rotate(135deg);
}
@media(min-width: 960px){
	nav ul li.has-child::before{
		right: 2px;
		top: 46px;
	    text-shadow: 0 0 14px #888;
	}
	.header.change-color .has-child::before{
		top:35px;
		border-top: 2px solid #0088cc;
	    border-right:2px solid #0088cc;
	}
	.has-child{
		margin-right: 14px;
		cursor: pointer;
		height: 60px;
	}
	.has-child > span{
		line-height: 60px;
	}
	.has-child ul{
		visibility: hidden;
		position: absolute;
		left:0;
		top:100px;
		z-index: 4;
		background:#fff;
		width:200px;
	    /*はじめは非表示*/
		visibility: hidden;
		opacity: 0;
		transition: all .3s;
	}
	.header.change-color .has-child ul{
		top: 76px;
	}
	.has-child ul li{
		display: flex;
		align-items: center;
		/*height: 56px;*/
		height: 60px;
		transition: all .3s;
	}
	.header.change-color .has-child ul li{
		height: 54px;
	}
	.has-child ul li:not(:last-child){
		border-bottom: 1px solid #0088cc;
	}
	.has-child ul li a{
		text-shadow: none;
		color: #0088cc;
		font-size: 1.6rem;
		display: block;
		padding: 0 24px;
		height: 100%;
		width: 100%;
		line-height: 60px;
	}
	.change-color.header .has-child ul li a {
		line-height: 54px;
	}
	.header nav > ul > li > a,
	.header nav > ul > li > span{
		transition: all .3s;
	}
	.has-child:hover > ul,
	.has-child:active > ul{
	  visibility: visible;
	  opacity: 1;
	}
}
@media(min-width: 960px){
	.header.change-color .has-child ul{
		box-shadow: 0 0 10px #ddd;
	}
	.has-child ul li{
	    position: relative;
		overflow: hidden;
		text-decoration: none;
	   	background: #fff;
	    outline: none;
	    transition: ease .2s;
	}
	.has-child ul li a {
		position: relative;
		z-index: 3;
	}
	.has-child ul li a:hover {
		color: #fff;
	}
	.has-child ul li::before {
		content: '';
		position: absolute;
		top: 0;
		left: -130%;
		width:120%;
		height: 100%;
		transform: skewX(-25deg);
		background: #0088cc;
	}
	.has-child ul li:hover::before {
		animation: skewanime .5s forwards;
	}
	@keyframes skewanime {
		100% {
			left:-10%;
		}
	}
}

@media screen and (max-width:959px){
	nav li.has-child ul{
	  	position: relative;
		visibility:visible;
		opacity:1;
		display: none;
		transition:none;
	}
	.header nav ul li.has-child::before{
		right:7px;
		top:10px;
		width:9px;
		height:9px;
	}    
	nav ul li.has-child.active::before{
	    transform: rotate(-45deg);
	}
}


/*フッター=======================================*/
.footer{
	background:#fafafa;
}
.footer-container{
	background-color: #212b37;
	padding: 80px 6.58823529411765% 0;
}
@media(min-width: 960px){
	.footer{
		background:#fff;
	}
	.footer-container{
		padding: 100px 6.9444% 0;
	}
	.footer-main-wrapper{
		display: flex;
		justify-content: space-between;
		margin-bottom: 100px;
	}
}
.logo_footer{
	width: 65.04%;
	max-width: 240px;
	margin: 0 auto 80px;
}
.logo_footer a{
	display: inline-block;
	width: 100%;
}
.logo_footer img{
	width: 100%;
}
@media(min-width: 960px){
	.logo_footer{
		width: 340px;
		margin: 0;
		display: flex;
		align-items: center;
		transition: all .2s;
	}
	.logo_footer a{
		transition: all .2s;
	}
	.logo_footer a:hover{
		opacity: .7;
	}
}
.footer-menu{
	margin-bottom: 60px;
}
.footer-menu a{
	color: #fff;
	overflow:hidden;
}
.footer-menu > ul{
	margin-bottom: 40px;
	text-align: left;
}
.footer-menu > ul > li{
	margin-bottom: 20px;
}
@media(min-width: 600px){
	.footer-menu{
		display: flex;
		justify-content: space-between;
	}
	.footer-menu > ul{
		margin-bottom: 0;
		width: 45%;
		min-width: 200px;
	}
	.footer-menu > ul > li:last-child{
		margin-bottom: 0;
	}
}
@media(min-width: 960px){
	.footer-menu{
		margin-bottom: 0;
		display: flex;
		width: 38.70%;
		min-width: 400px;
	}
	.footer-menu > ul{
		margin-bottom: 0;
		width: 50%;
		min-width: 200px;
	}
	.footer-menu > ul > li:last-child{
		margin-bottom: 0;
	}
	.footer-menu li a{
		transition: all .2s;
		font-size: 1.6rem;
	}
	.footer-menu li a:hover{
		opacity: .7;
	}
}
.footer-menu > ul > li:not(:nth-child(2)) a{
	border-bottom: solid 1px #ddd;
	padding: 0 0 6px;
	display: block;
}
.footer_menu__parent span{
	color: #fff;
	display: inline-block;
	margin-bottom: 10px;
	border-bottom: solid 1px #ddd;
	padding: 0 0 6px;
	width:100%;
	font-size: 1.6rem;
}
.footer_menu__child li:not(:last-child){
	margin-bottom: 10px;
}
.footer_menu__child li a{
	color: #ddd;
	padding-left: 14px;
}
@media(min-width: 960px){
	.footer-menu > ul > li:not(:nth-child(2)) a{
		border-bottom: none;
	}
	.footer_menu__parent span{
		border-bottom: none;
	}
	.footer_menu__child li a{
		padding-left: 20px;
	}
}
.footer-btn{
	background-color: #0088cc;
	height: 60px;
	color: #fff;
	max-width: initial;
	width:100%;
	overflow: hidden;
	position: relative;
	z-index: 0;
}
.footer-btn span{
	line-height: 3.75;
}
.footer-btns .footer-btn:first-child{
	margin-bottom: 26px;
}
.copyright{
	font-size: 1.0rem;
	color: #fff;
	border-top: solid 1px #fff;
	padding: 10px 0;
}
@media(min-width: 600px){
	.footer-btns{
		display: block;
		width: 45%;
	}
}
@media(min-width: 960px){
	.footer-btns{
		width: 50%;
		min-width: 200px;
	}
	.footer-btns .footer-btn:last-child{
		display: flex;
		align-items: center;
		justify-content: center;
	}
	.footer-btn{
		padding: 0;
		width: 100%;
	}
	.footer-btn:hover .fa-envelope{
		position: relative;
		z-index: 3;		
		color: #0088cc;
	}
}
#page-top{
	cursor: pointer;
}
#page-top a {
  position: relative;
  display: inline-block;
  padding-left: 3.05%;
  margin: 20px auto;
}
#page-top a:before {
  content: '';
  width: 3.00vw;
  height: 3.00vw;
  max-width: 20px;
  max-height: 20px;
  border: 0;
  border-top: solid 2px #212b37;
  border-right: solid 2px #212b37;
  border-radius: 1px;
  position: absolute;
  top: 50%;
  left: 0;
  transform: rotate(-45deg);
}
@media(min-width: 960px){
	#page-top a {
		margin: 30px auto;
 		padding-left: 20px;
	}
}



/*ファーストビュー======================================*/
.sec-top__lead-wrapper{
	height: 100%;
	width: 100%;
    display: flex;
    align-items: center;
}
.sec-top-sub{
	height: 70vh;
	background-repeat: no-repeat;
	background-size: cover;
	/* IE, Edge 対応 */
	-ms-overflow-style: none;
	/* Firefox 対応 */
	scrollbar-width: none;
}
.sec-top-sub::-webkit-scrollbar {
	display:none;
}
.sec-top-sub .sec-top__lead-wrapper{
    justify-content: center;
}
.sec-top-sub h2 span{
	color: #fff;
	text-shadow: 0 0 8px #555;
}
.sec-top-sub-filter{
	height: 100%;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}
.sec-top-sub .lead-title{
	font-size: 2.6rem;
}
.sec-top-sub .lead-caption{
	font-size: 2.0rem;
}
@media(max-width: 959px){
	.sec-top-sub{
		padding-top: 30px;
	}
}
@media(min-width: 960px){
	.sec-top-sub .lead-title{
		font-size: 4.2rem;
	}
	.sec-top-sub .lead-caption{
		font-size: 3.0rem;
	}
	.sec-top-sub .sec-top__lead-wrapper{
		margin-top: 50px;
	}
}


/*NEXTリンク====================================*/
/*共通*/
.sec-next-link{
	height: 300px;
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center center;
}
.sec-next-link > a{
	display: block;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}
.sec-next-link > a .next-link_mask{
	width: 100%;
	height: 100%;
	position: relative;	
	display: block;
	overflow: hidden;
}
.sec-next-link > a img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1);
	transition: .4s ease-in-out;	
}
.sec-next-link > a:hover img{
	transform: scale(1.2);
}
.sec-next-link__contents-wrapper{
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%); /* Safari用 */
	transform: translate(-50%, -50%);
}
.sec-next-link__contents-wrapper p,
.sec-next-link__contents-wrapper h2{
	color: #444;
}
.sec-next-link__contents-wrapper h2{
	margin: 20px auto 40px;
	font-size: 2.2rem;
}
@media(min-width: 960px){
	.sec-next-link{
		width: 86.111111111111111%;
		max-width: 1240px;
		margin: 0 auto;
		height: 34.722vw;
		max-height: 500px;
	}
	.sec-next-link__contents-wrapper{
		padding-top: 0;
	}
	.sec-next-link__contents-wrapper p{
		font-size: 3.0rem;
	}
	.sec-next-link__contents-wrapper h2{
		margin: 20px auto 0;
		font-size: 3.6rem;
	}
	.sec-next-link__contents-wrapper .btn{
		display: none;
	}
}


/*ハンバーガーのアニメーション*/
@media(max-width: 959px){
	.openbtn{
		position: relative;
		cursor: pointer;
	    width: 60px;
	    height:60px;
		/*border-radius: 5px;*/
		position: fixed;
		top: 0;
		right: 0;
		z-index: 11;
		overflow: auto;
	}
	.header.change-color .openbtn{
		transition: all .5s;
		background: #0088cc;
	}

	/*ボタン内側*/
	.openbtn .openbtn-area{
	    transition: all .4s;
		display: flex;
		justify-content: center;
		align-items: center;
		height: 100%;
	}

	.openbtn span{
	    display: inline-block;
	    transition: all .4s;
	    position: absolute;
	    height: 3px;
	    border-radius: 2px;
		background: #fff;
	  	width: 45%;
	  }
	.openbtn span:nth-of-type(1) {
		top:18px;	
	}
	.openbtn span:nth-of-type(3) {
		bottom: 17px;
	}
	.openbtn.active .openbtn-area{
		transform: rotateY(-360deg);
	}
	.openbtn.active span:nth-of-type(1) {
	    top: 23px;
	    left: 15px;
	    transform: translateY(6px) rotate(-135deg);
	    width: 50%;
	}
	.openbtn.active span:nth-of-type(2) {
		opacity: 0;
	}
	.openbtn.active span:nth-of-type(3){
	    top: 35px;
	    left: 15px;  
	    transform: translateY(-6px) rotate(135deg);
	    width: 50%;
	}	
}



/*ロゴのきらっと光るアニメーション========================*/
h1 span{
	height: 100%;
}
@media(min-width: 960px){
	.header h1{
		transition: all .3s;
	}
	.header h1:hover{
		opacity: .7;
	}
	.header.change-color h1:hover{
		opacity: 1;
	}
	.header.change-color h1 span.shine-mask{
		position: relative;
	    display: block;
	    line-height: 0;
	    overflow: hidden;
	}

	.header.change-color h1 span.shine-mask::before {
		position: absolute;
		content:"";
		width: 50%;
		height: 100%;
		top: 0;
		left: -75%;
		background: linear-gradient(to right, rgba(224,239,247,0) 0%, rgba(224,239,247,.3) 100%);
		transform: skewX(-25deg);
	}
	.header.change-color h1 span.shine-mask:hover::before {
		animation: shine .7s;
	}
	@keyframes shine {
		100% {
			left: 125%;
		}
	}
}

@media(max-width: 767px){
	.sec-main-contents{
		background: #fff;
		width: 100%;
		position: relative;
		z-index: 4000;
	}
	.parallax-area{
		position: relative;
		width: 100%;
		height: 70vh;
		z-index: -5;
	}
	.parallax-area:before{
		content:"";
		position: fixed;
		top: 0;
		left: 0;
		z-index: -5;
		width: 100%;
		height: 70vh;
		background-size: cover;
		background-repeat: no-repeat;
		background-position: center center;
		transition: all 1s;
	}
	.sec-top-sub h2{
	  position: fixed;
	  z-index: 0;
	}
}
@media(min-width: 768px){
	.parallax-area{
		position: relative;
		min-height: 100%;
		background-size: cover;
		background-attachment: fixed;
		background-repeat: no-repeat;
		background-position: center center;
		z-index: -5;
 		overflow: auto;
	}
	.sec-top-sub h2{
	  position: fixed;
	  z-index: 0;
	}
	.sec-main-contents{
		background: #fff;
		width: 100%;
		position: relative;
		z-index: 4000;
	}
}
@media(min-width: 960px){
	.header.change-color {
		transition: all .5s;
	    background-color: #fff;
	    border-bottom: 1px solid #ddd;
	}
	.header.change-color nav > ul > li:not(:last-child) > a,
	.header.change-color nav > ul > li:not(:last-child) > span{
		color: #0088cc;
		text-shadow: none;
	}
}

/*画面変遷*/
#splash-sub {
  position: fixed;
  width: 100%;
  height: 100%;
  background: #212b37;
  z-index: 9999999;
}
#splash-logo-sub {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.splash-bg-sub{
    display: none;
}
body.appear .splash-bg-sub{
	display:block;
	animation-name:PageAnime;
	animation-duration: 0.6s;
	animation-timing-function:ease-in-out;
	animation-fill-mode:forwards;
	content: "";
	position:fixed;
	z-index: 999;
	width: 50%;
	height: 100vh;
	top: 0;
	left: 0;
    transform: translateX(-300%) skewX(-45deg);
    background-color: #212b37;
}
@keyframes PageAnime{
  0% {
    transform-origin:left;
    transform:translateX(-300%) skewX(-45deg);
  }
  100% {
    transform-origin:left;
    transform:translateX(500%) skewX(-45deg);
  }
}
#page-contents{
  opacity: 0;
}
body.appear #page-contents{
  animation-name:PageAnimeAppear;
  animation-duration:1s;
  animation-delay: 0.6s;
  animation-fill-mode:forwards;
  opacity: 0;
}

@keyframes PageAnimeAppear{
	0% {
	opacity: 0;
	}
	100% {
	opacity: 1;
	}
}


