/* main-visual
-------------------------------------------*/

.mv_wrap{
  position: relative;
  width: 100%;
  height: 100vh;
  z-index: 0;
}
.mv_wrap .mv_wrap__top{
  width: 100%;
  display: flex;
  align-items: center;
  align-content: center;
  justify-content: space-between;
}
.mv_wrap .mv_wrap__top .mv{
  position: relative;
  overflow: hidden;
  width: 90%;
  height: 75vh;
  border-radius: 0 100px 100px 0;
}
.mv_wrap .mv_wrap__top .mv img{
	width: 100%;
  min-width: 100%;
  min-height: 100%;
  object-fit: cover;
  animation: zoomIn 2.5s ease-in-out;
}
@keyframes zoomIn{
  from {
    transform: scale(1.15);
  }
}
.mv_wrap .mv_wrap__top .scrolldown{
  width: 10%;
  display: flex;
  align-items: center;
  position: absolute;
  right: 0;
  bottom: 30%;
  writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  font-size: 16px;
  letter-spacing: 0.1em;
}
/* 線のアニメーション部分 */
.mv_wrap .mv_wrap__top .scrolldown::before{
  animation: scroll 2s infinite;
  background-color: #333;
  bottom: -15px;
  content: "";
  height: 90px;
  margin: auto;
  position: absolute;
  bottom: 120%;
  width: 1px;
}
@keyframes scroll {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 0;
  }
  50% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }
  51% {
    transform: scale(1, 1);
    transform-origin: 0 100%;
  }
  100% {
    transform: scale(1, 0);
    transform-origin: 0 100%;
  }
}
.mv_wrap .autoscroll{
  margin-top: -90px;
}

@media screen and (max-width: 650px){
  
  .mv_wrap{
    height: 62vh;
  }
  .mv_wrap .autoscroll__text{
    padding-top: 6%;
  }
  .mv_wrap .mv_wrap__top .mv{
    width: 100%;
    height: 50vh;
    border-radius: 0;
  }
  .mv_wrap .mv_wrap__top .scrolldown{
    bottom: 40%;
    font-size: 12px;
  }
  /* 線のアニメーション部分 */
  .mv_wrap .mv_wrap__top .scrolldown::before{
    height: 60px;
    bottom: 115%;
  }
}


/* news
-------------------------------------------*/

.top_news{
  width: 100%;
  padding-bottom: var(--sec-margin);
}
.top_news__in{
  display: flex;
  justify-content: space-between;
  width: var(--page-width);
  margin: 0 auto;
  text-align: left;
}
.top_news__side{
  width: 20%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.top_news .h2_tit{
  padding-left: 10px;
}
.top_news__headline{
  width: 70%;
  margin-top: -20px;
}
.top_news__headline dl a{
  width: 100%;
  padding: 4% 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  border-bottom: 1px solid #ccc;
  background: url(../img/common/ic_arrow_bl.svg) right center no-repeat;
  background-size: 14px;
  transition: all 0.3s ease;
}
.top_news__headline dt{
  width: 32%;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  column-gap: 20px;
}
.top_news__headline dt .category{
  font-size: clamp(11px,1.25vw,12px);
  text-align: center;
  height: 34px;
  line-height: 32px;
  border-radius: 17px;
  padding: 0 8%;
  color: var(--green);
  background-color: #fff;
  border: 1px solid var(--green);
  margin-top: 4px;
}
.top_news__headline dd{
  width: 68%;
  line-height: 1.75;
  padding-right: 40px;
}
.top_news__headline dl a:hover{
  opacity: var(--hover);
  background-position: 99% center;
}

@media screen and (max-width: 960px){
  
  .top_news__in{
    flex-wrap: wrap;
  }
  .top_news__side{
    width: 100%;
    align-items: center;
    flex-direction: row;
  }
  .top_news .h2_tit{
    width: 50%;
  }
  .top_news__side .morebtn{
    width: min(250px,44%);
  }
  .top_news__headline{
    width: 100%;
    margin-top: 5%;
  }
  .top_news__headline dt,
  .top_news__headline dd{
    width: 100%;
  }
  .top_news__headline dt{
    align-items: center;
    padding-bottom: 2%;
  }
  .top_news__headline dt .category{
    height: 30px;
    line-height: 28px;
    border-radius: 15px;
    padding: 0 16px;
    margin-top: 0;
  }
}
@media screen and (max-width: 650px){
  
  .top_news__headline dt{
    column-gap: 10px;
  }
  .top_news__headline dt .category{
    height: 26px;
    line-height: 24px;
    border-radius: 13px;
  }
}

/* concept
-------------------------------------------*/

.top_concept{
  position: relative;
  width: 100%;
  height: auto;
  background-color: #fff;
  padding: var(--sec-margin) 0;
}
#particles-js{
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
}
.top_concept__in{
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  width: var(--page-width);
  max-width: var(--max-width);
  margin: 0 auto;
  text-align: left;
}
.top_concept__side{
  width: 45%;
}
.top_concept__side .tit{
  font-size: clamp(28px,4.3vw,60px);
  line-height: 1.5;
}
.top_concept__text{
  width: 50%;
  font-size: clamp(14px,2.15vw,20px);
  line-height: 2.7;
}
.top_concept__text .morebtn{
  padding-top: 10%;
}
.top_concept__text .morebtn a{
  width: 260px;
  margin: 0 0 0 auto;
  background-image: url(../img/common/ic_morebtn_gry.svg);
}

@media screen and (max-width: 650px){
  
  .top_concept__in{
    flex-wrap: wrap;
  }
  .top_concept__side,
  .top_concept__text{
    width: 100%;
  }
  .top_concept__side .tit{
    padding-bottom: 10%;
  }
  .top_concept__text{
    line-height: 2;
  }
  .top_concept .morebtn a{
    width: min(180px,50%);
  }
}

/* product
-------------------------------------------*/

.top_product{
  width: 100%;
  padding: var(--sec-margin) 0;
}
.top_product__in{
  width: var(--page-width);
  max-width: var(--max-width);
  margin: 0 auto;
  text-align: left;
}
.top_product .top_product__head{
  width: 100%;
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
}
.top_product__head .h2_tit{
  width: 70%;
}
.top_product__head .morebtn{
  width: clamp(280px,43vw,26%);
}
.top_product__list{
  width: 100%;
  padding-top: 6%;
}
.top_product__list ul{
  display: flex;
  justify-content: flex-start; /* 左寄せ */
  gap: 5%;
}
.top_product__list ul li{
  width: 30%;
  line-height: 1.5;
}
.top_product__list ul li a{
  display: flex;
  flex-direction: column;
}
.top_product__list ul li a .morebtn{
  margin-top: auto;/* カードの一番下に揃える */
}
.top_product__list ul li .product__list_thumbnail{
  cursor: pointer;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content:center;
  background-color: #fff;
  border-radius: 10px;
  background: linear-gradient(to right, #00b9be 0%, #dadab6 70%, #ffa47e 90%);
  box-shadow: 4px 4px 10px 0 rgba(0,0,0,0.15);
  padding: 1px;
}
/*グラデーションボーダー*/
.top_product__list ul li .border_cont{
  background-color: #fff;
  border-radius: 10px;
  width: 100%;
  overflow: hidden;
}
.top_product__list ul li .product__list_thumbnail{
  text-align: center;
}
.top_product__list ul li .product__list_thumbnail img{
  object-fit: contain;
  width: 100%;
  height: min(220px,16.6vw);
  transition: transform .35s ease;
}
.top_product__list ul li a:hover .product__list_thumbnail img{
  opacity: 1;
  transform: scale(1.075);
}
.top_product__list ul li h3{
  font-size: clamp(12px,1.5vw,14px);
  letter-spacing: 0;
  font-weight: normal;
  border-bottom: 1px solid #ccc;
  padding: 5% 0;
  margin-bottom: 4%;
}
.top_product__list ul li h3 .tit{
  display: block;
  font-size: clamp(17px,2.6vw,20px);
  letter-spacing: .1em;
  color: var(--green);
  padding-bottom: 2%;
}
.top_product__list ul li dl{
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  width: 100%;
  padding-bottom: 2%;
  font-size: clamp(12px,1.5vw,14px);
}
.top_product__list ul li dl dt{
  width: 62px;
  font-weight: bold;
  letter-spacing: .05em;
}
.top_product__list ul li dl dd{
  width: calc(100% - 62px);
}
.top_product__list ul li dl:last-child{
  margin-bottom: 5%;
}
.top_product__list ul li dl:last-child dt{
  width: 76px;
}
.top_product__list ul li dl:last-child dd{
  width: calc(100% - 76px);
}

/* morebtn */
.top_product__list .morebtn{
  font-family: var(--font-en);
  display: block;
  width: clamp(180px,27.7vw,50%);
  height: 52px;
  line-height: 52px;
  border-radius: 26px;
  font-size: clamp(13px,2vw,16px);
  margin: 0 auto;
  padding: 0 30px;
  background: url(../img/common/ic_morebtn_wh.svg) 90% center no-repeat;
  background-size: 30px;
  background-color: #ccc;
  transition: all 0.25s ease;
}
.top_product__list ul li a:hover .morebtn{
  color: #fff;
  background-color: var(--font-black);
}

@media screen and (max-width: 650px){
  
  .top_product__list{
    padding-top: 6%;
  }
  .top_product__head .morebtn{
    width: max(180px,50%);
  }
  .top_product__list ul{
    width: 84%;
    margin: 0 auto;
    flex-wrap: wrap;
    row-gap: 50px;
  }
  .top_product__list ul li{
    width: 100%;
  }
  .top_product__list ul li .product__list_thumbnail{
    box-shadow: none;
  }
  .top_product__list ul li .product__list_thumbnail img{
    height: min(260px,50vw);
  }
  .top_product__list ul li h3{
    padding: 4% 0;
    margin-bottom: 4%;
  }
  .top_product__list ul li h3 .tit,
  .top_product__list ul li dl{
    padding-bottom: 1%;
  }
  .top_product__list .morebtn{
    width: max(160px,50%);
    height: 48px;
    line-height: 48px;
    border-radius: 24px;
    background-size: 26px;
  }
}


/* Technology / CMS
-------------------------------------------*/

.top_grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
}
.top_grid__item{
  position: relative;
  overflow: hidden;
  display: grid;
  justify-content: space-between;
}
.top_grid__item:after{
  position: absolute;
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  top: 0;
  transition: all .35s ease-out;
}
.top_tech:after{
  background: url(../img/top/bg_top_tech.jpg) center center no-repeat;
  background-size: cover;
}
.top_cms:after{
  background: url(../img/top/bg_top_cms.jpg) center center no-repeat;
  background-size: cover;
}
.top_grid__item:hover:after{
  opacity: 1;
  transform: scale(1.05);
}
.top_grid__item a{
  position: relative;
  overflow: hidden;
  z-index: 2;
  width: 100%;
  height: 100%;
  text-decoration: none;
  text-align: left;
  color: #fff;
}
.top_grid__item a .item{
  padding: 14%;
}
.top_grid__item a:hover{
  background-color: rgba(0,0,0,0.2);
}
.top_grid__item .h2_tit{
  padding-bottom: 36%;
}
.top_grid__item .h2_tit .en{
  font-size: clamp(28px,4.3vw,40px);
  padding-bottom: 20px;
}
.top_grid__item .h2_tit h2{
  font-size: clamp(14px,2.15vw,20px);
}
.top_grid__item .btm_txt p{
  padding-bottom: 5%;
  font-size: clamp(14px,2.15vw,16px);
}
/* morebtn */
.top_grid a .morebtn{
  font-family: var(--font-en);
  display: block;
  width: clamp(180px,27.7vw,50%);
  height: 70px;
  line-height: 70px;
  border-radius: 35px;
  padding: 0 30px;
  color: #fff;
  border: 1px solid #fff;
  background: url(../img/common/ic_morebtn_wh.svg) 90% center no-repeat;
  background-size: 30px;
  transition: all 0.25s ease;
}
.top_grid a:hover .morebtn{
  color: var(--font-black);
  background: url(../img/common/ic_morebtn_bl.svg) 90% center no-repeat;
  background-size: 30px;
  background-color: #fff;
}

@media screen and (max-width:650px){
  .top_grid__item a .item{
    padding: 16% 12%;
  }
  .top_grid__item a:hover{
    background-color: rgba(0,0,0,0.2);
  }
  .top_grid__item .h2_tit{
    padding-bottom: 10%;
  }
  .top_grid__item .h2_tit .en{
    padding-bottom: 10px;
  }
  .top_grid a .morebtn{
    width: min(180px,50%);
    height: 48px;
    line-height: 48px;
    border-radius: 24px;
  }
  .top_grid a .morebtn,
  .top_grid a:hover .morebtn{
    background-size: 26px;
  }
}

/* recruit
-------------------------------------------*/

.top_rec{
  width: 100%;
  color: #fff;
  background: var(--green);
  padding: min(10%,100px) 0 var(--sec-margin);
}
.top_rec .autoscroll__text{
  flex: 0 0 auto;
  overflow: hidden;
  white-space: nowrap;
  font-size: clamp(80px,11.5vw,130px);
  width: clamp(1640px,236vw,2600px);
  background: rgba(255,255,255,0.15);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  z-index: 0;
}
.top_rec__in{
  width: var(--page-width);
  max-width: var(--max-width);
  margin: -110px auto 0;
}
.top_rec .top_rec__cont{
  position: relative;
  z-index: 2;
  padding: 5% 0;
  border-radius: 20px;
  background-color: rgba(255,255,255,0.1);
  backdrop-filter: blur(4px);
}
.top_rec__cont .h2_tit h2 span{
  color: #fff;
}
.top_rec__cont .text{
  width: clamp(200px, 80%, 750px);
  margin: 0 auto;
  text-align: justify;
  padding: 6% 0;
}
.top_rec__cont .morebtn a{
  width: 260px;
  margin: 0 auto;
  color: #fff;
  text-align: left;
  border-color: #fff;
}
.top_rec__cont .morebtn a:hover{
  background: url(../img/common/ic_morebtn_bl.svg) 90% center no-repeat;
  background-size: 30px;
  background-color: #fff;
  color: var(--font-black);
}

@media screen and (max-width:650px){
  
  .top_rec__in{
    margin: -70px auto 0;
  }
  .top_rec .top_rec__cont{
    padding: 10% 0;
    border-radius: 10px;
  }
  .top_rec__cont .morebtn a{
    width: min(180px,50%);
  }
  .top_rec__cont .morebtn a,
  .top_rec__cont .morebtn a:hover{
    background-size: 26px;
  }
}