/* ==========================================================================
   #Reset & Base
   ========================================================================== */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

:root {
    /* Colors - Universe Palette (Female/Spiritual) */
    --c-bg-void: #0a0510;
    /* Deep Midnight Purple */
    --c-bg-deep: #120822;
    --c-accent-gold: #cfa86e;
    /* Champagne Gold, majestic but soft */
    --c-accent-rose: #b76e79;
    /* Rose Gold */
    --c-accent-cyan: #7feaff;
    /* Soft Cyan */
    --c-text-main: #e0d8e8;
    /* Platinum Grey */
    --c-text-white: #ffffff;
    --c-glass: rgba(20, 15, 30, 0.6);
    --c-glass-border: rgba(255, 255, 255, 0.1);

    /* Typography */
    --font-en: 'Cinzel', serif;
    --font-jp-serif: 'Shippori Mincho', serif;
    --font-jp-sans: 'Zen Kaku Gothic New', sans-serif;

    /* Metrics */
    --w-container: 1000px;
    --h-header: 80px;
}

html {
    font-size: 16px;
    scroll-behavior: smooth;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    background-color: var(--c-bg-void);
    color: var(--c-text-main);
    font-family: var(--font-jp-sans);
    line-height: 2.0;
    overflow-x: hidden;
    position: relative;
    word-break: normal;
    overflow-wrap: break-word;
}

/* スマホのみ表示するbr */
br.sp-only {
    display: none;
}

/* PCのみ表示するbr */
br.pc-only {
    display: inline;
}

/* セクションタイトル内のbrは常に表示（意図的な改行） */
.section-title br,
.sub-title br {
    display: inline;
}

@media (max-width: 768px) {
    br.sp-only {
        display: inline;
    }
    br.pc-only {
        display: none;
    }

    /* スマホでは本文のbrを非表示にして自然に折り返す */
    .story-content br,
    .story-content p br,
    .hero-text br,
    .warning-text br,
    .highlight-box br,
    .text-content-box br,
    .phase-desc br,
    .creator-desc br,
    .journey-step p br,
    .rescue-box p br,
    .rescue-lead br,
    .rescue-footer br,
    .mechanism-intro br,
    .evidence-box p br,
    .track-detail-box br,
    .track-exp br,
    .track-effect br,
    .guarantee-content br,
    .guarantee-content p br,
    .bonus-desc br,
    .bonus-title-main br,
    .notfor-scene p br,
    .objection-scene p br,
    .refund-steps-box br {
        display: none;
    }
}

/* ==========================================================================
   スマホ用 包括的レイアウト調整
   ========================================================================== */
@media (max-width: 768px) {
    html {
        font-size: 16px;
    }

    /* 基本テキストスタイル - 読みやすさ最優先 */
    body {
        line-height: 2.4;
        letter-spacing: 0.04em;
    }

    /* 段落テキスト */
    p {
        line-height: 2.5;
        margin-bottom: 1.5em;
    }

    /* 本文エリア */
    .story-content p,
    .text-content-box p {
        font-size: 1rem;
        line-height: 2.6;
        letter-spacing: 0.05em;
        margin-bottom: 1.8rem;
    }

    /* 説明テキスト */
    .section-desc,
    .phase-desc,
    .creator-desc {
        font-size: 0.95rem;
        line-height: 2.5;
        letter-spacing: 0.05em;
    }

    /* セクションタイトル */
    .section-title {
        font-size: 1.25rem;
        line-height: 2;
        margin-bottom: 1.5rem;
        letter-spacing: 0.03em;
    }

    /* サブタイトル */
    .sub-title {
        font-size: 1.1rem;
        line-height: 1.9;
        margin-top: 2rem;
        margin-bottom: 1rem;
    }

    /* ハイライトボックス */
    .highlight-box {
        padding: 1.2rem 1rem !important;
        line-height: 2.4 !important;
        font-size: 0.95rem;
        margin: 1.5rem 0;
    }

    /* 警告ボックス */
    .warning-box {
        padding: 1rem;
        margin-top: 1.5rem;
    }
    .warning-text {
        font-size: 0.9rem;
        line-height: 2.4;
    }

    /* リスト */
    .problem-list li,
    .benefit-list li,
    .feature-list li,
    .check-list-mini li {
        margin-bottom: 1.2rem;
        line-height: 2.2;
        font-size: 0.95rem;
    }

    /* 引用・特殊ボックス */
    .problem-list,
    [style*="border-left"] {
        padding: 1rem 1rem 1rem 1.2rem !important;
        margin: 1.5rem 0;
    }

    /* グラスカード */
    .glass-card {
        padding: 1.5rem 0.8rem;
    }

    /* コンテナ - 左右マージンを狭く */
    .container {
        width: 96%;
        padding: 0;
    }

    /* フェーズ・トラック説明 */
    .phase-item,
    .track-detail-box {
        line-height: 2.2;
    }
    .phase-desc,
    .track-exp,
    .track-effect {
        font-size: 0.88rem;
        line-height: 2.2;
        margin-bottom: 0.8rem;
    }

    /* ジャーニーセクション */
    .journey-step {
        padding: 1rem;
        margin-bottom: 1rem;
    }
    .journey-step p {
        font-size: 0.88rem;
        line-height: 2.2;
    }

    /* レスキューボックス */
    .rescue-box {
        padding: 1.2rem;
    }
    .rescue-content p {
        font-size: 0.85rem;
        line-height: 2;
    }

    /* クリエイタープロフィール */
    .creator-desc {
        font-size: 0.88rem;
        line-height: 2.2;
    }

    /* エビデンスボックス */
    .evidence-box p {
        font-size: 0.88rem;
        line-height: 2.2;
    }

    /* 体験談 */
    .testimonial-text {
        font-size: 0.9rem;
        line-height: 2;
    }

    /* トラックカード */
    .track-info {
        padding: 1rem;
    }
    .track-theme,
    .track-freq {
        font-size: 0.85rem;
        line-height: 1.8;
        margin-bottom: 0.6rem;
    }

    /* インラインスタイルの上書き */
    [style*="line-height: 2;"],
    [style*="line-height: 2.2;"] {
        line-height: 2.3 !important;
    }

    /* 強調テキストの調整 */
    strong {
        font-weight: 600;
    }

    /* CTAボタン周りの余白 */
    .cta-inline {
        margin: 2rem 0 !important;
    }

    /* BAカード */
    .ba-desc {
        font-size: 0.85rem;
        line-height: 2;
    }

    /* 保証セクション */
    .guarantee-content p {
        font-size: 0.9rem;
        line-height: 2.3;
        margin-bottom: 1.5rem;
    }

    /* 反論対応セクション */
    .objection-scene p {
        font-size: 0.9rem;
        line-height: 2.3;
    }

    /* 合わない人セクション */
    .notfor-list li {
        font-size: 0.9rem;
        line-height: 2;
        margin-bottom: 1rem;
    }

    /* ボーナスセクション */
    .bonus-desc {
        font-size: 0.9rem;
        line-height: 2.2;
    }
    .bonus-list li {
        font-size: 0.88rem;
        line-height: 2;
        margin-bottom: 0.8rem;
    }
    .bonus-title-main {
        font-size: 1.1rem;
        line-height: 1.6;
    }

    /* 返金手順ボックス */
    .refund-steps-box {
        padding: 1rem !important;
    }
    .refund-steps-list {
        font-size: 0.92rem;
        line-height: 2.2;
        padding-left: 1.2rem !important;
    }
    .refund-steps-note {
        font-size: 0.85rem !important;
        line-height: 2.0 !important;
    }
}

/* brの表示制御は上部のbody直後のルールで統一管理 */

a {
    text-decoration: none;
    color: inherit;
    transition: all 0.3s ease;
}

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

/* ==========================================================================
   #Utilities & Mixins
   ========================================================================== */
.en-font {
    font-family: var(--font-en);
    letter-spacing: 0.05em;
}

/* 文節改行用ユーティリティ */
.ib {
    display: inline-block;
}

/* sp-only/pc-onlyのルールは上部で統一管理 */

.text-gold {
    color: var(--c-accent-gold);
}

.text-center {
    text-align: center;
}

.mt-md {
    margin-top: 2rem;
}

.mt-lg {
    margin-top: 4rem;
}

/* ==========================================================================
   #Sophisticated Highlights (光のマーカー)
   ========================================================================== */
/* Gold Marker: For "Richness", "Life Change", "Positive" */
.hl-gold {
    background: linear-gradient(transparent 60%, rgba(207, 168, 110, 0.4) 60%);
    display: inline;
    padding: 0 2px;
    border-radius: 2px;
    /* 文字色は白のまま、またはわずかに明るく */
    color: #fff;
    font-weight: 500;
    text-shadow: 0 0 10px rgba(207, 168, 110, 0.3);
}

/* Cyan Marker: For "Science", "Frequency", "Logic" */
.hl-cyan {
    background: linear-gradient(transparent 60%, rgba(127, 234, 255, 0.3) 60%);
    display: inline;
    padding: 0 2px;
    border-radius: 2px;
    color: #fff;
    font-weight: 500;
    text-shadow: 0 0 10px rgba(127, 234, 255, 0.3);
}

/* Container */
.container {
    width: 92%; /* スマホでより広く使えるように */
    max-width: var(--w-container);
    margin: 0 auto;
    position: relative;
    z-index: 2;
}

/* ==========================================================================
   #Global Effects
   ========================================================================== */
/* Noise Overlay */
.noise-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.05'/%3E%3C/svg%3E");
    pointer-events: none;
    z-index: 999;
    opacity: 0.4;
    mix-blend-mode: overlay;
}

/* Glassmorphism Card */
.glass-card {
    background: var(--c-glass);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid var(--c-glass-border);
    border-radius: 16px;
    padding: clamp(1.5rem, 5vw, 4rem); /* スマホでのパディングを縮小 */
    box-shadow:
        0 4px 30px rgba(0, 0, 0, 0.5),
        inset 0 0 20px rgba(255, 255, 255, 0.02);
}

/* Parallax Backgrounds */
.scene {
    position: relative;
    width: 100%;
    overflow-x: hidden;
}

.bg-layer {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    z-index: 0;
    /* Basic parallax logic will be enhanced by JS or simple fixed for mobile stability */
    /* position: absolute + JS transform is better for mobile than bg-attachment: fixed */
}

/* For simple implementation without complex JS parallax initially */
@media (min-width: 769px) {
    .bg-layer.parallax {
        background-attachment: fixed;
    }
}

.overlay-layer {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom, var(--c-bg-void), transparent 50%, var(--c-bg-void));
    z-index: 1;
}

.overlay-layer.dark {
    background: rgba(0, 0, 0, 0.6);
}

/* ==========================================================================
   #Header
   ========================================================================== */
.header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: var(--h-header);
    z-index: 100;
    transition: background 0.3s;
    display: none;
    /* User requested removal */
}

.header-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
}

.logo {
    font-size: 1.2rem;
    font-weight: 400;
    color: var(--c-text-white);
    letter-spacing: 0.1em;
    text-shadow: 0 0 10px rgba(255, 255, 255, 0.3);
}

/* ==========================================================================
   #Hero Section
   ========================================================================== */
.hero-scene {
    min-height: 100dvh;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 1rem;
    position: relative;
}

.hero-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    max-width: 900px;
    z-index: 5;
    padding: 0 1rem;
}

.subtitle {
    font-size: clamp(0.7rem, 3vw, 1rem);
    color: var(--c-accent-cyan);
    letter-spacing: 0.2em;
    margin-bottom: 0.8rem;
    text-transform: uppercase;
    opacity: 0.9;
    display: block; /* 必要なら表示 */
}

.title-logo {
    /* 圧倒的な存在感と塊感 */
    font-size: clamp(3rem, 8vw, 6rem);
    line-height: 1.1;
    margin-top: 0;
    margin-bottom: 1rem;

    /* よりリッチなゴールド〜ローズのグラデーション */
    background: linear-gradient(135deg, #fff 0%, #f3e5ab 20%, #b76e79 50%, #fff 80%);
    background-size: 200% auto;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;

    /* 光彩効果の強化 */
    filter: drop-shadow(0 0 25px rgba(183, 110, 121, 0.7));
    animation: shineText 5s infinite linear;

    /* レイアウト設定 */
    text-align: center;

    /* PCでは1行表示 */
    white-space: nowrap;
}

@keyframes shineText {
    to { background-position: 200% center; }
}

/* ヒーロータグライン */
.hero-tagline {
    font-family: var(--font-jp-serif);
    font-size: clamp(0.95rem, 2.5vw, 1.2rem);
    color: var(--c-accent-gold);
    letter-spacing: 0.08em;
    text-align: center;
    margin-bottom: 2.5rem;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.6);
}

/* ヒーローテキストエリア */
.hero-text {
    text-align: center;
    margin-bottom: 2rem;
    width: 100%;
    max-width: 800px;
}

/* 問いかけ見出し */
.hero-question {
    font-family: var(--font-jp-serif);
    font-size: clamp(1.1rem, 3.5vw, 1.6rem);
    font-weight: 600;
    color: #fff;
    line-height: 1.8;
    margin-bottom: 1.5rem;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.8);
    word-break: auto-phrase;
}

/* 問いかけ・答えのbr制御 */
.hero-question br, .hero-answer br {
    display: inline;
}
@media (max-width: 768px) {
    .hero-question br, .hero-answer br {
        display: none;
    }
}

/* 答え */
.hero-answer {
    font-family: var(--font-jp-serif);
    font-size: clamp(1rem, 3vw, 1.3rem);
    color: var(--c-text-main);
    line-height: 1.9;
    margin-bottom: 2rem;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.6);
    word-break: auto-phrase;
}

.catch-copy {
    font-family: var(--font-jp-serif);
    font-size: clamp(1.3rem, 4vw, 2.2rem);
    font-weight: 600;
    letter-spacing: 0.03em;
    line-height: 1.7;
    color: #fff;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.8);
    text-align: center;
    margin-bottom: 1.5rem;
    width: 100%;
    word-break: auto-phrase;
}

/* キャッチコピーのbr制御 */
.catch-copy br {
    display: inline;
}
@media (max-width: 768px) {
    .catch-copy br:not(.sp-only) {
        display: none;
    }
    .catch-copy {
        font-size: 1.2rem;
        line-height: 1.7;
        padding: 0 0.5rem;
    }
}

/* 文節改行（.ib）間の微調整 */
.catch-copy .ib {
    display: inline-block;
}

/* ヒーローメインコピー */
.hero-main-copy {
    display: block;
    margin-bottom: 0.5rem;
}

/* ヒーローサブコピー */
.hero-sub-copy {
    font-family: var(--font-jp-sans);
    font-size: clamp(0.9rem, 2.5vw, 1.1rem);
    color: var(--c-accent-cyan);
    letter-spacing: 0.1em;
    margin-top: 0.5rem;
    font-weight: 400;
}

.warning-box {
    margin-top: 2rem;
    margin-bottom: 2rem;
    width: 100%;
    max-width: 620px;

    /* 高級感のある警告デザイン */
    background: rgba(10, 0, 0, 0.7); /* より深い黒 */
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    
    border: 1px solid rgba(255, 50, 50, 0.3);
    border-left: 3px solid #ff4444; /* アクセントライン */
    box-shadow: 0 0 30px rgba(255, 0, 0, 0.1);
    
    padding: 1.5rem;
    border-radius: 8px;
    text-align: left; /* テキストは左揃えで読みやすく */
}

.warning-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    border-bottom: 1px solid rgba(255, 50, 50, 0.2);
    padding-bottom: 0.8rem;
    margin-bottom: 1rem;
    justify-content: center; /* ヘッダーのみ中央 */
}

.warning-label {
    color: #ff4444;
    font-weight: 700;
    letter-spacing: 0.1em;
    font-size: 1rem;
}

.warning-text {
    font-size: 0.95rem; /* 少し大きくして読みやすく */
    color: #e0d0d0;
    line-height: 1.8;
    text-align: left; /* justifyによる間隔崩れを防ぐため左揃えに戻す */
    letter-spacing: 0.02em;
}

.warning-text strong {
    color: #ff6b6b; /* 強調色 */
    font-weight: 700;
}

/* PC用調整 */
@media (min-width: 769px) {
    .hero-scene {
        padding-top: 10vh;
        padding-bottom: 4vh;
        justify-content: center;
    }
    .title-logo {
        font-size: 5.5rem;
        margin-bottom: 0.8rem;
    }
    .hero-tagline {
        font-size: 1.3rem;
        margin-bottom: 3rem;
    }
    .hero-question {
        font-size: 1.7rem;
    }
    .hero-answer {
        font-size: 1.4rem;
    }
    .catch-copy {
        font-size: 1.9rem;
    }
}

/* スマホ用調整 */
@media (max-width: 768px) {
    .hero-scene {
        padding-top: 10vh;
        padding-bottom: 2rem;
    }
    .title-logo {
        font-size: clamp(2.5rem, 12vw, 3.5rem);
        white-space: normal;
        margin-bottom: 0.8rem;
    }
    .hero-tagline {
        font-size: 0.85rem;
        margin-bottom: 1.5rem;
        line-height: 1.8;
    }
    .hero-question {
        font-size: 1rem;
        line-height: 2;
        margin-bottom: 1.2rem;
    }
    .hero-answer {
        font-size: 0.92rem;
        line-height: 2.1;
        margin-bottom: 1.5rem;
    }
    .catch-copy {
        font-size: 1rem;
        line-height: 2;
    }
    .warning-box {
        padding: 1.2rem;
        margin-top: 1.5rem;
    }
    .warning-text {
        font-size: 0.88rem;
        line-height: 2;
    }
}

/* 小型スマホ用微調整（iPhone SE等） */
@media (max-width: 380px) {
    .hero-scene { padding-top: 10vh; }
    .title-logo { font-size: 2.3rem; }
    .hero-tagline { font-size: 0.85rem; }
    .catch-copy { font-size: 1rem; }
    .warning-box { padding: 1rem; }
    .hero-question { font-size: 0.95rem; }
    .hero-answer { font-size: 0.9rem; }
}

/* 重複定義を削除（上記の.catch-copy, .warning-box等を使用） */

.scroll-indicator {
    display: none;
}

.scroll-indicator .line {
    width: 1px;
    height: 40px;
    background: #fff;
    animation: scrollLine 2s infinite;
}

@keyframes scrollLine {
    0% {
        transform: scaleY(0);
        transform-origin: top;
    }

    50% {
        transform: scaleY(1);
        transform-origin: top;
    }

    50.1% {
        transform: scaleY(1);
        transform-origin: bottom;
    }

    100% {
        transform: scaleY(0);
        transform-origin: bottom;
    }
}

/* ==========================================================================
   #Sections & Components
   ========================================================================== */
.section-padding {
    /* Not used in HTML currently, but good for utils */
    padding: 6rem 0;
}

.mechanism-scene,
.narrative-scene,
.tracks-scene,
.testimonial-scene,
.offer-scene,
.creators-scene,
.technical-scene,
/* Keeping for back-compat if needed */
.guarantee-scene,
.bonus-scene,
.postscript-scene,
.faq-scene {
    padding: clamp(2.5rem, 5vw, 4rem); /* スマホでの余白をさらに縮小 */
    /* Reduced spacing per user feedback */
}

.section-title {
    font-family: var(--font-jp-serif);
    font-size: clamp(1.4rem, 4vw, 2.4rem);
    margin-bottom: 1.5rem;
    line-height: 1.5;
    word-break: auto-phrase;
}

/* セクションタイトル内のbrはスマホで非表示 */
.section-title br {
    display: inline;
}
@media (max-width: 768px) {
    .section-title br {
        display: none;
    }
    .section-title {
        font-size: 1.3rem;
        line-height: 1.6;
    }
}

.section-lead {
    font-size: clamp(0.9rem, 2vw, 1.1rem);
    opacity: 0.9;
}

.highlight-text {
    font-family: var(--font-jp-serif);
    font-size: 1.2rem;
    background: linear-gradient(120deg, transparent 0%, rgba(207, 168, 110, 0.2) 100%);
    padding: 0.2em 0.5em;
    border-left: 2px solid var(--c-accent-gold);
}

/* Visual Art */
.visual-area {
    margin: 2rem 0; /* 少し縮小 */
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
}

.art-visual {
    width: 100%;
    display: block;
    mix-blend-mode: lighten;
    /* Blend with background */
    opacity: 0.9;
}

/* Phase List */
.phase-list {
    display: flex;
    flex-direction: column;
    gap: 1.5rem; /* スマホでの間隔を縮小 */
    margin-top: 2rem;
}

.phase-item {
    padding: 1.2rem;
    border-bottom: 1px solid var(--c-glass-border);
}

.phase-title {
    font-size: 1.1rem;
    color: var(--c-accent-gold);
    margin-bottom: 0.5rem;
}

.phase-title .num {
    font-size: 1.3rem;
    margin-right: 0.5rem;
}

.phase-title .freq {
    font-size: 0.8rem;
    color: var(--c-accent-cyan);
    margin-left: 0.5rem;
    font-weight: 300;
}

.phase-desc {
    font-size: 0.95rem;
}

/* Tracks */
.track-list {
    display: flex;
    flex-direction: column;
    gap: 2.5rem; /* スマホ間隔縮小 */
    margin-top: 3rem;
}

.track-card {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
    align-items: center;
}

@media (min-width: 768px) {
    .track-list {
        gap: 4rem;
    }

    .track-card {
        grid-template-columns: 1fr 1fr;
        gap: 4rem;
    }

    .track-card.reverse {
        direction: rtl;
        /* Visual flip */
    }

    .track-card.reverse .track-info {
        direction: ltr;
        /* Reset text direction */
    }
}

.track-visual {
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 0 30px rgba(183, 110, 121, 0.2);
    aspect-ratio: 3/2;
}

.track-header {
    display: flex;
    justify-content: space-between;
    margin-bottom: 0.5rem;
    color: var(--c-accent-rose);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    padding-bottom: 0.5rem;
}

.track-title {
    font-size: 1.6rem;
    line-height: 1.2;
    margin-bottom: 0.2rem;
    color: var(--c-text-white);
}

.track-jp-title {
    font-size: 1rem;
    font-weight: 400;
    opacity: 0.7;
    margin-bottom: 1rem;
}

.track-meta .freq {
    display: inline-block;
    background: rgba(127, 234, 255, 0.1);
    color: var(--c-accent-cyan);
    padding: 2px 8px;
    font-size: 0.8rem;
    border-radius: 4px;
    margin-bottom: 1rem;
}

/* Creator Profile */
.creators-wrapper {
    display: flex;
    flex-direction: column;
    gap: 3rem;
    margin-bottom: 3rem;
}

.creator-divider {
    display: flex;
    justify-content: center;
    align-items: center;
    color: var(--c-accent-gold);
    font-size: 2rem;
    opacity: 0.8;
}

.creator-profile {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem; /* スマホ間隔 */
}

@media (min-width: 768px) {
    .creator-profile {
        flex-direction: row;
        align-items: flex-start;
        gap: 3rem;
    }

    .creator-profile.mirror {
        flex-direction: row-reverse;
    }
}

.creator-img {
    flex-shrink: 0;
    width: 150px; /* スマホサイズ */
    height: 150px;
    border-radius: 50%;
    overflow: hidden;
    border: 2px solid var(--c-accent-gold);
    box-shadow: 0 0 20px rgba(207, 168, 110, 0.3);
}

@media (min-width: 768px) {
    .creator-img {
        width: 200px;
        height: 200px;
    }
}

.creator-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.creator-info {
    flex: 1;
}

.creator-name {
    font-size: 1.4rem;
    margin-bottom: 0.5rem;
    color: var(--c-text-white);
}

.creator-role {
    font-size: 0.9rem;
    color: var(--c-accent-gold);
    margin-bottom: 1rem;
    letter-spacing: 0.1em;
}

.creator-desc {
    font-size: 0.95rem;
    line-height: 1.8;
}

.mt-xl {
    margin-top: 4rem; /* スマホ調整 */
}

/* --- New Sections CSS --- */

/* Evidence / Studio */
.evidence-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); /* 小さくして並びやすく */
    gap: 0.5rem;
    margin-top: 2rem;
}

.evidence-img {
    border-radius: 4px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    transition: transform 0.3s;
    height: 120px; /* スマホ高さ */
    object-fit: cover;
    width: 100%;
}

@media (min-width: 768px) {
    .evidence-gallery {
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
        gap: 1rem;
    }
    .evidence-img {
        height: 150px;
    }
}

.evidence-img:hover {
    transform: scale(1.05);
    z-index: 10;
}

/* Sample Audio */
.sample-player-box {
    background: rgba(0, 0, 0, 0.5);
    border: 1px solid var(--c-accent-cyan);
    padding: 1.5rem;
    border-radius: 12px;
    text-align: center;
    margin: 2rem 0;
    box-shadow: 0 0 30px rgba(127, 234, 255, 0.1);
}

.journey-step h4 {
    color: var(--c-accent-cyan);
    margin-bottom: 0.5rem;
    font-size: 1.1rem;
}

/* Benefits (30 Days Later) */
.benefit-grid {
    /* Obsolete benefit-grid styles removed */

    @media (min-width: 768px) {
        .benefit-grid {
            grid-template-columns: 1fr 1fr;
        }
    }
}

.benefit-category h3 {
    color: var(--c-accent-rose);
    margin-bottom: 1rem;
    font-size: 1.2rem;
    border-bottom: 1px solid rgba(183, 110, 121, 0.3);
    padding-bottom: 0.5rem;
}



/* Bonuses */
/* Bonuses (Cinematic Archive Style) */
.bonus-scene {
    padding: clamp(3rem, 6vw, 5rem) 0;
    background: #050510;
    /* Darker than default */
    position: relative;
}

.bonus-container {
    max-width: 1000px;
    margin: 0 auto;
    padding: 2px;
    /* For border gradient */
    background: linear-gradient(135deg, rgba(212, 175, 55, 0.3), rgba(60, 20, 80, 0.3));
    border-radius: 16px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
}

.bonus-layout {
    display: flex;
    flex-direction: column;
    background: #111118;
    border-radius: 14px;
    overflow: hidden;
}

/* Left: Visual */
.bonus-visual {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}

.bonus-thumb-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
}

.bonus-thumb {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.bonus-container:hover .bonus-thumb {
    transform: scale(1.05);
}

/* Play Overlay */
.play-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.3);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    transition: background 0.3s ease;
}

.bonus-container:hover .play-overlay {
    background: rgba(0, 0, 0, 0.1);
}

.play-icon {
    width: 50px;
    height: 50px;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(5px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    color: #fff;
    margin-bottom: 1rem;
    box-shadow: 0 0 20px rgba(255, 255, 255, 0.1);
}

.play-text {
    font-family: 'Cinzel', serif;
    font-size: 1rem;
    letter-spacing: 0.2em;
    color: rgba(255, 255, 255, 0.7);
    text-shadow: 0 0 10px rgba(255, 255, 255, 0.5);
}

/* Right: Text Content */
.bonus-text-content {
    padding: 1.5rem; /* スマホパディング */
    color: #e0e0e0;
}

.bonus-header {
    margin-bottom: 1rem;
}

.bonus-badge {
    display: inline-block;
    background: linear-gradient(90deg, #d4af37, #f3e5ab);
    color: #000;
    font-weight: 700;
    font-size: 0.75rem;
    padding: 0.2rem 0.8rem;
    border-radius: 4px;
    margin-bottom: 1rem;
}

.bonus-main-title {
    font-family: 'Shippori Mincho', serif;
    font-size: 1.5rem;
    line-height: 1.4;
    background: linear-gradient(90deg, #fff, #d4af37);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    margin-bottom: 0;
}

.bonus-intro {
    font-size: 0.9rem;
    line-height: 1.7;
    opacity: 1;
    margin-bottom: 1.5rem;
    color: #f0f0f0;
}

.bonus-points {
    list-style: none;
    padding: 0;
    margin: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.2);
    padding-top: 1.5rem;
}

.bonus-points li {
    font-size: 0.9rem;
    margin-bottom: 1rem;
    padding-left: 1.8rem;
    position: relative;
    opacity: 1;
    color: #e0e0e0;
}

.bonus-points li::before {
    content: "✔";
    position: absolute;
    left: 0;
    color: #d4af37;
}

/* Desktop Layout */
@media (min-width: 900px) {
    .bonus-layout {
        flex-direction: row;
        align-items: stretch;
    }

    .bonus-visual {
        width: 50%;
        aspect-ratio: 16 / 9;
        /* Force cinematic ratio, cropping 1:1 image */
    }

    .bonus-text-content {
        width: 50%;
        padding: 3rem;
        display: flex;
        flex-direction: column;
        justify-content: center;
    }

    .bonus-main-title {
        font-size: 2.0rem;
    }
}

/* Text Readability Improvements */
.bonus-intro {
    font-size: 1rem;
    line-height: 1.8;
    opacity: 1;
    /* Removed opacity for better visibility */
    margin-bottom: 2rem;
    color: #f0f0f0;
    /* Brighter text */
}

.bonus-points li {
    font-size: 0.95rem;
    /* Slightly larger */
    margin-bottom: 1rem;
    padding-left: 2rem;
    position: relative;
    opacity: 1;
    /* Removed opacity */
    color: #e0e0e0;
}

.bonus-points li::before {
    content: "✔";
    position: absolute;
    left: 0;
    color: #d4af37;
    font-size: 1.2rem;
}

/* Objection (Money) */
.objection-scene {
    background: #000;
    padding-top: clamp(3rem, 10vw, 6rem);
    /* Reduced from 15rem */
    padding-bottom: clamp(3rem, 10vw, 6rem);
}

.objection-scene .glass-card {
    padding: clamp(1.5rem, 5vw, 3rem) 1.5rem; /* スマホパディング調整 */
    /* More internal breathing room */
}

/* Guarantee Independent Section */
.guarantee-scene {
    background: linear-gradient(to bottom, var(--c-bg-deep), var(--c-bg-void));
    border-top: 1px solid var(--c-glass-border);
    border-bottom: 1px solid var(--c-glass-border);
    padding: clamp(3rem, 6vw, 4rem) 0;
}

.guarantee-badge-large {
    width: clamp(100px, 15vw, 150px);
    max-width: 100%;
    margin: 0 auto 1.5rem;
    display: block;
    filter: drop-shadow(0 0 15px rgba(207, 168, 110, 0.4));
}

    .card-brands {
        display: flex;
        justify-content: center;
        gap: 1rem;
        font-size: 0.9rem;
        letter-spacing: 0.05em;
        flex-wrap: wrap;
        margin-top: 0.5rem;
    }

    .card-brands span {
        border: 1px solid rgba(207, 168, 110, 0.3);
        padding: 0.2rem 0.6rem;
        border-radius: 4px;
        background: rgba(207, 168, 110, 0.05);
        color: var(--c-accent-gold);
    }

    /* Postscript Scene */
    .postscript-scene {
        background: linear-gradient(to bottom, var(--c-bg-void), #150a20);
    }

    /* Track Details Restored */
    .track-detail-box {
        background: rgba(0, 0, 0, 0.3);
        padding: 1.5rem;
        border-radius: 8px;
        margin-top: 1.5rem;
        font-size: 0.9rem;
        border-left: 3px solid var(--c-accent-gold);
    }

    .track-detail-box p {
        margin-bottom: 0.5rem;
    }

    .track-detail-box strong {
        color: var(--c-accent-cyan);
    }

    .guarantee-content {
        text-align: center;
        max-width: 800px;
        margin: 0 auto;
    }

    .guarantee-note-box {
        background: rgba(255, 255, 255, 0.05);
        padding: 1.5rem;
        border-radius: 8px;
        text-align: left;
        margin-top: 2rem;
    }

    /* 返金申請手順ボックス */
    .refund-steps-box {
        background: rgba(127, 234, 255, 0.1);
        padding: 1.5rem;
        border-radius: 12px;
        border: 1px solid rgba(127, 234, 255, 0.3);
        text-align: left;
    }

    .refund-steps-title {
        font-weight: bold;
        color: var(--c-accent-cyan);
        margin-bottom: 1rem;
    }

    .refund-steps-list {
        line-height: 2.2;
        padding-left: 1.5rem;
        margin: 0;
        text-align: left;
    }

    .refund-steps-note {
        font-size: 0.9em;
        opacity: 0.85;
        margin-top: 1rem;
        line-height: 1.9;
        text-align: left;
    }

    .refund-highlight {
        font-size: 1.15em;
        font-weight: bold;
        color: var(--c-accent-gold);
    }

    .guarantee-badge {
        max-width: 120px;
        /* Restrict badge size */
        margin: 0 auto 1rem;
    }

    .highlight-inline {
        background: linear-gradient(to top, rgba(183, 110, 121, 0.4) 40%, transparent 40%);
    }

    /* ==========================================================================
   #Offer Section (Added)
   ========================================================================== */
    .offer-header {
        margin-bottom: 4.5rem;
        position: relative;
        z-index: 20;
    }

    .offer-title {
        font-size: clamp(2rem, 5vw, 4rem);
        color: var(--c-text-white);
        margin-bottom: 0.8rem;
    }

    .offer-subtitle {
        color: var(--c-accent-cyan);
        font-size: 1.15rem;
        font-weight: 500;
        text-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
        display: block;
        margin-top: 0.5rem;
    }

    .price-table-wrapper {
        display: flex;
        flex-direction: column;
        gap: 2rem;
        margin-top: 2rem;
        justify-content: center;
        align-items: center;
        position: relative;
        z-index: 5;
    }

    /* Breakpoint adjusted to 768px for Tablet friendliness */
    @media (min-width: 768px) {
        .price-table-wrapper {
            flex-direction: row;
            align-items: stretch;
            gap: 1rem;
        }
    }

    .price-col {
        background: rgba(255, 255, 255, 0.03);
        border: 1px solid rgba(255, 255, 255, 0.1);
        border-radius: 12px;
        padding: 1.5rem 1.2rem; /* スマホ向けパディング */
        width: 100%;
        max-width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        position: relative;
        transition: transform 0.3s;
    }

    .price-col.standard {
        order: 2;
        /* Put standard second on mobile/stack if needed, or default */
    }

    @media (min-width: 768px) {
        .price-col {
            padding: 3rem 2rem;
            max-width: 400px;
        }

        .price-col.standard {
            order: 1;
            border-right: none;
            border-top-right-radius: 0;
            border-bottom-right-radius: 0;
        }

        .price-col.vip {
            order: 2;
            border-top-left-radius: 0;
            border-bottom-left-radius: 0;
            transform: scale(1.1);
            z-index: 10;
            box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
        }
    }

    .price-col.vip {
        background: linear-gradient(to bottom, rgba(40, 20, 30, 0.9), rgba(20, 10, 20, 0.95));
        border: 2px solid var(--c-accent-gold);
    }

    .vip-badge {
        position: absolute;
        top: -15px;
        left: 50%;
        transform: translateX(-50%);
        background: var(--c-accent-gold);
        color: #000;
        padding: 6px 20px;
        font-size: 0.9rem;
        font-weight: 700;
        border-radius: 50px;
        letter-spacing: 0.1em;
        white-space: nowrap;
        box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
    }

    .col-title {
        font-size: 2rem;
        color: var(--c-text-white);
        margin-bottom: 0.2rem;
    }

    .col-jp {
        color: rgba(255, 255, 255, 0.6);
        margin-bottom: 2rem;
        font-size: 0.9rem;
    }

    .benefit-list {
        list-style: none;
        margin-bottom: 2rem;
        flex-grow: 1;
        width: 100%;
    }

    .benefit-list li {
        padding: 0.8rem 0;
        border-bottom: 1px solid rgba(255, 255, 255, 0.05);
        font-size: 0.95rem;
    }

    .benefit-list li.highlight {
        color: var(--c-accent-gold);
        background: rgba(207, 168, 110, 0.1);
    }

    .price-area {
        margin-bottom: 2rem;
    }

    .price-val {
        font-size: 2.5rem;
        font-family: var(--font-en);
        font-weight: 700;
    }

    .currency {
        font-size: 0.9rem;
        margin-left: 0.3rem;
    }

    .scarcity-text {
        color: #ff6b6b;
        font-weight: bold;
        margin-bottom: 1rem;
        font-size: 0.9rem;
        animation: pulse 2s infinite;
    }

    @keyframes pulse {

        0%,
        100% {
            opacity: 1;
        }

        50% {
            opacity: 0.7;
        }
    }

    .btn {
        display: inline-block;
        padding: 1rem 2rem;
        border-radius: 50px;
        text-decoration: none;
        font-weight: bold;
        width: 100%;
        transition: all 0.3s;
    }

    .btn-text {
        display: block;
        font-size: 1.1rem;
        margin-bottom: 0.2rem;
    }

    .btn-sub {
        display: block;
        font-size: 0.75rem;
        opacity: 0.9;
        font-weight: normal;
    }

    .btn-secondary {
        background: linear-gradient(135deg, rgba(127, 234, 255, 0.2) 0%, rgba(127, 234, 255, 0.1) 100%);
        color: #fff;
        border: 1px solid rgba(127, 234, 255, 0.5);
        box-shadow: 0 2px 15px rgba(127, 234, 255, 0.2);
    }

    .btn-secondary:hover {
        background: linear-gradient(135deg, rgba(127, 234, 255, 0.35) 0%, rgba(127, 234, 255, 0.2) 100%);
        border-color: rgba(127, 234, 255, 0.7);
        box-shadow: 0 4px 20px rgba(127, 234, 255, 0.35);
        transform: translateY(-2px);
    }

    .btn-primary {
        background: linear-gradient(135deg, #b76e79 0%, #cfa86e 50%, #b76e79 100%);
        color: #fff;
        border: none;
        box-shadow: 0 4px 20px rgba(183, 110, 121, 0.5);
    }

    .btn-primary:hover {
        transform: translateY(-2px);
        box-shadow: 0 6px 25px rgba(183, 110, 121, 0.6);
    }

    /* Glow effect for CTA buttons */
    .btn.glow {
        animation: glowPulse 2s infinite ease-in-out;
    }

    @keyframes glowPulse {
        0%, 100% {
            box-shadow: 0 4px 20px rgba(183, 110, 121, 0.4);
        }
        50% {
            box-shadow: 0 4px 30px rgba(183, 110, 121, 0.7), 0 0 40px rgba(207, 168, 110, 0.3);
        }
    }

    /* ==========================================================================
   #Footer
   ========================================================================== */
    .footer {
        background: #050208;
        padding: 4rem 0;
        border-top: 1px solid rgba(255, 255, 255, 0.05);
        margin-top: 0;
        text-align: center;
    }

    .footer .container {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 2rem;
    }

    .footer-links {
        display: flex;
        gap: 2rem;
        justify-content: center;
        flex-wrap: wrap;
    }

    .footer-links a {
        color: rgba(255, 255, 255, 0.6);
        font-size: 0.85rem;
        padding-bottom: 2px;
        border-bottom: 1px solid transparent;
    }

    .footer-links a:hover {
        color: #fff;
        border-bottom-color: rgba(255, 255, 255, 0.5);
    }

    .copyright {
        color: rgba(255, 255, 255, 0.3);
        font-size: 0.8rem;
        order: 2;
        /* Put copyright below links */
    }

    @media (min-width: 768px) {
        .footer .container {
            flex-direction: row;
            justify-content: space-between;
        }

        .copyright {
            order: 0;
            text-align: left;
        }

        .footer-links {
            order: 1;
        }
    }

/* ==========================================================================
   #FVセクション（4点固定表示 & 適合条件）
   ========================================================================== */

/* FV 4点固定表示 */
.fv-specs {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 0;
    margin: 1.5rem auto 1rem;
    padding: 0.8rem 1.5rem;
    background: rgba(10, 5, 16, 0.6);
    border: 1px solid rgba(207, 168, 110, 0.3);
    border-radius: 50px;
    backdrop-filter: blur(10px);
    max-width: 600px;
}

.fv-spec-item {
    padding: 0.3rem 1rem;
}

.fv-spec-label {
    font-size: 0.95rem;
    color: var(--c-accent-gold);
    font-weight: 500;
    letter-spacing: 0.05em;
}

.fv-spec-divider {
    width: 1px;
    height: 16px;
    background: rgba(207, 168, 110, 0.4);
}

@media (max-width: 768px) {
    .fv-specs {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        gap: 0.5rem 0;
        border-radius: 30px;
        padding: 0.8rem 1.2rem;
        max-width: 100%;
        width: auto;
    }

    .fv-spec-divider {
        width: 1px;
        height: 14px;
        background: rgba(207, 168, 110, 0.3);
        display: block;
    }

    .fv-spec-item {
        padding: 0.2rem 0.6rem;
    }

    .fv-spec-label {
        font-size: 0.75rem;
        white-space: nowrap;
    }
}

/* 適合条件ボックス */
.fit-check-box {
    max-width: 520px;
    margin: 0 auto 2rem;
    padding: 1.5rem 2rem;
    background: rgba(10, 5, 16, 0.7);
    border: 1px solid rgba(127, 234, 255, 0.2);
    border-radius: 12px;
    backdrop-filter: blur(10px);
}

.fit-check-header {
    text-align: center;
    margin-bottom: 1rem;
}

.fit-check-label {
    font-size: 0.75rem;
    color: var(--c-accent-cyan);
    letter-spacing: 0.2em;
    border-bottom: 1px solid rgba(127, 234, 255, 0.3);
    padding-bottom: 0.3rem;
}

.fit-check-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.fit-check-list li {
    position: relative;
    padding: 0.6rem 0 0.6rem 1.5rem;
    font-size: 0.9rem;
    color: var(--c-text-main);
    line-height: 1.6;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.fit-check-list li:last-child {
    border-bottom: none;
}

.fit-check-list li::before {
    content: "✦";
    position: absolute;
    left: 0;
    top: 0.6rem;
    color: var(--c-accent-cyan);
    font-size: 0.7rem;
}

@media (max-width: 768px) {
    .fit-check-box {
        margin: 0 1rem 2rem;
        padding: 1.2rem 1.5rem;
    }

    .fit-check-list li {
        font-size: 0.85rem;
        padding: 0.5rem 0 0.5rem 1.3rem;
    }
}

/* ==========================================================================
   #追加スタイル（LP改善用）
   ========================================================================== */

/* ハイライトボックス（共感セクション用） */
.highlight-box {
    background: rgba(10, 5, 16, 0.6);
    border-left: 2px solid var(--c-accent-cyan);
    padding: 1.5rem 1.8rem;
    margin: 1.5rem 0;
    border-radius: 0 8px 8px 0;
    text-align: left !important;
    line-height: 2;
}

@media (max-width: 768px) {
    .highlight-box {
        padding: 1.2rem 1.5rem;
        margin: 1.5rem 0;
    }
}

/* 設計思想のミニリスト */
.check-list-mini {
    list-style: none;
    padding: 0;
    margin: 1rem 0;
}
.check-list-mini li {
    padding: 0.5rem 0 0.5rem 1.5rem;
    position: relative;
    border-bottom: 1px solid rgba(255,255,255,0.05);
}
.check-list-mini li:last-child {
    border-bottom: none;
}
.check-list-mini li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--c-accent-cyan);
    font-weight: bold;
}

/* 30日プログラムのミニTip */
.mini-tip {
    display: inline-block;
    background: rgba(207, 168, 110, 0.2);
    color: var(--c-accent-gold);
    font-size: 0.85rem;
    padding: 0.3rem 0.8rem;
    border-radius: 20px;
    margin-top: 0.5rem;
}

/* レスキューボックス（挫折防止） */
.rescue-box {
    background: rgba(10, 5, 16, 0.7);
    border: 1px solid rgba(207, 168, 110, 0.25);
    border-radius: 12px;
    padding: 2rem;
    margin-top: 2rem;
}
.rescue-label {
    text-align: center;
    font-size: 0.7rem;
    color: var(--c-accent-cyan);
    letter-spacing: 0.2em;
    margin-bottom: 0.5rem;
}
.rescue-title {
    text-align: center;
    color: var(--c-accent-gold);
    font-size: 1.2rem;
    margin-bottom: 1rem;
    font-family: var(--font-jp-serif);
}
.rescue-lead {
    text-align: center;
    margin-bottom: 1.5rem;
    font-size: 0.9rem;
    opacity: 0.85;
    line-height: 1.8;
}
.rescue-rules {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}
.rescue-rule {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.05);
    padding: 1rem 1.2rem;
    border-radius: 8px;
}
.rescue-num {
    font-family: var(--font-en);
    font-size: 0.8rem;
    color: var(--c-accent-gold);
    font-weight: 500;
    flex-shrink: 0;
    opacity: 0.7;
}
.rescue-content strong {
    color: var(--c-text-white);
    display: block;
    margin-bottom: 0.3rem;
    font-size: 0.95rem;
}
.rescue-content p {
    font-size: 0.85rem;
    opacity: 0.75;
    margin: 0;
    line-height: 1.6;
}
.rescue-footer {
    text-align: center;
    margin-top: 1.5rem;
    font-size: 0.85rem;
    color: var(--c-accent-cyan);
    opacity: 0.9;
    line-height: 1.8;
}

@media (max-width: 768px) {
    .rescue-box {
        padding: 1.5rem 1.2rem;
        margin: 2rem 0;
    }
    .rescue-rule {
        padding: 0.8rem 1rem;
    }
}

/* VIP詳細ボックス */
/* プラン情報ブロック（価格カード外） */
.plan-info-block {
    margin-top: 3rem;
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.plan-comparison-box {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    padding: 1.5rem;
}

.plan-info-title {
    font-size: 1.1rem;
    font-weight: 600;
    text-align: center;
    margin-bottom: 1.5rem;
    color: #fff;
}

.plan-compare-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.plan-compare-item {
    background: rgba(127, 234, 255, 0.08);
    border: 1px solid rgba(127, 234, 255, 0.2);
    border-radius: 8px;
    padding: 1.2rem;
    text-align: center;
}

.plan-compare-item.vip-item {
    background: rgba(207, 168, 110, 0.1);
    border-color: rgba(207, 168, 110, 0.3);
}

.plan-label {
    display: block;
    font-weight: 700;
    font-size: 1rem;
    margin-bottom: 0.5rem;
    color: var(--c-accent-cyan);
}

.plan-compare-item.vip-item .plan-label {
    color: var(--c-accent-gold);
}

.plan-compare-item p {
    font-size: 1.05rem;
    line-height: 1.8;
    color: var(--c-text-main);
    margin: 0;
    text-align: center;
}

/* VIP詳細ブロック */
.vip-detail-block {
    background: linear-gradient(135deg, rgba(207, 168, 110, 0.08) 0%, rgba(183, 110, 121, 0.08) 100%);
    border: 1px solid rgba(207, 168, 110, 0.25);
    border-radius: 12px;
    padding: 1.5rem;
}

.vip-sessions-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-bottom: 1rem;
}

@media (min-width: 768px) {
    .vip-sessions-grid {
        grid-template-columns: 1fr 1fr;
    }
}

.vip-session-card {
    background: rgba(10, 5, 16, 0.5);
    border: 1px solid rgba(207, 168, 110, 0.2);
    border-radius: 8px;
    padding: 1.2rem;
}

.vip-session-num {
    display: inline-block;
    background: linear-gradient(135deg, var(--c-accent-gold), var(--c-accent-rose));
    color: #fff;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.3rem 0.8rem;
    border-radius: 20px;
    margin-bottom: 0.8rem;
}

.vip-detail-lead {
    font-size: 0.92rem;
    line-height: 1.8;
    color: var(--c-text-main);
    margin-bottom: 1.5rem;
    text-align: center;
}

.vip-session-date {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--c-accent-cyan);
    margin: 0 0 0.6rem 0;
    letter-spacing: 0.03em;
}

.vip-session-result {
    font-weight: 600;
    color: var(--c-accent-gold);
    font-size: 0.95rem;
    margin-bottom: 0.5rem;
}

.vip-session-desc {
    font-size: 0.85rem;
    line-height: 1.7;
    color: var(--c-text-main);
    margin: 0;
}

.vip-archive-note {
    text-align: center;
    font-size: 0.85rem;
    color: var(--c-accent-cyan);
    margin: 0;
}

/* スマホ用調整 */
@media (max-width: 767px) {
    .plan-compare-grid {
        grid-template-columns: 1fr;
    }
    .plan-info-block {
        margin-top: 2rem;
    }
}

/* 旧VIP詳細ボックス（互換性用に残す） */
.vip-detail-box {
    background: rgba(10, 5, 16, 0.6);
    border: 1px solid rgba(207, 168, 110, 0.2);
    border-radius: 8px;
    padding: 1.2rem;
    margin: 1rem 0;
    text-align: left;
}
.vip-detail-title {
    color: var(--c-accent-gold);
    font-size: 0.8rem;
    font-weight: 500;
    margin-bottom: 1rem;
    text-align: center;
    letter-spacing: 0.05em;
}
.vip-session {
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid rgba(255,255,255,0.08);
}
.vip-session:last-of-type {
    border-bottom: none;
    margin-bottom: 0.5rem;
    padding-bottom: 0;
}
.vip-session-num {
    display: inline-block;
    background: linear-gradient(135deg, var(--c-accent-gold), var(--c-accent-rose));
    color: #000;
    font-family: var(--font-en);
    font-size: 0.65rem;
    font-weight: 600;
    padding: 0.15rem 0.5rem;
    border-radius: 3px;
    margin-bottom: 0.4rem;
}
.vip-session p {
    font-size: 0.8rem;
    margin: 0;
    line-height: 1.7;
    color: var(--c-text-main);
}
.vip-session p strong {
    color: var(--c-text-white);
    display: block;
    margin-bottom: 0.2rem;
}
.vip-archive-note {
    font-size: 0.75rem;
    color: var(--c-accent-cyan);
    text-align: center;
    margin-top: 0.5rem;
    opacity: 0.8;
}
.vip-who-text {
    font-size: 0.8rem;
    text-align: center;
    margin: 1rem 0 0.5rem;
    line-height: 1.6;
    color: var(--c-text-main);
    opacity: 0.9;
}
.vip-who-item {
    display: inline-block;
    background: rgba(127, 234, 255, 0.08);
    border: 1px solid rgba(127, 234, 255, 0.15);
    padding: 0.2rem 0.6rem;
    border-radius: 20px;
    margin: 0.15rem;
    font-size: 0.75rem;
    color: var(--c-accent-cyan);
}

/* 購入後の流れセクション */
.howto-scene {
    padding: 60px 0;
}
.howto-scene .glass-card {
    max-width: 700px;
    margin: 0 auto;
}
.howto-steps {
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
    max-width: 550px;
    margin: 1.5rem auto 0;
}
.howto-step {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.05);
    padding: 1rem 1.2rem;
    border-radius: 8px;
}
.howto-num {
    width: 32px;
    height: 32px;
    background: linear-gradient(135deg, var(--c-accent-gold), var(--c-accent-rose));
    color: #000;
    font-family: var(--font-en);
    font-weight: 600;
    font-size: 0.9rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.howto-content h4 {
    color: var(--c-text-white);
    font-size: 1rem;
    margin-bottom: 0.3rem;
    font-weight: 500;
}
.howto-content p {
    font-size: 0.85rem;
    opacity: 0.75;
    margin: 0;
    line-height: 1.6;
}
.howto-note {
    font-size: 0.8rem;
    opacity: 0.6;
    line-height: 1.7;
}
.sub-title-small {
    font-size: 0.85rem;
    color: var(--c-accent-cyan);
    font-weight: normal;
    display: block;
    margin-top: 0.3rem;
}

@media (max-width: 768px) {
    .howto-step {
        padding: 0.8rem 1rem;
    }
    .howto-content h4 {
        font-size: 0.95rem;
    }
}

/* FAQカテゴリ */
.faq-category {
    background: rgba(10, 5, 16, 0.5);
    border: 1px solid rgba(207, 168, 110, 0.2);
    color: var(--c-accent-gold);
    padding: 0.5rem 1rem;
    margin: 2rem 0 0.8rem 0;
    border-radius: 4px;
    font-weight: 500;
    font-size: 0.85rem;
    letter-spacing: 0.05em;
}
.faq-category:first-child {
    margin-top: 0;
}

/* FAQ項目のスタイル調整 */
.faq-item {
    margin-bottom: 0.5rem;
}
.faq-item dt {
    font-size: 0.95rem;
}
.faq-item dd {
    font-size: 0.9rem;
    line-height: 1.8;
    opacity: 0.85;
}

/* 署名スタイル */
.signature {
    font-family: var(--font-jp-serif);
    font-size: 1.2rem;
    color: var(--c-accent-gold);
    margin-top: 2rem !important;
}

/* CTAインライン */
.cta-inline {
    margin: 2rem 0;
}
.cta-inline .btn {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    padding: 1rem 2.5rem;
    background: rgba(207, 168, 110, 0.15);
    border: 1px solid rgba(207, 168, 110, 0.4);
    border-radius: 8px;
    transition: all 0.3s ease;
}
.cta-inline .btn:hover {
    background: rgba(207, 168, 110, 0.25);
    border-color: rgba(207, 168, 110, 0.6);
    transform: translateY(-2px);
}
.cta-inline .btn-text {
    font-size: 1rem;
    color: var(--c-accent-gold);
    font-weight: 500;
}
.cta-inline .btn-sub {
    font-size: 0.75rem;
    opacity: 0.7;
    margin-top: 0.3rem;
    color: var(--c-text-main);
}

/* CTAボタン - プライマリ（目立つ・ローズゴールド） */
.cta-inline .btn.btn-primary {
    background: linear-gradient(135deg, #b76e79 0%, #cfa86e 50%, #b76e79 100%);
    border: none;
    box-shadow: 0 4px 20px rgba(183, 110, 121, 0.5);
}
.cta-inline .btn.btn-primary .btn-text {
    color: #fff;
    font-size: 1.15rem;
    font-weight: 600;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}
.cta-inline .btn.btn-primary .btn-sub {
    color: rgba(255, 255, 255, 0.9);
    opacity: 1;
}
.cta-inline .btn.btn-primary:hover {
    background: linear-gradient(135deg, #c77f8a 0%, #dab97f 50%, #c77f8a 100%);
    box-shadow: 0 6px 30px rgba(183, 110, 121, 0.7);
    transform: translateY(-3px);
}

/* CTAボタン - セカンダリ（シアン系） */
.cta-inline .btn.btn-secondary {
    background: linear-gradient(135deg, rgba(127, 234, 255, 0.25) 0%, rgba(127, 234, 255, 0.15) 100%);
    border: 1px solid rgba(127, 234, 255, 0.6);
    box-shadow: 0 3px 15px rgba(127, 234, 255, 0.25);
}
.cta-inline .btn.btn-secondary .btn-text {
    color: #fff;
    font-size: 1.05rem;
    font-weight: 500;
}
.cta-inline .btn.btn-secondary .btn-sub {
    color: rgba(127, 234, 255, 0.9);
    opacity: 1;
}
.cta-inline .btn.btn-secondary:hover {
    background: linear-gradient(135deg, rgba(127, 234, 255, 0.4) 0%, rgba(127, 234, 255, 0.25) 100%);
    border-color: rgba(127, 234, 255, 0.8);
    box-shadow: 0 5px 25px rgba(127, 234, 255, 0.4);
    transform: translateY(-3px);
}

/* 大きいCTAボタン */
.btn-cta-large {
    padding: 1.2rem 3rem !important;
}
.btn-cta-large .btn-text {
    font-size: 1.25rem !important;
}

/* 価格カード内のボタン */
.price-card .btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 1rem 2rem;
    margin-top: 1.5rem;
    border-radius: 8px;
    transition: all 0.3s ease;
}
.price-card .btn.btn-secondary {
    background: linear-gradient(135deg, rgba(127, 234, 255, 0.3) 0%, rgba(127, 234, 255, 0.15) 100%);
    border: 2px solid rgba(127, 234, 255, 0.6);
    box-shadow: 0 4px 20px rgba(127, 234, 255, 0.25);
}
.price-card .btn.btn-secondary .btn-text {
    color: #fff;
    font-size: 1.1rem;
    font-weight: 600;
}
.price-card .btn.btn-secondary .btn-sub {
    color: rgba(127, 234, 255, 0.9);
    font-size: 0.8rem;
    margin-top: 0.3rem;
}
.price-card .btn.btn-secondary:hover {
    background: linear-gradient(135deg, rgba(127, 234, 255, 0.45) 0%, rgba(127, 234, 255, 0.3) 100%);
    border-color: var(--c-accent-cyan);
    box-shadow: 0 6px 30px rgba(127, 234, 255, 0.4);
    transform: translateY(-3px);
}
.price-card .btn.btn-primary {
    background: linear-gradient(135deg, #b76e79 0%, #cfa86e 50%, #b76e79 100%);
    border: none;
    box-shadow: 0 4px 25px rgba(183, 110, 121, 0.5);
}
.price-card .btn.btn-primary .btn-text {
    color: #fff;
    font-size: 1.1rem;
    font-weight: 600;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}
.price-card .btn.btn-primary .btn-sub {
    color: rgba(255, 255, 255, 0.9);
    font-size: 0.8rem;
    margin-top: 0.3rem;
}
.price-card .btn.btn-primary:hover {
    background: linear-gradient(135deg, #c77f8a 0%, #dab97f 50%, #c77f8a 100%);
    box-shadow: 0 6px 35px rgba(183, 110, 121, 0.7);
    transform: translateY(-3px);
}

/* 合わない人リスト */
.hl-rose {
    color: var(--c-accent-rose);
}
.notfor-scene .glass-card {
    /* max-width削除 - 他のセクションと同じ幅に */
}
.notfor-list {
    list-style: none;
    padding: 0;
    max-width: 700px;
    margin: 2.5rem auto;
}
.notfor-list li {
    padding: 1.2rem 0 1.2rem 1.8rem;
    position: relative;
    border-bottom: 1px solid rgba(183, 110, 121, 0.15);
    font-size: 0.95rem;
    line-height: 1.9;
}
.notfor-list li:last-child {
    border-bottom: none;
}
.notfor-list li::before {
    content: "—";
    position: absolute;
    left: 0;
    color: var(--c-accent-rose);
    font-weight: 400;
    font-size: 1rem;
    opacity: 0.7;
}

@media (max-width: 768px) {
    .notfor-list li {
        font-size: 0.85rem;
        padding: 0.6rem 0 0.6rem 1.5rem;
    }
}

/* ==========================================================================
   スマホ読みやすさ強化（包括的修正） 2026-01-13
   ========================================================================== */

@media (max-width: 768px) {
    /* コンテナの横パディングを増やして画面端に余白を確保 */
    .container {
        padding-left: 1.2rem !important;
        padding-right: 1.2rem !important;
    }

    /* glass-cardの内側パディングを調整 */
    .glass-card {
        padding: 1.5rem 1.2rem !important;
    }

    /* 全テキストの基本設定 */
    body {
        font-size: 15px;
        line-height: 2;
        letter-spacing: 0.03em;
    }

    /* 段落テキストの統一 */
    p {
        font-size: 0.95rem;
        line-height: 2.2;
        margin-bottom: 1.5em;
        word-break: auto-phrase;
    }

    /* story-content内のテキスト */
    .story-content p,
    .guarantee-content p {
        font-size: 0.95rem;
        line-height: 2.3;
        margin-bottom: 1.8em;
    }

    /* セクションタイトル */
    .section-title {
        font-size: 1.25rem !important;
        line-height: 1.8 !important;
        margin-bottom: 1.5rem;
        padding: 0 0.5rem;
    }

    /* サブタイトル */
    .sub-title {
        font-size: 1.1rem;
        line-height: 1.7;
        margin-bottom: 1rem;
    }

    /* ハイライトボックス */
    .highlight-box {
        padding: 1.2rem 1rem !important;
        margin: 1.5rem 0;
        line-height: 2.2;
    }

    .highlight-box p,
    .highlight-box span {
        line-height: 2.2;
    }

    /* 問題リスト */
    .problem-list {
        padding: 1rem 1.2rem !important;
    }

    .problem-list li {
        font-size: 0.9rem;
        line-height: 2;
        margin-bottom: 1rem;
    }

    /* チェックリスト */
    .check-list-mini li {
        font-size: 0.9rem;
        line-height: 2;
        padding: 0.6rem 0 0.6rem 1.5rem;
    }

    /* 楽曲カード */
    .track-card {
        padding: 1rem;
    }

    .track-detail-box p {
        font-size: 0.95rem;
        line-height: 2;
        margin-bottom: 0.8rem;
    }

    /* 体験者の声 */
    .testimonial-text {
        font-size: 0.95rem;
        line-height: 2;
    }

    /* 30日ジャーニー */
    .journey-step p {
        font-size: 0.95rem;
        line-height: 2.2;
    }

    .journey-step h4 {
        font-size: 1.05rem;
        line-height: 1.6;
        margin-bottom: 1rem;
    }

    /* レスキューボックス */
    .rescue-box {
        padding: 1.2rem 1rem !important;
    }

    .rescue-lead {
        font-size: 0.95rem;
        line-height: 2;
    }

    .rescue-content p {
        font-size: 0.88rem;
        line-height: 1.9;
    }

    /* Before/After */
    .ba-desc {
        font-size: 0.88rem;
        line-height: 1.9;
    }

    /* ボーナスセクション */
    .bonus-desc {
        font-size: 0.9rem;
        line-height: 2;
    }

    .bonus-list li {
        font-size: 0.88rem;
        line-height: 1.8;
    }

    /* notforセクション */
    .notfor-box {
        padding: 1.2rem 0.8rem !important;
    }

    .notfor-box li {
        font-size: 0.88rem !important;
        line-height: 2.4 !important;
        padding: 1rem 0 1rem 1.8rem !important;
        word-break: auto-phrase !important;
        overflow-wrap: break-word !important;
        letter-spacing: 0.03em !important;
    }

    .notfor-box li span {
        left: 0.3rem !important;
    }

    /* objectionセクション */
    .objection-scene p {
        font-size: 0.92rem;
        line-height: 2.2;
    }

    /* guaranteeセクション */
    .guarantee-content p {
        font-size: 0.92rem;
        line-height: 2.2;
    }

    .refund-steps-box {
        padding: 1.2rem 1rem !important;
    }

    .refund-steps-list {
        padding-left: 1.2rem !important;
    }

    .refund-steps-list li {
        font-size: 0.92rem;
        line-height: 2.2;
    }

    .guarantee-note-box {
        padding: 1rem !important;
    }

    .guarantee-note-box p {
        font-size: 0.9rem;
        line-height: 2;
    }

    /* 購入後の流れ */
    .howto-content p {
        font-size: 0.88rem;
        line-height: 1.9;
    }

    /* 追伸 */
    .postscript-scene p {
        font-size: 0.92rem;
        line-height: 2.2;
    }

    .ps-extra {
        padding: 1.2rem 1rem !important;
    }

    .ps-extra p {
        font-size: 0.9rem;
        line-height: 2.2;
    }

    /* FAQ */
    .faq-item dt {
        font-size: 0.92rem;
        line-height: 1.8;
    }

    .faq-item dd {
        font-size: 0.88rem;
        line-height: 2;
    }

    /* 価格テーブル */
    .price-table-wrapper {
        padding: 0 0.5rem;
    }

    .benefit-list li {
        font-size: 0.85rem;
        line-height: 1.8;
    }

    /* プラン比較 */
    .plan-compare-grid {
        grid-template-columns: 1fr;
        gap: 0.8rem;
    }

    .plan-compare-item p,
    .vip-session-desc {
        font-size: 0.88rem;
        line-height: 1.9;
    }

    /* ボタン */
    .btn {
        padding: 1rem 1.5rem;
    }

    .btn-text {
        font-size: 1rem;
    }

    .btn-sub {
        font-size: 0.75rem;
    }

    /* 販売条件 */
    .hm-terms__card {
        padding: 1rem !important;
    }

    .hm-terms__dl dd,
    .hm-termsPay__list li,
    .hm-terms__noteList li {
        font-size: 0.85rem;
        line-height: 1.9;
    }
}

/* 小型スマホ用（iPhone SE等 375px以下） */
@media (max-width: 380px) {
    .container {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    .glass-card {
        padding: 1.2rem 1rem !important;
    }

    body {
        font-size: 14px;
    }

    p {
        font-size: 0.9rem;
    }

    .section-title {
        font-size: 1.15rem !important;
    }

    .highlight-box,
    .problem-list,
    .refund-steps-box,
    .notfor-box,
    .ps-extra {
        padding: 1rem 0.8rem !important;
    }
}

/* 縦長ブラウザ（タブレット縦向き等） */
@media (min-width: 769px) and (max-width: 1024px) {
    .container {
        padding-left: 2rem;
        padding-right: 2rem;
    }

    p {
        line-height: 2.1;
    }

    .story-content p {
        line-height: 2.2;
    }
}

/* ==========================================================================
   スマホ表示 包括的修正 v2 (2026-01-13)
   インラインスタイルの上書き・brタグ制御・行間最適化
   ========================================================================== */

@media (max-width: 768px) {
    /* ================================================================
       1. すべてのbrタグをスマホで非表示（意図的な改行以外）
       ================================================================ */
    br:not(.sp-only) {
        display: none !important;
    }
    br.sp-only {
        display: inline !important;
    }

    /* ================================================================
       2. インラインスタイルの強制上書き（行間・文字サイズ）
       ================================================================ */

    /* すべてのpタグの行間を強制 */
    p,
    .story-content p,
    .text-content-box p,
    .highlight-box,
    .highlight-box p,
    .evidence-box p,
    .guarantee-content p,
    .objection-scene p,
    .postscript-scene p,
    .rescue-lead,
    .rescue-content p,
    .mechanism-intro {
        line-height: 2.4 !important;
        letter-spacing: 0.04em !important;
        word-break: auto-phrase !important;
        overflow-wrap: break-word !important;
    }

    /* インラインstyle属性の行間を上書き */
    [style*="line-height"] {
        line-height: 2.4 !important;
    }

    /* インラインstyle属性の文字サイズを上書き（大きすぎるものを調整） */
    [style*="font-size: 1.8em"],
    [style*="font-size: 2em"] {
        font-size: 1.4em !important;
    }
    [style*="font-size: 1.5em"] {
        font-size: 1.25em !important;
    }
    [style*="font-size: 1.4em"] {
        font-size: 1.2em !important;
    }
    [style*="font-size: 1.3em"] {
        font-size: 1.15em !important;
    }

    /* ================================================================
       3. 本文エリアの読みやすさ強化
       ================================================================ */

    .story-content {
        font-size: 1.0rem;
        line-height: 2.4 !important;
    }

    .story-content p {
        font-size: 1.0rem !important;
        line-height: 2.5 !important;
        margin-bottom: 2rem !important;
    }

    /* 問題リストの行間修正 */
    .problem-list,
    .problem-list ul,
    [style*="border-left: 4px solid"] {
        padding: 1.2rem 1rem !important;
        line-height: 2.2 !important;
    }

    .problem-list li,
    .problem-list ul li {
        line-height: 2.2 !important;
        margin-bottom: 1rem !important;
        font-size: 0.95rem !important;
    }

    /* ハイライトボックスの調整 */
    .highlight-box,
    [style*="background: rgba(212, 175, 55"],
    [style*="background: rgba(255, 50, 50"] {
        padding: 1.5rem 1.2rem !important;
        line-height: 2.4 !important;
    }

    /* ================================================================
       4. セクションタイトルの折り返し改善
       ================================================================ */

    .section-title {
        font-size: 1.2rem !important;
        line-height: 1.9 !important;
        word-break: auto-phrase !important;
        padding: 0 0.3rem;
    }

    .section-title span {
        display: inline !important;
    }

    .sub-title {
        font-size: 1.05rem !important;
        line-height: 1.8 !important;
        margin-top: 2.5rem !important;
        margin-bottom: 1.2rem !important;
    }

    /* ================================================================
       5. ヒーロー（FV）セクションの調整
       ================================================================ */

    .hero-question {
        font-size: 0.95rem !important;
        line-height: 2.2 !important;
        padding: 0 0.5rem;
    }

    .hero-answer {
        font-size: 0.95rem !important;
        line-height: 2.2 !important;
        padding: 0 0.5rem;
    }

    .catch-copy {
        font-size: 1rem !important;
        line-height: 2 !important;
        padding: 0 0.3rem;
    }

    .warning-box {
        padding: 1.2rem 1rem !important;
        margin: 1.5rem 0.5rem !important;
    }

    .warning-text {
        font-size: 0.95rem !important;
        line-height: 2.2 !important;
    }

    /* ================================================================
       6. リスト要素の読みやすさ
       ================================================================ */

    ul[style*="list-style: none"] li,
    .check-list-mini li,
    .benefit-list li,
    .notfor-list li {
        line-height: 2.1 !important;
        margin-bottom: 1rem !important;
        font-size: 0.95rem !important;
    }

    /* ================================================================
       7. 特殊ボックスの余白調整
       ================================================================ */

    .rescue-box {
        padding: 1.2rem 1rem !important;
        margin: 2rem 0 !important;
    }

    .rescue-rule {
        padding: 0.8rem !important;
        flex-direction: column;
        gap: 0.5rem;
    }

    .vip-detail-box,
    .vip-detail-block {
        padding: 1.2rem 1rem !important;
    }

    .plan-comparison-box {
        padding: 1.2rem 1rem !important;
    }

    /* ================================================================
       8. 価格カード・オファーエリア
       ================================================================ */

    .price-col {
        padding: 1.5rem 1rem !important;
    }

    .benefit-list li {
        padding: 0.6rem 0 !important;
        font-size: 0.95rem !important;
    }

    /* ================================================================
       9. FAQ・保証セクション
       ================================================================ */

    .faq-item dt {
        font-size: 1.0rem !important;
        line-height: 1.9 !important;
    }

    .faq-item dd {
        font-size: 0.95rem !important;
        line-height: 2.1 !important;
    }

    .guarantee-content {
        padding: 0 0.5rem;
    }

    .guarantee-content p {
        font-size: 1.0rem !important;
        line-height: 2.3 !important;
    }

    .guarantee-note-box {
        padding: 1.2rem 1rem !important;
    }

    .refund-steps-box {
        padding: 1.2rem 1rem !important;
    }

    /* タイトル部分はセンター揃え */
    .refund-steps-box > p:first-child {
        font-size: 1.0rem !important;
        line-height: 2 !important;
        margin-bottom: 0.8rem !important;
        text-align: center !important;
    }

    /* 注釈部分は左揃え */
    .refund-steps-box > p:last-child {
        font-size: 0.9rem !important;
        line-height: 2.2 !important;
        margin-top: 1rem !important;
        margin-bottom: 0 !important;
        word-break: auto-phrase !important;
        text-align: left !important;
    }

    .refund-steps-list {
        padding-left: 1.2rem !important;
        margin: 0.8rem 0 !important;
        text-align: left !important;
    }

    .refund-steps-list li {
        font-size: 0.95rem !important;
        line-height: 2.2 !important;
        margin-bottom: 0.6rem !important;
        word-break: auto-phrase !important;
        text-align: left !important;
    }

    /* 保証の理由ボックス */
    .guarantee-note-box > p:first-child {
        text-align: center !important;
        margin-bottom: 0.8rem !important;
    }

    .guarantee-note-box > p:last-child {
        text-align: left !important;
        line-height: 2.2 !important;
        font-size: 0.95rem !important;
    }

    /* ================================================================
       10. 追伸・フッター
       ================================================================ */

    .postscript-scene .story-content p {
        font-size: 1.0rem !important;
        line-height: 2.6 !important;
        letter-spacing: 0.05em !important;
        margin-bottom: 1.8rem !important;
    }

    .ps-extra {
        padding: 1.5rem 1.2rem !important;
        margin-top: 2rem !important;
    }

    /* P.P.S.タイトルはセンター揃え */
    .ps-extra > p:first-child {
        text-align: center !important;
        font-size: 1.0rem !important;
        margin-bottom: 1.2rem !important;
    }

    /* 本文は左揃え */
    .ps-extra > p:last-child {
        font-size: 0.95rem !important;
        line-height: 2.8 !important;
        letter-spacing: 0.05em !important;
        margin-bottom: 0 !important;
        text-align: left !important;
    }

    /* PPS内のstrong要素の行間確保 */
    .ps-extra strong {
        display: inline;
        line-height: inherit !important;
    }

    /* PPS内のspan要素（ハイライト部分）の調整 */
    .ps-extra span[style*="display: inline-block"] {
        margin: 1rem 0 !important;
        line-height: 2.2 !important;
    }

    /* ================================================================
       11. 全体的な余白・パディング統一
       ================================================================ */

    .glass-card {
        padding: 1.8rem 1.2rem !important;
    }

    .container {
        width: 94% !important;
        padding-left: 0.8rem !important;
        padding-right: 0.8rem !important;
    }

    /* セクション間の余白 */
    .mechanism-scene,
    .narrative-scene,
    .solution-scene,
    .tracks-scene,
    .testimonial-scene,
    .offer-scene,
    .creators-scene,
    .guarantee-scene,
    .bonus-scene,
    .postscript-scene,
    .faq-scene {
        padding: 2.5rem 0 !important;
    }
}

/* 小型スマホ追加修正（iPhone SE等） */
@media (max-width: 380px) {
    .story-content p {
        font-size: 0.9rem !important;
        line-height: 2.3 !important;
    }

    .section-title {
        font-size: 1.1rem !important;
    }

    .highlight-box {
        padding: 1rem 0.8rem !important;
    }

    .problem-list li {
        font-size: 0.85rem !important;
    }

    .hero-question,
    .hero-answer {
        font-size: 0.88rem !important;
    }

    .catch-copy {
        font-size: 0.95rem !important;
    }
}

/* ==========================================================================
   後半セクション（価格・FAQ・注意事項・フッター）追加修正 v23
   ========================================================================== */

@media (max-width: 768px) {
    /* ================================================================
       1. 注意事項セクション（hm-terms）
       ================================================================ */
    .hm-terms {
        padding: 30px 0 !important;
    }

    .hm-terms__title {
        font-size: 1.1rem !important;
        line-height: 1.9 !important;
        margin-bottom: 25px !important;
    }

    .hm-terms__card {
        padding: 1.2rem 1rem !important;
        margin-bottom: 1.2rem !important;
    }

    .hm-terms__h {
        font-size: 1rem !important;
        margin-bottom: 1rem !important;
        padding-bottom: 0.8rem !important;
    }

    .hm-terms__row {
        margin-bottom: 1.2rem !important;
    }

    .hm-terms__row dt {
        font-size: 0.95rem !important;
        margin-bottom: 0.4rem !important;
    }

    .hm-terms__row dd {
        font-size: 0.95rem !important;
        line-height: 2 !important;
    }

    .hm-termsPay__list li,
    .hm-terms__noteList li {
        font-size: 0.9rem !important;
        line-height: 2 !important;
        margin-bottom: 0.8rem !important;
    }

    .hm-terms__note {
        margin-top: 1.2rem !important;
    }

    .hm-terms__noteTitle {
        font-size: 0.9rem !important;
        margin-bottom: 0.8rem !important;
    }

    /* ================================================================
       2. 価格・オファーセクション
       ================================================================ */
    .offer-scene {
        padding: 2rem 0 !important;
    }

    .offer-header {
        margin-bottom: 2rem !important;
    }

    .offer-title {
        font-size: 1.8rem !important;
    }

    .offer-subtitle {
        font-size: 1.0rem !important;
        line-height: 1.8 !important;
    }

    /* 価格カード */
    .price-col {
        padding: 1.5rem 1.2rem !important;
        margin-bottom: 1.5rem !important;
    }

    .col-title {
        font-size: 1.5rem !important;
    }

    .col-jp {
        font-size: 0.9rem !important;
        margin-bottom: 1rem !important;
    }

    .plan-desc {
        font-size: 0.95rem !important;
        line-height: 1.8 !important;
        margin-bottom: 1.2rem !important;
        text-align: center !important;
    }

    /* ベネフィットリスト */
    .benefit-list {
        margin-bottom: 1.5rem !important;
    }

    .benefit-list li {
        font-size: 0.95rem !important;
        line-height: 1.9 !important;
        padding: 0.8rem 0 !important;
    }

    .benefit-list li strong {
        font-size: 0.95rem !important;
    }

    /* 価格表示 */
    .price-area {
        margin-bottom: 1.5rem !important;
    }

    .price-val {
        font-size: 2rem !important;
    }

    .currency {
        font-size: 0.9rem !important;
    }

    .scarcity-text {
        font-size: 0.9rem !important;
        margin-bottom: 1rem !important;
    }

    /* プラン比較ボックス */
    .plan-info-block {
        margin-top: 2rem !important;
        gap: 1.5rem !important;
    }

    .plan-comparison-box {
        padding: 1.2rem 1rem !important;
    }

    .plan-info-title {
        font-size: 1.1rem !important;
        margin-bottom: 1.2rem !important;
    }

    .plan-compare-item {
        padding: 1rem !important;
    }

    .plan-compare-item p {
        font-size: 0.95rem !important;
        line-height: 1.9 !important;
    }

    .plan-label {
        font-size: 1.0rem !important;
        margin-bottom: 0.6rem !important;
    }

    /* VIP詳細ブロック */
    .vip-detail-block {
        padding: 1.2rem 1rem !important;
    }

    .vip-session-card {
        padding: 1rem !important;
    }

    .vip-session-num {
        font-size: 0.8rem !important;
        padding: 0.25rem 0.7rem !important;
        margin-bottom: 0.7rem !important;
    }

    .vip-session-result {
        font-size: 0.95rem !important;
        margin-bottom: 0.6rem !important;
    }

    .vip-session-desc {
        font-size: 0.9rem !important;
        line-height: 2 !important;
    }

    .vip-archive-note {
        font-size: 0.8rem !important;
        margin-top: 0.8rem !important;
    }

    /* ================================================================
       3. FAQセクション
       ================================================================ */
    .faq-scene {
        padding: 2.5rem 0 !important;
    }

    .faq-list {
        padding: 0 !important;
    }

    .faq-category {
        font-size: 0.85rem !important;
        padding: 0.6rem 0.8rem !important;
        margin: 1.8rem 0 1rem 0 !important;
    }

    .faq-item {
        margin-bottom: 1.2rem !important;
        padding-bottom: 1.2rem !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    }

    .faq-item dt {
        font-size: 0.92rem !important;
        line-height: 1.9 !important;
        margin-bottom: 0.8rem !important;
        font-weight: 600;
    }

    .faq-item dd {
        font-size: 0.88rem !important;
        line-height: 2.2 !important;
        padding-left: 0.5rem !important;
    }

    /* ================================================================
       4. フッター
       ================================================================ */
    .footer {
        padding: 2rem 0 !important;
    }

    .footer .container {
        gap: 1.5rem !important;
    }

    .footer-links {
        font-size: 0.85rem !important;
        line-height: 2 !important;
    }

    .footer-links a {
        font-size: 0.85rem !important;
    }

    .ftr_cpybox {
        margin-top: 1rem !important;
    }

    .ftr_cpybox p {
        font-size: 0.8rem !important;
        line-height: 2 !important;
        margin-bottom: 0.3rem !important;
    }

    .ftr_company {
        font-size: 0.9rem !important;
        margin-bottom: 0.5rem !important;
    }

    /* ================================================================
       5. ボタンの調整
       ================================================================ */
    .btn {
        padding: 0.9rem 1.5rem !important;
    }

    .btn-text {
        font-size: 0.95rem !important;
    }

    .btn-sub {
        font-size: 0.72rem !important;
        margin-top: 0.3rem !important;
    }

    .cta-inline {
        margin: 1.8rem 0 !important;
    }

    /* VIPバッジ */
    .vip-badge {
        font-size: 0.75rem !important;
        padding: 5px 15px !important;
    }
}

/* ==========================================================================
   テキスト配置の統一（タイトル：センター、本文：左揃え）v24
   ========================================================================== */

/* タイトル・サブタイトル・見出し：センター配置 */
.section-title,
.sub-title,
.offer-title,
.offer-subtitle,
.plan-info-title,
.rescue-label,
.rescue-title,
.bonus-main-title,
.faq-scene .section-title,
.guarantee-scene .section-title {
    text-align: center;
}

/* 本文・説明文：左揃え */
.story-content,
.story-content p,
.text-content-box,
.text-content-box p,
.highlight-box,
.highlight-box p,
.problem-list,
.rescue-content,
.rescue-content p,
.rescue-lead,
.phase-desc,
.track-detail-box,
.track-detail-box p,
.track-exp,
.track-effect,
.creator-desc,
.evidence-box p,
.guarantee-content p,
.guarantee-note-box,
.guarantee-note-box p,
.objection-scene p,
.postscript-scene p,
.bonus-intro,
.bonus-points,
.faq-item dt,
.faq-item dd,
.vip-session-desc,
.hm-terms__row dd,
.hm-termsPay__list,
.hm-terms__noteList {
    text-align: left !important;
}

/* センター配置を維持するもの（強調テキスト等） */
.text-center,
.hero-text,
.hero-question,
.hero-answer,
.catch-copy,
.warning-box,
.fv-specs,
.price-area,
.scarcity-text,
.vip-archive-note,
.signature {
    text-align: center;
}

/* glass-card内の基本配置 */
.glass-card {
    text-align: left;
}

/* 特定のセンター配置要素 */
.glass-card .section-title,
.glass-card .sub-title {
    text-align: center;
}

/* スマホでも同様に適用 */
@media (max-width: 768px) {
    .story-content,
    .story-content p,
    .text-content-box p,
    .highlight-box,
    .guarantee-content p,
    .rescue-lead,
    .faq-item dd,
    .bonus-intro {
        text-align: left !important;
    }

    /* ヒーローセクションはセンター維持 */
    .hero-text,
    .hero-question,
    .hero-answer,
    .catch-copy {
        text-align: center !important;
    }
}

/* ==========================================================================
   rescue-footer スタイル v25
   ========================================================================== */

.rescue-footer {
    text-align: center;
    margin-top: 1.5rem;
    font-size: 1.1rem;
    line-height: 2;
}

.rescue-footer-main {
    color: var(--c-accent-gold);
    font-size: 1.2em;
    text-shadow: 0 0 20px rgba(212, 175, 55, 0.5);
    display: block;
    margin-bottom: 0.5rem;
}

.rescue-footer-highlight {
    color: var(--c-accent-cyan);
    font-size: 1.05em;
}

@media (max-width: 768px) {
    .rescue-footer {
        font-size: 0.95rem !important;
        line-height: 2.2 !important;
        padding: 0 0.5rem;
    }

    .rescue-footer-main {
        font-size: 1.1em;
        margin-bottom: 0.8rem;
    }

    .rescue-footer-highlight {
        font-size: 1em;
    }
}
