@charset "utf-8";
.header-inner {
  margin: 0 40px;
  margin-top: 40px;
}
.header-nav-inner{
  gap: 3rem;
  color: white;
  letter-spacing: 1.68px;
}
.header-nav-inner .g-nav ul{
  gap: 3rem;
}
.lange-btn a{
  width: 35px;
  height: 35px;
  display: flex;
  justify-content: center;
  align-items: baseline;
  padding-top:3px;
}
.lange-btn .active{
  background: #FFFFFF 0% 0% no-repeat padding-box;
  backdrop-filter: blur(32px);
  color: #0F0F0F;
}

  /* ここから */
  .mv {
    width: 100%;
    height: 100%;
    position: relative;
    overflow: hidden;
  }
  /* 全体を囲う要素 */
  .mv-wrap {
    position: relative;
    /* 背景画像の高さ */
    height: 100vh;
  }
  .mv-video {
    display: block;
    width: 100%;
    /* 背景画像の高さ */
    height: 100vh;
    /* 高さを維持したまま全体を表示させる */
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
  }
  .mv-bg {
    display: block;
    width: 100%;
    /* 背景画像の高さ */
    height: 100vh;
    position: absolute;
    top: 0;
    left: 0;
    /* 薄いレイヤーの色 */
    background-color: rgba(0, 30, 0, 0.2);
    /* videoの上に乗せる */
    z-index: 2;
  }
  .mv-txt {
    width: 100%;
    height: 238px;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 3;
    margin: auto;
    mix-blend-mode: difference;
    text-align: center;
  }
  .mv-video.sp{
    display: none;
  }
@media screen and (max-width:767px) {
  .mv-video.sp{
    display: block;
  }
  .mv-video.pc{
    display: none;
  }
}

.header-contact a{
  align-items: center;
  gap: 1rem;
  padding: 5px 30px;
  border: white 1px solid;
  border-radius: 30px;
}
.top-01-block{
  gap: 3rem;
  justify-content: center;
}
.top-01-block .txt{
  max-width: 415px;
  line-height: 3;
  font-size: 2rem;
}
.top-01-block .txt p{
  margin-bottom: 3rem;
  color: var(--base-color);
}
.top-01-block .txt p:last-of-type{
  margin-bottom: 0;
}
.top-02-img{
  position: relative;
}
.top-02-img::after{
  content: '';
  position: absolute;
  background: url(../img/top/top-02.jpg) no-repeat;
  background-size: contain;
  height: 219px;
  width: 149px;
  bottom: 0;
  right: -50px;
}
.top-bg-01{
  padding: 6rem 0;
}
.title .ja{
  margin-bottom: 3rem;
  letter-spacing: 3.41px;
}
.title p{
  max-width: 375px;

}
.top-about-block .img {
  background: url(../img/top/top-04.jpg) no-repeat;
  background-size: cover;
  height: 60rem;
  width: 50%;
}
.top-about-block .title{
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.top-section_01{
  background-color:rgb(239, 239, 239);
  padding-bottom: 14rem;
}
.top-section_02{
  padding-bottom: 14rem;
}
.top-section_03{
  background: var(--base-color);
  margin-top: -2px;
}
.top-section_03 .img-wrap{
  gap: 9rem;
}
.img-wrap_02{
  gap: 9rem;
}
.top-section_03 .img-wrap .img_02 img{
  margin-top: 100px;
}
.img-wrap_04{
  gap: 9rem;
}
.img-wrap_04 .right{
  max-width: 60%;
}
.img-wrap_04 .left {
  max-width: 315px;
  position: relative;
}
.img-wrap_04 .left p{
  position: relative;
}
.img-wrap_04 .left p::after{
  content: '';
  position: absolute;
  background: url(../img/top/top-08.jpg) no-repeat;
  background-size: contain;
  height: 470px;
  width: 315px;
  top: 22rem;
  left: 1rem;
}
.top-section_05{
  padding-bottom: 14rem;
}

.top-section_06 {
  position: relative;
  overflow: hidden;
}

.top-section_06::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 50%; /* 上半分のみをカバー */
  background-color: #EFEFEF; /* 白色の背景 */
  z-index: -1; /* 要素の前面に表示 */
}
.top-section_07{
  background-color: var(--base-color);
  padding-top: 14rem;
  padding-bottom: 14rem;
}
.top-bg-02{
  margin: 3rem 0;
}

.top-facility-img-wrap{
  gap: 15rem;
}
.top-facility-img-wrap .left{
  padding-top: 12rem;
}
.top-facility-img-wrap .right p{
  margin-top: 3rem;
  max-width: 391px;
}
.top-facility-block .img{
  background: url(../img/top/top-13.jpg) no-repeat;
  background-size: cover;
  background-position: center;
  height: 60rem;
  width: 50%;
}

/* ---------------------------------
  フッター
   --------------------------------- */
.cta-area{

  padding-top: 0;
  position: relative;
}
.cta-pv{
  position: absolute;
  top: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
  overflow: hidden;
  opacity: 0;
  transition: all 0.3s ease;
}
.cta-area:hover .cta-pv{
  opacity: 0.5;
  transition: all 0.3s ease;
}
.cta-pv video{
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.cta-area a{
  padding-top: 12rem;
  padding-bottom: 12rem;
  background-color: #EFEFEF;
  mix-blend-mode:exclusion;
}
.cta-wrap{
  justify-content: space-between;
  align-items: center;
}
.cta-wrap .left p{
  color: #0F0F0F;
} 
.cta-wrap .left h4{
  color: #0F0F0F;
  letter-spacing: -15.12px;
  font-size: clamp(2.4rem,12vw ,170px);
  max-width: 720px;
} 
.cta-wrap .right .img{
  position: relative;
}
.cta-wrap .right .img::after{
  content: '';
  position: absolute;
  background: url(../img/common/cta-arrow.svg) no-repeat;
  background-size: contain;
  height: 80px;
  width: 80px;
  top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: transform 0.3s ease;
}
.cta-wrap:hover .right .img::after {
  transform: translate(-10%, -90%);
  /* ホバー時の位置変更 */
}
.cta-01 {
  animation: rotateImage infinite 15s linear;
}

@keyframes rotateImage {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.footer-wrap .left , .footer-wrap .right{
  width: 100%;
}
.footer-wrap .left {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-top: 6rem;
  padding-bottom: 6rem;
  border: solid 1px #464646;
  margin-right: -1px;
  margin-bottom: -1px;
}
.footer-wrap .left .footer-logo{
  margin-bottom: 1rem;
}
.footer-wrap .left .footer-tel-box{
  margin-top: 1rem;
}
.footer-tel span:nth-child(1){
  margin-right: 1rem;
}
.footer-nav , .footer-nav ul{
  height: 100%;
}
.footer-nav , .footer-nav ul li{
  margin-bottom: -1px;
}
.footer-nav ul li a{
  display: flex;
  justify-content: center;
  border: solid 1px #464646;
}
.footer-nav ul li a div{
  z-index: 2;
  width: 100%;
  text-align: center;
  padding: 4rem 0;
}
.triangle{
  position: relative;
}
.triangle::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  border-bottom: 30px solid transparent;
  border-left: 30px solid #464646;
  transition: all 0.3s ease;
}
footer-nav , .footer-nav ul .triangle:hover::before{
  border: none;
  background-color: #464646;
  width: 100%;
  height: 100%;
  transition: all 0.3s ease;
}
.copyright{
  background: var(--text-color);
  padding-top: 3rem;
  padding-bottom: 3rem;
  color: var(--base-color);
}

/* ---------------------------------
  下層ページ共通
  --------------------------------- */
  .global-top-area{
    padding-top: 16rem;
  }
  .global-top-cach{
    margin-bottom: 5rem;
  }
  .global-img-bg{
    width: 100%;
    height: 38rem;
    background: url(../img/aboutus/fv02.jpg) no-repeat;
    background-size: cover;
    background-position: center;
  }
  .global-top-txt h2{
    display: block;
    margin-top: -2rem;
  }
/* ---------------------------------
  aboutus
  --------------------------------- */
  .aboutus-section_01-wrap .left p{
    margin-bottom: 3rem;
    max-width: 500px;
  }
  .aboutus-section_01-wrap .right p{
    margin-bottom: 3rem;
    max-width: 500px;
  }
  .aboutus-section_01-wrap .right{
    width: 50%;
  }
  .aboutus-section_01-wrap{
    gap: 3rem;
  }
  .aboutus-section_01-wrap:nth-child(1){
    margin-bottom: 12rem;
  }
  .company-list{
    background: #EFEFEF;
    padding: 9rem;
    max-width: 1052px;

  }
  .company-list-item{
    display: flex;
    gap: 1rem;
    margin-bottom: 3rem;
    color: #100F0F;
    border-bottom: 1px solid #BFBFBF;
    padding-bottom: 1.7rem;
  }
  .company-list-title{
    width: 15%;
  }
  .aboutus-section_03-wrap{
    gap: 9rem;
  }
  .aboutus-section_03-wrap .img-02{
    margin-top: 12rem;
  }
  .aboutus-section_04 .company-list{
    padding: 0;
    max-width: 100%;
  }
  .aboutus-section_04 .company-list .company-list-title{
    font-size: 3rem;
    margin-top: -16px;
  }
  .aboutus-section_04 .company-list .company-list-item{
    border-bottom: none;
    padding: 1rem 4rem;
    margin: 0;
    padding-top: 2rem;
  }
  .aboutus-section_04 .company-list .company-list-item:nth-child(even){
    background: #D6D6D6;
  }
  .aboutus-section_04 .company-list .company-list-txt{
    width: 85%;
  }
  .aboutus-section_05 {
    margin-bottom: 12rem;
  }
  .data-list li{
    display: flex;
    gap: 2rem;
    margin-bottom: 1rem;
  }
  .data-list li .ttl{
    min-width: 100px;
  }

  /* ---------------------------------
  works
  --------------------------------- */
  .works .global-top-area .inner .global-img-bg{
    background: url(../img/works/fv.jpg) no-repeat;
    background-size: cover;
    background-position: center;
  }
  .works-box-wrap .left p{
    max-width: 494px;
  }
  .works-box-wrap{
    gap: 9rem;
  }
  .works-box-wrap .left h3{
    margin-bottom: 3rem;
  }
  .works-box-wrap .left{
    width: 100%;
  }
  .works-box{
    padding: 4rem 0;
    border-top: solid 1px #707070;
  }
  .works-box:last-of-type{
    border-bottom: solid 1px #707070;
  }
  .works-list-item{
    padding: 3rem;
    background: var(--text-color);
  }
  .works-list-item._01{
    border-top: solid 1px #707070;
    border-bottom: solid 1px #707070;
    border-left: solid 1px #707070;
  }
  .works-list-item._02{
    border: solid 1px #707070;
  }
  .works-list-item._03{
    border-top: solid 1px #707070;
    border-bottom: solid 1px #707070;
    border-right: solid 1px #707070;
  }
  .works-list-item .img{
    margin-bottom: 3rem;
  }
  .works-list-item .txt {
    color: var(--base-color);
  }
  .works-list-item .txt h5{
    text-align: center;
  }
  .works-list-item .txt p{
    max-width: 300px;
  }
  .works-section_03{
    margin-bottom: 12rem;
  }
  .works-item-list{
    font-size: 1.4rem;
    display: flex;
    flex-wrap: wrap;
    column-gap: 2rem;
    position: relative;
    width: 250px;
    margin-bottom: 1rem;
    margin-top: 1rem;
  }
  .works-item-list li{
    position: relative;
    padding-left: 1.5rem;
  }
  .works-item-list li::after{
    position: absolute;
    content: '';
    background: var(--base-color);
    height: 6px;
    width: 6px;
    top: 50%;
    left: 0;
    border-radius: 100%;
    transform: translatey(-50%);
  }
    /* ---------------------------------
  facility
  --------------------------------- */
  .facility .global-top-area .inner .global-img-bg{
    background: url(../img/facility/fv.jpg) no-repeat;
    background-size: cover;
    background-position: center;
  }
  .facility-wrap{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  .facility-box{
    width: calc(100%/ 3);
    max-width: 328px;
    margin-bottom: 6rem;
  }
  .facility-area{
    margin-bottom: 12rem;
  }
  /* ---------------------------------
  contact
  --------------------------------- */
  .contact-txt-area .tel-box .title{
    font-size: 1.3rem;
    width: 222px;
    background-color: #707070;
    color: #EFF0F0;
    text-align: center;
    margin-top: 3rem;
  }
  .contact-txt-area .tel-box{
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .contact-txt-area .tel-box a{
    display: flex;
    align-items: center;
    gap: 1rem;
  }
  .contact .contact-title{
    font-weight: 500;
    margin-bottom: 1rem;
  }
  .contact .req{
    font-size: 1.3rem;
    color: #707070;
    border: solid 1px #707070;
    padding:0 1rem;
    margin-left: 2rem;
  }
  .contact .dl-list .row{
    margin-top: 5rem;
  }
  .contact .dl-list .row dd .radio-input{
    margin-left: 1rem;
  }
  .contact .dl-list .row dd .radio-input{
    margin-right: 1rem;
  }
  .c-btn input{
    border: #707070 solid 1px;
    border-radius: 35px;
    text-align: center;
  }
  .c-btn{
    position: relative;
  }
  .c-btn::after{
    content: '';
    position: absolute;
    background: #EFF0F0;
    height: 10px;
    width: 10px;
    top: 50%;
    right: 3rem;
    transform: translate(-50%, -50%);
    border-radius: 100%;
  }
  .entry-form-area{
    margin-bottom: 12rem;
  }
  input[type="text"], input[type="email"], input[type="tel"]{
    background: #EFF0F0;
    color: #100F0F;
  }
  input[type="tel"]{
    width: 100%;
  }
  .contact .dl-list{
    margin-bottom: 5rem;
  }
  textarea{
    color: #100F0F;
  }
  .contact .check-inner  .dl-list .row{
    margin-top: 2rem;
    gap: 3rem;
  }
  .step-buttons{
    gap: 3rem;
  }


  .fv-video {
    position: relative;
    padding: 0 0 56.25%;
    width: 100%;
    z-index: -1;
  }
  .fv-video iframe {
    position: absolute;
    top: 0;
    right: 0;
    width: 100% !important;
    height: 100% !important;
  }  
  .fv-video .sp{
    display: none;
  }
  @media screen and (max-width:767px) {
    .fv-video .sp{
      display: block;
    }
    .fv-video .pc{
      display: none;
    }
    .fv-video{
      padding: 0;
      padding-top: 175%;
    }
  }
  .m-bottom-1{
    margin-bottom: 1rem;
  }