/* =========================================
   FV Section
   ========================================= */
.fv {
  background-color: var(--color-base-dark);
  width: 100%;
  overflow: hidden;
}

.fv__inner {
  display: flex;
  max-width: 144rem;
  width: 100%; /* 明示的に100%を指定 */
  margin: 0 auto;
}

.fv__content {
  width: 64.7rem;
  position: relative;
  padding-top: 14.3rem;
  padding-left: 8.5rem;
}

.fv__text1 {
  font-family: var(--font-ja);
  font-weight: 500;
  font-size: 3.0rem;
  color: var(--color-white);
  letter-spacing: 0.34em;
  line-height: 1.5;
  margin-bottom: 3.3rem;
}

.fv__text2 {
  font-family: var(--font-ja);
  font-weight: 500;
  font-size: 4.5rem;
  color: var(--color-white);
  letter-spacing: 0.20em;
  line-height: 1.4;
  margin-bottom: 4.8rem;
}

.fv__text2-small {
  font-size: 2.6rem;
}

.fv__text3 {
  font-family: var(--font-ja);
  font-weight: 500;
  font-size: 1.6rem;
  color: var(--color-white);
  letter-spacing: 0.20em;
  line-height: 2.9rem;
  margin-bottom: 3.8rem;
}

.fv__btn {
  display: block;
  width: fit-content;
  margin-left: 0;
  margin-bottom: 10.8rem;
}

.fv__btn-img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
}

.fv__badges {
  position: absolute;
  top: 13.5rem;
  right: 5.3rem;
  display: flex;
  flex-direction: column;
  gap: 1.0rem;
}

.fv__badge {
  width: 12.1rem;
  height: 12.1rem;
  object-fit: contain;
}

.fv__image {
  width: 79.3rem;
  /* 親のflexの影響で高さは自動で揃うため、picture要素の幅と高さを100%にして追従させます */
}

.fv__image picture {
  display: block;
  width: 100%;
  height: 100%;
}

.fv__main-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* =========================================
   SP & Tablet Layout
   ========================================= */
@media (max-width: 1024px) {
  .fv__inner {
    flex-direction: column;
    width: 100%;
  }

  .fv__content {
    width: 100%;
    padding: 8rem 2rem 2.5rem 2rem;
    display: flex;
    flex-direction: column;
  }

  .fv__text1 {
    font-size: 1.5rem;
    letter-spacing: 0.27em;
    margin-bottom: 1.5rem;
  }

  .fv__text2 {
    font-size: 3.3rem;
    line-height: 1.3;
    margin-bottom: 2.0rem;
  }

  .fv__text2-small {
    font-size: 2.2rem;
  }

  .fv__text3 {
    font-size: 1.2rem;
    line-height: 2.4rem;
    letter-spacing: 0.12em;
    margin-bottom: 1.5rem;
  }

  .fv__btn {
    margin: 0;
    width: 100%;
    max-width: 33.5rem;
    margin-bottom: 0;
  }

  .fv__btn-img {
    width: 100%;
  }

  .fv__badges {
    top: 7.5rem;
    right: 1.0rem;
    flex-direction: row;
    gap: 0.5rem;
  }

  .fv__badge {
    width: 6.8rem;
    height: 6.8rem;
  }

  .fv__image {
    width: 100%;
    margin-top: 0;
  }

  .fv__image picture {
    display: block;
    width: 100%; /* これによりSP表示時に画像の横幅が100%に強制されます */
    height: auto;
  }

  .fv__main-img {
    width: 100%;
    height: auto;
  }
}