/* 全体コンテナ */
.sol-step-container {
  width: 100%;
  margin: 2rem 0;
  box-sizing: border-box;
}

.sol-step-container *,
.sol-step-container *::before,
.sol-step-container *::after {
  box-sizing: border-box;
}

/* テーブル構造 */
.sol-step-table {
  display: flex;
  flex-direction: column;
  width: 100%;
  border-top: 1px solid #000000;
  border-left: 1px solid #000000;
}

.sol-step-row {
  display: flex;
  width: 100%;
}

.sol-step-cell {
  padding: 12px 16px;
  border-right: 1px solid #000000;
  border-bottom: 1px solid #000000;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* 列幅の比率設定（PC用） */
.sol-step-col-step {
  width: 25%;
}
.sol-step-col-content {
  width: 50%;
}
.sol-step-col-position {
  width: 25%;
}

/* ヘッダー行のデザイン */
.sol-step-header {
  background-color: #ffffff;
}
.sol-step-header .sol-step-cell {
  font-weight: bold;
  justify-content: flex-start;
}

/* テキスト・装飾のスタイル */
.sol-step-text {
  margin: 0 0 8px 0;
  line-height: 1.6;
}
.sol-step-text:last-child {
  margin-bottom: 0;
}

.sol-step-badge {
  font-weight: bold;
}

.sol-step-bold {
  font-weight: bold;
}

/* レスポンシブ対応（タブレット・スマホ向け：768px以下） */
@media screen and (max-width: 768px) {
  .sol-step-table {
    border-top: none;
    border-left: none;
  }

  .sol-step-header {
    display: none; /* PC用のヘッダー行を非表示に */
  }

  .sol-step-row {
    flex-direction: column;
    margin-bottom: 24px;
    border-top: 1px solid #000000;
    border-left: 1px solid #000000;
  }
  .sol-step-row:last-child {
    margin-bottom: 0;
  }

  .sol-step-cell {
    width: 100% !important; /* 各列を横幅いっぱいに */
    position: relative;
    padding-top: 36px; /* ラベル表示用のスペースを確保 */
  }

  /* スマホ時に「ステップ」「内容」「位置づけ」の見出しを疑似要素で追加 */
  .sol-step-cell::before {
    content: attr(data-label);
    position: absolute;
    top: 8px;
    left: 16px;
    font-size: 0.75rem;
    font-weight: bold;
    color: #666666;
  }
}

/* 全体コンテナ */
.case-table-container {
  width: 100%;
  margin: 2rem 0;
  box-sizing: border-box;
}

.case-table-container *,
.case-table-container *::before,
.case-table-container *::after {
  box-sizing: border-box;
}

/* テーブル構造 */
.case-table-wrapper {
  display: flex;
  flex-direction: column;
  width: 100%;
  border-top: 1px solid #000000;
  border-left: 1px solid #000000;
}

.case-table-row {
  display: flex;
  width: 100%;
}

.case-table-label,
.case-table-content {
  padding: 16px;
  border-right: 1px solid #000000;
  border-bottom: 1px solid #000000;
}

/* 列幅の比率設定（PC用：項目25% / 内容75%） */
.case-table-label {
  width: 25%;
  font-weight: bold;
  background-color: #ffffff;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.case-table-content {
  width: 75%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* ラベル内の補足テキスト（期間など） */
.case-table-sub {
  display: block;
  font-weight: normal;
  margin-top: 4px;
}

/* テキスト・リストのスタイル */
.case-table-text {
  margin: 0;
  line-height: 1.6;
}

.case-table-list {
  margin: 0;
  padding-left: 20px;
  list-style-type: disc;
}

.case-table-list-item {
  margin-bottom: 8px;
  line-height: 1.6;
}

.case-table-list-item:last-child {
  margin-bottom: 0;
}

/* レスポンシブ対応（タブレット・スマホ向け：768px以下） */
@media screen and (max-width: 768px) {
  .case-table-wrapper {
    border-top: none;
    border-left: none;
  }

  .case-table-row {
    flex-direction: column;
    margin-bottom: 24px;
    border-top: 1px solid #000000;
    border-left: 1px solid #000000;
  }
  .case-table-row:last-child {
    margin-bottom: 0;
  }

  .case-table-label,
  .case-table-content {
    width: 100% !important; /* 横幅いっぱいに広げる */
  }

  .case-table-label {
    background-color: #f5f5f5; /* スマホ時に項目の背景を薄いグレーにして視認性を向上 */
    border-bottom: none;
  }
}

/* 全体コンテナ */
.case-detail-container {
  width: 100%;
  margin: 2rem 0;
  box-sizing: border-box;
}

.case-detail-container *,
.case-detail-container *::before,
.case-detail-container *::after {
  box-sizing: border-box;
}

/* テーブル構造 */
.case-detail-wrapper {
  display: flex;
  flex-direction: column;
  width: 100%;
  border-top: 1px solid #000000;
  border-left: 1px solid #000000;
}

.case-detail-row {
  display: flex;
  width: 100%;
}

.case-detail-label,
.case-detail-content {
  padding: 16px;
  border-right: 1px solid #000000;
  border-bottom: 1px solid #000000;
}

/* 列幅の比率設定（PC用：項目25% / 内容75%） */
.case-detail-label {
  width: 25%;
  font-weight: bold;
  background-color: #ffffff;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.case-detail-content {
  width: 75%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* ラベル内の補足テキスト（注記など） */
.case-detail-sub {
  display: block;
  font-weight: normal;
  margin-top: 4px;
}

/* テキスト・リストのスタイル */
.case-detail-text {
  margin: 0;
  line-height: 1.6;
}

.case-detail-list {
  margin: 0;
  padding-left: 20px;
  list-style-type: disc;
}

.case-detail-list-item {
  margin-bottom: 8px;
  line-height: 1.6;
}

.case-detail-list-item:last-child {
  margin-bottom: 0;
}

/* レスポンシブ対応（タブレット・スマホ向け：768px以下） */
@media screen and (max-width: 768px) {
  .case-detail-wrapper {
    border-top: none;
    border-left: none;
  }

  .case-detail-row {
    flex-direction: column;
    margin-bottom: 24px;
    border-top: 1px solid #000000;
    border-left: 1px solid #000000;
  }
  .case-detail-row:last-child {
    margin-bottom: 0;
  }

  .case-detail-label,
  .case-detail-content {
    width: 100% !important; /* 横幅いっぱいに広げる */
  }

  .case-detail-label {
    background-color: #f5f5f5; /* スマホ時に項目の背景を薄いグレーにして視認性を向上 */
    border-bottom: none;
  }
}

/* 全体コンテナ */
.issue-list-container {
  width: 100%;
  margin: 2rem 0;
  box-sizing: border-box;
}

.issue-list-container *,
.issue-list-container *::before,
.issue-list-container *::after {
  box-sizing: border-box;
}

/* リスト構造 */
.issue-list-wrapper {
  margin: 0 0 2rem 0;
  padding: 0;
  list-style: none; /* デフォルトのマーカーを消去 */
}

/* リストアイテム（箇条書きの各行） */
.issue-list-item {
  position: relative;
  padding-left: 24px; /* カスタムマーカー用の余白 */
  margin-bottom: 16px;
  line-height: 1.7;
}

.issue-list-item:last-child {
  margin-bottom: 0;
}

/* 画像の「-」を表現するカスタムマーカー（擬似要素） */
.issue-list-item::before {
  content: "–";
  position: absolute;
  left: 4px;
  top: 0;
  font-weight: bold;
}

/* 太字の装飾 */
.issue-list-bold {
  font-weight: bold;
}

/* 下部注記エリア */
.issue-list-note {
  margin-top: 24px;
  padding-top: 16px;
}

.issue-list-note-text {
  margin: 0;
  line-height: 1.7;
}

/* レスポンシブ対応（スマホ向け調整） */
@media screen and (max-width: 768px) {
  .issue-list-item {
    margin-bottom: 20px; /* スマホ時は少し行間を広げて可読性を向上 */
  }
  
  .issue-list-note {
    margin-top: 32px;
  }
}

/* 全体コンテナ */
.success-pt-container {
  width: 100%;
  margin: 2rem 0;
  box-sizing: border-box;
}

.success-pt-container *,
.success-pt-container *::before,
.success-pt-container *::after {
  box-sizing: border-box;
}

/* メイン見出し（成功のポイントは2つ） */
.success-pt-main-title {
  margin: 0 0 1.5rem 0;
  font-weight: normal;
  line-height: 1.4;
}

/* 各ポイントのセクション外枠 */
.success-pt-section {
  margin-bottom: 2rem;
}

.success-pt-section:last-child {
  margin-bottom: 0;
}

/* 各ポイントのサブタイトル */
.success-pt-sub-title {
  margin: 0 0 1rem 0;
  font-weight: bold;
  line-height: 1.4;
}

/* 本文テキスト */
.success-pt-text {
  margin: 0;
  line-height: 1.8;
  text-align: justify;
}

/* レスポンシブ対応（スマホ向け調整） */
@media screen and (max-width: 768px) {
  .success-pt-container {
    margin: 1.5rem 0;
  }
  
  .success-pt-main-title {
    margin-bottom: 1.25rem;
  }
  
  .success-pt-section {
    margin-bottom: 1.75rem;
  }
}

/* 全体コンテナ */
.fail-pt-container {
  width: 100%;
  margin: 2rem 0;
  box-sizing: border-box;
}

.fail-pt-container *,
.fail-pt-container *::before,
.fail-pt-container *::after {
  box-sizing: border-box;
}

/* メイン見出し（よくある失敗パターンは3つ） */
.fail-pt-main-title {
  margin: 0 0 1.5rem 0;
  font-weight: normal;
  line-height: 1.4;
}

/* 各パターンのセクション外枠 */
.fail-pt-section {
  margin-bottom: 2rem;
}

.fail-pt-section:last-child {
  margin-bottom: 0;
}

/* 各パターンのサブタイトル */
.fail-pt-sub-title {
  margin: 0 0 1rem 0;
  font-weight: bold;
  line-height: 1.4;
}

/* 本文テキスト */
.fail-pt-text {
  margin: 0;
  line-height: 1.8;
  text-align: justify;
}

/* レスポンシブ対応（スマホ向け調整） */
@media screen and (max-width: 768px) {
  .fail-pt-container {
    margin: 1.5rem 0;
  }
  
  .fail-pt-main-title {
    margin-bottom: 1.25rem;
  }
  
  .fail-pt-section {
    margin-bottom: 1.75rem;
  }
}

/* 全体コンテナ */
.strength-list-container {
  width: 100%;
  margin: 2rem 0;
  box-sizing: border-box;
}

.strength-list-container *,
.strength-list-container *::before,
.strength-list-container *::after {
  box-sizing: border-box;
}

/* リスト構造 */
.strength-list-wrapper {
  margin: 0;
  padding: 0;
  list-style: none; /* デフォルトのマーカーを消去 */
}

/* リストアイテム */
.strength-list-item {
  position: relative;
  padding-left: 24px; /* カスタムマーカー用の余白 */
  margin-bottom: 20px;
  line-height: 1.7;
  text-align: justify;
}

.strength-list-item:last-child {
  margin-bottom: 0;
}

/* 画像の「-」を表現するカスタムマーカー（擬似要素） */
.strength-list-item::before {
  content: "–";
  position: absolute;
  left: 4px;
  top: 0;
  font-weight: bold;
}

/* 太字部分の装飾 */
.strength-list-bold {
  font-weight: bold;
}

/* レスポンシブ対応（スマホ向け調整） */
@media screen and (max-width: 768px) {
  .strength-list-container {
    margin: 1.5rem 0;
  }

  .strength-list-item {
    margin-bottom: 24px; /* スマホ時は要素間の余白をやや広げて視認性を確保 */
  }
}