@charset "UTF-8";
/* font */
/* =====================
  pc
===================== */
/*  btn
------------------------*/
.btn {
  padding: 0.25rem 1rem;
  display: block;
  text-align: center;
  border-radius: 4px;
  vertical-align: top;
  box-sizing: border-box; }

@font-face {
  font-family: "Yu Gothic";
  src: local("Yu Gothic Medium");
  font-weight: 100; }
@font-face {
  font-family: "Yu Gothic";
  src: local("Yu Gothic Medium");
  font-weight: 200; }
@font-face {
  font-family: "Yu Gothic";
  src: local("Yu Gothic Medium");
  font-weight: 300; }
@font-face {
  font-family: "Yu Gothic";
  src: local("Yu Gothic Medium");
  font-weight: 400; }
@font-face {
  font-family: "Yu Gothic";
  src: local("Yu Gothic Bold");
  font-weight: bold; }
body {
  margin: 0;
  padding: 0;
  font-family: "游ゴシック", "遊ゴシック体", "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
  font-feature-settings: "palt" 1;
  font-size: 16px;
  line-height: 1.8;
  color: #2F3D65;
  letter-spacing: 0.05rem;
  animation: fadeIn 3s ease 0s 1 normal;
  -webkit-animation: fadeIn 3s ease 0s 1 normal; }

ul li {
  list-style: none; }

h1, h2, h3, h4, h5, h6 {
  margin: 0;
  padding: 0;
  font-weight: bold; }

img {
  vertical-align: middle; }

a {
  display: block;
  text-decoration: none;
  color: #2F3D65;
  outline: none; }
  a:hover {
    opacity: .8; }
  a:focus {
    outline: none; }

dl, dt, dd {
  margin: 0;
  padding: 0;
  box-sizing: border-box; }

.layout-100vh {
  width: 100%;
  margin: 0 auto; }
  @media only screen and (max-width: 767px) {
    .layout-100vh {
      width: 100%; } }

.layout-1020 {
  width: 100%;
  max-width: 1020px;
  margin: 0 auto; }
  @media only screen and (max-width: 767px) {
    .layout-1020 {
      width: 94%;
      max-width: 94%; } }

/* =====================
  pc
===================== */
/*  common >
------------------------*/
@media only screen and (min-width: 800px) {
  .is-sp {
    display: none !important; } }
/* =====================
  tablet
===================== */
/*  common >
------------------------*/
@media only screen and (max-width: 799px) {
  .is-pc {
    display: none !important; } }
/* header */
.header {
  position: fixed;
  top: 0;
  width: 100%;
  height: 4.5rem;
  padding: 0;
  margin: 0 auto;
  z-index: 999;
  box-sizing: border-box; }
  .header .header_inner {
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 1rem;
    box-sizing: border-box;
    white-space: nowrap; }
    .header .header_inner .header_logo {
      display: inline-block;
      width: 200px;
      margin: 1rem 0 0 0;
      text-align: left;
      vertical-align: top;
      letter-spacing: normal;
      white-space: normal; }
      .header .header_inner .header_logo img {
        width: 100%; }
    .header .header_inner .header_gNav {
      display: inline-block;
      width: calc(100% - 200px);
      text-align: right;
      margin: 0.75rem 0 0 0;
      vertical-align: top;
      white-space: normal; }
      .header .header_inner .header_gNav ul {
        width: 100%;
        margin: 0; }
        .header .header_inner .header_gNav ul li {
          display: inline-block;
          margin: 0 2rem 0 0;
          font-size: 0.875rem;
          font-weight: bold;
          vertical-align: middle; }
          .header .header_inner .header_gNav ul li:last-of-type {
            margin: 0; }

.contact-btn {
  display: inline-block;
  height: 3rem;
  padding: 1rem 1.5rem;
  background: #0081FF;
  box-sizing: border-box;
  line-height: 1rem;
  vertical-align: middle;
  color: #ffffff;
  font-weight: bold;
  font-size: 0.875rem;
  text-align: center; }

.header-after {
  background-color: #ffffff; }

.contents {
  margin: -4.5rem 0 0 0; }
  .contents .wrap h1, .contents .wrap h2 {
    font-size: 2.75rem; }
  .contents .wrap h3 {
    font-size: 2rem; }
  .contents .wrap h4 {
    font-size: 1.25rem; }
  .contents .wrap:before {
    position: absolute;
    top: 48rem;
    right: -1.5rem;
    display: block;
    width: 242px;
    height: 784px;
    background-size: cover;
    background-repeat: none;
    background-position: center center;
    background-image: url("/assets/img/top/img-problem-ttlPop.png");
    z-index: -1;
    content: ''; }
  .contents .wrap:after {
    position: absolute;
    top: 108rem;
    left: -1rem;
    display: block;
    width: 241px;
    height: 791px;
    background-size: cover;
    background-repeat: none;
    background-position: center center;
    background-image: url("/assets/img/top/img-service-ttlPop.png");
    z-index: -1;
    content: ''; }

.topConcept-sec {
  position: relative;
  padding: 15rem 0 8rem 0;
  background-color: #66D6FF;
  z-index: 2; }
  .topConcept-sec h1 {
    line-height: 1.3; }
  .topConcept-sec p {
    font-size: 1.25rem;
    margin: 1rem 0 2rem 0; }
  .topConcept-sec:before {
    position: absolute;
    top: 8rem;
    left: -1rem;
    display: block;
    width: 1374px;
    height: 241px;
    background-size: cover;
    background-repeat: none;
    background-position: center center;
    background-image: url("/assets/img/top/img-mainBg.png");
    z-index: -1;
    content: ''; }
  .topConcept-sec:after {
    position: absolute;
    top: 8rem;
    right: 6rem;
    display: block;
    width: 632px;
    height: 483px;
    background-size: cover;
    background-repeat: none;
    background-position: center center;
    background-image: url("/assets/img/top/img-main.png");
    z-index: 1;
    content: ''; }
  .topConcept-sec .contact-btn {
    font-size: 1.125rem;
    padding: 1.5rem 3rem;
    height: 100% !important; }

.problem-sec {
  position: relative;
  margin: 8rem 0 0 0; }
  .problem-sec h2, .problem-sec h3, .problem-sec p {
    text-align: center; }
  .problem-sec .problem-block {
    position: relative;
    margin: 6rem 0 0 0; }
    .problem-sec .problem-block p {
      font-size: 1.25rem; }
    .problem-sec .problem-block ul {
      width: max-content;
      margin: 1.5rem auto 0;
      padding: 0;
      font-size: 1.25rem; }
    .problem-sec .problem-block:first-of-type {
      margin: 3rem 0 0 0; }
      .problem-sec .problem-block:first-of-type:after {
        position: absolute;
        top: -2rem;
        right: 1rem;
        display: block;
        width: 218px;
        height: 201px;
        background-size: cover;
        background-repeat: none;
        background-position: center center;
        background-image: url("/assets/img/top/img-problem01.png");
        z-index: -1;
        content: ''; }
    .problem-sec .problem-block:last-of-type:after {
      position: absolute;
      top: -12rem;
      left: -6rem;
      display: block;
      width: 384px;
      height: 319px;
      background-size: cover;
      background-repeat: none;
      background-position: center center;
      background-image: url("/assets/img/top/img-problem02.png");
      z-index: -1;
      content: ''; }

.service-sec {
  position: relative;
  margin: 12rem 0 0 0; }
  .service-sec h2 {
    text-align: center; }
  .service-sec p {
    display: block;
    width: 88%;
    margin: 2rem auto 0;
    font-size: 1.25rem; }
  .service-sec .service-supplement {
    display: block;
    margin: 2rem 2rem 0;
    font-size: 0.875rem; }
  .service-sec ul {
    width: 100%;
    margin: 0;
    padding: 0; }
    .service-sec ul li {
      text-align: center;
      display: inline-block;
      width: 30%;
      margin: 5% 4% 0 0; }
      .service-sec ul li:last-of-type, .service-sec ul li:nth-child(3n) {
        margin: 0; }
      .service-sec ul li h4 {
        width: 80%;
        text-align: left;
        margin: 1rem auto 0; }
      .service-sec ul li ul {
        width: 80%;
        margin: 0.5rem auto 0;
        padding: 0; }
        .service-sec ul li ul li {
          position: relative;
          width: 100%;
          text-align: left !important;
          display: block;
          margin: 0;
          padding: 0 0 0 1rem;
          vertical-align: top;
          font-size: 1rem; }
          .service-sec ul li ul li:before {
            display: block;
            position: absolute;
            left: 0;
            content: '・'; }
  .service-sec img {
    width: 70%; }

.message-sec {
  position: relative;
  margin: 6em 0 0 0; }
  .message-sec h2 {
    text-align: center; }
  .message-sec p {
    display: block;
    width: 90%;
    margin: 2rem auto 0;
    font-size: 1.25rem; }
  .message-sec .leader-message {
    width: 92%;
    margin: 4rem auto 0; }
    .message-sec .leader-message .leader-message-img {
      display: inline-block;
      width: 20%;
      vertical-align: top; }
      .message-sec .leader-message .leader-message-img img {
        width: 100%; }
    .message-sec .leader-message .leader-message-txt {
      display: inline-block;
      width: calc(79% - 1.5rem);
      margin: 0 0 0 1.5rem;
      vertical-align: top; }
      .message-sec .leader-message .leader-message-txt h4 {
        margin: -0.5rem 0 1rem 0; }
      .message-sec .leader-message .leader-message-txt p {
        width: 100%;
        margin: 0;
        font-size: 1rem; }

.contact-sec {
  width: 100%;
  background-color: #0081FF;
  margin: 6rem 0 0 0;
  padding: 4rem 0;
  box-sizing: border-box; }
  .contact-sec .contact-area {
    width: 100%;
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
    color: #ffffff; }
    .contact-sec .contact-area .contact-btn {
      margin: 1rem 0 0 0;
      padding: 1.5rem 3rem;
      height: 100% !important;
      background-color: #ffffff;
      color: #0081FF;
      font-size: 1.125rem;
      border-radius: 4px; }

/* header */
.footer {
  background: #ffffff;
  top: 0;
  width: 100%;
  height: 4.5rem;
  padding: 0;
  margin: 0 auto;
  z-index: 999;
  box-sizing: border-box; }
  .footer .footer_block {
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 1rem;
    box-sizing: border-box;
    white-space: nowrap; }
    .footer .footer_block .footer_logo {
      display: inline-block;
      width: 200px;
      margin: 4rem 0 0 0;
      text-align: left;
      vertical-align: top;
      letter-spacing: normal;
      white-space: normal; }
      .footer .footer_block .footer_logo img {
        width: 100%; }
    .footer .footer_block .footer_nav {
      display: inline-block;
      width: calc(100% - 200px);
      text-align: right;
      margin: 0.75rem 0 0 0;
      vertical-align: top;
      white-space: normal; }
      .footer .footer_block .footer_nav ul {
        width: 100%;
        margin: 0; }
        .footer .footer_block .footer_nav ul li {
          display: inline-block;
          margin: 0 2rem 0 0;
          font-size: 0.875rem;
          font-weight: bold;
          vertical-align: middle; }
          .footer .footer_block .footer_nav ul li img {
            width: 120px; }
          .footer .footer_block .footer_nav ul li:last-of-type {
            margin: 0; }

.contact-btn {
  display: inline-block;
  height: 3rem;
  padding: 1rem 1.5rem;
  background: #0081FF;
  box-sizing: border-box;
  line-height: 1rem;
  border-radius: 4px;
  vertical-align: middle;
  font-weight: bold;
  font-size: 0.875rem;
  text-align: center; }
  .contact-btn a {
    color: #ffffff; }

.footer_copyright {
  font-size: 0.75rem;
  text-align: center; }
