/* 参加申込LP専用。既存フォームのスタイルには影響させない。 */
.premium-lp {
  --gold: #bca477;
  --gold-light: #d7c7a5;
  --gold-deep: #766343;
  --ink: #e6e3dd;
  background: #0d0e10 !important;
  color: var(--ink);
}
.premium-lp .section { padding-block: 112px; }
.premium-lp .section h2,
.premium-lp .contact-section h2 {
  font-family: var(--serif) !important;
  font-weight: 500 !important;
  letter-spacing: .055em !important;
  -webkit-text-stroke: 0 !important;
  text-shadow: none !important;
  color: #f0ece3 !important;
}
.premium-lp .eyebrow {
  font-family: var(--sans) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: .2em !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  box-shadow: none !important;
  color: var(--gold) !important;
  -webkit-text-fill-color: var(--gold) !important;
}
.premium-lp .section-heading h2::after,
.premium-lp .overview-grid h2::after,
.premium-lp .faq-grid h2::after,
.premium-lp .contact-section h2::after {
  width: 44px !important;
  height: 1px !important;
  background: var(--gold-deep) !important;
  box-shadow: none !important;
}
.premium-lp .section-intro,
.premium-lp .experience-grid article > p:not(.eyebrow),
.premium-lp .overview-list dd,
.premium-lp .faq-list details p {
  font-weight: 400 !important;
  color: #c3c0b9;
  line-height: 2;
}
.premium-lp .header,
.premium-lp .header.is-scrolled {
  background: #0d0e10f5 !important;
  border-bottom: 1px solid #bca47730 !important;
  box-shadow: none !important;
}
.premium-lp .desktop-nav { font-size: 12px; gap: 22px; }
.premium-lp .brand > span { color: #c6b690 !important; }
.premium-lp .button,
.premium-lp .mobile-cta a {
  border-radius: 2px !important;
  font-weight: 600 !important;
  -webkit-text-stroke: 0 !important;
  text-shadow: none !important;
  box-shadow: none !important;
  animation: none !important;
  transition: filter .2s ease;
}
.premium-lp .button-gold,
.premium-lp .mobile-cta a:last-child {
  background: linear-gradient(115deg, #bca477, #dfceaa 52%, #bca477) !important;
  border: 1px solid #d4c299 !important;
  color: #19160f !important;
}
.premium-lp .button-silver {
  background: linear-gradient(115deg, #b5b6b8, #e1e2e2 52%, #b7b9bb) !important;
  border: 1px solid #d2d2d2 !important;
  color: #151617 !important;
}
.premium-lp .button:hover,
.premium-lp .button:active { transform: none !important; filter: brightness(1.08); box-shadow: none !important; }
.premium-lp .value-section,
.premium-lp .compare-section,
.premium-lp .faq-section { background: #0d0e10 !important; }
.premium-lp .experience-section,
.premium-lp .overview-section { background: #121315 !important; }
.premium-lp .stage-band { background: #101113 !important; border-color: #bca47724; }
.premium-lp .stage-band-intro p:last-child { font-weight: 500 !important; }
.premium-lp .experience-grid h3 {
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  box-shadow: none !important;
  font-weight: 600 !important;
  -webkit-text-stroke: 0 !important;
  color: #eee9de !important;
}
.premium-lp .compare-card {
  border: 1px solid #bca47738 !important;
  background: #111214 !important;
  box-shadow: none !important;
}
.premium-lp .overview-list dt {
  background: none !important;
  border: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
}
.premium-lp .overview-list > div { padding-block: 26px; }
.premium-lp .faq-list summary { font-weight: 500; }
.premium-lp .gold-text { font-weight: inherit !important; }
.premium-lp .hero::after { opacity: .25; }

/* 写真・名前・プロフィールを、落ち着いた人物一覧としてまとめる。 */
.premium-lp .mafia-section {
  position: relative;
  background:
    radial-gradient(ellipse 70% 420px at 50% 0, #bca47714, transparent),
    linear-gradient(180deg, rgba(6,6,7,.72), rgba(6,6,7,.86)),
    url('./assets/bg/mafia-marble.webp') center/cover no-repeat,
    #0a0b0d;
  border-block: 1px solid #bca47732;
}
.mafia-heading { text-align: center; margin-bottom: 68px; }
.premium-lp .mafia-heading h2 {
  margin-top: 28px;
  display: flex;
  justify-content: center;
  align-items: baseline;
  flex-wrap: wrap;
  column-gap: 24px;
  row-gap: 4px;
}
.mafia-title-en, .mafia-title-ja { font-size: clamp(42px, 5.4vw, 76px); }
.mafia-title-en {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-weight: 500;
  letter-spacing: .045em;
  line-height: 1.15;
}
.mafia-title-ja { letter-spacing: .16em; }
.premium-lp .mafia-lead {
  margin-top: 28px;
  color: #ffffff;
  font-size: 14px;
  font-weight: 400 !important;
  letter-spacing: .16em;
}
.mafia-heading::after {
  content: '';
  display: block;
  width: 48px;
  height: 1px;
  margin: 32px auto 0;
  background: #9b8254;
}
.mafia-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 48px 26px; align-items: start; }
.mafia-card { min-width: 0; }
.mafia-portrait {
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: #101112;
  border: 1px solid #bca47726;
}
.mafia-portrait > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 18%;
  transition: transform .5s ease;
}
.mafia-placeholder {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 15px;
  background: radial-gradient(ellipse at center, #26221b, #101112 72%);
}
.mafia-placeholder img { width: 67%; opacity: .45; }
.mafia-placeholder > span { color: #9b8b70; font-size: 9px; letter-spacing: .19em; }
.mafia-info { padding-top: 22px; }
.premium-lp .mafia-info h3 {
  font-family: var(--serif) !important;
  font-size: 25px;
  font-weight: 500 !important;
  letter-spacing: .08em !important;
  -webkit-text-stroke: 0 !important;
  color: #eee9df;
  line-height: 1.6;
  margin-bottom: 13px;
}
.mafia-profile { border-top: 0; margin-top: 10px; }
.mafia-profile > summary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 10px 18px;
  min-height: 40px;
  width: 100%;
  color: #f2e2b8;
  background: linear-gradient(135deg, #2a2116 0%, #1a140c 55%, #2a2116 100%);
  border: 1px solid #bca47775;
  border-radius: 3px;
  box-shadow: 0 2px 8px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,235,180,.06);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .12em;
  transition: background .18s ease, border-color .18s ease, transform .12s ease, box-shadow .18s ease, color .18s ease;
  cursor: pointer;
}
.mafia-profile > summary:hover {
  color: #fff2c8;
  background: linear-gradient(135deg, #3a2d1c 0%, #241a10 55%, #3a2d1c 100%);
  border-color: #e2c179;
  box-shadow: 0 4px 14px rgba(0,0,0,.55), 0 0 12px rgba(224,193,121,.28), inset 0 1px 0 rgba(255,235,180,.14);
}
.mafia-profile > summary:active {
  transform: translateY(1px);
  box-shadow: 0 1px 4px rgba(0,0,0,.5), inset 0 1px 3px rgba(0,0,0,.3);
}
.mafia-profile > summary > span { color: inherit; font-size: inherit; transform: none; }
.mafia-profile[open] > summary > span { transform: none; }
.mafia-profile > summary .profile-icon { display: none !important; }
.mafia-profile .profile-close-label { display: none; }
.mafia-profile[open] .profile-close-label { display: inline; }
.mafia-profile[open] .profile-open-label { display: none; }
.premium-lp .mafia-profile > p {
  color: #c3c0ba;
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 400 !important;
  line-height: 2;
  letter-spacing: .025em;
  overflow-wrap: anywhere;
  padding: 5% 0 20px;
}
.mafia-profile-empty { min-height: 49px; border-top: 1px solid #bca47748; }
@media (hover: hover) {
  .mafia-card:hover .mafia-portrait > img { transform: scale(1.035); }
  .mafia-profile > summary:hover { color: #e5d5b5; }
}
@media (max-width: 1200px) {
  .premium-lp .desktop-nav { gap: 13px; font-size: 11px; }
  .mafia-grid { gap: 38px 20px; }
  .premium-lp .mafia-info h3 { font-size: 21px; }
}
@media (max-width: 1000px) {
  .mafia-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .premium-lp .section { padding-block: 76px; }
  .mafia-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 18px; }
  .mafia-heading { margin-bottom: 40px; }
  .premium-lp .mafia-heading h2 { flex-direction: column; align-items: center; gap: 12px; margin-top: 22px; }
  .mafia-title-en, .mafia-title-ja { font-size: clamp(36px, 9.5vw, 56px); }
  .premium-lp .mafia-lead { font-size: 12px; margin-top: 22px; letter-spacing: .08em; }
  .mafia-heading::after { margin-top: 25px; }
  .mafia-info { padding-top: 15px; }
  .premium-lp .mafia-info h3 { font-size: clamp(17px, 4.6vw, 24px); letter-spacing: .03em !important; margin-bottom: 10px; }
  .mafia-profile > summary { font-size: 10px; letter-spacing: 0; }
  .premium-lp .mafia-profile > p { font-size: 12px; line-height: 1.95; }
  .mafia-placeholder > span { font-size: 7px; letter-spacing: .1em; }
  .premium-lp .overview-list > div { padding-block: 20px; }
}
@media (max-width: 360px) {
  .mafia-grid { gap: 28px 12px; }
  .premium-lp .mafia-info h3 { font-size: 16px; }
  .mafia-profile > summary { font-size: 9px; }
}
@media (prefers-reduced-motion: reduce) {
  .mafia-portrait > img { transition: none; }
  .mafia-card:hover .mafia-portrait > img { transform: none; }
}


/* ゲスト発表予告：白大理石背景。文字を黒/金基調に。 */
.premium-lp .section.guest-section,
.premium-lp #guests.guest-section {
  position: relative;
  background: #ffffff url('./assets/bg/guest-marble.webp') center top / cover no-repeat fixed !important;
  border-top: 1px solid #bca47740;
  border-bottom: 1px solid #bca47740;
  isolation: isolate;
}
.premium-lp .section.guest-section::before,
.premium-lp #guests.guest-section::before { content: none !important; }
.premium-lp .section.guest-section > *,
.premium-lp #guests.guest-section > * { position: relative; z-index: 1; }
@media (max-width: 960px) {
  .premium-lp .section.guest-section,
  .premium-lp #guests.guest-section {
    background: #ffffff url('./assets/bg/guest-marble.webp') center top / cover no-repeat scroll !important;
  }
}
.guest-heading { text-align: center; margin-bottom: 48px; }
.premium-lp .guest-heading h2 {
  margin-top: 20px;
  font-size: clamp(36px, 4.2vw, 56px);
  letter-spacing: .16em !important;
  color: #1a1a1a !important;
}
.premium-lp .guest-heading .eyebrow,
.premium-lp #guests .eyebrow {
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  font-weight: 700 !important;
  letter-spacing: .26em;
  text-shadow: none;
}
.guest-announcement {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 76px 36px 72px;
  text-align: center;
  border: 1px solid #a58b5970;
  background: radial-gradient(ellipse 65% 100% at 50% 0, #bca47718, transparent 75%), linear-gradient(135deg, #151514, #0b0c0e 60%, #171612);
}
.guest-announcement::before {
  content: '';
  position: absolute;
  inset: 10px;
  z-index: -1;
  border: 1px solid #bca47724;
  pointer-events: none;
}
.premium-lp .guest-kicker {
  color: #b8a37e;
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 400 !important;
  letter-spacing: .28em;
}
.premium-lp .guest-coming-soon {
  margin-top: 20px;
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: clamp(52px, 8.3vw, 120px);
  font-weight: 400 !important;
  line-height: 1.2;
  letter-spacing: .075em;
  color: #d9c69e;
}
.guest-divider { width: 56px; height: 1px; background: #9b8254; margin: 32px auto; }
.premium-lp .guest-message {
  font-family: var(--serif) !important;
  font-size: 23px;
  font-weight: 400 !important;
  letter-spacing: .12em;
  color: #e6dfd1;
}
.premium-lp .guest-note {
  margin-top: 14px;
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 400 !important;
  letter-spacing: .08em;
  color: #aaa59b;
}
@media (max-width: 700px) {
  .guest-heading { margin-bottom: 32px; }
  .guest-announcement { padding: 58px 22px 52px; }
  .premium-lp .guest-kicker { font-size: 8px; letter-spacing: .15em; }
  .premium-lp .guest-coming-soon { font-size: clamp(36px, 9.3vw, 64px); letter-spacing: .045em; margin-top: 24px; }
  .guest-divider { margin-block: 26px; width: 40px; }
  .premium-lp .guest-message { font-size: 17px; letter-spacing: .06em; }
  .premium-lp .guest-note { font-size: 11px; letter-spacing: .015em; margin-top: 12px; }
}
@media (max-width: 360px) {
  .guest-announcement { padding-inline: 17px; }
  .premium-lp .guest-coming-soon { font-size: 31px; }
  .premium-lp .guest-message { font-size: 15px; }
}

/* 静止状態を標準にし、動作できる環境だけ演出を加える。 */
.premium-lp { position: relative; isolation: isolate; background: #08090b !important; }
.premium-lp main, .premium-lp footer { position: relative; z-index: 1; }
#ambient-canvas { position: fixed; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; opacity: .8; }
.premium-lp .section,
.premium-lp #venue.overview-section,
.premium-lp #overview.overview-section,
.premium-lp .value-section,
.premium-lp .experience-section,
.premium-lp .compare-section,
.premium-lp .faq-section { background: linear-gradient(135deg, #101113d9, #08090bb8) !important; }
.premium-lp .mafia-section {
  position: relative;
  background: #0a0b0d url('./assets/bg/mafia-marble.webp') center top / cover no-repeat fixed !important;
  isolation: isolate;
}
.premium-lp .mafia-section::before {
  content: '';
  position: absolute; inset: 0; z-index: 0;
  background:
    radial-gradient(ellipse 70% 420px at 50% 0, #bca47714, transparent),
    rgba(0, 0, 0, 0.65);
  pointer-events: none;
}
.premium-lp .mafia-section > * { position: relative; z-index: 1; }
@media (max-width: 960px) {
  .premium-lp .mafia-section {
    background: #0a0b0d url('./assets/bg/mafia-marble.webp') center top / 140% auto no-repeat scroll !important;
  }
}
.premium-lp #overview.overview-section::before { opacity: .15; }
.premium-lp .stage-band { background: #101113d9 !important; }
.premium-lp .section-heading,
.premium-lp .value-grid article,
.premium-lp .experience-grid article,
.premium-lp .overview-grid > *,
.premium-lp .faq-list details,
.premium-lp .contact-inner > *,
.premium-lp .compare-card,
.premium-lp .stage-band-item {
  opacity: 1 !important;
  transform: none !important;
  transition: none;
}
.premium-lp .hero-actions { opacity: 1; transform: none; animation: none; }
.cinematic-intro { display: none; }
.hero-light { position: absolute; inset: 0; z-index: 1; pointer-events: none; overflow: hidden; }
.hero-light::before {
  content: ''; position: absolute; width: 80%; height: 150%; left: -42%; top: -40%;
  background: radial-gradient(ellipse, #e7ca8a20, #c6a35d08 38%, transparent 66%);
  transform: rotate(-30deg); opacity: .7;
}
.premium-lp .contact-bg { background: #0a0a0a url('./assets/bg/contact-poster.webp') center / cover; }
.premium-lp .contact-bg-video { opacity: 0; transition: opacity 1.4s ease; }
.premium-lp .contact-bg-video.is-playing { opacity: .55; }
.premium-lp .guest-announcement::after {
  content: ''; position: absolute; top: -50%; left: -80%; width: 45%; height: 200%; z-index: -1;
  pointer-events: none; opacity: 0;
  background: linear-gradient(90deg, transparent, #e4c4810d, #e4c4811c, #e4c48108, transparent);
  transform: rotate(24deg);
}
@media (prefers-reduced-motion: no-preference) {
  .cinematic-intro {
    display: flex; position: fixed; inset: 0; z-index: 100; align-items: center; justify-content: center;
    pointer-events: none; background: radial-gradient(ellipse at 50% 48%, #292319, #08090a 62%);
    animation: intro-curtain .7s cubic-bezier(.22, 1, .36, 1) .72s forwards;
  }
  .cinematic-intro-inner { width: min(340px, 66vw); text-align: center; }
  .cinematic-intro img {
    width: 100%; height: auto; filter: brightness(0) invert(1); opacity: 0;
    animation: intro-brand .75s cubic-bezier(.22, 1, .36, 1) .08s both;
  }
  .cinematic-intro-line { height: 1px; width: 60px; margin: 26px auto 18px; background: #c6ad7a; transform: scaleX(0); animation: intro-line .7s ease .2s both; }
  .premium-lp .cinematic-intro-label { color: #c6b48e; font-family: var(--sans); font-size: 10px; font-weight: 400 !important; letter-spacing: .28em; animation: intro-brand .7s ease .2s both; }
  .premium-lp .hero-visual { animation: hero-arrival 1.5s cubic-bezier(.22, 1, .36, 1) .3s both; }
  .premium-lp .hero-actions { animation: hero-actions-arrival 1.1s cubic-bezier(.22, 1, .36, 1) .7s both; }
  .premium-lp.motion-ready .reveal-item {
    transition: opacity .95s cubic-bezier(.22, 1, .36, 1), transform 1.15s cubic-bezier(.22, 1, .36, 1);
    transition-delay: var(--reveal-delay, 0ms);
  }
  .premium-lp.motion-ready .reveal-item:not(.is-visible) { opacity: 0 !important; transform: translate3d(0, 24px, 0) !important; }
  .premium-lp.motion-ready .reveal-item.is-visible { opacity: 1 !important; transform: none !important; }
  .premium-lp.motion-ready .guest-announcement::after { animation: invitation-light 13s ease-in-out infinite; animation-play-state: paused; }
  .premium-lp.motion-ready .guest-announcement.is-in-viewport::after { animation-play-state: running; }
  .premium-lp .hero-light::before { animation: ambient-light 18s ease-in-out infinite alternate; animation-play-state: paused; }
  .premium-lp.motion-ready .hero.is-in-viewport .hero-light::before { animation-play-state: running; }
  .premium-lp.motion-ready .hero-media video { animation: film-drift 22s ease-in-out infinite alternate; }
  .premium-lp.motion-ready .hero-media video.media-paused { animation-play-state: paused; }
}
.premium-lp.motion-quiet .hero-visual,
.premium-lp.motion-quiet .hero-actions,
.premium-lp.is-background .hero-media video,
.premium-lp.is-background .hero-light::before,
.premium-lp.is-background .guest-announcement::after { animation-play-state: paused !important; }
.premium-lp.motion-quiet .hero-visual,
.premium-lp.motion-quiet .hero-actions { animation: none !important; }
.premium-lp.motion-quiet .contact-bg-video { display: none; }
@keyframes intro-brand { from { opacity: 0; transform: translateY(8px); filter: brightness(0) invert(1) blur(3px); } to { opacity: .95; transform: none; filter: brightness(0) invert(1) blur(0); } }
@keyframes intro-line { to { transform: scaleX(1); } }
@keyframes intro-curtain { to { opacity: 0; visibility: hidden; } }
@keyframes hero-arrival { from { opacity: 0; transform: translate3d(0, 14px, 0) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes hero-actions-arrival { from { opacity: 0; } to { opacity: 1; } }
@keyframes ambient-light { from { transform: translate3d(-5%, -3%, 0) rotate(-30deg); opacity: .5; } to { transform: translate3d(17%, 7%, 0) rotate(-22deg); opacity: 1; } }
@keyframes film-drift { from { transform: scale(1.02); } to { transform: scale(1.07) translate3d(.5%, -.5%, 0); } }
@keyframes invitation-light { 0%, 12% { opacity: 0; transform: translateX(0) rotate(24deg); } 22% { opacity: 1; } 62% { opacity: 1; } 78%, 100% { opacity: 0; transform: translateX(560%) rotate(24deg); } }
@media (max-width: 700px) {
  #ambient-canvas { opacity: .65; }
  .premium-lp.motion-ready .reveal-item { transition-duration: .75s, .85s; }
  .premium-lp.motion-ready .reveal-item:not(.is-visible) { transform: translate3d(0, 16px, 0) !important; }
}
@media (prefers-reduced-motion: reduce) {
  .cinematic-intro, #ambient-canvas { display: none !important; }
  .premium-lp .reveal-item { opacity: 1 !important; transform: none !important; }
}
/* Header CTA (画像差し替え) */
.header .header-cta-image {
  display:inline-flex; align-items:center; flex-shrink:0;
  height:44px; width:auto; max-width:200px;
  padding:0; border:0; background:transparent; border-radius:3px;
  overflow:hidden; box-shadow:0 4px 14px rgba(0,0,0,.4);
  transition:transform .12s ease, box-shadow .12s ease, filter .12s ease;
}
.header .header-cta-image img {
  display:block; width:auto !important; height:100% !important; max-width:none !important; object-fit:contain;
}
.header .header-cta-image:hover { filter:brightness(1.06); box-shadow:0 8px 22px rgba(0,0,0,.5); transform:translateY(-1px); }
.header .header-cta-image:active { transform:translateY(1px); box-shadow:0 3px 10px rgba(0,0,0,.5); }
/* Desktop nav: 文字が縦落ちしないよう nowrap 統一 */
.header .desktop-nav { flex-wrap:nowrap; }
.header .desktop-nav a { white-space:nowrap; }
@media(max-width:1100px){
  .header .header-cta-image{ height:40px; max-width:170px; }
  .header .desktop-nav{ gap:16px; }
}
@media(max-width:960px){ .header .header-cta-image{ height:44px; max-width:190px; } }
@media(max-width:540px){ .header .header-cta-image{ height:42px; max-width:170px; } }
@media(max-width:400px){ .header .header-cta-image{ height:38px; max-width:148px; } }
/* 横スクロール防止（sticky を殺さないよう clip を使う） */
html, body { overflow-x: clip; max-width: 100vw; }
.premium-lp main { overflow-x: clip; }
/* ヘッダーは PC/スマホ 共通で確実にスクロール追従 */
.premium-lp .header {
  position: -webkit-sticky !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 50 !important;
}

/* FAQ: 質問=明朝、回答=ゴシック */
.premium-lp .faq-list summary,
.premium-lp .faq-list summary * {
  font-family: 'Noto Serif JP','Yu Mincho',serif !important;
  font-weight: 600 !important;
}
.premium-lp .faq-list details p,
.premium-lp .faq-list details p * {
  font-family: 'Noto Sans JP','Hiragino Kaku Gothic ProN',sans-serif !important;
  font-weight: 400 !important;
}
