@charset "UTF-8";
/*
Theme Name: 有限会社フジ空調テーマ
Theme URI: https://fuji-kucho-co.com/
Description: 有限会社フジ空調
Version: 1.0.0
Author: 有限会社フジ空調
*/

main {
  background-color: #fff;
}

.bg_color01 {
  background-color: #0056A1;
}

.bg_color02 {
  background-color: #ED4000;
}

.bg_color03 {
  background-color: #0EA74C;
}

.bg_color04 {
  background-color: #8452D8;
}

.t_font01 {
  font-family: "Zen Kaku Gothic New", sans-serif;
}

.t_font02 {
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
}

.w-content {
  padding-left: 20px;
  padding-right: 20px;
}

.w-1440 {
  margin-left: auto;
  margin-right: auto;
  max-width: 1440px;
  width: 100%;
}

.w-1100 {
  margin-left: auto;
  margin-right: auto;
  max-width: 1100px;
  width: 100%;
}

@media screen and (min-width:768px) {
  .spver {
    display: none;
  }
}

@media screen and (max-width:767px) {
  .pcver {
    display: none;
  }
}

@media screen and (min-width:768px) {
  a:hover {
    opacity: .7;
  }
}

/* Loading */
.loading {
  width: 100%;
  height: 100vh;
  /* 方眼（グリッド）の背景 */
  background-color: #0056A1;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.1) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.1) 1px, transparent 1px),
    linear-gradient(180deg, #0056A1 0%, #2769A2 100%);
  background-size:
    30px 30px,
    30px 30px,
    cover;

  position: fixed;
  z-index: 999;
  top: 0;
}

.loading_inner {
  max-width: 800px;
  width: 90%;
  margin: 0 auto;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  overflow: hidden;
}

.loading_box {
  transition: 0.4s;
  text-align: center;
}

body.is-show .loading_box {
  transform: translateY(0.625em);
}

.loading_logo {
  width: 50%;
  margin: 0 auto 20px;
  max-width: 66px;
}

.loading_logotxt {
  font-size: 24px;
  color: #fff;
}

.loading_bar {
  display: block;
  width: 0%;
  height: 8px;
  background: linear-gradient(90deg, #FFEDE8 0%, #FFD210 100%);
  margin: 50px 0;
}

.loading_txt {
  font-size: 32px;
  line-height: 1.25;
  color: #fff;
}

@media only screen and (max-width:768px) {
  .loading_inner {
    width: 88vw;
  }

  .loading_bar {
    margin: 1.75em 0 2em;
  }
}

/* Scroll Animetion */
.js-fade {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 1.2s ease-out, transform 1.2s ease-out;
  will-change: opacity, transform;
}

body.is-show .js-fade.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.delay-100 {
  transition-delay: 0.1s;
}

.delay-200 {
  transition-delay: 0.2s;
}

.delay-300 {
  transition-delay: 0.3s;
}

.delay-400 {
  transition-delay: 0.4s;
}

.delay-500 {
  transition-delay: 0.5s;
}

.delay-600 {
  transition-delay: 0.6s;
}

/* header */
.header_box {
  transition: all .4s ease-out;
}

.nav_unshown {
  display: none;
}

@media screen and (min-width: 1250px) {
  header {
    width: 100%;
    position: fixed;
    top: 0;
    z-index: 100;
  }

  header .header_box div.logo a:hover {
    opacity: 0.7;
  }

  header .header_box .header_nav,
  header .header_box .header_nav nav {
    height: 100%;
  }

  .header_nav nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
  }

  /* ナビゲーション配置 */
  .header_nav nav .nav_left a {
    display: block;
    width: 200px;
    height: 200px;
    padding: 35px 28px 0;
    border: 2px solid #000;
    border-radius: 0 0 20px 0;
    background-color: #fff;
    filter: drop-shadow(0 4px 4px rgba(0, 0, 0, 0.25));
  }

  #nav_drawer,
  header .sp_header_logo,
  header .sp_header_tel {
    display: none;
  }

  header .header_box {
    width: 100%;
  }

  .header_nav nav .nav_right {
    width: auto;
    border-radius: 50px;
    background-color: #fff;
    filter: drop-shadow(0 4px 4px rgba(0, 0, 0, 0.25));
    display: flex;
    align-items: center;
    gap: 50px;
    padding: 10px 10px 10px 50px;
    margin-right: 20px;
    margin-bottom: 30px;
  }

  .header_nav nav .nav_right ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 30px;
    text-align: center;
  }

  .header_nav nav .nav_right ul li {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
  }

  .header_nav nav .nav_right ul li a {
    font-weight: 700;
  }

  .header_nav nav .nav_right ul li a:hover {
    opacity: 1;
  }

  .header_nav nav .nav_right ul.link_texts li a:hover {
    color: #0056A1;
    opacity: 1;
  }

  .header_nav nav .nav_right ul.link_btns {
    gap: 10px;
  }

  .header_box>div nav li.recruit,
  .header_box>div nav li.mail {
    width: 200px;
  }

  .header_box>div nav li.recruit a,
  .header_box>div nav li.mail a {
    width: 100%;
    height: 60px;
    color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 9px;
    background-color: #000;
    border: 2px solid #000;
    border-radius: 40px;
  }

  .header_box>div nav li.recruit a {
    background-color: #8452D8;
  }

  .header_box>div nav li.mail a {
    background-color: #ED4000;
  }

  .header_box>div nav li.recruit a:hover,
  .header_box>div nav li.mail a:hover {
    background-color: #fff;
  }

  .header_box>div nav li.recruit a:hover {
    color: #8452D8;
  }

  .header_box>div nav li.mail a:hover {
    color: #ED4000;
  }

  .header_box>div nav li.recruit svg,
  .header_box>div nav li.mail svg {
    height: auto;
    display: block;
  }

  .header_box>div nav li.recruit svg path,
  .header_box>div nav li.mail svg path {
    transition: .4s;
  }

  .header_box>div nav li.recruit .icon svg {
    width: 24px;
  }

  .header_box>div nav li.mail .icon svg {
    width: 36px;
  }

  .header_box>div nav li.recruit a:hover .icon svg path {
    fill: #8452D8 !important;
  }

  .header_box>div nav li.mail a:hover .icon svg path {
    fill: #ED4000 !important;
  }

  .header_box>div nav li.recruit a:hover .arrow svg path {
    stroke: #8452D8 !important;
  }

  .header_box>div nav li.mail a:hover .arrow svg path {
    stroke: #ED4000 !important;
  }
}

@media screen and (max-width: 1249px) {
  header {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    padding: 0 10px;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 100;
  }

  .header_box {
    display: flex;
    align-items: center;
    position: fixed;
    top: 0;
    width: 100%;
    left: 0;
  }

  header .sp_header_logo a {
    display: block;
    width: 80px;
    height: 80px;
    padding: 14px 12px 0;
    border-radius: 0 0 8px 0;
    background-color: #fff;
    filter: drop-shadow(0 4px 4px rgba(0, 0, 0, 0.25));
  }

  header .sp_header_tel {
    position: absolute;
    right: 64px;
    display: flex;
    flex-wrap: wrap;
    gap: 0 5px;
  }

  header .sp_header_tel a img {
    width: 36px;
  }

  .overflow__hidden header {
    transition: all 0s;
  }

  .overflow__hidden header .sp_header_logo {
    display: none;
  }

  /* ドロワーメニュー */
  div.header_nav {
    display: none;
  }

  #nav_drawer {
    display: inherit;
  }

  header div#nav_drawer nav {
    height: 100vh;
    position: fixed;
    padding: 60px 20px 30px;
    z-index: 100;
  }

  header #nav_drawer nav ul li {
    padding: 0;
    text-align: left;
  }

  header #nav_drawer nav ul.nav_content_top li a {
    display: block;
    padding: 10px;
    font-size: 0.875rem;
    line-height: 40px;
    position: relative;
    border-bottom: 1px solid #fff;
    color: #fff;
  }

  header #nav_drawer nav ul.nav_content_top li:last-child a {
    border-bottom: 0;
  }

  /* メニューの矢印アイコン */
  header #nav_drawer nav ul.nav_content_top li a::after {
    content: "";
    background-image: url("./images/icon_arrow_menu.png");
    width: 7px;
    height: 11px;
    background-size: cover;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 6px;
  }

  /* ハンバーガーボタン(開閉ボタン) */
  #nav_open {
    background-color: #0056A1;
    border: 2px solid #fff;
    border-radius: 50%;
    position: fixed;
    z-index: 1000;
    top: 15px;
    right: 8px;
    display: inline-block;
    width: 42px;
    height: 42px;
    cursor: pointer;
  }

  #nav_open span,
  #nav_open span::before,
  #nav_open span::after {
    position: absolute;
    display: block;
    height: 2px;
    border-radius: 3px;
    background: #fff;
    content: "";
  }

  #nav_open span {
    top: 12px;
    right: 7.5px;
    width: 27px;
  }

  #nav_open span::before {
    top: 8px;
    width: 20px;
  }

  #nav_open span::after {
    top: 17px;
    width: 12px;
  }

  /* ボタンアクティブ時(×印) */
  #nav_content {
    position: fixed;
    z-index: 99;
    top: 0;
    left: 0;
    overflow-y: auto;
    width: 100%;
    max-width: 100%;
    height: 100vh;
    text-align: center;
    pointer-events: none;
    -webkit-overflow-scrolling: touch;
    -webkit-transition: all .2s;
    transition: all .2s;
    opacity: 0;

    background-color: #0056A1;
    background-image: linear-gradient(rgba(255, 255, 255, 0.1) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.1) 1px, transparent 1px);
    background-size: 30px 30px, 30px 30px;
  }

  #nav_content ul {
    margin: auto;
  }

  #nav_content li {
    padding: 10px;
    text-align: center;
    display: block;
  }

  #nav_content.active {
    opacity: 1;
    pointer-events: auto;
    overflow: scroll;
  }

  #nav_open.active {
    background-color: transparent;
    border-color: transparent;
  }

  #nav_open.active span {
    transform: rotate(45deg);
    width: 28px;
    top: 25px;
    right: 16px;
    transition: transform 1s;
    background: #fff;
  }

  #nav_open.active span::before {
    background: #fff;
    transform: rotate(90deg);
    top: 0px;
    width: 28px;
  }

  #nav_open.active span::after {
    content: none;
    opacity: 0;
  }

  /* 下部リンクボタン */
  #nav_content ul.sp_link_button {
    margin: 20px auto 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 25px 0;
    justify-content: flex-start;
  }

  #nav_content ul.sp_link_button li {
    width: 100%;
    max-width: 400px;
    margin: 0 auto;
  }

  .sp_link_button li {
    width: 200px;
  }

  .sp_link_button li a {
    width: 100%;
    height: 60px;
    color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 9px;
    background-color: #000;
    border: 2px solid #000;
    border-radius: 40px;
    box-shadow: 0 4px 0 0 #fff, 0 7px 0 0 #000, 0 10px 0 0 #fff, 0 13px 0 0 #000;
  }

  .sp_link_button li.line a {
    background-color: #0EA74C;
  }

  .sp_link_button li.recruit a {
    background-color: #8452D8;
  }

  .sp_link_button li.mail a {
    background-color: #ED4000;
  }

  .sp_link_button li a:hover {
    opacity: 1;
    box-shadow: 0 0 0 0 transparent;
    transform: translateY(13px);
  }

  .sp_link_button li svg {
    height: auto;
    display: block;
  }

  .sp_link_button li.line .icon svg {
    width: 40px;
  }

  .sp_link_button li.recruit .icon svg {
    width: 24px;
  }

  .sp_link_button li.mail .icon svg {
    width: 36px;
  }
}

/* ボタン */
.formbtn {
  text-align: center;
  position: relative;
}

div.button_section {
  width: 100%;
  max-width: 320px;
  margin-left: auto;
  margin-right: auto;
}

.more_btn,
.formbtn .wpcf7-submit,
.formbtn .wpcf7-previous {
  cursor: pointer;
  font-size: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: #FFD210;
  color: #000;
  text-decoration: none;
  padding: 15px;
  border-radius: 50px;
  position: relative;
  width: 100%;
  max-width: 400px;
  font-family: "Noto Sans JP", sans-serif;
  transition: .4s;
  border: 2px solid #000;
  box-shadow: 0 4px 0 0 #fff, 0 7px 0 0 #000, 0 10px 0 0 #fff, 0 13px 0 0 #000;
}

.more_btn_icon {
  width: 20px;
  height: 20px;
  background-color: transparent;
  position: absolute;
  top: 50%;
  right: 25px;
  transform: translateY(-50%);
}

.more_btn_icon::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 30%;
  width: 10px;
  height: 10px;
  border-top: 2px solid #000;
  border-right: 2px solid #000;
  transform: translateY(-50%) rotate(45deg);
  transition: 0.3s;
}

.formbtn::before {
  width: 20px;
  height: 20px;
  background-color: transparent;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  right: 5.4%;
  transform: translateY(-50%);
  content: '';
  display: block;
  z-index: 1;

  display: none;
}

.formbtn::after {
  content: '';
  display: block;
  position: absolute;
  top: 50%;
  right: 9.5%;
  width: 10px;
  height: 10px;
  border-top: 2px solid #000;
  border-right: 2px solid #000;
  transform: translateY(-50%) rotate(45deg);
  transition: 0.3s;
  z-index: 1;

  display: none;
}

.formbtn.prev::before {
  left: 5.4%;
}

.formbtn.prev::after {
  left: 9.5%;
  transform: translateY(-50%) rotate(225deg);
}


.more_btn:hover,
.formbtn .wpcf7-submit:not(:disabled):hover,
.formbtn .wpcf7-previous:not(:disabled):hover {
  opacity: 1;
  box-shadow: 0 0 0 0 transparent;
  transform: translateY(13px);
}

.formbtn .wpcf7-submit:disabled,
.formbtn .wpcf7-previous:disabled {
  opacity: 0.7;
}


.back_singlelists .more_btn,
.formbtn .wpcf7-submit {
  background-color: #ED4000;
  color: #fff;
  font-weight: 700;
}

.back_singlelists .more_btn_icon {
  display: none;
}


/* TOP */

/* --- FV（背景系）基本設定 --- */
.fv {
  background-color: #FFD210;
  background-image:
    repeating-linear-gradient(-45deg, transparent, transparent 10px,
      rgba(255, 255, 255, 0.1) 10px,
      rgba(255, 255, 255, 0.1) 11px);

  width: 100vw;
  height: 100vh;
  height: 100svh;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  /* text画像がはみ出すため */
}

/* 3つの円を管理する親要素 */
.fv-circle {
  position: relative;
  /* .fv-circle-out（1100px）を基準にする */
  width: 1100px;
  max-width: calc(100vw - 40px);
  /* 画面端から20pxずつの余白 */
  aspect-ratio: 1 / 1;
}

/* 共通設定：中身のdivをすべて中央に重ねる */
.fv-circle>div {
  position: absolute;
  top: 50%;
  left: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
}

/* 共通設定：中の画像は親要素いっぱいに広げる */
.fv-circle img {
  width: 100%;
  height: auto;
  display: block;
}

/* 各要素のサイズ比率 (基準の1100pxに対する割合) */

.fv-circle-text {
  /* 1440 / 1100 ≒ 130.9% */
  width: calc(1440 / 1100 * 100%);
  z-index: 1;

  mix-blend-mode: overlay;
}

.fv-circle-out {
  /* 1100 / 1100 = 100% */
  width: 100%;
  z-index: 2;
}

.fv-circle-in {
  /* 700 / 1100 ≒ 63.6% */
  width: calc(700 / 1100 * 100%);
  z-index: 3;
}

/* --- FV（背景系）ロード完了時のアニメ --- */

/* --- 初期状態 --- */
.fv-circle-text,
.fv-circle-out {
  transform: translate(-50%, -50%) scale(1.6);
  transition: transform 0.6s cubic-bezier(0.19, 1, 0.22, 1);
  will-change: transform;
}

.fv-circle-in {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(-180deg);
  /* 少し遅れて、かつゆっくり出現させる */
  transition: transform 1.2s cubic-bezier(0.19, 1, 0.22, 1), opacity 0.8s ease;
  transition-delay: 0.4s;
  will-change: transform, opacity;
}

/* --- .is-fin 付与後の実行状態 --- */
body.is-fin .fv-circle-text,
body.is-fin .fv-circle-out {
  transform: translate(-50%, -50%) scale(1);
}

body.is-fin .fv-circle-in {
  opacity: 1;
  transform: translate(-50%, -50%) rotate(0deg);
}

/* --- FV（背景系）ロードアニメ完了後、ループアニメーションの定義 --- */

/* 時計回りに1回転 */
@keyframes loop-rotation {
  from {
    transform: rotate(0deg);
  }

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

/* 鼓動のような拡大縮小 */
@keyframes loop-pulse {

  0%,
  100% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.03);
  }
}

/* --- アニメーションの適用 --- */

/* 
 * body.is-fin がついてからアニメーションを開始させることで、
 * 読み込み中（非表示時）の無駄なレンダリング負荷を抑えます。
 */

body.is-fin .fv-circle-text img {
  /* 20秒かけてゆっくり1回転（時間は好みで調整してください） */
  animation: loop-rotation 90s linear infinite;
}

body.is-fin .fv-circle-in img {
  /* 
   * 読み込みアニメが終わるタイミング（約1.6s後）から開始させると
   * 動きの繋がりがよりスムーズになります。
   */
  animation: loop-pulse 4s ease-in-out infinite;
  animation-delay: 1.6s;
}


/* --- 変数定義 --- */
:root {
  --ease-out-back: cubic-bezier(0.175, 0.885, 0.32, 1.275);
  --ease-out-expo: cubic-bezier(0.19, 1, 0.22, 1);
}

/* --- レイアウト基盤 --- */
.fv-content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 100%;
  z-index: 10;
  pointer-events: none;
  overflow: hidden;
}

/* 背景円と同じレスポンシブ挙動を適用 */
.fv-inner {
  position: relative;
  width: 1100px;
  height: 100%;
  margin: 0 auto;
  max-width: calc(100vw - 40px);
}

/* 画像共通設定 */
.fv-inner img {
  width: 100%;
  height: auto;
  display: block;
}

.fv-inner>div {
  position: absolute;
  will-change: transform, opacity;
}

/* --- FV（コンテンツ）各パーツの配置 --- */

.fv-text {
  width: 610px;
  top: 53%;
  left: 49%;
  transform: translate(-50%, -50%);
  z-index: 5;
}

.unit-male-group {
  width: 560px;
  top: -20px;
  right: -280px;
  z-index: 4;
}

.unit-female {
  width: 380px;
  top: 250px;
  left: -370px;
  z-index: 6;
}

.unit-airmaster {
  width: 270px;
  top: 15%;
  left: -3%;
  z-index: 3;
}

.fv-badges {
  bottom: 2%;
  left: -250px;
  display: flex;
  gap: 0;
  z-index: 7;
}

.badge-item {
  width: 200px;
  position: relative !important;
}

/* 装飾パーツ（適宜配置） */
.gear-purple {
  width: 130px;
  top: 3%;
  left: -12%;
}

.gear-purple02 {
  width: 95px;
  bottom: 18%;
  right: -30%;
}

.gear-yellow {
  width: 120px;
  bottom: 30%;
  left: 20%;
}

.gear-red {
  width: 150px;
  bottom: 22%;
  right: -27%;
}

.star-blue-l {
  width: 75px;
  top: 23%;
  left: -33%;
}

.star-yellow-c {
  width: 70px;
  top: 27%;
  right: 18%;
}

.star-yellow {
  width: 45px;
  top: 12%;
  left: 25%;
}

.star-red {
  width: 40px;
  bottom: 62%;
  right: -21%;
}

.wrench-green {
  width: 160px;
  bottom: 40%;
  right: -30%;
}

/* --- アニメーション：初期状態 --- */

.fv-text {
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.8);
}

.unit-male-group {
  opacity: 0;
  transform: translateX(100px);
}

.unit-female {
  opacity: 0;
  transform: translateY(50px);
}

.unit-airmaster {
  opacity: 0;
  transform: scale(0);
}

.badge-item {
  opacity: 0;
  transform: scale(0.5);
}

.decor-item {
  opacity: 0;
  transform: scale(0);
}

/* --- アニメーション：出現演出 (body.is-fin) --- */

body.is-fin .fv-text {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
  transition: transform 0.8s var(--ease-out-back) 0.6s, opacity 0.6s ease 0.6s;
}

body.is-fin .unit-male-group {
  opacity: 1;
  transform: translateX(0);
  transition: transform 1.2s var(--ease-out-expo) 0.8s, opacity 1s ease 0.8s;
}

body.is-fin .unit-female {
  opacity: 1;
  transform: translateY(0);
  transition: transform 0.8s var(--ease-out-back) 1.0s, opacity 0.6s ease 1.0s;
}

body.is-fin .unit-airmaster {
  opacity: 1;
  transform: scale(1);
  transition: transform 0.6s var(--ease-out-back) 1.2s, opacity 0.4s ease 1.2s;
}

/* バッジの時間差ポップ */
body.is-fin .badge-item:nth-child(1) {
  opacity: 1;
  transform: scale(1);
  transition: all 0.5s var(--ease-out-back) 1.4s;
}

body.is-fin .badge-item:nth-child(2) {
  opacity: 1;
  transform: scale(1);
  transition: all 0.5s var(--ease-out-back) 1.5s;
}

body.is-fin .badge-item:nth-child(3) {
  opacity: 1;
  transform: scale(1);
  transition: all 0.5s var(--ease-out-back) 1.6s;
}

/* 装飾パーツの一斉出現 */
body.is-fin .decor-item {
  opacity: 1;
  transform: scale(1);
  transition: all 0.6s var(--ease-out-back) 1.8s;
}

/* --- アニメーション：ループ演出 --- */

@keyframes loop-float {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-10px);
  }
}

@keyframes loop-vibe {

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

  50% {
    transform: rotate(3deg);
  }
}

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

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

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

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

/* ループ適用 */

body.is-fin .unit-airmaster img,
body.is-fin .wrench-green img {
  animation: loop-vibe 1s ease-in-out infinite;
}

body.is-fin .gear-purple img,
body.is-fin .gear-purple02 img,
body.is-fin .gear-yellow img {
  animation: loop-rotate-cw 15s linear infinite;
}

body.is-fin .gear-red img {
  animation: loop-rotate-ccw 10s linear infinite;
}

body.is-fin .badge-item img {
  animation: loop-float 5s ease-in-out infinite;
}

/* トップキャラ揺らし共通 */
.vibe-icon img {
  animation: loop-vibe 1s ease-in-out infinite;
}

/* --- top-message Section --- */

.top-message {
  background-color: #0056A1;
  overflow: hidden;
  padding: 0 70px;
}

.top-message__outer_left {
  font-size: 48px;
  position: absolute;
  left: -60px;
  bottom: 0;
  writing-mode: sideways-lr;
  white-space: nowrap;
  overflow: hidden;
  line-height: 1;
  display: flex;
  gap: 0.5em;
  animation: textDown 50s linear infinite;
}

.top-message__outer_right {
  font-size: 48px;
  position: absolute;
  right: -60px;
  top: 0;
  writing-mode: sideways-rl;
  white-space: nowrap;
  overflow: hidden;
  line-height: 1;
  display: flex;
  gap: 0.5em;
  animation: textUp 50s linear infinite;
}

@keyframes textDown {
  0% {
    transform: translateY(0);
  }

  100% {
    transform: translateY(50%);
  }
}

@keyframes textUp {
  0% {
    transform: translateY(0);
  }

  100% {
    transform: translateY(-50%);
  }
}


/* 外枠のオレンジボーダー（リピートテキスト背景を想定） */
.top-message__outer-border {
  width: 100%;
  max-width: 1760px;
  margin: 0 auto;
  background-color: #ED4000;
  padding: 40px;
  position: relative;
}

/* 内側のメインエリア（グリッド背景） */
.top-message__inner {
  background-color: #fff;
  background-image:
    linear-gradient(#e5e5e5 1px, transparent 1px),
    linear-gradient(90deg, #e5e5e5 1px, transparent 1px);
  background-size: 30px 30px;
  /* 方眼のサイズ */
  padding: 100px 0;
}

.top-message__container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
}

/* テキストエリア */
.top-message__content {
  flex: 1;
}

.top-message__heading {
  margin-bottom: 30px;
}

.top-message__title {
  font-size: 96px;
  color: #2769A2;
  line-height: 1;
  margin: 0;
  -webkit-text-stroke: 1px #000;
  text-shadow: 10px 10px 0 #000;
}

.top-message__subtitle {
  font-size: 32px;
  margin-top: 5px;
}

.top-message__main-copy {
  font-size: 48px;
  line-height: 1.5;
  margin-bottom: 20px;
}

.top-message__description p {
  font-size: 20px;
  max-width: 542px;
}

.top-message__chara {
  width: 320px;
  position: absolute;
  left: 5%;
  bottom: 20%;
}

/* ボタン */
.top-message__btn-wrapper {
  position: absolute;
  width: 400px;
  left: -120px;
  bottom: 30px;
}

/* 画像エリア */
.top-message__visual {
  flex: 1;
  text-align: right;
  position: relative;
  padding-left: 40px;
}


/* --- top-service Section --- */
.top-service {
  padding: 150px 0;
  background-color: #8452D8;
  background-image: url("./images/f-bg_service.png");
  background-repeat: repeat;
  background-size: 100% auto;
  position: relative;
  overflow: hidden;
}

/* タイトルエリア */
.top-service__header {
  display: flex;
  justify-content: center;
  margin-bottom: 70px;
}

.top-service__title-wrapper {
  position: relative;
}

.top-service__icon01 {
  width: 200px;
  position: absolute;
  left: -220px;
  top: 40%;
  transform: translateY(-50%);
}

.top-service__title-group {
  text-align: center;
}

/* 2x2 グリッド */
.top-service__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 50px;
  margin-bottom: 100px;
  position: relative;
}

/* カードのデザイン */
.top-service__card {
  background: #fff;
  filter: drop-shadow(5px 5px 0 #000);
  border-radius: 10px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.top-service__card-img {
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

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

.top-service__card-body {
  padding: 30px;
}

.top-service__card-title {
  font-size: 32px;
  margin-bottom: 30px;
  display: flex;
  align-items: center;
  gap: 30px;
  line-height: 1;
}

.top-service__card-title span {
  font-size: 48px;
}

.top-service__card-text {
  letter-spacing: 0.06em;
}

.top-service__icon02 {
  position: absolute;
  width: 300px;
  bottom: -240px;
  right: -265px;
}

/* ボタン */
.top-service__btn-wrapper {
  text-align: center;
}

/* --- top-feature Section --- */

.top-feature {
  padding: 100px 0 140px;
  background-color: #0EA74C;
  /* 白の斜線ストライプ */
  background-image: repeating-linear-gradient(-45deg,
      transparent,
      transparent 10px,
      rgba(255, 255, 255, 0.1) 10px,
      rgba(255, 255, 255, 0.1) 11px);
}

/* タイトルエリア */
.top-feature__header {
  text-align: center;
  margin-bottom: 50px;
  position: relative;
}

.top-feature__icon01 {
  width: 310px;
  position: absolute;
  top: 20px;
  left: -150px;
  z-index: 5;
}

.top-feature__icon02 {
  width: 160px;
  position: absolute;
  bottom: -70px;
  right: -70px;
  z-index: 5;
}

/* コンテンツボックス */
.top-feature__lists {
  width: 100%;
  padding-bottom: 15px;
  position: relative;
}

.top-feature__lists [class*="cont-"] {
  position: -webkit-sticky;
  position: sticky;
  box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.15);
}

.top-feature__lists .cont-01 {
  top: 167.5px;
  margin-bottom: -25px;
}

.top-feature__lists .cont-02 {
  top: 192.5px;
  margin-bottom: -18.75px;
  margin-top: 150px;
}

.top-feature__lists .cont-03 {
  top: 217.5px;
  margin-bottom: -12.5px;
  margin-top: 125px;
}

.top-feature__box {
  background: #fff;
  border: 3px solid #000;
  border-radius: 10px;
  position: relative;
  overflow: hidden;
}

.top-feature__container {
  display: flex;
  align-items: stretch;
}

/* 画像エリア */
.top-feature__visual {
  flex: 0 0 46%;
}

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

/* テキストエリア */
.top-feature__content {
  flex: 1;
  padding: 50px 70px 60px 80px;
  position: relative;
}

.top-feature__label {
  font-size: 24px;
  margin-bottom: 20px;
  line-height: 1.2;
}

.top-feature__label span {
  font-size: 64px;
  margin-left: 10px;
}

.top-feature__item-title {
  font-size: 32px;
  margin-bottom: 25px;
}


/* 右端のドット */
.top-feature__dots {
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.top-feature__dots span {
  width: 10px;
  height: 10px;
  background-color: #000;
  border-radius: 50%;
}

.top-feature__dots span.is-active {
  background-color: #ED4000;
}

/* ボタン（ボックスの下に重なる） */
.top-feature__btn-wrapper {
  position: absolute;
  bottom: -35px;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  text-align: center;
  z-index: 5;
}


/* --- top-recruit Section --- */

.top-recruit {
  background-image: url("./images/f-bg_joinus.png");
  background-repeat: no-repeat;
  background-size: 45% auto;
  background-position: left top;
  background-color: #ED4000;
  padding: 250px 0;
  overflow: hidden;
  position: relative;
}

/* 左側テキストコンテンツ */
.top-recruit__content {
  position: relative;
  z-index: 5;
}

.top-recruit__subtitle {
  color: #fff;
}

.top-recruit__main-copy {
  color: #fff;
  text-shadow: 5px 5px 0 #000;
  font-size: 48px;
  font-weight: 400;
  line-height: 1.5;
  margin: 40px 0 80px;
}

.top-recruit__icon01 {
  width: 85px;
  position: absolute;
  top: -60px;
  left: -20px;
}

.top-recruit__icon02 {
  width: 345px;
  position: absolute;
  bottom: -120px;
  left: 450px;
}


/* 右側ビジュアル（スライダー） */
.top-recruit__visual {
  width: 1040px;
  position: absolute;
  top: -100px;
  left: 60%;
  height: 140%;
}

/* スライダー全体を右斜めに傾ける */
.top-recruit__slider-container {
  display: flex;
  gap: 15px;
  transform: rotate(7deg);
  transform-origin: top;
}

.top-recruit__slider {
  display: flex;
  flex-direction: column;
  height: 140%;
  gap: 15px;
}

.top-recruit__slider img {
  width: 100%;
  height: auto;
  border: 2px solid #000;
  border-radius: 10px;
  box-sizing: border-box;
}

/* 左側：上から下へ流れる */
.top-recruit__slider.--down {
  animation: scrollDown 50s linear infinite;
}

@keyframes scrollDown {
  0% {
    transform: translateY(-50%);
  }

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

/* 右側：下から上へ流れる */
.top-recruit__slider.--up {
  animation: scrollUp 50s linear infinite;
}

@keyframes scrollUp {
  0% {
    transform: translateY(0);
  }

  100% {
    transform: translateY(-50%);
  }
}


.flow {
  position: relative;
}

.top-flow__icon01 {
  width: 120px;
  position: absolute;
  top: -110px;
  right: calc(50vw - 820px);
}

.flow_inner {
  display: flex;
  margin: 80px auto;
  gap: 50px;
}

.flow_header {
  width: 580px;
  flex-shrink: 0;
}

.flow_title {
  font-size: 48px;
  line-height: 1.5;
  color: #fff;
}

.flow_lead {
  margin-top: 50px;
  color: #fff;
}

.flow_btn_wrap {
  margin-top: 50px;
}

/* 無限ループマーキー (切れ目なし) */
.flow__marquee {
  width: 100%;
  overflow: hidden;
  padding-bottom: 100px;
}

.flow__marquee-inner {
  display: flex;
  width: fit-content;
  animation: marquee-loop 20s linear infinite;
}

.flow__marquee-inner span {
  display: block;
  font-size: 128px;
  color: #FFCB10;
  text-shadow: 10px 10px 0 #ED4000;
  -webkit-text-stroke: 2px #000;
  line-height: 1.2;
  letter-spacing: 0.1em;
  white-space: nowrap;
}

@keyframes marquee-loop {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-50%);
  }
}

@keyframes marquee-loop-rev {
  0% {
    transform: translateX(-50%);
  }

  100% {
    transform: translateX(0%);
  }
}

.top-blog {
  /* 方眼（グリッド）の背景 */
  background-color: #0056A1;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.1) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.1) 1px, transparent 1px);
  background-size:
    30px 30px,
    30px 30px;

  overflow: hidden;
  position: relative;
}

.top-blog__heading {
  position: relative;
  margin-bottom: 100px;
}

.top-blog__icon01 {
  width: 220px;
  position: absolute;
  top: -90px;
  left: 600px;
}

.blog {
  padding: 175px 0;
}

.sub-blog .blog {
  padding-top: 0;
  padding-bottom: 75px;
}

.blog_header {
  margin-bottom: 100px;
}

.blog_slider_container {
  width: 100%;
  margin-bottom: 100px;
}

.blog_swiper {
  padding-left: calc(50vw - 700px);
}

.blog_slide {
  width: 535px;
}

.blog_card {
  display: block;
}

.blog_img {
  margin: 0 0 15px;
  background-color: #fff;
  overflow: hidden;
}

.blog_img img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: .4s;
}

.blog_card:hover .blog_img img {
  transform: scale(1.1);
}

/* タグと日付 */
.blog_meta {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 10px;
}

.blog_tag {
  color: #fff;
  font-size: 20px;
  padding: 8px;
  line-height: 1;
  width: 155px;
  text-align: center;
  border-radius: 20px;
}

.blog_tag {
  background-color: #0056A1;
}

.blog_date {
  font-size: 16px;
  color: #fff;
}

.blog_item_title {
  font-size: 20px;
  line-height: 1.5;
  width: 100%;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  color: #fff;
  font-weight: 700;
}

.blog_controls_inner {
  max-width: 1440px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* カスタムスクロールバー */
.blog_scrollbar.swiper-scrollbar {
  position: relative;
  /* swiperのデフォルト絶対配置を解除 */
  flex-grow: 1;
  height: 10px;
  background-color: #fff;
  border-radius: 0;
  left: auto;
  bottom: auto;
  z-index: 5;
}

.blog_scrollbar .swiper-scrollbar-drag {
  background-color: #FFCB10;
  border-radius: 0;
}

.blog_btn {
  flex-shrink: 0;
  flex-basis: 400px;
}

@media screen and (max-width: 1440px) {
  .blog_swiper {
    padding-left: 20px;
  }
}

@media screen and (max-width: 768px) {
  .blog_slide {
    width: 280px;
  }

  .blog_controls_inner {
    flex-direction: column;
    align-items: stretch;
    gap: 30px;
  }
}


.faq {
  position: relative;
  padding: 80px 10px;
  background: #8452D8;
  overflow: hidden;
}

.faq_redbox {
  background-color: #ED4000;
  border: 2px solid #000;
  border-radius: 30px;
  max-width: 1760px;
  margin: 0 auto;
  padding: 50px;
  position: relative;
}

.faq_yellowbox {
  background-color: #FFDB3F;
  border: 2px solid #000;
  border-radius: 30px;
  padding: 150px 20px 100px;
}

.top-faq__heading {
  text-align: center;
  position: relative;
  margin-bottom: 50px;
}

.top-faq__icon01 {
  width: 55px;
  position: absolute;
  top: -20px;
  left: 280px;
}

.top-faq__icon02 {
  width: 85px;
  position: absolute;
  bottom: 50px;
  right: 230px;
}

.top-faq__icon03 {
  width: 310px;
  position: absolute;
  top: 23%;
  left: -20px;
}

.top-faq__icon04 {
  width: 310px;
  position: absolute;
  top: 50%;
  right: -20px;
}

.sub-faq .faq {
  background-color: #fff;
  padding: 0;
}

.faq_list {
  margin: 0 auto;
  display: grid;
  gap: 30px 0;
  grid-template-columns: 1fr;
  position: relative;
}

.faq_list_ttl {
  font-size: 24px;
  margin-top: 50px;
  margin-bottom: 10px;
}

.faq_list_ttl::after {
  content: "";
  display: block;
  width: 100px;
  height: 1px;
  background-color: #000;
}

.faq_list dl dt {
  position: relative;
  cursor: pointer;
  padding: 45px 70px 45px 35px;
}

.faq_list dl dt p:before {
  content: "Q";
  width: 44px;
  font-size: 20px;
  font-weight: 400;
  background-color: #0056A1;
  color: #fff;
  border-radius: 5px;
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  text-align: center;
  display: inline-block;
  position: absolute;
  left: -75px;
  top: 0;
}

.faq_list dl dt p,
.faq_list dl dd p {
  position: relative;
  margin-left: 75px;
}

.faq_list dl dt::before,
.faq_list dl dt::after {
  content: '';
  display: inline-block;
  position: absolute;
  right: 35px;
  width: 31px;
  height: 2px;
  background-color: #000;
  top: 50%;
  transform: translateY(-50%);
  transition: all .3s ease;
}

.faq_list dl dd p:before {
  content: "A";
  width: 44px;
  font-size: 20px;
  font-weight: 400;
  background-color: #ED4000;
  display: inline-block;
  margin-right: 30px;
  color: #fff;
  border-radius: 5px;
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  text-align: center;
  position: absolute;
  left: -75px;
  top: 0;
}

.faq_list dl dt p {
  font-weight: 700;
}

.faq_list dl dd {
  display: none;
  padding: 0 35px 45px;
}

.faq_list dl {
  background-color: #fff;
  margin: 0;
  border-radius: 10px;
  border: 2px solid #000;
  box-shadow: 5px 5px 0 0 #000;
}

.faq_list dl dt::after {
  transform: rotate(90deg) translateY(-50%);
}

.faq_list dl dt.active::before {
  transform: rotateZ(180deg) translateY(-50%);
  height: 2px;
}

.faq_list dl dt.active::after {
  transform: rotateZ(360deg) translateY(-50%);
  height: 0px;
}

.faq_btn_wrap {
  margin-top: 50px;
  text-align: center;
}

@media screen and (max-width:767px) {
  .faq_list {
    margin: 20px auto;
    display: grid;
    gap: 30px 0;
    grid-template-columns: 1fr;
  }

  .faq_list dl dt {
    position: relative;
    cursor: pointer;
    padding: 15px;
  }

  .faq_list dl dt p:before {
    content: "Q";
    padding: 4px 0;
    width: 40px;
    color: #fff;
    text-align: center;
    display: inline-block;
    position: absolute;
    left: -55px;
    top: 0;
  }

  .faq_list dl dt p,
  .faq_list dl dd p {
    position: relative;
    margin-left: 55px;
    padding-top: 4px;
    padding-right: 25px;
  }

  .faq_list dl dt::before,
  .faq_list dl dt::after {
    content: '';
    display: inline-block;
    position: absolute;
    right: 15px;
    width: 20px;
    height: 2px;
    background-color: #000;
    top: 50%;
    transform: translateY(-50%);
    transition: all .3s ease;
  }

  .faq_list dl dt::after {
    transform: rotate(90deg) translateY(-50%);
    top: 49.9%;
    right: 16px;
  }

  .faq_list dl dd p:before {
    content: "A";
    padding: 4px 0;
    width: 40px;
    display: inline-block;
    margin-right: 30px;
    color: #fff;
    text-align: center;
    position: absolute;
    left: -55px;
    top: 0;
  }

  .faq_list dl dd {
    display: none;
    padding: 0 15px 20px;
  }
}

/* --- top-company Section --- */

.top-company {
  position: relative;
  background-color: #fff;
  background-image:
    linear-gradient(#e5e5e5 1px, transparent 1px),
    linear-gradient(90deg, #e5e5e5 1px, transparent 1px);
  background-size: 30px 30px;

  overflow: hidden;
}

.top-company__bg-title.main_title_en {
  position: absolute;
  top: 40px;
  left: calc(50% - 1000px);
  font-size: 168px;
  color: #0EA74C;
  white-space: nowrap;
  z-index: 1;
  line-height: 1;
  pointer-events: none;
}

.top-company__container {
  display: flex;
  position: relative;
  z-index: 2;
  min-height: 600px;
}

.top-company__content {
  flex: 1;
  display: flex;
  padding-left: calc((100vw - 1440px) / 2);
  padding-top: 250px;
  position: relative;
}

.top-company__text-inner {
  max-width: 720px;
  padding: 20px;
}

.top-company__icon01 {
  width: 330px;
  position: absolute;
  top: 230px;
  right: -120px;
}

/* メインコピー */
.top-company__main-copy {
  font-size: 48px;
  line-height: 1.5;
  margin-bottom: 30px;
  position: relative;
}

/* 説明文 */
.top-company__description {
  font-size: 16px;
  margin-bottom: 50px;
  border-top: 3px solid #000;
  padding-top: 20px;
}

/* ボタン */
.top-company__btn-group {
  display: flex;
  flex-direction: column;
  gap: 30px;
}

/* 右側画像エリア */
.top-company__visual {
  flex-basis: 42%;
}

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

/* --- area Section --- */

.area {
  padding: 100px 0 150px;
  overflow: hidden;
}

.area__container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

/* 左側コンテンツ */
.area__content {
  flex-shrink: 0;
}

.area__heading {
  margin-bottom: 30px;
}

.area__title.main_title_en {
  font-size: 96px;
  color: #8452D8;
}

.area__main-copy {
  color: #FFCB10;
  text-shadow: 5px 5px 0 #000;
  -webkit-text-stroke: 1px #000;
  font-size: 32px;
  line-height: 1.5;
}

.area__note {
  font-size: 24px;
  line-height: 1.5;
}

.area__info-box {
  border: 2px solid #000;
  border-radius: 20px;
  padding: 15px 20px;
  background-color: #fff;
  max-width: 770px;
  margin-top: 30px;
}

.area__info-box p {
  word-break: keep-all;
  overflow-wrap: anywhere;
  text-align: justify;
}

/* 右側地図画像 */
.area__visual {
  flex: 1;
  text-align: right;
}

.area__visual img {
  max-width: 100%;
  height: auto;
}



footer {
  /* 方眼（グリッド）の背景 */
  background-color: #0056A1;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.1) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.1) 1px, transparent 1px),
    linear-gradient(180deg, #0056A1 0%, #2769A2 100%);
  background-size:
    30px 30px,
    30px 30px,
    cover;

  padding-bottom: 100px;
  border-radius: 50px 50px 0 0;
  border: 2px solid #000;
  margin-top: -50px;
  position: relative;
}

.footer_inner {
  max-width: 1100px;
  margin: 0 auto;
}

.footer_top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 100px;
  margin-bottom: 100px;
}

.footer_logo {
  margin-bottom: 25px;
}

.footer_logo img {
  width: 336px;
}

.footer_address p {
  text-transform: uppercase;
  font-weight: 700;
  color: #fff;
}

.footer_nav_list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 15px;
}

.footer_nav_list li a {
  display: inline-block;
  line-height: 1.5;
  font-weight: 700;
  color: #fff;
}

.footer_nav_list li a:hover {
  opacity: 1;
  color: #FFCB10;
}

.footer_bottom {
  text-align: center;
}

.footer_copyright {
  border-top: 8px dotted #fff;
  margin-top: 50px;
  padding-top: 30px;
  text-align: left;
  color: #fff;
}

.footer_sns {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-top: 25px;
}

.footer_pagetop {
  display: flex;
  align-items: center;
  text-decoration: none;
  margin-left: auto;
  color: #fff;
}

.footer_pagetop_text {
  font-size: 20px;
  margin-left: 10px;
}

.footer_pagetop_icon {
  width: 32px;
  height: 20px;
  position: relative;
}

.footer_pagetop_icon::after {
  content: "";
  position: absolute;
  top: 85%;
  left: 50%;
  width: 15px;
  height: 15px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translate(-50%, -50%) rotate(-45deg);
  transition: .4s;
}

.footer_pagetop:hover {
  opacity: 1;
  color: #FFCB10;
}

.footer_pagetop:hover .footer_pagetop_icon::after {
  border-color: #FFCB10;
}

@media screen and (max-width: 768px) {
  .footer_sns {
    flex-wrap: wrap;
    justify-content: center;
  }

  .footer_pagetop {
    margin-left: 0;
    width: 100%;
    justify-content: center;
    margin-top: 20px;
  }

  .footer_info {
    flex: 0 0 auto;
    margin-bottom: 40px;
  }

  .footer_nav {
    width: 100%;
  }

  .footer_nav_list {
    gap: 10px;
  }

  .footer_nav_list li a {
    padding: 10px 0;
    width: 100%;
  }
}

.cta_left-logo {
  filter: drop-shadow(2px 2px 0 #000);
  max-width: 370px;
  margin-bottom: 20px;
}

.cta_left-category_buttons {
  display: flex;
  gap: 20px;
  margin-bottom: 20px;
}

.cta_left-btn_green {
  border-radius: 40px;
  border: 2px solid #FFF;
  background: #0EA74C;
  font-size: 20px;
  font-weight: 700;
  color: #fff;
  padding: 5px 18px;
}

.cta_left-btn_purple {
  border-radius: 40px;
  border: 2px solid #FFF;
  background: #8452D8;
  font-size: 20px;
  font-weight: 700;
  color: #fff;
  padding: 5px 18px;
}

.cta_left-catch_copy_main {
  color: #ED4000;
  font-size: 32px;
  text-shadow: 2px 2px 0 #fff, -2px 2px 0 #fff, 2px -2px 0 #fff, -2px -2px 0 #fff, 2px 0px 0 #fff, -2px 0px 0 #fff, 0px 2px 0 #fff, 0px -2px 0 #fff;
}

.cta_left-catch_copy_sub {
  color: #ED4000;
  font-size: 24px;
  text-shadow: 2px 2px 0 #fff, -2px 2px 0 #fff, 2px -2px 0 #fff, -2px -2px 0 #fff, 2px 0px 0 #fff, -2px 0px 0 #fff, 0px 2px 0 #fff, 0px -2px 0 #fff;
  line-height: 1.4;
}


.cta_section {
  background-image: url("./images/f-bg_cta.jpg");
  background-position: center;
  background-size: cover;
  padding: 100px 0 150px;
  position: relative;
}

.cta_section::before {
  display: block;
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.3);
}

.cta_inner {
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-evenly;
  position: relative;
  z-index: 1;
}

.cta_content {
  text-align: center;
  max-width: 795px;
  border: 2px solid #000;
  box-shadow: 5px 5px 0 0 #000;
  width: 100%;
  border-radius: 0 50px;
  background-color: #fff;
}

.cta_lead {
  position: relative;
  padding: 15px 0;
}

.cta_lead_bg {
  display: inline-block;
  color: #FFF;
  text-align: center;
  font-size: 128px;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.05em;
  opacity: 0.3;
}

.cta_lead_main {
  text-align: center;
  font-size: 24px;
}

.cta_tel {
  position: relative;
  margin: 0 auto 25px;
  max-width: 700px;
}

.cta_tel_link {
  display: block;
  text-decoration: none;
  padding: 10px 20px;
  border-top: 3px solid #000;
  border-bottom: 3px solid #000;
}

.cta_tel_number {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  color: #000;
}

.cta_tel_img {
  max-width: 400px;
}

.cta_btns {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  justify-content: center;
  gap: 15px;
  max-width: 915px;
  margin: 0 auto;
  padding: 0 20px 50px;
}

.cta_btn_link {
  transition: .4s;
}

.cta_btn_link a {
  border-radius: 100px;
  overflow: hidden;
  border: 2px solid #000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 15px 20px;
  font-size: 22px;
  box-shadow: 0 4px 0 0 #fff,
    0 7px 0 0 #000,
    0 10px 0 0 #fff,
    0 13px 0 0 #000;
}

.cta_btn_link a:hover {
  opacity: 1;
  box-shadow: 0 0 0 0 transparent;
  transform: translateY(13px);
}

.cta_btn_icon {
  width: 35px;
  height: 35px;
  margin-right: 5px;
  display: flex;
  align-items: center;
  color: #fff;
}

.cta_btn_icon svg {
  width: 100%;
  height: auto;
  fill: #fff;
  transition: fill 0.3s ease;
}

.cta_btn_text {
  flex-grow: 1;
  text-align: center;
  font-size: 20px;
  color: #fff;
}

.cta_btn_arrow {
  width: 32px;
  height: 32px;
  background-color: #fff;
  border-radius: 50%;
  position: relative;
  margin-left: 10px;
  transition: background-color 0.4s ease;
}

.cta_btn_arrow::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 30%;
  width: 8px;
  height: 8px;
  border-top: 2px solid;
  border-right: 2px solid;
  transform: translateY(-50%) rotate(45deg);
}

.cta_btn_line a {
  background-color: #0EA74C;
}

.cta_btn_line a .cta_btn_arrow::after {
  border-color: #0EA74C;
}

.cta_btn_mail a {
  background-color: #ED4000;
}

.cta_btn_mail a .cta_btn_arrow::after {
  border-color: #ED4000;
}

.cta_btn_mail .cta_btn_icon {
  color: #fff;
}

.cta_btn_mail .cta_btn_icon svg {
  fill: #fff;
}

.cta_btn_mail .cta_btn_arrow {
  background-color: #fff;
}


/* --- 子ページ共通ヘッダー --- */

.sub-page_header {
  position: relative;
  padding: 200px 0 250px;

  /* 方眼（グリッド）の背景 */
  background-color: #0056A1;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.1) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.1) 1px, transparent 1px),
    linear-gradient(180deg, #0056A1 0%, #2769A2 100%);
  background-size:
    30px 30px,
    30px 30px,
    cover;

  overflow: hidden;
}

/* 下側の半円切り抜きと境界線 */
.sub-page_header::after {
  content: "";
  position: absolute;
  bottom: -350px;
  left: 50%;
  transform: translateX(-50%);
  width: 125%;
  height: 500px;
  background-color: #fff;
  border-top: 2px solid #000;
  border-radius: 50%;
  z-index: 1;
}

.sub-page_header__inner {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 20px;
  position: relative;
  z-index: 2;
}

/* タイトルエリア */
.sub-page_header__title-area {
  text-align: center;
}

.sub-page_header__en {
  font-size: 190px;
  color: #fff;
  line-height: 1;
  margin: 0;
  letter-spacing: 0.05em;
  -webkit-text-stroke: 3px #000;
  text-shadow: 10px 10px 0 #000;
}

.sub-page_header__jp {
  font-size: 48px;
  color: #fff;
  margin-top: 50px;
}


/* --- パンくずリスト --- */
.breadcrumb {
  margin-top: -55px;
}

.breadcrumb_inner {
  display: flex;
  align-items: center;
  line-height: 1;
}

.breadcrumb_divider {
  margin: 0 10px;
  width: 18px;
  display: block;
}

.breadcrumb_divider img {
  display: block;
  width: 100%;
}

.breadcrumb_current {
  color: #fff;
}


/* --- 子ページ共通見出し --- */
.sub-common_title {
  display: inline-block;
  padding: 20px 40px;
  margin-bottom: 50px;
  border-radius: 50px;
  border: 2px solid #000;
  color: #fff;
  text-align: center;
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  font-size: 48px;
  line-height: 1;
}


/* --- プライバシーポリシー --- */
.sub-privacy_lead {
  margin-bottom: 60px;
}

.sub-privacy_section {
  margin-bottom: 50px;
}

.sub-privacy_heading {
  font-size: 18px;
  margin-bottom: 10px;
  display: block;
}

.sub-privacy_list {
  margin-top: 15px;
  padding-left: 1.5em;
}

.sub-privacy_list li {
  list-style: disc;
  line-height: 1.8;
  margin-bottom: 10px;
}

.sub-privacy_contact_info {
  margin-top: 30px;
}


/* --- お問い合わせフォーム --- */
.sub-contact_header {
  text-align: center;
}

.sub-contact_text {
  font-size: 20px;
  font-weight: 700;
}

.sub-contact_text span {
  background: linear-gradient(transparent 60%, #FFDB3F 0);
  display: inline-block;
  line-height: 1.7;
}

.sub-contact_content {
  margin-bottom: 75px;
}

.sub-contact_header {
  text-align: center;
  margin-bottom: 125px;
}

.sub-contactbox_link {
  display: block;
  margin: 50px auto 30px;
  text-decoration: none;
  border: 3px solid #0056A1;
  border-radius: 20px;
  background-color: #fff;
  overflow: hidden;
  filter: drop-shadow(5px 5px 0 #000);
}

.sub-contactbox_header {
  background-color: #0056A1;
  color: #fff;
  text-align: center;
  font-size: 36px;
  letter-spacing: 0.05em;
  padding: 8px 15px;
}

.sub-contactbox_body {
  padding: 20px;
  text-align: center;
}

.sub-contactbox_phone_row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  margin-bottom: 5px;
}

.sub-contactbox_svg_icon {
  width: 60px;
  color: #0056A1;
  line-height: 1;
}

.sub-contactbox_number {
  font-size: 64px;
  font-weight: 900;
  color: #0056A1;
  line-height: 1;
}

.sub-contactbox_time {
  margin: 0;
  font-weight: 700;
}

.sub-contactbox_svg_icon svg {
  width: 100%;
}

.sub-contact_btn {
  text-align: center;
  margin: 30px auto;
}


/* --- 会社概要 --- */
.sub-company_ceo {
  text-align: center;
  padding-bottom: 125px;
}

.sub-company_ceo_inner {
  display: flex;
  gap: 7%;
}

.sub-company_ceo_img {
  flex-basis: 40%;
}

.sub-company_ceo_img img {
  border-radius: 10px;
  box-shadow: 5px 5px 0 0 #000;
}

.sub-company_ceo_text {
  flex-grow: 1;
}

.sub-company_ceo_message {
  text-align: left;
  margin-bottom: 100px;
}

.sub-company_ceo_message p {
  margin-bottom: 30px;
}

.sub-company_ceo_name {
  text-align: right;
}

.sub-company_info {
  background-color: #8452D8;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.1) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.1) 1px, transparent 1px);
  background-size: 30px 30px, 30px 30px;
  padding-top: 125px;
  padding-bottom: 125px;
  text-align: center;
}

.sub-company_box {
  background-color: #fff;
  border-radius: 20px;
  border: 2px solid #000;
  padding-top: 100px;
  padding-bottom: 100px;
  text-align: left;
}

.sub-company_box_list {
  margin-bottom: 100px;
}

.sub-company_box_item {
  display: flex;
  padding: 25px 0;
  border-bottom: 1px solid #919191;
  align-items: flex-start;
}

.sub-company_box_label {
  width: 30%;
  font-size: 24px;
  flex-shrink: 0;
  padding-left: 30px;
  line-height: 1.34;
}

.sub-company_box_value {
  width: 70%;
}

.sub-company_box_map {
  width: 100%;
  aspect-ratio: 16 / 6;
  overflow: hidden;
}

.sub-company_box_map iframe {
  width: 100%;
  height: 100%;
}

@media (max-width: 500px) {
  .sub-company_box_item {
    flex-direction: column;
    padding: 15px 0;
    text-align: center;
  }

  .sub-company_box_label {
    width: 100%;
    margin-bottom: 10px;
    font-size: 15px;
    padding-left: 0;
  }

  .sub-company_box_value {
    width: 100%;
    font-size: 15px;
  }

  .sub-company_box_map {
    aspect-ratio: 4 / 3;
  }
}

.sub-link_tabs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  margin-bottom: 80px;
  list-style: none;
  padding: 0;
}

.sub-link_tabs li {
  flex: 1;
}

.sub-link_tab {
  cursor: pointer;
  font-size: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: #FFD210;
  color: #000;
  text-decoration: none;
  padding: 15px;
  border-radius: 50px;
  position: relative;
  width: 100%;
  max-width: 400px;
  transition: .4s;
  border: 2px solid #000;
  box-shadow: 0 4px 0 0 #fff, 0 7px 0 0 #000, 0 10px 0 0 #fff, 0 13px 0 0 #000;
}

.sub-link_tab:hover {
  opacity: 1;
  box-shadow: 0 0 0 0 transparent;
  transform: translateY(13px);
}

.sub-link_tab::after {
  content: "";
  position: absolute;
  right: 20px;
  width: 10px;
  height: 10px;
  border-right: 2px solid #000;
  border-bottom: 2px solid #000;
  transform: translateY(-2px) rotate(45deg);
}

@media (max-width: 768px) {
  .sub-link_tabs {
    flex-direction: column;
    gap: 10px;
  }

  .sub-link_tab {
    font-size: 16px;
    height: 50px;
  }
}

@media (max-width: 768px) {
  .sub-link_tabs {
    flex-direction: column;
    gap: 10px;
    margin-bottom: 50px;
  }

  .sub-link_tab {
    font-size: 16px;
    height: 50px;
  }
}


/* --- 求人ページ --- */
.sub-recruit_intro {
  text-align: center;
  margin-bottom: 100px;
}

.sub-recruit_intro_title {
  font-size: 48px;
  margin-bottom: 30px;
}

.sub-recruit_sep {
  width: 100%;
  padding: 0;
  overflow: hidden;
}

.sub-recruit_sep-inner {
  width: 100%;
}

.sub-recruit_sep-item {
  width: 322px;
  height: 243px;
  margin: 0 30px;
  transform: translate3d(0px, 0, 0) scale(0.8) !important;
  transition: transform 0.4s ease, opacity 0.4s ease, box-shadow 0.4s ease;
  overflow: hidden;
  z-index: 1;
  border-radius: 10px;
  border: 2px solid #000;
}

.sub-recruit_sep-img {
  width: 100%;
  height: 100%;
}

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

.swiper-slide-prev.sub-recruit_sep-item,
.swiper-slide-next.sub-recruit_sep-item {
  transform: translate3d(0px, 0, 0) scale(1) !important;
  z-index: 10;
}

@media screen and (max-width: 767px) {
  .sub-recruit_sep-item {
    width: 7.8rem;
    height: 5.9rem;
    margin: 0 0.5rem;
  }
}

.sub-recruit_feature {
  padding: 250px 0 100px;
  background-color: #fff;
  background-image: linear-gradient(#e5e5e5 1px, transparent 1px), linear-gradient(90deg, #e5e5e5 1px, transparent 1px);
  background-size: 30px 30px;
  position: relative;
  overflow: hidden;
  margin-top: -125px;
}

.sub-recruit_feature__marquee-wrapper {
  position: absolute;
  top: 150px;
  left: 0;
  width: 100%;
  overflow: hidden;
  pointer-events: none;
  z-index: 1;
}

.sub-recruit_feature__marquee-inner {
  display: flex;
  white-space: nowrap;
  animation: marquee-loop 20s linear infinite;
}

.sub-recruit_feature__marquee-inner span {
  color: #0056A1;
  font-size: 250px;
  margin-right: 0.5em;
  line-height: 1;
  text-transform: uppercase;
  opacity: 0.2;
}

.sub-recruit_feature__inner {
  position: relative;
  z-index: 2;
}

/* セクションタイトル */
.sub-recruit_feature__header {
  text-align: center;
  margin-bottom: 80px;
}

.sub-recruit_feature__main-title {
  color: #FFF;
  text-shadow: 5px 5px 0 #0056A1;
  -webkit-text-stroke: 2px #0056A1;
  font-size: 48px;
  margin-bottom: 50px;
}

.sub-recruit_feature__lead {
  font-size: 24px;
}

/* 各アイテムのレイアウト */
.sub-recruit_feature__list {
  display: flex;
  flex-direction: column;
  gap: 60px;
}

.sub-recruit_feature__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6.4%;
}

.sub-recruit_feature__item-content {
  flex-basis: 50%;
}

/* 数字が重なる見出し */
.sub-recruit_feature__item-heading {
  position: relative;
  margin-bottom: 15px;
  padding-top: 20px;
}

.sub-recruit_feature__item-number {
  position: absolute;
  top: -10px;
  left: 0;
  font-size: 64px;
  color: #0056A1;
  z-index: -1;
  line-height: 1;
  opacity: 0.2;
}

.sub-recruit_feature__item-title {
  font-size: 32px;
}

/* 画像 */
.sub-recruit_feature__item-img {
  flex-basis: 50%;
}

.sub-recruit_feature__item-img img {
  border: 2px solid #000;
  border-radius: 10px;
  display: block;
}


.sub-recruit_description {
  padding: 100px 0;
  background-color: #FFD210;
  text-align: center;
}

.sub-recruit_description__table {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.sub-recruit_description__row {
  display: flex;
  align-items: stretch;
  /* 左右の高さを揃える */
  gap: 5px;
  /* ラベルとデータの間の隙間も5pxに設定 */
}

/* 左側：見出しラベル */
.sub-recruit_description__label {
  flex: 0 0 250px;
  background-color: #0EA74C;
  color: #fff;
  padding: 20px;
  border: 2px solid #000;
  display: flex;
  margin: 0;
  font-size: 20px;
  font-weight: 700;
  text-align: left;
}

/* 右側：データセル */
.sub-recruit_description__data {
  flex: 1;
  background-color: #fff;
  text-align: left;
  padding: 20px;
  border: 2px solid #000;
  margin: 0;
}

.sub-recruit_entry {
  padding: 100px 0;
  background-color: #0EA74C;
  background-image: linear-gradient(rgba(255, 255, 255, 0.1) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.1) 1px, transparent 1px);
  background-size: 30px 30px;
  position: relative;
}

.sub-recruit_entry__inner {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 60px;
}

.more_btn.sub-recruit_entry__contact {
  background-color: #8452D8;
  color: #fff;
}

.more_btn.sub-recruit_entry__tel {
  background-color: #0056A1;
  color: #fff;
}

.sub-recruit_entry__telsmall {
  font-size: 16px;
}

/* 左側：テキスト */
.sub-recruit_entry__content {
  flex: 1;
}

.sub-recruit_entry__title {
  font-size: 200px;
  color: #FFD210;
  line-height: 1;
  margin: 0 0 30px 0;
  -webkit-text-stroke: 2px #000;
  text-shadow: 10px 10px 0 #000;
}

.sub-recruit_entry__subtitle {
  font-size: 48px;
  font-weight: 700;
  color: #fff;
  margin-bottom: 30px;
}

.sub-recruit_entry__text p {
  color: #fff;
}

/* 右側：ボタンエリア */
.sub-recruit_entry__actions {
  display: flex;
  flex-direction: column;
  gap: 40px;
  flex: 0 0 400px;
}

.sub-recruit_flow {
  padding: 100px 0;
  background-color: #fff;
}

.sub-recruit_flow__header {
  text-align: center;
  margin-bottom: 50px;
}

.sub-recruit_flow__lead {
  font-size: 24px;
}

/* フローリスト */
.sub-recruit_flow__list {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.sub-recruit_flow__item {
  width: 100%;
}

.sub-recruit_flow__box {
  display: flex;
  align-items: center;
  gap: 5%;
  background: #fff;
  border: 2px solid #000;
  border-radius: 10px;
  padding: 40px 50px;
  box-shadow: 5px 5px 0 0 #000;
}

/* アイコン：サイズがバラバラでも中央配置 */
.sub-recruit_flow__icon {
  flex: 0 0 100px;
  height: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.sub-recruit_flow__icon img {
  max-width: 100px;
  max-height: 100px;
  width: auto;
  height: auto;
  object-fit: contain;
}

.sub-recruit_flow__content {
  flex: 1;
}

.sub-recruit_flow__item-title {
  font-size: 32px;
  margin-bottom: 15px;
  line-height: 1.4;
}

.sub-recruit_flow__arrow {
  width: 50px;
  height: 22.5px;
  margin: 20px 0;
  background-color: #0056A1;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}


/* --- 当社について --- */
.sub-about_intro {
  padding-bottom: 100px;
}

.sub-about_intro__inner {
  text-align: center;
}

.sub-about_intro__title {
  font-size: 48px;
  color: #8452D8;
  line-height: 1.6;
  margin-bottom: 50px;
  display: inline-block;
  -webkit-text-stroke: 2px #000;
  text-shadow: 5px 5px 0px #000;
}

.sub-about_intro__body p {
  font-size: 20px;
  line-height: 2.2;
  font-weight: 700;
}

.sub-about_service {
  padding: 100px 0;
  background-color: #fff;
}

.sub-about_service__inner {
  text-align: center;
}

.sub-about_service__item {
  display: flex;
  justify-content: space-between;
  gap: 6.4%;
  margin-bottom: 80px;
  text-align: left;
}

.sub-about_service__item:last-child {
  margin-bottom: 0;
}

/* 左側：テキスト */
.sub-about_service__content {
  flex-basis: 50%;
}

.sub-about_service__number {
  display: block;
  font-size: 32px;
  color: #0EA74C;
  margin-bottom: 5px;
}

.sub-about_service__title {
  font-size: 24px;
  font-weight: 700;
  margin-bottom: 15px;
  line-height: 1.6;
}

/* 右側：画像 */
.sub-about_service__visual {
  flex-basis: 50%;
}

.sub-about_service__visual img {
  border: 2px solid #000;
  border-radius: 10px;
  display: block;
}

.sub-about_feature {
  padding: 100px 0;
  background-color: #fff;
}

.sub-about_feature__inner {
  text-align: center;
}

/* アイテムの基本レイアウト（左画像・右テキスト） */
.sub-about_feature__item {
  display: flex;
  justify-content: space-between;
  gap: 6.4%;
  margin-bottom: 80px;
  text-align: left;
}

.sub-about_feature__item:last-child {
  margin-bottom: 0;
}

/* 偶数番目のアイテムを左右反転させる */
.sub-about_feature__item:nth-child(odd) {
  flex-direction: row-reverse;
}

/* 画像エリア */
.sub-about_feature__visual {
  flex-basis: 50%;
}

.sub-about_feature__visual img {
  border: 2px solid #000;
  border-radius: 10px;
  display: block;
}

/* テキストエリア */
.sub-about_feature__content {
  flex-basis: 50%;
}

.sub-about_feature__title {
  font-size: 32px;
  margin-bottom: 15px;
}


/* --- サービス内容 --- */
.sub-service_plan {
  padding: 100px 0;
  background-color: #fff;
}

.sub-service_plan__header {
  text-align: center;
  margin-bottom: 30px;
}

/* カテゴリーグループ */
.sub-service_plan__group {
  margin-bottom: 100px;
}

.sub-service_plan__group:last-child {
  margin-bottom: 0;
}

/* カテゴリー見出し */
.sub-service_plan__cat-title {
  color: #FFCB10;
  font-size: 32px;
  font-weight: 900;
  text-shadow: 2px 2px 0 #000;
  -webkit-text-stroke: 1px #000;
  text-align: center;
  margin-bottom: 50px;
}

/* 2カラムグリッド */
.sub-service_plan__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 25px;
}

/* カードのデザイン */
.sub-service_plan__card {
  background-color: #fff;
  filter: drop-shadow(5px 5px 0 #000);
  border-radius: 10px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.sub-service_plan__card-img {
  width: 100%;
  aspect-ratio: 16 / 9;
}

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

.sub-service_plan__card-body {
  padding: 40px 25px;
  flex-grow: 1;
  text-align: center;
}

.sub-service_plan__card-title {
  font-size: 24px;
  line-height: 1.5;
  margin-bottom: 15px;
}

.sub-service_plan__card-price {
  font-size: 32px;
  margin-top: 15px;
}

.sub-service_add {
  padding: 100px 0;
}

.sub-service_add__head {
  text-align: center;
}

.sub-service_add__table {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5px;
}

/* ヘッダーセルのスタイル */
.sub-service_add__header {
  background-color: #8452D8;
  color: #fff;
  font-size: 24px;
  padding: 11px 15px;
  text-align: center;
  border: 2px solid #000;
  display: flex;
  align-items: center;
  justify-content: center;
}

.sub-service_add__item,
.sub-service_add__price {
  background-color: #fff;
  font-size: 20px;
  padding: 15px;
  text-align: center;
  border: 2px solid #000;
  display: flex;
  align-items: center;
  justify-content: center;
}


.sub-service_case {
  padding: 100px 0;
  background-color: #fff;
}

.sub-service_case__inner {
  text-align: center;
}

/* アイテムの基本レイアウト（左画像・右テキスト） */
.sub-service_case__item {
  display: flex;
  justify-content: space-between;
  gap: 6.4%;
  margin-bottom: 80px;
  text-align: left;
}

.sub-service_case__item:last-child {
  margin-bottom: 0;
}

/* 偶数番目のアイテムを左右反転させる */
.sub-service_case__item:nth-child(odd) {
  flex-direction: row-reverse;
}

/* 画像エリア */
.sub-service_case__visual {
  flex-basis: 50%;
}

.sub-service_case__visual img {
  border: 2px solid #000;
  border-radius: 10px;
  display: block;
}

/* テキストエリア */
.sub-service_case__content {
  flex-basis: 50%;
}

.sub-service_case__title {
  font-size: 32px;
  margin-bottom: 15px;
}


.sub-service_flow {
  padding: 100px 0;
  background-color: #fff;
}

.sub-service_flow__inner {
  text-align: center;
}

/* アイテムの基本レイアウト（左画像・右テキスト） */
.sub-service_flow__item {
  display: flex;
  justify-content: space-between;
  gap: 6.4%;
  margin-bottom: 80px;
  text-align: left;
  flex-direction: row-reverse;
}

.sub-service_flow__item:last-child {
  margin-bottom: 0;
}

/* 画像エリア */
.sub-service_flow__visual {
  flex-basis: 50%;
}

.sub-service_flow__visual img {
  border: 2px solid #000;
  border-radius: 10px;
  display: block;
}

/* テキストエリア */
.sub-service_flow__content {
  flex-basis: 50%;
}

.sub-service_flow__title {
  font-size: 32px;
  margin-bottom: 15px;
}


/* Layout */
.txt_left {
  text-align: left;
}

.txt_center {
  text-align: center;
}

.txt_right {
  text-align: right;
}

.left {
  margin-left: 0;
  margin-right: auto;
}

.center {
  margin-left: auto;
  margin-right: auto;
}

.right {
  margin-left: auto;
  margin-right: 0;
}

.items_center {
  align-items: center;
}

.items_end {
  align-items: flex-end;
}


/* Blog */
@media screen and (min-width:768px) {
  .blog_section .two_col {
    display: grid;
    grid-template-columns: auto auto;
    gap: 0 70px;
  }
}

@media screen and (min-width:768px) {
  .blog_section .two_col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
  }
}

.blog_section .content {
  max-width: initial;
  margin: 0 0 0 5.57%;
}

/* blog */
@media screen and (min-width:1200px) {
  .blog_list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px 30px;
    width: 100%;
  }
}

@media screen and (min-width:768px) and (max-width:1199px) {
  .blog_list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3px;
    margin: 100px auto 0;
    width: 100%;
  }
}

@media screen and (min-width:768px) {
  section.blog .content {
    padding-bottom: 150px;
  }

  .blog_list {
    margin: 0 auto;
  }

  .blog_list>.blog_box {
    position: relative;
    margin-bottom: 30px;
  }

  .blog_box .blog_info {
    width: 100%;
  }

  .sub_top .blog_list {
    margin: 80px auto 120px;
  }

  .blog_detail .single_content {
    margin: 80px auto 0;
    padding-bottom: 80px;
  }

  .single_page_link {
    margin: 100px auto 0;
  }

  .single_page_link {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    justify-content: center;
    align-items: center;
    gap: 0 25px;
  }

  ul.category_link_list,
  ul.inner_link_list {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 30px 34px;
    margin: 0 auto;
  }

  ul.page-numbers {
    width: 100%;
    margin: 100px auto 0;
    text-align: center;
  }

  .single_page_link .prev_single {
    text-align: right;
  }

  .single_page_link .next_single {
    text-align: left;
  }
}

@media screen and (max-width:767px) {
  section.blog .content {
    padding-bottom: 150px;
  }

  .blog_list {
    margin: 100px auto 0;
  }

  .blog_list>.blog_box {
    height: auto;
    position: relative;
  }

  .blog_list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 40px 0;
    margin: 0 auto 0;
    width: 100%;
    padding-top: 20px;
  }

  .blog_box .blog_info {
    width: 100%;
    padding: 15px 0;
  }

  .sub_top .blog_list {
    margin: 40px auto 60px;
  }

  .single_page_link {
    margin: 50px auto 0;
  }

  .single_page_link {
    display: grid;
    grid-template-columns: .6fr 1fr .6fr;
    justify-content: space-between;
    align-items: center;
  }

  .blog_detail .single_content {
    margin: 40px auto 0;
    padding-bottom: 40px;
  }

  ul.category_link_list,
  ul.inner_link_list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px 0;
    margin: 0 auto 90px;
  }

  ul.page-numbers {
    width: 100%;
    margin: 50px auto 0;
    text-align: center;
  }

  .single_page_link .prev_single a.more_size,
  .single_page_link .next_single a.more_size {
    font-size: .875rem;
  }

  .single_page_link .prev_single {
    text-align: left;
  }

  .single_page_link .next_single {
    text-align: right;
  }
}

section.blog .content {
  max-width: 1100px;
}

.blog_list>.blog_box a {
  display: block;
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 1;
  overflow: hidden;
  text-decoration: none;
}

.blog_list>.blog_box a .img {
  border-radius: 10px;
  border: 2px solid #000;
  box-sizing: border-box;
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  width: 100%;
  z-index: 1;
}

.blog_list>.blog_box a .img img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.single_thumbnail .img {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  width: 100%;
  border-radius: 10px;
  border: 2px solid #000;
  box-sizing: border-box;
}

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

.blog p.date,
.blog_section p.date {
  font-weight: 700;
  line-height: 1;
  display: inline-block;
}

.blog p.category,
.blog_section p.category {
  border-radius: 20px;
  border: 2px solid #000;
  background-color: #0056A1;
  color: #fff;
  text-align: center;
  padding: 8px 24px;
  display: inline-block;
  margin-right: 10px;
  font-weight: 700;
  line-height: 1;
}

.blog p.category.cat_blogs,
.blog_section p.category.cat_blogs,
.blog p.category.cat_blogs,
.blog_tag.cat_blogs {
  background-color: #8452D8;
}

.blog p.category.cat_works,
.blog_section p.category.cat_works,
.blog p.category.cat_works,
.blog_tag.cat_works {
  background-color: #0EA74C;
}

.blog h2.blog_title {
  font-weight: 700;
  margin: 15px auto 30px;
  line-height: 1;
}

.blog_box .blog_info p.blog_title {
  font-weight: 700;
  margin: 15px auto 0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-line-clamp: 1;
}

.blog_box .blog_info p.blog_description {
  margin-top: 10px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-line-clamp: 2;
}

.blog_detail {
  margin: 30px auto 0;
}

.single_page_link .prev_single a,
.single_page_link .next_single a {
  font-weight: 700;
}

.single_page_link .prev_single a:hover,
.single_page_link .next_single a:hover {
  opacity: 1;
  color: #0056A1;
}

.single_page_link p.button {
  margin: 0 auto;
}

.single_page_link p.button a:after,
.single_page_link p.button a:hover:after {
  content: none;
}

.back_singlelists {
  text-align: center;
}

ul.page-numbers li {
  display: inline-block;
  margin-right: 3px;
}

ul.page-numbers li .page-numbers.current {
  color: #fff;
  font-size: 18px;
  font-family: "Dela Gothic One", sans-serif;
  line-height: 35px;
  box-sizing: border-box;
  display: block;
  width: 35px;
  height: 35px;
  background-color: #ED4000;
  border: 2px solid #ED4000;
}

ul.page-numbers li a {
  color: #ED4000;
  font-size: 18px;
  font-family: "Dela Gothic One", sans-serif;
  line-height: 35px;
  box-sizing: border-box;
  display: block;
  width: 35px;
  height: 35px;
  background-color: #fff;
  border: 2px solid #ED4000;
}

ul.page-numbers li .prev.page-numbers,
ul.page-numbers li .next.page-numbers {
  color: #ED4000;
  background-color: #fff;
  border: 2px solid #ED4000;
}

.blog_detail .single_content {
  border-bottom: 2px solid #000;
}

.blog_detail .single_content p {
  margin-bottom: 20px;
}

.blog_detail .single_content img {
  border-radius: 10px;
  border: 2px solid #000;
  box-sizing: border-box;
  overflow: hidden;
}

.blog_detail .single_content ul.category_link_list li a,
ul.inner_link_list li a {
  font-size: 1.25rem;
  font-weight: 700;
  color: #fff;
  text-align: center;
  padding: 15px 0;
  width: 100%;
  display: block;
  background-color: #0056A1;
  border: 1px solid #0056A1;
  position: relative;
}

ul.inner_link_list li a:hover,
ul.category_link_list li a:hover,
ul.category_link_list li a.cat_news:hover {
  background-color: #fff;
  color: #0056A1;
}

ul.category_link_list li a.black {
  background-color: #000;
  border: 1px solid #000;
}

ul.category_link_list li a.cat_works {
  background-color: #0056A1;
  border: 1px solid #0056A1;
}

ul.category_link_list li a.cat_blog {
  background-color: #0056A1;
  border: 1px solid #0056A1;
}

ul.category_link_list li a:after,
ul.inner_link_list li a:after {
  content: "";
  display: block;
  width: 18.5px;
  height: 10.5px;
  background-size: cover;
  background-repeat: no-repeat;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 13px;
}

/* Contact Page */
@media screen and (min-width:768px) {
  .contact_detail {
    margin: 100px auto 0;
    max-width: 1100px;
  }

  .contact_detail p.contact_notice {
    text-align: center;
  }

  .contact_detail table.contact_table tr {
    display: grid;
    gap: 0 5;
    grid-template-columns: .5fr 1fr;
    justify-content: flex-start;
    align-items: flex-start;
  }

  .contact_detail table.contact_table tr:first-child th {
    border-bottom: none;
    padding: 20px 0 25px;
  }

  .contact_detail table.contact_table.confirm_table tr:first-child th,
  .contact_detail table.contact_table.confirm_table tr:first-child td {
    padding: 0 0 30px;
  }

  .contact_detail table.contact_table tr:first-child td {
    border-bottom: none;
    padding: 0 0 25px;
  }

  .contact_detail table.contact_table tr th {
    padding: 45px 0 25px;
  }

  .contact_detail table.contact_table.confirm_table tr th,
  .contact_detail table.contact_table.confirm_table tr td {
    padding: 30px 0;
  }

  .contact_detail table.contact_table tr td {
    border-bottom: none;
    padding: 25px 0;
  }

  .contact_detail table.contact_table tr td.cityfield {
    padding: 0;
  }

  .contact_detail table.contact_table tr th {
    justify-content: space-between;
  }

  .contact_detail table.contact_table {
    width: 100%;
    margin: 0 auto 30px;
  }

  .confirm_button {
    margin: 0 auto 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    justify-content: center;
    gap: 0 30px;
  }

  .wpcf7-form-control-wrap input[type="text"],
  .wpcf7-form-control-wrap input[type="email"],
  .wpcf7-form-control-wrap input[type="tel"],
  .wpcf7-form-control-wrap textarea,
  .wpcf7-form-control-wrap ::placeholder {
    line-height: 1;
  }

  .button_section p.submit_button {
    margin: 50px auto 0;
    width: 100%;
    max-width: 400px;
  }

  .confirm_button .button_section p.submit_button {
    margin: 0 auto 0;
  }
}

@media screen and (max-width:767px) {
  .contact_detail {
    margin: 47px auto 0;
    max-width: 768px;
  }

  .contact_detail p.contact_notice {
    text-align: left;
  }

  .contact_detail table.contact_table tr:first-child {
    margin-top: 0;
  }

  .contact_detail table.contact_table tr {
    display: grid;
    gap: 0;
    grid-template-columns: 1fr;
    justify-content: flex-start;
    align-items: flex-start;
    margin-top: 20px;
    padding-bottom: 20px;
  }

  .contact_detail table.contact_table tr.blankth {
    margin-top: 0;
    padding-bottom: 0;
  }

  .contact_detail table.contact_table tr.blankthbefore {
    padding-bottom: 0;
  }

  .contact_detail table.contact_table tr:first-child th,
  .contact_detail table.contact_table tr:first-child td {
    border-bottom: none;
    padding: 0 0 10px;
  }

  .contact_detail table.contact_table tr th,
  .contact_detail table.contact_table tr td {
    border-bottom: none;
    padding: 10px 0;
  }

  .contact_detail table.contact_table tr.blankth th {
    padding: 0;
  }

  .contact_detail table.contact_table tr th span {
    margin-left: 10px;
  }

  .contact_detail table.contact_table {
    width: 100%;
    margin: 60px auto 0;
  }

  .confirm_button {
    display: block;
    margin: 40px auto 0;
  }

  .confirm_button .button_section {
    margin: 20px auto !important;
  }

  .previous_button input {
    width: calc(100% - 40px);
  }

  .wpcf7-form-control-wrap ::placeholder {
    line-height: 1.5;
  }

  .button_section p.submit_button {
    margin: 50px auto 0;
  }

  .confirm_button .button_section p.submit_button {
    margin: 0 auto 0;
  }

}

section.contact .subpage_title {
  max-width: initial;
}

section .content table.contact_table tr td {
  width: 100%;
}

.contact_detail table.contact_table tr th {
  font-weight: 700;
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  font-size: 18px;
  line-height: 1;
}

.contact_detail table.contact_table.confirm_table tr th {
  font-size: 18px;
  line-height: 1.5;
}

.contact_detail table.contact_table.confirm_table tr td {
  font-size: 18px;
  line-height: 1.5;
}

.contact_detail table.contact_table tr th span {
  background-color: #ED4000;
  color: #fff;
  text-align: center;
  padding: 4px 1px;
  width: 54px;
  display: inline-block;
  margin-left: 20px;
  font-size: 0.625rem;
  font-weight: 700;
  line-height: 1;
}

.wpcf7-form-control-wrap input[type="text"],
.wpcf7-form-control-wrap input[type="email"],
.wpcf7-form-control-wrap input[type="tel"],
.wpcf7-form-control-wrap input[type="date"],
.wpcf7-form-control-wrap textarea {
  border: 1px solid #DEDEDE;
  padding: 22px 30px;
  font-size: 18px;
  width: calc(100% - 80px);
  background-color: #D9D9D9;
  border-radius: 2px;
  font-weight: bold;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.3;
  border-radius: 5px;
}

.postcodefield .wpcf7-form-control-wrap input[type="text"] {
  max-width: 200px;
}

.wpcf7-form-control-wrap ::placeholder {
  color: #777;
  font-size: 18px;
  font-weight: bold;
  font-family: "Noto Sans JP", sans-serif;
}

.wpcf7-form-control-wrap .wpcf7-acceptance input[type="checkbox"] {
  display: none;
  width: initial;
}

.wpcf7-acceptance .wpcf7-list-item {
  margin: 0;
}

.wpcf7-radio .wpcf7-list-item {
  margin: 0 0 20px;
  display: block;
}

.wpcf7-list-item-label,
.wpcf7-list-item-label a {
  font-size: 17px;
  font-weight: bold;
  line-height: 1;
}

.wpcf7-list-item-label a {
  text-decoration: underline;
}

.wpcf7-list-item-label a:hover {
  text-decoration: none;
}

.wpcf7-list-item-label span.required {
  background-color: #ED4000;
  color: #fff;
  text-align: center;
  padding: 4px 1px;
  width: 54px;
  display: inline-block;
  margin-left: 20px;
  font-size: 0.625rem;
  font-weight: 700;
  line-height: 1;
}

.wpcf7-radio .wpcf7-list-item:last-child {
  margin: 0;
}

.wpcf7-acceptance .wpcf7-list-item {
  display: block;
  line-height: 1;
}

.wpcf7-acceptance .wpcf7-list-item+.wpcf7-list-item {
  margin-top: 8px;
}

.wpcf7-acceptance .wpcf7-list-item-label {
  position: relative;
  height: 20px;
  line-height: 20px;
  padding-left: 30px;
  display: inline-block;
}

.wpcf7-acceptance .wpcf7-list-item-label::before {
  content: "";
  display: block;
  width: 20px;
  height: 20px;
  border: 1px solid #B3B3B3;
  border-radius: 20px;
  background: #fff;
  position: absolute;
  left: 0;
  top: 1px;
  box-sizing: border-box;
}

.wpcf7-acceptance input[type="checkbox"]:checked+.wpcf7-list-item-label::after {
  content: "";
  display: block;
  width: 14px;
  height: 14px;
  background-color: #ED4000;
  position: absolute;
  left: 3px;
  top: 4px;
  border-radius: 50%;
}

.wpcf7-radio input[type="radio"] {
  opacity: 0;
  position: absolute;
}

.wpcf7-radio .wpcf7-list-item-label {
  cursor: pointer;
  display: flex;
}

.wpcf7-radio .wpcf7-list-item-label::before {
  background: #fff;
  border: 1px solid #B3B3B3;
  border-radius: 100%;
  content: "";
  width: 20px;
  height: 20px;
  margin-bottom: auto;
  margin-right: 10px;
  margin-top: auto;
}

.wpcf7-radio input[type="radio"]:checked+.wpcf7-list-item-label::before {
  background-color: #ED4000;
  box-shadow: inset 0 0 0 3px #fff;
}

div.button_section {
  display: block;
  text-align: center;
}

div.button_section:first-child {
  margin: 50px 0 0 auto;
}

div.button_section:last-child {
  margin: 50px auto 0 0;
}

div.button_section p.button {
  margin: 15px 0 0;
}

p.accept {
  text-align: center;
}

.wpcf7-spinner {
  width: 0;
  height: 0;
  margin: 0;
}

table.contact_table.confirm_table tr {
  border-bottom: 2px solid #B3B3B3;
}

/* button */
@media screen and (min-width:768px) {

  p.submit_button,
  p.previous_button {
    position: relative;
    display: inline-block;
  }

  p.submit_button:hover,
  p.submit_button input:hover,
  p.previous_button:hover,
  p.previous_button input:hover {
    cursor: pointer;
  }

  p.submit_button:hover input {
    opacity: 1;
  }

  p.button.margin {
    margin: 60px auto 40px;
  }

  .wpcf7-form-control.wpcf7-radio {
    padding: 15px 0;
    display: block;
  }
}

@media screen and (max-width:767px) {
  p.submit_button input {
    position: relative;
    display: inline-block;
    text-align: center;
    overflow: hidden;
    transition: text-shadow 0.3s;
    color: #fff;
    font-size: 1.5rem;
    font-weight: 700;
  }

  p.previous_button input {
    background-color: #000;
    border: 1px solid #000;
    position: relative;
    display: inline-block;
    text-align: center;
    overflow: hidden;
    transition: text-shadow 0.3s;
    color: #fff;
    font-size: 1.5rem;
    font-weight: 700;
  }

  .button.white a {
    background-color: #fff;
    border: 1px solid #fff;
    color: #000;
  }

  p.submit_button,
  p.previous_button {
    position: relative;
    display: inline-block;
    width: 100%;
  }

  .button a:after {
    transition: .3s ease;
  }

  p.submit_button:hover,
  p.submit_button input:hover,
  p.previous_button:hover,
  p.previous_button input:hover {
    cursor: pointer;
  }

  p.submit_button:hover input {
    opacity: 1;
  }

  p.button.margin {
    margin: 60px auto 40px;
  }
}

/* 追従CTA */
.cta_sticky-container {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 30;
  width: 320px;
  transition: opacity 0.3s ease;
}

.cta_sticky-image {
  width: 100%;
  height: auto;
  display: block;
}

.close-btn {
  position: absolute;
  padding-bottom: 4px;
  top: -10px;
  left: -10px;
  width: 25px;
  height: 25px;
  background-color: #000;
  color: #fff;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  font-weight: bold;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
}

@media (max-width: 1024px) {
  .cta_sticky-container {
    width: 260px;
  }
}
@media (max-width: 768px) {
  .cta_sticky-container {
	width: 200px;
	bottom: 80px;
}
}

.bottom-nav {
	position: fixed;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 50px;
	display: none;
	z-index: 99;
}
.nav-btn {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	text-decoration: none;
	font-size: 15px;
	font-weight: bold;
	gap: 8px;
	transition: opacity 0.3s;
  border: 2px solid #000;
}
.nav-icon {
	width: 25px;
	height: 25px;
}
.nav-icon svg {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.btn-recruit {
	background-color: #8452D8;
  border-right: 0;
}
.btn-contact {
	background-color: #ED4000;
}

@media (max-width: 768px) {
  .bottom-nav {
    display: flex;
  }
}


/* レスポンシブ */
@media screen and (max-width:1650px) {
  .fv-badges {
    left: -15%;
  }

  .unit-female {
    left: -230px;
  }

  .unit-male-group {
    right: -200px;
  }

  .top-message__btn-wrapper {
    position: static;
    margin-top: 30px;
  }

  .top-service__icon01 {
    width: 160px;
  }

  .top-service__icon02 {
    width: 150px;
    bottom: -275px;
    right: 0;
  }

  .top-feature__icon01 {
    width: 200px;
    top: 0;
    left: 0;
  }

  .top-feature__icon02 {
    width: 120px;
    bottom: -30px;
    right: -10px;
  }

  .top-recruit__icon01 {
    width: 84px;
    top: -120px;
    left: 0;
  }

  .top-recruit__icon02 {
    width: 300px;
  }

  .top-flow__icon01 {
    width: 100px;
    top: -160px;
    right: 20px;
  }

  .top-faq__icon03 {
    width: 280px;
    top: 15%;
    left: 0;
  }

  .top-faq__icon04 {
    width: 200px;
    top: auto;
    right: 0;
    bottom: -60px;
  }

  .top-company__bg-title.main_title_en {
    top: 70px;
    left: calc(50% - 750px);
    font-size: 125px;
  }

  .top-company__icon01 {
    width: 220px;
    top: auto;
    right: -150px;
    bottom: -70px;
  }
}

@media screen and (max-width:1440px) {
  .header_nav nav .nav_right {
    gap: 30px;
    padding: 10px 10px 10px 30px;
    margin-right: 10px;
  }

  .header_nav nav .nav_right ul {
    gap: 15px;
  }

  .sub-page_header__en {
    font-size: 120px;
  }

  .unit-female {
    width: 250px;
    top: 400px;
    left: 0;
  }

  .unit-male-group {
    width: 490px;
    top: 0;
    right: -90px;
  }

  .fv-badges {
    left: 0;
  }

  .badge-item {
    width: 170px;
  }

  .top-message__container {
    flex-direction: column;
  }

  .top-message__description p {
    max-width: 750px;
  }

  .top-message__visual {
    padding-left: 0;
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    gap: 30px;
  }

  .top-message__visual-img {
    max-width: 750px;
    width: 100%;
  }

  .top-service__icon01 {
    left: -160px;
  }

  .top-feature__icon01 {
    top: -160px;
  }

  .sub-recruit_entry__inner {
    align-items: center;
    flex-direction: column;
    max-width: 750px;
    margin: 0 auto;
  }

  .sub-recruit_entry__title {
    font-size: 150px;
  }

  .sub-recruit_entry__content {
    text-align: center;
  }

  .sub-recruit_entry__actions {
    flex: auto;
    width: 100%;
    text-align: center;
  }
}

@media screen and (max-width:1249px) {
  .cta_inner {
    flex-direction: column;
    gap: 30px;
  }

  .fv-text {
    width: 50%;
  }

  .top-service__icon01 {
    left: -70px;
    top: -40px;
    width: 100px;
  }

  .top-faq__icon01 {
    width: 45px;
    top: -30px;
    left: 20%;
  }

  .top-faq__icon02 {
    width: 65px;
    bottom: 50px;
    right: 20%;
  }

  .top-company__icon01 {
    width: 160px;
    right: -100px;
    bottom: -95px;
  }
}

@media screen and (max-width:1024px) {
  .unit-male-group {
    width: 400px;
    top: 120px;
    right: -100px;
  }

  .top-message__chara {
    width: 250px;
  }

  .top-message__outer-border {
    padding: 20px;
  }

  .top-message__title {
    font-size: 80px;
  }

  .top-service__grid {
    grid-template-columns: repeat(1, 1fr);
    max-width: 700px;
    margin: 0 auto 50px;
  }

  .top-feature__content {
    padding: 50px;
  }

  .top-blog__icon01 {
    width: 160px;
    top: -70px;
    left: 550px;
  }

  .top-faq__icon03 {
    width: 200px;
    top: 0;
    left: 0;
  }

  .top-faq__icon04 {
    width: 140px;
  }

  .top-company__content {
    padding-top: 200px;
  }

  .top-company__bg-title.main_title_en {
    top: 70px;
    left: calc(50% - 510px);
    font-size: 90px;
  }

  .top-company__main-copy {
    font-size: 38px;
  }

  .area__container {
    flex-direction: column;
  }

  .area__visual {
    max-width: 400px;
    flex: auto;
  }

  .cta_btn_text {
    font-size: 18px;
  }

  .sub-page_header__en {
    font-size: 90px;
  }

  .sub-page_header__jp {
    font-size: 38px;
    margin-top: 20px;
  }

  .breadcrumb {
    margin-top: 20px;
  }

  .sub-link_tabs {
    gap: 30px 15px;
  }

  .sub-link_tab {
    font-size: 20px;
    padding: 10px;
  }

  .sub-recruit_entry__title {
    font-size: 90px;
  }

  .blog_section .content {
    padding-top: 30px;
  }

  .footer_top {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 15px;
  }

  .flow_item_title {
    font-size: 26px;
  }

  .flow_inner {
    flex-direction: column;
  }

  .flow_header {
    width: 100%;
  }
}

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

  .more_btn,
  .formbtn .wpcf7-submit,
  .formbtn .wpcf7-previous,
  .cta_btn_link a,
  .sp_link_button li a,
  .sub-link_tab {
    box-shadow: 0 2px 0 0 #fff, 0 4px 0 0 #000, 0 6px 0 0 #fff, 0 8px 0 0 #000;
    font-size: 20px;
  }

  .more_btn:hover,
  .formbtn .wpcf7-submit:not(:disabled):hover,
  .formbtn .wpcf7-previous:not(:disabled):hover,
  .cta_btn_link a:hover,
  .sp_link_button li a:hover,
  .sub-link_tab:hover {
    transform: translateY(8px);
  }

  .fv-inner>div {
    position: absolute;
    will-change: transform, opacity;
  }

  .fv-circle-text {
    width: calc(1440 / 1100 * 125%);
  }

  .fv-circle-out {
    width: 125%;
  }

  .fv-circle-in {
    width: calc(700 / 1100 * 125%);
  }

  .fv-text {
    width: 60%;
  }

  .unit-male-group {
    width: 36%;
    top: auto;
    right: auto;
    bottom: 0px;
    left: -11%;
  }

  .unit-female {
    width: 23%;
    left: auto;
    right: 1%;
    top: 8%;
  }

  .unit-airmaster {
    width: 26%;
    top: 12%;
    left: 2%;
  }

  .wrench-green {
    width: 16%;
    bottom: 33%;
    right: 2%;
  }

  .gear-purple {
    width: 12%;
    top: 18%;
    left: 50%;
  }

  .gear-yellow {
    width: 10%;
    bottom: 53%;
    left: 8%;
  }

  .gear-red {
    width: 17%;
    bottom: 22%;
    right: 4%;
  }

  .gear-purple02 {
    width: 10%;
    right: 1%;
  }

  .star-blue-l {
    width: 7%;
    top: 28%;
    left: 1%;
  }

  .star-red {
    width: 4%;
    bottom: 52%;
    right: 12%;
  }

  .star-yellow {
    width: 7%;
    top: 8%;
    left: 30%;
  }

  .star-yellow-c {
    width: 7%;
    top: 37%;
    right: 0%;
  }

  .fv-badges {
    width: 100%;
    justify-content: center;
  }

  .top-message {
    padding: 0 30px;
  }

  .top-message__inner {
    padding: 50px 0;
  }

  
  .top-message__outer-border {
    padding: 10px;
  }

  .top-message__outer_left {
    font-size: 20px;
    left: -25px;
  }

  .top-message__outer_right {
    font-size: 20px;
    right: -25px;
  }

  .top-message__content {
    flex: auto;
    width: 100%;
  }

    .top-message__visual {
    flex: auto;
    width: 100%;
  }

  .top-message__title {
    font-size: 58px;
  }

  .top-message__main-copy {
    font-size: 36px;
  }

  .top-message__description p {
    font-size: 16px;
  }

  .top-message__btn-wrapper {
    margin-top: 0;
  }

  .top-service {
    padding: 50px 0;
  }

  .top-service__header {
    margin-bottom: 50px;
  }

  .top-service__title-wrapper {
    width: 100%;
  }

  .top-service__icon01 {
    left: 30px;
    top: 150px;
    width: 100px;
  }

  .top-service__card-title span {
    font-size: 36px;
  }

  .top-service__card-title {
    font-size: 26px;
    margin-bottom: 20px;
  }

  .top-service__grid {
    gap: 30px;
  }

  .top-feature {
    padding: 50px 0 100px;
  }

  .top-feature__icon01 {
    width: 100px;
    top: -90px;
  }

  .top-feature__label span {
    font-size: 36px;
  }

  .top-feature__label {
    margin-bottom: 0;
  }

  .top-feature__item-title {
    font-size: 28px;
    margin-bottom: 15px;
  }

  .top-feature__container {
    flex-direction: column;
  }

  .top-feature__visual {
    flex-basis: auto;
    width: 100%;
    height: 360px;
  }

  .top-feature__dots {
    flex-direction: row;
    gap: 5px;
    top: auto;
    bottom: 28px;
    transform: none;
  }

  .top-feature__content {
    padding: 20px 30px 50px;
  }

  .top-feature__icon02 {
    width: 80px;
    bottom: -70px;
    right: 0;
  }

  .top-recruit {
    padding: 50px 0;
    background-size: 35% auto;
  }

  .top-recruit__visual {
    width: 100%;
    position: static;
    height: auto;
    margin-top: 40px;
  }

  .top-recruit__slider-container {
    transform: none;
    flex-direction: column;
  }

  .top-recruit__slider {
    flex-direction: row;
    height: auto;
  }

  .top-recruit__slider.--down {
    animation: marquee-loop 20s linear infinite;
  }

  .top-recruit__slider.--up {
    animation: marquee-loop-rev 20s linear infinite;
  }

  .top-recruit__slider img {
    width: 200px;
    height: auto;
  }

  .top-recruit__main-copy {
    font-size: 36px;
    margin: 20px 0 40px;
  }

  .top-recruit__icon01 {
    width: 60px;
    top: -20px;
    left: auto;
    right: 0;
  }

  .top-recruit__icon02 {
    width: 160px;
    bottom: auto;
    top: 0;
    left: auto;
    right: 0;
  }

  .top-blog__icon01 {
    width: 100px;
    top: -10px;
    left: auto;
    right: 10px;
  }

  .top-blog__heading {
    margin-bottom: 40px;
  }

  .blog {
    padding: 50px 0;
  }

  .blog_header {
    margin-bottom: 50px;
  }

  .blog_meta {
    flex-direction: column-reverse;
    align-items: flex-start;
  }

  .blog_tag {
    font-size: 16px;
    width: 130px;
  }

  .blog_item_title {
    font-size: 18px;
  }

  .blog_slider_container {
    width: 100%;
    margin-bottom: 50px;
  }

  .blog_btn {
    flex-basis: auto;
  }

  .top-flow__icon01 {
    width: 80px;
    top: -100px;
    right: 20px;
  }

  .flow_inner {
    margin: 50px auto;
  }

  .flow_title {
    font-size: 36px;
  }

  .flow_lead {
    margin-top: 20px;
  }

  .flow_btn_wrap {
    margin-top: 40px;
  }

  .flow_container {
    max-width: 500px;
    margin: 0 auto;
  }

  .flow__marquee-inner span {
    font-size: 90px;
  }

  .flow__marquee {
    padding-bottom: 50px;
  }

  .faq {
    padding: 20px 10px;
  }

  .faq_redbox {
    padding: 10px;
  }

  .faq_yellowbox {
    padding: 50px 0;
  }

  .top-faq__icon03 {
    width: 130px;
  }

  .top-faq__icon04 {
    width: 90px;
    bottom: -30px;
  }

  .top-faq__icon01 {
    top: 0;
    left: 20%;
  }

  .top-faq__icon02 {
    width: 50px;
    bottom: 0;
    right: 20%;
  }

  .top-company {
    padding-top: 50px;
  }

  .top-company__container {
    min-height: auto;
    flex-direction: column;
    gap: 40px;
  }

  .top-company__bg-title.main_title_en {
    font-size: 64px;
    position: static;
    padding: 0 20px;
  }

  .top-company__content {
    padding-top: 0;
  }

  .top-company__main-copy {
    margin-bottom: 20px;
  }

  .top-company__description {
    margin-bottom: 30px;
  }

  .top-company__text-inner {
    max-width: none;
  }

  .top-company__icon01 {
    width: 110px;
    right: 10px;
    bottom: -60px;
  }

  .top-company__visual {
    flex-basis: auto;
    width: auto;
    height: 450px;
  }

  .top-company__visual img {
    object-position: top center;
  }

  .area {
    padding: 50px 0;
  }

  .area__container {
    gap: 40px;
  }

  .area__title.main_title_en {
	font-size: 64px;
}

  .footer_address p,
  .footer_nav_list li a {
    font-size: 16px;
  }

  .sub-page_header__en {
    font-size: 64px;
  }

  .sub-page_header__jp {
    font-size: 32px;
    margin-top: 10px;
  }

  .sub-page_header {
    padding: 140px 0 160px;
  }

  .sub-page_header::after {
    bottom: -350px;
    width: 150%;
    height: 450px;
  }

  .sub-link_tabs {
    grid-template-columns: repeat(2, 1fr);
  }

  .sub-about_intro__title {
    font-size: 32px;
    margin-bottom: 20px;
    -webkit-text-stroke: 1px #000;
    text-shadow: 2px 2px 0px #000;
  }

  .sub-about_intro__body p {
    font-size: 16px;
    line-height: 2;
  }

  .sub-about_intro {
    padding-bottom: 0;
  }

  .sub-about_service {
    padding: 50px 0;
  }

  .sub-common_title {
    padding: 15px 40px;
    font-size: 32px;
  }

  .sub-about_service__item {
    flex-direction: column;
    max-width: 700px;
    margin: 0 auto 30px;
    gap: 0;
  }

  .sub-about_service__visual {
    flex-basis: auto;
  }

  .sub-about_service__content {
    flex-basis: auto;
    margin-bottom: 20px;
  }

  .sub-about_feature {
    padding: 0;
  }

  .sub-about_feature__item,
  .sub-about_feature__item:nth-child(2n+1) {
    flex-direction: column-reverse;
    max-width: 700px;
    margin: 0 auto 30px;
    gap: 0;
  }

  .sub-about_feature__visual {
    flex-basis: auto;
  }

  .sub-about_feature__content {
    flex-basis: auto;
    margin-bottom: 20px;
  }

  .sub-service_plan {
    padding: 50px 0;
  }

  .sub-service_plan__header {
    margin-bottom: 0;
  }

  .sub-service_plan__cat-title {
    font-size: 28px;
    margin-bottom: 30px;
  }

  .sub-service_plan__grid {
    grid-template-columns: repeat(1, 1fr);
    gap: 30px;
    max-width: 700px;
    margin: 0 auto;
  }

  .sub-service_plan__card-body {
    padding: 30px 20px;
  }

  .sub-service_plan__group {
    margin-bottom: 50px;
  }

  .sub-service_add {
    padding: 0;
  }

  .sub-service_add__header {
    font-size: 20px;
    padding: 10px;
  }

  .sub-service_add__item,
  .sub-service_add__price {
    font-size: 15px;
    padding: 10px;
  }

  .sub-service_case {
    padding: 50px 0;
  }

  .sub-service_case__item,
  .sub-service_case__item:nth-child(2n+1) {
    flex-direction: column-reverse;
    max-width: 700px;
    margin: 0 auto 30px;
    gap: 0;
  }

  .sub-service_case__visual {
    flex-basis: auto;
  }

  .sub-service_case__content {
    flex-basis: auto;
    margin-bottom: 20px;
  }

  .sub-service_flow {
    padding: 0;
  }

  .sub-service_flow__item {
    flex-direction: column-reverse;
    max-width: 700px;
    margin: 0 auto 30px;
    gap: 0;
  }

  .sub-service_flow__visual {
    flex-basis: auto;
  }

  .sub-service_flow__content {
    flex-basis: auto;
    margin-bottom: 20px;
  }

  .sub-recruit_intro_title {
    font-size: 32px;
    margin-bottom: 20px;
  }

  .sub-recruit_intro {
    margin-bottom: 50px;
  }

  .sub-recruit_feature {
    padding: 180px 0 50px;
    margin-top: -125px;
  }

  .sub-recruit_feature__marquee-wrapper {
    top: 140px;
  }

  .sub-recruit_feature__marquee-inner span {
    font-size: 135px;
  }

  .sub-recruit_feature__main-title {
    text-shadow: 2px 2px 0 #0056A1;
    -webkit-text-stroke: 1px #0056A1;
    font-size: 36px;
    margin-bottom: 40px;
  }

  .sub-recruit_feature__lead {
    font-size: 20px;
  }

  .sub-recruit_feature__header {
    margin-bottom: 50px;
  }

  .sub-recruit_feature__item {
    flex-direction: column;
    max-width: 700px;
    margin: 0 auto 30px;
    gap: 0;
  }

  .sub-recruit_feature__item-img {
    flex-basis: auto;
  }

  .sub-recruit_feature__item-content {
    flex-basis: auto;
    margin-bottom: 20px;
  }

  .sub-recruit_feature__item-heading {
    margin-bottom: 0;
  }

  .sub-recruit_feature__list {
    gap: 0;
  }

  .sub-recruit_description {
    padding: 50px 0;
  }

  .sub-recruit_description__label {
    font-size: 15px;
    padding: 15px;
    flex: 0 0 150px;
  }

  .sub-recruit_description__data {
    padding: 15px;
  }

  .sub-recruit_entry {
    padding: 50px 0;
  }

  .sub-recruit_entry__title {
    font-size: 64px;
  }

  .sub-recruit_entry__subtitle {
    font-size: 32px;
    margin-bottom: 20px;
  }

  .sub-recruit_entry__inner {
    gap: 30px;
  }

  .sub-recruit_entry__actions {
    gap: 25px;
  }

  .sub-recruit_flow {
    padding: 50px 0 0;
  }

  .sub-recruit_flow__box {
    padding: 20px 20px;
  }

  .sub-recruit_flow__item-title {
    font-size: 28px;
    margin-bottom: 5px;
  }

  .sub-company_ceo {
    padding-bottom: 50px;
  }

  .sub-company_ceo_inner {
    gap: 30px;
    flex-direction: column;
    align-items: center;
    max-width: 700px;
    margin: 0 auto;
  }

  .sub-company_ceo_img {
    flex-basis: auto;
    max-width: 200px;
  }

  .sub-company_ceo_message p {
    margin-bottom: 10px;
  }

  .sub-company_ceo_message {
    margin-bottom: 30px;
  }

  .sub-company_info {
    padding-top: 50px;
    padding-bottom: 50px;
  }

  .sub-company_box {
    padding-top: 0;
    padding-bottom: 40px;
  }

  .sub-company_box_list {
    margin-bottom: 30px;
  }

  .sub-privacy_lead {
    margin-bottom: 40px;
  }

  .sub-privacy_section {
    margin-bottom: 40px;
  }

  .sub-contact_text {
    font-size: 15px;
  }

  .sub-contactbox_header {
    font-size: 20px;
  }

  .sub-contactbox_svg_icon {
    width: 42px;
    height: 42px;
  }

  .sub-contactbox_svg_icon svg {
    width: 100%;
    height: 100%;
  }

  .sub-contactbox_number {
    font-size: 36px;
  }

  .sub-contactbox_link {
    margin: 30px auto;
  }

  .sub-contactbox_phone_row {
    gap: 10px;
  }

  .sub-contact_box_wrap {
    max-width: 700px;
    margin: 0 auto;
  }

  .sub-contact_header {
    margin-bottom: 50px;
  }

  .sub-contact_content {
	margin-bottom: 20px;
}

  .cta_tel_number {
    flex-direction: column;
    gap: 5px;
  }

  .cta_btns {
    grid-template-columns: repeat(1, 1fr);
    max-width: 400px;
  }

  .cta_content {
    max-width: 600px;
    padding: 0 20px;
  }

  .footer_top {
    margin-top: 50px;
    margin-bottom: 50px;
  }
}

@media screen and (max-width:500px) {
  .more_btn, .formbtn .wpcf7-submit, .formbtn .wpcf7-previous, .cta_btn_link a, .sp_link_button li a {
	font-size: 18px;
  padding: 10px;
}

  .fv-circle-text {
	width: calc(1440 / 1100 * 160%);
}
.fv-circle-out {
	width: 160%;
}
.fv-circle-in {
	width: calc(700 / 1100 * 160%);
}
.fv-text {
	width: 88%;
  top: 52%;
}

.unit-male-group {
width: 50%;
    bottom: 0;
    left: -18%;
}
.unit-female {
	width: 28%;
	right: 3%;
	top: 11%;
}
.unit-airmaster {
	width: 36%;
	top: 18%;
	left: 5%;
}
.wrench-green {
	width: 21%;
	bottom: 33%;
	right: 0;
}
.gear-purple {
	width: 17%;
	top: 24%;
	left: 50%;
}
.gear-yellow {
	width: 13%;
	bottom: 43%;
	left: 8%;
}
.gear-red {
	width: 19%;
	bottom: 28%;
	right: 12%;
}
.gear-purple02 {
	width: 13%;
	right: 5%;
	bottom: 25%;
}
.star-blue-l {
	width: 10%;
	top: 30%;
	left: 1%;
}
.star-red {
	width: 6%;
	bottom: 46%;
	right: 12%;
}
.star-yellow {
	width: 10%;
	top: 12%;
	left: 34%;
}
.star-yellow-c {
	width: 10%;
	top: 35%;
	right: 0;
}

.top-message__title {
	font-size: 35px;
	text-shadow: 5px 5px 0 #000;
}
.top-message__subtitle {
	font-size: 24px;
	margin-top: 5px;
}
  .top-message__main-copy {
    font-size: 22px;
  }
  .top-message__description p {
	font-size: 15px;
}

  .top-message__chara {
    width: 42%;
  }

  .top-message__btn-wrapper {
    max-width: 100%;
  }

  .top-service__icon01 {
	left: 20px;
	top: 110px;
	width: 60px;
}

  .top-service__card-title {
    flex-direction: column;
    align-items: flex-start;
    gap: 15px;
    font-size: 24px;
  }
  .top-service__card-title span {
	font-size: 32px;
}
  .top-service__card-body {
	padding: 20px;
}
  .top-service__icon02 {
    width: 68px;
    bottom: -125px;
  }

    .top-feature__icon01 {
    width: 80px;
    top: -80px;
  }

  .top-feature__visual {
    height: 200px;
  }
  .top-feature__content {
	padding: 20px 20px 50px;
}
.top-feature__lists .cont-01 {
	top: 117.5px;
}
.top-feature__lists .cont-02 {
	top: 132.5px;
	margin-top: 100px;
}
.top-feature__item-title {
	font-size: 22px;
	line-height: 1.5;
}
.top-feature__label span {
	font-size: 32px;
}
.top-feature__btn-wrapper {
	padding: 0 20px;
}
.top-feature__icon02 {
	width: 60px;
	bottom: -120px;
	right: 0;
}

.top-recruit__icon01 {
	width: 40px;
	top: 0;
	right: 0;
}
.top-recruit__icon02 {
	width: 100px;
	top: 40px;
	right: -10px;
}
  .top-recruit__main-copy {
    font-size: 22px;
  }

  .top-blog__icon01 {
	width: 70px;
	top: 0;
	right: 20px;
}

  .faq_redbox {
    padding: 10px;
  }

  .faq_yellowbox {
    padding: 30px 0;
  }

  .top-faq__icon03 {
    width: 100px;
  }

  .top-faq__icon04 {
	width: 80px;
	bottom: -90px;
}

  .top-faq__icon01 {
	width: 25px;
}
.top-faq__icon02 {
	width: 28px;
	bottom: 0;
	right: 10%;
}
.top-faq__heading {
	margin-bottom: 30px;
}

  .top-company__bg-title.main_title_en {
    font-size: 38px;
  }
  .top-company__main-copy {
    font-size: 22px;
  }

  .top-company__icon01 {
    width: 120px;
    top: auto;
    right: 0px;
    bottom: -300px;
    z-index: 1;
  }
  .top-company__description {
	font-size: 15px;
}

.top-company__visual {
	height: 380px;
}
.area__main-copy {
	font-size: 24px;
  margin-bottom: 10px;
}
  .area__title.main_title_en {
    font-size: 38px;
  }
  .area__note {
	font-size: 18px;
}

.cta_section {
	padding: 50px 0 100px;
}

  .cta_left-category_buttons,
  .cta_tel_number {
    flex-direction: column;
    text-align: center;
  }

  .cta_btns {
   grid-template-columns: repeat(1, 1fr);
    gap: 15px;
    padding: 0 0 30px;
  }

  .footer_inner {
    padding: 0;
  }

  .footer_nav_list li a {
    padding: 5px 0;
  }

  .footer_top {
    margin-top: 40px;
    margin-bottom: 30px;
  }

  .sub-page_header__en {
	font-size: 40px;
	-webkit-text-stroke: 1px #000;
	text-shadow: 5px 5px 0 #000;
}
.sub-page_header__jp {
	font-size: 24px;
}
.sub-page_header {
	padding: 120px 0 140px;
}
.sub-page_header::after {
	bottom: -340px;
	width: 200%;
	height: 420px;
}

  .breadcrumb_current {
    font-size: 14px;
  }

  .sub-link_tab {
    font-size: 16px;
  }

  .sub-link_tabs {
    gap: 15px;
    grid-template-columns: repeat(1, 1fr);
  }

  .sub-link_tab::after {
    right: 15px;
    width: 8px;
    height: 8px;
  }

  .sub-common_title {
	padding: 10px 30px;
	font-size: 24px;
}

  .sub-about_intro__title {
	font-size: 28px;
}
.sub-about_intro__body p {
	font-size: 15px;
}
.sub-service_plan__cat-title {
	font-size: 22px;
}
.sub-service_add__item, .sub-service_add__price {
	font-size: 12px;
	padding: 10px;
}
.sub-service_add__header {
	font-size: 16px;
	padding: 10px;
}
.sub-recruit_intro_title {
	font-size: 20px;
}
.sub-recruit_description__label {
	flex: 0 0 120px;
}
.sub-recruit_entry__subtitle {
	font-size: 20px;
}

  footer {
    padding-bottom: 70px;
    border-radius: 20px 20px 0 0;
  }

  .sub-contact_text {
    font-size: 16px;
  }

  .banner_img {
    width: 90%;
  }

  .intro_heading {
    margin-bottom: 20px;
  }

  .banner_block {
    margin-top: 120px;
  }

  .flow_inner {
    margin: 50px auto 10px;
  }

  .flow_title {
    font-size: 24px;
  }

  .flow_lead {
    margin-top: 20px;
  }

  .flow__marquee-inner span {
	font-size: 64px;
}

  .faq_title_en {
    font-size: 48px;
  }

  .faq_title_jp {
    font-size: 20px;
    margin-top: 10px;
  }

  .faq_list_ttl {
    font-size: 20px;
    margin-top: 0;
    margin-bottom: 10px;
  }

  .footer_copyright {
    text-align: center;
  }

  .sub-contactbox_header {
    font-size: 18px;
    letter-spacing: 0;
  }

  .sub-contactbox_number {
    font-size: 34px;
    line-height: 1.5;
  }

  .sub-contactbox_svg_icon {
    width: 40px;
  }

  .sub-contactbox_body {
    padding: 15px;
  }

  .sub-contactbox_phone_row {
    gap: 10px;
    margin-bottom: 0;
  }

  .sub-contact_header {
    margin-bottom: 50px;
  }

  .sub-contact_title {
    font-size: 28px;
  }

  .sub-contact_devided {
    margin: 20px auto 40px;
  }

}