:root {
  --color-body: #2D2825;
}

.my-main {
  font-size: 1.5rem;
}

.my-footer-top {
  display: none;
}

#hero {
  background: url(../img/hero-bg01.png) center bottom / cover no-repeat;
  height: 56.125rem;
  z-index: 1;
  .my-cols {
    justify-content: center;
    position: absolute;
    inset: auto 0 9rem;
    > li {
      text-align: center;
    }
  }
}

#sec01 {
  padding-block: 7.8125rem 3.125rem;
  background: #FEF8EF;
  margin-top: -6rem;
  h2 {
    font-family: var(--font-kaku);
    font-size: 2rem;
    font-weight: 500;
    line-height: 1.8;
    text-align: center;
    color: #5C331A;
    margin-bottom: 3.125rem;
  }
  .my-cols {
    justify-content: center;
    gap: 3.125rem;
    .-img {
      width: 22.125rem;
      > img {
        display: block;
        width: 100%;
      }
    }
    .-list {
      .my-rows {
        gap: 1.125rem;
        li {
          font-family: var(--font-maru);
          font-size: 1.5rem;
          font-weight: 500;
          line-height: 1.6;
          letter-spacing: 20%;
          padding-left: 2.5rem;
          background: url(../img/icon-check01.svg) center left / 1.5rem no-repeat;
        }
      }
    }
  }
}

#sec02 {
  padding-bottom: 6.25rem;
  background: url(../img/sec02-bg01.png) top center / cover no-repeat;
  --max-width-container: calc(57.6875rem + var(--padding-container) * 2);
  h2 {
    background: #615C57;
    color: #F8EBD7;
    margin-bottom: 6.25rem;
    padding: 0.875rem;
    text-align: center;
    letter-spacing: 20%;
    strong {
      font-weight: 700;
      color: #fff;
    }
  }
  section {
    h3 {
      font-size: 2.5rem;
      font-weight: 500;
      color: #5C331A;
      line-height: 1.8;
      letter-spacing: 20%;
      margin-bottom: 3.125rem;
      text-align: center;
      background: url(../img/deco01.svg) center left / 7.5rem no-repeat,
        url(../img/deco02.svg) center right / 7.5rem no-repeat;
    }
    &#sec02-01 {
      .-txt01 {
        font-size: 2rem;
        line-height: 1.8;
        text-align: center;
        margin-bottom: 3.125rem;
      }
      .my-cols {
        align-items: center;
        gap: 2.3125rem;
        margin-bottom: 3.125rem;
        .-txt {
          flex: 1;
        }
        .-img {
          width: 27rem;
          > img {
            display: block;
            width: 100%;
          }
        }
      }
      .-txt02 {
        font-family: var(--font-kaku);
        font-size: 2rem;
        letter-spacing: 20%;
        line-height: 1.6;
        text-align: center;
        color: #DB750E;
      }
    }
    &#sec02-02 {
      margin-top: 6.25rem;
      .-txt01 {
        text-align: center;
        margin-bottom: 2.1875rem;
      }
      .-img01 {
        display: block;
        width: 30.3125rem;
        margin: 1rem auto 5rem;
      }
      .my-cols {
        gap: 0.625rem;
        li {
          flex: 1;
          dl {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            width: 100%;
            height: 18.75rem;
            background: #FEF8EF;
            border-radius: 50%;
            text-align: center;
            dt {
              display: flex;
              flex-direction: column;
              align-items: center;
              justify-content: center;
              letter-spacing: 20%;
              color: #F68417;
              line-height: 2;
              strong {
                font-size: 2rem;
                font-weight: 500;
                background: #F68417;
                color: #fff;
                border-radius: 0.3125rem;
                line-height: 1.2;
                padding-left: 0.2em;
              }
            }
            dd {
              display: flex;
              flex-direction: column;
              align-items: center;
              justify-content: center;
              height: 6.25rem;
              font-size: 1rem;
              letter-spacing: 5%;
            }
          }
        }
      }
      .-txt02 {
        margin-top: 5rem;
        font-weight: 500;
        letter-spacing: 20%;
        text-align: center;
        background: url(../img/deco03.svg) center left 2.21875rem / contain no-repeat,
          url(../img/deco04.svg) center right 2.21875rem / contain no-repeat;
      }
    }
  }
}

#sec03 {
  padding-block: 6.25rem;
  background: url(../img/sec03-bg01.png) top center / cover no-repeat;
  h2 {
    font-size: 2.5rem;
    font-weight: 500;
    color: #5C331A;
    line-height: 1.8;
    letter-spacing: 20%;
    margin-bottom: 3.125rem;
    text-align: center;
    background: url(../img/deco01.svg) center left / 7.5rem no-repeat,
      url(../img/deco02.svg) center right / 7.5rem no-repeat;
  }
  .my-rows {
    gap: 3.125rem;
    li {
      dl {
        position: relative;
        border: 0.125rem solid #F68417;
        border-radius: 1.25rem;
        padding: 1.875rem 3.75rem;
        background: #fff;
        dt {
          font-family: var(--font-kaku);
          font-size: 2rem;
          font-weight: 500;
          line-height: 1.8;
          color: #DB750E;
          margin: 0 0 1.875rem 7.9375rem;
          background-image: radial-gradient(circle, #F68417 0.1rem, transparent 0.1rem);
          background-position: left bottom;
          background-repeat: repeat-x;
          background-size: 0.75rem 0.125rem;
          .-point {
            position: absolute;
            inset: -0.5625rem auto auto 3.75rem;
            width: 6.25rem;
            height: 6.25rem;
            text-indent: 100%;
            white-space: nowrap;
            overflow: hidden;
            background: url(../img/sec03-point1.svg) center / contain no-repeat;
            li:nth-child(2) & {
              background-image: url(../img/sec03-point2.svg);
            }
            li:nth-child(3) & {
              background-image: url(../img/sec03-point3.svg);
            }
          }
        }
        dd {
          strong {
            font-weight: inherit;
            color: #F68417;
          }
        }
      }
    }
  }
}

#sec04 {
  background: #EBE6E1;
  .-div01 {
    position: relative;
    padding-top: 2.1875rem;
    background: #FFFCF8;
    text-align: center;
    .-balloon01 {
      display: flex;
      justify-content: center;
      width: 42.8125rem;
      height: 14.375rem;
      padding-top: 1.25rem;
      margin-inline: auto;
      background: url(../img/sec04-bg01.png) center / contain no-repeat;
      font-family: var(--font-kaku);
      font-size: 2rem;
      line-height: 1.6;
      letter-spacing: 20%;
    }
    .-txt01 {
      font-size: 2rem;
      line-height: 1.8;
      letter-spacing: 20%;
      margin-block: 2.5rem 0;
      strong {
        font-weight: 700;
        color: #F68417;
      }
    }
    .-img01 {
      position: absolute;
      inset: 7.3125rem auto auto 11.4375rem;
      width: 20.71875rem;
    }
    .-img02 {
      position: absolute;
      inset: 0 16.25rem auto auto;
      width: 11.75rem;
    }
  }
  .-div02 {
    padding-bottom: 3.75rem;
    &::before {
      content: '';
      display: block;
      width: 100%;
      height: 1.875rem;
      background: #FFFCF8;
      clip-path: polygon(0 0, 100% 0, 50% 100%);
    }
    .my-cols {
      gap: 2.5rem;
      position: relative;
      background: #FEF8EF;
      width: 57rem;
      padding: 2.5rem;
      margin: 3.125rem auto;
      .-ribbon01 {
        position: absolute;
        inset: -3.125rem auto auto -3.125rem;
        width: 19.28125rem;
      }
      .-img {
        width: 23.3125rem;
        img {
          display: block;
          width: 100%;
        }
      }
      .-txt {
        flex: 1;
        dl {
          dt {
            font-weight: 700;
            letter-spacing: 20%;
            margin-bottom: 0.625rem;
          }
        }
      }
    }
    .-txt01 {
      text-align: center;
      margin-bottom: 3.125rem;
      > span {
        background: linear-gradient(transparent 10%, #767676 10%);
        color: #fff;
        font-size: 2rem;
        font-weight: 500;
        line-height: 2;
        letter-spacing: 20%;
        strong {
          font-weight: inherit;
          color: #FFC48C;
        }
      }
      .-img01 {
        display: block;
        margin: 3.125rem auto 0;
        width: 24.625rem;
      }
    }
    .-balloon01 {
      display: flex;
      align-items: center;
      width: 43.375rem;
      height: 14.4375rem;
      background: url(../img/sec04-bg02.svg) center / contain no-repeat;
      margin: 0 auto 1.0625rem;
      padding: 0 7.375rem 1rem 8.6875rem;
      font-family: var(--font-kaku);
      line-height: 1.6;
      letter-spacing: 20%;
      color: #fff;
      strong {
        font-weight: 700;
      }
    }
    .-before_after {
      position: relative;
      width: 58.375rem;
      margin: 0 auto 3.125rem;
      &::before {
        content: '';
        position: absolute;
        inset: 9.8125rem auto auto 14.125rem;
        width: 13.59375rem;
        height: 14.34375rem;
        background: url(../img/arrow01.png) center / contain no-repeat;
        z-index: 3;
      }
      figure {
        position: relative;
        width: 24.03125rem;
        margin: 0;
        z-index: 2;
        img {
          display: block;
          width: 100%;
        }
        figcaption {
          position: absolute;
          inset: 0.25rem 0.25rem auto 0.25rem;
          display: flex;
          span {
            background: #fff;
            width: 6.875rem;
            font-family: var(--font-kaku);
            font-size: 1.25rem;
            font-weight: 700;
            text-align: center;
            line-height: 2.5rem;
            color: #767676;
            &[lang="en"] {
              background: #767676;
              color: #fff;
            }
          }
        }
        &.-after {
          width: 33.4375rem;
          margin: -11.3125rem 0 0 auto;
          z-index: 1;
          figcaption {
            justify-content: flex-end;
            margin-right: 0.5rem;
            span {
              color: #F68417;
              &[lang="en"] {
                background: #F68417;
                color: #fff;
              }
            }
          }
        }
      }
    }
    .-txt02 {
      padding: 1.5rem 2.5rem 1.5rem 14.5rem;
      margin: 0;
      background: #fff url(../img/sec04-bg03.png) 3.125rem center / 9.5625rem no-repeat;
      border-radius: 1.25rem;
      strong {
        font-weight: inherit;
        color: #F68417;
      }
    }
  }
  .-div03 {
    padding-block: 3.125rem 4.375rem;
    background: #FFFCF8;
    dl {
      width: 50rem;
      margin: 0 auto 1.875rem;
      dt {
        position: relative;
        background: #615C57;
        color: #fff;
        text-align: center;
        border-radius: 0.625rem;
        margin-bottom: 3.125rem;
        font-family: var(--font-maru);
        font-size: 2rem;
        font-weight: 500;
        letter-spacing: 20%;
        &::after {
          content: '';
          background: #615C57;
          position: absolute;
          inset: 100% 0 auto;
          width: 6.25rem;
          height: 1.3125rem;
          margin: -1px auto 0;
          clip-path: polygon(0 0, 100% 0, 50% 100%);
        }
      }
    }
    dd {
      .my-cols {
        gap: 3.125rem;
        li {
          position: relative;
          flex: 1;
          img {
            display: block;
            width: 100%;
            margin-bottom: 1.25rem;
          }
          strong {
            font-weight: 700;
            letter-spacing: 20%;
          }
          + li::before {
            content: '';
            position: absolute;
            inset: 0 auto 0 -1.65625rem;
            width: 0.1875rem;
            background: url(../img/line01.svg) top center / 0.1875rem repeat-y;
          }
        }
      }
    }
    .-txt01 {
      text-align: center;
      background: #FEF8EF;
      border-radius: 0.625rem;
      line-height: 2.2;
    }
    .-txt02 {
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      gap: 1.25rem;
      text-align: center;
      width: 88.875rem;
      height: 32.4375rem;
      margin-inline: auto;
      background: url(../img/sec04-bg04.png) center / contain no-repeat;
      color: #5C331A;
      font-weight: 500;
      letter-spacing: 20%;
      p {
        margin: 0;
        strong {
          font-weight: 700;
          color: #F68417;
          padding: 0 0 0.1em 0.2em;
          background: linear-gradient(transparent 55%, #fff 0%);
        }
      }
    }
  }
}

#sec05 {
  padding-block: 5.125rem;
  background: url(../img/sec05-bg01.png) top center / cover no-repeat;
  color: #5C331A;
  h2 {
    font-size: 2.5rem;
    font-weight: 500;
    letter-spacing: 20%;
    text-align: center;
    color: #DB750E;
    margin-bottom: 2.5rem;
  }
  .-txt01 {
    text-align: center;
    margin-bottom: 1.875rem;
  }
  .my-rows {
    gap: 3.125rem;
    width: 54.875rem;
    margin-inline: auto;
    background-image: radial-gradient(circle, #5c331a 0.09375rem, transparent 0.09375rem);
    background-position: 5.125rem top;
    background-repeat: repeat-y;
    background-size: 0.1875rem 0.625rem;
    li {
      position: relative;
      min-height: 10.78125rem;
      img {
        position: absolute;
        inset: 0 auto auto 0;
        width: 10.78125rem;
        height: 10.78125rem;
        z-index: 1;
      }
      dl {
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 0.3125rem;
        padding: 1.1rem 2rem 1.1rem 8rem;
        width: 49.5625rem;
        min-height: 10.1875rem;
        margin-left: 5.2rem;
        background: #FEF8EF;
        border: max(0.0625rem, 1px) solid #E2B890;
        border-radius: 1.25rem;
        dt {
          font-size: 2rem;
          line-height: 1.8;
          letter-spacing: 20%;
        }
        dd {
          line-height: 1.5;
        }
      }
    }
  }
}

#sec06 {
  padding-block: 6.25rem;
  background: #FEF8EF;
  color: #5C331A;
  .-div01 {
    padding: 3.125rem 6rem;
    background: #FFFFFFCC;
    text-align: center;
    border-radius: 2.5rem;
    h2 {
      font-size: 2.5rem;
      font-weight: 500;
      line-height: 1.8;
      letter-spacing: 20%;
      color: #DB750E;
      margin-bottom: 0.625rem;
    }
    > p {
      letter-spacing: 20%;
      margin-bottom: 2.5rem;
    }
    .my-cols {
      gap: 1.25rem;
      margin-bottom: 3.125rem;
      li {
        flex: 1;
        dl {
          border: max(0.0625rem, 1px) solid #5C331A;
          border-radius: 0.5rem;
          overflow: hidden;
          dt {
            background: #5C331A;
            color: #fff;
            font-family: var(--font-kaku);
            font-size: 2rem;
            font-weight: 700;
            line-height: 1.4;
            letter-spacing: 0;
          }
          dd {
            font-size: 2rem;
            font-weight: 500;
            letter-spacing: 20%;
            padding-block: 0.875rem;
            small {
              font-size: 1.25rem;
            }
          }
        }
      }
    }
    > dl {
      dt {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 1.875rem;
        font-family: var(--font-kaku);
        font-size: 2rem;
        line-height: 1.6;
        letter-spacing: 20%;
        margin-bottom: 1.875rem;
        &::before,
        &::after {
          content: '';
          display: block;
          width: 4.25rem;
          height: 0.75rem;
          background: url(../img/line02.svg) center / contain no-repeat;
        }
      }
      dd {
        > p {
          letter-spacing: 20%;
          margin-bottom: 0.625rem;
        }
        > small {
          font-size: 1rem;
          letter-spacing: 5%;
        }
      }
    }
  }
  #sec06-01,
  #sec06-02 {
    padding-top: 5rem;
    h3 {
      display: flex;
      align-items: center;
      gap: 1.5rem;
      width: 53.75rem;
      margin: 0 auto 1.25rem;
      &::before,
      &::after {
        content: '';
        flex: 1;
        height: 0.1875rem;
        background: url(../img/line03.svg) left center / auto 0.1875rem repeat-x;
      }
    }
    > p {
      line-height: 2.2;
      letter-spacing: 20%;
      strong {
        font-weight: 700;
        color: #F68417;
      }
    }
  }
  #sec06-01 {
    > p {
      text-align: center;
      margin-bottom: 2.5rem;
    }
    .my-cols {
      justify-content: space-between;
      li {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        width: 13.75rem;
        height: 19.125rem;
        background: url(../img/sec06-bg01.svg) center / contain no-repeat;
        text-align: center;
        letter-spacing: 20%;
        img {
          width: 4.8125rem;
        }
        small {
          font-size: 1rem;
          letter-spacing: 5%;
        }
      }
    }
  }
  #sec06-03 {
    padding: 1.625rem 1rem;
    margin-top: 5rem;
    background: #fff;
    border: max(0.0625rem, 1px) solid #5C331A;
    border-radius: 0.9375rem;
    h3 {
      position: relative;
      width: 53.75rem;
      margin-inline: auto;
      padding: 1rem 0 1.875rem 1rem;
      border-bottom: 0.125rem solid #E2B890;
      font-size: 2rem;
      font-weight: 500;
      line-height: 1.8;
      letter-spacing: 20%;
      strong {
        font-weight: inherit;
        color: #F68417;
      }
      small {
        display: block;
        font-size: 1.5rem;
        font-weight: 400;
        margin-top: 1.5rem;
      }
      img {
        position: absolute;
        inset: 0 4.0625rem auto auto;
        width: 17rem;
      }
    }
    dl {
      padding-top: 1.875rem;
      text-align: center;
      dt {
        line-height: 2.2;
        letter-spacing: 20%;
        margin-bottom: 1.875rem;
        small {
          display: block;
          font-size: 1rem;
          letter-spacing: 5%;
        }
      }
      dd {
        .my-cols {
          gap: 0.8125rem;
          li {
            flex: 1;
            padding-block: 1.25rem 0.3125rem;
            letter-spacing: 20%;
            border: max(0.0625rem, 1px) solid #5C331A;
            border-radius: 0.9375rem;
            img {
              display: block;
              width: auto;
              height: 5rem;
              margin: 0.1875rem auto 0.9375rem;
            }
            small {
              display: block;
              font-size: 1rem;
              letter-spacing: 5%;
            }
            &:nth-child(4) {
              letter-spacing: 0;
            }
          }
        }
      }
    }
  }
}

#sec07 {
  padding-top: 8.75rem;
  text-align: center;
  background: url(../img/sec07-bg01.png) right 4.5625rem / 25.5rem no-repeat,
    url(../img/sec07-bg02.png) left 10.1875rem / 24.71875rem no-repeat #fffcf8;
  h2 {
    font-size: 2.5rem;
    font-weight: 500;
    line-height: 1.8;
    letter-spacing: 20%;
    color: #F68417;
    margin-bottom: 5rem;
  }
  p {
    strong {
      font-weight: 700;
      color: #5C331A;
    }
  }
  .my-infinite_gallery {
    margin-top: 6.25rem;
  }
}

#sec08 {
  padding-block: 12.5rem;
  background: #fffcf8;
  h2 {
    font-size: 2.5rem;
    font-weight: 500;
    line-height: 1.8;
    letter-spacing: 20%;
    color: #5C331A;
    text-align: center;
    margin-bottom: 3.75rem;
  }
}

#sec09 {
  padding-block: 5.625rem 4.6875rem;
  background: #F8EBD7;
  h2 {
    position: relative;
    font-size: 2.5rem;
    font-weight: 500;
    line-height: 1.8;
    letter-spacing: 20%;
    margin: 0 0 5rem -1rem;
    z-index: 1;
    span {
      background: rgba(92, 51, 26, 0.8);
      color: #FEF8EF;
    }
  }
  .-img01 {
    position: absolute;
    inset: -4.5rem 0 auto auto;
    width: 31.21875rem;
  }
  .-txt01 {
    margin-bottom: 5rem;
    p {
      margin-bottom: 3.125rem;
    }
  }
  .-txt02 {
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 2rem;
    font-weight: 500;
    text-align: center;
    line-height: 1.8;
    letter-spacing: 20%;
    margin-bottom: 1.875rem;
    &::before,
    &::after {
      content: '';
      width: 5.40625rem;
      height: 5.5rem;
      background: url(../img/deco07.png) center / contain no-repeat;
    }
    &::after {
      background-image: url(../img/deco08.png);
    }
  }
}

@media (max-width: 979.98px) {
  .my-main {
    font-size: 1rem;
  }

  #hero {
    background-image: url(../img/hero-bg01-sp.png);
    height: 44.125rem;
    .my-cols {
      flex-direction: column;
      align-items: center;
      bottom: 3.5rem;
    }
  }

  #sec01 {
    padding-block: 5.25rem 3.125rem;
    margin-top: -2rem;
    h2 {
      font-size: 1.25rem;
      margin-bottom: 1.875rem;
    }
    .my-cols {
      flex-direction: column-reverse;
      align-items: center;
      gap: 1.875rem;
      .-img {
        width: 17.3125rem;
      }
      .-list {
        .my-rows {
          gap: 1.125rem;
          li {
            font-size: 1rem;
            line-height: 1.2;
          }
        }
      }
    }
    > p {
      font-size: 1.25rem;
      padding: 1.0625rem 1.5rem;
      text-align: left;
    }
  }

  #sec02 {
    padding-bottom: 3.75rem;
    background-image: url(../img/sec02-bg01-sp.png);
    h2 {
      font-size: 1.25rem;
      padding: 1.0625rem 1.5rem;
      text-align: left;
      line-height: 1.8;
      margin-bottom: 3.75rem;
    }
    section {
      h3 {
        font-size: 1.5rem;
        font-weight: 400;
        line-height: 2;
        letter-spacing: 10%;
        margin-bottom: 2.1875rem;
        background-image: url(../img/deco01-sp.svg), url(../img/deco02-sp.svg);
        background-size: 2.1875rem, 2.1875rem;
      }
      &#sec02-01 {
        h3 {
          margin-bottom: 0.625rem;
        }
        .-txt01 {
          font-size: 1.25rem;
          font-weight: 500;
          line-height: 1.8;
          white-space: nowrap;
          margin-bottom: 1.25rem;
        }
        .my-cols {
          flex-direction: column-reverse;
          gap: 1.25rem;
          margin-bottom: 1.25rem;
          .-txt {
            letter-spacing: 5%;
          }
          .-img {
            width: 100%;
          }
        }
        .-txt02 {
          font-size: 1.25rem;
          line-height: 1.8;
          border: 1px solid #E2B890;
          border-radius: 1.125rem;
          padding: 1.75rem 0.625rem;
        }
      }
      &#sec02-02 {
        margin-top: 3.75rem;
        .-txt01 {
          letter-spacing: 5%;
        }
        .-img01 {
          width: 11.875rem;
          margin-block: 2.1875rem;
        }
        .my-cols {
          flex-direction: column;
          li {
            dl {
              align-items: start;
              height: 9.1875rem;
              border-radius: 4.375rem;
              padding-inline: 1.5625rem;
              dt {
                flex-direction: row;
                gap: 0.625rem;
                font-size: 1.25rem;
                font-weight: 500;
                line-height: 1.8;
                strong {
                  width: 4.625rem;
                  font-size: 1.25rem;
                  border-radius: var(--border-radius-pill);
                  line-height: 1.5;
                }
              }
              dd {
                height: auto;
                text-align: left;
              }
            }
          }
        }
        .-txt02 {
          margin-top: 2.1875rem;
          font-size: 1rem;
          font-weight: 400;
          letter-spacing: 5%;
          background-size: 1.875rem, 1.875rem;
          background-position: center left, center right;
        }
      }
    }
  }

  #sec03 {
    padding-block: 3.75rem;
    background-image: url(../img/sec03-bg01-sp.png);
    h2 {
      font-size: 2rem;
      margin-bottom: 2.5rem;
      background: none;
      span {
        display: block;
        font-size: 1.25rem;
      }
    }
    .my-rows {
      gap: 2.5rem;
      li {
        dl {
          padding: 2.5rem 1.5625rem 1.25rem;
          dt {
            font-size: 1.25rem;
            letter-spacing: 0;
            text-align: center;
            padding-bottom: 0.9375rem;
            margin: 0 0 0.9375rem;
            .-point {
              inset: -1.5rem 0 auto 0;
              width: 4.25rem;
              height: 4.25rem;
              margin-inline: auto;
            }
          }
          dd {
            letter-spacing: 5%;
            strong {
              font-weight: 700;
            }
          }
        }
      }
    }
  }

  #sec04 {
    .-div01 {
      padding-top: 4.875rem;
      .-balloon01 {
        width: 23.6875rem;
        height: 11.3125rem;
        padding-top: 1.125rem;
        background-image: url(../img/sec04-bg01-sp.png);
        font-size: 1.25rem;
      }
      .-txt01 {
        font-size: 1.5rem;
        margin-top: 1.375rem;
        .-s {
          font-size: 1.25rem;
          font-weight: 350;
        }
      }
      .-img01 {
        inset: 10.4375rem auto auto -1.375rem;
        width: 10.5rem;
      }
      .-img02 {
        inset: 3.75rem 1.3125rem auto auto;
        width: 4.375rem;
      }
    }
    .-div02 {
      .my-cols {
        flex-direction: column;
        align-items: center;
        gap: 0.625rem;
        width: 100%;
        padding: 5em 1.875rem 1.25rem;
        margin-block: 3rem 1.25rem;
        border-radius: 0.625rem;
        .-ribbon01 {
          inset: -2.1875rem auto auto -0.75rem;
          width: 11rem;
        }
        .-img {
          width: 16.25rem;
        }
        .-txt {
          flex: 1;
          letter-spacing: 5%;
          dl {
            dt {
              position: absolute;
              inset: 0.6em 0 auto;
              font-weight: 400;
              letter-spacing: 5%;
              text-align: center;
            }
          }
        }
      }
      .-txt01 {
        margin-bottom: 3.125rem;
        > span {
          font-size: 1.25rem;
          letter-spacing: 10%;
        }
        .-img01 {
          margin-top: 2.5rem;
          width: 14.625rem;
        }
      }
      .-balloon01 {
        position: relative;
        width: 20rem;
        height: 11.125rem;
        margin: 0 auto 1.75rem 3rem;
        padding: 0 2.25rem 0 3.125rem;
        background-image: url(../img/sec04-bg02-sp.svg);
        line-height: 1.6;
        letter-spacing: 10%;
        &::after {
          content: '';
          position: absolute;
          inset: auto 5.9375rem -2.5rem auto;
          background: url(../img/sec04-bg02a-sp.svg) center / contain no-repeat;
          width: 3.5625rem;
          height: 4.5rem;
        }
      }
      .-before_after {
        width: 20.5rem;
        margin-bottom: 1.875rem;
        &::before {
          inset: 7.625rem auto auto 0;
          width: 5.625rem;
          height: 6.0625rem;
        }
        figure {
          width: 12.5rem;
          figcaption {
            inset: 0.25rem 0.25rem auto 0.25rem;
            span {
              width: 3.75rem;
              font-size: 0.75rem;
              line-height: 1.375rem;
            }
          }
          &.-after {
            width: 15.625rem;
            margin-top: -1.4rem;
          }
        }
      }
      .-txt02 {
        text-align: center;
        padding: 0.625rem 0.9375rem;
        background-image: none;
      }
    }
    .-div03 {
      padding-block: 1.6875rem 3.75rem;
      dl {
        width: 20.25rem;
        margin-bottom: 0.625rem;
        dt {
          margin-bottom: 1.0625rem;
          font-size: 1rem;
          line-height: 2.2;
          &::after {
            width: 1.875rem;
            height: 0.4375rem;
          }
        }
        dd {
          .my-cols {
            gap: 1.25rem;
            li {
              letter-spacing: 5%;
              img {
                margin-bottom: 0.625rem;
              }
              strong {
                letter-spacing: 10%;
              }
              + li::before {
                left: -0.71875rem;
              }
            }
          }
        }
      }
      .-txt01 {
        position: relative;
        text-align: left;
        background: #fff;
        line-height: 2;
        padding: 0.625rem;
        border: max(0.0625rem, 1px) solid #E2B890;
        &::after {
          content: '';
          position: absolute;
          inset: auto -0.9375rem -1.8125rem auto;
          width: 5.4375rem;
          height: 5.4375rem;
          background: url(../img/sec04-img08.png) center / contain no-repeat;
        }
      }
      .-txt02 {
        width: 24.375rem;
        height: 21rem;
        background-image: url(../img/sec04-bg04-sp.png);
        font-weight: 400;
        letter-spacing: 5%;
        p {
          strong {
            letter-spacing: 20%;
            font-weight: 500;
          }
        }
      }
    }
  }

  #sec05 {
    padding-block: 2.3125rem 3.75rem;
    background-image: url(../img/sec05-bg01-sp.png);
    h2 {
      font-size: 2rem;
      line-height: 1.8;
      margin-bottom: 1.25rem;
    }
    .-txt01 {
      font-size: 1.25rem;
      font-weight: 500;
      letter-spacing: 20%;
      margin-bottom: 3.125rem;
    }
    .my-rows {
      gap: 2.5rem;
      width: 100%;
      background-position: center top;
      li {
        height: auto;
        img {
          top: -1.875rem;
          width: 4.375rem;
          height: 4.375rem;
        }
        dl {
          justify-content: flex-start;
          gap: 0.625rem;
          padding: 1.2rem 1rem;
          margin: 0;
          position: static;
          width: auto;
          height: auto;
          min-height: auto;
          dt {
            font-size: 1.25rem;
            font-weight: 500;
            padding-left: 3em;
          }
          dd {
            line-height: 1.8;
            letter-spacing: 5%;
          }
        }
      }
    }
  }

  #sec06 {
    padding-block: 3.125rem 3.75rem;
    .-div01 {
      padding: 0;
      background: transparent;
      h2 {
        font-size: 2rem;
        margin-bottom: 1.25rem;
      }
      > p {
        font-size: 1.25rem;
        margin-bottom: 1.875rem;
      }
      .my-cols {
        flex-direction: column;
        gap: 0.625rem;
        margin-bottom: 2.5rem;
        li {
          dl {
            dt {
              font-size: 1.5rem;
              line-height: 1.4;
              letter-spacing: 20%;
            }
            dd {
              background: #fff;
              font-size: 1.5rem;
              padding-block: 1.25rem;
              small {
                font-size: 1rem;
              }
            }
          }
        }
      }
      > dl {
        dt {
          justify-content: space-between;
          font-size: 1.5rem;
          line-height: 1;
          letter-spacing: 25%;
          margin-bottom: 1.875rem;
          &::before,
          &::after {
            width: 2.75rem;
            height: 0.5125rem;
          }
        }
        dd {
          > p {
            font-size: 1rem;
            letter-spacing: 0;
          }
          > small {
            font-size: 0.75rem;
          }
        }
      }
    }
    #sec06-01,
    #sec06-02 {
      padding-top: 3.125rem;
      h3 {
        flex-direction: column;
        gap: 1.25rem;
        width: 100%;
        margin-bottom: 1.25rem;
        &::before,
        &::after {
          flex: none;
          width: 4.375rem;
          background: url(../img/line03.svg) center / auto 0.1875rem no-repeat;
        }
        &::after {
          display: none;
        }
      }
      > p {
        line-height: 2;
        letter-spacing: 5%;
      }
    }
    #sec06-01 {
      > p {
        margin-bottom: 1.875rem;
      }
      .my-cols {
        position: relative;
        display: block;
        height: 23.625rem;
        li {
          position: absolute;
          inset: 0 0 auto;
          margin-inline: auto;
          width: 10.375rem;
          height: 10.375rem;
          background-image: url(../img/sec06-bg01-sp.svg);
          font-weight: 700;
          letter-spacing: 30%;
          img {
            display: none;
          }
          small {
            font-size: 0.75rem;
            font-weight: 400;
            letter-spacing: 5%;
            line-height: 1.4;
          }
          &:nth-child(2) {
            inset: 20% auto auto -7%;
          }
          &:nth-child(3) {
            inset: 20% -7% auto auto;
          }
          &:nth-child(4) {
            inset: auto 46% 0 auto;
          }
          &:nth-child(5) {
            inset: auto auto 0 46%;
          }
        }
      }
      &::after {
        content: '';
        display: block;
        width: 1.875rem;
        height: 1.875rem;
        background: url(../img/sec06-bg02.svg) center / contain no-repeat;
        margin: 3.125rem auto 0;
      }
    }
    #sec06-02 {
      h3 {
        &::before {
          display: none;
        }
      }
    }
    #sec06-03 {
      padding: 1.25rem 0.9375rem 1.875rem;
      margin-top: 1.875rem;
      h3 {
        width: 100%;
        padding: 0.9375rem 0;
        border-top: 0.125rem solid #E2B890;
        font-size: 1.25rem;
        font-weight: 700;
        line-height: 2.2;
        small {
          font-size: 1rem;
          letter-spacing: 5%;
          text-align: center;
          margin-top: 1rem;
        }
        img {
          position: absolute;
          inset: -1.5rem 0.75rem auto auto;
          width: 7.875rem;
        }
      }
      dl {
        dt {
          font-size: 1.25rem;
          font-weight: 500;
          line-height: 1.8;
          margin-bottom: 1.875rem;
          small {
            font-size: 1rem;
            font-weight: 400;
            margin-top: 1.25rem;
            background: url(../img/deco05.png) left center / 1.75rem no-repeat,
              url(../img/deco06.png) right center / 1.75rem no-repeat;
          }
        }
        dd {
          .my-cols {
            flex-direction: column;
            gap: 0.625rem;
            li {
              padding: 0.625rem;
              border: 0;
              background: #F8EBD7;
              font-size: 1.25rem;
              font-weight: 500;
              text-align: left;
              &::before {
                content: '';
                display: inline-block;
                width: 1.5625rem;
                height: 1.375rem;
                vertical-align: middle;
                margin-bottom: 0.2em;
                background: url(../img/icon-check02.svg) center / contain no-repeat;
              }
              img {
                display: none;
              }
              small {
                font-weight: 400;
                letter-spacing: 0;
              }
              &:nth-child(4) {
                letter-spacing: inherit;
              }
            }
          }
        }
      }
    }
  }

  #sec07 {
    padding-top: 7rem;
    background: url(../img/sec07-bg01-sp.png) right 0 / 12.75rem no-repeat,
      url(../img/sec07-bg02-sp.png) left 30rem / 13.53125rem no-repeat #fffcf8;
    h2 {
      font-size: 1.5rem;
      line-height: 2.2;
      margin-bottom: 3.125rem;
    }
    p {
      letter-spacing: 5%;
    }
    .my-infinite_gallery {
      margin-top: 8rem;
      img {
        width: auto;
        height: 10.1875rem;
      }
    }
  }

  #sec08 {
    padding-block: 6.25rem;
    h2 {
      font-size: 2rem;
      margin-bottom: 3.125rem;
    }
  }

  #sec09 {
    padding-block: 3.125rem 4.875rem;
    h2 {
      font-size: 1.5rem;
      letter-spacing: 15%;
      margin: 0 0 19rem 0;
      padding-top: 2rem;
    }
    .-img01 {
      width: 100%;
      inset: 0 auto auto 0;
    }
    .-txt01 {
      letter-spacing: 5%;
      margin-bottom: 2.5rem;
      p {
        margin-bottom: 1.25rem;
      }
    }
    .-txt02 {
      font-size: 1.25rem;
      letter-spacing: 5%;
      color: #5C331A;
      margin-bottom: 1.25rem;
      &::before,
      &::after {
        width: 3.0625rem;
        height: 3.125rem;
      }
    }
  }
}
