@charset "UTF-8";
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
  margin: 0;
  padding: 0; }

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
  display: block; }

body {
  line-height: 1; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after, q:before, q:after {
  content: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

.clearfix:after {
  content: ".";
  display: block;
  height: 0;
  font-size: 0;
  clear: both;
  visibility: hidden; }

.clearfix {
  display: inline-block; }

/* Hides from IE Mac */
* html .clearfix {
  height: 1%; }

.clearfix {
  display: block; }

/* ---------- 初期 ---------- */
body {
  letter-spacing: 0;
  font-family: "游明朝 Medium", "Yu Mincho Medium", "YuMincho Medium", "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-weight: 500; }

img {
  width: 100%;
  max-width: 100%;
  height: auto;
  line-height: 0; }

a {
  text-decoration: none; }

strong {
  font-weight: bold; }

/* ---------- /共通部分 ---------- */
#jougetyuou {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  -webkit-transform: translateY(-50%) translateX(-50%);
  margin: auto; }

#kadomaru {
  border-radius: 10px;
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px; }

#resbtn {
  -webkit-appearance: none; }

.ancr {
  position: relative;
  transition: 0.5s; }

.anca {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: block;
  z-index: 10;
  cursor: pointer; }

.ancr:hover {
  opacity: 0.75;
  transition: 0.5s;
  cursor: pointer; }

/* ---------- /参考タグ部分 ---------- */
.wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between; }

.font_notosans {
  font-family: "Noto Sans JP", sans-serif; }

.fw_demi {
  /* Mac向けのフォント指定を優先 */
  font-family: "游明朝 Demibold", "YuMincho Demibold", "游明朝", "Yu Mincho", serif;
  font-weight: 600; }

html {
  font-size: calc(1vw * 100 / 1920); }

/* PC */
@media screen and (min-width: 769px) {
  .sponly {
    display: none !important; }

  header {
    width: 100%;
    position: fixed;
    left: 0;
    top: 0;
    z-index: 10;
    transition: background 0.3s; }
    header.changed {
      background: #1e2d54; }
      header.changed .logo a {
        background: #fff; }
    header.under {
      background: #1e2d54; }
      header.under .logo a {
        background: #fff; }
    header .inner {
      padding: 26rem 0 27rem;
      display: flex;
      justify-content: center;
      position: relative; }
      header .inner .logo {
        width: 180rem;
        position: absolute;
        top: 0;
        left: 0; }
        header .inner .logo a {
          display: block;
          line-height: 0; }
      header .inner nav ul {
        display: flex;
        justify-content: center;
        align-items: center; }
        header .inner nav ul li {
          margin: 0 35rem;
          text-align: center; }
          header .inner nav ul li a {
            display: inline-block;
            color: #fff;
            transition: 0.3s; }
            header .inner nav ul li a.contact {
              padding: 17rem 24rem 15rem;
              background: #1e2d54; }
            header .inner nav ul li a:hover {
              opacity: 0.8; }
            header .inner nav ul li a .en {
              font-size: 24rem;
              letter-spacing: 0.05em;
              line-height: 1;
              font-weight: bold; }
            header .inner nav ul li a .ja {
              font-size: 14rem;
              letter-spacing: 0.1em;
              line-height: 1.5em;
              font-weight: 500; }

  #top_mv {
    background: url("../img/top_mv.webp") no-repeat center bottom;
    background-size: cover; }
    #top_mv .inner {
      padding: 410rem 0 400rem;
      text-align: center; }
      #top_mv .inner .main_ttl {
        position: relative; }
        #top_mv .inner .main_ttl h1 {
          position: relative;
          display: inline-block;
          font-size: 70rem;
          letter-spacing: 0.2em;
          line-height: 1.21em;
          font-weight: bold;
          color: #fff;
          z-index: 2; }
          #top_mv .inner .main_ttl h1 span {
            display: inline-block;
            font-size: 40rem; }
        #top_mv .inner .main_ttl .clone {
          font-size: 70rem;
          letter-spacing: 0.2em;
          line-height: 1.21em;
          font-weight: bold;
          color: transparent;
          position: absolute;
          top: 50%;
          left: 50%;
          transform: translateX(-50%) translateY(-50%);
          /* ★光彩（text-shadow）の設定 */
          /* 色: 黒 (#000), 不透明度: 100% (デフォルト), ぼかし: 5px */
          text-shadow: 0 0 5rem #000000;
          /* ★光彩部分のみにオーバーレイを適用 */
          mix-blend-mode: overlay; }
          #top_mv .inner .main_ttl .clone span {
            display: inline-block;
            font-size: 40rem; }

  /*セクションタイトル*/
  .sec_ttl {
    position: relative;
    color: #1e2d54; }
    .sec_ttl::before {
      position: absolute;
      content: "";
      width: 39rem;
      height: 5rem;
      top: -15rem;
      left: 0;
      background: url("../img/sec_ttl_line.webp") no-repeat;
      background-size: contain; }
    .sec_ttl.white {
      color: #fff; }
    .sec_ttl.center {
      text-align: center; }
      .sec_ttl.center::before {
        left: 50%;
        transform: translateX(-50%); }
    .sec_ttl h2 {
      font-size: 40rem;
      letter-spacing: 0.1em;
      line-height: 1.65em;
      font-weight: bold; }
    .sec_ttl .jattl {
      font-size: 21rem;
      letter-spacing: 0.1em;
      font-weight: 500; }

  .more_btn {
    width: 361rem; }
    .more_btn a {
      display: block;
      width: 100%;
      font-size: 17rem;
      line-height: 1;
      font-weight: bold;
      color: #fff;
      text-align: center;
      padding: 27rem 0 26rem;
      border: solid 1rem #01004b;
      background-image: url("../img/btn_arrow_white.webp"), linear-gradient(to right, #01004b, #4f589c);
      background-repeat: no-repeat, no-repeat;
      background-position: right 26rem center, center;
      background-size: 40rem, cover; }
      .more_btn a:hover {
        color: #01004b;
        border: solid 1rem #01004b;
        background-color: #fff;
        background-image: url("../img/btn_arrow_navy.webp");
        background-repeat: no-repeat;
        background-position: right 25rem center;
        background-size: 40rem; }
    .more_btn.btn02 a {
      color: #fff;
      border: solid 1rem #fff;
      background-image: url("../img/btn_arrow_white.webp");
      background-repeat: no-repeat, no-repeat;
      background-position: right 26rem center;
      background-size: 40rem;
      background-color: #none; }
      .more_btn.btn02 a:hover {
        color: #1e2d54;
        background-color: #fff;
        background-image: url("../img/btn_arrow_navy.webp"); }

  #top_intro {
    margin-top: -1rem;
    position: relative;
    background: #1e2d54;
    overflow: hidden; }
    #top_intro::before {
      position: absolute;
      content: "";
      width: 1112rem;
      height: 1174rem;
      top: -62rem;
      right: -177rem;
      background: url("../img/top_intro_bg.webp") no-repeat;
      background-size: contain; }
    #top_intro .inner {
      text-align: center;
      padding: 300rem 0 250rem;
      color: #fff;
      text-align: center; }
      #top_intro .inner h3 {
        font-size: 42rem;
        letter-spacing: 0.1em;
        line-height: 1.5em;
        font-weight: bold;
        margin: 80rem 0 140rem; }
        #top_intro .inner h3 span {
          display: inline-block;
          font-size: 27rem;
          line-height: 1.62em; }
      #top_intro .inner .top_intro_txt {
        font-size: 18rem;
        letter-spacing: 0.1em;
        line-height: 2.44em;
        margin-bottom: 80rem; }
        #top_intro .inner .top_intro_txt span {
          display: block;
          font-size: 22rem;
          line-height: 1.59em;
          font-weight: bold; }
      #top_intro .inner .top_intro_name {
        font-size: 18rem;
        letter-spacing: 0.1em; }
        #top_intro .inner .top_intro_name span {
          font-size: 27rem; }

  #top_concept {
    background: #f8f9f9;
    position: relative; }
    #top_concept .inner {
      position: relative;
      padding: 270rem 0 320rem; }
      #top_concept .inner .top_concept_img {
        width: 748rem;
        position: absolute;
        top: -12rem;
        left: 0; }
      #top_concept .inner .top_concept_box {
        margin-left: 855rem; }
        #top_concept .inner .top_concept_box .top_concept_box_txt {
          font-size: 31rem;
          letter-spacing: 0.1em;
          line-height: 1.42em;
          color: #1e2d54;
          margin: 70rem 0; }

  #top_service .inner {
    width: 1380rem;
    margin: 0 auto;
    padding: 200rem 0 112rem; }
    #top_service .inner .top_service_box {
      display: flex;
      justify-content: space-between;
      position: relative; }
      #top_service .inner .top_service_box .top_service_img {
        width: 375rem;
        position: absolute;
        top: -49rem;
        left: 390rem; }
      #top_service .inner .top_service_box .top_service_box_left {
        padding-top: 130rem; }
        #top_service .inner .top_service_box .top_service_box_left .top_service_box_txt {
          font-size: 31rem;
          letter-spacing: 0.1em;
          line-height: 1.42em;
          color: #1e2d54;
          margin: 50rem 0; }
      #top_service .inner .top_service_box .top_service_box_right {
        width: 533rem;
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap; }
        #top_service .inner .top_service_box .top_service_box_right .top_service_box_img {
          width: 253rem; }
          #top_service .inner .top_service_box .top_service_box_right .top_service_box_img:nth-child(n+3) {
            margin-top: 31rem; }

  #top_feature {
    background: url("../img/top_feature_box_img.webp") no-repeat center;
    background-size: cover; }
    #top_feature .inner {
      width: 1096rem;
      margin: 0 auto;
      padding: 355rem 0 390rem;
      color: #fff;
      text-align: center; }
      #top_feature .inner .top_feature_txt {
        font-size: 31rem;
        letter-spacing: 0.1em;
        line-height: 1.42em;
        margin: 95rem 0 70rem; }
      #top_feature .inner .top_feature_boxes {
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
        margin-bottom: 115rem; }
        #top_feature .inner .top_feature_boxes .top_feature_box {
          width: 316rem;
          position: relative; }
          #top_feature .inner .top_feature_boxes .top_feature_box:nth-child(n+4) {
            margin-top: 60rem; }
          #top_feature .inner .top_feature_boxes .top_feature_box .num {
            font-size: 149rem;
            letter-spacing: 0em;
            line-height: 1;
            font-weight: normal;
            position: absolute;
            top: 80rem;
            left: -31rem; }
          #top_feature .inner .top_feature_boxes .top_feature_box .top_feature_box_txt {
            font-size: 30rem;
            letter-spacing: 0.1em;
            line-height: 1.43em;
            margin-top: 25rem; }
      #top_feature .inner .more_btn {
        margin: 0 auto; }

  #top_customer {
    position: relative; }
    #top_customer .bg {
      width: 100%;
      height: 2024rem;
      background: #f8f9f9;
      position: absolute;
      top: -743rem;
      left: 0;
      z-index: -1; }
    #top_customer .inner {
      width: 1380rem;
      margin: 0 auto;
      padding: 200rem 0 100rem; }
      #top_customer .inner .top_customer_box .top_customer_box_txt {
        font-size: 31rem;
        letter-spacing: 0.1em;
        line-height: 1.42em;
        margin: 80rem 0 70rem; }
      #top_customer .inner .top_customer_img {
        width: 1105rem;
        display: flex;
        justify-content: space-between;
        position: absolute;
        top: 0;
        right: 0; }
        #top_customer .inner .top_customer_img img {
          width: calc( 100% / 3 ); }

  #top_group .inner {
    width: 1380rem;
    margin: 0 auto;
    padding: 300rem 0 256rem; }
    #top_group .inner .top_group_boxes {
      margin-top: 70rem;
      display: flex;
      justify-content: space-between; }
      #top_group .inner .top_group_boxes .top_group_box {
        width: 668rem;
        height: 492rem;
        box-sizing: border-box;
        position: relative;
        background-repeat: no-repeat;
        background-position: center;
        background-size: cover; }
        #top_group .inner .top_group_boxes .top_group_box:first-child {
          padding-top: 200rem;
          background-image: url("../img/top_group_img_01.png"); }
        #top_group .inner .top_group_boxes .top_group_box:last-child {
          padding-top: 180rem;
          background-image: url("../img/top_group_img_02.png"); }
        #top_group .inner .top_group_boxes .top_group_box .top_group_box_ttl {
          font-size: 40rem;
          letter-spacing: 0.01em;
          line-height: 1.075em;
          color: #fff;
          text-align: center; }
        #top_group .inner .top_group_boxes .top_group_box .arrow {
          width: 67rem;
          position: absolute;
          bottom: 126rem;
          left: 50%;
          transform: translateX(-50%); }

  footer {
    padding: 61rem 0 35rem;
    color: #fff;
    text-align: center;
    background: #1e2d54; }
    footer .footer_logo {
      width: 558rem;
      margin: 0 auto; }
    footer .footer_ttl {
      font-size: 18rem;
      letter-spacing: 0.1em; }
    footer .tel {
      font-size: 39rem;
      letter-spacing: 0.1em;
      margin: 60rem 0; }
    footer .address {
      font-size: 17rem;
      letter-spacing: 0.1em;
      line-height: 1.41em; }
    footer ul {
      margin: 65rem 0 30rem;
      display: flex;
      justify-content: center; }
      footer ul li {
        width: 30rem;
        margin: 0 10rem; }
        footer ul li:nth-child(1) {
          width: 39rem; }
        footer ul li a {
          display: block;
          width: 100%;
          transition: 0.3s; }
          footer ul li a:hover {
            opacity: 0.8; }
    footer .copyright {
      font-size: 14rem;
      letter-spacing: 0.09em; }

  #concept .concept_cont .bg {
    background: #f8fbfb; }
  #concept .concept_cont .inner .concept_box {
    width: 1650rem;
    color: #1e2d54;
    display: flex;
    justify-content: space-between; }
    #concept .concept_cont .inner .concept_box .concept_box_left {
      width: 800rem;
      padding-top: 30rem; }
      #concept .concept_cont .inner .concept_box .concept_box_left .subttl {
        font-size: 31rem;
        letter-spacing: 0.05em;
        line-height: 1.42em;
        margin: 70rem 0 100rem; }
      #concept .concept_cont .inner .concept_box .concept_box_left .concept_box_txt {
        font-size: 18rem;
        letter-spacing: 0.05em;
        line-height: 2.44em; }
        #concept .concept_cont .inner .concept_box .concept_box_left .concept_box_txt.big {
          font-size: 22rem;
          line-height: 2em;
          margin: 65rem 0; }
    #concept .concept_cont .inner .concept_box .concept_box_img {
      width: 747rem; }
  #concept .concept_cont.cont01 .inner {
    padding: 355rem 0 250rem; }
    #concept .concept_cont.cont01 .inner .concept_box {
      margin-left: auto; }
  #concept .concept_cont.cont02 .inner {
    padding: 253rem 0 246rem; }
    #concept .concept_cont.cont02 .inner .concept_box {
      flex-direction: row-reverse; }
      #concept .concept_cont.cont02 .inner .concept_box .subttl {
        margin: 70rem 0; }

  #group .group_cont {
    background: #f8fafa; }
    #group .group_cont .inner {
      width: 1380rem;
      margin: 0 auto;
      padding: 380rem 0 310rem; }
      #group .group_cont .inner .group_boxes {
        margin-top: 120rem;
        display: flex;
        justify-content: space-between; }
        #group .group_cont .inner .group_boxes .group_box {
          width: 668rem;
          text-align: center; }
          #group .group_cont .inner .group_boxes .group_box .group_box_ttl {
            margin: 30rem 0 20rem;
            min-height: 2.15em;
            font-size: 40rem;
            letter-spacing: 0.1em;
            line-height: 1.075em;
            display: flex;
            justify-content: center;
            flex-direction: column; }
          #group .group_cont .inner .group_boxes .group_box .group_box_txt {
            font-size: 18rem;
            letter-spacing: 0.05em;
            line-height: 2.44em; }
          #group .group_cont .inner .group_boxes .group_box .more_btn {
            margin: 35rem auto 0; } }
/* SP */
@media screen and (max-width: 768px) {
  html {
    font-size: calc(1vw * 100 / 375); }

  .pconly {
    display: none !important; }

  header {
    width: 100%;
    position: fixed;
    left: 0;
    top: 0;
    z-index: 10;
    transition: background 0.3s; }
    header.changed {
      background: #1e2d54; }
      header.changed .logo a {
        background: #fff; }
    header.under {
      background: #1e2d54; }
      header.under .logo a {
        background: #fff; }
    header .inner {
      height: 50rem;
      display: flex;
      justify-content: center;
      position: relative; }
      header .inner .logo {
        width: 70rem;
        position: absolute;
        top: 0;
        left: 0; }
        header .inner .logo a {
          display: block;
          line-height: 0; }

  #top_mv {
    background: url("../img/top_mv.webp") no-repeat center bottom;
    background-size: cover; }
    #top_mv .inner {
      padding: 200rem 0;
      text-align: center; }
      #top_mv .inner .main_ttl {
        position: relative; }
        #top_mv .inner .main_ttl h1 {
          width: 100%;
          position: relative;
          font-size: 32rem;
          letter-spacing: 0.05em;
          line-height: 1.5em;
          font-weight: bold;
          color: #fff;
          z-index: 2; }
          #top_mv .inner .main_ttl h1 span {
            display: inline-block;
            font-size: 20rem;
            line-height: 1.5em; }
        #top_mv .inner .main_ttl .clone {
          width: 100%;
          font-size: 32rem;
          letter-spacing: 0.05em;
          line-height: 1.5em;
          font-weight: bold;
          color: transparent;
          position: absolute;
          top: 50%;
          left: 50%;
          transform: translateX(-50%) translateY(-50%);
          /* ★光彩（text-shadow）の設定 */
          /* 色: 黒 (#000), 不透明度: 100% (デフォルト), ぼかし: 5px */
          text-shadow: 0 0 5rem #000000;
          /* ★光彩部分のみにオーバーレイを適用 */
          mix-blend-mode: overlay; }
          #top_mv .inner .main_ttl .clone span {
            display: inline-block;
            font-size: 20rem;
            line-height: 1.5em; }

  /*セクションタイトル*/
  .sec_ttl {
    position: relative;
    color: #1e2d54; }
    .sec_ttl::before {
      position: absolute;
      content: "";
      width: 30rem;
      height: 5rem;
      top: -10rem;
      left: 0;
      background: url("../img/sec_ttl_line.webp") no-repeat;
      background-size: contain; }
    .sec_ttl.white {
      color: #fff; }
    .sec_ttl.center {
      text-align: center; }
      .sec_ttl.center::before {
        left: 50%;
        transform: translateX(-50%); }
    .sec_ttl h2 {
      font-size: 25rem;
      letter-spacing: 0.1em;
      line-height: 1.65em;
      font-weight: bold; }
    .sec_ttl .jattl {
      font-size: 15rem;
      letter-spacing: 0.1em;
      font-weight: 500; }

  .more_btn {
    width: 260rem; }
    .more_btn a {
      display: block;
      width: 100%;
      font-size: 16rem;
      line-height: 1;
      font-weight: bold;
      color: #fff;
      text-align: center;
      padding: 18rem 0;
      border: solid 1rem #01004b;
      background-image: url("../img/btn_arrow_white.webp"), linear-gradient(to right, #01004b, #4f589c);
      background-repeat: no-repeat, no-repeat;
      background-position: right 20rem center, center;
      background-size: 30rem, cover; }
      .more_btn a:hover {
        color: #01004b;
        border: solid 1rem #01004b;
        background-color: #fff;
        background-image: url("../img/btn_arrow_navy.webp");
        background-repeat: no-repeat;
        background-position: right 20rem center;
        background-size: 30rem; }
    .more_btn.btn02 a {
      color: #fff;
      border: solid 1rem #fff;
      background-image: url("../img/btn_arrow_white.webp");
      background-repeat: no-repeat, no-repeat;
      background-position: right 20rem center;
      background-size: 30rem;
      background-color: #none; }
      .more_btn.btn02 a:hover {
        color: #1e2d54;
        background-color: #fff;
        background-image: url("../img/btn_arrow_navy.webp"); }

  #top_intro {
    margin-top: -1rem;
    position: relative;
    background: #1e2d54;
    overflow: hidden; }
    #top_intro::before {
      position: absolute;
      content: "";
      width: 400rem;
      height: 400rem;
      top: -62rem;
      right: -177rem;
      background: url("../img/top_intro_bg.webp") no-repeat;
      background-size: contain; }
    #top_intro .inner {
      width: 330rem;
      margin: 0 auto;
      text-align: center;
      padding: 100rem 0;
      color: #fff;
      text-align: center; }
      #top_intro .inner h3 {
        font-size: 24rem;
        letter-spacing: 0.1em;
        line-height: 1.5em;
        font-weight: bold;
        margin: 50rem 0; }
        #top_intro .inner h3 span {
          display: inline-block;
          font-size: 16rem;
          line-height: 1.62em;
          margin-top: 10rem; }
      #top_intro .inner .top_intro_txt {
        font-size: 16rem;
        letter-spacing: 0.1em;
        line-height: 1.8em;
        text-align: left;
        margin-bottom: 50rem; }
        #top_intro .inner .top_intro_txt span {
          display: block;
          font-size: 20rem;
          line-height: 1.59em;
          font-weight: bold; }
      #top_intro .inner .top_intro_name {
        font-size: 14rem;
        letter-spacing: 0.1em;
        text-align: right; }
        #top_intro .inner .top_intro_name span {
          font-size: 20rem; }

  #top_concept {
    background: #f8f9f9;
    position: relative; }
    #top_concept .inner {
      position: relative;
      padding: 0 0 100rem; }
      #top_concept .inner .top_concept_img {
        width: 100%; }
      #top_concept .inner .top_concept_box {
        width: 330rem;
        margin: 50rem auto 0; }
        #top_concept .inner .top_concept_box .top_concept_box_txt {
          font-size: 20rem;
          letter-spacing: 0.1em;
          line-height: 1.42em;
          color: #1e2d54;
          margin: 50rem 0; }
        #top_concept .inner .top_concept_box .more_btn {
          margin: 0 auto; }

  #top_service .inner {
    width: 330rem;
    margin: 0 auto;
    padding: 100rem 0 50rem; }
    #top_service .inner .top_service_box {
      position: relative; }
      #top_service .inner .top_service_box .top_service_img {
        width: 120rem;
        position: absolute;
        top: -20rem;
        right: -20rem; }
      #top_service .inner .top_service_box .top_service_box_left .top_service_box_txt {
        font-size: 20rem;
        letter-spacing: 0.1em;
        line-height: 1.42em;
        color: #1e2d54;
        margin: 50rem 0 30rem; }
      #top_service .inner .top_service_box .top_service_box_left .more_btn {
        margin: 0 auto; }
      #top_service .inner .top_service_box .top_service_box_right {
        width: 100%;
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
        margin-bottom: 50rem; }
        #top_service .inner .top_service_box .top_service_box_right .top_service_box_img {
          width: 80rem; }

  #top_feature {
    background: url("../img/top_feature_box_img.webp") no-repeat center;
    background-size: cover; }
    #top_feature .inner {
      width: 330rem;
      margin: 0 auto;
      padding: 150rem 0 200rem;
      color: #fff;
      text-align: center; }
      #top_feature .inner .top_feature_txt {
        font-size: 20rem;
        letter-spacing: 0.1em;
        line-height: 1.42em;
        text-align: left;
        margin: 50rem 0; }
      #top_feature .inner .top_feature_boxes {
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
        margin-bottom: 60rem; }
        #top_feature .inner .top_feature_boxes .top_feature_box {
          width: 150rem;
          position: relative; }
          #top_feature .inner .top_feature_boxes .top_feature_box:nth-child(n+3) {
            margin-top: 40rem; }
          #top_feature .inner .top_feature_boxes .top_feature_box .num {
            font-size: 60rem;
            letter-spacing: 0em;
            line-height: 1;
            font-weight: normal;
            position: absolute;
            top: 50rem;
            left: -10rem; }
          #top_feature .inner .top_feature_boxes .top_feature_box .top_feature_box_txt {
            font-size: 16rem;
            letter-spacing: 0.1em;
            line-height: 1.43em;
            margin-top: 20rem; }
      #top_feature .inner .more_btn {
        margin: 0 auto; }

  #top_customer {
    position: relative; }
    #top_customer .bg {
      width: 100%;
      height: 1500rem;
      background: #f8f9f9;
      position: absolute;
      top: -200rem;
      left: 0;
      z-index: -1; }
    #top_customer .inner {
      width: 330rem;
      margin: 0 auto;
      padding: 50rem 0; }
      #top_customer .inner .top_customer_box .top_customer_box_txt {
        font-size: 20rem;
        letter-spacing: 0.1em;
        line-height: 1.42em;
        margin: 50rem 0 50rem; }
      #top_customer .inner .top_customer_img {
        width: 100%;
        display: flex;
        justify-content: space-between; }
        #top_customer .inner .top_customer_img img {
          width: calc( 100% / 3 ); }
      #top_customer .inner .more_btn {
        margin: 50rem auto 0; }

  #top_group .inner {
    width: 330rem;
    margin: 0 auto;
    padding: 100rem 0; }
    #top_group .inner .top_group_boxes {
      margin-top: 50rem; }
      #top_group .inner .top_group_boxes .top_group_box {
        width: 100%;
        height: 300rem;
        box-sizing: border-box;
        position: relative;
        background-repeat: no-repeat;
        background-position: center;
        background-size: cover; }
        #top_group .inner .top_group_boxes .top_group_box:first-child {
          padding-top: 130rem;
          background-image: url("../img/top_group_img_01.png");
          margin-bottom: 30rem; }
        #top_group .inner .top_group_boxes .top_group_box:last-child {
          padding-top: 110rem;
          background-image: url("../img/top_group_img_02.png"); }
        #top_group .inner .top_group_boxes .top_group_box .top_group_box_ttl {
          font-size: 25rem;
          letter-spacing: 0.01em;
          line-height: 1.075em;
          color: #fff;
          text-align: center; }
        #top_group .inner .top_group_boxes .top_group_box .arrow {
          width: 50rem;
          position: absolute;
          bottom: 50rem;
          left: 50%;
          transform: translateX(-50%); }

  footer {
    padding: 50rem 0 35rem;
    color: #fff;
    text-align: center;
    background: #1e2d54; }
    footer .footer_logo {
      width: 300rem;
      margin: 0 auto 10rem; }
    footer .footer_ttl {
      font-size: 12rem;
      letter-spacing: 0.1em; }
    footer .tel {
      font-size: 24rem;
      letter-spacing: 0.1em;
      margin: 60rem 0 50rem; }
    footer .address {
      font-size: 14rem;
      letter-spacing: 0.1em;
      line-height: 1.41em; }
    footer ul {
      margin: 50rem 0 30rem;
      display: flex;
      justify-content: center; }
      footer ul li {
        width: 30rem;
        margin: 0 10rem; }
        footer ul li:nth-child(1) {
          width: 39rem; }
        footer ul li a {
          display: block;
          width: 100%;
          transition: 0.3s; }
          footer ul li a:hover {
            opacity: 0.8; }
    footer .copyright {
      font-size: 11rem;
      letter-spacing: 0.05em; }

  #concept .concept_cont .bg {
    background: #f8fbfb; }
  #concept .concept_cont .inner .sec_ttl {
    text-align: center; }
    #concept .concept_cont .inner .sec_ttl::before {
      left: 50%;
      transform: translateX(-50%); }
  #concept .concept_cont .inner .concept_box {
    width: 330rem;
    margin: 0 auto;
    color: #1e2d54; }
    #concept .concept_cont .inner .concept_box .concept_box_left {
      width: 100%;
      margin-bottom: 30rem; }
      #concept .concept_cont .inner .concept_box .concept_box_left .subttl {
        font-size: 20rem;
        letter-spacing: 0.05em;
        line-height: 1.42em;
        margin: 50rem 0 50rem; }
      #concept .concept_cont .inner .concept_box .concept_box_left .concept_box_txt {
        font-size: 16rem;
        letter-spacing: 0.05em;
        line-height: 2em; }
        #concept .concept_cont .inner .concept_box .concept_box_left .concept_box_txt.big {
          font-size: 17rem;
          line-height: 2em;
          margin: 30rem 0; }
    #concept .concept_cont .inner .concept_box .concept_box_img {
      width: 100%; }
  #concept .concept_cont.cont01 .inner {
    padding: 130rem 0 80rem; }
  #concept .concept_cont.cont02 .inner {
    padding: 80rem 0; }

  #group .group_cont {
    background: #f8fafa; }
    #group .group_cont .inner {
      width: 330rem;
      margin: 0 auto;
      padding: 130rem 0 100rem; }
      #group .group_cont .inner .group_boxes {
        margin-top: 50rem; }
        #group .group_cont .inner .group_boxes .group_box {
          width: 100%;
          text-align: center; }
          #group .group_cont .inner .group_boxes .group_box:nth-child(2) {
            margin-top: 80rem; }
          #group .group_cont .inner .group_boxes .group_box .group_box_ttl {
            margin: 20rem 0 15rem;
            font-size: 22rem;
            letter-spacing: 0.1em;
            line-height: 1.075em;
            display: flex;
            justify-content: center;
            flex-direction: column; }
          #group .group_cont .inner .group_boxes .group_box .group_box_txt {
            font-size: 16rem;
            letter-spacing: 0.05em;
            line-height: 2em;
            text-align: left; }
          #group .group_cont .inner .group_boxes .group_box .more_btn {
            margin: 30rem auto 0; } }
