

font{
  color: var(--color-theme);
}
img{
  max-width: 100%;
}

.swiper-pagination{
  position: static;
  display: flex;
  gap: 1rem;
  justify-content: center;
}
.swiper-pagination-bullet{
  background-color: #fff;
  opacity: 1;
  width: 1.6rem;
  height: 1.6rem;
}
.swiper-pagination-bullet-active{
  background-color: var(--color-base) !important;
}

.inner{
  width: 98%;
  max-width: 1550px;
  min-width: 10rem;
  margin: auto;
}

.main{
  color:var(--color-base);
  padding-top: 7.4rem;
  word-break: keep-all;
}
p{
  word-break: keep-all;
}
.section{
  padding: 6.5rem 0;
  overflow: hidden;
}
.section--bg{
  background-color: var(--color-bg);
  margin-top: -1px;
}
.section__subj{
  font-size: 3.5rem;
  font-weight: 700;
  line-height: 1.37;
  color: var(--color-theme);
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--color-theme);
  display: inline-block;
}

.banner{
  padding: 0 !important;
  width: 100%;
  position: relative;
}
.banner .section__tit{
  position: absolute;
  left: 0;
  right: 0;
  width: 98%;
  margin: auto;
  max-width: 1550px;
  min-width: 1000px;
  top: 50%;
  transform: translateY(-44%);
}
.banner h2{
  font-size: 3.5rem;
  font-weight: 700;
  line-height: 1.6;
  color:#333;
  word-break: keep-all;
}
.banner p{
  font-size: 3rem;
  font-weight: 600;
  line-height: 1.5;
  margin-top: 6rem;
  color:#fff;
}
.banner img{
  width: 100%;
}
.about{
  padding: 13rem 0 7rem;
}

.about .section__tit{
  margin-bottom: 11rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;

}
.about .section__tit .txt{
  width: 50%;
}
.about .section__tit .txt dl{
  padding: 1.5rem 0.5rem 1.5rem 0;
  display: flex;
  align-items: center;
  border: 2px solid var(--color-base);
  border-radius: 7px;
  margin-bottom: 1rem;
}
.about .section__tit .txt dt{
  font-size: 2.8rem;
  font-weight: 700;
  min-width: 11rem;
  padding: 0 1.5rem;
  text-align: center;
}
.about .section__tit .txt dd{
  position: relative;
  font-size: 2rem;
  padding-left: 1.5rem;
  line-height: 1.3;
}
.about .section__tit .txt dd::before{
  content: "";
  display: block;
  width: 2px;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  background-color: var(--color-base);
}
.about .section__tit .txt dd font{
  font-size: 1.2em;;
}
.about .section__tit .txt span{
  text-align: center;
  display: block;
}

.about .section__tit .img{
  width: 46%;
  text-align: center;
}
.about .section__tit .img img{
  width: 100%;
}

.about .section__cont{
  font-size: 4rem;
  font-weight: 500;
  text-align: center;
}

.accident{
  /* padding: 6.5rem 0; */
}
.accident .section__tit{}
.accident .section__cont{
  display: flex;
  margin-top: 1rem;
  gap: 0.5rem;
  text-align: center;
  align-items: flex-end;
}
.accident .section__cont--right{
}
.accident .section__cont--right .txt{
  font-size: 2.5rem;
  font-weight: 600;
  margin-bottom: 1.6rem;
  
}
.accident .section__cont--right .img{
  border-radius: 1rem;
  overflow: hidden;
}

.function{
  /* padding: 6.5rem 0; */
}
.function .section__tit{
  text-align: center;
  margin-bottom: 8rem;
}
.function__list{
  display: flex;
  flex-flow: column;
  gap: 5rem;
}
.function__list li{
  border-radius: 3rem;
  overflow: hidden;
  background-color: #fff;
  padding: 3rem 2.5rem; 
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
}
.function__list li .txt{
  padding-left: 3rem;
  padding-top: 2rem;
  width: 55%;
  min-width: 79rem;
  
}
.function__list li .txt h6{
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 1.37;
  margin-bottom: 4rem;
  font-size: 3rem;
}
.function__list li .txt h6 b{
  font-weight: 700;
}
.function__list li .txt h6 b.letter1{
  letter-spacing: -0.07em;
}
.function__list li .txt h6 b.letter2{
  letter-spacing: -0.05em;
}
.function__list li .txt h6 span{
  color: var(--color-green);
  font-size: 3rem;
  margin-bottom: 6.5rem;
  display: block;
}
.function__list li .txt h6 img{
  vertical-align: baseline;
  width: 7.2rem;
  margin-left: 6.2em;
  margin-left: 3.9em;
  margin-right: 0.1em;
  display: inline-block;
}
.function__list li .txt p{
  display: block;
  font-size: 2rem;
  position: relative;
  display: flex;
  gap: 1rem;
  line-height: 1.6;
}
.core .section__cont span::before,
.function__list li .txt p::before{
  content: "●";
}
.function__list li .img{
  width: 45%;
  border-radius: 3rem;
  overflow: hidden;
  border: 1px solid var(--color-base);
}
.function__list li .img img{
  width: 100%;
}

.etc .function__list{
}
.etc .function__list li{
  padding: 8.5rem 7rem;
  flex-flow: row-reverse;
  gap: 5rem;
  justify-content: flex-end;
  flex-wrap: wrap;
}

.etc .function__list li .txt{
  width: 60%;
}
.etc .function__list li .txt h6{
  margin-bottom: 6rem;
}
.etc .function__list li .img{
  width: 33%;
  border-radius: 0;
}

.section__subj--box{
  border-radius: 7px;
  padding: 1.4rem 5.5rem;
  font-size: 2.8rem;
  font-weight: 700;
  color: var(--color-theme);
  text-align: center;
  display: inline-block;
  border: 1px solid var(--color-theme);
  line-height: 1;
  background-color: #fff;
}

.video .swiper-slide{
  position: relative;
  transform: scale(0.9);
  transition: all .3s ease-in-out;
}
.video .swiper-slide-active{
  transform: scale(1);
  
}
.video .if_wr{
  position: relative;
}
.video iframe{
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 10;  
}
.video .img{
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
.video .img > img{
  width: 100%;
  opacity: 0;
}
.video .swiper-pagination{
  margin-top: 3rem;
}

.core{
  padding: 6.5rem 0 3.5rem;
  text-align: center;
}

.core .section__wrap{
  background-color: #fff;
  border-radius: 3rem;
  overflow: hidden;
  padding: 5rem;
}
.core .section__tit{

}
.core .section__cont{
  margin-top: 5rem;
  display: flex;
}

.core .section__cont > div{
  padding: 0 5rem;
}
.core .section__cont h5{
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1;
  padding: 1.3rem 1rem;
  text-align: center;
  width: 100%;
  border: 1px solid var(--color-base);
  border-radius: 7px;
}
.core .section__cont .img{
  margin: 1rem 0 2.5rem;
  position: relative;
}
.core .section__cont .img img{
  width: 100%;
}
.core .section__cont .section__cont--left .img::after{
  content: "";
  display: block;
  width: 1px;
  background-color: var(--color-base);
  position: absolute;
  right: -5rem;
  top: -5%;
  height: 110%;
}
.core .section__cont p{
  font-size: 2.5rem;
  font-weight: 500;
  line-height: 1.6;
}
.core .section__cont p img{
  vertical-align: baseline;
  display: inline-block;
  margin: 0 0.4rem;
  width: 4.3rem;
}
.core .section__cont span{
  display: block;
  margin-top: 4rem;
  font-size: 2rem;
  display: flex;
  justify-content: center;
  gap: 1rem;
  width: max-content;
  text-align: left;
}

.compare{
  padding: 3.5rem 0 1.5rem;
  text-align: center;
}
.compare h3{
  margin-bottom: 1.5rem;
}
.compare h4{
  font-size: 3rem;
  font-weight: 700;
  margin-bottom: 2.5rem;
  color: var(--color-theme);
  text-align: left;
}

.compare .section__wrap{
  margin: 3.5rem 0 7rem;
  background-color: #fff;
  border-radius: 3rem;
  overflow: hidden;
  padding: 7rem 9rem;
}
.compare .section__wrap ul{
  width: 100%;
  display: flex;
  gap: 1rem;
}
.compare .section__wrap ul li{
  width: 36%;
  display: flex;
  flex-flow: column;
  gap: 1rem;
}
.compare .section__wrap ul li.img{
  width: 27%;
}

.compare .section__wrap ul li h5{
  border-radius: 7px;
  background-color: var(--color-gray);
  color:#fff;
  font-weight: 700;
  font-size: 2.5rem;
  line-height: 1.92;
  height: 4.9rem;
}
.compare .section__wrap ul li h5.our{
  background-color: var(--color-theme);
  font-size: 2.6rem;
  margin-top: -1px;
}
.compare .section__wrap ul li > div{
  border-radius: 7px;
  overflow: hidden;
  border: 1px solid var(--color-base);
  padding: 1.5rem;
  display: flex;
  align-items: center; 
  height: 23rem;
}
.compare .section__wrap ul li h6{
  font-size: 2.2rem;
  line-height: 1.75;
  text-align: left;
  padding-left: 1.5rem;
  font-weight: 600;
}
.compare .section__wrap ul li h6 span{
  display: flex;
  gap: 0.5rem;
}
.compare .section__wrap ul li p{
  position: relative;
  display: flex;
  gap: 0.8rem;
  padding-left: 2.5rem;
  font-size: 2rem;
  line-height: 1.75;
  text-align: left;
}
.compare .section__wrap ul li p::before{
  content: "▶";
}

.compare .section__wrap ul li .img{
  padding: 0;
  border: 0;
  align-items: unset;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
}
.compare .section__wrap ul li .img img{
  opacity: 0;
}
.compare .section__wrap ul li .img span{
  font-size: 1.8rem;
  font-weight: 700;
  padding: 0.5rem 4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 1.5rem;
  background-color: #fff;
  border: 1px solid var(--color-base);
  text-align: center;
  position: absolute;
  right: 0.6rem;
  bottom: 1rem;
}
.compare .section__wrap ul li .img span.before{
  color: var(--color-theme);
  border-color: var(--color-theme);
}
.compare .section__wrap ul li .img span.left{
  right: auto;
  left: 0.6rem;
}



.three{}
.three .inner{
}
.three .section__cont{
  border-radius: 3rem;
  overflow: hidden;
}
.three .section__cont img{
  width: 100%;
}

.latest{}
.latest .inner{
  display: flex;
  gap: 1rem;
  justify-content: space-between;
}
.latest .inner > div{
  width: 47%;
}
.latest__tit{
  line-height: 2;
  border-bottom: 1px solid var(--color-base);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.latest__tit h3{
  font-size: 2.4rem;
  font-weight: 600;
}
.latest__tit a{
  font-size: 1.8rem;
  font-weight: 700;
}

.latest__notice{}
.latest__notice ul{}
.latest__notice ul li{
  line-height: 2.4;
  padding: 2rem 1rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 2rem;
  border-bottom: 0.5px solid var(--color-base);
  gap: 1rem;
}
.latest__notice ul li h6{
  max-width: calc(100% - 12rem);
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  font-weight: 400;
}
.latest__notice ul li h6 a{
  color:inherit;
}
.latest__notice ul li span{
  min-width: 11rem;
}

.latest__certificate{
  padding: 2rem 0.5rem 2rem;
  border-bottom: 0.5px solid var(--color-base);
  height: calc(100% - 4.9rem);
}
.latest__certificate ul li h6{
  font-size: 1.8rem;
  margin-top: 1rem;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.latest__certificate ul li a{
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  display: block;
  border: 1px solid var(--color-gray);
  overflow: hidden;
}
.latest__certificate ul li a img{
  opacity: 0;
}
.latest__certificate .swiper-pagination{
  margin-top: 2rem;
}
.latest__certificate .swiper-pagination .swiper-pagination-bullet{
  background-color: var(--color-bg);
  opacity: 0.5;
}



.company{}
.company .section__tit{
  margin-bottom: 2rem;
  border: 0;
}
.company .section__cont{
  border: 1px solid var(--color-base);
  padding: 8rem 1rem;
  display: flex;
  justify-content: space-around;
  gap: 1rem;
}
.company .section__cont dl{
  font-size: 2rem;
  padding: 0.5rem 0;
  padding-left: 1.6rem;
  border-left: 2px solid var(--color-base);
}
.company .section__cont dl:last-child{
  display: flex;
  flex-flow: column;
  justify-content: center;
}
.company .section__cont dt{
  font-weight: 600;
  margin-bottom: 0.8rem;
}
.company .section__cont dt b{
  font-size: 2.4rem;
  color: var(--color-theme);
  font-weight: 600;
}
.company .section__cont dd{}
.company .section__cont dd + dt{
  margin-top: 10px;
}



/* jp */
.main--jp .about .section__tit .txt{
  width: 53%;
}
.main--jp .about .section__tit .txt dd{
  font-size: 1.8rem;
}
.main--jp .function__list li .txt h6 font{
  letter-spacing: -0.02em;
}
.main--jp .function__list li .txt h6 img{
  margin-left: 8.7em;
  margin-right: 0.2em;
}

.main--jp .core .section__cont p font{
  margin-left: -0.3em;
}
.main--jp .core .section__cont p img{
  margin-left: 2.5em;
}


/* en */
.main--en .about .section__tit .txt dt{
  font-size: 1.7rem;
  letter-spacing: -0.05em;
}
.main--en .about .section__tit .txt dd{
  font-size: 1.7rem;
}
.main--en .accident .section__cont--right .txt{
  font-size: 2.2rem;
}
.main--en .function__list li .txt h6{
  font-size: 2.5rem;
  font-size: 2.3rem;
}
.main--en .function__list li .txt h6 font{
  margin-left: 2px;
}
.main--en .function__list li .txt h6 img{
  margin-left: 7em;
}
.main--en .core .section__cont span{
  width: 100%;
}
.main--en .compare .section__wrap ul li h6{
  font-size: 2rem;
  letter-spacing: -0.05em;
}
.main--en .compare .section__wrap ul li p{
  font-size: 1.8rem;
}
.main--en .compare .section__wrap ul li div.img{
  height: 50%;
}
.main--en .compare .section__wrap ul li h5{
  font-size: 2.4rem;
}
.main--en .compare .section__wrap ul li h5.our{
  letter-spacing: -0.04em;
}
.main--en .compare .section__wrap ul li .img span{
  font-size: 1.6rem;
}
.compare .section__wrap ul li .img span{
  padding-left: 0;
  padding-right: 0;
  width: 20rem;
}


@media (max-width: 1024px) {
  .swiper-pagination{
    gap: 0.5rem;
  }
  .swiper-pagination-bullet{
    width: 0.8rem;
    height: 0.8rem;
  }
  .inner{
    width: 95%;
    max-width: 600px;
    min-width: auto
  }



  .main{
    padding-top: 5.9rem;
  }
  .about,
  .section{
    padding: 3.5rem 0;
  }
  .section__subj{
    font-size: 1.8rem;
  }
  .section__subj--box{
    font-size: 1.8rem;
    padding: 1.2rem 3.5rem;
    line-height: 1.2;
  }

  .banner .section__tit{
    width: 90%;
    max-width: 600px;
    min-width: auto;
    transform: translateY(-52%);
  }
  .banner h2{
    font-size: 2.2rem;
    line-height: 1.4;
    letter-spacing: -0.01em;;
  }
  .banner p{
    font-size: 1.6rem;
    margin-top: 3rem;
  }
  .about{}
  .about .section__tit{
    flex-flow: column;
    gap: 2rem;
    margin-bottom: 3rem;
  }
  .about .section__tit .txt{
    width: 100% !important;
  }
  .about .section__tit .txt dl{
    padding-right: 1rem;
    margin-bottom: 1.5rem;
  }
  .about .section__tit .txt dt{
    font-size: 1.3rem;
    min-width: 5.5rem;
    padding: 0 0.5rem;
  }
  .about .section__tit .txt dd{
    padding-left: 1rem;
    font-size: 1.2rem !important;
    /* letter-spacing: -0.05em; */
    line-height: 1.6;
  }
  .about .section__tit .img{
    width: 100%;
  }
  .about .section__cont{
    font-size: 1.6rem;
    line-height: 1.56;
  }


  .accident{
    text-align: center;
  }
  .accident .section__cont{
    flex-flow: column;
    align-items: center;
    margin-top: 2rem;
  }
  .accident .section__cont > div{
    width: 100%;
  }
  .accident .section__cont img{
    width: 100%;
  }
  .accident .section__cont--right{
    display: flex;
    flex-flow: column-reverse;
  }
  .accident .section__cont--right .txt{
    font-size: 1.4rem;
    margin-bottom: 0;
    margin-top: 1.5rem;
  }
  .function .section__tit{
    margin-bottom: 3rem;
  }
  .function__list{
    gap: 2rem;
  }
  .function__list li{
    padding: 2.5rem 1.5rem !important;
    flex-flow: column;
    gap: 2rem;
  }
  .function__list li .txt{
    min-width: auto;
    padding-left: 0;
    padding-top: 0;
    width: 100% !important;
  }
  .function__list li .txt h6{
    font-size: 1.5rem;
    margin-bottom: 2rem;
  }
  .function__list li .txt h6 span{
    margin-bottom: 4rem;
    font-size: 1.6rem;
  }
  .function__list li .txt h6 img{
    width: 3rem;
  }
  .function__list li .txt p{
    font-size: 1.3rem;
    gap: 0.5rem;
  }
  .function__list li .img{
    width: 100%;
  }

  .etc .function__list li{
    flex-flow: column-reverse;
    gap: 1.6rem;
  }
  .etc .function__list li .txt h6{
    margin-bottom: 1.2rem;
  }
  
  .etc .function__list li .img{
    width: 100%;
  }


  .core .section__wrap{
    padding: 2.5rem 2rem;
  }
  .core .section__cont{
    margin-top: 3.5rem;
    flex-flow: column;
    gap: 2.5rem;
  }
  .core .section__cont > div{
    padding: 0;
  }
  .core .section__cont h5{
    font-size: 1.6rem;
    line-height: 1.2;
    padding: 1rem;
  }
  .core .section__cont .img{
    margin: 1.5rem 0;
  }
  .core .section__cont p{
    font-size: 1.6rem;
  }
  .core .section__cont p img{
    width: 2.2rem;
  }
  .core .section__cont span{
    font-size: 1.4rem;
    margin-top: 2rem;
  }

  .compare h4{
    font-size: 1.6rem;
    margin-bottom: 2rem;
    text-align: center;
  }
  .compare .section__wrap{
    margin: 1.5rem 0 3.5rem;
    padding: 2.5rem 2rem;
  }
  .compare .section__wrap ul{
    flex-flow: column;
    gap: 1.5rem;
  }
  .compare .section__wrap ul li{
    width: 100% !important;
    gap: 0;
  }
  .compare .section__wrap .section__cont > ul li > *:last-child{
    display: none;
  }
  .compare .section__wrap ul li h5{
    font-size: 1.5rem;
    height: auto;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
  }
  .compare .section__wrap ul li h5.our{
    font-size: 1.5rem;
    margin-top: 0;
  }
  .compare .section__wrap ul li > div{
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    border-top: 0;
    height: auto;
    padding: 1.5rem 1rem;
  }
  .compare .section__wrap ul li h6{
    padding-left: 0;
    font-size: 1.4rem !important;
  }
  .compare .section__wrap ul li h6 span{
    gap: 0.3rem;
  }
  .compare .section__wrap ul li h6 span b{
    margin-top: 3px;
    font-size: 0.8em;
  }
  .compare .section__wrap ul li p{
    font-size: 1.2rem !important;
    padding-left: 1.8rem;
  }

  .compare .section__wrap .onlyMob > ul{
    margin-top: 30px;
  }
  .compare .section__wrap .onlyMob > ul li > *:nth-child(2){
    display: none;
  }
  .compare .section__wrap ul li .img span{
    font-size: 1.4rem !important;
    padding: 0.5rem 1.5rem;
    width: auto;
  }


  .latest .inner{
    flex-flow: column;
    gap: 5rem ;
  }
  .latest .inner > div{
    width: 100%;
  }
  .latest__tit h3{
    font-size: 1.8rem;
    padding-bottom: 0.5rem;
  }
  .latest__tit a{
    font-size: 0.14rem;
  }
  .latest__notice ul li{
    font-size: 1.6rem;
    line-height: 1.6;
    padding: 1.5rem 1rem;
  }
  .latest__notice ul li h6{
    width: 100%;
    max-width: none;
  }
  .latest__notice ul li span{
    display: none;
  }
  .latest__certificate{
    height: auto;
  }
  .latest__certificate ul li h6{
    font-size: 1.4rem;
  }
  .company .section__tit{
    margin-bottom: 1rem;
  }
  .company .section__cont{
    padding: 1rem 1rem;
    flex-flow: column;
    gap: 0;
  }
  .company .section__cont dl{
    position: relative;
    font-size: 1.4rem;
    border: 0;
    padding-left: 0;
    padding: 3rem 0;
  }
  .company .section__cont dt b{
    font-size: 1.6rem;
  }
  .company .section__cont dl:first-child::after{
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    position: absolute;
    left: 0;
    right: 0;
    margin: auto;
    bottom: 0;
    background-color: var(--color-base);
  }


  .main--jp .about .section__tit .txt dl{
    padding-right: 0.5rem;
  }
  .main--jp .about .section__tit .txt dt{
    min-width: 5rem;
  }
  .main--jp .about .section__tit .txt dd{
    /* word-break: break-all; */
    letter-spacing: -0.05em;
  }
  .main--jp .function__list li .txt h6{
    font-size: 1.4rem;
  }
  .main--jp .function__list li .txt p{
    font-size: 1.2rem;
  }
  
  .main--en .banner h2{
    font-size: 1.7rem;
    letter-spacing: -0.05em;
  }
  .main--en .banner p{
    font-size: 1.4rem;
  }
  .main--en .banner .section__tit{
    width: 95%;
  }
  .main--en .banner img{
    min-height: 320px;
  }
  .main--en .about .section__tit .txt dt{
    font-size: 1.3rem;
    min-width: 8rem;
    letter-spacing: -0.05em;
  }
  .main--en .about .section__tit .txt dd{
    font-size: 1.2rem;
  }
  .main--en .accident .section__cont--right .txt{
    font-size: 1.3rem;
  }
  .main--en .function__list li .txt h6{
    font-size: 1.4rem;
    letter-spacing: -0.03em;
  }
  .main--en .function__list li .txt h6 img{
    margin-left: 1em;
  }
  .main--en .core .section__cont p{
    font-size: 1.4rem;
  }
  .main--en .compare h4{
    letter-spacing: -0.04em;
  }
  .main--en .compare .section__wrap ul li h6{
    font-size: 1.4rem;
  }
  .main--en .company .section__cont dd{
    font-size: 1.3rem;
  }

}





