@charset "UTF-8";

.sub {
  margin: 9rem auto 0;
  width: 94%;

  section:last-of-type {
    margin-bottom: 8rem !important;
  }

  h1 {
    font-weight: 800;
  }
  .ttl {
    font-weight: 800;
  }

  .mv {
    position: relative;
    border-radius: 30px;
    background-size: cover;
    height: 250px;
    width: 100%;

    .mv-ttl {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translateY(-50%) translateX(-50%);
      text-align: center;
    }
    h1 {
      position: relative;
      span {
        width: 100%;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translateY(-50%) translateX(-50%);
        z-index: -1;
        text-shadow: 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff;
      }
    }
  }
  .mv.clinic {
    background-image: url(../img/sub/clinic_mv.png);
  }
  .mv.treatment {
    background-image: url(../img/sub/clinic_mv.png);
  }
  .mv.first-visit {
    background-image: url(../img/sub/first-visit_mv.png);
  }
  .mv.results {
    background-image: url(../img/sub/results_mv.png);
  }
  .mv.news {
    background-image: url(../img/sub/news_mv.png);
  }
  .mv.access {
    background-image: url(../img/sub/access_mv.png);
  }
  .mv.contact {
    background-image: url(../img/sub/contact_mv.png);
  }

  .mv.saliva {
    background-image: url('../img/treatment/mv_saliva.png');
  }
  .mv.microrna {
    background-image: url('../img/treatment/mv_microrna.png');
  }
  .mv.dc_vaccine {
    background-image: url('../img/treatment/mv_dc_vaccine.png');
  }
  .mv.t_cell {
    background-image: url('../img/treatment/mv_t_cell.png');
  }
  .mv.nk_cell {
    background-image: url('../img/treatment/mv_nk_cell.png');
  }
  .mv.ici {
    background-image: url('../img/treatment/mv_ici.png');
  }
  .mv.hydrogen {
    background-image: url('../img/treatment/mv_hydrogen.png');
  }
  .mv.anti_aging {
    background-image: url('../img/treatment/mv_anti_aging.png');
  }
  .mv.vitamin {
    background-image: url('../img/treatment/mv_vitamin.png');
  }
  .mv.supplement {
    background-image: url('../img/treatment/mv_supplement.png');
  }
  .mv.hair_tonic {
    background-image: url('../img/treatment/mv_hair_tonic.png');
  }

  .contents-top {
    margin-top: 3rem !important;
  }
  .contents-bottom {
    margin-bottom: 3rem !important;
  }

  .anchor_link {
    position: relative;
    z-index: 99;
    margin: 2rem auto 0;

    .list p {
      font-size: 1.1rem;
      font-weight: 600;
      line-height: 2;
    }
    .list {
      flex-wrap: wrap;
      gap: 20px;
      list-style: none;
      padding: 0;
      margin: 0;
      li {
        /* PC時：4カラム設定 
                   (100% / 4) から gap 分を引いた計算にすると正確です */
        width: calc((100% - (20px * 3)) / 4);
        box-sizing: border-box;
        border-radius: 100vw;
        padding: 8px 18px 8px 20px;
      }
      .arrow {
        width: 22px;
        height: 22px;
      }
      .arrow::after {
        top: 5px;
        left: 4px;
        width: 8px;
        height: 8px;
      }
    }
  }

  .btn {
    height: 50px;
  }

  .img-box {
    margin: 3rem auto;
  }
  .img_txt_right-box {
    margin-bottom: 1rem;
    img {
      width: 36%;
      /* flex-basis: ; */
      /* margin-right: 40px; */
    }
  }
  .img_txt_right-box:last-of-type {
    margin-bottom: 0;
  }

}

.treatment-detail .area-details,
.results-wrapper .archive-result-box,
.news-wrapper .detail-content {
  a {
    /* transition: opacity 0.3s ease; */
    text-decoration: underline;
  }
  a:hover {
    opacity: 0.7;
  }
  p a {
    display: inline;
  }
}

/* ▼ページネーション▼ */
.navigation.pagination {
  margin-top: 3rem;
  text-align: center;
}

/* スクリーンリーダー用のテキスト（「投稿のページ送り」など）を隠す */
.screen-reader-text {
  display: none;
}

/* リンクが並ぶ枠 */
.navigation.pagination .nav-links {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.8rem;
  list-style: none;
}

/* 全てのボタン共通：正円のスタイル */
.navigation.pagination .page-numbers {
  font-family: "Montserrat", sans-serif;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  /* 正円の幅 */
  height: 44px;
  /* 正円の高さ */
  border: 2px solid #1b1b1b;
  border-radius: 50%;
  /* 完全な円 */
  text-decoration: none;
  font-weight: 800;
  font-size: 1.2rem;
  transition: all 0.3s ease;
  background-color: #fff;
  box-sizing: border-box;
  /* line-height: 1; */
}

.navigation.pagination .page-numbers.dots {
  font-family: sans-serif;
  border: none;
  background: none;
  width: auto;
  cursor: default;
}

/* 現在のページ（塗りつぶしのオレンジ） */
.navigation.pagination .page-numbers.current {
  background-color: #eb512f;
  /* オレンジ */
  border-color: #eb512f;
  color: #fff;
}

/* ホバーしたとき */
.navigation.pagination a.page-numbers:hover {
  background-color: #eb512f;
  border: 2px solid #eb512f;
  color: #fff;
}

/* 矢印（>）の微調整 */
.navigation.pagination .next.page-numbers,
.navigation.pagination .prev.page-numbers {
  font-size: 1.2rem;
}
/* ▲ページネーション▲ */


/* ▼当院について▼ */
#greeting {
  >.flex:first-of-type {
    margin-bottom: 4rem;
  }
  .txt {
    flex-basis: 56%;
  }
  .img {
    flex-basis: 44%;
    img {
      border-radius: 30px;
    }
  }
  .img02 {
    margin-top: 2rem;
  }
}
#staff {
  .wrapper {
    width: 90%;
    margin: 0 auto;
    padding: 5rem 0 4rem;
    >.flex {
      margin-top: -9rem;
    }
  }
  .ttl {
    position: relative;
    margin-left: auto;
    h2 {
      margin: 0 auto 30px;
    }
  }
  /* .img {
    flex-basis: 38%;
  } */
  .txt {
    flex-basis: 68%;
  }
  .details-btn {
    width: 60%;
  }
}
#in-clinic {
  /* 親要素：上揃えで横並び */
  /* 親：横並び */
  .item {
    margin: 5rem 0;
    position: relative;
  }
  .item:first-child {
    margin-top: 0;
  }
  .item.flex {
    display: flex;
    align-items: flex-start;
    gap: 2rem;
  }

  /* 右側：縦に並べて高さを左に合わせる */
  .box {
    /* position: relative; */
    /* flex: 1; */
    flex-basis: 42%;
    display: flex;
    flex-direction: column;
    align-self: stretch;
  }
  /* 下に押し下げたい要素 */
  .img-wrapper {
    margin-top: auto;
    display: flex;
    gap: 2rem;
    padding-top: 1rem;
  }
  .clinic-img {
    position: relative;
    img {
      border-radius: 30px;
    }
  }
  .clinic-img-l {
    width: 100%;
    flex-basis: 57%;
    img {
      max-height: 500px;
      object-fit: cover;
      overflow: hidden;
    }
  }
  .clinic-img-m {
    padding-top: 2rem;
  }
  .clinic-leaves {
    position: absolute;
    width: 120px;
    bottom: -3rem;
    left: 0.2rem;
  }
  .clinic-bird {
    position: absolute;
    width: 170px;
    bottom: -3rem;
    right: -2rem;
  }
  /* すべての clinic-slider に共通のスタイル */
  .clinic-slider {
    width: 100%;
    margin: 0 auto;

    .splide__slide img {
      width: 100%;
      height: 500px;
      max-height: 500px;
      display: block;
      aspect-ratio: 800 / 850;
      object-fit: cover;
      object-position: center;
    }
    .splide__pagination__page.is-active {
      background: #eb512f;
    }
  }
}
/* #features {
    .threes-item {
      margin-top: 11rem;
    }
  } */
/* ▲当院について▲ */

/* ▼スタッフ紹介▼ */
.staff-wrapper .inner,
.study-wrapper .inner {
  width: 90%;
  margin: 0 auto !important;
  padding: 3rem 0 4rem;
}
.staff-wrapper {
  .box {
    margin: 1rem 0 3rem;
    border-radius: 50px;
  }
  .profile {
    display: flex;
    align-items: center;
    margin-bottom: 3rem;

    /* >div {
      margin-left: 40px;
    } */
    .img {
      flex-basis: 30%;
    }
    .txt {
      flex-basis: 70%;
    }
  }
  .profile-txt {
    margin-bottom: 30px;
  }
  .item.underline {
    margin: 30px 0;
  }
  .item.underline:first-of-type {
    margin-top: 0;
  }
  .item.underline:last-of-type::after {
    display: none;
  }

  ul.paper {
    list-style-type: disc;
    li {
      margin: 1rem 0 1rem 2rem;
    }
    p {
      line-height: 1.2;
      letter-spacing: 0.1rem;
    }
  }
}

.profile-table {
  width: 100%;
  border-collapse: collapse;
  /* テーブル全体のレイアウトを固定（中身に左右されないようにする） */
  table-layout: fixed;

  .title-row td {
    padding: 0.5rem 0;
    display: flex;
    align-items: baseline;
    width: 100%;
  }
  .year {
    font-weight: 800;
  }
  .event {
    margin: 0;
  }
  .profile-unit {
    display: block;
    margin-bottom: 1rem;
    /* 重要：各ユニットを横幅いっぱいに広げる */
    width: 100%;
  }
  .profile-unit:last-of-type {
    margin-bottom: 0;
  }
  /* 下段のテキスト用 */
  .detail-row td p {
    word-break: break-all;
  }
}

.study-wrapper {
  .box {
    border-radius: 50px;
  }
  .ttl_wrapper {
    margin: 1rem 0;
    padding: 2rem;
    .ttl {
      font-size: 2rem;
    }
  }
  .item {
    margin: 2rem 0;
    h2 {
      margin: 4rem 0 2rem;
    }
  }
  .img-box.flex .img {
    flex-basis: 50%;
    width: 100%;
  }
  .img-txt-box {
    margin-bottom: 1rem;
    .img {
      flex-basis: 30%;
    }
    .txt {
      flex-basis: 70%;
    }
  }
  .img-txt-box:last-of-type {
    margin-bottom: 0;
  }
  .txt-box {
    .txt {
      flex-basis: 82%;
    }
    .img {
      flex-basis: 18%;
    }
  }
}
/* ▲スタッフ紹介▲ */

/* ▼診療内容▼ */
.treatment-item img,
.fee-list img {
  border-radius: 30px;
}

.treatment-list {
  >div {
    margin: 2rem 0;
  }
  .inner {
    padding: 3rem 0 2rem;
    width: 90%;
    margin: 0 auto;
  }
  .inner:first-child hr {
    margin: 2rem 0 1.5rem;
  }
  .item {
    display: flex;
    align-items: stretch;
    gap: 2rem;
    padding: 1rem 0 1rem;
    margin-bottom: 2rem;
    .img {
      width: 100%;
      flex-basis: 30%;
      align-self: flex-start;
    }
    .txt {
      flex-basis: 70%;
      width: 100%;
      /* flex: 1; */
      display: flex;
      flex-direction: column;
    }
    .item-link {
      margin-top: auto;
    }
  }
  #anti-aging .box {
    margin: 20px 0;
  }
  .anti-aging-div {
    margin-top: 4rem;
    .item {
      padding: 3rem 0;
    }
    .details-btn-p {
      margin-top: auto;
    }
  }
}

.fee-list {
  .accordion-ttl {
    font-size: 1.6rem;
  }
  .contact-btn-wrapper {
    margin: 2rem auto 4rem;
  }
  .accordion-item {
    position: relative;
    background-size: contain;
    background-repeat: no-repeat;
    height: 150px;
  }
  .fee-list_item01 .accordion-item {
    background-image: url(../img/sub/fee-cancer-immunotherapy.png);
  }
  .fee-list_item02 .accordion-item {
    background-image: url(../img/sub/fee-hydrogen.png);
  }
  .fee-list_item03 .accordion-item {
    background-image: url(../img/sub/fee-cancer-screening.png);
  }
  .fee-list_item04 .accordion-item {
    background-image: url(../img/sub/fee-anti-aging.png);
  }
  .fee-list_item05 .accordion-item {
    background-image: url(../img/sub/fee-vitamin.png);
  }
  .fee-list_item06 .accordion-item {
    background-image: url(../img/sub/fee-supplement.png);
  }
  .fee-list_item07 .accordion-item {
    background-image: url(../img/sub/fee-hair-tonic.png);
  }

  .item.underline:last-of-type::after,
  .price-table_wrapper.underline:last-of-type::after,
  .item_wrapper .price-table_wrapper.underline:last-of-type::after {
    display: none !important;
  }

  .fee-list_item03 .item .deco-square,
  .fee-list_item04 .item .deco-square,
  .fee-list_item06 .item .deco-square,
  .fee-list_item07 .item .deco-square {
    margin-bottom: -21px;
  }

  .fee-list_item06 img,
  .fee-list_item07 img {
    max-width: 250px;
    padding: 1rem 0;
  }

  .hydrogen-item {
    flex-wrap: wrap;
    justify-content: space-between;
    /* align-items: stretch; */
    .item {
      display: flex;
      flex-direction: column;
    }
    .img {
      margin-top: auto;
      text-align: center;
      img {
        margin: 0 auto;
        max-width: 450px;
      }
    }
  }

  .accordion-content {
    .inner {
      margin-top: 3rem;
    }
    /* .flex {
      .item {
        flex-basis: 47%;
      }
    } */
    .item {
      padding: 0.5rem 0;
      margin: 2rem 0;
    }
    .box {
      border-radius: 10px;
      .inner {
        padding: 3rem 0;
      }
      li {
        margin-bottom: 1.5rem;
      }
      li:last-of-type {
        margin-bottom: 0;
      }
      p {
        /* letter-spacing: 0.1rem; */
        font-weight: 500;
        line-height: 1.6;
      }
    }
  }
  .fee-list_item02 {
    .exp-txt {
      white-space: normal;
    }
  }
  .fee-list_item03 {
    /* 関数で出力されるテキストの改行コードを有効にする */
    .price-table_wrapper p {
      /* クラス名は実際の出力に合わせて調整してください */
      white-space: pre-line;
    }
  }

  .price-table_wrapper {
    margin: 1.5rem 0;
    padding: 0.5rem 0;
  }
  .price-table_wrapper:last-of-type {
    margin-bottom: 0;
  }
  .price-table_wrapper.underline {
    margin-left: 1rem;
  }
  .price-table {
    border-collapse: collapse;
    tbody p {
      font-weight: 700;
    }
    td {
      padding-right: 1.5rem;
      white-space: nowrap;
    }
    /* 改定日のテキストスタイル */
    .revision-date.gray {
      font-size: 1rem;
    }
  }
}
/* ▲診療内容▲ */

/* ▼診療詳細▼ */
.treatment-detail>section:last-of-type {
  margin-bottom: 0 !important;
}

.area-details {
  .contents {
    margin: 3rem auto;
  }

  .flex>.wp-block-group__inner-container {
    display: flex;
    align-items: flex-start;
    gap: 2rem;
  }
  .vertical-row {
    >.wp-block-group__inner-container {
      display: grid;
      gap: 2rem;
    }
    .img-box {
      margin: 0 auto !important;
    }
  }
  .box {
    padding: 1rem 2rem;
    border-radius: 20px;
  }
  .bg_none img,
  .exp-txt-box.bg_none img {
    border-radius: 20px;
  }

  .img-box {
    width: 100%;
    margin: 3rem auto !important;
  }
  .img-box.vertical-row {
    margin: 0 !important;
  }
  /* .flex {
    .img-box {
      margin: 0 !important;
    }
  } */

  .img-ttl {
    text-align: center;
    font-weight: 600;
    margin-bottom: 0.5rem;
  }
  .exp-txt {
    font-size: 0.9rem;
  }

  .authorization {
    font-size: 1rem;
    line-height: 1.4;
    margin-top: 2rem;
  }

  .intro {
    .flex {
      margin-top: 2rem;
    }
  }

  .structure {
    background-color: #f6f6f6;
    border-radius: 30px;
    .inner {
      padding: 2rem 0 4rem;
      margin: 0 auto;
    }
    .ttl {
      text-align: center;
      margin: 2rem 0;
    }

    .ttl-border {
      margin-top: 2rem;
      padding-top: 2rem;
      border-top: 1px solid #c3c3c3;
    }
    .flex {
      margin: 2rem 0;
    }

    .references {
      margin-top: 2rem;
      border-top: 1px solid #c3c3c3;
      .ttl {
        text-align: left;
        font-size: 1.1rem;
        font-weight: 500;
        margin: 1rem 0 0.5rem;
      }
      ol {
        list-style-type: decimal;
        padding-left: 1em;
      }
      ol li {
        display: list-item;
        line-height: 1.2;
        margin-bottom: 0.5rem;
      }
      ol li a {
        display: inline;
      }
      .authorization {
        padding-bottom: 2rem;
      }
    }
  }

  .method {
    >.wp-block-group__inner-container {
      align-items: stretch;
    }
    img {
      border-radius: 30px;
    }
    .ttl {
      margin-bottom: 1rem;
    }
    figure {
      flex-basis: 30%;
    }
    .right-item {
      flex-basis: 70%;
      display: flex;
      >.wp-block-group__inner-container {
        display: flex;
        flex-direction: column;
      }
    }
    .sub-txt {
      margin-top: auto;
      text-align: right;
    }

  }

  .media {
    border-top: 1px solid #c3c3c3;
    padding-top: 3rem;
    .exp-txt-box {
      flex-basis: 20%;
    }
    .txt {
      flex-basis: 80%;
    }
  }
}

.saliva-wrapper {
  .structure {
    .vertical-row {
      flex-basis: 56%;
      .img-box {
        width: 100%;
      }
    }
  }
}
.dc_vaccine-wrapper {
  .structure {
    .flex.ttl-img {
      .txt {
        flex-basis: 40%;
      }
      .box {
        flex-basis: 60%;
      }
    }
    /* .img-box {
      width: 70%;
    } */
  }
}
.t_cell-wrapper {
  .structure {
    .flex.ttl-img {
      .box {
        flex-basis: 60%;
      }
      .txt {
        flex-basis: 40%;
      }
    }
  }
}
.ici-wrapper {
  .structure {
    .flex.ttl-img {
      .box {
        flex-basis: 60%;
      }
      .txt {
        flex-basis: 40%;
      }
    }
  }
}
/* .hydrogen-wrapper {
  .intro {
    .flex.img-txt-wrapper {
      .txt-wrapper {
        flex-basis: 65%;
      }
      .exp-txt-box {
        flex-basis: 35%;
      }
    }
    .flex.img-txt {
      >.wp-block-group__inner-container {
        flex-wrap: wrap;
        justify-content: center;
      }
      .exp-txt-box {
        flex-basis: 45%;
      }
    }
  }
} */
.anti_aging-wrapper {
  .contents-top {
    margin: 3rem auto 2rem !important;
  }

  #immune,
  #lifestyle,
  #gut,
  #allergy,
  #oat {
    .flex.img-only {
      .txt {
        flex-basis: 70%;
      }
      .box {
        flex-basis: 30%;
      }
    }
  }
  #anti-aging {
    margin-top: 0 !important;
  }
  #age {
    .flex.img-only {
      .txt {
        flex-basis: 70%;
      }
      .bg_none {
        flex-basis: 30%;
      }
    }
  }
  #gut {
    .img-only:last-child {
      >.wp-block-group__inner-container {
        flex-wrap: wrap;
      }
      .bg_none.bg_none {
        flex-basis: 48%;
        >.wp-block-group__inner-container {
          display: flex;
          flex-wrap: wrap;
          gap: 2rem;
        }
      }
    }
  }
  #telomere {
    .img-only:first-child {
      .flex.img-only {
        .txt {
          flex-basis: 85%;
        }
        .box {
          flex-basis: 15%;
        }
      }
    }
    .img-only:last-child {
      .txt {
        flex-basis: 50%;
      }
      .bg_none {
        flex-basis: 50%;
      }
    }
  }
}
.vitamin-wrapper {
  .structure {
    .flex.ttl-img-txt {
      .txt {
        flex-basis: 63%;
      }
      .exp-txt-box {
        flex-basis: 37%;
      }
    }
    .flex.img-only {
      .txt {
        flex-basis: 75%;
      }
      .img-box {
        flex-basis: 25%;
      }
    }
  }
}
.supplement-wrapper {
  .flex {
    .txt {
      flex-basis: 70%;
    }
    .exp-txt-box {
      flex-basis: 30%;
    }
  }
}
.hair_tonic-wrapper {
  .structure {
    .flex.img-txt {
      .txt {
        flex-basis: 70%;
      }
      .vertical-row {
        flex-basis: 30%;
      }
    }
  }
}

/* .ttl-img {}
.ttl-img-txt {}
.img-txt {} */
/* ▲診療詳細▲ */

/* ▼初診の方へ▼ */
.first-visit-intro {
  .contact-btn-wrapper {
    width: 50%;
    margin-top: 2rem;
  }
}
.flow {
  margin-top: 50px;
  padding: 2rem 0 4rem;
  border-radius: 10px;
  /* >.ttl {
    padding: 0 0 1rem;
  } */
  h2 {
    padding: 1rem 0;
  }
  .flow_inner:first-of-type {
    margin-top: 0;
  }
  .flow_inner {
    width: 90%;
    margin: 1.5rem auto 0;
    border-radius: 50px;

    .item {
      display: flex;
      gap: 3rem;
      align-items: center;
      padding: 3rem 0;
      width: 90%;
      margin: 0 auto;
    }
    .ttl {
      padding-bottom: 1rem;
    }
    h3 {
      margin-bottom: 0;
      font-size: 1.8rem;
      font-weight: 900;
    }
    .img {
      flex-basis: 30%;
    }
    .txt {
      flex-basis: 70%;
    }
    .num {
      font-size: 2rem;
      font-weight: 800;
    }
  }
}
/* ▲初診の方へ▲ */

/* ▼掲載実績▼ */
.results-wrapper {
  .results-item {
    display: flex;
    gap: 4rem;
    margin: 2rem 0;
    padding: 2rem 0;
    scroll-margin-top: 150px;
    /* ヘッダーの高さに合わせて数値を調整してください */
  }

  .results-img {
    width: 100%;
    max-width: 200px;
    /* object-fit: cover; */
    margin-left: 2rem;
  }
  .archive-result-box {
    time {
      p {
        color: #8e8e8e;
        font-weight: 500;
        font-size: 1rem;
        line-height: 1;
      }
    }
    h3 {
      font-size: 1.4rem;
      line-height: 1.6;
      margin-top: 0.4rem;
    }
    .result-full-content {
      margin-top: 1rem;
      /* p {
        display: flex;
      } */
      a {
        color: #083dd5;
        margin-right: 0.2rem;
      }
      a::after {
        content: "";
        display: inline-block;
        width: 1rem;
        height: 1rem;
        vertical-align: middle;
        background-image: url(../img/common/icon_external_blue.png);
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;
      }
      a:has(img)::after {
        display: none !important;
      }
      a[href*="meiko-cit-clinic.jp"]::after {
        display: none !important;
      }
      img {
        max-width: 500px;
        margin-top: 1rem;
      }
    }
  }
}
/* ▲掲載実績▲ */

/* ▼お知らせ▼ */

.sub .news-list {
  .news-item {
    margin-bottom: 2rem;
  }
}
/* ▲お知らせ▲ */

/* ▼お知らせ詳細▼ */
.news-wrapper {
  .inner {
    padding: 2rem 0 4rem;
    width: 84%;
    margin: 0 auto;
  }
  .detail-header {
    time {
      p {
        text-align: right;
        color: #8e8e8e;
        font-weight: 500;
        font-size: 1rem;
        line-height: 1;
      }
    }
    h1 {
      font-size: 1.4rem;
      line-height: 1.6;
      font-weight: 800;
      text-align: center;
      margin: 2rem 0;
    }
  }

  .detail-content {
    /* 中央寄せかつ、中にaタグが含まれる場合のみ横並びにする */
    /* :has() という便利な最新セレクタを使います */
    p:has(a) {
      display: flex;
      flex-wrap: wrap;
    }
    a {
      /* color: #083dd5; */
    }
    img {
      margin: 2rem 0;
    }
    /* strong {
      margin-bottom: 1rem;
    } */
    /* --- テキストの配置 --- */
    /* 中央寄せ */
    .has-text-align-center {
      text-align: center;
    }
    /* 左寄せ */
    .has-text-align-left {
      text-align: left;
    }
    /* 右寄せ */
    .has-text-align-right {
      text-align: right;
    }

    /* --- 文字の装飾 --- */
    /* 太字（ブラウザのリセットCSS対策） */
    strong,
    b {
      font-weight: 700;
    }

    /* --- 画像の配置（画像ブロック） --- */
    /* 中央寄せ */
    .aligncenter {
      display: block;
      margin-left: auto;
      margin-right: auto;
      text-align: center;
    }
    /* 左寄せ */
    .alignleft {
      float: left;
      margin-right: 1.5rem;
      margin-bottom: 1.5rem;
    }
    /* 右寄せ */
    .alignright {
      float: right;
      margin-left: 1.5rem;
      margin-bottom: 1.5rem;
    }
    /* 回り込みの解除 */
    .alignleft::after,
    .alignright::after {
      content: "";
      display: table;
      clear: both;
    }

    /* --- 本文内の画像が枠からはみ出さないようにする --- */
    /* img {
        max-width: 100%;
        height: auto;
      } */

    /* --- 引用（blockquote） --- */
    blockquote.has-text-align-center {
      text-align: center;
    }
  }
  .detail-footer {
    width: 24%;
    margin: 3rem auto 0;
  }
}
/* ▲お知らせ詳細▲ */

/* ▼アクセス▼ */
.access-address {
  .address01,
  .address02 {
    font-size: 1.2rem;
    line-height: 1.4;
    display: flex;
    align-items: baseline;
    gap: 1rem;
  }
  .address01 {
    font-weight: 800;
    margin: 1.5rem 0;
  }
  .address02 {
    font-weight: 400;
    margin-bottom: 0.5em;
  }
  .num {
    font-weight: 500;
  }
  .img {
    flex-basis: 46%;
  }
  .txt {
    flex-basis: 54%;
  }
  .address-ttl {
    background-color: #eb512f;
    width: 15%;
    padding: 2px 0;
    text-align: center;
    display: inline-grid;
    color: #fff;
    font-size: 1rem;
    border-radius: 100vw;
  }
  .details-btn {
    width: 40%;
    min-width: 250px;
    margin-left: initial;
    margin-top: 2rem;
    p {
      font-weight: 600;
      margin-right: 1rem;
    }
    img {
      margin-right: 0;
    }
  }
}

#car,
#train,
#taxi,
#bus {
  h2 {
    margin-bottom: 0;
  }
}
.access-wrapper {
  width: 90%;
  margin: 0 auto;
  padding: 3rem 0 3rem;
  .txt {
    text-align: center;
    >p {
      margin-bottom: 1.5rem;
    }
    span {
      color: #eb512f;
    }
    .outline {
      font-size: 1.2rem;
      font-weight: 800;
      margin: 2rem 0;
    }
    .summary-wrapper {
      display: inline-flex;
      flex-direction: column;
    }
    .summary {
      font-weight: 700;
      text-align: left;
      width: fit-content;
    }
    .gray {
      margin-left: 22px;
    }
  }

  .accordion {
    margin: 2em auto 1rem;
  }
  .access-contents {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    /* justify-content: space-between; */
    gap: 2rem 0;
    margin-top: 2rem;

    .isosceles-triangle {
      position: relative;
      top: -9rem;
    }
    .item {
      width: 30%;
    }
    .item-inner {
      padding-top: 0.5rem;
    }
    .num,
    .details {
      /* 2つを繋げて1つの文章のように扱う */
      display: inline;
    }
    .num {
      font-size: 2rem;
      font-weight: 800;
    }
    .details {
      font-size: 1.2rem;
      margin-left: 1rem;
      font-weight: 600;
    }
  }
  /* 端数調整（左寄せにする） */
  .access-contents::after {
    content: "";
    display: block;
  }
}

#car {
  .access-contents .item:last-of-type {
    width: 37%;
    margin-left: 40px;
  }
  .access-contents> :nth-last-child(2) {
    display: none;
  }
  .inner>p {
    text-align: center;
  }
}

#taxi .access-wrapper .box {
  border-radius: 30px;
  overflow: hidden;
  .intro-txt p {
    font-weight: 700;
    padding: 2rem 0;
    font-size: 1.2rem;
    text-align: center;
  }
  .inner {
    width: 84%;
    margin: 0 auto;
    padding-bottom: 4rem;
  }
  .txt {
    text-align: left;
  }
  .border-dotte-txt {
    font-weight: 600;
    font-size: 1.2rem;
    padding: 1rem 0;
    text-align: center;
  }
}

#bus .access-bus-contents {
  margin-top: 2rem;
  .flex>div {
    /* width: 50%; */
    flex-basis: 50%;
  }
  .flex {
    margin-bottom: 2rem;
  }
  .flex:last-of-type {
    margin-bottom: 0;
  }
  .item {
    /* margin: 10px; */
    text-align: center;
    width: auto;
  }
  .details {
    display: block;
    font-size: 1rem;
  }
  .vertical_column {
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }
  .column02 {
    max-width: 680px;
    margin: 0 auto;
  }
}
/* ▲アクセス▲ */


/* ▼お問い合わせ▼ */
.info,
.privacy-policy {
  .supplement {
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.4;
    margin-top: 0.8rem;
  }
}
.info {
  .intro-text {
    padding: 1rem 0;
    p {
      font-size: 1.2rem;
      font-weight: 700;
    }
  }
  .schedule-wrapper {
    margin-top: 1rem;
    /* gap: 2rem; */
  }
  .contact-link {
    margin-top: 1rem;
    /* gap: 2rem; */
    .inner {
      padding: 3rem 0 4rem;
      width: 84%;
      margin: 0 auto;
    }

    .btn-wrapper {
      margin: 2rem 0 0;
    }
    .btn {
      margin: 0 auto;
      height: 54px;
    }
    .phone-btn {
      max-width: 350px;
    }
  }

}
/* ▲お問い合わせ▲ */

/* ▼フォーム送信完了▼ */
.thanks {
  h2 {
    font-size: 2rem !important;
    margin-bottom: 1rem;
  }

  .back-to-top_btn {
    width: 40%;
    margin: 4rem auto;
    max-width: 350px;
  }
}
/* ▲フォーム送信完了▲ */

/* ▼▼ */
/* ▲▲ */


/*▼プライバシーポリシー_CSS▼*/
.privacy-policy {
  .inner {
    width: 84%;
    margin: 4rem auto !important;
  }
  .policy-section li p,
  .policy-others li p {
    margin: 0;
    display: inline;
    font-size: 1rem;
    font-weight: 500;
  }
  .intro-text {
    font-size: 1.1rem;
    font-weight: 700;
    margin-bottom: 1rem;
  }
  .supplement {
    margin-bottom: 1rem;
  }

  .policy-section {
    margin: 2rem 0;
  }
  .policy-category {
    font-weight: 700;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
  }
  .policy-category::before {
    content: "";
    display: inline-block;
    width: 10px;
    height: 10px;
    background-color: #1b1b1b;
    margin-right: 0.7rem;
    flex-shrink: 0;
  }

  /* リストの基本設定 */
  .privacy-policy-container ul {
    list-style: none;
    padding-left: 0;
    margin: 0 0 1rem 1rem;
  }
  .privacy-policy-container li {
    position: relative;
    padding-left: 1.5em;
    margin-bottom: 0.2rem;
  }

  /* ○ の代わりの「ドット」デザイン */
  .policy-section li::before {
    content: "";
    position: absolute;
    left: 6px;
    top: 0.7em;
    width: 5px;
    height: 5px;
    background-color: #666;
    /* 落ち着いたグレーのドット */
    border-radius: 50%;
    /* 丸くする */
  }

  .policy-others li {
    margin-bottom: 1rem;
    p {
      font-weight: 700;
    }
  }
  /* 下部の単発項目も「四角」にする場合 */
  .policy-others li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.6em;
    width: 8px;
    height: 8px;
    background-color: #1b1b1b;
  }
  .clinic-signature {
    text-align: right;
    margin-top: 2rem;
    font-weight: 700;
    font-size: 1.1rem;
  }
}
/*▲プライバシーポリシー_CSS▲*/


/*▼フォーム▼*/
.form {
  .intro-text {
    text-align: center;
    font-weight: 600;
  }

  /* 送信中に出る「ぐるぐる」を表示しやすくする、またはボタンを半透明にする */
  .wpcf7-form.submitting .wpcf7-submit {
    opacity: 0.5;
    pointer-events: none;
    /* 連打防止 */
  }


  form {
    width: 60%;
    max-width: 1100px;
    margin: 0 auto;
    margin: 2rem auto 5rem;

    /* 1. 入力欄の基本スタイル（既存ベース） */
    .form-item {
      margin-bottom: 1.5rem;
    }
    .wpcf7-form-control-wrap input,
    .wpcf7-form-control-wrap select,
    .wpcf7-form-control-wrap textarea {
      box-sizing: border-box;
      width: 100%;
      height: 64px;
      background-color: #f2fcff;
      border: solid 1px #bbb;
      padding: 0 30px;
      font-weight: 400;
      letter-spacing: 0.1em;
      border-radius: 5px;
      display: block;
      /* 縦に並ぶように明示 */
    }
    .wpcf7-form-control-wrap textarea {
      min-height: 250px;
      padding: 10px;
      resize: vertical;
    }

    .form-item small {
      display: block;
      margin-top: 0.5rem;
      line-height: 1.5;
    }

    /* プレースホルダーのスタイル調整 */
    input::placeholder,
    textarea::placeholder {
      color: #afbabc;
      font-weight: 400;
    }
    /* 2. SafariやChromeなどWebkit系ブラウザ */
    input::-webkit-input-placeholder,
    textarea::-webkit-input-placeholder {
      color: #afbabc;
    }
    /* 3. Firefox */
    input::-moz-placeholder,
    textarea::-moz-placeholder {
      color: #afbabc;
      opacity: 1;
    }
    /* 4. IE / Edge */
    input:-ms-input-placeholder,
    textarea:-ms-input-placeholder {
      color: #afbabc;
    }

    /* セレクトボックスの最初の選択肢（空の値）をプレースホルダーっぽく見せる */
    .wpcf7-form-control-wrap select {
      color: #afbabc;
    }
    /* 選択肢の中身（ドロップダウン）は常に黒で見やすく */
    .wpcf7-form-control-wrap select option {
      color: #000;
      background-color: #fff;
    }

    .wpcf7-form-control-wrap select {
      /* 1. ブラウザ標準の矢印を消す */
      -webkit-appearance: none;
      -moz-appearance: none;
      appearance: none;

      /* 2. 自前の矢印を背景として追加（シンプルなV字アイコンの例） */
      background-image: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="%23afbabc" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M6 9l6 6 6-6"/></svg>');
      background-repeat: no-repeat;
      /* 3. 矢印の位置を調節（右から15px、中央） */
      /* ここで「距離」を自由に変えられます */
      background-position: right 15px center;
      /* 4. 矢印のサイズを調節 */
      background-size: 12px;
      /* 5. 矢印と文字が重ならないように右側に余白を作る */
      padding-right: 40px !important;
    }
    /* IEで矢印を消すための呪文 */
    .wpcf7-form-control-wrap select::-ms-expand {
      display: none;
    }

    /* 不要なbrを消す */
    .form-item p br {
      display: none;
    }
    .form-item small br {
      display: block;
    }

    /* 滑らかに表示させる */
    .wpcf7-not-valid-tip {
      background-color: #ffc9c9;
      padding-left: 1rem;
      animation: fadeIn 0.3s ease-out;
    }
    .form-item>p:first-of-type {
      display: flex;
      align-items: center;
      margin-bottom: 0.2rem;
      font-weight: 600;
    }
    .required,
    .optional {
      font-size: 0.9rem;
      color: #fff;
      border-radius: 5px;
      letter-spacing: 0;
      padding: 0 6px;
      margin-left: 8px;
      flex-shrink: 0;
    }
    .required {
      background-color: #ff173d;
    }
    .optional {
      background-color: #808080;
    }

    /* 生年月日の横並び設定 */
    .birth-group {
      p {
        display: flex;
        align-items: center;
      }
      p span:last-of-type {
        margin-right: 0;
      }
      .wpcf7-form-control-wrap {
        width: 100%;
      }
      .unit {
        margin: 0 1rem 0 0.5rem;
      }
    }

    /* 「#」を「.」に変えるだけです */
    .datepicker {
      -webkit-appearance: none;
      -moz-appearance: none;
      appearance: none;
      background-image: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="%23000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line></svg>');
      background-repeat: no-repeat;
      background-position: right 15px center;
      background-size: 18px;
      padding-right: 45px !important;
    }

    /* --- ラジオボタンの汎用ボタンスタイル --- */
    .radio-buttons-group p {
      display: flex !important;
      gap: 0 !important;
      width: 100%;
      margin: 0;
      font-weight: 600;
    }
    .radio-buttons-group .wpcf7-form-control-wrap,
    .radio-buttons-group .wpcf7-radio {
      display: flex !important;
      flex-wrap: wrap;
      width: 100%;
      gap: 0 !important;
    }
    .radio-buttons-group .wpcf7-list-item {
      flex: 1;
      margin: 0;
      display: block;
      padding: 0 !important;
      margin-right: 1rem;
      order: 1;
    }
    .radio-buttons-group .wpcf7-list-item:last-child {
      margin-right: 0;
    }
    /* ★修正：枠(item)ではなく、中のlabelだけにデザインを集中させる */
    .radio-buttons-group .wpcf7-list-item label {
      display: flex;
      align-items: center;
      width: 100%;
      /* ★追加：横幅いっぱい */
      height: 64px;
      /* ★追加：高さいっぱい */
      background-color: #f2fcff;
      border: solid 1px #bbb;
      border-radius: 5px;
      cursor: pointer;
      padding-left: 2rem;
      transition: all 0.2s;
      box-sizing: border-box;
      /* ★追加 */
    }
    .radio-buttons-group input[type="radio"] {
      margin: 0 8px 0 0;
      width: 18px;
      height: 18px;
      vertical-align: middle;
    }
    .radio-buttons-group .wpcf7-list-item-label {
      line-height: 1;
    }
    .radio-buttons-group .wpcf7-list-item label:hover {
      /* ★修正：labelにhoverを適用 */
      background-color: #e6f9ff;
      border-color: #888;
    }

    .radio-buttons-group .wpcf7-not-valid-tip {
      order: 2;
      /* メッセージの表示順を「2」にして、必ずボタンの後に配置 */
      width: 100% !important;
      /* 横幅を100%にすることで、必ず改行させる */
      display: block;
    }
    /* --- ラジオボタンの汎用ボタンスタイル --- */


    /* --- チェックボックスの汎用ボタン（横幅いっぱい）スタイル --- */
    /* 親要素の余計な隙間をリセット */
    .checkbox-buttons-group p,
    .checkbox-buttons-group .wpcf7-form-control-wrap,
    .checkbox-buttons-group .wpcf7-checkbox {
      display: block !important;
      width: 100% !important;
      margin: 0 !important;
    }
    /* 2. 各選択肢の枠：ここでは背景を設定せず、クリック判定を持つlabelに任せる */
    .checkbox-buttons-group .wpcf7-list-item {
      display: block !important;
      margin: 0 0 0.5rem 0 !important;
      padding: 0 !important;
      /* 隙間をゼロにしてlabelを広げる */
    }
    .checkbox-buttons-group .wpcf7-list-item:last-of-type {
      margin-bottom: 0 !important;
    }
    /* 3. 中のラベル：ここを水色ボックスにする */
    /* 「.wpcf7-list-item」のデザインをこちらに集約しました */
    .checkbox-buttons-group .wpcf7-list-item label {
      display: flex !important;
      /* 横並び（チェックと文字） */
      align-items: center;
      justify-content: flex-start;
      width: 100% !important;
      /* 横幅いっぱい */
      min-height: 64px;
      height: auto;
      /* 長文の時は自動で伸びる */
      background-color: #f2fcff;
      border: solid 1px #bbb;
      border-radius: 5px;
      padding: 0 1.5rem !important;
      /* 内側にゆとりを持たせる */
      box-sizing: border-box;
      cursor: pointer;
      transition: all 0.2s;
      margin: 0 !important;
    }
    /* 4. チェックボックス自体の調整 */
    .checkbox-buttons-group input[type="checkbox"] {
      margin: 0 15px 0 0 !important;
      width: 20px;
      height: 20px;
      flex-shrink: 0;
      /* 文字が長くても四角が潰れないように固定 */
    }
    /* 5. テキスト部分 */
    .checkbox-buttons-group .wpcf7-list-item-label {
      font-weight: 600;
    }
    /* 6. ホバー時：labelに対して背景色を変える */
    .checkbox-buttons-group .wpcf7-list-item label:hover {
      background-color: #e6f9ff;
      border-color: #888;
    }
    /* --- チェックボックスの汎用ボタン（横幅いっぱい）スタイル --- */


    .address-fields p {
      font-weight: 600;
      margin-bottom: 0.5rem;
    }
    .address-fields p:last-of-type {
      margin-bottom: 0;
    }
    /* 横並びのコンテナ */
    /* 親要素（pタグ）をグリッドにする */
    .address-fields p:nth-child(2) {
      display: grid !important;
      /* 2列のグリッド。1列目(郵便番号用)は固定幅、2列目(都道府県用)は残り全部 */
      grid-template-columns: 40% 1fr;
      /* 縦の隙間（文字とボックスの間）を小さく、横の隙間を15pxに */
      gap: 0 1rem;

      .wpcf7-form-control-wrap:nth-of-type(1) {
        grid-column: 1;
        /* 1列目 */
        grid-row: 2;
        /* 2行目（文字の下） */
      }
      .wpcf7-form-control-wrap:nth-of-type(2) {
        grid-column: 2;
        /* 2列目 */
        grid-row: 2;
        /* 2行目（文字の下） */
      }
    }
    /* 横並びのコンテナ */

    .privacy-policy {
      /* width: 100%; */
      height: 200px;
      border: 1px solid #ccc;
      padding: 15px;
      margin-bottom: 1rem;
      background: #f9f9f9;
      overflow-y: auto !important;
      touch-action: pan-y !important;
      -webkit-overflow-scrolling: touch;
    }


    /* --- 送信ボタン本体 --- */
    .wpcf7-submit {
      appearance: none;
      -webkit-appearance: none;
      display: block;
      position: relative;
      right: 0;
      left: 0;
      margin: 0 auto;
      width: 100%;
      max-width: 300px;
      padding: 18px 20px;
      border-radius: 10px;
      background-color: #eb512f;
      color: #fff;
      font-weight: 600;
      letter-spacing: 0.1em;
      border: none;
      cursor: pointer;
      transition: all 0.3s ease;
    }
    .wpcf7-submit:hover {
      background-color: #ea822d;
    }
    /* --- 送信中 --- */
    .wpcf7-submit:disabled {
      background-color: #ccc;
      cursor: not-allowed;
      transform: none;
      box-shadow: none;
    }

    .wpcf7-spinner {
      display: none;
    }

    /* エラーメッセージ（文字）の色 */
    .wpcf7-not-valid-tip {
      color: #ff5b72 !important;
      /* カレンダーの赤ピンクに合わせる */
      font-size: 0.9em;
      margin-top: 5px;
    }

    /* 送信失敗時の枠線の色 */
    .wpcf7-response-output {
      border: 2px solid #ff5b72 !important;
      /* 目立つように調整 */
      border-radius: 8px;
      color: #dc3232 !important;
      background-color: #ffc9c9 !important;
      text-align: center !important;
      font-size: 1rem !important;
      padding: 14px 0 !important;
      font-weight: 500 !important;
    }

  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(-5px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* カレンダー全体のフォントや枠線 */
/* カレンダー全体の枠組み */
.flatpickr-calendar {
  padding-top: 8px !important;
  border-radius: 8px !important;
  width: 360px !important;
}

/* 中身のコンテナ：幅を固定して中央に寄せる */
.flatpickr-innerContainer,
.flatpickr-days,
.dayContainer,
.flatpickr-weekdays {
  width: 350px !important;
  min-width: 350px !important;
  max-width: 350px !important;
  margin: 0 auto;
  box-sizing: border-box;
}

.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month {
  padding-top: 17px !important;
}

.flatpickr-innerContainer {
  padding: 8px 0 12px;
}

/* 曜日のエリア */
.flatpickr-weekdays {
  padding: 0 6px;
}

/* 日付マスの設定：widthとheightを揃えて正円を保つ */
.flatpickr-day {
  width: 44px !important;
  height: 44px !important;
  max-width: 44px !important;
  border-radius: 50% !important;
  font-size: 16px;
  margin: 2px auto !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease !important;
}

/* 曜日の文字設定 */
span.flatpickr-weekday {
  flex: 1;
  max-width: none !important;
  font-weight: bold;
  color: #666;
}

/* 選択された日の背景色 */
.flatpickr-day.selected,
.flatpickr-day.selected:hover,
.flatpickr-day.selected:focus {
  background: #ff5b72 !important;
  border-color: #ff5b72 !important;
  color: #fff !important;
}

/* ホバー時の色 */
.flatpickr-day:hover:not(.selected):not(.flatpickr-disabled) {
  background: #ffebee !important;
  border-color: #ff5b72 !important;
  color: #ff5b72 !important;
}

/* 今日の日付の枠線 */
.flatpickr-day.today {
  border-color: #ff5b72 !important;
}

/* 土曜日の文字色（右端） */
.flatpickr-weekday:nth-child(7n+7),
.flatpickr-day:nth-child(7n+7) {
  color: #007bff !important;
}

/* 日曜日の文字色（左端） */
.flatpickr-weekday:nth-child(7n+1),
.flatpickr-day:nth-child(7n+1) {
  color: #ff5b72 !important;
}

/* 選択できない日の文字色 */
.flatpickr-day.flatpickr-disabled {
  color: #ddd !important;
}
/*▲フォーム_CSS▲*/

/*全共通CSS*/

/*============================*/

/*PC_CSS*/
@media screen and (min-width: 1280px) {
  .sub {
    h1 {
      font-size: 2.6rem;
    }
    h2 {
      font-size: 1.8rem;
      /* font-weight: 800; */
      line-height: 1.2;
    }
    h3 {
      font-size: 2rem;
      /* font-weight: 800; */
    }
    .ttl {
      font-size: 1.6rem;
    }

    .contents,
    .anchor_link {
      width: 86%;
      max-width: 1400px;
      min-width: 1200px;
    }

    .contents {
      margin: 5rem auto;
      >.inner {
        margin: 3rem auto;
      }
    }

    .mv {
      min-width: 1200px;
    }

    .contact-btn-wrapper {
      .phone-btn {
        flex-basis: 52%;
      }
      .reservation-btn {
        flex-basis: 48%;
      }
    }
  }

  /* ▼当院について▼ */
  #features .threes-item {
    .inner {
      padding: 5rem 2rem 2rem;
    }
  }
  /* ▲当院について▲ */

  /* ▼スタッフ紹介▼ */
  .profile-table {
    .year {
      /* 確実に幅を固定 */
      flex: 0 0 140px;
      white-space: nowrap;
    }
    /* 資格テーブルの場合の幅指定 */
    &.qualification-table .year {
      flex: 0 0 243px;
    }
    .event {
      flex: 1;
    }
  }
  /* ▲スタッフ紹介▲ */

  /* ▼診療内容▼ */
  .treatment-list {
    .item {
      .details-btn {
        width: 30%;
        max-width: 240px;
        margin-top: 1rem;
      }
    }
  }

  .fee-list {
    .fee-list_item02 {
      .accordion-content>.inner {
        min-width: 1120px;
      }
      .hydrogen-item.flex .item {
        margin-top: 0px !important;
        flex-basis: 45%;
      }
      /* 縦の点線：flexの流れから浮かせて、中央に固定する */
      .hydrogen-item.flex hr.vr_dashed {
        margin: 0;
        /* 余計な余白を消す */
        flex-shrink: 0;
        /* 線が潰れないように固定 */
      }
    }

  }
  /* ▲診療内容▲ */

  /* ▼診療詳細▼ */
  .area-details {
    .structure {
      .inner {
        padding: 2rem 0 4rem;
        width: 84%;
        min-width: 1100px;
      }
      .ttl {
        margin: 3rem 0 1rem;
      }
    }
    .flex {
      .img-box {
        margin: 0 !important;
      }
    }
  }
  .dc_vaccine-wrapper {
    .structure {
      .img-box {
        width: 70%;
      }
    }
  }
  .hydrogen-wrapper {
    .intro {
      .flex.img-txt-wrapper {
        .txt-wrapper {
          flex-basis: 65%;
        }
        .exp-txt-box {
          flex-basis: 35%;
        }
      }
      .flex.img-txt {
        >.wp-block-group__inner-container {
          flex-wrap: wrap;
          justify-content: center;
        }
        .exp-txt-box {
          flex-basis: 45%;
        }
      }
    }
  }
  .supplement-wrapper {
    .contents-top {
      margin: 2rem auto 3rem !important;
    }
    .structure:nth-of-type(2) {
      margin-top: 0;
    }
    .courage .img-box {
      max-width: 630px;
      margin: 0 auto;
    }
  }

  .hair_tonic-wrapper {
    .contents-top {
      margin: 2rem auto 3rem !important;
    }
    .structure:nth-of-type(2) {
      margin-top: 0;
    }
  }
  /* ▲診療詳細▲ */

  /* ▼初診の方へ▼ */
  .first-visit-intro {}
  /* ▲初診の方へ▲ */

  /* ▼アクセス▼ */
  .access-address {
    .details-btn {
      /* margin-left: initial; */
      /* margin-top: 2rem; */
    }
  }

  .access-wrapper {
    .access-contents {
      /* --- 表示・非表示の制御 --- */
      /* PCで3の倍数の後の三角を消す */
      .access-contents .item {
        /* (100% - (三角形の幅16px + 余白20px) * 2本) / 3列 */
        width: calc((100% - (16px + 20px) * 2) / 3);
      }
      .access-contents::after {
        width: calc((100% - (16px + 20px) * 2) / 3);
      }
    }
  }
  #taxi .access-wrapper .box {
    .taxi-map {
      width: 80%;
      margin: 0 auto;
      display: inherit;
    }
  }
  #bus .access-bus-contents {
    .item02.modal-wrapper {
      width: 60%;
      margin: 0 auto 2rem;
    }
  }
  /* ▲アクセス▲ */

  /* ▼お問い合わせ▼ */
  .info {
    .schedule-wrapper {
      gap: 2rem;
    }
    .contact-link {
      gap: 2rem;
    }
  }
  /* ▲お問い合わせ▲ */

}
/*PC_CSS*/

/*============================*/

/*SP_TABLET_CSS*/
@media screen and (max-width: 1279px) {

  .sub {
    margin: 8rem auto 0;
    h1 {
      letter-spacing: 0.2rem;
    }
    h2 {
      font-size: 1.6rem;
      line-height: 1.2;
    }
    .ttl {
      font-size: 1.4rem;
      line-height: 1.6;
    }

    section:last-of-type {
      margin-bottom: 4rem !important;
    }
    /* .contents,
    .anchor_link {
      width: 94%;
      max-width: 1400px;
      min-width: 1200px;
    } */

    .contents>.flex {
      flex-direction: column;
      /* margin-bottom: 3rem; */
    }
    .sp-reverse {
      flex-direction: column-reverse !important;
    }

    .img-box {
      margin: 2rem auto;
    }


    .mv {
      position: relative;
      border-radius: 30px;
      background-size: cover;
      height: 150px;
      .mv-ttl {
        width: 100%;
      }
    }

    .contents {
      margin: 2rem auto;
      >.inner {
        margin: 1rem auto !important;
        width: 92%;
      }
    }
    .contents-top {
      margin-top: 2rem !important;
    }

    .anchor_link {
      margin: 1rem auto 0;
      .list {
        gap: 4px;
        p {
          font-size: 0.85rem;
          letter-spacing: 0.05rem;
        }
        .arrow {
          width: 16px;
          height: 16px;
        }
        .arrow::after {
          top: 4px;
          left: 3px;
          width: 5px;
          height: 5px;
        }
      }
      .list.flex {
        gap: 4px;
        /* スマホでは余白を少し狭く */
        li {
          /* SP時：2カラム設定 */
          width: calc((100% - 10px) / 2);
          padding: 4px 4px 4px 4px;
        }
      }
    }

    .contact-btn-wrapper {
      width: 80% !important;
      margin: 1rem auto 3rem;
    }
  }

  .btn-wrapper p {
    line-height: 1.2;
  }

  /* ▼当院について▼ */
  #greeting {
    .img02 {
      margin-top: 1rem;
    }
  }
  #staff {
    .wrapper {
      width: 92%;
      padding: 1rem 0 2rem;
      >.flex {
        margin-top: -6rem;
        flex-direction: column;
      }
    }
    .ttl {
      margin: 0 auto 7rem;
    }
    .img {
      width: 80%;
      margin: 0 auto;
    }
    .txt {
      margin-bottom: 1rem;
    }
    .details-btn {
      width: 100%;
      /* font-size: 1rem; */
      text-align: center;
      line-height: 1.6;
      padding: 6px 0;
    }
  }
  #in-clinic {
    .item:nth-child(2) {
      margin-top: 1rem;
    }
    .item {
      margin: 3rem 0;
    }
    .item.flex {
      flex-direction: column;
      gap: 1rem;
    }
    .item:first-child {
      margin-top: 2rem;
    }
    .item.flex:last-of-type {
      gap: 2rem;
    }
    h3 {
      margin-left: auto;
      margin-right: auto;
    }
    .box>p {
      text-align: center;
    }
    .img-wrapper {
      gap: 1rem;
    }
    .clinic-img {
      flex-basis: 50%;
    }
    .clinic-img-m {
      padding-top: 1rem;
    }
    .clinic-bird {
      width: 130px;
      bottom: -3rem;
      right: 0rem;
    }
    .clinic-slider {
      .splide__slide img {
        height: 350px;
        max-height: unset;
      }
    }
  }
  /* ▲当院について▲ */

  /* ▼スタッフ紹介▼ */
  .staff-wrapper .inner,
  .study-wrapper .inner {
    /* width: 92%; */
    padding: 1.5rem 0;
  }
  .staff-wrapper {
    .profile {
      flex-direction: column;
      margin-bottom: 2rem;
      .img {
        width: 70%;
      }
    }
    .box {
      border-radius: 30px;
      margin: 0 0 2rem;
    }
    h2 {
      margin-bottom: 1rem;
    }
  }
  .profile-table {
    .title-row td {
      flex-direction: column;
      padding: 0.8rem 0;
      p {
        line-height: 1.2;
      }
    }
    .profile-unit {
      margin-bottom: 1.5rem;
    }
  }
  .study-wrapper {
    .box {
      border-radius: 30px;
    }
    .flex {
      flex-direction: column;
    }
    .ttl_wrapper {
      margin: 0;
      padding: 1rem;
      .ttl {
        font-size: 1.8rem;
        margin-bottom: 1rem;
      }
      p {
        line-height: 1.2;
      }
    }
    .item {
      margin: 1rem 0;
      h2 {
        margin: 3rem 0 2rem;
      }
    }
    .txt-box {
      .img {
        width: 50%;
        margin: 0 auto;
      }
    }
  }
  /* ▲スタッフ紹介▲ */

  /* ▼診療内容▼ */
  .treatment-list {
    >div {
      margin: 1rem 0 3rem;
    }
    .inner {
      padding: 2rem 0 1rem;
    }
    .inner:first-child hr {
      margin: 1rem 0 1rem;
    }
    .item {
      flex-direction: column;
      .txt {
        gap: 0.5rem;
      }
    }
    .deco-square {
      padding-left: 12px;
    }
    .deco-square::before {
      position: absolute;
      left: -5px;
      top: 14px;
    }
    /* .deco-square {
      align-items: baseline;
    } */
  }
  .anti-aging-div {
    .img {
      width: 70%;
      margin: 0 auto;
    }
    /* .details-btn-p {
      font-size: 1rem;
    } */
  }

  .fee-list {
    .accordion-item {
      height: 110px;
      z-index: 1;
      .accordion-ttl {
        font-size: 1.4rem !important;
      }
    }
    .accordion-item::before {
      content: "";
      position: absolute;
      inset: 0;
      background-color: rgba(255, 255, 255, 0.7);
      z-index: -1;
    }
    .accordion-content {
      .inner {
        margin-top: 2rem;
      }
      .item {
        .deco-square {
          align-items: baseline;
        }
      }
      .box {
        .inner {
          padding: 1.5rem 0;
          margin-top: 0;
        }
      }
      .hydrogen-item {
        flex-direction: column;
        .item {
          padding: 0;
          margin: 0;
        }
      }
    }
    .price-table {
      tbody p {
        line-height: 1.6;
      }
      tr {
        display: block;
      }
      td {
        padding-right: 1rem;
        border-bottom: none;
      }
      tfoot tr {
        border-bottom: none;
      }
    }

    .fee-list_item01 {
      .price {
        padding-right: 0;
        width: 100%;
        display: block;
      }
    }
    .fee-list_item02 {
      .hydrogen-item .item:first-of-type {
        margin-top: 0px !important;
      }
      .exp-txt {
        white-space: pre-wrap;
      }
      tr {
        display: flex;
        margin-bottom: 1rem;
      }
      tr:last-of-type {
        margin-bottom: 0;
      }
      .course {
        flex-basis: 37%;
      }
      .time {
        flex-basis: 0;
      }
    }
    .fee-list_item06 {
      .item .price-table_wrapper:nth-of-type(2) {
        .price {
          padding-right: 0;
          width: 100%;
          display: block;
        }
      }
    }

  }
  /* ▲診療内容▲ */


  /* ▼診療詳細▼ */
  .area-details {
    /* .flex {
      flex-direction: column;
    } */
    .flex>.wp-block-group__inner-container {
      flex-direction: column;
    }
    .vertical-row {
      >.wp-block-group__inner-container {
        display: grid;
        gap: 1rem;
      }
    }
    .box {
      padding: 0.5rem 0.5rem;
    }
    .img-box {
      margin: 2rem auto !important;
    }

    .contents {}
    .structure {
      .inner {
        padding: 1rem 0 2rem;
        width: 90%;
        /* min-width: 1100px; */
      }
      .flex {
        margin: 1rem 0;
      }
      .ttl {
        margin: 1rem 0;
      }
    }
    .media {
      .exp-txt-box {
        width: 50%;
        margin: 0 auto;
      }
    }
  }

  .anti_aging-wrapper {
    .contents-top {
      margin: 3rem auto 1rem !important;
    }
    .anchor_link {
      .list {
        p {
          line-height: 1.6;
        }
      }
      .list.flex {
        li {
          display: flex;
          height: 50px;
        }
      }
    }
  }
  .vitamin-wrapper {
    .img-box:last-of-type {
      width: 50%;
      margin: 0 auto !important;
    }
  }
  .anti_aging-wrapper {
    .min-box {
      width: 60%;
      margin: 1rem auto !important;
    }
  }
  /* ▲診療詳細▲ */

  /* ▼初診の方へ▼ */
  .first-visit-intro {
    /* .contact-btn-wrapper {
      width: 80%;
      margin: 1rem auto 3rem;
    } */
  }
  .flow {
    padding: 1rem 0 3rem;
    .flow_inner {
      border-radius: 30px;
      .item {
        flex-direction: column;
        padding: 2rem 0;
        gap: 2rem;
      }
      h3 {
        font-size: 1.5rem;
      }
    }
  }
  /* ▲初診の方へ▲ */

  /* ▼掲載実績▼ */

  .results-wrapper {
    width: 90%;
    margin-top: 3rem !important;
    .results-item {
      gap: 2rem;
      scroll-margin-top: 120px;
    }
    .results-img {
      margin: 0 auto;
    }
  }
  /* ▲掲載実績▲ */

  /* ▼お知らせ▼ */

  /* ▲お知らせ▲ */

  /* ▼お知らせ詳細▼ */
  .news-wrapper {
    .inner {
      padding: 2rem 0 3rem;
      width: 90%;
    }
    .detail-header {
      h1 {
        margin: 1.5rem 0;
      }
    }
    .detail-content {
      img {
        margin: 1rem 0;
      }
    }
    .is-layout-flex {
      flex-direction: column;
      figure {
        width: 100% !important;
      }
    }
    .detail-footer {
      width: 60%;
      max-width: 370px;
      min-width: 260px;
    }
  }
  /* ▲お知らせ詳細▲ */

  /* ▼アクセス▼ */
  .access-address {
    .address-ttl {
      font-size: 0.9rem;
      width: 20%;
    }
    .address01 {
      margin: 1rem 0;
    }
    .details-btn {
      /* margin-top: 1rem; */
      margin: 1rem auto 0;
    }
    /* .address02 {
      position: relative;
    } */
  }
  .access-wrapper {
    width: 94%;
    padding: 2rem 0 2rem;
    .txt {
      .outline {
        margin: 1rem 0;
        line-height: 1.6;
      }
      .summary {
        line-height: 1.4;
        margin-bottom: 1rem;
      }
    }
    .accordion {
      margin: 1em auto 1rem;
    }
    .accordion-item {
      min-height: 85px;
      padding: 0.5rem 1rem;
    }
    .access-contents {
      gap: 1rem 0;
      .isosceles-triangle {
        top: -4.5rem;
      }
    }
    .access-contents .item {
      /* (100% - (三角形の幅16px + 余白20px) * 1本) / 2列 */
      width: calc((100% - (8px + 20px) * 1) / 2);
    }
    .access-contents::after {
      width: calc((100% - (8px + 20px) * 1) / 2);
    }

    .num {
      font-size: 1.4rem !important;
      line-height: 1.4;
      margin-right: -10px;
    }
    .details {
      font-size: 1rem;
      line-height: 1.4;
    }
  }

  #car {
    .access-contents .item:last-of-type {
      width: 100%;
      margin-left: 0;
    }
  }
  #taxi .access-wrapper .box {
    .intro-txt p {
      padding: 1rem 0;
      font-size: 1.1rem !important;
      line-height: 1.7;
    }
    .inner {
      width: 90%;
      margin: 0 auto;
      padding-bottom: 2rem;
    }
    .txt p:last-of-type {
      margin-bottom: 0;
    }
    .border-dotte-txt {
      font-size: 1.1rem !important;
      line-height: 1.4;
    }
  }
  #bus .access-bus-contents {
    .flex {
      flex-direction: column;
      margin-bottom: 1rem;
    }
    .item.modal-wrapper {
      /* width: 60%; */
      margin: 0 auto 1rem;
    }
    .vertical_column {
      gap: 0;
    }
  }
  /* ▲アクセス▲ */


  /* ▼お問い合わせ▼ */
  .info,
  .privacy-policy {
    .supplement {
      margin-top: 0.5rem;
    }
  }

  .info {
    .intro-text {
      p {
        line-height: 1.4;
      }
    }
    .schedule-wrapper {
      /* gap: 1rem; */
      margin-bottom: 2rem;
    }
    .schedule {
      margin: 0;
      width: 100%;
    }
    .contact-link {
      .inner {
        padding: 2rem 0 3rem;
        width: 90%;
      }
      .btn-wrapper {
        margin: 1rem 0 0;
      }
    }
    .web-form {
      .btn {
        height: 80px;
      }
    }
  }
  /* ▲お問い合わせ▲ */


  /* ▼フォーム送信完了▼ */
  .thanks {
    .back-to-top_btn {
      width: 84%;
      margin: 2rem auto 4rem;
    }
  }
  /* ▲フォーム送信完了▲ */

  /*▼プライバシーポリシー_CSS▼*/
  .privacy-policy {
    .privacy-policy-container ul {
      margin: 0 0 1rem 0rem;
    }
    .privacy-policy-container li {
      padding-left: 1em;
    }
    ol.rm>li>p {
      font-size: 0.8rem;
    }
    ol>li {
      padding: 4% 0;
    }
    ol.num>li>p em:before {
      left: -6%;
    }
    ol.rm>li>p:before {
      font-size: 0.9rem;
      left: -6%;
      top: -4%;
    }
    .policy-category::before {
      margin-right: 0.4rem;
    }
    .policy-section li::before {
      top: 0.9em;
    }
    .policy-others li::before {
      top: 0.8em;
    }
  }
  /*▲プライバシーポリシー_CSS▲*/

  /*▼フォーム▼*/
  .form {
    form {
      width: 100%;
      margin: 1rem auto 0;

      .checkbox-buttons-group .wpcf7-list-item label {
        line-height: 1.5;
        height: 80px;
      }
      /* 
      .birth-group {
        gap: 5px;
      } */

      .wpcf7-form-control-wrap textarea {
        min-height: 150px;
      }

      .address-fields .wpcf7-form-control-wrap[data-name="zip-code"] {
        display: block;
        margin-right: 0;
        margin-bottom: 10px;
      }
      /* .address-fields input[name="zip-code"],
      .address-fields select[name="province"] {
        width: 100% !important;
      } */
    }
  }
  /*▲フォーム_CSS▲*/

}
/*SP_TABLET_CSS*/

/*============================*/

/*SP_CSS*/
@media screen and (max-width: 799px) {

  /* ▼ページネーション▼ */
  .navigation.pagination {
    margin-top: 3rem;
  }
  /* リンクが並ぶ枠 */
  .navigation.pagination .nav-links {
    gap: 0.5rem;
  }
  /* 全てのボタン共通：正円のスタイル */
  .navigation.pagination .page-numbers {
    width: 40px;
    height: 40px;
    font-size: 1.1rem;
  }
  /* ▲ページネーション▲ */

  /* ▼診療内容▼ */
  .treatment-list {
    .treatment-item>p.center {
      text-align: left;
    }
  }
  .anti-aging-div {
    p.center {
      text-align: left;
    }
  }
  .fee-list {
    tr {
      flex-wrap: wrap;
    }
  }
  /* ▲診療内容▲ */

  form {
    .radio-buttons-group .wpcf7-list-item label {
      padding-left: 1rem !important;
    }
    .checkbox-buttons-group .wpcf7-list-item label {
      padding: 0 1rem !important;
    }
    .wpcf7-form-control-wrap input,
    .wpcf7-form-control-wrap select,
    .wpcf7-form-control-wrap textarea {
      padding: 0 10px !important;
    }
    /* 年・月・日の各セットを縦に並べる */
    .birth-group {
      p span:first-of-type {
        min-width: 110px;
      }
      .unit {
        margin: 0 0.3rem 0 0.2rem !important;
      }
      /* p {
        display: block !important;
      }
      .wpcf7-form-control-wrap {
        display: inline-block;
        width: 85% !important;
        min-width: 80px;
      }
      .unit {
        display: inline-block;
        margin: 0 0 1.5rem 0.5rem !important;
      } */
      /* br {
          display: block;
          content: "";
          margin-top: 0;
        } */
    }
  }

}
/*SP_CSS*/

/*============================*/

/*TABLET_CSS*/
@media screen and (min-width: 800px) and (max-width: 1279px) {
  .tb-none {
    display: none;
  }
  .sub {
    margin: 130px auto 0;
    width: 90%;
    /* max-width: 850px; */
    .contents>.inner {
      width: 86%;
    }
    .anchor_link {
      .list {
        p {
          font-size: 1rem;
        }
        .arrow {
          width: 20px;
          height: 20px;
        }
        .arrow::after {
          top: 4px;
          left: 3px;
          width: 8px;
          height: 8px;
        }
      }
      .list.flex li {
        padding: 6px 10px 4px 12px;
      }
    }
    .contact-btn-wrapper {
      max-width: 500px;
    }
  }
  #staff {
    .wrapper {
      width: 86%;
    }
    .img {
      max-width: 440px;
    }
  }
  .staff-wrapper {
    .profile {
      .img {
        max-width: 440px;
      }
    }
  }
  .treatment-list {
    .inner {
      width: 86%;
    }
    .box .item {
      .img {
        max-width: 400px;
      }
    }
  }
  .info {
    .web-form {
      .btn {
        height: 80px;
        max-width: 480px;
      }
    }
  }
}
/*TABLET_CSS*/