/* === whentostart.css ========================================= */

/* 0. 変数 ------------------------------------------------------ */
:root {
  --box-size-pc: 360px; /* 正方形カード（PC）          */
  --box-size-sp: 300px; /* 正方形カード（SP）          */
  --arrow-size-pc: 120px; /* 矢印アイコン（PC）          */
  --arrow-size-sp: 80px; /* 矢印アイコン（SP）          */
  --green-border: #117713;
  --blue-text: #0057a4;
  --red-text: #d50000;
}

/* 1. グリッド -------------------------------------------------- */
.flow-grid {
  /*  ▲PC：カード幅 + 矢印幅 + カード幅 で 3 列               */
  grid-template-columns: var(--box-size-pc) var(--arrow-size-pc) var(
      --box-size-pc
    );
  display: grid;
  gap: 2rem;
  margin: 3rem 0;
  align-items: center; /* 縦位置そろえ */
}

@media (max-width: 1024px) {
  /* タブレット横・縦でもカード横並びを維持しつつ余白を抑える */
  .flow-grid {
    grid-template-columns: 1fr var(--arrow-size-pc) 1fr;
  }
}

@media (max-width: 850px) {
  /* スマホ：1 列縦並び */
  .flow-grid {
    grid-template-columns: 1fr;
  }
}

/* 2. カード ---------------------------------------------------- */
.flow-col.box {
  width: var(--box-size-pc);
  height: var(--box-size-pc);
  border: 2px solid var(--green-border);
  border-radius: 8px;
  background: #fff;
  padding: 2.6rem;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
}

@media (max-width: 850px) {
  .flow-col.box {
    width: var(--box-size-sp);
    height: var(--box-size-sp);
    margin-inline: auto;
  }
}

/* 3. アイコン -------------------------------------------------- */
.flow-icon {
  width: 60%;
  max-width: 200px;
  margin: 0 auto 1.6rem;
}
.flow-icon img {
  width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
  pointer-events: none;
}

/* 4. 矢印 ------------------------------------------------------ */
.flow-col.arrow {
  display: flex;
  justify-content: center;
  align-items: center;
}
.flow-col.arrow img {
  width: var(--arrow-size-pc);
  height: var(--arrow-size-pc);
  display: block;
  object-fit: contain;
  pointer-events: none;
}

@media (max-width: 850px) {
  .flow-col.arrow img {
    width: var(--arrow-size-sp);
    height: var(--arrow-size-sp);
    transform: rotate(90deg); /* 縦並び時に下向きへ */
  }
}

/* 5. テキスト -------------------------------------------------- */
.flow-col h3 {
  font-size: 2rem;
  margin: 0.4rem 0;
  color: var(--blue-text);
}
.sub {
  font-size: 1.8rem;
  margin: 0.2rem 0 0.8rem;
}
.caption {
  font-size: 1.8rem;
  margin: 1rem 0 0;
}
.red {
  color: var(--red-text);
}

/* === SPの矢印行の上下を“ギリギリ”まで圧縮 ===================== */
@media (max-width: 850px) {
  /* グリッドの縦方向ギャップを 0 に（上下の隙間の根本原因） */
  .flow-grid {
    gap: 0;            /* 既定 2rem → 0 に */
  }

  /* 矢印行そのものの上下をさらに押し込む（安全範囲のマイナス） */
  .flow-col.arrow {
    line-height: 0;    /* 余計な行高を排除（保険） */
    margin-block: -0.6rem; /* 必要に応じて -1rem まで可 */
  }

  /* 既存の回転はそのまま活かす（見た目は不変） */
  .flow-col.arrow img {
    transform: rotate(90deg);
    display: block;
  }
}

/* ===== END whentostart.css ===== */
