﻿.lp-page {
  /* ── カラー ── */
  --red:          #b52a18;
  --black:        #111111;
  --text:         #1a1a1a;
  --muted:        #666666;
  --bg:           #ffffff;
  --bg-alt:       #f5f4f2;
  --border:       #e2ddd8;

  /* CTAボタン */
  --green:        #08a83e;
  --green-light:  #0dc44e;
  --blue:         #2b35c0;
  --blue-light:   #3a45e8;


  /* ── タイプスケール ── */
  --text-xs:   0.75rem;   /* ラベル・バッジ・注釈 */
  --text-sm:   0.875rem;  /* 補足テキスト（ボタン・ラベル用） */
  --text-base: 1rem;      /* （legacy） */
  --text-body: 1rem;      /* 本文・リード文・説明文の統一値 */
  --text-md:   1.125rem;  /* 強調本文・カード内テキスト */
  --text-lg:   1.375rem;  /* 小見出し */
  --text-xl:   1.75rem;   /* 中見出し */
  --text-2xl:  2.25rem;   /* 大見出し */
}

/* ===== Global Reset ===== */
.lp-page {
  
  font-size: var(--text-base);
  background: var(--bg);
  color: var(--text);
  font-feature-settings: "palt";
}

.lp-page *, .lp-page *::before, .lp-page *::after { box-sizing: border-box; }

.lp-page h1, .lp-page h2, .lp-page h3 {
  margin: 0; padding: 0;
  font-family: var(--mincho);
  font-weight: 900;
  line-height: 1.4;
  text-align: center;
  color: var(--black);
}



.lp-page span { text-align: center; }
.lp-page a    { text-decoration: none; color: inherit; }
.lp-page ol, .lp-page ul { margin: 0; padding: 0; }
.lp-page li   { list-style: none; margin: 0; }
.lp-page img  { max-width: 100%; height: auto; display: block; }



/* ===== Mincho helper ===== */
.lp-page .mincho, .lp-page.mincho { font-family: var(--mincho); }

/* ===== Responsive helpers ===== */
.lp-page .lp-pc-only { display: block; }
.lp-page .lp-sp-only { display: none; }
@media (max-width: 768px) {
  .lp-page .lp-pc-only { display: none; }
  .lp-page .lp-sp-only { display: block; }
}
@media (min-width: 769px) { .lp-page br.sp-only { display: none; } }
@media (min-width: 600px) { .lp-page .lp-only-br { display: none; } }
@media (max-width: 599px) {
  .lp-page .lp-only-br { display: block; }
  .lp-page .lp-sp-left { text-align: left; }
}

/* ===== Container ===== */
.lp-page .lp-container {
  max-width: 1080px;
  margin-inline: auto;
  padding-inline: 1.5rem;
}
@media (max-width: 768px) {
  .lp-page .lp-container { padding-inline: 1.25rem; }
}

/* ===== Section Title Block ===== */
.lp-page .lp-sec-subtitle {
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.16em;
  color: var(--red);
  text-align: center;
  display: block;
  margin-bottom: 0.625rem;
  
  text-transform: uppercase;
}

.lp-page .lp-title-logo {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 3.5rem;
  padding-bottom: 1.75rem;
  position: relative;
}
.lp-page .lp-title-logo::after {
  content: '';
  position: absolute;
  bottom: 0; left: 50%;
  transform: translateX(-50%);
  width: 2.5rem;
  height: 2px;
  background: var(--red);
}
.lp-page .lp-title-logo h2 { margin-bottom: 0; }
.lp-page .lp-icon-title { width: 1.75rem; }
.lp-page .lp-icon-title img { margin: 0; }

@media (max-width: 768px) {
  .lp-page .lp-title-logo { margin-bottom: 1rem; }
}

/* ===== HERO ===== */
.lp-page .lp-hero {
  background:
    linear-gradient(
      to bottom,
      rgba(255,255,255,0.7) 0%,
      rgba(255,255,255,1) 40%,
      rgba(255,255,255,0.7) 100%
    ),
    url('/static/image/hero-bg.jpg') center 30% / cover no-repeat;
  position: relative;
  padding-block: 0;
}

/* 緊急バー */
.lp-page .lp-hero__alert {
  background: var(--red);
  color: #fff;
  text-align: center;
  padding: 0.6em 1em;
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.1em;
  
  position: relative;
  z-index: 1;
}
.lp-page .lp-hero__alert span { color: #fff; }

/* 本体 */
.lp-page .lp-hero__body {
  padding-top: 4.5rem;
  padding-bottom: 3.5rem;
  position: relative;
  z-index: 1;
}
@media (max-width: 768px) {
  .lp-page .lp-hero__body { padding-top: 2.5rem; padding-bottom: 2.5rem; }
}

.lp-page .lp-hero__tag {
  font-size: var(--text-md);
  color: var(--red);
  letter-spacing: 0.18em;
  font-weight: 600;
  text-align: center;
  margin-bottom: 1.5rem;
  
}

.lp-page .lp-hero__catch {
  font-family: var(--mincho);
  font-size: clamp(2.15rem, 5vw, 4.5rem);
  font-weight: 900;
  color: var(--black);
  line-height: 1.35;
  text-align: center;
  margin-bottom: 2rem;
  letter-spacing: 0.02em;
}
.lp-page .lp-hero__catch-sub {
  font-size: 0.85em;
}
.lp-page .lp-hero__catch em {
  font-style: normal;
  color: var(--red);
  border-bottom: 2px solid var(--red);
  padding-bottom: 0.05em;
  /* 上=明るめ赤 → 下=ブランド赤 のさりげない縦グラデーション */
  background: linear-gradient(180deg, #e85a4a 0%, var(--red) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
@media (max-width: 768px) {
  .lp-page .lp-hero__catch {
    line-height: 1.6;
    text-align: left;
    padding-left: 1.5rem;
    font-size: 2.8rem;
  }
  /* tag も左寄せに揃える（sub は基底ルール直後の @media で対応） */
  .lp-page .lp-hero__tag {
    text-align: left;
    padding-left: 1.5rem;
  }
}

.lp-page .lp-hero__sub {
  font-size: var(--text-body);
  color: var(--muted);
  line-height: 2.1;
  text-align: center;
  margin-bottom: 2.5rem;
}
@media (max-width: 768px) {
  .lp-page .lp-hero__sub {
    text-align: left;
    padding-left: 1.5rem;
  }
}

.lp-page .lp-hero__cta-note {
  text-align: center;
  font-size: var(--text-xs);
  color: #aaa;
  margin-top: 0.75rem;
  margin-bottom: 1.5rem;
}
.lp-page .lp-hero__cta-note--warn {
  color: var(--black);
  font-size: var(--text-sm);
  font-weight: 600;
  line-height: 1.75;
}

/* ===== CTA Buttons (shared) ===== */
.lp-page .lp-cta-wrap {
  max-width: 680px;
  gap: 0.75rem;
  margin-inline: auto;
  margin-top: 1rem;
  display: flex;
}
@media (max-width: 768px) {
  .lp-page .lp-cta-wrap {
    flex-direction: column;
    gap: 1.5rem;
    margin-inline: auto;
  }
}

.lp-page .lp-cta-line,
.lp-page .lp-cta-call {
  position: relative;
  color: #fff;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  border-radius: 6px;
  padding-block: 1.125rem 0.875rem;
  cursor: pointer;
  text-decoration: none;
}
.lp-page .lp-cta-line { background: linear-gradient(135deg, var(--green-light), var(--green)); }
.lp-page .lp-cta-call { background: linear-gradient(135deg, var(--blue-light),  var(--blue)); }
.lp-page .lp-cta-line:hover,
.lp-page .lp-cta-call:hover { opacity: 0.88; }

.lp-page .lp-cta-btn__inner { display: flex; align-items: center; gap: 8px; }
.lp-page .lp-cta-btn__inner img { margin: 0; }

.lp-page .lp-cta-text {
  white-space: nowrap;
  font-weight: 700;
  font-size: var(--text-md);
  color: #fff;
  text-align: center;
}

.lp-page .lp-cta-subtext {
  position: absolute;
  background: #fff;
  top: -0.75rem;
  left: 50%;
  transform: translateX(-50%);
  padding-inline: 0.875rem;
  border-radius: 20px;
  font-size: var(--text-xs);
  font-weight: 700;
  white-space: nowrap;
  line-height: 1.8;
  text-align: center;
}
.lp-page .lp-cta-subtext--line { border: 1.5px solid var(--green); color: var(--green); }
.lp-page .lp-cta-subtext--call { border: 1.5px solid var(--blue);  color: var(--blue); }

/* CTA variants */
.lp-page .lp-cta-wrap--hero    { margin-top: 0; }
.lp-page .lp-cta-wrap--inline  { max-width: 100%; }
.lp-page .lp-cta-wrap--flow { margin-top: 1rem; gap: 0.5rem; }

/* LINE CTA only (SB variant) */
.lp-page .lp-cta-wrap--line-only { max-width: 420px; }
.lp-page .lp-cta-wrap--line-only .lp-cta-line { padding: 1rem 1.5rem; }

/* Mobile fixed footer: LINE only */
.btj-fixed-cta--line-only { justify-content: center; }
.btj-fixed-cta--line-only .btj-fixed-cta__btn--line { flex: 1; }

.lp-page .lp-flow-title-row {
  display: block;
  margin-bottom: 0.5rem;
  line-height: 1;
}
.lp-page .lp-flow-title-row h3 {
  display: inline;
  margin: 0;
  padding: 0;
  font-size: var(--text-lg);
  font-weight: 700;
  vertical-align: middle;
}
.lp-page .lp-flow-title-row .lp-flow-cta-inline.lp-cta-line {
  display: inline-flex;
  vertical-align: middle;
  width: auto;
  flex-shrink: 0;
  padding-block: 0.6rem;
  padding-inline: 1rem;
  flex-direction: row;
}
.lp-page .lp-cta-line--sm,
.lp-page .lp-cta-call--sm      { border-radius: 4px; }
.lp-page .lp-cta-text--sm      { font-size: var(--text-sm); }
.lp-page .lp-cta-wrap--flow .lp-cta-text { font-size: var(--text-sm); }

/* ===== Checklist Button ===== */
.lp-page .lp-hero__checklist-btn-wrap {
  max-width: 680px;
  margin: 0 auto 1.25rem;
}

.lp-page .lp-checklist-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  /* 赤背景＋斜めの白いハイライトが横切る（キラッ演出） */
  background:
    linear-gradient(
      105deg,
      transparent 0%,
      transparent 40%,
      rgba(255,255,255,0.45) 50%,
      transparent 60%,
      transparent 100%
    ),
    var(--red);
  background-size: 250% 100%, 100% 100%;
  background-repeat: no-repeat;
  background-position: 200% 0, 0 0;
  animation: btn-shine 2.5s linear infinite;
  color: #fff;
  padding: 1.4rem 2.5rem 1.4rem 1.25rem;
  margin-top: 0.85rem;         /* badge がボタン上端から飛び出す分 */
  border-radius: 14px;
  overflow: visible;            /* badge を上にはみ出させる */
  transition: opacity 0.2s;
}
@keyframes btn-shine {
  0%   { background-position: 200% 0, 0 0; }
  60%  { background-position: -200% 0, 0 0; }  /* 1.5秒で通過 */
  100% { background-position: -200% 0, 0 0; }  /* 残り1秒は静止 */
}
.lp-page .lp-checklist-btn:hover { opacity: 0.85; color: #fff; }

/* 左右に薄い斜めストライプ装飾（中央に向けてフェード） */
.lp-page .lp-checklist-btn::before,
.lp-page .lp-checklist-btn::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 35%;
  background-image: repeating-linear-gradient(
    -45deg,
    rgba(255,255,255,0.07) 0,
    rgba(255,255,255,0.07) 24px,
    transparent 24px,
    transparent 48px
  );
  pointer-events: none;
  z-index: 0;
}
.lp-page .lp-checklist-btn::before {
  left: 0;
  border-top-left-radius: 14px;
  border-bottom-left-radius: 14px;
  -webkit-mask-image: linear-gradient(to right, #000, transparent);
          mask-image: linear-gradient(to right, #000, transparent);
}
.lp-page .lp-checklist-btn::after {
  right: 0;
  border-top-right-radius: 14px;
  border-bottom-right-radius: 14px;
  -webkit-mask-image: linear-gradient(to left, #000, transparent);
          mask-image: linear-gradient(to left, #000, transparent);
}
.lp-page .lp-checklist-btn__content,
.lp-page .lp-checklist-btn__arrow { position: relative; z-index: 1; }

.lp-page .lp-checklist-btn__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  width: 100%;
}
.lp-page .lp-checklist-btn__badge {
  position: absolute;
  top: -0.85rem;
  left: 50%;
  transform: translateX(-50%);
  font-size: var(--text-sm);
  font-weight: 700;
  background: #fff;
  padding: 0.25em 1.1em;
  border-radius: 999px;
  margin-bottom: 0;
  color: var(--red);
  text-align: center;
  white-space: nowrap;
  box-shadow: 0 2px 6px rgba(0,0,0,0.12);
  z-index: 2;
}
.lp-page .lp-checklist-btn__badge strong {
  color: var(--red);
  font-weight: 800;
}
.lp-page .lp-checklist-btn__main {
  font-size: var(--text-lg);
  font-weight: 700;
  color: #fff;
  text-align: center;
}
@media (max-width: 768px) {
  .lp-page .lp-checklist-btn__badge { font-size: var(--text-sm); }
  .lp-page .lp-checklist-btn__main  { font-size: var(--text-md); }
}
.lp-page .lp-checklist-btn__arrow {
  position: absolute;
  right: 0.9rem;
  width: 0; height: 0;
  border-style: solid;
  border-width: 6px 0 6px 8px;
  border-color: transparent transparent transparent rgba(255,255,255,0.6);
}

/* ===== Card variant（上：赤バッジ + 下：白ピル の二段構成・密着） ===== */
.lp-page .lp-hero__checklist-btn-wrap:has(.lp-checklist-btn--card) {
  display: block;
  text-align: center;
}
.lp-page .lp-checklist-btn--card {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: transparent;
  color: inherit;
  padding: 0;
  border: 0;
  box-shadow: none;
  width: 100%;
  max-width: 576px;   /* lp-problems__lead の80% */
  margin: 0 auto;
  gap: 0;
}
.lp-page .lp-checklist-btn--card:hover { opacity: 0.92; color: inherit; }

/* 上段: 赤の角丸長方形（白ボーダー、下に三角ポインタが伸びる） */
.lp-page .lp-checklist-btn__pill {
  position: relative;
  background: var(--red);
  color: #fff;
  font-size: 0.98rem;
  font-weight: 700;
  padding: 0.75rem 3rem 0.95rem;
  width: calc(100% - 70px);   /* 白ピルの角丸はみ出し分だけ内側 */
  box-sizing: border-box;
  border-radius: 4px;
  border: 2px solid #fff;
  letter-spacing: 0.02em;
  
  text-align: center;
  box-shadow: none;
  z-index: 3;  /* 白ピルより上で三角を見せる */
}
.lp-page .lp-checklist-btn__pill strong {
  color: #ffe066;
  font-weight: 800;
  font-size: 1.1em;
}
/* 下向き三角ポインタ（白ピルに重なる） */
.lp-page .lp-checklist-btn__pill::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -14px;
  transform: translateX(-50%);
  width: 0; height: 0;
  border-style: solid;
  border-width: 14px 12px 0 12px;
  border-color: var(--red) transparent transparent transparent;
  z-index: 4;
}

/* 下段: 白の横長ピル（上に重ねて密着させる） */
.lp-page .lp-checklist-btn--card .lp-checklist-btn__main {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  background: #fff;
  color: var(--red);
  font-size: 1.45rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  
  text-align: center;
  padding: 1.05rem 2rem;
  width: 100%;
  box-sizing: border-box;
  border-radius: 999px;
  margin-top: 0;             /* 赤バッジとはピッタリ密着（重ねない） */
  box-shadow: 0 6px 16px rgba(0,0,0,0.25);
  z-index: 2;
}
/* 右側矢印は「＞」の文字に変更・右端寄せ */
.lp-page .lp-checklist-btn--card .lp-checklist-btn__arrow {
  position: absolute;
  right: 1.5rem;
  top: 50%;
  transform: translateY(-50%);
  width: auto;
  height: auto;
  border: 0;
  font-style: normal;
  font-weight: 600;
  font-size: 1.3rem;
  line-height: 1;
  color: var(--red);
  display: inline-flex;
  align-items: center;
}
.lp-page .lp-checklist-btn--card .lp-checklist-btn__arrow::before {
  content: "＞";
}
/* 「今すぐ確認！」マーカー */
.lp-page .lp-checklist-btn__highlight {
  display: inline-block;
  background: var(--red);
  color: #fff;
  padding: 0.15em 0.55em;
  border-radius: 4px;
  margin-right: 0.5em;
  font-weight: 700;
  font-size: 0.82em;
  letter-spacing: 0.04em;
  vertical-align: middle;
}

@media (max-width: 768px) {
  .lp-page .lp-checklist-btn__pill {
    font-size: 0.85rem;
    padding: 0.55rem 1.5rem 0.75rem;
    width: calc(100% - 50px);
    border-radius: 4px;
    border-width: 2px;
  }
  .lp-page .lp-checklist-btn__pill::after {
    bottom: -11px;
    border-width: 11px 10px 0 10px;
  }
  .lp-page .lp-checklist-btn--card .lp-checklist-btn__main {
    font-size: 1.1rem;
    padding: 0.8rem 1.5rem;
    gap: 0.6rem;
    margin-top: 0;
  }
  .lp-page .lp-checklist-btn--card .lp-checklist-btn__arrow {
    font-size: 1rem;
    right: 1.1rem;
  }
}

/* ===== Split variant（左に円バッジが飛び出すレイアウト） ===== */
.lp-page .lp-hero__checklist-btn-wrap:has(.lp-checklist-btn--split) {
  display: flex;
  justify-content: center;
  padding-top: 1rem;     /* 円が上にはみ出る分の余白 */
  padding-bottom: 1rem;  /* 円が下にはみ出る分の余白 */
}
.lp-page .lp-checklist-btn--split {
  display: inline-flex;
  justify-content: flex-start;
  align-items: center;
  padding: 1rem 2.25rem 1rem 105px;  /* 左は円のスペース確保 */
  width: auto;
  position: relative;
  overflow: visible;
  border-top-left-radius: 55px;
  border-bottom-left-radius: 55px;
}
.lp-page .lp-checklist-btn--split .lp-checklist-btn__content {
  align-items: flex-start;
  text-align: left;
  width: auto;
}
.lp-page .lp-checklist-btn--split .lp-checklist-btn__badge {
  margin-bottom: 0.2rem;
}
.lp-page .lp-checklist-btn--split .lp-checklist-btn__main {
  text-align: left;
}
.lp-page .lp-checklist-btn--split .lp-checklist-btn__arrow {
  position: static;
  margin-left: 0.75rem;
  align-self: center;
}
.lp-page .lp-checklist-btn__circle {
  position: absolute;
  left: -12px;
  top: 50%;
  transform: translateY(-50%);
  width: 110px;
  height: 110px;
  border-radius: 50%;
  background: #fff;
  color: var(--red);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  line-height: 1.15;
  
  box-shadow: 0 4px 14px rgba(0,0,0,0.25);
  z-index: 2;
}
.lp-page .lp-checklist-btn__circle-top {
  font-size: 1.05rem;
  letter-spacing: 0.02em;
}
.lp-page .lp-checklist-btn__circle-bottom {
  font-size: 1.05rem;
  letter-spacing: 0.05em;
  margin-top: 2px;
}
@media (max-width: 768px) {
  .lp-page .lp-checklist-btn--split {
    padding: 0.85rem 1.75rem 0.85rem 88px;
    border-top-left-radius: 46px;
    border-bottom-left-radius: 46px;
  }
  .lp-page .lp-checklist-btn__circle {
    width: 92px;
    height: 92px;
    left: -10px;
  }
  .lp-page .lp-checklist-btn__circle-top { font-size: 0.9rem; }
  .lp-page .lp-checklist-btn__circle-bottom { font-size: 0.9rem; }
}

/* ===== Stats ===== */
.lp-page .lp-stats {
  max-width: 680px;
  margin-inline: auto;
  margin-bottom: 2rem;
}
.lp-page .lp-stats__num em { font-style: normal; }

/* ---- Pattern A（フェイクガラス：ニュートラルグレートーン） ---- */
.lp-page .lp-stats--a {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  background:
    linear-gradient(135deg,
      rgba(255,255,255,0.95) 0%,
      rgba(245,246,248,0.85) 50%,
      rgba(232,234,238,0.85) 100%);
  border-radius: 14px;
  padding: 1.5rem 0.5rem;
  border: 1px solid rgba(255,255,255,0.9);
  box-shadow:
    0 14px 40px rgba(0,0,0,0.12),
    0 2px 6px rgba(0,0,0,0.06),
    inset 0 1px 0 rgba(255,255,255,1),
    inset 0 -1px 0 rgba(0,0,0,0.04);
}
.lp-page .lp-stats--a .lp-stats__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  text-align: center;
  padding: 0.5rem 0.75rem;
  border-right: 1px solid rgba(0,0,0,0.08);
}
.lp-page .lp-stats--a .lp-stats__item:last-child {
  border-right: none;
}
.lp-page .lp-stats--a .lp-stats__label {
  font-size: var(--text-lg);
  font-weight: 600;
  color: var(--red);
  letter-spacing: 0.12em;
  
  text-transform: uppercase;
}
.lp-page .lp-stats--a .lp-stats__num {
  font-family: var(--mincho);
  font-size: clamp(1.73rem, 3.5vw, 2.25rem);
  font-weight: 900;
  color: var(--black);
  line-height: 1;
  margin-block: 1rem;
}
.lp-page .lp-stats--a .lp-stats__num b {
  font-size: 1.35em;
  font-family: var(--mincho);
  font-weight: 900;
}
.lp-page .lp-stats--a .lp-stats__num em {
  font-size: 0.5em;
  color: var(--black);
  
  font-weight: 700;
  letter-spacing: 0;
  white-space: nowrap;
}
.lp-page .lp-stats--a .lp-stats__sub {
  font-size: var(--text-sm);
  color: var(--muted);
  
  letter-spacing: 0.04em;
  line-height: 1.5;
}

@media (max-width: 599px) {
  .lp-page .lp-stats--a { padding: 1.1rem 0.25rem; }
  .lp-page .lp-stats--a .lp-stats__item { padding: 0.25rem 0.4rem; }
  .lp-page .lp-stats--a .lp-stats__label { font-size: var(--text-base); letter-spacing: 0.08em; }
  .lp-page .lp-stats--a .lp-stats__sub { font-size: var(--text-xs); }
}

/* ===== Media Section ===== */
.lp-page .lp-media {
  background: var(--bg);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  padding-block: 0;
}
.lp-page .lp-media__inner {
  padding: 2.5rem 0;
  background: none;
  box-shadow: none;
}
.lp-page .lp-media__text {
  font-family: var(--mincho);
  font-weight: 700;
  font-size: clamp(1rem, 1.8vw, 1.2rem);
  margin-bottom: 1.25rem;
  text-align: center;
  color: var(--black);
}
.lp-page .lp-media__text span { color: var(--red); }

.lp-page .lp-media__marquee-wrap { overflow: hidden; width: 100%; }
.lp-page .lp-media__marquee {
  display: flex;
  gap: 1.5rem;
  animation: lpMediaScroll 14s linear infinite;
}
.lp-page .lp-media__marquee img {
  flex-shrink: 0;
  width: 480px;
  max-width: none;
  height: auto;
}
@keyframes lpMediaScroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
@media (max-width: 768px) {
  .lp-page .lp-media__marquee { animation-duration: 10s; }
  .lp-page .lp-media__marquee img { width: 340px; }
}

/* ===== Generic Button ===== */
.lp-page .lp-button-wrap { text-align: center; }
.lp-page .lp-button-list {
  display: inline-block;
  background: var(--red);
  color: #fff;
  font-weight: 700;
  padding-block: 1rem;
  border-radius: 5px;
  transition: opacity 0.2s;
  font-size: var(--text-base);
  width: 100%;
  max-width: 480px;
  margin-top: 1rem;
  text-align: center;
}
.lp-page .lp-button-list:hover { opacity: 0.85; color: #fff; }

/* ===== Company List / Exchange Marquee ===== */
.lp-page .lp-company-list {
  background: var(--bg-alt);
  padding-block: 4rem;
}
.lp-page .lp-animation-container { overflow: hidden; width: 100%; }
.lp-page .lp-animation-list {
  display: flex;
  list-style: none;
  gap: 1.875rem;
  margin: 0 0 1.25rem;
  padding: 0;
  animation: lpScrollLoop 30s linear infinite;
}
.lp-page .lp-animation-list li { flex-shrink: 0; width: 4.375rem; }
@keyframes lpScrollLoop {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
@media (max-width: 768px) {
  .lp-page .lp-animation-list li { width: 3.5rem; }
}

.lp-page .lp-company-list__text { margin-block: 1.5rem; }
.lp-page .lp-company-list__text img { margin: auto; max-width: 580px; }

.lp-page .lp-company-list__body {
  text-align: center;
  font-weight: 500;
  max-width: 680px;
  margin-inline: auto;
  line-height: 2.1;
  margin-bottom: 0.5rem;
}
@media (max-width: 768px) { .lp-page .lp-company-list__body { font-size: var(--text-body); } }
.lp-page .lp-company-list__body span { color: var(--red); font-weight: 700; }

.lp-page .lp-company-list__note {
  text-align: center;
  font-size: var(--text-xs);
  color: var(--muted);
  margin-bottom: 1.5rem;
}

/* ===== Trouble Section ===== */
.lp-page .lp-trouble {
  background: var(--bg);
  padding-block: 4rem;
}
.lp-page .lp-trouble__content {
  max-width: 1080px;
  margin: auto;
  padding-inline: 1.5rem;
}
.lp-page .lp-trouble__content h2 {
  color: var(--red);
  margin-bottom: 1rem;
}
.lp-page .lp-trouble__content p {
  text-align: center;
  margin-bottom: 0.75rem;
}
.lp-page .lp-trouble__content img { margin: 1rem auto; }
.lp-page .lp-trouble .lp-cta-wrap { margin-top: 1.5rem; }

/* ===== Caution Section ===== */
.lp-page .lp-sec-caution {
  background: var(--bg-alt);
  padding-block: 4.5rem;
}
.lp-page .lp-caution-inner {
  border: 1px solid var(--border);
  border-top: 4px solid var(--red);
  max-width: 1080px;
  position: relative;
  margin-inline: auto;
  background: var(--bg);
  padding-bottom: 2rem;
}
.lp-page .lp-caution-icon {
  width: 4rem;
  margin-inline: auto;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: -2.5rem;
}
.lp-page .lp-caution-icon img { margin: 0 auto; }

.lp-page .lp-caution-article {
  background: var(--black);
  color: #fff;
  font-weight: 700;
  font-size: clamp(1rem, 2vw, 1.2rem);
  padding-block: 2rem 1rem;
  text-align: center;
  font-family: var(--mincho);
  letter-spacing: 0.04em;
}
.lp-page .lp-caution-text { padding: 1.5rem 2rem; }
.lp-page .lp-caution-text > p { margin-bottom: 1rem; text-align: left; }
@media (max-width: 768px) { .lp-page .lp-caution-text { padding-inline: 1.25rem; } }

.lp-page .lp-caution-strong {
  font-weight: 700;
  font-size: clamp(1rem, 2vw, 1.15rem);
  line-height: 1.9;
  text-align: center;
  font-family: var(--mincho);
  color: var(--black);
  border-top: 1px solid var(--border);
  margin: 0 2rem;
  padding-top: 1.25rem;
}
@media (max-width: 768px) { .lp-page .lp-caution-strong { margin-inline: 1.25rem; } }

/* ===== Worry Section ===== */
.lp-page .lp-worry { background: var(--bg); }

.lp-page .lp-worry__title {
  font-family: var(--mincho);
  font-weight: 900;
  font-size: clamp(1.5rem, 3vw, 2.5rem);
  text-align: center;
  margin-bottom: 2rem;
}
.lp-page .lp-worry__img { margin-bottom: 1.5rem; }
.lp-page .lp-worry__img img { margin: auto; }

.lp-page .lp-worry__hope {
  font-family: var(--mincho);
  font-size: clamp(1.25rem, 2.5vw, 1.75rem);
  color: #fff;
  background: var(--red);
  font-weight: 700;
  padding: 0.75rem 1.75rem;
  width: fit-content;
  margin-inline: auto;
  margin-bottom: 1.5rem;
  text-align: center;
}

.lp-page .lp-arrow { max-width: 5.5rem; margin: 0 auto 1.25rem; }
.lp-page .lp-arrow img { margin: 0 auto; }

.lp-page .lp-support-text {
  font-family: var(--mincho);
  font-weight: 900;
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  border-bottom: 3px solid var(--red);
  padding-inline: 1.5rem;
  padding-bottom: 0.2rem;
  width: fit-content;
  margin-inline: auto;
  margin-bottom: 1.25rem;
  text-align: center;
  color: var(--black);
}

.lp-page .lp-worry__text { max-width: 52rem; margin-inline: auto; }
.lp-page .lp-worry__text p { font-weight: 500; line-height: 2.1; text-align: left; }

/* ===== Document Section ===== */
.lp-page .lp-sec-document {
  padding-block: 4.5rem;
  background: var(--bg-alt);
}

.lp-page .lp-document-text {
  font-family: var(--mincho);
  font-weight: 700;
  font-size: clamp(1.25rem, 2.5vw, 1.75rem);
  margin-bottom: 0.5rem;
  text-align: center;
  margin-top: 1rem;
}
.lp-page .lp-dec-dot { font-weight: 700; }

.lp-page .lp-document-subtext {
  text-align: center;
  font-size: var(--text-body);
  color: var(--muted);
  margin-bottom: 2rem;
}

.lp-page .lp-unable-things {
  max-width: 820px;
  margin-inline: auto;
  margin-bottom: 2rem;
}
.lp-page .lp-flex-pc2tab1 {
  display: flex;
  align-items: flex-start;
  gap: 1.5rem;
  background: var(--bg);
  border: 1px solid var(--border);
  border-left: 4px solid var(--black);
  padding: 1.25rem 1.5rem;
  margin-bottom: 1rem;
}
.lp-page .lp-flex-pc2tab1 > div { margin: 0; }

.lp-page .lp-icon-document { width: 4rem; flex-shrink: 0; margin-bottom: 0.5rem; }
.lp-page .lp-icon-document img { margin: 0; }

.lp-page .lp-occupation {
  font-weight: 700;
  font-size: var(--text-sm);
  text-align: center;
  white-space: nowrap;
}
.lp-page .lp-unable-text { flex: 1; }
.lp-page .lp-unable-text p { text-align: left; line-height: 1.9; margin-bottom: 0.5rem; }
.lp-page .lp-unable-caution { font-size: var(--text-xs); color: var(--muted); }

.lp-page .lp-mb21 {
  text-align: center;
  max-width: 1040px;
  margin-inline: auto;
  font-size: var(--text-body);
  margin-bottom: 2rem;
  line-height: 2.1;
}
@media (max-width: 599px) { .lp-page .lp-mb21 { text-align: left; } }

.lp-page .lp-unable-need {
  font-family: var(--mincho);
  font-weight: 700;
  font-size: clamp(1.4rem, 3vw, 2rem);
  text-align: center;
  margin-bottom: 1.25rem;
  line-height: 1.55;
}
.lp-page .lp-unable-need span {
  color: #fff;
  background: var(--red);
  padding: 0.1em 0.4em;
}

.lp-page .lp-flex-only {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  max-width: 560px;
  margin-inline: auto;
  gap: 0.5rem;
}
.lp-page .lp-flex-only > div { margin: 0; }
.lp-page .lp-flex-only p { text-align: left; flex: 1; }
.lp-page .lp-icon-check { width: 1.5rem; flex-shrink: 0; margin-top: 0.2rem; }
.lp-page .lp-icon-check img { margin: 0; }

/* ===== CTA Section ===== */
.lp-page .lp-cta-section {
  background: var(--black);
  padding-block: 4.5rem;
}
.lp-page .lp-cta-inner { max-width: 62rem; }

.lp-page .lp-cta-main-text {
  font-family: var(--mincho);
  font-weight: 900;
  font-size: clamp(1.4rem, 3vw, 2.25rem);
  color: #fff;
  margin-bottom: 0.75rem;
  text-align: center;
  line-height: 1.5;
}
.lp-page .lp-cta-sub-text {
  font-size: var(--text-body);
  color: #999;
  max-width: 36rem;
  margin-inline: auto;
  text-align: center;
  margin-bottom: 2rem;
}
@media (max-width: 768px) { .lp-page .lp-cta-sub-text { margin-bottom: 1.5rem; } }

/* ===== Strengths Section ===== */
.lp-page .lp-strengths {
  background:
    radial-gradient(ellipse at 15% 65%, rgba(181,42,24,0.06) 0%, transparent 50%),
    radial-gradient(ellipse at 85% 20%, rgba(181,42,24,0.04) 0%, transparent 50%),
    linear-gradient(135deg, #fcfaf9 0%, #f6f0ee 100%);
}

.lp-page .lp-strengths__wrap {
  max-width: 1040px;
  margin-inline: auto;
  margin-bottom: 1.5rem;
  background: var(--bg);
  display: flex;
  align-items: flex-start;
  padding: 2rem 2.5rem;
  gap: 3rem;
  border: 1px solid var(--border);
  border-left: 4px solid var(--red);
}
.lp-page .lp-strengths__wrap > div { margin: 0; }
.lp-page .lp-strengths__wrap .lp-pc-only { flex-shrink: 0; }
.lp-page .lp-strengths__wrap h3,
.lp-page .lp-strengths__wrap p { text-align: left; }
.lp-page .lp-strengths__wrap h3 { margin-bottom: 0.75rem; }
.lp-page .lp-strengths__wrap img { margin: 0; }

@media (max-width: 768px) {
  .lp-page .lp-strengths__wrap {
    flex-direction: column;
    padding-inline: 1.25rem;
    gap: 1rem;
    border-left-width: 3px;
  }
  .lp-page .lp-strengths__wrap h3 { text-align: center; }
  .lp-page .lp-sp-only img {
    display: block;
    margin-bottom: 1.25rem;
    width: 50vw;
    margin-inline: auto;
  }
}

.lp-page .lp-strengths-text {
  font-size: var(--text-md);
  font-weight: 700;
  text-align: center;
  max-width: 1040px;
  margin-inline: auto;
  margin-top: 1rem;
}

.lp-page .lp-chart-img { display: block; margin: 2rem auto 0; max-width: 900px; }
.lp-page .lp-chart-img img { margin: auto; }

/* ===== Cases Section ===== */
.lp-page .lp-cases {
  background: url('../image/section-white-bg.webp') center / cover no-repeat, #fff;
}

/* カルーセル外枠 */
.lp-page .lp-cases-carousel {
  position: relative;
  padding: 0 4rem;
  overflow: hidden;
}

/* トラック（スライドする部分） */
.lp-page .lp-cases__track {
  display: flex;
  gap: 1.5rem;
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

/* カード：固定幅・縦長 */
.lp-page .lp-case-wrap {
  flex: 0 0 300px;
  width: 300px;
  min-width: 300px;
  background: linear-gradient(135deg, #fcfaf9 0%, #f6f0ee 100%);  /* 他のグレーセクションと統一 */
  border: 1px solid rgba(0,0,0,0.06);
  border-radius: 16px;
  padding: 2rem 1.5rem 1.75rem;
  box-shadow: 0 4px 18px rgba(0,0,0,0.05);
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}

/* カード上部：2カラム */
.lp-page .lp-case-head {
  display: flex;
  gap: 1.25rem;
  align-items: flex-end;
  margin-bottom: 0;
}

/* 左：画像のみ */
.lp-page .lp-case-left {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
}
.lp-page .lp-case-people {
  width: 5.5rem;
  height: 5.5rem;
  border-radius: 50%;
  background: rgba(181,42,24,0.07);
  overflow: hidden;
  flex-shrink: 0;
}
.lp-page .lp-case-people img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  margin: 0;
}
.lp-page .lp-case-victim {
  font-size: var(--text-xs);
  font-weight: 700;
  color: var(--red);
  background: rgba(181,42,24,0.08);
  border-radius: 20px;
  padding: 0.25rem 0.85rem;
  white-space: nowrap;
  margin: 0;
}

/* 右：被害者 + 被害金額 */
.lp-page .lp-case-right {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  text-align: center;
}
.lp-page .lp-case-type {
  font-size: var(--text-base);
  font-weight: 700;
  color: var(--text);
  margin: 0 0 1.1rem;
  line-height: 1.5;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.lp-page .lp-case-amount {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
}
.lp-page .lp-case-amount > span {
  font-size: var(--text-xs);
  font-weight: 700;
  color: var(--muted);
  background: var(--bg-alt);
  border-radius: 3px;
  padding: 0.15rem 0.5rem;
  display: inline-block;
}
.lp-page .lp-case-amount > strong {
  font-size: var(--text-lg);
  font-weight: 600;
  color: var(--red);
  letter-spacing: -0.01em;
  line-height: 1.2;
}

/* 区切り線 */
.lp-page .lp-case-line {
  border: none;
  border-top: 1px solid var(--border);
  margin-block: 1.25rem;
}

/* 詳細テキスト */
.lp-page .lp-case-detail {
  font-size: var(--text-body);
  line-height: 1.95;
  color: #555;
  margin: 0;
  flex: 1;
  text-align: left;
}

/* Prev / Next ボタン */
.lp-page .lp-carousel-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 50%;
  background: var(--red);
  border: none;
  box-shadow: 0 4px 16px rgba(181,42,24,0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #fff;
  transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
}
.lp-page .lp-carousel-btn:hover {
  background: #8f1a0c;
  transform: translateY(-50%) scale(1.08);
  box-shadow: 0 6px 20px rgba(181,42,24,0.45);
}
.lp-page .lp-carousel-btn svg { width: 1.4rem; height: 1.4rem; stroke-width: 3; }
.lp-page .lp-carousel-btn--prev { left: 0; }
.lp-page .lp-carousel-btn--next { right: 0; }
.lp-page .lp-carousel-btn:disabled { opacity: 0.25; pointer-events: none; box-shadow: none; }

/* ドット */
.lp-page .lp-carousel-dots {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 1.75rem;
}
.lp-page .lp-carousel-dot {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: var(--border);
  border: none;
  cursor: pointer;
  transition: background 0.2s, transform 0.2s;
  padding: 0;
}
.lp-page .lp-carousel-dot.is-active {
  background: var(--red);
  transform: scale(1.3);
}

/* スクロールヒント（モバイルのみ） */
.lp-page .lp-cases-scroll-hint {
  display: none;
}
@media (max-width: 768px) {
  .lp-page .lp-cases-scroll-hint {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
    padding-right: 1.25rem;
    color: var(--muted);
    font-size: 0.75rem;
  }
  .lp-page .lp-cases-scroll-hint__text {
    
    letter-spacing: 0.05em;
  }
  .lp-page .lp-cases-scroll-hint__arrow {
    display: inline-flex;
    align-items: center;
    animation: lp-cases-hint-slide 1.5s ease-in-out infinite;
  }
  .lp-page .lp-cases-scroll-hint__arrow svg {
    width: 28px;
    height: 28px;
  }
  @keyframes lp-cases-hint-slide {
    0%, 100% { transform: translateX(0); opacity: 0.4; }
    50%      { transform: translateX(8px); opacity: 1; }
  }
}

/* ===== Mobile: 横スクロール ===== */
@media (max-width: 768px) {
  .lp-page .lp-cases-carousel {
    overflow: visible;
    padding: 0;
  }
  .lp-page .lp-carousel-btn { display: none; }
  .lp-page .lp-carousel-dots { display: none; }
  .lp-page .lp-cases__track {
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    transition: none;
    transform: none !important;
    gap: 1rem;
    padding: 0 1.25rem 0.5rem;
    scrollbar-width: none;
  }
  .lp-page .lp-cases__track::-webkit-scrollbar { display: none; }
  .lp-page .lp-case-wrap {
    scroll-snap-align: start;
    /* PCと同じ300px固定幅（縦横比を揃える） */
  }
}

/* ===== Flow Section ===== */
.lp-page .lp-sec-flow {
  background: #fff;
  padding-block: 5rem;
  position: relative;
  overflow: hidden;
}
.lp-page .lp-sec-flow::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url('../image/section-white-bg.webp') center / cover no-repeat;
  transform: scaleX(-1);
  pointer-events: none;
  z-index: 0;
}
.lp-page .lp-sec-flow > * { position: relative; z-index: 1; }
.lp-page .lp-flow-inner {
  max-width: 1080px;
  margin-inline: auto;
}

/* --- Step Card (参考デザイン風) --- */
.lp-page .lp-step-wrap {
  background: #fdf6f5;
  border: 1px solid rgba(181,42,24,0.1);
  border-radius: 16px;
  box-shadow: 0 2px 12px rgba(181,42,24,0.06);
  display: flex;
  align-items: center;
  overflow: hidden;
  margin-bottom: 0;
}

/* STEP番号エリア */
.lp-page .lp-step {
  flex-shrink: 0;
  width: 7.5rem;
  padding: 2rem 1rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.1rem;
  
  text-align: center;
}
.lp-page .lp-step span {
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.22em;
  color: var(--muted);
  text-transform: uppercase;
}
.lp-page .lp-step strong {
  font-size: 3.2rem;
  font-weight: 300;
  line-height: 1;
  color: var(--red);
  
  letter-spacing: -0.02em;
}

/* 中間区切り線 */
.lp-page .lp-step-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  width: 2rem;
  flex-shrink: 0;
}
.lp-page .lp-step-icon svg { display: none; }
.lp-page .lp-step-icon::after {
  content: '';
  display: block;
  width: 1px;
  height: 55%;
  background: rgba(181,42,24,0.2);
}
.lp-page .lp-step-icon svg {
  width: 3rem;
  height: 3rem;
  stroke: var(--red);
  opacity: 0.8;
}

/* コンテンツエリア */
.lp-page .lp-flow-wrap {
  flex: 1;
  padding: 1.75rem 2rem;
}
.lp-page .lp-flow-wrap h3 {
  text-align: left;
  margin-bottom: 0.6rem;
  font-size: var(--text-lg);
  font-weight: 700;
  color: var(--text);
}
.lp-page .lp-flow-wrap p {
  text-align: left;
  font-size: var(--text-body);
  line-height: 2;
  color: #4a4a4a;
}

/* カード間の矢印 */
.lp-page .lp-flow-arrow {
  display: flex;
  justify-content: center;
  padding: 0.5rem 0;
}
.lp-page .lp-flow-arrow svg {
  width: 2.5rem;
  height: 1.5rem;
}

/* Mobile */
@media (max-width: 768px) {
  .lp-page .lp-step-wrap {
    flex-direction: column;
    align-items: stretch;
    border-radius: 12px;
  }
  .lp-page .lp-step {
    width: 100%;
    flex-direction: row;
    gap: 0.75rem;
    padding: 1rem 1.5rem;
    border-right: none;
    border-bottom: 1.5px solid var(--border);
    justify-content: flex-start;
  }
  .lp-page .lp-step strong {
    font-size: 2.2rem;
  }
  .lp-page .lp-step-icon { display: none; }
  .lp-page .lp-flow-wrap {
    border-left: none;
    padding: 1.25rem 1.5rem;
  }
  .lp-page .lp-flow-wrap h3 {
    font-size: var(--text-md);
  }
}

.lp-page .lp-text-bold { font-weight: 700; display: block; }
.lp-page .lp-flow-caution { color: var(--red); font-size: var(--text-xs); font-weight: 600; }

/* ===== Achievements Section ===== */
.lp-page .lp-achievements {
  background:
    radial-gradient(ellipse at 15% 65%, rgba(181,42,24,0.06) 0%, transparent 50%),
    radial-gradient(ellipse at 85% 20%, rgba(181,42,24,0.04) 0%, transparent 50%),
    linear-gradient(135deg, #fcfaf9 0%, #f6f0ee 100%);
}

.lp-page .lp-achievements__lead {
  text-align: center;
  font-size: var(--text-md);
  font-weight: 600;
  color: var(--color-text);
  margin: 0 auto 2.5rem;
  max-width: 720px;
  line-height: 1.8;
}
@media (max-width: 768px) {
  .lp-page .lp-achievements__lead {
    font-size: var(--text-body);
    margin-bottom: 1.75rem;
    padding-inline: 0.5rem;
  }
}

.lp-page .lp-achievements__grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0.9rem;
  max-width: 960px;
  margin: 0 auto;
}
@media (max-width: 1024px) {
  .lp-page .lp-achievements__grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 0.75rem;
  }
}
@media (max-width: 600px) {
  .lp-page .lp-achievements__grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 0.6rem;
  }
}

.lp-page .lp-achievements__item {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  margin: 0;
  border: none;
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  aspect-ratio: 1 / 1;
}
.lp-page .lp-achievements__item:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.14);
}
.lp-page .lp-achievements__item:focus-visible {
  outline: 3px solid var(--color-accent);
  outline-offset: 2px;
}

.lp-page .lp-achievements__item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
}

.lp-page .lp-achievements__zoom {
  position: absolute;
  right: 6px;
  bottom: 6px;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: rgba(15, 23, 42, 0.72);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity 0.2s ease, transform 0.2s ease;
  pointer-events: none;
}
.lp-page .lp-achievements__zoom svg {
  width: 13px;
  height: 13px;
}
.lp-page .lp-achievements__item:hover .lp-achievements__zoom,
.lp-page .lp-achievements__item:focus-visible .lp-achievements__zoom {
  opacity: 1;
  transform: translateY(0);
}
@media (hover: none) {
  .lp-page .lp-achievements__zoom {
    opacity: 1;
    transform: none;
  }
}

.lp-page .lp-achievements__note {
  text-align: center;
  font-size: var(--text-xs);
  color: var(--color-muted, #64748b);
  margin: 2rem 0 0;
}

/* ===== Lightbox ===== */
.lp-page .lp-lightbox {
  position: fixed;
  inset: 0;
  background: rgba(8, 12, 20, 0.92);
  z-index: 10000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 4rem 1rem;
  box-sizing: border-box;
}
.lp-page .lp-lightbox.is-open {
  display: flex;
  animation: lpLbFade 0.2s ease;
}
@keyframes lpLbFade {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.lp-page .lp-lightbox__content {
  position: relative;
  max-width: min(900px, 92vw);
  max-height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
}
.lp-page .lp-lightbox__img {
  max-width: 100%;
  max-height: calc(100vh - 8rem);
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 8px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6);
  background: #fff;
}
.lp-page .lp-lightbox__caption {
  color: #fff;
  font-size: var(--text-md);
  font-weight: 600;
  margin: 0;
  text-align: center;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}
.lp-page .lp-lightbox__counter {
  color: rgba(255, 255, 255, 0.7);
  font-size: var(--text-xs);
  margin: 0;
  font-variant-numeric: tabular-nums;
}

.lp-page .lp-lightbox__close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 44px;
  height: 44px;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s ease;
  -webkit-tap-highlight-color: transparent;
}
.lp-page .lp-lightbox__close:hover {
  background: rgba(255, 255, 255, 0.22);
}

.lp-page .lp-lightbox__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s ease;
  -webkit-tap-highlight-color: transparent;
  z-index: 2;
}
.lp-page .lp-lightbox__nav:hover {
  background: rgba(255, 255, 255, 0.22);
}
.lp-page .lp-lightbox__nav svg {
  width: 22px;
  height: 22px;
}
.lp-page .lp-lightbox__nav--prev { left: 1rem; }
.lp-page .lp-lightbox__nav--next { right: 1rem; }

@media (max-width: 600px) {
  .lp-page .lp-lightbox {
    padding: 3rem 0.5rem;
  }
  .lp-page .lp-lightbox__img {
    max-height: calc(100vh - 6rem);
  }
  .lp-page .lp-lightbox__close {
    top: 0.5rem;
    right: 0.5rem;
    width: 40px;
    height: 40px;
    font-size: 24px;
  }
  .lp-page .lp-lightbox__nav {
    width: 40px;
    height: 40px;
  }
  .lp-page .lp-lightbox__nav--prev { left: 0.25rem; }
  .lp-page .lp-lightbox__nav--next { right: 0.25rem; }
}

/* ===== Price Section ===== */
.lp-page .lp-price {
  background:
    radial-gradient(ellipse at 15% 65%, rgba(181,42,24,0.06) 0%, transparent 50%),
    radial-gradient(ellipse at 85% 20%, rgba(181,42,24,0.04) 0%, transparent 50%),
    linear-gradient(135deg, #fcfaf9 0%, #f6f0ee 100%);
}

.lp-page .lp-price-inner {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(3, 1fr);
  max-width: 840px;
  margin-inline: auto;
  margin-bottom: 2rem;
}
@media (max-width: 768px) {
  .lp-page .lp-price-inner { gap: 1.25rem; grid-template-columns: 1fr; }
}

.lp-page .lp-price-wrap {
  border: 1px solid var(--border);
  border-top: 3px solid var(--red);
  background: var(--bg);
  padding-block: 2.25rem;
  width: 100%;
  max-width: 20rem;
  margin-inline: auto;
  text-align: center;
}
@media (max-width: 599px) { .lp-page .lp-price-wrap { padding-block: 1.5rem; } }
@media (max-width: 768px) { .lp-page .lp-price-wrap { max-width: 100%; } }

.lp-page .lp-price-title {
  font-family: var(--mincho);
  color: var(--red);
  font-weight: 700;
  font-size: var(--text-sm);
  letter-spacing: 0.12em;
  text-align: center;
  margin-bottom: 0.875rem;
}
.lp-page .lp-price-num {
  font-family: var(--mincho);
  font-weight: 900;
  font-size: 4rem;
  text-align: center;
  color: var(--black);
  line-height: 1;
}
.lp-page .lp-price-num span { font-size: var(--text-xl); }

.lp-page .lp-price-caution {
  font-size: var(--text-xs);
  text-align: center;
  max-width: 840px;
  margin-inline: auto;
  color: var(--muted);
  line-height: 1.9;
}
@media (max-width: 599px) { .lp-page .lp-price-caution { text-align: left; } }

/* ===== FAQ Section ===== */
.lp-page .lp-faq {
  background: url('../image/section-white-bg.webp') center / cover no-repeat, #fff;
}

.lp-page .lp-faq__list {
  max-width: 720px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.lp-page .lp-faq-item {
  background: #fff;
  border-radius: 12px;
  border: 1px solid var(--border);
  box-shadow: 0 2px 10px rgba(0,0,0,0.04);
  overflow: hidden;
  transition: box-shadow 0.25s, border-color 0.25s;
}
.lp-page .lp-faq-item.active {
  box-shadow: 0 4px 20px rgba(181,42,24,0.1);
  border-color: rgba(181,42,24,0.25);
}

.lp-page .lp-faq-q {
  display: flex;
  align-items: center;
  gap: 1rem;
  width: 100%;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  padding: 1.25rem 1.5rem;
  font-size: var(--text-body);
  font-weight: 700;
  line-height: 1.5;
  color: var(--text);
  -webkit-tap-highlight-color: transparent;
}
.lp-page .lp-faq-q::before {
  content: 'Q';
  font-size: var(--text-md);
  font-weight: 900;
  color: var(--red);
  flex-shrink: 0;
  font-family: "Georgia", serif;
  line-height: 1;
}
.lp-page .lp-faq-q span.lp-faq-q__text {
  flex: 1;
  text-align: left;
}
.lp-page .lp-faq-q::after {
  content: '';
  flex-shrink: 0;
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 50%;
  background: var(--bg-alt);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-size: 1rem;
  background-position: center;
  background-repeat: no-repeat;
  transition: transform 0.25s;
  margin-left: auto;
}
.lp-page .lp-faq-item.active .lp-faq-q::after {
  transform: rotate(180deg);
  background-color: rgba(181,42,24,0.08);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b52a18' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
}

.lp-page .lp-faq-a {
  max-height: 0;
  overflow: hidden;
  padding: 0 1.5rem;
  transition: max-height 0.38s cubic-bezier(0.4, 0, 0.2, 1);
}
.lp-page .lp-faq-a p {
  text-align: left;
  line-height: 2;
  color: var(--muted);
  font-size: var(--text-body);
  margin: 0;
  padding: 1rem 0 0 2.1rem;
  border-top: 1px solid var(--border);
}
.lp-page .lp-faq-item.active .lp-faq-a {
  max-height: 400px;
  padding-bottom: 1.25rem;
}

@media (max-width: 599px) {
  .lp-page .lp-faq-q { font-size: var(--text-body); padding: 1rem 1.25rem; }
  .lp-page .lp-faq-a { padding: 0 1.25rem; }
}

/* ===== Final CTA (lp-fv-cta at bottom) ===== */
.lp-page .lp-fv-cta {
  background: #fdf1ef;
  padding-block: 3rem;
  border-top: 2px solid var(--red);
}
.lp-page .lp-cta-wrap__caution {
  text-align: center;
  margin-bottom: 1.25rem;
  font-weight: 700;
  color: var(--red);
  font-family: var(--mincho);
  font-size: clamp(1rem, 2vw, 1.15rem);
}
.lp-page .lp-cta-note {
  text-align: center;
  font-size: var(--text-xs);
  margin-top: 0.75rem;
  color: var(--muted);
}

/* ===== Credibility Bar (② CREDIBILITY BAR) ===== */
.lp-page .lp-credibility {
  background: #fff;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  padding-block: 3rem 2.5rem;
}

.lp-page .lp-credibility__media {
  margin-bottom: 2.25rem;
}
.lp-page .lp-credibility__media-label {
  display: none; /* lp-title-logo に置き換え */
}
.lp-page .lp-credibility__media-sub {
  font-size: var(--text-body);
  color: var(--muted);
  
  text-align: center;
  margin: 0.75rem 0 2rem;
  padding-inline: 1.25rem;
  line-height: 1.8;
}

.lp-page .lp-credibility__exchanges {
  max-width: 1080px;
  margin-inline: auto;
  padding-inline: 1.5rem;
  text-align: center;
}
.lp-page .lp-credibility__ex-label {
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.16em;
  color: var(--muted);
  margin-bottom: 0.875rem;
  
  text-transform: uppercase;
}
.lp-page .lp-credibility__ex-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem 1rem;
}
.lp-page .lp-credibility__ex-list span {
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--muted);
  letter-spacing: 0.04em;
  padding: 0.25em 0.75em;
  border: 1px solid var(--border);
  background: var(--bg);
  border-radius: 3px;
}

/* ===== Exchanges Section (② 取引所対応) ===== */
.lp-page .lp-exchanges {
  padding-block: 5rem;
  background: #fff;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.lp-page .lp-exchanges__sub {
  text-align: center;
  font-size: var(--text-body);
  line-height: 1.9;
  color: var(--muted);
  margin-top: -1.5rem;
  margin-bottom: 3rem;
}

/* ロゴティッカー */
.lp-exchanges__ticker {
  overflow: hidden;
  position: relative;
  padding-block: 1rem;
  max-width: 720px;
  margin-inline: auto;
}
.lp-exchanges__ticker {
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
  mask-image: linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
}
.lp-exchanges__track {
  display: flex;
  align-items: center;
  width: max-content;
  animation: lp-ticker 18s linear infinite;
}
@keyframes lp-ticker {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.lp-exchanges__item {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  margin-right: 3rem;
}
.lp-exchanges__item img {
  height: 32px;
  width: auto;
  max-width: 120px;
  object-fit: contain;
}

/* Bitkub は縦2段ロゴでやや縦長なので少し大きめに */
.lp-exchanges__ticker--overseas .lp-exchanges__item img[src*="exchange-bitkub"] {
  height: 42px;
}
/* HitBTC は正方形寄り(2.3:1)なので高さ増し */
.lp-exchanges__ticker--overseas .lp-exchanges__item img[src*="exchange-hitbtc"] {
  height: 56px;
  max-width: 140px;
}
/* Gate.io は横長なので高さ増し＋max-width広め */
.lp-exchanges__ticker--overseas .lp-exchanges__item img[src*="exchange-gateio"] {
  height: 38px;
  max-width: 180px;
}

/* ===== Problems Section (③ こんなお悩みですか？) ===== */
.lp-page .lp-problems .lp-title-logo h2,
.lp-page .lp-problems .lp-title-logo h2 span { color: #fff; }
.lp-page .lp-problems .lp-title-logo::after { background: rgba(255,255,255,0.25); }
.lp-page .lp-problems .lp-sec-subtitle { color: rgba(255,255,255,0.55); }

.lp-page .lp-problems {
  position: relative;
  overflow: hidden;
  background: transparent;
  color: #fff;
}
.lp-page .lp-problems::before {
  content: '';
  position: absolute;
  inset: -10%;
  background: url('/static/image/problems-bg.jpg') center / cover no-repeat;
  transform: scale(1.25);
  z-index: 0;
}
.lp-page .lp-problems::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(10,10,10,0.84);
  z-index: 1;
}
@media (max-width: 768px) {
  .lp-page .lp-problems::before {
    inset: 0;
    transform: none;
    background-position: 65% 80%;
  }
}
.lp-page .lp-problems .lp-container {
  position: relative;
  z-index: 2;
}

.lp-page .lp-problems__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.25rem;
  max-width: 860px;
  margin-inline: auto;
  margin-bottom: 3rem;
}
@media (max-width: 599px) {
  .lp-page .lp-problems__grid { grid-template-columns: 1fr; gap: 0.875rem; }
}

.lp-page .lp-problem-card {
  background: rgba(255,255,255,0.13);
  border: 1px solid rgba(255,255,255,0.25);
  border-top: 3px solid var(--red);
  padding: 1.75rem 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.875rem;
  text-align: center;
}
.lp-page .lp-problem-icon {
  font-size: 2.25rem;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  color: var(--red);
}
.lp-page .lp-problem-icon svg {
  width: 44px;
  height: 44px;
}
.lp-page .lp-problem-text {
  font-size: 1.3rem;
  font-weight: 600;
  line-height: 1.75;
  color: #fff;
  text-align: center;
}

.lp-page .lp-problems__lead {
  text-align: center;
  max-width: 720px;
  margin-inline: auto;
}
.lp-page .lp-problems__lead > p {
  font-size: clamp(1.45rem, 2vw, 3rem);
  font-weight: 700;
  font-family: var(--mincho);
  color: #fff;
  margin-bottom: 2rem;
  line-height: 1.9;
}
.lp-page .lp-problems__checklist-btn {
  margin-top: 2.5rem;
}
@media (max-width: 768px) {
  .lp-page .lp-problems__checklist-btn { margin-top: 1.75rem; }
}

/* ===== Consult Section (③ まずは無料相談を) ===== */
.lp-page .lp-consult {
  background: #fff;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  overflow: hidden;
  position: relative;
}
.lp-page .lp-consult::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url('../image/section-white-bg.webp') center / cover no-repeat;
  transform: scaleX(-1);
  pointer-events: none;
  z-index: 0;
}
.lp-page .lp-consult > * { position: relative; z-index: 1; }
.lp-page .lp-consult__inner {
  max-width: 1080px;
  margin-inline: auto;
  padding-inline: 1.5rem;
  display: grid;
  grid-template-columns: 6fr 4fr;
  grid-template-rows: auto auto;
  gap: 0;
  align-items: start;
}
/* PC: visual が左列2行分、body と cta が右列 */
.lp-page .lp-consult__visual { grid-column: 1; grid-row: 1 / 3; }
.lp-page .lp-consult__body   { grid-column: 2; grid-row: 1; }
.lp-page .lp-consult-cta     { grid-column: 2; grid-row: 2; padding: 0 1.4rem 3rem; }

/* Visual: 画像をそのまま表示 */
.lp-page .lp-consult__visual {
  position: relative;
}
.lp-page .lp-consult__img {
  position: relative;
  width: 100%;
  overflow: hidden;
}
.lp-page .lp-consult__img img {
  width: 100%;
  height: auto;
  display: block;
  transform: scale(1.35);
  transform-origin: 100% 20%; /* 左10%・下10%にずらした位置を中心にズーム */
}

/* LINE 吹き出し合成 — 右上の余白エリアに配置 */
.lp-page .lp-consult__bubbles {
  position: absolute;
  top: 1.5rem;
  right: 1.25rem;
  left: 40%; /* 人物の右側スペースに配置 */
  bottom: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end; /* 全体を右寄せ */
  gap: 0.65rem;
}
.lp-page .lp-bubble {
  display: inline-block;
  max-width: 90%;
  padding: 0.65rem 1rem;
  border-radius: 18px;
  font-size: var(--text-sm);
  font-weight: 600;
  line-height: 1.55;
  
  box-shadow: 0 3px 12px rgba(0,0,0,0.22);
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.35s ease, transform 0.35s ease;
}
.lp-page .lp-bubble.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.lp-page .lp-bubble--user {
  background: rgba(6,199,85,0.75);
  color: #fff;
  align-self: flex-end;
  border-bottom-right-radius: 4px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.lp-page .lp-bubble--btj {
  background: rgba(255,255,255,0.82);
  color: #222;
  align-self: flex-start;
  border-bottom-left-radius: 4px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

/* LINE mock（保持・非表示） */
.lp-page .lp-line-mock {
  display: none;
  position: absolute;
  bottom: 1rem;
  right: 0;
  width: 240px;
  background: #efeff4;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 6px 24px rgba(0,0,0,0.18);
  
  font-size: var(--text-xs);
}
.lp-page .lp-line-mock__header {
  background: #06c755;
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 8px 12px;
}
.lp-page .lp-line-mock__header img {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  object-fit: cover;
  background: #fff;
  flex-shrink: 0;
  margin: 0;
}
.lp-page .lp-line-mock__header span {
  color: #fff;
  font-weight: 700;
  font-size: var(--text-xs);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lp-page .lp-line-mock__body {
  padding: 10px 10px 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.lp-page .lp-line-msg {
  display: flex;
  flex-direction: column;
  gap: 2px;
  max-width: 80%;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.35s ease, transform 0.35s ease;
}
.lp-page .lp-line-msg.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.lp-page .lp-line-msg p {
  margin: 0;
  padding: 7px 10px;
  border-radius: 10px;
  line-height: 1.5;
  font-size: var(--text-sm);
  text-align: left;
}
.lp-page .lp-line-msg__time {
  font-size: 0.6rem;
  color: #999;
}
.lp-page .lp-line-msg--user {
  align-self: flex-end;
  align-items: flex-end;
}
.lp-page .lp-line-msg--user p {
  background: #06c755;
  color: #fff;
  border-bottom-right-radius: 3px;
}
.lp-page .lp-line-msg--btj {
  align-self: flex-start;
  align-items: flex-start;
}
.lp-page .lp-line-msg--btj p {
  background: #fff;
  color: #333;
  border-bottom-left-radius: 3px;
}

/* Body */
.lp-page .lp-consult__body {
  padding: 1rem 2.5rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1.25rem;
  align-self: stretch; /* visual の高さに合わせて伸ばす */
}
.lp-page .lp-consult__label {
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.2em;
  color: var(--red);
  
}
.lp-page .lp-consult__catch {
  font-family: var(--mincho);
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  letter-spacing: 0.04em;
  font-weight: 900;
  color: var(--black);
  line-height: 1.6;
  margin: 0;
}
.lp-page .lp-consult__sub {
  font-size: var(--text-body);
  color: var(--text);
  line-height: 1.9;
  margin: 0;
}
@media (max-width: 768px) {
  .lp-page .lp-consult__sub {
    text-align: left;
  }
}
.lp-page .lp-consult-cta {
  margin-top: 0.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

/* リード文（すぐに状況を相談したい方はこちら） */
.lp-page .lp-consult-cta__lead {
  text-align: center;
  margin: 0 0 -0.5rem;        /* CTAボタンとの余白を詰める（gap 0.75rem を相殺） */
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--black);
  letter-spacing: 0.02em;
  
  animation: lead-blink 3.5s infinite;
}
@keyframes lead-blink {
  0%, 100%       { opacity: 1; }
  5%, 15%, 25%, 35%  { opacity: 0.25; }
  10%, 20%, 30%, 40% { opacity: 1; }
  /* 40%以降は静止 */
}
@media (prefers-reduced-motion: reduce) {
  .lp-page .lp-consult-cta__lead {
    animation: none;
  }
}
@media (max-width: 599px) {
  .lp-page .lp-consult-cta__lead { font-size: 1rem; }
}

/* サブテキストリンク（いきなり相談が不安な方は、まず ▸ セルフ診断 を試す） */
.lp-page .lp-consult-cta__sub {
  text-align: center;
  margin: 0.85rem 0 0;
  font-size: 0.9rem;
  font-weight: 500;
  color: #6b7280;
  
  line-height: 1.5;
}
.lp-page .lp-consult-cta__sub-link {
  color: var(--red, #d72d2d);
  text-decoration: none;
  font-weight: 700;
  transition: opacity 0.2s;
}
.lp-page .lp-consult-cta__sub-link:hover {
  color: var(--red, #d72d2d);
  opacity: 0.7;
}
.lp-page .lp-consult-cta__sub-text {
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
@media (max-width: 599px) {
  .lp-page .lp-consult-cta__sub { font-size: 0.85rem; }
}

/* LINE メインボタン */
.lp-page .lp-consult-cta__line {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  background: linear-gradient(135deg, #0dc44e, #08a83e);
  border-radius: 8px;
  padding: 1.4rem 1.5rem 1.2rem;
  text-decoration: none;
  color: #fff;
  box-shadow: 0 4px 16px rgba(6,199,85,0.3);
  transition: opacity 0.2s;
}
.lp-page .lp-consult-cta__line:hover { opacity: 0.88; color: #fff; }
.lp-page .lp-consult-cta__label {
  font-size: var(--text-sm);
  font-weight: 600;
  letter-spacing: 0.05em;
  opacity: 0.9;
  
}
.lp-page .lp-consult-cta__main {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 1.5rem;
  font-weight: 700;
  
}
.lp-page .lp-consult-cta__main img { margin: 0; }

/* 電話 サブボタン */
.lp-page .lp-consult-cta__tel {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0.7rem 1rem;
  border: 1.5px solid var(--border);
  border-radius: 6px;
  background: #fff;
  color: var(--black);
  font-size: var(--text-sm);
  font-weight: 600;
  text-decoration: none;
  
  transition: background 0.2s;
}
.lp-page .lp-consult-cta__tel:hover { background: var(--bg-alt); color: var(--black); }
.lp-page .lp-consult-cta__tel img { margin: 0; }

/* 1カラムレイアウトはモバイル(<=768px)のみ */
@media (max-width: 768px) {
  .lp-page .lp-consult__inner {
    grid-template-columns: 1fr;
  }
  .lp-page .lp-consult__body    { order: 1; grid-column: 1; grid-row: auto; }
  .lp-page .lp-consult__visual  { order: 2; grid-column: 1; grid-row: auto; }
  .lp-page .lp-consult-cta      { order: 3; grid-column: 1; grid-row: auto; padding: 1.5rem; }

  .lp-page .lp-consult__bubbles {
    top: 1.25rem;
    right: 1.25rem;
    left: 35%;
  }
  .lp-page .lp-consult__body {
    padding: 2.5rem 2rem;
  }
}

@media (max-width: 768px) {
  .lp-page .lp-consult__bubbles {
    top: 1rem;
    right: 1rem;
    left: 25%;
    gap: 0.5rem;
  }
  .lp-page .lp-bubble {
    font-size: var(--text-xs);
    padding: 0.55rem 0.85rem;
  }
  .lp-page .lp-consult__body {
    padding: 2rem 1.5rem 1rem;
  }
  .lp-page .lp-consult-cta {
    padding: 0.75rem 1.5rem 2rem;
  }
}


/* ============================================================
   パターンB: iPhone モックアップ（lp-consult--alt）
   ============================================================ */

/* alt版専用のカラム比率 (4:6) */
.lp-page .lp-consult--alt .lp-consult__inner {
  grid-template-columns: 4fr 6fr;
}
@media (max-width: 768px) {
  .lp-page .lp-consult--alt .lp-consult__inner {
    grid-template-columns: 1fr;
  }
}

/* 元の画像・バルーン・ラインモックを非表示 */
.lp-page .lp-consult--alt .lp-consult__img,
.lp-page .lp-consult--alt .lp-consult__bubbles,
.lp-page .lp-consult--alt .lp-line-mock {
  display: none !important;
}

/* 視覚エリア: iPhoneを中央寄せ */
.lp-page .lp-consult--alt .lp-consult__visual {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 3rem 1.5rem;
}
@media (max-width: 768px) {
  .lp-page .lp-consult--alt .lp-consult__visual {
    padding: 2rem 1rem;
  }
}

/* ---- iPhone 端末全体 ---- */
.lp-page .lp-iphone {
  position: relative;
  width: 300px;
  max-width: 100%;
  
  flex-shrink: 0;
}

.lp-page .lp-iphone__frame {
  position: relative;
  width: 100%;
  aspect-ratio: 300 / 620;
  padding: 12px;
  background:
    linear-gradient(155deg, #4e4e52 0%, #2d2d31 40%, #161618 100%);
  border-radius: 50px;
  box-shadow:
    inset 0 0 0 2px rgba(255,255,255,0.08),
    inset 0 2px 0 rgba(255,255,255,0.22),
    inset 0 -2px 0 rgba(255,255,255,0.04),
    0 0 0 1.5px rgba(0,0,0,0.55),
    0 32px 60px rgba(0,0,0,0.28),
    0 10px 20px rgba(0,0,0,0.18);
}

/* ---- 側面ボタン ---- */
.lp-page .lp-iphone__btn {
  position: absolute;
}
.lp-page .lp-iphone__btn--mute {
  left: -3px;
  top: 14%;
  width: 3px;
  height: 4.5%;
  border-radius: 2px 0 0 2px;
  background: linear-gradient(to left, #18181a, #3a3a3e);
}
.lp-page .lp-iphone__btn--volup {
  left: -3px;
  top: 22%;
  width: 3px;
  height: 7.5%;
  border-radius: 2px 0 0 2px;
  background: linear-gradient(to left, #18181a, #3a3a3e);
}
.lp-page .lp-iphone__btn--voldn {
  left: -3px;
  top: 31.5%;
  width: 3px;
  height: 7.5%;
  border-radius: 2px 0 0 2px;
  background: linear-gradient(to left, #18181a, #3a3a3e);
}
.lp-page .lp-iphone__btn--power {
  right: -3px;
  top: 25%;
  width: 3px;
  height: 12.5%;
  border-radius: 0 2px 2px 0;
  background: linear-gradient(to right, #18181a, #3a3a3e);
}

/* ---- スクリーン（ディスプレイ） ---- */
.lp-page .lp-iphone__screen {
  position: relative;
  width: 100%;
  height: 100%;
  background: #e6edf3;
  border-radius: 40px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

/* Dynamic Island */
.lp-page .lp-iphone__island {
  position: absolute;
  top: 9px;
  left: 50%;
  transform: translateX(-50%);
  width: 96px;
  height: 26px;
  background: #000;
  border-radius: 14px;
  z-index: 10;
  box-shadow: 0 0 0 0.5px rgba(0,0,0,0.8);
}

/* ステータスバー */
.lp-page .lp-iphone__statusbar {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 19px 24px 22px;
  color: #111;
  line-height: 1;
  flex-shrink: 0;
  margin: 0;
}
.lp-page .lp-iphone__time {
  font-size: 10px;
  font-weight: 700;
  padding-left: 0;
  font-variant-numeric: tabular-nums;
  color: #111;
  text-align: left;
}
.lp-page .lp-iphone__syscons {
  display: flex;
  gap: 6px;
  align-items: center;
  padding-right: 0;
  color: #111;
}
.lp-page .lp-iphone__syscons svg {
  display: block;
  color: #111;
  width: 12px;
  height: auto;
}
.lp-page .lp-iphone__syscons svg:nth-child(2) {
  width: 11px;
}

/* バッテリー */
.lp-page .lp-iphone__battery {
  display: inline-block;
  position: relative;
  width: 17px;
  height: 8px;
  border: 0.8px solid #111;
  border-radius: 2px;
  box-sizing: border-box;
}
.lp-page .lp-iphone__battery::after {
  content: '';
  position: absolute;
  right: -2px;
  top: 2px;
  bottom: 2px;
  width: 1px;
  background: #111;
  border-radius: 0 1px 1px 0;
}
.lp-page .lp-iphone__battery-level {
  display: block;
  position: absolute;
  top: 1px;
  bottom: 1px;
  left: 1px;
  width: 70%;
  background: #111;
  border-radius: 0.5px;
}

/* LINE ヘッダー */
.lp-page .lp-iphone__appbar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 14px 10px;
  background: #fff;
  border-bottom: 1px solid rgba(0,0,0,0.08);
  flex-shrink: 0;
  margin: 0;
}
.lp-page .lp-iphone__back {
  font-size: 26px;
  font-weight: 300;
  color: #06c755;
  line-height: 1;
  margin-top: -4px;
  margin-right: 2px;
  text-align: left;
}
.lp-page .lp-iphone__avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  object-fit: cover;
  background: #fff;
  border: 1px solid rgba(0,0,0,0.08);
  flex-shrink: 0;
  margin: 0;
  display: block;
}
.lp-page .lp-iphone__title {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  line-height: 1.15;
}
.lp-page .lp-iphone__title strong {
  font-size: 13px;
  font-weight: 700;
  color: #111;
}
.lp-page .lp-iphone__title small {
  font-size: 10px;
  color: #9aa3ad;
  margin-top: 2px;
}

/* チャット領域 */
.lp-page .lp-iphone__chat {
  flex: 1;
  padding: 14px 12px 10px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 10px;
  background: #e6edf3;
  isolation: isolate;
  transform: translateZ(0);
}

.lp-page .lp-consult--alt .lp-iphone__msg {
  will-change: opacity, transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

/* iPhone 内メッセージ（.lp-bubbleの上書き） */
.lp-page .lp-consult--alt .lp-iphone__msg {
  display: inline-block;
  position: static;
  max-width: 78%;
  padding: 8px 12px;
  border-radius: 16px;
  font-size: 12.5px;
  font-weight: 500;
  line-height: 1.5;
  box-shadow: 0 1px 2px rgba(0,0,0,0.06);
  
  text-align: left;
  margin: 0;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.lp-page .lp-consult--alt .lp-iphone__msg--user {
  background: #06c755;
  color: #fff;
  align-self: flex-end;
  border-bottom-right-radius: 4px;
}
.lp-page .lp-consult--alt .lp-iphone__msg--btj {
  background: #fff;
  color: #111;
  align-self: flex-start;
  border-bottom-left-radius: 4px;
}

/* 入力バー */
.lp-page .lp-iphone__inputbar {
  padding: 8px 12px 12px;
  background: #fff;
  border-top: 1px solid rgba(0,0,0,0.08);
  flex-shrink: 0;
}
.lp-page .lp-iphone__field {
  display: block;
  padding: 8px 14px;
  background: #f0f2f5;
  border-radius: 16px;
  font-size: 11px;
  color: #9aa3ad;
  
  text-align: left;
}

/* ホームインジケーター */
.lp-page .lp-iphone__home {
  position: absolute;
  bottom: 8px;
  left: 50%;
  transform: translateX(-50%);
  width: 110px;
  height: 4px;
  background: #111;
  border-radius: 3px;
  opacity: 0.75;
  z-index: 5;
}

/* モバイル: iPhoneモックの下端を切り落として縦長を緩和（レイアウト高さも縮める） */
@media (max-width: 768px) {
  .lp-page .lp-consult--alt .lp-consult__visual {
    padding-bottom: 0;        /* 下方向の余白をなくして下要素と詰める */
  }
  .lp-page .lp-consult--alt .lp-iphone {
    aspect-ratio: 300 / 484;  /* 元620 → 78%にしてレイアウト上のスペースを詰める */
    overflow: hidden;          /* 子のintrinsic高さに引きずられないよう抑える */
  }
  .lp-page .lp-consult--alt .lp-iphone__frame {
    -webkit-mask-image: linear-gradient(to bottom, #000 78%, transparent 78%);
            mask-image: linear-gradient(to bottom, #000 78%, transparent 78%);
  }
}


/* ===== Document Section (被害証明書類) ===== */
.lp-page .lp-document {
  position: relative;
  padding: 5rem 0;
  background:
    radial-gradient(ellipse at 15% 65%, rgba(181,42,24,0.06) 0%, transparent 50%),
    radial-gradient(ellipse at 85% 20%, rgba(181,42,24,0.04) 0%, transparent 50%),
    linear-gradient(135deg, #fcfaf9 0%, #f6f0ee 100%);
}
.lp-page .lp-document .lp-container { position: relative; }

/* チェックリスト風シート（Pattern G） */
.lp-page .lp-document__sheet {
  background: #fff;
  background-image: linear-gradient(rgba(181,42,24,0.06) 1px, transparent 1px);
  background-size: 100% 2.5em;
  background-position: 0 1.6em;
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 6px;
  padding: 3rem 2.5rem 2.5rem 4rem;
  max-width: 100%;
  margin: 0;
  position: relative;
  box-shadow: 0 8px 24px rgba(0,0,0,0.05);
}
/* 右上の書類アイコン */
.lp-page .lp-document__icon-fig {
  position: absolute;
  top: 10px;
  right: 1.5rem;
  width: 200px;
  height: 200px;
  object-fit: contain;
  pointer-events: none;
  z-index: 0;
  opacity: 0.1;
  transform: rotate(20deg);
  transform-origin: center center;
}
@media (max-width: 768px) {
  .lp-page .lp-document__icon-fig {
    width: 110px;
    height: 110px;
    top: 1rem;
    right: 1rem;
  }
}
.lp-page .lp-document__sheet::before {
  content: '';
  position: absolute;
  left: 2.5rem; top: 0; bottom: 0;
  width: 1px;
  background: rgba(181,42,24,0.2);
}

/* Head */
.lp-page .lp-document__head {
  margin-bottom: 2rem;
  position: relative;
  text-align: left;
}
.lp-page .lp-document__eyebrow {
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.25em;
  color: var(--red);
  margin-bottom: 0.75rem;
  
  text-align: left;
}
.lp-page .lp-document__title {
  font-family: var(--mincho);
  font-size: clamp(1.6rem, 3.5vw, 2.5rem);
  font-weight: 900;
  line-height: 1.5;
  color: var(--black);
  margin: 0 0 0.75rem;
  text-align: left;
}
.lp-page .lp-document__title span {
  color: var(--red);
  background: linear-gradient(transparent 65%, rgba(255, 200, 170, 0.7) 65%);
  padding: 0 0.1em;
}
.lp-page .lp-document__lead {
  font-size: var(--text-body);
  color: var(--muted);
  
  margin: 0;
  text-align: left;
}

/* Items（PCは2カラム） */
.lp-page .lp-document__items {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  margin-bottom: 2rem;
}
.lp-page .lp-document__item {
  display: block;
  border: 2px solid rgba(181, 42, 24, 0.3);
  border-radius: 4px;
  padding: 1.25rem 1.5rem;
  position: relative;
}
.lp-page .lp-document__check {
  display: none;
}
.lp-page .lp-document__item-body > strong {
  display: inline-block;
  position: absolute;
  top: 0;
  left: 1rem;
  transform: translateY(-50%);
  
  font-size: var(--text-lg);
  font-weight: 600;
  color: var(--text);
  line-height: 1;
  margin: 0;
  padding: 0 0.6em;
  background: #fff;
  z-index: 1;
}
.lp-page .lp-document__item-body ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.lp-page .lp-document__item-body ul li {
  padding-left: 1em;
  position: relative;
  font-size: var(--text-body);
  color: var(--muted);
  line-height: 1.7;
  
}
.lp-page .lp-document__item-body ul li::before {
  content: '・';
  position: absolute;
  left: 0;
  color: var(--red);
}
.lp-page .lp-document__item-body ul li strong {
  color: var(--text);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: var(--red);
  text-decoration-thickness: 2px;
  text-underline-offset: 0.2em;
}

/* Conclusion（シート内に統合・上に赤い破線で区切り） */
.lp-page .lp-document__conclusion {
  position: relative;
  text-align: center;
  padding: 1.5rem 0 0;
  margin-top: 1.5rem;
  border-top: 2px dashed rgba(181,42,24,0.4);
}
.lp-page .lp-document__conclusion-text {
  font-family: var(--mincho);
  font-size: clamp(1.05rem, 2vw, 1.2rem);
  font-weight: 900;
  line-height: 1.8;
  color: var(--black);
  margin: 0 0 1rem;
}
.lp-page .lp-document__conclusion-text em {
  color: var(--red);
  font-style: normal;
  font-size: clamp(1.35rem, 2.5vw, 1.5rem);
  text-decoration: underline wavy var(--red);
  text-decoration-thickness: 2px;
  text-underline-offset: 0.3em;
}
.lp-page .lp-document__conclusion-sub {
  font-size: var(--text-body);
  color: var(--muted);
  margin: 0;
  
  line-height: 1.8;
}

@media (max-width: 768px) {
  .lp-page .lp-document {
    padding: 3.5rem 0;
  }
  .lp-page .lp-document__sheet {
    padding: 2rem 1.5rem 2rem 3rem;
  }
  .lp-page .lp-document__sheet::before {
    left: 1.75rem;
  }
  .lp-page .lp-document__items {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  .lp-page .lp-document__item-body > strong {
    font-size: var(--text-md);
  }
}

/* ===== Solution Section ===== */
.lp-page .lp-solution {
  background: url('../image/section-white-bg.webp') center / cover no-repeat, #fff;
  padding: 4.5rem 0;
}
.lp-page .lp-solution__inner {
  max-width: 1080px;
  margin-inline: auto;
  padding-inline: 1.5rem;
  display: grid;
  grid-template-columns: 7fr 3fr;
  gap: 4rem;
  align-items: center;
}
.lp-page .lp-solution__body-col {
  text-align: center;
}
.lp-page .lp-solution__eyebrow {
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.25em;
  color: var(--red);
  margin-bottom: 1.25rem;
  
}
.lp-page .lp-solution__title {
  font-family: var(--mincho);
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  font-weight: 900;
  line-height: 1.7;
  color: var(--black);
  margin-bottom: 1.5rem;
  text-align: center;
}
.lp-page .lp-solution__title .lp-highlight,
.lp-page .lp-solution__title-lead .lp-highlight {
  font-size: 0.82em;
}
.lp-page .lp-solution__title .lp-highlight-line,
.lp-page .lp-solution__title-lead .lp-highlight-line {
  display: block;
  margin-top: 0.75rem;
}
.lp-page .lp-solution__title-lead {
  font-family: var(--mincho);
  font-size: clamp(1.6rem, 2.5vw, 1.9rem);
  font-weight: 900;
  line-height: 1.7;
  color: var(--black);
  margin: 1.25rem auto 1.5rem;
  text-align: center;
  width: fit-content;
  max-width: 100%;
  position: relative;
  padding: 0.4em 1.2em;
  justify-self: center;  /* grid アイテム時の中央寄せ */
}
/* 赤背景ハイライトを無効化（このh3内のみ） */
.lp-page .lp-solution__title-lead .lp-highlight {
  background: transparent;
  color: inherit;
  padding: 0;
  border-radius: 0;
  display: inline;
  width: auto;
}
/* 赤い鉤括弧（左上・右下のコーナーブラケット） */
.lp-page .lp-solution__title-lead::before,
.lp-page .lp-solution__title-lead::after {
  content: '';
  position: absolute;
  width: 0.7em;
  height: 0.7em;
  border-color: var(--red);
  border-style: solid;
  border-width: 0;
}
.lp-page .lp-solution__title-lead::before {
  top: 0;
  left: 0;
  border-top-width: 3px;
  border-left-width: 3px;
}
.lp-page .lp-solution__title-lead::after {
  bottom: 0;
  right: 0;
  border-bottom-width: 3px;
  border-right-width: 3px;
}
.lp-page .lp-solution__title em {
  font-style: normal;
  color: var(--red);
  display: block;
}
/* 弁護士や警察では困難な（前置き小見出し） */
.lp-page .lp-solution__balloon {
  display: inline-block;
  
  font-size: 0.62em;
  font-weight: 700;
  line-height: 1.4;
  color: var(--muted);
  margin-bottom: 0.5em;
  letter-spacing: 0.05em;
}
.lp-page .lp-highlight {
  background: var(--red);
  color: #fff;
  padding: 0.55em 0.5em;
  border-radius: 4px;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
@media (max-width: 768px) {
  .lp-page .lp-highlight {
    display: block;
    width: 100%;
    padding: 0.75em 1em;
    border-radius: 6px;
  }
}
.lp-page .lp-solution__body {
  font-size: var(--text-body);
  line-height: 2;
  color: var(--text);
  
  margin: 0 0 0.75rem;
}
@media (max-width: 768px) {
  .lp-page .lp-solution__body,
  .lp-page .lp-solution__note {
    text-align: left;
  }
}
.lp-page .lp-solution__note {
  font-size: var(--text-xs);
  color: var(--muted);
  
  margin: 0;
}
.lp-page .lp-solution__img-col img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
  box-shadow: 0 8px 32px rgba(0,0,0,0.1);
}
@media (max-width: 768px) {
  .lp-page .lp-solution {
    padding: 3rem 0;
  }
  .lp-page .lp-solution__inner {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }
  /* モバイルは h3 だけ margin リセット（h2 は元の margin-bottom 維持） */
  .lp-page .lp-solution__title-lead {
    margin: 0;
  }
  /* body-col の子要素を直接 grid アイテム化して順番を制御 */
  .lp-page .lp-solution__body-col {
    display: contents;
  }
  .lp-page .lp-solution__eyebrow    { order: 1; }
  .lp-page .lp-solution__title      { order: 2; }
  .lp-page .lp-solution__img-col    { order: 3; }
  .lp-page .lp-solution__title-lead { order: 4; }
  .lp-page .lp-solution__body       { order: 5; }
  .lp-page .lp-solution__note       { order: 6; }
  /* モバイル時は 16:9 で切り出し＋ビューポート幅いっぱいに（フルブリード） */
  .lp-page .lp-solution__img-col {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
  }
  .lp-page .lp-solution__img-col img {
    aspect-ratio: 16 / 9;
  }
}

/* ===== Urgency Section (A: タイポグラフィ主体) ===== */
.lp-page .lp-urgency {
  /* urgency 本来の暖色グラデ */
  background:
    radial-gradient(ellipse at 15% 65%, rgba(181,42,24,0.06) 0%, transparent 50%),
    radial-gradient(ellipse at 85% 20%, rgba(181,42,24,0.04) 0%, transparent 50%),
    linear-gradient(135deg, #fcfaf9 0%, #f6f0ee 100%);
  padding: 4.5rem 0;
  position: relative;
}
.lp-page .lp-urgency__inner {
  max-width: 760px;
  margin-inline: auto;
  text-align: center;
  margin-bottom: 0rem;
}
.lp-page .lp-urgency__headline {
  font-family: var(--mincho);
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  font-weight: 900;
  line-height: 1.7;
  color: var(--black);
  margin-bottom: 1.75rem;
}
.lp-page .lp-urgency__headline span,
.lp-page .lp-urgency__headline em {
  font-size: 1.1em;
  background: linear-gradient(transparent 65%, rgba(255, 200, 170, 0.7) 65%);
  padding: 0 0.1em;
}
.lp-page .lp-urgency__headline em {
  font-style: normal;
  color: var(--red);
}
@media (max-width: 768px) {
  .lp-page .lp-urgency__headline span,
  .lp-page .lp-urgency__headline em { font-size: 0.9em; }
}
.lp-page .lp-urgency__body {
  font-size: var(--text-body);
  line-height: 2;
  color: var(--text);

  padding: 1.75rem 2rem;
  text-align: left;
  background: #fff;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,0.06);
  box-shadow: 0 4px 16px rgba(0,0,0,0.04);
  position: relative;
}
/* マスコット：本文左にfloat配置、テキストが右に回り込み（Wordの画像挿入風） */
.lp-page .lp-urgency__mascot {
  float: left;
  width: 100px;
  height: 100px;
  object-fit: contain;
  margin: 0;
  pointer-events: none;
}
@media (max-width: 768px) {
  .lp-page .lp-urgency__mascot {
    width: 69px;
    height: 69px;
    position: relative;
    top: 6px;
    right: 4px;
  }
}
@media (max-width: 768px) {
  .lp-page .lp-urgency__body {
    padding: 1.25rem 1.25rem;
  }
}
.lp-page .lp-urgency__quote {
  font-family: var(--mincho);
  font-size: clamp(1.1rem, 2vw, 1.35rem);
  font-weight: 900;
  line-height: 1.9;
  color: var(--muted);
  text-align: center;
  margin: 0 auto;
  position: relative;
  padding: 2rem 1rem;
}
.lp-page .lp-urgency__quote::before,
.lp-page .lp-urgency__quote::after {
  content: '';
  display: block;
  width: 2.5rem;
  height: 2px;
  background: var(--red);
  margin: 0 auto;
  opacity: 0.5;
}
.lp-page .lp-urgency__quote::before { margin-bottom: 1.25rem; }
.lp-page .lp-urgency__quote::after  { margin-top: 1.25rem; }
@media (max-width: 768px) {
  .lp-page .lp-urgency__quote {
    font-size: 1.2rem;
  }
}
@media (max-width: 768px) {
  .lp-page .lp-urgency {
    padding: 3rem 0;
  }
}

/* ===== 9-B. 不安な状況＋CTA ダークテーマ（斜めカット） ===== */
.lp-page .lp-urgency-cta {
  background:
    radial-gradient(ellipse at 20% 30%, rgba(181,42,24,0.18) 0%, transparent 55%),
    radial-gradient(ellipse at 85% 80%, rgba(40,40,50,0.4) 0%, transparent 55%),
    linear-gradient(135deg, #1a1a1a 0%, #0f0f10 100%);
  padding: 8rem 0;
  margin-top: -100px;       /* 重ね幅 100px > clip 深さ 80px */
  margin-bottom: -100px;
  position: relative;
  z-index: 1;
  clip-path: polygon(
    0 80px,
    100% 0,
    100% calc(100% - 80px),
    0 100%
  );
}
.lp-page .lp-urgency-cta .lp-container { position: relative; z-index: 1; }
.lp-page .lp-urgency-cta__quote {
  font-family: var(--mincho);
  font-size: clamp(1.05rem, 1.8vw, 1.25rem);
  font-weight: 900;
  line-height: 1.9;
  color: rgba(255,255,255,0.92);
  text-align: center;
  margin: 0 auto 2rem;
  max-width: 760px;
  position: relative;
  padding: 2rem 1rem;
}
.lp-page .lp-urgency-cta__quote::before,
.lp-page .lp-urgency-cta__quote::after {
  content: '';
  display: block;
  width: 2.5rem;
  height: 2px;
  background: var(--red);
  margin: 0 auto;
  opacity: 0.7;
}
.lp-page .lp-urgency-cta__quote::before { margin-bottom: 1.25rem; }
.lp-page .lp-urgency-cta__quote::after  { margin-top: 1.25rem; }
.lp-page .lp-urgency-cta__quote-lead {
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  display: inline-block;
  line-height: 2.4;
}
.lp-page .lp-urgency-cta__quote-divider {
  display: block;
  width: 2.5rem;
  height: 2px;
  background: var(--red);
  margin: 1.75rem auto;
  opacity: 0.7;
}
.lp-page .lp-urgency-cta__footnote {
  font-family: var(--mincho);
  font-size: clamp(1.05rem, 1.8vw, 1.25rem);
  font-weight: 900;
  line-height: 1.9;
  color: rgba(255,255,255,0.92);
  text-align: center;
  margin: 2rem auto 0;
  max-width: 760px;
  padding: 0 1rem;
}
@media (max-width: 768px) {
  .lp-page .lp-urgency-cta__footnote {
    font-size: 1.1rem;
    padding: 0;
    margin-inline: -0.75rem;
  }
}
@media (max-width: 768px) {
  .lp-page .lp-urgency-cta {
    padding: 6rem 0;
    margin-top: -50px;
    margin-bottom: -50px;
    clip-path: polygon(
      0 40px,
      100% 0,
      100% calc(100% - 40px),
      0 100%
    );
  }
  .lp-page .lp-urgency-cta__quote {
    font-size: 1.1rem;
    padding: 2rem 0;
    margin-inline: -0.75rem;
  }
}

/* ===== Strengths (new numbered cards) ===== */
.lp-page .lp-strengths__list {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  max-width: 1080px;
  margin-inline: auto;
}

.lp-page .lp-strength-card {
  background: var(--bg);
  border: 1px solid var(--border);
  display: flex;
  align-items: stretch;
  gap: 0;
}

/* ④だけ目立たせる強調バリアント */
.lp-page .lp-strength-card--featured {
  position: relative;
  border: 2px solid var(--red);
  background: #fff;             /* 視認性最優先で白に */
  box-shadow: 0 6px 18px rgba(200, 32, 18, 0.10);
}
.lp-page .lp-strength-card--featured .lp-strength-num {
  background: var(--bg-alt);    /* 他のカードと統一して文字埋没を防ぐ */
  color: var(--red);
  border-right-color: var(--red);
}
/* 「POINT」バッジ（カード右上） */
.lp-page .lp-strength-card--featured::before {
  content: "POINT";
  position: absolute;
  top: -12px;
  right: 16px;
  background: var(--red);
  color: #fff;
  
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  padding: 0.25rem 0.7rem;
  border-radius: 3px;
  box-shadow: 0 2px 6px rgba(200, 32, 18, 0.25);
  z-index: 1;
}
@media (max-width: 599px) {
  .lp-page .lp-strength-card--featured::before {
    font-size: 0.65rem;
    padding: 0.2rem 0.55rem;
    right: 10px;
    top: -10px;
  }
}

.lp-page .lp-strength-num {
  font-family: var(--mincho);
  font-size: 2.75rem;
  font-weight: 900;
  color: var(--red);
  letter-spacing: -0.02em;
  line-height: 1;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 5.5rem;
  border-right: 1px solid var(--border);
  padding: 1.5rem 1rem;
  background: var(--bg-alt);
}

.lp-page .lp-strength-body {
  padding: 1.5rem 1.75rem;
  flex: 1;
}
.lp-page .lp-strength-body h3 {
  text-align: left;
  margin-bottom: 0.75rem;
  color: var(--black);
  font-size: var(--text-lg);
  font-weight: 700;
  line-height: 1.5;
}
.lp-page .lp-strength-body p {
  text-align: left;
  font-size: var(--text-body);
  line-height: 1.95;
  color: var(--muted);
}
.lp-page .lp-strength-body p + p { margin-top: 0.9rem; }
.lp-page .lp-strength-highlight {
  position: relative;
  padding: 0.75rem 0.9rem;
  background: rgba(200, 32, 18, 0.06);
  border-left: 3px solid #c82012;
  border-radius: 0 4px 4px 0;
  color: #8b1a0e !important;
  font-weight: 600;
  line-height: 1.75 !important;
  font-size: calc(var(--text-body) * 0.95) !important;
}

@media (max-width: 599px) {
  .lp-page .lp-strength-num {
    width: 4rem;
    font-size: 2rem;
    padding: 1rem 0.75rem;
  }
  .lp-page .lp-strength-body { padding: 1.25rem; }
  .lp-page .lp-strength-body h3 { font-size: var(--text-md); }
}

/* ===== Final CTA Section (⑨) ===== */
.lp-page .lp-final-cta {
  background:
    radial-gradient(ellipse at 20% 80%, rgba(220,60,40,0.5) 0%, transparent 55%),
    radial-gradient(ellipse at 80% 15%, rgba(160,20,10,0.4) 0%, transparent 50%),
    linear-gradient(150deg, #8b1a0e 0%, #b52a18 50%, #7a1208 100%);
  padding-block: 5rem;
}
@media (max-width: 768px) { .lp-page .lp-final-cta { padding-block: 3.5rem; } }

.lp-page .lp-final-cta .lp-container {
  background: #fff;
  border-radius: 20px;
  padding: 3.5rem 2.5rem;
  box-shadow: 0 8px 40px rgba(0,0,0,0.2);
  max-width: 1080px;
  margin-inline: auto;
  width: calc(100% - 2rem);
}

.lp-page .lp-final-cta__caution {
  font-size: var(--text-md);
  font-weight: 700;
  color: var(--red);
  text-align: center;
  letter-spacing: 0.1em;
  margin-bottom: 0.875rem;
  
}
.lp-page .lp-final-cta__title {
  font-family: var(--mincho);
  font-size: clamp(1.75rem, 4vw, 3rem);
  font-weight: 900;
  color: var(--black);
  text-align: center;
  line-height: 1.35;
  margin-bottom: 1.25rem;
}
.lp-page .lp-final-cta__title em {
  font-style: normal;
  color: var(--red);
  border-bottom: 2px solid var(--red);
  padding-bottom: 0.05em;
}
.lp-page .lp-final-cta__sub {
  font-size: clamp(0.875rem, 1.4vw, 1rem);
  color: var(--muted);
  text-align: center;
  line-height: 2;
  margin-bottom: 2.5rem;
}
.lp-page .lp-final-cta .lp-cta-wrap {
  margin-bottom: 1.25rem;
}
.lp-page .lp-final-cta__note {
  text-align: center;
  font-size: var(--text-xs);
  color: #888;
  margin-top: 0.5rem;
}

@media (max-width: 768px) {
  .lp-page .lp-final-cta .lp-container {
    border-radius: 14px;
    padding: 2.5rem 1.5rem;
  }
}

/* ===== LP フッター ===== */
.lp-footer {
  background: #f4f6f8;
  border-top: 1px solid #e2e6ea;
  padding: 2rem 1.5rem;
}
.lp-footer__inner {
  max-width: 1080px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}
.lp-footer__logo img {
  height: 36px;
  width: auto;
  opacity: 0.8;
}
.lp-footer__legal {
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
  justify-content: center;
}
.lp-footer__legal a {
  font-size: 0.75rem;
  color: #888;
  text-decoration: none;
}
.lp-footer__legal a:hover {
  color: #444;
}
.lp-footer__copy {
  font-size: 0.72rem;
  color: #aaa;
  margin: 0;
}

