@charset "utf-8";
/* ==================================
common
===================================== */
@font-face {
  font-family: "mgenplus";
  src: url("/dcms_media/other/mgenplus-1c-regular.woff") format("woff"), url("/dcms_media/other/mgenplus-1c-bold.woff") format("woff"), url("/dcms_media/other/mgenplus-1c-black.woff") format("woff");
}
body {
  font-family: "Noto Serif JP", "Shippori Mincho", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS Mincho", serif;
}
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  font-family: "Noto Serif JP", "Shippori Mincho", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS Mincho", serif;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 100px;
}
a,
.t-default a {
  margin: 0;
  padding: 0;
  text-decoration: none;
  -webkit-transition: all 0.3s ease 0s;
  -o-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
}
.container {
  width: 94%;
}
#locator ol {
  padding: 0;
}
.br-pc {
  display: inline;
}
.br-sp {
  display: none;
}
.rounded-20 {
  border-radius: 20px;
}

/* タイトル */
.main-title {
  font-size: 40px;
  margin-bottom: 40px;
  line-height: 1.2;
}
@media only screen and (max-width: 690px) {
  .main-title {
    font-size: 30px;
  }
}
.heading-25 {
  position: relative;
  padding-top: 5rem;
  color: #0f78d2;
  font-weight: bold;
}
.heading-25::before {
  position: absolute;
  bottom: 0.5em;
  left: 0;
  z-index: -1;
  color: #d4e7f7;
  font-size: 1.5em;
  line-height: normal;
  content: attr(data-word);
  pointer-events: none;
  font-weight: bold;
}
.heading-25.green {
  color: #159f75;
}
.heading-25.green::before {
  color: #d5eee6;
}
.page_contact .heading-25.green {
  color: #0f78d2;
}
.page_contact .heading-25.green::before {
  color: #d4e7f7;
}
.dlb_title-sub-04.green::before {
  background-color: #159f75;
}
@media only screen and (max-width: 820px) {
  .heading-25::before {
    font-size: 1.4em;
  }
}

/* ボタン */
.btn.bg-grad-01,
.btn.bg-grad-02 {
  border: none !important;
}
.btn.bg-grad-01 a {
  color: #fff;
  border: 1px solid transparent !important;
  /*border-color: #0f78d2 !important;
  border-right-color: #5BA2DE !important;*/
}
.btn.bg-grad-02 a {
  color: #fff;
  border: 1px solid transparent !important;
  /*border-color: #159f75 !important;
  border-right-color: #59E0B7 !important;*/
}
.btn.bg-grad-01:hover a {
  background-color: #fff;
  color: #0f78d2;
  border: 1px solid #0f78d2 !important;
}
.btn.bg-grad-02:hover a {
  background-color: #fff;
  color: #159f75;
  border-color: #159f75 !important;
}
div.btn.bg-grad-02 a:hover::before {
  background: url(/dcms_media/image/arrow-green.png) 0 0 no-repeat;
}
div.btn.btn-outline-accent-02 a::before {
  background: url(/dcms_media/image/arrow-green.png) 0 0 no-repeat;
}
div.btn.btn-outline-accent-02 a:hover:before {
  background: url(/dcms_media/image/arrow.png) 0 0 no-repeat;
}
div.btn.anker-link a::before {
  right: 40px;
  -webkit-transform: translateY(-50%) rotate(90deg);
  transform: translateY(-50%) rotate(90deg);
}
.dlb_flow-1 .dlb_flow-item+.dlb_flow-item::before {
  border-color: transparent transparent transparent #0f78d2 !important;
}
.share_top-link .top-link .btn a:hover:after {
  border-color: #0f78d2;
}

/* ==================================
ユーティリティー
===================================== */
/*---------- 画像の比率 ----------*/
.u-aspect img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.u-aspect.--4x3 img {
  aspect-ratio: 4 / 3;
}
.u-aspect.--16x9 img {
  aspect-ratio: 16 / 9;
}
.u-aspect.--21x9 img {
  aspect-ratio: 21 / 9;
}
.u-aspect.--1x1 img {
  aspect-ratio: 1 / 1;
}
.u-aspect.--2x1 img {
  aspect-ratio: 2 / 1;
}
.u-aspect.--3x1 img {
  aspect-ratio: 3 / 1;
}
.u-aspect.--4x1 img {
  aspect-ratio: 4 / 1;
}
.u-aspect.--7x8 img {
  aspect-ratio: 7 / 8;
}
.u-aspect.--9x16 img {
  aspect-ratio: 9 / 16;
}
.u-aspect.--3x4 img {
  aspect-ratio: 3 / 4;
}

/* 画像全体を枠内に入れたいとき */
.u-aspect.--contain img {
  object-fit: contain;
}

/* ==================================
グラデーション
===================================== */
.grad-color {
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* ==================================
テキストシャドウ
===================================== */
.text-shadow {
  text-shadow: 2px 2px 2px rgba(0, 0, 0, 0.4);
}

/* ==================================
背景画像を設定したい時
===================================== */
.bg_image {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}

/* ==================================
黒透過
===================================== */
.bg-black-shadow {
  position: relative;
}
.bg-black-shadow::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.6);
}

/* ==================================
白透過
===================================== */
.bg-white-shadow {
  position: relative;
}
.bg-white-shadow::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.5);
}

/* ==================================
table要素のborder-right
===================================== */
.main_table th {
  border-right: 1px solid #dee2e6;
}

/* ==================================
フローコンテンツの矢印の色（デフォルトはグレー）
===================================== */
.dlb_flow-5 .dlb_flow-item+.dlb_flow-item::before {
  border-color: #e2cb58 transparent transparent transparent !important;
}

/* ==================================
 横100% BGとテキストの背景画像の設定（コンテンツ31）
===================================== */
.dlb_contents_wrap-wide {
  background-size: cover;
}

/* ==================================
横並びコンテンツの崩れ修正（コンテンツ66/67）
===================================== */
.dlb_contents_overflow .dlb_contents_overflow-right:before,
.dlb_contents_overflow .dlb_contents_overflow-left:before {
  top: 50% !important;
}

/* ==================================
アコーディオンの矢印の調整
===================================== */
.dlb_list_accordion .btn::before {
  content: "";
  position: absolute;
  width: 30px;
  height: 30px;
  background-color: #fff;
  top: 50%;
  right: 8px;
  transform: translateY(-50%);
}
.dlb_list_accordion .btn.collapsed::after {
  margin-top: -6px !important;
  right: 11px !important;
}
.dlb_list_accordion .btn::after {
  margin-top: -3px !important;
  right: 11px !important;
}

/* ==================================
アコーディオンの中のボタンの矢印を消す
===================================== */
.accordion-in-btn .btn::after,
.accordion-in-btn .btn::before {
  display: none !important;
}
.accordion-in-btn .btn {
  padding-right: 0 !important;
}

/* ==================================
ブログの見た目調整
===================================== */
.dlb_blog_column-4 .dlb_blog-data p {
  max-height: none !important;
}

/* ==================================
お知らせの見た目調整
===================================== */
.dlb_news-list dl {
  border-top: 1px solid #f5f5f5;
  padding: 16px 0;
}
.dlb_news-list dl:last-child {
  border-bottom: 1px solid #f5f5f5;
  padding: 16px 0;
}

@media only screen and (max-width: 820px) {
  /* ==================================
table-responsive
===================================== */
  .table-responsive table {
    min-width: 1000px;
  }
}
@media only screen and (max-width: 690px) {
  /* ==================================
    table-responsive
    ===================================== */
  .table-responsive table {
    min-width: 800px;
  }
  /* ==================================
    改行
    ===================================== */
  .br-sp {
    display: inline;
  }
  .br-pc {
    display: none;
  }
  /* ==================================
    アンカーリンク
    ===================================== */
  html {
    scroll-behavior: smooth;
    scroll-padding-top: 70px;
  }
  .btn.btn-anchor-link {
    padding-left: 0 !important;
  }
  /* ==================================
    パンくず
    ===================================== */
  #locator ol {
    padding: 0;
  }
  /* ==================================
    お知らせ
    ===================================== */
  .dlb_news .rss_date {
    padding-left: 0;
  }

  /* ==================================
    サイトマップ
    ===================================== */
  #sitemap {
    padding-left: 0 !important;
  }
}
/* ==================================
フェード
===================================== */
/* アニメーションディレイ */
.animate__delay-0-25s {
  -webkit-animation-delay: 0.25s;
  animation-delay: 0.25s;
}
.animate__delay-0-5s {
  -webkit-animation-delay: 0.5s;
  animation-delay: 0.5s;
}
.animate__delay-0-75s {
  -webkit-animation-delay: 0.75s;
  animation-delay: 0.75s;
}
.bgextend {
  animation-name: bgextendAnimeBase;
  animation-duration: 1s;
  animation-fill-mode: forwards;
  position: relative;
  overflow: hidden;
  /*　はみ出た色要素を隠す　*/
  opacity: 0;
}
@keyframes bgextendAnimeBase {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}
/*中の要素*/
.bgappear {
  animation-name: bgextendAnimeSecond;
  animation-duration: 1s;
  animation-delay: 0.6s;
  animation-fill-mode: forwards;
  opacity: 0;
  display: block;
  width: 100%;
  height: 100%;
}
@keyframes bgextendAnimeSecond {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
/*左から右*/
.bgLRextend::before {
  animation-name: bgLRextendAnime;
  animation-duration: 1s;
  animation-fill-mode: forwards;
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: #0f78d2;
  /*伸びる背景色の設定*/
  z-index: 10;
}
.top-recruit .bgLRextend::before {
  background-color: #159f75;
}
@keyframes bgLRextendAnime {
  0% {
    transform-origin: left;
    transform: scaleX(0);
  }
  50% {
    transform-origin: left;
    transform: scaleX(1);
  }
  50.001% {
    transform-origin: right;
  }
  100% {
    transform-origin: right;
    transform: scaleX(0);
  }
}

/* ==================================
header
===================================== */
header nav .navbar-nav li a:hover::before,
header nav .navbar-nav li.is-main_current a::before {
  content: "";
  position: absolute;
  bottom: 10px;
  left: 50%;
  width: 90%;
  height: 2px;
  transform: translateX(-50%);
  background-color: #0f78d2;
}
header nav .navbar-nav .dropdown-menu a::after {
  display: none;
}
div.btn.contact-btn a {
  padding: 16px 40px 16px 60px;
  transform: none;
  -webkit-transition: all 0.3s ease 0s;
  -o-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
}
div.btn.contact-btn a:hover {
  background: #fff;
  color: #0f78d2;
  -webkit-transition: all 0.3s ease 0s;
  -o-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
}
div.btn.recruit-btn a {
  padding: 16px 40px 16px 60px;
  transform: none;
  -webkit-transition: all 0.3s ease 0s;
  -o-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
}
div.btn.recruit-btn a:hover {
  background: #fff;
  color: #159f75;
  -webkit-transition: all 0.3s ease 0s;
  -o-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
}
div.btn.contact-btn a::before,
div.btn.recruit-btn a::before {
  display: none !important;
}
div.btn a.dropdown-item::before {
  background: url(/dcms_media/image/arrow-on.png) 0 0 no-repeat;
}
header .openbtn {
  display: none;
}
#navbar-01 {
  -ms-flex-preferred-size: 100%;
  flex-basis: 100%;
  -webkit-box-flex: 1;
  -ms-flex-positive: 1;
  flex-grow: 1;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}
.collapse:not(.show),
.mm_btn {
  display: none;
}

/* メガメニュー追記 */
header nav .navbar-nav li .dropdown-item:hover::before,
header nav .navbar-nav li.is-main_current .dropdown-item::before {
  content: "";
  position: absolute;
  background: url(/dcms_media/image/arrow-on.png) 0 0 no-repeat;
  width: 15px;
  height: 15px;
  top: 50%;
  right: 20px;
  left: unset;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  vertical-align: middle;
}
header nav .navbar-nav li .dropdown-item:hover::after {
  content: "";
  display: block;
  position: absolute;
  top: unset;
  bottom: 0;
  left: 50%;
  width: 90%;
  height: 2px;
  transform: translateX(-50%);
  background-color: #0f78d2;
}
header nav .navbar-nav li a:hover::before {
  content: "";
  display: block;
  position: absolute;
  top: unset;
  bottom: 0;
  left: 50%;
  width: 90%;
  height: 2px;
  transform: translateX(-50%);
  background-color: #0f78d2;
}
.dropdown:hover>.dropdown-menu {
  width: 100vw;
  left: 0;
}
.dropdown-menu .btn+.btn {
  border: none;
}
.btn-arrow-after-accent-02 a:hover {
  color: #159f75 !important;
}
.btn-arrow-after-accent-02 a:hover::after {
  background-color: #159f75 !important
}
.btn-arrow-after-accent-02 a:hover:before {
  background: url(/dcms_media/image/arrow-green.png) 0 0 no-repeat !important;
  content: "";
  position: absolute;
  width: 15px;
  height: 15px;
  top: 50%;
  right: 20px;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  vertical-align: middle;
}
.btn-arrow-after-accent-02 a::before {
  background: url(/dcms_media/image/arrow-green.png) 0 0 no-repeat !important;
}
.dropdown-menu .btn.bg-grad-01 a::before,
.dropdown-menu .btn.bg-grad-02 a::before,
div.btn.contact-btn:hover:before,
div.btn.recruit-btn:hover:before {
  display: none !important;
}
.dropdown-menu .btn.bg-grad-01 a::after,
.dropdown-menu .btn.bg-grad-02 a::after {
  content: "";
  position: absolute;
  background: url(/dcms_media/image/arrow.png) 0 0 no-repeat;
  width: 15px;
  height: 15px;
  top: 50%;
  right: 20px;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  vertical-align: middle;
  display: block !important;
}
.dropdown-menu .btn.bg-grad-01:hover a::after {
  background: url(/dcms_media/image/arrow-on.png) 0 0 no-repeat;
}
.dropdown-menu .btn.bg-grad-02:hover a::after {
  background: url(/dcms_media/image/arrow-green.png) 0 0 no-repeat;
}
@media only screen and (min-width: 1251px) {
  header .dropdown {
    position: static !important;
  }
}
@media only screen and (max-width: 1250px) {
  header .container {
    width: 100%;
    margin: 0;
  }
  header div.btn.contact-btn,
  header div.btn.recruit-btn {
    padding-top: 0;
    max-width: none;
    margin: 0;
    width: 100%;
  }
  .dropdown:hover>.dropdown-menu {
    width: auto;
  }
  .bs_header-01.navbar-light .navbar-nav a.nav-link::before {
    background-color: unset;
    left: unset;
  }
  header nav .navbar-nav li .dropdown-item:hover::before,
  header nav .navbar-nav li.is-main_current .dropdown-item::before {
    content: "";
    position: absolute;
    background: url(/dcms_media/image/arrow-on.png) 0 0 no-repeat;
    width: 15px;
    height: 15px;
    top: 50%;
    right: 20px;
    left: unset;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    vertical-align: middle;
  }
  header nav .navbar-nav li .dropdown-item:hover::after {
    content: "";
    display: block;
    position: absolute;
    top: unset;
    bottom: 0;
    left: 50%;
    width: 90%;
    height: 2px;
    transform: translateX(-50%);
    background-color: #0f78d2;
  }
  .recruit-btn .mm_btn::after {
    border-color: #fff !important;
  }
  .bs_header-01 .nav-item.contact-btn,
  .bs_header-01 .nav-item.recruit-btn {
    border: none !important;
    margin-top: 1rem;
  }
  .bs_header-01 .nav-item.recruit-btn .mm_btn {
    height: 60px;
  }
}

/* メガメニューEND */


@media only screen and (min-width: 1251px) {
  .navbar-expand-lg #navbar-01 {
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: flex !important;
    -ms-flex-preferred-size: auto;
    flex-basis: auto;
  }
}
@media only screen and (min-width: 992px) and (max-width: 1250px) {
  .navbar-expand-lg>.container-fluid {
    flex-wrap: wrap;
  }
  .navbar-expand-lg .navbar-nav .dropdown-menu {
    position: static;
  }
}
@media only screen and (max-width: 1250px) {
  /* ==================================
    header
    ===================================== */
  .navbar-expand-lg .navbar-nav .dropdown-menu {
    box-shadow: none !important;
    border: none;
  }
  #navbar-01 {
    padding: 20px 0;
    overflow-x: scroll;
    height: 100vh;
  }
  header .openbtn {
    display: block;
    position: relative;
    cursor: pointer;
    width: 50px;
    height: 50px;
    background-color: #fff !important;
    border: none !important;
  }
  header .openbtn span {
    display: inline-block;
    -webkit-transition: all 0.3s;
    -o-transition: all 0.3s;
    transition: all 0.3s;
    position: absolute;
    left: 13px;
    height: 2px;
    background: #0f78d2;
    width: 50%;
  }
  header .openbtn span.open-btn,
  header .openbtn span.close-btn {
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    background: transparent;
    height: auto;
    font-size: 12px;
  }
  header .openbtn span.close-btn,
  header .openbtn.active span.open-btn,
  header nav .navbar-nav li a:hover::after,
  header nav .navbar-nav li.is-main_current a::after {
    display: none !important;
  }
  header .openbtn.active span.close-btn {
    display: block !important;
  }
  header .openbtn span:nth-of-type(1) {
    top: 13px;
  }
  header .openbtn span:nth-of-type(2) {
    top: 21px;
  }
  header .openbtn span:nth-of-type(3) {
    top: 29px;
  }
  header .openbtn.active span:nth-of-type(1) {
    transform: translateY(7px) rotate(-45deg);
  }
  header .openbtn.active span:nth-of-type(2) {
    display: none;
  }
  header .openbtn.active span:nth-of-type(3) {
    transform: translateY(-9px) rotate(45deg);
  }
  .bs_header-01 .nav-item {
    border-bottom: 2px dashed rgba(15, 120, 210, 0.5);
    margin: 0 10px;
    -webkit-box-flex: 0;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: none;
  }
  .bs_header-01 .nav-item:first-child {
    border-top: 2px dashed rgba(15, 120, 210, 0.5);
  }
  .bs_header-01.navbar-light .navbar-nav a.nav-link {
    position: relative;
    padding-left: 20px;
    padding-right: 20px;
  }
  .bs_header-01.navbar-light .navbar-nav a.nav-link::before {
    content: "";
    position: relative;
    top: 50%;
    margin-top: -4px;
    display: inline-block;
    width: 8px;
    height: 8px;
    min-width: 8px;
    margin-right: 0.5rem;
    border-top: 2px solid #0f78d2;
    border-right: 2px solid #0f78d2;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    margin-right: -0.5rem;
    position: absolute;
    right: 24px;
  }
  .bs_header-01.navbar-light .navbar-nav .dropdown a.nav-link::before {
    display: none;
  }
  .mm_btn {
    display: block;
    position: absolute;
    width: 40px;
    height: 87px;
    top: 0;
    right: 0;
    -webkit-transition: all 0.3s ease 0s;
    -o-transition: all 0.3s ease 0s;
    transition: all 0.3s ease 0s;
  }
  .mm_btn.active::after {
    -webkit-transform: translate(-50%, -50%) rotate(-45deg);
    transform: translate(-50%, -50%) rotate(-45deg);
    -webkit-transition: all 0.3s ease 0s;
    -o-transition: all 0.3s ease 0s;
    transition: all 0.3s ease 0s;
  }
  .mm_btn::after {
    content: "";
    position: relative;
    top: 50%;
    left: 50%;
    width: 8px;
    height: 8px;
    border-top: 2px solid #0f78d2;
    border-right: 2px solid #0f78d2;
    -webkit-transform: translate(-50%, -50%) rotate(135deg);
    transform: translate(-50%, -50%) rotate(135deg);
    position: absolute;
    -webkit-transition: all 0.3s ease 0s;
    -o-transition: all 0.3s ease 0s;
    transition: all 0.3s ease 0s;
  }
  div.btn.contact-btn,
  div.btn.recruit-btn {
    float: none !important;
    padding-top: 10px;
    max-width: 300px;
    text-align: center;
    margin-left: auto;
    margin-right: auto !important;
  }
}

@media only screen and (max-width: 690px) {
  #navbar-01 {
    padding: 0;
  }
  .mm_btn {
    height: 50px;
  }
  .bs_header-01 .nav-item {
    margin: auto;
  }
  div.btn.contact-btn,
  div.btn.recruit-btn {
    padding-top: 0;
  }
}

/* ==================================
footer
===================================== */
.footer-sub-menu li {
  position: relative;
  padding-left: 16px;
}
.footer-sub-menu li::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 10px;
  height: 1px;
  background-color: #707070;
}

/* ==================================
TOP
===================================== */
/* MV */
.top-mv {
  margin-bottom: 100px;
  position: relative;
}
.top-mv::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 20%;
  bottom: 0;
  left: 0;
  background-color: #e4e4e4;
  z-index: -1;
}
.mv-img {
  width: 90%;
  margin-left: auto;
  position: relative;
  padding-bottom: 5%;
}
.mv-img::before {
  content: "";
  position: absolute;
  width: 105%;
  height: 100%;
  top: 10%;
  right: 0;
  background: -moz-linear-gradient(left, #0f78d2, #5ba2de);
  background: -webkit-linear-gradient(left, #0f78d2, #5ba2de);
  background: linear-gradient(90deg, #0f78d2 0%, #5ba2de 100%);
  z-index: -1;
}
.mv-img img {
  width: 100%;
  height: auto;
}
@media (max-width: 991px) {
  .mv-img img {
    width: 100%;
    height: 100%;
  }
}
@media only screen and (max-width: 690px) {
  .top-mv {
    margin-bottom: 40px;
    padding-top: 30px;
    padding-bottom: 30px;
  }
  .top-mv::before {
    right: 0;
    left: auto;
    width: 90%;
  }
  .mv-img {
    width: 96%;
  }
  .mv-img::before {
    height: 95%;
    left: -15%;
  }
}

/* キャッチコピー */
.catch-copy {
  position: absolute;
  background-color: rgba(255, 255, 255, 0.8);
  display: inline-block;
  top: 30%;
  right: 0;
}
.mv-02 .catch-copy {
  right: auto;
  top: 50%;
}
.catch-copy h1,
.catch-copy .h1 {
  margin-bottom: 0;
  padding: 50px 100px;
  font-size: 30px;
  text-shadow: 3px 3px 6px #fff;
  letter-spacing: 2px;
  line-height: 1;
}
.catch-copy .catch-main {
  font-size: 50px;
}
.catch-copy .catch-main.ashita {
  position: relative;
}
.catch-copy .catch-main.ashita::before {
  content: "あ　し　た";
  position: absolute;
  top: -10px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 16px;
  width: 100%;
  font-weight: bold;
}
@media only screen and (max-width: 820px) {
  .catch-copy .catch-main {
    font-size: 30px;
  }
  .catch-copy h1,
  .catch-copy .h1 {
    padding: 30px 60px;
    font-size: 20px;
  }
}
@media only screen and (max-width: 690px) {
  .catch-copy {
    left: 0;
    /*width: 90%;*/
    top: 20%;
  }
  .mv-02 .catch-copy {
    top: 30%;
  }
  .catch-copy h1,
  .catch-copy .h1 {
    padding: 20px 30px;
    font-size: 16px;
  }
  .catch-copy .catch-main {
    font-size: 20px;
  }
  .catch-copy .catch-main.ashita::before {
    font-size: 10px;
    white-space: pre;
  }
}

/* トピックス */
.top-topics {
  margin-bottom: 100px;
}
.top-topics .dlb_blog-item {
  border-top: 2px dashed rgba(15, 120, 210, 0.5);
}
.top-topics .dlb_blog-item:last-of-type {
  border-bottom: 2px dashed rgba(15, 120, 210, 0.5);
}
.top-topics .dlb_blog-item .dlb_blog-image,
.top-topics .dlb_blog-item .dlb_blog-data p {
  display: none;
}
.top-topics .dlb_blog_column-4 .dlb_blog-data .dlb_title-h3 {
  margin-bottom: 0;
  font-size: 16px;
  overflow: inherit;
  max-height: none;
}
.top-topics .dlb_blog-item .dlb_blog-data time {
  font-family: "mgenplus", sans-serif;
}
@media only screen and (max-width: 690px) {
  .top-topics .dlb_blog_column-4 .dlb_blog-data .dlb_title-h3 {
    margin-top: 10px;
  }
}


/* 私たちについて */
.top-about.bg_image {
  padding-bottom: 200px;
  background-size: contain;
  background-position: bottom;
}
@media only screen and (max-width: 690px) {
  .top-about.bg_image {
    padding-bottom: 20px;
    background-size: 200%;
  }
}


/* 業務概要 */
.top-service {
  padding: 100px 0;
  margin-bottom: 80px;
}
.top-service .col .img-fluid {
  cursor: pointer;
  max-width: 500px;
  overflow: hidden;
  width: 100%;
}
.top-service .col .img-fluid img {
  height: auto;
  -webkit-transition: transform 0.3s ease;
  -o-transition: transform 0.3s ease;
  transition: transform 0.3s ease;
}
.top-service .col:hover .img-fluid img {
  transform: scale(1.1);
}
@media only screen and (max-width: 690px) {
  .top-service {
    padding: 60px 0;
    margin-bottom: 40px;
  }
}

/* 技術情報 */
.top-technology {
  margin-bottom: 100px;
}
.top-technology .col {
  position: relative;
  border: 1px solid #fff;
  cursor: pointer;
}
.top-technology .col::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: -moz-linear-gradient(bottom, #0f78d2, rgba(19, 144, 153, 0.7), rgba(21, 159, 117, 0.5), rgba(57, 193, 151, 0.1), transparent);
  background: -webkit-linear-gradient(bottom, #0f78d2, rgba(19, 144, 153, 0.7), rgba(21, 159, 117, 0.5), rgba(57, 193, 151, 0.1), transparent);
  background: linear-gradient(360deg, #0f78d2 0%, rgba(19, 144, 153, 0.7) 30%, rgba(21, 159, 117, 0.5) 50%, rgba(57, 193, 151, 0.1) 80%, transparent 100%);
  -webkit-transition: all 0.5s;
  -o-transition: all 0.5s;
  transition: all 0.5s;
  z-index: 1;
}
.top-technology .col a.link-cover::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: -moz-linear-gradient(bottom, #0f78d2, rgba(19, 144, 153, 0.7), rgba(21, 159, 117, 0.5), rgba(57, 193, 151, 0.1), transparent);
  background: -webkit-linear-gradient(bottom, #0f78d2, rgba(19, 144, 153, 0.7), rgba(21, 159, 117, 0.5), rgba(57, 193, 151, 0.1), transparent);
  background: linear-gradient(360deg, #0f78d2 0%, rgba(19, 144, 153, 0.7) 50%, rgba(21, 159, 117, 0.5) 80%, rgba(57, 193, 151, 0.1) 90%, transparent 100%);
  z-index: 2;
  display: block;
  -webkit-transition: all 0.5s;
  -o-transition: all 0.5s;
  transition: all 0.5s;
}
.top-technology .col:hover::before,
.top-technology .col a.link-cover::before {
  opacity: 0;
}
.top-technology .col:hover a.link-cover::before {
  opacity: 1;
  -webkit-transition: all 0.5s;
  -o-transition: all 0.5s;
  transition: all 0.5s;
}
.top-technology .title-btn {
  position: absolute;
  bottom: 40px;
  left: 50%;
  transform: translateX(-50%);
  width: 80%;
  z-index: 3;
}
.top-technology .swiper-button-next:before {
  right: -10px;
}
.top-technology .swiper-button-prev:before {
  right: -20px;
}
.btn.simple-btn a {
  padding: 10px 50px 10px 10px;
  border-bottom: 1px solid #fff;
  color: #fff !important;
}
.btn.simple-btn a:hover::before {
  background: url(/dcms_media/image/arrow.png) 0 0 no-repeat;
}

/* 会社案内 */
.top-company {
  margin-bottom: 80px;
  position: relative;
}
.top-company-img {
  position: absolute;
  width: 50%;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  z-index: -1;
}
.top-company h3 {
  font-size: 30px;
}
.top-company h3 .text-main {
  font-size: 50px;
}
.top-company-link {
  margin-bottom: 100px;
}
.top-company-link .link-btn a::before {
  content: "";
  position: absolute;
  background: url(/dcms_media/image/arrow-on.png) 0 0 no-repeat;
  width: 15px;
  height: 15px;
  top: 50%;
  right: 40px;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  vertical-align: middle;
}
@media only screen and (max-width: 820px) {
  .top-company h3 {
    font-size: 22px;
  }
  .top-company h3 .text-main {
    font-size: 32px;
  }
}
@media only screen and (max-width: 690px) {
  .top-topics,
  .top-technology,
  .top-company,
  .top-company-link {
    margin-bottom: 40px;
  }
  .top-company h3 {
    font-size: 22px;
  }
  .top-company h3 .text-main {
    font-size: 32px;
  }
  .top-company-img {
    position: relative;
    width: 110%;
    top: inherit;
    right: -10%;
    transform: none;
  }
}

/* 採用情報 */
.top-recruit {
  padding-top: 100px;
  background: -moz-linear-gradient(bottom, transparent, rgba(191, 255, 230, 0.4));
  background: -webkit-linear-gradient(bottom, transparent, rgba(191, 255, 230, 0.4));
  background: linear-gradient(360deg, transparent 0%, rgba(191, 255, 230, 0.4) 100%);
}
.top-recruit-img {
  position: absolute;
  width: 40%;
  top: 0;
  right: 0;
}
@media only screen and (max-width: 690px) {
  .top-recruit-img {
    position: relative;
    width: 90%;
    top: inherit;
    right: 0;
    transform: none;
    margin-left: auto;
  }
  .top-recruit {
    padding-top: 40px;
  }
  .top-recruit .recruit-bg-img img {
    width: 100%;
    height: 200px;
    max-width: none;
    object-fit: cover;
    object-position: right;
  }
}

/* お問い合わせ */
.contact-block {
  padding: 60px 0;
}
.contact-tel {
  margin-bottom: 30px;
}
.contact-tel a {
  font-size: 50px;
  font-weight: bold;
  background: url(/dcms_media/image/tel-icon.png) 0 0 no-repeat;
  padding-left: 50px;
  background-size: 40px;
  background-position: left center;
  font-family: "Noto Serif JP", "Shippori Mincho", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS Mincho", serif;
  color: #333;
  text-decoration: none;
}
.contact-tel a:hover {
  color: #0056b3;
}

@media only screen and (max-width: 991px) {
  .contact-block {
    padding: 20px 0;
  }
  .contact-tel a {
    font-size: 36px;
    padding-left: 30px;
    background-size: 30px;
    white-space: pre;
  }
}
@media only screen and (max-width: 690px) {
  .contact-block div.btn.contact-btn a,
  .contact-block div.btn.recruit-btn a {
    padding: 26px 40px 26px 60px;
  }
}

.swiper-button-next,
.swiper-button-prev {
  width: 50px;
  height: 50px;
  margin: 0;
  padding: 0;
  display: block;
  transform: translateY(-50%);
}
.swiper-button-next:after,
.swiper-button-prev:after {
  display: none;
}
.swiper-button-next:before,
.swiper-button-prev:before {
  content: "";
  position: relative;
  top: 12px;
  right: -25px;
  display: inline-block;
  width: 24px;
  height: 24px;
  border-top: 6px solid #0056b3;
  border-right: 6px solid #0056b3;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  z-index: 1;
}
.swiper-button-prev:before {
  -webkit-transform: rotate(-135deg);
  transform: rotate(-135deg);
  right: 0;
}


/* ==================================
会社概要
===================================== */
.dlb_contents_overflow .dlb_contents_overflow-right,
.dlb_contents_overflow .dlb_contents_overflow-left {
  position: relative;
}
.dlb_contents_overflow .dlb_contents_overflow-right:before,
.dlb_contents_overflow .dlb_contents_overflow-left::before {
  background-color: #f1f8ff !important;
}
.dlb_contents_overflow .dlb_contents_overflow-data {
  padding: 20px 50px !important;
  z-index: 1 !important;
}
.dlb_contents_overflow .dlb_contents_overflow-image {
  z-index: 10 !important;
}
.page_greeting .bg-black-shadow::before {
  background-color: rgba(0, 0, 0, 0.25);
}
@media only screen and (max-width: 767.98px) {
  .dlb_contents_overflow .dlb_contents_overflow-data {
    padding: 60px 20px 40px !important;
    background-color: #f1f8ff !important;
  }
}

/* ==================================
沿革
===================================== */
.table.border-none th,
.table.border-none td {
  border: none;
}
@media only screen and (max-width: 767.98px) {
  table .w-25 {
    width: 100% !important;
  }
  .page_enforcement table .w-25 {
    width: 25% !important;
  }
}

/* ==================================
投稿
===================================== */
article .post_thumbnail img {
  width: 200px !important;
  height: 130px !important;
  object-fit: cover !important;
}
article.relationlist .post_thumbnail img {
  width: auto !important;
  height: auto !important;
}
.number-list,
.list-none {
  padding: 0 !important;
}
.number-list li {
  list-style-type: decimal !important;
  margin-bottom: 10px !important;
}
.list-none li {
  list-style-type: none !important;
}
.information01-3-img {
  right: 0;
}
.event-none a {
  pointer-events: none;
  color: #333;
}
@media only screen and (max-width: 767.98px) {
  article .post_thumbnail img {
    height: auto !important;
  }
}
@media only screen and (max-width: 690px) {
  .information01-3-img {
    width: 60px;
    top: -30px;
  }
}

/* ==================================
事務所一覧
===================================== */
@media only screen and (max-width: 690px) {
  .page_office .table th,
  .page_office .table td {
    display: inline-block;
    width: 100%;
  }
  .page_office .table th {
    background-color: #f5f5f5;
  }
}

/* ==================================
数字で見る
===================================== */
.number-block .col {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
}
.number-block .col .h1 {
  font-size: 100px;
}
.number-block .col .h1.kyu-text {
  font-size: 60px;
}
.number-block .col .h3 {
  font-size: 70px;
}
.number-block .col .h6 {
  font-size: 40px;
}
.number-block .col.number09 .h1 {
  font-size: 130px;
}
@media only screen and (max-width: 1024px) {
  .number-block .col .h1 {
    font-size: 60px;
  }
  .number-block .col .h1.kyu-text {
    font-size: 60px;
  }
  .number-block .col.number09 .h1 {
    font-size: 100px;
  }
}
@media only screen and (max-width: 820px) {
  .number-block .col .h1 {
    font-size: 60px;
  }
  .number-block .col .h1.kyu-text {
    font-size: 30px;
  }
  .number-block .col .h3 {
    font-size: 40px;
  }
  .number-block .col .h6 {
    font-size: 26px;
  }
  .number-block .col.number09 .h1 {
    font-size: 80px;
  }
  .number-block .col.number09 .mr-3 {
    margin-right: auto;
    margin-left: auto;
  }
}

/* ==================================
教育体制
===================================== */
.education-link .education-col {
  width: 200px;
  height: 200px;
  margin: 0 10px 20px;
  -webkit-transition: all 0.5s;
  -o-transition: all 0.5s;
  transition: all 0.5s;
}
.education-link .education-col:hover {
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.2) !important;
  -webkit-transition: all 0.5s;
  -o-transition: all 0.5s;
  transition: all 0.5s;
}

@media only screen and (max-width: 690px) {
  .education-link .education-col {
    width: 150px;
    height: 150px;
    margin: auto;
    margin-bottom: 20px;
  }
}

/* ==================================
ワークライフバランス
===================================== */
.work-life-img .work-life-col,
.work-life-img .work-life-col img {
  width: 250px;
  height: 250px;
}

@media only screen and (max-width: 1200px) {
  .work-life-img .w-80 {
    width: 90% !important;
  }
}
@media only screen and (max-width: 991px) {
  .work-life-img .w-80 {
    width: 100% !important;
  }
  .work-life-img .work-life-col,
  .work-life-img .work-life-col img {
    width: 200px;
    height: 200px;
  }
}
@media only screen and (max-width: 768px) {
  .work-life-img .work-life-col {
    margin: auto;
    margin-bottom: 20px;
  }
}

/* ==================================
新卒採用
===================================== */
.bg-opacity-white {
  background-color: rgba(255, 255, 255, 0.8);
}
.recruit-block .bg-opacity-white p {
  line-height: 1.3 !important;
}
.recruit-block {
  overflow: visible !important;
  margin-bottom: 150px !important;
}
.recruit-block .dlb_contents_bg_text {
  margin-top: 100px !important;
}
.step-title {
  position: absolute;
  top: -15px;
  left: 50%;
  transform: translateX(-50%);
}
@media only screen and (max-width: 991px) {
  .recruit-block {
    overflow: visible !important;
    margin-bottom: 80px !important;
  }
  .recruit-block .dlb_contents_bg_text {
    margin-top: 0 !important;
  }
}

/* ==================================
エントリーフォーム
===================================== */
.page_entry .contact-header,
.page_entry .form-header {
  display: none;
}
/*.entry-tel a {
  background: url(/dcms_media/image/tel-icon-green.png) left center / 24px no-repeat;
  color: #159f75 !important;
  padding: 10px 10px 10px 26px;
}*/
.entry-tel a {
  background: url(/dcms_media/image/tel-icon.png) left center / 24px no-repeat;
  color: #0f78d2 !important;
  padding: 10px 10px 10px 26px;
}

/* ==================================
お問い合わせ
===================================== */
.page_contact .entry-header,
.page_contact .form-header {
  display: none;
}

/* ==================================
説明会動画お申込みフォーム
===================================== */
.page_form .contact-header,
.page_form .entry-header {
  display: none;
}

/* ==================================
よくある質問
===================================== */
.c-btn-accordion {
  cursor: pointer;
  -webkit-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}
.c-btn-accordion:hover {
  opacity: 0.8;
}
.c-btn-accordion-text-icon {
  width: auto;
  font-size: 40px;
}
.c-btn-accordion-text {
  flex-grow: 1;
  line-height: 1.6;
  font-size: 20px;
  font-weight: bold;
}
.l-btn-accordion-arrow-icon {
  width: auto;
}
.c-btn-accordion-arrow-icon {
  width: 1.5rem;
  height: 1.5rem;
}
.c-btn-accordion-arrow {
  width: 100%;
  height: 100%;
  -webkit-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}
.c-btn-accordion-arrow.is-active {
  transform: rotate(-45deg);
}
.c-btn-accordion-arrow::before {
  position: absolute;
  display: block;
  content: "＋";
  top: 50%;
  right: 50%;
  transform: translate(50%, -50%);
  color: #0b7a58;
  font-size: 30px;
}
.c-accordion-toggle-box {
  display: none;
}
.c-accordion-toggle-box .h4 {
  font-size: 40px;
}
.editor_block .c-accordion-toggle-box {
  display: block;
}
.mce-content-body .c-accordion-toggle-box {
  display: block;
}
@media only screen and (max-width: 690px) {
  .c-btn-accordion-text-icon {
    font-size: 30px;
  }
  .c-btn-accordion-arrow::before {
    font-size: 26px;
  }
  .c-btn-accordion-text {
    font-size: 16px;
  }
}

/* ==================================
直接施行
===================================== */
@media only screen and (max-width: 690px) {
  .page_enforcement .w-60 {
    width: 100% !important;
  }
}

/* ==================================
i-construction
===================================== */
.page_i-construction .dlb_flow-item img,
.img-common img {
  aspect-ratio: 4 / 2.5;
  object-fit: cover;
}
@media only screen and (max-width: 991px) {
  .page_i-construction .dlb_flow-1 .dlb_flow-item+.dlb_flow-item::before {
    top: 35% !important;
    left: -10px !important;
    -webkit-transform: none !important;
    transform: none !important;
  }
}
@media only screen and (max-width: 690px) {
  .page_i-construction .dlb_flow-1 .dlb_flow-item+.dlb_flow-item::before {
    top: -25px !important;
    left: 49% !important;
    -webkit-transform: rotate(90deg) !important;
    transform: rotate(90deg) !important;
  }
}

/* ==================================
採用情報
===================================== */
.top-topics.--recruit .dlb_blog-item {
  border-top: 2px dashed rgba(21, 159, 117, .5);
}
.top-topics.--recruit .dlb_blog-item:last-of-type {
  border-bottom: 2px dashed rgba(21, 159, 117, .5);
}
/* 共通部分 */
.page_recruit .container {
  width: 100%;
}
.page_recruit #locator {
  display: none;
}

/* header */
.page_recruit .bs_header-01 {
  background-color: transparent;
  box-shadow: none;
}
.page_recruit .bs_header-01.change-color {
  background-color: #fff;
  box-shadow: none;
  -webkit-box-shadow: 0 0 10px 3px rgba(0, 0, 0, 0.1);
  box-shadow: 0 0 10px 3px rgba(0, 0, 0, 0.1);
  -webkit-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
}
@media only screen and (max-width: 1250px) {
  .page_recruit .bs_header-01 {
    background-color: #fff;
    box-shadow: none;
    -webkit-box-shadow: 0 0 10px 3px rgba(0, 0, 0, 0.1);
    box-shadow: 0 0 10px 3px rgba(0, 0, 0, 0.1);
    -webkit-transition: all 0.3s;
    -o-transition: all 0.3s;
    transition: all 0.3s;
  }
}

/* slide btn */
.page_recruit .swiper-button-next:before,
.page_recruit .swiper-button-prev:before {
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  width: 12px;
  height: 12px;
  right: -12px;
}
.page_recruit .swiper-button-prev:before {
  right: -16px;
}
.page_recruit .swiper-button-next:after,
.page_recruit .swiper-button-prev:after {
  content: "";
  position: relative;
  top: -20px;
  right: 0;
  display: inline-block;
  width: 40px;
  height: 40px;
  background-color: #159f75;
  border-radius: 100%;
  z-index: 0;
}

/* タイトル */
.recruit-title {
  font-size: 40px;
}
@media only screen and (max-width: 690px) {
  .recruit-title {
    font-size: 30px;
  }
}

/* MV */
.recruit-mv {
  height: 90vh;
  margin-top: -87px;
}
.recruit-mv.bg-black-shadow::before {
  background-color: rgba(0, 0, 0, 0.3);
}
.recruit-mv .container {
  height: 100%;
}
.recruit-mv .container .text {
  position: absolute;
  top: 50%;
  left: 5%;
  transform: translateY(-50%);
}
.recruit-mv h1 {
  line-height: 1.5;
}

@media only screen and (max-width: 1250px) {
  .recruit-mv {
    margin-top: auto;
  }
}

@media only screen and (max-width: 690px) {
  .recruit-mv h1 {
    font-size: 26px;
  }
}

/* ボタン */
div.btn.btn-recruit a {
  color: #fff;
}
div.btn.btn-recruit :hover {
  color: #159f75;
}
div.btn.btn-recruit a::before {
  right: 12px;
  -webkit-transition: all 0.5s;
  -o-transition: all 0.5s;
  transition: all 0.5s;
}
div.btn.btn-recruit a::after {
  content: "";
  position: absolute;
  background-color: #159f75;
  border: 2px solid #159f75;
  top: 50%;
  right: 0;
  width: 40px;
  height: 40px;
  z-index: -1;
  transform: translateY(-50%);
  -webkit-transition: all 0.5s;
  -o-transition: all 0.5s;
  transition: all 0.5s;
}
div.btn.btn-recruit a:hover::before {
  background: url(/dcms_media/image/arrow-green.png) 0 0 no-repeat;
  -webkit-transition: all 0.5s;
  -o-transition: all 0.5s;
  transition: all 0.5s;
}
div.btn.btn-recruit a:hover::after {
  -webkit-transition: all 0.5s;
  -o-transition: all 0.5s;
  transition: all 0.5s;
  background-color: #fff;
}

/* 流れる文字 */
.slider-font-wrap {
  padding: 300px 0 0;
  overflow: hidden;
  position: relative;
}
.slider-font-top {
  position: absolute;
  width: 100%;
  left: 0;
  top: 0;
}
.slider-font-top .slider-font {
  position: absolute;
  top: 0;
  left: 0;
  width: 16em;
  height: auto;
  font-family: "mgenplus", sans-serif;
  font-size: 200px;
  line-height: 1;
  text-align: center;
  z-index: -1;
  white-space: nowrap;
  font-weight: 900;
}
.slider-font-top .slider-font.txt1 {
  left: 0;
  animation: flowimg 40s linear infinite;
}
.slider-font-top .slider-font.txt2 {
  left: 16em;
  animation: flowimg 40s linear infinite;
}
@keyframes flowimg {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-100%);
  }
}
@media only screen and (max-width: 690px) {
  .slider-font-wrap {
    padding: 150px 0 0;
  }
  .slider-font-top .slider-font {
    font-size: 100px;
  }
}

/* 代表メッセージ */
.recruit-message {
  padding: 0 0 100px;
}
.recruit-message.bg-white-shadow::before {
  background-color: rgba(255, 255, 255, 0.7);
}
.recruit-message-img .img-fluid {
  position: relative;
  z-index: 1;
}
.recruit-message-img .img-fluid::before {
  position: absolute;
  content: "";
  background: -moz-linear-gradient(top, #159f75, #59e0b7);
  background: -webkit-linear-gradient(top, #159f75, #59e0b7);
  background: linear-gradient(to bottom, #159f75, #59e0b7);
  z-index: -1;
  top: 20px;
  right: 0;
  width: 103%;
  height: 100%;
  border-radius: 50px 0 0 0;
}
.recruit-message-img img {
  border-radius: 50px 0 0 0;
  aspect-ratio: 2 / 2.5;
  object-fit: cover;
  object-position: 100% 70%;
}

@media only screen and (max-width: 991px) {
  .recruit-message {
    padding: 0;
  }
}
@media only screen and (max-width: 690px) {
  .recruit-message.bg_image {
    background-size: contain;
    background-position: 100% 70%;
  }
  .recruit-message-img {
    width: 110%;
    margin-left: -10%;
  }
  .recruit-message-img .img-fluid::before {
    top: 10px;
  }
  .recruit-message.bg-white-shadow::before {
    z-index: -1;
  }
}

/* 各採用 */
.recruit-link-block .bg-black-shadow::before {
  background-color: rgba(0, 0, 0, 0.2);
  -webkit-transition: all 0.5s;
  -o-transition: all 0.5s;
  transition: all 0.5s;
}
.recruit-link-block .bg-black-shadow:hover:before {
  background-color: rgba(0, 0, 0, 0.6);
  -webkit-transition: all 0.5s;
  -o-transition: all 0.5s;
  transition: all 0.5s;
}
.recruit-link-block .link {
  height: 440px;
  position: relative;
}
.recruit-link-block .link a {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 1;
}
.recruit-link-block .link .container {
  height: 100%;
}
.recruit-link-block .link .title {
  position: absolute;
  top: 20%;
  right: 0;
}
.recruit-link-block .link.career .title {
  position: absolute;
  top: 20%;
  left: 0;
}
.recruit-link-block .bg_image {
  height: 440px;
  position: relative;
}
.career .bg_image {
  background-position: top;
  transform: rotate(2deg);
  margin-top: -40px;
  margin-bottom: -40px;
  z-index: 1;
  width: 110%;
  left: -5%;
}
.employment.link {
  margin-top: -40px;
}
.career .container {
  transform: rotate(-2deg);
}
@media only screen and (max-width: 690px) {
  .recruit-link-block .bg_image,
  .recruit-link-block .link {
    height: 220px;
  }
  .recruit-link-block .career .bg_image,
  .recruit-link-block .career.link {
    height: 200px;
  }
  .recruit-link-block .link .title {
    right: 5%;
  }
  .recruit-link-block .link.career .title {
    left: 10%;
  }
  .recruit-link-block .recruit-title {
    font-size: 26px;
  }
  .recruit-link-block .link.employment .title {
    top: 30%;
  }
}

/* 1分でわかる日本測地 */
.recruit-data .bg_image {
  padding: 100px 20px;
  position: relative;
}
.recruit-data .bg_image::before {
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  background: -moz-linear-gradient(top, #0f78d2, #083c69);
  background: -webkit-linear-gradient(top, #0f78d2, #083c69);
  background: linear-gradient(to bottom, #0f78d2, #083c69);
  width: 100%;
  height: 100%;
  opacity: 0.7;
}
.recruit-character {
  position: absolute;
  top: -50px;
  left: -230px;
  white-space: pre;
}
.recruit-character img {
  width: 130px;
}
@media only screen and (max-width: 690px) {
  .recruit-data .h1 {
    font-size: 26px;
  }
  .recruit-character {
    flex-direction: row-reverse;
    top: 100%;
    left: 0;
  }
  .recruit-data .bg_image {
    padding: 40px 20px 100px;
  }
}

/* 人を知る */
.recruit-member .col {
  position: relative;
  -webkit-transition: all 0.5s;
  -o-transition: all 0.5s;
  transition: all 0.5s;
}
.recruit-member .col:hover {
  transform: translateY(-10px);
  -webkit-transition: all 0.5s;
  -o-transition: all 0.5s;
  transition: all 0.5s;
}
.recruit-member a {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.recruit-member .img-fluid {
  position: relative;
  cursor: pointer;
}
.recruit-member .img-fluid::before {
  border-radius: 0 50px 0 0;
  position: absolute;
  content: "";
  background: -moz-linear-gradient(top, #159f75, #59e0b7);
  background: -webkit-linear-gradient(top, #159f75, #59e0b7);
  background: linear-gradient(to bottom, #159f75, #59e0b7);
  z-index: -1;
  top: 10px;
  left: 0;
  width: 102%;
  height: 100%;
}
.recruit-member .img-fluid img {
  border-radius: 0 50px 0 0;
  -webkit-transition: transform 0.6s ease;
  -o-transition: transform 0.6s ease;
  transition: transform 0.6s ease;
}
.recruit-member .img-fluid:hover img {
  transform: scale(1.1);
  /* 拡大 */
}
.recruit-member .img-fluid .member-name {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 60%;
  border-radius: 20px 0 0 0;
  padding: 10px;
}

/* FAQ */
.recruit-faq .container {
  border-radius: 20px;
}
.recruit-faq .bg-white {
  border-radius: 20px;
}

@media only screen and (max-width: 690px) {
  .recruit-faq .w-80 {
    width: 100% !important;
  }
}

/* ホバーリンクメニュー */
#recruit .wrap {
  padding: 250px 0 100px;
  overflow: hidden;
  position: relative;
}
#recruit .wrap::before {
  content: "";
  display: block;
  width: 102%;
  height: 250px;
  position: absolute;
  left: 0;
  top: -1px;
  background: url(/dcms_media/other/circle_mask.svg) no-repeat center top/100% 100%;
}
#recruit .contents {
  position: static;
  width: 100%;
  max-width: 100%;
}
#recruit ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-gap: 0;
  justify-items: center;
  align-items: center;
}
#recruit ul li {
  width: 100%;
  cursor: pointer;
  -webkit-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
}
#recruit ul li {
  border-bottom: 1px solid #efefef;
}
#recruit ul li:first-child {
  border-top: 1px solid #efefef;
}
#recruit ul li:nth-child(2),
#recruit ul li:nth-child(3),
#recruit ul li:nth-child(4) {
  border-right: 1px solid #efefef;
}
#recruit ul:hover li {
  border-color: transparent;
}
#recruit ul li::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  z-index: -1;
  -webkit-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
  opacity: 0;
}
#recruit ul:hover li.active::before {
  opacity: 1;
}
#recruit ul li a {
  display: grid;
  grid-template-columns: 100%;
  height: 300px;
  text-align: center;
  line-height: 1;
  align-content: center;
  justify-items: center;
  border-radius: 0;
  position: relative;
  overflow: hidden;
  text-decoration: none;
  -webkit-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
}
#recruit ul:hover a::before,
#recruit ul:hover a::after {
  border-radius: 20px;
  width: calc(100% - 40px);
  height: calc(100% - 40px);
  background: -moz-linear-gradient(top, #159f75, #59e0b7);
  background: -webkit-linear-gradient(top, #159f75, #59e0b7);
  background: linear-gradient(to bottom, #159f75, #59e0b7);
  opacity: 0.8;
  -webkit-box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.15) !important;
  box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.15) !important;
}
#recruit ul:hover a span {
  color: #ffffff;
}
#recruit ul li a:hover {
  border-radius: 20px;
}
#recruit ul li a::before {
  content: "";
  display: block;
  width: 101%;
  height: 101%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
  background-color: rgb(255, 255, 255, 1);
  -webkit-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
}
#recruit ul li a::after {
  content: "";
  display: block;
  width: 101%;
  height: 101%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 0;
  -webkit-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
}
#recruit ul:hover a::after {
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}
#recruit ul a:hover::before,
#recruit ul a:hover::after {
  width: calc(100% - 60px);
  height: calc(100% - 60px);
}
#recruit ul li a span {
  display: block;
  position: relative;
  z-index: 1;
  font-family: "mgenplus", sans-serif;
  font-size: 30px;
  color: #000000;
  font-weight: 600;
  -webkit-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
  line-height: 1.2;
}
#recruit ul li a span span {
  display: block;
  font-size: 30px;
  padding-top: 0.5em;
}
#recruit ul li a:hover {
  filter: brightness(1.2);
}
#recruit ul li:first-child a span {
  font-size: 36px;
}
#recruit ul li:first-child a span span {
  font-size: 46px;
}
#recruit ul li:nth-child(1) {
  grid-area: 1/1/2/5;
}
#recruit ul li:nth-child(2) {
  grid-area: 2/1/2/2;
}
#recruit ul li:nth-child(3) {
  grid-area: 2/2/2/3;
}
#recruit ul li:nth-child(4) {
  grid-area: 2/3/2/4;
}
#recruit ul li:nth-child(5) {
  grid-area: 2/4/2/5;
}
#recruit ul li:nth-child(1) a::after {
  background-image: url(/dcms_media/image/top-link1.jpg);
}
#recruit ul li:nth-child(2) a::after {
  background-image: url(/dcms_media/image/top-link2.jpg);
}
#recruit ul li:nth-child(3) a::after {
  background-image: url(/dcms_media/image/top-link3.jpg);
}
#recruit ul li:nth-child(4) a::after {
  background-image: url(/dcms_media/image/top-link4.jpg);
}
#recruit ul li:nth-child(5) a::after {
  background-image: url(/dcms_media/image/top-link5.jpg);
}
#recruit ul li:nth-child(1)::before {
  background-image: url(/dcms_media/image/top-link1bg.jpg);
}
#recruit ul li:nth-child(2)::before {
  background-image: url(/dcms_media/image/top-link2bg.jpg);
}
#recruit ul li:nth-child(3)::before {
  background-image: url(/dcms_media/image/top-link3bg.jpg);
}
#recruit ul li:nth-child(4)::before {
  background-image: url(/dcms_media/image/top-link4bg.jpg);
}
#recruit ul li:nth-child(5)::before {
  background-image: url(/dcms_media/image/top-link5bg.jpg);
}

@media only screen and (max-width: 1219px) {
  #recruit .wrap {
    padding: 20vw 0;
  }
  #recruit .wrap::before {
    height: 20vw;
  }
  #recruit ul li a span {
    font-size: 20px;
  }
  #recruit ul li a span span {
    font-size: 30px;
  }
  #recruit ul li:first-child a span {
    font-size: 30px;
  }
  #recruit ul li:first-child a span span {
    font-size: 40px;
  }
}
@media only screen and (max-width: 979px) {
  #recruit ul li a {
    height: 250px;
  }
  #recruit ul li a span {
    font-size: 1.6vw;
  }
  #recruit ul li a span span {
    font-size: 3vw;
  }
  #recruit ul li:first-child a span {
    font-size: 3vw;
  }
  #recruit ul li:first-child a span span {
    font-size: 7vw;
  }
  #recruit ul:hover a::before,
  #recruit ul:hover a::after {
    width: calc(100% - 20px);
    height: calc(100% - 20px);
  }
  #recruit ul a:hover::before,
  #recruit ul a:hover::after {
    width: calc(100% - 40px);
    height: calc(100% - 40px);
  }
}

@media only screen and (max-width: 690px) {
  #recruit ul {
    list-style: none;
    grid-template-columns: repeat(2, 1fr);
  }
  #recruit ul li a {
    height: 40vw;
  }
  #recruit ul li a span {
    font-size: 3.6vw;
  }
  #recruit ul li a span span {
    font-size: 5vw;
  }
  #recruit ul li:first-child a span {
    font-size: 4vw;
  }
  #recruit ul li:nth-child(1) {
    grid-area: 1/1/2/3;
  }
  #recruit ul li:nth-child(2) {
    grid-area: 2/1/3/2;
  }
  #recruit ul li:nth-child(3) {
    grid-area: 2/2/3/3;
  }
  #recruit ul li:nth-child(4) {
    grid-area: 3/1/4/2;
  }
  #recruit ul li:nth-child(5) {
    grid-area: 3/2/4/3;
  }
}

/* 採用お問い合わせ */
.recruit-cta .bg_image {
  height: 500px;
  min-height: 300px;
  background-position: top;
}
.rikunavi-link a {
  display: block;
}
.rikunavi-link:hover {
  -webkit-box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, .3) !important;
  box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, .3) !important;
}
.left-border-title {
  position: relative;
  padding-left: 10px;
}
.left-border-title::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 10px;
  height: 2px;
  background-color: #159f75;
  transform: translateY(-50%);
}
.dlb_slide-2 img {
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

@media only screen and (max-width: 820px) {
  .page_member .w-70,
  .page_event .w-70 {
    width: 80% !important;
  }
}
@media only screen and (max-width: 690px) {
  .recruit-cta .bg_image {
    height: 300px;
  }
  .page_member .w-70,
  .page_event .w-70 {
    width: 90% !important;
  }
}

/* =============================================
フローティング
============================================= */
.float-btn {
  position: fixed;
  bottom: 10%;
  right: 1%;
  z-index: 10;
}
.float-btn .col {
  width: 136px;
  height: 136px;
  border-radius: 100%;
  -webkit-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
}
.float-btn .bg-grad-01 {
  border: 1px solid #0f78d2 !important;
}
.float-btn .bg-grad-01:hover {
  background: #FFF !important;
  -webkit-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
}
.float-btn .bg-grad-01 a:hover {
  color: #0f78d2 !important;
}
.float-btn .bg-grad-01:hover .img-fluid img {
  content: url('/dcms_media/image/movie-icon-on.png');
}
.float-btn .bg-grad-02 {
  border: 1px solid #159f75 !important;
}
.float-btn .bg-grad-02:hover {
  background: #FFF !important;
  -webkit-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
}
.float-btn .bg-grad-02 a:hover {
  color: #159f75 !important;
}
.float-btn .bg-grad-02:hover .img-fluid img {
  content: url('/dcms_media/image/entry-icon-on.png');
}
.iframe {
  width: 100%;
  aspect-ratio: 16 / 9;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 20px;
}
.iframe iframe {
  width: 100%;
  height: 100%;
}
.dlb_blog-data a[href*="news"] .badge {
  background-color: #0f78d2;
}
.dlb_blog-data a[href*="recruit"] .badge {
  background-color: #159f75 !important;
}
@media screen and (max-width: 690px) {
  .float-btn {
    width: 100%;
    bottom: 0;
    right: 0;
  }
  .float-btn .col {
    width: 50%;
    height: auto;
    border-radius: 0;
  }
  .page_recruit .share_top-link .top-link {
    bottom: 80px;
  }
  .page_recruit footer {
    padding-bottom: 70px;
  }
}

/* ==================================
1分でわかる日本測地設計
===================================== */
/* フォント */
@font-face {
  font-family: "Abuget";
  src: url("/dcms_media/other/Abuget.woff") format("woff");
}
.Abuget-font {
  font-family: "Abuget";
}

/* タイトル */
.heading-25.about-title {
  font-size: 50px;
  z-index: 1;
}
.heading-25.about-title::before {
  font-size: 100px;
  bottom: 0.3em;
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
}
@media only screen and (max-width: 690px) {
  .heading-25.about-title {
    font-size: 30px;
    padding-top: 1em;
  }
  .heading-25.about-title::before {
    font-size: 40px;
    bottom: 0.5em;
  }
}

/* 角丸 */
.rounded-30,
.rounded-30 img {
  border-radius: 30px;
}

/* MV */
.about-mv {
  position: relative;
}
.about-mv h1 {
  font-size: 60px;
}
.about-mv img {
  width: 100%;
  height: auto;
}
.about-mv .container {
  position: absolute;
  top: 40%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.about-mv .character {
  position: absolute;
  top: 60px;
  left: 150px;
}
.about-mv .character img {
  width: 190px;
  height: auto;
}

@media only screen and (max-width: 1200px) {
  .about-mv .character {
    left: 50px;
  }
  .about-mv .character {
    left: 100px;
  }
  .about-mv .character img {
    width: 150px;
  }
}
@media only screen and (max-width: 991px) {
  .about-mv h1 {
    font-size: 50px;
  }
}
@media only screen and (max-width: 820px) {
  .about-mv h1 {
    font-size: 40px;
  }
  .about-mv .character {
    left: 120px;
  }
  .about-mv .character img {
    width: 100px;
  }
}
@media only screen and (max-width: 690px) {
  .about-mv img {
    width: 100%;
    height: 200px;
    object-fit: cover;
  }
  .about-mv h1 {
    font-size: 30px;
  }
  .about-mv .character img {
    width: 80px;
    height: auto;
  }
  .about-mv .character {
    top: 40px;
    left: 0;
  }
}

/* 事業について */
.about-business .about-business--in {
  position: relative;
}
.about-business .about-business--in::before {
  position: absolute;
  content: "";
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 600px;
  height: 600px;
  background-color: transparent;
  border: 20px solid #e2f8fa;
  border-radius: 100%;
}
.about-business .about-circle {
  position: relative;
}
.about-business .about-circle--in {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.about-business .about-circle--in img {
  width: auto;
  height: 100px;
  max-width: none;
}
.about-business .about-circle--in h3 {
  font-size: 36px;
  position: relative;
}
.about-business .col .about-circle--in h3::before {
  position: absolute;
  content: "";
  font-family: "Abuget";
  font-size: 36px;
  transform: rotate(-20deg);
  right: -20px;
  bottom: -20px;
  opacity: 0.3;
  letter-spacing: 3px;
}
.about-business .col:first-child .about-circle--in h3::before {
  content: "Plan";
}
.about-business .col:nth-child(2) .about-circle--in h3::before {
  content: "Design";
}
.about-business .col:nth-child(3) .about-circle--in h3::before {
  content: "Surveying";
}
.about-business .col:last-child .about-circle--in h3::before {
  content: "Compensation";
}

@media only screen and (max-width: 820px) {
  .about-business .about-business--in::before {
    width: 400px;
    height: 400px;
  }
  .about-business .about-circle--in img {
    height: 60px;
  }
  .about-business .col:first-child .about-circle--in img {
    height: 80px;
  }
  .about-business .br-pc {
    display: none;
  }
}
@media only screen and (max-width: 690px) {
  .about-business--in .w-80 {
    width: 100% !important;
  }
  .about-business .about-circle--in h3 {
    font-size: 20px;
  }
  .about-business .col .about-circle--in h3::before {
    font-size: 26px;
  }
  .about-business p {
    font-size: 14px;
  }
  .about-business .about-circle--in img,
  .about-strength-wrapper img {
    width: auto;
    height: 50px;
  }
  .about-business .col:first-child .about-circle--in img {
    height: 60px;
  }
  .about-business .about-business--in::before {
    width: 300px;
    height: 300px;
  }
}


/* 強み */
.about-strength h3 {
  font-size: 30px;
}
.sokuchikun {
  position: absolute;
  left: -10px;
  bottom: -10px;
}
.sokuchikun img {
  width: auto;
  height: 110px;
  overflow: visible;
}
.point-title {
  display: inline-block;
  font-size: 26px;
  padding: 17px 30px 7px 34px;
  position: relative;
  color: #fff;
  z-index: 1;
  margin-bottom: 16px !important;
}
.point-title::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  z-index: -1;
  background: #4a8fd8;
  transform: translateY(-50%) perspective(3em) rotateX(10deg);
  width: 200px;
  height: 100%;
  transform-origin: bottom left;
}
@media only screen and (max-width: 820px) {
  .about-strength h3 {
    font-size: 22px;
  }
  .point-title {
    font-size: 20px;
  }
  .point-title::before {
    width: 160px;
  }
  .sokuchikun img {
    height: 70px;
  }
}
@media only screen and (max-width: 690px) {
  .about-strength h3 {
    font-size: 16px;
    margin-bottom: 0 !important;
  }
  .point-title {
    white-space: nowrap;
    font-size: 12px;
    margin-bottom: 0 !important;
    padding: 20px 20px 10px 10px;
    margin-right: 10px;
  }
  .point-title::before {
    width: 100%;
  }
}

/* 企業情報 */
.about-data-wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 40px;
}
.about-data-wrapper .item {
  background-color: #eaf0f9;
  border-radius: 20px;
  position: relative;
}
.about-data-wrapper .item.area-item {
  grid-column: 1 / 3;
  grid-row: 2 / 4;
}
.about-data-wrapper .item.area-item img {
  width: 480px;
  height: auto;
}
.about-data-wrapper .item:first-of-type .img {
  margin-bottom: 20px;
}
.about-data-wrapper .item:nth-of-type(2) .img {
  margin-top: 20px;
}
.about-data-wrapper .item h3 {
  position: relative;
  background: #0f78d2;
  padding: 20px;
  text-align: center;
  color: #ffffff;
  font-size: 30px;
  font-weight: bold;
  margin-bottom: 40px;
  border-top-right-radius: 20px;
  -webkit-border-top-right-radius: 20px;
  -moz-border-radius-topright: 20px;
  border-top-left-radius: 20px;
  -webkit-border-top-left-radius: 20px;
  -moz-border-radius-topleft: 20px;
}
.about-data-wrapper .item h3:after {
  border: solid transparent;
  content: "";
  height: 0;
  width: 0;
  pointer-events: none;
  position: absolute;
  border-color: rgba(15, 120, 210, 0);
  border-top-width: 20px;
  border-bottom-width: 20px;
  border-left-width: 15px;
  border-right-width: 15px;
  margin-left: -15px;
  border-top-color: #0f78d2;
  top: 100%;
  left: 50%;
}
.about-data-wrapper img {
  width: auto;
  height: 90px;
}
.item-title {
  font-family: "mgenplus", sans-serif;
  font-size: 40px;
  color: #00c49c !important;
  line-height: 1 !important;
}
.title-number {
  font-size: 70px;
  line-height: 1;
  font-weight: bold;
}
.number {
  font-family: "mgenplus", sans-serif;
  font-size: 26px;
  line-height: 1;
}
.bg-green {
  background-color: #00c49c;
}
@media only screen and (max-width: 1200px) {
  .title-number {
    font-size: 60px;
  }
}
@media only screen and (max-width: 991px) {
  .about-data-wrapper {
    gap: 20px;
  }
  .about-data-wrapper .item h3,
  .item-title {
    font-size: 20px;
    margin-bottom: 30px;
  }
  .about-data-wrapper .item.area-item img {
    width: 380px;
  }
  .about-data-wrapper .item .img {
    margin-bottom: 20px;
  }
  .about-data-wrapper img {
    width: auto;
    height: 70px;
  }
  .title-number {
    font-size: 50px;
  }
}
@media only screen and (max-width: 690px) {
  .about-data-wrapper {
    grid-template-columns: 1fr;
  }
  .about-data-wrapper .item.area-item {
    grid-column: auto;
    grid-row: auto;
    margin-bottom: 20px;
  }
  .about-data-wrapper .item.area-item img {
    width: 100%;
  }
  .about-data-wrapper .item h3 {
    padding: 10px;
    margin-bottom: 20px;
  }
  .title-number {
    font-size: 40px;
  }
  .title-number,
  .area-item-title .title-number {
    font-size: 60px;
  }
  .item-title {
    font-size: 20px;
  }
  .number {
    font-size: 18px;
  }
}

/* 企業情報 - 拠点数タイトル */
.area-item-title {
  width: 280px;
  height: 280px;
  position: absolute;
  top: 17%;
  left: 10%;
}
.area-item-title-in {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
}
.area-item-title .title-number {
  font-size: 110px;
}
.vertical-rl {
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
}
@media only screen and (max-width: 991px) {
  .area-item-title {
    top: 20%;
    width: 200px;
    height: 200px;
  }
  .area-item-title .title-number {
    font-size: 80px;
  }
}
@media only screen and (max-width: 690px) {
  .area-item-title {
    width: 130px;
    height: 130px;
  }
}


/* 数字で見る働き方 */
.about-number .bg_image::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: rgba(15, 120, 210, 0.7);
  -webkit-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
}
.about-number .bg_image:hover:before {
  -webkit-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
  background-color: rgba(13, 86, 149, 0.7);
}
.about-number h2 {
  font-size: 40px;
}
.about-number-title1 {
  font-size: 60px;
  line-height: 1;
  vertical-align: sub;
}
.about-number-title2 {
  font-size: 80px;
  position: relative;
  vertical-align: middle;
}
.about-number-title2::before {
  position: absolute;
  content: "Look at the numbers";
  font-family: "Abuget";
  font-size: 40px;
  transform: rotate(-15deg);
  right: -60px;
  bottom: -10px;
  opacity: 0.7;
  letter-spacing: 3px;
  font-weight: normal;
  white-space: nowrap;
}
.about-number-link {
  background-color: #00c49c;
  padding: 20px 0;
}
.about-number-link::before {
  position: absolute;
  content: "";
  background-color: #3cb284;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  opacity: 0;
  -webkit-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
}
.about-number-link:hover::before {
  opacity: 1;
  -webkit-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
}
@media only screen and (max-width: 991px) {
  .about-number h2 {
    font-size: 26px;
  }
  .about-number-title1 {
    font-size: 40px;
  }
  .about-number-title2 {
    font-size: 60px;
  }
}
@media only screen and (max-width: 690px) {
  .about-number h2 {
    font-size: 20px;
  }
  .about-number-title1 {
    font-size: 26px;
  }
  .about-number-title1 img {
    width: 20px;
    height: auto;
  }
  .about-number-title2 {
    font-size: 36px;
  }
  .about-number-title2::before {
    font-size: 26px;
    right: -50px;
  }
}

/* ==================================
業務実績
===================================== */
.page_results div.btn.pdf-btn a {
  padding-left: 0px;
  padding-right: 20px;
}


/* ==================================
VR等の先端技術
===================================== */
/*#vr-movie video {
  aspect-ratio: 21 / 9;
  object-fit: cover;
}*/
.icon-before-main li::marker {
  color: #0F78D2 !important;
}

@media only screen and (max-width: 690px) {
  .page_vr .heading-25::before {
    font-size: 1em;
  }
}

/* ==================================
カスタマイズ
===================================== */
:where(.lib-link__arr) a:before,
:where(a.lib-link__arr):before {
  left: -20px;
}
.lib-footer__data>dt {
  font-size: 1.5rem;
}
.lib-header__outer a:not([class*=__btn]) {
  font-size: 1.6rem;
  font-weight: bold;
}
.lib-map-001__col a,
.lib-map-001__col .btn-link {
  color: #000000;
}
.media-side__box a {
  color: #000000;
}
.media-side__view a {
  color: #ffffff;
}
.media-post__item a {
  color: #000000;
}
.lib-form__input a {
  color: #000000;
}
.lib-media__title a {
  color: #333333;
}


.lib-blog-001 .lib-media__txt {
  display: none;
}


/*----------- 会社概要 ----------*/
.top-company {
  position: relative;
}
.top-company::before {
  content: "";
  position: absolute;
  background-color: var(--LGRY);
  width: 75%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: -2;
}
.top-company::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 260px;
  height: 260px;
  transform: translateY(-50%);
  z-index: -1;
}
a.lib-link__btn {
  padding: 10px 15px;
}

/*----------- 事業内容 ----------*/
.top-people .lib-bnr-003__link {
  border: none !important;
}
.top-people .lib-bnr-003__thumb::before {
  position: absolute;
  content: "";
  background: -moz-linear-gradient(top, rgba(73, 0, 121, 0) 50%, var(--MAIN));
  background: -webkit-linear-gradient(top, rgba(73, 0, 121, 0) 50%, var(--MAIN));
  background: linear-gradient(to bottom, rgba(73, 0, 121, 0) 50%, var(--MAIN));
  width: 100%;
  height: 100%;
  opacity: 1 !important;
  z-index: 1;
}
.top-people .lib-bnr-003__link:hover .lib-bnr-003__thumb::before {
  background: -moz-linear-gradient(top, rgba(73, 0, 121, 0) 10%, var(--MAIN));
  background: -webkit-linear-gradient(top, rgba(73, 0, 121, 0) 10%, var(--MAIN));
  background: linear-gradient(to bottom, rgba(73, 0, 121, 0) 10%, var(--MAIN));
}
.top-people .t-txt {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  line-height: normal;
  z-index: 1;
}

/*----------- お知らせ ----------*/
@media print,
screen and (min-width: 768px) {
  .top-news .lib-card__txtarea {
    flex-direction: row;
    align-items: center;
  }
  .top-news .lib-media__time {
    margin-top: 0 !important;
    order: 1;
    margin-right: 1rem;
  }
  .top-news .lib-media__category {
    order: 2;
    margin-right: 1rem;
  }
  .top-news .lib-media__title {
    margin-top: 0 !important;
    order: 3;
  }
}
.top-news .lib-blog-001 .swiper-wrapper {
  display: block !important;
}
.top-news .lib-media__thumb,
.top-news .lib-media__txt,
.top-news .lib-swiper__control {
  display: none !important;
}
.top-news .lib-media__title {
  font-size: 1rem;
  margin-bottom: 0;
}
.top-news .lib-blog-001 .swiper-wrapper .lib-media__item {
  padding-bottom: 1rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid var(--GRY);
}

@media print,
screen and (max-width: 767px) {
  .top-company::before {
    width: 85%;
  }
  .top-company::after {
    left: 20%;
    width: 200px;
    height: 200px;
  }
}

@media print,
screen and (min-width: 992px) {
  .lib-header__outer.lib-header-BS02 .lib-header__bar {
    width: 360px;
  }
  .lib-header__logo img {
    width: 150px;
  }
  .is-scroll .lib-header__logo img {
    width: 80px;
  }
}
@media only screen and (max-width: 690px) {
  .lib-header__outer a:not([class*=__btn]) {
    font-size: 1.2rem;
  }
  .lib-header__logo img {
    width: 80px;
  }
}