@charset "UTF-8";
/* =========================================================
   course.css
   SERVICE 01 / 02 共通のコース切替タブ、02（生成AIコース）専用パーツ
   style.css の後に読み込む。SP基準390px / PC基準1890px（style.cssと同じvw換算）
   ========================================================= */

/* ---------------- コース切替タブ ---------------- */
.courseTab {
  margin-bottom: 15.3846153846vw;
  display: flex;
  flex-direction: column;
  gap: 6.1538461538vw;
}
@media screen and (min-width: 960px) {
  .courseTab {
    margin-bottom: 3.9682539683vw;
    gap: 0.7936507937vw;
  }
}
.courseTab_group {
  display: flex;
  flex-direction: column;
  gap: 2.5641025641vw;
}
@media screen and (min-width: 960px) {
  .courseTab_group {
    flex-direction: row;
    align-items: center;
    gap: 1.3227513228vw;
  }
}
.courseTab_label {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 3.3333333333vw;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.4px;
  color: #222;
  display: flex;
  align-items: center;
  gap: 1.5384615385vw;
}
@media screen and (min-width: 960px) {
  .courseTab_label {
    width: 5.2910052910vw;
    font-size: 0.9259259259vw;
    gap: 0.3968253968vw;
    flex-shrink: 0;
  }
}
.courseTab_label::before {
  content: "";
  display: block;
  width: 1.5384615385vw;
  aspect-ratio: 1/1;
  border-radius: 50%;
  background: #00cb9b;
}
@media screen and (min-width: 960px) {
  .courseTab_label::before {
    width: 0.3968253968vw;
  }
}
.courseTab_list {
  display: flex;
  flex-direction: column;
  gap: 2.5641025641vw;
}
@media screen and (min-width: 960px) {
  .courseTab_list {
    flex-direction: row;
    gap: 1.3227513228vw;
  }
}
.courseTab_link,
.courseTab_current {
  min-height: 12.3076923077vw;
  padding: 0 5.1282051282vw;
  border: 1px solid #00cb9b;
  border-radius: 100px;
  background: #fff;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 3.5897435897vw;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.28px;
  color: #222;
  display: flex;
  align-items: center;
  gap: 2.5641025641vw;
  transition: 0.3s;
}
@media screen and (min-width: 960px) {
  .courseTab_link,
  .courseTab_current {
    min-height: 3.1746031746vw;
    padding: 0 1.5873015873vw;
    font-size: 0.9920634921vw;
    letter-spacing: 0.32px;
    gap: 0.6613756614vw;
  }
}
.courseTab_link:hover {
  background: #e6faf5;
}
.courseTab_current {
  background: #00cb9b;
  color: #fff;
}
.courseTab_num {
  font-family: "Outfit", sans-serif;
  font-size: 4.1025641026vw;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.56px;
  color: #00cb9b;
}
@media screen and (min-width: 960px) {
  .courseTab_num {
    font-size: 1.1904761905vw;
  }
}
.courseTab_current .courseTab_num {
  color: #fff;
}
.courseTab_term {
  margin-left: auto;
  font-size: 3.0769230769vw;
  font-weight: 500;
}
@media screen and (min-width: 960px) {
  .courseTab_term {
    margin-left: 0.3968253968vw;
    font-size: 0.8597883598vw;
  }
}

/* ---------------- TOPページ：2つ目以降のボタン ---------------- */
.home .service .btn + .btn {
  margin-top: 4.1025641026vw;
}
@media screen and (min-width: 960px) {
  .home .service .btn {
    grid-column: 1/2;
  }
  .home .service .btn + .btn {
    margin-top: 1.3227513228vw;
  }
}
.home .service .btn._ai .btn_link {
  background-color: #00cb9b;
}
.home .service .btn._personal .btn_link {
  border: 1px solid #0e5cd2;
  background-color: #fff;
  color: #0e5cd2;
}
.home .service .btn._personal .btn_link::after {
  background-image: url(/images/ic_arrow-blue.svg);
}

/* ---------------- 個人向けページ：費用セクションが無いので最後の区切り線を消す ---------------- */
.service .about._last {
  padding-bottom: 0;
  border-bottom: none;
  margin-bottom: 0;
}

/* ---------------- 個人向けページ：SERVICE見出し下のリード ---------------- */
.service .personalLead {
  width: fit-content;
  padding: 2.0512820513vw 4.1025641026vw;
  margin-bottom: 5.1282051282vw;
  border-radius: 100px;
  background: #fce200;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 3.3333333333vw;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.3px;
}
@media screen and (min-width: 960px) {
  .service .personalLead {
    padding: 0.5291005291vw 1.0582010582vw;
    margin-bottom: 1.3227513228vw;
    font-size: 0.9259259259vw;
  }
}

/* ---------------- 学習内容テーブル（service_graph01 のHTML版） ---------------- */
.skillTable {
  margin-bottom: 15.3846153846vw;
  border-top: 1px solid #e1e1e1;
  border-left: 1px solid #e1e1e1;
}
@media screen and (min-width: 960px) {
  .skillTable {
    margin-bottom: 3.9682539683vw;
  }
}
.skillTable_row {
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 960px) {
  .skillTable_row {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
}
.skillTable_dttl,
.skillTable_desc {
  border-right: 1px solid #e1e1e1;
  border-bottom: 1px solid #e1e1e1;
}
.skillTable_dttl {
  padding: 4.1025641026vw 5.1282051282vw;
  background: #ebebeb;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 3.8461538462vw;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.3px;
}
@media screen and (min-width: 960px) {
  .skillTable_dttl {
    padding: 1.3227513228vw 1.5873015873vw;
    background: transparent;
    font-size: 1.1111111111vw;
    letter-spacing: 0.36px;
    display: flex;
    align-items: center;
  }
}
.skillTable_desc {
  padding: 5.1282051282vw;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 3.0769230769vw 6.1538461538vw;
}
@media screen and (min-width: 960px) {
  .skillTable_desc {
    padding: 1.3227513228vw 1.5873015873vw;
    gap: 0.7936507937vw 2.3809523810vw;
  }
}
.skillTable_item {
  font-family: "Outfit", "Zen Kaku Gothic New", sans-serif;
  font-size: 4.6153846154vw;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.4px;
  display: flex;
  align-items: center;
  gap: 2.0512820513vw;
}
@media screen and (min-width: 960px) {
  .skillTable_item {
    font-size: 1.4550264550vw;
    letter-spacing: 0.48px;
    gap: 0.5291005291vw;
  }
}
.skillTable_item::before {
  content: "";
  display: block;
  width: 7.6923076923vw;
  aspect-ratio: 1/1;
  background: url(/images/ic_lang.png) center/contain no-repeat;
  flex-shrink: 0;
}
@media screen and (min-width: 960px) {
  .skillTable_item::before {
    width: 1.9841269841vw;
  }
}
.skillTable_item._tech::before {
  background-image: url(/images/ic_tech.png);
}
.skillTable_item .small {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 3.0769230769vw;
  font-weight: 500;
}
@media screen and (min-width: 960px) {
  .skillTable_item .small {
    font-size: 0.8597883598vw;
  }
}
.skillTable_row._new .skillTable_dttl::after {
  content: "生成AI";
  margin-left: 2.0512820513vw;
  padding: 0.7692307692vw 2.0512820513vw;
  border-radius: 100px;
  background: #fce200;
  font-size: 2.8205128205vw;
  font-weight: 700;
  line-height: 1;
  vertical-align: middle;
}
@media screen and (min-width: 960px) {
  .skillTable_row._new .skillTable_dttl::after {
    margin-left: 0.5291005291vw;
    padding: 0.2645502646vw 0.5291005291vw;
    font-size: 0.7407407407vw;
  }
}

/* ---------------- 研修スケジュール（service_graph02 のHTML版・4ヶ月） ---------------- */
.schedule {
  width: 96.9230769231vw;
  padding: 10.2564102564vw 6.1538461538vw;
  margin: 0 calc(50% + 1.5384615385vw - 50vw) 0;
  border-radius: 20px;
  background: #ebebeb;
  overflow-x: auto;
}
@media screen and (min-width: 960px) {
  .schedule {
    width: 100%;
    padding: 3.9682539683vw;
    margin: 0;
    border-radius: 24px;
    overflow-x: visible;
  }
}
.schedule_note {
  margin-top: 2.5641025641vw;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 2.5641025641vw;
  font-weight: 500;
  line-height: 1.6;
}
@media screen and (min-width: 960px) {
  .schedule_note {
    display: none;
  }
}
.schedule_grid {
  width: 280vw;
  display: grid;
  grid-template-columns: 5.1282051282vw repeat(4, 1fr);
  grid-template-rows: auto 1fr auto;
  gap: 4.1025641026vw 4.1025641026vw;
}
@media screen and (min-width: 960px) {
  .schedule_grid {
    width: 100%;
    grid-template-columns: 1.3227513228vw repeat(4, 1fr);
    gap: 1.0582010582vw 1.0582010582vw;
  }
}
.schedule_label {
  grid-column: 1/2;
  writing-mode: vertical-rl;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 4.1025641026vw;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 1.2px;
  justify-self: center;
}
@media screen and (min-width: 960px) {
  .schedule_label {
    font-size: 1.1111111111vw;
    letter-spacing: 0.32px;
  }
}
.schedule_label._content {
  grid-row: 2/3;
  align-self: end;
  padding-bottom: 5.1282051282vw;
}
@media screen and (min-width: 960px) {
  .schedule_label._content {
    padding-bottom: 1.5873015873vw;
  }
}
.schedule_label._skill {
  grid-row: 3/4;
  align-self: center;
}
.schedule ._c1 { grid-column: 2/3; }
.schedule ._c2 { grid-column: 3/4; }
.schedule ._c3 { grid-column: 4/5; }
.schedule ._c4 { grid-column: 5/6; }

.schedule_head {
  grid-row: 1/2;
  min-height: 12.3076923077vw;
  padding: 2.0512820513vw 9.2307692308vw 2.0512820513vw 5.1282051282vw;
  background: #0e5cd2;
  clip-path: polygon(0 0, calc(100% - 5.1282051282vw) 0, 100% 50%, calc(100% - 5.1282051282vw) 100%, 0 100%);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 3.8461538462vw;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.3px;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
@media screen and (min-width: 960px) {
  .schedule_head {
    min-height: 3.1746031746vw;
    padding: 0.5291005291vw 2.1164021164vw 0.5291005291vw 1.0582010582vw;
    clip-path: polygon(0 0, calc(100% - 1.0582010582vw) 0, 100% 50%, calc(100% - 1.0582010582vw) 100%, 0 100%);
    font-size: 1.0582010582vw;
    letter-spacing: 0.32px;
  }
}
.schedule_stage {
  grid-row: 2/3;
  display: flex;
  flex-direction: column;
  gap: 2.0512820513vw;
}
@media screen and (min-width: 960px) {
  .schedule_stage {
    gap: 0.5291005291vw;
  }
}
/* 月ごとに階段状に下げる（1ヶ月目が一番下） */
.schedule_stage._c1 { padding-top: 42vw; }
.schedule_stage._c2 { padding-top: 28vw; }
.schedule_stage._c3 { padding-top: 14vw; }
.schedule_stage._c4 { padding-top: 0; }
@media screen and (min-width: 960px) {
  .schedule_stage._c1 { padding-top: 11.1111111111vw; }
  .schedule_stage._c2 { padding-top: 7.4074074074vw; }
  .schedule_stage._c3 { padding-top: 3.7037037037vw; }
}
.schedule_month {
  height: 12.3076923077vw;
  border-radius: 100px;
  background: #00cb9b;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 4.1025641026vw;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 1.2px;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
@media screen and (min-width: 960px) {
  .schedule_month {
    height: 3.1746031746vw;
    font-size: 1.1111111111vw;
    letter-spacing: 0.4px;
  }
}
.schedule_month .num {
  margin-right: 0.5128205128vw;
  font-family: "Outfit", sans-serif;
  font-size: 5.1282051282vw;
  font-weight: 600;
}
@media screen and (min-width: 960px) {
  .schedule_month .num {
    margin-right: 0.1322751323vw;
    font-size: 1.3227513228vw;
  }
}
.schedule_month._ai {
  background: #0e5cd2;
}
.schedule_month._ai::after {
  content: "生成AI";
  margin-left: 2.0512820513vw;
  padding: 1.0256410256vw 2.0512820513vw;
  border-radius: 100px;
  background: #fce200;
  font-size: 2.8205128205vw;
  letter-spacing: 0.2px;
  color: #222;
}
@media screen and (min-width: 960px) {
  .schedule_month._ai::after {
    margin-left: 0.5291005291vw;
    padding: 0.2645502646vw 0.5291005291vw;
    font-size: 0.7407407407vw;
  }
}
.schedule_list {
  padding: 5.1282051282vw 5.1282051282vw;
  border: 1px solid #e1e1e1;
  background: #fff;
  display: flex;
  flex-direction: column;
  gap: 2.0512820513vw;
}
@media screen and (min-width: 960px) {
  .schedule_list {
    padding: 1.5873015873vw 1.5873015873vw;
    gap: 0.5291005291vw;
  }
}
.schedule_stage .schedule_list {
  flex: 1;
}
.schedule_list._skill {
  grid-row: 3/4;
}
.schedule_list._ai {
  border: 2px solid #0e5cd2;
}
.schedule_item {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 3.5897435897vw;
  font-weight: 500;
  line-height: 1.5;
  display: flex;
  align-items: flex-start;
  gap: 1.5384615385vw;
}
@media screen and (min-width: 960px) {
  .schedule_item {
    font-size: 0.9920634921vw;
    gap: 0.3968253968vw;
  }
}
.schedule_item::before {
  content: "";
  display: block;
  width: 1.2820512821vw;
  aspect-ratio: 1/1;
  margin-top: 2.1794871795vw;
  background: #222;
  border-radius: 50%;
  flex-shrink: 0;
}
@media screen and (min-width: 960px) {
  .schedule_item::before {
    width: 0.3174603175vw;
    margin-top: 0.6084656085vw;
  }
}

/* ---------------- 生成AI研修（4ヶ月目）週別カリキュラム ---------------- */
/* style.css の「.service .about section+section」の余白を打ち消す */
.service .about .aiWeek section + section {
  margin-top: 0;
}
.aiWeek {
  display: flex;
  flex-direction: column;
  gap: 5.1282051282vw;
}
@media screen and (min-width: 960px) {
  .aiWeek {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.3227513228vw;
  }
}
.aiWeek_bar {
  display: none;
}
@media screen and (min-width: 960px) {
  .aiWeek_bar {
    grid-column: 1/5;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.3227513228vw;
  }
}
.aiWeek_barItem {
  height: 0.5291005291vw;
  border-radius: 100px;
  background: #00cb9b;
}
.aiWeek_barItem._wide {
  grid-column: span 2;
  background: #0e5cd2;
}
.aiWeek_item {
  padding: 10.2564102564vw 6.1538461538vw;
  border-radius: 5.1282051282vw;
  background: #fff;
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 960px) {
  .aiWeek_item {
    padding: 2.6455026455vw 2.1164021164vw;
    border-radius: 1.5873015873vw;
  }
}
@media screen and (min-width: 960px) {
  .aiWeek_item._wide {
    grid-column: span 2;
  }
}
.aiWeek_num {
  width: fit-content;
  height: 5.641025641vw;
  padding: 0 4.1025641026vw;
  margin-bottom: 4.1025641026vw;
  border-radius: 100px;
  border: 1px solid #00cb9b;
  font-family: "Outfit", sans-serif;
  font-size: 3.5897435897vw;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.56px;
  color: #00cb9b;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media screen and (min-width: 960px) {
  .aiWeek_num {
    height: 1.5873015873vw;
    padding: 0 1.0582010582vw;
    margin-bottom: 1.0582010582vw;
    font-size: 0.9259259259vw;
    letter-spacing: 0.64px;
  }
}
.aiWeek_item._wide .aiWeek_num {
  border-color: #0e5cd2;
  color: #0e5cd2;
}
.aiWeek_ttl {
  margin-bottom: 3.0769230769vw;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 4.6153846154vw;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.36px;
}
@media screen and (min-width: 960px) {
  .aiWeek_ttl {
    margin-bottom: 0.7936507937vw;
    font-size: 1.3227513228vw;
    letter-spacing: 0.4px;
  }
}
.aiWeek_text {
  padding-bottom: 5.1282051282vw;
  border-bottom: 1px solid #e1e1e1;
  margin-bottom: 5.1282051282vw;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 3.5897435897vw;
  font-weight: 500;
  line-height: 1.8;
  text-align: justify;
}
@media screen and (min-width: 960px) {
  .aiWeek_text {
    padding-bottom: 1.3227513228vw;
    margin-bottom: 1.3227513228vw;
    font-size: 0.9259259259vw;
  }
}
.aiWeek_list {
  display: flex;
  flex-direction: column;
  gap: 2.0512820513vw;
}
@media screen and (min-width: 960px) {
  .aiWeek_list {
    gap: 0.6613756614vw;
  }
  .aiWeek_item._wide .aiWeek_list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 2.1164021164vw;
  }
}
.aiWeek_listItem {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 3.5897435897vw;
  font-weight: 500;
  line-height: 1.5;
  display: flex;
  align-items: flex-start;
  gap: 1.5384615385vw;
}
@media screen and (min-width: 960px) {
  .aiWeek_listItem {
    font-size: 0.9259259259vw;
    gap: 0.3968253968vw;
  }
}
.aiWeek_listItem::before {
  content: "";
  display: block;
  width: 1.5384615385vw;
  aspect-ratio: 1/1;
  margin-top: 2.0512820513vw;
  background: #00cb9b;
  border-radius: 50%;
  flex-shrink: 0;
}
@media screen and (min-width: 960px) {
  .aiWeek_listItem::before {
    width: 0.3968253968vw;
    margin-top: 0.5291005291vw;
  }
}

/* ---------------- 02ページ：料金カードを中央寄せ ---------------- */
.service .cost_list._single {
  justify-content: center;
}
.service .cost_note._center {
  text-align: center;
}

/* ---------------- 実践比率グラフの注記 ---------------- */
.service .about_third .graph_note {
  margin-top: -5.1282051282vw;
  margin-bottom: 10.2564102564vw;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 2.5641025641vw;
  font-weight: 500;
  line-height: 1.6;
  text-align: center;
}
@media screen and (min-width: 960px) {
  .service .about_third .graph_note {
    margin-top: -1.3227513228vw;
    margin-bottom: 2.6455026455vw;
    font-size: 0.7407407407vw;
  }
}

/* ---------------- お問い合わせフォーム：コース選択肢 ---------------- */
.contactform .desc._options {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2.5641025641vw;
}
@media screen and (min-width: 960px) {
  .contactform .desc._options {
    gap: 0.6613756614vw;
  }
}
.contactform .optionLabel {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 3.3333333333vw;
  font-weight: 700;
  line-height: 1.5;
  color: #222;
}
@media screen and (min-width: 960px) {
  .contactform .optionLabel {
    font-size: 0.9259259259vw;
  }
}
.contactform .optionLabel ~ .optionLabel {
  margin-top: 2.5641025641vw;
}
@media screen and (min-width: 960px) {
  .contactform .optionLabel ~ .optionLabel {
    margin-top: 0.6613756614vw;
  }
}
.contactform .Namebtn .sub {
  font-size: 0.85em;
}
.contactform .dttl .note {
  margin-left: 1.0256410256vw;
  font-size: 3.0769230769vw;
  color: #666;
}
@media screen and (min-width: 960px) {
  .contactform .dttl .note {
    margin-left: 0.2645502646vw;
    font-size: 0.8597883598vw;
  }
}
