@-webkit-keyframes flash { 0% { opacity: .6; } 100% { opacity: 1; } }
@keyframes flash { 0% { opacity: .6; } 100% { opacity: 1; } }
a { color: #d70000;text-decoration: underline; }
a:hover { opacity: 1; -webkit-animation: flash 1s; animation: flash 1s; }
a.none:hover { opacity: 1; -webkit-animation: flash 0; animation: flash 0; }

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

html { scroll-behavior: smooth; }
body { font-family: sans-serif; background: #000 url(../image/bg.webp); color: #000; line-height: 1.7; }
img { width: 100%; height: auto; }
section { text-align: center; }

@media(max-width: 767px) {
  html { overflow-y: scroll; }
  body { font-size: 3.6vw; font-feature-settings: "palt"; }
  .forPC { display: none; }
	.forSP { display: inline; }
  .font-small { font-size: 3vw; }
}
@media(min-width: 768px) {
  html { font-size: 62.5%; overflow-y: scroll; }
  body { font-size: 1.5rem; }
	.forPC { display: inline; }
	.forSP { display: none; }
  .font-small { font-size: 1.3rem;}
}

nav.fixed-nav { position: fixed; z-index: 999; }
nav a:hover { opacity: 1; -webkit-animation: flash 0; animation: flash 0; }
@media(max-width: 767px) {
  nav.pc { display: none; }
  nav.sp { display: block; bottom: 0; left: 0; right: 0; }
  nav.sp ul { display: flex; flex-wrap: nowrap; align-items: flex-end; background: url(../image/bg_nav_sp.webp) center top no-repeat; background-size: 100% 24.487vw; height: 24.487vw; }
  nav.sp li:first-child { width: 41.2%; }
  nav.sp li:last-child { width: 58.8%; }
  nav.sp li a { display: block; text-indent: -9999px; width: 100%; height: 17.6vw; }
}
@media(min-width: 768px) {
  nav.sp { display: none; }
  nav.pc { display: block; bottom: 1vw; right: 0px; }
  nav.pc ul { padding-top: 27px; width: 108px; height: 506px; background: url(../image/bg_nav.webp) right top no-repeat; background-size: 108px auto; }
  nav.pc li { margin-left: 28px; text-align: left; text-indent: -99999px;}
  nav.pc li a { display: block;  }
  nav.pc li:first-child a { width: 80px; height: 192px; }
  nav.pc li:last-child a { width: 80px; height: 261px; }
}

#kv { position: relative; background: #000; }
#kv .shedule { position: absolute; bottom: 0; }
@media screen and (min-width:768px) {
#kv .shedule { bottom: 0; padding: 25px 0; background-color: rgba(0, 0, 0, 0.7); width: 100%;}
#kv .shedule img { width: 1091px; margin: 0 auto; }
}



@media screen and (max-width:767px) {
  .wrap { background: url(../image/bg_shadow_sp.webp) center top no-repeat; background-size: 100% auto; }
}
@media screen and (min-width:768px) {
  .wrap { background: url(../image/bg_shadow.webp) center top no-repeat; background-size: 100% auto; }
}
#intro { position: relative; }
@media screen and (max-width:767px) {
  #intro { padding-top: 15vw; margin-bottom: 25vw; }
  #intro h2 { margin: 0 0 7.5vw; }
  #intro h2 + p { line-height: 2.6; font-size: 3.7vw }
}
@media screen and (min-width:768px) {
  #intro { position: relative; margin: 80px 0 100px 0; }
  #intro .introInner { margin: 0 auto; }
  #intro h2 { margin-bottom: 15px; }
  #intro h2 img { width: 883px; }
  #intro p { font-size: 1.6rem; line-height: 3; }
}

.item-overview dt { font-weight: bold; }
.item-overview dd a { font-weight: bold; }
.overviewInner .item-overview.funny .text { color: #29a5dd; font-weight: bold; text-align: center; }
.overviewInner .item-overview.unfunny .text { color: #d70000; font-weight: bold; text-align: center; }
@media screen and (max-width:767px) {
  .overviewInner h3 { margin: 0 auto 5px auto; }
  .overviewInner .item-overview .frametop { margin: 0 5.128vw; height: 10vw; }
  .overviewInner .item-overview .detail { margin: 0 5.128vw; }
  .overviewInner .item-overview .framebtm { margin: 0 5.128vw; height: 10vw; }
  .overviewInner .item-overview h4 { height: 50px; line-height: 50px; margin: 0 5vw 10px 5vw; font-size: 4vw; text-align: center; }
  .overviewInner .item-overview.funny .frametop { background: url(../image/bg_overview_frame_01_top.webp) center bottom no-repeat; background-size: 100% 10vw; }
  .overviewInner .item-overview.funny .detail { background: url(../image/bg_overview_frame_01_mdl.webp) center top repeat-y; background-size: 99.9999% auto; }
  .overviewInner .item-overview.funny .framebtm { margin-bottom: 16vw; background: url(../image/bg_overview_frame_01_btm.webp) center top no-repeat; background-size: 100% 10vw; }
  .overviewInner .item-overview.funny h4 { background: url(../image/bg_overview_title_01.webp) center center no-repeat; background-size: 100% 10vw; color: #fff;}
  .overviewInner .item-overview.unfunny .frametop { background: url(../image/bg_overview_frame_02_top.webp) center bottom no-repeat; background-size: 100% 10vw; }
  .overviewInner .item-overview.unfunny .detail { background: url(../image/bg_overview_frame_02_mdl.webp) center top repeat-y; background-size: 99.9999% auto; }
  .overviewInner .item-overview.unfunny .framebtm { background: url(../image/bg_overview_frame_02_btm.webp) center top no-repeat; background-size: 100% 10vw; }
  .overviewInner .item-overview.unfunny h4 { background: url(../image/bg_overview_title_02.webp) center center no-repeat; background-size: 100% 10vw; color: #fff; }
  .overviewInner .item-overview .text {  margin: -2vw 6.5vw 4vw 6.5vw; font-size: 4vw;  }
  .overviewInner .item-overview h4 + p { margin: 0 6.5vw 6vw 6.5vw; text-align: left; font-weight: bold; font-size: 3.7vw; }
  .overviewInner .item-overview h4 + p span { font-weight: normal; }
  .overviewInner .item-overview .ticket { display: flex; flex-wrap: nowrap; margin: 0 6.5vw; justify-content: space-between; }
  .overviewInner .item-overview .ticket li { font-weight: bold; }
  .overviewInner .item-overview.funny .ticket li::before { content: "◆"; color: #29a5dd; }
  .overviewInner .item-overview.funny a { color: #29a5dd; }
  .overviewInner .item-overview.unfunny .ticket li::before { content: "◆"; color: #d70000; }
  .overviewInner .item-overview .ticket li:last-child { }
  #overview .btn { margin: 3vw auto 12vw auto;}
  #overview .btn p { margin-top: -2vw; }
}
@media screen and (min-width:768px) {
  #overview { position: relative; padding-bottom: 350px; }
  .overviewInner { display: flex; flex-wrap: nowrap; justify-content: space-between; width: 984px; margin: 0 auto;  }
  .overviewInner h3 { margin-bottom: 20px; width: 460px; margin-left: -10px; }
  .overviewInner h3 img { margin: 0 auto; }
  .overviewInner .item-overview .frametop { margin: 0; width: 440px; height: 40px; }
  .overviewInner .item-overview .detail { margin: 0; width: 440px; }
  .overviewInner .item-overview .framebtm { width: 440px; height: 40px; }
  .overviewInner .item-overview h4 { width: 380px; height: 50px; line-height: 50px; margin: 0 auto 20px auto; font-size: 1.6rem; text-align: center; color: #fff; }
  .overviewInner .item-overview.funny .frametop { background: url(../image/bg_overview_frame_01_top.webp) no-repeat center/cover;  }
  .overviewInner .item-overview.funny .detail { background: url(../image/bg_overview_frame_01_mdl.webp) center top repeat-y; background-size: 440px auto; }
  .overviewInner .item-overview.funny .framebtm { background: url(../image/bg_overview_frame_01_btm.webp) no-repeat center/cover; }
  .overviewInner .item-overview.funny h4 { background: url(../image/bg_overview_title_01.webp) center center no-repeat; background-size: 380px 50px;}
  .overviewInner .item-overview.unfunny .frametop { background: url(../image/bg_overview_frame_02_top.webp) no-repeat center/cover;  }
  .overviewInner .item-overview.unfunny .detail { background: url(../image/bg_overview_frame_02_mdl.webp) center top repeat-y; background-size: 440px auto; }
  .overviewInner .item-overview.unfunny .framebtm { background: url(../image/bg_overview_frame_02_btm.webp) no-repeat center/cover; }
  .overviewInner .item-overview.unfunny h4 { background: url(../image/bg_overview_title_02.webp) center center no-repeat; background-size: 380px 50px;}
  .overviewInner .item-overview .text { width: 380px; margin: 0 auto 25px auto; text-align: left; font-weight: bold; font-size: 1.9rem; }
  .overviewInner .item-overview h4 + p { width: 350px; margin: 0 auto 40px auto; text-align: left; font-weight: bold; }
  .overviewInner .item-overview h4 + p span { font-weight: normal; }
  .overviewInner .item-overview .ticket { display: flex; flex-wrap: nowrap;  width: 350px; margin: 0 auto; }
  .overviewInner .item-overview .ticket li { font-weight: bold; }
  .overviewInner .item-overview.funny .ticket li::before { content: "◆"; color: #29a5dd; }
  .overviewInner .item-overview.funny a { color: #29a5dd; }
  .overviewInner .item-overview.unfunny .ticket li::before { content: "◆"; color: #d70000; }
  .overviewInner .item-overview .ticket li:last-child { margin-left: 30px; }
  #overview .btn { margin: 30px auto 0 auto; width: 476px; }
  #overview .btn p { margin-top: -10px; }
}

@media screen and (max-width:767px) {
  #access { margin: -10vw 0 10vw; padding-top: 80vw; background: url(../image/bg_shadow-2_sp.webp) center -40vw no-repeat; background-size: 100% auto; }
  #access h2 { margin-bottom: 5vw; }
  #access .map iframe { height: 400px; }
  #access .map p { margin: 2.5vw 0; text-align: center; }
}
@media screen and (min-width:768px) {
  #access { margin-top: -200px; padding: 0; }
  #access h2 { width: 236px; margin: 0 auto; }
  #access .map { margin: 40px 0; }
  #access .map p { margin-top: 20px; }
}



#others ul { text-align: left; margin: 0 auto; }
#others ul li { line-height: 1.8; text-indent: -1.0em; padding-left: 1.0em; }
#others ul li span.attention { color: #a85959;}
#others ul + p { text-align: left; }
#others a { color: #a85959; font-weight: bold; }
@media screen and (max-width:767px) {
  #others { margin-top: 100px; background: url() center top repeat-y; background-size: 100% auto;}
  #others .section-title + p {  font-weight: bold; }
  #others .precautions h3 { margin: 5vw 7vw 1vw 7vw; text-align: left; font-size:4vw; color: #a85959; font-weight: bold; }
  #others ul { margin:  0 7vw; }
  #others ul li { margin-bottom: 1.5vw; }
  #others ul + p { margin: 5vw 7vw; }
  .cardList { margin-bottom: 20vw; }
  .card { margin: 0 7.128vw 12.5vw 7.128vw; padding: 5vw; background: rgba(0, 0, 0, 0.0); border: 2px solid #fff; border-radius: 25px; box-shadow: 0 0 20px 10px rgba(000, 0, 0, 0.5); }
  .card dt { padding: 0 10vw;}
  .card dd .title { margin: 2vw 0 2vw -2.5vw; padding: 0;  }
  .card dd .text { padding: 0; text-align: left; font-size: 3.7vw; }
  .precautions { margin-top: -70vw; padding-top: 80vw; padding-bottom: 105vw;
  background-image: url(../image/bg_shadow-3_sp.webp), url(../image/bg_shadow-4_sp.webp);
  background-position: top center, bottom center;
  background-repeat: no-repeat, no-repeat;
  background-size: contain, contain;}

}
@media screen and (min-width:768px) {
  #others { margin-top: 100px; background: url(../image/bg_shadow.webp) center top repeat-y; background-size: 100% auto;}
  .othersInner { width: 984px; margin: 0 auto;  }
  #others .section-title { width: 171px; margin: 100px auto 0 auto; }
  #others .section-title + p { margin: 5px 0 0 0; font-weight: bold; }
  #others .precautions h3 { margin-top: 30px; text-align: left; margin-left: -0.5em; font-size: 1.6rem; color: #a85959; font-weight: bold; }
  #others ul { width: 984px; margin: 0 auto; }
  #others ul li { margin-bottom: 5px; }
  #others ul + p { width: 984px; margin: 30px auto 90px auto; }

  .cardList { display: flex; flex-wrap: nowrap; justify-content: space-between; width: 900px; margin: 0 auto 80px auto; }
  .card { width: 415px; background: rgba(0, 0, 0, 0.0); border: 2px solid #fff; border-radius: 25px; box-shadow: 0 0 20px 10px rgba(000, 0, 0, 0.3); }
  .card dl { margin: 40px 20px; }
  .card dt { margin-bottom: 25px; vertical-align: top; text-align: center; }
  .card dt img { height: 345px; width: auto;}
  .card dd { text-align: center; }
  .card dd h2 { margin-bottom: 10px; }
  .card dd h2 img { height: 84px; width: auto; }
  .card dd .text { padding: 0 10px; text-align: left; }
}

footer { text-align: center; }
footer .copyright { text-align: center; }
@media screen and (max-width:767px) {
  footer { margin-top: -85vw;}
  footer .footer-inner { padding: 10vw 0; }
  footer .sns { margin-bottom: 10vw; }
  footer .sns img { width: 15.7vw; }
  footer dl dt { margin-bottom: 2.5vw;  }
  footer .logo { width: 28vw; margin: 0 auto;}
  footer .copyright { padding: 8vw 0 12vw 0; font-size: 3.2vw; }
}
@media screen and (min-width:768px) {
  footer { }
  footer .footer-inner { padding: 45px 0 30px 0; }
  footer .sns { margin-bottom: 50px;}
  footer .sns img { width: 55px; }
  footer dl dt { margin-bottom: 10px; }
  footer .logo { width: 100px; margin: 0 auto 40px auto;}
  footer .copyright { padding-bottom: 0px; }
}


/* フェード＋スライド用 */
.js-fadeUp {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.js-fadeUp.is-inview {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.2s; /* 遅延は必要に応じて */
}

/* ぼかし解除用 */
.js-blur {
  filter: blur(20px);
  transition: filter 1.5s ease-out;
}

.js-blur.is-inview {
  filter: blur(0);
}



.ticket-button {
      background-color: #fc41d5;
      color: #ff0;
      font-weight: bold;
      border: 4px solid white;
      border-radius: 40px;
      text-decoration: none;
      display: inline-flex;
      align-items: center;
      position: relative;
    }
    .ticket-button::after {
      content: "";
      display: inline-block;
      width: 12px;
      height: 12px;
      border-top: 3px solid #ff0;
      border-right: 3px solid #ff0;
      transform: rotate(45deg);
      margin-left: 0.6em;
    }
    .ticket-button:hover { background-color: #ff55c0; }
@media screen and (max-width:767px) {
  .ticket-button {
    margin: 4vw 3vw 2vw 3vw;
    padding: 4vw 8vw;
    font-size: 5vw;
  }
}
@media screen and (min-width:768px) {
  .ticket-button {
    margin: 35px 0 30px;
    padding: 20px 50px;
    font-size: 2rem;
  }

}
