/*reset*/
ul,
li,
h1,
h2,
h3,
p,
a,
div,
hr {
  box-sizing: content-box;
  list-style: none;
  margin: 0;
  padding: 0;
  text-decoration: none;
}/*# sourceMappingURL=common.css.map */

/* CSS Document */
@media (min-width: 1280px) {
  .repc {
    display: block !important;
  }
  .retb {
    display: none !important;
  }
  .resp {
    display: none !important;
  }
}
@media (min-width: 431px) and (max-width: 1279px) {
  .repc {
    display: none !important;
  }
  .retb {
    display: block !important;
  }
  .resp {
    display: none !important;
  }
}
@media (max-width: 750px) {
  .repc {
    display: none !important;
  }
  .retb {
    display: none !important;
  }
  .resp {
    display: block !important;
  }
}

.sp{
  display: none !important;
}

.min{
  display: none;
}

body {
  font-family: sans-serif;
  position: relative;
  overflow-x: hidden;
  width:100%;
}

body:before {
  content: "";
  display: block;
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: url(../images/bg.jpg);
  background-position: center top;
  background-size: contain;
  background-repeat: repeat-y;
  z-index: -100;
}

.wrapper{
  margin-left: auto;
  width: 60%;
  z-index: 400;
}

.w_bg_a{
  display: block;
  width: 100%;
  height: auto;
  margin: 0 auto;
}

.contents{
  width: 100%;
  height: auto;
  background: url(../images/w_bg_b_pc.png);
  background-position: left top;
  background-size: contain;
  background-repeat: repeat-y;
  margin-left: auto;
  padding-bottom:200px;
}

section{
  width: 80%;
  height: auto;
  margin: 0 auto;
}

#mv{
  position: relative;
}

#mv:before {
  content: "";
  display: block;
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: url(../images/mv_b_pc.png);
  background-position: center top;
  background-size: cover;
  background-repeat: no-repeat;
  z-index: -100;
}

.mv_img:before {
  content: "";
  display: block;
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: url(../images/mv_a_pc.png);
  background-position: center top;
  background-size: cover;
  background-repeat: no-repeat;
  z-index: 500;
  pointer-events: none;
}

.mv_line_a:before{
  content: "";
  display: block;
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 3%;
  background: #ffe690;
  z-index: 300;
  pointer-events: none;
}

.mv_ham:before{
  content: "";
  display: block;
  position: fixed;
  left: 0;
  bottom: 8%;
  width: 100%;
  height:8%;
  background-image: url(../images/mv_c_pc.png);
  background-position: right top;
  background-size: contain;
  background-repeat: no-repeat;
  z-index: 600;
  pointer-events: none;
}

.mv_line_b:before{
  content: "";
  display: block;
  position: fixed;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 8%;
  background: #ffe690;
  background-image: url(../images/mv_d_pc.png);
  background-position: left top;
  background-size: contain;
  background-repeat: no-repeat;
  z-index: 600;
  pointer-events: none;
}

.logo{
  display: block;
  width: 25%;
  max-width: 155px;
  position: absolute;
  top: 0.5%;
  left: 1%;
  z-index: 500;
}

.logo img{
  display: block;
  width: 100%;
  height: auto;
}

section img{
  display: block;
  width: 100%;
  height: auto;
}

.title{
  display: block;
  width: 80%;
  max-width: 600px;
  height: auto;
  margin-left: 20%;
  margin-bottom: 200px;
  animation: blur_01 2s linear 1,blur_02 2s ease-in 1;
}

@keyframes blur_01 {
  0% {
    filter: blur(10px);
  }
  100% {
    filter: blur(0);
  }
}

@keyframes blur_02 {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

section h2{
  width: 100%;
  max-width: 720px;
  height: auto;
  margin: 0 auto 30px auto;
}

section p{
  max-width: 720px;
  font-size: 19px;
  font-weight: 300;
  color: #333333;
  line-height: 2.5em;
  margin: 0 auto;
}

.pink{
  color: #ff6f86;
}

.orange{
  color: #ff7a01;
}

.blue{
  color: #7ea7db;
}

.large{
  font-size: 36px;
}

.bold{
  font-weight: 600;
}

.m1 {
  font-family: "M PLUS 1p", sans-serif;
  font-style: normal;
}

.note-lines {
  line-height: 3em;
  background-image:
  url("data:image/svg+xml,%3Csvg width='100%25' height='3em' xmlns='http://www.w3.org/2000/svg'%3E%3Cline x1='0' y1='100%25' x2='100%25' y2='100%25' stroke='%23c8c8c8' stroke-width='1.5' stroke-dasharray='5,5' /%3E%3C/svg%3E");
  background-size: 100% 3em;
  background-color: transparent;
}

.bt{
  display: block;
  width: 60%;
  max-width: 550px;
  height: auto;
  margin: 60px auto;
  transition:0.5s;
}

.bt:hover{
  opacity: 0.8;
}

#movie{
  background: url(../images/01_bg.png);
  background-position: left bottom;
  background-size: 40%;
  background-repeat: no-repeat;
  padding-bottom: 30px;
}

/* You Tube */
/* 
section.movie .box_movie {
  text-align: center;
}
*/

.box_movie img{
  width: 90%;
  max-width: 530px;
  margin: 0 auto;
  transition:0.5s;
}

.box_movie a{
  display: block;
  width: 100%;
}

.box_movie img:hover{
  opacity: 0.8;
}

section.movie .box_movie img {
  display: block;
  width: 90%;
  max-width: 530px;
  height: auto;
  margin: 0 auto;
}
@media (max-width: 750px) {
  section.movie .box_movie img {
    max-width: 219px;
  }
}
.fancybox-content iframe {
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: 16/9;
}
@media (max-width: 750px) {
  .fancybox-content {
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: 9/16;
  }
  .fancybox-content iframe {
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: 9/16;
  }
}
/* You Tube */

#story{
  background: url(../images/02_bg.png);
  background-position: right bottom;
  background-size: 40%;
  background-repeat: no-repeat;
  padding-bottom: 30px;
}

.story_img{
  max-width: 660px;
  height: auto;
  margin: 0 auto 60px auto;
}

/* ruby */
[rb] {
  position: relative;  /* 漢字の位置を取得 */
}

[rb]::before {  /* ::before擬似要素によって，contentプロパティの内容を表示 */
  content: attr(rb);  /* rbの値をcontentプロパティに代入 */
  position: absolute;  /* 以下4行は，ルビを振る場所の指定 */
  top: -0.9em;
  left: -0.2em;  /* ルビを振る場所の幅を，ルビを振る漢字の幅よりも少し拡大 */
  right: -0.2em;
  font-size: 0.5em;  /* 漢字1文字について，かな2文字を基準とする */
  text-align: center;  /* ルビは，ルビを振る場所の中央に表示 */
  white-space: nowrap;  /* ルビが長くなっても途中で改行しないように */
  line-height: 1;  /* 以下2行は，*/
  text-indent: 0;  /* ルビを振る位置が親ボックスのプロパティによって変わらないように */
}
/* ruby */

#character{
  background: url(../images/03_bg.png);
  background-position: left bottom;
  background-size: 40%;
  background-repeat: no-repeat;
  padding-bottom: 40px;
}

.chara_img{
  max-width: 720px;
  height: auto;
  margin: 0 auto;
}

#ss{
  background: url(../images/04_bg.png);
  background-position: right bottom;
  background-size: 40%;
  background-repeat: no-repeat;
  padding-bottom: 30px;
}

#review{
  background: url(../images/05_bg.png);
  background-position: left bottom;
  background-size: 40%;
  background-repeat: no-repeat;
  padding-bottom: 60px;
}

#review p{
  width: 80%;
  height: auto;
  line-height: 2em;
  margin: 0 auto;
}

.reviewer_01{
  text-align: right;
  background: url(../images/tane_01.png);
  background-position: right top;
  background-size: contain;
  background-repeat: no-repeat;
  margin-top: 30px;
}

.reviewer_02{
  text-align: right;
  background: url(../images/tane_02.png);
  background-position: right top;
  background-size: contain;
  background-repeat: no-repeat;
  margin-top: 30px;
}

.reviewer_03{
  text-align: right;
  background: url(../images/tane_03.png);
  background-position: right top;
  background-size: contain;
  background-repeat: no-repeat;
  margin-top: 30px;
}

.review_line{
  width: 85%;
  background-size: 15px 5px;
  background-image: linear-gradient(to right, #c8c8c8 6px, transparent 6px);
  background-repeat: repeat-x;
  background-position: left bottom;
  padding-bottom: 2px;
  margin: 60px auto 60px auto;
}

  /* info */

  #info{
    margin-top: 120px;
  }

  .shop_book img{
    display: block;
    width: 60%;
    margin: 1em auto 2em auto;
    padding-bottom: 60px;
  }

  .shop_book h4{
    margin-top: 2em;
    text-align: center;
  }

  .shop_link {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #444444 !important;
    border-bottom: 1px solid #444444 !important;
    clear: both;
}

  .box_footer{
    font-size: 16px;
    text-align: center;
    color: #000000;
  }

  .official_sns{
    position:relative;
    z-index:600;
    margin-top:0 !important;
  }

  footer{
    position: relative;
    width: 100vw;  
    margin: 0 calc(50% - 50vw);
    text-align: center !important;
    z-index: 600;
  }

  .official_sns img {
    vertical-align: bottom;
  }

    /* info */

    .box_cont{
      width: 90%;
      margin:0 auto;
    }

    @media screen and (max-width: 750px) {

      .pc{
        display: none !important;
      }
      .sp{
        display: block !important;
      }

      .wrapper{
        width: 100%;
        height: auto;
      }
      
      section{
        width: 80%;
        height: auto;
        margin: 0 auto;
      }

      section p{
        width: 90%;
        max-width: 720px;
        font-size: 1em;
        font-weight: 300;
        color: #333333;
        line-height: 2.5em;
        margin: 0 auto;
      }

      section h2{
        width: 100%;
        max-width: 635px;
        height: auto;
        margin: 0 auto 1em auto;
      }

      .w_bg_a{
        display: block;
        width: 100%;
        padding: 0;
        margin: 0 auto;
        font-size: 0;
      }

      .contents{
        width: 100%;
        padding: 0;
        background: url(../images/sp/w_bg_b_sp.png);
        background-position: center top;
        background-size: contain;
        background-repeat: repeat-y;
        margin: 0 auto;
        padding-bottom:3em;
      }

      .logo {
        position: absolute;
        top: 0.1%;
        left: 1%;
        z-index: 500;
      }

      #mv{
        width: 100%;
        height: 100%;
        background-color:#444444;
      }

      #mv:before {
        width: 100%;
        height: 100%;
        background: url(../images/sp/mv_b_sp.png);
        background-position: center bottom;
        background-size: cover;
        background-repeat: no-repeat;
        z-index: -100;
      }

      .mv_img:before {
        width: 100%;
        height: 100%;
        background: url(../images/sp/mv_a_sp.png);
        background-position: center bottom;
        background-size: cover;
        background-repeat: no-repeat;
        z-index: 500;
        pointer-events: none;
      }

      .title {
        display: block;
        width: 90%;
        max-width: 600px;
        height: auto;
        margin: 0 auto;
        margin-bottom: 60%;
      }

      #movie{
        background: url(../images/01_bg.png);
        background-position: left bottom;
        background-size: 80%;
        background-repeat: no-repeat;
        padding-bottom: 3em;
      }

      /* You Tube */
      /* 
      section.movie .box_movie {
        text-align: center;
      }
      */
      
      .box_movie img{
        width:80%;
        max-width: 450px;
        margin: 0 auto;
        transition:0.5s;
      }

      #story{
        background: url(../images/02_bg.png);
        background-position: right bottom;
        background-size: 80%;
        background-repeat: no-repeat;
        padding-bottom: 3em;
      }

      .story_img{
        max-width: 660px;
        height: auto;
        margin: 0 auto 1.5em auto;
      }

      .bt {
        display: block;
        width: 80%;
        max-width: 550px;
        height: auto;
        margin: 1.5em auto;
      }

      #character{
        background: url(../images/03_bg.png);
        background-position: left bottom;
        background-size: 80%;
        background-repeat: no-repeat;
        padding-bottom: 6em;
      }

      #ss{
        background: url(../images/04_bg.png);
        background-position: right bottom;
        background-size: 80%;
        background-repeat: no-repeat;
        padding-bottom: 4em;
      }

      #review{
        background: url(../images/05_bg.png);
        background-position: left bottom;
        background-size: 80%;
        background-repeat: no-repeat;
        padding-bottom: 6em;
      }

      .review_line {
        margin: 2em auto 2em auto;
      }

      .shop_book img {
        display: block;
        width: 90%;
        margin: 1em auto 2em auto;
        padding-bottom: 3em;
      }

      #info{
        margin-top: 6em;
      }

      #share_sns{
        width: 80%;
        height: auto;
        margin: 0 auto;
        background:none !important;
      }

      footer{
        padding-top:15em;
      }
  
  }