@font-face {
  font-weight: 100;
  font-family: "LINE_Seed_JP";
  src: url("../../font/LINE_Seed_JP/LINESeedJP-Thin.woff") format("woff");
}
@font-face {
  font-weight: 400;
  font-family: "LINE_Seed_JP";
  src: url("../../font/LINE_Seed_JP/LINESeedJP-Regular.woff") format("woff");
}
@font-face {
  font-weight: 600;
  font-family: "LINE_Seed_JP";
  src: url("../../font/LINE_Seed_JP/LINESeedJP-Bold.woff") format("woff");
}
@font-face {
  font-weight: 900;
  font-family: "LINE_Seed_JP";
  src: url("../../font/LINE_Seed_JP/LINESeedJP-ExtraBold.woff") format("woff");
}
section:not(.u-mv) {
  padding: 9rem 0 0;
}

.u-mv {
  margin-top: 14rem;
  padding: 0 6rem;
}
.u-mv .l-container {
  background-color: var(--c-light-blue2);
  border-radius: 3.6rem;
  height: 50rem;
  max-width: 180rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: relative;
}

.u-mv__img {
  position: absolute;
  bottom: 0;
  left: 50%;
  -webkit-transform: translate(-50%, 0%);
          transform: translate(-50%, 0%);
  max-width: 1278px;
  width: 85%;
}

.u-mv__title {
  font-size: var(--c-fs-h1);
  line-height: var(--c-lh-heading);
  font-weight: 600;
}

.u-intro p {
  line-height: var(--c-lh);
}

.u-intro__flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 3rem;
  margin-top: 5rem;
}

.u-intro__item {
  width: calc(50% - 1.5rem);
  border: 2px solid var(--c-light-gray);
  border-radius: 2rem;
  padding: 5rem 4rem 4rem;
}
.u-intro__item .c-tagtitle {
  margin-bottom: 2rem;
}
.u-intro__item .c-tagtitle span {
  min-width: inherit;
  max-width: 30rem;
  width: 100%;
}

.u-lead {
  line-height: var(--c-lh);
  margin-bottom: 3rem;
}

.u-difference .l-container {
  position: relative;
}
.u-difference .l-container::before {
  content: "";
  display: block;
  width: 12.9rem;
  height: 14rem;
  background: url("../../images/medical/ill01.png") no-repeat center/contain;
  position: absolute;
  right: 23rem;
  top: -5.2rem;
}
.u-difference .c-tagtitle {
  margin-bottom: 4rem;
}

.u-icnflex {
  --gap: 2rem;
  --col: 4;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: var(--gap);
}

.u-icnflex__item {
  width: calc((100% - var(--gap) * (var(--col) - 1)) / var(--col));
  background-color: var(--c-light2);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  border-radius: 2rem;
  cursor: pointer;
}
.u-icnflex__item p {
  font-size: 2rem;
  font-weight: 600;
  margin-bottom: 2.5rem;
  width: 100%;
  text-align: center;
  position: relative;
}
.u-icnflex__item p .sm {
  display: block;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 1.285714;
}
.u-icnflex__item p::after {
  content: "";
  display: block;
  width: 1.1rem;
  height: 2.1rem;
  background-color: var(--c-blue);
  mask: url(../../images/common/icn-arrow.svg) center/cover no-repeat;
  -webkit-mask: url(../../images/common/icn-arrow.svg) center/cover no-repeat;
  position: absolute;
  right: 1.5rem;
  top: 50%;
  -webkit-transform: translate(0%, -50%);
          transform: translate(0%, -50%);
}

.-icnnone.u-icnflex__item {
  cursor: auto;
}
.-icnnone.u-icnflex__item p::after {
  content: none;
}

.u-icnflex__img {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  height: 12rem;
}

.c-cv {
  margin-top: 12rem;
}

.u-inspection .c-tagtitle {
  margin-bottom: 3rem;
}

@media screen and (max-width: 1380px) {
  .u-mv .l-container {
    height: 36.5vw;
  }
}
@media screen and (max-width: 1200px) {
  .u-difference .l-container::before {
    right: initial;
    left: calc(100% - 22rem);
  }
  .u-icnflex__item p {
    font-size: 1.5vw;
  }
  .u-icnflex__item p::after {
    width: 0.9vw;
    height: 1.7vw;
    right: 1.1vw;
  }
}
@media screen and (max-width: 750px) {
  section:not(.u-mv) {
    padding: 16rem 0 0;
  }
  .u-mv {
    margin-top: 11.9rem;
    padding: 0;
  }
  .u-mv .l-container {
    display: block;
    border-radius: 0;
    height: 32rem;
  }
  .u-mv__img {
    width: 100%;
    padding: 0 4rem;
  }
  .u-mv__title {
    font-size: 4.8rem;
    text-align: center;
    padding-top: 6rem;
  }
  .u-intro {
    padding-top: 10rem !important;
  }
  .u-intro .c-title {
    font-size: 4rem;
  }
  .u-lead {
    font-size: var(--c-fs-main-big);
    line-height: 1.625 !important;
    margin-bottom: 6rem;
  }
  .u-lead.-spsm {
    font-size: var(--c-fs-main);
    line-height: 2.0714 !important;
  }
  .u-intro__flex {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 6rem;
  }
  .u-intro__item {
    width: 100%;
    padding: 6rem 3rem;
    border-radius: 3.4rem;
  }
  .u-intro__item .c-tagtitle {
    margin-bottom: 4rem;
  }
  .u-intro__item .c-tagtitle span {
    max-width: 40rem;
    min-height: 6.8rem;
  }
  .u-sp__img {
    text-align: center;
  }
  .u-sp__img img {
    width: 21rem;
  }
  .u-difference .l-container::before {
    content: none;
  }
  .c-price__table th {
    color: var(--c-black);
    vertical-align: middle;
  }
  .c-price__table th:first-child {
    width: 17.6rem;
  }
  .c-price__table td {
    color: var(--c-black);
    vertical-align: middle;
  }
  .c-price__table td:first-child {
    width: 17.6rem;
  }
  .u-icnflex {
    --col: 2;
    --gap: 4rem;
  }
  .u-icnflex__item {
    border-radius: 2.6rem;
  }
  .u-icnflex__item p {
    font-size: 2.8rem;
  }
  .u-icnflex__item p::after {
    width: 1.6rem;
    height: 2.8rem;
    right: 2rem;
  }
  .u-icnflex__item p .sm {
    font-size: 2.2rem;
  }
  .u-icnflex__img {
    height: 16rem;
  }
  .u-icnflex__img img {
    max-width: 100%;
    height: auto;
    -webkit-transform: scale(calc(0.1733333333vw / 1px));
            transform: scale(calc(0.1733333333vw / 1px));
  }
}