@charset "UTF-8";
a {
  text-decoration:none;
}
img {
  height: auto;
  max-width: 100%;
  width: 100%;
  vertical-align:top;
}
body {
  font-family: "Zen Kaku Gothic New", serif;
  position: relative;
}
body::before {
  content: "";
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: url(../img/bg_01.jpg) center/cover no-repeat;
  z-index:-2;
}
@media screen and (min-width: 768px) {
.sp_only {
  display: none;
}
}
@media screen and (max-width: 768px) {
.pc_only {
  display: none;
}
body::before {
  height: 120vh;
}
}
/* アニメーション
-------------------------------------*/
.fadein {
  opacity : 0;
  transform : translate(0, 50px);
  transition : all 1000ms;
}
.fadein.scrollin {
  opacity : 1;
  transform : translate(0, 0);
}
.fadein_top {
  display: none;
}
.fadeUp {
  animation-name: fadeUpAnime;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
  opacity: 0;
}
 @keyframes fadeUpAnime {
 from {
 opacity: 0;
 transform: translateY(100px);
}
 to {
 opacity: 1;
 transform: translateY(0);
}
}
/*Top
-------------------------------------*/
.top {
  font-family: "Zen Kaku Gothic New", serif;
  margin: 0 auto;
  width: 100%;
}
/*musicvideo
-------------------------------------*/
.musicvideo {
  padding: 100px 15px 0;
}
.musicvideo__list {
  margin: 0 auto;
  max-width: 1200px;
  width: 100%;
}
.musicvideo__item {
  width: 100%;
}
.musicvideo__item iframe {
    width: 100%;
}
@media only screen and (max-width: 768px){
.musicvideo {
  padding: 50px 15px 0;
}
.musicvideo__item iframe {
  width: 100% !important;
  height: 52.4vw !important;
}
}
/*Information
-------------------------------------*/
.information {
  padding: 100px 0 0;
  text-align: center;
}
.information h2 {
  color: #efc858;
  background: url(../img/bg_02.jpg) no-repeat center center/cover;
  background-clip: text;
  border-bottom: solid 2px #efc858;
  -webkit-background-clip: text;
  display: inline-block;
  font-family: "Shippori Mincho", serif;
  font-size: 5em;
  font-weight: bold;
  margin: 0 0 28px;
  text-align: center;
}
.information__wrapper {
  padding: 0 15px;
}
.information ul {
  max-width: 1200px;
  margin: 0 auto;
}
.information ul li {
  background: #950f19;
  border: 2px solid #efc858;
  font-size: 17px;
  font-weight: 500;
  list-style: none;
  margin: 12px 0 0;
  text-align: left;
}
.information li.hidden {
  display: none;
}
.information ul li a {
  color: #efc858;
  display: block;
  padding: 20px 50px 20px 20px;
  position: relative;
  width: 100%;
}
.information ul li a span {
  font-weight: bold;
  padding: 0 20px 0 0;
}
.information ul li a::after {
  position: absolute;
  top: 50%;
  right: 16px;
  content: '';
  margin-top: -6px;
  border: 6px solid transparent;
  border-top-width: 5px;
  border-bottom-width: 5px;
  border-left-color: #efc858;
}
.information ul li:hover {
  transition: all .3s;
  opacity: 0.8;
}
.information__button {
  margin: 12px 0 0;
}
.information__button a {
  color: #efc858;
  font-weight: 500;
  font-size: 17px;
}
@media only screen and (max-width: 768px){
.information {
  padding: 50px 0 0;
}
.information h2 {
  font-size: 3em;
  margin: 0 0 20px;
}
.information ul li {
  font-size: 14px;
  margin: 10px 0 0;
}
.information ul li a {
  padding: 12px 40px 12px 12px;
}
.information ul li a::after {
  margin-top: -6px;
}
.information__button {
  margin: 10px 0 0;
}
.information__button a {
  font-size: 14px;
}
}
/*Pick Up
-------------------------------------*/
.pickup {
  padding: 100px 0 0;
  text-align: center;
}
.pickup h2 {
  color: #efc858;
  background: url(../img/bg_02.jpg) no-repeat center center/cover;
  background-clip: text;
  border-bottom: solid 2px #efc858;
  -webkit-background-clip: text;
  display: inline-block;
  font-family: "Shippori Mincho", serif;
  font-size: 5em;
  font-weight: bold;
  margin: 0 0 40px;
  text-align: center;
}
.pickup__wrapper {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 15px;
}
.pickup__container {
  background: #950f19;
  border: 2px solid #efc858;
  margin: 0 2% 2% 0;
  padding: 30px 15px;
  width: 32%;
}
.pickup__container:nth-child(3n) {
  margin: 0 0 2%;
}
.pickup__container a:hover {
  transition: all .3s;
  opacity: 0.74;
}
.pickup__banner {
  margin: 0 0 24px;
  padding: 0 15px;
}
.pickup__text {
  color: #efc858;
  font-size: 17px;
  font-weight: 500;
}
@media only screen and (max-width: 768px){
.pickup {
  padding: 50px 0 0;
}
.pickup h2 {
  font-size: 3em;
  margin: 0 0 30px;
}
.pickup__container {
  margin: 0 0% 15px 0;
  padding: 30px 15px;
  width: 100%;
}
.pickup__text {
  font-size: 14px;
}
}
/*Road Map
-------------------------------------*/
.roadmap {
  padding: 100px 0 0;
  text-align: center;
}
.roadmap h2 {
  color: #efc858;
  background: url(../img/bg_02.jpg) no-repeat center center/cover;
  background-clip: text;
  border-bottom: solid 2px #efc858;
  -webkit-background-clip: text;
  display: inline-block;
  font-family: "Shippori Mincho", serif;
  font-size: 5em;
  font-weight: bold;
  margin: 0 0 40px;
  text-align: center;
}
@media only screen and (max-width: 768px){
.roadmap {
  padding: 35px 0 0;
}
.roadmap h2 {
  font-size: 3em;
  margin: 0 0 30px;
}
}
/*Contents 
-------------------------------------*/
.contents {
  padding: 100px 0 0;
  text-align: center;
}
.contents h2 {
  color: #efc858;
  background: url(../img/bg_02.jpg) no-repeat center center/cover;
  background-clip: text;
  border-bottom: solid 2px #efc858;
  -webkit-background-clip: text;
  display: inline-block;
  font-family: "Shippori Mincho", serif;
  font-size: 5em;
  font-weight: bold;
  margin: 0 0 40px;
  text-align: center;
}
.contents__wrapper {
  display: flex;
  flex-wrap: wrap;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 15px;
}
.contents__container {
  background: #950f19;
  border: 2px solid #efc858;
  margin: 0 2% 2% 0;
  padding: 30px 15px;
  width: 32%;
}
.contents__container:nth-child(3n) {
  margin: 0 0 2% 0;
}
.contents__container a:hover {
  transition: all .3s;
  opacity: 0.74;
}
.contents__banner {
  margin: 0 0 24px;
  padding: 0 15px;
}
.contents__text {
  color: #efc858;
  font-size: 17px;
  font-weight: 500;
}
@media only screen and (max-width: 768px){
.contents {
  padding: 50px 0 0;
}
.contents h2 {
  font-size: 3em;
  margin: 0 0 30px;
}
.contents__container {
  margin: 0 0% 15px 0;
  padding: 30px 15px;
  width: 100%;
}
.contents__text {
  font-size: 14px;
}
}
/*フッター
-------------------------------------*/
footer {
  background: #950f19;
  border-top: 2px solid #efc858;
  margin: 100px 0 0;
  padding: 0 0 20px;
  text-align: center;
  position: relative;
  z-index: auto;
}
.copyright {
  color: #efc858;
  font-size: 17px;
  font-weight: 500;
  padding: 40px 0 0;
}
@media only screen and (max-width: 768px){
footer {
  margin: 35px 0 0;
  padding: 0;
}
.copyright {
  font-size: 14px;
  padding: 15px 0;
}
}
/*桜
-------------------------------------*/
#sakura_block{
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index:-1;
}
#sakura_block .sakura_parts_box{
  position: relative;
}
#sakura_block .sakura_parts_box img{
  position: absolute;
}
#sakura_block .sakura_parts_box img:nth-child(2n+1){
  width: 13px;/*花びらのサイズ*/
}
#sakura_block .sakura_parts_box img:nth-child(2n){
  width: 15px;/*花びらのサイズ*/
}

/*-----------------------------------
桜の花びらパーツの表示位置
-----------------------------------*/
img.parts_01{top: 0; left: 5%;}
img.parts_02{top: 0; left: 12%;}
img.parts_03{top: 0; left: 15%;}
img.parts_04{top: 0; left: 22%;}
img.parts_05{top: 0; left: 25%;}
img.parts_06{top: 0; left: 28%;}
img.parts_07{top: 0; left: 35%;}
img.parts_08{top: 0; left: 40%;}
img.parts_09{top: 0; left: 43%;}
img.parts_10{top: 0; left: 50%;}
img.parts_11{top: 0; left: 55%;}
img.parts_12{top: 0; left: 60%;}
img.parts_13{top: 0; left: 63%;}
img.parts_14{top: 0; left: 70%;}
img.parts_15{top: 0; left: 75%;}
img.parts_16{top: 0; left: 81%;}
img.parts_17{top: 0; left: 85%;}
img.parts_18{top: 0; left: 90%;}
img.parts_19{top: 0; left: 93%;}


/*-----------------------------------
舞い散るアニメーション
回転しつつ上から下へ
-----------------------------------*/
@keyframes sakura {
    0% {
      opacity: 0;
    }
    5% {
      transform:translate(3px,50px) rotate(-180deg);
      opacity: 1;
    }
    10% {
      transform:translate(0,100px) rotate(50deg);
    }
    15% {
      transform:translate(-20px,150px) rotate(150deg);
    }
    20% {
      transform:translate(-40px,200px) rotate(-50deg);
    }
    25% {
      transform:translate(-60px,250px) rotate(-180deg);
    }
    30% {
      transform:translate(-80px,300px);
    }
    35% {
      transform:translate(-100px,350px) rotate(20deg);
    }
    40% {
      transform:translate(-90px,400px) rotate(50deg);
    }
    45% {
      transform:translate(-95px,450px)  rotate(150deg);
    }
    50% {
      transform:translate(-90px,500px) rotate(-50deg);
    }
    55% {
      transform:translate(-85px,550px) rotate(20deg);
    }
    60% {
      transform:translate(-80px,600px) rotate(50deg);
    }
    65% {
      transform:translate(-75px,650px)  rotate(150deg);
    }
    70% {
      transform:translate(-70px,700px) rotate(-50deg);
    }
    75% {
      transform:translate(-50px,750px) rotate(-180deg);
    }
    80% {
      transform:translate(-30px,800px);
    }
    85% {
      transform:translate(-10px,850px) rotate(20deg);
    }
    90% {
      transform:translate(0,900px) rotate(50deg);
      opacity: .8;
    }
    95% {
      transform:translate(-45px,950px)  rotate(150deg);
    }
    100% {
      transform:translate(-40px,980px) rotate(-50deg);
      opacity: 0;
    }
}

.sakura_parts_box img {
    animation: sakura linear 10s infinite;
    /*アニメーションが始まるまで画像を見えなくしておく*/
    opacity: 0;
}

/*-----------------------------------
アニメーションが始まるまでの時間
-----------------------------------*/
img.parts_01,img.parts_04,img.parts_07,img.parts_10,img.parts_08,img.parts_11,img.parts_13,img.parts_16,img.parts_19{
  -webkit-animation-delay: 0s;
  animation-delay: 0s;
}
img.parts_02,img.parts_05{
  -webkit-animation-delay: 3s;
  animation-delay: 3s;
}
img.parts_03,img.parts_06,img.parts_09,img.parts_12{
  -webkit-animation-delay: 6s;
  animation-delay: 6s;
}
img.parts_08,img.parts_11,img.parts_13,img.parts_16,img.parts_19{
  -webkit-animation-delay: 0.5s;
  animation-delay: 0.5s;
}
img.parts_14,img.parts_17{
  -webkit-animation-delay: 4s;
  animation-delay: 4s;
}
img.parts_15,img.parts_18{
  -webkit-animation-delay: 8s;
  animation-delay: 8s;
}
/*モーダル
-------------------------------------*/
body.modal__open {
  overflow: hidden;
}
.modal {
  position: fixed;
  top: 0px;
  left: 0px;
  z-index: 9999;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.5);
  opacity: 0;
  visibility: hidden;
  transition: 0.5s;
}
body.modal__open .modal {
  opacity: 1;
  visibility: visible;
}
.modal__block {
  border-radius: 6px;
  position: absolute;
  padding: 75px 50px;
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
  width: 84%;
  min-width: 500px;
  max-width: 1000px;
  background-color: #fff;
}
.modal__close {
  position: absolute;
  top: 30px;
  right: 15px;
  width: 30px;
  height: 30px;
  transform: translateY(-50%);
  cursor: pointer;
}
.modal__close::before,
.modal__close::after {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
  width: 100%;
  height: 2px;
  background-color: #028dff;
  content: "";
}
.modal__close::before {
  transform: translateX(-50%) translateY(-50%) rotate(45deg);
}
.modal__close::after {
  transform: translateX(-50%) translateY(-50%) rotate(-45deg);
}
.modal__close:hover {
  cursor: pointer;
  transition: all .3s;
  opacity: 0.8;
}
.modal__text {
  font-size: min(2vw, 18px);
  line-height: 1.8em;
  max-width: 700px;
  margin: 0 auto;
  text-align: center;
}
.modal__text span {
  color: #028dff;
  font-weight: bold;
}
@media only screen and (max-width: 768px){
.modal__close {
  width: 18px;
  top: 20px;
  right: 10px;
}
.modal__block {
  min-width: 100px;
  width: 88%;
  padding: 34px 28px 28px;
}
.modal__text {
  font-size: min(2.8vw, 14px);
}
}
/*TOPへ戻る
-------------------------------------*/
.header-box {
  display: none;
}
.pagetop {
  position: fixed;
  width: 60px;
  height: 60px;
  bottom: 20px;
  right: 1vw;
  z-index: 3;
}
.pagetop a {
  background: #950f19;
  border: 2px solid #efc858;
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0px;
  left: 0px;
}
.pagetop:hover {
  transition: all .3s;
  opacity: 0.8;
}
.pagetop a span {
  width: 2.34vw;
  height: 2.27vw;
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  margin: -4px 0 0 -7.5px;
}
.pagetop a i {
  width: 15px;
  weight: 8px;
  height: 2.27vw;
  display: block;
  background: url(../img/top.svg);
  background-repeat: no-repeat;
  background-size: contain;
}
@media screen and (max-width: 768px){
.pagetop{
  width: 9.38vw;
  height: 9.38vw;
  bottom: 12vw;
  right: 10px;
}
.pagetop a span {
  margin: -0.66vw 0 0 -1.17vw;
}
.pagetop a i {
  width: 2.34vw;
}
}