@charset "UTF-8";

/* ---------------------------------------------------------------------------
  ★共通
--------------------------------------------------------------------------- */

html {
  font-size: 62.5%;
}

object {
  pointer-events: none;
}

.sp,
.header_sp {
  display: none !important;
}

a[href^="tel:"] {
  pointer-events: none;
}

a {
  text-decoration: none;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}

.img_r {
  overflow: hidden;
}

.img_r > img {
  float: right;
  width: 33%;
  margin-left: 15px;
  margin-bottom: 15px;
}

/* ---------------------------------------------------------------------------
  ★フォントファミリー
--------------------------------------------------------------------------- */

/* ---------------------------------------------------------------------------
  ★LIST
--------------------------------------------------------------------------- */

/* ---------------------------------------------------------------------------
  ★BASE
--------------------------------------------------------------------------- */

/* ---------------------------------------------------------------------------
  ★テキスト
--------------------------------------------------------------------------- */

/* ---------------------------------------------------------------------------
  ★インスタグラム
--------------------------------------------------------------------------- */

.instagramcont li {
  width: calc(100% / 4);
}

.instagramcont li a {
  display: block;
  overflow: hidden;
  position: relative;
  width: 100%;
  padding: 0 0 100%;
  background: #949494;
}

.instagramcont li a img {
  position: absolute;
  width: 100%;
  top: 50%;
  left: 50%;
  -webkit-transform: translateY(-50%) translateX(-50%);
  transform: translateY(-50%) translateX(-50%);
}

/* ---------------------------------------------------------------------------
  ★ここから新規制作
--------------------------------------------------------------------------- */
/* 並び方 */
.flex_row {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  gap: 20px;
}

.flex_row > div {
  width: calc((100% - 20px) / 2);
}

.flex_3col {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  gap: 20px;
}

.flex_3col > div {
  width: calc((100% - 40px) / 3);
}

.flex_4col {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  gap: 20px;
}

.flex_4col > div {
  width: calc((100% - 60px) / 4);
}

/* 白ボタン */

.btn {
  min-width: 200px;
  display: block;
}

.btn .link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #ffffff;
  color: #0b7c24;
  border: solid 1px #0b7c24;
  text-decoration: none;
  border-radius: 50px;
  padding: 17px 25px 17px 30px;
  min-width: 200px;
}

.btn .link:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(30, 64, 175, 0.4);
}

/* 緑ボタン */

.btn_green {
  min-width: 200px;
  display: block;
}

.btn_green .link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #0b7c24;
  color: #fff;
  border: solid 1px #0b7c24;
  text-decoration: none;
  border-radius: 50px;
  padding: 17px 25px 17px 30px;
  min-width: 200px;
}

.btn_green .link:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(8, 86, 25, 0.4);
}

.btn_green .arrow_circle_w {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  background: #fff;
  border-radius: 50%;
  padding-right: 2px;
}

.btn_green .arrow_w {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-right: 2px solid #0b7c24;
  border-bottom: 2px solid #0b7c24;
  transform: rotate(-45deg);
}

.btn_contact {
  display: block;
}

.btn_link {
  display: flex;
  width: 160px;
  height: 47px;
  padding: 14px 25px;
  justify-content: center;
  align-items: center;
  gap: 0;
  border: none;
  border-radius: 100px;
  background: linear-gradient(
    257deg,
    #f4f2fa -14.19%,
    #416ae5 24.4%,
    #1c1ae4 57.43%,
    #1d1558 94.83%
  );
  transition: all 0.3s ease;
}

.btn_link:hover {
  transform: translateY(-2px);
  box-shadow: 0 2px 8px rgba(0, 9, 65, 0.3);
  background: linear-gradient(
    257deg,
    #d4d2da -14.19%,
    #2149c5 24.4%,
    #0000c4 57.43%,
    #000038 94.83%
  );
}

.btn_contact .link:hover {
  transform: translateY(-2px);
  box-shadow: 0 2px 8px rgba(0, 9, 65, 0.3);
  background: linear-gradient(
    257deg,
    #d4d2da -14.19%,
    #2149c5 24.4%,
    #0000c4 57.43%,
    #000038 94.83%
  );
}

.btn_contact .arrow_circle_w {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  background: #fff;
  border-radius: 50%;
  padding-right: 2px;
}

.btn_contact .arrow_w {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-right: 2px solid #1a1ae5;
  border-bottom: 2px solid #1a1ae5;
  transform: rotate(-45deg);
}

/* ---------------------------------------------------------------------------
  ★ヘッダー全体
--------------------------------------------------------------------------- */
header a {
  color: #202020;
  text-decoration: none;
}

.main_header {
  width: 100%;
  height: 113px;
  background-color: #fff;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9000;
  box-shadow: 0px 3px 3px rgba(40, 23, 8, 0.2);
}

.main_header:has(#home) {
  box-shadow: unset;
}

body.at-top .main_header .header_container {
  position: relative;
  z-index: 1;
}

.header_container {
  display: flex;
  width: 100%;
  height: 113px;
  box-shadow: none;
}

/* トップにいない時だけ影を表示 */
body:not(.at-top) .header_container {
  box-shadow: 0px 3px 3px rgba(40, 23, 8, 0.2);
}

/* ---------------------------------------------------------------------------
  ★ロゴエリア
--------------------------------------------------------------------------- */
.logo_area {
  padding: 32px 46px 20px 49px;
  margin-top: 0;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
}

.logo {
  margin: 0;
  flex-shrink: 0;
}

.logo p {
  font-size: 25px;
  font-weight: 500;
  margin-top: 3px;
  margin-left: 23px;
  line-height: normal;
  letter-spacing: 0.625px;
}

.logo a {
  display: flex;
  line-height: 1;
}

.logo img {
  width: 50px;
  height: auto;
  max-width: 100%;
  border-radius: unset;
}

/* ---------------------------------------------------------------------------
  ★メイン背景エリア（伸縮対応）
--------------------------------------------------------------------------- */
.header_bg {
  flex: 1;
  /* 残りのスペースを全て使用（伸縮対応） */
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding: 4px 20px 0;
  max-width: 1400px;
  /* メインエリアのみ最大幅制限 */
  margin: 0 auto;
  /* メインエリアのみ中央揃え */
  gap: 5px;
}

/* ---------------------------------------------------------------------------
  ★ボタンエリア
--------------------------------------------------------------------------- */
.button_area {
  height: 50%;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-direction: row;
  gap: 0px;
  padding: 5px 50px;
}

/* 電話番号エリア */
header .tel_area {
  text-decoration: none;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 0;
  transition: all 0.3s ease;
  flex-shrink: 0;
  margin-right: 13px;
  margin-top: 9px;
  height: 42px;
  width: 230px;
}

header .tel_area img {
  width: 21px;
  height: 21px;
  margin-left: 10px;
  margin-top: 1px;
  border-radius: unset;
}

header .tel_area .flex_row:first-child {
  align-items: center;
  gap: 0;
}

header .tel_area .flex_row:first-child p {
  font-size: 28px;
  font-family: "Instrument Sans", sans-serif;
  margin-right: -2px;
  line-height: 30px;
  letter-spacing: 0.7px;
}

header .tel_area .flex_row:last-child {
  align-items: center;
  gap: 0;
  font-size: 13px;
  margin-left: 36px;
  margin-top: -3px;
  letter-spacing: 0.325px;
  white-space: nowrap;
}

/* ボタン内の画像 */
.header_btn img {
  width: 20px;
  height: auto;
}

/* ボタン1 */
header .btn_contact {
  display: flex;
  width: 160px;
  height: 47px;
  padding: 14px 25px;
  justify-content: center;
  align-items: center;
  gap: 0;
  border: none;
  border-radius: 100px;
  background: linear-gradient(
    257deg,
    #f4f2fa -14.19%,
    #416ae5 24.4%,
    #1c1ae4 57.43%,
    #1d1558 94.83%
  );
  margin-top: 12px;
}

header .btn_contact p {
  color: #fff;
  text-align: center;
  font-family: "Noto Sans JP";
  font-size: 14px;
  font-weight: 700;
  line-height: normal;
  letter-spacing: 0.7px;
  width: 88px;
  height: 17px;
  margin-left: 5px;
  white-space: nowrap;
}

header .btn_contact:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(0, 9, 65, 0.3);
  background: linear-gradient(
    257deg,
    #d4d2da -14.19%,
    #2149c5 24.4%,
    #0000c4 57.43%,
    #000038 94.83%
  );
}

header a.btn_contact img {
  width: 17px;
  height: 12px;
  margin-left: 0;
  margin-top: 4px;
  border-radius: unset;
}

/* ---------------------------------------------------------------------------
  ★ナビゲーションエリア（下段）
--------------------------------------------------------------------------- */
.header_nav {
  height: 50%;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-direction: row;
  padding: 0 25px 0 130px;
  position: static;
  z-index: 9200;
  position: relative;
  margin-top: -4px;
}

.nav_list {
  display: flex;
  align-items: center;
  font-size: 16px;
  font-weight: 500;
  gap: 9px;
  letter-spacing: 0.8px;
  line-height: normal;
}

.nav_list .nav_item {
  transition: background-color 0.3s ease;
}

.nav_list .nav_item:hover {
  background-color: rgba(28, 26, 228, 0.4);
}

.at-top .nav_list .nav_item:hover {
  background-color: rgba(0, 0, 0, 0.4);
}

.nav_list .nav_item:nth-child(1) {
  padding: 10px 23px 10px 23px;
}

.nav_list .nav_item:nth-child(2) {
  padding: 10px 23px 10px 23px;
}

.nav_list .nav_item:nth-child(3) {
  padding: 10px 23px 10px 23px;
}

.nav_list .nav_item:nth-child(4) {
  padding: 10px 23px 10px 23px;
}

.nav_list .nav_item:nth-child(5) {
  padding: 10px 23px 10px 23px;
}

.nav_list .nav_item:nth-child(6) {
  padding: 10px 23px 10px 23px;
}

@media screen and (max-width: 1400px) {
  .header_nav {
    padding: 0 15px 0 50px;
  }
}

@media screen and (max-width: 1300px) {
  .header_nav {
    padding: 0;
  }

  .logo_area {
    padding: 32px 10px 20px 49px;
  }
}

@media screen and (max-width: 1200px) {
  .header_nav {
    padding: 0;
  }

  .logo_area {
    padding: 32px 10px 20px 49px;
  }

  .nav_list .nav_item:nth-child(1) {
    padding: 10px;
  }

  .nav_list .nav_item:nth-child(2) {
    padding: 10px;
  }

  .nav_list .nav_item:nth-child(3) {
    padding: 10px;
  }

  .nav_list .nav_item:nth-child(4) {
    padding: 10px;
  }

  .nav_list .nav_item:nth-child(5) {
    padding: 10px;
  }

  .nav_list .nav_item:nth-child(6) {
    padding: 10px;
  }
}

/* 1100px以下 */
@media screen and (max-width: 1100px) {
  .header_nav {
    padding: 0;
  }

  .logo_area {
    padding: 32px 10px 20px 30px;
  }

  .nav_list .nav_item:nth-child(1) {
    padding: 10px;
  }

  .nav_list .nav_item:nth-child(2) {
    padding: 10px;
  }

  .nav_list .nav_item:nth-child(3) {
    padding: 10px;
  }

  .nav_list .nav_item:nth-child(4) {
    padding: 10px;
  }

  .nav_list .nav_item:nth-child(5) {
    padding: 10px;
  }

  .nav_list .nav_item:nth-child(6) {
    padding: 10px;
  }

  .header_bg {
    padding: 4px 0px 0;
  }
}

/* 1000px以下 */
@media screen and (max-width: 1000px) {
  .header_nav {
    padding: 0;
  }

  .logo_area {
    padding: 32px 10px 20px 10px;
  }

  .logo p {
    margin-left: 10px;
    font-size: 19px;
  }

  .nav_list .nav_item:nth-child(1) {
    padding: 10px;
  }

  .nav_list .nav_item:nth-child(2) {
    padding: 10px;
  }

  .nav_list .nav_item:nth-child(3) {
    padding: 10px;
  }

  .nav_list .nav_item:nth-child(4) {
    padding: 10px;
  }

  .nav_list .nav_item:nth-child(5) {
    padding: 10px;
  }

  .nav_list .nav_item:nth-child(6) {
    padding: 10px;
  }

  .header_bg {
    padding: 4px 0px 0;
  }
}

/* ---------------------------------------------------------------------------
  ★header分の余白
--------------------------------------------------------------------------- */

/* ---------------------------------------------------------------------------
  ★TOP
--------------------------------------------------------------------------- */

/* 共通kv */

body:not(:has(#home)) .kv {
  position: relative;
  width: 100%;
}

body:not(:has(#home)) .kv_content {
  position: relative;
  padding: 70px 0;
  background: radial-gradient(
    ellipse 150% 100% at center bottom,
    #6b9fe8 0%,
    #3d3ae8 90%,
    #2a28d6 100%
  );
  overflow: hidden;
}

/* 鉄道架線をイメージした装飾 */
body:not(:has(#home)) .kv_content::before {
  content: "";
  position: absolute;
  top: 7%;
  left: 0;
  width: 100%;
  height: 80px;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="80" height="80" viewBox="0 0 80 80"><line x1="0" y1="0" x2="80" y2="0" stroke="rgba(255,255,255,0.5)" stroke-width="2"/><line x1="0" y1="80" x2="80" y2="80" stroke="rgba(255,255,255,0.5)" stroke-width="2"/><line x1="0" y1="0" x2="40" y2="80" stroke="rgba(255,255,255,0.4)" stroke-width="2"/><line x1="40" y1="80" x2="80" y2="0" stroke="rgba(255,255,255,0.4)" stroke-width="2"/></svg>');
  background-repeat: repeat-x;
  background-size: 80px 80px;
  background-position: 0 0;
  pointer-events: none;
  z-index: 0;
}

/* 80px版のSVG */
/* background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="80" height="80" viewBox="0 0 80 80"><line x1="0" y1="0" x2="80" y2="0" stroke="rgba(255,255,255,0.5)" stroke-width="2"/><line x1="0" y1="80" x2="80" y2="80" stroke="rgba(255,255,255,0.5)" stroke-width="2"/><line x1="0" y1="0" x2="40" y2="80" stroke="rgba(255,255,255,0.4)" stroke-width="2"/><line x1="40" y1="80" x2="80" y2="0" stroke="rgba(255,255,255,0.4)" stroke-width="2"/></svg>'); */

/* 遠近法の電線 */
body:not(:has(#home)) .kv_content::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="300" viewBox="0 0 1200 300" preserveAspectRatio="none"><line x1="0" y1="100" x2="300" y2="300" stroke="rgba(255,255,255,0.15)" stroke-width="1.5"/><line x1="0" y1="0" x2="330" y2="300" stroke="rgba(255,255,255,0.15)" stroke-width="1.5"/><line x1="100" y1="0" x2="360" y2="300" stroke="rgba(255,255,255,0.18)" stroke-width="1.5"/><line x1="200" y1="0" x2="390" y2="300" stroke="rgba(255,255,255,0.2)" stroke-width="1.5"/><line x1="1000" y1="0" x2="810" y2="300" stroke="rgba(255,255,255,0.2)" stroke-width="1.5"/><line x1="1100" y1="0" x2="840" y2="300" stroke="rgba(255,255,255,0.18)" stroke-width="1.5"/><line x1="1200" y1="0" x2="870" y2="300" stroke="rgba(255,255,255,0.15)" stroke-width="1.5"/><line x1="1200" y1="100" x2="900" y2="300" stroke="rgba(255,255,255,0.15)" stroke-width="1.5"/></svg>');
  background-repeat: no-repeat;
  background-size: 100% 100%;
  background-position: center center;
  pointer-events: none;
  z-index: 0;
}

body:not(:has(#home)) .kv_title_box {
  position: relative;
  z-index: 1;
  background-color: rgba(227, 242, 255, 0.15);
  border: 2px solid rgba(255, 255, 255, 0.3);
  border-radius: 12px;
  padding: 50px 40px;
  backdrop-filter: blur(4px);
}

body:not(:has(#home)) .kv_title {
  color: #ffffff;
  font-weight: bold;
  line-height: 1.6;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* TOPのkvセクション */

#home .kv {
  position: relative;
  width: 100%;
}

#home .kv_content {
  position: relative;
  width: 100%;
}

#home .kv_blend_overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 113px;
  z-index: 1;
  display: none;
}

body.at-top .kv_blend_overlay {
  display: block;
}

#home .kv_blend_darken {
  background: linear-gradient(
    180deg,
    rgba(41, 41, 41, 0.44) 49.51%,
    rgba(143, 143, 143, 0.44) 72.08%
  );
  mix-blend-mode: multiply;
}

#home .kv_blend_saturate {
  background: rgba(1, 18, 128, 0.1);
  mix-blend-mode: saturation;
}

#home .kv_bg_image {
  width: 100%;
  aspect-ratio: 1400 / 693;
  background-image: url("../img/top_kv.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
  z-index: 0;
}

#home .kv_absolute {
  position: absolute;
  top: 47.2%;
  left: 7.5%;
  z-index: 10;
  max-width: 1200px;
  margin-top: -36px;
  text-align: left;
}

#home .kv_title {
  color: #fff;
  text-shadow: 0 0 8.9px rgba(25, 25, 25, 0.41);
  font-family: "Noto Sans JP";
  font-size: 40px;
  font-style: normal;
  font-weight: 500;
  line-height: 59px;
  letter-spacing: 2px;
}

#home .kv_title_sub {
  color: #fff;
  font-family: "Instrument Sans";
  font-size: 16px;
  font-style: normal;
  font-weight: 500;
  line-height: 59px;
  letter-spacing: 0.8px;
  margin-top: -14px;
}

#home .kv_cover_overlay {
  position: absolute;
  top: 32.93vw;
  /* 461px ÷ 1400px */
  left: 0;
  width: 100%;
  height: 43vw;
  /* 602px ÷ 1400px */
  background: linear-gradient(
    180deg,
    rgba(128, 171, 208, 0) 0%,
    rgba(128, 171, 208, 0.8) 16.6%,
    rgba(128, 171, 208, 0.9) 28.33%,
    #80abd0 37.98%,
    #80abd0 61.24%,
    rgba(128, 171, 208, 0.9) 68.87%,
    rgba(128, 171, 208, 0.8) 78.48%,
    rgba(128, 171, 208, 0) 87.47%
  );
  z-index: 1;
  pointer-events: none;
}

/* 新着情報セクション */
.section_01.news {
  position: relative;
  margin-top: -118px;
  width: 100%;
  background-color: transparent;
  z-index: 5;
}

.section_01.news .container {
  display: flex;
  justify-content: flex-end;
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
}

.section_01.news .contain {
  border-radius: 15px 0 0 15px;
  background: linear-gradient(268deg, #1c1ae4 -48.48%, #1d1558 99.69%);
  padding: 20px 30px 21px 32px;
  display: flex;
  align-items: center;
  gap: 34px;
  max-width: 880px;
  /* height: 131px; */
  width: 100%;
  position: relative;
}

@media (min-width: 1401px) {
  .section_01.news {
    overflow: clip;
  }

  .section_01.news .contain::after {
    content: "";
    position: absolute;
    top: 0;
    left: 100%;
    width: 2000px;
    height: 100%;
    background: linear-gradient(268deg, #1c1ae4 -48.48%, #1d1558 99.69%);
    transform: scaleX(-1);
  }
}

.section_01.news h2 {
  color: #fff;
  text-align: center;
  font-family: "Instrument Sans";
  font-size: 24px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  letter-spacing: 1.2px;
}

.section_01.news .news_content {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 5px;
  flex: 1;
}

.section_01.news .news_content .flex_row {
  justify-content: flex-start;
}

.section_01.news .news_content .title {
  color: #fff;
  font-family: "Noto Sans JP";
  font-size: 16px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  letter-spacing: 0.8px;
}

.section_01.news .news_content span.time {
  color: #fff;
  font-family: "Instrument Sans";
  font-size: 15px;
  font-style: normal;
  font-weight: 500;
  line-height: 30px;
  letter-spacing: 0.375px;
}

.section_01.news .news_content .flex_row::after {
  content: "";
  position: absolute;
  top: 34px;
  right: 12px;
  height: 1px;
  width: 695px;
  background-color: #416ae5;
}

.section_01.news .news_content .honbun {
  color: #fff;
  font-family: "Noto Sans JP";
  font-size: 16px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  letter-spacing: 0.8px;
  max-width: 707px;
  /* height: 51px; */
  padding-top: 10px;
}

/* 創業セクション */

.section_02.sougyou {
  position: relative;
  width: 100%;
  padding: 116px 0 0;
}

.section_02.sougyou img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  border-radius: unset;
}

@media (min-width: 1401px) {
  .section_02.sougyou img {
    width: 100%;
    max-width: none;
  }
}

.section_02.sougyou .white_box_big {
  position: absolute;
  left: 0;
  top: 0px;
  z-index: 10;
  color: #fff;
}

.section_02.sougyou .white_box_inner {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.section_02.sougyou .white_box_inner h2 {
  font-size: 40px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  letter-spacing: 2px;
  margin-bottom: 42px;
}

.section_02.sougyou .white_box_inner p {
  font-family: "Inter", sans-serif;
  font-size: 18px;
  font-style: normal;
  font-weight: 500;
  line-height: 37px;
  /* 205.556% */
  letter-spacing: 0.9px;
}

.section_02.sougyou .white_box_inner p:nth-child(2) {
  margin-bottom: 37px;
}

.section_02.sougyou .white_box_inner p:nth-child(3) {
  margin-bottom: 37px;
}

.section_02.sougyou .white_box_inner p:nth-child(4) {
  margin-bottom: 37px;
}

.section_02.sougyou .white_box_inner > *:last-child {
  margin-bottom: 0;
}

/* 強みセクション */

.section_03.tsuyomi {
  position: relative;
  width: 100%;
  background-color: #e3f2ff;
}

.section_03.tsuyomi .tsuyomi_bg {
  padding: 79px 0px;
  position: relative;
  z-index: 2;
}

.section_03.tsuyomi h2 {
  color: #1d1558;
  font-size: 16px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  letter-spacing: 0.8px;
}

.section_03.tsuyomi h2::before {
  content: "STRENGTH";
  position: absolute;
  left: 0;
  top: 103px;
  font-family: "Instrument Sans";
  font-size: 64px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  letter-spacing: 3.2px;
  background: linear-gradient(
    257deg,
    #f4f2fa -14.19%,
    #416ae5 24.4%,
    #1c1ae4 57.43%,
    #1d1558 94.83%
  );
  background-clip: text;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.section_03.tsuyomi .flex_3col {
  display: flex;
  gap: 31px;
  justify-content: flex-start;
  width: 100%;
  padding-top: 133px;
}

.section_03.tsuyomi .flex_3col > div {
  background-color: #fff;
  flex: 1;
  height: 349px;
  padding: 30px;
  box-sizing: border-box;
  filter: drop-shadow(0 0 6px #d6ebfd);
  border-radius: 20px;
}

.section_03.tsuyomi .flex_3col h3 {
  font-size: 20px;
  font-weight: 700;
  margin-left: -2px;
  color: #011280;
  line-height: 34px;
  letter-spacing: 1px;
  position: relative;
  margin-left: 3px;
}

.section_03.tsuyomi .flex_3col div:nth-child(1) h3 {
  margin-top: 5px;
}

.section_03.tsuyomi .flex_3col div:nth-child(1) img {
  margin-top: 12px;
  margin-right: 17px;
}

.section_03.tsuyomi .flex_3col div:nth-child(2) h3 {
  padding-top: 18px;
}

.section_03.tsuyomi .flex_3col div:nth-child(2) img {
  margin-top: 19px;
  margin-right: 0px;
}

.section_03.tsuyomi .flex_3col div:nth-child(3) h3 {
  margin-top: 21px;
}

.section_03.tsuyomi .flex_3col div:nth-child(3) img {
  margin-top: 24px;
  margin-right: 9px;
}

.section_03.tsuyomi .flex_3col img {
  width: 62px;
  height: 85px;
  border-radius: unset;
}

.section_03.tsuyomi .flex_3col p {
  font-size: 16px;
  line-height: 30px;
  letter-spacing: 0.05em;
  padding: 25px 3px;
}

.section_03.tsuyomi .flex_3col div:nth-child(2) p {
  padding: 27px 0;
}

.section_03.tsuyomi .flex_3col div:nth-child(3) p {
  padding: 22px 3px;
}

/* 事業案内セクション */

.section_04.jigyou {
  position: relative;
  padding: 52px 0 135px;
  background-color: #e3f2ff;
}

.section_04.jigyou .container {
  position: relative;
  width: 100%;
}

.section_04.jigyou h2 {
  font-size: 16px;
  font-weight: 500;
  color: #1d1558;
  margin-bottom: 92px;
  letter-spacing: 0.8px;
  position: relative;
}

.section_04.jigyou h2::before {
  content: "BUSINESS";
  position: absolute;
  left: 0;
  top: 26px;
  font-family: "Instrument Sans";
  font-size: 64px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  letter-spacing: 3.2px;
  background: linear-gradient(
    257deg,
    #f4f2fa -14.19%,
    #416ae5 24.4%,
    #1c1ae4 57.43%,
    #1d1558 94.83%
  );
  background-clip: text;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.section_04.jigyou .sub_title {
  color: #222;
  font-size: 32px;
  font-weight: 500;
  line-height: 46px;
  letter-spacing: 1.6px;
}

.section_04.jigyou .flex_3col {
  display: flex;
  gap: 30px;
  width: 100%;
  margin-top: 44px;
}

.section_04.jigyou .flex_3col > div {
  position: relative;
  flex: 1;
}

.section_04.jigyou .flex_3col img {
  display: block;
  width: 100%;
  height: auto;
}

.section_04.jigyou .flex_3col h3 {
  position: absolute;
  left: 0;
  bottom: 0;
  color: #fff;
  font-size: 32px;
  font-weight: 700;
  line-height: 34px;
  letter-spacing: 1.6px;
  z-index: 2;
  padding-bottom: 29px;
  padding-left: 33px;
}

.section_04.jigyou .flex_3col div:nth-child(2) h3 {
  padding-bottom: 26px;
}

.section_04.jigyou .white_box p {
  color: #222;
  font-size: 16px;
  line-height: 30px;
  letter-spacing: 0.8px;
  margin-top: 55px;
  text-align: center;
  margin-left: 45px;
  margin-bottom: 40px;
}

.section_04.jigyou .btn_container {
  display: flex;
  justify-content: center;
  width: 100%;
}

.section_04.jigyou .btn_link {
  margin-left: 18px;
  margin-top: -3px;
  width: 171px;
  padding: 14px 11px 13px 33px;
}

.section_04.jigyou .btn_link p {
  color: #fff;
  text-align: center;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.7px;
  margin-top: 0;
  margin-left: 0;
  margin-bottom: 0;
  position: relative;
  padding-right: 20px;
}

.section_04.jigyou .btn_link p::after {
  content: "";
  position: absolute;
  right: -6px;
  top: 50%;
  width: 8px;
  height: 8px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translateY(-50%) rotate(45deg);
}

/* 実績セクション */

.section_05.jisseki {
  background: linear-gradient(
    257deg,
    #f4f2fa -14.19%,
    #416ae5 24.4%,
    #1c1ae4 57.43%,
    #1d1558 94.83%
  );
  padding: 80px 0 81px;
}

.section_05.jisseki .flex_row {
  display: flex;
  gap: 20px;
  align-items: flex-start;
}

.section_05.jisseki .jisseki_left {
  flex: 1;
  color: #fcfcfc;
}

.section_05.jisseki .jisseki_left h2 {
  margin-top: 42px;
  font-size: 16px;
  font-weight: 500;
  line-height: normal;
  letter-spacing: 0.8px;
}

.section_05.jisseki .jisseki_left .sub_title {
  margin-top: 0;
  font-family: "Instrument Sans";
  font-size: 64px;
  font-weight: 500;
  line-height: normal;
  letter-spacing: 3.2px;
}

.section_05.jisseki .jisseki_left .discript {
  margin-top: 11px;
  color: #fff;
  font-size: 32px;
  font-weight: 500;
  line-height: 46px;
  letter-spacing: 1.6px;
}

.section_05.jisseki .jisseki_left p {
  margin-top: 22px;
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  line-height: 30px;
  letter-spacing: 0.8px;
  padding-right: 38px;
}

.section_05.jisseki .jisseki_right {
  flex: 1;
}

.section_05.jisseki .jisseki_right img {
  width: 590px;
  height: auto;
  border-radius: 15px;
  filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.6));
}

.section_05.jisseki .btn_container {
  display: flex;
  justify-content: flex-start;
  margin-top: 38px;
}

.btn_link_white {
  display: flex;
  width: 171px;
  height: 48px;
  padding: 14px 25px 14px 45px;
  justify-content: center;
  align-items: center;
  border-radius: 100px;
  background: #fff;
  transition: all 0.3s ease;
  cursor: pointer;
}

.btn_link_white:hover {
  transform: translateY(-2px);
  box-shadow: 0 2px 8px rgba(0, 9, 65, 0.3);
}

.section_05.jisseki .btn_link_white p {
  color: #1d1558;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.7px;
  margin: 0;
  position: relative;
  padding-right: 20px;
}

.btn_link_white p::after {
  content: "";
  position: absolute;
  right: -6px;
  top: 50%;
  width: 7px;
  height: 7px;
  border-top: 2px solid #1d1558;
  border-right: 2px solid #1d1558;
  transform: translateY(-50%) rotate(45deg);
}

/* ESGセクション */

.section_06.top_esg {
  background-image: url("../img/esg.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 80px 0 132px;
}

.section_06.top_esg h2 {
  position: relative;
  color: #fcfcfc;
  margin-top: 24px;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.8px;
  text-align: center;
}

.section_06.top_esg h2::after {
  position: absolute;
  content: "";
  width: 2px;
  height: 86px;
  background-color: #fff;
  top: -104px;
  left: 50%;
}

.section_06.top_esg .sub_title {
  margin-top: -21px;
  margin-left: 2px;
  color: #fcfcfc;
  font-family: "Instrument Sans";
  font-size: 64px;
  font-weight: 500;
  letter-spacing: 3.2px;
  text-align: center;
}

.section_06.top_esg .sub_discript {
  margin-top: -8px;
  color: #fff;
  font-size: 32px;
  font-weight: 500;
  line-height: 46px;
  letter-spacing: 1.6px;
  text-align: center;
}

.section_06.top_esg .flex_3col {
  display: flex;
  gap: 31px;
  justify-content: space-between;
  margin-top: 75px;
}

.section_06.top_esg .flex_3col > div {
  flex: 1;
  background: #e3f2ff;
  padding: 30px;
  border-radius: 20px;
}

.section_06.top_esg .flex_3col h3 {
  color: #1d1558;
  font-family: "Instrument Sans";
  font-size: 45px;
  font-weight: 400;
  text-align: center;
  margin-left: 2px;
}

.section_06.top_esg .flex_3col div:nth-child(2) h3,
.section_06.top_esg .flex_3col div:nth-child(3) h3 {
  margin-top: -11px;
}

.section_06.top_esg .flex_3col h3 .big_size {
  font-size: 60px;
}

.section_06.top_esg .esg_sub_title {
  color: #1d1558;
  margin-top: -20px;
  margin-left: 3px;
  font-size: 16px;
  font-weight: 700;
  line-height: normal;
  letter-spacing: 2.4px;
  text-align: center;
}

.section_06.top_esg .flex_3col div:nth-child(2) .esg_sub_title,
.section_06.top_esg .flex_3col div:nth-child(3) .esg_sub_title {
  margin-left: 5px;
}

.section_06.top_esg .esg_discription {
  color: #1c1ae4;
  margin-top: 22px;
  margin-left: 2px;
  font-size: 20px;
  font-weight: 500;
  line-height: normal;
  letter-spacing: 1px;
  text-align: center;
}

.section_06.top_esg .flex_3col div:nth-child(2) .esg_discription,
.section_06.top_esg .flex_3col div:nth-child(3) .esg_discription {
  margin-top: 33px;
}

.section_06.top_esg ul {
  margin-top: 5px;
  list-style: none;
  padding: 0;
}

.section_06.top_esg ul li {
  font-size: 16px;
  font-weight: 400;
  line-height: 30px;
  letter-spacing: 0.8px;
  padding: 0 20px;
  position: relative;
}

/* 採用情報セクション */

.section_07.top_recruit {
  background-color: #e3f2ff;
  padding: 124px 0 125px;
}

.section_07.top_recruit .inner_1200 {
  display: flex;
  gap: 60px;
  align-items: flex-start;
}

.section_07.top_recruit .recruit_left h2 {
  color: #1d1558;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.8px;
  margin-top: 11px;
  position: relative;
}

.section_07.top_recruit .recruit_left h2::after {
  position: absolute;
  content: "RECRUIT";
  font-family: "Instrument Sans";
  top: 8px;
  left: -4px;
  font-size: 64px;
  font-weight: 500;
  letter-spacing: 3.2px;
  background: linear-gradient(
    257deg,
    #f4f2fa -14.19%,
    #416ae5 24.4%,
    #1c1ae4 57.43%,
    #1d1558 94.83%
  );
  background-clip: text;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.section_07.top_recruit .recruit_left .sub_title {
  margin-top: 86px;
  margin-left: 1px;
  color: #202020;
  font-size: 32px;
  font-weight: 500;
  line-height: 46px;
  letter-spacing: 1.6px;
}

.section_07.top_recruit .recruit_left p {
  color: #202020;
  font-size: 16px;
  font-weight: 500;
  line-height: 30px;
  letter-spacing: 0.8px;
  margin-top: 32px;
}

.section_07.top_recruit .btn_container {
  margin-top: 41px;
  display: flex;
  justify-content: flex-start;
}

.section_07.top_recruit .recruit_left .btn_link {
  width: 171px;
}

.section_07.top_recruit .recruit_left .btn_link p {
  color: #fff;
  height: 48px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.7px;
  margin-top: 17px;
  margin-left: -1px;
  position: relative;
}

.section_07.top_recruit .recruit_left .btn_link p::after {
  content: "";
  position: absolute;
  right: -25px;
  top: 32%;
  width: 7px;
  height: 7px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translateY(-50%) rotate(45deg);
}

.section_07.top_recruit .recruit_right {
  flex: 1;
  margin-left: 23px;
}

.section_07.top_recruit .recruit_right img {
  width: 648px;
  height: 502px;
}

/* footer */
.top_section_contact {
  background-color: #e3f2ff;
  padding: 0;
}

.top_section_contact .container {
  background-image: url("../img/top_section_contact.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 60px 40px 105px;
  color: #fcfcfc;
  margin: 0 1px;
  border-radius: 15px;
}

.top_section_contact .inner_1400 {
  width: 93%;
}

.top_section_contact h2 {
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.8px;
  margin-top: 46px;
}

.top_section_contact h2::after {
  position: absolute;
  content: "";
  width: 2px;
  height: 85px;
  background-color: #fff;
  top: -1px;
  left: 50%;
}

.top_section_contact .sub_title {
  font-family: "Instrument Sans";
  font-size: 64px;
  font-weight: 500;
  letter-spacing: 3.2px;
  margin-top: -21px;
  margin-left: 3px;
}

.top_section_contact .sub_cont {
  color: #fff;
  font-family: "Noto Sans JP";
  font-size: 20px;
  font-weight: 500;
  line-height: 46px;
  letter-spacing: 1px;
  margin-top: -9px;
  margin-left: 2px;
}

.top_section_contact .flex_row {
  display: flex;
  gap: 74px;
  justify-content: flex-start;
  align-items: flex-start;
  margin-top: 14px;
  margin-left: auto;
  margin-right: auto;
  width: fit-content;
}

.top_section_contact .tel_area {
  display: flex;
  flex-direction: column;
  gap: 10px;
  text-decoration: none;
  color: #fff;
  margin-top: 6px;
  margin-left: 1px;
}

.top_section_contact .tel_area .tell {
  display: flex;
  align-items: center;
  gap: 4px;
  justify-content: flex-start;
  margin-left: 4px;
  color: #fff;
}

.top_section_contact .tel_area img {
  width: 24px;
  height: 29px;
  border-radius: unset;
}

.top_section_contact .tel_area p {
  font-family: "Instrument Sans";
  font-size: 40px;
  font-weight: 600;
  line-height: 41.489px;
  letter-spacing: 1px;
}

.top_section_contact .tel_area .time p {
  font-family: "Noto Sans JP";
  font-size: 16px;
  font-weight: 400;
  line-height: normal;
  letter-spacing: 0.4px;
  margin-top: -11px;
  margin-left: 58px;
}

.top_section_contact .white_btn {
  width: 402px;
  height: 100px;
  display: flex;
  padding: 14px 25px;
  align-items: center;
  justify-content: flex-start;
  border-radius: 100px;
  background: #fff;
  text-decoration: none;
  transition: all 0.3s ease;
}

.top_section_contact .white_btn:hover {
  background-color: #e3f2ff;
  transform: translateY(-2px);
  box-shadow: 0 2px 8px rgba(0, 9, 65, 0.3);
}

.top_section_contact .white_btn .flex_row {
  display: flex;
  gap: 7px;
  align-items: center;
  justify-content: center;
  margin-top: 7px;
}

.top_section_contact .white_btn img {
  width: 29px;
  height: 22px;
  margin-top: 1px;
  margin-left: 1px;
  border-radius: unset;
}

.top_section_contact .white_btn p {
  color: #1d1558;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 1.2px;
  margin-top: -2px;
}

/* footer */

footer {
  background-color: #e3f2ff;
  padding: 50px 0 0;
  position: relative;
}

.scroll_to_top_container {
  display: flex;
  flex-direction: row-reverse;
  align-items: flex-end;
  justify-content: center;
  gap: 0;
  position: absolute;
  left: 94.5%;
  bottom: 29px;
}

@media (max-width: 1399px) {
  .scroll_to_top_container {
    left: 92%;
  }

  .scroll_to_top_container .moji::before {
    right: -30px;
  }
}

@media (max-width: 1199px) {
  .scroll_to_top_container {
    left: 90%;
  }

  .scroll_to_top_container .moji::before {
    right: -20px;
  }
}

@media (max-width: 999px) {
  .scroll_to_top_container {
    left: 88%;
  }

  .scroll_to_top_container .moji::before {
    right: -15px;
  }
}

.scroll_to_top_container .moji {
  writing-mode: vertical-rl;
  font-family: "Instrument Sans";
  font-size: 14px;
  font-weight: 600;
  color: #1a1ae5;
  letter-spacing: 0.7px;
  transform: rotate(180deg);
  margin-bottom: 28px;
  margin-right: -5px;
  position: relative;
}

.scroll_to_top_link {
  display: inline-block;
  position: relative;
  transition: all 0.3s ease;
}

.scroll_to_top_container .moji::before {
  content: "";
  position: absolute;
  top: 0;
  left: -50px;
  right: -50px;
  bottom: 0;
  /* クリック範囲を左右に広げる透明エリア */
}

.scroll_to_top_link:hover {
  transform: translateY(-3px);
}

.scroll_to_top_link img {
  height: 129px;
  width: auto;
}

.footer_container {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-left: 31px;
}

.footer_container a {
  display: flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  color: #222;
  width: 300px;
}

.footer_container a img {
  width: 51px;
  height: 42px;
  border-radius: unset;
}

.footer_container a p {
  color: #222;
  font-family: "Noto Serif JP";
  font-size: 21px;
  font-weight: 700;
  letter-spacing: 0.525px;
  padding-top: 4px;
}

.footer_container > div {
  margin-left: -1px;
}

.footer_container .flex_row {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}

.footer_container .adress {
  color: #222;
  font-size: 16px;
  font-weight: 400;
  line-height: 26px;
  letter-spacing: 0.8px;
}

.footer_container .tel_fax {
  color: #222;
  font-size: 16px;
  font-weight: 400;
  line-height: 26px;
  letter-spacing: 0.8px;
}

.footer_container .copyright {
  font-size: 12px;
}

.copyright_wrap {
  width: 100%;
  height: 30px;
  background: linear-gradient(
    257deg,
    #f4f2fa -14.19%,
    #416ae5 24.4%,
    #1c1ae4 57.43%,
    #1d1558 94.83%
  );
  padding: 4px 0;
  margin-top: 25px;
}

.copyright {
  color: #fff;
  text-align: right;
  font-family: "Instrument Sans";
  font-size: 10px;
  font-weight: 400;
  letter-spacing: 0.25px;
  margin-top: 3px;
  margin-right: 34px;
}

/* ---------------------------------------------------------------------------
  ★　下層
--------------------------------------------------------------------------- */

h2.h2Tit {
  background: linear-gradient(
    257deg,
    #f4f2fa -14.19%,
    #416ae5 24.4%,
    #1c1ae4 57.43%,
    #1d1558 94.83%
  );
  background-clip: text;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: bold;
  letter-spacing: 0.05em;
}

/* パンくず */

.breadcrumb_area {
  background: linear-gradient(
    257deg,
    #f4f2fa -14.19%,
    #416ae5 24.4%,
    #1c1ae4 57.43%,
    #1d1558 94.83%
  );
  padding: 5px 0;
}

.breadcrumb_area .pankuzu {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 15px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.pankuzu li {
  color: #e3f2ff;
  font-size: 14px;
  font-weight: 500;
}

.pankuzu li .arrow {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-right: 1px solid #e3f2ff;
  border-bottom: 1px solid #e3f2ff;
  transform: rotate(-45deg);
}

.pankuzu li a {
  color: #e3f2ff;
  text-decoration: none;
  transition: all 0.3s ease;
}

.pankuzu .pankuzu_right {
  padding-left: 14px;
}

.pankuzu li a:hover {
  color: #93cdff;
  text-decoration: none;
}

/*　Company　*/

#company .section_01.greeting {
  background-color: #ffffff;
}

#company .section_01.greeting .greeting_flex {
  gap: 40px;
  align-items: flex-start;
}

#company .section_01.greeting .greeting_img {
  width: 350px;
  height: auto;
  object-fit: cover;
  flex-shrink: 0;
  display: none;
}

#company .section_01.greeting .greeting_text {
  flex: 1;
}

#company .section_01.greeting .greeting_title {
  color: #011280;
  margin-bottom: 15px;
  line-height: 1.8;
}

#company .section_01.greeting .greeting_body {
  line-height: 2;
  margin-bottom: 30px;
}

#company .section_01.greeting .greeting_sign {
  text-align: right;
  font-weight: 600;
}

#company .section_02.overview {
  background-color: #e3f2ff;
}

#company .section_02.overview .overview_table table {
  width: 100%;
  border-collapse: collapse;
  background-color: #fff;
  border-radius: 8px;
}

#company .section_02.overview .overview_table th {
  width: 180px;
  padding: 20px;
  border: 1px solid #e3f2ff;
  background-color: #1d1558;
  font-weight: bold;
  color: #fff;
  white-space: nowrap;
  vertical-align: middle;
  text-align: left;
}

#company .section_02.overview .overview_table td {
  padding: 20px;
  border: 1px solid #e3f2ff;
  background-color: #fff;
  font-weight: 500;
  vertical-align: middle;
  line-height: 1.8;
}

#company .section_03.license {
  background-color: #ffffff;
}

#company .section_04.history {
  background-color: #e3f2ff;
}

#company .section_04.history .history_table table {
  width: 100%;
  border-collapse: collapse;
  background-color: #fff;
  border-radius: 8px;
}

#company .section_04.history .history_table th {
  width: 200px;
  padding: 20px;
  border: 1px solid #e3f2ff;
  background-color: #1d1558;
  font-weight: bold;
  color: #fff;
  white-space: nowrap;
  vertical-align: middle;
  text-align: left;
}

#company .section_04.history .history_table td {
  padding: 20px;
  border: 1px solid #e3f2ff;
  background-color: #fff;
  font-weight: 500;
  vertical-align: middle;
  line-height: 1.8;
}

#company .section_05.access {
  background-color: #ffffff;
}

#company .section_05.access .access_map iframe {
  width: 100%;
  height: 400px;
  border-radius: 8px;
}

/* service */

#service .section_01 {
  background-color: #ffffff;
}

#service .section_02 {
  background-color: #e3f2ff;
}

#service .section_03 {
  background-color: #ffffff;
}

#service .section_01 .service_main_image,
#service .section_02 .service_main_image,
#service .section_03 .service_main_image {
  width: 100%;
  height: auto;
  display: block;
  margin: 0 auto 30px;
}

#service .section_01 .service_sub_heading,
#service .section_02 .service_sub_heading,
#service .section_03 .service_sub_heading {
  font-weight: bold;
  text-align: center;
  margin-bottom: 10px;
}

#service .section_01 .service_description,
#service .section_02 .service_description,
#service .section_03 .service_description {
  line-height: 1.8;
  margin-bottom: 50px;
  text-align: center;
  margin: 0 150px 70px;
  position: relative;
}

#service .section_01 .service_description::after,
#service .section_02 .service_description::after,
#service .section_03 .service_description::after {
  position: absolute;
  content: "";
  width: 80%;
  height: 2px;
  bottom: -30px;
  left: 50%;
  transform: translateX(-50%);
  background: linear-gradient(
    257deg,
    #f4f2fa -14.19%,
    #416ae5 24.4%,
    #1c1ae4 57.43%,
    #1d1558 94.83%
  );
}

#service .section_01 .points_wrapper,
#service .section_02 .points_wrapper,
#service .section_03 .points_wrapper {
  display: flex;
  justify-content: space-between;
  gap: 50px;
  position: relative;
}

#service .section_01 .points_wrapper::before,
#service .section_02 .points_wrapper::before,
#service .section_03 .points_wrapper::before {
  left: calc(33.333% - 53px);
}

#service .section_01 .points_wrapper::after,
#service .section_02 .points_wrapper::after,
#service .section_03 .points_wrapper::after {
  right: calc(33.333% - 90px);
}

#service .section_01 .point_item,
#service .section_02 .point_item,
#service .section_03 .point_item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  width: calc(33.333% - 30px);
  padding: 30px 20px;
  position: relative;
  background: linear-gradient(135deg, #e3f2ff 0%, #d0e7ff 50%, #c0deff 100%);
  border-radius: 8px;
  overflow: hidden;
  transition: transform 0.3s ease;
  z-index: 1;
}

#service .section_02 .point_item {
  background: #fff;
}

/* 斜めの光沢（常時表示） */
/* #service .section_01 .point_item::before,
#service .section_02 .point_item::before,
#service .section_03 .point_item::before {
  content: "";
  position: absolute;
  top: -50%;
  left: -20%;
  width: 40%;
  height: 200%;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(255, 255, 255, 0.6) 50%,
    transparent 100%
  );
  transform: rotate(-25deg);
  pointer-events: none;
  transition: opacity 0.3s ease;
  z-index: 1;
} */

#service .section_01 .point_item .number,
#service .section_02 .point_item .number,
#service .section_03 .point_item .number {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: #685fa7;
  font-family: "Instrument Sans", sans-serif;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  margin-bottom: 10px;
  position: relative;
  z-index: 2;
}

#service .section_01 .point_item .point_title,
#service .section_02 .point_item .point_title,
#service .section_03 .point_item .point_title {
  font-weight: bold;
  line-height: 1.6;
  margin-bottom: 20px;
  position: relative;
  z-index: 2;
}

#service .section_01 .point_item .point_image_wrapper,
#service .section_02 .point_item .point_image_wrapper,
#service .section_03 .point_item .point_image_wrapper {
  width: 300px;
  height: 225px;
  border-radius: 20px;
  overflow: hidden;
  margin-bottom: 20px;
  display: none;
}

#service .section_01 .point_item .point_image,
#service .section_02 .point_item .point_image,
#service .section_03 .point_item .point_image {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  position: relative;
  z-index: 2;
}

#service .section_01 .point_item .point_text,
#service .section_02 .point_item .point_text,
#service .section_03 .point_item .point_text {
  line-height: 1.8;
  text-align: left;
  position: relative;
  z-index: 2;
}

/* work */

#work .section_01.main_jisseki {
  background-color: #ffffff;
}

#work .section_01.main_jisseki .jisseki_row {
  gap: 30px;
  margin-bottom: 30px;
}

#work .section_01.main_jisseki .jisseki_row:last-child {
  margin-bottom: 0;
}

#work .section_01.main_jisseki .jisseki_card {
  display: flex;
  flex-direction: column;
  width: calc(50% - 15px);
  background-color: #fff;
  border: 1px solid #e3f2ff;
  border-radius: 8px;
  padding: 20px;
}

#work .section_01.main_jisseki .jisseki_card_title {
  color: #011280;
  margin-bottom: 15px;
}

#work .section_01.main_jisseki .jisseki_card_img {
  width: 100%;
  height: 340px;
  object-fit: cover;
  border-radius: 20px;
  margin-bottom: 15px;
}

#work .section_01.main_jisseki .sub_title {
  color: #1c1ae4;
  margin-bottom: 5px;
}

#work .section_01.main_jisseki .honbun {
  line-height: 1.8;
}

#work .section_02.shinkansen_section {
  background-color: #e3f2ff;
}

#work .section_02.shinkansen_section .shinkansen_desc {
  margin-bottom: 50px;
}

#work .section_02.shinkansen_section .shinkansen_desc .honbun {
  line-height: 1.8;
  max-width: 900px;
  margin: 0 auto;
}

#work .section_02.shinkansen_section .shinkansen_card {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 40px 20px;
  border-radius: 8px;
  position: relative;
  min-height: 250px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

#work .section_02.shinkansen_section .shinkansen_card.hokuriku {
  background-image: url("../img/work_01.png");
}

#work .section_02.shinkansen_section .shinkansen_card.tohoku {
  background-image: url("../img/work_02.png");
}

#work .section_02.shinkansen_section .shinkansen_card.kyushu {
  background-image: url("../img/work_03.png");
}

#work .section_02.shinkansen_section .shinkansen_card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(69, 91, 182, 0.7);
  border-radius: 8px;
}

#work .section_02.shinkansen_section .shinkansen_card p {
  position: relative;
  z-index: 1;
  color: #fff;
}

#work .section_02.shinkansen_section .shinkansen_card .sub_title {
  margin-bottom: 15px;
}

#work .section_02.shinkansen_section .shinkansen_card .chiku {
  margin-bottom: 10px;
  color: #011280;
}

#work .section_02.shinkansen_section .shinkansen_card .chiku span {
  background: #fff;
  border-radius: 4px;
  padding: 3px 10px;
}
#work .section_02.shinkansen_section .shinkansen_card .honbun {
  line-height: 1.6;
}

#work .section_03.nenkan_jisseki {
  background-color: #ffffff;
}

#work .section_03.nenkan_jisseki .jisseki_btn {
  margin-bottom: 50px;
}

#work .section_03.nenkan_jisseki .btn_group {
  gap: 20px;
  justify-content: center;
}

#work .section_03.nenkan_jisseki .year_btn {
  background-color: #1c1ae4;
  color: #fff;
  padding: 15px 40px;
  border-radius: 50px;
  text-decoration: none;
  transition: background-color 0.3s;
  display: flex;
  align-items: center;
}

#work .section_03.nenkan_jisseki .year_btn:hover {
  background-color: #1510b8;
}

#work .section_03.nenkan_jisseki .year_section {
  margin-bottom: 40px;
  scroll-margin-top: 113px;
}

#work .section_03.nenkan_jisseki .jisseki_table_row {
  display: flex;
  gap: 0;
  color: red;
}

#work .section_03.nenkan_jisseki .jisseki_table_row .table_cell {
  width: 33.333%;
  padding: 15px;
  border: 1px solid #e3f2ff;
  background-color: #fff;
}

#work .section_03.nenkan_jisseki .jisseki_table_row.header_row .table_cell {
  background-color: #e3f2ff;
  color: #1d1558;
}

#work .section_03.nenkan_jisseki .jisseki_table_row .table_cell:first-child {
  border-left: 1px solid #e3f2ff;
}

#work .section_03.nenkan_jisseki .jisseki_table_row .table_cell:last-child {
  border-right: 1px solid #e3f2ff;
}

#work .section_03.nenkan_jisseki .jisseki_table_row .table_cell:nth-child(1),
#work .section_03.nenkan_jisseki .jisseki_table_row .table_cell:nth-child(2) {
  display: flex;
  align-items: center;
}

#work .section_03.nenkan_jisseki .container {
  border-radius: 8px;
  overflow: hidden;
}

#work .section_03.nenkan_jisseki .section_divider {
  height: 1px;
  background-color: #e3f2ff;
  margin: 40px 0;
}

#work .section_03.nenkan_jisseki .more_btn_wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  margin-top: 40px;
}

#work .section_03.nenkan_jisseki .more_btn {
  background: linear-gradient(
    257deg,
    #f4f2fa -14.19%,
    #416ae5 24.4%,
    #1c1ae4 57.43%,
    #1d1558 94.83%
  );
  color: #fff;
  padding: 15px 20px;
  border-radius: 50px;
  cursor: pointer;
  transition: all 0.3s;
}

#work .section_03.nenkan_jisseki .more_btn:hover {
  background-color: #1c1ae4;
  color: #fff;
}

#work .section_03.nenkan_jisseki .close_btn {
  background: linear-gradient(
    257deg,
    #f4f2fa -14.19%,
    #416ae5 24.4%,
    #1c1ae4 57.43%,
    #1d1558 94.83%
  );
  color: #fff;
  padding: 15px 20px;
  border-radius: 50px;
  cursor: pointer;
  transition: all 0.3s;
}

#work .section_03.nenkan_jisseki .close_btn:hover {
  background-color: #1c1ae4;
  color: #fff;
}

#work .section_03.nenkan_jisseki .container_hidden {
  margin-top: 40px;
}

table {
  border-collapse: collapse;
  background-color: #fff;
  border-radius: 8px;
  width: 100%;
}

table th {
  border: 1px solid #fff;
  background-color: #e3f2ff;
  font-weight: bold;
  color: #fff;
  white-space: nowrap;
  padding: 12px 15px;
}

table td {
  border: 1px solid #e3f2ff;
  background-color: #fff;
  font-weight: 500;
  padding: 12px 15px;
}

/* ESG */

/* ベン図 */

.venn_diagram {
  display: block;
  margin: 0 auto;
  max-width: 800px;
  width: 100%;
}

.venn_bg_text {
  font-weight: bold;
  pointer-events: none;
}

.venn_english_title {
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
}

.venn_japanese_subtitle {
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
}

.venn_description {
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
}

.venn_list_item {
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
}

/* ESG */

#esg .section_02.esg_sdgs {
  background-color: #e3f2ff;
}

#esg .section_02.esg_sdgs p {
  line-height: 1.8;
  text-align: center;
  border-radius: 16px;
  padding: 50px 40px;
  max-width: 900px;
  margin: 0 auto;
  position: relative;
  background-color: transparent;
  z-index: 1;
  overflow: hidden;
  text-shadow: 2px 2px 0 #fff, -2px 2px 0 #fff, 2px -2px 0 #fff,
    -2px -2px 0 #fff, 2px 0 0 #fff, -2px 0 0 #fff, 0 2px 0 #fff, 0 -2px 0 #fff,
    1px 1px 0 #fff, -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff;
}

#esg .section_02.esg_sdgs p::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: url("../img/esg_senro_01.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 14px;
  z-index: -1;
}

#esg .section_02.esg_sdgs p::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(
      to bottom,
      rgba(227, 242, 255, 1) 0%,
      transparent 35px
    ),
    linear-gradient(to top, rgba(227, 242, 255, 1) 0%, transparent 5px);
  border-radius: 14px;
  pointer-events: none;
  z-index: -1;
}

#esg .section_03.environment {
  background-color: #ffffff;
}

#esg .section_03.environment .esg_sub_title {
  margin-bottom: 10px;
  color: #1c1ae4;
}

#esg .section_03.environment .esg_discript {
  margin-bottom: 30px;
  color: #011280;
}

#esg .section_03.environment .honbun {
  margin-bottom: 40px;
  line-height: 1.8;
}

#esg .esg_icon {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px;
  margin: 40px 0 10px;
}

#esg .esg_icon img {
  width: calc(25% - 15px);
  width: 100px;
  height: auto;
  border-radius: 8px;
}

/* 共通スタイル - 薄黄緑背景とギザギザ境界線 */
#esg .section_03.environment .contain,
#esg .section_04.social .contain,
#esg .section_05.governance .contain {
  width: 80%;
  margin: 0 auto;
  margin-top: 25px;
  padding: 40px 50px 20px;
  position: relative;
  background-color: #f0f8e8;
  /* 薄黄緑色 */
  border: none;
}

/* ギザギザ境界線（上部） */
#esg .section_03.environment .contain::before,
#esg .section_04.social .contain::before,
#esg .section_05.governance .contain::before {
  content: "";
  position: absolute;
  top: -10px;
  left: 0;
  width: 100%;
  height: 10px;
  background: linear-gradient(65deg, #f0f8e8 10px, transparent 0),
    linear-gradient(305deg, #f0f8e8 10px, transparent 0);
  background-size: 20px 20px;
  background-position: 0 0;
}

#esg > section.section_02.esg_sdgs > div > h2 {
  background: none;
  -webkit-text-fill-color: #011280 !important;
}

/* ギザギザ境界線（下部） */
#esg .section_03.environment .contain::after,
#esg .section_04.social .contain::after,
#esg .section_05.governance .contain::after {
  content: "";
  position: absolute;
  bottom: -10px;
  left: 0;
  width: 100%;
  height: 10px;
  background: linear-gradient(145deg, #f0f8e8 10px, transparent 0),
    linear-gradient(285deg, #f0f8e8 10px, transparent 0);
  background-size: 20px 20px;
  background-position: 0 0;
}

#esg .section_03.environment .contain h3,
#esg .section_04.social .contain h3,
#esg .section_05.governance .contain h3 {
  margin-bottom: 20px;
  text-align: center;
}

#esg .section_04.social {
  background-color: #e3f2ff;
}

#esg .section_04.social .esg_sub_title {
  margin-bottom: 10px;
  color: #1c1ae4;
}

#esg .section_04.social .esg_discript {
  margin-bottom: 30px;
  color: #1c1ae4;
}

#esg .section_04.social .honbun {
  margin-bottom: 40px;
  line-height: 1.8;
}

#esg .section_05.governance {
  background-color: #ffffff;
}

#esg .section_05.governance .esg_sub_title {
  margin-bottom: 10px;
  color: #1c1ae4;
}

#esg .section_05.governance .esg_discript {
  margin-bottom: 30px;
  color: #1c1ae4;
}

#esg .section_05.governance .honbun {
  margin-bottom: 40px;
  line-height: 1.8;
}

/* 線路風区切り線（水色バージョン） */
#esg .railway_divider {
  width: 100%;
  height: 40px;
  position: relative;
  background:
        /* 上のレール */ linear-gradient(
      to right,
      #78a0eb 0%,
      #78a0eb 100%
    ),
    /* 下のレール */ linear-gradient(to right, #78a0eb 0%, #78a0eb 100%),
    /* 平行四辺形のストライプ（枕木） */
      repeating-linear-gradient(
        110deg,
        #e3f2ff 40px,
        #e3f2ff 80px,
        #fff 80px,
        #fff 140px
      );
  background-size: 100% 4px, /* 上のレール */ 100% 4px,
    /* 下のレール */ 100% 100%;
  /* 平行四辺形 */
  background-position: center 7px, /* 上のレール */ center 27px,
    /* 下のレール */ center center;
  /* 平行四辺形 */
  background-repeat: no-repeat, no-repeat, repeat;
  margin: 30px 0;
}

#esg .railway_divider::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(to left, rgb(255, 255, 255) 0%, transparent 20%),
    linear-gradient(to right, rgb(255, 255, 255) 0%, transparent 20%);
}

#esg .section_04.social .railway_divider.blue::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(to left, rgb(227, 242, 255) 0%, transparent 20%),
    linear-gradient(to right, rgb(227, 242, 255) 0%, transparent 20%);
}

#esg .railway_divider.green {
  filter: hue-rotate(260deg);
}

#esg .railway_divider.blue {
  filter: hue-rotate(10deg);
}

#esg .railway_divider.red {
  filter: hue-rotate(90deg);
}

/* ========================================
   双葉の装飾
   ======================================== */

/* 双葉コンテナの基本スタイル */
.sprout-decoration {
  position: absolute;
  width: 40px;
  height: 55px;
  pointer-events: auto;
  z-index: 10;
  top: -25px;
  cursor: pointer;
  transition: none;
}

/* 左側配置 */
.sprout-decoration.sprout-left {
  left: 20px;
}

/* 右側配置 */
.sprout-decoration.sprout-right {
  right: 20px;
}

/* 双葉SVG */
.sprout-svg {
  width: 100%;
  height: 100%;
  filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.15));
}

/* アニメーション */
@keyframes swayLeft {
  0%,
  100% {
    transform: rotate(0deg);
  }

  25% {
    transform: rotate(-8deg);
  }

  75% {
    transform: rotate(5deg);
  }
}

@keyframes swayRight {
  0%,
  100% {
    transform: rotate(0deg);
  }

  25% {
    transform: rotate(8deg);
  }

  75% {
    transform: rotate(-5deg);
  }
}

@keyframes swayLeftBig {
  0%,
  100% {
    transform: rotate(0deg);
  }

  25% {
    transform: rotate(-15deg);
  }

  75% {
    transform: rotate(10deg);
  }
}

@keyframes swayRightBig {
  0%,
  100% {
    transform: rotate(0deg);
  }

  25% {
    transform: rotate(15deg);
  }

  75% {
    transform: rotate(-10deg);
  }
}

@keyframes sproutStretch {
  0% {
    transform: translateY(0) scaleY(1);
  }

  50% {
    transform: translateY(-8px) scaleY(1.15);
  }

  100% {
    transform: translateY(0) scaleY(1);
  }
}

.leaf-left {
  animation: swayLeft 2.5s ease-in-out infinite;
  transform-origin: 40px 45px;
}

.leaf-right {
  animation: swayRight 2.3s ease-in-out infinite;
  transform-origin: 40px 45px;
}

.sprout-decoration:hover {
  animation: sproutStretch 0.4s ease-out;
}

.sprout-decoration:hover .leaf-left {
  animation: swayLeftBig 1.2s ease-in-out infinite;
}

.sprout-decoration:hover .leaf-right {
  animation: swayRightBig 1s ease-in-out infinite;
}

.esg_icon {
  display: flex;
  justify-content: center;
  gap: 15px;
  margin-top: 30px;
}

.esg_icon img {
  width: 60px;
  height: 60px;
}

/* 説明テキスト */
.demo-note {
  background: #fffacd;
  padding: 15px;
  margin-bottom: 20px;
  border-left: 4px solid #ffd700;
  font-size: 14px;
  color: #666;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
  #esg .section_03.environment .contain,
  #esg .section_04.social .contain,
  #esg .section_05.governance .contain {
    padding: 4%;
  }

  #esg .section_03.environment .contain::before,
  #esg .section_04.social .contain::before,
  #esg .section_05.governance .contain::before {
    top: -8px;
    height: 8px;
    background: linear-gradient(45deg, #f0f8e8 8px, transparent 0),
      linear-gradient(315deg, #f0f8e8 8px, transparent 0);
    background-size: 16px 16px;
  }

  #esg .section_03.environment .contain::after,
  #esg .section_04.social .contain::after,
  #esg .section_05.governance .contain::after {
    bottom: -8px;
    height: 8px;
    background: linear-gradient(135deg, #f0f8e8 8px, transparent 0),
      linear-gradient(225deg, #f0f8e8 8px, transparent 0);
    background-size: 16px 16px;
  }

  .sprout-decoration {
    width: 35px;
    height: 48px;
  }

  .sprout-decoration.sprout-left {
    left: 15px;
  }

  .sprout-decoration.sprout-right {
    right: 15px;
  }
}

@media (max-width: 480px) {
  .sprout-decoration {
    width: 30px;
    height: 41px;
    top: -20px;
  }

  .sprout-decoration:hover {
    animation: none;
  }
}

/* お問い合わせ */

#contact .section_01.contact_info {
  background-color: #ffffff;
}

#contact .section_01.contact_info .inner_1000 {
  text-align: center;
}

#contact .section_01.contact_info .contact_message {
  font-size: 18px;
  line-height: 1.8;
  margin-bottom: 40px;
}

#contact .section_01.contact_info .contact_details {
  background-color: #e3f2ff;
  padding: 20px;
  border-radius: 8px;
  max-width: 600px;
  margin: 0 auto;
}

#contact .section_01.contact_info .tel_link {
  display: block;
  font-weight: bold;
  background: linear-gradient(
    257deg,
    #f4f2fa -14.19%,
    #416ae5 24.4%,
    #1c1ae4 57.43%,
    #1d1558 94.83%
  );
  background-clip: text;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: bold;
  letter-spacing: 0.05em;
  text-decoration: none;
  transition: color 0.3s ease;
}

#contact .section_01.contact_info .tel_link:hover {
  color: #1c1ae4;
}

#contact table th {
  color: #0b3985;
  width: 33%;
}

/* プライバシーポリシー本文 */
.contact_form_section .privacy_container {
  margin: 20px 0;
  border: 2px solid #0b3985;
  border-radius: 8px;
  overflow: hidden;
}

.contact_form_section .privacy_toggle_checkbox {
  display: none;
}

.contact_form_section .privacy_toggle_header {
  text-align: center;
  padding: 20px;
  background-color: #e3f2ff;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  user-select: none;
  width: 100%;
  box-sizing: border-box;
}

.contact_form_section .privacy_toggle_header:hover {
  background-color: #bbd6ed;
}

.contact_form_section .privacy_title {
  font-size: 16px;
}

.contact_form_section .privacy_arrow {
  transition: transform 0.3s ease;
  color: #0b3985;
  font-weight: bold;
  margin-left: 10px;
}

.contact_form_section
  .privacy_toggle_checkbox:checked
  + .privacy_toggle_header
  .privacy_arrow {
  transform: rotate(180deg);
}

.contact_form_section .privacy_content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, padding-top 0.3s ease,
    padding-bottom 0.3s ease;
  background-color: #fff;
  padding: 0 30px;
}

.contact_form_section .privacy_toggle_checkbox:checked ~ .privacy_content {
  max-height: 300px;
  padding: 30px;
  overflow-y: auto;
}

.contact_form_section .privacy_content p {
  margin: 10px auto;
  line-height: 1.8;
  overflow-wrap: break-word;
}

/* プライバシーポリシー同意 */
.section_02.contact_form_section .privacy_agreement {
  text-align: center;
}

.section_02.contact_form_section .privacy_label {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  font-size: 16px;
}

.section_02.contact_form_section .privacy_label input[type="checkbox"] {
  margin-right: 10px;
  width: 20px;
  height: 20px;
  cursor: pointer;
}

.section_02.contact_form_section .privacy_label a {
  color: #0b3985;
  text-decoration: underline;
  font-weight: bold;
}

.section_02.contact_form_section .privacy_label a:hover {
  color: #1c1ae4;
}

/* 送信ボタン */
.section02.contact_form_section .contact_submit_btn {
  background: linear-gradient(
    257deg,
    #f4f2fa -14.19%,
    #416ae5 24.4%,
    #1c1ae4 57.43%,
    #1d1558 94.83%
  );
  color: #fff;
  padding: 18px 60px;
  font-size: 18px;
  font-weight: bold;
  border: none;
  border-radius: 50px;
  cursor: pointer;
  transition: all 0.3s ease;
  letter-spacing: 0.05em;
}

.section02.contact_form_section .contact_submit_btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 2px 8px rgba(0, 9, 65, 0.3);
  background: linear-gradient(
    257deg,
    #d4d2da -14.19%,
    #2149c5 24.4%,
    #0000c4 57.43%,
    #000038 94.83%
  );
}

.section02.contact_form_section .contact_submit_btn:active {
  transform: translateY(0);
}

#contact .section02 .privacy_label {
  display: flex;
  justify-content: center;
}

/*------------------- サンクスページ -------------------*/

/* サンクスメッセージセクション */

.thanks_message_area {
  max-width: 800px;
  margin: 0 auto;
  text-align: center;
}

/* チェックアイコン */
.thanks_icon {
  margin-bottom: 30px;
}

.check_circle {
  width: 80px;
  height: 80px;
  background: #0b3985;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  box-shadow: 0 4px 15px rgba(14, 35, 70, 0.3);
  animation: pulse 2s infinite;
}

.check_mark {
  width: 24px;
  height: 12px;
  border: 3px solid white;
  border-top: none;
  border-right: none;
  transform: rotate(-45deg);
  margin-top: -6px;
}

@keyframes pulse {
  0% {
    transform: scale(1);
    box-shadow: 0 4px 15px rgba(14, 35, 70, 0.3);
  }

  50% {
    transform: scale(1.05);
    box-shadow: 0 6px 20px rgba(14, 35, 70, 0.4);
  }

  100% {
    transform: scale(1);
    box-shadow: 0 4px 15px rgba(14, 35, 70, 0.3);
  }
}

/* サンクスコンテンツ */

.thanks_content > p:first-child {
  color: #0b3985;
  margin-bottom: 25px;
}

/* recruit */

#recruit .section_01.message_area {
  background-color: #ffffff;
}

#recruit .section_01.message_area .message_img {
  display: block;
  width: 100%;
  max-width: 800px;
  margin: 0 auto 20px;
}

#recruit .section_01.message_area .sub_title {
  font-weight: bold;
  line-height: 1.8;
}

#recruit .section_01.message_area .honbun {
  line-height: 2;
  margin: 0 180px;
}

#recruit .section_02.features_area {
  background-color: #e3f2ff;
}

#recruit .section_02.features_area .features_list {
  display: flex;
  justify-content: space-between;
  gap: 30px;
}

#recruit .section_02.features_area .features_item {
  width: calc(33.333% - 20px);
}

#recruit .section_02.features_area .features_img {
  display: block;
  width: 100%;
  display: none;
}

#recruit .section_02.features_area .features_title {
  font-weight: bold;
  line-height: 1.6;
  font-weight: bold;
  line-height: 1.6;
  min-height: 90px;
  display: flex;
  align-items: center;
  justify-content: center;
}

#recruit .section_02.features_area .features_text {
  line-height: 1.8;
}

/* ========================================
   福利厚生セクション - 青系市松模様スタイル（修正版）
   ======================================== */

#recruit .section_03.welfare_area {
  background-color: #ffffff;
}

#recruit .section_03.welfare_area .welfare_list {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  /* 高さを揃える */
  gap: 30px;
}

#recruit .section_03.welfare_area .welfare_item {
  width: calc(33.333% - 20px);
  padding: 30px 20px;
  border-radius: 8px;
  transition: all 0.3s ease;
  box-shadow: 0 2px 8px rgba(29, 21, 88, 0.15);
  display: flex;
  flex-direction: column;
  min-height: 180px;
  /* 最低限の高さを確保 */
}

#recruit .section_03.welfare_area .welfare_title {
  font-weight: bold;
  line-height: 1.6;
  padding-bottom: 15px;
  flex-shrink: 0;
  text-align: center;
  /* タイトルの高さを固定 */
}

#recruit .section_03.welfare_area .welfare_text {
  line-height: 1.8;
  flex-grow: 1;
  /* テキストが余白を埋める */
}

/* ========================================
   青系市松模様パターン
   ベースカラー: #E3F2FF（薄い）〜 #1D1558（濃い）
   
   ※重要: HTMLでh2が最初の子要素なので、
   .welfare_listは2番目の子要素から始まります
   そのため、nth-child(2)〜nth-child(6)を使用
   ======================================== */

/* 1列目: 明 暗 明 */

/* 1-1: 最も薄い青 */
#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(2)
  .welfare_item:nth-child(1) {
  background-color: #e3f2ff;
  color: #1d1558;
}

#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(2)
  .welfare_item:nth-child(1)
  .welfare_title {
  color: #1d1558;
}

/* 1-2: 濃い青 */
#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(2)
  .welfare_item:nth-child(2) {
  background-color: #2e4278;
  color: #ffffff;
}

#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(2)
  .welfare_item:nth-child(2)
  .welfare_title {
  color: #e3f2ff;
}

/* 1-3: 薄い青 */
#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(2)
  .welfare_item:nth-child(3) {
  background-color: #c5dbff;
  color: #1d1558;
}

#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(2)
  .welfare_item:nth-child(3)
  .welfare_title {
  color: #1d1558;
}

/* 2列目: 暗 明 暗 */

/* 2-1: 中間より濃い青 */
#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(3)
  .welfare_item:nth-child(1) {
  background-color: #38508c;
  color: #ffffff;
}

#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(3)
  .welfare_item:nth-child(1)
  .welfare_title {
  color: #e3f2ff;
}

/* 2-2: 薄めの青 */
#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(3)
  .welfare_item:nth-child(2) {
  background-color: #d0e4ff;
  color: #1d1558;
}

#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(3)
  .welfare_item:nth-child(2)
  .welfare_title {
  color: #1d1558;
}

/* 2-3: 濃いめの青 */
#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(3)
  .welfare_item:nth-child(3) {
  background-color: #253664;
  color: #ffffff;
}

#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(3)
  .welfare_item:nth-child(3)
  .welfare_title {
  color: #e3f2ff;
}

/* 3列目: 明 暗 明 */

/* 3-1: 薄めの青 */
#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(4)
  .welfare_item:nth-child(1) {
  background-color: #b8d5ff;
  color: #1d1558;
}

#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(4)
  .welfare_item:nth-child(1)
  .welfare_title {
  color: #1d1558;
}

/* 3-2: 中間の濃さの青 */
#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(4)
  .welfare_item:nth-child(2) {
  background-color: #4968a0;
  color: #ffffff;
}

#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(4)
  .welfare_item:nth-child(2)
  .welfare_title {
  color: #e3f2ff;
}

/* 3-3: 薄い青 */
#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(4)
  .welfare_item:nth-child(3) {
  background-color: #d8e8ff;
  color: #1d1558;
}

#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(4)
  .welfare_item:nth-child(3)
  .welfare_title {
  color: #1d1558;
}

/* 4列目: 暗 明 暗 */

/* 4-1: 濃い青 */
#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(5)
  .welfare_item:nth-child(1) {
  background-color: #1d2850;
  color: #ffffff;
}

#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(5)
  .welfare_item:nth-child(1)
  .welfare_title {
  color: #e3f2ff;
}

/* 4-2: 最も薄い青 */
#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(5)
  .welfare_item:nth-child(2) {
  background-color: #e3f2ff;
  color: #1d1558;
}

#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(5)
  .welfare_item:nth-child(2)
  .welfare_title {
  color: #1d1558;
}

/* 4-3: 中間より濃い青 */
#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(5)
  .welfare_item:nth-child(3) {
  background-color: #3a4a8c;
  color: #ffffff;
}

#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(5)
  .welfare_item:nth-child(3)
  .welfare_title {
  color: #e3f2ff;
}

/* 5列目: 明 暗 明 ★修正: nth-child(6)を使用 */

/* 5-1: 薄い青 */
#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(6)
  .welfare_item:nth-child(1) {
  background-color: #c0d8ff;
  color: #1d1558;
}

#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(6)
  .welfare_item:nth-child(1)
  .welfare_title {
  color: #1d1558;
}

/* 5-2: 最も濃い青 */
#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(6)
  .welfare_item:nth-child(2) {
  background-color: #1d1558;
  color: #ffffff;
}

#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(6)
  .welfare_item:nth-child(2)
  .welfare_title {
  color: #e3f2ff;
}

/* 5-3: 薄めの青 */
#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(6)
  .welfare_item:nth-child(3) {
  background-color: #d5e6ff;
  color: #1d1558;
}

#recruit
  .section_03.welfare_area
  .welfare_list:nth-child(6)
  .welfare_item:nth-child(3)
  .welfare_title {
  color: #1d1558;
}

#recruit .section_04.education_area {
  background-color: #e3f2ff;
}

#recruit .section_04.education_area .education_list {
  text-align: center;
  align-items: stretch;
  flex-wrap: wrap;
}

/* 各教育アイテムを箱で囲む */
#recruit .section_04.education_area .education_item {
  border: 3px solid #1c1ae4;
  border-radius: 8px;
  overflow: hidden;
  background-color: #fff;
}

/* タイトル部分：背景色と山型パターン */
#recruit .section_04.education_area .education_title {
  font-weight: bold;
  line-height: 1.6;
  color: #fff;
  background-color: #1c1ae4;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="60" height="40" viewBox="0 0 60 40"><line x1="0" y1="40" x2="30" y2="0" stroke="rgba(255,255,255,0.07)" stroke-width="2"/><line x1="30" y1="0" x2="60" y2="40" stroke="rgba(255,255,255,0.07)" stroke-width="2"/></svg>');
  background-repeat: repeat-x;
  background-position: left bottom;
  padding: 10px 20px;
  margin: 0;
  letter-spacing: 0.1em;
}

/* コンテンツ部分 */
#recruit .section_04.education_area .education_content {
  padding: 30px;
}

#recruit .section_04.education_area .education_text {
  line-height: 2;
  text-align: left;
}

#recruit .section_05.requirements_area {
  background-color: #ffffff;
}

#recruit .section_05.requirements_area .requirements_title {
  font-weight: bold;
  text-align: center;
}

#recruit .section_05.requirements_area .requirements_table {
  width: 100%;
  border-collapse: collapse;
  background-color: #fff;
  border-radius: 8px;
}

#recruit .section_05.requirements_area .requirements_table th {
  border: 1px solid #e3f2ff;
  background-color: #1d1558;
  font-weight: bold;
  color: #fff;
  white-space: nowrap;
  padding: 15px 20px;
  text-align: left;
  width: 180px;
}

#recruit .section_05.requirements_area .requirements_table td {
  border: 1px solid #e3f2ff;
  background-color: #fff;
  font-weight: 500;
  padding: 15px 20px;
}

#recruit .section_06.application_area {
  background-color: #e3f2ff;
}

#recruit .section_06.application_area .application_content {
  display: flex;
  flex-direction: column;
  align-items: center;
}

#recruit .section_06.application_area .application_text {
  line-height: 1.8;
}

#recruit .section_06.application_area .application_btn {
  display: flex;
  width: 300px;
  padding: 14px 25px;
  justify-content: center;
  align-items: center;
  gap: 0;
  border: none;
  border-radius: 100px;
  background: linear-gradient(
    257deg,
    #f4f2fa -14.19%,
    #416ae5 24.4%,
    #1c1ae4 57.43%,
    #1d1558 94.83%
  );
  margin-top: 12px;
  color: #fff;
}

#recruit .section_06.application_area .application_btn img {
  border-radius: 0;
}

#recruit .section_06.application_area .application_btn p {
  color: #fff;
  text-align: center;
  font-family: "Noto Sans JP";
  font-weight: 700;
  line-height: normal;
  letter-spacing: 0.7px;
  margin-left: 5px;
  white-space: nowrap;
}

#recruit .section_06.application_area .application_btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 2px 8px rgba(0, 9, 65, 0.3);
  background: linear-gradient(
    257deg,
    #d4d2da -14.19%,
    #2149c5 24.4%,
    #0000c4 57.43%,
    #000038 94.83%
  );
}
