:root {
  --black: #000;
  --white: #fff;
  --yellow: #fdd717;
  --dark-yellow: #ffba08;
  --red: #d00000;
  --dark-red: #9d0208;
  --light-blue: #17a9fd;
  --brown: #370617;
  --item-yellow: #ffba08;
  --item-orange: #f48c06;
  --item-red: #d00000;
}

main {
  max-width: 440px;
}

.pc-img-left,
.pc-img-right {
  display: none;
}

.fixed-button {
  background-color: var(--yellow);
  bottom: 3.64vw;
  border-radius: 2.73vw;
  font-size: 7.27vw;
  left: 3.64vw;
  padding: 3.64vw 6.36vw;
  position: fixed;
  text-align: center;
  width: calc(100% - 7.27vw);
  z-index: 99;
}

/* fv */
.fv {
  background-image: url("../img/bg-01.png");
  background-size: cover;
  height: 184.55vw;
  position: relative;
}

.fv-title {
  left: 3.64vw;
  position: absolute;
  top: 6.82vw;
  width: calc(100% - 7.27vw);
  z-index: 2;
}

.fv-img {
  left: 12vw;
  position: absolute;
  top: 31.82vw;
  width: calc(100% - 12vw);
  z-index: 2;
}

.overlay {
  background-color: rgba(0, 0, 0, 0.7);
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}

/* youtube */
.youtube {
  background-color: var(--white);
  padding: 10.67vw 15.5vw;
  text-align: center;
}

.youtube-title {
  width: 57vw;
}

.youtube-video {
  margin-top: 6vw;

  & iframe {
    border-radius: 24px;
    height: 145vw;
    width: 100%;
  }
}

/* warning */
.warning-title-border {
  background-color: var(--yellow);
  font-size: 3.85vw;
  padding: 1.07vw 0;
  text-align: center;
}

.warning-title-text {
  background-color: var(--black);
  color: var(--white);
  display: flex;
  font-size: 12.8vw;
  justify-content: center;
  gap: 4.27vw;
  padding: 2.13vw 0;
  text-align: center;
}

.warning-text-area {
  background-color: var(--red);
  color: var(--white);
  padding: 14.93vw 5vw;
  position: relative;
  text-align: center;

  &::after {
    background-image: url("../img/img-03.png");
    background-size: cover;
    bottom: -18vw;
    content: "";
    display: block;
    height: 105vw;
    left: 0;
    position: absolute;
    width: 73vw;
  }
}

.warning-text p {
  font-size: 5.4vw;
  line-height: 200%;

  &:not(:first-of-type) {
    margin-top: 8.53vw;
  }
}

.warning-bottom-area {
  margin: 25vw 0 0 36vw;
}

.warning-bottom-area p {
  font-size: 4.2vw;
  line-height: 8.53vw;

  &:not(:first-of-type) {
    font-size: 5.6vw;
    line-height: 200%;
  }
}

/* light-blue-area */
.light-blue-area {
  background-color: var(--light-blue);
  padding: 9.6vw 0 21.33vw;
}

.light-blue-area .top {
  padding: 0 4.27vw;
}

.light-blue-area .title {
  background-color: var(--yellow);
  border-radius: 4.8vw;
  box-shadow: 1.87vw 1.87vw 0 0;
  padding: 4.27vw 5.33vw;
  width: 100%;
}

.light-blue-area .text-area {
  background-color: var(--white);
  border-radius: 5.33vw;
  margin-top: 6.4vw;
  padding: 6.4vw;
}

.light-blue-area .text {
  text-align: center;

  .box-image {
    width: 73.6vw;
  }
}

.light-blue-area .text p:not(:first-of-type) {
  margin-top: 10vw;
}

.light-blue-area .middle-text {
  font-size: 8.43vw;
  margin-top: 4.27vw;
  position: relative;
  text-align: center;

  &::before,
  &::after {
    background-color: var(--black);
    content: "";
    display: block;
    height: 0.53vw;
    position: absolute;
    top: 50%;
    width: 20%;
  }

  &::before {
    left: 0;
  }

  &::after {
    right: 0;
  }
}

.light-blue-area .image-area img {
  width: 100%;
}

.light-blue-area .list {
  display: flex;
  flex-direction: column;
  gap: 18.67vw;
  margin-top: 18.67vw;
}

.light-blue-area .list .item {
  position: relative;
  width: calc(100% - 8.53vw);

  &:nth-last-of-type(odd) {
    margin-left: auto;

    .top {
      border-top-left-radius: 5.33vw;
    }

    .area {
      border-bottom-left-radius: 5.33vw;
    }
  }

  &:nth-last-of-type(even) {
    margin-right: auto;

    .top {
      border-top-right-radius: 5.33vw;
    }

    .area {
      border-bottom-right-radius: 5.33vw;
    }
  }

  &::after {
    content: "";
    display: block;
    position: absolute;
    top: -12vw;
    left: 21.33vw;
    width: 61.33vw;
    height: 45.33vw;
    background-size: cover;
  }

  &:first-of-type {
    &::after {
      background-image: url("../img/no-01.png");
    }

    .top {
      background-color: var(--item-yellow);
    }

    .area .button {
      background-color: var(--item-yellow);
    }
  }

  &:nth-of-type(2) {
    &::after {
      background-image: url("../img/no-02.png");
    }

    .top {
      background-color: var(--item-orange);
    }

    .area .button {
      background-color: var(--item-orange);
    }
  }

  &:nth-of-type(3) {
    &::after {
      background-image: url("../img/no-03.png");
    }

    .top {
      background-color: var(--item-red);
    }

    .area .button {
      background-color: var(--item-red);
    }
  }
}

.light-blue-area .list .top {
  height: 70px;
}

.light-blue-area .list .area {
  background-color: var(--white);
  padding: 3.2vw 10.67vw 12.8vw;

  & video {
    height: 76.64vw;
    pointer-events: none;
    width: 76.64vw;
  }
}

.light-blue-area .list .area .button {
  align-items: center;
  border-radius: 1.87vw;
  box-shadow: 1.87vw 1.87vw 0 0;
  cursor: pointer;
  display: flex;
  justify-content: center;
  padding: 3.2vw 0;
  text-align: center;

  & img {
    width: 60%;
  }
}

/* spy-introduction */
.spy-introduction {
  background-color: var(--black);
  padding: 21.33vw 0;

  .image-area {
    padding: 0 9.09vw;
  }

  .list {
    display: flex;
    flex-direction: column;
    gap: 9.09vw;
    margin-top: 12.73vw;

    .item {
      &:nth-of-type(odd) .text-area .text {
        padding-left: 6.82vw;
      }

      &:nth-of-type(even) .text-area .text {
        padding-right: 6.82vw;
      }

      .title {
        align-items: center;
        background-color: var(--dark-yellow);
        border-radius: 3.64vw;
        display: flex;
        justify-content: center;
        margin: 0 auto;
        padding: 3.18vw 0;
        width: calc(100% - 7.27vw);

        & img {
          width: 65%;
        }
      }

      .text-area {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        margin-top: 5.45vw;

        .text {
          color: var(--white);
          line-height: 8.18vw;
        }
      }
    }
  }
}

/* red-area */
.red-area {
  background-color: var(--dark-red);
  padding: 9vw 6.36vw 32vw;

  & h2 {
    text-align: center;

    & img {
      width: calc(100% - 25.45vw);
    }
  }

  .item {
    margin-top: 5.45vw;

    .item-top {
      background-color: var(--brown);
      border-top-right-radius: 4.55vw;
      border-top-left-radius: 4.55vw;
      padding: 2.73vw 0;
      text-align: center;

      & span {
        color: var(--white);
        font-size: 5.91vw;
      }

      .small {
        font-size: 3.86vw;
      }
    }

    .content {
      background-color: var(--white);
      border-bottom-right-radius: 4.55vw;
      border-bottom-left-radius: 4.55vw;
      padding: 9.09vw 6.36vw;
      text-align: center;

      & img {
        width: 45.45vw;
      }

      & p {
        color: var(--brown);
        font-size: 4.55vw;
        line-height: 8.18vw;
        margin-top: 2.73vw;
        text-align: left;
      }
    }

    .and-more {
      margin-top: 9.09vw;
      text-align: center;

      & img {
        width: 43.18vw;
      }
    }
  }
}

@media (min-width: 1290px) {
  .pc-img-left,
  .pc-img-right {
    content: "";
    display: block;
    position: fixed;
  }

  .pc-img-left {
    left: 48px;
    top: 330px;
    width: 390px;
  }

  .pc-img-right {
    right: 150px;
    top: 88px;
    width: 213px;
  }
}

@media (min-width: 441px) {
  body {
    background-color: var(--black);
  }

  main {
    margin: 0 auto;
    position: relative;
  }

  .fixed-button {
    border-radius: 12px;
    bottom: 24px;
    font-size: 32px;
    left: 50%;
    padding: 16px 0;
    transform: translate(-50%, 0);
    width: calc(440px - 32px);
  }

  /* fv */
  .fv {
    height: 812px;
  }

  .fv-title {
    left: 16px;
    top: 30px;
    width: calc(100% - 32px);
  }

  .fv-img {
    left: 32px;
    top: 140px;
    width: calc(100% - 32px);
  }

  .fv-link {
    bottom: 16px;
    border-radius: 12px;
    font-size: 32px;
    left: 16px;
    padding: 16px 28px;
    width: calc(100% - 32px);
  }

  /* youtube */
  .youtube {
    padding: 40px 60px;
  }

  .youtube-title {
    width: 237px;
  }

  .youtube-video {
    margin-top: 24px;

    iframe {
      height: 569px;
      width: 320px;
    }
  }

  /* warning */
  .warning-title-border {
    font-size: 15px;
    padding: 4px 0;
  }

  .warning-title-text {
    font-size: 48px;
    gap: 16px;
    padding: 8px 0;
  }

  .warning-text-area {
    padding: 56px 24px;

    &::after {
      bottom: -70px;
      height: 452px;
      left: 0;
      width: 315px;
    }
  }

  .warning-text p {
    font-size: 23px;
    line-height: 40px;

    &:not(:first-of-type) {
      margin-top: 32px;
    }
  }

  .warning-bottom-area {
    margin: 120px 0 0 160px;
  }

  .warning-bottom-area p {
    font-size: 18px;
    line-height: 32px;

    &:not(:first-of-type) {
      font-size: 24px;
      line-height: 2;
    }
  }

  /* light-blue-area */
  .light-blue-area {
    padding: 36px 0 80px;
  }

  .light-blue-area .top {
    padding: 0 16px;
  }

  .light-blue-area .title {
    border-radius: 18px;
    box-shadow: 7px 7px 0 0;
    padding: 16px 20px;
    width: 100%;
  }

  .light-blue-area .text-area {
    border-radius: 20px;
    margin-top: 24px;
    padding: 24px;
  }

  .light-blue-area .text {
    font-size: 23px;
    line-height: 40px;
  }

  .light-blue-area .text p:not(:first-of-type) {
    margin-top: 40px;
  }

  .light-blue-area .middle-text {
    font-size: 40px;
    margin-top: 16px;

    &::before,
    &::after {
      height: 2px;
      top: 50%;
      width: 20%;
    }

    &::before {
      left: 0;
    }

    &::after {
      right: 0;
    }
  }

  .light-blue-area .image-area img {
    width: 100%;
  }

  .light-blue-area .list {
    gap: 70px;
    margin-top: 70px;
  }

  .light-blue-area .list .item {
    width: calc(100% - 32px);

    &:nth-last-of-type(odd) {
      margin-left: auto;

      .top {
        border-top-left-radius: 20px;
      }

      .area {
        border-bottom-left-radius: 20px;
      }
    }

    &:nth-last-of-type(even) {
      margin-right: auto;

      .top {
        border-top-right-radius: 20px;
      }

      .area {
        border-bottom-right-radius: 20px;
      }
    }

    &::after {
      height: 170px;
      left: 80px;
      top: -45px;
      width: 230px;
    }
  }

  .light-blue-area .list .top {
    height: 70px;
  }

  .light-blue-area .list .area {
    padding: 12px 40px 48px 40px;

    & video {
      height: 328px;
      width: 328px;
    }
  }

  .light-blue-area .list .area .button {
    border-radius: 7px;
    box-shadow: 7px 7px 0 0;
    padding: 12px 0;

    & img {
      width: 60%;
    }
  }

  /* spy-introduction */
  .spy-introduction {
    padding: 80px 0;
  }

  .spy-introduction .image-area {
    padding: 0 40px;
  }

  .spy-introduction .list {
    gap: 40px;
    margin-top: 56px;
  }

  .spy-introduction .list .item {
    &:nth-of-type(odd) .text-area .text {
      padding-left: 30px;
    }

    &:nth-of-type(even) .text-area .text {
      padding-right: 30px;
    }
  }

  .spy-introduction .list .item .title {
    border-radius: 16px;
    margin: 0 auto;
    padding: 14px 0;
    width: calc(100% - 32px);

    & img {
      width: 65%;
    }
  }

  .spy-introduction .list .item .text-area {
    display: flex;
    margin-top: 24px;
  }

  .spy-introduction .list .item .text-area .text {
    line-height: 36px;
    width: 50%;
  }

  .spy-introduction .list .item .text-area img {
    width: 50%;
  }

  /* red-area */
  .red-area {
    padding: 40px 28px 140px;
  }

  .red-area h2 {
    & img {
      width: calc(100% - 112px);
    }
  }

  .red-area .item {
    margin-top: 24px;
  }

  .red-area .item .item-top {
    border-top-right-radius: 20px;
    border-top-left-radius: 20px;
    padding: 12px 0;

    & span {
      font-size: 26px;
    }

    .small {
      font-size: 17px;
    }
  }

  .red-area .item .content {
    border-bottom-right-radius: 20px;
    border-bottom-left-radius: 20px;
    padding: 40px 28px;

    & img {
      width: 200px;
    }

    & p {
      font-size: 20px;
      line-height: 36px;
      margin-top: 12px;
    }
  }

  .red-area .item .and-more {
    margin-top: 40px;

    & img {
      width: 190px;
    }
  }
}
