html {
  overflow-x: visible;
}


/* wp打ち消し */
p, h3, h4, li, ol { 
  margin: 0;
}



/* ===========================================
   page-top.css
   新卒サイト TOP ページ固有スタイル
   =========================================== */

.top_bg {
  position: relative;
  background-repeat: repeat;
  background-position: top cover;
  background-size: 100% auto; /* 縦4600px想定なので幅基準で伸縮 */
}

/* ===========================================
   セクション共通コンテナ
   最大1460px ＋ 左右余白（画面幅に応じて収束）
   =========================================== */

.news_container,
.about_container,
.diagnosis_container,
.interview_container,
/* .interview_mbti, */
.training_container,
.number_container,
.benefits_container,
.column_container,
.entry_container,
.faq_container {
  width: 100%;
  max-width: calc(var(--shinsotsu-container-width-lg) + var(--shinsotsu-gutter) * 2);
  margin-inline: auto;
  padding-inline: var(--shinsotsu-gutter);
}

/* -------------------------------------------
   fv
------------------------------------------- */

.fv_section {
  position: relative;
  width: 100%;
}

/* --- 固定背景 --- */

.fv_bg {
  position: sticky;
  top: 0;
  z-index: 0;
  width: 100%;
  height: 100vh;
  overflow: hidden;
}

.fv_bg_item {
  position: absolute;
  inset: 0;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  opacity: 0;
  transition: opacity 1.6s ease;
}

.fv_bg_item.is_active {
  opacity: 1;
}

.fv_bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, .35);
  pointer-events: none;
}

/* stickyが占有した高さを打ち消してコンテンツを背景に重ねる */
.fv_contents {
  position: relative;
  z-index: 1;
  margin-top: -100vh;
}

/* ▼ fv1 --------------------------------- */

.fv_first {
  position: relative;
  width: 100%;
  height: 900px;
}

.fv_first_inner {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

.fv_first_title {
  font-size: 60px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 2;
  color: var(--shinsotsu-color-text-white);
  text-align: center;
  text-indent: 0.1em;
}

/* ▼ fv2 --------------------------------- */

.fv_second {
  position: relative;
  width: 100%;
  height: 1100px;
}

/* 下部の白フェード */
.fv_second::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 30%;
  background: linear-gradient(
    to bottom,
    rgba(248, 247, 244, 0) 0%,
    rgba(248, 247, 244, 0.85) 65%,
    var(--shinsotsu-color-bg-base) 100%
  );
  pointer-events: none;
}

.fv_second_inner {
  position: relative;
  z-index: 1;
  max-width: var(--shinsotsu-container-width-lg);
  margin: 0 auto;
  padding-top: 150px;
  text-align: center;
  padding-inline: var(--shinsotsu-gutter);
}

.fv_second_title {
  font-size: 30px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.5;
  color: var(--shinsotsu-color-text-white);
  text-indent: 0.1em;
}

.fv_second_body {
  margin-top: 60px;
}

.fv_second_text {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.2em;
  line-height: 2.5;
  color: var(--shinsotsu-color-text-white);
  text-indent: 0.2em;
}

.fv_second_text + .fv_second_text {
  margin-top: 60px;
}

/* scroll indicator */
.top_scroll_indicator {
  position: absolute;
  left: 50%;
  bottom: 200px;
  z-index: 5;
  transform: translateX(-50%);
  display: grid;
  justify-items: center;
  gap: 8px;
  color: #fff;
  font-weight: 900;
  text-align: center;
  text-decoration: none;
  opacity: 0;
  animation: topScrollIn 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.9s forwards;
  transition: transform 0.25s ease;
}
.top_scroll_indicator:link,
.top_scroll_indicator:visited,
.top_scroll_indicator:active {
  color: #fff;
}
.top_scroll_indicator:hover {
  color: #fff;
  transform: translateX(-50%) translateY(-4px);
}
.top_scroll_indicator span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 180px;
  padding: 10px 18px;
  border: 1px solid rgba(255, 255, 255, .42);
  border-radius: 999px;
  backdrop-filter: blur(10px);
  font-size: 13px;
  letter-spacing: .12em;
  background: #33333354 !important;
  border-color: rgba(255, 255, 255, .68) !important;
  box-shadow: 0 10px 26px rgba(161, 75, 0, .20);
}
.top_scroll_indicator em {
    margin-top: 20px;
    font-style: normal;
    font-size: 10px;
    letter-spacing: 2px;
    color: #fff;
    font-weight: 600;
}
.top_scroll_indicator::after {
  content: "";
  display: block;
  width: 1px;
  height: 54px;
  margin-top: 2px;
  background: linear-gradient(180deg, #F5AA00, rgba(255,255,255,.15));
  animation: topScrollLine 1.7s cubic-bezier(0.6, 0, 0.2, 1) infinite;
  transform-origin: top;
}

@keyframes topScrollIn {
  from { opacity: 0; transform: translateX(-50%) translateY(12px); }
  to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}

@keyframes topScrollLine {
  0%  { transform: scaleY(0); opacity: 0.35; transform-origin: top; }
  45% { transform: scaleY(1); opacity: 1;    transform-origin: top; }
  46% { transform-origin: bottom; }
  100%{ transform: scaleY(0); opacity: 0.35; transform-origin: bottom; }
}


/* ▼ fv - responsive（BP:900px / SP期待値 390px 基準） --------- */

@media screen and (max-width: 900px) {
  /* 画像は縦900px・横autoで中央に置く */
  /* .fv_bg_item {
    background-size: auto 900px;
  } */

  /* .fv_bg {
    height: 100dvh;
  }

  .fv_contents {
    margin-top: -100dvh;
  } */

  .fv_first_title {
    font-size: clamp(35px, calc(15.88px + 4.9vw), 60px);
  }

  /* .fv_second_inner {
    padding-inline: var(--shinsotsu-gutter);
  } */

  .fv_second_title {
    font-size: clamp(25px, calc(21.18px + 0.98vw), 30px);
    letter-spacing: 0.03em;
    line-height: 1.8;
    text-indent: 0.03em;
  }

  .fv_second_text {
    font-size: clamp(16px, calc(14.47px + 0.39vw), 18px);
    letter-spacing: 0.1em;
    text-indent: 0.1em;
  }

  .top_scroll_indicator { bottom: 240px; }
  .top_scroll_indicator span { 
    min-width: 160px;
    font-size: 12px;
  }

}


/* ===========================================
   news
   =========================================== */

.news_section {
  position: relative;
  padding: 120px 0;
}

.news_container {
  display: flex;
  align-items: flex-start;
  gap: clamp(30px, calc(-15px + 5vw), 80px);
}


.news_head {
  flex-shrink: 0;
  width: clamp(200px, calc(92px + 12vw), 320px);
}

.news_body {
  flex: 1;
  min-width: 0;
}

.news_list {
  list-style: none;
  border-top: 1px solid var(--shinsotsu-color-primary);
}

.news_item {
  border-bottom: 1px solid var(--shinsotsu-color-primary);
}

.news_link {
  display: flex;
  align-items: center;
  gap: clamp(20px, calc(2px + 2vw), 40px);
  padding: 24px 8px;
  padding-right: 30px;
  text-decoration: none;
  transition: opacity .3s ease;
}


.news_link:hover {
  opacity: .7;
}

.news_date {
  flex-shrink: 0;
  width: 120px;
  font-size: var(--shinsotsu-font-size-sm);
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1;
  color: var(--shinsotsu-color-primary);
  padding-left: clamp(0px, calc(-18px + 2vw), 20px);  
}

.news_title {
  flex: 1;
  min-width: 0;
  font-size: var(--shinsotsu-font-size-md);
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.6;
  color: var(--shinsotsu-color-text-base);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.news_arrow {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  color: var(--shinsotsu-color-primary);
  transition: transform .3s ease;
  /* padding-right: 20px; */
}

.news_link:hover .news_arrow {
  transform: translateX(4px);
}

/* ▼ news - responsive（BP:900px / SP期待値 390px 基準） --------- */

@media screen and (max-width: 900px) {
  .news_section {
    padding: clamp(60px, calc(14.12px + 11.76vw), 120px) 0;
  }

  .news_container {
    flex-direction: column;
    align-items: stretch;         
    gap: clamp(40px, calc(9.41px + 7.84vw), 80px);
    padding-inline: var(--shinsotsu-gutter);
  }

  .news_head {
    width: auto;
  }

  /* 日付を1行目、タイトル＋矢印を2行目に折り返す */
  /* 矢印はリンク全体の縦中央に固定する */
  .news_link {
    position: relative;
    flex-wrap: wrap;
    gap: 6px 15px;
    padding: 20px 47px 20px 0;
  }

  /* .news_arrow {
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
  } */

  .news_arrow {
   position: absolute;
   top: 50%;
   right: 0;
   transform: translateY(-50%);
  }

  .news_link:hover .news_arrow {
    transform: translateY(-50%) translateX(4px);
  }

  .news_date {
    width: 100%;
    padding-left: 0;
    line-height: 2;
  }

  .news_title {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    line-height: 1.5;
  }
}



/* ===========================================
   about
   =========================================== */

.about_section {
  position: relative;
  padding: 120px 0;
  overflow-x: clip;
}

/* .about_container {
  max-width: var(--shinsotsu-container-width-lg);
  margin: 0 auto;
  padding: 0 30px;
} */



/* --- intro（テキスト＋スライダー） --- */

.about_intro {
  display: flex;
  align-items: flex-start;
  gap: clamp(30px, calc(3px + 3vw), 60px);
  margin-top: clamp(30px, calc(3px + 3vw), 60px);
  padding-left: clamp(0px, calc(-27px + 3vw), 30px);
}


.about_intro_text {
  flex-shrink: 0;
  width: clamp(300px, calc(165px + 15vw), 450px);
  padding-top: 20px;
}


.about_intro_paragraph {
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 2;
  color: #000000;
}

.about_intro_paragraph + .about_intro_paragraph {
  margin-top: 32px;
}

.about_slider {
  flex: 1;
  min-width: 0;
}

.about_slider_swiper {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
}

.about_slider_image {
  display: block;
  width: 100%;
  height: auto;
}

.about_slider_controls {
  position: absolute;
  bottom: 20px;
  left: 0;
  z-index: 2;
  display: flex;
  left : 30px;
}

.about_slider_control {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 30px;
  padding: 0;
  border: none;
  background-color: rgba(0, 0, 0, .25);
  color: var(--shinsotsu-color-text-white);
  cursor: pointer;
  appearance: none;
  transition: background-color .3s ease;
}

.about_slider_control:hover {
  background-color: rgba(0, 0, 0, .45);
}

.about_slider_control.swiper-button-disabled {
  opacity: .4;
  cursor: default;
}

/* --- 事業領域 --- */

.about_business {
  display: flex;
  align-items: flex-start;
  gap: 80px;
  margin-top: 200px;
}

.about_business_title {
  flex-shrink: 0;
  writing-mode: vertical-rl;
  font-size: clamp(30px, calc(26.13px + 0.99vw), 45px);
  font-weight: 700;
  letter-spacing: 0.2em;
  line-height: 1;
  color: #202627;
}

.about_business_list {
  flex: 1;
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  list-style: none;
}

.about_business_card {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 40px;
  max-width: 580px;
  border-radius: 12px;
  background-color: var(--shinsotsu-color-text-white);
  box-shadow: 0 4px 20px rgba(62, 58, 57, .06);
}

.about_business_card_head {
  position: relative;
  flex: 1;
}

.about_business_card_body {
  width: 62%;
}

.about_business_card_num {
  font-size: 25px;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.8;
  color: #EF9529;
}

.about_business_card_title {
  font-size: 25px;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.8;
  color: #EF952A;
}

.about_business_card_text {
  margin-top: 10px;
  font-size: 14px;
  font-weight: 500;
  /* letter-spacing: 0.06em; */
  line-height: 2.1;
  color: #000000;
}

.about_business_card_image {
  position: absolute;
  top: 0;
  right: 0;
  width: 190px;
}

.about_business_card_image img {
  display: block;
  width: 100%;
  height: auto;
}

.about_business_card_foot {
  margin-top: 40px;
}

.about_business_card_label {
  display: inline-block;
  padding: 10px 18px;
  border-radius: 999px;
  background-color: #EF952A;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.01em;
  line-height: 1;
  color: var(--shinsotsu-color-text-white);
}

.about_business_job_list {
  display: flex;
  flex-wrap: wrap;
  column-gap: 32px;
  row-gap: 10px;
  margin-top: 16px;
  padding: 17px 28px;
  border-radius: 8px;
  background-color: #FDF0E6;
  list-style: none;
}

.about_business_job_item {
  position: relative;
  padding-left: 16px;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.01em;
  line-height: 1.1;
  color: #202627;
}

.about_business_job_item::before {
  content: '・';
  position: absolute;
  top: 0;
  left: 0;
  color: var(--shinsotsu-color-primary);
}

/* ↑書き換え */
.about_business {
  display: flex;
  align-items: flex-start;
  gap: clamp(40px, calc(-104px + 16vw), 200px);
  margin-top: 200px;
}

/* 幅が足りなくなったら自動で1列に落ちる */
/* .about_business_list {
  flex: 1;
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(430px, 100%), 1fr));
  gap: 30px;
  list-style: none;
}

.about_business_card {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: clamp(20px, calc(2px + 2vw), 40px);
  border-radius: 12px;
  background-color: var(--shinsotsu-color-text-white);
  box-shadow: 0 4px 20px rgba(62, 58, 57, .06);
} */

/* .about_business_list {
  flex: 1;
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(430px, 100%), 580px));
  justify-content: center;
  gap: 30px;
  list-style: none;
}

.about_business_card {
  display: flex;
  flex-direction: column;
  height: 100%;
  max-width: 580px;
  margin-inline: auto;
  padding: clamp(20px, calc(2px + 2vw), 40px);
  border-radius: 12px;
  background-color: var(--shinsotsu-color-text-white);
  box-shadow: 0 4px 20px rgba(62, 58, 57, .06);
} */

.about_business_list {
  flex: 1;
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(430px, 100%), 1fr));
  gap: 30px;
  list-style: none;
}

.about_business_card {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: clamp(20px, calc(2px + 2vw), 40px);
  border-radius: 12px;
  background-color: var(--shinsotsu-color-text-white);
  box-shadow: 0 4px 20px rgba(62, 58, 57, .06);
}

.about_business_card_head {
  position: relative;
  flex: 1;
  min-height: clamp(150px, calc(96px + 6vw), 210px);
}

.about_business_card_body {
  width: 58%;
}

.about_business_card_image {
  position: absolute;
  top: 0;
  right: 0;
  width: 40%;
}



.about_business_card_foot {
  margin-top: auto;
  padding-top: 30px;
}

/* 2列グリッドにして縦位置を揃える */
.about_business_job_list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 20px;
  row-gap: 12px;
  margin-top: 16px;
  padding: 20px 28px;
  border-radius: 8px;
  background-color: #FDF0E6;
  list-style: none;
}

.about_business_job_item {
  position: relative;
  padding-left: 16px;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.01em;
  line-height: 1.4;
  color: #202627;
}

/* --- about内 AI --- */

.about_ai {
  display: flex;
  align-items: center;
  /* コンテナのpaddingを打ち抜いてビューポート左端まで画像を出す */
  width: 100%;
  /* margin-left: calc(50% - 50vw); */
  margin-top: 160px;
}

.about_ai_image {
  flex-shrink: 0;
  width: 52%;
  border-radius: 12px;
  overflow: hidden;
}

.about_ai_image img {
  display: block;
  width: 100%;
  height: auto;
}

.about_ai_body {
  flex: 1;
  min-width: 0;
  display: flex;
  justify-content: center;
  padding-inline: var(--shinsotsu-gutter);
}

.about_ai_body_inner {
  width: min(580px, 100%);
}

.about_ai_title {
  font-size: clamp(30px, calc(26.13px + 0.99vw), 45px);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1;
  color: #202627;
}

.about_ai_text {
  margin-top: 40px;
}

.about_ai_paragraph {
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.12em;
  line-height: 2;
  color: #000000;
}

.about_ai_paragraph + .about_ai_paragraph {
  margin-top: 32px;
}

.about_ai_body_inner .shinsotsu_cta {
  margin-top: 48px;
}

.about_ai_contents {
  margin-left: clamp(0px, calc(-67.5px + 7.5vw), 75px);
}

/* ▼ about - responsive（BP:900px / SP期待値 390px 基準） --------- */

@media screen and (max-width: 900px) {
  .about_section {
    padding: clamp(60px, calc(14.12px + 11.76vw), 120px) 0;
  }

  /* --- intro --- */

  .about_intro {
    flex-direction: column;
    gap: clamp(30px, calc(7.06px + 5.88vw), 60px);
    margin-top: clamp(30px, calc(7.06px + 5.88vw), 60px);
    padding-left: 0;
  }

  .about_intro_text {
    width: 100%;
    padding-top: 0;
  }

  .about_intro_paragraph {
    line-height: 1.9;
  }

  .about_slider {
    width: 100%;
  }

  .about_slider_controls {
    left: 12px;
    bottom: 12px;
  }

  .about_slider_control {
    width: 26px;
    height: 22px;
  }

  .about_slider_control svg {
    width: 18px;
    height: 18px;
  }

  /* --- 事業領域 --- */

  .about_business {
    flex-direction: column;
    align-items: stretch;
    gap: clamp(30px, calc(7.06px + 5.88vw), 60px);
    margin-top: 120px;
  }

  .about_business_title {
    align-self: flex-start;
    letter-spacing: 0.08em;
    line-height: 1.2;
  }

  /* .about_business_list {
    width: 100%;
    grid-template-columns: 1fr;
    gap: clamp(25px, calc(21.18px + 0.98vw), 30px);
  }

  .about_business_card {
    padding: clamp(25px, calc(13.53px + 2.94vw), 40px);
    box-shadow: 2px 2px 10px rgba(244, 144, 1, .1);
  } */

  .about_business_list {
  width: 100%;
  grid-template-columns: 1fr;
  justify-content: center;
  gap: clamp(25px, calc(21.18px + 0.98vw), 30px);
}

.about_business_card {
  max-width: 580px;
  margin-inline: auto;
  padding: clamp(25px, calc(13.53px + 2.94vw), 40px);
  box-shadow: 2px 2px 10px rgba(244, 144, 1, .1);
}

  /* 画像を上・テキストを下に積み替える（DOM順のまま reverse） */
  .about_business_card_head {
    display: flex;
    flex-direction: column-reverse;
    min-height: 0;
  }

  /* .about_business_card_image {
    position: static;
    align-self: flex-end;
    width: clamp(150px, calc(81.18px + 17.65vw), 240px);
    margin-bottom: 10px;
  } */

    /* After */
  .about_business_card_image {
    position: static;
    align-self: flex-end;
    width: clamp(150px, calc(81.18px + 17.65vw), 240px);
    margin-bottom: 0;
  }

  .about_business_card_body {
    width: 100%;
  }

  .about_business_card_text {
    line-height: 2;
  }

  .about_business_card_foot {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid rgba(32, 38, 39, .1);
  }

  .about_business_card_label {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 90px;
    height: 30px;
    padding: 0;
    line-height: 1.8;
  }

  .about_business_job_list {
    grid-template-columns: 1fr;
    row-gap: 4px;
    padding: 20px;
    background-color: #FDF3EA;
  }

  .about_business_job_item {
    letter-spacing: 0;
    line-height: 1.8;
  }

  /* --- AI --- */

  .about_ai {
    flex-direction: column;
    margin-top: clamp(80px, calc(18.82px + 15.69vw), 160px);
  }

  .about_ai_image {
    width: 100%;
  }

  .about_ai_image img {
    height: clamp(245px, 62.82vw, 540px);
    object-fit: cover;
  }

  .about_ai_body {
    display: block;
    width: 100%;
    margin-top: 30px;
  }

  .about_ai_body_inner {
    width: 100%;
  }

  .about_ai_title {
    letter-spacing: 0;
    line-height: 1.5;
    text-align: center;
    text-indent: 0;
  }

  /* PC用の左インデントを解除し、CTAを中央に */
  /* .about_ai_contents {
    text-align: center;
  }

  .about_ai_text {
    margin-top: 30px;
    text-align: left;
  } */

  .about_ai_contents {
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .about_ai_text {
    align-self: stretch;
    margin-top: 30px;
    text-align: left;
  }

  .about_ai_body_inner .shinsotsu_cta {
    width: 360px;
    margin-top: 40px;
  }



  .about_ai_paragraph {
    max-width: none;
  }

  .about_ai_body_inner .shinsotsu_cta {
    margin-top: 40px;
  }
}

/* ===========================================
   diagnosis
   =========================================== */

.diagnosis_section {
  position: relative;
  padding: 120px 0;
  overflow: hidden;
}

.diagnosis_container {
  position: relative;
  /* max-width: var(--shinsotsu-container-width-lg);
  margin: 0 auto; */
  /* padding: 0 30px; */
}

/* --- 背景イラスト --- */

/* .diagnosis_illust--left {
  left: clamp(0px, calc(-117px + 13vw), 130px);
  bottom: 40px;
  width: clamp(130px, calc(22px + 12vw), 250px);
}

.diagnosis_illust--right {
  right: clamp(0px, calc(-117px + 13vw), 130px);
  bottom: 40px;
  width: clamp(125px, calc(21.5px + 11.5vw), 240px);
}

.diagnosis_illust--right {
  right: 130px;
  bottom: 40px;
  width: 240px;
} */

/* After */
/* --- 背景イラスト --- */

.diagnosis_illust {
  position: absolute;
  z-index: 0;
  pointer-events: none;
}

.diagnosis_illust--left {
  left: clamp(100px, calc(-60px + 13vw), 200px);
  bottom: 40px;
  width: clamp(130px, calc(22px + 12vw), 250px);
}

.diagnosis_illust--right {
  right: clamp(100px, calc(-60px + 13vw), 200px);
  bottom: 40px;
  width: clamp(125px, calc(21.5px + 11.5vw), 240px);
}


/* --- 見出し --- */

.diagnosis_head {
  position: relative;
  z-index: 1;
}

.diagnosis_heading {
  align-items: center;
  text-align: center;
}

/* --- リード文 --- */

.diagnosis_lead {
  position: relative;
  z-index: 1;
  margin-top: 40px;
  text-align: center;
}

.diagnosis_lead_text {
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 2;
  color: #202627;
}

/* --- CTA --- */

/* .diagnosis_action {
  position: relative;
  z-index: 1;
  margin-top: 48px;
  text-align: center;
} */

/* .diagnosis_action {
  position: relative;
  z-index: 1;
  margin-top: 48px;
  display: flex;
  justify-content: center;
} */

.diagnosis_action {
  position: relative;
  z-index: 1;
  margin-top: 48px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* --- 診断スペック --- */

.diagnosis_spec_list {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  margin-top: 56px;
  list-style: none;
}

.diagnosis_spec_item {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: clamp(160px, calc(124px + 4vw), 200px);
  padding: 0 clamp(6px, calc(-6.6px + 1.4vw), 20px);
}

.diagnosis_spec_item + .diagnosis_spec_item {
  border-left: 2px solid rgba(32, 38, 39, .15);
}

.diagnosis_spec_icon {
  width: 40px;
  height: 40px;
}

.diagnosis_spec_label {
  /* margin-top: 12px; */
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 2;
  color: #202627;
}

.diagnosis_spec_value {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 2px;
  color: #EF9529;
}

.diagnosis_spec_value_num {
  font-size: 25px;
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 1.28;
}

.diagnosis_spec_value_unit {
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 2;
}

.diagnosis_spec_value--text {
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 2;
}

/* ▼ diagnosis - responsive（BP:900px / SP期待値 390px 基準） --------- */

@media screen and (max-width: 900px) {
  .diagnosis_section {
    padding: clamp(60px, calc(14.12px + 11.76vw), 120px) 0;
  }

  /* 背景イラストはSPでは非表示 */
  .diagnosis_illust {
    display: none;
  }

  /* スペック → CTA の順に入れ替え */
  .diagnosis_container {
    display: flex;
    flex-direction: column;
  }

  .diagnosis_head      { order: 1; }
  .diagnosis_lead      { order: 2; }
  .diagnosis_spec_list { order: 3; }
  .diagnosis_action    { order: 4; }

  .diagnosis_lead {
    margin-top: clamp(24px, calc(11.76px + 3.14vw), 40px);
    text-align: left;
  }

  .diagnosis_spec_list {
    margin-top: clamp(30px, calc(10.12px + 5.1vw), 56px);
  }

  /* 3分割：固定200pxをやめて等幅で収める */
  .diagnosis_spec_item {
    flex: 1;
    min-width: 0;
    width: auto;
    padding: 0 clamp(6px, calc(-4.71px + 2.75vw), 20px);
  }

  .diagnosis_spec_item + .diagnosis_spec_item {
    border-left-width: 1px;
  }

  .diagnosis_spec_icon {
    width: clamp(24px, calc(11.76px + 3.14vw), 40px);
    height: auto;
  }

  .diagnosis_spec_label {
    font-size: clamp(11px, calc(7.18px + 0.98vw), 16px);
  }

  .diagnosis_spec_value_num {
    font-size: clamp(19px, calc(14.41px + 1.18vw), 25px);
  }

  .diagnosis_spec_value_unit {
    font-size: clamp(12px, calc(8.94px + 0.78vw), 16px);
  }

  .diagnosis_spec_value--text {
    font-size: clamp(13px, calc(9.18px + 0.98vw), 18px);
    line-height: 1.8;
  }

  .diagnosis_action {
    margin-top: clamp(24px, calc(5.65px + 4.71vw), 48px);
  }
}

/* ===========================================
   interview
   =========================================== */

.interview_section {
  position: relative;
  padding: 100px 0;
}

/* 見出しとカードの左端を揃えるため padding を持たせない */
.interview_container {
  position: relative;
  /* max-width: var(--shinsotsu-container-width-lg);
  margin: 0 auto; */
}

/* --- スライダー --- */

.interview_slider {
  --interview_ctrl_x: clamp(-70px, calc(210px - 17.5vw), 0px);

  position: relative;
  margin-top: 70px;
  padding-inline: clamp(0px, calc(180px - 11.25vw), 45px);
}

.interview_slider_swiper {
  overflow: hidden;
}

.interview_slider_swiper .swiper-wrapper {
  align-items: stretch;
}

/* スライドが広くてもカードは最大340pxで中央に置く */
.interview_slider_swiper .swiper-slide {
  height: auto;
  display: flex;
  justify-content: center;
}

/* --- カード --- */

/* 高さは内容に追従。swiper の stretch で全枚数が揃う */
/* .interview_card {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 340px;
  height: clamp(340px, calc(311.6px + 7.28vw), 450px);
  border-radius: 8px;
  background-color: var(--shinsotsu-color-text-white);
  box-shadow: 0 2px 12px rgba(62, 58, 57, .08);
  overflow: hidden;
  text-decoration: none;
  transition: transform .3s ease, box-shadow .3s ease;
} */

.interview_card {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 340px;
  height: clamp(340px, calc(311.6px + 7.28vw), 450px);
  border-radius: 8px;
  background-color: var(--shinsotsu-color-text-white);
  box-shadow: 0 2px 12px rgba(62, 58, 57, .08);
  overflow: hidden;
  text-decoration: none;
  transform: translateZ(0);
  backface-visibility: hidden;
  transition: transform .3s ease, box-shadow .3s ease;
}


.interview_card:hover {
  /* transform: translateY(-6px);
  box-shadow: 0 10px 24px rgba(62, 58, 57, .14); */
  transform: translateY(-1px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.08);
}

.interview_card_image {
  position: relative;
  flex-shrink: 0;
  height: clamp(215px, calc(196.9px + 4.64vw), 285px);
}

/* .interview_card_image {
  position: relative;
  flex-shrink: 0;
  height: clamp(215px, calc(196.9px + 4.64vw), 285px);
  border-radius: 8px 8px 0 0;
  overflow: hidden;
} */

.interview_card_image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.interview_card_job {
  position: absolute;
  bottom: -6%;
  left: 50%;
  transform: translateX(-50%);
  display: inline-block;
  padding: 0 clamp(18px, calc(9px + 1vw), 28px);
  border-radius: 999px;
  background-color: #EF952A;
  font-size: clamp(12px, calc(8.4px + 0.4vw), 16px);
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 2.25;
  color: #FFFFFF;
  white-space: nowrap;
  text-indent: 0.12em;
}

.interview_card_body {
  flex: 1;
  padding: clamp(18px, calc(12.6px + 0.6vw), 24px)
           clamp(16px, calc(10.6px + 0.6vw), 22px)
           clamp(16px, calc(12.4px + 0.4vw), 20px);
}

.interview_card_title {
  font-size: clamp(14px, calc(10.4px + 0.4vw), 18px);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 2;
  color: #202627;
}

.interview_card_school {
  margin-top : 2px;
  color : var(--shinsotsu-color-text-base);
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.06em;
}

.interview_card_year {
  /* margin-top: 4px; */
  font-size: clamp(12px, calc(8.4px + 0.4vw), 16px);
  font-weight: 400;
  letter-spacing: 0.12em;
  line-height: 2.25;
  color: #202627;
}

/* --- 前後ボタン（カード外に配置） --- */

.interview_slider_control {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: none;
  background-color: transparent;
  color: #EF952A;
  cursor: pointer;
  appearance: none;
  transition: opacity .3s ease;
}

.interview_slider_control:hover {
  opacity: .6;
}

/* 枚数不足でも無効化しない */
.interview_slider_control.swiper-button-lock {
  display: flex;
}

.interview_slider_control--prev {
  left: var(--interview_ctrl_x);
}

.interview_slider_control--next {
  right: var(--interview_ctrl_x);
}

/* --- CTA --- */

/* .interview_action {
  margin-top: 60px;
  text-align: center;
} */

/* .interview_action {
  margin-top: 60px;
  display: flex;
  justify-content: center;
} */

.interview_action {
  margin-top: 60px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* --- interview内 性格相性診断 --- */

.interview_mbti {
  display: flex;
  align-items: stretch;
  width: min(var(--shinsotsu-container-width-lg), 100% - var(--shinsotsu-gutter) * 2);
  margin: 100px auto 0;
  border-radius: 8px;
  background-color: var(--shinsotsu-color-text-white);
  box-shadow: 0 2px 12px rgba(62, 58, 57, .08);
  overflow: hidden;
}

.interview_mbti_image {
  flex-shrink: 0;
  width: 50%;
}

.interview_mbti_image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* .interview_mbti_body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(20px, calc(2px + 2vw), 40px);
  padding: 20px clamp(20px, calc(-25px + 5vw), 70px);
} */

.interview_mbti_body {
  flex: 1;
  min-width: 0;
  display: grid;
  justify-content: center;
  justify-items: start;
  align-content: center;
  gap: clamp(20px, calc(2px + 2vw), 40px);
  padding: 20px clamp(20px, calc(-25px + 5vw), 60px);
}

.interview_mbti_title {
  margin-bottom: clamp(0px, calc(-18px + 2vw), 20px);
  font-size: clamp(25px, calc(7px + 2vw), 45px);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.5;
  color: #202627;
  text-align: center;
  text-indent: 0.08em;
}

.interview_mbti_body .shinsotsu_cta {
  justify-self: center;
}


/* ▼ interview - responsive（BP:900px / SP期待値 390px 基準） --------- */

@media screen and (max-width: 900px) {

  .interview_container {
    padding-bottom: 120px;
  }
  .interview_section {
    padding: clamp(60px, calc(14.12px + 11.76vw), 120px) 0;
    padding-bottom: 140px;
  }

  /* 左に矢印スペースを確保し、右はコンテナ余白を打ち抜いて見切れさせる */
  .interview_slider {
    margin-top: clamp(30px, calc(0.39px + 7.84vw), 70px);
    margin-right: calc(var(--shinsotsu-gutter) * -1);
    padding-left: 45px;
  }

  .interview_slider_swiper .swiper-slide {
      width: clamp(270px, calc(216.46px + 13.73vw), 340px);
  }

  .interview_slider_control {
    width: 20px;
    height: 32px;
  }

  .interview_slider_control svg {
    width: 16px;
    height: 30px;
  }

  .interview_slider_control svg path {
    stroke-width: 3.4;
  }

  /* スライドは左方向のみ */
  .interview_slider_control--prev {
    left: 0;
  }

  .interview_slider_control--next {
    display: none;
  }

  .interview_action {
    margin-top: clamp(30px, calc(2.35px + 7.06vw), 60px);
  }

  /* --- 性格相性診断 --- */

  /* .interview_mbti {
    flex-direction: column;
    margin-top: clamp(50px, calc(11.76px + 9.8vw), 100px);
    background-color: transparent;
    box-shadow: none;
  }

  .interview_mbti_image {
    width: 100%;
    border-radius: 8px;
    overflow: hidden;
  }

  .interview_mbti_image img {
    aspect-ratio: 34 / 18;
    height: auto;
  } */

  .interview_mbti {
    flex-direction: column;
    margin-top: clamp(50px, calc(11.76px + 9.8vw), 100px);
    background-color: transparent;
    box-shadow: none;
    overflow: visible;
  }

  .interview_mbti_image {
    width: 100%;
    border-radius: 8px;
    overflow: hidden;
  }

  .interview_mbti_image img {
    height: auto;
    object-fit: contain;
  }

  /* .interview_mbti_body {
    gap: 40px;
    padding: 40px 0 0;
  }

  .interview_mbti_title {
    margin-bottom: 0;
    letter-spacing: 0;
    line-height: 1.8;
    text-indent: 0;
  } */

  .interview_mbti_body {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 40px;
    padding: 40px 0 0;
  }

  .interview_mbti_title {
    width: 100%;
    margin-bottom: 0;
    letter-spacing: 0;
    line-height: 1.8;
    text-indent: 0;
    text-align: center;
  }

  .interview_mbti_body .shinsotsu_cta {
    flex-shrink: 0;
  }
}




/* ===========================================
   training
   =========================================== */

.training_section {
  position: relative;
  background-color: #FCEBD9;
  border-radius: 50% / 80px;
  padding: 160px 0 200px;
  overflow: hidden;
}

/* .training_container {
  max-width: var(--shinsotsu-container-width-lg);
  margin: 0 auto;
} */

.training_container {

}

/* intro はビューポート全幅で組むためコンテナ制約を解除する */
.training_intro .training_container {
  max-width: none;
  padding-inline: 0;
}

/* --- intro --- */

/* コンテナを打ち抜いてビューポート全幅で組む */
/* .training_intro_inner {
  display: flex;
  align-items: flex-start;
  gap: 40px;
  width: 100%;
  margin-left: 0;
  padding-left: clamp(40px, 8.8vw, 200px);
} */

.training_intro_inner {
  display: flex;
  align-items: flex-start;
  gap: 40px;
  width: 100%;
  margin-left: 0;
  padding-left: max(var(--shinsotsu-gutter), calc(50vw - (var(--shinsotsu-container-width-lg) / 2)));
}

.training_intro_body {
  flex: 0 1 780px;
  display: flex;
  flex-direction: column;
  width: auto;
  min-height: 600px;
  height: auto;
}


.training_head_logo {
  display: inline-block;
  width: 180px;
  height: 90px;
  margin-left: 30px;
  object-fit: contain;
  vertical-align: middle;
}

.training_lead {
  margin-top: auto;
  padding-left: clamp(0px, calc(-36.1px + 4vw), 40px);
}

.training_lead_title {
  font-size: 25px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.8;
  color: #202627;
}

.training_lead_text {
  margin-top: 20px;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 2;
  color: #202627;
  white-space: nowrap;
}

/* 実績サークル 225×225 */
/* 実績サークル：幅が足りなくなったら折り返す */
.training_stat_list {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(15px, calc(12.68px + 0.6vw), 24px);
  margin-top: 40px;
  padding-left: clamp(0px, calc(-36.1px + 4vw), 40px);
  list-style: none;
}

.training_stat_item {
  --stat-size: clamp(160px, calc(143.2px + 4.3vw), 225px);

  flex: 0 0 var(--stat-size);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: var(--stat-size);
  height: var(--stat-size);
  padding-inline: 18px;
  border-radius: 50%;
  background-color: #F49001;
  text-align: center;
}
.training_stat_lead {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 2.75;
  color: #FFFFFF;
}

.training_stat_label {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 2.2;
  color: #FFFFFF;
}

.training_stat_value {
  display: flex;
  align-items: baseline;
  justify-content: center;
  color: #FFFFFF;
}

.training_stat_value_num {
  font-size: 40px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.1;
}

.training_stat_value_percent {
  font-size: 30px;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.5;
}

.training_stat_value_unit {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 2.2;
}

/* 右画像：残り幅いっぱい・右端張り付き・高さ600固定 */
.training_intro_image {
  flex: 1 1 auto;
  align-self: stretch;
  min-width: clamp(240px, 25vw, 300px);
  height: auto;
  border-radius: 8px 0 0 8px;
  overflow: hidden;
}

/* .training_intro_image {
  flex: 1 1 auto;
  align-self: stretch;
  min-width: clamp(240px, 25vw, 300px);
  max-width: 920px;
  height: auto;
  border-radius: 8px 0 0 8px;
  overflow: hidden;
} */

.training_intro_image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* --- 取得資格 --- */

.training_cert {
  margin-top: 130px;
}

.training_cert_title {
  font-size: 25px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.8;
  color: #202627;
}

.training_cert_list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
  gap: 20px;
  margin-top: 30px;
  list-style: none;
}


.training_cert_item {
  display: flex;
  flex: 1 1 200px;
  max-width: 270px;
}

.training_cert_card {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  height: 280px;
  padding: 30px 20px 24px;
  border: 1px solid #F49001;
  border-radius: 8px;
  background-color: #FBF5F1;
  box-shadow: 2px 2px 10px #F490011A;
  cursor: pointer;
  appearance: none;
  text-align: center;
  transition: transform .3s ease, box-shadow .3s ease;
}

.training_cert_card:hover {
  transform: translateY(-4px);
  box-shadow: 4px 6px 16px #F4900133;
}

.training_cert_card_logo {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 90px;
}

.training_cert_card_logo img {
  max-width: 100px;
  max-height: 90px;
  object-fit: contain;
}

/* 資格名エリアを固定高にして全カードで縦位置を揃える */
.training_cert_card_names {
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 76px;
  margin-top: 16px;
}

.training_cert_card_name {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.6;
  color: #202627;
}

.training_cert_card_name_sub {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.6;
  color: #202627;
}

.training_cert_card_link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: auto;
  align-self: flex-end;
}

.training_cert_card_link_text {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.6;
  color: #F49001;
}

.training_cert_card_link_circle {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 29px;
  height: 29px;
  border-radius: 50%;
  background-color: #FCEBD9;
  color: #EF952A;
}

/* --- 入社後の流れ --- */

.training_flow {
  position: relative;
  margin-top: 140px;
  padding: 80px 0;
  width: 100%;
  /* margin-left: calc(50% - 50vw); */
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}

.training_flow .training_container {
  position: relative;
  z-index: 1;
}

.training_flow_inner {
  display: flex;
  align-items: flex-start;
  gap: 60px;
}

.training_flow_title {
  flex-shrink: 0;
  writing-mode: vertical-rl;
  font-size: 45px;
  font-weight: 700;
  letter-spacing: 0.2em;
  line-height: 1.2;
  color: #202627;
}

.training_step_list {
  flex: 1;
  min-width: 0;
  list-style: none;
}

.training_step_item {
  position: relative;
}

.training_step_item + .training_step_item {
  margin-top: 90px;
}

.training_step_item + .training_step_item::before {
  content: '';
  position: absolute;
  top: -66px;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 25px;
  background-color: #EF952A;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.training_step_card {
  display: flex;
  align-items: center;
  gap: 40px;
  min-height: 220px;
  padding: 30px 50px;
  border-radius: 8px;
  background-color: #FFFFFF;
  box-shadow: 2px 2px 10px #F490011A;
}

.training_step_term {
  flex: 0 0 140px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 140px;
  height: 140px;
  border-radius: 50%;
  background-color: #EF952A;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.5;
  color: #FFFFFF;
  text-align: center;
}

.training_step_body {
  flex: 1;
  min-width: 0;
}

.training_step_title {
  font-size: 25px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 2;
  color: #202627;
}

.training_step_text {
  margin-top: 12px;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 1.8;
  color: #202627;
}

.training_stat_lead   { font-size: clamp(14px, calc(13.48px + 0.14vw), 16px); }
.training_stat_label  { font-size: clamp(14px, calc(12.45px + 0.4vw), 20px); }
.training_stat_value_num     { font-size: clamp(30px, calc(27.42px + 0.66vw), 40px); }
.training_stat_value_percent { font-size: clamp(14px, calc(9.87px + 1.06vw), 30px); }
.training_stat_value_unit    { font-size: clamp(14px, calc(12.45px + 0.4vw), 20px); }


/* ▼ training - responsive（BP:900px / SP期待値 390px 基準） --------- */

@media screen and (max-width: 900px) {
  /* 上部の丸みはPCのみ */
  .training_section {
    border-radius: 0;
    padding: clamp(80px, calc(18.82px + 15.69vw), 160px) 0
             clamp(100px, calc(23.53px + 19.61vw), 200px);
  }

  /* --- intro --- */

  .training_intro_inner {
    flex-direction: column;
    gap: 40px;
    padding-left: 0;
  }

  .training_container {
    padding-top:20px
  }

  .training_intro_body {
    flex: 0 0 auto;
    min-height: 0;
    padding-inline: var(--shinsotsu-gutter);
  }

  .training_head_logo {
    width: clamp(100px, calc(38.82px + 15.69vw), 180px);
    height: clamp(50px, calc(19.41px + 7.84vw), 90px);
    margin-left: 60px;
  }

  .training_lead {
    margin-top: clamp(30px, calc(7.06px + 5.88vw), 60px);
  }

  .training_lead_title {
    letter-spacing: 0.03em;
  }

  .training_lead_text {
    margin-top: clamp(15px, calc(11.18px + 0.98vw), 20px);
    white-space: normal;
  }

  .training_stat_list {
    justify-content: center;
    margin-top: clamp(30px, calc(22.35px + 1.96vw), 40px);
  }

  .training_stat_lead {
    line-height: 1.8;
  }

  .training_stat_value_num {
    letter-spacing: 0.03em;
    line-height: 1;
  }

  .training_stat_value_percent {
    letter-spacing: 0.08em;
    line-height: 2.2;
  }

  /* 画像：SPは全幅・角丸なし */
  .training_intro_image {
    align-self: auto;
    width: 100%;
    min-width: 0;
    aspect-ratio: 330 / 240;
    border-radius: 0;
  }

  /* --- 取得資格 --- */

  .training_cert {
    margin-top: clamp(60px, calc(6.47px + 13.73vw), 130px);
  }

  /* 340px幅でも1行に収める */
  .training_cert_title {
    font-size: clamp(20px, calc(16.18px + 0.98vw), 25px);
    letter-spacing: 0.03em;
    padding-bottom: 35px;
    text-align: center;
    font-size: 25px;
    white-space: nowrap;
  }

  .training_cert_list {
    /* gap: clamp(15px, calc(11.18px + 0.98vw), 20px); */
    gap:30px;
    margin-top: clamp(20px, calc(12.35px + 1.96vw), 30px);
  }

  /* --- 入社後の流れ --- */

  .training_flow {
    margin-top: clamp(70px, calc(16.47px + 13.73vw), 140px);
    padding: clamp(40px, calc(9.41px + 7.84vw), 80px) 0;
  }

  .training_flow_inner {
    flex-direction: column;
    align-items: stretch;
    gap: clamp(30px, calc(7.06px + 5.88vw), 60px);
  }

  .training_flow_title {
    align-self: flex-start;
    font-size: clamp(30px, calc(18.53px + 2.94vw), 45px);
  }

  .training_step_list {
    flex: 0 0 auto;
    width: 100%;
  }

  .training_step_item + .training_step_item {
    margin-top: clamp(50px, calc(19.41px + 7.84vw), 90px);
  }

  .training_step_item + .training_step_item::before {
     top: clamp(-38px, calc(-16.59px - 5.49vw), -66px);
    /* width: clamp(40px, calc(27.76px + 3.14vw), 56px);
    height: clamp(20px, calc(13.88px + 1.57vw), 28px);  */
  }

  .training_step_card {
    flex-direction: column;
    align-items: stretch;
    gap: clamp(20px, calc(4.71px + 3.92vw), 40px);
    min-height: 0;
    padding: clamp(30px, calc(14.71px + 3.92vw), 50px)
             clamp(25px, calc(5.88px + 4.9vw), 50px);
  }

  .training_step_term {
    flex: 0 0 auto;
    align-self: center;
    width: clamp(90px, calc(51.76px + 9.8vw), 140px);
    height: clamp(90px, calc(51.76px + 9.8vw), 140px);
    font-size: clamp(14px, calc(9.41px + 1.18vw), 20px);
    line-height: 1.3;
  } 

  /* .training_step_term {
  flex: 0 0 auto;
  align-self: center;
  margin-inline: auto;
  width: clamp(90px, calc(51.76px + 9.8vw), 140px);
  height: clamp(90px, calc(51.76px + 9.8vw), 140px);
  font-size: clamp(14px, calc(9.41px + 1.18vw), 20px);
  line-height: 1.3;
} */

  .training_step_title {
    font-size: clamp(20px, calc(16.18px + 0.98vw), 25px);
    line-height: 1.5;
  }

  .training_step_text {
    margin-top: 20px;
  }

  .training_stat_value_unit {
     white-space: nowrap;
  }
}

@media screen and (max-width: 576px) {
  .training_cert_item {
    flex: 1 1 100%;
    max-width: 400px;
  }
}

/* ▼ training cert - responsive（PC狭幅 901〜1050px を3+2構成に固定） --------- */

@media screen and (min-width: 901px) and (max-width: 1050px) {
  .training_cert_item {
    flex: 0 1 calc((100% - 40px) / 3);
    max-width: none;
  }
}

/* ▼ training intro - responsive（PC狭幅 901〜1100px 用の中間調整） --------- */


@media screen and (min-width: 901px) and (max-width: 1100px) {
  .training_intro_body {
    flex: 1 1 auto;
    min-width: 0;
  }

  .training_intro_image {
    flex: 0 0 34%;
    min-width: 0;
  }

  .training_lead_text {
    white-space: normal;
  }

  .training_stat_list {
    gap: clamp(10px, 1.5vw, 20px);
  }

  .training_stat_item {
    --stat-size: clamp(130px, 15vw, 170px);
    padding-inline: 10px;
  }

  .training_stat_lead {
    font-size: 12px;
    letter-spacing: 0;
    line-height: 1.3;
  }

  .training_stat_label {
    font-size: 14px;
    line-height: 1.5;
  }

  .training_stat_value_num {
    font-size: 24px;
  }

  .training_stat_value_percent {
    font-size: 18px;
  }

  .training_stat_value_unit {
    font-size: 14px;
  }
}

/* ===========================================
   training modal
   =========================================== */

.training_modal {
  position: fixed;
  inset: 0;
  z-index: 1100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s ease, visibility .3s ease;
}

.training_modal.is_open {
  opacity: 1;
  visibility: visible;
}

.training_modal_overlay {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, .5);
}

.training_modal_panel {
  position: relative;
  width: 750px;
  height: 600px;
  max-width: 100%;
  max-height: 100%;
  padding: 50px;
  border: 3px solid #EF952A;
  border-radius: 20px;
  background-color: #FFFBF8;
  overflow-y: auto;
}

.training_modal_close {
  position: absolute;
  top: 24px;
  right: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background-color: #E2E2E2;
  color: #202627;
  cursor: pointer;
  appearance: none;
  transition: opacity .3s ease;
}

.training_modal_close:hover {
  opacity: .7;
}

.training_modal_title {
  font-size: 25px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.8;
  color: #EF952A;
  text-align: center;
}

.training_modal_text {
  margin-top: 20px;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.8;
  color: #202627;
}

.training_modal_curriculum {
  margin-top: 32px;
}

.training_modal_curriculum_title {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.8;
  color: #202627;
}

/* 2カラム・縦流し */
.training_modal_curriculum_list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-auto-flow: column;
  grid-template-rows: repeat(3, auto);
  column-gap: 24px;
  margin-top: 8px;
  list-style: none;
}

.training_modal_curriculum_item {
  position: relative;
  padding-left: 18px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.8;
  color: #F49001;
}

.training_modal_curriculum_item::before {
  content: '・';
  position: absolute;
  top: 0;
  left: 0;
}

/* ▼ training modal - responsive（BP:900px） --------- */

@media screen and (max-width: 900px) {
  .training_modal {
    padding: 20px var(--shinsotsu-gutter);
  }

  .training_modal_panel {
    width: 100%;
    height: auto;
    max-height: 100%;
    padding: clamp(40px, calc(32.35px + 1.96vw), 50px)
             clamp(20px, calc(-2.94px + 5.88vw), 50px);
  }

  .training_modal_close {
    top: 15px;
    right: 15px;
    width: clamp(40px, calc(32.35px + 1.96vw), 50px);
    height: clamp(40px, calc(32.35px + 1.96vw), 50px);
  }

  /* 研修内容例は1カラム */
  .training_modal_curriculum_list {
    grid-template-columns: 1fr;
    grid-auto-flow: row;
    grid-template-rows: none;
  }

  .training_modal_curriculum {
    margin-top: 24px;
  }

  /* 縦の間延びを詰めてスクロールを抑える */
  .training_modal_curriculum_item {
    line-height: 1.5;
  }
}

/* ===========================================
   number
   =========================================== */

.number_section {
  position: relative;
  padding: 120px 0;
  padding-top: 200px;
}

/* .number_container {
  max-width: var(--shinsotsu-container-width-lg);
  margin: 0 auto;
} */

.number_slider_control {
  display: none;
}

/* .number_list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
  gap: 30px;
  margin-top: 80px;
  list-style: none;
} */

.number_list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 30px;
  margin-top: 80px;
  list-style: none;
}

@media screen and (max-width: 1200px) {
  .number_list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


.number_card {
  display: flex;
  flex-direction: column;
  align-items: center;
  height: clamp(280px, calc(243.8px + 9.27vw), 420px);
  padding: clamp(20px, calc(17.4px + 0.66vw), 30px)
           clamp(16px, calc(13.93px + 0.53vw), 24px);
  border-radius: 8px;
  background-color: #FFFFFF;
  box-shadow: 2px 2px 10px #F490011A;
  text-align: center;
}

.number_card_title {
  align-self: flex-start;
  margin-left: clamp(0px, calc(-5.17px + 1.32vw), 20px);
  font-size: clamp(16px, calc(14.97px + 0.26vw), 20px);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 2.2;
  color: #202627;
}

.number_card_icon {
  display: flex;
  align-items: center;
  justify-content: center;
  height: clamp(60px, calc(47.1px + 3.31vw), 110px);
  margin-top: 8px;
}

.number_card_icon img {
  width: auto;
  height: 100%;
  max-width: 100%;
  object-fit: contain;
}

.number_card_value {
  display: flex;
  align-items: baseline;
  justify-content: center;
  margin-top: clamp(10px, calc(4.83px + 1.32vw), 30px);
  color: #EF9529;
}

.number_card_value_num {
  font-size: clamp(53px, calc(46.03px + 1.79vw), 80px);
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 0.5;
  font-variant-numeric: tabular-nums;
}

.number_card_value_text {
  font-size: clamp(27px, calc(23.64px + 0.86vw), 40px);
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1;
}


.number_card_average {
  margin-top: 24px;
  font-size: 25px;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.8;
  color: #202627;
}

.number_card_note {
  margin-top: auto;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 3.1;
  color: #202627;
}


/* ▼ number - responsive（BP:900px / SP期待値 390px 基準） --------- */

@media screen and (max-width: 900px) {
  .number_section {
    padding: clamp(60px, calc(14.12px + 11.76vw), 120px) 0;
    padding-top: 120px;
  }

  .number_slider {
    position: relative;
    padding-left: 45px;
    margin-top: clamp(30px, calc(-8.24px + 9.8vw), 80px);
  }

  .number_slider_swiper {
    overflow: hidden;
  }

  /* grid → swiper wrapper */
  .number_list {
    display: flex;
    grid-template-columns: none;
    gap: 0;
    margin-top: 0;
    transition-property: transform;
  }

  .number_item {
    flex-shrink: 0;
    width: clamp(280px, calc(142.35px + 35.29vw), 460px);
  }

  .number_card_title {
    line-height: 1.8;
  }

  .number_card_note {
    line-height: 2;
  }

  /* --- 前へボタン（左のみ） --- */

  .number_slider_control {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 32px;
    padding: 0;
    border: none;
    background-color: transparent;
    color: #EF952A;
    cursor: pointer;
    appearance: none;
  }

  .number_slider_control svg {
    width: 16px;
    height: 30px;
  }

  .number_slider_control svg path {
    stroke-width: 3.4;
  }

  .number_card_icon {
    height: clamp(70px, calc(58.8px + 5.6vw), 110px);
    margin-top: 16px;
  }

  .number_card_value {
    margin-top: clamp(16px, calc(8.8px + 2.24vw), 30px);
  }
}

/* ===========================================
   benefits
   =========================================== */

.benefits_section {
  position: relative;
  padding: 120px 0;
}

.benefits_tab {
  margin-top: clamp(30px, calc(-15px + 5vw), 80px);
}

/* --- タブ --- */

.benefits_tab_list {
  display: flex;
  gap: clamp(10px, calc(2.4px + 0.4vw), 14px);
  padding-left: clamp(0px, calc(-66.7px + 6.67vw), 60px);
}

.benefits_tab_button {
  flex: 1 1 0;
  min-width: 0;
  max-width: 400px;
  height: clamp(60px, calc(42px + 2vw), 80px);
  padding: 0 10px;
  border: 2px solid #EF952A;
  border-bottom: none;
  border-radius: 8px 8px 0 0;
  background-color: #FFFBF8;
  font-size: clamp(14px, calc(8.6px + 0.6vw), 20px);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.4;
  color: #202627;
  cursor: pointer;
  appearance: none;
  transition: background-color .3s ease, color .3s ease;
}

.benefits_tab_button.is_active {
  background-color: #EF952A;
  color: #FFFFFF;
  cursor: default;
}

/* --- パネル --- */

.benefits_panel_wrap {
  position: relative;
  border: 2px solid #EF952A;
  border-radius: 8px;
  background-color: #FFFFFF;
}

.benefits_panel {
  display: none;
  align-items: center;
  min-height: clamp(380px, calc(317px + 7vw), 450px);
  padding: clamp(24px, calc(9.6px + 1.6vw), 40px)
           clamp(24px, calc(-80.4px + 11.6vw), 80px)
           clamp(24px, calc(9.6px + 1.6vw), 40px)
           clamp(24px, calc(-8.4px + 3.6vw), 60px);
}

.benefits_panel.is_active {
  display: flex;
}

/* タブ切り替え時に内部をふわっと表示 */
.benefits_panel.is_active .benefits_panel_head,
.benefits_panel.is_active .benefits_panel_image,
.benefits_panel.is_active .benefits_panel_body {
  animation: benefits_panel_in .5s ease both;
}

.benefits_panel.is_active .benefits_panel_image {
  animation-delay: .06s;
}

.benefits_panel.is_active .benefits_panel_body {
  animation-delay: .12s;
}

@keyframes benefits_panel_in {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.benefits_panel_head {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: clamp(240px, calc(78px + 18vw), 420px);
  margin-right: clamp(30px, calc(-51px + 9vw), 80px);
}

/* 画像がある場合は見出し幅を詰める */
.benefits_panel--has_image .benefits_panel_head {
  width: clamp(200px, calc(74px + 14vw), 340px);
  margin-right: clamp(20px, calc(2px + 2vw), 40px);
}

.benefits_panel_num {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: clamp(56px, calc(43.4px + 1.4vw), 70px);
  height: clamp(56px, calc(43.4px + 1.4vw), 70px);
  border-radius: 50%;
  background-color: #EF952A;
  font-size: clamp(20px, calc(15.5px + 0.5vw), 25px);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.8;
  color: #FFFFFF;
  text-indent: 0.08em;
}

.benefits_panel_title {
  margin-top: clamp(20px, calc(2px + 2vw), 40px);
  font-size: clamp(25px, calc(16px + 1vw), 35px);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.2;
  color: #202627;
  text-align: center;
  text-indent: 0.08em;
}

/* --- パネル内画像 --- */

.benefits_panel_image {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: clamp(12px, calc(4.8px + 0.8vw), 20px);
  margin-right: clamp(24px, calc(-26.4px + 5.6vw), 80px);
}

.benefits_panel_image img {
  display: block;
  width: clamp(180px, calc(72px + 12vw), 300px);
  height: clamp(96px, calc(38.4px + 6.4vw), 160px);
  border-radius: 8px;
  object-fit: cover;
}

/* --- 項目リスト --- */

.benefits_panel_body {
  flex: 1;
  min-width: 0;
}

.benefits_item_list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-flow: column;
  grid-template-rows: repeat(6, auto);
  column-gap: 6px;
  row-gap: 6px;
  list-style: none;
}

/* 画像ありパネルは1カラム */
.benefits_panel--has_image .benefits_item_list {
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: repeat(6, auto);
}

.benefits_item {
  position: relative;
  min-width: 0;
  padding-left: clamp(22px, calc(11.2px + 1.2vw), 28px);
  font-size: clamp(13.5px, 1.2vw, 18px);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 2.4;
  color: #202627;
}

.benefits_item::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: clamp(8px, calc(6.2px + 0.2vw), 10px);
  height: clamp(8px, calc(6.2px + 0.2vw), 10px);
  border-radius: 50%;
  background-color: #EF952A;
}

/* ▼ benefits - responsive（BP:900px / SP期待値 390px 基準） --------- */

@media screen and (max-width: 900px) {
  .benefits_section {
    padding: clamp(60px, calc(14.12px + 11.76vw), 120px) 0;
  }

  .benefits_tab {
    margin-top: clamp(20px, calc(12.35px + 1.96vw), 30px);
  }

  /* --- スクロールボタン --- */

  .benefits_tab_list {
    flex-direction: column;
    gap: 20px;
    padding-left: 0;
  }

  .benefits_tab_button {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    max-width: none;
    height: clamp(56px, calc(52.94px + 0.78vw), 60px);
    padding: 0 20px 0 56px;
    border: none;
    border-radius: 12px;
    background-color: #EF952A;
    color: #FFFFFF;
    cursor: pointer;
    min-height: 60px;
    font-size: 20px;
  }

  .benefits_tab_button::before {
    content: '↓';
    position: absolute;
    left: 20px;
    font-size: 20px;
    font-weight: 700;
    line-height: 1;
  }

  /* .benefits_tab_button::before {
  content: '';
  position: absolute;
  left: 20px;
  width: 0;
  height: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 8px solid currentColor;
} */

  /* --- カード（全パネル表示） --- */

  .benefits_panel_wrap {
    display: flex;
    flex-direction: column;
    gap: 30px;
    margin-top: 60px;
    border: none;
    border-radius: 0;
    background-color: transparent;
  }

  .benefits_panel {
    display: flex;
    flex-direction: column;
    min-height: 0;
    padding: clamp(30px, calc(22.35px + 1.96vw), 40px)
             clamp(20px, calc(4.71px + 3.92vw), 40px);
    border: 2px solid #EF952A;
    border-radius: 20px;
    background-color: #FFFFFF;
    scroll-margin-top: calc(var(--shinsotsu-header-height) + 20px);
    padding-top: 50px;
    padding-bottom: 75px;
  }

  .benefits_panel_head,
  .benefits_panel--has_image .benefits_panel_head {
    width: 100%;
    margin-right: 0;
  }

  .benefits_panel_title {
    margin-top: clamp(15px, calc(-4.12px + 4.9vw), 40px);
    line-height: 1.8;
  }

  .benefits_panel_image {
    margin: clamp(20px, calc(12.35px + 1.96vw), 30px) 0 0;
  }

  .benefits_panel_image img {
    width: 100%;
    height: auto;
    aspect-ratio: 300 / 160;
  }

  /* 表示は1枚（上側）のみ */
  .benefits_panel_image img:nth-of-type(n + 2) {
    display: none;
  }

  .benefits_panel_body {
    width: 100%;
    margin-top: clamp(20px, calc(12.35px + 1.96vw), 30px);
  }

  .benefits_item_list {

    padding-left: 10px;

  }

  .benefits_item_list,
  .benefits_panel--has_image .benefits_item_list {
    grid-template-columns: minmax(0, 1fr);
    grid-auto-flow: row;
    grid-template-rows: none;
    row-gap: 10px;
  }

  .benefits_item {
    font-size: clamp(16px, calc(12.35px + 1.96vw), 18px);
    line-height: 1.6;
  }
}



/* ===========================================
   column
   =========================================== */

.column_section {
  position: relative;
  padding: 60px 0;
  padding-bottom:160px;
}

.column_container {
  position: relative;
}

.column_slider {
  /* 矢印はコンテナ外→内へ連続移動。狭い側は内側スペースを確保する */
  --column_ctrl_x: clamp(-70px, calc(210px - 17.5vw), 0px);

  position: relative;
  margin-top: clamp(30px, calc(-15px + 5vw), 80px);
  padding-inline: clamp(0px, calc(180px - 11.25vw), 45px);
}

.column_slider_swiper {
  overflow: hidden;
}

.column_slider_swiper .swiper-wrapper {
  align-items: stretch;
}

.column_slider_swiper .swiper-slide {
  height: auto;
}

/* --- カード --- */

.column_card {
  display: block;
  text-decoration: none;
  transition: opacity .3s ease;
}

.column_card:hover {
  opacity: .8;
}

.column_card_image {
  border-radius: 8px;
  overflow: hidden;
}

/* .column_card_image img {
  display: block;
  width: 100%;
  height: clamp(170px, calc(89px + 9vw), 260px);
  object-fit: cover;
} */

.column_card_image img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
  object-fit: cover;
}

.column_card_title {
  margin-top: clamp(15px, calc(6.9px + 0.9vw), 24px);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.9;
  color: #202627;
}

/* --- 前後ボタン --- */

.column_slider_control {
  position: absolute;
  /* サムネイル高さの中央 */
  top: clamp(85px, calc(44.5px + 4.5vw), 130px);
  transform: translateY(-50%);
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: none;
  background-color: transparent;
  color: #EF952A;
  cursor: pointer;
  appearance: none;
  transition: opacity .3s ease;
}

.column_slider_control:hover {
  opacity: .6;
}

/* 枚数が足りていても隠さない */
.column_slider_control.swiper-button-lock {
  display: flex;
}

.column_slider_control svg {
  width: clamp(16px, calc(14.2px + 0.2vw), 18px);
  height: clamp(30px, calc(26.4px + 0.4vw), 34px);
}

.column_slider_control svg path {
  stroke-width: clamp(2px, calc(4.66px - 0.14vw), 3.4px);
}

.column_slider_control--prev {
  left: var(--column_ctrl_x);
}

.column_slider_control--next {
  right: var(--column_ctrl_x);
}

.column_action {
  margin-top: 60px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* ▼ column - responsive（BP:900px / SP期待値 390px 基準） --------- */

@media screen and (max-width: 900px) {
  .column_section {
    padding: clamp(60px, calc(14.12px + 11.76vw), 120px) 0;
  }

  .column_slider {
    margin-inline: calc(var(--shinsotsu-gutter) * -1);
    padding-inline: 45px;
  }


  .column_section {
    padding: clamp(60px, calc(14.12px + 11.76vw), 120px) 0;
  }

  .column_slider {
    margin-inline: calc(var(--shinsotsu-gutter) * -1);
    padding-inline: 45px;
  }

  .column_slider_control--prev {
    left: 0;
  }

  .column_slider_control--next {
    right: 0;
  }

  .column_action {
    margin-top: clamp(30px, calc(2.35px + 7.06vw), 60px);
  }
  
}


/* ===========================================
   entry
   =========================================== */

.entry_section {
  position: relative;
  padding: clamp(60px, calc(6.47px + 13.73vw), 130px) 0
           clamp(70px, calc(16.47px + 13.73vw), 140px);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}

/* 背景写真の上でテキストを読ませるためのオーバーレイ */
.entry_section::before {
  content: '';
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, .35);
}

.entry_container {
  position: relative;
  z-index: 1;
}

/* --- 見出し --- */

.entry_heading {
  align-items: center;
  text-align: center;
}

.entry_heading .shinsotsu_heading_en,
.entry_heading .shinsotsu_heading_ja {
  color: #FFFFFF;
}

/* --- リード --- */

.entry_lead {
  margin-top: clamp(24px, calc(11.76px + 3.14vw), 40px);
  text-align: center;
}

.entry_lead_text {
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 2;
  color: #FFFFFF;
}

.entry_lead_text + .entry_lead_text {
  margin-top: clamp(24px, calc(17.88px + 1.57vw), 32px);
}

/* --- CTA --- */

/* .entry_action {
  margin-top: clamp(30px, calc(16.24px + 3.53vw), 48px);
  text-align: center;
} */

/* .entry_action {
  margin-top: clamp(30px, calc(16.24px + 3.53vw), 48px);
  display: flex;
  flex-direction: column;
  align-items: center;
} */

.entry_action {
  margin-top: clamp(30px, calc(16.24px + 3.53vw), 48px);
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* --- 説明会 / インターンシップ カード --- */

.entry_card_list {
  display: flex;
  justify-content: center;
  gap: clamp(20px, calc(16.18px + 0.98vw), 25px);
  margin-top: clamp(40px, calc(9.41px + 7.84vw), 80px);
  list-style: none;
}

.entry_card_item {
  flex: 1 1 0;
  min-width: 0;
  max-width: 600px;
}

.entry_card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 400px;
  padding: clamp(20px, calc(4.71px + 3.92vw), 40px);
  border-radius: 8px;
  background-color: rgba(0, 0, 0, .3);
  text-align: center;
  padding-inline: 20px;
}

.entry_card_badge {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.entry_card_badge_icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  object-fit: contain;
}

.entry_card_badge_text {
  font-size: clamp(16px, calc(12.18px + 0.98vw), 20px);
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.8;
}

.entry_card_badge--line .entry_card_badge_text {
  color: #04C755;
}

.entry_card_badge--text .entry_card_badge_text {
  color: #F49001;
}

.entry_card_title {
  margin-top: 12px;
  /* font-size: clamp(25px, calc(9.71px + 3.92vw), 45px); */
  font-size: clamp(30px, 2.5vw, 45px);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.4;
  color: #FFFFFF;
  text-indent: 0.08em;
}

.entry_card_text {
  margin-top: 24px;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1.9;
  color: #FFFFFF;
}

.entry_card_cta {
  margin-top: clamp(24px, calc(17.88px + 1.57vw), 32px);
}

.deadline_text {
  margin-top : 25px;
  font-size: 18px;
  font-weight: 700;
  color: #FFFFFF;
  letter-spacing: 0.06em;
}
.intern_circle_right {
  right: 20px;
}

/* ▼ entry - responsive（BP:900px / SP期待値 390px 基準） --------- */

@media screen and (max-width: 900px) {

  .entry_section {
    background-position: right center;
  }

  .entry_heading .shinsotsu_heading_ja {
    font-size: clamp(25px, calc(21.18px + 0.98vw), 45px);
  }
  .entry_card_list {
    flex-direction: column;
  }

  .entry_card_item {
    flex: 0 0 auto;
    max-width: none;
  }

  .entry_card_badge_text {
    letter-spacing: 0;
    line-height: 2;
  }

  .entry_card_title {

    line-height: 1.8;
  }

  .entry_card_text {
    line-height: 2.2;
  }

  .entry_pc_only {
    display: none;
  }

  .entry_card_list {
    flex-direction: column;
    margin-inline: calc(var(--shinsotsu-gutter) * -1);
    gap: 0;
  }

  .entry_card_item {
    flex: 0 0 auto;
    max-width: none;
    width: 100%;
  }

  .entry_card {
    height: auto;
    border-radius: 0;
    padding-block: 55px;
    margin-top: 20px;
  }
}


/* ===========================================
   faq
   =========================================== */

.faq_section {
  position: relative;
  padding: clamp(60px, calc(14.12px + 11.76vw), 120px) 0;
  padding-top: 120px;
}

.faq_container {
  display: flex;
  align-items: flex-start;
  gap: clamp(24px, calc(-3.53px + 7.06vw), 60px);
}

.faq_head {
  flex-shrink: 0;
  width: clamp(240px, calc(96px + 16vw), 400px);
  padding-top: 20px;
}

.faq_list {
  flex: 1;
  min-width: 0;
  max-width: 1000px;
  list-style: none;
  margin-top: 70px;
}

.faq_item + .faq_item {
  margin-top: clamp(15px, calc(10.5px + 0.5vw), 20px);
}

/* --- 質問 --- */

.faq_question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(12px, calc(1.2px + 1.2vw), 24px);
  width: 100%;
  min-height: 80px;
  padding: clamp(15px, calc(10.5px + 0.5vw), 20px)
           clamp(20px, calc(5.6px + 1.6vw), 36px);
  border: none;
  border-radius: 8px;
  background-color: #EDE6E2;
  cursor: pointer;
  appearance: none;
  text-align: left;
  transition: opacity .3s ease;
}

.faq_question:hover {
  opacity: .8;
}

.faq_question_text {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 2.2;
  color: #202627;
}

.faq_question_marker {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(15px, calc(5.1px + 1.1vw), 26px);
  height: clamp(7px, calc(2.5px + 0.5vw), 12px);
  color: #20262799;
  transition: transform .45s cubic-bezier(.22, .61, .36, 1);
}

.faq_question_marker svg {
  width: 100%;
  height: 100%;
}

.faq_question_marker svg path {
  stroke-width: clamp(3px, calc(2.1px + 0.1vw), 4px);
}

.faq_question.is_open .faq_question_marker {
  transform: rotate(180deg);
}

/* --- 回答 --- */

.faq_answer {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .45s cubic-bezier(.22, .61, .36, 1);
}

.faq_answer.is_open {
  grid-template-rows: 1fr;
}

.faq_answer_inner {
  overflow: hidden;
  background-color: #FFFFFF;
  border-radius: 0 0 8px 8px;
}

.faq_answer_text {
  padding: clamp(20px, calc(11px + 1vw), 30px)
           clamp(20px, calc(5.6px + 1.6vw), 36px)
           clamp(24px, calc(9.6px + 1.6vw), 40px);
  font-size: clamp(14px, calc(12.2px + 0.2vw), 16px);
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.9;
  color: #202627;
}

.faq_answer_label {
  margin-right: 4px;
  font-weight: 700;
}



/* ▼ faq - responsive（BP:900px / SP期待値 390px 基準） --------- */

@media screen and (max-width: 900px) {
  .faq_container {
    flex-direction: column;
  }

  .faq_head {
    width: auto;
    padding-top: 0;
  }

  .faq_list {
    width: 100%;
    max-width: none;
    margin-top: 0;
  }

  .faq_question_text {
    letter-spacing: 0.03em;
    line-height: 2.75;
  }

  .faq_answer_text {
    line-height: 2.2;
  }
}




/* ===========================================
   marquee
   =========================================== */

.marquee_section {
  position: relative;
  padding: clamp(30px, calc(7.06px + 5.88vw), 60px) 0 0;
  overflow: hidden;
}


.marquee_track {
  display: flex;
  width: max-content;
  animation: marquee_scroll 60s linear infinite;
}

.marquee_image {
  display: block;
  flex-shrink: 0;
  height: 550px;
  width: auto;
}

/* 2枚中1枚分だけ動かして原点に戻す＝継ぎ目なし */
@keyframes marquee_scroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

/* 動きを減らす設定のユーザーには停止 */
@media (prefers-reduced-motion: reduce) {
  .marquee_track {
    animation: none;
  }
}


/* ▼ marquee - responsive（BP:900px） --------- */

@media screen and (max-width: 900px) {
  .marquee_image {
    height: clamp(260px, calc(37.53px + 57.06vw), 550px);
  }
}
/* .about_ai_contents {
  margin: 0 auto;
  margin-left: 75px;
} */


/* アンカー遷移時のオフセット*/
#about,
#diagnosis,
#interview,
#training,
#number,
#benefits,
#column,
#faq {
 scroll-margin-top: 60px; 
}
