@charset "utf-8";
/* ===================================================================
CSS information

  file name  :page.css
  style info :各ページ
=================================================================== */

/* -----------------------------------------------------------
  TOP
----------------------------------------------------------- */
.bird {
  position: absolute;
  width: 12px;
  height: 12px;
  transform: rotate(45deg);
  top: 20vh; /* 初期位置を固定 */
  left: -2vw; /* 初期位置を固定 */
  animation: moving 16s linear infinite;
  animation-fill-mode: both;
}

.bird.-type_2 {
  animation-delay: 1s;
  top: 20vh; /* 同じ高さで固定 */
}

.bird.-type_2:before,
.bird.-type_2:after {
  animation-delay: -2s;
}

.bird.-type_3 {
  animation-delay: 3s;
  top: 20vh; /* 同じ高さで固定 */
}

@keyframes moving {
  0% {
    top: 8vh;
    left: -2vw;
  }
  25% {
    top: 12vh;
    left: 23vw
  }
  100% {
    top: 8vh;
    left: 101vw;
  }
}

.bird:before,
.bird:after {
  content: "";
  position: absolute;
  bottom: 0;
  right: 0;
  background-color: white;
  transform: rotate(-30deg);
  transform-origin: right bottom;
}

.bird:before {
  width: 100%;
  height: 1px;
  animation: leftWing 8s linear infinite;
}
.bird:after {
  width: 1px;
  height: 100%;
  animation: rightWing 8s linear infinite;
}

@keyframes leftWing {
  0%   { transform: rotate(-30deg); }
  2%   { transform: rotate(-110deg); }
  4%   { transform: rotate(-30deg); }
  6%   { transform: rotate(-110deg); }
  8%   { transform: rotate(-30deg); }
  10%  { transform: rotate(-110deg); }
  12%  { transform: rotate(-30deg); }
  30%  { transform: rotate(-30deg); }
  42%  { transform: rotate(-35deg); }
  72%  { transform: rotate(-35deg); }
  74%  { transform: rotate(10deg); }
  76%  { transform: rotate(-30deg); }
  78%  { transform: rotate(-110deg); }
  80%  { transform: rotate(-30deg); }
  82%  { transform: rotate(-110deg); }
  84%  { transform: rotate(-30deg); }
  86%  { transform: rotate(-110deg); }
  88%  { transform: rotate(-30deg); }
  90%  { transform: rotate(-110deg); }
  92%  { transform: rotate(-30deg); }
  94%  { transform: rotate(-110deg); }
  96%  { transform: rotate(-30deg); }
  98%  { transform: rotate(-110deg); }
  100% { transform: rotate(-30deg); }
}

@keyframes rightWing {
  0%   { transform: rotate(30deg); }
  2%   { transform: rotate(110deg); }
  4%   { transform: rotate(30deg); }
  6%   { transform: rotate(110deg); }
  8%   { transform: rotate(30deg); }
  10%  { transform: rotate(110deg); }
  12%  { transform: rotate(30deg); }
  30%  { transform: rotate(30deg); }
  42%  { transform: rotate(35deg); }
  72%  { transform: rotate(35deg); }
  74%  { transform: rotate(0deg); }
  76%  { transform: rotate(30deg); }
  78%  { transform: rotate(110deg); }
  80%  { transform: rotate(30deg); }
  82%  { transform: rotate(110deg); }
  84%  { transform: rotate(30deg); }
  86%  { transform: rotate(110deg); }
  88%  { transform: rotate(30deg); }
  90%  { transform: rotate(110deg); }
  92%  { transform: rotate(30deg); }
  94%  { transform: rotate(110deg); }
  96%  { transform: rotate(30deg); }
  98%  { transform: rotate(110deg); }
  100% { transform: rotate(30deg); }
}

.main_sec .main_content {
  height: 500vh; /* スクロール用の高さを確保 */
}

.message_sec .main_content {
  height: 5vh; /* スクロール用の高さを確保 */
}

.main_sec .box {
  width: 100%; /* 画面幅全体を埋める */
  height: 150px; /* 長方形の高さ */
  background-color: #3498db;
  position: fixed; /* 常に画面内に固定 */
  bottom: 9.5%; /* 初期位置: 画面下部近く */
  left: 0;
  z-index: 10; /* 手前のオブジェクト */
}

.main_sec .city {
  xwidth: 50%; /* 画面幅の半分 */
  width: 100%;
  xheight: 150px; /* 高さ */
  position: fixed;
  bottom: 0; /* 画面下部に配置 */
  xbottom: 100px; /* 画面下部に配置 */
  z-index: 5; /* 青いオブジェクトの後ろ */
  opacity: 1; /* 半透明で見えるように設定 */
}

.main_sec .kumo {
  xwidth: 50%; /* 画面幅の半分 */
  /* width: 100%; */
  xheight: 150px; /* 高さ */
  position: fixed;
  bottom: 0; /* 画面下部に配置 */
  xbottom: 100px; /* 画面下部に配置 */
  z-index: 4; /* 青いオブジェクトの後ろ */
  opacity: 1; /* 半透明で見えるように設定 */
}

.main_sec .city.city_lt {
  left: -20vw;
}

.main_sec .city.city_rt {
  right: -50vw;
}

.main_sec .kumo.kumo_lt {
  left: 0;
}

.main_sec .kumo.kumo_rt {
  right: 0;
}

.main_sec .white-screen {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: white;
  z-index: 20; /* 最前面 */
  opacity: 0; /* 初期状態は透明 */
  pointer-events: none;
}

.main_sec .catchphrase {
  font-size: 4.5rem;
  font-weight: 900;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  opacity: 0; /* 初期状態は透明 */
  z-index: 30; /* 白い画面の上に表示 */
}

.main_sec .city img {
  height: 400px;
  object-fit: cover;
  /* transform: scale(5); */
}

.main_sec .city.city_lt img {
  object-position: right;
}

.main_sec .city.city_rt img {
  object-position: left;
}

.main_sec .kumo img {
  object-fit: cover;
  /* transform: scale(5); */
}

.main_sec .kumo.kumo_lt img {
  height: 550px;
  object-position: right;
}

.main_sec .kumo.kumo_rt img {
  height: 550px;
  object-position: left;
}

.gsap-marker-end,
.gsap-marker-start,
.gsap-marker-scroller-end,
.gsap-marker-scroller-start {
  display: none !important;
}

#top .main_sec {
  background: linear-gradient(#38b8ef, #bbe5ff, #ffffff);
  background-attachment: fixed;
  /* display: flex;
  justify-content: center; */
  /* height: 100vh; */
  padding: 260px 50px;
  /* padding: 200px 0; */
  position: relative;
  z-index: 0;
  overflow-x: clip;

  @media screen and (max-width: 500px) {
    padding: 200px 35px;
  }
}

#top .main_sec .cloud_sky_lt {
  position: fixed;
  top: 12vw;
  left: calc(3vw + 100px);
  z-index: 1;
  transform: scale(-1, 1);
}

#top .main_sec .cloud_sky_rt {
  position: fixed;
  top: 5vw;
  right: 5vw;
  z-index: 1;
}

#top .main_sec .cloud_sky figure img {
  width: 450px;
}

#top .main_sec .site_logo {
  display: flex;
  justify-content: center;
  margin-bottom: 50px;
  position: relative;
  z-index: 6;
}

#top .main_sec .site_logo figure img {
  /*width: 500px;*/
  width: 625px;
}

#top .main_sec .catch {
  position: relative;
  z-index: 6;
  text-align: center;
}

/* #top .main_sec .catch:after {
  content: url(../img/top/daikyo_clean.svg);
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  z-index: -1;
  width: 100%;
} */

#top .main_sec .catch .catch_en {
  /*font-size: 2.6rem;*/
  font-size: 3.6rem;
  font-weight: normal;
}

#top .main_sec .catch .catch_jp {
  font-size: 5.6rem;
  font-weight: 900;
  margin-top: 30px;
}

#top .main_sec .site_logo,
#top .main_sec .catch_en,
#top .main_sec .catch_jp {
  opacity: 0;
  transition: opacity 1s ease-in-out;
}

#top .main_sec .visible {
  opacity: 1;
}

#top .main_sec .catch_en {
  display: block;
}

#top .main_sec .catch .catch_en.slide-in-left {
  animation: slideInLeft 1s ease-out forwards;
}

#top .main_sec .catch .catch_jp.slide-in-right {
  animation: slideInRight 1s ease-out forwards;
}

@keyframes slideInLeft {
  0% {
    opacity: 0;
    transform: translateX(-100px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slideInRight {
  0% {
    opacity: 0;
    transform: translateX(100px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

#top .main_sec .catch:after {
  content: url(../img/top/daikyo_clean.svg);
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  z-index: -1;
  width: 100%;
  opacity: 0;
  transition: opacity 1s ease-in-out;
}

#top .main_sec .catch.fade-in:after {
  opacity: 1;
}

#top .message_sec {
  background: linear-gradient(#38b8ef, #bbe5ff, #ffffff);
  background-attachment: fixed;
  padding: 250px 50px 450px;
  position: relative;
  z-index: 0;
  overflow-x: clip;
}

#top .message_sec .contents .message_box .message_lead {
  font-size: 4.0rem;
  font-weight: 900;
  text-align: center;
}

#top .message_sec .contents .message_box .message_lead > span {
  display: block;
}

#top .message_sec .cloud_sky_lt {
  position: absolute;
  top: 7vw;
  left: 15vw;
  z-index: 1;
  transform: scale(-1, 1);
}

#top .message_sec .cloud_sky_rt {
  position: absolute;
  top: 3vw;
  right: 10vw;
  z-index: 1;
}

#top .message_sec .cloud_sky figure img {
  width: 450px;
}

#top .message_sec .city_lt {
  position: absolute;
  bottom: 0;
  left: -55vw;
  z-index: 1;
}

#top .message_sec .city_lt figure img {
  width: 70%;
}

#top .message_sec .city_rt {
  position: absolute;
  bottom: 0;
  right: -165vw;
  z-index: 0;
}

#top .message_sec .city_rt figure img {
  width: 50%;
}

#top .message_sec .cloud {
  height: 50vw;
}

#top .message_sec .cloud_lt {
  position: absolute;
  bottom: 0;
  left: -85vw;
  z-index: -1;
}

#top .message_sec .cloud_rt {
  position: absolute;
  bottom: 0;
  right: -85vw;
  z-index: -2;
}

#top .dc_service_sec {
  background: linear-gradient(#38b8ef, #bbe5ff, #ffffff);
  background-attachment: fixed;
  padding: 250px 50px 0;
  position: relative;
  z-index: 0;
  overflow-x: clip;
}

#top .dc_service_sec .cloud {
  height: 650px;
}

#top .dc_service_sec .cloud_lt {
  position: absolute;
  bottom: 0;
  left: -9vw;
  z-index: -1;
}

#top .dc_service_sec .cloud_rt {
  position: absolute;
  bottom: 0;
  right: -5vw;
  z-index: -1;
}

#top .dc_service_sec .building {
  position: absolute;
  bottom: 0;
  left: 50%;
  z-index: -1;
  transform: translateX(-50%);
}

#top .dc_service_sec .building .line {
  position: absolute;
  z-index: 1;
}

#top .dc_service_sec .building .line01 {
  top: -180px;
  right: 185px;
  @media (max-width: 1600px) {
    width: 26.3231%;
    top: -23.5745%;
    right: 29.6824%;
  }
}

#top .dc_service_sec .building .line01 img {
  width: 250px;
  @media (max-width: 1600px) {
    /*width: 188px;
    width: 13.113020833333334vw;*/
    width: 100%;
  }
}

#top .dc_service_sec .building .line02 {
  bottom: 10px;
  left: 150px;
  @media (max-width: 1600px) {
    width: 20.5612%;
    left: 15.1810%;
  }
}

#top .dc_service_sec .building .line02 img {
  width: 200px;
  @media (max-width: 1600px) {
    /*width: 150px;*/
    width: 100%;
  }
}

#top .dc_service_sec .building .line03 {
  bottom: 5px;
  right: -10px;
  @media (max-width: 1600px) {
    width: 42.1711%;
    right: 9.7652%;
  }
}

#top .dc_service_sec .building .line03 img {
  width: 400px;
  @media (max-width: 1600px) {
    /*width: 300px;*/
    width: 100%;
  }
}

#top .dc_service_sec .building .bldg {
  width: 45vw;
}

/* #top .dc_service_sec .building .bldg img {
  width: 450px;
} */

#top .dc_service_sec .dc_service_box {
  position: relative;
  min-height: 100vh;
  z-index: 1;
}

#top .dc_service_sec .dc_service_box > section {
  display: flex;
  flex-direction: column-reverse;
  position: absolute;
  width: 350px;
}

#top .dc_service_sec .dc_service_box .grease_trap_cleaning {
  top: -10vw;
  right: 7vw;
  @media (max-width: 1600px) {
    top: 4vw;
  }
  @media (max-width: 1536px) {
    top: -2vw;
    right: 9vw;
  }
  @media (max-width: 1366px) {
    top: -2.5vw;
    right: 5vw;
  }
  @media (max-width: 1280px) {
    top: 12.5vw;
  }
}

#top .dc_service_sec .dc_service_box .drain_cleaning_unclogging {
  top: 13vw;
  left: 3vw;
  @media (max-width: 1600px) {
    top: 22vw;
  }
  @media (max-width: 1536px) {
    top: 18vw;
  }
  @media (max-width: 1366px) {
    top: 15vw;
  }
  @media (max-width: 1280px) {
    top: 32vw;
  }
}

#top .dc_service_sec .dc_service_box .gray_water_tank_cleaning {
  top: 17vw;
  right: -2vw;
  @media (max-width: 1600px) {
    /*top: 20vw;
    right: -4vw;*/
    bottom: 9%;
  }
  @media (max-width: 1536px) {
    right: -1vw;
    bottom: 7%;
  }
  @media (max-width: 1280px) {
    right: -5vw;
    bottom: 6%;
  }
}

#top .dc_service_sec .dc_service_box > section .dc_service_hd {
  margin-top: 20px;
  text-align: center;
}

#top .dc_service_sec .dc_service_box > section .dc_service_hd > span {
  display: block;
}

#top .dc_service_sec .dc_service_box > section .dc_service_hd .dc_service_hd_en {
  color: #2366b4;
  font-family: "Noto Sans JP", serif;
  font-size: 1.4rem;
  font-weight: normal;
}

#top .dc_service_sec .dc_service_box > section .dc_service_hd .dc_service_hd_jp {
  font-size: 2.8rem;
  font-weight: 900;
  margin-top: 10px;
}

#top .dc_service_sec .dc_service_box > section .dc_service_pic img {
  border-radius: 50%;
  height: 350px;
  width: 350px;
  object-fit: cover;
  @media (max-width: 1600px) {
    width: 280px;
    height: 280px;
    margin-left: auto;
    margin-right: auto;
  }
  @media (max-width: 1600px) {
    width: 250px;
    height: 250px;
  }
}

#top .strengths_sec {
  /* padding: 150px 50px 200px; */
  position: relative;
  z-index: 1;
  overflow-x: clip;
}

#top .strengths_sec .strengths_main {
  background-image: url(../img/top/strengths_main_bg.jpg);
  background-position: center top;
  background-size: cover;
  padding: 150px 50px 800px;
}

#top .strengths_sec .strengths_main .strengths_main_box .strengths_main_lead {
  color: #ffffff;
  font-size: 1.8rem;
  text-align: center;
}

#top .strengths_sec .strengths_main .strengths_main_box .strengths_main_lead > span {
  display: block;
}

#top .strengths_sec .strengths_main .strengths_main_box .strengths_main_lead > span:not(:first-of-type) {
  margin-top: 10px;
}

#top .strengths_sec .strengths_cont {
  background-image: url(../img/top/strengths_cont_bg_middle.png);
  background-position: center;
  background-repeat: repeat;
  background-size: cover;
  /* padding-bottom: 100px; */
  position: relative;
  z-index: 0;
  overflow-x: clip;
}

.strengths_wrap01 {
  position: absolute;
  width: 100vw;
  height: 10vw;
  top: -10vw;
  right: auto;
  left: 0;
  overflow: hidden;
}

.strengths_wrap01 .strengths-cloud {
  background-size: 100vw cover;
  background-repeat: repeat-x;
  width: 100vw;
  height: 10vw;
  position: absolute;
  z-index: 0;
  top: 0;
  right: auto;
  left: 0
}

.strengths_wrap02 {
  position: absolute;
  width: 100vw;
  height: 10vw;
  bottom: -10vw;
  right: auto;
  left: 0;
  overflow: hidden;
}

.strengths_wrap02 .strengths-cloud {
  background-size: 100vw cover;
  background-repeat: repeat-x;
  background-position: bottom;
  width: 100vw;
  height: 10vw;
  position: absolute;
  z-index: 0;
  bottom: 0;
  right: auto;
  left: 0
}

.strengths_wrap .strengths-cloud01 {
  background-image: url(../img/top/strengths_cont_bg_top.png);
  background-size: cover;
}

.strengths_wrap .strengths-cloud02 {
  background-image: url(../img/top/strengths_cont_bg_bottom.png);
  background-size: cover;
}

#top .strengths_sec .strengths_cont .strengths_box {
  background-image: url(../img/top/strengths_cont_illust.svg);
  background-size: contain;
  padding: 20px 0 100px;
  height: 100%;
  width: 100%;
}

#top .strengths_sec .strengths_cont .strengths_box .strengths_list {
  max-width: 1400px;
  min-width: 810px;
  width: 90%;
  margin: 0 auto;
}

#top .strengths_sec .strengths_cont .strengths_box .strengths_list .strengths_list_in {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  width: 100%;
}

#top .strengths_sec .strengths_cont .strengths_box .strengths_list .strengths_list_in > section {
  width: 42%;
}

#top .strengths_sec .strengths_cont .strengths_box .strengths_list .strengths_list_in .strengths_02 {
  margin-left: 5vw;
  margin-top: 13vw;
}

#top .strengths_sec .strengths_cont .strengths_box .strengths_list .strengths_list_in .strengths_03 {
  margin-top: -4vw;
  margin-left: 9vw;
}

#top .strengths_sec .strengths_cont .strengths_box .strengths_list .strengths_list_in > section a {
  background-color: #ffffff;
  border-radius: 30px;
  display: block;
  padding: 80px;
}

#top .strengths_sec .strengths_cont .strengths_box .strengths_list .strengths_list_in > section.strengths_02 a {
  pointer-events: none;
}

#top .strengths_sec .strengths_cont .strengths_box .strengths_list .strengths_list_in > section a .strengths_btn {
  display: flex;
  justify-content: flex-end;
  margin-top: 30px;
}

#top .strengths_sec .strengths_cont .strengths_box .strengths_list .strengths_list_in > section a .strengths_head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
}

#top .strengths_sec .strengths_cont .strengths_box .strengths_list .strengths_list_in > section a .strengths_head .strengths_ttl .strengths_ttl_en {
  color: #576a7d;
  font-family: "Noto Sans JP", serif;
  font-size: 1.8rem;
}

#top .strengths_sec .strengths_cont .strengths_box .strengths_list .strengths_list_in > section a .strengths_head .strengths_ttl .strengths_hd {
  margin-top: 20px;
}

#top .strengths_sec .strengths_cont .strengths_box .strengths_list .strengths_list_in > section a .strengths_head .strengths_ttl .strengths_hd > span {
  display: block;
}

#top .strengths_sec .strengths_cont .strengths_box .strengths_list .strengths_list_in > section a .strengths_head .strengths_ttl .strengths_hd .strengths_sml {
  font-size: 2.2rem;
}

#top .strengths_sec .strengths_cont .strengths_box .strengths_list .strengths_list_in > section a .strengths_head .strengths_ttl .strengths_hd .strengths_lrg {
  font-size: 3.5rem;
  font-weight: 900;
  margin-top: 5px;
}

#top .strengths_sec .strengths_cont .strengths_box .strengths_list .strengths_list_in > section a .strengths_head .strengths_num {
  font-size: 18.0rem;
  font-weight: 900;
  line-height: 0.8;
}

#top .strengths_sec .strengths_cont .strengths_box .strengths_list .strengths_list_in .strengths_01 a .strengths_head .strengths_num {
  color: #0073bd;
}

#top .strengths_sec .strengths_cont .strengths_box .strengths_list .strengths_list_in .strengths_02 a .strengths_head .strengths_num {
  color: #8ec0ee;
}

#top .strengths_sec .strengths_cont .strengths_box .strengths_list .strengths_list_in .strengths_03 a .strengths_head .strengths_num {
  color: #b0d3f3;
}

#top .strengths_sec .strengths_cont .strengths_box .strengths_list .strengths_list_in > section a .strengths_lead {
  font-family: "Noto Sans JP", serif;
  margin-top: 30px;
}

#top .strengths_sec .strengths_cont .strengths_box .strengths_list .strengths_list_in > section a .strengths_lead > p {
  line-height: 1.7;
}

#top .strengths_sec .strengths_cont .strengths_box .strengths_btn_box {
  display: flex;
  margin-top: 150px;
}

#top .service_sec {
  background: linear-gradient(#bbe5ff, #eaf7ff, #ffffff, #ffffff);
  padding: 300px 50px 150px;
  position: relative;
  z-index: 0;
  overflow-x: clip;
}

.tab-list {
  display: flex;
}

.tab-item {
  border-radius: 30px 30px 0 0;
  color: #ffffff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1 1;
  font-weight: 700;
  letter-spacing: 0.1em;
  padding: 0.5em 1.25em;
}

.tab-item .number {
  font-size: 3.0rem;
  margin-left: 0.25em;
}

.tab-item01 {
  background-color: #123280;
}

.tab-item02 {
  background-color: #2366b4;
}

.tab-item03 {
  background-color: #337ed5;
}

.tab-item04 {
  background-color: #5fa8fe;
}

.tab-item:hover {
  opacity: 0.5;
}

.tab-content {
  /* background-color: #f5f5f5; */
}

.tab-panel {
  border-radius: 0 0 30px 30px;
  display: none;
  padding: 40px;
}

.tab-panel01 {
  background-color: #123280;
}

.tab-panel02 {
  background-color: #2366b4;
}

.tab-panel03 {
  background-color: #337ed5;
}

.tab-panel04 {
  background-color: #5fa8fe;
}

.tab-item.active {
  /* font-weight: bold; */
}

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

.tab-panel .tab-panel-in {
  display: flex;
  align-items: center;
}

.tab-panel:nth-of-type(2n) .tab-panel-in {
  flex-direction: row-reverse;
}

.tab-panel .txt_box {
  background-color: #ffffff;
  border-radius: 30px 0 0 30px;
  flex: 1 1;
  padding: 80px;
}

.tab-panel:nth-of-type(2n) .txt_box {
  border-radius: 0 30px 30px 0;
}

.tab-panel .txt_box .service_num {
  border-radius: 30px;
  color: #ffffff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1;
  margin-bottom: 25px;
  padding: 0.25em 1.25em;
}

.tab-panel.tab-panel01 .txt_box .service_num {
  background-color: #123280;
}

.tab-panel.tab-panel02 .txt_box .service_num {
  background-color: #2366b4;
}

.tab-panel.tab-panel03 .txt_box .service_num {
  background-color: #337ed5;
}

.tab-panel.tab-panel04 .txt_box .service_num {
  background-color: #5fa8fe;
}

.tab-panel .txt_box .service_num .number {
  font-size: 3.0rem;
  margin-left: 0.25em;
}

.tab-panel .txt_box .service_ttl > span {
  display: block;
}

.tab-panel .txt_box .service_ttl .ttl_en {
  font-family: "Noto Sans JP", serif;
  font-size: 1.4rem;
  font-weight: normal;
}

.tab-panel.tab-panel01 .txt_box .service_ttl .ttl_en {
  color: #123280;
}

.tab-panel.tab-panel02 .txt_box .service_ttl .ttl_en {
  color: #2366b4;
}

.tab-panel.tab-panel03 .txt_box .service_ttl .ttl_en {
  color: #337ed5;
}

.tab-panel.tab-panel04 .txt_box .service_ttl .ttl_en {
  color: #5fa8fe;
}

.tab-panel .txt_box .service_ttl .ttl_jp {
  font-size: 4.2rem;
  font-weight: 700;
  margin-top: 10px;
}

.tab-panel .txt_box .service_cont {
  margin-top: 25px;
}

.tab-panel .txt_box .service_cont .service_subttl {
  font-size: 2.4rem;
  font-weight: 700;
}

.tab-panel .txt_box .service_cont .service_lead {
  font-family: "Noto Sans JP", serif;
  margin-top: 15px;
}

.tab-panel .txt_box .service_btn {
  margin-top: 40px;
}

.tab-panel .pic_box {
  flex: 0 1 50%;
}

.tab-panel .pic_box picture img {
  border-radius: 30px;
  height: 580px;
  width: 100%;
  object-fit: cover;
}

.recruit_sec {
  background-image: url(../img/top/recruit_bg.jpg);
  background-position: center;
  background-size: cover;
  padding: 250px 50px 300px;
  position: relative;
  z-index: 0;
  overflow-x: clip;
}

/* .recruit_sec:before {
  background-image: url(../img/top/people.png);
  background-position: bottom;
  content: "";
  height: 100%;
  width: 600px;
  position: absolute;
  bottom: 0;
  right: 100px;
  z-index: 1;
} */

.recruit_sec .people {
  position: absolute;
  bottom: 0;
  right: 100px;
  width: 600px;
  z-index: 1;
}

.recruit_sec .company_name {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 80%;
  z-index: 1;
}

.recruit_sec .recruit_box .contents {
  background-color: #ffffff;
  border-radius: 200px;
  padding: 90px 10vw;
  position: relative;
}

.recruit_sec .recruit_box .contents:before {
  border: 1px solid #63b4e8;
  border-radius: 200px;
  content: "";
  position: absolute;
  top: -10px;
  left: -10px;
  height: 100%;
  width: 100%;
  pointer-events: none;
}

.recruit_sec .recruit_box .contents .txt_box {
  width: 70%;
}

.recruit_sec .recruit_box .contents .txt_box .recruit_hd {
  font-size: 2.4rem;
  font-weight: 700;
}

.recruit_sec .recruit_box .contents .txt_box .recruit_lead {
  font-family: "Noto Sans JP", serif;
  margin-top: 20px;
}

.recruit_sec .recruit_box .contents .lets_join_us {
  position: absolute;
  top: 70px;
  right: -70px;
}

.recruit_sec .recruit_box .contents .lets_join_us img {
  width: 180px;
}

#top .activity_sec {
  background-color: #ffffff;
  overflow-x: clip;
  padding-bottom: 200px;
  padding-top: 150px;
  position: relative;
}

#top .activity_sec .activity_box {
  background-image: url(../img/top/activity_bg.jpg);
  background-position: center;
  background-size: cover;
  border-radius: 50px;
  padding: 100px 50px;
  position: relative;
  z-index: 0;
}

#top .activity_sec .activity_box:before {
  background-color: rgba(0, 0, 0, 0.4);
  border-radius: 50px;
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: -1;
}

#top .activity_sec .activity_box .head_txt {
  color: #ffffff;
  font-size: 2.0rem;
  text-align: center;
}

#top .activity_sec .activity_box .activity_illust img {
  width: 400px;
}

#top .activity_sec .activity_box .activity_illust01 {
  position: absolute;
  top: -100px;
  right: -100px;
}

#top .activity_sec .activity_box .activity_illust02 {
  position: absolute;
  bottom: -150px;
  left: -100px;
}

#top .area_sec {
  aspect-ratio: 16 / 9;
  background-color: #a0d1f1;
  background-position: center;
  background-size: contain;
  overflow: hidden;
  padding-top: 100px;
  position: relative;
}

#top .area_sec .txtarea {
  position: relative;
  z-index: 1;
}

#top .area_sec .head_txt {
  color: #ffffff;
  font-size: 2.0rem;
  margin-top: 30px;
}

#top .area_sec .mapa_box {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 0;
}

#top .area_sec .maparea {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 0;
}

#top .area_sec .maparea .pinarea {
  height: 100%;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

#top .area_sec .maparea .pinarea .prefectures {
  position: absolute;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  opacity: 0;
  transform: translateY(20px);
}

#top .area_sec .maparea .pinarea .prefectures.animate {
  animation: slideIn 0.5s ease forwards;
}

@keyframes slideIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

#top .area_sec .maparea .pinarea .prefectures .pin img {
  display: block;
  transition: all 0.3s ease;
  width: 30px;
}

@keyframes float {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
  100% {
    transform: translateY(0);
  }
}

.float {
  animation: float 2s ease-in-out infinite;
}

#top .area_sec .maparea .pinarea .prefectures .name {
  color: #0073bd;
  font-size: 1.5rem;
  font-weight: 900;
  text-align: center;
  text-shadow: 1px 1px 1px rgba(255, 255, 255, 1), -1px -1px 1px rgba(255, 255, 255, 1);
}

#top .area_sec .maparea .pinarea .pin_tochigi {
  right: 17%;
  top: 24%;
}

#top .area_sec .maparea .pinarea .pin_ibaragi {
  right: 13.5%;
  top: 34%;
}

#top .area_sec .maparea .pinarea .pin_chiba {
  right: 15%;
  top: 46%;
}

#top .area_sec .maparea .pinarea .pin_gunma {
  right: 24.5%;
  top: 26%;
}

#top .area_sec .maparea .pinarea .pin_saitama {
  right: 22%;
  top: 33.5%;
}

#top .area_sec .maparea .pinarea .pin_tokyo {
  right: 20%;
  top: 41.25%;
}

#top .area_sec .maparea .pinarea .pin_kanagawa {
  right: 21.5%;
  top: 47%;
}

#top .area_sec .maparea .pinarea .pin_shiga {
  left: 48.25%;
  top: 53%;
}

#top .area_sec .maparea .pinarea .pin_kyoto {
  left: 43.25%;
  top: 50%;
}

#top .area_sec .maparea .pinarea .pin_nara {
  left: 46.25%;
  top: 68%;
}

#top .area_sec .maparea .pinarea .pin_wakayama {
  left: 40.5%;
  top: 75%;
}

#top .area_sec .maparea .pinarea .pin_osaka {
  left: 43%;
  top: 61%;
}

#top .area_sec .maparea .pinarea .pin_hyogo {
  left: 37%;
  top: 55%;
}

#top .area_sec .maparea .pinarea .pin_okayama {
  left: 27.5%;
  top: 57%;
}

#top .area_sec .maparea .map_jp {
  position: absolute;
  top: 0;
  left: 0;
  margin: auto;
  transform: translate(5%,-40%);
  width: 95%;
}

#top .area_sec .maparea .map_jp img {
  width: 100%;
}

#top .area_sec .mapa_box .wave .map_wave {
  position: absolute;
  height: 30px;
  width: 150px;
}

#top .area_sec .mapa_box .wave .map_wave img {
  position: absolute;
  height: 100%;
  width: 100%;
}

#top .area_sec .mapa_box .wave .map_wave01 {
  bottom: 13vw;
  right: 8vw;
}

#top .area_sec .mapa_box .wave .map_wave02 {
  bottom: 10vw;
  right: 8vw;
}

#top .area_sec .mapa_box .wave .map_wave03 {
  bottom: 3vw;
  right: 30vw;
}

/* -----------------------------------------------------------
  下層
----------------------------------------------------------- */
.lower_contents_wrapper {
  margin: 0 auto;
  padding: 0 10.41vw 6vw 15.625vw;
  position: relative;
  z-index: 0;
}

.lower_contents_obj {
  position: absolute;
  right: 0;
  top: 0;
  aspect-ratio: 445 / 369;
  width: 23.177vw;
}

/* -----------------------------------------------------------
  会社概要
----------------------------------------------------------- */

/* -----------------------------------------------------------
  事業内容
----------------------------------------------------------- */
.service .main {
  background-image: url(../img/service/main.jpg);
}

.service {
  .sec_ttl {
    font-size: 3.5rem;
    line-height: calc(42 / 35);
    font-weight: 500;
    letter-spacing: .3em;
  }
  .sec_read {
    font-size: 1.8rem;
    line-height: calc(22 / 18);
    letter-spacing: .2em;
    font-weight: 500;
    margin: 1.3vw 0 0;
  }
  .service_items {
    margin: 7vw 0 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    gap: 9.63vw 3.43vw;
  }
  .service_item {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    .imgbox {
      order: -1;
      overflow: hidden;
      border-radius: 1.77vw;
      margin: 0 0 2.86vw;
      .img {
        object-fit: cover;
        width: 100%;
        height: 100%;
      }
    }
    .catbox {
      order: 1;
      width: 172px;
      height: 33px;
      margin: 0 0 1.3vw;
      border-radius: 92px;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 12px;
      color: #fff;
    }
    .catbox._ver1 {
      background: #123280;
    }
    .catbox._ver2 {
      background: #2366B4;
    }
    .catbox._ver3 {
      background: #337ED5;
    }
    .catbox._ver4 {
      background: #5FA8FE;
    }
    .ttlbox {
      order: 2;
      margin: 0 0 2.08vw;

      .ttl_en {
        font-family: "Noto Sans JP", serif;
        font-size: 1.4rem;
        font-weight: 500;
        letter-spacing: .1em;
        line-height: calc(30 / 14);
        padding: 0 0 0 10px;
        position: relative;
        z-index: 0;
      }
      .ttl_en:before {
        content: "";
        width: 2px;
        height: 16px;
        position: absolute;
        top: 6px;
        left: 0;
      }
      .ttl_en._ver1 {
        color: #123280;
      }
      .ttl_en._ver1:before {
        background: #123280;
      }
      .ttl_en._ver2 {
        color: #2366B4;
      }
      .ttl_en._ver2:before {
        background: #2366B4;
      }
      .ttl_en._ver3 {
        color: #337ED5;
      }
      .ttl_en._ver3:before {
        background: #337ED5;
      }
      .ttl_en._ver4 {
        color: #5FA8FE;
      }
      .ttl_en._ver4:before {
        background: #5FA8FE;
      }

      .ttl {
        font-size: 3.5rem;
        line-height: calc(42 / 35);
        font-weight: 500;
        letter-spacing: .1em;
      }
      .subttl {
        font-size: 2rem;
        font-weight: 500;
        letter-spacing: .1em;
        line-height: calc(24 / 20);
        color: #576A7D;
        margin: 15px 0 0;
      }
    }
    .read {
      order: 3;
      font-family: "Noto Sans JP", serif;
      font-size: 1.6rem;
      line-height: calc(30 / 16);
      letter-spacing: .2em;
      margin: 0 0 2.6vw;
    }
    .service_btn {
      order: 4;
    }
  }
}

/* -----------------------------------------------------------
  事業内容詳細
----------------------------------------------------------- */
/* 共通 */
.service_single_sec {
  padding: 0 0 6vw;
}
.service_single_sec .head_contents {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
  gap: 2vw 4.427vw;
  padding: 0 0 15.625vw;
}

.service_single_sec .head_contents .txtbox {
  .ttl {
    font-size: 3rem;
    font-weight: 500;
    line-height: calc(55 / 30);
    letter-spacing: .3em;
    color: #337ED5;
    margin: 0 0 1.5vw;
  }
  .read {
    font-family: "Noto Sans JP", serif;
    font-size: 1.6rem;
    line-height: calc(30 / 16);
    letter-spacing: .05em;
  }
  .btn_lists {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 20px;
    margin: 2.5vw 0 0;
  }
  .btn_list {
    border: 1px solid #D5D5D5;
    background: #FFFFFF;
    border-radius: 2px;
    padding: 0 20px;
    height: 83px;
    display: flex;
    align-items: center;
    transition: all .5s ease;
    .en {
      font-family: "Noto Sans JP", serif;
      font-size: 1.4rem;
      line-height: calc(30 / 14);
      font-weight: 500;
      color: #337ED5;
      flex-shrink: 0;
    }
    .txt {
      font-size: 1.6rem;
      line-height: calc(19 / 16);
    }
  }
  .btn_list:hover {
    background: #337ED5;
    .en {
      color: #fff;
    }
    .txt {
      color: #fff;
    }
  }
  .btn_list._half {
    .en {
      flex-basis: 50%;
    }
  }
  .btn_list._40percent {
    .en {
      flex-basis: 40%;
    }
  }
}

.service_single_sec_ttl_box {
  margin: 0 0 35px;
  .ttl {
    font-size: 3.5rem;
    font-weight: 400;
    line-height: calc(42 / 35);
    margin: 0 0 15px;
  }
  .en {
    font-family: "Noto Sans JP", serif;
    font-size: 1.4rem;
    font-weight: 500;
    letter-spacing: .1em;
    line-height: calc(30 / 14);
    color: #337ED5;
    padding: 0 0 0 10px;
    position: relative;
    z-index: 0;
  }
  .en:before {
    content: "";
    width: 2px;
    height: 16px;
    position: absolute;
    top: 6px;
    left: 0;
    background: #337ED5;
  }
}

.service_single_sec_sub_ttlbox {
  margin: 0 0 65px;
  .subttl {
    font-size: 2.5rem;
    line-height: calc(37 / 25);
    letter-spacing: .1em;
    font-weight: 400;
    margin: 0 0 15px;
  }
  .read {
    font-size: 1.6rem;
    line-height: calc(30 / 16);
    letter-spacing: .05em;
  }
}

.service_single_cards_01 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2.08vw;
  margin: 0 0 3.125vw;

  .item {
    padding: 2.604vw 3.125vw;
    border-radius: 1.77vw;
    background: #fff;
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 3;
    gap: 25px;
    .read {
      font-family: "Noto Sans JP", serif;
      font-size: 1.6rem;
      line-height: calc(30 / 16);
      letter-spacing: .05em;
    }
    .ico {
      order: -1;
      aspect-ratio: 1 / 1;
      width: 128px;
      margin: 0 auto;
    }
    .ttl {
      font-size: 2.5rem;
      line-height: calc(37 / 25);
      letter-spacing: .1em;
      font-weight: 500;
      text-align: center;
    }

  }
}

.service_single_cards_02 {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: 9.114vw 3.4375vw;
  counter-reset: service_single_cards_02 0;
  margin: 40px 0 0;

  .item {
    position: relative;
    z-index: 0;
  }

  .item:before {
    content: '0'counter(service_single_cards_02);
    counter-increment: service_single_cards_02;
    aspect-ratio: 1 / 1;
    background: #337ED5;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 80px;
    font-size: 4rem;
    line-height: calc(60 / 40);
    color: #fff;
    font-weight: 500;
    position: absolute;
    top: -40px;
    left: 50%;
    transform: translateX(-50%);
  }

  .imgbox {
    aspect-ratio: 690 / 333;
    overflow: hidden;
    border-radius: 1.77vw 1.77vw 0 0;
    .img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }

  .cont {
    padding: 2.86vw 2.86vw 2.34vw;
    border-radius: 0 0 1.77vw 1.77vw;
    background: #F9FBFC;
  }

  .ttl_box {
    margin: 0 0 20px;
    .ttl {
      font-size: 2.5rem;
      line-height: calc(37 / 25);
      letter-spacing: .1em;
      font-weight: 500;
    }
    .en {
      font-family: "Noto Sans JP", serif;
      font-size: 1.4rem;
      font-weight: 500;
      letter-spacing: .1em;
      line-height: calc(30 / 14);
      color: #337ED5;
      padding: 0 0 0 10px;
      position: relative;
      z-index: 0;
    }
    .en:before {
      content: "";
      width: 2px;
      height: 16px;
      position: absolute;
      top: 6px;
      left: 0;
      background: #337ED5;
    }
  }

  .txtbox {
    font-family: "Noto Sans JP", serif;
    font-size: 1.6rem;
    line-height: calc(30 / 16);
    letter-spacing: .05em;
    p + p {
      margin: 1.5em 0 0;
    }
  }

  .txt_link_1 {
    font-family: "Noto Sans JP", serif;
    font-size: 1.6rem;
    line-height: calc(30 / 16);
    letter-spacing: .05em;
    color: #337ED5;
    transition: all .5s ease;
    display: flex;
    align-items: center;
    gap: 15px;
    margin: 1em 0 0;
    .txt {
      border-bottom: 1px solid #337ED5;
    }
    .circle {
      aspect-ratio: 1 / 1;
      width: 15px;
      display: flex;
      align-items: center;
      justify-content: center;
      position: relative;
      z-index: 0;
      border: 1px dashed #0073bd;
      border-radius: 50%;
    }
    .circle:after {
      content: "";
      background: #0073BD;
      aspect-ratio: 7 / 6;
      width: 7px;
      mask: url(../img/common/txt_link_arw.svg) no-repeat center / contain;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%,-50%);
      transition: all .5s ease;
    }
  }

  .txt_link_1:hover {
    .txt {
      border-bottom: none;
    }
    .circle {
      background: #0073bd;
    }
    .circle:after {
      background: #fff;
    }
  }

}

.service_single_com_box {
  margin: 3.125vw 0 0;
  padding: 2.60vw 4.947vw 4.1666vw 7.03125vw;
  background: #fff;
  border-radius: 1.77vw;

  > .ttl {
    font-size: 2.5rem;
    font-weight: 500;
    letter-spacing: .2em;
    max-width: 749px;
    width: 100%;
    height: 80px;
    border: 1px solid #D5D5D5;
    background: #fff;
    margin: 0 auto 2.60vw;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .tbl_box {
    .tbl {
      width: 100%;
      border-collapse: collapse;
      border: 1px solid #D5D5D5;
    }
    th {
      background: #D5D5D5;
      height: 45px;
      text-align: center;
      vertical-align: middle;
      font-size: 1.4rem;
    }
    td {
      text-align: center;
      padding: 20px 10px;
      border: 1px solid #D5D5D5;
      > div {
        text-align: left;
      }
    }
    tr .th:not(:last-of-type) {
      border-right: 1px solid #FFFFFF;
    }
  }

  .txt_note {
    font-family: "Noto Sans JP", serif;
    font-size: 1.2rem;
  }
  .txt_note._ta_r {
    text-align: right;
  }
}

.service_single_com_box01 {
  background: #337ED5;
  border-radius: 1.822vw;
  padding: 2.08vw 5.46vw 3.6vw;
  margin: 2.6vw 0 0;
  > .ttl {
    font-size: 3rem;
    line-height: calc(55 / 30);
    letter-spacing: .2em;
    text-align: center;
    font-weight: bold;
    color: #fff;
    margin: 0 0 30px;
  }
}
.service_single_com_box01._arw {
  position: relative;
  z-index: auto;
  margin: 150px 0 0;
}
.service_single_com_box01._arw:before {
  content: "";
  aspect-ratio: 37 / 92;
  width: 37px;
  background: #337ED5;
  mask: url(../img/service-single/ico-flow-arw.svg) no-repeat center / contain;
  position: absolute;
  top: -130px;
  left: 50%;
  transform: translateX(-50%);
}
.service_single_com_box01._ill {
  position: relative;
  z-index: auto;

  .ill_img {
    aspect-ratio: 216 / 167;
    width: 216px;
    position: absolute;
    z-index: 0;
    top: -68px;
    right: -100px;
    .img {
      width: 100%;
      height: 100%;
      object-fit: contain;
    }
  }
}
.service_single_com_box01._ill:after {
  content: "";
  width: 50vw;
  height: 19px;
  background: #0073BD;
  position: absolute;
  z-index: -1;
  right: -25vw;
  top: 75px;
}

.service_single_com_box_btn {
  max-width: 525px;
  width: 100%;
  margin: 65px auto 0;
  .btn {
    width: 100%;
  }
}

.service_single_card_02 {
  background: #F9FBFC;
  border-radius: 1.77vw;
  padding: 3.385vw 1.822vw;
  width: 100%;

  .imgbox {
    aspect-ratio: 362 / 260;
    overflow: hidden;
    background: #D5D5D5;
    border-radius: 0.625vw;
  }

  .step {
    aspect-ratio: 42 / 46;
    width: 42px;
    background: #07131E;
    margin: 0 auto 20px;
    border-radius: 2px;
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    .txt {
      font-size: 0.364vw;
      margin: 0 0 2px;
    }
    .num {
      font-size: 2.5rem;
      font-weight: 500;
      line-height: 1;
    }
  }

  .ttl {
    font-size: 2.5rem;
    font-weight: 500;
    text-align: center;
    margin: 0 0 35px;
  }

}

.service_single_com_contents01 {
  display: grid;
  grid-template-columns: clamp(300px, 22.395vw, 430px) 1fr;
  gap: 4.6875vw;
  @media (max-width: 1024px) {
    display: block;
  }
}
.service_single_com_contents02 {
  display: grid;
  grid-template-columns: clamp(300px, 31.40vw, 600px) 1fr;
  gap: 2.8125vw;
  @media (max-width: 1024px) {
    display: block;
  }
}

.service_single_com_steps {
  counter-reset: step 0;

  .item {
    cursor: pointer;
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 30px;
    position: relative;
    z-index: 0;
  }
  .item:not(:last-child):before {
    content: "";
    width: 1px;
    height: 100%;
    top: 30px;
    left: 21px;
    position: absolute;
    z-index: -1;
    background: #07131E;
  }
  .item .inr {
    border-top: 1px solid #D5D5D5;
    padding: 35px 0;
  }
  .item:last-child .inr {
    border-bottom: 1px solid #D5D5D5;
  }

  .item .step {
    aspect-ratio: 42 / 46;
    width: 42px;
    background: #07131E;
    margin: 0 auto 20px;
    border-radius: 2px;
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin: 30px 0 0;
    .txt {
      font-size: 0.364vw;
      margin: 0 0 2px;
    }
  }

  .item .step:after {
    content: counter(step);
    counter-increment: step;
    font-size: 2.5rem;
    font-weight: 500;
    line-height: 1;
  }

  .item .ttl {
    font-size: 2.5rem;
    line-height: calc(37 / 25);
    font-weight: 500;
    letter-spacing: .2em;
    text-decoration: underline;
    display: table;
    margin: 0 0 25px;
  }

}

.service_single_com_points {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px,1fr));
  gap: 25px;
  counter-reset: point 0;
  .item {
    border-radius: 25px;
    background: #fff;
    padding: 12px 25px 25px;
  }
  .num {
    color: #337ED5;
    text-align: center;
    margin: 0 0 10px;
    .txt {
      font-size: 1rem;
      font-weight: 500;
    }
  }
  .num:after {
    content: "0"counter(point);
    counter-increment: point;
    font-size: 2rem;
    font-weight: bold;
    letter-spacing: .05em;
    line-height: 1;
    color: #337ED5;
  }
  .ttl {
    font-size: 2rem;
    font-weight: bold;
    letter-spacing: .2em;
    color: #337ED5;
    text-align: center;
    margin: 0 0 10px;
  }
  .txtbox {
    font-family: "Noto Sans JP", serif;
  }
}

.service_single_com_btn01_box {
  max-width: 662px;
  width: 100%;
  margin: 152px auto 0;
}
.service_single_com_btn01 {
  width: 100%;
  padding: 25px;
  height: 115px;
  background: #07131E;
  border: 2px solid #07131E;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  font-family: "Noto Sans JP", serif;
  font-size: 2.5rem;
  font-weight: 500;
  color: #fff !important;
  border-radius: 115px;
  transition: .5s all ease;
  position: relative;
  z-index: 0;
}
.service_single_com_btn01:hover {
  background: #fff;
  color: #07131E !important;
}
.service_single_com_btn01:before {
  content: "";
  position: absolute;
  top: -30px;
  left: 50%;
  transform: translateX(-50%);
  pointer-events: none;
  aspect-ratio: 48 / 70;
  width: 48px;
  background: url(../img/service-single/ico-map-pin.svg) no-repeat center / contain;
  transition: .5s all ease;
}
.service_single_com_btn01:hover:before {
  top: -20px;
}

.service_single_sec .movie_wrap .youtube {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
}
.service_single_sec .movie_wrap .youtube iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
/*@media (max-width: 1024px) {
  .service_single_sec .movie_wrap iframe {
    width: 100%;
  }
}*/

.estimate_ttl {
  font-size: 3.2rem;
  font-weight: bold;
  color: #576A7D;
  text-align: center;
  letter-spacing: 0.1em;
}

.service_single_com_btn02_box {
  max-width: 662px;
  width: 100%;
  margin: 100px auto 0;
}
.service_single_com_btn02 {
  width: 100%;
  padding: 25px;
  height: 115px;
  background: #0073BD;
  border: 2px solid #0073BD;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Noto Sans JP", serif;
  font-size: 2.5rem;
  font-weight: 500;
  color: #fff !important;
  letter-spacing: .2em;
  border-radius: 115px;
  transition: .5s all ease;
  position: relative;
  z-index: auto;
}
.service_single_com_btn02:hover {
  background: #fff;
  color: #0073BD !important;
}
.service_single_com_btn02:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -85px;
  right: -170px;
  pointer-events: none;
  aspect-ratio: 231 / 164;
  width: 231px;
  background: url(../img/service-single/illust02.svg) no-repeat center / contain;
  transition: .5s all ease;
}
.service_single_com_btn02:hover:before {
  right: -180px;
}

/* Level Section */
.service_single_sec .about-wrap {
  position: relative;
  margin-inline: calc(50% - 50vw);
  padding: 0 15.61vw 12vw 15.625vw;
  background: #EBF8FF;
}
.service_single_sec .feature-wrap {
  position: relative;
  z-index: 0;
  margin-inline: calc(50% - 50vw);
  padding: 6vw 15.61vw 12vw 15.625vw;
  background: #fff;
}
.service_single_sec .flow_wrap {
  position: relative;
  z-index: 0;
  margin-inline: calc(50% - 50vw);
  padding: 6vw 15.61vw 12vw 15.625vw;
  background: #F9FBFC;
}
.service_single_sec .movie_wrap {
  position: relative;
  z-index: 0;
  margin-inline: calc(50% - 50vw);
  padding: 6vw 15.61vw 12vw 15.625vw;
  background: #fff;
}
.service_single_sec .price_wrap {
  position: relative;
  z-index: 0;
  margin-inline: calc(50% - 50vw);
  padding: 6vw 15.61vw 6vw 15.625vw;
  background: #fff;
}
.service_single_sec .work_wrap {
  position: relative;
  z-index: 0;
  margin-inline: calc(50% - 50vw);
  padding: 6vw 15.61vw 12vw 15.625vw;
  background: #EBF8FF;
}

/* -----------------------------------------------------------
  事業内容詳細 - グリーストラップ清掃
----------------------------------------------------------- */
.grease_trap_cleaning .main {
  background-image: url(../img/grease-trap-cleaning/main.jpg);
}

/* -----------------------------------------------------------
  事業内容詳細 - 排水管清掃
----------------------------------------------------------- */
.drain_pipe_cleaning .main {
  background-image: url(../img/drain-pipe-cleaning/main.jpg);
}

/* -----------------------------------------------------------
  事業内容詳細 - 複数店舗の情報一元管理
----------------------------------------------------------- */
.management_of_multiple_stores .main {
  background-image: url(../img/management-of-multiple-stores/main.jpg);
}
.management_of_multiple_stores {
  .about-wrap {
    padding-bottom: 12vw;
    background-color: #fff;
  }
  .service_single_flow {
    display: flex;
    flex-direction: column;
    align-items: center;

    .m2s_flow01::after {
      content: '';
      width: 60px;
      height: 90px;
      display: block;
      background: url(../img/management-of-multiple-stores/flow_arrow.png) no-repeat;
      background-size: cover;
      margin: 1.5625vw auto 2.864583333333333vw;
    }
  }
}

/* -----------------------------------------------------------
  事業内容詳細 - 雑排水槽清掃
----------------------------------------------------------- */
.gray_water_tank_cleaning .main {
  background-image: url(../img/gray-water-tank-cleaning/main.jpg);
}
.gray_water_tank_cleaning {
  #intro {
    padding-bottom: 12vw;
    .service_single_cards_01 {
      .item {
        border: 1px solid #707070;
        border-radius: 0;
        .read {
          text-align: center;
        }
      }
    }
  }
  .service_single_sec {
    picture {
      img {
        margin-left: auto;
        margin-right: auto;
      }
    }
  }
}


/* -----------------------------------------------------------
  保有車両・設備・許可 - permit
----------------------------------------------------------- */
.permit .main {
  background-image: url(../img/grease-trap-cleaning/main.jpg);
}
#lower.permit {

  .page_btns {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px 30px;
    margin: 0 0 4.166vw;
  }

  .page_btn {
    flex: 0 1 450px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 30px;
    transition: .5s all ease;
    border: 1px solid #337ED5;
    background: #fff;
    .num {
      font-size: 3rem;
      color: #337ED5;
    }
    .txt {
      font-size: 2rem;
      font-weight: 500;
      letter-spacing: .2em;
    }
  }

  .page_btn:hover {
    background: #337ED5;
    .num {
      color: #fff;
    }
    .txt {
      color: #fff;
    }
  }

  .sec_head {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px 8.59vw;
    margin: 0 0 3.9vw;
  }

  .sec_ttl {
    flex: 0 0;
    display: flex;
    align-items: center;
    gap: 35px;
    .num {
      font-size: clamp(60px,5.729vw,110px);
      font-weight: 500;
      color: #337ED5;
    }
    .txt {
      font-size: 2.5rem;
      font-weight: 500;
      letter-spacing: .2em;
    }
    .en {
      font-size: 1.4rem;
      font-weight: bold;
      color: #337ED5;
      letter-spacing: 0;
      margin: 10px 0 0;
    }
  }

  .sec_txt {
    flex: 1 0 400px;
    font-family: "Noto Sans JP", serif;
    line-height: calc(30 / 16);
  }

  .owned_vehicle_sec {
    padding: 0 0 12vw;
  }

  .service_base_sec {
    position: relative;
    z-index: 0;
    padding: 6vw 15.61vw 6vw 15.625vw;
    background: #EBF8FF;
    margin-inline: calc(50% - 50vw);
  }

  .permission_sec {
    /*position: relative;
    z-index: 0;
    padding: 6vw 15.61vw 6vw 15.625vw;
    background: #EBF8FF;
    margin-inline: calc(50% - 50vw);*/
    padding: 6vw 0;
  }

}

#lower.permit .owned_vehicle_sec,
#lower.permit .service_base_sec {
  > .contents {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px 4.166vw;
  }
  > .contents + .contents {
    margin-top: clamp(40px, 4.1666vw, 80px);
  }
  .c_slider_3_wrap {
    width: clamp(300px, 58%, 840px);
  }
  .txt_box {
    width: clamp(150px, 35%, 500px);
  }
  .ttl_box {
    display: flex;
    align-items: center;
    gap: clamp(20px, 2.34vw, 45px);
    margin: 0 0 clamp(20px, 3.125vw, 60px);
  }
  .ttl_box .num {
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #337ED5;
    font-size: clamp(20px, 2.08vw, 40px);
    font-weight: 500;
    letter-spacing: 0;
    color: #fff;
    width: clamp(50px, 4.21vw, 81px);
  }
  .txt {
    font-family: "Noto Sans JP", serif;
    line-height: calc(30 / 16);
    letter-spacing: .05em;
  }
}
#lower.permit .service_base_sec {
  > .contents {
    align-items: flex-start;
  }
  .txt:nth-of-type(n+2):not(:last-of-type) {
    margin-bottom: 7.552083333333333vw;
  }
}

#lower.company .owned_vehicle_sec,
#lower.company .service_base_sec {
  > .contents {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px 4.166vw;
  }
  > .contents + .contents {
    margin-top: clamp(40px, 4.1666vw, 80px);
  }
  .c_slider_3_wrap {
    width: clamp(300px, 58%, 840px);
  }
  .txt_box {
    width: clamp(150px, 35%, 500px);
  }
  .ttl_box {
    display: flex;
    align-items: center;
    gap: clamp(20px, 2.34vw, 45px);
    margin: 0 0 clamp(20px, 3.125vw, 60px);
  }
  .ttl_box .num {
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #337ED5;
    font-size: clamp(20px, 2.08vw, 40px);
    font-weight: 500;
    letter-spacing: 0;
    color: #fff;
    width: clamp(50px, 4.21vw, 81px);
  }
  .txt {
    font-family: "Noto Sans JP", serif;
    line-height: calc(30 / 16);
    letter-spacing: .05em;
  }
}
#lower.company {
  .permission_sec {
    position: relative;
    z-index: 0;
    padding: 6vw 15.61vw 6vw 15.625vw;
    background: #EBF8FF;
    margin-inline: calc(50% - 50vw);
  }
}

@media screen and (max-width: 767px) {
  #lower.permit .owned_vehicle_sec .c_slider_3_wrap,
  #lower.permit .owned_vehicle_sec .txt_box,
  #lower.permit .service_base_sec .c_slider_3_wrap,
  #lower.permit .service_base_sec .txt_box {
    width: 100%;
  }
}

#lower.permit .permission_sec {
  .tbl_box {
    background: #fff;
  }
  > .note-txt {
    font-family: "Noto Sans JP", serif;
    margin: 10px 0 0;
  }

  .table-wrapper {
    overflow-x: auto;
  }

  table {
    border-collapse: collapse;
    width: 100%;
    min-width: 1200px;
  }

  th, td {
    border: 1px solid #ccc;
    padding: 8px;
    text-align: center;
    white-space: nowrap;
  }

  th {
    background-color: #f5f5f5;
  }

  .area-th {
    writing-mode: vertical-rl;
  }

  .area-cell {
    background-color: #dbe9f4;
    writing-mode: vertical-rl;
    text-align: center;
    font-weight: bold;
    white-space: nowrap;
  }

  .pref-cell {
    background-color: #fff;
    text-align: center;
  }

  .pdf-cell {
    text-align: center;
  }

  .download-icon {
    width: 20px;
    height: 20px;
    margin: 0 auto;
  }

  .circle {
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 1px solid #999;
    border-radius: 50%;
  }

  .vertical {
    writing-mode: vertical-rl;
    padding: 5px;
  }

  thead th.vertical {
    min-width: 30px;
  }
}

#lower.company .group_sec {
  .tbl_box {
    background: #fff;
  }
  > .note-txt {
    font-family: "Noto Sans JP", serif;
    margin: 10px 0 0;
  }
}

.bg_white {
  background: #FFFFFF !important;
}

/* 全体のテーブルコンテナ */
.contents-tbl {
  font-family: 'Helvetica Neue', sans-serif;
  /* max-width: 800px; */
  margin: 2rem auto;
  padding: 1rem;
}

/* 各テーブルの基本スタイル */
.contents-tbl table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 4rem;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

/* ヘッダーセルのスタイル */
.contents-tbl th {
  background-color: #f5f5f5;
  color: #333;
  font-weight: 600;
  text-align: left;
  padding: 12px 16px;
  width: 25%;
  border: 1px solid #ddd;
}

/* データセルのスタイル */
.contents-tbl td {
  padding: 12px 16px;
  border: 1px solid #ddd;
  color: #444;
  background-color: #fff;
  word-break: break-word;
}

/* リンクのスタイル */
.contents-tbl a {
  color: #007BFF;
  text-decoration: none;
  word-break: break-word;
}

.contents-tbl a:hover {
  text-decoration: underline;
}

/* レスポンシブ対応 */
@media screen and (max-width: 600px) {
  .contents-tbl table, 
  .contents-tbl th, 
  .contents-tbl td {
    display: block;
    width: 100%;
  }

  .contents-tbl th {
    background-color: #e9e9e9;
    font-weight: bold;
  }

  .contents-tbl td {
    margin-bottom: 1rem;
  }
}

/* map全体のコンテナ */
.contents-map {
  max-width: 900px;
  margin: 2rem auto;
  padding: 1rem;
  font-family: 'Helvetica Neue', sans-serif;
}

/* 各拠点ブロック */
.mapArea {
  background-color: #fff;
  border-left: 5px solid #007BFF;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  margin-bottom: 4rem;
  padding: 3rem;
  border-radius: 8px;
}

/* 拠点名 */
.mapArea strong {
  display: block;
  font-size: 2.5rem;
  font-weight: 600;
  color: #007BFF;
  margin-bottom: 1rem;
}

/* 住所部分 */
.mapArea > div:first-of-type {
  color: #555;
  margin-bottom: 1rem;
  font-size: 0.95rem;
}

/* 地図埋め込みのスタイル */
.gmap iframe {
  width: 100%;
  height: 400px;
  border: none;
  border-radius: 6px;
}

/* モバイル対応 */
@media screen and (max-width: 600px) {
  .mapArea {
    padding: 1rem;
  }

  .mapArea strong {
    font-size: 1rem;
  }

  .gmap iframe {
    height: 300px;
  }
}

/**************************************
 * CSR REPORTセクションのスタイル例
 **************************************/
 .csr_report_sec {
  background-color: #fff; /* セクション背景色 */
  padding: 60px 0;
}

/* セクション見出し周辺の余白調整 */
.csr_report_sec .sec_head {
  margin-bottom: 30px;
}

/* 前文(説明文) */
.csr_intro {
  font-size: 16px;
  line-height: 1.8;
  margin-bottom: 40px;
  color: #333;
}

/* メインのボックス全体 */
.csr_report_box {
  display: flex;
  align-items: flex-start;
  gap: 40px;            /* 表紙画像とテキストの間隔 */
  border: 1px solid #ccc;  /* 枠線（不要の場合は削除） */
  border-radius: 6px;  /* 角丸（不要の場合は削除） */
  padding: 40px;
  background-color: #fafafa; /* 背景色（不要の場合は削除） */
}

/* レポート表紙画像 */
.csr_report_cover {
  flex: 0 0 auto;   /* 幅固定 */
  width: 240px;     /* カバー画像の表示幅を調整 */
  text-align: center;
}
.csr_report_cover img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* レポート情報（目次等） */
.csr_report_info {
  flex: 1 1 auto;   /* 残り幅いっぱいに伸ばす */
}

/* レポートタイトル */
.report_title {
  font-size: 20px;
  font-weight: bold;
  color: #005ea2; /* お好みのカラーに変更 */
  margin-bottom: 16px;
}

/* PDFダウンロードボタン */
.btn_box {
  margin-bottom: 20px;
}
.pdf_download {
  display: inline-flex;
  align-items: center;
  background-color: #005ea2; /* ボタン背景色 */
  color: #fff;               /* 文字色 */
  padding: 10px 20px;
  border-radius: 4px;
  text-decoration: none;
  font-size: 14px;
  transition: opacity 0.3s;
}
.pdf_download:hover {
  opacity: 0.8;
}
.icon_download {
  display: inline-block;
  width: 20px;
  height: 20px;
  margin-left: 8px;
  background-image: url("assets/img/common/icon_pdf.svg"); /* PDFアイコン */
  background-size: contain;
  background-repeat: no-repeat;
}

/* 目次テーブル */
.csr_contents_table {
  width: 100%;
  border-collapse: collapse; /* 罫線を重ねない */
  margin-top: 20px;
}
.csr_contents_table thead th {
  background-color: #f0f0f0;
  text-align: left;
  padding: 8px;
  border-bottom: 1px solid #ccc;
  font-weight: normal;
}
.csr_contents_table tbody td {
  padding: 8px;
  border-bottom: 1px solid #eee;
  vertical-align: top;
  font-size: 14px;
  line-height: 1.6;
}
.csr_contents_table tbody tr:last-child td {
  border-bottom: none;
}

/* レスポンシブ対応：タブレット以下で縦並び */
@media screen and (max-width: 768px) {
  .csr_report_box {
    flex-direction: column;
    padding: 20px;
  }
  .csr_report_cover {
    width: 100%; /* 画面幅を使う */
    margin-bottom: 20px;
  }
}


/* -----------------------------------------------------------
  個人情報保護方針
----------------------------------------------------------- */
.privacy .main {
  background-image: url(../img/privacy/main.jpg);
}
.privacy {
  .privacy_read {
    font-size: 1.8rem;
    letter-spacing: .1em;
    line-height: calc(22 / 18);
    margin: 0 0 4.16vw;
    color: #07131E;
  }
  .privacy_items {
    font-family: "Noto Sans JP", serif;
    font-size: 1.6rem;
    line-height: calc(30 / 18);
    letter-spacing: .1em;
    font-weight: 500;
  }
  .privacy_item + .privacy_item {
    margin-top: 3.65vw;
  }
  .privacy_nest_items {
    margin-top: 2em;
  }
  .privacy_nest_item + .privacy_nest_item {
    margin-top: 2em;
  }
  .privacy_dtl .mt {
    margin-top: 2em;
  }
  .privacy_nest_items *:first-child {
    margin-top: 0;
  }
}

/* -----------------------------------------------------------
  採用
----------------------------------------------------------- */
#lower.recruit .main {
  padding: 0;
  overflow: hidden;
  height: 100dvh;
}
#lower.recruit .main .main_scroll-wave_wrap {
  z-index: 10000;
}
#lower.recruit .main .ttl {
  width: calc(1% * 880 / 1920 * 100);
  position: absolute;
  bottom: 0;
  z-index: 10001;
  left: 50%;
  transform: translateX(-50%);

  .img {
    object-fit: contain;
    width: 100%;
    height: 100%;
  }
}
#lower.recruit .members_sec {
  padding: 0 0 12vw;
}
#lower.recruit .members_sec .subttl {
  margin: 0 auto calc(1vw * 30 / 1920 * 100);
  aspect-ratio: 720 / 140;
  width: calc(1vw * 720 / 1920 * 100);
  .img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }
}
#lower.recruit .members_sec .txtbox {
  font-size: 1.8rem;
  line-height: calc(30 / 18);
  letter-spacing: .1em;
  font-weight: 500;
  text-align: center;
}
#lower.recruit .members_sec .sliderbox {
  margin: calc(1vw * 115 / 1920 * 100) calc(50% - 50vw) 0;
}
#lower.recruit .our_vision_sec {
  position: relative;
  z-index: 0;
  padding: 6vw 15.61vw calc(1vw * 135 / 1920 * 100) 15.625vw;
  margin: 0 calc(50% - 50vw);
  background: #EBF8FF;
}
#lower.recruit .our_vision_sec .subttl {
  margin: 0 auto calc(1vw * 30 / 1920 * 100);
  aspect-ratio: 1080 / 140;
  width: calc(1vw * 1080 / 1920 * 100);
  .img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }
}
#lower.recruit .our_vision_sec .txtbox {
  font-size: 1.8rem;
  line-height: calc(30 / 18);
  letter-spacing: .1em;
  font-weight: 500;
  text-align: center;
}
#lower.recruit .our_vision_sec .thumbnail {
  aspect-ratio: 1520 / 536;
  width: 100%;
  overflow: hidden;
  border-radius: 1.875vw;
  margin: calc(1vw * 45 / 1920 * 100) 0 0;
  .img {
    object-fit: cover;
    width: 100%;
    height: 100%;
  }
}
#lower.recruit .business_sec {
  padding: calc(1vw * 100 / 1920 * 100) 15.61vw calc(1vw * 100 / 1920 * 100) 15.625vw;
  margin: 0 calc(50% - 50vw);
  background: url(../img/recruit/business_sec_bg.jpg) no-repeat center / cover;
  aspect-ratio: 1920 / 815;
  position: relative;
  z-index: 0;
}
#lower.recruit .business_sec .business_item {
  width: calc(1vw * 350 / 1920 * 100);
  position: absolute;
}
#lower.recruit .business_sec .business_item:first-of-type {
  top: calc(1vw * 210 / 1920 * 100);
  left: calc(1vw * 535 / 1920 * 100);
}
#lower.recruit .business_sec .business_item:nth-of-type(2) {
  top: calc(1vw * 450 / 1920 * 100);
  left: calc(1vw * 285 / 1920 * 100);
}
#lower.recruit .business_sec .business_item:nth-of-type(3) {
  top: calc(1vw * 270 / 1920 * 100);
  right: calc(1vw * 420 / 1920 * 100);
}
#lower.recruit .business_sec .business_item:nth-of-type(4) {
  bottom: calc(1vw * 100 / 1920 * 100);
  right: calc(1vw * 180 / 1920 * 100);
}
#lower.recruit .business_sec .business_item .ttl {
  font-size: clamp(20px, calc(1vw * 30 / 1920 * 100), 30px);
  font-weight: 500;
  line-height: calc(45 / 30);
  letter-spacing: .05em;
  margin: 0 0 10px;
}
#lower.recruit .business_sec .business_item > .txt {
  font-family: "Noto Sans JP", serif;
  font-size: clamp(16px, calc(1vw * 14 / 1920 * 100), 16px);
  line-height: calc(24 / 16);
  margin: 0 0 15px;
}
#lower.recruit .business_sec .business_item .cat {
  background: #000;
  color: #fff;
  aspect-ratio: 160 / 32;
  width: calc(1vw * 160 / 1920 * 100);
  border-radius: calc(1vw * 16 / 1920 * 100);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 0 0 20px;
}
#lower.recruit .business_sec .business_item .cat._ver1 {
  background: #123280;
}
#lower.recruit .business_sec .business_item .cat._ver2 {
  background: #2366B4;
}
#lower.recruit .business_sec .business_item .cat._ver3 {
  background: #337ED5;
}
#lower.recruit .business_sec .business_item .cat._ver4 {
  background: #5FA8FE;
}
#lower.recruit .business_sec .business_item .cat .txt {
  font-size: clamp(14px, calc(1vw * 14 / 1920 * 100), 16px);
  font-weight: 500;
  letter-spacing: .2em;
}
#lower.recruit .business_sec .business_item .cat .num {
  font-size: clamp(18px, calc(1vw * 23 / 1920 * 100), 23px);
  font-weight: 500;
}
#lower.recruit .business_sec .business_item .link {
  font-size: clamp(14px, calc(1vw * 14 / 1920 * 100), 16px);
  font-weight: 500;
  color: #337ED5;
  display: inline-flex;
  align-items: center;
  position: relative;
  z-index: 0
}
#lower.recruit .business_sec .business_item .link:before {
  content: "";
  aspect-ratio: 1 / 1;
  width: 19px;
  border-radius: 50%;
  background: #fff;
  position: absolute;
  right: -38px;
  top: 50%;
  transform: translateY(-50%);
}
#lower.recruit .business_sec .business_item .link:after {
  content: "";
  aspect-ratio: 1 / 1;
  width: 25px;
  background: #337ED5;
  mask: url(../img/recruit/link_arw.svg) no-repeat center / contain;
  border-radius: 50%;
  position: absolute;
  right: -30px;
  top: 50%;
  transform: translateY(-50%);
}
#lower.recruit .careers_sec {
  padding: 6vw 15.61vw 12vw 15.625vw;
  margin: 0 calc(50% - 50vw);
  background: #DF0011;
}
#lower.recruit .careers_sec .ttlbox {
  text-align: center;
  color: #fff;
  margin: 0 auto calc(1vw * 60 / 1920 * 100);
}
#lower.recruit .careers_sec .ttlbox .en {
  width: calc(1vw * 470 / 1920 * 100);
  margin: 0 auto 25px;
  .img {
    object-fit: contain;
    width: 100%;
    height: 100%;
  }
}
#lower.recruit .careers_sec .ttlbox .ja {
  display: table;
  font-size: clamp(14px, calc(1vw * 18 / 1920 * 100), 18px);
  margin: 0 auto;
  position: relative;
  z-index: 0;
  padding: 0 35px;
}
#lower.recruit .careers_sec .ttlbox .ja:before,
#lower.recruit .careers_sec .ttlbox .ja:after {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 22px;
  height: 2px;
  background: #fff;
}
#lower.recruit .careers_sec .ttlbox .ja:before {
  left: 0;
}
#lower.recruit .careers_sec .ttlbox .ja:after {
  right: 0;
}
#lower.recruit .careers_sec .subttl {
  margin: 0 auto calc(1vw * 65 / 1920 * 100);
  aspect-ratio: 972 / 89;
  width: calc(1vw * 972 / 1920 * 100);
  .img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }
}
#lower.recruit .careers_container {
  border-radius: 1.875vw;
  background: #fff;
  padding: calc(1vw * 80 / 1920 * 100) calc(1vw * 60 / 1920 * 100) calc(1vw * 80 / 1920 * 100) calc(1vw * 125 / 1920 * 100);
}
#lower.recruit .careers_container .inr {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: calc(1vw * 40 / 1920 * 100) calc(1vw * 160 / 1920 * 100);
}
#lower.recruit .careers_container .inr .content {
  flex: 1 1;
}
#lower.recruit .careers_container .inr .content > .txt {
  font-family: "Noto Sans JP", serif;
  margin: 0 0 60px;
}
#lower.recruit .careers_container .inr .content > .lists {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
}
#lower.recruit .careers_container .inr .content > .lists .link {
  display: flex;
  align-items: center;
  gap: 35px;
  padding: 0 0 25px;
  border-bottom: 1px solid #C9C9C9;
  position: relative;
  z-index: 0;
}
#lower.recruit .careers_container .inr .content > .lists .link:hover {
  border-bottom: 1px solid #E70012;
}
#lower.recruit .careers_container .inr .content > .lists .link:after {
  content: "";
  aspect-ratio: 1 / 1;
  width: 37px;
  background: #E70012;
  mask: url(../img/recruit/link_arw_02.svg) no-repeat center / contain;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
}
#lower.recruit .careers_container .inr .content > .lists .link .num {
  font-size: 1.8rem;
  font-weight: 500;
  color: #E70012;
}
#lower.recruit .careers_container .inr .content > .lists .link .txt {
  font-size: 2.5rem;
  font-weight: 500;
  letter-spacing: .05em;
}
#lower.recruit .careers_container .inr .content > .lists .link:hover .txt {
  color: #E70012;
}
#lower.recruit .careers_container .inr .imgbox {
  flex: 1 1;
  border-radius: 1.875vw;
  overflow: hidden;
}
#lower.recruit .benefits_sec {
  padding: 6vw 15.61vw 12vw 15.625vw;
  margin: 0 calc(50% - 50vw);
  background: #F9F9F9;
  position: relative;
}
#lower.recruit .benefits_sec .subttl {
  margin: 0 auto calc(1vw * 45 / 1920 * 100);
  aspect-ratio: 972 / 89;
  width: calc(1vw * 797 / 1920 * 100);
  .img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }
}
#lower.recruit .benefits_sec .txtbox {
  font-size: clamp(14px,calc(1vw * 18 / 1920 * 100), 20px);
  font-weight: 500;
  text-align: center;
  line-height: calc(30 / 18);
  width: calc(1vw * 1107 / 1920 * 100);
  margin: 0 auto calc(1vw * 60 / 1920 * 100);
}
#lower.recruit .benefits_items {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 20px;
}
#lower.recruit .benefits_items .item {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 3;
  padding: 30px 48px 65px;
  background: #fff;
  gap: 0;
}
#lower.recruit .benefits_items .item .iconbox {
  order: -1;
  aspect-ratio: 158 / 150;
  width: 158px;
  border-radius: 16px;
  margin: 0 auto 10px;
  background: #337ED5;
  padding: 17px 30px;
}
#lower.recruit .benefits_items .item .iconbox .img {
  object-fit: contain;
  width: 100%;
  height: 100%;
}
#lower.recruit .benefits_items .item .ttl {
  font-family: "Noto Sans JP", serif;
  font-size: 2.5rem;
  font-weight: bold;
  text-align: center;
  margin: 0 0 30px;
}
#lower.recruit .benefits_items .item .txt {
  font-family: "Noto Sans JP", serif;
  font-size: 1.6rem;
  line-height: calc(26 / 16);
}
#lower.recruit .company_sec {
  padding: 6vw 0 12vw;
}
#lower.recruit .company_tbl {
  width: calc(1vw * 1200 / 1920 * 100);
  margin: 0 auto;
}
#lower.recruit .company_tbl .tbl {
  font-family: "Noto Sans JP", serif;
  font-size: 1.6rem;
  line-height: calc(26 / 16);
  border-collapse: collapse;
  border: 1px solid #E2E2E2;
}
#lower.recruit .company_tbl .tbl .th,
#lower.recruit .company_tbl .tbl .td {
  border: 1px solid #E2E2E2;
}
#lower.recruit .company_tbl .tbl .th {
  background: #F5F5F5;
  padding: 30px 10px 25px;
  width: 18%;
}
#lower.recruit .company_tbl .tbl .td {
  padding: 30px 60px 25px 60px;
}
#lower.recruit .company_tbl .tbl .adress_box,
#lower.recruit .company_tbl .tbl .tel_wrap {
  display: flex;
  flex-wrap: wrap;
  line-height: calc(30 / 16);
  gap: 2px 10px;
}
#lower.recruit .company_tbl .tbl .adress_box + .adress_box,
#lower.recruit .company_tbl .tbl .tel_wrap + .tel_wrap {
  margin-top: 10px;
}
#lower.recruit .company_tbl .tbl .adress_box .office_name,
#lower.recruit .company_tbl .tbl .tel_wrap .office_name {
  flex: 0 0 110px;
}
#lower.recruit .company_tbl .tbl .tel_wrap .telbox {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 10px;
}

/* -----------------------------------------------------------
  採用詳細
----------------------------------------------------------- */
#lower.recruit .lower_contents_wrapper {
  container-type: inline-size;
}
.recruit_tab_lists {
  display: grid;
  grid-template-columns: repeat(3,1fr);
}
.recruit_tab_item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  border-radius: 1.83vw 1.83vw 0 0;
  border: 1px solid #C9C9C9;
  transition: .4s all ease;
  height: 75px;
}
.recruit_tab_num {
  font-size: 1.8rem;
  font-weight: 500;
  color: #E70012;
  letter-spacing: .05em;
}
.recruit_tab_ttl {
  font-size: 1.8rem;
  font-weight: 500;
  color: #000000;
  letter-spacing: .05em;
}
.recruit_tab_item.active,
.recruit_tab_item:hover {
  background: #E70012;
  border: 1px solid #E70012;
  opacity: 1;
  .recruit_tab_num,
  .recruit_tab_ttl {
    color: #fff;
  }
}
@container (width <= 650px) {
  .recruit_tab_item {
    flex-direction: column;
    gap: 0;
    height: auto;
    padding: 5px;
  }
  .recruit_tab_num {
    font-size: 1.2rem;
  }
  .recruit_tab_ttl {
    font-size: 1.2rem;
  }
}
.recruit_container {
  padding: 0;
}
.recruit_contents {
  border: 1px solid #C9C9C9;
  border-radius: 0 0 1.83vw 1.83vw;
  padding: calc(1vw * 105 / 1920 * 100) calc(1vw * 115 / 1920 * 100);
  container-type: inline-size;
}
.recruit_contents + .recruit_contents {
  margin: 60px 0 0;
  border-radius: 1.83vw;
}
.recruit_btn {
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 474px;
  width: 100%;
  height: 115px;
  border-radius: 14px;
  background: #337ED5;
  border: 1px solid #337ED5;
  margin: 65px auto 0;
}
.recruit_btn:hover {
  background: #fff;
}
.recruit_btn .txt {
  aspect-ratio: 163 / 58;
  width: 163px;
  background: #fff;
  mask: url(../img/recruit_detail/btn.svg) no-repeat center / contain;
}
.recruit_btn:hover .txt {
  background: #337ED5;
}

.recruit_contents > .ttlbox {
  display: flex;
  align-items: center;
  gap: 35px;
  border-bottom: 2px solid #337ED5;
  margin: 0 0 65px;
  padding: 0 0 20px;
}
.recruit_contents > .ttlbox .subject {
  font-family: "Noto Sans JP", serif;
  display: flex;
  align-items: center;
  gap: 15px;
}
.recruit_contents > .ttlbox .subject .num {
  font-size: 1.6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: #337ED5;
  width: 24px;
  height: 29px;
}
.recruit_contents > .ttlbox .subject .txt {
  font-size: 1.6rem;
}
.recruit_contents > .ttlbox .ttl {
  font-size: 2.5rem;
  font-weight: 500;
  letter-spacing: .1em;
}
.recruit_contents > .detail_box {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 70px;
}
.recruit_contents > .detail_box .imgbox {
  aspect-ratio: 295 / 396;
  flex: 0 0 295px;
  width: 295px;
  border-radius: 1.83vw;
  overflow: hidden;
  .img {
    object-fit: cover;
    width: 100%;
    height: 100%;
  }
}
.recruit_contents > .detail_box .detail_tbl {
  font-family: "Noto Sans JP", serif;
  font-size: 1.6rem;
  flex: 1 0 300px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}
.recruit_contents > .detail_box .detail_tbl .item {
  display: grid;
  grid-template-columns: 15.2% 1fr;
  padding-bottom: 20px;
  border-bottom: 1px solid #DEDEDE;
}

@container (width <= 630px) {
  .recruit_contents > .detail_box {
    gap: 40px;
  }
  .recruit_contents > .detail_box .imgbox {
    aspect-ratio: 3 / 2;
    flex: 0 0 100%;
    width: 100%;
  }
}
@container (width <= 540px) {
  .recruit_contents > .ttlbox {
    flex-direction: column;
    gap: 10px;
    margin: 0 0 20px;
  }
  .recruit_contents > .detail_box .detail_tbl {
    font-family: "Noto Sans JP", serif;
    font-size: 1.4rem;
  }
  .recruit_contents > .detail_box .detail_tbl .item {
    grid-template-columns: 1fr;
    gap: 5px;
  }
  .recruit_btn {
    margin: 30px auto 0;
  }
}

#lower.recruit .form_wrap {
  padding: 7vw 5%;
  border-radius: 1.83vw;
  background: #337ED5;
  margin: 15.625vw 0 0;
  container-type: inline-size;
}
#lower.recruit .form_wrap > .ttl {
  aspect-ratio: 478 / 130;
  max-width: 478px;
  margin: 0 auto 30px;
  .img {
    object-fit: contain;
    width: 100%;
    height: 100%;
  }
}
#lower.recruit .form_wrap > .txtbox {
  max-width: 915px;
  width: 100%;
  margin: 0 auto 35px;
  color: #fff;
  text-align: center;
}
#lower.recruit .form_wrap > form .form_content {
  max-width: 915px;
  width: 100%;
  margin: 0 auto;
  border-radius: 14px;
  overflow: hidden;
}
#lower.recruit .form_wrap > form .form_content + .form_content {
  margin-top: 40px;
}
#lower.recruit .form_wrap > form .form_content .heading {
  font-family: "Noto Sans JP", serif;
  font-size: 1.8rem;
  font-weight: bold;
  color: #fff;
  position: relative;
  z-index: 0;
  background: #123280;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 25px;
}
#lower.recruit .form_wrap > form .form_content .heading .ruby {
  font-size: 1.4rem;
  font-weight: 400;
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
}
#lower.recruit .form_wrap > form .form_content .cont {
  padding: 35px 50px;
  background: #fff;
}
#lower.recruit .form_wrap > form .form_content .cont .telbox {
  font-family: "Noto Sans JP", serif;
  font-size: 2.2rem;
  display: flex;
  justify-content: center;
  gap: 50px;
}
#lower.recruit .form_wrap > form .form_content .cont .tel_row {
  display: flex;
  gap: 10px;
}
#lower.recruit .form_wrap > form .form_content .cont .tel_row + .tel_row {
  margin-top: 15px;
}

.form_row {
  font-family: "Noto Sans JP", serif;
  font-size: 1.6rem;
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}
.form_row .item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  padding: 0 0 10px;
  border-bottom: 1px solid #DCDCDC;
}
.form_row .item._align_first {
  align-items: flex-start;
}
.form_row .item .form_ttl {
  display: flex;
  align-items: center;
  gap: 15px;
  flex: 0 0 auto;
}
.form_row .item .form_ttl._require:after {
  content: "必須";
  width: 37px;
  height: 17px;
  font-size: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #E70012;
  color: #E70012;
}
.form_row .item .form_dtl {
  flex: 1 1;
}
.form_row .item .form_dtl._mailaddress {
  flex: 0 1 550px;
}
.form_row .item .form_dtl._gender {
  flex: 0 1 620px;
}
.form_row .item input[type="text"],
.form_row .item input[type="email"],
.form_row .item input[type="tel"],
.form_row .item input[type="text"] {
  width: 100%;
  height: 44px;
  background: #F6F6F6;
  padding: 0 10px;
}
.form_row .item textarea {
  width: 100%;
  background: #F6F6F6;
  padding: 10px;
}
.form_row .item .form_choice_box {
  display: flex;
  flex-wrap: wrap;
  gap: 35px;
}
.form_wrap .form_choice_col {
  cursor: pointer;
}
.form_wrap .form_choice_col input {
  display: none;
}
.form_wrap .form_choice_col .txt {
  display: table;
  position: relative;
  z-index: 0;
  padding: 0 0 0 28px;
}
.form_wrap .form_choice_col .txt:before {
  content: "";
  width: 15px;
  height: 15px;
  background: #fff;
  border: 1px solid #0D0D0D;
  position: absolute;
  left: 0;
  top: 1px;
}
.form_wrap .form_choice_col .txt:after {
  content: '';
  display: block;
  position: absolute;
  top: .3em;
  left: .18em;
  width: 10px;
  height: 5px;
  border-left: 2px solid #337ED5;
  border-bottom: 2px solid #337ED5;
  transform: rotate(-45deg);
  opacity: 0;
}
.form_wrap .form_choice_col input:checked ~ .txt:after {
  opacity: 1;
}
.form_wrap .privacy_check {
  margin: 35px auto 0;
}
.form_wrap .privacy_check .form_choice_col .txt {
  margin: 0 auto;
}
.form_wrap .privacy_check a {
  color: #0158B7;
}
.form_wrap input[type="button"],
.form_wrap input[type="submit"] {
  font-size: 2.1rem;
  color: #fff;
  margin: 40px auto 0;
  max-width: 350px;
  width: 100%;
  height: 62px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #E70012;
  border: 1px solid #E70012;
  transition: .4s all ease;
}
.form_wrap input[type="button"]:hover,
.form_wrap input[type="submit"]:hover {
  background: #fff;
  color: #E70012;
}
.form_wrap .form_complete {
  text-align: center;
}

@container (width <= 860px) {
  #lower.recruit .form_wrap > form .form_content .heading {
    flex-direction: column;
    padding: 20px;
    gap: 20px;
  }
  #lower.recruit .form_wrap > form .form_content .heading .ruby {
    position: static;
  }
}
@container (width <= 800px) {
  #lower.recruit .form_wrap > form .form_content .cont {
    padding: 5%;
  }
  #lower.recruit .form_wrap > form .form_content .cont .telbox {
    font-family: "Noto Sans JP", serif;
    font-size: 1.6rem;
    display: flex;
    justify-content: center;
    gap: 50px;
  }
}
@container (width <= 520px) {
  #lower.recruit .form_wrap > .ttl {
    width: 60%;
    margin: 0 auto 20px;
  }
  #lower.recruit .form_wrap > .txtbox {
    font-size: 1.4rem;
  }
  #lower.recruit .form_wrap > form .form_content + .form_content {
    margin-top: 5%;
  }
  #lower.recruit .form_wrap > form .form_content .cont {
    padding: 5%;
  }
  #lower.recruit .form_wrap > form .form_content .cont .telbox {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 15px;
  }
  .form_row .item {
    align-items: flex-start;
    flex-direction: column;
    justify-content: flex-start;
    gap: 10px;
  }
  .form_row .item .form_dtl {
    flex: 0 1 auto;
    width: 100%;
  }
  .form_row .item .form_dtl._mailaddress {
    flex: 0 1 auto;
  }
  .form_row .item .form_dtl._gender {
    flex: 0 1 auto;
  }
  .form_wrap input[type="button"] {
    margin: 20px auto 0;
  }
}

/* -----------------------------------------------------------
  お見積り
----------------------------------------------------------- */
.contact .main {
  background-image: url(../img/grease-trap-cleaning/main.jpg);
}
.form_box {
  dl {
    display: flex;
    border-top: 1px dashed #ececec;
    padding: 2vw;
    dt {
      display: flex;
      align-items: center;
      flex: 0 1 25%;
      font-weight: bold;
      span.required {
          background-color: #E83443;
          color: #ffffff;
          font-size: 10px;
          font-size: 1.0rem;
          margin-right: 1em;
          padding: 0.3em 0.5em;
      }
    }
    dd {
      flex: 1 1;
      .add_det {
        margin-top: 1em;
      }
    }
  }
  dl:first-of-type {
    margin-top: 5vw;
  }
  dl:last-of-type {
    border-bottom: 1px dashed #ececec;
    margin-bottom: 5vw;
  }
  .align-start {
    dt {
      align-items: flex-start;
    }
  }
  input[type="text"],
  input[type="email"],
  input[type="tel"] {
    border: 1px solid #ccc;
    border-radius: 5px;
    height: 40px;
    padding: 0 0.75em;
  }
  textarea {
    border: 1px solid #ccc;
    border-radius: 5px;
    padding: 0.75em;
  }
  .privacyPolicyCheck {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    a {
      color: #007BFF;
      text-decoration: underline;
    }
    label {
      margin: 2vw 0 2.5vw;
    }
    label:hover {
      cursor: pointer;
    }
  }
  .btn {
    display: flex;
    margin-left: auto;
    margin-right: auto;
  }
}
.confirm {
  .form_box {
    form[action="https://daikyo-clean.co.jp/sys_cms/contact/"],
    form[action="https://daikyo-clean.co.jp/contact/"] {
      margin-top: 2vw;
    }
  }
}
.send {
  .ttl {
    font-size: 3.5rem;
    font-weight: 400;
    line-height: calc(42 / 35);
    margin: 0 0 15px;
  }
  .read {
    font-size: 1.6rem;
    line-height: calc(30 / 16);
    letter-spacing: .05em;
  }
}

/* -----------------------------------------------------------
  個人情報保護方針
----------------------------------------------------------- */
.privacy_sec {
  .privacy_intro {
    a {
      color: #007BFF;
      text-decoration: underline;
    }
  }
}

.cover__bnr {
    position: fixed;
    bottom: 30px;
    right: 25px;
    z-index: 1;
    -webkit-transition: all 750ms ease 1s;
    transition: all 750ms ease 1s;
    opacity: 1;
}
.cover__bnr a.md {
    display: block;
    width: 490px;
    line-height: 1;
    font-size: 0;
    background-color: #fff;
}
.cover__bnr a.md:hover {
  opacity: 0.8;
}
.cover__bnr a img {
    -webkit-transition: opacity .2s ease;
    transition: opacity .2s ease;
}