html {
  font-feature-settings: 'palt';
  font-size: 62.5%;
  scroll-behavior: smooth;
}

@media screen and (max-width:1280px) {
  html {
    font-size: calc(100vw / 1280 * 10);
  }
}

@media screen and (max-width:768px) {
  html {
    font-size: calc(100vw / 375 * 10);
  }
}

body {
  background: #eff2f5;
  color: #000;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: normal;
  overflow-x: hidden;
  position: relative;
  width: 100%;
}

.body_container {
  opacity: 0;
  overflow: hidden;
  transition: .6s ease;
}

.lazy .body_container {
  opacity: 1;
}

.max1060 {
  margin: 0 auto;
  max-width: 106rem;
}

img:not(.cover) {
  height: auto;
  max-width: 100%;
  width: 100%;
}

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

a {
  transition: .3s;
}

.anchor {
  display: flex;
  margin-top: -11.8rem;
  padding-top: 11.8rem;
}

@media screen and (max-width: 768px) {
  .anchor {
    margin-top: -6rem;
    padding-top: 6rem;
  }
}

strong {
  font-weight: inherit;
}

.spacer01 {
  background: #fff;
  height: 12rem;
  position: relative;
}

@media screen and (max-width: 768px) {
  .spacer01 {
    height: 6rem;
  }
}

.r_set {
  border-radius: 0 20px 0 0;
  position: relative;
}

.r_set::before,
.r_set::after {
  /* 1. ここで好きな色を指定！ */
  background-color: #eff2f5;
  content: '';
  height: 20px;
  -webkit-mask-image: url('data:image/svg+xml,%3Csvg width=\'20\' height=\'20\' viewBox=\'0 0 20 20\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M0 20 L0 0 A20 20 0 0 0 20 20 Z\' fill=\'black\'/%3E%3C/svg%3E');
  mask-image: url('data:image/svg+xml,%3Csvg width=\'20\' height=\'20\' viewBox=\'0 0 20 20\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M0 20 L0 0 A20 20 0 0 0 20 20 Z\' fill=\'black\'/%3E%3C/svg%3E');
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
  position: absolute;
  width: 20px;
}

.r_set::before {
  left: 0;
  top: -20px;
}

.r_set::after {
  bottom: 0;
  right: -20px;
}

@media screen and (max-width: 768px) {
  .r_set {
    border-radius: 0 10px 0 0 !important;
    position: relative;
  }

  .r_set::before,
  .r_set::after {
    /* 1. ここで好きな色を指定！ */
    background-color: #eff2f5;
    content: '';
    height: 10px;
    -webkit-mask-image: url('data:image/svg+xml,%3Csvg width=\'20\' height=\'20\' viewBox=\'0 0 20 20\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M0 20 L0 0 A20 20 0 0 0 20 20 Z\' fill=\'black\'/%3E%3C/svg%3E');
    mask-image: url('data:image/svg+xml,%3Csvg width=\'20\' height=\'20\' viewBox=\'0 0 20 20\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M0 20 L0 0 A20 20 0 0 0 20 20 Z\' fill=\'black\'/%3E%3C/svg%3E');
    mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-size: contain;
    position: absolute;
    width: 10px;
  }

  .r_set::before {
    left: 0;
    top: -10px;
  }

  .r_set::after {
    bottom: 0;
    right: -10px;
  }
}

/* ---------------------------------------------------------------------------
//  f_animation
--------------------------------------------------------------------------- */
/* 基本の文字（隠れた状態） */
.char {
  display: inline-block;
  opacity: 0;
  transform: translateY(2rem);
  transition: all .4s ease;
}

/* 表示された状態 */
.char.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* 強調したい箇所の色の設定 */
.f_change {
  color: #2f51af;
  /* ここで好きな色を指定 */
}

/* ---------------------------------------------------------------------------
//  btnA
--------------------------------------------------------------------------- */
.btnA {
  align-items: center;
  display: flex;
}

.btnA>* {
  align-items: center;
  background: #4b73eb;
  border-radius: 100vh;
  color: #fff;
  display: flex;
  font-size: 1.6rem;
  font-weight: 500;
  height: 5.9rem;
  overflow: hidden;
  padding: 0 2.8rem;
  padding-right: 7.9rem;
  position: relative;
  width: 25.5rem;
}

.btnA>*::before {
  background: linear-gradient(90deg, #4b73eb 0%, #69b6ed 100%);
  content: '';
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  transform: translateX(100%);
  transition: .3s;
  width: 100%;
}

.btnA>*:hover:before {
  transform: translateX(0);
}

.btnA>* b {
  font-weight: 500;
  position: relative;
  white-space: nowrap;
}

.btnA>* span {
  background-color: #fff;
  border-radius: 100%;
  bottom: 0;
  height: 2.7rem;
  margin: auto;
  margin: auto;
  position: absolute;
  right: 2rem;
  top: 0;
  transition: .3s;
  width: 2.7rem;
  z-index: 2;
}

.btnA>*:hover span {
  background-color: #4b73eb;
}

.btnA>*:hover span::before {
  background: #fff;
  transform: scale(1.2);
}

.btnA>* span::before {
  background: #4b73eb;
  border-radius: 100%;
  bottom: 0;
  content: '';
  height: .9rem;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: 0;
  transition: .3s;
  width: .9rem;
}

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

/* ---------------------------------------------------------------------------
//  top_fv
--------------------------------------------------------------------------- */
.top_fv {
  height: 100vh;
  height: 100svh;
  overflow: hidden;
  padding: 2rem 2rem 6.2rem;
  position: relative;
}

.top_fv .container {
  /* background-image: url(../img/top/fv01.jpg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover; */
  border-radius: 40px;
  display: flex;
  flex-direction: column;
  height: 100%;
  justify-content: flex-end;
  position: relative;
}

/* スライドの初期状態 */
.top_fv .container .slider .slide {
  border-radius: 40px;
  height: 100%;
  left: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  /* 重なっている下の方をクリックできないように */
  position: absolute;
  top: 0;
  transition: opacity 2s ease;
  /* フェードの速度 */
  width: 100%;
  z-index: 1;
}

/* アクティブなスライド */
.top_fv .container .slider .slide.is-active {
  opacity: 1;
  pointer-events: auto;
  z-index: 2;
}

/* インジケーター（guides）の基本スタイル例 */
.top_fv .container .guides {
  bottom: -3rem;
  display: flex;
  gap: 1.8rem;
  justify-content: flex-end;
  padding-right: 10rem;
  position: absolute;
  right: 0;
  width: 100%;
  z-index: 10;
}

.top_fv .container .guide {
  background: #c0c0c0;
  border-radius: 100vh;
  cursor: pointer;
  height: .4rem;
  padding: 0;
  transition: all .3s;
  width: 7.15rem;
}

.top_fv .container .guide.is-active {
  background: #4b73eb;
}

.top_fv .container .copy {
  position: relative;
  white-space: nowrap;
  z-index: 2;
}

.top_fv .container .copy .eng {
  background-color: #eff2f5;
  border-radius: 0 20px 0 0;
  color: #2f51af;
  font-family: Figtree;
  font-size: 2.8rem;
  font-weight: 500;
  letter-spacing: calc(-1em * (1.4/ 28));
  padding: 1rem 4rem 1rem 1rem;
  position: relative;
}

.top_fv .container .copy .eng strong {
  color: #80ccff;
}

.top_fv .container .copy {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
}

.top_fv .container .copy .h1 {
  font-size: 5rem;
  font-weight: 500;
  line-height: 1.6;
}

.top_fv .container .copy .h1>span {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
}

.top_fv .container .copy .h1 .r_set {
  background: #eff2f5;
  padding: 1rem 2rem 0;
}

@media screen and (max-width: 768px) {
  .top_fv {
    padding: 1rem 1rem 4rem;
    position: relative;
  }

  .top_fv .container {
    border-radius: 20px;
  }

  .top_fv .container .slider .slide {
    border-radius: 20px;
  }

  .top_fv .container .guides {
    bottom: -2.1rem;
    gap: 1rem;
    justify-content: center;
    left: 0;
    margin: auto;
    padding-right: 0;
    width: auto;
  }

  .top_fv .container .guide {
    height: .5rem;
    padding: 0;
    width: 2rem;
  }

  .top_fv .container .guide.is-active {
    width: 4rem;
  }

  .top_fv .container .copy .eng {
    font-size: 1.6rem;
    padding: 1rem 2rem 0 1rem;
  }

  .top_fv .container .copy .h1 {
    font-size: 2.4rem;
  }

  .top_fv .container .copy .h1 .r_set {
    padding: 1rem 2rem 0 1rem;
  }
}

/* ---------------------------------------------------------------------------
//  deco_circle
--------------------------------------------------------------------------- */
.deco_circle {
  animation: rotate-deco 10s linear infinite;
  background-image: url(../img/top/01_circle.png);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  border-radius: 100%;
  height: 168.9rem;
  position: absolute;
  width: 168.9rem;
  z-index: 2;
}

@keyframes rotate-deco {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}

.deco_circle .ball {
  animation: rotate-deco 20s linear infinite;
  background-image: url(../img/top/01_ball.png);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  border-radius: 100%;
  height: 9.8rem;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: -5rem;
  width: 9.8rem;
}

.deco_circle .ball02 {
  bottom: -5rem;
  top: auto;
}

@media screen and (max-width: 768px) {
  .deco_circle {
    height: 100rem;
    position: absolute;
    width: 100rem;
    z-index: 2;
  }

  .deco_circle .ball {
    height: 4rem;
    top: -2rem;
    width: 4rem;
  }

  .deco_circle .ball02 {
    bottom: -2rem;
    top: auto;
  }
}

/* ---------------------------------------------------------------------------
//  top_sec01
--------------------------------------------------------------------------- */
.top_sec01 {
  overflow: hidden;
  position: relative;
}

.top_sec01 .movie {
  height: 100%;
  overflow: hidden;
  position: absolute;
  top: 0;
  width: 100%;
}

.top_sec01 .movie video {
  height: 100%;
  object-fit: cover;
  object-position: left;
  width: 100%;
}

.top_sec01 .container {
  margin: 0 auto;
  max-width: 128rem;
  padding: 0 0 26rem;
  position: relative;
}

.top_sec01 .container .deco_circle {
  left: -94rem;
  top: 16.8rem;
}

.top_sec01 .container .head {
  padding-bottom: 30rem;
  padding-top: 30rem;
  position: relative;
  z-index: 2;
}

.top_sec01 .container .head .ttl {
  margin-left: auto;
  width: 50%;
}

.top_sec01 .container .head .ttl .eng {
  color: #80ccff;
  font-family: Figtree;
  font-size: 12.4rem;
  font-weight: 500;
  letter-spacing: calc(-1em * (6.2 / 124));
  line-height: 1;
}

.top_sec01 .container .head .ttl .jp {
  font-size: 2rem;
  font-weight: 700;
}

.top_sec01 .container .h3 {
  font-size: 3.2rem;
  font-weight: 700;
  margin-bottom: 5.8rem;
}

.top_sec01 .container .p01 {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 2;
}

.top_sec01 .container .wrap01 {
  display: flex;
  position: relative;
  z-index: 2;
}

.top_sec01 .container .wrap01 .imgs {
  position: relative;
  width: 50%;
}

.top_sec01 .container .wrap01 .imgs .img {
  border-radius: 40px;
  overflow: hidden;
  position: absolute;
}

.top_sec01 .container .wrap01 .imgs .img01 {
  animation: float_y 6s ease-in-out infinite alternate;
  animation-delay: -1.5s;
  animation-duration: 7.5s;
}

.top_sec01 .container .wrap01 .imgs .img02 {
  animation: float_y 6s ease-in-out infinite alternate;
  animation-delay: -4.2s;
  animation-duration: 5.8s;
}

.top_sec01 .container .wrap01 .imgs .img03 {
  animation: float_x 6s ease-in-out infinite alternate;
  animation-delay: -2.8s;
  animation-duration: 8.2s;
}

.top_sec01 .container .wrap01 .imgs .img01 {
  aspect-ratio: 432/409;
  right: 21.8rem;
  top: -31rem;
  width: 43.2rem;
}

.top_sec01 .container .wrap01 .imgs .img02 {
  aspect-ratio: 330/468;
  right: 4rem;
  top: -6.6rem;
  width: 33rem;
}

.top_sec01 .container .wrap01 .imgs .img03 {
  aspect-ratio: 392/312;
  right: 32.8rem;
  top: 25rem;
  width: 39.2rem;
}

.top_sec01 .container .wrap01 .txts {
  width: 50%;
}

.top_sec01 .container .wrap01 .btnA {
  margin-top: 8rem;
}

.top_sec01 .container .wrap02 {
  align-items: center;
  display: flex;
  margin-top: 20rem;
  position: relative;
  z-index: 2;
}

.top_sec01 .container .wrap02 .txts {
  align-items: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 50%;
}

.top_sec01 .container .wrap02 .circles {
  position: relative;
  width: 50%;
}

.top_sec01 .container .wrap02 .circles {
  height: 55rem;
  left: -9rem;
  margin: 0 auto;
  position: relative;
}

.top_sec01 .container .wrap02 .circle {
  height: 100%;
  mix-blend-mode: multiply;
  position: relative;
  width: 100%;
}

.top_sec01 .container .wrap02 .circle dl {
  align-items: center;
  background: rgba(255, 255, 255, .8);
  border: 1px solid rgba(0, 0, 0, .05);
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  height: 30rem;
  justify-content: center;
  margin: 0;
  position: absolute;
  width: 30rem;
  z-index: 1;
}

.top_sec01 .container .wrap02 .circle dl::before {
  border-radius: 50%;
  bottom: 0;
  box-shadow: 1.5rem 1.5rem 4rem var(--shadow-color1),
    -1.5rem -1.5rem 4rem var(--shadow-color2);
  content: '';
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  z-index: -1;
}

.top_sec01 .container .wrap02 .circle dl:nth-child(1) {
  animation: float_x 6s ease-in-out infinite alternate;
  animation-delay: -1.5s;
  animation-duration: 7.5s;
}

.top_sec01 .container .wrap02 .circle dl:nth-child(2) {
  animation: float_x 6s ease-in-out infinite alternate;
  animation-delay: -4.2s;
  animation-duration: 5.8s;
}

.top_sec01 .container .wrap02 .circle dl:nth-child(3) {
  animation: float_x 6s ease-in-out infinite alternate;
  animation-delay: -2.8s;
  animation-duration: 8.2s;
}

.top_sec01 .container .wrap02 .circle dl:nth-child(1):before {
  animation: rotate-shadow 4s linear infinite;
}

.top_sec01 .container .wrap02 .circle dl:nth-child(2):before {
  animation: rotate-shadow 3s linear infinite;
}

.top_sec01 .container .wrap02 .circle dl:nth-child(3):before {
  animation: rotate-shadow 5s linear infinite;
}

@keyframes rotate-shadow {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

.top_sec01 .container .wrap02 .circle dl:nth-child(1) {
  left: 20rem;
  --shadow-color1: rgba(0, 242, 255, .6);
  --shadow-color2: rgba(0, 98, 255, .6);
  top: 0;
}

.top_sec01 .container .wrap02 .circle dl:nth-child(2) {
  animation-delay: -1s;
  /* 動き出しをズラす */
  left: 0rem;
  --shadow-color1: rgba(255, 221, 0, .6);
  --shadow-color2: rgba(255, 136, 0, .6);
  top: 15rem;
}

.top_sec01 .container .wrap02 .circle dl:nth-child(3) {
  animation-delay: -2s;
  left: 24rem;
  --shadow-color1: rgba(255, 0, 234, .6);
  --shadow-color2: rgba(128, 0, 255, .6);
  top: 25rem;
}

.top_sec01 .container .wrap02 .circle dt {
  color: #2a4a8b;
  font-size: 3rem;
  font-weight: 700;
}

.top_sec01 .container .wrap02 .circle dd {
  color: #80ccff;
  font-family: Figtree;
  font-size: 2rem;
  font-weight: 500;
  letter-spacing: calc(-1em * (1.4/ 28));
}

.top_sec01 .container .wrap03 {
  margin-top: 14rem;
}

:root {
  --float_distance: 3rem;
  /* 上下の振れ幅（4remは大きすぎた場合ここを調整） */
  --scroll_gap: 3.8rem;
  /* 画像同士の間隔 */
  --scroll_height: 43.2rem;
  /* セクションの高さ */
  --scroll_speed: 40s;
  /* 横に流れる速度（20sだと少し速すぎるため40sを推奨） */
}

/* コンテナ全体の安定化 */
.scroll_container01 {
  align-items: center;
  display: flex;
  height: var(--scroll_height);
  overflow: visible;
  /* 縦揺れがはみ出しても切れないように */
  width: max-content;
  will-change: transform;
}

.scroll_container01 .scroll_list {
  /* 横移動のアニメーション：translate3dでGPUを強制使用 */
  animation: infinite_scroll var(--scroll_speed) linear infinite;
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  will-change: transform;
}

.scroll_container01 .scroll_list .scroll_item {
  align-items: center;
  display: flex;
  flex-shrink: 0;
  height: 100%;
  padding: 0 calc(var(--scroll_gap) / 2);
}

/* 画像自体の設定：縦揺れを担当 */
.scroll_container01 .scroll_list .scroll_item .scroll_img {
  /* 縦揺れ：translate3dを使用 */
  animation: float_y 6s ease-in-out infinite alternate;
  /* 描画のチラつき防止 */
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  border-radius: 20px;
  display: block;
  height: auto;
  transform-style: preserve-3d;
  will-change: transform;
}

/* --- 個別の幅調整 --- */
/* 重複する指定を整理しました */
.scroll_container01 .scroll_list .scroll_item .img_w01,
.scroll_container01 .scroll_list .scroll_item .img_w03,
.scroll_container01 .scroll_list .scroll_item .img_w04,
.scroll_container01 .scroll_list .scroll_item .img_w05,
.scroll_container01 .scroll_list .scroll_item .img_w07,
.scroll_container01 .scroll_list .scroll_item .img_w08 {
  width: 29.8rem;
}

.scroll_container01 .scroll_list .scroll_item .img_w02,
.scroll_container01 .scroll_list .scroll_item .img_w06 {
  width: 26.6rem;
}

/* --- ランダムな動き（ディレイ設定） --- */
/* 横移動のクローン分も含めてバラバラに動くように調整 */
.scroll_container01 .scroll_list .scroll_item:nth-child(2n) .scroll_img {
  animation-delay: -1.5s;
  animation-duration: 7.5s;
}

.scroll_container01 .scroll_list .scroll_item:nth-child(3n) .scroll_img {
  animation-delay: -4.2s;
  animation-duration: 5.8s;
}

.scroll_container01 .scroll_list .scroll_item:nth-child(4n) .scroll_img {
  animation-delay: -2.8s;
  animation-duration: 8.2s;
}

/* --- アニメーション定義（3D加速版） --- */
/* 横移動：x軸のみ動かし、z軸を0に固定することで滑らかに */
@keyframes infinite_scroll {
  0% {
    transform: translate3d(0, 0, 0);
  }

  100% {
    transform: translate3d(-50%, 0, 0);
  }
}

/* 上下浮遊：y軸のみ動かし、z軸を0に固定 */
@keyframes float_y {
  0% {
    transform: translate3d(0, calc(var(--float_distance) * -1), 0);
  }

  100% {
    transform: translate3d(0, var(--float_distance), 0);
  }
}

@media screen and (max-width: 768px) {
  .top_sec01 .container {
    padding: 0 2rem 12rem;
  }

  .top_sec01 .container .deco_circle {
    left: -65rem;
    top: 14rem;
  }

  .top_sec01 .container .head {
    padding-bottom: 9rem;
    padding-top: 9rem;
  }

  .top_sec01 .container .head .ttl {
    width: 100%;
  }

  .top_sec01 .container .head .ttl .eng {
    font-size: 4rem;
  }

  .top_sec01 .container .head .ttl .jp {
    font-size: 2.4rem;
  }

  .top_sec01 .container .h3 {
    font-size: 2rem;
    margin-bottom: 4rem;
  }

  .top_sec01 .container .p01 {
    font-size: 1.4rem;
  }

  .top_sec01 .container .wrap01 {
    flex-direction: column;
  }

  .top_sec01 .container .wrap01 .imgs {
    height: 41rem;
    margin-top: 6rem;
    order: 2;
    position: relative;
    width: 100%;
  }

  .top_sec01 .container .wrap01 .imgs .img {
    border-radius: 20px;
  }

  .top_sec01 .container .wrap01 .imgs .img01 {
    left: -4rem;
    right: auto;
    top: 8rem;
    width: 20rem;
  }

  .top_sec01 .container .wrap01 .imgs .img02 {
    right: 0rem;
    top: 0;
    width: 16rem;
  }

  .top_sec01 .container .wrap01 .imgs .img03 {
    left: 10rem;
    right: auto;
    top: 25rem;
    width: 20rem;
  }

  .top_sec01 .container .wrap01 .txts {
    width: 100%;
  }

  .top_sec01 .container .wrap01 .btnA {
    margin-top: 4rem;
  }

  .top_sec01 .container .wrap02 {
    flex-direction: column;
    margin-top: 8rem;
  }

  .top_sec01 .container .wrap02 .txts {
    align-items: flex-end;
    width: 100%;
  }

  .top_sec01 .container .wrap02 .circles {
    margin-top: 4rem;
    position: relative;
    width: 100%;
  }

  .top_sec01 .container .wrap02 .circles {
    height: 31rem;
    left: 0;
  }

  .top_sec01 .container .wrap02 .circle dl {
    height: 18rem;
    width: 18rem;
  }

  .top_sec01 .container .wrap02 .circle dl:nth-child(1) {
    left: 12rem;
    padding-bottom: 2rem;
    --shadow-color1: rgba(0, 242, 255, .3);
    --shadow-color2: rgba(0, 98, 255, .3);
    top: 0;
  }

  .top_sec01 .container .wrap02 .circle dl:nth-child(2) {
    left: 0rem;
    padding-right: 2rem;
    --shadow-color1: rgba(255, 221, 0, .3);
    --shadow-color2: rgba(255, 136, 0, .3);
    top: 8rem;
  }

  .top_sec01 .container .wrap02 .circle dl:nth-child(3) {
    left: 15rem;
    padding-top: 2rem;
    --shadow-color1: rgba(255, 0, 234, .3);
    --shadow-color2: rgba(128, 0, 255, .3);
    top: 13rem;
  }

  .top_sec01 .container .wrap02 .circle dt {
    font-size: 2rem;
  }

  .top_sec01 .container .wrap02 .circle dd {
    font-size: 1.4rem;
    white-space: nowrap;
  }

  .top_sec01 .container .wrap03 {
    margin-top: 10rem;
  }

  :root {
    --float_distance: 3rem;
    --scroll_gap: 2rem;
    --scroll_height: 20rem;
    --scroll_speed: 40s;
  }

  .scroll_container01 .scroll_list .scroll_item .img_w01,
  .scroll_container01 .scroll_list .scroll_item .img_w03,
  .scroll_container01 .scroll_list .scroll_item .img_w04,
  .scroll_container01 .scroll_list .scroll_item .img_w05,
  .scroll_container01 .scroll_list .scroll_item .img_w07,
  .scroll_container01 .scroll_list .scroll_item .img_w08 {
    width: 16rem;
  }

  .scroll_container01 .scroll_list .scroll_item .img_w02,
  .scroll_container01 .scroll_list .scroll_item .img_w06 {
    width: 14rem;
  }
}

/* ---------------------------------------------------------------------------
//  top_sec02
--------------------------------------------------------------------------- */
.top_sec02 {
  overflow: hidden;
  position: relative;
  z-index: 2;
}

.top_sec02 .container {
  padding-bottom: 13rem;
  position: relative;
}

.top_sec02 .container .wrap {
  align-items: center;
  border-bottom: solid 1px #6a96e1;
  color: #a0d5f8;
  display: flex;
  padding: 4.8rem 0;
}

.top_sec02 .container .wrap .ttl_h2 {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  margin-bottom: 6rem;
}

.top_sec02 .container .wrap .ttl_h2 .eng {
  font-family: Figtree;
  font-size: 12.4rem;
  font-weight: 500;
  left: -1rem;
  letter-spacing: calc(-1em * (6.2 / 124));
  line-height: .8;
  position: relative;
}

.top_sec02 .container .wrap .ttl_h2 .eng strong {
  color: #80ccff;
}

.top_sec02 .container .wrap .ttl_h2 .jp {
  font-size: 2rem;
  font-weight: 700;
  margin-top: 1rem;
}

.top_sec02 .container .wrap .ttl_h3 {
  margin-bottom: 3rem;
}

.top_sec02 .container .wrap .ttl_h3 .jp {
  font-size: 2rem;
  font-weight: 500;
}

.top_sec02 .container .wrap .ttl_h3 .jp span {
  font-family: Figtree;
  font-size: 3.2rem;
  letter-spacing: calc(-1em * (1.6 / 32));
  margin-right: .6rem;
}

.top_sec02 .container .wrap .ttl_h3 .eng {
  font-family: Figtree;
  font-size: 4rem;
  font-weight: 500;
  letter-spacing: calc(-1em * (2 / 40));
}

.top_sec02 .container .wrap .txts {
  width: calc(100% - 40rem);
}

.top_sec02 .container .wrap .txts .p01 {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 2;
}

.top_sec02 .container .wrap .img {
  animation: float_x 6s ease-in-out infinite alternate;
  aspect-ratio: 400/340;
  overflow: hidden;
  width: 40rem;
}

.top_sec02 .container .wrap01 .img {
  animation-delay: -1.5s;
  animation-duration: 7.5s;
}

.top_sec02 .container .wrap02 .img {
  animation-delay: -4.2s;
  animation-duration: 5.8s;
}

.top_sec02 .container .wrap03 .img {
  animation-delay: -2.8s;
  animation-duration: 8.2s;
}

.top_sec02 .container .wrap .btnA {
  margin-top: 3rem;
}

.top_sec02 .container .wrap .img img {
  border-radius: 20px;
}

.top_sec02 .container .wrap01 {
  color: #fff;
}

.top_sec02 .container .wrap01 .btnA {
  margin-top: 5rem;
}

.top_sec02 .container .wrap01 .img {
  aspect-ratio: inherit;
  height: 62.3rem;
  overflow: visible;
  position: relative;
}

.top_sec02 .container .wrap01 .img img {
  border-radius: 20px 0 0 20px;
  position: absolute;
  width: calc(100% + 11rem);
}

@media screen and (min-width: 1280px) {
  .top_sec02 .container .wrap01 .img img {
    border-radius: 20px;
  }
}

@media screen and (max-width:768px) {
  .top_sec02 .container {
    padding: 0 2rem 9rem;
  }

  .top_sec02 .container .wrap {
    flex-direction: column;
    padding: 4rem 0 12rem;
    position: relative;
  }

  .top_sec02 .container .wrap .ttl_h2 .eng {
    font-size: 4rem;
    left: -.2rem;
  }

  .top_sec02 .container .wrap .ttl_h2 .jp {
    font-size: 2.4rem;
    margin-top: .6rem;
  }

  .top_sec02 .container .wrap .ttl_h3 .jp {
    font-size: 1.6rem;
  }

  .top_sec02 .container .wrap .ttl_h3 .jp span {
    font-size: 2.2rem;
  }

  .top_sec02 .container .wrap .ttl_h3 .eng {
    font-size: 3rem;
  }

  .top_sec02 .container .wrap .txts {
    width: 100%;
  }

  .top_sec02 .container .wrap .txts .p01 {
    font-size: 1.4rem;
  }

  .top_sec02 .container .wrap .btnA {
    bottom: 3rem;
    margin-top: 0;
    position: absolute;
  }

  .top_sec02 .container .wrap .img {
    aspect-ratio: 400/340;
    margin-top: 2rem;
    overflow: hidden;
    position: relative !important;
    right: -40px;
    width: 100%;
    width: calc(100% + 40px);
  }

  .top_sec02 .container .wrap .img img {
    border-radius: 20px;
  }

  .top_sec02 .container .wrap01 {
    color: #fff;
  }

  .top_sec02 .container .wrap01 .btnA {
    margin-top: 5rem;
  }

  .top_sec02 .container .wrap01 .img {
    aspect-ratio: 400/340;
    height: auto;
    overflow: hidden;
    position: static;
  }

  .top_sec02 .container .wrap01 .img img {
    border-radius: 20px;
    position: static;
    width: 100%;
  }
}

/* ---------------------------------------------------------------------------
//  bg_blue
--------------------------------------------------------------------------- */
.bg_blue {
  margin-top: -24rem;
  padding-top: 32rem;
  position: relative;
}

.bg_blue::before {
  background: linear-gradient(90deg, #2f51af 20.14%, #4690ff 100%);
  bottom: 0;
  content: '';
  height: calc(100% - 45rem);
  left: 0;
  position: absolute;
  width: calc(100% + 32rem);
}

.bg_blue .bg {
  animation: float_x 4s ease-in-out infinite alternate;
  height: 216.4rem;
  left: -3rem;
  max-width: inherit;
  position: absolute;
  top: 0;
  width: calc(100% + 32rem);
}

.bg_blue.bg_sky::before {
  background: #dee7f4;
  left: auto;
  right: 0;
}

.bg_blue.bg_sky .bg {
  left: auto;
  right: -3rem;
}

.bg_blue.bg_white::before {
  background: #fff;
  left: auto;
  right: 0;
}

.bg_blue.bg_light .bg {
  left: auto;
  right: -3rem;
}

.bg_blue.bg_light::before {
  background: #eff2f5;
  left: auto;
  right: 0;
}

.spacer_blue {
  background: linear-gradient(90deg, #2f51af 20.14%, #4690ff 100%);
  height: calc(14.8rem + 20px);
}

@media screen and (max-width:768px) {
  .bg_blue {
    margin-top: -7rem;
    padding-top: 10rem;
    position: relative;
  }

  .bg_blue::before {
    width: calc(100% + 10rem);
  }

  .bg_blue .bg {
    animation: none;
    height: 60rem;
    width: calc(100% + 10rem);
  }

  .spacer_blue {
    height: calc(9rem + 20px);
  }
}

/* ---------------------------------------------------------------------------
//  top_sec03
--------------------------------------------------------------------------- */
.top_sec03 {
  position: relative;
}

.top_sec03 .container {
  position: relative;
}

.top_sec03 .container .wrap01 {
  display: flex;
  height: 100vh;
  justify-content: center;
  min-height: 152rem;
}

.top_sec03 .container .wrap01 .txts {
  align-items: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  text-align: center;
  top: 0;
  width: 68rem;
}

.top_sec03 .container .wrap01 .txts .ttl_h2 {
  align-items: center;
  display: flex;
  flex-direction: column;
  margin-bottom: 13rem;
}

.top_sec03 .container .wrap01 .txts .ttl_h2 .eng {
  color: #2f51af;
  font-family: Figtree;
  font-size: 12.4rem;
  font-weight: 500;
  letter-spacing: calc(-1em * (6.2 / 124));
  line-height: .8;
  position: relative;
}

.top_sec03 .container .wrap01 .txts .ttl_h2 .jp {
  font-size: 2rem;
  font-weight: 700;
  margin-top: 1rem;
}

.top_sec03 .container .wrap01 .txts .h3 {
  font-size: 3.2rem;
  font-weight: 700;
  margin-bottom: 7rem;
}

.top_sec03 .container .wrap01 .txts .h3 strong {
  color: #2f51af;
}

.top_sec03 .container .wrap01 .txts .p01 {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 2;
  margin-bottom: 6rem;
}

.top_sec03 .container .wrap01 .txts .btnA {
  margin-top: 2rem;
}

/* 変数は管理しやすいように :root またはセクションに記述 */
:root {
  --float_x_dist: 2.5rem;
  /* 左右に揺れる幅 */
  --v_scroll_gap: 2rem;
  /* 画像同士の縦の間隔 */
  --v_scroll_speed: 30s;
  /* 流れる速度 */
}

:root {
  --float_x_dist: 2.5rem;
  --v_scroll_gap: 2rem;
  --v_scroll_speed: 30s;
}

/* コンテナ：ここが溢れる分を隠さないとガクつきの原因になります */
.top_sec03 .wrap01 .scroll_container_vertical {
  position: relative;
  width: fit-content;
}

/* リスト本体 */
.top_sec03 .wrap01 .scroll_container_vertical .scroll_list {
  animation: infinite_scroll_v var(--v_scroll_speed) linear infinite;
  animation-play-state: paused;
  display: flex;
  flex-direction: column;
  list-style: none;
  margin: 0;
  /* 変更点：最初は透明にして、アニメーションも止めておく */
  opacity: 0;
  padding: 0;
  transition: opacity .5s ease;
  /* ふわっと出すとおしゃれです */
  will-change: transform;
}

.top_sec03 .wrap01 .scroll_container_vertical.reverse .scroll_list {
  animation-direction: reverse;
}

/* JSでクラスが付与されたら動き出す */
.top_sec03 .wrap01 .scroll_container_vertical .scroll_list.is-ready {
  animation-play-state: running;
  opacity: 1;
}

/* アイテム：余白の計算を安定させる */
.top_sec03 .wrap01 .scroll_container_vertical .scroll_item {
  backface-visibility: hidden;
  display: flex;
  flex-shrink: 0;
  justify-content: center;
  padding: calc(var(--v_scroll_gap) / 2) 0;
  /* ちらつき防止 */
}

/* 画像：揺れるアニメーション */
.top_sec03 .wrap01 .scroll_container_vertical .scroll_item .scroll_img {
  animation: float_x 5s ease-in-out infinite alternate;
  border-radius: 20px;
  display: block;
  will-change: transform;
}

/* 画像幅のグループ化（スッキリまとめました） */
.scroll_img.img_w01,
.scroll_img.img_w05,
.scroll_img.img_w08,
.scroll_img.img_w10,
.scroll_img.img_w12 {
  width: 32.6rem;
}

.scroll_img.img_w02,
.scroll_img.img_w06,
.scroll_img.img_w07,
.scroll_img.img_w09,
.scroll_img.img_w11 {
  width: 19.3rem;
}

.scroll_img.img_w03,
.scroll_img.img_w04 {
  width: 25.6rem;
}

/* --- 画像をバラバラに揺らすための設定 --- */
/* 2番目、4番目、6番目... の画像：少し遅く、ディレイをかける */
.top_sec03 .wrap01 .scroll_container_vertical .scroll_item:nth-child(2n) .scroll_img {
  animation-delay: -1.5s;
  animation-duration: 6.2s;
}

/* 3番目、6番目、9番目... の画像：少し速く、ディレイを大きくかける */
.top_sec03 .wrap01 .scroll_container_vertical .scroll_item:nth-child(3n) .scroll_img {
  animation-delay: -3.2s;
  animation-duration: 4.8s;
}

/* 4番目、8番目... の画像：振れ幅を少し変えるなど（任意） */
.top_sec03 .wrap01 .scroll_container_vertical .scroll_item:nth-child(4n) .scroll_img {
  animation-delay: -.8s;
  animation-duration: 7.5s;
}

/* 5番目、10番目... の画像 */
.top_sec03 .wrap01 .scroll_container_vertical .scroll_item:nth-child(5n) .scroll_img {
  animation-delay: -4.5s;
  animation-duration: 5.5s;
}

/* --- アニメーション（3D加速を維持） --- */
@keyframes infinite_scroll_v {
  0% {
    transform: translate3d(0, 0, 0);
  }

  100% {
    transform: translate3d(0, -50%, 0);
  }

  /* クローン分を含めた全長の半分まで移動 */
}

@keyframes float_x {
  0% {
    transform: translate3d(calc(var(--float_x_dist) * -1), 0, 0);
  }

  100% {
    transform: translate3d(var(--float_x_dist), 0, 0);
  }
}

@media screen and (max-width:768px) {
  .top_sec03 .container .wrap01 {
    display: flex;
    height: auto;
    justify-content: center;
    min-height: auto;
  }

  .top_sec03 .container .wrap01 .txts {
    align-items: center;
    background: rgba(255, 255, 255, .9);
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 12rem 2rem;
    position: relative;
    text-align: center;
    top: 0;
    width: 100%;
  }

  .top_sec03 .container .wrap01 .txts .ttl_h2 {
    margin-bottom: 6rem;
  }

  .top_sec03 .container .wrap01 .txts .ttl_h2 .eng {
    font-size: 4rem;
  }

  .top_sec03 .container .wrap01 .txts .ttl_h2 .jp {
    font-size: 2.4rem;
    font-weight: 700;
    margin-top: .6rem;
  }

  .top_sec03 .container .wrap01 .txts .h3 {
    font-size: 2rem;
    margin-bottom: 4rem;
  }

  .top_sec03 .container .wrap01 .txts .p01 {
    font-size: 1.4rem;
    margin-bottom: 4rem;
  }

  .top_sec03 .wrap01 .scroll_container_vertical {
    position: relative;
    position: absolute;
    width: fit-content;
    width: 50%;
    z-index: -1;
  }

  .top_sec03 .wrap01 .scroll_container_vertical:not(.reverse) {
    left: -4rem;
  }

  .top_sec03 .wrap01 .scroll_container_vertical.reverse {
    right: -4rem;
  }

  .scroll_img.img_w01,
  .scroll_img.img_w05,
  .scroll_img.img_w08,
  .scroll_img.img_w10,
  .scroll_img.img_w12 {
    width: 24rem;
  }

  .scroll_img.img_w02,
  .scroll_img.img_w06,
  .scroll_img.img_w07,
  .scroll_img.img_w09,
  .scroll_img.img_w11 {
    width: 16rem;
  }

  .scroll_img.img_w03,
  .scroll_img.img_w04 {
    width: 20rem;
  }
}

/* ---------------------------------------------------------------------------
//  access_sec
--------------------------------------------------------------------------- */
.access_sec {
  background: #fff;
  border-radius: 40px 40px 0 0;
  margin-top: -40px;
  position: relative;
  z-index: 2;
}

.access_sec .container {
  padding: 12rem 2rem calc(12rem + 40px);
  position: relative;
}

.access_sec .container .ttl_h2 {
  align-items: center;
  display: flex;
  flex-direction: column;
}

.access_sec .container .ttl_h2 .eng {
  color: #2f51af;
  font-family: Figtree;
  font-size: 12.4rem;
  font-weight: 500;
  letter-spacing: calc(-1em * (6.2 / 124));
  line-height: .8;
  position: relative;
}

.access_sec .container .ttl_h2 .jp {
  font-size: 2rem;
  font-weight: 700;
  margin-top: 1rem;
}

.access_sec .container .wrap01 {
  align-items: center;
  display: flex;
  justify-content: space-between;
  margin-top: 9rem;
}

.access_sec .container .wrap01 .img {
  border-radius: 20px;
  max-width: 46rem;
  overflow: hidden;
}

.access_sec .container .wrap01 .txts {
  font-size: 1.6rem;
  white-space: nowrap;
}

.access_sec .container .wrap01 .txts .ttl_h3 {
  font-weight: 700;
}

.access_sec .container .wrap01 .txts .p01 {
  border-bottom: solid 1px rgba(0, 0, 0, .5);
  margin-bottom: 1.6rem;
  margin-top: 1rem;
  padding-bottom: 1.6rem;
}

.access_sec .container .wrap01 .txts ul li+li {
  margin-top: 1rem;
}

.access_sec .container .map {
  border-radius: 40px;
  height: 72rem;
  margin-top: 5rem;
  overflow: hidden;
  position: relative;
}

.access_sec .container .map .adress {
  background: #fff;
  border-radius: 0 0 20px 20px;
  display: flex;
  justify-content: center;
  left: 0;
  margin: auto;
  max-width: 50rem;
  padding: 5rem;
  position: absolute;
  right: 0;
  top: 0;
}

.access_sec .container .map iframe {
  height: 100%;
  width: 100%;
}

@media screen and (max-width:768px) {
  .access_sec {
    border-radius: 20px 20px 0 0;
    margin-top: -20px;
  }

  .access_sec .container {
    padding: 9rem 2rem calc(9rem + 20px);
  }

  .access_sec .container .ttl_h2 .eng {
    font-size: 4rem;
  }

  .access_sec .container .ttl_h2 .jp {
    font-size: 2.4rem;
    margin-top: .6rem;
  }

  .access_sec .container .wrap01 {
    flex-direction: column;
    margin-top: 4rem;
  }

  .access_sec .container .wrap01 .txts {
    /* white-space: normal; */
    font-size: 1.4rem;
    margin-top: 2rem;
  }

  .access_sec .container .wrap01 .txts ul {
    font-size: 1.2rem;
  }

  .access_sec .container .map {
    border-radius: 20px;
    height: 40rem;
    left: -2rem;
    margin-top: 4rem;
    overflow: hidden;
    position: relative;
    width: calc(100% + 4rem);
  }

  .access_sec .container .map .adress {
    font-size: 1.4rem;
    padding: 2rem 0;
    position: static;
  }
}

/* ---------------------------------------------------------------------------
//  page_fv
--------------------------------------------------------------------------- */
.page_fv {
  padding: 2rem 2rem 0;
  position: relative;
}

.page_fv.only_bread {
  padding-top: 13rem;
}

.page_fv .container {
  align-items: center;
  display: flex;
  height: 44rem;
  padding-top: 7.8rem;
  position: relative;
}

.page_fv .container .movie {
  border-radius: 20px;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}

.page_fv .container .movie video {
  border-radius: 20px;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.page_fv .container .wrap01 {
  width: 100%;
}

.page_fv .container .wrap01 .ttl_h1 {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
}

.page_fv .container .wrap01 .ttl_h1 .eng {
  color: #2f51af;
  font-family: Figtree;
  font-size: 9.6rem;
  font-weight: 500;
  letter-spacing: calc(-1em * (4.8 / 96));
  position: relative;
}

.page_fv .container .wrap01 .ttl_h1 .eng strong {
  color: #80ccff;
}

.page_fv .container .wrap01 .ttl_h1 .eng .sub {
  bottom: 0;
  display: flex;
  flex-direction: column;
  font-size: 3.7rem;
  justify-content: center;
  left: calc(100% + 2rem);
  letter-spacing: calc(-1em * (1.9 / 37));
  line-height: 1;
  margin: auto;
  position: absolute;
  top: .4rem;
  white-space: nowrap;
}

.page_fv .container .wrap01 .ttl_h1 .jp {
  font-size: 2rem;
  font-weight: 700;
}

.breads {
  display: flex;
  gap: 2rem;
  margin-top: 1.4rem;
}

.breads .bread {
  font-size: 1.4rem;
  font-weight: 500;
  position: relative;
}

.breads .bread:last-of-type a {
  pointer-events: none;
}

.breads .bread a:hover {
  opacity: .7;
}

.breads .bread+.bread::before {
  bottom: 0;
  content: '>';
  left: -1.4rem;
  margin: auto;
  position: absolute;
  top: 0;
}

@media screen and (max-width:768px) {
  .page_fv {
    padding: 1rem 1rem 0;
  }

  .page_fv.only_bread {
    padding-top: 6.5rem;
  }

  .page_fv .container {
    height: 28rem;
    padding: 0 1rem;
    padding-top: 4rem;
    position: relative;
  }

  .page_fv .container .wrap01 .ttl_h1 .eng {
    font-size: 5.5rem;
  }

  .page_fv .container .wrap01 .ttl_h1 .eng .sub {
    font-size: 2.4rem;
    margin-bottom: 1rem;
    position: static;
  }

  .page_fv .container .wrap01 .ttl_h1 .jp {
    font-size: 2rem;
  }

  .breads {
    margin-top: 1rem;
  }

  .breads .bread {
    font-size: 1.2rem;
  }
}

/* ---------------------------------------------------------------------------
//  business_sec00
--------------------------------------------------------------------------- */
.business_sec00 .container {
  padding: 15rem 0;
}

.business_sec00 .container .wrap01 .p01 {
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 1.7;
  text-align: center;
}

.business_sec00 .container .wrap01 .p01 strong {
  color: #2f51af;
}

@media screen and (max-width:768px) {
  .business_sec00 .container {
    padding: 9rem 2rem;
  }

  .business_sec00 .container .wrap01 .p01 {
    font-size: 1.8rem;
  }
}

/* ---------------------------------------------------------------------------
//  business_sec01
--------------------------------------------------------------------------- */
.business_sec01 .container {
  margin: auto;
  max-width: 128rem;
  padding: 22rem 0 32rem;
  position: relative;
}

.business_sec01 .container .deco_circle {
  right: -49rem;
  top: 0;
}

.business_sec01 .container .wrap01 {
  align-items: center;
  display: flex;
  flex-direction: column;
  position: relative;
  z-index: 2;
}

.business_sec01 .container .wrap01 .ttl_h2 {
  align-items: center;
  display: flex;
  flex-direction: column;
  margin-bottom: 4rem;
  text-align: center;
}

.business_sec01 .container .wrap01 .ttl_h2 .eng {
  color: #2f51af;
  font-family: Figtree;
  font-size: 12.4rem;
  font-weight: 500;
  letter-spacing: calc(-1em * (6.2 / 124));
  line-height: .8;
  position: relative;
}

.business_sec01 .container .wrap01 .ttl_h2 .eng strong {
  color: #80ccff;
}

.business_sec01 .container .wrap01 .ttl_h2 .jp {
  font-size: 2rem;
  font-weight: 700;
  margin-top: 2rem;
}

.business_sec01 .container .wrap01 .p01 {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 2;
  text-align: center;
}

.business_sec01 .container .wrap01 .chart {
  margin-top: 4rem;
  max-width: 73.9rem;
}

.business_sec01 .container .wrap01 .chart img {
  animation: shadow-pulse 2s ease-in-out infinite alternate;
}

@keyframes shadow-pulse {

  /* 開始地点（現在の状態） */
  0% {
    /* ぼかし半径: 3rem、透明度: 0.4 */
    filter: drop-shadow(0 0 2rem rgba(128, 204, 255, .6));
  }

  /* 終了地点（広がって薄くなった状態） */
  100% {
    /* ぼかし半径を少し大きく（例: 5rem）、透明度を低く（例: 0.1）に変更 */
    filter: drop-shadow(1rem 1rem 7rem rgba(128, 204, 255, .4));
  }
}

@media screen and (max-width:768px) {
  .business_sec01 .container {
    padding: 0 2rem 9rem;
  }

  .business_sec01 .container .deco_circle {
    right: -69rem;
    top: -9rem;
  }

  .business_sec01 .container .wrap01 .ttl_h2 {
    align-items: center;
    display: flex;
    flex-direction: column;
    margin-bottom: 3rem;
    text-align: center;
  }

  .business_sec01 .container .wrap01 .ttl_h2 .eng {
    font-size: 4rem;
  }

  .business_sec01 .container .wrap01 .ttl_h2 .jp {
    font-size: 1.6rem;
    margin-top: 1rem;
  }

  .business_sec01 .container .wrap01 .p01 {
    font-size: 1.4rem;
  }

  .business_sec01 .container .wrap01 .chart {
    margin-top: 4rem;
    max-width: 73.9rem;
  }

  .business_sec01 .container .wrap01 .chart img {
    animation: shadow-pulse 2s ease-in-out infinite alternate;
  }

  @keyframes shadow-pulse {

    /* 開始地点（現在の状態） */
    0% {
      /* ぼかし半径: 3rem、透明度: 0.4 */
      filter: drop-shadow(0 0 2rem rgba(128, 204, 255, .6));
    }

    /* 終了地点（広がって薄くなった状態） */
    100% {
      /* ぼかし半径を少し大きく（例: 5rem）、透明度を低く（例: 0.1）に変更 */
      filter: drop-shadow(1rem 1rem 7rem rgba(128, 204, 255, .4));
    }
  }
}

/* ---------------------------------------------------------------------------
//  business_sec02
--------------------------------------------------------------------------- */
.business_sec02 {
  color: #fff;
  overflow: hidden;
  position: relative;
  z-index: 2;
}

.business_sec02 .container {
  padding-bottom: 13rem;
  position: relative;
}

.business_sec02 .container .wrap {
  display: flex;
  justify-content: space-between;
}

.business_sec02 .container .wrap:nth-of-type(even) {
  flex-direction: row-reverse;
}

.business_sec02 .container .wrap+.wrap {
  margin-top: 12rem;
}

.business_sec02 .container .wrap .ttl_h2 {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  margin-bottom: 3rem;
}

.business_sec02 .container .wrap .ttl_h2 .eng {
  font-family: Figtree;
  font-size: 9.6rem;
  font-weight: 500;
  letter-spacing: calc(-1em * (4.8 / 96));
  line-height: .8;
  position: relative;
}

.business_sec02 .container .wrap .ttl_h2 .eng strong {
  color: #80ccff;
}

.business_sec02 .container .wrap .ttl_h2 .jp {
  font-size: 3.2rem;
  font-weight: 700;
  margin-top: 6rem;
}

.business_sec02 .container .wrap .txts {
  flex-shrink: 0;
  width: 50%;
}

.business_sec02 .container .wrap .txts .p01 {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 2;
}

.business_sec02 .container .wrap .txts dl {
  border-top: solid 1px;
  margin-top: 2.4rem;
  padding: 2.8rem 0;
}

.business_sec02 .container .wrap .txts dl dt {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 3rem;
}

.business_sec02 .container .wrap .txts dl dd {
  font-size: 1.6rem;
}

.business_sec02 .container .wrap .txts dl dd ul li {
  display: flex;
}

.business_sec02 .container .wrap .txts dl dd ul li+li {
  margin-top: 1rem;
}

.business_sec02 .container .wrap .txts dl dd ul li::before {
  content: '・';
  flex-shrink: 0;
  font-feature-settings: normal;
}

.business_sec02 .container .wrap .img {
  animation: float_x 6s ease-in-out infinite alternate;
  border-radius: 20px;
  flex-shrink: 0;
  height: 62.3rem;
  margin-left: 14rem;
  margin-top: 15rem;
  overflow: hidden;
  width: 50.3rem;
}

.business_sec02 .container .wrap:nth-of-type(even) .img {
  flex-direction: row-reverse;
  margin-left: 0;
  margin-right: 14rem;
}

.business_sec02 .container .wrap01 .img {
  animation-delay: -1.5s;
  animation-duration: 7.5s;
}

.business_sec02 .container .wrap02 .img {
  animation-delay: -4.2s;
  animation-duration: 5.8s;
}

.business_sec02 .container .wrap .btnA a {
  width: 42rem;
}

@media screen and (max-width:768px) {
  .business_sec02 .container {
    padding: 0 2rem 9rem;
  }

  .business_sec02 .container .wrap {
    flex-direction: column !important;
    padding: 5rem 0 12rem;
    position: relative;
  }

  .business_sec02 .container .wrap+.wrap {
    margin-top: 2rem;
  }

  .business_sec02 .container .wrap .ttl_h2 .eng {
    font-size: 4rem;
    left: -.2rem;
  }

  .business_sec02 .container .wrap .ttl_h2 .jp {
    font-size: 1.8rem;
    margin-top: 2rem;
  }

  .business_sec02 .container .wrap .txts {
    width: 100%;
  }

  .business_sec02 .container .wrap .txts .p01 {
    font-size: 1.4rem;
  }

  .business_sec02 .container .wrap .txts dl {
    border-top: solid 1px;
    margin-top: 2.4rem;
    padding: 2.8rem 0;
  }

  .business_sec02 .container .wrap .txts dl dt {
    font-size: 1.6rem;
    margin-bottom: 2rem;
  }

  .business_sec02 .container .wrap .txts dl dd {
    font-size: 1.4rem;
  }

  .business_sec02 .container .wrap .btnA a {
    bottom: 3rem;
    font-size: 1.4rem;
    margin-top: 0;
    position: absolute;
    width: 100%;
  }

  .business_sec02 .container .wrap .img {
    aspect-ratio: 400/340;
    height: auto;
    margin: 0 !important;
    position: relative !important;
    right: -4rem;
    width: 100%;
  }

  .business_sec02 .container .wrap:nth-of-type(even) .img {
    left: -4rem;
  }
}

/* ---------------------------------------------------------------------------
//  business_sec03
--------------------------------------------------------------------------- */
.business_sec03 {
  background: #fff;
  position: relative;
}

.business_sec03 .container {
  padding: 13rem 0;
}

.business_sec03 .container .wrap01 {
  align-items: center;
  display: flex;
  flex-direction: column;
  text-align: center;
}

.business_sec03 .container .wrap01 .ttl_h2 {
  align-items: center;
  display: flex;
  flex-direction: column;
  margin-bottom: 6rem;
}

.business_sec03 .container .wrap01 .ttl_h2 .eng {
  color: #2f51af;
  font-family: Figtree;
  font-size: 9.6rem;
  font-weight: 500;
  letter-spacing: calc(-1em * (4.8 / 96));
  line-height: .8;
  position: relative;
}

.business_sec03 .container .wrap01 .ttl_h2 .eng strong {
  color: #80ccff;
}

.business_sec03 .container .wrap01 .ttl_h2 .jp {
  font-size: 2rem;
  font-weight: 700;
  margin-top: 2rem;
}

.business_sec03 .container .wrap01 .p01 {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 2;
}

.business_sec03 .container .wrap01 .ul01 {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  margin-top: 7rem;
  width: 100%;
}

.business_sec03 .container .wrap01 .ul01 li {
  width: calc((100% - 4rem) / 3);
}

.business_sec03 .container .wrap01 .ul01 li dl dt {
  color: #2f51af;
  font-weight: 700;
  margin-bottom: 2rem;
}

.business_sec03 .container .wrap01 .ul01 li dl dd .img {
  aspect-ratio: 340/252;
  border-radius: 20px;
  overflow: hidden;
}

.business_sec03 .container .wrap01 .ul01 li dl dd span {
  display: block;
  font-size: 1.6rem;
  font-weight: 500;
  margin-top: 1rem;
}

.business_sec03 .container .wrap02 {
  border: solid 2px #2f51af;
  border-radius: 20px;
  margin-top: 8rem;
  padding: 8rem 11rem;
}

.business_sec03 .container .wrap02 .ttl_h3 {
  color: #2f51af;
  font-size: 3.2rem;
  font-weight: 700;
  text-align: center;
}

.business_sec03 .container .wrap02 .p01 {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 4rem;
  margin-top: 2rem;
  text-align: center;
}

.business_sec03 .container .wrap02 .dls {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  padding: 3rem 0;
}

.business_sec03 .container .wrap02 .dls+.dls {
  border-top: 1px solid rgba(0, 0, 0, .5);
}

.business_sec03 .container .wrap02 .dls dl {
  font-size: 1.6rem;
  font-weight: 500;
  width: 38rem;
}

.business_sec03 .container .wrap02 .dls dl dd ul li {
  margin-top: 1rem;
}

.business_sec03 .container .wrap02 .dls dl dt.hidden {
  visibility: hidden;
}

@media screen and (max-width:768px) {
  .business_sec03 .container {
    padding: 9rem 2rem;
  }

  .business_sec03 .container .wrap01 {
    align-items: center;
    display: flex;
    flex-direction: column;
    text-align: center;
  }

  .business_sec03 .container .wrap01 .ttl_h2 {
    margin-bottom: 4rem;
  }

  .business_sec03 .container .wrap01 .ttl_h2 .eng {
    font-size: 4rem;
  }

  .business_sec03 .container .wrap01 .ttl_h2 .jp {
    font-size: 2rem;
    margin-top: 1rem;
  }

  .business_sec03 .container .wrap01 .p01 {
    font-size: 1.4rem;
  }

  .business_sec03 .container .wrap01 .ul01 {
    gap: 4rem;
    margin-top: 5rem;
  }

  .business_sec03 .container .wrap01 .ul01 li {
    width: calc(100% - 6rem);
  }

  .business_sec03 .container .wrap01 .ul01 li:nth-of-type(even) {
    margin-left: auto;
  }

  .business_sec03 .container .wrap01 .ul01 li dl dt {
    margin-bottom: 1rem;
  }

  .business_sec03 .container .wrap01 .ul01 li dl dd span {
    font-size: 1.4rem;
  }

  .business_sec03 .container .wrap02 {
    margin-top: 6rem;
    padding: 4rem 2rem;
  }

  .business_sec03 .container .wrap02 .ttl_h3 {
    font-size: 2rem;
  }

  .business_sec03 .container .wrap02 .p01 {
    font-size: 1.6rem;
    margin-bottom: 3rem;
  }

  .business_sec03 .container .wrap02 .dls {
    padding: 2rem 0;
  }

  .business_sec03 .container .wrap02 .dls dl {
    font-size: 1.4rem;
    width: 100%;
  }

  .business_sec03 .container .wrap02 .dls dl+dl {
    margin-top: 1.4rem;
  }

  .business_sec03 .container .wrap02 .dls dl dt {
    font-weight: 700;
  }

  .business_sec03 .container .wrap02 .dls dl dt.hidden {
    height: 0;
    visibility: hidden;
  }

  .business_sec03 .container .wrap02 .dls dl:has(.hidden) {
    margin-top: 0;
  }
}

/* ---------------------------------------------------------------------------
//  aboutus_sec01
--------------------------------------------------------------------------- */
.aboutus_sec01 {
  position: relative;
  text-align: center;
}

.aboutus_sec01 .container {
  padding: 12rem 0;
  position: relative;
}

.aboutus_sec01 .container .wrap01 .ttl_h2 {
  margin-bottom: 7rem;
  text-align: center;
}

.aboutus_sec01 .container .wrap01 .ttl_h2 .eng {
  color: #2f51af;
  font-family: Figtree;
  font-size: 9.6rem;
  font-weight: 500;
  letter-spacing: calc(-1em * (4.8 / 96));
  line-height: .9;
  position: relative;
}

.aboutus_sec01 .container .wrap01 .ttl_h2 .eng strong {
  color: #80ccff;
}

.aboutus_sec01 .container .wrap01 .ttl_h2 .jp {
  font-size: 2rem;
  font-weight: 700;
  margin-top: 2rem;
}

.aboutus_sec01 .container .wrap01 .p01 {
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 1.7;
}

.aboutus_sec01 .container .wrap01 .p01 strong {
  color: #2f51af;
}

@media screen and (max-width:768px) {
  .aboutus_sec01 .container {
    padding: 9rem 2rem;
  }

  .aboutus_sec01 .container .wrap01 .ttl_h2 {
    margin-bottom: 3rem;
    text-align: center;
  }

  .aboutus_sec01 .container .wrap01 .ttl_h2 .eng {
    font-size: 4rem;
  }

  .aboutus_sec01 .container .wrap01 .ttl_h2 .eng strong {
    color: #80ccff;
  }

  .aboutus_sec01 .container .wrap01 .ttl_h2 .jp {
    font-size: 2.4rem;
    margin-top: 1rem;
  }

  .aboutus_sec01 .container .wrap01 .p01 {
    font-size: 1.8rem;
  }

  .aboutus_sec01 .container .wrap01 .p01 strong {
    color: #2f51af;
  }
}

/* ---------------------------------------------------------------------------
//  aboutus_sec02
--------------------------------------------------------------------------- */
.aboutus_sec02 {
  position: relative;
}

.aboutus_sec02 .container {
  margin: 0 auto;
  max-width: 128rem;
  padding: 12rem 0;
  position: relative;
}

.aboutus_sec02 .container .bg {
  animation: float_x 6s ease-in-out infinite alternate;
  background-image: url(../img/aboutus/02_bg.jpg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  border-radius: 40px;
  height: 100%;
  position: absolute;
  right: -9rem;
  top: 0;
  width: 100%;
}

.aboutus_sec02 .container .wrap01 {
  display: flex;
  justify-content: flex-end;
  position: relative;
}

.aboutus_sec02 .container .wrap01 .txts {
  color: #fff;
  max-width: 58.4rem;
}

.aboutus_sec02 .container .wrap01 .ttl_h2 {
  margin-bottom: 5rem;
}

.aboutus_sec02 .container .wrap01 .ttl_h2 .eng {
  font-family: Figtree;
  font-size: 9.6rem;
  font-weight: 500;
  letter-spacing: calc(-1em * (4.8 / 96));
  line-height: .8;
  position: relative;
}

.aboutus_sec02 .container .wrap01 .ttl_h2 .jp {
  font-size: 2rem;
  font-weight: 700;
  margin-top: 2rem;
}

.aboutus_sec02 .container .wrap01 .ttl_h3 {
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 1.7;
  margin-bottom: 5rem;
  text-shadow: 0 .4rem .4rem rgba(0, 0, 0, .25);
}

.aboutus_sec02 .container .wrap01 .p01 {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 2;
  text-shadow: 0 .4rem .4rem rgba(0, 0, 0, .25);
}

@media screen and (max-width:768px) {
  .aboutus_sec02 .container {
    margin: 0 auto;
    max-width: 128rem;
    padding: 6rem 2rem 6rem 8rem;
    position: relative;
  }

  .aboutus_sec02 .container .bg {
    animation: float_x 6s ease-in-out infinite alternate;
    background-position: left 20% top;
    border-radius: 20px;
    right: -2rem;
    top: 0;
    width: calc(100% - 2rem);
  }

  .aboutus_sec02 .container .wrap01 .ttl_h2 {
    margin-bottom: 3rem;
  }

  .aboutus_sec02 .container .wrap01 .ttl_h2 .eng {
    font-size: 4rem;
  }

  .aboutus_sec02 .container .wrap01 .ttl_h2 .jp {
    font-size: 2.4rem;
    font-weight: 700;
    margin-top: 1rem;
  }

  .aboutus_sec02 .container .wrap01 .ttl_h3 {
    font-size: 1.8rem;
    margin-bottom: 3rem;
  }

  .aboutus_sec02 .container .wrap01 .p01 {
    font-size: 1.4rem;
  }
}

/* ---------------------------------------------------------------------------
//  aboutus_sec03
--------------------------------------------------------------------------- */
.aboutus_sec03 {
  position: relative;
}

.aboutus_sec03 .container {
  padding: 21rem 0;
  position: relative;
}

.aboutus_sec03 .container .wrap01 {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.aboutus_sec03 .container .wrap01 .ttl_h2 {
  margin-bottom: 7rem;
  width: 100%;
}

.aboutus_sec03 .container .wrap01 .ttl_h2 .eng {
  color: #2f51af;
  font-family: Figtree;
  font-size: 9.6rem;
  font-weight: 500;
  letter-spacing: calc(-1em * (4.8 / 96));
  line-height: .9;
  position: relative;
}

.aboutus_sec03 .container .wrap01 .ttl_h2 .eng strong {
  color: #80ccff;
}

.aboutus_sec03 .container .wrap01 .ttl_h2 .jp {
  font-size: 2rem;
  font-weight: 700;
  margin-top: 2rem;
}

.aboutus_sec03 .container .wrap01 .txts {
  max-width: 69.8rem;
}

.aboutus_sec03 .container .wrap01 .txts .p01 {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 2;
}

.aboutus_sec03 .container .wrap01 .img {
  max-width: 29.8rem;
}

.aboutus_sec03 .container .wrap01 .img img {
  border-radius: 20px;
}

.aboutus_sec03 .container .wrap01 .img span {
  display: block;
  font-size: 2rem;
  font-weight: 700;
  margin-top: 2rem;
  text-align: center;
}

@media screen and (max-width:768px) {
  .aboutus_sec03 .container {
    padding: 9rem 2rem;
  }

  .aboutus_sec03 .container .wrap01 .ttl_h2 {
    margin-bottom: 7rem;
    width: 100%;
  }

  .aboutus_sec03 .container .wrap01 .ttl_h2 .eng {
    font-size: 4rem;
  }

  .aboutus_sec03 .container .wrap01 .ttl_h2 .jp {
    font-size: 2.4rem;
    font-weight: 700;
    margin-top: 1rem;
  }

  .aboutus_sec03 .container .wrap01 .txts .p01 {
    font-size: 1.4rem;
  }

  .aboutus_sec03 .container .wrap01 .img {
    margin-top: 3rem;
    max-width: 100%;
  }

  .aboutus_sec03 .container .wrap01 .img span {
    font-size: 1.6rem;
    margin-top: 1rem;
  }
}

/* ---------------------------------------------------------------------------
//  aboutus_sec04
--------------------------------------------------------------------------- */
.aboutus_sec04 {
  padding-top: 15rem;
  position: relative;
}

.aboutus_sec04 .container {
  padding: 0 0 23rem;
  position: relative;
}

.aboutus_sec04 .container .wrap01 .ttl_h2 {
  text-align: center;
}

.aboutus_sec04 .container .wrap01 .ttl_h2 .eng {
  color: #2f51af;
  font-family: Figtree;
  font-size: 9.6rem;
  font-weight: 500;
  letter-spacing: calc(-1em * (4.8 / 96));
  line-height: .9;
  position: relative;
}

.aboutus_sec04 .container .wrap01 .ttl_h2 .eng strong {
  color: #80ccff;
}

.aboutus_sec04 .container .wrap01 .profile {
  display: flex;
  margin-top: 10rem;
}

.aboutus_sec04 .container .wrap01 .profile .ttl_h3 {
  border-right: solid 1px rgba(2, 2, 2, .40);
  font-size: 2rem;
  font-weight: 700;
  text-align: center;
  width: 28.4rem;
}

.aboutus_sec04 .container .wrap01 .profile .dls {
  padding-left: 3rem;
  width: calc(100% - 28.4rem);
}

.aboutus_sec04 .container .wrap01 .profile .dls>dl {
  display: flex;
}

.aboutus_sec04 .container .wrap01 .profile .dls>dl>dt {
  font-weight: 700;
  width: 14rem;
}

.aboutus_sec04 .container .wrap01 .profile .dls>dl>dd {
  font-size: 1.6rem;
  font-weight: 500;
}

.aboutus_sec04 .container .wrap01 .profile .dls dl+dl {
  margin-top: 1rem;
}

.aboutus_sec04 .container .wrap01 .profile .dls>dl>dd>dl>dd {
  padding-left: 1.6rem;
}

.aboutus_sec04 .container .wrap01 .profile .dls>dl>dd>dl>dd {
  margin-top: 1rem;
}

.aboutus_sec04 .container .wrap01 .profile .dls>dl>dd>dl>dd+dt {
  margin-top: 1rem;
}

@media screen and (max-width:768px) {
  .aboutus_sec04 {
    padding-top: 12rem;
  }

  .aboutus_sec04 .container {
    padding: 0 2rem 12rem;
    position: relative;
  }

  .aboutus_sec04 .container .wrap01 .ttl_h2 .eng {
    font-size: 4rem;
  }

  .aboutus_sec04 .container .wrap01 .profile {
    flex-direction: column;
    margin-top: 5rem;
  }

  .aboutus_sec04 .container .wrap01 .profile .ttl_h3 {
    border-right: none;
    font-size: 2rem;
    margin-bottom: 3rem;
    width: 100%;
  }

  .aboutus_sec04 .container .wrap01 .profile .dls {
    padding-left: 0;
    width: 100%;
  }

  .aboutus_sec04 .container .wrap01 .profile .dls>dl {
    display: block;
  }

  .aboutus_sec04 .container .wrap01 .profile .dls>dl>dt {
    margin-bottom: 1rem;
    width: 100%;
  }

  .aboutus_sec04 .container .wrap01 .profile .dls>dl>dd {
    font-size: 1.4rem;
  }

  .aboutus_sec04 .container .wrap01 .profile .dls dl+dl {
    margin-top: 2rem;
  }

  .aboutus_sec04 .container .wrap01 .profile .dls>dl>dd>dl>dd {
    padding-left: 1.4rem;
  }

  .aboutus_sec04 .container .wrap01 .profile .dls>dl>dd>dl>dd {
    margin-top: 1rem;
  }

  .aboutus_sec04 .container .wrap01 .profile .dls>dl>dd>dl>dd+dt {
    margin-top: 2rem;
  }
}

/* ---------------------------------------------------------------------------
//  aboutus_sec05
--------------------------------------------------------------------------- */
.aboutus_sec05 {
  overflow: hidden;
  position: relative;
}

.aboutus_sec05 .container {
  position: relative;
}

.aboutus_sec05 .container .wrap01 .ttl_h2 {
  color: #fff;
  margin-bottom: 7rem;
  margin-bottom: 10rem;
  width: 100%;
}

.aboutus_sec05 .container .wrap01 .ttl_h2 .eng {
  font-family: Figtree;
  font-size: 9.6rem;
  font-weight: 500;
  letter-spacing: calc(-1em * (4.8 / 96));
  line-height: .9;
  position: relative;
}

.aboutus_sec05 .container .wrap01 .ttl_h2 .eng strong {
  color: #80ccff;
}

.aboutus_sec05 .container .wrap01 .ttl_h2 .jp {
  font-size: 2rem;
  font-weight: 700;
  margin-top: 2rem;
}

.aboutus_sec05 .container .wrap01 .historys .history {
  display: flex;
}

.aboutus_sec05 .container .wrap01 .historys .history .txts {
  padding-bottom: 5.7rem;
  padding-right: 7.8rem;
  width: 50%;
}

.aboutus_sec05 .container .wrap01 .historys .history:last-of-type .txts {
  padding-bottom: 15rem;
}

.aboutus_sec05 .container .wrap01 .historys .history .txts .p01 {
  color: #fff;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 2;
}

.aboutus_sec05 .container .wrap01 .historys .history .txts .ttl_h3 {
  color: #80ccff;
  display: flex;
  font-size: 2rem;
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.6;
  margin-bottom: 3rem;
}

.aboutus_sec05 .container .wrap01 .historys .history .txts .ttl_h3 span {
  flex-shrink: 0;
  font-family: Figtree;
  font-size: 3.2rem;
  font-weight: 500;
  letter-spacing: calc(-1em * (1.6 / 32));
  line-height: .9;
  white-space: nowrap;
  width: 4.4rem;
}

.aboutus_sec05 .container .wrap01 .historys .history .bar {
  background: #6a96e1;
  position: relative;
  width: .1rem;
}

.aboutus_sec05 .container .wrap01 .historys .history .bar .pin {
  border: solid 1px #fff;
  border-radius: 100%;
  height: 4.4rem;
  left: -2.15rem;
  position: absolute;
  top: -1.2rem;
  width: 4.4rem;
}

.aboutus_sec05 .container .wrap01 .historys .history .bar .pin::before {
  background: #fff;
  border-radius: 100%;
  bottom: 0;
  content: '';
  height: 2rem;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: 0;
  width: 2rem;
}

.aboutus_sec05 .container .wrap01 .historys .history .img {
  margin-left: auto;
  padding-bottom: 5.7rem;
  width: calc(50% - 6.4rem);
}

.aboutus_sec05 .container .wrap01 .historys .history:last-of-type .img {
  padding-bottom: 15rem;
}

.aboutus_sec05 .container .wrap01 .historys .history .img img {
  border-radius: 20px;
}

.aboutus_sec05 .container .wrap01 .historys .history .img img+img {
  margin-top: 3rem;
}

@media screen and (max-width:768px) {
  .aboutus_sec05 .container {
    padding: 0 2rem;
  }

  .aboutus_sec05 .container .wrap01 .ttl_h2 {
    margin-bottom: 5rem;
  }

  .aboutus_sec05 .container .wrap01 .ttl_h2 .eng {
    font-size: 4rem;
  }

  .aboutus_sec05 .container .wrap01 .ttl_h2 .jp {
    font-size: 2rem;
    margin-top: 1rem;
  }

  .aboutus_sec05 .container .wrap01 .historys .history {
    flex-direction: column;
    position: relative;
  }

  .aboutus_sec05 .container .wrap01 .historys .history .txts {
    margin-top: -.8rem;
    padding-bottom: 2rem !important;
    padding-left: 2rem;
    padding-right: 0;
    padding-top: 0;
    width: 100%;
  }

  .aboutus_sec05 .container .wrap01 .historys .history .txts .p01 {
    font-size: 1.4rem;
  }

  .aboutus_sec05 .container .wrap01 .historys .history .txts .ttl_h3 {
    flex-direction: column;
    font-size: 1.6rem;
    margin-bottom: 2rem;
  }

  .aboutus_sec05 .container .wrap01 .historys .history .txts .ttl_h3 span {
    font-size: 3rem;
    line-height: 1;
    width: auto;
  }

  .aboutus_sec05 .container .wrap01 .historys .history .bar {
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
  }

  .aboutus_sec05 .container .wrap01 .historys .history .bar .pin {
    height: 3rem;
    left: -1.45rem;
    top: -1rem;
    width: 3rem;
  }

  .aboutus_sec05 .container .wrap01 .historys .history .bar .pin::before {
    height: 1.2rem;
    width: 1.2rem;
  }

  .aboutus_sec05 .container .wrap01 .historys .history .img {
    margin-left: auto;
    margin-left: 2rem;
    padding-bottom: 6rem;
    width: 100%;
  }

  .aboutus_sec05 .container .wrap01 .historys .history:last-of-type .img {
    padding-bottom: 9rem;
  }

  .aboutus_sec05 .container .wrap01 .historys .history .img img {
    border-radius: 20px 0 0 20px;
  }

  .aboutus_sec05 .container .wrap01 .historys .history .img img+img {
    margin-top: 2rem;
  }
}

/* ---------------------------------------------------------------------------
//  recruit_sec00
--------------------------------------------------------------------------- */
.recruit_sec00 {
  background: linear-gradient(90deg, #2f51af 20.14%, #4690ff 100%);
  border-radius: 40px 40px 0 0;
  color: #fff;
  margin-top: -40px;
  position: relative;
  z-index: 2;
}

.recruit_sec00 .container {
  padding: 12rem 2rem calc(12rem + 40px);
  position: relative;
}

.recruit_sec00 .container .ttl_h2 {
  align-items: center;
  display: flex;
  flex-direction: column;
  margin-bottom: auto;
}

.recruit_sec00 .container .ttl_h2 .eng {
  font-family: Figtree;
  font-size: 12.4rem;
  font-weight: 500;
  letter-spacing: calc(-1em * (6.2 / 124));
  line-height: .8;
  position: relative;
}

.recruit_sec00 .container .ttl_h2 .jp {
  font-size: 2rem;
  font-weight: 700;
  margin-top: 3rem;
}

.recruit_sec00 .container .wrap01 {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.recruit_sec00 .container .wrap01 .left {
  align-items: center;
  flex-direction: column;
  max-width: 42rem;
}

.recruit_sec00 .container .wrap01 .left .img {
  border-radius: 20px;
  margin-top: 5rem;
  overflow: hidden;
}

.recruit_sec00 .container .wrap01 .right {
  max-width: 53.3rem;
}

.recruit_sec00 .container .wrap01 .right .ttl_h3 {
  font-size: 3.2rem;
  font-weight: 700;
  margin-bottom: 4rem;
}

.recruit_sec00 .container .wrap01 .right .p01 {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 2;
  margin-bottom: 1rem;
}

.recruit_sec00 .container .wrap01 .right .btnA a {
  background: #80ccff;
  border: solid 1px #fff;
  color: #2f51af;
  margin-top: 2rem;
  width: 29.5rem;
}

.recruit_sec00 .container .wrap01 .right .btnA a::before {
  background: linear-gradient(90deg, #80ccff 0%, #fff 100%);
}

@media screen and (max-width:768px) {
  .recruit_sec00 {
    border-radius: 20px 20px 0 0;
    margin-top: -20px;
  }

  .recruit_sec00 .container {
    padding: 9rem 2rem calc(9rem + 20px);
  }

  .recruit_sec00 .container .ttl_h2 .eng {
    font-size: 4rem;
  }

  .recruit_sec00 .container .ttl_h2 .jp {
    font-size: 2.4rem;
    font-weight: 700;
    margin-top: 1rem;
  }

  .recruit_sec00 .container .wrap01 {
    flex-direction: column;
  }

  .recruit_sec00 .container .wrap01 .right .ttl_h3 {
    font-size: 2rem;
    margin-bottom: 2rem;
    margin-top: 2.4rem;
    text-align: center;
  }

  .recruit_sec00 .container .wrap01 .right .p01 {
    font-size: 1.4rem;
  }

  .recruit_sec00 .container .wrap01 .right .btnA a {
    margin: 2rem auto 0;
    width: 25.5rem;
  }
}

/* ---------------------------------------------------------------------------
//  business_sub_sec01
--------------------------------------------------------------------------- */
.business_sub_sec01 {
  padding-top: 9rem;
  position: relative;
}

.business_sub_sec01 .container {
  margin: 0 auto;
  max-width: 106rem;
  position: relative;
}

.business_sub_sec01 .container .bg {
  background-repeat: no-repeat;
  border-radius: 40px;
  height: 100%;
  left: 0;
  overflow: hidden;
  position: absolute;
  top: 0;
  width: 130.6rem;
}

.business_sub_sec01 .container .bg01 {
  background-image: url(../img/business/business01/01_bg.jpg);
  background-position: right -35rem top -7rem;
  background-size: 120rem;
}

.business_sub_sec01 .container .bg02 {
  background-image: url(../img/business/business02/01_bg.jpg);
  background-position: right -30rem top -19rem;
  background-size: 120rem;
}

.business_sub_sec01 .container .bg::before {
  background: rgba(33, 81, 175, .44);
  content: '';
  height: 100%;
  position: absolute;
  width: 100%;
}

.business_sub_sec01 .container .wrap01 {
  position: relative;
}

.business_sub_sec01 .container .wrap01 .txts {
  background: linear-gradient(to right, rgba(14, 42, 75, 1) 0%, rgba(14, 42, 75, 1) 40%, transparent 60%, transparent);
  border-radius: 40px;
  color: #fff;
  display: flex;
  flex-direction: column;
  height: 44rem;
  justify-content: center;
  padding: 0 5rem;
  width: 130.6rem;
}

.business_sub_sec01 .container .wrap01 .ttl_h2 {
  font-size: 3.2rem;
  font-weight: 700;
}

.business_sub_sec01 .container .wrap01 .p01 {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 2;
  margin-top: 5rem;
  width: 47.5rem;
}

@media screen and (max-width:768px) {
  .business_sub_sec01 .container .bg {
    border-radius: 20px;
    left: 2rem;
    top: 0;
    width: 100%;
  }

  .business_sub_sec01 .container .bg01 {
    background-position: center;
    background-size: cover;
  }

  .business_sub_sec01 .container .bg02 {
    background-position: center;
    background-size: cover;
  }

  .business_sub_sec01 .container .bg::before {
    background: rgba(33, 81, 175, .6);
  }

  .business_sub_sec01 .container .wrap01 .txts {
    background: none;
    border-radius: 20px;
    height: 34rem;
    padding: 0 2rem 0 4rem;
    width: 100%;
  }

  .business_sub_sec01 .container .wrap01 .ttl_h2 {
    font-size: 1.8rem;
    font-weight: 700;
  }

  .business_sub_sec01 .container .wrap01 .p01 {
    font-size: 1.4rem;
    margin-top: 3rem;
    width: 100%;
  }
}

/* ---------------------------------------------------------------------------
//  business_sub_sec02
--------------------------------------------------------------------------- */
.business_sub_sec02 {
  position: relative;
}

.business_sub_sec02 .container {
  padding-bottom: 35rem;
}

.business_sub_sec02 .container .wrap01 {
  align-items: center;
  border-bottom: solid 1px #6a96e1;
  display: flex;
  gap: 5.4rem;
  padding: 6rem 0;
}

.business_sub_sec02 .container .wrap01 .ttl_h3 {
  align-items: center;
  border: solid 1px #2f51af;
  border-radius: 20px;
  color: #2f51af;
  display: flex;
  font-size: 2rem;
  font-weight: 700;
  height: 11.2rem;
  justify-content: center;
  width: 13.2rem;
}

.business_sub_sec02 .container .wrap01 .uls {
  display: flex;
  gap: 5.4rem;
}

.business_sub_sec02 .container .wrap01 .uls ul li {
  display: flex;
  font-size: 1.6rem;
  font-weight: 500;
}

.business_sub_sec02 .container .wrap01 .uls ul li::before {
  content: '・';
  flex-shrink: 0;
  font-feature-settings: normal;
}

.business_sub_sec02 .container .wrap01 .uls ul li+li {
  margin-top: 1rem;
}

.business_sub_sec02 .container .wrap02 {
  display: flex;
  flex-direction: row-reverse;
  padding: 7rem 0;
}

.business_sub_sec02 .container .wrap02 .left {
  padding-right: 7rem;
  width: 50%;
}

.business_sub_sec02 .container .wrap02 .left .p01 {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 2;
}

.business_sub_sec02 .container .wrap02 .right {
  width: 50%;
}

.business_sub_sec02 .container .wrap02 .right .ttl_h4 {
  color: #2f51af;
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 3rem;
}

.business_sub_sec02 .container .wrap02 .right .flow {
  position: relative;
}

.business_sub_sec02 .container .wrap02 .right .flow::before {
  background: #2f51af;
  content: '';
  height: 100%;
  left: 5rem;
  position: absolute;
  top: 0;
  width: 1px;
}

.business_sub_sec02 .container .wrap02 .right .flow li {
  align-items: center;
  background: #fff;
  border: solid 1px #2f51af;
  border-radius: 20px;
  display: flex;
  height: 14.3rem;
  position: relative;
}

.business_sub_sec02 .container .wrap02 .right .flow li+li {
  margin-top: 4rem;
}

.business_sub_sec02 .container .wrap02 .right .flow li .num {
  color: #80ccff;
  font-family: Figtree;
  font-size: 6rem;
  font-style: normal;
  font-weight: 500;
  letter-spacing: calc(-1 * (3 / 60));
  text-align: center;
  width: 10.2rem;
}

.business_sub_sec02 .container .wrap02 .right .flow li dl {
  width: calc(100% - 10.2rem);
}

.business_sub_sec02 .container .wrap02 .right .flow li dl dt {
  color: #2f51af;
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: .5rem;
}

.business_sub_sec02 .container .wrap02 .right .flow li dl dd {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 2;
  padding-right: 2rem;
}

@media screen and (max-width:768px) {
  .business_sub_sec02 .container {
    padding: 0 2rem 12rem;
  }

  .business_sub_sec02 .container .wrap01 {
    flex-direction: column;
    gap: 3rem;
    padding: 6rem 0;
  }

  .business_sub_sec02 .container .wrap01 .ttl_h3 {
    height: 8rem;
  }

  .business_sub_sec02 .container .wrap01 .uls {
    display: block;
  }

  .business_sub_sec02 .container .wrap01 .uls ul li {
    font-size: 1.4rem;
    margin-top: 1rem;
  }

  .business_sub_sec02 .container .wrap02 {
    display: flex;
    flex-direction: column;
    padding: 6rem 0 4rem;
  }

  .business_sub_sec02 .container .wrap02 .left {
    margin-top: 3rem;
    padding-right: 0;
    width: 100%;
  }

  .business_sub_sec02 .container .wrap02 .left .p01 {
    font-size: 1.4rem;
  }

  .business_sub_sec02 .container .wrap02 .right {
    width: 100%;
  }

  .business_sub_sec02 .container .wrap02 .right .ttl_h4 {
    font-size: 1.8rem;
  }

  .business_sub_sec02 .container .wrap02 .right .flow::before {
    background: #2f51af;
    content: '';
    height: 100%;
    left: 5rem;
    position: absolute;
    top: 0;
    width: 1px;
  }

  .business_sub_sec02 .container .wrap02 .right .flow li {
    height: auto;
    padding: 2rem 0;
    position: relative;
  }

  .business_sub_sec02 .container .wrap02 .right .flow li+li {
    margin-top: 4rem;
  }

  .business_sub_sec02 .container .wrap02 .right .flow li .num {
    color: #80ccff;
    font-family: Figtree;
    font-size: 4rem;
    font-style: normal;
    font-weight: 500;
    letter-spacing: calc(-1 * (3 / 60));
    text-align: center;
    width: 8rem;
  }

  .business_sub_sec02 .container .wrap02 .right .flow li dl {
    width: calc(100% - 8rem);
  }

  .business_sub_sec02 .container .wrap02 .right .flow li dl dt {
    font-size: 1.6rem;
  }

  .business_sub_sec02 .container .wrap02 .right .flow li dl dd {
    font-size: 1.4rem;
    padding-right: 0;
  }

  .business_sub_sec02 .container .wrap02 .right .flow li dl dd .forSP {
    display: inline;
  }

  .business_sub_sec02 .container .wrap03 .img img {
    max-width: inherit;
    width: 60rem;
  }
}

/* ---------------------------------------------------------------------------
//  business_sec03
--------------------------------------------------------------------------- */
.business_sub_sec03 {
  color: #fff;
  position: relative;
  z-index: 2;
}

.business_sub_sec03 .container {
  padding: 6rem 0 30rem;
  position: relative;
  text-align: center;
}

.business_sub_sec03 .container .wrap01 {
  position: relative;
}

.business_sub_sec03 .container .wrap01 .ttl_h2 {
  margin-bottom: 5rem;
}

.business_sub_sec03 .container .wrap01 .ttl_h2 .eng {
  font-family: Figtree;
  font-size: 9.6rem;
  font-weight: 500;
  letter-spacing: calc(-1em * (4.8 / 96));
  line-height: .9;
  position: relative;
}

.business_sub_sec03 .container .wrap01 .ttl_h2 .eng strong {
  color: #80ccff;
}

.business_sub_sec03 .container .wrap01 .ttl_h2 .jp {
  font-size: 2rem;
  font-weight: 700;
  margin-top: 2rem;
}

.business_sub_sec03 .container .wrap01 .p01 {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 2;
}

.business_sub_sec03 .container .wrap01 .imgs .img {
  border-radius: 20px;
  overflow: hidden;
  position: absolute;
}

.business_sub_sec03 .container .wrap01 .imgs .img img {
  object-fit: cover;
  transform: scale(1.05);
}

.business_sub_sec03 .container .wrap01 .imgs .img01 {
  animation: float_y 4s ease-in-out infinite alternate;
  animation-delay: -1.5s;
  animation-duration: 7.5s;
  left: 5.5rem;
  top: -36.8rem;
  width: 28.8rem;
}

.business_sub_sec03 .container .wrap01 .imgs .img02 {
  animation: float_x 8s ease-in-out infinite alternate;
  animation-delay: -4.2s;
  animation-duration: 5.8s;
  left: -1.6rem;
  top: 3.6rem;
  width: 19.6rem;
}

.business_sub_sec03 .container .wrap01 .imgs .img03 {
  animation: float_y 6s ease-in-out infinite alternate;
  animation-delay: -2.8s;
  animation-duration: 8.2s;
  right: -3.2rem;
  top: -7.7rem;
  width: 24.5rem;
}

.business_sub_sec03 .container .wrap01 .imgs .img04 {
  animation: float_x 7s ease-in-out infinite alternate;
  animation-delay: -3s;
  animation-duration: 6s;
  bottom: -8rem;
  right: 9.3rem;
  width: 19.6rem;
}

@media screen and (max-width:768px) {
  .business_sub_sec03 .container {
    padding: 4rem 2rem 12rem;
    position: relative;
    text-align: center;
  }

  .business_sub_sec03 .container .wrap01 .ttl_h2 {
    margin-bottom: 3rem;
  }

  .business_sub_sec03 .container .wrap01 .ttl_h2 .eng {
    font-size: 4rem;
  }

  .business_sub_sec03 .container .wrap01 .ttl_h2 .jp {
    font-size: 2rem;
    margin-top: 1rem;
  }

  .business_sub_sec03 .container .wrap01 .p01 {
    font-size: 1.4rem;
    font-weight: 500;
    line-height: 2;
  }

  .business_sub_sec03 .container .wrap01 .imgs {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: center;
    margin-top: 4rem;
  }

  .business_sub_sec03 .container .wrap01 .imgs .img {
    aspect-ratio: 1/1;
    margin: 0 !important;
    position: static;
    width: calc((100% - 1rem) / 2) !important;
  }

  .business_sub_sec03 .container .wrap01 .imgs .img img {
    margin: auto;
    object-fit: cover;
    transform: scale(1.05);
  }

  .business_sub_sec03 .container .wrap01 .imgs .img01 {
    animation: none;
    width: 14rem;
  }

  .business_sub_sec03 .container .wrap01 .imgs .img02 {
    animation: none;
  }

  .business_sub_sec03 .container .wrap01 .imgs .img03 {
    animation: none;
  }

  .business_sub_sec03 .container .wrap01 .imgs .img04 {
    animation: none;
  }
}

/* ---------------------------------------------------------------------------
//  business_sec04
--------------------------------------------------------------------------- */
.business_sub_sec04 {
  position: relative;
}

.business_sub_sec04 .container {
  padding: 10rem 0 0;
  position: relative;
}

.business_sub_sec04 .container .wrap01 .ttl_h3 {
  color: #2f51af;
  font-size: 3.2rem;
  font-weight: 700;
  margin-bottom: 14.5rem;
}

.business_sub_sec04 .container .wrap01 .flow li {
  border-top: solid 1px #2f51af;
  padding: 7rem 0 14rem;
  position: relative;
}

.business_sub_sec04 .container .wrap01 .flow li dl dt {
  align-items: center;
  background: #eff2f5;
  border: solid 1px #2f51af;
  border-radius: 0 20px 20px 0;
  color: #2f51af;
  display: flex;
  font-weight: 500;
  height: 13.6rem;
  justify-content: flex-end;
  position: absolute;
  right: 64.37rem;
  top: -6.6rem;
  width: 100vw;
}

.business_sub_sec04 .container .wrap01 .flow li dl dt .num {
  border-right: solid 1px #2f51af;
  font-family: Figtree;
  font-size: 9.6rem;
  letter-spacing: calc(-1em * (4.8 / 96));
  line-height: .8;
  width: 13rem;
}

.business_sub_sec04 .container .wrap01 .flow li dl dt .ttl_h4 {
  align-items: flex-end;
  display: flex;
  font-size: 2rem;
  padding-left: 1.7rem;
  padding-top: 4.5rem;
  width: 29.1rem;
}

.business_sub_sec04 .container .wrap01 .flow li dl dd {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 13rem;
}

.business_sub_sec04 .container .wrap01 .flow li dl dd .txts {
  width: 50%;
}

.business_sub_sec04 .container .wrap01 .flow li dl dd .txts .p01 {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 2;
}

.business_sub_sec04 .container .wrap01 .flow li dl dd .img {
  border-radius: 20px;
  overflow: hidden;
  width: calc(50% - 13rem);
}

@media screen and (max-width:768px) {
  .business_sub_sec04 .container {
    padding: 9rem 0 0;
  }

  .business_sub_sec04 .container .wrap01 .ttl_h3 {
    font-size: 2rem;
    margin-bottom: 8rem;
    padding: 0 2rem;
  }

  .business_sub_sec04 .container .wrap01 .flow li {
    padding: 6rem 2rem 8rem;
  }

  .business_sub_sec04 .container .wrap01 .flow li dl dt {
    height: 7rem;
    justify-content: flex-start;
    left: 0;
    padding: 0 3rem 0 2rem;
    right: auto;
    top: -3.5rem;
    width: auto;
  }

  .business_sub_sec04 .container .wrap01 .flow li dl dt .num {
    font-size: 4rem;
    width: 5.6rem;
  }

  .business_sub_sec04 .container .wrap01 .flow li dl dt .ttl_h4 {
    font-size: 1.8rem;
    padding-left: 1.2rem;
    padding-top: 0;
    width: auto;
  }

  .business_sub_sec04 .container .wrap01 .flow li dl dd {
    gap: 3rem;
  }

  .business_sub_sec04 .container .wrap01 .flow li dl dd .txts {
    width: 100%;
  }

  .business_sub_sec04 .container .wrap01 .flow li dl dd .txts .p01 {
    font-size: 1.4rem;
  }

  .business_sub_sec04 .container .wrap01 .flow li dl dd .img {
    left: 4rem;
    position: relative;
    width: 100%;
  }
}

/* ---------------------------------------------------------------------------
//  contactus_sec01
--------------------------------------------------------------------------- */
.contactus_sec01 {
  position: relative;
}

.contactus_sec01 .container {
  padding: 10rem 0;
  position: relative;
}

.contactus_sec01 .container .wrap01 .ttl_h2 {
  color: #2f51af;
  font-size: 2.3rem;
  font-weight: 700;
  margin-bottom: 5rem;
  text-align: center;
}

.contactus_sec01 .container .wrap01 .box {
  text-align: center;
}

.contactus_sec01 .container .wrap01 .box .ttl_h3 {
  font-size: 1.6rem;
  font-weight: 700;
  margin-bottom: 2rem;
}

.contactus_sec01 .container .wrap01 .box .tel {
  color: #2f51af;
  font-family: Figtree;
  font-size: 4.8rem;
  font-size: 4.8rem;
  font-weight: 500;
  letter-spacing: calc(-1em * (1.4/ 28));
  line-height: 1;
}

.contactus_sec01 .container .wrap01 .box .p01 {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 2;
  margin-top: 3rem;
}

@media screen and (max-width:768px) {
  .contactus_sec01 .container {
    padding: 9rem 2rem;
    position: relative;
  }

  .contactus_sec01 .container .wrap01 .ttl_h2 {
    font-size: 1.8rem;
    margin-bottom: 3rem;
  }

  .contactus_sec01 .container .wrap01 .box .ttl_h3 {
    margin-bottom: 1rem;
  }

  .contactus_sec01 .container .wrap01 .box .tel {
    font-size: 3.8rem;
  }

  .contactus_sec01 .container .wrap01 .box .p01 {
    font-size: 1.4rem;
    margin-top: 2rem;
  }
}

/* ---------------------------------------------------------------------------
//  entry_sec01
--------------------------------------------------------------------------- */
.entry_sec01 {
  position: relative;
}

.entry_sec01 .container {
  padding: 10rem 0;
  position: relative;
}

.entry_sec01 .container .wrap01 .ttl_h2 {
  color: #2f51af;
  font-size: 3.2rem;
  font-weight: 700;
  margin-bottom: 5rem;
  text-align: center;
}

.entry_sec01 .container .wrap01 .flow {
  display: flex;
  gap: 2rem;
  margin-bottom: 4.5rem;
  position: relative;
}

.entry_sec01 .container .wrap01 .flow::before {
  background: #2f51af;
  bottom: 0;
  content: '';
  height: 1px;
  left: 0;
  margin: auto;
  margin: auto;
  position: absolute;
  top: 0;
  width: 100%;
}

.entry_sec01 .container .wrap01 .flow li {
  align-items: center;
  background: #fff;
  border: solid 1px #2f51af;
  border-radius: 10px;
  display: flex;
  height: 9rem;
  justify-content: center;
  position: relative;
  text-align: center;
  width: calc((100% - 8rem) / 5);
}

.entry_sec01 .container .wrap01 .flow li .num {
  color: #b0ccff;
  font-family: Figtree;
  font-size: 3.2rem;
  font-weight: 500;
  left: 1rem;
  position: absolute;
  top: .3rem;
}

.entry_sec01 .container .wrap01 .flow li .txt {
  color: #2f51af;
  font-size: 1.8rem;
  font-weight: 700;
}

.entry_sec01 .container .wrap01 .p01 {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 2;
  text-align: center;
}

.entry_sec01 .container .wrap01 .box {
  border-bottom: solid 1px #c0c0c0;
  border-top: solid 1px #c0c0c0;
  margin: 5rem auto 4rem;
  max-width: 51rem;
  padding: 2rem 0;
  text-align: center;
}

.entry_sec01 .container .wrap01 .box .ttl_h3 {
  font-size: 1.6rem;
  font-weight: 700;
  margin-bottom: 2rem;
}

.entry_sec01 .container .wrap01 .box .tel {
  color: #2f51af;
  display: block;
  font-family: Figtree;
  font-size: 4.8rem;
  font-weight: 500;
  letter-spacing: calc(-1em * (1.4/ 28));
  line-height: 1;
  margin-bottom: 1rem;
}

.entry_sec01 .container .wrap01 .sup {
  font-size: 1.4rem;
  text-align: center;
}

@media screen and (max-width:768px) {
  .entry_sec01 .container {
    padding: 9rem 2rem;
    position: relative;
  }

  .entry_sec01 .container .wrap01 .ttl_h2 {
    font-size: 2.4rem;
    margin-bottom: 3rem;
  }

  .entry_sec01 .container .wrap01 .flow {
    flex-direction: column;
    gap: 2rem;
  }

  .entry_sec01 .container .wrap01 .flow::before {
    height: 100%;
    right: 0;
    width: 1px;
  }

  .entry_sec01 .container .wrap01 .flow li {
    height: 8rem;
    width: 100%;
  }

  .entry_sec01 .container .wrap01 .flow li .txt {
    font-size: 2rem;
  }

  .entry_sec01 .container .wrap01 .box .ttl_h3 {
    margin-bottom: 1rem;
  }

  .entry_sec01 .container .wrap01 .box .tel {
    font-size: 3.8rem;
  }

  .entry_sec01 .container .wrap01 .p01 {
    font-size: 1.4rem;
  }

  .entry_sec01 .container .wrap01 .sup {
    display: flex;
    font-size: 1.2rem;
    justify-content: center;
    text-align: left;
  }
}

/* ---------------------------------------------------------------------------
//  form_sec01
--------------------------------------------------------------------------- */
.form_sec01 {
  padding-bottom: 14rem;
  position: relative;
}

.form_sec01 .container {
  background: #f7f7f8;
  margin: auto;
  max-width: 112.6rem;
}

.form_sec01 .container .wrap01 {
  padding: 7rem 3rem 8rem;
}

::placeholder {
  color: #adadad;
  font-weight: 400;
}

form dl {
  display: flex;
  font-size: 1.8rem;
}

form dl+dl {
  margin-top: 4rem;
}

form dl dt {
  color: #2f51af;
  font-weight: 700;
  padding: 2rem 0;
  width: 29.5rem;
}

form dl dt span {
  color: #f00;
}

form dl dd {
  width: calc(100% - 29.5rem);
}

form dl dd.short {
  width: 33%;
}

form dl dd input[type='text'],
form dl dd input[type='email'] {
  background: #fff;
  padding: 2rem;
  width: 100%;
}

form dl dd textarea {
  background: #fff;
  height: 30rem;
  padding: 2rem;
  resize: none;
  width: 100%;
}

form .bottom {
  align-items: center;
  border-top: 1px solid rgba(112, 112, 112, .5);
  display: flex;
  flex-direction: column;
  font-size: 1.6rem;
  font-weight: 500;
  margin-top: 4rem;
  padding-top: 3rem;
  text-align: center;
}

form .bottom .p01 {
  margin-bottom: 4rem;
}

form .bottom .p01 a {
  color: #2f51af;
  text-decoration: underline;
}

form .bottom .p02 {
  margin-top: 3rem;
}

form .bottom .p01 a:hover {
  opacity: .7;
}

form .btnA {
  justify-content: center;
  margin: 4rem auto 0;
}

form .btnA>* {
  justify-content: center;
  padding: 0;
  text-align: center;
}

.error_text {
  color: #f00;
  /* 警告色（赤） */
  font-size: 1.4rem;
  font-weight: bold;
  margin-top: 1.5rem;
  text-align: center;
  transition: all .3s ease;
}

.radio_group {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  padding: 2rem 0;
}

.custom_radio {
  align-items: center;
  cursor: pointer;
  display: flex;
  min-width: calc((100% - 4rem) / 3);
  user-select: none;
  white-space: nowrap;
}

.custom_radio input {
  display: none;
}

.radio_mark {
  background: #fff;
  border: 1px solid #bebebe;
  border-radius: 100%;
  height: 2.6rem;
  margin-right: 1.4rem;
  position: relative;
  transition: all .3s ease;
  width: 2.6rem;
}

.custom_radio:hover input~.radio_mark {
  border-color: #2f51af;
}

.custom_radio input:checked~.radio_mark {
  border-color: #2f51af;
}

.radio_mark::after {
  background: #2f51af;
  border-radius: 100%;
  content: '';
  display: none;
  height: 1.3rem;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 1.3rem;
}

.custom_radio input:checked~.radio_mark::after {
  display: block;
}

.custom_checkbox {
  align-items: center;
  cursor: pointer;
  display: flex;
  user-select: none;
}

.custom_checkbox input {
  display: none;
}

.checkbox_mark {
  background: #fff;
  border: 1px solid #bebebe;
  height: 2.6rem;
  margin-right: 1.4rem;
  position: relative;
  transition: all .3s ease;
  width: 2.6rem;
}

/* チェック時の背景 */
.custom_checkbox input:checked~.checkbox_mark {
  border-color: #2f51af;
}

/* 白いチェックマークの作成 */
.checkbox_mark::after {
  border: solid #2f51af;
  border-width: 0 .3rem .3rem 0;
  content: '';
  display: none;
  height: 2rem;
  left: .8rem;
  position: absolute;
  top: .12rem;
  transform: rotate(45deg);
  width: .8rem;
}

.custom_checkbox input:checked~.checkbox_mark::after {
  display: block;
}

@media screen and (max-width:768px) {
  .form_sec01 {
    padding-bottom: 0;
  }

  .form_sec01 .container .wrap01 {
    padding: 4rem 2rem 9rem;
  }

  ::placeholder {
    font-size: 1.4rem;
  }

  form dl {
    display: block;
    font-size: 1.6rem;
  }

  form dl+dl {
    margin-top: 3rem;
  }

  form dl dt {
    margin-bottom: 1rem;
    padding: 0;
    width: 100%;
  }

  form dl dd {
    width: 100%;
  }

  form dl dd.short {
    width: 100%;
  }

  form dl dd input[type='text'],
  form dl dd input[type='email'] {
    padding: 1rem;
  }

  form dl dd textarea {
    height: 20rem;
    padding: 1rem;
  }

  form .bottom {
    font-size: 1.4rem;
    margin-top: 3rem;
    padding-top: 2rem;
  }

  form .bottom .p01 {
    font-size: 1.2rem;
    margin-bottom: 3rem;
  }

  form .bottom .p02 {
    font-size: 1.4rem;
  }

  .custom_radio {
    min-width: calc((100% - 2rem) / 2);
  }
}

/* ---------------------------------------------------------------------------
//  thanks_sec01
--------------------------------------------------------------------------- */
.thanks_sec01 {
  position: relative;
}

.thanks_sec01 .container {
  padding: 10rem 0 12rem;
}

.thanks_sec01 .container .wrap01 .ttl_h2 {
  font-size: 4rem;
  font-weight: 700;
  margin-bottom: 4rem;
  text-align: center;
}

.thanks_sec01 .container .wrap01 .ttl_h3 {
  font-size: 3rem;
  font-weight: 700;
  margin-bottom: 4rem;
  text-align: center;
}

.thanks_sec01 .container .wrap01 .p01 {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 2;
  text-align: center;
}

.thanks_sec01 .container .wrap01 .sup {
  font-size: 1.4rem;
  margin-top: 4rem;
  text-align: center;
}

.thanks_sec01 .container .wrap01 .btnA {
  justify-content: center;
  margin-top: 5rem;
}

.thanks_sec01 .container .wrap01 .btnA a {
  justify-content: center;
  padding: 0;
}

@media screen and (max-width:768px) {
  .thanks_sec01 .container {
    padding: 6rem 2rem 9rem;
  }

  .thanks_sec01 .container .wrap01 .ttl_h2 {
    font-size: 2.4rem;
    margin-bottom: 3rem;
  }

  .thanks_sec01 .container .wrap01 .ttl_h3 {
    font-size: 1.8rem;
    margin-bottom: 3rem;
  }

  .thanks_sec01 .container .wrap01 .p01 {
    font-size: 1.4rem;
  }

  .thanks_sec01 .container .wrap01 .sup {
    display: flex;
    font-size: 1.2rem;
    justify-content: center;
    margin-top: 3rem;
    text-align: left;
  }

  .thanks_sec01 .container .wrap01 .btnA {
    margin-top: 4rem;
  }
}

/* ---------------------------------------------------------------------------
//  privacypolicy_sec01
--------------------------------------------------------------------------- */
.privacypolicy_sec01 {
  position: relative;
}

.privacypolicy_sec01 .container {
  padding: 10rem 0 12rem;
}

.privacypolicy_sec01 .container .wrap01 .ttl_h2 {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 4rem;
}

.privacypolicy_sec01 .container .wrap01 .p01 {
  font-size: 1.6rem;
  line-height: 2;
}

.privacypolicy_sec01 .container .wrap01 dl {
  font-size: 1.6rem;
  line-height: 2;
  margin-top: 5rem;
}

.privacypolicy_sec01 .container .wrap01 dl dt {
  display: flex;
  font-weight: 700;
}

.privacypolicy_sec01 .container .wrap01 dl dt span {
  flex-shrink: 0;
  width: 2.5rem;
}

.privacypolicy_sec01 .container .wrap01 dl dd>p {
  padding-left: 2.5rem;
}

.privacypolicy_sec01 .container .wrap01 dl dd ul li {
  display: flex;
}

.privacypolicy_sec01 .container .wrap01 dl dd ul li span {
  flex-shrink: 0;
  width: 2.5rem;
}

@media screen and (max-width:768px) {
  .privacypolicy_sec01 {
    position: relative;
  }

  .privacypolicy_sec01 .container {
    padding: 6rem 2rem 9rem;
  }

  .privacypolicy_sec01 .container .wrap01 .ttl_h2 {
    font-size: 2rem;
    margin-bottom: 3rem;
  }

  .privacypolicy_sec01 .container .wrap01 .p01 {
    font-size: 1.4rem;
  }

  .privacypolicy_sec01 .container .wrap01 dl {
    font-size: 1.4rem;
    margin-top: 4rem;
  }

  .privacypolicy_sec01 .container .wrap01 dl dt span {
    width: 2rem;
  }

  .privacypolicy_sec01 .container .wrap01 dl dd>p {
    padding-left: 2rem;
  }

  .privacypolicy_sec01 .container .wrap01 dl dd ul li span {
    width: 2rem;
  }
}

/* ---------------------------------------------------------------------------
//  recruit_fv
--------------------------------------------------------------------------- */
.recruit_fv {
  padding: 2rem 2rem 0;
  position: relative;
}

.recruit_fv .container {
  aspect-ratio: 1240/784;
  background: url(../img/recruit/fv.jpg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  border-radius: 20px;
  overflow: hidden;
  position: relative;
}

.recruit_fv .container::before,
.recruit_fv .container::after {
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  content: '';
  pointer-events: none;
  position: absolute;
}

.recruit_fv .container::before {
  background-image: url(../img/recruit/fv_frame01.png);
  height: 48.25rem;
  left: -2rem;
  top: -2rem;
  width: 83rem;
}

.recruit_fv .container::after {
  background-image: url(../img/recruit/fv_frame02.png);
  bottom: -2rem;
  height: 27.5rem;
  right: -2rem;
  width: 49rem;
}

.recruit_fv .container .wrap01 {
  height: 100%;
  padding-top: 26rem;
  position: relative;
  width: 100%;
}

.recruit_fv .container .wrap01 .ttl_h1 {
  color: #fff;
  font-size: 5.2rem;
  font-weight: 700;
  letter-spacing: calc(1em * (2.6 / 52));
  line-height: 1.45;
  text-shadow: 0 .4rem .4rem rgba(0, 0, 0, .25);
}

.recruit_fv .container .wrap01 .ttl_h1 b {
  font-size: 4.5rem;
}

.recruit_fv .container .wrap01 .eng {
  bottom: -.8rem;
  color: #eff2f5;
  font-family: Figtree;
  font-size: 20rem;
  font-weight: 500;
  left: -1rem;
  letter-spacing: calc(-1em * (4.8 / 96));
  line-height: .7;
  position: absolute;
  z-index: 2;
}

.page_fv .breads {
  display: flex;
  gap: 2rem;
  margin-top: 1.4rem;
}

.page_fv .breads .bread {
  font-size: 1.4rem;
  font-weight: 500;
  position: relative;
}

.page_fv .breads .bread:last-of-type a {
  pointer-events: none;
}

.page_fv .breads .bread a:hover {
  opacity: .7;
}

.page_fv .breads .bread+.bread::before {
  bottom: 0;
  content: '>';
  left: -1.4rem;
  margin: auto;
  position: absolute;
  top: 0;
}

@media screen and (max-width:768px) {
  .recruit_fv {
    padding: 1rem 1rem 0;
  }

  .recruit_fv .container {
    aspect-ratio: inherit;
    height: 31rem;
  }

  .recruit_fv .container::before {
    height: calc(48.25rem * .4);
    left: -3rem;
    top: -3rem;
    width: calc(83rem * .4);
  }

  .recruit_fv .container::after {
    bottom: -1rem;
    height: calc(27.5rem * .4);
    right: -3rem;
    width: calc(49rem * .4);
  }

  .recruit_fv .container .wrap01 {
    height: 100%;
    padding: 7rem 2rem 0;
    padding-top: 10rem;
  }

  .recruit_fv .container .wrap01 .ttl_h1 {
    font-size: 1.9rem;
  }

  .recruit_fv .container .wrap01 .ttl_h1 b {
    font-size: 1.6rem;
  }

  .recruit_fv .container .wrap01 .eng {
    bottom: -.3rem;
    font-size: 8rem;
    left: 0rem;
  }
}

/* ---------------------------------------------------------------------------
// recruit_sec01
--------------------------------------------------------------------------- */
.recruit_sec01 {
  position: relative;
}

.recruit_sec01 .container .wrap01 {
  padding: 6rem 0 10rem;
  text-align: center;
}

.recruit_sec01 .container .wrap01 .p01 {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 2;
}

.recruit_sec01 .container .wrap01 .p01 strong {
  color: #2f51af;
  display: block;
  font-size: 3.2rem;
  font-weight: 700;
  line-height: normal;
  margin: 3rem 0;
}

.recruit_sec01 .container .wrap02 {
  padding: 0 0 32rem;
  text-align: center;
}

.recruit_sec01 .container .wrap02 .head {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.recruit_sec01 .container .wrap02 .head .ttl_h2 {
  align-items: center;
  display: flex;
  flex-direction: column;
  height: 41rem;
  justify-content: center;
  order: 2;
  position: relative;
  width: 41rem;
}

.recruit_sec01 .container .wrap02 .ttl_h2 .eng {
  color: #2f51af;
  font-family: Figtree;
  font-size: 9.6rem;
  font-weight: 500;
  letter-spacing: calc(-1em * (4.8 / 96));
  line-height: .9;
  position: relative;
  z-index: 3;
}

.recruit_sec01 .container .wrap02 .ttl_h2 .eng strong {
  color: #80ccff;
}

.recruit_sec01 .container .wrap02 .ttl_h2 .jp {
  font-size: 2rem;
  font-weight: 700;
  margin-top: 1rem;
  position: relative;
  z-index: 3;
}

.recruit_sec01 .deco_circle {
  background-image: url(../img/recruit/01_circle.png);
  height: 100%;
  top: 0;
  width: 100%;
}

.recruit_sec01 .deco_circle .ball {
  height: 5.8rem;
  top: -2.9rem;
  width: 5.8rem;
}

.recruit_sec01 .container .wrap02 .head .img {
  width: 29.2rem;
}

.recruit_sec01 .container .wrap02 .head .img01 {
  order: 1;
}

.recruit_sec01 .container .wrap02 .head .img02 {
  order: 3;
}

.recruit_sec01 .container .wrap02 .head .img img {
  aspect-ratio: 292/361;
  border-radius: 20px;
}

.recruit_sec01 .container .wrap02 .head .img span {
  display: block;
  font-size: 1.6rem;
  font-weight: 700;
  margin-top: 1.4rem;
}

.recruit_sec01 .container .wrap02 .btns {
  display: flex;
  flex-wrap: wrap;
  gap: 1.3rem;
  margin-top: 6rem;
}

.recruit_sec01 .container .wrap02 .btns .btn {
  align-items: center;
  background: #fff;
  border: solid 1px #96b8da;
  border-radius: 5px;
  box-shadow: 0 .4rem .4rem rgba(0, 0, 0, .2);
  color: #2f51af;
  display: flex;
  flex-direction: column;
  font-size: 1.8rem;
  font-weight: 500;
  height: 4.7rem;
  justify-content: center;
  overflow: hidden;
  position: relative;
  width: calc((100% - 3.9rem) / 4);
}

.recruit_sec01 .container .wrap02 .btns .btn:has(.num) {
  height: 9.8rem;
  width: calc((100% - 2.6rem) / 3);
}

.recruit_sec01 .container .wrap02 .btns .btn::before {
  background: linear-gradient(90deg, #2f51af 0%, #6787de 100%);
  content: '';
  height: 100%;
  left: 0;
  opacity: 0;
  position: absolute;
  top: 0;
  transition: .3s;
  width: 100%;
}

.recruit_sec01 .container .wrap02 .btns .btn:hover:before {
  opacity: 1;
}

.recruit_sec01 .container .wrap02 .btns .btn span {
  position: relative;
  transition: .2s;
  z-index: 2;
}

.recruit_sec01 .container .wrap02 .btns .btn:hover span {
  color: #fff;
}

.recruit_sec01 .container .wrap02 .btns .btn .num {
  font-family: Figtree;
  font-size: 3.6rem;
  letter-spacing: calc(-1em * (1.8 / 36));
}

@media screen and (max-width:768px) {
  .recruit_sec01 .container .wrap01 {
    padding: 6rem 2rem;
    text-align: center;
  }

  .recruit_sec01 .container .wrap01 .p01 {
    font-size: 1.4rem;
  }

  .recruit_sec01 .container .wrap01 .p01 strong {
    font-size: 2rem;
    margin: 2rem 0;
  }

  .recruit_sec01 .container .wrap02 {
    padding: 0 2rem 20rem;
  }

  .recruit_sec01 .container .wrap02 .head {
    flex-direction: column;
  }

  .recruit_sec01 .container .wrap02 .head .ttl_h2 {
    height: 33rem;
    justify-content: stretch;
    order: -1;
    padding-top: 7rem;
    width: 33rem;
  }

  .recruit_sec01 .container .wrap02 .ttl_h2 .eng {
    font-size: 4rem;
  }

  .recruit_sec01 .container .wrap02 .ttl_h2 .jp {
    font-size: 1.6rem;
    margin-top: 1rem;
  }

  .recruit_sec01 .deco_circle .ball {
    height: 4rem;
    top: -2rem;
    width: 4rem;
  }

  .recruit_sec01 .container .wrap02 .head .img {
    position: relative;
    width: 100%;
    z-index: 3;
  }

  .recruit_sec01 .container .wrap02 .head .img01 {
    left: -4rem;
    margin-top: -9rem;
  }

  .recruit_sec01 .container .wrap02 .head .img02 {
    margin-top: 3rem;
    right: -4rem;
  }

  .recruit_sec01 .container .wrap02 .head .img img {
    aspect-ratio: 1/1;
  }

  .recruit_sec01 .container .wrap02 .head .img span {
    margin-top: 1rem;
  }

  .recruit_sec01 .container .wrap02 .btns {
    gap: 1rem;
  }

  .recruit_sec01 .container .wrap02 .btns .btn {
    font-size: 1.6rem;
    width: calc((100% - 1rem) / 2);
  }

  .recruit_sec01 .container .wrap02 .btns .btn:has(.num) {
    height: 7rem;
    width: 100%;
  }

  .recruit_sec01 .container .wrap02 .btns .btn .num {
    font-size: 3rem;
    line-height: .8;
  }
}

/* ---------------------------------------------------------------------------
//  recruit_head
--------------------------------------------------------------------------- */
.recruit_head {
  display: flex;
  gap: 2.3rem;
}

.recruit_head .ttl_h2 {
  align-items: center;
  color: #2f51af;
  display: flex;
  flex-direction: column;
  text-align: center;
  width: 13.8rem;
}

.recruit_head .ttl_h2 .num {
  border-bottom: solid 4px;
  font-family: Figtree;
  font-size: 12.4rem;
  font-weight: 500;
  letter-spacing: calc(-1em * (6.2 / 124));
  line-height: .8;
  padding-bottom: 1rem;
  white-space: nowrap;
}

.recruit_head .ttl_h2 .jp {
  font-size: 1.8rem;
  font-weight: 700;
  margin-top: 1rem;
}

.recruit_head .eng {
  color: #2f51af;
  font-family: Figtree;
  font-size: 9.6rem;
  font-weight: 500;
  line-height: .8;
  ;
}

.recruit_head .eng strong {
  color: #80ccff;
}

@media screen and (max-width:768px) {
  .recruit_head {
    align-items: center;
    flex-direction: column;
    gap: 1rem;
    padding: 0 2rem;
  }

  .recruit_head .ttl_h2 {
    align-items: center;
    color: #2f51af;
    display: flex;
    flex-direction: column;
    text-align: center;
    width: 100%;
  }

  .recruit_head .ttl_h2 .num {
    border-bottom: solid 2px;
    font-size: 8rem;
    padding-bottom: .5rem;
    width: 100%;
    width: 9rem;
  }

  .recruit_head .ttl_h2 .jp {
    margin-top: .5rem;
  }

  .recruit_head .eng {
    font-size: 4rem;
    line-height: 1;
    text-align: center;
  }

  .recruit_head .eng strong {
    color: #80ccff;
  }
}

/* ---------------------------------------------------------------------------
// recruit_sec02
--------------------------------------------------------------------------- */
.recruit_sec02 {
  position: relative;
}

.recruit_sec02 .container {
  padding: 0 0 32rem;
}

.recruit_sec02 .container .wrap01 {
  position: relative;
}

.recruit_sec02 .container .wrap01 .recruit_head {
  margin-top: -20rem;
}

.recruit_sec02 .container .wrap01 .categories {
  display: flex;
  gap: 4rem;
  margin-top: 9rem;
}

.recruit_sec02 .container .wrap01 .categories .category {
  background: #fff;
  border: solid 1px #2f51af;
  border-radius: 20px;
  padding: 8.5rem 4rem 4rem;
  position: relative;
  width: calc((100% - 4rem) / 2);
}

.recruit_sec02 .container .wrap01 .categories .category::before {
  background-image: url(../img/recruit/02_icon01.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  content: '';
  height: 5.2rem;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: 2.4rem;
  width: 6.1rem;
}

.recruit_sec02 .container .wrap01 .categories .category dt {
  align-items: center;
  border-bottom: solid 2px #2f51af;
  color: #2f51af;
  display: flex;
  flex-direction: column;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.7;
  margin-bottom: 1rem;
  padding-bottom: 1rem;
}

.recruit_sec02 .container .wrap01 .categories .category dt small {
  font-size: 1.8rem;
}

.recruit_sec02 .container .wrap01 .categories .category dd {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 2;
}

.recruit_sec02 .container .wrap01 .chart {
  margin-top: 10rem;
  position: relative;
}

.recruit_sec02 .container .wrap01 .chart .ttl_h3 {
  color: #2f51af;
  font-size: 2rem;
  font-weight: 700;
}

@media screen and (max-width:768px) {
  .recruit_sec02 .container {
    padding: 0 2rem 16rem;
  }

  .recruit_sec02 .container .wrap01 .recruit_head {
    margin-top: -8rem;
  }

  .recruit_sec02 .container .wrap01 .categories {
    flex-direction: column;
    gap: 3rem;
    margin-top: 6rem;
  }

  .recruit_sec02 .container .wrap01 .categories .category {
    padding: 6.5rem 2rem 2rem;
    width: 100%;
  }

  .recruit_sec02 .container .wrap01 .categories .category::before {
    height: 4rem;
    top: 1.6rem;
    width: 5rem;
  }

  .recruit_sec02 .container .wrap01 .categories .category dt {
    border-bottom: solid 1px #2f51af;
    font-size: 1.8rem;
  }

  .recruit_sec02 .container .wrap01 .categories .category dt small {
    font-size: 1.6rem;
  }

  .recruit_sec02 .container .wrap01 .categories .category dd {
    font-size: 1.4rem;
  }

  .recruit_sec02 .container .wrap01 .chart {
    margin-top: 6rem;
  }

  .recruit_sec02 .container .wrap01 .chart .ttl_h3 {
    margin-bottom: 3rem;
    text-align: center;
  }

  .recruit_sec02 .container .wrap01 .chart .img {
    left: -2rem;
    padding: 0 2rem;
    position: relative;
    width: calc(100% + 4rem);
  }

  .recruit_sec02 .container .wrap01 .chart .img img {
    max-width: inherit;
    width: 60rem;
  }
}

/* ---------------------------------------------------------------------------
// recruit_sec03
--------------------------------------------------------------------------- */
.recruit_sec03 {
  position: relative;
}

.recruit_sec03 .container {
  padding: 0 0 32rem;
}

.recruit_sec03 .container .wrap01 {
  position: relative;
}

.recruit_sec03 .container .wrap01 .recruit_head {
  margin-top: -20rem;
}

.recruit_sec03 .container .wrap02 {
  margin-top: 5rem;
  position: relative;
}

.recruit_sec03 .container .wrap02 .ttl_h3 {
  color: #2f51af;
  font-size: 3.2rem;
  font-weight: 700;
  left: 0;
  position: absolute;
  top: 2rem;
}

.recruit_sec03 .container .wrap02 .points {
  height: 100rem;
  position: relative;
  width: 94.8rem;
}

.recruit_sec03 .container .wrap02 .points .deco {
  border-radius: 100%;
  bottom: 0;
  height: 37rem;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: 0;
  width: 37rem;
}

.recruit_sec03 .container .wrap02 .points .deco::before {
  animation: rotate-deco 4s linear infinite;
  background: linear-gradient(rgba(66, 243, 130, 1), rgba(22, 107, 236, 1));
  border-radius: 100%;
  bottom: 0;
  content: '';
  filter: blur(11.199999809265137px);
  height: 37rem;
  left: 0;
  margin: auto;
  opacity: .73;
  position: absolute;
  right: 0;
  top: 0;
  width: 37rem;
}

.recruit_sec03 .container .wrap02 .points .deco img {
  border-radius: 100%;
  bottom: 0;
  height: 32.4rem;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: 0;
  width: 32.4rem;
}

.recruit_sec03 .container .wrap02 .points ul li dl {
  align-items: center;
  background: rgba(255, 255, 255, .3);
  border: solid 1px #80ccff;
  border-radius: 100%;
  display: flex;
  flex-direction: column;
  height: 32.4rem;
  padding: 2rem;
  position: absolute;
  width: 32.4rem;
  z-index: 2;
}

.recruit_sec03 .container .wrap02 .points ul li dl dt {
  align-items: center;
  border-bottom: solid 2px #80ccff;
  display: flex;
  flex-direction: column;
  height: 53%;
  justify-content: flex-end;
  padding-bottom: 1rem;
  text-align: center;
  width: 100%;
}

.recruit_sec03 .container .wrap02 .points ul li dl dt .icon {
  align-items: center;
  display: flex;
  height: 6.15rem;
  justify-content: center;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: 3rem;
  width: 6.8rem;
}

.recruit_sec03 .container .wrap02 .points ul li dl dt .icon::before {
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  content: '';
}

.recruit_sec03 .container .wrap02 .points ul li dl dt span {
  color: #2f51af;
  font-size: 2rem;
  font-weight: 700;
}

.recruit_sec03 .container .wrap02 .points ul li dl dt span small {
  font-size: 1.8rem;
}

.recruit_sec03 .container .wrap02 .points ul li dl dd {
  font-size: 1.6rem;
  font-weight: 500;
  height: 47%;
  line-height: 1.62;
  /* width: 22rem; */
  padding-top: 1rem;
  text-align: center;
}

.recruit_sec03 .container .wrap02 .points ul li:nth-of-type(1) dl {
  left: 0;
  margin: auto;
  right: 0;
  top: 0;
}

.recruit_sec03 .container .wrap02 .points ul li:nth-of-type(1) dl dt .icon::before {
  background-image: url(../img/recruit/03_icon01.svg);
  height: 5.9rem;
  width: 4.7rem;
}

.recruit_sec03 .container .wrap02 .points ul li:nth-of-type(2) dl {
  right: 0;
  top: 16.2rem;
}

.recruit_sec03 .container .wrap02 .points ul li:nth-of-type(2) dl dt .icon::before {
  background-image: url(../img/recruit/03_icon02.svg);
  height: 4.5rem;
  width: 6.8rem;
}

.recruit_sec03 .container .wrap02 .points ul li:nth-of-type(3) dl {
  bottom: 16.2rem;
  right: 0;
}

.recruit_sec03 .container .wrap02 .points ul li:nth-of-type(3) dl dt .icon::before {
  background-image: url(../img/recruit/03_icon03.svg);
  height: 5rem;
  width: 6.1rem;
}

.recruit_sec03 .container .wrap02 .points ul li:nth-of-type(4) dl {
  bottom: 0;
  left: 0;
  margin: auto;
  right: 0;
}

.recruit_sec03 .container .wrap02 .points ul li:nth-of-type(4) dl dt .icon::before {
  background-image: url(../img/recruit/03_icon04.svg);
  height: 6.2rem;
  width: 5.6rem;
}

.recruit_sec03 .container .wrap02 .points ul li:nth-of-type(5) dl {
  bottom: 16.2rem;
  left: 0;
}

.recruit_sec03 .container .wrap02 .points ul li:nth-of-type(5) dl dt .icon::before {
  background-image: url(../img/recruit/03_icon05.svg);
  height: 5.7rem;
  width: 5.7rem;
}

.recruit_sec03 .container .wrap02 .points ul li:nth-of-type(6) dl {
  left: 0;
  top: 16.2rem;
}

.recruit_sec03 .container .wrap02 .points ul li:nth-of-type(6) dl dt .icon::before {
  background-image: url(../img/recruit/03_icon06.svg);
  height: 5.2rem;
  width: 5.7rem;
}

.recruit_sec03 .container .wrap03 {
  margin-top: 9rem;
  position: relative;
}

.recruit_sec03 .container .wrap03 .ttl_h3 {
  color: #2f51af;
  font-size: 3.2rem;
  font-weight: 700;
  padding-bottom: 1rem;
}

.recruit_sec03 .container .wrap03 .points {
  border-top: solid 1px #2f51af;
  display: flex;
  gap: 6rem;
}

.recruit_sec03 .container .wrap03 .points .txts {
  margin-top: 4rem;
  width: 44.5rem;
}

.recruit_sec03 .container .wrap03 .points .txts ul li+li {
  margin-top: 3rem;
}

.recruit_sec03 .container .wrap03 .points .txts ul li dl dt {
  border: solid 1px;
  color: #2f51af;
  font-size: 2rem;
  font-weight: 700;
  padding: 1rem;
}

.recruit_sec03 .container .wrap03 .points .txts ul li dl dd {
  font-size: 1.6rem;
  line-height: 1.62;
  margin-top: 1rem;
}

.recruit_sec03 .container .wrap03 .points .imgs {
  position: relative;
  width: calc(100% - 50.5rem);
}

.recruit_sec03 .container .wrap03 .points .imgs .img {
  border-radius: 20px;
  overflow: hidden;
  position: absolute;
}

.recruit_sec03 .container .wrap03 .points .imgs .img01 {
  animation: float_x 6s ease-in-out infinite alternate;
  animation-delay: -1.5s;
  animation-duration: 7.5s;
  aspect-ratio: 391/386;
  left: 6rem;
  top: -11.8rem;
  width: 39.1rem;
}

.recruit_sec03 .container .wrap03 .points .imgs .img02 {
  animation: float_y 6s ease-in-out infinite alternate;
  animation-delay: -4.2s;
  aspect-ratio: 269/265;
  right: 0;
  top: 29rem;
  width: 26.9rem;
}

.recruit_sec03 .container .wrap03 .points .imgs .img03 {
  animation: float_x 6s ease-in-out infinite alternate;
  animation-delay: -4.2s;
  aspect-ratio: 279/328;
  left: 0;
  top: 43.5rem;
  width: 27.9rem;
}

@media screen and (max-width:768px) {
  .recruit_sec03 .container {
    padding: 0 2rem 16rem;
  }

  .recruit_sec03 .container .wrap01 .recruit_head {
    margin-top: -8rem;
  }

  .recruit_sec03 .container .wrap02 {
    margin-top: 4rem;
  }

  .recruit_sec03 .container .wrap02 .ttl_h3 {
    font-size: 2rem;
    margin-bottom: 4rem;
    position: static;
    text-align: center;
  }

  .recruit_sec03 .container .wrap02 .points {
    height: auto;
    width: 100%;
  }

  .recruit_sec03 .container .wrap02 .points .deco {
    height: 29rem;
    margin-bottom: 4rem;
    position: relative;
    width: 29rem;
  }

  .recruit_sec03 .container .wrap02 .points .deco::before {
    height: 95%;
    width: 95%;
  }

  .recruit_sec03 .container .wrap02 .points .deco img {
    height: 25rem;
    width: 25rem;
  }

  .recruit_sec03 .container .wrap02 .points ul li {
    margin-top: 2rem;
  }

  .recruit_sec03 .container .wrap02 .points ul li dl {
    bottom: 0 !important;
    height: 27rem;
    left: 0 !important;
    margin: auto;
    position: relative;
    right: 0 !important;
    top: 0 !important;
    width: 27rem;
    z-index: 2;
  }

  .recruit_sec03 .container .wrap02 .points ul li dl dt .icon {
    top: 1.5rem;
  }

  .recruit_sec03 .container .wrap02 .points ul li dl dt span {
    font-size: 1.8rem;
  }

  .recruit_sec03 .container .wrap02 .points ul li dl dt span small {
    font-size: 1.6rem;
  }

  .recruit_sec03 .container .wrap02 .points ul li dl dd {
    font-size: 1.4rem;
  }

  .recruit_sec03 .container .wrap03 {
    margin-top: 6rem;
    position: relative;
  }

  .recruit_sec03 .container .wrap03 .ttl_h3 {
    font-size: 2rem;
    text-align: center;
  }

  .recruit_sec03 .container .wrap03 .points {
    flex-direction: column;
    gap: 6rem;
  }

  .recruit_sec03 .container .wrap03 .points .txts {
    margin-top: 3rem;
    width: 100%;
  }

  .recruit_sec03 .container .wrap03 .points .txts ul li+li {
    margin-top: 2em;
  }

  .recruit_sec03 .container .wrap03 .points .txts ul li dl dt {
    font-size: 1.8rem;
  }

  .recruit_sec03 .container .wrap03 .points .txts ul li dl dd {
    font-size: 1.4rem;
  }

  .recruit_sec03 .container .wrap03 .points .imgs {
    position: relative;
    width: 100%;
  }

  .recruit_sec03 .container .wrap03 .points .imgs .img {
    margin: 1rem;
    position: relative;
  }

  .recruit_sec03 .container .wrap03 .points .imgs .img01 {
    left: 6rem;
    top: 0;
    width: 30rem;
  }

  .recruit_sec03 .container .wrap03 .points .imgs .img02 {
    animation: float_x 6s ease-in-out infinite alternate;
    right: -1rem;
    top: 0;
    width: 20rem;
  }

  .recruit_sec03 .container .wrap03 .points .imgs .img03 {
    left: -1rem;
    top: 0;
    width: 25rem;
  }
}

/* ---------------------------------------------------------------------------
// recruit_sec04
--------------------------------------------------------------------------- */
.recruit_sec04 {
  position: relative;
}

.recruit_sec04 .container {
  padding: 0;
}

.recruit_sec04 .container .wrap01 {
  position: relative;
}

.recruit_sec04 .container .wrap01 .recruit_head {
  margin-top: -20rem;
}

.recruit_sec04 .container .tab_contents {
  margin-top: 7rem;
  position: relative;
}

.recruit_sec04 .container .tab_contents .tab_btns {
  display: flex;
  justify-content: center;
}

.recruit_sec04 .container .tab_contents .tab_btns .btn {
  border-bottom: solid 2px #2f51af;
  display: flex;
  flex-direction: column;
  padding: 0 2.7rem 6.8rem;
  padding-bottom: 6.8rem;
  position: relative;
  text-align: center;
  transition: .3s;
  width: calc((100% - 34.5rem) / 2);
}

.recruit_sec04 .container .tab_contents .tab_btns .btn.active {
  border-color: #fff;
}

.recruit_sec04 .container .tab_contents .tab_btns .btn01 {
  align-items: flex-end;
}

.recruit_sec04 .container .tab_contents .tab_btns .btn02 {
  width: 34.5rem;
}

.recruit_sec04 .container .tab_contents .tab_btns .btn03 {
  align-items: flex-start;
}

.recruit_sec04 .container .tab_contents .tab_btns .btn .inner {
  position: relative;
  width: 29.1rem;
}

.recruit_sec04 .container .tab_contents .tab_btns .btn .inner::after {
  background-image: url(../img/common/arrow01.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  bottom: -5rem;
  content: '';
  height: 3rem;
  left: 0;
  margin: auto;
  opacity: 0;
  position: absolute;
  right: 0;
  transition: .3s;
  width: 4.8rem;
}

.recruit_sec04 .container .tab_contents .tab_btns .btn.active .inner::after {
  opacity: 1;
}

.recruit_sec04 .container .tab_contents .tab_btns .btn dl dt {
  color: #2f51af;
  font-size: 3.2rem;
  font-weight: 700;
}

.recruit_sec04 .container .tab_contents .tab_btns .btn dl dt small {
  font-size: 2rem;
}

.recruit_sec04 .container .tab_contents .tab_btns .btn dl dd {
  font-size: 1.6rem;
  font-weight: 500;
  height: 8.5rem;
  line-height: 1.62;
}

.recruit_sec04 .container .tab_contents .tab_btns .btn .img {
  aspect-ratio: 1/1;
  border-radius: 100%;
  margin-top: 2.5rem;
  position: relative;
  width: 100%;
}

.recruit_sec04 .container .tab_contents .tab_btns .btn .img::before,
.recruit_sec04 .container .tab_contents .tab_btns .btn .img::after {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  border-radius: 100%;
  content: '';
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  transition: .3s;
  width: 100%;
}

.recruit_sec04 .container .tab_contents .tab_btns .btn .img::before {
  border: solid 3px #fff;
}

.recruit_sec04 .container .tab_contents .tab_btns .btn .img::after {
  border: solid 3px #2f51af;
  opacity: 0;
}

.recruit_sec04 .container .tab_contents .tab_btns .btn:hover .img::before,
.recruit_sec04 .container .tab_contents .tab_btns .btn.active .img::before {
  opacity: 0;
}

.recruit_sec04 .container .tab_contents .tab_btns .btn:hover .img::after,
.recruit_sec04 .container .tab_contents .tab_btns .btn.active .img::after {
  opacity: 1;
}

.recruit_sec04 .container .tab_contents .tab_btns .btn01 .img::before {
  background-image: url(../img/recruit/tab_img01_01.jpg);
}

.recruit_sec04 .container .tab_contents .tab_btns .btn01 .img::after {
  background-image: url(../img/recruit/tab_img01_02.jpg);
}

.recruit_sec04 .container .tab_contents .tab_btns .btn02 .img::before {
  background-image: url(../img/recruit/tab_img02_01.jpg);
}

.recruit_sec04 .container .tab_contents .tab_btns .btn02 .img::after {
  background-image: url(../img/recruit/tab_img02_02.jpg);
}

.recruit_sec04 .container .tab_contents .tab_btns .btn03 .img::before {
  background-image: url(../img/recruit/tab_img03_01.jpg);
}

.recruit_sec04 .container .tab_contents .tab_btns .btn03 .img::after {
  background-image: url(../img/recruit/tab_img03_02.jpg);
}

.recruit_sec04 .container .tab_contents .tab_boxs {
  padding: 13rem 0 22rem;
  position: relative;
}

.recruit_sec04 .container .tab_contents .tab_boxs .movie {
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}

.recruit_sec04 .container .tab_contents .tab_boxs .movie video {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.recruit_sec04 .container .tab_contents .tab_boxs .deco_circle {
  right: -40rem;
  top: 10rem;
  zoom: .6;
}

.recruit_sec04 .container .tab_contents .tab_boxs .box {
  display: none;
  position: relative;
  z-index: 2;
}

.recruit_sec04 .container .tab_contents .tab_boxs .box.active {
  display: block;
}

.recruit_sec04 .container .tab_contents .tab_boxs .box .ttl_h3 {
  color: #2f51af;
  font-size: 3.2rem;
  font-weight: 700;
  text-align: center;
}

.recruit_sec04 .container .tab_contents .tab_boxs .box .ttl_h3 strong {
  font-size: 4.2rem;
}

.recruit_sec04 .container .tab_contents .tab_boxs .box .row {
  display: flex;
  flex-direction: row-reverse;
  gap: 6.6rem;
  margin-top: 10rem;
}

.recruit_sec04 .container .tab_contents .tab_boxs .box .row:nth-of-type(even) {
  flex-direction: row;
}

.recruit_sec04 .container .tab_contents .tab_boxs .box .row .txts {
  width: calc((100% - 6.6rem) / 2);
}

.recruit_sec04 .container .tab_contents .tab_boxs .box .row .txts dt {
  background: #a5dbff;
  font-size: 2rem;
  font-weight: 500;
  margin-bottom: 2rem;
  padding: 1rem;
}

.recruit_sec04 .container .tab_contents .tab_boxs .box .row .txts dd {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 2;
  text-align: justify;
}

.recruit_sec04 .container .tab_contents .tab_boxs .box .row .img {
  border-radius: 20px;
  overflow: hidden;
  width: calc((100% - 6.6rem) / 2);
}

@media screen and (max-width:768px) {
  .recruit_sec04 .container {
    padding: 0 2rem 9rem;
  }

  .recruit_sec04 .container .wrap01 .recruit_head {
    margin-top: -8rem;
  }

  .recruit_sec04 .container .tab_contents {
    margin-top: 5rem;
  }

  .recruit_sec04 .container .tab_contents .tab_btns {
    flex-direction: column;
    gap: 6rem;
  }

  .recruit_sec04 .container .tab_contents .tab_btns .btn {
    align-items: center !important;
    border-bottom: none !important;
    padding: 0;
    padding-bottom: 0;
    width: 100% !important;
  }

  .recruit_sec04 .container .tab_contents .tab_btns .btn .inner {
    align-items: center;
    display: flex;
    flex-direction: column;
    width: 100%;
  }

  .recruit_sec04 .container .tab_contents .tab_btns .btn .inner::after {
    display: none;
  }

  .recruit_sec04 .container .tab_contents .tab_btns .btn dl dt {
    font-size: 3rem;
  }

  .recruit_sec04 .container .tab_contents .tab_btns .btn dl dd {
    height: auto;
  }

  .recruit_sec04 .container .tab_contents .tab_btns .btn .img {
    border-radius: 20px;
    left: -4rem;
    margin-bottom: 2rem;
    margin-top: 2rem;
    position: relative;
    width: 100%;
  }

  .recruit_sec04 .container .tab_contents .tab_btns .btn02 .img {
    left: auto;
    right: -4rem;
  }

  .recruit_sec04 .container .tab_contents .tab_btns .btn .img::before,
  .recruit_sec04 .container .tab_contents .tab_btns .btn .img::after {
    border: none !important;
    border-radius: 20px;
  }

  .recruit_sec04 .container .tab_contents .tab_btns .btn:hover .img::before,
  .recruit_sec04 .container .tab_contents .tab_btns .btn.active .img::before {
    opacity: 1 !important;
  }

  .recruit_sec04 .container .tab_contents .tab_btns .btn:hover .img::after,
  .recruit_sec04 .container .tab_contents .tab_btns .btn.active .img::after {
    opacity: 0 !important;
  }

  .recruit_sec04 .container .tab_contents .tab_boxs {
    background: rgba(0, 0, 0, .8);
    /* 背景を暗く */
    display: none;
    /* 初期状態は非表示 */
    height: 100%;
    left: 0;
    overflow-y: auto;
    /* コンテンツが長い場合にスクロール可能に */
    padding: 1rem 1rem;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 9999;
  }

  .recruit_sec04 .container .tab_contents .tab_boxs .close {
    align-items: center;
    background: #2f51af;
    border-radius: 100%;
    color: #fff;
    content: '×';
    display: flex;
    font-size: 2.5rem;
    height: 4rem;
    justify-content: center;
    mix-blend-mode: multiply;
    padding-bottom: .2rem;
    position: fixed;
    right: 1rem;
    right: 2rem;
    top: 1rem;
    top: 2rem;
    width: 4rem;
    z-index: 10000;
  }

  .recruit_sec04 .container .tab_contents .tab_boxs .movie {
    display: none;
  }

  .recruit_sec04 .container .tab_contents .tab_boxs .deco_circle {
    display: none;
  }

  .recruit_sec04 .container .tab_contents .tab_boxs .box {
    background: #fff;
    border-radius: 20px;
    margin: 0 auto;
    padding: 8rem 1rem;
    position: relative;
  }

  .recruit_sec04 .container .tab_contents .tab_boxs .box .ttl_h3 {
    font-size: 1.6rem;
  }

  .recruit_sec04 .container .tab_contents .tab_boxs .box .ttl_h3 strong {
    font-size: 2rem;
  }

  .recruit_sec04 .container .tab_contents .tab_boxs .box .row {
    display: block;
    margin-top: 5rem;
  }

  .recruit_sec04 .container .tab_contents .tab_boxs .box .row .txts {
    width: 100%;
  }

  .recruit_sec04 .container .tab_contents .tab_boxs .box .row .txts dt {
    font-size: 1.6rem;
    margin-bottom: 1rem;
  }

  .recruit_sec04 .container .tab_contents .tab_boxs .box .row .txts dd {
    font-size: 1.4rem;
  }

  .recruit_sec04 .container .tab_contents .tab_boxs .box .row .img {
    margin-top: 2rem;
    width: 100%;
  }
}

/* ---------------------------------------------------------------------------
// recruit_sec05
--------------------------------------------------------------------------- */
.recruit_sec05 {
  position: relative;
}

.recruit_sec05 .container {
  padding: 12rem 0 16rem;
}

.recruit_sec05 .container .wrap {
  position: relative;
}

.recruit_sec05 .container .wrap+.wrap {
  margin-top: 8rem;
}

.recruit_sec05 .container .wrap .ttl_h2 {
  background: #2f51af;
  color: #fff;
  font-size: 3.2rem;
  font-weight: 700;
  margin-bottom: 4rem;
  padding: 1rem;
  text-align: center;
}

.recruit_sec05 .container .wrap01 .contents {
  display: flex;
  gap: 8rem;
  justify-content: center;
}

.recruit_sec05 .container .wrap01 .contents ul li {
  display: flex;
  font-size: 1.6rem;
  font-weight: 500;
}

.recruit_sec05 .container .wrap01 .contents ul li::before {
  content: '・';
  flex-shrink: 0;
  font-feature-settings: normal;
}

.recruit_sec05 .container .wrap01 .contents ul li+li {
  margin-top: 1rem;
}

.recruit_sec05 .container .wrap02 .contents>dl {
  border-bottom: solid 1px #cbd0d1;
  display: flex;
  gap: 8rem;
  padding: 2rem;
}

.recruit_sec05 .container .wrap02 .contents>dl:first-of-type {
  border-top: solid 1px #cbd0d1;
}

.recruit_sec05 .container .wrap02 .contents>dl>dt {
  display: flex;
  justify-content: space-between;
  white-space: nowrap;
  width: 6.4rem;
}

.recruit_sec05 .container .wrap02 .contents>dl>dd {
  line-height: 1.75;
  width: calc(100% - 14.4rem);
}

.recruit_sec05 .container .wrap02 .contents>dl>dd>dl {
  display: flex;
  gap: 4rem;
}
.recruit_sec05 .container .wrap02 .contents>dl>dd>dl>dt{
  width: 7rem;
  white-space: nowrap;
}

.recruit_sec05 .container .wrap02 .contents>dl>dd>dl>dd>dl {
  display: flex;
}

.recruit_sec05 .container .wrap02 .contents>dl>dd>dl>dd>dl dt {
  white-space: nowrap;
  width: 11rem;
}

.recruit_sec05 .container .wrap02 .contents>dl>dd li {
  display: flex;
}

.recruit_sec05 .container .wrap02 .contents>dl>dd li::before {
  content: '・';
  flex-shrink: 0;
  font-feature-settings: normal;
}

.recruit_sec05 .container .wrap03 .faq {
  background: #fff;
  border-radius: 20px;
  overflow: hidden;
}

.recruit_sec05 .container .wrap03 .faq+.faq {
  margin-top: 2rem;
}

.recruit_sec05 .container .wrap03 .faq dt {
  display: flex;
  font-size: 1.8rem;
  font-weight: 500;
  padding: 3rem;
}

.recruit_sec05 .container .wrap03 .faq dd {
  border-top: 1px solid #dfe7f0;
  display: flex;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 2;
  padding: 3rem;
}

.recruit_sec05 .container .wrap03 .faq .eng {
  color: #2f51af;
  font-size: 1.8rem;
  position: relative;
  width: 4.3rem;
}

.recruit_sec05 .container .wrap03 .faq dt .eng {
  top: 0;
}

.recruit_sec05 .container .wrap03 .faq dd .eng {
  top: -.2rem;
}

.recruit_sec05 .container .wrap03 .faq .txt {
  width: calc(100% - 4.3rem);
}

.recruit_sec05 .container .wrap03 .faq a {
  color: #2f51af;
  text-decoration: underline;
}

.recruit_sec05 .container .wrap03 .faq a:hover {
  opacity: .7;
}

@media screen and (max-width:768px) {
  .recruit_sec05 {
    position: relative;
  }

  .recruit_sec05 .container {
    padding: 0rem 2rem 12rem;
  }

  .recruit_sec05 .container .wrap+.wrap {
    margin-top: 6rem;
  }

  .recruit_sec05 .container .wrap .ttl_h2 {
    font-size: 2rem;
    margin-bottom: 3rem;
  }

  .recruit_sec05 .container .wrap01 .contents {
    display: block;
  }

  .recruit_sec05 .container .wrap01 .contents ul li {
    font-size: 1.4rem;
    margin-top: 1rem;
    white-space: nowrap;
  }

  .recruit_sec05 .container .wrap01 .contents ul li+li {
    margin-top: 1rem;
  }

  .recruit_sec05 .container .wrap02 .contents>dl {
    display: block;
    padding: 2rem 0;
  }

  .recruit_sec05 .container .wrap02 .contents>dl>dt {
    font-size: 1.4rem;
    font-weight: 700;
    margin-bottom: 1rem;
    width: 5.5rem;
  }

  .recruit_sec05 .container .wrap02 .contents>dl>dd {
    font-size: 1.4rem;
    line-height: 1.62;
    width: 100%;
  }

  .recruit_sec05 .container .wrap02 .contents>dl>dd>dl {
    display: block;
    gap: 4rem;
  }

  .recruit_sec05 .container .wrap02 .contents>dl>dd>dl>dt {
    font-weight: 700;
    width: 100%;
  }
  .recruit_sec05 .container .wrap02 .contents>dl>dd>dl+dl>dt{
    margin-top: 1rem;
  }

  .recruit_sec05 .container .wrap03 .faq dt {
    font-size: 1.4rem;
    padding: 2rem 2rem 1rem;
  }

  .recruit_sec05 .container .wrap03 .faq dd {
    font-size: 1.4rem;
    padding: 1rem 2rem 2rem;
    text-align: justify;
  }

  .recruit_sec05 .container .wrap03 .faq .eng {
    font-size: 1.6rem;
    width: 3.1rem;
  }

  .recruit_sec05 .container .wrap03 .faq dt .eng {
    top: -.2rem;
  }

  .recruit_sec05 .container .wrap03 .faq .txt {
    width: calc(100% - 3.1rem);
  }

  .recruit_sec05 .container .wrap03 .faq dd .eng {
    display: none;
  }

  .recruit_sec05 .container .wrap03 .faq dd .txt {
    width: 100%;
  }
}

/* ---------------------------------------------------------------------------
//  entry_sec00
--------------------------------------------------------------------------- */
.entry_sec00 {
  background: linear-gradient(90deg, #2f51af 20.14%, #4690ff 100%);
  border-radius: 40px 40px 0 0;
  color: #fff;
  margin-top: -40px;
  position: relative;
  z-index: 2;
}

.entry_sec00 .container {
  padding: 12rem 2rem calc(12rem + 40px);
  position: relative;
}

.entry_sec00 .container .ttl_h2 {
  align-items: center;
  display: flex;
  flex-direction: column;
  margin-bottom: 3rem;
}

.entry_sec00 .container .ttl_h2 .eng {
  font-family: Figtree;
  font-size: 12.4rem;
  font-weight: 500;
  letter-spacing: calc(-1em * (6.2 / 124));
  line-height: .8;
  position: relative;
}

.entry_sec00 .container .ttl_h2 .jp {
  font-size: 2rem;
  font-weight: 700;
  margin-top: 3rem;
}

.entry_sec00 .container .wrap01 {
  align-items: center;
  display: flex;
  flex-direction: column;
}

.entry_sec00 .container .wrap01 .btnA a {
  background: #80ccff;
  border: solid 1px #fff;
  color: #2f51af;
  justify-content: center;
  margin-top: 2rem;
  padding: 0;
  width: 29.5rem;
}

.entry_sec00 .container .wrap01 .btnA a::before {
  background: linear-gradient(90deg, #80ccff 0%, #fff 100%);
}

@media screen and (max-width:768px) {
  .entry_sec00 {
    border-radius: 20px 20px 0 0;
    margin-top: -20px;
  }

  .entry_sec00 .container {
    padding: 9rem 2rem calc(9rem + 20px);
  }

  .entry_sec00 .container .ttl_h2 .eng {
    font-size: 4rem;
  }

  .entry_sec00 .container .ttl_h2 .jp {
    font-size: 2.4rem;
    font-weight: 700;
    margin-top: 1rem;
  }

  .entry_sec00 .container .wrap01 .right .btnA a {
    margin: 2rem auto 0;
    width: 25.5rem;
  }
}

/* ---------------------------------------------------------------------------
//  PC/SP
--------------------------------------------------------------------------- */
.forSP {
  display: none;
}

@media screen and (max-width:768px) {
  .forSP {
    display: block;
  }

  .forPC {
    display: none;
  }
}