@charset "utf-8";
.container {width: 100%;}
.container .boxInner {
	z-index: 6;
	width: 100%;
	height: 100%;
	opacity: 0;
}
.isPlay {
	animation-name: play;
	animation-duration: .5s;
	animation-fill-mode: forwards;
	animation-timing-function: cubic-bezier(.8,0,.5,1);
	position: relative;
	opacity: 1 !important;
}
.isPlay:before {
	animation-name: maskOut;
	animation-duration: .5s;
	animation-delay: .5s;
	animation-fill-mode: forwards;
	animation-timing-function: cubic-bezier(.8,0,.5,1);
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	width: 100%;
	height: 100%;
	background-image: linear-gradient(109.6deg, rgba(156,252,248,1) 11.2%, rgba(110,123,251,1) 91.1% );
}
@keyframes play {
  from {
    transform: translateX(-100%);
  }
  to {
    transform: translateX(0);
  }
}
@keyframes maskOut {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(100%);
  }
}
/*-------------------------------------------------

	FIRSTVIEW

--------------------------------------------------*/
#fv {position: relative;height: 88rem;overflow: hidden;}
#fv::after {
	content: '';
	position: absolute;
	top: 0;
	left: 10rem;
	transform: skew(-10deg);
	width: 97.2rem;
	height: 100%;
	background: rgba(0,0,0,.8);
	animation: bg 3s ease-in-out;
	animation-fill-mode: forwards;
}
@keyframes bg {
	0% {
	    overflow: hidden;
	    height: 0;
	    opacity: 0;
	}
	50% {
		opacity: 1;
	}
	100% {
	    height: 100%;
	    opacity: 1;
	}
}
#fv .bg {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
	background: url("../img/fv/fv.jpg") no-repeat center / cover;
	animation-name: slider-zoomout;
    animation-delay: -3s;
    animation-duration: 40s;
    opacity: 1;
}
@keyframes slider-zoomout {
	0% {
		opacity: 0;
		transform: scale(1.2);
	}
	12.5% {
		opacity: 1;
	}
	20% {
		opacity: 1;
	}
	27.5% {
		opacity: 1;
	}
	100% {
		opacity: 1;
		transform: scale(1);
	}
}
#fv .ttlbox {
	position: absolute;
	left: 0;
	bottom: 50%;
	z-index: 1;
	transform: translate(0,50%);
	width: 100%;
	max-width: 73rem;	
    overflow: hidden;
	color: #fff;
	font-weight: 700;
}
#fv .ttlbox::before {
	content: '';
	position: absolute;
	top: 10rem;
	bottom: 0;
	width: 100%;
	height: .2rem;
	background: rgba(255, 255, 255, .4);
}
#fv .ttlbox::after {
	content: '';
	position: absolute;
	top: 10rem;
	bottom: 0;
	height: 1px;
	background: #fff;
	width: 30px;
	animation: sdl 1.5s ease infinite;
}
@keyframes sdl {
  0% {
    transform: translateX(0);
  }
  50%, 100% {
    transform: translateX(75rem);
  }
}
#fv h1 {
	display: block;
	position: relative;
	max-width: 47.8rem;
	margin: 0 0 5rem auto;
	font-size: 6.5rem;
	line-height: 1.2;
}
#fv h1 span {
	display: block;
	max-width: 47.8rem;
	margin: 0 0 5rem auto;
	font-size: 1.2em;
}
#fv svg.intro .text {display: none;color: #fff;}
#fv svg.intro.go .text {display: block;font-size: 1.6rem;text-transform: uppercase;}
#fv svg.intro.go .text-stroke {
	fill: none;
	stroke: #fff;
	stroke-dashoffset: -900;
	stroke-dasharray: 900;
	stroke-linecap: butt;
	stroke-linejoin: round;
	animation: dash 1.8s ease-in-out forwards;
}
#fv svg.intro.go .text-stroke:nth-child(2) {animation-delay: .5s;}
#fv svg.intro.go .text-stroke:nth-child(3) {animation-delay: .9s;}
#fv svg.intro.go .text-stroke-2 {stroke: #fff;animation-delay: 1.2s;stroke-width: 3px;}
#fv svg.intro.go .text-stroke:nth-child(5) {animation-delay: 1.5s;}
#fv svg.intro.go .text-stroke:nth-child(6) {animation-delay: 1.8s;}
@keyframes dash {
  100% {
    stroke-dashoffset: 0;
  }
}
#fv p {
	position: absolute;
	left: 37rem;
    bottom: 14rem;
	z-index: 1;
}
#fv a {
	width: 20rem;
	padding-bottom: 1rem;
	border-bottom: .1rem solid #fff;
	color: #fff;
	font-size: 1.2rem;
	animation: sdb 1.8s infinite;
}
#fv a::before {
    content: '';
    position: absolute;
    right: -3px;
    bottom: 6px;
    width: 2rem;
    height: .1rem;
    transform: rotate(40deg);
    background: #fff;
}
@keyframes sdb {
  0% {
    transform: rotate(90deg) translate(0, 0);
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
	transform: rotate(90deg) translate(30px, 0px);
    opacity: 0;
  }
}
@media only screen and ( max-width : 896px ) {
	#fv {height: 58rem;}
	#fv::after {left: 16rem;}
	#fv .ttlbox {top: 10rem;bottom: inherit;transform: none;}
	#fv h1 span {margin-bottom: 3rem;}
	#fv p {left: -5rem;bottom: 10rem;}
}
@media only screen and ( max-width : 570px ) {
	#fv::after {
		top: -14rem;
		left: -46rem;
		transform: skew(-71deg);
		width: 120.2rem;
		background: rgba(0,0,0,.9);
	}
	#fv .bg {background: #000 url("../img/fv/fv-sp.jpg") no-repeat center bottom / 100%;}
	#fv .ttlbox {max-width: 33.4rem;}
	#fv .ttlbox::before,#fv .ttlbox::after {top: 7rem;}
	#fv h1 {max-width: 30rem;font-size: 4.1rem;}
	#fv h1 span {max-width: 30rem;}
}
/*-------------------------------------------------

	NEWS

--------------------------------------------------*/
#news {padding: 4rem 0;background: #eee;}
#news .img-animation:before {background: #eee;}
#news .flexbox {position: relative;}
#news ul {border-collapse: inherit;border-spacing: 0 1rem;width: 80%;}
#news li a {display: flex;}
#news li a:hover {color: #C30D21;}
#news li .day {width: 100%;max-width: 9.5rem;line-height: 2.2;}
#news li h3 {padding: 0 0 3rem 0;line-height: 2.2;}
#news li h3:last-child {padding-bottom: 0;}
#news .btn-slide {
	position: absolute;
	right: 0;
	bottom: 0;
	padding: 1.5rem 2rem;
	max-width: 15rem;
	font-size: 1.4rem;
	text-align: left;
}
#news .btn-slide::before {
	content: "";
	position: absolute;
	right: 2rem;
	bottom: 50%;
	transform: translate(0,50%) rotate(-45deg);
	width: .5rem;
	height: .5rem;
	border-right: .1rem solid #fff;
	border-bottom: .1rem solid #fff;
}
#news .btn-slide:hover {color: #fff;}
@media only screen and ( max-width : 1100px ) {
	#news ul {margin-bottom: 2rem;}
	#news .btn-slide {position: inherit;right: inherit;bottom: inherit;}
}
@media only screen and ( max-width : 896px ) {
	#news .title {
		display: flex;
		justify-content: center;
		align-items: center;
		width: 100%;
	}
	#news .title span {display: inline;margin-right: 1rem;}
	#news ul {width: 100%;}
	#news .btn-slide {max-width: 100%;text-align: center;}
	#news .btn-slide::before {display: none;}
	#news .btn-slide img {
		position: absolute;
		right: 2rem;
		width: 12rem;
		bottom: 50%;
		transform: translate(0,50%);
	}
}
/*-------------------------------------------------

	ABOUT

--------------------------------------------------*/
#about {position: relative;overflow: hidden;}
#about::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
	background: linear-gradient(90deg,transparent 0%,transparent 10%,#fff 90%,#fff 100%);
    transform: scaleY(1.3) perspective(15em) rotateX(5deg);
    transform-origin: bottom right;
}
#about .title {font-size: 1.8rem;letter-spacing: 0;}
#about .title span {margin-bottom: 2rem;font-size: 1.5em;}
#about figure {width: 138rem;height: 60rem;}
#about .box {
	position: absolute;
	right: 10%;
	bottom: 13rem;
	max-width: 76rem;
}
#about .box p {margin-bottom: 5rem;line-height: 2;}
#about .box p:last-child {margin-bottom: 0;}
@media only screen and ( max-width : 896px ) {
	#about figure {width: 100%;height: auto;}
	#about .title {font-size: 1.4rem;}
	#about .title span {margin-bottom: 1rem;}
	#about .box {
		position: inherit;
		right: inherit;
		bottom: inherit;
		padding: 4rem 0 8rem;
	}
	#about .box p {margin-bottom: 3rem;}
}
@media only screen and ( max-width : 500px ) {
	#about .box {padding: 4rem 0;}
}
/*-------------------------------------------------

	movie

--------------------------------------------------*/
#movie {
	background-color: #f5f5f5;
	padding: 10rem 0 10rem;
}
#movie .inner{
	max-width: 800px;
}
#movie h2{
}
#movie .youtube {position: relative;width: 100%;padding-top: 56.25%;}
#movie .youtube iframe {
	position: absolute;
	top: 0;
	right: 0;
	width: 100%;
	height: 100%;
}

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

	MESSAGE

--------------------------------------------------*/
#ms section {position: relative;overflow: hidden;}
#ms section figure {max-width: 125.6rem;}
#ms .box {position: absolute;right: 0;bottom: 4rem;}
#ms .box div {
    position: relative;
    z-index: 1;
    width: 125rem;
	margin-left: auto;
	padding: 0 20rem 3rem 15.5rem;
}
#ms .box div::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: -1;
	background: #C30D21;
	transform: scaleY(1.3) perspective(15em) rotateX(5deg);
	transform-origin: bottom right;
}
#ms .box h2 {
	margin-bottom: 1rem;
	color: #fff;
	font-weight: 700;
	font-size: 3.6rem;
}
#ms .box p {color: #fff;font-size: 1.4rem;text-align: right;}
#ms .box p span {display: block;font-size: 1.4em;text-align: right;}
#ms .flexbox div {width: 59%;}
#ms .flexbox p {margin-bottom: 3.5rem;font-size: 1.8rem;}
#ms .flexbox p:last-child {margin-bottom: 0;}
#ms .flexbox figure {width: 30%;}
@media only screen and ( max-width : 1150px ) {
	#ms section figure {width: 100%;}
	#ms .box {position: inherit;right: inherit;bottom: inherit;}
	#ms .box div {width: 100%;padding: 2rem;}
	#ms .box div::before {transform: inherit;}
}
@media only screen and ( max-width : 896px ) {
	#ms .box h2 {font-size: 2.6rem;}
	#ms .box p {font-size: 1.2rem;}
	#ms .flexbox figure {order: 1;width: 80%;margin: 0 auto 3rem;}
	#ms .flexbox div {order: 2;width: 100%;}
	#ms .flexbox p {font-size: 1.4rem;}
}
@media only screen and ( max-width : 500px ) {
	#ms .box h2 {font-size: 1.8rem;}
}
/*-------------------------------------------------

	BUSINESS

--------------------------------------------------*/
#busi {padding: 9rem 0;background:linear-gradient(0deg,#fff 0%,#fff 40%,#C30D21 40%,#C30D21 100%);}
#busi .flexbox {justify-content: center;}
#busi .box {
	display: inline-table;
	width: 60rem;
	overflow: hidden;
	margin: 0 .2rem 2rem;
	border: .1rem solid #3E3E3E;
}
#busi figure {position: relative;}
#busi figure figcaption {position: absolute;top: -1px;left: -1px;}
#busi figure figcaption span {
	display: table;
	position: relative;
	z-index: 1;
	padding: 1rem 1.5rem;
	color: #fff;
}
#busi figure figcaption span::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: -1;
    background: #0F094D;
    transform: scaleY(1) perspective(16em) rotateX(-17deg);
    transform-origin: bottom left;
}
#busi .box div {position: relative;height: 5.8rem;background: #fff;}
#busi p {
	position: absolute;
	left: -10px;
	bottom: 0;
	transform: skewX(-20deg);
	width: 63.5%;
	height: 5.8rem;
	background: #ccc;
	font-weight: 500;
}
#busi p span {
	display: block;
	transform: skewX(20deg);
	padding-left: 3rem;
	line-height: 5.8rem;
}
#busi .btn-slide {
	position: absolute;
	right: -12px;
	bottom: 0;
	transform: skewX(-20deg);
	width: 40%;
	height: 5.8rem;
	padding: 2rem 3rem;
}
#busi .btn-slide span {transform: skewX(20deg);}
#busi .btn-slide img {left: 0;}
@media only screen and ( max-width : 896px ) {
	#busi {padding: 5rem 0;}
	#busi .box {width: 100%;max-width: 60rem;}
	#busi .box:last-child {margin-bottom: 0;}
	#busi figure figcaption span {font-size: 3vw;}
	#busi p span {padding: 1rem 0 1rem 2rem;line-height: 1.4;}
}
@media only screen and ( max-width : 500px ) {
	#busi figure figcaption span {padding: .6rem 1.5rem;}
	#busi .btn-slide img {width: 8rem;}
}
@media only screen and ( max-width : 320px ) {
	#busi p {width: 66.5%;font-size: 1.3rem;}
	#busi .btn-slide {padding: 2rem 1rem;}
}
/*-------------------------------------------------

	ENTRY

--------------------------------------------------*/
#entry {background: url("../img/entry/bg.png") no-repeat center / cover;}
#entry p {
	margin-bottom: 5rem;
	color: #fff;
	font-size: 1.6rem;
	text-align: center;
}
#entry .btn-slide {padding: 2.5rem 0;font-size: 2.2rem;}
#entry .btn-slide img {
	position: absolute;
	right: 2rem;
	bottom: 50%;
	transform: translate(0,50%);
	width: 14rem;
}
#entry .btn-slide span {
	display: block;
	position: absolute;
	right: 2rem;
	bottom: 40%;
	transform: translate(0,50%);
	width: 14rem;
	border-bottom: .1rem solid #fff;
}
#entry .btn-slide span::before {
    content: '';
    position: absolute;
    right: -4px;
    bottom: 6px;
    width: 2rem;
    height: .1rem;
    transform: rotate(50deg);
    background: #fff;
}
@media only screen and ( max-width : 896px ) {
	#entry {background-image: url("../img/entry/bg-sp.png");}
	#entry .btn-slide {font-size: 1.8rem;}
	#entry .btn-slide span {width: 10rem;}
}
@media only screen and ( max-width : 500px ) {
	#entry .btn-slide {padding: 1.5rem 0;font-size: 1.4rem;}
	#entry .btn-slide span {width: 5rem;}
	#entry .btn-slide span::before {right: -3px;bottom: 4px;width: 1.5rem;}
}