@import url('https://fonts.googleapis.com/css?family=Noto+Sans+JP:400,700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@400;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic&display=swap');

html {
  scroll-padding-top: 80px;
  /* トップマージンを調整 */
  max-width: 100vw;
  overflow-x: hidden;
}

.rec_en_btn .reclink{position: relative;padding-top: 10px;bottom: 0;right: 0;max-height: 40%;max-width: 50%;}
.rec_en_btn:hover .reclink {
            right: 0px;
        }
.fontc1 {
  font-size: 1.1em;
  font-weight: 500;
}

.fontc2 {
  font-size: 1.05em;
}


#fullpage {
  overflow-x: hidden;
}

a,
a:visited,
a:hover,
a:active,
a:focus {
  color: inherit;
  text-decoration: none;
  /* 必要に応じて装飾を削除 */
}

.mada img {
  border: 1px solid red;
}

.scroll {
  display: none;
}

.fontc {
  font-family: 'Noto Sans JP', sans-serif;
}

/* 全部に使用できるフェードインのクラス */
.fade-in-effect-unique,
.fade-in-effect-unique2 {
  opacity: 0;
  transition: opacity 1s ease-out;
}

.fade-in-effect-unique.is-visible-unique {
  opacity: 1;
}

.fade-in-effect-unique2.is-visible-unique2 {
  opacity: 1;
  transition-delay: 0.5s;
  /* アニメーションの開始を0.5秒遅らせる */
}

.fade-in-effect-unique3 {
  opacity: 0;
  transform: translateY(30px);
  /* 初期位置を30px下に設定 */
  transition: opacity 1s ease-out, transform 1s ease-out;
}

.fade-in-effect-unique3.is-visible-unique3 {
  opacity: 1;
  transform: translateY(0);
  /* 最終位置を元の位置に設定 */
}

/***************************************************
 * Generated by SVG Artista on 8/16/2024, 1:55:42 PM
 * MIT license (https://opensource.org/licenses/MIT)
 * W. https://svgartista.net
 **************************************************/

@-webkit-keyframes animate-svg-stroke-1 {
  0% {
    stroke-dashoffset: 2792.00634765625px;
    stroke-dasharray: 2792.00634765625px;
  }

  100% {
    stroke-dashoffset: 5584.0126953125px;
    stroke-dasharray: 2792.00634765625px;
  }
}

@keyframes animate-svg-stroke-1 {
  0% {
    stroke-dashoffset: 2792.00634765625px;
    stroke-dasharray: 2792.00634765625px;
  }

  100% {
    stroke-dashoffset: 5584.0126953125px;
    stroke-dasharray: 2792.00634765625px;
  }
}

.svg-elem-1 {
  -webkit-animation: animate-svg-stroke-1 1s linear 1s both;
  /* 1秒遅延 */
  animation: animate-svg-stroke-1 1s linear 1s both;
  /* 1秒遅延 */
}

.comimg svg,
.comimg img {
  transition: opacity 5s ease-in-out;
}

.comimg img.fade-in {
  display: block !important;
  opacity: 1;
}

.comimg svg.fade-out {
  opacity: 0;
}



.pass {
  transition: opacity 0.6s ease;
  /* アニメーションの持続時間を調整 */
  opacity: 1;
}

.arrow {

  position: relative;

  padding-left: 15px;

  color: #333;

  text-decoration: none;

}

.arrow::before {

  content: '';

  display: block;

  width: 6px;
  /* 矢印の大きさの指定 */

  height: 6px;
  /* 矢印の大きさの指定 */

  border-top: 2px solid #c9c9ca;
  /* 矢印の太さの指定 */

  border-left: 2px solid #c9c9ca;
  /* 矢印の太さの指定 */

}

.arrow--right::before {

  transform: rotate(135deg);
  /* 矢印の角度の指定 */

  position: absolute;
  /* 矢印の位置の指定 */

  left: 0;
  /* 矢印の位置の指定 */

  top: 11px;
  /* 矢印の位置の指定 */

}

.contents_box .arrow--right::before {


  top: 5px;
  /* 矢印の位置の指定 */

}

#fullpage-container {
  transition-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
  /* easeInOutCubic の cubic-bezier バージョン */
  transition-duration: 1s;
  /* アニメーションの時間 */
}

.info_all_box {
  position: relative;
  /* 必要に応じて要素の相対位置を設定 */
  background-image: url(img/info.jpeg);
  background-size: cover;
  background-repeat: no-repeat;
  color: #fff;
  background-attachment: fixed;
}


.arrow_u a {
  display: inline-block !important;
}

.info_all_box::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  /* 黒の半透明フィルタ */
  z-index: 1;
  /* フィルタが背景画像の上に表示されるようにする */
}

/* 必要に応じて、コンテンツのスタイルを調整 */
.info_all_box>* {
  position: relative;
  z-index: 2;
  /* フィルタの上にコンテンツを表示 */
}


.top_text {
  color: #fff;
  font-weight: 500;
  line-height: 2.5em;
  display: block;
  font-family: ;
  padding-left: 0.5em;
  padding-top: 30px;
  opacity: 0;
}

.top_text img {
  max-width: 30%;
}

header {
  z-index: 99;
  position: fixed;
  width: 100%;
}

/* フェードインのアニメーションを定義 */
@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.fade-in {
  animation: fadeIn 1s ease-in forwards;
  opacity: 0;
  /* 初期状態は透明 */
}

.cont_text {
  text-align: center;
  font-weight: 500;
  line-height: 2.5em;
  display: block;
  font-family: ;
  padding-left: 0.5em;
  padding-top: 50px;
  padding-bottom: 80px;
  opacity: 0;
  transition: opacity 1.5s ease-in-out;
}



.company_text_oo {
  width: 60%;
  background-color: #333;
  height: 80%;
  position: absolute;
  opacity: 0;
  transition: opacity 1s ease-in-out;
}

.company_text_01 {
  width: 60%;
  height: 80%;
  position: absolute;
  background-color: rgba(255, 255, 255, 0);
  opacity: 0;
  transition: opacity 1s ease-in-out;
}

.company_text {
  opacity: 0;
  transition: opacity 1s ease-in-out;
}

.c_left {
  top: 10%;
  right: 0;
}

.company_text_01 .cont_text {
  text-align: left;
  padding: 50px 15%;
}

.company_text_01 .cont_text h2 {
  line-height: 1.5em;
  padding: 0.5em 0;
}

.c_right {
  top: 10%;
  left: 0;
}


.main_contents {
  padding-bottom: 100px;
  overflow: hidden;
}

.fade-in-visible {
  opacity: 1;
}

.main_contents2 {
  width: 100%;
  height: 80vh;
  overflow: hidden;
  position: relative;
}

.company_img {
  width: 100%;
  height: 100%;
  overflow: hidden;
  position: absolute;
  top: 0;
  left: 0;
  object-fit: cover;
}

.company_img2 {
  width: 100%;
  height: 100%;
  overflow: hidden;
  position: absolute;
  top: 0;
  right: 0;
  object-fit: cover;
}

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

.cart {
  width: 100%;
  height: 50%;
  background-color: #fff;
  position: absolute;
  top: 0;
  z-index: 1;
  transform: translateY(0);
  transition: transform 1s;
}

.cart2 {
  width: 100%;
  height: 50%;
  background-color: #fff;
  position: absolute;
  bottom: 0;
  z-index: 1;
  transform: translateY(0);
  transition: transform 1s;
}

.visible .cart {
  transform: translateY(-100%);
}

.visible .cart2 {
  transform: translateY(100%);
}

.works {
  border: 1px solid;
  overflow: auto;
  padding: 5px 30px !important;
  display: table;
  margin: auto;
}

.visible img {
  position: relative;
  top: -50px;
  width: 110%;
  /* 初期サイズ */
  animation-name: slide-down;
  animation-duration: 1s;
  animation-fill-mode: forwards;
  /* アニメーション終了後に状態を保持 */
}

@keyframes slide-down {
  from {
    top: -50px;
    width: 110%;
    /* 初期サイズ */
  }

  to {
    top: 0px;
    width: 100%;
    /* 最終サイズ */
  }
}

.line-container {
  width: 100%;
  /* ラインのコンテナの幅 */
  height: 1px !important;
  /* ラインの高さ */
  background-color: transparent;
  /* コンテナの背景色（透明） */
  overflow: hidden;
  /* コンテナの外に出た部分を隠す */
  margin-bottom: 20px;
  /* ライン間の余白（適宜調整） */
  position: absolute;
  bottom: 10vh;
  z-index: 1;
}

.line {
  width: 100%;
  /* ラインの初期幅 */
  height: 100%;
  /* ラインの高さ */
  background-color: #fff !important;
  /* ラインの色 */
  transform: translateX(100%);
  /* ラインの初期位置（右端） */
}

/* アニメーションを適用するクラス */
.long_left .line {
  animation: slideLine 5s forwards;
}

@keyframes slideLine {
  from {
    transform: translateX(100%);
    /* アニメーション開始時の位置 */
  }

  to {
    transform: translateX(0);
    /* アニメーション終了時の位置（左端） */
  }
}

.sr_btn {
  font-weight: 600;
  position: absolute;
  bottom: 15%;
  right: 50px;
  color: #fff;
  font-size: 1.5em;
  font-family: ;
  border: 1px solid;
  padding: 0 10px;
  z-index: 1;
  transition: .5s;
}

.sr_btn:hover {
  background: #fff;
  color: #666;
  mix-blend-mode: luminosity;
  transition: .5s;
  border: 1px solid #fff;
}

.main_img {
  height: 100vh;
  overflow: hidden;
  /* Ensure video covers the entire section */
  position: relative;
}

#section0 {
  position: relative;
  background-size: cover;
  background-repeat: no-repeat;
}

#section0 video {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  min-width: 100%;
  min-height: 100%;
  width: auto;
  height: auto;
  z-index: -1;
  /* Ensure the video is behind the content */
}

#section0::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.3);
  /* RGBA filter */
  z-index: 0;
  /* Ensure the overlay is above the video but below the content */
}

.copy {
  position: relative;
  z-index: 1;
  /* Ensure the text is above the video and overlay */
  text-align: center;
  color: white;
  /* Adjust text color if necessary */
}


#section1 {
  background-image: url(img/1.jpeg);
  background-attachment: fixed;
}

#section2 {
  background-image: url(img/2.jpeg);
}

#section3 {
  background-image: url(img/3.jpeg);
}

#section4 {
  background-image: url(img/4.jpeg);
}

#section5 {
  background-image: url(img/5.jpeg);
}

#section6 {
  background-image: url(img/6.jpeg);
}

#fp-nav ul li a span,
.fp-slidesNav ul li a span {
  background: #fff;
}

.section {
  position: relative;
  background-size: cover;
  background-repeat: no-repeat;

  transition: background-position 0.5s ease;
  /* アニメーションを追加 */
}

#section0::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.2);
  z-index: 1;
}

#section1::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.3);
  z-index: 1;
}

#section2::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.3);
  z-index: 1;
}

#section3::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.3);
  z-index: 1;
}

#section4::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.3);
  z-index: 1;
}

#section5::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.3);
  z-index: 1;
}

#section6::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.3);
  z-index: 1;
}

.intro {
  position: absolute;
  left: 0;
  width: 50vw;
  text-align: left;
  z-index: 2;
  top: 27%;
  left: 10%;
}

.inscroll {
  background-position: center -50px;
  animation: moveBackground 2s forwards;
  /* 2秒でアニメーションが完了し、アニメーションが終了しても元に戻らないようにする */
}

@keyframes moveBackground {
  from {
    background-position: center -50px;
  }

  to {
    background-position: center 0px;
  }
}

.title {
  font-size: 5em;
  font-family: ;
}

.text-split {
  overflow: hidden;
  color: #fff;
}

.text-split span {
  display: inline-block;
  min-width: 0.15em;
}

.copy {
  opacity: 0;
  /* 初期状態は非表示 */
  transition: opacity 1s ease;
  /* opacityの変化を1秒でスムーズにする */
}

.copy.active {
  opacity: 1;
  /* 表示時のopacity */
}

.cp2 {
  margin-top: -18em;
}

.block--6 .text-split span {
  color: #2340b7;
  -webkit-clip-path: polygon(0 50%, 100% 50%, 100% 50%, 0 50%);
  clip-path: polygon(0 50%, 100% 50%, 100% 50%, 0 50%);
}

.block--6 .text-split span:nth-of-type(3n + 2) {
  -webkit-clip-path: polygon(0 0, 1% 0, 1% 100%, 0 0);
  clip-path: polygon(0 0, 1% 0, 1% 100%, 0 0);
}

.block--6 .text-split span:nth-of-type(3n + 3) {
  -webkit-clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%);
  clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%);
}

.block--6 .is-active .text-split span {
  color: #fff;
  -webkit-clip-path: polygon(100% 0, 100% 100%, 0 100%, 0 0);
  clip-path: polygon(100% 0, 100% 100%, 0 100%, 0 0);
  transition: color 1s cubic-bezier(0.19, 1, 0.22, 1),
    -webkit-clip-path 0.65s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: clip-path 0.65s cubic-bezier(0.165, 0.84, 0.44, 1),
    color 1s cubic-bezier(0.19, 1, 0.22, 1);
  transition: clip-path 0.65s cubic-bezier(0.165, 0.84, 0.44, 1),
    color 1s cubic-bezier(0.19, 1, 0.22, 1),
    -webkit-clip-path 0.65s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.block--6 .is-active .text-split span:nth-child(1) {
  transition-delay: 0s, 0.2s;
}

.block--6 .is-active .text-split span:nth-child(2) {
  transition-delay: 0.025s, 0.225s;
}

.block--6 .is-active .text-split span:nth-child(3) {
  transition-delay: 0.05s, 0.25s;
}

.block--6 .is-active .text-split span:nth-child(4) {
  transition-delay: 0.075s, 0.275s;
}

.block--6 .is-active .text-split span:nth-child(5) {
  transition-delay: 0.1s, 0.3s;
}

.block--6 .is-active .text-split span:nth-child(6) {
  transition-delay: 0.125s, 0.325s;
}

.block--6 .is-active .text-split span:nth-child(7) {
  transition-delay: 0.15s, 0.35s;
}

.block--6 .is-active .text-split span:nth-child(8) {
  transition-delay: 0.175s, 0.375s;
}

.block--6 .is-active .text-split span:nth-child(9) {
  transition-delay: 0.2s, 0.4s;
}

.block--6 .is-active .text-split span:nth-child(10) {
  transition-delay: 0.225s, 0.425s;
}

.block--6 .is-active .text-split span:nth-child(11) {
  transition-delay: 0.25s, 0.45s;
}

.block--6 .is-active .text-split span:nth-child(12) {
  transition-delay: 0.275s, 0.475s;
}

.block--6 .is-active .text-split span:nth-child(13) {
  transition-delay: 0.3s, 0.5s;
}

.block--6 .is-active .text-split span:nth-child(14) {
  transition-delay: 0.325s, 0.525s;
}

.block--6 .is-active .text-split span:nth-child(15) {
  transition-delay: 0.35s, 0.55s;
}

.block--6 .is-active .text-split span:nth-child(16) {
  transition-delay: 0.375s, 0.575s;
}

.block--6 .is-active .text-split span:nth-child(17) {
  transition-delay: 0.4s, 0.6s;
}

.block--6 .is-active .text-split span:nth-child(18) {
  transition-delay: 0.425s, 0.625s;
}

.block--6 .is-active .text-split span:nth-child(19) {
  transition-delay: 0.45s, 0.65s;
}

.block--6 .is-active .text-split span:nth-child(20) {
  transition-delay: 0.475s, 0.675s;
}

.block--6 .is-active .text-split span:nth-child(1) {
  transition-delay: 0.05s, 0.25s;
}

.block--6 .is-active .text-split span:nth-child(2) {
  transition-delay: 0.075s, 0.275s;
}

.block--6 .is-active .text-split span:nth-child(3) {
  transition-delay: 0.1s, 0.3s;
}

.block--6 .is-active .text-split span:nth-child(4) {
  transition-delay: 0.125s, 0.325s;
}

.block--6 .is-active .text-split span:nth-child(5) {
  transition-delay: 0.15s, 0.35s;
}

.block--6 .is-active .text-split span:nth-child(6) {
  transition-delay: 0.175s, 0.375s;
}

.block--6 .is-active .text-split span:nth-child(7) {
  transition-delay: 0.2s, 0.4s;
}

.block--6 .is-active .text-split span:nth-child(8) {
  transition-delay: 0.225s, 0.425s;
}

.block--6 .is-active .text-split span:nth-child(9) {
  transition-delay: 0.25s, 0.45s;
}

.block--6 .is-active .text-split span:nth-child(10) {
  transition-delay: 0.275s, 0.475s;
}

.block--6 .is-active .text-split span:nth-child(11) {
  transition-delay: 0.3s, 0.5s;
}

.block--6 .is-active .text-split span:nth-child(12) {
  transition-delay: 0.325s, 0.525s;
}

.block--6 .is-active .text-split span:nth-child(13) {
  transition-delay: 0.35s, 0.55s;
}

.block--6 .is-active .text-split span:nth-child(14) {
  transition-delay: 0.375s, 0.575s;
}

.block--6 .is-active .text-split span:nth-child(15) {
  transition-delay: 0.4s, 0.6s;
}

.block--6 .is-active .text-split span:nth-child(16) {
  transition-delay: 0.425s, 0.625s;
}

.block--6 .is-active .text-split span:nth-child(17) {
  transition-delay: 0.45s, 0.65s;
}

.block--6 .is-active .text-split span:nth-child(18) {
  transition-delay: 0.475s, 0.675s;
}

.block--6 .is-active .text-split span:nth-child(19) {
  transition-delay: 0.5s, 0.7s;
}

.block--6 .is-active .text-split span:nth-child(20) {
  transition-delay: 0.525s, 0.725s;
}

.block--6 .is-active .text-split span:nth-child(1) {
  transition-delay: 0.1s, 0.3s;
}

.block--6 .is-active .text-split span:nth-child(2) {
  transition-delay: 0.125s, 0.325s;
}

.block--6 .is-active .text-split span:nth-child(3) {
  transition-delay: 0.15s, 0.35s;
}

.block--6 .is-active .text-split span:nth-child(4) {
  transition-delay: 0.175s, 0.375s;
}

.block--6 .is-active .text-split span:nth-child(5) {
  transition-delay: 0.2s, 0.4s;
}

.block--6 .is-active .text-split span:nth-child(6) {
  transition-delay: 0.225s, 0.425s;
}

.block--6 .is-active .text-split span:nth-child(7) {
  transition-delay: 0.25s, 0.45s;
}

.block--6 .is-active .text-split span:nth-child(8) {
  transition-delay: 0.275s, 0.475s;
}

.block--6 .is-active .text-split span:nth-child(9) {
  transition-delay: 0.3s, 0.5s;
}

.block--6 .is-active .text-split span:nth-child(10) {
  transition-delay: 0.325s, 0.525s;
}

.block--6 .is-active .text-split span:nth-child(11) {
  transition-delay: 0.35s, 0.55s;
}

.block--6 .is-active .text-split span:nth-child(12) {
  transition-delay: 0.375s, 0.575s;
}

.block--6 .is-active .text-split span:nth-child(13) {
  transition-delay: 0.4s, 0.6s;
}

.block--6 .is-active .text-split span:nth-child(14) {
  transition-delay: 0.425s, 0.625s;
}

.block--6 .is-active .text-split span:nth-child(15) {
  transition-delay: 0.45s, 0.65s;
}

.block--6 .is-active .text-split span:nth-child(16) {
  transition-delay: 0.475s, 0.675s;
}

.block--6 .is-active .text-split span:nth-child(17) {
  transition-delay: 0.5s, 0.7s;
}

.block--6 .is-active .text-split span:nth-child(18) {
  transition-delay: 0.525s, 0.725s;
}

.block--6 .is-active .text-split span:nth-child(19) {
  transition-delay: 0.55s, 0.75s;
}

.block--6 .is-active .text-split span:nth-child(20) {
  transition-delay: 0.575s, 0.775s;
}



/*ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委*/

body {
  opacity: 0;           /* 初期は透明に */
}

body.pageOn {
  opacity: 1;           /* JSでクラス追加で表示 */
  transition: opacity 0.5s ease-in-out;
}

.top_page{opacity: 1;}

/*ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委*/
.topCurtainbg {
  display: block;
  position: fixed;
  z-index: 999;
  width: 100%;
  height: 100vh;
  top: 0;
  left: 0;
  background-color: #fff;
  animation: fadeCurtain 1s ease-in-out forwards;
}

/* フェードイン・アウトのアニメーション */
@keyframes fadeCurtain {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

.fadeout {
  animation: fadeOut 1s;
  animation-fill-mode: both;
}

@keyframes fadeOut {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

#container {
  opacity: 0; /* はじめは透過0 */
}

/* bodyにpageOnクラスがついたら出現 */
body.pageOn #container {
  animation: PageAnimeOn 1s 0.8s forwards;
}

@keyframes PageAnimeOn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}


.copy {
  position: relative;
  top: calc(50% - 8em);
}


body::after {
  content: '';
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  z-index: 9999;
  pointer-events: none;
  opacity: 0;
  -webkit-transition: opacity .8s ease;
  transition: opacity .8s ease;
}

body.fadeout::after {
  opacity: 1;
}

/*ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委ページ推移委*/
/*ページローディングページローディングページローディングページローディングページローディングページローディングページローディングページローディングページローディングページローディングページローディングページローディングページローディングページローディングページローディングページローディングページローディングページローディングページローディングページローディング*/
.progress {
  background-color: rgb(76, 84, 130);
  color: rgb(255, 255, 255);
  height: 100%;
  position: absolute;
  width: 100%;
}

.progress_bar {
  border-top: 1px solid rgb(160, 160, 160);
  position: absolute;
  top: 50%;
  width: 0%;
}

.progress_text {
  font-family: "Menlo", "Consolas", monospace;
  font-size: 13px;
  margin-top: 10px;
  position: absolute;
  text-align: center;
  top: 50%;
  width: 100%;
}

.progress_complete .progress_bar {
  border-top-color: rgb(255, 255, 255);
}

/*ページローディングページローディングページローディングページローディングページローディングページローディングページローディングページローディングページローディングページローディングページローディングページローディングページローディングページローディングページローディングページローディングページローディングページローディングページローディングページローディング*/
/* スクロールダウンスクロールダウンスクロールダウンスクロールダウンスクロールダウンスクロールダウンスクロールダウンスクロールダウンスクロールダウンスクロールダウンスクロールダウンスクロールダウンスクロールダウンスクロールダウンスクロールダウンスクロールダウンスクロールダウンスクロールダウン */
.scroll {
  position: absolute;
  left: 5%;
  top: 20%;
  writing-mode: vertical-rl;
  z-index: 99;
}

/* 線のアニメーション部分 */
.scroll::before {
  animation: scroll 2s infinite;
  background-color: #fff;
  bottom: -60vh;
  content: "";
  height: 60vh;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  width: 1px;
}

/* 線のアニメーション */
@keyframes scroll {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 0;
  }

  50% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }

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

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

.sc_box {
  position: relative;
  width: 95%;
  padding-top: 0;
  overflow: hidden;
  height: 50px;
  margin-top: 0;
}

.horizontal-scroll {
  position: absolute;
  top: 0;
  left: 0;
  writing-mode: horizontal-tb;
  /* 横書きに変更 */
  z-index: 99;
}

/* 線のアニメーション部分 */
.horizontal-scroll::before {
  animation: horizontal-scroll-animation 2s infinite;
  background-color: #999;

  content: "";
  width: 300px;
  /* 高さから幅に変更 */
  top: 0px;
  left: 0;
  margin: auto;
  position: absolute;
  bottom: 0;
  height: 2px;
  /* 幅から高さに変更 */
}

/* 線のアニメーション */
@keyframes horizontal-scroll-animation {
  0% {
    transform: scale(0, 1);
    transform-origin: 0 0;
  }

  50% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }

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

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



.ba_img2 .horizontal-scroll {
  position: absolute;
  top: 0;
  right: 0;
  writing-mode: horizontal-tb;
  /* 横書きに変更 */
  z-index: 99;
}

/* 線のアニメーション部分 */
.ba_img2 .horizontal-scroll::before {
  animation: horizontal-scroll-animation2 2s infinite;
  background-color: #999;

  content: "";
  width: 300px;
  /* 高さから幅に変更 */
  top: 0px;
  left: 0;
  margin: auto;
  position: absolute;
  bottom: 0;
  height: 2px;
  /* 幅から高さに変更 */
}

/* 線のアニメーション */
@keyframes horizontal-scroll-animation2 {
  0% {
    transform: scale(0, 1);
    transform-origin: 100% 0;
  }

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

  51% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }

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


/*メガメニューメガメニューメガメニューメガメニューメガメニューメガメニューメガメニューメガメニューメガメニューメガメニューメガメニューメガメニューメガメニューメガメニューメガメニューメガメニューメガメニューメガメニューメガメニューメガメニューメガメニューメガメニューメガメニュー*/

li ul {
  width: 100vw !important;
  position: absolute;
  left: 0;
}

.menu-mobile {
  display: none;

  &:after {
    position: absolute;
    content: "≡";
    font-family: "Ionicons";
    font-size: 2.5rem;
    padding: 0;
    float: none;
    top: -8vh;
    transform: translateY(-25%);
    right: 20px;
    z-index: 999;
  }
}

.rec_home .menu-mobile::after {
  content: "≡";
  position: absolute;
  top: -10vh;
}


.menu {
  >ul {
    margin: 0 auto;
    width: 100%;
    list-style: none;
    padding: 0;
    /* IF .menu position=relative -> ul = container width, ELSE ul = 100% width */
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;

    &:before,
    &:after {
      content: "";
      display: table;
    }

    &:after {
      clear: both;
    }

    >li {
      float: left;
      margin: 0;

      a {
        text-decoration: none;
        display: block;
      }

      >ul {
        display: none;
        width: 100%;
        background-color: #eee;
        position: absolute;
        z-index: 99;
        left: 0;
        margin: 0;
        list-style: none;
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;

        &:before,
        &:after {
          content: "";
          display: table;
        }

        &:after {
          clear: both;
        }

        >li {
          margin: 0;
          padding-bottom: 0;
          list-style: none;
          width: 100%;
          background: none;
          float: left;

          a {
            padding: 0.2em 0;
            width: 95%;
            display: block;
            border-bottom: 1px solid #ccc;
          }

          >ul {
            width: 100%;
            display: block;
            padding: 0;
            margin: 10px 0 0;
            list-style: none;
            -webkit-box-sizing: border-box;
            -moz-box-sizing: border-box;
            box-sizing: border-box;

            &:before,
            &:after {
              content: "";
              display: table;
            }

            &:after {
              clear: both;
            }

            >li {
              float: left;
              width: 100%;
              padding: 10px 0;
              margin: 0;
              font-size: 0.8em;

              a {
                border: 0;
              }
            }
          }
        }

        &.normal-sub {
          width: 90vw !important;
          position: absolute;
          left: 5vw;
          height: auto;
          top: 5em;
          box-shadow: 0px 0px 15px -5px #777777;

          >li {
            width: 100%;

            a {
              border: 0;
              padding: 1em 0;
            }
          }
        }
      }
    }
  }
}

/* ––––––––––––––––––––––––––––––––––––––––––––––––––
Mobile style's
–––––––––––––––––––––––––––––––––––––––––––––––––– */

@media only screen and (max-width: 959px) {
  .menu-container {
    width: 100%;
  }

  .menu-mobile {
    display: block;
  }

  .menu-dropdown-icon {
    &:before {
      display: block;
    }
  }

  .menu {
    >ul {
      display: none;

      >li {
        width: 100%;
        float: none;
        display: block;

        a {
          padding: 1.5em;
          width: 100%;
          display: block;
        }

        >ul {
          position: relative;

          &.normal-sub {
            width: 100%;
          }

          >li {
            float: none;
            width: 100%;
            margin-top: 20px;

            &:first-child {
              margin: 0;
            }

            >ul {
              position: relative;

              >li {
                float: none;
              }
            }
          }
        }
      }
    }

    .show-on-mobile {
      display: block;
    }
  }

}


.header_nav {
  background-color: rgba(0, 0, 0, 0);
  /* 初期の背景色を透明に設定 */
  transition: all 0.5s ease;
  /* 背景色の変化を0.5秒かけてゆっくりと行う */

}

.header_nav a {
  color: #fff;
}

.nav_scr .header_nav {
  background-color: rgba(0, 0, 0, 0.8);
  /* nav_scrクラスが付与されたときの背景色を黒の半透明に設定 */
  font-size: 0.9em;
}

.nav_scr .contact-box,
.nav_scr .pe-box {
  padding: 1.4rem;
}

.header_nav img {
  max-height: 45px;
}

.nav_scr .header_nav img {
  max-height: 30px;
}



.arrow1 {
  width: 6px;
  height: 6px;
  border: 3px solid;
  border-color: transparent transparent #fff #fff;
  transform: rotate(-45deg);
  float: left;
  margin-right: 15px;
  margin-top: 3px;
}


/*円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円円*/
.en {
  width: 25%;
  overflow: auto;
  position: relative;
  height: 280px;
  text-align: center;
  float: left;
}

.en a {
  color: #fff;
}

.en_all {
  max-width: 1280px;
  margin: 0 auto;
}

.item0 {
  position: relative;
  /* itemの位置を基準にするため */
}

.item {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 8px;
  height: 8px;
  background: #72B5B8;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  /* 50%から10%分上に移動 */
  animation: expansion-anim 1s forwards;
  overflow: hidden;
  transition: transform 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s;
}

.item:hover {
  background-color: #87C8CB;
}



.item img {
  max-width: 40%;
  max-height: 40%;
  display: block;
}


.item_text {
  text-align: center;
  position: relative;
  /* item_textの位置を通常の流れに戻すため */
  font-size: 1em;
  /* 必要に応じて調整 */
  padding-top: 58%;
  font-family: ;
  pointer-events: none;
  cursor: default;
}

/* animation */
@keyframes expansion-anim {
  0% {
    transform: translate(-50%, -50%) scale(0);
  }

  100% {
    transform: translate(-50%, -50%) scale(25);
  }
}

.contents_box {
  max-width: 1500px;
  margin: 0 auto;
  padding-top: 50px;
  font-family: ;
}

.contents_box h2 {
  font-size: 3em;
  padding: 1em 0;
}

.contents_box .top_text {
  color: #333;
  text-align: center;
  padding: 2em;
}

.dp_sub,
.we_sub,
.ri_midashi,
.cl54706C {
  font-weight: 500;
}

/* ==========================
  rec_btn
========================== */
.rec_btn {
  width: 20vw;
  height: 13vh;
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 9;
  opacity: 0;
  /* 初期状態は透明 */
  transition: opacity 1s ease-in;
  /* フェードインのためのトランジションを追加 */
}

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

/* フェードインアニメーションのクラス */
.fade-in {
  opacity: 1;
  /* フェードイン後は完全に表示 */
  transition: opacity 1s ease-in;
}

.fade-in.bn_out {
  transition: opacity 1s ease-in;
  opacity: 0 !important;
}

.rec_btn2.bn_out {
  transition: opacity 1s ease-in;
  opacity: 0 !important;
}

@keyframes fadeInrec {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.rec_btn2 {
  width: 20vw;
  height: 13vh;
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 9;
  opacity: 0;
  /* 初期状態で非表示 */
  animation: fadeInrec 1s ease-in-out 2s forwards;
  /* 1秒間でフェードインし、1秒遅延させる */
}

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


.main_contents3 {
  max-width: 80%;
  margin: 0 auto;
  height: 70vh;
}

/* .topics のスタイルはそのままです */
.topics {
  width: 31%;
  float: left;
  margin: 1%;
  overflow: hidden;
  position: relative;
  /* .topics_title の位置を正しく設定するために必要 */
}

/* .topics_img のスタイルもそのままです */
.topics_img {
  width: 100%;
  height: 30vh;
  object-fit: cover;
  position: relative;
  overflow: hidden;
  border-radius: 0 0px 0 0;
  text-align: center;
}

/* 画像のスタイルを変更します */
.topics_img img {
  width: 100%;
  height: 100%;
  transition: transform 2s ease;
  /* transform プロパティに遷移を追加 */
  object-fit: cover;
  transform-origin: center;
  /* 拡大・縮小の基準点を中央に設定 */
}

/* ホバー時の画像のスタイル */
.topics:hover .topics_img img {
  transform: scale(1.1);
  /* 画像を110%に拡大 */
}


.topics_title {
  position: absolute;
  bottom: 0;
  z-index: 99;
  background-color: rgba(0, 0, 0, 0.8);
  padding: 5px 0;
  border-radius: 0 0 0 0;
  font-size: 1.1em;
  width: 100%;
  transition: height 0.5s ease;
  /* 変化を1秒かけて実行 */
  height: 40px;
  /* デフォルトの高さ */
  overflow: hidden;
  /* テキストがあふれるのを防ぐ */
  text-align: left;
}

/* 初期状態の .topics_title_ti のスタイル */
.topics_title_ti {
  padding-left: 20px;
  padding-top: 0px;
  transition: padding-top 0.5s ease;
  /* padding-top を1秒かけて変化させる */
}

/* ホバー時の .topics_title_ti のスタイル */
.topics:hover .topics_title_ti {
  padding-top: 30px;
  /* ホバー時に padding-top を30px に変更 */
}



.topics_text {
  font-size: 0.8em;
  text-align: left;
  padding-top: 10px;
  display: block;
  /* 表示はブロックに設定 */
  opacity: 0;
  /* 初期状態では透明 */
  transition: opacity 1s ease;
  /* 透明度の変化を1秒かけて実行 */
  border-top: 1px solid #eee;
  margin-top: 30px;
  padding-left: 30px;
  padding-right: 30px;
}

/* ホバー時の .topics_title のスタイル */
.topics:hover .topics_title {
  height: 100%;
  /* ホバー時に高さを100%に */
  background-color: rgba(0, 0, 0, 0.5);
}

/* ホバー時の .topics_text のスタイル */
.topics:hover .topics_text {
  opacity: 1;
  /* ホバー時に不透明に */
}

.topics {
  opacity: 0;
  transform: translateY(50px);
  transition: opacity 1s ease, transform 1s ease;
}

.topics.show {
  opacity: 1;
  transform: translateY(0);
}


.topics_all {
  padding-top: 50px;
  overflow: hidden;
}

.news_box {
  max-width: 900px;
  margin: 0 auto;
  padding: 100px 0 0;
}

.news_one {
  border-bottom: dotted 1px;
  padding: 10px;
  text-align: left;
}

.news_info {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN",
    "Hiragino Sans", "Noto Sans", Meiryo, sans-serif;
  font-size: 0.8em;
  float: left;
  padding-right: 20px;
}

.news_news {
  color: #fff;
  background-color: #54706C;
  padding: 5px 15px;
  border-radius: 10px;
  margin-left: 20px;
}

.news_rec {
  color: #fff;
  background-color: #d67c85;
  padding: 5px 15px;
  border-radius: 10px;
  margin-left: 20px;
}




.foot_contents {
  width: 100%;
  background-color: #333333;
  padding: 100px 0;
}


.col {
  height: 100%;
}

div[class*=container] {
  text-align: center;
  height: 33%;
  justify-content: center;
  align-items: center;
}


/*
     BUTTON STYLING
    */

.btn {
  position: absolute;
  right: 15%;
  bottom: 15%;
  color: #333;
  width: 256px;
  height: 64px;
  line-height: 64px;
  transition: all 0.3s;
  background: #fff;

  span {
    transition: all 0.3s;
    tranform: scale(1, 1);
  }
}

.btn:hover {
  background: none;
  color: #fff;

}

.btn::before,
.btn::after {
  content: '';
  position: absolute;
  transition: all 0.3s;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}



/* BTN FOUR */

.btn-four:hover span {
  transform: scale(1.2, 1.2);
}

.btn-four::before {
  opacity: 0;
  background: rgba(169, 204, 206, 0.5);
  transform: scale(0.1, 0.1);
}

.btn-four:hover::before {
  opacity: 1;
  transform: scale(1, 1);
}

.btn-four::after {
  transition: all 0.3s;
  border: 1px solid #72B5B8;
}

.btn-four:hover::after {
  transform: scale(0, 0);
  opacity: 0;
}

.rec_bn2 {
  height: 20vh;
  width: 70%;
  overflow: hidden;
  margin-top: 15px;
}

.sub_menu_1 {
  width: calc(40% - 20px);
  float: left;
  background-color: ;
  height: calc(100% - 20px);
  padding: 10px;
  position: relative;
}

.sub_menu_2 {
  width: calc(20% - 20px);
  float: left;
  background-color: ;
  height: calc(100% - 20px);
  padding: 10px;
  position: relative;
}

.sub_menu_3 {
  width: calc(100% - 20px);
  float: left;
  background-color: ;
  height: calc(18vh - 20px);
  padding: 10px;
  position: relative;
}

.sub_menu_4 {
  width: calc(100% - 20px);
  float: left;
  background-color: ;
  height: calc(100% - 20px);
  padding: 10px;
  position: relative;
}

.sub_menu_3 .sub_menu {
  width: calc(16.6% - 2px);
  float: left;
  background: #fff;
  height: calc(100% - 2px);
  border: 1px dotted #eee;
}

.about1 .sub_menu_3 .sub_menu {
  width: 19.8%;
  float: left;
  background: #fff;
  height: calc(100% - 2px);
  border: 1px dotted #eee;
}

.sub_menu_4 .sub_menu {
  width: calc(33% - 2px);
  float: left;
  background: #fff;
  height: 100%;
  border: 1px dotted #eee;
}

.header_nav .sub_menu_4 .sub_menu_img img {
  max-height: 500px;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sub_menu_1 .sub_menu {
  width: 49%;
  float: left;
  background: #fff;
  height: calc(50% - 2px);
  border: 1px dotted #eee;
}

.sub_menu_2 .sub_menu {
  width: calc(100% - 2px);
  float: left;
  background: #fff;
  height: calc(50% - 2px);
  border: 1px dotted #eee;
}

.sub_menu {
  opacity: 1;
  transition: all 0.3s;
}

.sub_menu a:hover {
  opacity: 0.5;
  transition: all 0.3s;
}

.h100 .sub_menu_ch {
  width: 30%;
  float: left;
  margin-left: 10%;
}

.sub_menu_img {
  background-color: ;
  height: 100%;
  width: 40%;
  overflow: hidden;
  float: left;
}

.sub_menu_img a {
  display: inline !important;
}

.header_nav .sub_menu_img img {
  max-height: 500px;
  width: 80%;
  height: 100%;
  object-fit: contain;
}

.header_nav .hitop .sub_menu_img img {
  max-height: 500px;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sub_menu_pr span {
  font-size: 0.8em;
  display: block;
}

.sub_menu_text {
  text-align: left;
  color: #333;
  width: 80%;
  margin: 0 auto;
}

.sub_menu_ch {
  width: 80%;
  margin: 0 auto;
  border-left: 1px solid #eee;
  padding-left: 15px;
  line-height: 2em;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN",
    "Hiragino Sans", "Noto Sans", Meiryo, sans-serif;
}

.sub_menu_pr {
  font-size: 1em;
  width: calc(60% - 20px);
  height: calc(20vh - 20px);
  /* 必要に応じて高さを設定してください */
  float: right;
  display: flex;
  justify-content: center;
  /* 横方向の中央揃え */
  align-items: center;
  /* 縦方向の中央揃え */
}

.sub_menu_pr a {
  color: #333;
}


.maru {
  position: absolute;
  z-index: 10;
  width: 70px;
  height: 70px;
  background-color: #fff;
  /* Set your desired background color */
  border-radius: 50%;
  /* Make the element a circle */
  display: flex;
  /* Use flexbox to center the text */
  justify-content: center;
  /* Center horizontally */
  align-items: center;
  /* Center vertically */
  font-size: 1.5em;
  /* Adjust the font size as needed */
  box-sizing: border-box;
  /* Include padding and border in the element's total size */
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #333;
  border: 1px dotted #eee;
  font-family: ;
  font-size: 0.8em;
  padding: 10px 0;
}


.en_kaku {
  background-image: url(img/kaku-01.svg);
  background-repeat: no-repeat;
  background-position: center bottom;
  padding: 1em;
  margin-bottom: 1em;
}

/* ==========================
  ローディング画面
========================== */
#bl_loading {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
  transform: translateY(0);
  /* 初期状態は画面上 */
  transition: transform 0.5s;
  /* スライドアウトのためのトランジションを0.5秒に変更 */
}

#bl_loading.slide-out {
  transform: translateY(100%);
  /* スライドアウト時に画面外へ */
}

.bl_loading_content {
  display: flex;
  flex-direction: column;
  align-items: center;
  transition: opacity 0.5s;
  /* フェードアウトのために変更 */
}

.bl_loading_content.fade-out {
  opacity: 0;
  /* フェードアウト時に透明にする */
}

#bl_loadingGaugeWrap {
  width: 100%;
  height: 2px;
  background-color: #ddd;
}

#bl_loadingGaugeMeter {
  width: 0;
  height: 2px;
  background-color: #C9C508;
  display: block;
}

.bl_loading_svg {
  max-width: 200px;
  padding-bottom: 30px;
  transition: max-width 1s, opacity 1s;
  /* 画像の拡大とフェードアウトを追加 */
  display: flex;
  justify-content: center;
  align-items: center;
}

.bl_loading_svg img {
  max-width: 200px;
  padding: 0;
  transition: max-width 1s, opacity 1s;
  /* 拡大とフェードアウトのトランジションを追加 */
  transform-origin: center;
  /* 拡大の基準点を中央に設定 */
  animation: fade 1s infinite alternate;
}

@keyframes fade {
  0% {
    opacity: 0.3;
  }

  100% {
    opacity: 1;
  }
}

.fade-out .bl_loading_svg img {
  max-width: 300px;
  opacity: 0;
  /* フェードアウト */
}





/*会社概要ページ会社概要ページ会社概要ページ会社概要ページ会社概要ページ会社概要ページ会社概要ページ会社概要ページ会社概要ページ会社概要ページ会社概要ページ会社概要ページ会社概要ページ会社概要ページ会社概要ページ*/



.contents_box .sub_menu {
  width: calc(33% - 2px);
  float: left;
  background: #fff;
  height: 380px;
  border: 1px dotted #eee;
}

.contents_box .sub_menu_3 {
  overflow: hidden;
  padding: 100px 0;
}

/*.contents_box{overflow: hidden;}*/


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

.contents_box .sub_menu_img img:hover {
  width: 110%;
  height: 110%;
  transition: all 0.5s;
}

.contents_box .sub_menu_img {
  text-align: center;
  transition: all 0.5s;
}



.company_cont {
  opacity: 0;
  transform: translateY(50px);
  transition: opacity 1s ease, transform 1s ease;
}

.company_cont.show2 {
  opacity: 1;
  transform: translateY(0);
}

.side_on_contents {
  width: 100%;
  position: relative;
  overflow: hidden;
  margin: 0 auto;
}

.sidebar {
  width: 25%;
  padding: 0 0 100px 0;
  position: absolute;
  left: 0;
  font-size: 0.9em;
}

.side_rigth {
  width: 75%;
  padding: 50px 0 0;
  position: relative;
  float: right;
  border-left: solid 1px #eee;
  margin-bottom: 100px;
}

.side_on_contents .fixed {
  position: fixed;
  padding-top: 80px;
  top: 0;
}

.sidebar .sub_menu_3 .sub_menu {
  width: 100%;
  float: none;
  background: #fff;
  height: calc(50% - 2px);
  border: 1px dotted #eee;
}

.sub_menu_text {
  padding-bottom: 0px;
}

.sidebar .sub_menu_ch {
  margin-bottom: 30px;
}

.bottom-fixed {
  position: absolute;
  bottom: 0;
}

.foot_menu {
  color: #fff;
  width: 80%;
  margin: 0 auto;
  overflow: hidden;
  line-height: 1.5em;
}

.foot_ac {
  width: 50%;
  float: left;
  line-height: 2em;
}

.foot_ac img {
  max-width: 400px;
}

.foot_ch {
  width: 16%;
  float: left;
  font-size: 0.8em;
}

.foot_ch a {
  color: #fff;
}

.side_right_cont {
  max-width: 80%;
  margin: 0 auto;
}

.menu-link {
  color: black;
  /* 通常のリンクの色 */
  text-decoration: none;
  /* 下線を削除 */
  position: relative;
  /* 擬似要素を使うために相対位置に設定 */
}

.menu-link::after {
  content: "";
  /* 擬似要素にコンテンツを設定 */
  display: block;
  position: absolute;
  left: 0;
  bottom: -2px;
  /* 下線の位置を調整 */
  width: 100%;
  height: 2px;
  /* 下線の太さ */
  background-color: #C9C508;
  /* 下線の色 */
  transform: scaleX(0);
  /* 初期状態で下線を非表示 */
  transform-origin: left;
  /* アンダーバーの伸びる方向を左から右に設定 */
  transition: transform 0.5s ease;
  /* 下線の表示をスムーズにする */
}

.menu-link.active::after {
  transform: scaleX(1);
  /* アクティブなリンクで下線を表示 */
}

.t-one {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  border-bottom: 1px solid #eee;
  overflow: hidden;
}

.t-one:nth-child(even) {
  background-color: #f9f9f9;
  /* 薄いグレーの背景色 */
}

.t-all {
  overflow: auto;
  margin-top: 50px;
  border-top: 1px solid #eee;
}

.t-left {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20%;
  padding: 10px;
  box-sizing: border-box;
  flex-direction: column;
  /* 縦方向に配置 */
}

.t-right {
  width: 80%;
  padding: 10px;
  box-sizing: border-box;
  text-align: left;
  font-weight: bolder;
  border-left: 1px solid #eee;
  padding-left: 30px;
  padding-right: 30px;
  line-height: 1.7em;
  display: flex;
  align-items: center;
}

.t-right div {
  width: 50%;
  float: left;
}

.kome {
  font-size: 0.7em;
  text-align: left;
  line-height: 2em;
}

.t-right2 {
  width: 80%;
  padding: 10px;
  box-sizing: border-box;
  text-align: left;
  font-weight: bolder;
  border-left: 1px solid #eee;
  padding: 30px;
  line-height: 1.7em;
}

.t-right2 div {
  width: 50%;
  float: left;

}


/* Google Mapを囲う要素 */
.map {
  position: relative;
  width: 100%;
  height: 0;
  padding-top: 55%;
  /* 比率を4:3に固定 */
}

/* Google Mapのiframe */
.map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}


.side_right_cont .en_kaku {
  margin-bottom: 100px;
}

.ba_all {
  max-width: 1200px;
  margin: 0 auto;
}

.ba_img_b {
  width: 28%;
  float: left;
  padding: 1%;
  text-align: left;
  background: ;
  border-radius: 60px 0 0 60px;
  padding: 5vh 0 5vh 0;
  margin-top: 5vh;
  height: 30vh;
}

.ba_img_b img {
  width: 100%;
  height: 50%;
  object-fit: cover;
  border-radius: 60px;
}

.ba_img_a {
  width: 67%;
  float: left;
  height: 50vh;
  float: right;
}

.ba_img_a img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 60px;
}

.ba_img {
  width: 100%;
  overflow: hidden;
  padding-top: 50px;
}

.ba_img2 {
  width: 100%;
  padding-top: 50px;
  overflow: hidden;
}

.horizontal-lines {
  height: 10px;
  width: 40px;
  border-top: 10px solid #eee;
  margin: 70px auto 20px;
}



.ba_img2 .ba_img_b {
  float: right;
}

.ba_img2 .ba_img_a {
  float: left;
}

.ba_img_bi,
.ba_img_a,
.ba_img_t {
  opacity: 0;
  transition: opacity 1s ease-out;
}

.ba_img_bi,
.ba_img_a {
  transform: translateY(50px);
  transition: opacity 1s ease-out, transform 0.5s ease-out;
}

.ba_img_bi.fade-in-y-50-to-0,
.ba_img_a.fade-in-y-50-to-0,
.ba_img_t.fade-in-y-50-to-0 {
  opacity: 1;
  transform: translateY(0);
}

.ba_img_bi.fade-in-y-50-to-0 {
  transition-delay: 0.3s;
}

.ba_img_a.fade-in-y-50-to-0 {
  transition-delay: 0.6s;
}

.ba_img_t.fade-in-y-50-to-0 {
  transition-delay: 0.3s;
}


.gray {
  width: 100%;
  padding: 30px 0;
  background-color: #eee;
  background-image: url(img/sen-01.svg);
  background-size: cover;
  background-attachment: fixed;
}

#linkSelect {
  position: fixed;
  right: 0;
  z-index: 999;
}

.jirei {}

.jirei_all {
  display: flex;

}

.jirei_all div {}

.jirei_left {
  width: 10%;
  background-image: url(img/j_line-01.svg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: auto 100%;
}

.jirei_left2 {
  width: 10%;
}

.jirei_photo {
  width: 90%;
}

.jirei_center,
.jirei_right {
  width: calc(50% - 20px);
  text-align: left;
  height: 40vh;
  object-fit: cover;
  padding: 10px;
  float: left;
  /* Optional, depending on the layout of these elements */
}

.jirei_center2 {
  width: calc(100% - 20px);
  text-align: left;
  height: 40vh;
  object-fit: cover;
  padding: 10px;
  float: left;
  /* Optional, depending on the layout of these elements */
}

.jirei_center img,
.jirei_right img,
.jirei_center2 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0px;
}

.jirei_text {
  text-align: left;
  padding-left: 10px;
  line-height: 2em;
  padding-bottom: 30px;
  position: relative;
}

.right_j {
  position: absolute;
  right: 50px;
  border: 1px solid;
  padding: 0 10px;
  background: #fff;
  font-weight: normal;
  font-size: 0.8em;
}

h3 {
  font-size: 1.5em;
  margin-bottom: 30px;
}

.jirei .cont_text {
  padding: 0;
}

.sub_menu_ch a {
  color: #444;
}

.sidebar .sub_menu_ch a {
  padding-top: 5px;
  padding-bottom: 5px;
}





/*会社概要下層ページ会社概要下層ページ会社概要下層ページ会社概要下層ページ会社概要下層ページ会社概要下層ページ会社概要下層ページ会社概要下層ページ会社概要下層ページ会社概要下層ページ会社概要下層ページ会社概要下層ページ会社概要下層ページ会社概要下層ページ*/

.company_lower #section_simple {
  display: block;
  color: #333;
}

.company_lower .top_text {
  color: #333;
}

.company_lower .text-split {
  overflow: hidden;
  color: #333;
}

.company_lower .block--6 .is-active .text-split span {
  color: #54706C;
}


.company_lower .main_img {
  height: 70vh;
  overflow: hidden;
  position: relative;
  border-bottom: 1px solid #eee;
  background-color: #eee;
  background-image: url(img/sen-01.svg);
  background-size: cover;
}

.company_lower .header_nav {
  border-bottom: 1px solid #eee;
  color: #333;
  background-color: #fff;
}

.company_lower .header_nav a {
  color: #333
}

.company_lower .nav_scr .arrow_u .sub_menu_text a {
  color: #333
}

.company_lower .nav_scr .header_nav {
  color: #fff
}

.company_lower .nav_scr .sub_menu_1 {
  color: #333
}

.company_lower .nav_scr .header_nav .menu-container {
  color: #333
}

.company_lower .contact-box a {
  color: #fff
}

.company_lower .pe-box a {
  color: #fff
}

.company_lower .arrow1 {
  border-color: transparent transparent #C9C508 #C9C508;
}

.company_lower .title {
  font-size: 3em;
  font-family: ;
}


.company_lower .intro {
  top: 35%;
}

.company_lower .sr_btn {
  font-weight: 600;
  background-color: #fff;
  position: relative;
  color: #54706C;
  font-size: 1.5em;
  font-family: ;
  border: 1px solid;
  padding: 0 10px;
  z-index: 1;
  transition: .5s;
  margin-left: 5%;
}

.company_lower .logokuro {
  display: block;
}

.company_lower .logoshiro {
  display: none;
}


.company_lower .comimg {
  width: 50%;
  position: absolute;
  right: 0;
  overflow: hidden;
}

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


@media (max-width: 1600px) {

  .header_nav img {
    max-height: 35px;
  }

  .sidebar .sub_menu_ch a {
    padding-top: 15px;
    padding-bottom: 3px;
  }


  .ba_img_b {

    margin-top: 0px;
    padding-top: 0px;

  }

  .sub_menu_text {
    padding-bottom: 10px;
  }

  .sidebar .sub_menu_ch {
    line-height: 2em;
  }

  body {
    font-size: 0.8em;
  }

  .header_nav {
    zoom: 92%;
  }

  .en_all {
    max-width: 1000px;
    margin: 0 auto;
  }

  .item_text {

    padding-top: 70%;

  }

  .contents_box h2 {
    font-size: 2.3em;
    padding: 1em 0;
  }

  .hn_right ul li:not(:last-child) {
    margin-left: 0.5rem !important;
  }

  .contact-box,
  .pe-box {
    padding: 1.9rem 1rem !important;
  }

  .cont_text {
    line-height: 2em;
  }

  .btn {
    position: absolute;
    right: 15%;
    bottom: 15%;
    color: #333;
    width: 256px;
    height: 45px;
    line-height: 45px;
    transition: all 0.3s;
  }

  .title {
    font-size: 4em;
    font-family: ";

  }

  .sub_menu_pr {
    font-family: ;
    font-size: 1.2em;
    padding: 10px 0;
  }

  .sub_menu_ch {
    font-size: 0.9em;
    line-height: 1.5em;

  }

  .arrow_u {
    padding-left: 10px !important;
  }

  .arrow1 {

    margin-right: 5px;
    margin-top: 0px;
  }

  .about1 .sub_menu_3 .sub_menu {
    width: calc(20% - 3px);
    height: calc(100% - 2px);

  }

  .menu {
    font-size: 0.9em;

    >ul {
      margin: 0 auto;
      width: 100%;
      list-style: none;
      padding: 0;
      /* IF .menu position=relative -> ul = container width, ELSE ul = 100% width */
      -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
      box-sizing: border-box;

      &:before,
      &:after {
        content: "";
        display: table;
      }

      &:after {
        clear: both;
      }

      >li {
        float: left;
        margin: 0;

        a {
          text-decoration: none;
          display: block;
        }

        >ul {
          display: none;
          width: 100%;
          position: absolute;
          z-index: 99;
          left: 0;
          margin: 0;
          list-style: none;
          -webkit-box-sizing: border-box;
          -moz-box-sizing: border-box;
          box-sizing: border-box;

          &:before,
          &:after {
            content: "";
            display: table;
          }

          &:after {
            clear: both;
          }

          >li {
            margin: 0;
            padding-bottom: 0;
            list-style: none;
            width: 100%;
            background: none;
            float: left;

            a {
              padding: .2em 0;
              width: 95%;
              display: block;
              border-bottom: 1px solid #ccc;
            }

            >ul {
              width: 100%;
              display: block;
              padding: 0;
              margin: 10px 0 0;
              list-style: none;
              -webkit-box-sizing: border-box;
              -moz-box-sizing: border-box;
              box-sizing: border-box;

              &:before,
              &:after {
                content: "";
                display: table;
              }

              &:after {
                clear: both;
              }

              >li {
                float: left;
                width: 100%;
                padding: 10px 0;
                margin: 0;
                font-size: .8em;

                a {
                  border: 0;
                }
              }
            }
          }

          &.normal-sub {
            width: 97vw !important;
            position: absolute;
            left: 5vw;
            top: 5em;
            box-shadow: 0px 0px 15px -5px #777777;

            >li {
              width: 100%;

              a {
                border: 0;
                padding: 1em 0;
              }
            }
          }
        }
      }
    }
  }

  .sub_menu_1 .sub_menu {
    width: calc(50% - 3px);

  }

  .top_text img {
    max-width: 25%;
    padding-top: 30px;
  }
}



/*サステナアニメーションサステナアニメーションサステナアニメーションサステナアニメーションサステナアニメーションサステナアニメーションサステナアニメーションサステナアニメーションサステナアニメーションサステナアニメーションサステナアニメーションサステナアニメーションサステナアニメーションサステナアニメーションサステナアニメーション*/
.rg2 {
  min-width: 400px;
  width: 400px;
  height: 400px;
  object-fit: cover;
  overflow: hidden;
}


.rg2 img {
  display: inline-block;
  transform: scale(1.2);
  /* 初期状態は110% */
  transition: transform 2s ease-out;
  /* 縮小アニメーションに1秒の遅延 */
}

.rg2 img.expand-scale {
  transform: scale(1);
  /* 100%のサイズに縮小 */
}

.rg3 {
  min-width: 400px;
  width: 400px;
  height: 400px;
  object-fit: cover;
  overflow: hidden;
}


.rg3 img {
  display: inline-block;
  transform: scale(1.2);
  /* 初期状態は110% */
  transition: transform 2s ease-out;
  /* 縮小アニメーションに1秒の遅延 */
}

.rg3 img.expand-scale {
  transform: scale(1);
  /* 100%のサイズに縮小 */
}

.link_ul {
  position: relative;
}

.link_ul {
  position: relative;
}

.link_ul::after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 100%;
  height: 2px;
  background-color: #C9C508;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.5s ease 0.5s;
  /* 1秒遅らせる */
}

.link_ul.is-visible-link::after {
  transform: scaleX(1);
}

.sub_menu_pr a {
  position: relative;
}



@media (max-width: 1024px) {
  .common_achieve-flex {
    display: block;
  }

  .common_grid2 {
    grid-template-columns: repeat(2, 1fr);
  }

  .common_grid3 {
    grid-template-columns: repeat(1, 1fr);
  }

  .cg-1 img,
  .cg-1-1 img,
  .cg-1-1-1 img,
  .cg-2-2-2 img {
    aspect-ratio: 2 / 1;
    object-fit: cover;
  }

  .cg-1-1 {
    grid-area: 1 / 1 / 3 / 3;
  }

  .cg-2-2 {
    grid-area: 3 / 1 / 4 / 2;
  }

  .cg-3-3 {
    grid-area: 3 / 2 / 4 / 3;
  }

  .cg-4-4 {
    grid-area: 4 / 1 / 5 / 2;
  }

  .cg-5-5 {
    grid-area: 4 / 2 / 5 / 3;
  }

  .company_img {
    width: 100%;
    height: auto;
    overflow: hidden;
    position: absolute;
    top: 0;
    left: 0;
    object-fit: cover;
  }

  .main_contents2 {
    width: 100%;
    height: 500px;
    overflow: hidden;
    position: relative;
  }

  .company_text_01 {
    width: 60%;
    height: 80%;
    background-color: rgba(255, 255, 255, 0);
    transition: opacity 1s ease-in-out;
  }

  .company_img {
    width: 100%;
    height: 500px;
    overflow: hidden;
    position: absolute;
    top: 0;
    left: 0;
    object-fit: cover;
  }

  .giconimg {
    width: 60px !important;
    display: block;
    height: auto;
    transition: transform 0.3s ease;
  }

  .g_title_c {
    position: absolute;
    width: 70px;
    top: 0px;
    height: 70px;
    border-radius: 300px;
    line-height: 1.2em;
    z-index: 5;
    display: flex;
    justify-content: center;
    align-items: center;
    color: white;
    text-align: center;
  }

  .gsect1 {
    background: #72b5b8;
    left: calc(20% - 30px);
  }

  .gsect2 {
    background: #beab5c;
    left: calc(50% - 31px);
  }

  .gsect3 {
    background: #df828e;
    left: calc(80% - 32px);
  }

  .topics_img {
    width: 100%;
    height: 15vh;
  }

  .main_contents3 {
    max-width: 80%;
    margin: 0 auto;
    height: 500px;
  }

  .rec_btn {
    width: 40vw;
    height: 10vh;
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 9;
    opacity: 0;
    transition: opacity 1s ease-in;
  }

  .menu {
    &>ul {
      &>li {
        &>ul {
          &.normal-sub {
            width: 97vw !important;
            position: absolute;
            left: 5vw;
            height: 40vh;
            top: 5em;
            box-shadow: 0px 0px 15px -5px #777777;
          }
        }
      }
    }
  }

  div[class*="container"] {
    text-align: center;
    height: 33%;
    font-size: 0.8em;
    justify-content: center;
    align-items: center;
  }

  .g_icon {
    font-size: 0.9em;

  }

  .giconimg {
    width: 60px !important;
    margin: 0 auto;
  }

  .foot_ac img {
    max-width: 300px;
  }




  .arc3 .arc-b,
  .arc4 .arc-b {
    width: calc((100% - clamp(0.313rem, -1.707rem + 4.21vw, 2.5rem)) / 2);
  }

  .sub_menu_1 {
    width: calc(100% - 20px);
    height: calc(38vh - 20px);
    padding: 10px;
    position: relative;
  }

  .sub_menu_2 {
    width: calc(100% - 20px);
    height: calc(19% - 20px);
    padding: 10px;
    position: relative;
  }

  .menu {
    &>ul {
      &>li {
        &>ul {
          &.normal-sub {
            width: 97vw !important;
            position: absolute;
            left: 6vw;
            height: 95vh;
            top: -3vh;
            box-shadow: 0px 0px 15px -5px #777777;
          }
        }
      }
    }
  }

  .sub_menu_2 .sub_menu {
    width: calc(50% - 3px);
    float: left;
    background: #fff;
    height: calc(100% - 2px);
    border: 1px dotted #eee;
  }

  .menu {
    &>ul {
      &>li {
        a {
          padding: 0;
          width: 80%;
          display: block;
        }
      }
    }
  }

  .sub_menu_ch {
    display: none;
  }

  .sub_menu_3 .sub_menu {
    width: calc(100% - 2px);
    float: left;
    background: #fff;
    height: calc(16.6% - 2px);
    border: 1px dotted #eee;
  }

  .sub_menu_3 .sub_menu_img {
    background-color: #eee;
    height: calc(100% - 20px);
    width: 30%;
    margin: 10px 0 10px 10px;
    overflow: hidden;
    float: left;
  }

  .sub_menu_3 .sub_menu_text {
    text-align: left;
    color: #333;
    width: 60%;
    margin: 10px 10px 10px 10px;
    float: right;
  }

  .sub_menu_3 .sub_menu_pr {
    padding: 12% 0;
  }

  .sub_menu_4 .sub_menu {
    width: calc(100% - 2px);
    float: left;
    background: #fff;
    height: calc(12.5% - 2px);
    border: 1px dotted #eee;
  }

  .sub_menu_4 .sub_menu_img {
    background-color: #eee;
    height: calc(100% - 20px);
    width: 20%;
    margin: 10px 0 10px 10px;
    overflow: hidden;
    float: left;
  }

  .sub_menu_4 .sub_menu_text {
    text-align: left;
    color: #333;
    width: 70%;
    margin: 10px 10px 10px 10px;
    float: right;
  }

  .sub_menu_4 .sub_menu_pr {
    font-size: 1.2em;
    padding: 8% 0;
  }

  .menu {
    background-color: rgba(255, 255, 255, 1);
    /* 白で50%の透明度 */
    color: #333;
    font-size: 1.2em;
  }

  .header_nav {
    position: absolute;
    z-index: 1;
    color: #fff;
    width: 100vw;
    justify-content: space-between;
    display: block;
    align-items: center;
  }

  .menu-container {
    width: 100%;
    position: absolute;
    top: 10vh;
    left: 0;
  }

  .arrow_u {
    height: 16.5vh;
    display: flex !important;
    /* Flexboxコンテナとして設定 */
    align-items: center;
    /* 垂直方向の中央揃え */
    justify-content: center;
    /* 水平方向の中央揃え（任意） */
  }

  .hn_right ul li:not(:last-child) {
    margin-left: 0 !important;
  }

  .header_nav .arrow_u a {
    color: #333;
  }

  .arrow1 {
    border-color: transparent transparent #333 #333;
  }

  .ch-ar {
    width: 80%;
  }

  .arrow_u {
    border-bottom: 1px dotted #333;
  }

  .arrow1 {
    position: absolute;
    left: 30px;
    z-index: 9;
  }


  .sub_menu_pr {
    font-size: 1.0em;
    padding: 10px 0;
  }

  .ch-ar {
    width: 50%;
    font-size: 1.3em;
  }

  /* company.html へのリンクのみをターゲットにする */
  li.arrow_u>a[href="company.html"] {
    display: inline-block;
    width: 50%;
    font-size: 1.3em;
  }

  /* 子の <ul> 要素には影響を与えない */
  li.arrow_u>a[href="company.html"]+ul {
    width: 100%;
  }

  /* 「採用情報」のli要素内のaタグのみをターゲットにする */
  li.arrow_u>a[href="/recruit/"] {
    display: inline-block;
    width: 50%;
    font-size: 1.3em;
  }

  /* そのaタグの直後にある ul 要素には影響を与えない */
  li.arrow_u>a[href="/recruit/"]+ul {
    width: 100%;
  }


  .sub_menu_4 {
    font-size: 0.8em
  }

  .company_img {
    width: 100%;
    height: 100%;
    overflow: hidden;
    position: absolute;
    top: 0;
    left: 0;
    object-fit: cover;
  }

  .pe-box a,
  .contact-box a {
    width: 100% !important;
  }

  .pe-box,
  .contact-box {
    height: 10.5vh;
    display: flex !important;
    align-items: center;
    justify-content: center;
  }


  .line-container {
    width: 100%;
    height: 1px !important;
    background-color: transparent;
    overflow: hidden;
    margin-bottom: 30px;
    position: absolute;
    bottom: 3vh
  }

  .sr_btn {
    font-weight: 600;
    position: absolute;
    bottom: 3%;
    right: 20px;
    color: #fff;
    font-size: 1.5em;
    border: 1px solid;
    padding: 0 10px;
    z-index: 1;
    transition: 0.5s;
  }

  #section1 {
    background-position: calc(50% + 100px) center;
  }

  .intro {

    width: 80vw;

  }

  .top_text {
    font-size: 1.2em;
  }

  .main_img {
    height: 800px;
  }


  .main_img img {
    width: auto !important;
    height: 100% !important;
  }


}

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

  .header_nav {
    zoom: 100%;
  }

}

@media (max-width: 768px) {
h3{font-size:1.3em;}
  .arc3 .arc-b,
  .arc4 .arc-b {
    width: calc((100% - clamp(0.313rem, -1.707rem + 4.21vw, 2.5rem)) / 2);
  }

  .sub_menu_1 {
    width: calc(100% - 20px);
    height: calc(38vh - 20px);
    padding: 10px;
    position: relative;
  }

  .sub_menu_2 {
    width: calc(100% - 20px);
    height: calc(19% - 20px);
    padding: 10px;
    position: relative;
  }

  .menu {
    &>ul {
      &>li {
        &>ul {
          &.normal-sub {
            width: 90vw !important;
            position: absolute;
            left: 5vw;
            height: 82vh;
            top: -3vh;
            box-shadow: 0px 0px 15px -5px #777777;
          }
        }
      }
    }
  }

  .sub_menu_2 .sub_menu {
    width: calc(50% - 3px);
    float: left;
    background: #fff;
    height: calc(100% - 2px);
    border: 1px dotted #eee;
  }

  .menu {
    &>ul {
      &>li {
        a {
          padding: 0;
          width: 50%;
          padding: 4vh 0;
          display: block;
        }
      }
    }
  }

.menu .sub_menu_pr a{width: 80%;}
  .sub_menu_ch {
    display: none;
  }

  .sub_menu_3 .sub_menu {
    width: calc(100% - 2px);
    float: left;
    background: #fff;
    height: calc(100% - 2px);
    border: 1px dotted #eee;
  }


  .about1 .sub_menu_3 .sub_menu {
    width: calc(100% - 2px);
    float: left;
    background: #fff;
    border: 1px dotted #eee;
  }

  .sub_menu_3 .sub_menu_img {
    background-color: #eee;
    height: calc(100% - 20px);
    width: 30%;
    margin: 10px 0 10px 10px;
    overflow: hidden;
    float: left;
  }

  .sub_menu_3 .sub_menu_text {
    text-align: left;
    color: #333;
    width: 60%;
    margin: 10px 10px 10px 10px;
    float: right;
  }


  .sub_menu_4 .sub_menu {
    width: calc(100% - 2px);
    float: left;
    background: #fff;
    height: calc(33% - 2px);
    border: 1px dotted #eee;
  }

  .sub_menu_4 .sub_menu_img {
    background-color: #eee;
    height: calc(100% - 20px);
    width: 40%;
    margin: 10px 0 10px 10px;
    overflow: hidden;
    float: left;
  }

  .sub_menu_4 .sub_menu_text {
    text-align: left;
    color: #333;
    width: 50%;
    margin: 10px 10px 10px 10px;
    float: right;
  }

  .sub_menu_4 .sub_menu_pr {
    font-size: 1.2em;
    padding: 0;
    width: 100%;
    height: 24vh;
  }

  .menu {
    background-color: rgba(255, 255, 255, 1);
    /* 白で50%の透明度 */
    color: #333;
    font-size: 1.5em;
  }

  .header_nav {
    position: absolute;
    z-index: 1;
    color: #fff;
    width: 100vw;
    justify-content: space-between;
    display: block;
    align-items: center;
  }

  .menu-container {
    width: 100%;
    position: absolute;
    top: 10vh;
    left: 0;
  }

  .arrow_u {
    height: 11vh;
    display: flex !important;
    /* Flexboxコンテナとして設定 */
    align-items: center;
    /* 垂直方向の中央揃え */
    justify-content: center;
    /* 水平方向の中央揃え（任意） */
  }

  .hn_right ul li:not(:last-child) {
    margin-left: 0 !important;
  }

  .header_nav .arrow_u a {
    color: #333;
  }

  .arrow1 {
    border-color: transparent transparent #333 #333;
  }

  .contact-box,
  .pe-box {
    height: 11vh;
    padding: 0 !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
  }

  .ch-ar {
    width: 80%;
  }


  .header_nav img {
    max-height: 45px;
    width: calc(100vw - 100px);
  }

  .common_dl dl {
    display: block;
  }

  .copy {
    position: relative;
    top: calc(50% - 8em);
    font-size: 0.8em;
  }

  .title {
    font-size: 2.5em;
  }

  .top_text img {
    max-width: 60%
  }

  .rec_btn {
    width: 70vw;
    height: 10vh;
    position: fixed;
    bottom: 20px;
    right: 15vw;
    z-index: 9;
    opacity: 0;
    transition: opacity 1s ease-in;
  }

  .contents_box span {
    text-align: left;
    display: inline-block;
    font-size: 1.2em;
    line-height: 2em;
    margin-bottom: 15px;
  }

  .cont_text {
    padding-bottom: 0;
  }

  .g_icon_gr_1 {
    overflow: hidden;
    width: 100%;
  }

  .g_icon_gr_2 {
    width: 100%;
  }

  .g_icon_gr_3 {
    width: 100%;
  }

  .g_icon {
    width: calc(50% - 20px);
    height: calc(32vw - 20px);
  }

  .giconimg {
    width: 60px !important;
    margin: 0 auto;
  }

  .company_text_oo {

    position: relative;
  }

  .main_contents2 {
    width: 100%;
    height: auto;
    overflow: hidden;
    position: relative;
    padding: 50px 0;
  }

  .g_icon_gr_3 .g_icon {
    width: calc(50% - 20px);
  }

  .gkaku {
    top: calc(32vw - 40px) !important;
  }

  .gsect1 {
    left: calc(50% - 25px);
    top: 20px !important;
  }

  .gsect2 {
    left: calc(50% - 25px);
    top: calc(64vw + 20px) !important;
  }


  .gsect3 {
    left: calc(50% - 25px);
    top: calc(128vw + 20px) !important;
  }

  .g_title_c {
    position: absolute;
    width: 60px;
    top: -10px;
    height: 60px;
    font-size: 0.8em;
    border-radius: 300px;
    line-height: 1.5em;
    z-index: 5;
    display: flex;
    justify-content: center;
    align-items: center;
    color: white;
    text-align: center;
  }

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

  .company_text_01 .cont_text {
    text-align: center;
    padding: 20px 10%;
  }

  .btn {
    position: relative;
    right: 0%;
    bottom: 15%;
    color: #333;
    width: 256px;
    height: 45px;
    line-height: 45px;
    width: 100%;
    transition: all 0.3s;
  }

  .rec_bn2 {
    height: 20vh;
    width: 100%;
    overflow: hidden;
    margin-top: 15px;
  }

  .mon .company_img {
    height: 160%;
  }

  .company_img img {
    object-position: left;
    /* ★ここを追加または変更します */
  }

  .mon .company_img img {
    object-position: center;
  }

  .recc .company_img2 img {
    height: 100%;
    width: 100%;
    object-position: calc(50% + 70px) center;
    /* 右に50pxずらす */
    object-fit: cover;
  }

  .contents_box h2 {
    font-size: 1.8em;
  }

  .topics {
    width: 100%;
    float: left;
    margin: 1%;
    overflow: hidden;
    position: relative;
  }

  .topics_img {
    width: 100%;
    height: 150px;
  }

  .info_all_box .contents_box {
    padding-top: 0;
  }


  .main_contents3 {
    max-width: 80%;
    margin: 0 auto;
    height: auto;
    padding-bottom: 80px;
  }

  .foot_ac {
    width: 100%;
    float: right;
    line-height: 2em;
  }

  .foot_ch {
    width: calc(33% - 10px);
    float: left;
    padding: 5px;
    padding-top: 30px;
    font-size: 1em;
  }

  .news_info {
    width: 100%;
  }

  .news_news {
    padding: 3px 15px !important;
    margin-left: 20px;
    margin-bottom: 0px !important;
  }

  .news_rec {
    padding: 3px 15px !important;
    margin-left: 20px;
    margin-bottom: 0px !important;
  }

  .header_nav img {
    margin-top: 0px;
  }

  .nav_scr .header_nav img {
    max-height: 500px;
  }

  .arrow_u {
    border-bottom: 1px dotted #333;
  }

  .arrow1 {
    position: absolute;
    left: 30px;
    z-index: 9;
  }


  .sub_menu_pr {
    font-size: 1.0em;
    padding: 10px 0;
  }

  .ch-ar {
    width: 50%;
    font-size: 1.3em;
  }

  /* company.html へのリンクのみをターゲットにする */
  li.arrow_u>a[href="company.html"] {
    display: inline-block;
    width: 50%;
    font-size: 1.3em;
  }

  /* 子の <ul> 要素には影響を与えない */
  li.arrow_u>a[href="company.html"]+ul {
    width: 100%;
  }

  /* 「採用情報」のli要素内のaタグのみをターゲットにする */
  li.arrow_u>a[href="/recruit/"] {
    display: inline-block;
    width: 50%;
    font-size: 1.3em;
  }

  /* そのaタグの直後にある ul 要素には影響を与えない */
  li.arrow_u>a[href="/recruit/"]+ul {
    width: 100%;
  }



  .sub_menu_4 {
    font-size: 0.8em
  }

  .company_img {
    width: 100%;
    height: 100%;
    overflow: hidden;
    position: absolute;
    top: 0;
    left: 0;
    object-fit: cover;
  }

  .sub_menu_3 .sub_menu_pr {padding: 0;width: 100%;height: 14vh;}


  .arrow_u:nth-of-type(2),
.arrow_u:nth-of-type(4) {
  background: linear-gradient(
    to right,
    #E7E7E8 80px,
    transparent 0
  );
}
.arrow_u:first-child .arrow1 {
  display: none;
}
}