@charset "utf-8";
* {
	margin: 0;
	padding: 0;
	font-family: "ヒラギノ角ゴ ProN W3", "Lucida Grande", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, Verdana, "ＭＳ Ｐゴシック", sans-serif, YuGothic;
	box-sizing: border-box;
	-webkit-text-size-adjust: 100%;
}
.clearfix:before, .clearfix:after {
	content: " ";
	display: table;
	height: 0;
}
.clearfix:after {
	clear: both;
	height: 0;
}
.is_pc{
	display:block !important;
}
.is_sp{
	display:none !important;
}
@media (max-width:767px) {
	.is_pc{
		display:none !important;
	}
	.is_sp{
		display:block !important;
	}
}
*{
	line-height: 1.6em;
}
body {
	width: 100vw;
	overflow-x: hidden;
	margin: 0;
	background-color: #fff;
}
img {
	vertical-align: bottom;
	border:none;
}
a{
	color:#111;
	text-decoration: none;
	transition: all .3s ease-in-out;
}
ul li{list-style-type: none;}

.en_min,
.en_min *{
	font-family: latino-urw, serif;
	font-weight: 500;
}
.en_min.bold,
.en_min.bold *{
	font-family: latino-urw, serif;
	font-weight: 700;
}
.ja_min,
.ja_min *{
	font-family: a-otf-ryumin-pr6n, serif;
	font-weight: 300;
	font-style: normal;
}
.kern{font-feature-settings: "palt";letter-spacing: 1.5px;}
img{max-width: 100%;}
p{
	font-size: 16px;
	line-height: 210%;
}





.animeotr {
    position: absolute;
    width: 100vw;
    height: 100vh;
    z-index: 9999999999999;
    background: #084F8D;
}
.anime .h1otr {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translateY(-49%) translateX(-50%);
	-webkit- transform: translateY(-49%) translateX(-50%);
	z-index: 2;
	max-width: 1400px;
	width: 80%;
	display: block;
}

.anime svg path {
    stroke: #FFF;
    fill: none;
    stroke-width: 1;
    stroke-dasharray: 3000;
    stroke-dashoffset: 3000;
    animation: DASH 7s ease-in-out alternate forwards;
    -webkit-animation: DASH 7s ease-in-out 0s alternate forwards;
    -o-animation: DASH 7s ease-in-out 0s alternate forwards;
}

@keyframes DASH {
    0% {
        stroke-dashoffset: 3000;
    }

    100% {
        stroke-dashoffset: 0;
    }
}

.animeotr ul {
    opacity: 0;
}





header .slogan{
	width: 100vw;
	height: 100vh;
	overflow: hidden;
	position: relative;
}
header .slogan:after{
	content: "";
	width: 100vw;
	height: 100vh;
	background: url("../images/top/overlay.png") repeat;
	position: absolute;
	top: 0;
	left: 0;
}
header .slogan .h1otr{
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translateY(-50%) translateX(-50%);
	-webkit- transform: translateY(-50%) translateX(-50%);
	z-index: 2;
	max-width: 1400px;
	width: 80%;
}
header .slogan h1{
	display: block;
}
header .slogan .nav,
.animeotr .nav{
	display: flex;
	justify-content: center;
	margin-top: 50px;
}
header .slogan .nav li,
.animeotr .nav li{
	margin: 0 15px;
	position: relative;
}
header .slogan .nav li a,
.animeotr .nav li a{
	font-family: latino-urw, serif;
	font-weight: 500;
	font-size: 27px;
	letter-spacing: 2px;
	color: #FFF;
	transition: all .3s ease;
}
header .slogan .nav li:hover a{
	border-bottom: 1px solid #FFF;
}
header .slogan .nav li span,
.animeotr .nav li span{
	position: absolute;
	display: block;
	line-height: 100%;
	width: 100%;
	text-align: center;
	bottom: -18px;
	left: 50%;
	transform: translateY(0%) translateX(-50%);
	-webkit- transform: translateY(0%) translateX(-50%);
	color: #FFF;
	letter-spacing: 2px;
	display: none;
	transition: all .3s cubic-bezier(.215,.61,.355,1);
}
header .slogan .nav li:nth-of-type(2) span{
	width: 200%;
}
header .slogan .nav li.over span{
	display: block;
    animation: show .3s linear 0s;
}
@keyframes show{
    from{
        opacity: 0;
    }
    to{
        opacity: 1;
    }
}
@media (max-width:1000px) {
	.anime .h1otr,
	header .slogan .h1otr{
		width: 90%;
	}
	header .slogan .nav li a,
	.animeotr .nav li a{
		font-size: 20px;
	}
	header .slogan .nav li,
	.animeotr .nav li{
		margin: 0 10px;
	}
	header .slogan .nav li span,
	.animeotr .nav li span{
		font-size: 13px;
		width: 200%;
	}
}
@media (max-width:767px) {
	header .slogan .nav,
	.animeotr .nav {
		flex-wrap: wrap;
		margin-top: 50px;
	}
	header .slogan .nav li,
	.animeotr .nav li {
		margin-bottom: 2.4vw;
	}
	header .slogan .nav li a,
	.animeotr .nav li a {
		font-size: 16px;
	}
	header .slogan .nav li span,
	.animeotr .nav li span {
		display: none;
	}
}


header .slogan video{
	display: block;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translateY(-50%) translateX(-50%);
	-webkit- transform: translateY(-50%) translateX(-50%);
	width: 100vw;
	height: 100vh;
	width: auto;
	height: auto;
	z-index: -999;
}
header .slogan .circle{
	width: 80px;
	height: 80px;
	background: #084F8D;
	position: absolute;
	bottom: -40px;
	left: 50%;
	transform: translateY(0%) translateX(-50%);
	-webkit- transform: translateY(0%) translateX(-50%);
	z-index: 1;
	border-radius: 50%;
}
header .slogan .circle:after{
	content: "";
	width: 16px;
	height: 16px;
	border: 1px solid #FFF;
	border-right: none;
	border-top: none;
	position: absolute;
	bottom: 52px;
	left: calc(50% - 8px);
	transform: translateY(0%) translateX(-50%);
	-webkit- transform: translateY(0%) translateX(-50%);
	transform: rotate(-45deg);
}



main{
}
.contents{
}

#contents1{
	padding: 110px 0 280px;
	background: url("../images/top/about_bg.jpg") no-repeat center center;
}
#contents1 h2{
	color: #084F8D;
	text-align: center;
	font-size: 26px;
	letter-spacing: 4px;
	margin-bottom: 80px;
}
#contents1 h3{
	text-align: center;
	margin:0 auto 70px;
	position: relative;
	width: 930px;
}
#contents1 h3 span{
	background: #FFF;
	display: inline-block;
	padding: 0 20px;
	z-index: 1;
	position: relative;
}
#contents1 h3:after{
	content: "";
	width: 100%;
	height: 0.5px;
	background: #111;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translateY(-50%) translateX(-50%);
	-webkit- transform: translateY(-50%) translateX(-50%);
}
#contents1 p.ja_min{
	font-size: 24px;
	text-align: center;
	letter-spacing: 3px;
}
#contents1 p.foot{
	text-align: center;
	font-size: 19px;
}

a.linkbtn{
	display: block;
	width: 220px;
	height: 50px;
	line-height: 50px;
	background: #084F8D;
	color: #FFF;
	font-size: 16px;
	text-align: center;
	letter-spacing: 2px;
	font-weight: 100;
	margin: 0 auto;
	position: relative;
}
a.linkbtn:before{
	content: "";
	width: 100%;
	height: 100%;
	border: #084F8D solid 1px;
	position: absolute;
	top: -4px;
	left: -4px;
}
a.linkbtn:after{
	content: "";
	display: inline-block;
	width: 7px;
	height: 7px;
	border-top: 1px solid #FFF;
	border-right: 1px solid #FFF;
	transform: rotate(45deg);
	position: absolute;
	top: 50%;
	right: 14px;
	margin-top: -3.5px;
}
a.linkbtn.pt1{
	margin: 65px auto 80px;
}
@media (max-width:1250px) {
	#contents1{
		padding: 110px 0 280px;
		background: url("../images/top/about_bg.jpg") no-repeat center center;
		background-size: 88%;
	}
}
@media (max-width:1150px) {
	#contents1{
		padding: 10vw 0 20vw;
	}
	#contents1 p.ja_min {
		font-size: 2.1vw;
		letter-spacing: 2px;
	}
	#contents1 h3 {
		width: 84%;
		margin-bottom: 5vw;
	}
	#contents1 p.foot {
		font-size: 1.9vw;
	}
	a.linkbtn.pt1 {
		margin: 5vw auto;
	}
}
@media (max-width:950px) {
	#contents1 h3 span{
		width: 80%;
	}
}
@media (max-width:767px) {
	#contents1 h2 {
		font-size: 5vw;
		margin-bottom: 10vw;
		font-weight: bold;
	}
	#contents1 h3 {
		width: 94%;
		margin-bottom: 5vw;
	}
	#contents1 h3 span {
		width: 100%;
		padding: 0 10px;
	}
	#contents1 h3:after,
	#contents1 h3:before{
		display: none;
	}
	#contents1 p.ja_min {
		font-size: 3.7vw;
		letter-spacing: 1px;
		text-align: left;
		width: 90%;
		margin: 0 auto;
	}
	a.linkbtn {
		width: 50%;
		height: 12vw;
		line-height: 12vw;
		font-size: 3vw;
	}
	a.linkbtn.pt1 {
		margin: 8vw auto;
	}
	#contents1 p.foot {
		font-size: 3.5vw;
		text-align: left;
		width: 90%;
		margin: 0 auto;
	}
}




#contents2,
#contents3{
	max-width: 1370px;
	margin: 0 auto 300px;
}
#contents2 h3{
	margin:0 0 -15px 28px;
	position: relative;
	z-index: 2;
}
#contents2 img.main,
#contents3 img.main{
	box-shadow: 8px 0 40px -3px #CCC;
	position: relative;
	z-index: 1;
	max-width: 100%;
}
#contents2 .flex,
#contents3 .flex{
	display: flex;
	position: relative;
	align-items: center;
}
#contents2 .flex span.box,
#contents3 .flex span.box{
	content: "";
	width: 45.3%;
	height: 116%;
	background:url("../images/top/blue_bg.jpg") repeat;
	position: absolute;
	top:-25%;
	right: 0;
}
#contents2 .flex .mainimg,
#contents3 .flex .mainimg{
	width: 73.2%;
	position: relative;
}
#contents2 .flex .link,
#contents3 .flex .link{
	width: 26.8%;
	position: relative;
	z-index: 3;
	margin-top: -50px;
}
#contents2 .flex .link h4,
#contents3 .flex .link h4{
	font-size: 34px;
	color: #084F8D;
	letter-spacing: 3px;
	width: 230px;
	margin:0 auto 85px;
	position: relative;
}
#contents2 .flex .link h4:after,
#contents3 .flex .link h4:after{
	content: "";
	width: 150px;
	height: 3px;
	background: #FFF;
	position: absolute;
	left: 0;
	top: 70px;
}
#contents2 .flex .link h4:before,
#contents3 .flex .link h4:before{
	content: "";
	width: 30px;
	height: 3px;
	background: #084F8D;
	position: absolute;
	left: 0;
	top: 70px;
	z-index: 1;
}

#contents3 .flex .link .inr{
	margin-left: 4vw;
}
#contents3 .flex .link .inr a{
	margin-left: 0;
}
#contents3 .flex .link h4{
	width: auto;
}
#contents3 .flex .link{
}
#contents3 .flex{
	flex-direction: row-reverse;
}
#contents3 .flex span.box{
	right:auto;
	left: 0;
}
#contents3 h3{
	margin:0 0 -15px 40%;
	position: relative;
	z-index: 2;
}
@media (max-width:1280px) {
	#contents2 .flex .mainimg,
	#contents3 .flex .mainimg {
		width: 68.2%;
	}
	#contents2 .flex .link,
	#contents3 .flex .link {
		width: 31.8%;
		margin-top: -50px;
	}
	#contents2 h3{
		width: 55%;
	}
	#contents3 h3{
		width: 30%;
	}
}
@media (max-width:1000px) {
	#contents2 .flex .link h4,
	#contents3 .flex .link h4 {
		font-size: 27px;
		width: auto;
		margin: 0 auto 85px;
	}
	#contents2 .flex .link h4{
		margin-left: 4.2vw;
	}
}
@media (max-width:767px) {
	#contents2 .flex, #contents3 .flex {
		display: block;
	}
}
@media (max-width:767px) {
	#contents2, #contents3 {
		max-width: 100%;
		margin: 0 auto 30vw;
	}
	#contents2 .flex .mainimg, #contents3 .flex .mainimg {
		width: 94%;
	}
	#contents3 .flex .mainimg {
		margin-left: auto;
	}
	#contents2 .flex span.box, #contents3 .flex span.box {
		content: "";
		width: 86%;
		height: 77vw;
		top: 13vw;
		right: 0;
	}
	#contents2 h3,
	#contents3 h3{
		width: auto;
		height: 8vw;
		margin: 0 0 -5px 5px;
	}
	#contents3 h3{
		margin: 0 5px -5px auto;
		text-align: right;
	}
	#contents2 h3 img,
	#contents3 h3 img{
		height: 100%;
	}
	#contents2 img.main, #contents3 img.main {
		box-shadow: 8px 0 20px -3px #CCC;
	}
	#contents2 .flex .link, #contents3 .flex .link {
		width: 100%;
		margin-top: 0px;
	}
	#contents2 .flex .link h4, #contents3 .flex .link h4 {
		font-size: 8vw;
		width: auto;
		margin: 3vw auto 10vw;
		margin-left: 25vw;
	}
	#contents3 .flex .link h4 {
		margin-left: 7vw;
	}
	#contents2 .flex .link h4:after,
	#contents3 .flex .link h4:after{
		width: 50%;
		height: 3px;
		top: 50px;
	}
	#contents2 .flex .link h4:before,
	#contents3 .flex .link h4:before{
		width: 10%;
		height: 3px;
		top: 50px;
	}
	#contents2 a.linkbtn{
		margin-left: 35vw;
	}
	#contents3 .flex .link .inr a {
		margin-left: 16vw;
	}
}


#contents4 h3{
	margin:0 auto -15px;
	position: relative;
	z-index: 2;
	padding-left: 50px;
	max-width: 1179px;
}
#contents4 .popup{
	position: relative;
	max-width: 1179px;
	margin: 0 auto;
}
#contents4 .popup:after{
	content: "";
	width: 93px;
	height: 66px;
	background: url("../images/top/youtube_btn.png") no-repeat;
	background-size: cover;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translateY(-50%) translateX(-50%);
	-webkit- transform: translateY(-50%) translateX(-50%);
	z-index: 0;
}
#contents4 .popup a{
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 3;
}
#contents4 .popup img{
	box-shadow: 0px 0 30px 0px #CCC;
}
#contents4 .popup:hover img{
	opacity: 0.8;
}
@media (max-width:1260px) {
	#contents4 h3{
		padding-left: 30px;
		max-width: 80%;
	}
	#contents4 .popup{
		max-width: 80%;
	}
	#contents4 h3 img{
		width: 43%;
	}
}
@media (max-width:767px) {
	#contents4 .popup{
		max-width: 96%;
	}
	#contents4 h3{
		padding-left: 20px;
		max-width: 96%;
		margin: 0 auto -5px;
	}
	#contents4 h3 img{
		width: 80%;
	}
	#contents4 .popup img{
		box-shadow: 0px 2px 20px 1px #CCC;
	}
	#contents4 .popup:after {
		width: 50px;
		height: 35px;
	}
}
