.top-image {
  background-image: url("../images/img_top.webp");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}
.top-image .inner p {
  color: #ffffff;
  line-height: 2;
}
.top-image .inner p.catch-lead {
  font-weight: bold;
}

@media (min-width: 769px) {
  .top-image {
    height: 500px;
  }
  .top-image .inner {
    width: 1100px;
    padding: 130px 0 0;
    margin: 0 auto;
  }
  .top-image .inner p.catch-lead {
    font-size: 40px;
    margin: 0 0 50px 0;
  }
  .top-image .inner p.catch-sub {
    font-size: 16px;
  }
}
@media (max-width: 768px) {
  .top-image {
    height: 500px;
  }
  .top-image .inner {
    padding: 100px 20px;
  }
  .top-image .inner p.catch-lead {
    font-size: 30px;
    margin: 0 0 50px 0;
  }
  .top-image .inner p.catch-sub {
    font-size: 14px;
  }
}
.aboutus .about {
  width: 100%;
  background: #ffffff;
  -webkit-box-shadow: 0 0 15px 5px rgba(0, 0, 0, 0.08);
          box-shadow: 0 0 15px 5px rgba(0, 0, 0, 0.08);
  line-height: 2;
}

@media (min-width: 769px) {
  .aboutus .about {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    padding: 50px;
  }
  .aboutus .about .text {
    width: 60%;
    padding: 0 100px 0 0;
  }
  .aboutus .about .text h3 {
    font-size: 30px;
    margin: 0 0 40px 0;
  }
  .aboutus .about .image {
    width: 40%;
  }
}
@media (max-width: 768px) {
  .aboutus .about {
    padding: 30px;
  }
  .aboutus .about .text {
    margin: 0 0 30px 0;
  }
  .aboutus .about .text h3 {
    font-size: 21px;
    margin: 0 0 30px 0;
  }
}
.service {
  background: #f5f5f5;
}
.service ul li {
  background: #ffffff;
  text-align: center;
  line-height: 2;
}
.service ul li p {
  text-align: left;
}

@media (min-width: 769px) {
  .service {
    background: #f5f5f5;
  }
  .service ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .service ul li {
    width: 31%;
    padding: 50px;
    margin: 0 0 40px 0;
  }
  .service ul li img {
    width: 150px;
  }
  .service ul li h3 {
    font-size: 20px;
    margin: 30px 0;
  }
}
@media (max-width: 768px) {
  .service {
    background: #f5f5f5;
  }
  .service ul li {
    padding: 30px;
    margin: 0 0 30px 0;
  }
  .service ul li h3 {
    font-size: 18px;
    margin: 20px 0;
  }
}
.flow {
  background-image: url("../images/bg_flow.webp");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}
.flow ul li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: #ffffff;
  -webkit-box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.08);
          box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.08);
}
.flow ul li .text {
  width: 65%;
}
.flow ul li .text h3 {
  color: #333333;
  border-bottom: 2px dotted #ccc;
  margin: 0 0 20px 0;
  position: relative;
}
.flow ul li .text h3 span.num {
  color: #4a90e2;
}
.flow ul li .text h3 span.title {
  position: absolute;
}
.flow ul li .text p {
  line-height: 2;
}
.flow ul li .image {
  width: 25%;
}

@media (min-width: 769px) {
  .flow {
    background-attachment: fixed;
  }
  .flow ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .flow ul li {
    width: 48%;
    padding: 40px;
    margin: 0 0 40px 0;
  }
  .flow ul li h3 {
    padding: 0 0 10px 0;
  }
  .flow ul li h3 span.num {
    font-size: 46px;
  }
  .flow ul li h3 span.title {
    font-size: 22px;
    bottom: 14px;
    left: 40px;
  }
}
@media (max-width: 768px) {
  .flow ul li {
    padding: 25px;
    margin: 0 0 30px 0;
  }
  .flow ul li h3 {
    padding: 0 0 5px 0;
  }
  .flow ul li h3 span.num {
    font-size: 36px;
  }
  .flow ul li h3 span.title {
    font-size: 18px;
    bottom: 9px;
    left: 35px;
  }
}
.case ul li {
  margin: 0 0 50px 0;
}
.case ul li > a {
  display: block;
  -webkit-box-shadow: 0 3px 15px rgba(0, 0, 0, 0.2);
          box-shadow: 0 3px 15px rgba(0, 0, 0, 0.2);
}
.case ul li p {
  line-height: 1.5;
  margin: 20px 0 0 0;
}
.case ul li p a {
  font-size: 16px;
  font-weight: bold;
}

@media (min-width: 769px) {
  .case ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .case ul li {
    width: 30%;
  }
  .case ul li > a {
    overflow: hidden;
  }
  .case ul li > a img {
    -webkit-transition: all 300ms 0s ease;
    transition: all 300ms 0s ease;
  }
  .case ul li > a img:hover {
    -webkit-transform: scale(1.1);
            transform: scale(1.1);
  }
  .case ul li p a:hover {
    text-decoration: underline;
  }
}
@media (max-width: 768px) {
  .case ul li > a img {
    width: 100%;
    height: auto;
  }
}
.contact {
  background-image: url("../images/bg_contact.webp");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}
.contact h2 {
  color: #ffffff;
}
.contact .inner {
  text-align: center;
  color: #ffffff;
}
.contact .inner .tel h3,
.contact .inner .mail h3 {
  font-weight: normal;
}
.contact .inner .tel a,
.contact .inner .mail a {
  color: #ffffff;
  font-weight: bold;
  background-repeat: no-repeat;
  background-position: left top;
}
.contact .inner .tel a {
  background-image: url("../images/icon_tel.svg");
}
.contact .inner .mail a {
  background-image: url("../images/icon_mail.svg");
}

@media (min-width: 769px) {
  .contact .inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  .contact .inner .tel,
  .contact .inner .mail {
    width: 50%;
    padding: 0 30px;
  }
  .contact .inner .tel h3,
  .contact .inner .mail h3 {
    font-size: 20px;
    margin: 0 0 30px 0;
  }
  .contact .inner .tel a,
  .contact .inner .mail a {
    font-size: 32px;
    background-size: 36px;
    padding: 0 0 0 45px;
  }
}
@media (max-width: 768px) {
  .contact .inner .tel h3,
  .contact .inner .mail h3 {
    font-size: 16px;
    margin: 0 0 20px 0;
  }
  .contact .inner .tel a,
  .contact .inner .mail a {
    font-size: 26px;
    background-size: 26px;
    padding: 0 0 0 35px;
  }
  .contact .inner .tel {
    margin: 0 0 50px 0;
  }
}