@charset "utf-8";

/* ヘッダー */
header {
  position: relative;
  margin: 0 auto;
  display: block;
  width: 100%;
}
header #keyvisual {
  position: relative;
  margin: 0 auto;
  display: block;
  background-image: url("../img/main2.webp");
  background-repeat: no-repeat;
  background-position: 50% 0;
  background-size: cover;
  width: 100%;
  padding-top: 141.875%;
}

/* lead */
#lead {
  position: relative;
  margin: 0 auto;
  padding: 20px 0;
  background-image: url("../img/bg_lead.png");
  background-position: 50% 0;
  background-repeat: repeat-x;
  background-size: auto 100%;
}
#lead .leadTxt {
  position: relative;
  margin: 0 auto;
  width: calc(100% - 15px);
  max-width: 608px;
}

/* photo */
#photo {
  position: relative;
  margin: 0 auto;
  padding: 0;
  background-color: #ffffff;
  z-index: 10;
}
#photo .photoWrap {
  position: relative;
  margin: 0 auto;
  padding: 1px 0 0 0;
}
#photo .slick-slide {
  margin: 0 1px;
  background-color: transparent;
}

/* point */
#point {
  position: relative;
  margin: -80px auto 0 auto;
  padding: 80px 0 0 0;
  background-image: url("../img/bg_ttl_point.png");
  background-position: 50% 0;
  background-repeat: no-repeat;
  background-size: 454px auto;
  z-index: 9;
}
#point ul {
  position: relative;
  margin: 10px auto 0 auto;
  width: calc(100% - 10px);
  z-index: 100;
  gap: 10px 5px;
}
#point ul li {
  position: relative;
  margin: 0;
  width: calc(33.3333% - 5px);
  max-width: 180px;
}
#point ul li:nth-child(2) {
  margin: 20px 0 0 0;
}
#point ul li:nth-child(5) {
  width: 44%;
}
#point ul li .ttl {
  position: relative;
  margin: 0 auto;
  max-width: calc(100% - 20px);
  width: 100px;
}
#point ul li:nth-child(5) .ttl {
  max-width: calc(76% - 20px);
}
#point ul li .txt {
  position: relative;
  margin: 8px auto 0 auto;
  text-align: center;
  padding: 5px 2px;
  font-size: 0.12rem;
  line-height: 1.4em;
  font-weight: 500;
  background-color: rgba(255, 255, 255, 0.8);
  border-radius: 5px;
}
#point ul li .txt::before {
  position: absolute;
  top: -8px;
  left: 50%;
  transform: translateX(-50%);
  content: "▲";
  height: 8px;
  overflow: hidden;
  color: rgba(255, 255, 255, 0.8);
}
#point .about {
  position: relative;
  margin: 20px auto;
  background-color: #ffffff;
  border-radius: 20px;
  padding: 15px 20px;
  width: calc(100% - 80px);
  max-width: 500px;
  z-index: 10;
}
#point .about .ttl {
  position: relative;
  margin: 0 auto;
  width: 95%;
  max-width: 300px;
}
#point .about .ttl::before {
  position: absolute;
  top: -55px;
  left: -65px;
  content: "";
  width: 42%;
  max-width: 100px;
  height: 200px;
  display: block;
  background-image: url("../img/bg_about01.png");
  background-position: 0 0;
  background-repeat: no-repeat;
  background-size: contain;
}
#point .about .ttl::after {
  position: absolute;
  top: -45px;
  right: -40px;
  content: "";
  width: 32%;
  max-width: 70px;
  height: 200px;
  display: block;
  background-image: url("../img/bg_about02.png");
  background-position: 0 0;
  background-repeat: no-repeat;
  background-size: contain;
}
#point .about .ttl img {
  position: relative;
  z-index: 11;
}
#point .about .txt {
  position: relative;
  margin: 0 auto;
}
#point .about .txt p {
  padding-top: 15px;
  font-size: 0.13rem;
}
#point .about .txt a img {
  position: relative;
  margin: 20px auto;
  display: block;
  width: 100%;
  max-width: 280px;
}

/* CM */
#cm {
  position: relative;
  margin: 0 auto;
  margin: -70px auto 0 auto;
  padding: 70px 0 0 0;
  background-image: url("../img/bg_ttl_cm.png");
  background-position: 50% 0;
  background-repeat: no-repeat;
  background-size: 450.5px auto;
}
#cm .flexbox {
  position: relative;
  width: 100%;
  max-width: 1200px;
  gap: 15px 0;
}
#cm .cmBox {
  position: relative;
  margin: 15px auto 0 auto;
  width: calc(100% - 40px);
  max-width: 560px;
}
#cm .cmBox .movieWrap {
  position: relative;
  z-index: 100;
}
#cm .cmBox::after {
  position: absolute;
  top: 5px;
  left: -5px;
  background-color: #163696;
  display: block;
  content: "";
  width: 100%;
  height: 100%;
  z-index: 99;
}

/* nazo */
#nazo {
  position: relative;
  margin: 0 auto;
  margin: -20px auto 0 auto;
  padding: 50px 0 0 0;
  background-image: url("../img/bg_ttl_ticket.png");
  background-position: 50% 0;
  background-repeat: no-repeat;
  background-size: 450.1px auto;
}
#nazo .cmBox {
  position: relative;
  margin: 15px auto 0 auto;
  width: calc(100% - 40px);
  max-width: 560px;
}
#nazo .cmBox .movieWrap {
  position: relative;
  z-index: 100;
}
#nazo .cmBox::after {
  position: absolute;
  top: 5px;
  left: -5px;
  background-color: #163696;
  display: block;
  content: "";
  width: 100%;
  height: 100%;
  z-index: 99;
}
/* form */
.inputArea {
  position: relative;
  margin: 20px auto 0 auto;
  padding: 0 20px;
  max-width: 560px;
}
input,
select,
textarea,
button {
  -webkit-appearance: none;
  border-radius: 0;
}
.inputArea .inputTxt {
  position: relative;
  display: block;
  margin: 0 auto 15px auto !important;
  padding: 0 8px;
  border: solid 1px #e0eaef;
  background-color: #fffcf3;
  width: calc(100% - 16px);
  max-width: 700px;
  border-radius: 5px;
  height: 2.8em;
  font-size: 0.16rem;
}
.inputArea .inputTxt.err {
  background-color: #f3d7d7;
  color: #a90c0e;
}
::placeholder {
  color: #c8c8c8;
}
input::-webkit-contacts-auto-fill-button,
input::-webkit-credentials-auto-fill-button {
  visibility: hidden;
  pointer-events: none;
  position: absolute;
  right: 0;
}

/* btnArea, button */
#btnArea {
  position: relative;
  margin: 10px auto 0 auto;
  width: calc(100% - 60px);
  text-align: center;
  z-index: 100;
}
#btnArea button {
  position: relative;
  margin: 0 auto;
  display: inline-block;
  width: auto;
  max-width: 480px;
  padding: 7px 3.5em;
  background: #33146b;
  border: solid 1px #33146b;
  color: #ffffff;
  border-radius: 100px;
  text-align: center;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.3s ease-out;
}
#btnArea button:hover {
  background-color: #ffffff;
  color: #33146b;
}

/* tower */
#tower {
  position: relative;
  margin: 60px auto 0 auto;
  padding: 20px 0;
  z-index: 15;
}
#tower .towerArea {
  position: relative;
  margin: 0 auto;
}
#tower .towerArea::before {
  position: absolute;
  top: 5px;
  left: 50%;
  content: "";
  display: block;
  width: 150%;
  height: 0;
  transform: translateX(-50%);
  padding-top: 130%;
  background-color: rgba(255, 255, 255, 0.8);
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
}
#tower .towerArea .towerImg {
  position: relative;
  margin: 0 auto;
  padding-top: 50px;
  width: calc(100% - 40px);
  transform: translateX(-3%);
  max-width: 450px;
}
#tower .towerArea .towerTxt {
  position: relative;
  margin: 0 auto;
  top: 50%;
  width: calc(100% - 50px);
  transform: translate(3%, -50%);
  max-width: 450px;
}
#tower .towerArea .towerTxt::before {
  position: absolute;
  top: 20px;
  left: -74%;
  content: "";
  width: 100%;
  height: 100%;
  background-image: url("../img/tower.png");
  background-position: 100% 100%;
  background-repeat: no-repeat;
  background-size: contain;
  display: block;
  opacity: 0;
  transition: all 0.3s ease-out;
}
#tower .towerArea .towerTxt.disp::before {
  opacity: 1;
}
#tower .towerArea .towerTxt img {
  transform: translateX(30px);
}
#arrowsT {
  position: absolute;
  display: block;
  top: calc(50% - 25px);
  left: 0;
  text-align: center;
  width: 63px;
  height: 50px;
  z-index: 1;
}
#tower .slide-arrow {
  position: absolute;
  top: 0;
  display: block;
  width: 63px;
  height: auto;
  z-index: 3 !important;
}
#tower .prev-arrow {
  left: 0;
  cursor: pointer;
  transform: rotate(180deg);
}
#tower .next-arrow {
  left: calc(100vw - 63px);
  cursor: pointer;
}
#tower .slick-track {
  display: flex;
}
#tower .slick-slide {
  height: auto !important;
}
#tower .slick-disabled {
  display: none !important;
}

#story {
  position: relative;
  margin: -70px auto 0 auto;
  padding: 100px 0 80px 0;
  background-image: url("../img/bg_ttl_story.png"), url("../img/bg_catch.png");
  background-position: 50% 0, 100% 100%;
  background-repeat: no-repeat, repeat-x;
  background-size: 452.5px auto, 600px auto;
}
#story .storyWrap {
  position: relative;
  margin: 30px auto;
}
#story .bg {
  position: absolute;
  top: -40px;
  left: 0;
  width: 100%;
  overflow: hidden;
  line-height: 0;
  opacity: 0.7;
  z-index: 18;
}
#story .bg.btm {
  top: 100%;
  transform: rotate(180deg);
}
#story .bg svg {
  width: 100%;
  height: 100%;
  height: 40px;
}
#story .storyWrap .storyTxt {
  position: relative;
  margin: 0 auto;
  background-color: rgba(255, 255, 248, 0.5);
}
#story .storyWrap .storyTxt p {
  position: relative;
  margin: 0 auto;
  width: calc(100% - 40px);
  padding: 10px 0;
  text-align: center;
  font-size: 0.13rem;
}
#story .storyWrap .storyTxt p.large {
  font-size: 0.15rem;
  font-weight: 700;
  font-style: italic;
}

/* howto  */
#howto {
  position: relative;
  margin: 0 auto;
  margin: -90px auto 0 auto;
  padding: 45px 0 0 0;
  background-image: url("../img/bg_ttl_howto.png");
  background-position: 50% 0;
  background-repeat: no-repeat;
  background-size: 450.1px auto;
}
#howto ul {
  margin: 45px auto 0 auto;
  width: calc(100% - 40px);
  max-width: 1200px;
  z-index: 30;
}
#howto ul li {
  position: relative;
  margin: 0;
}
#howto ul li .howtoWrap {
  position: relative;
  margin: 0 10px 0 20px;
  height: 100%;
  padding-bottom: 20px;
  background-color: rgba(255, 255, 255, 0.8);
  border-top-left-radius: 500px;
  border-top-right-radius: 500px;
}
#howto .ttl {
  position: relative;
  width: 100%;
}
#howto .ttl img {
  position: relative;
  display: block;
  width: 90%;
  transform: translateX(-20px);
}
#howto .ttl p {
  position: relative;
  margin: 10px auto;
  width: calc(100% - 20px);
  padding-bottom: 5px;
  color: #0e1254;
  font-weight: 500;
  text-align: center;
  line-height: 1.6em;
  border-bottom: solid 1px #a5bac0;
}
#howto .ttl p.row1 {
  line-height: 3.2em;
}
#howto .txt p {
  position: relative;
  margin: 0 auto;
  width: calc(100% - 30px);
  font-size: 0.13rem;
  line-height: 1.6em;
}
#howto .txt .button {
  margin: 10px auto;
  width: calc(100% - 2em - 20px);
  font-size: 0.12rem;
  padding: 4px 1em;
}
#howto .cautionWrap {
  position: relative;
  margin: 5px auto 0 auto;
  width: calc(100% - 20px);
}
#howto .cautionWrap p {
  position: relative;
  padding: 0 0 0 1.2em;
  font-size: 0.12rem;
  line-height: 1.6em;
}
#howto .cautionWrap p::before {
  position: absolute;
  top: 0;
  left: 0;
  content: "※";
}
#arrowsH {
  position: absolute;
  display: block;
  top: calc(50% + 25px);
  left: 4px;
  text-align: center;
  width: calc(100% - 8px);
  height: 40px;
  z-index: 1000;
}
#howto .slide-arrow {
  position: absolute;
  top: 0;
  display: block;
  width: 40px;
  height: auto;
}
#howto .prev-arrow {
  left: 0;
  cursor: pointer;
  transform: rotate(180deg);
}
#howto .next-arrow {
  right: 0;
  cursor: pointer;
}
#howto .slick-track {
  display: flex;
}
#howto .slick-slide {
  height: auto !important;
}
#howto .slick-disabled {
  display: none !important;
}

/* 販売 */
#ticket {
  position: relative;
  margin: -20px auto 0 auto;
  padding: 50px 0 0 0;
  background-image: url("../img/bg_ttl_ticket.png");
  background-position: 50% 0;
  background-repeat: no-repeat;
  background-size: 450.1px auto;
}
#ticket .leadTxt {
  position: relative;
  margin: 0 auto;
  color: #33146b;
  font-weight: 700;
  text-align: center;
  z-index: 200;
  text-shadow: #ffffff 2px 0px, #ffffff -2px 0px, #ffffff 0px -2px, #ffffff 0px 2px, #ffffff 2px 2px, #ffffff -2px 2px, #ffffff 2px -2px, #ffffff -2px -2px, #ffffff 1px 2px, #ffffff -1px 2px,
    #ffffff 1px -2px, #ffffff -1px -2px, #ffffff 2px 1px, #ffffff -2px 1px, #ffffff 2px -1px, #ffffff -2px -1px;
}
#ticket h3 {
  position: relative;
  margin: 30px auto 10px auto;
  background-color: #ffffff;
  border-radius: 100px;
  color: #00306b;
  font-weight: 700;
  padding: 6px 2em;
  width: 10em;
  font-size: 0.13rem;
  line-height: 1em;
  text-align: center;
}
#ticket .priceBox .button {
  margin: 0 0 5px auto;
  width: 15em;
  font-size: 0.12rem;
  padding: 6px 1em;
}
/* 料金 */
#ticket .price {
  position: relative;
  margin: 0 auto;
  padding: 10px 0;
  width: calc(100% - 20px);
  max-width: 800px;
}
#ticket .priceBox {
  position: relative;
  margin: 0 auto;
}
#ticket .priceBox .caution {
  position: relative;
  margin: 0 auto;
  font-weight: 500;
  font-size: 0.12rem;
}
#ticket .priceBox .table {
  position: relative;
  margin: 20px auto 0 auto;
  display: none;
}
#ticket .priceBox .table table {
  position: relative;
  margin: 0 auto;
  width: 100%;
  border-collapse: collapse !important;
  border-spacing: 1px;
  border: solid 1px #022747;
}
#ticket .priceBox .table.active {
  display: block;
}
#ticket .priceBox table th {
  position: relative;
  width: 14%;
  text-align: center;
  vertical-align: middle;
  line-height: 1.4em;
  padding: 7px 2px;
  font-size: 0.12rem;
  background-color: #0a4a6c;
  color: #ffffff;
}
#ticket .priceBox table th.h4 {
  background-color: #2b87b7;
}
#ticket .priceBox table td {
  position: relative;
  width: 28.6%;
  margin: 10px;
  text-align: center;
  padding: 7px 0;
  font-size: 0.12rem;
  line-height: 1.6em;
  border-right: solid 1px #022747;
  border-top: solid 1px #022747;
  vertical-align: middle;
  background-color: #ffffff;
  color: #022747;
}
#ticket .priceBox table td span {
  font-size: 0.16rem;
  font-weight: 900;
}
#ticket .priceBox table td p {
  font-size: 0.12rem;
  line-height: 1.4em;
}
#ticket .priceBox table tbody th {
  background-color: #9bd5ea;
  border-top: solid 1px #022747;
  padding: 10px 2px;
  color: #022747;
}
#ticket .priceBox table thead th span,
#ticket .priceBox table tbody th span {
  font-size: 0.1rem;
  line-height: 1.4em;
}
#ticket .ticCaution {
  position: relative;
  text-align: center;
}
#ticket .BtnticCaution {
  position: relative;
  margin: 20px auto 0 auto;
  width: calc(100% - 2em);
  transform: translateY(-50%);
  max-width: 620px;
  padding: 7px 1em;
  cursor: pointer;
  background: #ffffff;
  font-size: 0.13rem;
  border: none;
  color: #0a4a6c !important;
  z-index: 10;
}
#ticket .BtnticCaution::after {
  position: absolute;
  top: 50%;
  right: 5px;
  content: "▼";
  line-height: 1em;
  font-size: 0.1rem;
}
#ticket .BtnticCaution.disp.button::after {
  transform: translateY(-50%) scale(-1, -1);
}
#ticket .BtnticCaution:hover {
  background: #0a4a6c;
  color: #ffffff !important;
}
#ticket .ticCaution {
  position: relative;
  margin: 0 auto;
  font-size: 0.13rem;
  line-height: 1.6em;
  width: calc(100% - 40px);
  padding: 0 20px;
  max-width: 610px;
  text-align: left;
  height: 0;
  background-color: #ffffff;
  overflow: hidden;
  opacity: 0;
}
#ticket .ticCaution.disp {
  height: auto;
  opacity: 1;
  padding: 20px;
  transition: all 0.3s ease-out;
  border-top: solid 1px #878787;
}
#ticket .ticCaution p {
  position: relative;
  padding-left: 1.2em;
  padding-bottom: 5px;
  text-align: left;
}
#ticket .ticCaution p::before {
  position: absolute;
  content: "※";
  left: 0;
}

#ticket .release {
  position: relative;
  margin: 0 auto;
  text-align: center;
  width: calc(100% - 20px);
  max-width: 600px;
}
#ticket .release ul {
  position: relative;
}
#ticket .release ul li {
  position: relative;
  margin: 20px auto 40px auto;
}
#ticket .release ul li:last-child {
  margin: 0 auto;
}
#ticket .release .typeTxt {
  position: relative;
  margin: 0 auto 10px auto;
  padding: 7px 0;
  line-height: 1em;
  background-color: #00306b;
  color: #ffffff;
  font-size: 0.13rem;
}
#ticket .release p {
  position: relative;
  font-size: 0.13rem;
}
#ticket .scraptanteidan {
  position: relative;
}
#ticket .scraptantei p {
  padding: 10px 0 0 0;
  font-size: 0.13rem;
}
#ticket .scraptantei img {
  width: calc(100% - 80px);
  margin: 0 auto;
  max-width: 320px;
}

#ticket .u22 {
  position: relative;
  margin: 50px auto 10px auto;
  background-color: rgba(255, 255, 255, 0.7);
  max-width: 660px;
}
#ticket .u22 .btnU22 {
  position: relative;
  margin: 0 auto 0 auto;
  width: 110px;
  padding: 10px 2px 0 2px;
}
#ticket .u22 .u22Txt {
  position: relative;
  margin: 0 auto;
}
#ticket .u22 .ttl {
  position: relative;
  margin: 0 auto;
  padding: 5px 0;
  background-color: #42651c;
  text-align: center;
  font-weight: 500;
  color: #ffffff;
}
#ticket .u22 .txt {
  position: relative;
  margin: 0 auto;
  padding: 15px 20px 20px 20px;
  color: #0a4a6c;
  font-size: 0.13rem;
  line-height: 1.4em;
}
#ticket .u22 a {
  color: #0a4a6c !important;
}

#ticket .kids {
  position: relative;
  margin: 0 auto 10px auto;
  background-color: rgba(255, 255, 255, 0.7);
  max-width: 660px;
}
#ticket .kids .btnKids {
  position: relative;
  margin: 20px auto 0 auto;
  width: 110px;
  padding: 15px 2px 0 2px;
}
#ticket .kids .txt {
  position: relative;
  margin: 0 auto;
  padding: 20px;
  color: #0a4a6c;
  font-size: 0.13rem;
  line-height: 1.4em;
}
#ticket .kids a {
  color: #0a4a6c !important;
}

/* schedule */
#schedule {
  position: relative;
  margin: 0 auto;
  z-index: 300;
  width: calc(100% - 40px);
}
#schedule ul {
  position: relative;
  margin: 20px auto 0 auto;
}
#schedule ul li.contents {
  position: relative;
  margin: 0 auto 20px auto;
  background-color: rgba(51, 20, 107, 0.8);
  padding: 0;
  text-align: center;
}
#schedule ul li.contents:last-child {
  margin: 0 auto;
}
#schedule ul li.closed .end {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(94, 94, 94, 0.96);
  z-index: 10;
}
#schedule ul li.closed .end::after {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
  width: 100%;
  text-align: center;
  content: "終了しました";
  font-size: 0.18rem;
  color: #ecf4f7;
  font-weight: 700;
}
#schedule ul li .areaWrap {
  position: relative;
  margin: 0 auto;
  padding: 0;
  text-align: center;
  color: #ffffff;
}
#schedule ul li .area {
  position: relative;
  margin: 0 auto;
  padding: 10px 0 0 0;
}
#schedule ul li .area .shopname {
  position: relative;
  margin: 0 auto;
  width: calc(100% - 30px);
  padding: 5px 0;
  transform: translateX(-15px);
  background-color: #e7edee;
  border-left: solid 30px #abb2f9;
}
#schedule ul li .area .shopname p {
  position: relative;
  font-size: 0.14rem;
  font-weight: 700;
  color: #33146b;
  z-index: 100;
}
#schedule ul li .area .kikan {
  position: relative;
  margin: 0 auto;
  padding: 10px 0;
  font-size: 0.13rem;
  text-align: center;
  width: calc(100% - 10px);
}

#schedule ul li .detail {
  position: relative;
  height: 0;
  overflow: hidden;
  opacity: 0;
  padding: 10px 0 0 0;
  transition: all 0.5s ease-out;
}
#schedule ul li .detail.disp {
  height: auto;
  opacity: 1;
  margin: 0 auto;
}
#schedule ul li .detail .areaTxt a {
  color: #ffffff;
}
#schedule ul li .detail .map {
  position: relative;
  margin: 0 auto;
  width: calc(100% - 20px);
  max-width: 800px;
}
#schedule ul li .detail .map iframe {
  width: 100%;
  max-width: 100%;
  height: 220px;
}
#schedule ul li .ttlS {
  position: relative;
  margin: 30px auto 10px auto;
  font-size: 0.14rem;
  font-weight: 700;
  color: #eae319;
}
#schedule ul li .ttlS.noMargin {
  margin: 10px auto;
}
#schedule ul li .ttlS span {
  position: relative;
  display: inline-block;
  width: auto;
}
#schedule ul li .ttlS span::before,
#schedule ul li .ttlS span::after {
  position: absolute;
  top: 50%;
  width: 4em;
  height: 1px;
  background-color: #eae319;
  content: "";
  display: block;
}
#schedule ul li .ttlS span::before {
  left: -5em;
}
#schedule ul li .ttlS span::after {
  right: -5em;
}
#schedule ul li .detail p.areaTxt {
  padding: 10px 0 0 0;
  font-size: 0.12rem;
}
#schedule ul li .btn_soon {
  margin: 0 auto;
  padding: 2px 0;
  background-color: #797d81;
  color: #d2d2d2;
  font-size: 0.12rem;
}
#schedule ul li .btn_sAccess {
  position: relative;
  margin: 0 auto;
  padding: 2px 0;
  cursor: pointer;
  background-color: #dbedf0;
  color: #33146b;
  font-size: 0.13rem;
  transition: all 0.3s ease-out;
}
#schedule ul li .btn_sAccess::after {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 5px;
  content: "";
  display: block;
  width: 12px;
  height: 12px;
  background-image: url("../img/arrow01.png");
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-size: contain;
}
#schedule ul li .btn_sAccess:hover {
  background-color: #e4dbe7;
}
#schedule ul li .btn_sAccess.accessClose {
  background-color: #e4dbe7;
}
#schedule ul li .btn_sAccess.accessClose:hover {
  background-color: #dbedf0;
}
#schedule ul li .btn_sAccess.accessClose::after {
  transform: translateY(-50%) scale(-1, -1);
}
#schedule .ticketBtn {
  position: relative;
  margin: 40px auto 50px auto;
  width: calc(100% - 40px);
}
#schedule .ticketBtn .button {
  padding: 8px 1em;
}

/* チケットカレンダー */
._scheduler_container {
  padding-bottom: 30px;
  margin-bottom: 0 !important;
}
.sTicket ul li {
  background-image: none !important;
}
.ticAPI {
  position: relative;
  margin: 20px auto 0 auto;
  width: 100%;
  padding: 0;
  background-color: #ffffff;
  color: #000000;
}
.ticket_api {
  margin: 0;
  padding: 0;
  color: #333333;
  width: 100%;
  background-color: #d6aa11;
}
.ticketWrap {
  margin: 0 auto;
  background-color: transparent !important;
  padding: 20px 0 0 0;
  font-size: 0.12rem !important;
}
.ticketWrap .swiper-wrapper {
  padding: 0;
  margin: 0 auto !important;
}
.ticketWrap .naviBox {
  margin: 0 53px 0 53px;
}
.ticketWrap .naviBox .prevBtn {
  top: 20px;
  left: 0;
  background-color: #ffffff;
  opacity: 1;
}
.ticketWrap .naviBox .nextBtn {
  top: 20px;
  right: 0;
  background-color: #ffffff;
  opacity: 1;
}
.ticketWrap .naviBox .prevBtn:hover,
.ticketWrap .naviBox .nextBtn:hover {
  opacity: 1;
}
.ticketWrap .naviBox ul li {
  margin: 0 1px !important;
}
.ticketWrap .naviBox ul li .scheduleBox {
  color: #333333;
}
.ticketWrap .naviBox ul li.cr .scheduleBox {
  background: #b4561e;
  color: #ffffff !important;
}
.ticketWrap .naviBox ul li.cr .scheduleBox span span {
  color: #ffffff !important;
}
.ticketWrap .detailsWrap {
  padding-top: 20px;
  min-height: 190px;
}
.ticketWrap .detailsBox .tit {
  background-color: #f5f6b5;
  font-size: 0.14rem !important;
  color: #000000 !important;
}
.ticketWrap .detailsBox .tit p {
  margin: 0 !important;
}
.ticketWrap .detailsBox .tit01 {
  font-size: 0.18rem !important;
}
.ticketWrap .detailsBox .details h4 {
  margin: 30px 0;
  color: #333333 !important;
  border-bottom: 2px solid #333333;
  background-image: none;
  font-size: 0.13rem !important;
  text-align: center;
  font-weight: 700;
}
.ticketWrap .detailsBox .details a.scrap {
  color: #b4561e;
  font-size: 0.12rem;
  font-weight: normal;
}
.ticketWrap .detailsBox .details a.scrap:after {
  border-top: solid 1px #b4561e;
  border-right: solid 1px #b4561e;
  width: 5px;
  height: 5px;
  margin: -3px 0 0 0px;
}
.ticketWrap .detailsBox .details ul li {
  margin-bottom: 10px !important;
  margin-right: 10px !important;
}
.ticketWrap .detailsBox .details ul li .scheduleBox.present {
  background: #ffffff;
  border: solid 1px #b3b3b3;
  color: #2a2a2a;
}
.ticketWrap .detailsBox .details ul li .scheduleBox.sold {
  background: #b3b3b3;
  color: #969696;
  border: solid 1px #b3b3b3;
}
.ticketWrap .detailsBox .details ul li .scheduleBox.few {
  background: #fbfdc2;
  border: solid 1px #b3b3b3;
  color: #2a2a2a;
}
.ticket_api .note {
  margin: 0 auto !important;
  color: #232323;
  padding: 20px;
  background-color: #ffffff;
}
.ticket_api .note a {
  color: #cf1009;
}
.ticketWrap .detailsBox .details .ticketBox .ticketItem p {
  color: #232323;
}
.ticketWrap .detailsBox .details ul li .scheduleBox .time {
  font-size: 0.13rem;
}
.ticketWrap .detailsBox .details ul li .scheduleBox .state {
  font-size: 0.12rem;
}

/* GOODS */
#goods {
  position: relative;
  margin: -65px auto 0 auto;
  padding: 100px 0 30px 0;
  background-image: url("../img/bg_ttl_goods.png");
  background-position: 50% 0;
  background-repeat: no-repeat;
  background-size: 456.5px auto;
}
#goods .goodsImg{
	position: relative;
	margin:  0 auto;
	width: calc(100% - 30px);
	max-width: 650px;
	border: solid 3px #ffffff;
}
#goods ul {
  position: relative;
  margin: 10px auto 0 auto;
  width: 100%;
  max-width: 1200px;
  z-index: 80;
  gap: 40px 8px;
}
#goods ul li {
  position: relative;
  margin: 0;
  width: calc(50% - 4px);
  max-width: 290px;
}
#goods ul li::before {
  position: absolute;
  top: 5px;
  left: 5px;
  width: calc(100% - 10px);
  height: 100%;
  display: block;
  content: "";
  background-color: rgba(255, 255, 255, 0.7);
}
#goods ul li div {
  position: relative;
  margin: 0 auto;
}
#goods ul li div.price {
  width: calc(100% - 20px);
  text-align: right;
  padding: 10px 0;
  font-size: 0.13rem;
}
#goods ul li div.price span {
  font-size: 0.18rem;
  font-weight: 700;
}
#goods ul li div.txt {
  width: calc(100% - 30px);
}
#goods ul li div.spec {
  width: calc(100% - 30px);
  padding: 20px 0;
  font-size: 0.13rem;
}
#goods ul li .cautionWrap {
  position: relative;
  margin: 20px auto 0 auto;
}
#goods ul li .cautionWrap p {
  position: relative;
  margin: 0 auto;
  padding-left: 1.2em;
}
#goods ul li .cautionWrap p::before {
  position: absolute;
  top: 0;
  left: 0;
  content: "※";
}
#goods ul li.soon {
  width: calc(100% - 40px);
  max-width: 400px;
  transform: translateX(-12px);
}

/* SPECIAL */
#special {
  position: relative;
  margin: -80px auto 0 auto;

  padding: 80px 0 0 0;
  background-image: url("../img/bg_ttl_special.png");
  background-position: 50% 0;
  background-repeat: no-repeat;
  background-size: 447.5px auto;
}
#special .btn_special {
  position: relative;
  margin: 10px auto;
  width: calc(100% - 40px);
  max-width: 480px;
  z-index: 100;
}

/* SPECIAL */
#banner {
  position: relative;
  margin: -40px auto 0;
  padding: 80px 0 0 0;
  background-position: 50% 0;
  background-repeat: no-repeat;
  background-size: 447.5px auto;
}
#banner .bannerWrap{
	position: relative;
	margin: 0 auto 10px auto;
	width: calc(100% - 40px);
	max-width: 1000px;
	gap:10px 20px;
  z-index: 100;
}
#banner .btn_special {
  position: relative;
  margin: 0;
  width: 100%;
  max-width: 480px;
}

/* FAQ */
#precautions {
  position: relative;
  margin: 80px auto 0 auto;
  padding: 5px 0;
  background-color: rgba(54, 1, 113, 0.7);
  z-index: 31;
}
#precautions::before,
#precautions::after {
  position: absolute;
  left: 0;
  width: 100%;
  height: 50px;
  background-image: url("../img/bg_faq.svg");
  background-position: 50% 0;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  content: "";
  display: block;
}
#precautions::after {
  bottom: -50px;
  transform: rotate(180deg);
}
#precautions::before {
  top: -50px;
}
#precautions .cautionWrap {
  position: relative;
  margin: 0 auto 20px auto;
  width: calc(100% - 40px);
  max-width: 960px;
  background-color: #ffffff;
}
#precautions .cautionWrap.limitlist {
  margin: 0 auto;
}
#precautions .cautionWrap .ttl {
  position: relative;
  margin: 0 auto;
  padding: 10px 0;
  z-index: 10;
  font-weight: 700;
  text-align: center;
  cursor: pointer;
}
#precautions .ttl::after {
  position: absolute;
  top: 50%;
  right: 10px;
  content: "";
  display: block;
  width: 14px;
  height: 14px;
  background-image: url("../img/arrow01.png");
  background-position: 50% 0;
  background-repeat: no-repeat;
  background-size: contain;
  transition: all 0.3s ease-out;
  transform: translateY(-50%);
}
#precautions .ttl.disp::after {
  transform: translateY(-50%) scale(-1, -1);
}
#precautions .faqWrap {
  position: relative;
  margin: 0 auto;
  padding: 0;
  height: 0;
  overflow: hidden;
  transition: all 0.3s ease-out;
  z-index: 9;
}
#precautions .CatTtl {
  position: relative;
  margin: 0 auto;
  padding: 5px 0;
  text-align: center;
  font-size: 0.15rem;
  color: #f09e24;
  font-weight: 700;
}
#precautions .CatTtl.marginTop {
  margin: 20px auto 0 auto;
}
#precautions .faqWrap.disp {
  height: auto !important;
  padding: 10px 0;
  margin: 0 auto;
}
#precautions .faqWrap dl {
  position: relative;
}
#precautions .faqWrap dl dt {
  position: relative;
  font-weight: 900;
  font-size: 0.14rem;
}
#precautions .cautionlist .faqWrap dl dt {
  color: #0088cc;
  line-height: 1em;
  padding: 30px 0 0 0;
  text-align: center;
  font-weight: 700;
}
#precautions .faqWrap dl dd {
  padding: 15px 0;
}
#precautions #faq.faqWrap dl dd {
  padding: 5px 0 0 0;
}
#precautions #limit dl dd {
  padding: 0;
}
#precautions .faqWrap dl dd p {
  position: relative;
  width: calc(100% - 40px);
  margin: 0 auto;
  padding-bottom: 0.8em;
  text-align: left;
  line-height: 1.5em;
  font-size: 0.13rem;
}
#precautions #cautionlist.faqWrap dl dd p,
#precautions #faq.faqWrap dl dt p,
#precautions #faq.faqWrap dl dd p,
#precautions #limit dd p {
  padding-left: 1.2em;
}
#precautions #faq.faqWrap dl dt p {
  position: relative;
  color: #0088cc;
  font-weight: 500;
  text-align: left;
  margin: 0 auto;
  width: calc(100% - 40px);
  line-height: 1.4em;
}
#precautions #faq.faqWrap dl dt.marginTop {
  margin: 10px auto 0 auto;
}
#precautions #cautionlist.faqWrap dl dd p::before,
#precautions #faq.faqWrap dl dt p::before,
#precautions #faq.faqWrap dl dd p::before,
#precautions #limit dd p::before {
  position: absolute;
  content: "・";
  left: 0;
}
#precautions #faq.faqWrap dl dt p::before {
  content: "Q.";
}
#precautions #faq.faqWrap dl dd p::before {
  content: "A.";
}
#precautions .faqWrap dl dd .caution {
  line-height: 1.4em;
  display: block;
  padding: 5px 0 0 0;
  text-align: left;
}
#precautions #limitlist {
  position: relative;
  margin: 0 auto;
  width: calc(100% - 20px);
}
#precautions #limit .lead {
  position: relative;
  margin: 0 auto;
  width: calc(100% - 40px);
  line-height: 1.5em;
  font-size: 0.13rem;
  padding-bottom: 20px;
}

/* ニュース */
#news {
  position: relative;
  margin: 10px auto 0 auto;
  padding: 50px 0 0 0;
  background-image: url("../img/bg_ttl_news.png");
  background-position: 50% 0;
  background-repeat: no-repeat;
  background-size: 450px auto;
}
#news .newsWrap {
  position: relative;
  z-index: 80;
}
#news .newsWrap .contetsWrap {
  position: relative;
  margin: 10px auto 0 auto;
  width: calc(100% - 40px);
  max-width: 960px;
  background-color: rgba(255, 255, 255, 0.8);
}
#news .newsBox {
  position: relative;
  margin: 0 auto;
  padding: 20px 5px 20px 20px;
}
#news .newsBox ul {
  position: relative;
  margin: 0 auto;
  width: 100%;
  /*height: 160px;*/
  height: 80px;
  overflow: hidden;
}
#news .newsBox ul li {
  position: relative;
  margin: 0 auto 10px auto;
  padding: 0 0 5px 0;
  line-height: 1.4em;
  font-size: 0.13rem;
  color: #33146b;
}
#news .newsBox ul li p.date {
  color: #dc235c;
  width: 100%;
}
#news .newsBox ul li a.text,
#news .newsBox ul li p.text {
  width: 100%;
  color: #33146b !important;
}
#news .newsBox ul li a.text:hover {
  color: #71a9be !important;
}

.btn_game {
  position: relative;
  margin: 30px auto 0 auto;
  width: calc(100% - 40px);
  max-width: 380px;
}

/* ----- pc ----- */
@media screen and (min-width: 641px) {
  /* ヘッダー */
  header #keyvisual {
    background-image: url("../img/main2_pc.webp");
    padding-top: 56.25%;
  }

  /* lead */
  #lead {
    padding: 25px 0 20px 0;
  }

  /* point */
  #point {
    margin: -120px auto 0 auto;
    padding: 170px 0 0 0;
    background-size: 730px auto;
  }
  #point ul {
    gap: 0 10px;
  }
  #point ul li:nth-child(2),
  #point ul li:nth-child(4) {
    margin: 30px 0 0 0;
  }
  #point ul li .ttl {
    width: 110px;
  }
  #point ul li:nth-child(5) .ttl {
    max-width: calc(82% - 20px);
  }
  #point ul li .txt {
    margin: 12px auto 0 auto;
    padding: 8px 5px;
    font-size: 0.14rem;
    line-height: 1.6em;
  }
  #point ul li .txt::before {
    top: -12px;
    height: 12px;
  }
  #point .about {
    margin: 40px auto;
    padding: 15px 60px;
  }
  #point .about .ttl::before {
    top: 40px;
    left: -265px;
    width: 42%;
    max-width: 120px;
  }
  #point .about .ttl::after {
    right: -220px;
    max-width: 80px;
  }
  #point .about .txt p {
    padding-top: 25px;
    font-size: 0.16rem;
  }
  #point .about .txt a img {
    margin: 30px auto 20px auto;
  }

  /* CM */
  #cm {
    margin: -70px auto 0 auto;
    padding: 90px 0 0 0;
    background-size: 720px auto;
  }
  #cm .flexbox {
    max-width: 1200px;
    gap: 15px;
  }
  #cm .cmBox::after {
    top: 10px;
    left: -10px;
  }

  /* nazo */
  #nazo {
    padding: 110px 0 20px 0;
    background-size: 728px auto;
  }
  #nazo .cmBox::after {
    top: 10px;
    left: -10px;
  }
  /* form */
  .inputArea {
    margin: 30px auto 0 auto;
  }
  /* btnArea, button */
  #nazo #btnArea button {
    padding: 10px 3.5em;
    font-size: 0.18rem;
  }

  /* tower */
  #tower {
    padding: 60px 0 20px 0;
  }
  #tower .towerArea::before {
    top: -15%;
    width: 800px;
    padding-top: 720px;
  }
  #tower ul {
    max-width: 800px;
    margin: auto;
  }
  #tower .towerArea .towerImg img {
    transform: translateX(40px);
  }
  #tower .towerArea .towerTxt img {
    transform: translateX(-50px);
  }

  #story {
    margin: -60px auto 0 auto;
    padding: 200px 0 80px 0;
    background-image: url("../img/bg_ttl_story.png");
    background-position: 50% 0;
    background-repeat: no-repeat;
    background-size: 742px auto;
  }
  #story .storyWrap {
    margin: 50px auto;
  }
  #story .bg {
    top: -50px;
  }
  #story .bg svg {
    height: 50px;
  }
  #story .storyWrap .storyTxt p {
    padding: 20px 0;
    font-size: 0.18rem;
    line-height: 2.2em;
  }
  #story .storyWrap .storyTxt p.large {
    font-size: 0.28rem;
  }

  /* howto  */
  #howto {
    margin: -90px auto 0 auto;
    padding: 45px 0 0 0;
    background-size: 752px auto;
  }
  #howto .txt p {
    font-size: 0.14rem;
    line-height: 1.6em;
  }
  #howto .txt .button {
    font-size: 0.13rem;
  }
  #howto .cautionWrap p {
    font-size: 0.13rem;
  }

  /* 販売 */
  #ticket {
    margin: -20px auto 0 auto;
    padding: 110px 0 0 0;
    background-size: 728px auto;
  }
  #ticket .leadTxt {
    padding-top: 20px;
    font-size: 0.22rem;
    line-height: 1.8em;
  }
  #ticket h3 {
    margin: 50px auto 10px auto;
    padding: 8px 2em;
    font-size: 0.17rem;
  }
  /* 料金 */
  #ticket .priceBox .button {
    font-size: 0.14rem;
  }
  #ticket .priceBox .caution {
    font-size: 0.14rem;
  }
  #ticket .priceBox .table {
    margin: 20px auto 40px auto;
  }
  #ticket .priceBox table th {
    line-height: 1.4em;
    font-size: 0.14rem;
  }
  #ticket .priceBox table td {
    padding: 15px 0;
    font-size: 0.14rem;
    line-height: 1.6em;
  }
  #ticket .priceBox table td span {
    font-size: 0.24rem;
  }
  #ticket .priceBox table td p {
    font-size: 0.16rem;
    line-height: 1.4em;
  }
  #ticket .priceBox table tbody th {
    padding: 15px 2px;
  }
  #ticket .priceBox table thead th span,
  #ticket .priceBox table tbody th span {
    font-size: 0.12rem;
  }
  #ticket .BtnticCaution {
    margin: 40px auto 0 auto;
    padding: 10px 1em;
    font-size: 0.16rem;
  }
  #ticket .BtnticCaution::after {
    right: 10px;
    font-size: 0.13rem;
  }
  #ticket .ticCaution {
    font-size: 0.14rem;
    line-height: 1.6em;
  }

  #ticket .release {
    margin: 0 auto 40px auto;
  }
  #ticket .release ul li {
    margin: 20px auto 60px auto;
  }
  #ticket .release ul li:last-child {
    margin: 0 auto;
  }
  #ticket .release .typeTxt {
    margin: 0 auto 15px auto;
    padding: 10px 0;
    font-size: 0.16rem;
  }
  #ticket .release p {
    font-size: 0.16rem;
  }
  #ticket .scraptantei p {
    padding: 15px 0 0 0;
    font-size: 0.14rem;
  }

  #ticket .u22 {
    margin: 80px auto 30px auto;
  }
  #ticket .u22 .btnU22 {
    width: 140px;
    padding: 20px 0 0 0;
  }
  #ticket .u22 .txt {
    padding: 25px 40px 40px 40px;
    font-size: 0.16rem;
    line-height: 1.6em;
  }
  #ticket .u22 .txt a:hover {
    color: #b74df6 !important;
  }
  #ticket .kids {
    margin: 30px auto 50px auto;
  }
  #ticket .kids .btnKids {
    width: 140px;
    padding: 25px 0 0 0;
  }
  #ticket .kids .txt {
    padding: 30px 40px 40px 40px;
    font-size: 0.16rem;
    line-height: 1.6em;
  }
  #ticket .kids .txt a:hover {
    color: #b74df6 !important;
  }

  /* schedule */
  #schedule ul {
    margin: 20px auto 0 auto;
    width: 960px;
  }
  #schedule ul li.contents {
    margin: 0 auto 40px auto;
  }
  #schedule ul li.contents:last-child {
    margin: 0 auto;
  }
  #schedule ul li .area {
    padding: 20px 0 0 0;
  }
  #schedule ul li .area .shopname {
    width: calc(100% - 50px);
    padding: 12px 0;
    transform: translateX(-50px);
    border-left: solid 60px #abb2f9;
  }
  #schedule ul li .area .shopname p {
    font-size: 0.22rem;
  }
  #schedule ul li .area .kikan {
    padding: 20px 0;
    font-size: 0.18rem;
  }
  #schedule ul li .detail .map iframe {
    height: 320px;
  }
  #schedule ul li .ttlS {
    margin: 70px auto 10px auto;
    font-size: 0.18rem;
  }
  #schedule ul li .ttlS span::before,
  #schedule ul li .ttlS span::after {
    width: 6em;
  }
  #schedule ul li .ttlS span::before {
    left: -7em;
  }
  #schedule ul li .ttlS span::after {
    right: -7em;
  }
  #schedule ul li .detail p.areaTxt {
    padding: 15px 0 0 0;
    font-size: 0.14rem;
  }
  #schedule ul li .btn_soon {
    padding: 4px 0;
    font-size: 0.14rem;
  }
  #schedule ul li .btn_sAccess {
    padding: 4px 0;
    font-size: 0.16rem;
  }
  #schedule ul li .btn_sAccess::after {
    right: 10px;
    width: 18px;
    height: 18px;
  }
  #schedule .ticketBtn {
    margin: 50px auto 70px auto;
  }
  #schedule .ticketBtn .button {
    padding: 20px 0;
  }

  /* GOODS */
  #goods {
    margin: -65px auto 0 auto;
    padding: 180px 0 50px 0;
    background-size: 725px auto;
  }
	#goods .goodsImg{border: solid 5px #ffffff;}
  #goods ul {
    margin: 20px auto 0 auto;
    gap: 0 5px;
  }
  #goods ul li {
    width: calc(25% - 5px);
  }
  #goods ul li div.price {
    width: calc(100% - 40px);
    padding: 20px 0;
    font-size: 0.15rem;
  }
  #goods ul li div.price span {
    font-size: 0.22rem;
  }
  #goods ul li div.txt {
    width: calc(100% - 50px);
  }
  #goods ul li div.spec {
    width: calc(100% - 50px);
    padding: 30px 0;
    font-size: 0.14rem;
    line-height: 1.6em;
  }

  /* FAQ */
  #precautions {
    margin: 120px auto 0 auto;
  }
  #precautions::before,
  #precautions::after {
    height: 60px;
  }
  #precautions::after {
    bottom: -60px;
  }
  #precautions::before {
    top: -60px;
  }
  #precautions .cautionWrap {
    margin: 0 auto 30px auto;
  }
  #precautions .cautionWrap .ttl {
    padding: 15px 0;
    font-size: 0.2rem;
  }
  #precautions .ttl::after {
    right: 15px;
    width: 20px;
    height: 20px;
  }
  #precautions .CatTtl {
    padding: 10px 0;
    font-size: 0.18rem;
  }
  #precautions .CatTtl.marginTop {
    margin: 40px auto 0 auto;
  }
  #precautions #limit .CatTtl.marginTop {
    margin: 40px auto 20px auto;
  }
  #precautions .faqWrap dl {
    max-width: 860px;
    margin: 0 auto;
    padding-bottom: 20px;
  }
  #precautions .cautionlist .faqWrap dl {
    padding-bottom: 20px;
  }
  #precautions .faqWrap dl dt {
    font-size: 0.16rem;
  }
  #precautions .cautionlist .faqWrap dl dt {
    padding: 50px 0 0 0;
  }
  #precautions .faqWrap dl dd {
    padding: 25px 0;
  }
  #precautions #limit dl dd {
    padding: 0;
  }
  #precautions .faqWrap dl dd p {
    line-height: 1.5em;
    font-size: 0.16rem;
  }
  #precautions #faq.faqWrap dl dt p {
    margin: 15px auto 0 auto;
  }
  #precautions #limit .lead {
    margin: 0 auto 10px auto;
    font-size: 0.16rem;
  }
  #precautions #limit .lead {
    max-width: 830px;
    line-height: 1.5em;
    font-size: 0.16rem;
    padding-bottom: 20px;
    padding-top: 10px;
  }

  /* ニュース */
  #news {
    margin: -10px auto 0 auto;
    padding: 100px 0 0 0;
    background-size: 737px auto;
  }
  #news .newsWrap .contetsWrap {
    margin: 30px auto 0 auto;
  }
  #news .newsBox ul {
    /*height: 160px;*/
    height: 80px;
  }
  #news .newsBox ul li {
    line-height: 1.4em;
    font-size: 0.16rem;
  }
  #news .newsBox ul li p.date {
    width: 5em;
  }
  #news .newsBox ul li a.text,
  #news .newsBox ul li p.text {
    width: calc(100% - 6em);
  }

  .btn_game {
    margin: 50px auto 0 auto;
  }
}
