@charset "UTF-8";
/* ------------------------
  common
------------------------ */
:root {
  --notosans: "Noto Sans JP", "ヒラギノ角ゴPro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", Arial, Helvetica, Verdana, sans-serif;
  --roboto: "Roboto Condensed", "ヒラギノ角ゴPro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", Arial, Helvetica, Verdana, sans-serif;
  --slashCutHeight: calc(140/750 * 100vw);
  --lightyellow: #f1eab7;
}
body {
  background-color: #fff;
  font-family: var(--notosans);
  font-size: calc(30/750 * 100vw);
  font-weight: 400;
  color: #000;
  font-feature-settings: "palt";
  line-height: 2;
  letter-spacing: 0.05em;
}
img {
  vertical-align: bottom;
}

a {
  display: block;
  text-decoration: none;
  cursor: pointer;
  transition: opacity 0.3s;
}
a:visited,
a img,
a:before,
a:after {
  text-decoration: none;
}

img {
  max-width: 100%;
  height: auto;
}
.pc {
  display: none;
}
.sp {
  display: block;
}

.inner-lg,
.inner-md,
.inner-sm,
.inner-txt {
  width: 100%;
  margin: 0 auto;
}
.inner-md,
.inner-sm {
  padding: 0 calc(40/750 * 100vw);
}

.noto {
  font-family: var(--notosans);
}
.roboto {
  font-family: var(--roboto);
}
.txtRed {
  color: #ff3611;
}
.txtWhite {
  color: #fff;
}


@media screen and (min-width: 768px) {
  :root {
    --slashCutHeight: min(18.68vw, 269px);
  }
  body {
    font-size: 20px;
  }

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

  .inner-lg,
  .inner-md,
  .inner-sm,
  .inner-txt {
    max-width: 100%;
  }
  .inner-lg {
    padding: 0 50px;
  }
  .inner-md {
    width: 1040px;
    padding: 0 50px;
  }
  .inner-sm {
    width: 800px;
    padding: 0;
  }
  .inner-txt {
    width: 640px;
    padding: 0;
  }
}

/* ----- contBox ----- */
.contBox .ttl-lg {
  font-family: var(--roboto);
  font-size: calc(132/750 * 100vw);
  color: #fff;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  margin-bottom: calc(80/750 * 100vw);
}
.contBox .ttl {
  font-size: calc(50/750 * 100vw);
  line-height: 1.6;
  font-weight: 500;
  margin-bottom: 0.7em;
}
.contBox .ttl .miniTitle {
  display: block;
  text-align: center;
  font-size: 0.58em;
}

.contBox .ttl-lg,
.contBox .ttl-lg span,
.contBox .ttl,
.contBox .ttl span {
  letter-spacing: 0.05em;
}
.contBox .ttl-lg span {
  font-weight: 500;
  line-height: 1.1cap;
  height: 1.05cap;
}
.contBox .ttl,
.contBox .ttl span {
  font-weight: 700;
  text-align: center;
}

.contBox .ttl-lg::after {
  content: '';
  display: block;
  width: 100%;
  height: calc(2/750 * 100vw);
  background: currentColor;
  align-self: end;
  margin-top: calc(38/750 * 100vw);

  transform-origin: left; /* 左端からの変形 */
  transform: scaleX(0); /* 初期状態はスケール0 */  
}
.contBox .ttl-lg.start::after {
  transform: scaleX(1);
  transition: transform 0.5s linear;
  /* トランスフォームの変化にトランジションを設定 */
}

.gradTxt {
  background: linear-gradient(to left, #ff0000, #ff9600);
  background-clip: text;
  color: transparent;
  font-weight: 500;
}
.contBox .ttl-lg.grad::after {
  background: linear-gradient(to left, #ff0000, #ff9600);
}

.contBox .ttl-lg .ttl-sub-icon {
  display: block;
  height: 1cap;
  line-height: 0;
}
.contBox .ttl-lg .ttl-sub-icon img {
  height: 100%;
}

/* ----- btn ----- */
.btn {
  /* 線や文字の色 */
  --txtColor: #ff3611;

  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(600 / 750 * 100vw);
  padding: calc(38 / 750 * 100vw) calc(35 / 750 * 100vw) calc(40 / 750 * 100vw);
  margin: 0 auto;
  background: transparent;
  border: 1px solid var(--txtColor);
  color: var(--txtColor);
  font-size: calc(30 / 750 * 100vw);
  font-weight: bold;
  text-decoration: none;
  text-align: center;
}

.btn .arrow {
  display: inline-block;
  margin-left: auto;
  /* 右寄せ */
  width: calc(20/750 * 100vw);
  height: calc(20/750 * 100vw);
  border: solid currentColor;
  border-width: 0 calc(3/750 * 100vw) calc(3/750 * 100vw) 0;
  transform: rotate(-45deg);
  flex: none;
}

.ticketBtn .icon {
  position: absolute;
  width: calc(73/750 * 100vw);
  left: 20%;
}
.ticketBtn span {
  margin-left: calc(90 / 750* 100vw);
}

/* ----- slider ----- */
.slider {
  margin-bottom: 1.3em;
  opacity: 0;
  transition: opacity 0.5s ease-in-out;
}
.slider .slideItem {
  height: min(56.8vw, 426px);
  margin: 0 calc(10/750 * 100vw);
}
.slider .slideItem img {
  max-height: 100%;
}

/* ----- coming soon ----- */
.soon {
  width: calc(625/750 * 100vw);
  padding: calc(40/750 * 100vw);
  margin: calc(70/750 * 100vw) auto 0;
  text-align: center;
  background-color: #fff;
  outline: calc(4/750 * 100vw) solid #fff;
  outline-offset: calc(6/750 * 100vw);
  line-height: 1.2;
}
.soon .soonTitle {
  font-size: calc(36/750 * 100vw);
  margin-bottom: calc(10/750 * 100vw);
  text-align: center;
  font-weight: 500;
}
.soon .soonTxt {
  font-size: calc(80/750 * 100vw);
  font-style: italic;
  text-align: center;
  letter-spacing: 0.06em;
}


@media screen and (min-width: 768px) {
  /* ----- contBox ----- */
  .contBox .ttl-lg {
    font-size: 100px;
    margin-bottom: 41px;
  }
  .contBox .ttl-lg::after {
    height: 2px;
    margin-top: 22px;
  }

  .contBox .ttl {
    font-size: 40px;
    margin-bottom: 1em;
  }
  
  .contBox .ttl .miniTitle {
    font-size: 0.6em;
  }
  
  /* ----- btn ----- */
  .btn {
    width: 700px;
    padding: 25px 32px 24px;
    font-size: 24px;
  }

  .btn .arrow {
    width: 16px;
    height: 16px;
    border-width: 0 3px 3px 0;
  }

  .ticketBtn .icon {
    width: 65px;
    left: 30.6%;
  }

  .ticketBtn span {
    margin-left: 108px;
  }

  /* ----- slider ----- */
  .slider {
    margin-bottom: 1.9em;
  }

  .slider .slideItem {
    height: 259px;
    margin: 0 5px;
  }

  .slider-grid {
    display: grid;
    grid-auto-flow: column;
    place-content: center;
  }
  .slider-grid .slideItem {
    order: 2;
  }
  .slider-grid .slideItem:last-of-type {
    order: 1;
  }
  
  /* ----- coming soon ----- */
  .soon {
    width: 688px;
    padding: 20px 20px 14px;
    margin: 75px auto 0;
    outline: 4px solid #fff;
    outline-offset: 6px;
  }

  .soon .soonTitle {
    font-size: 24px;
    margin-bottom: 3px;
  }

  .soon .soonTxt {
    font-size: 64px;
  }
}

/* ------------------------
  header
------------------------ */
.gHeader {
  position: sticky;
  top: 0;
  left: 0;
  background-color: #fff;
  z-index: 1000;
}
.gHeader .inner-lg {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: calc(110/750 * 100vw);
  padding-left: calc(25/750 * 100vw);
}

.gHeader .logo {
  width: calc(322/750 * 100vw);
  line-height: 1;
}
.gHeader .logo a img {
  width: 100%;
}

.gHeader .ticketBtn {
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  position: relative;
  width: calc(245/750 * 100vw);
  padding: calc(17/750 * 100vw) 0;
  line-height: 1.5;
  background: linear-gradient(330deg, rgba(230, 0, 18, 1) 0%, rgba(255, 64, 64, 1) 100%);
  text-align: center;
  font-size: calc(22/750 * 100vw);
  font-weight: 700;
  color: #fff;
  border-radius: calc(35/750 * 100vw);
  line-height: 1;
}

.gHeader .ticketBtn img {
  width: calc(45/750 * 100vw);
  margin-right: calc(10/750 * 100vw);
}
.gHeader .ticketBtn::after {
  right: -12px;
  background-color: #231815;
}

.gHeader .ticketBtn:hover {
  opacity: 1;
  background-color: #FE1D2E;
}

.gHeader .gNavToggle {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  width: calc(110/750 * 100vw);
  height: 100%;
  background-color: #000;
  cursor: pointer;
}

.gHeader .gNavToggle::before,
.gHeader .gNavToggle::after {
  content: "";
  display: block;
  width: calc(48/750 * 100vw);
  height: calc(2/750 * 100vw);
  position: absolute;
  top: calc(50% - (1/750 * 100vw));
  left: calc(50% - (24/750 * 100vw));
  background-color: #fff;
}
.gHeader .gNavToggle::before {
  box-shadow: #fff 0 calc(-18/750 * 100vw) 0;
}
.gHeader .gNavToggle::after {
  box-shadow: #fff 0 calc(18/750 * 100vw) 0;
}
.gHeader .gNavToggle.close::before {
  box-shadow: none;
  transform: rotate(45deg);
}
.gHeader .gNavToggle.close::after {
  box-shadow: none;
  transform: rotate(-45deg);
}

/* gNav */
.gNav {
  position: fixed;
  top: calc(110/750 * 100vw);
  left: 0;
  width: 100%;
  height: 100dvh;
  padding: calc(40/750 * 100vw) calc(20/750 * 100vw) calc(20/750 * 100vw);
  overflow-y: auto;
  background-color: rgba(0, 0, 0, 0.8);
  font-size: calc(30/750 * 100vw);
}

.gNav li a {
  color: #fff;
  font-size: calc(30/750 * 100vw);
  font-weight: 300;
  display: block;
  border-bottom: 1px solid #fff;
  padding: calc(45/750 * 100vw) calc(20/750 * 100vw) calc(35/750 * 100vw) calc(20/750 * 100vw);
  position: relative;
}

.gNav li a::after {
  content: '';
  /* Add this to ensure the pseudo-element is generated */
  position: absolute;
  display: inline-block;
  right: calc(40/750 * 100vw);
  top: 50%;
  /* Position at the vertical center */
  transform: translateY(-50%) rotate(-45deg);
  /* Center vertically and rotate */
  margin-left: auto;
  width: calc(28/750 * 100vw);
  height: calc(28/750 * 100vw);
  border: solid #fff;
  border-width: 0 calc(2/750 * 100vw) calc(2/750 * 100vw) 0;
}

.gNav li a span {
  font-size: calc(56/750 * 100vw);
  font-weight: 400;
  font-family: var(--roboto);
  line-height: 1;
  display: block;
}

@media screen and (min-width: 768px) {

  /* gHeader */
  .gHeader {
    justify-content: flex-end;
    align-items: normal;
    height: min(4.86vw, 70px);
  }
  .gHeader .inner-lg {
    height: 100%;
    padding-left: min(3.47vw, 50px);
  }

  .gHeader .logo {
    width: min(17.92vw, 258px);
    align-self: center;
    margin-right: auto;
  }

  .gHeader .ticketBtn {
    font-size: min(1.25vw, 18px);
    width: min(15.28vw, 220px);
    height: min(3.47vw, 50px);
    border-radius: min(1.74vw, 25px);
    margin: auto 0 auto min(2.08vw, 30px);
    padding: 0;
  }
  .gHeader .ticketBtn img {
    margin-right: 13px;
    width: calc(32/1440 * 100vw);
    max-width: 32px;
  }
  .gHeader .ticketBtn::after {
    display: none;
  }

  .gHeader .gNavToggle {
    display: none;
  }

  /* gNav */
  .gNav {
    display: flex;
    position: relative;
    overflow: hidden;
    top: auto;
    left: auto;
    bottom: auto;
    width: auto;
    height: 100%;
    padding: 0;
    overflow-y: hidden;
    background-color: transparent;
  }
  .gNav li a::after {
    display: none;
  }
  .gNav li a span {
    display: none;
  }
  .gNav li a {
    color: #000;
    border-bottom: none;
    padding: 0;
    position: relative;
    font-weight: 400;
  }

  .gNav .mainNav {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    column-gap: 0;
    margin: 0;
    background: #fff;
  }
  .gNav .mainNav li {
    height: 100%;
  }
  .gNav .mainNav li a {
    font-size: min(1.25vw, 18px);
    text-align: center;
    display: flex;
    align-items: center;
    padding: 0.9em 1em;
    height: 100%;
    letter-spacing: 0.075em;
  }
}



/* ------------------------
  mvBox
------------------------ */
.mvBox {
  background: url(../images/mv_bg_sp.jpg?240808) no-repeat center bottom / cover;
  padding-bottom: calc(572/750 * 100vw);
}

@media screen and (min-width: 768px) {
  .mvBox {
    background-image: url(../images/mv_bg_pc.jpg);
    padding-bottom: min(23.61vw, 340px);
  }

}

/* ------------------------
  linkBox
------------------------ */
.linkBox {
  background: url(../images/link_bg_sp.png) no-repeat center top / cover;
  padding-bottom: calc(88/750 * 100vw);
}

.linkBox .schedule {
  display: grid;
}
.linkBox .schedule .ttl {
  grid-area: 1 / 1;
}
.linkBox .schedule .datebox {
  grid-area: 1 / 1;
  display: grid;
  grid-template-columns: 59.87% auto;
}

.linkBox .anchorList {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.linkBox .anchorList li {
  width: calc(210/750 * 100vw);
}
.linkBox .anchorList li:not(:nth-of-type(3n+1)) {
  margin-left: calc(20/750 * 100vw);
}
.linkBox .anchorList li:nth-of-type(n+4) {
  margin-top: calc(20/750 * 100vw);
}

@media screen and (min-width: 768px) {
  .linkBox {
    background: url(../images/link_bg_pc.png) no-repeat center top / cover;
    padding-bottom: 32px;
  }
  
  .linkBox .schedule {
    grid-auto-flow: column;
    width: 1040px;
    max-width: 100%;
    padding: 0 50px;
    margin: 0 auto;
  }

  .linkBox .schedule .datebox {
    grid-area: 1 / 2;
    grid-template-columns: 61.02% auto;
  }

  .linkBox .anchorList {
    display: grid;
    grid-auto-flow: column;
    grid-gap: 15px;
  }
  .linkBox .anchorList li {
    width: 100%;
  }
  .linkBox .anchorList li:not(:nth-of-type(3n+1)) {
    margin-left: 0;
  }
  .linkBox .anchorList li:nth-of-type(n+4) {
    margin-top: 0;
  }
}

/* ------------------------
  watchBox
------------------------ */
.watchBox {
  background: url(../images/watch_bg_sp.jpg) no-repeat center top / 100% auto, #423838;
  padding-top: calc(100/750 * 100vw);
}

.watchBox .ttl-lg .ttl-sub-icon {
  margin-left: calc(37/750 * 100vw);
}

.watchBox01 {
  padding-bottom: calc(385/750 * 100vw);
}
.watchBox01 .ttl {
  text-align: left;
  margin-bottom: 0.5em;
}
.watchBox01 .ttl span {
  letter-spacing: 0.04em;
}

.watchBox02 {
  clip-path: polygon(0 var(--slashCutHeight), 100% 0, 100% 100%, 0 100%);
  background: url(../images/watch_02_bg_top_sp.png) no-repeat center top / 100% auto, url(../images/watch_02_bg_bottom_sp.png) no-repeat center bottom / 100% auto, #ff511a;
  padding: calc(188/750 * 100vw) 0 calc(268/750 * 100vw);
}
.watchBox02 .ttl {
  font-size: calc(80/750 * 100vw);
  margin-bottom: calc(50/750 * 100vw);
}
.watchBox02 .videoBox iframe {
  width: 100%;
  height: calc(422/750 * 100vw);
}

@media screen and (min-width: 768px) {
  .watchBox {
    background: url(../images/watch_bg_pc.jpg) no-repeat center top / auto 994px, #423838;
    padding-top: 89px;
  }

  .watchBox .ttl-lg .ttl-sub-icon {
    margin-left: 26px;
  }

  .watchBox01 {
    padding-bottom: 83px;
  }
  .watchBox01 .ttl {
    font-size: 48px;
    margin-bottom: 0.5em;
  }
  .watchBox01 .inner-txt {
    margin: 0 auto 0 0;
  }

  .watchBox02 {
    background: url(../images/watch_02_bg_top_pc.png) no-repeat center top / 100% auto, url(../images/watch_02_bg_bottom_pc.png) no-repeat center bottom / 100% auto, #ff511a;
    padding: 232px 0 321px;
  }

  .watchBox02 .ttl {
    font-size: 64px;
    margin-bottom: 44px;
  }

  .watchBox02 .videoBox {
    width: 100%;
    max-width: 1040px;
    margin: 0 auto;
    padding: 0 50px;
  }
  .watchBox02 .videoBox iframe {
    height: 527px;
  }
}

/* ------------------------
  playBox
------------------------ */
.playBox {
  background: url(../images/play_bg_top_sp.png) no-repeat center top / 100% auto, url(../images/play_bg_sp.png) no-repeat center top / 100% auto, var(--lightyellow);
  clip-path: polygon(0 var(--slashCutHeight), 100% 0, 100% 100%, 0 100%);
  margin-top: calc(var(--slashCutHeight) * -1);
  padding-top: calc(301/750 * 100vw);
}

.playBox .ttl-lg {
  margin-bottom: calc(60/750 * 100vw);
}
.playBox .ttl-lg .ttl-sub-icon {
  margin-left: calc(21/750 * 100vw);
}

.playBox .ttl a {
  text-align: center;
  font-weight: 700;
}

.playBox01 {
  background: url(../images/play_01_bg_bottom_sp.png) no-repeat center bottom / 100% auto;
  padding-bottom: calc(322/750 * 100vw);
}
.playBox01 section + section {
  margin-top: 2em;
}
.playBox01 .ttl .miniTitle {
  font-weight: 400;
  font-family: var(--roboto);
  margin-top: 0.5em;
}
.playBox01-02 p {
  letter-spacing: 0.04em;
}

.playBox02 {
  clip-path: polygon(0 var(--slashCutHeight), 100% 0, 100% 100%, 0 100%);
  background: url(../images/play_02_bg_sp.png) no-repeat center top / cover, #f87e24;
  margin-top: calc(var(--slashCutHeight) * -1);
  padding: calc(208/750 * 100vw) 0 calc(115/750 * 100vw);
}
.playBox02 section + section {
  margin-top: 2.7em;
}

.playBox03 {
  background: url(../images/play_03_bg_sp.jpg) no-repeat center bottom / cover, #847c75;
  padding: calc(104/750 * 100vw) 0 calc(676/750 * 100vw);
}
.playBox03 .ttl {
  margin-bottom: 0.4em;
}

@media screen and (min-width: 768px) {
  .playBox {
    background: url(../images/play_bg_top_pc.png) no-repeat center top / 100% auto, url(../images/play_bg_pc.png) repeat-y center top / 100% auto, var(--lightyellow);
    padding-top: 347px;
  }

  .playBox .ttl-lg {
    margin-bottom: 43px;
  }

  .playBox .ttl-lg .ttl-sub-icon {
    margin-left: 21px;
  }

  .playBox01 {
    background: url(../images/play_01_bg_bottom_pc.png) no-repeat center bottom / 100% auto;
    padding-bottom: 372px;
  }

  .playBox01 section + section {
    margin-top: 2.8em;
  }

  .playBox01 .ttl .miniTitle {
    margin-top: 0.5em;
  }

  .playBox02 {
    clip-path: polygon(0 var(--slashCutHeight), 100% 0, 100% 100%, 0 100%);
    background: url(../images/play_02_bg_pc.png) no-repeat center top / cover, #f87e24;
    padding: 326px 0 120px;
  }

  .playBox02 section + section {
    margin-top: 3.6em;
  }

  .playBox03 {
    background: url(../images/play_03_bg_pc.jpg) no-repeat center bottom / cover, #847c75;
    padding: 106px 0 576px;
  }

  .playBox03 .ttl {
    margin-bottom: 0.7em;
  }
}


/* ------------------------
  eatBox
------------------------ */
.eatBox {
  background: url(../images/eat_bg_top_sp.png) no-repeat center top / 100% auto, url(../images/eat_bg_sp.png) no-repeat center top / 100% auto, var(--lightyellow);
  padding: calc(210/750 * 100vw) 0 calc(243/750 * 100vw);
}

.eatBox .ttl-lg {
  margin-bottom: calc(64/750 * 100vw);
}
.eatBox .ttl-lg .ttl-sub-icon {
  margin-left: calc(25/750 * 100vw);
}

.eatBox section + section {
  margin-top: calc(80/750 * 100vw);
}

.eatBox01 .ttl {
  font-size: calc(40/750 * 100vw);
}

.eatBox01 .sframen-logo  {
  width: calc(534/750 * 100vw);
  margin: 0 auto 1em;
}

.eatBox01 .ttl,
.eatBox01 .inner-txt {
  padding-inline: calc(40/750 * 100vw);
}

.eatBox01 .eatBox01Conts  {
  margin-bottom: calc(80/750 * 100vw);
}
.eatBox01 .eatBox01Conts .inner-txt,
.eatBox01Conts p {
  margin-top: calc(47/750 * 100vw);
}

.eatBox01 .btn {
  background-color: #fff;
  transition: 1s;
} 

.eatBox .eatBox02 {
  margin-top: calc(118/750 * 100vw);
}

@media screen and (min-width: 768px) {
  .eatBox {
    background: url(../images/eat_bg_top_pc.png) no-repeat center top / 100% auto, url(../images/eat_bg_pc.png) no-repeat center top / 100% auto, var(--lightyellow);
    padding: 227px 0 322px;
  }

  .eatBox .ttl-lg {
    margin-bottom: 58px;
  }

  .eatBox .ttl-lg .ttl-sub-icon {
    margin-left: 14px;
  }

  .eatBox section + section {
    margin-top: 59px;
  }

  .eatBox01 .ttl {
    font-size: 40px;
    margin-bottom: 0.7em;
    line-height: 1.5;
    margin-top: -0.22lh;
    padding: 0;
  }
  .eatBox01 .ttl,
  .eatBox01 .img-box {
    width: 100%;
  }
  
  .eatBox01 .img-box {
    text-align: center;
    margin-bottom: 1.3em;
  }
  .eatBox01 .inner-txt {
    margin-top: 0;
  }
  
  .eatBox01 .eatBox01Title .ttl,
  .eatBox01 .eatBox01Title .inner-txt {
    padding: 0;
  }
  
  .eatBox01 .eatBox01Conts .inner-txt {
    text-align: center;
  }
  
  .eatBox01 .eatBox01Conts .ttl {
    font-size: 30px;
  }
  
  .eatBox01Conts p {
    margin-top: 40px;
}
  
  .eatBox .eatBox02 {
    margin-top: 69px;
  }
}
@media (min-width: 1240px) {
  .eatBox01 .inner-lg.eatBox01Title {
    display: grid;
    place-content: center;
    grid-template-columns: auto auto;
    grid-column-gap: min(4.86vw, 70px);
    /* padding-left: min(calc((100vw - 1040px)/2 + 50px), 250px); */
  }

  .eatBox01 .eatBox01Title .ttl,
  .eatBox01 .eatBox01Title .inner-txt {
    max-width: 470px;
    padding: 0;
  }

  .eatBox01 .eatBox01Title .img-box {
    max-width: 600px;
    grid-area: 1 / 1 / 3;
    margin-bottom: 0;
  }

  .eatBox01 .eatBox01Title .inner-txt {
    grid-area: 2 / 2 / 3;
  }
  
  .eatBox01 .eatBox01Conts {
    display: grid;
    place-content: center;
    grid-template-columns: auto auto;
    grid-column-gap: 40px;
    margin-bottom: 60px;
  }
  
  .eatBox01 .eatBox01Conts .inner-txt {
    width: 450px;
    padding-inline: 0;
    margin-top: 60px;
  }
  .eatBox01 .eatBox01Conts .inner-txt:nth-of-type(1) {
    grid-area: 1 / 1 ;
  }
  .eatBox01 .eatBox01Conts .inner-txt:nth-of-type(2) {
    grid-area: 1 / 2 ;
  }
}

/* ------------------------
  stayBox
------------------------ */
.stayBox {
  background: url(../images/stay_bg_top_sp.png) no-repeat center top / 100% auto, url(../images/stay_bg_bottom_sp.png) no-repeat center bottom / 100% auto, #fff;
  clip-path: polygon(0 var(--slashCutHeight), 100% 0, 100% 100%, 0 100%);
  margin-top: calc(var(--slashCutHeight) * -1);
  padding: calc(364/750 * 100vw) 0 calc(276/750 * 100vw);
}

.stayBox .ttl-lg {
  margin-bottom: calc(60/750 * 100vw);
}
.stayBox .ttl-lg .ttl-sub-icon {
  margin-left: calc(16/750 * 100vw);
}

.stayBox section +  section {
  margin-top: calc(107/750 * 100vw);
}

.stayBox01 {
  background: url(../images/stay_01_bg_sp.png) no-repeat center bottom / 100% auto;
  padding-bottom: calc(660/750 * 100vw);
}
.stayBox01 .ttl {
  font-size: calc(49/750 * 100vw);
  margin-bottom: 0.4em;
}
.stayBox .stayBox02 {
  margin-top: calc(110/750 * 100vw);
}
.stayBox .btn_box {
  margin-top: calc(68/750 * 100vw);
}

@media screen and (min-width: 768px) {
  .stayBox {
    background: url(../images/stay_bg_top_pc.png) no-repeat center top / 100% auto, url(../images/stay_bg_bottom_pc.png) no-repeat center bottom / 100% auto, #fff;
    padding: 316px 0 227px;
  }

  .stayBox .ttl-lg {
    margin-bottom: 44px;
  }

  .stayBox .ttl-lg .ttl-sub-icon {
    margin-left: 11px;
  }

  .stayBox section + section {
    margin-top: 59px;
  }

  .stayBox01 {
    background: url(../images/stay_01_bg_pc.png) no-repeat center bottom / 100% auto;
    padding-bottom: 600px;
  }

  .stayBox01 .ttl {
    font-size: 40px;
    margin-bottom: 0.65em;
  }

  .stayBox .stayBox02 {
    margin-top: 117px;
  }

  .stayBox .btn_box {
    margin-top: 83px;
  }
}

/* ------------------------
  ticketBox
------------------------ */
.ticketBox {
  background: url(../images/ticket_bg_sp.png) no-repeat center top / cover, #fc5301;
  padding: calc(166/750 * 100vw) 0 calc(126/750 * 100vw);
}

.ticketBox .ttl-lg {
  margin-bottom: 0;
}
.ticketBox .ttl-lg .ttl-sub-icon {
  margin-left: calc(19/750 * 100vw);
}

.ticketFrame {
  background: url(../images/ticket_bg_frame_sp.png) repeat-y center top / 100% auto;
  position: relative;
  margin-top: calc(198/750 * 100vw);
  padding: calc(26/750 * 100vw) 0 calc(64/750 * 100vw);
}
.ticketFrame::before,
.ticketFrame::after {
  content: '';
  width: 100%;
  position: absolute;
  left: 0;
}
.ticketFrame::before {
  height: calc(144/750 * 100vw);
  background: url(../images/ticket_bg_frame_top_sp.png) no-repeat center top / 100% auto;
  top: calc(-144/750 * 100vw);
}
.ticketFrame::after {
  height: calc(10/750 * 100vw);
  background: url(../images/ticket_bg_frame_bottom_sp.png) no-repeat center bottom / 100% auto;
  bottom: calc(-10/750 * 100vw);
}

.ticketFrame .ttl {
  font-size: calc(66/750 * 100vw);
  margin-bottom: 0.24em;
}
.ticketFrame .ttl .miniTitle {
  font-size: calc(32/750 * 100vw);
}

.ticketScheduleBox {
  background-color: #fff9d0;
  width: 80%;
  max-width: 600px;
  margin: 0 auto;
  font-size: calc(50/750 * 100vw);
  padding: calc(20/750 * 100vw) calc(30/750 * 100vw) calc(30/750 * 100vw);
}
.ticketScheduleBox * {
  font-weight: 500;
  text-align: center;
  line-height: 1.5;
}
.ticketScheduleBox .weekday {
  font-size: 0.72em;
}

.ticketPriceBox {
  display: grid;
  margin-top: calc(52/750 * 100vw);
}
.ticketPriceTtl {
  font-weight: 500;
  text-align: center;
  line-height: 1.7;
  display: inline-block;
  margin-inline: auto;
  padding: 0 calc(32/750 * 100vw);
  background-color: #fff;
  border-radius: 2em;
  border: calc(2/750 * 100vw) solid currentColor;
  grid-area: 1 / 1 / 2;
  z-index: 2;
  pointer-events: none;
}

.ticketPriceList {
  grid-area: 1 / 1 / 3;
}
.ticketPriceList * {
  text-align: center;
}
.ticketPriceList dt .gradTxt {
  font-size: calc(74/750 * 100vw);
  line-height: 1.27;
  font-weight: 700;
}
.ticketPriceList dd {
  font-size: calc(26/750 * 100vw);
  line-height: 1.9;
  font-weight: 500;
}
.ticketPriceList dd.notes {
  font-size: calc(22/750 * 100vw);
  font-weight: 400;
}
.ticketPriceList dd.notes .small {
  font-size: calc(18/750 * 100vw);
}
.ticketPriceList .priceComparison {
  display: grid;
  grid-template-columns: auto auto;
  place-content: center;
  place-items: end;
  margin: calc(32/750 * 100vw) auto calc(18/750 * 100vw);
}
.ticketPriceList .priceComparison * {
  text-align: left;
}
.ticketPriceList .priceComparison .normalPrice {
  font-size: calc(28/750 * 100vw);
  line-height: 1.7;
  padding: 0 calc(48/750 * 100vw) calc(9/750 * 100vw) calc(15/750 * 100vw);
  position: relative;
}
.ticketPriceList .priceComparison .normalPrice .yen {
  position: relative;
}
.ticketPriceList .priceComparison .normalPrice .yen::before {
  content: '';
  transform: rotate(-15deg);
  width: 100%;
  border-top: calc(2 / 750* 100vw) solid #e60012;
  position: absolute;
  top: 50%;
  left: 0;
}
.ticketPriceList .priceComparison .normalPrice .num {
  font-size: calc(46/750 * 100vw);
  line-height: 1;
}
.ticketPriceList .priceComparison .normalPrice .small {
  font-size: calc(23/750 * 100vw);
}
.ticketPriceList .priceComparison .normalPrice::after {
  content: '';
  display: block;
  width: calc(24/750 * 100vw);
  height: calc(92/750 * 100vw);
  background-color: #e60012;
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  right: 0;
  bottom: calc(11/750 * 100vw);
  position: absolute;
}

.ticketPriceList .priceComparison .advancePrice {
  font-size: calc(30/750 * 100vw);
  line-height: 1.2;
  text-indent: calc(18/750 * 100vw);
  margin-left: calc(16/750 * 100vw);
}
.ticketPriceList .priceComparison .advancePrice .yen {
  font-size: calc(56/750 * 100vw);
  color: #e60012;
  padding-inline: calc(15/750 * 100vw);
  background: linear-gradient(to top, #fffa78, #fffa78) no-repeat left bottom / 100% calc(32/750 * 100vw);
}
.ticketPriceList .priceComparison .advancePrice .num {
  font-size: calc(100/750 * 100vw);
  line-height: 1;
}

.ticketPriceList .family {
  background: url(../images/ticket_price_family_ttl_bg_sp.png) no-repeat center top / 100% auto;
}
.ticketPriceList .family dt {
  padding: calc(94/750 * 100vw) calc(10/750 * 100vw) calc(26/750 * 100vw);
}
.ticketPriceList .family .notes {
  display: inline-block;
  margin: 0 auto;
}
.ticketPriceList .family .notes .small {
  display: block;
  text-align: right;
  padding-right: 0.5em;
}
.ticketPriceList .student {
  background: url(../images/ticket_price_student_ttl_bg_sp.png) no-repeat center top / 100% auto;
  margin-top: calc(39/750 * 100vw);
}
.ticketPriceList .student dt {
  padding: calc(84/750 * 100vw) calc(10/750 * 100vw) calc(36/750 * 100vw);
}

.ticketBox .btn.ticketBtn {
  font-size: calc(36/750 * 100vw);
  color: #fff;
  padding: calc(34 / 750* 100vw) calc(33 / 750* 100vw);
  background: linear-gradient(270deg, rgba(230, 0, 18, 1) 0%, rgba(255, 64, 64, 1) 100%);
  margin-top: calc(42 / 750* 100vw);
  box-shadow: calc(15/750 * 100vw) calc(15/750 * 100vw) calc(24 / 750* 100vw) rgba(255, 68, 81, 0.4);
  border: none;
}

@media screen and (min-width: 768px) {
  .ticketBox {
    background: url(../images/ticket_bg_pc.png) no-repeat center top / cover, #fc5301;
    padding: 157px 0 109px;
  }
  .ticketBox .ttl-lg {
    margin-bottom: 0;
  }
  .ticketBox .ttl-lg .ttl-sub-icon {
    margin-left: 21px;
  }

  .ticketFrame .ttl {
    font-size: 60px;
    margin-bottom: 0;
  }
  .ticketFrame .ttl .miniTitle {
    font-size: 32px;
  }

  .ticketScheduleBox {
    font-size: 44px;
    padding: 14px 26px 26px;
  }
  .ticketScheduleBox * {
    line-height: 1.36;
  }
  .ticketScheduleBox .weekday {
    font-size: 0.73em;
  }

  .ticketPriceTtl {
    font-size: calc(30/750 * 100vw);
  }

  .ticketBox .btn.ticketBtn {
    width: 89.37%;
    max-width: 840px;
    font-size: 36px;
    padding: 17px 39px 21px;
    background: linear-gradient(270deg, rgba(230, 0, 18, 1) 0%, rgba(255, 64, 64, 1) 100%);
    margin-top: 51px;
    box-shadow: 15px 15px 24px rgba(255, 68, 81, 0.4);
  }
}
@media screen and (min-width: 1040px) {
  .sp-tab {
    display: none;
  }
  .ticketFrame {
    background: url(../images/ticket_bg_frame_pc.png) repeat-y center top / 100% auto;
    position: relative;
    width: 1040px;
    margin: 254px auto 0;
    padding: 111px 50px 64px;
  }

  .ticketFrame::before {
    height: 202px;
    background: url(../images/ticket_bg_frame_top_pc.png) no-repeat center bottom / 100% 100%;
    top: -202px;
  }

  .ticketFrame::after {
    height: 10px;
    background: url(../images/ticket_bg_frame_bottom_pc.png) no-repeat center top / 100% auto;
    bottom: -10px;
  }

  .ticketFrame .ttl {
    position: absolute;
    z-index: 3;
    width: 100%;
    top: -59px;
    left: 0;
  }

  .ticketPriceBox {
    margin-top: 50px;
  }

  .ticketPriceTtl {
    font-size: 24px;
    line-height: 1.7;
    padding: 0 30px;
    border-width: 2px;
  }

  .ticketPriceList dt .gradTxt {
    font-size: 66px;
    line-height: 1.36;
  }

  .ticketPriceList dd {
    font-size: 22px;
    line-height: 1.9;
  }

  .ticketPriceList dd.notes {
    font-size: 20px;
  }

  .ticketPriceList dd.notes .small {
    font-size: 16px;
  }

  .ticketPriceList .priceComparison {
    margin: 23px auto 11px;
  }

  .ticketPriceList .priceComparison .normalPrice {
    font-size: 26px;
    line-height: 1.7;
    padding: 0 56px 9px 17px;
  }

  .ticketPriceList .priceComparison .normalPrice .yen::before {
    transform: rotate(-15deg);
    border-top-width: 2px;
  }

  .ticketPriceList .priceComparison .normalPrice .num {
    font-size: 56px;
  }

  .ticketPriceList .priceComparison .normalPrice .small {
    font-size: 26px;
  }

  .ticketPriceList .priceComparison .normalPrice::after {
    width: 20px;
    height: 81px;
    bottom: 11px;
  }

  .ticketPriceList .priceComparison .advancePrice {
    font-size: 26px;
    line-height: 1.2;
    text-indent: 0;
    margin-left: 13px;
  }

  .ticketPriceList .priceComparison .advancePrice .yen {
    font-size: 56px;
    padding-inline: 10px;
    margin-left: 4px;
    background-size: 100% 34px;
  }

  .ticketPriceList .priceComparison .advancePrice .num {
    font-size: 110px;
  }

  .ticketPriceList .family {
    background: url(../images/ticket_price_family_ttl_bg_pc.png) no-repeat center top / contain;
  }
  .ticketPriceList .family dt {
    padding: 66px 10px 26px;
  }

  .ticketPriceList .family .notes .small {
    padding-right: 0.5em;
  }

  .ticketPriceList .student {
    background: url(../images/ticket_price_student_ttl_bg_pc.png) no-repeat center top / 100% auto;
    margin-top: 33px;
  }

  .ticketPriceList .student dt {
    padding: 40px 10px 36px;
  }
}

/* ------------------------
  snsBox
------------------------ */
.snsBox {
  background: url(../images/sns_bg_top_sp.png) no-repeat center top / 100% auto, url(../images/sns_bg_bottom_sp.png) no-repeat center bottom / 100% auto, var(--lightyellow);
  padding: calc(152/750 * 100vw) 0 calc(124/750 * 100vw);
}

.snsBox .ttl-lg {
  font-family: var(--notosans);
  font-size: calc(66 / 750 * 100vw);
  margin-bottom: calc(64 / 750* 100vw);
}
.snsBox .ttl-lg span {
  font-weight: 700;
  line-height: 1;
  height: 1lh;
}

.snsBox .ttl {
  margin-bottom: 0.4em;
}

.twitterBox {
  display: block;
  width: calc(670/750 * 100vw);
  max-width: 670px;
  height: calc(599/750 * 100vw);
  max-height: 599px;
  text-align: center;
  margin: 0 auto calc(80/750 * 100vw);
}

.snsBox .btn_box {
  display: grid;
  grid-gap: calc(30/750 * 100vw);
}
.snsBox .btn_box .btn {
  background-color: #fff;
}

@media screen and (min-width: 768px) {
  .snsBox {
    background: url(../images/sns_bg_top_pc.png) no-repeat right top / 50% auto, url(../images/sns_bg_bottom_pc.png) no-repeat left bottom / 50% auto, var(--lightyellow);
    padding: 96px 0 90px;
  }

  .snsBox .ttl-lg {
    font-size: 50px;
    margin-bottom: 43px;
  }

  .snsBox .ttl {
    margin-bottom: 0.4em;
  }

  .twitterBox {
    max-width: 536px;
    max-height: 480px;
    margin: 0 auto 53px;
  }

  .snsBox .btn_box {
    display: grid;
    grid-auto-flow: column;
    place-content: center;
    grid-gap: 20px;
  }

  .snsBox .btn_box .btn {
    width: 300px;
    max-width: 100%;
  }
}

/* ------------------------
  faqBox
------------------------ */
.faqBox {
  background: linear-gradient(to top, #ff0000, #ff9600);
  padding: calc(122/750 * 100vw) 0 calc(126/750 * 100vw);
}

.faqBox .inner-sm {
  padding: 0;
}

.faqBox .ttl-lg {
  margin-bottom: calc(40/750 * 100vw);
}
.faqBox .ttl {
  margin-bottom: 1.3em;
}

.faqBox .faqList .faqListItem {
  cursor: pointer;
}
.faqBox .faqList .faqListItem + .faqListItem {
  margin-top: 1.27em;
}

.faqBox .faqList dt {
  line-height: 1.4;
  padding: calc(26/750 * 100vw) calc(31/750 * 100vw) calc(26/750 * 100vw) calc(36/750 * 100vw);
  background-color: #fff;
  font-size: calc(30/750 * 100vw);
  font-weight: 700;
  display: grid;
  grid-template-columns: auto 1fr auto;
  grid-gap: calc(17/750 * 100vw);
  align-items: center;
}
.faqBox .faqList dt::before,
.faqBox .faqList dt::after {
  content: "";
  display: block;
  width: calc(36/750 * 100vw);
  height: 2px;
  background-color: currentColor;
  grid-area: 1 / 3;
  opacity: 1;
  transition: all 0.6s;
}

.faqBox .faqList dt::after {
  transform: rotate(90deg);
}

.faqBox .faqList dt.close::after {
  transform: rotate(360deg);
  opacity: 0;
}

.faqBox .faqList dd {
  font-size: calc(30/750 * 100vw);
  padding: .7em .5em;
}

.faqBox .faqList dd a {
  display: inline-block;
  color: #fff;
  text-decoration: underline;
}

.faqBox .faqList dt .icoQ {
  text-align: center;
  font-size: calc(50/750 * 100vw);
  font-weight: 400;
  grid-area: 1 / 1;
}

@media screen and (min-width: 768px) {
  .faqBox {
    padding: 88px 0 132px;
  }

  .faqBox .ttl-lg {
    margin-bottom: 44px;
  }
  .faqBox .ttl {
    margin-bottom: 1.25em;
  }

  .faqBox .faqList .faqListItem + .faqListItem {
    margin-top: 1.3em;
  }

  .faqBox .faqList dt {
    line-height: 1.4;
    padding: 20px 29px 21px;
    font-size: 24px;
    grid-gap: 17px;
  }

  .faqBox .faqList dt::before,
  .faqBox .faqList dt::after {
    width: 30px;
    height: 2px;
  }

  .faqBox .faqList dd {
    font-size: 20px;
    padding: 1em 1.5em;
  }

  .faqBox .faqList dt .icoQ {
    font-size: 40px;
  }
}

/* ------------------------
  footer
------------------------ */
.gFooter {
  padding: calc(104/750 * 100vw) calc(40/750 * 100vw) calc(100/750 * 100vw);
  background: url(../images/footer_bg_sp.png) no-repeat top center / cover;
}

.gFooter p {
  text-align: center;
}

.gFooter .fInfo .logo {
  width: calc(464/750 * 100vw);
  margin: 0 auto;
  margin-bottom: calc(50/750 * 100vw);
}

.gFooter .fInfo p {
  font-size: calc(26/750 * 100vw);
  margin-bottom: calc(30/750 * 100vw);
  line-height: 1;
}

.gFooter .fInfo p.tel {
  font-size: calc(50/750 * 100vw);
  font-family: "Roboto Condensed", sans-serif;
  margin: calc(50/750 * 100vw) auto calc(20/750 * 100vw);

}

.gFooter .fInfo .contactBtn {
  --txtColor: #fff;
  margin: calc(50/750 * 100vw) auto calc(77/750 * 100vw);
}
.gFooter .fInfo .contactBtn:hover {
  color: #ff3611;
}

.gFooter .copyBox .copy {
  text-align: center;
  font-size: calc(20/750 * 100vw);
}

@media screen and (min-width: 768px) {

  /* gFooter */
  .gFooter {
    padding: 85px 0;
    background: url(../images/footer_bg_pc.png) no-repeat top center/100%, #323333;
  }

  .gFooter .fInfo .logo {
    width: 371px;
    margin: 0 auto;
    margin-bottom: 30px;
  }

  .gFooter .fInfo p {
    font-size: 20px;
    margin-bottom: 10px;
    line-height: 1.5;
  }

  .gFooter .fInfo p.tel {
    font-size: 40px;
    margin: 30px auto 0;
  }

  .gFooter .fInfo .contactBtn {
    margin: 38px auto 95px;
  }

  .gFooter .copyBox .copy {
    text-align: center;
    font-size: 20px;
  }
}



/* 初期設定 */
.splash {
  position: relative;
  display: inline-block;
}

.splash::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #ff3611; /* 四角の背景色 */  
  transform-origin: right;
  transform: scaleX(1);
  transition: transform .3s cubic-bezier(.4, .4, 0, 1);
  /* アニメーションのタイミングをCSSに統合 */
}

.splash.start::before {
  transform: scaleX(0);
  /* スクロールでスタート時にアニメーション開始 */
}

.splash.anim-done::before {
  content: none;
  /* アニメーションが終了した後に::beforeを非表示にする */
}

.btn span {
  position: relative;
  z-index: 3;
  width: 100%;
  text-align: center;
  font-weight: 500;
}

/*== 背景が流れる（左から右） */
.bgleft02::before,
.bgleft::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  background: #fff;
  width: 100%;
  height: 100%;
  transition: transform .6s cubic-bezier(0.8, 0, 0.2, 1) 0s;
  transform: scale(0, 1);
  transform-origin: right top;
}
.bgleft02::before {
  background: var(--txtColor);
}

/* hover時の処理 */
.bgleft02:hover {
  background: var(--txtColor);
  color: #fff;
}
.bgleft02:hover:before,
.bgleft:hover::before {
  transform-origin: left top;
  transform: scale(1, 1);
}

/*topBtn*/
.topBtn {
  position: fixed;
  right: calc(30/750 * 100vw);
  bottom: calc(30/750 * 100vw);
  cursor: pointer;
  transition: .3s;
  width: calc(180/750 * 100vw);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  z-index: 99;
  filter: drop-shadow(calc(15/750 * 100vw) calc(15/750 * 100vw) calc(25/750 * 100vw) rgb(255 24 0 / 0.3));
}

@media screen and (min-width: 768px) {
  .topBtn {
    width: 112px;
  }

}

/*このクラスが付与されると表示する*/
.topBtn.active {
  opacity: 1;
  visibility: visible;
  pointer-events: all;
}