/* =========================================================
   画像＋テキストの横並びブロック（番号・見出し・説明）
   .reason--rev … 画像を左に置く
   ========================================================= */
.reason {
  background: var(--bg-2);
  border-radius: 30px;
  padding: 20px 50px;
  min-height: 350px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 35px;
}
.reason--rev { flex-direction: row-reverse; }
.reason__text {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 25px;
}
.reason__num {
  font-size: clamp(52px, 5.56vw, 80px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .1em;
  color: var(--bg);
}
.reason__title {
  font-size: clamp(20px, 2.22vw, 32px);
  font-weight: 700;
  line-height: 1.5;
  color: var(--main);
}
.reason__desc {
  font-size: clamp(15px, 1.39vw, 20px);
  font-weight: 500;
  line-height: 1.8;
}
.reason__img { flex: 0 0 317px; width: 317px; }
.reason__img img { width: 100%; height: auto; display: block; }

/* ---- Responsive ---- */
@media (max-width: 1100px) {
  .reason__img { flex-basis: 260px; width: 260px; }
}

@media (max-width: 980px) {
  .reason, .reason--rev {
    flex-direction: column;
    text-align: left;
    padding: 32px 28px;
    gap: 24px;
  }
  .reason__img { flex: 0 0 auto; width: min(280px, 70%); align-self: center; }
}

@media (max-width: 560px) {
  .reason { padding: 28px 20px; border-radius: 20px; }
}
