@charset "utf-8";
/* CSS Document */

.cty_top{padding-bottom: 40px;}
.cty_top .cty_enttl{margin-bottom: 0;}

.cty_pagelink{
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.cty_top h1{padding-top: 30px;}
.cty_pagelink ul{
  width: 224px;
  opacity: 0;
  transition: all 0.3s linear;
}
.cty_pagelink ul li:nth-last-of-type(n+2){margin-bottom: 16px;}
.cty_pagelink ul li a{
  font-size: 0.75rem;
  color: #212121;
}
.cty_pagelink ul li a::before{
  content: "";
  display: inline-block;
  width: 10px;
  margin-right: 12px;
  vertical-align: middle;
  border-top: 1px solid #212121;
}
.cty_top.active .cty_pagelink ul{opacity: 1;}

.cty_mainphbox{
  position: relative;
  aspect-ratio:2 / 1;
}

.cty_mainphbox > div{
  position: absolute;
  top:0;
  left:0;
  width:100%;
  height: 100%;
  clip-path: inset(0);
}


.cty_mainph{
  height: 482px;
  background: url("../img/construction/ph_top.jpg") center center no-repeat;
  background-size: cover;
  background-attachment: fixed;
}



.cty_description{padding: 100px 24px 60px;}
.cty_catch{
  width: 0;
  margin-bottom: 30px;
  font-size: 2rem;
  font-weight: bold;
  color: #212121;
  overflow: hidden;
  transition: width 0.3s linear;
}
.cty_catch span{
  display: block;
  width: 500px;
}
.cty_catch.active{width: 500px;}
.cty_topcopy{
  max-width: 628px;
  line-height: 2;
  color: #212121;
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.3s linear 0.15s;
}
.cty_topcopy.active{
  transform: translate(0);
  opacity: 1;
}



.cty_businessblock{
  position: relative;
  margin-bottom: 80px;
  overflow: hidden;
}
.cty_businessblock picture{
  display: block;
  width: 90vw;
  aspect-ratio: 1232/485;
}
.cty_businessblock picture img{
  width: 100%;
  height: 100%;
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.3s linear;
}
.cty_businessblock.active picture img{
  opacity: 1;
  transform: translate(0);
}
.cty_businessblock.cty_blockright picture{margin: 0 0 0 auto;}
.cty_businessblock div{
  position: relative;
  width: 46.7vw;
  height: auto;
  margin-top: -11.2vw;
  padding: 4.6vw 4.6vw 4.6vw 7.3vw;
  background-color: #FFFFFF;
  overflow: hidden;
  box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.08);
  transform: translateX(-100%);
  transition: all 0.3s linear 0.3s;
}
.cty_businessblock.cty_blockright div{
  margin: -11.2vw 0 0 auto;
  transform: translateX(100%);
}
.cty_businessblock.active div{transform: translate(0)}
.cty_businessblock div h2{
  margin-bottom: 2.6vw;
  visibility: hidden;
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.3s linear 0.6s;
}
.cty_businessblock.active div h2{
  visibility: visible;
  opacity: 1;
  transform: translate(0);
}
.cty_businessblock div h2 img{width: clamp(20px, 3.6vw, 50px);}
.cty_businessblock div h2 span{
  display: inline-block;
  margin-left: 1.1vw;
  padding: 0.2vw 0 0.2vw 1.4vw;
  vertical-align: middle;
  font-size: clamp(0.875rem, -0.064rem + 1.83vw, 1.5rem);
  font-weight: bold;
  color: #212121;
  border-left: 1px solid #707070;
}
.cty_businessblock div p{
  line-height: 2;
  font-size: clamp(0.75rem, 0.375rem + 0.73vw, 1rem);
  color: #212121;
  visibility: hidden;
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.3s linear 0.75s;
}
.cty_businessblock.active div p{
  visibility: visible;
  opacity: 1;
  transform: translate(0);
}



.cty_flow{padding: 64px 0 112px;}
.cty_flow h2{
  margin-bottom: 44px;
  padding-bottom: 50px;
  font-size: 2rem;
  font-weight: bold;
  color: #212121;
  border-bottom: 1px solid #AEAEAE;
}
.cty_flow h2 p{
  width: 0;
  overflow: hidden;
  transition: width 0.3s linear;
}
.cty_flow h2 p span{
  display: block;
  width: 500px;
}
.cty_flow h2.active p{width: 500px;}
.cty_flow ol{margin-bottom: 48px;}
.cty_flow ol li{
  position: relative;
  width: 458px;
  overflow: hidden;
}
.cty_flow ol li:nth-of-type(n+2){margin-top: -150px;}
.cty_flow ol li:nth-of-type(odd){padding: 114px 0 0 16px;}
.cty_flow ol li:nth-of-type(even){padding: 114px 20px 0 0;}
.cty_flow ol li:nth-of-type(1){margin-left: 70px;}
.cty_flow ol li:nth-of-type(2){
  margin-right: 88px;
  margin-left: auto;
}
.cty_flow ol li:nth-of-type(3){margin-left: 112px;}
.cty_flow ol li:nth-of-type(4){
  margin-right: 40px;
  margin-left: auto;
}
.cty_flow ol li:nth-of-type(odd) .cty_circle,
.cty_flow ol li:nth-of-type(even) .cty_circle{
  position: absolute;
  display: block;
  top: 4px;
  width: 290px;
  height: 290px;
  margin-top: 40px;
  border-radius: 100%;
  border: 1px solid #004EA2;
  z-index: 1;
  opacity: 0;
  transition: all 0.3s linear;
}
.cty_flow ol li:nth-of-type(odd) .cty_circle{left: 4px;}
.cty_flow ol li:nth-of-type(even) .cty_circle{right: 4px;}
.cty_flow ol li:nth-of-type(odd) .cty_circle::after,
.cty_flow ol li:nth-of-type(even) .cty_circle::after{
  content: "";
  position: absolute;
  display: block;
  top: 140px;
  width: 10px;
  height: 10px;
  border-radius: 100%;
  background-color: #004EA2;
}
.cty_flow ol li:nth-of-type(odd) .cty_circle::after{left: -5px;}
.cty_flow ol li:nth-of-type(even) .cty_circle::after{right: -5px;}
.cty_flow ol li.active .cty_circle{
  margin-top: 0;
  opacity: 1;
}
.cty_flow ol li:nth-of-type(odd).active .cty_circle{animation: leftrotation linear 8s infinite;}
.cty_flow ol li:nth-of-type(even).active .cty_circle{animation: rightrotation linear 8s infinite;}
@keyframes leftrotation{
  0%{transform: rotate(0)}
  100%{transform: rotate(-360deg);}
}
@keyframes rightrotation{
  0%{transform: rotate(0)}
  100%{transform: rotate(360deg);}
}

.cty_flow ol li div{
  position: relative;
  padding-bottom: 40px;
  border-radius: 40px;
  background: url("../img/common/ph_gray.png") repeat;
  z-index: 2;
}
.cty_flow ol li:nth-of-type(odd) div{padding-left: 40px;}
.cty_flow ol li:nth-of-type(even) div{padding-right: 40px;}
.cty_flow ol li h3{
  margin-bottom: 16px;
  padding-bottom: 24px;
  font-size: 1.25rem;
  font-weight: bold;
  color: #212121;
  border-bottom: 1px solid #707070;
  transform: translateY(20px);
  opacity: 0;
  transition: all 0.3s linear 0.3s;
}
.cty_flow ol li.active h3{
  opacity: 1;
  transform: translate(0);
}
.cty_flow ol li:nth-of-type(even) h3{text-align: right;}
.cty_flow ol li:nth-of-type(odd) h3 img{margin-right: 20px;}
.cty_flow ol li:nth-of-type(even) h3 img{margin-left: 20px;}
.cty_flow ol li h3 img{vertical-align: top;}
.cty_flow ol li h3 span{
  display: inline-block;
  padding-top: 13px;
}
.cty_flow ol li p{
  color: #212121;
  transform: translateY(20px);
  opacity: 0;
  transition: all 0.3s linear 0.45s;
}
.cty_flow ol li.active p{
  opacity: 1;
  transform: translate(0);
}




.cty_contactline{
  position: relative;
  padding-top: 24px;
}
.cty_contactline>p{
  position: absolute;
  width: 100%;
  left: 0;
  top: 45px;
  overflow: hidden;
}
.cty_contactline>p img{animation: scrolltxt linear 40s infinite;}
@keyframes scrolltxt{
  0%{transform: translateX(0)}
  100%{transform: translateX(-50%);}
}
.cty_contactline div{
  position: relative;
  padding-top: 102px;
  text-align: center;
}
.cty_contactline div p:first-of-type{margin-bottom: 32px;}
.cty_contactline div p:first-of-type a{
  display: inline-block;
  width: 240px;
  height: 60px;
  padding-top: 15px;
  font-weight: bold;
  color: #FFFFFF;
  border-radius: 30px;
  background-color: #004EA2;
}



.cty_example{
  padding: 80px 0;
  background-color: #FFFFFF;
}
.cty_example h2{
  width: 0;
  margin-bottom: 56px;
  font-size: 2rem;
  font-weight: bold;
  color: #212121;
  overflow: hidden;
  transition: width 0.3s linear;
}
.cty_example h2 span{
  display: block;
  width: 500px;
}
.cty_example h2.active{width: 500px;}
.cty_listblock{
  border-top: 1px solid #DFDFDF;
  border-bottom: 1px solid #DFDFDF;
}
.cty_example ul{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

/*施工事例 最後行が2の時に適応
.cty_example ul::after{
  content:"";
  display: block;
  width: calc(100%/3);
}*/
.cty_example ul li:nth-last-of-type(2),
.cty_example ul li:nth-last-of-type(3){border-bottom: 1px solid #DFDFDF;}
/*施工事例 最後行が1の時に適応 end*/


.cty_example ul li{
  position: relative;
  text-align: center;
  width: calc(100%/3);
  padding: 72px 0;
  border-right: 1px solid #DFDFDF;
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.3s linear;
  cursor: pointer;
}
.cty_example ul li:nth-of-type(3n){border-right: none;}
.cty_example ul li:nth-last-of-type(n+4){border-bottom: 1px solid #DFDFDF;}

.cty_example ul li:nth-of-type(2){transition-delay: 0.15s;}
.cty_example ul li:nth-of-type(3){transition-delay: 0.3s;}
.cty_example ul li:nth-of-type(4){transition-delay: 0.45s;}
.cty_example ul li:nth-of-type(5){transition-delay: 0.6s;}
.cty_example ul li:nth-of-type(6){transition-delay: 0.75s;}
.cty_example ul li:nth-of-type(7){transition-delay: 0.9s;}
.cty_example ul li:nth-of-type(8){transition-delay: 1.05s;}
.cty_example ul li:nth-of-type(9){transition-delay: 1.2s;}
.cty_example ul li:nth-of-type(10){transition-delay: 1.35s;}
.cty_example ul.active li{
  opacity: 1;
  transform: translate(0);
}

.cty_example ul li div{
  width: 70%;
  margin: 0 auto 24px;
  border-radius: 8px 8px 24px 8px;
  aspect-ratio: 1;
  overflow: hidden;
}
.cty_example ul li picture{display: block;}
.cty_example ul li img{
  width: 100%;
  height: 100%;
  transition: all 0.2s linear;
}
.cty_example ul li h3{
  width: 70%;
  margin: 0 auto 14px;
  text-align: left;
  font-size: 1.125rem;
  font-weight: bold;
  color: #212121;
}
.cty_example ul li p{
  width: 70%;
  margin: auto;
  text-align: left;
  font-size: 0.875rem;
  color: #212121;
}
.cty_example ul li span{
  position: absolute;
  display: block;
  right: 15%;
  bottom: 48px;
  text-align: right;
  font-size: 0.75rem;
  font-weight: 500;
  color: #3168B0;
}

.cty_more{
  padding: 80px 0;
  text-align: center;
}
.cty_more a{
  display: inline-block;
  width: 240px;
  height: 60px;
  padding-top: 15px;
  border-radius: 30px;
  border: 1px solid #212121;
}



.cty_modal{display: none;}
.cty_mdslider{
  display: none;
  opacity: 0;
}
.cty_mdslider.slick-initialized{display: block;}
.modaal-content-container{padding: 10px;}
.modaal-container{
  max-width: 820px;
  background-color: #EDEDED;
}
.slick-slide img{
  max-width: 100%;
  margin: auto;
}
.cty_mdslider li p{
  margin-top: 8px;
  text-align: center;
}
.modaal-close{
  position: absolute;
  top: -40px;
  right: -40px;
  z-index: 10;
}
.slick-prev,
.slick-next{
  width: 40px;
  height: 40px;
  z-index: 10;
}
.slick-next{right: -80px;}
.slick-prev{left: -80px;}
.slick-prev:before,
.slick-next:before{font-size: 40px;}
.modaal-close:focus:before,
.modaal-close:focus:after,
.modaal-close:hover:before,
.modaal-close:hover:after{background: #004EA2;}






@media screen and (min-width:821px){
  .cty_pagelink ul li a:hover{text-decoration: underline;}
  .cty_contactline div p:first-of-type a:hover{background-color: #1C84E5;}
  .cty_example ul li:hover div img{transform: scale(1.1);}
  .cty_example ul li:hover span{text-decoration: underline;}
  .cty_more a:hover{background-color: #EFEFEF;}
}






@media screen and (max-width:900px){
  .modaal-inner-wrapper{padding: 8.8vw 2.8vw;}
  .modaal-content-container{padding: 1.1vw;}

  .cty_mdslider .slick-list{
    width: 100%;
    max-width: 92.1vw;
  }
  .cty_mdslider li{
    width: 100%;
    max-width: 92.1vw;
  }
  .slick-slide img{
    max-width: 92.1vw;
    max-height: 69.67vw;
  }
  .cty_mdslider li p{font-size: 0.875rem;}
  .slick-prev{left: 0;}
  .slick-next{right: 0;}
  .modaal-close{
    top: -56px;
    right: -8px;
  }
}
@media screen and (max-width:820px){
  .cty_pagelink ul{width: 200px;}



  .cty_flow ol li:nth-of-type(1),
  .cty_flow ol li:nth-of-type(3){margin-left: 0;}
  .cty_flow ol li:nth-of-type(2),
  .cty_flow ol li:nth-of-type(4){margin-right: 0;}
  .cty_flow ol li:nth-of-type(n+2){margin-top: -30px;}
  .cty_flow ol li:nth-last-of-type(n+2){margin-bottom: 10px;}
}
@media screen and (max-width:428px){
  .cty_pagelink ul{display: none;}
  .cty_top h1{padding-top: 0;}

  .cty_mainphbox{aspect-ratio:4 / 3;}
  .cty_mainph{
    background: url("../img/construction/ph_top_sp.jpg") center top no-repeat;
    background-size: 100% auto;
    background-attachment: fixed;
    width:100vw;
    height: 60vh;
    position: fixed;
    top:0;
    left:0;
  }



  .cty_description{padding: 64px 16px 40px;}

  .cty_catch{
    margin-bottom: 16px;
    font-size: 1.25rem;
  }
  .cty_catch span{width: calc(100vw - 32px);}
  .cty_catch.active{width: 100%;}
  .cty_topcopy{font-size: 0.875rem;}



  .cty_businessblock{margin-bottom: 40px;}
  .cty_businessblock picture{
    width: 96vw;
    aspect-ratio: 36/29;
  }
  .cty_businessblock div{
    width: 88vw;
    margin-top: -96px;
    padding: 24px;
  }
  .cty_businessblock.cty_blockright div {margin: -96px 0 0 auto;}
  .cty_businessblock div h2{margin-bottom: 14px;}
  .cty_businessblock div h2 img{
    width: 42px;
    height: 36px;
  }
  .cty_businessblock div h2 span{
    margin-left: 14px;
    padding: 4px 0 4px 10px;
    font-size: 1rem;
  }
  .cty_businessblock div p{font-size: 0.75rem;}



  .cty_contactline{padding: 0;}
  .cty_contactline>p{top: 0;}
  .cty_contactline>p img{height: 64px;}
  .cty_contactline div{padding-top: 50px;}
  .cty_contactline div p:first-of-type{margin-bottom: 16px;}
  .cty_contactline div p:last-of-type{font-size: 0.75rem;}



  .cty_flow{padding: 32px 0 64px;}
  .cty_flow h2{
    padding-bottom: 40px;
    font-size: 1.5rem;
  }
  .cty_flow h2 p span{width: calc(100vw - 48px);}
  .cty_flow h2.active p{width: 100%;}
  .cty_flow ol li{width: 100%;}
  .cty_flow ol li:nth-of-type(n+2){margin-top: 0;}
  .cty_flow ol li:nth-of-type(odd){padding: 72px 0 0 10px;}
  .cty_flow ol li:nth-of-type(even){padding: 72px 10px 0 0;}
  .cty_flow ol li:nth-of-type(odd) .cty_circle,
  .cty_flow ol li:nth-of-type(even) .cty_circle{
    width: 200px;
    height: 200px;
  }
  .cty_flow ol li:nth-of-type(odd) .cty_circle::after{left: 6px;}
  .cty_flow ol li:nth-of-type(even) .cty_circle::after{right: 6px;}
  .cty_flow ol li:nth-of-type(odd) div{
    padding-left: 18px;
    padding-bottom: 0;
  }
  .cty_flow ol li:nth-of-type(even) div{
    padding-right: 18px;
    padding-bottom: 0;
  }
  .cty_flow ol li h3{font-size: 1rem;}
  .cty_flow ol li h3 img{
    width: 24px;
    height: 33px;
  }
  .cty_flow ol li h3 span{display: inline-block;}
  .cty_flow ol li p{
    line-height: 2;
    font-size: 0.75rem;
  }



  .cty_example{padding: 56px 0 40px;}
  .cty_example h2{
    margin-bottom: 40px;
    font-size: 1.5rem;
  }
  .cty_example h2 span{width: calc(100vw - 48px);}
  .cty_example h2.active{width: 100%;}

  .cty_example ul{padding: 0;}
  .cty_example ul li{
    width: 50%;
    padding: 40px 0;
  }
  .cty_example ul li div{
    width: 80%;
    margin-bottom: 8px;
  }
  .cty_example ul li h3{
    width: 80%;
    margin-bottom: 4px;
    font-size: 0.625rem;
  }
  .cty_example ul li p{
    width: 80%;
    font-size: 0.625rem;
  }
  .cty_example ul li span{
    right: 10%;
    bottom: 16px;
  }
  .cty_example ul li:nth-of-type(3n){border-right: 1px solid #DFDFDF;}
  .cty_example ul li:nth-last-of-type(n+3){border-bottom: 1px solid #DFDFDF;}
  .cty_example ul li:nth-last-of-type(2):nth-of-type(even){border-bottom: 1px solid #DFDFDF;}/*右下無しの時線がなくなるのを回避*/
  .cty_example ul li:nth-of-type(even){border-right: none;}
  .cty_more{padding: 40px 0 0;}
}

