/* ============================================================
   お知らせ 詳細（single.php）／ 一覧（archive.php）
   下層ページ（c-mv + l-sub + サイドバー）に揃えた紺基調デザイン。
   レイアウト土台（.c-mv / .l-sub / .l-sub__main / .l-sub__side）は
   sub.css を共用し、ここでは記事本文・一覧カード・ページャのみ定義する。
============================================================ */

/* ===== 詳細（single） ===== */
.p-single__head {
  margin-bottom: clamp(24px, 2.8vw, 40px);
}
.p-single__meta {
  display: flex;
  align-items: center;
  gap: clamp(10px, 1.1vw, 16px);
  margin-bottom: clamp(14px, 1.4vw, 20px);
}
.p-single__date {
  color: #fff;
  font-size: clamp(14px, 1.11vw, 16px);
  letter-spacing: 0.08em;
}
.p-single__cat {
  display: inline-block;
  background: #113b7a;
  color: #fff;
  font-size: clamp(12px, 0.97vw, 14px);
  letter-spacing: 0.06em;
  line-height: 1.2;
  padding: clamp(4px, 0.5vw, 7px) clamp(10px, 1.1vw, 16px);
}
.p-single__title {
  color: #fff;
  font-size: clamp(20px, 2.08vw, 30px);
  letter-spacing: 0.06em;
  line-height: 1.4;
  padding-bottom: clamp(14px, 1.5vw, 20px);
  border-bottom: 2px solid rgba(17, 59, 122, 0.25);
}
.p-single__thumb {
  margin: 0 0 clamp(24px, 2.8vw, 40px);
}
.p-single__thumb img {
  width: 100%;
  display: block;
}

/* 本文（the_content の WP ブロックを整える） */
.p-single__body {
  font-size: clamp(15px, 1.25vw, 18px);
  line-height: 1.95;
}
.p-single__body > * + * {
  margin-top: 1.4em;
}
.p-single__body h2 {
  position: relative;
  font-size: clamp(18px, 1.667vw, 24px);
  letter-spacing: 0.06em;
  line-height: 1.4;
  color: #113b7a;
  padding-left: clamp(12px, 1.1vw, 16px);
  border-left: 5px solid #113b7a;
  margin-top: 1.8em;
}
.p-single__body h3 {
  font-size: clamp(16px, 1.389vw, 20px);
  letter-spacing: 0.04em;
  line-height: 1.5;
  color: #113b7a;
  padding-bottom: 0.4em;
  border-bottom: 1px solid rgba(17, 59, 122, 0.25);
  margin-top: 1.6em;
}
.p-single__body h4 {
  font-size: clamp(15px, 1.25vw, 18px);
  line-height: 1.5;
  color: #113b7a;
  margin-top: 1.4em;
}
.p-single__body a {
  color: #113b7a;
  text-decoration: underline;
}
.p-single__body img {
  max-width: 100%;
  height: auto;
}
.p-single__body ul,
.p-single__body ol {
  padding-left: 1.4em;
}
.p-single__body ul li {
  list-style: disc;
}
.p-single__body ol li {
  list-style: decimal;
}
.p-single__body li + li {
  margin-top: 0.4em;
}
.p-single__body blockquote {
  background: #f2f5f9;
  border-left: 4px solid #113b7a;
  padding: clamp(14px, 1.6vw, 22px) clamp(16px, 1.8vw, 26px);
  color: #555;
}
.p-single__body table {
  width: 100%;
  border-collapse: collapse;
}
.p-single__body th,
.p-single__body td {
  border: 1px solid #d9d9d9;
  padding: clamp(8px, 1vw, 14px) clamp(10px, 1.2vw, 16px);
  text-align: left;
  vertical-align: top;
}
.p-single__body th {
  background: #f2f5f9;
  color: #113b7a;
  white-space: nowrap;
}

/* 一覧へ戻るボタン */
.p-single__foot {
  margin-top: clamp(40px, 5vw, 70px);
  text-align: center;
}
.c-backbtn {
  display: inline-flex;
  align-items: center;
  gap: clamp(10px, 1vw, 14px);
  background: #113b7a;
  color: #fff;
  font-size: clamp(14px, 1.25vw, 18px);
  letter-spacing: 0.08em;
  line-height: 1;
  padding: clamp(14px, 1.4vw, 20px) clamp(30px, 3.4vw, 50px);
  border-radius: 999px;
  transition: opacity 0.3s;
}
.c-backbtn:hover {
  opacity: 0.8;
}
.c-backbtn__arrow {
  position: relative;
  width: clamp(18px, 1.8vw, 24px);
  height: 1px;
  background: #fff;
  flex: 0 0 auto;
}
.c-backbtn__arrow::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 7px;
  height: 7px;
  border-left: 1px solid #fff;
  border-bottom: 1px solid #fff;
  transform: translateY(-50%) rotate(45deg);
}

/* ===== 一覧（archive） ===== */
.p-archive__list {
  display: flex;
  flex-direction: column;
}
.p-archive__item {
  display: flex;
  align-items: center;
  gap: clamp(16px, 1.8vw, 26px);
  padding: clamp(18px, 2vw, 28px) 0;
  border-bottom: 1px solid rgba(17, 59, 122, 0.18);
  transition: opacity 0.3s;
}
.p-archive__list .p-archive__item:first-child {
  border-top: 1px solid rgba(17, 59, 122, 0.18);
}
.p-archive__item:hover {
  opacity: 0.75;
}
.p-archive__thumb {
  flex: 0 0 auto;
  width: clamp(120px, 14vw, 200px);
  aspect-ratio: 5 / 3;
  overflow: hidden;
}
.p-archive__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.p-archive__body {
  display: flex;
  flex-direction: column;
  gap: clamp(8px, 0.9vw, 12px);
  min-width: 0;
}
.p-archive__date {
  color: #113b7a;
  font-size: clamp(13px, 1.11vw, 16px);
  letter-spacing: 0.08em;
}
.p-archive__ttl {
  font-size: clamp(15px, 1.25vw, 18px);
  line-height: 1.6;
}
.p-archive__empty {
  font-size: clamp(15px, 1.25vw, 18px);
}

/* ページャ（the_posts_pagination） */
.p-archive__pager {
  margin-top: clamp(36px, 4vw, 60px);
}
.p-archive__pager .nav-links {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: clamp(6px, 0.7vw, 10px);
}
.p-archive__pager .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: clamp(38px, 3vw, 44px);
  height: clamp(38px, 3vw, 44px);
  padding: 0 clamp(10px, 1vw, 14px);
  border: 1px solid #113b7a;
  color: #113b7a;
  font-size: clamp(14px, 1.11vw, 16px);
  letter-spacing: 0.04em;
  line-height: 1;
  transition:
    background 0.3s,
    color 0.3s;
}
.p-archive__pager .page-numbers.current,
.p-archive__pager .page-numbers:hover {
  background: #113b7a;
  color: #fff;
}
.p-archive__pager .page-numbers.dots {
  border-color: transparent;
}

/* ===== SP（375基準・下層と同じ 680px で切替） ===== */
@media screen and (max-width: 680px) {
  .p-single__title {
    font-size: 22px;
  }
  .p-single__body {
    font-size: 15px;
  }
  .p-archive__item {
    gap: 14px;
  }
  .p-archive__thumb {
    width: 34.6vw; /* 130/375 */
  }
  .p-archive__ttl {
    font-size: 15px;
  }
}
/*-------hd------*/
/* 追従ヘッダー：FV前は absolute（上部固定）／FV通過後は .is-fixed で fixed。
   ヘッダー分の高さは body の padding-top で確保（JS: custom_bodys_end.js が実測値をセット。
   下記 padding-top は JS 実行前のフォールバック） */
body {
  padding-top: clamp(80px, 9vw, 128px);
}
/* トップはFVを全面表示（ヘッダー分の余白を確保しない） */
body.home {
  padding-top: 0;
}
.l-header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  background: #14264a;
  color: #fff;
}
.l-header.is-fixed {
  position: fixed;
  animation: l-header-down 0.4s ease;
}
@keyframes l-header-down {
  from {
    transform: translateY(-100%);
  }
  to {
    transform: translateY(0);
  }
}
.l-header__inner {
  max-width: 1440px;
  margin-inline: auto;
  padding: clamp(8px, 1vw, 14px) clamp(16px, 2.8vw, 40px);
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-areas:
    "copy    contact"
    "brand   gnav";
  align-items: center;
  row-gap: clamp(6px, 0.9vw, 12px);
  column-gap: clamp(16px, 3vw, 48px);
}
.l-header__copy {
  grid-area: copy;
  font-size: clamp(11px, 0.9vw, 13px);
  letter-spacing: 0.04em;
}
/* 連絡先（TEL＋WEB予約） */
.l-header__contact {
  grid-area: contact;
  justify-self: end;
  display: flex;
  align-items: center;
  gap: clamp(12px, 1.6vw, 24px);
}
.l-header__tel {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: clamp(18px, 1.94vw, 28px);
  letter-spacing: 0.02em;
  line-height: 1;
}
.l-header__tel svg {
  width: 0.9em;
  height: 0.9em;
  flex: 0 0 auto;
}
.l-header__tel a {
  color: #fff;
}
.l-header__web {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #1a355e;
  border: 1px solid rgba(255, 255, 255, 0.6);
  color: #fff;
  font-size: clamp(13px, 1.11vw, 16px);
  letter-spacing: 0.04em;
  padding: clamp(9px, 1vw, 14px) clamp(18px, 2vw, 30px);
}
.l-header__web svg {
  width: 1.4em;
  height: 1.4em;
  flex: 0 0 auto;
}
.l-header__web::after {
  content: "";
  position: absolute;
  right: 5px;
  bottom: 5px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 0 9px 9px;
  border-color: transparent transparent #fff transparent;
}
/* ロゴ＋医院名 */
.l-header__brand {
  grid-area: brand;
  display: flex;
  align-items: center;
  gap: clamp(10px, 1.3vw, 18px);
  color: #fff;
}
.l-header__logo {
  flex: 0 0 auto;
  width: clamp(54px, 6.9vw, 100px);
  aspect-ratio: 1;
  display: block;
}
.l-header__logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.l-header__name-lg {
  display: block;
  font-size: clamp(20px, 2.5vw, 36px);
  letter-spacing: 0.06em;
  line-height: 1.1;
}
.l-header__name-lg small {
  font-size: 0.5em;
  letter-spacing: 0.15em;
  margin-left: 0.4em;
}
.l-header__name-sm {
  display: block;
  font-size: clamp(11px, 1.05vw, 15px);
  letter-spacing: 0.14em;
  text-align: center;
  margin-top: 0.3em;
}
/* グローバルナビ */
.l-header__gnav {
  grid-area: gnav;
  justify-self: end;
  display: flex;
  align-items: center;
  gap: clamp(16px, 2.4vw, 44px);
}
.l-header__gnav a {
  color: #fff;
  font-size: clamp(13px, 1.11vw, 16px);
  letter-spacing: 0.06em;
  white-space: nowrap;
}
.l-header__gnav a:hover {
  opacity: 0.75;
}
/* 下部の区切り線（右側） */
.l-header__inner::after {
  content: "";
  grid-area: contact;
  align-self: end;
  justify-self: stretch;
  height: 1px;
  background: rgba(255, 255, 255, 0.4);
  margin-top: clamp(4px, 0.6vw, 8px);
}
/* 追従時（PCのみ）：上段のキャッチ／区切り線を省いて1行化し、高さを抑える */
@media screen and (min-width: 821px) {
  .l-header.is-fixed .l-header__copy,
  .l-header.is-fixed .l-header__name-sm,
  .l-header.is-fixed .l-header__inner::after {
    display: none;
  }
  .l-header.is-fixed .l-header__inner {
    grid-template-columns: auto 1fr auto;
    grid-template-areas: "brand gnav contact";
    row-gap: 0;
    column-gap: clamp(16px, 2.4vw, 40px);
    padding-block: clamp(6px, 0.7vw, 10px);
  }
  .l-header.is-fixed .l-header__gnav {
    justify-self: end;
  }
  .l-header.is-fixed .l-header__logo {
    width: clamp(40px, 4vw, 56px);
  }
  .l-header.is-fixed .l-header__name-lg {
    font-size: clamp(16px, 1.6vw, 22px);
  }
  .l-header.is-fixed .l-header__tel {
    font-size: clamp(16px, 1.45vw, 22px);
  }
  .l-header.is-fixed .l-header__web {
    padding: clamp(7px, 0.8vw, 10px) clamp(14px, 1.6vw, 22px);
  }
}
/* タブレット以下：ヘッダーの中身は出さず、ハンバーガーボタンのみ。
   追従の切り替え（is-fixed / スライドダウン）は使わず、常に固定表示 */
@media screen and (max-width: 820px) {
  body,
  body.home {
    padding-top: 0;
  }
  .l-header,
  .l-header.is-fixed {
    position: fixed;
    background: transparent;
    animation: none;
  }
  .l-header__inner {
    display: none;
  }
}
/*-------ft-----*/
/* フッターのスタイルは common.css に集約 */
/*-------fv------*/
.p-index-fv {
  position: relative;
  height: 55.56vw;
  max-height: 800px;
}
/* Splideをセクション全面に敷く（画像切替の挙動はいじらない） */
.p-index-fv .splide,
.p-index-fv .splide__track,
.p-index-fv .splide__list,
.p-index-fv .splide__slide {
  height: 100%;
}
.p-index-fv .splide img {
  width: 100%;
}
/* トップでは既存ヘッダーの通常表示は使わず、追従(is-fixed)だけ使用 */
@media screen and (min-width: 821px) {
  body.home .l-header:not(.is-fixed) {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
}
/* ロゴ＋タグライン */
.p-fv__head {
  position: absolute;
  z-index: 3;
  left: 1.04%;
  top: 1.875%;
  display: flex;
  align-items: flex-start;
  gap: clamp(12px, var(--px-30), 30px);
}
.p-fv__logo img {
  width: clamp(56px, var(--px-100), 100px);
  height: auto;
  object-fit: contain;
}
.p-fv__copy {
  margin-top: 0.2em;
  color: #123360;
  font-size: clamp(12px, var(--px-16), 16px);
  white-space: nowrap;
  text-shadow:
    0 0 4px rgba(255, 255, 255, 0.95),
    1px 1px 0 rgba(255, 255, 255, 0.95),
    -1px 1px 0 rgba(255, 255, 255, 0.95),
    1px -1px 0 rgba(255, 255, 255, 0.95),
    -1px -1px 0 rgba(255, 255, 255, 0.95);
}
/* キャッチコピー */
.p-fv__catch {
  position: absolute;
  z-index: 2;
  left: 0;
  top: 62.875%;
  width: 60.14%;
  height: 23.75%;
  background: rgba(255, 255, 255, 0.85);
  display: flex;
  align-items: center;
}
.p-fv__catch-text {
  padding-left: 5.55%;
  color: #123360;
  font-size: clamp(24px, var(--px-42), 42px);
  line-height: 1.4;
}
/* 医院概要パネル */
.p-fv__info {
  position: absolute;
  z-index: 3;
  left: 69.3%;
  bottom: 10%;
  width: 25.35%;
  height: auto;
  background: rgba(16, 44, 87, 0.7);
  color: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: clamp(10px, 0.76vw, 11px) clamp(16px, var(--px-40), 40px)
    clamp(16px, var(--px-30), 30px);
  gap: clamp(6px, 1.4vw, 15px);
}
.p-fv__name {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  line-height: 1;
  letter-spacing: 0.12em;
}
.p-fv__name-lg {
  font-size: clamp(36px, var(--px-64), 64px);
}
.p-fv__name-md {
  font-size: clamp(16px, var(--px-26), 26px);
  margin-top: 0.35em;
}
.p-fv__name-sm {
  font-size: clamp(13px, var(--px-16), 16px);
  letter-spacing: 0.05em;
  margin-top: 0.9em;
}
.p-fv__contact-label {
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(180px, 17vw, 245px);
  height: clamp(24px, 2.08vw, 30px);
  border: 1px solid #fff;
  font-size: clamp(13px, var(--px-16), 16px);
}
.p-fv__tel {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(6px, var(--px-12), 12px);
  font-size: clamp(20px, var(--px-28), 28px);
  letter-spacing: 0.06em;
  line-height: 1;
}
.p-fv__tel-ico img {
  width: clamp(18px, var(--px-24), 24px);
  height: auto;
  object-fit: contain;
}
.p-fv__tel a {
  color: #fff;
}
.p-fv__line {
  width: 100%;
  height: 1px;
  background: rgba(255, 255, 255, 0.8);
}
.p-fv__address {
  text-align: center;
  font-size: clamp(13px, var(--px-16), 16px);
  line-height: 1.6;
}
.p-fv__hours {
  width: 100%;
  font-size: clamp(13px, var(--px-16), 16px);
  line-height: 1.6;
}
/* FV情報パネル内の診療時間テーブル（フッターの c-foot-hours__table を流用・狭幅に最適化） */
.p-fv__hours .c-foot-hours__table th,
.p-fv__hours .c-foot-hours__table td {
  padding: clamp(3px, 0.45vw, 6px) 1px;
  font-size: clamp(11px, 0.9vw, 13px);
}
.p-fv__hours .c-foot-hours__head,
.p-fv__hours .c-foot-hours__time {
  width: 46%;
  font-size: clamp(10px, 0.78vw, 11px);
}
.p-fv__hours-note {
  font-size: clamp(12px, var(--px-14), 14px);
  margin-top: 0.3em;
}
.p-fv__web {
  position: relative;
  margin-top: auto;
  display: flex;
  align-items: center;
  gap: clamp(8px, var(--px-16), 16px);
  width: 100%;
  height: clamp(40px, 3.6vw, 52px);
  padding-inline: clamp(14px, var(--px-25), 25px);
  background: #fff;
  color: #333;
  font-size: clamp(14px, var(--px-18), 18px);
}
.p-fv__web::after {
  content: "";
  position: absolute;
  right: 10px;
  bottom: 8px;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 7px solid #333;
}
.p-fv__web-ico img {
  width: clamp(18px, var(--px-24), 24px);
  height: auto;
  object-fit: contain;
}
/* 下部グローバルナビ */
.p-fv__gnav {
  position: absolute;
  z-index: 3;
  left: 0;
  top: 90%;
  width: 100%;
  height: 10%;
  background: rgba(16, 44, 87, 0.8);
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-fv__gnav a {
  position: relative;
  color: #fff;
  font-size: clamp(13px, var(--px-16), 16px);
  letter-spacing: 0.08em;
  padding-inline: clamp(20px, var(--px-44), 44px);
}
.p-fv__gnav a::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 35px;
  background: rgba(255, 255, 255, 0.6);
}
.p-fv__gnav a:last-child::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 35px;
  background: rgba(255, 255, 255, 0.6);
}
/* ===== SP：FV（画像＋ロゴ＋キャッチ帯＋診療時間のみ／375基準） ===== */
@media screen and (max-width: 820px) {
  .p-index-fv {
    height: 192vw; /* 720/375 */
  }
  /* ロゴは表示・タグラインは非表示 */
  .p-fv__head {
    display: flex;
    left: 4vw;
    top: 4vw;
    align-items: flex-end;
  }
  .p-fv__copy {
    font-size: 12px;
  }
  body .p-fv__copy.u-ltext {
    font-size: 12px;
    border-bottom: 2px solid #123360;
  }
  .p-fv__logo img {
    width: 50px; /* 100/375 */
  }
  /* キャッチ帯：全幅 */
  .p-fv__catch {
    display: flex;
    top: 51.8%; /* 373/720 */
    width: 100%;
    height: 20.83%; /* 150/720 */
  }
  .p-fv__catch-text {
    line-height: 1.5;
  }
  /* 医院概要は診療時間のみ表示（診療時間テーブルを紺パネルで下敷き） */
  .p-fv__info {
    display: block;
    left: 4vw;
    top: 74%;
    width: 92vw;
    height: auto;
    background: none;
    padding: 0;
  }
  .p-fv__name,
  .p-fv__contact-label,
  .p-fv__tel,
  .p-fv__line,
  .p-fv__address,
  .p-fv__web {
    display: none;
  }
  .p-fv__hours {
    width: 100%;
    box-sizing: border-box;
    background: rgba(16, 44, 87, 0.82);
    padding: 3.2vw 3vw;
    font-size: 3.2vw;
  }
  .p-fv__hours .c-foot-hours__table {
    table-layout: fixed;
    width: 100%;
  }
  .p-fv__hours .c-foot-hours__table th,
  .p-fv__hours .c-foot-hours__table td {
    padding: 1.6vw 0;
    font-size: 3.2vw;
  }
  .p-fv__hours .c-foot-hours__head,
  .p-fv__hours .c-foot-hours__time {
    width: 41%;
    font-size: 2.6vw;
  }
  .p-fv__hours-note {
    font-size: 3vw; /* 12/375 */
  }
  /* 下部ナビは非表示（ハンバーガー使用） */
  .p-fv__gnav {
    display: none;
  }
}
/*-------news------*/
.p-news {
  padding-block: clamp(40px, var(--px-50), 50px);
}
.p-news__box {
  width: min(90%, 900px);
  margin-inline: auto;
  border: 1px solid #384f71;
  padding: clamp(30px, 3.6vw, 52px) clamp(24px, var(--px-58), 58px)
    clamp(30px, 3.6vw, 52px) clamp(28px, 9.24vw, 133px);
}
.p-news__head {
  letter-spacing: 0.1em;
  margin-bottom: clamp(20px, 2.64vw, 38px);
}
.p-news__head-en {
  font-size: clamp(26px, var(--px-36), 36px);
}
.p-news__head-ja {
  font-size: clamp(15px, var(--px-20), 20px);
}
.p-news__list {
  display: flex;
  flex-direction: column;
  gap: clamp(14px, var(--px-20), 20px);
}
.p-news__item {
  display: flex;
  align-items: center;
  gap: clamp(16px, var(--px-25), 25px);
}
.p-news__thumb {
  flex: 0 0 auto;
  width: clamp(120px, 12.15vw, 175px);
  height: clamp(72px, 7.29vw, 105px);
  overflow: hidden;
}
.p-news__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-news__body {
  display: flex;
  flex-direction: column;
  gap: clamp(8px, 1.25vw, 18px);
}
.p-news__date {
  font-size: clamp(14px, var(--px-18), 18px);
}
.p-news__title {
  font-size: clamp(14px, var(--px-18), 18px);
  line-height: 1.5;
}
.p-news__empty {
  font-size: clamp(14px, var(--px-18), 18px);
}
/* ===== SP：NEWS（縦積み／375基準） ===== */
@media screen and (max-width: 680px) {
  .p-news {
    padding-block: 40px;
  }
  .p-news__box {
    width: 93.34%; /* 350/375 */
    padding: 42px 15px;
  }
  .p-news__head {
    margin-bottom: 24px;
  }
  .p-news__head-en {
    font-size: 34px;
  }
  .p-news__head-ja {
    font-size: 18px;
  }
  .p-news__list {
    gap: 20px;
  }
  /* サムネ上→日付→タイトルの縦積み */
  .p-news__item {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }
  .p-news__thumb {
    width: 46.67vw; /* 175/375 */
    height: 28vw; /* 105/375 */
  }
  .p-news__date {
    font-size: 20px;
  }
  .p-news__title {
    font-size: 16px;
  }
}
/*-------information------*/
/* フロー組み：見出し → アクセスバー → チェックリスト。
   パネル・写真・縦バーは絶対配置（パネルは上下inset、右下写真は下寄せで高さに追従） */
.p-info {
  position: relative;
  padding-block: min(42px, 2.917vw) min(131px, 9.097vw);
  overflow: hidden;
}
.p-info__panel {
  position: absolute;
  z-index: 0;
  left: 0;
  top: min(33px, 2.292vw);
  bottom: min(33px, 2.292vw);
  width: 100%;
  background: #30476b;
}
/* 画像 */
.p-info__img {
  position: absolute;
  z-index: 2;
  object-fit: cover;
}
.p-info__img--tl {
  left: 0;
  top: 0;
  width: min(550px, 38.194vw);
  height: min(225px, 15.625vw);
}
.p-info__img--left {
  left: 0;
  top: min(225px, 15.625vw);
  width: min(250px, 17.361vw);
  height: min(315px, 21.875vw);
}
.p-info__img--br {
  right: 0;
  bottom: 0;
  width: min(570px, 39.583vw);
  height: min(360px, 25vw);
}
/* 見出し */
.p-info__title {
  position: relative;
  z-index: 3;
  margin-left: min(750px, 52.083vw);
  width: min(690px, 47.917vw);
  color: #fff;
}
.p-info__title-head {
  display: flex;
  align-items: baseline;
  gap: min(45px, var(--px-45));
  padding-left: min(17px, 1.181vw);
}
.p-info__title-en {
  font-size: min(42px, var(--px-42));
  letter-spacing: 0.02em;
  line-height: 1;
}
.p-info__title-i {
  font-size: min(64px, var(--px-64));
}
.p-info__title-ja {
  font-size: min(28px, var(--px-28));
  letter-spacing: 0.1em;
  line-height: 1;
}
.p-info__title-line {
  display: block;
  width: 100%;
  height: 1px;
  background: #fff;
  margin-top: min(28px, 1.944vw);
}
/* 縦書きバー（下端＝セクション下端） */
.p-info__vbar {
  position: absolute;
  z-index: 5;
  left: 12.292%;
  top: min(153px, 10.625vw);
  bottom: 0;
  width: 6.528%;
  background: #fff;
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-info__vbar-text {
  writing-mode: vertical-rl;
  text-orientation: upright;
  font-size: min(55px, 3.819vw);
  line-height: 1.15;
  color: #333;
  text-align: center;
  letter-spacing: 0.05em;
}
.p-info__vbar-accent {
  color: #113b7a;
}
.p-info__vbar-num {
  text-combine-upright: all;
  color: #113b7a;
}
/* チェックリスト */
.p-info__list {
  position: relative;
  z-index: 4;
  width: fit-content;
  margin: min(53px, 3.681vw) 0 0 clamp(313px, var(--px-331), 400px);
  display: flex;
  flex-direction: column;
  gap: min(21px, 1.458vw);
}
.p-info__item {
  display: flex;
  align-items: center;
  gap: min(24px, 1.667vw);
}
.p-info__check {
  flex: 0 0 auto;
  width: 27px;
  height: 27px;
}
.p-info__check img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.p-info__item-text {
  font-size: min(24px, var(--px-24));
  line-height: 1.1;
  white-space: nowrap;
}
.p-info__ul {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.16em;
}
/* アクセスバー */
.p-info__access {
  position: relative;
  z-index: 1;
  margin-top: min(25px, 1.736vw);
  width: 100%;
  height: min(90px, 6.25vw);
  background: linear-gradient(
    to right,
    #384f71 26.923%,
    #696d7a 51.923%,
    #384f71 74.038%
  );
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-right: 10%;
}
.p-info__access-inner {
  display: flex;
  align-items: center;
  gap: min(15px, 1.042vw);
}
.p-info__access-ico {
  flex: 0 0 auto;
  width: min(40px, var(--px-40));
  height: min(40px, var(--px-40));
  color: #fff;
}
.p-info__access-ico svg {
  width: 100%;
  height: 100%;
  display: block;
}
.p-info__access-body {
  display: flex;
  flex-direction: column;
  gap: min(6px, 0.42vw);
}
.p-info__access-line {
  font-size: min(20px, var(--px-20));
  letter-spacing: 0.1em;
  line-height: 1;
}
.p-info__access-pills {
  display: flex;
  gap: min(5px, 0.347vw);
}
.p-info__pill {
  display: flex;
  align-items: center;
  height: min(40px, var(--px-40));
  padding-inline: min(9px, 0.625vw);
  background: #fff;
  color: #333;
  font-size: min(28px, var(--px-28));
  letter-spacing: 0.06em;
  white-space: nowrap;
  line-height: 1;
}
.p-info__pill em {
  font-style: normal;
}
.p-info__pill small {
  font-size: min(20px, var(--px-20));
}
@media screen and (max-width: 820px) {
  .p-info__list {
    margin: min(53px, 3.681vw) 0 0 22.5%;
  }
}
/* ===== SP：INFORMATION（375×565で再配置） ===== */
@media screen and (max-width: 680px) {
  .p-info {
    /* 上の建物写真(129)＋余白(10)ぶんを空けてタイトルから流す */
    padding-block: 37.07vw 15.73vw;
  }
  /* ネイビーパネル：上33／下17 */
  .p-info__panel {
    top: 8.8vw;
    bottom: 4.53vw;
  }
  /* 建物写真(info-01)：上・全幅 w350 h129 */
  .p-info__img--tl {
    left: 0;
    top: 0;
    width: 93.34%;
    height: 34.4vw; /* 129/375 */
  }
  /* 中央ストリップ(info-02)はSP非表示 */
  .p-info__img--left {
    display: none;
  }
  /* 待合室写真(info-03)：右下 w178 h303 */
  .p-info__img--br {
    right: 0;
    bottom: 0;
    width: 47.47%;
    height: 65vw; /* 303/375 */
    object-position: left;
  }
  /* 夜19時 縦バー：右上 w50 h204 */
  .p-info__vbar {
    left: 80%;
    top: 0;
    bottom: auto;
    width: 13.33vw; /* 50/375 */
    height: 54.4vw; /* 204/375 */
  }
  .p-info__vbar-text {
    font-size: 22px;
  }
  /* INFORMATION タイトル：x13 w350 */
  .p-info__title {
    margin: 0 0 0 3.47%;
    width: 93.34%;
  }
  .p-info__title-head {
    gap: 16px;
    padding-left: 4px;
  }
  .p-info__title-en {
    font-size: 22px;
  }
  .p-info__title-i {
    font-size: 30px;
  }
  .p-info__title-ja {
    font-size: 14px;
  }
  .p-info__title-line {
    margin-top: 8px;
  }
  /* アクセスバー：h48 */
  .p-info__access {
    margin-top: 5.87vw; /* 22/375 */
    height: 12.8vw; /* 48/375 */
    justify-content: flex-start;
    padding-right: 0;
    padding-left: 2.5%;
  }
  .p-info__access-inner {
    gap: 8px;
  }
  .p-info__access-ico {
    width: 19px;
    height: 19px;
  }
  .p-info__access-line {
    font-size: 11px;
  }
  .p-info__access-pills {
    gap: 4px;
  }
  .p-info__pill {
    height: 19px;
    padding-inline: 4px;
    font-size: 13px;
  }
  .p-info__pill small {
    font-size: 11px;
  }
  /* チェックリスト：左下 x13 w199（各2行折返し） */
  .p-info__list {
    margin: 3.73vw 0 0 3.47%; /* 14/375 */
    width: 52%;
    gap: 12px;
  }
  .p-info__item {
    align-items: flex-start;
    gap: 8px;
  }
  .p-info__check {
    width: 14.4px;
    height: 14.4px;
    margin-top: 3px;
  }
  .p-info__item-text {
    font-size: 14px;
    line-height: 1.4;
    white-space: normal;
  }
}
/*-------team medical------*/
/* フロー組み：ヒーロー帯（アスペクト1440:540）→ 本体（パネル→カード）。
   高さは中身が決める。装飾は各ブロック基準の絶対配置 */
.p-team {
  position: relative;
  width: 100%;
  overflow: hidden;
}
/* タイトル帯（写真・帯・見出し・円形画像の土台） */
.p-team__hero {
  position: relative;
  z-index: 2;
  aspect-ratio: 1440 / 540;
}
/* padding で上端を作る（子のmarginが相殺で外に漏れるのを防ぐ） */
.p-team__body {
  position: relative;
  z-index: 1;
  padding-top: min(63px, 4.375vw);
}
/* 背景（下部の淡い画像） */
.p-team__bg {
  position: absolute;
  z-index: 0;
  left: 0;
  top: 0;
  width: 100%;
  height: min(1333px, 92.569vw);
  object-fit: cover;
  opacity: 0.3;
}
/* タイトル帯 */
.p-team__title-bg {
  position: absolute;
  z-index: 1;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-team__title-band {
  position: absolute;
  z-index: 1;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 35.185%; /* 190/540 */
  background: rgba(0, 0, 0, 0.25);
}
.p-team__title-en {
  position: absolute;
  z-index: 3;
  left: 51.806%;
  top: 15.556%; /* 84/540 */
  font-size: min(66px, 4.583vw);
  line-height: 1.2;
  letter-spacing: 0.02em;
}
.p-team__title-ja {
  position: absolute;
  z-index: 3;
  left: 12.917%;
  top: 71.111%; /* 384/540 */
  font-size: min(42px, 2.917vw);
  line-height: 1.45;
}
/* 導入：青パネル */
.p-team__panel {
  position: relative;
  z-index: 2;
  width: min(980px, 68.056vw);
  margin-left: min(137px, 9.514vw);
  background: #113b7a;
  padding: min(40px, 2.778vw) min(54px, 3.75vw);
}
.p-team__panel-tit {
  font-size: min(36px, 2.5vw);
  line-height: 1.3;
}
.p-team__panel-line {
  display: block;
  width: min(690px, 47.917vw);
  height: 1px;
  background: rgba(255, 255, 255, 0.85);
  margin-top: min(30px, 2.083vw);
}
.p-team__panel-text {
  margin-top: min(30px, 2.083vw);
  width: min(525px, 36.458vw);
  font-size: min(18px, 1.25vw);
  line-height: 1.7;
}
/* 導入：円形画像（ヒーロー基準／下のパネルに食い込む） */
.p-team__circle {
  position: absolute;
  z-index: 4;
  left: 46.736%;
  top: 53.333%; /* 288/540 */
  width: 43.75%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-team__circle img {
  width: 95.238%;
  height: 95.238%;
  border-radius: 50%;
  object-fit: cover;
}
/* PICK UP 4カード */
.p-team__cards {
  position: relative;
  z-index: 2;
  width: min(1147px, 79.653vw);
  margin: min(59px, 4.097vw) 0 0 min(147px, 10.208vw);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: min(25px, 1.736vw);
  row-gap: min(30px, 2.083vw);
}
.p-team__card {
  display: flex;
  flex-direction: column;
}
.p-team__card-head {
  position: relative;
  display: flex;
  align-items: center;
  gap: min(8px, 0.55vw);
  height: 80px;
  padding-left: min(17px, 1.181vw);
  overflow: hidden;
  /* #255585 70%・薄め。右辺を斜めにカット（下辺を2.41%内側へ） */
  background: rgba(37, 85, 133, 0.7);
  clip-path: polygon(0 0, 100% 0, 97.59% 100%, 0 100%);
  width: calc(100% + 15px);
}
.p-team__card-pickup {
  writing-mode: vertical-rl;
  flex: 0 0 auto;
  font-size: min(14px, 0.972vw);
  letter-spacing: 0.15em;
  color: rgba(255, 255, 255, 0.4);
}
.p-team__card-num {
  font-size: min(90px, 6.25vw);
  font-weight: 400;
  line-height: 1;
  color: rgba(255, 255, 255, 0.4);
}
.p-team__card-title {
  font-size: min(32px, 2.222vw);
  white-space: nowrap;
  display: inline-block;
  margin-left: -1em;
}
.p-team__card-img {
  display: block;
  width: 100%;
  height: min(322px, 22.361vw);
  overflow: hidden;
}
.p-team__card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-team__card-body {
  flex: 1;
  min-height: min(209px, 14.514vw);
  background: #fff;
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
  padding: min(35px, 2.431vw) min(47px, 3.264vw);
}
.p-team__card-body p {
  font-size: min(20px, 1.389vw);
  line-height: 1.75;
  color: #333;
}
.p-team__grid {
  position: absolute;
  z-index: 1;
  left: 0;
  width: 100%;
  background-image:
    repeating-linear-gradient(
      0deg,
      rgba(255, 255, 255, 0.08) 0 1px,
      transparent 1px 1.389vw
    ),
    repeating-linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.08) 0 1px,
      transparent 1px 1.389vw
    );
  bottom: clamp(60px, var(--px-120), 120px);
  height: 300px;
}
/* ===== SP：TEAM MEDICAL（縦フロー／375基準） ===== */
@media screen and (max-width: 680px) {
  .p-team {
    background: #102c57;
    padding-bottom: 10.7vw;
  }
  .p-team__body {
    padding-top: 0;
  }
  .p-team__bg {
    display: none;
  }
  /* ヒーローのアスペクト(8:3)＝37.5vw はSPの想定高さと同値なのでそのまま使う */
  .p-team__title-band {
    top: 24.3vw; /* 91/375 */
    bottom: auto;
    height: 13.2vw; /* 49.5/375 */
  }
  .p-team__title-en {
    top: 5.6vw;
    left: 51.8vw; /* 194/375 */
    font-size: 4.8vw;
  }
  .p-team__title-ja {
    top: 26.67vw; /* 100/375 */
    left: 12.9vw; /* 48/375 */
    font-size: 4.27vw;
  }
  /* 導入パネル（フロー） */
  .p-team__panel {
    width: 78.4vw; /* 294/375 */
    margin: 0;
    padding: 3.7vw 2.9vw;
  }
  .p-team__panel-tit {
    font-size: 4.27vw;
  }
  .p-team__panel-line {
    width: 55.2vw; /* 207/375 */
    margin-top: 3.2vw;
  }
  .p-team__panel-text {
    width: 52vw; /* 195/375 */
    font-size: 2.93vw; /* 11px */
    margin-top: 3.2vw;
  }
  /* 円形画像（パネル右に重ねる） */
  .p-team__circle {
    top: 41.87vw; /* 157/375 */
    left: 56.8vw; /* 213/375 */
    width: 45.3vw; /* 170/375 */
  }
  /* カード：1カラム縦積み */
  .p-team__cards {
    width: 93.3vw; /* 350/375 */
    margin: 6.1vw auto 0;
    grid-template-columns: 1fr;
    row-gap: 10.7vw;
  }
  .p-team__card {
    max-width: 92%;
    margin-inline: auto;
  }
  .p-team__card-head {
    height: 11.5vw; /* 43/375 */
    padding-left: 2.8vw;
    width: calc(100% + 8px);
  }
  .p-team__card-num {
    font-size: 9.6vw; /* 36 */
  }
  .p-team__card-title {
    font-size: 5.3vw; /* 20 */
  }
  .p-team__card-img {
    height: 53.6vw; /* 201/375 */
  }
  .p-team__card-body {
    min-height: 0;
    padding: 4.8vw 6.4vw;
  }
  .p-team__card-body p {
    font-size: 3.73vw; /* 14 */
  }
}
/*-------ideal teeth------*/
/* フロー組み（高さは中身が決める／1440基準の余白を min(px, vw) で指定）。
   背景・下帯だけ絶対配置で全幅に敷く */
.p-ideal {
  position: relative;
  width: 100%;
  padding-block: min(90px, 6.25vw) min(125px, 8.681vw);
  overflow: hidden;
}
.p-ideal__bg {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-ideal__overlay {
  position: absolute;
  z-index: 1;
  inset: 0;
  background: rgba(66, 109, 153, 0.8);
}
.p-ideal__strip {
  position: absolute;
  z-index: 1;
  left: 0;
  bottom: 0;
  width: 100%;
  height: min(23px, 1.597vw);
  background: rgba(16, 44, 87, 0.8);
}
/* タイトル */
.p-ideal__title {
  position: relative;
  z-index: 2;
  width: min(720px, 50vw);
  margin-inline: auto;
}
/* カード */
.p-ideal__cards {
  position: relative;
  z-index: 2;
  width: min(1005px, 69.792vw);
  margin: min(80px, 5.556vw) auto 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: min(45px, 3.125vw);
  row-gap: min(37px, 2.569vw);
}
.p-ideal__card {
  position: relative;
  aspect-ratio: 480 / 465;
  background: #fff;
  color: #333;
}
.p-ideal__badge {
  position: absolute;
  z-index: 1;
  top: -10px;
  left: -10px;
  width: clamp(100px, var(--px-173), 173px);
  aspect-ratio: 1;
  background: rgb(22 55 107 / 80%);
  clip-path: polygon(0 0, 100% 0, 0 100%);
}
.p-ideal__badge-label {
  font-family: "Metal", serif;
  position: absolute;
  z-index: 2;
  top: min(20px, 1.389vw);
  left: min(18px, 1.25vw);
  display: flex;
  flex-direction: column;
  line-height: 1;
  color: #fff;
}
.p-ideal__case {
  font-size: min(24px, 1.667vw);
  letter-spacing: 0.08em;
}
.p-ideal__num {
  font-size: min(64px, 4.444vw);
  font-weight: 400;
}
.p-ideal__name {
  position: absolute;
  z-index: 2;
  top: 8.39%;
  right: 3.1%;
  width: 54%;
  text-align: right;
  padding-bottom: min(6px, 0.42vw);
  border-bottom: 1px solid #333;
  font-size: min(20px, 1.389vw);
  line-height: 1;
}
.p-ideal__heading {
  position: absolute;
  z-index: 2;
  top: 21%;
  left: 26.875%;
  font-size: min(28px, 1.944vw);
  line-height: 1;
}
.p-ideal__ba {
  position: absolute;
  z-index: 2;
  top: 36.34%;
  left: 6.042%;
  width: 88.542%;
  display: flex;
  gap: min(5px, 0.347vw);
}
.p-ideal__ba-img {
  flex: 1;
  aspect-ratio: 210 / 160;
  background: #d9d9d9;
}
.p-ideal__text {
  position: absolute;
  z-index: 2;
  top: 73%;
  left: 6.042%;
  width: 88.542%;
  font-size: min(18px, 1.25vw);
  line-height: 1.5;
}
/* ===== SP：IDEAL TEETH（縦フロー／CASEカード1列） ===== */
@media screen and (max-width: 680px) {
  .p-ideal {
    padding-block: 0;
  }
  .p-ideal__strip {
    display: none;
  }
  /* タイトル（フロー・中央） */
  .p-ideal__title {
    width: 100%;
    padding-top: 12vw;
    padding-bottom: 7vw;
    gap: 3vw;
  }
  .p-ideal__title span {
    font-size: 6.4vw; /* 24px */
  }
  .p-ideal__title::before,
  .p-ideal__title::after {
    width: 8vw;
  }
  /* カード：1カラム */
  .p-ideal__cards {
    position: relative;
    left: auto;
    width: 88.53vw; /* 332/375 */
    margin: 0 auto;
    padding-bottom: 12vw;
    grid-template-columns: 1fr;
    row-gap: 8vw;
  }
  /* カード内部（%配置はそのまま、フォント/オフセットをSP調整） */
  .p-ideal__badge-label {
    top: 8px;
    left: 8px;
  }
  .p-ideal__case {
    font-size: 3.73vw; /* 14 */
  }
  .p-ideal__num {
    font-size: 10.67vw; /* 40 */
  }
  .p-ideal__name {
    font-size: 3.73vw; /* 14 */
  }
  .p-ideal__heading {
    font-size: 5.33vw; /* 20 */
  }
  .p-ideal__text {
    font-size: 3.47vw; /* 13 */
  }
}
/*-------policy（当院の治療方針）------*/
/* 固定アスペクト(1440x1163)。子要素は%配置＋ min(px, vw) でスケール */
.p-policy {
  position: relative;
  width: 100%;
  overflow: hidden;
}
/* タイトル */
.p-policy__title {
  position: relative;
  z-index: 2;
  width: 100%;
  text-align: center;
}
.p-policy__title-main {
  line-height: 1;
}
.p-policy__title-lg {
  font-size: min(64px, 4.444vw);
}
.p-policy__title-sm {
  font-size: min(42px, 2.917vw);
}
.p-policy__title-line {
  display: block;
  width: min(510px, 35.417vw);
  height: 3px;
  /* 左半分グレー #AFAFAF／右半分 白（境界50%のハードエッジ） */
  background: linear-gradient(90deg, #afafaf 0 50%, #fff 50% 100%);
  margin: min(20px, 1.389vw) auto min(12px, 0.833vw);
}
.p-policy__title-en {
  font-size: min(24px, 1.667vw);
  letter-spacing: 0.15em;
}
/* メインビジュアル＋暗幕＋見出し（stage の高さ＝写真の高さ） */
.p-policy__stage {
  position: relative;
}
.p-policy__visual {
  display: block;
  width: 100%;
  height: auto;
}
.p-policy__shade {
  position: absolute;
  z-index: 2;
  left: 0;
  top: 63.906%; /* 409/640 */
  width: 100%;
  height: 78.125%; /* 500/640 */
  background: rgba(0, 0, 0, 0.25);
}
/* 3つのお約束 見出し */
.p-policy__lead {
  position: absolute;
  z-index: 3;
  top: 67.344%; /* 431/640 */
  left: 0;
  width: 100%;
  text-align: center;
}
.p-policy__lead-sub {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: min(20px, 1.389vw);
  font-size: min(24px, 1.667vw);
  letter-spacing: 0.1em;
}
.p-policy__lead-line {
  display: block;
  width: min(100px, 6.944vw);
  height: 1px;
  background: #fff;
}
.p-policy__lead-main {
  margin-top: min(10px, 0.7vw);
  line-height: 1;
}
.p-policy__lead-num {
  font-size: min(70px, 4.861vw);
}
.p-policy__lead-mid {
  font-size: min(48px, 3.333vw);
}
.p-policy__lead-big {
  font-size: min(64px, 4.444vw);
}
/* 3カード（写真に68px食い込ませる） */
.p-policy__cards {
  position: relative;
  z-index: 4;
  width: min(1240px, 86.111vw);
  margin: max(-68px, -4.722vw) auto 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: min(35px, 2.431vw);
}
.p-policy__card-visual {
  position: relative;
  aspect-ratio: 390 / 310;
  overflow: hidden;
}
.p-policy__card-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-policy__card-banner {
  position: absolute;
  left: 0;
  bottom: 0;
  width: calc(100% - 30px);
  height: 56.452%;
  background: rgba(17, 59, 122, 0.8);
  clip-path: polygon(0 0, 0% 100%, 100% 100%);
}
.p-policy__card-title {
  position: absolute;
  z-index: 1;
  left: min(20px, 1.389vw);
  bottom: min(16px, 1.111vw);
  color: #fff;
  font-size: min(24px, 1.667vw);
  line-height: 1.25;
}
.p-policy__card-desc {
  min-height: min(137px, 9.514vw);
  background: #fff;
  padding: min(20px, 1.389vw);
}
.p-policy__card-desc p {
  font-size: min(16px, 1.111vw);
  line-height: 1.625;
  letter-spacing: 0.08em;
  color: #333;
}
/* ===== SP：POLICY（縦フロー／約束カード1列） ===== */
@media screen and (max-width: 680px) {
  .p-policy {
    height: auto;
    max-height: none;
    background: #14264a;
    padding-bottom: 12vw;
  }
  /* タイトル */
  .p-policy__title {
    position: static;
    padding-top: 8vw;
  }
  .p-policy__title-lg {
    font-size: 8.5vw; /* 32 */
  }
  .p-policy__title-sm {
    font-size: 5.6vw;
  }
  .p-policy__title-line {
    width: 64vw;
    height: 2px;
    margin: 4vw auto 3vw;
  }
  .p-policy__title-en {
    font-size: 4.27vw; /* POLICY 16 */
  }
  /* メインビジュアル（写真）：SPは高さ固定でトリミング */
  .p-policy__visual {
    height: 44.3vw; /* 166/375 */
    object-fit: cover;
    clip-path: none;
  }
  .p-policy__shade {
    display: none;
  }
  /* 3つのお約束（写真下部に重ねる） */
  .p-policy__lead {
    position: static;
    margin-top: -20vw;
    text-shadow: 0 2px 6px rgba(0, 0, 0, 0.6);
  }
  .p-policy__lead-sub {
    font-size: 3.73vw;
  }
  .p-policy__lead-line {
    width: 10vw;
  }
  .p-policy__lead-num {
    font-size: 12vw;
  }
  .p-policy__lead-mid {
    font-size: 6.4vw;
  }
  .p-policy__lead-big {
    font-size: 8.5vw;
  }
  /* 約束カード：1カラム */
  .p-policy__cards {
    position: static;
    width: 93.3vw; /* 350/375 */
    margin: 9vw auto 0;
    grid-template-columns: 1fr;
    row-gap: 5.3vw;
  }
  .p-policy__card-title {
    left: 4.8vw;
    bottom: 4.3vw;
    font-size: 5.33vw; /* 20 */
  }
  .p-policy__card-desc {
    min-height: 0;
    padding: 4.8vw 4.8vw;
  }
  .p-policy__card-desc p {
    font-size: 3.73vw; /* 14 */
  }
}
/*-------doctor（院長・副院長紹介）------*/
/* 固定アスペクト(1440x2542)。子要素は%配置＋ min(px, vw) でスケール */
.p-doctor {
  position: relative;
  width: 100%;
  height: 176.528vw;
  overflow: hidden;
}
/* ===== SP：院長・副院長紹介（別アスペクト390×1317で再配置／base375, 高さ1317） ===== */
@media screen and (max-width: 680px) {
  .p-doctor {
    height: auto;
    max-height: none;
    background: #102c57;
    padding-bottom: 12vw;
  }
  /* 背景：上部にヒーロー写真、以降はネイビー地（三角・オーバーレイは省略） */
  .p-doctor__hero {
    left: 0;
    top: 0;
    width: 100%;
    height: 48vw;
  }
  .p-doctor__bg-navy,
  .p-doctor__tri-upper,
  .p-doctor__tri-lower,
  .p-doctor__veil {
    display: none;
  }
  /* 見出し（写真の上・フロー） */
  .p-doctor__lead {
    position: static;
    width: auto;
    min-height: 48vw;
    padding: 9vw 6vw 0;
  }
  .p-doctor__lead-1 {
    font-size: 4.8vw;
  }
  .p-doctor__lead-2 {
    padding-left: 5vw;
    font-size: 5.6vw;
  }
  .p-doctor__lead-lg {
    font-size: 7vw;
  }
  .p-doctor__lead-line {
    width: 70vw;
    height: 2px;
    margin: 2vw 0;
  }
  .p-doctor__lead-3 {
    padding-left: 34vw;
    font-size: 5.6vw;
  }
  /* ===== 院長：Figma座標でabsolute（箱は高さ自動） ===== */
  /* ===== 院長：縦積み（名札→写真→経歴→所属→受講） ===== */
  .p-doctor__dir {
    position: static;
    display: flex;
    flex-direction: column;
    gap: 6vw;
    padding: 8vw 7vw 0;
  }
  .p-doctor__dir-l,
  .p-doctor__dir-r {
    display: contents;
  }
  .p-doctor__nameplate,
  .p-doctor__dir-photo,
  .p-doctor__hist--career,
  .p-doctor__hist--assoc,
  .p-doctor__hist--lecture,
  .p-doctor__hist-line {
    position: static;
    left: auto;
    top: auto;
    width: auto;
  }
  .p-doctor__nameplate {
    order: 2;
    width: min(320px, 100%);
    margin: 0 auto;
  }
  .p-doctor__dir-photo {
    order: 1;
    width: min(220px, 62%);
    height: auto;
    margin: 0 auto;
    border-width: 1px;
  }
  .p-doctor__hist--career {
    order: 3;
  }
  .p-doctor__hist-line {
    order: 4;
    width: 100%;
    height: 1px;
    margin: 0;
  }
  .p-doctor__hist--assoc {
    order: 5;
  }
  .p-doctor__hist--lecture {
    order: 6;
  }
  /* 名札 */
  .p-doctor__nameplate-top {
    height: auto;
    padding: 1.5vw 0;
    gap: 2vw;
    font-size: 3.2vw;
  }
  .p-doctor__role {
    font-size: 3.7vw;
  }
  .p-doctor__nameplate-main {
    height: auto;
    gap: 3vw;
    padding: 2.5vw 4vw;
    justify-content: center;
  }
  .p-doctor__license {
    width: 6.4vw;
    height: 6.4vw;
    font-size: 2.8vw;
  }
  .p-doctor__pname {
    font-size: 6.9vw;
    white-space: nowrap;
  }
  .p-doctor__nameplate-en {
    height: auto;
    padding: 1.5vw 0;
    font-size: 2.8vw;
  }
  /* 経歴/所属/受講 */
  .p-doctor__hist {
    gap: 3vw;
  }
  .p-doctor__vlabel {
    width: 5.6vw;
    padding-block: 2vw;
    font-size: 3.2vw;
  }
  .p-doctor__vlabel--thin {
    width: 5.6vw;
  }
  .p-doctor__hist-body {
    font-size: 3.2vw;
    line-height: 1.5;
    white-space: normal;
  }
  .p-doctor__ck {
    width: 2.66vw;
    height: 2.66vw;
  }
  .p-doctor__ck--lg {
    width: 3.5vw;
    height: 3.5vw;
  }
  /* ===== 副院長：院長と同じ縦積み（写真→名札→経歴→所属／グレーパネル解体） ===== */
  .p-doctor__dep {
    position: static;
    display: flex;
    flex-direction: column;
    gap: 6vw;
    padding: 8vw 7vw 0;
  }
  /* ラッパー（dep-l・グレーパネル・経歴/所属の2カラム）を解体してフラット化 */
  .p-doctor__dep-l,
  .p-doctor__dep-panel,
  .p-doctor__dep-cols {
    display: contents;
  }
  .p-doctor__dep-top,
  .p-doctor__dep-photo,
  .p-doctor__dep-head,
  .p-doctor__dep-line,
  .p-doctor__dep .p-doctor__hist {
    position: static;
    left: auto;
    top: auto;
    width: auto;
  }
  /* 写真 */
  .p-doctor__dep-photo {
    order: 1;
    width: min(220px, 62%);
    height: auto;
    margin: 0 auto;
    border-width: 1px;
  }
  /* 名札：ベージュ帯（副院長）＋白box（歯科医師・中西伶奈・Dr） */
  .p-doctor__dep-top {
    order: 2;
    width: min(320px, 100%);
    margin: 0 auto;
    height: auto;
    padding: 1.5vw 0;
    gap: 2vw;
    font-size: 3.2vw;
    justify-content: center;
  }
  .p-doctor__dep-head {
    order: 3;
    width: min(320px, 100%);
    margin: -6vw auto 0; /* dep-topと連結 */
    justify-content: center;
    flex-wrap: wrap;
    gap: 2vw 3vw;
    padding: 3vw 4vw;
    background: #fff;
  }
  .p-doctor__dep-en {
    font-size: 3.2vw;
  }
  .p-doctor__dep-line {
    display: none;
  }
  /* 経歴（1つ目）→所属（2つ目）：白文字・ネイビー地（院長と同じ） */
  .p-doctor__dep-cols .p-doctor__hist:nth-of-type(1) {
    order: 4;
  }
  .p-doctor__dep-cols .p-doctor__hist:nth-of-type(2) {
    order: 5;
  }
  .p-doctor__dep .p-doctor__hist-body--dark {
    color: #fff;
  }
  /* 衛生士・技工士カード（1カラム・フロー） */
  .p-doctor__staff {
    position: static;
    left: auto;
    top: auto;
    width: min(93.33%, 500px);
    margin: 10vw auto 0;
    grid-template-columns: 1fr;
    row-gap: 5.3vw;
  }
  .p-staff-lg {
    font-size: 4vw;
  }
  .p-staff-sm {
    font-size: 3vw;
  }
  .p-doctor__staff-list {
    gap: 2.4vw;
  }
  .p-doctor__staff-txt,
  .p-doctor__staff-list li {
    font-size: 2.4vw;
  }
}
/* ===== 背景レイヤー1：ネイビー地＋ヒーロー写真 ===== */
/* ネイビー地：top18.49% / 高さ53%（71.48%で終わり以降は白）。上半分はヒーロー写真が覆うので副院長エリアから見える */
.p-doctor__bg-navy {
  position: absolute;
  z-index: 0;
  left: 0;
  top: 18.49%;
  width: 100%;
  height: 53%;
  background: #102c57;
}
/* ヒーロー写真：top0 / 高さ47.88%（画像と同比率なのでトリミングなしで全体表示） */
.p-doctor__hero {
  position: absolute;
  z-index: 0;
  left: 0;
  top: 0;
  width: 100%;
  height: 47.88%;
  object-fit: cover;
  object-position: center top;
}
/* ===== 背景レイヤー2：斜め三角（写真の上・文字の下） ===== */
/* 2/2 上・半端な三角（#4E79A4 70%）: 左上(0,0)→右(100%,44.76%)→右下→左下 */
.p-doctor__tri-upper {
  position: absolute;
  z-index: 1;
  left: 0;
  top: 16.05%;
  width: 100%;
  height: 29.9%;
  background: rgba(78, 121, 164, 0.7);
  clip-path: polygon(0 0, 100% 44.76%, 100% 100%, 0 100%);
}
/* 2/1 下・三角（#164370 80%）: 右上→右下→左下 の直角三角 */
.p-doctor__tri-lower {
  position: absolute;
  z-index: 1;
  left: 5.694%;
  top: 40.01%;
  width: 94.306%;
  height: 31.47%;
  background: rgba(22, 67, 112, 0.8);
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
}
/* ===== 背景レイヤー3：全体ブルーオーバーレイ（三角の上・文字の下） ===== */
/* rgba(37,85,133,0.7) top18.49% h53%。上の半端な三角が約62px頭を出す位置から開始 */
.p-doctor__veil {
  position: absolute;
  z-index: 1;
  left: 0;
  top: 18.49%;
  width: 100%;
  height: 53%;
  background: rgba(37, 85, 133, 0.7);
}
/* 見出し */
.p-doctor__lead {
  position: absolute;
  z-index: 3;
  left: 11.25%;
  top: 3%;
  width: 60%;
  color: #333;
  line-height: 1.2;
}
.p-doctor__lead-1 {
  font-size: min(36px, 2.5vw);
}
.p-doctor__lead-2 {
  margin-top: min(14px, 0.97vw);
  padding-left: min(56px, 3.9vw);
  font-size: min(40px, 2.778vw);
}
.p-doctor__lead-lg {
  font-size: min(48px, 3.819vw);
}
.p-doctor__lead-line {
  display: block;
  width: min(699px, 48.542vw);
  height: 4px;
  margin: min(16px, 1.1vw) 0;
  background: #333;
}
.p-doctor__lead-3 {
  padding-left: min(430px, 29.86vw);
  font-size: min(40px, 2.778vw);
}
/* 院長・副院長 名札 */
.p-doctor__nameplate {
  position: absolute;
  z-index: 2;
  left: 48.611%;
  top: 12.235%;
  width: 28.472%;
}
.p-doctor__nameplate-top {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: min(10px, 0.7vw);
  height: min(40px, 2.778vw);
  background: linear-gradient(180deg, #d4c8b0 0%, #bcaf92 55%, #a99a79 100%);
  color: #333;
  font-size: min(20px, 1.389vw);
}
.p-doctor__role {
  font-size: min(24px, 1.667vw);
}
.p-doctor__nameplate-main {
  display: flex;
  align-items: center;
  gap: min(28px, 1.944vw);
  height: min(113px, 7.847vw);
  padding-left: min(52px, 3.6vw);
  background: #fff;
}
.p-doctor__license {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: min(60px, 4.167vw);
  height: min(60px, 4.167vw);
  border: 1px solid #333;
  color: #333;
  font-size: min(20px, 1.389vw);
  line-height: 1.1;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
}
.p-doctor__pname {
  color: #333;
  font-size: min(55px, 3.819vw);
  letter-spacing: 0.05em;
}
.p-doctor__nameplate-en {
  display: flex;
  align-items: center;
  justify-content: center;
  height: min(40px, 2.778vw);
  background: #f8f8f8;
  color: #c6b69d;
  font-size: min(20px, 1.389vw);
  letter-spacing: 0.08em;
}
/* 院長写真 */
.p-doctor__dir-photo {
  position: absolute;
  z-index: 2;
  left: 10.417%;
  top: 13.729%;
  width: 31.25%;
  height: 22.62%;
  border: min(5px, 0.35vw) solid #fff;
  object-fit: cover;
}
/* 経歴などの縦ラベル＋本文 */
.p-doctor__hist {
  position: absolute;
  z-index: 2;
  display: flex;
  gap: min(20px, 1.389vw);
  align-items: stretch;
}
.p-doctor__hist--career {
  left: 48.611%;
  top: 21.597%;
}
.p-doctor__hist--assoc {
  left: 48.611%;
  top: 29.55%; /* 著書1行追加で経歴が伸びた分、下げる（旧29.072%） */
}
.p-doctor__hist--lecture {
  left: 10.417%;
  top: 37.726%;
}
.p-doctor__hist-line {
  position: absolute;
  z-index: 2;
  left: 48.611%;
  top: 28.75%; /* ↓ min-width:681 では列コンテナ内フローに切替（この top は未使用） */
  width: 28.819%;
  height: 1px;
  background: rgba(255, 255, 255, 0.5);
}
/* ===== 院長：各列を内部フロー化（項目が増えても重ならない／SP≤680は既存フローのまま） ===== */
@media screen and (min-width: 681px) {
  /* 左右の列を絶対配置の“コンテナ”にし、起点座標を固定 */
  .p-doctor__dir-l,
  .p-doctor__dir-r {
    position: absolute;
    z-index: 2;
  }
  .p-doctor__dir-l {
    left: 10.417%;
    top: 13.729%;
    width: 31.25%;
  }
  .p-doctor__dir-r {
    left: 48.611%;
    top: 12.235%;
    width: 51.389%;
  }
  /* 子要素：絶対配置→通常フロー（縦積み） */
  .p-doctor__dir-r .p-doctor__nameplate,
  .p-doctor__dir-r .p-doctor__hist--career,
  .p-doctor__dir-r .p-doctor__hist-line,
  .p-doctor__dir-r .p-doctor__hist--assoc,
  .p-doctor__dir-l .p-doctor__dir-photo,
  .p-doctor__dir-l .p-doctor__hist--lecture {
    position: static;
    left: auto;
    top: auto;
  }
  /* 右列：元座標の間隔を margin で再現 */
  .p-doctor__dir-r .p-doctor__nameplate {
    width: 60.472%;
  }
  .p-doctor__dir-r .p-doctor__hist--career {
    margin-top: 3.12vw;
  }
  .p-doctor__dir-r .p-doctor__hist-line {
    margin-top: 0.48vw;
    width: 28.819vw;
  }
  .p-doctor__dir-r .p-doctor__hist--assoc {
    margin-top: 1.34vw;
  }
  /* 長い1行（著書）だけ列内で折り返す。短い項目は1行のまま */
  .p-doctor__dir-r .p-doctor__hist-body {
    white-space: normal;
  }
  /* 左列：写真→受講/講演歴 */
  .p-doctor__dir-l .p-doctor__dir-photo {
    width: 100%;
    height: 39.93vw;
  }
  .p-doctor__dir-l .p-doctor__hist--lecture {
    margin-top: 2.44vw;
  }
}
.p-doctor__vlabel {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  writing-mode: vertical-rl;
  text-orientation: upright;
  width: min(40px, 2.778vw);
  padding-block: min(14px, 0.97vw);
  color: #fff;
  font-size: min(20px, 1.389vw);
  letter-spacing: 0.05em;
}
.p-doctor__vlabel--dark {
  background: #102c57;
}
.p-doctor__vlabel--thin {
  width: min(35px, 2.431vw);
}
.p-doctor__hist-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  color: #fff;
  font-size: min(16px, 1.111vw);
  line-height: 1.5625;
  white-space: nowrap;
}
.p-doctor__hist-body--dark {
  color: #333;
}
.p-doctor__hist-body--check p {
  display: flex;
  align-items: center;
  gap: min(16px, 1.1vw);
}
/* チェックマーク */
.p-doctor__ck {
  flex: 0 0 auto;
  display: inline-block;
  width: min(17px, 1.18vw);
  height: min(17px, 1.18vw);
  background: url(../img/common/ck-icon02.webp) center / contain no-repeat;
}
.p-doctor__ck--lg {
  width: min(24px, 1.667vw);
  height: min(24px, 1.667vw);
}
/* 副院長 */
.p-doctor__dep-top {
  position: absolute;
  z-index: 2;
  left: 10.417%;
  top: 48.348%;
  width: 28.472%;
}
.p-doctor__dep-panel {
  position: absolute;
  z-index: 2;
  left: 10.417%;
  top: 49.921%;
  width: 55.486%;
  height: 18.922%;
  background: #e8e8e8;
  padding: min(60px, 4.17vw) min(32px, 2.22vw) min(24px, 1.67vw);
}
.p-doctor__dep-head {
  display: flex;
  align-items: center;
  gap: min(20px, 1.389vw);
}
.p-doctor__dep-en {
  color: #113b7a;
  font-size: min(24px, 1.667vw);
  letter-spacing: 0.06em;
}
.p-doctor__dep-line {
  display: block;
  width: 100%;
  height: 1px;
  margin: min(20px, 1.389vw) 0;
  background: #333;
}
.p-doctor__dep-cols {
  display: flex;
  gap: min(40px, 2.778vw);
}
.p-doctor__dep-cols .p-doctor__hist {
  position: static;
}
.p-doctor__dep-cols .p-doctor__hist-body {
  justify-content: flex-start;
}
.p-doctor__dep-photo {
  position: absolute;
  z-index: 2;
  left: 65.903%;
  top: 49.371%;
  width: 25%;
  height: 20.063%;
  border: min(5px, 0.35vw) solid #fff;
  object-fit: cover;
}
/* 歯科衛生士・技工士 */
.p-doctor__staff {
  position: absolute;
  z-index: 2;
  left: 7.292%;
  top: 73.446%;
  width: 85.694%;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: min(30px, 2.083vw);
}
.p-doctor__staff-card {
  position: relative;
  aspect-ratio: 602 / 675;
}
.p-doctor__staff-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 3.85%;
  width: 100%;
  height: 96.15%;
  background: #426d99;
}
/* タイトル白box：フレーム角から上10px・左10px内側にオフセット */
.p-doctor__staff-title {
  position: absolute;
  z-index: 2;
  left: 12.625%;
  top: 1.481%;
  width: 76.246%;
  height: 15.556%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: #fff;
  color: #333;
}
/* 左上角の折り返し風三角（#C6C6C6 80%）＝白boxより上10px・左10px出る */
.p-doctor__staff-title-deco {
  position: absolute;
  z-index: 3;
  left: 10.963%;
  top: 0;
  width: 19.1%;
  height: 17.037%;
  background: rgba(198, 198, 198, 0.8);
  clip-path: polygon(0 0, 100% 0, 0 100%);
}
.p-doctor__staff-title p {
  line-height: 1.15;
}
.p-staff-lg {
  font-size: min(32px, 2.222vw);
}
.p-staff-sm {
  font-size: min(24px, 1.667vw);
}
.p-doctor__staff-photo {
  position: absolute;
  z-index: 1;
  left: 4.983%;
  top: 12.593%;
  width: 90.033%;
  height: 45.185%;
  object-fit: cover;
}
/* ひし形：装飾込みの完成webpをそのまま配置（無回転） */
.p-doctor__staff-dia {
  position: absolute;
  z-index: 1;
  left: 4.98%;
  top: 64.3%;
  width: 36.21%;
  height: auto;
  display: block;
}
/* 背景下部の装飾三角（#255585 70% ×2／中央でV字に重なる） */
.p-doctor__staff-deco {
  position: absolute;
  z-index: 0;
  left: 0;
  top: 52.59%;
  width: 100%;
  height: 47.41%;
}
.p-doctor__staff-deco::before,
.p-doctor__staff-deco::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(37, 85, 133, 0.7);
}
.p-doctor__staff-deco::before {
  clip-path: polygon(0 0, 63.12% 100%, 0 100%);
}
.p-doctor__staff-deco::after {
  clip-path: polygon(100% 0, 36.88% 100%, 100% 100%);
}
.p-doctor__staff-list {
  position: absolute;
  z-index: 2;
  left: 41.5%;
  top: 69.5%;
  width: 56.5%;
  display: flex;
  flex-direction: column;
  gap: min(20px, 1.389vw);
}
.p-doctor__staff-list.u-st2 {
  top: 65%;
}
.p-doctor__staff-list li {
  display: flex;
  align-items: flex-start;
  gap: min(10px, 0.7vw);
  color: #fff;
  font-size: min(18px, 1.389vw);
  line-height: 1.3;
}
/* テキスト下の薄青ハイライトバー */
.p-doctor__staff-txt {
  background: linear-gradient(rgba(78, 121, 164, 0.7), rgba(78, 121, 164, 0.7))
    no-repeat;
  background-size: 100% min(15px, 1.042vw);
  background-position: 0 88%;
}
/* ===== SP：院長・副院長を縦積み（基本ルールの後に置き詳細度勝ち） ===== */
@media screen and (max-width: 820px) {
  .p-doctor__staff-txt,
  .p-doctor__staff-list li {
    font-size: 0.9rem;
  }
}
@media screen and (max-width: 680px) {
  .p-doctor {
    height: auto;
    max-height: none;
    background: #102c57;
    padding-bottom: 12vw;
  }
  /* 背景：上部にヒーロー写真、以降はネイビー地 */
  .p-doctor__hero {
    left: 0;
    top: 0;
    width: 100%;
    height: 48vw;
  }
  .p-doctor__bg-navy,
  .p-doctor__tri-upper,
  .p-doctor__tri-lower,
  .p-doctor__veil {
    display: none;
  }
  /* 見出し（写真の上・フロー） */
  .p-doctor__lead {
    position: relative;
    left: auto;
    width: 100%;
    min-height: 48vw;
    padding: 18vw 6vw 0;
    background: rgb(255 255 255 / 80%);
  }
  .p-doctor__lead-1 {
    font-size: 4.8vw;
  }
  .p-doctor__lead-2 {
    padding-left: 0;
    font-size: 5.6vw;
  }
  .p-doctor__lead-lg {
    font-size: 7vw;
  }
  .p-doctor__lead-line {
    width: 70vw;
    height: 2px;
    margin: 2vw 0;
  }
  .p-doctor__lead-3 {
    padding-left: 34vw;
    font-size: 5.6vw;
  }
  /* ===== 院長：縦積み（名札→写真→経歴→所属→受講） ===== */
  .p-doctor__dir {
    position: static;
    display: flex;
    flex-direction: column;
    gap: 6vw;
    padding: 8vw 7vw 0;
  }
  .p-doctor__dir-l,
  .p-doctor__dir-r {
    display: contents;
  }
  .p-doctor__nameplate,
  .p-doctor__dir-photo,
  .p-doctor__hist--career,
  .p-doctor__hist--assoc,
  .p-doctor__hist--lecture,
  .p-doctor__hist-line {
    position: static;
    left: auto;
    top: auto;
    width: auto;
  }
  .p-doctor__nameplate {
    order: 2;
    width: min(320px, 100%);
    margin: 0 auto;
  }
  .p-doctor__dir-photo {
    order: 1;
    width: min(220px, 62%);
    height: auto;
    margin: 0 auto;
    border-width: 1px;
  }
  .p-doctor__hist--career {
    order: 3;
  }
  .p-doctor__hist-line {
    order: 4;
    width: 100%;
    height: 1px;
    margin: 0;
  }
  .p-doctor__hist--assoc {
    order: 5;
  }
  .p-doctor__hist--lecture {
    order: 6;
  }
  .p-doctor__nameplate-top {
    height: auto;
    padding: 1.5vw 0;
    gap: 2vw;
    font-size: 3.2vw;
  }
  .p-doctor__role {
    font-size: 3.7vw;
  }
  .p-doctor__nameplate-main {
    height: auto;
    gap: 0;
    padding: 2.5vw 4vw;
    justify-content: center;
    flex-direction: column;
  }
  .p-doctor__license {
    width: 50%;
    flex-direction: row;
    height: 6.4vw;
    font-size: 2.8vw;
  }
  .p-doctor__pname {
    font-size: 2rem;
    white-space: nowrap;
  }
  .p-doctor__nameplate-en {
    height: auto;
    padding: 1.5vw 0;
    font-size: 2.8vw;
  }
  .p-doctor__hist {
    gap: 3vw;
  }
  .p-doctor__vlabel {
    width: 5.6vw;
    padding-block: 2vw;
    font-size: 1.4rem;
  }
  .p-doctor__vlabel--thin {
    width: 5.6vw;
  }
  .p-doctor__hist-body {
    font-size: 1.4rem;
    line-height: 1.5;
    white-space: normal;
  }
  .p-doctor__ck {
    width: 2.66vw;
    height: 2.66vw;
  }
  .p-doctor__ck--lg {
    width: 3.5vw;
    height: 3.5vw;
  }
  /* ===== 副院長：院長と同じ縦積み（写真→名札→経歴→所属／グレーパネル解体） ===== */
  .p-doctor__dep {
    position: static;
    display: flex;
    flex-direction: column;
    gap: 6vw;
    padding: 8vw 7vw 0;
  }
  /* ラッパー（dep-l・グレーパネル・経歴/所属の2カラム）を解体してフラット化 */
  .p-doctor__dep-l,
  .p-doctor__dep-panel,
  .p-doctor__dep-cols {
    display: contents;
  }
  .p-doctor__dep-top,
  .p-doctor__dep-photo,
  .p-doctor__dep-head,
  .p-doctor__dep-line,
  .p-doctor__dep .p-doctor__hist {
    position: static;
    left: auto;
    top: auto;
    width: auto;
  }
  /* 写真 */
  .p-doctor__dep-photo {
    order: 1;
    width: min(220px, 62%);
    height: auto;
    margin: 0 auto;
    border-width: 1px;
  }
  /* 名札：ベージュ帯（副院長）＋白box（歯科医師・中西伶奈・Dr） */
  .p-doctor__dep-top {
    order: 2;
    width: min(320px, 100%);
    margin: 0 auto;
    height: auto;
    padding: 1.5vw 0;
    gap: 2vw;
    font-size: 3.2vw;
    justify-content: center;
  }
  .p-doctor__dep-head {
    order: 3;
    width: min(320px, 100%);
    margin: -6vw auto 0; /* dep-topと連結 */
    justify-content: center;
    flex-wrap: wrap;
    gap: 2vw 3vw;
    padding: 3vw 4vw;
    background: #fff;
  }
  .p-doctor__dep-en {
    font-size: 3.2vw;
  }
  .p-doctor__dep-line {
    display: none;
  }
  /* 経歴（1つ目）→所属（2つ目）：白文字・ネイビー地（院長と同じ） */
  .p-doctor__dep-cols .p-doctor__hist:nth-of-type(1) {
    order: 4;
  }
  .p-doctor__dep-cols .p-doctor__hist:nth-of-type(2) {
    order: 5;
  }
  .p-doctor__dep .p-doctor__hist-body--dark {
    color: #fff;
  }
  /* 衛生士カード（1カラム・フロー） */
  .p-doctor__staff {
    position: static;
    left: auto;
    top: auto;
    width: min(93.33%, 500px);
    margin: 10vw auto 0;
    grid-template-columns: 1fr;
    row-gap: 5.3vw;
  }
  .p-staff-lg {
    font-size: 4vw;
  }
  .p-staff-sm {
    font-size: 3vw;
  }
  .p-doctor__staff-list {
    gap: 2.4vw;
  }
  .p-doctor__staff-txt,
  .p-doctor__staff-list li {
    font-size: 1.1rem;
  }
}
/*-------digital（デジタル力×歯科）------*/
/* 固定アスペクト(1440x2894)。子要素は%配置＋ min(px, vw) でスケール */
.p-digital {
  position: relative;
  width: 100%;
  height: 87.56vw; /* 旧200.972vw×43.57%（カード開始位置）。上部要素の%も同係数でスケール済み */
  overflow: hidden;
  background: #102c57;
}
/* ===== SP：DIGITAL（375×2924で再配置／ヒーロー→円+イントロ→カード1列） ===== */
@media screen and (max-width: 680px) {
  .p-digital {
    height: 313.06vw; /* 旧779.73vw×40.15%（カード開始位置）。上部要素の%も同係数でスケール済み */
    max-height: none;
  }
  /* ヒーロー */
  .p-digital__hero {
    top: 2.57%;
    height: 40.45%;
  }
  .p-digital__hero2 {
    left: 59.47%;
    top: 2.57%;
    width: 40.53%;
    height: 23.69%;
  }
  .p-digital__hero3 {
    left: 0;
    top: 16.44%;
    width: 100%;
    height: 42.34%;
  }
  .p-digital__ring {
    left: 7.2%;
    top: 0;
    width: 37.68%;
  }
  .p-digital__htitle {
    left: 15.25%;
    top: 3.84%;
  }
  .p-digital__htitle-en {
    font-size: 6.4vw;
  }
  .p-digital__htitle-ja {
    font-size: 4.8vw;
  }
  .p-digital__vtext {
    left: 39.73%;
    top: 12.53%;
    font-size: 10.67vw;
  }
  .p-digital__vtext-x {
    font-size: 7vw;
  }
  /* イントロ白帯 */
  .p-digital__intro-band {
    top: 43.17%;
    height: 55.97%;
  }
  /* 円（PICK UP）：全幅の正方形として上に */
  .p-digital__circle {
    left: 3.47%;
    top: 45.56%;
    width: 93.33%;
  }
  .p-digital__pu-no {
    font-size: 2.66vw;
  }
  .p-digital__pu-no em {
    font-size: 4.27vw;
  }
  .p-digital__pu-ja {
    font-size: 4.8vw;
  }
  .p-digital__pu-lg {
    font-size: 6.4vw;
  }
  .p-digital__pu-en {
    height: 4.5vw;
    margin-top: 1vw;
    padding-inline: 2vw;
    font-size: 2.4vw;
  }
  /* イントロ（リード＋チェックリスト） */
  .p-digital__intro {
    left: 12.08%;
    top: 76.76%;
    width: 76.1%;
  }
  .p-digital__intro-lead {
    font-size: 4.27vw;
  }
  .p-digital__intro-lead2 {
    font-size: 3.73vw;
  }
  .p-digital__intro-lg {
    font-size: 4.8vw;
  }
  .p-digital__intro-line {
    width: 76vw;
    margin: 2vw 0;
  }
  .p-digital__intro-sub {
    font-size: 3.2vw;
    margin-bottom: 2vw;
  }
  .p-digital__intro-list {
    gap: 2.13vw;
    font-size: 3.73vw;
  }
  .p-digital__ck-lg {
    font-size: 4.27vw;
  }
  .p-digital__cbox {
    width: 2.87vw;
    height: 2.87vw;
  }
  /* カード：1カラム縦積み（p-pickup 内） */
  .p-digital__cards {
    width: 92.53%;
    grid-template-columns: 1fr;
    row-gap: 15.5vw;
  }
  .p-digital__badge {
    left: 40.83%;
    width: 18.33%;
  }
  .p-digital__badge-t {
    font-size: 2.66vw;
  }
  .p-digital__badge-n {
    font-size: 6.4vw;
  }
  .p-digital__card-bar {
    font-size: 4.8vw;
  }
  .p-digital__card-sub {
    font-size: 3.2vw;
  }
  .p-digital__card-desc p {
    font-size: 3.47vw;
  }
  .p-digital__more {
    font-size: 3.2vw;
  }
  /* PICK UP セクション（SP）：バッジの飛び出し分の余白を確保 */
  .p-pickup {
    padding: 16vw 0 16vw;
  }
}
/* 上部ヒーロー */
.p-digital__hero {
  position: absolute;
  z-index: 0;
  left: 0;
  top: 6.98%;
  width: 100%;
  height: 37.66%;
  object-fit: cover;
}
/* 右上の装飾三角（旧digital-hero2.webpをCSS化）: #4082CA 70% */
.p-digital__hero2 {
  position: absolute;
  z-index: 1;
  left: 67.48%;
  top: 6.98%;
  width: 32.52%;
  height: 37.66%;
  background: rgba(64, 130, 202, 0.7);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 79.92% 100%);
}
/* 右に開口のあるリング（Figmaの円弧SVGをインライン化・画像不要） */
.p-digital__ring {
  position: absolute;
  z-index: 2;
  left: 7.43%;
  top: 3.26%;
  width: 23.06%;
  aspect-ratio: 336.392 / 349;
}
.p-digital__ring svg {
  display: block;
  width: 100%;
  height: 100%;
}
.p-digital__htitle {
  position: absolute;
  z-index: 2;
  left: 12.36%;
  top: 11.66%;
  color: #fff;
}
.p-digital__htitle-en {
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 300;
  font-size: min(64px, 4.444vw);
  letter-spacing: 0.04em;
  line-height: 1.1;
}
.p-digital__htitle-ja {
  margin-top: min(14px, 0.97vw);
  font-size: min(42px, 2.917vw);
}
.p-digital__vtext {
  position: absolute;
  z-index: 2;
  left: 68%;
  top: 0;
  writing-mode: vertical-rl;
  color: #fff;
  font-size: min(52px, 4.444vw);
  letter-spacing: 0.06em;
  line-height: 1.1;
  text-shadow: 0 0 30px #000;
}
.p-digital__vtext-x {
  font-size: min(40px, 2.778vw);
  margin-top: 1.5em;
}
/* 縦書きの下に置く横書きリード */
.p-digital__vlead {
  position: absolute;
  z-index: 2;
  left: auto;
  right: 0;
  top: 32%;
  color: #fff;
  font-size: clamp(18px, var(--px-32), 32px);
  letter-spacing: 0.08em;
  width: fit-content;
  line-height: 1.9;
  text-shadow: 0 0 30px #000;
}
/* 中段の装飾三角（旧digital-hero3.webpをCSS化）: #4E79A4 70% */
.p-digital__hero3 {
  position: absolute;
  z-index: 1;
  left: 19.65%;
  top: 29.1%;
  width: 80.35%;
  height: 67.41%;
  background: rgba(78, 121, 164, 0.7);
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
}
/* イントロ */
.p-digital__intro-band {
  position: absolute;
  z-index: 1;
  left: 0;
  top: 48.15%;
  width: 100%;
  height: 42.9%;
  background: #fff;
}
.p-digital__intro {
  position: absolute;
  z-index: 2;
  left: 7.64%;
  top: 54.17%;
  width: 40%;
  color: #333;
}
.p-digital__intro-lead {
  font-size: min(36px, 2.5vw);
  line-height: 1.5;
}
/* リード2行目のベース（「の」「を」）= 32px */
.p-digital__intro-lead2 {
  font-size: min(32px, 2.222vw);
}
.p-digital__intro-lg {
  font-size: min(40px, 2.778vw);
}
/* チェックリストの強調（「診断／治療」等）= 36px */
.p-digital__ck-lg {
  font-size: min(36px, 2.5vw);
}
.p-digital__intro-line {
  display: block;
  width: min(530px, 36.806vw);
  height: 1px;
  margin: min(20px, 1.389vw) 0;
  background: #333;
}
.p-digital__intro-sub {
  font-size: min(24px, 1.667vw);
  margin-bottom: min(20px, 1.389vw);
}
.p-digital__intro-list {
  display: flex;
  flex-direction: column;
  gap: min(16px, 1.11vw);
  font-size: min(28px, 1.944vw);
  line-height: 1;
}
.p-digital__intro-list li {
  display: flex;
  align-items: center;
  gap: min(14px, 0.97vw);
}
.p-digital__cbox {
  flex: 0 0 auto;
  width: min(20px, 1.389vw);
  height: min(20px, 1.389vw);
  background: url(../img/common/ck-icon03.webp) center / contain no-repeat;
}
/* イントロ円（4象限） */
.p-digital__circle {
  position: absolute;
  z-index: 2;
  left: 47.22%;
  top: 43.77%;
  width: 45.14%;
  aspect-ratio: 1;
}
.p-digital__circle > img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}
.p-digital__pu {
  position: absolute;
  color: #333;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);
}
.p-digital__pu--01 {
  left: 0;
  top: 9.7%;
}
.p-digital__pu--02 {
  left: 69.2%;
  top: 9.7%;
}
.p-digital__pu--03 {
  left: 0;
  top: 63.4%;
}
.p-digital__pu--04 {
  left: 69.2%;
  top: 63.4%;
}
.p-digital__pu-no {
  font-size: min(20px, 1.389vw);
  letter-spacing: 0.05em;
}
.p-digital__pu-no em {
  font-style: normal;
  font-size: min(32px, 2.222vw);
}
.p-digital__pu-ja {
  font-size: min(36px, 2.5vw);
  line-height: 1.1;
}
.p-digital__pu-lg {
  font-size: min(48px, 3.333vw);
  white-space: nowrap;
}
.p-digital__pu-en {
  display: inline-flex;
  align-items: center;
  margin-top: min(8px, 0.55vw);
  height: min(30px, 2.083vw);
  padding-inline: min(15px, 1.04vw);
  background: #d9d9d9;
  font-size: min(16px, 1.111vw);
  letter-spacing: 0.06em;
  text-shadow: none;
}
.p-digital__pu-en--c {
  justify-content: center;
}
/* ============================================================
   PICK UP カード：p-digital から分離した独立セクション（通常フロー）
============================================================ */
.p-pickup {
  position: relative;
  overflow: hidden;
  background: #102c57;
  padding: min(70px, 4.86vw) 0 min(100px, 6.94vw);
}
/* 背景：格子柄（全面） */
.p-pickup__grid {
  position: absolute;
  z-index: 0;
  inset: 0;
  background-image:
    repeating-linear-gradient(
      0deg,
      rgba(255, 255, 255, 0.08) 0 1px,
      transparent 1px 1.389vw
    ),
    repeating-linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.08) 0 1px,
      transparent 1px 1.389vw
    );
  pointer-events: none;
}
/* 背景：斜め三角（#2C5C8B 70%） */
.p-pickup__tri {
  position: absolute;
  z-index: 0;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(44, 92, 139, 0.7);
  clip-path: polygon(0 0, 0% 100%, 100% 100%);
  pointer-events: none;
}
/* PICK UP 4カード（通常フローのグリッド） */
.p-digital__cards {
  position: relative;
  z-index: 2;
  width: 84.722%;
  margin-inline: auto;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: min(20px, 1.389vw);
  row-gap: min(90px, 7.986vw);
}
.p-digital__card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: #fff;
  padding: min(38px, 2.64vw) min(26px, 1.8vw) min(24px, 1.67vw);
}
.p-digital__card::before {
  content: none;
}
.p-digital__badge {
  position: absolute;
  z-index: 3;
  left: 50%;
  top: 0;
  transform: translate(-50%, -50%);
  width: min(92px, 6.4vw);
  aspect-ratio: 1;
  border-radius: 50%;
  background: #113b7a;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #fff;
  line-height: 1;
}
.p-digital__badge-t {
  font-size: min(16px, 1.111vw);
  letter-spacing: 0.05em;
}
.p-digital__badge-n {
  font-size: min(42px, 2.917vw);
}
.p-digital__card-bar {
  width: 100%;
  margin-top: min(4px, 0.28vw);
  padding: min(12px, 0.83vw) min(18px, 1.25vw);
  background: #113b7a;
  color: #fff;
  font-size: min(24px, 1.8vw);
  line-height: 1.35;
  letter-spacing: 0.02em;
}
.p-digital__card-visual {
  position: relative;
  width: 100%;
  aspect-ratio: 304 / 176;
  margin-top: min(16px, 1.1vw);
}
.p-digital__card-img1 {
  position: absolute;
  z-index: 1;
  left: 2%;
  top: 3%;
  width: 82%;
  height: 86%;
  object-fit: cover;
}
.p-digital__card-img2 {
  position: absolute;
  z-index: 2;
  left: 55%;
  top: 52%;
  width: 43%;
  height: 45%;
  object-fit: cover;
}
.p-digital__card-sub {
  width: 100%;
  margin-top: min(18px, 1.25vw);
  padding: min(9px, 0.63vw) min(18px, 1.25vw);
  background: #113b7a;
  color: #fff;
  font-size: min(19px, 1.32vw);
  line-height: 1.5;
}
.p-digital__card-desc {
  width: 100%;
  margin-top: min(13px, 0.9vw);
  color: #333;
  font-size: min(17px, 1.18vw);
  line-height: 1.65;
}
.p-digital__more {
  align-self: flex-end;
  margin-top: auto;
  padding-top: min(14px, 0.97vw);
  display: inline-flex;
  align-items: center;
  gap: min(10px, 0.7vw);
  border-bottom: 1px solid #333;
  color: #333;
  font-size: min(16px, 1.111vw);
  line-height: 1;
}
.p-digital__more-arrow {
  position: relative;
  width: min(20px, 1.389vw);
  height: min(20px, 1.389vw);
  background: #333;
}
.p-digital__more-arrow::before {
  content: "";
  position: absolute;
  left: 30%;
  top: 50%;
  width: 28%;
  height: 28%;
  border: solid #fff;
  border-width: 1px 1px 0 0;
  transform: translate(-50%, -50%) rotate(45deg);
}
/*-------message------*/
/* フロー組み（画像ブロック → 縦書きメッセージ） */
.p-msg {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: #102c57;
}
/* 上部4枚画像（高さは画像のアスペクトが決める） */
.p-msg__images {
  position: relative;
  z-index: 0;
  width: 100%;
  display: flex;
}
.p-msg__images img {
  flex: 1;
  width: 25%;
  height: auto;
}
/* MESSAGE タイトルボックス（画像ブロック基準で配置） */
.p-msg__ttl {
  position: absolute;
  z-index: 1;
  left: 32.153%;
  top: 62.414%; /* 362/580 */
  width: 35.764%;
  height: 30.172%; /* 175/580 */
  background: rgba(255, 255, 255, 0.5);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #333;
}
.p-msg__ttl-en {
  font-size: min(60px, 4.167vw);
  letter-spacing: 0.08em;
  line-height: 1;
}
.p-msg__ttl-line {
  display: block;
  width: min(360px, 25vw);
  height: 1px;
  margin: min(14px, 0.97vw) 0 min(8px, 0.55vw);
  background: #333;
}
.p-msg__ttl-ja {
  font-size: min(36px, 2.5vw);
  letter-spacing: 0.1em;
  line-height: 1;
}
/* 縦書きメッセージ（縦書きの列送りに高さが要るのでここだけ高さを持たせる） */
.p-msg__text {
  position: relative;
  z-index: 1;
  width: fit-content;
  margin: min(45px, 3.125vw) min(203px, 14.097vw) 0 auto;
  height: min(368px, 25.556vw);
  display: flex;
  flex-direction: row-reverse;
  align-items: flex-start;
  gap: min(84px, 5.83vw);
  color: #fff;
}
.p-msg__lead {
  position: relative;
  writing-mode: vertical-rl;
  font-size: min(30px, 2.5vw);
  line-height: 1.97; /* Figmaの列ピッチ71px÷36px。2行(人生/治療)の間隔 */
  letter-spacing: 0.08em;
}
.p-msg__lead-txt {
  position: relative;
  z-index: 1;
}
.p-msg__lead-bar {
  position: absolute;
  z-index: 0;
  top: 0;
  width: min(22px, 1.528vw);
  background: rgba(37, 85, 133, 0.7);
}
.p-msg__lead-bar--r {
  right: min(7px, 0.5vw);
  height: 66%;
}
.p-msg__lead-bar--l {
  left: min(38px, 2.64vw);
  height: 55%;
}
.p-msg__body {
  writing-mode: vertical-rl;
  font-size: min(20px, 1.389vw);
  line-height: 1.75;
  letter-spacing: 0.06em;
}
.p-msg__body p {
  margin: 0; /* 1行1pのため。縦書きで各pが1列になる */
  line-height: 2;
}
.p-msg__accent {
  color: #cdc1a4;
}
.p-msg__body .p-msg__body--st1 {
  margin: 0 0 0 2em;
}
/* ===== SP：MESSAGE（画像帯→タイトル→横書き中央） ===== */
@media screen and (max-width: 680px) {
  .p-msg {
    height: auto;
    max-height: none;
    padding-bottom: 0;
  }
  .p-msg__images {
    height: 40.3vw; /* 151/375 */
  }
  .p-msg__images img {
    height: 100%;
    object-fit: cover;
  }
  .p-msg__ttl {
    top: 25.1vw; /* 94/375 */
    left: 32.15%;
    width: 35.76%;
    height: 12.15vw;
  }
  .p-msg__ttl-en {
    font-size: 6.13vw;
  }
  .p-msg__ttl-line {
    width: 25vw;
  }
  .p-msg__ttl-ja {
    font-size: 3.73vw;
  }
  /* 本文：横書き・中央 */
  .p-msg__text {
    width: auto;
    height: auto;
    flex-direction: column;
    align-items: center;
    gap: 6vw;
    margin: 9vw 0 0;
    text-align: center;
  }
  .p-msg__lead {
    writing-mode: horizontal-tb;
    font-size: 6.4vw;
    text-align: center;
    line-height: 1.5;
  }
  .p-msg__lead-bar {
    display: none;
  }
  .p-msg__body {
    writing-mode: horizontal-tb;
    font-size: 3.47vw;
    text-align: center;
    line-height: 1.9;
  }
  .p-msg__body .p-msg__body--st1 {
    margin: 0;
  }
  .p-msg__body .p-msg__body--st1.p-msg__body--st2 {
    margin: 0 0 1em 0;
  }
}
/*-------menu（診療メニュー）------*/
/* フロー組み（高さはメニュー表が決める）。背景・上線・見出しは絶対配置 */
.p-menu {
  position: relative;
  width: 100%;
  padding-block: min(80px, 5.556vw);
  overflow: hidden;
  background: #102c57;
}
.p-menu__bg {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-menu__overlay {
  position: absolute;
  z-index: 1;
  inset: 0;
  background: rgba(0, 0, 0, 0.7);
}
.p-menu__topline {
  position: absolute;
  z-index: 2;
  left: 0;
  top: min(15px, 1.042vw);
  width: 100%;
  height: 1px;
  background: rgba(255, 255, 255, 0.6);
}
.p-menu__ttl {
  position: absolute;
  z-index: 2;
  left: 75.07%;
  bottom: min(100px, 6.944vw);
  color: #fff;
  text-align: center;
}
.p-menu__ttl-en {
  font-size: min(55px, 3.819vw);
  letter-spacing: 0.18em;
  padding-bottom: min(8px, 0.55vw);
  border-bottom: 1px solid #fff;
  line-height: 1;
}
.p-menu__ttl-ja {
  margin-top: min(12px, 0.83vw);
  font-size: min(24px, 1.667vw);
  letter-spacing: 0.15em;
  line-height: 1;
}
/* メニュー表 */
.p-menu__grid {
  position: relative;
  z-index: 2;
  margin-left: min(160px, 11.111vw);
  width: fit-content;
  display: flex;
  flex-direction: column;
  gap: min(15px, 1.042vw);
}
.p-menu__row {
  display: flex;
  gap: min(20px, 1.389vw);
}
.p-menu__cat {
  flex: 0 0 min(230px, 12.847vw);
  height: min(103px, 7.153vw);
  display: flex;
  align-items: center;
  justify-content: center;
  background: #102c57;
  clip-path: polygon(0 0, 88% 0, 100% 100%, 0 100%);
  color: #fff;
  font-size: min(20px, 1.389vw);
  letter-spacing: 0.05em;
}
.p-menu__cell {
  position: relative;
  flex: 0 0 min(165px, 11.458vw);
  height: min(103px, 7.153vw);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: #e9e8e7;
  border: 1px solid #fff;
  color: #333;
  font-size: min(20px, 1.389vw);
  line-height: 1.2;
}
.p-menu__cell--2line {
  font-size: min(18px, 1.25vw);
}
.p-menu__cell:hover {
  opacity: 0.8;
}
.p-menu__arrow {
  position: absolute;
  right: 0;
  bottom: 0;
  border: min(8px, 0.556vw) solid transparent;
  border-right-color: #102c57;
  border-bottom-color: #102c57;
}
/* ===== SP：MENU（グリッド縮小配置／375基準・高さ344） ===== */
@media screen and (max-width: 680px) {
  .p-menu {
    padding-block: 12vw 30.1vw; /* 45 / 113（375基準） */
  }
  .p-menu__topline {
    top: 4vw; /* 15/375 */
  }
  .p-menu__ttl {
    left: 50%;
    top: auto;
    bottom: 40px;
  }
  .p-menu__ttl-en {
    font-size: 10.4vw;
  }
  .p-menu__ttl-ja {
    font-size: 4.27vw;
  }
  .p-menu__grid {
    margin-left: 3.47vw; /* 13/375 */
    gap: 5.3vw;
    width: 100%;
  }
  .p-menu__row {
    flex-wrap: wrap; /* ← 追加：折り返し可に */
    gap: 5px;
  }
  .p-menu__cat {
    flex-basis: 100%; /* ← 変更：23.33vw → 100%（タイトルを全幅で1段目に） */
    width: 100%; /* ← 追加 */
    height: 12.99vw;
    font-size: 1.4rem;
    border-left: 3px solid #fff; /* ← #ffff → #fff（表記だけ修正、色は同じ白） */
  }
  .p-menu__cell {
    flex-basis: calc(100% / 4 - 10px); /* 78/375 */
    height: 12.99vw;
    font-size: 1.2rem;
  }
  .p-menu__cell--2line {
    font-size: 1rem;
  }
  .p-menu__arrow {
    border-width: 2vw;
  }
}
/* ===== SP：DIGITAL 縦積み（基本ルールの後に置き詳細度勝ち／上部＝ヒーロー→円→イントロ） ===== */
@media screen and (max-width: 680px) {
  .p-digital {
    height: auto;
    max-height: none;
    background: #102c57;
    padding-top: 127vw; /* ヒーロー帯ぶん確保 */
    padding-bottom: 12vw;
    display: flex;
    flex-direction: column;
  }
  /* ヒーロー帯（padding-top内にabsolute固定） */
  .p-digital__hero {
    top: 8vw;
    left: 0;
    width: 100%;
    height: 126.67vw;
  }
  .p-digital__hero2 {
    left: 59.47%;
    top: 8vw;
    width: 40.53%;
    height: 74.13vw;
  }
  .p-digital__hero3 {
    left: 0;
    top: 51.47vw;
    width: 100%;
    height: 132.5vw;
  }
  .p-digital__ring {
    left: 7.2%;
    top: 0;
    width: 37.68%;
  }
  .p-digital__htitle {
    left: 15.25%;
    top: 12vw;
  }
  .p-digital__htitle-en {
    font-size: 6.4vw;
  }
  .p-digital__htitle-ja {
    font-size: 4.8vw;
  }
  .p-digital__vtext {
    left: 39.73%;
    top: 39.2vw;
    font-size: 3.2rem;
  }
  .p-digital__vtext-x {
    font-size: 7vw;
  }
  /* 縦書き（top39.2vw＋約74.7vw）の下に配置。
     ページがSPで横にはみ出すため right 基準だと画面外になる → 左基準＋vw幅で収める */
  .p-digital__vlead {
    left: 0;
    right: auto;
    width: 100%;
    top: 34%;
    text-align: right;
    font-size: 1.8rem;
    line-height: 1.8;
  }
  /* 円（PICK UP）→ イントロ の順でフロー縦積み */
  .p-digital__intro-band,
  .p-digital__grid--top,
  .p-digital__grid--bottom,
  .p-digital__cards-tri {
    display: none;
  }
  .p-digital__pu--01,
  .p-digital__pu--03 {
    left: 10px;
    text-align: left;
  }
  .p-digital__pu--02,
  .p-digital__pu--04 {
    right: 10px;
    left: auto;
    text-align: right;
  }
  .p-digital__circle {
    position: relative;
    left: auto;
    top: auto;
    order: 1;
    width: 100%;
    background: #fff;
    margin: 8vw auto 0;
  }
  .p-digital__pu-no {
    font-size: 2.66vw;
  }
  .p-digital__pu-no em {
    font-size: 4.27vw;
  }
  .p-digital__pu-ja {
    font-size: 4.8vw;
  }
  .p-digital__pu-lg {
    font-size: 6.4vw;
  }
  .p-digital__pu-en {
    height: auto;
    margin-top: 1vw;
    padding-inline: 2vw;
    font-size: 2.4vw;
  }
  .p-digital__intro {
    position: relative;
    left: auto;
    top: auto;
    order: 2;
    width: 100%;
    margin: 0 auto;
    background: #fff;
    padding: 20px 5.55% 30px;
  }
  .p-digital__intro-lead {
    font-size: 4.8vw;
  }
  .p-digital__intro-lead2 {
    font-size: 4.27vw;
  }
  .p-digital__intro-lg {
    font-size: 5.3vw;
  }
  .p-digital__intro-line {
    width: 100%;
    margin: 3vw 0;
    background: rgba(255, 255, 255, 0.6);
  }
  .p-digital__intro-sub {
    font-size: 3.73vw;
    margin-bottom: 3vw;
  }
  .p-digital__intro-list {
    gap: 3vw;
    font-size: 4.27vw;
  }
  .p-digital__ck-lg {
    font-size: 4.8vw;
  }
  .p-digital__cbox {
    width: 4.8vw;
    height: 4.8vw;
  }
  /* カード：1カラムフロー＋背景（三角＋格子を擬似要素で背面） */
  .p-digital__cards {
    position: relative;
    left: auto;
    top: auto;
    order: 3;
    width: 100%;
    margin: 12vw auto 0;
    padding: 20px 3.5vw;
    grid-template-columns: 1fr;
    row-gap: 64px;
  }
  .p-digital__cards::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background: rgba(44, 92, 139, 0.7);
    clip-path: polygon(0 0, 100% 88%, 100% 100%, 0 100%);
  }
  .p-digital__cards::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background-image:
      repeating-linear-gradient(
        0deg,
        rgba(255, 255, 255, 0.08) 0 1px,
        transparent 1px 5.33vw
      ),
      repeating-linear-gradient(
        90deg,
        rgba(255, 255, 255, 0.08) 0 1px,
        transparent 1px 5.33vw
      );
  }
  /* カード本体：縦フロー（白背景はカード自体に付与） */
  .p-digital__card {
    position: relative;
    z-index: 1;
    aspect-ratio: auto;
    background: #fff;
    padding: 27px 23px 20px;
    display: flex;
    flex-direction: column;
  }
  .p-digital__card::before {
    display: none;
  }
  /* バッジ：上に飛び出す紺の円 */
  .p-digital__badge {
    left: 50%;
    top: -52px;
    width: 64px;
    height: 64px;
    transform: translateX(-50%);
  }
  .p-digital__badge-t {
    font-size: 10px;
  }
  .p-digital__badge-n {
    font-size: 24px;
  }
  /* ビジュアル：タイトル帯＋画像2枚の重なり（ここだけ絶対配置OK） */
  .p-digital__card-bar {
    position: static;
    width: 100%;
    height: auto;
    margin-top: 2px;
    padding: 9px 14px;
    font-size: 18px;
    line-height: 1.35;
  }
  .p-digital__card-visual {
    position: relative;
    width: 100%;
    aspect-ratio: 304 / 180;
    margin-top: 14px;
  }
  .p-digital__card-img1 {
    left: 2%;
    top: 3%;
    width: 82%;
    height: 86%;
  }
  .p-digital__card-img2 {
    left: 55%;
    top: 52%;
    width: 43%;
    height: 45%;
  }
  /* サブ帯：紺の帯（16px） */
  .p-digital__card-sub {
    position: static;
    width: 100%;
    height: auto;
    margin-top: 16px;
    padding: 7px 14px;
    font-size: 16px;
  }
  /* 説明文（14px） */
  .p-digital__card-desc {
    position: static;
    width: auto;
    margin-top: 14px;
    padding-inline: 20px;
    font-size: 14px;
  }
  /* View More：右寄せ */
  .p-digital__more {
    position: static;
    align-self: flex-end;
    margin-top: 16px;
    font-size: 11px;
  }
  .p-digital__more-arrow {
    width: 12px;
    height: 12px;
  }
}
/*-------special（当院の専門治療）------*/
/* 固定アスペクト(1440x3410)。子要素は%配置＋ min(px, vw) でスケール */
.p-special {
  position: relative;
  width: 100%;
  background: #102c57;
}
/* 上部ヒーローゾーン：hero画像・斜めバンド・リード文が重なるのでこの箱内だけ overlay。
   高さは自前で確保し、カードはこの箱の「後ろ」に通常フローで続く。 */
.p-special__top {
  position: relative;
  height: min(770px, 53.472vw);
}
.p-special__hero {
  position: absolute;
  z-index: 1;
  left: 6.319%;
  top: 0;
  width: 56.944%;
  height: 100%;
  object-fit: cover;
}
.p-special__band {
  position: absolute;
  z-index: 0;
  left: 0;
  top: min(195px, 13.542vw);
  width: 100%;
  height: min(380px, 26.389vw);
  background: rgba(78, 121, 164, 0.7);
}
.p-special__lead {
  position: absolute;
  z-index: 2;
  right: 9%;
  top: min(89px, 6.181vw); /* 上部ゾーン基準（旧: セクション比2.6%） */
  writing-mode: vertical-rl;
  display: flex;
  flex-direction: column; /* 縦書き文脈でblock方向=右→左。4列を横並びに */
  align-items: flex-start; /* 各列を上揃え */
  gap: min(24px, 1.667vw);
  color: #fff;
  text-align: right;
}
.p-special__lead-lg {
  font-size: min(50px, 3.472vw);
  line-height: 1.2;
  letter-spacing: 0.08em;
}
.p-special__lead-sm {
  position: relative;
  font-size: min(36px, 2.5vw);
  line-height: 1.15;
  letter-spacing: 0.08em;
}
/* 各行を span で区切る。縦書きでブロック化して1列ずつに */
.p-special__lead-lg > span,
.p-special__lead-sm > span {
  display: block;
  position: relative;
  line-height: 1.5;
  white-space: nowrap;
}
/* 段々と低く：st1(どんな)=0 → st2(自信) → st3(お口) → st4(当院) の順に下げる（Figma実測） */
.p-special__lead--st1 {
  letter-spacing: 0.25em;
}
.p-special__lead--st2 {
  letter-spacing: 0.25em;
  top: min(116px, 8.056vw);
}
.p-special__lead--st3 {
  top: min(156px, 10.833vw);
}
.p-special__lead--st4 {
  top: min(311px, 21.597vw);
}
/* お口の状態…列の右上に縦の区切り線（Figma: 195px、お口列の位置に合わせる） */
.p-special__lead-sm::before {
  content: "";
  position: absolute;
  top: min(156px, 10.833vw);
  z-index: -1;
  right: min(8px, 0.556vw);
  width: 8px;
  height: min(195px, 13.542vw);
  background: #113b7a;
}
/* カード：通常フローの縦並び。左右オフセットの交互でジグザグを再現。
   カード内部（バッジ・本文・画像・ボタン）は relative カード基準の absolute のまま。 */
.p-special__card {
  position: relative;
  width: 77.222%;
  aspect-ratio: 1112 / 553;
  margin-top: min(
    102px,
    7.09vw
  ); /* カード間の縦間隔（旧ピッチ 45.5vw − カード高 38.4vw） */
  margin-left: 18.333%; /* 奇数カード（1・3枚目）の左オフセット */
  background: #fff;
  border: 3px solid #426d99;
  box-shadow: 0 0 0 min(6px, 0.42vw) #fff;
}
.p-special__card--rev {
  margin-left: 7.917%; /* 偶数カード（2・4枚目）の左オフセット */
}
/* 円バッジ */
.p-special__badge {
  position: absolute;
  z-index: 3;
  left: -4.4%;
  top: -9.77%;
  width: 11.69%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #113b7a;
  font-size: min(16px, 1.111vw);
  line-height: 1.1;
}
/* テキスト側 */
.p-special__body {
  position: absolute;
  z-index: 2;
  top: 12%;
  left: 4.77%;
  width: 44%;
}
.p-special__card--rev .p-special__body {
  left: 52.88%;
  text-align: right;
}
.p-special__tit {
  font-size: min(32px, 2.222vw);
  line-height: 1.4;
  color: #111;
}
.p-special__tit-line {
  display: block;
  width: 73%;
  height: 2px;
  margin: min(12px, 0.83vw) 0 min(16px, 1.11vw);
  background: #113b7a;
}
.p-special__card--rev .p-special__tit-line {
  margin-left: auto;
}
.p-special__subbar {
  display: flex;
  align-items: center;
  height: min(47px, 3.269vw);
  padding-inline: min(12px, 0.83vw);
  background: #426d99;
  color: #fff;
  font-size: min(16px, 1.111vw);
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.p-special__list {
  margin-top: min(18px, 1.25vw);
  font-size: min(16px, 1.111vw);
  line-height: 2.05;
  color: #333;
  text-align: left;
}
.p-special__list li {
  white-space: nowrap;
}
/* 画像 */
.p-special__img {
  position: absolute;
  z-index: 2;
  top: 11.21%;
  left: 52.7%;
  width: 43.17%;
  height: 77.76%;
  object-fit: cover;
}
.p-special__card--rev .p-special__img {
  left: 4.77%;
}
/* 詳しく見る */
.p-special__more {
  position: absolute;
  z-index: 3;
  left: 73.9%;
  top: 94.76%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: min(10px, 0.7vw);
  width: 17.09%;
  height: 8.5%;
  background: #426d99;
  border: 2px solid #fff;
  color: #fff;
  font-size: min(18px, 1.25vw);
}
.p-special__more-tri {
  width: 0;
  height: 0;
  border-top: min(6px, 0.42vw) solid transparent;
  border-bottom: min(6px, 0.42vw) solid transparent;
  border-left: min(9px, 0.63vw) solid #fff;
}
.p-special__bottom {
  position: relative;
  z-index: 1;
}
.p-special__grid {
  position: absolute;
  z-index: -1;
  left: 0;
  top: 0;
  width: 100%;
  height: 95%;
  background-image:
    repeating-linear-gradient(
      0deg,
      rgba(255, 255, 255, 0.08) 0 1px,
      transparent 1px 5.33vw
    ),
    repeating-linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.08) 0 1px,
      transparent 1px 5.33vw
    );
}
/* ===== SP：SPECIAL（横型カード→縦型フローに再構成） ===== */
@media screen and (max-width: 680px) {
  .p-special {
    height: auto;
    max-height: none;
    padding-bottom: 280px;
  }
  /* 上部ゾーンはSPでは高さautoにして hero→lead を素直にフロー */
  .p-special__top {
    height: auto;
  }
  /* 上部タイトル（画像＋縦書き） */
  .p-special__hero {
    position: relative;
    top: auto;
    width: 88%;
    height: 88vw;
    margin: 0 auto;
  }
  .p-special__band {
    top: 19vw;
    height: 50vw;
  }
  /* 下部テキスト：画像の下に格子柄背景＋縦書き（アブソリュートなし・フロー） */
  .p-special__lead {
    position: static;
    right: auto;
    top: auto;
    width: 100%;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 6.4vw;
    padding: 13vw 0;
    text-align: center;
    background-image:
      repeating-linear-gradient(
        0deg,
        rgba(255, 255, 255, 0.08) 0 1px,
        transparent 1px 5.33vw
      ),
      repeating-linear-gradient(
        90deg,
        rgba(255, 255, 255, 0.08) 0 1px,
        transparent 1px 5.33vw
      );
  }
  .p-special__lead-lg {
    font-size: 3rem;
    line-height: 1.4;
  }
  .p-special__lead-sm {
    font-size: 2.4rem;
    line-height: 1.3;
    border-right: 1px solid rgba(255, 255, 255, 0.5);
    padding-right: 4.8vw;
  }
  .p-special__lead-sm::before {
    content: none; /* SPは上記border-rightを使う。PC用の縦線は無効化 */
  }
  /* SPは段差を付けない（PC用のtopをリセット） */
  .p-special__lead--st2,
  .p-special__lead--st3,
  .p-special__lead--st4 {
    top: 0;
  }
  /* カード：縦フロー1列・中央寄せ（PCのジグザグ margin-left を打ち消す） */
  .p-special__card {
    position: relative;
    width: 93.33vw;
    aspect-ratio: auto;
    margin: 160px auto 0;
    padding-bottom: 11vw;
  }
  .p-special__card.p-special__card--first {
    margin: 0 auto;
  }
  .p-special__bottom {
    padding-top: 60px;
  }
  .p-special__card--rev {
    margin-left: auto; /* PCの 7.917% を中央寄せへリセット */
  }
  .p-special__badge {
    left: 50%;
    top: 0;
    transform: translate(-50%, -50%);
    width: 130px;
    font-size: 3.73vw;
  }
  .p-special__body,
  .p-special__card--rev .p-special__body {
    position: static;
    left: auto;
    top: auto;
    width: auto;
    padding: 80px 10px 0;
    text-align: center;
  }
  /* タイトル＋ライン：奇数カードは左寄せ／偶数カード(--rev)は右寄せで交互 */
  .p-special__tit {
    font-size: 4.8vw;
    text-align: left;
  }
  .p-special__card--rev .p-special__tit {
    text-align: right;
  }
  .p-special__tit-line {
    width: 55%;
    margin: 3vw auto 3vw 0;
  }
  .p-special__card--rev .p-special__tit-line {
    margin: 3vw 0 3vw auto;
  }
  .p-special__subbar {
    height: auto;
    padding: 2vw 3vw;
    font-size: 3.2vw;
    white-space: normal;
    justify-content: flex-start;
    text-align: left;
  }
  .p-special__list {
    font-size: 11.5px;
    text-align: left;
    display: inline-block;
  }
  .p-special__list li {
    white-space: normal;
  }
  .p-special__img,
  .p-special__card--rev .p-special__img {
    position: static;
    left: auto;
    top: auto;
    width: 88%;
    height: 58vw;
    margin: 5vw auto 0;
    display: block;
  }
  /* 詳しく見る：カード下端に半分飛び出す */
  .p-special__more {
    position: absolute;
    left: 50%;
    bottom: 0;
    top: auto;
    transform: translate(-50%, 50%);
    width: 50.67vw;
    height: 12.5vw;
    margin: 0;
    font-size: 4.27vw;
  }
}
/*-------reason（選ばれる4つの理由）------*/
/* 背景(bg/overlay)はセクション全面に敷き、タイトル・カードは通常フロー。
   高さはコンテンツ依存（旧: 固定 1440x1256 + 絶対配置）。カード内部は自己完結。 */
.p-reason {
  position: relative;
  width: 100%;
  padding: min(30px, 2.083vw) 0 min(70px, 4.861vw);
  background: rgba(44, 92, 139, 0.7);
}
.p-reason__bg {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-reason__overlay {
  position: absolute;
  z-index: 1;
  inset: 0;
  background: rgba(44, 92, 139, 0.7);
}
/* タイトル（フロー） */
.p-reason__title {
  position: relative;
  z-index: 2;
  width: min(980px, 68.056vw);
  margin-left: 1.25%;
  color: #fff;
}
.p-reason__sub {
  position: absolute;
  right: 7%;
  top: 7%;
  font-size: min(24px, 1.667vw);
  line-height: 1.5;
  text-align: center;
  letter-spacing: 0.05em;
}
.p-reason__title-main {
  display: flex;
  align-items: flex-end;
  gap: min(20px, 1.4vw);
  padding-left: min(80px, 5.5vw);
  margin-top: -10%;
}
.p-reason__brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  line-height: 1.1;
  letter-spacing: 0.12em;
  padding-bottom: 2em;
}
.p-reason__brand-lg {
  font-size: min(64px, 4.444vw);
}
.p-reason__brand-sm {
  font-size: min(26px, 1.806vw);
}
.p-reason__42 {
  display: flex;
  align-items: flex-end;
  gap: min(20px, 1.4vw);
}
.p-reason__num4 {
  display: inline-block;
  font-size: min(250px, 17.361vw); /* Figma: 250px */
  font-weight: 300;
  line-height: 0.8;
  letter-spacing: -0.02em;
  transform: scaleX(0.8); /* Figmaの condensed（wdth 75）を近似 */
  transform-origin: bottom center;
}
.p-reason__tsu {
  display: inline-flex;
  align-items: baseline;
  padding-bottom: min(6px, 0.42vw);
  line-height: 1;
}
.p-reason__tsu-s {
  font-size: min(70px, 4.861vw);
}
.p-reason__tsu-l {
  font-size: min(100px, 6.944vw);
}
.p-reason__title-line {
  display: block;
  width: 100%;
  height: 1px;
  margin-top: min(14px, 1vw);
  background: rgba(255, 255, 255, 0.85);
}
/* カード（フロー。左寄せ・右側は背景写真を見せる） */
.p-reason__cards {
  position: relative;
  z-index: 2;
  width: 90%;
  margin-left: auto;
  margin-right: auto;
  margin-top: min(40px, 2.8vw);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: min(30px, 2.083vw);
  row-gap: min(57px, 3.96vw);
}
.p-reason__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 0 min(30px, 2.083vw) min(40px, 2.778vw); /* 左右の余白は padding で */
  background: #fff; /* 白背景は background で（旧: ::before） */
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.25);
  color: #111;
}
/* Reason番号（カード上辺をまたぐ） */
.p-reason__rno {
  align-self: flex-start;
  display: flex;
  align-items: flex-end;
  gap: min(14px, 0.97vw);
  margin-top: min(-26px, -1.806vw); /* 上辺からはみ出させて重ねる */
  margin-bottom: min(16px, 1.111vw);
  font-family: "M PLUS 1p", sans-serif;
}
.p-reason__rno-en {
  font-size: min(24px, 1.667vw);
  letter-spacing: 0.08em;
  padding-bottom: min(8px, 0.55vw);
}
.p-reason__rno-num {
  display: inline-flex;
  align-items: baseline;
  line-height: 1;
}
.p-reason__rno-num em {
  font-style: normal;
  font-size: min(28px, 1.944vw);
}
.p-reason__rno-num b {
  font-weight: 500;
  font-size: min(50px, 3.472vw);
}
.p-reason__rno-slash {
  width: min(3px, 0.21vw);
  height: min(50px, 3.472vw);
  margin-bottom: min(4px, 0.28vw);
  background: #111;
  transform: rotate(28deg);
}
/* カード内テキスト */
.p-reason__ctit1 {
  font-size: min(24px, 1.667vw);
  letter-spacing: 0.08em;
  width: 100%;
  text-align: left;
}
.p-reason__ctit2 {
  margin-top: 0;
  font-size: min(22px, 2.222vw);
  color: #113b7a;
  width: 100%;
  text-align: left;
}
.p-reason__cimg {
  display: block;
  width: 100%; /* padding 分だけ内側に収まる */
  aspect-ratio: 330 / 160;
  margin-top: min(22px, 1.528vw);
  background: #d9d9d9;
}
.p-reason__clist {
  margin-top: min(22px, 1.528vw);
  display: flex;
  flex-direction: column;
  gap: min(7px, 0.49vw);
  width: 100%;
}
/* 1行目：チェック＋em（ラベル）／2行目：説明テキスト（チェック分だけ字下げ） */
.p-reason__clist li {
  --ck-w: min(12px, 0.833vw);
  --ck-gap: min(10px, 0.7vw);
  display: block;
  padding-left: calc(var(--ck-w) + var(--ck-gap));
  text-indent: calc((var(--ck-w) + var(--ck-gap)) * -1);
  font-size: min(16px, 1.111vw);
  line-height: 1.6;
  color: #111;
  text-align: left;
}
.p-reason__clist li em {
  vertical-align: middle;
}
/* em の直後で強制改行して、説明テキストを次の行へ送る */
.p-reason__clist li em::after {
  content: "\A";
  white-space: pre;
}
.p-reason__ck {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  margin-right: var(--ck-gap);
  width: var(--ck-w);
  height: var(--ck-w);
}
.p-reason__ck::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 42%;
  width: 45%;
  height: 80%;
  border: solid #113b7a;
  border-width: 0 2px 2px 0;
  transform: translate(-50%, -50%) rotate(45deg);
}
/* ===== SP：REASON（4カード1列） ===== */
@media screen and (max-width: 820px) {
  .p-reason__clist li {
    flex-wrap: wrap;
    text-align: left;
  }
}
@media screen and (max-width: 680px) {
  .p-reason {
    height: auto;
    max-height: none;
    padding-top: 90px;
    padding-bottom: 14vw;
  }
  .p-reason__bg,
  .p-reason__overlay {
    display: none;
  }
  /* タイトル：SPは ブランド → サブ → [4つの理由] → 線 の縦積み（Figma）。
     title-main を display:contents で解体し、order でブランドをサブより前へ。 */
  .p-reason__title {
    position: absolute;
    width: 100%;
    margin-left: 0; /* PC用の左オフセットを打ち消す */
    padding: 11vw 3.47vw 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    top: -280px;
  }
  .p-reason__title-main {
    display: contents;
  }
  .p-reason__brand {
    order: -1; /* サブより前（最上段）へ */
    padding-bottom: 0; /* PC用の下余白を打ち消す */
  }
  .p-reason__sub {
    position: static;
    right: auto;
    top: auto;
    text-align: center;
    font-size: 5.33vw; /* Figma 20px */
    margin: 7vw 0 0;
  }
  .p-reason__42 {
    justify-content: center;
    align-items: flex-end;
    gap: 1.5vw;
    margin-top: 2vw;
  }
  .p-reason__brand-lg {
    font-size: 17.07vw; /* Figma 64px */
  }
  .p-reason__brand-sm {
    font-size: 6.93vw; /* Figma 26px */
  }
  .p-reason__num4 {
    font-size: 34.13vw; /* Figma 128px */
    transform: none; /* SPはコンデンスしない */
  }
  .p-reason__tsu-s {
    font-size: 13.33vw; /* Figma 50px */
  }
  .p-reason__tsu-l {
    font-size: 21.33vw; /* Figma 80px */
  }
  /* カード：1カラム */
  .p-reason__cards {
    position: static;
    width: 93.33vw;
    margin: 8vw auto 0;
    grid-template-columns: 1fr;
    row-gap: 5.3vw;
  }
  /* カード内の余白・間隔はSP用に広げる（PCのvw値だと詰まるため） */
  .p-reason__card {
    padding: 0 6.4vw 9vw;
    margin-bottom: 30px;
  }
  .p-reason__rno {
    margin-top: -6vw;
    margin-bottom: 4vw;
  }
  .p-reason__cimg {
    margin-top: 5vw;
  }
  .p-reason__clist {
    margin-top: 5vw;
  }
  .p-reason__rno-en {
    font-size: 3.73vw;
  }
  .p-reason__rno-num em {
    font-size: 4.27vw;
  }
  .p-reason__rno-num b {
    font-size: 8vw;
  }
  .p-reason__rno-slash {
    width: 2px;
    height: 8vw;
  }
  .p-reason__ctit1 {
    font-size: 2rem;
  }
  .p-reason__ctit2 {
    margin-top: 2vw;
    font-size: 2.2rem;
  }
  .p-reason__clist li {
    --ck-w: 2.87vw;
    --ck-gap: 2.2vw;
    font-size: 1.4rem;
  }
}
/*-------private（完全貸切診療）------*/
/* 固定アスペクト(1340x685・左右50px余白)。子要素は%配置＋ min(px, vw) */
.p-private {
  position: relative;
  width: min(93.056%, 1340px);
  margin: clamp(40px, 6.94vw, 100px) auto 0;
  overflow: hidden;
}
.p-private__bg {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-private__border {
  position: absolute;
  z-index: 1;
  inset: min(10px, 0.75vw);
  border: 3px solid #fff;
  pointer-events: none;
}
/* 中央の青パネル（縞テクスチャ＋青オーバーレイ）はコンテンツ自身の背景に統合。
   幅＝旧パネル幅、左右 padding でテキスト幅を確保。高さはコンテンツ依存。 */
.p-private__content {
  position: relative;
  z-index: 2;
  width: 68%;
  margin-inline: auto;
  padding: min(44px, 3.3vw) min(65px, 4.85vw) min(60px, 4.5vw);
  color: #fff;
  text-align: center;
}
/* 斜線レイヤー（白）：青パネルより左右 25px 広く、最背面。縁に白斜線がはみ出す */
.p-private__content::before {
  content: "";
  position: absolute;
  z-index: -2;
  top: 0;
  bottom: 0;
  left: max(-25px, -1.865vw);
  right: max(-25px, -1.865vw);
  background: repeating-linear-gradient(
    -45deg,
    #fff 0 1px,
    transparent 1px 4.8px
  );
}
/* 薄い青レイヤー：コンテンツ幅ぴったり。斜線の上・テキストの下 */
.p-private__content::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: rgba(37, 85, 133, 0.7);
}
.p-private__en {
  font-size: min(18px, 1.25vw);
  letter-spacing: 0.35em;
  text-indent: 0.35em;
}
.p-private__bar {
  margin-top: min(16px, 1.1vw);
  height: min(50px, 3.65vw);
  display: flex;
  align-items: center;
  justify-content: center;
  background: #102c57;
  font-size: min(28px, 1.944vw);
  letter-spacing: 0.05em;
}
.p-private__tit {
  margin-top: min(20px, 1.4vw);
  font-size: min(36px, 2.5vw);
  letter-spacing: 0.05em;
}
.p-private__lead {
  margin-top: min(56px, 3.9vw);
  text-align: center;
  font-size: min(20px, 1.389vw);
}
.p-private__txt {
  margin-top: min(28px, 1.95vw);
  font-size: min(20px, 1.389vw);
  line-height: 1.6;
}
.p-private__more {
  position: relative;
  margin-top: min(48px, 3.3vw);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: min(14px, 0.97vw);
  width: min(205px, 15.3vw);
  height: min(38px, 2.77vw);
  background: #102c57;
  color: #fff;
  font-size: min(18px, 1.25vw);
  letter-spacing: 0.08em;
}
.p-private__more-line {
  position: absolute;
  right: 100%;
  top: 50%;
  width: min(40px, 2.9vw);
  height: 1px;
  background: #fff;
}
.p-private__more-arrow {
  width: min(9px, 0.63vw);
  height: min(9px, 0.63vw);
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: rotate(45deg);
}
/* ===== SP：PRIVATE（縦長・中央パネル拡大） ===== */
@media screen and (max-width: 680px) {
  .p-private {
    width: min(93%, 500px);
  }
  .p-private__content {
    width: 85.6%;
    padding: 8vw 3vw 9vw;
  }
  .p-private__en {
    font-size: 4.27vw;
  }
  .p-private__bar {
    height: 11.35vw;
    font-size: 6.4vw;
  }
  .p-private__tit {
    font-size: 5.6vw;
  }
  .p-private__lead {
    margin-top: 5vw;
    font-size: 3.73vw;
  }
  .p-private__txt {
    margin-top: 3.5vw;
    font-size: 3.47vw;
    text-align: left;
  }
  .p-private__more {
    margin-top: 5vw;
    width: 46.5vw;
    height: 8.6vw;
    font-size: 3.73vw;
  }
  .p-private__more-line {
    width: 9vw;
  }
}
/*-------gallery（左へ無限ループ）------*/
.p-gallery {
  padding-block: 0;
  overflow: hidden;
}
/* 画像は上下ジグザグ。スライドは固定高さ、画像を上下にオフセット */
.p-gallery .splide__track {
  overflow: hidden;
}
.p-gallery .splide__slide {
  height: min(337px, 23.4vw);
  display: flex;
  align-items: flex-start;
}
.p-gallery .splide__slide img {
  width: 100%;
  height: min(200px, 13.9vw);
  object-fit: cover;
  display: block;
}
.p-gallery__slide--down img {
  margin-top: min(137px, 9.5vw);
}
/* ===== SP：GALLERY（スライド高さ調整） ===== */
@media screen and (max-width: 680px) {
  .p-gallery .splide__slide {
    height: 50vw;
  }
  .p-gallery .splide__slide img {
    height: 29vw; /* 108/375 */
  }
  .p-gallery__slide--down img {
    margin-top: 21vw;
  }
}
/*-------access（Googleマップ）------*/
.p-access {
  padding-bottom: clamp(40px, var(--px-60), 60px);
  color: #fff;
}
.p-access__head {
  text-align: center;
}
.p-access__tit {
  font-size: min(42px, 2.917vw);
  letter-spacing: 0.06em;
  line-height: 1;
}
.p-access__line {
  display: block;
  width: 1px;
  height: min(30px, 2.083vw);
  margin: min(18px, 1.25vw) auto 0;
  background: rgba(255, 255, 255, 0.85);
}
/* Google Map 埋め込み枠（高さ確保） */
.p-access__map {
  position: relative;
  width: min(94.44%, 1360px);
  height: clamp(300px, 36.806vw, 530px);
  margin: clamp(16px, var(--px-30), 30px) auto 0;
  background: #e9e8e7;
  overflow: hidden;
}
.p-access__map iframe,
.p-access__map > * {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.p-access__foot {
  width: min(94.44%, 1360px);
  margin: min(10px, 0.7vw) auto 0;
  text-align: right;
}
.p-access__more {
  display: inline-flex;
  align-items: center;
  gap: min(8px, 0.55vw);
  color: #fff;
  font-size: min(20px, 1.389vw);
  letter-spacing: 0.05em;
}
.p-access__more-arrow {
  position: relative;
  width: min(16px, 1.11vw);
  height: min(12px, 0.83vw);
}
.p-access__more-arrow::before,
.p-access__more-arrow::after {
  content: "";
  position: absolute;
  top: 50%;
  width: min(7px, 0.49vw);
  height: min(7px, 0.49vw);
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: translateY(-50%) rotate(45deg);
}
.p-access__more-arrow::before {
  left: 0;
}
.p-access__more-arrow::after {
  left: min(6px, 0.42vw);
}
/* 20260804 */
.p-fv__copy.u-ltext {
  font-size: 120%;
  font-weight: 900;
  line-height: 1.5;
  border-bottom: 3px solid #123360;
}
/* CSS Document */

/* ===== staff：提携する歯科医師・技工士一覧（各人を行分け＋認定/専門を強調） ===== */
.c-partner-list {
  margin-top: min(20px, 1.389vw);
  border-top: 1px solid #e2ddd3;
}
.c-partner {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: min(4px, 0.6vw) min(20px, 1.389vw);
  padding: min(18px, 1.25vw) min(6px, 0.42vw);
  border-bottom: 1px solid #e2ddd3;
}
.c-partner__name {
  flex: 0 0 auto;
  min-width: min(220px, 15.28vw);
  font-weight: 700;
  font-size: clamp(16px, 1.25vw, 18px);
  line-height: 1.6;
}
.c-partner__desc {
  flex: 1 1 min(420px, 29.17vw);
  font-size: clamp(14px, 1.04vw, 16px);
  line-height: 1.7;
}
.c-partner__cert {
  display: inline-block;
  color: #c9a95c;
  font-weight: 700;
}
.c-partner__cert__one {
  padding-left: 0.25em;
}
.c-partner-list .c-partner__desc {
  margin-top: 0;
}
.c-partner.c-partner__center {
  align-items: center;
}
@media screen and (max-width: 680px) {
  .c-partner {
    display: block;
    padding: 3.7vw 1vw;
  }
  .c-partner__name {
    min-width: 0;
    font-size: 1.05rem;
    margin-bottom: 1.3vw;
  }
  .c-partner__desc {
    font-size: 0.95rem;
  }
}
.p-specialty {
  padding-inline: min(20px, 1.4vw);
}
.p-specialty__inner {
  box-sizing: border-box;
  width: min(1000px, 100%);
  margin-inline: auto;
  padding: min(50px, 3.5vw) min(48px, 3.3vw) min(46px, 3.2vw);
  background: #fff;
  box-shadow: 0 min(18px, 1.25vw) min(50px, 3.5vw) rgba(0, 0, 0, 0.06);
  text-align: center;
}
.p-specialty__lead {
  background: #e8e0d2;
  padding: min(26px, 1.8vw) min(20px, 1.4vw);
  margin-bottom: min(34px, 2.4vw);
}
.p-specialty__lead-sm {
  font-size: min(24px, 1.667vw);
  letter-spacing: 0.04em;
  color: #2b2b2b;
}
.p-specialty__lead-lg {
  font-size: min(40px, 2.778vw);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.02em;
  color: #1b2740;
}
.p-specialty__main {
  line-height: 1.2;
}
.p-specialty__main-em {
  font-size: min(56px, 3.889vw);
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #a5864e;
}
.p-specialty__main-sub {
  margin-left: 0.15em;
  font-size: min(30px, 2.083vw);
  font-weight: 700;
  color: #2b2b2b;
}
.p-specialty__note {
  font-size: min(24px, 1.667vw);
  letter-spacing: 0.04em;
  color: #333;
}
@media screen and (max-width: 680px) {
  .p-specialty__inner {
    width: 90%;
    padding: 7vw 5vw 6.5vw;
  }
  .p-specialty__lead {
    padding: 4.5vw 3vw;
    margin-bottom: 5.5vw;
  }
  .p-specialty__lead-sm {
    font-size: 3.6vw;
  }
  .p-specialty__lead-lg {
    font-size: 1.6rem;
  }
  .p-specialty__main-em {
    font-size: 5.6vw;
    letter-spacing: 0.01em;
  }
  .p-specialty__main-sub {
    font-size: 4vw;
  }
  .p-specialty__note {
    font-size: 3.3vw;
  }
}

/* ===== アンカージャンプ時、追従ヘッダーに見出しが隠れないよう余白（#ct / #rayface 等） ===== */
.p-sec[id] {
  scroll-margin-top: clamp(90px, 8vw, 130px);
}

/* ===== staff：著書（本文＋書影を横並び／SPは縦積み） ===== */
.c-prof__bookrow {
  display: flex;
  align-items: flex-start;
  gap: clamp(16px, 2.4vw, 32px);
  margin-top: clamp(12px, 1.4vw, 18px);
}
.c-prof__bookrow .c-prof__txt {
  flex: 1 1 auto;
  margin-top: 0;
}
.c-prof__book {
  flex: 0 0 auto;
  width: min(200px, 34%);
}
.c-prof__book img {
  display: block;
  width: 100%;
  height: auto;
}
@media screen and (max-width: 680px) {
  .c-prof__bookrow {
    flex-direction: column;
  }
  .c-prof__book {
    width: min(220px, 55%);
  }
}
/* ===== front-page 院長：著書の書影（経歴内・本文の右に小サムネ／縦に伸ばさない） ===== */
.p-doctor__book-row {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  gap: min(16px, 1.1vw);
}
.p-doctor__book-row > p {
  flex: 1 1 auto;
}
.p-doctor__book {
  flex: 0 0 auto;
  width: min(104px, 7.2vw);
}
.p-doctor__book img {
  display: block;
  width: 100%;
  height: auto;
}
@media screen and (max-width: 680px) {
  .p-doctor__book {
    width: 40vw;
  }
}
/* CSS Document */
