/* ===== 進め方：中央の見出し、写真つきの2つの柱。その下に、自費診療の目安を罫線の表で並べる ===== */
.feature { position: relative; z-index: 0; overflow: hidden; padding: 17% 0 0; }
.feature__cols { display: flex; flex-wrap: wrap; justify-content: space-between; margin-top: 7%; }
.feature__box { width: 48%; max-width: 35.625rem; }
.feature__img { aspect-ratio: 570 / 350; }
.feature__sub { margin-top: 4%; color: var(--navy); font-size: clamp(1rem, 0.923rem + 0.33vw, 1.25rem); font-weight: 700; letter-spacing: 0.06em; }
.feature__txt { margin-top: 2%; line-height: 1.75; }

/* 自費診療の目安 */
.price { margin-top: 7.5rem; padding-top: 3.5rem; border-top: 1px solid var(--line); }
.price__ttl { color: var(--navy); font-size: clamp(1.125rem, 0.98rem + 0.6vw, 1.625rem); font-weight: 700; letter-spacing: 0.06em; text-align: center; }
.price__lead { max-width: 46rem; margin: 1.25rem auto 0; line-height: 1.9; text-align: center; }
.price__table { width: 100%; margin-top: 2.75rem; font-size: 0.9375rem; table-layout: fixed; }
.price__table th, .price__table td { padding: 1.5rem 1.5rem 1.5rem 0; border-bottom: 1px solid var(--line); line-height: 1.75; text-align: left; vertical-align: top; }
.price__table thead th { padding-top: 0; padding-bottom: 1rem; color: var(--navy); font-size: clamp(0.875rem, 0.837rem + 0.16vw, 1rem); font-weight: 700; }
.price__table thead th:nth-child(1) { width: 16%; }
.price__table thead th:nth-child(2) { width: 23%; }
.price__table thead th:nth-child(3) { width: 15%; }
.price__table thead th:nth-child(4) { width: 19%; }
.price__table td:last-child, .price__table th:last-child { padding-right: 0; }
.price__name { color: var(--navy); font-weight: 700; }
.price__k { display: none; }
.price__yen { margin-right: 0.15em; color: var(--navy); font-size: 1.5rem; font-weight: 500; letter-spacing: 0.02em; line-height: 1.2; }
.price__table small { display: block; margin-top: 0.25rem; font-size: 0.8125rem; color: var(--ink); }
.price__notes { margin-top: 1.5rem; font-size: 0.875rem; line-height: 1.9; }
.price__notes li { position: relative; padding-left: 1.1em; }
.price__notes li::before { content: "※"; position: absolute; left: 0; }

@media (max-width: 64rem) {
  .price__table th, .price__table td { padding-right: 1rem; }
  .price__table thead th:nth-child(1) { width: 18%; }
  .price__yen { font-size: 1.25rem; }
}
@media (max-width: 40.625rem) {
  .feature { padding-top: 24%; }
  .feature__cols { margin-top: 2rem; }
  .feature__box { width: 100%; }
  .feature__box:first-child { margin-bottom: 2.5rem; }
  .price { margin-top: 4rem; padding-top: 2.5rem; }
  .price__lead { text-align: left; }
  .price__table { margin-top: 1.5rem; border-top: 1px solid var(--line); }
  .price__table thead { display: none; }
  .price__table, .price__table tbody, .price__table tr, .price__table th, .price__table td { display: block; width: 100%; }
  .price__table tr { padding: 1.25rem 0; border-bottom: 1px solid var(--line); }
  .price__table th, .price__table td { padding: 0; border-bottom: 0; }
  .price__name { margin-bottom: 0.5rem; font-size: 1.0625rem; }
  .price__table td { display: grid; grid-template-columns: 7.2em minmax(0, 1fr); column-gap: 0.75rem; padding: 0.4rem 0; }
  .price__k { display: block; color: var(--accent); font-size: 0.8125rem; font-weight: 700; line-height: 1.75; }
  .price__v { grid-column: 2; }
  .price__yen { font-size: 1.25rem; }
}
