body.page-id-3128 {
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0;
}
ul,
ol {
  list-style: none;
}
.main {
  background: #b71c24;
}
.sp {
  display: none;
}
.section-head {
  text-align: center;
  margin-bottom: 5rem;
}
.section-ttl {
  margin: 0 auto;
}
.ttl-gold {
  display: inline-block;
  text-align: center;
  height: 50px;
  border-radius: 25px;
  background: linear-gradient(
    to right,
    #d69c00 0%,
    #f9df7b 32.8%,
    #fff3a6 52.4%,
    #f9df7b 72.98%,
    #d69c00 100%
  );
  padding: 0 27px;
  font-size: 2.6rem;
  color: #000;
  font-weight: 900;
  align-content: center;
}
.cta-block {
  background: #b71c24;
  border-radius: 20px;
  padding-bottom: 5rem;
  .cta-head {
    position: relative;
    background: #f4e727;
    height: 100px;
    border-radius: 20px 20px 0px 0px;
    align-content: center;
    margin-bottom: 3rem;
    .badge {
      position: absolute;
      left: 0;
      top: -54px;
      width: 20.3%;
      height: auto;
    }
    .txt {
      font-size: 3.2rem;
      color: #b71c24;
      font-weight: 700;
      text-align: center;
      line-height: 1.3;
    }
    .cta-charactor {
      position: absolute;
      right: -20px;
      top: -74px;
      width: 24.3%;
      height: auto;
    }
  }
  .cta-ttl {
    font-size: 3.2rem;
    font-weight: 700;
    color: #ffffff;
    text-align: center;
    margin-bottom: 3rem;
  }
  .cta-buttons {
    display: flex;
    .tel-block,
    .mail-block {
      flex: 1 1 0;
      text-align: center;
      .ttl {
        font-size: 2rem;
        font-weight: 700;
        color: #ffffff;
      }
    }
    .tel-block {
      border-right: 1px solid #fff;
      .tel-btn {
        font-family: "Oswald", sans-serif;
        display: block;
        font-size: 4.9rem;
        font-weight: 700;
        line-height: 1.469;
        color: #ffffff;
        text-decoration: none;
        margin-top: -5px;
      }
      .hours {
        font-size: 1.4rem;
        color: #fff;
      }
    }
    .mail-block {
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      align-items: center;
      .ttl {
        margin-bottom: 1.2rem;
        line-height: 1.45;
      }
      .btn-mail {
        display: inline-block;
        background: #ffd54f;
        color: #000;
        font-size: 2rem;
        font-weight: 700;
        text-decoration: none;
        text-align: center;
        align-content: center;
        position: relative;
        width: 351px;
        height: 60px;
        border-radius: 30px;
        background: #f4e727;
        box-shadow: 0px 5px #e5a71a;
        &::after {
          content: "";
          width: 0;
          height: 0;
          border-style: solid;
          border-top: 5px solid transparent;
          border-bottom: 5px solid transparent;
          border-left: 10px solid #000000;
          border-right: 0;
          position: absolute;
          top: 0;
          bottom: 0;
          right: 30px;
          margin: auto 0;
        }
        &:hover {
          opacity: 0.8;
        }
      }
    }
  }
}

/* mv-section */
.mv-section {
  .mv-contents {
    position: relative;
    .mv-tel {
      position: absolute;
      bottom: 30px;
      right: 30px;
      z-index: 10;
      width: 370px;
      height: 90px;
      background-color: #fff;
      border-radius: 45px;
      align-content: center;
      box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.3);
      .mv-tel-inner {
        padding-right: 27px;
        padding-left: 36px;
        display: flex;
        align-items: center;
        .icon {
          flex: 0 0 auto;
          margin-right: 1rem;
          img {
            width: 33px;
            height: 51px;
          }
        }
        .tel-number {
          flex: 0 0 auto;
          text-align: left;
          margin-right: 1.5rem;
          .ttl {
            font-size: 1.6rem;
            font-weight: 700;
            color: #b71c24;
            margin: 0 0 8px;
            line-height: 1;
          }
          .number {
            display: block;
            font-family: "Oswald", sans-serif;
            font-size: 3rem;
            font-weight: 700;
            color: #b71c24;
            text-decoration: none;
            line-height: 1;
          }
        }
        .time {
          flex: 1 1 auto;
          border-left: 1px solid #b71c24;
          padding-left: 1rem;
          height: 50px;
          align-content: center;
          p {
            text-align: center;
            font-size: 1rem;
            color: #b71c24;
            line-height: 1.5;
          }
        }
      }
    }
  }
}

/* nayami-section */
.nayami-section {
  position: relative;
  background: #b71c24;
  padding: 10rem 2rem 0;
  &::after {
    content: "";
    position: absolute;
    bottom: -199px;
    left: 0;
    width: 100%;
    height: 200px;
    background: #b71c24;
    clip-path: polygon(0 0, 50% 100%, 100% 0);
    pointer-events: none;
  }
  .nayami-ttl {
    text-align: center;
    margin-bottom: 40px;
    img {
      width: 100%;
      max-width: 654px;
      height: auto;
    }
  }
  .nayami-list {
    display: flex;
    justify-content: space-between;
    .nayami-item {
      width: calc((100% - 201px) / 4);
      img {
        width: 100%;
        max-width: 200px;
        height: auto;
        margin-bottom: 1rem;
      }
      p {
        font-weight: 700;
        font-size: 1.8rem;
        line-height: 1.4444;
        color: #fff;
        text-align: center;
        margin: 0 -25px;
      }
    }
  }
}

/* solution-section */
.solution-section {
  padding: 0 2rem;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0.5) 0%, rgba(128, 128, 128, 0.5) 100%)
      bottom / 100% 400px no-repeat,
    #b71c24;
  background-blend-mode: multiply;
  background-repeat: no-repeat;
  background-size: 100% 400px; /* 幅100%、高さ400px */
  background-position: bottom;
  .solution-head-wrap {
    margin: 0 -2rem;
    padding: 20rem 2rem 12.4rem;
    background: linear-gradient(
      to right,
      #d69c00 0%,
      #f9df7b 32.8%,
      #fff3a6 52.4%,
      #f9df7b 72.98%,
      #d69c00 100%
    );
    .solution-head {
      max-width: 1312px;
      margin: 0 auto;
      position: relative;
      .solution-ttl {
        width: 80%;
        margin: 0;
      }
    }
    .solution-charactor {
      width: 28.6%;
      height: auto;
      position: absolute;
      right: -70px;
      top: -80px;
      bottom: 0;
      margin: auto 0;
    }
  }
  .section-inner {
    max-width: 1200px;
    padding-bottom: 10rem;
    .container {
      .solution-card {
        margin-top: -124px;
        background: #fff;
        border-radius: 60px;
        padding: 55px 2rem 0;
        text-align: center;
        box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.2);
        .ttl-gold {
          margin-bottom: 20px;
        }
        .ttl {
          width: 83.6%;
          max-width: 836px;
          height: auto;
          margin: 0 auto 3rem;
        }
        .speech-list {
          display: flex;
          justify-content: space-between;
          margin: 0 auto;
          max-width: 838px;
          .speech-item {
            &:nth-child(1),
            &:nth-child(3) {
              margin-top: 50px;
              position: relative;
            }
            &:first-child::after {
              content: "";
              position: absolute;
              bottom: 5px;
              left: 190px;
              transform: translateX(50%) rotate(315deg);
              width: 0;
              height: 0;
              /* 矢印のサイズ：高さ40px、幅31px */
              border-width: 40px 15.5px 0 15.5px;
              border-style: solid;
              border-color: #18284c transparent transparent transparent;
            }
            &:nth-child(3)::after {
              content: "";
              position: absolute;
              bottom: 5px;
              right: 215px;
              transform: translateX(50%) rotate(45deg);
              transform-origin: center;
              width: 0;
              height: 0;
              border-width: 40px 15.5px 0 15.5px;
              border-style: solid;
              border-color: #18284c transparent transparent transparent;
            }
            width: 240px;
            height: 240px;
            background-color: #18284c;
            border-radius: 50%;
            align-content: center;
            p {
              font-size: 2.6rem;
              font-weight: 700;
              line-height: 1.4;
              text-align: center;
              color: #ffffff;
            }
          }
        }
        .speech-group-illu {
          margin: -90px auto 0;
          width: 318px;
          height: 164px;
          position: relative;
          z-index: 1;
          img {
            display: block;
            width: 100%;
            height: auto;
          }
        }
      }
      .solution-cta {
        display: flex;
        align-items: center;
        margin: -17px auto 60px;
        max-width: 924px;
        .solution-cta-charactor {
          flex: 0 0 auto;
          width: 162px;
          height: 282px;
          margin-right: 50px;
          position: relative;
        }
        .solution-txt-wrap {
          flex: 1 1 auto;
          padding-top: 30px;
          .solution-cta-text {
            color: #ffffff;
            font-weight: 700;
            font-size: 2.2rem;
            line-height: 1.45454545;
            .yellow {
              color: #f4e727;
            }
          }
          .solution-cta-ttl {
            margin-top: 17px;
          }
        }
      }
      .cta-block {
        background: none;
        border-radius: none;
        padding-bottom: 0;
      }
    }
  }
}

/* features-section */
.features-section {
  background: #b71c24;
  padding: 10rem 2rem 7.7rem;
  .section-inner {
    .container {
      .ttl-gold {
        margin-bottom: 2rem;
      }
      .features-ttl {
        width: 300px;
        height: auto;
        margin: 0 auto;
      }
      .wrap {
        position: relative;
        .features-charactor {
          width: 131px;
          height: auto;
          position: absolute;
          left: 75px;
          top: -173px;
        }
        .features-list {
          display: flex;
          flex-direction: column;
          gap: 5rem;
          .features-item {
            background: #fff;
            width: 100%;
            padding: 5rem;
            position: relative;
            border-radius: 20px;
            box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.2);
            .num {
              font-weight: 800;
              font-family: "Oswald", sans-serif;
              font-size: 120px;
              color: #f4e727;
              position: absolute;
              right: 30px;
              top: -76px;
              line-height: 1.4833333;
            }
            .features-item-content {
              display: flex;
              justify-content: space-between;
              align-items: center;
              .img-wrap {
                width: 44.4444%;
              }
              .text-wrap {
                width: 48.8888%;
                .ttl {
                  height: 40px;
                  margin-bottom: 2rem;
                  text-align: left;
                  img {
                    height: 100%;
                    width: auto;
                  }
                }
                .sub-ttl {
                  font-size: 2.6rem;
                  font-weight: 500;
                  text-align: left;
                  margin-bottom: 1rem;
                }
                .txt {
                  font-size: 1.6rem;
                  text-align: left;
                  line-height: 1.5;
                }
              }
            }
          }
        }
      }
    }
  }
}

/* point-section */
.point-section {
  padding: 7.5rem 2rem 15rem;
  position: relative;
  .section-inner {
    .container {
      .ttl-gold {
        margin-bottom: 2rem;
      }
      .point-ttl {
        width: 510px;
        height: auto;
        margin: 0 auto;
      }
      .wrap {
        position: relative;
        .points-list {
          display: grid;
          grid-template-columns: repeat(2, 1fr);
          gap: 24px 16px;
        }
        .point-item {
          background: #fff;
          border-radius: 20px;
          height: 150px;
          padding-left: 100px;
          padding-right: 20px;
          position: relative;
          box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
          align-content: center;
          &:nth-child(5) {
            grid-column: 1 / -1;
          }
          .point-item-num {
            position: absolute;
            top: 50%;
            left: 30px;
            transform: translateY(-50%);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 2.6rem;
            font-family: "Oswald", sans-serif;
            font-weight: 700;
            color: #000;
            line-height: 1;
            width: 50px;
            height: 50px;
            background: linear-gradient(
              #d69c00 0%,
              #f9df7b 32.8%,
              #fff3a6 52.4%,
              #f9df7b 72.98%,
              #d69c00 100%
            );
            border: 2px solid #d6a56b;
          }
          .point-item-txt {
            margin: 0 0 8px;
            font-size: 2rem;
            font-weight: 500;
            line-height: 1.45;
            color: #000;
            text-align: left;
          }
          .point-item-ttl {
            text-align: left;
            font-weight: 700;
            font-size: 2.6rem;
            font-weight: 700;
            color: #b71c24;
            line-height: 1.4;
          }
        }
        .point-charactor {
          position: absolute;
          width: 212px;
          height: auto;
          bottom: -70px;
          right: 30px;
        }
      }
    }
  }
}

/* purchase-section */
.purchase-section {
  background: #fff;
  padding: 10rem 2rem;
  .section-head {
    .ttl-gold {
      margin-bottom: 2rem;
    }
    .purchase-ttl {
      width: 280px;
      height: auto;
      margin: 0 auto;
    }
  }
  .head-txt {
    margin-bottom: 3rem;
    .ttl {
      font-size: 2rem;
      font-weight: 700;
      line-height: 1.45;
      margin-bottom: 1rem;
    }
    .txt {
      font-size: 1.6rem;
      line-height: 1.5;
    }
  }
  .purchase-example {
    .ttl {
      background: #b71c24;
      height: 60px;
      font-size: 2.8rem;
      font-weight: 700;
      align-content: center;
      margin-bottom: 3rem;
      color: #fff;
      padding-left: 2rem;
    }
    .purchase-example-list {
      display: flex;
      justify-content: space-between;
      margin-bottom: 5rem;
      .purchase-example-item {
        width: calc((100% - 7.5%) / 4);
        text-align: center;
        img {
          aspect-ratio: 230 / 218;
          width: auto;
          margin-bottom: 0.6rem;
          max-height: 218px;
        }
        p {
          font-size: 2rem;
          text-align: center;
        }
      }
    }
  }
  .purchase-example2 {
    background: rgba(0, 0, 0, 0.03);
    padding: 3rem;
    border-radius: 10px;
    margin-bottom: 2rem;
    .ttl {
      font-size: 2.8rem;
      font-weight: 700;
      color: #b71c24;
      margin-bottom: 1rem;
    }
    .collection-list {
      display: flex;
      padding-left: 2rem;
      justify-content: space-between;
      .block {
        width: calc((100% - 6rem) / 4);
        li {
          font-size: 1.6rem;
          line-height: 1.875;
          position: relative;
          &::before {
            content: "";
            width: 10px;
            height: 10px;
            border-radius: 50%;
            background-color: #b71c24;
            position: absolute;
            left: -20px;
            top: 11px;
          }
          &:not(:last-child) {
            margin-bottom: 0.5rem;
          }
        }
      }
    }
  }
  .note {
    font-size: 1.6rem;
    line-height: 1.5;
  }
}

/* pickup-section */
.pickup-section {
  background: #f7f7f7;
  padding: 10rem 2rem;
  .section-head {
    .pickup-ttl {
      width: 350px;
      height: auto;
    }
  }
  .pickup-list-ttl {
    background: #b71c24;
    height: 60px;
    color: #fff;
    font-size: 2.8rem;
    font-weight: 700;
    align-content: center;
    padding: 0 2rem;
    margin-bottom: 3rem;
  }
  .pickup-list-txt {
    font-size: 1.6rem;
    line-height: 1.5;
    margin-bottom: 2rem;
  }
  .pickup-cols {
    display: flex;
    justify-content: space-between;
    gap: 2rem;
    .pickup-col {
      width: calc((100% - 4rem) / 3);
      display: flex;
      flex-direction: column;
      gap: 2rem;
      .pickup-card {
        background: #fff;
        border-radius: 10px;
        padding: 3rem;
        .ttl {
          color: #b71c24;
          font-size: 2rem;
          font-weight: 700;
          margin-bottom: 1rem;
        }
        .pickup-list {
          .pickup-item {
            display: flex;
            justify-content: space-between;
            align-items: center;
            &:not(:last-child) {
              margin-bottom: 1rem;
            }
            .item {
              position: relative;
              padding-left: 2rem;
              font-size: 1.6rem;
              letter-spacing: 0.05em;
              &::before {
                content: "";
                width: 9px;
                height: 9px;
                border-radius: 50%;
                background-color: #b71c24;
                position: absolute;
                left: 0;
                top: 0;
                bottom: 0;
                margin: auto 0;
              }
            }
            .price {
              text-align: right;
              font-size: 1.6rem;
              letter-spacing: 0.05em;
            }
          }
        }
      }
    }
  }
}

/* calculation-section */
.calculation-section {
  background: #fff;
  padding: 10rem 2rem 15rem;
  .calculation-card-wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 3rem 2rem;
    margin-bottom: 3rem;
    .calculation-card {
      width: calc((100% - 2rem) / 2);
      border-radius: 10px;
      background: rgba(0, 0, 0, 0.03);
      .ttl {
        height: 50px;
        border-radius: 10px 10px 0px 0px;
        background: #b71c24;
        align-content: center;
        text-align: center;
        color: #fff;
        font-size: 700;
        letter-spacing: 0.05em;
      }
      .txt {
        padding: 3rem;
        .txt-list {
          .text-item {
            font-size: 1.6rem;
            line-height: 1.5;
            padding-left: 2rem;
            position: relative;
            &::before {
              content: "";
              width: 10px;
              height: 10px;
              border-radius: 50%;
              background-color: #b71c24;
              position: absolute;
              left: 0;
              top: 9px;
            }
            &:not(:last-child) {
              margin-bottom: 1rem;
            }
            .bold {
              font-weight: 700;
            }
          }
        }
        .note {
          font-size: 1.6rem;
          line-height: 1.5;
          margin-top: 1rem;
          .bold {
            font-weight: 700;
          }
        }
      }
    }
  }
  .satei-card {
    background: rgba(0, 0, 0, 0.03);
    border-radius: 10px;
    padding: 3rem;
    margin-bottom: 10rem;
    .ttl {
      color: #b71c24;
      font-size: 2rem;
      font-weight: 700;
      margin-bottom: 1rem;
    }
    .txt {
      font-size: 1.6rem;
      line-height: 1.5;
    }
  }
}

/* kaitori-flow-section */
.kaitori-flow-section {
  padding: 10rem 2rem 7.5rem;
  background: #b71c24;
  .section-head {
    .flow-ttl {
      width: 376px;
      height: auto;
    }
  }
  .flow-cards {
    display: flex;
    flex-direction: column;
    gap: 4rem;
    .flow-card {
      background: #fff;
      filter: drop-shadow(5px 5px 5px rgba(0, 0, 0, 0.2));
      border-radius: 20px;
      padding: 5rem;
      display: flex;
      justify-content: space-between;
      align-items: center;
      position: relative;
      &:not(:last-child) {
        &::after {
          content: "";
          width: 0;
          height: 0;
          border-style: solid;
          border-right: 50px solid transparent;
          border-left: 50px solid transparent;
          border-top: 40px solid #ffffff;
          border-bottom: 0;
          position: absolute;
          bottom: -30px;
          left: 0;
          right: 0;
          margin: 0 auto;
        }
      }
      .flow-card__img {
        width: 22.22222%;
      }
      .flow-card__body {
        width: 74.44444%;
        .flow-card__head {
          display: flex;
          margin-bottom: 2rem;
          .flow-card__num {
            font-size: 1.6rem;
            font-family: "Oswald", sans-serif;
            color: #fff;
            font-weight: 700;
            background: #b71c24;
            width: 30px;
            height: 30px;
            border-radius: 50%;
            text-align: center;
            align-content: center;
            margin-right: 1rem;
          }
          .flow-card__title {
            font-size: 2.6rem;
            font-weight: 700;
            color: #b71c24;
            line-height: 1.3;
          }
        }
        .flow-card__text {
          font-size: 1.6rem;
          line-height: 1.5;
          .bold {
            font-weight: 700;
          }
          &:not(:last-child) {
            margin-bottom: 1rem;
          }
        }
      }
    }
  }
}

/* area-section */
.area-section {
  padding: 7.5rem 2rem 15rem;
  background: #b71c24;
  .section-head {
    .area-ttl {
      width: 546px;
      height: auto;
    }
  }
  .area-content {
    display: flex;
    justify-content: space-between;
    .area-text {
      width: 65%;
      .prefecture-block {
        &:not(:last-child) {
          margin-bottom: 3rem;
        }
        .prefecture-title {
          color: #fff;
          font-size: 1.6rem;
          font-weight: 700;
          margin-bottom: 1rem;
        }
        .prefecture-desc {
          margin-bottom: 1.5rem;
          color: #fff;
          font-size: 1.4rem;
          line-height: 1.4;
        }
        .cities {
          color: #fff;
          font-size: 1.4rem;
          line-height: 1.4;
        }
        .area-note {
          margin-top: 1.5rem;
          color: #fff;
          font-size: 1.4rem;
          line-height: 1.4;
        }
      }
    }
    .area-map {
      width: 32.8%;
    }
  }
}

/* kaitori-faq-section */
.kaitori-faq-section {
  padding: 10rem 2rem 15rem;
  background: #fff;
  .section-head {
    .faq-ttl {
      width: 406px;
      height: auto;
    }
  }
  .faq_list {
    margin-bottom: 6.8rem;
    .faq_item {
      border-top: 1px solid #707070;
      .faq_question {
        background: #fff;
        display: flex;
        position: relative;
        padding: 2rem;
        &.active {
          .faq_question_toggle {
            .inbox {
              span {
                &:nth-child(2) {
                  display: none;
                }
              }
            }
          }
        }
        &:hover {
          cursor: pointer;
        }
        .q_num {
          margin-right: 1rem;
          font-family: "Oswald", sans-serif;
          font-weight: 700;
          color: #b71c24;
          font-size: 2rem;
        }
        p {
          font-size: 2rem;
          font-weight: 700;
          line-height: 1.3;
        }
        .faq_question_toggle {
          position: absolute;
          right: 2rem;
          top: 2rem;
          width: 20px;
          height: 20px;
          .inbox {
            width: 100%;
            height: 100%;
            position: relative;
            span {
              position: absolute;
              top: 0;
              left: 0;
              right: 0;
              bottom: 0;
              margin: auto;
              background-color: #000;
              &:nth-child(1) {
                width: 100%;
                height: 3px;
              }
              &:nth-child(2) {
                width: 3px;
                height: 100%;
              }
            }
          }
        }
      }
      .faq_answer {
        background: rgba(0, 0, 0, 0.03);
        padding: 3rem;
        display: none;
        &.active {
          display: block;
        }
        .faq_answer_text {
          p {
            font-size: 1.6rem;
            line-height: 1.5;
          }
        }
      }
    }
  }
  .faq-note {
    font-size: 1.6rem;
    line-height: 1.5;
    padding: 0 2rem;
    margin-bottom: 8.2rem;
  }
}

/* shop-section */
.shop-section {
  padding: 15rem 2rem;
  background: #b71c24;
  .shop-content {
    display: flex;
    justify-content: space-between;
    margin-bottom: 5rem;
    .shop-image {
      width: 45%;
      img {
        width: 100%;
      }
    }
    .shop-info {
      width: 50%;
      .shop-ttl {
        color: #b71c24;
        font-size: 2.8rem;
        font-weight: 700;
        background: #fff;
        height: 60px;
        padding: 0 20px;
        align-content: center;
        margin-bottom: 3rem;
      }
      .shop-info__name {
        font-size: 2rem;
        color: #fff;
        font-weight: 700;
        margin-bottom: 2rem;
      }
      .shop-info__table {
        width: 100%;
        margin-bottom: 1rem;
        tr {
          &:first-child {
            th,
            td {
              border-top: 1px solid rgba(255, 255, 255, 0.2);
            }
          }
          th {
            width: 20%;
            background: rgba(255, 255, 255, 0.1);
            border-bottom: 1px solid rgba(255, 255, 255, 0.2);
            color: #fff;
            font-size: 1.4rem;
            line-height: 1.3;
            font-weight: 700;
            padding: 0 2rem;
            align-content: center;
            height: 5rem;
            text-align: left;
          }
          td {
            width: 80%;
            padding: 0 2rem;
            font-size: 1.4rem;
            line-height: 1.3;
            color: #fff;
            border-bottom: 1px solid rgba(255, 255, 255, 0.2);
            align-content: center;
            height: 5rem;
            a {
              color: #fff;
            }
          }
        }
      }
      .shop-info__note {
        font-size: 1.4rem;
        color: #fff;
        line-height: 1.7;
      }
    }
  }
  .shop-map {
    aspect-ratio: 1000 / 400;
    iframe {
      width: 100%;
      height: 100%;
    }
  }
}

@media screen and (max-width: 767px) {
  .sp {
    display: block;
  }
  .pc {
    display: none;
  }
  .wp-theme-daichu-kaitai-theme .footer-fixed-container {
    display: none;
  }
  .ttl-gold {
    font-size: 1.6rem;
    line-height: 1.25;
    height: auto;
    padding: 8px 27px;
    border-radius: 35px;
  }
  .cta-block {
    padding-bottom: 2rem;
    .cta-head {
      height: 90px;
      .badge {
        left: -20px;
        top: -70px;
        width: 120px;
      }
      .txt {
        font-size: 2.2rem;
      }
      .cta-charactor {
        width: 120px;
      }
    }
    .cta-ttl {
      font-size: 2.2rem;
      margin-bottom: 2rem;
    }
    .cta-buttons {
      display: flex;
      flex-direction: column;
      max-width: 351px;
      margin: 0 auto;
      padding: 2rem;
      .tel-block,
      .mail-block {
        flex: 1 1 0;
        text-align: center;
        .ttl {
          font-size: 1.8rem;
        }
      }
      .tel-block {
        border-right: none;
        border-bottom: 1px solid #fff;
        padding-bottom: 2rem;
        margin-bottom: 2rem;
        .tel-btn {
          font-size: 3.9rem;
          margin-top: 0;
        }
      }
      .mail-block {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        align-items: center;
        .ttl {
          margin-bottom: 1.2rem;
          line-height: 1.45;
        }
        .btn-mail {
          width: 100%;
          max-width: 351px;
        }
      }
    }
  }
  /* SP mv-section */
  .mv-section {
    .mv-contents {
      .mv-tel {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        width: 100%;
        height: 74px;
        padding: 0 15px;
        background-color: #4d4d4d;
        border-radius: 0;
        align-content: center;
        .mv-tel-inner {
          background: #fff;
          width: 345px;
          height: 60px;
          border-radius: 45px;
          display: flex;
          align-items: center;
          padding-right: 27px;
          padding-left: 27px;
          box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.3);
          margin: 0 auto;
          .icon {
            img {
              width: 30px;
              height: auto;
            }
          }
          .tel-number {
            .ttl {
              font-size: 1.5rem;
              margin: 0 0 5px;
            }
            .number {
              font-size: 2.6rem;
            }
          }
        }
      }
    }
  }

  /* nayami-section */
  .nayami-section {
    padding: 5rem 2rem 2rem;
    &::after {
      bottom: -39px;
      height: 40px;
    }
    .nayami-ttl {
      margin-bottom: 3rem;
    }
    .nayami-list {
      flex-wrap: wrap;
      gap: 2rem;
      max-width: 440px;
      margin: 0 auto;
      .nayami-item {
        width: calc((100% - 2rem) / 2);
        display: flex;
        flex-direction: column;
        align-items: center;
        p {
          font-size: 1.4rem;
          margin: auto -20px 0;
        }
      }
    }
  }

  /* solution-section */
  .solution-section {
    background: linear-gradient(
          to bottom,
          rgba(255, 255, 255, 0.5) 0%,
          rgba(128, 128, 128, 0.5) 100%
        )
        bottom / 100% 400px no-repeat,
      #b71c24;
    background-blend-mode: multiply;
    background-repeat: no-repeat;
    background-size: 100% 400px; /* 幅100%、高さ400px */
    background-position: bottom;
    .solution-head-wrap {
      padding: 5rem 2rem 15.8rem;
      background: linear-gradient(
        to right,
        #d69c00 0%,
        #f9df7b 32.8%,
        #fff3a6 52.4%,
        #f9df7b 72.98%,
        #d69c00 100%
      );
      .solution-head {
        max-width: 400px;
        margin: 0 auto;
        position: relative;
      }
      .solution-charactor {
        width: 171px;
        height: 175px;
        position: absolute;
        right: -62px;
        top: -40px;
      }
    }
    .section-inner {
      max-width: 1200px;
      padding: 0 0 5rem;
      .container {
        .solution-card {
          margin-top: -158px;
          border-radius: 20px;
          padding: 3rem 2rem 0;
          .section-head {
            margin-bottom: 2rem;
            .ttl {
              width: 74.85%;
              height: auto;
              margin: 0 auto 2rem;
            }
          }
          .speech-list {
            flex-direction: column;
            max-width: 310px;
            justify-content: space-between;
            gap: 1rem;
            .speech-item {
              &:nth-child(1),
              &:nth-child(3) {
                margin-top: 0;
              }
              &:nth-child(2) {
                margin-left: auto;
              }
              &:first-child::after,
              &:nth-child(3)::after {
                bottom: -20px;
                left: 13%;
                /* 矢印のサイズ：高さ20px、幅15px */
                border-width: 20px 7.5px 0 7.5px;
                transform: none;
              }
              &:nth-child(2)::after {
                content: "";
                position: absolute;
                width: 0;
                height: 0;
                border-style: solid;
                border-color: #18284c transparent transparent transparent;
                bottom: -20px;
                right: 13%;
                border-width: 20px 7.5px 0 7.5px;
              }
              width: 250px;
              height: 40px;
              border-radius: 20px;
              p {
                font-size: 1.4rem;
              }
            }
          }
          .speech-group-illu {
            margin: 2rem auto 0;
            width: 51.4%;
            height: auto;
          }
        }
        .solution-cta {
          align-items: flex-end;
          margin: 0 auto 3rem;
          .solution-cta-charactor {
            flex: 0 0 auto;
            width: 17.5%;
            height: auto;
            margin-right: 5%;
            position: relative;
          }
          .solution-txt-wrap {
            flex: 1 1 auto;
            padding-top: 30px;
            .solution-cta-text {
              font-size: 1.4rem;
              margin-bottom: 0.8rem;
            }
            .solution-cta-ttl {
              margin-top: 17px;
            }
          }
        }
        .cta-block {
          background: none;
          border-radius: none;
          padding-bottom: 0;
        }
      }
    }
  }

  /* SP features-section */
  .features-section {
    padding: 5rem 2rem 4rem;
    .section-inner {
      .container {
        .ttl-gold {
          margin-bottom: 2rem;
        }
        .features-ttl {
          max-width: 300px;
          width: 60%;
        }
        .wrap {
          position: relative;
          .features-charactor {
            width: 50px;
            left: 10px;
            top: -65px;
          }
          .features-list {
            gap: 3rem;
            .features-item {
              padding: 2rem;
              .num {
                font-size: 80px;
                right: 20px;
                top: -50px;
              }
              .features-item-content {
                display: flex;
                flex-direction: column;
                .img-wrap {
                  width: 100%;
                  margin-bottom: 2rem;
                }
                .text-wrap {
                  width: 100%;
                  .ttl {
                    height: 34px;
                    margin-bottom: 1rem;
                  }
                  .sub-ttl {
                    font-size: 1.8rem;
                    margin-bottom: 0.5rem;
                  }
                  .txt {
                    font-size: 1.4rem;
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  /* SP point-section */
  .point-section {
    padding: 4rem 2rem 8rem;
    position: relative;
    .section-inner {
      .container {
        .point-ttl {
          width: 97%;
          max-width: 510px;
        }
        .wrap {
          position: relative;
          .points-list {
            display: flex;
            flex-direction: column;
            gap: 2rem;
          }
          .point-item {
            height: 90px;
            border-radius: 15px;
            padding-left: 65px;
            padding-right: 15px;
            &:last-child {
              height: 124px;
            }
            .point-item-num {
              left: 20px;
              font-size: 1.4rem;
              width: 30px;
              height: 30px;
            }
            .point-item-txt {
              margin: 0;
              font-size: 1.4rem;
            }
            .point-item-ttl {
              text-align: left;
              font-weight: 700;
              font-size: 1.8rem;
              font-weight: 700;
              color: #b71c24;
              line-height: 1.4;
            }
          }
          .point-charactor {
            width: 76px;
            bottom: -60px;
            right: -10px;
          }
        }
      }
    }
  }

  /* SP purchase-section */
  .purchase-section {
    padding: 5rem 2rem;
    .section-head {
      margin-bottom: 2rem;
      .purchase-ttl {
        width: 50%;
        max-width: 280px;
        height: auto;
      }
    }
    .head-txt {
      margin-bottom: 3rem;
      .ttl {
        font-size: 1.8rem;
      }
      .txt {
        font-size: 1.4rem;
      }
    }
    .purchase-example {
      .ttl {
        height: 40px;
        font-size: 2rem;
        margin-bottom: 2rem;
        padding-left: 1rem;
      }
      .purchase-example-list {
        flex-wrap: wrap;
        margin-bottom: 3rem;
        gap: 2rem 1rem;
        .purchase-example-item {
          width: calc((100% - 1rem) / 2);
          img {
            height: auto;
          }
          p {
            font-size: 1.6rem;
          }
        }
      }
    }
    .purchase-example2 {
      padding: 2rem;
      margin-bottom: 1rem;
      .ttl {
        font-size: 2rem;
      }
      .collection-list {
        padding-left: 0.6rem;
        flex-wrap: wrap;
        gap: 0.5rem;
        .block {
          width: calc((100% - 2rem) / 2);
          li {
            font-size: 1.4rem;
            &::before {
              width: 8px;
              height: 8px;
              left: -15px;
              top: 10px;
            }
          }
        }
      }
    }
    .note {
      font-size: 1.4rem;
    }
  }

  /* SP pickup-section */
  .pickup-section {
    padding: 5rem 2rem;
    .section-head {
      margin-bottom: 2rem;
      .pickup-ttl {
        width: 60%;
        max-width: 350px;
      }
    }
    .pickup-list-ttl {
      height: 40px;
      font-size: 2rem;
      padding: 0 1rem;
      margin-bottom: 2rem;
    }
    .pickup-list-txt {
      font-size: 1.4rem;
    }
    .pickup-cols {
      flex-direction: column;
      gap: 2rem;
      .pickup-col {
        width: 100%;
        gap: 2rem;
        .pickup-card {
          padding: 2rem;
          .ttl {
            font-size: 1.8rem;
            margin-bottom: 1rem;
          }
          .pickup-list {
            .pickup-item {
              .item {
                padding-left: 2rem;
                font-size: 1.4rem;
              }
              .price {
                font-size: 1.4rem;
              }
            }
          }
        }
      }
    }
  }

  /* SP calculation-section */
  .calculation-section {
    padding: 5rem 2rem 7.5rem;
    .section-head {
      margin-bottom: 2rem;
      .calculation-ttl {
        width: 78%;
        max-width: 478px;
      }
    }
    .calculation-card-wrap {
      flex-direction: column;
      flex-wrap: nowrap;
      gap: 3rem 2rem;
      margin-bottom: 3rem;
      .calculation-card {
        width: 100%;
        .txt {
          padding: 2rem;
          .txt-list {
            .text-item {
              font-size: 1.4rem;
              &::before {
                top: 6px;
              }
            }
          }
          .note {
            font-size: 1.4rem;
          }
        }
      }
    }
    .satei-card {
      padding: 2rem;
      margin-bottom: 10rem;
      .ttl {
        font-size: 1.8rem;
      }
      .txt {
        font-size: 1.4rem;
      }
    }
  }

  /* SP kaitori-flow-section */
  .kaitori-flow-section {
    padding: 5rem 2rem 4rem;
    .section-head {
      margin-bottom: 2rem;
      .flow-ttl {
        width: 74%;
      }
    }
    .flow-cards {
      display: flex;
      flex-direction: column;
      gap: 4rem;
      .flow-card {
        padding: 2rem;
        flex-direction: column;
        .flow-card__img {
          width: 100%;
          margin-bottom: 1rem;
        }
        .flow-card__body {
          width: 100%;
          .flow-card__head {
            margin-bottom: 1rem;
            .flow-card__num {
              font-size: 1.4rem;
              background: #b71c24;
              width: 26px;
              height: 26px;
              border-radius: 50%;
              text-align: center;
              align-content: center;
            }
            .flow-card__title {
              font-size: 2rem;
              width: calc(100% - 3.6rem);
            }
          }
          .flow-card__text {
            font-size: 1.4rem;
          }
        }
      }
    }
  }

  /* SP area-section */
  .area-section {
    padding: 4rem 2rem 7.5rem;
    .section-head {
      margin-bottom: 3rem;
      .area-ttl {
        width: 100%;
        max-width: 546px;
      }
    }
    .area-content {
      flex-direction: column;
      .area-text {
        width: 100%;
        margin-bottom: 3rem;
      }
      .area-map {
        width: 70%;
        margin: 0 auto;
      }
    }
  }

  /* SP kaitori-faq-section */
  .kaitori-faq-section {
    padding: 5rem 2rem 7.5rem;
    .section-head {
      margin-bottom: 3rem;
      .faq-ttl {
        width: 68%;
        max-width: 406px;
      }
    }
    .faq_list {
      margin-bottom: 3rem;
      .faq_item {
        border-top: 1px solid #707070;
        .faq_question {
          padding: 1.6rem 3rem 1.6rem 1rem;
          .q_num {
            font-size: 1.8rem;
          }
          p {
            font-size: 1.8rem;
          }
          .faq_question_toggle {
            right: 1rem;
            top: 2rem;
            width: 15px;
            height: 15px;
            .inbox {
              span {
                &:nth-child(1) {
                  height: 2px;
                }
                &:nth-child(2) {
                  width: 2px;
                }
              }
            }
          }
        }
        .faq_answer {
          padding: 2rem;
          .faq_answer_text {
            p {
              font-size: 1.4rem;
            }
          }
        }
      }
    }
    .faq-note {
      font-size: 1.4rem;
      padding: 0;
    }
  }

  /* SP shop-section */
  .shop-section {
    padding: 7.5rem 2rem;
    .shop-content {
      flex-direction: column;
      margin-bottom: 3rem;
      .shop-image {
        width: 100%;
        margin-bottom: 2rem;
      }
      .shop-info {
        width: 100%;
        .shop-ttl {
          font-size: 2.2rem;
          height: 40px;
          padding: 0 10px;
          margin-bottom: 2rem;
        }
        .shop-info__name {
          font-size: 1.8rem;
          margin-bottom: 1.5rem;
        }
        .shop-info__table {
          margin-bottom: 1rem;
          tr {
            &:first-child {
              th,
              td {
                border-top: 1px solid rgba(255, 255, 255, 0.2);
              }
            }
            th {
              width: 24%;
              padding: 0 1rem;
            }
            td {
              width: 76%;
              padding: 0 1rem;
            }
          }
        }
      }
    }
    .shop-map {
      aspect-ratio: 1000 / 680;
    }
  }
}

@media screen and (min-width: 450px) and (max-width: 767px) {
  .features-section {
    padding: 5rem 10vw 4rem;
  }
  .point-section {
    padding: 4rem 10vw 8rem;
  }
  .purchase-section {
    padding: 5rem 10vw;
  }
  .pickup-section {
    padding: 5rem 10vw;
  }
  .calculation-section {
    padding: 5rem 10vw 7.5rem;
  }
  .kaitori-flow-section {
    padding: 5rem 10vw 4rem;
  }
  .area-section {
    padding: 4rem 10vw 7.5rem;
  }
  .kaitori-faq-section {
    padding: 5rem 10vw 7.5rem;
  }
  .shop-section {
    padding: 7.5rem 10vw;
  }
}
