@charset "utf-8";

.cont_img .photo_bg {
  background-image: url(../images/cont_img.jpg);
}


/*============================
#service_message
============================*/

#service_message {
  position: relative;
}

#service_message::after {
  position: absolute;
  content: '';
  background: url(../images/bg01.png)no-repeat center bottom;
  background-size: cover;
  width: 100%;
  height: 531px;
  bottom: 0;
  right: 0;
  z-index: -1;
}

#service_message .lead span {
  font-size: 35px;
}

#service_message p:nth-of-type(n+2) {
  margin-top: 50px;
}

@media only screen and (max-width: 768px) {

  #service_message .lead span {
    font-size: 22px;
  }

  #service_message p:nth-of-type(n+2) {
    margin-top: 20px;
  }
}


/*============================
#strengths
============================*/

#strengths {
  background: url(../images/bg02.png) no-repeat center bottom;
  background-size: cover;
  width: 100%;
  z-index: -1;
}

#strengths h2 {
  color: #fff;
}

#strengths .flex {
  align-items: stretch;
}

#strengths .flex:nth-of-type(n+2) {
  margin-top: 50px;
}

#strengths img {
  width: 420px;
  border-radius: 3px 0 0 3px;
}

#strengths .text {
  width: 620px;
  padding: 40px 30px;
  background-color: #fff;
  border-radius: 0 3px 3px 0;
}

#strengths h3 {
  margin-top: 0;
  padding-bottom: 15px;
  line-height: 1;
}

#strengths .flex:nth-of-type(2) h3 {
  color: #0a6973;
  border-bottom-color: #0a6973;
}

#strengths .flex:nth-of-type(3) h3 {
  color: #1ba5d2;
  border-bottom-color: #1ba5d2;
}

@media only screen and (max-width: 768px) {

  #strengths {
    background: url(../images/bg02_sp.png) no-repeat center bottom;
    background-size: cover;
  }

  #strengths .flex {
    align-items: normal;
  }

  #strengths .flex:nth-of-type(n+2) {
    margin-top: 20px;
  }

  #strengths img {
    width: 100%;
    border-radius: 3px 3px 0 0;
  }

  #strengths .text {
    width: 100%;
    padding: 6% 5%;
    border-radius: 0 0 3px 3px;
  }

  #strengths h3 {
    margin: 0 0 15px 0;
    padding: 0 0 10px 5px;
  }

  #strengths p {
    font-size: 15px;
    padding: 0 2px;
  }
}


/*============================
#about
============================*/

#about,
#about .inner {
  position: relative;
}

#about::after {
  position: absolute;
  content: '';
  background: url(../images/bg03.png)no-repeat center bottom;
  background-size: cover;
  width: 100%;
  height: 1147px;
  bottom: 0;
  right: 0;
  z-index: -2;
}

#about .img {
  width: 960px;
  position: absolute;
  top: 110px;
  left: -160px;
  z-index: 1;
}

#about .img img {
  width: 100%;
  position: relative;
  z-index: 2;
}

#about .text-box {
  padding-top: 260px;
}

#about .text {
  width: 720px;
  margin-top: 340px;
  margin-left: auto;
  background-color: rgba(255, 255, 255, 0.95);
  border-radius: 3px;
  padding: 60px 50px;
  position: relative;
  z-index: 3;
}

@media only screen and (max-width: 768px) {

  #about .img {
    width: 100%;
    top: 100px;
    left: -40px;
  }

  #about .text {
    width: 90%;
    margin-top: 50%;
    padding: 5%;
  }

  #about .text .lead {
    font-size: 18px;
  }
}


/*============================
#service
============================*/

#service {
  background-color: #f4f4f4;
}

#service .flex {
  align-items: stretch;
}

#service .box {
  width: 500px;
}

#service .box img {
  width: 100%;
  border-radius: 3px 3px 0 0;
}

#service .box .text {
  background-color: #fff;
  padding: 40px 30px;
  height: 275px;
  border-radius: 0 0 3px 3px;
  line-height: 26px;
}

#service .box .text h3 {
  margin: 0 0 20px 0;
  padding-bottom: 0;
  border: none;
  line-height: 1;
}

.container #service .box .text p:nth-of-type(n+2) {
  margin-top: 25px;
}

@media only screen and (max-width: 768px) {

  #service .flex {
    align-items: normal;
  }

  #service .box {
    width: 100%;
  }

  #service .box:last-of-type {
    margin-top: 20px;
  }

  #service .box .text {
    padding: 6% 5%;
    height: auto;
  }

  #service .box .text h3 {
    margin-bottom: 15px;
    font-size: 18px;
  }
}
