/* -----------------------------------------
body
--------------------------------------------*/

/*
見出し Hiragino Mincho W6 JIS2004

文 Hiragino Mincho W3 JIS2004
*/
html,body{
    height: 100%;
}
html{
    font-size: 62.5%;
}
body {
    margin:0;
    padding:0;
    font-family:  'Hiragino Mincho W3 JIS2004',Georgia,游明朝,"Yu Mincho",YuMincho,"Hiragino Mincho ProN",HGS明朝E,メイリオ,Meiryo,serif;;    
    font-size: 16px;
    color:#fff;
    background: #000000;
    line-height: 1.6;
    letter-spacing: 0.02em;
    -webkit-text-size-adjust: 100%;

 }

/* -----------------------------------------
common
--------------------------------------------*/

/* --- clearfix --- */

.cf:before,.cf:after {content:"";display:table;}
.cf:after {clear:both;}
.cf {*zoom:1;}

/* css sprite */
.s{
  background: url(images/sprite.png) no-repeat 0 0;
  background-size: 500px 500px;
  text-indent: 100%;
  overflow: hidden;
  display: inline-block;
  vertical-align: middle;
  white-space: nowrap;
}
.sb:before{
  content: '';
  background-image: url(images/sprite.png);
  background-repeat: no-repeat;
  background-position: 0 0;
  background-size: 500px 500px;

  overflow: hidden;
  display: inline-block;
  vertical-align: middle;
}
.sa:after{
  content: '';
  background: url(images/sprite.png) no-repeat 0 0;
  background-size: 500px 500px;
  text-indent: 100%;
  overflow: hidden;
  display: inline-block;
  vertical-align: middle;
}

/* ----------------- 
reset
----------------- */
.pc{
    display: none;
}
em{
    font-style: normal;
}
a{
    text-decoration: none;
    color: inherit;
}
img{
    vertical-align: bottom;
    width: 100%;
    height: auto;

}
a img{
  transition : opacity 500ms;
}
a img:hover{
  opacity: 0.6;
}
ul,ol{
    margin:0;
    padding: 0;
}
li{
    margin:0;
    padding: 0;
    list-style-type: none;
}
p{
    margin:1em 0;
    line-height: 1.9;
}
/* ----------------- 



/* ----------------- 
text
----------------- */
.align_center{
    text-align: center;
}
.color_yellow{
    color: #fcee21;
}
.nobi{
  margin-right: 10px;
  letter-spacing: -5px;
  display: inline-block;
}

/* ----------------- 
basic frame 
----------------- */
#sw_hd{
  width: 30px;
  height: 30px;
  background: rgba(255,255,255,0.7);
  position: fixed;
  right:10px;
  top:10px;
  z-index: 31;
  opacity: 0;
  transition: opacity 500ms;
}
#sw_hd.open{
  opacity: 1;
}
#sw_hd span{
  width: 20px;
  height: 2px;
  background: #2c0e03;
  position: absolute;
  top:50%;
  left:50%;
    transform:translate(-50%,-50%);
}
#sw_hd span::before,
#sw_hd span::after{
  content: '';
  width: 20px;
  height: 2px;
  background: #2c0e03;
  position: absolute;
  top:-6px;
  left:0;
}
#sw_hd span::after{
  top:auto;
  bottom:-6px;
}

#space_sp_sns{
  margin:20px auto;
}
#space_sp_sns img{
  width: auto;
  height: 30px;
}
#space_sp_sns ul{
  display: block;
  text-align: center;
}
#space_sp_sns li{
  margin:5px 10px;
  display: inline-block;
}
#space_sns{
  display: none;
}

#loading{
  background: rgba(0,0,0,1);
  position: fixed;
  top:0;
  left:0;
  width: 100%;
  height: 100%;
  z-index: 100;
  transition: all 1200ms ease 500ms;
}
#loading div.img{
  width: 200px;
  position: absolute;
  top:50%;
  left:50%;
  transform: translate(-50%,-50%);
  z-index: 1;
  transition: all 400ms;
}
#loading div.img::before{
  content: '';
  top:0;
  left:0;
  position: absolute;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,1);
  animation: loading_anime 2500ms 0ms ease infinite;
  z-index: 2;
}

@keyframes loading_anime{
  0%{
    background: rgba(0,0,0,1);
    }
  50%{
    background: rgba(0,0,0,0);
    }
  60%{
    background: rgba(0,0,0,1);
    }
  100%{
    background: rgba(0,0,0,0);
    }
}
#loading.move{
  opacity: 0;
}
#loading.move div.img{
  transform: translate(-2000px,-50%);
}
#loading.move div.img::before{
  width: 600px;
  height: 300px;
  background: url(images/common/loading_move.png) no-repeat 0 0;
  background-size: 400px 200px;
  animation:none;
}

#tw_popup{
  display: none;
}

#menu_button{
  position: fixed;
  top:0;
  right: 0;
  width: 60px;
  height: 60px;
  cursor:pointer;
  z-index: 10;
}
#space_menu{
  position: fixed;
  top:0;
  right: 0;
  width: 300px;
  height: 100%;
  background: url(images/common/menu_bg.jpg) 0 0;
  background-size:103px 105px;
  z-index: 20;

  transform:translate(300px,0);
  transition:transform 500ms;
}
#space_menu.open{
  transform:translate(0,0);  
}
#menu_button_close{
  position: absolute;
  top:0;
  left: 0;
  width: 60px;
  height: 60px;
  cursor:pointer;;
}
#menu_button_close::before,
#menu_button_close::after{
  content: '';
  position: absolute;
  background:#000;
  display: block;
  width: 40px;
  height: 4px;
  top:50%;
  left:50%;
  margin:-2px 0 0 -20px;
}
#menu_button_close::before{
  transform:rotate(-45deg);
}
#menu_button_close::after{
  transform:rotate(45deg);
}
#space_menu ul{
  padding:100px 30px;
}

#space_menu li{
  background: url(images/common/menu_line.png) repeat-x left top;
  background-size:120px 1px;
  line-height: 14px;
}
#space_menu li:first-child{
  background-image: none;
}
#space_menu li a,
#space_menu li span{
  padding:20px 10px;
  display: block;
}
#space_menu li img{
  width: auto;
  height: 14px;
}

#space_menu span.open_trailer{
  cursor: pointer;
}
#space_menu .preparing img{
  opacity: 0.4;
}
@keyframes anime_shake {
    0% {transform: translate(0px, 0px) rotateZ(0deg)}
    5% {transform: translate(2px, 2px) rotateZ(1deg)}
    10% {transform: translate(0px, 2px) rotateZ(0deg)}
    15% {transform: translate(2px, 0px) rotateZ(-1deg)}
    20% {transform: translate(0px, 0px) rotateZ(0deg)}
    100% {transform: translate(0px, 0px) rotateZ(0deg)}
}

footer{
    padding:20px 0;
    background: #2c0e03;
}
footer p{
    color: #fff;
    font-size: 12px;
    font-size: 1.2rem;
    line-height: 1.5;
    text-align: center;
}

footer ul.sns .email a{
    background-color: #fff;
}

/* ----------------- 
list 
----------------- */
ul.img{
    margin:30px 0;
}
ul.img li{
    margin:10px 0;
}
/* ----------------- 
Link 
----------------- */

/* youtube */
#black {
    background: rgba(0,0,0,0.8);
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 50;
}
#white{
    background: rgba(255,255,255,1);
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 51;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}
.youtube {
    width: 100%;
    padding:50px 10px;
    box-sizing: border-box;
    max-width: 1100px;
    position: fixed;
    top:50%;
    left:50%;
    transform: translate(-50%,-50%);
}
.youtube span {
    position: absolute;
    overflow: hidden;
    display: block;
    text-indent: 100%;
    white-space: nowrap;
    width: 40px;
    height: 40px;
    top: 0;
    right: 10px;
    background: #fff;
    z-index: 20;
    cursor: pointer;
}
.youtube span::before,
.youtube span::after{
    content: '';
    width: 30px;
    height: 2px;
    background: #000;
    position: absolute;
    top: 20px;
    left: 5px;
    transform: rotate(-45deg);
}
.youtube span:after {
    transform: rotate(45deg);
}
.youtube .iframe_wrapper{
  width: 100%;
  padding-bottom: 56.25%;
  position: relative;
}
.youtube iframe {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    margin: auto;
    border-style: none;
}

/* ----------------- 
title 
----------------- */

h1,h2{
  text-align: center;
}

h1{
  padding:40px 0;
  margin:0;
}
h2{
  padding:30px 0;
  margin:0;
}

h3{
  margin:0;
  padding: 0;
}
.title_name{
  margin:0 15px;
  padding: 0;
  font-family: 'Hiragino Mincho W6 JIS2004',serif;
  line-height: 1;
}
.title_name span{
  padding:0.3em 0;
  display: block;
  text-align: left;
}
.title_name .role{
  font-size: 15px;
  color: #4d93a3;
}
.title_name .name{
  padding-bottom: 0;
  font-size: 20px;
}

section.chapter{
    padding:0 0;
    position:relative;
}
/* ----------------- 
color bg_color
----------------- */


/* main */
article p{
    margin:1em 0;
    padding:0 0;
    color: #fff;
    font-size: 14px;
    font-size: 1.4rem;
    line-height: 1.8;
    overflow-wrap: break-word;
    word-wrap: break-word;
    word-break: break-all;
    text-align: justify;
}
p strong{
    font-size: 20px;
    font-size: 2rem;
    font-family: 'Shuei ShogoMincho Sen', serif;
    line-height: 1.3;
}
.align_right{
    text-align: right;
}

.sp p{
  margin:0;
  padding:0;
}

#page_home .space_main{
  height: 389px;
  background: url(images/home/sp_back.jpg) no-repeat center top;
  background-size: 375px 389px;
  position: relative;
  z-index: 0;
}
#page_home .space_main::before{
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,1);
  z-index: 1;
  opacity: 1;
}
#page_home .space_main.open::before{
  animation: main_anime 1000ms linear 1000ms forwards;
}
@keyframes main_anime{
  0%{
    opacity: 1;
  }
  100%{
    opacity: 0;
  }
}
#page_home p.copy1{
  width: 26px;
  position: absolute;
  top:60px;
  left:50%;
  transform: translate(-50%,0);
  z-index: 2;
}
#page_home p.copy1 img.shake{
  animation: anime_shake 1s infinite;
}
#page_home p.copy2{
  margin-top:-20px;
  position: relative;
  z-index: 2;
}
#page_home .banner{
  margin:10px auto;
  width: 156px;
}
#page_home .banners li{
  margin:20px auto;
  text-align: center;
}
#page_home .ticket img{
  width: 156px;
}
#page_home .tshirt img{
  width: 165px;
}
#page_home .banner_tshirt{
  margin:10px auto;
  width: 165px;
}
#page_home .banner_day1st{
  margin:10px auto;
  width: 168px;
}
/* cast & staff*/
#page_cs h1 img{
  max-width: 316px;
}

#page_cs .item{
  padding-bottom:50px;
}
#page_cs .content{
  margin:0 15px;
}

#page_cs .space_img{
  padding-bottom: 20px;
}
#page_cs #section_cast h2 img{
  max-width: 119px;
}
#page_cs #section_staff h2 img{
  max-width: 137px;
}

#page_about article{
  position: relative;
}
#page_about article:before{
  content: '';
  height: 100%;
  width: 100%;
  max-width: 1280px;
  position: absolute;
  left:0;
  top:0;
  background: url(images/about/article_back.jpg) no-repeat center top;
  background-size: contain;
  z-index: -1;

}

#page_about h1{
  padding-top:100px;
  padding-bottom: 10px;
}
#page_about h1 img{
  max-width: 413px;
}
#page_about #section_comments .layout_4 p{
  margin:-15px auto;
  text-align: center;
}
#page_about #section_comments .layout_4 p img{
  width: auto;
  height: 70px;
}

#page_about h2 img{
  width: auto;
  height: 61px;
}

#page_about h3 img{
  max-width: 491px;
}

#page_about .space_text{
  margin:0 15px;
}

#page_about #section_introduction{
  margin-top:40px;
}

#page_about #section_story{
  position: relative;
}
#page_about #section_story h2{
  padding:50px 0;
}
#page_about #section_story::before{
  content: '';
  position: absolute;
  top:-30px;
  left:0;
  width: 100%;
  max-width: 1100px;
  height: 100%;
  max-height: 630px;
  z-index: -1;
  background: url(images/about/story_back.jpg) no-repeat left top;
  background-size: cover;
}
#page_about #img_list{
  margin:50px 0;
}

/* theater */

#page_theater h1{
  padding-bottom:0;
}
#page_theater h1 img{
  max-width: 249px;
}

#page_theater .banner{
  text-align: center;
}
#page_theater .banner img{
  max-width: 360px;
}

#page_theater .space_table{
  margin:0 5px 30px 5px;
}

#page_theater table{
  margin:30px 0 0 0;
  width: 100%;
  border-collapse: collapse;
}
#page_theater th,
#page_theater td{
  padding:0.8em 3px;
  font-weight: 400;
  line-height: 1;
  text-align: left;
}
#page_theater thead th,
#page_theater thead td{
  border-top:3px solid rgba(255,255,255,0.7);
  border-bottom:3px solid rgba(255,255,255,0.7);

  font-size: 11px;
  font-size: 1.1rem;
  font-weight: normal;
}

#page_theater tbody th,
#page_theater tbody td{
  font-size: 11px;
  font-size: 1.1rem;
  border-top:1px solid rgba(255,255,255,0.7);
  border-bottom:1px solid rgba(255,255,255,0.7);
}
#page_theater tbody th{
  font-size: 10px;
  font-size: 1rem;
}
#page_theater tbody td:nth-of-type(2){
  padding-right: 2px;
  font-size: 10px;
  font-size: 1rem;
}

/* tablet or pc devices*/
@media screen and (min-width:768px){
    /*　768px以上はここを読み込む　*/
    body{
      padding:0 0 0 0;
    }
    .sp{
        display: none;
    }
    .pc{
        display: block;
    }
    img.pc,
    br.pc{
      display: inline;
    }
    .wrapper{
        margin:0 auto;
        max-width: 1100px;
        position: relative;
    }
    #space_menu li img{
      height: 17px;
    }
    #space_sp_sns{
      display: none;
    }

    #space_sns{
      display: block;
      margin:0 0 10px 0;
      padding:0 60px 0 20px;
      position: absolute;
      top:0;
      left:0;
      width: 100%;
      box-sizing: border-box;
      z-index: 10;
    }

    #space_sns p.fb{
      position: absolute;
      margin:0;
      padding:0;
      width: 316px;
      top:0;
      left:0;
      
    }
    #space_sns .fb a{
      display: block;
      padding:0;
    }

    #space_sns p.fb img{
      width: 100%;
      height: auto;
    }


    #space_sns ul{
      margin:10px 0;
      display: flex;
      align-items: center;
      width: 100%;
    }
    #space_sns li{
      padding:0px 10px;
      vertical-align: top;
      line-height: 16px;
    }
    #space_sns img{
      width: auto;
      height: 18px;
      vertical-align: bottom;
    }

    #space_sns li.tw{
      margin-left:auto;
    }

    /* footer ----
    */
  #footer_sticky{
    position: fixed;
    bottom:0;
    left:0;
    width: 100%;
    padding:20px 0;
    background: #181818;
    text-align: center;
    z-index: 10;
  }
    p.date{
      margin: 0 auto;
      padding: 0 10px;
      line-height: 1;
    }

    p.date img{
      max-width: 866px;
    }

  .youtube{
    padding:60px 20px;
  }
  .youtube span{
    right:20px;
  }

    /* ----------------- 
    title 
    ----------------- */
    h1{
      padding:100px 0 80px 0;
    }
    h2{
      padding:70px 0 40px 0;
      margin:0;
    }

    .title_name{
      margin: 0 20px;
    }
    .title_name .role{
      font-size: 20px;
    }
    .title_name .name{
      font-size: 26px;
    }
    .title_category{
      margin-top:50px;
      margin-bottom: -10px;
    }

    article{
      padding-bottom: 60px;
    }

    /* layout */
    .layout_1{
      display: flex;
      flex-direction: row-reverse;
    }
    .layout_1 .space_text{
      width: 60%;
    }
    .layout_1 .space_img{
      padding-top:20px;
      flex:1;
    }
    .layout_2{
      display: flex;
      flex-direction: row-reverse;
    }
    .layout_2 .space_text{
      width: 60%;
    }
    .layout_2 .space_img{
      padding-top:85px;
      flex:1;
    }

    .layout_3{
      display: flex;
      flex-wrap: wrap;
    }
    .layout_3 .item{
      width: 50%;
    }





    /* ----------------------
    --------------- home */
    #page_home section.pc{
      padding:10px 0 0 0;
    }
    #page_home .space_main{
      margin:0px auto -30px auto;
      background: url(images/home/pc_back.jpg) no-repeat center center;
        background-size: 1280px 387px;
        max-width: 1040px;
    }

    #page_home .logo{
      margin:30px auto 0 auto;
      max-width: 746px;
    }
    #page_home .copy1{
      width: 46px;
      position: absolute;
      top:0px;
      right:80px;
      z-index: 2;
    }
    #page_home .copy1 img.shake{
      animation: anime_shake 1s infinite;
    }

    #page_home .copy2{
      width: 164px;
      position: absolute;
      top:0px;
      left:30px;
      z-index: 2;
    }

    #page_home .img{
      margin:30px auto 0 auto;
      width: 743px;
    }

    #page_home .credit{
      margin: 0 auto;
      padding: 30px 0;
      width: 625px;
    }
    #page_home .banner{
      margin:20px auto -10px auto;
    }

    #page_home ul.banners{
      margin:20px auto 0 auto;
      position: relative;
      display: flex;
      justify-content: space-around;
      justify-content: center;
      align-items: center;
    }
    #page_home .banners li{
      margin:0 10px;
    }
    


    #page_cs .content{
      margin:0 20px;
    }
    #page_cs p{
      letter-spacing: 1px;      
    }

    #page_cs .layout_3 p{
      letter-spacing: 0px;
    }
    #page_cs .layout_3 .title_name .role{
      font-size: 18px;
    }
    #page_cs .layout_3 .title_name .name{
      font-size: 20px;
    }

  #page_about #section_comments p:nth-of-type(1){
    text-align: center;
  }
  #page_about #section_comments p:nth-of-type(1) img{
    width: auto;
    height: 151px;
  }
  #page_about #section_comments .layout_4 p img{
    height: 110px;
  }

  #page_about .space_text{
    margin-left:20px;
    margin-right: 20px;
  }

  #page_about #section_story::before{
    top:-100px;
    height: 100%;
  }
  #page_about #section_story .layout_1{
    flex-direction: row;
  }

  #page_theater h1{
    padding:100px 0 0 0;
  }
  #page_theater .space_table{
    margin:0 20px 60px 20px;
    padding:10px 15px;
  }
  #page_theater thead th,
  #page_theater thead td{
    padding: 0.8em 0.8em;
    font-size: 14px;
    font-size: 1.4rem;
  }
  #page_theater tbody th,
  #page_theater tbody td{
    padding: 1em 0.8em;
    font-size: 16px;
    font-size: 1.6rem;
  }

  #page_theater tbody td:nth-of-type(2){
      font-size: 16px;
      font-size: 1.6rem;
  }
}




@media screen and (min-width:1100px){
    .wrapper{
      margin:0 auto;
      max-width: 1100px;
    }
    #sw_hd{
      display: none;
    }



  #tw_popup{
      display: block;
      transform: translateX(240px);
      transition: transform 500ms;
      width: 230px;
      height: 450px;
      padding:5px;
      position: fixed;
      top:150px;
      right:0;
      background: #fff url(images/common/tw_back.jpg);
      background-size:120px 120px;
      z-index: 20;

  }
  #tw_popup.open{
    transform: translateX(0);
  }

  #timeline{
    width: 230px;
    height: 450px;
    overflow: auto;
    background: #fff;

  }
  #timeline #display_timeline{
    margin:0;
    padding:0;
    width: 48px;
    height: 248px;
    background-position: 0 0;
    position: absolute;
    top:0;
    left:-48px;
    cursor: pointer;
  }
  #timeline iframe{
    height: 180px;
    overflow: auto;
  }


    /* layout */
    .layout_1 .space_img{
      padding-top:15px;
    }

    .layout_2 .space_img{
      width: 400px;
      flex:initial;
    }
    .layout_2 .space_text{
      width: 700px;
      flex:initial;
    }



    /* ----------------- 
    title 
    ----------------- */
    .title_name{
      margin: 0 0 0 100px;
    }
    .title_name .role{
      font-size: 20px;
    }
    .title_name .name{
      font-size: 26px;
    }


    article p{
        margin:2em 0;
        font-size: 15px;
        line-height: 2;
    }

    /* home */
    #page_home p.logo{
      position: relative;
      z-index: 2;
    }
    #page_home .space_main{
      margin-top:-20px;
      margin-bottom: -10px;

      margin-top:-40px;
      margin-bottom: -30px;

    }
    #page_home .copy1{
      top:30px;
    }
    #page_home .copy2{
      top:70px;
      left:0;
    }
    #page_home .space_sub{
      margin:0 auto;
      position: relative;
      max-width: 1100px;
    }
    #page_home .banner{
      position: absolute;
      right:30px;
      bottom: 240px;
      z-index: 20;
      transform:translate(50%,0);
    }

    #page_home .banner img{
      transform:rotate(0);
    }


    #page_home .banners{
      margin-top:-50px;
      display: block;
      position: relative;
      height: 0px;
    }
    #page_home .banners li{
      position: absolute;

    }

    #page_home .banner_tshirt{
      position: absolute;
      right:60px;
      top:-80px;
      z-index: 1;
      transform:translate(50%,0);
    }
    #page_home .banner_day1st{

    }
    #page_cs .layout_2 .content{
      margin:0 40px 0 100px;
    }

    #page_cs .layout_2 .space_img{
      padding-top:100px;
    }

    #page_cs .layout_3{
      margin:0 auto;
      max-width: 900px;
      justify-content: space-between;
    }
    #page_cs .layout_3 .item{
      width: 48%;
    }
    #page_cs .layout_3 .content{
      margin:0;
    }
    #page_cs .layout_3 .title_name{
      margin-left:0;
    }
    #page_cs .layout_3 .title_name .role{
      font-size: 20px;
    }
    #page_cs .layout_3 .title_name .name{
      font-size: 26px;
    }

  #page_about article:before{
    transform:translate(-50%,0);
    left:50%;
    max-width: 1280px;
  }

  #page_about h1{
    padding:280px 0 100px 0;
  }

  #page_about .layout_4{
    margin: 0 auto;
    display: flex;
    width: 1160px;
  }
  #page_about .layout_4 .space_text{
    margin:0;
  }

  #page_about #section_introduction{
    padding-top:120px;
  }
  #page_about #section_introduction h3{
    margin-left:75px;
  }
  #page_about #section_introduction p{
    margin:0.5em 0 2em 0;
  }
  #page_about #section_introduction .layout_1:nth-of-type(2) p{


  }
  #page_about #section_introduction .space_text{
    width: 600px;
    margin-left:100px;
    margin-right: 40px;
  }

  #page_about #section_story{
    padding-top:160px;
  }

  #page_about #section_story h2{
    padding-bottom:80px;
  }
  #page_about #section_story .space_text{
    width: 600px;
    margin-left:40px;
    margin-right: 100px;
  }

  #page_theater .space_table{
    max-width: 900px;
    margin:0 auto 60px auto;
    padding:10px 0;
  }
}
