:root {
  --base: #000;
  --gray1: #7A8182;
  --gray2: #F0F4F5;
  --gray3: #F0F4F4;
  --gray4: #494949;
  --gray5: #E5EBEB;
  --gray6: #D6D6D6;
  --gray7: #707070;
  --gray8: #C4C4C4;
  --gray9: #E1E1E1;
  --gray10: #ABABAB;
  --green1: #229F91;
  --green2: #56C69E;
  --green3: #F0F4F5;
  --green4: #098374;
  --green5: #F0F4F4;
  --red1: #FF0000;
  --red2: #F76E5C;
  --blue: #0377CA;
}

@media only screen and (min-width: 768px) {
  a[href^="tel:"] {
    pointer-events: none;
    cursor: default;
  }
}
@media only screen and (max-width: 768px) {
  .home {
    display: block;
  }
}
.home-mv {
  margin-top: 9rem;
  height: 77.8rem;
  color: #fff;
  position: relative;
  width: 100%;
  z-index: -1;
}
@media only screen and (max-width: 768px) {
  .home-mv {
    height: calc(100vh - 6rem);
    margin-top: 6rem;
  }
}
.home-mv-video {
  position: absolute;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  left: 0;
  top: 0;
}
.home-mv-lead {
  padding-top: 14.4rem;
  text-align: left;
  max-width: 120rem;
  margin: 0 auto;
  font-size: 6rem;
  font-weight: bold;
  line-height: 1.2;
  position: relative;
  z-index: 2;
}
@media only screen and (max-width: 768px) {
  .home-mv-lead {
    font-size: 4.8rem;
    margin-bottom: 1rem;
    padding: 10rem 2rem 0;
  }
}
.home-mv-eng {
  font-size: 3rem;
  text-align: left;
  max-width: 120rem;
  margin: 0 auto;
  font-weight: bold;
  position: relative;
  z-index: 2;
}
@media only screen and (max-width: 768px) {
  .home-mv-eng {
    font-size: 2rem;
    padding: 0 2rem 0;
  }
}
.home-btn {
  margin-top: 5rem;
  text-align: center;
}
.home-btn_link {
  background: #EFEFEF;
  font-size: 1.6rem;
  font-weight: bold;
  padding: 1.8rem;
  width: 27.3rem;
  color: #000;
  border: 0.1rem solid #000;
  display: inline-block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  position: relative;
}
.home-btn_link:after {
  content: "";
  width: 1rem;
  height: 1rem;
  display: block;
  position: absolute;
  right: 2rem;
  top: calc(50% - 0.6rem);
  rotate: -45deg;
  border-right: 0.1rem solid #000;
  border-bottom: 0.1rem solid #000;
}
.home-btn_link:hover {
  background: #DB0100;
  color: #fff;
}
.home-btn_link:hover:after {
  border-color: #fff;
}
.home-ttl {
  margin-bottom: 3rem;
  text-align: center;
}
.home-ttl-main {
  font-size: 2.8rem;
}
@media only screen and (max-width: 768px) {
  .home-ttl-main {
    font-size: 2.4rem;
  }
}
.home-ttl-eng {
  display: block;
  font-size: 2rem;
  color: #DB0100;
}
.home-news {
  max-width: 99.4rem;
  margin: 0 auto 12rem;
  text-align: left;
}
@media only screen and (max-width: 768px) {
  .home-news {
    margin-bottom: 10rem;
    padding-left: 2rem;
    padding-right: 2rem;
  }
}
.home-business {
  margin-bottom: 12rem;
}
@media only screen and (max-width: 768px) {
  .home-business {
    margin-bottom: 20rem;
  }
}
.home-business-slider {
  margin-left: calc((100vw - 120rem) / 2);
}
@media only screen and (max-width: 768px) {
  .home-business-slider {
    margin: 0 0 0 2rem;
  }
}
.home-business-slider_link {
  width: 48rem;
  display: block;
  padding-right: 3.6rem;
  text-align: left;
  color: #000;
  font-weight: bold;
}
@media only screen and (max-width: 768px) {
  .home-business-slider_link {
    width: 78vw;
    padding-right: 3rem;
  }
}
.home-business-slider_link-thumb {
  margin-bottom: 2rem;
  overflow: hidden;
}
.home-business-slider_link-thumb img {
  -webkit-transition: 0.2s ease-in-out;
  transition: 0.2s ease-in-out;
}
.home-business-slider_link-ttl {
  font-size: 2.8rem;
}
.home-business-slider_link-desc {
  font-size: 1.6rem;
  line-height: 2;
}
.home-business-slider_link:hover img {
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}
.home-business-slider .slick-dots {
  top: -4rem;
  bottom: unset;
  right: calc((100vw - 113rem) / 2);
  left: unset;
  text-align: right;
}
@media only screen and (max-width: 768px) {
  .home-business-slider .slick-dots {
    right: 1rem;
    top: unset;
    bottom: -10rem;
    text-align: center;
  }
}
.home-business-slider .slick-dots li button:before {
  background: #B5B5B5;
  border-radius: 50%;
  width: 1.68rem;
  height: 1.68rem;
  opacity: 1;
}
.home-business-slider .slick-dots li button:hover:before {
  background: #BC0200;
}
.home-business-slider .slick-dots li.slick-active button:before {
  background: #BC0200;
}
.home-business-slider .slick-next {
  width: 7rem;
  height: 7rem;
  background: url(../img/common/ic_slider_arrow.svg) no-repeat center;
  right: calc((100vw - 120rem) / 2);
}
.home-business-slider .slick-next:hover {
  background: url(../img/common/ic_slider_arrow_hover.svg) no-repeat center;
  opacity: 1;
}
@media only screen and (max-width: 768px) {
  .home-business-slider .slick-next {
    background: url(../img/common/ic_slider_arrow.svg) no-repeat center;
    background-size: contain;
    width: 5.3rem;
    height: 5.3rem;
    top: unset;
    bottom: -9rem;
    right: calc(50% - 5rem);
  }
  .home-business-slider .slick-next:hover {
    background: url(../img/common/ic_slider_arrow.svg) no-repeat center;
    background-size: contain;
  }
}
.home-business-slider .slick-prev {
  width: 7rem;
  height: 7rem;
  background: url(../img/common/ic_slider_arrow_prev.svg) no-repeat center;
  z-index: 2;
}
.home-business-slider .slick-prev:hover {
  background: url(../img/common/ic_slider_arrow_prev_hover.svg) no-repeat center;
  opacity: 1;
}
@media only screen and (max-width: 768px) {
  .home-business-slider .slick-prev {
    background: url(../img/common/ic_slider_arrow_prev.svg) no-repeat center;
    background-size: contain;
    width: 5.3rem;
    height: 5.3rem;
    top: unset;
    bottom: -9rem;
    left: calc(50% - 7rem);
  }
  .home-business-slider .slick-prev:hover {
    background: url(../img/common/ic_slider_arrow_prev.svg) no-repeat center;
    background-size: contain;
    opacity: 1;
  }
}
.home-bg-fix {
  height: 45rem;
  position: relative;
  clip-path: inset(0);
}
@media only screen and (max-width: 768px) {
  .home-bg-fix {
    height: 50rem;
  }
}
.home-bg-fix img {
  -o-object-fit: cover;
     object-fit: cover;
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
}
.home-works {
  padding-top: 12rem;
  margin-bottom: 12rem;
}
@media only screen and (max-width: 768px) {
  .home-works {
    padding-top: 10rem;
    margin-bottom: 10rem;
  }
}
.home-works-list {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr 3.6rem 1fr 3.6rem 1fr;
  grid-template-columns: repeat(3, 1fr);
  gap: 3.6rem;
  max-width: 120rem;
  margin: 0 auto;
}
@media only screen and (max-width: 768px) {
  .home-works-list {
    margin-left: 2rem;
    margin-bottom: 12rem;
    display: block;
  }
  .home-works-list .slick-next {
    background: url(../img/common/ic_slider_arrow.svg) no-repeat center;
    right: calc((100vw - 120rem) / 2);
    background-size: contain;
    width: 5.3rem;
    height: 5.3rem;
    top: unset;
    bottom: -9rem;
    right: calc(50% - 5rem);
  }
  .home-works-list .slick-prev {
    background: url(../img/common/ic_slider_arrow_prev.svg) no-repeat center;
    z-index: 2;
    background-size: contain;
    width: 5.3rem;
    height: 5.3rem;
    top: unset;
    bottom: -9rem;
    left: calc(50% - 7rem);
  }
}
.home-works-list_item {
  display: block;
  color: #000;
  text-align: left;
  font-weight: bold;
  position: relative;
}
@media only screen and (max-width: 768px) {
  .home-works-list_item {
    width: 78vw !important;
    padding-right: 3rem;
  }
}
.home-works-list_item-thumb {
  position: relative;
  overflow: hidden;
}
.home-works-list_item-thumb img {
  -webkit-transition: 0.2s ease-in-out;
  transition: 0.2s ease-in-out;
  aspect-ratio: 376/282;
  -o-object-fit: cover;
     object-fit: cover;
  overflow: hidden;
}
.home-works-list_item-cat {
  position: relative;
  left: 1rem;
  top: -1.8rem;
  display: inline-block;
  padding: 0.8rem 1.4rem;
  font-size: 1.4rem;
  font-weight: bold;
  color: #fff;
}
.home-works-list_item-cat.--reform {
  background: #1F8B40;
}
.home-works-list_item-cat.--pavement {
  background: #203F93;
}
.home-works-list_item-cat.--construct {
  background: #9A5817;
}
.home-works-list_item-ttl {
  font-size: 2rem;
  margin-bottom: 0.5rem;
}
.home-works-list_item-desc {
  font-size: 1.6rem;
  line-height: 2;
}
.home-works-list_item:hover img {
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}
.home-sustainer {
  max-width: 120rem;
  margin: 0 auto 12rem;
}
@media only screen and (max-width: 768px) {
  .home-sustainer {
    margin-bottom: 10rem;
  }
}
.home-sustainer-link {
  overflow: hidden;
  display: inline-block;
}
.home-sustainer-link img {
  -webkit-transition: 0.2s ease-in-out;
  transition: 0.2s ease-in-out;
  overflow: hidden;
}
.home-sustainer-link:hover img {
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}
.home-bnr {
  max-width: 120rem;
  margin: 0 auto 12rem;
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr 3.6rem 1fr;
  grid-template-columns: repeat(2, 1fr);
  gap: 3.6rem;
}
@media only screen and (max-width: 768px) {
  .home-bnr {
    -ms-grid-columns: 1fr;
    grid-template-columns: repeat(1, 1fr);
    gap: 5rem;
    padding: 0 2rem;
    margin-bottom: 10rem;
  }
}
.home-bnr-link {
  overflow: hidden;
  display: inline-block;
}
.home-bnr-link img {
  -webkit-transition: 0.2s ease-in-out;
  transition: 0.2s ease-in-out;
  overflow: hidden;
}
.home-bnr-link:hover img {
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}
.home-bnr-link:last-child {
  border: 0.1rem solid #000;
}

.char {
  opacity: 0;
  display: inline-block;
}

.js-anim-fade {
  -webkit-transform: translateY(8rem);
          transform: translateY(8rem);
  opacity: 0;
  -webkit-transition: 0.5s ease-in-out;
  transition: 0.5s ease-in-out;
}
.js-anim-fade.home-mv-lead, .js-anim-fade.home-mv-eng {
  -webkit-transition: 0.7s ease-in-out;
  transition: 0.7s ease-in-out;
  -webkit-transform: translateY(0rem);
          transform: translateY(0rem);
  -webkit-transform: translateX(8rem);
          transform: translateX(8rem);
}
.js-anim-fade.js-show {
  opacity: 1;
  -webkit-transform: translateX(0rem);
          transform: translateX(0rem);
  -webkit-transform: translateY(0rem);
          transform: translateY(0rem);
}