@charset "UTF-8";
/* トップページ ------------------------------ */
/* 見出し（共通） */
.main-color {
  color: #23b8c5;
}
.borderline {
  border-bottom: 6px solid;
  border-image: linear-gradient(to right, #def5f7 0%, #ffffff 100%);
  border-image-slice: 1;
}
.borderline-blue {
  border-bottom: 6px solid;
  border-image: linear-gradient(to right, #23b8c5 0%, #ffffff 100%);
  border-image-slice: 1;
}
.section-title {
  margin-bottom: 1.5rem;
  text-align: center;
}

.section-btn {
  display: inline-block;
  color: #23b8c5;
  background: #ffffff;
  border: 1px solid #23b8c5;
  border-radius: 50px;
  padding: 0.8rem 2rem;
}
.section-btn:hover {
  background-color: #23b8c5;
  color: #fff;
}
.section-blue-btn {
  display: inline-block;
  color: #fff;
  background: #23b8c5;
  border: 1px solid #23b8c5;
  border-radius: 50px;
  padding: 0.8rem 2rem;
}
.section-blue-btn:hover {
  background-color: #fff;
  color: #23b8c5;
}

/* メインビジュアル */
.bg-slider {
  background-size: cover;
  background-position: center bottom;
  background-repeat: no-repeat;
  min-height: calc(100svh - 8svh);
  padding-top: 70px;
}
.bg-slider .item {
  position: absolute;
  right: 0;
  bottom: 8svh;
}
.bg-slider ul {
  display: flex;
  gap: 1rem;
  justify-content: flex-end;
}
.bg-slider img {
  width: 130px;
  height: auto;
}
.bg-slider li {
  padding-bottom: 10px;
}
@media (min-width: 768px) {
  .bg-slider {
    min-height: calc(100svh - 147px);
    margin-top: 147px;
    padding-top: 24px;
    background-position: center center;
  }
  .bg-slider .item {
    margin-bottom: 1rem;
    bottom: 0;
  }
  .bg-slider img {
    width: 200px;
    height: auto;
  }
}

/* 治療方針 */
.main-concept {
  margin-top: 2rem;
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
}
.main-concept .title {
  margin-left: 4%;
  margin-right: 4%;
  text-align: left;
}
.main-concept .title h3 {
  font-size: 1.8rem;
}
.main-concept .text {
  margin-bottom: 1rem;
  margin-left: 4%;
  margin-right: 4%;
}
@media (min-width: 768px) {
  .main-concept {
    grid-template-columns: 4fr 6fr;

    grid-template-rows: auto 1fr;
    grid-template-areas:
      'image title'
      'image text';
  }
  .main-concept .title h3 {
    font-size: 2rem;
  }
  .main-concept .title {
    margin-bottom: 0;
    text-align: center;
    grid-area: title;
  }
  .main-concept .img {
    grid-area: image;
  }
  .main-concept img {
    border-radius: 0 30px 30px 0;
    object-fit: cover;
    display: block;
  }
  .main-concept .text {
    grid-area: text;
    margin-right: 8%;
  }
}

/* 取り組み */
.activities {
  margin-top: 2rem;
  margin-bottom: 2rem;
}
.activities-list {
  margin: 0 auto;
  max-width: 1000px;
}
.activities-list li:first-child {
  text-align: center;
  margin-bottom: 1rem;
}
.activities .link {
  text-align: center;
  margin-top: 2rem;
}
@media (min-width: 768px) {
  .activities-list img {
    width: 700px;
    height: auto;
  }
}

/* 診療科目 */
.section-bluebox {
  background-color: #effeff;
}
.category {
  padding-top: 2rem;
  padding-bottom: 2rem;
  margin-bottom: 2rem;
}
.category img {
  width: 100px;
  height: auto;
}
.category ul {
  display: flex;
  gap: 1rem;
  margin-bottom: 1rem;
}
.category ul a {
  color: #23b8c5;
}
.category ul a:hover {
  opacity: 0.5;
}
.category .link {
  text-align: center;
  margin-top: 2rem;
}
@media (min-width: 768px) {
  .category {
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
  }
  .category .grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
  }
  .category ul {
    margin-bottom: 0;
  }
}

/* ご予約・受診の流れ */
/* 休診日など */
.reservation {
  margin-bottom: 1.5rem;
}
.table-border {
  margin-bottom: 1rem;
  padding: 1rem;
  border: 1px solid #23b8c5;
  border-radius: 20px;
  width: 100%;
}
.table-box {
  overflow-x: auto;
  text-align: center;
  -webkit-overflow-scrolling: touch;
}
.table-border div:last-child {
  margin: 1rem 0 0;
}
.time {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  min-width: 500px;
}
.time th,
.time td {
  padding: 1rem 0.5rem;
  border-bottom: 1px #23b8c5 solid;
  text-align: center;
  background: #fff;
  white-space: nowrap;
}
.time .sticky-col {
  position: sticky;
  left: 0;
  z-index: 2;
  background: #fff;
  width: 150px;
}
.time thead .sticky-col {
  z-index: 3;
}
.time tbody th {
  font-weight: normal;
}
.reservation .link {
  text-align: center;
  margin-top: 0.5rem;
}
.reservation .link a {
  margin-top: 0.5rem;
}
@media (min-width: 768px) {
  .reservation .flex {
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
    display: flex;
    gap: 2rem;
    align-items: flex-start;
  }
  .reservation .table-border {
    max-width: 500px;
  }
}

/* アクセス */
iframe {
  width: 100%;
  height: 350px;
}
.access dl {
  display: flex;
  gap: 1rem;
  border-bottom: #def5f7 1px solid;
}
.access dt,
.access dd {
  margin: 1rem 0;
}
.access .list .title {
  min-width: 100px;
  color: #23b8c5;
  font-weight: bold;
}
.access .link {
  text-align: center;
  margin-top: 0.5rem;
}
@media (min-width: 768px) {
  .access .flex {
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
    display: flex;
    gap: 2rem;
    align-items: flex-start;
  }
  .access iframe {
    max-width: 500px;
  }
  .access .list {
    flex-grow: 1;
  }
}
/* お知らせ一覧------------------------------ */
.news-section {
  padding: 0 4%;
  margin: 1rem auto;
}
.news-list a {
  color: #23b8c5;
}
.news-list li {
  border-bottom: #23b8c5 solid 1px;
  padding: 0.5rem;
}
.news-date {
  font-size: 0.75rem;
}
.news-title {
  font-size: 0.75rem;
  margin-left: 1rem;
}
.news-title-single {
  font-size: 1.25rem;
  margin-left: 1rem;
}
.news-text {
  padding: 0.5rem;
}
.news-more {
  display: inline-block;
  color: #fff;
  background: #23b8c5;
  border: 1px solid #23b8c5;
  border-radius: 50px;
  padding: 0.25rem 1rem;
  margin-top: 1rem;
}
.news-more:hover {
  background-color: #fff;
  color: #23b8c5;
}
.news-page {
  display: flex;
  justify-content: space-between;
  text-align: center;
  margin-top: 1rem;
}
.news-page a {
  display: inline-block;
  color: #fff;
  background: #23b8c5;
  border: 1px solid #23b8c5;
  border-radius: 50px;
  padding: 0.25rem 1rem;
}
.news-page a:hover {
  background-color: #fff;
  color: #23b8c5;
}
