@charset "utf-8";
/* CSS Document */


/*================================
MV
================================*/
#mv{
  position: relative;
  background-image: url("../img/top/mv.jpg");
  background-repeat: no-repeat;
  width: 102%;
}

#mv_txt{
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  color: #fff;
  font-size: calc(1.2rem + 1.5vw);
  filter: drop-shadow(1px 1px 3px rgba(34, 34, 34, 0.5));
}
#mv_txt p{
  font-size: 70%;
  font-weight: bold;
  margin-bottom: .5rem;
}
#mv_txt h1{
  font-size: calc(1.2rem + 1.5vw);
  font-weight: bold;
  margin-bottom: 0;
}

@media (min-width: 1200px){
  #mv_txt{
    font-size: 2.5rem;
  }
}
@media (min-width: 768px){
  #mv{
    padding-top: 48%;
    background-size: cover;
    background-position: center;
    animation: mv_pc 2.5s linear;
    animation-fill-mode:forwards;
  }
}
@media (max-width: 767px){
  #mv{
    padding-top: 140%;
    background-size: auto 100%;
    animation: mv_sp 2.5s linear;
    animation-fill-mode:forwards;
  }
}

/*MV アニメーション PC*/
@keyframes mv_pc{
  0% {
    background-position: 0 0;
  }
  100% {
    background-position: -15px 0;
  }
}
@keyframes mv_sp{
  0% {
    background-position: bottom right 25%;
  }
  100% {
    background-position: bottom right 23%;
  }
}

/*スクロールダウン
================================*/
.scroll-down{
  position: absolute;
  bottom: 60px;
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
}
.scroll-text{
  color: #fff;
  font-size: .8rem;
  font-weight: bold;
}
.scroll-line{
  position: absolute;
  top: 30px;
  left: 50%;
  width: 2px;
  height: 55px;
  overflow: hidden;
  background-color: rgba(255,255,255,.5);
}
.scroll-line::after{
  content: '';
  position: absolute;
  width: 2px;
  height: 45px;
  background-color: #fff;
  animation: scrolldown 1.4s ease-in-out infinite;
}
@keyframes scrolldown{
  0% {
    transform: translateY(-100%);
  }
  100% {
    transform: translateY(100%);
  }
}

/*================================
紹介
================================*/
#intro .container{
  position: relative;
}
.intro_photo{
  position: relative;
}
.photo_s{
  position: absolute;
  left: 0;
  bottom: -15%;
  max-width: 40%;
}
.intro_txt p:last-child {
  margin-bottom: 0;
}
@media (min-width: 992px){
  .intro_txt{
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    z-index: 1;
  }
}
@media (min-width: 768px) and (max-width:991px){
  .intro_photo{
    margin-left: auto;
    margin-right: auto;
  }
}
@media (min-width: 768px){
  .intro_photo{
    max-width: 60%;
    padding-left: 6%;
  }
}
@media (max-width: 991px){
  .intro_txt{
    margin-bottom: 2rem;
  }
}
@media (max-width: 767px){
  .intro_photo{
    padding-left: 10%;
  }
}

/*================================
事業紹介
================================*/
@media (min-width: 768px){
  #works .container{
    position: relative;
  }
  #works .btn_detail{
    position: absolute;
    top: 0;
    right: .75rem;
    margin-top: 0;
  }
}

/*工事
================================*/
.const_frame{
  position: relative;
}
.const_txt{
  position: absolute;
  z-index: 1;
  background-color: #fff;
}
.const_txt h3{
  position: relative;
  font-weight: bold;
  margin-bottom: 1rem;
}
.const_txt h3::after{
  content:'';
  display: inline-block;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  width: 18px;
  height: 1px;
  background-color: #CACACA;
}
.const_list ul{
  padding-left: 1.6rem;
  margin-bottom: 0;
}
.const_list ul:not(:last-child){
  margin-right: 2rem;
}
@media (min-width: 992px){
  .const_txt{
    top: 80%;
    padding: 1.25rem 2rem;
  }
  .const_txt h3::after{
    left: -2rem;
  }
  .const_list{
    display: flex;
  }
}
@media (min-width: 768px){
  #works .row > div:nth-child(even) > .const_frame{
    margin-top: 10%;
  }
  .const_txt{
    left: 8%;
    right: 8%;
  }
}
@media (max-width: 991px){
  #works .row > div:not(:last-child) > .const_frame{
    margin-bottom: 110px;
  }
  #works .row > div:last-child > .const_frame{
    margin-bottom: 70px;
  }
  .const_txt{
    top: 65%;
    padding: 1rem;
  }
  .const_txt h3::after{
    left: -1.5rem;
  }
}
@media (max-width: 767px){
  .const_txt{
    left: 4%;
    right: 4%;
  }
  .const_list ul{
    font-size: .85rem;
  }
}

/*================================
歴史・工事・会社案内
================================*/
#company{
  background-image: url("../img/top/bg_company.png");
  background-repeat: repeat-x;
  background-position: bottom center;
}
@media (min-width: 768px){
  #company{
    background-size: auto 100%;
  }
}

/*リンク
================================*/
.box_link{
  position: relative;
  overflow: hidden;
}
.box_link::after{
  content: '';
  display: inline-block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to top, rgba(0, 49, 71, .5) 0%, rgba(0, 49, 71, 0) 30%, rgba(0, 49, 71, 0) 100%);
  z-index: 0;
}
.box_link img,
.box_link a{
  transition: .5s;
}
.box_link h2,
.box_link a,
.box_link a span{
  position: absolute;
}
.box_link h2{
  bottom: .9rem;
  left: 1.5rem;
  color: #fff;
  font-weight: bold;
  z-index: 1;
}
.box_link a{
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
}
.box_link a span{
  bottom: 1rem;
  right: 1rem;
  background-color: #fff;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
}
.box_link a span i{
  color: #1E73DC;
  font-size: .75rem;
}
@media (hover: hover){
  .box_link:hover img{
    transform:scale(1.1,1.1);
  }
  .box_link a:hover span{
    background-color: #1E73DC;
  }
  .box_link a:hover span i{
    color: #fff;
  }

}
@media (min-width: 992px){
  .box_link h2{
    font-size: 1.8rem;
  }
  .box_link a span{
    width: 43px;
    height: 43px;
  }
}
@media (max-width: 991px){
  .box_link h2{
    font-size: 1.6rem;
  }
  .box_link a span{
    width: 40px;
    height: 40px;
  }
}
@media (max-width: 767px){
  .box_link{
    margin-bottom: .25rem;
  }
}

/*================================
協力業者の皆様へ
================================*/
#partner .sect_ttl{
  text-align: center;
}

/*================================
採用情報
================================*/
#recruit{
  position: relative;
  padding-bottom: 0 !important;
}
#recruit::after{
  content: '';
  display: inline-block;
  position: absolute;
  top: 0;
  right: 0;
  background-image: url("../img/top/bg_recruit.jpg");
  background-repeat: no-repeat;
  background-size: cover;
}
.recruit_frame h3{
  color: #1E73DC;
  font-size: calc(1.2rem + .6vw);
  font-weight: bold;
  margin-bottom: 1rem;
}
@media (min-width: 1200px){
  .recruit_frame h3{
    font-size: 1.6rem;
  }
}
@media (min-width: 768px){
  .recruit_frame{
    position: relative;
    z-index: 1;
    background-color: #fff;
    padding: 1rem;
  }
  #recruit::after{
    width: 60%;
    height: 100%;
    background-position: center;
  }
  .recruit_frame .btn_detail{
    margin-left: 0;
  }
}
@media (max-width: 767px){
  .recruit_frame{
    margin-top: 220px;
  }
  #recruit::after{
    width: 120%;
    height: 250px;
    background-position: 180%;
  }
}

/*================================
スペシャルムービー
================================*/
#movie a{
  max-width: 500px;
  margin: 0 auto;
  display: block;
  background-color: #fff;
}
@media (hover: hover){
  #movie a:hover img{
    opacity: .8;
  }
}