@charset "UTF-8";
/* -------------------------------------------*/
html {
  overflow-x: hidden;
  width: 100%;
}
body {
  overflow-x: hidden;
  position: relative;
  font-family: 'Noto Sans JP', 'ヒラギノ角ゴ ProN W3', 'Hiragino Kaku Gothic ProN', '游ゴシック', YuGothic, 'メイリオ', Meiryo, sans-serif !important;
  color: #fff;
  font-weight: 400;
}
.l-main {
  min-height: 100vh;
}
.l-main__inner {
  position: relative;
}
.l-main__inner::before {
  content: '';
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -100;
  background: url(../images/fixed_back.webp) no-repeat center/cover;
}
.no-link {
  opacity: 0.4 !important;
  pointer-events: none !important;
}
img {
  display: block;
}
.u-sp {
  display: none;
}
@media screen and (max-width: 767px) {
  .u-sp {
    display: block;
  }
}
.fade-in {
  opacity: 0;
  transition: 0.8s;
}
.fade-in.is-active {
  opacity: 1;
}
.fade-up {
  opacity: 0;
  transform: translateY(3vw);
  transition: 0.8s;
}
.fade-up.is-active {
  opacity: 1;
  transform: translateY(0);
}
.fade-slide {
  opacity: 0;
  transform: translateX(-4vw);
  transition: 0.4s;
}
.fade-slide.is-active {
  opacity: 1;
  transform: translateY(0);
}

/* -------------------------------------------*/
.fv {
  position: relative;
  width: 100vw;
  margin: 0 calc(50% -50vw);
  z-index: 1;
}
.fv__title {
  position: absolute;
  top: 8.3vw;
  left: 13.25vw;
  width: 47.8vw;
  z-index: 1;
  -webkit-clip-path: inset(0 100% 0 0);
  clip-path: inset(0 100% 0 0);
  transition: clip-path 0.5s ease, -webkit-clip-path 0.5s ease;
  will-change: clip-path;
}
.fv__title.is-visible {
  -webkit-clip-path: inset(0 0 0 0);
  clip-path: inset(0 0 0 0);
}
.fv__product {
  position: absolute;
  top: 18.5vw;
  left: 10.3vw;
  width: 53.6vw;
}
.lead {
  margin-top: 8.5vw;
}
.lead__title {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  width: 68vw;
  aspect-ratio: 952/231;
  margin: 0 auto;
}
.lead__title::before {
  content: '';
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url(../images/lead_back.webp) no-repeat top center/contain;
  z-index: -1;
}

.lead__title img {
  width: 40vw;
  margin: 0 auto;
}
.lead__msg {
  margin-top: 4.6vw;
}
.lead__msg p {
  font-style: italic;
  font-size: 2.1vw;
  font-weight: 500;
  text-align: center;
}
.lead__msg p span {
  letter-spacing: -0.5em;
}
.lead__msg p:not(:first-child) {
  margin-top: 3.3vw;
}
.lead__mission {
  margin-top: 4.9vw;
}
.lead__mission-text {
  position: relative;
  width: 42.3611vw;
  margin: 0 auto;
  padding-top: 13vw;
}
.lead__mission-text::before {
  content: '';
  display: block;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, 0);
  width: 7.2vw;
  aspect-ratio: 80/92;
  background: url(../images/mission_arrow.webp) no-repeat top center/contain;
}
.lead__mission-bnr {
  transform: translateX(-0.8vw);
  width: 73.4028vw;
  margin: 5.65vw auto 0;
}
.item {
  margin-top: 17.2vw;
}
.item__title {
  transform: translateX(-2.7vw);
  width: 55.4vw;
  margin: 0 auto;
}
.item__title-en {
  width: 44%;
  transform: translateX(81%);
}
.item__title-jp {
  margin-top: 3.3vw;
}
.item__img {
  width: 72.1528vw;
  margin: 2.4vw auto 0;
}
.spec {
  margin-top: 10.6vw;
}
.spec__title {
  width: 55.5vw;
  margin: 0 auto;
  transform: translateX(2.5vw);
}
.spec__wrap {
  margin-top: 6vw;
}
.spec__item {
  position: relative;
  width: 48.5vw;
  margin: 0 auto;
}
.spec__item:not(:first-child) {
  margin-top: 4.7vw;
  padding-top: 0.5vw;
}
.spec__item-text {
  display: flex;
  justify-content: center;
  flex-direction: column;
  position: absolute;
  top: 6.1vw;
  left: 3.5vw;
  min-height: calc(3em * 1.63);
  font-style: italic;
  font-size: 1.5278vw;
  letter-spacing: 0.075em;
  font-weight: 500;
  line-height: 1.63;
}
.spec__item p sup {
  vertical-align: top;
  position: relative;
  top: 0.2em;
  font-size: 0.6em;
}

.spec__item p span {
  position: absolute;
  bottom: 0.2vw;
  right: 1vw;
  font-size: 0.8333vw;
  letter-spacing: 0.03em;
  line-height: 1.35;
}
.cta-01 {
  margin-top: 13.4vw;
}
.cta-02 {
  margin: 14vw 0 5vw;
}
.cta-text {
  font-style: italic;
  font-size: 1.95vw;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.03em;
  text-align: center;
}
.cta-link {
  display: block;
  position: relative;
  width: 50.2vw;
  aspect-ratio: 698/213;
  margin: 2.6vw auto 0;
  background: url(../images/cta_bnr.webp) no-repeat top center/contain;
  transition: 0.3s;
}
.cta-link:hover {
  opacity: 0.8;
}
.cta-link p {
  position: absolute;
  left: 50%;
  transform: translate(-50%, 2px);
  font-style: italic;
  font-size: 1.4583vw;
  font-weight: 700;
  letter-spacing: 0.03em;
}
.cta-link p::after {
  content: '';
  display: inline-block;
  position: relative;
  top: 0.0694vw;
  width: 1.4583vw;
  aspect-ratio: 21/20;
  margin-left: 0.4167vw;
  background: url(../images/icon_cart.webp) no-repeat top center/contain;
}
.cta-link strong {
  position: absolute;
  top: 44%;
  left: 50%;
  padding-left: 7.1vw;
  transform: translate(-50%, 0);
  color: #000;
  font-style: italic;
  font-size: 2.1528vw;
  font-weight: 900;
}
.cta-link strong::before {
  content: '';
  display: block;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translate(0, -50%);
  width: 5.9722vw;
  aspect-ratio: 86/91;
  background: url(../images/pip_logo.webp) no-repeat top center/contain;
}
.warning {
  margin-top: 18.7778vw;
}
.warning__title {
  width: 74.4444vw;
  margin: 0 auto;
}
.js-blink {
  opacity: 0;
  will-change: opacity;
}

.js-blink.is-blink {
  animation: blinkIntro 0.12s ease-out forwards, blinkLoop 1s ease-in-out 3 0.12s forwards;
}

@keyframes blinkIntro {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes blinkLoop {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0;
  }
}
.warning__lead {
  width: 47.7083vw;
  margin: 8.6vw auto 0;
}
.warning-list {
  position: relative;
  width: 59.4444vw;
  aspect-ratio: 856/547;
  margin: 3.4vw auto 0;
  background: url(../images/akujunkan.webp) no-repeat top center/contain;
}
.warning-list p {
  position: absolute;
  padding-left: 1em;
  text-indent: -1em;
  font-style: italic;
  font-size: 0.9028vw;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.47;
}
.warning-list p:nth-child(1) {
  top: 27%;
  left: 25.5%;
}
.warning-list p:nth-child(2) {
  top: 27%;
  right: 13%;
}
.warning-list p:nth-child(3) {
  bottom: 25.5%;
  right: 11.5%;
}
.warning-list p:nth-child(4) {
  bottom: 25.5%;
  left: 25.5%;
}
.warning-list strong {
  position: absolute;
  top: 49.5%;
  left: 49.5%;
  transform: translate(-50%, -50%);
  font-style: italic;
  font-size: 2.45vw;
}

.repair {
  margin-top: 15.4vw;
}
.repair__title {
  width: 42.8472vw;
  margin: 0 auto;
}
.repair__video {
  width: 48.6111vw;
  margin: 5vw auto 0;
}
.repair__video video {
  width: 100%;
}
.repair-list {
  transform: translate(0.4vw, 0);
  width: 46vw;
  margin: 4vw auto 0;
}
.repair-list p {
  position: relative;
  aspect-ratio: 640/98.5;
  padding-top: 1.6vw;
  padding-left: 8vw;
  background: url(../images/repair_item01.webp) no-repeat top center/contain;
  font-style: italic;
  font-size: 2.5vw;
  font-weight: 700;
  letter-spacing: 0.075em;
  text-align: center;
}
.repair-list p:not(:first-child) {
  margin-top: 1.7vw;
}
.repair-list p:nth-child(2) {
  background: url(../images/repair_item02.webp) no-repeat top center/contain;
}
.repair-list p:nth-child(3) {
  background: url(../images/repair_item03.webp) no-repeat top center/contain;
}

.complete {
  margin-top: 11.5vw;
}
.complete__lead {
  transform: translate(3.4vw, 0);
  width: 56vw;
  margin: 0 auto;
}
.complete__stamp {
  width: 57vw;
  margin: 3.1vw auto 0;
  transform-origin: center;
  will-change: transform;
}
.complete__stamp img {
  display: block;
  width: 100%;
  aspect-ratio: 1233/558;
  opacity: 0;
  transform-origin: center;
  transform: scale(1.25) translateY(-12px);
}
.complete__stamp img.is-stamped {
  animation: stamp-hit 0.5s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
}
@keyframes stamp-hit {
  0% {
    opacity: 0;
    transform: scale(2) translateY(-14px);
  }
  70% {
    transform: scale(0.88);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .complete__stamp,
  .complete__stamp > img {
    animation: none !important;
    transform: none !important;
    opacity: 1 !important;
    filter: none !important;
  }
}

.lineup {
  margin-top: 11.1vw;
}
.lineup__title {
  width: 34.3056vw;
  margin: 0 auto;
}
.lineup__catch {
  margin-top: 1.2vw;
  font-size: 1.3889vw;
  font-weight: 500;
  letter-spacing: 0.03em;
  text-align: center;
}
.lineup-body {
  width: 48.6111vw;
  margin: 6.5556vw auto 0;
}
.lineup__content:not(:first-child) {
  margin-top: 6.15vw;
}
.lineup__content-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  font-style: italic;
  font-size: 1.3889vw;
  font-weight: 500;
  letter-spacing: 0.03em;
  text-align: center;
  white-space: nowrap;
}
.lineup__content-title::before {
  content: '';
  display: block;
  width: 17.5vw;
  height: 1px;
  background-color: #fff;
}
.lineup__content-title::after {
  content: '';
  display: block;
  width: 17.5vw;
  height: 1px;
  background-color: #fff;
}
.lineup__content-list {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 2vw;
  min-height: 28vw;
  margin-top: 3.8vw;
}
.lineup__content-list-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 44%;
  transition: 0.3s;
}
.lineup__content-list-item:hover {
  opacity: 0.8;
}
.lineup__content-list-item-read {
  margin-top: -0.9vw;
  text-align: center;
}
.lineup__content-list-item-title {
  font-style: italic;
  font-size: 1.9444vw;
  font-weight: 700;
  line-height: 1.45;
}
.lineup__content-list-item-title span {
  letter-spacing: 0.06em;
  padding-left: 0.5em;
}
.lineup__content-list-item-text {
  margin-top: 0.5vw;
  font-style: italic;
  font-size: 1.3889vw;
  font-weight: 500;
  white-space: nowrap;
}

.last {
  margin-top: 19.6vw;
}
.last__img {
  transform: translateX(-0.7vw);
  width: 77vw;
  margin: 0 auto;
}
.last__text {
  width: 40.5694vw;
  margin: 10.3vw auto 0;
}
@media screen and (max-width: 767px) {
  .fv__title {
    top: 8vw;
    left: 3vw;
    width: 95.1vw;
  }
  .fv__title::before {
    bottom: -1.4vw;
    left: -2.7vw;
    width: 95.8vw;
  }
  .fv__product {
    top: auto;
    bottom: 4.5vw;
    left: 1.3vw;
    width: 95.6vw;
  }
  .lead {
    margin-top: 14vw;
  }
  .lead__title {
    width: 100vw;
    aspect-ratio: 751/323;
  }
  .lead__title::before {
    background: url(../images/lead_back_sp.webp) no-repeat top center / contain;
  }
  .lead__title img {
    width: 62vw;
  }
  .lead__msg {
    margin-top: 14.4vw;
  }
  .lead__msg p {
    font-size: 4.2vw;
  }
  .lead__msg p:not(:first-child) {
    margin-top: 10.4vw;
  }
  .lead__mission {
    margin-top: 11.8vw;
  }
  .lead__mission-text {
    width: 71.3611vw;
    margin: 0 auto;
    padding-top: 33vw;
  }
  .lead__mission-text::before {
    width: 17.2vw;
  }
  .lead__mission-bnr {
    transform: translateX(0.2vw);
    width: 93.5vw;
    margin: 11.1vw auto 0;
  }
  .item {
    margin-top: 27vw;
  }
  .item__title {
    transform: translateX(0);
    width: 96.4vw;
  }
  .item__title-en {
    width: 44%;
    transform: translateX(63%);
  }
  .item__title-jp {
    margin-top: 5.6vw;
  }
  .item__img {
    width: 65.1528vw;
    margin: 6.6vw auto 0;
  }
  .spec {
    margin-top: 21.8vw;
  }
  .spec__title {
    width: 95.5vw;
    transform: translateX(0);
  }
  .spec__wrap {
    margin-top: 6.5vw;
  }
  .spec__item {
    width: 93.8vw;
  }
  .spec__item:not(:first-child) {
    margin-top: 6.2vw;
    padding: 0;
  }
  .spec__item-text {
    top: 11vw;
    font-size: 4.3vw;
    line-height: 1.36;
  }
  .spec__item:nth-child(2) .spec__item-text {
    top: 15.5vw;
    left: 12vw;
  }
  .spec__item:nth-child(3) .spec__item-text {
    top: 14.9vw;
    left: 13vw;
  }
  .spec__item p span {
    bottom: -8.5vw;
    left: 1vw;
    font-size: 3.1vw;
  }
  .cta-01 {
    margin-top: 20vw;
  }
  .cta-02 {
    margin: 22.5vw 0 20vw;
  }
  .cta-text {
    font-size: 3.95vw;
  }
  .cta-link {
    width: 100vw;
    aspect-ratio: 750/229;
    margin-top: 5.6vw;
    background-image: url(../images/cta_bnr_sp.webp);
  }
  .cta-link p {
    transform: translate(-50%, 3px);
    font-size: 3.4583vw;
  }
  .cta-link p::after {
    top: 0.4vw;
    width: 3.2vw;
    margin-left: 1vw;
  }
  .cta-link strong {
    top: 41%;
    padding-left: 15.1vw;
    font-size: 4.8vw;
    white-space: nowrap;
  }
  .cta-link strong::before {
    top: 76%;
    width: 12vw;
  }
  .warning {
    margin-top: 21.2vw;
  }
  .warning__title {
    width: 100vw;
  }
  .warning__lead {
    width: 80vw;
    margin-top: 10.6vw;
  }
  .warning-list {
    width: 93.4vw;
    aspect-ratio: 702/1079;
    margin-top: 7.9vw;
    background-image: url(../images/akujunkan_sp.webp);
  }
  .warning-list p {
    padding: 0;
    text-indent: 0;
    font-size: 3.8vw;
    text-align: center;
    line-height: 1.266;
  }
  .warning-list p:nth-child(1) {
    top: 33.4%;
    left: 6.5%;
  }
  .warning-list p:nth-child(2) {
    top: 33.4%;
    right: 6.8%;
  }
  .warning-list p:nth-child(3) {
    bottom: 11.5%;
    right: 4.7%;
  }
  .warning-list p:nth-child(4) {
    bottom: 11.5%;
    left: 6.5%;
  }
  .warning-list strong {
    font-size: 5.4vw;
  }

  .repair {
    margin-top: 24.6vw;
  }
  .repair__title {
    width: 86.9vw;
  }
  .repair__video {
    width: 93.4vw;
    margin-top: 6.6vw;
  }
  .repair-list {
    transform: translate(0);
    width: 100vw;
    margin-top: 6.8vw;
  }
  .repair-list p {
    aspect-ratio: 751/134;
    padding-top: 5.3vw;
    padding-left: 14vw;
    background-image: url(../images/repair_item01_sp.webp);
    font-size: 4.5vw;
    letter-spacing: 0.13em;
    text-align: center;
  }
  .repair-list p:not(:first-child) {
    margin-top: 0.7vw;
  }
  .repair-list p:nth-child(2) {
    background-image: url(../images/repair_item02_sp.webp);
  }
  .repair-list p:nth-child(3) {
    background-image: url(../images/repair_item03_sp.webp);
  }

  .complete {
    margin-top: 20vw;
  }
  .complete__lead {
    transform: translate(1vw, 0);
    width: 88vw;
  }
  .complete__stamp {
    width: 96.6vw;
    margin-top: 17.7vw;
  }

  .lineup {
    margin-top: 23.1vw;
  }
  .lineup__title {
    width: 73.1vw;
  }
  .lineup__catch {
    margin-top: 2.7vw;
    font-size: 3.1vw;
  }
  .lineup-body {
    width: 85vw;
    margin-top: 7.7vw;
  }
  .lineup__content:not(:first-child) {
    margin-top: 10.6vw;
  }
  .lineup__content-list-item-read.is-yokoku-sp {
    margin-left: -1.5vw;
  }
  .lineup__content-title {
    padding-left: 0.1em;
    padding-bottom: 0.6em;
    border-bottom: 1px solid #fff;
    font-size: 4vw;
  }

  .lineup__content-title::before,
  .lineup__content-title::after {
    display: none;
  }
  .lineup__content-list {
    flex-direction: column;
    gap: 1.2vw;
    min-height: 28vw;
    margin-top: 6.3vw;
  }
  .lineup__content-list-item {
    flex-direction: row;
    position: relative;
    width: 100%;
  }
  .lineup__content-list-item::after {
    content: '';
    display: block;
    position: absolute;
    top: 50%;
    right: -1%;
    transform: translate(0, -50%);
    width: 3.8vw;
    aspect-ratio: 28/52;
    background: url(../images/lineup_arrow.webp) no-repeat top center/contain;
  }
  .lineup__content-list-item img {
    width: 50%;
    margin-left: -5.5%;
  }
  .lineup__content-list-item-read {
    flex: 1;
    margin-top: -0.9vw;
    text-align: left;
  }
  .lineup__content-list-item-read.is-2line-sp {
    margin-top: 4vw;
  }
  .lineup__content-list-item-title {
    font-size: 5.15vw;
    line-height: 1.2;
    white-space: nowrap;
  }
  .lineup__content-list-item-title span {
    padding-left: 0.2em;
    font-size: 0.86em;
    letter-spacing: 0.06em;
  }
  .lineup__content-list-item-text {
    margin-top: 1.3vw;
    font-size: 3.1vw;
    line-height: 1.33;
  }

  .last {
    margin-top: 22.4vw;
  }
  .last__img {
    transform: translateX(0);
    width: 94vw;
  }
  .last__text {
    width: 78vw;
    margin-top: 25.3vw;
  }
}
