@charset "UTF-8";
/* Scss Document */
/* Scss Document */
/*---------------
   navigation
---------------*/
.kv__img img {
  -o-object-position: center 86%;
     object-position: center 86%;
}

.service-nav__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
@media only screen and (max-width: 640px) {
  .service-nav__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: calc(10 / 440 * 100vw);
    width: 95%;
    margin: 0 auto;
  }
}

.service-nav__item {
  border-radius: 12px;
  background: #f0f8fd;
  width: 15.4rem;
  padding: 1.5rem 0 3.2rem;
  position: relative;
}
@media only screen and (max-width: 1200px) {
  .service-nav__item {
    width: calc(154 / 1200 * 100vw);
    padding: calc(15 / 1200 * 100vw) 0 calc(32 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .service-nav__item {
    width: 100%;
    padding: calc(10 / 440 * 100vw) 0 calc(30 / 440 * 100vw);
  }
}
.service-nav__item::after {
  content: "";
  position: absolute;
  width: 1rem;
  height: 1rem;
  border-right: 2px solid #4468AF;
  border-bottom: 2px solid #4468AF;
  left: 50%;
  bottom: 1.2rem;
  -webkit-transform: rotate(45deg) translateX(-50%);
          transform: rotate(45deg) translateX(-50%);
}
@media only screen and (max-width: 1200px) {
  .service-nav__item::after {
    width: calc(10 / 1200 * 100vw);
    height: calc(10 / 1200 * 100vw);
    bottom: calc(12 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .service-nav__item::after {
    bottom: calc(12 / 440 * 100vw);
    width: calc(8 / 440 * 100vw);
    height: calc(8 / 440 * 100vw);
  }
}

.service-nav__img {
  width: 10rem;
  height: 10rem;
  margin: 0 auto;
}
@media only screen and (max-width: 1200px) {
  .service-nav__img {
    width: calc(100 / 1200 * 100vw);
    height: calc(100 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .service-nav__img {
    width: calc(50 / 440 * 100vw);
    height: calc(50 / 440 * 100vw);
  }
}
.service-nav__img img {
  width: 100%;
}

.service-nav__txt {
  color: #4468AF;
  font-size: 1.8rem;
  line-height: normal;
  text-align: center;
  margin-top: 1.1rem;
}
@media only screen and (max-width: 1200px) {
  .service-nav__txt {
    font-size: calc(18 / 1200 * 100vw);
    margin-top: calc(11 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .service-nav__txt {
    font-size: calc(15 / 440 * 100vw);
    margin-top: calc(8 / 440 * 100vw);
  }
}

/*---------------
診療案内
---------------*/
.service .content {
  padding-top: 10rem;
}
@media only screen and (max-width: 640px) {
  .service .content {
    padding-top: calc(50 / 440 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .service .c-ttl {
    text-align: center;
  }
}

.service__body._gray {
  background: #fbfbfb;
}

.service__body-inner {
  padding: 10rem 3rem;
}
@media only screen and (max-width: 640px) {
  .service__body-inner {
    padding: calc(50 / 440 * 100vw) calc(20 / 440 * 100vw);
  }
}

#general .service__body-inner {
  padding: 7rem 3rem;
}
@media only screen and (max-width: 640px) {
  #general .service__body-inner {
    padding: calc(20 / 440 * 100vw) calc(20 / 440 * 100vw) calc(50 / 440 * 100vw);
  }
}

.c-media__service {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
}

@media only screen and (max-width: 640px) {
  .c-media__ttl-service {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
    font-size: calc(30 / 440 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .c-media__ttl-service img {
    width: calc(110 / 440 * 100vw);
    margin: calc(20 / 440 * 100vw) auto;
  }
}

.c-reason {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-top: 11.3rem;
}
@media only screen and (max-width: 1200px) {
  .c-reason {
    margin-top: calc(70 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .c-reason {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: calc(15 / 440 * 100vw);
  }
}

.c-reason__item {
  width: 35.3rem;
  border-radius: 12px;
  background: #f0f8fd;
  padding: 2rem 1.7rem 2.4rem;
}
@media only screen and (max-width: 1200px) {
  .c-reason__item {
    width: calc(353 / 1200 * 100vw);
    padding: calc(20 / 1200 * 100vw) calc(17 / 1200 * 100vw) calc(24 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .c-reason__item {
    width: 100%;
    padding: calc(15 / 440 * 100vw);
  }
}

.c-reason__item-ttl {
  color: #4468AF;
  font-size: 2.4rem;
  font-weight: 500;
  line-height: normal;
  letter-spacing: 2.4px;
  text-align: center;
}
@media only screen and (max-width: 1200px) {
  .c-reason__item-ttl {
    font-size: calc(24 / 1200 * 100vw);
    letter-spacing: calc(2.4 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .c-reason__item-ttl {
    font-size: calc(20 / 440 * 100vw);
    letter-spacing: calc(2 / 440 * 100vw);
  }
}

.c-reason__item-txt {
  color: #000;
  line-height: normal;
  letter-spacing: 1.6px;
  margin-top: 1rem;
}
@media only screen and (max-width: 1200px) {
  .c-reason__item-txt {
    font-size: calc(16 / 1200 * 100vw);
    letter-spacing: calc(1.6 / 1200 * 100vw);
    margin-top: calc(10 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .c-reason__item-txt {
    font-size: calc(15 / 440 * 100vw);
    letter-spacing: calc(1.5 / 440 * 100vw);
    margin-top: calc(10 / 440 * 100vw);
  }
}

.c-category {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 1rem;
  margin-top: 2.5rem;
}
@media only screen and (max-width: 640px) {
  .c-category {
    gap: calc(5 / 440 * 100vw);
  }
}

.c-category__item {
  border-radius: 100vw;
  background: #E86D88;
  color: #fff;
  line-height: normal;
  letter-spacing: 1.6px;
  padding: 1rem 2rem;
}
@media only screen and (max-width: 1200px) {
  .c-category__item {
    font-size: calc(16 / 1200 * 100vw);
    letter-spacing: calc(1.6 / 1200 * 100vw);
    padding: calc(10 / 1200 * 100vw) calc(20 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .c-category__item {
    font-size: calc(14 / 440 * 100vw);
    letter-spacing: normal;
    padding: calc(8 / 440 * 100vw) calc(13 / 440 * 100vw);
  }
}

.flow {
  margin-top: 3rem;
}

.flow__ttl {
  color: #4468AF;
  font-size: 3rem;
  font-weight: 500;
  line-height: normal;
  letter-spacing: 3px;
}
@media only screen and (max-width: 1200px) {
  .flow__ttl {
    font-size: calc(30 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .flow__ttl {
    font-size: calc(24 / 440 * 100vw);
    text-align: center;
  }
}

.flow__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-top: 1rem;
  background: #f0f8fd;
  padding: 0.8rem 4rem;
}
@media only screen and (max-width: 1200px) {
  .flow__list {
    padding: calc(8 / 1200 * 100vw) calc(40 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .flow__list {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: calc(40 / 440 * 100vw);
    padding: calc(10 / 440 * 100vw);
    width: 80%;
    margin: 1rem auto 0;
  }
}

.flow__item {
  text-align: center;
  position: relative;
}
.flow__item::after {
  content: "";
  position: absolute;
  background: url(../img/service/icon-arrpw01.png) no-repeat center center;
  background-size: contain;
  width: 4rem;
  height: 2.8rem;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  right: -10.6rem;
}
@media only screen and (max-width: 1200px) {
  .flow__item::after {
    width: calc(460 / 1200 * 100vw);
    height: calc(28 / 1200 * 100vw);
    right: calc(-106 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .flow__item::after {
    width: calc(30 / 440 * 100vw);
    height: calc(21 / 440 * 100vw);
    right: 50%;
    -webkit-transform: rotate(90deg) translateY(-50%);
            transform: rotate(90deg) translateY(-50%);
    bottom: calc(-34 / 440 * 100vw);
    top: auto;
  }
}
.flow__item:last-child::after {
  display: none;
}
.flow__item.flow__item-child::after {
  right: -7.3rem;
}
@media only screen and (max-width: 1200px) {
  .flow__item.flow__item-child::after {
    right: calc(-63 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .flow__item.flow__item-child::after {
    width: calc(30 / 440 * 100vw);
    height: calc(21 / 440 * 100vw);
    right: 50%;
    -webkit-transform: rotate(90deg) translateY(-50%);
            transform: rotate(90deg) translateY(-50%);
    bottom: calc(-34 / 440 * 100vw);
    top: auto;
  }
}

.flow__num {
  color: #4468AF;
  font-size: 2.1rem;
  line-height: normal;
  letter-spacing: 1.05px;
}
@media only screen and (max-width: 1200px) {
  .flow__num {
    font-size: calc(21 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .flow__num {
    font-size: calc(20 / 440 * 100vw);
  }
}

.flow__txt {
  color: #000;
  font-size: 2.1rem;
  line-height: normal;
  letter-spacing: 1.05px;
}
@media only screen and (max-width: 1200px) {
  .flow__txt {
    font-size: calc(21 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .flow__txt {
    font-size: calc(18 / 440 * 100vw);
  }
}

.flow__time {
  color: #000;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: normal;
  letter-spacing: 0.7px;
}
@media only screen and (max-width: 1200px) {
  .flow__time {
    font-size: calc(14 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .flow__time {
    font-size: calc(14 / 440 * 100vw);
  }
}

/*---------------
設備紹介
---------------*/
.equipment .content {
  padding: 19rem 0 20rem;
  background: url(../img/index/bg08.png) no-repeat center center;
  background-size: cover;
}
@media only screen and (max-width: 640px) {
  .equipment .content {
    background: url(../img/index/bg09.png) repeat center center;
    background-size: cover;
    padding: calc(60 / 440 * 100vw) 0 calc(60 / 440 * 100vw);
  }
}

.equipment__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8rem 6rem;
  margin-top: 7rem;
}
@media only screen and (max-width: 1200px) {
  .equipment__list {
    gap: calc(50 / 1200 * 100vw) calc(60 / 1200 * 100vw);
    margin-top: calc(70 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .equipment__list {
    grid-template-columns: repeat(2, 1fr);
  }
}

.equipment__ttl {
  color: #000;
  font-size: 2.2rem;
  font-weight: 500;
  line-height: normal;
  text-align: center;
  margin-top: 1rem;
}
@media only screen and (max-width: 640px) {
  .equipment__ttl {
    font-size: calc(16 / 440 * 100vw);
  }
}