@charset "utf-8";



/* --------------------------------------------------------- */
/* KV */

.kv {
	--speed: 1000ms;
	--delay: 8500ms;
	--width: 40px;
	
	position: relative;
	width: 100%;
	height: calc(100vh - 80px);
	min-height: 500px;
	margin-bottom: 20px;
	overflow: hidden;
}

.ios .kv {
	height: calc(100vh - 180px);
}

.kv-inner {
	position: relative;
	width: 100%;
	height: 100%;
	transition-property: transform;
	transition-duration: var(--speed);
}

@media screen and (min-width: 1280px) {
	.kv {
		--width: 15vw;
		
		height: calc(100vh - 120px);
		min-height: 900px;
		margin-top: 0;
		margin-bottom: 160px;
	}
	
	.kv-inner {
		position: relative;
		width: calc(100% + var(--width));
		left: calc(var(--width) / 2 * -1);
		transition-property: transform;
		transition-duration: var(--speed);
	}
	
	/* slideChange */
	.slideChange .kv-inner {
		transition-duration: calc(var(--speed) - 0.2s);
		transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
		transition-delay: 0.2s;
		transform: translate3d(calc(var(--width) / 2), 0, 0);
	}
	
	/* transitionEnd */
	.transitionEnd .kv-inner {
		transition-duration: var(--delay);
		transition-timing-function: linear;
		transform: translate3d(calc(var(--width) / 3 * -1), 0, 0);
		transition-delay: 0s;
	}
	
	/* swiping transition */
	.slideChange.touchMove .kv-inner {
		transition-timing-function: cubic-bezier(.08,.82,.17,1);
	}
}

/* init ---------- */

.kv .swiper-container {
	opacity: 0;
}

.kv .swiper-container.init {
	opacity: 1;
}

/* ---------- */

/* .swiper-slide */



.kv__item {
	position: relative;
	transform: translate3d(0, 0, 0);
	box-sizing: border-box;
	overflow: hidden;
	width: calc(90% - 0px);
	height: 100%;
}


@media screen and (min-width: 1280px) {
	.kv__item {
		width: calc(80%);
	}
}


/* ---------- */


.kv__bg {
	position: relative;
	width: 100%;
	height: 60%;
	z-index: 1;
	overflow: hidden;
	transition: 3s cubic-bezier(.77,0,.18,1);
	transition-property: width;
	border-radius: 0;
	background-color: rgb(244, 243, 235);
}

/* swiping transition */
.slideChange.touchMove .kv__bg {
	transition-timing-function: cubic-bezier(.08,.82,.17,1);
}

.kv__bg-inner {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	overflow: hidden;
	border-radius: 0;
}

.kv__bg-inner:before {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	content: "";
	z-index: 1;
}

@keyframes gradient {
	0% {
		background-position: 0% 0%;
	}
	100% {
		background-position: 400% 0%;
	}
}

@media screen and (min-width: 1280px) {
	.kv__bg {
		height: 100%;
	}
	
	.init .kv__bg-inner:before {
		background-image: linear-gradient(110deg, rgba(255, 255, 255,1) 0%, rgba(255, 255, 255,1) 60%, rgba(255, 255, 255,0) 80%);
		background-size: 250% 100%;
		background-repeat: no-repeat;
		animation: gradient 5s cubic-bezier(.77,0,.18,1) 1;
		animation-fill-mode: forwards;
	}
	
	.msie .kv__bg-inner {
		background-size: cover;
		background-repeat: no-repeat;
		background-position: center;
	}
	
	.msie .kv__bg-inner img {
		display: none;
	}
	
	.kv__bg .img-in-corner::before,
	.kv__bg .img-in-corner::after {
		width: 35px;
		height: 35px;
	}
}

.kv__bg-inner img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	/*-webkit-clip-path: circle(0% at -10% -10%);
	        clip-path: circle(0% at -10% -10%);*/
}

.init .kv__bg img {
	opacity: 1;
	/*-webkit-clip-path: circle(142% at 0% 0%);
	        clip-path: circle(142% at 0% 0%);*/
	transition: 3s cubic-bezier(.77,0,.18,1);
	
	--delay: 0.5s;
	--base-time: 0.25s;
}



.init .kv__item:nth-child(1) .kv__bg-inner:before { animation-delay: calc(var(--base-time) + var(--delay) * 0);}
.init .kv__item:nth-child(2) .kv__bg-inner:before { animation-delay: calc(var(--base-time) + var(--delay) * 0);}
.init .kv__item:nth-child(3) .kv__bg-inner:before { animation-delay: calc(var(--base-time) + var(--delay) * 0);}
.init .kv__item:nth-child(4) .kv__bg-inner:before { animation-delay: calc(var(--base-time) + var(--delay) * 0);}
.init .kv__item:nth-child(5) .kv__bg-inner:before { animation-delay: calc(var(--base-time) + var(--delay) * 1);}
.init .kv__item:nth-child(6) .kv__bg-inner:before { animation-delay: calc(var(--base-time) + var(--delay) * 2);}
.init .kv__item:nth-child(7) .kv__bg-inner:before { animation-delay: calc(var(--base-time) + var(--delay) * 3);}
.init .kv__item:nth-child(8) .kv__bg-inner:before { animation-delay: calc(var(--base-time) + var(--delay) * 4);}
.init .kv__item:nth-child(9) .kv__bg-inner:before { animation-delay: calc(var(--base-time) + var(--delay) * 5);}

.init .kv__item:nth-child(1) .kv__bg img { transition-delay: calc(var(--base-time) + var(--delay) * 0);}
.init .kv__item:nth-child(2) .kv__bg img { transition-delay: calc(var(--base-time) + var(--delay) * 0);}
.init .kv__item:nth-child(3) .kv__bg img { transition-delay: calc(var(--base-time) + var(--delay) * 0);}
.init .kv__item:nth-child(4) .kv__bg img { transition-delay: calc(var(--base-time) + var(--delay) * 0);}
.init .kv__item:nth-child(5) .kv__bg img { transition-delay: calc(var(--base-time) + var(--delay) * 1);}
.init .kv__item:nth-child(6) .kv__bg img { transition-delay: calc(var(--base-time) + var(--delay) * 2);}
.init .kv__item:nth-child(7) .kv__bg img { transition-delay: calc(var(--base-time) + var(--delay) * 3);}
.init .kv__item:nth-child(8) .kv__bg img { transition-delay: calc(var(--base-time) + var(--delay) * 4);}
.init .kv__item:nth-child(9) .kv__bg img { transition-delay: calc(var(--base-time) + var(--delay) * 5);}


.kv__bg-icon {
	position: absolute;
	right: 0;
	bottom: 0;
	top: auto;
	display: block;
	width: 40px;
	padding: 10px 0 10px 10px;
	box-sizing: border-box;
	border-radius: 15px 0 0 0;
	background-color: #fff;
	z-index: 3;
}

.kv__bg-icon::before,
.kv__bg-icon::after {
	position: absolute;
	display: block;
	width: 20px;
	height: 20px;
	content: "";
	background-image: var(--svg-round-out-corners-RB-wt);
	background-size: cover;
}

.kv__bg-icon::before {
	left: -20px;
	top: auto;
	bottom: 0;
}

.kv__bg-icon::after {
	top: -20px;
	right: 0;
	bottom: auto;
}

.kv__bg-icon .in-corner {
	pointer-events: none;
	position: absolute;
	left: 0;
	top: 0;
	display: block;
	width: 100%;
	height: 100%;
}

.kv__bg-icon .in-corner::before {
	position: absolute;
	display: block;
	top: 0;
	left: 0;
	width: 20px;
	height: 20px;
	content: "";
	background-image: var(--svg-round-in-corners-RB-wt);
	background-size: cover;
}

.kv__bg-icon .icon {
	position: relative;
	top: 0;
	left: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 30px;
}

.kv__bg-icon .icon svg {
	display: block;
	margin: auto;
}

.kv__bg-icon .label {
	writing-mode: tb-rl;
	writing-mode: vertical-rl;
	font-feature-settings: normal;
	display: block;
	overflow: hidden;
	width: 2.4rem;
	height: 0;
	white-space: nowrap;
	opacity: 0;
	transition-property: height, opacity;
	transition-duration: 0.5s;
	transition-timing-function: cubic-bezier(.77,0,.18,1);
	font-size: 1.0rem;
}

.transitionEnd [class*='active'] .kv__bg,
.transitionStart [class*='active'] .kv__bg {
	
}

.transitionEnd [class*='active'] a:hover .kv__bg-icon .label {
	height: 80px;
	opacity: 1;
	transition-delay: 0s, 0.25s;
}


@media screen and (min-width: 1280px) {
	
	.transitionEnd [class*='active'] .kv__bg,
	.transitionStart [class*='active'] .kv__bg {
		width: 70%;
	}
	
	.msie .transitionEnd .kv__bg,
	.msie .transitionStart .kv__bg {
		width: 70% !important;
	}
	
}




/* ---------- */


.kv__txt-container {
	position: absolute;
	top: auto;
	bottom: 0;
	left: auto;
	right: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: 5;
	padding: 0;
	width: 100%;
	height: 40%;
	text-align: center;
}

.kv__txt-container-inner {
	display: flex;
	flex-direction: column;
	justify-content: center;
	width: 100%;
	height: auto;
	padding: 0;
	box-sizing: border-box;
	opacity: 0;
	transform: translate3d(0, 0, 0);
	transition: var(--speed) linear;
	transition-property: opacity, transform;
}


.transitionEnd [class*='active'] .kv__txt-container-inner {
	opacity: 1;
	transform: translate3d(0, 0, 0);
	transition-timing-function: linear;
	transition-duration: 0.5s;
}

.msie .kv__txt-container-inner {
	transform: translate3d(0, 0, 0) !important;
}


.kv__txt-container-inner > * {
	margin: 0;
	letter-spacing: 0.25em;
}

.kv__subttl {
	position: relative;
	top: 0;
	align-self: center;
	height: auto;
	margin-bottom: 8px;
	padding: 0 5px;
	font-size: 1.1rem;
	font-weight: bold;
	text-indent: 0.1em;
	border: 0.5px solid rgba(0,0,0,0);
	transition: border 0.5s ease-out;
}

.transitionEnd [class*='active'] .kv__subttl {
	border-color: rgba(0,0,0,0.8);
}

.kv__ttl {
	position: relative;
	top: 0;
	line-height: 1.5;
	font-size: 1.2rem;
}

.kv__txt-container .-s,
.kv__txt-container .-m,
.kv__txt-container .-l {
	font-size: 2.2rem;
}

.kv .small {
	font-size: 80%;
}


.kv__read {
	display: block;
	position: relative;
	top: 20px;
	font-size: 1.1rem;
	font-weight: bold;
	letter-spacing: 0.2em;
}

.kv__read > *:last-child {
	margin-left: 0;
}

.kvt {
	display: block;
	overflow: hidden;
	margin-left: 0.2em;
}


@media screen and (min-width: 768px) {
	.kv__txt-container .-s,
	.kv__txt-container .-m,
	.kv__txt-container .-l {
		font-size: 5rem;
	}
}


@media screen and (min-width: 1280px) {
	
	.kv__txt-container {
		align-items: flex-start;
		align-items: flex-end;
		top: 0;
		bottom: auto;
		width: auto;
		min-width: 30%;
		height: 100%;
		text-align: left;
	}
	
	.kv__txt-container-inner {
		width: auto;
		padding: 100px 0;
		transform: translate3d(-80px, 0, 0);
		opacity: 1;
		writing-mode: tb-rl;
		writing-mode: vertical-rl;
		font-feature-settings: normal;
	}
	
	.transitionEnd [class*='active'] .kv__txt-container-inner {
		transform: translate3d(30px, 0, 0);
		transition-timing-function: linear;
		transition-duration: var(--speed), var(--delay);
	}
	
	.kv__ttl {
		margin-left: 20px;
		font-size: 1.6rem;
	}
	
	.contrast-mode--normal .kv__ttl {
		transform: scaleY(0.88);
		transform-origin: 0 0;
		letter-spacing: 0.05em;
	}
	
	.kv__txt-container .-s  { font-size: 5rem; }
	.kv__txt-container .-m  { font-size: 7rem; }
	.kv__txt-container .-l  { font-size: 9rem; }
	
	.kv__subttl {
		margin-left: 20px;
		padding: 10px 0;
		font-size: 1.3rem;
		align-self: flex-start;
	}
	
	.kvt-inner {
		opacity: 1;
		display: inline-block;
		transform: translateX(-100%);
		transition: 1s cubic-bezier(.22,.61,.36,1) 1s;
		transition-property: transform, opacity;
		backface-visibility: visible;
	}
	
	.kvt:nth-child(1) .kvt-inner { transition-delay: 1.0s; }
	.kvt:nth-child(2) .kvt-inner { transition-delay: 1.1s; }
	.kvt:nth-child(3) .kvt-inner { transition-delay: 1.2s; }
	.kvt:nth-child(4) .kvt-inner { transition-delay: 1.3s; }
	.kvt:nth-child(5) .kvt-inner { transition-delay: 1.4s; }
	
	.transitionEnd [class*='active'] .kvt-inner,
	.transitionStart [class*='active'] .kvt-inner {
		transform:  translateX(0);
	}
	
	.transitionEnd [class*='prev'] .kvt-inner,
	.transitionStart [class*='prev'] .kvt-inner {
		transition-delay: 0s;
	}
	
	.kv__read {
		display: block;
		top: 80px;
		font-size: 1.65rem;
	}
	
	.contrast-mode--normal .kv__read {
		transform: scaleY(0.88);
		transform-origin: 0 0;
		letter-spacing: 0.075em;
	}
	
	.msie .kv__txt-container-inner {
		transform: translateX(0);
	}
	.msie .kvt-inner {
		transform: translateX(0);
	}
	
}

@media screen and (min-width: 1440px) {
	
	.kv__txt-container .-s  { font-size: 9rem; }
	.kv__txt-container .-m  { font-size: 11rem; }
	.kv__txt-container .-l  { font-size: 13rem; }
	
	.kv__txt-container .-pcxs  { font-size: 7rem; }
}


/* Anchor ---------- */


.kv__item-anchor {
	display: block;
	position: relative;
	overflow: hidden;
	width: 100%;
	height: calc(100% - 40px);
	margin: 0 auto;
	box-sizing: border-box;
	pointer-events: none;
}

.swiper-slide-active .kv__item-anchor {
	pointer-events: auto
}

@media screen and (min-width: 1280px) {
	
	.kv__bg:before {
		position: absolute;
		left: 0;
		top: 0;
		display: block;
		content: "";
		width: 100%;
		height: 100%;
		z-index: 5;
		border: 3px solid rgba(0,0,0,0);
		transition: border 0.25s ease-in-out;
		box-sizing: border-box;
		border-radius: 13px;
	}
	
	.swiper-slide-active .kv__bg:before {
		pointer-events: auto;
		border-color: currentColor;
	}
	
	.contrast-mode--normal .kv__bg:before {
		z-index: 2;
		transition: box-shadow 0.25s ease-in-out;
		border: none;
		/*box-shadow: inset 0 0 0 rgba(0,0,0,0);*/
	}
	
	.contrast-mode--normal .swiper-slide-active a:hover .kv__bg:before {
		/*box-shadow: inset 0 0 20px rgba(0,0,0,0.25);*/
	}
	
	.swiper-slide-active a:hover .kv__bg-icon {
		
	}
	
}



/* Swiper ------------------------------------------------------------------ */

.swiper-container {
	position: relative;
	height: 100%;
	margin: 0 auto;
}

.swiper-wrapper {
	height: calc(100% - 0px);
	margin: 0;
	transition-timing-function: cubic-bezier(.65,.05,.36,1);
}

/* swiping transition */
.slideChange.touchMove .swiper-wrapper {
	transition-timing-function: cubic-bezier(.08,.82,.17,1);
}


/* swiper-ui --------------------------------------------------------------- */

.swiper-ui {
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	width: 100%;
	height: 60px;
	height: 100%;
	width: 100% - 0;
	margin: auto;
	pointer-events: none;
	box-sizing: border-box;
}

.swiper-ui > * {
	pointer-events: auto;
}

/* ----- */

.swiper-button-next,
.swiper-button-prev {
	display: flex;
	align-items: center;
	width: auto;
	height: auto;
	z-index: 10;
	cursor: pointer;
	background: transparent;
	border-radius: 5px;
	padding: 0;
	border: none !important;
	outline: none;
}

.swiper-button-prev,
.swiper-container-rtl .swiper-button-next {
	top: auto;
	bottom: 0;
	right: auto;
	left: 0;
	margin: auto;
}

.swiper-button-next,
.swiper-container-rtl .swiper-button-prev {
	top: auto;
	bottom: 0;
	right: 0;
	left: auto;
	margin: auto;
}


.swiper-button-next svg,
.swiper-button-prev svg {
	width: 36px;
	height: 36px;
}

.swiper-container-horizontal > .swiper-pagination-bullets,
.swiper-pagination-custom, .swiper-pagination-fraction {
	bottom: 0px;
}

/* ----- */

.swiper-pagination {
	top: auto;
	left: 0;
	right: 0;
	bottom: 0;
	margin: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 40px;
	pointer-events: none;
	color: rgba(50,50,50,1);
}

.swiper-pagination-bullet {
	position: relative;
	display: inline-block;
	width: 20px;
	height: 1px;
	margin: 0 10px;
	padding: 10px 5px;
	border-radius: 0;
	background: transparent;
	border: none !important;
	opacity: 0.6;
	transition: all 0.2s ease-out;
	pointer-events: auto;
	outline: none;
}

.swiper-pagination-bullet:before,
.swiper-pagination-bullet:after {
	position: absolute;
	display: block;
	left: 0;
	top: 0;
	bottom: 0;
	content: "";
	width: 100%;
	height: 1px;
	margin: auto;
	opacity: 0;
	transition: 0.3s ease-in-out;
	transition-property: opacity, height;
	box-sizing: border-box;
	border-radius: 5px;
	background-image: var(--svg-v-line_2-bk);
}

.msie .swiper-pagination-bullet:before,
.msie .swiper-pagination-bullet:after {
	background-color: rgba(0,0,0,0.5);
}

.swiper-pagination-bullet:before {
	
}

.swiper-pagination-bullet:after {
	top: 0;
	opacity: 1;
}

.swiper-pagination-bullet-active {
	border: none !important;
	opacity: 1;
}

.swiper-pagination-bullet-active:after {
	height: 3px;
	opacity: 0.25;
}

.swiper-pagination-bullet-active:before {
	opacity: 1;
	height: 6px;
	animation: bulletBar var(--delay) 1 linear 0s;
	animation-fill-mode: forwards;
	transition: opacity 0.3s ease;
}

@keyframes bulletBar {
	0% {
		width: 0;
	}
	100% {
		width: 100%;
	}
}

@media screen and (min-width: 1280px) {
	.swiper-ui {
		bottom: 0;
	}
	
	.swiper-button-next,
	.swiper-button-prev {
		height: calc(100% - 40px);
		margin: auto;
		padding: 0 30px;
		transition: 0.2s ease-out;
		transition-property: background, border;
		border-radius: 0;
		background-repeat: no-repeat;
	}
	
	.swiper-button-next {
		inset: 0 0 auto auto;
	}
	
	.swiper-button-prev {
		inset: 0 auto auto 0;
	}
	
	.swiper-button-next::before,
	.swiper-button-prev::before {
		position: absolute;
		inset: 0;
		display: block;
		content: "";
		width: 100%;
		height: 100%;
		margin: auto;
		opacity: 0;
		transition: 0.2s ease;
	}
	
	.swiper-button-next::before {
		background-image: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.8) 100%);
	}
	
	.swiper-button-next:hover::before {
		opacity: 1;
	}
	
	.swiper-button-prev::before {
		background-image: linear-gradient(90deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0) 100%);
	}
	
	.swiper-button-prev:hover::before {
		opacity: 1;
	}
	
	.swiper-button-next svg,
	.swiper-button-prev svg {
		width: 46px;
		height: 46px;
		stroke-width: 0.7;
	}
	
	.swiper-pagination {
		right: 60px;
		justify-content: flex-end;
	}
	
	.swiper-pagination-bullet {
		width: 50px;
		border-style: solid;
		margin: 0 5px;
	}
	
	.swiper-container-horizontal > .swiper-pagination-bullets,
	.swiper-pagination-custom, .swiper-pagination-fraction {
		bottom: 5px;
	}
	
}
