/* 2025-08-30 17:44(UTC+09:00) */
/* === 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; /* 縦位置そろえ */
}
/* 1024px 以下：横幅に応じて左右を自動可変 */
@media (max-width: 1024px) {
  .flow-grid {
    grid-template-columns: 1fr var(--arrow-size-pc) 1fr;
  }
}

/* 768px 以下：スマホ1列縦並び（従来の 850 を集約） */
@media (max-width: 768px) {
  .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,.08);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
}
@media (max-width: 768px) {
  .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: 768px) {
  .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: 768px) {
  .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;
  }
}
