/*---- topCSS ----*/
.fv {
  width: 100%;
  height: 100vh;
  position: relative;
  z-index: 1;
  background-color: #fff;
  display: flex;
  flex-wrap: nowrap;
}
.fv .fv_right {
  width: 40%;
  min-width: 400px;
  height: 100%;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  /* overflow: hidden; */
}
.fv .fv_right .fv_title {
  box-sizing: border-box;
  display: flex;
  flex-flow: column;
  row-gap: 4.0rem;
  position: relative;
  z-index: 3;
}
.fv .fv_right .fv_title .fv_title_head .head {
  font-size: min(13.4vw , 9.0rem);
  color: #000000;
}
.fv .fv_right .fv_title .line {
  background-color: #B2CDE2;
  height: 0.2rem;
  width: 5.0rem;
  display: inline-block;
}
.fv .fv_right .fv_title .sub {
  font-size: min(3.8vw , 3.0rem);
  color: #B2CDE2;
}
.fv .fv_left {
  width: 60%;
  height: 100%;
}
.fv .fv_left .splide__pagination {
  gap: 0.5em;
}
.fv .fv_left .splide__pagination__page {
  width: 12px;
  height: 12px;
}
.fv .fv_right .fv_right_bk {
  position: relative;
}
.fv .fv_right .fv_right_bk::after {
  content: "";
  background: url(/common/images/img_map.svg) no-repeat;
  background-size: contain;
  background-position: center;
  position: absolute;
  z-index: 2;
  width: 35.0rem;
  height: auto;
  aspect-ratio: 25 / 34;
  top: 5.0rem;
  right: max(-11vw , -18.8rem);
}

@media screen and (max-width: 768px) {
  .mainContents-top {
    margin-top: 8vh;
  }
  .fv {
    height: calc(100vh - 8vh);
  }
  .fv .fv_right {
    width: 100%;
    min-width: auto;
    position: absolute;
    z-index: 4;
    justify-content: flex-end;
    align-items: flex-start;
  }
  .fv .fv_right .fv_title {
    flex-flow: row-reverse;
    column-gap: 2.0rem;
    margin: 3.0rem 5.0rem 0 0;
  }
  .fv .fv_right .fv_title .fv_title_head .fv_title_head_sp {
    display: flex;
    flex-flow: row-reverse;
    column-gap: 0.6em;
  }
  .fv .fv_right .fv_title .fv_title_head .head {
    display: flex;
    flex-flow: column;
    align-items: center;
    line-height: 1;
  }
  .fv .fv_right .fv_title .line {
    height: 3.0rem;
    width: 0.2rem;
  }
  .fv .fv_right .fv_title .sub {
    text-orientation: mixed;
    writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    letter-spacing: 0.05em;
  }
  .fv .fv_left {
    width: 100%;
    height: 65%;
    align-self: self-end;
    position: relative;
  }
  /* .fv .fv_left::before {
    content: "";
    width: 100%;
    height: 100%;
    display: inline-block;
    background: linear-gradient(#fff 0 , rgba(255,255,255,0) 30%);
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
  } */
  .fv .fv_right .fv_right_bk::after {
    width: min(33vw , 35.0rem);
    top: auto;
    bottom: -2.0rem;
    left: -1.0rem;
    right: auto;
  }
}

/* スライドショー */
.splide {
  width: 100%;
  height: 100%;
  overflow: hidden;
  & .splide__track {
    width: 100%;
    height: 100%;
    & .splide__list {
      position: relative;
      & .splide__slide {
        background-position: center;
        background-repeat: no-repeat;
        background-size: cover;
        position: absolute;
        top: 0;
        bottom: 0;
        right: 0;
        left: 0;
        &[class*=is-active] {
          animation: kv-zoom 8000ms linear 0s 1 normal both;
          position: relative;
        }
      }
    }
  }
}
@keyframes kv-zoom {
  0% {
     transform: scale(1);
  }
  100% {
     transform: scale(1.15);
  }
}


/* カネカメディカルテックとは */
.about_area {
  margin-top: min(13.3vw , 15rem);
}
.about_area_block {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4.0rem;
}
.about_area_block .about_img {
  clip-path: inset(0 0 0 0 round 0 6.0rem 6.0rem 0);
  background: url(/common/images/img_about_01.webp) no-repeat;
  background-size: cover;
  background-position: center;
}
.about_area_block .about_text {
  position: relative;
  margin-left: min(4.5vw , 7.0rem);
  padding: 0;
}
.about_area_block .about_text .about_text_bk {
  position: absolute;
  z-index: 1;
  top: 17px;
}
.about_area_block .about_text .about_text_bk .bk-text {
  color: #E7EEF6;
  font-size: min(10.7vw , 6.0rem);
  opacity: 0.6;
}
.about_area_block .about_text .about_text_inner {
  padding: min(7vw , 11rem) 4.0rem 4.0rem min(5vw , 9.0rem);
  position: relative;
  z-index: 2;
  /* width: 60%; */
}
.about_area_block .about_text .about_text_ttl {
  display: flex;
  flex-flow: column;
  row-gap: 2.0rem;
}
.about_area_block .about_text .about_text_ttl .sub {
  font-size: min(4.3vw , 1.8rem);
}
.about_area_block .about_text .about_text_ttl .head {
  font-size: min(6.4vw , 3.2rem);
  line-height: 2;
}
.about_area_block .about_text .about_text_lead {
  margin: 4.0rem 0 3.0rem 0;
  width: min(30vw , 36.5rem);
}
.about_area_block .about_text .about_text_lead .lead {
  line-height: 1.8;
}
@media screen and (max-width: 768px) {
  .about_area_block {
    grid-template-columns: 1fr;
    gap: 5.0rem;
  }
  .about_area_block .about_img {
    clip-path: none;
    width: 100%;
    height: auto;
    aspect-ratio: 75 / 59;
    order: 2;
  }
  .about_area_block .about_text {
    margin-left: 0;
    order: 1;
  }
  .about_area_block .about_text .about_text_bk {
    top: 0;
    left: 1.0rem;
  }
  .about_area_block .about_text .about_text_inner {
    padding: 3.0rem 4.0rem 0;
  }
  .about_area_block .about_text .about_text_lead {
    width: 100%;
  }
}

/* 主要製品・製造・開発バナー */
.banner_area {
  margin-top: min(16vw , 15.0rem);
}
.banner_area .banner_inner {
  max-width: calc(1200px + 40px);
  width: 100%;
  margin: auto;
  padding: 0 20px;
  box-sizing: border-box;
}
.banner_area .banner_contents {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 4.0rem;
  row-gap: 2.0rem;
}
.banner_area .banner_contents .banner {
  position: relative;
  width: 100%;
  height: auto;
  aspect-ratio: 29 / 21;
  overflow: hidden;
  display: flex;
  justify-content: center;
}
.banner_area .banner_contents .banner::after {
  content: "";
  background: url(/common/images/icon_right.png) no-repeat;
  width: 4.0rem;
  height: 4.0rem;
  aspect-ratio: 1 / 1;
  display: inline-block;
  position: absolute;
  right: 2.0rem;
  bottom: 2.0rem;
  z-index: 1;
}
.banner_area .banner_contents .banner .banner_bk {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  width: 100%;
  height: 100%;
  transition: all .3s ease-out;
  position: relative;
  z-index: 1;
}
.banner_area .banner_contents .banner.banner_1 .banner_bk {
  background-image: url(/common/images/bnr_pro.webp);
}
.banner_area .banner_contents .banner.banner_2 .banner_bk {
  background-image: url(/common/images/bnr_deve.webp);
}
.banner_area .banner_contents .banner:hover .banner_bk {
  opacity: .8;
  -moz-transform: scale(1.2);
  -webkit-transform: scale(1.2);
  -ms-transform: scale(1.2);
  transform: scale(1.2);
}
.banner_area .banner_contents .banner .banner_text {
  position: absolute;
  z-index: 2;
  margin-top: min(5.35vw, 3.0rem);
}
.banner_area .banner_contents .banner .banner_text .head {
  font-size: min(8vw , 5.0rem);
  color: #fff;
  text-align: center;
  line-height: 1.2;
}
.banner_area .banner_contents .banner .banner_text .text {
  font-size: min(3.5vw , 2.0rem);
  color: #fff;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .banner_area .banner_contents {
    grid-template-columns: 1fr;
  }
}