@charset "UTF-8";
/* CSS Document */

* {
    box-sizing: border-box; /* すべての要素にbox-sizingを適用 */
}

@media (max-width: 600px) {
	
.invisible-sp {
display: none;
}
	
img {
width:100%;
height:100%;	
}	

	
header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 10px;
    border-bottom: 1px solid #ccc;
    font-family: 'メイリオ', 'Meiryo', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', 'ＭＳ Ｐゴシック', Verdana, sans-serif;
}

	
	
	
.ntg-top {
    text-decoration: none;
    margin: 8px 0;
    color: #333;
    background: url(../images/bg_bt_olgtop.gif) no-repeat left center;
    background-size: 14px 13px;
    padding-left: 17px;
    font-size: 14px;
}
	
	
#dmm_ntgnavi {
    background: url(../images/bg_navimain.gif) center center repeat-x;
    border-bottom: 1px solid #ccc;
    border-top: 1px solid #ccc;
    font-size: 12px;
    font-family: 'メイリオ', 'Meiryo', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', 'ＭＳ Ｐゴシック', Verdana, sans-serif;
    display: flex;
    justify-content: space-between;
}

#dmm_ntgnavi ul {
    list-style: none;
    margin: 2px 0;
    padding: 0;
    display: flex;
    width: 50%;
}

#dmm_ntgnavi ul li {
    margin: 0 6px 0 0;
    line-height: 15px;
}

#dmm_ntgnavi .navi_left li > a {
    display: block;
    padding: 0 3px 0 8px;
    text-decoration: none;
    border: 1px solid #eee;
    border-radius: 3px;
}

#dmm_ntgnavi .navi_left li > a:hover {
    background: #eee;
    border: 1px solid #666;
    border-radius: 3px;
}

#dmm_ntgnavi .navi_left li > a span {
    display: block;
    padding: 9px 10px 7px 28px;
    color: #333;
    font-weight: bold;
}

#dmm_ntgnavi .navi_left li.dmm_top img {
    margin: 8px 5px 8px 0
}

#dmm_ntgnavi .navi_left li.ntg_top {
    margin-left: 10px;
	font-size:3vw;
}

#dmm_ntgnavi .navi_left li.ntg_top span {
    background: url(../images/bg_bt_olgtop.gif) 0 center no-repeat;
}

#dmm_ntgnavi .navi_right {
    justify-content: flex-end;
    font-size: 10px;
}

#dmm_ntgnavi .navi_right li {
    margin: 0 10px 0 0;
    padding: 8px 5px;
}

#dmm_ntgnavi .arrow {
    padding-left: 14px;
    background: url(../images/arrow_common.gif) no-repeat left center;
}

#dmm_ntgnavi .tx-point {
    font-size: 16px;
    font-weight: bold;
    color: #ff4b4b !important;
}

#dmm_ntgnavi p {
    margin: 0;
    line-height: 2.6em;
}

#dmm_ntgnavi .clear {
    clear: both;
}

/*bgvideo*/
.bg_media {
	max-width:640px;
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index:-2;
	overflow: hidden;
	background: #FFFFFF;
}	
	
		

.bg_media video {
    width:100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 50%;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    -o-object-fit: cover;
    object-fit: cover;
	overflow: hidden;
	background: #FFFFFF;
    opacity:0.3;
}
	
	
.menu-container {
    position: relative;
    width:100%;
}


.menu {
    margin: 0;
    padding: 0;
    display: none;
    position: fixed;
    top: 0;
    right: 0;
    width: 100%;
    background: url("../images/sp_menu_background.webp") no-repeat center;
    background-size: cover;
    z-index: 998;
    animation: slideIn 0.3s ease;
}

.menu-button {
    width: 13%;
    height: auto;
    border: none;
    cursor: pointer;
    position: fixed;
    top: 6%;
    right: 2%;
    z-index:  998;
}

.close-button {
    width: 52px;
    height: 51px;
    background: url("../images/sp_menu_btnimage_off.webp") no-repeat center center;
    background-size: contain;
    border: none;
    cursor: pointer;
    position: fixed;
    top: 1.5%; /* 同じ位置に配置するための値を設定します */
    right: 10px; /* 同じ位置に配置するための値を設定します */
}

.menu_list li{
    margin:3% 2% 0% 2%;
}

.menu_list li:first-child{
    margin:18% 2% 0% 2%;
}

.menu_list li:last-child{
    margin:5% 2% 8% 2%;
}	


#fv {
    background: url(../images/sp_fv_keyvisual.webp) no-repeat center;
    background-size: cover;
    background-position: top;
    width: 100%;
    height: auto;
	overflow:hidden;
    }


#fv .title img{
    position: relative;
    margin: 23% auto 5% auto;
    width: 60%;
    height: auto;
}	

#background-rap {
    background-image: url("../images/background.webp");
    background-repeat: repeat;
    background-size: 100%; /* スマホの画面幅に合わせて調整 */
}


#newgame {
    position: relative;
    z-index: 20;
    margin: -10% auto 0 auto;
    padding-bottom: 60%;
}

#newgame .btn {
    margin: 15% auto 0 auto;
    width: 98%;
    height: auto;
    position: relative;
    padding-top: 10%;
}

#newgame .title img{
    margin: 4% auto 0 auto;
    width: 100%;
    height: auto;
}

#newgame .title{
    margin: 7% auto -3% auto;
    width: 100%;
    height: auto;
}

#newgame .detail .info .image-container {
    text-align: center;
    margin: 3% auto 0 auto;
}

#newgame .detail .info .image-container .capt01 {
    width: 98%;
}

#newgame .detail .info .btn-container {
    display: flex;
    flex-wrap: wrap; /* ボタンを折り返して配置 */
    justify-content: center; /* 水平方向に中央揃え */
    align-items: center;
    margin-right: 6%;
}

#newgame .detail .info .btn-container .common-button {
    width: 40%; /* ボタンの幅を45%に設定 */
    height: auto; /* 高さを自動調整 */
    margin: 2%; /* 上下左右に2%のマージンを設定 */
}

#newgame .detail .info .btn-container .google-play-button {
    width: 120%; /* ボタンの幅を45%に設定 */
    height: auto; /* 高さを自動調整 */
   
}

#newgame .detail .info .btn-container .sp_gameplaybtn_browser {
    width: 120%; /* ボタンの幅を45%に設定 */
    height: auto; /* 高さを自動調整 */
   
}

#newgame .detail .info .btn-container .sp_gameplaybtn_gamesstore {
    margin-left: 0 3% 0 7%;
}

/* ネストしたbtn-containerのスタイル */
#newgame .detail .info .btn-container .btn-container {
    display: flex;
    flex-direction: column; /* 縦方向にボタンを配置 */
    width: 100%;
}

#newgame .detail .info .btn-container .btn-container .common-button {
    width: 100%;
    margin: 2% 0; /* 上下に2%のマージンを設定 */
}



#overview {
    width: 100%;
    height:350px;
    background: url(../images/sp_overview_background.webp) no-repeat center;
    background-size:cover;
    background-position: center;
    margin: -12% auto 15% auto;
    position: relative;
}

#overview .title img {
    margin-top: -38%; /* 上に 20px ずらす */
}

#overview .detail img{
    margin-top: -30%;
    width: 98%;
    height: auto;
}

#overview .text img{
    margin-top: 35%;
    width: 98%;
    height: auto;
}


#overview .btn img{
    margin-top: -5%;
    width: 90%;
    height: auto;   
}


#term img {
    margin: 10% auto 0 auto;
    width: 98%;
    height: auto;
}

#collaboration .title{
    margin: 7% auto -3% auto;
    width: 100%;
    height: auto;
}

#collaboration .detail p {
    margin-top: 3%; /* 上マージンを20pxに設定 */
    margin-bottom: 3%; /* 下マージンを20pxに設定 */
    width: 98%;
    height: auto;
}

#campaign {
    margin: 10% auto 0 auto; /* 上部に -10% のマージンを設定 */
    width: 100%;
    height: auto;
    position: relative;
}

#campaign .title {
    width: 100%;
    height:auto;
}


#campaign .detail {
    width: 100%;
    height: auto;
    margin: -7% auto 4% auto;
}

#reward .title{
    margin: 8% auto 0 auto;
    width: 100%;
    height: auto;
}

#reward .detail{
    margin: 2% auto 2% auto;
    width: 92%;
    height: auto;
}

.reward_title ul {
    margin: 0 auto 3% auto;
}

.reward_title li {
    display: inline-block;
    margin: 0 auto 0 auto;
    position: relative;
    width: 30%;
    
}

#reward .reward_title ul.pc {
    display: none;
}

#reward .reward_image .image-container {
    display: none; /* 初期状態ではすべての画像を非表示 */
    width: 100%;
}

#reward .reward_image .image-container.active {
    display: block; /* activeクラスが付いた画像のみを表示 */
}

#reward .reward_image .button-container {
    display: flex;
    flex-wrap: wrap; /* ボタンを折り返して配置 */
    justify-content: center; /* 水平方向に中央揃え */
    align-items: center;
    margin: -35% 6% 0 auto;
}

#reward .reward_image .button-container .common-button {
    width: 40%; 
    height: auto; 
    margin: 2% 2% 0 2%;
}

#reward .reward_image .button-container .google-play-button {
    width: 120%;
    height: auto;
}

#reward .reward_image .button-container .sp_gameplaybtn_browser {
    width: 120%;
    height: auto;
}

#reward .reward_image .button-container .sp_gameplaybtn_gamesstore {
    margin-left: 0 3% 0 7%;
}


#background-rap-2 {
    background-image: url("../images/background.webp");
    background-repeat: repeat;
    background-size: 100%;
}

#chara_intro .title img{
    margin: 10% auto 0 auto;
    width: 100%;
    height: auto;
}

#chara_intro .detail{
    margin: 1% auto 0 auto;
    width: 92%;
    height: auto;
}

#chara_intro .reward_title ul.pc {
    display: none;
}

#chara_intro .reward_title ul {
    margin: 2% auto 2% auto;
}

#chara_intro .reward_title li {
    display: inline-block;
    margin: 0 auto 0 auto;
    position: relative;
    width: 30%;
}


#chara_intro .chara_image .image-container {
    display: none; /* 初期状態では非表示 */
}

#chara_intro .chara_image .image-container.active {
    display: block; /* activeクラスが付いたら表示 */
}

#chara_intro .chara_image img {
    width: 98%; /* 画像の幅を親要素の幅いっぱいにする */
    height: auto; /* 高さを自動調整 */
    margin: 1% auto 1% auto;
}

#chara_intro .chara_image img:nth-child(odd) { /* 奇数番目の画像 */
    transform: translateY(-10px); /* 上に10pxずらす */
}

#chara_intro .chara_image img:nth-child(even) { /* 偶数番目の画像 */
    transform: translateY(10px); /* 下に10pxずらす */
}



/* SP版のスタイル */
#pack {
    margin: 38% auto 0 auto;
    width: 100%; /* 画面幅に合わせる */
    height: auto; /* 高さを自動調整 */
    background: url(../images/sp_pack_background.webp) no-repeat center;
    background-size: contain;
    z-index: 20;
    position: relative;
}


#pack .title img{
    margin: -26% auto 0 auto; /* SP版での位置を調整 */
    width: 100%;
    height: auto;
    position: relative; /* absolute から relative に変更 */
}

#pack .detail {
    margin-top: -27%;
}

#pack .detail .image-container  li {
    display: inline-block;
    margin: 3% auto 3% auto;
    padding: 1% 2% 1% 2%;
    position: relative;
    width: 43%;
}


#pack .detail .image-container .invisible-sp {
    display: none;
}

#pack .detail .image-container .invisible-pc {
    margin: 0% 0% 0% 0%;
    position: relative;
}



/* #pv セクションの調整 */
#pv {
    margin: 0 auto; /* 負のマージンを無くして調整 */
    width: 100%;
    height: auto;
    padding-top: 10px; /* 上部パディングを追加して調整 */
}

#pv .capt01 {
    margin: 5% auto 0 auto;
    width: 98%;
}

#pv .pic01 {
    margin: 5% auto 0 auto;
    width: 97%;
}

/* オーバーレイとポップアップビデオのスタイル */
#pv #overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.7);
    z-index: 999;
}

#pv #video-popup {
    display: block;
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    padding: 0;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    width: 95%;
    z-index: 9999;
    max-width: 800px;
    overflow: visible;
}

#pv #popup-video {
    width: 100%;
    height: auto;
    object-fit: contain;
}

#pv #close-button {
    margin: 0 0 0 -9%;
    width: 33px;
    height: 33px;
    position: absolute;
    top: -40px;
    right: auto;
    font-size: 20px;
    z-index: 9999;
}




/*illustration*/	
	
#illustration{
    margin:0% auto 0% auto;
    width:100%;
    height:auto;
    }
        
#illustration .capt01{
    margin:10% auto 5% auto;
    }
        
#illustration .btn li{
    margin:1.5% 0.5% 1.5% 0.5%;
    width:47%;
    display:inline-block;
    }
        
        
    
    /*sns*/	
        
#sns{
    margin:0% auto 10% auto;
    width:100%;
    height:auto;
    }
        
#sns .capt01{
    margin:10% auto 5% auto;
    }
        
#sns .btn li{
    margin:1.5% 1% 1.5% 1%;
    width:30%;
    display:inline-block;
    }


#page_btn {
	width:25%;
    position: fixed;
    right: 10px;
    bottom: 0;
    z-index: 100;
}

footer{
    position: relative;
    z-index: 98;
    background: #fff;
    height: 100px;
    }

.common-footer .copy{
    position: relative;
    top:40px;
    color:#757575;
    font-size:14px;
    z-index: 1000;
}

.common-footer a{
    color:#333;
}

.common-footer p{
    margin:0 auto 10px auto;
    color:#757575;
    font-size:14px;
}



/* --画像popup--- */
	

.img-popup {
    display: none; /* 初期は非表示 */
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5); /* 背景の半透明レイヤー */
    z-index: 9999;
  }
  
  /* ポップアップ表示時に適用するクラス */
  .img-popup.show {
    display: block;
  }
  
  /* ポップアップの内部コンテンツ */
  .img-popup-inner {
    position: relative;
    width:100%;
    max-width: 800px; /* 適宜調整 */
    margin: 50px auto;
    background: #fff;
   
    max-height: 80vh; /* 画面の高さを超えたらスクロール */
    overflow: auto;
  }
  
  /* 閉じるボタン */
  .img-popup-close {
    position: absolute;
    width:10%;
    top: 0px;
    right: 10px;
    background: transparent;
    border: none;
    font-size: 2rem;
    cursor: pointer;
    line-height: 1;
  }
  
  /* ポップアップ内のメインコンテンツ(画像など) */
  .img-popup-content {
    max-height: 70vh; /* ボタンなどの余白を考慮 */
    overflow-y: auto; /* 縦にスクロール可能 */
  }
  
  /* トリガー(ボタン)部分のスタイル例 */
  .img-popup-trigger {
    display: inline-block;
    margin: 10px;
    cursor: pointer;
  }

		}