.hero__container {
  height: 814px;
  width: 100%;
  background: linear-gradient(180deg, #cce3ef 0%, #b2d4e6 100%);
}

.main-visual {
  position: relative;
  padding: 100px 20px 0 20px;
  width: 100%;
  height: 100%;
  background-image: url(../images/fv/bg_talents_sp.webp);
  background-repeat: no-repeat;
  background-size: 375px;
  background-position: bottom right 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;

  &::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 375px;
    height: 79px;
    background-image: url(../images/fv/bg-parts.svg);
    background-repeat: no-repeat;
    background-size: cover;
  }
}

.main-visual__note {
  padding: 8px 20px;
}

.main-visual__inner {
  margin: 0 auto;
  max-width: 998px;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

@media (width >= 768px) {
  .main-visual {
    background-image: url(../images/fv/bg_talents_pc.webp);
  }
  .companies .main-visual {
    background-image: url(../images/fv/companies/bg_companies_pc.webp);
  }
}

.main-visual__title__main {
  margin: 0;
  font-size: 32px;
  font-weight: var(--font-weight-bold);
  margin-bottom: var(--spacing-md);
  line-height: 1.2;

  & .gradient-label {
    margin-right: 6px;
  }
}

.main-visual__title__sub {
  font-size: 18px;
  line-height: 1.3;
}

.main-visual__cta {
  max-width: 567px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.main-visual__icons {
  max-width: 392px;
  display: flex;
  margin: 0;
  padding: 0;
  justify-content: space-between;
  gap: 13.673px;

  & li {
    list-style: none;
    flex: 1;

    & img {
      width: 100%;
      height: auto;
    }
  }
}

@media (width >= 768px) {
  .hero__container {
    height: 530px;
  }

  .main-visual {
    padding-top: 88px;
    background-size: min(75%, 708px);

    & .cta-button--icon {
      width: fit-content;
      white-space: nowrap;
      padding: 16px 46px 16px 31px;
    }
  }

  .main-visual__inner {
    gap: 12px;
  }

  .main-visual__title {
    max-width: 577px;
    width: 100%;
  }

  .main-visual__title__main {
    font-size: 48px;
    line-height: 1.25;
  }

  .main-visual__cta {
    gap: 25px;
  }

  .main-visual__icons {
    gap: 16px;
  }
}

@media (width >= 768px) and (width < 1199px) {
  .main-visual {
    background-position: bottom 0 right -120px;
  }

  .main-visual__cta {
    max-width: 336px;
  }
}

@media (width >=1200px) {
  .main-visual {
    padding-top: 88px;

    &::before {
      width: 496px;
      height: 127px;
    }
  }
}

.companies-page {
  & .main-visual {
    background-image: url(../images/fv/companies/bg_companies_sp.webp);

    & .cta-button--icon {
      width: 100%;
      padding: 21px 13px 21px 16px;
    }
  }

  & .main-visual__title__main {
    margin-bottom: 0;
    line-height: 1.3;
  }

  & .main-visual__cta-buttons {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
}

@media (width >= 768px) {
  .companies-page {
    & .main-visual__cta-buttons {
      flex-direction: row;
      gap: 16px;
    }

    & .main-visual .cta-button--icon {
      padding: 16px 46px 16px 31px;
      width: fit-content;

      &.cta-button--secondary {
        padding: 16px 40px 16px 16px;
      }
    }
  }
}

@media (width >= 768px) and (width < 1199px) {
  .companies-page {
    .main-visual {
      background-position: bottom 0 right -50px;
      background-size: 49%;
    }
    .main-visual__title__main {
      font-size: 43px;
    }
  }
}

@media (width >= 1200px) {
  .companies-page {
    & .main-visual {
      background-image: url(../images/fv/companies/bg_companies_pc.webp);
      padding-top: 127px;
    }

    & .main-visual__title {
      max-width: 630px;
    }

    & .main-visual__inner {
      max-width: 1200px;
    }
  }
}
