@charset "UTF-8";
html {
  position: relative;
  min-height: 100%;
  overflow-x: hidden; }

section {
  overflow: hidden; }

body {
  width: 100%;
  font-size: 16px;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, sans-serif, "メイリオ", meiryo;
  color: #212121;
  position: relative;
  line-height: 1.8; }

img {
  max-width: 100%;
  width: auto;
  vertical-align: top;
  height: auto; }

.sp {
  display: none !important; }

@media screen and (max-width: 767px) {
  body {
    font-size: 3.2vw;
    padding-top: 0; }

  .pc {
    display: none !important; }

  .sp {
    display: inherit !important; } }
a {
  outline: none;
  text-decoration: none; }

a:hover {
  text-decoration: none; }

.pagetop {
  position: relative;
  display: block;
  z-index: 1100; }

.pagetop a {
  width: 50px;
  height: 50px;
  border-radius: 50px;
  color: #fff;
  display: block;
  z-index: 1100;
  overflow: hidden;
  position: relative; }
  .pagetop a:hover {
    opacity: 0.7;
    transition: 0.3s; }

/*=====================================================
ヘッダー
======================================================*/
header {
  width: 100%;
  height: 100px;
  position: fixed;
  top: 0;
  z-index: 100; }
  header .head_flex {
    display: -webkit-box;
    display: -moz-box;
    display: -ms-box;
    display: -webkit-flexbox;
    display: -moz-flexbox;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: flex;
    -webkit-box-lines: multiple;
    -moz-box-lines: multiple;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    align-items: flex-start;
    height: auto;
    justify-content: space-between;
    align-items: center;
    height: 100%;
    width: 100%;
    /*nav_wrap*/ }
    header .head_flex .head_logo {
      width: 25%;
      display: block;
      margin: 0 0 0 3%;
      position: relative; }
      header .head_flex .head_logo a {
        display: block;
        position: absolute;
        top: 50%;
        left: 0;
        transform: translateY(-50%); }
      header .head_flex .head_logo img {
        max-width: 350px;
        width: 100%; }
        header .head_flex .head_logo img:hover {
          opacity: 0.7;
          transition: 0.3s ease-in-out; }
    header .head_flex .nav_wrap {
      width: 70%;
      margin-right: 2%;
      /*nav*/ }
      header .head_flex .nav_wrap nav {
        width: auto;
        /*nav_area*/ }
        header .head_flex .nav_wrap nav .nav_area {
          display: -webkit-box;
          display: -moz-box;
          display: -ms-box;
          display: -webkit-flexbox;
          display: -moz-flexbox;
          display: -ms-flexbox;
          display: -webkit-flex;
          display: -moz-flex;
          display: -ms-flex;
          display: flex;
          -webkit-box-lines: multiple;
          -moz-box-lines: multiple;
          -webkit-flex-wrap: wrap;
          -moz-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
          flex-wrap: wrap;
          align-items: flex-start;
          height: auto;
          justify-content: flex-end;
          align-items: center;
          flex-wrap: nowrap;
          padding: 0;
          /*nav01*/ }
          header .head_flex .nav_wrap nav .nav_area ul.nav01 {
            margin: 0px 0px 0px 0;
            padding: 0;
            text-align: right;
            /*li*/ }
            header .head_flex .nav_wrap nav .nav_area ul.nav01 li {
              display: inline-block;
              position: relative;
              margin-left: 20px;
              text-align: right; }
              header .head_flex .nav_wrap nav .nav_area ul.nav01 li a {
                color: #212121;
                font-size: 20px;
                font-weight: 500;
                padding: 10px 10px;
                display: block;
                position: relative;
                text-decoration: none;
                line-height: 1.2; }
              header .head_flex .nav_wrap nav .nav_area ul.nav01 li:before {
                content: "";
                position: absolute;
                bottom: 0;
                left: 0;
                height: 4px;
                width: 0;
                background: #212121;
                transition: 0.3s; }
              header .head_flex .nav_wrap nav .nav_area ul.nav01 li:hover:before {
                width: 100%;
                transition: 0.3s; }
          header .head_flex .nav_wrap nav .nav_area .head_recruit, header .head_flex .nav_wrap nav .nav_area .head_contact, header .head_flex .nav_wrap nav .nav_area .head_mynavi {
            display: inline-block;
            border-radius: 100px;
            font-size: 22px;
            color: #fff;
            font-weight: 600;
            text-align: center;
            padding: 10px 70px;
            margin-left: 20px;
            position: relative; }
            header .head_flex .nav_wrap nav .nav_area .head_recruit img, header .head_flex .nav_wrap nav .nav_area .head_contact img, header .head_flex .nav_wrap nav .nav_area .head_mynavi img {
              position: absolute;
              top: 50%;
              left: 20px;
              transform: translateY(-50%); }
            header .head_flex .nav_wrap nav .nav_area .head_recruit:before, header .head_flex .nav_wrap nav .nav_area .head_recruit:after, header .head_flex .nav_wrap nav .nav_area .head_contact:before, header .head_flex .nav_wrap nav .nav_area .head_contact:after, header .head_flex .nav_wrap nav .nav_area .head_mynavi:before, header .head_flex .nav_wrap nav .nav_area .head_mynavi:after {
              content: "";
              position: absolute;
              top: 50%;
              transform: translateY(-50%);
              border-radius: 50px;
              transition: 0.3s; }
            header .head_flex .nav_wrap nav .nav_area .head_recruit:before, header .head_flex .nav_wrap nav .nav_area .head_contact:before, header .head_flex .nav_wrap nav .nav_area .head_mynavi:before {
              right: 20px;
              width: 20px;
              height: 20px; }
            header .head_flex .nav_wrap nav .nav_area .head_recruit:after, header .head_flex .nav_wrap nav .nav_area .head_contact:after, header .head_flex .nav_wrap nav .nav_area .head_mynavi:after {
              right: 27px;
              width: 8px;
              height: 8px; }
            header .head_flex .nav_wrap nav .nav_area .head_recruit:hover:after, header .head_flex .nav_wrap nav .nav_area .head_contact:hover:after, header .head_flex .nav_wrap nav .nav_area .head_mynavi:hover:after {
              right: 21px;
              width: 20px;
              height: 20px;
              transition: 0.3s; }
          header .head_flex .nav_wrap nav .nav_area .head_recruit {
            background: #D62A14; }
            header .head_flex .nav_wrap nav .nav_area .head_recruit:before {
              border: 1px #FF8F0B solid; }
            header .head_flex .nav_wrap nav .nav_area .head_recruit:after {
              background: #FF8F0B; }
          header .head_flex .nav_wrap nav .nav_area .head_contact {
            background: #00479D; }
            header .head_flex .nav_wrap nav .nav_area .head_contact:before {
              border: 1px #59B4E2 solid; }
            header .head_flex .nav_wrap nav .nav_area .head_contact:after {
              background: #59B4E2; }
          header .head_flex .nav_wrap nav .nav_area .head_mynavi {
            background: #41B6F4; }
            header .head_flex .nav_wrap nav .nav_area .head_mynavi:before {
              border: 1px #00479D solid; }
            header .head_flex .nav_wrap nav .nav_area .head_mynavi:after {
              background: #00479D; }

/*header*/
header.on {
  position: fixed !important;
  top: 0 !important;
  background-color: rgba(255, 255, 255, 0.9);
  transition: 0.3s ease-in-out; }

.active header::before {
  display: none; }

@media only screen and (min-width: 768px) and (max-width: 1280px) {
  header .head_flex {
    /*nav_wrap*/ }
    header .head_flex .head_logo {
      width: 25%; }
    header .head_flex .nav_wrap {
      width: 70%;
      /*nav*/ }
      header .head_flex .nav_wrap .out_link {
        margin-bottom: 10px; }
        header .head_flex .nav_wrap .out_link .out_link_btn {
          font-size: calc(13px + 5 * (100vw - 768px) / 512); }
          header .head_flex .nav_wrap .out_link .out_link_btn i {
            font-size: calc(12px + 4 * (100vw - 768px) / 512); }
      header .head_flex .nav_wrap nav {
        /*nav_area*/ }
        header .head_flex .nav_wrap nav .nav_area {
          /*nav01*/ }
          header .head_flex .nav_wrap nav .nav_area ul.nav01 {
            /*li*/ }
            header .head_flex .nav_wrap nav .nav_area ul.nav01 li {
              margin-left: 5px; }
              header .head_flex .nav_wrap nav .nav_area ul.nav01 li a {
                font-size: calc(13px + 5 * (100vw - 768px) / 512);
                padding: 10px 5px; }
              header .head_flex .nav_wrap nav .nav_area ul.nav01 li:before {
                height: 3px; }
          header .head_flex .nav_wrap nav .nav_area .head_recruit, header .head_flex .nav_wrap nav .nav_area .head_contact, header .head_flex .nav_wrap nav .nav_area .head_mynavi {
            padding: 10px 20px;
            font-size: calc(17px + 5 * (100vw - 768px) / 512); }
            header .head_flex .nav_wrap nav .nav_area .head_recruit img, header .head_flex .nav_wrap nav .nav_area .head_contact img, header .head_flex .nav_wrap nav .nav_area .head_mynavi img {
              display: none; }
            header .head_flex .nav_wrap nav .nav_area .head_recruit:before, header .head_flex .nav_wrap nav .nav_area .head_recruit:after, header .head_flex .nav_wrap nav .nav_area .head_contact:before, header .head_flex .nav_wrap nav .nav_area .head_contact:after, header .head_flex .nav_wrap nav .nav_area .head_mynavi:before, header .head_flex .nav_wrap nav .nav_area .head_mynavi:after {
              display: none; }
            header .head_flex .nav_wrap nav .nav_area .head_recruit:hover, header .head_flex .nav_wrap nav .nav_area .head_contact:hover, header .head_flex .nav_wrap nav .nav_area .head_mynavi:hover {
              opacity: 0.7;
              transition: 0.3s; }

  /*header*/ }
@media screen and (max-width: 767px) {
  header {
    height: 12vw;
    /*sp_nav*/ }
    header .sp_nav {
      position: relative;
      height: 12vw;
      width: 100%;
      /*btn_nav*/
      /*g_nav_sp*/ }
      header .sp_nav .head_logo_sp {
        margin: 0;
        display: block;
        text-align: left;
        position: relative;
        z-index: 130;
        width: 100%;
        max-width: 50vw; }
        header .sp_nav .head_logo_sp img {
          width: 100%;
          margin: 2vw 0 0 2vw; }
      header .sp_nav .btn_nav,
      header .sp_nav .btn_nav a span {
        display: inline-block;
        transition: all .4s;
        box-sizing: border-box; }
      header .sp_nav .btn_nav {
        position: absolute;
        right: 0vw;
        top: 0vw;
        width: 12vw;
        height: 12vw;
        margin: 0;
        z-index: 120;
        cursor: pointer;
        background: #00479D;
        border-radius: 0 0 0 200px; }
        header .sp_nav .btn_nav span {
          position: absolute;
          left: 40%;
          width: 40%;
          height: 2px;
          background-color: #fff;
          border-radius: 3px; }
        header .sp_nav .btn_nav span:nth-of-type(1) {
          top: 3vw; }
        header .sp_nav .btn_nav span:nth-of-type(2) {
          top: 4.5vw; }
        header .sp_nav .btn_nav span:nth-of-type(3) {
          top: 6vw; }
      header .sp_nav .btn_nav a.active span:nth-of-type(1) {
        -webkit-transform: translateY(1.5vw) rotate(-45deg);
        transform: translateY(1.5vw) rotate(-45deg); }
      header .sp_nav .btn_nav a.active span:nth-of-type(2) {
        opacity: 0; }
      header .sp_nav .btn_nav a.active span:nth-of-type(3) {
        -webkit-transform: translateY(-1.5vw) rotate(45deg);
        transform: translateY(-1.5vw) rotate(45deg); }
      header .sp_nav nav.g_nav_sp {
        display: none;
        width: 100%;
        background: rgba(255, 255, 255, 0.4);
        -webkit-backdrop-filter: blur(20px);
        backdrop-filter: blur(20px);
        position: absolute;
        top: 0;
        left: 0;
        padding: 17vw 0 8vw;
        border-bottom: 1.2vw #00479D solid;
        z-index: 100;
        overflow: scroll;
        /*ul*/ }
        header .sp_nav nav.g_nav_sp ul {
          width: 90%;
          margin: 0 auto 8vw;
          padding: 0;
          font-size: 0;
          border-top: 1px #00479D solid;
          /*li*/ }
          header .sp_nav nav.g_nav_sp ul li {
            text-align: center;
            display: block;
            position: relative;
            border-bottom: 1px #00479D solid;
            /*h4*/ }
            header .sp_nav nav.g_nav_sp ul li h4 {
              margin: 0;
              padding: 0; }
              header .sp_nav nav.g_nav_sp ul li h4 a {
                display: block;
                color: #212121;
                text-align: center;
                width: 100%;
                font-size: 4vw;
                line-height: 1;
                box-sizing: border-box;
                padding: 6vw 0;
                position: relative;
                font-weight: 600; }
                header .sp_nav nav.g_nav_sp ul li h4 a:before, header .sp_nav nav.g_nav_sp ul li h4 a:after {
                  content: "";
                  position: absolute;
                  top: 50%;
                  transform: translateY(-50%);
                  border-radius: 50px;
                  transition: 0.3s;
                  transition: 0.3s; }
                header .sp_nav nav.g_nav_sp ul li h4 a:before {
                  right: 4vw;
                  width: 5vw;
                  height: 5vw;
                  border: 1px #59B4E2 solid; }
                header .sp_nav nav.g_nav_sp ul li h4 a:after {
                  right: 5.6vw;
                  width: 2vw;
                  height: 2vw;
                  background: #59B4E2; }
                header .sp_nav nav.g_nav_sp ul li h4 a:hover:after {
                  right: 4.2vw;
                  width: 5vw;
                  height: 5vw;
                  transition: 0.3s; }
        header .sp_nav nav.g_nav_sp .head_recruit, header .sp_nav nav.g_nav_sp .head_contact, header .sp_nav nav.g_nav_sp .head_mynavi {
          display: block;
          border-radius: 100px;
          font-size: 4vw;
          color: #fff;
          font-weight: 600;
          text-align: center;
          padding: 3vw 6vw;
          width: 90%;
          margin: 4vw auto 0;
          position: relative; }
          header .sp_nav nav.g_nav_sp .head_recruit img, header .sp_nav nav.g_nav_sp .head_contact img, header .sp_nav nav.g_nav_sp .head_mynavi img {
            position: absolute;
            top: 50%;
            left: 20px;
            transform: translateY(-50%); }
          header .sp_nav nav.g_nav_sp .head_recruit:before, header .sp_nav nav.g_nav_sp .head_recruit:after, header .sp_nav nav.g_nav_sp .head_contact:before, header .sp_nav nav.g_nav_sp .head_contact:after, header .sp_nav nav.g_nav_sp .head_mynavi:before, header .sp_nav nav.g_nav_sp .head_mynavi:after {
            content: "";
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            border-radius: 50px;
            transition: 0.3s; }
          header .sp_nav nav.g_nav_sp .head_recruit:before, header .sp_nav nav.g_nav_sp .head_contact:before, header .sp_nav nav.g_nav_sp .head_mynavi:before {
            right: 4vw;
            width: 5vw;
            height: 5vw; }
          header .sp_nav nav.g_nav_sp .head_recruit:after, header .sp_nav nav.g_nav_sp .head_contact:after, header .sp_nav nav.g_nav_sp .head_mynavi:after {
            right: 5.6vw;
            width: 2vw;
            height: 2vw; }
          header .sp_nav nav.g_nav_sp .head_recruit:hover:after, header .sp_nav nav.g_nav_sp .head_contact:hover:after, header .sp_nav nav.g_nav_sp .head_mynavi:hover:after {
            right: 4.2vw;
            width: 5vw;
            height: 5vw;
            transition: 0.3s; }
        header .sp_nav nav.g_nav_sp .head_recruit {
          background: #D62A14; }
          header .sp_nav nav.g_nav_sp .head_recruit:before {
            border: 1px #FF8F0B solid; }
          header .sp_nav nav.g_nav_sp .head_recruit:after {
            background: #FF8F0B; }
        header .sp_nav nav.g_nav_sp .head_contact {
          background: #00479D; }
          header .sp_nav nav.g_nav_sp .head_contact:before {
            border: 1px #59B4E2 solid; }
          header .sp_nav nav.g_nav_sp .head_contact:after {
            background: #59B4E2; }
        header .sp_nav nav.g_nav_sp .head_mynavi {
          background: #41B6F4; }
          header .sp_nav nav.g_nav_sp .head_mynavi:before {
            border: 1px #00479D solid; }
          header .sp_nav nav.g_nav_sp .head_mynavi:after {
            background: #00479D; } }
/*=====================================================
フッター
======================================================*/
footer {
  padding: 80px 0; }
  footer .foot_flex {
    display: -webkit-box;
    display: -moz-box;
    display: -ms-box;
    display: -webkit-flexbox;
    display: -moz-flexbox;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: flex;
    -webkit-box-lines: multiple;
    -moz-box-lines: multiple;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    align-items: flex-start;
    height: auto;
    justify-content: space-between; }
    footer .foot_flex .corp_info {
      width: 50%; }
      footer .foot_flex .corp_info .foot_address {
        font-size: 24px;
        margin-top: 20px; }
        footer .foot_flex .corp_info .foot_address strong {
          font-weight: 600;
          color: #00479D; }
    footer .foot_flex .foot_link {
      display: -webkit-box;
      display: -moz-box;
      display: -ms-box;
      display: -webkit-flexbox;
      display: -moz-flexbox;
      display: -ms-flexbox;
      display: -webkit-flex;
      display: -moz-flex;
      display: -ms-flex;
      display: flex;
      -webkit-box-lines: multiple;
      -moz-box-lines: multiple;
      -webkit-flex-wrap: wrap;
      -moz-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
      flex-wrap: wrap;
      align-items: flex-start;
      height: auto;
      justify-content: space-between;
      width: 45%; }
      footer .foot_flex .foot_link ul {
        width: 30%; }
        footer .foot_flex .foot_link ul li {
          margin-bottom: 20px; }
          footer .foot_flex .foot_link ul li a {
            color: #212121;
            font-size: 22px;
            font-weight: 600; }
            footer .foot_flex .foot_link ul li a:hover {
              text-decoration: underline; }
      footer .foot_flex .foot_link .rec_contact {
        display: -webkit-box;
        display: -moz-box;
        display: -ms-box;
        display: -webkit-flexbox;
        display: -moz-flexbox;
        display: -ms-flexbox;
        display: -webkit-flex;
        display: -moz-flex;
        display: -ms-flex;
        display: flex;
        -webkit-box-lines: multiple;
        -moz-box-lines: multiple;
        -webkit-flex-wrap: wrap;
        -moz-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        align-items: flex-start;
        height: auto;
        justify-content: space-between;
        width: 65%; }
        footer .foot_flex .foot_link .rec_contact a {
          width: 47%;
          padding-top: 47%;
          border-radius: 200px;
          font-size: 22px;
          font-weight: 600;
          color: #fff;
          position: relative; }
          footer .foot_flex .foot_link .rec_contact a .icon {
            position: absolute;
            top: 20%;
            left: 50%;
            width: 28.75%;
            transform: translateX(-50%);
            z-index: 2; }
          footer .foot_flex .foot_link .rec_contact a span {
            position: absolute;
            top: 52%;
            left: 0;
            text-align: center;
            width: 100%;
            z-index: 2; }
          footer .foot_flex .foot_link .rec_contact a:after {
            content: "";
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            width: 100%;
            height: 100%;
            border-radius: 200px; }
          footer .foot_flex .foot_link .rec_contact a.foot_rec {
            background: #D62A14; }
            footer .foot_flex .foot_link .rec_contact a.foot_rec:after {
              background: #D62A14; }
          footer .foot_flex .foot_link .rec_contact a.foot_contact {
            background: #00479D; }
            footer .foot_flex .foot_link .rec_contact a.foot_contact:after {
              background: #00479D; }
          footer .foot_flex .foot_link .rec_contact a:hover:after {
            opacity: 0;
            width: 120%;
            height: 120%;
            transition: 0.3s; }
    @media screen and (min-width: 768px) and (max-width: 1028px) {
      footer .foot_flex .corp_info {
        width: 100%;
        margin-bottom: 50px; }
      footer .foot_flex .foot_link {
        width: 70%; } }
  footer .copyright {
    text-align: right;
    font-size: 18px;
    color: #00479D;
    margin-top: 20px; }

/*footer*/
@media screen and (max-width: 767px) {
  footer {
    padding: 10vw 0; }
    footer .foot_flex .corp_info {
      width: 100%;
      text-align: center;
      margin-bottom: 6vw; }
      footer .foot_flex .corp_info .foot_address {
        font-size: 4vw;
        margin-top: 4vw; }
    footer .foot_flex .foot_link {
      display: -webkit-box;
      display: -moz-box;
      display: -ms-box;
      display: -webkit-flexbox;
      display: -moz-flexbox;
      display: -ms-flexbox;
      display: -webkit-flex;
      display: -moz-flex;
      display: -ms-flex;
      display: flex;
      -webkit-box-lines: multiple;
      -moz-box-lines: multiple;
      -webkit-flex-wrap: wrap;
      -moz-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
      flex-wrap: wrap;
      align-items: flex-start;
      height: auto;
      justify-content: center;
      width: 100%;
      text-align: center; }
      footer .foot_flex .foot_link ul {
        width: 100%;
        margin-bottom: 5vw; }
        footer .foot_flex .foot_link ul li {
          margin: 0 4vw 0;
          display: inline-block; }
          footer .foot_flex .foot_link ul li a {
            font-size: 4vw;
            text-decoration: underline; }
      footer .foot_flex .foot_link .rec_contact {
        width: 70%; }
        footer .foot_flex .foot_link .rec_contact a {
          font-size: 4vw; }
    footer .copyright {
      text-align: center;
      font-size: 3.6vw;
      margin-top: 6vw; }

  /*footer*/ }
/*=====================================================
事業案内ナビ
======================================================*/
.service_navi {
  background: #E0F3FC;
  position: relative;
  padding: 100px 0 50px;
  text-align: center; }
  .service_navi .s_navi_wrap {
    position: relative;
    z-index: 2;
    max-width: 1240px;
    width: 90%;
    margin: 0 auto; }
  .service_navi .l_ttl {
    color: #9EDBF7 !important;
    font-family: "Barlow Condensed", sans-serif;
    font-size: 90px;
    font-weight: 600;
    line-height: 0.8;
    margin-top: 30px;
    letter-spacing: 8px; }
  .service_navi h2 {
    color: #212121;
    font-size: 40px;
    font-weight: 700;
    margin: -30px 0 20px; }
  .service_navi ul.s_navi {
    display: -webkit-box;
    display: -moz-box;
    display: -ms-box;
    display: -webkit-flexbox;
    display: -moz-flexbox;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: flex;
    -webkit-box-lines: multiple;
    -moz-box-lines: multiple;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    align-items: flex-start;
    height: auto;
    justify-content: center;
    align-items: stretch;
    margin-top: 80px; }
    .service_navi ul.s_navi li {
      width: 19%;
      margin: 0 0.5%;
      background: #fff;
      border-radius: 6px;
      filter: drop-shadow(0 4px 0 #B2E5FF); }
      .service_navi ul.s_navi li a {
        display: block;
        position: relative;
        padding: 90px 10px 30px;
        line-height: 1.2;
        color: #00479D;
        font-size: 24px;
        font-weight: 600; }
        .service_navi ul.s_navi li a .icon {
          display: -webkit-box;
          display: -moz-box;
          display: -ms-box;
          display: -webkit-flexbox;
          display: -moz-flexbox;
          display: -ms-flexbox;
          display: -webkit-flex;
          display: -moz-flex;
          display: -ms-flex;
          display: flex;
          -webkit-box-lines: multiple;
          -moz-box-lines: multiple;
          -webkit-flex-wrap: wrap;
          -moz-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
          flex-wrap: wrap;
          align-items: flex-start;
          height: auto;
          justify-content: center;
          align-content: flex-end;
          width: 100%;
          height: 110px;
          position: absolute;
          top: -40px;
          left: 0; }
          .service_navi ul.s_navi li a .icon .illust01 {
            width: 80%; }
          .service_navi ul.s_navi li a .icon .illust02 {
            width: 40%; }
          .service_navi ul.s_navi li a .icon .illust03 {
            width: 60%; }
          .service_navi ul.s_navi li a .icon .illust04 {
            width: 40%; }
          .service_navi ul.s_navi li a .icon .illust05 {
            width: 40%; }
          .service_navi ul.s_navi li a .icon .illust06 {
            width: 40%; }
      @media screen and (min-width: 1081px) and (max-width: 1240px) {
        .service_navi ul.s_navi li a {
          font-size: 20px; } }
      @media screen and (min-width: 768px) and (max-width: 1080px) {
        .service_navi ul.s_navi li {
          width: 30%;
          margin: 0 1% 60px; }
          .service_navi ul.s_navi li a {
            font-size: 20px; } }
      .service_navi ul.s_navi li:hover {
        opacity: 0.7;
        transition: 0.3s; }

body.page_frp .s_navi .snavi_frp {
  display: none; }

body.page_aedr .service_navi {
  padding: 100px 0 500px; }

body.page_aedr .s_navi .snavi_aedr {
  display: none; }

body.page_print .s_navi .snavi_print {
  display: none; }

body.page_watertreatment .s_navi .snavi_watertreatment {
  display: none; }

body.page_device .s_navi .snavi_device {
  display: none; }

body.page_medicine .s_navi .snavi_medicine {
  display: none; }

@media screen and (max-width: 767px) {
  .service_navi {
    padding: 15vw 0 0vw; }
    .service_navi .l_ttl {
      font-size: 17vw;
      margin-top: -6vw;
      letter-spacing: 1.2vw; }
    .service_navi h2 {
      font-size: 7vw;
      margin: -6vw 0 4vw; }
    .service_navi ul.s_navi {
      margin-top: 13vw; }
      .service_navi ul.s_navi li {
        width: 48%;
        margin: 0 1% 10vw;
        border-radius: 1vw;
        filter: drop-shadow(0 0.8vw 0 #B2E5FF); }
        .service_navi ul.s_navi li a {
          padding: 16vw 2vw 5vw;
          font-size: 4.5vw; }
          .service_navi ul.s_navi li a .icon {
            top: -7vw; } }
/*=====================================================
コールtoアクション
======================================================*/
.cta {
  background: #E0F3FC;
  position: relative;
  padding-top: 100px;
  text-align: center; }
  .cta .cta_wrap {
    position: relative;
    z-index: 2;
    max-width: 1240px;
    width: 90%;
    margin: 0 auto; }
  .cta .l_ttl {
    color: #9EDBF7 !important;
    font-family: "Barlow Condensed", sans-serif;
    font-size: 120px;
    font-weight: 600;
    line-height: 0.8;
    margin-top: 30px;
    letter-spacing: 8px; }
  .cta h2 {
    color: #212121;
    font-size: 50px;
    font-weight: 700;
    margin: -30px 0 20px; }
  .cta .cta_txt {
    font-size: 20px;
    font-weight: 600;
    margin-bottom: 30px; }
  .cta .cta_flex {
    display: -webkit-box;
    display: -moz-box;
    display: -ms-box;
    display: -webkit-flexbox;
    display: -moz-flexbox;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: flex;
    -webkit-box-lines: multiple;
    -moz-box-lines: multiple;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    align-items: flex-start;
    height: auto;
    justify-content: space-between;
    background: #00479D;
    border-radius: 50px;
    padding: 70px;
    width: 100%; }
    .cta .cta_flex a {
      width: 49%;
      display: block;
      background: #fff;
      border-radius: 100px;
      height: 140px;
      position: relative;
      text-align: center; }
      .cta .cta_flex a .icon {
        position: absolute;
        left: 10px;
        top: -10px;
        width: 25%; }
      .cta .cta_flex a p {
        position: relative;
        z-index: 2; }
      .cta .cta_flex a.cta_tel {
        padding-left: 40px;
        color: #212121;
        padding-top: 25px; }
        .cta .cta_flex a.cta_tel strong {
          font-family: "Barlow Condensed", sans-serif;
          font-size: 60px;
          font-weight: 600;
          color: #00479D;
          line-height: 1; }
        .cta .cta_flex a.cta_tel:hover {
          opacity: 0.7;
          transition: 0.3s; }
      .cta .cta_flex a.cta_form {
        color: #00479D;
        font-size: 30px;
        padding-left: 40px;
        padding-top: 40px;
        font-weight: 600; }
        .cta .cta_flex a.cta_form:before, .cta .cta_flex a.cta_form:after {
          content: "";
          position: absolute;
          top: 50%;
          transform: translateY(-50%);
          border-radius: 50px;
          transition: 0.3s; }
        .cta .cta_flex a.cta_form:before {
          right: 35px;
          width: 34px;
          height: 34px;
          border: 2px #068CD3 solid; }
        .cta .cta_flex a.cta_form:after {
          right: 47px;
          width: 14px;
          height: 14px;
          background: #068CD3; }
        .cta .cta_flex a.cta_form:hover:after {
          right: 37px;
          width: 35px;
          height: 35px;
          transition: 0.3s; }
    @media screen and (min-width: 768px) and (max-width: 1150px) {
      .cta .cta_flex {
        padding: 40px 30px; }
        .cta .cta_flex a {
          padding-left: 0 !important; }
          .cta .cta_flex a .icon {
            display: none; }
          .cta .cta_flex a.cta_form:before, .cta .cta_flex a.cta_form:after {
            display: none; }
          .cta .cta_flex a.cta_form:hover {
            opacity: 0.7;
            transition: 0.3s; } }
  .cta:after {
    content: "";
    width: 100%;
    height: 150px;
    position: absolute;
    left: 0;
    bottom: 0;
    background: #fff;
    z-index: 1; }

#top .cta {
  background: none;
  margin-top: -470px; }

@media screen and (max-width: 767px) {
  .cta {
    padding-top: 20vw; }
    .cta .l_ttl {
      font-size: 25vw;
      margin-top: 6vw;
      letter-spacing: 1vw; }
    .cta h2 {
      font-size: 6.5vw;
      font-weight: 700;
      margin: -6vw 0 4vw; }
    .cta .cta_txt {
      font-size: 3.8vw;
      margin-bottom: 6vw; }
    .cta .cta_flex {
      border-radius: 8vw;
      padding: 8vw 6vw; }
      .cta .cta_flex a {
        width: 100%;
        height: 28vw;
        margin: 2vw 0; }
        .cta .cta_flex a .icon {
          position: absolute;
          left: 2vw;
          top: 50%;
          transform: translateY(-50%);
          width: 25%; }
        .cta .cta_flex a.cta_tel {
          padding-left: 8vw;
          padding-top: 5vw; }
          .cta .cta_flex a.cta_tel strong {
            font-size: 10vw; }
        .cta .cta_flex a.cta_form {
          font-size: 5vw;
          padding-left: 8vw;
          padding-top: 9vw; }
          .cta .cta_flex a.cta_form:before {
            right: 5vw;
            width: 6.8vw;
            height: 6.8vw;
            border: 2px #068CD3 solid; }
          .cta .cta_flex a.cta_form:after {
            right: 7.4vw;
            width: 2.8vw;
            height: 2.8vw; }
          .cta .cta_flex a.cta_form:hover:after {
            right: 5.35vw;
            width: 7vw;
            height: 7vw; }
    .cta:after {
      content: "";
      width: 100%;
      height: 150px;
      position: absolute;
      left: 0;
      bottom: 0;
      background: #fff;
      z-index: 1; }

  #top .cta {
    background: none;
    margin-top: -110vw; } }
/*=====================================================
共通
======================================================*/
.t_center {
  text-align: center; }

.t_right {
  text-align: right; }

.t_left {
  text-align: left; }

.contents_wrap {
  margin: 0 auto;
  width: 90%;
  max-width: 1240px;
  position: relative; }

.wrap78 {
  max-width: 780px;
  width: 90%;
  margin: 0 auto; }

.wrap98 {
  max-width: 980px;
  width: 90%;
  margin: 0 auto; }

#main_img {
  background: url("../img/common/bg_grid01.svg");
  height: 320px;
  text-align: center;
  position: relative;
  overflow: visible; }
  #main_img .page_ttl {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 120px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 8px;
    color: #fff;
    width: 100%;
    position: absolute;
    bottom: 60px;
    left: 0;
    z-index: 3; }
  #main_img h1 {
    font-size: 50px;
    font-weight: 600;
    color: #00479D;
    line-height: 1;
    width: 100%;
    position: absolute;
    bottom: 90px;
    left: 0;
    z-index: 3; }
  #main_img .illust {
    position: absolute;
    right: 5%;
    z-index: 2; }
  @media screen and (min-width: 768px) and (max-width: 1080px) {
    #main_img .illust {
      width: 15vw; } }

.breadcrumb {
  text-align: center;
  padding: 5px 0 70px; }
  .breadcrumb a {
    color: #068CD3;
    text-decoration: underline; }
    .breadcrumb a:hover {
      text-decoration: none; }

.btn_area .default_btn {
  display: inline-block;
  border-radius: 100px;
  font-size: 30px;
  color: #fff;
  font-weight: 600;
  text-align: center;
  padding: 15px 60px;
  position: relative;
  max-width: 450px;
  width: 90%;
  margin: 0 auto; }
  .btn_area .default_btn:before, .btn_area .default_btn:after {
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    border-radius: 50px;
    transition: 0.3s; }
  .btn_area .default_btn:before {
    right: 20px;
    width: 34px;
    height: 34px; }
  .btn_area .default_btn:after {
    right: 31px;
    width: 14px;
    height: 14px; }
  .btn_area .default_btn:hover:after {
    right: 21px;
    width: 34px;
    height: 34px;
    transition: 0.3s; }
  .btn_area .default_btn.middle {
    font-size: 24px;
    padding: 7px 40px;
    max-width: 300px; }
    .btn_area .default_btn.middle:before {
      right: 20px;
      width: 20px;
      height: 20px; }
    .btn_area .default_btn.middle:after {
      right: 27px;
      width: 8px;
      height: 8px; }
    .btn_area .default_btn.middle:hover:after {
      right: 21px;
      width: 20px;
      height: 20px; }
  .btn_area .default_btn.small {
    font-size: 18px;
    padding: 5px 30px;
    max-width: 200px; }
    .btn_area .default_btn.small:before {
      right: 15px;
      width: 18px;
      height: 18px; }
    .btn_area .default_btn.small:after {
      right: 22px;
      width: 6px;
      height: 6px; }
    .btn_area .default_btn.small:hover:after {
      right: 16px;
      width: 18px;
      height: 18px; }
  .btn_area .default_btn.blue {
    background: #59B4E2; }
    .btn_area .default_btn.blue:before {
      border: 1px #068CD3 solid; }
    .btn_area .default_btn.blue:after {
      background: #068CD3; }

@media screen and (max-width: 767px) {
  #main_img {
    height: 60vw; }
    #main_img .page_ttl {
      font-size: 20vw;
      letter-spacing: 0.6vw;
      bottom: 10vw; }
    #main_img h1 {
      font-size: 7vw;
      bottom: 15vw; }
    #main_img .illust {
      right: 1%;
      width: 15vw; }

  .btn_area .default_btn {
    font-size: 4.5vw;
    padding: 3vw 10vw; }
    .btn_area .default_btn:before {
      right: 4vw;
      width: 5vw;
      height: 5vw; }
    .btn_area .default_btn:after {
      right: 5.6vw;
      width: 2vw;
      height: 2vw; }
    .btn_area .default_btn:hover:after {
      right: 4.15vw;
      width: 5vw;
      height: 5vw;
      transition: 0.3s; }
    .btn_area .default_btn.middle {
      font-size: 4vw;
      padding: 1.4vw 8vw; }
      .btn_area .default_btn.middle:before {
        right: 4vw;
        width: 4vw;
        height: 4vw; }
      .btn_area .default_btn.middle:after {
        right: 5.3vw;
        width: 1.6vw;
        height: 1.6vw; }
      .btn_area .default_btn.middle:hover:after {
        right: 4.15vw;
        width: 4vw;
        height: 4vw; }
    .btn_area .default_btn.small {
      font-size: 3.2vw;
      padding: 1vw 6vw; }
      .btn_area .default_btn.small:before {
        right: 3vw;
        width: 3.6vw;
        height: 3.6vw; }
      .btn_area .default_btn.small:after {
        right: 4.3vw;
        width: 1.2vw;
        height: 1.2vw; }
      .btn_area .default_btn.small:hover:after {
        right: 3.15vw;
        width: 3.6vw;
        height: 3.6vw; } }
