@charset "UTF-8";
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  min-width: 320px;
  background: #fc89bd;
  color: #2f1920;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  line-height: 1.7;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
body.is-menu-open {
  overflow: hidden;
}

h1,
h2,
h3,
p,
ul,
ol,
dl,
dd,
figure {
  margin: 0;
  padding: 0;
}

ul,
ol {
  list-style: none;
}

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

a {
  color: inherit;
  text-decoration: none;
}

button {
  font: inherit;
  color: inherit;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
}

small {
  font-size: inherit;
}

.u-visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

@media (min-width: 768px) {
  .u-sp {
    display: none;
  }
}

@media (max-width: 767px) {
  .u-pc {
    display: none;
  }
}

/* 途中で折り返さないひとかたまり */
.u-nowrap {
  white-space: nowrap;
}

.en {
  font-family: "Poppins", "Noto Sans JP", sans-serif;
}

/* 背景を画面に固定し、白いパネルだけが文字と一緒にスクロールする（PC・SP共通）
   どんなウィンドウ幅・高さでもピンクの地色が見えないよう、キラキラ画像で画面全体を覆う
   （デザインの比率 PC 1440×790／SP 390×810 のまま、画面より小さくならない大きさに拡大して中央に置く） */
.mv-bg {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 0;
  width: 100%;
  height: 100vh;
  height: 100lvh;
  overflow: hidden;
  pointer-events: none;
}
.mv-bg__inner {
  --bg-ratio: calc(1440 / 790);
  position: absolute;
  top: 0;
  left: 50%;
  width: max(100%, 100vh * var(--bg-ratio));
  width: max(100%, 100lvh * var(--bg-ratio));
  aspect-ratio: 1440/790;
  translate: -50% 0;
  overflow: hidden;
}
.mv-bg img {
  position: absolute;
  max-width: none;
}
.mv-bg__stage {
  top: -2.278%;
  left: 0;
  width: 100%;
  height: 102.66%;
  object-fit: cover;
}
.mv-bg__light {
  top: -2.247%;
  left: -4.281%;
  width: 108.976%;
  height: 110.818%;
  object-fit: cover;
  opacity: 0.9;
  mix-blend-mode: hard-light;
}
.mv-bg__glitter {
  top: -11.013%;
  left: -4.514%;
  width: 223.68%;
  height: 113.797%;
  object-fit: cover;
  mix-blend-mode: soft-light;
}
.mv-bg__glow--l {
  top: 49.241%;
  left: -20.972%;
  width: 50.278%;
  height: 78.481%;
}
.mv-bg__glow--r {
  top: 60.759%;
  right: -15.903%;
  width: 50.278%;
  height: 62.911%;
}

@media (max-width: 767px) {
  /* SPはデザイン（390×810）基準の比率で配置 */
  .mv-bg__inner {
    --bg-ratio: calc(390 / 810);
    aspect-ratio: 390/810;
  }
  .mv-bg__stage {
    top: 0;
    left: -126.4103%;
    width: 369.2308%;
    height: 100.12%;
  }
  .mv-bg__light {
    top: 0;
    left: -127.1795%;
    width: 372.3077%;
    height: 100%;
  }
  .mv-bg__glitter {
    top: -12.3457%;
    left: calc(50% - 1.1538%);
    width: 373.0769%;
    height: 100.2469%;
    translate: -50% 0;
    object-fit: fill;
    object-position: bottom;
  }
  .mv-bg__glow--l {
    top: 80.7827%;
    left: -58.3487%;
    width: 111.2821%;
    height: 31.6642%;
    rotate: 19.59deg;
  }
  .mv-bg__glow--r {
    top: 79.1383%;
    right: auto;
    left: 37.5128%;
    width: 133.149%;
    height: 28.2716%;
    rotate: -28.17deg;
  }
}
main {
  position: relative;
  z-index: 1;
}

.contents {
  position: relative;
  isolation: isolate;
  width: calc(100% - 40px);
  max-width: 1400px;
  margin: 0 auto;
  padding: 55px 0 81px;
  border-radius: 60px;
  overflow: hidden;
}
@media (min-width: 768px) {
  .contents::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    background: #fff9fc;
    backdrop-filter: blur(100px);
    -webkit-backdrop-filter: blur(100px);
    opacity: 0.8;
    pointer-events: none;
  }
}

@media (max-width: 767px) {
  .contents {
    width: calc(100% - 20px);
    padding: 28px 0 56px;
    border-radius: 30px;
  }
  .contents::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    background: #fff9fc;
    backdrop-filter: blur(100px);
    -webkit-backdrop-filter: blur(100px);
    opacity: 0.7;
    pointer-events: none;
  }
}
.footer {
  position: relative;
  z-index: 1;
  padding: 23px 20px 19px;
}
.footer__copy {
  color: #f71f63;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.3;
  text-align: center;
}

@media (max-width: 767px) {
  .footer {
    padding: 18px 20px 19px;
  }
}
.c-ttl {
  /* 影：Figmaの位置・色のまま、ぼかしを弱め濃さを上げてくっきりさせている */
  --ttl-shadow: 0 0 0 transparent;
  position: relative;
  color: #f71f63;
  font-family: "DynaPuff", "Poppins", sans-serif;
  font-size: 72px;
  font-weight: 700;
  font-variation-settings: "wdth" 100;
  line-height: 1.25;
  letter-spacing: -0.02em;
  text-align: center;
}
.c-ttl__text {
  /* 見出しまわりのハートより文字を手前に出す */
  position: relative;
  z-index: 1;
  display: inline-block;
  -webkit-text-stroke: 8px #fff;
  paint-order: stroke fill;
  filter: drop-shadow(var(--ttl-shadow));
}
.c-ttl--intro, .c-ttl--access {
  --ttl-shadow: 0 3px 1.5px rgba(255, 187, 0, 0.38);
}
.c-ttl--cast {
  --ttl-shadow: 0 4px 2px rgba(220, 1, 107, 0.3);
}
.c-ttl--guest {
  --ttl-shadow: 0 4px 2px rgba(220, 1, 1, 0.3);
}
.c-ttl--ticket {
  --ttl-shadow: 0 4px 2px rgba(53, 153, 0, 0.3);
}
.c-ttl--goods {
  --ttl-shadow: 0 3px 2px rgba(0, 124, 178, 0.3);
}

@media (max-width: 767px) {
  .c-ttl {
    font-size: 46px;
    letter-spacing: -0.02em;
  }
  .c-ttl__text {
    -webkit-text-stroke-width: 6px;
  }
  /* SPは文字が小さく影がぼやけて見えるため、ぼかしをさらに弱めてPCと同じくっきり感にする */
  .c-ttl--intro,
  .c-ttl--access {
    --ttl-shadow: 0 3px 0.5px rgba(255, 187, 0, 0.4);
  }
  .c-ttl--cast {
    --ttl-shadow: 0 3px 0.5px rgba(220, 1, 107, 0.32);
  }
  .c-ttl--guest {
    --ttl-shadow: 0 3px 0.5px rgba(220, 1, 1, 0.32);
  }
  .c-ttl--ticket {
    --ttl-shadow: 0 3px 0.5px rgba(53, 153, 0, 0.32);
  }
  .c-ttl--goods {
    --ttl-shadow: 0 3px 0.5px rgba(0, 124, 178, 0.32);
  }
}
.deco {
  --s: 1;
  --r: 0deg;
  position: absolute;
  top: calc(var(--y) * var(--s) * 1px);
  left: calc(50% + var(--x) * var(--s) * 1px);
  width: calc(var(--w) * var(--s) * 1px);
  max-width: none;
  height: auto;
  rotate: var(--r);
  pointer-events: none;
}
.deco--news-1 {
  --x: -261;
  --y: 17.4;
  --w: 67.416;
  --r: -2.42deg;
}
.deco--news-2 {
  --x: -206.5;
  --y: 29.1;
  --w: 39.851;
  --r: 1.37deg;
}
.deco--intro {
  --x: 274.5;
  --y: 17.5;
  --w: 66.126;
  --r: 20.16deg;
}
.deco--cast-1 {
  --x: 76.7;
  --y: -1;
  --w: 47.785;
  --r: 10.15deg;
}
.deco--cast-2 {
  --x: -144.5;
  --y: 39;
  --w: 47.25;
}
.deco--guest {
  --x: -157.1;
  --y: 34.3;
  --w: 43.88;
  --r: -29.34deg;
}
.deco--access {
  --x: -168.2;
  --y: -11.2;
  --w: 46.718;
  --r: -23.28deg;
}
.deco--goods-1 {
  --x: 117.2;
  --y: -4.4;
  --w: 34.954;
  --r: 13.25deg;
}
.deco--goods-2 {
  --x: -154.3;
  --y: 121.3;
  --w: 45.667;
  --r: -7.01deg;
}

@media (max-width: 767px) {
  .deco {
    display: none;
  }
  .deco--goods-1, .deco--goods-2 {
    display: block;
  }
  .deco--goods-1 {
    --x: 81.23;
    --y: -4.4;
  }
  .deco--goods-2 {
    --x: -117.05;
    --y: 77.66;
  }
}
.c-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 46px;
  padding: 6px 20px;
  border-radius: 30px;
  background: #f71f63;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  filter: drop-shadow(0 3px 2px rgba(0, 0, 0, 0.25));
  transition: opacity 0.3s, transform 0.3s;
}
@media (hover: hover) {
  .c-btn:hover {
    opacity: 0.85;
    transform: translateY(-2px);
  }
}

.c-acc {
  width: 100%;
  border: 2px solid #c5e5d5;
  border-radius: 8px;
  background: #fff;
  filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.15));
}
.c-acc__head {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 10px 48px;
  color: #f71f63;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
  list-style: none;
  cursor: pointer;
}
.c-acc__head::-webkit-details-marker {
  display: none;
}
.c-acc__head::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 28.5px;
  width: 19px;
  height: 11.6213px;
  margin-top: -5.8px;
  background: url("../images/icon_arrow.svg") no-repeat center/contain;
  transition: transform 0.3s;
}
.c-acc[open] .c-acc__head::after {
  transform: rotate(180deg);
}
/* 開いたときの中身（Figma：左48px・右30px・上下20px、文字16px・行間1.6、ブロック間10px） */
.c-acc__body {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 10px 30px 20px 48px;
  font-size: 16px;
  line-height: 1.6;
  text-align: left;
}
.c-acc__body a[href^="tel:"] {
  color: inherit;
}
@media (max-width: 767px) {
  .c-acc__body a[href^="tel:"] {
    color: #f71f63;
  }
}
.c-acc__link {
  color: #f71f63;
  text-decoration: underline;
  text-underline-offset: 2px;
  word-break: break-all;
}
.c-acc__group {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.c-acc__body .c-list {
  line-height: 1.6;
}

/* 「※」を行頭にぶら下げた注意書きリスト */
.c-notes > li {
  position: relative;
  padding-left: 1.1em;
}
.c-notes > li::before {
  content: "※";
  position: absolute;
  top: 0;
  left: 0;
}

@media (max-width: 767px) {
  .c-acc__head {
    min-height: 40px;
    padding: 8px 34px;
    font-size: 14px;
  }
  .c-acc__head::after {
    right: 19px;
    width: 10px;
    height: 6.41421px;
    margin-top: -3.2px;
    background-image: url("../images/icon_arrow_sp.svg");
  }
  .c-acc__body {
    gap: 8px;
    padding: 4px 16px 16px;
    font-size: 14px;
  }
}
.c-list {
  padding-left: 24px;
  list-style: disc;
}
/* 行頭の黒丸（disc）を文字より小さく */
.c-list > li::marker {
  font-size: 0.7em;
}

.c-venue {
  display: flex;
  align-items: center;
  gap: 2px;
  color: #f71f63;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.7;
}
/* 会場名リンク（チケット欄→ACCESS欄、ACCESS欄→横浜アリーナ公式アクセスページ） */
.ticket__venue,
.access__venue {
  transition: opacity 0.3s;
}
.ticket__venue-text {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
@media (hover: hover) {
  .ticket__venue:hover,
  .access__venue:hover {
    opacity: 0.7;
  }
}

/* 追従ヘッダーに見出しが隠れないよう、ページ内リンクの移動先を少し下げる */
section[id] {
  scroll-margin-top: 20px;
}
@media (max-width: 767px) {
  section[id] {
    scroll-margin-top: 64px;
  }
}

.c-venue__icon {
  flex-shrink: 0;
  width: 13px;
  margin-top: 2px;
}

@media (max-width: 767px) {
  .c-list {
    padding-left: 21px;
  }
  .c-venue {
    font-size: 20px;
  }
}
.c-ticket {
  position: relative;
  display: block;
  width: 13.5625em;
  height: 7.8125em;
  transition: transform 0.3s;
}
@media (hover: hover) {
  .c-ticket:hover {
    transform: translateY(-4px);
  }
}
.c-ticket__badge, .c-ticket__bg, .c-ticket__text, .c-ticket__shadow, .c-ticket__heart {
  position: absolute;
  max-width: none;
}
.c-ticket__badge {
  inset: 0;
}
.c-ticket__bg {
  width: 4.3387em;
  height: 7.0881em;
}
.c-ticket__bg--l {
  top: 0.6581em;
  left: 3.8538em;
  transform: rotate(-78.79deg);
}
.c-ticket__bg--r {
  top: 1.0481em;
  left: 5.8288em;
  transform: rotate(-78.79deg) scaleY(-1);
}
.c-ticket__text {
  top: 1.6738em;
  left: 1.5297em;
  width: 3.8144em;
  color: #fffbfb;
  font-family: "DynaPuff", "Poppins", sans-serif;
  font-size: 2em;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.05em;
  text-align: center;
  transform: rotate(11.21deg);
}
.c-ticket__shadow {
  top: 6.875em;
  left: 1.3125em;
  width: 10.375em;
  height: 1.3125em;
}
.c-ticket__heart {
  height: auto;
}
.c-ticket__heart--1 {
  top: 3.6313em;
  left: 0.1775em;
  width: 1.9863em;
  transform: rotate(-16.92deg);
}
.c-ticket__heart--2 {
  top: 5.0625em;
  left: 10.35em;
  width: 2.8375em;
  transform: rotate(32.47deg);
}
.c-ticket__heart--3 {
  top: 0;
  left: 1.875em;
  width: 2.8375em;
}

/* ナビ・TICKETはスクロールしても追従（PC・SP共通） */
.header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  width: 100%;
}
@media (max-width: 767px) {
  .header {
    position: fixed;
  }
}
.header__ticket {
  display: none;
}
@media (max-width: 767px) {
  .header__ticket {
    position: absolute;
    top: 0;
    left: calc(50% + 33.43px);
    z-index: 110;
    display: block;
    width: 85px;
    height: 55px;
  }
  .header__ticket .c-ticket__bg {
    width: 35.229px;
    height: 57.554px;
  }
  .header__ticket .c-ticket__bg--l {
    top: -2.08px;
    left: 18.47px;
    transform: rotate(-85.76deg);
  }
  .header__ticket .c-ticket__bg--r {
    top: -0.88px;
    left: 34.77px;
    transform: rotate(-85.76deg) scaleY(-1);
  }
  .header__ticket .c-ticket__text {
    top: 18.78px;
    left: 12.12px;
    width: 61.944px;
    font-size: 16.24px;
    letter-spacing: 0.812px;
    transform: rotate(4.24deg);
  }
  /* 影は広がらないよう線の太さは元のまま、バッジのすぐ下に短い影を足して濃く見せる */
  .header__ticket .c-ticket__shadow {
    top: 43.35px;
    left: 0;
    width: 84.24px;
    height: 10.66px;
    filter: saturate(1.3) brightness(0.92);
  }
  .header__ticket .c-ticket__badge {
    filter: drop-shadow(0 1.5px 1px rgba(214, 20, 90, 0.3));
  }
}
.header__toggle {
  display: none;
}
@media (max-width: 767px) {
  .header__toggle {
    position: absolute;
    top: 8.5px;
    right: 17px;
    z-index: 110;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 7px;
    width: 44px;
    height: 44px;
  }
}
.header__toggle-line {
  display: block;
  width: 30px;
  height: 3px;
  border-radius: 3px;
  background: #f71f63;
  /* ぽよんと弾むように動かす */
  transition: transform 0.5s cubic-bezier(0.34, 1.7, 0.5, 1), opacity 0.25s;
}

/* メニューを開いたら：上下の線が弾みながら「×」に、真ん中の線は縮んで消える */
.header__toggle[aria-expanded=true] {
  animation: toggle-pop 0.45s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.header__toggle[aria-expanded=true] .header__toggle-line:nth-child(1) {
  transform: translateY(10px) rotate(225deg);
}
.header__toggle[aria-expanded=true] .header__toggle-line:nth-child(2) {
  transform: scaleX(0);
  opacity: 0;
}
.header__toggle[aria-expanded=true] .header__toggle-line:nth-child(3) {
  transform: translateY(-10px) rotate(-225deg);
  transition-delay: 0.05s;
}
@keyframes toggle-pop {
  0% { scale: 1; }
  40% { scale: 1.2; }
  100% { scale: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .header__toggle,
  .header__toggle-line {
    animation: none !important;
    transition-duration: 0.01s !important;
  }
}

@media (min-width: 768px) {
  .gnav {
    position: absolute;
    top: 13px;
    right: min(22px, 1.5277777778vw);
  }
}
@media (max-width: 767px) {
  .gnav {
    position: fixed;
    inset: 0;
    z-index: 105;
    padding: 95.7px 45.7px 40px;
    background: #ffe7ef;
    overflow-y: auto;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s, visibility 0.3s;
  }
  .gnav.is-open {
    opacity: 1;
    visibility: visible;
  }
}
.gnav__list {
  display: flex;
  align-items: center;
  gap: min(32px, 2.2222222222vw);
}
@media (max-width: 767px) {
  .gnav__list {
    flex-direction: column;
    align-items: flex-start;
    gap: 30.3px;
  }
}
.gnav__link {
  display: block;
  color: #f71f63;
  font-family: "DynaPuff", "Poppins", sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.04em;
  -webkit-text-stroke: 4px #fff;
  paint-order: stroke fill;
  transition: opacity 0.3s;
}
@media (hover: hover) {
  .gnav__link:hover {
    opacity: 0.7;
  }
}
@media (min-width: 768px) and (max-width: 1100px) {
  .gnav__link {
    font-size: 16px;
  }
}
@media (max-width: 767px) {
  .gnav__link {
    font-size: 32.8px;
    letter-spacing: 0.02em;
    -webkit-text-stroke-width: 6px;
    text-shadow: 0 3px 3px rgba(220, 1, 107, 0.25);
  }
}

.mv {
  position: relative;
  height: min(853px, 59.2361111111vw);
}
.mv__logo {
  position: absolute;
  top: min(70px, 4.8611111111vw);
  left: 50%;
  width: min(990px, 68.75vw);
  translate: -50% 0;
}
.mv__logo img {
  display: block;
  width: 100%;
  height: auto;
}
.mv__ticket {
  position: fixed;
  /* 最初はデザインの位置。画面の高さが足りないときは下端から24pxの位置に収める */
  top: min(709px, 49.2361111111vw, 100vh - 7.8125em - 24px);
  right: min(29px, 2.0138888889vw);
  z-index: 2;
  font-size: min(16px, 1.1111111111vw);
}

@media (max-width: 767px) {
  .mv {
    height: 166.6666666667vw;
  }
  .mv__logo {
    top: 51.2820512821vw;
    width: 94.8717948718vw;
  }
  .mv__ticket {
    display: none;
  }
}
.news__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  width: 394px;
  max-width: calc(100% - 40px);
  margin: 0 auto;
}
.news__ttl {
  position: relative;
  display: grid;
  width: 196.768px;
}
/* 塗りと白フチの2枚を重ね、まとめて影を付ける（Figma：#007CB2 25%） */
.news__ttl-img {
  display: grid;
  filter: drop-shadow(0 3px 2px rgba(0, 124, 178, 0.3));
}
.news__ttl-img > img {
  grid-area: 1/1;
}
.news__ttl-fill {
  width: 184.768px;
  margin: 6px 0 0 6px;
}
.news__ttl-stroke {
  position: relative;
  width: 196.768px;
}
.news__scroll {
  display: flex;
  gap: 8px;
  width: 100%;
  /* 見出しと一覧のすき間を、INTRODUCTIONの見出しと本文の見た目の間隔にそろえる */
  margin-top: 15px;
}
@media (max-width: 767px) {
  .news__scroll {
    margin-top: 8px;
  }
}
/* 高さを3件分に固定し、それ以降はスクロールで見せる（右の独自バーが位置を示す） */
.news__list {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 76px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: none;
}
.news__list > li {
  flex-shrink: 0;
}
.news__list::-webkit-scrollbar {
  display: none;
}
.news__item {
  display: flex;
  align-items: baseline;
  gap: 27px;
  font-size: 14px;
  line-height: 1.4;
}
.news__date {
  flex-shrink: 0;
  font-family: "Poppins", "Noto Sans JP", sans-serif;
}
.news__bar {
  position: relative;
  flex-shrink: 0;
  width: 5px;
  height: 76px;
  border-radius: 200px;
  background: #fff;
}
.news__bar-thumb {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 42px;
  border-radius: 200px;
  background: #ff94b6;
}
.news__btn {
  width: auto;
  margin-top: 4px;
}

@media (max-width: 767px) {
  .news__inner {
    width: 310px;
  }
  .news__ttl {
    width: 126px;
  }
  .news__ttl-fill {
    width: 118.316px;
    margin: 3.84px 0 0 3.84px;
  }
  .news__ttl-stroke {
    width: 126px;
  }
  .news__ttl-img {
    filter: drop-shadow(0 2px 0.5px rgba(0, 124, 178, 0.32));
  }
  .news__scroll {
    justify-content: center;
  }
  .news__list {
    flex: 0 1 298px;
    overflow-x: hidden;
  }
  .news__item {
    gap: 8px;
    white-space: nowrap;
  }
  .news__btn {
    width: 160px;
    height: 44px;
  }
}
.intro {
  position: relative;
  margin-top: 74px;
}
.intro__glow {
  position: absolute;
  top: -70px;
  left: 50%;
  width: 1078px;
  max-width: none;
  height: 688px;
  translate: -50% 0;
  pointer-events: none;
}
.intro__inner {
  position: relative;
  width: 800px;
  max-width: calc(100% - 40px);
  margin: 0 auto;
}
.intro__text {
  display: flex;
  flex-direction: column;
  gap: 34px;
  margin-top: 7px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.7;
  text-align: center;
  word-break: auto-phrase;
}
@media (min-width: 768px) and (max-width: 900px) {
  .intro__text {
    font-size: 17px;
  }
}

@media (max-width: 767px) {
  .intro {
    margin-top: 72px;
  }
  .intro__glow {
    top: -72px;
    width: 498px;
    height: 767px;
  }
  .intro__inner {
    width: 350px;
    max-width: calc(100% - 20px);
  }
  .intro__text {
    gap: 27.2px;
    font-size: 16px;
    /* 改行は入れず1行に並べられるだけ並べ、折り返しはHTMLの<wbr>（言葉の切れ目）の位置だけにする */
    word-break: keep-all;
    overflow-wrap: anywhere;
  }
}
.cast-area {
  display: flex;
  flex-direction: column;
  gap: 40px;
  margin-top: 77px;
  padding: 80px 20px 93px;
  background: url("../images/cast_bg.svg") no-repeat center/100% 100%;
}

.cast,
.guest {
  width: 800px;
  max-width: 100%;
  margin: 0 auto;
}

.cast__main {
  margin-top: 3px;
}
.cast__img {
  width: 100%;
  aspect-ratio: 1000/667;
  object-fit: cover;
  border-radius: 16px;
}
.cast__name {
  margin-top: 10px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
}

.guest__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  margin-top: 8px;
}
.guest__item {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.guest__img {
  aspect-ratio: 300/200;
  border-radius: 16px;
  background: #d9d9d9;
  overflow: hidden;
}
.guest__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.guest__name {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.7;
  text-align: center;
}

@media (max-width: 767px) {
  .cast-area {
    margin-top: 49px;
    padding: 42px 0 57px;
    background-image: url("../images/cast_bg_sp.svg");
  }
  .cast,
  .guest {
    width: 350px;
    max-width: calc(100% - 20px);
  }
  .cast__main {
    margin-top: 8px;
  }
  .cast__img {
    border-radius: 8px;
  }
  .cast__name {
    font-size: 20px;
  }
  .guest__list {
    grid-template-columns: 1fr;
  }
  .guest__img {
    border-radius: 8px;
  }
  .guest__name {
    line-height: 1.2;
  }
}
.ticket {
  display: flex;
  flex-direction: column;
  gap: 48px;
  width: 1000px;
  max-width: calc(100% - 40px);
  margin: 79px auto 0;
}
.ticket__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: 41px 48px 48px;
  border-radius: 15px;
  background: #fff;
}
.ticket .c-ttl--ticket {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  padding: 0 10px;
}
.ticket__ttl-heart {
  flex-shrink: 0;
  width: 39.4px;
  margin-top: 17px;
}
.ticket__ttl-heart--l {
  rotate: 9.24deg;
}
.ticket__ttl-heart--r {
  transform: rotate(172.11deg) scaleY(-1);
}
.ticket__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  width: 100%;
}
.ticket__info {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.ticket__event {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
}
.ticket__date {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
}
.ticket__date .en {
  font-weight: 600;
}
.ticket__date .en.is-20 {
  font-size: 20px;
}
.ticket__date .en.is-24 {
  font-size: 24px;
}
.ticket__date-sep::before {
  content: "　";
}
.ticket__label {
  color: #77696e;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
}
.ticket__price {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
.ticket__price-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  font-weight: 700;
  line-height: 1.3;
  white-space: nowrap;
}
.ticket__price-type {
  padding-top: 5px;
  font-size: 16px;
}
.ticket__price-num {
  display: flex;
  align-items: baseline;
  font-size: 16px;
}
.ticket__price-num .en {
  font-size: 24px;
  font-weight: 600;
}
.ticket__type {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  width: 382px;
  max-width: 100%;
}
.ticket__type > .ticket__label {
  margin-bottom: 0;
}
.ticket__type-head {
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: 100%;
  text-align: center;
  line-height: 1.3;
}
.ticket__type-name {
  font-size: 20px;
  font-weight: 700;
}
.ticket__type-method {
  font-size: 12px;
  font-weight: 500;
}
.ticket__type-period {
  margin-top: 6px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
}
.ticket__btn {
  width: 260px;
  max-width: 100%;
  height: 45px;
  margin-top: 6px;
}
.ticket__type-notes {
  width: 100%;
  margin-top: 6px;
  font-size: 12px;
  line-height: 1.4;
}
.ticket__ended {
  margin-top: 8px;
}
.ticket__notice {
  display: flex;
  flex-direction: column;
  width: 904px;
  max-width: 100%;
  margin: 0 auto;
}
.ticket__notice-ttl {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
}
.ticket__notice-common {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: 7px;
  font-size: 16px;
}
.ticket__notice-common .c-list {
  line-height: 1.4;
}
/* チケットに関する注意事項：項目（li）同士の間をあける（全席種共通・アコーディオン内とも） */
.ticket__notice li + li {
  margin-top: 8px;
}
.ticket__notice-sub {
  font-weight: 700;
  line-height: 1.7;
}
.ticket__acc-list {
  display: flex;
  flex-direction: column;
  gap: 17px;
  margin-top: 8px;
}
.ticket__contact {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 24px;
  font-size: 16px;
  line-height: 1.3;
  text-align: center;
}
.ticket__contact-ttl {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.7;
}
.ticket__contact-credit {
  line-height: 1.6;
}

@media (max-width: 767px) {
  .ticket {
    gap: 24px;
    width: 350px;
    max-width: calc(100% - 20px);
    margin-top: 47px;
  }
  .ticket__card {
    padding: 20px 10px;
  }
  .ticket .c-ttl--ticket {
    gap: 4px;
  }
  .ticket__ttl-heart {
    width: 30.8px;
    margin-top: 11px;
  }
  .ticket__ttl-heart--l {
    margin-left: 15.3px;
  }
  .ticket__ttl-heart--r {
    margin-right: 15.3px;
  }
  .ticket__body {
    gap: 24px;
  }
  .ticket__date {
    margin-top: 7px;
  }
  .ticket__date .en.is-24 {
    font-size: 24px;
  }
  .ticket__date-sep {
    display: block;
  }
  .ticket__date-sep::before {
    content: none;
  }
  .ticket__date .ticket__date-time {
    font-size: 16px;
  }
  .ticket__venue {
    margin-top: 7px;
    font-size: 16px;
  }
  .ticket .c-venue__icon--sp {
    width: 9.87px;
    margin-top: 0;
  }
  .ticket__type {
    width: 100%;
  }
  .ticket__type-period {
    width: 302px;
    max-width: 100%;
  }
  .ticket__type-period-label {
    font-size: 14px;
    font-weight: 500;
  }
  .ticket__btn {
    width: 200px;
    height: 44px;
  }
  .ticket__type-notes {
    width: 100%;
  }
  .ticket__ended {
    margin-top: 8px;
  }
  .ticket__notice-ttl {
    font-size: 20px;
  }
  .ticket__notice-common {
    gap: 0;
    margin-top: 12px;
    font-size: 14px;
  }
  .ticket__notice li + li {
    margin-top: 6px;
  }
  .ticket__notice-sub {
    font-size: 16px;
    text-align: center;
  }
  .ticket__acc-list {
    gap: 14px;
    margin-top: 8px;
  }
  .ticket__contact {
    gap: 8px;
    margin-top: 24px;
    font-size: 14px;
    line-height: 1.3;
  }
  .ticket__contact-ttl {
    margin-bottom: 10px;
    font-size: 20px;
    line-height: 1.2;
  }
  .ticket__contact-tel {
    color: #f71f63;
  }
}
.access {
  width: 1000px;
  max-width: calc(100% - 40px);
  margin: 62px auto 0;
}
.access__body {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 15px;
}
.access__map {
  flex: 0 1 531px;
  aspect-ratio: 531/336;
}
.access__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
.access__info {
  flex: 0 1 455px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.access__address {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.3;
}
.access__list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 12px;
  font-size: 16px;
  line-height: 1.3;
}

@media (max-width: 767px) {
  .access {
    width: 350px;
    max-width: calc(100% - 20px);
    margin-top: 57px;
  }
  .access__body {
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
    margin-top: 8px;
  }
  .access__info {
    display: contents;
  }
  .access__venue {
    order: 1;
    justify-content: center;
  }
  .access__address {
    order: 2;
    margin-top: -14px;
    font-size: 14px;
    text-align: center;
  }
  .access__map {
    order: 3;
    flex: none;
    aspect-ratio: 350/340; /* SPは縦長にして新横浜駅まで入れる */
  }
  .access__list {
    order: 4;
    margin-top: 0;
    font-size: 14px;
  }
}
.goods {
  margin-top: 43px;
  text-align: center;
}
@media (min-width: 768px) {
  .goods {
    translate: 8px 0;
  }
}
.guest__soon,
.goods__soon {
  position: relative;
  z-index: 1;
  margin-top: 13px;
  color: #f71f63;
  font-family: "Poppins", "Noto Sans JP", sans-serif;
  font-size: 20px;
  font-style: italic;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
}

@media (max-width: 767px) {
  .goods {
    margin-top: 71px;
  }
  .guest__soon,
  .goods__soon {
    font-size: 20px;
  }
}
.prev-link {
  display: flex;
  justify-content: center;
  margin-top: 48px;
  padding: 0 20px;
}
.prev-link__btn {
  width: 200px;
  max-width: 100%;
}

@media (max-width: 767px) {
  .prev-link {
    margin-top: 75px;
  }
  .prev-link__btn {
    width: 220px;
  }
}
