/* ============================================================
   開運旅行術 ─ シネマティック没入LP（神道テーマ）／ lp.css
   全画面ヒーロー動画・フルブリード背景帯・スクロール演出。
   描画は transform / opacity のみ（GPU）。prefers-reduced-motion 完全対応。
   app.css の後に読み込む（変数 --gold / --ink / --card 等を継承）。
   ============================================================ */
:root{
  --shu:#c5402f;        /* 朱（鳥居の朱）＝神道のシグネチャー差し色 */
  --shu-dk:#9e2f22;
  --gold-soft:#d9b65a;
}
html{ overflow-x:hidden; }
/* BudouX ラッパー：レイアウトに影響を与えずに文節改行だけ付与 */
budoux-ja, .lp-budoux{ display:contents; }

/* ログイン中の「アプリに戻る」（LPプレビュー時のみ表示・ヒーロー上に固定） */
.lp-back{ position:fixed; top:calc(12px + env(safe-area-inset-top,0px)); left:12px; z-index:60;
  background:rgba(22,13,4,.5); color:#fff; border:1px solid rgba(255,255,255,.32); border-radius:22px;
  padding:9px 16px; font-size:.86rem; letter-spacing:.04em; cursor:pointer;
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); box-shadow:0 4px 14px rgba(0,0,0,.25); }
.lp-back:active{ transform:scale(.97); }
@media(hover:hover){ .lp-back:hover{ background:rgba(22,13,4,.66); } }

/* LPでは白いグローバルヘッダーを隠し、全画面ヒーローに一体化する */
body.lp-active header{ display:none !important; }
/* LP本体は全幅（中身の各セクションだけ中央カラムに収める） */
body.lp-active #gate-lp{ max-width:none; }
#gate-lp > section:not(.lp-hero):not(.lp-band),
#gate-lp > .lp-divider{ max-width:600px; margin-left:auto; margin-right:auto; }

/* ---------- スクロール・リビール ----------
   初期の非表示は JS が動く時(.lp-js)だけ適用。JS無効/失敗時は本文を常時表示（フェイルセーフ）。 */
.lp-js .reveal{ opacity:0; transform:translateY(34px);
  transition:opacity 1s cubic-bezier(.2,.7,.2,1), transform 1.05s cubic-bezier(.2,.7,.2,1);
  transition-delay:var(--rd,0s); will-change:opacity,transform; }
.reveal.in{ opacity:1; transform:none; }
.lp-js .reveal-zoom{ transform:scale(.93); } .reveal-zoom.in{ transform:none; }
.lp-js .reveal-left{ transform:translateX(-32px); } .reveal-left.in{ transform:none; }
.lp-js .reveal-right{ transform:translateX(32px); } .reveal-right.in{ transform:none; }
.lp-js .stagger > *{ opacity:0; transform:translateY(20px);
  transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }
.stagger.in > *{ opacity:1; transform:none; }
.stagger.in > *:nth-child(1){ transition-delay:.04s } .stagger.in > *:nth-child(2){ transition-delay:.14s }
.stagger.in > *:nth-child(3){ transition-delay:.24s } .stagger.in > *:nth-child(4){ transition-delay:.34s }
.stagger.in > *:nth-child(5){ transition-delay:.44s }

/* ============================================================
   没入ヒーロー（全画面動画）
   ============================================================ */
.lp-hero{
  position:relative; width:100vw; margin-left:calc(50% - 50vw);
  min-height:100vh; min-height:100svh;
  display:flex; align-items:center; justify-content:center; text-align:center;
  overflow:hidden; background:#160d05;
}
.lp-hero-media{ position:absolute; inset:0; z-index:0; }
.lp-hero-media video{ width:100%; height:100%; object-fit:cover; display:block;
  animation:heroDrift 24s ease-in-out infinite alternate; }
@keyframes heroDrift{ from{transform:scale(1.0)} to{transform:scale(1.08)} }
/* 全画面の可読スクリム（上下を締めて中央の文字を立てる） */
.lp-hero::after{ content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    radial-gradient(125% 90% at 50% 32%, transparent 28%, rgba(16,9,3,.46) 100%),
    linear-gradient(180deg, rgba(16,9,3,.58) 0%, rgba(16,9,3,.16) 30%, rgba(16,9,3,.26) 62%, rgba(16,9,3,.84) 100%); }
/* 金の光が斜めに流れるシャイン */
.lp-hero-media::before{ content:''; position:absolute; top:-40%; left:0; width:42%; height:180%; z-index:1; pointer-events:none;
  background:linear-gradient(105deg, transparent, rgba(255,241,206,.16), transparent);
  transform:translateX(-170%) rotate(8deg); animation:heroSheen 9s ease-in-out 1.6s infinite; }
@keyframes heroSheen{ 0%{transform:translateX(-170%) rotate(8deg);opacity:0}
  16%{opacity:1} 48%,100%{transform:translateX(460%) rotate(8deg);opacity:0} }
/* 漂う金粒子 */
.lp-hero-media .dust{ position:absolute; inset:0; z-index:1; pointer-events:none; overflow:hidden; }
.lp-hero-media .dust i{ position:absolute; width:3px; height:3px; border-radius:50%;
  background:radial-gradient(circle,#ffe9b0,rgba(255,233,176,0)); opacity:0; }
.lp-hero-media .dust i:nth-child(1){ left:16%; animation:dust 10s ease-in-out .2s infinite; }
.lp-hero-media .dust i:nth-child(2){ left:38%; animation:dust 12s ease-in-out 1.8s infinite; }
.lp-hero-media .dust i:nth-child(3){ left:60%; animation:dust 9s ease-in-out 3.4s infinite; }
.lp-hero-media .dust i:nth-child(4){ left:80%; animation:dust 13s ease-in-out 1.0s infinite; }
@keyframes dust{ 0%{ bottom:-4%; opacity:0; transform:translateX(0) scale(.7) }
  15%{opacity:.9} 85%{opacity:.6} 100%{ bottom:104%; opacity:0; transform:translateX(16px) scale(1.1) } }

.lp-hero-overlay{ position:relative; z-index:2; padding:96px 22px 112px; max-width:660px; color:#fff; }
.lp-hero-title{ font-family:'Noto Serif JP',serif; font-weight:700; font-size:clamp(1.7rem,6.8vw,3.4rem);
  letter-spacing:.2em; line-height:1.32; max-width:100%;
  background:linear-gradient(135deg,#ffe9b0,#fff7e6 45%,#e7c569); background-size:220% auto;
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  filter:drop-shadow(0 3px 16px rgba(0,0,0,.5)); animation:lpRise 1.1s .1s both, titleSheen 7s ease-in-out 1.4s infinite; }
@keyframes titleSheen{ 0%,100%{background-position:0% center} 50%{background-position:130% center} }
.lp-hero-sub{ margin-top:14px; font-family:'Noto Serif JP',serif; font-size:clamp(.9rem,3.6vw,1.15rem);
  letter-spacing:.24em; color:#ffe6a8; text-shadow:0 1px 14px rgba(0,0,0,.7); animation:lpRise 1.1s .28s both; }
.lp-hero .lp-catch{ color:#fff; margin:26px auto 28px; max-width:30em; line-height:2;
  font-size:clamp(1rem,3.1vw,1.12rem); letter-spacing:.01em;
  text-shadow:0 1px 16px rgba(0,0,0,.78); animation:lpRise 1.1s .46s both; }
.lp-hero .lp-catch strong{ color:#ffd87a; }
.lp-hero-cta{ display:flex; flex-direction:column; gap:12px; max-width:400px; margin:0 auto; animation:lpRise 1.1s .64s both; }
.lp-hero .lp-cta-note{ color:rgba(255,255,255,.84); text-shadow:0 1px 10px rgba(0,0,0,.8); animation:lpRise 1.1s .8s both; }
@keyframes lpRise{ from{opacity:0; transform:translateY(28px)} to{opacity:1; transform:none} }

/* スクロール誘導 */
.lp-scroll-cue{ position:absolute; left:50%; bottom:24px; width:26px; height:42px; transform:translateX(-50%);
  border:2px solid rgba(255,255,255,.55); border-radius:14px; z-index:2; animation:cueFade 2.6s ease-in-out 1.2s infinite; }
.lp-scroll-cue::before{ content:''; position:absolute; left:50%; top:8px; width:4px; height:8px; margin-left:-2px;
  background:#fff; border-radius:2px; animation:cueDot 2.6s ease-in-out 1.2s infinite; }
@keyframes cueDot{ 0%,100%{transform:translateY(0);opacity:.9} 50%{transform:translateY(10px);opacity:.25} }
@keyframes cueFade{ 0%,100%{opacity:.45} 50%{opacity:.95} }

/* ---------- CTA（金の光が流れる＋呼吸する光） ---------- */
.lp-cta{ position:relative; overflow:hidden; isolation:isolate; animation:ctaGlow 2.8s ease-in-out infinite; }
.lp-cta::after{ content:''; position:absolute; top:0; left:-65%; width:42%; height:100%; z-index:1; pointer-events:none;
  background:linear-gradient(105deg, transparent, rgba(255,255,255,.5), transparent); transform:skewX(-18deg);
  animation:ctaShine 3.6s ease-in-out 1.6s infinite; }
@keyframes ctaShine{ 0%{left:-65%} 36%,100%{left:165%} }
@keyframes ctaGlow{ 0%,100%{box-shadow:0 4px 14px rgba(184,144,31,.30)} 50%{box-shadow:0 8px 26px rgba(184,144,31,.52)} }

/* オファーが2枚のときは2カラムで均等に（開運カレンダーをLPから外したため） */
.lp-offer-grid--2{ max-width:540px; margin-left:auto; margin-right:auto; }
@media(min-width:600px){ .lp-offer-grid--2{ grid-template-columns:1fr 1fr; } }

/* ¥980 プランの内訳（チェック付き箇条書き） */
.lp-plan{ max-width:560px; margin:14px auto 0; background:var(--card); border:1px solid var(--line);
  border-radius:16px; padding:20px 18px; box-shadow:var(--shadow); }
.lp-plan-head{ display:flex; align-items:baseline; gap:8px; justify-content:center; flex-wrap:wrap;
  text-align:center; padding-bottom:14px; margin-bottom:4px; border-bottom:1px solid var(--line-soft); }
.lp-plan-price{ font-family:'Noto Serif JP',serif; color:var(--gold-dk); letter-spacing:.04em; }
.lp-plan-price b{ font-size:1.6rem; }
.lp-plan-title{ font-family:'Noto Serif JP',serif; font-weight:700; color:var(--ink); letter-spacing:.04em; }
.lp-plan-list{ list-style:none; padding:0; margin:0; }
.lp-plan-list li{ position:relative; padding:12px 4px 12px 34px; border-top:1px solid var(--line-soft); }
.lp-plan-list li:first-child{ border-top:none; }
.lp-plan-list li::before{ content:'✓'; position:absolute; left:4px; top:13px; width:21px; height:21px; line-height:21px;
  text-align:center; border-radius:50%; background:linear-gradient(135deg,var(--gold),var(--gold-dk));
  color:#fffdf7; font-size:.72rem; font-weight:700; }
.lp-plan-list b{ display:block; font-size:.98rem; color:var(--ink); letter-spacing:.02em; margin-bottom:3px; }
.lp-plan-list span{ display:block; font-size:.85rem; line-height:1.8; color:var(--muted); }

/* ---------- 購入CTA（朱・月980円） ---------- */
.btn-buy{ display:block; width:100%; padding:16px; border-radius:12px; cursor:pointer;
  font-family:'Noto Serif JP',serif; font-size:1.05rem; font-weight:700; letter-spacing:.1em;
  color:#fffdf7; background:linear-gradient(135deg,var(--shu),var(--shu-dk));
  border:1px solid rgba(255,255,255,.22); box-shadow:0 6px 18px rgba(158,47,34,.36);
  transition:transform .15s, box-shadow .3s; }
.btn-buy:active{ transform:scale(.98); }
@media(hover:hover){ .btn-buy:hover{ box-shadow:0 10px 28px rgba(158,47,34,.52); } }
.btn-buy .yen{ font-size:1.18em; }
.lp-buy-wrap{ text-align:center; max-width:400px; margin:18px auto 0; }
.lp-buy-note{ font-size:.78rem; color:var(--faint); margin-top:8px; letter-spacing:.02em; }
.lp-hero .btn-buy{ box-shadow:0 8px 24px rgba(158,47,34,.5); }

/* ---------- 上位プラン（占い師に直接・月¥50,000・LINE問い合わせ） ---------- */
.lp-premium{ max-width:560px; margin:26px auto 0; text-align:center;
  background:linear-gradient(160deg,#241a0c,#3a2a14); color:#fff;
  border:1px solid rgba(216,182,90,.55); border-radius:18px; padding:28px 22px;
  box-shadow:0 14px 36px rgba(40,28,8,.32); }
.lp-premium-kicker{ display:inline-block; font-size:.74rem; letter-spacing:.3em; color:var(--gold-soft);
  text-shadow:0 1px 8px rgba(0,0,0,.4); margin-bottom:12px; }
.lp-premium-title{ font-family:'Noto Serif JP',serif; font-weight:700; font-size:clamp(1.3rem,5vw,1.72rem);
  line-height:1.6; color:#fff; margin-bottom:14px; text-wrap:balance; }
.lp-premium-title .accent{ color:#ffd87a; }
.lp-premium-body{ font-size:.92rem; line-height:2; color:rgba(255,255,255,.9); margin-bottom:18px; text-wrap:pretty; }
.lp-premium-body b{ color:#ffe6a8; font-weight:700; }
.lp-premium-price{ display:flex; align-items:baseline; justify-content:center; gap:3px; margin-bottom:18px;
  color:#ffe6a8; font-family:'Noto Serif JP',serif; }
.lp-premium-price .pp-unit{ font-size:.86rem; color:rgba(255,230,168,.85); margin-right:3px; }
.lp-premium-price .pp-yen{ font-size:1rem; align-self:flex-start; margin-top:.2em; }
.lp-premium-price .pp-amt{ font-size:2.7rem; line-height:1; font-weight:700; letter-spacing:.01em; }
.lp-premium-price .pp-en{ font-size:1rem; font-weight:700; margin-left:2px; }
.btn-line{ display:block; max-width:360px; margin:0 auto; padding:15px; border-radius:12px;
  background:#06C755; color:#fff; font-weight:700; font-size:1.04rem; letter-spacing:.06em; text-decoration:none;
  box-shadow:0 6px 18px rgba(6,199,85,.38); transition:transform .15s, box-shadow .3s; }
.btn-line:active{ transform:scale(.98); }
@media(hover:hover){ .btn-line:hover{ box-shadow:0 10px 28px rgba(6,199,85,.55); } }
.lp-premium-note{ font-size:.78rem; color:rgba(255,255,255,.72); margin-top:10px; }

/* ---------- アプリ内（ホーム/カレンダー）→ LP へ誘う目立つCTA ---------- */
.lp-promo{ display:flex; align-items:center; gap:12px; width:100%; max-width:520px; margin:22px auto 8px;
  cursor:pointer; text-align:left; position:relative; overflow:hidden; isolation:isolate;
  background:linear-gradient(135deg, var(--gold), var(--gold-dk)); color:#fffdf7; border:none;
  border-radius:16px; padding:16px 18px; box-shadow:0 8px 22px rgba(184,144,31,.34);
  transition:transform .15s, box-shadow .3s; animation:promoGlow 3s ease-in-out infinite; }
.lp-promo:active{ transform:scale(.99); }
@media(hover:hover){ .lp-promo:hover{ box-shadow:0 12px 30px rgba(184,144,31,.5); transform:translateY(-1px); } }
@keyframes promoGlow{ 0%,100%{box-shadow:0 8px 22px rgba(184,144,31,.34)} 50%{box-shadow:0 10px 30px rgba(184,144,31,.55)} }
.lp-promo::after{ content:''; position:absolute; top:0; left:-60%; width:42%; height:100%; z-index:1; pointer-events:none;
  background:linear-gradient(105deg, transparent, rgba(255,255,255,.5), transparent); transform:skewX(-18deg);
  animation:promoShine 3.6s ease-in-out 1.2s infinite; }
@keyframes promoShine{ 0%{left:-60%} 42%,100%{left:165%} }
.lp-promo-ico{ flex:0 0 auto; font-size:1.5rem; line-height:1; filter:drop-shadow(0 1px 2px rgba(0,0,0,.22)); }
.lp-promo-txt{ flex:1 1 auto; min-width:0; }
.lp-promo-main{ display:block; font-family:'Noto Serif JP',serif; font-weight:700; font-size:1.04rem; letter-spacing:.04em; }
.lp-promo-sub{ display:block; font-size:.76rem; opacity:.94; margin-top:3px; line-height:1.55; }
.lp-promo-arrow{ flex:0 0 auto; font-size:1.25rem; font-weight:700; animation:promoArrow 1.5s ease-in-out infinite; }
@keyframes promoArrow{ 0%,100%{transform:translateX(0)} 50%{transform:translateX(5px)} }
@media(prefers-reduced-motion:reduce){ .lp-promo,.lp-promo::after,.lp-promo-arrow{ animation:none !important; } }

/* ---------- 画像保存プレビュー（共有/保存を“新しいタップ”で＝iOSでも確実）---------- */
.save-sheet{ position:fixed; inset:0; z-index:1000; background:rgba(20,12,4,.74);
  display:flex; align-items:center; justify-content:center; padding:20px;
  -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); }
.save-sheet-card{ background:#fff; border-radius:16px; padding:16px; width:100%; max-width:360px;
  max-height:90vh; overflow:auto; text-align:center; box-shadow:0 22px 54px rgba(0,0,0,.45); }
.save-sheet-img{ display:block; width:100%; height:auto; border-radius:10px; border:1px solid var(--line); }
.save-sheet-hint{ font-size:.8rem; color:var(--muted); margin:12px 0 14px; }
.save-sheet-hint b{ color:var(--ink); }
.save-sheet-actions{ display:flex; flex-direction:column; gap:6px; }
.save-sheet-go{ margin-top:0 !important; }
.save-sheet-close{ background:none; border:none; color:var(--muted); font-size:.9rem; padding:9px; cursor:pointer; }

/* ---------- お試し個人診断内の上位プラン訴求（占い師に直接・¥50,000・LINE）---------- */
.trial-premium{ background:linear-gradient(160deg,#241a0c,#3a2a14); color:#fff;
  border:1px solid rgba(216,182,90,.5); border-radius:14px; padding:18px 16px; margin:14px 0 0;
  text-align:center; box-shadow:0 8px 22px rgba(40,28,8,.25); }
.trial-premium-kicker{ display:block; font-size:.72rem; letter-spacing:.24em; color:#d9b65a; margin-bottom:8px; }
.trial-premium-title{ font-family:'Noto Serif JP',serif; font-weight:700; font-size:1.1rem; color:#fff; margin-bottom:8px; }
.trial-premium-title b{ color:#ffd87a; }
.trial-premium-body{ font-size:.85rem; line-height:1.85; color:rgba(255,255,255,.9); margin-bottom:14px; }
.trial-premium-body b{ color:#ffe6a8; }
.trial-premium .btn-line{ max-width:300px; }

/* ============================================================
   フルブリードの背景帯（没入・パララックス）
   margin-left:calc(50% - 50vw) で確実に画面端まで（右ずれ根絶）
   ============================================================ */
.lp-band{ position:relative; width:100vw; margin-left:calc(50% - 50vw);
  min-height:62vh; min-height:62svh; display:flex; align-items:center; justify-content:center;
  overflow:hidden; margin-top:42px; margin-bottom:42px; }
.lp-band__img{ position:absolute; left:0; top:-10%; width:100%; height:120%; object-fit:cover; z-index:0; will-change:transform; }
.lp-band::after{ content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(18,11,4,.52), rgba(18,11,4,.40) 50%, rgba(18,11,4,.62)); }
.lp-band__inner{ position:relative; z-index:2; text-align:center; padding:48px 24px; max-width:600px; }
.lp-band__kicker{ display:inline-block; font-size:.74rem; letter-spacing:.34em; color:var(--gold-soft);
  text-shadow:0 1px 12px rgba(0,0,0,.7); margin-bottom:14px; }
.lp-band__inner h3{ font-family:'Noto Serif JP',serif; font-size:clamp(1.4rem,5.2vw,2rem); font-weight:700;
  letter-spacing:.08em; color:#fff; text-shadow:0 2px 18px rgba(0,0,0,.7); line-height:1.7; margin-bottom:14px; }
.lp-band__inner p{ font-size:clamp(.9rem,3.6vw,1.04rem); line-height:2.05; color:rgba(255,255,255,.95);
  text-shadow:0 1px 12px rgba(0,0,0,.7); }
.lp-band__inner .accent{ color:#ffd87a; font-weight:700; }

/* ---------- セクション区切り（朱×金＋鳥居） ---------- */
.lp-divider{ display:flex; align-items:center; justify-content:center; gap:14px; margin:30px auto 26px; max-width:340px; }
.lp-divider::before, .lp-divider::after{ content:''; height:1px; flex:1; background:linear-gradient(90deg, transparent, var(--gold)); }
.lp-divider::after{ background:linear-gradient(90deg, var(--gold), transparent); }
.lp-divider span{ color:var(--shu); font-size:1.15rem; line-height:1; }

/* ---------- 価格アンカー ---------- */
.lp-anchor-new b .count, .lp-anchor-old b .count{ font-variant-numeric:tabular-nums; }
/* 月¥980：¥と「月」は小さく、980 を大きく主役に */
.lp-anchor-new b{ display:flex; align-items:baseline; justify-content:center; gap:2px; }
.lp-anchor-new .anc-per{ font-size:.58em; font-weight:700; color:var(--muted); margin-right:2px; letter-spacing:0; }
.lp-anchor-new .anc-yen{ font-size:.56em; font-weight:700; align-self:flex-start; margin-top:.18em; }
.lp-anchor-new .anc-amt{ font-size:1.9em; line-height:1; letter-spacing:0; }
.lp-anchor-new .anc-en{ font-size:.62em; font-weight:700; margin-left:1px; }
/* 旧価格・新価格とも一行に固定（「¥／20,000／〜」のような崩れ防止） */
.lp-anchor{ gap:14px; align-items:center; }
.lp-anchor-old, .lp-anchor-new{ flex-shrink:0; }
.lp-anchor-old b{ display:flex; align-items:baseline; justify-content:center; gap:1px; white-space:nowrap; }
.lp-anchor-new b{ white-space:nowrap; }

/* ============================================================
   タイポグラフィ仕上げ（改行バランス・字間）＝高級感の要
   ・中央寄せの表示文 → text-wrap:balance（行長を均し、孤立行を防ぐ）
   ・左寄せの本文     → text-wrap:pretty（最終行の孤立を防ぐ）
   ・word-break:auto-phrase は対応ブラウザ(Chrome)で“文節”改行（非対応は無視）
   ============================================================ */
.lp-catch, .lp-hero-sub, .lp-affinity-lead, .lp-affinity p,
.lp-sec-title, .lp-sec-lead, .lp-value b, .lp-value span,
.lp-band__inner h3, .lp-band__inner p, .lp-auth-tag,
.lp-narrow p, .lp-narrow-push, .lp-plan-title, .lp-steps-title{
  text-wrap:balance; word-break:auto-phrase;
}
.lp-auth-body, .lp-pain li, .lp-offer-card span,
.lp-plan-list b, .lp-plan-list span, .lp-step-list b, .lp-step-list p{
  text-wrap:pretty; word-break:auto-phrase;
}
/* CTAの字間を最適化：ボタン内テキストの折り返しを防止（Instagram等） */
.lp-cta{ letter-spacing:.14em; }
.lp-anchor-arrow{ animation:arrowNudge 1.8s ease-in-out infinite; }
@keyframes arrowNudge{ 0%,100%{transform:translateX(0)} 50%{transform:translateX(4px)} }

/* ============================================================
   PC：没入の強化（全画面ヒーロー／大判の帯／余白）
   ============================================================ */
@media (min-width:760px){
  .lp-hero-overlay{ padding:120px 24px 130px; max-width:760px; }
  .lp-band{ min-height:84vh; min-height:84svh; }
  .lp-hero-cta, .lp-buy-wrap{ max-width:440px; }
  #gate-lp > section:not(.lp-hero):not(.lp-band){ max-width:680px; }
  body.lp-active .lp-sec-title{ font-size:1.5rem; }
}
@media (hover:hover) and (min-width:760px){
  .lp-value{ transition:transform .42s cubic-bezier(.2,.7,.2,1), box-shadow .42s; }
  .lp-value:hover{ transform:translateY(-7px); box-shadow:0 16px 32px rgba(120,90,20,.18); }
  .lp-offer-card{ transition:transform .42s cubic-bezier(.2,.7,.2,1), box-shadow .42s; }
  .lp-offer-card:hover{ transform:translateY(-5px); box-shadow:0 14px 30px rgba(120,90,20,.16); }
}

/* ---------- アクセシビリティ：動きを減らす設定を尊重 ---------- */
@media (prefers-reduced-motion:reduce){
  .reveal,.reveal-zoom,.reveal-left,.reveal-right,.stagger > *{
    opacity:1 !important; transform:none !important; transition:none !important; }
  .lp-hero-media video{ animation:none !important; }
  .lp-hero-media::before, .lp-hero-media .dust i{ animation:none !important; opacity:0 !important; }
  .lp-hero-title{ animation:none !important; }
  .lp-hero-sub,.lp-hero .lp-catch,.lp-hero-cta,.lp-hero .lp-cta-note{ animation:none !important; }
  .lp-scroll-cue,.lp-scroll-cue::before{ animation:none !important; }
  .lp-cta, .lp-cta::after, .lp-anchor-arrow{ animation:none !important; }
}

/* 購入済み/別ブラウザ・別端末の方の復元（メールでログインリンク） */
.lp-restore{ margin:14px auto 0; max-width:380px; text-align:center; }
.lp-restore > summary{
  list-style:none; cursor:pointer; display:inline-block;
  font-size:12px; color:rgba(255,255,255,.78); text-decoration:underline;
  text-underline-offset:3px; padding:6px 4px;
}
.lp-restore > summary::-webkit-details-marker{ display:none; }
.lp-restore[open] > summary{ color:#e9d8a6; }
.lp-restore-body{ margin-top:10px; }
.lp-restore-row{ display:flex; flex-direction:column; gap:8px; }
.lp-restore-row input{
  width:100%; box-sizing:border-box; padding:12px 14px; border-radius:10px;
  border:1px solid rgba(212,175,55,.5); background:rgba(0,0,0,.35); color:#fff;
  font-size:15px; text-align:center;
}
.lp-restore-row input::placeholder{ color:rgba(255,255,255,.5); }
.btn-restore{
  width:100%; box-sizing:border-box; padding:12px 14px; border:none; border-radius:10px;
  background:linear-gradient(180deg,#d4af37,#b8860b); color:#1a1407; font-weight:700;
  font-size:14px; cursor:pointer;
}
.btn-restore:disabled{ opacity:.6; cursor:default; }
.lp-restore-note{ margin:8px 2px 0; font-size:11px; color:rgba(255,255,255,.6); line-height:1.6; }
.lp-restore-done{ margin:6px 2px 0; font-size:13px; color:#e9d8a6; line-height:1.7; }

/* 購入導線直下の法的リンク（申込前に到達できるように） */
.lp-buy-legal{ margin:8px 0 0; font-size:.72rem; text-align:center; line-height:1.7; }
.lp-buy-legal a{ color:#cda94a; }
