@charset "utf-8";
body.no_scroll {
		height: 100vh !important;
		overflow: hidden;
}
.loading_base {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100vh;
		background: #c8d9af;
		z-index: 9999
}
.loading_logo {
		width: 160px;
		position: absolute;
		top: calc(50% - 100px);
		left: 0;
		right: 0;
		bottom: 0;
		margin: auto;
		background-repeat: no-repeat;
		background-position: 0 0;
		background-size: 100%;
		background-image: url("../images/loading_logo_back.png");
		opacity: 0;
		animation: fadeIn 0.3s linear forwards;
}
@keyframes fadeIn {
		0% {
				opacity: 0;
		}
		100% {
				opacity: 1;
		}
}
.loading_logo svg {
		width: 160px;
		height: auto;
}
.loading_logo img {
		width: 100%;
		height: auto;
}
#mask .st0 {
		fill: none;
		stroke: #fff;
		stroke-width: 10; /*線の太さを指定する*/
		stroke-linecap: round;
		stroke-linejoin: round;
		stroke-miterlimit: 10;
		stroke-dasharray: 1000; /* 線の間隔を指定する */
		stroke-dashoffset: 1500; /* 線の位置を指定する */
}
@media(max-width: 767px) {
		.loading_base {
				background-size: 1000px;
		}
}
.kv_section {
		background-repeat: no-repeat;
		background-position: center center;
		background-size: cover;
		background-image: url("../images/kv_bg.jpg");
		box-sizing: border-box;
		position: relative;
		padding-top: 100px;
		height: 1030px;
}
#layer {
		height: 1000px;
}
.kv {
		aspect-ratio: 5 / 2.9;
		position: relative;
		z-index: 1;
		width: 1290px;
		margin: 0 auto;
}
.kv .kv_photo {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		display: flex;
		justify-content: center;
		align-items: center;
}
.kv_logo {
		width: 455px;
		margin: 0 auto 35px;
		position: relative;
		z-index: 10
}
.kv_logo img {
		width: 100%;
		height: auto;
}
.kv_logo .kv_logo-2 {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
}
.kv_lead {
		text-align: center;
		font-size: 18px;
		font-weight: 700;
		color: #fff;
		line-height: 2.0;
		position: relative;
		z-index: 10
}
@media(min-width: 1601px) {
		.kv_lead {
				font-size: 22px;
		}
}
@media(max-width: 1300px) {
		.kv_logo {
				width: 360px;
				margin: 0 auto 25px;
		}
		.kv_lead {
				font-size: 16px;
		}
}
@media (max-width: 1100px) {
		.kv_logo {
				width: 230px;
				margin: 0 auto 25px;
		}
}
@media(max-width: 767px) {
		.kv_logo {
				width: 220px;
				margin: 0 auto 40px;
		}
		.kv_lead {
				font-size: 13px;
		}
}
#layer {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 1250px;
		z-index: 10
}
#layer .parts, .kv_section .parts {
		position: absolute;
		pointer-events: none;
		top: 0;
		left: 0;
		width: 100%;
		height: 1250px;
}
.parts::after {
		content: '';
		display: block;
		position: absolute;
		top: 0;
		left: calc(calc(100vw - 2660px) * 0.5);
		width: 2660px;
		height: 100%;
		background-repeat: no-repeat;
		background-position: center top;
		background-size: 2660px;
}
.kv_section .parts.parts-1::after {
		background-image: image-set(url("../images/kv_parts-1_pc.webp") type("image/webp"), url("../images/kv_parts-1_pc.png") type("image/png"));
}
.kv_section .parts.parts-2::after {
		background-image: image-set(url("../images/kv_parts-2_pc.webp") type("image/webp"), url("../images/kv_parts-2_pc.png") type("image/png"));
		z-index: 2
}
.kv_section .parts.parts-3::after {
		background-image: image-set(url("../images/kv_parts-3_pc.webp") type("image/webp"), url("../images/kv_parts-3_pc.png") type("image/png"));
		z-index: 3
}
.kv_section .parts.parts-4::after {
		background-image: image-set(url("../images/kv_parts-4_pc.webp") type("image/webp"), url("../images/kv_parts-4_pc.png") type("image/png"));
		z-index: 4
}
@media(max-width: 1600px) {
		.kv_section {
				padding-top: 7vw;
				height: 60vw;
		}
		#layer {
				height: 60vw;
		}
		.kv {
				width: 73%;
		}
		#layer .parts, .kv_section .parts {
				background-size: 100%;
				width: 100%;
				height: 71vw;
		}
		.parts::after {
				left: -350px;
				width: calc(100vw + 700px);
				background-size: calc(100vw + 700px);
		}
}
@media(max-width: 1280px) {
		.kv_section {
				padding-top: 80px;
		}
		.parts::after {
				left: -25vw;
				width: 150vw;
				background-size: 150vw;
		}
}
@media(max-width: 960px) {
		.kv_section {
				height: 61vw;
				padding-top: 70px;
		}
		#layer {
				height: 61vw;
		}
		.kv {
				width: 70%;
				aspect-ratio: 5 / 2.8;
		}
		.kv::before {
				bottom: -30px;
				left: calc(50% - 47px);
				width: 94px;
				height: 24px;
				background-size: 94px;
		}
		#layer .parts, .kv_section .parts {
				height: 90vw;
		}
		.parts::after {
				left: -25vw;
				width: 150vw;
				background-size: 150vw;
		}
}
@media(max-width: 767px) {
		.kv_section {
				padding-top: 80px;
				padding-left: 30px;
				padding-right: 30px;
				height: 180vw;
				background-image: url("../images/kv_bg_sp.jpg");
		}
		#layer {
				height: 180vw;
		}
		.kv {
				width: 100%;
				aspect-ratio: 10 / 14;
		}
		#layer .parts, .kv_section .parts {
				height: 198vw;
				z-index: 10
		}
		.parts::after {
				display: none
		}
		#layer div.parts {
				transform: translateX(0) !important
		}
		.kv_section .parts {
				background-repeat: no-repeat;
				background-position: center center;
				background-size: cover;
		}
		.kv_section .parts.parts-1 {
				background-image: image-set(url("../images/kv_parts-1_sp.webp") type("image/webp"), url("../images/kv_parts-1_sp.png") type("image/png"));
				z-index: 10
		}
		.kv_section .parts.parts-2 {
				background-image: image-set(url("../images/kv_parts-2_sp.webp") type("image/webp"), url("../images/kv_parts-2_sp.png") type("image/png"));
				z-index: 11
		}
		.kv_section .parts.parts-3 {
				background-image: image-set(url("../images/kv_parts-3_sp.webp") type("image/webp"), url("../images/kv_parts-3_sp.png") type("image/png"));
				z-index: 12
		}
		.kv_section .parts.parts-4 {
				background-image: url("../images/kv_parts-4_sp.png");
				background-position: center bottom;
				z-index: 13;
		}
}
/* =========== */
.kv_photo .kvSlider {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		z-index: 0
}
.kvSlider .swiper {
		height: 100%
}
.kvSlider .swiper-slide {
		background-repeat: no-repeat;
		background-position: center center;
		background-size: cover;
		height: 100%;
		border-radius: 80px;
		overflow: hidden;
		position: relative;
}
.kvSlider .swiper-slide::after {
		content: '';
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: rgba(0, 0, 0, 0.2);
		mix-blend-mode: multiply
}
@media(max-width: 960px) {
		.kvSlider .swiper-slide {
				border-radius: 40px;
		}
}
.kvSlider .swiper-slide::before {
		content: '';
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background-repeat: no-repeat;
		background-position: center center;
		background-size: cover;
}
.bg-1::before {
		background-image: url("../images/kv_0_pc.jpg")
}
.bg-2::before {
		background-image: url("../images/kv_1_pc.jpg")
}
.bg-3::before {
		background-image: url("../images/kv_2_pc.jpg?250421")
}
.bg-4::before {
		background-image: url("../images/kv_3_pc.jpg?2504")
}
.kv_section .swiper-horizontal > .swiper-pagination-bullets, .kv_section .swiper-pagination-bullets.swiper-pagination-horizontal, .kv_section .swiper-pagination-custom, .kv_section .swiper-pagination-fraction {
		bottom: 140px;
		z-index: 50
}
@media(max-width: 1600px) {
		.kv_section .swiper-horizontal > .swiper-pagination-bullets, .kv_section .swiper-pagination-bullets.swiper-pagination-horizontal, .kv_section .swiper-pagination-custom, .kv_section .swiper-pagination-fraction {
				bottom: calc(10vw - 15px);
		}
}
@media(max-width: 1280px) {
		.kv_section .swiper-horizontal > .swiper-pagination-bullets, .kv_section .swiper-pagination-bullets.swiper-pagination-horizontal, .kv_section .swiper-pagination-custom, .kv_section .swiper-pagination-fraction {
				bottom: calc(10vw - 25px);
		}
}
@media(max-width: 960px) {
		.kv_section .swiper-horizontal > .swiper-pagination-bullets, .kv_section .swiper-pagination-bullets.swiper-pagination-horizontal, .kv_section .swiper-pagination-custom, .kv_section .swiper-pagination-fraction {
				bottom: calc(12vw - 15px);
		}
}
@media(max-width: 767px) {
		.kv_section .swiper-horizontal > .swiper-pagination-bullets, .kv_section .swiper-pagination-bullets.swiper-pagination-horizontal, .kv_section .swiper-pagination-custom, .kv_section .swiper-pagination-fraction {
				bottom: calc(38vw - 20px);
		}
}
.kvSlider .swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet, .kv_section .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
		margin: 0 10px;
}
.kv_section .swiper-pagination-bullet {
		width: 12px;
		height: 12px;
		box-sizing: border-box;
		border-radius: 50%;
		background: #fff;
		opacity: 1;
		transition: opacity 0.4s;
}
@media(max-width: 767px) {
		.kv_section .swiper-pagination-bullet {
				width: 6px;
				height: 6px;
		}
		.kvSlider .swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet, .kv_section .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
				margin: 0 5px;
		}
}
.kv_section .swiper-pagination-bullet-active {
		opacity: 1;
		background: #9FC928;
}
@media(max-width: 767px) {
		.bg-1::before {
				background-image: url("../images/kv_0_sp.jpg")
		}
		.bg-2::before {
				background-image: url("../images/kv_1_sp.jpg")
		}
		.bg-3::before {
				background-image: url("../images/kv_2_sp.jpg?250421")
		}
		.bg-4::before {
				background-image: url("../images/kv_3_sp.jpg?2504")
		}
}