:root {
  --catena-black: #000;
  --catena-white: #fff;
  --catena-gray: #d9d9d9;
}

.c-sub-hero-section {
  position: relative;
  width: 100vw;
  max-width: none;
  margin-left: calc(50% - 50vw);
}
.c-sub-hero-section .show-pc {
  display: block;
}
.c-sub-hero-section .show-sp {
  display: none;
}
@media (max-width: 600px) {
  .c-sub-hero-section .show-pc {
    display: none;
  }
  .c-sub-hero-section .show-sp {
    display: block;
  }
}

.c-sub-hero-section__main-visual {
  position: relative;
}
.c-sub-hero-section__main-visual__bg-block {
  height: 400px;
  background-color: var(--catena-black);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0% 100%);
  opacity: 0;
  width: 0;
  transition: width 0.5s ease, opacity 0.5s ease;
}
.c-sub-hero-section__main-visual__bg-block__title {
  padding-top: 150px;
  text-align: center;
  color: var(--catena-white);
  font-size: 40px;
  font-weight: 700;
  opacity: 0;
  transform: translateY(100px);
  transition: transform 1s ease, opacity 1s ease;
  transition-delay: 0.6s;
}
.c-sub-hero-section__main-visual__bg-block__sub-title {
  text-align: center;
  color: var(--catena-gray);
  opacity: 0;
  transform: translateY(60px);
  transition: transform 1s ease, opacity 1s ease;
  transition-delay: 0.7s;
}
.c-sub-hero-section__main-visual__image {
  opacity: 0;
  width: 40%;
  max-width: 650px;
  height: auto;
  position: absolute;
  right: 10%;
  bottom: 0;
  z-index: 10;
  transform: translateX(500px);
  transition: transform 1s ease, opacity 1s ease;
  transition-delay: 1.0s;
}

.c-sub-hero-section.is-animate .c-sub-hero-section__main-visual__bg-block {
  width: 100%;
  opacity: 1;
}
.c-sub-hero-section.is-animate .c-sub-hero-section__main-visual__bg-block__title {
  opacity: 1;
  transform: translateY(0);
}
.c-sub-hero-section.is-animate .c-sub-hero-section__main-visual__bg-block__sub-title {
  opacity: 1;
  transform: translateY(0);
}
.c-sub-hero-section.is-animate .c-sub-hero-section__main-visual__image {
  opacity: 1;
  transform: translateX(120px);
}

.c-sub-hero-section__sp {
  background-color: var(--catena-black);
  height: 180px;
  padding-top: 50px;
}
.c-sub-hero-section__sp__title {
  text-align: center;
  color: var(--catena-white);
  font-size: 26px;
  font-weight: 700;
}
.c-sub-hero-section__sp__sub {
  text-align: center;
  color: var(--catena-gray);
  padding: 8px;
}
