html {
  scroll-behavior: smooth;
}

.fade-in {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.7s cubic-bezier(.77,0,.175,1), filter 0.7s cubic-bezier(.77,0,.175,1), transform 0.7s cubic-bezier(.77,0,.175,1);
}
.fade-in.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.riger {
  font-family: var(--font-main);
  font-optical-sizing: auto;
  font-feature-settings: "palt";
  line-height: 2.2;

  background-color: #F7F7F3;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='984.25' height='990.125' viewBox='0 0 984.25 990.125'%3E%3Cpath style='fill:%23e5e5e5;fill-rule: evenodd;' id='bg-logo.svg' class='cls-1' d='M1637.27,404.608H1136.79L1541.01-.132H1040.53L455.746,585.392H956.23L552,990.132Z' transform='translate(-455.75)'%3E%3C/path%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right top;

  position: relative;

  @media (768px <= width) {
    font-size: min(calc(100vw / 118), 10px);
  }
  @media (width < 768px) {
    font-size: calc(100vw / 37.5);
    line-height: 1.8;
  }

  .mv {
    padding: 244px 0 100px;
    @media (width < 768px) {
      padding: 160px 0 60px;
    }
    img {
      width: 1080px;
      max-width: 90%;
      margin: 0 auto;
    }
    .mv-text {
      margin: 80px auto;
      text-align: center;
      font-size: 1.8em;
      font-weight: 700;
      @media (width < 768px) {
        font-size: 1.6em;
      }
      @media (width < 768px) {
        margin: 60px auto;
      }
    }
    .btn-area {
      display: flex;
      @media (768px <= width) {
        gap: 30px;
        justify-content: center;
        align-items: center;
      }
      @media (width < 768px) {
        flex-direction: column;
        align-items: center;
        gap: 20px;
      }
    }
    .btn-scroll {
      width: 320px;
      max-width: 90%;
      height: 96px;
      border: 3px solid var(--green-color);
      background: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: 50px;
      transition: all .4s var(--ease);
      @media (width < 768px) {
        height: 80px;
      }
      img {
        margin: 0 auto;
        width: auto;
        @media (width < 768px) {
          scale: .8;
        }
      }
      &:hover {
        background: var(--green-color);
        img {
          filter: brightness(0) invert(1);
        }
      }
    }
  }

  section:not(:last-of-type) {
    position: relative;
    overflow: hidden;
    z-index: 1;
    @media (768px <= width) {
      padding: 200px 0 400px;
    }
    @media (width < 768px) {
      padding: 120px 0 120px;
    }
    &::before {
      content: "";
      position: absolute;
      inset: 0 0 auto 50%;
      transform: translateX(-50%);
      width: calc( 100% + 50vw);
      height: 100vw;
      border-radius: 50%;
      z-index: -1;
    }
    &::after {
      content: "";
      position: absolute;
      top: 20vw;
      left: 0;
      width: 100%;
      z-index: -1;
      height: calc(100% - 20vw);
    }
    &:not(:first-of-type) {
      margin-top: -15vw;
      z-index: 2;
    }
    &:nth-of-type(odd) {
      &::before {
        background: var(--cream-color);
      }
      &::after {
        background: var(--cream-color);
      }
    }
    &:nth-of-type(even) {
      &::before {
        background: var(--yellow-color);
      }
      &::after {
        background: var(--yellow-color);
      }
    }
  }

  .inner {
    margin: 0 auto;
    @media (768px <= width) {
      width: 880px;
      max-width: 90%;
    }
    @media (width < 768px) {
      width: 86%;
    }
  }

  .title-area {
    img {
      display: block;
      margin: 0 auto;
      @media (width < 768px) {
        scale: .9;
      }
    }
    p {
      color: var(--lightgreen-color);
      font-weight: 700;
      font-size: 2em;
      text-align: center;
      letter-spacing: .1em;
      @media (768px <= width) {
        margin-top: 30px;
      }
      @media (width < 768px) {
        font-size: 1.6em;
        margin-top: 20px;
      }
    }
    + * {
      @media (768px <= width) {
        margin-top: 80px;
      }
      @media (width < 768px) {
        margin-top: 60px;
      }
    }
  }

  .btn {
    display: block;
    width: 300px;
    background: var(--green-color);
    color: #fff;
    text-align: center;
    color: #fff;
    font-weight: 700;
    padding: 10px;
    border-radius: 50px;
    transition: all .4s var(--ease);
    @media (768px <= width) {
      font-size: 1.6em;
    }
    @media (width < 768px) {
      font-size: 1.6em;
    }
    &:hover {
      background: #fff;
      color: var(--green-color);
    }
  }

  #match {
    .item-box {
      display: flex;
      @media (768px <= width) {
        gap: 70px;
      }
      @media (width < 768px) {
        flex-direction: column;
        align-items: center;
        gap: 40px;
      }
      &:nth-of-type(odd) {
        @media (768px <= width) {
          flex-direction: row-reverse;
        }
      }
      + .item-box {
        @media (768px <= width) {
          margin-top: 80px;
        }
        @media (width < 768px) {
          margin-top: 40px;
        }
      }
    }
    .img-box {
      flex-shrink: 0;
    }
    .riger-text-box {
      @media (768px <= width) {
        font-size: 1.6em;
      }
      @media (width < 768px) {
        font-size: 1.4em;
      }
    }
    h3 {
      display: flex;
      align-items: center;
      gap: 20px;
      margin-top: 20px;
      font-weight: 700;
      padding-bottom: 16px;
      background-image: radial-gradient(circle, #01723e 3px, transparent 3px);
      background-position: left bottom;
      background-repeat: repeat-x;
      background-size: 18px 6px;
      + * {
        margin-top: 30px;
      }
    }
    p {
      font-weight: 700;
    }
    .item-detail-box {
      margin-top: 15px;
      background: #fff;
      padding: 10px 20px;
      p {
        font-weight: 500;
        font-size: 14px;
      }
    }
  }

  #daily {
    .item-box {
      display: flex;
      @media (768px <= width) {
        gap: 70px;
      }
      @media (width < 768px) {
        flex-direction: column;
        align-items: center;
        gap: 40px;
      }
      &:nth-of-type(odd) {
        @media (768px <= width) {
          flex-direction: row-reverse;
        }
      }
      + .item-box {
        @media (768px <= width) {
          margin-top: 80px;
        }
        @media (width < 768px) {
          margin-top: 40px;
        }
      }
    }
    .img-box {
      flex-shrink: 0;
    }
    .riger-text-box {
      p {
        @media (768px <= width) {
          font-size: 1.6em;
        }
        @media (width < 768px) {
          font-size: 1.4em;
        }
      }
    }
    h3 {
      color: var(--lightgreen-color);
      font-size: 3em;
      font-weight: 700;
      padding: 10px 15px;
      background: #fff;
      line-height: 1.2;
      border: 2px solid var(--lightgreen-color);
      display: inline-block;
      + * {
        margin-top: 30px;
      }
    }
    p {
      font-weight: 700;
    }
    .btn {
      margin-top: 30px;
      @media (width < 768px) {
        margin: 30px auto 0;
      }
    }
  }

  #recommend {
    .recommend-comment {
      display: flex;
      align-items: center;
      gap: 40px;
      margin-top: 50px;
      @media (width < 768px) {
        flex-direction: column;
        gap: 20px;
      }
      .img-box {
        flex-shrink: 0;
      }
      .riger-text-box {
        background: #fff;
        border-radius: 30px;
        @media (768px <= width) {
          padding: 30px 40px;
        }
        @media (width < 768px) {
          padding: 30px;
        }
      }
      p {
        font-size: 1.6em;
        font-weight: 700;
        @media (width < 768px) {
          font-size: 1.4em;
        }
        strong {
          background: linear-gradient(transparent 50%, var(--yellow-color) 50%);
        }
      }
    }
    .item-list {
      display: flex;
      @media (768px <= width) {
        gap: 90px;
        margin-top: 80px;
        justify-content: center;
      }
      @media (width < 768px) {
        flex-direction: column;
        align-items: center;
        gap: 40px;
        margin-top: 60px;
      }
      .item-name {
        font-size: 2em;
        font-weight: 700;
        text-align: center;
        margin-top: 30px;
      }
      .btn {
        margin: 30px auto 0;
      }
    }
  }

  #ichioshi {
    padding-bottom: 0;
    .title-area {
      h2 {
        @media (768px <= width) {
          margin-top: -60px;
        }
        @media (width < 768px) {
          margin-top: -20px;
          transform: translateX(20px);
        }
      }
    }
    .ichioshi-box {
      position: relative;
      .riger-text-box {
        width: 480px;
        background: #fff;
        padding: 40px;
        font-weight: 700;
        max-width: 100%;
        border-radius: 20px;
        box-shadow: 6px 6px 0 0 rgba(219, 185, 102, 0.40);
        @media (768px <= width) {
          font-size: 1.6em;
        }
        @media (width < 768px) {
          font-size: 1.4em;
          padding: 30px;
        }
      }
      .img-box {
        @media (768px <= width) {
          margin-top: -140px;
          scale: 1.1;
        }
      }
      .decoration {
        position: absolute;
        right: -120px;
        bottom: -100px;
      }
    }
    .img-area {
      display: flex;
      margin-top: 50px;
      justify-content: center;
      gap: 60px;
      position: relative;
      @media (width < 768px) {
        flex-direction: column;
        gap: 40px;
      }
      .decoration {
        position: absolute;
        right: -60px;
        bottom: -200px;
        @media (width < 768px) {
          right: 0;
          bottom: -80px;
          width: 25vw;
        }
      }
      + * {
        margin-top: 100px;
      }
    }
    .about-box {
      position: relative;
      @media (768px <= width) {
        padding-bottom: 240px;
      }
      @media (width < 768px) {
        padding-bottom: 40px;
        display: flex;
        flex-direction: column-reverse;
      }
      .img-box {
        @media (768px <= width) {
          position: absolute;
          top: -40px;
          left: -100px;
        }
        @media (width < 768px) {
          z-index: 2;
          width: 40vw;
          margin-top: -30px;
        }
      }
      .riger-text-box {
        width: 600px;
        max-width: 100%;
        padding: 40px;
        margin: 0 auto;
        background: var(--unnamed, #FFF4D3);
        font-weight: 700;
        @media (768px <= width) {
          font-size: 1.6em;
        }
        @media (width < 768px) {
          font-size: 1.4em;
        }
      }
      .chara-01 {
        color: var(--lightgreen-color);
      }
      .chara-02 {
        color: var(--pink-color);
      }
    }
    .ichioshi-title {
      background: var(--green-color);
      @media (768px <= width) {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 40px;
        padding: 20px 0;
      }
      @media (width < 768px) {
        padding: 30px 0;
      }
      img {
        display: block;
        margin: 0 auto;
      }
      .pic {
        @media (width < 768px) {
          width: 25vw;
          margin: 0 auto;
        }
      }
      h2 {
        @media (width < 768px) {
          margin-top: 20px;
        }
      }
    }
    .ichioshi-item-area {
      background: var(--mint-color);
      @media (768px <= width) {
        padding: 100px 0;
      }
      @media (width < 768px) {
        padding: 60px 0;
      }
      &:nth-child(even) {
        background: var(--softpink-color);
        .btn {
          background: var(--pink-color);
          &:hover {
            background: #fff;
            color: var(--pink-color);
          }
        }
      }
      &.is-keyholder {
        .title-area h3 {
          @media (width < 768px) {
            transform: translateX(24px);
          }
        }
      }
      &.is-softtoy {
        .title-area h3 {
          @media (width < 768px) {
            transform: translateX(10px);
          }
        }
      }
    }
    .item-list {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      font-weight: 700;
      text-align: center;
      line-height: 1.8;
      @media (768px <= width) {
        gap: 65px;
      }
      @media (width < 768px) {
        flex-direction: column;
        align-items: center;
        gap: 40px;
      }
      .item-name {
        font-size: 1.6em;
        margin-top: 20px;
      }
      .item-price {
        font-size: 2.4em;
      }
      .btn {
        width: 250px;
        margin-top: 20px;
      }
    }
  }

  .slider {
    padding: 100px 0 0;
    background: var(--cream-color);
    overflow: hidden;
    .slider-list {
      display: flex;
      gap: 40px;
      min-width: max-content;
      will-change: transform;
      li {
        @media (width < 768px) {
          width: 200px;
        }
      }
    }
    .link-box {
      margin-top: 60px;
      display: flex;
      align-items: center;
      @media (768px <= width) {
        justify-content: center;
        margin-left: -340px;
      }
      @media (width < 768px) {
        flex-direction: column-reverse;
        gap: 40px;
      }
      .img-box {
        @media (width < 768px) {
          width: 50vw;
          transform: translateX(-10px);
        }
      }
    }
  }

}
