@font-face {
  font-family: "hare";
  src: url(../font/hare.otf) format("opentype");
}
/*---------------------------------------------
    common
---------------------------------------------*/
.button {
  text-align: center;
}
.button a::before {
  background: #000;
  bottom: 4px;
  content: "";
  display: inline-block;
  height: 1px;
  margin-right: 8px;
  position: relative;
  width: 30px;
}

.section-ttl {
  color: #231815;
  display: inline-block;
  font-size: 2.4rem;
}
.section-ttl .ja {
  border-top: #EC6300 solid 4px;
  color: #727171;
  display: block;
  font-size: 1.6rem;
}

/*---------------------------------------------
    mv
---------------------------------------------*/
.mv {
  height: 100vh;
  overflow: hidden;
  padding-top: 80px;
  position: relative;
}
.mv.visible {
  overflow: visible;
}
@media screen and (max-width: 500px) {
  .mv {
    padding-top: 68px;
  }
}
.mv .cover {
  height: 100vh;
  position: absolute;
  width: 100%;
  z-index: 999;
}
.mv .main-catch {
  align-items: center;
  bottom: 0;
  color: #fff;
  display: flex;
  font-size: 3cqh;
  justify-content: center;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: -40px;
  writing-mode: vertical-rl;
  z-index: 999999;
}

@media screen and (max-width: 1160px) {
  .mv .mv-contact {
    right: 5%;
  }
}
/*
.fixed {
  position: fixed;
  top: 30px;
  z-index: 1000;
}

/*---------------------------------------------
    scroll
---------------------------------------------*/
.scroll {
  bottom: 150px;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  width: 80px;
  z-index: 9999;
}
@media screen and (max-width: 768px) {
  .scroll {
    bottom: 120px;
  }
}

/*---------------------------------------------
    news
---------------------------------------------*/
.news {
  bottom: 240px;
  position: absolute;
  right: 5%;
  text-align: right;
  width: 90%;
  z-index: 9999;
}
.news .section-ttl {
  color: #fff;
  margin-bottom: 24px;
}
.news .section-ttl .ja {
  color: #fff;
  padding-left: 60px;
}
.news .box {
  background: #fff;
  border: #EC6300 solid 2px;
}
.news .box ul {
  text-align: left;
}
.news .box ul li {
  padding: 10px;
}
.news .box ul li .date {
  background: #EC6300;
  color: #fff;
  font-size: 1.6rem;
  padding: 2px 10px 4px;
}
.news .box ul li .news-ttl {
  display: inline-block;
  margin-left: 20px;
}

/*---------------------------------------------
    slogan
---------------------------------------------*/
.slogan {
  margin-left: auto;
  margin-right: auto;
  margin-top: -100px;
  padding-bottom: 40px;
  padding-top: 160px;
  position: relative;
  width: 80%;
}
@media screen and (max-width: 500px) {
  .slogan {
    margin-top: 0;
    padding-top: 30px;
    width: 90%;
  }
}
.slogan::before {
  background: #DEE0F1;
  content: "";
  display: block;
  height: 65%;
  position: absolute;
  right: -14%;
  top: 124px;
  width: 106%;
  z-index: -1;
}
.slogan .character {
  height: auto;
  position: absolute;
  right: -8%;
  top: 220px;
  width: 80px;
}
@media screen and (max-width: 500px) {
  .slogan .character {
    right: 0;
    top: 160px;
    width: 70px;
  }
}
.slogan .section-ttl {
  margin-bottom: 40px;
}
.slogan .section-ttl .ja {
  padding-right: 60px;
}
.slogan .inner {
  margin: 0 auto;
  width: 100%;
}
.slogan .inner .img {
  margin: 0 auto 24px;
  width: 80%;
}
@media screen and (max-width: 500px) {
  .slogan .inner .img {
    width: 64%;
  }
}
.slogan .inner .text {
  font-size: 1.6rem;
  line-height: 1.8;
  margin-bottom: 20px;
  text-align: justify;
}
@media screen and (max-width: 500px) {
  .slogan .inner .text {
    font-size: 1.4rem;
  }
}
.slogan .inner .img-list {
  display: flex;
  justify-content: space-between;
}
.slogan .inner .img-list li {
  width: 48%;
}

/*---------------------------------------------
    service
---------------------------------------------*/
.service {
  margin: 0 auto 60px;
  padding-top: 20px;
  position: relative;
  width: 80%;
}
@media screen and (max-width: 500px) {
  .service {
    width: 90%;
  }
}
.service .section-ttl {
  margin-bottom: 16px;
}
.service .section-ttl .ja {
  padding-right: 60px;
}
.service .inner {
  margin: 0 auto;
  width: 100%;
}
.service .inner a {
  box-shadow: 0px 0px 15px -5px #3d3d3d;
  display: block;
  margin-bottom: 20px;
}
.service .inner a .img {
  margin-bottom: 8px;
}
.service .inner a .img img {
  display: block;
}
.service .inner a dl {
  padding: 6px 16px;
}
.service .inner a dl dt {
  font-size: 1.8rem;
  font-weight: bold;
  line-height: 1.4;
}
.service .inner a dl dt .en {
  color: #EC6300;
  display: block;
  font-size: 1.4rem;
}
.service .inner a dl dd {
  line-height: 1.4;
  padding: 2px 0 4px;
  text-align: justify;
  width: 100%;
}
@media screen and (max-width: 500px) {
  .service .inner a dl dd {
    font-size: 1.4rem;
  }
}
.service .inner .text {
  color: #22ac38;
  font-size: 1.6rem;
}

/*---------------------------------------------
    company
---------------------------------------------*/
.company {
  background: #EFEFEF;
  margin: 0 auto 60px;
  padding: 40px 10% 40px;
  position: relative;
  width: 100%;
}
@media screen and (max-width: 500px) {
  .company {
    padding: 40px 5% 40px;
  }
}
.company .section-ttl {
  margin-bottom: 16px;
}
.company .section-ttl .ja {
  padding-right: 60px;
}
.company .txt {
  margin-bottom: 8px;
}
@media screen and (max-width: 500px) {
  .company .txt {
    font-size: 1.4rem;
  }
}
.company .img img {
  display: block;
}
.company .detail {
  font-size: 1.4rem;
  text-align: right;
}
.company .detail::after {
  background: url(../images/index/icon_arrow.svg) no-repeat;
  background-position: center center;
  content: "";
  display: inline-block;
  height: 10px;
  margin-left: 4px;
  width: 14px;
}

/*---------------------------------------------
    recruit
---------------------------------------------*/
.recruit {
  margin: 0 auto 60px;
  padding-top: 20px;
  position: relative;
  width: 80%;
}
@media screen and (max-width: 500px) {
  .recruit {
    width: 90%;
  }
}
.recruit::before {
  background: #fce4cf;
  content: "";
  display: block;
  height: 65%;
  position: absolute;
  right: -14%;
  top: 0;
  width: 106%;
  z-index: -1;
}
.recruit .section-ttl {
  margin-bottom: 16px;
}
.recruit .section-ttl img {
  margin-left: 2px;
  position: relative;
  top: 1px;
  width: 20px;
}
.recruit .section-ttl .ja {
  border-top: #004fa2 solid 4px;
  padding-right: 60px;
}
.recruit .inner {
  margin: 0 auto;
  width: 100%;
}
.recruit .inner .txt {
  margin-bottom: 8px;
}
.recruit .inner .img-list {
  display: flex;
}
.recruit .inner .img-list li {
  width: 50%;
}
.recruit .inner .img-list li img {
  display: block;
}
.recruit .inner a {
  display: block;
  position: relative;
}
.recruit .inner a p.txt {
  background: rgba(255, 255, 255, 0.6);
  height: calc(100% - 25px);
  left: 0;
  margin: 0 !important;
  padding-top: 80px;
  position: absolute;
  top: 0;
  width: 100%;
}
.recruit .inner .detail {
  font-size: 1.4rem;
  text-align: right;
}
.recruit .inner .detail::after {
  background: url(../images/index/icon_arrow.svg) no-repeat;
  background-position: center center;
  content: "";
  display: inline-block;
  height: 10px;
  margin-left: 4px;
  width: 14px;
}

/*---------------------------------------------
    contact
---------------------------------------------*/
.contact {
  background: #efefef;
  margin: 0 auto;
  padding-bottom: 40px;
  padding-top: 20px;
  position: relative;
  text-align: center;
  width: 100%;
}
.contact .section-ttl {
  margin-bottom: 16px;
}
.contact .section-ttl img {
  width: 20px;
}
.contact .section-ttl .ja {
  border-top: #231815 solid 4px;
  padding-left: 30px;
  padding-right: 30px;
}
.contact .inner {
  margin: 0 auto;
  width: 80%;
}
@media screen and (max-width: 500px) {
  .contact .inner {
    width: 90%;
  }
}
.contact .inner .txt {
  margin-bottom: 24px;
}
@media screen and (max-width: 500px) {
  .contact .inner .txt {
    font-size: 1.4rem;
  }
}
.contact .inner .btn-list {
  margin: 0 auto;
  width: 320px;
}
.contact .inner .btn-list li {
  border: #231815 solid 1px;
  margin-bottom: 16px;
}
.contact .inner .btn-list li a {
  display: block;
  padding: 10px;
  text-align: left;
  text-indent: 5%;
  width: 100%;
}
.contact .inner .btn-list li a::before {
  background: url(../images/index/icon_arrow_02.svg) no-repeat;
  background-position: center center;
  content: "";
  display: inline-block;
  height: 14px;
  margin-right: 5%;
  width: 14px;
}
@media screen and (min-width: 1025px) {
  .contact .inner .btn-list li a:hover {
    background: #231815;
    color: #fff;
  }
  .contact .inner .btn-list li a:hover::before {
    background: url(../images/index/icon_arrow_02_w.svg) no-repeat;
    background-position: center center;
    content: "";
    display: inline-block;
    height: 14px;
    margin-right: 5%;
    width: 14px;
  }
}