@charset "utf-8";

/* 全体のスタイル調整 */

* {
    box-sizing: border-box;
    margin: 0;
}

html {
    scroll-behavior: smooth;
    position: relative;
    height: 100%;
}

section {
    margin: 50px auto 150px auto;
}

::-webkit-scrollbar{
　　width: 10px;
}
::-webkit-scrollbar-track{
　　background: #EEE;
　　border-left: solid 1px #ececec;
}
::-webkit-scrollbar-thumb{
　　background: #ccc;
　　border-radius: 10px;
　　box-shadow: inset 0 0 0 2px #EEE;
}

.sp-only {
    display: block;
}

.pc-only {
    display: none;
}

@media screen and (min-width:1024px) {
  .sp-only {
      display: none;
  }

  .pc-only {
      display: block;
  }
}

/* ウィンドウ背景色の設定 */

body {
    min-width: 360px;
    position: relative;
    background-attachment: fixed;
    background-color: #000;
    color: #FFF;
    margin: 0;
    padding: 0;
    font-size: 1rem;
    line-height: 25px;
    font-family: "游明朝", 'YuMincho', "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", 'serif';
}

body::before {
    content: "";
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    z-index: -3;
    width: 100vw;
    height: 100vh;
    background: url("../images/background_sp.jpg") no-repeat left top;
    background-color: #000;
    background-size: 100% auto;
}

.wrap {
    overflow: hidden;
    width: 100%;
}

/* swiper */
.swiper-container {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
}

@media screen and (min-width:1024px) {
    .container {
        margin: 24px;
        width: 80%;
        display: flex;
        flex-flow: column;
        align-items: center;
        justify-content: center;
        text-align: center;
    }
    
    .swiper-container {
        width: 100%;
        height: 100%;
        margin: 0;
        padding: 0 24px;
    }
    .swiper-wrapper {
        padding: 24px 0;
    }

}

.swiper-slide {
    text-align: center;
    font-size: 18px;
    background: transparent;
      /* Center slide text vertically */
    display: -webkit-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    -webkit-align-items: center;
    align-items: center;
}
.swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border: 1px solid #FFF;
}
/* リンク色の設定 */

a, a:link, a:visited {
    color: #7971ea;
    text-decoration: none;
}

a:hover, a:focus {
    color: #393e46;
    text-decoration: none;
}

/* ヘッダー、ナビ、フッターの共通設定 */

header{
    position: relative;
    height: 600px;
    margin: 0px;
    padding: 0px;
}

footer {
    margin: 0 auto;
    padding: 5px;
    background: #7971ea;
}

footer p {
    margin: 0 auto;
    text-align: center;
}

footer small {
    color: #EEE;
}

/* メニュー */
.nav {
    padding: 0;
    bottom:0;
    width: 100vw;
}
.nav li {
    list-style: none;
    text-align: center;
}
.nav li a {
    text-decoration: none;
    color: #fff;
    padding: 8px 12px;
    display: block;
}

#gnav-content {
    overflow: auto;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 300;
    width: 70%;
    max-width: 300px;
    height: 100%;
    background: rgba(0, 0, 0, 0.8);
    transition: 0.3s ease-in-out;
    transform: translateX(-105%); /*メニューの中身*/
}
.gnav-item {
    border-bottom: 2px dotted #eee;
    margin: 10px;
    padding-bottom: 20px;
}

.gnav-item a {
    color: #7971ea;
    font-size: 12px;
    display: block;
    width: 200px;
    text-align: center;
}
.gnav-item a:active, a:hover {
    color: #b643cd;
}

.g-nav-item img {
    max-width: 400px;
    width: 100%;
}

.gnav-policy {
    margin: 10px;
    padding-bottom: 5px;
}
.gnav-policy a {
    color: #841818;
    font-size: 10px;
    display: block;
    text-align: center;
    padding: 0 10px;
}

ul {
    margin: 1em 0;
    padding: 0;
    list-style: none;
}

@media screen and (min-width:1024px) {
    
    body::before {
        content: "";
        display: block;
        position: fixed;
        top: 0;
        left: 0;
        z-index: -3;
        width: 100vw;
        height: 100vh;
        background: url("../images/background.jpg") left 0% no-repeat;
        background-color: #FFF;
        background-size: cover;
    }
     /* demo style */
    ul, li{
        margin: 0px;
        padding: 0px;
    }
    .nav {
        list-style: none;
        display: flex;
        justify-content: center;
        bottom: 0;
        z-index: 100;
        margin: -7% auto auto auto;
        padding: 0;
    }
    .nav ul {
        list-style: none;
        display: flex;

    }
    .nav li {
        width: auto;
        height: auto;
        text-align: center;
        padding: 0px;
        margin: 0px 10px;
    }
    .nav li img {
        max-width: 400px;
        width: 100%;
        height: auto;
    }
    .nav li a {
        text-decoration: none;
        color: #FFF;
        font-weight: bold;
    }

    .gnav-item {
        border-bottom: none;
        margin: 0;
        padding-bottom: 0;
    }
    
    /* フェードアウト */
    .top {
        position: fixed;
        width: auto;
        padding: 0;
        bottom: 5.5%;
        right: -10%;
        z-index: 100;
    }
    .top img {
        width: 45%;
        height: auto;
    }
    
    .switch {
        margin-top: 20px;
        left: -120px;
        position: absolute;
        z-index: 2;
    }
    .switch ul{
        text-align: center;
    }
    .switch img {
        object-fit: cover;
        width:100px;
        padding: 5px;
    } 
    
    .title {
        top: 0px;
        left: 8%;
        position: absolute;
        width: 35%;
        height: auto;
    }

    .title img {
        width: 100%;
    }
}


/* ページタイトルの設定 */

/* 大見出しの設定 */
h1 {
    position: relative;
    display: inline-block;
    padding: 5px 10px 5px 50px;
    color: #fff;
    border-radius: 100vh 0 0 100vh;
    background: #b643cd;
    width: 92%;

}

h1:before {
  position: absolute;
  top: calc(50% - 7px);
  left: 10px;
  width: 14px;
  height: 14px;
  content: '';
  border-radius: 50%;
  background: #fff;
}

h2{
	font-family: 'Fondamento', cursive;
	text-align:center;
	font-size: 2em;
    color: #FFF;
	text-shadow: 2px 2px #fff, 5px 5px rgba(0, 188, 212, 0.4);
	text-shadow: 0 0 5px #fff, 0 0 5px #fff, 0 0 5px #fff, 0 0 5px #aa00de, 0 0 10px #aa00de, 0 0 20px #aa00de, 0 0 50px #aa00de, 0 0 50px #aa00de;
	transform: rotate(-3deg);
}

h3 {
  position: relative;
  color:#FFF;
  padding: 2px 10px;
  background: #b643cd;
  width:40%;
}

h3:before {
  position: absolute;
  top: -8px;
  left: -8px;
  width: 100%;
  height: 100%;
  content: '';
  border: 2px solid #000;
}

/* 小見出しの設定 */
h4 {
    display: block;
}


/* コンテンツ枠の設定 */
.blanc {
    height: 200px;
}
.container {
    width: 97%;
    display: flex;
    flex-flow: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}
.container01 {
    margin: 0;
    padding: 0;
    width: 100%;
    display: flex;    
}
.box {
    padding: 8px;
    width: 90%;
    background-color:rgba(0,0,0,0.8);
    text-align: center;
    align-items: center;
    border-radius: 8px 8px 8px 8px;
    border: solid 1px #AA62FF;
    font-size: 0.8rem;
}
.switch_sp {
    margin-top: -10px;
    left: -160px;
    position: absolute;
    z-index: 2;
}
.switch_sp ul{
    text-align: center;
}
.switch_sp img {
    object-fit: cover;
    width:60px;
    padding: 5px;
} 
.mv {
    margin: 0 auto;
}

.mv img {
    width: 864px;
    object-fit: contain;
}

.title_sp {
    top: 350px;
    left: 2%;
    position:relative;
    width: 60%;
    height: auto;
}

.title_sp img {
    width: 100%;
}

.eShop {
    width: 100%;
}

.eShop img {
    width: 200px;
}

.youtube {
    width: 800px;
    height: 450px;
    position: relative;
    padding: 0;
    border-radius: 10px 10px 10px 10px;
    border: 1px solid #fdffe7;	/* 線の太さ・種類・色 */
    overflow: hidden;
    margin-top: 80px;
}

.youtube iframe {
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}

.youtube2 {
    margin: 10% auto 100px auto;
    width: 100%;
    height: 100%;
    position: relative;
    padding-top:75%;
    overflow: hidden;
}
.youtube2 iframe {
    position: absolute;
    width: 100% !important;
    height: 100% !important;
    top: 0;
    right: 0;
}

.gallery {
    margin-top: 20%;
}

.eShop {
    margin: 0 auto;
    text-align: center;
}

.eShop img {
    max-width: 200px;
    width: 100%;
    height: auto;
}

.g-item {
    box-sizing: border-box;
}

/*Flexbox*/
#new.flex-box, #movie.flex-box, #picture.flex-box, #lilinor.flex-box, #zasha.flex-box{
    padding:  0px;             /* 余白指定 */
/* height:0px; */             /* 高さ指定 */
    display: flex;              /* フレックスボックスにする */
    flex-wrap: wrap;            /* 折り返し指定 */
    align-content:stretch;      /* 折り返し時の配置指定 */
    color: #FFF;
}
/*Character*/
#character .flex-box{ 
    width:100%;
    margin-left:40%;
}
#character .flex-item{
	text-align:left;
}

#character .flex-item.image{
	width:20%;
    text-align: right;
}

#character .flex-item.text-area{
	flex:2;
    vertical-align: middle;
}
.character {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-left: 200px;
    margin-bottom: 80px;
}
.character_sp {
    display: block;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin-bottom: 80px;
    font-size: 0.8rem;
}
.table_top{
    margin: 0;
    max-width: 1660px;
    width: 86.46%;
    height: 65px;
    background: url("../images/table_top.png") no-repeat;
    background-size: 100% 100%;
    color: #FFF;
}
.table_center {
    margin: 0;
    max-width: 1660px;
    width: 86.46%;
    height: auto;
    background: url("../images/table_center.png") repeat-y;
    background-size: 100% 100%;
    color: #FFF;
}
.table_bottom {
    margin: 0;
    max-width: 1660px;
    width: 86.46%;
    height: 65px;
    background: url("../images/table_bottom.png") no-repeat;
    background-size: 100% 100%;
    color: #FFF;
}

.name{
	text-align:center;
	line-height:2em;
	font-size:larger;
	font-weight:bold;
	color: #FFF;
	text-shadow: 
		0 0 0.10em #AA62FF,
		0 0 0.15em #AA62FF,
		0 0 0.80em #AA62FF,
		0 0 1.00em #AA62FF;
}
.name:before {
    content: "\00ab \0020";
	font-size:larger;
}
.name:after {
    content: "\0020 \00bb";
	font-size:larger;
}
.illust_1 {
    position: absolute;
    margin-left: -70%;
    margin-top: -2%;
    max-width: 400px;
    width: 20%;
    height: auto;
    z-index: 2;
}
.illust_2 {
    position: absolute;
    margin-left: 70%;
    margin-top: -2%;
    max-width: 400px;
    width: 20%;
    height: auto;
    z-index: 2;
}
.illust_1 img, .illust_2 img {
    width: 100%;
    height: auto;
}
.illust_sp {
    position: relative;
    display: flex;
    justify-content: center;
    margin: 10% auto;
}
.collabo_img {
    max-width: 100px;
    width: 40%;
}
.collabo_img img {
    width: 100%;
    height: auto;
}
.story {
    padding: 10px auto auto 100px;
}
.story p {
    text-align: left;
    padding-left: 30%;
    color: #FFF;
    width: 90%;
}
.story_sp {
    padding: 0 auto;
}
.story_sp p {
    padding: 0 auto;
    text-align: center;
    width: 90%; 
    font-size: 0.8rem;
    display: block;
    margin-left: auto;
    margin-right: auto;
}
.about {
    padding: 10px auto auto 100px;
}
.about p {
    text-align: left;
    padding-left: 30%;
    color: #FFF;
    width: 90%;
}
.about_sp {
    padding: 0 auto;
}
.about_sp p {
    font-size: 0.8rem;
    text-align: center;
    color: #FFF;
    width: 90%;
    display: block;
    margin-left: auto;
    margin-right: auto;
}
.collaboration {
    max-width: 1660px;
    width: 86.46%;
    height: 300px;
    padding: 10px auto auto 100px;
}
.collaboration p {
    text-align: left;
    padding-left: 30%;
    color: #FFF;
    width: 90%;
}

.product {
    max-width: 1660px;
    width: 86.46%;
    height: auto;
    margin-bottom: 10px;
    color: #FFF;
}
.product table {
    margin-left: auto;
    margin-right: auto;
    padding:0;
}
.product_1 {
    margin: 5px auto;
    border: solid 1px #AA62FF;
    color: #AA62FF;
    padding: 8px;
}
.product_2 {
    margin-bottom: 15px;
}
.product_2 p {
    font-size: 0.6rem;
}
.ages img {
    vertical-align: middle;
}
.ages {
    vertical-align: middle;
}
.steam {
    margin-bottom: 200px;
}
.steam img {
    width: 100%;
    height: auto;
}

/* 画像の設定 */
.image img {
    max-width:1000px;
    width:45%;
    height: auto;
}

.logo-area {
    width: 200px;
    margin: 0;
    padding-top: 10px;
    text-align: left;
}
.logo {
    margin: 0 0 0 20px;
    width: 100px;
}

.thumbnail {
    width: 320px;
    height: auto;
    border-radius: 8px 8px 8px 8px;
    box-shadow: 1px 1px 5px #757575;
}

.img_wrap:hover img{
  opacity: 0.6;
  transition-duration: 0.3s;
}

.img_wrap_a:hover img{
  opacity: 0.6;
  transition-duration: 0.3s;
}

/* リンク */

#character, #story, #about, #collaboration {
    display: block;
    margin-top: -50px;
    padding-top: 50px;
}
.link {
    padding: 0 5%;
    text-align: left;
}