@charset "UTF-8";

/* --- 共通設定 --- */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 6.2vw;
}

body {
  margin: 0;
}

h1, h2, h3, h4, p, span, a, li, th, td {
  font-family: "Noto Serif JP", serif;
  color: #333;
}

.en,
.en h1,
.en h2,
.en h3,
.en p,
.en span,
.en a {
  font-family: "Cormorant Garamond", serif;
}

li {
  list-style: none;
}

a {
  color: #333;
  text-decoration: none;
}

a:hover {
  opacity: 0.8;
}

/* --- コンテナ設定 --- */
img {
  width: 100%;
  height: auto;
  border-style: none;
  display: block;
}

/* 消してる要素 */
.sp-header,
.sp {
  display: none;
}

/* アニメーションの動き */
.fade-up {
  opacity: 0;
  transform: translateY(2.08vw);
  transition:
    opacity 0.8s ease-out,
    transform 0.8s ease-out;
}

/* 画面に入った時に付与するクラス */
.is-show {
  opacity: 1;
  transform: translateY(0);
}

/* ========================================
  共通パーツ
======================================== */

/* ナビ */
.sub-nav > nav > ul {
  display: flex;
  justify-content: center;
}

.sub-nav > nav > ul > li {
  position: relative;
  padding: 0 4.44vw;
}

.sub-nav > nav > ul > li:first-child {
  padding-left: 0;
}

.sub-nav > nav > ul > li:last-child {
  padding-right: 0;
}

.sub-nav > nav > ul > li + li::before {
  content: "";
  width: 0.06vw;
  height: 2.83vw;
  position: absolute;
  top: 0;
  left: 0;
  background-color: #a9a9a9;
}

.sub-nav > nav > ul > li > a {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.sub-nav-ja {
  font-size: 0.94vw;
  font-weight: 600;
  line-height: 2.5;
  letter-spacing: 0.06em;
}

.sub-nav-en {
  font-size: 0.82vw;
  font-weight: 600;
  color: #f5c89e;
  line-height: 1.2;
  letter-spacing: 0.07em;
  margin-top: -0.35vw;
}

/* ナビ：ドロップダウン（診療案内） */
.sub-nav-label {
  display: flex;
  flex-direction: column;
  align-items: center;
  cursor: pointer;
  outline: none;
}

.sub-nav-parent {
  display: flex;
  align-items: center;
}

.sub-nav-parent::after {
  content: "";
  width: 0.42vw;
  height: 0.42vw;
  display: block;
  transform: rotate(45deg);
  border-right: 0.14vw solid #f5c89e;
  border-bottom: 0.14vw solid #f5c89e;
  transition: transform 0.3s;
  margin-top: -0.28vw;
  margin-left: 0.42vw;
}

.sub-nav-dropdown {
  width: 18.06vw;
  position: absolute;
  top: 100%;
  left: 50%;
  z-index: 50;
  transform: translate(-50%, 0.69vw);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, transform 0.3s, visibility 0.3s;
  padding-top: 0.83vw;
}

.sub-nav > nav > ul > li:hover .sub-nav-dropdown,
.sub-nav > nav > ul > li:focus-within .sub-nav-dropdown {
  transform: translate(-50%, 0);
  opacity: 1;
  visibility: visible;
}

.sub-nav > nav > ul > li:hover .sub-nav-parent::after,
.sub-nav > nav > ul > li:focus-within .sub-nav-parent::after {
  transform: rotate(225deg);
}

.sub-nav-dropdown ul {
  position: relative;
  background-color: #fff;
  box-shadow: 0 0.28vw 1.11vw rgba(91, 65, 58, 0.12);
  padding: 0.56vw 0;
  border-top: 0.21vw solid #f5c89e;
}

.sub-nav-dropdown ul::before {
  content: "";
  width: 0;
  height: 0;
  position: absolute;
  top: -0.83vw;
  left: 50%;
  transform: translateX(-50%);
  border-right: 0.56vw solid transparent;
  border-bottom: 0.63vw solid #f5c89e;
  border-left: 0.56vw solid transparent;
}

.sub-nav-dropdown ul li {
  padding: 0 1.11vw;
}

.sub-nav-dropdown ul li + li a {
  border-top: 0.07vw dashed #f5c89e;
}

.sub-nav-dropdown ul li a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.76vw 0.42vw;
  transition: background-color 0.3s;
}

.sub-nav-dropdown ul li a:hover {
  opacity: 1;
  background-color: #fff2e7;
}

.sub-nav-dropdown-ja {
  font-size: 0.88vw;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.06em;
}

.sub-nav-dropdown-en {
  font-size: 0.71vw;
  font-weight: 600;
  color: #f5c89e;
  line-height: 1.5;
  letter-spacing: 0.06em;
}

/* フッターのナビは下に診療一覧があるためドロップダウンを出さない */
.footer-nav .sub-nav-dropdown,
.footer-nav .sub-nav-parent::after {
  display: none;
}

.footer-nav .sub-nav-label {
  cursor: default;
}

/* 予約・問い合わせボタン */
.sub-contact-item {
  width: 12.04vw;
  height: 4.73vw;
  border: 0.07vw solid #333;
}

.sub-contact-item a {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.sub-contact-label {
  height: 1.71vw;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #ffbe00;
  border-radius: 5.49vw;
  padding: 0 0.59vw;
}

.sub-contact-label p {
  font-size: 0.82vw;
  font-weight: 500;
  color: #fff;
  line-height: 1;
  letter-spacing: 0.06em;
}

.sub-contact-note p {
  font-size: 0.82vw;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.06em;
}

.sub-contact-main {
  display: flex;
  align-items: center;
}

.sub-contact-tel .sub-contact-main {
  margin-top: 0.65vw;
}

.sub-contact-web .sub-contact-main {
  margin-top: 0.94vw;
}

.sub-contact-tel .sub-contact-icon {
  width: 1.12vw;
}

.sub-contact-web .sub-contact-icon {
  width: 1.3vw;
}

.sub-contact-access .sub-contact-icon {
  width: 1.36vw;
}

.sub-contact-tel .sub-contact-text {
  margin-left: 0.36vw;
}

.sub-contact-web .sub-contact-text {
  margin-left: 0.42vw;
}

.sub-contact-access .sub-contact-text {
  margin-left: 0.65vw;
}

.sub-contact-text p {
  font-size: 1.18vw;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.06em;
}

.sub-contact-tel .sub-contact-text p {
  font-size: 1.42vw;
  letter-spacing: 0.03em;
}

/* 診療時間 */
.sub-hours-table table {
  width: 100%;
  border: 0.07vw solid #f5c89e;
  border-collapse: collapse;
}

.sub-hours-table table th {
  height: 4.03vw;
  font-size: 1.18vw;
  font-weight: 600;
  color: #fff;
  letter-spacing: 0.06em;
  text-align: center;
  background-color: #f5c89e;
}

.sub-hours-table table td {
  height: 3.96vw;
  font-size: 1.18vw;
  font-weight: 600;
  color: #f5c89e;
  letter-spacing: 0.06em;
  text-align: center;
}

.sub-hours-table table th:first-child,
.sub-hours-table table td:first-child {
  width: 12.01vw;
  text-align: left;
  padding-left: 0.97vw;
}

.sub-hours-table table td:first-child {
  color: #333;
}

.sub-hours-table table tr:last-child td {
  border-top: 0.07vw solid #f5c89e;
}

.sub-hours-text {
  padding-left: 0.97vw;
  margin-top: 1.6vw;
}

.sub-hours-text p {
  font-size: 0.94vw;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.06em;
}

/* 固定ボタン（PC：ページトップ / SP：下部固定バー） */
.sub-fixed {
  position: fixed;
  right: 3.33vw;
  bottom: 3.33vw;
  z-index: 90;
}

.sub-fixed-box {
  display: flex;
}

.sub-fixed-top {
  width: 4.51vw;
  height: 4.51vw;
  background-color: #ffbe00;
  border-radius: 50%;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
}

.sub-fixed-top.is-active {
  opacity: 1;
  visibility: visible;
}

.sub-fixed-top a {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  padding-top: 0.56vw;
}

.sub-fixed-top a::before {
  content: "";
  width: 1.18vw;
  height: 1.18vw;
  display: block;
  transform: rotate(45deg);
  border-top: 0.24vw solid #fff;
  border-left: 0.24vw solid #fff;
}

/* ========================================
  ヘッダー
======================================== */
.header-container {
  width: 100%;
  height: 6.2vw;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  background-color: #fff;
  transform: translateY(-100%);
  visibility: hidden;
  transition: transform 0.4s, visibility 0.4s;
}

#header.is-active .header-container {
  transform: translateY(0);
  visibility: visible;
}

.header-box {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 1.11vw 0 2.08vw;
}

.header-box .sub-nav > nav > ul > li {
  padding: 0 2.57vw;
}

.header-box .sub-nav > nav > ul > li:first-child {
  padding-left: 0;
}

.header-box .sub-nav > nav > ul > li:last-child {
  padding-right: 0;
}

.header-box .sub-contact-box {
  display: flex;
}

.header-box .sub-contact-item {
  height: 4.13vw;
  margin-left: 0.48vw;
}

.header-box .sub-contact-label {
  height: 1.54vw;
}

.header-box .sub-contact-tel .sub-contact-main {
  margin-top: 0.48vw;
}

.header-box .sub-contact-web .sub-contact-main {
  margin-top: 0.71vw;
}

.header-box .sub-contact-item:first-child {
  margin-left: 0;
}

.header-box .sub-contact-access {
  width: 8.08vw;
}

/* 下層ページ：ページ上部のヘッダー（ロゴ＋予約ボタン） */
.header-sub {
  width: 100%;
  height: 6.94vw;
}

.header-sub-box {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 1.11vw 0 2.08vw;
}

.header-sub-logo {
  width: 26.11vw;
}

.header-sub-box .sub-contact-box {
  display: flex;
}

.header-sub-box .sub-contact-item {
  margin-left: 0.56vw;
}

.header-sub-box .sub-contact-item:first-child {
  margin-left: 0;
}

.header-sub-box .sub-contact-access {
  width: 8.08vw;
}

/* ========================================
  下層ページ共通メインビュー
======================================== */
.sub-mv-container {
  width: 95.83vw;
  height: 27.08vw;
  background: linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3)), url(../image/part-back2.webp) 38% 68% / 113.82% auto no-repeat;
  padding-top: 8.82vw;
  margin: 0 auto;
}

.sub-mv-box {
  text-align: center;
}

.sub-mv-title h1 {
  font-size: 2.95vw;
  font-weight: 700;
  color: #fff;
  line-height: 1.6;
  letter-spacing: 0.06em;
}

.sub-mv-text {
  margin-top: 0.49vw;
}

.sub-mv-text p {
  font-size: 2.36vw;
  font-weight: 400;
  color: #fff;
  line-height: 1.2;
  letter-spacing: 0.06em;
}

.sub-mv-nav {
  margin-top: 2.01vw;
}

/* ========================================
  下層ページ共通セクションタイトル
======================================== */
.sub-title {
  text-align: center;
}

.sub-title-sub p {
  font-size: 1.42vw;
  font-weight: 600;
  color: #f5c89e;
  line-height: 1.2;
  letter-spacing: 0.06em;
}

.sub-title-sub + .sub-title-en {
  margin-top: 0.63vw;
}

.sub-title-en h2 {
  font-size: 2.36vw;
  font-weight: 600;
  color: #ff8511;
  line-height: 0.88;
  letter-spacing: 0.06em;
}

.sub-title-en + .sub-title-ja {
  margin-top: 0.28vw;
}

.sub-title-ja h2 {
  font-size: 2.36vw;
  font-weight: 600;
  line-height: 0.88;
  letter-spacing: 0.06em;
}

.sub-title-ja p {
  font-size: 1.42vw;
  font-weight: 600;
  line-height: 1.46;
  letter-spacing: 0.06em;
}

.sub-title-dots {
  width: 6.39vw;
  margin: 0.97vw auto 0;
}

.sub-title-en + .sub-title-dots {
  margin-top: 1.53vw;
}

.sub-title-main + .sub-title-dots {
  margin-top: 2.01vw;
}

.sub-title-lead {
  margin-top: 1.53vw;
}

.sub-title-lead p {
  font-size: 0.94vw;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.06em;
}

.sub-title-main + .sub-title-dots + .sub-title-lead {
  margin-top: 2.01vw;
}

.sub-title-large h2 {
  font-size: 5.67vw;
  font-weight: 600;
  color: #f5c89e;
  line-height: 0.95;
  letter-spacing: 0.06em;
}

.sub-title-large + .sub-title-ja {
  margin-top: 1.94vw;
}

.sub-title-large + .sub-title-ja p {
  line-height: 1.2;
}

.sub-title-large + .sub-title-ja + .sub-title-dots {
  margin-top: 1.94vw;
}

/* ========================================
  トップページ
======================================== */

/* --- p1-a メインビュー --- */
.p1-a-container {
  width: 100%;
  height: 52.78vw;
  position: relative;
  overflow: hidden;
}

.p1-a-slider {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

.p1-a-slider::after {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background-color: rgba(0, 0, 0, 0.3);
}

.p1-a-slide {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background-position: 41% 14%;
  background-size: cover;
  opacity: 0;
  transition: opacity 1.5s;
}

.p1-a-slide.is-active {
  opacity: 1;
}

.p1-a-slide1 {
  background-image: url(../image/p1-back1.webp);
}

.p1-a-slide2 {
  background-image: url(../image/p1-back2.webp);
}

.p1-a-slide3 {
  background-image: url(../image/p1-back3.webp);
}

.p1-a-box {
  width: 100%;
  height: 100%;
  position: relative;
  z-index: 1;
}

.p1-a-card {
  width: 26.11vw;
  height: 41.94vw;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: absolute;
  top: 5.42vw;
  left: 11.94vw;
  background-color: rgba(255, 255, 255, 0.7);
  border-radius: 1.11vw;
  padding-top: 4.51vw;
}

.p1-a-logo {
  width: 21.04vw;
}

.p1-a-address {
  margin-top: 4.31vw;
}

.p1-a-address p {
  font-size: 0.71vw;
  font-weight: 600;
  line-height: 1.42;
}

.p1-a-card .sub-contact-box {
  margin-top: 2.85vw;
}

.p1-a-card .sub-contact-item {
  margin-top: 0.88vw;
}

.p1-a-card .sub-contact-item:first-child {
  margin-top: 0;
}

.p1-a-catch {
  position: absolute;
  top: 16.53vw;
  left: 50vw;
}

.p1-a-title h1 {
  font-size: 2.95vw;
  font-weight: 700;
  color: #fff;
  line-height: 1.6;
  letter-spacing: 0.06em;
  text-shadow: 0 0.28vw 0.28vw rgba(0, 0, 0, 0.25);
}

.p1-a-text {
  margin-top: 2.43vw;
}

.p1-a-text p {
  font-size: 1.18vw;
  font-weight: 800;
  color: #fff;
  line-height: 2;
  letter-spacing: 0.06em;
  white-space: nowrap;
  text-shadow: 0 0.28vw 0.28vw rgba(0, 0, 0, 0.25);
}

.p1-a-nav {
  margin-top: 2.01vw;
}

/* --- p1-b お知らせ・診療時間 --- */
.p1-b {
  padding-top: 2.01vw;
}

.p1-b-container {
  display: flex;
}

.p1-b-news {
  width: 50vw;
  background-color: #fff2e7;
  padding: 3.4vw 0 3.68vw;
}

.p1-b-info {
  width: 50vw;
  background-color: #f5c89e;
  padding: 3.4vw 0 3.68vw;
}

.p1-b-box {
  width: 42.71vw;
  height: 33.89vw;
  background-color: #fff;
  padding-top: 2.85vw;
  margin: 0 auto;
}

.p1-b-title {
  text-align: center;
}

.p1-b-title-en h2 {
  font-size: 2.36vw;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0.06em;
}

.p1-b-title-ja {
  margin-top: 0.63vw;
}

.p1-b-info .p1-b-title-ja {
  margin-top: 1.32vw;
}

.p1-b-title-ja p {
  font-size: 1.18vw;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.06em;
}

.p1-b-list {
  width: 36.6vw;
  height: 19.79vw;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  margin-top: 2.29vw;
  margin-left: 3.47vw;
}

.p1-b-list::-webkit-scrollbar {
  width: 0.35vw;
}

.p1-b-list::-webkit-scrollbar-track {
  background-color: transparent;
}

.p1-b-list::-webkit-scrollbar-thumb {
  background-color: #fff2e7;
}

/* Firefox（::-webkit-scrollbar 非対応ブラウザ） */
@supports not selector(::-webkit-scrollbar) {
  .p1-b-list {
    scrollbar-color: #fff2e7 transparent;
    scrollbar-width: thin;
  }
}

.p1-b-item {
  width: 31.94vw;
  padding-top: 1.25vw;
}

.p1-b-item::after {
  content: "";
  width: 100%;
  height: 0.07vw;
  display: block;
  background-image: linear-gradient(to right, #ffbe00 0.14vw, transparent 0.14vw);
  background-size: 0.42vw 0.07vw;
  margin-top: 2.5vw;
}

.p1-b-item a {
  display: block;
}

.p1-b-date {
  width: 7.08vw;
  height: 2.01vw;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #ffbe00;
  border-radius: 3.48vw;
  margin-left: 0.65vw;
}

.p1-b-date p {
  font-size: 0.94vw;
  font-weight: 600;
  color: #fff;
  line-height: 1.2;
  letter-spacing: 0.06em;
}

.p1-b-text {
  padding-left: 1.81vw;
  margin-top: 1.67vw;
}

.p1-b-text p {
  font-size: 0.94vw;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.06em;
}

.p1-b-hours {
  width: 33.19vw;
  margin: 4.17vw auto 0;
}

/* --- p1-c 特徴 --- */
.p1-c {
  padding-top: 4.72vw;
}

.p1-c-visual {
  width: 100%;
  height: 38.47vw;
  background: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)), url(../image/p1-back4.webp) center / cover no-repeat;
  padding-top: 11.6vw;
}

.p1-c-catch {
  width: 39.58vw;
  height: 7.64vw;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background-color: #fff;
  margin-left: 54.86vw;
}

.p1-c-catch:nth-child(2) {
  margin-top: 2.5vw;
  margin-left: 50vw;
}

.p1-c-catch-ja p {
  font-size: 2.36vw;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.06em;
}

.p1-c-catch-en {
  margin-top: 0.56vw;
}

.p1-c-catch-en p {
  font-size: 1.18vw;
  font-weight: 600;
  color: #f5c89e;
  line-height: 1.2;
  letter-spacing: 0.06em;
}

.p1-c-title {
  position: relative;
  z-index: 1;
  text-align: center;
  margin-top: -5.42vw;
}

.p1-c-title-en h2 {
  font-size: 7.56vw;
  font-weight: 600;
  color: #f5c89e;
  line-height: 1.2;
  letter-spacing: 0.06em;
}

.p1-c-title-ja {
  margin-top: 1.42vw;
}

.p1-c-title-ja p {
  font-size: 1.42vw;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.06em;
}

.p1-c-box {
  width: 88.89vw;
  margin: 5.97vw auto 0;
}

.p1-c-item {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  margin-top: 7.08vw;
}

.p1-c-item:first-child {
  margin-top: 0;
}

.p1-c-label {
  width: 1.74vw;
  flex-shrink: 0;
}

.p1-c-label p {
  font-family: "Noto Serif JP", serif;
  font-size: 1.42vw;
  font-weight: 600;
  color: #f5c89e;
  line-height: 1.2;
  letter-spacing: 0.06em;
  white-space: nowrap;
  writing-mode: vertical-rl;
}

.p1-c-body {
  width: 39.72vw;
  display: block;
  flex-shrink: 0;
  margin-left: 2.36vw;
}

.p1-c-item-title::before {
  content: "";
  width: 21.6vw;
  height: 0.14vw;
  display: block;
  background-color: #f5c89e;
  margin-top: 1.46vw;
}

.p1-c-item-title h3 {
  font-size: 1.77vw;
  font-weight: 600;
  line-height: 1.67;
  letter-spacing: 0.06em;
  padding-left: 0.69vw;
  margin-top: 1.25vw;
}

.p1-c-text {
  padding-left: 0.69vw;
  margin-top: 1.94vw;
}

.p1-c-text p {
  font-size: 0.88vw;
  font-weight: 600;
  line-height: 2;
  letter-spacing: 0.06em;
}

.p1-c-imgs {
  width: 44.1vw;
  flex-shrink: 0;
  margin-left: 5.49vw;
}

.p1-c-img {
  width: 37.78vw;
  position: relative;
}

/* FEATURE 01 */
.p1-c-item:nth-child(1) .p1-c-img:nth-child(1) {
  margin-top: 1.94vw;
  margin-left: 6.32vw;
}

.p1-c-item:nth-child(1) .p1-c-img:nth-child(2) {
  margin-top: 2.01vw;
  margin-left: 0;
}

/* FEATURE 02 */
.p1-c-item:nth-child(2) .p1-c-imgs {
  width: 39.58vw;
  order: -1;
  margin-top: 1.6vw;
  margin-left: 0;
}

.p1-c-item:nth-child(2) .p1-c-img {
  width: 100%;
}

.p1-c-item:nth-child(2) .p1-c-label {
  margin-left: 4.86vw;
}

.p1-c-item:nth-child(2) .p1-c-body {
  width: 39.03vw;
  margin-left: 3.06vw;
}

.p1-c-item:nth-child(2) .p1-c-item-title::before {
  margin-top: 1.32vw;
}

.p1-c-item:nth-child(2) .p1-c-item-title h3 {
  padding-left: 0;
  margin-top: 0.9vw;
}

.p1-c-item:nth-child(2) .p1-c-text {
  padding-left: 0;
  margin-top: 2.99vw;
}

/* FEATURE 03 */
.p1-c-item:nth-child(3) .p1-c-imgs {
  width: 39.58vw;
  margin-top: 5.69vw;
  margin-left: 5.49vw;
}

.p1-c-item:nth-child(3) .p1-c-img {
  width: 100%;
}

.p1-c-item:nth-child(3) .p1-c-text {
  margin-top: 2.99vw;
}

/* FEATURE 04 */
.p1-c-item:nth-child(4) {
  flex-wrap: wrap;
}

.p1-c-item:nth-child(4) .p1-c-imgs {
  width: 100%;
  display: flex;
  justify-content: space-between;
  order: -1;
  margin-left: 0;
}

.p1-c-item:nth-child(4) .p1-c-img {
  width: 28.75vw;
}

.p1-c-item:nth-child(4) .p1-c-label {
  margin-top: 2.36vw;
}

.p1-c-item:nth-child(4) .p1-c-body {
  width: 84.79vw;
  display: flex;
  align-items: flex-start;
  margin-top: 2.36vw;
  margin-left: 2.36vw;
}

.p1-c-item:nth-child(4) .p1-c-item-title {
  width: 21.6vw;
  flex-shrink: 0;
}

.p1-c-item:nth-child(4) .p1-c-text {
  width: 59.51vw;
  padding-left: 0;
  margin-top: 0.69vw;
  margin-left: 3.68vw;
}

.p1-c-tag {
  width: 17.43vw;
  height: 2.29vw;
  display: flex;
  align-items: center;
  position: absolute;
  right: 0;
  bottom: 2.29vw;
  background-color: #fff;
  border-radius: 0.35vw 0 0 0.35vw;
  padding-left: 1.53vw;
}

.p1-c-img:nth-child(3) .p1-c-tag {
  padding-left: 0.97vw;
}

.p1-c-tag p {
  font-size: 0.88vw;
  font-weight: 600;
  line-height: 2;
  letter-spacing: 0.06em;
  white-space: nowrap;
}

.p1-c-tag p span {
  font-size: 0.76vw;
  color: #f5c89e;
}

/* --- p1-d 診療内容 --- */
.p1-d {
  padding-top: 9.51vw;
}

.p1-d-title {
  text-align: center;
}

.p1-d-title-en h2 {
  font-size: 7.56vw;
  font-weight: 600;
  color: #f5c89e;
  line-height: 0.55;
  letter-spacing: 0.06em;
}

.p1-d-title-ja {
  margin-top: 4.58vw;
}

.p1-d-title-ja p {
  font-size: 1.42vw;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.06em;
}

.p1-d-box {
  width: 88.96vw;
  display: grid;
  grid-template-columns: repeat(4, 19.5%);
  column-gap: 1.88vw;
  justify-content: center;
  margin: 3.82vw auto 0;
}

.p1-d-item {
  width: 100%;
  height: 17.36vw;
  position: relative;
  border: 0.07vw solid #c18c5b;
}

.p1-d-item:nth-child(n+5) {
  margin-top: 2.15vw;
}

.p1-d-item::after {
  content: "";
  width: 1.11vw;
  height: 1.11vw;
  position: absolute;
  right: 0.42vw;
  bottom: 0.42vw;
  background-color: #f5c89e;
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

.p1-d-item a {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.p1-d-img {
  width: 7.64vw;
}

.p1-d-name {
  margin-top: 0.97vw;
}

.p1-d-name h3 {
  font-size: 1.42vw;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.06em;
}

.p1-d-text {
  margin-top: 0.69vw;
}

.p1-d-text p {
  font-size: 0.94vw;
  font-weight: 600;
  color: #f5c89e;
  line-height: 1.2;
  letter-spacing: 0.06em;
}

/* --- p1-e 院内ギャラリー（無限ループ） --- */
.p1-e {
  padding-top: 9.51vw;
}

.p1-e-title {
  text-align: center;
}

.p1-e-title h2 {
  font-size: 5.9vw;
  font-weight: 600;
  color: transparent;
  line-height: 0.7;
  letter-spacing: 0.06em;
  white-space: nowrap;
  -webkit-text-stroke: 0.07vw #f5c89e;
}

.p1-e-box {
  width: 100%;
  overflow: hidden;
  margin-top: 4.93vw;
}

.p1-e-track {
  width: max-content;
  display: flex;
  align-items: flex-start;
  animation: p1-e-loop 40s linear infinite;
}

@keyframes p1-e-loop {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

.p1-e-img {
  width: 16.74vw;
  flex-shrink: 0;
  margin-right: 1.25vw;
}

.p1-e-img:nth-child(6n+1),
.p1-e-img:nth-child(6n+3),
.p1-e-img:nth-child(6n+5) {
  margin-top: 4.72vw;
}

.p1-e-img:nth-child(6n+2),
.p1-e-img:nth-child(6n+4) {
  width: 13.33vw;
}

/* --- p1-f メッセージ --- */
.p1-f {
  padding-top: 9.51vw;
}

.p1-f-box {
  width: 84.31vw;
  display: flex;
  flex-direction: row;
  position: relative;
  margin: 0 auto;
}

.p1-f-img {
  width: 38.26vw;
  position: relative;
}

.p1-f-content {
  width: 46.04vw;
  height: 57.36vw;
  background: linear-gradient(rgba(0, 0, 0, 0.65), rgba(0, 0, 0, 0.65)), url(../image/p1-back5.webp) center / cover no-repeat;
  padding: 3.06vw 0 0 3.89vw;
}

.p1-f-title {
  position: relative;
  z-index: 1;
  text-align: left;
}

.p1-f-title-en h2 {
  font-size: 2.36vw;
  font-weight: 600;
  color: #f5c89e;
  line-height: 0.85;
  letter-spacing: 0.06em;
}

.p1-f-title-ja {
  margin-top: 2.08vw;
}

.p1-f-title-ja h3 {
  font-size: 2.12vw;
  font-weight: 600;
  color: #fff;
  line-height: 0.94;
  letter-spacing: 0.06em;
}

.p1-f-text {
  width: 40.35vw;
  margin-top: 2.08vw;
}

.p1-f-text p {
  font-size: 0.88vw;
  font-weight: 600;
  color: #fff;
  line-height: 2.27;
  letter-spacing: 0.06em;
}

.p1-f-name {
  width: 21.39vw;
  height: 7.78vw;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: absolute;
  top: 51.32vw;
  left: 18.33vw;
  background-color: #fff;
  padding-top: 1.53vw;
  border: 0.14vw solid #f5c89e;
}

.p1-f-name-ja p {
  font-size: 2.12vw;
  font-weight: 700;
  color: #f5c89e;
  line-height: 0.94;
  letter-spacing: 0.06em;
}

.p1-f-name-ja p .p1-f-name-role {
  font-size: 1.77vw;
  font-weight: 700;
  color: #f5c89e;
}

.p1-f-name-en {
  margin-top: 0.42vw;
}

.p1-f-name-en p {
  font-size: 1.42vw;
  font-weight: 600;
  color: #d69c66;
  line-height: 1.42;
  letter-spacing: 0.06em;
}

/* ========================================
  医院紹介（page-clinic.php）
======================================== */

/* --- p2-a 院長紹介・ごあいさつ --- */
.p2-a {
  padding-top: 6.67vw;
}

.p2-a-visual {
  width: 94.44vw;
  height: 38.47vw;
  background: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)), url(../image/p2-back1.webp) 100% 40% / cover no-repeat;
  padding-top: 11.6vw;
  margin-top: 2.57vw;
}

.p2-a-catch {
  width: 39.58vw;
  height: 7.64vw;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background-color: #fff;
  margin-left: 52.08vw;
}

.p2-a-catch:nth-child(2) {
  margin-top: 2.5vw;
  margin-left: 47.22vw;
}

.p2-a-catch-ja p {
  font-size: 2.36vw;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.06em;
}

.p2-a-catch-en {
  margin-top: 0.56vw;
}

.p2-a-catch-en p {
  font-size: 1.18vw;
  font-weight: 600;
  color: #f5c89e;
  line-height: 1.2;
  letter-spacing: 0.06em;
}

.p2-a-box {
  width: 100%;
  position: relative;
  z-index: 1;
  margin-top: -2.43vw;
}

.p2-a-label {
  padding-left: 5vw;
}

.p2-a-label p {
  font-size: 7.56vw;
  font-weight: 600;
  color: #f5c89e;
  line-height: 0.54;
  letter-spacing: 0.06em;
}

.p2-a-subtitle {
  padding-left: 5.56vw;
  margin-top: 2.29vw;
}

.p2-a-subtitle h3 {
  font-size: 1.42vw;
  font-weight: 600;
  line-height: 1.46;
  letter-spacing: 0.06em;
}

.p2-a-text {
  width: 61.53vw;
  margin: 3.19vw auto 0;
}

.p2-a-text p {
  font-size: 0.94vw;
  font-weight: 600;
  line-height: 2.19;
  letter-spacing: 0.06em;
}

/* --- p2-b 経歴 --- */
.p2-b {
  padding-top: 6.67vw;
}

.p2-b-container {
  background-color: #fff2e7;
  padding: 3.82vw 0 3.33vw;
}

.p2-b-box {
  width: 100%;
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  padding-left: 7.85vw;
}

.p2-b-img {
  width: 38.26vw;
  flex-shrink: 0;
}

.p2-b-content {
  width: 27.43vw;
  padding-top: 3.82vw;
  margin-left: 12.92vw;
}

.p2-b-title {
  display: flex;
  align-items: flex-end;
  padding-bottom: 0.83vw;
  border-bottom: 0.07vw solid #ff8511;
}

.p2-b-title-ja h2 {
  font-size: 1.42vw;
  font-weight: 600;
  line-height: 1.17;
  letter-spacing: 0.06em;
}

.p2-b-title-en {
  margin-left: 2.01vw;
}

.p2-b-title-en p {
  font-size: 0.94vw;
  font-weight: 600;
  color: #ff8511;
  line-height: 1.2;
  letter-spacing: 0.06em;
}

.p2-b-table {
  width: 28.06vw;
  margin-top: 1.67vw;
  margin-left: -0.35vw;
}

.p2-b-table table {
  width: 100%;
  border-collapse: collapse;
}

.p2-b-table table th,
.p2-b-table table td {
  height: 3.47vw;
  font-size: 0.94vw;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.06em;
  text-align: left;
  vertical-align: middle;
  border-bottom: 0.07vw dashed #a9a9a9;
}

.p2-b-table table th {
  width: 11.67vw;
  white-space: nowrap;
  padding-left: 0.35vw;
}

.p2-b-name {
  width: 21.39vw;
  height: 7.78vw;
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: #fff;
  padding-top: 1.53vw;
  border: 0.14vw solid #f5c89e;
  margin: 2.78vw auto 0;
}

.p2-b-name-ja p {
  font-size: 2.12vw;
  font-weight: 700;
  color: #f5c89e;
  line-height: 0.94;
  letter-spacing: 0.06em;
}

.p2-b-name-ja p .p2-b-name-role {
  font-size: 1.77vw;
  font-weight: 700;
  color: #f5c89e;
}

.p2-b-name-en {
  margin-top: 0.42vw;
}

.p2-b-name-en p {
  font-size: 1.42vw;
  font-weight: 600;
  color: #d69c66;
  line-height: 1.42;
  letter-spacing: 0.06em;
}

/* --- p2-c Q&A --- */
.p2-c {
  padding-top: 8.61vw;
}

.p2-c-box {
  width: 82.78vw;
  margin: 1.04vw auto 0;
}

.p2-c-item {
  margin-top: 0.69vw;
}

.p2-c-item:first-child {
  margin-top: 0;
}

.p2-c-item::after {
  content: "";
  width: 100%;
  height: 0;
  display: block;
  border-top: 0.14vw dashed #00b5ee;
  margin-top: 3.47vw;
}

.p2-c-card {
  display: flex;
  flex-direction: row;
  align-items: center;
  padding-top: 3.47vw;
}

.p2-c-body {
  width: 53.54vw;
  flex-shrink: 0;
}

.p2-c-question {
  display: flex;
  align-items: center;
  border-bottom: 0.07vw solid #ff8511;
}

.p2-c-mark {
  width: 1.74vw;
  flex-shrink: 0;
  margin-right: 1.18vw;
}

.p2-c-mark p {
  font-size: 1.89vw;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.06em;
}

.p2-c-question .p2-c-mark p {
  color: #ff8511;
}

.p2-c-answer .p2-c-mark p {
  color: #00b5ee;
  line-height: 0.94;
}

.p2-c-question-text {
  width: 50.63vw;
}

.p2-c-question-text h3 {
  font-size: 1.18vw;
  font-weight: 600;
  line-height: 2.5;
  letter-spacing: 0.06em;
}

.p2-c-item:nth-child(4) .p2-c-question {
  align-items: flex-start;
}

.p2-c-item:nth-child(4) .p2-c-question-text h3 {
  line-height: 1.7;
}

.p2-c-answer {
  display: flex;
  align-items: flex-start;
  margin-top: 1.18vw;
}

.p2-c-text {
  width: 50.69vw;
}

.p2-c-text p {
  font-size: 0.88vw;
  font-weight: 600;
  line-height: 2;
  letter-spacing: 0.06em;
}

.p2-c-img {
  width: 25.9vw;
  flex-shrink: 0;
  margin-left: 3.33vw;
}

/* --- p2-d ストリートビュー --- */
.p2-d {
  padding-top: 10.28vw;
}

.p2-d-box {
  width: 77.85vw;
  margin: 0 auto;
}

.p2-d-box iframe {
  width: 100%;
  height: 21.11vw;
  display: block;
  border: 0;
}

/* --- p2-e アクセス --- */
.p2-e {
  padding-top: 10.28vw;
}

.p2-e-box {
  width: 79.79vw;
  display: flex;
  flex-direction: row;
  align-items: center;
  margin: 3.47vw auto 0;
}

.p2-e-img {
  width: 39.93vw;
  flex-shrink: 0;
}

.p2-e-info {
  width: 34.51vw;
  margin-left: 5.35vw;
}

.p2-e-table table {
  width: 100%;
  border-collapse: collapse;
}

.p2-e-table table th,
.p2-e-table table td {
  height: 4.17vw;
  font-size: 0.94vw;
  font-weight: 600;
  line-height: 1.2;
  text-align: left;
  vertical-align: middle;
  border-bottom: 0.07vw dashed #a9a9a9;
}

.p2-e-table table th {
  width: 9.69vw;
  white-space: nowrap;
  padding-left: 0.69vw;
}

.p2-e-table table td {
  padding-right: 0.69vw;
}

.p2-e-route {
  margin-top: 3.54vw;
}

.p2-e-route-item {
  display: flex;
  align-items: center;
  margin-top: 0.49vw;
}

.p2-e-route-item:first-child {
  margin-top: 0;
}

.p2-e-route-icon {
  width: 1.67vw;
}

.p2-e-route-item:nth-child(2) .p2-e-route-icon {
  width: 1.88vw;
}

.p2-e-route-text {
  margin-left: 1.74vw;
}

.p2-e-route-item:nth-child(2) .p2-e-route-text {
  margin-left: 1.53vw;
}

.p2-e-route-text p {
  font-size: 0.94vw;
  font-weight: 600;
  line-height: 2.19;
}

.p2-e-bottom {
  width: 79.79vw;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: flex-start;
  margin: 4.86vw auto 0;
}

.p2-e-hours {
  width: 33.19vw;
  margin-left: 2.08vw;
}

.p2-e-map {
  width: 39.93vw;
}

.p2-e-map iframe {
  width: 100%;
  height: 19.72vw;
  display: block;
  border: 0;
}

/* ========================================
  診療案内ページ（page-dental-*.php）：下層共通パーツ＋小児歯科ページ（p5-）
======================================== */

/* --- sub-intro 下層共通：診療紹介（見出し＋本文＋画像） --- */
.sub-intro {
  padding-top: 6.67vw;
}

.sub-info + .sub-intro,
.sub-trouble + .sub-intro {
  padding-top: 15.69vw;
}

.sub-intro-box {
  width: 88.89vw;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: flex-start;
  margin: 5.42vw auto 0;
}

.sub-intro-body {
  width: 42.22vw;
}

.sub-intro-title h3 {
  font-size: 1.77vw;
  font-weight: 600;
  line-height: 1.47;
  letter-spacing: 0.06em;
}

.sub-intro-text {
  margin-top: 3.19vw;
}

.sub-intro-text p {
  font-size: 0.94vw;
  font-weight: 600;
  line-height: 2.19;
  letter-spacing: 0.06em;
}

.sub-intro-img {
  width: 41.18vw;
  margin-top: 3.47vw;
}

/* 画像を左・文章を右にするタイプ */
.sub-intro-reverse .sub-intro-box {
  flex-direction: row-reverse;
}

.sub-intro-reverse .sub-intro-img {
  margin-top: 2.43vw;
}

/* 本文の下の▶付きリスト（インプラントの特徴など） */
.sub-intro-list {
  width: 20.49vw;
  margin-top: 1.11vw;
  margin-left: 3.54vw;
}

.sub-intro-list ul li {
  display: flex;
  align-items: center;
  font-size: 0.94vw;
  font-weight: 600;
  line-height: 2.75;
  letter-spacing: 0.06em;
  border-bottom: 0.07vw dashed #a9a9a9;
}

.sub-intro-list ul li::before {
  content: "";
  width: 0.97vw;
  height: 1.11vw;
  flex-shrink: 0;
  background-color: #ff8511;
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  margin-right: 0.83vw;
}

.sub-intro-text p a {
  text-decoration: underline;
}

/* --- sub-trouble 下層共通：お悩みリスト（TROUBLE） --- */
.sub-trouble {
  padding-top: 6.04vw;
}

.sub-trouble-title {
  position: relative;
  z-index: 1;
  text-align: center;
}

.sub-trouble-title h2 {
  font-size: 3.77vw;
  font-weight: 600;
  color: #ff8511;
  line-height: 0.55;
  letter-spacing: 0.06em;
}

.sub-trouble-container {
  background-color: #fff2e7;
  padding: 2.15vw 0 2.85vw;
  margin-top: 0.21vw;
}

.sub-trouble-lead {
  text-align: center;
}

.sub-trouble-lead h3 {
  font-size: 1.42vw;
  font-weight: 600;
  line-height: 1.46;
  letter-spacing: 0.06em;
}

.sub-trouble-box {
  width: 66.94vw;
  background-color: #fff;
  padding: 1.81vw 12.08vw;
  margin: 1.53vw auto 0;
}

.sub-trouble-list ul {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 14.51vw;
  row-gap: 2.43vw;
}

.sub-trouble-list ul li {
  display: flex;
  align-items: center;
  font-size: 0.94vw;
  font-weight: 600;
  line-height: 2.19;
  letter-spacing: 0.06em;
  white-space: nowrap;
}

.sub-trouble-list ul li::before {
  content: "";
  width: 1.39vw;
  height: 1.39vw;
  flex-shrink: 0;
  background: url(../image/part-icon15.webp) center / contain no-repeat;
  margin-right: 0.83vw;
}

.sub-trouble-dots {
  width: 100%;
  position: relative;
  margin-top: -0.49vw;
}

.sub-trouble-text {
  text-align: center;
  margin-top: 1.53vw;
}

.sub-trouble-text p {
  font-size: 1.18vw;
  font-weight: 600;
  line-height: 1.75;
  letter-spacing: 0.06em;
}

/* --- p5-c 特徴（FEATURE） --- */
.p5-c {
  padding-top: 6.88vw;
}

.p5-c-box {
  width: 80.76vw;
  margin: 5.56vw auto 0;
}

.p5-c-item {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: flex-start;
  margin-top: 5.56vw;
}

.p5-c-item:first-child {
  margin-top: 0;
}

.p5-c-item:nth-child(even) {
  flex-direction: row-reverse;
}

.p5-c-body {
  width: 39.58vw;
}

.p5-c-label {
  display: flex;
  align-items: center;
  padding: 0.69vw;
  border-bottom: 0.07vw solid #ffbe00;
}

.p5-c-label-icon {
  width: 1.39vw;
}

.p5-c-label-text {
  margin-left: 0.69vw;
}

.p5-c-label-text p {
  font-size: 2.36vw;
  font-weight: 600;
  color: #ffbe00;
  line-height: 0.63;
  letter-spacing: 0.04em;
}

.p5-c-label-text p .p5-c-label-small {
  font-size: 1.18vw;
  color: #ffbe00;
}

.p5-c-title {
  margin-top: 1.32vw;
}

.p5-c-title h3 {
  font-size: 1.54vw;
  font-weight: 600;
  line-height: 1.92;
  letter-spacing: 0.06em;
}

.p5-c-text {
  width: 39.03vw;
  margin-top: 1.32vw;
}

.p5-c-text p {
  font-size: 0.88vw;
  font-weight: 600;
  line-height: 2;
  letter-spacing: 0.06em;
}

.p5-c-img {
  width: 34.58vw;
}

/* --- p5-d 診療内容 --- */
.p5-d {
  padding-top: 7.71vw;
}

.p5-d-box {
  width: 88.89vw;
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  margin: 5.83vw auto 0;
}

.p5-d-item {
  width: 16.67vw;
  height: 24.03vw;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-top: 1.32vw;
  border: 0.14vw solid #ff8511;
  border-radius: 1.53vw;
}

.p5-d-item:nth-child(n+3) {
  margin-top: 0;
}

.p5-d-name {
  display: flex;
  align-items: center;
}

.p5-d-name-icon {
  width: 1.32vw;
}

.p5-d-name-text {
  margin-left: 0.56vw;
}

.p5-d-name-text h3 {
  font-size: 1.42vw;
  font-weight: 600;
  line-height: 1.46;
  letter-spacing: 0.06em;
  white-space: nowrap;
}

.p5-d-img {
  width: 9.93vw;
  margin-top: 0.97vw;
}

.p5-d-text {
  width: 14.03vw;
  margin-top: 0.97vw;
}

.p5-d-text p {
  font-size: 0.94vw;
  font-weight: 600;
  line-height: 1.69;
  letter-spacing: 0.06em;
}

/* --- sub-info 下層共通：案内ボックス（黄色い見出しバー＋白枠） --- */
.sub-info {
  padding-top: 5.83vw;
}

.sub-info-box {
  width: 88.89vw;
  margin: 0 auto;
}

.sub-info-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: #fde4cf;
  padding: 2.43vw 2.15vw 3.54vw;
  margin-top: 3.13vw;
}

.sub-info-item:first-child {
  margin-top: 0;
}

/* 薄いベージュ背景＋白枠を細くするタイプ */
.sub-info-narrow {
  background-color: #fff2e7;
}

.sub-info-head {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #ffbe00;
  padding: 1.74vw 2.08vw;
}

.sub-info-head-icon {
  width: 2.29vw;
}

.sub-info-head-title {
  margin-left: 1.67vw;
}

.sub-info-head-title h3 {
  font-size: 1.77vw;
  font-weight: 600;
  color: #fff;
  line-height: 0.9;
  letter-spacing: 0.06em;
}

.sub-info-lead {
  width: 55.14vw;
  margin-top: 2.08vw;
}

.sub-info-lead p {
  font-size: 1.42vw;
  font-weight: 600;
  line-height: 1.92;
  letter-spacing: 0.06em;
}

.sub-info-text {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: #fff;
  padding: 1.74vw 0.69vw;
  margin-top: 2.08vw;
}

.sub-info-text p {
  width: 63.82vw;
  font-size: 0.94vw;
  font-weight: 600;
  line-height: 2.5;
  letter-spacing: 0.06em;
}

.sub-info-narrow .sub-info-text {
  width: 55.14vw;
  padding: 0.69vw;
}

.sub-info-narrow .sub-info-text p {
  width: 38.75vw;
}

/* 白枠の中のチェックリスト＋注意書き */
.sub-info-list {
  width: 61.11vw;
  padding-bottom: 1.11vw;
  border-bottom: 0.07vw dashed #5b413a;
}

.sub-info-list ul li {
  display: flex;
  align-items: center;
  font-size: 0.94vw;
  font-weight: 600;
  line-height: 2.5;
  letter-spacing: 0.06em;
}

.sub-info-list ul li::before {
  content: "";
  width: 1.39vw;
  height: 1.39vw;
  flex-shrink: 0;
  background: url(../image/part-icon15.webp) center / contain no-repeat;
  margin-right: 0.9vw;
}

.sub-info-note {
  margin-top: 0.69vw;
}

.sub-info-note p {
  width: 61.11vw;
}

/* ========================================
  料金表（page-price.php）
======================================== */

/* --- p7-a 自由診療の費用 --- */
.p7-a {
  padding-top: 6.67vw;
}

.p7-a-box {
  width: 66.32vw;
  margin: 6.74vw auto 0;
}

.p7-a-item {
  margin-top: 16.6vw;
}

.p7-a-item:first-child {
  margin-top: 0;
}

.p7-a-head {
  display: flex;
  align-items: center;
  padding-bottom: 0.69vw;
  border-bottom: 0.14vw solid #ff8511;
}

.p7-a-head-icon {
  width: 2.29vw;
}

.p7-a-head-title {
  margin-left: 1.32vw;
}

.p7-a-head-title h2 {
  font-size: 1.42vw;
  font-weight: 700;
  line-height: 1.46;
  letter-spacing: 0.06em;
}

.p7-a-table {
  margin-top: 1.6vw;
}

.p7-a-table table {
  width: 100%;
  border-collapse: collapse;
}

.p7-a-table table th,
.p7-a-table table td {
  font-size: 0.94vw;
  font-weight: 600;
  line-height: 2.19;
  letter-spacing: 0.06em;
  text-align: center;
  vertical-align: middle;
  border: 0.07vw solid #5b413a;
}

.p7-a-table table tr:first-child th {
  font-size: 1.42vw;
  font-weight: 700;
  color: #000;
  line-height: 1.46;
  text-align: left;
  background-color: #f5c89e;
  padding: 0.69vw;
}

.p7-a-table table tr:nth-child(2) th {
  height: 4.38vw;
  background-color: #fff2e7;
}

.p7-a-table table tr:nth-child(2) th:first-child {
  width: 40.76vw;
  text-align: left;
  padding-left: 1.53vw;
}

.p7-a-table table tr:nth-child(2) th:nth-child(2) {
  width: 12.85vw;
}

.p7-a-table table tr:nth-child(3) td {
  height: 4.03vw;
  padding: 0.69vw 1.53vw;
}

.p7-a-item:nth-child(2) .p7-a-table table tr:nth-child(3) td {
  padding: 2.08vw 1.53vw;
}

.p7-a-table table tr:nth-child(3) td:first-child {
  text-align: left;
}

.p7-a-table table tr:nth-child(3) td p + p {
  margin-top: 1.04vw;
}

.p7-a-table table tr:nth-child(4) th {
  height: 4.38vw;
  text-align: left;
  background-color: #fff2e7;
  padding-left: 1.53vw;
}

.p7-a-table table tr:nth-child(5) td {
  text-align: left;
  padding: 1.53vw;
}

.p7-a-risk {
  border: 0.07vw solid #5b413a;
  margin: 0.28vw 1.04vw 1.46vw 1.11vw;
}

.p7-a-risk-title {
  height: 3.75vw;
  display: flex;
  align-items: center;
  background-color: #fff2e7;
  padding-left: 1.25vw;
  border-bottom: 0.07vw solid #5b413a;
}

.p7-a-risk-title p {
  font-size: 0.94vw;
  font-weight: 600;
  line-height: 2.19;
  letter-spacing: 0.06em;
}

.p7-a-risk-list {
  padding: 2.43vw 1.88vw 1.46vw;
}

.p7-a-risk-list ul li {
  display: flex;
  align-items: flex-start;
  font-size: 0.88vw;
  font-weight: 600;
  line-height: 2.33;
  letter-spacing: 0.06em;
  margin-top: 1.94vw;
}

.p7-a-risk-list ul li:first-child {
  margin-top: 0;
}

.p7-a-risk-list ul li::before {
  content: "";
  width: 1.18vw;
  height: 1.18vw;
  flex-shrink: 0;
  background: url(../image/part-icon24.webp) center / contain no-repeat;
  margin-top: 0.63vw;
  margin-right: 1.11vw;
}

.p7-a-doctor {
  width: 53.26vw;
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: #fde4cf;
  padding: 1.25vw 2.85vw 2.22vw;
  margin: 3.33vw auto 0;
}

.p7-a-doctor-title h3 {
  font-size: 1.18vw;
  font-weight: 600;
  color: #5b413a;
  line-height: 1.75;
  letter-spacing: 0.06em;
}

.p7-a-doctor-text {
  width: 47.57vw;
  background-color: #fff;
  padding: 0.69vw 2.15vw;
  margin-top: 1.46vw;
}

.p7-a-doctor-text p {
  font-size: 0.94vw;
  font-weight: 600;
  line-height: 2.19;
  letter-spacing: 0.06em;
}

/* ========================================
  フッター
======================================== */
.footer-container {
  position: relative;
  margin-top: 11.25vw;
}

.footer-back {
  width: 100%;
  height: 37.57vw;
  position: absolute;
  top: 0;
  left: 0;
  background: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)), url(../image/part-back1.webp) center 59% / cover no-repeat;
}

.footer-box {
  width: 88.89vw;
  position: relative;
  padding-top: 29.24vw;
  margin: 0 auto;
}

.footer-info {
  width: 100%;
  height: 25.69vw;
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  background-color: #fff;
}

.footer-info-main {
  width: 44.86vw;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-top: 4.65vw;
  margin-left: 1.32vw;
}

.footer-logo {
  width: 26.11vw;
}

.footer-address {
  text-align: center;
  margin-top: 1.39vw;
}

.footer-address p {
  font-size: 0.71vw;
  font-weight: 600;
  line-height: 1.42;
}

.footer-contact {
  margin-top: 1.94vw;
}

.footer-contact .sub-contact-box {
  display: flex;
  flex-direction: row;
}

.footer-contact .sub-contact-item {
  margin-top: 0;
  margin-left: 1.18vw;
}

.footer-contact .sub-contact-item:first-child {
  margin-left: 0;
}

.footer-contact .sub-contact-access {
  width: 9.5vw;
}

.footer-hours {
  width: 33.19vw;
  margin-top: 6.67vw;
  margin-left: 2.78vw;
}

.footer-map {
  margin-top: 2.92vw;
}

.footer-map iframe {
  width: 100%;
  height: 25.76vw;
  display: block;
  border: 0;
}

.footer-links {
  display: block;
  margin-top: 2.64vw;
}

.footer-list {
  margin-top: 1.81vw;
}

.footer-list ul {
  width: 62.85vw;
  display: flex;
  justify-content: space-between;
  margin: 0 auto;
}

.footer-list ul li a {
  font-size: 0.82vw;
  font-weight: 600;
  line-height: 2.86;
  letter-spacing: 0.06em;
}

.copy-right {
  width: 100%;
  height: 2.78vw;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #f5c89e;
  margin-top: 2.85vw;
}

.copy-right p {
  font-size: 0.76vw;
  font-weight: 500;
  color: #fff;
}

/* お知らせ内容 1100で可変 */
.single-container {
  width: 100%;
  padding: 4.17vw 0;
}

.single-box {
  width: 69.44vw;
  margin: 0 auto;
}

.single-title {
  font-size: 1.89vw;
  font-weight: 600;
  margin-bottom: 2.08vw;
  line-height: 1.4;
}

.single-img {
  width: 100%;
  max-width: 41.67vw;
  margin-bottom: 2.78vw;
}

.single-img img {
  width: 100%;
  height: auto;
  display: block;
}

.single-content {
  font-size: 0.94vw;
  line-height: 1.8;
  color: #333;
}

.single-content img {
  max-width: 100%;
  height: auto;
}

@media screen and (max-width: 767px) {
  /* 全体 */
  html {
    scroll-padding-top: 13.33vw;
  }

  #header,
  .pc {
    display: none;
  }

  .sp {
    display: block;
  }

  .fade-up {
    transform: translateY(5.33vw);
  }

  /* ========================================
    共通パーツ
  ======================================== */

  /* ナビ（SPではフッター内の縦並び） */
  .sub-nav > nav > ul {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
  }

  .sub-nav > nav > ul > li {
    position: relative;
    padding: 0;
    margin-top: 0.8vw;
  }

  .sub-nav > nav > ul > li:first-child {
    padding-left: 0;
    margin-top: 0;
  }

  .sub-nav > nav > ul > li:last-child {
    padding-right: 0;
  }

  .sub-nav > nav > ul > li + li::before {
    display: none;
  }

  .sub-nav > nav > ul > li > a {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }

  .sub-nav-ja {
    font-size: 4vw;
    font-weight: 600;
    line-height: 2.67;
    letter-spacing: 0.06em;
  }

  .sub-nav-en {
    display: none;
  }

  .sub-nav-label {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    cursor: default;
  }

  .sub-nav-parent::after,
  .sub-nav-dropdown {
    display: none;
  }

  /* 予約・問い合わせボタン */
  .sub-contact-item {
    width: 54.4vw;
    height: 21.33vw;
    border: 0.27vw solid #333;
  }

  .sub-contact-item a {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }

  .sub-contact-label {
    height: 7.73vw;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #ffbe00;
    border-radius: 24.8vw;
    padding: 0 2.67vw;
  }

  .sub-contact-label p {
    font-size: 3.73vw;
    font-weight: 500;
    color: #fff;
    line-height: 1;
    letter-spacing: 0.06em;
  }

  .sub-contact-note p {
    font-size: 3.73vw;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.06em;
  }

  .sub-contact-main {
    display: flex;
    align-items: center;
  }

  .sub-contact-tel .sub-contact-main {
    margin-top: 2.93vw;
  }

  .sub-contact-web .sub-contact-main {
    margin-top: 4.27vw;
  }

  .sub-contact-tel .sub-contact-icon {
    width: 5.07vw;
  }

  .sub-contact-web .sub-contact-icon {
    width: 5.87vw;
  }

  .sub-contact-access .sub-contact-icon {
    width: 6.13vw;
  }

  .sub-contact-tel .sub-contact-text {
    margin-left: 1.6vw;
  }

  .sub-contact-web .sub-contact-text {
    margin-left: 1.87vw;
  }

  .sub-contact-access .sub-contact-text {
    margin-left: 2.93vw;
  }

  .sub-contact-text p {
    font-size: 5.33vw;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.06em;
  }

  .sub-contact-tel .sub-contact-text p {
    font-size: 6.4vw;
    letter-spacing: 0.03em;
  }

  /* 診療時間 */
  .sub-hours-table table {
    width: 100%;
    border: 0.19vw solid #f5c89e;
    border-collapse: collapse;
  }

  .sub-hours-table table th {
    height: 10.93vw;
    font-size: 3.2vw;
    font-weight: 600;
    color: #fff;
    letter-spacing: 0.06em;
    text-align: center;
    background-color: #f5c89e;
  }

  .sub-hours-table table td {
    height: 10.8vw;
    font-size: 3.2vw;
    font-weight: 600;
    color: #f5c89e;
    letter-spacing: 0.06em;
    text-align: center;
  }

  .sub-hours-table table th:first-child,
  .sub-hours-table table td:first-child {
    width: 28vw;
    text-align: left;
    padding-left: 1.07vw;
  }

  .sub-hours-table table td:first-child {
    color: #333;
  }

  .sub-hours-table table tr:last-child td {
    border-top: 0.19vw solid #f5c89e;
  }

  .sub-hours-text {
    padding-left: 1.07vw;
    margin-top: 2.67vw;
  }

  .sub-hours-text p {
    font-size: 3.47vw;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0.06em;
  }

  /* 下部固定バー */
  .sub-fixed {
    width: 100%;
    position: fixed;
    right: auto;
    bottom: 0;
    left: 0;
    z-index: 90;
  }

  .sub-fixed-box {
    display: flex;
  }

  .sub-fixed-item {
    width: 28.27vw;
    height: 17.33vw;
    background-color: #fff;
    border: 0.27vw solid #333;
  }

  .sub-fixed-item:nth-child(n+2) {
    margin-left: -0.27vw;
  }

  .sub-fixed-item:nth-child(3) {
    width: 26.67vw;
  }

  .sub-fixed-item a {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }

  .sub-fixed-icon-tel {
    width: 5.07vw;
  }

  .sub-fixed-icon-web {
    width: 5.87vw;
  }

  .sub-fixed-icon-access {
    width: 4.8vw;
  }

  .sub-fixed-text {
    margin-top: 3.47vw;
  }

  .sub-fixed-item:nth-child(2) .sub-fixed-text {
    margin-top: 4.27vw;
  }

  .sub-fixed-item:nth-child(3) .sub-fixed-text {
    margin-top: 2.93vw;
  }

  .sub-fixed-text p {
    font-size: 4.8vw;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.06em;
  }

  .sub-fixed-item:nth-child(1) .sub-fixed-text p {
    font-size: 5.33vw;
    letter-spacing: 0.03em;
  }

  .sub-fixed-top {
    width: 17.33vw;
    height: 17.33vw;
    background-color: #ffbe00;
    border-radius: 0;
    opacity: 1;
    visibility: visible;
  }

  .sub-fixed-top a {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    padding-top: 2.13vw;
  }

  .sub-fixed-top a::before {
    width: 4.53vw;
    height: 4.53vw;
    transform: rotate(45deg);
    border-top: 0.93vw solid #fff;
    border-left: 0.93vw solid #fff;
  }

  /* ========================================
    ヘッダー
  ======================================== */
  .sp-header {
    width: 100%;
    height: 13.33vw;
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999;
  }

  .sp-header-inner {
    height: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 0.8vw 0 2.93vw;
  }

  .sp-header-logo {
    width: 40vw;
  }

  /* ハンバーガーボタン */
  .sp-menu-btn {
    width: 11.73vw;
    height: 11.73vw;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: relative;
    z-index: 1000;
    background-color: #f5c89e;
    border: none;
    cursor: pointer;
  }

  .sp-menu-btn span {
    width: 6.13vw;
    height: 0.53vw;
    display: block;
    background-color: #fff;
    transition: 0.3s;
    margin-top: 1.07vw;
  }

  .sp-menu-btn span:first-child {
    margin-top: 0;
  }

  .sp-menu-btn .sp-menu-btn-text {
    width: auto;
    height: auto;
    font-size: 2.13vw;
    font-weight: 700;
    color: #fff;
    line-height: 1;
    background-color: transparent;
    margin-top: 1.07vw;
  }

  .sp-menu-btn.is-active span:nth-child(1) {
    transform: translateY(1.6vw) rotate(45deg);
  }

  .sp-menu-btn.is-active span:nth-child(2) {
    opacity: 0;
  }

  .sp-menu-btn.is-active span:nth-child(3) {
    transform: translateY(-1.6vw) rotate(-45deg);
  }

  /* 全画面メニュー */
  .sp-header-nav {
    width: 100%;
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    position: fixed;
    top: 0;
    right: -100%;
    z-index: 999;
    overflow-y: auto;
    background-color: rgba(255, 255, 255, 0.97);
    transition: 0.4s;
  }

  .sp-header-nav.is-active {
    right: 0;
  }

  .sp-nav-list {
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .sp-nav-list li {
    margin-top: 6.67vw;
  }

  .sp-nav-list li:first-child {
    margin-top: 0;
  }

  .sp-nav-list li a {
    font-size: 4.8vw;
    font-weight: 600;
    color: #333;
    letter-spacing: 0.06em;
  }

  .sp-nav-list {
    padding: 21.33vw 0;
    margin: auto 0;
  }

  /* SPメニュー：診療案内（開閉式） */
  .sp-nav-toggle {
    display: flex;
    align-items: center;
    font-family: "Noto Serif JP", serif;
    font-size: 4.8vw;
    font-weight: 600;
    color: #333;
    letter-spacing: 0.06em;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    margin: 0 auto;
  }

  .sp-nav-toggle::after {
    content: "";
    width: 2.13vw;
    height: 2.13vw;
    display: block;
    transform: rotate(45deg);
    border-right: 0.53vw solid #f5c89e;
    border-bottom: 0.53vw solid #f5c89e;
    transition: transform 0.3s;
    margin-top: -1.07vw;
    margin-left: 2.13vw;
  }

  .sp-nav-toggle.is-open::after {
    transform: rotate(225deg);
    margin-top: 1.07vw;
  }

  .sp-nav-sub {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s;
  }

  .sp-nav-sub.is-open {
    max-height: 133.33vw;
  }

  .sp-nav-sub ul {
    width: 64vw;
    background-color: #fff2e7;
    padding: 2.13vw 5.33vw 4.27vw;
    margin: 4.27vw auto 0;
  }

  .sp-nav-sub ul li {
    text-align: center;
    margin-top: 0;
    padding-top: 2.13vw;
  }

  .sp-nav-sub ul li + li {
    border-top: 0.27vw dashed #f5c89e;
    margin-top: 2.13vw;
  }

  .sp-nav-sub ul li a {
    font-size: 4.27vw;
    font-weight: 600;
    color: #333;
    letter-spacing: 0.06em;
  }

  /* ========================================
    トップページ
  ======================================== */

  /* --- p1-a メインビュー --- */
  .p1-a-container {
    width: 100%;
    height: 192vw;
    position: relative;
    overflow: hidden;
  }

  .p1-a-slider {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
  }

  .p1-a-slide {
    width: 100%;
    height: 100%;
    background-position: center;
    background-size: cover;
  }

  /* SP用のスライド画像（2枚目・3枚目は sp-back2.webp / sp-back3.webp を image/ に置く） */
  .p1-a-slide1 {
    background-image: url(../image/sp-back1.webp);
  }

  .p1-a-slide2 {
    background-image: url(../image/sp-back2.webp);
  }

  .p1-a-slide3 {
    background-image: url(../image/sp-back3.webp);
  }

  .p1-a-box {
    width: 100%;
    height: 100%;
    position: relative;
  }

  .p1-a-catch {
    position: absolute;
    top: 68.8vw;
    left: 2.93vw;
  }

  .p1-a-title h1 {
    font-size: 8.53vw;
    font-weight: 700;
    color: #fff;
    line-height: 1.66;
    letter-spacing: 0;
    text-shadow: 0 1.07vw 1.07vw rgba(0, 0, 0, 0.25);
  }

  .p1-a-text {
    width: 88vw;
    margin-top: 5.33vw;
    margin-left: 3.2vw;
  }

  .p1-a-text p {
    font-size: 4.27vw;
    font-weight: 800;
    color: #fff;
    line-height: 1.88;
    letter-spacing: 0.06em;
    white-space: normal;
    text-shadow: 0 1.07vw 1.07vw rgba(0, 0, 0, 0.25);
  }

  /* --- p1-b お知らせ・診療時間 --- */
  .p1-b {
    padding-top: 0;
  }

  .p1-b-container {
    display: flex;
    flex-direction: column;
  }

  .p1-b-news {
    width: 100%;
    background-color: #fff2e7;
    padding: 10.33vw 0;
  }

  .p1-b-info {
    width: 100%;
    background-color: #f5c89e;
    padding: 5.6vw 0 10.87vw;
  }

  .p1-b-box {
    width: 89.33vw;
    height: auto;
    background-color: #fff;
    padding: 5.33vw 4.8vw 8vw;
    margin: 0 auto;
  }

  .p1-b-info .p1-b-box {
    height: auto;
    padding: 6.67vw 4.8vw 8vw;
  }

  .p1-b-title {
    text-align: center;
  }

  .p1-b-title-en h2 {
    font-size: 10.67vw;
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: 0.06em;
  }

  .p1-b-title-ja {
    margin-top: 2.4vw;
  }

  .p1-b-info .p1-b-title-ja {
    margin-top: 2.93vw;
  }

  .p1-b-title-ja p {
    font-size: 5.33vw;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.06em;
  }

  .p1-b-list {
    width: 100%;
    height: 40vw;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    margin-top: 6vw;
    margin-left: 0;
  }

  .p1-b-list::-webkit-scrollbar {
    width: 1.33vw;
  }

  .p1-b-list::-webkit-scrollbar-track {
    background-color: transparent;
  }

  .p1-b-list::-webkit-scrollbar-thumb {
    background-color: #fff2e7;
  }

  .p1-b-item {
    width: 76.8vw;
    padding-top: 3.27vw;
  }

  .p1-b-item::after {
    width: 100%;
    height: 0.27vw;
    background-image: linear-gradient(to right, #ffbe00 0.53vw, transparent 0.53vw);
    background-size: 1.6vw 0.27vw;
    margin-top: 5.6vw;
  }

  .p1-b-date {
    width: 32vw;
    height: 9.07vw;
    border-radius: 15.73vw;
    margin-left: 0;
  }

  .p1-b-date p {
    font-size: 4.27vw;
    font-weight: 600;
    color: #fff;
    line-height: 1.2;
    letter-spacing: 0.06em;
  }

  .p1-b-text {
    padding-left: 0;
    margin-top: 7.2vw;
  }

  .p1-b-text p {
    font-size: 4.27vw;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.06em;
  }

  .p1-b-hours {
    width: 100%;
    margin: 8.8vw auto 0;
  }

  /* --- p1-c 特徴 --- */
  .p1-c {
    padding-top: 10.93vw;
  }

  .p1-c-visual {
    width: 100%;
    height: 65.07vw;
    background-position: 86% 49%;
    padding-top: 17.07vw;
  }

  .p1-c-catch {
    width: 79.56vw;
    height: 15.35vw;
    margin-left: 15.1vw;
  }

  .p1-c-catch:nth-child(2) {
    margin-top: 5.01vw;
    margin-left: 5.33vw;
  }

  .p1-c-catch-ja p {
    font-size: 5.58vw;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.06em;
  }

  .p1-c-catch-en {
    margin-top: 1.12vw;
  }

  .p1-c-catch-en p {
    font-size: 2.79vw;
    font-weight: 600;
    color: #f5c89e;
    line-height: 1.2;
    letter-spacing: 0.06em;
  }

  .p1-c-title {
    margin-top: -5.6vw;
  }

  .p1-c-title-en h2 {
    font-size: 17.07vw;
    font-weight: 600;
    color: #f5c89e;
    line-height: 1.2;
    letter-spacing: 0.06em;
  }

  .p1-c-title-ja {
    margin-top: 1.39vw;
  }

  .p1-c-title-ja p {
    font-size: 6.4vw;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.06em;
  }

  .p1-c-box {
    width: 89.33vw;
    margin: 16.27vw auto 0;
  }

  .p1-c-item {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    margin-top: 18.4vw;
  }

  .p1-c-item:first-child {
    margin-top: 0;
  }

  .p1-c-label {
    width: 100%;
    text-align: center;
    margin-top: 8vw;
  }

  .p1-c-label p {
    font-family: "Noto Serif JP", serif;
    font-size: 6.4vw;
    font-weight: 600;
    color: #f5c89e;
    line-height: 1.2;
    letter-spacing: 0.06em;
    writing-mode: horizontal-tb;
  }

  .p1-c-body {
    width: 100%;
    display: block;
    margin-left: 0;
  }

  .p1-c-item-title::before {
    width: 82.93vw;
    height: 0.53vw;
    margin: 5.6vw auto 0;
  }

  .p1-c-item-title h3 {
    font-size: 6.4vw;
    font-weight: 600;
    line-height: 1.7;
    letter-spacing: 0.06em;
    padding-left: 2.67vw;
    margin-top: 5.33vw;
  }

  .p1-c-text {
    width: 100%;
    padding-left: 0;
    margin-top: 8vw;
    margin-left: 0;
  }

  .p1-c-text p {
    font-size: 4.27vw;
    font-weight: 600;
    line-height: 2;
    letter-spacing: 0.06em;
  }

  .p1-c-imgs {
    width: 100%;
    display: block;
    order: -1;
    margin-top: 0;
    margin-left: 0;
  }

  .p1-c-img {
    width: 100%;
    margin-top: 4.27vw;
    margin-left: 0;
  }

  .p1-c-img:first-child {
    margin-top: 0;
  }

  /* FEATURE 01 */
  .p1-c-item:nth-child(1) .p1-c-img:nth-child(1) {
    width: 76.53vw;
    margin-top: 0;
    margin-left: 12.8vw;
  }

  .p1-c-item:nth-child(1) .p1-c-img:nth-child(2) {
    width: 76.53vw;
    margin-top: 4.43vw;
    margin-left: 0;
  }

  /* FEATURE 02 */
  .p1-c-item:nth-child(2) .p1-c-imgs {
    width: 100%;
    order: -1;
    margin-top: 0;
    margin-left: 0;
  }

  .p1-c-item:nth-child(2) .p1-c-img {
    width: 100%;
  }

  .p1-c-item:nth-child(2) .p1-c-label {
    margin-left: 0;
  }

  .p1-c-item:nth-child(2) .p1-c-body {
    width: 100%;
    margin-left: 0;
  }

  .p1-c-item:nth-child(2) .p1-c-item-title::before {
    margin-top: 5.6vw;
  }

  .p1-c-item:nth-child(2) .p1-c-item-title h3 {
    padding-left: 0;
    margin-top: 5.33vw;
  }

  .p1-c-item:nth-child(3) .p1-c-item-title h3 {
    text-align: center;
    padding-left: 0;
  }

  .p1-c-item:nth-child(2) .p1-c-text {
    padding-left: 0;
    margin-top: 8vw;
  }

  /* FEATURE 03 */
  .p1-c-item:nth-child(3) .p1-c-imgs {
    width: 100%;
    margin-top: 0;
    margin-left: 0;
  }

  .p1-c-item:nth-child(3) .p1-c-img {
    width: 100%;
  }

  .p1-c-item:nth-child(3) .p1-c-text {
    margin-top: 8vw;
  }

  /* FEATURE 04 */
  .p1-c-item:nth-child(4) {
    flex-wrap: nowrap;
  }

  .p1-c-item:nth-child(4) .p1-c-imgs {
    width: 100%;
    display: block;
    order: -1;
    margin-left: 0;
  }

  .p1-c-item:nth-child(4) .p1-c-img {
    width: 100%;
  }

  .p1-c-item:nth-child(4) .p1-c-label {
    margin-top: 8vw;
  }

  .p1-c-item:nth-child(4) .p1-c-body {
    width: 100%;
    display: block;
    margin-top: 0;
    margin-left: 0;
  }

  .p1-c-item:nth-child(4) .p1-c-item-title {
    width: 100%;
  }

  .p1-c-item:nth-child(4) .p1-c-text {
    width: 100%;
    padding-left: 0;
    margin-top: 8vw;
    margin-left: 0;
  }

  .p1-c-tag {
    width: 66.93vw;
    height: 8.8vw;
    display: flex;
    align-items: center;
    position: absolute;
    right: 0;
    bottom: 5.2vw;
    background-color: #fff;
    border-radius: 1.33vw 0 0 1.33vw;
    padding-left: 5.87vw;
  }

  .p1-c-img:nth-child(3) .p1-c-tag {
    padding-left: 3.73vw;
  }

  .p1-c-tag p {
    font-size: 4vw;
    font-weight: 600;
    line-height: 2;
    letter-spacing: 0.06em;
    white-space: nowrap;
  }

  .p1-c-tag p span {
    font-size: 3.47vw;
    color: #f5c89e;
  }

  /* --- p1-d 診療内容 --- */
  .p1-d {
    padding-top: 15.47vw;
  }

  .p1-d-title {
    text-align: center;
  }

  .p1-d-title-en h2 {
    font-size: 17.07vw;
    font-weight: 600;
    color: #f5c89e;
    line-height: 0.88;
    letter-spacing: 0.06em;
  }

  .p1-d-title-ja {
    margin-top: 3.47vw;
  }

  .p1-d-title-ja p {
    font-size: 6.4vw;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.06em;
  }

  .p1-d-box {
    width: 89.33vw;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: 8.8vw auto 0;
  }

  .p1-d-item {
    width: 43.49vw;
    height: 58.38vw;
    position: relative;
    border: 0.27vw solid #c18c5b;
  }

  .p1-d-item:nth-child(n+3),
  .p1-d-item:nth-child(n+5) {
    margin-top: 5.87vw;
  }

  .p1-d-item::after {
    width: 3.13vw;
    height: 3.13vw;
    right: 1.07vw;
    bottom: 1.07vw;
  }

  .p1-d-item a {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 6.07vw;
  }

  .p1-d-img {
    width: 28vw;
  }

  .p1-d-name {
    margin-top: 3.33vw;
  }

  .p1-d-name h3 {
    font-size: 4.8vw;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.06em;
  }

  .p1-d-text {
    margin-top: 3.33vw;
  }

  .p1-d-text p {
    font-size: 3.2vw;
    font-weight: 600;
    color: #f5c89e;
    line-height: 1.2;
    letter-spacing: 0.06em;
  }

  /* --- p1-e 院内ギャラリー（無限ループ） --- */
  .p1-e {
    padding-top: 15.47vw;
  }

  .p1-e-title {
    text-align: center;
  }

  .p1-e-title h2 {
    font-size: 8.34vw;
    font-weight: 600;
    color: transparent;
    line-height: 0.7;
    letter-spacing: 0.02em;
    white-space: nowrap;
    -webkit-text-stroke: 0.27vw #f5c89e;
  }

  .p1-e-box {
    width: 100%;
    overflow: hidden;
    margin-top: 5.83vw;
  }

  .p1-e-track {
    width: max-content;
    display: flex;
    align-items: flex-start;
    animation: p1-e-loop 30s linear infinite;
  }

  .p1-e-img {
    width: 33.94vw;
    margin-right: 2.53vw;
  }

  .p1-e-img:nth-child(6n+1),
  .p1-e-img:nth-child(6n+3),
  .p1-e-img:nth-child(6n+5) {
    margin-top: 9.57vw;
  }

  .p1-e-img:nth-child(6n+2),
  .p1-e-img:nth-child(6n+4) {
    width: 27.04vw;
  }

  /* --- p1-f メッセージ --- */
  .p1-f {
    padding-top: 17.33vw;
  }

  .p1-f-box {
    width: 100%;
    display: flex;
    flex-direction: column;
    position: relative;
    margin: 0;
  }

  .p1-f-img {
    width: 100%;
    position: relative;
  }

  .p1-f-img::after {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background: linear-gradient(182deg, rgba(0, 0, 0, 0) 63%, rgba(0, 0, 0, 0.58) 95.3%);
  }

  .p1-f-content {
    width: 100%;
    height: auto;
    background: linear-gradient(rgba(0, 0, 0, 0.65), rgba(0, 0, 0, 0.65)), url(../image/p1-back5.webp) 50% 0 / 186.86vw auto no-repeat #fff;
    padding: 0 5.33vw 9.6vw;
  }

  .p1-f-title {
    position: relative;
    z-index: 1;
    text-align: center;
    margin-top: -18.13vw;
  }

  .p1-f-title-en h2 {
    font-size: 10.67vw;
    font-weight: 600;
    color: #f5c89e;
    line-height: 0.85;
    letter-spacing: 0.06em;
  }

  .p1-f-title-ja {
    margin-top: 8.27vw;
  }

  .p1-f-title-ja h3 {
    font-size: 6.4vw;
    font-weight: 600;
    color: #fff;
    line-height: 1.42;
    letter-spacing: 0;
    white-space: nowrap;
  }

  .p1-f-text {
    width: 100%;
    margin-top: 7.73vw;
  }

  .p1-f-text p {
    font-size: 4.27vw;
    font-weight: 600;
    color: #fff;
    line-height: 2.13;
    letter-spacing: 0.06em;
  }

  .p1-f-name {
    width: 82.13vw;
    height: 29.87vw;
    display: flex;
    flex-direction: column;
    align-items: center;
    position: absolute;
    top: 91.73vw;
    left: 9.33vw;
    z-index: 1;
    background-color: #fff;
    padding-top: 5.87vw;
    border: 0.53vw solid #f5c89e;
  }

  .p1-f-name-ja p {
    font-size: 9.6vw;
    font-weight: 700;
    color: #f5c89e;
    line-height: 0.94;
    letter-spacing: 0.06em;
  }

  .p1-f-name-ja p .p1-f-name-role {
    font-size: 8vw;
    font-weight: 700;
    color: #f5c89e;
  }

  .p1-f-name-en {
    margin-top: 1.6vw;
  }

  .p1-f-name-en p {
    font-size: 6.4vw;
    font-weight: 600;
    color: #d69c66;
    line-height: 1.42;
    letter-spacing: 0.06em;
  }

  /* ========================================
    下層ページ共通メインビュー
  ======================================== */
  .sub-mv-container {
    width: 100%;
    height: 64vw;
    background-position: 50% 60%;
    background-size: cover;
    padding-top: 25.6vw;
    margin: 0 auto;
  }

  .sub-mv-box {
    text-align: center;
  }

  .sub-mv-title h1 {
    font-size: 8.53vw;
    font-weight: 700;
    color: #fff;
    line-height: 1.6;
    letter-spacing: 0.06em;
  }

  .sub-mv-text {
    margin-top: 1.07vw;
  }

  .sub-mv-text p {
    font-size: 5.33vw;
    font-weight: 400;
    color: #fff;
    line-height: 1.2;
    letter-spacing: 0.06em;
  }

  /* ========================================
    下層ページ共通セクションタイトル
  ======================================== */
  .sub-title {
    text-align: center;
  }

  .sub-title-sub p {
    font-size: 5.33vw;
    font-weight: 600;
    color: #f5c89e;
    line-height: 1.2;
    letter-spacing: 0.06em;
  }

  .sub-title-sub + .sub-title-en {
    margin-top: 1.6vw;
  }

  .sub-title-en h2 {
    font-size: 10.67vw;
    font-weight: 600;
    color: #ff8511;
    line-height: 0.88;
    letter-spacing: 0.06em;
  }

  .sub-title-en + .sub-title-ja {
    margin-top: 1.07vw;
  }

  .sub-title-ja h2 {
    font-size: 8vw;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: 0.06em;
  }

  .sub-title-ja p {
    font-size: 6.4vw;
    font-weight: 600;
    line-height: 1.46;
    letter-spacing: 0.06em;
  }

  .sub-title-dots {
    width: 24.53vw;
    margin: 4.27vw auto 0;
  }

  .sub-title-en + .sub-title-dots {
    margin-top: 4.27vw;
  }

  .sub-title-main + .sub-title-dots {
    margin-top: 5.33vw;
  }

  .sub-title-lead {
    width: 89.33vw;
    margin: 4.27vw auto 0;
  }

  .sub-title-lead p {
    font-size: 4.27vw;
    font-weight: 600;
    line-height: 1.6;
    letter-spacing: 0.06em;
  }

  .sub-title-large h2 {
    font-size: 17.07vw;
    font-weight: 600;
    color: #f5c89e;
    line-height: 0.95;
    letter-spacing: 0.06em;
  }

  .sub-title-large + .sub-title-ja {
    margin-top: 4.27vw;
  }

  .sub-title-large + .sub-title-ja p {
    line-height: 1.2;
  }

  .sub-title-large + .sub-title-ja + .sub-title-dots {
    margin-top: 4.27vw;
  }

  /* ========================================
    医院紹介（page-clinic.php）
  ======================================== */

  /* --- p2-a 院長紹介・ごあいさつ --- */
  .p2-a {
    padding-top: 16vw;
  }

  .p2-a-visual {
    width: 100%;
    height: 65.07vw;
    background-position: 70% 40%;
    background-size: cover;
    padding-top: 17.07vw;
    margin-top: 6.4vw;
  }

  .p2-a-catch {
    width: 79.56vw;
    height: 15.35vw;
    margin-left: 15.1vw;
  }

  .p2-a-catch:nth-child(2) {
    margin-top: 5.01vw;
    margin-left: 5.33vw;
  }

  .p2-a-catch-ja p {
    font-size: 5.58vw;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.06em;
  }

  .p2-a-catch-en {
    margin-top: 1.12vw;
  }

  .p2-a-catch-en p {
    font-size: 2.79vw;
    font-weight: 600;
    color: #f5c89e;
    line-height: 1.2;
    letter-spacing: 0.06em;
  }

  .p2-a-box {
    width: 100%;
    position: relative;
    z-index: 1;
    margin-top: -2.4vw;
  }

  .p2-a-label {
    padding-left: 5.33vw;
  }

  .p2-a-label p {
    font-size: 17.07vw;
    font-weight: 600;
    color: #f5c89e;
    line-height: 0.54;
    letter-spacing: 0.06em;
  }

  .p2-a-subtitle {
    padding-left: 5.33vw;
    margin-top: 5.33vw;
  }

  .p2-a-subtitle h3 {
    font-size: 6.4vw;
    font-weight: 600;
    line-height: 1.46;
    letter-spacing: 0.06em;
  }

  .p2-a-text {
    width: 89.33vw;
    margin: 6.4vw auto 0;
  }

  .p2-a-text p {
    font-size: 4.27vw;
    font-weight: 600;
    line-height: 2;
    letter-spacing: 0.06em;
  }

  /* --- p2-b 経歴 --- */
  .p2-b {
    padding-top: 16vw;
  }

  .p2-b-container {
    background-color: #fff2e7;
    padding: 10.67vw 0;
  }

  .p2-b-box {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-left: 0;
  }

  .p2-b-img {
    width: 89.33vw;
  }

  .p2-b-content {
    width: 89.33vw;
    padding-top: 0;
    margin-top: 10.67vw;
    margin-left: 0;
  }

  .p2-b-title {
    display: flex;
    align-items: flex-end;
    padding-bottom: 2.13vw;
    border-bottom: 0.27vw solid #ff8511;
  }

  .p2-b-title-ja h2 {
    font-size: 6.4vw;
    font-weight: 600;
    line-height: 1.17;
    letter-spacing: 0.06em;
  }

  .p2-b-title-en {
    margin-left: 4.27vw;
  }

  .p2-b-title-en p {
    font-size: 4.27vw;
    font-weight: 600;
    color: #ff8511;
    line-height: 1.2;
    letter-spacing: 0.06em;
  }

  .p2-b-table {
    width: 100%;
    margin-top: 4.27vw;
    margin-left: 0;
  }

  .p2-b-table table th,
  .p2-b-table table td {
    height: 12vw;
    font-size: 3.47vw;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0.06em;
    text-align: left;
    vertical-align: middle;
    border-bottom: 0.27vw dashed #a9a9a9;
  }

  .p2-b-table table th {
    width: 36vw;
    white-space: nowrap;
    padding-left: 1.07vw;
  }

  .p2-b-name {
    width: 82.13vw;
    height: 29.87vw;
    padding-top: 5.87vw;
    border: 0.53vw solid #f5c89e;
    margin: 8vw auto 0;
  }

  .p2-b-name-ja p {
    font-size: 9.6vw;
    font-weight: 700;
    color: #f5c89e;
    line-height: 0.94;
    letter-spacing: 0.06em;
  }

  .p2-b-name-ja p .p2-b-name-role {
    font-size: 8vw;
    font-weight: 700;
    color: #f5c89e;
  }

  .p2-b-name-en {
    margin-top: 1.6vw;
  }

  .p2-b-name-en p {
    font-size: 6.4vw;
    font-weight: 600;
    color: #d69c66;
    line-height: 1.42;
    letter-spacing: 0.06em;
  }

  /* --- p2-c Q&A --- */
  .p2-c {
    padding-top: 16vw;
  }

  .p2-c-box {
    width: 89.33vw;
    margin: 5.33vw auto 0;
  }

  .p2-c-item {
    margin-top: 2.67vw;
  }

  .p2-c-item:first-child {
    margin-top: 0;
  }

  .p2-c-item::after {
    border-top: 0.53vw dashed #00b5ee;
    margin-top: 8vw;
  }

  .p2-c-card {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding-top: 8vw;
  }

  .p2-c-body {
    width: 100%;
  }

  .p2-c-question {
    display: flex;
    align-items: flex-start;
    border-bottom: 0.27vw solid #ff8511;
  }

  .p2-c-mark {
    width: 6.67vw;
    margin-right: 3.2vw;
  }

  .p2-c-mark p {
    font-size: 8vw;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.06em;
  }

  .p2-c-answer .p2-c-mark p {
    color: #00b5ee;
    line-height: 0.94;
  }

  .p2-c-question-text {
    width: 79.47vw;
  }

  .p2-c-question-text h3 {
    font-size: 4.8vw;
    font-weight: 600;
    line-height: 2;
    letter-spacing: 0.06em;
  }

  .p2-c-item:nth-child(4) .p2-c-question {
    align-items: flex-start;
  }

  .p2-c-item:nth-child(4) .p2-c-question-text h3 {
    line-height: 2;
  }

  .p2-c-answer {
    display: flex;
    align-items: flex-start;
    margin-top: 4.27vw;
  }

  .p2-c-text {
    width: 79.47vw;
  }

  .p2-c-text p {
    font-size: 4.27vw;
    font-weight: 600;
    line-height: 2;
    letter-spacing: 0.06em;
  }

  .p2-c-img {
    width: 100%;
    margin-top: 6.4vw;
    margin-left: 0;
  }

  /* --- p2-d ストリートビュー --- */
  .p2-d {
    padding-top: 16vw;
  }

  .p2-d-box {
    width: 89.33vw;
    margin: 0 auto;
  }

  .p2-d-box iframe {
    width: 100%;
    height: 68.23vw;
    display: block;
    border: 0;
  }

  /* --- p2-e アクセス --- */
  .p2-e {
    padding-top: 16vw;
  }

  .p2-e-box {
    width: 89.33vw;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    margin: 8vw auto 0;
  }

  .p2-e-img {
    width: 100%;
  }

  .p2-e-info {
    width: 100%;
    margin-top: 8vw;
    margin-left: 0;
  }

  .p2-e-table table th,
  .p2-e-table table td {
    height: 13.33vw;
    font-size: 3.73vw;
    font-weight: 600;
    line-height: 1.5;
    text-align: left;
    vertical-align: middle;
    border-bottom: 0.27vw dashed #a9a9a9;
  }

  .p2-e-table table th {
    width: 26.67vw;
    white-space: nowrap;
    padding-left: 1.07vw;
  }

  .p2-e-table table td {
    padding-right: 1.07vw;
  }

  .p2-e-route {
    margin-top: 8vw;
  }

  .p2-e-route-item {
    display: flex;
    align-items: center;
    margin-top: 1.87vw;
  }

  .p2-e-route-item:first-child {
    margin-top: 0;
  }

  .p2-e-route-icon {
    width: 6.4vw;
  }

  .p2-e-route-item:nth-child(2) .p2-e-route-icon {
    width: 7.2vw;
  }

  .p2-e-route-text {
    margin-left: 4.27vw;
  }

  .p2-e-route-item:nth-child(2) .p2-e-route-text {
    margin-left: 3.47vw;
  }

  .p2-e-route-text p {
    font-size: 4.27vw;
    font-weight: 600;
    line-height: 2.19;
  }

  .p2-e-bottom {
    width: 89.33vw;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    margin: 10.67vw auto 0;
  }

  .p2-e-hours {
    width: 100%;
    margin-left: 0;
  }

  .p2-e-map {
    width: 100%;
    margin-top: 8vw;
  }

  .p2-e-map iframe {
    width: 100%;
    height: 73.33vw;
    display: block;
    border: 0;
  }

  /* ========================================
    診療案内ページ（page-dental-*.php）：下層共通パーツ＋小児歯科ページ（p5-）
  ======================================== */

  /* --- sub-intro 下層共通：診療紹介 --- */
  .sub-intro {
    padding-top: 16vw;
  }

  .sub-info + .sub-intro,
  .sub-trouble + .sub-intro {
    padding-top: 21.33vw;
  }

  .sub-intro-box {
    width: 89.33vw;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    margin: 8vw auto 0;
  }

  .sub-intro-body {
    width: 100%;
  }

  .sub-intro-title h3 {
    font-size: 5.07vw;
    font-weight: 600;
    line-height: 1.6;
    letter-spacing: 0.02em;
  }

  .sub-intro-text {
    margin-top: 5.33vw;
  }

  .sub-intro-text p {
    font-size: 4.27vw;
    font-weight: 600;
    line-height: 2;
    letter-spacing: 0.06em;
  }

  .sub-intro-img {
    width: 100%;
    margin-top: 8vw;
  }

  .sub-intro-reverse .sub-intro-box {
    flex-direction: column;
  }

  .sub-intro-reverse .sub-intro-img {
    margin-top: 8vw;
  }

  .sub-intro-list {
    width: 100%;
    margin-top: 4.27vw;
    margin-left: 0;
  }

  .sub-intro-list ul li {
    display: flex;
    align-items: center;
    font-size: 4.27vw;
    font-weight: 600;
    line-height: 2.75;
    letter-spacing: 0.06em;
    border-bottom: 0.27vw dashed #a9a9a9;
  }

  .sub-intro-list ul li::before {
    width: 3.73vw;
    height: 4.27vw;
    margin-right: 3.2vw;
  }

  /* --- sub-trouble 下層共通：お悩みリスト（TROUBLE） --- */
  .sub-trouble {
    padding-top: 16vw;
  }

  .sub-trouble-title {
    position: relative;
    z-index: 1;
    text-align: center;
  }

  .sub-trouble-title h2 {
    font-size: 12.8vw;
    font-weight: 600;
    color: #ff8511;
    line-height: 0.55;
    letter-spacing: 0.06em;
  }

  .sub-trouble-container {
    background-color: #fff2e7;
    padding: 8vw 0 8.53vw;
    margin-top: 0.8vw;
  }

  .sub-trouble-lead {
    width: 89.33vw;
    text-align: center;
    margin: 0 auto;
  }

  .sub-trouble-lead h3 {
    font-size: 4.8vw;
    font-weight: 600;
    line-height: 1.6;
    letter-spacing: 0.06em;
  }

  .sub-trouble-box {
    width: 89.33vw;
    background-color: #fff;
    padding: 5.33vw;
    margin: 5.33vw auto 0;
  }

  .sub-trouble-list ul {
    display: grid;
    grid-template-columns: 1fr;
    column-gap: 0;
    row-gap: 3.2vw;
  }

  .sub-trouble-list ul li {
    display: flex;
    align-items: flex-start;
    font-size: 4.27vw;
    font-weight: 600;
    line-height: 1.6;
    letter-spacing: 0.06em;
    white-space: normal;
  }

  .sub-trouble-list ul li::before {
    width: 5.33vw;
    height: 5.33vw;
    margin-top: 0.8vw;
    margin-right: 3.2vw;
  }

  .sub-trouble-dots {
    width: 100%;
    position: relative;
    margin-top: -0.53vw;
  }

  .sub-trouble-text {
    width: 89.33vw;
    text-align: center;
    margin: 5.33vw auto 0;
  }

  .sub-trouble-text p {
    font-size: 4.27vw;
    font-weight: 600;
    line-height: 1.8;
    letter-spacing: 0.06em;
  }

  /* --- p5-c 特徴（FEATURE） --- */
  .p5-c {
    padding-top: 16vw;
  }

  .p5-c-box {
    width: 89.33vw;
    margin: 8vw auto 0;
  }

  .p5-c-item {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    margin-top: 10.67vw;
  }

  .p5-c-item:first-child {
    margin-top: 0;
  }

  .p5-c-item:nth-child(even) {
    flex-direction: column;
  }

  .p5-c-body {
    width: 100%;
    margin-top: 5.33vw;
  }

  .p5-c-label {
    display: flex;
    align-items: center;
    padding: 2.67vw;
    border-bottom: 0.27vw solid #ffbe00;
  }

  .p5-c-label-icon {
    width: 5.33vw;
  }

  .p5-c-label-text {
    margin-left: 2.67vw;
  }

  .p5-c-label-text p {
    font-size: 8vw;
    font-weight: 600;
    color: #ffbe00;
    line-height: 0.63;
    letter-spacing: 0.04em;
  }

  .p5-c-label-text p .p5-c-label-small {
    font-size: 4.8vw;
    color: #ffbe00;
  }

  .p5-c-title {
    margin-top: 4.27vw;
  }

  .p5-c-title h3 {
    font-size: 5.87vw;
    font-weight: 600;
    line-height: 1.6;
    letter-spacing: 0.06em;
  }

  .p5-c-text {
    width: 100%;
    margin-top: 4.27vw;
  }

  .p5-c-text p {
    font-size: 4.27vw;
    font-weight: 600;
    line-height: 2;
    letter-spacing: 0.06em;
  }

  .p5-c-img {
    width: 100%;
    order: -1;
  }

  /* --- p5-d 診療内容 --- */
  .p5-d {
    padding-top: 16vw;
  }

  .p5-d-box {
    width: 89.33vw;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: 8vw auto 0;
  }

  .p5-d-item {
    width: 43.47vw;
    height: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 5.33vw 2.67vw;
    border: 0.53vw solid #ff8511;
    border-radius: 5.87vw;
  }

  .p5-d-item:nth-child(n+3) {
    margin-top: 3.2vw;
  }

  .p5-d-name {
    display: flex;
    align-items: center;
  }

  .p5-d-name-icon {
    width: 4.27vw;
  }

  .p5-d-name-text {
    margin-left: 1.6vw;
  }

  .p5-d-name-text h3 {
    font-size: 3.73vw;
    font-weight: 600;
    line-height: 1.46;
    letter-spacing: 0.04em;
    white-space: nowrap;
  }

  .p5-d-img {
    width: 28vw;
    margin-top: 3.2vw;
  }

  .p5-d-text {
    width: 100%;
    margin-top: 3.2vw;
  }

  .p5-d-text p {
    font-size: 3.47vw;
    font-weight: 600;
    line-height: 1.69;
    letter-spacing: 0.04em;
  }

  /* --- sub-info 下層共通：案内ボックス（黄色い見出しバー＋白枠） --- */
  .sub-info {
    padding-top: 16vw;
  }

  .sub-info-box {
    width: 89.33vw;
    margin: 0 auto;
  }

  .sub-info-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 5.33vw 4vw 8vw;
    margin-top: 5.33vw;
  }

  .sub-info-item:first-child {
    margin-top: 0;
  }

  .sub-info-head {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 4.27vw 2.67vw;
  }

  .sub-info-head-icon {
    width: 6.4vw;
    flex-shrink: 0;
  }

  .sub-info-head-title {
    margin-left: 3.2vw;
  }

  .sub-info-head-title h3 {
    font-size: 5.33vw;
    font-weight: 600;
    color: #fff;
    line-height: 1.3;
    letter-spacing: 0.06em;
  }

  .sub-info-lead {
    width: 100%;
    margin-top: 5.33vw;
  }

  .sub-info-lead p {
    font-size: 4.8vw;
    font-weight: 600;
    line-height: 1.7;
    letter-spacing: 0.06em;
  }

  .sub-info-text {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 4vw;
    margin-top: 5.33vw;
  }

  .sub-info-text p {
    width: 100%;
    font-size: 4.27vw;
    font-weight: 600;
    line-height: 2;
    letter-spacing: 0.06em;
  }

  .sub-info-narrow .sub-info-text {
    width: 100%;
    padding: 4vw;
  }

  .sub-info-narrow .sub-info-text p {
    width: 100%;
  }

  .sub-info-list {
    width: 100%;
    padding-bottom: 3.2vw;
    border-bottom: 0.27vw dashed #5b413a;
  }

  .sub-info-list ul li {
    display: flex;
    align-items: flex-start;
    font-size: 4.27vw;
    font-weight: 600;
    line-height: 1.8;
    letter-spacing: 0.06em;
  }

  .sub-info-list ul li + li {
    margin-top: 2.13vw;
  }

  .sub-info-list ul li::before {
    width: 5.33vw;
    height: 5.33vw;
    margin-top: 1.07vw;
    margin-right: 2.67vw;
  }

  .sub-info-note {
    margin-top: 3.2vw;
  }

  .sub-info-note p {
    width: 100%;
  }

  /* ========================================
    料金表（page-price.php）
  ======================================== */
  .p7-a {
    padding-top: 16vw;
  }

  .sub-title-main + .sub-title-dots + .sub-title-lead {
    margin-top: 5.33vw;
  }

  .p7-a-box {
    width: 89.33vw;
    margin: 10.67vw auto 0;
  }

  .p7-a-item {
    margin-top: 16vw;
  }

  .p7-a-item:first-child {
    margin-top: 0;
  }

  .p7-a-head {
    display: flex;
    align-items: center;
    padding-bottom: 2.67vw;
    border-bottom: 0.53vw solid #ff8511;
  }

  .p7-a-head-icon {
    width: 6.67vw;
  }

  .p7-a-head-title {
    margin-left: 3.2vw;
  }

  .p7-a-head-title h2 {
    font-size: 5.33vw;
    font-weight: 700;
    line-height: 1.46;
    letter-spacing: 0.06em;
  }

  .p7-a-table {
    margin-top: 4.27vw;
  }

  .p7-a-table table th,
  .p7-a-table table td {
    font-size: 3.47vw;
    font-weight: 600;
    line-height: 1.8;
    letter-spacing: 0.04em;
    text-align: center;
    vertical-align: middle;
    border: 0.27vw solid #5b413a;
  }

  .p7-a-table table tr:first-child th {
    font-size: 4.8vw;
    font-weight: 700;
    color: #000;
    line-height: 1.46;
    text-align: left;
    padding: 2.67vw;
  }

  .p7-a-table table tr:nth-child(2) th {
    height: auto;
    padding: 2.67vw 1.6vw;
  }

  .p7-a-table table tr:nth-child(2) th:first-child {
    width: 42vw;
    text-align: left;
    padding-left: 2.67vw;
  }

  .p7-a-table table tr:nth-child(2) th:nth-child(2) {
    width: 22vw;
  }

  .p7-a-table table tr:nth-child(3) td {
    height: auto;
    padding: 3.2vw 1.6vw;
  }

  .p7-a-table table tr:nth-child(3) td:first-child {
    text-align: left;
    padding-left: 2.67vw;
  }

  .p7-a-table table tr:nth-child(3) td p + p {
    margin-top: 2.67vw;
  }

  .p7-a-table table tr:nth-child(4) th {
    height: auto;
    text-align: left;
    padding: 2.67vw;
  }

  .p7-a-table table tr:nth-child(5) td {
    text-align: left;
    padding: 4vw 3.2vw;
  }

  .p7-a-risk {
    border: 0.27vw solid #5b413a;
    margin: 0;
  }

  .p7-a-risk-title {
    height: auto;
    padding: 2.67vw 3.2vw;
    border-bottom: 0.27vw solid #5b413a;
  }

  .p7-a-risk-title p {
    font-size: 3.73vw;
    font-weight: 600;
    line-height: 1.6;
    letter-spacing: 0.04em;
  }

  .p7-a-risk-list {
    padding: 4.27vw 3.2vw;
  }

  .p7-a-risk-list ul li {
    display: flex;
    align-items: flex-start;
    font-size: 3.73vw;
    font-weight: 600;
    line-height: 1.8;
    letter-spacing: 0.04em;
    margin-top: 3.2vw;
  }

  .p7-a-risk-list ul li:first-child {
    margin-top: 0;
  }

  .p7-a-risk-list ul li::before {
    width: 4.27vw;
    height: 4.27vw;
    margin-top: 1.2vw;
    margin-right: 2.13vw;
  }

  .p7-a-doctor {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 5.33vw 4vw 6.4vw;
    margin: 8vw auto 0;
  }

  .p7-a-doctor-title h3 {
    font-size: 5.33vw;
    font-weight: 600;
    color: #5b413a;
    line-height: 1.75;
    letter-spacing: 0.06em;
  }

  .p7-a-doctor-text {
    width: 100%;
    padding: 3.2vw 4.27vw;
    margin-top: 4.27vw;
  }

  .p7-a-doctor-text p {
    font-size: 3.73vw;
    font-weight: 600;
    line-height: 2;
    letter-spacing: 0.04em;
  }

  /* ========================================
    フッター
  ======================================== */
  .footer-container {
    position: relative;
    padding-bottom: 17.33vw;
    margin-top: 18.4vw;
  }

  .footer-back {
    width: 100%;
    height: 102.93vw;
    background-position: 36% 100%;
  }

  .footer-box {
    width: 89.33vw;
    position: relative;
    padding-top: 78.13vw;
    margin: 0 auto;
  }

  .footer-info {
    width: 100%;
    height: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    background-color: #fff;
    padding-bottom: 10.4vw;
  }

  .footer-info-main {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 15.47vw;
    margin-left: 0;
  }

  .footer-logo {
    width: 78.93vw;
  }

  .footer-address {
    text-align: center;
    margin-top: 10.13vw;
  }

  .footer-address p {
    font-size: 3.2vw;
    font-weight: 600;
    line-height: 1.42;
  }

  .footer-contact {
    margin-top: 10.13vw;
  }

  .footer-contact .sub-contact-box {
    display: flex;
    flex-direction: column;
  }

  .footer-contact .sub-contact-item {
    margin-top: 3.47vw;
    margin-left: 0;
  }

  .footer-contact .sub-contact-item:first-child {
    margin-top: 0;
    margin-left: 0;
  }

  .footer-contact .sub-contact-access {
    width: 54.4vw;
  }

  .footer-hours {
    width: 72.8vw;
    margin-top: 10.67vw;
    margin-left: 0;
  }

  .footer-map {
    margin-top: 0;
  }

  .footer-map iframe {
    width: 100%;
    height: 73.33vw;
    display: block;
    border: 0;
  }

  .footer-links {
    display: flex;
    margin-top: 1.6vw;
  }

  .footer-nav {
    width: 36.8vw;
  }

  .footer-list {
    margin-top: 0;
  }

  .footer-list ul {
    width: 52.53vw;
    display: grid;
    grid-template-columns: 29.33vw auto;
    grid-template-rows: repeat(4, auto);
    grid-auto-flow: column;
    margin: 0;
  }

  .footer-list ul li a {
    font-size: 3.73vw;
    font-weight: 600;
    line-height: 3.64;
    letter-spacing: 0.02em;
    white-space: nowrap;
  }

  .copy-right {
    width: 100%;
    height: 16vw;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #f5c89e;
    margin-top: 4.53vw;
  }

  .copy-right p {
    font-size: 4.27vw;
    font-weight: 500;
    color: #fff;
  }

  /* お知らせ内容 1100で可変 */
  .single-container {
    width: 100%;
    padding: 10.67vw 0;
  }

  .single-box {
    width: 94%;
    margin: 0 auto;
  }

  .single-title {
    font-size: 5.33vw;
    font-weight: 600;
    margin-bottom: 5.33vw;
    line-height: 1.4;
  }

  .single-img {
    width: 100%;
    max-width: 106.67vw;
    margin-bottom: 8vw;
  }

  .single-img img {
    width: 100%;
    height: auto;
    display: block;
  }

  .single-content {
    font-size: 4.27vw;
    line-height: 1.8;
    color: #333;
  }

  .single-content img {
    max-width: 100%;
    height: auto;
  }
}
