#scene1 .bg::after,
#scene3 .box::after,
#scene4 .box::after {
  mix-blend-mode: soft-light;
  background-size: 5.8666666667vw auto;
  background-image: url(../img/common/pattern@sp.webp);
}

#scene3 .box,
#scene4 .box {
  position: relative;
  z-index: 1;
  margin: 0 auto;
  background-color: #dd681d;
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-position: center bottom;
  background-image: url(../img/common/bg_box@sp.webp);
  width: 84vw;
  box-shadow: 0 0 0 2.6666666667vw rgba(var(--color-white-rgb), 0.6);
}

#scene3 .box::before,
#scene4 .box::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-image: linear-gradient(180deg, rgba(27, 32, 30, 0.8), rgba(182, 72, 40, 0) 50%);
}

#scene3 .box::after,
#scene4 .box::after {
  content: "";
  position: absolute;
  inset: 0;
}

#scene3 .box .box-border,
#scene4 .box .box-border {
  position: absolute;
  z-index: 1;
  inset: 0;
  border: 2px solid var(--color-white);
}

#scene3 .box .box-border::after,
#scene4 .box .box-border::after {
  content: "";
  opacity: 0.7;
  position: absolute;
  top: 0;
  left: 0;
  clip-path: polygon(0 0, 100% 0%, 100% 0, 0% 100%);
  background: var(--color-black);
  aspect-ratio: 680/368;
  width: 82.9333333333vw;
}

#scene3 .box .box-inner,
#scene4 .box .box-inner {
  position: relative;
  z-index: 1;
  margin: 0 auto;
  padding: 10.6666666667vw 0 12vw 0;
  width: 73.3333333333vw;
}

#scene2 .title,
#scene3 .title,
#scene4 .title {
  transform: translateZ(0);
  margin: 0 auto;
  filter: drop-shadow(0.5333333333vw 0.5333333333vw 0 var(--color-shadow));
  margin-bottom: 4vw;
}

header .toplogo {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s;
}

header #menu-check:checked ~ .toplogo {
  opacity: 1;
  pointer-events: auto;
}

#scene1 .text,
#kv .texts {
  letter-spacing: 0.05em;
  font-style: italic;
  font-weight: 900;
}

#scene4 .text,
#scene3 .text {
  color: var(--color-white);
  text-align: center;
  letter-spacing: 0.05em;
  font-style: italic;
  margin-bottom: 4vw;
  line-height: 1.5;
  font-size: 18px;
}

#kv {
  position: relative;
  min-height: 186.6666666667vw;
}

#kv .ill,
#kv .logo,
#kv .texts {
  visibility: hidden;
}

#kv .ill {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: -16vw;
  width: 110.6666666667vw;
}

#kv .logo {
  position: relative;
  z-index: 1;
  padding-top: 81.3333333333vw;
  width: 90vw;
  margin: 0 auto;
}

#kv .texts {
  text-align: center;
}

#kv .text1,
#kv .text2 {
  position: relative;
  z-index: 1;
}

#kv .text1 .text.stroke,
#kv .text2 .text.stroke {
  position: absolute;
  z-index: -1;
  inset: 0;
  text-align: center;
  paint-order: stroke;
  -webkit-text-stroke: 0.4vw var(--color-white);
  text-stroke: 0.4vw var(--color-white);
  color: transparent;
}

#kv .text1 .text {
  line-height: 1.5;
  margin-bottom: 0.5em;
  font-size: 20px;
}

#kv .text2 .text {
  line-height: 1.5;
  font-size: 30px;
}

#kv .text2 .text strong {
  color: var(--color-shadow);
  font-size: 40px;
}

#scene1 {
  position: relative;
  display: flex;
  justify-content: center;
  flex-direction: column;
  margin-bottom: 13.3333333333vw;
}

#scene1 .bg {
  background: var(--grad-bg);
  position: absolute;
  z-index: -1;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 100%;
  clip-path: polygon(0 35%, 100% 0%, 100% 65%, 0% 100%);
  height: 70vw;
}

#scene1 .bg::after {
  content: "";
  position: absolute;
  inset: 0;
  mix-blend-mode: overlay;
}

#scene1 .texts {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background-repeat: no-repeat;
  background-size: contain;
  background-image: url(../img/toppage/s1_bg@sp.webp);
  aspect-ratio: 653/386;
  width: 87.0666666667vw;
  margin: 0 auto;
}

#scene1 .title {
  margin-top: 5.3333333333vw;
  width: 62.1333333333vw;
}

#scene1 .text {
  line-height: 1.66;
  color: var(--color-white);
  transform: translateY(-1.3333333333vw) rotate(-10deg);
  text-shadow: 0.5333333333vw 0.5333333333vw 0px var(--color-black);
  font-size: 30px;
}

#scene1 .movie {
  position: relative;
  background: var(--color-white);
  border-color: var(--color-shadow);
  border-style: solid;
  border-width: 1.0666666667vw;
  padding: 0.5333333333vw;
  width: max-content;
  margin: -6.6666666667vw auto 0 auto;
}

#scene1 .movie .kvplayer {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 85.3333333333vw;
}

#scene1 .movie .kvplayer .icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) translateZ(0);
  background: rgba(var(--color-white-rgb), 0.6);
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  overflow: hidden;
  aspect-ratio: 1;
  width: 21.6vw;
  border: 0.8vw solid #fff;
  box-shadow: 0 0 8vw 0 #fff inset, 0 0 5.3333333333vw 0 #fff inset, 0 0 5.3333333333vw 0 #fff inset, 0 0 2.6666666667vw 0 #fff inset, 0 0 2.6666666667vw 0 #fff inset, 0 0 2.6666666667vw 0 #fff inset, 0 0 2.6666666667vw 0 #fff inset;
  filter: drop-shadow(0 0 2.6666666667vw rgba(0, 0, 0, 0.2));
}

#scene1 .movie .kvplayer .icon::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.2;
  background: var(--grad-icon);
}

#scene1 .movie .kvplayer .icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: #c92f19;
  clip-path: polygon(20% 0, 20% 100%, 100% 50%);
  aspect-ratio: 1;
  width: 9.3333333333vw;
}

#scene1 .movie .ytplayer {
  aspect-ratio: 16/9;
  width: 85.3333333333vw;
}

#scene1 .movie iframe {
  width: 100% !important;
  height: 100% !important;
}

#scene2 {
  position: relative;
  overflow: hidden;
  height: 106.6666666667vw;
  margin-bottom: 16vw;
}

#scene2 .bg {
  background: #000;
  position: absolute;
  z-index: -1;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

#scene2 .bg video {
  transform: translate3d(0, 0, 0);
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

#scene2 .bg::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  background: #000;
  opacity: 0.2;
}

#scene2 .texts {
  position: relative;
  z-index: 1;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  padding-top: 56vw;
  width: 89.3333333333vw;
  gap: 2.6666666667vw;
}

#scene2 .title {
  width: 89.3333333333vw;
}

#scene3 {
  margin-bottom: 16vw;
}

#scene3 .title {
  width: 69.4666666667vw;
}

#scene3 .image {
  will-change: transform;
  border: 2px solid var(--color-white);
  filter: drop-shadow(2.1333333333vw 2.1333333333vw 0 var(--color-black));
  margin: 0 -9.3333333333vw 9.3333333333vw -9.3333333333vw;
}

#scene4 .title {
  width: 55.2vw;
}

#scene4 .swiper {
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
  margin-bottom: 8vw;
}

#scene4 .swiper-wrapper {
  transition-timing-function: linear !important;
  padding-bottom: 2.1333333333vw;
}

#scene4 .swiper-slide {
  position: relative;
  filter: drop-shadow(2.1333333333vw 2.1333333333vw 0 var(--color-black));
  width: 51.2vw;
}

#scene4 .swiper-slide::after {
  content: "";
  position: absolute;
  inset: 0;
  border: 2px solid #fff;
}

@media print, screen and (min-width: 768px) {
  #scene1 .bg::after,
  #scene3 .box::after,
  #scene4 .box::after {
    background-size: min(22px,  calc(22 / 1366 * 100vw)) auto;
    background-image: url(../img/common/pattern@pc.webp);
  }

  #scene3 .box,
  #scene4 .box {
    background-image: url(../img/common/bg_box@pc.webp);
    width: min(1056px,  calc(1056 / 1366 * 100vw));
    box-shadow: 0 0 0 min(10px,  calc(10 / 1366 * 100vw)) rgba(var(--color-white-rgb), 0.6);
  }

  #scene3 .box .box-border::after,
  #scene4 .box .box-border::after {
    aspect-ratio: 700/340;
    width: min(688px,  calc(688 / 1366 * 100vw));
  }

  #scene3 .box .box-inner,
  #scene4 .box .box-inner {
    padding: min(45px,  calc(45 / 1366 * 100vw)) 0 min(55px,  calc(55 / 1366 * 100vw)) 0;
    width: min(720px,  calc(720 / 1366 * 100vw));
  }

  #scene2 .title,
  #scene3 .title,
  #scene4 .title {
    filter: drop-shadow(min(4px,  calc(4 / 1366 * 100vw)) min(4px,  calc(4 / 1366 * 100vw)) 0 var(--color-shadow));
    margin-bottom: min(25px,  calc(25 / 1366 * 100vw));
  }

  #scene4 .text,
  #scene3 .text {
    margin-bottom: min(30px,  calc(30 / 1366 * 100vw));
  }

  #kv {
    min-height: min(768px,  calc(768 / 1366 * 100vw));
  }

  #kv .ill {
    transform: translateX(0);
    left: auto;
    top: max(-210px,  calc(-210 / 1366 * 100vw));
    right: 50%;
    width: min(991px,  calc(991 / 1366 * 100vw));
    margin-right: max(-250px,  calc(-250 / 1366 * 100vw));
  }

  #kv .logo {
    position: absolute;
    padding-top: 0;
    left: 50%;
    top: min(90px,  calc(90 / 1366 * 100vw));
    width: min(701px,  calc(701 / 1366 * 100vw));
    margin-left: max(-90px,  calc(-90 / 1366 * 100vw));
  }

  #kv .texts {
    position: absolute;
    left: 50%;
    top: min(420px,  calc(420 / 1366 * 100vw));
    width: min(701px,  calc(701 / 1366 * 100vw));
    margin-left: max(-90px,  calc(-90 / 1366 * 100vw));
  }

  #kv .text1 .text.stroke,
  #kv .text2 .text.stroke {
    -webkit-text-stroke: min(3px,  calc(3 / 1366 * 100vw)) var(--color-white);
    text-stroke: min(3px,  calc(3 / 1366 * 100vw)) var(--color-white);
  }

  #kv .text1 .text {
    line-height: 2;
  }

  #scene1 {
    flex-direction: row;
    align-items: flex-end;
    height: min(540px,  calc(540 / 1366 * 100vw));
    margin-bottom: min(80px,  calc(80 / 1366 * 100vw));
  }

  #scene1 .bg {
    height: min(480px,  calc(480 / 1366 * 100vw));
  }

  #scene1 .texts {
    background-image: url(../img/toppage/s1_bg@pc.webp);
    aspect-ratio: 620/395;
    width: min(620px,  calc(620 / 1366 * 100vw));
  }

  #scene1 .title {
    margin-top: 0;
    width: min(266px,  calc(266 / 1366 * 100vw));
    transform: translateY(min(35px,  calc(35 / 1366 * 100vw)));
  }

  #scene1 .text {
    transform: translateY(min(20px,  calc(20 / 1366 * 100vw))) rotate(-10deg);
    text-shadow: min(4px,  calc(4 / 1366 * 100vw)) min(4px,  calc(4 / 1366 * 100vw)) 0px var(--color-black);
  }

  #scene1 .movie {
    border-width: min(6px,  calc(6 / 1366 * 100vw));
    padding: min(6px,  calc(6 / 1366 * 100vw));
    margin-top: 0;
    margin-left: max(-170px,  calc(-170 / 1366 * 100vw));
  }

  #scene1 .movie .kvplayer {
    width: min(720px,  calc(720 / 1366 * 100vw));
  }

  #scene1 .movie .kvplayer .icon {
    width: min(108px,  calc(108 / 1366 * 100vw));
    border: min(4px,  calc(4 / 1366 * 100vw)) solid #fff;
    box-shadow: 0 0 min(30px,  calc(30 / 1366 * 100vw)) 0 #fff inset, 0 0 min(20px,  calc(20 / 1366 * 100vw)) 0 #fff inset, 0 0 min(20px,  calc(20 / 1366 * 100vw)) 0 #fff inset, 0 0 min(10px,  calc(10 / 1366 * 100vw)) 0 #fff inset;
    filter: drop-shadow(0 0 min(10px,  calc(10 / 1366 * 100vw)) rgba(0, 0, 0, 0.2));
  }

  #scene1 .movie .kvplayer .icon::after {
    width: min(50px,  calc(50 / 1366 * 100vw));
  }

  #scene1 .movie .ytplayer {
    width: min(720px,  calc(720 / 1366 * 100vw));
  }

  #scene2 {
    height: min(680px,  calc(680 / 1366 * 100vw));
    margin-bottom: min(80px,  calc(80 / 1366 * 100vw));
  }

  #scene2 .texts {
    padding-top: min(300px,  calc(300 / 1366 * 100vw));
    width: min(1200px,  calc(1200 / 1366 * 100vw));
    gap: min(30px,  calc(30 / 1366 * 100vw));
  }

  #scene2 .title {
    width: min(752px,  calc(752 / 1366 * 100vw));
    margin-left: 0;
  }

  #scene2 .cmn-button {
    justify-content: flex-start;
  }

  #scene3 {
    margin-bottom: min(80px,  calc(80 / 1366 * 100vw));
  }

  #scene3 .title {
    width: min(591px,  calc(591 / 1366 * 100vw));
  }

  #scene3 .image {
    margin: 0 0 min(45px,  calc(45 / 1366 * 100vw)) 0;
    filter: drop-shadow(min(8px,  calc(8 / 1366 * 100vw)) min(8px,  calc(8 / 1366 * 100vw)) 0 var(--color-black));
  }

  #scene4 .title {
    width: min(564px,  calc(564 / 1366 * 100vw));
  }

  #scene4 .swiper {
    margin-bottom: min(45px,  calc(45 / 1366 * 100vw));
  }

  #scene4 .swiper-wrapper {
    padding-bottom: min(8px,  calc(8 / 1366 * 100vw));
  }

  #scene4 .swiper-slide {
    width: min(384px,  calc(384 / 1366 * 100vw));
    filter: drop-shadow(min(8px,  calc(8 / 1366 * 100vw)) min(8px,  calc(8 / 1366 * 100vw)) 0 var(--color-black));
  }
}

@media only screen and (max-width: 767.8px) {
  #scene4 .text,
  #scene3 .text {
    font-size: 3.2rem;
  }

  #kv .text1 .text {
    font-size: 3.2rem;
  }

  #kv .text2 .text {
    font-size: 3.6rem;
  }

  #kv .text2 .text strong {
    font-size: 4.8rem;
  }

  #scene1 .text {
    font-size: 3rem;
  }
}

@media screen and (min-width: 768px) and (max-width: 1365.8px) {
  #scene4 .text,
  #scene3 .text {
    font-size: 1.8rem;
  }

  #kv .text1 .text {
    font-size: 2rem;
  }

  #kv .text2 .text {
    font-size: 3rem;
  }

  #kv .text2 .text strong {
    font-size: 4rem;
  }

  #scene1 .text {
    font-size: 3rem;
  }
}