/*!
 * Gravity Blueprint LP 専用スタイル
 * 組織軸（青）アクセント色／hero／4軸カード／3パート／pricing／FAQ等
 * 共通基盤：tokens.css + lp-base.css
 */

/* BP v2 LP 専用追加スタイル（CODE/Shift/Orbit v2 と統一） */
.bp-v2-hero { padding: 80px 0 60px; text-align: center; position: relative; overflow: hidden; }
.bp-v2-hero::after { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-image: url('https://growthfix.jp/gravity/images/space_bg.jpg'); background-size: cover; background-position: center; opacity: 0.22; mix-blend-mode: multiply; pointer-events: none; z-index: 0; }
.bp-v2-hero > * { position: relative; z-index: 1; }
.bp-v2-hero h1 { font-size: clamp(22px, 5vw, 48px); font-weight: 900; line-height: 1.3; letter-spacing: -0.01em; margin-bottom: 28px; word-break: keep-all; overflow-wrap: anywhere; }
.bp-v2-hero h1 em { font-style:normal; background:linear-gradient(transparent 62%, #fde68a 62%); padding: 0 4px; }
.bp-v2-hero-sub { font-size: clamp(15px, 2.2vw, 18px); line-height: 1.9; color:#334155; margin-bottom:32px; max-width:680px; margin-left:auto; margin-right:auto; }
.bp-v2-hero-meta { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin-bottom:28px; font-size:12px; color:#64748b; }
.bp-v2-hero-meta-badge { background:#f1f5f9; padding:6px 14px; border-radius:100px; font-weight:700; }
.bp-v2-hero-note { font-size:13px; color:#64748b; line-height:1.7; margin-top:20px; padding:14px 20px; background:#f8fafc; border-left:3px solid #1e40af; border-radius:8px; text-align:left; max-width:600px; margin-left:auto; margin-right:auto; }

.bp-v2-section { padding: 80px 0; }
.bp-v2-section-alt { background:#f8fafc; }
.bp-v2-label { display:inline-block; font-size:11px; letter-spacing:0.2em; font-weight:700; color:#1e40af; margin-bottom:16px; }
.bp-v2-section h2 { font-size: clamp(22px, 3.6vw, 32px); font-weight: 900; line-height: 1.4; margin-bottom: 24px; letter-spacing:-0.01em; }
.bp-v2-section h2 em { font-style:normal; background:linear-gradient(transparent 62%, #fde68a 62%); padding: 0 4px; }
.bp-v2-section h3 { font-size:18px; font-weight:800; margin: 24px 0 12px; color:#0f172a; }
.bp-v2-lead { font-size:16px; line-height:1.9; color:#334155; margin-bottom:24px; }

.paradox-box { background:#fff; border:1px solid #e2e8f0; border-radius:12px; padding:32px 36px; margin:28px 0; box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.05); }
.paradox-a { font-size:14px; color:#64748b; margin-bottom:6px; letter-spacing:0.05em; font-weight:700; }
.paradox-b { font-size:18px; color:#1e293b; font-weight:800; line-height:1.7; margin-bottom:16px; }
.paradox-divider { width:60px; height:2px; background:#cbd5e1; margin:18px 0; }
.paradox-c { font-size:14px; color:#64748b; margin-bottom:6px; letter-spacing:0.05em; font-weight:700; }
.paradox-d { font-size:17px; color:#1e293b; font-weight:800; line-height:1.7; }

/* Axis grid */
.axis-grid { display:grid; grid-template-columns: 1fr; gap:12px; margin: 24px 0; }
@media (min-width: 720px) { .axis-grid { grid-template-columns: 1fr 1fr; } }
.axis-card { background:#fff; border:2px solid #1e40af; border-radius:12px; padding:22px 24px; }
.axis-label { display:inline-block; font-size:11px; font-weight:900; letter-spacing:0.1em; padding:4px 10px; border-radius:100px; background:#1e40af; color:#fff; margin-bottom:12px; }
.axis-title { font-size:17px; font-weight:900; color:#0f172a; margin-bottom:8px; }
.axis-desc { font-size:13.5px; line-height:1.75; color:#475569; }

/* 3 parts grid */
.part-grid { display:grid; grid-template-columns: 1fr; gap:14px; margin: 24px 0; }
@media (min-width: 720px) { .part-grid { grid-template-columns: 1fr 1fr 1fr; } }
.part-card { background:#fff; border:2px solid; border-radius:12px; padding:22px 24px; }
.part-card-1 { border-color:#1e40af; }
.part-card-2 { border-color:#1e40af; }
.part-card-3 { border-color:#1e40af; }
.part-label { display:inline-block; font-size:11px; font-weight:900; letter-spacing:0.1em; padding:4px 10px; border-radius:100px; margin-bottom:12px; color:#fff; }
.part-label-1 { background:#1e40af; }
.part-label-2 { background:#1e40af; }
.part-label-3 { background:#1e40af; }
.part-title { font-size:17px; font-weight:900; color:#0f172a; margin-bottom:10px; }
.part-desc { font-size:13.5px; line-height:1.75; color:#475569; margin-bottom:12px; }
.part-time { font-size:12.5px; color:#64748b; padding-top:10px; border-top:1px dashed #e2e8f0; }

.bp-deliverable-list { list-style:none; padding-left:0; margin: 20px 0; }
.bp-deliverable-list li { padding:14px 0 14px 38px; position:relative; font-size:15px; line-height:1.75; color:#334155; border-bottom:1px solid #e2e8f0; }
.bp-deliverable-list li:last-child { border-bottom:none; }
.bp-deliverable-list li::before { content:""; width:22px; height:22px; border-radius:50%; background:#0f172a; color:#fff; position:absolute; left:0; top:14px; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:900; }
.bp-deliverable-list li:nth-child(1)::before { content:"1"; }
.bp-deliverable-list li:nth-child(2)::before { content:"2"; }
.bp-deliverable-list li:nth-child(3)::before { content:"3"; }
.bp-deliverable-list li:nth-child(4)::before { content:"4"; }
.bp-deliverable-list li:nth-child(5)::before { content:"5"; }

/* Process timeline */
.process-timeline { background:#fff; border:2px solid #1e40af; border-radius:12px; padding:28px 32px; margin: 24px 0; }
.process-step { padding:12px 0; display:grid; grid-template-columns: 80px 1fr; gap:20px; align-items:baseline; border-bottom:1px dotted #e2e8f0; }
.process-step:last-child { border-bottom:none; }
.process-step-time { font-size:13px; font-weight:900; color:#1e40af; letter-spacing:0.05em; }
.process-step-desc { font-size:14.5px; line-height:1.75; color:#334155; }
.process-step-desc strong { color:#0f172a; }

/* Pricing */
.bp-pricing { background:#fff; border:2px solid #0f172a; border-radius:16px; padding:40px 36px; text-align:center; box-shadow: 0 20px 40px -10px rgba(15, 23, 42, 0.08); max-width:560px; margin: 32px auto; }
.bp-price-main { font-size: clamp(40px, 7vw, 56px); font-weight:900; color:#0f172a; letter-spacing:-0.02em; margin-bottom:8px; }
.bp-price-main small { font-size:0.4em; font-weight:700; color:#64748b; vertical-align:middle; margin-left:6px; }
.bp-price-unit { font-size:14px; color:#64748b; margin-bottom:28px; }
.bp-price-includes { text-align:left; font-size:14px; line-height:1.9; color:#334155; }
.bp-price-includes li { padding:8px 0; padding-left: 28px; position:relative; border-bottom:1px dotted #e2e8f0; list-style:none; }
.bp-price-includes li::before { content:"✓"; color:#1e40af; position:absolute; left:0; top:8px; font-weight:900; }
.bp-price-includes li:last-child { border-bottom:none; }
.bp-price-next { font-size:13px; color:#64748b; line-height:1.7; padding:14px 18px; background:#f8fafc; border-radius:8px; margin-top:20px; text-align:left; }

/* CTA section */
.bp-cta-section { background:#0f172a; color:#fff; padding: 80px 0; text-align:center; }
.bp-cta-section h2 { color:#fff; }
.bp-cta-section h2 em { background:linear-gradient(transparent 62%, rgba(253, 230, 138, 0.3) 62%); }
.bp-cta-lead { color:#cbd5e1; font-size:16px; line-height:1.9; margin:20px 0 32px; max-width:600px; margin-left:auto; margin-right:auto; }
.bp-cta-proof { display:flex; gap:10px; justify-content:center; margin:24px 0; flex-wrap:wrap; font-size:13px; color:#94a3b8; }
.bp-cta-proof span { padding:6px 14px; background:rgba(255,255,255,0.08); border-radius:100px; }

/* Profile */
.bp-profile { display:grid; grid-template-columns: 1fr; gap:28px; align-items:start; }
@media (min-width: 720px) { .bp-profile { grid-template-columns: 200px 1fr; } }
.bp-profile-img { width:200px; height:200px; border-radius:12px; background:#1b1b1b url('/gravity/image.jpeg') center/cover; }
.bp-profile-name { font-size:22px; font-weight:900; color:#0f172a; margin-bottom:6px; }
.bp-profile-title { font-size:13px; color:#1e40af; margin-bottom:16px; letter-spacing:0.05em; font-weight:700; }
.bp-profile-career { font-size:13px; line-height:1.8; color:#475569; margin-top:16px; padding-top:16px; border-top:1px solid #e2e8f0; }
.bp-profile-career div { padding: 2px 0; }

/* FAQ */
.bp-faq-list .faq-item { background:#fff; border:1px solid #e2e8f0; border-radius:10px; margin-bottom:10px; overflow:hidden; }
.bp-faq-list .faq-item summary { padding:20px 24px; font-weight:700; cursor:pointer; font-size:15px; color:#0f172a; list-style:none; position:relative; }
.bp-faq-list .faq-item summary::-webkit-details-marker { display:none; }
.bp-faq-list .faq-item summary::after { content:"+"; position:absolute; right:24px; top:18px; font-size:22px; color:#1e40af; font-weight:300; }
.bp-faq-list .faq-item[open] summary::after { content:"−"; }
.bp-faq-list .faq-answer { padding: 0 24px 22px; font-size:14px; line-height:1.9; color:#475569; }

/* ============================================================
   Phase 2 CSS class 化（260513）
   Scan LP inline style を class に抽出
   ============================================================ */

/* Scan-only theory/ref variants */
.sv2-theory-box--bg { background:#f8fafc; }
.sv2-theory-box--mt { margin:20px 0 0; }
.sv2-ref-label { font-size:12px; letter-spacing:0.15em; color:#64748b; margin:0 0 12px; font-weight:700; }
.sv2-ref-list { list-style:none; padding:0; margin:0; font-size:12.5px; line-height:1.85; color:#475569; }
.sv2-ref-list li { margin-bottom:8px; padding-left:14px; position:relative; }
.sv2-ref-list li:last-child { margin-bottom:0; }
.sv2-ref-dot { position:absolute; left:0; color:#94a3b8; }
.sv2-citations-link { text-align:center; font-size:14px; margin:24px 0; }

/* Scan-only consult variants */
.lp-consult-card { padding:32px 36px; background:#ffffff; border-left:4px solid #0f172a; border-radius:6px; }
.lp-consult-kicker { font-size:11px; font-weight:700; color:#0f172a; letter-spacing:0.16em; margin:0 0 10px; }
.lp-btn-ink { display:inline-block; padding:16px 36px; background:#0f172a; color:#ffffff; text-decoration:none; border-radius:4px; font-size:15px; font-weight:800; letter-spacing:0.06em; }

/* dark result section */
.lp-dark-result-grid { display:grid; grid-template-columns:1fr; gap:18px; max-width:680px; margin:0 auto; }
.lp-dark-result-box { padding:22px 24px; background:rgba(255,255,255,0.05); border-left:3px solid #b8a88a; border-radius:4px; }
.lp-dark-result-title { font-size:14.5px; color:#fff; font-weight:800; margin:0 0 8px; line-height:1.6; }
.lp-dark-result-sub { font-size:11.5px; color:#94a3b8; margin:0; line-height:1.7; }

/* next route grid */
.lp-route-grid { display:grid; grid-template-columns:repeat(2, 1fr); gap:14px; max-width:680px; margin:0 auto; }
.lp-route-card { display:block; padding:18px 16px; background:#fff; border:1px solid #cbd5e1; border-radius:8px; text-decoration:none; color:#0f172a; transition:transform 0.15s; }
.lp-route-card--gold { display:block; padding:18px 16px; background:#fff; border:2px solid #C5A880; border-radius:8px; text-decoration:none; color:#0f172a; transition:transform 0.15s; }
.lp-route-kicker { font-size:11px; letter-spacing:0.15em; color:#8b6f3f; margin:0 0 6px; font-weight:700; }
.lp-route-kicker--slate { font-size:11px; letter-spacing:0.15em; color:#64748b; margin:0 0 6px; font-weight:700; }
.lp-route-kicker--gold { font-size:11px; letter-spacing:0.15em; color:#C5A880; margin:0 0 6px; font-weight:700; }
.lp-route-title { font-size:15px; font-weight:800; margin:0 0 4px; color:#0f172a; }
.lp-route-title--white { font-size:15px; font-weight:800; margin:0 0 4px; color:#fff; }
.lp-route-sub { font-size:11.5px; color:#64748b; margin:0; line-height:1.6; }
.lp-route-sub--muted { font-size:11.5px; color:#94a3b8; margin:0; line-height:1.6; }
.lp-route-note { text-align:center; margin-top:20px; font-size:12.5px; color:#64748b; line-height:1.7; }
.lp-route-card--dark { display:block; padding:18px 16px; background:#0f172a; border:2px solid #0f172a; border-radius:8px; color:#fff; }

/* shared with CODE LP */
.lp-serif-h2-ink { font-family:'Noto Serif JP',serif; font-size:24px; line-height:1.7; color:#0f172a; margin-bottom:24px; }
.lp-body-155 { font-size:15.5px; line-height:1.95; color:#334155; margin-bottom:20px; }
.lp-mb-0 { margin-bottom:0; }
.lp-mb-12 { margin-bottom:12px; }
.lp-mb-18 { margin-bottom:18px; }
.lp-mt-32 { margin-top:32px; }
.lp-mt-28 { margin-top:28px; }
.lp-mt-40 { margin-top:40px; }
.lp-mt-48 { margin-top:48px; }
.lp-mt-24 { margin-top:24px; }
.lp-h2-center { text-align:center; }
.lp-profile-quote { margin:16px 0; padding:14px 18px; border-left:3px solid #1e40af; background:#fff; font-size:14px; line-height:1.85; color:#475569; }
.lp-faq-wrap { margin-top:28px; }
.lp-faq-note { margin-top:24px; font-size:14px; color:#6b6b6b; text-align:center; }

/* dark result kicker / serif */
.lp-dark-result-kicker { font-size:11px; letter-spacing:0.3em; color:#b8a88a; margin:0 0 12px; text-align:center; font-weight:700; }
.lp-dark-serif-h2--center { font-family:'Noto Serif JP',serif; font-size:24px; line-height:1.65; color:#fff; text-align:center; margin:0 0 36px; }

/* route box */
.lp-route-box { margin-top:48px; padding:32px 28px; background:#fff8ea; border-radius:12px; border:1px solid #b8a88a; }
.lp-route-kicker-center { font-size:13px; letter-spacing:0.2em; color:#8b6f3f; margin:0 0 16px; text-align:center; font-weight:700; }
.lp-route-serif-h3 { font-family:'Noto Serif JP',serif; font-size:20px; color:#0f172a; text-align:center; margin:0 0 24px; }
