html {
  scroll-behavior: auto !important;
}

body {
  opacity: 0;
  visibility: hidden;
  animation: safetyNetReveal 0.5s ease 3s forwards;
}
.is-gsap-active body {
  animation: none;
}
body.is-loaded {
  opacity: 1;
  visibility: visible;
  transition: opacity 1s ease-in-out;
}

:where(.contents) {
  line-height: 1.8;
}
:where(.contents) *,
:where(.contents) *::before,
:where(.contents) *::after {
  letter-spacing: var(--letter-spacing, 0.08em);
  box-sizing: border-box;
}
@media screen and (max-width: 767px) {
  :where(.contents) *,
  :where(.contents) *::before,
  :where(.contents) *::after {
    letter-spacing: var(--sp-letter-spacing, var(--letter-spacing, 0.08em));
  }
}
:where(.contents) a {
  text-decoration: none;
  color: inherit;
}
:where(.contents) sup {
  font-size: 75%;
  top: -0.3em;
}
:where(.contents) ul, :where(.contents) ol {
  list-style-type: none;
}
:where(.contents) button {
  appearance: none;
  background: none;
  box-shadow: none;
  border: none;
  padding: 0;
  margin: 0;
  cursor: pointer;
  transition: opacity 0.3s;
}
@media (any-hover: hover) {
  :where(.contents) button:hover {
    opacity: 0.7;
  }
}
:where(.contents) img {
  width: 100%;
  height: auto;
}
:where(.contents) .js-fade-in {
  opacity: 0;
  visibility: hidden;
  will-change: opacity, filter, visibility;
  animation: safetyNetReveal 0.5s ease 3s forwards;
}
.is-gsap-active :where(.contents) .js-fade-in {
  animation: none;
}
:where(.contents) .js-fade-only {
  opacity: 0;
  visibility: hidden;
  will-change: opacity, visibility;
  animation: safetyNetReveal 0.5s ease 3s forwards;
}
.is-gsap-active :where(.contents) .js-fade-only {
  animation: none;
}
:where(.contents) .js-slide-up,
:where(.contents) .js-stagger-item {
  opacity: 0;
  visibility: hidden;
  will-change: opacity, transform, visibility;
  animation: safetyNetReveal 0.5s ease 3s forwards;
}
.is-gsap-active :where(.contents) .js-slide-up,
.is-gsap-active :where(.contents) .js-stagger-item {
  animation: none;
}
:where(.contents) .js-img-reveal-scale {
  opacity: 0;
  scale: 1.1;
  visibility: hidden;
  will-change: opacity, scale, visibility;
  animation: safetyNetReveal 0.5s ease 3s forwards;
}
.is-gsap-active :where(.contents) .js-img-reveal-scale {
  animation: none;
}
:where(.contents) .js-parallax {
  overflow: hidden;
}
:where(.contents) .js-parallax img {
  scale: 1.2;
  will-change: transform;
}
@keyframes safetyNetReveal {
  to {
    opacity: 1;
    visibility: visible;
    filter: blur(0px) brightness(1);
    -webkit-mask-image: none;
    mask-image: none;
  }
}

:where(.contents) .section {
  background: #fff;
  padding-top: 13.3333333333cqw;
  padding-bottom: 16cqw;
}
:where(.contents) .section__inner {
  padding-left: 4cqw;
  padding-right: 4cqw;
}

@media screen and (min-width: 768px) {
  :where(.contents) .is-sp {
    display: none !important;
  }
}
@media screen and (max-width: 767px) {
  :where(.contents) .is-pc {
    display: none !important;
  }
}

.contents {
  --contents-width: 500px;
  overflow: clip;
  color: #2C323C;
}
@media screen and (min-width: 768px) {
  .contents {
    background-color: #f2f1ec;
  }
}
.contents {
  /* 
      component
  */
}
.contents .heading {
  text-align: center;
  font-size: 5.8666666667cqw;
  font-weight: 500;
  color: #948763;
  margin-bottom: 1.4em;
  letter-spacing: 0.14em;
}
.contents .note {
  font-size: 2.6666666667cqw;
  text-indent: -1em;
  padding-left: 1em;
  line-height: 1.5;
  color: #666666;
}
.contents .logo {
  width: min(54.5cqw, 27.25cqh, 218px);
}
.contents .product-card {
  display: flex;
  align-items: center;
  z-index: 1;
}
.contents .product-card:has(.product-card__variations) {
  align-items: flex-start;
}
.contents .product-card:has(.product-card__variations) .product-card__img-wrap {
  margin-top: 0;
}
.contents .product-card:has(.product-card__variations) .product-card__body {
  margin-top: 8cqw;
}
.contents .product-card__img-wrap {
  flex: 0 0 40cqw;
  display: grid;
  gap: 2.6666666667cqw;
  margin-top: -2.6666666667cqw;
  z-index: 2;
  will-change: opacity, filter, visibility;
}
.contents .product-card__img {
  box-shadow: 0 0 5.3333333333cqw rgba(153, 153, 153, 0.2);
}
.contents .product-card__variations {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.3333333333cqw;
  padding: 0 2.6666666667cqw;
}
.contents .product-card__variations li {
  width: 9.3333333333cqw;
  border: 0.2666666667cqw solid #ddd;
  will-change: opacity, filter, visibility;
}
.contents .product-card__variations:has(li:nth-child(7)) li {
  width: 6.6666666667cqw;
}
.contents .product-card__body {
  flex-grow: 1;
  padding: 8cqw 4cqw 0 2.6666666667cqw;
  position: relative;
  z-index: 1;
  will-change: opacity, filter, visibility;
}
.contents .product-card__body::before {
  content: "";
  position: absolute;
  inset: 0 0 5.3333333333cqw -9.3333333333cqw;
  background: #f6f5f2;
  z-index: -1;
}
.contents .product-card__tags {
  position: absolute;
  bottom: 100%;
  left: 4.2666666667cqw;
  display: flex;
  align-items: center;
  column-gap: 0.6666666667cqw;
}
.contents .product-card__tag {
  width: 14.8cqw;
  height: 4cqw;
  display: grid;
  place-content: center;
  font-size: 1.6cqw;
  border-radius: 1.0666666667cqw 1.0666666667cqw 0 0;
  font-weight: 500;
}
.contents .product-card__tag.-vip {
  background-image: linear-gradient(-60deg, rgba(176, 119, 200, 0.3137254902), rgba(186, 230, 250, 0.3137254902));
}
.contents .product-card__tag.-gold {
  background-image: linear-gradient(-60deg, rgba(132, 117, 78, 0.3137254902), rgba(246, 217, 142, 0.3137254902));
}
.contents .product-card__tag.-reguler {
  background-image: linear-gradient(-60deg, rgba(133, 144, 165, 0.3137254902), rgba(198, 214, 243, 0.3137254902));
}
.contents .product-card__name {
  display: flex;
  justify-content: center;
  margin-bottom: 1em;
}
.contents .product-card__name img {
  width: auto;
  height: 2.9333333333cqw;
}
.contents .product-card__name.-line2 img {
  height: 7.7333333333cqw;
}
.contents .product-card__txt {
  text-align: center;
  font-size: 2.9333333333cqw;
  line-height: 1.6;
}
.contents .product-card__new-color {
  margin-top: 2.6666666667cqw;
  width: 21.3333333333cqw;
  height: 3.7333333333cqw;
  margin-inline: auto;
  border-radius: 0.8cqw;
  display: grid;
  place-content: center;
  font-size: 2.1333333333cqw;
  color: #fff;
  background: linear-gradient(90deg, #939181, #b7b59a, #939181);
}
.contents .product-card__thumb {
  width: 21.3333333333cqw;
  margin-inline: auto;
  margin-top: 4cqw;
}
.contents .product-card__colors {
  margin-top: 2.6666666667cqw;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2.6666666667cqw;
}
.contents .product-card__color {
  text-align: center;
  font-size: 2.4cqw;
  line-height: 1.2;
}
.contents .product-card__color p {
  margin-top: 1em;
}
.contents .product-card__price {
  margin-top: 1.3333333333cqw;
  text-align: center;
  font-size: 3.4666666667cqw;
  font-weight: 700;
}
.contents .product-card__price .tax {
  font-size: 75%;
}
.contents .product-card__button {
  margin-top: 2.6666666667cqw;
  margin-inline: auto;
  width: 42.6666666667cqw;
  height: 10.6666666667cqw;
  background: #000;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5em;
  font-size: 3.4666666667cqw;
  font-weight: 700;
}
.contents .product-card__button::after {
  content: "";
  width: 2.1333333333cqw;
  height: 2.1333333333cqw;
  border-right: 0.2666666667cqw solid #fff;
  border-top: 0.2666666667cqw solid #fff;
  rotate: 45deg;
}
.contents .product-card.-rev {
  flex-direction: row-reverse;
}
.contents .product-card.-rev .product-card__body {
  padding: 8cqw 2.6666666667cqw 0 4cqw;
}
.contents .product-card.-rev .product-card__body::before {
  inset: 0 -9.3333333333cqw 5.3333333333cqw 0;
}
.contents .side-nav {
  display: grid;
  gap: min(10cqw, 5cqh, 40px);
}
.contents .side-nav__item.is-active {
  color: #948763;
}
.contents .side-nav__link {
  display: flex;
  flex-direction: column;
}
.contents .side-nav__link .en {
  font-size: min(7.5cqw, 3.75cqh, 30px);
  letter-spacing: 0.14em;
  line-height: 1.5;
  font-weight: 500;
  display: flex;
  align-items: baseline;
  gap: min(3.25cqw, 1.625cqh, 13px);
}
.contents .side-nav__link .en img {
  width: min(3cqw, 1.5cqh, 12px);
}
.contents .side-nav__link .jp {
  font-size: min(4cqw, 2cqh, 16px);
  line-height: 1.5;
  letter-spacing: 0.14em;
}
.contents .bg {
  position: sticky;
  top: 0;
  width: 100%;
  height: 100svh;
  opacity: 1;
  background: url(../img/bg-body.jpg) no-repeat center top/100% #f2f1ec;
}
@media screen and (max-width: 767px) {
  .contents .bg {
    display: none;
  }
}
.contents .bg__left, .contents .bg__right {
  container-type: size;
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 1;
  width: calc((100% - var(--contents-width)) / 2);
  height: 100%;
  display: grid;
  place-content: center;
  place-items: center;
  opacity: 0;
  will-change: filter, opacity;
  animation: safetyNetReveal 0.5s ease 3s forwards;
}
.is-gsap-active .contents .bg__left, .is-gsap-active .contents .bg__right {
  animation: none;
}
@media screen and (max-width: 1023px), (max-height: 499px) {
  .contents .bg__left, .contents .bg__right {
    display: none;
  }
}
.contents .bg__left {
  left: 0;
}
.contents .bg__right {
  right: 0;
}
.contents .wrapper {
  container-type: inline-size;
  opacity: 0;
  max-width: var(--contents-width);
  margin-inline: auto;
  margin-top: -100svh;
  overflow: clip;
  will-change: opacity;
  animation: safetyNetReveal 0.5s ease 3s forwards;
}
.is-gsap-active .contents .wrapper {
  animation: none;
}
@media screen and (max-width: 767px) {
  .contents .wrapper {
    max-width: 100%;
    margin-top: 0;
  }
}
.contents .kv {
  background: #fff;
  height: clamp(150cqw, 100svh - var(--refa-header-h), 180cqw);
  overflow: hidden;
  position: sticky;
  top: 0;
  z-index: 1;
  padding-bottom: 17.3333333333cqw;
}
@media screen and (max-width: 767px) and (max-aspect-ratio: 750/1450) {
  .contents .kv {
    height: auto;
  }
}
@media screen and (min-width: 768px) and (min-height: 980px) {
  .contents .kv {
    height: auto;
  }
}
@media screen and (max-width: 767px) and (min-aspect-ratio: 750/1225) {
  .contents .kv {
    position: relative;
  }
}
@media screen and (min-width: 768px) and (max-height: 830px) {
  .contents .kv {
    position: relative;
  }
}
.contents .kv__img {
  overflow: hidden;
  margin: 5.0666666667cqw 5.0666666667cqw 4cqw;
  -webkit-mask-image: url("../img/im-mask.png"), url("../img/im-mask.png");
  mask-image: url("../img/im-mask.png"), url("../img/im-mask.png");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: -50cqw -50cqw, calc(100% + 50cqw) calc(100% + 50cqw);
  mask-position: -50cqw -50cqw, calc(100% + 50cqw) calc(100% + 50cqw);
  -webkit-mask-size: 120% 120%, 120% 120%;
  mask-size: 120% 120%, 120% 120%;
  will-change: mask-position, mask-size;
  animation: safetyNetReveal 0.5s ease 3s forwards;
}
.is-gsap-active .contents .kv__img {
  animation: none;
}
.contents .kv__img img {
  filter: blur(15px) brightness(1.5);
  will-change: filter, scale;
  animation: safetyNetReveal 0.5s ease 3s forwards;
  scale: 1.1;
}
.is-gsap-active .contents .kv__img img {
  animation: none;
}
.contents .kv__logo {
  opacity: 0;
  will-change: filter, opacity;
  animation: safetyNetReveal 0.5s ease 3s forwards;
}
.is-gsap-active .contents .kv__logo {
  animation: none;
}
.contents .kv__refa {
  width: 56.6666666667cqw;
  margin-inline: auto;
  margin-bottom: 6.1333333333cqw;
}
.contents .kv__heading {
  width: 84.5333333333cqw;
  margin-inline: auto;
  position: relative;
  z-index: 1;
}
.contents .main {
  position: relative;
  z-index: 2;
  overflow: clip;
  background: #fff;
}
.contents .intro {
  padding: 17.3333333333cqw 4cqw 12cqw;
  text-align: center;
  background: #fff;
  position: relative;
  z-index: 1;
  opacity: 0;
  will-change: filter, opacity;
  animation: safetyNetReveal 0.5s ease 3s forwards;
}
.is-gsap-active .contents .intro {
  animation: none;
}
.contents .intro:has(+ .news) {
  padding-bottom: 2.6666666667cqw;
}
.contents .intro::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(transparent 70%, #fff 85%);
  z-index: 1;
}
.contents .intro__bg {
  position: absolute;
  inset: 0;
  z-index: -1;
  transform-origin: 40% 40%;
  will-change: scale, transform, filter;
}
.contents .intro__bg img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: top center;
}
.contents .intro__txt {
  font-size: 4cqw;
  line-height: 2;
  z-index: 1;
  position: relative;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
}
.contents .intro__txt p + p {
  margin-top: 1.5em;
}
.contents .anchor {
  position: relative;
  background: #fff;
  z-index: 2;
}
.contents .anchor__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  background: url(../img/bg-anchor.jpg) no-repeat center/cover;
}
.contents .anchor__item {
  position: relative;
}
.contents .anchor__item:not(:first-child)::before {
  content: "";
  width: 1px;
  height: 24.2666666667cqw;
  background-image: linear-gradient(0deg, rgba(145, 147, 136, 0) 0%, rgba(145, 147, 136, 0.4980392157) 15%, #919388 50%, rgba(145, 147, 136, 0.4980392157) 85%, rgba(145, 147, 136, 0) 100%);
  position: absolute;
  left: -0.1333333333cqw;
  top: 50%;
  translate: 0 -50%;
}
.contents .anchor__item a {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4cqw;
  color: #fff;
  height: 32cqw;
  font-size: 3.4666666667cqw;
  font-weight: 500;
  letter-spacing: 0.14em;
  line-height: 1.4;
}
.contents .anchor__item a::after {
  content: "";
  width: 2.1333333333cqw;
  height: 2.1333333333cqw;
  border-right: 0.2666666667cqw solid #fff;
  border-bottom: 0.2666666667cqw solid #fff;
  rotate: 45deg;
}
.contents .anchor__item__txt {
  display: grid;
  place-content: center;
  text-align: center;
}
.contents .anchor__item__num {
  width: 13.9cqw;
  position: absolute;
  top: 0;
  left: 50%;
  translate: -50% -50%;
  pointer-events: none;
}
.contents .news {
  background: #fff;
  position: relative;
  z-index: 2;
}
.contents .news:has(+ .products) {
  padding-bottom: 0;
}
.contents .news__list {
  display: grid;
  gap: 6.6666666667cqw;
}
.contents .news__item {
  display: grid;
  grid-template-columns: 23.2cqw 1fr;
}
.contents .news__item__date {
  font-weight: 500;
  font-size: 3.2cqw;
  line-height: 1.6;
}
.contents .news__item__txt {
  font-size: 3.2cqw;
  line-height: 1.6;
  letter-spacing: 0.14em;
}
.contents .campaign {
  background: url(../img/bg-campaign-club-aira.jpg) no-repeat top center/cover;
  padding: 4cqw;
  position: relative;
  z-index: 2;
}
.contents .campaign__inner {
  background: #fff;
  padding: 8cqw 5.3333333333cqw 5.3333333333cqw;
}
.contents .campaign__aira {
  text-align: center;
}
.contents .campaign__aira__header {
  border-bottom: 1px solid #ddd;
  padding-bottom: 9.3333333333cqw;
  margin-bottom: 9.3333333333cqw;
}
.contents .campaign__aira__heading {
  width: 42.6666666667cqw;
  margin-inline: auto;
  margin-bottom: 6.6666666667cqw;
}
.contents .campaign__aira__lead {
  font-size: 4.2666666667cqw;
  font-family: "Noto Serif JP", serif;
  line-height: 1.6;
  color: #C28D99;
}
.contents .campaign__aira__txt {
  font-size: 3.2cqw;
  font-family: "Noto Serif JP", serif;
}
.contents .campaign__aira__txt p + p {
  margin-top: 1.8em;
}
.contents .campaign__aira__note {
  margin-top: 2em;
  text-align: left;
  font-family: "Noto Serif JP", serif;
}
@media screen and (min-width: 768px) {
  .contents .campaign__aira__note {
    font-size: 11px;
    text-align: center;
  }
}
.contents .campaign__aira__bnr {
  display: block;
  margin-top: 8cqw;
  overflow: hidden;
}
.contents .products {
  padding-top: 16cqw;
  padding-bottom: 26.6666666667cqw;
  position: relative;
  z-index: 2;
}
.contents .products__coming-soon {
  width: 89.3333333333cqw;
  margin-inline: auto;
}
.contents .products__bnr {
  margin-top: 10.6666666667cqw;
}
.contents .products__bnr__heading {
  text-align: center;
  font-size: 3.2cqw;
  color: #aea59b;
  margin-bottom: 1em;
}
.contents .products__bnr__wrap {
  position: relative;
  padding-left: 6.6666666667cqw;
  padding-right: 6.6666666667cqw;
}
.contents .products__bnr__carousel {
  width: 100%;
  overflow: hidden;
}
.contents .products__bnr__nav {
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  z-index: 10;
  width: 4.2666666667cqw;
  height: 4.2666666667cqw;
  display: grid;
  place-content: center;
  cursor: pointer;
}
.contents .products__bnr__nav::before {
  content: "";
  width: 2.4cqw;
  height: 2.4cqw;
  border-right: 0.4cqw solid #aaa;
  border-top: 0.4cqw solid #aaa;
}
.contents .products__bnr__nav.-prev {
  left: 2cqw;
}
.contents .products__bnr__nav.-prev::before {
  rotate: -135deg;
}
.contents .products__bnr__nav.-next {
  right: 2cqw;
}
.contents .products__bnr__nav.-next::before {
  rotate: 45deg;
}
.contents .products__anchor {
  margin-top: 23.3333333333cqw;
  margin-bottom: 9.3333333333cqw;
}
.contents .products__anchor .anchor__list {
  background: url(../img/bg-products-anchor.jpg) no-repeat center/cover;
}
.contents .products__anchor .anchor__item a {
  gap: 2cqw;
}
.contents .products__anchor .anchor__item__txt {
  height: 2.8em;
}
.contents .products__block {
  margin-top: 6.6666666667cqw;
  padding-top: 6.6666666667cqw;
}
.contents .products__block__heading {
  display: flex;
  font-size: 5.8666666667cqw;
  color: #948763;
  font-family: "Noto Serif JP", serif;
  padding-left: 4cqw;
  padding-right: 4cqw;
  margin-bottom: 5.3333333333cqw;
}
.contents .products__block__heading img {
  width: auto;
  height: 14.1333333333cqw;
}
.contents .products__block__list {
  display: grid;
  gap: 10.6666666667cqw;
}
.contents .products__block:nth-child(2n) .products__block__heading {
  justify-content: flex-end;
}
.contents .about {
  background: #fff;
  position: relative;
  z-index: 2;
}
.contents .about__img {
  position: sticky;
  top: 0;
}
.contents .about__heading {
  text-align: center;
  font-size: 5.8666666667cqw;
  font-weight: 500;
  letter-spacing: 0.14em;
  margin-bottom: 6.6666666667cqw;
}
.contents .about__inner {
  padding: 12cqw 4cqw 24cqw;
  background: linear-gradient(#f6f5f2 30%, #fffaef 65%, #e4ddd3);
  position: relative;
  z-index: 2;
}
.contents .about__logo {
  width: 84.5333333333cqw;
  margin-inline: auto;
  margin-bottom: 12cqw;
}
.contents .about__txt {
  font-size: 3.4666666667cqw;
  font-weight: 500;
  line-height: 2;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  text-align: center;
}
.contents .about__txt p + p {
  margin-top: 2em;
}
.contents .about__season {
  text-align: center;
  font-size: 9.0666666667cqw;
  font-weight: 500;
  margin-top: 16cqw;
}
.contents .about__profile {
  background: #fff;
  padding: 10.6666666667cqw 6.6666666667cqw 17.3333333333cqw;
  position: relative;
  margin: 22.6666666667cqw 5.3333333333cqw 0;
  box-shadow: 0 0 2.6666666667cqw rgba(171, 166, 151, 0.1);
}
.contents .about__profile::before, .contents .about__profile::after {
  content: "";
  width: 26.9333333333cqw;
  height: 5.3333333333cqw;
  background: #ab9863;
  position: absolute;
  left: 50%;
  translate: -50% 0;
  clip-path: polygon(50% 2.4cqw, 100% 0%, 100% 100%, 0 100%, 0 0);
}
.contents .about__profile::before {
  bottom: 100%;
}
.contents .about__profile::after {
  top: 100%;
  scale: 1 -1;
}
.contents .about__profile__heading {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1.4;
  font-weight: 500;
  margin-bottom: 2.5em;
}
.contents .about__profile__heading .gold {
  color: #948763;
  font-size: 2.9333333333cqw;
}
.contents .about__profile__heading .name {
  font-size: 4.8cqw;
}
.contents .about__profile__txt {
  font-size: 3.4666666667cqw;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  --letter-spacing: 0.04em;
}
.contents .about__profile__txt p + p {
  margin-top: 2em;
}