@import url(common.css);

.header {
  position: fixed;
  width: 100%;
  z-index: 99;
  background: white;
}
.header .flex {
  justify-content: space-between;
  align-items: center;
}
.header .flex .flex-left {
  margin-left: 1.5rem;
}
.header .flex .flex-left h1 img {
  width: 105%;
}
.header .flex .flex-right {
  width: 80%;
}
.header .flex .flex-right .list .flex {
  justify-content: flex-end;
  align-items: center;
}
.header .flex .flex-right .list .flex li {
  font-size: 1.4rem;
  text-align: center;
  margin-left: 2%;
}
.header .flex .flex-right .list .flex li:first-child {
  margin-left: 0;
}
.header .flex .flex-right .list .flex li:nth-last-child(2) {
  margin-left: 0;
}
.header .flex .flex-right .list .flex li:last-child {
  background: #edf1f5;
  text-align: left;
  margin-left: 0;
  padding: .3rem 2rem;
}
.header .flex .flex-right .list .flex li.tel a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  align-content: center;
  width: 156px;
  height: 50px;
  background: linear-gradient(90deg, #027ADD 0%, #33B1FF 100%);
  color: white;
  font-size: 1.8rem;
  line-height: 1.8rem;
}
.header .flex .flex-right .list .flex li.tel a span {
  font-size: 1.4rem;
}
.header .flex .flex-right .list .flex li.tel a:before {
  content: "";
  padding: 9px 9px;
  background: url("../img/tel-icon.png") no-repeat;
  margin: 4px 2px 0 0;
}
.header .flex .flex-right .list .flex li.contact a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 150px;
  height: 50px;
  background: #ff6926;
  background: linear-gradient(90deg, #ff6926 0%, #ff8c25 40%, #ff9721 80%, #ebb500 100%);
  color: white;
  letter-spacing: 0;
}
.header .flex .flex-right .list .flex li.contact a:hover, .header .flex .flex-right .list .flex li.tel a:hover {
  color: white;
  opacity: 0.7;
}
.header .flex .flex-right .list .flex li a {
  color: #1d3b51;
}
.header .flex .flex-right .list .flex li a:hover {
  color: #bad0dc;
}

.inner {
  width: 110rem;
  margin: 0 auto;
}

.anchor {
  display: block;
  padding-top: -50px;
  margin-top: 50px;
}

.mainv {
  background: url(../img/mainv-image.png) no-repeat;
  background-position: left -150px bottom;
  position: relative;
  padding-top: 5rem;
}
@media (max-width: 750px) {
  .mainv {
    background: url(../img/mainv-image-sp.png) no-repeat;
    background-position: center bottom -10rem;
  }
}
.mainv .mainv_contents {
  width: calc(100% - 500px);
  margin-left: 500px;
  padding: 100px 0 70px;
  background: url(../img/mainv-bg.png) no-repeat;
  background-position: left;
  background-size: cover;
}
@media (max-width: 750px) {
  .mainv .mainv_contents {
    width: auto;
    margin-left: 0;
    padding: 40px 0 20px;
    background: url(../img/mainv-bg-sp.png) no-repeat;
    background-position: center top -14rem;
    background-size: contain;
  }
}
.mainv .mainv_inner {
  width: 640px;
  margin: auto;
  padding-left: 150px;
  position: relative;
}
@media (max-width: 750px) {
  .mainv .mainv_inner {
    width: 90%;
    margin: 0 auto;
    padding-left: 0;
  }
}
.mainv .mainv_inner:before, .mainv .mainv_inner:after {
  position: absolute;
  content: "";
}
@media (max-width: 750px) {
  .mainv .mainv_inner:before, .mainv .mainv_inner:after {
    content: none;
  }
}
.mainv .mainv_inner:before {
  background: url(../img/scroll-border.png) no-repeat;
  width: 2rem;
  height: 26.4rem;
  bottom: -60px;
  right: -2%;
  z-index: 2;
}
.mainv .mainv_inner:after {
  z-index: 3;
  background: url(../img/scroll.png) no-repeat;
  width: 1.9rem;
  height: 1.9rem;
  bottom: 18.5rem;
  right: -0.7%;
  animation: fuwafuwa 6s infinite;
}
.mainv .catch {
  max-width: 1100px;
  margin-bottom: 60px;
  color: #1d3b51;
  letter-spacing: 0;
  position: relative;
}
@media (max-width: 750px) {
  .mainv .catch {
    margin-bottom: 100px;
  }
}
.mainv .catch .catch_copy {
  margin-bottom: 1.5rem;
  font-size: 2.6rem;
  font-weight: bold;
}
@media (max-width: 750px) {
  .mainv .catch .catch_copy {
    font-size: 3.5rem;
    text-align: center;
  }
}
.mainv .catch .catch_copy span {
  background: linear-gradient(rgba(0, 0, 0, 0) 65%, #fdf680 65%);
}
.mainv .catch h2 {
  font-size: 5.0rem;
  font-weight: bold;
  line-height: 1.3;
}
@media (max-width: 750px) {
  .mainv .catch h2 {
    font-size: 5.5rem;
  }
}
.mainv .catch .catch_feature {
  margin: 1.5rem 0 2.5rem;
  font-weight: bold;
}
@media (max-width: 750px) {
  .mainv .catch .catch_feature {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    margin: 2.5rem 0;
    font-size: 2.8rem;
    text-align: center;
  }
}
.mainv .catch .catch_feature span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 3px 15px;
  border: 1px solid #1d3b51;
  box-sizing: border-box;
}
@media (max-width: 750px) {
  .mainv .catch .catch_feature span {
    padding: 6px 15px;
  }
  .mainv .catch .catch_feature span:first-child {
    width: 370px;
  }
  .mainv .catch .catch_feature span:last-child {
    width: 280px;
  }
}
.mainv .catch .catch_feature span:not(:last-child) {
  margin-right: 15px;
}
.mainv .catch .catch_desc {
  font-size: 1.5rem;
  line-height: 1.8;
  letter-spacing: 0.1rem;
}
@media (max-width: 750px) {
  .mainv .catch .catch_desc {
    font-size: 3.4rem;
    font-weight: 500;
    position: relative;
  }
}
.mainv .btn_wrap {
  display: inline-flex;
  align-items: center;
}
@media (max-width: 750px) {
  .mainv .btn_wrap {
    display: flex;
    flex-direction: column-reverse;
    align-items: flex-start;
  }
}
.mainv .btn_wrap .btn_comment {
  margin-left: 25px;
  color: #1d3b51;
  font-size: 1.4rem;
  font-weight: bold;
  letter-spacing: 0;
}
@media (max-width: 750px) {
  .mainv .btn_wrap .btn_comment {
    display: inline-flex;
    align-items: center;
    color: #1d3b51;
    font-size: 2.8rem;
  }
}
.mainv .btn_wrap .btn_comment:before, .mainv .btn_wrap .btn_comment:after {
  content: "";
  display: block;
  width: 55px;
  height: 15px;
  background-position: center;
  background-size: contain;
}
@media (max-width: 750px) {
  .mainv .btn_wrap .btn_comment:before, .mainv .btn_wrap .btn_comment:after {
    width: 30px;
    height: 15px;
  }
}
.mainv .btn_wrap .btn_comment:before {
  margin-bottom: 5px;
  background: url(../img/comment_top.png) no-repeat;
}
@media (max-width: 750px) {
  .mainv .btn_wrap .btn_comment:before {
    background: url(../img/comment_left_sp.png) no-repeat;
  }
}
.mainv .btn_wrap .btn_comment:after {
  margin-top: 5px;
  background: url(../img/comment_bottom.png) no-repeat;
}
@media (max-width: 750px) {
  .mainv .btn_wrap .btn_comment:after {
    background: url(../img/comment_right_sp.png) no-repeat;
  }
}
.mainv .serif {
  display: inline-flex;
  align-items: flex-start;
  justify-content: center;
  position: absolute;
  left: 5%;
  top: 590px;
  width: 162px;
  height: 80px;
  padding-top: 20px;
  background: url(../img/serif_bg.png) no-repeat;
  background-position: center top;
  color: #1d3b51;
  font-size: 1.1rem;
  letter-spacing: 0;
  visibility: hidden;
}
@media (max-width: 750px) {
  .mainv .serif {
    display: none;
  }
}
.mainv .loop-slider {
  width: 100%;
  background: rgba(255, 255, 255, 1);
  padding: .9rem 0;
  width: 100%;
  height: auto;
  box-sizing: border-box;
  overflow: hidden;

}
.mainv .loop-slider img {
  width: 25.3rem;
  vertical-align: middle;
}

@keyframes fuwafuwa {
  0% {
    transform: translateY(0px);
  }

  50% {
    transform: translateY(23rem);
  }

  100% {
    transform: translateY(0px);
  }
}

/**
 * #about block
 */
#about {
  background: var(--navy10);
}
#about .bg {
  background: url(../img/about-bg.png) no-repeat;
  background-size: cover;
  width: 100%;
  margin: 0 auto;
  padding: 111px 0 0 0;
}
#about .bg h3 {
  text-align: center;
}
#about .bg .txt {
  color: var(--white);
  max-width: 1100px;
  margin: 33px auto 0;
}
#about .bg .txt ul {
  background: var(--dark-blue80);
  font-size: 2.6rem;
}
#about .bg .txt ul strong {
  font-size: 3.2rem;
}
#about .bg .txt ul li {
  padding: 24px 32px 0 calc(32px + 16px + 32px);
}
#about .bg .txt ul li:first-child {
  padding-top: 56px;
}
#about .bg .txt ul li:last-child {
  padding-bottom: 56px;
}
#about .bg .txt ul li:before {
  content:"";
  background: url("../img/confirmation.svg") no-repeat;
  padding: 16px;
  position: absolute;
  margin: 12px 0 0 calc(-32px - 16px);
}
#about .bg .txt p {
  font-size: 2.8rem;
  font-weight: bold;
  text-align: center;
  padding: 42px 0;
  background: var(--navy);
}
#about .bg .txt p strong {
  font-size: 3.2rem;
}
@media(max-width: 750px) {
  #about .bg {
    background: url(../img/about-bg-sp.png) no-repeat;
    background-size: contain;
    padding-top: 96px;
  }
  #about .bg h3 {
    text-align: left;
    width: 670px;
    margin: 0 auto;
  }
  #about .bg .txt {
    max-width: 670px;
    margin: 96px auto 0;
  }
  #about .bg .txt ul {
    font-size: 2.8rem;
  }
  #about .bg .txt ul strong {
    font-size: 3.2rem;
  }
  #about .bg .txt ul li {
    padding: 32px 24px 0 calc(32px + 16px + 24px);
  }
  #about .bg .txt ul li:first-child {
    padding-top: 48px;
  }
  #about .bg .txt ul li:last-child {
    padding-bottom: 48px;
  }
  #about .bg .txt p {
    font-size: 4.0rem;
    font-weight: bold;
    text-align: center;
    padding: 28px 0 37px 0;
  }
  #about .bg .txt p strong {
    font-size: 4.8rem;
  }
}

/**
 * #merit block
 */
#merit {
  background: var(--navy10);
  padding: 106px 0;
}
#merit h3 {
  position: relative;
  text-align: center;
}
#merit h3:before {
  content: "";
  width: 160px;
  height: 2px;
  display: inline-block;
  position: absolute;
  top: 50%;
  transform: translateX(-210px);
  background: var(--navy);
}
#merit h3:after {
  content: "";
  width: 160px;
  height: 2px;
  display: inline-block;
  position: absolute;
  top: 50%;
  transform: translateX(47px);
  background: var(--navy);
}
#merit ul.flex {
  justify-content: space-around;
  align-items: flex-start;
}
#merit ul li {
  width: 340px;
  height: 380px;
  text-align: center;
  margin-top: 68px;
}
#merit ul li dl dt {
  width: 242px;
  height: 265px;
  margin: 0 auto;
  position: relative;
}
#merit ul li dl dt p {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-40%) translateX(-50%);
  width: 100%;
  color: var(--navy);
  font-size: 2.8rem;
}
#merit ul li dl dt p strong{
  font-weight: bold;
}
#merit ul li dl dt p span.small {
  font-size: 2.4rem;
}
#merit ul li:nth-child(1) dl dt {
  background: url("../img/merit01.svg") no-repeat;
  background-size: 100% 100%;
}
#merit ul li:nth-child(2) dl dt {
  background: url("../img/merit02.svg") no-repeat;
  background-size: 100% 100%;
}
#merit ul li:nth-child(3) dl dt {
  background: url("../img/merit03.svg") no-repeat;
  background-size: 100% 100%;
}
#merit ul li dl dd {
  margin-top: 30px;
  font-size: 1.5rem;
  color: var(--navy);
  text-align: left;
}
#merit .btn_wrap {
  margin-top: 100px;
}
#merit .btn_wrap p {
  color: var(--blue);
  font-size: 2.2rem;
  position: relative;
}
#merit .btn_wrap p:before {
  content: "";
  width: 28px;
  height: 39px;
  background: linear-gradient(60deg, transparent 45.3%, var(--blue) 45.3%, var(--blue) 49.6%, transparent 48%);
  position: absolute;
  transform: translateX(calc(-28px - 12px)) translateY(34px);
}
#merit .btn_wrap p:after {
  content: "";
  width: 28px;
  height: 39px;
  background: linear-gradient(300deg, transparent 45.3%, var(--blue) 45.3%, var(--blue) 49.6%, transparent 48%);
  position: absolute;
  transform: translateX(12px) translateY(0);
}
#merit .btn_wrap a {
  margin-top: 28px;
}
@media(max-width: 750px) {
  #merit {
    padding: 108px 0 100px 0;
  }
  #merit h3:before {
    display: none;
  }
  #merit h3:after {
    display: none;
  }
  #merit ul.flex {
    flex-direction: column;
    align-items: center;
  }
  #merit ul li {
    width: 510px;
    height: 520px;
    text-align: center;
    margin-top: 82px;
  }
  #merit ul li dl dt {
    width: 382px;
    height: 430px;
    margin: 0 auto;
    position: relative;
  }
  #merit ul li dl dt p {
    font-size: 5.0rem;
    transform: translateY(-35%) translateX(-50%);
  }
  #merit ul li dl dt p span.small {
    font-size: 4.0rem;
  }
  #merit ul li dl dd {
    margin-top: 20px;
    font-size: 2.2rem;
    color: var(--navy);
  }
  #merit .btn_wrap {
    margin-top: 56px;
  }
  #merit .btn_wrap p {
    font-size: 3.6rem;
  }
  #merit .btn_wrap p:before {
    content: "";
    width: 48px;
    height: 68px;
    background: linear-gradient(60deg, transparent 45.3%, var(--blue) 45.3%, var(--blue) 49.6%, transparent 48%);
    position: absolute;
    transform: translateX(calc(-48px - 22px)) translateY(63px);
  }
  #merit .btn_wrap p:after {
    content: "";
    width: 48px;
    height: 68px;
    background: linear-gradient(300deg, transparent 45.3%, var(--blue) 45.3%, var(--blue) 49.6%, transparent 48%);
    position: absolute;
    transform: translateX(22px) translateY(0);
  }
  #merit .btn_wrap a {
    margin-top: 34px;
  }
}

/**
 * #service block
 */
#service {
  padding: 96px 0 84px 0;
  background: url(../img/service-bg.png) no-repeat;
  background-size: cover;
}
#service h3 {
  text-align: center;
}
#service .content {
  text-align: center;
  display: block;
}
#service .content .txt p.font22 {
  line-height: 1.2;
  margin-top: 1.2rem;
}
#service .content .img {
  margin-top: 6.0rem;
}
@media(max-width: 750px) {
  #service {
    padding: 36px 0 122px 0;
    background: url(../img/service-bg@2x.png) no-repeat;
    background-size: cover;
  }
  #service h3 em {
    font-size: 6.0rem;
  }
  #service .content .txt p {
    font-size: 2.8rem;
  }
  #service .content .txt p.font22 {
    margin-top: 3.4rem;
    font-size: 4.0rem;
  }
  #service .btn:before {
    background-size: 73%;
  }
}

#engineer {
  background: #edf1f5;
  padding: 10rem 0;
  z-index: -1;
}
#engineer .flex {
  justify-content: space-between;
  align-items: flex-start;
}

@media screen and (min-width: 640px) {
    .note {
        display: block;
        margin-top: 18px;
        font-size: 1.1rem;
    }
}
.note {
    color: #666;
    font-size: 1rem;
    text-align: right;
    margin-top: 10px;
}

#detail .bg {
  background: url(../img/detail-bg.png) no-repeat;
  background-size: cover;
  height: 41rem;
  min-height: 41rem;
}
#detail .bg-pale-gray {
  height: 48rem;
}
#detail .list {
  top: -24.5rem;
  position: relative;
}
#detail .list ul.flex {
  justify-content: space-between;
}

#feature .list ul.flex {
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
}

/**
 * #flow block
 */
#flow {
  padding-bottom: 11rem;
}
#flow .btn_wrap {
  margin-top: 100px;
}
#flow .btn_wrap p {
  color: var(--blue);
  font-size: 2.2rem;
  position: relative;
}
#flow .btn_wrap p:before {
  content: "";
  width: 28px;
  height: 39px;
  background: linear-gradient(60deg, transparent 45.3%, var(--blue) 45.3%, var(--blue) 49.6%, transparent 48%);
  position: absolute;
  transform: translateX(calc(-28px - 12px)) translateY(34px);
}
#flow .btn_wrap p:after {
  content: "";
  width: 28px;
  height: 39px;
  background: linear-gradient(300deg, transparent 45.3%, var(--blue) 45.3%, var(--blue) 49.6%, transparent 48%);
  position: absolute;
  transform: translateX(12px) translateY(0);
}
#flow .btn_wrap a {
  margin-top: 28px;
}
@media (max-width: 750px) {
  #flow .btn_wrap {
    margin-top: 56px;
  }
  #flow .btn_wrap p {
    font-size: 3.6rem;
  }
  #flow .btn_wrap p:before {
    content: "";
    width: 48px;
    height: 68px;
    background: linear-gradient(60deg, transparent 45.3%, var(--blue) 45.3%, var(--blue) 49.6%, transparent 48%);
    position: absolute;
    transform: translateX(calc(-48px - 22px)) translateY(63px);
  }
  #flow .btn_wrap p:after {
    content: "";
    width: 48px;
    height: 68px;
    background: linear-gradient(300deg, transparent 45.3%, var(--blue) 45.3%, var(--blue) 49.6%, transparent 48%);
    position: absolute;
    transform: translateX(22px) translateY(0);
  }
  #flow .btn_wrap a {
    margin-top: 34px;
  }
}

#company .bg {
  background: url(../img/company-bg.jpg) no-repeat;
  background-size: cover;
  background-position: 10%;
}
#company .bg .img {
  position: relative;
  top: 10rem;
}
#company .bg .img img {
  background: white;
  padding: 6rem 6rem 8rem 6rem;
}
#company .bg .bg-white {
  color: #1d3b51;
  width: 74.9%;
  box-sizing: border-box;
  display: inline-block;
  padding: 6rem 6rem 8rem 6rem;
  position: relative;
  top: 10rem;
}
#company .bg .bg-white table {
  margin-top: 4.5rem;
  width: 100%;
}
#company .bg .bg-white table tbody tr {
  border-collapse: collapse;
}
#company .bg .bg-white table tbody th, #company .bg .bg-white table tbody td {
  font-size: 1.4rem;
  color: #1d3b51;
  letter-spacing: .01em;
}
#company .bg .bg-white table tbody td {
  width: 83%;
  padding-top: 2rem;
}
#company .bg .bg-white table tbody th {
  padding-top: 2rem;
  vertical-align: top;
  font-weight: 700;
}
#company .bg .bg-white table tbody tr:first-child td, #company .bg .bg-white table tbody tr:first-child th {
  padding-top: 0;
}

.footer {
  background: #386c8b;
}
.footer .txt {
  padding-top: 18rem;
  padding-bottom: 2.5rem;
}
.footer .txt p, .footer .txt img {
  display: inline-block;
}

@media (min-width: 768px) and (max-width: 1024px) {
  .inner {
    width: 95%;
  }

  .header .flex .flex-right .list .flex li {
    font-size: 1.2vw;
    margin-left: 1%;
  }

  #feature .list ul.flex li {
    width: 48%;
  }

  #detail .list {
    top: -15.5rem;
  }
  #detail .list ul.flex li {
    width: 30%;
  }
}
@media (max-width: 750px) {
  .header {
    position: fixed;
    width: 100%;
    background: white;
    z-index: 99999999;
    height: 8rem;
    max-height: 8rem;
  }
  .header .flex .flex-left {
    width: 50%;
  }
  .header .sp-menu {
    display: flex;
    justify-content: flex-end;
    align-items: stretch;
  }
  .header #toggle {
    width: 8rem;
    height: 8rem;
    z-index: 9999;
  }
  .header #toggle button {
    background: white;
  }
  .header #toggle .menu-trigger {
    width: 100%;
    height: 100%;
    transition: .3s;
    position: relative;
  }
  .header #toggle .menu-trigger span {
    width: 4rem;
    height: 0.2rem;
    background: #1d3b51;
    border-radius: 1rem;
    display: block;
    position: absolute;
    margin: 0 auto;
    right: 0;
    left: 0;
    top: 4rem;
    transition: .3s;
  }
  .header #toggle .menu-trigger span:before, .header #toggle .menu-trigger span:after {
    content: "";
    width: 4rem;
    height: 0.2rem;
    position: absolute;
    left: 0;
    transition: .3s;
    background: #1d3b51;
  }
  .header #toggle .menu-trigger span:before {
    top: -1rem;
  }
  .header #toggle .menu-trigger span:after {
    bottom: -1rem;
  }
  .header #toggle .menu-trigger p {
    position: absolute;
    margin: 0 auto;
    right: 0;
    left: 0;
    bottom: 0.2rem;
    font-size: 1.2rem;
    text-align: center;
    color: #1d3b51;
    font-weight: bold;
    transition: .3s;
  }
  .header #toggle .menu-trigger.active span {
    transform: rotate(36deg);
    width: 3.5rem;
    top: 4rem;
  }
  .header #toggle .menu-trigger.active span:before {
    transform: rotate(-30deg);
    background: transparent;
    left: -0.5rem;
  }
  .header #toggle .menu-trigger.active span:after {
    transform: rotate(-70deg);
    bottom: 0;
    width: 3.5rem;
  }
  .header #toggle .menu-trigger.active p {
    color: transparent;
  }
  .header #gnav {
    display: none;
    width: 100%;
    padding: 0;
    background: white;
    font-size: 2.5vw;
    position: fixed;
    top: 8rem;
    right: 0;
    z-index: 99999;
  }
  .header #gnav .inner {
    width: 100%;
  }
  .header #gnav nav {
    max-height: 100%;
    overflow-y: scroll;
  }
  .header #gnav ul {
    flex-wrap: wrap;
    box-shadow: 1px 1px 3px -1px #ababab;
  }
  .header #gnav ul li {
    margin-right: 0;
    padding: 1rem 0;
    width: 33%;
    display: flex;
    height: 13rem;
    min-height: 13rem;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    font-size: 3vw;
  }
  .header #gnav ul li:first-child, .header #gnav ul li:nth-child(2), .header #gnav ul li:nth-child(3) {
    border-bottom: 0.1em solid #edf1f5;
  }
  .header #gnav ul li:nth-child(2), .header #gnav ul li:nth-child(5) {
    border-right: 0.1rem solid #edf1f5;
    border-left: 0.1rem solid #edf1f5;
  }
  .header #gnav ul li:last-child {
    background: #edf1f5;
  }
  .header #gnav ul li a {
    padding: 1rem 0;
  }
  .header #gnav ul li a p span {
    margin-left: 1em;
  }
  .header .tel a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    align-content: center;
    width: 240px;
    height: 80px;
    background: linear-gradient(90deg, #027ADD 0%, #33B1FF 100%);
    color: white;
    font-size: 2.8rem;
    line-height: 2.8rem;
  }
  .header .tel a span {
    font-size: 2.2rem;
  }
  .header .tel a:before {
    content: "";
    padding: 12px 14px;
    background: url("../img/tel-icon-sp.png") no-repeat;
    background-size: contain;
    margin: 0px 2px 0 0;
  }
  .header .contact {
    text-align: right;
  }
  .header .contact a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 8rem;
    height: 8rem;
    background: linear-gradient(270deg, #ff6926 40%, #ff8c25 70%, #ff9721 100%, #ebb500 100%);
    box-shadow: 0px 3px 3px 0px rgba(29, 59, 81, 0.16);
  }

  .inner {
    width: 90%;
    margin: 0 auto;
  }

  .mainv {
    padding-top: 8rem;
  }
  .mainv:after {
    content: none;
  }
  .mainv .logo {
    background: rgba(255, 255, 255, 0.8);
    padding: 3rem 0;
  }
  .mainv .btn {
    position: inherit;
    margin: 1rem auto;
  }
  .mainv .btn:after {
    content: none;
  }

  #engineer .txt p {
    font-size: 3.2rem;
    text-align: center;
  }

  #detail .bg {
    height: 72rem;
    min-height: 72rem;
  }
  #detail .bg-pale-gray {
    /* height: 130em; 202106変更 */
    height: 167em;
  }
  #detail .list {
    top: -48rem;
  }
  #detail .btn {
    margin-top: 5rem;
  }

  #service .flex {
    display: block;
  }
  #service .flex .flex-left .img {
    text-align: center;
  }
  #service .flex .flex-left .txt p {
    font-size: 3.2rem;
  }
  #service .flex .flex-left .txt p.font22 {
    font-size: 4.4rem;
    border-bottom: 0.4rem solid #fdf680;
  }
  #service .flex .flex-right .img img {
    margin-top: 5rem;
  }

  #company {
    padding-top: 9rem;
    padding-bottom: 11.5rem;
  }
  #company .bg-white {
    width: 100%;
  }
  #company table {
    margin-top: 4.5rem;
    width: 100%;
  }
  #company table tbody tr {
    border-collapse: collapse;
    padding-bottom: 2rem;
    border-bottom: 0.1rem solid #bad0dc;
  }
  #company table tbody th, #company table tbody td {
    font-size: 2.8rem;
    color: #1d3b51;
    letter-spacing: .01em;
    display: block;
    width: 100%;
    padding-top: 2rem;
  }
  #company table tbody td {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }
  #company table tbody th {
    vertical-align: top;
    font-weight: 700;
    line-height: 1.8;
  }
  #company table tbody tr:first-child td {
    padding-top: 0;
  }

  .footer .txt {
    padding-top: 1.4rem;
    padding-bottom: 1.4rem;
  }
}

/*# sourceMappingURL=style.css.map */

/**2020 header CV**/
.header .flex .flex-right .list .flex li.tel,
.header .flex .flex-right .list .flex li.contact{
	padding: 2px 0;
}
.header .flex .flex-right .list .flex li.tel a{
	position: relative;
	border-radius: 25px;
	padding:0 5px;
}
.header .flex .flex-right .list .flex li.tel a span{
	font-size: 1.0rem;
}
.header .flex .flex-right .list .flex li.tel a:before{
	position: absolute;
	content: '';
	left: 10px;
	top: 50%;
	width: 16px;
	height: 16px;
	background: url("../img/tel.svg") center 50%;
	background-size: cover;
	padding: 0;
	margin:-8px auto auto;
}
.header .flex .flex-right .list .flex li.tel a:after{
	position: absolute;
	content: '';
	right: 6px;
	top: 50%;
	width: 10px;
	height: 10px;
	background: url("../img/arrow.svg") center 50%;
	background-size: cover;
	padding: 0;
	margin:-5px auto auto;
}
.header .flex .flex-right .list .flex li.contact a{
	position: relative;
	border-radius: 25px;
	padding:0 5px;
}
.header .flex .flex-right .list .flex li:nth-last-child(2){
	margin: auto 4px;
}
.header .flex .flex-right .list .flex li.contact a:after{
	position: absolute;
	content: '';
	right: 6px;
	top: 50%;
	width: 10px;
	height: 10px;
	background: url("../img/arrow.svg") center 50%;
	background-size: cover;
	padding: 0;
	margin:-5px auto auto;
}
@media (max-width: 750px){
	.header .tel{
		margin-right: 4px;
		padding: 2px 0;
	}
	.header .tel a {
		position: relative;
		border-radius: 38px;
		height: 76px;
		padding:0 5px;
		font-size: 2.6rem;
    	line-height: 2.6rem;
	}
	.header .tel a span{
		display: block;
		font-size: 1.6rem;
	}
	.header .tel a:before{
		position: absolute;
		content: '';
		left: 10px;
		top: 50%;
		width: 20px;
		height: 20px;
		background: url("../img/tel.svg") center 50%;
		background-size: cover;
		padding: 0;
		margin:-10px auto auto;
	}
	.header .tel a:after{
		position: absolute;
		content: '';
		right: 6px;
		top: 50%;
		width: 14px;
		height: 14px;
		background: url("../img/arrow.svg") center 50%;
		background-size: cover;
		padding: 0;
		margin:-7px auto auto;
	}
}

/* 202104追加 */
#feature {
  padding-bottom: 11.6rem;
}

#flow {
  background: #f4f6f9;
  padding-top: 10rem;
}

.footer .txt {
  padding-top: 2.5rem;
}

@media (max-width: 750px){
  #flow {
    padding-top: 0;
  }

  #feature {
    padding-bottom: 2.6rem;
  }
}


/* 202106追加 */
.cost {
  background: url(../img/2021/06/bg-cost.jpg)no-repeat;
  background-size: cover;
  background-position: center;
  padding: 11rem 0;
  color: #1d3b51;
}

.cost-heading {
  text-align: center;
  margin-bottom: 7.65rem;
}

.cost-intro {
  font-size: 3.5rem;
  font-weight: 600;
  text-align: center;
  margin-bottom: 8.1rem;
}

.cost-box {
  border: 1px solid #1d3b51;
  background: rgba(255,255,255,.45);
  padding: 5rem 3.5rem;
}

.cost-txt {
  font-size: 2.5rem;
  line-height: 2.2;
}

.cost-txt02 {
  margin-bottom: 41px;
}

.cost-txt03 {
  text-align: center;
  margin-bottom: 48px;
}

#feature .list ul.flex {
  flex-wrap: wrap;
  justify-content: normal;
}

#feature .list ul.flex > li {
  flex-shrink: 1;
  flex-grow: 0;
  flex-basis: calc(33% - 20px);
  max-width: calc(33% - 20px);
  margin: 0 30px 0 0;
}

#feature .list ul.flex > li:nth-child(3n){
  margin-right: 0;
}

.hp_pl_1_8rem {
  padding-left: 1.8rem;
}

.hp_pl_5_8rem {
  padding-left: 5.8rem;
}

.header .flex .flex-right .list .flex li:last-child {
  padding: 0;

}

.header .flex .flex-right .list .flex li:last-child a {
  padding: 1.8rem 2rem;
}

@media (max-width: 750px) {
  .cost .btn {
    font-size: 2.6rem;
  }
}

/* ==================== 役員 ====================*/
.board-member {
  display: flex;
  margin-bottom: 10px;
}

.board-member:last-of-type {
  margin-bottom: 0;
}

.board-member__head {
  white-space: nowrap;
  width: 120px;
  flex-shrink: 0;
  flex-grow: 0;
  box-sizing: border-box;
}

.board-member__body {
  padding-left: 20px;
  box-sizing: border-box;
  width: calc(100% - 120px);
}

@media (max-width:750px) {
  .board-member {
      margin-bottom: 20px;
  }

  .board-member__head {
      width: 240px;
      border-right: none;
  }
}

