h1 {
  font-size: clamp(40px, calc(19.066985645933013px + 5.980861244019139vw), 65px);
}

h2,
h3 {
  padding-block: 3.5vw;
  margin-block: 1em;
  text-align: center;
}

h2 {
  font-size: clamp(26px, calc(18.464114832535884px + 2.15311004784689vw), 35px);
  letter-spacing: 0.03em;
}

h3 {
  margin-bottom: 1.5em;
}

h4 {
  font-size: 1.8rem;
}

.tit::before,
.tit::after {
  height: 1px;
  width: 92vw;
}

.txt {
  margin-bottom: 5vw;
  padding-top: 10.13vw;
  font-size: 1.6rem;
  text-align: center;
}
.img {
  img {
    border: 15px white solid;
  }
}

#hero_img {
  width: 100vw;
  height: auto;
  aspect-ratio: 16 / 9;
}

#content {
  .guide_price_box,
  .guide_for_box,
  .limited_box {
    margin: 4rem 0 8rem;
  }

  #limited {
    h2 {
      margin: 0;
    }
  }

  #limited_item {
    .tabs {
      display: flex;
      margin-bottom: 0.5em;
    }

    .tab::after {
      font-family: "Font Awesome 5 Free";
      font-weight: 900;
      content: "\f107";
      margin-left: 0.25em;
    }
  }

  #limited_wrapping {
    #card_img {
      transform: translate(10%, -45%) rotate(15deg);
      display: inline-block;
      img {
        width: 40%;
      }
    }
    .txt {
      padding-top: 0;
      margin-top: -15%;
    }
  }

  #engraving {
    .nowrap {
      padding-bottom: 1.5em;
    }
  }

  #guide {
    #guide_for {
      .img {
        margin-bottom: 2em;
      }

      ul {
        flex-direction: column;

        li {
          width: 100%;
        }
      }

      .side {
        display: flex;
        justify-content: space-evenly;
        align-items: center;

        .image-box {
          flex-basis: 30%;
        }

        .text {
          padding-right: 0;
          flex-basis: 50%;
        }
      }
      .rank {
        width: 20%;
        top: 25%;
        right: 0%;
      }
    }
  }
}

#guide_price {
  overflow: hidden;

  h4 {
    font-family: var(--shippori);
    font-weight: 400;
  }

  .guide_price_box {
    padding: 3%;
    margin-bottom: 8%;
  }

  .item {
    background-color: var(--beige2);
    border: 1px solid var(--beige1);
  }

  .image {
    margin: 0 auto;
    aspect-ratio: 1;
  }

  [nh-list-product] {
    flex-wrap: nowrap;
    .item {
      background-color: white;
    }
  }

  .category,
  .color {
    font-size: 1.3rem;
  }
}

#line {
  .logo_line {
    margin-inline: auto;
    margin-bottom: 0.5em;
    width: 80px;
    img {
      width: 100%;
    }
  }
  .text {
    text-align: center;
    font-size: 1.6rem;
    letter-spacing: 0.05em;
  }
}

#campaign-date {
  margin-top: 2em;
  text-align: center;
  font-size: 1.4rem;
  .week {
    font-size: 1.2rem;
  }
}
