/* Top ページ固有スタイル */
.main_contents {
  padding: 9rem 0 27rem;
  @media (max-width: 768px) {
    padding: 8.8rem 0 13rem;
  }
}
.hero {
  position: relative;
  overflow: hidden;
}
.hero_inr {
  position: relative;
  padding-top: 5rem;
  @media (max-width: 768px) {
    padding-top: 5rem;
  }
}
.hero_inr::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: calc(100% + calc((100vw - 100%) / 2));
  height: .3rem;
  background: url(../../img/top/hero_line01.svg) no-repeat 0 0;
  background-size: 100% 100%;
  @media (max-width: 768px) {
    height: .4rem;
    background-image: url(../../img/top/hero_line01_sp.svg);
  }
}
.hero_inr::after {
  content: "";
  position: absolute;
  bottom: 4.2rem;
  right: 37.2rem;
  width: calc(65rem + calc((100vw - 100%) / 2));
  height: .3rem;
  background: url(../../img/top/hero_line02.svg) no-repeat 100% 0;
  background-size: 100% 100%;
  @media (max-width: 768px) {
    bottom: 3.4rem;
    right: 37.2rem;
    width: calc(27rem + calc((100vw - 100%) / 2));
    height: .4rem;
    background-image: url(../../img/top/hero_line02_sp.svg);
  }
}
.hero_text {
  font-size: 3.8rem;
  font-weight: 600;
  line-height: calc(86/38*1em);
  letter-spacing: calc(410/1000*1em);
  @media (max-width: 768px) {
    font-size: 3.8rem;
    line-height: calc(86/38*1em);
    letter-spacing: calc(300/1000*1em);
  }
}
.hero_content {
  position: relative;
  display: flex;
  justify-content: flex-end;
  margin-top: 39rem;
  margin-right: -6rem;
  padding-bottom: 2.5rem;
  @media (max-width: 768px) {
    margin-top: 14.5rem;
    margin-right: 0;
    padding-bottom: 2.5rem;
  }
}
.hero_img {
  mix-blend-mode: multiply;
  position: absolute;
  bottom: 0;
  right: 9.6rem;
  width: 35.9rem;
  height: 24.5rem;
  @media (max-width: 768px) {
    right: 7.2rem;
    width: 31.8rem;
    height: 21.5rem;
  }
}
.hero_logo {
  width: 26.5rem;
  height: 6rem;
  @media (max-width: 768px) {
    width: 23.4rem;
    height: 5.3rem;
  }
}
.about,
.business,
.company {
  overflow: visible;
}
.about {
  margin-top: 24rem;
  @media (max-width: 768px) {
    margin-top: 9rem;
  }
}
.business,
.company {
  margin-top: 25rem;
  @media (max-width: 768px) {
    margin-top: 13.3rem;
  }
}
.about_inr,
.business_inr,
.company_inr {
  --contents-font-size: 2.8rem;
  --contents-line-height: calc(67/28*1em);
  --contents-line-thickness: .3rem;
  --contents-outside-width: calc((100vw - 100%) / 2);
  @media (max-width: 768px) {
    --contents-font-size: 2.3rem;
    --contents-line-height: calc(53/23*1em);
    --contents-line-thickness: .4rem;
  }
  position: relative;
}
.business_inr,
.company_inr {
  --contents-font-size: 2.5rem;
  --contents-line-height: calc(65/25*1em);
  @media (max-width: 768px) {
    --contents-font-size: 2.1rem;
    --contents-line-height: calc(56/21*1em);
  }
}
.about_inr::before,
.about_inr::after,
.business_inr::before,
.business_inr::after,
.company_inr::before,
.company_inr::after {
  content: "";
  position: absolute;
  width: calc(100% + var(--contents-outside-width));
  height: var(--contents-line-thickness);
  background: url(../../img/top/contents_line_top.svg) no-repeat 100% 0;
  background-size: 100% 100%;
  @media (max-width: 768px) {
    background-image: url(../../img/top/contents_line_top_sp.svg);
  }
}
.about_inr::before,
.business_inr::before,
.company_inr::before {
  right: 0;
  width: calc(100% + var(--contents-outside-width));
  top: 0;
  background-position: 100% 0;
}
.about_inr::after,
.business_inr::after,
.company_inr::after {
  left: 0;
  background-image: url(../../img/top/contents_line_bottom.svg);
  background-position: 0 0;
  @media (max-width: 768px) {
    background-image: url(../../img/top/contents_line_bottom_sp.svg);
  }
}
.line_bg {
  position: absolute;
  left: 0;
  right: 0;
  top: var(--contents-line-height);
  bottom: var(--contents-line-thickness);
  font-size: var(--contents-font-size);

  background-image: url(../../img/top/txt_line.svg);
  background-repeat: repeat-y;
  background-position: 0 0;
  background-size: 100% calc(var(--contents-line-height) * 4);
  pointer-events: none;
  @media (max-width: 768px) {
    top: calc(var(--contents-line-height) - 0.03rem);
    background-image: url(../../img/top/txt_line_sp.svg);
  }
}
@media (max-width: 768px) {
  .about_inr .line_bg {
    background-image: url(../../img/top/txt_line_about_sp.svg);
  }
}
.cont_txt {
  position: relative;
  z-index: 1;
  margin: 0;
  font-family: var(--font-yakuhanmp);
  font-size: var(--contents-font-size);
  line-height: var(--contents-line-height);
  letter-spacing: calc(40/1000*1em);
  text-align: left;
  font-weight: 500;
  @media (max-width: 768px) {
    font-weight: 500;
    letter-spacing: calc(100/1000*1em);
  }
}
.business_txt {
  @media (max-width: 768px) {
    letter-spacing: calc(30/1000*1em);
  }
}