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

/* Shift v2 LP 専用追加スタイル */
.shift-v2-hero { padding: 80px 0 60px; text-align: center; }
.shift-v2-hero-badge { display:inline-block; font-size:11px; letter-spacing:0.18em; font-weight:700; color:#1e40af; background:#1b1b1b; padding:6px 16px; border-radius:100px; margin-bottom:28px; }
.shift-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; }
.shift-v2-hero h1 em { font-style:normal; background:linear-gradient(transparent 62%, #fde68a 62%); padding: 0 4px; }
.shift-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; }
.shift-v2-hero-meta { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin-bottom:28px; font-size:12px; color:#64748b; }
.shift-v2-hero-meta-badge { background:#f1f5f9; padding:6px 14px; border-radius:100px; font-weight:700; }
.shift-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; }

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

/* Gap problem section */
.gap-problem { 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); }
.gap-problem-a { font-size:14px; color:#64748b; margin-bottom:6px; letter-spacing:0.05em; font-weight:700; }
.gap-problem-b { font-size:18px; color:#1e293b; font-weight:800; line-height:1.7; margin-bottom:16px; }
.gap-problem-divider { width:60px; height:2px; background:#cbd5e1; margin:18px 0; }
.gap-problem-c { font-size:14px; color:#64748b; margin-bottom:6px; letter-spacing:0.05em; font-weight:700; }
.gap-problem-d { font-size:17px; color:#1e293b; font-weight:800; line-height:1.7; }

/* Phase diagram */
.phase-diagram { display:grid; grid-template-columns: 1fr; gap:16px; margin: 28px 0; }
.phase-card { background:#fff; border:2px solid #e2e8f0; border-radius:12px; padding:24px 28px; position:relative; }
.phase-card-diag { border-color:#3b82f6; background:linear-gradient(to right, #dbeafe 0%, #fff 80%); }
.phase-card-impl { border-color:#1e40af; background:linear-gradient(to right, #eff6ff 0%, #fff 80%); }
.phase-card-head { display:flex; align-items:baseline; gap:12px; margin-bottom:14px; flex-wrap:wrap; }
.phase-week { font-size:13px; font-weight:900; color:#3b82f6; letter-spacing:0.05em; }
.phase-impl .phase-week { color:#1e40af; }
.phase-title { font-size:18px; font-weight:900; color:#0f172a; }
.phase-list { list-style:none; padding-left:0; font-size:14px; line-height:1.8; color:#475569; }
.phase-list li { padding: 4px 0 4px 18px; position:relative; }
.phase-list li::before { content:"●"; color:#3b82f6; position:absolute; left:0; font-size:10px; top:9px; }
.phase-impl .phase-list li::before { color:#1e40af; }

/* 3 pattern matrix */
.pattern-grid { display:grid; grid-template-columns: 1fr; gap:12px; margin: 24px 0; }
@media (min-width: 720px) { .pattern-grid { grid-template-columns: 1fr 1fr 1fr; } }
.pattern-card { background:#fff; border:2px solid; border-radius:12px; padding:22px 24px; }
.pattern-card-match { border-color:#1e40af; }
.pattern-card-diverge { border-color:#64748b; }
.pattern-card-critical { border-color:#0f172a; }
.pattern-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; }
.pattern-label-match { background:#1e40af; }
.pattern-label-diverge { background:#64748b; }
.pattern-label-critical { background:#0f172a; }
.pattern-title { font-size:17px; font-weight:900; color:#0f172a; margin-bottom:10px; }
.pattern-desc { font-size:13.5px; line-height:1.75; color:#475569; margin-bottom:12px; }
.pattern-action { font-size:12.5px; color:#64748b; padding-top:10px; border-top:1px dashed #e2e8f0; }

/* Deliverable */
.shift-deliverable-list { list-style:none; padding-left:0; margin: 20px 0; }
.shift-deliverable-list li { padding:14px 0 14px 38px; position:relative; font-size:15px; line-height:1.75; color:#334155; border-bottom:1px solid #e2e8f0; }
.shift-deliverable-list li:last-child { border-bottom:none; }
.shift-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; }
.shift-deliverable-list li:nth-child(1)::before { content:"1"; }
.shift-deliverable-list li:nth-child(2)::before { content:"2"; }
.shift-deliverable-list li:nth-child(3)::before { content:"3"; }
.shift-deliverable-list li:nth-child(4)::before { content:"4"; }
.shift-deliverable-list li:nth-child(5)::before { content:"5"; }

/* Pricing */
.shift-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); }
.shift-price-main { font-size: clamp(40px, 7vw, 56px); font-weight:900; color:#0f172a; letter-spacing:-0.02em; margin-bottom:8px; }
.shift-price-main small { font-size:0.4em; font-weight:700; color:#64748b; vertical-align:middle; margin-left:6px; }
.shift-price-unit { font-size:14px; color:#64748b; margin-bottom:28px; }
.shift-price-includes { text-align:left; max-width:520px; margin: 24px auto; font-size:14px; line-height:1.9; color:#334155; }
.shift-price-includes li { padding:8px 0; padding-left: 28px; position:relative; border-bottom:1px dotted #e2e8f0; list-style:none; }
.shift-price-includes li::before { content:"✓"; color:#1e40af; position:absolute; left:0; top:8px; font-weight:900; }
.shift-price-includes li:last-child { border-bottom:none; }
.shift-price-plans { display:flex; gap:12px; justify-content:center; margin: 20px 0; flex-wrap:wrap; font-size:13px; color:#64748b; }
.shift-price-plans span { padding:6px 14px; background:#f1f5f9; border-radius:100px; font-weight:700; }
.shift-price-bp-note { font-size:12px; color:#64748b; line-height:1.7; padding:14px 18px; background:#f8fafc; border-radius:8px; margin-top:20px; text-align:left; }

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

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

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