@keyframes scroll {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 0;
  }

  50% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }

  51% {
    transform: scale(1, 1);
    transform-origin: 0 100%;
  }

  100% {
    transform: scale(1, 0);
    transform-origin: 0 100%;
  }
}

/* ========================================
  @media screen and (min-width: 768px),print
======================================== */
@media screen and (min-width: 768px), print {
  .p-fv .p-fv__img {
    margin-bottom: 100px;
    text-align: center;
  }

  .p-fv .p-fv__img img {
    height: auto;
    width: 100%;
  }

  .p-fv .p-fv__txt {
    font-size: 21px;
    font-weight: 400;
    letter-spacing: 0.16em;
    line-height: 2;
    margin-bottom: 40px;
    text-align: center;
  }

  .p-fv .p-fv__scrolldown {
    animation: scroll 2s infinite;
    background: #403f3f;
    height: 100px;
    margin-bottom: 34px;
    margin-inline: auto;
    width: 1px;
  }

  .p-fv .p-fv__txt02 {
    margin-bottom: 150px;
  }

  .p-fv .p-fv__txt02 p {
    font-size: 14px;
    font-weight: 400;
    letter-spacing: -0.01em;
    line-height: 2.7142857143;
    margin-bottom: 39px;
    text-align: center;
  }

  .p-fv .p-fv__txt02 p:last-child {
    margin-bottom: 0;
  }

  .p-fv .p-fv__bottom {
    margin-inline: auto;
    position: relative;
    width: min(100%, 1200px);
  }

  .p-fv .p-fv__bottom-img.--right {
    position: absolute;
    right: 0;
    top: 0;
  }

  .p-fv .p-fv__bottom-img.--right img {
    height: auto;
    width: 375px;
  }

  .p-fv .p-fv__bottom-img.--left {
    left: 0;
    position: absolute;
    top: 221px;
  }

  .p-fv .p-fv__bottom-img.--left img {
    height: auto;
    width: 343px;
  }

  .p-fv .p-fv__bottom-txt {
    margin-bottom: 150px;
    text-align: center;
  }

  .p-fv .p-fv__bottom-txt p {
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 1.1428571429;
    margin-bottom: 100px;
  }

  .p-fv .p-fv__bottom-txt p.bottom {
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 2.7142857143;
    margin-bottom: 0;
  }

  .p-fv .p-fv__bottom-txt .row {
    align-items: flex-start;
    display: flex;
    gap: 0 40px;
    justify-content: center;
    margin-bottom: 94px;
  }

  .p-fv .p-fv__bottom-txt .row p {
    font-size: 18px;
    font-weight: 400;
    letter-spacing: 0.13em;
    line-height: 1.1111111111;
    margin-bottom: 0;
    writing-mode: vertical-rl;
  }

  .p-fv .p-fv__bottom-img02 {
    background: url(../images/message/fv_img_bottom.jpg) no-repeat top
      center/cover;
    margin-bottom: 181px;
    margin-inline: auto;
    max-width: 1920px;
    padding-block: 74px;
    width: 100%;
  }

  .p-fv .p-fv__bottom-img02-txt {
    margin-inline: auto;
    width: min(95%, 674px);
  }

  .p-fv .p-fv__bottom-img02-txt p {
    color: #ffffff;
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 2.7142857143;
    margin-bottom: 37px;
  }

  .p-fv .p-fv__bottom-img02-txt p.top {
    font-size: 18px;
    font-weight: 400;
    letter-spacing: 0.02em;
    line-height: 2.3333333333;
    margin-bottom: 21px;
  }

  .p-fv .p-fv__bottom-img02-txt p.bottom {
    margin-bottom: 0;
  }

  .p-link {
    margin-bottom: 150px;
  }

  .p-link .l-link {
    margin-inline: auto;
    width: min(95%, 1020px);
  }

  .p-link .p-link__items {
    display: grid;
    gap: 0 61px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .p-link .p-link__item a {
    display: block;
  }

  .p-link .p-link__item a img {
    height: auto;
    width: 100%;
  }
}

/* ========================================
@media screen and (min-width:768px) and ( max-width:1000px) {
======================================== */
@media screen and (min-width: 768px) and (max-width: 1000px) {
  .p-fv .p-fv__bottom-img.--right img {
    height: auto;
    width: 37.5vw;
  }

  .p-fv .p-fv__bottom-img.--left img {
    height: auto;
    width: 34.3vw;
  }
}

/* ========================================
  @media screen and (max-width: 767px)
======================================== */
@media screen and (max-width: 767px) {
  .p-fv .p-fv__img {
    margin-bottom: 12.077vw;
    text-align: center;
  }

  .p-fv .p-fv__img img {
    height: auto;
    width: 100%;
  }

  .p-fv .p-fv__txt {
    font-size: 4.348vw;
    font-weight: 400;
    letter-spacing: 0.06em;
    line-height: 2.2222222222;
    margin-bottom: 5.28vw;
    text-align: center;
  }

  .p-fv .p-fv__scrolldown {
    animation: scroll 2s infinite;
    background: #403f3f;
    height: 14.493vw;
    margin-bottom: 3.213vw;
    margin-inline: auto;
    width: 0.242vw;
  }

  .p-fv .p-fv__txt02 {
    margin-bottom: 23.155vw;
  }

  .p-fv .p-fv__txt02 p {
    font-size: 3.382vw;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 2.7142857143;
    margin-bottom: 8.7vw;
    text-align: center;
  }

  .p-fv .p-fv__txt02 p:last-child {
    margin-bottom: 0;
  }

  .p-fv .p-fv__bottom {
    margin-inline: auto;
    position: relative;
    width: 100%;
  }

  .p-fv .p-fv__bottom-img.--right {
    position: absolute;
    right: 0;
    top: 19.696vw;
  }

  .p-fv .p-fv__bottom-img.--right img {
    height: auto;
    width: 34.3vw;
  }

  .p-fv .p-fv__bottom-img.--left {
    left: 0;
    position: absolute;
    top: 56.556vw;
  }

  .p-fv .p-fv__bottom-img.--left img {
    height: auto;
    width: 37.401vw;
  }

  .p-fv .p-fv__bottom-txt {
    margin-bottom: 24.155vw;
    text-align: center;
  }

  .p-fv .p-fv__bottom-txt p {
    font-size: 3.382vw;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 1.1428571429;
    margin-bottom: 19.155vw;
  }

  .p-fv .p-fv__bottom-txt p.bottom {
    font-size: 3.382vw;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 2.7142857143;
    margin-bottom: 0;
  }

  .p-fv .p-fv__bottom-txt .row {
    align-items: flex-start;
    display: flex;
    gap: 0 7.246vw;
    justify-content: center;
    margin-bottom: 17.324vw;
  }

  .p-fv .p-fv__bottom-txt .row p {
    font-size: 3.865vw;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 1.125;
    margin-bottom: 0;
    writing-mode: vertical-rl;
    letter-spacing: 0.15em;
  }

  .p-fv .p-fv__bottom-img02 {
    background: url(../images/message/fv_img_bottom_sp.jpg) no-repeat top
      center/cover;
    margin-bottom: 24.155vw;
    margin-inline: auto;
    max-width: 100%;
    padding-block: 17.077vw 53.077vw;
    width: 100%;
  }

  .p-fv .p-fv__bottom-img02-txt {
    margin-inline: auto;
    width: min(95%, 60.8695652174vw);
  }

  .p-fv .p-fv__bottom-img02-txt p {
    color: #ffffff;
    font-size: 3.382vw;
    font-weight: 400;
    letter-spacing: 0em;
    line-height: 2.7142857143;
    margin-bottom: 9.797vw;
  }

  .p-fv .p-fv__bottom-img02-txt p.top {
    font-size: 4.348vw;
    font-weight: 400;
    letter-spacing: 0.02em;
    line-height: 2.3333333333;
    margin-bottom: 3.797vw;
  }

  .p-fv .p-fv__bottom-img02-txt p.bottom {
    margin-bottom: 0;
  }

  .p-link {
    margin-bottom: 24.155vw;
  }

  .p-link .l-link {
    margin-inline: auto;
    width: min(95%, 91.7vw);
  }

  .p-link .p-link__items {
    display: grid;
    gap: 2.899vw 0;
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }

  .p-link .p-link__item a {
    display: block;
  }

  .p-link .p-link__item a img {
    height: auto;
    width: 100%;
  }
}
