/*
keyvisual
-------------------*/
.keyvisual-ttl {
  width: 100%;
  position: relative;
  z-index: 0;
}
.keyvisual-ttl::before {
  content: "";
  display: block;
  position: absolute;
  z-index: -1;
  top: 0;
  right: 0;
  width: auto;
  height: 100%;
  aspect-ratio: 159/172;
  background-image: url(../img/ttl_sp.png);
  background-image: -webkit-image-set(url(../img/ttl_sp.webp) type("image/webp"), url(../img/ttl_sp.png) type("image/png"));
  background-image: image-set(url(../img/ttl_sp.webp) type("image/webp"), url(../img/ttl_sp.png) type("image/png"));
  background-repeat: no-repeat;
  background-position: 0 0;
  background-size: 100% auto;
}
.keyvisual-ttl-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 1em 0;
  height: 12em;
}
.keyvisual-ttl-txt {
  font-size: 200%;
  line-height: 1.2;
  position: relative;
  z-index: 0;
  padding-left: 1em;
  width: 100%;
}
.keyvisual-ttl-txt::before {
  content: "";
  width: 0.75em;
  height: 0.15em;
  background: var(--color-grd);
  border-radius: 0.15em;
  position: absolute;
  top: 0.6em;
  left: 0;
}
@media screen and (min-width: 990px) {
  .keyvisual-ttl::before {
    aspect-ratio: 767/240;
    background-image: url(../img/ttl_pc.png);
    background-image: -webkit-image-set(url(../img/ttl_pc.webp) type("image/webp"), url(../img/ttl_pc.png) type("image/png"));
    background-image: image-set(url(../img/ttl_pc.webp) type("image/webp"), url(../img/ttl_pc.png) type("image/png"));
  }
  .keyvisual-txt {
    font-size: 235%;
  }
}

.crumbs {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1em;
  font-size: 87.5%;
  margin-top: 0.2em;
}
.crumbs-item i {
  color: var(--color-key);
}
.crumbs-item:not(:first-child)::before {
  content: "\f105";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  color: var(--color-sub);
  padding-right: 1em;
}

.ofr-pop {
  text-align: center;
}
.ofr-pop-inner {
  display: inline-block;
}
.ofr-pop-logo {
  display: inline-block;
  vertical-align: text-bottom;
  padding-right: 0.3em;
  width: 7.8em;
}
@media screen and (min-width: 688px) {
  .ofr-pop-inner {
    position: relative;
    z-index: 0;
    padding: 0 1.5em;
  }
  .ofr-pop-inner::before, .ofr-pop-inner::after {
    content: "";
    display: block;
    position: absolute;
    z-index: -1;
    bottom: 0;
    width: calc(5 * var(--px));
    height: min(100%, 2.5em);
    border-radius: 1em;
    background-color: var(--color-border);
  }
  .ofr-pop-inner::before {
    -webkit-transform: rotate(-30deg);
            transform: rotate(-30deg);
    left: 0;
  }
  .ofr-pop-inner::after {
    -webkit-transform: rotate(30deg);
            transform: rotate(30deg);
    right: 0;
  }
}
.ofr-consider {
  background: url(../img/consider_bg.jpg) no-repeat 50% 50%/cover;
}
.ofr-consider-inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1em 5%;
}
.ofr-consider-ttl {
  width: min(100%, 20em);
}
.ofr-consider-main {
  width: 100%;
}
.ofr-consider .tel-btn {
  border: var(--color-border) 1px solid;
}
@media screen and (min-width: 688px) {
  .ofr-consider .tel-btn {
    border: 0;
    background-color: #fff;
    border-radius: 1em;
    padding: 1em 1.5em;
  }
}
@media screen and (min-width: 990px) {
  .ofr-consider-ttl {
    width: 20em;
  }
  .ofr-consider-main {
    width: calc(95% - 20em);
  }
}
.ofr-flow {
  border: var(--color-border) 1px solid;
  border-radius: 1em;
  position: relative;
  z-index: 0;
}
.ofr-flow.box {
  padding-top: 3em;
  padding-bottom: 1.5em;
}
.ofr-flow-ttl {
  background-color: var(--color-key2-b);
  color: #fff;
  font-size: min(125%, 4.8vw);
  font-weight: 700;
  text-align: center;
  padding: 0.4em 0;
  position: absolute;
  top: -0.8em;
  left: 1.5em;
  width: calc(100% - 3em);
}
.ofr-flow-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0 2%;
}
.ofr-flow-list li {
  width: min(32%, 210 * var(--px));
  padding-top: 1.2em;
  position: relative;
  z-index: 0;
}
.ofr-flow-list-num {
  color: var(--color-key);
  font-size: 200%;
  font-weight: 900;
  line-height: 1;
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
}
.ofr-flow-list-image {
  position: relative;
  z-index: 0;
  padding-bottom: 5%;
}
.ofr-flow-list-image img {
  max-width: 10em;
  margin: auto;
}
.ofr-flow-list-image::before {
  content: "";
  display: block;
  position: absolute;
  z-index: -1;
  bottom: 0;
  left: 0;
  width: 100%;
  height: calc(100% - 1em);
  background-color: var(--color-bg2);
  border-radius: 1em;
}
.ofr-flow-list-txt {
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
  margin-top: 0.3em;
}

/*
swiper
-------------------*/
.swiper-pagination {
  position: static;
  margin-top: 1em;
}
.swiper-pagination-bullet {
  width: 10px;
  height: 10px;
  background-color: var(--color-border);
  opacity: 1;
}
.swiper-pagination-bullet-active {
  background: var(--color-grd);
}

.swiper-slideshow {
  width: 100%;
}

.slideshow-item-img {
  aspect-ratio: 4/3;
  overflow: hidden;
}

/*
price
-------------------*/
.price-include {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 5px 4%;
}
.price-include li {
  border-radius: calc(5 * var(--px));
  background-color: var(--color-key-b);
  color: #fff;
  font-weight: 700;
  text-align: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 48%;
  height: 4em;
}
@media screen and (min-width: 688px) {
  .price-include {
    gap: 0.5em 3.5%;
  }
  .price-include li {
    width: 31%;
  }
}
@media screen and (min-width: 990px) {
  .price-include {
    gap: 0 0.8%;
  }
  .price-include li {
    width: 16%;
  }
}

.price-include-desc {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.5em 1.5em;
}
.price-include-desc > * {
  width: 100%;
}
@media screen and (min-width: 688px) {
  .price-include-desc > * {
    width: auto;
  }
  .price-include-desc > ul {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    padding-left: 1.5em;
    border-left: var(--color-border) 1px solid;
  }
}
@media screen and (min-width: 1200px) {
  .price-include-desc > ul {
    -webkit-columns: 2;
       -moz-columns: 2;
            columns: 2;
  }
}

.price-3cut {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.price-3cut-image {
  aspect-ratio: 3/4;
  border: #fff calc(2 * var(--px)) solid;
  display: block;
  overflow: hidden;
  width: 32%;
}
.price-3cut-image img {
  -o-object-position: 50% 0;
     object-position: 50% 0;
}
@media screen and (min-width: 688px) {
  .price-3cut-image {
    aspect-ratio: 16/9;
  }
}

.price-btns .btn {
  width: 100%;
  padding-left: 1em;
  padding-right: 1em;
}
@media screen and (min-width: 688px) {
  .price-btns .btn {
    width: calc(50% - 0.4em);
  }
}

.image-zoom {
  position: relative;
  z-index: 0;
  overflow: hidden;
}
.image-zoom::before, .image-zoom::after {
  display: block;
  position: absolute;
  z-index: 0;
  bottom: 0;
  right: 0;
}
.image-zoom::before {
  content: "";
  width: calc(28 * var(--px));
  height: calc(28 * var(--px));
  border-top-left-radius: calc(28 * var(--px));
  background-color: #fff;
}
.image-zoom::after {
  content: "\f00e";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  color: var(--color-key);
  font-size: calc(14 * var(--px));
  right: calc(3 * var(--px));
}

.price-add-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1em 4%;
}
.price-add-image {
  width: 70%;
}
.price-add-txt {
  width: 100%;
}
@media screen and (min-width: 688px) {
  .price-add-image {
    width: 30%;
  }
  .price-add-txt {
    width: 66%;
  }
}

.price-payment {
  border: var(--color-border) 1px solid;
}
.price-payment-ttl {
  background-color: var(--color-key2-b);
  color: #fff;
  font-weight: 700;
  padding: 0.4em 1em;
  text-align: center;
}
.price-payment-body {
  background-color: #fff;
}
@media screen and (min-width: 688px) {
  .price-payment-ttl {
    font-size: 125%;
  }
}

/*
option
-------------------*/
.option-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 1em 4%;
}
.option-list > li {
  width: 100%;
  border: var(--color-border) 1px solid;
  border-radius: 1em;
  overflow: hidden;
}
.option-list > li.full {
  width: 100%;
}
.option-list-txt {
  padding: 1em 1.5em;
}
.option-list-txt-sub {
  border-top: var(--color-border) 1px solid;
  margin-top: 0.8em;
  padding-top: 0.5em;
}
@media screen and (min-width: 688px) {
  .option-list li {
    width: 48%;
  }
}
.option-list.min li {
  width: 48%;
}
.option-list.min li.full {
  width: 100%;
}
@media screen and (min-width: 688px) {
  .option-list.min li {
    width: 30.6666666667%;
  }
}

.option-timing1 {
  background-color: #dbf4ff;
}
.option-timing2 {
  background-color: #c8faff;
}

.option-add {
  border: var(--color-border) 1px solid;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 1em 4%;
}
.option-add-image {
  width: 70%;
}
.option-add-txt {
  width: 100%;
  line-height: 1.2;
  text-align: center;
}
@media screen and (min-width: 688px) {
  .option-add-image {
    width: 30%;
  }
  .option-add-txt {
    width: auto;
    text-align: left;
  }
}

/*
guide
-------------------*/
.guide-item {
  position: relative;
  z-index: 0;
}
.guide-item:not(:last-child)::after {
  content: "";
  display: block;
  position: absolute;
  z-index: 0;
  top: 100%;
  left: calc(50% - 1em);
  width: 2em;
  height: 1em;
  clip-path: polygon(0 0, 50% 100%, 100% 0);
  background-image: url(../img/bg_tx.png);
  background-image: -webkit-image-set(url(../img/bg_tx.webp) type("image/webp"), url(../img/bg_tx.png) type("image/png"));
  background-image: image-set(url(../img/bg_tx.webp) type("image/webp"), url(../img/bg_tx.png) type("image/png"));
}
.guide-item-ttl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  cursor: pointer;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
.guide-item-ttl:hover {
  opacity: 0.8;
}
.guide-item-ttl i {
  color: var(--color-sub);
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
.guide-item-ttl.open i {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
.guide-item-ttl-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  gap: 1em;
  line-height: 1;
  padding-bottom: 0.5em;
}
.guide-item-ttl-step {
  color: var(--color-key);
  font-weight: 700;
  line-height: 0.8;
}
.guide-item-ttl-num {
  font-size: 212%;
  font-weight: 900;
  display: block;
}
.guide-item-body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}
.guide-item-body-image {
  width: min(68%, 300px);
}
.guide-item-body-txt {
  padding: 1.5em;
  width: 100%;
}
.guide-item-body-full {
  padding: 1.5em 0.8em;
  width: 100%;
}
@media screen and (min-width: 990px) {
  .guide-item-body-image {
    width: 30%;
  }
  .guide-item-body-txt {
    padding: 1.5em;
    width: 70%;
  }
}

/*
works
-------------------*/
.works-sample {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 1em;
}
.works-sample li {
  width: calc((100% - 1em) / 2);
}
@media screen and (max-width: 687px) {
  .works-sample li:nth-of-type(9) {
    display: none;
  }
}
@media screen and (min-width: 688px) {
  .works-sample li {
    width: calc((100% - 2em) / 3);
  }
}

.works-sort-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 1em 2em;
}
.works-sort-cat {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.5em;
}
.works-sort-cat a {
  display: inline-block;
  text-decoration: none;
  background-color: #fff;
  border: var(--color-key2-b) 2px solid;
  border-radius: 2em;
  color: var(--color-key2);
  padding: 0.4em 1em;
}
.works-sort-cat a.current {
  background-color: var(--color-key2-b);
  color: #fff;
}
.works-sort-more {
  font-size: 87.5%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 1.5em;
}
.works-sort-more a {
  display: inline-block;
  color: var(--color-base);
  text-decoration: none;
}
.works-sort-more a::before {
  content: "\f105";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  color: var(--color-key);
  padding-right: 0.5em;
}

.works-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 2em 4%;
}
.works-list li {
  width: 48%;
}
.works-list li a {
  display: block;
  text-decoration: none;
  color: var(--color-base);
}
.works-list-thumb {
  display: block;
  aspect-ratio: 1/1;
}
.works-list-thumb img {
  -o-object-fit: contain;
     object-fit: contain;
  width: 100%;
  height: 100%;
}
.works-list-ttl {
  font-size: 87.5%;
  display: block;
  margin-top: 0.5em;
}
@media screen and (min-width: 688px) {
  .works-list {
    gap: 2em 3.5%;
  }
  .works-list li {
    width: 31%;
  }
}

.works-single-content .header-hr i {
  width: 1.2em;
  padding-right: 0.3em;
}
.works-single-desc {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 1em 3.5%;
}
.works-single-desc-item {
  font-size: 87.5%;
  width: 100%;
}
@media screen and (min-width: 1200px) {
  .works-single-desc-item {
    width: 31%;
  }
}

.works-cat-list,
.works-tag-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.5em;
}
.works-cat-list a,
.works-tag-list a {
  display: inline-block;
  text-decoration: none;
  background-color: var(--color-key2-b);
  border: var(--color-key2-b) 2px solid;
  border-radius: 2em;
  color: #fff;
  padding: 0.4em 1.2em;
}

.works-tag-list a {
  background-color: var(--color-key-b);
  border-color: var(--color-key-b);
}

.swiper-works {
  width: 100%;
}
.swiper-works .swiper-slide {
  aspect-ratio: 3/2;
  overflow: hidden;
}
.swiper-works .swiper-slide img {
  -o-object-fit: contain;
     object-fit: contain;
  width: 100%;
  height: 100%;
}
.swiper-works-pagination {
  position: static;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.5em;
  margin-top: 1em;
}
.swiper-works-pagination .swiper-pagination-bullet {
  background: none;
  opacity: 1;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  border-radius: 0;
  display: block;
  margin: 0 !important;
  width: calc((100% - 1em) / 3);
  aspect-ratio: 3/2;
  height: auto;
  position: relative;
  z-index: 0;
  cursor: pointer;
}
.swiper-works-pagination .swiper-pagination-bullet::before {
  content: "";
  display: block;
  position: absolute;
  z-index: 0;
  pointer-events: none;
  width: 100%;
  height: 100%;
  border: 3px solid transparent;
  top: 0;
  left: 0;
}
.swiper-works-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active::before {
  border-color: var(--color-key-b);
}
.swiper-works-pagination .swiper-pagination-bullet img {
  -o-object-fit: contain;
     object-fit: contain;
  width: 100%;
  height: 100%;
}
@media screen and (min-width: 688px) {
  .swiper-works-pagination {
    margin-top: 2em;
  }
  .swiper-works-pagination .swiper-pagination-bullet {
    width: calc((100% - 2.5em) / 6);
  }
}

.works-catdesc-ttl {
  font-weight: 700;
  margin-bottom: 1em;
}
.works-catdesc-ttl .strong {
  color: var(--color-key);
  font-size: 118%;
  font-weight: 900;
  padding-right: 0.5em;
}
.works-catdesc-row {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
  gap: 1em 4%;
}
.works-catdesc-image {
  aspect-ratio: 4/3;
}
.works-catdesc-image img {
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
}
@media screen and (min-width: 688px) {
  .works-catdesc-ttl {
    font-size: 125%;
  }
}
@media screen and (min-width: 990px) {
  .works-catdesc-image.info img {
    -o-object-position: 48% 50%;
       object-position: 48% 50%;
  }
  .works-catdesc-image.essential img {
    -o-object-position: 67% 50%;
       object-position: 67% 50%;
  }
  .works-catdesc-image.news img {
    -o-object-position: 50% 50%;
       object-position: 50% 50%;
  }
  .works-catdesc-image.cat4 img {
    -o-object-position: 50% 50%;
       object-position: 50% 50%;
  }
  .works-catdesc-image.cat5 img {
    -o-object-position: 55% 50%;
       object-position: 55% 50%;
  }
}

/*
service
-------------------*/
.service-cards {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 1em 4%;
}
.service-cards > li {
  background-color: #fff;
  border-radius: 1em;
  padding: 1.5em 1em;
  width: 100%;
  margin-top: 2em;
  position: relative;
  z-index: 0;
}
.service-cards-ico {
  color: var(--color-key);
  font-size: 300%;
  font-weight: 900;
  line-height: 1;
  position: absolute;
  top: -0.7em;
  left: calc(50% - 0.5em);
}
.service-cards-ttl {
  color: var(--color-key3);
  font-weight: 700;
  margin-bottom: 1em;
  text-align: center;
}
@media screen and (min-width: 688px) {
  .service-cards > li {
    padding: 1.5em;
    width: 48%;
  }
}
.service-reason-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.5em 1.5em;
}
.service-reason-ttl {
  width: 100%;
}
.service-reason-body {
  width: 100%;
}
@media screen and (min-width: 688px) {
  .service-reason-ttl {
    width: auto;
  }
  .service-reason-body {
    width: auto;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
  }
}
.service-work-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.8em 4%;
}
.service-work-list figure {
  width: 48%;
}
@media screen and (min-width: 688px) {
  .service-work-list {
    gap: 2%;
  }
  .service-work-list figure {
    width: 23.5%;
  }
}
.service-3cut {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 3.5%;
}
.service-3cut figure {
  width: 31%;
}
.service-eq-row {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.service-eq-image {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 0.8em 4%;
}
.service-eq-image figure {
  width: 48%;
  border: #fff 3px solid;
}
@media screen and (min-width: 688px) {
  .service-eq-image {
    gap: 2%;
  }
  .service-eq-image figure {
    width: 23.5%;
  }
}
@media screen and (min-width: 990px) {
  .service-eq-row {
    margin-top: 1em;
  }
  .service-eq-image {
    gap: 0.8em 4%;
    padding-top: 8%;
  }
  .service-eq-image figure {
    width: 48%;
  }
  .service-eq-image figure:nth-of-type(odd) {
    margin-top: -16%;
  }
}
.service-feat {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.8em 3.5%;
  margin-bottom: 1.5em;
}
.service-feat li {
  background-color: #fff;
  border-radius: 1em;
  padding: 1em;
  text-align: center;
  width: 80%;
}
@media screen and (max-width: 687px) {
  .service-feat li:nth-of-type(even) {
    margin-left: auto;
  }
}
@media screen and (min-width: 688px) {
  .service-feat li {
    width: 31%;
    padding: 1.5em 1em;
  }
}

/*
faq
-------------------*/
.faq-item-header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 1em;
  cursor: pointer;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
.faq-item-header i {
  color: var(--color-sub);
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
.faq-item-header-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.5em;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
.faq-item-header-q {
  color: var(--color-key);
  font-size: 200%;
  font-weight: 900;
  line-height: 1;
  margin-top: -0.3em;
}
.faq-item-header-main {
  font-weight: 700;
}
.faq-item-header:hover {
  opacity: 0.8;
}
.faq-item-header.open i {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
.faq-item-body {
  border-top: var(--color-border) 1px solid;
  padding-top: 1em;
  margin-top: 1em;
}
.faq-item-box {
  border-radius: calc(5 * var(--px));
  display: inline-block;
  padding: 0.8em;
  background-color: var(--color-bg2);
}
.faq-item:nth-of-type(odd) {
  background-color: var(--color-bg);
}
.faq-item:nth-of-type(odd) .faq-item-box {
  background-color: #fff;
}

/*
commerce
-------------------*/
.commerce-table > * > tr > th,
.commerce-table > * > tr > td {
  padding-left: max(2vw, 0.6em);
  padding-right: 0.6em;
}
.commerce-table > * > tr > th {
  background-color: var(--color-bg);
  min-width: 7em;
}

/*
sitemap
-------------------*/
.sitemap-list li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1em;
  margin: 0.5em 0;
}
.sitemap-list li a {
  color: var(--color-base);
  text-decoration: none;
}
.sitemap-list li::before {
  content: "";
  display: block;
  width: 0.5em;
  height: calc(2 * var(--px));
  background-color: var(--color-key-b);
}
@media screen and (min-width: 688px) {
  .sitemap-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 0 4%;
  }
  .sitemap-list > ul {
    width: 48%;
  }
}

/*
home
-------------------*/
.home-box {
  padding-top: 4em;
  padding-bottom: 4em;
}
.home-keyvisual {
  position: relative;
  z-index: 0;
}
.home-keyvisual-pop {
  position: absolute;
  z-index: 2;
  width: 90%;
  top: 9%;
  left: 5%;
}
.home-keyvisual-slide {
  position: absolute;
  z-index: 1;
  width: 87%;
  top: 16.5%;
  left: 5%;
  border: #fff 1.6vw solid;
  -webkit-box-shadow: 1px 1px calc(20 * var(--px)) 0px rgba(0, 0, 0, 0.2);
          box-shadow: 1px 1px calc(20 * var(--px)) 0px rgba(0, 0, 0, 0.2);
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
}
.home-keyvisual-slide .slide {
  aspect-ratio: 16/9;
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  width: 100%;
  opacity: 0;
  -webkit-animation: kvAnimation 24s infinite;
          animation: kvAnimation 24s infinite;
}
.home-keyvisual-slide .slide:nth-child(1) {
  -webkit-animation-delay: 0s;
          animation-delay: 0s;
  position: relative;
}
.home-keyvisual-slide .slide:nth-child(2) {
  -webkit-animation-delay: 4s;
          animation-delay: 4s;
}
.home-keyvisual-slide .slide:nth-child(3) {
  -webkit-animation-delay: 8s;
          animation-delay: 8s;
}
.home-keyvisual-slide .slide:nth-child(4) {
  -webkit-animation-delay: 12s;
          animation-delay: 12s;
}
.home-keyvisual-slide .slide:nth-child(5) {
  -webkit-animation-delay: 16s;
          animation-delay: 16s;
}
.home-keyvisual-slide .slide:nth-child(6) {
  -webkit-animation-delay: 20s;
          animation-delay: 20s;
}
.home-keyvisual-slide .slide picture,
.home-keyvisual-slide .slide img {
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
@media screen and (min-width: 688px) {
  .home-keyvisual {
    margin-bottom: 5em;
  }
  .home-keyvisual-pop {
    width: 43%;
    top: 8%;
    left: 11%;
  }
  .home-keyvisual-slide {
    width: 47%;
    top: 20%;
    left: 10%;
    border-width: 1vw;
  }
}
.home-price-3cut {
  position: relative;
  z-index: 1;
}
.home-price-num {
  position: relative;
  z-index: 0;
  line-height: 1;
  padding: 1.5em 0;
}
.home-price-num::before {
  content: "";
  display: block;
  width: calc(100% + 2em);
  height: calc(100% + 3em);
  background-color: #fff;
  position: absolute;
  z-index: -1;
  bottom: 0;
  left: -1em;
}
@media screen and (min-width: 688px) {
  .home-price-num {
    padding-top: 2em;
    padding-bottom: 2em;
  }
}
.home-guide-header {
  font-size: 150%;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  padding-bottom: 1em;
  margin-bottom: 1em;
  position: relative;
  z-index: 0;
}
.home-guide-header::before {
  content: "";
  display: block;
  width: 5em;
  height: calc(4 * var(--px));
  border-radius: 1em;
  background: var(--color-grd);
  position: absolute;
  bottom: 0;
  left: calc(50% - 2.5em);
}
.home-guide .guide-item-body {
  position: relative;
  z-index: 0;
  overflow: visible;
  margin-top: 2em;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}
.home-guide .guide-item-ttl-step {
  position: absolute;
  z-index: 1;
  top: -0.5em;
  left: -0.5em;
  font-size: 165%;
}
.home-guide .guide-item-ttl-step::before {
  content: "";
  display: block;
  width: 0;
  height: 100%;
  border-left: var(--color-border) 1px solid;
  -webkit-transform: rotate(25deg);
          transform: rotate(25deg);
  position: absolute;
  z-index: -1;
  bottom: -0.5em;
  right: -0.7em;
}
.home-guide-item-ttl {
  font-size: 120%;
  font-weight: 900;
  margin-bottom: 0.5em;
}
@media screen and (min-width: 688px) {
  .home-guide .guide-item-body {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
}
@media screen and (min-width: 990px) {
  .home-guide .guide-item-body {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .home-guide .guide-item-body:nth-of-type(even) {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }
  .home-guide .guide-item-body-txt {
    padding: 2em;
    position: relative;
    z-index: 0;
  }
  .home-guide-item-ttl {
    margin-left: 3em;
  }
}

/* keuvisual animation */
@-webkit-keyframes kvAnimation {
  0% {
    opacity: 0;
  }
  4% {
    opacity: 1;
  }
  16.67% {
    opacity: 1;
  }
  20.67% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
@keyframes kvAnimation {
  0% {
    opacity: 0;
  }
  4% {
    opacity: 1;
  }
  16.67% {
    opacity: 1;
  }
  20.67% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .home-keyvisual-slide .slide {
    -webkit-animation: none;
            animation: none;
  }
  .home-keyvisual-slide .slide:nth-child(1) {
    opacity: 1;
  }
  .home-keyvisual-slide .slide:nth-child(n+2) {
    opacity: 0;
  }
}