@charset "UTF-8";
main .mv {
  min-height: 700px;
  overflow: hidden;
  height: calc(100vh - 60px);
  background-image: url(../img/top/mv01.jpg);
  background-size: cover;
  background-position: center center;
}
main .mv .mv_bg_wap {
  position: absolute; /* 全面に広げる */
  inset: 0; /* top:0 right:0 bottom:0 left:0 */
  height: 100%;
}
main .mv .mv_bg_wap img {
  width: auto;
  height: 100%;
  display: block;
  object-fit: cover; /* cover相当 */
  object-position: center; /* center相当 */
}
main .mv .txt_wap01 {
  top: 44%;
}
main .mv .txt_wap01 img {
  max-width: initial;
  height: calc(100vh - 350px);
  width: auto;
  min-height: 64vh;
}
main .mv .txt_wap02 {
  top: 40%;
  left: 5%;
}
main .mv .txt_wap03 {
  right: 0;
  background-image: url(../img/top/bg_line01.png);
  background-repeat: no-repeat;
  background-size: contain;
  padding: 70px 30px 0 0;
  background-position: bottom right;
}
main .scroll_wap {
  overflow: hidden;
  width: 45px;
  height: 45px;
  /* 矢印のアニメーション部分 */
  /* 矢印のアニメーション */
}
main .scroll_wap .scroll {
  position: relative;
  text-align: center;
  width: 45px;
  height: 45px;
}
main .scroll_wap .scroll::before {
  animation: scroll 2s infinite;
  content: "arrow_downward";
  font-family: "Material Symbols Outlined";
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: 0;
  width: 40px;
  height: 40px;
}
@keyframes scroll {
  0% {
    opacity: 0;
    transform: translateY(0px);
  }
  40% {
    opacity: 1;
  }
  80% {
    opacity: 0;
    transform: translateY(20px);
  }
  100% {
    opacity: 0;
  }
}
main .top_section01 {
  background-image: url(../img/top/bg_logo01.png);
  background-position: bottom left;
  background-repeat: no-repeat;
  background-size: contain;
}
main .top_section01 h3 {
  position: relative;
  display: inline-block; /* テキスト幅に合わせたい場合 */
}
main .top_section01 h3::before,
main .top_section01 h3::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 1px; /* 線の太さ */
  background: #257731; /* 線の色 */
}
main .top_section01 h3::before {
  bottom: 0; /* 1本目（下） */
}
main .top_section01 h3::after {
  bottom: 4px; /* 2本目（上）←間隔を調整できる */
}
main .top_section01 .bg_line {
  bottom: -160px;
  height: 160px;
  top: initial;
  z-index: 10;
}
main .top_section02 .txt_wap01 {
  border-bottom: #257731 2px dashed;
}
main .top_section02 .txt_wap02.txt_wap02_01 .txt_box p, main .top_section02 .txt_wap02.txt_wap02_01 .txt_box h3 {
  padding-left: 10%;
}
main .top_section02 .txt_wap02.txt_wap02_02 .txt_box p, main .top_section02 .txt_wap02.txt_wap02_02 .txt_box h3 {
  padding-right: 7%;
}
main .top_section02 .bg_line {
  bottom: 0;
  height: 160px;
  top: initial;
  z-index: 10;
}
main .top_section04 {
  overflow: hidden;
}
main .top_section04 .inner.inner01 .bg01 {
  border-radius: 0 20px 20px 0;
}
main .top_section04 .inner.inner01 .bg_icon01 {
  top: 30%;
  right: 0;
}
main .top_section04 .inner.inner01 .bg_icon03 {
  top: 20%;
  right: 0;
}
main .top_section04 .inner.inner02 .bg01 {
  border-radius: 20px 0 0 20px;
}
main .top_section04 .inner.inner02 .bg_icon01 {
  top: 30%;
  left: 0;
}
main .top_section05 {
  background-image: url(../img/top/bg04.jpg);
  background-size: cover;
  background-position: center center;
}
main .top_section05 .bg_line {
  bottom: 0;
  height: 160px;
  top: initial;
  z-index: 10;
}
main .top_section05 .bg_line02 {
  height: 160px;
  z-index: 10;
}
main .top_section05 .inner .img02 {
  bottom: 140px;
  right: 0;
}
main .top_section06 .box01 h3 {
  top: 20px;
}