/* ============================================================
   夜恋 大合コン LP — フルHTML再現 / Figma `LP`(15:52) 準拠
   デザインシステムは privacy/tokusho と共通（navy + neon）
   ============================================================ */
:root{
  --navy:#050c1f;
  --navy2:#0a1530;
  --neon-pink:#ff2d78;
  --neon-cyan:#00f5ff;
  --neon-yellow:#ffe600;
  --text:#e8f0ff;
  --muted:#6a7fa8;
  --border:rgba(0,245,255,0.12);
  --panel:rgba(0,245,255,0.04);
  --max:480px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:'Noto Sans JP',sans-serif;
  font-weight:400;
  color:var(--text);
  line-height:1.8;
  background:var(--navy);
  overflow-x:hidden;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}

.side-banner{
  display:none;
}

/* PC: 480px列の外側に夜の水族館＋ネオングロー背景を敷く */
@media (min-width:768px){
  body{
    background:
      radial-gradient(ellipse 600px 500px at 12% 10%, rgba(255,45,120,0.10) 0%, transparent 70%),
      radial-gradient(ellipse 600px 500px at 88% 80%, rgba(0,245,255,0.10) 0%, transparent 70%),
      linear-gradient(180deg,#02060f 0%, #050c1f 50%, #02060f 100%) fixed;
  }
  #container{
    z-index:5;
  }
  .side-banner--left,
  .side-banner--right{
    display:block;
    position:fixed;
    top:0;
    width:calc((100vw - var(--max)) / 2);
    height:100vh;
    z-index:1;
    overflow:hidden;
    pointer-events:none;
  }
  .side-banner--left{
    left:0;
  }
  .side-banner--right{
    right:0;
    pointer-events:auto;
  }
  .side-banner--left img,
  .side-banner--right img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    filter:brightness(.62);
  }
  /* フェード効果で背景に美しく馴染ませる */
  .side-banner--left::after,
  .side-banner--right::after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
  }
  .side-banner--left::after{
    background:
      linear-gradient(to right, transparent 70%, var(--navy) 100%),
      linear-gradient(to bottom, var(--navy) 0%, transparent 15%, transparent 85%, var(--navy) 100%);
  }
  .side-banner--right::after{
    background:
      linear-gradient(to left, transparent 70%, var(--navy) 100%),
      linear-gradient(to bottom, var(--navy) 0%, transparent 15%, transparent 85%, var(--navy) 100%);
  }
  .side-menu{
    position:absolute;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%);
    display:flex;
    flex-direction:column;
    align-items:center;
    width:70%;
    max-width:240px;
    z-index:2;
  }
  .side-menu__item{
    display:flex;
    flex-direction:column;
    align-items:center;
    width:100%;
    text-align:center;
    font-family:'Cormorant Garamond','Noto Serif JP',serif;
    font-weight:500;
    font-size:clamp(16px, 1.8vw, 26px);
    color:#fff;
    padding:clamp(8px, 1.4vh, 16px) 0;
    text-shadow:0 0 10px rgba(19,159,217,0.65), 0 0 20px rgba(19,159,217,0.45);
    transition:transform 0.25s ease, text-shadow 0.25s ease, color 0.25s ease;
    position:relative;
  }
  .side-menu__item::after{
    content:"";
    position:absolute;
    bottom:0;
    left:50%;
    transform:translateX(-50%);
    width:60px;
    height:1px;
    background:rgba(255,255,255,0.85);
    box-shadow:0 0 6px rgba(19,159,217,0.5);
    transition:transform 0.25s ease, background 0.25s ease;
  }
  .side-menu__item:last-child::after{
    display:none;
  }
  .side-menu__item:hover{
    transform:scale(1.1);
    color:#fff;
    text-shadow:0 0 14px #139FD9, 0 0 28px rgba(19,159,217,0.85);
  }
  .side-menu__item:hover::after{
    transform:translateX(-50%) scaleX(1.3);
    background:#fff;
  }
}

#container{
  max-width:var(--max);
  width:100%;
  margin:0 auto;
  background:var(--navy);
  position:relative;
  overflow:hidden;
  box-shadow:0 0 60px rgba(0,0,0,.6), 0 0 120px rgba(0,245,255,.06);
}

/* ===== 共通: セクション・見出し ===== */
.sec{position:relative;padding:54px 22px}
.sec:not(.fv){background:#1A2549}
.sec-inner{position:relative;z-index:2}
.en-head{
  font-family:'Noto Serif JP',serif;
  font-weight:600;
  font-size:34px;
  letter-spacing:.04em;
  text-align:center;
  color:#fff;
  margin-bottom:8px;
  text-shadow:0 0 18px rgba(0,245,255,.45),0 0 36px rgba(0,245,255,.2);
}
.en-head.pink{text-shadow:0 0 18px rgba(255,45,120,.5),0 0 36px rgba(255,45,120,.25)}
.en-head::after{
  content:attr(data-ja);
  display:block;
  font-family:'Noto Sans JP',sans-serif;
  font-weight:400;font-size:13px;letter-spacing:.3em;
  color:var(--neon-cyan);text-shadow:none;margin-top:6px;
}
.lead{font-family:'Noto Serif JP',serif;text-align:center;line-height:1.9}
/* Guest以降: セクションライン↔タイトル↔下要素の余白をイベント概要に合わせて広げる */
.guest .en-head,
.price .en-head,
.faq .en-head,
.contact .en-head{margin:24px 0 44px}

/* ===== ネオンボタン ===== */
.btn{
  position:relative;display:flex;align-items:center;justify-content:center;gap:10px;
  width:100%;max-width:340px;margin:0 auto;
  padding:18px 22px;border-radius:999px;
  font-size:20px;font-weight:700;color:#fff;letter-spacing:.06em;
  overflow:hidden;cursor:pointer;
  animation:pulse 1.9s ease-in-out infinite;
}
.btn .arrow{position:absolute;right:14px;top:50%;transform:translateY(-50%);
  width:30px;height:30px;border-radius:50%;background:#fff;
  display:grid;place-items:center;color:#3a86ff}
.btn .arrow::before{content:"";width:9px;height:9px;
  border-top:2.5px solid currentColor;border-right:2.5px solid currentColor;
  transform:rotate(45deg);margin-left:-3px}
.btn::before{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.55),transparent);
  animation:shine 2.6s infinite;pointer-events:none}
.btn-ticket{background:linear-gradient(95deg,#37d2ff 0%,#3a86ff 52%,#8b5cf6 100%);
  box-shadow:0 0 22px rgba(58,134,255,.45),0 8px 26px rgba(120,90,255,.4)}
.btn-ticket .arrow{color:#3a86ff}
.btn-line{background:linear-gradient(180deg,#1bb40a,#149c08);
  box-shadow:0 0 22px rgba(20,156,8,.45),0 8px 24px rgba(20,156,8,.35)}
.btn-line .arrow{color:#149c08}
/* LINEボタン上端にまたがる「最新情報をGET!!」バッジ
   ※バッジは .btn の overflow:hidden に隠れないよう、ボタンの外側(.line-cta)に置く */
.line-cta{position:relative;width:100%;max-width:340px;margin:0 auto;display:flex}
.line-cta .btn-line{margin-top:15px}
.line-badge{position:absolute;top:0;left:50%;transform:translateX(-50%);
  background:#fff;color:#149c08;white-space:nowrap;
  font-size:14px;font-weight:900;letter-spacing:.02em;line-height:1;
  padding:7px 18px;border-radius:999px;
  box-shadow:0 3px 8px rgba(0,0,0,.18);z-index:2}

/* PC: 左エリア(bg-pc-left)の下部にCTAを重ねて配置
   左エリアが十分広い 1000px 以上で表示。中央エリアはチケットのみ残す */
.side-cta{display:none}
@media (min-width:1000px){
  .side-cta{
    position:absolute;left:0;bottom:clamp(28px,7vh,72px);width:100%;
    padding:0 clamp(18px,3vw,44px);
    display:flex;flex-direction:column;align-items:center;gap:20px;
    z-index:3;pointer-events:auto;
  }
  .side-cta .btn{font-size:clamp(15px,1.5vw,20px)}
  /* 中央スマホエリアでは LINE を隠し「チケットを購入」だけ残す */
  #container .fv__cta .line-cta{display:none}
}
.btn-ghost{background:rgba(0,245,255,.06);border:1px solid rgba(0,245,255,.4);
  box-shadow:0 0 18px rgba(0,245,255,.2);animation:none;font-size:18px}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.03)}}
@keyframes shine{0%{left:-60%;opacity:0}12%{opacity:1}45%{left:120%;opacity:1}60%{opacity:0}100%{left:120%;opacity:0}}

/* ===== ヘッダー（ハンバーガー） ===== */
.site-header{position:fixed;top:0;left:50%;transform:translateX(-50%);width:100%;max-width:var(--max);z-index:60;display:flex;justify-content:flex-end;padding:18px 20px;pointer-events:none}
.site-header .nav-toggle{pointer-events:auto}
.nav-toggle{width:42px;height:34px;background:none;border:0;cursor:pointer;display:flex;flex-direction:column;justify-content:center;gap:7px;z-index:40}
.nav-toggle span{
  display:block;
  height:2px;
  width:30px;
  margin-left:auto;
  background:#fff;
  border-radius:2px;
  transition:.3s;
  box-shadow:
    0 0 3px #fff,
    0 0 8px #139FD9,
    0 0 16px #139FD9,
    0 0 24px rgba(19, 159, 217, 0.8),
    0 0 35px rgba(19, 159, 217, 0.5);
}
.nav-toggle:hover span{
  box-shadow:
    0 0 4px #fff,
    0 0 12px #139FD9,
    0 0 24px #139FD9,
    0 0 35px rgba(19, 159, 217, 0.9),
    0 0 50px rgba(19, 159, 217, 0.7);
}
.nav-toggle.is-open span:nth-child(1){transform:translateY(9px) rotate(45deg)}
.nav-toggle.is-open span:nth-child(2){opacity:0}
.nav-toggle.is-open span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}
.nav-menu{
  position:fixed;
  inset:0;
  max-width:var(--max);
  margin:0 auto;
  background:transparent;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding:0;
  opacity:0;
  visibility:hidden;
  transition:opacity 0.4s ease, visibility 0.4s ease;
  z-index:55;
}
.nav-menu.is-open{
  opacity:1;
  visibility:visible;
}
.nav-menu__card{
  position:relative;
  width:100%;
  max-width:none;
  background:rgba(34,34,40,0.82);
  border:none;
  border-radius:0 0 8px 8px;
  box-shadow:0 10px 30px rgba(0,0,0,0.45);
  padding:64px 16px 42px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:22px;
  transform:translateY(-100%);
  transition:transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
.nav-menu.is-open .nav-menu__card{
  transform:translateY(0);
}
.nav-menu__row{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  width:100%;
}
.nav-menu__row a{
  font-family:'Cormorant Garamond','Noto Serif JP',serif;
  font-weight:500;
  font-size:24px;
  color:#fff;
  letter-spacing:.04em;
  text-shadow:0 0 10px #139FD9, 0 0 20px rgba(19, 159, 217, 0.5);
  transition:transform 0.25s ease, text-shadow 0.25s ease;
  display:inline-block;
}
.nav-menu__row a:hover{
  transform:scale(1.12);
  text-shadow:0 0 16px #139FD9, 0 0 32px rgba(19, 159, 217, 0.9);
}
.nav-menu__row .sep{
  color:rgba(19, 159, 217, 0.75);
  font-weight:300;
  font-size:18px;
  text-shadow:0 0 6px rgba(19, 159, 217, 0.3);
}
/* ===== 01 FV ===== */
.fv{padding:0;min-height:100vh;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center}
.fv__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.fv__scrim{position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(5,12,31,.35) 0%,rgba(5,12,31,.1) 35%,rgba(5,12,31,.5) 75%,rgba(5,12,31,.92) 100%)}
.fv__inner{position:relative;z-index:2;width:100%;padding:120px 22px 40px;display:flex;flex-direction:column;align-items:center;gap:26px;flex:1;justify-content:flex-start}
.fv__badge{position:absolute;top:54px;right:10px;width:min(50%,205px);height:auto;z-index:3;transform:rotate(-3deg);filter:drop-shadow(0 0 10px rgba(255,45,120,.5))}
.fv__logo{width:100%;max-width:480px;filter:drop-shadow(0 0 16px rgba(0,245,255,.4))}
.fv__date{font-family:'Cormorant Garamond','Noto Serif JP',serif;color:#fff;line-height:1;margin-top:-24px;text-shadow:0 0 10px #fff,0 0 20px #139FD9,0 0 38px rgba(19,159,217,.75)}
.fv__date .d-row{display:flex;align-items:baseline;justify-content:center;gap:10px}
.fv__date .yyyy{font-size:24px;letter-spacing:.08em;opacity:.92}
.fv__date .mmdd{font-size:74px;font-weight:500;text-shadow:0 0 14px #fff,0 0 28px #139FD9,0 0 52px #139FD9,0 0 80px rgba(19,159,217,.7)}
.fv__date .dow{font-size:15px;letter-spacing:.12em;opacity:.92}
.fv__date .time{font-size:30px;letter-spacing:.06em;margin-top:4px}
.fv__meta{display:flex;flex-direction:column;gap:6px;line-height:1.35;margin-top:14px;margin-bottom:18px}
.fv__meta dt{font-size:13px;letter-spacing:.2em;color:#fff;text-shadow:0 0 8px #fff,0 0 18px rgba(19,159,217,.85)}
.fv__meta dd{font-size:21px;font-weight:500;color:#fff;text-shadow:0 0 10px #fff,0 0 22px #139FD9,0 0 40px rgba(19,159,217,.7)}
.fv__cta{width:100%;padding-bottom:8px;margin-top:16px;display:flex;flex-direction:column;align-items:center;gap:20px}

/* ===== FV 登場アニメーション（背景→ロゴ→バッジ→日付→開催情報→CTA の順に出現） ===== */
@keyframes fvFade{from{opacity:0}to{opacity:1}}
@keyframes fvKen{from{transform:scale(1.18)}to{transform:scale(1)}}
@keyframes fvUp{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}
@keyframes fvLogoIn{0%{opacity:0;transform:translateY(24px) scale(.92);filter:drop-shadow(0 0 0 rgba(0,245,255,0))}
  60%{opacity:1}
  100%{opacity:1;transform:translateY(0) scale(1);filter:drop-shadow(0 0 16px rgba(0,245,255,.4))}}
@keyframes fvBadgePop{0%{opacity:0;transform:scale(.4) rotate(-18deg)}
  70%{opacity:1;transform:scale(1.12) rotate(3deg)}
  100%{opacity:1;transform:scale(1) rotate(-3deg)}}

.fv__bg{animation:fvFade 1.8s ease both, fvKen 20s ease-out both}
.fv__scrim{opacity:0;animation:fvFade 1.8s ease .1s both}
.fv__logo{opacity:0;animation:fvLogoIn 1.1s cubic-bezier(.22,1,.36,1) .35s both}
.fv__badge{animation:fvBadgePop .85s cubic-bezier(.34,1.56,.64,1) 1.15s both}
.fv__date{opacity:0;animation:fvUp .9s cubic-bezier(.22,1,.36,1) .8s both}
.fv__meta{opacity:0;animation:fvUp .9s cubic-bezier(.22,1,.36,1) 1.05s both}
.fv__cta{opacity:0;animation:fvUp .9s cubic-bezier(.22,1,.36,1) 1.35s both}

@media (prefers-reduced-motion:reduce){
  .fv__bg,.fv__scrim,.fv__logo,.fv__date,.fv__meta,.fv__cta{animation:none;opacity:1;transform:none}
  .fv__badge{animation:none;opacity:1;transform:rotate(-3deg)}
}

/* ===== 02 キャッチ ===== */
.catch{position:relative;text-align:center;padding-top:64px;padding-bottom:154px}
.catch h2{font-family:'Noto Serif JP',serif;font-weight:500;font-size:36px;line-height:1.55;margin-bottom:30px;
  color:#eaf8ff;text-shadow:0 0 10px #fff,0 0 22px #139FD9,0 0 42px rgba(19,159,217,.7)}
.catch h2 .q{display:inline-block;margin-top:10px;font-size:1.1em;white-space:nowrap;
  color:#eaf8ff;text-shadow:0 0 12px #fff,0 0 26px #139FD9,0 0 50px rgba(19,159,217,.8)}
.catch p{font-family:'Noto Serif JP',serif;font-size:20px;line-height:2;letter-spacing:.1em;
  color:#eaf8ff;text-shadow:0 0 8px #fff,0 0 18px #139FD9,0 0 36px rgba(19,159,217,.75),0 0 60px rgba(19,159,217,.45)}
.catch-line{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);
  width:2px;height:84px;border-radius:2px;transform-origin:top center;
  background:repeating-linear-gradient(to bottom,rgba(190,235,255,.9) 0 2px,transparent 2px 7px)}

/* ===== catch / subband スクロール出現アニメ ===== */
.catch h2[data-reveal],
.catch p[data-reveal],
.subband .ja[data-reveal],
.subband .em[data-reveal]{opacity:0;transform:translateY(28px)}
.catch h2.is-revealed,
.catch p.is-revealed,
.subband .ja.is-revealed,
.subband .em.is-revealed{animation:reveal-up .9s cubic-bezier(.22,1,.36,1) forwards}
.catch p.is-revealed{animation-delay:.18s}
.subband .em.is-revealed{animation-delay:.15s}
@keyframes reveal-up{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
/* 「忘れてませんか？」は一拍遅れて出す */
.catch h2.is-revealed .q{animation:reveal-up .8s cubic-bezier(.22,1,.36,1) .35s both}
/* 縦点線: 上から下へスーッと伸びる */
.catch-line[data-reveal]{opacity:0;transform:translateX(-50%) scaleY(0)}
.catch-line.is-revealed{animation:catch-line-draw .9s ease .4s forwards}
@keyframes catch-line-draw{from{opacity:0;transform:translateX(-50%) scaleY(0)}
  to{opacity:1;transform:translateX(-50%) scaleY(1)}}

@media (prefers-reduced-motion:reduce){
  .catch h2,.catch p,.catch h2 .q,
  .subband .ja,.subband .em{opacity:1;transform:none;animation:none}
  .catch-line{opacity:1;transform:translateX(-50%) scaleY(1);animation:none}
}
.subband{text-align:center;padding:30px 22px}
.subband .ja,
.subband .em{display:table;margin:0 auto;white-space:nowrap;
  font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:clamp(21px,5.7vw,26px);color:#fff;
  letter-spacing:.32em;padding-bottom:10px;
  border-bottom:1px solid rgba(255,255,255,.6)}
.subband .em{margin-top:20px}
/* 部分グラデーション文字（夜水族館／大規模恋活） */
.subband .grad{
  display:inline-block;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent}
/* 夜水族館: ネオン管がチカチカ点滅 */
.subband .grad-blue{
  background-image:linear-gradient(to right,#B9F1FF,#64E4FF);
  animation:neon-flicker 3.2s linear infinite}
/* 大規模恋活: 心臓がドキドキ脈打つ */
.subband .grad-pink{
  background-image:linear-gradient(to right,#FDCEFF,#FF1AB7);
  transform-origin:center;
  animation:heartbeat 2.4s ease-in-out infinite}

@keyframes neon-flicker{
  0%,18%,22%,25%,53%,57%,100%{
    opacity:1;filter:drop-shadow(0 0 14px rgba(100,228,255,.7))}
  20%,55%{
    opacity:.35;filter:drop-shadow(0 0 2px rgba(100,228,255,.2))}
  23%,56%{
    opacity:.8;filter:drop-shadow(0 0 8px rgba(100,228,255,.45))}
  70%,72%{
    opacity:.45;filter:drop-shadow(0 0 3px rgba(100,228,255,.25))}
  71%,73%{
    opacity:1;filter:drop-shadow(0 0 16px rgba(100,228,255,.75))}
}
@keyframes heartbeat{
  0%,100%{transform:scale(1);filter:drop-shadow(0 0 10px rgba(255,26,183,.45))}
  14%{transform:scale(1.025);filter:drop-shadow(0 0 18px rgba(255,26,183,.7))}
  28%{transform:scale(1)}
  42%{transform:scale(1.015);filter:drop-shadow(0 0 16px rgba(255,26,183,.65))}
  56%{transform:scale(1);filter:drop-shadow(0 0 10px rgba(255,26,183,.45))}
}
@media (prefers-reduced-motion:reduce){
  .subband .grad-blue,.subband .grad-pink{animation:none}
}

/* ===== 04.5 セクションライン＋ビジュアル（魚群と3つの魅力の間） ===== */
.sec.band-visual{
  padding:96px 0 0;
  display:flex;flex-direction:column;align-items:center;
  overflow:hidden;
}
.band-visual__line,
.band-visual__art{width:100%;height:auto}

/* 汎用セクションライン（任意の区切りに使える。同じ左右スイープ演出を再利用） */
.section-line{
  display:block;width:100%;max-width:360px;height:auto;
  margin:34px auto 0;
  opacity:0;
  filter:drop-shadow(0 0 6px rgba(100,228,255,0));
}
.section-line.is-revealed{
  animation:line-sweep 1s cubic-bezier(.22,1,.36,1) forwards;
}
@media (prefers-reduced-motion:reduce){
  .section-line{opacity:1;filter:none;animation:none}
}

/* セクションライン: 中央から左右へスーッと一閃して伸びる（光のスイープ付き）
   ※初期の隠しは opacity のみ。clip-path で幅0に隠すと IntersectionObserver が
     intersectionRatio:0 と判定して発火せず、永久に表示されなくなる。clip は animation 側で行う */
.band-visual__line{
  position:relative;
  opacity:0;
  filter:drop-shadow(0 0 6px rgba(100,228,255,0));
}
.band-visual__line.is-revealed{
  animation:line-sweep 1s cubic-bezier(.22,1,.36,1) forwards;
}
@keyframes line-sweep{
  0%{clip-path:inset(0 50% 0 50%);opacity:0;
     filter:drop-shadow(0 0 2px rgba(100,228,255,0))}
  35%{opacity:1}
  60%{filter:drop-shadow(0 0 14px rgba(100,228,255,.85))}
  100%{clip-path:inset(0 0 0 0);opacity:1;
     filter:drop-shadow(0 0 6px rgba(100,228,255,.35))}
}

/* メインビジュアル: ふわっと浮き上がり＋わずかにズームしながらネオングローが立ち上がる */
.band-visual__art{
  opacity:0;
  transform:translateY(46px) scale(.94);
  filter:drop-shadow(0 18px 30px rgba(0,0,0,.5)) brightness(.7) saturate(.8);
}
.band-visual__art.is-revealed{
  animation:art-rise 1.15s cubic-bezier(.16,1,.3,1) .18s forwards;
}
@keyframes art-rise{
  0%{opacity:0;transform:translateY(46px) scale(.94);
     filter:drop-shadow(0 18px 30px rgba(0,0,0,.5)) brightness(.7) saturate(.8)}
  55%{opacity:1}
  70%{transform:translateY(-4px) scale(1.012);
     filter:drop-shadow(0 10px 26px rgba(255,45,120,.35)) brightness(1.12) saturate(1.15)}
  100%{opacity:1;transform:translateY(0) scale(1);
     filter:drop-shadow(0 8px 22px rgba(0,0,0,.35)) brightness(1) saturate(1)}
}

@media (prefers-reduced-motion:reduce){
  .band-visual__line,
  .band-visual__art{opacity:1;transform:none;clip-path:none;filter:none;animation:none}
}

/* ===== 04 イベント写真3枚 ===== */
/* イベント写真: sakana.png のネオン魚群を背景に、3枚を左→右へ無限ループ */
.sec.event-sec{
  background:#1A2549;
  /* ネオン魚群(sakana)が上下で見切れないよう高さを確保(倍率150%↔150vhで比率一致) */
  min-height:clamp(560px,150vw,760px);
  display:flex;align-items:center;justify-content:center;
  padding:40px 0;overflow:hidden;
}
/* sakana 魚群: 左からフェードインで泳ぎ込み → ゆらゆら漂い続ける */
.sec.event-sec::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:url("./asset/img/sakana.webp?v=20260623d") center/150% auto no-repeat;
  /* 左右端をフェードして、出入り時にスマホ幅で魚がスパッと切れないようにする */
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 14%,#000 86%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 14%,#000 86%,transparent 100%);
  animation:sakanaCycle 20s ease-in-out infinite;
  will-change:transform,opacity;
}
/* 右から入場→滞在→左へ退場 → 左から入場→滞在→右へ退場 をループ（出入り・間隔を短く） */
@keyframes sakanaCycle{
  0%   {opacity:0;transform:translateX(70%)}              /* 画面右外（待機） */
  9%   {opacity:1;transform:translateX(0)}                /* 右からゆっくり入場 */
  18%  {opacity:1;transform:translateX(2%)}               /* 滞在：右へゆれ */
  28%  {opacity:1;transform:translateX(-2%)}              /* 滞在：左へゆれ */
  38%  {opacity:1;transform:translateX(0)}                /* 滞在おわり */
  47%  {opacity:0;transform:translateX(-70%)}             /* 左へゆっくり退場 */
  50%  {opacity:0;transform:translateX(-70%) scaleX(-1)}  /* 左外で待機・反転（短い） */
  59%  {opacity:1;transform:translateX(0) scaleX(-1)}     /* 左からゆっくり入場（反転） */
  68%  {opacity:1;transform:translateX(2%) scaleX(-1)}    /* 滞在：右へゆれ（反転） */
  78%  {opacity:1;transform:translateX(-2%) scaleX(-1)}   /* 滞在：左へゆれ（反転） */
  88%  {opacity:1;transform:translateX(0) scaleX(-1)}     /* 滞在おわり（反転） */
  97%  {opacity:0;transform:translateX(70%) scaleX(-1)}   /* 右へゆっくり退場（反転） */
  100% {opacity:0;transform:translateX(70%) scaleX(-1)}   /* 右外に戻ってループ（短い） */
}
@media (prefers-reduced-motion:reduce){.sec.event-sec::before{animation:none}}
.event-photos{width:100%;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.photo-track{display:flex;width:max-content;animation:photoScroll 26s linear infinite;will-change:transform}
.photo-track img{flex:0 0 auto;width:clamp(168px,50vw,210px);aspect-ratio:1/1.07;object-fit:cover;
  border-radius:10px;margin-right:10px;box-shadow:0 6px 18px rgba(0,0,0,.45),0 0 16px rgba(0,245,255,.18)}
@keyframes photoScroll{from{transform:translateX(-50%)}to{transform:translateX(0)}}
@media (prefers-reduced-motion:reduce){.photo-track{animation:none}}

/* ===== 05 3つの魅力 ===== */
.miryoku{text-align:center;padding-bottom:8px}
/* リード文とラインの間は広く、ラインの下は詰める */
.miryoku .section-line{margin-top:72px}
.miryoku h2{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:30px;color:#fff;margin-bottom:26px;
  letter-spacing:.22em;text-shadow:0 0 10px rgba(19,159,217,.55),0 0 20px rgba(19,159,217,.3)}
.miryoku h2 b{color:#fff;font-size:38px;font-weight:700;
  text-shadow:0 0 10px rgba(19,159,217,.6),0 0 22px rgba(19,159,217,.32)}
.miryoku__cards{display:flex;flex-direction:column;gap:14px}
.miryoku__cards img{display:block;width:100%;height:auto;
  filter:drop-shadow(0 0 14px rgba(0,245,255,.28))}
.miryoku__lead{margin-top:30px;font-family:'Noto Serif JP',serif;font-weight:500;
  font-size:22px;line-height:1.7;letter-spacing:.15em;color:#fff;
  text-shadow:0 0 10px rgba(180,130,255,.95),0 0 24px rgba(150,90,235,.7),0 0 46px rgba(124,70,210,.5)}

/* 3つの魅力: スクロール出現アニメ（タイトル→カード順々→リード） */
.miryoku h2[data-reveal],
.miryoku__lead[data-reveal]{opacity:0;transform:translateY(28px)}
.miryoku h2.is-revealed,
.miryoku__lead.is-revealed{animation:reveal-up .9s cubic-bezier(.22,1,.36,1) forwards}
.miryoku__cards img[data-reveal]{opacity:0;transform:translateY(36px) scale(.94)}
.miryoku__cards img.is-revealed{animation:reveal-pop .8s cubic-bezier(.22,1,.36,1) forwards}
.miryoku__cards img:nth-child(1).is-revealed{animation-delay:.05s}
.miryoku__cards img:nth-child(2).is-revealed{animation-delay:.22s}
.miryoku__cards img:nth-child(3).is-revealed{animation-delay:.39s}
.miryoku__lead.is-revealed{animation-delay:.25s}
@keyframes reveal-pop{from{opacity:0;transform:translateY(36px) scale(.94)}
  to{opacity:1;transform:translateY(0) scale(1)}}
@media (prefers-reduced-motion:reduce){
  .miryoku h2,.miryoku__lead,.miryoku__cards img{opacity:1;transform:none;animation:none}
}

/* ===== 06 Contents（クラゲ5体を縦に） ===== */
.contents{padding-top:10px}
.contents .en-head::after{display:none}
/* 大きなクラゲが左右の画面外にはみ出すので、列自体は横はみ出しを許可
   （実際のクリップは #container / body の overflow:hidden が担当） */
.kurage-list{
  margin-top:-40px;
  display:flex;flex-direction:column;align-items:center;
  overflow:visible;
}
/* クラゲ本体: 元画像サイズ感で大きく見せ、傘の左右が画面の外へはみ出す。
   ふわっと浮き上がって出現 → そのままゆらゆら漂い続ける。
   出現(kurage-rise: 1回)と浮遊(kurage-float: 無限)を同時掛けし、浮遊は出現後に効かせる。 */
.kurage{
  position:relative;
  display:block;width:200%;max-width:none;height:auto;
  margin-top:-16%;             /* クラゲ同士の透明余白を詰めて連なりに */
  opacity:0;transform:translateY(52px) scale(.9);
  will-change:transform,opacity;
}
.kurage:first-child{margin-top:0}
.kurage.is-revealed{
  animation:
    kurage-rise 1.2s cubic-bezier(.16,1,.3,1) forwards,
    kurage-float var(--float-dur,6s) ease-in-out 1.2s infinite;
}
/* 各クラゲで浮遊の周期と左右のドリフトをずらして、群れがバラバラに漂う自然な動きに。
   left で水平方向にずらすと transform(浮遊) と競合しないので安全 */
/* 1:左 / 2:右 / 3:左 / 4:右 / 5:左 に振り分け */
.kurage-list .kurage:nth-child(1){--float-dur:6.0s;left:-13%}
.kurage-list .kurage:nth-child(2){--float-dur:7.2s;left:20%}
.kurage-list .kurage:nth-child(3){--float-dur:6.6s;left:-20%}
.kurage-list .kurage:nth-child(4){--float-dur:7.8s;left:20%}
.kurage-list .kurage:nth-child(5){--float-dur:6.9s;left:-20%}

/* 下からふわっと上がりながら出現 */
@keyframes kurage-rise{
  0%{opacity:0;transform:translateY(52px) scale(.9)}
  60%{opacity:1}
  100%{opacity:1;transform:translateY(0) scale(1)}
}
/* クラゲらしい鼓動: 上下にゆれつつ、傘がわずかに伸縮（scaleY/scaleX）する */
@keyframes kurage-float{
  0%{transform:translateY(0) scaleY(1) scaleX(1)}
  25%{transform:translateY(-9px) scaleY(1.03) scaleX(.985)}
  50%{transform:translateY(-14px) scaleY(.98) scaleX(1.015)}
  75%{transform:translateY(-7px) scaleY(1.02) scaleX(.99)}
  100%{transform:translateY(0) scaleY(1) scaleX(1)}
}
@media (prefers-reduced-motion:reduce){
  .kurage{opacity:1;transform:none;animation:none}
}

/* ===== 07 Guest ===== */
.guest .en-head::after{display:none}        /* 「ゲスト」サブ表記は非表示 */
.guest__list{display:flex;flex-direction:column;align-items:center;gap:44px;margin-top:34px}
.guest__card{text-align:center;width:100%}
.guest__card img{display:block;width:min(60%,250px);margin:0 auto;
  border-radius:50%;aspect-ratio:1/1;object-fit:cover;
  border:1px solid rgba(0,245,255,.35);
  box-shadow:0 0 28px rgba(0,245,255,.3),0 12px 30px rgba(0,0,0,.5)}
.guest__label{margin-top:18px;display:flex;align-items:baseline;justify-content:center;gap:12px;flex-wrap:wrap}
.guest__role{font-size:14px;font-weight:600;color:#7fcdf2;letter-spacing:.16em;
  text-shadow:0 0 10px rgba(19,159,217,.55)}
.guest__name{font-size:30px;font-weight:700;color:#fff;letter-spacing:.06em;
  text-shadow:0 0 12px #139FD9,0 0 26px rgba(19,159,217,.65),0 0 46px rgba(19,159,217,.4)}
/* MC案内（Figma: Noto Sans JP / Regular / 24 / 行間55 / 字間5%） */
.guest__note{text-align:center;margin-top:40px;white-space:nowrap;
  font-family:'Noto Sans JP',sans-serif;font-weight:400;font-size:24px;line-height:55px;letter-spacing:.05em;
  color:#eaf6ff;text-shadow:0 0 12px #fff,0 0 24px rgba(19,159,217,.6),0 0 44px rgba(19,159,217,.35)}
/* 注釈（Figma: Noto Sans JP / Regular / 16 / 行間30 / 字間20%） */
.guest__sub{text-align:center;margin-top:22px;
  font-family:'Noto Sans JP',sans-serif;font-weight:400;font-size:16px;line-height:30px;letter-spacing:.2em;
  color:#93a8cc}
/* ゲストカードのスクロール出現 */
.guest__card[data-reveal]{opacity:0;transform:translateY(30px)}
.guest__card.is-revealed{animation:reveal-up .9s cubic-bezier(.22,1,.36,1) forwards}
.guest__card:nth-child(2).is-revealed{animation-delay:.15s}
@media (prefers-reduced-motion:reduce){.guest__card{opacity:1;transform:none;animation:none}}

/* ===== 07.5 魚バンド: sakana2 を既存sakanaと同様に泳がせる ===== */
.sec.fish-band{
  background:#1A2549;
  min-height:clamp(210px,54vw,280px);
  padding:0;overflow:hidden;
}
.fish-band__inner{position:absolute;inset:0;z-index:0;pointer-events:none;
  background:url("./asset/img/sakana2.webp?v=20260623d") 120% 86% / 145% auto no-repeat;
  /* 左端は画面外へ（フェードなし）、右端だけ溶かす */
  -webkit-mask-image:linear-gradient(90deg,#000 0,#000 74%,transparent);
  mask-image:linear-gradient(90deg,#000 0,#000 74%,transparent);
  opacity:0;transform:translateX(-42%);
}
/* 左から泳ぎ込んで停滞（退出なし）＋微かに揺れ続ける */
.fish-band__inner.is-revealed{
  animation:fishSwimIn 2.6s cubic-bezier(.22,.61,.36,1) forwards,
            fishFloat 8s ease-in-out 2.6s infinite;
}
@keyframes fishSwimIn{from{opacity:0;transform:translateX(-42%)}to{opacity:1;transform:translateX(0)}}
@keyframes fishFloat{0%,100%{transform:translateX(0)}50%{transform:translateX(1.6%)}}
@media (prefers-reduced-motion:reduce){
  .fish-band__inner{opacity:1;transform:none;animation:none}
}
/* Access 前の魚バンド: 魚群を左向き(頭が左)に反転して泳がせる（参考画像の配置）
   ※sakana2 は頭が右向きなので scaleX(-1) で左向きに反転。
     反転後、視覚的な右側=ローカル左側が消えるよう mask はローカル左をフェード。 */
.sec.fish-band--access{min-height:clamp(300px,78vw,360px)}
.fish-band--access .fish-band__inner{
  background:url("./asset/img/sakana3.webp?v=20260623d") 4% -85px / 128% auto no-repeat;
  transform:scaleX(1) translateX(0);
  -webkit-mask-image:linear-gradient(90deg,#000 0,#000 72%,transparent);
  mask-image:linear-gradient(90deg,#000 0,#000 72%,transparent);
  opacity:0;
}
.fish-band--access .fish-band__inner.is-revealed{
  animation:fishSwimInA 2.6s cubic-bezier(.22,.61,.36,1) forwards,
            fishFloatA 8s ease-in-out 2.6s infinite;
}
@keyframes fishSwimInA{from{opacity:0;transform:scaleX(1) translateX(42%)}to{opacity:1;transform:scaleX(1) translateX(0)}}
@keyframes fishFloatA{0%,100%{transform:scaleX(1) translateX(0)}50%{transform:scaleX(1) translateX(1.6%)}}
@media (prefers-reduced-motion:reduce){
  .fish-band--access .fish-band__inner{opacity:1;transform:scaleX(1);animation:none}
}

/* ===== 08 Price ===== */
.price{padding-top:0}
.price .section-line{margin-top:-102px}      /* 魚バンドにしっかり重なる位置まで引き上げ */
.price .en-head::after{display:none}         /* 「料金」サブ表記は削除 */
.price__cards{display:flex;flex-direction:column;gap:34px;margin-top:28px}
.price__row{display:flex;flex-direction:column;align-items:center;gap:16px}
.price__row .who{display:block;width:min(78%,300px);padding:11px 0;border-radius:10px;
  text-align:center;font-size:22px;font-weight:700;color:#fff;letter-spacing:.12em;
  text-shadow:0 1px 3px rgba(0,0,0,.25)}
.price__row.female .who{background:linear-gradient(95deg,#ff48a3 0%,#ff2d78 52%,#c026d3 100%);
  box-shadow:0 0 24px rgba(255,45,120,.55),0 8px 20px rgba(192,38,211,.4)}
.price__row.male .who{background:linear-gradient(95deg,#37d2ff 0%,#3a86ff 52%,#8b5cf6 100%);
  box-shadow:0 0 24px rgba(58,134,255,.55),0 8px 20px rgba(120,90,255,.4)}
.price__row .yen{font-family:'DIN Alternate','DIN Pro','Oswald','Noto Sans JP',sans-serif;
  font-weight:700;font-size:24px;color:#fff;letter-spacing:0;text-shadow:0 0 16px rgba(19,159,217,.4)}
.price__row .yen b{font-family:'DIN Alternate','DIN Pro','Oswald',sans-serif;
  font-weight:700;font-size:58px;letter-spacing:0;margin-right:6px;color:#fff}
.price__notes{font-family:'Noto Sans JP',sans-serif;font-weight:400;font-size:15px;letter-spacing:.06em;
  color:#fff;line-height:1.6;margin:28px auto 0;
  width:100%;max-width:340px;text-align:left;white-space:normal;
  text-shadow:0 0 12px rgba(0,245,255,.55),0 0 24px rgba(0,245,255,.25)}
.price__notes p{padding-left:1.15em;text-indent:-1.15em}
.price__notes p+p{margin-top:5px}

/* 友だち割フック（ネオンボックス） */
.price__hook{margin-top:44px;display:flex;flex-direction:column;align-items:center;gap:0;
  padding:18px 16px;border:2px solid #fff;border-radius:14px;
  text-align:center;background:rgba(231,86,238,.06);
  box-shadow:0 0 22px rgba(231,86,238,.7),inset 0 0 16px rgba(231,86,238,.3);
  animation:hook-neon 3.4s linear infinite}
@keyframes hook-neon{
  0%,16%,20%,24%,52%,56%,100%{
    opacity:1;
    border-color:#fff;
    box-shadow:0 0 22px rgba(231,86,238,.7),inset 0 0 16px rgba(231,86,238,.3)}
  18%,54%{
    opacity:.45;
    border-color:rgba(231,86,238,.5);
    box-shadow:0 0 4px rgba(231,86,238,.2),inset 0 0 4px rgba(231,86,238,.1)}
  22%,55%{
    opacity:.85;
    border-color:rgba(255,255,255,.8);
    box-shadow:0 0 12px rgba(231,86,238,.45),inset 0 0 9px rgba(231,86,238,.2)}
  70%,72%{
    opacity:.5;
    border-color:rgba(231,86,238,.55);
    box-shadow:0 0 5px rgba(231,86,238,.25),inset 0 0 5px rgba(231,86,238,.12)}
  71%,73%{
    opacity:1;
    border-color:#fff;
    box-shadow:0 0 26px rgba(231,86,238,.8),inset 0 0 18px rgba(231,86,238,.34)}
}
@media (prefers-reduced-motion:reduce){
  .price__hook{animation:none}
}
.price__hook .lead{font-family:'DIN Alternate','DIN Pro','Oswald','Noto Sans JP',sans-serif;
  font-size:28px;font-weight:700;color:#fff;letter-spacing:.06em;line-height:1.15;
  text-shadow:0 0 6px rgba(231,86,238,.9),0 0 14px rgba(231,86,238,.8),0 0 26px rgba(231,86,238,.6)}
.price__hook .big{font-family:'DIN Alternate','DIN Pro','Oswald','Noto Sans JP',sans-serif;
  font-size:28px;font-weight:800;color:#fff;letter-spacing:.04em;line-height:1.15;
  text-shadow:0 0 6px rgba(231,86,238,.9),0 0 16px rgba(231,86,238,.8),0 0 30px rgba(231,86,238,.6)}
.price__hook .big b{font-family:'DIN Alternate','DIN Pro','Oswald',sans-serif;font-size:44px;color:#fff;
  margin:0 2px;
  text-shadow:0 0 8px rgba(231,86,238,1),0 0 18px rgba(231,86,238,.85),0 0 34px rgba(231,86,238,.65)}
.friend{margin-top:46px}
.friend h3{text-align:center;font-family:'Noto Sans JP',sans-serif;font-weight:500;
  font-size:26px;letter-spacing:.08em;color:#fff;margin-bottom:20px}
.friend__list{list-style:none;max-width:340px;margin:0 auto}
.friend__list li{display:flex;justify-content:center;align-items:center;gap:32px;
  padding:11px 0;border-bottom:1px solid rgba(150,138,104,.55)}
.friend .n{width:50px;text-align:right;white-space:nowrap;
  font-family:'Noto Sans JP',sans-serif;font-weight:400;font-size:26px;
  letter-spacing:.04em;color:#fff}
.friend .off{width:190px;text-align:left;white-space:nowrap;
  font-family:'Noto Sans JP',sans-serif;font-weight:400;font-size:19px;color:#fff}
.friend .off b{display:inline-block;width:120px;text-align:right;
  font-family:'DIN Alternate','DIN Pro',sans-serif;font-weight:700;
  font-size:42px;letter-spacing:0;color:#fff;margin-right:7px}
.price__cta{margin-top:40px}
.joincond{margin-top:46px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px}
.joincond .lb{display:block;font-size:24px;font-weight:600;color:#fff;letter-spacing:.45em;padding-left:.45em;
  text-shadow:0 0 18px rgba(0,245,255,.45),0 0 36px rgba(0,245,255,.2)}
.joincond .v{display:block;font-size:25px;font-weight:700;color:#fff;letter-spacing:.08em;
  text-shadow:0 0 8px rgba(231,86,238,.9),0 0 18px rgba(231,86,238,.8),0 0 32px rgba(231,86,238,.6)}
.price__idnote{font-family:'Noto Sans JP',sans-serif;font-weight:400;font-size:16px;letter-spacing:.04em;
  color:#fff;line-height:1.7;margin:40px auto 0;text-align:center;
  width:100%;max-width:360px;
  text-shadow:0 0 12px rgba(0,245,255,.55),0 0 24px rgba(0,245,255,.25)}

/* ===== 10 Access ===== */
.access{padding-top:0}
.access .section-line{margin-top:-102px}     /* 魚バンド(sakana3)に重なる位置まで引き上げ */
.access .en-head{margin:24px 0 20px}
.access__pin{display:block;width:52px;height:auto;margin:0 auto 16px;
  filter:drop-shadow(0 0 10px rgba(0,245,255,.55)) drop-shadow(0 0 20px rgba(0,245,255,.3))}
.access__name{text-align:center;font-family:'Noto Sans JP',sans-serif;font-size:32px;font-weight:400;line-height:55px;letter-spacing:0;color:#fff;margin-top:20px;
  text-shadow:0 0 16px rgba(0,245,255,.35)}
.access__addr{text-align:center;font-family:'Noto Sans JP',sans-serif;font-size:20px;font-weight:400;letter-spacing:0;color:var(--text);margin-top:22px}
.access__walk{text-align:center;font-family:'Noto Sans JP',sans-serif;font-size:20px;font-weight:400;line-height:1.4;letter-spacing:.03em;color:#fff;margin-top:18px}
.access__map{margin:40px 0;border-radius:14px;overflow:hidden;border:1px solid var(--border);
  box-shadow:0 0 18px rgba(0,245,255,.12);aspect-ratio:16/10}
.access__map iframe{width:100%;height:100%;border:0;filter:grayscale(.2) brightness(.9)}
.parking{background:none;border:0;border-radius:0;padding:0;max-width:340px;margin:0 auto}
.parking h3{text-align:center;font-size:24px;font-weight:700;color:#fff;margin-bottom:34px}
.parking table{width:100%;border-collapse:collapse}
.parking td{padding:20px 4px;border-bottom:1px solid rgba(255,255,255,.18);font-size:17px;color:#fff;vertical-align:middle;line-height:1.5}
.parking td.k{width:30%;color:rgba(255,255,255,.5);font-size:15px;white-space:nowrap}
.parking .hp{text-align:center;font-size:18px;color:#fff;margin:44px 0}
.parking .notes{margin-top:8px}
.parking .notes p{font-family:'Noto Sans JP',sans-serif;font-weight:400;font-size:20px;letter-spacing:0;color:#ff5d6b;line-height:1.45;text-align:left;margin-top:12px}
.parking .notes p:first-child{margin-top:0}

/* ===== 11 イベント概要（駐車場ご案内の表構成に合わせる） ===== */
.overview{padding-top:80px;padding-bottom:80px}
.overview .en-head{font-family:'Noto Sans JP',sans-serif;font-size:40px;margin:24px 0 44px}
.overview .en-head::after{display:none}     /* 英語サブ表記は出さない */
.overview dl{max-width:340px;margin:0 auto}
.overview .row{display:flex;align-items:center;padding:26px 4px;
  border-bottom:1px solid rgba(255,255,255,.18)}
.overview dt{width:30%;flex-shrink:0;font-size:15px;font-weight:400;
  color:rgba(255,255,255,.5);white-space:nowrap}
.overview dd{width:70%;font-family:'Noto Sans JP',sans-serif;font-size:17px;font-weight:400;letter-spacing:0;color:#fff;line-height:1.9}
.overview dd .note{display:inline-block;font-size:15px;font-weight:400;color:#fff;margin-top:4px}

/* ===== 12 FAQ（画像準拠: 囲みなし／Q・A常時表示／Aの詳細を展開） ===== */
.faq{padding-top:88px;padding-bottom:96px}      /* 上下の余白を広く */
/* 幅はイベント概要(340px)に合わせて中央寄せ */
.faq__list{display:flex;flex-direction:column;gap:56px;max-width:340px;margin:24px auto 0}
/* Q / A の行（共通） */
.faq-q,.faq-a{display:flex;align-items:flex-start;gap:14px;width:100%;
  background:none;border:0;text-align:left;font-family:inherit;color:#fff;padding:0}
.faq-q{margin-bottom:20px}
.faq-a.is-toggle{cursor:pointer}
/* バッジ（line-height:1 で丸の中心に文字を配置） */
.qmark,.amark{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  font-weight:700;font-size:16px;line-height:1;color:#fff}
.qmark{background:#4D60F6;border:1.5px solid #4D60F6;box-shadow:0 0 12px rgba(77,96,246,.5)}
.amark{background:#E756EE;box-shadow:0 0 14px rgba(231,86,238,.6)}
/* テキスト（下線つき） */
.qtxt,.faq-a .atxt{flex:1;font-size:18px;font-weight:500;line-height:1.55;color:#fff;
  padding-bottom:14px;border-bottom:1px solid rgba(120,200,255,.35);
  text-shadow:0 0 10px rgba(0,245,255,.35)}
.faq-a .atxt-note{display:block;margin-top:6px;font-size:17px;font-weight:400;line-height:calc(25/17)}
/* 展開チェブロン: 閉=左向き / 開=下向き
   ▼(下) を rotate(90deg) で左向きにし、開いたら rotate(0) で下向きに戻す */
.faq-a .chev{flex:none;margin-top:6px;color:var(--neon-cyan);font-size:12px;
  transition:transform .3s;transform:rotate(90deg)}
.faq-item.is-open .chev{transform:rotate(0deg)}
/* 詳細（展開部） */
.faq-d{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s ease;margin-left:48px}
.faq-item.is-open .faq-d{grid-template-rows:1fr}
.faq-d__inner{overflow:hidden}
.faq-d p{font-size:15px;line-height:1.7;color:#fff;padding-top:14px}

/* ===== 13 Contact ===== */
.contact{text-align:center;padding-top:88px;padding-bottom:88px}
.contact .en-head::after{display:none}       /* 「お問い合わせ」サブ表記は削除 */
.contact__lead{font-family:'Noto Sans JP',sans-serif;font-weight:400;font-size:20px;color:var(--text);max-width:340px;margin:6px auto 22px}
.contact__btn{position:relative;z-index:2;display:inline-flex;align-items:center;justify-content:center;
  min-width:240px;padding:16px 36px;border-radius:999px;
  background:#000;border:1px solid rgba(255,255,255,.85);
  color:#fff;font-size:16px;font-weight:500;letter-spacing:.04em;
  box-shadow:0 0 14px rgba(0,245,255,.18);transition:transform .2s,box-shadow .2s}
.contact__btn:hover{transform:translateY(-2px);box-shadow:0 0 20px rgba(0,245,255,.35)}
.contact__btn:active{transform:scale(.97)}
.contact__logo{position:relative;z-index:1;width:100%;max-width:430px;margin:-44px auto;pointer-events:none;filter:drop-shadow(0 0 14px rgba(0,245,255,.4))}
.contact__sns{display:flex;justify-content:center;gap:26px;margin-top:8px}
.contact__sns a img{width:42px;height:42px;filter:drop-shadow(0 0 10px rgba(0,245,255,.4));transition:transform .2s}
.contact__sns a:active img{transform:scale(.92)}
.contact__official{display:inline-block;margin-top:24px;font-size:14px;color:#fff;
  border-bottom:1px solid rgba(255,255,255,.4);padding-bottom:2px}

/* ===== 14 Footer ===== */
.site-footer{background:#02060f;text-align:center;padding:30px 22px 36px;border-top:1px solid var(--border)}
.footer-links{font-size:13px;color:#fff}
.footer-links a{color:#fff}
.footer-copy{font-size:11px;color:#fff;margin-top:14px;letter-spacing:.03em}

/* ===== セクション区切り装飾 ===== */
.divider{display:flex;align-items:center;justify-content:center;padding:6px 22px}
.divider img{width:70%;opacity:.7}

/* 微細な被写界:背景アンビエント（各セクション） */
.amb{display:none}

/* ============================================================
   スクロール出現アニメ 追補（en-head / Price / Access / Overview / FAQ / Contact）
   既存の data-reveal→.is-revealed 機構（main.js）にCSSを追加。
   全て prefers-reduced-motion で即時表示にフォールバック。
   ============================================================ */
@keyframes reveal-fade{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes reveal-zoom{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
@keyframes reveal-pop-bounce{0%{opacity:0;transform:translateY(24px) scale(.9)}
  60%{opacity:1}80%{transform:translateY(0) scale(1.04)}100%{opacity:1;transform:translateY(0) scale(1)}}

/* --- 見出し en-head --- */
.en-head[data-reveal]{opacity:0;transform:translateY(22px)}
.en-head.is-revealed{animation:reveal-up .85s cubic-bezier(.22,1,.36,1) forwards}

/* --- 08 Price --- */
.price__notes[data-reveal],.price__cta[data-reveal],
.joincond[data-reveal],.price__idnote[data-reveal]{opacity:0;transform:translateY(26px)}
.price__notes.is-revealed,.price__cta.is-revealed,
.joincond.is-revealed,.price__idnote.is-revealed{animation:reveal-up .85s cubic-bezier(.22,1,.36,1) forwards}
/* 料金カード: 女性→男性 */
.price__cards[data-reveal] .price__row{opacity:0;transform:translateY(24px)}
.price__cards.is-revealed .price__row{animation:reveal-up .7s cubic-bezier(.22,1,.36,1) forwards}
.price__cards.is-revealed .price__row:nth-child(1){animation-delay:.05s}
.price__cards.is-revealed .price__row:nth-child(2){animation-delay:.2s}
/* 友だち割フック: バウンド出現→ネオン点滅へ */
.price__hook[data-reveal]{opacity:0;transform:translateY(24px) scale(.9);animation:none}
.price__hook.is-revealed{animation:reveal-pop-bounce .8s cubic-bezier(.34,1.56,.64,1) forwards,
  hook-neon 3.4s linear .85s infinite}
/* 友だち割: 見出し→行を順に */
.friend[data-reveal] h3,.friend[data-reveal] .friend__list li{opacity:0;transform:translateY(22px)}
.friend.is-revealed h3{animation:reveal-up .7s cubic-bezier(.22,1,.36,1) forwards}
.friend.is-revealed .friend__list li{animation:reveal-up .6s cubic-bezier(.22,1,.36,1) forwards}
.friend.is-revealed .friend__list li:nth-child(1){animation-delay:.18s}
.friend.is-revealed .friend__list li:nth-child(2){animation-delay:.32s}
.friend.is-revealed .friend__list li:nth-child(3){animation-delay:.46s}
.friend.is-revealed .friend__list li:nth-child(4){animation-delay:.6s}

/* --- 10 Access --- */
.access__name[data-reveal],.access__addr[data-reveal],
.access__walk[data-reveal],.parking[data-reveal]{opacity:0;transform:translateY(24px)}
.access__name.is-revealed,.access__addr.is-revealed,
.access__walk.is-revealed,.parking.is-revealed{animation:reveal-up .8s cubic-bezier(.22,1,.36,1) forwards}
.access__addr.is-revealed{animation-delay:.1s}
.access__walk.is-revealed{animation-delay:.2s}
.access__map[data-reveal]{opacity:0;transform:scale(.96)}
.access__map.is-revealed{animation:reveal-zoom .9s cubic-bezier(.22,1,.36,1) forwards}

/* --- 11 Overview: 行が上から順に --- */
.overview dl[data-reveal] .row{opacity:0;transform:translateY(22px)}
.overview dl.is-revealed .row{animation:reveal-up .65s cubic-bezier(.22,1,.36,1) forwards}
.overview dl.is-revealed .row:nth-child(1){animation-delay:.05s}
.overview dl.is-revealed .row:nth-child(2){animation-delay:.14s}
.overview dl.is-revealed .row:nth-child(3){animation-delay:.23s}
.overview dl.is-revealed .row:nth-child(4){animation-delay:.32s}
.overview dl.is-revealed .row:nth-child(5){animation-delay:.41s}
.overview dl.is-revealed .row:nth-child(6){animation-delay:.5s}

/* --- 12 FAQ: 不安をひとつずつ解消 --- */
.faq__list[data-reveal] .faq-item{opacity:0;transform:translateY(24px)}
.faq__list.is-revealed .faq-item{animation:reveal-up .7s cubic-bezier(.22,1,.36,1) forwards}
.faq__list.is-revealed .faq-item:nth-child(1){animation-delay:.05s}
.faq__list.is-revealed .faq-item:nth-child(2){animation-delay:.16s}
.faq__list.is-revealed .faq-item:nth-child(3){animation-delay:.27s}
.faq__list.is-revealed .faq-item:nth-child(4){animation-delay:.38s}
.faq__list.is-revealed .faq-item:nth-child(5){animation-delay:.49s}
.faq__list.is-revealed .faq-item:nth-child(6){animation-delay:.6s}

/* --- 13 Contact: 最後のひと押し --- */
.contact__lead[data-reveal],.contact__sns[data-reveal],
.contact__official[data-reveal]{opacity:0;transform:translateY(22px)}
.contact__lead.is-revealed,.contact__sns.is-revealed,
.contact__official.is-revealed{animation:reveal-fade .8s cubic-bezier(.22,1,.36,1) forwards}
.contact__logo[data-reveal]{opacity:0;transform:translateY(20px) scale(.96)}
.contact__logo.is-revealed{animation:reveal-zoom .9s cubic-bezier(.22,1,.36,1) forwards}
.contact__btn[data-reveal]{opacity:0;transform:translateY(22px) scale(.92)}
.contact__btn.is-revealed{animation:reveal-pop-bounce .85s cubic-bezier(.34,1.56,.64,1) forwards}

/* --- reduced-motion 一括フォールバック --- */
@media (prefers-reduced-motion:reduce){
  .en-head,
  .price__notes,.price__hook,.price__cta,.joincond,.price__idnote,
  .price__cards .price__row,.friend h3,.friend__list li,
  .access__name,.access__addr,.access__walk,.access__map,.parking,
  .overview .row,.faq-item,
  .contact__lead,.contact__sns,.contact__official,.contact__logo,.contact__btn{
    opacity:1;transform:none;animation:none}
}
