@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700&display=swap');
/* ------------------------------------------
  Utility Class
------------------------------------------ */

/* clearfix */

.clearfix:after {
  clear: both;
  content: '.';
  display: block;
  height: 0;
  visibility: hidden;
}

/* ------------------------------------------
  Common
------------------------------------------ */

* {
  box-sizing: border-box;
  word-break: normal;
}

html {
  font-size: 10px;
  height: 100%;
}

body {
  color: #080808;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  line-height: 1.7;
  min-width: 1080px;
  position: relative;
  -webkit-text-size-adjust: none;
}

body.layer {
  height: 100%;
  overflow: hidden;
}

a, a img {
  color: inherit;
  text-decoration: none;
  transition: color .3s ease, background .3s ease, opacity .3s ease;
}

a:hover {
  opacity: .75;
  text-decoration: none;
}

a:hover * {
  opacity: .75;
}

a:focus {
  outline: none;
}

body.active {
  overflow: hidden;
  height: 100%;
}

@media(min-width: 768px) {
  a[href^='tel:'] {
    pointer-events: none;
  }
}

img {
  height: auto;
  max-width: 100%;
}

h1, h2, h3, h4, h5, h6 {
  line-height: inherit;
  margin: 0;
}

ul, ol {
  list-style: none;
  margin: 0;
  padding: 0;
}

p {
  margin: 0;
}

.clear {
  clear: both;
}

.only_pc {
  display: block !important;
}

.only_sp {
  display: none !important;
}

input, button, select, textarea {
  -webkit-appearance: none;
  background: none;
  border: none;
  border-radius: 0;
  font-family: 'Noto Sans JP', sans-serif;
}

input[type=checkbox], input[type=radio] {
  height: 1px;
  margin: 0;
  opacity: 0;
  position: absolute;
  width: 1px;
  z-index: -1;
}

.container {
  margin: 0 auto;
  width: 1000px;
}

@media screen and (max-width: 767px) {
  body {
    min-width: inherit;
  }
  .container {
    margin: 0 20px;
    width: auto;
  }
  .only_pc {
    display: none !important;
  }
  .only_sp {
    display: block !important;
  }
}

.mv .container {
  position: relative;
  height: 100%;
}

.mv_text {
  position: absolute;
  right: 0;
  bottom: 100px;
}

.mv_text_item+.mv_text_item {
  margin-top: 32px;
}

.mv_text_item {
  font-family: "Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
  font-size: 3rem;
  letter-spacing: .15em;
  font-weight: 700;
  text-align: right;
  display: table;
  margin-left: auto;
  color: #FFFFFF;
}

.mv {
  background-image: url(../img/top_mv.png);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  height: 733px;
}

@media screen and (max-width: 767px) {
  .mv {
    height: calc(100vh - 80px);
  }
  .mv_text {
    bottom: 40px;
  }
  .mv_text_item {
    font-size: 2rem;
  }
  .mv_text_item+.mv_text_item {
    margin-top: 15px;
  }
}

.top_about {
  padding: 188px 0 31px;
}

.about_title {
  max-width: 50% !important;
}

.top_title_main {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 3rem;
  font-weight: 700;
  letter-spacing: .03em;
  color: #707070;
  border-bottom: 1px solid #2D2D2D;
}

.top_title_text {
  text-align: right;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: .03em;
  color: #F38937;
}

@media screen and (max-width: 767px) {
  .top_about {
    padding-top: 60px;
  }
  .top_title {
    max-width: 150px !important;
    width: 100%;
    margin: 0 auto;
  }
}

.top_about_main {
  display: flex;
  justify-content: space-between;
}

.top_about_main_title {
  font-family: 'Noto Sans JP', sans-serif;
  color: #F38937;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: .03em;
}

.top_about_left_text {
  margin-top: 54px;
  font-family: 'Noto Sans JP', sans-serif;
  color: #707070;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.875;
  letter-spacing: .03em;
}

.top_about_left {
  margin-top: 112.5px;
}

.top_about_right {
  margin-top: 30px;
}

.top_about_right_img_top {
  width: 259px;
}

.top_about_right_img_top img {
  width: 100%;
}

.top_about_right_img_bottom {
  width: 176px;
  margin: 0 auto;
  margin-top: 28.7px;
}

.top_about_right_img_bottom img {
  width: 100%;
}

.top_about_left_text_bottom {
  font-family: 'Noto Sans JP', sans-serif;
  color: #707070;
  font-size: 2.0rem;
  font-weight: 600;
  margin-top: 38px;
  letter-spacing: .03em;
}

.more_button {
  position: relative;
  display: flex;
  justify-content: center;
}

.top_about .more_button {
  margin-top: 140px;
}

@media screen and (max-width: 767px) {
  .top_about {
    position: relative;
  }
  .top_about .more_button {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
  }
  .top_about_main {
    margin-bottom: 100px;
  }
  .top_about_left_text_bottom {
    font-size: 1.6rem;
  }
  .top_about_left_text {
    font-size: 1.2rem;
  }
  .top_about_right_img_top {
    width: 181px;
  }
}

@media screen and (max-width: 600px) {
  .top_about_main {
    flex-direction: column;
  }
  .top_about_main_title {
    font-size: 1.4rem;
  }
  .top_about_right_img_top {
    margin: 0 auto;
    width: 126px;
  }
  .top_about_left_text_bottom {
    font-size: 1.3rem;
  }
  .top_about_left {
    margin-top: 60px;
  }
  br {
    display: none;
  }
  br.common {
    display: block;
  }
  .top_about_right_img_bottom {
    width: 120px;
  }
}

.more_button a {
  width: 191px;
  position: relative;
  text-align: center;
  display: block;
}

.top_contact .more_button span {
  line-height: 77px;
}

.top_contact .more_button a {
  width: 282px;
}

.more_button a::before {
  position: absolute;
  z-index: 1;
  top: 3px;
  left: 4px;
  width: 191px;
  height: 40px;
  content: "";
  border-top: 1px solid #4a4a4a;
  border-bottom: 1px solid #4a4a4a;
  border-left: 1px solid #4a4a4a;
}

.top_contact .more_button a::before {
  border-right: 1px solid #4a4a4a;
}

.top_contact .more_button span {
  top: initial;
  bottom: -10px;
  left: 10px;
}

.top_contact .more_button a::before {
  width: 282px;
  height: 77px;
}

.more_button span {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 40px;
  position: relative;
  top: 0;
  left: 0;
  z-index: 0;
  display: block;
  text-align: center;
  color: #fff;
  transition: 0.3s;
  background-color: #f38937;
}

.more_button span::after {
  position: absolute;
  right: -27px;
  bottom: -5px;
  width: 23px;
  height: 8px;
  border-bottom: 1px solid #4a4a4a;
  content: "";
  background-image: url(../img/arrow.png);
  background-repeat: no-repeat;
  background-size: 13px 8px;
  background-position: bottom -2px right -2px;
  transition: 0.3s;
}

.top_contact .more_button span::after {
  background-image: none;
  border: none;
}

.main {
  background-color: #F6F6F6;
  z-index: -999;
}

.top_contact .more_button a::after {
  display: none;
}

.more_button a::after {
  content: "";
  position: absolute;
  top: 3px;
  right: -5px;
  width: 1px;
  height: 36px;
  background-color: #4A4A4A;
}

.top_service {
  padding: 285px 0 109px;
  background-image: url(../img/top_service_background.png);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: top right;
  z-index: 0;
  position: relative;
}

.top_service::after {
  position: absolute;
  background-image: url(../img/top_service_fig.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-size: contain;
  left: -204px;
  top: -277px;
  width: 565px;
  height: 453px;
  content: "";
}

.top_contact .more_button a:hover span {
  left: 5px;
  bottom: -4px;
  top: initial;
}

.more_button a:hover::after {
  height: 41px;
  transition: 0.3s;
}

.more_button a:hover span {
  top: 4px;
  left: 4px;
}

.more_button a:hover span::after {
  width: 33px;
  right: -33px;
  bottom: -1px;
}

.top_service .more_button {
  margin: 63px auto 0;
}

.top_title {
  max-width: 150px;
  width: 100%;
}

.top_service .top_title {
  margin: 0 auto;
}

.top_service_text {
  margin-top: 95px;
}

.top_service_text_main {
  font-family: 'Noto Sans JP', sans-serif;
  color: #707070;
  font-size: 3rem;
  font-weight: 700;
  letter-spacing: .03em;
  text-align: center;
}

.top_service_text_sub {
  margin-top: 50px;
  font-family: 'Noto Sans JP', sans-serif;
  color: #707070;
  font-size: 1.6rem;
  font-weight: 400;
  letter-spacing: .03em;
  text-align: center;
}

.top_service_box {
  margin-top: 121px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.service_img_1 {
  width: 70px;
  height: 70px;
}

.service_img_2 {
  width: 103px;
  height: 70px
}

.service_img_3 {
  width: 68px;
  height: 70px
}

.top_service_box_item {
  width: calc(100% / 3 - 100px /3);
  position: relative;
}

.top_service_box_item_img {
  margin: 0 auto;
}

.top_service_box_item_img img {
  width: 100%;
}

.top_service_box_item_text_main {
  position: absolute;
  top: 110px;
  left: 0px;
  font-family: 'Noto Sans JP', sans-serif;
  color: #707070;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: .03em;
  text-align: center;
}

.top_service_box_item_text {
  margin-top: 40px;
}

.service_item_1 {
  left: -8px;
  transform: translateX(8px);
}

.service_item_2 {
  left: -52px;
  transform: translateX(25px);
}

.service_item_3 {
  left: 50px;
}

.top_service_box_item_text_sub {
  font-family: 'Noto Sans JP', sans-serif;
  color: #707070;
  font-size: 1.5rem;
  font-weight: 400;
  text-align: left;
  line-height: 1.875;
  margin-top: 101px;
  min-height: 150px;
  border-top: 1px solid #707070;
  padding: 40px 10px 0;
  height: 181px;
}

@media screen and (max-width: 767px) {
  .top_service {
    padding-top: 80px;
  }
  .top_service_text_main {
    font-size: 2rem;
  }
  .top_service_box {
    display: block;
  }
  .top_service_box_item_text_sub {
    height: initial;
  }
  .top_service_box_item {
    margin: 0 auto;
  }
  .top_service_box_item {
    width: 100%;
    max-width: 400px;
  }
  .top_service_box_item+.top_service_box_item {
    margin-top: 50px;
  }
  .top_service_box_item_text_main {
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
  }
  .top_service::after {
    width: 282px;
    height: 226px;
    top: 0;
    left: 0;
  }
}

@media screen and (max-width:600px) {
  .top_service_text {
    margin-top: 60px;
  }
  .top_service_text_sub {
    margin-top: 30px;
  }
  .top_service::after {
    width: 190px;
  }
  .top_service_text_main {
    font-size: 1.4rem;
  }
  .top_service_text_sub {
    font-size: 1.1rem;
  }
  .top_service_box_item_text_main {
    top: 80px;
    font-size: 1.5rem;
  }
  .top_service_box_item_text_sub {
    font-size: 1.2rem;
    padding-top: 20px;
    margin-top: 50px;
  }
  .top_service_box {
    margin-top: 60px;
  }
  .top_service_box_item_text_sub {
    min-height: initial;
  }
}

.top_work {
  position: relative;
}

.top_work .container::before {
  position: absolute;
  background-image: url(../img/top_work_fig.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: 368px;
  height: 360px;
  content: "";
  top: -154px;
  left: 0;
  z-index: 0;
}

.top_work .more_button {
  margin-top: 100px;
}

.top_news .more_button {
  margin-top: 100px;
}

.top_contact .more_button {
  margin-top: 60px;
}

.top_work_box {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-top: 96px;
}

.top_work_box_item_img {
  width: 100%;
  display: block;
}

.top_work {
  padding: 92px 0 53px;
}

.top_work .top_title {
  margin: 0 auto;
}

.top_work_box_item {
  width: calc(100% / 3 - 103px / 3);
  z-index: 2;
}

.top_work_box_item:nth-child(n+4) {
  margin-top: 50px;
}

.top_work_box_item_text {
  margin-top: 20px;
}

.top_work_box_item_text_main {
  font-family: 'Noto Sans JP', sans-serif;
  color: #707070;
  font-size: 1.9rem;
  font-weight: 400;
  letter-spacing: .03em;
  text-align: left;
  line-height: 28px;
}

.top_work_box_item_sub {
  display: flex;
  margin-top: 10px;
}

.top_work_box_item_sub_text {
  background-color: #707070;
}

.top_work_box_item_sub_text a {
  font-family: 'Noto Sans JP', sans-serif;
  color: #FFFFFF;
  font-size: .9rem;
  font-weight: 400;
  letter-spacing: .03em;
  padding: 2px 9px;
  line-height: 17px;
  text-align: center;
  height: auto;
  pointer-events: none;
}

.top_work_box_item_sub_text+.top_work_box_item_sub_text {
  margin-left: 11px;
}

@media screen and (max-width: 767px) {
  .top_work {
    padding-top: 60px
  }
  .top_work_box_item_text_main {
    font-size: 1.6rem;
  }
  .top_work_box {
    max-width: 666px;
    margin: 52px auto;
  }
  .top_work_box_item {
    width: calc(100% / 2 - 33px);
  }
  .top_work_box_item:nth-child(n+4) {
    margin-top: initial;
  }
  .top_work_box_item:nth-child(n+3) {
    margin-top: 50px;
  }
}

@media screen and (max-width:600px) {
  .top_work_box {
    flex-direction: column;
  }
  .top_work_box_item {
    width: calc(100% - 40px);
    margin: 0 auto;
  }
  .top_work_box_item:nth-child(n+3) {
    margin-top: initial;
  }
  .top_work_box_item+.top_work_box_item {
    margin-top: 30px;
  }
  .top_work_box_item_text_main {
    font-size: 1.4rem;
  }
  .top_work .container::before {
    width: 184px;
    height: 180px;
    top: auto;
  }
}

.top_news {
  padding: 146px 0 225px;
  background-image: url(../img/top_news_back.png);
  background-repeat: no-repeat;
  background-position: top;
  background-size: cover;
  position: relative;
}

.top_news::before {
  position: absolute;
  background-image: url(../img/top_new_fig.png);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  width: 241px;
  height: 645px;
  content: "";
  top: -160px;
  right: 0;
  z-index: 10;
}

.top_news .top_title {
  margin-left: 71px;
}

.top_news_box {
  width: calc(100% - 142px);
  border-top: 1px solid #707070;
  border-bottom: 1px solid #707070;
  margin-left: 71px;
  margin-top: 95px;
}

.top_news_box_content_item {
  display: flex;
  align-items: center;
  width: 100%;
}

.top_news_time {
  display: block;
  padding: 26.5px 30px;
  font-family: 'Noto Sans JP', sans-serif;
  color: #707070;
  font-size: 1.6rem;
  font-weight: 400;
  letter-spacing: .03em;
  position: relative;
}

.top_news_time::after {
  min-height: 55px;
  width: 1px;
  content: "";
  background-color: #707070;
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
}

.top_news_box_content a {
  pointer-events: none;
}

.top_news_box_content_item_top {
  display: flex;
  align-items: center;
}

.top_news_depart {
  margin-left: 30px;
}

.top_news_depart span {
  font-family: 'Noto Sans JP', sans-serif;
  color: #FFFFFF;
  font-size: .9rem;
  font-weight: 400;
  letter-spacing: .03em;
  padding: 2px 9px;
  line-height: 17px;
  text-align: center;
  height: auto;
  background-color: #707070;
}

.top_news_box_content {
  background-color: #FFFFFF;
}

.top_news_box_content:nth-child(2n) {
  background-color: #F6F6F6;
}

.top_news_box_content_item_text {
  font-family: 'Noto Sans JP', sans-serif;
  color: #707070;
  font-size: 1.6rem;
  font-weight: 400;
  letter-spacing: .03em;
  margin-left: 30px;
}

@media screen and (max-width: 767px) {
  .top_news {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .top_news::before {
    width: 168px;
    height: 451px;
  }
  .top_news .top_title {
    margin: 0 auto;
  }
  .top_news_box_content_item {
    justify-content: flex-start;
  }
  .top_news_depart {
    margin-left: 15px;
    min-width: 37px;
  }
  .top_news_depart span {
    font-size: 1rem;
    padding: 2px 6px;
  }
  .top_news_box_content_item_text {
    margin-left: 15px;
    font-size: 1.4rem;
  }
}

@media screen and (max-width: 600px) {
  .top_news_box_content_item_top {
    margin-right: auto;
    padding-top: 0;
  }
  .top_news_box_content a {
    display: block;
  }
  .top_news_box_content_item {
    flex-direction: column;
    padding: 15px;
  }
  .top_news_box {
    width: initial;
    margin: initial;
    margin-top: 60px;
  }
  .top_news_time {
    padding: initial;
    padding-right: 21px;
    font-size: 1.2rem;
  }
  .top_news_box_content_item_text {
    margin-left: initial;
    margin-top: 15px;
    margin-right: auto;
  }
  .top_news_time::after {
    min-height: 35px;
  }
  .top_news::before {
    width: 117px;
    top: -130px;
  }
}

.top_contact {
  padding-bottom: 183px;
  padding-top: 100px;
}

.top_contact .more_button {
  position: relative;
}

.top_contact .more_button::after {
  position: absolute;
  top: 5px;
  left: 5px;
}

.top_contact .top_title {
  margin: 0 auto;
}

.top_contact_text {
  margin-top: 95px;
  font-family: 'Noto Sans JP', sans-serif;
  color: #707070;
  font-size: 1.6rem;
  font-weight: 400;
  letter-spacing: .03em;
  line-height: 1.875;
}

.top_contact_text_top {
  text-align: center;
}

.top_contact_text_bottom {
  margin-top: 32px;
  text-align: center;
}

@media screen and (max-width: 600px) {
  .top_contact .more_button a {
    width: 220px;
  }
  .top_contact .more_button span {
    line-height: 53px;
  }
  .top_contact .more_button a::before {
    width: 220px;
    height: 53px;
  }
  .top_contact_text {
    margin-top: 50px;
    font-size: 1.1rem;
  }
}