@charset "utf-8";
/* CSS Document -----------------------------

 2020.07.07

--------------------------------------------*/

/* ----------------------------------------------

 * タグの設定

---------------------------------------------- */
a {
	outline:none;
	color: #002548;
	cursor: pointer;
	text-decoration: none;
	-webkit-transition: all .5s ease;
    -moz-transition: all .5s ease;
    -o-transition: all .5s ease;
    transition: all .5s ease;
}
input[type="submit"],
input[type="button"],
button {
	font-weight: 400;
	border-radius: 0;
	-webkit-box-sizing: content-box;
	-webkit-appearance: button;
	appearance: button;
	box-sizing: border-box;
	cursor: pointer;
	outline: none;
}
input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration {
	display: none;
}
input[type="button"],
input[type="text"],
input[type="submit"],
input[type="image"],
textarea {
   -webkit-appearance: none;
   border-radius: 0;
}
select {
	font-family: "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", sans-serif;
    -webkit-appearance: none;
	 -moz-appearance: none;
    appearance: none;
}
select::-ms-expand{
	font-family: "メイリオ",Meiryo,"游ゴシック",YuGothic,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","ＭＳ Ｐゴシック","MS PGothic",sans-serif;
	display: none;
}
/*------------------------------------------------*/
html {
	margin: 0;
	padding: 0;
	color: #002548;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	word-break: break-all;
	font-family: "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", sans-serif;
	font-size: 62.5%;
	font-weight: 400;
	font-style: normal;
	font-feature-settings: "palt" 1;
	line-height: 1.8;
}
body {font-size: 1.5em;line-height: 1.8;}
.backgroung {background: #EAF3F6;}
h2 {line-height: 1.4;font-family: heisei-mincho-std, serif;}
h3,h4,h5,li,figcaption,dd,dt {line-height: 1.8;}
p {font-size: 1.5rem;line-height: 1.8;}
section {position: relative;}
.title-w {
	position: absolute;
	left: 3%;
	top: 40%;
	transform: rotate(90deg);
	color: #fff;
	z-index: 2;
}
.title {margin-bottom: 8rem;font-size: 1.7rem;}
.title span {display: block;margin-bottom: 1rem;font-size: 4.4rem;}
.titlebox {
	width: 80%;
	margin-bottom: 5rem;
	padding: 10rem 0 10rem 20%;
	background: #002548;
}
.titlebox h2 {color: #fff;font-size: 1.7rem;}
.titlebox h2 span {display: block;margin-bottom: 1rem;font-size: 4.4rem;}
.inner {max-width: 172.5rem;margin: 0 auto;padding: 0 17.8rem;}
.inner-m {max-width: 118.7rem;margin: 0 auto;padding: 0 2rem;}
.inner-s {max-width: 83.5rem;margin: 0 auto;padding: 0 2rem;}
.blank {padding-top: 14rem;}
.rajdhani400 {font-family: rajdhani, sans-serif;font-weight: 400;font-style: normal}
.rajdhani500 {font-family: rajdhani, sans-serif;font-weight: 500;font-style: normal}
.goudy400 {font-family: goudy-old-style, serif;font-weight: 400;font-style: normal;}
.flexbox {display: flex;flex-wrap: wrap;justify-content: space-between;}
.pc {display: block;}
.sp {display: none;}
@media only screen and ( max-width : 1100px ) {
	.inner {padding: 0 11%;}
}
@media only screen and ( max-width : 896px ) {
	body {font-size: 1.4em;}
	p {font-size: 1.4rem;}
	.inner {padding:  0 3rem;}
	.blank {padding-top: 10rem;}
	.title {margin-bottom: 5rem;font-size: 1.4rem;}
	.title span {font-size: 3rem;}
	.title-w {left: inherit;right: 0;top: 50%;}
	.titlebox {padding: 5rem 0 5rem 6%;}
	.titlebox h2 {color: #fff;font-size: 1.4rem;}
	.titlebox h2 span {font-size: 3rem;}
	.pc {display: none;}
	.sp {display: block;}
}
@media only screen and ( max-width : 500px ) {
	.blank {padding-top: 7rem;}
	.title-w {top: 35%;right: -12px;font-size: 1.2rem;}
}
/*----------------------------------------------------------------------------------

    animation

-----------------------------------------------------------------------------------*/
.underline {display: inline-block;position: relative;text-decoration: none;}
.underline::after {	
	content: '';
	position: absolute;
	left: 50%;
	bottom: -1.3rem;
	transform: translate(-50%,50%);
	transition: all .3s ease 0s;
	width: 0;
	height: .05rem;
	background: #002548;
}
.underline:hover {cursor: pointer;}
.underline:hover::after {width: 100%;}
.slidebtn,
.slidebtn2,
.slidebtn3 {
	display: block;
	position: relative;
	max-width: 37.5rem;
	margin: 0 auto;
	padding: 2rem 0;
	background: #002548;
	color: #fff;
	font-size: 1.4rem;
	text-align: center;
	z-index: 0;
}
.slidebtn2 {background: #6E9CD3;}
.slidebtn3 {background: #fff;color: #002548;}
.slidebtn::before,
.slidebtn2::before,
.slidebtn3::before {
	content: '';
	background: #6E9CD3;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	transform-origin: right top;
	transform: scale(0, 1);
	transition: transform .3s;
	z-index: -1;
}
.slidebtn2::before {background: #002548;}
.slidebtn:hover::before,
.slidebtn2:hover::before,
.slidebtn3:hover::before {transform-origin: left top;transform: scale(1, 1);}
.slidebtn span,
.slidebtn2 span {display: flex;align-items: center;justify-content: center;}
.slidebtn img,
.slidebtn2 img {width: 3.3rem;margin-left: .5rem;}
.slidebtn3::after {
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	width: 100%;
	height: 100%;
	background: url("img/arrow-b.svg") no-repeat 90% 50% / 3.3rem;
}
/*------------------------------
可視範囲にさせるcss
-------------------------------*/
.ev_off {fill: transparent;}
.ev_on .anim01 {
	width: 100%;
	text-align: center;
	letter-spacing: -.04em;
	fill: #fff;
	stroke: #000;
	stroke-width:.2px;
	stroke-dashoffset:10px;
	stroke-dasharray:3px 1px;
	animation: stroke 2s ease 1 normal forwards;
}
@keyframes stroke {
	0%{
		stroke-dashoffset:0;
		stroke-opacity:0;
		stroke-width:.1px;
		stroke-dasharray:0px 20px;
	}
	100% {
		fill:transparent;
		stroke: #707070;
		stroke-dashoffset:20;
		stroke-opacity:1;
		stroke-width:0.5px;
		stroke-dasharray:15px 0px; 
	}
}
/*------------------------------
横からラインが伸びる
-------------------------------*/
.ruby {
	position: relative;
    overflow: hidden;
    white-space: nowrap;
    width: 0;
}
.ruby.ev_on {
	animation: Ruby 2s ease-in-out;
	animation-fill-mode: forwards;
}
.ruby span {
    background: #002548;
    position: relative;
    padding-right: 6rem;
	white-space: nowrap;
}
.ruby span::before {
	content: "";
	width: 10%;
	height: 1px;
	background: #fff;
	display: block;
	position: absolute;
	top: 50%;
	right: 0;
}
@keyframes Ruby {
	0% {
	    overflow: hidden;
	    width: 0;
	    opacity: 0;
	}
	100% {
	    width: 100%;
	    opacity: 1;
	}
}
/*------------------------------
plus link
-------------------------------*/
.plus {
	position: relative;
    overflow: hidden;
	padding-bottom: 1rem;
}
.plus::before {
	content: "";
	width: 8rem;
	height: .1rem;
	background: #fff;
	display: block;
	position: absolute;
	left: 0;
	bottom: 0;
}
.plus a {
    position: relative;
	color: #fff;
}
.plus i {
	position: relative;
	margin-left: 1rem;
}
.plus i:before,.plus i:after {
	display: block;
	content: '';
	position: absolute;
	background-color: #fff;
	border-radius: 10px;
	width: 1rem;
	height: .1rem;
	top: .42rem;
	left: 0;
}
.plus i:before {
	width: .1rem;
	height: 1rem;
	top: 0;
	left: .42rem;
}
/*------------------------------
box slidein
-------------------------------*/
.img-container {overflow: hidden;position: relative;}
.img-container:before {
    background: #002548;
    content: '';
    display: block;
    height: 100%;
    position: absolute;
    transform: translateX(-100%);
    transition:all .8s 0s ease; 
    width: 100%;
    z-index: 1;     
}
.img-container img {
    display: block;
    opacity: 0;
    position: relative;
    transition:all .5s .3s ease; 
}
.text_title {
	display: inline-block;
	overflow: hidden;
	position: relative;
	z-index: 0;
}
.text_title:before {
	background: #002548;
	content: '';
	display: block;
	height: 100%;
	position: absolute;
	transform: translateX(-100%);
	transition:all .8s .3s ease; 
	width: 100%;
	z-index: 1;		
}
.text_title span {
	display: inline-block;
	opacity: 0;
	transition: all .8s .5s ease;
}
.text_txt {
	left: -2.5rem;
	opacity: 0;
	position: relative;
	transition: all .5s .5s ease;
}
/*アニメーションするプロパティを設定します*/
.img-container.active img {opacity: 1;}
.img-container.active:before {transform: translateX(100%);}
.text-container.active {opacity: 1;}
.text-container.active .text_title:before {transform: translateX(100%);}
.text-container.active .text_title span {opacity: 1;}
.text-container.active .text_txt {left: 0;opacity: 1;}
/*------------------------------
uline center
-------------------------------*/
.uline-center {
	position: relative;
    overflow: hidden;
    white-space: nowrap;
	padding-bottom: 1rem;
}
.uline-center::before {
	content: "";
	width: 4.4rem;
	height: .1rem;
	background: #002548;
	display: block;
	position: absolute;
	left: 50%;
	right: 50%;
	bottom: 0;
	transform: translate(-50%,50%);
}
.uline-center span.ev_on {
	animation: uline-center 2s ease-in-out;
	animation-fill-mode: forwards;
}
.uline-center span {
    position: relative;
    white-space: nowrap;
	width: 0;
}
@keyframes uline-center {
	0% {
	    overflow: hidden;
	    opacity: 0;
	}
	100% {
	    width: 100%;
	    opacity: 1;
	}
}
@media only screen and ( max-width : 896px ) {
	.slidebtn,
	.slidebtn2,
	.slidebtn3 {
		display: block;
		position: relative;
		max-width: 37.5rem;
		margin: 0 auto;
		padding: 2rem 0;
		background: #002548;
		color: #fff;
		font-size: 1.4rem;
		text-align: center;
		z-index: 0;
	}
	.slidebtn2 {background: #6E9CD3;}
	.slidebtn3 {background: #fff;color: #002548;}
	.slidebtn::before,
	.slidebtn2::before,
	.slidebtn3::before {
		content: '';
		background: #6E9CD3;
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		transform-origin: right top;
		transform: scale(0, 1);
		transition: transform .3s;
		z-index: -1;
	}
	.slidebtn2::before {background: #002548;}
	.slidebtn:hover::before,
	.slidebtn2:hover::before,
	.slidebtn3:hover::before {transform-origin: left top;transform: scale(1, 1);}
	.slidebtn span,
	.slidebtn2 span,
	.slidebtn3 span {display: flex;align-items: center;justify-content: center;}
	.slidebtn img,
	.slidebtn2 img,
	.slidebtn3 img {width: 3.3rem;margin-left: .5rem;}
}
/*----------------------------------------------------------------------------------

    header

-----------------------------------------------------------------------------------*/
header {
	position: fixed;
	top: 0;
    transition: .5s;
	width: 100%;
	padding: 5.6rem 0;
	background: transparent;
	z-index: 9;
}
header.transform {background: rgba(255,255,255,0.9);padding: 3rem 0;}
.pcheader nav {width: 100%;}
.pcheader ul {
	display: flex;
	text-align: center;
	justify-content: flex-start;
	align-items: center;
}
.pcheader li {margin-right: 10%;font-size: 1.3rem;}
.sidebar {display: none;}
@media only screen and ( max-width : 896px ) {
	.pcheader {display: none;}
	.sidebar {display: block;position: fixed;z-index: 11;}
	.sidebar.transform {padding: 3.5rem 0;}
	.sidebar figure {
		position: fixed;
		top: 2rem;
		left: 2rem;
		width: 8rem;
		transition: .5s;
	}
	.sidebar.transform figure {
		position: fixed;
		top: 1rem;
		left: 3rem;
		width: 7rem;
	}
	main {
		z-index: 2;
		position: relative;
		height: 100%;
		transition: transform .7s ease-in-out;
	}
	main.open {transform: translateX(-40%);}
	.button {
		position: fixed;
		top: 3rem;
		right: 3rem;
		z-index: 999;
		cursor: pointer;
		transition: .5s;
	}
	header.transform .button {top: 2.5rem;}
	.button div {
		display: block;
		height: .2rem;
		width: 3.3rem;
		background-color: #0057AA;
		transition: all .7s ease;
	}
	.button div:nth-child(2) {margin: .8rem auto;}
	.button.active div {background-color: #FFF;}
	.button.active div:nth-child(1) {transform: translateY(15px) rotateZ(45deg);}
	.button.active div:nth-child(2) {width: 0;}
	.button.active div:nth-child(3) {transform: translateY(-6px) rotateZ(-45deg);}
	nav {
		display: block;
		position: fixed;
		top: 0;
		right: 0;
		width: 40%;
		height: 100%;
		padding: 0 3rem;
		background-color: #002548;
		transform: translateX(100%);
		transition: transform .7s ease-in-out;
		z-index: 10;
		
	}
	nav.open {transform: translateX(0);transition: transform .7s ease-in-out;}
	nav li a {color: #fff;}
	nav ul {
		padding: 0;
		margin: 0;
		list-style: none;
		position: relative;
		margin-top: 15rem;
		text-align: center;
	}
	nav li {margin: 3rem 0;opacity: 0;transform: translateY(-20px);text-align: center;}
	nav li:first-child {transition: all .7s .2s ease-in-out;}
	nav li:nth-child(2) {transition: all .7s .4s ease-in-out;}
	nav li:nth-child(3) {transition: all .7s .6s ease-in-out;}
	nav li:nth-child(4) {transition: all .7s .8s ease-in-out;}
	nav li:last-child {transition: all .7s 1s ease-in-out;}
	nav.open li {opacity: 1;transform: translateY(0px);}
	nav li a {
		color: #FFF;
		text-transform: uppercase;
		position: relative;
		padding-bottom: .7rem;
	}
	nav li a::before {
		content: "";
		width: 0;
		height: 1px;
		position: absolute;
		bottom: 0;
		left: 0;
		background-color: #FFF;
		transition: all .3s ease-in-out;
	}
	nav li a:hover:before {width: 100%;}
}
@media only screen and ( max-width : 500px ) {
	nav {width: 50%;}
}
/*------------------------------------------------------------------

    footer

-------------------------------------------------------------------*/
footer {
	position: relative;
	border-top: .1rem solid #002548;
	background: url("img/top/bg.png") no-repeat center / cover;
	margin-top: 25rem;
	padding: 8rem 0;
}
footer .arrow {
	display: flex;
    align-items: center;
	position: fixed;
    left: 5rem;
    bottom: 6rem;
	color: #6E9CD3;
	z-index: 10;
}
footer .arrow a {
    display: inline-block;
    vertical-align: middle;
	position: relative;
	width: 3rem;
	height: 3rem;
	border: .1rem solid #6E9CD3;
	border-radius: 50%;
	margin-right: 1rem;
	z-index: 1;
}
footer .arrow a::before {
	content: "";
	width: .8rem;
    height: .8rem;
    border-top: .1rem solid #6E9CD3;
    border-right: .1rem solid #6E9CD3;
    position: absolute;
    left: 50%;
	bottom: 40%;
	transform: translate(-50%,50%) rotate(-45deg);
}
footer ul.flexbox {justify-content: center;}
footer ul li {position: relative;margin-right: 5rem;font-size: 1.4rem;}
footer ul li a::before {
	content: '';
	position: absolute;
	left: -1rem;
	bottom: 50%;
	transform: translate(0,50%);
	width: .5rem;
	height: .1rem;
	background: #002548;
}
footer figure {width: 8rem;}
footer div.flexbox {
	align-items: center;
	position: absolute;
	right: 7rem;
	bottom: 50%;
	transform: translate(0,50%);
}
footer div p {margin-right: 2rem;color: #6E9CD3;font-size: 1.2rem;}
@media only screen and (max-width: 896px) {
	footer {margin-top: 10rem;padding: 4rem 0;}
	footer .arrow {left: 2rem;}
	footer figure {margin: 0 auto 4rem;}
	footer ul.flexbox {display: block;}
	footer ul li {text-align: center;margin: 0 0 3rem;}
	footer div.flexbox {
		position: inherit;
		right: inherit;
		bottom: inherit;
		transform: none;
		justify-content: center;
	}
	footer div p {text-align: center;margin: 0;}
}
@media only screen and (max-width: 500px) {
	.titlebox {margin-bottom: 3rem;padding: 2rem 0 2rem 3rem;}
}
/*------------------------------------------------------------------

    404 Not Found

-------------------------------------------------------------------*/
#notfound {padding-top: 24rem;}
#notfound h2 {margin-bottom: 5rem;font-size: 1.6rem;text-align: center;}
#notfound h2 span {display: block;font-size: 2.6em;text-align: center;}
#notfound p {margin-bottom: 1rem;text-align: center;}
#notfound a {margin-top: 5rem;}
@media only screen and (max-width: 896px) {
	#notfound {padding-top: 16rem;}
}