@charset "utf-8";
/* fade */
.js-fadeBottom{
	opacity: 0;
	visibility: hidden;
	transform: translateY(80px);
	transition: opacity 1s,visibility 1s, transform 1s;
}
.js-fadeBottom.inview{
	opacity: 1;
	visibility: visible;
	transform: translateY(0px);
}
/* kv */
#kv{
	position: relative;
	background-color: var(--bg-color);
}
#kv .copy{
	position: absolute;
	top: 50%;
	left: 30px;
	transform: translateY(-50%);
	color: #FFFFFF;
	padding-right: 10px;
	padding-top: 90px;
}
#kv .copy01{
	font-size: 50px;
	line-height: 1.4;
	text-shadow: 0px 0px 10px rgba(130, 130, 130, 1);
}
#kv .copy02{
	font-size: 18px;
	text-shadow: 0px 0px 10px rgba(130, 130, 130, 1);
}
#kv .kv-slider div{
	opacity: 0;
	transition: all 2s ease;
}
#kv .kv-slider.slick-initialized div{
	opacity: 1;
}
#kv .kv-slider div{
	background-repeat: no-repeat;
	background-size: cover;
	background-position: top center;
	height: 100vh;
	margin: 0;
}
#kv .kv-slider .photo01{
	background-image: url("../images/top03.png");
}
#kv .kv-slider .photo02{
	background-image: url("../images/top02.png");
}
#kv .kv-slider .photo03{
	background-image: url("../images/top01.png");
}
#kv .kv-slider .slick-dots{
	bottom: 4%;
	padding-left: 30px;
	text-align: left;
}
#kv .kv-slider .slick-dots li{
	margin: 0;
}
#kv .kv-slider .slick-dots li button::before{
	font-size: 10px;
	opacity: .5;
	color: #FFFFFF;
}
#kv .kv-slider .slick-dots li.slick-active button::before{
	opacity: 1;
	color: #FFFFFF;
}
/* main */
#index #main{
	margin: 0 auto;
}
/* event */
#index #event{
	margin: 50px 0 0 0;
	padding: 50px 40px;
	width: 100%;
	background-color: #ffffff;
	background-image: radial-gradient(var(--main-color) 9%, transparent 9%),
                      radial-gradient(var(--main-color) 9%, transparent 9%);
	background-position: 1px 1px, 8px 8px;
	background-repeat: repeat;
	background-size: 14px 14px;
}
#index #event .ttlWrap{
	max-width: 600px;
	margin: 0 auto;
	position: relative;
}
#index #event .secTtl{
	text-shadow: 3px 0 0 #FFFFFF,0 3px 0 #FFFFFF,-3px 0 0 #FFFFFF,0 -3px 0 #FFFFFF;
	padding: 0 40px;
	text-align: center;
	font-size: 48px;
	line-height: 1;
	color: var(--main-color);
}
#index #event .arrow_box{
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
}
#index #event .event-slider{
	margin-top: 30px;
	opacity: 0;
}
#index #event .event-slider .slick-slide{
	margin: 10px;
}

/* news */
#index #news{
	margin: 120px auto 0 auto;
	padding: 0 50px;
	max-width: 1300px;
	display: flex;
	justify-content: space-between;
}
#index #news .ttlWrap{
	flex-shrink: 0;
	width: 200px;
}
#index #news .secTtl{
	line-height: 1;
}
#index #news .secTtl .main{
	display: block;
	font-size: 48px;
	margin-top: 10px;
}
#index #news .secTtl .sub{
	display: block;
	font-size: 16px;
	color: var(--main-color);
}
#index #news ul{
	width: calc(100% - 250px);
}
#index #news ul li a{
	display: flex;
	align-items: center;
	margin-bottom: 30px;
	padding: 35px 40px;
	width: 100%;
	border-radius: 10px;
	box-shadow: 0 0 16px var(--bg-color);
}
#index #news .date{
	width: 7.5em;
	font-size: 14px;
	color: var(--main-color);
}
#index #news .icon{
	width: 8.5em;
	margin-right: 3em;
	height: 20px;
	font-size: 9px;
	line-height: 20px;
	border-radius: 10px;
	text-align: center;
	color: var(--text-color);
	background-color: var(--bg-color);
}
#index #news .title{
	width: calc(100% - 14em);
	font-size: 14px;
	color: var(--text-color);
}

/* books */
#index #books{
	margin: 120px auto 0 auto;
	background: linear-gradient(180deg, #FFFFFF 0%, #FFFFFF 50%, var(--main-color) 50%, var(--main-color) 100%);
}
#index #books .ttlWrap{
	max-width: 600px;
	margin: 0 auto;
	position: relative;
}
#index #books .secTtl{
	padding: 0 40px;
	text-align: center;
	font-size: 48px;
	line-height: 1;
	color: var(--main-color);
}
#index #books .arrow_box{
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
}
#index #books .books-slider{
	margin-top: 30px;
	padding-bottom: 30px;
	opacity: 0;
}
#index #books .books-slider .slick-track{
	display: flex;
	align-items: flex-end;
}
#index #books .books-slider .slick-slide{
	margin: 20px;
}
#index #books .books-slider .slick-slide img{
	box-shadow: 0px 0px 8px 2px rgba(0, 0, 0, 0.1);
}
#index #books .books-slider .slick-slide .bookTtl{
	margin-top: 10px;
	color: #FFFFFF;
	font-size: 16px;
}
#index #books .btnMore{
	text-align: center;
	padding-bottom: 50px;
	margin: 0 10px;
}
#index #books .btnMore a{
	margin: auto;
	display: inline-block;
	width: 100%;
	max-width: 300px;
	height: 50px;
	background-color: #FFFFFF;
	color: var(--main-color);
	font-size: 16px;
	line-height: 50px;
	text-align: center;
	border-radius: 25px;
	position: relative;
}
#index #books .btnMore a::after{
	position: absolute;
	top: 0;
	bottom: 0;
	right: 20px;
	margin: auto;
	content: "";
	vertical-align: middle;
	width: 7px;
	height: 7px;
	border-top: 1px solid var(--main-color);
	border-right: 1px solid var(--main-color);
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
}

/* contents */
#index #contents{
	position: relative;
	overflow: hidden;
	padding: 150px 0;
}
#index #contents .bgWrap{
	width: 1565px;
	height: 1570px;
	position: absolute;
	margin: auto;
	left: 0;
	right: 0;
	top: -200px;
	background-image:url("../images/bg_bc.svg");
	background-position: left top;
	background-size: contain;
	animation: bgrotate 90s linear 0s infinite;
	z-index: -1;
}
@keyframes bgrotate{
	0%{transform: rotate(0deg);}
	100%{transform: rotate(360deg);}
}
#index #contents .wrapper{
	padding: 0 50px;
}
#index #contents .secTtl{
	line-height: 1;
	text-align: center;
}
#index #contents .secTtl .main{
	display: block;
	font-size: 48px;
	margin-top: 10px;
}
#index #contents .secTtl .sub{
	display: block;
	font-size: 16px;
	color: var(--main-color);
}
#index #contents .copy{
	margin-top: 30px;
	text-align: center;
	font-size: 24px;
}
#index #contents .txt{
	margin-top: 30px;
	text-align: center;
	font-size: 16px;
	line-height: 2;
}
#index #contents .contentsList{
	display: flex;
	width: 100%;
	max-width: 1200px;
	margin: 50px auto 0;
	justify-content: space-between;
}
#index #contents .contentsList li{
	width: 380px;
	background: linear-gradient(180deg, #FFFFFF 0%, #FFFFFF 20%, var(--main-color) 20%, var(--main-color) 100%);
	margin-right: 3%;
	border-radius: 10px;
	box-shadow: 0px 0px 8px 2px rgba(0, 0, 0, 0.1);
	overflow: hidden;
}
#index #contents .contentsList li:last-child{
	margin-right: 0;
}
#index #contents .contentsList .contents_detail{
	padding: 20px;
	color: #FFFFFF;
}
#index #contents .contentsList .contents_detail h3{
	font-size: 18px;
}
#index #contents .contentsList .contents_detail p{
	font-size: 14px;
}
/* mvv */
#index #mvv{
	padding: 50px 0;
	width: 100%;
	background-color: var(--bg-color);
}
#index #mvv .loopWrap{
	display: flex;
	align-items: center;
	overflow: hidden;
}
#index #mvv .loop{
	background: url("../images/mvvloop.png") repeat-x;
	width: 100%;
	height: 66px;
	animation: loop1 18s infinite linear;
}
#index #mvv .reverse{
	animation: loop2 18s infinite linear;
}
@keyframes loop1{
	from {
		background-position: 0 0;
	}
	to {
		background-position: -1476px 0;
	}
}
@keyframes loop2{
	from {
		background-position: -1476px 0;
	}
	to {
		background-position: 0 0;
	}
}
#index #mvv .secTtl{
	margin-top: 50px;
	line-height: 1;
	text-align: center;
}
#index #mvv .secTtl .main{
	display: block;
	font-size: 48px;
	margin-top: 10px;
	letter-spacing: 0.1em;
}
#index #mvv .secTtl .sub{
	display: block;
	font-size: 16px;
	color: var(--main-color);
	letter-spacing: 0.2em;
}
#index #mvv .bgWrap{
	padding: 0 30px;
}
#index #mvv .chart{
	margin: auto;
	max-width: 1200px;
	position: relative;
}
#index #mvv .chart img{
	margin: auto;
	max-width: 700px;
}
#index #mvv .mission{
	width: 350px;
	position: absolute;
	left:0;bottom:80px;
	background: url("../images/mission_bg.svg") no-repeat;
	background-position: 175px 77px;
}
#index #mvv .mission h3{
	margin-top: 100px;
	line-height: 1;
}
#index #mvv .mission .main{
	margin-top: 10px;
	font-size: 36px;
	display: block;
}
#index #mvv .mission .sub{
	font-size: 18px;
	display: block;
	color: #00c8d6;
}
#index #mvv .mission p{
	margin-top: 10px;
	max-width: 300px;
	text-align: justify;
}
#index #mvv .vision{
	width: 470px;
	position: absolute;
	left:0;top:50px;
	background: url("../images/vision_bg.svg") no-repeat;
	background-position: 148px 39px;
}
#index #mvv .vision h3{
	line-height: 1;
}
#index #mvv .vision .main{
	margin-top: 10px;
	font-size: 36px;
	display: block;
}
#index #mvv .vision .sub{
	font-size: 18px;
	display: block;
	color: var(--main-color);
}
#index #mvv .vision p{
	margin-top: 10px;
	max-width: 332px;
	text-align: justify;
}
#index #mvv .values{
	padding-left: 153px;
	width: 380px;
	position: absolute;
	right:0;top:280px;
	background: url("../images/values_bg.svg") no-repeat;
	background-position: 10px 35px;
}
#index #mvv .values h3{
	line-height: 1;
}
#index #mvv .values .main{
	margin-top: 10px;
	font-size: 36px;
	display: block;
}
#index #mvv .values .sub{
	font-size: 18px;
	display: block;
	color: #ffb600;
}
#index #mvv .values p{
	margin-top: 10px;
	max-width: 300px;
	text-align: justify;
}
/* ricruit */
#index #ricruit{
	margin: auto;
	padding: 0 50px;
	background: linear-gradient(180deg, var(--bg-color) 0%, var(--bg-color) 50%, #FFFFFF 50%, #FFFFFF 100%);
}
#index #ricruit .wrap{
	display: flex;
	justify-content: space-between;
	color: #FFFFFF;
	border-radius: 20px;
	height: 400px;
	overflow: hidden;
}
#index #ricruit h2{
	position: relative;
	width: calc(100% - 500px);
	background-color: var(--main-color);
	display: flex;
	align-items: center;
	line-height: 1;
	padding: 0 60px;
}
#index #ricruit h2 .main{
	font-size: 48px;
	margin-right: 40px;
}
#index #ricruit h2 .sub{
	font-size: 18px;
}
#index #ricruit h2::before{
	content: '';
	width: 12px;
	height: 12px;
	border-top: solid 3px #FFFFFF;
	border-right: solid 3px #FFFFFF;
	position: absolute;
	transform: rotate(45deg);
	right: 70px;
	top:50%;
	margin-top: -6px;
}
#index #ricruit h2::after{
	content: '';
	position: absolute;
	display: block;
	height: 50px;
	width: 50px;
	border-radius: 50%;
	border: solid 2px #FFFFFF;
	right: 50px;
	top:50%;
	margin-top: -25px;
}
#index #ricruit .wrap .bg{
	width: 500px;
	background-image: url("../images/bg01.png");
	background-position: center center;
	background-size: cover;
}
@media screen and (max-width:1200px) {
	/* mvv */
	#index #mvv .chart img{
		max-width: 580px;
	}
	#index #mvv .mission{
		bottom: 78px;
	}
	#index #mvv .mission p{
		max-width: 250px;
	}
	#index #mvv .vision{
		top: 0px;
	}
	#index #mvv .vision p{
		max-width: 300px;
	}
	#index #mvv .values{
		padding-left: 175px;
		top: 200px;
		background-position: 35px 39px;
	}
	/* ricruit */
	#index #ricruit .wrap{
		height: 300px;
	}
	#index #ricruit h2{
		width: calc(100% - 340px);
	}
	#index #ricruit .wrap .bg{
		width: 340px;
	}
}
@media screen and (max-width:1100px) {
	#index #mvv .mission{
		width: 300px;
	}
}
@media screen and (max-width:1000px) {
	/* kv */
	#kv .copy{
		left: 10px;
		padding-top: 60px;
	}
	#kv .copy01{
		font-size: 30px;
	}
	#kv .copy02{
		font-size: 14px;
	}
	#kv .kv-slider .photo01{
		background-image: url("../images/top03_sp.png");
	}
	#kv .kv-slider .photo02{
		background-image: url("../images/top02_sp.png");
	}
	#kv .kv-slider .photo03{
		background-image: url("../images/top01_sp.png");
	}
	/* event */
	#index #event{
		margin: 30px 0 0 0;
		padding: 30px 10px;
	}
	#index #event .secTtl{
		padding: 0 40px;
		font-size: 28px;
	}
	#index #event .event-slider{
		margin-top: 20px;
	}
	/* news */
	#index #news{
		margin: 50px auto 0 auto;
		padding: 0 20px;
		flex-direction: column;
	}
	#index #news .ttlWrap{
		width: 100%;
	}
	#index #news .secTtl{
		text-align: center;
	}
	#index #news .secTtl .main{
		font-size: 28px;
		margin-top: 10px;
	}
	#index #news .secTtl .sub{
		font-size: 14px;
	}
	#index #news ul{
		margin-top: 30px;
		width: 100%;
	}
	#index #news ul li a{
		flex-wrap: wrap;
		margin-bottom: 30px;
		padding: 30px;
	}
	#index #news .icon{
		margin-right: 0;
	}
	#index #news .title{
		width: 100%;
		margin-top: 10px;
	}
	/* books */
	#index #books{
		margin: 50px auto 0 auto;
		background: linear-gradient(180deg, #FFFFFF 0%, #FFFFFF 40%, var(--main-color) 40%, var(--main-color) 100%);
	}
	#index #books .ttlWrap{
		width: calc(100% - 20px);
	}
	#index #books .secTtl{
		font-size: 28px;
	}
	#index #books .books-slider{
		padding-bottom: 20px;
	}
	#index #books .books-slider .slick-slide .bookTtl{
		font-size: 14px;
	}
	#index #books .btnMore{
		padding-bottom: 30px;
	}
	#index #books .btnMore a{
		height: 40px;
		font-size: 14px;
		line-height: 40px;
		border-radius: 20px;
	}
	/* contents */
	#index #contents{
		padding: 50px 0;
	}
	#index #contents .bgWrap{
		width: 782.5px;
		height: 785px;
		top: -100px;
	}
	#index #contents .wrapper{
		padding: 0 20px;
	}
	#index #contents .secTtl .main{
		font-size: 28px;
	}
	#index #contents .secTtl .sub{
		font-size: 14px;
	}
	#index #contents .copy{
		margin-top: 20px;
		font-size: 20px;
	}
	#index #contents .txt{
		margin-top: 20px;
		font-size: 14px;
	}
	#index #contents .contentsList .contents_detail h3{
		font-size: 16px;
	}
	/* mvv */
	#index #mvv{
		padding: 30px 0;
	}
	#index #mvv .loop{
		height: 33px;
		background-size: auto 33px;
	}
	#index #mvv .secTtl{
		margin-top: 30px;
	}
	#index #mvv .secTtl .main{
		font-size: 28px;
		margin-top: 10px;
	}
	#index #mvv .secTtl .sub{
		font-size: 14px;
	}
	#index #mvv .bgWrap{
		padding: 0 20px;
	}
	#index #mvv .chart img{
		margin: auto;
		max-width: 100%;
	}
	#index #mvv .mission{
		width: 100%;
		position: static;
		background: none;
		padding-bottom: 20px;
		border-bottom: 1px solid #FFFFFF;
	}
	#index #mvv .mission h3{
		margin-top: 0;
	}
	#index #mvv .mission .main{
		margin-top: 5px;
		font-size: 28px;
	}
	#index #mvv .mission .sub{
		font-size: 14px;
	}
	#index #mvv .mission p{
		margin-top:5px;
		max-width: none;
	}
	#index #mvv .vision{
		width: 100%;
		position: static;
		background: none;
		margin-top: 20px;
		padding-bottom: 20px;
		border-bottom: 1px solid #FFFFFF;
	}
	#index #mvv .vision .main{
		margin-top: 5px;
		font-size: 28px;
	}
	#index #mvv .vision .sub{
		font-size: 14px;
	}
	#index #mvv .vision p{
		margin-top: 5px;
		max-width: none;
	}
	#index #mvv .values{
		width: 100%;
		position: static;
		background: none;
		padding-left: 0;
		margin-top: 20px;
		margin-bottom: 50px;
	}
	#index #mvv .values .main{
		margin-top: 5px;
		font-size: 28px;
	}
	#index #mvv .values .sub{
		font-size: 14px;
	}
	#index #mvv .values p{
		margin-top: 5px;
		max-width: none;
	}
	/* ricruit */
	#index #ricruit{
		padding: 0 20px;
	}
	#index #ricruit .wrap{
		flex-direction: column-reverse;
		height: auto;
	}
	#index #ricruit h2{
		width: 100%;
		padding: 20px 60px 20px 20px;
	}
	#index #ricruit h2 .main{
		font-size: 28px;
		margin-right: 20px;
	}
	#index #ricruit h2 .sub{
		font-size: 14px;
	}
	#index #ricruit h2::before{
		width: 10px;
		height: 10px;
		border-top: solid 2px #FFFFFF;
		border-right: solid 2px #FFFFFF;
		right: 32px;
		margin-top: -5px;
	}
	#index #ricruit h2::after{
		height: 30px;
		width: 30px;
		right: 20px;
		margin-top: -15px;
	}
	#index #ricruit .wrap .bg{
		width: 100%;
		height: 200px;
	}
}
@media screen and (max-width:600px) {
	/* contents */
	#index #contents .wrapper{
		padding: 0 20px;
	}
	#index #contents .contentsList{
		flex-direction: column;
	}
	#index #contents .contentsList li{
		width: 100%;
		margin-right: 0;
		margin-bottom: 30px;
	}
	#index #contents .contentsList li:last-child{
		margin: 0;
	}
}