@charset "UTF-8";

/* ========================================
	common
======================================== */
body,
.l-contents{
	overflow-x: hidden;
}
body.is-hidden {
	overflow: hidden;
}
.l-wrapper {
	position: relative;
	width: 100%;
	min-width: 960px;
}
.l-contents {
	width: 100%;
	overflow: hidden;
	padding-bottom: 170px;
}
@media screen and (min-width: 1921px) {
	.l-contents {
		padding-bottom: 240px;
	}
}
.l-contents img,
.l-footer img{
	width: 100%;
	height: auto;
}
.no-fix-footer .l-contents {
	padding-bottom: 70px;
}
.u-left{
	float: left;
}
.u-right{
	float: right;
}
.u-txt-r{
	color: #e71d29;
}

/* ========================================
	header
======================================== */
.l-logo-3ds {
	position: absolute;
	width: 10.78125%;/* 207 / 1920 * 100 */
	max-width: 210px;
	min-width: 105px;
	top: 0;
	right: 0;
	z-index: 5000;
}

/* ========================================
	footer
======================================== */
.l-footer {
	position: fixed;
	bottom: -240px;
	left: 0;
	width: 100%;
	transition: bottom 300ms;
	z-index: 8000;
}

@media screen and (min-width: 1921px) {
	.l-footer {
		bottom: -400px;
	}
}
.no-fix-footer .l-footer {
	position: relative;
	bottom: auto;
}
.l-footer.is-show {
	bottom: -50px;
}
.l-footer.is-show-bottom {
	bottom: 0;
}
.no-js .l-footer {
	bottom: 0;
}
.l-footer_nav {
	position: relative;
	background: url(../images/common/footer_bg_t.png) left top repeat-x;
	background-size: auto 100%;
}
.l-footer_nav .Inner{
	position: relative;
	width: 64.375%;/* 1236 / 1920 * 100 */
	margin: 0 auto;
	min-width: 960px;
	max-width: 2000px;
}
.l-footer_nav .Inner img{
	width: 100%;
	height: auto;
}
.l-footer_logo {
	float: left;
	width: 24.7572815%;/* 306 / 1236 * 100 */
}
.l-gnav {
	float: right;
	width: 68.042%;/* 841 / 1236 * 100 */
	margin-top: 2.5%;
	display: -webkit-flex;
	display: flex;
	-webkit-justify-content: space-between;
	justify-content: space-between;
}
.l-gnav_li {
	position: relative;
}
.gnav01,
.gnav02{
	width: 27.11%;/* 228 / 841 * 100 */
}
.gnav03,
.gnav04{
	width: 22.1165279%;/* 186 / 841 * 100 */
	margin-top: 2.0%;
}
.gnav01.current,
.gnav02.current{
	margin-top: -3.5% !important;
}
.gnav03.current,
.gnav04.current{
	margin-top: 0.5% !important;
}
.gnav_chara{
	display: block;
	position: absolute;
	pointer-events: none;
}
.gnav01 .chara_l{
	width: 46%;/* 105 / 228 * 100 */
	bottom:-5%;
	left: -30%;
}
.gnav01 .chara_r{
	width: 29.8245614%;/* 68 / 228 * 100 */
	top: -28%;
	right: -5%;
}
.gnav02 .gnav_chara{
	width: 106.14%;/* 242 / 228 * 100 */
	top:-18%;
	left: -3%;
}
.gnav02 .chara_l{
	width: 28.5%;/* 65 / 228 * 100 */
	top: 48%;
	left: -3%;
}
.gnav02 .chara_r{
	width: 28.5%;/* 65 / 228 * 100 */
	top:-14%;
	left: 74%;
}
.gnav03 .gnav_chara{
	width: 35.48387%;/* 66 / 186 * 100 */
	top: 15%;
	left: -0.2%;
}
.gnav04 .gnav_chara{
	width: 47.3118279%;/* 88 / 186 * 100 */
	top: 16%;
	left: -0.2%;
}
/*hover*/
.gnav01 a:hover .gnav_chara,
.gnav02 a:hover .gnav_chara,
.gnav03 a:hover .gnav_chara,
.gnav04 a:hover .gnav_chara {
  animation: Navhover 200ms linear 1;
}
.gnav01 a:hover .chara_r,
.gnav02 a:hover .chara_r{
  animation: Navhover 200ms linear 80ms 1;
}
@keyframes Navhover{
	0% {
		transform: translateY(0px);
	}
	33% {
		transform: translateY(-14px);
	}
	60% {
		transform: translateY(-2px);
	}
	75% {
		transform: translateY(-7px);
	}
	100% {
		transform: translateY(0);
	}
}
.l-footer_pagetop {
	position: absolute;
	width: 11.5625%;/* 222 / 1920 * 100 */
	bottom: 4.5%;
	right: 7%;
	z-index: 1000;
}
@media screen and (max-width: 1200px) {
	.l-footer_pagetop {
		bottom: 6%;
		right: 2%;
	}
}
.l-footer_pagetop.is-move {
	-webkit-animation: pagetop 400ms linear 1;
	animation: pagetop 400ms linear 1;
	-webkit-animation-fill-mode: forwards;
	animation-fill-mode: forwards;
}
@-webkit-keyframes pagetop {
	0% {	-webkit-transform: translateY(0);			transform: translateY(0);			-webkit-animation-timing-function: ease-out;	animation-timing-function: ease-out;}
	50% {	-webkit-transform: translateY(50px);	transform: translateY(50px);	-webkit-animation-timing-function: ease-in;		animation-timing-function: ease-in;}
	100% {-webkit-transform: translateY(0);			transform: translateY(0);}
}
@keyframes pagetop {
	0% {	-webkit-transform: translateY(0);			transform: translateY(0);			-webkit-animation-timing-function: ease-out;	animation-timing-function: ease-out;}
	50% {	-webkit-transform: translateY(50px);	transform: translateY(50px);	-webkit-animation-timing-function: ease-in;		animation-timing-function: ease-in;}
	100% {-webkit-transform: translateY(0);			transform: translateY(0);}
}
.l-footer_info {
	min-width: 960px;
	position: relative;
	background: url(../images/common/footer_bg_b.png) left top repeat-x;
	background-size: auto 100%;
	padding: 17px 20px 15px 20px;
}
.l-footer_copy{
	float: left;
	padding-top: 3px;
}
.l-footer_official_top{
	width: 23.6979166%; /* 470 / 1920 * 100 */
	min-width: 440px;
	float: right;
}
.l-footer_official_top .l-footer_official{
	width: 65%; /* 315 / 470 * 100 */
	float: left;
	padding-top: 3px;
}
.l-footer_official_top .l-footer_sns{
	width: 150px;
	float: right;
}
.l-footer_official_top .l-footer_sns li:nth-child(1){
	width: 75px;
	float: left;
}
.l-footer_official_top .l-footer_sns li:nth-child(2){
	width: 61px;
	float: right;
}
.l-footer_official_top .l-footer_sns li a:hover{
	opacity: 0.8;
}
.l-footer_official.l-footer_under{
	float: none;
	text-align: center;
}
.l-footer_official li {
	display: inline-block;
}
.l-footer_official li a{
	color: #69420d;
}
.l-footer_official li a:hover{
	text-decoration: underline;
}
.l-footer_official li:not(:last-child) {
	margin-right: 5px;
	padding-right: 15px;
	border-right: 1px solid #69420d;
}

/* ========================================
	modal
======================================== */
[data-modallink],
[data-modalchange] {
	cursor: pointer;
}
[data-modalbody] {
	visibility: hidden;
	opacity: 0;
	transition: 200ms;
}
[data-modalbody].is-show {
	visibility: visible;
	opacity: 1;
}
.l-modal {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 9500;
	width: 100%;
	height: 100%;
}
.l-modal_bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0,0,0,0.9);
	cursor: pointer;
}
.l-modal_contents {
	position: relative;
	z-index: 20;
	width: 100%;
	height: 100%;
	min-width: 960px;
	overflow-y: scroll;
	-webkit-overflow-scrolling: touch;
	overflow-scrolling: touch;
}
.l-modal_movie {
	position: relative;
	width: 648px;
	margin: 0 auto;
}
.l-modal_close {
  position: absolute;
  top: -85px;
  right: 5px;
	cursor: pointer;
}

/* ========================================
	animation
======================================== */
.animation-fadeup {
	opacity: 0;
	-webkit-transform: translateY(50px);
	transform: translateY(50px);
}
.animation-fadeup.is-animation {
	transition:
		opacity 200ms,
		-webkit-transform 500ms,
		transform 500ms;
}
.animation-fadeup.is-animation,
.no-js .animation-fadeup {
	opacity: 1;
	-webkit-transform: translateY(0);
	transform: translateY(0);
}
.animation-pop {
	opacity: 0;
	-webkit-transform: scale(0.6);
	transform: scale(0.6);
}
.animation-pop.is-animation {
	transition:
		opacity 200ms,
		-webkit-transform 500ms cubic-bezier(0.175, 0.885, 0.320, 1.275),
		transform 500ms cubic-bezier(0.175, 0.885, 0.320, 1.275);
}
.animation-pop.is-animation,
.no-js .animation-pop {
	opacity: 1;
	-webkit-transform: scale(1);
	transform: scale(1);
}
.animation-bounds {
	opacity: 0;
}
.animation-bounds.is-animation{
	-webkit-animation: bounds 1000ms linear 1;
	animation: bounds 1000ms linear 1;
	-webkit-animation-fill-mode: forwards;
	animation-fill-mode: forwards;
}
.no-js .animation-bounds {
	opacity: 1;
}
@-webkit-keyframes bounds {
	0% {	opacity: 0;	-webkit-transform: scale(1);		transform: scale(1);}
	8% {	opacity: 1;	-webkit-transform: scale(1.1);	transform: scale(1.1);}
	17% {	opacity: 1;	-webkit-transform: scale(1.2);	transform: scale(1.2);}
	34% {	opacity: 1;	-webkit-transform: scale(1);		transform: scale(1);}
	51% {	opacity: 1;	-webkit-transform: scale(1.1);	transform: scale(1.1);}
	68% {	opacity: 1;	-webkit-transform: scale(1);		transform: scale(1);}
	84% {	opacity: 1;	-webkit-transform: scale(1.05);	transform: scale(1.05);}
	100% {opacity: 1;	-webkit-transform: scale(1);		transform: scale(1);}
}
@keyframes bounds {
	0% {	opacity: 0;	-webkit-transform: scale(1);		transform: scale(1);}
	8% {	opacity: 1;	-webkit-transform: scale(1.1);	transform: scale(1.1);}
	17% {	opacity: 1;	-webkit-transform: scale(1.2);	transform: scale(1.2);}
	34% {	opacity: 1;	-webkit-transform: scale(1);		transform: scale(1);}
	51% {	opacity: 1;	-webkit-transform: scale(1.1);	transform: scale(1.1);}
	68% {	opacity: 1;	-webkit-transform: scale(1);		transform: scale(1);}
	84% {	opacity: 1;	-webkit-transform: scale(1.05);	transform: scale(1.05);}
	100% {opacity: 1;	-webkit-transform: scale(1);		transform: scale(1);}
}
.animation-prolongs {
	opacity: 0;
}
.animation-prolongs.is-animation{
	-webkit-animation: prolongs 250ms linear 1;
	animation: prolongs 250ms linear 1;
	-webkit-animation-fill-mode: forwards;
	animation-fill-mode: forwards;
}
.no-js .animation-prolongs {
	opacity: 1;
}
@-webkit-keyframes prolongs {
	0% {	opacity: 0;	-webkit-transform: scaleX(1);		transform: scaleX(1);}
	20% {	opacity: 1;	-webkit-transform: scaleX(1.1);	transform: scaleX(1.1);}
	70% {	opacity: 1;	-webkit-transform: scaleX(0.9);	transform: scaleX(0.9);}
	100% {opacity: 1;	-webkit-transform: scaleX(1);		transform: scaleX(1);}
}
@keyframes prolongs {
	0% {	opacity: 0;	-webkit-transform: scaleX(1);		transform: scaleX(1);}
	20% {	opacity: 1;	-webkit-transform: scaleX(1.1);	transform: scaleX(1.1);}
	70% {	opacity: 1;	-webkit-transform: scaleX(0.9);	transform: scaleX(0.9);}
	100% {opacity: 1;	-webkit-transform: scaleX(1);		transform: scaleX(1);}
}
.animation-floating-w{
	-webkit-animation: floatingw 12s linear infinite;
	animation: floatingw 12s linear infinite;
}
@-webkit-keyframes floatingw {
	0% {	-webkit-transform: translateX(0);			transform: translateX(0);}
	25% {	-webkit-transform: translateX(-30px);	transform: translateX(-30px);}
	75% {	-webkit-transform: translateX(30px);	transform: translateX(30px);}
	100% {-webkit-transform: translateX(0);			transform: translateX(0);}
}
@keyframes floatingw {
	0% {	-webkit-transform: translateX(0);			transform: translateX(0);}
	25% {	-webkit-transform: translateX(-30px);	transform: translateX(-30px);}
	75% {	-webkit-transform: translateX(30px);	transform: translateX(30px);}
	100% {-webkit-transform: translateX(0);			transform: translateX(0);}
}
.animation-floating-h{
	-webkit-animation: floatingh 5s linear infinite;
	animation: floatingh 5s linear infinite;
}
@-webkit-keyframes floatingh {
	0% {	-webkit-transform: translateY(0);			transform: translateY(0);}
	25% {	-webkit-transform: translateY(-8px);	transform: translateY(-8px);}
	75% {	-webkit-transform: translateY(8px);		transform: translateY(8px);}
	100% {-webkit-transform: translateY(0);			transform: translateY(0);}
}
@keyframes floatingh {
	0% {	-webkit-transform: translateY(0);			transform: translateY(0);}
	25% {	-webkit-transform: translateY(-8px);	transform: translateY(-8px);}
	75% {	-webkit-transform: translateY(8px);		transform: translateY(8px);}
	100% {-webkit-transform: translateY(0);			transform: translateY(0);}
}

.js-arrowpop {
	animation: arrowpop 1300ms infinite;
}

@keyframes arrowpop {
	0% {transform: scale(1) translateY(0px);}
	18% {transform: scale(1.04) translateY(-2px);}
	36% {transform: scale(1) translateY(0px);}
	54% {transform: scale(1.04) translateY(-2px);}
	72% {transform: scale(1) translateY(0px);}
	100% {transform: scale(1) translateY(0px);}
}
