@charset "UTF-8";
/*========== トップページ ==========*/
/*==========
ドット背景
==========*/
.bg_dot {
  position: relative;
}

.bg_dot::before, .bg_dot::after {
  content: "";
  width: 800px;
  height: 800px;
  background: center/cover url("../img/common/bg_dot.png") no-repeat;
  z-index: 1;
}

.bg_dot::before {
  position: absolute;
  top: -500px;
  left: -250px;
}

.bg_dot::after {
  position: absolute;
  bottom: -384px;
  right: -294px;
}

@media screen and (max-width: 961px) {
  .bg_dot::before, .bg_dot::after {
    width: 320px;
    height: 320px;
  }
  .bg_dot::before {
    position: absolute;
    top: -160px;
    left: -120px;
  }
  .bg_dot::after {
    position: absolute;
    bottom: -160px;
    right: -120px;
  }
}

.body_wrap {
  position: relative;
}

.body_wrap::before {
  content: "";
  width: 800px;
  height: 800px;
  background: center/cover url("../img/common/bg_dot.png") no-repeat;
  position: absolute;
  top: -30px;
  right: -212px;
  z-index: -1;
}

@media screen and (max-width: 961px) {
  .body_wrap::before, .body_wrap::after {
    width: 320px;
    height: 320px;
  }
}

/*==========
メインビジュアル
==========*/
#mv {
  position: relative;
  background: center/cover url("../img/index/index_mv_bg.png") no-repeat;
  z-index: 10;
}

#mv .container {
  position: relative;
  width: 100%;
  padding-top: 46%;
  min-height: 735px;
}

#mv .mv_catch {
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  position: absolute;
  top: 10px;
  right: 17.25%;
  z-index: 10;
}

#mv .mv_catch p {
  font-size: 1.5625em;
  font-weight: 900;
  letter-spacing: 0.125em;
  margin-left: 10px;
}

#mv .mv_catch .label_white {
  padding: 0.5em 0.35em 1.25em;
}

#mv .mv_logo {
  position: absolute;
  left: 0;
  bottom: 80px;
  z-index: 9;
}

@media screen and (max-width: 641px) {
  #mv {
    background: center/cover url("../img/index/index_mv_bg_sp.png") no-repeat;
  }
  #mv .container {
    padding-top: 121.4666%;
    min-height: auto;
  }
  #mv .mv_catch {
    top: auto;
    bottom: -80px;
    right: 8%;
  }
  #mv .mv_catch p {
    font-size: 1.125em;
    margin-left: 4px;
  }
  #mv .mv_logo {
    width: 110px;
    left: 18px;
  }
}

/*==========
index_news
==========*/
#index_news .inner {
  max-width: calc(780px + (24px * 2));
  margin: 0 auto;
}

#index_news .title_01 {
  margin-bottom: 32px;
}

#index_news .btn_01 {
  margin: 0 auto;
}

.list_news_index {
  font-weight: 900;
  margin-bottom: 64px;
}

.list_news_index a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding: 20px 0;
  border-bottom: 1px dashed #aaaaaa;
}

.list_news_index .date,
.list_news_index .text {
  display: inline-block;
}

.list_news_index .date {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-line-pack: center;
      align-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 116px;
  height: 28px;
  padding-bottom: 0.125em;
  margin-right: 40px;
  border: 2px solid #f14521;
  color: #f14521;
  border-radius: 14px;
  text-align: center;
}

.list_news_index .text {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}

@media screen and (max-width: 961px) {
  .list_news_index a {
    display: block;
  }
  .list_news_index .date {
    margin-bottom: 0.5em;
  }
}

/*==========
index_company
==========*/
#index_company {
  background: center/cover url("../img/index/index_company_bg.jpg") no-repeat #d9d9d9;
}

#index_company .text_area {
  margin-bottom: 80px;
  position: relative;
  z-index: 10;
}

#index_company .text_area::after {
  content: "";
  width: 530px;
  height: 400px;
  display: block;
  background: center/contain url("../img/index/index_company_logo.svg") no-repeat;
  position: absolute;
  top: 64px;
  left: -165px;
  z-index: -1;
}

#index_company .label_white {
  margin-bottom: 6px;
}

#index_company .btn_01 {
  margin-top: 80px;
}

#index_company .img_area {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  margin-top: auto;
  margin-bottom: -24px;
  position: relative;
  z-index: 10;
}

#index_company .img_area img {
  margin: 0 auto;
}

#index_company .deco_01 {
  left: calc(50% - 792px);
  top: -1%;
}

#index_company .deco_02 {
  left: calc(50% - 832px);
  bottom: -17%;
}

#index_company .deco_03 {
  left: calc(50% - 878px);
  bottom: -47%;
}

#index_company .deco_04 {
  right: calc(50% - 642px);
  top: 0;
}

#index_company .deco_05 {
  right: calc(50% - 735px);
  bottom: 0;
}

@media screen and (max-width: 961px) {
  #index_company {
    background-size: 150%;
  }
  #index_company .text_area {
    width: 100%;
    margin-bottom: 1em;
  }
  #index_company .text_area::after {
    background-position: bottom;
    width: 80%;
    top: 0;
    left: -2em;
  }
  #index_company .img_area {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto;
  }
  #index_company .btn_01 {
    margin-top: 40px;
  }
  #index_company .deco {
    width: 25vw;
  }
  #index_company .deco_01 {
    left: 0.5%;
  }
  #index_company .deco_02 {
    left: -2%;
    bottom: -80px;
  }
  #index_company .deco_03 {
    left: -5%;
    bottom: 0;
  }
  #index_company .deco_04 {
    right: -6%;
  }
  #index_company .deco_05 {
    right: 4%;
  }
}

/*==========
index_access
==========*/
#index_access.bg_dot::before {
  top: -317px;
}

@media screen and (max-width: 961px) {
  #index_access.bg_dot::before {
    top: -100px;
  }
}

#index_access .map_area {
  width: 100%;
  height: 465px;
  margin-bottom: 60px;
}

@media screen and (max-width: 961px) {
  #index_access .map_area {
    height: calc(100vw * 0.625);
    max-height: 460px;
  }
}

#index_access .btn_01 {
  margin: 0 auto;
}

/*==========
index_business
==========*/
#index_business {
  background: center/cover url("../img/index/index_business_bg.jpg") no-repeat;
  padding-top: 70px;
}

#index_business .title_01 {
  margin-bottom: 32px;
}

#index_business .text_area {
  max-width: 380px;
  margin-left: auto;
  color: #fff;
}

#index_business .text_intro {
  font-size: 1.75em;
  font-weight: 900;
}

#index_business .list_triangle {
  margin-top: 40px;
  font-size: 1.375em;
  font-weight: 900;
}

#index_business .list_triangle > * {
  margin-bottom: 24px;
}

#index_business .btn_01 {
  margin-top: 64px;
}

@media screen and (max-width: 961px) {
  #index_business .text_area {
    margin-top: 20%;
    margin-left: 45%;
  }
  #index_business .text_intro {
    font-size: 1.25em;
  }
  #index_business .list_triangle {
    margin-top: 24px;
    font-size: 1.125em;
  }
  #index_business .list_triangle > * {
    margin-bottom: 1em;
  }
}
/*# sourceMappingURL=index.css.map */