body {
  -webkit-text-size-adjust: none;
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
}

.contents-wrapper {
  height: 100%;
  min-height: calc(100vh - 20vh);
}

.header-logo-img {
  display: flex;
  cursor: pointer;
}

#header-wrap {
  margin: 0 0.41vw;
}

#include-header {
  position: sticky;
  background: linear-gradient(to bottom, rgb(0, 0, 55) 0%, rgb(0, 0, 124) 100%);
  top: 0%;
  z-index: 1;
}

.header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

#navi-menu {
  list-style: none;
  display: inline-flex;
  padding: 0;
  margin-right: 1.56vw;
  margin-left: 4vw;
  min-width: 0;
  align-items: center;
}

.header-ul {
  list-style: none;
  margin: 0;
  padding: 0;
  z-index: 1;
}

.header-li {
  list-style: none;
  display: block;
  margin: 0;
  padding: 0;
}

.gradient-text {
  font-size: 1.3vw;
}

.navi-menu-container {
  height: auto;
  display: flex;
  font-size: 1.6vw;
  color: #fff;
  margin: 0 0.8vw;
  background-color: transparent;
  position: relative;
  transition: background-color 0s;
  transition-delay: 0.4s;
}

.follow-container {
  height: auto;
  display: inline-block;
  margin: 0 0.52vw;
  background-color: transparent;
  position: relative;
  z-index: 0;
  margin-left: 5vw;
}

.follow-container::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 0%;
  background-color: white;
  z-index: -1;
  transition: width 0.02s ease-in-out;
}

.follow-container:hover::before {
  width: 100%;
}

.follow-container a {
  width: 100%;
  display: flex;
  justify-content: center;
}

.follow-container:hover .logo-img {
  filter: invert(1);
}

.color-text {
  background: linear-gradient(to right, #fdc830 0%, #f37335 100%);
  background: -webkit-linear-gradient(to right, #fdc830 0%, #f37335 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  cursor: pointer;
}

.navi-menu-contents {
  position: absolute;
  top: 100%;
  left: 0%;
  border-left: solid 0.1vw rgb(73, 73, 73);
  background-color: rgba(0, 0, 0, 0.9);
  text-align: left;
  height: 0;
  overflow: hidden;
}

.pulldown-img {
  top: 0;
  bottom: 0;
  right: 0.83vw;
  margin: auto 0.3vw;
  width: 0.93vw;
  height: 0.93vw;
}

.link-text {
  text-decoration: none;
  display: flex;
  flex-wrap: nowrap;
  width: fit-content;
  color: #fff;
  border-bottom: solid 0.2vw transparent;
  transition:
    border-top 0.3s,
    opacity 0s,
    max-height 0s;
  align-items: center;
  cursor: pointer;
}

.white-text {
  color: rgb(255, 255, 255);
}

.space {
  padding-left: 6.5vw;
  margin-top: 3vh;
}

.business-scheme-contents {
  margin-top: 8vh;
}

/* ここからモーダル */
[id*="modal-contents"] {
  position: fixed; /* ビューポートを基準に絶対位置指定 */
  left: 0%; /* 画面端端を基準 */
  z-index: 10000; /* 他の要素より前面に表示 */
  width: 100vw; /* ヘッダ以外の画面を覆う */
  background-color: #161616;
}

#technology-modal-contents {
  display: none; /* 初期状態では非表示 */
}

#consulting-modal-contents {
  display: none; /* 初期状態では非表示 */
}

#recruit-modal-contents {
  display: none; /* 初期状態では非表示 */
}

#profile-modal-contents {
  display: none; /* 初期状態では非表示 */
}

.modal-summary {
  margin-top: 10%;
  margin-bottom: 10%;
}

.summary-text {
  font-size: 50%;
}

.modal-rink-list {
  display: flex;
  flex-direction: column;
  margin-left: 5%;
  width: 30%;
}

.modal-detail-list {
  display: flex;
  position: relative;
  width: 70%;
  justify-content: flex-end;
}

#technology-detail-link {
  position: absolute;
  top: 10%;
  left: 20%;
}

#consulting-detail-link {
  position: absolute;
  top: 40%;
  left: 20%;
}

/* モーダルの閉じるボタンの位置 */
.close-x {
  position: absolute;
  top: 2%;
  left: 90%;
  width: 4%;
  cursor: pointer;
}

/* 閉じるボタンサイズ */
.close-x img {
  width: 100%;
  height: 100%;
}

.modal-vector {
  max-height: 2vh;
}

.modal-detail-heading {
  display: flex;
  justify-content: center;
  width: 40vw;
  margin-bottom: 30%;
}

.modal-background-image {
  min-width: 100%; /* 画像の表示サイズ */
  opacity: 0.2; /* 画像の透明度 */
}
/* ホバー時に下線を表示 */
.link-text:hover {
  border-bottom: solid 0.2vw;
  border-image: linear-gradient(70deg, #fdc830, #f37335);
  border-image-slice: 1;
}

/* モーダルが表示された時に適用するスタイル */
.modal-bottom-border {
  border-bottom: solid 0.2vw;
  border-image: linear-gradient(70deg, #fdc830, #f37335);
  border-image-slice: 1;
}

.light-arrow {
  position: relative; /* 子要素の絶対配置の基準にする */
  overflow: hidden; /* はみ出した子要素を非表示にする */
  width: 2.5vw; /* 画像の表示サイズ */
  height: 2.5vw;
}

.light-arrow img {
  position: absolute; /* 絶対配置にする */
  width: 100%; /* 親要素にサイズを合わせる */
  height: 100%;
  transition: opacity 0s; /* opacityが0.5秒かけて変化するアニメーション */
}

.tab-item img:last-child {
  opacity: 0; /* 2枚目の画像を初期状態で非表示にする */
}

.tab-item:hover img:first-child {
  opacity: 0; /* ホバー時に1枚目を非表示にする */
}

.tab-item:hover img:last-child {
  opacity: 1; /* ホバー時に2枚目を表示する */
}

/* ここからタブ */
.tab-panel {
  display: none;
}

.tab-panel.active {
  display: block;
}

.tab-item {
  display: flex;
  margin-top: 5%;
  width: fit-content;
}
/* ここからfooter */
#footer-wrapper {
  width: 100%;
  bottom: 0;
  background: linear-gradient(180deg, #00093e 0%, #000000 100%);
}

footer {
  margin-top: auto;
  width: 85vw;
  margin: auto;
}

#page-top-link {
  display: inline-block;
  width: 11.3vw;
  height: 3.38vw;
}

#page-top-link-img {
  margin-right: auto;
  margin-left: auto;
  width: 11.3vw;
  height: 3.38vw;
  background-size: cover;
  background-image: url("/assets/img/page_top_link_default.webp");
  transition: all 0.5s ease;
}

#page-top-link-img:hover {
  background-image: url("/assets/img/page_top_link_mouseover.webp");
}

.footer-text {
  color: #fff;
}

.footer-text-heading {
  cursor: pointer;
  font-size: 1.66vw;
  font-weight: bold;
  line-height: 2.08vw;
}
#footer-contact-heading {
  margin-top: 2vw;
}
#bottom-contents-wrap {
  margin: 2.08vw 0;
  padding: 1.04vw;
  display: flex;
  justify-content: space-between;
}

.footer-ul {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 0.7em;
}

.footer-ul li {
  margin-top: 1.04vw;
}

.footer-company-ul {
  list-style: none;
  margin-top: 0.25em;
  padding: 0;
  font-size: 0.7em;
}

.footer-company-ul li {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 0.7em;
  margin-left: 1em;
  margin-top: 0.25em;
  margin-bottom: 0.25em;
}

.footer-link-text {
  color: #fff;
  text-decoration: none;
  cursor: pointer;
  font-size: 1.25vw;
  line-height: 1.51vw;
}

#footer-bottom {
  width: 26vw;
  margin: auto;
  padding: 1.04vw;
}

#footer-bottom div,
#footer-bottom div a {
  color: rgb(255, 255, 255);
  text-align: center;
}

#site-policy,
#account-policy {
  text-decoration: none;
  cursor: pointer;
  font-size: 1.04vw;
  font-weight: bold;
}

#copyright {
  margin-top: 1.04vw;
  font-size: 0.93vw;
  font-weight: bold;
}

#bread-crumb-text ol {
  text-decoration: none;
  margin: 0;
  font-size: 1vw;
}

#bread-crumb-text ol a {
  text-decoration: none;
  color: rgb(255, 255, 255);
}

#breadcrumbs li {
  display: inline-block;

  color: rgb(255, 255, 255);
}

#breadcrumbs li:not(:first-child) {
  margin-left: 0.4em;
}

#breadcrumbs li:not(:first-child):before {
  content: ">";
  margin-right: 0.4em;
}

.hidden {
  display: none;
}

.footer-follow {
  display: flex;
}

li.x-link {
  align-items: center;
}
/*ここまでフッター*/

/*学生向けページタイトル*/
.recruite-title-wrapper {
  width: 90%;
  margin: 2em auto;
}

/* ここから画面サイズごとのサイズ指定 */
@media screen and (max-width: 3840px) {
  .header-logo-img img {
    width: 600px; /* 会社のロゴサイズ */
    height: auto;
  }

  .follow-container .logo-img {
    content: url("/assets/img/followUs/h_x-link-icon_2x.webp"); /* ヘッダXロゴサイズ */
  }

  [id*="modal-contents"] {
    top: 176px; /* ヘッダーの下に配置 */
    height: calc(100vh - 176px); /* ヘッダ以外の画面を覆う */
  }

  li .x-link {
    content: url("/assets/img/followUs/f_x-logo-white_2x.webp"); /* フッダXロゴサイズ */
  }
}
@media screen and (max-width: 2560px) {
  .header-logo-img img {
    width: 392px; /* 会社のロゴサイズ */
    height: auto;
  }

  .follow-container .logo-img {
    content: url("/assets/img/followUs/f_x-logo-white_1.5x.webp"); /* ヘッダXロゴサイズ */
  }

  [id*="modal-contents"] {
    top: 112px; /* ヘッダーの下に配置 */
    height: calc(100vh - 112px); /* ヘッダ以外の画面を覆う */
  }

  li .x-link {
    content: url("/assets/img/followUs/f_x-logo-white_1.5x.webp"); /* フッダXロゴサイズ */
  }
}
@media screen and (max-width: 1920px) {
  .header-logo-img img {
    width: 304px; /* 会社のロゴサイズ */
    height: auto;
  }

  .follow-container .logo-img {
    content: url("/assets/img/followUs/f_x-logo-white_1x.webp"); /* ヘッダXロゴサイズ */
  }

  [id*="modal-contents"] {
    top: 88px; /* ヘッダーの下に配置 */
    height: calc(100vh - 88px); /* ヘッダ以外の画面を覆う */
  }

  li .x-link {
    content: url("/assets/img/followUs/f_x-logo-white_1x.webp"); /* フッダXロゴサイズ */
  }
}
@media screen and (max-width: 1600px) {
  .header-logo-img img {
    width: 240px; /* 会社のロゴサイズ */
    height: auto;
  }

  [id*="modal-contents"] {
    top: 72px; /* ヘッダーの下に配置 */
    height: calc(100vh - 72px); /* ヘッダ以外の画面を覆う */
  }
}
@media screen and (max-width: 1024px) {
  .header-logo-img img {
    width: 184px; /* 会社のロゴサイズ */
    height: auto;
  }

  .follow-container .logo-img {
    content: url("/assets/img/followUs/h_x-link-icon_0.5x.webp"); /* ヘッダXロゴサイズ */
  }

  [id*="modal-contents"] {
    top: 56px; /* ヘッダーの下に配置 */
    height: calc(100vh - 56px); /* ヘッダ以外の画面を覆う */
  }
  li .x-link {
    content: url("/assets/img/followUs/f_x-logo-white_0.5x.webp"); /* フッダXロゴサイズ */
  }
}
