/* コンテナ全体のスタイル */
.sol-flow-container {
  max-width: 1000px;
  margin: 0 auto;
  padding: 20px;
  box-sizing: border-box;
}

/* 見出し */
.sol-flow-heading {
  text-align: center;
  font-weight: bold;
  line-height: 1.4;
  margin-bottom: 40px;
}

/* 流れのラッパー（横並び） */
.sol-flow-wrapper {
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: 15px;
}

/* 各ステップの基本構造 */
.sol-flow-step {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

/* ヘッダー（濃い青の枠） */
.sol-flow-header {
  background-color: #4b7bb5;
  color: #ffffff;
  text-align: center;
  padding: 12px 8px;
  font-weight: bold;
  border-radius: 2px 2px 0 0;
}

/* ボディ（薄い青のボックス） */
.sol-flow-body {
  background-color: #6c9bd2;
  color: #ffffff;
  text-align: center;
  padding: 20px 10px;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 15px;
  border-radius: 0 0 2px 2px;
}

.sol-flow-body p {
  margin: 0;
  line-height: 1.3;
}

/* 注釈テキスト */
.sol-flow-note {
  line-height: 1.2 !important;
}

/* 主力商品グループ */
.sol-flow-group {
  flex: 2;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.sol-flow-header-wide {
  width: 100%;
}

.sol-flow-group-body {
  display: flex;
  align-items: stretch;
  flex-grow: 1;
  gap: 15px;
}

.sol-flow-step-inner {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.sol-flow-step-inner .sol-flow-body {
  border-radius: 2px;
}

/* 矢印（CSS三角形） */
.sol-flow-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.sol-flow-arrow::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 12px 0 12px 16px;
  border-color: transparent transparent transparent #d93d59;
}

/* レスポンシブ対応 (スマートフォン・タブレット向け) */
@media (max-width: 768px) {
  .sol-flow-wrapper {
    flex-direction: column;
    align-items: center;
  }

  .sol-flow-step,
  .sol-flow-group {
    width: 100%;
  }

  .sol-flow-group-body {
    flex-direction: column;
  }

  /* スマホ表示時は矢印を下に向けます */
  .sol-flow-arrow {
    padding: 10px 0;
  }

  .sol-flow-arrow::after {
    border-width: 16px 12px 0 12px;
    border-color: #d93d59 transparent transparent transparent;
  }
}