/* ==========================================================
   MOTION 2026-09-23
   IVS.events 風の "速度感 + 気持ちよさ" を追加
   - スマホ用ハンバーガー + 全画面メニュー
   - スクロール reveal (追加)
   - 高級感マーキー
   最後に読み込むこと (index.html <head> 末尾)
   ========================================================== */

/* ---------- Hamburger button ---------- */
.menu-toggle{
  display:none;
  position:relative;
  width:44px; height:44px;
  padding:0; margin:0;
  background:transparent; border:0; cursor:pointer;
  flex-shrink:0;
  z-index:60;
}
.menu-toggle > span{
  position:absolute;
  left:10px; right:10px;
  height:1.5px;
  background:#e6d9b8;
  border-radius:1px;
  transition:transform .35s cubic-bezier(.7,.2,.3,1),
             opacity .2s ease,
             top .35s cubic-bezier(.7,.2,.3,1),
             bottom .35s cubic-bezier(.7,.2,.3,1);
}
.menu-toggle > span:nth-child(1){ top:14px; }
.menu-toggle > span:nth-child(2){ top:50%; transform:translateY(-50%); }
.menu-toggle > span:nth-child(3){ bottom:14px; }
.menu-toggle[aria-expanded="true"] > span:nth-child(1){ top:50%; transform:translateY(-50%) rotate(45deg); }
.menu-toggle[aria-expanded="true"] > span:nth-child(2){ opacity:0; }
.menu-toggle[aria-expanded="true"] > span:nth-child(3){ bottom:50%; transform:translateY(50%) rotate(-45deg); }

/* Mobile: hamburger 表示 + header-cta-image は fixed mobile-cta と重複するので非表示 */
@media (max-width: 800px){
  .menu-toggle{ display:block; }
  .premium-lp .header .header-cta-image,
  .header .header-cta-image{ display:none !important; }
}

/* ---------- Full-screen mobile menu overlay ---------- */
.mobile-menu-overlay{
  position:fixed; inset:0; z-index:55;
  background:
    linear-gradient(180deg, rgba(6,7,9,.98) 0%, rgba(6,7,9,.96) 100%),
    url('./assets/bg/leather-primary.webp') center/cover no-repeat,
    #0a0b0d;
  padding:96px 28px 36px;
  display:flex; flex-direction:column; justify-content:space-between; gap:32px;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .32s ease, visibility 0s linear .32s;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.mobile-menu-overlay.is-open{
  opacity:1; visibility:visible; pointer-events:auto;
  transition:opacity .35s ease;
}
.mobile-menu-nav{
  display:flex; flex-direction:column; gap:2px;
}
.mobile-menu-nav a{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 4px;
  border-bottom:1px solid rgba(188,164,119,.16);
  font-family:'Noto Serif JP','Yu Mincho',serif;
  font-size:20px;
  font-weight:500;
  color:#e6d9b8;
  letter-spacing:.08em;
  opacity:0; transform:translateY(18px);
  transition:opacity .55s ease var(--reveal-delay, 0ms),
             transform .6s cubic-bezier(.22,1,.36,1) var(--reveal-delay, 0ms),
             color .2s ease;
}
.mobile-menu-nav a::after{
  content:'›';
  font-size:22px;
  color:#8f7a4d;
  transition:transform .2s ease, color .2s ease;
}
.mobile-menu-overlay.is-open .mobile-menu-nav a{
  opacity:1; transform:none;
}
.mobile-menu-nav a:active,
.mobile-menu-nav a:focus{
  color:#f8ecc9;
}
.mobile-menu-nav a:active::after{ color:#f8ecc9; transform:translateX(4px); }
.mobile-menu-cta{
  display:flex; flex-direction:column; gap:10px;
  padding-top:24px;
  border-top:1px solid rgba(188,164,119,.22);
}
.mobile-menu-cta .button{
  width:100%; min-height:56px;
  justify-content:center; align-items:center;
  font-size:14px;
  padding:14px 18px;
  border-radius:3px;
}
.mobile-menu-note{
  text-align:center;
  color:#8b8677;
  font-size:11px;
  letter-spacing:.24em;
  margin-top:12px;
}
.mobile-menu-brand{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  gap:4px !important;
  margin-top:20px !important;
  color:#c6b690 !important;
}
.mobile-menu-brand img{
  width:auto !important;
  height:28px !important;
  max-width:180px !important;
  display:block !important;
  filter:brightness(1.05);
}
.mobile-menu-brand span{
  display:block !important;
  font-family:'Barlow Condensed', Arial, sans-serif !important;
  font-size:12px !important;
  letter-spacing:.22em !important;
  color:#c6b690 !important;
  margin-top:2px !important;
}
body.menu-open{ overflow:hidden; }

/* Close (×) button inside overlay */
.menu-close{
  position:absolute;
  top:22px; right:22px;
  width:44px; height:44px;
  padding:0; margin:0;
  background:transparent;
  border:1px solid rgba(188,164,119,.35);
  border-radius:50%;
  cursor:pointer;
  z-index:2;
  display:flex; align-items:center; justify-content:center;
  transition:border-color .2s ease, background .2s ease, transform .2s ease;
}
.menu-close:hover,
.menu-close:focus-visible{
  border-color:#e6d9b8;
  background:rgba(188,164,119,.08);
}
.menu-close:active{ transform:scale(.94); }
.menu-close > span{
  position:absolute;
  left:11px; right:11px;
  height:1.6px;
  background:#e6d9b8;
  border-radius:1px;
}
.menu-close > span:nth-child(1){ transform:rotate(45deg); }
.menu-close > span:nth-child(2){ transform:rotate(-45deg); }
@media (max-width: 540px){
  .menu-close{ top:18px; right:18px; width:40px; height:40px; }
  .menu-close > span{ left:10px; right:10px; }
}

/* ---------- Marquee (IVS-style scrolling premium text) ---------- */
.rv-marquee{
  position:relative;
  overflow:hidden;
  padding:26px 0;
  background:linear-gradient(90deg, #0b0c0e 0%, #141210 50%, #0b0c0e 100%);
  border-block:1px solid rgba(188,164,119,.18);
  user-select:none;
}
.rv-marquee-track{
  display:inline-flex;
  align-items:center;
  gap:56px;
  padding-left:56px;
  white-space:nowrap;
  animation:rv-marquee-scroll 42s linear infinite;
  will-change:transform;
}
.rv-marquee-track > span{
  display:inline-block;
  font-family:'Cormorant Garamond','Noto Serif JP','Yu Mincho',serif;
  font-size:clamp(28px, 4.8vw, 60px);
  font-weight:500;
  letter-spacing:.08em;
  line-height:1.1;
  color:transparent;
  -webkit-text-stroke:1px rgba(188,164,119,.72);
  flex-shrink:0;
}
.rv-marquee-track > span.rv-marquee-dot{
  -webkit-text-stroke:0;
  color:#bca477;
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(20px, 3.4vw, 42px);
  vertical-align:middle;
  opacity:.7;
}
@keyframes rv-marquee-scroll{
  from{ transform:translateX(0); }
  to  { transform:translateX(-50%); }
}
@media (max-width: 640px){
  .rv-marquee{ padding:20px 0; }
  .rv-marquee-track{ gap:36px; padding-left:36px; animation-duration:32s; }
}
@media (prefers-reduced-motion: reduce){
  .rv-marquee-track{ animation:none; }
}

/* ---------- コンテンツをレールに被らないよう中央寄せ・幅縮小 ---------- */
body.premium-lp .container{
  width:min(1140px, calc(100% - 160px)) !important;
  margin-inline:auto !important;
}
body.premium-lp .header-inner{
  width:min(1380px, calc(100% - 160px)) !important;
}
@media (max-width:1200px){
  body.premium-lp .container{
    width:min(1080px, calc(100% - 140px)) !important;
  }
  body.premium-lp .header-inner{
    width:min(1200px, calc(100% - 140px)) !important;
  }
}
@media (max-width:800px){
  body.premium-lp .container{
    width:calc(100% - 32px) !important;
  }
  body.premium-lp .header-inner{
    width:calc(100% - 32px) !important;
  }
}
@media (max-width:640px){
  body.premium-lp .container{
    width:calc(100% - 32px) !important;
  }
  body.premium-lp .header-inner{
    width:calc(100% - 28px) !important;
  }
}
@media (max-width:480px){
  body.premium-lp .container{
    width:calc(100% - 24px) !important;
  }
  body.premium-lp .header-inner{
    width:calc(100% - 22px) !important;
  }
}
@media (max-width:380px){
  body.premium-lp .container{
    width:calc(100% - 22px) !important;
  }
  body.premium-lp .header-inner{
    width:calc(100% - 20px) !important;
  }
}

/* PC/タブレット FV: hero-content の container 幅制限を解除して全幅使用 */
body.premium-lp .hero-visual-only .hero-content,
body.premium-lp .hero-visual-only .hero-content.container{
  width:100% !important;
  max-width:none !important;
  padding-left:80px !important;
  padding-right:80px !important;
}
body.premium-lp .hero-visual-only .hero-visual-all,
body.premium-lp .hero-visual-only .hero-visual{
  width:100% !important;
  max-width:1080px !important;
  margin-inline:auto !important;
}
@media (min-width:1200px){
  body.premium-lp .hero-visual-only .hero-content,
  body.premium-lp .hero-visual-only .hero-content.container{
    padding-left:100px !important;
    padding-right:100px !important;
  }
  body.premium-lp .hero-visual-only .hero-visual-all,
  body.premium-lp .hero-visual-only .hero-visual{
    max-width:1200px !important;
  }
}
@media (min-width:1600px){
  body.premium-lp .hero-visual-only .hero-visual-all,
  body.premium-lp .hero-visual-only .hero-visual{
    max-width:1400px !important;
  }
}
/* スマホ FV: 動画下のコンテンツを引き上げ (flexboxで自然に配置、追加でnegative margin) */
@media (max-width:1023px){
  html body.premium-lp .hero-visual-only .hero-content,
  html body.premium-lp .hero-visual-only .hero-content.container{
    padding-top:0 !important;
    padding-bottom:0 !important;
    margin-top:-105vw !important;
    position:relative !important;
    z-index:3 !important;
  }
  body.premium-lp .hero-visual-only .hero-visual-all,
  body.premium-lp .hero-visual-only .hero-visual{
    width:100% !important;
    max-width:none !important;
  }
  body.premium-lp .hero-visual-only .hero-actions > .button{
    width:100% !important;
    max-width:460px !important;
    margin-inline:auto !important;
  }
}
@media (max-width:800px){
  body.premium-lp .hero-visual-only .hero-content{
    padding-left:16px !important;
    padding-right:16px !important;
  }
}
@media (max-width:480px){
  body.premium-lp .hero-visual-only .hero-content{
    padding-left:12px !important;
    padding-right:12px !important;
  }
  body.premium-lp .hero-visual-only .hero-actions > .button{
    max-width:460px !important;
  }
}

/* About 本文の横幅整理 (レール逃げ + 読みやすい line width) */
body.premium-lp .about-rv-section .container.about-rv-inner{
  width:min(720px, calc(100% - 200px)) !important;
  max-width:720px !important;
  margin-inline:auto !important;
}
body.premium-lp .about-rv-body,
body.premium-lp .about-rv-body p{
  max-width:100% !important;
  margin-inline:auto !important;
}
@media (max-width:1080px){
  body.premium-lp .about-rv-section .container.about-rv-inner{
    width:calc(100% - 180px) !important;
    max-width:640px !important;
  }
}
@media (max-width:800px){
  body.premium-lp .about-rv-section .container.about-rv-inner{
    width:calc(100% - 120px) !important;
    max-width:520px !important;
  }
}
@media (max-width:640px){
  body.premium-lp .about-rv-section .container.about-rv-inner{
    width:calc(100% - 100px) !important;
    max-width:460px !important;
  }
}
@media (max-width:480px){
  body.premium-lp .about-rv-section .container.about-rv-inner{
    width:calc(100% - 84px) !important;
    max-width:400px !important;
  }
}

/* 全幅ブリード (about-rv-carousel) 左右グラデーションマスクで自然に消す */
body.premium-lp .about-rv-carousel{
  width:100vw !important;
  margin-left:calc(50% - 50vw) !important;
  margin-right:calc(50% - 50vw) !important;
  -webkit-mask-image:linear-gradient(90deg,
    transparent 0%,
    transparent 4%,
    black 14%,
    black 86%,
    transparent 96%,
    transparent 100%) !important;
  mask-image:linear-gradient(90deg,
    transparent 0%,
    transparent 4%,
    black 14%,
    black 86%,
    transparent 96%,
    transparent 100%) !important;
}
@media (max-width:800px){
  body.premium-lp .about-rv-carousel{
    -webkit-mask-image:linear-gradient(90deg,
      transparent 0%,
      transparent 6%,
      black 18%,
      black 82%,
      transparent 94%,
      transparent 100%) !important;
    mask-image:linear-gradient(90deg,
      transparent 0%,
      transparent 6%,
      black 18%,
      black 82%,
      transparent 94%,
      transparent 100%) !important;
  }
}
@media (max-width:480px){
  body.premium-lp .about-rv-carousel{
    -webkit-mask-image:linear-gradient(90deg,
      transparent 0%,
      transparent 8%,
      black 22%,
      black 78%,
      transparent 92%,
      transparent 100%) !important;
    mask-image:linear-gradient(90deg,
      transparent 0%,
      transparent 8%,
      black 22%,
      black 78%,
      transparent 92%,
      transparent 100%) !important;
  }
}

/* モバイル CTA 固定バーもレール分縮小 */
@media (max-width:800px){
  body.premium-lp .mobile-cta{
    left:50px !important;
    right:50px !important;
  }
}
@media (max-width:480px){
  body.premium-lp .mobile-cta{
    left:36px !important;
    right:36px !important;
  }
}

/* ---------- REAL VALUE 縦流しレール (全ページ固定表示) ---------- */
.rv-studio-walls-global{
  position:fixed !important;
  top:0 !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  z-index:35 !important;
  overflow:hidden !important;
  pointer-events:none !important;
}
.premium-lp .hero-visual-only .rv-studio-walls{
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  overflow:hidden !important;
  pointer-events:none !important;
}
.rv-studio-rail{
  position:absolute;
  top:0; bottom:0;
  width:52px;
  overflow:hidden;
  /* 上下フェードを撤去して常時ロゴが見える状態に (途切れ感を消す) */
}
.rv-studio-rail-left{ left:0; }
.rv-studio-rail-right{ right:0; }
.rv-studio-rail-track{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0;
  padding:0;
  will-change:transform;
}
.rv-studio-rail-left .rv-studio-rail-track{
  animation:rv-rail-scroll-up 32s linear infinite;
}
.rv-studio-rail-right .rv-studio-rail-track{
  animation:rv-rail-scroll-down 38s linear infinite;
}
.rv-studio-rail-track img{
  display:block;
  width:auto;
  height:20px;
  max-width:none;
  transform:rotate(-90deg);
  transform-origin:center center;
  opacity:.75;
  filter:brightness(1.1);
  flex-shrink:0;
  /* rotate 後の見かけ縦幅 (元 width) + 余白ぶんの margin で控えめに離す */
  margin:52px 0;
}
@keyframes rv-rail-scroll-up{
  from{ transform:translate3d(0,0,0); }
  to  { transform:translate3d(0,-50%,0); }
}
@keyframes rv-rail-scroll-down{
  from{ transform:translate3d(0,-50%,0); }
  to  { transform:translate3d(0,0,0); }
}
@media (max-width: 800px){
  .rv-studio-rail{ width:14px; }
  .rv-studio-rail-track img{ height:8px; margin:20px 0; opacity:.75; }
  .rv-studio-rail-left .rv-studio-rail-track{ animation-duration:24s; }
  .rv-studio-rail-right .rv-studio-rail-track{ animation-duration:28s; }
}
@media (max-width: 480px){
  .rv-studio-rail{ width:10px; }
  .rv-studio-rail-track img{ height:7px; margin:16px 0; opacity:.75; }
  .rv-studio-rail-left .rv-studio-rail-track{ animation-duration:20s; }
  .rv-studio-rail-right .rv-studio-rail-track{ animation-duration:24s; }
}
@media (prefers-reduced-motion: reduce){
  .rv-studio-rail-track{ animation:none !important; }
}

/* ---------- Section 背景動画 (共通) ---------- */
/* 既存の レザー画像 / attachment fixed / ::before overlay を全て無効化 */
.premium-lp .stage-band,
.premium-lp .value-section,
.premium-lp .overview-section{
  position:relative !important;
  isolation:isolate !important;
  overflow:hidden !important;
  background:#04060a !important;
  background-image:none !important;
  background-attachment:scroll !important;
}
/* compare-section (参加スタイルを選ぶ) は動画背景 */
body.premium-lp .compare-section,
body.premium-lp .compare-section.compare-section{
  position:relative !important;
  isolation:isolate !important;
  overflow:hidden !important;
  background-color:#04060a !important;
  background-image:none !important;
  background-attachment:scroll !important;
}
body.premium-lp .compare-section::before{
  background:none !important;
  display:none !important;
}
body.premium-lp .compare-section > .rv-section-bg{
  position:absolute !important;
  top:0 !important; left:0 !important; right:0 !important; bottom:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center !important;
  z-index:0 !important;
  pointer-events:none !important;
  opacity:1 !important;
  display:block !important;
}
body.premium-lp .compare-section::after{
  content:'' !important;
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  background:rgba(0,0,0,.5) !important;
  pointer-events:none !important;
  display:block !important;
}
body.premium-lp .compare-section > .container{
  position:relative !important;
  z-index:2 !important;
}

/* 写真は画像上部だけを表示する。中央トリミングすると焼き込み文字が重複するため、
   写真範囲の指定は value.v2026092204.css を使用する。 */
body.premium-lp #concept .reason-card{ overflow:hidden !important; }

/* ---------- スマホ: テキスト要素にレール逃げの内側余白 (5px程度) ---------- */
@media (max-width:800px){
  body.premium-lp .section-intro,
  body.premium-lp .about-rv-body,
  body.premium-lp .stage-band-intro,
  body.premium-lp .reason-content,
  body.premium-lp .value-grid article,
  body.premium-lp .experience-grid article,
  body.premium-lp .join-details,
  body.premium-lp .join-recommendation,
  body.premium-lp .overview-list,
  body.premium-lp .faq-list,
  body.premium-lp .vip-benefits,
  body.premium-lp .contact-lead,
  body.premium-lp .footer-inner{
    padding-inline:6px !important;
  }
  body.premium-lp .section h2,
  body.premium-lp .section h3,
  body.premium-lp .stage-band-intro p:last-child,
  body.premium-lp .contact-section h2{
    padding-inline:4px !important;
  }
}
@media (max-width:480px){
  body.premium-lp .section-intro,
  body.premium-lp .about-rv-body,
  body.premium-lp .stage-band-intro,
  body.premium-lp .reason-content,
  body.premium-lp .value-grid article,
  body.premium-lp .experience-grid article,
  body.premium-lp .join-details,
  body.premium-lp .join-recommendation,
  body.premium-lp .overview-list,
  body.premium-lp .faq-list,
  body.premium-lp .vip-benefits,
  body.premium-lp .contact-lead,
  body.premium-lp .footer-inner{
    padding-inline:8px !important;
  }
}

/* ---------- 開催概要 (Event Information) 中央配置ビジュアル ---------- */
body.premium-lp #overview .overview-visual{
  display:block !important;
  margin:8px auto 0 !important;
  width:min(88%, 420px) !important;
  max-width:420px !important;
  text-align:center !important;
}
body.premium-lp #overview .overview-visual img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  margin:0 auto !important;
}
body.premium-lp #overview .section-intro{
  margin-bottom:0 !important;
}
@media (max-width:800px){
  body.premium-lp #overview .overview-visual{
    width:min(84%, 320px) !important;
    max-width:320px !important;
    margin-top:6px !important;
  }
}

/* ---------- Contact section (ご参加お申込み) 大理石背景 ---------- */
body.premium-lp .contact-section{
  position:relative !important;
  isolation:isolate !important;
  overflow:hidden !important;
  background-color:#05060a !important;
  background-image:url('./assets/bg-image/compare-bg.v20260923.webp') !important;
  background-position:center center !important;
  background-size:cover !important;
  background-repeat:no-repeat !important;
  background-attachment:scroll !important;
}
body.premium-lp .contact-section::before{
  content:'' !important;
  position:absolute !important;
  inset:0 !important;
  z-index:0 !important;
  background:rgba(0,0,0,.5) !important;
  pointer-events:none !important;
  display:block !important;
}
body.premium-lp .contact-section .container.contact-inner{
  position:relative !important;
  z-index:1 !important;
}

/* ---------- Preloader は真っ黒に ---------- */
#preloader{
  background:#000000 !important;
  background-image:none !important;
}

/* ---------- ハンバーガーメニューは大理石背景 ---------- */
.mobile-menu-overlay{
  background:
    linear-gradient(180deg, rgba(4,6,10,.82) 0%, rgba(4,6,10,.9) 100%),
    url('./assets/bg-image/compare-bg.v20260923.webp') center/cover no-repeat,
    #05060a !important;
}
.premium-lp .compare-section::before,
.premium-lp .overview-section::before{
  background:none !important;
  display:none !important;
}
.premium-lp .stage-band > .rv-section-bg,
.premium-lp .compare-section > .rv-section-bg,
.premium-lp .value-section > .rv-section-bg,
.premium-lp .overview-section > .rv-section-bg{
  position:absolute !important;
  top:0 !important; left:0 !important; right:0 !important; bottom:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center !important;
  z-index:0 !important;
  pointer-events:none !important;
  opacity:1 !important;
  filter:brightness(1) saturate(1.15) !important;
  display:block !important;
  visibility:visible !important;
}
/* ---------- 全セクション共通: 白テキスト / 大きめ文字 / 余白詰め ---------- */
.premium-lp .section,
.premium-lp .stage-band,
.premium-lp .value-section,
.premium-lp .compare-section,
.premium-lp .overview-section,
.premium-lp .experience-section,
.premium-lp .contact-section,
.premium-lp .faq-section,
.premium-lp .mafia-section,
.premium-lp .about-rv-section{
  color:#ffffff !important;
}
.premium-lp .section p,
.premium-lp .section li,
.premium-lp .section h2,
.premium-lp .section h3,
.premium-lp .section h4,
.premium-lp .section dd,
.premium-lp .section dt,
.premium-lp .section small,
.premium-lp .section b,
.premium-lp .section span,
.premium-lp .section-intro,
.premium-lp .about-rv-body p,
.premium-lp .stage-band-intro p,
.premium-lp .stage-band-item h4,
.premium-lp .stage-band-item small,
.premium-lp .reason-content p,
.premium-lp .reason-content h3,
.premium-lp .overview-list dd,
.premium-lp .overview-list small,
.premium-lp .faq-list summary,
.premium-lp .faq-list details p,
.premium-lp .join-features h4,
.premium-lp .join-features p,
.premium-lp .join-list-label,
.premium-lp .join-recommendation,
.premium-lp .join-note p,
.premium-lp .join-note li,
.premium-lp .compare-card p,
.premium-lp .vip-benefits li b,
.premium-lp .vip-benefits li small,
.premium-lp .vip-price-note{
  color:#ffffff !important;
}
/* Eyebrow / gold accents は残す */
.premium-lp .eyebrow,
.premium-lp .gold-text,
.premium-lp .overview-list dt,
.premium-lp .stage-band-item span{
  color:#e0c78a !important;
}

/* 文字サイズを一段上げて視認性向上 */
.premium-lp .section-intro{ font-size:16px !important; line-height:1.9 !important; }
.premium-lp .about-rv-body p{ font-size:17px !important; line-height:1.9 !important; }
.premium-lp .section h2{ font-size:44px !important; line-height:1.55 !important; }
.premium-lp .reason-content h3,
.premium-lp .reason-title-frame h3{ font-size:22px !important; }
.premium-lp .reason-content > p:not(.eyebrow):not(.reason-kicker){ font-size:15px !important; line-height:2 !important; }
.premium-lp .stage-band-intro p:last-child{ font-size:34px !important; }
.premium-lp .stage-band-item h4{ font-size:20px !important; }
.premium-lp .stage-band-item small{ font-size:14px !important; }
.premium-lp .overview-list dd{ font-size:16px !important; }
.premium-lp .overview-list small{ font-size:14px !important; }
.premium-lp .overview-list > div{ font-size:15px !important; }
.premium-lp .faq-list summary{ font-size:16px !important; }
.premium-lp .faq-list details p{ font-size:15px !important; line-height:1.95 !important; }
.premium-lp .join-features h4{ font-size:17px !important; }
.premium-lp .join-features p{ font-size:14px !important; }
.premium-lp .vip-benefits li b{ font-size:17px !important; }
.premium-lp .vip-benefits li small{ font-size:14px !important; }

/* セクション上下余白を詰める */
.premium-lp .section{ padding-block:72px !important; }
.premium-lp .stage-band{ padding-block:44px !important; }
.premium-lp .about-rv-section{ padding:40px 0 68px !important; }
.premium-lp .contact-section{ padding-block:72px !important; }

/* 見出しと本文の間隔を詰める */
.premium-lp .section-heading{ margin-bottom:36px !important; }
.premium-lp .section-heading + *{ margin-top:0 !important; }
.premium-lp .reason-grid,
.premium-lp .value-grid,
.premium-lp .experience-grid,
.premium-lp .join-grid,
.premium-lp .mafia-grid,
.premium-lp .overview-grid,
.premium-lp .process-grid,
.premium-lp .faq-grid{ gap:24px !important; row-gap:28px !important; }
.premium-lp .stage-band-grid{ column-gap:20px !important; row-gap:20px !important; }
.premium-lp .about-rv-carousel{ margin:20px calc(50% - 50vw) 12px !important; }

@media (max-width:800px){
  .premium-lp .section{ padding-block:52px !important; }
  .premium-lp .section h2{ font-size:32px !important; }
  .premium-lp .stage-band-intro p:last-child{ font-size:24px !important; }
  .premium-lp .about-rv-body p{ font-size:16px !important; }
  .premium-lp .section-intro{ font-size:15px !important; }
}

/* ---------- 本文はゴシック (Noto Sans JP) 統一 / 見出しのみ明朝を維持 ---------- */
.premium-lp .section-intro,
.premium-lp .about-rv-body p,
.premium-lp .stage-band-item small,
.premium-lp .stage-band-intro p:not(:last-child),
.premium-lp .reason-content > p,
.premium-lp .value-grid article > p,
.premium-lp .experience-grid article > p,
.premium-lp .compare-card p,
.premium-lp .join-features p,
.premium-lp .join-recommendation,
.premium-lp .join-list-label,
.premium-lp .join-note p,
.premium-lp .join-note li,
.premium-lp .overview-list dd,
.premium-lp .overview-list small,
.premium-lp .process-grid p,
.premium-lp .faq-list details p,
.premium-lp .vip-benefits li b,
.premium-lp .vip-benefits li small,
.premium-lp .vip-price-note,
.premium-lp .contact-lead,
.premium-lp .contact-pending p,
.premium-lp .footer-inner p,
.premium-lp .rv-urgency-note,
.premium-lp .mafia-info p,
.premium-lp .mafia-lead{
  font-family:'Noto Sans JP','Hiragino Kaku Gothic ProN',sans-serif !important;
  font-weight:500 !important;
}

/* 本文サイズをさらに大きく */
.premium-lp .section-intro{ font-size:19px !important; line-height:1.95 !important; }
.premium-lp .about-rv-body p{ font-size:20px !important; line-height:1.95 !important; }
.premium-lp .section h2,
.premium-lp .contact-section h2{ font-size:50px !important; line-height:1.5 !important; }
.premium-lp .reason-content > p:not(.eyebrow):not(.reason-kicker){ font-size:17px !important; }
.premium-lp .value-grid article > p:last-child,
.premium-lp .experience-grid article > p:last-child{ font-size:17px !important; }
.premium-lp .stage-band-item h4{ font-size:22px !important; }
.premium-lp .stage-band-item small{ font-size:16px !important; }
.premium-lp .stage-band-intro p:last-child{ font-size:38px !important; }
.premium-lp .overview-list dd{ font-size:19px !important; }
.premium-lp .overview-list small{ font-size:16px !important; }
.premium-lp .overview-grid h2{ font-size:38px !important; }
.premium-lp .faq-list summary{ font-size:19px !important; }
.premium-lp .faq-list details p{ font-size:17px !important; line-height:1.95 !important; }
.premium-lp .join-features p{ font-size:16px !important; }
.premium-lp .join-features h4{ font-size:20px !important; }
.premium-lp .join-recommendation{ font-size:17px !important; }
.premium-lp .vip-benefits li b{ font-size:20px !important; }
.premium-lp .vip-benefits li small{ font-size:16px !important; }
.premium-lp .contact-lead{ font-size:19px !important; }
.premium-lp .rv-urgency-note{ font-size:14px !important; }
.premium-lp .compare-card p{ font-size:16px !important; }
.premium-lp .mafia-info h3{ font-size:26px !important; }

@media (max-width:800px){
  .premium-lp .section h2,
  .premium-lp .contact-section h2{ font-size:34px !important; }
  .premium-lp .section-intro{ font-size:16px !important; }
  .premium-lp .about-rv-body p{ font-size:17px !important; }
  .premium-lp .stage-band-intro p:last-child{ font-size:26px !important; }
  .premium-lp .overview-grid h2{ font-size:28px !important; }
  .premium-lp .overview-list dd{ font-size:17px !important; }
  .premium-lp .faq-list summary{ font-size:16px !important; }
  .premium-lp .faq-list details p{ font-size:15px !important; }
}

/* ---------- FV サイズアップ (画像/動画エリアを大きく) ---------- */
.premium-lp .hero-visual-only .hero-visual-all,
.hero-visual-only .hero-visual-all{
  width:min(94%, 780px) !important;
}
@media (min-width:1200px){
  .premium-lp .hero-visual-only .hero-visual-all,
  .hero-visual-only .hero-visual-all{
    width:min(90%, 860px) !important;
  }
}
@media (max-width:640px){
  .premium-lp .hero-visual-only .hero-visual-all,
  .hero-visual-only .hero-visual-all{
    width:min(98%, 600px) !important;
  }
}

/* 動画上に黒オーバーレイを敷いて馴染ませる */
.premium-lp .stage-band::after,
.premium-lp .overview-section::after{
  content:'' !important;
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  background:rgba(0,0,0,.5) !important;
  pointer-events:none !important;
  display:block !important;
}
.premium-lp .value-section::after{
  content:'' !important;
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  background:rgba(0,0,0,.5) !important;
  pointer-events:none !important;
  display:block !important;
}

/* ---------- 高特異度で グレー文字を白に強制上書き ---------- */
body.premium-lp .stage-band-item small,
body.premium-lp #venue .overview-list dd,
body.premium-lp #venue .overview-list small,
body.premium-lp #overview .overview-list dd,
body.premium-lp #overview .overview-list small,
body.premium-lp .overview-list dd,
body.premium-lp .overview-list small,
body.premium-lp .faq-list details p,
body.premium-lp .faq-list summary,
body.premium-lp .process-grid p,
body.premium-lp .join-features p,
body.premium-lp .join-note p,
body.premium-lp .join-note li,
body.premium-lp .vip-benefits li small,
body.premium-lp .value-grid article > p:last-child,
body.premium-lp .experience-grid article > p:last-child,
body.premium-lp .contact-lead,
body.premium-lp .footer-inner p,
body.premium-lp .footer-inner small,
body.premium-lp .footer-inner > div,
body.premium-lp .plan-notes,
body.premium-lp .fine-print,
body.premium-lp .stage-band-intro p,
body.premium-lp .reason-content > p{
  color:#ffffff !important;
}

/* ---------- 文字サイズも高特異度で上書き ---------- */
body.premium-lp .stage-band-item small{ font-size:16px !important; line-height:1.75 !important; }
body.premium-lp #venue .overview-list dd,
body.premium-lp #overview .overview-list dd,
body.premium-lp .overview-list dd{ font-size:19px !important; line-height:1.75 !important; }
body.premium-lp #venue .overview-list small,
body.premium-lp #overview .overview-list small,
body.premium-lp .overview-list small{ font-size:16px !important; line-height:1.75 !important; }
body.premium-lp .faq-list summary{ font-size:19px !important; }
body.premium-lp .faq-list details p{ font-size:17px !important; line-height:1.95 !important; }
body.premium-lp .section h2,
body.premium-lp .contact-section h2{ font-size:50px !important; line-height:1.5 !important; }

/* ---------- タイトル系をブロンズ色に統一 ---------- */
body.premium-lp .section h2,
body.premium-lp .section h3,
body.premium-lp .section h4,
body.premium-lp .contact-section h2,
body.premium-lp .stage-band-intro p:last-child,
body.premium-lp .overview-grid h2,
body.premium-lp .faq-grid h2,
body.premium-lp .join-features h4,
body.premium-lp .join-list-label,
body.premium-lp .reason-content h3,
body.premium-lp .value-grid h3,
body.premium-lp .experience-grid h3,
body.premium-lp .compare-card h3,
body.premium-lp .vip-plan-title,
body.premium-lp .mafia-heading h2,
body.premium-lp .mafia-title-en,
body.premium-lp .mafia-title-ja,
body.premium-lp .mafia-info h3,
body.premium-lp .stage-band-item h4,
body.premium-lp .about-rv-logo .about-rv-label{
  color:#ede2c0 !important;
  -webkit-text-fill-color:#ede2c0 !important;
  text-shadow:0 1px 2px rgba(0,0,0,.35), 0 0 24px rgba(237,226,192,.12);
}
/* gold-text スパン強調は少し濃いめの光沢ゴールド */
body.premium-lp .gold-text{
  color:#f2e6c3 !important;
  -webkit-text-fill-color:#f2e6c3 !important;
  text-shadow:0 0 18px rgba(242,230,195,.35);
}

/* ---------- Speakers section: MAFIA + GUESTS を統合 ---------- */
body.premium-lp .speakers-section{
  padding-block:80px !important;
  position:relative !important;
  isolation:isolate !important;
  overflow:hidden !important;
  background-color:#05060a !important;
  background-image:url('./assets/bg-image/compare-bg.v20260923.webp') !important;
  background-position:center center !important;
  background-size:cover !important;
  background-repeat:no-repeat !important;
  background-attachment:scroll !important;
}
body.premium-lp .speakers-section::before{
  content:'' !important;
  position:absolute !important;
  inset:0 !important;
  z-index:0 !important;
  background:rgba(0,0,0,.5) !important;
  pointer-events:none !important;
  display:block !important;
}
body.premium-lp .speakers-section > .container{
  position:relative !important;
  z-index:1 !important;
}
body.premium-lp .speakers-heading{
  text-align:center !important;
  margin-bottom:64px !important;
}

/* 2つのブロック (MAFIA / GUESTS) を明確に区切る "額装" 効果 */
body.premium-lp .speakers-block{
  position:relative !important;
  margin-top:80px !important;
  padding:56px 32px 40px !important;
  border:1px solid rgba(237,226,192,.18) !important;
  border-radius:2px !important;
  background:
    linear-gradient(180deg, rgba(5,6,10,.5), rgba(5,6,10,.28)) !important;
  backdrop-filter:blur(2px) !important;
  -webkit-backdrop-filter:blur(2px) !important;
}
body.premium-lp .speakers-block:first-of-type{
  margin-top:0 !important;
}
/* コーナー装飾 (額縁の四隅を金色ラインで示す) */
body.premium-lp .speakers-block::before,
body.premium-lp .speakers-block::after{
  content:'' !important;
  position:absolute !important;
  width:32px !important;
  height:32px !important;
  border:1px solid rgba(237,226,192,.55) !important;
  pointer-events:none !important;
}
body.premium-lp .speakers-block::before{
  top:-1px !important;
  left:-1px !important;
  border-right:0 !important;
  border-bottom:0 !important;
}
body.premium-lp .speakers-block::after{
  bottom:-1px !important;
  right:-1px !important;
  border-left:0 !important;
  border-top:0 !important;
}

/* サブ見出しに装飾ライン + 中央マーク */
body.premium-lp .speakers-sub-heading{
  text-align:center !important;
  margin-bottom:48px !important;
  padding-bottom:28px !important;
  position:relative !important;
}
body.premium-lp .speakers-sub-heading::after{
  content:'' !important;
  position:absolute !important;
  left:50% !important;
  bottom:0 !important;
  width:64px !important;
  height:1px !important;
  transform:translateX(-50%) !important;
  background:linear-gradient(90deg, transparent, #ede2c0, transparent) !important;
}
body.premium-lp .speakers-sub-heading h3{
  font-family:'Cormorant Garamond','Noto Serif JP','Yu Mincho',serif !important;
  font-size:42px !important;
  font-weight:500 !important;
  letter-spacing:.08em !important;
  color:#ede2c0 !important;
  -webkit-text-fill-color:#ede2c0 !important;
  margin:10px 0 12px !important;
  line-height:1.3 !important;
  text-shadow:0 1px 2px rgba(0,0,0,.4), 0 0 22px rgba(237,226,192,.14) !important;
}
body.premium-lp .speakers-sub-heading .mafia-title-en,
body.premium-lp .speakers-sub-heading .mafia-title-ja{
  font-size:clamp(34px, 4.2vw, 50px) !important;
  color:#ede2c0 !important;
}
body.premium-lp .speakers-sub-eyebrow{
  display:inline-block !important;
  font-family:'Noto Sans JP', sans-serif !important;
  font-size:11px !important;
  font-weight:600 !important;
  letter-spacing:.32em !important;
  color:#c9945c !important;
  margin:0 0 8px !important;
  padding:6px 16px !important;
  border:1px solid rgba(201,148,92,.45) !important;
  border-radius:2px !important;
  background:rgba(0,0,0,.28) !important;
}
body.premium-lp .speakers-block .mafia-lead{
  font-family:'Noto Sans JP', sans-serif !important;
  font-size:14px !important;
  color:#d0cec6 !important;
  margin-top:8px !important;
  letter-spacing:.18em !important;
}

@media (max-width:800px){
  body.premium-lp .speakers-section{ padding-block:56px !important; }
  body.premium-lp .speakers-heading{ margin-bottom:44px !important; }
  body.premium-lp .speakers-block{
    margin-top:56px !important;
    padding:36px 20px 28px !important;
  }
  body.premium-lp .speakers-block::before,
  body.premium-lp .speakers-block::after{ width:22px !important; height:22px !important; }
  body.premium-lp .speakers-sub-heading{ margin-bottom:32px !important; padding-bottom:20px !important; }
  body.premium-lp .speakers-sub-heading h3{ font-size:30px !important; }
}

/* ---------- VIP特典チェックマーク: 円の中を黒に反転 ---------- */
body.premium-lp .vip-benefits .vip-check{
  background:#0a0a0a !important;
  color:#ede2c0 !important;
  border:1px solid rgba(237,226,192,.55) !important;
  box-shadow:0 0 0 1px rgba(0,0,0,.5) inset, 0 2px 4px rgba(0,0,0,.5) !important;
}

/* ---------- ゲスト h3 は白テキストに (黒だった旧指定を撤去) ---------- */
body.premium-lp #guest-title,
body.premium-lp .guest-heading h3#guest-title{
  color:#ede2c0 !important;
  -webkit-text-fill-color:#ede2c0 !important;
}

/* ---------- 東京国際フォーラム: 施設イメージと詳細の余白半減 ---------- */
/* 画像ブロックとリストの間の margin-bottom:56px を半減 */
body.premium-lp #venue.overview-section .overview-grid > div:first-child,
body.premium-lp #overview.overview-section .overview-grid > div:first-child{
  margin-bottom:24px !important;
  gap:12px !important;
}
body.premium-lp .overview-grid{
  gap:16px !important;
  row-gap:16px !important;
}
body.premium-lp #venue .overview-list > div,
body.premium-lp #overview .overview-list > div,
body.premium-lp .overview-list > div{
  padding:14px 4px !important;
}
body.premium-lp .venue-photo{
  margin-top:12px !important;
}
body.premium-lp .venue-photo figcaption{
  padding-top:6px !important;
}
@media (max-width:800px){
  body.premium-lp #venue.overview-section .overview-grid > div:first-child,
  body.premium-lp #overview.overview-section .overview-grid > div:first-child{
    margin-bottom:16px !important;
  }
  body.premium-lp .venue-photo{ margin-top:10px !important; }
  body.premium-lp .overview-list > div{ padding:12px 4px !important; }
}

/* ---------- FV サイズを大幅アップ (インパクト重視) ---------- */
body.premium-lp .hero-visual-only .hero-visual-all{
  width:min(96%, 920px) !important;
  max-width:920px !important;
}
@media (min-width:1200px){
  body.premium-lp .hero-visual-only .hero-visual-all{
    width:min(94%, 1060px) !important;
    max-width:1060px !important;
  }
}
@media (min-width:1600px){
  body.premium-lp .hero-visual-only .hero-visual-all{
    width:min(90%, 1180px) !important;
    max-width:1180px !important;
  }
}
/* ボタンは控えめに (画像優先の演出) */
@media (min-width:801px){
  body.premium-lp .hero-visual-only .hero-actions{
    gap:10px !important;
    margin-top:14px !important;
  }
  body.premium-lp .hero-visual-only .hero-actions > .button{
    min-width:240px !important;
    max-width:300px !important;
    min-height:56px !important;
    font-size:14px !important;
    padding:14px 22px !important;
  }
}
@media (min-width:1200px){
  body.premium-lp .hero-visual-only .hero-actions{
    gap:12px !important;
    margin-top:16px !important;
  }
  body.premium-lp .hero-visual-only .hero-actions > .button{
    min-width:280px !important;
    max-width:340px !important;
    min-height:60px !important;
    font-size:15px !important;
  }
}
@media (max-width:800px){
  body.premium-lp .section h2,
  body.premium-lp .contact-section h2{ font-size:34px !important; }
  body.premium-lp #venue .overview-list dd,
  body.premium-lp .overview-list dd{ font-size:17px !important; }
  body.premium-lp .faq-list summary{ font-size:16px !important; }
  body.premium-lp .faq-list details p{ font-size:15px !important; }
}
.premium-lp .stage-band > .container,
.premium-lp .compare-section > .container,
.premium-lp .value-section > .container,
.premium-lp .overview-section > .container{
  position:relative !important;
  z-index:2 !important;
}
@media (prefers-reduced-motion: reduce){
  .premium-lp .stage-band > .rv-section-bg,
  .premium-lp .compare-section > .rv-section-bg,
  .premium-lp .value-section > .rv-section-bg,
  .premium-lp .overview-section > .rv-section-bg{ display:none !important; }
}

/* ---------- FV 背景動画 (波形パーティクル) ---------- */
.premium-lp .hero-visual-only{
  background:#040509 !important;
  background-image:none !important;
}
.premium-lp .hero-visual-only .hero-bg-wave{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center !important;
  z-index:0 !important;
  pointer-events:none !important;
  opacity:1;
}
.premium-lp .hero-visual-only::before{
  z-index:1 !important;
}
/* スマホ 3ステージ見出しの改行を撤去 */
@media (max-width:640px){
  body.premium-lp #stages .section-heading h2 br{ display:none !important; }
  body.premium-lp #stages .section-heading h2 .nowrap{ white-space:normal !important; }
}

/* スマホ 3ステージ画像を縦3枚並びに (シンプル & 大きく) */
@media (max-width:640px){
  body.premium-lp .stage-media-grid{
    grid-template-columns:1fr !important;
    grid-template-areas:none !important;
    max-width:calc(100% - 16px) !important;
    gap:16px !important;
    margin-inline:auto !important;
  }
  body.premium-lp .stage-media-item,
  body.premium-lp .stage-media-item:nth-child(1),
  body.premium-lp .stage-media-item:nth-child(2),
  body.premium-lp .stage-media-item:nth-child(3){
    grid-area:auto !important;
    width:100% !important;
    justify-self:stretch !important;
  }
}
@media (max-width:400px){
  body.premium-lp .stage-media-grid{
    max-width:calc(100% - 12px) !important;
    gap:12px !important;
  }
}

/* Hero: 画像+ボタン+注記 と 動画 をグループ化してセンター配置 */
html body.premium-lp .hero-visual-only{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:24px !important;
  padding:56px 24px !important;
  min-height:auto !important;
  height:auto !important;
  text-align:center !important;
}
/* スマホ: FV 動画は 100% 表示 (レール際まで) — 横 padding をゼロにして最大幅制限も外す */
@media (max-width:1023px){
  html body.premium-lp .hero-visual-only{
    padding-left:0 !important;
    padding-right:0 !important;
  }
  html body.premium-lp .hero-visual-only .hero-media{
    max-width:none !important;
    width:100% !important;
    max-height:none !important;
    border-radius:0 !important;
    margin:0 !important;
  }
}
html body.premium-lp .hero-visual-only .hero-media{
  position:relative !important;
  inset:auto !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  transform:none !important;
  flex:0 0 auto !important;
  order:1 !important;
  width:100% !important;
  max-width:560px !important;
  aspect-ratio:3 / 4 !important;
  height:auto !important;
  max-height:560px !important;
  margin:0 auto !important;
  background:#04060b !important;
  border-radius:6px !important;
  overflow:hidden !important;
  z-index:2 !important;
  box-shadow:0 10px 32px rgba(0,0,0,.5) !important;
}
html body.premium-lp .hero-visual-only .hero-media video{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  opacity:1 !important;
  mix-blend-mode:normal !important;
  filter:saturate(1.05) contrast(1.08) brightness(.96) !important;
  display:block !important;
}
html body.premium-lp .hero-visual-only .hero-content,
html body.premium-lp .hero-visual-only .hero-content.container{
  position:relative !important;
  flex:0 0 auto !important;
  order:2 !important;
  width:100% !important;
  max-width:560px !important;
  min-height:0 !important;
  margin:0 auto !important;
  padding:0 !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  gap:8px !important;
  z-index:3 !important;
}
html body.premium-lp .hero-visual-only .hero-visual-all,
html body.premium-lp .hero-visual-only .hero-visual,
html body.premium-lp .hero-visual-only .hero-actions,
html body.premium-lp .hero-visual-only .hero-urgency-note{
  margin-left:auto !important;
  margin-right:auto !important;
  width:100% !important;
  max-width:520px !important;
}
/* PC (≥1024px): 横並び (左=画像/ボタン/注記グループ, 右=動画) をセンター配置 */
@media (min-width:1024px){
  html body.premium-lp .hero-visual-only{
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    justify-content:center !important;
    gap:0 !important;
    padding:80px 40px !important;
    min-height:min(88vh, 860px) !important;
  }
  html body.premium-lp .hero-visual-only .hero-media{
    margin-left:-60px !important;
  }
  html body.premium-lp .hero-visual-only .hero-content,
  html body.premium-lp .hero-visual-only .hero-content.container{
    order:1 !important;
    flex:0 0 440px !important;
    width:440px !important;
    max-width:440px !important;
    padding:0 !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    align-self:center !important;
    text-align:center !important;
    gap:8px !important;
  }
  html body.premium-lp .hero-visual-only .hero-media{
    order:2 !important;
    flex:0 0 440px !important;
    width:440px !important;
    max-width:440px !important;
    aspect-ratio:1 / 1 !important;
    max-height:none !important;
    align-self:center !important;
  }
  /* 左カラム内 全要素を必ずセンター寄せ */
  html body.premium-lp .hero-visual-only .hero-content > *,
  html body.premium-lp .hero-visual-only .hero-visual-all,
  html body.premium-lp .hero-visual-only .hero-visual,
  html body.premium-lp .hero-visual-only .hero-actions,
  html body.premium-lp .hero-visual-only .hero-urgency-note,
  html body.premium-lp .hero-visual-only .hero-fee-badge{
    max-width:100% !important;
    margin-left:auto !important;
    margin-right:auto !important;
    align-self:center !important;
    text-align:center !important;
  }
  /* ボタン群も center */
  html body.premium-lp .hero-visual-only .hero-actions{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:6px !important;
  }
  html body.premium-lp .hero-visual-only .hero-actions > *{
    align-self:center !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
}
@media (min-width:1281px){
  html body.premium-lp .hero-visual-only{
    gap:0 !important;
    padding:88px 60px !important;
  }
  html body.premium-lp .hero-visual-only .hero-media{
    margin-left:-80px !important;
    flex-basis:500px !important;
    width:500px !important;
    max-width:500px !important;
  }
  html body.premium-lp .hero-visual-only .hero-content,
  html body.premium-lp .hero-visual-only .hero-content.container{
    flex-basis:500px !important;
    width:500px !important;
    max-width:500px !important;
  }
}
@media (min-width:1500px){
  html body.premium-lp .hero-visual-only{
    gap:0 !important;
  }
  html body.premium-lp .hero-visual-only .hero-media{
    margin-left:-100px !important;
    flex-basis:540px !important;
    width:540px !important;
    max-width:540px !important;
  }
  html body.premium-lp .hero-visual-only .hero-content,
  html body.premium-lp .hero-visual-only .hero-content.container{
    flex-basis:540px !important;
    width:540px !important;
    max-width:540px !important;
  }
}
@media (max-width:640px){
  html body.premium-lp .hero-visual-only{
    padding:48px 20px !important;
    gap:20px !important;
  }
  html body.premium-lp .hero-visual-only .hero-media{
    max-height:520px !important;
  }
}
@media (max-width:480px){
  html body.premium-lp .hero-visual-only{
    padding:40px 18px !important;
  }
  html body.premium-lp .hero-visual-only .hero-media{
    max-height:480px !important;
  }
}

/* FV ボタン直下の注記 (先行申込枠) */
body.premium-lp .hero-visual-only .hero-urgency-note{
  margin:8px auto 0 !important;
  max-width:min(90%, 520px) !important;
  padding:8px 14px !important;
  border:1px dashed rgba(237,226,192,.35) !important;
  border-radius:2px !important;
  background:rgba(20,17,10,.5) !important;
  color:#e0dcc7 !important;
  font-size:12px !important;
  line-height:1.75 !important;
  text-align:left !important;
  letter-spacing:.02em !important;
  font-family:'Noto Sans JP', sans-serif !important;
}
body.premium-lp .hero-visual-only .hero-urgency-note b{
  color:#f2e6c3 !important;
  font-weight:600 !important;
}
@media (max-width:800px){
  body.premium-lp .hero-visual-only .hero-urgency-note{
    font-size:11px !important;
    padding:7px 12px !important;
    max-width:min(94%, 420px) !important;
  }
}

/* Hero content も同じ最大幅にセンター (画像と動画を同じ枠に) */
body.premium-lp .hero-visual-only .hero-content,
body.premium-lp .hero-visual-only .hero-content.container{
  max-width:1200px !important;
  margin-inline:auto !important;
}
@media (min-width:1200px){
  body.premium-lp .hero-visual-only .hero-content,
  body.premium-lp .hero-visual-only .hero-content.container{
    max-width:1300px !important;
  }
}
@media (max-width:800px){
  body.premium-lp .hero-visual-only .hero-content,
  body.premium-lp .hero-visual-only .hero-content.container{
    padding-left:20px !important;
    padding-right:20px !important;
  }
}
@media (max-width:480px){
  body.premium-lp .hero-visual-only .hero-content,
  body.premium-lp .hero-visual-only .hero-content.container{
    padding-left:14px !important;
    padding-right:14px !important;
  }
}

/* 新FV画像の aspect-ratio 上書き (2847/2874) */
body.premium-lp .hero-visual-only .hero-visual-all img,
body.premium-lp .hero-visual-only .hero-visual img{
  aspect-ratio:2913/2896 !important;
}
@media (prefers-reduced-motion: reduce){
  .premium-lp .hero-visual-only .hero-bg-wave{ display:none; }
}


/* ---------- About REAL VALUE 背景動画 ---------- */
/* レザー背景をきっぱり消して動画を見せる */
.premium-lp .about-rv-section,
.about-rv-section{
  position:relative !important;
  isolation:isolate;
  overflow:hidden !important;
  background:#050609 !important;
  background-image:none !important;
}
.premium-lp .about-rv-bg-video,
.about-rv-bg-video{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center !important;
  z-index:0 !important;
  pointer-events:none !important;
  opacity:.85 !important;
  filter:brightness(.85) saturate(1.1);
}
/* 既存の暗いグラデ overlay を弱く */
.premium-lp .about-rv-section::before,
.about-rv-section::before{
  z-index:1 !important;
  background:linear-gradient(180deg,rgba(5,6,9,.25) 0%,rgba(5,6,9,.1) 50%,rgba(5,6,9,.55) 100%) !important;
}
.premium-lp .about-rv-section .container.about-rv-inner,
.about-rv-section .container.about-rv-inner{ position:relative; z-index:2; }
@media (prefers-reduced-motion: reduce){
  .premium-lp .about-rv-bg-video{ display:none; }
}

/* ---------- About REAL VALUE 無限カルーセル (高速・シームレス) ---------- */
/* 「とは」と本文の間隔を詰める */
.premium-lp .about-rv-logo{ margin-bottom:16px !important; }
.premium-lp .about-rv-body{ margin-top:0 !important; }
.premium-lp .about-rv-body p:first-child{ margin-top:0 !important; }

.about-rv-carousel{
  position:relative;
  width:100vw;
  margin:28px calc(50% - 50vw) 8px;
  padding:4px 0;
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg, transparent 0%, black 5%, black 95%, transparent 100%);
  mask-image:linear-gradient(90deg, transparent 0%, black 5%, black 95%, transparent 100%);
}
.about-rv-carousel-track{
  display:flex;
  gap:16px;
  width:max-content;
  animation:rv-about-scroll 31s linear infinite;
  will-change:transform;
  transform:translate3d(0,0,0);
  backface-visibility:hidden;
}
.about-rv-carousel-track img{
  display:block;
  height:clamp(100px, 11vw, 150px);
  width:auto;
  max-width:none;
  aspect-ratio:16 / 9;
  object-fit:cover;
  object-position:center;
  border-radius:5px;
  border:1px solid rgba(188,164,119,.2);
  box-shadow:0 5px 14px rgba(0,0,0,.4);
  flex-shrink:0;
  flex-grow:0;
  background:#0a0b0d;
}
@keyframes rv-about-scroll{
  from{ transform:translate3d(0,0,0); }
  to  { transform:translate3d(-50%,0,0); }
}
@media (max-width: 800px){
  .about-rv-carousel{ margin-top:22px; }
  .about-rv-carousel-track{ gap:10px; animation-duration:26s; }
  .about-rv-carousel-track img{ height:clamp(80px, 17vw, 120px); }
}
@media (max-width: 480px){
  .about-rv-carousel-track{ gap:8px; animation-duration:22s; }
  .about-rv-carousel-track img{ height:clamp(70px, 21vw, 100px); border-radius:4px; }
}
@media (prefers-reduced-motion: reduce){
  .about-rv-carousel-track{ animation:none; }
}

/* ---------- Enhanced reveal (fade + rise) ---------- */
.rv-reveal{
  opacity:0;
  transform:translate3d(0, 26px, 0);
  transition:opacity .9s cubic-bezier(.22,1,.36,1),
             transform 1s cubic-bezier(.22,1,.36,1);
  will-change:opacity, transform;
}
.rv-reveal.is-visible{
  opacity:1;
  transform:none;
}
@media (prefers-reduced-motion: reduce){
  .rv-reveal{ opacity:1; transform:none; transition:none; }
}

/* ---------- 期間限定バッジ (今だけ無料) ---------- */
.rv-limited-badge{
  position:absolute;
  top:14px; left:14px;
  z-index:5;
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 14px 10px 12px;
  background:linear-gradient(135deg, #d4b878 0%, #f2e0b3 48%, #b99659 100%);
  color:#1a1508;
  border:1px solid #efd9a2;
  border-radius:2px;
  box-shadow:0 6px 18px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.4);
  font-family:'Noto Sans JP','Hiragino Kaku Gothic ProN',sans-serif;
  font-size:11px;
  font-weight:700;
  letter-spacing:.14em;
  line-height:1.15;
  white-space:nowrap;
}
.rv-limited-badge::before{
  content:'';
  display:inline-block;
  width:6px; height:6px;
  border-radius:50%;
  background:#a03a2a;
  box-shadow:0 0 0 0 rgba(160,58,42,.6);
  animation:rv-limited-pulse 1.6s ease-out infinite;
}
.rv-limited-badge > small{
  display:inline-block;
  font-family:'Cormorant Garamond','Noto Serif JP',serif;
  font-size:9px;
  font-weight:500;
  letter-spacing:.28em;
  color:#5a4520;
  margin-left:2px;
}
@keyframes rv-limited-pulse{
  0%{ box-shadow:0 0 0 0 rgba(160,58,42,.6); }
  70%{ box-shadow:0 0 0 10px rgba(160,58,42,0); }
  100%{ box-shadow:0 0 0 0 rgba(160,58,42,0); }
}
@media (max-width: 640px){
  .rv-limited-badge{ top:10px; left:10px; padding:8px 12px 8px 10px; font-size:10px; }
  .rv-limited-badge > small{ font-size:8px; }
}
@media (prefers-reduced-motion: reduce){
  .rv-limited-badge::before{ animation:none; }
}

/* ---------- 期間限定ノート (CTA下・overview 用) FV注記と同一デザイン ---------- */
body.premium-lp .rv-urgency-note{
  display:flex !important;
  align-items:flex-start !important;
  gap:8px !important;
  margin:8px auto 0 !important;
  padding:8px 14px !important;
  max-width:min(90%, 520px) !important;
  border:1px dashed rgba(237,226,192,.35) !important;
  border-radius:2px !important;
  background:rgba(20,17,10,.5) !important;
  color:#e0dcc7 !important;
  font-size:12px !important;
  line-height:1.75 !important;
  letter-spacing:.02em !important;
  text-align:left !important;
  font-family:'Noto Sans JP', sans-serif !important;
  font-weight:500 !important;
}
body.premium-lp .rv-urgency-note::before{
  content:none !important;
  display:none !important;
}
body.premium-lp .rv-urgency-note b{
  color:#f2e6c3 !important;
  font-weight:600 !important;
}
@media (max-width:800px){
  body.premium-lp .rv-urgency-note{
    font-size:11px !important;
    padding:7px 12px !important;
    max-width:min(86%, 380px) !important;
  }
}
@media (max-width:640px){
  body.premium-lp .rv-urgency-note{
    font-size:10.5px !important;
    padding:6px 10px !important;
    max-width:min(82%, 320px) !important;
  }
}
@media (max-width:480px){
  body.premium-lp .rv-urgency-note{
    font-size:10px !important;
    padding:6px 9px !important;
    max-width:min(78%, 280px) !important;
  }
}

/* Contact lead 強調行 (どちらも参加費無料) */
body.premium-lp .contact-lead .contact-lead-emph{
  display:inline-block !important;
  margin-top:12px !important;
  color:#f2e6c3 !important;
  font-weight:700 !important;
  letter-spacing:.06em !important;
  font-family:'Noto Sans JP', sans-serif !important;
}

/* 2026-09-24: スマホのメイン画像を動画下端のフェードに重ねる。
   通常120px、縦の短い画面では最大220px引き上げ、参加費無料とCTAを初期画面へ。
   marginで後続のボタン・注記も一緒に上げ、セクション末尾に空白を残さない。 */
@media (max-width:640px){
  html body.premium-lp .hero-visual-only .hero-content,
  html body.premium-lp .hero-visual-only .hero-content.container{
    margin-top:clamp(-220px, calc(100svh - 100vw - 520px), -120px) !important;
  }
}


/* ==========================================================
   2026-09-24 ヘッダーの中間幅対応 + スマホ/タブレットのスクロール軽量化
   ========================================================== */

/* ---------- Header: 1081〜1300px はナビ余白を詰め、CTA が右端で切れないようにする ---------- */
.header .desktop-nav{ flex:0 1 auto; min-width:0; justify-content:center; }
@media (max-width:1300px){
  .premium-lp .desktop-nav a{ padding:10px 13px; }
  .premium-lp .desktop-nav a::after{ left:13px; right:13px; }
}
@media (max-width:1199px){
  .premium-lp .header .brand{ width:145px; }
  .premium-lp .desktop-nav a{ padding:8px 11px; }
  .premium-lp .desktop-nav a::after{ left:11px; right:11px; }
  .header .header-cta-image{ height:40px; max-width:170px; }
}
/* ---------- Header: 1080px 以下はナビが収まらないのでハンバーガー + CTA 画像 ---------- */
@media (max-width:1080px){
  .header .desktop-nav{ display:none !important; }
  .menu-toggle{ display:block; }
  .header .header-cta-image{ display:inline-flex; margin-left:auto; height:40px; max-width:170px; }
  body.premium-lp .header-inner{ gap:16px; }
}
/* 全画面メニューは広い画面では中央の1カラムに収める */
@media (min-width:641px){
  .mobile-menu-overlay{ padding-inline:max(28px, calc(50% - 300px)); }
}

/* ---------- スマホ・タブレットのスクロール軽量化 ---------- */
/* 表示が終わった reveal 要素は合成レイヤーを解放する（GPUメモリ節約） */
.rv-reveal.is-visible{ will-change:auto; }
@media (max-width:900px), (hover:none) and (pointer:coarse){
  /* backdrop-filter はスクロール中に毎フレーム再サンプリングされるため無効化 */
  body.premium-lp .speakers-block{ backdrop-filter:none !important; -webkit-backdrop-filter:none !important; }
  /* 常時 will-change のレイヤー20個以上を解放。表示アニメーション自体は維持 */
  .rv-reveal{ will-change:auto; transition-duration:.6s, .7s; }
  /* 文字グラデーションの背景位置アニメーションは毎フレーム再描画になるため静止 */
  .vip-benefits b{ animation:none !important; background-position:50% 50% !important; }
}

/* ---------- 3ステージ: 「このステージに参加する」リンク撤去後も本文サイズを従来どおり（本文=body継承）に固定 ---------- */
.premium-lp .experience-grid article > p:last-child{ font-size:inherit !important; line-height:2 !important; }


/* ==========================================================
   2026-09-24 12:40 スマホの本文余白: ロゴ帯・カード内枠線に本文が触れないようにする
   ========================================================== */
/* 左右のロゴ帯（14px / 10px）に本文が接しないよう、コンテンツ幅の左右余白を広げる */
@media (max-width:800px){
  body.premium-lp .container{ width:calc(100% - 52px) !important; }
}
@media (max-width:640px){
  body.premium-lp .container{ width:calc(100% - 48px) !important; }
}
@media (max-width:480px){
  body.premium-lp .container{ width:calc(100% - 44px) !important; }
}
@media (max-width:380px){
  body.premium-lp .container{ width:calc(100% - 40px) !important; }
}
/* 01〜03カード: 内側の枠線(inset 8px)に本文が触れないよう左右パディングを確保 */
@media (max-width:960px){
  body.premium-lp #concept .reason-content{ padding-inline:26px !important; }
}
@media (max-width:480px){
  body.premium-lp #concept .reason-content{ padding-inline:22px !important; }
}
/* ABOUT本文: スマホでは左右余白を詰めて本文幅を広げる */
@media (max-width:640px){
  body.premium-lp .about-rv-section .container.about-rv-inner{ width:calc(100% - 52px) !important; }
}
@media (max-width:480px){
  body.premium-lp .about-rv-section .container.about-rv-inner{ width:calc(100% - 46px) !important; }
}

/* ---------- PC FV: 画像上部に余白を追加してヘッダーと離す (2026-09-24) ---------- */
@media (min-width:1024px){
  body.premium-lp .hero-visual-only .hero-visual-all{
    padding-top:40px !important;
  }
}
@media (min-width:1600px){
  body.premium-lp .hero-visual-only .hero-visual-all{
    padding-top:48px !important;
  }
}

/* ---------- FV 背景動画(波形)を暗く: 黒70%相当 (2026-09-24) ---------- */
.premium-lp .hero-visual-only .hero-bg-wave{
  opacity:.4 !important;
}

/* ---------- 注意書き: 「ご案内中。」で改行し2文目は折り返さない (2026-09-24) ---------- */
body.premium-lp .rv-urgency-note{ max-width:min(94%, 560px) !important; }
@media (min-width:601px){
  body.premium-lp .rv-urgency-note .urgency-line2{ white-space:nowrap !important; }
}
/* ハンバーガーメニュー最下部のロゴ */
.mobile-menu-brand img{ height:auto !important; width:200px !important; max-width:64vw !important; }
/* 「。」直後の改行はスマホでも維持 (section-intro の br 非表示より優先) */
.section-intro br.br-keep{ display:inline !important; }

/* ---------- 注意書きの枠: テキスト幅に合わせて縮め、中央配置 (2026-09-24) ---------- */
html body.premium-lp .rv-urgency-note,
html body.premium-lp .hero-visual-only .hero-urgency-note{
  display:inline-flex !important;
  width:max-content !important;
  max-width:min(96%, 560px) !important;
  margin:10px auto 0 !important;
  padding:9px 20px !important;
  justify-content:center !important;
  align-items:center !important;
  text-align:center !important;
}
html body.premium-lp .rv-urgency-note > span{
  display:block !important;
  width:auto !important;
  text-align:center !important;
}
/* センター配置 (親がflexでも確実に中央へ) */
html body.premium-lp .hero-visual-only .hero-urgency-note{ align-self:center !important; }
html body.premium-lp .contact-section .rv-urgency-note{ display:inline-flex !important; }
html body.premium-lp .contact-section .rv-urgency-note-wrap{ text-align:center !important; }
@media (max-width:640px){
  html body.premium-lp .rv-urgency-note,
  html body.premium-lp .hero-visual-only .hero-urgency-note{
    padding:7px 10px !important;
    max-width:min(97%, 400px) !important;
  }
}
@media (max-width:480px){
  html body.premium-lp .hero-visual-only .hero-urgency-note{ font-size:10px !important; }
}

/* 2026-09-27 3 STAGES 見出しの改行: PC=「を、」の後のみ / スマホ=4行（同時進行する/3つのステージを/自由に横断して/お楽しみいただけます） */
.stage-band-intro span{display:inline !important}
.stage-band-intro .sbi-comma{font-style:normal}
.stage-band-intro br.sbi-sp{display:none !important}
.stage-band-intro br.sbi-pc{display:inline !important}
@media(max-width:540px){
  .stage-band-intro br.sbi-sp{display:inline !important}
  .stage-band-intro br.sbi-pc{display:inline !important}
  .stage-band-intro .sbi-comma{display:none}
}

/* 2026-09-28 会場・開催概要リスト: スマホ時はラベル列を詰めて本文の横幅を広げる */
@media(max-width:540px){
  #venue .overview-list>div,
  #overview .overview-list>div{grid-template-columns:76px 1fr !important;gap:10px !important;padding-left:0 !important;padding-right:0 !important}
  #venue .overview-list dd,
  #overview .overview-list dd{width:100% !important;justify-self:stretch !important}
}

/* 2026-09-28 スマホ専用の見出し改行 (<br class="sp-br">)。#concept の「h2 br 全表示」指定より強くする */
html body br.sp-br,html body.premium-lp #concept .section-heading h2 br.sp-br{display:none !important}
@media(max-width:540px){
  html body br.sp-br,html body.premium-lp #concept .section-heading h2 br.sp-br{display:inline !important}
}

/* 2026-09-28 スマホ時「スピーカー／・／登壇者」の行間を詰める */
@media(max-width:540px){
  html body #speakers-title{line-height:1.15 !important}
}

/* 2026-09-28 #stages 見出し: PC=「同じ場所で、」の後で改行 / スマホ=「一日、／同じ場所で、／3つの独立ステージ」 */
html body.premium-lp #stages .section-heading h2 br.sp-br{display:none !important}
html body.premium-lp #stages .section-heading h2 br.pc-br{display:inline !important}
@media(max-width:540px){
  html body.premium-lp #stages .section-heading h2 br.sp-br{display:inline !important}
  html body.premium-lp #stages .section-heading h2 br.pc-br{display:none !important}
}

/* 2026-09-28 開催概要・会場リスト: スマホ時はラベルを上、本文を下に全幅で配置 */
@media(max-width:540px){
  html body #venue .overview-list>div,
  html body #overview .overview-list>div{grid-template-columns:1fr !important;gap:10px !important;padding:18px 0 !important}
  html body #venue .overview-list dt,
  html body #overview .overview-list dt{justify-self:start !important}
  html body #venue .overview-list dd,
  html body #overview .overview-list dd{width:100% !important;justify-self:stretch !important;border-left:0 !important;padding-left:0 !important;margin-left:0 !important}
}

/* 2026-09-28 スマホ時だけ消す文字（改行位置の区切り記号など） */
.sp-hide{font-style:normal}
@media(max-width:540px){
  html body .sp-hide{display:none !important}
}

/* 2026-09-28 参加方法カードの特徴リスト: スマホ時はアイコンを上中央、テキストを下に全幅・中央揃え */
@media(max-width:540px){
  html body #benefit .join-features>li{flex-direction:column !important;align-items:center !important;text-align:center !important;gap:10px !important}
  html body #benefit .join-features>li>div{width:100% !important}
  html body #benefit .join-feature-mark{flex:0 0 auto !important;margin:0 auto !important}
}

/* 2026-09-28 開催概要「主な内容」: 内容ごとに1行、左にゴールドのチェックボックス（PC・スマホ共通） */
#overview .program-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
#overview .program-list li{position:relative;padding-left:28px;line-height:1.6}
#overview .program-list li::before{content:'';position:absolute;left:0;top:.2em;width:18px;height:18px;box-sizing:border-box;border:1px solid var(--gold,#c9a55b);border-radius:3px;background:rgba(201,165,91,.12) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23e6cea0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E") center/13px no-repeat}

/* 2026-09-28 ハンバーガーメニュー最下部のロゴを約15%縮小（旧 min(360px,84vw) → min(306px,71.4vw)） */
html body.premium-lp #mobile-menu-overlay .mobile-menu-brand img{width:min(306px,71.4vw) !important;max-width:none !important}

/* 2026-09-28 スマホ表示のヘッダー左上ロゴを少し小さく (145px→124px) */
@media (max-width:540px){
  html body.premium-lp .header .brand{ width:124px; }
}

/* 2026-10-01 PC 専用の手動改行ユーティリティ (<br class="pc-br">)。
   sp-br と対になる汎用版。スマホ(540px以下)では無効化して自然折り返しに戻す。
   #stages 見出し用の個別指定は上に既存あり（同じ挙動なので併存して問題なし）。 */
html body br.pc-br{display:inline !important}
@media(max-width:540px){
  html body br.pc-br{display:none !important}
}

/* 2026-10-01 協賛・出展ボタン ----------------------------------------- */

/* 2026-10-01 FAQ 本文内リンク（協賛・出展のご案内へ） */
.faq-list details p a.faq-link,
a.faq-link{
  color:#6fb6ff;
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-thickness:1px;
  transition:color .15s ease;
}
a.faq-link:hover{ color:#a5d3ff; }
a.faq-link:focus-visible{ outline:2px solid #6fb6ff; outline-offset:3px; }

/* 2026-10-01 ヘッダーCTA: 画像をやめてコードベースのボタンに変更
   ・協賛 = 黒グラデ + シルバー枠
   ・参加お申込み = ゴールド系（既存 .button-gold のグラデを踏襲）
   header-inner は justify-content:space-between なので、裸で並べるとボタン間の隙間まで
   画面幅に応じて広がってしまう（1440px で 41px まで開いた）。グループ化して 10px 固定。 */
/* grid + grid-auto-columns:1fr で2つのボタンを「広い方」に揃えて等幅にする
   (flex だと中身の文字数差でそのまま幅が変わってしまう) */
.header .header-cta-group{ display:grid; grid-auto-flow:column; grid-auto-columns:1fr;
  align-items:center; gap:10px; flex-shrink:0; }
@media(max-width:800px){ .header .header-cta-group{ display:none !important; } }

.header .header-btn{
  display:inline-flex; align-items:center; justify-content:center;
  height:44px; padding:0 18px;
  border-radius:3px; border:1px solid transparent;
  font-family:'Noto Serif JP','Yu Mincho','Hiragino Mincho ProN',serif;
  font-size:13px; font-weight:700; line-height:1; letter-spacing:.04em;
  white-space:nowrap;
  transition:transform .12s ease, box-shadow .12s ease, filter .12s ease;
}
/* hover は他のCTAと同じく「沈む」方向に揃える */
.header .header-btn:hover{ transform:translateY(2px) scale(.985); box-shadow:0 3px 8px #0009,inset 0 2px 4px #0007; filter:brightness(.95); }
.header .header-btn:active{ transform:translateY(3px) scale(.975); box-shadow:0 1px 4px #000c,inset 0 3px 6px #0009; filter:brightness(.88); }
.header .header-btn:focus-visible{ outline:2px solid #e0c793; outline-offset:3px; }

/* 協賛・出展: 黒グラデ + シルバー枠 */
.header .header-btn-collab{
  color:#eceef0;
  background:linear-gradient(160deg,#303134 0%,#0c0d0f 52%,#1d1e21 100%);
  border-color:#b9bbbe;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3), inset 0 -1px 0 rgba(255,255,255,.08), 0 4px 14px rgba(0,0,0,.45);
  text-shadow:0 1px 2px rgba(0,0,0,.6);
}
/* 参加お申込み: ゴールド */
.header .header-btn-apply{
  color:#17150e;
  background:linear-gradient(110deg,#bfa369,#eddaac 48%,#c7ab6e);
  border-color:#e0c793;
  box-shadow:inset 0 1px #fff6, 0 4px 14px rgba(0,0,0,.45);
}

@media(max-width:1199px){
  .header .header-btn{ height:40px; padding:0 15px; font-size:12px; }
}
@media(max-width:1080px){
  .header .header-cta-group{ margin-left:auto; }
}

/* 最終CTA「ご参加お申込みは、こちらから」: 3つ横並び */
.apply-buttons{ align-items:center; }

/* FV / 最終CTA の協賛ボタン。
   gold/silver は <a> の background に画像を敷く方式なので、こちらも同じ方式に統一する。
   （<img> 子要素だと .button の padding:14px 22px が効いて画像が一回り小さくなる） */
html body.premium-lp .hero-actions > .button.button-collab-img,
html body.premium-lp .apply-buttons > .button.button-collab-img{
  background:url('./assets/buttons/button-collab.v20261014.webp') center/100% 100% no-repeat !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:0 6px 18px #0007,0 2px 4px #0005 !important;
  aspect-ratio:2955/711 !important;
  height:auto !important;
  min-height:0 !important;
  padding:0 !important;
  overflow:hidden;
  transition:transform .12s ease,box-shadow .18s ease,filter .2s ease !important;
}
/* ラベルは画像に含まれるので非表示（読み上げは <a> の aria-label が担当） */
html body.premium-lp .button.button-collab-img > *{ display:none !important; }

/* hover / active: gold・silver と同じ「沈む」挙動に揃える */
html body.premium-lp .hero-actions > .button.button-collab-img:hover,
html body.premium-lp .apply-buttons > .button.button-collab-img:hover{
  transform:translateY(2px) scale(.985) !important;
  box-shadow:0 3px 8px #0009,inset 0 2px 4px #0007 !important;
  filter:brightness(.95) !important;
}
html body.premium-lp .hero-actions > .button.button-collab-img:active,
html body.premium-lp .apply-buttons > .button.button-collab-img:active{
  transform:translateY(3px) scale(.975) !important;
  box-shadow:0 1px 4px #000c,inset 0 3px 6px #0009 !important;
  filter:brightness(.88) !important;
}

/* 2026-10-01 FAQ 本文内リンク（協賛・出展のご案内へ） */
.faq-list details p a.faq-link,
a.faq-link{
  color:#6fb6ff;
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-thickness:1px;
  transition:color .15s ease;
}
a.faq-link:hover{ color:#a5d3ff; }
a.faq-link:focus-visible{ outline:2px solid #6fb6ff; outline-offset:3px; }

/* 2026-10-01 ヘッダーCTA: 画像をやめてコードベースのボタンに変更
   ・協賛 = 黒グラデ + シルバー枠
   ・参加お申込み = ゴールド系（既存 .button-gold のグラデを踏襲）
   header-inner は justify-content:space-between なので、裸で並べるとボタン間の隙間まで
   画面幅に応じて広がってしまう（1440px で 41px まで開いた）。グループ化して 10px 固定。 */
/* grid + grid-auto-columns:1fr で2つのボタンを「広い方」に揃えて等幅にする
   (flex だと中身の文字数差でそのまま幅が変わってしまう) */
.header .header-cta-group{ display:grid; grid-auto-flow:column; grid-auto-columns:1fr;
  align-items:center; gap:10px; flex-shrink:0; }
@media(max-width:800px){ .header .header-cta-group{ display:none !important; } }

.header .header-btn{
  display:inline-flex; align-items:center; justify-content:center;
  height:44px; padding:0 18px;
  border-radius:3px; border:1px solid transparent;
  font-family:'Noto Serif JP','Yu Mincho','Hiragino Mincho ProN',serif;
  font-size:13px; font-weight:700; line-height:1; letter-spacing:.04em;
  white-space:nowrap;
  transition:transform .12s ease, box-shadow .12s ease, filter .12s ease;
}
/* hover は他のCTAと同じく「沈む」方向に揃える */
.header .header-btn:hover{ transform:translateY(2px) scale(.985); box-shadow:0 3px 8px #0009,inset 0 2px 4px #0007; filter:brightness(.95); }
.header .header-btn:active{ transform:translateY(3px) scale(.975); box-shadow:0 1px 4px #000c,inset 0 3px 6px #0009; filter:brightness(.88); }
.header .header-btn:focus-visible{ outline:2px solid #e0c793; outline-offset:3px; }

/* 協賛・出展: 黒グラデ + シルバー枠 */
.header .header-btn-collab{
  color:#eceef0;
  background:linear-gradient(160deg,#303134 0%,#0c0d0f 52%,#1d1e21 100%);
  border-color:#b9bbbe;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3), inset 0 -1px 0 rgba(255,255,255,.08), 0 4px 14px rgba(0,0,0,.45);
  text-shadow:0 1px 2px rgba(0,0,0,.6);
}
/* 参加お申込み: ゴールド */
.header .header-btn-apply{
  color:#17150e;
  background:linear-gradient(110deg,#bfa369,#eddaac 48%,#c7ab6e);
  border-color:#e0c793;
  box-shadow:inset 0 1px #fff6, 0 4px 14px rgba(0,0,0,.45);
}

@media(max-width:1199px){
  .header .header-btn{ height:40px; padding:0 15px; font-size:12px; }
}
@media(max-width:1080px){
  .header .header-cta-group{ margin-left:auto; }
}


/* #faq .faq-list details p は 32px + 1fr の grid。リンクを素の text node と並べると
   <a> 自体が別のグリッドアイテムになり左カラムへ落ちて縦組みになるため、
   本文はまとめて1アイテム(span)に入れる。 */
#faq .faq-list details p .faq-answer-body{ display:block; }

/* 2026-10-01 協賛・出展ボタン（コードベース版）: ヘッダーの header-btn-collab と同配色。
   .button を継承しているので寸法・配置は gold/silver と自動で揃う。 */
.button.button-collab{
  color:#eceef0;
  background:linear-gradient(160deg,#303134 0%,#0c0d0f 52%,#1d1e21 100%);
  border-color:#b9bbbe;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3), inset 0 -1px 0 rgba(255,255,255,.08), 0 4px 14px rgba(0,0,0,.45);
  text-shadow:0 1px 2px rgba(0,0,0,.6);
}
.button.button-collab:hover{ filter:brightness(1.12); }

/* 協賛ボタン(画像)の寸法: gold/silver 専用に書かれている2本のルール
   （.premium-lp …>.button.button-gold/.button-silver 系）には .button-collab-img が
   引っかからないので、同じ値をこちらにも当てて完全に一致させる。
   実測した gold/silver の max-width: ~659px=420 / 660-819px=460 / 820-1199px=300 / 1200px~=340
   （640px 以下は width:min(94%,420px) で左右に余白が入る）。最終CTA側は常に 360px。*/
html body.premium-lp .hero-actions > .button.button-collab-img{
  width:100% !important; max-width:420px !important;
}
@media (max-width:640px){
  html body.premium-lp .hero-actions > .button.button-collab-img{
    width:min(94%,420px) !important; max-width:420px !important;
  }
}
@media (min-width:660px){
  html body.premium-lp .hero-actions > .button.button-collab-img{ max-width:460px !important; }
}
@media (min-width:820px){
  html body.premium-lp .hero-actions > .button.button-collab-img{ max-width:300px !important; }
}
@media (min-width:1200px){
  html body.premium-lp .hero-actions > .button.button-collab-img{ max-width:340px !important; }
}
html body.premium-lp .apply-buttons > .button.button-collab-img{
  width:100% !important; max-width:360px !important;
}

/* ハンバーガーの協賛ボタンも hover で沈ませる */
html body.premium-lp .mobile-menu-cta .button.button-collab:hover{
  transform:translateY(2px) scale(.985);
  box-shadow:0 3px 8px #0009,inset 0 2px 4px #0007;
  filter:brightness(.95);
}

/* 2026-10-01 CTAボタンと注意書き（参加費無料のご案内）の間に余白を足す。
   既定は margin-top:10px で、FV=18px / 最終CTA=10px しか離れていなかった。
   FV は下に 40px(SP) ほどしか余らないので、スマホは控えめに。 */
/* FV側は `html body.premium-lp .hero-visual-only .hero-urgency-note{margin:10px auto 0!important}`
   が効いているので、セレクタを1段深くして上書きする */
html body.premium-lp .hero-visual-only .hero-content .hero-urgency-note{ margin-top:20px !important; }
body.premium-lp .contact-inner .rv-urgency-note{ margin-top:28px !important; }
@media (max-width:640px){
  html body.premium-lp .hero-visual-only .hero-content .hero-urgency-note{ margin-top:16px !important; }
  body.premium-lp .contact-inner .rv-urgency-note{ margin-top:22px !important; }
}

/* MAFIA 氏名：少し小さくし、「加藤公一レオ」「トモハッピー」等の長い名前でも折り返さず1行に収める
   （折り返すとカードごとに高さがズレるため）。上の 26px !important を画面幅ごとに上書き */
.premium-lp .mafia-info h3{font-size:23px !important;white-space:nowrap;letter-spacing:.06em !important}
@media (max-width:1200px){.premium-lp .mafia-info h3{font-size:20px !important}}
@media (max-width:700px){.premium-lp .mafia-info h3{font-size:clamp(14px,4.3vw,19px) !important;letter-spacing:.02em !important}}
@media (max-width:360px){.premium-lp .mafia-info h3{font-size:14px !important;letter-spacing:0 !important}}

/* VIP見出し「VIP先行エントリー」がスマホで「ー」だけ2行目に落ちるのを防ぐ */
@media(max-width:540px){
  html body.premium-lp #vip-plan .section-heading h2{white-space:nowrap !important;font-size:clamp(24px,7.6vw,32px) !important;letter-spacing:.02em !important}
}
