@charset "utf-8";
main {
		margin-top: 0;
}
header.isFirst {
		background: none;
		opacity: 0;
		transition: opacity 0.8s 1.1s, background 0.4s 0s;
}
.sp_nav {
		opacity: 0;
		transition: opacity 0.8s;
		transition-delay: 1.1s;
}
.sp_nav.isStart {
		opacity: 1;
}
.isFirst .header_inner nav ul li a {
		color: #fff;
}
.isFirst .header_inner nav ul li a .underL::after {
		background: #fff;
}
.header_btn, .header_btn * {
		transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}
.header_btn.isFirst {
		width: 120px;
		height: 120px;
		position: relative;
		top: 20px;
}
.header_btn.isFirst a {
		height: 120px;
		border-radius: 50%;
		display: flex;
		justify-content: center;
		align-items: center;
}
.header_btn.isFirst a::before, .header_btn.isFirst a::after {
		content: '';
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 120px;
		box-sizing: border-box;
}
.header_btn.isFirst a::before {
		background: #fff;
		width: calc(100% + 20px);
		transform: skewX(15deg);
		left: -200px;
		transition: all 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.header_btn.isFirst a span {
		transform: translateY(-1px);
		padding-left: 0;
		padding-top: 10px;
}
.header_btn.isFirst a span::after {
		top: -10px;
		left: calc(50% - 7.5px);
}
@media (hover: hover) {
		.header_btn.isFirst a:hover::before {
				left: 0
		}
		.header_btn.isFirst a:hover span::after {
				background-image: url("../images/icon_mail_red.png")
		}
}
header.isStart {
		opacity: 1;
		pointer-events: all;
		box-shadow: rgba(0, 0, 0, 0.02) 0px 3px 5px;
}
.loading_base {
		background: #FAFAFA;
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100vh;
		display: flex;
		justify-content: center;
		align-items: center;
		z-index: 5000
}
.kv {
		background: #f3f1f1 url(../images/check_bg.png);
		overflow: hidden;
		position: relative;
}
.kv .motion_kv {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		z-index: 3000
}
.st0 {
		fill: none;
		stroke: white;
		stroke-width: 300;
		stroke-linecap: round;
		stroke-linejoin: round;
		stroke-miterlimit: 10;
}
.draw {
		stroke-dasharray: 1000;
		stroke-dashoffset: 1000;
}
.draw.isStart {
		animation: drawAndErase 4.145s forwards;
}
@keyframes drawAndErase {
		0% {
				stroke-dashoffset: 1000;
				stroke-width: 300;
		}
		60% {
				stroke-dashoffset: 0;
				stroke-width: 300;
		}
		75% {
				stroke-dashoffset: 0;
				stroke-width: 300;
		}
		100% {
				stroke-dashoffset: 0;
				stroke-width: 3000;
		}
}
@media(min-width: 841px) {
		.verSP {
				display: none
		}
}
@media(max-width: 840px) {
		.verPC {
				display: none
		}
}
@media(max-width: 840px) {
		.st0 {
				fill: none;
				stroke: white;
				stroke-width: 250;
				stroke-linecap: round;
				stroke-linejoin: round;
				stroke-miterlimit: 10;
		}
}
.drawSP {
		stroke-dasharray: 1000;
		stroke-dashoffset: 1000;
}
.drawSP.isStart {
		animation: drawAndEraseSP 3s forwards;
}
@keyframes drawAndEraseSP {
		0% {
				stroke-dashoffset: 1000;
				stroke-width: 250;
		}
		5% {
				stroke-width: 250;
		}
		55% {
				stroke-dashoffset: 0;
				stroke-width: 250;
		}
		70% {
				stroke-dashoffset: 0;
				stroke-width: 250;
		}
		100% {
				stroke-dashoffset: 0;
				stroke-width: 1500;
		}
}
.kvSlider {
		opacity: 0;
		position: relative;
		transition: opacity 0.8s;
		transition-delay: 0.2s
}
.kvSlider.isStart {
		opacity: 1
}
.swiper img {
		width: 100%;
		height: 100vh;
		object-fit: cover;
}
.kv .swiper-slide {
		position: relative;
}
.kv .swiper-slide::before {
		content: '';
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: rgba(0, 0, 0, 0.2);
		mix-blend-mode: multiply;
		pointer-events: none;
		z-index: 10
}
@keyframes zoomUp {
		0% {
				transform: scale(1.25);
		}
		100% {
				transform: scale(1.05);
		}
}
.kv .swiper-slide-active img, .kv .swiper-slide-duplicate-active img, .kv .swiper-slide-prev img {
		animation: zoomUp 7s linear 0s normal both;
}
.kv .kv_inner {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		z-index: 1000;
}
.kv_inner .kv_catch_gr {
		position: absolute;
		bottom: 60px;
		left: 50px;
}
.kv_catch_en {
		font-family: "Montserrat", sans-serif;
		font-optical-sizing: auto;
		font-style: normal;
		font-weight: 900;
		color: #C3392D;
		color: #fff;
		letter-spacing: 0.07em;
		/* 960-1920 80/150*/
		font-size: clamp(5rem, 7.292vw + 0.625rem, 9.375rem);
		line-height: 0.9;
		margin: 0 0 25px;
}
.kv_catch_en span {
		font-size: 70%;
}
.kv_catch_jp {
		color: #fff;
		font-weight: 700;
		/* 960-1920 36/66*/
		font-size: clamp(2.25rem, 3.125vw + 0.375rem, 4.125rem);
}
.kv .kv_news {
		position: absolute;
		right: 50px;
		bottom: 60px;
		width: 580px;
}
.kv_news_item {
		width: 580px;
		height: 60px;
		border-radius: 60px;
		overflow: hidden;
		display: flex;
}
.kv_news_item_hd {
		height: 60px;
		width: 115px;
		background: #C3392D;
		color: #fff;
		display: flex;
		justify-content: center;
		align-items: center;
		font-family: "Montserrat", sans-serif;
		font-optical-sizing: auto;
		font-style: normal;
		font-size: 17px;
		font-weight: 700;
		letter-spacing: 0.07em;
}
.kv_news_item_cont {
		height: 60px;
		background: #fff;
		flex: 1;
		display: flex;
		align-items: center;
		padding-left: 25px;
}
.kv_news_item_cont a {
		color: #222;
		text-decoration: none;
		display: block;
		position: relative;
		padding-right: 30px;
		box-sizing: border-box;
		width: 100%;
}
.kv_news_item_cont a::after {
		content: '';
		display: block;
		position: absolute;
		top: calc(50% - 6px);
		right: 30px;
		width: 12px;
		height: 13px;
		background-repeat: no-repeat;
		background-position: 0 0;
		background-size: 12px;
		background-image: url("../images/interview_tile_arw_red.png")
}
@media (hover: hover) {
		.kv_news_item_cont a:hover {
				color: #C3392D;
		}
}
.kv_news_item_cont dl {
		display: flex;
		align-items: center;
}
.kv_news_item_cont dt {
		margin-right: 15px;
}
.kv_news_item_cont dd {
		flex: 1
}
@media(max-width: 1200px) {
		.kv_inner .kv_catch_gr {
				bottom: 40px;
				left: 30px;
		}
		.kv_catch_en {
				font-size: 7vw;
		}
		.kv_catch_jp {
				font-size: 3vw;
		}
}
@media(max-width: 840px) {
		.kv_inner .kv_catch_gr {
				bottom: 180px;
				left: 30px;
		}
		.kv_catch_en {
				font-size: 86px;
		}
		.kv_catch_jp {
				font-size: 38px;
		}
		.kv .kv_news {
				right: inherit;
				left: 30px;
				bottom: 80px;
				width: calc(100% - 60px);
		}
		.kv_news_item {
				width: 100%;
		}
}
@media(max-width: 767px) {
		.kv {
				height: 160vw !important
		}
		.kv_inner .kv_catch_gr {
				bottom: 120px;
				left: 20px;
		}
		.kv_catch_en {
				font-size: 42px;
				margin: 0 0 13px;
				line-height: 1;
		}
		.kv_catch_jp {
				font-size: 24px;
				color: #fff;
		}
		.kv .kv_news {
				left: 20px;
				bottom: 30px;
				width: calc(100% - 40px);
		}
		.kv_news_item {
				height: 60px;
		}
		.kv_news_item_hd {
				height: 60px;
				width: 70px;
				font-size: 13px;
		}
		.kv_news_item_cont {
				height: 60px;
				padding-left: 10px;
		}
		.kv_news_item_cont a {
				padding-right: 30px;
		}
		.kv_news_item_cont a::after {
				right: 15px;
		}
		.kv_news_item_cont dl {
				display: block;
				font-size: 14px;
		}
		.kv_news_item_cont dt {
				margin: 0;
		}
		.kv_news_item_cont dd {
				display: -webkit-box;
				-webkit-box-orient: vertical;
				overflow: hidden;
				text-overflow: ellipsis;
				-webkit-line-clamp: 1;
				line-height: 1.8;
		}
}
/* ================ */
.kv_catch_en {
		opacity: 0;
		transition: opacity 0.8s;
		transition-delay: 0.5s;
}
.kv_catch_jp {
		opacity: 0;
		transition: opacity 0.8s;
		transition-delay: 0.7s;
}
.kv_news {
		opacity: 0;
		transition: opacity 0.8s;
		transition-delay: 0.95s;
}
.isStart .kv_catch_en, .isStart .kv_catch_jp {
		opacity: 1
}
.isStart .kv_news {
		opacity: 1
}