@charset "UTF-8";



/*========================================

  loader

========================================*/
#WrapPage {
	opacity: 0;
	min-width: 1300px;
	background: #fff;
	overflow: hidden;
	transition: .5s;
}

@media screen and (max-width: 767px) {
	#WrapPage {
		min-width: 100vw;
	}
}

#loader-bg {
	position: fixed;
	z-index: 10001;
	top: 0;
	left: 0;
	display: none;
	width: 100%;
	height: 100%;
	background: #fff;
}

#loader {
	position: absolute;
	right: 0;
	bottom: 0;
	width: 100vw;
	height: 100vh;
	background: url(../img/line.svg) no-repeat;
	background-size: auto 105%;
	clip-path: inset(0 100% 0 0);
	transition: clip-path 1.5s ease-out;
	z-index: 5;
}

#loader.show {
	/*clip-path: inset(0 0 0 0);*/
	animation: firstAnime 2s forwards;
}

@keyframes firstAnime {
	0 {
		opacity: 0;
		clip-path: inset(0 100% 0 0);
	}

	70% {
		opacity: 1;
		clip-path: inset(0 0 0 0);

	}

	80% {
		opacity: 1;
		clip-path: inset(0 0 0 0);
	}


	100% {
		opacity: 0;
		clip-path: inset(0 0 0 0);
	}
}



@media screen and (max-width: 767px) {
	#loader {
		right: 0;
		bottom: 0;
		width: 100vw;
		height: 100vh;
		background: url(../img/line_sp.svg) no-repeat;
		background-size: cover;
		transition: clip-path 1s ease-out;
	}

}





/*========================================

  TOPページ

========================================*/

main {
	padding-top: 0 !important;
}


.video-container {
	position: relative;
	margin: 0 auto;
	width: 100%;
	z-index: 1;
}

.video-wrap {
	position: relative;
	overflow: hidden;
	height: 100vh;
	max-height: 1080px;
	z-index: 0;
}

#videoauto {
	position: absolute;
	min-width: 100%;
	min-height: 100vh;
}


#player {
	width: 100%;
}

/*画面サイズが変わっても常に動画の中央が表示されるようにする*/
/*動画よりも画面が横に長くなるとき用*/

@media (aspect-ratio: 16/9),
(min-aspect-ratio: 16/9) {
	#videoauto {
		position: absolute;
		width: 100%;
		left: 0;
		top: 50%;
		transform: translateY(-50%);
	}
}

/*動画よりも画面が縦に長くなるとき用*/
@media (max-aspect-ratio: 16/9) {
	#videoauto {
		height: 100%;
		top: 0;
		left: 50%;
		transform: translateX(-50%);
	}
}



@media screen and (max-width: 767px) {
	.video-container {}

	.video-wrap {
		height: 140vw;
	}

	#videoauto {
		min-width: 100vw;
		min-height: 120vw;
		position: absolute;
	}

	#videoauto {
		left: 65%;
		transform: translateX(-65%);
	}
}






/* #hero-------------------------*/
#hero {
	position: relative;
}

#hero h1 {
	position: absolute;
	bottom: 70px;
	left: 0;
	right: 0;
	margin: 0 auto;
	color: #fff;
	font-size: 42px;
	letter-spacing: 8px;
	text-align: center;
	z-index: 5;
}



@media screen and (max-width: 1550px) {
	#hero h1 {
		font-size: 38px;
		letter-spacing: 6px;
	}
}

@media screen and (max-width: 1450px) {
	#hero h1 {
		font-size: 35px;
		letter-spacing: 3px;
	}
}

@media screen and (max-width: 767px) {
	#hero h1 {
		bottom: 15vw;
		font-size: 5vw;
		margin-bottom: 0;
		letter-spacing: 2px;
	}
}


.blur-text {
	opacity: 0;
	filter: blur(10px);
	transition: opacity 3s ease-out, filter 3s ease-out;
}


/* #sec001-------------------------*/
#sec001::before {
	background-image: url(../img/bg_01_pc.jpg);
}

#sec001 .boxL {
	position: absolute;
	top: calc((100vh - 570px) / 2);
	left: 8vw;
	background: rgba(255, 255, 255, .55);
	backdrop-filter: blur(5px);
	padding: 75px 65px;
}

@media screen and (max-width: 1700px) {
	#sec001 .boxL {
		left: 5vw;
	}
}

@media screen and (max-width: 1500px) {
	#sec001 .boxL {
		padding: 55px 45px;
	}
}

#sec001 .boxL p {
	font-size: 18px;
	line-height: 2.2em;
	letter-spacing: 2px;
	text-align: left;
}

#sec001 .boxL p .brspace {
	display: block;
	height: 1em;
}


#sec001 .boxR {
	position: absolute;
	bottom: 100px;
	right: 100px;
}

@media screen and (max-width: 1500px) {
	#sec001 .boxR {
		bottom: 70px;
		right: 70px;
	}
}

#sec001 .boxR span {
	display: block;
	color: #fff;
	font-size: 23px;
	line-height: 2.2em;
	letter-spacing: 2px;
	text-align: left;
}



@media screen and (max-width: 767px) {
	#sec001 {
		padding-top: 15vw;
	}

	#sec001::before {
		background-image: url(../img/bg_01_sp.jpg);
	}

	#sec001 .boxL {
		background: none;
		box-sizing: border-box;
		width: 80%;
		position: relative;
		top: auto;
		left: auto;
		margin: 0 auto;
		padding: 5vw;
	}

	#sec001 .boxL p {
		font-size: 3.6vw;
		line-height: 1.8em;
		letter-spacing: 1px;
	}

	#sec001 .boxR {
		position: relative;
		bottom: auto;
		right: auto;
		width: 80%;
		margin: 0 auto;
		margin-top: 50vw;

	}

	#sec001 .boxR span {
		font-size: 4vw;
		line-height: 2em;
	}

}


/* #sec002-------------------------*/
#sec002 {}


#sec002::before {
	background-image: url(../img/bg_02_pc.jpg);
}

#sec002::before {
	opacity: 1;
	z-index: 2;
}

#sec002::after {
	opacity: 0;
	z-index: 1;
}

#sec002 .ttl {
	position: relative;
	color: #fff;
	padding-top: 120px;
	z-index: 3;
}

#sec002 .ttl strong {
	display: block;
	font-size: 63px;
	letter-spacing: 6px;
}

#sec002 .ttl span {
	display: block;
	font-size: 23px;
	line-height: 2em;
	letter-spacing: 2px;
	margin-top: 1em;
}

#sec002 .com_more_box {
	position: absolute;
	bottom: 100px;
	right: 100px;
	z-index: 3;
}


@media screen and (max-width: 1500px) {
	#sec002 .com_more_box {
		bottom: 70px;
		right: 70px;
	}
}



@media screen and (max-width: 767px) {
	#sec002::before {
		background-image: url(../img/bg_02_sp.jpg);
	}

	#sec002 .ttl {
		padding-top: 0;
	}

	#sec002 .ttl strong {
		font-size: 9vw;
		letter-spacing: 4px;
	}

	#sec002 .ttl span {
		font-size: 4vw;
		line-height: 1.8em;
	}

	#sec002 .com_more_box {
		position: relative;
		bottom: auto;
		right: auto;
		width: 80%;
		margin: 0 auto;
		margin-top: 40vw;
	}

}




/* #sec003-------------------------*/
#sec003 {
	display: flex;
	justify-content: center;
	align-items: center;
	align-content: center;
}

#sec003::before {
	background-image: url(../img/bg_03_pc.jpg);
}

#sec003 .flex_box {
	width: 1140px;
	margin: 0 auto;
	overflow: visible;
}

@media screen and (max-width: 1400px) {
	#sec003 .flex_box {
		width: 1100px;
	}
}

#sec003 .flex_box .item {
	position: relative;
	width: 520px;
	background: rgba(255, 255, 255, .55);
	backdrop-filter: blur(5px);
	padding: 40px;
}




#sec003 .flex_box .item .ttl strong {
	font-size: 18px;
	font-family: "Zen Kaku Gothic New", serif;
	font-weight: 400;
	letter-spacing: 3px;
}

#sec003 .flex_box .item .ttl h2 {
	font-size: 28px;
	font-family: "Shippori Mincho", serif;
	font-weight: 400;
	letter-spacing: 6px;
	margin-top: .5em;
}

#sec003 .flex_box .item .img {
	display: block;
	margin-top: 30px;
}

#sec003 .flex_box .item p {
	font-size: 17px;
	letter-spacing: 2px;
	margin-top: 2em;
}

#sec003 .flex_box .item .more {
	margin-top: 30px;
}

#sec003 .flex_box .item .more a {
	position: relative;
	display: flex;
	align-items: center;
	font-size: 18px;
	font-family: "Zen Kaku Gothic New", serif;
	font-weight: 400;
	letter-spacing: 3px;
	padding-right: 35px;
}

#sec003 .flex_box .item .more a:hover {
	opacity: 1;
	color: #333;
}

#sec003 .flex_box .item .more a:before {
	display: block;
	content: "";
	flex-grow: 1;
	height: 1px;
	background: #333;
	margin-right: .8em;
}

#sec003 .flex_box .item .more a::after {
	position: absolute;
	content: "";
	top: 3px;
	right: 0;
	content: "";
	display: block;
	width: 28px;
	height: 20px;
	background-image: url(../assets/img/icon_arrow_b.svg);
	background-size: contain;
	background-repeat: no-repeat;
	transition: .5s;
}



@media screen and (max-width: 767px) {
	#sec003 {
		display: block;
		padding: 7vw 0 12vw;
	}

	#sec003::before {
		background-image: url(../img/bg_03_sp.jpg);
	}

	#sec003 .flex_box {
		width: 80%;
		display: block;
	}


	#sec003 .flex_box .item {
		width: 100%;
		padding: 8vw 5vw;
		margin-top: 5vw;
	}

	#sec003 .flex_box .item .ttl strong {
		font-size: 3.8vw;
	}

	#sec003 .flex_box .item .ttl h2 {
		font-size: 5vw;
		margin-top: 0;
	}

	#sec003 .flex_box .item .img {
		margin-top: 4vw;
	}

	#sec003 .flex_box .item p {
		font-size: 3.2vw;
		letter-spacing: 1px;
	}

	#sec003 .flex_box .item .more {
		margin-top: 5vw;
	}

	#sec003 .flex_box .item .more a {
		font-size: 3vw;
		padding-right: 7vw;
	}


	#sec003 .flex_box .item .more a::after {
		top: 0;
		width: calc(28vw * 0.2);
		height: calc(20vw * 0.2);
		background-size: cover;
	}

}


/* #sec004-------------------------*/
#sec004 {
	padding-top: 140px;
	padding-bottom: 140px;
}

#sec004 .flex_box {
	width: 1300px;
	margin: 0 auto;
}

#sec004 .flex_box .ttl {
	text-align: left;
}

#sec004 .flex_box .ttl strong {
	font-size: 25px;
	font-family: "Zen Kaku Gothic New", serif;
	font-weight: 400;
	letter-spacing: 3px;
}

#sec004 .flex_box .ttl h2 {
	font-size: 32px;
	font-family: "Shippori Mincho", serif;
	font-weight: 400;
	letter-spacing: 6px;
	margin-top: .5em;
}

#sec004 .flex_box .ttl .more {
	text-align: right;
	margin-top: 30px;
}

#sec004 .flex_box .ttl .more a {
	position: relative;
	display: block;
	width: 180px;
	color: #fff;
	font-size: 18px;
	font-family: "Zen Kaku Gothic New", serif;
	font-weight: 400;
	letter-spacing: 3px;
	background-color: #333;
	padding: .6em 0;
	padding-right: 50px;
}

#sec004 .flex_box .ttl .more a::after {
	position: absolute;
	content: "";
	top: 15px;
	right: 10px;
	content: "";
	display: block;
	width: 28px;
	height: 20px;
	background-image: url(../assets/img/icon_arrow_w.svg);
	background-size: contain;
	background-repeat: no-repeat;
}

#sec004 .flex_box .ttl .more a:hover {
	opacity: .7;
	transition: .3s;
}

#sec004 .flex_box ul {
	width: 950px;
	text-align: left;
}

@media screen and (max-width: 1400px) {
	#sec004 .flex_box {
		width: 1200px;
	}

	#sec004 .flex_box ul {
		width: 900px;
	}
}

#sec004 .flex_box ul li {
	position: relative;
	display: flex;
	list-style: none;
	border: 1px solid #333;
	padding: 30px 50px;
}

#sec004 .flex_box ul li:nth-child(n+2) {
	border-top: none;
}

#sec004 .flex_box ul li:hover {
	opacity: 1;
}

#sec004 .flex_box ul li::before {
	position: absolute;
	content: "";
	top: 0;
	bottom: 0;
	margin: auto 0;
	right: 30px;
	content: "";
	display: block;
	width: 28px;
	height: 20px;
	background-image: url(../assets/img/icon_arrow_b.svg);
	background-size: contain;
	background-repeat: no-repeat;
}



#sec004 .flex_box ul li span {
	width: 160px;
	display: block;
	font-size: 18px;
	font-family: "Shippori Mincho", serif;
	font-weight: 400;
	letter-spacing: 2px;
}

#sec004 .flex_box ul li a {
	width: 660px;
	display: block;
	font-size: 19px;
	font-family: "Zen Kaku Gothic New", serif;
	font-weight: 400;
	letter-spacing: 2px;
}

#sec004 .flex_box ul li a:hover {
	color: #333;
}

#sec004 .flex_box ul li::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 50%;
	height: 100%;
	background: #f6f6f6;
	transition: width .3s ease-out;
	z-index: -1;
	opacity: 0;
}

#sec004 .flex_box ul li:hover::after {
	width: 100%;
	opacity: 1;
}




@media screen and (max-width: 767px) {
	#sec004 {
		padding-top: 10vw;
		padding-bottom: 12vw;
	}

	#sec004 .flex_box {
		flex-direction: column;
		width: 80%;
	}

	#sec004 .flex_box .ttl {
		text-align: left;
	}

	#sec004 .flex_box .ttl strong {
		font-size: 5vw;
	}

	#sec004 .flex_box .ttl h2 {
		font-size: 7vw;
		margin-top: 2vw;
	}

	#sec004 .flex_box .ttl .more {
		margin-top: 4vw;
	}

	#sec004 .flex_box .ttl .more a {
		width: 180px;
		font-size: 3.5vw;
		letter-spacing: 3px;
		padding-right: 10vw;
	}

	#sec004 .flex_box .ttl .more a::after {
		right: 2vw;
		width: calc(28vw * 0.15);
		height: calc(20vw * 0.15);
		background-size: cover;
	}

	#sec004 .flex_box ul {
		width: auto;
		margin-top: 10vw;
	}

	#sec004 .flex_box ul li {
		flex-direction: column;
		padding: 5vw 5vw;
	}


	#sec004 .flex_box ul li::before {
		right: 4vw;
		width: calc(28vw * 0.2);
		height: calc(20vw * 0.2);
		background-size: cover;
	}

	#sec004 .flex_box ul li span {
		width: auto;
		font-size: 3vw;
	}

	#sec004 .flex_box ul li a {
		width: 85%;
		font-size: 3.6vw;
	}

}



/* #sec005-------------------------*/
#sec005::before {
	background-image: url(../img/bg_04_pc.jpg);
}

#sec005 .box {
	position: absolute;
	bottom: 100px;
	left: 100px;
	text-align: center;
}

@media screen and (max-width: 1500px) {
	#sec005 .box {
		bottom: 70px;
		left: 70px;
	}
}


#sec005 .box .ttl {
	color: #fff;
}

#sec005 .box .ttl strong {
	display: block;
	font-size: 63px;
	letter-spacing: 6px;
}

#sec005 .box .ttl span {
	display: block;
	font-size: 23px;
	line-height: 2.2em;
	letter-spacing: 2px;
	margin-top: 1em;
	margin-bottom: 160px;
}


.bnrRecruit {
	position: absolute;
	top: 100px;
	right: 30px;
	z-index: 5;
}


.bnrRecruit img {
	width: 550px;
	border: 2px solid #fff;
	box-shadow: 0 0 10px rgba(0, 0, 0, 0.6);
}

@media screen and (max-width: 1500px) {
	.bnrRecruit img {
		width: 500px;
	}
}

@media screen and (max-width: 767px) {
	.bnrRecruit {
		top: 15vw;
		right: 5vw;
		text-align: right;
	}

	.bnrRecruit img {
		width: 95%;

	}
}


@media screen and (max-width: 767px) {
	#sec005::before {
		background-image: url(../img/bg_04_sp.jpg);
	}

	#sec005 .box {
		position: relative;
		bottom: auto;
		left: auto;
		width: 80%;
		margin: 0 auto;
	}

	#sec005 .box .ttl strong {
		font-size: 8vw;
	}

	#sec005 .box .ttl span {
		font-size: 3.6vw;
		line-height: 2em;
		margin-bottom: 30vw;
		letter-spacing: 1px;
	}

}





.border {
	content: '';
	display: inline-block;
	width: 20px;
	height: 1px;
	background-color: #333;
	vertical-align: middle;
}


.c-scrolldown {
	width: 1px;
	height: 60px;
	position: absolute;
	bottom: 20px;
	left: 0;
	right: 0;
	margin: 0 auto;
	overflow: hidden;
	z-index: 5;
}

.c-scrolldown .c-line {
	width: 100%;
	height: 100%;
	display: block;
	background: linear-gradient(to bottom, rgba(255, 255, 255, 1) 50%, rgba(255, 255, 255, 0) 50%);
	background-position: 0 -60px;
	background-size: 100% 200%;
	animation: scrolldown 2.2s cubic-bezier(0.76, 0, 0.3, 1) forwards infinite;
}

@keyframes scrolldown {
	0% {
		background-position: 0 -60px;
	}

	75% {
		background-position: 0 0;
	}

	100% {
		background-position: 0 60px;
	}
}