@charset "utf-8";

.main-wrapper {
	padding-top: 0px;
	box-sizing: border-box;
	opacity: 0;
}

.domContentLoaded .main-wrapper {
	opacity: 1;
	transition: opacity 0.5s ease;
}

/* --------------------------------------------------------- */
/* Key visual */

.kv {
	position: relative;
	height: calc(100vh - 0px);
	overflow: hidden;
	font-weight: bold;
	margin: 0;
	color: #fff;
	background-color: #768ec6;
}

@media all and (min-width: 768px) {
	.kv {
		height: calc(100vh + 110px);
	}
}



.kv__indicator {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	width: 25px;
	height: 25px;
	opacity: 1;
	margin: auto;
	background-color: #768ec6;
}

.kv.-start .kv__indicator {
	opacity: 0;
	transition: opacity 0.5s ease-out 1.5s;
}

.kv__indicator__inner {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	height: 100%;
	display: block;
	margin: auto;
	z-index: 9999;
	background-image: url(../img/global/indicator_w.png);
	background-repeat: no-repeat;
	background-position: left top;
	background-size: 25px 300px;
	animation: indicatorAnimation 0.35s steps(12) infinite;
}

@media all and (min-width: 768px) {
	.kv__indicator {
		top: -280px;
	}
}

@media all and (min-width: 1280px) {
	
}


.kv__ttl-container {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: calc(100% - 40px);
	height: 100%;
	margin: 0 auto;
	padding-top: 0;
	z-index: 2;
	opacity: 0;
	
	font-size: 8vw;
	font-weight: normal;
	line-height: 1.3;
	text-align: center;
	transition: opacity 1s ease-out 0.5s;
}

.kv__ttl-container-inner {
	max-width: 22em;
	margin: 0;
}

.kv__ttl-container-inner > * {
	margin-top: 20px;
	margin-bottom: 0;
}

.kv__ttl-container-inner > *:first-child {
	margin-top: 0;
}

.load .kv__ttl-container {
	opacity: 1;
}

@media all and (min-width: 768px) {
	.kv__ttl-container-inner {
		margin-top: -180px;
	}
	
	.kv__ttl-container-inner > * {
		margin-top: 40px;
	}
}

@media all and (min-width: 1280px) {
	
}



.kv__ttl {
	font-weight: bold;
	font-feature-settings: "palt";
	font-family: var(--font-serif);
}

.kv__ttl.main {
	font-weight: inherit;
	line-height: inherit;
	transform: scaleX(0.92);
}

.kv__ttl.sub {
	font-weight: inherit;
	font-size: 1.3rem;
	line-height: 1.8;
}

.kv__ttl-inner {
	display: block;
	overflow: hidden;
}

@media all and (min-width: 768px) {
	
	.kv__ttl.main {
		font-size: 5.5rem;
	}
	
	.kv__ttl.sub {
		font-size: 1.6rem;
	}
}


@media all and (min-width: 1280px) {
	
	.kv__ttl {
		
	}
	
	.kv__ttl.main {
		transform: scaleX(0.92);
		font-size: 7rem;
	}
	
	.kv__ttl.sub {
		font-size: 1.8rem;
	}
}



/* ---------- */

.kv__img {
	position: absolute;
	top: 0;
	width: 100%;
	height: 100%;
}

.kv__img::before {
	position: absolute;
	left: 0;
	top: 0;
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	background-color: rgba(0,0,0,0.25);
	/*background-image: linear-gradient(90deg, #768ec6 0%,#e96081 100%);*/
	animation: kvGradient 20s ease infinite;
	opacity: 0;
	z-index: 2;
	transition: opacity 1.5s ease;
}

.kv.-start .kv__img::before {
	opacity: 0.5;
}

.kv__img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}


@keyframes kvGradient {
	0%{background-position:50% 0%}
	50%{background-position:50% 100%}
	100%{background-position:50% 0%}
}

@media all and (min-width: 768px) {
	.kv__img::before {
		
	}
}




/* ------------------------------------------- */
/* Image */

.kv__img {
	
}

.kv__img.-start {
	
}

/* slideshow */

.img-reel {
	position: absolute;
	top: -62.5px; /* parallax 250px / 4 */
	z-index: 1;
	width: 100%;
	height: calc(100% + 125px); /* parallax 250px / 2 */
	margin: auto;
	padding: 0;
	font-size: 0;
	line-height: 0;
	list-style: none;
	overflow: hidden;
}

.img-reel__item {
	position: absolute;
	margin: 0;
	padding: 0;
	font-size: 0;
	line-height: 0;
	top: 0;
	height: 100%;
	width: 100%;
	background-position: 0 center;
	
	animation-duration: 7s;
	animation-delay: 0s;
	animation-timing-function: ease-out;
	animation-fill-mode: forwards;
	animation-iteration-count: 1;
	opacity: 0;
	z-index: 1;
}

.img-reel__item-inner {
	height: 100%;
	width: 100%;
}

.img-reel__item-bg.img {
	display: none;
}

.img-reel__item.current {
	z-index: 2;
	animation-name: showImage;
}

.img-reel__item.prev {
	z-index: 2;
	animation-name: hideImage;
}

.img-reel__item-inner {
	position: absolute;
	left: -50px;
	top: 0;
	width: calc(100% + 100px);
	height: 100%;
	
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;
	
	transform: translate3d(0, 0, 0);
	transform-origin: center center;
	
	animation: inherit;
	animation-timing-function: linear;
}

.current .img-reel__item-inner {
	animation-name: showTranslateBG;
}

.prev .img-reel__item-inner {
	animation-name: hideTranslateBG;
}


.msie .img-reel {
	transform: none !important;
}


@keyframes showImage {
	0%   { opacity: 0; }
	20%  { opacity: 1; }
	100% { opacity: 1; }
}

@keyframes hideImage {
	0%   { opacity: 1; }
	20%  { opacity: 0; }
	100% { opacity: 0; }
}

@keyframes showTranslateBG {
	0%   { transform: translate3d(0, 50px, 0); }
	100% { transform: translate3d(0, 0, 0); }
}

@keyframes hideTranslateBG {
	0%   { transform: translate3d(0, 0, 0); }
	100% { transform: translate3d(0, -50px, 0); }
}
