@media screen and (min-width: 769px) {
  .header_outer.is-top {
    background: none;
    color: #fff;
  }
}
@media screen and (max-width: 768px) {
  .header_outer.is-top:not(.is-opened) {
    background: none;
  }
  .header_outer.is-top:not(.is-opened) .nav_switch::before, .header_outer.is-top:not(.is-opened) .nav_switch::after, .header_outer.is-top:not(.is-opened) .nav_switch span {
    background: #fff;
  }
}
@media screen and (min-width: 769px) {
  .header_outer.is-top .header_inner {
    height: 8rem;
  }
}
.header_outer.is-top .header_logo {
  background: #fff;
  border-radius: 0 0 5rem 0;
}
@media screen and (min-width: 769px) {
  .header_outer.is-top .header_logo {
    width: 25.8rem;
    height: 21.7rem;
    margin-top: 0;
    padding: 4.1rem 0 4rem 3.7rem;
  }
}
@media screen and (max-width: 768px) {
  .header_outer.is-top .header_logo {
    width: 23.1rem;
    height: 19.4rem;
    padding: 3.4rem 0 3.4rem 3.4rem;
  }
}
.header_outer.is-top .header_logo > * {
  display: none;
}
.header_outer.is-top .header_logo .top {
  display: block;
}
@media screen and (max-width: 768px) {
  .header_outer.is-top .nav_list {
    padding-top: 24.4rem;
  }
}
.header_logo .top {
  display: none;
}

.kv_section {
  position: relative;
}
.kv_section.is-animated .kv_image figure {
  opacity: 1;
}
.kv_section.is-animated .kv_copy {
  opacity: 1;
}
.kv_image {
  display: grid;
  position: relative;
  height: 100%;
}
@media screen and (min-width: 769px) {
  .kv_image {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (max-width: 768px) {
  .kv_image {
    grid-template-rows: repeat(2, 1fr);
  }
}
.kv_image figure {
  opacity: 0;
  transition: opacity 0.4s linear;
}
@media screen and (min-width: 769px) {
  .kv_image figure {
    height: 79rem;
    max-height: 100svh;
  }
}
@media screen and (max-width: 768px) {
  .kv_image figure {
    height: 66.7rem;
    max-height: 50svh;
  }
}
.kv_image figure img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}
.kv_image figure:nth-of-type(2) {
  transition-delay: 0.4s;
}
.kv_copy {
  position: absolute;
  top: 50%;
  left: 50%;
  opacity: 0;
  translate: -50% -50%;
  transition: opacity 0.4s linear 0.8s;
}
@media screen and (min-width: 769px) {
  .kv_copy {
    width: 58.4rem;
  }
}
@media screen and (max-width: 768px) {
  .kv_copy {
    width: 64.2rem;
  }
}

.about_section {
  position: relative;
}
@media screen and (min-width: 769px) {
  .about_section {
    padding: 11rem 0 0;
  }
}
@media screen and (max-width: 768px) {
  .about_section {
    padding: 7rem 0 0;
  }
}
.about_inner {
  display: flex;
  align-items: center;
  margin: 0 auto;
}
@media screen and (min-width: 769px) {
  .about_inner {
    column-gap: 9rem;
    max-width: 120rem;
  }
}
@media screen and (max-width: 768px) {
  .about_inner {
    flex-direction: column;
    row-gap: 4rem;
  }
}
.about_image {
  position: relative;
  overflow: hidden;
}
@media screen and (min-width: 769px) {
  .about_image {
    flex-shrink: 0;
    border-radius: 5rem;
    width: 52.5rem;
  }
}
@media screen and (max-width: 768px) {
  .about_image {
    order: 2;
  }
}
.about_caption {
  display: flex;
  flex-direction: column;
  row-gap: 3rem;
}
@media screen and (min-width: 769px) {
  .about_caption {
    width: 100%;
    padding-top: 0.7rem;
  }
}
@media screen and (max-width: 768px) {
  .about_caption {
    width: 65rem;
  }
}
.about_lead {
  letter-spacing: 0.04em;
  font-weight: 700;
}
@media screen and (min-width: 769px) {
  .about_lead {
    line-height: 1.55;
    font-size: 4rem;
  }
}
@media screen and (max-width: 768px) {
  .about_lead {
    line-height: 1.378;
    font-size: 5.3rem;
  }
}
.about_copy {
  letter-spacing: 0.04em;
  font-weight: 700;
  color: #ef0000;
}
@media screen and (min-width: 769px) {
  .about_copy {
    padding: 2.5rem 0;
    line-height: 1;
    font-size: 2.5rem;
  }
}
@media screen and (max-width: 768px) {
  .about_copy {
    padding: 2rem 0;
    line-height: 1.477;
    font-size: 4.2rem;
  }
}
.about_text {
  letter-spacing: 0.04em;
  font-weight: 500;
}
@media screen and (min-width: 769px) {
  .about_text {
    line-height: 2.125;
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 768px) {
  .about_text {
    line-height: 1.786;
    font-size: 2.8rem;
  }
}

.interview_section {
  position: relative;
  padding: 12rem 0 0;
  overflow: hidden;
}
.interview_inner {
  position: relative;
  margin: 0 auto;
}
@media screen and (min-width: 769px) {
  .interview_inner {
    max-width: 120rem;
  }
}
@media screen and (max-width: 768px) {
  .interview_inner {
    max-width: 65rem;
  }
}
.interview_head {
  display: flex;
}
@media screen and (min-width: 769px) {
  .interview_head {
    align-items: baseline;
  }
}
@media screen and (max-width: 768px) {
  .interview_head {
    flex-direction: column;
    align-items: flex-start;
    row-gap: 2rem;
  }
}
@media screen and (min-width: 769px) {
  .interview_head h2 {
    width: 41.2rem;
  }
}
@media screen and (max-width: 768px) {
  .interview_head h2 {
    width: 48.7rem;
  }
}
.interview_head p {
  letter-spacing: 0.04em;
  line-height: 1;
  font-weight: 700;
  color: #ef0000;
}
@media screen and (min-width: 769px) {
  .interview_head p {
    font-size: 1.8rem;
  }
}
@media screen and (max-width: 768px) {
  .interview_head p {
    font-size: 3rem;
  }
}
@media screen and (min-width: 769px) {
  .interview_swiper {
    padding-top: 5.5rem;
  }
}
@media screen and (max-width: 768px) {
  .interview_swiper {
    padding-bottom: 6rem;
  }
}
.interview_swiper .swiper-pagination {
  display: flex;
  justify-content: center;
  column-gap: 1rem;
  left: 0;
  right: 0;
  bottom: 0;
}
@media screen and (min-width: 769px) {
  .interview_swiper .swiper-pagination {
    display: none;
  }
}
.interview_swiper .swiper-pagination-dot {
  background: #bebebe;
  border-radius: 50%;
  width: 1.6rem;
  height: 1.6rem;
  margin: 0 !important;
  opacity: 1 !important;
  cursor: pointer;
}
.interview_swiper .swiper-pagination-dot.is-active {
  background: #ef0000;
}
.interview_card {
  display: flex;
  flex-direction: column;
  position: relative;
}
@media screen and (min-width: 769px) {
  .interview_card {
    row-gap: 2rem;
    padding-right: 6rem;
    margin-top: 6.5rem;
  }
}
@media screen and (max-width: 768px) {
  .interview_card {
    row-gap: 2.5rem;
    padding: 0 2.5rem;
  }
}
@media screen and (min-width: 769px) {
  .swiper-slide:nth-of-type(2n+1) .interview_card {
    translate: 0 -6.5rem;
  }
}
.interview_card_image {
  position: relative;
  overflow: hidden;
}
@media screen and (min-width: 769px) {
  .interview_card_image {
    border-radius: 31rem;
    height: 43rem;
  }
}
@media screen and (max-width: 768px) {
  .interview_card_image {
    border-radius: 45rem;
    height: 62.4rem;
  }
}
.interview_card_image img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  transition: scale 0.4s ease;
}
.interview_card_lead {
  letter-spacing: 0.04em;
  font-weight: 700;
  text-align: center;
}
@media screen and (min-width: 769px) {
  .interview_card_lead {
    line-height: 1.305;
    font-size: 2.3rem;
  }
}
@media screen and (max-width: 768px) {
  .interview_card_lead {
    line-height: 1.445;
    font-size: 3.6rem;
  }
}
.interview_card_text {
  letter-spacing: 0.02em;
  font-weight: 500;
  text-align: center;
}
@media screen and (min-width: 769px) {
  .interview_card_text {
    line-height: 1.4;
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 768px) {
  .interview_card_text {
    line-height: 1.4;
    font-size: 2.5rem;
  }
}
.interview_card:hover {
  color: #ef0000;
}
.interview_card:hover .interview_card_image img {
  scale: 1.1;
}

.features_section {
  background: #ef0000;
  margin-top: 12rem;
  color: #fff;
}
@media screen and (min-width: 769px) {
  .features_section {
    border-radius: 10rem 10rem 0 0;
    padding: 12rem 0 23rem;
  }
}
@media screen and (max-width: 768px) {
  .features_section {
    border-radius: 8rem 8rem 0 0;
    padding: 11.5rem 0 23rem;
  }
}
.features_inner {
  position: relative;
  margin: 0 auto;
}
@media screen and (min-width: 769px) {
  .features_inner {
    max-width: 120rem;
  }
}
@media screen and (max-width: 768px) {
  .features_inner {
    width: 65rem;
  }
}
.features_head {
  display: flex;
  align-items: baseline;
}
@media screen and (min-width: 769px) {
  .features_head {
    column-gap: 0.7rem;
  }
}
@media screen and (max-width: 768px) {
  .features_head {
    flex-direction: column;
    row-gap: 2.5rem;
  }
}
@media screen and (min-width: 769px) {
  .features_head h2 {
    width: 38.6rem;
  }
}
@media screen and (max-width: 768px) {
  .features_head h2 {
    width: 45.6rem;
  }
}
.features_head p {
  letter-spacing: 0.04em;
  line-height: 1;
  font-weight: 700;
}
@media screen and (min-width: 769px) {
  .features_head p {
    font-size: 1.8rem;
  }
}
@media screen and (max-width: 768px) {
  .features_head p {
    font-size: 3rem;
  }
}
.features_list {
  counter-reset: features_list;
  display: flex;
}
@media screen and (min-width: 769px) {
  .features_list {
    column-gap: 6rem;
    padding-top: 2rem;
  }
}
@media screen and (max-width: 768px) {
  .features_list {
    flex-direction: column;
    row-gap: 9rem;
    padding-top: 7.5rem;
  }
}
.features_list > li {
  counter-increment: features_list;
  position: relative;
}
.features_list > li::after {
  content: counter(features_list, decimal-leading-zero);
  display: flex;
  justify-content: center;
  align-items: flex-end;
  position: absolute;
  background-image: url(../img/index/number_bg_w.png);
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
  width: 2.348em;
  height: 2.87em;
  top: 0;
  left: 0;
  padding: 0 0 0.305em;
  font-weight: 900;
  font-family: "Roboto", sans-serif;
  font-style: italic;
  color: #ef0000;
  pointer-events: none;
}
@media screen and (min-width: 769px) {
  .features_list > li::after {
    font-size: 2.3rem;
    translate: 35.186% -57.575%;
  }
}
@media screen and (max-width: 768px) {
  .features_list > li::after {
    font-size: 3.4rem;
    translate: 2.5% -47.916%;
  }
}
@media screen and (min-width: 769px) {
  .features_list > li:nth-of-type(1) {
    margin-top: 10rem;
  }
}
@media screen and (min-width: 769px) {
  .features_list > li:nth-of-type(2) {
    margin-top: 5rem;
  }
}
.features_detail {
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 769px) {
  .features_detail {
    align-items: center;
  }
}
.features_detail_image {
  position: relative;
  overflow: hidden;
}
@media screen and (min-width: 769px) {
  .features_detail_image {
    border-radius: 3rem;
  }
}
@media screen and (max-width: 768px) {
  .features_detail_image {
    border-radius: 5.4rem;
  }
}
.features_detail_head {
  letter-spacing: 0.04em;
  line-height: 1;
  font-weight: 700;
}
@media screen and (min-width: 769px) {
  .features_detail_head {
    width: 32rem;
    padding-top: 3rem;
    font-size: 3rem;
  }
}
@media screen and (max-width: 768px) {
  .features_detail_head {
    padding-top: 5rem;
    font-size: 4.5rem;
  }
}
.features_detail_text {
  letter-spacing: 0.04em;
  font-weight: 500;
  text-align: justify;
}
@media screen and (min-width: 769px) {
  .features_detail_text {
    width: 32rem;
    padding-top: 2rem;
    line-height: 1.875;
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 768px) {
  .features_detail_text {
    padding-top: 3rem;
    line-height: 1.778;
    font-size: 2.7rem;
  }
}

.work_section {
  background: #fff;
  overflow: hidden;
}
@media screen and (min-width: 769px) {
  .work_section {
    border-radius: 10rem 10rem 0 0;
    margin-top: -11rem;
    padding: 10.5rem 0 24rem;
  }
}
@media screen and (max-width: 768px) {
  .work_section {
    border-radius: 8rem 8rem 0 0;
    margin-top: -12rem;
    padding: 12rem 0 23rem;
  }
}
.work_inner {
  position: relative;
  margin: 0 auto;
}
@media screen and (min-width: 769px) {
  .work_inner {
    max-width: 120rem;
  }
}
@media screen and (max-width: 768px) {
  .work_inner {
    width: 65rem;
  }
}
.work_caption {
  display: grid;
}
@media screen and (min-width: 769px) {
  .work_caption {
    grid-template-columns: max-content 1fr;
    grid-template-rows: auto auto;
    gap: 2.5rem 7.5rem;
  }
}
.work_head {
  display: flex;
  align-items: baseline;
}
@media screen and (min-width: 769px) {
  .work_head {
    grid-column: 1/2;
    grid-row: 1/3;
    column-gap: 0.8rem;
    padding-top: 0.5rem;
  }
}
@media screen and (max-width: 768px) {
  .work_head {
    flex-direction: column;
    row-gap: 2.5rem;
  }
}
@media screen and (min-width: 769px) {
  .work_head h2 {
    width: 22.6rem;
  }
}
@media screen and (max-width: 768px) {
  .work_head h2 {
    width: 26.8rem;
  }
}
.work_head p {
  letter-spacing: 0.04em;
  line-height: 1;
  font-weight: 700;
  color: #ef0000;
}
@media screen and (min-width: 769px) {
  .work_head p {
    font-size: 1.8rem;
  }
}
@media screen and (max-width: 768px) {
  .work_head p {
    font-size: 3rem;
  }
}
.work_lead {
  letter-spacing: 0.04em;
  font-weight: 700;
}
@media screen and (min-width: 769px) {
  .work_lead {
    line-height: 1.55;
    font-size: 4rem;
  }
}
@media screen and (max-width: 768px) {
  .work_lead {
    padding-top: 6rem;
    line-height: 1.378;
    font-size: 5.3rem;
  }
}
.work_text {
  letter-spacing: 0.04em;
  font-weight: 500;
}
@media screen and (min-width: 769px) {
  .work_text {
    line-height: 1.875;
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 768px) {
  .work_text {
    padding-top: 3rem;
    line-height: 1.778;
    font-size: 2.7rem;
  }
}
.work_detail {
  display: flex;
}
@media screen and (min-width: 769px) {
  .work_detail {
    grid-column: 1/3;
    column-gap: 7rem;
    margin-top: 6.5rem;
  }
}
@media screen and (max-width: 768px) {
  .work_detail {
    flex-direction: column;
    margin-top: 6rem;
  }
}
.work_detail + .work_detail {
  margin-top: 9rem;
}
.work_detail_image {
  position: relative;
  overflow: hidden;
}
@media screen and (min-width: 769px) {
  .work_detail_image {
    flex-shrink: 0;
    border-radius: 5rem;
    width: 70rem;
  }
}
@media screen and (max-width: 768px) {
  .work_detail_image {
    order: -1;
    border-radius: 5.4rem;
    width: 76rem;
    margin: 0 auto 0 -11rem;
  }
}
@media screen and (min-width: 769px) {
  .work_detail_image + .work_detail_caption {
    padding: 0 8rem 0.7rem 0;
  }
}
.work_detail_caption {
  display: flex;
  flex-direction: column;
  width: 100%;
}
@media screen and (min-width: 769px) {
  .work_detail_caption {
    justify-content: center;
    row-gap: 2.5rem;
    padding: 0 0 0.7rem 8rem;
  }
}
@media screen and (max-width: 768px) {
  .work_detail_caption {
    row-gap: 2rem;
    padding-top: 6rem;
  }
}
@media screen and (max-width: 768px) {
  .work_detail_caption + .work_detail_image {
    margin: 0 -11rem 0 auto;
  }
}
.work_detail_head {
  letter-spacing: 0.04em;
  line-height: 1;
  font-weight: 700;
  color: #ef0000;
}
@media screen and (min-width: 769px) {
  .work_detail_head {
    font-size: 3.5rem;
  }
}
@media screen and (max-width: 768px) {
  .work_detail_head {
    font-size: 4.5rem;
  }
}
.work_detail_text {
  letter-spacing: 0.04em;
  font-weight: 500;
  text-align: justify;
}
@media screen and (min-width: 769px) {
  .work_detail_text {
    line-height: 1.875;
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 768px) {
  .work_detail_text {
    line-height: 1.778;
    font-size: 2.7rem;
  }
}

.career_section {
  background: #ef0000;
  color: #fff;
}
@media screen and (min-width: 769px) {
  .career_section {
    border-radius: 10rem 10rem 0 0;
    margin-top: -12rem;
    padding: 12rem 0 24rem;
  }
}
@media screen and (max-width: 768px) {
  .career_section {
    border-radius: 8rem 8rem 0 0;
    margin-top: -11.5rem;
    padding: 11.5rem 0 23.5rem;
  }
}
.career_inner {
  display: grid;
  position: relative;
  margin: 0 auto;
}
@media screen and (min-width: 769px) {
  .career_inner {
    grid-template-columns: 1fr 47rem;
    grid-template-rows: min-content min-content 1fr;
    max-width: 120rem;
  }
}
@media screen and (max-width: 768px) {
  .career_inner {
    width: 65rem;
  }
}
.career_head {
  display: flex;
  align-items: baseline;
}
@media screen and (max-width: 768px) {
  .career_head {
    flex-direction: column;
    row-gap: 3rem;
  }
}
@media screen and (min-width: 769px) {
  .career_head h2 {
    width: 29.9rem;
  }
}
@media screen and (max-width: 768px) {
  .career_head h2 {
    width: 35.4rem;
  }
}
.career_head p {
  letter-spacing: 0.04em;
  line-height: 1;
  font-weight: 700;
}
@media screen and (min-width: 769px) {
  .career_head p {
    margin-left: -0.6rem;
    font-size: 1.8rem;
  }
}
@media screen and (max-width: 768px) {
  .career_head p {
    font-size: 3rem;
  }
}
.career_caption {
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 769px) {
  .career_caption {
    row-gap: 2.5rem;
    padding-top: 6rem;
    padding-bottom: 5.5rem;
  }
}
@media screen and (max-width: 768px) {
  .career_caption {
    row-gap: 3rem;
    padding-top: 6rem;
    padding-bottom: 5rem;
  }
}
.career_lead {
  letter-spacing: 0.04em;
  font-weight: 700;
}
@media screen and (min-width: 769px) {
  .career_lead {
    line-height: 1.55;
    font-size: 4rem;
  }
}
@media screen and (max-width: 768px) {
  .career_lead {
    line-height: 1.378;
    font-size: 5.3rem;
  }
}
.career_text {
  letter-spacing: 0.04em;
  font-weight: 500;
}
@media screen and (min-width: 769px) {
  .career_text {
    line-height: 1.875;
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 768px) {
  .career_text {
    line-height: 1.778;
    font-size: 2.7rem;
  }
}
.career_image {
  position: relative;
  border-radius: 5rem;
  overflow: hidden;
}
@media screen and (min-width: 769px) {
  .career_image {
    width: 63.7rem;
    height: 40.2rem;
  }
}
.career_steps {
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 769px) {
  .career_steps {
    grid-column: 2/3;
    grid-row: 1/4;
    row-gap: 4rem;
  }
}
@media screen and (max-width: 768px) {
  .career_steps {
    row-gap: 6rem;
    padding-top: 6rem;
  }
}
.career_steps > li {
  position: relative;
}
.career_steps > li::after {
  content: "";
  aspect-ratio: 7/8;
  position: absolute;
  background-image: url(../img/index/career_arrow.png);
  background-position: bottom top;
  background-repeat: no-repeat;
  background-size: 100% auto;
  top: 100%;
  left: 0;
  right: 0;
  margin: 0 auto;
  pointer-events: none;
}
@media screen and (min-width: 769px) {
  .career_steps > li::after {
    width: 2.8rem;
  }
}
@media screen and (max-width: 768px) {
  .career_steps > li::after {
    width: 4.2rem;
  }
}
.career_steps > li:last-of-type::after {
  display: none;
}
.career_step {
  background: #fff;
  color: #000;
}
@media screen and (min-width: 769px) {
  .career_step {
    border-radius: 1rem;
    padding: 2rem 3.5rem 3rem;
  }
}
@media screen and (max-width: 768px) {
  .career_step {
    border-radius: 1.4rem;
    padding: 3.2rem 5.5rem 4rem;
  }
}
.career_step_head {
  display: flex;
  align-items: flex-end;
  position: relative;
  color: #ef0000;
}
@media screen and (min-width: 769px) {
  .career_step_head {
    column-gap: 0.8rem;
    height: 5.2rem;
    padding: 0 0 0.4rem 5rem;
  }
}
@media screen and (max-width: 768px) {
  .career_step_head {
    column-gap: 1.4rem;
    height: 7rem;
    padding: 0 0 0.4rem 7rem;
  }
}
.career_step_head > * {
  pointer-events: none;
}
.career_step_head span {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  position: absolute;
  background-image: url(../img/index/number_bg_r.png);
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
  width: 2.348em;
  height: 2.87em;
  left: 0;
  bottom: 0;
  padding: 0 0 0.305em;
  font-weight: 900;
  font-family: "Roboto", sans-serif;
  font-style: italic;
  color: #fff;
  pointer-events: none;
}
@media screen and (min-width: 769px) {
  .career_step_head span {
    font-size: 1.8rem;
  }
}
@media screen and (max-width: 768px) {
  .career_step_head span {
    font-size: 2.5rem;
  }
}
.career_step_head h4 {
  letter-spacing: -0.01em;
  line-height: 1;
  font-weight: 900;
  font-family: "Roboto", sans-serif;
  font-style: italic;
}
@media screen and (min-width: 769px) {
  .career_step_head h4 {
    font-size: 3.5rem;
  }
}
@media screen and (max-width: 768px) {
  .career_step_head h4 {
    font-size: 5rem;
  }
}
.career_step_head p {
  letter-spacing: 0.01em;
  line-height: 1;
  font-weight: 700;
}
@media screen and (min-width: 769px) {
  .career_step_head p {
    padding-bottom: 0.7rem;
    font-size: 2rem;
  }
}
@media screen and (max-width: 768px) {
  .career_step_head p {
    padding-bottom: 0.95rem;
    font-size: 2.5rem;
  }
}
.career_step_head.js-accSwitch {
  cursor: pointer;
}
.career_step_head.js-accSwitch::before, .career_step_head.js-accSwitch::after {
  content: "";
  position: absolute;
  background: #ef0000;
  border-radius: 3px;
  height: 3px;
  right: 0;
}
@media screen and (min-width: 769px) {
  .career_step_head.js-accSwitch::before, .career_step_head.js-accSwitch::after {
    width: 2.3rem;
    bottom: 2.1rem;
  }
}
@media screen and (max-width: 768px) {
  .career_step_head.js-accSwitch::before, .career_step_head.js-accSwitch::after {
    width: 3rem;
    bottom: 2.5rem;
  }
}
.career_step_head.js-accSwitch::after {
  transform: rotateZ(90deg);
}
.career_step_head.js-accSwitch.is-opened::after {
  display: none;
}
.career_step_head.js-accSwitch:hover {
  opacity: 0.5;
}
@media screen and (min-width: 769px) {
  .career_step_detail {
    padding-top: 2.5rem;
  }
}
@media screen and (max-width: 768px) {
  .career_step_detail {
    padding-top: 5rem;
  }
}
.career_step_text {
  letter-spacing: 0.04em;
  font-weight: 500;
}
@media screen and (min-width: 769px) {
  .career_step_text {
    line-height: 1.625;
    font-size: 1.6rem;
  }
  .career_step_text > p {
    line-height: inherit;
    font: inherit;
  }
  .career_step_text > p:first-of-type {
    margin-top: -0.312em;
  }
  .career_step_text > p:last-of-type {
    margin-bottom: -0.312em;
  }
}
@media screen and (max-width: 768px) {
  .career_step_text {
    line-height: 1.778;
    font-size: 2.7rem;
  }
  .career_step_text > p {
    line-height: inherit;
    font: inherit;
  }
  .career_step_text > p:first-of-type {
    margin-top: -0.388em;
  }
  .career_step_text > p:last-of-type {
    margin-bottom: -0.388em;
  }
}

.message_section {
  background: #fff;
}
@media screen and (min-width: 769px) {
  .message_section {
    border-radius: 10rem 10rem 0 0;
    margin-top: -12rem;
    padding: 12rem 0 23rem;
  }
}
@media screen and (max-width: 768px) {
  .message_section {
    border-radius: 8rem 8rem 0 0;
    margin-top: -11.5rem;
    padding: 11.5rem 0 25rem;
  }
}
.message_inner {
  display: grid;
  position: relative;
  margin: 0 auto;
}
@media screen and (min-width: 769px) {
  .message_inner {
    grid-template-columns: 37.2rem 1fr;
    grid-template-rows: min-content 46.2rem auto;
    column-gap: 8rem;
    max-width: 120rem;
  }
}
@media screen and (max-width: 768px) {
  .message_inner {
    width: 65rem;
  }
}
.message_head {
  display: flex;
  align-items: baseline;
}
@media screen and (min-width: 769px) {
  .message_head {
    grid-column: 1/3;
    column-gap: 1.5rem;
    padding-bottom: 5.5rem;
  }
}
@media screen and (max-width: 768px) {
  .message_head {
    flex-direction: column;
  }
}
@media screen and (min-width: 769px) {
  .message_head h2 {
    width: 29.9rem;
  }
}
@media screen and (max-width: 768px) {
  .message_head h2 {
    width: 47rem;
  }
}
.message_head p {
  letter-spacing: 0.04em;
  line-height: 1;
  font-weight: 700;
  color: #ef0000;
}
@media screen and (min-width: 769px) {
  .message_head p {
    font-size: 1.8rem;
    translate: 0 -1.5rem;
  }
}
@media screen and (max-width: 768px) {
  .message_head p {
    font-size: 3rem;
  }
}
.message_image {
  position: relative;
  border-radius: 5rem;
  overflow: hidden;
}
@media screen and (min-width: 769px) {
  .message_image {
    margin-top: 0.8rem;
  }
}
@media screen and (max-width: 768px) {
  .message_image {
    margin-top: 7rem;
  }
}
@media screen and (min-width: 769px) {
  .message_caption {
    grid-column: 1/2;
    padding-top: 2.5rem;
  }
}
@media screen and (max-width: 768px) {
  .message_caption {
    grid-row: 4/5;
    padding-top: 4.5rem;
  }
}
.message_caption_text {
  letter-spacing: 0.04em;
  line-height: 1;
}
@media screen and (min-width: 769px) {
  .message_caption_text {
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 768px) {
  .message_caption_text {
    font-size: 2.6rem;
  }
}
.message_caption_name {
  letter-spacing: 0.04em;
  line-height: 1;
  font-weight: 500;
}
@media screen and (min-width: 769px) {
  .message_caption_name {
    padding-top: 1rem;
    font-size: 2.5rem;
  }
}
@media screen and (max-width: 768px) {
  .message_caption_name {
    padding-top: 2rem;
    font-size: 4.2rem;
  }
}
.message_detail {
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 769px) {
  .message_detail {
    grid-column: 2/3;
    grid-row: 2/4;
    row-gap: 3.5rem;
  }
}
@media screen and (max-width: 768px) {
  .message_detail {
    row-gap: 3rem;
    padding-top: 4rem;
  }
}
.message_lead {
  letter-spacing: 0.04em;
  font-weight: 700;
}
@media screen and (min-width: 769px) {
  .message_lead {
    line-height: 1.55;
    font-size: 4rem;
  }
}
@media screen and (max-width: 768px) {
  .message_lead {
    line-height: 1.378;
    font-size: 5.3rem;
  }
}
.message_text {
  display: flex;
  letter-spacing: -0.01em;
  text-align: justify;
}
@media screen and (min-width: 769px) {
  .message_text {
    column-gap: 5rem;
    line-height: 2;
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 768px) {
  .message_text {
    flex-direction: column;
    line-height: 1.778;
    font-size: 2.7rem;
  }
}
.message_text p {
  width: 100%;
}

.flow_section {
  background: #ef0000;
  margin-top: -12rem;
  color: #fff;
}
@media screen and (min-width: 769px) {
  .flow_section {
    border-radius: 10rem 10rem 0 0;
    padding: 12rem 0 23.5rem;
  }
}
@media screen and (max-width: 768px) {
  .flow_section {
    border-radius: 8rem 8rem 0 0;
    padding: 12rem 0 23rem;
  }
}
.flow_inner {
  position: relative;
  margin: 0 auto;
}
@media screen and (min-width: 769px) {
  .flow_inner {
    max-width: 120rem;
  }
}
@media screen and (max-width: 768px) {
  .flow_inner {
    width: 65rem;
  }
}
.flow_head {
  display: flex;
  flex-direction: column;
  align-items: center;
}
@media screen and (min-width: 769px) {
  .flow_head {
    row-gap: 2.5rem;
  }
}
@media screen and (max-width: 768px) {
  .flow_head {
    row-gap: 2rem;
  }
}
@media screen and (min-width: 769px) {
  .flow_head h2 {
    width: 20.4rem;
  }
}
@media screen and (max-width: 768px) {
  .flow_head h2 {
    width: 24rem;
  }
}
.flow_head p {
  letter-spacing: 0.04em;
  line-height: 1;
  font-weight: 700;
}
@media screen and (min-width: 769px) {
  .flow_head p {
    font-size: 1.8rem;
  }
}
@media screen and (max-width: 768px) {
  .flow_head p {
    font-size: 3rem;
  }
}
.flow_detail {
  margin: 0 auto;
}
@media screen and (min-width: 769px) {
  .flow_detail {
    max-width: 1000px;
    padding-top: 3rem;
  }
}
@media screen and (max-width: 768px) {
  .flow_detail {
    padding-top: 5.5rem;
  }
}
@media screen and (min-width: 769px) {
  .flow_detail + .flow_detail {
    padding-top: 8rem;
  }
}
@media screen and (max-width: 768px) {
  .flow_detail + .flow_detail {
    padding-top: 7rem;
  }
}
.flow_detail_head {
  display: flex;
  align-items: baseline;
  padding-bottom: 3rem;
}
@media screen and (min-width: 769px) {
  .flow_detail_head {
    gap: 2rem 0.5rem;
  }
}
@media screen and (max-width: 768px) {
  .flow_detail_head {
    gap: 2.5rem 2rem;
  }
}
.flow_detail_head.row {
  flex-direction: column;
  align-items: flex-start;
}
.flow_detail_head h3 {
  letter-spacing: 0.04em;
  line-height: 1;
  font-weight: 700;
}
@media screen and (min-width: 769px) {
  .flow_detail_head h3 {
    font-size: 3.5rem;
  }
}
@media screen and (max-width: 768px) {
  .flow_detail_head h3 {
    font-size: 4.5rem;
  }
}
.flow_detail_head p {
  letter-spacing: 0.04em;
  font-weight: 500;
}
@media screen and (min-width: 769px) {
  .flow_detail_head p {
    line-height: 1;
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 768px) {
  .flow_detail_head p {
    line-height: 1.63;
    font-size: 2.7rem;
  }
}
.flow_cards {
  display: flex;
}
@media screen and (min-width: 769px) {
  .flow_cards {
    justify-content: space-between;
    align-items: stretch;
  }
}
@media screen and (max-width: 768px) {
  .flow_cards {
    flex-direction: column;
    row-gap: 3rem;
  }
}
.flow_card {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: #fff;
  color: #000;
}
@media screen and (min-width: 769px) {
  .flow_card {
    border-radius: 1rem;
    width: 32.5rem;
    padding: 4.5rem 0;
  }
}
@media screen and (max-width: 768px) {
  .flow_card {
    border-radius: 2rem;
    padding: 8rem 0 9rem;
  }
}
.flow_card_head {
  display: flex;
  flex-direction: column;
  align-items: center;
}
@media screen and (min-width: 769px) {
  .flow_card_head {
    row-gap: 1rem;
  }
}
@media screen and (max-width: 768px) {
  .flow_card_head {
    row-gap: 2rem;
  }
}
.flow_card_head h4 {
  line-height: 1;
  font-weight: 700;
}
@media screen and (min-width: 769px) {
  .flow_card_head h4 {
    font-size: 2.8rem;
  }
}
@media screen and (max-width: 768px) {
  .flow_card_head h4 {
    font-size: 4.2rem;
  }
}
.flow_card_head p {
  line-height: 1;
  font-weight: 500;
}
@media screen and (min-width: 769px) {
  .flow_card_head p {
    font-size: 1.2rem;
  }
}
@media screen and (max-width: 768px) {
  .flow_card_head p {
    font-size: 2rem;
  }
}
@media screen and (min-width: 769px) {
  .flow_card_image {
    width: 13.7rem;
    margin-top: 2.5rem;
    margin-bottom: 2.5rem;
  }
}
@media screen and (max-width: 768px) {
  .flow_card_image {
    width: 22.4rem;
    margin-top: 5rem;
    margin-bottom: 5rem;
  }
}
.flow_summary {
  display: grid;
  grid-template-columns: max-content 1fr;
  align-items: center;
}
@media screen and (min-width: 769px) {
  .flow_summary {
    gap: 1rem 0.8rem;
    min-width: 26rem;
  }
}
@media screen and (max-width: 768px) {
  .flow_summary {
    gap: 1.7rem 1.2rem;
    min-width: 50rem;
    padding-top: 1rem;
  }
}
.flow_summary > dt {
  grid-column: 1/2;
  display: flex;
  justify-content: center;
  align-items: center;
  background: #ffc800;
  padding: 0 0.667em;
  font-weight: 700;
}
@media screen and (min-width: 769px) {
  .flow_summary > dt {
    border-radius: 0.5rem;
    line-height: 2;
    font-size: 1.2rem;
  }
}
@media screen and (max-width: 768px) {
  .flow_summary > dt {
    border-radius: 0.8rem;
    line-height: 2.05;
    font-size: 2rem;
  }
}
.flow_summary > dd {
  grid-column: 2/3;
  font-weight: 500;
}
@media screen and (min-width: 769px) {
  .flow_summary > dd {
    line-height: 1.5;
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 768px) {
  .flow_summary > dd {
    line-height: 1.63;
    font-size: 2.7rem;
  }
}
.flow_list {
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 769px) {
  .flow_list {
    row-gap: 1.5rem;
  }
}
@media screen and (max-width: 768px) {
  .flow_list {
    row-gap: 1.1rem;
  }
}
.flow_list > li {
  display: flex;
  align-items: flex-start;
  position: relative;
}
@media screen and (min-width: 769px) {
  .flow_list > li {
    column-gap: 0.7rem;
  }
}
@media screen and (max-width: 768px) {
  .flow_list > li {
    column-gap: 1.4rem;
  }
}
.flow_list > li::before {
  content: "";
  flex-shrink: 0;
  display: block;
  aspect-ratio: 9/11;
  background-image: url(../img/base/arrow2_r.svg);
  background-position: left center;
  background-repeat: no-repeat;
  background-size: contain;
}
@media screen and (min-width: 769px) {
  .flow_list > li::before {
    width: 0.9rem;
    margin-top: 0.7rem;
  }
}
@media screen and (max-width: 768px) {
  .flow_list > li::before {
    width: 1.4rem;
    margin-top: 1.35rem;
  }
}
.flow_list_text {
  font-weight: 500;
}
@media screen and (min-width: 769px) {
  .flow_list_text {
    line-height: 1.5;
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 768px) {
  .flow_list_text {
    line-height: 1.63;
    font-size: 2.7rem;
  }
}
.flow_list_text small {
  font-size: 0.875em;
}

.recruit_section {
  background: #fff;
  margin-top: -11rem;
}
@media screen and (min-width: 769px) {
  .recruit_section {
    border-radius: 10rem 10rem 0 0;
    padding: 11rem 0 7rem;
  }
}
@media screen and (max-width: 768px) {
  .recruit_section {
    border-radius: 8rem 8rem 0 0;
    padding: 11rem 0 9rem;
  }
}
.recruit_inner {
  position: relative;
  margin: 0 auto;
}
@media screen and (min-width: 769px) {
  .recruit_inner {
    max-width: 120rem;
  }
}
@media screen and (max-width: 768px) {
  .recruit_inner {
    width: 65rem;
  }
}
.recruit_head {
  display: flex;
  flex-direction: column;
  align-items: center;
}
@media screen and (min-width: 769px) {
  .recruit_head {
    row-gap: 2.5rem;
    margin-bottom: 6rem;
  }
}
@media screen and (max-width: 768px) {
  .recruit_head {
    row-gap: 2rem;
    margin-bottom: 7rem;
  }
}
@media screen and (min-width: 769px) {
  .recruit_head h2 {
    width: 32.4rem;
  }
}
@media screen and (max-width: 768px) {
  .recruit_head h2 {
    width: 38.2rem;
  }
}
.recruit_head p {
  letter-spacing: 0.04em;
  line-height: 1;
  font-weight: 700;
  color: #ef0000;
}
@media screen and (min-width: 769px) {
  .recruit_head p {
    font-size: 1.8rem;
  }
}
@media screen and (max-width: 768px) {
  .recruit_head p {
    font-size: 3rem;
  }
}
.recruit_detail {
  display: grid;
  gap: 1px;
  background: #ef0000;
  margin: 0 auto;
  padding: 1px 0;
}
@media screen and (min-width: 769px) {
  .recruit_detail {
    grid-template-columns: 23.7rem 1fr;
    max-width: 1000px;
  }
}
@media screen and (max-width: 768px) {
  .recruit_detail {
    grid-template-columns: 18rem 1fr;
  }
}
.recruit_detail_dt {
  display: flex;
  align-items: center;
  position: relative;
}
@media screen and (min-width: 769px) {
  .recruit_detail_dt {
    padding: 2.7rem 3.5rem;
  }
}
@media screen and (max-width: 768px) {
  .recruit_detail_dt {
    padding: 4.4rem 0 4.4rem 2.5rem;
  }
}
.recruit_detail_dt ~ .recruit_detail_dt::before {
  content: "";
  position: absolute;
  border-top: 1px solid #fff;
  left: 0;
  right: 0;
  top: -1px;
}
.recruit_detail_dt p {
  font-weight: 700;
  color: #fff;
}
@media screen and (min-width: 769px) {
  .recruit_detail_dt p {
    line-height: 1.625;
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 768px) {
  .recruit_detail_dt p {
    line-height: 1.616;
    font-size: 2.6rem;
  }
}
.recruit_detail_dd {
  display: flex;
  align-items: center;
  position: relative;
  background: #fff;
}
@media screen and (min-width: 769px) {
  .recruit_detail_dd {
    padding: 2.7rem 3rem;
  }
}
@media screen and (max-width: 768px) {
  .recruit_detail_dd {
    padding: 2.9rem 0 2.9rem 2rem;
  }
}
@media screen and (min-width: 769px) {
  .recruit_detail_dd p {
    line-height: 1.625;
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 768px) {
  .recruit_detail_dd p {
    line-height: 1.385;
    font-size: 2.6rem;
  }
}