@charset "utf-8";

/* ヘッダー */
header{
	position: relative;
	margin: 0 auto ;
	display: block;
	width: 100%;
}
header #keyvisual{
	position: relative;
	margin: 0 auto ;
	display: block;
	background-image: url("../img/main.jpg");
	background-repeat: no-repeat;
	background-position: 0 0;
	background-size: contain;
	padding-top: 141.25%;
	width: 100%;
}

/* キャッチコピー */
#about{
	position: relative;
	margin: 0 auto;
	padding: 20px 0;
	background-image: url("../img/bg_about.jpg");
	background-position: 50% 0;
	background-size: 904px auto;
}
#about div{
	position: relative;
	margin: 0 auto;
	padding: 5px 0;
	width: calc(100% - 40px);
	background-color: rgba(1,6,37,.85);
}
#about div p{
	position: relative;
	margin: 0 auto;
	padding: 15px;
	width: calc(100% - 40px);
	border: solid 1px #a2b5cb;
	text-align: center;
	font-size: .14rem;
	background-image: url("../img/aboutC.png"), url("../img/aboutC.png"), url("../img/aboutC.png"), url("../img/aboutC.png");
	background-position: 2px 2px, calc(100% + 2px) 2px, 2px 100%, calc(100% + 2px) 100%;
	background-size: 10px auto,10px auto,10px auto,10px auto;
	background-repeat: no-repeat, no-repeat, no-repeat, no-repeat;
}
#about span{
	position: relative;
	margin: 0 auto;
	display: block;
	font-size: .16rem;
	font-weight: 700;
	line-height: 1.8em;
	text-align: center;
	color: #ffd800;
}
#about span.t01{
	font-size: .15rem;
	margin: 5px auto 15px auto;
}

/* ニュース */
#news {padding-top: 30px;}
#news .newsBox{position: relative;}
#news .newsBox ul{
	position: relative;
	margin: 0 auto;
}
#news .newsBox ul li{
	position: relative;
	margin:  0 auto 15px auto;
	transition: all .3s ease-out;
}
#news .newsBox ul li::before{
	position: absolute;
	display: block;
	content: '\025b6';
	font-size: .10rem;
	transform: translateX(-1.3em);
}
#news .newsBox ul li a{color: #ffd800 !important; text-decoration: underline;}
#news .newsBox ul li a:hover{text-decoration: none;}
#news .newsBox ul li:nth-child(n + 4){display: none;opacity: 0;}
#btn_more{
	position: relative;
	margin: 0 auto;
	text-align: right;
}
#btn_more span{font-size: .10rem;padding-left: 1em;}
#news .goto{
	position: relative;
	margin: 0 auto;
	text-align: center;
}
#news .goto p, #news .goto img{padding-bottom: 10px;}
#news .goto .button{
	position: relative;
	display: block;
	padding: 3px 0;
	text-decoration: none !important;
}

/* バナー */
#banner{
    position: relative;
    margin: 40px auto 0 auto;
}
#banner ul{
    position: relative;
    margin: 0 auto;
    width: calc(100% - 40px);
    display:-webkit-box;
	display:-webkit-flex;
	display:-ms-flexbox;
	display:flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	justify-content: center;
    align-items: flex-start;
}
#banner ul li{
    position: relative;
    margin: 0 0 10px 0;
}

/* CM */
#cm{
	position: relative;
	margin: 0 auto;
	padding: 0 0 40px 0;
}

/* photo */
#photo{
	position: relative;
	padding: 3px 0;
	background-color: #ffffff;
}
#photo .photoWrap{
	position: relative;
	margin: 0 auto ;
}
#photo .slick-slide{margin: 0 1px; background-color: transparent;}

/* ポイント */
#point{
	position: relative;
	margin: 0 auto;
	padding: 30px 0;
    background-image: url("../img/bg_point.jpg");
	background-position: 50% 0;
	background-size: auto 550px;
}
#point ul{
	position: relative;
	margin: 0 auto;
	display:-webkit-box;
	display:-webkit-flex;
	display:-ms-flexbox;
	display:flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	justify-content: center;
    align-items: stretch;
}
#point ul li{
	position: relative;
	margin: 0 0 15px 0;
    width: 33.33%;
	text-align: center;
}
#point ul li::before{
	position: absolute;
	bottom:-8px;
	left: 0;
	content: '';
	width: 100%;
	height: 73%;
	background-color: rgba(0,0,0,.85);
}
#point ul li .pointImg{
	position: relative;
	margin: 0 auto 5px auto ;
    width: 85%;
}
#point ul li .pointTxt{
	position: relative;
	margin: 0 auto;
	font-size: .12rem;
	width: calc(100% - 10px);
}
#point ul li .pointTxt .ttl{
	font-size: .13rem;
	color: #ffd800;
	font-weight: 700;
}

/* イベント概要 */
#event{
    position: relative;
    margin: 0 auto;
	padding: 0 0 40px 0;
}
#event p.lead{line-height: 2em;}
#event h4{
    position: relative;
    margin: 0 auto 10px auto;
}
#event .party{
    position: relative;
    margin: 20px auto;
	border: solid 1px #ffd800;
	padding: 10px;
}
#event .party a{
    position: relative;
	display: block;
    margin: 10px auto;
}
#event .price{
	position: relative;
	margin: 15px auto 5px auto;
}
#event .price span{
	font-weight: 900;
	font-size: .16rem;
}
#event .price_y{
	position: relative;
	margin: 15px auto 5px auto;
	color: #ffd800;
}
#event .price_y span{
	font-weight: 900;
	font-size: .16rem;
}
#event p.preprice{
    font-size: .12rem;
	padding-bottom: 15px;
}
#event .yellow{padding-bottom: 5px;}
#event #btn_ticCaution{
    position: relative;
    font-size: .12rem;
    margin: 30px auto 0 auto;
	padding: 10px 0;
	font-weight: 700;
    width: 180px;
    text-align: center;
	background-color: #ffd800;
	color: #030065;
}
#event #btn_ticCaution::after{
    position: absolute;
	content: '';
	top: 50%;
	right: 7px;
	transform: translateY(-50%);
	width: 16px;
	height: 16px;
    background-image: url("../img/arrow.png");
	background-position: 50% 50%;
	background-size: auto 16px;
	background-repeat: no-repeat;
}
#event .buy, #howto .buy{
    position: relative;
	display: block;
    margin: 20px auto 10px auto;
	width: 220px;
}
#event .buy span, #howto .buy span{
    position: relative;
	display: block;
    margin: 0 auto 5px auto;
	font-weight: 700;
	font-size: .15rem;
	text-align: center;
	color: #ffd800;
}
#event .shop{
	position: relative;
	margin: 30px auto 10px auto;
	font-size: .14rem;
	text-align: center;
}
#event .btn_shop{
	background-color: #ffd800;
	color: #020065;
	display: block;
	position: relative;
	width: 50%;
	text-align: center;
	padding: 7px 0;
	margin: 20px auto 10px auto;
	text-decoration: none;
	font-size: .13rem;
	font-weight: 700;
}
#event .btn_shop:hover{
	color: #020065 !important;
	opacity: .7;
}
#event .first #aboutBox{display: none;line-height: 2em;}
#event .first #aboutBox .movieWrap{margin: 0 auto 20px auto;width: 100%;}
#event .first #aboutBox ul{
	position: relative;
	margin: 20px auto 10px auto;
	display:-webkit-box;
	display:-webkit-flex;
	display:-ms-flexbox;
	display:flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	justify-content: space-between;
    align-items: stretch;
}
#event .first #aboutBox ul li{
	position: relative;
	margin: 0;
	width: calc(50% - 5px);
}


/* キャラクター */
#charactor{
	position: relative;
    margin: 0 auto;
	padding-bottom: 40px;
	background-image: url("../img/bg_chara.jpg");
	background-position: 50% 0;
    background-size: auto 452px;
}
#charactor h2{
	background-color: transparent;
	background-image:none;
	display: block;
	padding: 25px 0 0 0;
	margin: 0 auto;
	text-align: center;
}
#charactor h2 img{height: 43px;}
#charactor ul{
	position: relative;
	margin: 5px auto 0 auto;
	width: calc(100% - 40px);
	display:-webkit-box;
	display:-webkit-flex;
	display:-ms-flexbox;
	display:flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	justify-content: center;
    align-items: stretch;
}
#charactor ul li{
	position: relative;
	margin: 0 1% 20px 1%;
	width: 31%;
} 
#charactor ul.chara1L li{
	width: 100%;
	background-image: url("../img/chatra000.png");
	background-position: 50% 0;
	background-size: 100% auto;
	background-repeat: no-repeat;
	padding-top: 48%;
} 
#charactor ul li img{margin: 0 auto;} 
#charactor ul.chara1L li img{width: 54%;} 

/*テーマソング */
#songs{
	position: relative;
	margin: 30px auto  0 auto;
	width: calc(100% - 40px);
}
#songs h2 img{height: 54px;}
#songs .artistphoto{
	position: relative;
	margin: 20px auto 0 auto;
	width: calc(100% - 40px);
	z-index: 100;
}
#songs .artisttxt{
	position: relative;
	margin: 0 auto;
	padding: 50px 30px 30px 30px;
	transform: translateY(-30px);
	background-image: url("../img/aboutC.png"), url("../img/aboutC.png"), url("../img/aboutC.png"), url("../img/aboutC.png");
	background-position: 2px 2px, calc(100% + 2px) 2px, 2px 100%, calc(100% + 2px) 100%;
	background-size: 10px auto,10px auto,10px auto,10px auto;
	background-repeat: no-repeat, no-repeat, no-repeat, no-repeat;
	background-color: rgba(0,0,0,.8);
}
#songs .artisttxt .name{
	font-size: .14rem;
	text-align: center;
	padding-bottom: 20px;
}
#songs .artisttxt .name span{font-size: .20rem;}
#songs .artisttxt a{
	background-color: #ffd800;
	color: #020065;
	display: block;
	position: relative;
	width: 50%;
	text-align: center;
	padding: 7px 0;
	margin: 20px auto 0 auto;
	text-decoration: none;
	font-size: .14rem;
	font-weight: 700;
}
#songs .artisttxt a:hover{
	color: #020065 !important;
	opacity: .7;
}

/* 遊び方 */
#howto{
    position: relative;
    margin: 0 auto;
	padding: 0 0 40px 0;
}
#howto ul.play{
	position: relative;
	margin: 0 auto;
	display:-webkit-box;
	display:-webkit-flex;
	display:-ms-flexbox;
	display:flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	justify-content: space-between;
    align-items: stretch;
}
#howto ul.play li{
	position: relative;
	margin: 0 0 15px 0;
    width: 32%;
	text-align: center;
}
#howto ul.play li img{padding-bottom: 10px;}

/* ゲームの流れ */
#howto .howtoWrap{
	position: relative;
    margin: 0 auto;
    padding: 0;
    overflow: hidden;
}
#howto .swiper-containerG{
	position: relative;
	margin: 0 auto;
    padding: 0;
    overflow: hidden;
}
#howto .howtoWrap ul li{
	position: relative;
	margin: 0;
    padding: 0;
}
#howto .howtoWrap ul li::after{
	position: absolute;
	content: '';
	top:80px;
	left: calc(100% + 5px);
	width: 18px;
	height: 24px;
    background-image: url("../img/arrow01.png");
	background-position: 50% 50%;
	background-size: 18px auto;
	background-repeat: no-repeat;
}
#howto .howtoWrap ul li:last-child::after{background-image: none;}
#howto ul li img{padding-bottom: 12px;}
#howto .howtoWrap ul li a.btn_buy{width: 70%;text-decoration: none;}
#howto .howtoWrap ul li a.btn_buy:hover{text-decoration: none !important;}
.first{
	position: relative;
	margin: 30px auto;
	padding: 15px;
	text-align: center;
	border: solid 1px #ffd800;
	background-image: url("../img/firstC01.png"), url("../img/firstC02.png"), url("../img/firstC03.png"), url("../img/firstC04.png");
	background-position: 2px 2px, calc(100% + 2px) 2px, 2px 100%, calc(100% + 2px) 100%;
	background-size: 27px auto,27px auto,27px auto,27px auto;
	background-repeat: no-repeat, no-repeat, no-repeat, no-repeat;
}
#howto .first #btn_note, #event .first #btn_about{
	position: relative;
	margin: 0 auto;
}
#howto .first #btn_note::after, #event .first #btn_about::after{
	position: relative;
	display: block;
	margin: 10px auto;
	content: '\025bc';
	width: 100%;
	height: 1em;
	font-size: .10rem;
}
#howto .first #noteBox, #event .first #aboutBox{
	position: relative;
	margin: 0 auto;
	padding: 10px 0;
	text-align: left;
	transition: all .3s ease-out;
}


.precautions{
	position: relative;
	margin: 30px auto 0 auto;
	padding: 30px 0 60px 0;
	background-image: url("../img/bg_faq.jpg");
	background-position: 50% 0;
    background-size: auto 467px;
}
#limit .contetsWrap, #caution .contetsWrap, #faq .contetsWrap{height: 0;overflow: hidden;padding: 0;transition: all .3s ease-out;}
#limit .contetsWrap.dispD, #caution .contetsWrap.dispD, #faq .contetsWrap.dispD{height: auto;padding: 30px;margin: 15px auto 0 auto;}

/* 利用制限 */
#limit{
    position: relative;
	margin: 0 auto;
    padding: 0 0 25px 0;
}
#limit{
    position: relative;
	margin: 0 auto;
}
#limit dl{
    position: relative;
	margin: 0 auto;
}
#limit dt{
    position: relative;
	margin: 0 auto;
    font-size: .14rem;
    padding: 15px 0;
}
#limit dt:first-child{padding: 0 0 15px 0;}
#limit dt::before{
	position: absolute;
	display: block;
	content: '\025b6';
	font-size: .11rem;
	transform: translateX(-1.4em);
}
#limit dd{
    position: relative;
	margin: 0 auto;
    padding: 0 0 15px 1.5em;
}
#limit dl dd::before{
	position: absolute;
	content: '・';
    display: block;
    width: 1em;
    left: .3em;
}
#limit dd br{
    display: block;
	content: "";
	margin: 10px 0;
}
#limit dd br.nomargin{margin:auto;}
#limit dd .caution{padding-top: 10px;} 


/* 注意事項 */
#caution{
    position: relative;
	margin: 0 auto;
    padding: 0 0 25px 0;
}
#caution{
    position: relative;
	margin: 0 auto;
}
#caution dl{
    position: relative;
	margin: 0 auto;
}
#caution dt{
    position: relative;
	margin: 0 auto;
    font-size: .14rem;
    padding: 15px 0;
}
#caution dt:first-child{padding: 0 0 15px 0;}
#caution dt::before{
	position: absolute;
	display: block;
	content: '\025b6';
	font-size: .11rem;
	transform: translateX(-1.4em);
}
#caution dd{
    position: relative;
	margin: 0 auto;
    padding: 0 0 15px 1.5em;
}
#caution dl dd::before{
	position: absolute;
	content: '・';
    display: block;
    width: 1em;
    left: .3em;
}
#caution dd br{
    display: block;
	content: "";
	margin: 10px 0;
}
#caution dd br.nomargin{margin:auto;}


/* よくある質問 */
#faq{
    position: relative;
	margin: 0 auto;
	padding: 0;
}
#faq h3{margin:30px auto 15px auto;font-weight: 500;font-size: .14rem; }
#faq h3:first-child{margin:0 auto 15px auto; }
#faq dl{
	position: relative;
	margin: 0 auto;
}
#faq dl dt{
	position: relative;
	margin: 0 auto 5px auto;
    padding-left: 1.5em;
}
#faq dl dt::before{
	position: absolute;
	content: 'Q.';
    display: block;
    width: 1.5em;
    left: 0;
}
#faq dl dd{
	position: relative;
	margin: 0 auto 15px auto;
    padding-left: 1.5em;
}
#faq dl dd::before{
	position: absolute;
	content: 'A.';
    display: block;
    width: 1.5em;
    left: 0;
}

#testMovie{
	position: relative;
	margin: 0 auto;
	padding: 60px 0;
	background-image: url("../img/bg_about.jpg");
	background-position: 50% 0;
	background-size: 904px auto;
}
#testCaution{
	position: relative;
	margin: 0 auto;
	padding: 60px 0;
}

.nazo{
	position: relative;
	margin: 0 auto 40px auto;
	width: calc(100% - 60px);
}

/* ----- pc ----- */
@media screen and (min-width: 641px) {

	/* ヘッダー */
    header #keyvisual{
        background-image: url("../img/main_pc.jpg");
        padding-top: 45.83%;
    }


	/* キャッチコピー */
	#about{
		padding: 40px 0;
		background-size: auto 80px;
	}
	#about div{
		padding: 10px 0;
		width: 960px;
	}
	#about div p{
		padding: 40px 0;
		width: calc(100% - 20px);
		font-size: .16rem;
		background-size: 16px auto,16px auto,16px auto,16px auto;
	}
	#about span{font-size: .20rem;}
	#about span.t01{
		font-size: .20rem;
		margin: 5px auto 25px auto;
	}

	
	/* ニュース */
	#news .contetsWrap{padding: 50px;}
	#news .newsBox ul li{
		margin:  0 auto 20px auto;
		display:-webkit-box;
		display:-webkit-flex;
		display:-ms-flexbox;
		display:flex;
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
		justify-content: space-between;
		align-items: flex-start;
	}
	#news .newsBox ul li .date{
		position: relative;
		margin: 0;
		width: 120px;
	}
	#news .newsBox ul li .newsTxt{
		position: relative;
		margin: 0;
		width: calc(100% - 130px);
	}
	#news .newsBox ul li::before{
		font-size: .12rem;
		transform: translateX(-1.5em);
	}
	#news .goto{width: 600px;}
	#news .goto p, #news .goto img{padding-bottom: 20px;}
	#news .goto p{text-align: center;}
	#news .goto .button{padding: 10px 0;}

	/* バナー */
	#banner ul{width: 960px;}
	#banner ul li{
		margin: 0 5px 10px 5px;
		width: 380px;
	}

	/* CM */
	#cm{
		padding: 0 0 100px 0;
		width: 960px;
	}
	
	/* ポイント */
	#point{
		padding: 40px 0 100px 0;
		background-size: auto 770px;
	}
	#point ul{width: 960px; justify-content: space-between;}
	#point ul li{
		margin: 0 0 15px 0;
		width: 460px;
		display:-webkit-box;
		display:-webkit-flex;
		display:-ms-flexbox;
		display:flex;
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
		justify-content: space-between;
		align-items: flex-start;
	}
	#point ul li::before{
		bottom:6px;
		left: 80px;
		content: '';
		width: 400px;
		height: 125px;
	}
	#point ul li .pointImg{
		margin: 0 auto ;
		width: 127px;
	}
	#point ul li .pointTxt{
		padding-top:27px;
		font-size: .14rem;
		width: 280px;
		text-align: left;
	}
	#point ul li .pointTxt .ttl{font-size: .16rem;padding-bottom: 5px;}

	/* イベント概要 */
	#event{padding: 0 0 100px 0;}
	#event h4{margin: 0 auto 12px auto;}
	#event .party{
		margin: 70px auto 20px auto;
		padding: 20px;
	}
	#event .party a{
		margin: 15px 0;
		width: 400px;
	}
	#event .price{margin: 25px auto 10px auto;}
	#event .price span{font-size: .22rem;}
	#event .price_y{margin: 25px auto 10px auto;}
	#event .price_y span{font-size: .22rem;}
	#event p.preprice{
		font-size: .13rem;
		padding-bottom: 25px;
	}
	#event .yellow{padding-bottom: 10px;}
	#event #btn_ticCaution{
		font-size: .14rem;
		margin: 40px auto 0 auto;
		padding: 25px 0;
		width: 340px;
	}
	#event #btn_ticCaution::after{right: 10px;}
	#event .buy, #howto .buy{
		margin: 50px auto 30px auto;
		width: 270px;
	}
	#event .buy span, #howto .buy span{
		margin: 0 auto 8px auto;
		font-size: .18rem;
	}
	#event .shop{
		margin: 40px auto 10px auto;
		font-size: .16rem;
		text-align: left;
	}
	#event .btn_shop{
		width: 270px;
		padding: 10px 0;
		margin: 20px auto;
		font-size: .14rem;
	}
	#event .first #aboutBox ul li{width: calc(50% - 10px);}

	/* キャラクター */
	#charactor{
		padding-bottom: 20px;
		background-size: auto 633px;
	}
	#charactor h2{padding: 50px 0 0 0;}
	#charactor h2 img{height: 60px;}
	#charactor .flexBox{
		position: relative;
		display:-webkit-box;
		display:-webkit-flex;
		display:-ms-flexbox;
		display:flex;
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
		justify-content: center;
		align-items: flex-end;
		width: 1150px;
		margin: 0 auto;
		transform: translate(-50px, -80px);
	}
	#charactor ul{width:630px; margin: 0;justify-content: flex-start;}
	#charactor ul li{width: 110px !important;margin: 0 5px 20px 5px !important;} 
	#charactor ul.chara1L, #charactor ul.chara1L li{width: 380px !important;}
	#charactor ul.chara1L li img{width: 180px;} 
	#charactor ul.chara2L, #charactor ul.chara2L li{width: 120px !important;}
	
	/*テーマソング */
	#songs{
		margin: 0 auto 90px auto;
		width: 960px;
		align-items: center;
	}
	#songs h2 img{height:74px;}
	#songs .flexBox{align-items: center;transform: translate(20px, 20px);width: 960px;}
	#songs .artistphoto{
		margin: 0;
		width: 380px;
	}
	#songs .artisttxt{
		margin: 0 ;
		padding: 50px 80px;
		width: 380px;
		transform: translateY(0) translateX(-40px);
	}
	#songs .artisttxt .name{
		font-size: .18rem;
		padding-bottom: 30px;
	}
	#songs .artisttxt .name span{font-size: .24rem;}

	/* 遊び方 */
	#howto{padding: 0 0 100px 0;}
	#howto ul.play{width: 540px;}
	#howto ul.play li{margin: 0 ;}
	#howto ul.play li img{width: 104px; margin: auto; }

	/* ゲームの流れ */
	#howto .howtoWrap ul li::after{top:50px;}
	#howto .howtoWrap ul li a.btn_buy{width:100%;}
	#howto .howtoWrap ul li a.btn_buy:hover{color: #030065 !important;opacity: .7; }
	#howto .first, #event .first{
		margin: 70px auto 40px auto;
		padding: 30px;
		width: 460px;
		background-size: 32px auto,32px auto,32px auto,32px auto;
	}
	#event .first #btn_about:hover{cursor: pointer;}
	#howto .first #btn_note::after, #event .first #btn_about::after{font-size: .12rem;}
	#howto .first #noteBox, #event .first #aboutBox{padding: 20px 0 10px 0;}
	
	#limit .contetsWrap.dispD, #caution .contetsWrap.dispD, #faq .contetsWrap.dispD{height: auto;padding: 50px 50px 80px 50px;margin: 15px auto 0 auto;}

	/* 利用制限 */
	#limit{padding: 40px 0 30px 0;}
	
	/* 注意事項 */
	#caution{padding: 0 0 30px 0;}
	#caution dt{
		font-size: .16rem;
		padding: 30px 0 20px 0;
	}
	#caution dt::before{
		font-size: .12rem;
		transform: translateX(-1.5em);
	}

	/* よくある質問 */
	#faq{padding: 0 0 120px 0;}
	#faq h3{margin:40px auto 15px auto;font-size: .16rem; }

	#faq dl dt{margin: 0 auto 5px auto;}
	#faq dl dd{margin: 0 auto 20px auto;}

	.nazo{
		margin: 0 auto 60px auto;
		width: 600px;
	}

}