@charset "UTF-8";
.js-scroll-wrap {
  position: relative
}
.company__list {
  display: grid;
  grid-template-columns: repeat(auto-fill,minmax(300px,1fr));
  gap: 24px
}
.company__card {
  display: grid;
  grid-template-columns: subgrid;
  gap: 16px
}
.company__card-link {
  display: grid;
  grid-template-columns: inherit;
  gap: inherit;
  align-content: start;
  height: 100%;
  border: 1px solid #cecece;
  border-radius: 8px;
  padding: 20px
}
.company__card-img {
  border-radius: 8px;
  overflow: hidden
}
.company__card-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  overflow: hidden
}
.company__card-body {
  display: grid;
  gap: 8px
}
.company__card-ttl {
  font-weight: 600;
  font-size: 2rem;
  text-align: center
}
.company__card-txt {
  font-size: 1.4rem
}
.company__slider {
  position: relative
}
.company__slider-main {
  padding-bottom: 24px;
  overflow: hidden
}
.company__slider-list {
  align-items: stretch
}
.company__slider-card {
  height: auto
}
.company__slider-link {
  display: grid;
  gap: 16px;
  height: 100%;
  background: #fff;
  border: 1px solid #cecece;
  border-radius: 8px;
  padding: 20px
}
.company__slider-img {
  aspect-ratio: 278/155;
  border-radius: 8px;
  overflow: hidden
}
.company__slider-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  overflow: hidden
}
.company__slider-body {
  display: grid;
  gap: 8px
}
.company__slider-ttl {
  font-weight: 600;
  font-size: 1.9rem;
  line-height: 1.5;
  text-align: center
}
.company__slider-txt {
  font-size: 1.3rem
}
.company__slider-bar {
  width: 100%;
  height: 8px!important;
  background-color: #f3f3f3;
  left: 0;
  bottom: 0
}
.company__slider-bar .swiper-scrollbar-drag {
  background-color: #b9b9b9
}
.company__slider-next,
.company__slider-prev {
  width: 44px;
  height: 44px;
  background-color: #00818a;
  border-radius: 50%;
  margin: 0;
  top: calc(50% - 12px);
  translate: 0 -50%;
  transform: none
}
.company__slider-next::after,
.company__slider-prev::after {
  content: none
}
.company__slider-next::before,
.company__slider-prev::before {
  content: "";
  width: 14px;
  aspect-ratio: 1;
  background-color: #fff;
  -webkit-mask: url(../img/common/icon_arrow_01.svg) no-repeat center/contain;
  mask: url(../img/common/icon_arrow_01.svg) no-repeat center/contain
}
.company__slider-next.swiper-button-disabled,
.company__slider-prev.swiper-button-disabled {
  display: none
}
.company__slider-next {
  right: -22px
}
.company__slider-prev {
  left: -22px
}
.company__slider-prev::before {
  rotate: 180deg
}
.outline__list {
  letter-spacing: .04em;
  line-height: 1.8;
  border-bottom: 1px solid #ddd
}
.outline__row {
  display: grid;
  grid-template-columns: 87px 1fr;
  gap: min(32px,8%);
  border-top: 1px solid #ddd;
  padding-block: 16px
}
.outline__label {
  display: grid;
  align-content: start;
  gap: 4px
}
.outline__label-ja {
  font-weight: 700;
  font-size: 1.4rem;
  color: #00818a
}
.outline__label-en {
  font-size: 1.1rem;
  color: #8c8c8c
}
.outline__data {
  display: grid;
  align-content: start;
  gap: 4px
}
.outline__data-ja {
  font-size: 1.4rem
}
.outline__data-en {
  font-size: 1.1rem;
  color: #8c8c8c
}
.message__inr {
  display: grid;
  gap: 32px
}
.message__img {
  display: block;
  aspect-ratio: 358/320;
  border-radius: 8px;
  overflow: hidden
}
.message__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  overflow: hidden
}
.message__body {
  display: grid;
  align-content: start;
  gap: 32px
}
.message__group {
  display: grid;
  gap: 24px
}
.message__texts {
  display: grid;
  gap: 1.6em
}
.message__txt {
  font-size: 1.4rem
}
.message__box {
  width: -moz-fit-content;
  width: fit-content;
  background-color: #f9f9f9;
  border-radius: 8px;
  padding: 16px
}
.message__list {
  display: grid;
  gap: 10px
}
.message__item {
  display: flex;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid #333;
  padding-bottom: 6px
}
.message__item-txt {
  font-weight: 500;
  font-size: 1.5rem;
  line-height: 1.3
}
.message__num {
  flex-shrink: 0;
  font-family: Figtree,sans-serif;
  font-weight: 700;
  font-size: 1.8rem;
  line-height: 1;
  color: #00818a
}
.message__sign {
  display: grid;
  gap: 8px
}
.message__date {
  font-size: 1.3rem
}
.message__name {
  font-weight: 500;
  font-size: 1.8rem;
  line-height: 1
}
.philosophy__box {
  display: grid;
  gap: 38px;
  background-color: #f9f9f9;
  border-radius: 8px;
  padding: 16px 20px
}
.philosophy__group {
  display: grid;
  gap: 30px
}
.philosophy__list {
  display: grid;
  gap: 24px
}
.philosophy__item {
  display: grid;
  gap: 8px
}
.philosophy__item-ttl {
  display: grid;
  grid-template-columns: 8px 1fr;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  font-size: 1.7rem
}
.philosophy__item-ttl::before {
  content: "";
  width: 8px;
  aspect-ratio: 1;
  background-color: #00818a;
  border-radius: 50%
}
.philosophy__item-txt {
  font-size: 1.4rem;
  line-height: 1.4;
  color: #595959
}
.business__ttl {
  font-family: "M PLUS 1p",sans-serif;
  font-weight: 700;
  font-size: 2rem;
  border-left: 4px solid #00818a;
  padding-left: 16px
}
.business__list {
  display: grid;
  gap: 24px
}
.business__box {
  display: grid;
  align-content: start;
  gap: 16px;
  background-color: #ecf7f7;
  border-radius: 8px;
  padding: 20px
}
.business__box-ttl {
  font-weight: 600;
  font-size: 1.7rem;
  border-bottom: 1px solid #c2c2c2;
  padding-bottom: 8px
}
.business__box-body {
  display: grid;
  gap: 16px
}
.business__box-head {
  display: flex;
  align-items: center;
  gap: 12px
}
.business__box-address {
  flex: 1;
  font-weight: 500;
  font-size: 1.4rem
}
.business__box-map {
  display: grid;
  grid-template-columns: auto 16px;
  align-items: center;
  gap: 8px;
  font-weight: 500;
  font-size: 1.3rem;
  line-height: 1.5;
  white-space: nowrap;
  color: #fff;
  background-color: #00818a;
  border-radius: 4px;
  padding: 5px 8px
}
.business__box-icon {
  display: grid;
  place-content: center;
  aspect-ratio: 1/1;
  background-color: #fff;
  border-radius: 50%;
  padding-left: 2px
}
.business__box-icon::before {
  content: "";
  width: 7px;
  aspect-ratio: 7/11;
  background-color: #00818a;
  -webkit-mask: url(../img/common/icon_arrow_02.svg) no-repeat center/contain;
  mask: url(../img/common/icon_arrow_02.svg) no-repeat center/contain
}
.business__box-contact {
  display: grid;
  gap: 4px
}
.business__box-row {
  display: flex;
  align-items: center;
  gap: 8px
}
.business__box-label {
  display: grid;
  flex-shrink: 0;
  place-items: center;
  min-width: 70px;
  font-weight: 500;
  font-size: 1.3rem;
  line-height: 1.5;
  color: #00818a;
  border: 1px solid #00818a;
  border-radius: 4px;
  padding: 2px 4px
}
.business__box-value {
  font-weight: 500;
  font-size: 1.4rem
}
.business__box-note {
  display: inline-block;
  font-weight: 500;
  font-size: 1.2rem
}
.business__box-cities {
  display: grid;
  gap: 16px
}
.business__box-city {
  display: grid;
  gap: 4px;
  font-weight: 500;
  font-size: 1.4rem
}
.business__box-city-en {
  color: #8c8c8c
}
.business__note {
  font-size: 1.2rem;
  line-height: 1.4;
  text-align: right;
  color: #595959;
  margin-top: 10px
}
.network__block {
  display: grid;
  gap: 24px 40px
}
.network__block-img {
  text-align: center
}
.network__group-ttl {
  font-weight: 600;
  font-size: 1.7rem;
  margin-bottom: 16px
}
.network__group-list {
  display: grid;
  gap: 8px 64px;
  font-size: 1.4rem;
  line-height: 1.4;
  border: 1px solid #cecece;
  border-radius: 8px;
  padding: 24px
}
.network__group-item {
  width: -moz-fit-content;
  width: fit-content
}
.network__group-link {
  display: block
}
.network__group-link::after {
  content: "";
  display: inline-block;
  width: 10px;
  aspect-ratio: 1;
  background-color: #00818a;
  -webkit-mask: url(../img/common/icon_external_01.svg) no-repeat center/contain;
  mask: url(../img/common/icon_external_01.svg) no-repeat center/contain;
  vertical-align: middle;
  margin-left: 8px;
  translate: 0 -2px
}
.network__list {
  display: grid;
  gap: 12px;
  width: -moz-fit-content;
  width: fit-content
}
.network__link {
  display: block;
  font-weight: 600;
  font-size: 1.7rem
}
.network__link::after {
  content: "";
  display: inline-block;
  width: 12px;
  aspect-ratio: 1;
  background-color: #00818a;
  -webkit-mask: url(../img/common/icon_external_01.svg) no-repeat center/contain;
  mask: url(../img/common/icon_external_01.svg) no-repeat center/contain;
  vertical-align: middle;
  margin-left: 8px;
  translate: 0 -2px
}
.healthcare__heading-link {
  display: block;
  width: 100%;
}
.healthcare__heading-link img {
  width: 100%;
}
.healthcare__heading-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  overflow: hidden
}
.healthcare__box {
  background-color: #f9f9f9;
  padding: 20px
}
.healthcare__box-txt {
  font-weight: 500;
  font-size: 1.4rem
}
.healthcare__box-sign {
  display: grid;
  gap: 8px;
  font-weight: 600
}
.healthcare__box-ttl {
  font-size: 1.3rem
}
.approach {
  display: grid;
  gap: 24px
}
.approach__intro {
  display: grid;
  gap: 16px
}
.approach__cards {
  display: grid;
  gap: 24px
}
.approach__card {
  display: grid;
  gap: 24px;
  background-color: #fff;
  border-radius: 8px;
  padding: 20px
}
.approach__card-ttl {
  font-family: "M PLUS 1p",sans-serif;
  font-weight: 700;
  font-size: 2rem;
  background-color: #f3f3f3;
  border-left: 4px solid #00818a;
  padding: 8px 16px
}
.approach__card-body {
  display: grid;
  gap: 24px
}
.approach__list {
  display: grid;
  gap: 16px
}
.approach__item {
  display: grid;
  gap: 8px
}
.approach__item-ttl {
  display: grid;
  grid-template-columns: 8px 1fr;
  align-items: center;
  gap: 8px;
  font-weight: 500
}
.approach__item-ttl::before {
  content: "";
  width: 100%;
  aspect-ratio: 1;
  background-color: #00818a;
  border-radius: 50%
}
.approach__item-body {
  display: grid;
  gap: 4px;
  font-size: 1.4rem;
  line-height: 1.4;
  color: #595959
}
.approach__note {
  font-size: 1.2rem;
  line-height: 1.4;
  color: #595959
}
.approach__data {
  display: grid;
  gap: 8px;
  font-size: 1.4rem;
  line-height: 1.4;
  color: #595959
}
.approach__data-label {
  display: inline
}
.approach__data-label::after {
  content: "："
}
.approach__data-value {
  margin: 0
}
.approach__subbox {
  display: grid;
  gap: 16px;
  background-color: #f9f9f9;
  padding: 16px
}
.approach__subitem {
  display: grid;
  gap: 6px
}
.approach__subitem-ttl {
  width: -moz-fit-content;
  width: fit-content;
  font-weight: 500;
  color: #00818a;
  border-bottom: 2px solid #00818a;
  padding-bottom: 4px
}
.approach__media {
  display: grid;
  gap: 16px
}
.approach__media-img {
  width: var(--w-sp,100%)
}
.approach__flower {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px
}
.approach__flower-img {
  width: var(--w-sp)
}
@media screen and (min-width:768px) {
  .company__card {
    min-height: 342px
  }
  .company__slider-ttl {
    font-size: 2rem
  }
  .outline__row {
    grid-template-columns: 200px 1fr;
    gap: 16px;
    padding-block: 32px
  }
  .outline__label-ja {
    font-size: 1.5rem
  }
  .outline__label-en {
    font-size: 1.2rem
  }
  .outline__data-ja {
    font-size: 1.5rem
  }
  .outline__data-en {
    font-size: 1.2rem
  }
  .message__inr {
    grid-template-columns: min(372px,37.2%) 1fr;
    align-items: start;
    gap: 40px
  }
  .message__img {
    aspect-ratio: 372/465
  }
  .message__txt {
    font-size: 1.5rem
  }
  .message__box {
    padding: 24px
  }
  .philosophy__box {
    gap: 48px;
    padding: 40px
  }
  .philosophy__group {
    gap: 40px
  }
  .philosophy__item-ttl {
    font-size: 2rem
  }
  .business__ttl {
    font-size: 2.4rem
  }
  .business__list {
    grid-template-columns: repeat(2,1fr)
  }
  .business__list.is-col-3 {
    grid-template-columns: repeat(3,1fr)
  }
  .business__box-ttl {
    font-size: 2rem
  }
  .business__box-cities {
    grid-template-columns: auto auto
  }
  .network__block {
    grid-template-columns: 1fr 30%
  }
  .network__group-ttl {
    font-size: 2rem
  }
  .network__group-list {
    grid-template-columns: auto auto;
    justify-content: start
  }
  .network__list {
    gap: 16px
  }
  .network__link {
    font-size: 2rem
  }
  .network__link::after {
    width: 14px
  }
  .healthcare__heading-col {
    display: grid;
    grid-template-columns: 500px 200px;
    max-width: 880px;
    justify-content: space-between;
    margin-inline: auto;
    align-items: center;
  }
  .healthcare__box {
    padding: 40px
  }
  .healthcare__box-txt {
    font-size: 1.5rem
  }
  .healthcare__box-ttl {
    font-size: 1.4rem
  }
  .approach {
    gap: 30px
  }
  .approach__cards {
    gap: 48px
  }
  .approach__card {
    gap: 32px;
    padding: 40px
  }
  .approach__card-ttl {
    font-size: 2.4rem
  }
  .approach__card-body {
    gap: 40px
  }
  .approach__data {
    grid-template-columns: auto 1fr;
    align-items: start;
    gap: 4px 0
  }
  .approach__data-row {
    display: contents
  }
  .approach__data-label {
    display: block;
    padding-right: 4px
  }
  .approach__subbox {
    padding: 20px
  }
  .approach__subitem {
    gap: 8px
  }
  .approach__media {
    grid-template-columns: 1fr auto;
    align-items: start
  }
  .approach__media-img {
    width: var(--w-pc,auto)
  }
  .approach__flower {
    align-items: start;
    gap: 16px
  }
  .approach__flower-img {
    width: var(--w-pc)
  }
}
@media screen and (max-width:767px) {
  .js-scrollable {
    overflow-x: auto;
    padding-bottom: 8px
  }
  .js-scroll-wrap::after {
    content: "";
    display: block;
    width: 94px;
    aspect-ratio: 94/70;
    background: url(../img/common/icon_scrollable.png) no-repeat center/contain;
    position: absolute;
    top: 50%;
    left: 50%;
    translate: -50% -50%;
    transition: opacity .5s .5s ease-out;
    pointer-events: none;
    opacity: 0
  }
  .js-scroll-wrap.is-scroll-hint::after {
    opacity: 1
  }
  .js-scroll-wrap.is-scroll-hidden::after {
    display: none
  }
  .company__slider-next {
    right: 0
  }
  .company__slider-prev {
    left: 0
  }
  .message__item-txt {
    font-size: 1.4rem
  }
  .message__num {
    font-size: 1.7rem
  }
  .message__sign {
    justify-items: end;
    text-align: right
  }
  .message__name {
    font-size: 1.6rem
  }
  .business__list.is-col-3 {
    grid-template-columns: repeat(2,1fr);
    gap: 16px
  }
  .business__box.is-wide {
    grid-column: 1/-1
  }
  .business__box.is-wide .business__box-cities {
    grid-template-columns: 1fr 1fr
  }
  .business__note {
    letter-spacing: .02em
  }
  .network__img img {
    width: 1024px;
    max-width: revert
  }
  .healthcare__heading-img {
    width: 240px;
    margin-inline: auto
  }
  .healthcare__img img {
    width: 1024px;
    max-width: revert
  }
  .approach__media-img {
    justify-self: center;
    text-align: center
  }
}
@media (any-hover:hover) {
  .company__slider-next,
  .company__slider-prev {
    transition: opacity .3s ease-out
  }
  .company__slider-next:hover,
  .company__slider-prev:hover {
    opacity: .7
  }
}