@charset "UTF-8";

.float_b{
  z-index: 5;
}

.case_studies{
  color: #384d61;
}

.case_name{
  max-width: 1280px;
  font-size: 24px;
  line-height: 1.3;
  margin: 45px auto 50px;
}

.case_name span{
  font-family: "FrutigerRoma", sans-serif;
  font-size: 34px;
  line-height: 1.3;
  color: #1875cc;
  padding-left: 1em;
}

.case_inner {
  max-width: 1280px;
  margin: 0 auto;
  position: relative;
}


@media screen and (min-width: 801px) {
  .case_name span::before{
    content: "- ";
  }
  
  .case_studies a{
    transition: .3s opacity;
  }
  
  .case_studies a:hover{
    opacity: .6;
    text-decoration: none;
  }
}

.title_box{
  background: #2c78bf;
  padding: 50px 0;
  margin-bottom: 70px;
}

.title_box h2{
  font-size: 30px;
  line-height: 1.3;
  color: #FFF;
}

.title_box h2 span{
  font-size: 16px;
  line-height: 1;
  display: inline-block;
  padding: 4px 15px;
  margin-left: 15px;
  transform: translateY(-4px);
  border: 1px solid #FFF;
}

.title_box a{
  width: 195px;
  height: 55px;
  font-size: 16px;
  line-height: 55px;
  color: #144c97;
  text-align: center;
  background: #FFF;
  padding-left: 1em;
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  border-radius: 5px;
}

.title_box a::before{
  content: "";
  width: 17px;
  height: 17px;
  background: url("/jp/-/media/ivd/diagnostics/case-studies/icon_dl.png") no-repeat;
  background-size: 100% auto;
  position: absolute;
  top: 50%;
  left: 30px;
  transform: translateY(-50%);
}

.file_data {
  display: flex;
  gap: 40px 70px;
  margin-bottom: 100px;
}

.file_data > div:first-child {
  flex: 0 0 52%;
}

.file_data > div:last-child {
  flex: 1;
}

.file_data img {
  display: block;
  width: 100%;
  height: auto;
}

.file_data .area{
  font-size: 16px;
  line-height: 1;
  padding-left: 1.3em;
  margin-bottom: 25px;
  position: relative;
}

.file_data .area::before{
  content: "";
  width: 18px;
  height: 18px;
  background: url("/jp/-/media/ivd/diagnostics/case-studies/icon_map.png") no-repeat;
  background-size: 100% auto;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

.file_data dl {
  margin-bottom: 35px;
}

.file_data dl > div{
  display: flex;
  justify-content: flex-start;
  gap: 0 1em;
}

.file_data dt{
  font-family: 'UD Shin Go DemiBold', sans-serif;
}

.file_data dt,
.file_data dd{
  font-size: 16px;
  line-height: 1.5;
}

.file_data dl > div + div{
  margin-top: 5px;
}

.file_data h3{
  font-family: 'UD Shin Go DemiBold', sans-serif;
  font-size: 16px;
  line-height: 1.3;
  margin-bottom: 3px;
}

.file_data li{
  font-size: 16px;
  line-height: 1.4;
  padding-left: 1em;
}

.file_data li::before{
  content: "・";
  width: 1em;
  margin-left: -1em;
  display: inline-block;
}

.file_data li + li{
  margin-top: 4px;
}

.file_title{
  padding: 35px 0;
  margin-bottom: 65px;
  border-top: 1px solid #384d61;
  border-bottom: 1px solid #384d61;
}

.file_title h2{
  max-width: 1000px;
  font-size: 34px;
  line-height: 1.4;
  color: #144c97;
  margin: 0 auto;
}

.file_inner{
  height: 180px;
  max-width: 1000px;
  margin: 0 auto;
  overflow: hidden;
  position: relative;
}

.file_inner::after{
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background-image: linear-gradient(0deg, rgba(255, 255, 255, 1) 85%, rgba(255, 255, 255, 0));
}

.file_inner.open{
  height: auto;
}

.file_inner.open::after{
  display: none;
}

.read_more{
  width: 385px;
  height: 70px;
  font-size: 18px;
  line-height: 70px;
  text-align: center;
  border: 1px solid #384d61;
  background: #FFF;
  border-radius: 5px;
  position: absolute;
  bottom: 50px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1;
  cursor: pointer;
}

.read_more::before{
  content: "";
  width: 20px;
  height: 20px;
  background: url("/jp/-/media/ivd/top/re/icon_arrow_g.png") no-repeat;
  background-size: 100% auto;
  position: absolute;
  top: 50%;
  left: 25px;
  transform: translateY(-50%) rotate(90deg);
}

.file_inner.open .read_more{
  display: none;
}


.file_inner img{
  width: 100%;
  height: auto;
  border-radius: 5px;
}

.file_inner h3{
  font-size: 22px;
  line-height: 1.3;
  color: #384d61;
  padding-bottom: 8px;
  margin-bottom: 30px;
  border-bottom: 3px solid #384d61;
}

.file_inner div + h3{
  margin-top: 55px;
}

.file_inner p{
  font-size: 16px;
  line-height: 1.6;
}

.file_inner p span{
  font-family: 'UD Shin Go DemiBold', sans-serif;
  color: #144c97;
  display: block;
}

.file_inner p + p{
  margin-top: 30px;
}

.file_inner .c2{
  display: flex;
  justify-content: space-between;
}

.file_inner .c2 > div{
  width: 48%;
}

.file_inner > div + div{
  margin-top: 30px;
}

.file_inner .pic_full{
  width: 75%;
  margin: 60px auto;
}

.file_inner .pic_full figcaption{
  font-size: 15px;
  line-height: 1.5;
  margin-top: 10px;
}

.related{
  padding: 75px 0 70px;
  margin-top: 65px;
  border-top: 1px solid #384d61;
}

.related h2{
  font-size: 30px;
  line-height: 1.3;
  text-align: center;
  margin-bottom: 40px;
}

.related ul{
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 40px 25px;
}

.related ul li{
  width: 300px;
}

.related ul li a{
  display: block;
  text-align: left;
}

.related ul li a > img{
  border-radius: 5px;
}

.related ul h3{
  font-size: 18px;
  line-height: 1.3;
  margin-top: 15px;
  color: #144c97;
}

.related ul h3 span{
  font-size: 15px;
  display: block;
}

.related_conact{
  max-width: 875px;
  text-align: center;
  margin: 55px auto 0;
  padding: 30px 0;
  border-radius: 5px;
  background: #ecf1f3;
}

.related_conact h3{
  font-size: 20px;
  line-height: 1.3;
  margin-bottom: 15px;
}

.related_conact a{
  width: 400px;
  height: 100px;
  font-size: 20px;
  line-height: 1;
  color: #FFF;
  background: #1875cc;
  border-radius: 5px;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: .3s;
}

.related_conact a span{
  padding-left: 50px;
  position: relative;
}

.related_conact a span::before{
  content: "";
  width: 30px;
  height: 25px;
  background: url("/jp/-/media/ivd/top/re/icon_mail_w.png") no-repeat center;
  background-size: 100% auto !important;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

@media screen and (min-width: 801px) {
  .related_conact a:hover{
    color: #1875cc;
    background: #FFF;
    opacity: 1 !important;
  }
  
  .related_conact a:hover span::before{
    background: url("/jp/-/media/ivd/top/re/icon_mail.png") no-repeat center;
  }

}

.other_files{
  padding: 75px 0;
  background: #ecf1f3;
}

.other_files h2{
  font-size: 24px;
  line-height: 1.3;
  margin-bottom: 20px;
  padding-left: 18px;
  position: relative;
}

.other_files h2::before{
  content: "";
  width: 1px;
  height: 100%;
  background: #384d61;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

.other_files ul{
  display: flex;
  justify-content: flex-start;
  flex-flow: wrap;
  gap: 40px 25px;
}

.other_files ul li{
  width: 300px;
}

.other_files ul li a{
  display: block;
}

.other_files ul li img{
  border-radius: 5px;
  border: 1px solid #a3aeb8;
  margin-bottom: 15px;
  display: block;
}

.other_files ul li > img{
  border: none;
  filter: brightness(0) saturate(100%)
          invert(88%) sepia(10%) saturate(90%)
          hue-rotate(150deg);
}

.other_files ul li .area{
  font-size: 14px;
  line-height: 1;
  color: #FFF;
  padding: 3px 10px;
  margin-bottom: 5px !important;
  border-radius: 3px;
  background: #3362a2;
  display: inline-block;
}

.other_files ul li h3{
  font-size: 18px;
  line-height: 1.4;
}

.other_files ul li h3 span{
  font-size: 15px;
  display: block;
}

.case_list_bk{
  width: 315px;
  height: 55px;
  font-size: 16px;
  line-height: 55px;
  text-align: center;
  color: #384d61;
  background: #FFF;
  border-radius: 5px;
  border: 1px solid #384d61;
  display: block;
  margin: 40px auto 0;
  position: relative;
}

.case_list_bk::before{
  content: "";
  width: 20px;
  height: 20px;
  background: url("/jp/-/media/ivd/top/re/icon_arrow_g.png") no-repeat;
  background-size: 100% auto;
  position: absolute;
  top: 50%;
  left: 15px;
  transform: translateY(-50%) scale(-1,1);
}

.sp{
  display: none;
}

@media screen and (max-width: 800px) {
  
  .sp{
    display: block;
  }

  
  .case_name{
    font-size: 5vw;
    line-height: 1.3;
    margin: 6vw auto;
    padding: 0 5vw;
  }

  .case_name span{
    font-size: 5vw;
    line-height: 1.3;
    color: #1875cc;
    padding-left: 0;
    display: block;
  }

  .case_inner {
    padding: 0 5vw;
  }

  .title_box{
    background: #2c78bf;
    padding: 5vw 0 3vw;
    margin-bottom: 5vw;
  }

  .title_box h2{
    font-size: 7vw;
    line-height: 1.3;
    color: #FFF;
  }

  .title_box h2 span{
    font-size: 3.3vw;
    line-height: 1;
    padding: 1vw 2vw;
    margin-left: 0;
    transform: translateY(-2vw);
    border-radius: 1vw;
  }

  .title_box a{
    width: auto;
    height: auto;
    font-size: 3.3vw;
    line-height: 1.2;
    color: #144c97;
    text-align: center;
    background: #FFF;
    padding: 2vw 2vw 6vw;
    position: absolute;
    top: -17vw;
    right: 5vw;
    transform: translateY(-50%);
    border-radius: 1vw;
    border: 1px solid #384d61;
  }

  .title_box a::before{
    width: 3.5vw;
    height: 3.5vw;
    top: auto;
    bottom: 2vw;
    left: 50%;
    transform: translateX(-50%);
  }

  .file_data {
    display: flex;
    gap: 3vw 0;
    flex-wrap: wrap;
    margin-bottom: 10vw;
  }

  .file_data > div:first-child {
    flex: 0 0 100%;
  }

  .file_data > div:last-child {
    flex: 1;
  }

  .file_data img {
    display: block;
    width: 100%;
    height: auto;
  }

  .file_data .area{
    font-size: 3.6vw;
    line-height: 1;
    padding-left: 1.3em;
    margin-bottom: 3vw;
  }

  .file_data .area::before{
    width: 4vw;
    height: 4vw;
  }

  .file_data dl {
    margin-bottom: 5vw;
  }

  .file_data dt,
  .file_data dd{
    font-size: 3.6vw;
    line-height: 1.5;
  }

  .file_data dl > div + div{
    margin-top: 1vw;
  }

  .file_data h3{
    font-size: 3.6vw;
    line-height: 1.3;
    margin-bottom: 1vw;
  }

  .file_data li{
    font-size: 3.6vw;
    line-height: 1.4;
  }

  .file_data li + li{
    margin-top: 1vw;
  }

  .file_title{
    padding: 5vw 5vw;
    margin-bottom: 15vw;
  }

  .file_title h2{
    font-size: 6vw;
    line-height: 1.4;
  }

  .file_inner{
    height: 40vw;
    padding: 0 5vw
  }
  
  .read_more{
    width: 80%;
    height: 15vw;
    font-size: 4vw;
    line-height: 15vw;
    border-radius: 1vw;
  }

  .read_more::before{
    width: 5vw;
    height: 5vw;
    left: 5vw;
  }
  
  .file_inner img{
    border-radius: 1vw;
  }

  .file_inner h3{
    font-size: 4.3vw;
    line-height: 1.3;
    padding-bottom: 2vw;
    margin-bottom: 5vw;
  }

  .file_inner div + h3{
    margin-top: 8vw;
  }

  .file_inner p{
    font-size: 3.6vw;
    line-height: 1.6;
  }

  .file_inner p + p{
    margin-top: 5vw;
  }

  .file_inner .c2{
    display: block;
  }

  .file_inner .c2 > div{
    width: 100%;
  }
  
   .file_inner .c2 > div + div{
    margin-top: 5vw;
  }

  .file_inner > div + div{
    margin-top: 5vw;
  }

  .file_inner .pic_full{
    width: 85%;
    margin: 8vw auto;
  }

  .file_inner .pic_full figcaption{
    font-size: 3.3vw;
    line-height: 1.5;
    margin-top: 1.5vw;
  }

  .related{
    padding: 15vw 0;
    margin-top: 10vw;
  }

  .related h2{
    font-size: 6vw;
    line-height: 1.3;
    text-align: center;
    margin-bottom: 40px;
  }

  .related ul{
    display: flex;
    justify-content: flex-start;
    flex-flow: wrap;
    gap: 6vw 4%;
  }

  .related ul li{
    width: 48%;
  }
  
  .related ul li a > img{
    border-radius: 1vw;
  }

  .related ul h3{
    font-size: 3.8vw;
    line-height: 1.3;
    margin-top: 2vw;
  }

  .related ul h3 span{
    font-size: 3.2vw;
  }

  .related_conact{
    margin: 10vw auto 0;
    padding: 5vw 0;
    border-radius: 1vw;
  }

  .related_conact h3{
    font-size: 4vw;
    line-height: 1.3;
    margin-bottom: 3vw;
  }

  .related_conact a{
    width: 90%;
    height: 15vw;
    font-size: 4.3vw;
    border-radius: 1vw;
  }

  .related_conact a span{
    padding-left: 8vw;
    position: relative;
  }

  .related_conact a span::before{
    width: 6vw;
    height: 6vw;
  }

  .other_files{
    padding: 15vw 0;
  }

  .other_files h2{
    font-size: 6vw;
    line-height: 1.3;
    margin-bottom: 5vw;
    padding-left: 4vw;
    position: relative;
  }
  
  .other_files ul{
    display: flex;
    justify-content: flex-start;
    flex-flow: wrap;
    gap: 6vw 4%;
  }

  .other_files ul li{
    width: 48%;
  }

  .other_files ul li img{
    border-radius: 1vw;
    margin-bottom: 2vw;
  }

  .other_files ul li .area{
    font-size: 3.2vw;
    line-height: 1;
    color: #FFF;
    padding: 1vw 2vw;
    margin-bottom: 1vw !important;
    border-radius: 1vw;
  }

  .other_files ul li h3{
    font-size: 3.8vw;
    line-height: 1.4;
  }

  .other_files ul li h3 span{
    font-size: 83%;
    display: block;
  }
  
  .case_list_bk{
    width: 80%;
    height: 15vw;
    font-size: 3.8vw;
    line-height: 15vw;
    border-radius: 1vw;
    margin: 10vw auto 0;
    position: relative;
  }

  .case_list_bk::before{
    width: 5vw;
    height: 5vw;
    left: 5vw;
  }
  
}