@charset "utf-8";
.home {
  position: relative;
}
/* ==================================================== */
/*  #mainvisual
/* ==================================================== */
.mainvisual-wrapper {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100vh;
}
@keyframes float-arrow {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(8px);
  }
}
.mainvisual-wrapper .mainvisual-arrow {
  position: absolute;
  bottom: 34px;
  left: min(4.61vw, 63px);
  z-index: 777;
  width: 8px;
  animation: float-arrow 1.8s ease-in-out infinite;
}
#mainvisual {
  width: 100%;
  height: 100vh;

  inset: 0;
  will-change: transform;
}
#mainvisual:after {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  background-color: rgb(0 0 0 / 20%);
  content: "";
}
#mainvisual .slot {
  position: absolute;
  background-position: center;
  background-size: cover;
  transition: opacity 1.5s ease-in-out;
  opacity: 0;

  inset: 0;
}
@keyframes kenBurns {
  from {
    transform: scale(1);
  }
  to {
    transform: scale(1.1);
  }
}
#label {
  position: absolute;
  right: 52px;
  bottom: 133px;
  z-index: 885;
  font-weight: 700;
  color: #fff;
  opacity: 1;
}
#label .label-slide {
  position: relative;
  display: none;
  padding-right: 160px;
  text-align: right;
}
#label .label-slide.active {
  display: block;
}
#label .label-slide a {
  display: inline-block;
}
#label .label-slide span {
  display: inline-block;
  padding-bottom: 10px;
  font-size: 1.1rem;
}
#label .label-slide p {
  font-size: var(--fs18);
}
#label .label-slide figure {
  position: absolute;
  right: 0;
  bottom: -22px;
  width: 128.5px;
}
@media screen and (max-width: 1024px) {
}
@media screen and (max-width: 767px) {
  #label {
    right: 17px;
    bottom: 147px;
  }
  #label .label-slide {
    padding-right: 79px;
  }
  #label .label-slide span {
    padding-bottom: 5px;
    font-size: 10px;
  }
  #label .label-slide p {
    font-size: 1.4rem;
  }
  #label .label-slide figure {
    bottom: 0;
    width: 58px;
  }
}
/* ==================================================== */
/*  .read-area
/* ==================================================== */
.read-area {
  position: relative;
  padding-top: 160px;
}
.read-area .inner {
  margin-left: 120px;
  padding-bottom: 314px;
}
.read-area .tlt {
  margin-bottom: 56px;
}
.read-area .tlt h2 {
  font-size: var(--fs34);
  font-weight: 700;
  line-height: 1.2;
  color: #2d5b60;
}
.read-area .tlt h3 {
  padding-top: 6px;
  font-size: var(--fs15);
  font-weight: 700;
  color: #2d5b60;
}
.read-area p {
  margin-bottom: 57px;
  font-size: var(--fs17);
  line-height: 2.2;
}
.read-area .read-img {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 59.297218vw;
  max-width: 810px;
}
.read-area .read-img .read-txt-img {
  position: absolute;
  top: -19.033675vw;
  right: 258px;
  width: 4.721816vw;
  max-width: 64.5px;
}
@media screen and (max-width: 1130px) {
  .read-area {
    padding-top: 100px;
  }
  .read-area .inner {
    margin-left: 0;
  }
}
@media screen and (max-width: 1024px) {
  .read-area .inner {
    padding-bottom: 280px;
  }
}
@media screen and (max-width: 767px) {
  .read-area {
    padding-top: 53px;
  }
  .read-area .inner {
    padding-bottom: 0;
  }
  .read-area .tlt {
    margin-bottom: 78px;
  }
  .read-area .tlt h2 {
    font-size: var(--fs20);
  }
  .read-area .tlt h3 {
    padding-top: 5px;
    font-size: var(--fs12);
  }
  .read-area .read-img {
    position: static;
    width: 82.1333vw;
    max-width: none;
    margin: 0 -5.3vw 50px auto;
  }
  .read-area .read-img .read-txt-img {
    position: absolute;
    top: -21vw;
    right: 45px;
    width: 33.52px;
    max-width: 33.52px;
  }
  .read-area p {
    width: 85.373134%;
    margin: 0 auto 50px;
    font-size: var(--fs14);
    line-height: 2;
  }
}
/* ==================================================== */
/*  .works-area
/* ==================================================== */
.works-area {
  margin-bottom: 160px;
  padding-top: 70px;
}
.works-area .flex {
  justify-content: space-between;
}
.works-area .flex .txt-area {
  padding-left: 30px;
}
.works-area .flex .txt-area .tlt {
  margin-bottom: 30px;
}
.works-area .flex .txt-area .tlt span {
  display: inline-block;
  padding-bottom: 5px;
  font-size: var(--fs14);
  font-weight: 700;
}
.works-area .flex .txt-area .tlt h2 {
  font-size: var(--fs49);
  font-weight: 700;
  line-height: 1;
  color: #2d5b60;
}
.works-area .flex .txt-area p {
  margin-bottom: 50px;
  font-size: var(--fs16);
  line-height: 1.6;
}
.works-area .flex .cate-area {
  /* width: 251px; */
  width: 20.241935%;
  margin-top: 56px;
  margin-right: 120px;
}
.works-area .flex .cate-area h3 {
  margin-bottom: 17px;
  font-size: var(--fs13);
  font-weight: 700;
  color: #4a8c80;
}
.works-area .flex .cate-area ul li {
  position: relative;
  margin-bottom: 20px;
  border-bottom: solid 1px #ddd;
  font-size: var(--fs15);
  font-weight: 700;
  color: #2d5b60;
}
.works-area .flex .cate-area ul li:last-child {
  margin-bottom: 0;
}
.works-area .flex .cate-area ul li::before {
  position: absolute;
  top: 7px;
  left: 6px;
  display: inline-block;
  width: 12px;
  height: 8px;
  background-image: url(../img/common/arrow_green.svg);
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
  transition: all 0.5s ease;
}
.works-area .flex .cate-area ul li a {
  display: block;
  padding-bottom: 14px;
  padding-left: 35px;
}
/* hover */
.works-area .flex .cate-area ul li:hover::before {
  left: 11px;
}
.works-area .grid-img {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-top: 65px;

  gap: 65px 5.241%;
}
.works-area .grid-img figure {
  /* width: 803px; */
  width: 64.758065%;
}
.works-area .grid-img figure:nth-child(2),
.works-area .grid-img figure:nth-child(3),
.works-area .grid-img figure:nth-child(6) {
  width: 29.596774%;
}
.works-area .grid-img figure:nth-child(4) {
  margin-top: 110px;
}
.works-area .grid-img figure figcaption {
  padding-top: 10px;
  font-size: var(--fs15);
  font-weight: 700;
}
.works-area .grid-img figure figcaption span {
  display: block;
  padding-top: 4px;
  font-size: var(--fs12);
  font-weight: 400;
  color: #4a8c80;
}
@media screen and (max-width: 1130px) {
  .works-area {
    margin-bottom: 100px;
  }
  .works-area .flex {
    justify-content: flex-start;

    gap: 90px;
  }
  .works-area .flex .txt-area {
    padding-left: 0;
  }
  .works-area .flex .cate-area {
    margin-right: 0;
  }
}
@media screen and (max-width: 1024px) {
  .works-area .flex {
    gap: 55px;
  }
  .works-area .flex .cate-area {
    min-width: 240px;
  }
  .works-area .grid-img {
    gap: 40px 5.241%;
  }
  .works-area .grid-img figure:nth-child(4) {
    margin-top: 60px;
  }
  .works-area .grid-img figure figcaption {
    font-size: var(--fs14);
  }
}
@media screen and (max-width: 767px) {
  .works-area {
    margin-bottom: 75px;
  }
  .works-area .flex {
    display: block;
  }
}
/* ==================================================== */
/*  .news-area
/* ==================================================== */
.news-area {
  background-color: #f8f8f8;
}
.news-area .flex {
  max-width: 1180px;
  margin: auto;
  padding: 166px 0 196px;
}
.news-area .flex .tlt {
  flex: 1;
}
.news-area .flex .tlt span {
  display: inline-block;
  padding-bottom: 5px;
  font-size: var(--fs14);
  font-weight: 700;
}
.news-area .flex .tlt h2 {
  margin-bottom: 40px;
  font-size: var(--fs49);
  font-weight: 700;
  line-height: 1;
  color: #2d5b60;
}
.news-area .flex .news-contents {
  width: 65.5%;
  margin-top: 100px;
}
.news-area .flex .news-contents article {
  margin-bottom: 29px;
  border-bottom: solid 1px #ddd;
}
.news-area .flex .news-contents article:last-child {
  margin-bottom: 0;
}
.news-area .flex .news-contents article a {
  display: block;
  padding-bottom: 26px;
}
.news-area .flex .news-contents article .news-flex {
  display: flex;

  gap: 58px;
}
.news-area .flex .news-contents article .news-flex time {
  padding-left: 12px;
  font-size: var(--fs15);
  font-weight: 700;
  color: #4a8c80;
}
.news-area .flex .news-contents article .news-flex p {
  font-size: var(--fs16);
  color: #313030;
}
@media screen and (max-width: 1024px) {
  .news-area .flex {
    padding: 70px 0;
  }
  .news-area .flex .news-contents {
    width: 56%;
    margin-top: 50px;
  }
  .news-area .flex .news-contents article {
    margin-bottom: 18px;
  }
  .news-area .flex .news-contents article .news-flex {
    display: block;

    gap: 35px;
  }
  .news-area .flex .news-contents article .news-flex time {
    display: block;
    padding: 0 0 7px 0;
  }
  .news-area .flex .news-contents article a {
    padding-bottom: 18px;
  }
}
/* ==================================================== */
/*  .recruit-area
/* ==================================================== */
.recruit-area {
  width: 100%;
  height: 578px;
  padding: 103px 0 0;
  background-image: url(../img/home/recruit_bg.webp);
  background-position: center;
  background-size: cover;
}
.recruit-area .flex {
  max-width: 1016px;
  margin: auto;

  gap: 75px;
}
.recruit-area .tlt {
  flex: 1;
}
.recruit-area .tlt span {
  display: inline-block;
  padding-bottom: 5px;
  font-size: var(--fs14);
  font-weight: 700;
  color: #fff;
}
.recruit-area .tlt h2 {
  margin-bottom: 40px;
  font-size: var(--fs49);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -1.2px;
  color: #fff;
}
.recruit-area .txt-box {
  width: 73%;
  margin-top: 117px;
}
.recruit-area .txt-box p {
  max-width: 511px;
  margin-bottom: 45px;
  font-size: var(--fs16);
  line-height: 1.9;
  letter-spacing: 0.5px;
  color: #fff;
}
.recruit-area .txt-box .align {
  display: flex;
  justify-content: flex-end;
  margin-right: 47px;
}
.recruit-area .txt-box .align .cmn-n-btn {
  border: solid 1px #fff;
  background: linear-gradient(to right, rgb(255 255 255 / 30%) 50%, transparent 50%);
  background-position: right center;
  background-size: 200% 101%;
  color: #fff;
}
.recruit-area .txt-box .align .cmn-n-btn:before {
  background-color: #fff;
}
.recruit-area .txt-box .align .cmn-n-btn:after {
  background-image: url(../img/common/arrow_white.svg);
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
}
/* hover */
.recruit-area .txt-box .align .cmn-n-btn:hover {
  background-position: left center;
  color: #fff;
  transition: background-position 0.4s ease, color 0.35s ease;
  opacity: 1;
}
@media screen and (max-width: 1130px) {
  .recruit-area {
    height: auto;
    padding: 50px 0 70px;
  }
}
@media screen and (max-width: 1024px) {
  .recruit-area .flex {
    /* max-width: 765px; */
    gap: 65px;
  }
  .recruit-area .txt-box {
    margin-top: 50px;
  }
  .recruit-area .txt-box .align {
    justify-content: flex-start;
    margin-right: 0;
  }
}
/* ==================================================== */
/*  .contact-area
/* ==================================================== */
.contact-area {
  padding: 139px 0 0;
}
.contact-area .flex {
  justify-content: space-between;
  max-width: 1020px;
  margin: auto;
}
.contact-area .tlt {
  flex: 1;
}
.contact-area .tlt span {
  display: inline-block;
  padding-bottom: 5px;
  font-size: var(--fs14);
  font-weight: 700;
  color: #2d5b60;
}
.contact-area .tlt h2 {
  margin-bottom: 40px;
  font-size: var(--fs49);
  font-weight: 700;
  line-height: 1;
  color: #2d5b60;
}
.contact-area .txt-box {
  width: 66.47%;
  margin-top: 53px;
}
.contact-area .txt-box p {
  margin-bottom: 48px;
  font-size: var(--fs16);
  line-height: 2.1;
  color: #2d5b60;
}
.contact-area .txt-box .contact-link {
  display: flex;
  align-items: flex-end;

  gap: 62px;
}
.contact-area .txt-box .contact-link a {
  position: relative;
  display: block;
  min-width: 283px;
  padding-right: 20px;
  padding-bottom: 20px;
  border-bottom: solid 1px #4a8c80;
  font-size: var(--fs20);
  font-weight: 700;
  text-align: right;
  color: #2d5b60;
}
.contact-area .txt-box .contact-link a:before {
  position: absolute;
  top: 6px;
  left: 21px;
  display: inline-block;
  width: 21.82px;
  height: 20.45px;
  background-image: url(../img/common/icon_mail.svg);
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
}
.contact-area .txt-box .contact-link a:last-child {
  padding-right: 38px;
  font-size: var(--fs28);
  font-weight: 500;
}
.contact-area .txt-box .contact-link a:last-child:before {
  position: absolute;
  top: auto;
  bottom: 25px;
  left: 26px;
  display: inline-block;
  width: 23.21px;
  height: 23.21px;
  background-image: url(../img/common/icon_tell.svg);
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
}
.contact-area .txt-box .contact-link a:last-child span {
  display: block;
  font-size: var(--fs13);
  font-weight: 400;
}
@media screen and (max-width: 1130px) {
  .contact-area {
    padding-top: 90px;
  }
  .contact-area .txt-box .contact-link {
    gap: 30px;
  }
  .contact-area .txt-box .contact-link a {
    min-width: auto;
    padding: 0 17px 18px 45px !important;
  }
  .contact-area .txt-box .contact-link a:before {
    left: 17px !important;
  }
}
@media screen and (max-width: 1024px) {
  .contact-area {
    padding-top: 70px;
  }
  .contact-area .flex {
    display: block;
  }
  .contact-area .txt-box {
    width: 100%;
    margin-top: 0;
  }
  .contact-area .txt-box .contact-link a {
    min-width: 240px;
  }
}

@media screen and (max-width: 767px) {
  .contact-area .txt-box .contact-link {
    display: block;
  }
}
