@charset "UTF-8";
/* ============================================================
   AOCの人材育成（/growth-system/）新規ページ
   白背景ベース。KV・sechead・本文は /service/（style_service.scss）と同型
   ※ common.css のリセットが要素セレクタで color:#fff を直指定しているため、
     白背景のこのページでは文字色をクラス付きセレクタで明示指定する
   ============================================================ */
.gsys {
  background-color: #ffffff;
}
@media (max-width: 768px) {
  .gsys {
    padding: 100px 0 0;
  }
}

/* ---- KV（静止画の通常セクション。PC黒文字・SP白文字） ---- */
.gsys-kv {
  position: relative;
  height: clamp(420px, 44vw, 900px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 20px;
  overflow: hidden;
  background: url("../../img-growth-system/kv.webp") center center/cover no-repeat;
}
@media (max-width: 768px) {
  .gsys-kv {
    height: clamp(220px, 60vw, 480px);
    background-image: url("../../img-growth-system/kv-sp.webp");
  }
}
.gsys-kv__copy {
  position: relative;
  z-index: 1;
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  text-align: center;
}
.gsys-kv__en {
  font-family: gotham, sans-serif;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.2;
  font-size: clamp(24px, 17.2444444444px + 0.0177777778 * 100vw, 40px);
  color: #000;
}
@media (max-width: 768px) {
  .gsys-kv__en {
    color: #fff;
    letter-spacing: 0;
  }
}
.gsys-kv__ja {
  font-family: gotham, "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-size: clamp(14px, 12.3111111111px + 0.0044444444 * 100vw, 18px);
  font-weight: 600;
  color: #000;
}
@media (max-width: 768px) {
  .gsys-kv__ja {
    color: #fff;
  }
}

html.js-reveal .js-fade-in {
  opacity: 0;
}

/* ---- 共通：セクションラベル（GROWTH SYSTEM 01 など小さめ英字） ---- */
.gsys__label {
  display: block;
  font-size: clamp(12px, 10.3111111111px + 0.0044444444 * 100vw, 16px);
  font-weight: 500;
  letter-spacing: 0.08em;
  font-family: gotham, sans-serif;
  color: #000000;
}

/* ---- 共通：セクション頭（濃色マーク＋見出し＋英字ラベル） ---- */
.gsys-sechead {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(10px, 2vw, 15px);
  text-align: center;
  padding: 0 20px;
}
.gsys-sechead .aoc-mark {
  display: block;
  width: clamp(36px, 4.5vw, 60px);
  height: auto;
}
.gsys-sechead__title {
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.1em;
  margin: 0;
  font-size: clamp(23px, 19.2px + 0.01 * 100vw, 32px);
  color: #000000;
}
@media (max-width: 640px) {
  .gsys-sechead__title {
    word-break: auto-phrase;
  }
}
.gsys-sechead__title.txt-ll {
  font-size: clamp(23px, 13.7111111111px + 0.0244444444 * 100vw, 45px);
}

/* ---- 共通：センター寄せ本文 ---- */
.gsys-body {
  width: 90%;
  max-width: 1000px;
  margin: 0 auto;
  text-align: center;
  font-size: clamp(14px, 13.1555555556px + 0.0022222222 * 100vw, 16px);
  line-height: 2.4;
  letter-spacing: 0.12em;
  color: #000000;
}

/* ---- セクション共通枠（白背景） ---- */
.gsys-sec {
  padding: clamp(110px, 15vw, 190px) 0;
  background-color: #ffffff;
}
.gsys-sec__lead {
  margin-top: clamp(40px, 5vw, 64px);
}
.gsys-sec--flush {
  padding-bottom: 0;
}

/* ---- 01 キャリアサポート：3制度ブロック
   グレー帯(#ebebeb)／白／グレー帯の交互（PC・SP共通）
   ※ XDのSP版は3ブロックひと続きのグレー1枚だが、PCとの整合からSPも交互に統一 ---- */
.gsys-stripes {
  margin-top: clamp(60px, 7vw, 90px);
}
@media (max-width: 768px) {
  .gsys-stripes {
    margin-top: clamp(32px, 10vw, 48px);
  }
}

.gsys-block {
  padding: clamp(50px, 12vw, 120px) 0;
}
.gsys-block--gray {
  background-color: #ebebeb;
  padding: clamp(50px, 8vw, 70px) 0;
}
.gsys-block__inner {
  max-width: 1280px;
  width: 90%;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(50px, 10vw, 90px);
}
@media (max-width: 768px) {
  .gsys-block__inner {
    flex-direction: column;
    gap: clamp(30px, 10vw, 90px);
  }
}
.gsys-block__text {
  flex: 0 1 543px;
}
@media (max-width: 768px) {
  .gsys-block__text {
    flex: none;
    width: 100%;
    max-width: 543px;
    margin: 0 auto;
  }
}
.gsys-block__title {
  margin: 0;
  font-size: clamp(21px, 18.0444444444px + 0.0077777778 * 100vw, 28px);
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.08em;
  color: #000000;
}
@media (max-width: 768px) {
  .gsys-block__title {
    text-align: center;
    word-break: auto-phrase;
  }
}
.gsys-block__body {
  margin: clamp(12px, 1.5vw, 18px) 0 0;
  font-size: clamp(14px, 13.1555555556px + 0.0022222222 * 100vw, 16px);
  line-height: 2;
  letter-spacing: 0.08em;
  color: #000000;
  text-align: justify;
}
.gsys-block__fig {
  margin: 0;
  flex: 0 1 auto;
}
.gsys-block__fig img {
  display: block;
  width: 100%;
  height: auto;
}
.gsys-block__fig--path {
  width: min(100%, 523px);
}
@media (max-width: 768px) {
  .gsys-block__fig--path {
    width: min(100%, 298px);
  }
}
.gsys-block__fig--support {
  width: min(100%, 584px);
}
@media (max-width: 768px) {
  .gsys-block__fig--support {
    width: min(100%, 335px);
  }
}
.gsys-block__fig--grade {
  width: min(100%, 618px);
}
@media (max-width: 768px) {
  .gsys-block__fig--grade {
    width: min(100%, 298px);
  }
}

/* ---- 02 教育研修：3研修の行（グレー帯／白／グレー帯の交互。PC・SP共通）
   カードは白地＋1px枠＋テキストのみ（アイコンなし。枠線はPC#000/SP#727272） ---- */
.gsys-training {
  margin-top: clamp(60px, 7vw, 90px);
}
@media (max-width: 768px) {
  .gsys-training {
    margin-top: clamp(32px, 10vw, 48px);
  }
}

.gsys-tr {
  position: relative;
  padding: clamp(50px, 8vw, 70px) 0;
  overflow: hidden;
}
.gsys-tr--gray {
  background-color: #ebebeb;
}
.gsys-tr__mark {
  position: absolute;
  z-index: -1;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: clamp(120px, 11vw, 190px);
  opacity: 0.08;
}
.gsys-tr__mark svg {
  display: block;
  width: 100%;
  height: auto;
}
.gsys-tr__mark path {
  fill: #000000;
}
@media (max-width: 768px) {
  .gsys-tr__mark {
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 170px;
  }
}
.gsys-tr--gray .gsys-tr__mark {
  opacity: 1;
}
.gsys-tr--gray .gsys-tr__mark path {
  fill: #ffffff;
}
.gsys-tr__inner {
  position: relative;
  z-index: 1;
  max-width: 1280px;
  width: 90%;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(30px, 4vw, 60px);
}
@media (max-width: 768px) {
  .gsys-tr__inner {
    flex-direction: column;
    gap: clamp(24px, 7vw, 32px);
  }
}
.gsys-tr__text {
  flex: 0 1 520px;
  padding-left: clamp(60px, 5.5vw, 95px);
}
@media (max-width: 768px) {
  .gsys-tr__text {
    flex: none;
    width: 100%;
    padding-left: 0;
    text-align: center;
    min-height: 175px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
}
.gsys-tr__title {
  margin: 0;
  font-size: clamp(20px, 16.6222222222px + 0.0088888889 * 100vw, 28px);
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.08em;
  color: #000000;
}
.gsys-tr__body {
  margin: clamp(8px, 1vw, 14px) 0 0;
  font-size: clamp(14px, 13.1555555556px + 0.0022222222 * 100vw, 16px);
  line-height: 2;
  letter-spacing: 0.08em;
  color: #000000;
}
.gsys-tr__cards {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 12px;
}
@media (max-width: 768px) {
  .gsys-tr__cards {
    justify-content: center;
    gap: 5px;
  }
}
.gsys-tr__cards--duty {
  gap: 8px;
}
@media (max-width: 768px) {
  .gsys-tr__cards--duty {
    flex-direction: column;
    align-items: center;
    gap: 8px;
  }
}
.gsys-tr__cards--duty .gsys-tr__card {
  width: 140px;
}
@media (max-width: 768px) {
  .gsys-tr__cards--duty .gsys-tr__card {
    width: min(106px, 28vw);
    flex-shrink: 0;
  }
}
.gsys-tr__card {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 150px;
  aspect-ratio: 1;
  background-color: #ffffff;
  border: 1px solid #000000;
  text-align: center;
  font-size: clamp(13px, 10.8888888889px + 0.0055555556 * 100vw, 18px);
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: 0.02em;
  color: #000000;
}
@media (max-width: 768px) {
  .gsys-tr__card {
    width: min(106px, 28vw);
    border-color: #727272;
  }
}
.gsys-tr__cardset {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(12px, 1.5vw, 18px);
}
@media (max-width: 768px) {
  .gsys-tr__cardset {
    flex-direction: row;
    gap: 16px;
    width: 100%;
  }
}
.gsys-tr__note {
  font-size: 13px;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0.02em;
  text-align: center;
  color: #000000;
}
@media (max-width: 768px) {
  .gsys-tr__note {
    font-size: 14px;
    text-align: left;
    flex: 1;
  }
}

/* ---- 03 安全教育：暗色写真背景の帯（白文字）
   背景は書き出し画像に黒60%オーバーレイ焼き込み済みのため重ねない
   行動指針＝白AOCマーク＋テキスト（aoc-mark.svg.php流用）、取り組み＝白16%カード＋説明文 ---- */
.gsys-safety {
  margin-top: clamp(60px, 7vw, 94px);
  padding: clamp(60px, 8vw, 100px) 0;
  background: url("../../img-growth-system/system3-bg.webp") center center/cover no-repeat;
  background-color: #1a1a1a;
}
@media (max-width: 768px) {
  .gsys-safety {
    margin-top: clamp(32px, 10vw, 48px);
    padding: clamp(40px, 11vw, 56px) 0;
    background-image: url("../../img-growth-system/system3-bg-sp.webp");
  }
}
.gsys-safety__inner {
  max-width: 1280px;
  width: 90%;
  margin: 0 auto;
}
.gsys-safety__head {
  margin: 0;
  text-align: center;
  font-size: clamp(18px, 13.7777777778px + 0.0111111111 * 100vw, 28px);
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.08em;
  color: #ffffff;
}
.gsys-safety__head:not(:first-child) {
  margin-top: clamp(56px, 7vw, 96px);
}
.gsys-safety__policies {
  list-style: none;
  margin: clamp(28px, 4vw, 48px) 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr) 1.25fr;
  gap: 22px;
}
@media (max-width: 768px) {
  .gsys-safety__policies {
    grid-template-columns: repeat(2, 1fr);
    gap: 36px 24px;
  }
}
.gsys-safety__policy {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: clamp(100px, 10vw, 137px);
}
@media (max-width: 768px) {
  .gsys-safety__policy {
    min-height: 103px;
  }
}
.gsys-safety__policy-mark {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: clamp(100px, 9.8vw, 134px);
  opacity: 0.17;
}
@media (max-width: 768px) {
  .gsys-safety__policy-mark {
    width: 100px;
  }
}
.gsys-safety__policy-mark svg {
  display: block;
  width: 100%;
  height: auto;
}
.gsys-safety__policy-mark path {
  fill: #ffffff;
}
.gsys-safety__policy-text {
  position: relative;
  font-size: clamp(15px, 13.7333333333px + 0.0033333333 * 100vw, 18px);
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.06em;
  color: #ffffff;
}
@media (max-width: 374px) {
  .gsys-safety__policy-text {
    font-size: 13px;
    letter-spacing: 0.02em;
  }
}
.gsys-safety__actions {
  list-style: none;
  margin: clamp(24px, 3.5vw, 42px) 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 31px;
}
@media (max-width: 768px) {
  .gsys-safety__actions {
    grid-template-columns: 1fr;
    gap: 22px;
  }
}
.gsys-safety__action {
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 1.5vw, 16px);
}
@media (max-width: 768px) {
  .gsys-safety__action {
    gap: 8px;
  }
}
.gsys-safety__action-title {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 137px;
  padding: 10px;
  background-color: rgba(255, 255, 255, 0.17);
  text-align: center;
  font-size: clamp(16px, 14.3111111111px + 0.0044444444 * 100vw, 20px);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: #ffffff;
}
@media (max-width: 768px) {
  .gsys-safety__action-title {
    min-height: 72px;
    padding: 5px 10px;
  }
}
.gsys-safety__action-desc {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.04em;
  text-align: left;
  color: #ffffff;
}
@media (max-width: 768px) {
  .gsys-safety__action-desc {
    text-align: center;
  }
}

/* ---- SPのみ：図版の「タップで拡大」ボタン（⚪︎＋。XD：直径36px・#676767・1.5px線） ---- */
.gsys-zoombtn {
  display: none;
}
@media (max-width: 768px) {
  .gsys-zoombtn {
    display: block;
    margin: 12px 0 0 auto;
    padding: 0;
    border: none;
    background: none;
    color: #676767;
    cursor: pointer;
  }
  .gsys-zoombtn svg {
    display: block;
  }
}

/* ---- 図版の拡大モーダル（全画面白。大きい図をパンスクロールで閲覧） ---- */
.gsys-zoom {
  border: none;
  margin: 0;
  padding: 0;
  max-width: none;
  max-height: none;
  width: 100vw;
  height: 100dvh;
  background-color: #ffffff;
  color: #000000;
}
.gsys-zoom::backdrop {
  background: rgba(0, 0, 0, 0.4);
}
.gsys-zoom[open] {
  animation: gsysZoomFade 200ms ease-out;
}
.gsys-zoom__close {
  position: fixed;
  top: 14px;
  right: 14px;
  z-index: 1;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.9);
  color: #676767;
  cursor: pointer;
}
.gsys-zoom__close svg {
  display: block;
}
.gsys-zoom__scroller {
  width: 100%;
  height: 100%;
  overflow: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding: 72px 20px 40px;
}
.gsys-zoom__img {
  display: block;
  width: 640px;
  max-width: none;
  height: auto;
  margin: 0 auto;
}

@keyframes gsysZoomFade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}