html {
  scroll-behavior: auto !important;
}

body {
  opacity: 0;
  visibility: hidden;
  animation: safetyNetReveal 0.5s ease 5s forwards;
}
.is-gsap-active body {
  animation: none;
}
body.is-loaded {
  opacity: 1;
  visibility: visible;
  transition: opacity 1s ease-in-out;
}
body.is-fixed {
  position: fixed;
  width: 100%;
  left: 0;
}

:where(.contents) {
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.8;
  color: #231815;
  font-feature-settings: "palt" 1;
}
: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;
  color: inherit;
}
@media (any-hover: hover) {
  :where(.contents) button:hover {
    opacity: 0.7;
  }
}
:where(.contents) select {
  appearance: none;
  width: 100%;
  cursor: pointer;
  text-align-last: center;
  color: inherit;
}
: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 5s forwards;
}
.is-gsap-active :where(.contents) .js-fade-in {
  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 5s forwards;
}
.is-gsap-active :where(.contents) .js-slide-up,
.is-gsap-active :where(.contents) .js-stagger-item {
  animation: none;
}
:where(.contents) *:has(> .js-img-reveal-scale) {
  overflow: hidden;
}
:where(.contents) .js-img-reveal-scale {
  opacity: 0;
  scale: 1.1;
  visibility: hidden;
  will-change: opacity, scale, visibility;
  animation: safetyNetReveal 0.5s ease 5s forwards;
}
.is-gsap-active :where(.contents) .js-img-reveal-scale {
  animation: none;
}
@keyframes safetyNetReveal {
  to {
    opacity: 1;
    visibility: visible;
    filter: blur(0px) brightness(1);
    scale: 1;
    -webkit-mask-image: none;
    mask-image: none;
  }
}

:where(.contents) .section {
  padding-top: 11.3333333333cqw;
}
:where(.contents) .section__inner {
  padding-inline: 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;
  --space-between: 2.6666666667;
  --swiper-pagination-bullet-size: 2.6666666667cqw;
  --swiper-pagination-bullet-horizontal-gap: 1.3333333333cqw;
  --swiper-pagination-bullet-inactive-color: #cacaca;
  --swiper-pagination-color: #50402c;
  overflow: clip;
  /* 
      component
  */
}
.contents .heading {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.contents .heading__en {
  font-family: "Baskervville", serif;
  font-optical-sizing: auto;
  font-size: 5.0666666667cqw;
  line-height: 1.5;
  font-weight: 400;
  letter-spacing: 0;
  color: var(--winter-heading-en-color, #ae0025);
  margin-bottom: 0.5em;
}
.contents .heading__jp {
  font-size: 5.3333333333cqw;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  letter-spacing: 0.15em;
  color: var(--winter-heading-en-color, inherit);
  margin-bottom: 1.2em;
}
.contents .button {
  width: 100%;
  height: 13.3333333333cqw;
  margin-inline: auto;
  font-size: 3.7333333333cqw;
  font-family: "Noto Sans JP", sans-serif;
  background: #231815;
  color: #fff;
  position: relative;
  display: grid;
  place-content: center;
  letter-spacing: 0.06em;
}
.contents .button::after {
  content: "";
  width: 2.1333333333cqw;
  height: 2.1333333333cqw;
  border-right: 0.2666666667cqw solid currentColor;
  border-top: 0.2666666667cqw solid currentColor;
  rotate: 45deg;
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  right: 4cqw;
}
.contents .button.is-disabled {
  background: #cacaca;
  pointer-events: none;
}
.contents .button.is-disabled::after {
  content: none;
}
.contents .filter-select {
  width: 100%;
  position: relative;
  margin-bottom: 5.3333333333cqw;
}
.contents .filter-select::after {
  content: "";
  width: 2.1333333333cqw;
  height: 2.1333333333cqw;
  border-right: 0.4cqw solid #ae0025;
  border-bottom: 0.4cqw solid #ae0025;
  rotate: 45deg;
  position: absolute;
  top: 50%;
  translate: 0 -75%;
  right: 6.4cqw;
  pointer-events: none;
}
.contents .filter-select select {
  appearance: none;
  width: 100%;
  height: 8.4cqw;
  font-size: 3.2cqw;
  border: 0.2666666667cqw solid #231815;
  border-radius: 99px;
  background-color: #fff;
  cursor: pointer;
  text-align-last: center;
}
.contents .filter-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2.1333333333cqw;
}
.contents .filter-buttons button {
  width: 29.2cqw;
  min-height: 5.7333333333cqw;
  padding: 0.5333333333cqw;
  font-size: 2.9333333333cqw;
  color: #898989;
  background-color: #fff;
  border: 1px solid #d6c9b3;
  border-radius: 99px;
  cursor: pointer;
  line-height: 1.4;
  letter-spacing: 0.06em;
  text-align: left;
  display: grid;
  place-content: center;
}
.contents .filter-buttons button:hover {
  background-color: #f5f5f5;
}
.contents .filter-buttons button.is-active {
  background-color: #ae0025;
  color: #fff;
  border-color: #ae0025;
}
.contents .note, .contents .limited-card__products-ttl {
  font-size: 2.6666666667cqw;
  text-indent: -1em;
  padding-left: 1em;
  line-height: 1.6;
  color: #795f35;
  letter-spacing: 0.05em;
}
.contents .logo {
  width: min(54.5cqw, 27.25cqh, 218px);
}
.contents .pickup-card {
  width: 77.3333333333cqw;
  position: relative;
}
.contents .pickup-card:not(:has(.pickup-card__note)) {
  padding-bottom: 7.3333333333cqw;
}
.contents .pickup-card__link {
  height: var(--pickup-card-height);
  display: block;
  background: #f6f3ed;
  cursor: pointer;
}
@media (any-hover: hover) {
  .contents .pickup-card__link:hover .pickup-card__img img {
    scale: 1.05;
  }
}
.contents .pickup-card__img {
  overflow: hidden;
}
.contents .pickup-card__img img {
  transition: scale 0.6s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: scale;
}
.contents .pickup-card__body {
  padding: 6.6666666667cqw 4cqw;
  text-align: center;
  font-family: "Noto Serif JP", serif;
}
.contents .pickup-card__name {
  font-size: 3.7333333333cqw;
  letter-spacing: 0.14em;
  margin-bottom: 1em;
}
.contents .pickup-card__copy {
  font-size: 2.9333333333cqw;
  line-height: 1.6;
  letter-spacing: 0.15em;
  margin-bottom: 1em;
}
.contents .pickup-card__price {
  margin-top: auto;
  font-size: 4.608cqw;
  letter-spacing: 0.04em;
}
.contents .pickup-card__price .yen {
  font-size: 80%;
}
.contents .pickup-card__price .tax {
  font-size: 50%;
  letter-spacing: 0.08em;
}
.contents .pickup-card__button {
  margin-top: 6.6666666667cqw;
}
.contents .pickup-card__note {
  margin: 12cqw 3.2cqw 0;
  color: #795f35;
}
.contents .limited-card {
  width: 100%;
  background: #f6f3ed;
  position: relative;
  padding: 5.3333333333cqw 2cqw 8cqw;
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 4;
  gap: 0;
}
.contents .limited-card.is-open {
  padding-bottom: 4cqw;
}
.contents .limited-card__num {
  display: block;
  width: 8.96cqw;
  position: absolute;
  left: 50%;
  top: 0;
  translate: -50% -50%;
}
.contents .limited-card__name {
  font-family: "Noto Serif JP", serif;
  font-size: 3.7333333333cqw;
  letter-spacing: 0.15em;
  line-height: 1.4;
  font-weight: 500;
  text-align: center;
  width: 100%;
  display: grid;
  place-content: center;
  position: relative;
  padding-bottom: 0.5em;
  margin-bottom: 2cqw;
}
.contents .limited-card__name::after {
  content: "";
  width: 100%;
  height: 0.2666666667cqw;
  background: linear-gradient(90deg, #f6f3ed 30%, #c4b290 50%, #f6f3ed 70%);
  position: absolute;
  bottom: 0;
  left: 0;
}
.contents .limited-card__target {
  text-align: center;
  font-family: "Noto Serif JP", serif;
  font-size: 2.9333333333cqw;
  line-height: 1.4;
  letter-spacing: 0.05em;
  font-weight: 500;
  align-self: center;
  padding-inline: 3.8666666667cqw;
  letter-spacing: 0.05em;
}
.contents .limited-card__img {
  margin-top: 2.6666666667cqw;
  overflow: hidden;
}
.contents .limited-card__notes-wrap {
  margin-top: 2.6666666667cqw;
  height: 13.3333333333cqw;
  overflow: hidden;
}
.contents .limited-card__products-ttl {
  color: #795f35;
  margin-top: 0.5em;
}
.contents .limited-card__gradient {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 18.6666666667cqw;
  background: linear-gradient(to bottom, rgba(246, 243, 237, 0), rgb(246, 243, 237) 60%);
  pointer-events: none;
}
.contents .limited-card__trigger {
  width: 100%;
  position: absolute;
  bottom: 4cqw;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  font-size: 2.6666666667cqw;
}
.contents .limited-card.-lg {
  grid-column: span 2;
  padding: 6.6666666667cqw 4cqw 4cqw;
}
.contents .limited-card.-lg .limited-card__num {
  width: 14.9333333333cqw;
}
.contents .limited-card.-lg .limited-card__name {
  font-size: 5.6cqw;
  padding-bottom: 1.3333333333cqw;
}
.contents .limited-card.-lg .limited-card__target {
  font-size: 3.4666666667cqw;
}
.contents .product-card {
  cursor: pointer;
}
@media (any-hover: hover) {
  .contents .product-card:hover .product-card__img img {
    scale: 1.05;
  }
}
.contents .product-card__img {
  margin-bottom: 1.3333333333cqw;
  overflow: hidden;
}
.contents .product-card__img img {
  transition: scale 0.6s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: scale;
}
.contents .product-card__price {
  font-size: 3.4666666667cqw;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  --letter-spacing: 0.14em;
}
.contents .product-card__price .yen {
  font-size: 2.9333333333cqw;
}
.contents .product-card__price .tax {
  font-size: 2.6666666667cqw;
}
.contents .product-card__name {
  font-size: 2.6666666667cqw;
  line-height: 1.6;
  letter-spacing: 0.1em;
  color: #898989;
}
.contents .modal {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: calc(var(--refa-slidemenu-z-index) + 2);
  padding: 60px 20px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.5s, visibility 0.5s;
  will-change: opacity, visibility;
  pointer-events: none;
  overflow-y: auto;
  -ms-overflow-style: none;
  scrollbar-width: none;
  display: flex;
  flex-direction: column;
}
.contents .modal::-webkit-scrollbar {
  display: none;
}
@media screen and (max-width: 767px) {
  .contents .modal {
    padding: 8vw 4vw 0;
  }
}
.contents .modal.is-show {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.contents .modal.is-show .modal__inner {
  translate: 0 0;
}
.contents .modal__inner {
  container-type: inline-size;
  width: 100%;
  max-width: var(--contents-width);
  margin: auto;
  background: #fff;
  padding: 72.4637681159px 28.9855072464px;
  position: relative;
  transition: translate 0.5s;
  translate: 0 40px;
}
@media screen and (max-width: 767px) {
  .contents .modal__inner {
    max-width: 100%;
    margin-bottom: 0;
    padding: 13.3333333333vw 5.3333333333vw;
  }
}
.contents .modal__close {
  position: absolute;
  top: 5.7971014493cqw;
  right: 5.7971014493cqw;
  width: 3.1884057971cqw;
  height: 3.1884057971cqw;
}
@media screen and (max-width: 767px) {
  .contents .modal__close {
    top: 5.3333333333vw;
    right: 5.3333333333vw;
    width: 2.9333333333vw;
    height: 2.9333333333vw;
  }
}
.contents .modal__close::before, .contents .modal__close::after {
  content: "";
  width: 4.0579710145cqw;
  height: 0.2898550725cqw;
  background: #898989;
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
}
@media screen and (max-width: 767px) {
  .contents .modal__close::before, .contents .modal__close::after {
    width: 3.7333333333vw;
    height: 0.2666666667vw;
  }
}
.contents .modal__close::before {
  rotate: -45deg;
}
.contents .modal__close::after {
  rotate: 45deg;
}
.contents .modal__image-area {
  position: relative;
}
.contents .modal__slider {
  margin-bottom: 2.8985507246cqw;
}
@media screen and (max-width: 767px) {
  .contents .modal__slider {
    margin-bottom: 2.6666666667vw;
  }
}
.contents .modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  display: grid;
  place-content: center;
  text-align: center;
  color: #fff;
  z-index: 2;
  font-size: 4.0579710145cqw;
  letter-spacing: 0.1em;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .contents .modal__overlay {
    font-size: 3.7333333333vw;
  }
}
.contents .modal .swiper-pagination {
  position: static;
  line-height: 1;
  margin-top: 4.347826087cqw;
}
@media screen and (max-width: 767px) {
  .contents .modal .swiper-pagination {
    margin-top: 4vw;
  }
}
.contents .modal__info-area {
  margin-top: 4.347826087cqw;
}
@media screen and (max-width: 767px) {
  .contents .modal__info-area {
    margin-top: 4vw;
  }
}
.contents .modal__name {
  font-size: 3.4782608696cqw;
}
@media screen and (max-width: 767px) {
  .contents .modal__name {
    font-size: 3.2vw;
  }
}
.contents .modal__price {
  font-size: 4.347826087cqw;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  --letter-spacing: 0.14em;
}
@media screen and (max-width: 767px) {
  .contents .modal__price {
    font-size: 4vw;
  }
}
.contents .modal__price .yen {
  font-size: 3.4782608696cqw;
}
@media screen and (max-width: 767px) {
  .contents .modal__price .yen {
    font-size: 3.2vw;
  }
}
.contents .modal__price .tax {
  font-size: 3.1884057971cqw;
}
@media screen and (max-width: 767px) {
  .contents .modal__price .tax {
    font-size: 2.9333333333vw;
  }
}
.contents .modal__set {
  font-size: 2.8985507246cqw;
  line-height: 1.4;
  margin-top: 1em;
  --letter-spacing: 0.1em;
}
@media screen and (max-width: 767px) {
  .contents .modal__set {
    font-size: 2.6666666667vw;
  }
}
.contents .modal__set-list {
  text-indent: -1em;
  padding-left: 1em;
}
.contents .modal__ended-text {
  color: #898989;
  margin-left: 1.5em;
}
.contents .modal__action {
  display: grid;
  gap: 2.8985507246cqw;
  margin-top: 5.7971014493cqw;
}
@media screen and (max-width: 767px) {
  .contents .modal__action {
    gap: 2.6666666667vw;
    margin-top: 5.3333333333vw;
  }
}
.contents .modal__select-wrap {
  width: 100%;
  position: relative;
}
.contents .modal__select-wrap::after {
  content: "";
  width: 2.3188405797cqw;
  height: 2.3188405797cqw;
  border-right: 0.2898550725cqw solid currentColor;
  border-bottom: 0.2898550725cqw solid currentColor;
  rotate: 45deg;
  position: absolute;
  top: 50%;
  translate: 0 -75%;
  right: 4.347826087cqw;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .contents .modal__select-wrap::after {
    width: 2.1333333333vw;
    height: 2.1333333333vw;
    border-width: 0.2666666667vw;
    right: 4vw;
  }
}
.contents .modal__select {
  width: 100%;
  height: 13.0434782609cqw;
  font-size: 4.0579710145cqw;
  border: 1px solid #231815;
  background-color: #fff;
  text-align-last: center;
}
@media screen and (max-width: 767px) {
  .contents .modal__select {
    height: 12vw;
    font-size: 3.7333333333vw;
  }
}
.contents .modal__sub-panel-list {
  display: flex;
  flex-direction: column;
  gap: 2.3188405797cqw;
}
@media screen and (max-width: 767px) {
  .contents .modal__sub-panel-list {
    gap: 2.1333333333vw;
  }
}
.contents .modal__sub-panel-btn {
  display: flex;
  align-items: center;
  gap: 4.347826087cqw;
  width: 100%;
  padding: 3.2cqw 4.2666666667cqw;
  background-color: #fff;
  border: 1px solid #ccc;
  text-align: left;
  cursor: pointer;
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  .contents .modal__sub-panel-btn {
    gap: 4vw;
    padding: 3.2vw 4.2666666667vw;
  }
}
.contents .modal__sub-panel-btn .radio-mark {
  flex-shrink: 0;
  width: 4.347826087cqw;
  height: 4.347826087cqw;
  border: 2px solid #ccc;
  border-radius: 50%;
  position: relative;
}
@media screen and (max-width: 767px) {
  .contents .modal__sub-panel-btn .radio-mark {
    width: 4vw;
    height: 4vw;
  }
}
.contents .modal__sub-panel-btn .sub-name {
  font-size: 3.1884057971cqw;
  flex: 1;
}
@media screen and (max-width: 767px) {
  .contents .modal__sub-panel-btn .sub-name {
    font-size: 2.9333333333vw;
  }
}
.contents .modal__sub-panel-btn .sub-price {
  font-size: 3.1884057971cqw;
  font-weight: 500;
  white-space: nowrap;
  margin-left: auto;
}
@media screen and (max-width: 767px) {
  .contents .modal__sub-panel-btn .sub-price {
    font-size: 2.9333333333vw;
  }
}
.contents .modal__sub-panel-btn.is-active {
  border-color: #231815;
}
.contents .modal__sub-panel-btn.is-active .radio-mark {
  border-color: #231815;
}
.contents .modal__sub-panel-btn.is-active .radio-mark::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 2.1739130435cqw;
  height: 2.1739130435cqw;
  background-color: #111;
  border-radius: 50%;
}
@media screen and (max-width: 767px) {
  .contents .modal__sub-panel-btn.is-active .radio-mark::after {
    width: 2vw;
    height: 2vw;
  }
}
.contents .modal__sub-panel-btn.is-disabled {
  background-color: #f5f5f5;
  border-color: #e0e0e0;
  cursor: not-allowed;
  opacity: 0.6;
}
.contents .modal__cart-btn {
  font-size: 4.0579710145cqw;
  height: 13.0434782609cqw;
}
@media screen and (max-width: 767px) {
  .contents .modal__cart-btn {
    height: 12vw;
    font-size: 3.7333333333vw;
  }
}
.contents .modal__detail-link {
  color: #898989;
  font-size: 2.8985507246cqw;
  text-decoration: underline;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5em;
  text-underline-offset: 0.3em;
  margin-left: 1em;
}
@media screen and (max-width: 767px) {
  .contents .modal__detail-link {
    font-size: 2.6666666667vw;
  }
}
.contents .modal__detail-link::after {
  content: "";
  width: 1.4492753623cqw;
  height: 1.4492753623cqw;
  border-right: 0.2cqw solid #898989;
  border-top: 0.2cqw solid #898989;
  rotate: 45deg;
}
@media screen and (max-width: 767px) {
  .contents .modal__detail-link::after {
    width: 1.3333333333vw;
    height: 1.3333333333vw;
    border-width: 0.2vw;
  }
}
.contents .modal__restock-info {
  font-size: 2.8985507246cqw;
  line-height: 1.4;
  --letter-spacing: 0.1em;
  color: #ae0025;
}
@media screen and (max-width: 767px) {
  .contents .modal__restock-info {
    font-size: 2.6666666667vw;
  }
}
.contents .modal__recommend {
  margin-top: 5.7971014493cqw;
}
@media screen and (max-width: 767px) {
  .contents .modal__recommend {
    margin-top: 5.3333333333vw;
  }
}
.contents .modal__recommend-title {
  font-size: 3.4782608696cqw;
  margin-bottom: 0.8em;
}
@media screen and (max-width: 767px) {
  .contents .modal__recommend-title {
    font-size: 3.2vw;
  }
}
.contents .modal__recommend-link {
  display: grid;
  grid-template-columns: 21.7391304348cqw 1fr;
  gap: 2.8985507246cqw;
  align-items: center;
}
@media screen and (max-width: 767px) {
  .contents .modal__recommend-link {
    grid-template-columns: 20vw 1fr;
    gap: 2.6666666667vw;
  }
}
.contents .modal__recommend-name {
  font-size: 2.8985507246cqw;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .contents .modal__recommend-name {
    font-size: 2.6666666667vw;
  }
}
.contents {
  /* 
      layout
  */
}
.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);
  font-family: "Baskervville", serif;
  font-optical-sizing: auto;
  line-height: 1.5;
  font-weight: 400;
  letter-spacing: 0;
}
.contents .side-nav__link .jp {
  font-size: min(4cqw, 2cqh, 16px);
  font-family: "Noto Serif JP", serif;
  line-height: 1.5;
  letter-spacing: 0.14em;
  color: #898989;
}
.contents .bg {
  position: sticky;
  top: var(--refa-header-h);
  width: 100%;
  height: calc(100svh - var(--refa-header-h));
  opacity: 1;
  background: linear-gradient(120deg, rgba(245, 243, 235, 0.6), rgba(240, 237, 223, 0.6));
}
@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 5s 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: calc(-100svh + var(--refa-header-h));
  overflow: clip;
  will-change: opacity;
  background: #fff;
  animation: safetyNetReveal 0.5s ease 5s forwards;
}
.is-gsap-active .contents .wrapper {
  animation: none;
}
@media screen and (max-width: 767px) {
  .contents .wrapper {
    max-width: 100%;
    margin-top: 0;
  }
}
.contents .fixed-menu {
  display: none;
  background: #ae0025;
  width: 100%;
  height: 10.6666666667cqw;
  position: fixed;
  left: 50%;
  bottom: 0;
  translate: -50% 0;
  z-index: calc(var(--refa-slidemenu-z-index) - 1);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.4s, visibility 0.4s;
  will-change: opacity, visibility;
  grid-template-columns: 1fr 10.6666666667cqw;
}
@media screen and (max-width: 767px) {
  .contents .fixed-menu {
    display: grid;
  }
}
.contents .fixed-menu.is-show {
  opacity: 1;
  visibility: visible;
}
.contents .fixed-menu__list {
  display: flex;
  gap: 0.2666666667cqw;
  line-height: 1.4;
}
.contents .fixed-menu__list li {
  flex: 1;
  position: relative;
}
.contents .fixed-menu__list li:not(:first-child)::before {
  content: "";
  width: 1px;
  height: 4.8cqw;
  background: #fff;
  position: absolute;
  left: 0;
  top: 50%;
  translate: 0 -50%;
}
.contents .fixed-menu__link {
  display: grid;
  place-content: center;
  height: 100%;
  text-align: center;
  color: #fff;
  font-size: 3.2cqw;
  letter-spacing: 0.1em;
}
.contents .fixed-menu__pagetop {
  width: 100%;
  height: 100%;
  background: #231815;
  display: grid;
  place-content: center;
}
.contents .fixed-menu__pagetop::before {
  content: "";
  width: 2.1333333333cqw;
  height: 2.1333333333cqw;
  border-right: 0.2666666667cqw solid #fff;
  border-top: 0.2666666667cqw solid #fff;
  rotate: -45deg;
  translate: 0 25%;
}
.contents {
  /* 
      project
  */
}
.contents .kv {
  background: #fff;
  overflow: hidden;
  z-index: 1;
  padding-bottom: 5.3333333333cqw;
}
.contents .kv__img {
  overflow: hidden;
}
.contents .kv__img img {
  opacity: 0;
  scale: 1.1;
  filter: "blur(15px)";
  will-change: opacity, filter, scale;
  animation: safetyNetReveal 0.5s ease 5s forwards;
}
.is-gsap-active .contents .kv__img img {
  animation: none;
}
.contents .kv__copy {
  opacity: 0;
  will-change: opacity;
  animation: safetyNetReveal 0.5s ease 5s forwards;
}
.is-gsap-active .contents .kv__copy {
  animation: none;
}
.contents .kv__anchor {
  opacity: 0;
  text-align: center;
  will-change: opacity;
  animation: safetyNetReveal 0.5s ease 5s forwards;
}
.is-gsap-active .contents .kv__anchor {
  animation: none;
}
.contents .kv__anchor a {
  text-decoration: underline;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5em;
  text-underline-offset: 0.3em;
  margin-left: 1em;
}
.contents .kv__anchor a::after {
  content: "";
  width: 1.3333333333cqw;
  height: 1.3333333333cqw;
  border-right: 0.2cqw solid #898989;
  border-bottom: 0.2cqw solid #898989;
  rotate: 45deg;
  translate: 0 -50%;
}
.contents .kv__txt {
  width: 78.6666666667cqw;
  min-height: 18.6666666667cqw;
  margin: 5.3333333333cqw auto 0;
  display: grid;
  place-content: center;
  font-size: 3.2cqw;
  line-height: 2;
  font-family: "Noto Serif JP", serif;
  text-align: center;
  --letter-spacing: 0.2em;
  color: #6b6b6b;
  border: 1px solid #898989;
}
.contents .concept {
  background: #ae0025;
  color: #fff;
  padding-top: 9.3333333333cqw;
  padding-bottom: 13.3333333333cqw;
}
.contents .concept__txt {
  text-align: center;
  font-family: "Noto Serif JP", serif;
  font-size: 3.7333333333cqw;
  font-weight: 500;
  line-height: 8.8cqw;
  --letter-spacing: 0.2em;
}
.contents .concept__movie {
  margin-top: 5.3333333333cqw;
  position: relative;
  cursor: pointer;
  overflow: hidden;
}
.contents .concept__movie::before {
  content: "";
  width: 25.3333333333cqw;
  height: 25.3333333333cqw;
  background: url(../img/ic-play.png) no-repeat center/contain;
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  transition: scale 0.6s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: scale;
  z-index: 2;
}
@media (any-hover: hover) {
  .contents .concept__movie:hover::before {
    scale: 1.05;
  }
}
.contents .movie-modal {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.8);
  opacity: 0;
  pointer-events: none;
  z-index: 2147483800;
  transition: 0.4s opacity;
}
.contents .movie-modal[data-active=true] {
  opacity: 1;
  pointer-events: auto;
}
.contents .movie-modal__inner {
  position: relative;
  width: 100%;
  max-width: 900px;
}
.contents .movie-modal__inner iframe {
  aspect-ratio: 16/9;
}
.contents .movie-modal__close {
  position: absolute;
  top: 0;
  right: 0;
  width: 80px;
  height: 80px;
  background-color: #000;
  cursor: pointer;
}
@media screen and (max-width: 767px) {
  .contents .movie-modal__close {
    width: 10.6666666667vw;
    height: 10.6666666667vw;
  }
}
.contents .movie-modal__close::before, .contents .movie-modal__close::after {
  content: "";
  position: absolute;
  inset: 0;
  display: block;
  width: 50px;
  height: 2px;
  margin: auto;
  background-color: #fff;
}
@media screen and (max-width: 767px) {
  .contents .movie-modal__close::before, .contents .movie-modal__close::after {
    width: 6.6666666667vw;
    height: 0.2666666667vw;
  }
}
.contents .movie-modal__close::before {
  transform: rotate(45deg);
}
.contents .movie-modal__close::after {
  transform: rotate(-45deg);
}
.contents .pickup .section__inner {
  margin-inline: -4cqw;
}
.contents .pickup__slide {
  overflow: visible;
}
.contents .pickup__slide .swiper-pagination {
  line-height: 1;
  top: calc(var(--pickup-card-height) + 4cqw);
  bottom: auto;
}
.contents .limited__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(4, auto);
  gap: 5.3333333333cqw 2.6666666667cqw;
}
.contents .limited__notes {
  margin-top: 1em;
  padding-left: 1em;
}
.contents .lineup__tab {
  margin-inline: -4cqw;
  display: flex;
  border-bottom: 0.2666666667cqw solid #b5afa8;
  margin-bottom: 5.3333333333cqw;
}
.contents .lineup__tab__item {
  flex: 1;
  text-align: center;
  padding-bottom: 0.8em;
  color: #898989;
  font-size: 3.2cqw;
  letter-spacing: 0.05em;
  cursor: pointer;
}
.contents .lineup__tab__item.is-active {
  color: #ae0025;
  position: relative;
  cursor: default;
}
.contents .lineup__tab__item.is-active::after {
  content: "";
  height: 0.5333333333cqw;
  background: #ae0025;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
}
.contents .lineup__panel {
  display: none;
  margin-bottom: 8cqw;
}
.contents .lineup__panel.is-active {
  display: block;
}
.contents .lineup__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5.3333333333cqw 2cqw;
}
.contents .news__list {
  display: grid;
  gap: 6.6666666667cqw;
}
.contents .news__item {
  padding: 0 8.5333333333cqw 4cqw;
  border-bottom: 1px solid #d6c9b3;
}
.contents .news__item__date {
  font-size: 3.2cqw;
  line-height: 2;
  color: #5f5f5f;
}
.contents .news__item__txt {
  font-size: 3.4666666667cqw;
  --letter-spacing: 0.1em;
}
.contents .faq {
  margin-bottom: 13.3333333333cqw;
}
.contents .faq__list {
  display: grid;
  gap: 6.6666666667cqw;
}
.contents .faq__item {
  padding: 0 8.5333333333cqw 4cqw;
  border-bottom: 1px solid #d6c9b3;
  position: relative;
}
.contents .faq__item::before {
  content: "";
  width: 2.1333333333cqw;
  height: 2.1333333333cqw;
  border-right: 0.4cqw solid #ae0025;
  border-bottom: 0.4cqw solid #ae0025;
  rotate: 45deg;
  position: absolute;
  top: 2.4cqw;
  right: 0.2666666667cqw;
  translate: 0 -25%;
}
.contents .faq__item.is-open::before {
  rotate: -135deg;
  translate: 0 25%;
}
.contents .faq__item__q {
  font-size: 4cqw;
  position: relative;
  cursor: pointer;
}
.contents .faq__item__q::before {
  content: "Q";
  position: absolute;
  right: calc(100% + 2.5333333333cqw);
  top: 0;
  color: #ae0025;
  font-family: "Baskervville", serif;
  font-optical-sizing: auto;
  font-size: 6.4cqw;
  line-height: 1;
}
.contents .faq__item__a {
  display: none;
  margin-top: 4cqw;
  font-size: 3.4666666667cqw;
  color: #5f5f5f;
}
.contents .faq__item__a ul li {
  text-indent: -0.5em;
  padding-left: 0.5em;
}
.contents .faq__item__a .note, .contents .faq__item__a .limited-card__products-ttl {
  margin-top: 1em;
  color: #5f5f5f;
}