/* ── リセット ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: "Hiragino Sans", "Yu Gothic UI", "Meiryo", sans-serif;
  background: #0a0a14;
  color: #e8e8f0;
  line-height: 1.7;
}
a { color: inherit; text-decoration: none; }

/* ── 共通 ── */
.container { max-width: 900px; margin: 0 auto; padding: 0 20px; }
.container.narrow { max-width: 640px; }
.section { padding: 72px 0; }
.section-title {
  font-size: clamp(1.4rem, 3vw, 1.9rem);
  font-weight: 700;
  text-align: center;
  margin-bottom: 40px;
  color: #f0f0ff;
}
.accent { color: #a78bfa; }
.hero .accent {
  color: #f5d0fe;
  text-shadow:
    0 0 14px rgba(216, 180, 254, .62),
    0 0 34px rgba(124, 58, 237, .34);
  animation: hero-accent-glow 3.2s ease-in-out infinite;
}

/* ── ボタン ── */
/* ── 中間CTA ── */
.mid-cta-wrap {
  text-align: center;
  padding: 48px 24px;
  background: linear-gradient(180deg, #0d0d1a 0%, #1a0a2e 100%);
  border-top: 1px solid rgba(107,79,160,.25);
  border-bottom: 1px solid rgba(107,79,160,.25);
}
.mid-cta-lead {
  color: #e2d9f3;
  font-size: 1.05rem;
  margin-bottom: 18px;
  letter-spacing: .04em;
}
@keyframes mid-cta-shake {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  15%       { transform: translateX(-4px) rotate(-1.5deg); }
  30%       { transform: translateX(4px) rotate(1.5deg); }
  45%       { transform: translateX(-3px) rotate(-1deg); }
  60%       { transform: translateX(3px) rotate(1deg); }
  75%       { transform: translateX(-2px) rotate(-.5deg); }
  90%       { transform: translateX(2px) rotate(.5deg); }
}
@keyframes hero-accent-glow {
  0%, 100% {
    text-shadow:
      0 0 10px rgba(216, 180, 254, .42),
      0 0 24px rgba(124, 58, 237, .24);
  }
  50% {
    text-shadow:
      0 0 18px rgba(253, 224, 71, .55),
      0 0 42px rgba(168, 85, 247, .48);
  }
}
@keyframes hero-particle-rise {
  0% {
    transform: translate3d(0, 42px, 0) scale(.72);
    opacity: 0;
  }
  18% { opacity: .72; }
  100% {
    transform: translate3d(18px, -92px, 0) scale(1.08);
    opacity: 0;
  }
}
@keyframes hero-scroll-bounce {
  0%, 100% { transform: translateY(0); opacity: .62; }
  50% { transform: translateY(7px); opacity: 1; }
}
@keyframes hero-card-breathe {
  0%, 100% {
    box-shadow: 0 24px 80px rgba(0, 0, 0, .28), 0 0 0 rgba(251, 191, 36, 0);
  }
  50% {
    box-shadow: 0 24px 80px rgba(0, 0, 0, .3), 0 0 42px rgba(251, 191, 36, .18);
  }
}
@keyframes hero-cue-pop {
  0%, 100% {
    transform: translateY(0) scale(1);
    opacity: .78;
  }
  50% {
    transform: translateY(6px) scale(1.06);
    opacity: 1;
  }
}
.btn-mid-cta {
  display: inline-block;
  background: linear-gradient(135deg, #dc2626, #b91c1c);
  color: #fff;
  border: none;
  font-size: 1rem;
  font-weight: 700;
  padding: 16px 40px;
  border-radius: 50px;
  cursor: pointer;
  letter-spacing: .06em;
  box-shadow: 0 4px 20px rgba(220,38,38,.45);
  animation: mid-cta-shake 2.4s ease-in-out infinite;
}
.btn-mid-cta:hover {
  background: linear-gradient(135deg, #ef4444, #dc2626);
  box-shadow: 0 6px 28px rgba(220,38,38,.6);
  animation: none;
  transform: translateY(-2px);
}
.mid-cta-note {
  margin-top: 10px;
  font-size: .8rem;
  color: #6b7280;
}

/* ── 診断スタートボタン（黄緑） ── */
.btn-start-diagnose {
  display: inline-block;
  background: linear-gradient(135deg, #65a30d, #4d7c0f);
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  padding: 14px 32px;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  transition: filter .2s, transform .15s;
  box-shadow: 0 4px 18px rgba(101,163,13,.4);
}
.btn-start-diagnose:hover {
  filter: brightness(1.1);
  transform: translateY(-1px);
}

.btn-primary {
  display: inline-block;
  background: linear-gradient(135deg, #7c3aed, #6d28d9);
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  padding: 14px 32px;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  transition: opacity .2s, transform .15s;
  text-align: center;
}
.btn-primary:hover { opacity: .88; transform: translateY(-1px); }
.btn-secondary {
  display: inline-block;
  background: transparent;
  color: #a78bfa;
  border: 1px solid #4c1d95;
  font-size: 1rem;
  padding: 12px 24px;
  border-radius: 8px;
  cursor: pointer;
  transition: background .2s;
}
.btn-secondary:hover { background: #1e1b4b; }
.btn-premium {
  display: inline-block;
  background: linear-gradient(135deg, #b45309, #92400e);
  color: #fef3c7;
  font-size: 1rem;
  font-weight: 700;
  padding: 14px 32px;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  transition: opacity .2s;
  text-align: center;
}
.btn-premium:hover { opacity: .88; }
.btn-full { width: 100%; display: block; }

/* 決済CTA — 緊急性・即行動（オレンジ→赤：心理学的に「今すぐ」） */
.btn-urgency {
  display: inline-block;
  background: linear-gradient(135deg, #f97316 0%, #dc2626 100%);
  color: #fff;
  font-size: 1rem;
  font-weight: 800;
  padding: 16px 32px;
  border-radius: 10px;
  border: none;
  cursor: pointer;
  text-align: center;
  letter-spacing: .02em;
  box-shadow: 0 4px 24px rgba(220, 38, 38, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.08) inset;
  transition: transform .15s, box-shadow .2s, filter .2s;
}
.btn-urgency:hover {
  filter: brightness(1.08);
  transform: translateY(-2px);
  box-shadow: 0 8px 32px rgba(220, 38, 38, 0.65);
}
.btn-urgency-premium {
  display: inline-block;
  background: linear-gradient(135deg, #ea580c 0%, #b91c1c 100%);
  color: #fff7ed;
  font-size: .95rem;
  font-weight: 800;
  padding: 14px 28px;
  border-radius: 10px;
  border: 1px solid rgba(251, 191, 36, 0.35);
  cursor: pointer;
  text-align: center;
  box-shadow: 0 4px 20px rgba(185, 28, 28, 0.4);
  transition: transform .15s, box-shadow .2s, filter .2s;
}
.btn-urgency-premium:hover {
  filter: brightness(1.06);
  transform: translateY(-1px);
  box-shadow: 0 6px 26px rgba(185, 28, 28, 0.55);
}

/* ── HERO ── */
.hero {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(10, 10, 20, .24), rgba(10, 10, 20, .9)),
    radial-gradient(ellipse at 50% 38%, rgba(124, 58, 237, .38), transparent 58%),
    url("images/hero-self-transformation-bg.webp?v=20260525a") center / cover no-repeat;
  padding: 96px 20px 80px;
  text-align: center;
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(10, 10, 20, .92) 0%, rgba(10, 10, 20, .46) 42%, rgba(10, 10, 20, .78) 100%),
    radial-gradient(circle at 50% 45%, rgba(250, 204, 21, .16), transparent 34%);
  pointer-events: none;
}
.hero::after {
  content: "";
  position: absolute;
  left: -15%;
  right: -15%;
  bottom: -34%;
  height: 58%;
  background: radial-gradient(ellipse at center, rgba(168, 85, 247, .32), transparent 62%);
  filter: blur(8px);
  pointer-events: none;
}
.hero-particles {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
}
.hero-particles span {
  position: absolute;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: rgba(253, 224, 71, .95);
  box-shadow:
    0 0 16px rgba(253, 224, 71, .9),
    0 0 38px rgba(168, 85, 247, .62);
  animation: hero-particle-rise 3.8s ease-in-out infinite;
}
.hero-particles span:nth-child(1) { left: 12%; top: 74%; animation-delay: 0s; }
.hero-particles span:nth-child(2) { left: 24%; top: 58%; animation-delay: 1.1s; width: 5px; height: 5px; }
.hero-particles span:nth-child(3) { left: 42%; top: 78%; animation-delay: 2.2s; }
.hero-particles span:nth-child(4) { left: 64%; top: 60%; animation-delay: .7s; width: 6px; height: 6px; }
.hero-particles span:nth-child(5) { left: 78%; top: 75%; animation-delay: 1.8s; width: 5px; height: 5px; }
.hero-particles span:nth-child(6) { left: 88%; top: 52%; animation-delay: 3s; }
.hero-particles span:nth-child(7) { left: 17%; top: 42%; animation-delay: 2.7s; width: 8px; height: 8px; }
.hero-particles span:nth-child(8) { left: 34%; top: 68%; animation-delay: .4s; width: 6px; height: 6px; }
.hero-particles span:nth-child(9) { left: 70%; top: 44%; animation-delay: 1.4s; width: 8px; height: 8px; }
.hero-particles span:nth-child(10) { left: 92%; top: 70%; animation-delay: 2.4s; width: 6px; height: 6px; }

/* ── 公開記念価格バッジ ── */
.hero-badge {
  position: absolute;
  top: 40px;
  right: -45px;
  transform: rotate(35deg);
  background: linear-gradient(135deg, #fbbf24 0%, #d97706 100%);
  color: #000;
  padding: 10px 60px;
  z-index: 10;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4);
  border: 1px solid rgba(255, 255, 255, 0.3);
}
.badge-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1.2;
}
.badge-crown {
  font-size: 1.3rem;
  margin-bottom: 0;
}
.badge-text {
  font-size: 1.1rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  white-space: nowrap;
}

.hero-inner {
  position: relative;
  z-index: 2;
  max-width: 760px;
  margin: 0 auto;
  padding: 24px 20px 28px;
  border-radius: 28px;
  background: rgba(10, 10, 20, .36);
  border: 1px solid rgba(216, 180, 254, .16);
  box-shadow: 0 24px 80px rgba(0, 0, 0, .28);
  backdrop-filter: blur(2px);
  animation: hero-card-breathe 4.2s ease-in-out infinite;
}
.hero-question {
  font-size: clamp(1.2rem, 4vw, 1.8rem);
  font-weight: 900;
  color: #fff;
  margin-bottom: 12px;
  line-height: 1.4;
  text-shadow: 0 2px 8px rgba(0,0,0,0.6);
  border-bottom: 1px solid rgba(216, 180, 254, .3);
  padding-bottom: 12px;
}
.hero-eyebrow {
  font-size: .85rem;
  letter-spacing: .15em;
  color: #a78bfa;
  text-transform: uppercase;
  margin-bottom: 16px;
}
.hero-title {
  font-size: clamp(1.8rem, 5vw, 2.8rem);
  font-weight: 900;
  line-height: 1.3;
  margin-bottom: 20px;
  color: #f5f3ff;
}
.hero-sub {
  font-size: 1rem;
  color: #c4b5fd;
  margin-bottom: 36px;
  line-height: 1.8;
}
.hero .hero-cta-start,
button.hero-cta-start {
  display: inline-block !important;
  width: auto;
  background: linear-gradient(135deg, #dc2626, #b91c1c) !important;
  color: #fff !important;
  font-size: 1.1rem;
  animation: mid-cta-shake 2.4s ease-in-out infinite;
  font-weight: 900;
  padding: 17px 42px;
  border-radius: 999px;
  border: 1px solid rgba(216, 180, 254, 0.55) !important;
  cursor: pointer;
  text-align: center;
  letter-spacing: .02em;
  box-shadow: 0 0 28px rgba(124, 58, 237, 0.55), 0 10px 30px rgba(79, 70, 229, 0.22);
  transition: transform .15s, box-shadow .2s, filter .2s;
  appearance: none;
  -webkit-appearance: none;
}
.hero .hero-cta-start:hover,
button.hero-cta-start:hover {
  background: linear-gradient(135deg, #ef4444, #dc2626) !important;
  box-shadow: 0 6px 28px rgba(220,38,38,.6);
  animation: none;
  transform: translateY(-2px);
}
.hero-note { font-size: .82rem; color: #6b7280; margin-top: 12px; }
.hero-scroll-cue {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  margin-top: 20px;
  color: #f5d0fe;
  font-size: .78rem;
  line-height: 1.5;
  font-weight: 700;
  text-shadow: 0 0 14px rgba(216, 180, 254, .28);
}
.hero-scroll-cue b {
  color: #fbbf24;
  font-size: 1.7rem;
  line-height: 1;
  animation: hero-cue-pop 1.25s ease-in-out infinite;
}

/* ── 初見ユーザー向けの信頼形成 ── */
.trust-intro-section {
  background: linear-gradient(180deg, #0f0f20 0%, #0d0d1f 100%);
}
.trust-kicker {
  text-align: center;
  color: #fbbf24;
  font-size: 1.0rem;
  font-weight: 900;
  letter-spacing: .14em;
  margin-bottom: 14px;
}
.trust-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-bottom: 28px;
}
.trust-card {
  padding: 22px 18px;
  border-radius: 16px;
  border: 1px solid rgba(167, 139, 250, .28);
  background:
    radial-gradient(circle at 50% 0%, rgba(124, 58, 237, .24), transparent 58%),
    #13132a;
  box-shadow: 0 14px 34px rgba(0, 0, 0, .24);
}
.trust-num {
  display: inline-block;
  color: #a78bfa;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .12em;
  margin-bottom: 8px;
}
.trust-card h3 {
  color: #f5f3ff;
  font-size: .95rem;
  margin-bottom: 8px;
}
.trust-card p {
  color: #a5b4fc;
  font-size: .82rem;
  line-height: 1.7;
}
.trust-assurance {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.trust-assurance > div {
  border-radius: 14px;
  border: 1px solid rgba(52, 211, 153, .24);
  background: rgba(6, 78, 59, .18);
  padding: 16px 18px;
}
.trust-assurance strong {
  display: block;
  color: #a7f3d0;
  font-size: .88rem;
  margin-bottom: 6px;
}
.trust-assurance p {
  color: #9ca3af;
  font-size: .8rem;
  line-height: 1.65;
}
.lp-explain-visual {
  margin: 0 auto 28px;
  max-width: 980px;
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid rgba(216, 180, 254, .24);
  background: rgba(10, 10, 20, .62);
  box-shadow: 0 22px 58px rgba(0, 0, 0, .32);
}
.lp-explain-visual img {
  display: block;
  width: 100%;
  height: auto;
}
.input-reason-visual {
  margin-top: 4px;
}
.philosophy-flow-visual {
  margin-top: -4px;
}
.report-action-map-visual {
  margin-top: 4px;
}
.free-vs-complete-report-visual {
  margin-top: 6px;
}

/* ── サービス思想 ── */
.philosophy-section {
  background: radial-gradient(circle at top, rgba(124, 58, 237, .18), transparent 46%),
              linear-gradient(180deg, #070812 0%, #0b1020 100%);
}
.philosophy-kicker {
  color: #fbbf24;
  font-size: 1.25rem;
  font-weight: 900;
  letter-spacing: .14em;
  text-align: center;
  margin-bottom: 14px;
}
.philosophy-lead-card,
.philosophy-promise-card {
  border-radius: 20px;
  border: 1px solid rgba(251, 191, 36, .24);
  background: linear-gradient(145deg, rgba(36, 24, 5, .42), rgba(15, 15, 32, .94));
  box-shadow: 0 18px 45px rgba(0, 0, 0, .28);
  padding: 24px;
  margin-bottom: 24px;
}
.philosophy-lead-card p,
.philosophy-closing {
  color: #e5e7eb;
  font-size: .96rem;
  line-height: 1.85;
  text-align: center;
  max-width: 860px;
  margin: 0 auto;
}
.philosophy-layer-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}
.philosophy-layer-grid div {
  border-radius: 18px;
  border: 1px solid rgba(167, 139, 250, .24);
  background: rgba(10, 10, 20, .72);
  padding: 22px;
}
.philosophy-layer-grid span {
  display: block;
  color: #c4b5fd;
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .12em;
  margin-bottom: 8px;
}
.philosophy-layer-grid h3,
.philosophy-promise-card h3 {
  color: #fef3c7;
  font-size: 1rem;
  margin-bottom: 10px;
}
.philosophy-layer-grid p {
  color: #cbd5e1;
  font-size: .86rem;
  line-height: 1.75;
}
.philosophy-promise-card h3 {
  text-align: center;
  margin-bottom: 16px;
}
.philosophy-promise-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 10px;
}
.philosophy-promise-grid div {
  border-radius: 999px;
  border: 1px solid rgba(52, 211, 153, .24);
  background: rgba(6, 78, 59, .24);
  color: #d1fae5;
  font-size: .78rem;
  font-weight: 800;
  line-height: 1.5;
  text-align: center;
  padding: 10px 12px;
}
.philosophy-closing {
  color: #cbd5e1;
  margin-top: 4px;
}
.philosophy-cta-wrap {
  text-align: center;
  margin-top: 22px;
}
.philosophy-cta {
  max-width: 440px;
}

/* ── 鑑定書サンプル公開 ── */
.report-sample-section {
  background: #0a0a14;
}
.sample-profile-card {
  display: grid;
  grid-template-columns: 1.35fr .9fr;
  gap: 18px;
  align-items: stretch;
  border: 1px solid rgba(251, 191, 36, .28);
  border-radius: 18px;
  padding: 22px;
  background: linear-gradient(145deg, rgba(30, 27, 75, .64), rgba(15, 15, 32, .96));
  margin-bottom: 24px;
}
.sample-label {
  display: block;
  color: #fbbf24;
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .1em;
  margin-bottom: 8px;
}
.sample-profile-card p {
  color: #e5e7eb;
  font-size: .92rem;
  line-height: 1.85;
}
.sample-meta-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.sample-meta-grid span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 8px;
  border-radius: 10px;
  background: rgba(10, 10, 20, .72);
  border: 1px solid rgba(167, 139, 250, .24);
  color: #c4b5fd;
  font-size: .78rem;
  font-weight: 700;
  text-align: center;
}
.report-preview-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-bottom: 28px;
}
.report-preview-card {
  margin: 0;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(167, 139, 250, .28);
  background: #13132a;
  box-shadow: 0 18px 48px rgba(0, 0, 0, .36);
}
.report-preview-card img {
  display: block;
  width: 100%;
  height: auto;
}
.report-preview-card figcaption {
  padding: 14px 16px;
  color: #d1d5db;
  font-size: .82rem;
  line-height: 1.7;
}
.sample-reading-card,
.input-reason-card,
.free-result-example-card,
.after-diagnosis-card,
.report-usage-card,
.future-after-report-card,
.optional-purchase-note {
  border-radius: 18px;
  border: 1px solid rgba(251, 191, 36, .24);
  background: linear-gradient(145deg, rgba(36, 24, 5, .46), rgba(15, 15, 32, .94));
  padding: 24px;
  margin-bottom: 28px;
}
.sample-reading-card h3,
.input-reason-card h3,
.free-result-example-card h3,
.after-diagnosis-card h3,
.report-usage-card h3,
.future-after-report-card h3,
.optional-purchase-note h3 {
  color: #fef3c7;
  font-size: 1rem;
  text-align: center;
  margin-bottom: 16px;
}
.sample-reading-grid,
.input-reason-grid,
.free-result-example-grid,
.after-diagnosis-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.input-reason-grid {
  grid-template-columns: repeat(4, 1fr);
}
.after-diagnosis-grid {
  grid-template-columns: repeat(4, 1fr);
}
.sample-reading-grid div,
.input-reason-grid div,
.free-result-example-grid div,
.after-diagnosis-grid div {
  border-radius: 12px;
  border: 1px solid rgba(167, 139, 250, .22);
  background: rgba(10, 10, 20, .62);
  padding: 14px;
}
.sample-reading-grid span,
.input-reason-grid span,
.free-result-example-grid span,
.after-diagnosis-grid span {
  display: block;
  color: #c4b5fd;
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .06em;
  margin-bottom: 6px;
}
.sample-reading-grid p,
.input-reason-grid p,
.free-result-example-grid p,
.after-diagnosis-grid p,
.report-usage-card p,
.future-after-report-card p,
.optional-purchase-note p {
  color: #cbd5e1;
  font-size: .82rem;
  line-height: 1.7;
}
.future-kicker {
  color: #fbbf24 !important;
  font-size: 1.0rem !important;
  font-weight: 900;
  letter-spacing: .12em;
  text-align: center;
  margin-bottom: 12px;
}
.future-lead {
  max-width: 820px;
  margin: 0 auto 18px;
  text-align: center;
}
.future-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.future-grid div {
  border-radius: 12px;
  border: 1px solid rgba(52, 211, 153, .22);
  background: rgba(6, 78, 59, .16);
  padding: 14px;
}
.future-grid span {
  display: block;
  color: #a7f3d0;
  font-size: .8rem;
  font-weight: 900;
  margin-bottom: 6px;
}
.future-grid p {
  color: #cbd5e1;
  font-size: .8rem;
  line-height: 1.7;
}
.free-result-example-note {
  color: #a7f3d0;
  font-size: .84rem;
  line-height: 1.7;
  text-align: center;
  margin-top: 16px;
}
.report-usage-card {
  margin-top: 24px;
  margin-bottom: 0;
}
.report-toc {
  border-radius: 18px;
  border: 1px solid rgba(59, 130, 246, .26);
  background: linear-gradient(145deg, rgba(15, 26, 42, .92), rgba(30, 27, 75, .48));
  padding: 24px;
}
.report-toc h3 {
  color: #f5f3ff;
  font-size: 1rem;
  text-align: center;
  margin-bottom: 16px;
}
.toc-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
.toc-grid div {
  padding: 12px 14px;
  border-radius: 10px;
  background: rgba(10, 10, 20, .62);
  border: 1px solid rgba(99, 102, 241, .18);
  color: #cbd5e1;
  font-size: .84rem;
  line-height: 1.55;
}
.toc-grid span {
  display: inline-block;
  margin-right: 8px;
  color: #93c5fd;
  font-weight: 900;
}

/* ── 無料版と六層統合解析書の違い ── */
.scope-section {
  background: #0f0f20;
}
.scope-compare {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.scope-card {
  border-radius: 18px;
  padding: 24px 22px;
  background: #13132a;
  border: 1px solid rgba(167, 139, 250, .24);
}
.scope-card.free {
  border-color: rgba(52, 211, 153, .24);
  background: rgba(6, 78, 59, .16);
}
.scope-card.full {
  border-color: rgba(251, 191, 36, .3);
  background: rgba(36, 24, 5, .28);
}
.scope-label {
  color: #f5f3ff;
  font-size: 1rem;
  font-weight: 900;
  margin-bottom: 12px;
}
.scope-card.free .scope-label { color: #a7f3d0; }
.scope-card.full .scope-label { color: #fef3c7; }
.scope-card ul {
  list-style: none;
}
.scope-card li {
  position: relative;
  padding-left: 20px;
  color: #cbd5e1;
  font-size: .86rem;
  line-height: 1.75;
  margin-bottom: 7px;
}
.scope-card li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: #a78bfa;
  font-weight: 900;
}
.optional-purchase-note {
  margin: 22px auto 0;
  max-width: 760px;
  border-color: rgba(52, 211, 153, .24);
  background: rgba(6, 78, 59, .16);
}
.optional-purchase-note h3 {
  color: #a7f3d0;
}

/* ── 自己理解レポート ── */
.not-fortune-section {
  background: #101018;
}
.not-fortune-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.not-fortune-grid > div {
  border-radius: 16px;
  padding: 22px 20px;
  background: #13132a;
  border: 1px solid rgba(52, 211, 153, .22);
}
.not-fortune-grid h3 {
  color: #a7f3d0;
  font-size: .95rem;
  margin-bottom: 8px;
}
.not-fortune-grid p {
  color: #cbd5e1;
  font-size: .84rem;
  line-height: 1.75;
}

/* ── 安心材料・推奨対象 ── */
.safety-section {
  background: #0d0d1f;
}
.safety-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  margin-bottom: 24px;
}
.safety-card {
  padding: 20px 18px;
  border-radius: 14px;
  border: 1px solid rgba(52, 211, 153, .24);
  background: rgba(6, 78, 59, .14);
}
.safety-card h3 {
  color: #a7f3d0;
  font-size: .95rem;
  margin-bottom: 8px;
}
.safety-card p {
  color: #cbd5e1;
  font-size: .84rem;
  line-height: 1.7;
}
.recommend-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.recommend-card {
  padding: 22px 20px;
  border-radius: 16px;
  border: 1px solid rgba(167, 139, 250, .28);
  background: #13132a;
}
.recommend-card.muted {
  border-color: rgba(156, 163, 175, .22);
  background: #101018;
}
.recommend-card h3 {
  color: #f5f3ff;
  font-size: 1rem;
  margin-bottom: 12px;
}
.recommend-card ul {
  list-style: none;
}
.recommend-card li {
  position: relative;
  padding-left: 20px;
  color: #c4b5fd;
  font-size: .85rem;
  line-height: 1.75;
  margin-bottom: 6px;
}
.recommend-card li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: #a78bfa;
  font-weight: 900;
}
.recommend-card.muted li {
  color: #9ca3af;
}
.recommend-card.muted li::before {
  content: "–";
  color: #6b7280;
}

/* ── 診断の流れ・FAQ ── */
.flow-faq-section {
  background: #0a0a14;
}
.flow-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 48px;
}
.flow-step {
  padding: 20px 16px;
  border-radius: 16px;
  border: 1px solid rgba(167, 139, 250, .28);
  background: #13132a;
}
.flow-step span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  background: #4c1d95;
  color: #f5f3ff;
  font-weight: 900;
  margin-bottom: 10px;
}
.flow-step strong {
  display: block;
  color: #f5f3ff;
  font-size: .9rem;
  margin-bottom: 6px;
}
.flow-step p {
  color: #9ca3af;
  font-size: .8rem;
  line-height: 1.65;
}
.faq-block {
  margin-bottom: 32px;
}
.faq-list {
  max-width: 760px;
  margin: 0 auto;
}
.faq-list details {
  border: 1px solid rgba(167, 139, 250, .22);
  border-radius: 12px;
  background: #13132a;
  margin-bottom: 10px;
  overflow: hidden;
}
.faq-list summary {
  cursor: pointer;
  padding: 14px 18px;
  color: #e9d5ff;
  font-weight: 700;
  font-size: .9rem;
}
.faq-list p {
  padding: 0 18px 16px;
  color: #cbd5e1;
  font-size: .84rem;
  line-height: 1.75;
}
.final-free-cta {
  text-align: center;
  padding: 30px 22px;
  border-radius: 18px;
  border: 1px solid rgba(251, 191, 36, .28);
  background: linear-gradient(145deg, rgba(76, 29, 149, .28), rgba(30, 27, 75, .55));
}
.final-free-cta p {
  color: #e5e7eb;
  font-weight: 700;
  margin-bottom: 18px;
}

/* ── 差別化セクション ── */
.differ-section { background: #0d0d1f; }
.section-sub {
  text-align: center;
  color: #6b7280;
  font-size: .9rem;
  margin-top: -28px;
  margin-bottom: 36px;
}
.section-visual {
  margin: -8px auto 34px;
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid rgba(251, 191, 36, .22);
  background:
    linear-gradient(145deg, rgba(15, 23, 42, .9), rgba(30, 27, 75, .62));
  box-shadow: 0 22px 60px rgba(0, 0, 0, .42), 0 0 34px rgba(124, 58, 237, .14);
}
.section-visual img {
  display: block;
  width: 100%;
  height: auto;
}
.free-chapter-visual {
  max-width: 900px;
}
.paid-depth-visual {
  max-width: 900px;
}
.cta-roadmap-visual {
  max-width: 900px;
  margin-top: -8px;
  margin-bottom: 28px;
}
.differ-visual {
  margin: -8px auto 28px;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(251, 191, 36, .24);
  background: rgba(8, 8, 20, .9);
  box-shadow: 0 18px 50px rgba(0, 0, 0, .42), 0 0 32px rgba(124, 58, 237, .12);
}
.differ-visual img {
  display: block;
  width: 100%;
  height: auto;
}
.differ-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.differ-item {
  border-radius: 12px;
  padding: 28px 24px;
}
.differ-bad {
  background: #120f1a;
  border: 1px solid #2d2438;
}
.differ-good {
  background: #0f1a2a;
  border: 1px solid #1e3a5f;
}
.differ-label {
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .1em;
  margin-bottom: 16px;
  color: #6b7280;
}
.differ-good .differ-label { color: #60a5fa; }
.differ-item ul { list-style: none; padding: 0; }
.differ-item ul li {
  font-size: .88rem;
  padding: 6px 0 6px 20px;
  color: #9ca3af;
  border-bottom: 1px solid #1a1a2e;
  position: relative;
}
.differ-item ul li::before {
  content: "–";
  position: absolute;
  left: 0;
  color: #4b5563;
}
.differ-good ul li { color: #bfdbfe; }
.differ-good ul li::before { content: "✓"; color: #3b82f6; }
.differ-core-map {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 10px;
  margin: 0 0 24px;
}
.core-node {
  min-height: 86px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 12px 8px;
  border-radius: 16px;
  border: 1px solid rgba(167, 139, 250, .32);
  background:
    radial-gradient(circle at 50% 0%, rgba(124, 58, 237, .32), transparent 58%),
    rgba(19, 19, 42, .9);
  color: #f5f3ff;
  font-weight: 900;
  line-height: 1.35;
  box-shadow: 0 10px 28px rgba(0, 0, 0, .22);
}
.core-node span {
  color: #c4b5fd;
  font-size: .74rem;
  font-weight: 700;
}
.differ-proof-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-top: 18px;
}
.proof-card {
  position: relative;
  padding: 20px 18px 18px;
  border-radius: 14px;
  border: 1px solid rgba(59, 130, 246, .26);
  background: linear-gradient(145deg, rgba(15, 26, 42, .92), rgba(30, 27, 75, .58));
}
.proof-num {
  display: inline-block;
  margin-bottom: 8px;
  color: #60a5fa;
  font-size: .75rem;
  font-weight: 900;
  letter-spacing: .12em;
}
.proof-card strong {
  display: block;
  color: #f5f3ff;
  font-size: .95rem;
  margin-bottom: 8px;
}
.proof-card p {
  color: #a5b4fc;
  font-size: .82rem;
  line-height: 1.7;
}

/* ── スコアプレビューグリッド（無料セクション） ── */
.free-section { background: #0f0f20; }
.score-preview-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px;
  margin-bottom: 32px;
}
.score-preview-item {
  background: #13132a;
  border: 1px solid #2e2a5e;
  border-radius: 10px;
  padding: 16px 18px;
}
.score-preview-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}
.score-preview-name {
  font-size: .88rem;
  font-weight: 700;
  color: #c4b5fd;
}
.score-preview-badge {
  font-size: .72rem;
  padding: 2px 8px;
  border-radius: 20px;
  font-weight: 600;
}
.score-preview-badge.high {
  background: #4c1d19;
  color: #fca5a5;
  border: 1px solid #7f1d1d;
}
.score-preview-desc {
  font-size: .82rem;
  color: #9ca3af;
  line-height: 1.6;
}
.free-also-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 8px;
}
.free-also-item {
  background: #13132a;
  border: 1px solid #2e2a5e;
  border-radius: 10px;
  padding: 22px 20px;
  text-align: center;
}
.free-also-icon {
  font-size: 1.8rem;
  margin-bottom: 10px;
  color: #a78bfa;
}
.free-also-item h3 { font-size: .95rem; font-weight: 700; color: #e0d9ff; margin-bottom: 6px; }
.free-also-item p { font-size: .83rem; color: #9ca3af; }

/* ── 有料版グリッド（5章） ── */
.paid-section { background: #0a0a14; }
.lock-badge {
  font-size: .75rem;
  background: #374151;
  color: #d1d5db;
  padding: 2px 8px;
  border-radius: 20px;
  vertical-align: middle;
  margin-left: 8px;
}
.paid-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 16px;
  margin-bottom: 48px;
}
.paid-card {
  background: #13132a;
  border: 1px solid #2e2a5e;
  border-radius: 12px;
  padding: 24px 20px;
  position: relative;
}
.highlight-card {
  border-color: #4c1d95;
  background: #150e30;
}
.chapter-num {
  font-size: .75rem;
  color: #a78bfa;
  font-weight: 700;
  letter-spacing: .1em;
  margin-bottom: 8px;
}
.highlight-card .chapter-num { color: #c4b5fd; }
.paid-card h3 { font-size: .93rem; font-weight: 700; color: #e0d9ff; margin-bottom: 8px; line-height: 1.45; }
.paid-card p { font-size: .83rem; color: #9ca3af; }
.blurred-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, transparent 30%, #0a0a14 100%);
  border-radius: 12px;
}

/* ── プレミアム機能リスト ── */
.premium-feature-list { margin: 0 0 20px; text-align: left; }
.premium-feature {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid #2a1a08;
  font-size: .88rem;
  color: #d6c3a8;
}
.pf-check {
  flex-shrink: 0;
  width: 20px;
  color: #9ca3af;
  font-weight: 700;
}
.premium-check { color: #fbbf24; }

/* ── CTA ブロック ── */
.cta-block {
  border: 1px solid #4c1d95;
  border-radius: 16px;
  padding: 36px 28px;
  margin-bottom: 24px;
  background: #13132a;
  text-align: center;
}
.premium-cta { border-color: #92400e; background: #1c1108; }
.cta-label { font-size: .82rem; letter-spacing: .08em; color: #a78bfa; margin-bottom: 8px; }
.premium-label { color: #fbbf24; }
.cta-price { font-size: 2rem; font-weight: 900; color: #f5f3ff; margin-bottom: 8px; }
.price-num { font-size: 2.4rem; }
.price-tax { font-size: .85rem; color: #6b7280; }
.regular-price {
  font-size: .95rem;
  color: #8b8ca3;
  margin-bottom: 2px;
}
.regular-price span {
  position: relative;
  display: inline-block;
  text-decoration: line-through;
  text-decoration-thickness: 2px;
  text-decoration-color: #ef4444;
}
.regular-price span::after {
  content: "";
  position: absolute;
  left: -4px;
  right: -4px;
  top: 52%;
  height: 2px;
  background: #ef4444;
  transform: rotate(-2deg);
}
.price-return-note {
  font-size: .78rem;
  color: #fbbf24;
  margin: -2px 0 10px;
}
.cta-desc { font-size: .9rem; color: #9ca3af; margin-bottom: 20px; }
.cta-note { font-size: .8rem; color: #6b7280; margin-top: 10px; }
.btn-complete { max-width: 400px; margin: 0 auto; }

/* ── フォームセクション ── */
.form-bg { background: #0f0f20; }
.form-lead { text-align: center; color: #9ca3af; margin-bottom: 32px; font-size: .95rem; }
.form-step { display: none; }
.form-step.active { display: block; }
.step-title { font-size: 1.05rem; font-weight: 700; color: #e0d9ff; margin-bottom: 20px; }

.form-group { margin-bottom: 18px; }
.form-group label {
  display: block;
  font-size: .88rem;
  color: #c4b5fd;
  margin-bottom: 6px;
}
.required { color: #f87171; font-size: .78rem; margin-left: 4px; }
.optional { color: #9ca3af; font-size: .78rem; margin-left: 4px; }
.field-hint { font-size: .78rem; color: #6b7280; margin-top: 4px; }
.field-hint-emphasis,
#challenge-hint {
  font-size: .9rem;
  color: #9ca3af;
  margin-top: 8px;
  line-height: 1.65;
}
.field-error { font-size: .78rem; color: #f87171; margin-top: 4px; display: none; }
input.input-error,
select.input-error,
textarea.input-error {
  border-color: #f87171 !important;
  box-shadow: 0 0 0 1px rgba(248, 113, 113, .25);
}
.form-group input,
.form-group select,
.form-group textarea {
  width: 100%;
  background: #1e1b4b;
  border: 1px solid #3730a3;
  color: #e8e8f0;
  border-radius: 8px;
  padding: 10px 14px;
  font-size: .95rem;
  font-family: inherit;
  outline: none;
  transition: border-color .2s;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus { border-color: #7c3aed; }
.consent-group {
  padding: 12px 14px;
  border: 1px solid rgba(124, 58, 237, .35);
  border-radius: 10px;
  background: rgba(30, 27, 75, .45);
}
.consent-group.input-error {
  border-color: #f87171 !important;
  background: rgba(127, 29, 29, .22);
  box-shadow: 0 0 0 2px rgba(248, 113, 113, .45);
}
.form-group .checkbox-label input.input-error {
  outline: 2px solid #f87171;
  outline-offset: 3px;
}
.form-group .checkbox-label {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  color: #e0d9ff;
  line-height: 1.55;
  margin-bottom: 0;
}
.form-group .checkbox-label input {
  width: auto;
  margin-top: .25em;
  flex: 0 0 auto;
}
.form-group .checkbox-label a {
  color: #c4b5fd;
  text-decoration: underline;
}

/* ── 問診 ── */
#q-progress-bar {
  height: 4px;
  background: #1e1b4b;
  border-radius: 2px;
  margin-bottom: 12px;
  overflow: hidden;
}
#q-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #7c3aed, #a78bfa);
  border-radius: 2px;
  transition: width .3s;
}
.q-counter { font-size: .82rem; color: #6b7280; text-align: right; margin-bottom: 20px; }
.q-answer-guide {
  border: 1px solid rgba(251, 191, 36, .42);
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(251, 191, 36, .13), rgba(124, 58, 237, .13));
  box-shadow: 0 14px 34px rgba(0, 0, 0, .22), 0 0 0 1px rgba(255, 255, 255, .04) inset;
  padding: 16px 18px;
  margin-bottom: 18px;
}
.q-answer-guide-label {
  display: inline-block;
  margin-bottom: 8px;
  padding: 3px 10px;
  border-radius: 999px;
  background: rgba(251, 191, 36, .18);
  color: #fde68a;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .08em;
}
.q-answer-guide-main {
  color: #f5f3ff;
  font-size: .95rem;
  font-weight: 700;
  line-height: 1.75;
}
.q-answer-guide-note {
  color: #d6d3e8;
  font-size: .83rem;
  line-height: 1.65;
  margin-top: 6px;
}
.q-text { font-size: 1.05rem; font-weight: 600; color: #f0f0ff; margin-bottom: 20px; }
.q-choices { display: flex; flex-direction: column; gap: 10px; margin-bottom: 24px; }
.q-choice {
  background: #13132a;
  border: 1px solid #2e2a5e;
  border-radius: 8px;
  padding: 12px 16px;
  cursor: pointer;
  font-size: .93rem;
  color: #c4b5fd;
  transition: background .15s, border-color .15s;
  text-align: left;
}
.q-choice:hover { background: #1e1b4b; border-color: #7c3aed; }
.q-choice.selected { background: #1e1b4b; border-color: #7c3aed; color: #e0d9ff; }
.q-nav { display: flex; gap: 12px; justify-content: space-between; }

/* ── 結果 ── */
.loading-block { text-align: center; padding: 48px 0; }
.spinner {
  width: 44px; height: 44px;
  border: 3px solid #2e2a5e;
  border-top-color: #7c3aed;
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin: 0 auto 16px;
}
@keyframes spin { to { transform: rotate(360deg); } }
.result-badge {
  display: inline-block;
  background: linear-gradient(135deg, #4c1d95, #6d28d9);
  color: #f5f3ff;
  font-size: .85rem;
  font-weight: 700;
  padding: 4px 16px;
  border-radius: 20px;
  margin-bottom: 16px;
}
.result-intro {
  font-size: .88rem;
  color: #9ca3af;
  text-align: center;
  margin-bottom: 20px;
  line-height: 1.7;
}
.result-scores { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 20px; }
.result-map-block {
  background: #101025;
  border: 1px solid #312e81;
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 20px;
}
.result-map-title {
  font-size: .95rem;
  font-weight: 800;
  color: #e9d5ff;
  margin-bottom: 6px;
}
.result-map-lead {
  font-size: .82rem;
  color: #a5b4fc;
  line-height: 1.65;
  margin-bottom: 14px;
}
.result-map-block .result-scores { margin-bottom: 0; }
.score-item { background: #13132a; border: 1px solid #2e2a5e; border-radius: 8px; padding: 12px; }
.score-label { font-size: .78rem; color: #9ca3af; margin-bottom: 4px; }
.score-bar-wrap { height: 6px; background: #1e1b4b; border-radius: 3px; margin-bottom: 4px; }
.score-bar { height: 6px; border-radius: 3px; }
.score-bar.low { background: #3b82f6; }
.score-bar.mid { background: #f59e0b; }
.score-bar.high { background: #ef4444; }
.score-pct { font-size: .88rem; font-weight: 700; color: #c4b5fd; }
.score-hint { font-size: .75rem; color: #6b7280; margin-top: 4px; line-height: 1.4; }
.result-insight {
  background: linear-gradient(135deg, #1e1b4b 0%, #13132a 100%);
  border: 1px solid #4c1d95;
  border-radius: 12px;
  padding: 18px 20px;
  margin-bottom: 20px;
}
.insight-title { font-size: 1rem; font-weight: 700; color: #e9d5ff; margin-bottom: 10px; }
.insight-lead, .insight-os, .insight-challenge {
  font-size: .88rem;
  color: #d1d5db;
  line-height: 1.75;
  margin-bottom: 8px;
}
.insight-lead strong, .insight-challenge strong { color: #fbbf24; }
.result-os-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin-top: 12px;
  font-size: .78rem;
  color: #6b7280;
}
.result-analysis {
  margin-bottom: 20px;
}
.analysis-title {
  font-size: .95rem;
  font-weight: 700;
  color: #a78bfa;
  margin-bottom: 12px;
}
.analysis-block {
  background: #0f1626;
  border-left: 3px solid #6366f1;
  border-radius: 0 8px 8px 0;
  padding: 12px 16px;
  margin-bottom: 10px;
}
.analysis-block-title {
  font-size: .82rem;
  font-weight: 700;
  color: #93c5fd;
  margin-bottom: 6px;
}
.analysis-block p {
  font-size: .85rem;
  color: #cbd5e1;
  line-height: 1.7;
}
.result-chapter1 {
  background: #13132a;
  border: 1px solid #3730a3;
  border-radius: 10px;
  padding: 16px 18px;
  margin-bottom: 20px;
}
.chapter1-title {
  font-size: .9rem;
  font-weight: 700;
  color: #c4b5fd;
  margin-bottom: 10px;
}
.chapter1-body {
  font-size: .88rem;
  color: #d1d5db;
  line-height: 1.8;
}
.chapter1-body h4 {
  font-size: .92rem;
  color: #e9d5ff;
  margin: 12px 0 8px;
}
.challenge-upsell { color: #60a5fa; }
.result-os {
  background: #13132a;
  border: 1px solid #3730a3;
  border-radius: 10px;
  padding: 16px;
  margin-bottom: 16px;
}
.result-os-title { font-size: .82rem; color: #a78bfa; margin-bottom: 6px; }
.result-os-main { font-size: 1.3rem; font-weight: 700; color: #f0f0ff; margin-bottom: 4px; }
.result-os-desc { font-size: .88rem; color: #9ca3af; }
.result-os-depth {
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 8px;
  background: #0f1626;
  color: #cbd5e1;
  font-size: .84rem;
  line-height: 1.7;
}
.result-os-depth strong { color: #fbbf24; }
.result-challenge-echo {
  background: #0f1626;
  border: 1px solid #1e3a5f;
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 20px;
  font-size: .85rem;
  color: #93c5fd;
  line-height: 1.6;
}
.result-cta-block { padding-top: 8px; }
.result-cta-lead { text-align: center; font-size: .92rem; color: #c4b5fd; margin-bottom: 20px; line-height: 1.7; }
.result-cta-note { font-size: .78rem; color: #6b7280; text-align: center; margin-top: 10px; }

/* ── 動的アップセル（診断結果） ── */
.result-upsell-mid {
  margin: 20px 0 24px;
  padding: 16px 18px;
  background: linear-gradient(135deg, #1a1033 0%, #13132a 100%);
  border: 1px solid #6d28d9;
  border-radius: 12px;
  text-align: center;
}
.upsell-mid-lead {
  font-size: .9rem;
  color: #e9d5ff;
  line-height: 1.75;
  margin-bottom: 12px;
}
.upsell-mid-lead strong { color: #fbbf24; }
.upsell-mid-link {
  display: inline-block;
  font-size: .88rem;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(135deg, #7c3aed, #6d28d9);
  padding: 10px 20px;
  border-radius: 8px;
  text-decoration: none;
  transition: transform .15s, filter .2s;
}
.upsell-mid-link:hover {
  filter: brightness(1.1);
  transform: translateY(-1px);
  color: #fff;
}

.result-upsell {
  margin-top: 28px;
  scroll-margin-top: 24px;
}
#result-upsell-anchor {
  scroll-margin-top: 24px;
}
.upsell-wrap {
  border-top: 2px solid #7c3aed;
  padding-top: 32px;
}
.upsell-hero-img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 12px;
  margin-bottom: 24px;
  border: 1px solid rgba(124, 58, 237, 0.35);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.45);
}
.upsell-eyebrow {
  text-align: center;
  font-size: clamp(1.35rem, 4vw, 1.85rem);
  font-weight: 900;
  letter-spacing: .04em;
  color: #fbbf24;
  margin-bottom: 16px;
  line-height: 1.4;
  text-shadow: 0 0 24px rgba(251, 191, 36, 0.35);
}
.upsell-eyebrow::before,
.upsell-eyebrow::after {
  content: " ";
  display: block;
  width: 48px;
  height: 2px;
  background: linear-gradient(90deg, transparent, #fbbf24, transparent);
  margin: 10px auto;
}
.upsell-title {
  text-align: center;
  font-size: clamp(1.05rem, 2.5vw, 1.25rem);
  font-weight: 700;
  color: #f5f3ff;
  line-height: 1.55;
  margin-bottom: 12px;
}
.upsell-sub {
  text-align: center;
  font-size: .9rem;
  color: #c4b5fd;
  line-height: 1.75;
  margin-bottom: 20px;
}
.upsell-sub em { font-style: normal; color: #fbbf24; font-weight: 600; }

.upsell-cost {
  background: #1c0a0a;
  border: 1px solid #7f1d1d;
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 16px;
  font-size: .88rem;
  color: #fca5a5;
  line-height: 1.75;
  text-align: center;
}
.upsell-cost strong { color: #fecaca; }

.upsell-block-title {
  font-size: .95rem;
  font-weight: 800;
  color: #f5f3ff;
  margin: 0 0 10px;
  text-align: center;
}

.upsell-half-map {
  background: #12122a;
  border: 1px solid #4338ca;
  border-radius: 10px;
  padding: 16px;
  margin-bottom: 14px;
  font-size: .88rem;
  color: #d1d5db;
  line-height: 1.75;
}
.upsell-half-map p { margin: 0 0 8px; }
.upsell-half-map p:last-child { margin-bottom: 0; }
.upsell-half-map-risk { color: #fca5a5; text-align: center; }

.upsell-month-loss {
  background: #1a1020;
  border: 1px solid #9d174d;
  border-radius: 10px;
  padding: 16px;
  margin-bottom: 14px;
  font-size: .88rem;
  color: #e5e7eb;
  line-height: 1.75;
}
.upsell-month-loss-lead { margin: 0 0 8px; }
.upsell-month-loss-lead strong { color: #fbbf24; }
.upsell-month-loss-close {
  margin: 10px 0 0;
  color: #c4b5fd;
  font-size: .84rem;
}

.upsell-pain {
  font-size: .88rem;
  color: #d1d5db;
  line-height: 1.75;
  margin-bottom: 22px;
  padding: 0 4px;
}
.upsell-pain strong { color: #93c5fd; }

.upsell-chapters { margin-bottom: 24px; }
.upsell-chapters-label {
  font-size: .78rem;
  letter-spacing: .08em;
  color: #6b7280;
  margin-bottom: 12px;
  text-align: center;
}
.upsell-chapter {
  border: 1px solid #312e81;
  border-radius: 10px;
  padding: 12px 14px;
  margin-bottom: 8px;
  background: #0f0f20;
}
.upsell-chapter.is-open {
  border-color: #059669;
  background: #0a1a14;
}
.upsell-chapter.is-locked {
  border-color: #374151;
  background: #0a0a12;
}
.upsell-chapter.is-locked .upsell-chapter-desc {
  filter: blur(3px);
  opacity: .55;
  user-select: none;
}
.upsell-chapter-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
}
.upsell-chapter-num {
  font-size: .72rem;
  font-weight: 700;
  color: #a78bfa;
  letter-spacing: .06em;
}
.upsell-chapter.is-open .upsell-chapter-num { color: #34d399; }
.upsell-chapter-status {
  font-size: .68rem;
  color: #6b7280;
}
.upsell-chapter.is-open .upsell-chapter-status { color: #34d399; }
.upsell-chapter-title {
  font-size: .92rem;
  font-weight: 700;
  color: #e5e7eb;
  margin-bottom: 4px;
  line-height: 1.45;
}
.upsell-chapter-desc {
  font-size: .78rem;
  color: #9ca3af;
  line-height: 1.5;
}

.upsell-offer {
  border-radius: 14px;
  padding: 24px 20px;
  margin-bottom: 16px;
  text-align: center;
}
.upsell-offer-primary {
  border: 2px solid #dc2626;
  background: linear-gradient(180deg, #2a0f0f 0%, #13132a 100%);
  box-shadow: 0 0 32px rgba(220, 38, 38, 0.2);
}
.upsell-offer-test {
  border: 2px dashed #f59e0b;
  background: linear-gradient(180deg, #241805 0%, #111827 100%);
  box-shadow: 0 0 24px rgba(245, 158, 11, 0.16);
}
.upsell-offer-premium {
  border: 1px solid #92400e;
  background: #1c1108;
}
.upsell-offer-label {
  font-size: .78rem;
  letter-spacing: .08em;
  color: #a78bfa;
  margin-bottom: 6px;
}
.upsell-offer-price {
  font-size: 1.8rem;
  font-weight: 900;
  color: #f5f3ff;
  margin-bottom: 8px;
}
.upsell-regular-price {
  font-size: .9rem;
  color: #8b8ca3;
  margin-bottom: 2px;
}
.upsell-regular-price span {
  position: relative;
  display: inline-block;
  text-decoration: line-through;
  text-decoration-thickness: 2px;
  text-decoration-color: #ef4444;
}
.upsell-regular-price span::after {
  content: "";
  position: absolute;
  left: -4px;
  right: -4px;
  top: 52%;
  height: 2px;
  background: #ef4444;
  transform: rotate(-2deg);
}
.upsell-price-note {
  font-size: .76rem;
  color: #fbbf24;
  margin: -2px 0 10px;
}
.upsell-tax { font-size: .75rem; font-weight: 400; color: #6b7280; }
.upsell-offer-desc {
  font-size: .88rem;
  color: #9ca3af;
  line-height: 1.65;
  margin-bottom: 16px;
}
.upsell-btn-main { font-size: 1rem; padding: 14px 20px; }
.upsell-btn-sub { font-size: .92rem; padding: 12px 18px; margin-top: 4px; }
.upsell-premium-list {
  list-style: none;
  text-align: left;
  max-width: 420px;
  margin: 0 auto 16px;
  font-size: .82rem;
  color: #d6c3a8;
  line-height: 1.7;
}
.upsell-premium-list li {
  padding-left: 1.2em;
  position: relative;
  margin-bottom: 6px;
}
.upsell-premium-list li::before {
  content: "+";
  position: absolute;
  left: 0;
  color: #fbbf24;
  font-weight: 700;
}
.upsell-offer-note {
  font-size: .75rem;
  color: #6b7280;
  margin-top: 10px;
}

/* ── フッター ── */
.footer {
  background: #060610;
  text-align: center;
  padding: 36px 20px;
  font-size: .82rem;
  color: #374151;
  line-height: 2;
}
.footer-links {
  margin-top: 8px;
  font-size: .8rem;
}
.footer-links a {
  color: #4b5563;
  text-decoration: underline;
  transition: color .2s;
}
.footer-links a:hover { color: #9ca3af; }
.footer-links span { margin: 0 8px; color: #2d3748; }

/* ── レスポンシブ ── */
@media (max-width: 600px) {
  .result-scores { grid-template-columns: 1fr; }
  .paid-grid { grid-template-columns: 1fr; }
  .trust-grid { grid-template-columns: 1fr; }
  .trust-assurance { grid-template-columns: 1fr; }
  .philosophy-layer-grid { grid-template-columns: 1fr; }
  .philosophy-promise-grid { grid-template-columns: 1fr; }
  .sample-profile-card { grid-template-columns: 1fr; }
  .sample-meta-grid { grid-template-columns: 1fr 1fr; }
  .sample-reading-grid { grid-template-columns: 1fr; }
  .input-reason-grid { grid-template-columns: 1fr; }
  .free-result-example-grid { grid-template-columns: 1fr; }
  .after-diagnosis-grid { grid-template-columns: 1fr; }
  .future-grid { grid-template-columns: 1fr; }
  .report-preview-grid { grid-template-columns: 1fr; }
  .toc-grid { grid-template-columns: 1fr; }
  .scope-compare { grid-template-columns: 1fr; }
  .not-fortune-grid { grid-template-columns: 1fr; }
  .safety-grid { grid-template-columns: 1fr; }
  .recommend-grid { grid-template-columns: 1fr; }
  .flow-steps { grid-template-columns: 1fr; }
  .score-preview-grid { grid-template-columns: 1fr; }
  .free-also-grid { grid-template-columns: 1fr; }
  .differ-grid { grid-template-columns: 1fr; }
  .differ-core-map { grid-template-columns: repeat(2, 1fr); }
  .differ-proof-grid { grid-template-columns: 1fr; }
  .q-nav { flex-direction: column; }
}

/* ── 解説パネルセクション（rei-panel-） ── */
.rei-panel-section { padding: 72px 0; }
.rei-panel-s0 { background: #0d0d1a; }
.rei-panel-s1 { background: #13131f; }
.rei-panel-s2 { background: #0d0d1a; }
.rei-panel-s3 {
  background: #13131f;
  border-top: 1px solid rgba(107, 79, 160, .22);
  border-bottom: 1px solid rgba(107, 79, 160, .22);
}

.rei-panel-inner {
  display: flex;
  align-items: center;
  gap: 48px;
}

/* キャラクター列 */
.rei-panel-char {
  flex: 0 0 260px;
  width: 260px;
  text-align: center;
}
.rei-panel-img {
  max-height: 400px;
  width: 100%;
  object-fit: contain;
  filter: drop-shadow(0 8px 36px rgba(107, 79, 160, .48));
  display: block;
  margin: 0 auto;
}

/* テキスト列 */
.rei-panel-text { flex: 1 1 0; min-width: 0; }

/* パターンラベル */
.rei-panel-pattern-label {
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .14em;
  color: #a78bfa;
  text-transform: uppercase;
  margin-bottom: 10px;
}

/* セクション見出し */
.rei-panel-heading {
  font-size: clamp(1.2rem, 2.6vw, 1.6rem);
  font-weight: 900;
  color: #f5f3ff;
  line-height: 1.45;
  margin-bottom: 20px;
}

/* セリフ吹き出し */
.rei-speech-bubble {
  background: rgba(30, 20, 60, .70);
  border: 1px solid #6b4fa0;
  border-radius: 14px;
  padding: 16px 22px;
  margin-bottom: 16px;
  font-size: .93rem;
  color: #e0d9ff;
  line-height: 1.85;
  position: relative;
}

/* ぼかしサンプルカード */
.rei-blur-card {
  background: rgba(255, 255, 255, .05);
  border: 1px solid rgba(107, 79, 160, .35);
  border-radius: 14px;
  padding: 20px 22px 14px;
  margin-top: 4px;
  overflow: hidden;
}
.rei-sample-figure {
  margin: 0 auto;
  overflow: hidden;
  border-radius: 8px;
  max-width: 340px;
}
.rei-sample-img {
  width: 100%;
  display: block;
  user-select: none;
  pointer-events: none;
}
.rei-blur-card-title {
  font-size: .8rem;
  font-weight: 700;
  color: #c4b5fd;
  letter-spacing: .06em;
  margin-bottom: 14px;
  text-align: center;
}
.rei-blur-content {
  filter: blur(4px);
  user-select: none;
  pointer-events: none;
}
.rei-blur-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}
.rei-blur-label {
  flex: 0 0 130px;
  font-size: .78rem;
  color: #9ca3af;
}
.rei-blur-bar {
  height: 8px;
  width: 62%;
  background: linear-gradient(90deg, #6b4fa0, #a78bfa);
  border-radius: 4px;
}
.rei-blur-bar--sm  { width: 38%; }
.rei-blur-bar--md  { width: 52%; }
.rei-blur-bar--lg  { width: 72%; }
.rei-blur-bar--xl  { width: 84%; }
.rei-blur-text-line {
  font-size: .8rem;
  color: #9ca3af;
  margin-top: 8px;
  line-height: 1.6;
}
.rei-blur-caption {
  font-size: .72rem;
  color: #6b7280;
  text-align: center;
  margin-top: 10px;
  letter-spacing: .06em;
}

/* レーダーチャート（Section 2） */
.rei-radar-wrap {
  display: flex;
  justify-content: center;
  padding: 8px 0 4px;
}
.rei-radar-svg {
  width: 200px;
  height: 200px;
  overflow: visible;
}

/* CTAパネル（Section 3） */
.rei-panel-cta-inner {
  display: flex;
  align-items: center;
  gap: 48px;
  justify-content: center;
}
.rei-panel-cta-char {
  flex: 0 0 220px;
  width: 220px;
  text-align: center;
}
.rei-panel-cta-img { max-height: 340px; }
.rei-panel-cta-body {
  flex: 1 1 0;
  max-width: 500px;
}
.rei-panel-cta-copy {
  font-size: clamp(1.05rem, 2.2vw, 1.25rem);
  font-weight: 700;
  color: #f0f0ff;
  line-height: 1.85;
  margin-bottom: 28px;
}
.rei-panel-cta-btn {
  font-size: 1.1rem !important;
  font-weight: 900 !important;
  padding: 17px 42px !important;
  border-radius: 999px !important;
  background: linear-gradient(135deg, #dc2626, #b91c1c) !important;
  border: none !important;
  box-shadow: 0 4px 20px rgba(220,38,38,.45);
  animation: mid-cta-shake 2.4s ease-in-out infinite;
}
.rei-panel-cta-btn:hover {
  background: linear-gradient(135deg, #ef4444, #dc2626) !important;
  box-shadow: 0 6px 28px rgba(220,38,38,.6);
  animation: none;
  transform: translateY(-2px);
}

/* ── レスポンシブ（rei-panel-） ── */
@media (max-width: 768px) {
  .rei-panel-inner,
  .rei-panel-cta-inner {
    flex-direction: column;
    gap: 28px;
  }
  .rei-panel-char,
  .rei-panel-cta-char {
    flex: none;
    width: 100%;
    max-width: 260px;
    margin: 0 auto;
  }
  /* 2番目のセクション：スマホ時は画像を上に */
  .rei-panel-s1 .rei-panel-char {
    order: -1;
  }
  .rei-panel-img { max-height: 320px; }
  .rei-panel-cta-img { max-height: 280px; }
  .rei-panel-cta-body { text-align: center; max-width: 100%; }
  .rei-blur-label { flex: 0 0 100px; font-size: .74rem; }
  .rei-radar-svg { width: 180px; height: 180px; }
}

/* ── 今やる理由（損失回避） ── */
.urgency-loss-section {
  background: linear-gradient(180deg, #120a18 0%, #0f0f20 100%);
}
.urgency-kicker {
  text-align: center;
  font-size: 1.0rem;
  letter-spacing: .12em;
  color: #f87171;
  margin-bottom: 12px;
}
.urgency-loss-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-bottom: 24px;
}
.urgency-loss-card {
  border: 1px solid rgba(248, 113, 113, .28);
  border-radius: 14px;
  padding: 18px 16px;
  background: rgba(28, 10, 10, .55);
}
.urgency-loss-num {
  display: inline-block;
  font-size: .75rem;
  font-weight: 800;
  color: #fecaca;
  margin-bottom: 8px;
}
.urgency-loss-card h3 {
  font-size: .95rem;
  color: #fef2f2;
  margin-bottom: 8px;
}
.urgency-loss-card p {
  font-size: .84rem;
  color: #fca5a5;
  line-height: 1.7;
}
.why-now-card {
  border: 1px solid rgba(129, 140, 248, .35);
  border-radius: 16px;
  padding: 22px 20px;
  background: rgba(17, 24, 39, .7);
  text-align: center;
}
.why-now-card h3 {
  color: #e0e7ff;
  font-size: 1rem;
  margin-bottom: 14px;
}
.why-now-list {
  list-style: none;
  padding: 0;
  margin: 0 auto 18px;
  text-align: left;
  max-width: 560px;
}
.why-now-list li {
  position: relative;
  padding-left: 1.2em;
  margin-bottom: 10px;
  color: #c7d2fe;
  font-size: .88rem;
  line-height: 1.7;
}
.why-now-list li::before {
  content: "・";
  position: absolute;
  left: 0;
  color: #818cf8;
}

.objection-flip-card {
  border-radius: 18px;
  border: 1px solid rgba(96, 165, 250, .28);
  background: linear-gradient(145deg, rgba(15, 23, 42, .72), rgba(15, 15, 32, .94));
  padding: 24px;
  margin-bottom: 28px;
}
.objection-flip-card h3 {
  color: #dbeafe;
  font-size: 1rem;
  text-align: center;
  margin-bottom: 16px;
}
.objection-flip-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
.objection-flip-grid div {
  border: 1px solid rgba(59, 130, 246, .22);
  border-radius: 12px;
  padding: 14px;
  background: rgba(15, 23, 42, .45);
}
.objection-flip-grid span {
  display: block;
  font-size: .74rem;
  letter-spacing: .06em;
  color: #93c5fd;
  margin-bottom: 6px;
}
.objection-flip-grid p {
  font-size: .84rem;
  color: #e5e7eb;
  line-height: 1.65;
}

@media (max-width: 768px) {
  .urgency-loss-grid,
  .objection-flip-grid {
    grid-template-columns: 1fr;
  }
}

/* ── 広告短縮ルート（?route=light） ── */
body.route-light .hero {
  min-height: auto;
  padding-bottom: 28px;
}

.light-route-note {
  margin: 0 0 16px;
  font-size: .84rem;
  color: #9ca3af;
  line-height: 1.6;
}

.consent-notice {
  font-size: 0.78rem;
  color: #a5b4fc;
  line-height: 1.6;
  text-align: center;
  margin-bottom: 4px;
}

body.route-light .compact-route-visible {
  display: block !important;
  visibility: visible !important;
  height: auto !important;
  overflow: visible !important;
}

.compact-route-notice {
  margin: 0 0 16px;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid rgba(249, 115, 22, .45);
  background: rgba(120, 53, 15, .28);
  color: #fed7aa;
  font-size: .88rem;
  line-height: 1.65;
}

.compact-route-readonly {
  opacity: .82;
  background: #151528 !important;
  cursor: not-allowed;
}

/* ── メインLP P0: 交換条件・サンプルPDF ── */
.hero-badge-inline {
  display: inline-block;
  margin: 0 0 12px;
  padding: 4px 12px;
  border-radius: 999px;
  background: rgba(52, 211, 153, .12);
  border: 1px solid rgba(52, 211, 153, .35);
  color: #6ee7b7;
  font-size: .78rem;
  font-weight: 700;
}
.hero-scene-list {
  list-style: none;
  padding: 0;
  margin: 0 0 14px;
  text-align: left;
  max-width: 420px;
  margin-left: auto;
  margin-right: auto;
}
.hero-scene-list li {
  position: relative;
  padding: 6px 0 6px 20px;
  color: #e9d5ff;
  font-size: .9rem;
}
.hero-scene-list li::before {
  content: "▶";
  position: absolute;
  left: 0;
  color: #f97316;
  font-size: .7rem;
}
.conversion-intro {
  background: linear-gradient(180deg, rgba(19, 19, 42, .6), transparent);
}
.conversion-subtitle {
  font-size: .95rem;
  color: #c4b5fd;
  margin: 20px 0 10px;
}
.conversion-benefits {
  list-style: none;
  padding: 0;
  margin: 0 0 8px;
}
.conversion-benefits li {
  padding: 8px 0;
  border-bottom: 1px solid rgba(45, 45, 82, .5);
  color: #d1d5db;
  font-size: .9rem;
}
.lp-offer-table,
.lp-field-map {
  width: 100%;
  border-collapse: collapse;
  font-size: .86rem;
  margin-bottom: 16px;
}
.lp-offer-table th,
.lp-offer-table td,
.lp-field-map th,
.lp-field-map td {
  border: 1px solid rgba(45, 45, 82, .8);
  padding: 10px 12px;
  text-align: left;
  vertical-align: top;
}
.lp-offer-table th,
.lp-field-map th {
  background: rgba(26, 26, 54, .9);
  color: #c4b5fd;
  white-space: nowrap;
  width: 32%;
}
.lp-field-map .tag-req { color: #fca5a5; font-size: .76rem; }
.lp-field-map .tag-opt { color: #9ca3af; font-size: .76rem; }
.offer-bonus-lead {
  margin: 0 0 6px;
  color: #f3f4f6;
}
.offer-bonus-sub {
  margin: 0 0 8px;
  font-size: .82rem;
  color: #c4b5fd;
  line-height: 1.55;
}
.offer-bonus-list {
  margin: 0;
  padding-left: 1.1em;
  font-size: .82rem;
  line-height: 1.65;
  color: #d1d5db;
}
.offer-bonus-list li { margin-bottom: 4px; }
.offer-bonus-list li:last-child { margin-bottom: 0; }
.offer-bonus-list strong { color: #e9d5ff; font-weight: 700; }
.conversion-flow {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  gap: 8px;
  align-items: center;
  margin: 18px 0;
}
.conversion-flow-step {
  background: rgba(26, 26, 54, .9);
  border: 1px solid rgba(45, 45, 82, .8);
  border-radius: 10px;
  padding: 10px;
  text-align: center;
  font-size: .82rem;
  color: #c4b5fd;
}
.conversion-flow-step.is-active {
  border-color: rgba(249, 115, 22, .55);
  color: #fed7aa;
}
.conversion-flow-step span {
  display: block;
  color: #9ca3af;
  font-size: .72rem;
  margin-top: 2px;
}
.conversion-flow-arrow { color: #6b7280; text-align: center; }
.field-map-intro {
  background: rgba(26, 26, 54, .85);
  border: 1px solid rgba(45, 45, 82, .9);
  border-radius: 12px;
  padding: 16px 18px;
  margin-bottom: 14px;
}
.field-map-intro p {
  color: #c4b5fd;
  font-size: .86rem;
  line-height: 1.75;
  margin: 0 0 10px;
}
.field-map-intro p:last-child {
  margin-bottom: 0;
}
.field-map-intro-link {
  margin-top: 12px !important;
  padding-top: 12px;
  border-top: 1px solid rgba(45, 45, 82, .6);
  font-size: .82rem !important;
}
.field-map-intro-link a {
  color: #a78bfa;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.field-map-intro-link a:hover {
  color: #c4b5fd;
}
.conversion-note {
  color: #9ca3af;
  font-size: .84rem;
  line-height: 1.65;
  margin-bottom: 16px;
}
.conversion-intro .hero-cta-start,
.pdf-sample-section .hero-cta-start {
  display: block !important;
  width: fit-content;
  max-width: 100%;
  margin: 0 auto;
}
.pdf-sample-section {
  background: rgba(15, 15, 32, .5);
}
.pdf-sample-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
  margin: 20px 0;
}
.pdf-sample-card {
  margin: 0;
  background: rgba(26, 26, 54, .8);
  border: 1px solid rgba(45, 45, 82, .8);
  border-radius: 12px;
  overflow: hidden;
}
.pdf-sample-card img {
  width: 100%;
  display: block;
}
.pdf-sample-card figcaption {
  padding: 10px 12px;
  font-size: .84rem;
  color: #d1d5db;
}
.pdf-sample-detail-box {
  background: rgba(26, 26, 54, .85);
  border: 1px solid rgba(45, 45, 82, .9);
  border-radius: 12px;
  padding: 18px 20px;
  margin: 20px auto 24px;
  max-width: 640px;
}
.pdf-sample-chapters {
  margin: 0;
  padding-left: 1.2rem;
  color: #d1d5db;
  font-size: .88rem;
  line-height: 1.7;
}
.pdf-sample-detail-box .pdf-sample-note {
  color: #9ca3af;
  font-size: .82rem;
  line-height: 1.65;
  margin: 14px 0 0;
  padding-top: 14px;
  border-top: 1px solid rgba(45, 45, 82, .6);
}
.pdf-sample-section .hero-cta-start {
  margin-top: 4px;
}
.cta-block-deferred .cta-desc {
  color: #d1d5db;
  font-size: .9rem;
  line-height: 1.65;
}
body.route-main-lp .form-bg {
  scroll-margin-top: 16px;
}
.upsell-free-recap {
  margin: 0 0 18px;
  padding: 14px 16px;
  border-radius: 12px;
  background: rgba(6, 78, 59, .2);
  border: 1px solid rgba(52, 211, 153, .35);
}
.upsell-free-recap ul {
  margin: 8px 0 0;
  padding-left: 1.1rem;
  color: #d1fae5;
  font-size: .88rem;
  line-height: 1.65;
}
.upsell-pdf-preview {
  margin: 0 0 20px;
  padding: 16px;
  border-radius: 12px;
  background: rgba(30, 27, 75, .45);
  border: 1px solid rgba(99, 102, 241, .35);
}
.upsell-pdf-preview-lead {
  color: #c4b5fd;
  font-size: .88rem;
  margin: 0 0 12px;
}
.upsell-pdf-preview-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 12px;
  margin-bottom: 12px;
}
.upsell-pdf-preview-grid figure {
  margin: 0;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid rgba(45, 45, 82, .8);
}
.upsell-pdf-preview-grid img {
  width: 100%;
  display: block;
}
.upsell-pdf-preview-grid figcaption {
  padding: 8px 10px;
  font-size: .78rem;
  color: #d1d5db;
  background: rgba(15, 15, 32, .8);
}
.upsell-pdf-preview-list {
  margin: 0;
  padding-left: 1.1rem;
  color: #d1d5db;
  font-size: .84rem;
  line-height: 1.65;
}
.upsell-mid-sub {
  color: #a5b4fc;
  font-size: .88rem;
  margin: 8px 0 12px;
}
.upsell-skip-note {
  margin: 10px 0 0;
  font-size: .8rem;
  color: #9ca3af;
  text-align: center;
}
@media (max-width: 640px) {
  .conversion-flow {
    grid-template-columns: 1fr;
  }
  .conversion-flow-arrow { display: none; }
  .lp-offer-table th { white-space: normal; }
}
