@charset "UTF-8";
*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body,
h1,
h2,
h3,
h4,
h5,
h6,
ul,
ol,
dl,
li,
dt,
dd,
p,
div,
span,
img,
a,
table,
tr,
th,
td,
small,
button,
time,
figure {
  border: 0;
  font: inherit;
  font-size: 100%;
  margin: 0;
  padding: 0;
  vertical-align: baseline;
}

html {
  line-height: 1;
  overflow-x: clip;
}

ol,
ul {
  list-style: none;
}

li,
dd {
  list-style-type: none;
}

header,
footer,
nav,
section,
article,
main,
aside,
figure,
figcaption {
  display: block;
}

img {
  border: none;
  vertical-align: bottom;
}

body {
  color: #555555;
  font-family: "Kiwi Maru", serif;
  overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
  text-wrap: balance;
}

p {
  text-wrap: pretty;
}

h1, h2, h3, h4, h5, h6, p, li, dd, dt, th, td {
  overflow-wrap: break-word;
}

a {
  text-decoration: none;
  transition: 0.3s;
  color: inherit;
}
@media (hover: hover) {
  a:hover {
    cursor: pointer;
  }
}

picture,
img,
a,
span {
  display: inline-block;
}

img,
svg,
video {
  max-width: 100%;
  height: auto;
}

button {
  font: inherit;
  color: inherit;
  background: transparent;
  background: none;
  border: none;
}

input,
textarea,
select {
  font: inherit;
}

@media (min-width: 768px) {
  a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
  }
}
.l-header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
}

.l-header__bar {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 1.25rem;
  background: linear-gradient(90deg, #A9A7EA 10%, #81FFB5 50%, #A9A7EA 90%);
}

.l-header__inner {
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 1;
  width: 68.578125rem;
  transform: translateX(-50%) scale(min(1, 100vw / 1440px));
  transform-origin: top center;
  padding-block-start: 1.25rem;
  padding-block-end: 1.4375rem;
  background-color: rgba(255, 255, 255, 0.8);
  border-radius: 0 0 0.625rem 0.625rem;
}
@media screen and (max-width: 767px) {
  .l-header__inner {
    position: relative;
    left: auto;
    width: 100%;
    transform: none;
    padding-block: 0.625rem 0.625rem;
  }
}

.l-header__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding-inline-start: 2.375rem;
  padding-inline-end: 1.0625rem;
}
@media screen and (max-width: 767px) {
  .l-header__top {
    padding-inline: 1rem;
  }
}

.l-header--withSub .l-header__inner {
  min-height: 18.75rem;
}

/* スクロール追従（2026-09-02 島田様依頼「TOPからお知らせを常時表示」）。
   ヘッダーを丸ごと固定すると医院名・住所・電話の上段まで居座って画面上部を大きく占有するので、
   追従中は上段を畳んで「ナビだけの細いバー」にする。切替は JS が .js-headerFixed で行う。
   SP はナビがドロワー（ハンバーガーが常時 fixed 表示）なので対象外＝従来の absolute のまま。 */
.l-header.js-headerFixed {
  position: fixed;
}
@media screen and (max-width: 767px) {
  .l-header.js-headerFixed {
    position: absolute;
  }
}

.l-header.js-headerFixed .l-header__inner {
  min-height: 0;
  padding-block: 1.25rem 0.75rem;
  background-color: #ffffff;
  box-shadow: 0 0.125rem 0.625rem rgba(85, 85, 85, 0.15);
  animation: headerBarFadeIn 0.3s ease;
}

.l-header.js-headerFixed .l-header__top {
  display: none;
}

.l-header.js-headerFixed .p-nav {
  margin-block-start: 0;
}

@keyframes headerBarFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.l-main {
  min-height: 100svh;
}

.l-inner {
  position: relative;
  width: 100%;
  max-width: 1120px;
  height: inherit;
  padding-inline: clamp(1.25rem, 0.9466019417rem + 1.2944983819vw, 2.5rem);
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .l-inner {
    max-width: 540px;
  }
}

.l-inner__narrow {
  max-width: 880px;
}
@media screen and (max-width: 767px) {
  .l-inner__narrow {
    max-width: 540px;
  }
}

.l-footer {
  position: relative;
  margin-block-start: 2.125rem;
  padding-top: 7.6875rem;
  background: url(../img/top/footer-bg.webp) center top/cover no-repeat;
}
@media screen and (max-width: 767px) {
  .l-footer {
    padding-top: 5rem;
  }
}

.l-footer__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3.75rem;
  max-width: 77.5rem;
  margin-inline: auto;
  padding-inline: 1.25rem;
}
@media (min-width: 1120px) {
  .l-footer__inner {
    flex-direction: row;
    align-items: stretch;
    justify-content: center;
    gap: 9.1875rem;
    padding-inline: 0;
    transform: translateX(2.25rem);
  }
}

.l-footer__band {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  min-height: 15.625rem;
  margin-top: 4.375rem;
  padding-block-end: 2.625rem;
  background: url(../img/top/footer-dino-band.webp) bottom center/cover no-repeat;
}

.l-footer__copyright {
  font-size: 0.9375rem;
  letter-spacing: 0.025em;
  color: #555555;
}

.c-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4375rem;
  min-width: 12.5rem;
  padding-block: 0.8125rem;
  padding-inline: 0.625rem;
  background-color: #ffffff;
  border: 0.125rem solid #6969C7;
  border-radius: 1.5625rem;
  box-shadow: 0 0.1875rem 0.4375rem rgba(0, 0, 0, 0.18);
  font-size: 1.25rem;
  color: #6969C7;
  line-height: 1;
  transition: background-color 0.35s ease, color 0.35s ease, box-shadow 0.35s ease;
}

.c-btn--plain {
  border-color: transparent;
}

.c-btn::after {
  content: "";
  width: 1.4375rem;
  height: 0.5625rem;
  background: url(../img/common/c-btn-arrow.webp) center/contain no-repeat;
  transition: translate 0.35s ease, filter 0.35s ease;
}

@media (any-hover: hover) {
  .c-btn:hover {
    background-color: #6969C7;
    color: #ffffff;
    box-shadow: 0 0.375rem 0.875rem rgba(105, 105, 199, 0.32);
  }
  .c-btn:hover::after {
    filter: brightness(0) invert(1);
    translate: 0.25rem 0;
  }
}
.c-sectionTitle {
  text-align: center;
}

.c-sectionTitle__jp {
  font-size: clamp(1.25rem, 0.9166666667rem + 0.6944444444vw, 1.4375rem);
  font-weight: 500;
  letter-spacing: 0.025em;
  color: #6969C7;
}

.c-sectionTitle__en {
  display: block;
  margin-block-start: 0.5rem;
  font-size: clamp(1.125rem, 0.7916666667rem + 0.6944444444vw, 1.3125rem);
  font-weight: 400;
  color: #6969C7;
}

/* ロゴ（上段の左・flex item。画像 610×213 を幅305で表示） */
.p-header__logo {
  width: 19.0625rem;
}
@media screen and (max-width: 767px) {
  .p-header__logo {
    width: 11.25rem;
  }
}

.p-header__logo a {
  display: block;
}

.p-header__logo img {
  display: block;
  width: 100%;
}

/* 右上の医院情報（上段の右・flex item・右寄せ） */
.p-header__info {
  text-align: right;
}
@media screen and (max-width: 767px) {
  .p-header__info {
    display: none;
  }
}

.p-header__clinic {
  font-size: 1.125rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  color: #555555;
}

.p-header__address {
  margin-block-start: 0.4375rem;
  font-size: 1.125rem;
  font-weight: 500;
  color: #555555;
}

.p-header__tel {
  margin-block-start: 1rem;
}

.p-header__tel a {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  font-size: 2.125rem;
  font-weight: 500;
  color: #8C8FB9;
}

.p-header__tel img {
  width: 2.125rem;
}

/* グローバルナビ（中央・パネル下段。下線 y147.6 / テキスト y161.7） */
.p-nav {
  position: relative;
  width: 100%;
  max-width: 57.890625rem;
  margin-block-start: 1.3125rem;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .p-nav {
    display: none;
  }
}

.p-nav__list {
  display: flex;
}

.p-nav__item {
  position: relative;
  flex: 1;
  padding-block-start: 0.875rem;
  text-align: center;
}

.p-nav__item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 0.2875rem;
  background-color: #DFDFDF;
}

.p-nav__item--current::before {
  background-color: #B0AEC9;
}

/* JS有効時(.is-js)は current の色を baseline に戻し、色は indicator が担う（二重表示防止・no-JS時は current が色付き＝フォールバック） */
.p-nav.is-js .p-nav__item--current::before {
  background-color: #DFDFDF;
}

/* マジックライン: current/hover の項目へスライドする色付きバー（JSが offsetLeft で transform） */
.p-nav__indicator {
  position: absolute;
  top: 0;
  left: 0;
  width: 16.6666666667%;
  height: 0.2875rem;
  background-color: #B0AEC9;
  transition: transform 0.35s ease;
  pointer-events: none;
}

.p-nav__link {
  font-size: 1.4375rem;
  font-weight: 500;
  white-space: nowrap;
  color: #8C8FB9;
}
@media (any-hover: hover) {
  .p-nav__link:hover {
    opacity: 0.7;
  }
}

/* サブナビ（.ai マウスオーバーレイヤー＝診療案内/医院案内 hover で「パネルが 208→300px に伸び、破線の下に展開」）。
   .p-nav 外＝パネル(.l-header__inner)直下の通常フロー要素。JS が .is-open を付与（開くとパネル高さが伸びる）。 */
.p-nav__sub {
  display: none;
  justify-content: center;
  align-items: center;
  gap: 3.3125rem;
  margin-block-start: 1.25rem;
  padding-block-start: 2.375rem;
  border-top: 0.0625rem dashed #DFDFDF;
  white-space: nowrap;
}

.p-nav__sub.is-open {
  display: flex;
}
@media screen and (max-width: 767px) {
  .p-nav__sub.is-open {
    display: none;
  }
}

.p-nav__subItem a {
  font-size: 1.4375rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  color: #8C8FB9;
  white-space: nowrap;
}
@media (any-hover: hover) {
  .p-nav__subItem a:hover {
    color: #6969C7;
  }
}

/* ページ内サブnav（下層ページのみ・.l-header 全幅基準で中央 y245 に重なる）
   ※faithful port。本セッションでは TOP のみ検証＝下層ページ再構築時に再確認。 */
.p-nav__page {
  position: absolute;
  top: 15.3125rem;
  left: 50%;
  transform: translateX(-50%);
}
@media screen and (max-width: 767px) {
  .p-nav__page {
    display: none;
  }
}

.p-nav__pageList {
  display: flex;
  justify-content: center;
  gap: 3.75rem;
}

.p-nav__pageLink {
  font-size: 1.4375rem;
  font-weight: 400;
  color: #8C8FB9;
  white-space: nowrap;
}
@media (any-hover: hover) {
  .p-nav__pageLink:hover {
    opacity: 0.7;
  }
}

.p-drawer__icon {
  position: fixed;
  z-index: 102;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  top: 1.0625rem;
  right: 1.25rem;
  width: 1.5rem;
  height: 1rem;
}
@media (min-width: 768px) {
  .p-drawer__icon {
    display: none;
  }
}

.p-drawer__icon--bar {
  width: 100%;
  height: 0.0625rem;
  background: #000;
}

.p-drawer__icon.js-show .p-drawer__icon--bar:nth-of-type(1) {
  rotate: 45deg;
  translate: 0 0.46875rem;
}
.p-drawer__icon.js-show .p-drawer__icon--bar:nth-of-type(2) {
  display: none;
}
.p-drawer__icon.js-show .p-drawer__icon--bar:nth-of-type(3) {
  rotate: -45deg;
  translate: 0 -0.46875rem;
}

.p-drawer {
  position: fixed;
  z-index: 101;
  overflow-y: scroll;
  top: 0;
  right: 0;
  width: 17.375rem;
  max-width: 90vw;
  height: 100svh;
  background: #b6e7f3;
}

.p-drawer__icon--bar {
  transition: all 0.5s ease;
}

.p-drawer {
  translate: 101%;
  transition: translate 0.5s ease;
}
.p-drawer.js-show {
  translate: 0;
}

.p-drawer__body {
  width: 100%;
  height: fit-content;
  padding-block: 4.875rem 2.5rem;
  padding-left: 2.125rem;
}

.p-drawer__list {
  display: flex;
  flex-direction: column;
  row-gap: 2rem;
  margin-bottom: 2.5rem;
}
.p-drawer__list li a {
  font-size: 1.25rem;
  font-weight: 400;
}

.p-drawer__btn {
  display: inline-block;
  padding: 0.375rem 1.875rem;
  background: #fff;
  font-size: 1.25rem;
  font-weight: 400;
}

.p-top-fv {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background-color: #ffffff;
}

.p-top-fv__inner {
  position: relative;
  width: 100%;
  max-width: 113.75rem;
  margin-block-start: clamp(2.5rem, -0.7222222222rem + 6.712962963vw, 4.3125rem);
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .p-top-fv__inner {
    margin-block-start: 1.25rem;
  }
}

.p-top-fv__photo {
  border-radius: 1.25rem;
  overflow: hidden;
}

.p-top-fv__photo img {
  display: block;
  width: 100%;
  aspect-ratio: 1820/800;
  object-fit: cover;
}
@media screen and (max-width: 767px) {
  .p-top-fv__photo img {
    aspect-ratio: 4/3;
  }
}

/* キャッチ：写真上のオーバーレイ（位置は写真サイズに対する比率＝液状追従） */
.p-top-fv__catch {
  position: absolute;
  z-index: 2;
  top: max(31.875%, 9.375rem);
  left: 39.010989011%;
  width: fit-content;
  max-width: calc(100% - 2.5rem);
  padding-block: clamp(1rem, 0rem + 2.0833333333vw, 1.5625rem);
  padding-inline: clamp(1.25rem, -0.9722222222rem + 4.6296296296vw, 2.5rem);
  background-color: rgba(255, 255, 255, 0.5);
  border-radius: 0.625rem;
  font-family: "Rounded Mgen+ 1c", "M PLUS Rounded 1c", sans-serif;
  color: #555555;
  line-height: 1.25;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-top-fv__catch {
    top: 50%;
    left: 50%;
    width: auto;
    min-width: 0;
    transform: translate(-50%, -50%);
  }
}
@media (min-width: 1120px) {
  .p-top-fv__catch {
    left: auto;
    right: calc(max(0px, 50% - 56.875rem) + max(38.75rem, min(35.16vw, 43.125rem)) + 1.25rem);
  }
}

.p-top-fv__catchLine {
  display: block;
  font-size: clamp(1.5rem, 0.9538834951rem + 2.3300970874vw, 3.75rem);
  font-weight: 700;
  white-space: nowrap;
}

.p-top-fv__catchUnit {
  font-size: 0.883em;
}

/* 内覧会告知（キャッチ直下・2026-09-02 島田様依頼）。開催後は管理画面の「内覧会告知を表示」OFF で消える。
   キャッチの日付より一段小さく＝開院日が主・告知が従。背景はキャッチの白パネルを共有する。 */
.p-top-fv__openhouse {
  display: block;
  margin-block-start: clamp(0.5rem, 0.3483009709rem + 0.6472491909vw, 1.125rem);
  font-size: clamp(0.75rem, 0.567961165rem + 0.7766990291vw, 1.5rem);
  font-weight: 500;
  line-height: 1.5;
}

.p-top-fv__openhouseText {
  display: block;
}

.p-top-fv__openhouseLink {
  display: inline-block;
  margin-block-start: clamp(0.125rem, 0.0643203883rem + 0.2588996764vw, 0.375rem);
  color: #6969C7;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 0.2em;
  transition: opacity 0.3s ease;
}

@media (any-hover: hover) {
  .p-top-fv__openhouseLink:hover {
    opacity: 0.7;
  }
}
/* 診療時間パネル：既定は写真の下にフロー（中央）。≥1120 のみ写真右にオーバーレイ（デザイン）。
   8列表は狭幅でオーバーレイ不能なので、広い画面だけ重ね、それ未満は写真下に置く。 */
.p-top-fv__hours {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 37.5rem;
  margin-block-start: 1.5rem;
  margin-inline: auto;
  padding-block: 0.625rem 1.25rem;
  padding-inline: 1.75rem;
  background-color: rgba(188, 193, 235, 0.7);
  border-radius: 1.25rem;
  color: #ffffff;
}
@media screen and (max-width: 767px) {
  .p-top-fv__hours {
    width: calc(100% - 2.5rem);
  }
}
@media (min-width: 1120px) {
  .p-top-fv__hours {
    position: absolute;
    top: calc(4.3125rem + min(11.7vw, 13.3125rem));
    right: max(0px, 50% - 56.875rem);
    left: auto;
    width: min(35.16vw, 43.125rem);
    min-width: 38.75rem;
    max-width: none;
    margin: 0;
    padding-inline: 2.25rem;
    border-radius: 1.25rem 0 0 1.25rem;
  }
}

/* デザインと同一機構で組む：各行＝[時刻セル]＋[マークセル]。マークセルは "●　●　●…" を
   .ai の逐語(全角スペース桁送り)のまま1セルに入れ、letter-spacing 0.25em(.ai letterSpacing250)で
   描画する＝グリフが .ai の実列位置に並ぶ。<table>の均等割り＋中央寄せは glyph が右へ累積ズレ
   する(実測 月+14〜日祝+31px)ので使わない。罫線は tr の border で全幅(.ai 罫線600px相当)。 */
.p-top-fv__hoursTable {
  width: 100%;
  border-collapse: collapse;
  color: #ffffff;
}

.p-top-fv__hoursTable tr {
  border-block-end: 0.09375rem solid #ffffff;
}

/* 曜日ヘッダ行は短い（.ai: box内83 ＝データ行60より低い）。データ行と同じ18だと罫線が下がる */
.p-top-fv__hoursTable tr:first-child .p-top-fv__hoursTime,
.p-top-fv__hoursTable tr:first-child .p-top-fv__hoursMarks {
  padding-block: 1rem;
}

.p-top-fv__hoursTime {
  width: 11.75rem;
  padding-block: 1.125rem;
  font-size: clamp(0.75rem, -0.3611111111rem + 2.3148148148vw, 1.375rem);
  font-weight: 400;
  letter-spacing: 0.05em;
  text-align: left;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .p-top-fv__hoursTime {
    width: 5.25rem;
    padding-block: 0.625rem;
    font-size: 0.75rem;
    padding-inline: 0.3125rem;
  }
}

.p-top-fv__hoursMarks {
  padding-block: 1.125rem;
  font-size: clamp(0.9375rem, 0.2708333333rem + 1.3888888889vw, 1.3125rem);
  font-weight: 400;
  letter-spacing: 0.25em;
  text-align: left;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .p-top-fv__hoursMarks {
    padding-block: 0.625rem;
    font-size: 0.6875rem;
    letter-spacing: 0.02em;
  }
}

.p-top-fv__hoursNote {
  margin-block-start: 1.5rem;
  font-size: clamp(0.875rem, 0.3194444444rem + 1.1574074074vw, 1.1875rem);
  letter-spacing: 0.025em;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .p-top-fv__hoursNote {
    font-size: 0.8125rem;
  }
}

/* 下部の恐竜装飾帯。
   deco 自体に z-index を付けると stacking context が分離し、背面波の multiply が「写真」でなく
   透明な deco 背景と合成され＝乗算無効＝1色になる。なので z-index は deco でなく
   各要素(波/恐竜)に持たせ、写真より前面に出しつつ multiply を写真と合成させる。 */
.p-top-fv__deco {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .p-top-fv__deco {
    overflow: hidden;
  }
}

.p-top-fv__deco img {
  display: block;
  width: 100%;
}
@media screen and (max-width: 767px) {
  .p-top-fv__deco img {
    width: 240%;
    max-width: none;
    margin-inline-start: -70%;
  }
}

.p-top-fv__decoWaveBack {
  position: relative;
  z-index: 2;
  mix-blend-mode: multiply;
}

.p-top-fv__decoWaveFront {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
}

.p-top-fv__decoDino {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 3;
  mix-blend-mode: multiply;
}

.p-lowerMv {
  margin-block-start: clamp(2.5rem, -0.7222222222rem + 6.712962963vw, 4.3125rem);
  padding-inline: clamp(0.5rem, -4.1666666667rem + 9.7222222222vw, 3.125rem);
}
@media screen and (max-width: 767px) {
  .p-lowerMv {
    margin-block-start: 3.5rem;
    padding-inline: 0.5rem;
  }
}

.p-lowerMv__photo {
  width: 100%;
  aspect-ratio: 1820/400;
  object-fit: cover;
}
@media screen and (max-width: 767px) {
  .p-lowerMv__photo {
    height: 10rem;
    aspect-ratio: auto;
    border-radius: 0.625rem;
  }
}

.p-pageTitle {
  margin-block-start: clamp(3.5rem, -5.7222222222rem + 19.212962963vw, 8.6875rem);
}
@media screen and (max-width: 767px) {
  .p-pageTitle {
    margin-block-start: 3.5rem;
  }
}

.p-newsArchive {
  background: #ffffff;
  margin-block-start: clamp(2.5rem, -0.7222222222rem + 6.712962963vw, 4.3125rem);
}
@media screen and (max-width: 767px) {
  .p-newsArchive {
    padding-inline: 1.25rem;
  }
}

.p-newsArchive__inner {
  max-width: 1180px;
}
@media screen and (max-width: 767px) {
  .p-newsArchive__inner {
    max-width: 540px;
  }
}

.p-newsArchive__list {
  list-style: none;
}

.p-newsArchive__item {
  border-block-end: 1px solid rgba(105, 105, 199, 0.4);
}

.p-newsArchive__link {
  display: block;
  padding-block: 3.5625rem 4.1875rem;
  padding-inline-start: 7.625rem;
  color: inherit;
  text-decoration: none;
  transition: background-color 0.3s ease, box-shadow 0.3s ease;
}
@media screen and (max-width: 767px) {
  .p-newsArchive__link {
    padding-inline-start: 0;
  }
}

.p-newsArchive__meta {
  display: flex;
  align-items: center;
  gap: 2.4375rem;
}

.p-newsArchive__date {
  font-size: 1.5rem;
  font-weight: 300;
  line-height: 1.71;
  letter-spacing: 0.05em;
  color: #555555;
  transition: color 0.3s ease;
}
@media screen and (max-width: 767px) {
  .p-newsArchive__date {
    font-size: 0.9375rem;
  }
}

.p-newsArchive__cat {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-width: 8.125rem;
  padding-block: 0.625rem;
  background: #6969C7;
  color: #ffffff;
  font-size: 1.1875rem;
  font-weight: 400;
  letter-spacing: 0.075em;
}
@media screen and (max-width: 767px) {
  .p-newsArchive__cat {
    font-size: 0.8125rem;
  }
}

.p-newsArchive__title {
  margin-block-start: 2.6875rem;
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 1.71;
  letter-spacing: 0.05em;
  color: #555555;
  transition: color 0.3s ease;
}
@media screen and (max-width: 767px) {
  .p-newsArchive__title {
    margin-block-start: 1.25rem;
    font-size: 1.125rem;
  }
}

@media (any-hover: hover) {
  .p-newsArchive__link:hover {
    background-color: rgba(188, 193, 235, 0.28);
    box-shadow: inset 0.3125rem 0 0 #6969C7;
  }
  .p-newsArchive__link:hover .p-newsArchive__date,
  .p-newsArchive__link:hover .p-newsArchive__title {
    color: #6969C7;
  }
}
.p-newsArchive__body {
  margin-block-start: 2.5rem;
  max-width: 33rem;
  font-size: 1.1875rem;
  font-weight: 300;
  line-height: 2.16;
  letter-spacing: 0.05em;
  color: #555555;
}
@media screen and (max-width: 767px) {
  .p-newsArchive__body {
    max-width: none;
    margin-block-start: 1.25rem;
    font-size: 0.9375rem;
  }
}

.p-newsArchive__pager {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 1.25rem;
  margin-block-start: 3.75rem;
}

.p-newsArchive__pager .page-numbers {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-width: 1.25rem;
  font-size: 1.25rem;
  line-height: 1;
  color: #6969C7;
}
@media screen and (max-width: 767px) {
  .p-newsArchive__pager .page-numbers {
    font-size: 1.0625rem;
  }
}

.p-newsArchive__pager .page-numbers.current {
  font-weight: 700;
  padding-block-end: 0.1875rem;
  border-block-end: 0.125rem solid #6969C7;
}

.p-newsArchive__pager .page-numbers.dots {
  color: #8C8FB9;
}

.p-newsArchive__pager .page-numbers.prev,
.p-newsArchive__pager .page-numbers.next {
  font-size: 1.5rem;
}

.p-newsArchive__pager a.page-numbers {
  transition: opacity 0.3s ease;
}
@media (any-hover: hover) {
  .p-newsArchive__pager a.page-numbers:hover {
    opacity: 0.55;
  }
}

.p-newsArchive__empty {
  margin-block-start: 2.5rem;
  font-size: 1.25rem;
  color: #555555;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-newsArchive__empty {
    font-size: 0.9375rem;
  }
}

.p-banner {
  overflow: hidden;
  margin-block-start: clamp(2.5rem, 4.7222222222rem + -4.6296296296vw, 1.25rem);
}

.p-banner__list {
  transition-timing-function: linear;
}

.p-banner__item {
  width: 23.75rem;
  aspect-ratio: 380/250;
  overflow: hidden;
  background-color: #6969C7;
}

.p-banner__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-top-news {
  position: relative;
  margin-block-start: 2.5rem;
  padding-block: 2.6875rem 13.75rem;
  background: url(../img/top/news-bg.webp?v=2) center top/cover no-repeat;
}
@media screen and (max-width: 767px) {
  .p-top-news {
    padding-block: 2.5rem 7.5rem;
    padding-inline: 1.25rem;
  }
}

.p-top-news::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 11.25rem;
  background-color: #f2f3fb;
  z-index: 0;
  pointer-events: none;
}

/* 葉飾り（最前面）: news-bg から分離。medical のクリーム波(z:0)の上(z:1)に重なるので、seam を跨いでも葉が切れない（デザイン通り葉が一番上）。
   ただしテキスト(__inner z:2)よりは背面＝お知らせ文字は葉に隠れない。 */
.p-top-news::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: url(../img/top/news-leaves.webp?v=2) center top/cover no-repeat;
  pointer-events: none;
}

.p-top-news__inner {
  position: relative;
  z-index: 2;
}

.p-top-news__list {
  width: 100%;
  max-width: 37.5rem;
  margin-block-start: 1.625rem;
  margin-inline-start: calc(50% - 15.1875rem);
}
@media screen and (max-width: 767px) {
  .p-top-news__list {
    max-width: 31.25rem;
    margin-inline: auto;
  }
}

.p-top-news__item {
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
  padding-block: 1.5rem;
  border-block-end: 0.0625rem dashed #8a8a8a;
}

.p-top-news__link {
  display: flex;
  flex: 1;
  align-items: baseline;
  gap: 0.75rem;
  color: inherit;
  text-decoration: none;
}

.p-top-news__date {
  flex-shrink: 0;
  font-size: 0.9375rem;
  letter-spacing: 0.075em;
  color: #6969C7;
}

.p-top-news__text {
  font-size: 0.9375rem;
  letter-spacing: 0.075em;
  color: #464646;
  transition: color 0.3s ease;
}

@media (any-hover: hover) {
  .p-top-news__link:hover .p-top-news__text {
    color: #6969C7;
  }
}
.p-top-news__empty {
  margin-block-start: 1.625rem;
  font-size: 0.9375rem;
  letter-spacing: 0.075em;
  color: #464646;
  text-align: center;
}

.p-top-news__btnWrap {
  margin-block-start: 3.375rem;
  text-align: center;
}

/* 診療案内セクション（トップ・6カード grid）。bg=stripe+tint svg。座標は design-crop 実測(1:1)。 */
.p-top-medical {
  position: relative;
  margin-block-start: -6.875rem;
  padding-block: clamp(7.5rem, 4.3888888889rem + 6.4814814815vw, 9.25rem) clamp(3.75rem, 0.9722222222rem + 5.787037037vw, 5.3125rem);
}
@media screen and (max-width: 767px) {
  .p-top-medical {
    padding-block: 5rem 3.5rem;
  }
}

/* クリーム面（白+金stripe）を全面に敷き、mask で「波の下だけ」表示。
   波の上は抜けて背面 news の葉が見える＝葉を消さずに medical 側の波(大きい振幅)を出せる。
   波帯の高さ＝幅に比例(fluid 24→120)。mask SVG は preserveAspectRatio:none で横が画面幅に圧縮されるため、
   縦を固定120pxにすると狭い画面で波の勾配が急になる(pappy指摘)。縦も同率で縮めて勾配を全幅一定＝緩やかに保つ
   (1920では従来通り120pxで不変)。本文(__inner)/装飾は ::before より前面。 */
.p-top-medical::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background-color: #ffffff;
  background-image: repeating-linear-gradient(90deg, rgba(214, 186, 56, 0.06) 0 0.625rem, rgba(255, 255, 255, 0) 0.625rem 1.25rem);
  -webkit-mask-image: url(../img/top/medical-wave-mask.svg), linear-gradient(#000, #000);
  mask-image: url(../img/top/medical-wave-mask.svg), linear-gradient(#000, #000);
  -webkit-mask-size: 100% clamp(1.5rem, 0.0436893204rem + 6.213592233vw, 7.5rem), 100% calc(100% - clamp(1.5rem, 0.0436893204rem + 6.213592233vw, 7.5rem));
  mask-size: 100% clamp(1.5rem, 0.0436893204rem + 6.213592233vw, 7.5rem), 100% calc(100% - clamp(1.5rem, 0.0436893204rem + 6.213592233vw, 7.5rem));
  -webkit-mask-position: top, bottom;
  mask-position: top, bottom;
  -webkit-mask-repeat: no-repeat, no-repeat;
  mask-repeat: no-repeat, no-repeat;
}

.p-top-medical__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 67.5rem;
  padding-inline: 2.5rem;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .p-top-medical__inner {
    padding-inline: 1.25rem;
  }
}

/* カード grid（3列×2行・列gap50・行gap67・中央寄せ w1000） */
.p-top-medical__cards {
  margin-block-start: clamp(2.5rem, -0.0555555556rem + 5.3240740741vw, 3.9375rem);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: 1fr;
  column-gap: clamp(1.25rem, -2.0833333333rem + 6.9444444444vw, 3.125rem);
  row-gap: clamp(3rem, 0.8888888889rem + 4.3981481481vw, 4.1875rem);
}
@media screen and (max-width: 767px) {
  .p-top-medical__cards {
    grid-template-columns: 1fr;
    row-gap: 3rem;
  }
}

/* カード：arch top（上角丸 150）＋indigo border。高さは grid stretch＋内容追従（固定height無し）。 */
.p-top-medical__card {
  overflow: hidden;
  border: 0.125rem solid #6969C7;
  border-radius: 9.375rem 9.375rem 1.25rem 1.25rem;
  background-color: #ffffff;
  text-align: center;
  transition: box-shadow 0.4s ease;
}
@media screen and (max-width: 767px) {
  .p-top-medical__card {
    max-width: 18.75rem;
    margin-inline: auto;
  }
}

/* 画像：arch 上部を満たす（card overflow:hidden で arch にクリップ）。601×441→w300でh220。 */
.p-top-medical__cardImg img {
  display: block;
  width: 100%;
  aspect-ratio: 601/441;
  object-fit: cover;
  transition: scale 0.5s ease;
}

@media (any-hover: hover) {
  .p-top-medical__card:hover {
    box-shadow: 0 0.5rem 1.25rem rgba(105, 105, 199, 0.18);
  }
  .p-top-medical__card:hover .p-top-medical__cardImg img {
    scale: 1.06;
  }
}
/* ラベル：画像下端に跨る（gold ピル＋ラベンダー丸アイコン）。card text-align:center で中央。 */
.p-top-medical__cardLabel {
  position: relative;
  z-index: 1;
  margin-block-start: -1.5625rem;
  display: inline-flex;
  align-items: center;
}

.p-top-medical__cardIcon {
  position: relative;
  z-index: 1;
  flex-shrink: 0;
}

.p-top-medical__cardIcon img {
  display: block;
  width: 3.125rem;
}

.p-top-medical__cardName {
  margin-inline-start: -0.875rem;
  padding-block: 0.4375rem;
  padding-inline: 1.375rem 1rem;
  background-color: #D6BA38;
  border-radius: 1.125rem;
  font-size: clamp(1rem, 0.5555555556rem + 0.9259259259vw, 1.25rem);
  color: #555555;
  line-height: 1;
  white-space: nowrap;
}

/* 症状リスト：中央・18px・行間ゆったり（4行で約104px＝lh1.45） */
.p-top-medical__symptoms {
  margin-block-start: 1.1875rem;
  padding-block-end: 1.5rem;
  font-size: clamp(0.875rem, 0.4305555556rem + 0.9259259259vw, 1.125rem);
  color: #555555;
  line-height: 1.45;
}

/* CTA（共通 c-btn ピル） */
.p-top-medical__btnWrap {
  margin-block-start: 6.1875rem;
  text-align: center;
}

/* 装飾（恐竜＝左下・足跡＝右）。狭幅では本文に被るので SP では隠す */
.p-top-medical__decoDino {
  position: absolute;
  left: clamp(2.5rem, -17.6111111111rem + 41.8981481481vw, 13.8125rem);
  bottom: 0.1875rem;
  width: clamp(8.75rem, 0.3055555556rem + 17.5925925926vw, 13.5rem);
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .p-top-medical__decoDino {
    display: none;
  }
}

.p-top-medical__decoFoot {
  position: absolute;
  right: clamp(0.625rem, -2.375rem + 6.25vw, 2.3125rem);
  bottom: 1.4375rem;
  width: clamp(10rem, -14rem + 50vw, 23.5rem);
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .p-top-medical__decoFoot {
    display: none;
  }
}

.p-medical-intro {
  padding-block-start: clamp(4rem, -4rem + 16.6666666667vw, 8.5rem);
  background-image: repeating-linear-gradient(90deg, rgba(214, 186, 56, 0.06) 0, rgba(214, 186, 56, 0.06) 0.625rem, transparent 0.625rem, transparent 1.25rem);
}
@media screen and (max-width: 767px) {
  .p-medical-intro {
    padding-block-start: 3rem;
  }
}

.p-medical-disease {
  display: flow-root;
  overflow-x: clip;
  padding-block: clamp(3rem, -4.4444444444rem + 15.5092592593vw, 7.1875rem) clamp(5rem, 4.4444444444rem + 1.1574074074vw, 5.3125rem);
  background-image: repeating-linear-gradient(90deg, rgba(214, 186, 56, 0.06) 0, rgba(214, 186, 56, 0.06) 0.625rem, transparent 0.625rem, transparent 1.25rem);
}
@media screen and (max-width: 767px) {
  .p-medical-disease {
    padding-block: 2.5rem 4rem;
  }
}

.p-medical-disease--last {
  padding-block-end: clamp(7.5rem, -4.1666666667rem + 24.3055555556vw, 14.0625rem);
}
@media screen and (max-width: 767px) {
  .p-medical-disease--last {
    padding-block-end: 6rem;
  }
}

.p-medical-disease__inner {
  width: 100%;
  max-width: 55.625rem;
  padding-inline: 1.25rem;
  margin-inline: auto;
}

.p-medical-disease__icon {
  border-radius: 1.25rem;
  border: 0.125rem solid #6969c7;
  width: clamp(9.375rem, 3.8194444444rem + 11.5740740741vw, 12.5rem);
  margin-inline: auto;
  aspect-ratio: 1/1;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .p-medical-disease__icon {
    width: 8.75rem;
  }
}

.p-medical-disease__label {
  background-color: #d6ba38;
  border-radius: 1.125rem;
  padding-block: 0.375rem 0.3125rem;
  padding-inline: 1.25rem 1.25rem;
  width: fit-content;
  margin-inline: auto;
  font-family: "Kiwi Maru";
  font-size: clamp(1.125rem, 0.6805555556rem + 0.9259259259vw, 1.375rem);
  font-weight: 500;
  line-height: 1.15;
  color: #ffffff;
  text-align: center;
  margin-block-start: calc(clamp(1.125rem, 0.6805555556rem + 0.9259259259vw, 1.375rem) * -1);
  position: relative;
  z-index: 1;
}
@media screen and (max-width: 767px) {
  .p-medical-disease__label {
    font-size: 1rem;
    margin-block-start: -0.9375rem;
  }
}

.p-medical-disease__label--sm {
  font-size: clamp(1rem, 0.5555555556rem + 0.9259259259vw, 1.25rem);
}
@media screen and (max-width: 767px) {
  .p-medical-disease__label--sm {
    font-size: 0.9375rem;
  }
}

.p-medical-disease__lead {
  max-width: 45rem;
  margin-inline: auto;
  font-family: "Kiwi Maru";
  font-size: clamp(1.0625rem, 0.5069444444rem + 1.1574074074vw, 1.375rem);
  font-weight: 500;
  line-height: 1.68;
  color: #6969c7;
  text-align: center;
  margin-block-start: clamp(1.875rem, 1.3194444444rem + 1.1574074074vw, 2.1875rem);
}
@media screen and (max-width: 767px) {
  .p-medical-disease__lead {
    font-size: 1rem;
    margin-block-start: 1.5rem;
  }
  .p-medical-disease__lead br {
    display: none;
  }
}

.p-medical-disease__desc {
  max-width: 50rem;
  margin-inline: auto;
  font-family: "Kiwi Maru";
  font-size: clamp(0.875rem, 0.4305555556rem + 0.9259259259vw, 1.125rem);
  font-weight: 400;
  line-height: 1.67;
  color: #555555;
  text-align: left;
  margin-block-start: clamp(1.5rem, 2.1666666667rem + -1.3888888889vw, 1.125rem);
}
@media screen and (max-width: 767px) {
  .p-medical-disease__desc {
    font-size: 0.875rem;
    margin-block-start: 1.25rem;
  }
}

.p-medical-disease__note {
  background-color: #faf8ea;
  padding-block: 0.3125rem 1.6875rem;
  padding-inline: 1.3125rem 1.0625rem;
  max-width: 53.125rem;
  margin-inline: auto;
  margin-block-start: clamp(1.5rem, -2.5rem + 8.3333333333vw, 3.75rem);
}
@media screen and (max-width: 767px) {
  .p-medical-disease__note {
    padding-block: 1rem 1.375rem;
    padding-inline: 1rem 1rem;
    margin-block-start: 1.375rem;
  }
}

.p-medical-disease__noteHead {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.p-medical-disease__noteMark {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #6969c7;
  border-radius: 50%;
  width: 1.5625rem;
  aspect-ratio: 1/1;
}

.p-medical-disease__noteBang {
  font-family: "Kiwi Maru";
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 1;
  color: #ffffff;
}

.p-medical-disease__noteTitle {
  font-family: "Kiwi Maru";
  font-size: clamp(1rem, 0.6666666667rem + 0.6944444444vw, 1.1875rem);
  font-weight: 400;
  line-height: 1.75;
  color: #555555;
  text-align: left;
}
@media screen and (max-width: 767px) {
  .p-medical-disease__noteTitle {
    font-size: 0.9375rem;
  }
}

.p-medical-disease__symptoms {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(2.25rem, 0.9166666667rem + 2.7777777778vw, 3rem);
  padding-inline: 1.625rem 0rem;
  margin-block-start: 0.125rem;
}
@media screen and (max-width: 767px) {
  .p-medical-disease__symptoms {
    gap: 0.625rem;
    padding-inline: 0.5rem 0rem;
    margin-block-start: 1rem;
  }
}

.p-medical-disease__symptomCol {
  font-family: "Kiwi Maru";
  font-size: clamp(0.875rem, 0.4305555556rem + 0.9259259259vw, 1.125rem);
  font-weight: 400;
  line-height: 1.89;
  color: #555555;
}
@media screen and (max-width: 767px) {
  .p-medical-disease__symptomCol {
    flex: 0 0 100%;
    font-size: 0.875rem;
    line-height: 1.7;
  }
}

/* 医師紹介（トップ・ごあいさつ box）。bg=doctor-bg.png(tint#D6BA38 20%＋恐竜/葉 watermark 内包)。座標は design 実測。 */
.p-top-doctor {
  position: relative;
  padding-block: clamp(3.5rem, 0.8333333333rem + 5.5555555556vw, 5rem) clamp(12.5rem, 4.1666666667rem + 17.3611111111vw, 17.1875rem);
  background: url(../img/top/doctor-bg.webp) center top/cover no-repeat;
}
@media screen and (max-width: 767px) {
  .p-top-doctor {
    padding-block: 3.5rem 10rem;
  }
}

.p-top-doctor__inner {
  width: 100%;
  max-width: 67.5rem;
  padding-inline: 2.5rem;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .p-top-doctor__inner {
    padding-inline: 1.25rem;
  }
}

/* ごあいさつ box（白・indigo border・角丸。高さは内容追従＝固定 height 無し） */
.p-top-doctor__box {
  margin-block-start: clamp(3rem, 0.8888888889rem + 4.3981481481vw, 4.1875rem);
  width: 100%;
  max-width: 61.25rem;
  margin-inline: auto;
  padding-block: clamp(2.25rem, 0.0277777778rem + 4.6296296296vw, 3.5rem) clamp(3.5rem, 0.2777777778rem + 6.712962963vw, 5.3125rem);
  padding-inline: clamp(1.75rem, -3.4722222222rem + 10.8796296296vw, 4.6875rem);
  border: 0.125rem solid #6969C7;
  border-radius: 1.25rem;
  background-color: #ffffff;
}
@media screen and (max-width: 767px) {
  .p-top-doctor__box {
    padding-inline: 1.5rem;
  }
}

.p-top-doctor__greetingTitle {
  font-size: clamp(1.25rem, 0.8055555556rem + 0.9259259259vw, 1.5rem);
  font-weight: 500;
  letter-spacing: 0.05em;
  color: #555555;
  text-align: center;
}

/* 本文（5段落・19px・行間ゆったり）。段落間は段落クラスでなく greeting 内 p に margin（R10 準拠・p+p 不使用） */
.p-top-doctor__greeting {
  margin-block-start: clamp(3rem, -1.6666666667rem + 9.7222222222vw, 5.625rem);
  font-size: clamp(1rem, 0.6666666667rem + 0.6944444444vw, 1.1875rem);
  color: #555555;
  line-height: 2.1052631579;
  letter-spacing: 0.025em;
}
@media screen and (max-width: 767px) {
  .p-top-doctor__greeting {
    font-size: 1rem;
  }
}

.p-top-doctor__greeting p {
  margin-block-start: 2.5rem;
}

.p-top-doctor__greeting p:first-child {
  margin-block-start: 0;
}

/* 署名（院長 前田 英美・ふりがな ruby・右寄せ） */
.p-top-doctor__name {
  margin-block-start: 2.625rem;
  text-align: right;
  color: #555555;
}

.p-top-doctor__nameRole {
  font-size: clamp(1rem, 0.6666666667rem + 0.6944444444vw, 1.1875rem);
  letter-spacing: 0.05em;
}

.p-top-doctor__nameMain {
  font-size: clamp(1.125rem, 0.7916666667rem + 0.6944444444vw, 1.3125rem);
  letter-spacing: 0.1em;
}

.p-top-doctor__nameRuby {
  font-size: 0.8125rem;
  letter-spacing: 0.1em;
}

/* CTA（共通 c-btn） */
.p-top-doctor__btnWrap {
  margin-block-start: 2.8125rem;
  text-align: center;
}

.p-doctor {
  position: relative;
  z-index: 0;
  display: flow-root;
  overflow-x: clip;
  background-color: rgba(214, 186, 56, 0.2);
  padding-block: clamp(3rem, -1.5555555556rem + 9.4907407407vw, 5.5625rem) clamp(5rem, -11rem + 33.3333333333vw, 14rem);
  margin-block-start: clamp(2rem, 0.1111111111rem + 3.9351851852vw, 3.0625rem);
}

.p-doctor__inner {
  max-width: 67.625rem;
  margin-inline: auto;
  padding-inline: 1.25rem;
}

.p-doctor__title {
  margin-inline: auto;
  font-family: "Kiwi Maru";
  font-size: clamp(1.25rem, 0.9166666667rem + 0.6944444444vw, 1.4375rem);
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.025em;
  color: #6969c7;
  text-align: center;
}

.p-doctor__titleEn {
  margin-inline: auto;
  font-family: "Kiwi Maru";
  font-size: clamp(1.125rem, 0.7916666667rem + 0.6944444444vw, 1.3125rem);
  font-weight: 400;
  line-height: 1.75;
  color: #6969c7;
  text-align: center;
  margin-block-start: -0.5625rem;
  position: relative;
  z-index: 1;
}

.p-doctor__greeting {
  background-color: #ffffff;
  border-radius: 1.25rem;
  border: 0.125rem solid #6969c7;
  padding-block: clamp(2.5rem, 0.7222222222rem + 3.7037037037vw, 3.5rem) clamp(3.5rem, 0.0555555556rem + 7.1759259259vw, 5.4375rem);
  padding-inline: clamp(1.5rem, -4.1666666667rem + 11.8055555556vw, 4.6875rem);
  max-width: 61.25rem;
  margin-inline: auto;
  margin-block-start: clamp(2rem, 0.5555555556rem + 3.0092592593vw, 2.8125rem);
}

.p-doctor__greetingTitle {
  margin-inline: auto;
  font-family: "Kiwi Maru";
  font-size: clamp(1.25rem, 0.8055555556rem + 0.9259259259vw, 1.5rem);
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.05em;
  color: #555555;
  text-align: center;
}

.p-doctor__greetingBody {
  font-family: "Kiwi Maru";
  font-size: clamp(1rem, 0.6666666667rem + 0.6944444444vw, 1.1875rem);
  font-weight: 400;
  line-height: 2.14;
  letter-spacing: 0.025em;
  color: #555555;
  text-align: left;
  margin-block-start: clamp(3rem, -0.2222222222rem + 6.712962963vw, 4.8125rem);
}

/* ごあいさつの院長イラスト（2026-09-02 島田様支給）。位置は「院長のお名前の上あたり」で、
   本文の末尾 2 段落が左に回り込む（差し込み位置は page-doctor.php 側）。
   幅は 2026-09-03 島田様「あと1.5倍ぐらいの大きさでも結構です」で 1.5 倍（150→225 / 220→330）。
   支給画像はクリーム地の水彩イラストなので、白パネルに角丸で馴染ませる。 */
.p-doctor__greetingIllust {
  display: block;
  width: clamp(14.0625rem, 2.3958333333rem + 24.3055555556vw, 20.625rem);
  height: auto;
  border-radius: 0.75rem;
}

.p-doctor__greetingIllust--pc {
  float: inline-end;
  margin-inline-start: clamp(1.25rem, -0.0833333333rem + 2.7777777778vw, 2rem);
}
@media screen and (max-width: 767px) {
  .p-doctor__greetingIllust--pc {
    display: none;
  }
}

.p-doctor__greetingIllust--sp {
  display: none;
}
@media screen and (max-width: 767px) {
  .p-doctor__greetingIllust--sp {
    display: block;
    margin-inline: auto 0;
    margin-block-start: 1.5rem;
  }
}

.p-doctor__signName {
  clear: both;
  font-family: "Kiwi Maru";
  font-size: 0.6875rem;
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.1em;
  color: #555555;
  text-align: right;
  margin-block-start: 0.5rem;
}

.p-doctor__signTitle {
  font-family: "Kiwi Maru";
  font-size: clamp(1rem, 0.6666666667rem + 0.6944444444vw, 1.1875rem);
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.05em;
  color: #555555;
  text-align: right;
  margin-block-start: 0.0625rem;
}

.p-doctor__cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 2.5rem;
  margin-block-start: clamp(4rem, -3.7777777778rem + 16.2037037037vw, 8.375rem);
}
@media screen and (max-width: 767px) {
  .p-doctor__cards {
    grid-template-columns: 1fr;
  }
}

@media screen and (max-width: 767px) {
  .p-doctor__card + .p-doctor__card {
    margin-block-start: 2.5rem;
  }
}

.p-doctor__card {
  background-color: #ffffff;
  border-radius: 1.25rem;
  border: 0.125rem solid #6969c7;
  padding-block: 0rem 3.5rem;
  padding-inline: clamp(1.5rem, -0.6111111111rem + 4.3981481481vw, 2.6875rem);
}

.p-doctor__cardLabel {
  background-color: #6969c7;
  padding-block: 0.25rem 0.25rem;
  padding-inline: 0.5rem 0.25rem;
  width: fit-content;
  margin-inline: auto;
  font-family: "Kiwi Maru";
  font-size: clamp(1.125rem, 0.7916666667rem + 0.6944444444vw, 1.3125rem);
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.2em;
  color: #ffffff;
  text-align: center;
}

.p-doctor__careerList {
  margin-block-start: clamp(2.5rem, 0.6111111111rem + 3.9351851852vw, 3.5625rem);
}

.p-doctor__careerRow {
  display: flex;
  align-items: flex-start;
  column-gap: 0.625rem;
}

.p-doctor__careerRow + .p-doctor__careerRow {
  margin-block-start: clamp(1.5rem, 0.7222222222rem + 1.6203703704vw, 1.9375rem);
}

.p-doctor__careerYear {
  width: fit-content;
  flex-shrink: 0;
  font-family: "Kiwi Maru";
  font-size: clamp(0.9375rem, 0.6041666667rem + 0.6944444444vw, 1.125rem);
  font-weight: 400;
  line-height: 1.72;
  color: #464646;
  text-autospace: normal;
}

.p-doctor__careerBody {
  min-width: 0;
  font-family: "Kiwi Maru";
  font-size: clamp(0.9375rem, 0.6041666667rem + 0.6944444444vw, 1.125rem);
  font-weight: 400;
  line-height: 1.72;
  color: #464646;
  text-align: left;
}

.p-doctor__licenseList {
  margin-block-start: clamp(2.5rem, 0.7222222222rem + 3.7037037037vw, 3.5rem);
}

.p-doctor__licenseItem {
  padding-inline-start: 1em;
  text-indent: -1em;
  font-family: "Kiwi Maru";
  font-size: clamp(0.9375rem, 0.6041666667rem + 0.6944444444vw, 1.125rem);
  font-weight: 400;
  line-height: 1.72;
  letter-spacing: 0.025em;
  color: #464646;
  text-align: left;
}

.p-doctor__licenseItem::before {
  content: "・";
}

.p-doctor__licenseItem + .p-doctor__licenseItem {
  margin-block-start: clamp(1rem, 0.5555555556rem + 0.9259259259vw, 1.25rem);
}

.p-doctor__fig1 {
  position: absolute;
  z-index: -1;
  width: 10.4375rem;
  aspect-ratio: 167/264;
  object-fit: cover;
  top: 1.125rem;
  left: 6.5rem;
}

.p-doctor__fig2 {
  position: absolute;
  z-index: -1;
  width: 11.875rem;
  aspect-ratio: 190/209;
  object-fit: cover;
  top: 3.125rem;
  left: 65.375rem;
}

.p-doctor__fig3 {
  position: absolute;
  z-index: -1;
  width: 33.125rem;
  aspect-ratio: 530/449;
  object-fit: cover;
  top: 3.875rem;
  left: 84rem;
}

.p-doctor__fig4 {
  position: absolute;
  z-index: -1;
  width: 11.5625rem;
  aspect-ratio: 185/213;
  object-fit: cover;
  top: 26.5625rem;
  left: 22.625rem;
}

.p-doctor__fig5 {
  position: absolute;
  z-index: -1;
  width: 13.125rem;
  aspect-ratio: 210/188;
  object-fit: cover;
  top: 41.25rem;
  left: 101.5625rem;
}

.p-doctor__fig6 {
  position: absolute;
  z-index: -1;
  width: 11.875rem;
  aspect-ratio: 190/209;
  object-fit: cover;
  top: 56.1875rem;
  left: 5.25rem;
}

.p-doctor__fig7 {
  position: absolute;
  z-index: -1;
  width: 14.5rem;
  aspect-ratio: 232/171;
  object-fit: cover;
  top: 66.25rem;
  left: 89.25rem;
}

.p-doctor__fig8 {
  position: absolute;
  z-index: -1;
  width: 11.5625rem;
  aspect-ratio: 185/213;
  object-fit: cover;
  top: 73.625rem;
  left: 56.1875rem;
}

.p-doctor__fig9 {
  position: absolute;
  z-index: -1;
  width: 10.4375rem;
  aspect-ratio: 167/264;
  object-fit: cover;
  top: 87rem;
  left: 18.9375rem;
}

.p-doctor__fig10 {
  position: absolute;
  z-index: -1;
  width: 33.125rem;
  aspect-ratio: 530/449;
  object-fit: cover;
  top: 109.0625rem;
  left: 3.625rem;
}

.p-doctor__fig11 {
  position: absolute;
  z-index: -1;
  width: 11.5625rem;
  aspect-ratio: 185/213;
  object-fit: cover;
  top: 116.4375rem;
  left: 97.875rem;
}

.p-doctor__fig12 {
  position: absolute;
  z-index: -1;
  width: 11.875rem;
  aspect-ratio: 190/209;
  object-fit: cover;
  top: 124.875rem;
  left: 50.9375rem;
}

/* クリニックの特長（トップ・5card teaser）。bg=白（clinic 固有背景なし）。座標は design-detail 実測。 */
.p-top-clinic {
  padding-block: clamp(3.5rem, -0.9444444444rem + 9.2592592593vw, 6rem) clamp(6.25rem, -4.1944444444rem + 21.7592592593vw, 12.125rem);
}
@media screen and (max-width: 767px) {
  .p-top-clinic {
    padding-block: 3rem 5rem;
  }
}

.p-top-clinic__inner {
  width: 100%;
  max-width: 70rem;
  padding-inline: 2.5rem;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .p-top-clinic__inner {
    padding-inline: 1.25rem;
  }
}

/* リード文（中央・19px・行間ゆったり） */
.p-top-clinic__lead {
  margin-block-start: 2.125rem;
  max-width: 44.875rem;
  margin-inline: auto;
  font-size: clamp(1rem, 0.6666666667rem + 0.6944444444vw, 1.1875rem);
  color: #555555;
  line-height: 2;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-top-clinic__lead {
    font-size: 1rem;
    line-height: 1.8;
  }
}

/* カード列：3＋2（row2 は中央寄せ）。flex-wrap＋justify-center で幅に 3 枚→残り中央。 */
.p-top-clinic__cards {
  margin-block-start: clamp(4rem, -1.2222222222rem + 10.8796296296vw, 6.9375rem);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  column-gap: clamp(1.5rem, -0.2777777778rem + 3.7037037037vw, 2.5rem);
  row-gap: clamp(4.5rem, -0.8333333333rem + 11.1111111111vw, 7.5rem);
}
@media screen and (max-width: 767px) {
  .p-top-clinic__cards {
    column-gap: 1.25rem;
    row-gap: 3.5rem;
  }
}

/* カード：320幅・relative（番号バッジを上端に跨らせる positioning context） */
.p-top-clinic__card {
  position: relative;
  width: 20rem;
}
@media screen and (max-width: 767px) {
  .p-top-clinic__card {
    width: 100%;
    max-width: 21.25rem;
  }
}

/* 番号バッジ（01–05・画像 134→66.5表示）。カード上端中央に跨る（重なり） */
.p-top-clinic__cardNum {
  position: absolute;
  z-index: 2;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 4.15625rem;
}

/* カード白box（indigo border 2px・角丸20）。高さ=写真210＋キャプション内容（min120で揃える） */
.p-top-clinic__cardBody {
  overflow: hidden;
  border: 0.125rem solid #6969C7;
  border-radius: 1.25rem;
  background-color: #ffffff;
}

.p-top-clinic__cardImg img {
  display: block;
  width: 100%;
  aspect-ratio: 320/210;
  object-fit: cover;
}

/* キャプション：写真下のゾーン（min-height120＋flex中央＝内容追従で全カード同高・下端張付き回避） */
.p-top-clinic__cardCaption {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 7.5rem;
  padding-inline: 1rem;
  font-size: clamp(1rem, 0.5555555556rem + 0.9259259259vw, 1.25rem);
  font-weight: 500;
  letter-spacing: 0.025em;
  color: #555555;
  text-align: center;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  .p-top-clinic__cardCaption {
    font-size: 1rem;
  }
}

/* CTA（共通 c-btn） */
.p-top-clinic__btnWrap {
  margin-block-start: 4.5rem;
  text-align: center;
}

.p-clinic {
  display: flow-root;
  overflow-x: clip;
  position: relative;
  z-index: 0;
  margin-block-start: 3.0625rem;
}

.p-clinic__inner {
  width: 100%;
}

/* ============ 特長 features ============ */
.p-clinic__panel1 {
  padding-block-start: clamp(3.5rem, -0.2777777778rem + 7.8703703704vw, 5.625rem);
  padding-block-end: clamp(6.25rem, -3.0833333333rem + 19.4444444444vw, 11.5rem);
  padding-inline: 1.25rem;
  background-color: #f7f1d7;
}
@media screen and (max-width: 767px) {
  .p-clinic__panel1 {
    padding-block: 3rem 4rem;
  }
}

.p-clinic__head {
  text-align: center;
}

.p-clinic__ttl {
  font-size: clamp(1.25rem, 0.9166666667rem + 0.6944444444vw, 1.4375rem);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.03em;
  color: #6969c7;
}

.p-clinic__en {
  margin-block-start: 0.375rem;
  font-size: clamp(1.125rem, 0.7916666667rem + 0.6944444444vw, 1.3125rem);
  font-weight: 400;
  line-height: 1;
  color: #6969c7;
}

.p-clinic__lead {
  margin-block-start: 2.375rem;
  margin-inline: auto;
  max-width: 44.875rem;
  font-size: clamp(1rem, 0.6666666667rem + 0.6944444444vw, 1.1875rem);
  line-height: 2.11;
  color: #555555;
  text-align: left;
}
@media screen and (max-width: 767px) {
  .p-clinic__lead {
    font-size: 1rem;
    line-height: 1.9;
  }
}

.p-clinic__featList {
  margin-block-start: clamp(4rem, -0.4444444444rem + 9.2592592593vw, 6.5rem);
  margin-inline: auto;
  width: 100%;
  max-width: 66.75rem;
  padding-inline: 2.5rem;
}
@media screen and (max-width: 767px) {
  .p-clinic__featList {
    padding-inline: 1.25rem;
  }
}

.p-clinic__featItem {
  position: relative;
}

.p-clinic__featItem + .p-clinic__featItem {
  margin-block-start: clamp(5rem, -8.1111111111rem + 27.3148148148vw, 12.375rem);
}
@media screen and (max-width: 767px) {
  .p-clinic__featItem + .p-clinic__featItem {
    margin-block-start: 3.5rem;
  }
}

/* コラージュ重なり：既定は写真をカード上に積む。≥1120 のみ写真をカードに被せる（局所 absolute）。 */
.p-clinic__featPhoto {
  width: 100%;
  aspect-ratio: 320/210;
  border-radius: 1.25rem;
  overflow: hidden;
}
@media (min-width: 1120px) {
  .p-clinic__featPhoto {
    position: absolute;
    z-index: 1;
    top: -4.3125rem;
    left: 0;
    width: 20rem;
    height: 13.125rem;
    aspect-ratio: auto;
  }
}

.p-clinic__featPhoto img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: scale 0.5s ease;
}

@media (any-hover: hover) {
  .p-clinic__featPhoto:hover img {
    scale: 1.05;
  }
}
@media (min-width: 1120px) {
  .p-clinic__featItem--rev .p-clinic__featPhoto {
    left: 40.4375rem;
  }
}

.p-clinic__featCard {
  position: relative;
  width: 100%;
  margin-block-start: 1.25rem;
  padding-block: 1.375rem 1.75rem;
  padding-inline: 1.5rem;
  background-color: #dbd6d4;
  border-radius: 1.25rem;
}
@media (min-width: 1120px) {
  .p-clinic__featCard {
    width: 45.625rem;
    margin-block-start: 0;
    margin-inline-start: 16.125rem;
    padding-block-start: 1.0625rem;
    padding-block-end: 1.5625rem;
    padding-inline-start: 5.875rem;
    padding-inline-end: 2.25rem;
  }
}

@media (min-width: 1120px) {
  .p-clinic__featItem--rev .p-clinic__featCard {
    margin-inline-start: 0;
    padding-inline-start: 2.3125rem;
    padding-inline-end: 5.875rem;
  }
}

.p-clinic__featLabel {
  font-size: clamp(1.25rem, 0.9166666667rem + 0.6944444444vw, 1.4375rem);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.03em;
  color: #6969c7;
}

.p-clinic__featName {
  margin-block-start: 1.0625rem;
  font-size: clamp(1.125rem, 0.7916666667rem + 0.6944444444vw, 1.3125rem);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.03em;
  color: #555555;
}

.p-clinic__featText {
  margin-block-start: 1.125rem;
  max-width: 37.25rem;
  font-size: clamp(0.9375rem, 0.6041666667rem + 0.6944444444vw, 1.125rem);
  line-height: 1.67;
  letter-spacing: 0.03em;
  color: #555555;
}
@media screen and (max-width: 767px) {
  .p-clinic__featText {
    font-size: 0.9375rem;
  }
}

.p-clinic__featText::before {
  content: "";
  display: block;
  height: 1px;
  margin-block-end: 1.125rem;
  background-image: repeating-linear-gradient(90deg, #ffffff 0 3px, transparent 3px 8px);
}

/* ============ 医院概要 overview ============ */
.p-clinic__panel13 {
  position: relative;
  padding-block-start: clamp(6rem, 2.4444444444rem + 7.4074074074vw, 8rem);
  padding-block-end: 4.6875rem;
  padding-inline: 1.25rem;
  background-color: #f2f3fb;
}
@media screen and (max-width: 767px) {
  .p-clinic__panel13 {
    padding-block-start: 4.5rem;
  }
}

/* セクション境界の波形キャップ。clip-path は objectBoundingBox の SVG clipPath（#clinicWave・PHP に定義）で全幅スケール（path() の 1920 固定座標を廃止） */
.p-clinic__panel13::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 7.375rem;
  background-color: #ffffff;
  background-image: repeating-linear-gradient(90deg, rgba(214, 186, 56, 0.3) 0 10px, transparent 10px 20px);
  clip-path: url(#clinicWave);
}
@media screen and (max-width: 767px) {
  .p-clinic__panel13::before {
    height: 2.5rem;
  }
}

.p-clinic__ovTtl {
  font-size: clamp(1.25rem, 0.9166666667rem + 0.6944444444vw, 1.4375rem);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.03em;
  color: #6969c7;
  text-align: center;
}

.p-clinic__ovCols {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
  column-gap: clamp(2.5rem, -4.1666666667rem + 13.8888888889vw, 6.25rem);
  row-gap: 3rem;
  margin-block-start: clamp(4rem, -2.5555555556rem + 13.6574074074vw, 7.6875rem);
  padding-inline: 1.25rem;
}
@media screen and (max-width: 767px) {
  .p-clinic__ovCols {
    padding-inline: 0;
  }
}

.p-clinic__ovColLeft {
  width: 100%;
  max-width: 29.4375rem;
}

.p-clinic__ovTable {
  position: relative;
  padding-block-start: 0.625rem;
  padding-block-end: 1.0625rem;
  padding-inline: 1.0625rem;
  background-color: #bcc1eb;
  border-radius: 0.875rem;
}
@media screen and (max-width: 767px) {
  .p-clinic__ovTable {
    padding-inline: 0.625rem;
  }
}

.p-clinic__ovTable::before,
.p-clinic__ovTable::after {
  content: "";
  position: absolute;
  left: 1.0625rem;
  right: 1.1875rem;
  height: 1px;
  background-color: #ffffff;
}

.p-clinic__ovTable::before {
  top: 3rem;
}

.p-clinic__ovTable::after {
  top: 5.6875rem;
}

.p-clinic__ovGrid {
  display: grid;
  grid-template-columns: 7.8125rem repeat(7, 2.375rem);
  grid-template-rows: 2.375rem 2.6875rem 2.75rem;
  justify-content: start;
  align-items: center;
}
@media screen and (max-width: 767px) {
  .p-clinic__ovGrid {
    grid-template-columns: 5.125rem repeat(7, 1fr);
  }
}

.p-clinic__ovHead {
  text-align: center;
  white-space: nowrap;
  font-size: 0.9375rem;
  letter-spacing: 0.02em;
  color: #ffffff;
}
@media screen and (max-width: 767px) {
  .p-clinic__ovHead {
    font-size: 0.6875rem;
  }
}

.p-clinic__ovTime {
  font-size: 1rem;
  letter-spacing: 0.02em;
  color: #ffffff;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .p-clinic__ovTime {
    font-size: 0.75rem;
  }
}

.p-clinic__ovMk {
  text-align: center;
  font-size: 0.9375rem;
  line-height: 1;
  color: #ffffff;
}
@media screen and (max-width: 767px) {
  .p-clinic__ovMk {
    font-size: 0.75rem;
  }
}

.p-clinic__ovNote {
  position: relative;
  margin-block-start: 1.6875rem;
  font-size: 0.875rem;
  line-height: 1.6;
  color: #ffffff;
}

.p-clinic__ovNote::before {
  content: "";
  position: absolute;
  top: -1.6875rem;
  left: 0;
  right: 0;
  height: 1px;
  background-color: #ffffff;
}

.p-clinic__ovLogo {
  display: block;
  margin-block-start: 1.6875rem;
  margin-inline: auto;
  width: 19rem;
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

.p-clinic__ovAddr {
  margin-block-start: 1.8125rem;
  font-size: clamp(0.9375rem, 0.3819444444rem + 1.1574074074vw, 1.25rem);
  line-height: 1.45;
  color: #555555;
  text-align: left;
}

.p-clinic__ovTelBlock {
  display: flex;
  justify-content: center;
  align-items: center;
  column-gap: 0.625rem;
  margin-block-start: 0.875rem;
}

.p-clinic__ovTelIcon {
  width: 2.1875rem;
  height: 2.125rem;
}

.p-clinic__ovTel {
  font-size: clamp(2rem, 0.6666666667rem + 2.7777777778vw, 2.75rem);
  line-height: 1;
  letter-spacing: 0.02em;
  color: #6969c7;
}

.p-clinic__ovColRight {
  width: 100%;
  max-width: 28.125rem;
}

.p-clinic__ovMap {
  width: 100%;
  aspect-ratio: 450/400;
  border: 2px solid #6969c7;
  border-radius: 1.25rem;
  overflow: hidden;
  background-color: #ffffff;
}

.p-clinic__ovMap iframe {
  display: block;
  width: 100%;
  height: 100%;
}

.p-clinic__ovAccess {
  margin-block-start: 1.5625rem;
  padding-block: 1rem;
  background-color: #bcc1eb;
  border-radius: 1.25rem;
}
@media screen and (max-width: 767px) {
  .p-clinic__ovAccess {
    padding-inline: 1.5rem;
  }
}

.p-clinic__ovAccessTxt {
  font-size: clamp(1rem, 0.4444444444rem + 1.1574074074vw, 1.3125rem);
  line-height: 1.38;
  letter-spacing: 0.05em;
  color: #ffffff;
  text-align: center;
}

.p-clinic__ovNotice {
  margin-block-start: 0;
  margin-inline: auto;
  width: 100%;
  max-width: 75rem;
  padding-block-start: clamp(2.5rem, -0.7222222222rem + 6.712962963vw, 4.3125rem);
  padding-block-end: 3.125rem;
  padding-inline: 2.5rem;
  background-color: #ffffff;
  border-radius: 1.25rem;
}
@media screen and (max-width: 767px) {
  .p-clinic__ovNotice {
    padding-inline: 1.25rem;
  }
}

.p-clinic__ovNoticeHead {
  font-size: clamp(1.125rem, 0.5694444444rem + 1.1574074074vw, 1.4375rem);
  line-height: 1.7;
  color: #555555;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-clinic__ovNoticeHead {
    text-align: left;
  }
}

.p-clinic__ovNoticeList {
  margin-block-start: 1.375rem;
  margin-inline: auto;
  width: 100%;
  max-width: 63.4375rem;
  font-size: clamp(0.9375rem, 0.6041666667rem + 0.6944444444vw, 1.125rem);
  line-height: 1.55;
  color: #555555;
}
@media screen and (max-width: 767px) {
  .p-clinic__ovNoticeList {
    font-size: 0.9375rem;
  }
}

.p-clinic__ovNoticeList li {
  position: relative;
  padding-inline-start: 1.125rem;
}

.p-clinic__ovNoticeList li::before {
  content: "・";
  position: absolute;
  top: 0;
  left: 0;
}

/* ============ 院内紹介 facility ============ */
.p-clinic__facility {
  padding-block-start: clamp(4rem, 0.3333333333rem + 7.6388888889vw, 6.0625rem);
  padding-block-end: clamp(5rem, -0.5555555556rem + 11.5740740741vw, 8.125rem);
  padding-inline: 1.25rem;
  background-color: #ffffff;
  background-image: repeating-linear-gradient(90deg, rgba(214, 186, 56, 0.3) 0 10px, transparent 10px 20px);
}
@media screen and (max-width: 767px) {
  .p-clinic__facility {
    padding-block: 3.5rem 4.5rem;
  }
}

.p-clinic__facilityTtl {
  font-size: clamp(1.25rem, 0.9166666667rem + 0.6944444444vw, 1.4375rem);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.03em;
  color: #6969c7;
  text-align: center;
}

.p-clinic__facilityList {
  margin-block-start: clamp(3.5rem, -0.5rem + 8.3333333333vw, 5.75rem);
  margin-inline: auto;
  display: grid;
  width: 100%;
  max-width: 94.375rem;
  padding-inline: 2.5rem;
  grid-template-columns: repeat(3, 1fr);
  column-gap: clamp(1.25rem, -0.9722222222rem + 4.6296296296vw, 2.5rem);
  row-gap: clamp(2.5rem, -0.6111111111rem + 6.4814814815vw, 4.25rem);
}
@media screen and (max-width: 767px) {
  .p-clinic__facilityList {
    grid-template-columns: 1fr;
    padding-inline: 1.25rem;
    row-gap: 2.5rem;
  }
}

.p-clinic__facilityImg {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 450/300;
  overflow: hidden;
  background-color: #bcc1eb;
  border-radius: 1.25rem;
}

.p-clinic__facilityImg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 写真が未支給の枠に出す「Now printing」（2026-09-02 島田様依頼）。
   管理画面で写真を入れた枠から自動で消える（テンプレの if 分岐）。 */
.p-clinic__facilityNowPrinting {
  font-size: clamp(1.125rem, 0.0138888889rem + 2.3148148148vw, 1.75rem);
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #ffffff;
}

.p-clinic__facilityLabel {
  margin-block-start: 0.5625rem;
  font-size: clamp(1rem, 0.4444444444rem + 1.1574074074vw, 1.3125rem);
  line-height: 1;
  letter-spacing: 0.05em;
  color: #555555;
  text-align: center;
}

.p-top-access {
  position: relative;
}

.p-top-access__panel {
  padding-block: clamp(2.5rem, 1.9444444444rem + 1.1574074074vw, 2.8125rem) 3rem;
  background: url(../img/top/access-bg.webp) center top/cover no-repeat;
}
@media screen and (max-width: 767px) {
  .p-top-access__panel {
    padding-block: 2.5rem 2.5rem;
  }
}

.p-top-access__inner {
  width: 100%;
  max-width: 51.875rem;
  padding-inline: 2.5rem;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .p-top-access__inner {
    padding-inline: 1.25rem;
  }
}

.p-top-access__address {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 3.75rem;
  margin-block-start: 1.5625rem;
  padding-inline: 1.5rem;
  background-color: #ffffff;
  border: 0.0625rem solid #a3a5db;
  border-radius: 0.9375rem;
  font-size: clamp(0.875rem, 0.2083333333rem + 1.3888888889vw, 1.25rem);
  letter-spacing: 0.025em;
  color: #464646;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-top-access__address {
    min-height: 3.375rem;
    font-size: 0.875rem;
  }
}

.p-top-access__map {
  overflow: hidden;
  margin-block-start: 2.25rem;
  aspect-ratio: 750/400;
  border: 0.125rem solid #6969C7;
  border-radius: 0.75rem;
}

.p-top-access__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.p-top-access__station {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: center;
  column-gap: 0.875rem;
  row-gap: 0.125rem;
  min-height: 3.75rem;
  margin-block-start: 2.0625rem;
  padding-block: 0.75rem;
  padding-inline: 1.5rem;
  background-color: #BCC1EB;
  border-radius: 0.9375rem;
  font-size: clamp(1rem, 0.3333333333rem + 1.3888888889vw, 1.375rem);
  font-weight: 500;
  letter-spacing: 0.05em;
  color: #ffffff;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-top-access__station {
    min-height: 3.375rem;
    font-size: 0.9375rem;
  }
}

.p-top-access__stationLine {
  white-space: nowrap;
}

.p-top-access__stationNum {
  font-size: clamp(1.25rem, 0.3611111111rem + 1.8518518519vw, 1.75rem);
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .p-top-access__stationNum {
    font-size: 1.25rem;
  }
}

.p-top-access__btnWrap {
  margin-block-start: 5.125rem;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-top-access__btnWrap {
    margin-block-start: 3rem;
  }
}

.p-footer__info {
  width: 29.4375rem;
}
@media screen and (max-width: 767px) {
  .p-footer__info {
    width: 100%;
    max-width: 29.4375rem;
  }
}

.p-footer__hours {
  padding-block: 0.875rem;
  padding-inline: 1.25rem 0.75rem;
  background-color: #cecfe5;
  border-radius: 0.875rem;
}

/* FV時間表と同一機構：各行＝[時刻セル]＋[マークセル(●を全角スペース桁送りの逐語1セル)]。
   letter-spacing 0.25em(.ai letterSpacing250)でグリフが .ai 実列位置に並ぶ。罫線は tr border 全幅。 */
.p-footer__hoursTable {
  width: 100%;
  border-collapse: collapse;
  color: #ffffff;
}

.p-footer__hoursTable tr {
  border-block-end: 0.0625rem solid #ffffff;
}

/* 曜日ヘッダ行は短い（.ai: box内47 ＜ データ行44+α）。データ行と同じ13だと罫線が9px下がる */
.p-footer__hoursTable tr:first-child .p-footer__hoursTime,
.p-footer__hoursTable tr:first-child .p-footer__hoursMarks {
  padding-block: 0.4375rem;
}

.p-footer__hoursTime {
  width: 8.375rem;
  padding-block: 0.8125rem;
  font-size: 0.99375rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  text-align: left;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .p-footer__hoursTime {
    width: 6.25rem;
    font-size: 0.75rem;
  }
}

.p-footer__hoursMarks {
  padding-block: 0.8125rem;
  font-size: 0.95rem;
  font-weight: 400;
  letter-spacing: 0.25em;
  text-align: left;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .p-footer__hoursMarks {
    font-size: 0.6875rem;
    letter-spacing: 0.04em;
  }
}

.p-footer__hoursNote {
  margin-top: 1.75rem;
  font-size: 0.8625rem;
  letter-spacing: 0.025em;
  line-height: 1.6;
  color: #ffffff;
}

.p-footer__brand {
  margin-top: 2.5rem;
  text-align: center;
}

.p-footer__logo img {
  width: 24.125rem;
}

/* 住所はinfo幅(471)より広い1行(588)＝左右にはみ出す。overflow時は text-align:center が効かず
   左端固定で右にあふれる（pappy指摘「1行だけ右にずれる」の原因）。width:max-content＋left:50%/
   translateX で info 中央に正しく載せる（はみ出しを左右対称にする） */
.p-footer__address {
  position: relative;
  left: 50%;
  width: max-content;
  margin-top: 1.125rem;
  transform: translateX(-50%);
  font-size: 1.25rem;
  color: #555555;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .p-footer__address {
    position: static;
    left: auto;
    width: auto;
    transform: none;
    font-size: 0.875rem;
    white-space: normal;
  }
}

.p-footer__tel {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  margin-top: 0.375rem;
}

.p-footer__tel img {
  width: 2.5rem;
}

.p-footer__telNum {
  font-size: 2.625rem;
  color: #8C8FB9;
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .p-footer__telNum {
    font-size: 2.125rem;
  }
}

.p-footer__nav {
  display: flex;
  gap: 7.875rem;
  line-height: 3.875rem;
}
@media screen and (max-width: 767px) {
  .p-footer__nav {
    width: 100%;
    gap: 1.5rem;
    margin-block-start: 3rem;
    line-height: 2;
  }
}

.p-footer__navCol {
  width: 13.75rem;
}
@media screen and (max-width: 767px) {
  .p-footer__navCol {
    flex: 1;
    min-width: 0;
    width: auto;
  }
}

.p-footer__navItem--divider {
  position: relative;
}

.p-footer__navItem--divider::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 15.625rem;
  height: 0.046875rem;
  background-image: repeating-linear-gradient(to right, #8C8FB9 0, #8C8FB9 0.3125rem, transparent 0.3125rem, transparent 0.625rem);
}
@media screen and (max-width: 767px) {
  .p-footer__navItem--divider::after {
    width: 100%;
  }
}

.p-footer__navMain {
  font-size: 1.25rem;
  font-weight: 500;
  color: #8C8FB9;
  transition: color 0.3s ease;
}

.p-footer__navMain::before {
  content: "●";
}

.p-footer__navSub {
  margin-inline-start: 1.25rem;
}

.p-footer__navSub a {
  font-size: 1.25rem;
  color: #8C8FB9;
  transition: color 0.3s ease;
}

.p-float {
  position: fixed;
  right: clamp(0.75rem, -1.8440533981rem + 11.067961165vw, 11.4375rem);
  bottom: clamp(0.75rem, -0.3422330097rem + 4.6601941748vw, 5.25rem);
  z-index: 90;
  display: flex;
  gap: clamp(1.25rem, 1.0376213592rem + 0.9061488673vw, 2.125rem);
}

.p-float__reserve {
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(9.375rem, 7.8580097087rem + 6.4724919094vw, 15.625rem);
  height: clamp(4rem, 3.5297330097rem + 2.0064724919vw, 5.9375rem);
  background-color: #ffffff;
  border: 0.125rem solid #6969C7;
  border-radius: clamp(0.875rem, 0.7839805825rem + 0.3883495146vw, 1.25rem);
  font-size: clamp(1.0625rem, 0.9411407767rem + 0.5177993528vw, 1.5625rem);
  font-weight: 500;
  letter-spacing: 0.05em;
  color: #6969C7;
  transition: background-color 0.35s ease, color 0.35s ease, box-shadow 0.35s ease;
}

.p-float__top {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: clamp(4rem, 3.5297330097rem + 2.0064724919vw, 5.9375rem);
  height: clamp(4rem, 3.5297330097rem + 2.0064724919vw, 5.9375rem);
  background-color: #6969C7;
  border-radius: 100%;
  font-size: clamp(0.9375rem, 0.7858009709rem + 0.6472491909vw, 1.5625rem);
  font-weight: 500;
  letter-spacing: 0.05em;
  color: #ffffff;
  transition: box-shadow 0.35s ease, filter 0.35s ease;
}

.p-float__topArrow {
  width: clamp(0.625rem, 0.5794902913rem + 0.1941747573vw, 0.8125rem);
  height: clamp(0.625rem, 0.5794902913rem + 0.1941747573vw, 0.8125rem);
  border-top: 0.125rem solid #ffffff;
  border-right: 0.125rem solid #ffffff;
  transform: rotate(-45deg);
}

.p-float__topLabel {
  margin-block-start: 0.125rem;
}

@media (any-hover: hover) {
  .p-footer__navMain:hover,
  .p-footer__navSub a:hover {
    color: #6969C7;
  }
  .p-float__reserve:hover {
    background-color: #6969C7;
    color: #ffffff;
    box-shadow: 0 0.375rem 1rem rgba(105, 105, 199, 0.3);
  }
  .p-float__top:hover {
    box-shadow: 0 0.375rem 1rem rgba(105, 105, 199, 0.45);
    filter: brightness(1.08);
  }
}
@media (min-width: 768px) {
  .u-sp {
    display: none !important;
  }
}
@media screen and (max-width: 767px) {
  .u-pc {
    display: none !important;
  }
}
.u-srOnly {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

.u-animation__fadeIn {
  translate: 0 1.875rem;
  opacity: 0;
  transition: opacity 0.9s ease, translate 1s cubic-bezier(0.22, 1, 0.36, 1);
}

.u-animation__fadeIn.js-show {
  translate: 0;
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .u-animation__fadeIn {
    translate: 0;
    opacity: 1;
    transition: none;
  }
}

/*# sourceMappingURL=style.css.map */
