@charset "utf-8";

/* =========================================================
	layout.css
========================================================= */

body,html{ height: 100%;}
body {
    margin: 0 auto;
    background-image: url(../images/common/main_bg.jpg);
    background-position: center;
    background-repeat: repeat;
    background-attachment: fixed;
    width: 100%;
    min-width: 1280px;
	font-family: 'Hiragino Kaku Gothic ProN','ヒラギノ角ゴ ProN W3',Meiryo,メイリオ,Osaka,'MS PGothic',sans-serif;
    -webkit-box-sizing: border-box;
       -moz-box-sizing: border-box;
         -o-box-sizing: border-box;
        -ms-box-sizing: border-box;
            box-sizing: border-box;
	-webkit-font-smoothing: antialiased;
}
body#top{
	min-height: 768px;
	background-image: url(../images/common/main_bg.jpg);
	background-size: cover;
}

#container{
	position: relative;
	height: auto !important;
	height: 100%;
	min-height: 100%; overflow: hidden;
}
#top #container{
	/* background: url(../images/common/top_characters.png) center center no-repeat; */
	background-size: 100%;
	background-position: 0 70px;
}
body#top #IKUSABA::before{
	content: ''; display: block; width: 100%; height: 100vh; min-height: 650px;
	background: url(../images/common/top_characters.png) center center no-repeat;
	background-size: 100%; opacity: 0;
}
body#top.loaded #IKUSABA::before{
	animation: fade_in_anime 0.4s linear forwards; animation-delay: 0.1s;
}
@keyframes fade_in_anime{ 0%{ opacity: 0;} 100%{ opacity: 1;} }

.contents_wrap{
    width: 100%;
    display: inline-block;
	margin: 0;
	padding: 0 0 50px 0;
    /*margin: 0 0 60px 0;
    padding-bottom: 200px;*/
}
body#top .contents_wrap{
	width: 100%; min-width: 1280px; /* margin-top: 100vh; */ padding-bottom: 1px; display: block;
	position: relative; background: linear-gradient(rgba(0,0,0,0) 0%, rgba(0,0,0,0.7) 100%);
}
	body#top .top_contents_inner{
		width: 1280px; margin: 0 auto; position: relative;
	}
.contents_wrap *{
	box-sizing: border-box;
}
	
body#top .contents_wrap h1{ position: absolute; right: 80px; top: -160px; opacity: 0; }
body#top.loaded .contents_wrap h1{ animation: fade_in_anime .4s linear forwards; animation-delay: 0.5s; }
	body#top .contents_wrap h1 img{ filter: drop-shadow(0 0 0.1rem #fff) drop-shadow(0 0 1.0rem #fff); }
body#top .contents_wrap .campaign_link{ position: absolute; left: 30px; top: -220px; }
  body#top .contents_wrap .campaign_link ul{
	min-height:200px;
	display: -webkit-box; display: -webkit-flex; display: flex;
	-webkit-flex-wrap:wrap; flex-wrap:wrap;
	-webkit-box-pack: justify; -webkit-justify-content: flex-start; justify-content: flex-start;
	-webkit-box-align: flex-end; -webkit-align-items: flex-end; align-items: flex-end;
  }
	body#top .contents_wrap .campaign_link li{ margin-right: 10px; }



/* header
--------------------------------------------------------- */
#header_wrap{
	width: 100%;
	background: url(../images/common/menu/menu_bg.png) left top repeat-x;
	position: absolute;
	top: 0;
}

header{
	width: 100%;
	min-width: 1280px;
	height: 70px;
	margin: 0 auto;
	position: relative;
}
ul.gnavi{ width:100%; }
ul.gnavi li{ position: relative;}
ul.gnavi li > a{
	display: block;
	width: 158px;
	height: 70px;
	text-indent: -7777px;
	background-position: left top;
}
ul.gnavi li > a:hover,
ul.gnavi li.active > a{ background-position: center -70px;}

ul.gnavi li > a{
	width: 130px;
	background-position: top center;
	background-repeat: no-repeat;
}

ul.gnavi li.top       a{ background-image: url(../images/common/menu/txt_bg.png), url(../images/common/menu/txt_top.png); }
ul.gnavi li.news      a{ background-image: url(../images/common/menu/txt_bg.png), url(../images/common/menu/txt_news.png); }
ul.gnavi li.system    a{ background-image: url(../images/common/menu/txt_bg.png), url(../images/common/menu/txt_system.png);}
ul.gnavi li.character a{ background-image: url(../images/common/menu/txt_bg.png), url(../images/common/menu/txt_character.png); width: 200px; }
ul.gnavi li.music     a{ background-image: url(../images/common/menu/txt_bg.png), url(../images/common/menu/txt_music.png) ;}
ul.gnavi li.movie     a{ background-image: url(../images/common/menu/txt_bg.png), url(../images/common/menu/txt_movie.png) ;}
ul.gnavi li.blog      a{ background-image: url(../images/common/menu/txt_bg.png), url(../images/common/menu/txt_blog.png)  ;}
ul.gnavi li.event     a{ background-image: url(../images/common/menu/txt_bg.png), url(../images/common/menu/txt_event.png) ;}
ul.gnavi li.story   > a{ background-image: url(../images/common/menu/txt_bg.png), url(../images/common/menu/txt_story.png) ;}

	.gnavi li .submenu{ position: absolute; top: 55px; left: 0px; width: 130px; font-size: 13px; font-weight: bold; pointer-events: none; opacity: 0;
		-webkit-transition: all 0.2s ease; transition: all 0.2s ease; z-index: 100; }
	.gnavi li:hover > .submenu{ display: block; top: 60px; opacity: 1; pointer-events: auto; }
		.gnavi li .submenu div:first-child{ margin-bottom: -1px; }
		.gnavi li .submenu a{ display: block; padding: 20px 0 18px; text-align: center; border: 1px solid #999; background: #375c56; color: #fff; position: relative; line-height: 150%; }
		.gnavi li .submenu div:nth-child(2) a{ padding: 12px 0 10px; }
		.gnavi li .submenu a:hover{ background: #000; }
		.gnavi li .submenu a:after{ content: ''; border: 3px solid transparent; border-left-color: #aaa; border-top-color: #aaa; position: absolute; left: 1px; top: 1px; }

header h1{ position: absolute; top: 0; right: 20px; z-index: 999;}
.copy{ position: absolute; top: 80px; left: 20px;}

.gnavi li img.new{ position: absolute; top: 10px; right: 16px;}


/* 下層ページ > グローバルメニュー
--------------------------------------------------------- */
.page .menu-line-l-end {
    position:absolute;
    background-image: url(../images/common/menu_page/menu_line_L.png);
    background-repeat: no-repeat;
    width:291px;
    height:108px;
    top:-24px;
    right:-170px;
    display:inline-block;
}
.page .menu-line-r {
    width:2000px;
    left:1360px;
}
.page .menu-line-r-end {
    position:absolute;
    background-image: url(../images/common/menu_page/menu_line_R.png);
    background-repeat: no-repeat;
    width:70px;
    height:70px;
    top:0px;
    left:-42px;
    display:inline-block;
}
.page .menu_list{ padding-left: 190px;}
.page .menu_list div{ width: 170px;}



/* footer
--------------------------------------------------------- */

.credit *,
.footer *{ box-sizing: border-box;}

/* ------ credit ------- */
.credit_wrap{
	background: url(../images/common/credit_bg.png) top left repeat-x;
	background-size: auto 100%;
	width: 100%;
	padding: 18px 0 15px;
	}
.credit{
   /*  width: 100%; */
    width: 1280px;
    padding: 0 30px;
	margin: 0 auto; box-sizing: border-box;
    position:relative; 
}
.credit::before{
	position: absolute; top: -10px; left: 0;
	display: block; content: '';
	width: 100%; height: 1px;
	background: url(../images/common/credit_bg_top.png) top center no-repeat;
}


/* ------ development ------- */
.credit_company{
	margin: 0 40px 0 20px;
	float: left;
}

.credit_company li{
    display: inline-block;
    padding: 10px 0px;
}

.banner_link{ padding: 0 30px; overflow: hidden; flex: 1; }
	.banner_link ul{ display: flex; justify-content: center; }
		.banner_link li{ width: 120px; margin: 0 5px; }

.footer_wrap{
	width: 100%;
	background-color: #3b3b3b;
	font-size: 12px;
	text-align: center; 
	display: block;
	color: #FFF;
}

.footer{
	min-width: 1280px; 
	width: 100%; 
	list-style: none; 
	margin: 0 auto;
	position: relative;
}
.footer li{
	display: inline-block; margin: 14px 0 10px 0;
}
.footer_wrap{background: rgba(0,0,0,0.85);}
.credit_company{ width: 350px; margin: 0;}
.credit_company li{ margin-right: 20px; margin-top: 7px;}


.sg_link{
	width: 1280px;
	margin: 0 auto;
	font-size: 8px;
	padding:0 0 10px;
}
.sg_link ul{ padding:3px 0 5px;}
.sg_link li{ width: 200px; }
.sg_link li img{ width: 190px;}

.f_lb_box{ position: absolute; bottom: 10px; left: 30px; }
	.f_lb_box a{ color: #FFF; margin-right: 20px; }
	.f_lb_box a:hover{ color: #ed7f53; text-decoration: underline; }
/* spec_popup */
.spec_popup{ width: 810px; height: 425px; background: url(../images/music/bg_popup.png) center center no-repeat; padding: 40px; margin: 0 auto; box-sizing: border-box; position: relative;}
.spec_popup *{ box-sizing: border-box;}
.spec_txt{ color: #fff; display: flex; align-items: center; }
.spec_txt p{ text-align: center; margin-right: 30px; margin-left: 30px; }
.spec_txt p img{ width: 120px; }
.spec_txt ul.txt_right{}
.spec_txt ul li{ font-size: 13px; line-height: 190%;}

.spec_txt li span,
.spec_txt p span{
    width:60px;
    display:inline-block;
}

.spec_txt a{
    color: #333;
    display: inline-block;
    margin: -5px 0 0 0;
}

.slide-arrow-prev, .slide-arrow-next {font-size:0; opacity:0.45;}
.slide-arrow-prev:hover, .slide-arrow-next:hover {cursor:pointer; opacity:1;}
.slide-arrow-prev {position:absolute; left:12px; top:70px; width:14px; height:22px; background: url("../images/banner/btn-prev.png") no-repeat; background-size:contain;}
.slide-arrow-next {position:absolute; right:12px; top:70px; width:14px; height:22px; background: url("../images/banner/btn-next.png") no-repeat; background-size:contain;}


/* 下層ページfooter */
.footer_simple{
	width: 100%;
	background: rgba(0,0,0,0.85);
	color: #FFF;
	text-align: center;
	padding: 10px 0;
	font-size: 10px;
	position: absolute;
	bottom: 0;
}

/* =========================================================
 事前登録関連
========================================================= */

body#pre{
	background: url(../images/common/main_bg.jpg) center center no-repeat;
	-webkit-background-size: cover;
	-moz-background-size: cover;
	background-size: cover;
	background-attachment: fixed;
}
body#pre header{
	background-image: url(../images/pre/header_background.jpg);
	margin-top: 40px; 
	height: auto;
}

body#pre header div{ width: 1000px; margin: 0 auto; padding: 23px 0 12px; position: relative;}
body#pre .contents_wrap{ margin: 0 0 60px 0; padding-bottom: 200px; }
body#pre .banner_link li{ display: inline-block; width: auto; margin-right: 10px;}








