@charset "UTF-8";
@font-face {
  font-family: "D-DIN Pro";
  src: url("../fonts/D-DIN-PRO-400-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "D-DIN Pro";
  src: url("../fonts/D-DIN-PRO-500-Medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "D-DIN Pro";
  src: url("../fonts/D-DIN-PRO-600-SemiBold.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "D-DIN Pro";
  src: url("../fonts/D-DIN-PRO-700-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "D-DIN Pro";
  src: url("../fonts/D-DIN-PRO-800-ExtraBold.woff2") format("woff2");
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "D-DIN Pro";
  src: url("../fonts/D-DIN-PRO-900-Heavy.woff2") format("woff2");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}
/* ==========================================================================//
//
// 事業を知る
//
// ========================================================================== */
/* 共通
---------------------------------------------------------- */
section {
  overflow-x: hidden;
}
section:not(:first-of-type) {
  margin-top: 60px;
}
@media all and (min-width: 751px) {
  section:not(:first-of-type) {
    margin-top: 190px;
  }
}
section.black {
  padding-top: 50px;
}
@media all and (min-width: 751px) {
  section.black {
    padding-top: 190px;
  }
}

.black {
  background-color: #000000;
  color: #fff;
}

.service_ttl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0 20px;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media all and (min-width: 751px) {
  .service_ttl {
    gap: 0 56px;
  }
}
.service_ttl .number_txt {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  position: relative;
  font-family: "D-DIN Pro", sans-serif;
  font-size: 6px;
  font-weight: bold;
  letter-spacing: 0.25em;
}
@media all and (min-width: 751px) {
  .service_ttl .number_txt {
    font-size: 11px;
  }
}
.service_ttl .number_txt .number {
  padding: 5px 0;
  text-align: center;
  font-family: "D-DIN Pro", sans-serif;
  font-size: 36px;
  font-weight: 500;
  letter-spacing: 0.3em;
  text-indent: 0.2em;
}
@media all and (min-width: 751px) {
  .service_ttl .number_txt .number {
    padding: 5px 0 10px;
    font-size: 62px;
    text-indent: 0.3em;
  }
}
.service_ttl .number_txt::after {
  position: absolute;
  content: "";
  background-color: #000000;
  width: 100%;
  height: 1.4px;
  bottom: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
@media all and (min-width: 751px) {
  .service_ttl .number_txt::after {
    height: 1px;
  }
}
.service_ttl .service_name {
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0.2em;
  line-height: 1.65;
}
@media all and (min-width: 751px) {
  .service_ttl .service_name {
    font-size: 30px;
  }
}

/* 世界観
------------------------------------------------------------------------------------ */
.sec_world {
  padding-bottom: 82px;
}
@media all and (min-width: 751px) {
  .sec_world {
    padding-bottom: 249px;
  }
}
.sec_world .sec_info_ttl {
  margin-bottom: 50px;
}
@media all and (min-width: 751px) {
  .sec_world .sec_info_ttl {
    margin-bottom: 178px;
  }
}
.sec_world .contents {
  margin-inline: auto;
  width: min(1200px, 100%);
}
.sec_world .contents:not(:last-of-type) {
  margin-bottom: 68px;
}
@media all and (min-width: 751px) {
  .sec_world .contents:not(:last-of-type) {
    margin-bottom: 160px;
  }
}
.sec_world .contents.future .detail {
  margin-inline: auto;
  width: min(900px, 100%);
}
.sec_world .contents.future .image {
  margin-top: 22px;
}
@media all and (min-width: 751px) {
  .sec_world .contents.future .image {
    margin-top: 78px;
    width: min(871px, 100%);
  }
}
.sec_world .contents.value .image_wrap {
  position: relative;
}
@media all and (min-width: 1460px) {
  .sec_world .contents.value .image_wrap {
    margin-left: -80px;
  }
}
@media all and (min-width: 751px) {
  .sec_world .contents.value .image {
    width: min(1166px, 100%);
  }
}
@media all and (min-width: 1460px) {
  .sec_world .contents.value .image {
    margin-inline: 0;
  }
}
@media all and (max-width: 1360px) {
  .sec_world .contents.value .txts {
    margin: -30px 0 0 auto;
    position: relative;
    width: min(254px, 100%);
    z-index: 1;
  }
}
@media screen and (min-width: 751px) and (max-width: 1360px) {
  .sec_world .contents.value .txts {
    width: min(470px, 100%);
  }
}
@media all and (min-width: 1361px) {
  .sec_world .contents.value .txts {
    position: absolute;
    top: calc(50% - 70px);
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    left: 76%;
    width: min(389px, 100%);
  }
}
@media screen and (min-width: 1361px) and (max-width: 1600px) {
  .sec_world .contents.value .txts {
    left: 70%;
  }
}
.sec_world .contents.value .txts p {
  font-size: 12px;
}
@media all and (min-width: 751px) {
  .sec_world .contents.value .txts p {
    font-size: 17px;
    line-height: 1.9;
  }
}
@media all and (min-width: 751px) {
  .sec_world .contents.value .txts p:not(:first-of-type) {
    margin-top: 17px;
  }
}
@media all and (min-width: 751px) {
  .sec_world .contents.growth .image {
    width: min(944px, 100%);
  }
}
.sec_world .contents.growth .graph_name {
  margin-top: 22px;
  text-align: center;
  font-size: 10px;
}
@media all and (min-width: 751px) {
  .sec_world .contents.growth .graph_name {
    margin-top: 40px;
    font-size: 18px;
  }
}
.sec_world .contents .detail_ttl {
  margin-bottom: 30px;
  font-size: 14px;
  font-weight: bold;
  letter-spacing: 0.2em;
}
@media all and (min-width: 751px) {
  .sec_world .contents .detail_ttl {
    margin-bottom: 90px;
    font-size: 21px;
  }
}
@media all and (max-width: 750px) {
  .sec_world .contents .catch_copy {
    text-align: right;
  }
}
.sec_world .contents .catch_copy span {
  display: block;
}
.sec_world .contents .catch_copy .jp {
  margin-bottom: 16px;
  font-size: 22px;
  font-weight: 500;
  letter-spacing: 0.2em;
  line-height: 1.6;
  text-align: left;
}
@media all and (min-width: 751px) {
  .sec_world .contents .catch_copy .jp {
    margin-bottom: 58px;
    font-size: 35px;
    line-height: 1.9;
    text-align: center;
  }
}
.sec_world .contents .catch_copy .en {
  font-family: "D-DIN Pro", sans-serif;
  font-weight: 500;
  letter-spacing: 0.1em;
}
@media all and (max-width: 750px) {
  .sec_world .contents .catch_copy .en {
    display: inline-block;
    text-align: left;
    font-size: 9px;
    line-height: 1.53;
  }
}
@media all and (min-width: 751px) {
  .sec_world .contents .catch_copy .en {
    font-size: 18px;
    line-height: 1.6;
    text-align: center;
  }
}
.sec_world .contents .detail {
  letter-spacing: 0.1em;
  line-height: 2.21;
}
@media all and (min-width: 751px) {
  .sec_world .contents .detail {
    line-height: 2.29;
  }
}
.sec_world .contents .image {
  margin-inline: auto;
}

/* 事業紹介
------------------------------------------------------------------------------------ */
.sec_service .sec_info_ttl {
  margin-bottom: 40px;
}
@media all and (min-width: 751px) {
  .sec_service .sec_info_ttl {
    margin-bottom: 140px;
  }
}
.sec_service .service_list .service_detail:not(:first-child) {
  margin-top: 43px;
}
@media all and (min-width: 751px) {
  .sec_service .service_list .service_detail:not(:first-child) {
    margin-top: 106px;
  }
}
.sec_service .service_list .service_ttl {
  margin-bottom: 30px;
}
@media all and (min-width: 751px) {
  .sec_service .service_list .service_ttl {
    margin-bottom: 40px;
  }
}
.sec_service .service_list .detail {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse;
}
@media all and (min-width: 1001px) {
  .sec_service .service_list .detail {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 0 70px;
  }
}
.sec_service .service_list .detail:not(:first-of-type) {
  margin-top: 34px;
}
@media all and (min-width: 751px) {
  .sec_service .service_list .detail:not(:first-of-type) {
    margin-top: 118px;
  }
}
@media all and (min-width: 1001px) {
  .sec_service .service_list .detail .image {
    width: 45%;
  }
}
@media all and (min-width: 1001px) {
  .sec_service .service_list .detail .txts {
    padding-left: 90px;
    width: 50%;
  }
}
.sec_service .service_list .detail .txts .detail_ttl {
  margin: 30px 0 25px;
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0.2em;
  line-height: 1.6;
}
@media all and (min-width: 751px) {
  .sec_service .service_list .detail .txts .detail_ttl {
    font-size: 32px;
  }
}
@media all and (min-width: 1001px) {
  .sec_service .service_list .detail .txts .detail_ttl {
    margin: 0 0 52px;
  }
}
.sec_service .service_list .detail .txts p {
  line-height: 2.21;
}
@media all and (min-width: 751px) {
  .sec_service .service_list .detail .txts p {
    line-height: 2.29;
  }
}

/* 成長の理由
------------------------------------------------------------------------------------ */
.sec_growth {
  padding-bottom: 70px;
}
@media all and (min-width: 751px) {
  .sec_growth {
    padding-bottom: 145px;
  }
}
.sec_growth .sec_info_ttl {
  margin-bottom: 80px;
}
@media all and (min-width: 751px) {
  .sec_growth .sec_info_ttl {
    margin-bottom: 167px;
  }
}
.sec_growth .growth_logo {
  margin-bottom: 111px;
  position: relative;
  margin-inline: auto;
  width: min(177px, 100%);
}
@media all and (min-width: 751px) {
  .sec_growth .growth_logo {
    margin-bottom: 248px;
    width: min(383px, 100%);
  }
}
.sec_growth .growth_logo::after {
  position: absolute;
  content: "";
  background-color: #fff;
  width: 1.5px;
  height: 77px;
  bottom: -84px;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
@media all and (min-width: 751px) {
  .sec_growth .growth_logo::after {
    bottom: -183px;
    height: 168px;
  }
}
@media all and (min-width: 1151px) {
  .sec_growth .service_list .service_detail {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: 30.45% 9vw 58.08%;
    grid-template-columns: 30.45% 58.08%;
    -ms-grid-rows: auto 0 1fr;
    grid-template-rows: auto 1fr;
    gap: 0 9vw;
        grid-template-areas: "image ttl" "image txt";
  }
}
@media screen and (min-width: 1151px) and (max-width: 1500px) {
  .sec_growth .service_list .service_detail {
    -ms-grid-columns: 1fr 50%;
    grid-template-columns: 1fr 50%;
  }
}
.sec_growth .service_list .service_detail:not(:first-child) {
  margin-top: 53px;
}
@media all and (min-width: 751px) {
  .sec_growth .service_list .service_detail:not(:first-child) {
    margin-top: 110px;
  }
}
.sec_growth .service_list .service_detail .service_ttl {
  margin: 0 0 30px;
}
@media all and (min-width: 751px) {
  .sec_growth .service_list .service_detail .service_ttl {
    margin: 13px 0 68px;
  }
}
@media all and (min-width: 1151px) {
  .sec_growth .service_list .service_detail .service_ttl {
    grid-area: ttl;
  }
}
.sec_growth .service_list .service_detail .service_ttl .number_txt::after {
  background-color: #fff;
}
.sec_growth .service_list .service_detail .image {
  margin: 0 0 36px;
}
@media screen and (min-width: 1151px) and (max-width: 1500px) {
  .sec_growth .service_list .service_detail .image {
    margin: 0 0 0 -43.5px;
  }
}
@media all and (min-width: 1151px) {
  .sec_growth .service_list .service_detail .image {
    grid-area: image;
  }
}
@media all and (min-width: 1501px) {
  .sec_growth .service_list .service_detail .image {
    margin: 0 0 0 calc((1400px - 100vw) / 2);
  }
}
.sec_growth .service_list .service_detail .detail {
  line-height: 2.21;
}
@media all and (min-width: 751px) {
  .sec_growth .service_list .service_detail .detail {
    line-height: 2.29;
  }
}
@media all and (min-width: 1151px) {
  .sec_growth .service_list .service_detail .detail {
    grid-area: txt;
  }
}
@media all and (min-width: 1151px){
  .sec_growth .service_list .service_detail .service_ttl {
    -ms-grid-row: 1;
    -ms-grid-column: 3;
  }
  .sec_growth .service_list .service_detail .image {
    -ms-grid-row: 1;
    -ms-grid-row-span: 3;
    -ms-grid-column: 1;
  }
  .sec_growth .service_list .service_detail .detail {
    -ms-grid-row: 3;
    -ms-grid-column: 3;
  }
}

/* ON THIS PAGE
------------------------------------------------------------------------------------ */
.on_this_page_block .on_this_page {
  border-right: 1px solid #fff;
}
.on_this_page_block .breadcrumbs {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
@media all and (max-width: 750px) {
  .on_this_page_block .breadcrumbs {
    width: 50%;
  }
}
.on_this_page_block .breadcrumbs li a {
  display: inline-block;
  color: #fff;
}
.on_this_page_block .breadcrumbs li a::after {
  -webkit-filter: brightness(0) invert(1);
          filter: brightness(0) invert(1);
}