/*--------------------------------------------------------------

--------------------------------------------------------------*/
main {
  overflow: hidden;
}

#mv {
  height: 684px;
  background: url(../images/top/mv_ph.jpg) center center/cover no-repeat;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
}
#mv .txt {
  height: 100%;
  width: 100%;
  max-width: 1252px;
  padding: 0 50px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  color: #fff;
}
#mv .txt .frame {
  background: #01823F;
  width: 196px;
  height: 36px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 22px;
  font-weight: bold;
  color: #fff;
}
#mv .txt .catchcopy {
  font-size: 56px;
  font-weight: bold;
  margin-top: 15px;
  letter-spacing: 0.1em;
}
#mv .txt .inline {
  font-size: 32px;
  font-weight: bold;
}
#mv .txt .inline .medium {
  font-weight: 400;
}
#mv .policy {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 272px;
  height: 80px;
  background: #01823F;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  color: #fff;
  font-weight: bold;
  letter-spacing: 0.15em;
}
@media (max-width: 767px) {
  #mv {
    height: 100svh;
    max-height: 162.8571428571vw;
    background: url(../images/top/mvj_ph_sp.jpg) center center/cover no-repeat;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
  }
  #mv .txt {
    height: 100%;
    width: 100%;
    max-width: 100%;
    padding: 0 5vw;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    color: #fff;
  }
  #mv .txt .frame {
    width: auto;
    max-width: 300px;
    padding: 0 15px;
    height: auto;
    font-size: 4vw;
  }
  #mv .txt .catchcopy {
    font-size: 9.5vw;
    margin-top: 15px;
    letter-spacing: 0.1em;
  }
  #mv .txt .inline {
    margin-top: 5vw;
    font-size: 6vw;
    line-height: 1.2;
  }
  #mv .policy {
    left: 0;
    width: 240px;
    height: 70px;
  }
}

#about {
  background: #F6F6F6;
  padding-top: 130px;
}
#about .inner {
  background: #F6F6F6 url(../images/top/about_logo.svg) 180px 60px no-repeat;
  display: flex;
  flex-wrap: wrap;
}
#about .hset {
  width: 50%;
}
#about .hset .frame {
  background: #01823F;
  font-size: 48px;
  font-weight: 200;
}
#about .hset .inline {
  display: block;
  font-size: 48px;
  margin-top: 12px;
}
#about .body {
  min-height: 440px;
  width: 50%;
  padding-top: 40px;
}
#about .body p {
  letter-spacing: 0.1em !important;
}
#about .body .btn {
  margin-top: 30px;
}
#about .photo {
  width: calc(100% + 220px);
  margin-right: -220px;
  height: 320px;
  background: url(../images/top/about_ph.jpg) center center/cover;
  border-radius: 8px;
}
@media (max-width: 767px) {
  #about {
    background: #F6F6F6;
    padding-top: 80px;
  }
  #about .inner {
    background-position: calc(50% + 20px) 60px;
    background-size: 300px;
    display: blcok;
  }
  #about .hset {
    width: 100%;
  }
  #about .hset .frame {
    font-size: 28px;
  }
  #about .hset .inline {
    display: block;
    font-size: 28px;
    margin-top: 12px;
  }
  #about .body {
    min-height: 20px;
    width: auto;
    padding-top: 40px;
  }
  #about .body .btn {
    margin-top: 30px;
  }
  #about .photo {
    margin-top: 40px;
    width: 100%;
    margin-right: auto;
    height: 35vw;
    background: url(../images/top/about_ph.jpg) center center/cover;
  }
}

#products {
  background: #F6F6F6;
  padding-bottom: 120px;
  padding-top: 130px;
}
#products ul {
  display: flex;
  flex-wrap: wrap;
  margin-top: 110px;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.16);
}
#products ul li {
  width: 33.3333%;
  border-left: 1px solid #D4D4D4;
  border-bottom: 1px solid #D4D4D4;
  position: relative;
}
#products ul li:nth-child(1), #products ul li:nth-child(4) {
  border-left: none;
}
#products ul li:nth-child(n+4) {
  border-bottom: none;
}
#products ul li figure {
  height: 100%;
}
#products ul li figure img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
#products ul li a {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background: #fff;
  transition: background-color 0.3s;
}
#products ul li a h3 {
  margin: 0 0 25px;
  font-size: 24px;
  font-weight: bold;
  transition: 0.3s;
}
#products ul li a:not(:hover) span {
  color: #8E8E8E;
}
#products ul li a:hover {
  background: none;
}
#products ul li a:hover h3 {
  color: #fff;
}
#products ul li a:hover .detailtxt {
  color: #fff;
}
#products .introduce {
  text-align: center;
  margin-top: 60px;
  font-size: 24px;
  font-weight: bold;
}
@media (max-width: 767px) {
  #products {
    padding-bottom: 80px;
    padding-top: 110px;
  }
  #products ul {
    display: flex;
    flex-wrap: wrap;
    margin-top: 50px;
  }
  #products ul li {
    width: 50%;
    border-left: 1px solid #D4D4D4 !important;
    border-bottom: 1px solid #D4D4D4 !important;
    position: relative;
  }
  #products ul li:nth-child(odd) {
    border-left: none !important;
  }
  #products ul li:nth-child(n+5) {
    border-bottom: none !important;
  }
  #products ul li a h3 {
    margin: 0 0 25px;
    font-size: 16px;
  }
  #products ul li a:not(:hover) span {
    color: #8E8E8E;
  }
  #products ul li a:hover {
    background: none;
  }
  #products ul li a:hover h3 {
    color: #fff;
  }
  #products ul li a:hover .detailtxt {
    color: #fff;
  }
  #products .introduce {
    text-align: center;
    margin-top: 40px;
    font-size: 24px;
    font-weight: bold;
  }
}

#company, #recruit {
  margin-top: 70px;
  padding-top: 60px;
  background: #fff;
}
#company .wrapper, #recruit .wrapper {
  height: 320px;
  background: url(../images/top/company_ph.jpg) center center/cover no-repeat;
  border-radius: 8px;
  box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.16);
  overflow: hidden;
}
#company .hset, #recruit .hset {
  margin-bottom: -40px;
}
#company ul, #recruit ul {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
#company ul li, #recruit ul li {
  width: 288px;
  color: #fff;
  height: 100px;
  display: flex;
  justify-content: center;
  align-items: center;
}
#company ul li a, #recruit ul li a {
  display: flex;
  justify-content: center;
  width: 100%;
  font-size: 20px;
  font-weight: bold;
  border-bottom: 1px solid #fff;
  padding-bottom: 20px;
}
@media (max-width: 767px) {
  #company, #recruit {
    margin-top: 40px;
    padding-top: 40px;
  }
  #company .wrapper, #recruit .wrapper {
    height: auto;
    padding: 70px 0 60px;
  }
  #company .hset, #recruit .hset {
    margin-bottom: -30px;
  }
  #company ul, #recruit ul {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }
  #company ul li, #recruit ul li {
    width: 288px;
    color: #fff;
    height: 70px;
    display: flex;
    justify-content: center;
    align-items: center;
  }
}

#recruit {
  margin-top: auto;
}
#recruit .wrapper {
  background-image: url(../images/top/recruit_bg.jpg);
}

#news {
  padding-top: 130px;
  padding-bottom: 130px;
}
#news .inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
#news .ttl .btn {
  margin-top: 50px;
}
#news .ttl .btn a {
  color: #8E8E8E;
  font-weight: bold;
}
#news .ttl .btn a:hover {
  color: #01823F;
}
#news .article {
  margin: 0;
  width: 670px;
  padding-top: 40px;
  border-bottom: 1px solid #D4D4D4;
}
#news .article li {
  border-top: 1px solid #D4D4D4;
  padding: 30px 0;
}
#news .article li a {
  display: flex;
  flex-wrap: wrap;
}
#news .article li a p.date {
  width: 100%;
  font-size: 14px;
  color: #8E8E8E;
  font-weight: bold;
}
#news .article li a .heading {
  width: calc(100% - 70px);
}
@media (max-width: 767px) {
  #news {
    padding-top: 100px;
    padding-bottom: 100px;
  }
  #news .inner {
    display: block;
  }
  #news .ttl .btn {
    margin-top: 50px;
  }
  #news .article {
    margin: 0;
    width: auto;
    padding-top: 40px;
    border-bottom: 1px solid #D4D4D4;
  }
  #news .article li {
    padding: 20px 0;
  }
  #news .article li a p.date {
    font-size: 13px;
  }
  #news .article li a .heading {
    width: calc(100% - 70px);
  }
}
/*# sourceMappingURL=top.css.map */