.c-icon-button {
  position: absolute;
  bottom: clamp(0.5rem, calc(16 / var(--content-base-width, 1440) * 100vw), 1rem);
  width: 48px;
  height: 48px;
  z-index: 10;
  display: grid;
  align-items: center;
  justify-items: center;
  transition-property: opacity;
  transition-duration: 0.4s;
  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  transition-delay: 0s;
}
.c-icon-button::before, .c-icon-button::after {
  content: "";
  width: 32px;
  height: 32px;
  display: block;
  grid-area: 1/-1;
  transition-property: opacity, visibility;
  transition-duration: 0.4s;
  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  transition-delay: 0s;
}
.c-icon-button[data-type=plus] {
  right: clamp(0.5rem, calc(16 / var(--content-base-width, 1440) * 100vw), 1rem);
  transition-property: transform;
  transition-duration: 0.4s;
  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  transition-delay: 0s;
}
.c-icon-button[data-type=plus]::before {
  background: transparent url("/assets/img/svg/icons/plus-icon-default.svg") center center no-repeat;
  background-size: contain;
}
.c-icon-button[data-type=plus]::after {
  background: transparent url("/assets/img/svg/icons/plus-icon-hover.svg") center center no-repeat;
  background-size: contain;
}
.c-icon-button[data-type=plus].is-active {
  transform: rotate(135deg);
}
.c-icon-button[data-type=plus].is-active::before {
  opacity: 0;
  visibility: hidden;
}
@media (min-width: 48.0625em) {
  .c-icon-button[data-type=plus]:hover::before {
    opacity: 0;
    visibility: hidden;
  }
  .c-icon-button[data-type=plus]:not(:hover, .is-active)::after {
    opacity: 0;
    visibility: hidden;
  }
}
.c-icon-button[data-type=volume] {
  right: clamp(0.5rem, calc(16 / var(--content-base-width, 1440) * 100vw), 1rem);
}
.c-icon-button[data-type=volume]::before {
  background: transparent url("/assets/img/svg/icons/volume-icon-off.svg") center center no-repeat;
  background-size: contain;
}
.c-icon-button[data-type=volume]::after {
  background: transparent url("/assets/img/svg/icons/volume-icon-on.svg") center center no-repeat;
  background-size: contain;
}
.c-icon-button[data-type=volume].is-muted::after {
  opacity: 0;
  visibility: hidden;
}
.c-icon-button[data-type=volume]:not(.is-muted)::before {
  opacity: 0;
  visibility: hidden;
}
.c-icon-button[data-type=volume]:hover {
  cursor: pointer;
}
.c-icon-button[data-type=volume]:not(:hover) {
  opacity: 0.5;
}
.c-icon-button[data-type=expand] {
  left: clamp(0.5rem, calc(16 / var(--content-base-width, 1440) * 100vw), 1rem);
}
.c-icon-button[data-type=expand]::before {
  background: transparent url("/assets/img/svg/icons/expand-icon-default.svg") center center no-repeat;
  background-size: contain;
}
.c-icon-button[data-type=expand]::after {
  background: transparent url("/assets/img/svg/icons/expand-icon-hover.svg") center center no-repeat;
  background-size: contain;
}
.c-icon-button[data-type=expand]:hover {
  cursor: pointer;
}
.c-icon-button[data-type=expand]:not(:hover) {
  opacity: 0.5;
}
@media (max-width: 48em) {
  .c-icon-button[data-type=expand] {
    display: none;
  }
}

.c-stroke-button {
  position: relative;
  width: var(--w, 100%);
  max-width: var(--maw, -moz-fit-content);
  max-width: var(--maw, fit-content);
  height: var(--h, 48px);
  border: 1px solid var(--clr, #000);
  border-radius: var(--h, 48px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--py, 0) var(--px, 1.5em);
  margin: auto;
  background-color: var(--bgc, #fff);
  color: var(--clr, currentColor);
  transition-property: opacity, background-color, color;
  transition-duration: 0.4s;
  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  transition-delay: 0s;
}
.c-stroke-button :is(a, span) {
  font-size: var(--fz, clamp(0.8125rem, calc(14 / var(--content-base-width, 1440) * 100vw), 0.875rem));
  text-decoration: none;
}
.c-stroke-button :is(a, span)::after {
  content: "";
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10;
}
@media (min-width: 48.0625em) {
  .c-stroke-button:hover {
    background-color: var(--clr, #000);
    color: var(--bgc, #fff);
  }
}

.feature-cactus-store {
  --content-min-margin: 16;
  --min: 20px;
  color: #000;
  position: relative;
  padding-bottom: clamp(6rem, calc(160 / var(--content-base-width, 1440) * 100vw), 10rem);
}

.js-follow-area {
  position: relative;
}

.pg-header-follow-link {
  --sp-top: calc(var(--header-height) + 20px);
  --pc-top: calc(var(--header-height) + 30px);
}
.header-fixed .pg-header-follow-link {
  --sp-top: calc(var(--header-fixed-height) + 20px);
  --pc-top: calc(var(--header-fixed-height) + 30px);
}
.pg-header-follow-link {
  position: absolute;
  top: var(--fixed-header-height);
  right: 0;
  font-size: clamp(1rem, calc(20 / var(--content-base-width, 1440) * 100vw), 1.25rem);
  padding: clamp(1.25rem, calc(40 / var(--content-base-width, 1440) * 100vw), 2.5rem) max(var(--content-min-margin, 24) * 1px, var(--content-base-margin, 40) / var(--content-base-width, 1440) * 100vw);
  mix-blend-mode: difference;
  color: #fff;
  z-index: 500;
  transition-property: opacity, visibility;
  transition-duration: 0.4s;
  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  transition-delay: 0s;
  line-height: 1.3;
  opacity: 0;
  visibility: hidden;
}
.pg-header-follow-link a {
  text-decoration: underline;
}
.pg-header-follow-link a:hover {
  text-decoration: none;
}
.pg-header-follow-link.is-fixed-start {
  position: fixed;
  top: var(--fixed-header-height);
  opacity: 1;
  visibility: visible;
}
.pg-header-follow-link.is-fixed-end {
  opacity: 0;
  visibility: hidden;
}

.pg-mv {
  position: relative;
}
.pg-mv.is-loaded .pg-mv__img {
  opacity: 0;
  visibility: hidden;
}
.pg-mv__mov {
  position: relative;
}
.pg-mv__mov video {
  display: block;
  aspect-ratio: 4/5;
  width: 100%;
  height: auto;
}
@media (min-width: 48.0625em) {
  .pg-mv__mov video {
    aspect-ratio: 16/9;
  }
}
.pg-mv__img {
  position: absolute;
  width: 100%;
  height: 100%;
  z-index: 2;
  transition-property: opacity, visibility;
  transition-duration: 0.4s;
  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  transition-delay: 0s;
}
.pg-mv__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.pg-introduction {
  position: relative;
  background-color: #fff;
}
.pg-introduction__content {
  position: relative;
  --minmax: max(calc(var(--content-min-margin, 24) * 1px), calc(var(--content-base-margin, 40) / var(--content-base-width, 1440) * 100vw));
  max-width: var(--content-max-width, 100%);
  margin-left: auto;
  margin-right: auto;
  width: calc(100% - var(--minmax) * 2);
  padding-block: clamp(4rem, calc(96 / var(--content-base-width, 1440) * 100vw), 6rem);
  display: grid;
  gap: 2rem 0.75rem;
}
@media (min-width: 48.0625em) {
  .pg-introduction__content {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.pg-introduction__headline {
  font-size: clamp(1.25rem, calc(24 / var(--content-base-width, 1440) * 100vw), 1.5rem);
  line-height: 1.1;
}
.pg-introduction__text {
  font-size: clamp(0.8125rem, calc(14 / var(--content-base-width, 1440) * 100vw), 0.875rem);
  line-height: 1.7;
}
@media (max-width: 48em) {
  .pg-introduction__text[data-variant*="sp:viewmore"] {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
  }
  .pg-introduction__text[data-variant*="sp:viewmore"] span {
    overflow: hidden;
  }
  .pg-introduction__text[data-variant*="sp:viewmore"].is-open {
    grid-template-rows: 1fr;
  }
}
.pg-introduction__viewmore {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-inline: auto;
  gap: 0.5rem;
  margin-top: 1.5rem;
  border: none;
  background: transparent;
  color: #000;
}
.pg-introduction__viewmore span {
  position: relative;
  display: block;
  width: 1rem;
  height: 1rem;
}
.pg-introduction__viewmore span::before, .pg-introduction__viewmore span::after {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  margin: auto;
  width: 0.875rem;
  height: 0.0625rem;
  background-color: currentColor;
}
.pg-introduction__viewmore span::after {
  transform: rotate(90deg);
}
.pg-introduction__viewmore.is-open {
  display: none;
}
@media (min-width: 48.0625em) {
  .pg-introduction__viewmore {
    display: none;
  }
}

.pg-contents {
  position: relative;
}
.pg-contents:not(.is-entered) .pg-sticky-button, .pg-contents:is(.is-leaving, .is-leaved) .pg-sticky-button {
  opacity: 0;
  visibility: hidden;
}

.pg-sticky-button {
  grid-area: CONTENTS;
  position: sticky;
  top: calc(100% - 1.5rem);
  font-size: clamp(0.75rem, calc(14 / var(--content-base-width, 1440) * 100vw), 0.875rem);
  padding: 0.75rem 1.5rem;
  width: -moz-fit-content;
  width: fit-content;
  line-height: 1;
  transform: translateY(-100%);
  background-color: rgba(235, 235, 235, 0.8);
  backdrop-filter: blur(20px);
  z-index: 100;
  border-radius: 25px;
  transition-property: opacity, visibility, background-color;
  transition-duration: 0.4s;
  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  transition-delay: 0s;
}
.pg-sticky-button a::after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10;
}
@media (max-width: 48em) {
  .pg-sticky-button {
    margin-inline: auto;
  }
}
@media (min-width: 48.0625em) {
  .pg-sticky-button {
    margin-left: auto;
    right: 1.25rem;
  }
  .pg-sticky-button:hover {
    background-color: rgba(209, 209, 209, 0.8);
  }
}

.pg-gallery {
  display: grid;
}
@media (max-width: 48em) {
  .pg-gallery {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .pg-gallery[data-variant*="ptn:A"] {
    grid-template-areas: "a a A A A" "b b b b b" "C C c c c";
  }
  .pg-gallery[data-variant*="ptn:A"][data-variant*="sp:reverse"] {
    grid-template-areas: "A A a a a" "b b b b b" "c c C C C";
  }
  .pg-gallery[data-variant*="ptn:B"] {
    grid-template-areas: "a a a a a" "b b b b b" "c c c C C";
  }
  .pg-gallery[data-variant*="ptn:B"][data-variant*="sp:reverse"] {
    grid-template-areas: "a a a a a" "b b b b b" "C c c c c";
  }
  .pg-gallery[data-variant*="ptn:C"] {
    grid-template-areas: "A a a a a" "b b b b b" "c c c c c" "d d d D D" "E E e e e";
  }
}
@media (min-width: 48.0625em) {
  .pg-gallery {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .pg-gallery[data-variant*="ptn:A"] {
    grid-template-areas: "A B B C";
  }
  .pg-gallery[data-variant*="ptn:A"] .pg-gallery__img:nth-child(3) {
    align-self: end;
  }
  .pg-gallery[data-variant*="ptn:B"] {
    grid-template-rows: 1fr auto;
    grid-template-areas: "A A B B" "A A C C";
  }
  .pg-gallery[data-variant*="ptn:B"][data-variant*="pc:reverse"] {
    grid-template-areas: "B B A A" "C C A A";
  }
  .pg-gallery[data-variant*="ptn:B"][data-variant*="pc:reverse"] .pg-gallery__img:nth-child(3) {
    justify-self: end;
  }
  .pg-gallery[data-variant*="ptn:B"] .pg-gallery__img:nth-child(3) {
    width: calc(var(--gallery-img-w) / 720 * 100%);
    height: -moz-fit-content;
    height: fit-content;
  }
  .pg-gallery[data-variant*="ptn:C"] {
    grid-template-areas: "a A C C" "B B C C" "D D C C" "D D E e";
  }
  .pg-gallery[data-variant*="ptn:C"] .pg-gallery__img:nth-child(4) {
    justify-self: end;
    width: calc(var(--gallery-img-w) / 720 * 100%);
  }
}
.pg-gallery__img {
  position: relative;
  display: grid;
  overflow: hidden;
}
.pg-gallery__img:not(.is-animated) img {
  transform: scale(1.05);
}
.pg-gallery__img > * {
  grid-area: 1/-1;
}
@media (max-width: 48em) {
  .pg-gallery__img[data-area*=":a"] {
    grid-area: a;
  }
  .pg-gallery__img[data-area*=":b"] {
    grid-area: b;
  }
  .pg-gallery__img[data-area*=":c"] {
    grid-area: c;
  }
  .pg-gallery__img[data-area*=":d"] {
    grid-area: d;
  }
  .pg-gallery__img[data-area*=":e"] {
    grid-area: e;
  }
}
@media (min-width: 48.0625em) {
  .pg-gallery__img {
    aspect-ratio: var(--gallery-img-ratio);
  }
  .pg-gallery__img[data-area*="A:"] {
    grid-area: A;
  }
  .pg-gallery__img[data-area*="B:"] {
    grid-area: B;
  }
  .pg-gallery__img[data-area*="C:"] {
    grid-area: C;
  }
  .pg-gallery__img[data-area*="D:"] {
    grid-area: D;
  }
  .pg-gallery__img[data-area*="E:"] {
    grid-area: E;
  }
}
.pg-gallery__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform 0.8s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
}
.pg-gallery__img figcaption {
  padding: clamp(1rem, calc(20 / var(--content-base-width, 1440) * 100vw), 1.25rem);
  align-self: end;
  font-size: 0.875rem;
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  color: var(--figcaption-clr, #fff);
  z-index: 2;
}
.pg-gallery__img figcaption a {
  text-decoration: underline;
}
.pg-gallery__img figcaption a:hover {
  text-decoration: none;
}
.pg-gallery__img figcaption a::before {
  content: "";
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10;
}
.pg-gallery__img figcaption span {
  font-size: 0.6875rem;
}
.pg-gallery__img figcaption small {
  font-size: 0.5625rem;
}

.pg-products:not(:first-child) {
  margin-top: clamp(6rem, calc(160 / var(--content-base-width, 1440) * 100vw), 10rem);
}
.pg-products__inner {
  --minmax: max(calc(var(--content-min-margin, 24) * 1px), calc(var(--content-base-margin, 40) / var(--content-base-width, 1440) * 100vw));
  max-width: var(--content-max-width, 100%);
  margin-left: auto;
  margin-right: auto;
  width: calc(100% - var(--minmax) * 2);
}
.pg-products__heading {
  font-size: 1.25rem;
}
.pg-products__content {
  margin-top: 1.5rem;
}
@media (max-width: 48em) {
  .pg-products__content[data-variant*="col:sp:1"] {
    --products-columns: 1;
  }
}
@media (min-width: 48.0625em) {
  .pg-products__content[data-variant*="col:pc:2"] {
    --products-columns: 2;
  }
}
@media (max-width: 48em) {
  .pg-products__grid {
    display: grid;
    gap: clamp(2rem, calc(40 / var(--content-base-width, 1440) * 100vw), 2.5rem) clamp(0.5rem, calc(20 / var(--content-base-width, 1440) * 100vw), 1.25rem);
    grid-template-columns: repeat(var(--products-columns), minmax(0, 1fr));
  }
}
.pg-products__group + .pg-products__group {
  margin-top: clamp(2rem, calc(48 / var(--content-base-width, 1440) * 100vw), 3rem);
}
@media (max-width: 48em) {
  .pg-products__group {
    display: contents;
  }
}
@media (min-width: 48.0625em) {
  .pg-products__group {
    display: grid;
    gap: clamp(2rem, calc(40 / var(--content-base-width, 1440) * 100vw), 2.5rem) 0.75rem;
    grid-template-columns: repeat(var(--products-columns), minmax(0, 1fr));
  }
}
.pg-products .c-stroke-button {
  --maw: clamp(18.4375rem, calc(480 / var(--content-base-width, 1440) * 100vw), 30rem);
  --h: clamp(3.75rem, calc(80 / var(--content-base-width, 1440) * 100vw), 5rem);
  margin-top: clamp(4rem, calc(120 / var(--content-base-width, 1440) * 100vw), 7.5rem);
}
.pg-products .c-stroke-button a {
  font-size: clamp(0.8125rem, calc(15 / var(--content-base-width, 1440) * 100vw), 0.9375rem);
}

.pg-product {
  position: relative;
}
@media (min-width: 48.0625em) {
  .pg-product__slider .swiper-wrapper {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.pg-product__slider .swiper-slide {
  overflow: hidden;
}
.pg-product__img {
  overflow: hidden;
}
.pg-product img {
  width: 100%;
  transition: transform 0.8s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
}
@media (min-width: 48.0625em) {
  .pg-product:has(a[href]):not(:has(.is-coming-soon)):hover img {
    transform: scale(1.05);
  }
}

.pg-credit {
  margin-top: 0.75rem;
}
@media (max-width: 48em) {
  .pg-credit {
    padding: 0 0.5rem;
  }
}
.pg-credit__title {
  font-size: clamp(0.875rem, calc(16 / var(--content-base-width, 1440) * 100vw), 1rem);
}
.pg-credit__data {
  font-size: 0.75rem;
}
.pg-credit__data small {
  font-size: 0.625rem;
}
.pg-credit__link {
  font-size: clamp(0.75rem, calc(14 / var(--content-base-width, 1440) * 100vw), 0.875rem);
}
.pg-credit__link a {
  text-decoration: underline;
}
.pg-credit__link a::after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10;
}

.pg-footer-buttons {
  display: grid;
  gap: clamp(1.5rem, calc(32 / var(--content-base-width, 1440) * 100vw), 2rem);
}
.pg-footer-buttons .c-stroke-button {
  --h: clamp(3.75rem, calc(80 / var(--content-base-width, 1440) * 100vw), 5rem);
  --w: calc(100% - max(var(--content-min-margin, 24) * 1px, var(--content-base-margin, 40) / var(--content-base-width, 1440) * 100vw) * 2);
  --maw: 480px;
}

.pg-about:not(:first-child) {
  margin-top: clamp(6rem, calc(160 / var(--content-base-width, 1440) * 100vw), 10rem);
}
.pg-about__mv {
  position: relative;
  aspect-ratio: 390/488;
  overflow: hidden;
}
@media (min-width: 48.0625em) {
  .pg-about__mv {
    aspect-ratio: 1440/640;
  }
}
.pg-about__mv picture {
  width: 100%;
  height: calc(100% + 100px);
  position: absolute;
  bottom: 0;
  transform: translateY(calc(var(--img-distance) * var(--progress, 0) * 1px));
}
.pg-about__inner {
  --minmax: max(calc(var(--content-min-margin, 24) * 1px), calc(var(--content-base-margin, 40) / var(--content-base-width, 1440) * 100vw));
  max-width: var(--content-max-width, 100%);
  margin-left: auto;
  margin-right: auto;
  width: calc(100% - var(--minmax) * 2);
}
.pg-about__inner:not(:first-child) {
  margin-top: clamp(3rem, calc(64 / var(--content-base-width, 1440) * 100vw), 4rem);
}
.pg-about__heading {
  font-size: 1.125rem;
}
.pg-about__grid {
  display: grid;
  gap: 2rem 1.25rem;
}
@media (max-width: 48em) {
  .pg-about__grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (min-width: 48.0625em) {
  .pg-about__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 48.0625em) {
  .pg-about__cell:last-child {
    grid-area: 1/2/2/4;
  }
}
.pg-about__text {
  font-size: 0.8125rem;
  line-height: 2;
}
.pg-about__text blockquote {
  margin-top: 4em;
}
.pg-about__text i {
  font-style: italic;
}
.pg-about__text cite {
  display: block;
  margin-top: 1.5em;
  font-style: italic;
}