/*	cmn-color
------------------------------------ */
/*	transition,hover
------------------------------------ */
/*	media-screen
------------------------------------ */
/*	font
------------------------------------ */
@font-face {
  font-family: "Noto Serif Regular";
  src: url("../fonts/NotoSerifCJKjp-Regular.woff") format("woff");
}
@font-face {
  font-family: "Noto Serif Medium";
  src: url("../fonts/NotoSerifCJKjp-Medium.woff") format("woff");
}
@font-face {
  font-family: "Noto Serif SemiBold";
  src: url("../fonts/NotoSerifCJKjp-SemiBold.woff") format("woff");
}
@font-face {
  font-family: "Noto Serif Bold";
  src: url("../fonts/NotoSerifCJKjp-Bold.woff") format("woff");
}
@font-face {
  font-family: "Noto Serif Black";
  src: url("../fonts/NotoSerifCJKjp-Black.woff") format("woff");
}
@font-face {
  font-family: "shippori";
  src: url("../fonts/ShipporiMinchoB1-Bold.ttf");
}
@font-face {
  font-family: "ms";
  src: url("../fonts/msmincho.ttc");
}
@font-face {
  font-family: "bodoni";
  src: url("../fonts/BodoniModa_18pt-Medium.ttf");
}
/*	layout
------------------------------------ */
/*	cmn-color
------------------------------------ */
/*	transition,hover
------------------------------------ */
/*	media-screen
------------------------------------ */
/*	font
------------------------------------ */
@font-face {
  font-family: "Noto Serif Regular";
  src: url("../fonts/NotoSerifCJKjp-Regular.woff") format("woff");
}
@font-face {
  font-family: "Noto Serif Medium";
  src: url("../fonts/NotoSerifCJKjp-Medium.woff") format("woff");
}
@font-face {
  font-family: "Noto Serif SemiBold";
  src: url("../fonts/NotoSerifCJKjp-SemiBold.woff") format("woff");
}
@font-face {
  font-family: "Noto Serif Bold";
  src: url("../fonts/NotoSerifCJKjp-Bold.woff") format("woff");
}
@font-face {
  font-family: "Noto Serif Black";
  src: url("../fonts/NotoSerifCJKjp-Black.woff") format("woff");
}
@font-face {
  font-family: "shippori";
  src: url("../fonts/ShipporiMinchoB1-Bold.ttf");
}
@font-face {
  font-family: "ms";
  src: url("../fonts/msmincho.ttc");
}
@font-face {
  font-family: "bodoni";
  src: url("../fonts/BodoniModa_18pt-Medium.ttf");
}
/*	layout
------------------------------------ */
/*	font-size  cmn
------------------------------------ */
/************************************************

  SP layout

************************************************/
/* =========================================
  main  SP
========================================= */
/*	cmn parts  SP
------------------------------------ */
.com-inner {
  padding: 50px 15px;
}

.no-sb {
  margin: 30px auto 0;
}

.mb10 {
  margin-bottom: 10px;
}
.mb20 {
  margin-bottom: 20px;
}

.anchor-mp {
  margin: -75px auto 0;
  padding-top: 75px;
}

.com-txt-box p:nth-of-type(n+2) {
  margin-top: 15px;
}

.com-mail-ttl {
  padding-top: 4px;
}

.top .com-tel-link, .sub .com-tel-link {
  padding-left: 27px;
  background-size: 20px;
}
.top .com-tel-num, .sub .com-tel-num {
  font-weight: bold;
}

/*	top-about  SP
------------------------------------ */
#top-about .about-bg {
  background: url(../img/top/mv.png) no-repeat center bottom;
}
#top-about .about-inner {
  padding-bottom: 100px;
}
#top-about .about-img {
  margin: 20px auto 0;
  position: static;
}
#top-about .about-ttl {
  margin: 20px auto 0;
  text-align: center;
  line-height: 1.8;
  white-space: pre-line;
}
#top-about .about-ttl-ac::before {
  width: 51px;
  height: 5px;
  background-size: 5px 5px;
  top: -11px;
  left: 32px;
}
#top-about .com-txt-box {
  margin: 20px auto 0;
}
#top-about .com-btn {
  margin: 25px auto 0;
}

/*	top-service  SP
------------------------------------ */
#top-service .service-bg {
  background: url(../img/top/service-right.png) no-repeat 95.5% 0/22.1%, url(../img/top/service-ttl-ico.png) no-repeat calc(50% - 146px) 60px/100px, url(../img/top/service-bg.png) no-repeat center bottom/100%;
}
#top-service .service-img {
  width: 260px;
  margin: 35px auto 0;
}
#top-service .service-ttl {
  margin-top: 22px;
  text-align: center;
}
#top-service .service-ttl-box {
  padding: 1px 15px;
}
#top-service .service-list {
  width: 100%;
  margin: 90px auto 0;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
#top-service .service-list-item {
  width: 100%;
  max-width: 350px;
  height: auto;
  padding: 115px 0 90px;
  background-size: 100%;
}
#top-service .service-list-item:nth-of-type(n+2) {
  margin: 100px auto 0;
}
#top-service .service-list-ttl {
  width: 144px;
  top: -75px;
}
#top-service .service-list-txt {
  border-width: 1px;
  font-size: 13px;
  font-size: 1.3rem;
}
#top-service .service-btn {
  margin: 30px auto 0;
}

/*	top-bnr  SP
------------------------------------ */
#top-bnr .bnr-list {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
#top-bnr .bnr-list li:nth-of-type(n+2) {
  margin: 20px auto 0;
}
#top-bnr .bnr-list-link {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  height: 220px;
  padding: 0;
  background-size: contain;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
}

/*	top-contact  SP
------------------------------------ */
#top-contact .contact-box {
  padding: 65px 15px 30px;
}
#top-contact .contact-box-ttl {
  max-width: 313px;
  padding: 5px 15px;
  font-size: 17px;
  font-size: 1.7rem;
}
#top-contact .contact-list {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  text-align: center;
}
#top-contact .contact-list li:nth-of-type(n+2) {
  margin: 25px auto 0;
}
#top-contact .com-tel-note {
  width: 234px;
  margin: auto;
}
#top-contact .com-tel-link {
  padding-left: 35px;
  background-size: 25px;
}

/* =========================================

  sub layout  SP

========================================= */
/*	about  SP
------------------------------------ */
#about .com-sub-ttl::before {
  content: none;
}

.com-sub-bg {
  background-size: cover;
}
.com-sub-ttl {
  display: block;
  text-align: center;
}
.com-sub-ttl::before {
  width: 154px;
  left: 134px;
}
.com-sub-box-ttl::before, .com-sub-box-ttl::after {
  width: 109px;
}
.com-sub-flex {
  margin-top: 25px;
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
  -webkit-flex-direction: column-reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
.com-sub-con {
  margin: 15px auto 0;
}
.com-sub-txt {
  margin-top: 10px;
}
.com-sub .com-btn {
  margin: 30px auto 0;
}
.com-sub-box {
  margin-top: 35px;
}
.com-sub-box-ttl {
  max-width: 309px;
  margin: auto;
}
.com-sub-other {
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.com-sub-other-item {
  width: 49%;
}
.com-sub-other-item:nth-of-type(n+2) {
  margin-left: 0;
}
.com-sub-other-item:nth-of-type(2n) {
  margin-left: 2%;
}
.com-sub-other-item:nth-of-type(n+3) {
  margin-top: 5%;
}
.com-sub-other-img {
  width: 100%;
  height: auto;
  padding: 5px;
  border-width: 2px;
}
.com-sub-other-ttl {
  margin-top: 6px;
}

#about .reason-list {
  margin-top: 20px;
}
#about .reason-list-item {
  padding: 20px;
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
  -webkit-flex-direction: column-reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
#about .reason-list-con {
  margin: 15px auto 0;
}
#about .reason-list-ttl {
  display: block;
}
#about .reason-list-ttl-point {
  width: 105px;
  height: 35px;
  line-height: 35px;
}
#about .reason-list-ttl-txt {
  margin: 10px 0 0;
}
#about .area-bg {
  background-position: left top;
}
#about .area .com-head02 {
  text-align: center;
}
#about .area-img {
  width: 220px;
  margin: 20px auto 0;
}
#about .area-ttl {
  margin-top: 20px;
  padding: 1px 18px;
}
#about .area-txt {
  margin-top: 10px;
}

/*	service  SP
------------------------------------ */
#service .com-sub-box {
  margin-top: 30px;
  padding: 20px;
}
#service .com-sub-box-ttl {
  max-width: 270px;
}
#service .com-sub-box-ttl::before, #service .com-sub-box-ttl::after {
  width: 50px;
}
#service .com-sub-box-txt {
  margin-top: 5px;
  text-align: left;
}
#service .problem-list {
  margin-top: 20px;
}
#service .problem-list-item {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
#service .problem-list-item:nth-of-type(n+2) {
  margin-top: 40px;
}
#service .problem-list-con {
  margin: 15px auto 0;
}
#service .problem-list-ttl {
  padding: 10px 8px;
}
#service .problem-txt-box {
  margin-top: 10px;
}
#service .works-list {
  margin-top: 30px;
}
#service .works-list-item {
  display: block;
  padding: 20px 15px;
}
#service .works-list-con-before {
  width: 80%;
  margin: auto;
}
#service .works-list-con-after {
  margin-top: -30px;
}
#service .works-list-before-frame {
  width: 100%;
  height: 0;
  margin-top: 15px;
  padding-top: 66.6%;
  border-width: 2px;
  position: relative;
}
#service .works-list-before-frame img {
  margin: auto;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
#service .works-list-ico {
  width: 40px;
  margin-top: 20px;
  margin-left: 10px;
}
#service .works-list-after-frame {
  width: 100%;
  height: 0;
  margin-top: 15px;
  padding: 66.6% 0 0 0;
  position: relative;
}
#service .works-list-after-frame img {
  width: 98%;
  height: 98%;
  margin: auto;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
#service .works-bnr {
  margin-top: 50px;
  border-width: 2px;
}
#service .works-bnr-bg {
  border-width: 5px;
  padding: 15px;
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
  -webkit-flex-direction: column-reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
#service .works-bnr-ttl {
  text-align: center;
}
#service .works-bnr-con {
  margin: 10px auto 0;
}
#service .works-bnr-txt {
  margin-top: 14px;
}

/*	flow  SP
------------------------------------ */
#flow .flow-info {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  text-align: center;
}
#flow .flow-info li:nth-of-type(n+2) {
  margin: 15px auto 0;
}
#flow .flow .com-tel-link {
  background-position: left center;
}
#flow .flow-list {
  margin-top: 30px;
}
#flow .flow-list-item {
  padding: 15px;
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
  -webkit-flex-direction: column-reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
#flow .flow-list-item:nth-of-type(n+2) {
  margin-top: 63px;
}
#flow .flow-list-item:nth-of-type(n+2)::before {
  border-width: 20px 15px 0px 15px;
  top: -40px;
}
#flow .flow-list-con {
  margin: 15px auto 0;
}
#flow .flow-list-ttl {
  width: 100%;
  padding: 10px 0 10px 10px;
}
#flow .flow-list-txt {
  margin-top: 10px;
}

/*	company  SP
------------------------------------ */
#company .greeting .com-txt-box {
  margin-top: 20px;
}
#company .company-box {
  margin-top: 20px;
  padding: 15px 0;
}