.js-fadein-up:not(.is-animated), [class*=js-fadein-lag][class*="--up"]:not(.is-animated) [style*="--delay-order"] {
  --transform: translateY(var(--translate-rate, 48px));
  transform: var(--transform);
}

.js-fadein-down:not(.is-animated), [class*=js-fadein-lag][class*="--down"]:not(.is-animated) [style*="--delay-order"] {
  --transform: translateY(var(--translate-rate, -48px));
  transform: var(--transform);
}

.js-fadein-ltr:not(.is-animated), [class*=js-fadein-lag][class*="--ltr"]:not(.is-animated) [style*="--delay-order"] {
  --transform: translateX(var(--translate-rate, -72px));
  transform: var(--transform);
}

.js-fadein-rtl:not(.is-animated), [class*=js-fadein-lag][class*="--rtl"]:not(.is-animated) [style*="--delay-order"] {
  --transform: translateX(var(--translate-rate, 72px));
  transform: var(--transform);
}

.js-fadein-zoomin:not(.is-animated), [class*=js-fadein-lag][class*="--zoomin"]:not(.is-animated) [style*="--delay-order"] {
  --transform: scale(var(--scale-rate, 0.98));
  transform: var(--transform);
}

.js-fadein-zoomout:not(.is-animated), [class*=js-fadein-lag][class*="--zoomout"]:not(.is-animated) [style*="--delay-order"] {
  --transform: scale(var(--scale-rate, 1.02));
  transform: var(--transform);
}

[class*=js-fadein] {
  transition-property: opacity, transform;
  transition-duration: 0.4s;
  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  transition-delay: var(--delay, 0s);
}
[class*=js-fadein]:not([class*=js-fadein-lag]):not(.is-animated) {
  opacity: 0;
}

[class*=js-fadein-lag] [style*="--delay-order"] {
  transition-property: opacity, transform;
  transition-duration: 0.4s;
  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  transition-delay: calc(0.12s * var(--delay-order));
}
[class*=js-fadein-lag]:not(.is-animated) [style*="--delay-order"] {
  opacity: 0;
}
[class*=js-fadein-lag][class*="--ltr"] {
  overflow-x: hidden;
}
[class*=js-fadein-lag][class*="--rtl"] {
  overflow-x: hidden;
}
.c-play-btn {
  position: relative;
}
.c-play-btn:hover .c-play-btn__icon::before {
  transform: scale(1.25);
  opacity: 1;
}
.c-play-btn__icon {
  display: block;
  width: 40px;
  height: 40px;
  margin: 0 auto;
  position: relative;
  z-index: 5;
}
.c-play-btn__icon:before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-color: #fff;
  opacity: 0.7;
  border-radius: 50%;
  transition: opacity 0.4s cubic-bezier(0.215, 0.61, 0.355, 1), transform 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
}
.c-play-btn__icon:after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  transform: translateX(30%);
  border-width: 5px 9px 5px 9px;
  border-style: solid;
  border-color: transparent transparent transparent #000;
  z-index: 5;
}
.c-play-btn__text {
  display: block;
  font-size: 0.75rem;
  letter-spacing: 0.05em;
  text-align: center;
  line-height: 1.1;
  margin: 15px 0 0;
}
.c-play-btn__text a {
  text-decoration: none;
}
.c-play-btn__text a::after {
  content: "";
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10;
}

#site_body {
  overflow: unset;
}

.feature-performance-26fw {
  --image-dir: "/public/assets/feature/performance-26fw/img";
  --content-base-margin: 24;
  position: relative;
  background-color: #fff;
  color: #000;
}
.feature-performance-26fw .swiper:not(.swiper-initialized) :is(.swiper-button, .swiper-pagination) {
  display: none;
}
@media (min-width: 48.0625em) {
  .feature-performance-26fw .swiper:hover .swiper-button {
    opacity: 1;
  }
}

.pg-sticky-button {
  position: fixed;
  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;
    left: 0;
    right: 0;
  }
}
@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-mv {
  position: relative;
  background-color: #000;
}
@media (max-width: 48em) {
  .pg-mv {
    aspect-ratio: 1/1;
    height: auto;
  }
}
@media (min-width: 48.0625em) {
  .pg-mv {
    aspect-ratio: 1440/810;
  }
}
.pg-mv__scroll-bottom {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 20px;
  color: #fff;
  text-align: center;
  font-size: 0.625rem;
  animation: fade-in-out 2.4s linear 0s infinite;
}
.pg-mv__img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10;
  background-color: #000;
  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: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
@media (max-width: 48em) {
  .pg-mv__img img {
    aspect-ratio: 1/1;
  }
}
@media (min-width: 48.0625em) {
  .pg-mv__img img {
    aspect-ratio: 1440/810;
  }
}
.pg-mv.is-loaded .pg-mv__img {
  opacity: 0;
  visibility: hidden;
}
.pg-mv video {
  width: 100%;
  height: auto;
  transition: opacity 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
  background-color: #000;
  display: block;
}
@media (max-width: 48em) {
  .pg-mv video {
    -o-object-fit: cover;
       object-fit: cover;
    aspect-ratio: 4/5;
  }
}
@media (min-width: 48.0625em) {
  .pg-mv video {
    -o-object-fit: contain;
       object-fit: contain;
    aspect-ratio: 1440/810;
  }
}
.pg-mv video:not(.is-video-changed) {
  opacity: 0;
}

.pg-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;
}
.pg-icon-button::before, .pg-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;
}
.pg-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;
}
.pg-icon-button[data-type=plus]::before {
  background: transparent url("/public/assets/img/common/plus-icon-default.svg") center center no-repeat;
  background-size: contain;
}
.pg-icon-button[data-type=plus]::after {
  background: transparent url("/public/assets/img/common/plus-icon-hover.svg") center center no-repeat;
  background-size: contain;
}
.pg-icon-button[data-type=plus].is-active {
  transform: rotate(135deg);
}
.pg-icon-button[data-type=plus].is-active::before {
  opacity: 0;
  visibility: hidden;
}
@media (min-width: 48.0625em) {
  .pg-icon-button[data-type=plus]:hover::before {
    opacity: 0;
    visibility: hidden;
  }
  .pg-icon-button[data-type=plus]:not(:hover, .is-active)::after {
    opacity: 0;
    visibility: hidden;
  }
}
.pg-icon-button[data-type=volume] {
  right: clamp(0.5rem, calc(16 / var(--content-base-width, 1440) * 100vw), 1rem);
}
.pg-icon-button[data-type=volume]::before {
  background: transparent url("/public/assets/img/common/volume-icon-off.svg") center center no-repeat;
  background-size: contain;
}
.pg-icon-button[data-type=volume]::after {
  background: transparent url("/public/assets/img/common/volume-icon-on.svg") center center no-repeat;
  background-size: contain;
}
.pg-icon-button[data-type=volume].is-muted::after {
  opacity: 0;
  visibility: hidden;
}
.pg-icon-button[data-type=volume]:not(.is-muted)::before {
  opacity: 0;
  visibility: hidden;
}
.pg-icon-button[data-type=volume]:hover {
  cursor: pointer;
}
.pg-icon-button[data-type=volume]:not(:hover) {
  opacity: 0.5;
}
.pg-icon-button[data-type=expand] {
  left: clamp(0.5rem, calc(16 / var(--content-base-width, 1440) * 100vw), 1rem);
}
.pg-icon-button[data-type=expand]::before {
  background: transparent url("/public/assets/img/common/expand-icon-default.svg") center center no-repeat;
  background-size: contain;
}
.pg-icon-button[data-type=expand]::after {
  background: transparent url("/public/assets/img/common/expand-icon-hover.svg") center center no-repeat;
  background-size: contain;
}
.pg-icon-button[data-type=expand]:hover {
  cursor: pointer;
}
.pg-icon-button[data-type=expand]:not(:hover) {
  opacity: 0.5;
}
@media (max-width: 48em) {
  .pg-icon-button[data-type=expand] {
    display: none;
  }
}

.pg-introduction {
  position: relative;
  padding-top: 3rem;
  padding-bottom: clamp(5rem, calc(160 / var(--content-base-width, 1440) * 100vw), 10rem);
}
.pg-introduction__content {
  --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);
  display: grid;
  gap: 2rem 1.25rem;
}
@media (min-width: 48.0625em) {
  .pg-introduction__content {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.pg-introduction__headline {
  font-size: clamp(2rem, calc(40 / var(--content-base-width, 1440) * 100vw), 2.5rem);
  font-weight: normal;
  line-height: 1.1;
}
.pg-introduction__text {
  line-height: 2;
  font-size: clamp(0.875rem, calc(16 / var(--content-base-width, 1440) * 100vw), 1rem);
}

.pg-container {
  position: relative;
}
.pg-container.is-entered .pg-follow-anchor {
  position: fixed;
  opacity: 1;
  visibility: visible;
}
.pg-container.is-leaving .pg-follow-anchor {
  opacity: 0;
  visibility: hidden;
}

.pg-kv {
  display: grid;
  margin-bottom: clamp(0.75rem, calc(20 / var(--content-base-width, 1440) * 100vw), 1.25rem);
}
@media (max-width: 48em) {
  .pg-kv {
    align-items: center;
  }
}
.pg-kv > * {
  grid-area: 1/-1;
}
.pg-kv__header {
  display: grid;
  height: -moz-fit-content;
  height: fit-content;
  align-items: start;
}
.pg-kv__header > * {
  grid-area: 1/-1;
}
@media (min-width: 48.0625em) {
  .pg-kv__header {
    position: sticky;
    top: 0;
    padding-top: 50vh;
  }
}
.pg-kv__num {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: max(var(--content-min-margin, 24) * 1px, var(--content-base-margin, 40) / var(--content-base-width, 1440) * 100vw);
  font-size: clamp(1rem, calc(24 / var(--content-base-width, 1440) * 100vw), 1.5rem);
  color: #fff;
}
.pg-kv__title {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(1rem, calc(24 / var(--content-base-width, 1440) * 100vw), 1.5rem);
  padding: max(var(--content-min-margin, 24) * 1px, var(--content-base-margin, 40) / var(--content-base-width, 1440) * 100vw);
  color: #fff;
}
@media (max-width: 48em) {
  .pg-kv__title {
    display: none;
  }
}

.pg-section {
  --section-progress: calc((var(--enterProgress) - 0.5) * 2);
  --section-bg-maw: calc(100vw - 6.4vw * (1 - var(--section-progress)));
  --section-bg-bdr: calc(16px - (16px * var(--section-progress)));
  position: relative;
  display: grid;
  z-index: 2;
}
@media (min-width: 48.0625em) {
  .pg-section {
    --section-bg-maw: calc(100vw - 5.55vw * (1 - var(--section-progress)));
  }
}
.pg-section + .pg-section {
  margin-top: clamp(2rem, calc(80 / var(--content-base-width, 1440) * 100vw), 5rem);
}
.pg-section.is-entered .pg-section__bg {
  position: sticky;
  top: var(--fixed-header-height);
}
.pg-section.is-entered .pg-section__sticky-header {
  position: fixed;
  top: var(--fixed-header-height);
}
.pg-section:not(.is-entered) .pg-sticky-button, .pg-section:is(.is-leaving, .is-leaved) .pg-sticky-button {
  opacity: 0;
  visibility: hidden;
}
.pg-section__bg {
  --clip-margin: calc(5.55vw * (1 - var(--section-progress)));
  position: sticky;
  top: var(--fixed-header-height);
  left: 0;
  right: 0;
  width: 100%;
  height: calc(100vh - var(--fixed-header-height));
  overflow: hidden;
  margin-inline: auto;
  z-index: 1;
  grid-area: 1/-1;
}
@media (min-width: 48.0625em) {
  .pg-section__bg {
    clip-path: rect(var(--clip-margin) calc(100vw - var(--clip-margin) * 2) 100vh var(--clip-margin));
  }
}
.pg-section__bg img {
  width: 100vw;
  height: 100vh;
  -o-object-fit: cover;
     object-fit: cover;
  transform: scale(1.2) translateY(calc(-20% * var(--intersectProgress)));
  transform-origin: top center;
  z-index: 1;
}
@media (max-width: 48em) {
  .pg-section__bg img {
    -o-object-position: var(--sm-bgp, 50% 50%);
       object-position: var(--sm-bgp, 50% 50%);
  }
}
@media (min-width: 48.0625em) {
  .pg-section__bg img {
    -o-object-position: var(--bgp, 50% 50%);
       object-position: var(--bgp, 50% 50%);
  }
}
.pg-section__bg::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 2;
}
@media (min-width: 48.0625em) {
  .pg-section__bg::before {
    opacity: var(--section-progress);
  }
}
.pg-section__content {
  position: relative;
  counter-increment: section-counter;
  z-index: 2;
  min-height: 100vh;
  color: #fff;
  grid-area: 1/-1;
  padding-bottom: clamp(8rem, calc(340 / var(--content-base-width, 1440) * 100vw), 21.25rem);
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(5rem, calc(240 / var(--content-base-width, 1440) * 100vw), 15rem);
}
@media (max-width: 48em) {
  .pg-section__content {
    padding-top: 12rem;
  }
}
@media (min-width: 48.0625em) {
  .pg-section__content {
    padding-top: 100vh;
  }
}
.pg-section__images {
  display: grid;
  align-items: center;
  --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);
}
@media (max-width: 48em) {
  .pg-section__images {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }
  .pg-section__images:has(.pg-section__img:nth-child(2)) {
    grid-template-rows: repeat(2, auto);
    row-gap: 5rem;
  }
  .pg-section__images:has(.pg-section__img:nth-child(2)) .pg-section__img:nth-child(1) {
    grid-row: 1/2;
  }
  .pg-section__images:has(.pg-section__img:nth-child(2)) .pg-section__img:nth-child(2) {
    grid-row: 2/3;
  }
}
@media (min-width: 48.0625em) {
  .pg-section__images {
    grid-template-columns: repeat(24, minmax(0, 1fr));
  }
}
.pg-section__img {
  grid-row: 1/2;
}
@media (max-width: 48em) {
  .pg-section__img {
    grid-column: var(--sp-grid-col, 1/2);
  }
}
@media (min-width: 48.0625em) {
  .pg-section__img {
    grid-column: var(--pc-grid-col, 1/2);
  }
}
.pg-section__label {
  color: #fff;
  font-size: clamp(0.75rem, calc(16 / var(--content-base-width, 1440) * 100vw), 1rem);
  line-height: 1.1;
  display: grid;
  gap: 0.25rem;
}
@media (max-width: 48em) {
  .pg-section__label {
    grid-column: var(--sp-grid-col, 1/-1);
  }
}
@media (min-width: 48.0625em) {
  .pg-section__label {
    grid-column: var(--pc-grid-col, 1/-1);
  }
}

.pg-products {
  grid-area: PRODUCTS;
  padding-block: clamp(5rem, calc(128 / var(--content-base-width, 1440) * 100vw), 8rem) clamp(8rem, calc(160 / var(--content-base-width, 1440) * 100vw), 10rem);
}
.pg-products .p-buttons {
  --button-w: calc(100% - 32px * 2);
  --button-maw: 30rem;
  --button-h: clamp(3.75rem, calc(80 / var(--content-base-width, 1440) * 100vw), 5rem);
  --button-fw: 400;
  --button-fz: clamp(0.8125rem, calc(15 / var(--content-base-width, 1440) * 100vw), 0.9375rem);
  margin-top: clamp(4rem, calc(128 / var(--content-base-width, 1440) * 100vw), 8rem);
}
.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: clamp(1rem, calc(20 / var(--content-base-width, 1440) * 100vw), 1.25rem);
  font-weight: 400;
}
.pg-products__content {
  margin-top: 1.5rem;
}
.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-grid {
  display: grid;
  gap: clamp(2rem, calc(64 / var(--content-base-width, 1440) * 100vw), 4rem) clamp(0.5rem, calc(16 / var(--content-base-width, 1440) * 100vw), 1rem);
}
.pg-grid + .pg-grid {
  margin-top: clamp(3rem, calc(80 / var(--content-base-width, 1440) * 100vw), 5rem);
}
@media (max-width: 48em) {
  .pg-grid {
    grid-template-columns: minmax(0, 1fr);
    margin-left: min(var(--content-min-margin, 24) * -1px, var(--content-base-margin, 40) / var(--content-base-width, 1440) * -100vw);
    margin-right: min(var(--content-min-margin, 24) * -1px, var(--content-base-margin, 40) / var(--content-base-width, 1440) * -100vw);
  }
  .pg-grid[data-modifier*="sm:grid-col-2"] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 48.0625em) {
  .pg-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.pg-grid__cell:has(.pg-credit[data-label="Not Available"]) {
  display: none;
}

.pg-product {
  position: relative;
}
.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 max(var(--content-min-margin, 24) * 1px, var(--content-base-margin, 40) / var(--content-base-width, 1440) * 100vw);
  }
}
.pg-credit__title {
  font-size: clamp(0.875rem, calc(16 / var(--content-base-width, 1440) * 100vw), 1rem);
}
.pg-credit__data {
  font-size: clamp(0.625rem, calc(12 / var(--content-base-width, 1440) * 100vw), 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-credit.is-coming-soon .pg-credit__link {
  display: none;
  pointer-events: none;
}
.pg-credit.is-coming-soon::after {
  display: block;
  content: attr(data-label);
  font-size: clamp(0.75rem, calc(14 / var(--content-base-width, 1440) * 100vw), 0.875rem);
}