/*! --------------------------------------------------------------
　　このCSSファイルは .scssファイルからコンパイルされたものです。
　　修正する際はscssファイルを編集するように注意してください。
--------------------------------------------------------------- */
.main_page {
  height: 40vh;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  align-content: unset;
  padding-top: 110px;
  position: relative
}

@media(min-width: 768px)and (max-width: 1199px) {
  .main_page {
    height: 30vh;
    padding-top: 60px
  }
}

@media(max-width: 767px) {
  .main_page {
    height: 30vh;
    padding-top: 16vw
  }
}

.main_page .pagettl {
  font-size: 2.25rem;
  color: #f28021;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .05em;
  text-align: center
}

@media(max-width: 767px) {
  .main_page .pagettl {
    font-size: 1.5rem
  }
}

.main_page .pagettl span {
  display: block;
  font-size: 1.5rem;
  font-weight: 700;
  text-transform: uppercase
}

@media(max-width: 767px) {
  .main_page .pagettl span {
    font-size: 1rem
  }
}

.main_page.main_about {
  background: url(images/about/bg_main.jpg) center center/cover no-repeat
}

.main_page.main_reason {
  background: url(images/reason/bg_main.jpg) center center/cover no-repeat
}

.main_page.main_intermediary {
  background: url(images/reason/bg_main.jpg) center center/cover no-repeat
}

.main_page.main_real-estate {
  background: url(images/reason/bg_main.jpg) center center/cover no-repeat
}

.main_page.main_service {
  background: url(images/service/bg_main.jpg) center center/cover no-repeat
}

.main_page.main_septictankservice {
  background: url(images/service/bg_main.jpg) center center/cover no-repeat
}

.main_page.main_sewerservice {
  background: url(images/service/bg_main.jpg) center center/cover no-repeat
}

.main_page.main_demolition {
  background: url(images/service/bg_main.jpg) center center/cover no-repeat
}

.main_page.main_works {
  background: url(images/service/bg_main.jpg) center center/cover no-repeat
}

.main_page.main_flow {
  background: url(images/service/bg_main.jpg) center center/cover no-repeat
}

.main_page.main_servicelist {
  background: url(images/service/bg_main.jpg) center center/cover no-repeat
}

.main_page.main_faq {
  background: url(images/service/bg_main.jpg) center center/cover no-repeat
}

.main_page.main_company {
  background: url(images/service/bg_main.jpg) center center/cover no-repeat
}

.main_page.main_contact {
  background: url(images/service/bg_main.jpg) center center/cover no-repeat
}

.main_page.main_privacy {
  background: url(images/service/bg_main.jpg) center center/cover no-repeat
}

.main_page.main_news {
  background-color: #221e1c
}

.main_page.main_column {
  background-color: #221e1c
}

.breadcrumbs {
  display: grid;
  place-items: center;
  height: 3rem;
  margin-bottom: -3rem;
  position: relative;
  z-index: 1
}

@media(max-width: 767px) {
  .breadcrumbs {
    height: 2rem;
    margin-bottom: -2rem
  }
}

.breadcrumbs ul {
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: center
}

.breadcrumbs ul li {
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.5;
  margin-right: .8em
}

@media(max-width: 767px) {
  .breadcrumbs ul li {
    font-size: 0.625rem
  }
}

dl.dl_cmn div {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: stretch
}

dl.dl_cmn div:not(:last-child) {
  margin-bottom: 3rem
}

@media(max-width: 767px) {
  dl.dl_cmn div:not(:last-child) {
    margin-bottom: 1.8rem
  }
}

dl.dl_cmn div dt {
  width: 20%;
  font-size: 2.625rem;
  font-weight: 700;
  line-height: 1;
  border-right: 1px solid currentColor
}

@media(min-width: 768px)and (max-width: 1199px) {
  dl.dl_cmn div dt {
    font-size: 2.25rem
  }
}

@media(max-width: 767px) {
  dl.dl_cmn div dt {
    width: 12%;
    font-size: 2.25rem;
    writing-mode: vertical-lr
  }
}

dl.dl_cmn div dd {
  width: 76%;
  font-size: 1rem;
  line-height: 1.5;
  padding-bottom: 2rem
}

@media(max-width: 767px) {
  dl.dl_cmn div dd {
    width: 84%;
    font-size: 0.75rem;
    padding-bottom: 1rem
  }
}

dl.dl_cmn2 div {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: stretch;
  padding-bottom: 1rem;
  border-bottom: 1px solid currentColor
}

@media(max-width: 767px) {
  dl.dl_cmn2 div {
    padding-bottom: .6rem
  }
}

dl.dl_cmn2 div:not(:last-child) {
  margin-bottom: 1rem
}

@media(max-width: 767px) {
  dl.dl_cmn2 div:not(:last-child) {
    margin-bottom: .6rem
  }
}

dl.dl_cmn2 div dt {
  width: 40%;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.4;
  padding-left: .5em
}

@media(max-width: 767px) {
  dl.dl_cmn2 div dt {
    font-size: 0.8125rem
  }
}

dl.dl_cmn2 div dd {
  width: 60%;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5
}

@media(max-width: 767px) {
  dl.dl_cmn2 div dd {
    font-size: 0.75rem
  }
}

dl.dl_cmn2.company div {
  color: #fff
}

dl.dl_cmn2.company div dt {
  width: 20%;
  padding-left: 1em
}

@media(max-width: 767px) {
  dl.dl_cmn2.company div dt {
    padding-left: 0
  }
}

dl.dl_cmn2.company div dd {
  width: 80%
}

.bg_or_cmn {
  background-color: #221e1c;
  position: relative
}

.bg_or_cmn::before {
  content: "";
  width: 95vw;
  height: 100%;
  background: url(images/index/bgr_tech01.svg) left top repeat;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0
}

.bg_or_cmn .inner {
  z-index: 2
}

.bg_w_cmn {
  background: #221e1c;
  position: relative
}

.bg_w_cmn::before {
  content: "";
  width: 95vw;
  height: 100%;
  background-color: #fff;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0
}

.bg_w_cmn .inner {
  z-index: 2
}

.about_mission {
  background-color: #f28021
}

.about_mission .dl_cmn h3.ttl_cmn2 {
  line-height: 1;
  margin-bottom: .2em
}

.about_concept .ul01 li {
  display: inline-flex;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: center;
  font-size: 2.125rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .05em
}

@media(max-width: 767px) {
  .about_concept .ul01 li {
    font-size: 1rem
  }
}

.about_concept .ul01 li:not(:last-child) {
  margin-bottom: 2rem
}

@media(max-width: 767px) {
  .about_concept .ul01 li:not(:last-child) {
    margin-bottom: 1.2rem
  }
}

.about_concept .ul01 li em {
  font-size: 6.25rem;
  color: #f28021;
  font-weight: 700;
  line-height: .9;
  margin-right: .35em
}

@media(max-width: 767px) {
  .about_concept .ul01 li em {
    font-size: 2rem
  }
}

.about_promise {
  position: relative
}

.about_promise::before {
  content: "";
  width: 95vw;
  height: 100%;
  background: url(images/index/bgr_tech01.svg) left top repeat;
  position: absolute;
  top: 0;
  right: 0;
  z-index: 0
}

.about_promise .inner {
  z-index: 2
}

.about_promise .colwrap {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem 5.5555555556%
}

@media(min-width: 768px)and (max-width: 1199px) {
  .about_promise .colwrap {
    grid-template-columns: repeat(1, 1fr)
  }
}

@media(max-width: 767px) {
  .about_promise .colwrap {
    grid-template-columns: repeat(1, 1fr)
  }
}

.about_promise .colwrap .col figure {
  margin-bottom: 1.2rem
}

@media(max-width: 767px) {
  .about_promise .colwrap .col figure {
    margin-bottom: .5rem
  }
}

.about_promise .colwrap .col figure img {
  width: 100%;
  -o-object-fit: cover;
  object-fit: cover
}

.about_origin .over_cmn:not(:last-child) {
  margin-bottom: 5rem
}

@media(max-width: 767px) {
  .about_origin .over_cmn:not(:last-child) {
    margin-bottom: 2.5rem
  }
}

body.reason .breadcrumbs {
  position: relative;
  z-index: 3
}

.reason_first {
  background-color: #221e1c;
  position: relative
}

.reason_first::before {
  content: "";
  width: 95vw;
  height: 100%;
  background: url(images/index/bgr_tech01.svg) left top repeat;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0
}

.reason_first .inner {
  z-index: 2
}

.reason_first .over_cmn:not(:last-child) {
  margin-bottom: 9rem
}

@media(min-width: 768px)and (max-width: 1199px) {
  .reason_first .over_cmn:not(:last-child) {
    margin-bottom: 4rem
  }
}

@media(max-width: 767px) {
  .reason_first .over_cmn:not(:last-child) {
    margin-bottom: 3rem
  }
}

.reason_first .over_cmn figure {
  position: relative
}

.reason_first .over_cmn figure .num {
  font-size: 9.375rem;
  font-weight: 700;
  line-height: .9;
  letter-spacing: .05em;
  position: absolute;
  top: -0.35em
}

@media(min-width: 1200px) {
  .reason_first .over_cmn .txt {
    padding-top: 1rem
  }
}

.reason_first .over_cmn:not(.reverse) .num {
  right: .1em
}

.reason_first .over_cmn.reverse .num {
  left: .1em
}

body.service .breadcrumbs {
  position: relative;
  z-index: 3
}

.service_first {
  background-color: #221e1c;
  position: relative
}

.service_first::before {
  content: "";
  width: 95vw;
  height: 100%;
  background: url(images/index/bgr_tech01.svg) left top repeat;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0
}

.service_first .inner {
  z-index: 2
}

.service_worries {
  background-color: #221e1c
}

.service_worries ul {
  max-width: 900px;
  margin-inline: auto
}

.service_worries ul li {
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: center;
  border: 1px solid #f28021;
  background-color: #fff;
  padding: .9rem 3%
}

@media(max-width: 767px) {
  .service_worries ul li {
    padding: .6rem 2%
  }
}

.service_worries ul li:not(:last-child) {
  margin-bottom: 1.8rem
}

@media(max-width: 767px) {
  .service_worries ul li:not(:last-child) {
    margin-bottom: 1.2rem
  }
}

.service_worries ul li i,
.service_worries ul li p {
  font-size: 1.75rem;
  line-height: 1.5
}

@media(max-width: 767px) {

  .service_worries ul li i,
  .service_worries ul li p {
    font-size: 1rem;
    line-height: 1.3
  }
}

.service_worries ul li i {
  color: #f28021;
  margin-right: 1em
}

@media(max-width: 767px) {
  .service_worries ul li i {
    margin-right: .4em
  }
}

.service_worries ul li p {
  font-weight: 700
}

.service_can {
  background-color: #221e1c;
  position: relative
}

.service_can::before {
  content: "";
  width: 95vw;
  height: 100%;
  background: url(images/index/bgr_tech01.svg) left top repeat;
  position: absolute;
  top: 0;
  right: 0;
  z-index: 0
}

.service_can .inner {
  z-index: 2
}

.service_can .lump {
  background-color: #221e1c;
  padding: 2.5rem 3%
}

@media(max-width: 767px) {
  .service_can .lump {
    padding: 1.5rem 4%
  }
}

.service_can .lump:not(:last-child) {
  margin-bottom: 3.5rem
}

@media(max-width: 767px) {
  .service_can .lump:not(:last-child) {
    margin-bottom: 2rem
  }
}

.service_detail {
  background-color: #221e1c
}

.service_detail ul {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.5rem 2.3148148148%
}

@media(min-width: 768px)and (max-width: 1199px) {
  .service_detail ul {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem 4%
  }
}

@media(max-width: 767px) {
  .service_detail ul {
    grid-template-columns: repeat(1, 1fr);
    gap: 1.5rem 4%
  }
}

.service_detail ul li figure {
  overflow: hidden
}

.service_detail ul li figure img {
  width: 100%;
  max-height: 230px;
  -o-object-fit: cover;
  object-fit: cover
}

.service_detail ul li figure img:hover {
  transform: scale(1.15);
  transition: .5s ease
}

.service_detail ul li p.txt01 {
  width: 90%;
  border: 1px solid #fff;
  background-color: #f28021;
  border-radius: 100vmax;
  line-height: 2rem;
  margin-inline: auto;
  margin-top: -1rem;
  position: relative
}

.service_detail ul li p.txt01 i {
  font-size: 0.625rem;
  margin-left: 1em;
  position: relative;
  top: -0.2em
}

.service_build ul {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem 2.5%
}

@media(min-width: 768px)and (max-width: 1199px) {
  .service_build ul {
    grid-template-columns: repeat(2, 1fr)
  }
}

@media(max-width: 767px) {
  .service_build ul {
    grid-template-columns: repeat(2, 1fr)
  }
}

.service_build ul li figure {
  margin-bottom: .4rem
}

.service_build ul li figure img {
  width: 100%;
  -o-object-fit: cover;
  object-fit: cover
}

.service_reason {
  background-color: #221e1c
}

.service_reason .over_cmn:not(:last-child) {
  margin-bottom: 5rem
}

@media(max-width: 767px) {
  .service_reason .over_cmn:not(:last-child) {
    margin-bottom: 2.5rem
  }
}

.service_intr .ttl01 {
  background-color: #f28021;
  padding: .4em .8em;
  margin-bottom: .8em
}

.service_intr p.txt01 {
  margin-bottom: 2.5em
}

.service_intr .ttl02 {
  border-left: .3em solid #f28021;
  padding: .2em .5em
}

.service_works ul {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem 2.3148148148%;
  margin-bottom: 2.5rem
}

@media(min-width: 768px)and (max-width: 1199px) {
  .service_works ul {
    grid-template-columns: repeat(2, 1fr);
    margin-bottom: 1.5rem
  }
}

@media(max-width: 767px) {
  .service_works ul {
    grid-template-columns: repeat(1, 1fr);
    margin-bottom: 1.5rem
  }
}

.service_flow {
  background: url(images/index/bgr_tech01.svg) left top repeat
}

.service_flow ul {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem 2.5%
}

@media(min-width: 768px)and (max-width: 1199px) {
  .service_flow ul {
    grid-template-columns: repeat(2, 1fr)
  }
}

@media(max-width: 767px) {
  .service_flow ul {
    grid-template-columns: repeat(1, 1fr)
  }
}

.service_flow ul li .num {
  display: grid;
  place-content: center;
  width: 76px;
  aspect-ratio: 1/1;
  background-color: #fff;
  border-radius: 100vmax;
  font-size: 2.5rem;
  color: #f28021;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  margin-inline: auto;
  margin-bottom: -40px;
  position: relative;
  z-index: 1
}

@media(max-width: 767px) {
  .service_flow ul li .num {
    width: 16vw;
    font-size: 2rem;
    margin-bottom: -8vw
  }
}

.service_flow ul li figure {
  margin-bottom: .5rem
}

.service_flow ul li figure img {
  width: 100%;
  -o-object-fit: cover;
  object-fit: cover
}

.service_flow ul li h3.ttl_cmn2 {
  margin-bottom: .2em
}

.service_flow ul li:not(:last-child) figure {
  position: relative
}

.service_flow ul li:not(:last-child) figure::after {
  width: 40px;
  height: 70px;
  background-color: #fff;
  -webkit-clip-path: polygon(0 0, 100% 50%, 0 100%);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  position: absolute;
  top: 50%;
  left: calc(100% - 8px);
  z-index: 1
}

@media(min-width: 1200px) {
  .service_flow ul li:not(:last-child) figure::after {
    content: ""
  }
}

.service_price p.txt01 {
  margin-bottom: 2.5em
}

.service_support ul {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem 2.3148148148%
}

@media(min-width: 768px)and (max-width: 1199px) {
  .service_support ul {
    grid-template-columns: repeat(2, 1fr)
  }
}

@media(max-width: 767px) {
  .service_support ul {
    grid-template-columns: repeat(1, 1fr)
  }
}

.service_support ul li figure {
  margin-bottom: .8rem
}

.service_support ul li figure img {
  width: 100%;
  -o-object-fit: cover;
  object-fit: cover
}

.service_support ul li h3.ttl_cmn2 {
  margin-bottom: .4em
}

.service_support ul li h3.ttl_cmn2::before {
  content: "●";
  font-size: 0.5625rem;
  color: #f28021;
  line-height: 1;
  margin-right: 1em;
  position: relative;
  top: -5px
}

@media(max-width: 767px) {
  .service_support ul li h3.ttl_cmn2::before {
    top: -3px
  }
}

.inst_first {
  background-color: #fff;
  margin-bottom: 4rem
}

@media(max-width: 767px) {
  .inst_first {
    margin-bottom: 2rem
  }
}

.inst_second {
  background-color: #f4f4f4
}

.inst_second .lump:not(:last-child) {
  margin-bottom: 2.5rem
}

@media(max-width: 767px) {
  .inst_second .lump:not(:last-child) {
    margin-bottom: 1.6rem
  }
}

.inst_second .lump .ul02 {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1rem 2.3148148148%
}

@media(max-width: 767px) {
  .inst_second .lump .ul02 {
    grid-template-columns: repeat(2, 1fr);
    gap: .7rem 2.5%
  }
}

.inst_second .lump .ul02:not(:last-child) {
  margin-bottom: 2.5rem
}

@media(max-width: 767px) {
  .inst_second .lump .ul02:not(:last-child) {
    margin-bottom: 1.6rem
  }
}

.inst_second .lump .ul02 li {
  display: grid;
  place-content: center;
  place-items: center;
  background-color: #fff;
  border-radius: 10px;
  padding: 1rem 3%
}

@media(max-width: 767px) {
  .inst_second .lump .ul02 li {
    padding: .6rem 3%
  }
}

.inst_second .lump .ul02 li:not(:last-child) {
  position: relative
}

.inst_second .lump .ul02 li:not(:last-child)::after {
  content: "";
  width: 12px;
  height: 22px;
  background-color: #f28021;
  -webkit-clip-path: polygon(0 0, 100% 50%, 0 100%);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  position: absolute;
  top: 50%;
  left: calc(100% + 7px);
  transform: translateY(-50%);
  z-index: 1
}

@media(min-width: 768px)and (max-width: 1199px) {
  .inst_second .lump .ul02 li:not(:last-child)::after {
    left: calc(100% + 3px)
  }
}

@media(max-width: 767px) {
  .inst_second .lump .ul02 li:not(:last-child)::after {
    content: none
  }
}

.inst_second .lump .ul02 li .step {
  font-size: 1.25rem;
  color: #f28021;
  font-weight: 400;
  line-height: 1.5;
  text-align: center
}

@media(min-width: 768px)and (max-width: 1199px) {
  .inst_second .lump .ul02 li .step {
    font-size: 0.875rem
  }
}

@media(max-width: 767px) {
  .inst_second .lump .ul02 li .step {
    font-size: 0.875rem
  }
}

.inst_second .lump .ul02 li .step em {
  font-size: 1.875rem;
  line-height: 1
}

@media(min-width: 768px)and (max-width: 1199px) {
  .inst_second .lump .ul02 li .step em {
    font-size: 1.3125rem
  }
}

@media(max-width: 767px) {
  .inst_second .lump .ul02 li .step em {
    font-size: 1.3125rem
  }
}

.inst_second .lump .ul02 li p.txt03 {
  width: -moz-fit-content;
  width: fit-content
}

.contact_form .telbox {
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  margin-bottom: 5rem
}

@media(max-width: 767px) {
  .contact_form .telbox {
    margin-bottom: 2.5rem
  }
}

.contact_form .telbox a {
  display: grid;
  place-content: center;
  width: 578px;
  height: 144px;
  border: 1px solid #000;
  background-color: #fff;
  padding: 1.5rem 4%
}

@media(max-width: 767px) {
  .contact_form .telbox a {
    width: 80vw;
    height: unset;
    padding: 1rem 4%
  }
}

.contact_form .telbox a .tel01 {
  font-size: 2.6875rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .05em;
  text-align: center
}

@media(max-width: 767px) {
  .contact_form .telbox a .tel01 {
    font-size: 1.5rem
  }
}

.contact_form .telbox a .tel01 span {
  display: block;
  font-size: 1.5625rem;
  font-weight: 500;
  line-height: 1.5
}

@media(max-width: 767px) {
  .contact_form .telbox a .tel01 span {
    font-size: 1rem
  }
}

.tbl_contact {
  width: 100%;
  max-width: 900px;
  margin-inline: auto;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0 2.5rem
}

@media(max-width: 767px) {
  .tbl_contact {
    border-spacing: 0 1.5rem
  }
}

.tbl_contact .col_th {
  width: 35%
}

@media(max-width: 767px) {
  .tbl_contact .col_th {
    display: none
  }
}

.tbl_contact .col_td {
  width: 65%
}

@media(max-width: 767px) {
  .tbl_contact .col_td {
    display: none
  }
}

.tbl_contact th,
.tbl_contact td {
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.5
}

@media(max-width: 767px) {

  .tbl_contact th,
  .tbl_contact td {
    display: block;
    font-size: 0.875rem
  }
}

.tbl_contact th {
  text-align: left;
  position: relative
}

@media(max-width: 767px) {
  .tbl_contact th {
    padding-bottom: .4rem
  }
}

.tbl_contact .required::before,
.tbl_contact .any::before {
  font-size: 0.8125rem;
  font-weight: 700;
  line-height: 1;
  padding: .2rem .6rem .2rem;
  margin-right: .9rem;
  position: relative;
  top: -0.1em
}

@media(max-width: 767px) {

  .tbl_contact .required::before,
  .tbl_contact .any::before {
    padding: .1rem .5rem;
    margin-right: .3rem
  }
}

.tbl_contact .required::before {
  content: "必須";
  background-color: #221e1c;
  color: #f28021
}

.tbl_contact .any::before {
  content: "任意";
  background-color: #d8d8d8
}

.tbl_contact td input[type=text],
.tbl_contact td input[type=tel],
.tbl_contact td input[type=email],
.tbl_contact td input[type=date],
.tbl_contact td select {
  background: #fff;
  padding: 6px 5px
}

.tbl_contact td input[type=text],
.tbl_contact td input[type=email] {
  width: 100%
}

.tbl_contact td input[type=tel] {
  width: 100%
}

.tbl_contact td input[type=date] {
  width: 30%
}

.tbl_contact td select {
  width: 40%
}

.tbl_contact td textarea {
  width: 100%;
  height: 200px;
  background-color: #fff;
  padding: 5px
}

.tbl_contact td span.wpcf7-list-item {
  margin: 0 2em 0 0
}

.th_textarea {
  vertical-align: top
}

.th_textarea.required::before,
.th_textarea.any::before {
  top: .5rem
}

@media(max-width: 767px) {

  .th_textarea.required::before,
  .th_textarea.any::before {
    top: .3rem
  }
}

.btn_submit {
  display: table;
  margin: 0 auto;
  font-size: 1rem;
  color: #f28021;
  font-weight: 700;
  line-height: 1.5;
  position: relative
}

@media(max-width: 767px) {
  .btn_submit {
    font-size: 0.8125rem
  }
}

.btn_submit input[type=submit] {
  width: 420px;
  height: 60px;
  border: 1px solid #fff;
  background-color: #221e1c;
  text-align: center
}

@media(max-width: 767px) {
  .btn_submit input[type=submit] {
    width: 70vw;
    height: 3rem
  }
}

.btn_submit input[type=submit]:hover {
  transition: .3s ease
}

.btn_submit::after {
  content: "";
  width: 1em;
  height: 1px;
  background-color: currentColor;
  position: absolute;
  top: 50%;
  right: 0;
  translate: 50% -50%
}

.btn_submit input[type=submit][disabled] {
  opacity: .3
}

.btn_submit input[type=submit]:not([disabled]):hover {
  cursor: pointer;
  opacity: .8
}

.ajax-loader {
  display: none !important
}

.wpcf7-spinner {
  display: none !important
}

.thanks_first p.txt01 {
  margin-bottom: 3.5em
}

@media(max-width: 767px) {
  .thanks_first p.txt01 {
    margin-bottom: 2.5em
  }
}

.news_list {
  background-color: #221e1c;
  position: relative
}

.news_list::before {
  content: "";
  width: 95vw;
  height: 100%;
  background-color: #fff;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0
}

.news_list .inner {
  z-index: 2
}

.wp-pagenavi {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  align-content: unset;
  text-align: center
}

.wp-pagenavi a,
.wp-pagenavi span {
  width: 24px;
  height: 24px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  align-content: unset;
  border-radius: 100vmax;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  text-align: center;
  margin: 0 10px
}

@media(max-width: 767px) {

  .wp-pagenavi a,
  .wp-pagenavi span {
    font-size: 0.75rem;
    margin: 0 5px
  }
}

.wp-pagenavi a:hover {
  opacity: .7
}

.wp-pagenavi span.current {
  background: #f28021;
  color: #fff
}

.wp-pagenavi .previouspostslink,
.wp-pagenavi .nextpostslink {
  background-color: #f28021;
  font-size: 0.625rem;
  line-height: 1;
  text-align: center
}

body.news .breadcrumbs {
  position: relative;
  z-index: 3
}

.news_single {
  background-color: #221e1c;
  position: relative
}

.news_single::before {
  content: "";
  width: 95vw;
  height: 100%;
  background-color: #fff;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0
}

.news_single .inner {
  z-index: 2
}

.blog_single:not(:last-child) {
  margin-bottom: 5rem
}

@media(max-width: 767px) {
  .blog_single:not(:last-child) {
    margin-bottom: 2.5rem
  }
}

.blog_single .top {
  margin-bottom: 2.5rem
}

@media(max-width: 767px) {
  .blog_single .top {
    margin-bottom: 1.8rem
  }
}

.blog_single .top .ttl_post {
  margin-bottom: .2em
}

.blog_single .top .wrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center
}

.blog_single .top .wrap time.date {
  display: inline-block;
  line-height: 1.5rem;
  margin-right: 1.5em
}

@media(max-width: 767px) {
  .blog_single .top .wrap time.date {
    margin-right: 1em
  }
}

.blog_single .top .wrap .cate {
  display: inline-block;
  background-color: #f28021;
  border-radius: 100vmax;
  padding: 0 1em;
  line-height: 1.5rem;
  margin-right: 1em
}

.blog_single article>p:not(:last-child) {
  margin-bottom: 2.5rem
}

@media(max-width: 767px) {
  .blog_single article>p:not(:last-child) {
    margin-bottom: 1.5rem
  }
}

.blog_single h2,
.blog_single h3,
.blog_single h4,
.blog_single p,
.blog_single figcaption {
  font-family: "Zen Kaku Gothic New", sans-serif
}

.blog_single article>:is(.side_cmn, .area):not(:last-child) {
  margin-bottom: 2rem
}

@media(max-width: 767px) {
  .blog_single article>:is(.side_cmn, .area):not(:last-child) {
    margin-bottom: 1.5rem
  }
}

.blog_single h2:not(.ttl_post) {
  background-color: #f28021;
  padding: .4em .6em;
  font-size: 1.75rem;
  color: #fff;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .05em;
  margin-bottom: .8em
}

@media(min-width: 768px)and (max-width: 1199px) {
  .blog_single h2:not(.ttl_post) {
    font-size: 1.375rem
  }
}

@media(max-width: 767px) {
  .blog_single h2:not(.ttl_post) {
    font-size: 1.25rem
  }
}

.blog_single h3:not(.ttl01) {
  font-size: 1.375rem;
  color: #f28021;
  font-weight: 700;
  line-height: 1.5;
  margin-bottom: .6em
}

@media(min-width: 768px)and (max-width: 1199px) {
  .blog_single h3:not(.ttl01) {
    font-size: 1.1875rem
  }
}

@media(max-width: 767px) {
  .blog_single h3:not(.ttl01) {
    font-size: 1.125rem
  }
}

.blog_single h4 {
  background-color: #ebebeb;
  padding: .3em .4em;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .05em;
  margin-bottom: .8em
}

@media(max-width: 767px) {
  .blog_single h4 {
    font-size: 1rem
  }
}

.blog_single h5 {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.5;
  margin-bottom: .5em
}

@media(max-width: 767px) {
  .blog_single h5 {
    font-size: 1rem
  }
}

.blog_single p {
  font-size: 1rem;
  font-weight: 500;
  line-height: 2
}

@media(max-width: 767px) {
  .blog_single p {
    font-size: 0.8125rem
  }
}

.blog_single article>figure {
  text-align: center
}

.blog_single article>figure:not(:last-child) {
  margin-bottom: 1.8rem
}

@media(max-width: 767px) {
  .blog_single article>figure:not(:last-child) {
    margin-bottom: 1rem
  }
}

.blog_single .area {
  background-color: #faf8e5;
  max-width: 480px;
  padding: 1.2rem 2%
}

.blog_single .area ul li {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.5;
  margin-bottom: .5em
}

@media(max-width: 767px) {
  .blog_single .area ul li {
    font-size: 1rem
  }
}

.blog_single .area ul li:not(:last-child) {
  margin-bottom: 1em
}

.blog_single .area.wide {
  max-width: unset
}

.blog_single .btn_cmn {
  margin-top: 4.5rem
}

@media(max-width: 767px) {
  .blog_single .btn_cmn {
    margin-top: 3rem
  }
}

body.news .breadcrumbs {
  position: relative;
  z-index: 3
}

.column_list {
  background-color: #221e1c;
  position: relative
}

.column_list::before {
  content: "";
  width: 95vw;
  height: 100%;
  background-color: #fff;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0
}

.column_list .inner {
  z-index: 2
}

.column_list ul {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3.5rem 2.3148148148%;
  margin-bottom: 7rem
}

@media(max-width: 767px) {
  .column_list ul {
    grid-template-columns: repeat(1, 1fr);
    gap: 2rem 0;
    margin-bottom: 3rem
  }
}

.post_content_wrap {
  padding-top: 7.5rem;
  padding-bottom: 7.5rem;
  position: relative
}

@media(min-width: 768px)and (max-width: 1199px) {
  .post_content_wrap {
    padding-top: 3.5rem;
    padding-bottom: 3.5rem
  }
}

@media(max-width: 767px) {
  .post_content_wrap {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem
  }
}

.post_content_wrap>.inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: stretch
}

.post_content_wrap main {
  width: 70.3703703704%
}

@media(max-width: 767px) {
  .post_content_wrap main {
    width: 100%;
    margin-bottom: 2.5rem
  }
}

.post_content_wrap aside {
  width: 25.9259259259%
}

@media(min-width: 1200px) {
  .post_content_wrap aside {
    padding-top: 8rem
  }
}

@media(min-width: 768px)and (max-width: 1199px) {
  .post_content_wrap aside {
    padding-top: 5rem
  }
}

@media(max-width: 767px) {
  .post_content_wrap aside {
    width: 80vw;
    margin-inline: auto
  }
}

.post_content_wrap.column {
  background-color: #221e1c;
  position: relative
}

.post_content_wrap.column::before {
  content: "";
  width: 95vw;
  height: 100%;
  background-color: #fff;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0
}

.post_content_wrap.column .inner {
  z-index: 2
}

aside .ttl_side {
  font-size: 1.375rem;
  color: #f28021;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .05em;
  padding-bottom: .3em;
  border-bottom: 1px solid currentColor;
  margin-bottom: .8em
}

@media(max-width: 767px) {
  aside .ttl_side {
    font-size: 1.125rem
  }
}

aside .lump.ranking .ul_ranking li:not(:last-child) {
  margin-bottom: 2.5rem
}

@media(max-width: 767px) {
  aside .lump.ranking .ul_ranking li:not(:last-child) {
    margin-bottom: 1.5rem
  }
}

aside .lump.ranking .ul_ranking li figure {
  margin-bottom: .4rem
}

aside .lump.ranking .ul_ranking li figure img {
  width: 100%;
  -o-object-fit: cover;
  object-fit: cover
}

aside .lump.ranking .ul_ranking li time {
  display: block;
  color: #888
}

.column_single .top {
  padding-bottom: 1rem;
  border-bottom: 1px solid #888
}

.column_single .top time {
  color: #888;
  font-weight: 500
}

.works_list .catewrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
  gap: .5rem;
  margin-bottom: 2.5rem
}

.works_list .catewrap a {
  width: 150px;
  height: 45px;
  display: grid;
  place-content: center;
  background-color: #000;
  border-radius: 100vmax;
  font-size: 1.125rem;
  color: #fff;
  font-weight: 700;
  line-height: 1.5;
  text-align: center
}

@media(max-width: 767px) {
  .works_list .catewrap a {
    width: 7em;
    height: 1.5em;
    font-size: 0.875rem
  }
}

.works_list .catewrap a.cate_all {
  background-color: #f28021
}

.works_list ul {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3.5rem 2.3148148148%;
  margin-bottom: 5rem
}

@media(min-width: 768px)and (max-width: 1199px) {
  .works_list ul {
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem 4%;
    margin-bottom: 3rem
  }
}

@media(max-width: 767px) {
  .works_list ul {
    grid-template-columns: repeat(1, 1fr);
    gap: 2rem 4%;
    margin-bottom: 2rem
  }
}

.works_list ul li {
  box-shadow: 0 3px 6px rgba(0, 0, 0, .16)
}

.works_single .side_cmn .cate {
  display: grid;
  place-content: center;
  width: 168px;
  height: 32px;
  background-color: #000;
  border-radius: 100vmax;
  text-align: center;
  margin-bottom: .8rem
}

@media(max-width: 767px) {
  .works_single .side_cmn .cate {
    width: 7em;
    height: 2em
  }
}

.flow_first {
  background-color: #221e1c;
  position: relative
}

.flow_first::before {
  content: "";
  width: 95vw;
  height: 100%;
  background: url(images/index/bgr_tech01.svg) left top repeat;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0
}

.flow_first .inner {
  z-index: 2
}

.flow_first .lump:not(:last-child) {
  margin-bottom: 3.5rem
}

@media(max-width: 767px) {
  .flow_first .lump:not(:last-child) {
    margin-bottom: 2.4rem
  }
}

.flow_first .lump ul.ul01 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .6rem 3.7037037037%
}

@media(min-width: 768px)and (max-width: 1199px) {
  .flow_first .lump ul.ul01 {
    grid-template-columns: repeat(3, 1fr)
  }
}

@media(max-width: 767px) {
  .flow_first .lump ul.ul01 {
    grid-template-columns: repeat(2, 1fr)
  }
}

.flow_first .lump ul.ul01 li {
  background-color: #fff;
  border-radius: 10px;
  padding: 1.5rem 4%
}

.flow_first .lump ul.ul01 li:not(:nth-child(4n), :last-child) {
  position: relative
}

.flow_first .lump ul.ul01 li:not(:nth-child(4n), :last-child)::after {
  width: 23px;
  height: 26px;
  background-color: #221e1c;
  -webkit-clip-path: polygon(0 0, 100% 50%, 0 100%);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  position: absolute;
  top: 50%;
  left: calc(100% + 10px);
  transform: translateY(-50%)
}

@media(min-width: 1200px) {
  .flow_first .lump ul.ul01 li:not(:nth-child(4n), :last-child)::after {
    content: ""
  }
}

.flow_first .lump ul.ul01 li .step {
  line-height: 1.5;
  margin-bottom: 0em
}

.flow_first .lump ul.ul01 li h3.ttl_cmn2 {
  margin-bottom: 0
}

.servicelist_first .over_cmn:not(:last-child) {
  margin-bottom: 5rem
}

@media(max-width: 767px) {
  .servicelist_first .over_cmn:not(:last-child) {
    margin-bottom: 2.5rem
  }
}

.servicelist_first .over_cmn p.txt01 {
  margin-bottom: 2.5em
}

body.faq .breadcrumbs {
  color: #fff
}

.faq_first {
  background: #221e1c
}

.faq_first .catewrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: .5rem;
  margin-inline: auto;
  margin-bottom: 3.5rem
}

@media(max-width: 767px) {
  .faq_first .catewrap {
    margin-bottom: 2rem
  }
}

.faq_first .catewrap a {
  width: 150px;
  height: 45px;
  display: grid;
  place-content: center;
  border: 1px solid currentColor;
  background-color: #000;
  border-radius: 100vmax;
  font-size: 1.125rem;
  color: #fff;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  padding-right: 1rem;
  position: relative
}

@media(max-width: 767px) {
  .faq_first .catewrap a {
    width: 10em;
    height: 1.5em;
    font-size: 0.875rem
  }
}

.faq_first .catewrap a i {
  font-size: 0.625rem;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 8%
}

.faq_first .catewrap a.cate_all {
  background-color: #000
}

.faq_first h2.ttl_cmn2 {
  background-color: #f28021;
  padding: .4em .6em
}

.faq_first .wrap_faq {
  margin-bottom: 5rem
}

@media(max-width: 767px) {
  .faq_first .wrap_faq {
    margin-bottom: 2.5rem
  }
}

.company_greeting p.txt01 {
  margin-bottom: 1.5em
}

.company_overview {
  background-color: #221e1c
}

.company_overview dl {
  margin-bottom: 3.5rem
}

@media(max-width: 767px) {
  .company_overview dl {
    margin-bottom: 2rem
  }
}

.company_overview .map {
  position: relative;
  width: 100%;
  padding-top: 440px;
  overflow: hidden
}

@media(max-width: 767px) {
  .company_overview .map {
    padding-top: 100%
  }
}

.company_overview .map iframe {
  position: absolute;
  top: -200px;
  left: 0;
  width: 100%;
  height: calc(100% + 200px + 200px);
  pointer-events: none
}

@media(max-width: 767px) {
  .company_overview .map iframe {
    top: -30vw;
    height: calc(100% + 30vw + 30vw)
  }
}

/*# sourceMappingURL=lower-style.css.map */