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

.mv_wrap{
  position: relative;
  width: calc(100% + 140px);/*svgサイズ調整*/
  height: 100%;
  left: -140px;
  clip-path: inset(0 0 0 140px);
  height: 90vh;
  z-index: 0;
}
.mv{
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.mv > img{
  position: absolute;
  z-index: 1;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  animation: zoomIn 2.5s ease-in-out;
}
@keyframes zoomIn{
  from{ transform: scale(1.15); }
  to{ transform: scale(1); }
}

/*線アニメーション*/
#mv_line{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 2;
}
#mv_line .st0{
  fill: none;
  stroke: #fff;
  stroke-miterlimit: 10;
  stroke-width: 3px;
}
#mv_line .st1{ fill:  var(--orange); }
#mv_line .st2{ fill: #fff; }
#mv_line .st3{ fill: var(--blue); }
.flow-line{
  stroke-dasharray: 2000;
  stroke-dashoffset: 2000;
  animation: draw 3.2s ease forwards;
}
.right-line{
  stroke-dasharray: 2000;
  stroke-dashoffset: 2000;
  animation: drawRight 3.2s ease forwards 1.2s;
}
@keyframes draw{
  to{
    stroke-dashoffset: 0;
  }
}
@keyframes drawRight{
  to{
    stroke-dashoffset: 0;
  }
}
@media (max-width: 650px){
  .mv_wrap{
    width: calc(100% + 210px);
    left: -170px;
    clip-path: inset(0 40px 0 170px);/*左右切り抜き*/
    height: 83vh;
  }
}

/* top/cmn
-------------------------------------------*/

.top_sec__in{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 2rem 4rem;
  padding: calc(var(--sec-margin)*1.5) 0;
}
.top_sec__text{
  flex: 1;
}
.sec_text{
  text-align: justify;
  letter-spacing: -.025em;
  font-size: clamp(13px,2.0vw,16px);
}
.top_shape{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none; /* クリック邪魔しない */
  z-index: 1;
}
.top_shape_bg{
  position: absolute;
}
.top_shape_bg img{
  width: 100%;
  height: auto;
  object-fit: cover;
}

@media screen and (max-width: 650px){
  
  .top_sec__in{
    padding: calc(var(--sec-margin)*2) 0;
  }
  .sec_text{
    text-align: left;
    letter-spacing: 0;
  }
}

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

.top_concept{
  position: relative;
  width: 100%;
  height: auto;
  margin: 6rem auto 3rem;
  padding: calc(var(--sec-margin)*1.5) 0 calc(var(--sec-margin)*2.5);
}
#line_svg{
  position :absolute;
  inset: 0;
  width: 100%;
  max-width: 1700px;
  height: auto;
  pointer-events: none;
  z-index: 0;
}
#line_svg path{
  fill: none;
  stroke: #ccc;
  stroke-width: 110;
}
.line_svg.is-draw path{
  stroke-dashoffset: 0;
}
.top_concept__in{
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  text-align: left;
  z-index: 2;
  width: var(--page-width);
  margin: 0 auto;
}
.top_concept__text{
  position: relative;
  z-index: 2;
  width: 50%;
  padding: 10rem 0 5rem;
}
.top_concept__text p{
  font-weight: bold;
  font-size: clamp(15px,2.308vw,19px);
}
.top_concept__text .morebtn a{
  margin: 2.5rem 0 0 auto;
}
.concept_shape_1{
  top: -8rem;
  right: 4rem;
  width: min(190px,20%);
}
.concept_shape_2{
  top: 20%;
  right: 40%;
  width: min(60px,5%);
}
.concept_shape_3{
  bottom: 15%;
  right: 6%;
  width: min(90px,10%);
}
.concept_shape_4{
  bottom: 5%;
  right: 40%;
  width: min(70px,8%);
}
.concept_media img{
  border-radius: 12px;
}
.concept_media_sub{
  position: absolute;
  top: 4rem;
  left: 30%;
  width: min(210px,15%);
}
.concept_media_main{
  position: absolute;
  top: 30%;
  right: 10%;
  width: min(380px,38%);
}
.galleries{
  position: relative;
  width: 100%;
  padding-bottom: calc(var(--sec-margin)*2);
}

@media screen and (max-width: 650px){
  
  .top_concept{
    padding: var(--sec-margin) 0;
  }
  .top_concept__text{
    padding: 250px 0 0;
    width: 80%;
  }
  .concept_shape_1{
    top: -8rem;
    right: 2rem;
  }
  .concept_shape_2{
    top: 10%;
    right: 50%;
  }
  .concept_shape_3{
    bottom: 25%;
  }
  .concept_shape_4{
    bottom: 15%;
    right: 16%;
  }
  .concept_media img{
    border-radius: 12px;
  }
  .concept_media_sub{
    top: -1rem;
    left: 10%;
    width: min(210px,25%);
  }
  .concept_media_main{
    top: 10%;
    right: 3%;
  }
}

/* value
-------------------------------------------*/
.value__in{
  display: flex;
}

/* interview
-------------------------------------------*/

.interview .staff_list{
  position: relative;
  z-index: 2;
  width: min(800px,80%);
  margin: 0 auto;
  padding: calc(var(--sec-margin)*0.5) 0 calc(var(--sec-margin)*1.5);
}
.staff_list ul{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(20px,4vw,60px);
}
.staff_list ul li{
  list-style: none;
}
.staff_list a{
  display: block;
  height: 100%;
  color: var(--black);
}
.staff_list a:hover img{
  opacity: 1;
}
.staff_pic{
  position: relative;
  overflow: hidden;
  border-radius: 12px;
}
.staff_pic img{
  display: block;
  width: 100%;
  height: auto;
  transition: transform .3s ease; /* なめらかに */
 }
.staff_list a:hover .staff_pic img{
  transform: scale(1.06);
}
.staff_head{
  position: relative;
  font-weight: bold;
  border-radius: 12px;
}
.num{
  position: absolute;
  top: -3rem;
  left: .5rem;
  color: var(--orange);
  font-weight: 500;
  font-family: var(--font-en);
  font-size: clamp(39px,6.0vw,50px);
  z-index: 2;
}
.staff_dept{
  position: absolute;
  bottom: 0;
  left: 0;
  width: 180px;
  padding: 6px;
  color: #fff;
  font-size: clamp(13px,2.0vw,15px);
  background: var(--orange);
  border-top-right-radius: 12px;
  z-index: 2;
}
.staff_btm{
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 0;
  text-align: left;
  font-weight: bold;
  border-bottom: none;
  background-image: linear-gradient(to right, #ccc 50%, transparent 0);
  background-size: 8px 2px;   /* ← 間隔ここで調整 */
  background-repeat: repeat-x;
  background-position: left bottom;
}
.staff_btm .join{
  position: relative;
  padding-right: 30px;
  display: inline-block;
  letter-spacing: .05em;
}
.staff_btm::after{
  content: "";
  width: 30px;
  height: 30px;
  background: url(../img/cmn/ic_morebtn_ora.svg) no-repeat center / contain;
}
.staff_list a:hover .staff_btm::after{
  transform: translateX(4px);
  transition: .3s;
}
.staff_list li:nth-child(even){
  padding-top: 5rem;
}
.staff_list li:nth-child(even) .num{
  color: var(--red);
}
.staff_list li:nth-child(even) .staff_dept{
  background: var(--red);
}
.staff_list li:nth-child(even) .staff_btm::after{
  background: url(../img/cmn/ic_morebtn_red.svg) no-repeat center / contain;
}
.staff_shape_1{
  top: 20rem;
  right: 2%;
  width: min(210px,25%);
}
.staff_shape_2{
  top: 60%;
  left: 0%;
  width: min(110px,12%);
}
.special_bnr{
  position: relative;
  margin: 0 auto;
  width: min(900px,90%);
  padding-bottom: calc(var(--sec-margin)*3);
}
.special_bnr a{
  position: relative;
  z-index: 2;
  display: block;
  overflow: hidden;
  border-radius: 12px;
}
.special_bnr a img{
  display: block;
  transition: transform .6s ease, filter .4s ease;
}
.special_bnr a:hover img{
  opacity: 1;
  filter: brightness(1.1);
  transform: scale(1.02);
}
.special_shape_1{
  top: -3rem;
  right: -3rem;
  width: min(140px,12%);
}
.special_shape_2{
  top: 18rem;
  left: -2rem;
  width: min(76px,10%);
}

@media screen and (max-width: 650px){
  
  .interview .staff_list{
    padding: 0 0 calc(var(--sec-margin)*1.5);
  }
  .staff_list ul{
    width: 86%;
    margin: 0 auto;
    grid-template-columns: 1fr;
    gap: 0;
  }
  .num{
    top: -2.25rem;
  }
  .staff_dept{
    width: 160px;
  }
  .staff_list li{
    padding-bottom: 3rem;
  }
  .staff_list li:nth-child(odd){
    margin-right: 3rem;
  }
  .staff_list li:nth-child(even){
    padding-top: 0;
    margin-left: 3rem;
  }
  .staff_shape_1{
    top: 18rem;
    right: 1%;
  }
  .special_shape_1{
    top: -1.5rem;
    right: -1rem;
  }
  .special_shape_2{
    top: 10rem;
  }
}


/* data / Q&A
-------------------------------------------*/

.top_sec_btm .top_sec__in{
  display: flex;
  align-items: stretch;
  justify-content: space-around;
  gap: 6rem;
  padding: calc(var(--sec-margin)*1.5) 0;
  width: var(--page-width);
  margin: 0 auto;
}
.top_sec__col{
  display: flex;
  flex-direction: column;
  flex: 1;
}
.top_sec__col .morebtn{
  margin: auto;
}
.top_sec__col .sec_heading__en{
  font-size: clamp(33px,5.077vw,50px);
}
.top_sec__col .sec_heading__jp{
  font-size: clamp(15px,2.308vw,18px);
}
.top_sec__col .thumb img{
  border-radius: 6px;
}
.top_sec__col .sec_text{
  padding: 1rem 0;
  font-size: clamp(12px,1.846vw,14px);
}

@media screen and (max-width: 650px){
  
  .top_sec_btm{
    flex-direction: column;
    align-items: center;
    gap: 2rem;
    padding: calc(var(--sec-margin)*2) 0;
  }
  .top_sec__col{
    flex: none;
    width: 100%;
    max-width: 400px;
  }
}