/* ============================================================
   ENVIRONMENT - 共通スタイル
   ============================================================ */

/* ==========================
   Hero (env-hero) - Figma KV
   - 1200×500
   - 左に大きな "ENVIRONMENT" 白テキスト
   - 写真背景 + 右下に小装飾
   ========================== */
.env-hero {
  position: relative;
  width: 100%;
  height: 500px;
  overflow: hidden;
  isolation: isolate;
}
.env-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 1;
}
.env-hero__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* 左パネル: Figma Rectangle 319 - 582px幅 (48.5%) の薄青パネル */
.env-hero__tint {
  position: absolute;
  top: 0;
  left: 0;
  width: 48.5%;
  height: 100%;
  background: rgba(80, 140, 195, 0.55);
  z-index: 2;
}
/* 右上の薄水色装飾バー (Rectangle 326: 996,43 w 204 h 18) */
.env-hero__accent-bar {
  position: absolute;
  top: 43px;
  right: 0;
  width: 204px;
  height: 18px;
  background: rgba(214, 236, 248, 0.6);
  z-index: 3;
}
/* 中央右の小さな横バー (Rectangle 429: 945,355 w 153 h 3) - 赤系アクセント */
.env-hero__accent-line {
  position: absolute;
  top: 355px;
  right: 102px;
  width: 153px;
  height: 3px;
  background: #e84e4e;
  z-index: 3;
}
/* 右下縦長 (Rectangle 323: 1152,352 w 48 h 148) - 半透明白 */
.env-hero__accent-vert {
  position: absolute;
  top: 352px;
  right: 0;
  width: 48px;
  height: 148px;
  background: rgba(214, 236, 248, 0.55);
  z-index: 3;
}
/* 右側 88px 幅の縦帯 (Rectangle 322: 1112,0 w 88 h 500) - 薄青パネル */
.env-hero__strip {
  position: absolute;
  top: 0;
  right: 0;
  width: 88px;
  height: 100%;
  background: rgba(80, 140, 195, 0.45);
  z-index: 2;
}
/* 下端の青透かし (青透かし: 328,450 w 872 h 50) */
.env-hero__band {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 72.66%;
  height: 50px;
  background: rgba(0, 106, 183, 0.45);
  z-index: 3;
}
/* 白横線 (Rectangle 324: 0,310 w 281 h 3) */
.env-hero__line {
  position: absolute;
  top: 310px;
  left: 0;
  width: 281px;
  height: 3px;
  background: #ffffff;
  z-index: 4;
  transform-origin: left center;
  animation: env-hero-line 0.7s 0.85s cubic-bezier(0.2,0.7,0.3,1) both;
}
.env-hero__inner {
  position: absolute;
  top: 0;
  left: 0;
  padding: 153px 0 0 84px;
  z-index: 4;
  color: #ffffff;
}
.env-hero__en {
  font-family: "Poppins", "Barlow Condensed", sans-serif;
  font-weight: 600;
  font-size: 100px;
  line-height: 1.0;
  letter-spacing: 0.02em;
  margin: 0;
  color: #ffffff;
  white-space: nowrap;
  animation: env-hero-fade 0.9s 0.15s cubic-bezier(0.2,0.7,0.3,1) both;
}
.env-hero__jp {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 24px;
  line-height: 1;
  letter-spacing: 0.06em;
  margin: 18px 0 0 4px;
  color: #ffffff;
  animation: env-hero-fade 0.9s 0.4s cubic-bezier(0.2,0.7,0.3,1) both;
}

@keyframes env-hero-fade {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes env-hero-line {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}
@media (prefers-reduced-motion: reduce) {
  .env-hero__en,
  .env-hero__jp,
  .env-hero__line { animation: none; }
}

/* ==========================
   Lead (env-lead)
   ========================== */
.env-lead {
  padding: 4.417vw 0;                  /* 53 @1200 */
  background: #ffffff;
}
.env-lead__text {
  max-width: 59.333vw;                 /* 712 @1200 */
  margin: 0 auto;
  font-family: "Noto Sans JP", sans-serif;
  font-size: max(13px, 1.25vw);        /* 15 @1200 / 最低13 */
  font-weight: 500;
  line-height: 2.0;
  letter-spacing: 0.06em;
  color: #155c99;
  text-align: center;
}

/* ==========================
   Section Block (env-block)
   ========================== */
.env-block {
  position: relative;
  width: 100%;
  padding: 3.75vw 0 6.667vw;           /* 45 / 80 @1200 */
}
.env-block--white { background: #ffffff; }
.env-block--blue  { background: #1399e0; }
.env-block--light { background: #d6ecf8; }

.env-block__title {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: max(18px, 2.167vw);       /* 26 @1200 / 最低18 */
  line-height: 1.3;
  letter-spacing: 0.08em;
  text-align: center;
  margin: 0 0 4.167vw;                 /* 50 @1200 */
  color: #155c99;
}
.env-block--blue .env-block__title { color: #ffffff; }
.env-block--light .env-block__title { color: #3cabe6; }

.env-block__title { margin-bottom: 3.333vw; } /* 40 @1200 */

.env-block__grid {
  display: grid;
  max-width: 87.667vw;                 /* 1052 @1200 */
  margin: 0 auto;
  padding: 0 2vw;                      /* 24 @1200 */
  justify-content: center;
}
.env-block__grid--4 {
  grid-template-columns: repeat(4, 14.417vw);  /* 173 @1200 */
  gap: 0 5.917vw;                      /* 71 @1200 */
}
.env-block__grid--2 {
  grid-template-columns: repeat(2, 26.417vw);  /* 317 @1200 */
  gap: 0 5.333vw;                      /* 64 @1200 */
}

/* ==========================
   Circle item (env-circle)
   - 外円 173×173 (薄ボーダー)
   - 内円 163×163 (白塗り)
   - アイコン中央
   - タイトル下
   - 説明文下
   ========================== */
.env-circle {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.env-circle__ring {
  width: 14.417vw;                     /* 173 @1200 */
  height: 14.417vw;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 14.417vw;
}
.env-block--white .env-circle__ring,
.env-block--light .env-circle__ring {
  background: #55B6E9;
}
.env-circle__inner {
  width: 13.583vw;                     /* 163 @1200 */
  height: 13.583vw;
  border-radius: 50%;
  background: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.env-circle__icon {
  display: block;
  width: auto;
  height: auto;
  max-width: 6.667vw;                  /* 80 @1200 */
  max-height: 7.5vw;                   /* 90 @1200 */
}
.env-circle__title {
  margin: 1vw 0 0;                     /* 12 @1200 */
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: max(14px, 1.333vw);       /* 16 @1200 / 最低14 */
  line-height: 1.4;
  letter-spacing: 0.08em;
  color: #155c99;
}
.env-block--blue .env-circle__title { color: #ffffff; }
.env-circle--wide-title .env-circle__title {
  width: 17.75vw;                      /* 213 @1200 */
  white-space: nowrap;
}
.env-circle__desc {
  margin: 1vw 0 0;                     /* 12 @1200 */
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: max(13px, 1.167vw);       /* 14 @1200 / 最低13 */
  line-height: 1.429;                  /* 20/14 ≒ 1.43 */
  letter-spacing: 0;
  color: #155c99;
  text-align: left;
  width: 13.417vw;                     /* 161 @1200 */
}
.env-block--blue .env-circle__desc { color: #ffffff; }
.env-circle--wide .env-circle__desc,
.env-block__grid--2 .env-circle__desc { width: 26.417vw; }  /* 317 @1200 */
/* 働き方 / その他 セクション: text 中央 + 改行されないよう幅広く */
.env-block--worklife .env-circle__desc,
.env-block--other .env-circle__desc {
  width: auto;
  max-width: 100%;
  text-align: center;
}
/* 働き方セクション SP: 横並び→縦並び (1列) */
@media (max-width: 767px) {
  .env-block--worklife .env-block__grid--2 {
    grid-template-columns: 1fr;
    row-gap: 40px;
  }
}
.env-circle--tight .env-circle__desc { letter-spacing: -0.05em; }

.env-circle__badge {
  display: inline-block;
  margin: 1vw auto 0;                  /* 12 @1200 */
  padding: 0.417vw 1.5vw;              /* 5 / 18 @1200 */
  background: #ffffff;
  color: #1399e0;
  border: 1px solid #1399e0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: max(11px, 1.083vw);       /* 13 @1200 / 最低11 */
  letter-spacing: 0.06em;
  border-radius: 0;
}

/* ============================================================
   TRAINING-CAREER PAGE
   ============================================================ */

/* 共通タグ */
.training-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 2.5vw;                       /* 30 @1200 */
  min-height: 24px;
  padding: 0 1.5vw;                    /* 18 @1200 */
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: max(12px, 1.167vw);       /* 14 @1200 / 最低12 */
  letter-spacing: 0.08em;
  color: #155c99;
  background: #ffffff;
  border: 1px solid #1399e0;
  border-radius: 0;
}
.training-tag--blue {
  background: #1399e0;
  color: #ffffff;
  border-color: #1399e0;
}
.training-tag--outline {
  background: #ffffff;
  color: #0091dd;
  border: 1px solid #0091dd;
}
/* 教育プログラム概要の tag-row 内のみ幅 72 固定 */
.training-overview__tag-row .training-tag--outline {
  width: 6vw;                          /* 72 @1200 */
  padding: 0;
}

/* ==========================
   プログラム概要 (training-overview)
   - Figma: Tab at TOP CENTER on a thin line, then 2-column layout
   ========================== */
.training-overview {
  position: relative;
  padding: 0 0 6.667vw;                /* 80 @1200 */
  background: #ffffff;
}
/* Top: 細い横線 + 中央タブ */
.training-overview__top {
  position: relative;
  max-width: 100vw;
  margin: 0 auto;
  padding: 1.917vw 7.333vw 0;          /* 23 / 88 @1200 */
  display: flex;
  justify-content: center;
}
.training-overview__topline {
  position: absolute;
  top: 1.917vw;                        /* 23 @1200 */
  left: 7.333vw;                       /* 88 @1200 */
  right: 7.333vw;
  height: 1px;
  background: #c2d5e3;
}
.training-overview__tab {
  position: relative;
  z-index: 2;
  min-width: 22.167vw;                 /* 266 @1200 */
  height: 3.833vw;                     /* 46 @1200 */
  display: flex;
  align-items: center;
  justify-content: center;
  background: #1399e0;
  color: #ffffff;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: max(14px, 1.333vw);       /* 16 @1200 / 最低14 */
  letter-spacing: 0.08em;
  margin-top: -1.917vw;                /* -23 @1200 */
}
.training-overview__inner {
  position: relative;
  max-width: 85.333vw;                 /* 1024 @1200 */
  margin: 4.167vw auto 0;              /* 50 @1200 */
  padding: 0 2vw;                      /* 24 @1200 */
  display: grid;
  grid-template-columns: 34.333vw 1fr; /* 412 @1200 */
  gap: 2vw 3vw;                        /* 24 / 36 @1200 */
}
.training-overview__text {
  margin: 5vw 0 0;                     /* 60 @1200 */
  font-family: "Noto Sans JP", sans-serif;
  font-size: max(13px, 1.167vw);       /* 14 @1200 / 最低13 */
  line-height: 1.9;
  letter-spacing: 0.06em;
  color: #155c99;
}
.training-overview__right {
  display: flex;
  flex-direction: column;
  gap: 1.333vw;                        /* 16 @1200 */
}
.training-overview__diagram {
  display: block;
  width: 100%;
  height: auto;
}
.training-overview__notes {
  margin-top: 0.667vw;                 /* 8 @1200 */
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 1.667vw;                        /* 20 @1200 */
}
.training-overview__tag-row {
  display: flex;
  align-items: center;
  gap: 1.167vw;                        /* 14 @1200 */
  margin: 0;
  flex: 0 0 16.083vw;                  /* 193 @1200 */
  width: 16.083vw;
}
.training-overview__tag-x {
  display: inline-block;
  width: 1.833vw;                      /* 22 @1200 */
  height: 1.833vw;
  position: relative;
}
.training-overview__tag-x::before,
.training-overview__tag-x::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 2px;
  background: #1399e0;
}
.training-overview__tag-x::before { transform: translateY(-50%) rotate(45deg); }
.training-overview__tag-x::after  { transform: translateY(-50%) rotate(-45deg); }
.training-overview__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.583vw;                        /* 7 @1200 */
}
.training-overview__list li {
  position: relative;
  padding-left: 1.833vw;               /* 22 @1200 */
  font-family: "Noto Sans JP", sans-serif;
  font-size: max(12px, 1.083vw);       /* 13 @1200 / 最低12 */
  line-height: 1.6;
  letter-spacing: 0.04em;
  color: #155c99;
  white-space: nowrap;
}
.training-overview__list li::before {
  content: "●";
  position: absolute;
  left: 0;
  top: 1px;
  color: #1399e0;
  font-size: max(10px, 0.917vw);       /* 11 @1200 / 最低10 */
}

/* ==========================
   Training Section (共通ブロック)
   - 薄水色背景 (#d6ecf8)
   - 白パネル中央
   - 左上タブ
   - 右上写真
   ========================== */
.training-section {
  position: relative;
  width: 100%;
  padding: 5.917vw 0 0;                /* 71 @1200 */
  background: #d6ecf8;
}
.training-section + .training-section { padding-top: 5.917vw; }
/* キャリアパス section は下にも余白 */
.training-section--career { padding-bottom: 5.667vw; }  /* 68 */
/* 新入社員 (training-overview の直後) 下余白 */
.training-overview + .training-section { padding-bottom: 6.75vw; }  /* 81 */
/* 若手社員育成 (新入社員の次) 上余白 + 下余白 */
.training-overview + .training-section + .training-section {
  margin-top: 6.333vw;                 /* 76 */
  padding-bottom: 6.75vw;
}
/* その他人財育成プログラム (3番目) 上余白 */
.training-overview + .training-section + .training-section + .training-section { margin-top: 6.333vw; }
.training-section__inner {
  position: relative;
  max-width: 100vw;
  margin: 0 auto;
  padding-bottom: 5.667vw;             /* 68 @1200 */
  background: transparent;
}
/* 白パネル */
.training-section__inner::before {
  content: "";
  position: absolute;
  left: 7.333vw;                       /* 88 @1200 */
  right: 7.333vw;
  top: 6.5vw;                          /* 78 @1200 */
  bottom: 0;
  background: #ffffff;
  z-index: 0;
}
.training-section__tab {
  position: absolute;
  top: 4.833vw;                        /* 58 @1200 */
  left: 0;
  z-index: 3;
  height: 4.417vw;                     /* 53 @1200 */
  min-width: 28.75vw;                  /* 345 @1200 */
  padding: 0 2.333vw 0 7.333vw;        /* 28 / 88 @1200 */
  display: flex;
  align-items: center;
  overflow: hidden;
  background: transparent;
  color: #ffffff;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: max(14px, 1.333vw);       /* 16 @1200 / 最低14 */
  letter-spacing: 0.08em;
}
.training-section__tab::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #155c99;
  transform-origin: left center;
  transform: scaleX(0);
  transition: transform 0.6s cubic-bezier(0.7, 0, 0.3, 1);
}
.training-section__tab > span {
  position: relative;
  z-index: 1;
  opacity: 0;
  transition: opacity 0.45s ease 0.05s;
}
.training-section__tab.is-revealed::before { transform: scaleX(1); }
.training-section__tab.is-revealed > span { opacity: 1; transition-delay: 0.55s; }
@media (prefers-reduced-motion: reduce) {
  .training-section__tab::before { transform: scaleX(1); transition: none; }
  .training-section__tab > span { opacity: 1; transition: none; }
}
/* 右上のうすい青の装飾バー */
.training-section__accent-bar {
  position: absolute;
  top: 9.25vw;                         /* 111 @1200 */
  left: 24vw;                          /* 288 @1200 */
  width: 21.25vw;                      /* 255 @1200 */
  height: 1.083vw;                     /* 13 @1200 */
  background: #b8d6ea;
  z-index: 1;
}
/* 右側の縦アクセント */
.training-section__accent-vert {
  position: absolute;
  top: 16.417vw;                       /* 197 @1200 */
  right: 7.667vw;                      /* 92 @1200 */
  width: 0.417vw;                      /* 5 @1200 */
  height: 6.917vw;                     /* 83 @1200 */
  background: #d5e9f4;
  z-index: 3;
}
.training-section__accent-vert--2 {
  top: 23.333vw;                       /* 280 @1200 */
  background: #3cabe6;
}
.training-section__top {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr 51.583vw; /* 619 @1200 */
  align-items: start;
  gap: 0 2vw;                          /* 24 @1200 */
  padding: 0 0 0 7.333vw;              /* 88 @1200 */
  margin-top: 0;
}
.training-section__lead {
  padding: 14.167vw 0 0 4.917vw;       /* 170 / 59 @1200 */
  max-width: 33vw;                     /* 396 @1200 */
  font-family: "Noto Sans JP", sans-serif;
  font-size: max(13px, 1.167vw);       /* 14 @1200 / 最低13 */
  line-height: 1.571;                  /* 22/14 */
  letter-spacing: 0.04em;
  color: #1a1a1a;
}
.training-section__lead p {
  margin: 0;
  font-size: max(13px, 1.167vw);
  line-height: 1.571;
}
.training-section__photo {
  width: 51.583vw;                     /* 619 @1200 */
  height: 26.833vw;                    /* 322 @1200 */
  overflow: hidden;
}
.training-section__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ==========================
   新入社員研修 - 2カラム比較
   - LEFT: 365×165 light bg (#d6ecf8), dark text
   - RIGHT: 380×165 medium blue bg (#1399e0), white text
   - LEFT box has a triangular arrow tip protruding RIGHT into RIGHT box
   ========================== */
.training-compare {
  position: relative;
  z-index: 2;
  margin: 5vw auto 0;                  /* 60 @1200 */
  width: 60.667vw;                     /* 728 @1200 */
  height: 13.75vw;                     /* 165 @1200 */
  display: flex;
  padding: 0;
}
.training-compare__col {
  position: relative;
  height: 13.75vw;                     /* 165 @1200 */
  padding: 2.333vw 1.5vw 0;             /* 28 / 18 @1200 */
  font-family: "Noto Sans JP", sans-serif;
}
.training-compare__col--left {
  width: 30.417vw;                     /* 365 @1200 */
  background: #d6ecf8;
  color: #155c99;
}
.training-compare__col--right {
  width: 31.667vw;                     /* 380 @1200 */
  margin-left: -1.417vw;               /* -17 @1200 */
  background: #1399e0;
  color: #ffffff;
  padding-left: 2.917vw;               /* 35 @1200 */
}
.training-compare__head {
  margin: 0 0 2.167vw;                 /* 26 @1200 */
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: max(16px, 1.667vw);       /* 20 @1200 / 最低16 */
  line-height: 1.4;
  letter-spacing: 0.06em;
  padding-bottom: 0.667vw;             /* 8 @1200 */
  border-bottom: 1px solid #0091dd;
  width: fit-content;
}
.training-compare__col--left .training-compare__head { color: #0091dd; }
.training-compare__col--right .training-compare__head {
  color: #ffffff;
  border-bottom-color: #ffffff;
}
.training-compare__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.75vw;                         /* 9 @1200 */
}
.training-compare__list li {
  position: relative;
  padding-left: 1.5vw;                 /* 18 @1200 */
  font-family: "Noto Sans JP", sans-serif;
  font-size: max(12px, 1.083vw);       /* 13 @1200 / 最低12 */
  line-height: 1.5;
  letter-spacing: 0.04em;
}
.training-compare__col--left .training-compare__list li { color: #0091dd; }
.training-compare__col--right .training-compare__list li { color: #ffffff; }
.training-compare__list li::before {
  content: "●";
  position: absolute;
  left: 0;
  top: 0;
  font-size: 11px;
}
.training-compare__col--left .training-compare__list li::before { color: #1399e0; }
.training-compare__col--right .training-compare__list li::before { color: #ffffff; }
/* LEFT box から RIGHT box へ突き出す三角矢印 (23×66 #D5E9F4 SVG) */
.training-compare__arrow {
  position: absolute;
  top: 50%;
  left: 28.083vw;                      /* 337 @1200 */
  transform: translateY(-50%);
  width: 1.917vw;                      /* 23 @1200 */
  height: 5.5vw;                       /* 66 @1200 */
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='23' height='66' viewBox='0 0 23 66' fill='none'><path d='M22.5 32.9089L-6.91423e-06 65.8179L-4.03723e-06 -3.15011e-05L22.5 32.9089Z' fill='%23D5E9F4'/></svg>") no-repeat center / 23px 66px;
  z-index: 2;
  pointer-events: none;
}

/* 過去の研修例 タグ + 横一覧 */
.training-tag-row {
  position: relative;
  z-index: 2;
  margin: 3vw auto 0;                  /* 36 @1200 */
  max-width: 60.667vw;                 /* 728 @1200 */
  display: flex;
  align-items: center;
  gap: 1.167vw;                        /* 14 @1200 */
  padding: 0 2vw;                      /* 24 @1200 */
}
.training-tag-row__text {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-size: max(13px, 1.167vw);       /* 14 @1200 / 最低13 */
  letter-spacing: 0.06em;
  color: #0091dd;
}

/* ==========================
   サブ研修 (画像+テキスト 横並び)
   ========================== */
.training-sub {
  position: relative;
  z-index: 2;
  list-style: none;
  margin: 3vw auto 0;                  /* 36 @1200 */
  padding: 0 2vw;                      /* 24 @1200 */
  max-width: 66.667vw;                 /* 800 @1200 */
  display: grid;
  gap: 0;
}
.training-sub__item {
  display: grid;
  grid-template-columns: 17vw 1fr;     /* 204 @1200 */
  gap: 0 1.667vw;                      /* 20 @1200 */
  align-items: center;
  padding: 2vw 0;                      /* 24 @1200 */
  border-top: 1px solid #0091dd;
}
.training-sub__item:first-child {
  border-top: none;
}
.training-sub__item:last-child {
  border-bottom: none;
}
.training-sub__photo {
  width: 17vw;                         /* 204 @1200 */
  height: 9.417vw;                     /* 113 @1200 */
  overflow: hidden;
}
.training-sub__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.training-sub__title {
  margin: 0 0 0.667vw;                 /* 8 @1200 */
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: max(13px, 1.25vw);        /* 15 @1200 / 最低13 */
  letter-spacing: 0.06em;
  color: #155c99;
}
.training-sub__desc {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-size: max(13px, 1.167vw);       /* 14 @1200 (13→14底上げ) / 最低13 */
  line-height: 1.7;
  letter-spacing: 0.04em;
  color: #245681;
}

/* ==========================
   VOICE block
   ========================== */
.training-voice {
  position: relative;
  z-index: 2;
  margin: 6vw auto 0;                  /* 72 @1200 */
  padding: 1.833vw 2.417vw 2.833vw;    /* 22 / 29 / 34 @1200 */
  width: 62.083vw;                     /* 745 @1200 */
  max-width: 100%;
  background: #d6ecf8;
  border-radius: 10px;
}
.training-voice__head {
  text-align: center;
  margin: 0 0 1.583vw;                 /* 19 @1200 */
}
/* VOICE EN: training-voice 上端から上半分はみ出す (parent=.training-voice 基準) */
.training-voice__en {
  position: absolute;
  top: -1.5vw;                         /* -18 @1200 */
  left: 50%;
  transform: translateX(-50%);
  margin: 0;
  font-family: "Poppins", sans-serif;
  font-weight: 500;                        /* Medium */
  font-size: max(24px, 3vw);           /* 36 @1200 / 最低24 */
  letter-spacing: 0.04em;
  color: #1399e0;
  line-height: 1;
  padding: 0 1vw;                      /* 12 @1200 */
  white-space: nowrap;
}
.training-voice__jp {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: max(13px, 1.25vw);        /* 15 @1200 / 最低13 */
  letter-spacing: 0.08em;
  color: #155c99;
}
.training-voice__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;          /* gap43 が収まらないときも自動で広げる */
  gap: 1.167vw 3.583vw;                /* 14 / 43 @1200 */
}
.training-voice__grid--4 .training-voice__card { flex: 0 0 26.833vw; } /* 322 */
.training-voice__card {
  background: #ffffff;
  padding: 1.5vw 1.5vw 1.5vw 6.333vw;  /* 18 / 76 @1200 */
  position: relative;
  font-family: "Noto Sans JP", sans-serif;
  font-size: max(13px, 1.167vw);       /* 14 @1200 (13→14底上げ) / 最低13 */
  line-height: 1.7;
  letter-spacing: 0.04em;
  color: #1a1a1a;
  min-height: 7.667vw;                 /* 92 @1200 */
  border-radius: 10px;
  width: 26.833vw;                     /* 322 @1200 */
}
/* 単独配置時はパネル内幅を全て使う */
.training-voice__card--wide {
  flex: 1 1 100% !important;
  width: 100% !important;
}
.training-voice__icon {
  position: absolute;
  top: 1.5vw;                          /* 18 @1200 */
  left: 1.167vw;                       /* 14 @1200 */
  width: 4.333vw;                      /* 52 @1200 */
  height: 4.333vw;
}
.training-voice__text {
  margin: 0;
  color: #245681;
}
.training-voice__card--wide {
  padding: 2vw 2vw 2vw 7.333vw;        /* 24 / 88 @1200 */
}

/* ==========================
   年次フォロー研修ステップ (training-step)
   ========================== */
.training-step {
  position: relative;
  z-index: 2;
  margin: 4vw auto 0;                  /* 48 @1200 */
  max-width: 61.667vw;                 /* 740 @1200 */
  padding: 0 2vw;                      /* 24 @1200 */
}
.training-step__heading {
  background: #1399e0;
  color: #ffffff;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: max(13px, 1.25vw);        /* 15 @1200 / 最低13 */
  letter-spacing: 0.08em;
  text-align: center;
  padding: 1.167vw 0;                  /* 14 @1200 */
}
.training-step__row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  margin-top: 0.833vw;                 /* 10 @1200 */
}
.training-step__year {
  background: #b8d6ea;
  color: #155c99;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: max(12px, 1.167vw);       /* 14 @1200 / 最低12 */
  letter-spacing: 0.06em;
  text-align: center;
  padding: 0.833vw 0;                  /* 10 @1200 */
  position: relative;
}
/* 1年次 (左): 左端は直角、右端だけ矢印, 全て白文字 */
.training-step__year { color: #ffffff; }
.training-step__year:nth-child(1) {
  background: #9FDEFF;
  clip-path: polygon(0 0, 100% 0, calc(100% + 18px) 50%, 100% 100%, 0 100%);
  margin-right: -18px;
  z-index: 1;
}
/* 2年次 (中央): 左に凹みあり、右に矢印 */
.training-step__year:nth-child(2) {
  background: #54C4FF;
  clip-path: polygon(0 0, 100% 0, calc(100% + 18px) 50%, 100% 100%, 0 100%, 18px 50%);
  margin-right: -18px;
  z-index: 2;
}
/* 3年次 (右): 左に凹みあり、右端は直角 */
.training-step__year:nth-child(3) {
  background: #19B0FF;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 18px 50%);
  z-index: 3;
}
.training-step__cols {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  margin-top: 1.833vw;                 /* 22 @1200 */
}
.training-step__col {
  text-align: center;
  padding: 0 1.333vw;                  /* 16 @1200 */
  position: relative;
}
.training-step__col + .training-step__col {
  border-left: 1px solid #0091dd;
}
.training-step__title {
  margin: 0 0 0.833vw;                 /* 10 @1200 */
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: max(13px, 1.167vw);       /* 14 @1200 / 最低13 */
  line-height: 1.5;
  letter-spacing: 0.06em;
  color: #0091dd;
}
.training-step__desc {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-size: max(11px, 1vw);           /* 12 @1200 / 最低11 */
  line-height: 1.7;
  letter-spacing: 0.04em;
  color: #1a1a1a;
}
.training-step__mentor-tag {
  margin-top: 1.833vw;                 /* 22 @1200 */
  display: inline-flex;
}
.training-step__mentor-text {
  margin: 28px auto 0;
  max-width: 560px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 13px;
  line-height: 1.8;
  letter-spacing: 0.04em;
  color: #1a1a1a;
  text-align: center;
}

/* ==========================
   その他人財育成 - 階段状フロー
   ========================== */
.training-flow {
  position: relative;
  z-index: 2;
  margin: 5.417vw auto 0;              /* 65 @1200 */
  width: 51.667vw;                     /* 620 @1200 */
  max-width: 100%;
  padding: 0;
}
.training-flow img {
  display: block;
  width: 100%;
  height: auto;
}

/* ==========================
   詳細リスト (training-list)
   ========================== */
.training-list {
  position: relative;
  z-index: 2;
  margin: 3vw auto 0;                  /* 36 @1200 */
  width: 52.167vw;                     /* 626 @1200 */
  max-width: 100%;
  padding: 0;
  display: grid;
  gap: 1.5vw;                          /* 18 @1200 */
}
.training-list__group {
  position: relative;
  padding-left: 1.333vw;               /* 16 @1200 */
  border-left: 4px solid #1399e0;
}
.training-list__head {
  margin: 0 0 0.667vw;                 /* 8 @1200 */
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: max(13px, 1.25vw);        /* 15 @1200 / 最低13 */
  letter-spacing: 0.06em;
  color: #155c99;
}
.training-list__text {
  margin: 0 0 1.167vw;                 /* 14 @1200 */
  font-family: "Noto Sans JP", sans-serif;
  font-size: max(13px, 1.167vw);       /* 14 @1200 (13→14底上げ) / 最低13 */
  line-height: 1.8;
  letter-spacing: 0.04em;
  color: #1a1a1a;
}
.training-list__sub {
  position: relative;
  margin: 0.833vw 0 0 0.833vw;         /* 10 @1200 */
  padding-left: 1.333vw;               /* 16 @1200 */
  border-left: 3px solid #b8d6ea;
}
.training-list__sub-title {
  margin: 0 0 0.5vw;                   /* 6 @1200 */
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: max(13px, 1.167vw);       /* 14 @1200 / 最低13 */
  letter-spacing: 0.06em;
  color: #155c99;
}
.training-list__sub-text {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-size: max(11px, 1vw);           /* 12 @1200 / 最低11 */
  line-height: 1.7;
  letter-spacing: 0.04em;
  color: #1a1a1a;
}

/* ==========================
   キャリアパス表 (career-table)
   - Figma: label(148) | G(247) | gap(41) | Rn(247) | Rb(247)
   ========================== */
.career-table {
  --col-label: 11.667vw;               /* 140 @1200 */
  --col: 20.583vw;                     /* 247 @1200 */
  --gap-gr: 3.167vw;                   /* 38 @1200 */
  position: relative;
  z-index: 2;
  margin: 3vw auto 0;                  /* 36 @1200 */
  width: 76.583vw;                     /* 919 @1200 */
  max-width: calc(100% - 4vw);         /* 48 @1200 */
  padding: 0;
  box-sizing: border-box;
}
/* ヘッダー: GとRの間に gap 41px */
.career-table__head {
  display: grid;
  grid-template-columns: var(--col-label) var(--col) var(--gap-gr) var(--col) var(--col);
  align-items: end;
  gap: 0;
}
.career-table__head-cell {
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: max(13px, 1.25vw);        /* 15 @1200 / 最低13 */
  letter-spacing: 0.08em;
  color: #ffffff;
}
/* Gコース: 単独セル h=68 */
.career-table__head-cell--g {
  grid-column: 2 / 3;
  background: #1399e0;
  height: 5.667vw;                     /* 68 @1200 */
}
/* 右側 (Rコース親 + 子) は grid-column 4 / 6 */
.career-table__head-right {
  grid-column: 4 / 6;
  display: flex;
  flex-direction: column;
}
.career-table__head-cell--top {
  background: #1399e0;
  height: 2.833vw;                     /* 34 @1200 */
}
.career-table__head-sub {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
/* 広域エリア / 地域限定: 薄水色 bg + 濃青テキスト */
.career-table__head-cell--sub {
  background: #d5e9f4;
  color: #0091dd;
  height: 2.833vw;                     /* 34 @1200 */
  font-size: max(12px, 1.167vw);       /* 14 @1200 / 最低12 */
  border-right: 1px solid #ffffff;
}
.career-table__head-cell--sub:last-child { border-right: none; }

/* 行共通: 5カラム grid (label/G/gap/Rn/Rb) */
.career-table__row {
  display: grid;
  grid-template-columns: var(--col-label) var(--col) var(--gap-gr) var(--col) var(--col);
  align-items: center;
  padding: 2.083vw 0;                  /* 25 @1200 */
  border-bottom: 1px solid #0091dd;
}
.career-table__row:last-child {
  border-bottom: 1px solid #0091dd;
}
.career-table__label {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: max(13px, 1.25vw);        /* 15 @1200 / 最低13 */
  letter-spacing: 0.06em;
  color: #0091dd;
  padding-right: 1.333vw;              /* 16 @1200 */
}
.career-table__cell {
  padding: 0 1.5vw;                    /* 18 @1200 */
}
.career-table__cell--g { grid-column: 2 / 3; padding: 0; }
.career-table__cell--r { grid-column: 4 / 6; }
.career-table__cell--rn { grid-column: 4 / 5; }
.career-table__cell--rb { grid-column: 5 / 6; }
.career-table__cell ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1vw;                            /* 12 @1200 */
}
.career-table__cell ul li {
  position: relative;
  padding-left: 1.5vw;                 /* 18 @1200 */
  font-family: "Noto Sans JP", sans-serif;
  font-size: max(13px, 1.167vw);       /* 14 @1200 (13→14底上げ) / 最低13 */
  font-weight: 700;
  line-height: 1.286;                  /* 18/14 ≒ 1.29 */
  letter-spacing: 0.04em;
  color: #155c99;
}
.career-table__cell ul li::before {
  content: "●";
  position: absolute;
  left: 0;
  top: 1px;
  color: #1399e0;
  font-size: max(10px, 0.917vw);       /* 11 @1200 / 最低10 */
}
.career-table__center {
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Noto Sans JP", sans-serif;
  font-size: max(12px, 1.167vw);       /* 14 @1200 / 最低12 */
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #155c99;
  text-align: center;
  padding: 0 1.5vw;                    /* 18 @1200 */
}
.career-icon {
  display: inline-block;
  width: 3.167vw;                      /* 38 @1200 */
  height: 3.167vw;
  position: relative;
}
.career-icon--circle {
  border: 2px solid #1399e0;
  border-radius: 50%;
}
.career-icon--x::before,
.career-icon--x::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 2px;
  background: #1399e0;
  transform-origin: center;
}
.career-icon--x::before { transform: translateY(-50%) rotate(45deg); }
.career-icon--x::after  { transform: translateY(-50%) rotate(-45deg); }

.career-footer {
  margin: 32px 0 0;
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 18px;
  letter-spacing: 0.08em;
  color: #1399e0;
  position: relative;
  z-index: 2;
}

/* ============ Tablet/SP レスポンシブ ============ */
@media (max-width: 1199px) {
  .env-block__grid {
    padding: 0 24px;
    max-width: 100%;
  }
  .env-block__grid--4 {
    grid-template-columns: repeat(2, minmax(140px, 1fr));
    gap: 32px 24px;
    justify-content: center;
    max-width: 600px;
  }
  .env-block__grid--2 {
    grid-template-columns: repeat(2, minmax(280px, 1fr));
    gap: 24px;
    max-width: 700px;
  }
  .env-circle__ring {
    width: 150px;
    height: 150px;
  }
  .env-circle__inner {
    width: 140px;
    height: 140px;
  }
}

@media (max-width: 767px) {
  .env-block__grid {
    padding: 0 16px;
  }
  .env-block__grid--4,
  .env-block__grid--2 {
    grid-template-columns: repeat(2, 1fr);
    gap: 28px 12px;
  }
  .env-circle__ring { width: 110px; height: 110px; }
  .env-circle__inner { width: 100px; height: 100px; }
  .env-circle__icon { width: 50px; height: 50px; }
  .env-circle__title { font-size: 13px; line-height: 1.4; }
  .env-circle__desc { font-size: 11px; line-height: 1.6; width: auto !important; }
  .env-circle__badge { font-size: 11px; }
}

/* ============ training-career タブレット/SP ============ */
@media (max-width: 1199px) {
  .training-overview { padding-bottom: 60px; }
  .training-overview__inner {
    grid-template-columns: minmax(0, 1fr);
    margin-top: 0;
    padding: 0 24px;
    gap: 32px;
    overflow: hidden;
  }
  .training-overview__right { max-width: 100%; min-width: 0; }
  .training-overview__diagram { max-width: 100%; }
  .training-overview__text { margin-top: 24px; }
  .training-overview__notes {
    flex-direction: column;
    gap: 16px;
    align-items: flex-start;
  }
  /* notes が column のとき flex-basis が高さに化けるのを解除 */
  .training-overview__tag-row {
    flex: 0 0 auto;
    width: auto;
    height: auto;
  }
  .training-overview__tag-row { justify-content: center; }
  .training-section__inner {
    padding: 0 24px;
    max-width: 100%;
  }
  .training-section__top,
  .training-section__cols,
  .training-section__grid {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
}

@media (max-width: 767px) {
  /* env-lead 左右に余白 */
  .env-lead { padding: 32px 16px; }
  .env-lead__text { font-size: 13px; line-height: 1.9; max-width: 100%; margin: 0 16px; }
  .env-lead__text br { display: none; }

  .training-overview__inner { padding: 0 16px; }
  .training-overview__text { font-size: 12px; }
  /* 教育プログラム概要のbullets左右余白 + SPでは改行許可 */
  .training-overview__list { padding: 0 16px; }
  .training-overview__list li { white-space: normal; font-size: 12px; }
  .training-overview__notes { padding: 0 16px; }
  .training-section__inner { padding: 0 16px; }
  .training-section__tab > span { font-size: 14px; }
  .training-section { padding: 40px 0; }
  .training-section + .training-section { padding-top: 40px; }
}

/* ============ training-career 全体的 SP/タブレット最終対応 ============ */
@media (max-width: 1199px) {
  /* 写真+リード横並び→縦並び */
  .training-section__top {
    grid-template-columns: 1fr !important;
    padding: 0 24px;
    gap: 24px;
  }
  .training-section__lead { padding: 24px 0 0 0; max-width: 100%; min-width: 0; overflow-wrap: break-word; }
  .training-section__lead p { max-width: 100%; word-break: normal; }
  .training-section__photo { width: 100%; height: auto; aspect-ratio: 619/322; }
  /* white panel 下余白 */
  .training-section__inner { padding-bottom: 40px; }
  /* 比較ボックス: タブレットでは横並び維持 (PC 同様)、サイズだけ調整 */
  .training-compare {
    width: auto;
    max-width: calc(100% - 48px);
    margin: 40px auto;
    height: auto;
  }
  .training-compare__col {
    height: auto;
    padding: 20px 24px;
  }
  /* accent bars 解除 */
  .training-section__accent-bar,
  .training-section__accent-vert,
  .training-section__accent-vert--2 { display: none; }
  /* 各種カラム */
  .training-grid,
  .training-cols,
  .training-pair,
  .training-program,
  .training-three {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 0 24px;
  }
}

@media (max-width: 767px) {
  .training-section__top { padding: 0 16px; }
  .training-section__lead { font-size: 12px; }
  /* SP のみ training-compare を縦並び */
  .training-compare {
    max-width: calc(100% - 32px);
    flex-direction: column;
    padding: 0;
  }
  .training-compare__col {
    width: 100% !important;
    padding: 16px;
    margin: 0 !important;
  }
  /* 矢印を縦並び時に90度回転 */
  .training-compare__arrow {
    transform: rotate(90deg);
    top: 83px;
    left: auto;
    right: 30px;
    margin: 0 !important;
  }
  .training-compare__head { font-size: 14px; }
  .training-compare__list li { font-size: 12px; padding-left: 16px; }
  .training-compare__list li::before { font-size: 10px; }
}

/* ============ training-section tab/inner SP 修正 ============ */
@media (max-width: 1199px) {
  /* 白パネル領域を画面幅に */
  .training-section__inner::before {
    top: 0;
    left: 24px;
    right: 24px;
  }
  /* タブを画面端からはみ出さないように */
  .training-section__tab {
    top: -32px;
    min-width: auto;
    width: auto;
    max-width: calc(100% - 48px);
    padding: 0 16px 0 24px;
    font-size: 14px;
  }
}

@media (max-width: 767px) {
  .training-section__inner::before {
    left: 12px;
    right: 12px;
  }
  .training-section__tab {
    max-width: calc(100% - 24px);
    padding: 0 12px;
    height: 44px;
    font-size: 12px;
  }
  .training-section__top {
    padding: 0 16px;
  }
  .training-section__lead {
    padding-top: 0;
    margin-top: 16px;
  }
  /* 全体の上下余白 */
  .training-section {
    padding: 20px 0;
  }
  /* ENVIRONMENT ページのみ SP の intern-hero__panel を全幅に */
  body[data-page="environment"] .intern-hero__panel { width: 100%; }
  /* SP: training-flow / training-list を左右に少し余白を */
  .training-flow {
    max-width: calc(100% - 32px);
    margin-left: auto;
    margin-right: auto;
  }
  .training-list {
    max-width: calc(100% - 32px);
    margin-left: auto;
    margin-right: auto;
  }
  .training-list__group { padding-left: 10px; }
  .training-list__sub { padding-left: 10px; margin-left: 4px; }
}

/* training-section__tab 表示確実化 (アニメーションに依存しない) */
.training-section__tab::before {
  transform: scaleX(1) !important;
}
.training-section__tab > span {
  opacity: 1 !important;
}

/* SP: tab を absolute から static に変更し、lead と被らせない */
@media (max-width: 767px) {
  .training-section__tab {
    position: relative;
    top: auto;
    left: auto;
    margin-left: 0;
    margin-bottom: 16px;
    z-index: 3;
  }
  .training-section__top {
    padding: 0 16px;
    margin-top: 0;
  }
  .training-section__lead {
    padding: 0;
    margin: 0;
  }
  .training-section__inner::before {
    top: 0;
  }
  .training-section__inner {
    padding-top: 32px;
  }
}

/* env-circle flex-basis fix for SP/tablet */
@media (max-width: 1199px) {
  .env-circle__ring {
    flex: 0 0 auto !important;
    aspect-ratio: 1 / 1;
    width: 150px;
    height: 150px;
  }
  .env-circle__inner {
    aspect-ratio: 1 / 1;
    width: 140px;
    height: 140px;
  }
}

@media (max-width: 767px) {
  .env-circle__ring {
    width: 110px !important;
    height: 110px !important;
  }
  .env-circle__inner {
    width: 100px !important;
    height: 100px !important;
  }
}

/* wide-title (退職金… 等) SP/タブレット: vw 解除 + nowrap 解除 */
@media (max-width: 1199px) {
  .env-circle--wide-title .env-circle__title {
    width: auto;
    max-width: 100%;
    white-space: normal;
  }
}

/* training-tag-row SP: タグと文字列を縦並び */
@media (max-width: 767px) {
  .training-tag-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    padding: 0 16px;
  }
  .training-tag-row__text {
    font-size: 12px;
    line-height: 1.7;
  }
}

/* training-* vw化解除 (タブレット/SP) */
@media (max-width: 1199px) {
  /* overview: vw幅解除して縦並び対応 */
  .training-overview { padding: 0 0 56px; }
  .training-overview__top { max-width: 100%; padding: 23px 24px 0; }
  /* tab を線の上に半分はみ出す: margin-top = -tab.height/2 */
  .training-overview__tab { min-width: 240px; height: 44px; font-size: 14px; margin-top: -22px; }
  /* topline を tab の中心 (padding-top + tab.height/2 - 22 = 23) に揃え、 line 自身も transform で中央化 */
  .training-overview__topline {
    top: 23px;
    left: 24px;
    right: 24px;
    transform: translateY(-50%);
  }
  .training-overview__inner {
    max-width: 100%;
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 0 24px;
    margin-top: 32px;
  }
  .training-overview__text { margin: 0; max-width: 100%; font-size: 14px; }
  .training-overview__notes { gap: 16px; flex-wrap: wrap; }
  .training-overview__tag-row { flex: 0 0 auto; width: auto; }
  /* outline タグ: vw幅解除して文字に合わせる */
  .training-overview__tag-row .training-tag--outline {
    width: auto;
    min-width: 72px;
    padding: 0 12px;
  }
  /* list: ●と文字の被り解消 + 折返し許可 */
  .training-overview__list li {
    white-space: normal;
    padding-left: 18px;
    font-size: 13px;
  }
  .training-overview__list li::before {
    font-size: 11px;
  }

  /* voice: vw幅解除 */
  .training-voice {
    width: auto;
    max-width: calc(100% - 32px);
    margin: 60px auto 0;
    padding: 24px;
  }
  .training-voice__en { font-size: 28px; top: -16px; }
  .training-voice__grid { gap: 14px; }
  .training-voice__card,
  .training-voice__grid--4 .training-voice__card {
    flex: 1 1 280px;
    width: 100%;
    min-height: 90px;
    padding: 18px 18px 18px 76px;
    font-size: 13px;
  }
  .training-voice__icon { width: 44px; height: 44px; top: 18px; left: 14px; }
  .training-voice__card--wide { padding: 24px 24px 24px 80px; }

  /* step: vw幅解除 (padding は 0 で margin で左右余白を取る) */
  .training-step { max-width: 100%; padding: 0 16px; margin: 40px auto 0; }
  /* sub: vw幅解除 */
  .training-sub { max-width: 100%; padding: 0 16px; margin: 32px auto 0; }
  /* tag-row: vw幅解除 */
  .training-tag-row { max-width: 100%; padding: 0 16px; margin: 32px auto 0; }
  .training-step__heading { font-size: 14px; padding: 12px 0; }
  .training-step__year { font-size: 13px; padding: 8px 0; }
  .training-step__title { font-size: 13px; }
  .training-step__desc { font-size: 12px; }

  /* flow: vw幅解除 */
  .training-flow { width: auto; max-width: calc(100% - 32px); margin: 48px auto 0; }

  /* list: vw幅解除 */
  .training-list { width: auto; max-width: calc(100% - 32px); margin: 32px auto 0; }
  .training-list__head { font-size: 14px; }
  .training-list__text { font-size: 13px; }
  .training-list__sub-title { font-size: 13px; }
  .training-list__sub-text { font-size: 12px; }

  /* career-table: vw値解除 */
  .career-table {
    width: 100%;
    max-width: calc(100% - 32px);
    --col-label: 100px;
    --col: 1fr;
    --gap-gr: 16px;
  }
  .career-table__head-cell { font-size: 13px; }
  .career-table__head-cell--g { height: 52px; }
  .career-table__head-cell--top { height: 28px; }
  .career-table__head-cell--sub { height: 28px; font-size: 12px; }
  .career-table__row { padding: 16px 0; }
  .career-table__label { font-size: 13px; padding-right: 8px; }
  .career-table__cell { padding: 0 8px; }
  .career-table__cell ul li { font-size: 12px; line-height: 1.4; }
  .career-table__center { font-size: 12px; }
  .career-icon { width: 28px; height: 28px; }
}

/* training-sub SP: 画像→上、テキスト→下に縦並びへ */
@media (max-width: 767px) {
  .training-sub {
    padding: 0 16px;
    gap: 0;
  }
  .training-sub__item {
    grid-template-columns: 1fr !important;
    gap: 12px;
    padding: 20px 0;
  }
  .training-sub__photo {
    width: 100%;
    height: auto;
    aspect-ratio: 204 / 113;
  }
  .training-sub__title {
    font-size: 14px;
    margin: 0 0 6px;
  }
  .training-sub__desc {
    font-size: 12px;
    line-height: 1.7;
  }
}

/* training-voice タブレット/SP */
@media (max-width: 1199px) {
  /* PC 745px 固定を解除して画面に少し空きを残す */
  .training-voice {
    width: auto;
    max-width: calc(100% - 48px);
  }
  /* 1行に並ぶケースで中央寄せ */
  .training-voice__grid--4 { justify-content: center; }
}
@media (max-width: 767px) {
  .training-voice {
    max-width: calc(100% - 24px);
    padding: 18px 12px 26px;
  }
  .training-voice__card {
    padding: 16px 20px 16px 72px;
    font-size: 12px;
    min-height: auto;
    width: 100%;
  }
  .training-voice__grid--4 .training-voice__card { flex: 1 1 100%; }
  .training-voice__en { font-size: 28px; top: -14px; }
  .training-voice__jp { font-size: 13px; }
}

/* training-step SP: メンター制度タグ・年次ステップ調整 */
@media (max-width: 767px) {
  .training-step {
    padding: 0 16px;
  }
  .training-step__heading { font-size: 13px; padding: 12px 0; }
  .training-step__year { font-size: 12px; padding: 8px 0; }
  .training-step__title { font-size: 13px; }
  .training-step__desc { font-size: 11px; line-height: 1.65; }
  .training-step__col { padding: 0 8px; }
  .training-step__mentor-tag {
    font-size: 11px;
    padding: 4px 8px;
    white-space: nowrap;
  }
  .training-step__mentor-text { font-size: 12px; padding: 0 4px; }
}

/* career-table SP/タブレット: 横スクロール対応 */
@media (max-width: 1199px) {
  .career-table {
    --col-label: 100px;
    --col: 160px;
    --gap-gr: 16px;
    width: auto;
    max-width: 100%;
    margin: 36px 0 0;
    padding: 0 16px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .career-table__head,
  .career-table__row {
    min-width: 700px;
  }
}

@media (max-width: 767px) {
  .career-table {
    --col-label: 88px;
    --col: 140px;
    --gap-gr: 12px;
    padding: 0 12px;
  }
  .career-table__head,
  .career-table__row {
    min-width: 580px;
  }
  .career-table__head-cell { font-size: 12px; }
  .career-table__head-cell--sub { font-size: 11px; }
  .career-table__label { font-size: 12px; padding-right: 8px; }
  .career-table__cell ul li { font-size: 11px; padding-left: 14px; }
  .career-table__center { font-size: 11px; padding: 0 8px; }
}
