@charset "utf-8";

/* =========================================================
   台原やまもと歯科 — TOP（Figma カンプ 1440px 基準）
   ========================================================= */

:root{
  --main:#d73061;
  --main-dark:#c02553;
  --logo:#c80852;
  --sub:#f677b8;
  --sub-light:#fabad9;
  --pink-50:#fff4f6;
  --pink-100:#ffe9ee;
  --pink-150:#ffe9ed;
  --pink-200:#ffd5e1;
  --pink-250:#ffd2d9;
  --pink-300:#fabad9;
  --cream:#fff4e7;
  --lilac:#fef1f8;
  --lower-bg:#ffe2e8;
  --text:#444;
  --white:#fff;

  --container:1280px;
  --container-news:1178px;
  --header-h:126px;

  /* 1440px デザインフレームの左端。ビューポートが狭いときは 0 に丸める。
     装飾の絶対配置はすべてこの変数基準にして、画面幅で位置がずれないようにする。 */
  --fl:max(0px, calc(50% - 720px));

  --wave:url("../img/custom/wave.svg");
  --font:"Zen Maru Gothic","Hiragino Maru Gothic ProN","Hiragino Sans",
         "Yu Gothic",YuGothic,"Meiryo",sans-serif;
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{ -webkit-text-size-adjust:100% }
body{
  margin:0;
  font-family:var(--font);
  font-size:16px;
  font-weight:500;
  line-height:2;
  letter-spacing:.05em;
  color:var(--text);
  background:var(--white);
  overflow-x:hidden;
}
img{max-width:100%;height:auto;vertical-align:middle;border:0}
a{color:inherit;text-decoration:none;transition:opacity .25s}
a:hover{opacity:.75}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,h4,p,dl,dd,figure,table{margin:0}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
table{border-collapse:collapse;width:100%}
svg{display:block}

/* ---------- 共通 ---------- */
.l-main{display:block}
.p-mv,.p-news,.p-about,.p-trouble,.p-clinic,.p-reserve,
.p-reason,.p-doctor,.p-medical,.p-price,.p-recommend,
.p-gallery,.p-blog,.l-footer{overflow-x:clip}

.c-inner{width:min(100% - 40px,var(--container));margin-inline:auto}

/* 波形の区切り（次セクションの色で上に重なる） */
.u-wave{position:relative}
.u-wave::before{
  content:"";position:absolute;left:0;right:0;bottom:100%;height:18px;
  background-color:var(--wave-color,transparent);
  -webkit-mask-image:var(--wave);mask-image:var(--wave);
  -webkit-mask-size:72px 18px;mask-size:72px 18px;
  -webkit-mask-repeat:repeat-x;mask-repeat:repeat-x;
  -webkit-mask-position:left bottom;mask-position:left bottom;
  pointer-events:none;z-index:2;
}

/* セクション見出し */
.c-head{text-align:center;position:relative;z-index:3}
.c-head__en{
  display:flex;align-items:center;justify-content:center;
  font-size:22px;font-weight:700;letter-spacing:.14em;color:var(--main);
  line-height:1;margin-bottom:14px;position:relative;
}
.c-head__en img{position:absolute;top:50%;left:50%;transform:translate(-50%,-56%);width:80px;height:auto}
.c-head__en span{position:relative}
.c-head__ja{
  font-size:56px;font-weight:700;line-height:1.4;letter-spacing:.12em;color:var(--text);
}
.c-head--white .c-head__en{color:#ffd9e4}
.c-head--white .c-head__ja{color:var(--white)}
.c-head--left{text-align:left}
.c-head--left .c-head__en{justify-content:flex-start}
.c-head--left .c-head__en img{left:34px}

/* ボタン */
.c-btn{
  display:inline-flex;align-items:center;justify-content:center;position:relative;
  min-width:262px;height:64px;padding:0 44px;
  background:var(--main);color:var(--white);
  font-size:18px;font-weight:700;letter-spacing:.16em;line-height:1;
  border-radius:999px;transition:background .25s,opacity .25s;
}
.c-btn i{
  position:absolute;right:26px;top:50%;width:8px;height:8px;
  border-top:2px solid currentColor;border-right:2px solid currentColor;
  transform:translateY(-50%) rotate(45deg);
}
.c-btn:hover{background:var(--main-dark);opacity:1}
.c-btn--sm{min-width:180px;height:44px;font-size:14px;letter-spacing:.18em;padding:0 34px}
.c-btn--sm i{right:18px;width:6px;height:6px}

.c-arrow{
  display:inline-block;width:8px;height:8px;
  border-top:2px solid var(--main);border-right:2px solid var(--main);
  transform:rotate(45deg);
}

.i-tel{width:20px;height:20px;fill:currentColor;flex:none}
.i-mail{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.4;flex:none}

/* =========================================================
   ヘッダー
   ========================================================= */
.l-header{
  position:sticky;top:0;z-index:100;
  background:var(--white);
  height:var(--header-h);
}
.l-header__inner{
  display:flex;align-items:center;gap:24px;
  height:100%;padding:0 20px;
}
.l-header__logo{flex:none;display:block}
.l-header__logo img{width:265px;height:80px}
.l-header__right{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:12px}

.l-header__contact{display:flex;align-items:center;gap:16px}
.h-contact{display:flex;align-items:center;gap:10px}
.h-contact__badge{width:70px;height:50px}
.h-contact__tel{
  display:flex;align-items:center;gap:6px;
  font-size:22px;font-weight:700;letter-spacing:.04em;line-height:1;color:var(--text);
}
.h-contact--main .h-contact__tel .i-tel{color:var(--main)}
.h-contact--sub  .h-contact__tel .i-tel{color:var(--sub)}
.h-contact__btn{
  display:flex;align-items:center;justify-content:center;gap:8px;
  height:42px;padding:0 24px;border-radius:999px;
  font-size:17px;font-weight:700;letter-spacing:.08em;line-height:1;color:var(--white);
}
.h-contact--main .h-contact__btn{background:var(--main)}
.h-contact--sub  .h-contact__btn{background:var(--sub)}

/* 直下の ul だけ。子孫セレクタだと診療案内のホバーメニュー内のリストまで横並びになる */
.l-header__nav > ul{display:flex;align-items:center;gap:32px}
.l-header__nav > ul > li > a{font-size:16px;font-weight:700;letter-spacing:.06em;line-height:1;color:var(--text);white-space:nowrap}
.l-header__nav > ul > li > a:hover{color:var(--main);opacity:1}

/* ---- 診療案内のホバーメニュー ----
   パネルは .l-header（sticky＝位置指定済み）を基準に中央へ置く。
   li を基準にすると画面幅によって右にはみ出すため。 */
.l-gnav__has{
  /* 文字とヘッダー下端のあいだにマウスが抜ける隙間ができないよう、
     当たり判定だけ下に伸ばす。マイナスマージンで打ち消すのでレイアウトは動かない。 */
  padding-bottom:30px;margin-bottom:-30px;
}
.l-gnav__panel{
  position:absolute;top:var(--header-h);left:50%;
  width:min(1080px,calc(100vw - 40px));
  padding:30px 38px 26px;
  background:var(--white);border-radius:20px;
  box-shadow:0 14px 36px rgba(140,60,90,.16);
  text-align:left;z-index:5;
  opacity:0;visibility:hidden;pointer-events:none;
  transform:translateX(-50%) translateY(-10px);
  transition:opacity .28s ease,transform .28s ease,visibility .28s;
}
.l-gnav__has:hover > .l-gnav__panel,
.l-gnav__has:focus-within > .l-gnav__panel{
  opacity:1;visibility:visible;pointer-events:auto;
  transform:translateX(-50%) translateY(0);
}
.l-gnav__list,.l-gnav__list ul{display:block}
.l-gnav__list{column-count:4;column-gap:30px;list-style:none;margin:0;padding:0}
.l-gnav__list > li{break-inside:avoid;margin-bottom:14px}
.l-gnav__list > li > a{
  display:block;padding:6px 0 6px 16px;position:relative;
  font-size:15px;font-weight:700;line-height:1.5;color:var(--text);
  transition:color .2s,transform .2s;
}
.l-gnav__list > li > a::before{
  content:"";position:absolute;left:0;top:50%;width:7px;height:7px;margin-top:-3px;
  border-radius:50%;background:var(--sub);transition:background .2s;
}
.l-gnav__list ul{list-style:none;margin:2px 0 0;padding:0 0 0 16px}
.l-gnav__list ul a{
  display:block;padding:4px 0 4px 14px;position:relative;
  font-size:13px;font-weight:500;line-height:1.5;color:#7b6a70;
  transition:color .2s,transform .2s;
}
.l-gnav__list ul a::before{
  content:"";position:absolute;left:0;top:50%;width:8px;height:1px;
  background:currentColor;opacity:.6;
}
.l-gnav__panel a:hover{color:var(--main);opacity:1;transform:translateX(3px)}
.l-gnav__list > li > a:hover::before{background:var(--main)}
.l-gnav__all{margin:6px 0 0;padding-top:16px;border-top:1px solid #f4dde4;text-align:right}
.l-gnav__all a{font-size:14px;font-weight:700;color:var(--main);letter-spacing:.04em}
.l-gnav__all a::after{content:"›";margin-left:8px;font-weight:400}

@media (max-width:1240px){
  .l-gnav__panel{padding:24px 26px 20px}
  .l-gnav__list{column-count:3;column-gap:22px}
  .l-gnav__list > li > a{font-size:14px}
}
@media (prefers-reduced-motion:reduce){
  .l-gnav__panel{transition:none}
  .l-gnav__panel a:hover{transform:none}
}

.l-header__toggle{display:none}
.l-spnav{display:none}

/* =========================================================
   メインビジュアル
   ========================================================= */
.p-mv{position:relative;height:845px;background:#f7dfe2}
.p-mv__photo{position:absolute;inset:0;overflow:hidden}
.p-mv__photo img{width:100%;height:100%;object-fit:cover;object-position:center}
.p-mv__photo::before{
  content:"";position:absolute;left:0;right:0;top:0;height:18px;z-index:3;
  background-color:var(--white);
  -webkit-mask-image:var(--wave);mask-image:var(--wave);
  -webkit-mask-size:72px 18px;mask-size:72px 18px;
  -webkit-mask-repeat:repeat-x;mask-repeat:repeat-x;
  -webkit-mask-position:left top;mask-position:left top;
  transform:scaleY(-1);
}
.p-mv__catch{position:absolute;left:max(20px,calc(var(--fl) + 65px));top:196px;z-index:4;
  margin:0;font-size:inherit;font-weight:inherit;line-height:inherit;
}
/* h1 の中身なので p ではなく span。ブロック化してもとの見た目を保つ。 */
.p-mv__line1,.p-mv__line2,.p-mv__line3{display:block}
.p-mv__line1{
  margin-bottom:6px;
}
.p-mv__line2,.p-mv__line3{margin-bottom:8px}
.p-mv__box{
  display:inline-block;background:var(--white);border-radius:14px;
  padding:6px 22px;
  font-size:60px;font-weight:700;line-height:1.35;letter-spacing:.04em;color:var(--main);
}
.p-mv__box em{font-style:normal;color:var(--sub)}

.p-mv__badges{
  position:absolute;left:max(20px,calc(var(--fl) + 207px));bottom:0;z-index:5;
  display:flex;align-items:flex-end;gap:14px;
}
.p-mv__badge{
  width:186px;height:188px;display:flex;align-items:center;justify-content:center;
  text-align:center;color:var(--white);
  font-size:18px;font-weight:700;line-height:1.5;letter-spacing:.02em;
  background-repeat:no-repeat;background-position:center;background-size:contain;
}
.p-mv__badge--a{background-image:url(../img/group-3.svg);margin-bottom:50px}
.p-mv__badge--b{background-image:url(../img/group-4.svg);margin-bottom:-4px}
.p-mv__badge--c{background-image:url(../img/group-5.svg);margin-bottom:105px}
.p-mv__badge--d{background-image:url(../img/group-6.svg);margin-bottom:-45px}

.p-mv__animal{position:absolute;z-index:5}
.p-mv__animal--sheep{left:max(6px,calc(var(--fl) + 75px));bottom:-12px;width:104px}
.p-mv__animal--chick{left:calc(var(--fl) + 414px);bottom:-16px;width:62px}

/* =========================================================
   News
   ========================================================= */
.p-news{
  position:relative;z-index:4;background:var(--pink-100);
  padding:60px 0 0;
}
.p-news::before{
  content:"";position:absolute;left:0;right:0;bottom:100%;height:18px;
  background-color:var(--pink-100);
  -webkit-mask-image:var(--wave);mask-image:var(--wave);
  -webkit-mask-size:72px 18px;mask-size:72px 18px;
  -webkit-mask-repeat:repeat-x;mask-repeat:repeat-x;
  -webkit-mask-position:left bottom;mask-position:left bottom;
}
.p-news__card{
  width:min(100% - 40px,var(--container-news));margin-inline:auto;
  background:var(--white);border:3px solid var(--main);border-radius:30px;
  padding:40px 46px;display:flex;gap:56px;align-items:flex-start;
}
.p-news__head{flex:none;width:260px;padding-top:6px}
.p-news__title{
  font-size:40px;font-weight:700;line-height:1.2;letter-spacing:.06em;color:var(--text);
  display:flex;flex-direction:column;margin-bottom:26px;
}
.p-news__title span{font-size:14px;letter-spacing:.16em;color:var(--main);margin-top:2px}
.p-news__list{flex:1;min-width:0}
.p-news__list li + li{border-top:1px solid #eadfe2}
.p-news__list a{
  display:grid;grid-template-columns:1fr 20px;grid-template-rows:auto auto;
  align-items:center;column-gap:16px;padding:14px 4px;
}
.p-news__list time{grid-column:1;font-size:13px;letter-spacing:.08em;line-height:1.4;color:#8b8b8b}
.p-news__text{
  grid-column:1;font-size:17px;font-weight:700;line-height:1.5;color:var(--text);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.p-news__list .c-arrow{grid-column:2;grid-row:1 / span 2;justify-self:end}

/* =========================================================
   ABOUT
   ========================================================= */
.p-about{
  position:relative;background:var(--pink-100);
  padding:78px 0 37px;overflow:hidden;
}
.p-about__flower{position:absolute;z-index:1}
.p-about__flower--a{top:78px;right:calc(var(--fl) + 150px);width:112px}
.p-about__flower--b{top:150px;right:calc(var(--fl) + 70px);width:76px}

.p-about__body{
  width:100%;margin-top:46px;
  /* カンプ実測（1440px 基準）：写真 0〜790 / 間隔 18 / テキスト 808〜1341。
     写真は 790px 固定（画面が広くても大きくしない）。ブロック全体を 1440px フレームに
     ロックし、写真の左側はエッジ画像で画面端まで延長して見切れを再現する。 */
  display:grid;grid-template-columns:minmax(0,790px) minmax(0,533px);
  gap:18px;align-items:start;
  padding-left:max(0px, calc(50% - 720px));
  padding-right:max(20px, calc(50% - 621px));
}
.p-about__photos{position:relative}
.p-about__photo--main{width:100%;max-width:790px;display:block}
.p-about__text{padding-top:48px}
.p-about__lead{
  font-size:31px;font-weight:700;line-height:1.55;letter-spacing:.06em;color:var(--main);
  margin-bottom:34px;
}
.p-about__lead span{color:var(--main)}
.p-about__sub{font-size:21px;font-weight:700;line-height:1.9;margin-bottom:30px}
.p-about__sub em{font-style:normal;color:var(--main)}
.p-about__list li{
  position:relative;padding:22px 0 22px 46px;
  border-bottom:1px dashed #d8c6cb;
  font-size:18px;font-weight:500;line-height:1.7;
}
.p-about__list li::before{
  content:"";position:absolute;left:0;top:23px;width:27px;height:27px;
  background:url(../img/1-3-10.webp) no-repeat center/contain;
}

/* =========================================================
   TROUBLE
   ========================================================= */
.p-trouble{
  position:relative;
  background:url(../img/path.webp) no-repeat center top/100% 100%;
  background-color:var(--pink-300);
  padding:150px 0 0;
}
.p-trouble__animal{position:absolute;z-index:2}
.p-trouble__animal--giraffe{top:-40px;right:calc(var(--fl) + 220px);width:86px}
.p-trouble__animal--fox{top:-14px;right:calc(var(--fl) + 100px);width:74px}
.p-trouble__leaf{position:absolute;top:-150px;left:var(--fl);width:330px;z-index:2}

.p-trouble__grid{
  width:min(100% - 40px,var(--container));margin:78px auto 0;
  display:grid;grid-template-columns:repeat(4,1fr);gap:35px 30px;
}
.p-trouble__item{
  background:var(--white);border-radius:18px;
  padding:26px 12px 22px;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:14px;
  min-height:230px;justify-content:center;
}
.p-trouble__icon{display:flex;align-items:center;justify-content:center;height:76px}
.p-trouble__icon img{max-height:76px;width:auto}
.p-trouble__item p{font-size:15px;font-weight:700;line-height:1.6;color:var(--main)}

.p-trouble__band{
  position:relative;margin-top:130px;background:var(--main);
  padding:64px 0 60px;text-align:center;color:var(--white);
}
.p-trouble__band::before,
.p-trouble__band::after{
  content:"";position:absolute;left:0;right:0;height:18px;
  background-color:var(--main);
  -webkit-mask-image:var(--wave);mask-image:var(--wave);
  -webkit-mask-size:72px 18px;mask-size:72px 18px;
  -webkit-mask-repeat:repeat-x;mask-repeat:repeat-x;
}
.p-trouble__band::before{bottom:100%;-webkit-mask-position:left bottom;mask-position:left bottom}
.p-trouble__band::after{top:100%;-webkit-mask-position:left top;mask-position:left top;transform:scaleY(-1)}
.p-trouble__drs{display:contents}
.p-trouble__dr{position:absolute;bottom:0;z-index:2}
.p-trouble__dr--l{left:calc(var(--fl) + 80px);width:170px}
.p-trouble__dr--r{right:calc(var(--fl) + 80px);width:180px}
.p-trouble__bandTitle{
  font-size:34px;font-weight:700;letter-spacing:.08em;line-height:1.5;position:relative;
  display:inline-block;padding:0 52px;
}
.p-trouble__bandTitle::before,
.p-trouble__bandTitle::after{
  content:"";position:absolute;top:50%;width:2px;height:38px;background:currentColor;
}
.p-trouble__bandTitle::before{left:8px;transform:translateY(-50%) rotate(-22deg)}
.p-trouble__bandTitle::after{right:8px;transform:translateY(-50%) rotate(22deg)}
.p-trouble__bandText{font-size:16px;font-weight:500;letter-spacing:.06em;margin-top:8px}

/* =========================================================
   医院情報
   ========================================================= */
.p-clinic{
  position:relative;padding:140px 0 158px;
  background:url(../img/path-2.webp) no-repeat center top/100% 100%;
  background-color:#ffd9dc;
}
.p-clinic__card{
  position:relative;
  width:min(100% - 40px,var(--container));margin-inline:auto;
  background:var(--white);border-radius:36px;padding:84px 70px 74px;
}
.p-clinic__garland{position:absolute;top:26px;width:300px}
.p-clinic__garland--l{left:34px}
.p-clinic__garland--r{right:34px;transform:scaleX(-1)}

.p-clinic__grid{
  display:grid;grid-template-columns:1fr 1fr;gap:40px 56px;margin-top:44px;
}
.p-clinic__name{
  display:flex;align-items:center;gap:14px;
  border-radius:999px;padding:17px 26px;color:var(--white);
  font-size:21px;font-weight:700;letter-spacing:.06em;line-height:1;
}
.p-clinic__name--main{background:var(--main)}
.p-clinic__name--sub{background:var(--sub)}
.p-clinic__badge{
  flex:none;display:inline-flex;align-items:center;justify-content:center;
  min-width:62px;height:34px;border-radius:999px;background:var(--white);
  font-size:15px;font-weight:700;
}
.p-clinic__name--main .p-clinic__badge{color:var(--main)}
.p-clinic__name--sub  .p-clinic__badge{color:var(--sub)}

.p-clinic__dl{margin-top:20px}
.p-clinic__dl > div{
  display:grid;grid-template-columns:96px 1fr;gap:12px;
  align-items:start;padding:12px 4px;border-bottom:1px solid #ece2e4;
}
.p-clinic__dl dt{font-size:14px;font-weight:700;color:#777;line-height:1.8}
.p-clinic__dl dd{font-size:15px;line-height:1.8}
.p-clinic__dl dd span{display:block}
.p-clinic__tel a{font-size:26px;font-weight:700;letter-spacing:.02em;line-height:1.4}

.p-hours{margin-top:22px;table-layout:fixed}
.p-hours th,.p-hours td{text-align:center;font-size:14px;padding:8px 0;line-height:1.6}
.p-hours thead th{background:#ffeaf0;font-weight:700;color:var(--main)}
.p-hours thead th:first-child{border-radius:6px 0 0 6px}
.p-hours thead th:last-child{border-radius:0 6px 6px 0}
.p-hours th:first-child{width:120px;text-align:left;padding-left:14px}
.p-hours tbody th{font-weight:500;color:var(--text)}
.p-hours tbody tr{border-bottom:1px solid #ece2e4}
.p-hours .is-open{color:var(--text)}
.p-hours .is-closed{color:#b9b9b9}
.p-hours__note{margin-top:12px;font-size:13px;color:#666;line-height:1.7}

.p-clinic__map{margin-top:46px;border-radius:16px;overflow:hidden}
.p-clinic__map img{width:100%;display:block}
/* Google マップの埋め込み。SP では横長すぎると地図として使えないので縦を確保する */
.p-clinic__map iframe{width:100%;aspect-ratio:1130/354;height:auto;display:block;border:0}
@supports not (aspect-ratio:1/1){.p-clinic__map iframe{height:354px}}

/* =========================================================
   ご予約・お問い合わせ
   ========================================================= */
.p-reserve{
  position:relative;background:var(--pink-50);
  padding:138px 0 167px;overflow:hidden;
}
.p-reserve__leaf{position:absolute;z-index:1}
.p-reserve__leaf--l{left:calc(var(--fl) + 20px);top:60px;width:300px}
.p-reserve__leaf--r{right:calc(var(--fl) + 20px);bottom:40px;width:300px}
.p-reserve__grid{
  position:relative;z-index:2;
  width:min(100% - 40px,900px);margin:44px auto 0;box-sizing:border-box;
  display:grid;grid-template-columns:1fr 1fr;gap:30px;justify-items:center;
}
.p-reserve__cloud{
  width:100%;max-width:400px;aspect-ratio:400/290;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;
  padding:0 46px;
  background-repeat:no-repeat;background-position:center;background-size:contain;
}
.p-reserve__cloud--main{background-image:url(../img/custom/cloud-main.svg)}
.p-reserve__cloud--sub{background-image:url(../img/custom/cloud-sub.svg)}
.p-reserve__type{
  font-size:22px;font-weight:700;letter-spacing:.1em;line-height:1;color:var(--white);
}
.p-reserve__tel,.p-reserve__btn{
  width:100%;max-width:230px;height:52px;border-radius:999px;background:var(--white);
  display:flex;align-items:center;justify-content:center;gap:8px;
  font-size:20px;font-weight:700;letter-spacing:.02em;line-height:1;
}
.p-reserve__btn{font-size:18px;letter-spacing:.08em}
.p-reserve__cloud--main .p-reserve__tel,
.p-reserve__cloud--main .p-reserve__btn{color:var(--main)}
.p-reserve__cloud--sub .p-reserve__tel,
.p-reserve__cloud--sub .p-reserve__btn{color:var(--sub)}

/* =========================================================
   REASON
   ========================================================= */
.p-reason{
  position:relative;padding:72px 0 62px;
  background:url(../img/path-3.webp) no-repeat center top/100% 100%;
  background-color:var(--main);
}
.p-reason__list{
  width:min(100% - 40px,1204px);margin:50px auto 0;
  display:flex;flex-direction:column;gap:8px;
}
.p-reason__item{display:grid;grid-template-columns:560px 1fr;gap:8px;align-items:center}
.p-reason__item--left{grid-template-columns:1fr 560px}
.p-reason__item--left  .p-reason__figure{order:2}
.p-reason__item--left  .p-reason__text{order:1}
.p-reason__figure{position:relative}
.p-reason__photo{width:100%;max-width:560px}
.p-reason__point{position:absolute;right:-10px;top:-6px;width:150px;height:auto;display:block}
.p-reason__item--left .p-reason__point{right:auto;left:-10px}
.p-reason__point img{width:150px}
.p-reason__point em{
  position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  font-style:normal;font-size:16px;font-weight:700;line-height:1.05;color:var(--white);
  letter-spacing:.08em;text-shadow:0 1px 2px rgba(0,0,0,.18);
}
.p-reason__point b{font-size:28px;letter-spacing:.02em}
.p-reason__text h3{
  font-size:28px;font-weight:700;line-height:1.6;letter-spacing:.06em;color:var(--white);
  margin-bottom:16px;
}
.p-reason__text p{font-size:16px;line-height:1.9;color:var(--white)}
.p-reason__animal{position:absolute;z-index:2}
.p-reason__animal--hippo{top:520px;left:calc(var(--fl) + 80px);width:76px}
.p-reason__animal--rabbit{top:1180px;left:calc(var(--fl) + 420px);width:66px}

/* =========================================================
   DOCTOR
   ========================================================= */
.p-doctor{
  position:relative;padding:74px 0 73px;overflow:hidden;
  background:url(../img/path-4.webp) no-repeat center top/100% 100%;
  background-color:#f7cdd5;
}
.p-doctor__leaf{position:absolute;z-index:1}
.p-doctor__leaf--a{top:60px;right:var(--fl);width:360px}
.p-doctor__leaf--b{bottom:120px;left:var(--fl);width:280px}

.p-doctor__list{
  position:relative;z-index:2;
  width:min(100% - 40px,1240px);margin:56px auto 0;
  display:flex;flex-direction:column;gap:40px;
}
.p-doctor__item{
  position:relative;background:var(--white);
  border-radius:46% 54% 50% 50% / 40% 42% 58% 60%;
  padding:56px 80px;display:grid;grid-template-columns:1fr 356px;gap:40px;align-items:center;
  min-height:460px;
}
.p-doctor__item--b{grid-template-columns:356px 1fr;border-radius:54% 46% 50% 50% / 42% 40% 60% 58%}
.p-doctor__item--b .p-doctor__card{order:2}
.p-doctor__item--b .p-doctor__photo{order:1}
.p-doctor__card{display:grid;grid-template-columns:142px minmax(0,1fr);gap:0 30px;align-items:start;max-width:700px}
.p-doctor__info{grid-column:2}
.p-doctor__career{grid-column:2}
.p-doctor__badge{width:142px;height:auto}
.p-doctor__name{
  font-size:44px;font-weight:700;letter-spacing:.08em;line-height:1.25;color:var(--text);
}
.p-doctor__clinic{font-size:15px;font-weight:700;letter-spacing:.04em;line-height:1.5;color:var(--main);margin-bottom:6px}
/* 所属は区切り単位で改行する（「院／長」のような泣き別れを防ぐ） */
.p-doctor__clinic span{display:inline-block}
.p-doctor__roman{font-size:16px;font-weight:500;letter-spacing:.06em;color:var(--main);line-height:1.4}
.p-doctor__tag{
  display:inline-block;margin-top:16px;padding:6px 20px;
  border:1px solid #b9b9b9;border-radius:4px;
  font-size:16px;font-weight:500;line-height:1.6;
}
.p-doctor__career{margin-top:22px;max-width:534px}
.p-doctor__career li{
  position:relative;padding:14px 0 14px 34px;border-bottom:1px dashed #cfcfcf;
  font-size:15px;line-height:1.7;
}
.p-doctor__career li::before{
  content:"";position:absolute;left:0;top:16px;width:24px;height:24px;
  background:url(../img/1-3-11.webp) no-repeat center/contain;
}
.p-doctor__photo{width:100%;max-width:356px;justify-self:center}
.p-doctor__more{margin-top:40px;text-align:center;position:relative;z-index:2}

/* =========================================================
   MEDICAL 診療案内
   ========================================================= */
.p-medical{
  position:relative;padding:104px 0 104px;
  background:url(../img/path-5.webp) no-repeat center top/100% 100%;
  background-color:var(--lilac);
}
.p-medical__grid{
  width:min(100% - 40px,var(--container));margin:64px auto 0;
  display:grid;grid-template-columns:repeat(5,1fr);gap:25px;
}
.p-medical__grid li{background:var(--white);border:1px solid var(--main);border-radius:10px;overflow:hidden}
.p-medical__grid a{display:flex;flex-direction:column;height:100%}
.p-medical__icon{
  flex:1;display:flex;align-items:center;justify-content:center;
  padding:26px 10px 20px;min-height:136px;
}
.p-medical__icon img{max-height:64px;width:auto}
.p-medical__label{
  position:relative;display:flex;align-items:center;min-height:79px;
  padding:8px 30px 8px 16px;background:var(--main);color:var(--white);
  font-size:14px;font-weight:700;line-height:1.4;letter-spacing:.04em;
}
.p-medical__label .c-arrow{
  position:absolute;right:14px;top:50%;transform:translateY(-50%) rotate(45deg);
  border-color:var(--white);width:6px;height:6px;
}
.p-medical__more{margin-top:52px;text-align:center}

/* =========================================================
   PRICE 料金案内
   ========================================================= */
.p-price{background:var(--white);padding:96px 0 96px}
.p-price__card{
  width:min(100% - 40px,var(--container));margin-inline:auto;
  border:2px solid var(--main);border-radius:26px;
  background:linear-gradient(120deg,#ffeee4 0%,#ffe4e6 45%,#ffe9df 100%);
  padding:56px 70px;display:grid;grid-template-columns:440px 1fr;gap:40px;align-items:center;min-height:490px;
}
.p-price__photo img{width:100%;border-radius:50%;aspect-ratio:1;object-fit:cover}
.p-price__body .c-head{margin-bottom:18px}
.p-price__text{font-size:15px;line-height:1.9;margin-bottom:34px}

/* =========================================================
   RECOMMEND
   ========================================================= */
.p-recommend{
  position:relative;background:var(--pink-250);
  padding:150px 0 145px;overflow:hidden;
}
.p-recommend__leaf{position:absolute;top:60px;right:calc(var(--fl) + 20px);width:250px;z-index:1}
.p-recommend__grid{
  position:relative;z-index:2;
  width:min(100% - 40px,var(--container));margin:56px auto 0;
  display:grid;grid-template-columns:1fr 1fr;gap:32px;
}
.p-recommend__item{
  background:var(--white);border-radius:14px;overflow:hidden;
  display:grid;grid-template-columns:230px 1fr;min-height:295px;
}
.p-recommend__photo img{width:100%;height:100%;object-fit:cover;display:block}
.p-recommend__body{padding:26px 28px}
.p-recommend__body h3{
  display:flex;align-items:center;gap:8px;
  font-size:20px;font-weight:700;letter-spacing:.06em;line-height:1.4;color:var(--main);
  margin-bottom:12px;
}
.p-recommend__body h3 img{width:26px;height:auto}
.p-recommend__body p{font-size:14px;line-height:1.85}
.p-recommend__link{
  display:inline-flex;align-items:center;gap:10px;margin-top:14px;padding-bottom:6px;
  border-bottom:1px dashed var(--main);
  font-size:14px;font-weight:500;color:var(--text);
}
.p-recommend__link .c-arrow{width:6px;height:6px}
.p-recommend__more{margin-top:52px;text-align:center;position:relative;z-index:2}

/* =========================================================
   GALLERY 院内ツアー
   ========================================================= */
.p-gallery{
  position:relative;padding:122px 0 120px;
  background:url(../img/path-6.webp) no-repeat center top/100% 100%;
  background-color:var(--cream);
}
.p-gallery__slider{
  position:relative;width:min(100% - 40px,1000px);margin:48px auto 0;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
}
.p-gallery__track{display:flex;align-items:center;justify-content:center;gap:14px;width:100%}
.p-gallery__slide{flex:0 1 270px;min-width:0;opacity:.85}
.p-gallery__slide img{width:100%;border-radius:12px;display:block}
.p-gallery__slide.is-current{flex:0 1 440px;min-width:0;opacity:1}
.p-gallery__nav{
  position:absolute;top:50%;transform:translateY(-50%);z-index:3;
  width:48px;height:48px;border-radius:50%;background:var(--white);
  box-shadow:0 2px 10px rgba(0,0,0,.08);
}
.p-gallery__nav::before{
  content:"";position:absolute;top:50%;left:50%;width:10px;height:10px;
  border-top:2px solid var(--main);border-right:2px solid var(--main);
}
.p-gallery__nav--prev{left:-10px}
.p-gallery__nav--prev::before{transform:translate(-30%,-50%) rotate(-135deg)}
.p-gallery__nav--next{right:-10px}
.p-gallery__nav--next::before{transform:translate(-70%,-50%) rotate(45deg)}
.p-gallery__more{margin-top:44px;text-align:center}

/* =========================================================
   BLOG
   ========================================================= */
.p-blog{
  position:relative;background:var(--main);padding:130px 0 135px;
}
.p-blog::before,.p-blog::after{
  content:"";position:absolute;left:0;right:0;height:18px;
  background-color:var(--main);
  -webkit-mask-image:var(--wave);mask-image:var(--wave);
  -webkit-mask-size:72px 18px;mask-size:72px 18px;
  -webkit-mask-repeat:repeat-x;mask-repeat:repeat-x;
}
.p-blog::before{bottom:100%;-webkit-mask-position:left bottom;mask-position:left bottom}
.p-blog::after{top:100%;-webkit-mask-position:left top;mask-position:left top;transform:scaleY(-1)}
.p-blog__animal{position:absolute;top:-46px;right:calc(var(--fl) + 220px);width:110px;z-index:3}
.p-blog__leaf{position:absolute;top:-70px;right:calc(var(--fl) + 100px);width:230px;z-index:2}
.p-blog__grid{
  width:min(100% - 40px,var(--container));margin:46px auto 0;
  display:grid;grid-template-columns:repeat(3,1fr);gap:28px;
}
.p-blog__item{background:var(--white);border-radius:12px;overflow:hidden}
.p-blog__thumb{position:relative;aspect-ratio:411/240;overflow:hidden}
.p-blog__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.p-blog__cat{
  position:absolute;right:6px;bottom:-14px;z-index:2;
  width:96px;height:66px;display:flex;align-items:center;justify-content:center;
  background:url(../img/5-1-2.webp) no-repeat center/contain;
  font-size:12px;font-weight:700;color:var(--white);
}
.p-blog__body{padding:18px 20px 24px}
.p-blog__title{font-size:16px;font-weight:700;line-height:1.5;margin-bottom:4px}
.p-blog__excerpt{font-size:14px;line-height:1.7;color:#666}

/* =========================================================
   フッター
   ========================================================= */
.l-footer{background:var(--pink-200);padding:120px 0 40px}
.l-footer__inner{
  width:min(100% - 40px,var(--container));margin-inline:auto;
  display:grid;grid-template-columns:340px 1fr;gap:60px;align-items:start;
}
.l-footer__brand img{width:230px;height:auto}
/* 主要ページの列と、診療案内のブロックを横に並べる。
   セレクタは必ずクラスで指定する（子孫の ul を巻き込むと入れ子が崩れる）。 */
.l-footer__nav{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:0 52px;align-items:start}
.l-footer__main,
.l-footer__sub,
.l-footer__sub ul{list-style:none;margin:0;padding:0}
.l-footer__main li{margin-bottom:10px}
.l-footer__main > li > a,
.l-footer__groupTitle a{
  position:relative;display:inline-block;padding-left:20px;
  font-size:15px;font-weight:500;line-height:1.8;color:var(--text);
}
.l-footer__main > li > a::before,
.l-footer__groupTitle a::before{
  content:"";position:absolute;left:2px;top:.62em;width:6px;height:6px;
  border-top:2px solid var(--main);border-right:2px solid var(--main);
  transform:rotate(45deg);
}
.l-footer__groupTitle{margin:0 0 8px}
/* 3列だと1列あたり8行前後に収まり、フッターが縦に伸びない */
.l-footer__sub{column-count:3;column-gap:30px}
.l-footer__sub > li{break-inside:avoid;margin-bottom:6px}
.l-footer__sub > li > a{
  position:relative;display:inline-block;padding-left:32px;
  font-size:14px;font-weight:500;line-height:1.75;color:var(--text);
}
.l-footer__sub > li > a::before{
  content:"";position:absolute;left:20px;top:calc(.85em);width:7px;height:1px;background:var(--main);
}
.l-footer__sub ul{padding-left:12px}
.l-footer__sub ul a{
  position:relative;display:inline-block;padding-left:32px;
  font-size:13px;font-weight:400;line-height:1.7;color:#7b6a70;
}
.l-footer__sub ul a::before{
  content:"";position:absolute;left:22px;top:calc(.82em);width:5px;height:1px;background:currentColor;opacity:.7;
}
.l-footer__nav a{transition:color .2s,transform .2s}
@media (hover:hover){
  .l-footer__nav a:hover{color:var(--main);opacity:1;transform:translateX(2px)}
}
.l-footer__copy{
  margin-top:60px;text-align:center;font-size:12px;letter-spacing:.06em;color:#8a6c74;
}

/* Instagram リンク（フッター・SP メニュー） */
.c-insta{
  display:inline-flex;align-items:center;gap:10px;padding:10px 22px 10px 16px;
  background:var(--white);border:1px solid var(--pink-300);border-radius:999px;
  font-size:15px;font-weight:700;line-height:1.3;color:var(--text);transition:background .2s,color .2s;
}
.c-insta small{display:block;font-size:12px;font-weight:500;color:#8a6c74;letter-spacing:.02em}
.c-insta__icon{flex:0 0 auto;width:28px;height:28px}
@media (hover:hover){.c-insta:hover{background:var(--pink-50);border-color:#dd2a7b;opacity:1}}
.l-footer__insta{margin-top:22px}
.l-spnav__insta{display:flex;justify-content:center;margin:20px auto 0;width:fit-content}

/* フッターのバナー（既存サイトから引き継いだ関連リンク） */
.l-footer__banners{
  width:min(100% - 40px,var(--container));margin:52px auto 0;
}
.l-footer__banners ul{
  display:flex;flex-wrap:wrap;justify-content:center;gap:18px;list-style:none;margin:0;padding:0;
}
.l-footer__banners li{flex:0 0 auto}
.l-footer__banners a{display:block;border-radius:6px;overflow:hidden;background:var(--white)}
.l-footer__banners img{display:block;width:230px;height:auto}
@media (max-width:1000px){
  .l-footer__banners{margin-top:34px}
  .l-footer__banners ul{gap:12px}
  .l-footer__banners img{width:min(230px,44vw)}
}

/* 記事が無いときの表示（ダミー文言を出さないための受け皿） */
.p-news__empty{padding:14px 4px;color:#7b6a70}
.p-news__empty .p-news__text{font-weight:400}
/* 分院の診療時間が未確定のときの表示 */
.p-hours__tbd{
  margin-top:14px;padding:26px 20px;border-radius:12px;
  background:#fff2f6;border:1px dashed var(--sub);
  text-align:center;font-size:16px;line-height:1.9;color:var(--text);
}
@media (max-width:1000px){
  .p-hours__tbd{padding:20px 14px;font-size:14px}
}

/* 院内ツアーのギャラリー
   既存サイトから引き継いだ写真が 160×140 と小さいため、拡大しすぎないよう
   4 列・最大 1000px に抑えて配置する。
   .l-entry の ul（黒丸）と h3（大見出し）が効いてしまうので、
   セレクタを .l-entry から書き起こして確実に打ち消す。 */
.l-entry .p-tour{
  display:grid;grid-template-columns:repeat(4,1fr);gap:40px 26px;
  width:100%;max-width:1000px;margin:36px auto 56px;
  list-style:none;padding:0;
}
.l-entry .p-tour li{
  margin:0;width:100%;max-width:250px;margin-inline:auto;
  list-style:none;
}
.l-entry .p-tour li::marker{content:""}
.l-entry .p-tour img{
  width:100%;max-width:none;height:auto;aspect-ratio:8/7;object-fit:cover;
  border-radius:10px;display:block;margin:0;
}
.l-entry .p-tour h3{
  /* 写真キャプション。本文の h3 とは別物なので装飾はすべて外す。
     min-height はキャプションが 2 行になっても本文の頭が揃うように。 */
  margin:14px 0 8px;padding:0;border:0;background:none;
  font-size:18px;font-weight:700;line-height:1.45;letter-spacing:.04em;
  color:var(--main);min-height:calc(1.45em * 2);
}
.l-entry .p-tour h3::before,
.l-entry .p-tour h3::after{content:none}
.l-entry .p-tour p{margin:0;font-size:15px;line-height:1.8}
@media (max-width:1000px){
  .l-entry .p-tour{grid-template-columns:repeat(2,1fr);gap:28px 16px;margin:24px auto 36px}
  .l-entry .p-tour h3{font-size:16px;margin:10px 0 6px}
  .l-entry .p-tour p{font-size:13px;line-height:1.75}
}
@media (max-width:360px){
  .l-entry .p-tour{grid-template-columns:1fr;max-width:280px}
  .l-entry .p-tour h3{min-height:0}
}

/* =========================================================
   レスポンシブ（SP は別カンプ準拠で今後調整）
   ========================================================= */
/* --- ヘッダーはナビが折り返す前に段階的に縮める --- */
@media (max-width:1400px){
  .l-header__logo img{width:232px;height:70px}
  .l-header__contact{gap:12px}
  .h-contact{gap:8px}
  .h-contact__badge{width:62px;height:44px}
  .h-contact__tel{font-size:20px}
  .h-contact__btn{height:38px;padding:0 18px;font-size:15px}
  .l-header__nav > ul{gap:22px}
  .l-header__nav > ul > li > a{font-size:15px}
}
@media (max-width:1240px){
  :root{--header-h:116px}
  .l-header__logo img{width:200px;height:60px}
  .h-contact__badge{width:54px;height:39px}
  .h-contact__tel{font-size:18px}
  .h-contact__btn{height:34px;padding:0 14px;font-size:14px}
  .l-header__nav > ul{gap:15px}
  .l-header__nav > ul > li > a{font-size:14px}
}

/* --- 1440px 未満：デザインフレームが画面幅に張り付く帯域 --- */
@media (max-width:1440px){
  .p-gallery__slide{flex:0 1 26%}
  .p-gallery__slide.is-current{flex:0 1 40%}
}

/* --- 1200px 以下：横並びを維持したまま各要素を縮める --- */
@media (max-width:1200px){
  .c-head__ja{font-size:34px}
  .c-btn{min-width:230px;height:58px;font-size:17px}

  .p-mv{height:auto;min-height:720px;padding-bottom:120px}
  .p-mv__line1,.p-mv__box{font-size:46px}
  .p-mv__catch{top:150px}
  .p-mv__badge{width:158px;height:160px;font-size:15px}
  .p-mv__animal--chick{display:none}

  .p-news__card{padding:32px 34px;gap:34px}
  .p-news__head{width:200px}
  .p-news__title{font-size:32px}

  .p-about__lead{font-size:24px}
  .p-about__flower{display:none}

  .p-trouble__leaf,.p-trouble__animal{display:none}
  .p-trouble__dr{width:140px}
  .p-trouble__bandTitle{font-size:24px}

  .p-clinic__card{padding:64px 40px 56px}
  .p-clinic__grid{gap:32px 32px}
  .p-clinic__garland{width:220px}
  .p-clinic__dl > div{grid-template-columns:78px 1fr}
  .p-clinic__tel a{font-size:22px}
  .p-hours th:first-child{width:96px}
  .p-hours th,.p-hours td{font-size:13px}

  .p-reserve__leaf{display:none}

  .p-reason__item{grid-template-columns:minmax(0,46%) minmax(0,1fr);gap:24px}
  .p-reason__item--left{grid-template-columns:minmax(0,1fr) minmax(0,46%)}
  .p-reason__text h3{font-size:24px}
  .p-reason__animal{display:none}

  .p-doctor__item,.p-doctor__item--b{padding:48px 44px;min-height:0}
  .p-doctor__item{grid-template-columns:minmax(0,1fr) 280px}
  .p-doctor__item--b{grid-template-columns:280px minmax(0,1fr)}
  .p-doctor__photo{max-width:280px}
  .p-doctor__name{font-size:36px}
  .p-doctor__card{grid-template-columns:110px 1fr;gap:22px}
  .p-doctor__badge{width:110px}
  .p-doctor__leaf{display:none}

  .p-price__card{grid-template-columns:320px minmax(0,1fr);gap:32px;padding:40px 40px;min-height:0}

  .p-recommend__item{grid-template-columns:190px minmax(0,1fr);min-height:0}
  .p-recommend__body{padding:20px 22px}
  .p-recommend__leaf{display:none}

  .p-blog__animal,.p-blog__leaf{display:none}

  .l-footer__inner{grid-template-columns:240px 1fr;gap:36px}
  .l-footer__nav{gap:0 32px}
  .l-footer__sub{column-count:2;column-gap:24px}
  .l-footer__brand img{width:190px}
}

/* --- 1024px 以下：2カラムを解除して縦積みへ --- */
@media (max-width:1024px) and (min-width:1001px){
  .p-about__body{grid-template-columns:1fr;padding-right:20px;padding-left:20px;gap:28px}
  .p-about__photo--main{max-width:640px}
  .p-reason__item,.p-reason__item--left{grid-template-columns:1fr;gap:20px}
  .p-doctor__item,.p-doctor__item--b{grid-template-columns:1fr;gap:24px;border-radius:40px}
  .p-price__card{grid-template-columns:1fr;gap:24px}
  .p-clinic__grid{grid-template-columns:1fr}
  .p-trouble__grid{grid-template-columns:repeat(2,1fr)}
  .p-medical__grid{grid-template-columns:repeat(3,1fr)}
  .p-recommend__grid{grid-template-columns:1fr}
  .p-blog__grid{grid-template-columns:repeat(2,1fr)}
}

/* =========================================================
   SP（〜1000px）— SP カンプ（375px 基準）準拠
   ========================================================= */
@media (max-width:1000px){
  :root{--header-h:92px}

  /* ---- ヘッダー ---- */
  .l-header{height:var(--header-h)}
  .l-gnav__panel{display:none}
  .l-gnav__has{padding-bottom:0;margin-bottom:0}
  .l-header__inner{padding:0 16px;gap:12px}
  .l-header__logo img{width:min(210px,56vw);height:auto}
  .l-header__right{display:none}
  .l-header__toggle{
    display:flex;align-items:center;justify-content:center;margin-left:auto;
    width:58px;height:58px;border-radius:50%;background:var(--main);flex:none;
  }
  .l-header__bars{display:flex;flex-direction:column;gap:7px;width:26px}
  .l-header__bars span{display:block;height:2px;background:var(--white);border-radius:2px;transition:transform .25s,opacity .2s}
  .l-header__toggle[aria-expanded="true"] .l-header__bars span:nth-child(1){transform:translateY(9px) rotate(18deg)}
  .l-header__toggle[aria-expanded="true"] .l-header__bars span:nth-child(2){opacity:0}
  .l-header__toggle[aria-expanded="true"] .l-header__bars span:nth-child(3){transform:translateY(-9px) rotate(-18deg)}

  /* ---- SP メニュー ---- */
  .l-spnav{
    display:block;position:fixed;inset:var(--header-h) 0 0;z-index:99;
    background:#fbdfe5;overflow-y:auto;-webkit-overflow-scrolling:touch;
  }
  .l-spnav[hidden]{display:none}
  .l-spnav::before{
    content:"";position:sticky;top:0;display:block;height:18px;z-index:2;
    background-color:var(--white);
    -webkit-mask-image:var(--wave);mask-image:var(--wave);
    -webkit-mask-size:72px 18px;mask-size:72px 18px;
    -webkit-mask-repeat:repeat-x;mask-repeat:repeat-x;
    -webkit-mask-position:left top;mask-position:left top;
    transform:scaleY(-1);
  }
  .l-spnav__inner{padding:22px 20px 56px}
  .l-spnav__list li{border-bottom:1px solid #7c7278}
  .l-spnav__row{display:flex;align-items:center;gap:10px}
  .l-spnav__row > a{
    flex:1;display:block;padding:17px 2px;
    font-size:17px;font-weight:700;letter-spacing:.1em;line-height:1.5;color:var(--text);
  }
  .l-spnav__more{
    position:relative;flex:none;width:26px;height:26px;border-radius:50%;background:var(--main);
  }
  .l-spnav__more::before,.l-spnav__more::after{
    content:"";position:absolute;top:50%;left:50%;background:var(--white);border-radius:1px;
    transform:translate(-50%,-50%);
  }
  .l-spnav__more::before{width:12px;height:2px}
  .l-spnav__more::after{width:2px;height:12px;transition:opacity .2s}
  .l-spnav__more[aria-expanded="true"]::after{opacity:0}
  .l-spnav__sub{padding-bottom:4px}
  .l-spnav__sub[hidden]{display:none}
  .l-spnav__sub li{border-bottom:1px solid #7c7278}
  .l-spnav__sub li:last-child{border-bottom:0}
  .l-spnav__sub a{
    position:relative;display:block;padding:15px 2px 15px 26px;
    font-size:16px;font-weight:700;letter-spacing:.08em;color:var(--main);
  }
  .l-spnav__deep a{
    padding-left:46px;font-size:14px;font-weight:500;color:var(--text);
  }
  .l-spnav__deep a::before{left:26px;width:8px;background:var(--text);opacity:.6}
  .l-spnav__sub a::before{
    content:"";position:absolute;left:2px;top:calc(50% - 1px);width:12px;height:2px;background:var(--main);
  }
  .l-spnav__contact{display:grid;gap:16px;margin-top:26px}
  .sp-card{
    background:var(--white);border-radius:18px;padding:16px 18px;
    display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:12px;
  }
  .sp-card__badge{width:96px;height:auto}
  .sp-card__tel{
    display:flex;align-items:center;justify-content:center;gap:6px;
    font-size:23px;font-weight:700;letter-spacing:.02em;line-height:1.2;color:var(--text);
  }
  .sp-card__tel .i-tel{width:22px;height:22px;color:var(--text)}
  .sp-card__btn{
    display:flex;align-items:center;justify-content:center;gap:8px;
    height:48px;margin-top:8px;border-radius:999px;
    font-size:18px;font-weight:700;letter-spacing:.06em;color:var(--white);
  }
  .sp-card--main .sp-card__btn{background:var(--main)}
  .sp-card--sub .sp-card__btn{background:var(--sub)}

  /* ---- 共通 ---- */
  .c-head__en{font-size:14px;letter-spacing:.16em;margin-bottom:12px}
  .c-head__en img{width:74px;transform:translate(-50%,-52%)}
  .c-head__ja{font-size:26px;letter-spacing:.1em}
  .c-btn{min-width:0;width:min(100% - 40px,335px);height:64px;font-size:18px;letter-spacing:.14em}
  .c-btn i{right:22px}

  /* ---- メインビジュアル ---- */
  .p-mv{height:560px;min-height:0;padding:0;overflow:visible}
  .p-mv__photo{position:absolute;inset:0;height:auto}
  .p-mv__catch{position:absolute;left:20px;top:292px;z-index:4}
  .p-mv__line1{margin-bottom:2px}
  .p-mv__box{font-size:27px;padding:1px 9px;border-radius:7px}
  .p-mv__line2,.p-mv__line3{margin-bottom:5px}
  .p-mv__badges{
    position:absolute;left:0;right:0;top:453px;bottom:auto;margin:0;padding:0 40px 0 20px;
    display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:start;z-index:5;
  }
  .p-mv__badge{width:100%;max-width:150px;height:150px;font-size:15px;line-height:1.45;margin:0 !important}
  .p-mv__badge--a{justify-self:start}
  .p-mv__badge--b{justify-self:end;margin-top:65px !important}
  .p-mv__badge--c{justify-self:start;margin-top:-41px !important}
  .p-mv__badge--d{justify-self:end;margin-top:10px !important}
  .p-mv__animal{display:block}
  .p-mv__animal--sheep{left:38px;right:auto;bottom:auto;top:726px;width:68px;z-index:6}
  .p-mv__animal--chick{left:auto;right:88px;bottom:auto;top:400px;width:62px;z-index:6}

  /* ---- News ---- */
  .p-news{padding:315px 0 0}
  .p-news__card{
    position:relative;flex-direction:column;gap:0;padding:34px 20px 30px;
    border-radius:24px;border-width:2px;width:min(100% - 40px,var(--container-news));
  }
  .p-news__head{width:auto;display:block;text-align:center;padding-top:0}
  .p-news__title{font-size:34px;align-items:center;margin-bottom:18px}
  .p-news__title span{font-size:13px}
  .p-news__list{width:100%}
  .p-news__list a{grid-template-columns:1fr 16px;padding:15px 2px}
  .p-news__text{font-size:15px;white-space:normal;overflow:visible}
  .p-news__card .c-btn--sm{
    min-width:0;width:min(100%,240px);height:52px;font-size:15px;margin:22px auto 0;
  }

  /* ---- ABOUT ---- */
  .p-about{padding:176px 0 78px}
  .p-about__body{grid-template-columns:1fr;padding:0 20px;gap:0;margin-top:26px}
  .p-about__photos{margin:0 auto}
  .p-about__photos::before{display:none}
  .p-about__photo--main{max-width:100%}
  .p-about__text{padding-top:26px}
  .p-about__lead{font-size:22px;line-height:1.7;margin-bottom:20px}
  .p-about__sub{font-size:16px;margin-bottom:18px}
  .p-about__list li{font-size:15px;padding:13px 0 13px 32px}
  .p-about__list li::before{width:24px;height:24px;top:15px}
  .p-about__flower{display:none}

  /* ---- TROUBLE ---- */
  .p-trouble{padding:96px 0 0}
  .p-trouble__grid{grid-template-columns:1fr 1fr;gap:18px 16px;margin-top:48px}
  .p-trouble__item{
    min-height:0;padding:28px 8px 26px;gap:10px;border-radius:14px;
    border:2px dashed #cfa9b8;
  }
  .p-trouble__icon{height:62px}
  .p-trouble__icon img{max-height:62px}
  .p-trouble__item p{font-size:14px;line-height:1.55}
  .p-trouble__animal{display:block;top:-52px;width:64px}
  .p-trouble__animal--giraffe{right:calc(var(--fl) + 74px)}
  .p-trouble__animal--fox{right:calc(var(--fl) + 18px);top:-38px;width:56px}
  .p-trouble__leaf{display:none}
  .p-trouble__band{margin-top:86px;padding:48px 0 0}
  .p-trouble__bandTitle{font-size:22px;padding:0 30px;line-height:1.55}
  .p-trouble__bandTitle::before,.p-trouble__bandTitle::after{height:56px;width:2px}
  .p-trouble__bandTitle::before{left:2px}
  .p-trouble__bandTitle::after{right:2px}
  .p-trouble__bandText{font-size:15px;margin-top:10px;padding:0 20px}
  .p-trouble__drs{display:block;margin-top:16px}
  .p-trouble__dr{position:static;display:inline-block;vertical-align:bottom;margin:0;width:auto}
  .p-trouble__dr--l{height:170px}
  .p-trouble__dr--r{height:186px;margin-left:-10px}
  .p-trouble__band::after{display:none}

  /* ---- 医院情報 ---- */
  .p-clinic{padding:0 0 90px;background:var(--white);background-image:none}
  .p-clinic__card{background:transparent;border-radius:0;padding:96px 20px 0;width:100%}
  .p-clinic__garland{display:none}
  .p-clinic__grid{grid-template-columns:1fr;gap:70px;margin-top:52px}
  .p-clinic__name{border-radius:14px;padding:14px 18px;font-size:19px;gap:10px}
  .p-clinic__badge{min-width:56px;height:30px;font-size:14px}
  .p-clinic__dl{margin-top:14px}
  .p-clinic__dl > div{grid-template-columns:76px 1fr;gap:10px;padding:22px 2px}
  .p-clinic__dl dt{font-size:14px}
  .p-clinic__dl dd{font-size:14px}
  .p-clinic__tel a{font-size:24px}
  .p-hours th:first-child{width:86px;padding-left:6px}
  .p-hours th,.p-hours td{font-size:13px;padding:18px 0}
  .p-hours__note{font-size:12px}
  .p-clinic__map{margin-top:60px}
  .p-clinic__map iframe{aspect-ratio:4/3}
  @supports not (aspect-ratio:1/1){.p-clinic__map iframe{height:300px}}
  .p-clinic--repeat{display:none}

  /* ---- ご予約・お問い合わせ ---- */
  .p-reserve{padding:74px 0 80px}
  .p-reserve__grid{grid-template-columns:1fr;gap:18px;margin-top:30px;width:min(100% - 40px,420px)}
  .p-reserve__cloud{max-width:100%;padding:0 40px;aspect-ratio:340/250}
  .p-reserve__type{font-size:19px}
  .p-reserve__tel,.p-reserve__btn{max-width:220px;height:48px;font-size:19px}
  .p-reserve__btn{font-size:17px}
  .p-reserve__leaf{display:block;width:150px}
  .p-reserve__leaf--l{left:8px;top:auto;bottom:26px}
  .p-reserve__leaf--r{right:8px;bottom:26px}

  /* ---- REASON ---- */
  .p-reason{padding:80px 0 78px}
  .p-reason__list{width:min(100% - 40px,520px);margin-top:46px;gap:60px}
  .p-reason__item,.p-reason__item--left{grid-template-columns:1fr;gap:18px}
  .p-reason__item--left .p-reason__figure,
  .p-reason__item--left .p-reason__text{order:initial}
  .p-reason__photo{max-width:100%}
  .p-reason__point{width:118px;right:-6px;top:auto;bottom:-14px}
  .p-reason__item--left .p-reason__point{left:-6px;right:auto;bottom:auto;top:-14px}
  .p-reason__point img{width:118px}
  .p-reason__point em{font-size:14px}
  .p-reason__point b{font-size:24px}
  .p-reason__text h3{font-size:22px;line-height:1.55;margin-bottom:12px}
  .p-reason__text p{font-size:15px}
  .p-reason__animal{display:none}

  /* ---- ドクター紹介 ---- */
  .p-doctor{padding:76px 0 72px}
  .p-doctor__list{width:min(100% - 40px,520px);margin-top:40px;gap:50px}
  .p-doctor__item,.p-doctor__item--b{
    grid-template-columns:1fr;gap:0;padding:26px 22px 30px;min-height:0;
    border-radius:44% 56% 46% 54% / 14% 14% 86% 86%;
  }
  /* 2026-09-28 修正：写真の order:-1 より詳細度が高く、2人目だけ写真がカード下に回っていた */
  .p-doctor__item--b .p-doctor__card{order:initial}
  .p-doctor__item--b .p-doctor__photo{order:-1}
  .p-doctor__card{display:block;max-width:none}
  .p-doctor__info,.p-doctor__career{grid-column:auto}
  .p-doctor__photo{
    max-width:125px;justify-self:start;order:-1;margin:0 0 -190px;position:relative;z-index:2;
  }
  .p-doctor__badge{width:66px;margin:18px 0 2px 130px}
  .p-doctor__info{padding-left:130px;min-height:112px}
  .p-doctor__name{font-size:26px;white-space:nowrap;letter-spacing:.06em}
  .p-doctor__roman{font-size:12px}
  .p-doctor__clinic{font-size:11px;letter-spacing:.02em;margin-bottom:2px;line-height:1.5}
  .p-doctor__tag{margin-top:8px;padding:4px 12px;font-size:13px;white-space:nowrap}
  .p-doctor__career{margin-top:16px;max-width:none;padding-left:0}
  .p-doctor__career li{font-size:14px;padding:12px 0 12px 30px}
  .p-doctor__career li::before{width:20px;height:20px;top:14px}
  .p-doctor__leaf{display:none}
  .p-doctor__more{margin-top:44px}

  /* ---- 診療案内 ---- */
  .p-medical{padding:90px 0 92px}
  .p-medical__grid{grid-template-columns:1fr 1fr;gap:16px;margin-top:52px}
  .p-medical__icon{min-height:96px;padding:18px 8px 14px}
  .p-medical__icon img{max-height:56px}
  .p-medical__label{min-height:60px;font-size:14px;padding:8px 26px 8px 12px}
  .p-medical__more{margin-top:46px}

  /* ---- 料金案内 ---- */
  .p-price{padding:80px 0 80px}
  .p-price__card{
    grid-template-columns:1fr;gap:0;padding:0;min-height:0;overflow:hidden;border-radius:24px;
  }
  .p-price__body{order:1;padding:34px 22px 30px}
  .p-price__photo{order:2}
  .p-price__photo img{width:100%;border-radius:0;aspect-ratio:375/190;object-fit:cover}
  .p-price__body .c-head{text-align:center;margin-bottom:14px}
  .p-price__body .c-head__en{justify-content:center}
  .p-price__body .c-head__en img{left:50%}
  .p-price__text{font-size:15px;margin-bottom:24px}
  .p-price__body .c-btn{display:flex;margin:0 auto;width:min(100%,260px);height:56px}

  /* ---- おすすめ診療 ---- */
  .p-recommend{padding:58px 0 58px}
  .p-recommend__grid{grid-template-columns:1fr;gap:22px;margin-top:34px}
  .p-recommend__item{grid-template-columns:1fr;min-height:0;border-radius:18px}
  .p-recommend__photo img{aspect-ratio:335/196;object-fit:cover}
  .p-recommend__body{padding:22px 20px 24px;text-align:center}
  .p-recommend__body h3{justify-content:center;font-size:21px}
  .p-recommend__body p{font-size:15px;text-align:left}
  .p-recommend__link{margin-top:16px}
  .p-recommend__leaf{display:none}
  .p-recommend__more{margin-top:34px}

  /* ---- 院内ツアー ---- */
  .p-gallery{padding:96px 0 98px}
  .p-gallery__slider{margin-top:50px;width:min(100% - 80px,380px)}
  .p-gallery__track{gap:0}
  .p-gallery__slide{display:none}
  .p-gallery__slide.is-current{display:block;flex:0 0 100%;opacity:1}
  .p-gallery__nav{width:40px;height:40px;background:transparent;box-shadow:none}
  .p-gallery__nav--prev{left:-14px}
  .p-gallery__nav--next{right:-14px}
  .p-gallery__more{margin-top:44px}

  /* ---- ブログ ---- */
  .p-blog{padding:56px 0 56px}
  .p-blog__grid{grid-template-columns:1fr;gap:20px;margin-top:32px}
  .p-blog__animal{display:block;top:-40px;right:calc(var(--fl) + 20px);width:86px}
  .p-blog__leaf{display:block;top:-56px;right:calc(var(--fl) + 78px);width:150px}
  .p-blog__title{font-size:17px}
  .p-blog__excerpt{font-size:14px}

  /* ---- フッター ---- */
  .l-footer{padding:52px 0 26px}
  .l-footer__inner{grid-template-columns:1fr;gap:34px}
  .l-footer__nav{order:1}
  .l-footer__nav{grid-template-columns:1fr;gap:24px}
  .l-footer__main{column-count:2;column-gap:20px}
  .l-footer__main li{break-inside:avoid}
  .l-footer__main > li > a,
  .l-footer__groupTitle a{font-size:15px;padding-left:22px}
  .l-footer__sub{column-count:2;column-gap:16px}
  .l-footer__sub > li > a{font-size:13px;padding-left:30px}
  .l-footer__sub ul a{font-size:12px;padding-left:30px}
  .l-footer__brand{order:2;text-align:center}
  .l-footer__brand img{width:min(230px,62vw)}
  .l-footer__copy{margin-top:26px;font-size:11px}
}

/* ---- 極小幅（〜360px） ---- */
@media (max-width:360px){
  .p-mv__line1,.p-mv__box{font-size:30px}
  .p-mv__badge{height:158px;font-size:15px}
  .c-head__ja{font-size:23px}
  .p-trouble__item p{font-size:13px}
  .p-medical__label{font-size:13px}
  .sp-card{grid-template-columns:80px minmax(0,1fr)}
  .sp-card__badge{width:80px}
  .sp-card__tel{font-size:20px}
}

/* =========================================================
   下層ページ（PC / SP）— pcsp カンプ準拠
   カンプ実測（1440px 基準）：
     ヘッダー 126 / ページMV 132-532(高さ400) / コンテナ 80-1360(1280)
     目次カード・本文画像 820px 中央 / h2 帯 高さ68・背景 #ffc3d8・左バー6px
     h2 37px / h3 26px(#d73061) / h4 22px(#78b464) / 本文 18px
   ========================================================= */
.l-lower{background:var(--lower-bg);position:relative}

/* ---- ページ MV ---- */
.p-pagemv{position:relative;height:400px;background:#bfe9e5}
.p-pagemv__photo{
  position:absolute;inset:0;overflow:hidden;
  border-radius:0 0 50% 50% / 0 0 60px 60px;
}
.p-pagemv__photo picture{display:block;width:100%;height:100%}
.p-pagemv__photo img{width:100%;height:100%;object-fit:cover;object-position:center}
.p-pagemv__photo::before{
  content:"";position:absolute;left:0;right:0;top:0;height:18px;z-index:2;
  background-color:var(--white);
  -webkit-mask-image:var(--wave);mask-image:var(--wave);
  -webkit-mask-size:72px 18px;mask-size:72px 18px;
  -webkit-mask-repeat:repeat-x;mask-repeat:repeat-x;
  -webkit-mask-position:left top;mask-position:left top;
  transform:scaleY(-1);
}
.p-pagemv__title{
  position:absolute;left:0;right:0;top:130px;z-index:3;text-align:center;
  font-size:34px;font-weight:700;letter-spacing:.08em;line-height:1.4;color:var(--main);
  padding:0 20px;
}

/* ---- パンくず ---- */
.l-lower__head{width:min(100% - 40px,var(--container));margin-inline:auto;padding-top:6px}
.c-breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:0 6px}
.c-breadcrumb li{font-size:14px;line-height:1.8;color:#7b6a70;letter-spacing:.04em}
.c-breadcrumb li + li::before{content:"/";margin-right:6px;color:#b9a4aa}
.c-breadcrumb a{color:#7b6a70}
.c-breadcrumb a:hover{color:var(--main);opacity:1}

/* ---- 本文エリア ---- */
.l-lower__body{width:min(100% - 40px,var(--container));margin-inline:auto;padding:52px 0 118px}
.l-entry{font-size:19px;line-height:2.05;letter-spacing:.02em}
.l-entry > *:first-child{margin-top:0}
.l-entry p{margin:0 0 1.7em}
.l-entry p:last-child{margin-bottom:0}
.l-entry a{color:var(--main);text-decoration:underline}
.l-entry strong{font-weight:700}
.l-entry ul,.l-entry ol{margin:0 0 1.7em;padding-left:1.4em}
.l-entry ul{list-style:disc}
.l-entry ol{list-style:decimal}
.l-entry li{margin-bottom:.4em}

/* 画像（本文中） */
.l-entry img{
  display:block;width:100%;max-width:820px;height:auto;margin:0 auto;border-radius:16px;
}
.l-entry figure{margin:44px auto 50px;max-width:820px}
.l-entry figure img{margin:0}
.l-entry figcaption{margin-top:12px;font-size:14px;line-height:1.8;text-align:center;color:#7b6a70}
.l-entry .wp-block-image{margin:44px auto 50px}
/* 図版など白カードで見せたいとき */
.l-entry .is-card,.l-entry figure.is-card{
  max-width:none;background:var(--white);border-radius:20px;padding:34px 40px;
}
.l-entry .is-card img{max-width:100%;border-radius:0}

/* 見出し h2：淡ピンク帯＋左バー */
.l-entry h2{
  position:relative;margin:96px 0 44px;padding:6px 24px;
  background:#ffc3d8;border-left:6px solid var(--main);
  font-size:40px;font-weight:700;line-height:1.4;letter-spacing:.08em;color:var(--text);
}
/* 見出し h3：ピンク文字＋下線 */
.l-entry h3{
  margin:64px 0 22px;padding:0 4px 10px;
  border-bottom:2px solid var(--main);
  font-size:31px;font-weight:700;line-height:1.5;letter-spacing:.06em;color:var(--main);
}
/* 見出し h4：グリーン。先頭のダッシュは装飾なので原稿には不要 */
.l-entry h4{
  margin:44px 0 14px;
  font-size:22px;font-weight:700;line-height:1.6;letter-spacing:.06em;color:#78b464;
}
.l-entry h4::before{content:"−";margin-right:.35em}
.l-entry h5,.l-entry h6{
  margin:36px 0 12px;font-size:19px;font-weight:700;line-height:1.7;color:var(--text);
}

/* 本文内ボタン */
.l-entry .c-btn,
.l-entry .wp-block-button__link{
  display:inline-flex;align-items:center;justify-content:center;position:relative;
  min-width:280px;height:72px;padding:0 52px;margin:14px 0 0;
  background:var(--main);color:var(--white);text-decoration:none;
  font-size:18px;font-weight:700;letter-spacing:.16em;line-height:1;border-radius:999px;
}
.l-entry .c-btn i,
.l-entry .wp-block-button__link::after{
  content:"";position:absolute;right:30px;top:50%;width:8px;height:8px;
  border-top:2px solid currentColor;border-right:2px solid currentColor;
  transform:translateY(-50%) rotate(45deg);
}
.l-entry .wp-block-buttons{margin:14px 0 0}
/* 本文内ボタンが複数並ぶとき（原稿で複数ページへの導線が指定されている箇所） */
.l-entry__btn{display:flex;flex-wrap:wrap;gap:14px;margin:0}
.l-entry__btn .c-btn{margin-top:14px}
@media (max-width:1000px){
  .l-entry__btn{gap:10px;justify-content:center}
}

/* 本文中の表（料金案内・アクセスなど）。カンプに表は無いので TOP の診療時間表に合わせる */
.l-entry .c-table,.l-entry table{margin:34px auto 40px}
.l-entry .c-table{background:var(--white);border-radius:16px;overflow:hidden;padding:0}
.l-entry table{width:100%;border-collapse:collapse;font-size:16px;line-height:1.8;margin:0}
.l-entry thead th{
  background:#ffeaf0;color:var(--main);font-weight:700;text-align:left;
  padding:16px 22px;letter-spacing:.04em;
}
.l-entry tbody th,.l-entry tbody td{padding:16px 22px;border-top:1px solid #f0e2e6;vertical-align:top}
.l-entry tbody th{font-weight:700;text-align:left;white-space:nowrap}
.l-entry tbody tr:first-child th,.l-entry tbody tr:first-child td{border-top:1px solid #f0e2e6}
.l-entry table td:last-child{white-space:nowrap}
@media (max-width:1000px){
  .l-entry .c-table{border-radius:12px;overflow-x:auto}
  .l-entry table{font-size:14px;min-width:100%}
  .l-entry thead th{padding:12px 14px}
  .l-entry tbody th,.l-entry tbody td{padding:12px 14px}
  .l-entry table td:last-child{white-space:normal}
}

/* ---- 目次 ---- */
.p-toc{
  width:min(100%,820px);margin:56px auto 96px;
  background:var(--white);border-radius:24px;padding:44px 48px;
  display:grid;grid-template-columns:190px minmax(0,1fr);align-items:center;gap:20px;
}
.p-toc__label{
  font-size:22px;font-weight:700;letter-spacing:.14em;color:var(--main);text-align:center;
}
.p-toc__list{list-style:none;margin:0;padding:0}
.p-toc__item{border-bottom:1px solid #e6dde0;margin:0;list-style:none}
.p-toc__item::marker{content:""}
.p-toc__item a{
  display:block;padding:8px 4px;color:var(--text);text-decoration:none;
  font-size:16px;line-height:1.6;letter-spacing:.04em;
}
.p-toc__item a:hover{color:var(--main);opacity:1}
.p-toc__item--h2 a{font-weight:700}
.p-toc__item--h2 a::before{content:"●";margin-right:.3em;font-size:.8em;vertical-align:.1em}
.p-toc__item--h3 a{padding-left:22px;font-weight:500}
.p-toc__item--h3 a::before{content:"・";margin-right:.1em}

/* ---- 一覧（NEWS / BLOG / 検索） ---- */
.p-list{width:min(100%,980px);margin:0 auto;list-style:none;padding:0}
.p-list__item{background:var(--white);border-radius:16px;margin-bottom:20px;overflow:hidden}
.p-list__item a{
  display:grid;grid-template-columns:220px minmax(0,1fr) 20px;align-items:center;gap:26px;
  padding:20px 26px;text-decoration:none;
}
.p-list__item a:has(.p-list__body:only-of-type){grid-template-columns:minmax(0,1fr) 20px}
.p-list__thumb img{width:100%;height:auto;border-radius:10px;display:block}
.p-list__body{display:block;min-width:0}
.p-list__body time{display:block;font-size:13px;color:#8b8b8b;letter-spacing:.06em}
.p-list__title{display:block;font-size:19px;font-weight:700;line-height:1.6;margin:2px 0 6px}
.p-list__excerpt{display:block;font-size:15px;line-height:1.9;color:#6f6166}
.p-pager{display:flex;justify-content:center;gap:10px;margin-top:40px}
.p-pager .page-numbers{
  display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;
  padding:0 12px;border-radius:999px;background:var(--white);color:var(--text);
  font-weight:700;text-decoration:none;
}
.p-pager .page-numbers.current{background:var(--main);color:var(--white)}

/* 診療案内 一覧（アーカイブ） */
.p-medical__grid--archive{width:min(100%,var(--container));margin:0 auto}

@media (max-width:1000px){
  .p-list__item a{grid-template-columns:110px minmax(0,1fr) 16px;gap:14px;padding:14px 16px}
  .p-list__title{font-size:16px}
  .p-list__excerpt{font-size:14px}
  .p-medical__grid--archive{margin-top:0}
}

/* =========================================================
   下層ページ SP
   ========================================================= */
@media (max-width:1000px){
  .p-pagemv{height:190px}
  .p-pagemv__photo{border-radius:0 0 50% 50% / 0 0 30px 30px}
  .p-pagemv__title{top:58px;font-size:23px}

  .l-lower__head{width:calc(100% - 40px);padding-top:10px}
  .c-breadcrumb li{font-size:14px}

  .l-lower__body{width:calc(100% - 40px);padding:30px 0 64px}
  .l-entry{font-size:15px;line-height:1.85}
  .l-entry img{max-width:100%;border-radius:12px}
  .l-entry figure,.l-entry .wp-block-image{margin:28px auto 32px;max-width:100%}
  .l-entry .is-card,.l-entry figure.is-card{padding:18px 16px;border-radius:14px}

  .l-entry h2{
    margin:56px 0 28px;padding:14px 16px;border-left-width:6px;
    font-size:26px;line-height:1.45;
  }
  .l-entry h3{margin:40px 0 16px;padding:0 2px 8px;font-size:23px}
  .l-entry h4{margin:30px 0 10px;font-size:17px}
  .l-entry h5,.l-entry h6{font-size:17px}

  .l-entry .c-btn,
  .l-entry .wp-block-button__link{
    display:flex;width:100%;max-width:335px;min-width:0;height:64px;padding:0 40px;
    margin-inline:auto;font-size:17px;
  }
  .l-entry .c-btn i,
  .l-entry .wp-block-button__link::after{right:24px}

  .p-toc{
    grid-template-columns:1fr;gap:14px;padding:30px 20px 26px;border-radius:20px;
    margin:34px auto 54px;
  }
  .p-toc__label{font-size:22px}
  .p-toc__item a{font-size:15px;padding:10px 2px}
  .p-toc__item--h3 a{padding-left:16px}
}

/* =========================================================
   2026-09-26 追加：Instagram 欄（TOP）・ヘッダーアイコン・
   駐車場の注記・初めての方へ「診療の流れ」
   ========================================================= */
.u-sp{display:none}

/* ---- ヘッダーの Instagram アイコン ---- */
.h-insta{
  display:flex;align-items:center;justify-content:center;flex:none;
  width:42px;height:42px;border-radius:50%;
  border:1.5px solid var(--pink-300);color:var(--main);background:var(--white);
  transition:background .2s,color .2s,border-color .2s;
}
.h-insta svg{width:24px;height:24px}
@media (hover:hover){.h-insta:hover{border-color:#dd2a7b;transform:scale(1.06);opacity:1}}
.h-insta--sp{display:none}

/* ---- TOP：Instagram ---- */
.p-insta{position:relative;background:var(--main);padding:130px 0 140px}
.p-insta::before,.p-insta::after{
  content:"";position:absolute;left:0;right:0;height:18px;background-color:var(--main);
  -webkit-mask-image:var(--wave);mask-image:var(--wave);
  -webkit-mask-size:72px 18px;mask-size:72px 18px;
  -webkit-mask-repeat:repeat-x;mask-repeat:repeat-x;
}
.p-insta::before{bottom:100%;-webkit-mask-position:left bottom;mask-position:left bottom}
.p-insta::after{top:100%;-webkit-mask-position:left top;mask-position:left top;transform:scaleY(-1)}
.p-insta__animal{position:absolute;top:-46px;right:calc(var(--fl) + 220px);width:110px;z-index:3}
.p-insta__leaf{position:absolute;top:-70px;right:calc(var(--fl) + 100px);width:230px;z-index:2}
.p-insta__card{
  position:relative;z-index:2;
  width:min(100% - 40px,1080px);margin:50px auto 0;
  display:grid;grid-template-columns:400px minmax(0,1fr);align-items:center;gap:60px;
  padding:56px 76px 56px 56px;background:var(--white);border-radius:36px;
  box-shadow:0 20px 44px rgba(110,10,45,.22);
}
.p-insta__visual{position:relative;display:flex;justify-content:center}
.p-insta__visual::before{
  content:"";position:absolute;inset:4% 2%;border-radius:50%;z-index:0;
  background:radial-gradient(circle at 50% 48%,#ffe1ea 0,#fff0f4 48%,rgba(255,240,244,0) 72%);
}
.p-insta__phone{position:relative;z-index:1;width:100%;max-width:370px;height:auto}
.p-insta__lead{
  margin:0 0 18px;font-size:30px;font-weight:700;line-height:1.55;letter-spacing:.06em;color:var(--main);
}
.p-insta__text{margin:0 0 26px;font-size:17px;line-height:2;color:var(--text)}
.p-insta__account{
  display:flex;align-items:center;gap:14px;width:fit-content;margin-bottom:30px;
  padding:12px 22px 12px 12px;border-radius:999px;background:var(--pink-50);
}
.p-insta__avatar{
  flex:none;display:block;width:54px;height:54px;padding:3px;border-radius:50%;
  background:conic-gradient(from 210deg,#fbc54a,#f0508a,#b04fd0,#f0508a,#fbc54a);
}
.p-insta__avatar img{display:block;width:100%;height:100%;border:3px solid var(--white);border-radius:50%}
.p-insta__name{font-size:18px;font-weight:700;line-height:1.35;color:var(--text)}
.p-insta__name small{display:block;font-size:14px;font-weight:500;letter-spacing:.02em;color:#8a6c74}
.p-insta__actions{display:flex;align-items:center;gap:30px;flex-wrap:wrap}
.p-insta__qr{display:flex;align-items:center;gap:12px;margin:0}
.p-insta__qr img{
  width:100px;height:100px;padding:4px;background:var(--white);
  border:1px solid #f1d4dc;border-radius:12px;
}
.p-insta__qr figcaption{font-size:13px;line-height:1.6;color:#8a6c74}
@media (max-width:1240px){
  .p-insta__card{grid-template-columns:320px minmax(0,1fr);gap:40px;padding:48px 48px 48px 40px}
  .p-insta__lead{font-size:26px}
}

/* ---- TOP 医院情報：駐車場の注記 ---- */
.p-clinic__parking{margin:30px 0 0;text-align:center;font-size:15px;line-height:1.8;color:var(--text)}

/* ---- 初めての方へ：診療の流れ ---- */
.l-entry .p-flow{list-style:none;margin:40px auto 56px;padding:0;max-width:920px}
.l-entry .p-flow__item{
  position:relative;margin:0;
  display:grid;grid-template-columns:320px minmax(0,1fr);gap:36px;align-items:center;
  padding:28px 36px 28px 28px;background:var(--white);border-radius:24px;
  box-shadow:0 8px 24px rgba(215,48,97,.08);
}
.l-entry .p-flow__item + .p-flow__item{margin-top:52px}
.l-entry .p-flow__item:not(:last-child)::after{
  content:"";position:absolute;left:50%;bottom:-38px;transform:translateX(-50%);
  border-left:16px solid transparent;border-right:16px solid transparent;border-top:16px solid var(--sub);
}
.l-entry .p-flow__fig img{display:block;width:100%;max-width:none;margin:0;border-radius:16px}
.l-entry .p-flow__fig--2{display:grid;grid-template-columns:1fr;gap:10px}
.l-entry .p-flow__num{
  display:inline-block;margin:0 0 8px;padding:3px 14px;border-radius:999px;
  background:var(--pink-100);font-size:14px;font-weight:700;letter-spacing:.14em;line-height:1.6;color:var(--main);
}
.l-entry .p-flow__body h3{margin:0 0 14px;font-size:26px}
.l-entry .p-flow__body p{margin:0 0 .9em;font-size:17px;line-height:1.95}
.l-entry .p-flow__body p:last-child{margin-bottom:0}
.l-entry .p-flow__note{
  padding:12px 16px;border-radius:12px;background:var(--pink-50);border:1px solid var(--pink-200);
  font-size:15px !important;line-height:1.8 !important;
}
.l-entry .p-flow__note strong{color:var(--main)}

@media (max-width:1000px){
  .u-sp{display:inline}

  .h-insta--sp{display:flex;margin-left:auto;width:44px;height:44px}
  .h-insta--sp svg{width:24px;height:24px}
  .h-insta--sp + .l-header__toggle{margin-left:0}

  .p-insta{padding:64px 0 64px}
  .p-insta__animal{top:-40px;right:calc(var(--fl) + 20px);width:86px}
  .p-insta__leaf{top:-56px;right:calc(var(--fl) + 78px);width:150px}
  .p-insta__card{
    grid-template-columns:1fr;gap:18px;margin-top:30px;padding:30px 22px 34px;border-radius:24px;text-align:center;
  }
  .p-insta__phone{max-width:230px}
  .p-insta__lead{font-size:21px;margin-bottom:12px}
  .p-insta__text{font-size:15px;line-height:1.85;margin-bottom:20px;text-align:left}
  .p-insta__account{margin:0 auto 22px}
  .p-insta__actions{justify-content:center}
  .p-insta__btn{width:100%;max-width:320px}
  .p-insta__qr{display:none}

  .p-clinic__parking{margin-top:20px;font-size:13px;text-align:left}

  .l-entry .p-flow{margin:28px auto 40px}
  .l-entry .p-flow__item{grid-template-columns:1fr;gap:16px;padding:20px 18px 24px;border-radius:18px}
  .l-entry .p-flow__item + .p-flow__item{margin-top:40px}
  .l-entry .p-flow__item:not(:last-child)::after{bottom:-30px;border-width:12px 12px 0}
  .l-entry .p-flow__fig--2{grid-template-columns:1fr 1fr;gap:8px}
  .l-entry .p-flow__body h3{font-size:21px;margin-bottom:10px}
  .l-entry .p-flow__body p{font-size:15px;line-height:1.85}
  .l-entry .p-flow__note{font-size:14px !important}
}

/* 極小幅ではロゴ・アイコン・メニューが横に収まらないため、ヘッダーのアイコンは隠す（SP メニュー内にボタンあり） */
@media (max-width:374px){
  .h-insta--sp{display:none}
  .h-insta--sp + .l-header__toggle{margin-left:auto}
}

/* ---- 2026-09-26 Instagram 欄をひと目で分かるように（公式グリフ・配色） ---- */
.c-igglyph{display:block;flex:none}
.p-insta__mark .c-igglyph,.p-insta__badge .c-igglyph{width:100%;height:100%}
.p-insta__head .c-head__en{letter-spacing:.2em}
.p-insta__mark{
  display:flex;align-items:center;justify-content:center;
  width:88px;height:88px;margin:0 auto 18px;padding:18px;
  background:var(--white);border-radius:26px;box-shadow:0 12px 26px rgba(90,0,40,.28);
}
.p-insta__card::before{
  content:"";position:absolute;top:0;left:56px;right:56px;height:6px;border-radius:0 0 8px 8px;
  background:linear-gradient(90deg,#F58529 0%,#DD2A7B 45%,#8134AF 78%,#515BD4 100%);
}
.p-insta__badge{
  position:absolute;top:4%;right:8%;z-index:2;
  width:76px;height:76px;padding:15px;background:var(--white);border-radius:22px;
  box-shadow:0 10px 22px rgba(200,55,171,.28);transform:rotate(8deg);
}
.p-insta__account{flex-wrap:wrap}
.p-insta__service{
  display:inline-flex;align-items:center;gap:6px;margin-left:6px;padding:5px 12px 5px 8px;
  border-radius:999px;background:var(--white);box-shadow:0 1px 4px rgba(0,0,0,.06);
  font-size:13px;font-weight:700;letter-spacing:.02em;line-height:1;color:var(--text);
}
.p-insta__service .c-igglyph{width:18px;height:18px}
.c-btn.p-insta__btn{
  gap:12px;padding:0 60px 0 34px;letter-spacing:.06em;
  background:linear-gradient(90deg,#F58529 0%,#DD2A7B 45%,#8134AF 80%,#515BD4 100%);
  box-shadow:0 8px 18px rgba(221,42,123,.3);
}
.c-btn.p-insta__btn .c-igglyph{flex:none;width:24px;height:24px}
@media (hover:hover){.c-btn.p-insta__btn:hover{background:linear-gradient(90deg,#F58529 0%,#DD2A7B 45%,#8134AF 80%,#515BD4 100%);filter:brightness(1.07);opacity:1}}
@media (max-width:1000px){
  .p-insta__mark{width:68px;height:68px;padding:14px;border-radius:20px;margin-bottom:14px}
  .p-insta__card::before{left:28px;right:28px;height:5px}
  .p-insta__badge{width:58px;height:58px;padding:11px;border-radius:17px;top:2%;right:14%}
  .p-insta__service{display:none}
  .c-btn.p-insta__btn{gap:10px;padding:0 42px 0 22px;font-size:15px;letter-spacing:.02em;white-space:nowrap}
  .c-btn.p-insta__btn .c-igglyph{width:22px;height:22px}
}

/* =========================================================
   2026-09-27 追加：本院・分院の担当診療／フッターの HTML バナー／施設基準の表
   ========================================================= */
.p-clinic__lead{margin:18px 0 0;text-align:center;font-size:16px;line-height:1.8;color:var(--text)}
.p-clinic__depts{margin-top:18px;padding:14px 16px 12px;border-radius:14px;background:var(--pink-50)}
.p-clinic__deptsTitle{margin:0 0 8px;font-size:14px;font-weight:700;letter-spacing:.06em;color:#777}
.p-clinic__depts ul{display:flex;flex-wrap:wrap;gap:6px 8px;margin:0;padding:0;list-style:none}
.p-clinic__depts li{
  padding:4px 12px;border-radius:999px;background:var(--white);
  font-size:14px;font-weight:700;line-height:1.5;
}
.p-clinic__col:nth-child(1) .p-clinic__depts li{color:var(--main);border:1px solid #f3c1d0}
.p-clinic__col:nth-child(2) .p-clinic__depts li{color:#d2559a;border:1px solid var(--pink-300)}
.p-clinic__deptsNote{margin:8px 0 0;font-size:13px;line-height:1.6;color:#8a6c74}
.p-reserve__depts{
  margin:-4px 0 0;font-size:14px;font-weight:700;line-height:1.5;letter-spacing:.02em;
  color:var(--white);text-align:center;
}

/* フッター：文字で描画するバナー（既存の画像バナーと同じ 230×80） */
.l-footer__bnr{
  display:flex !important;align-items:center;gap:10px;width:230px;height:80px;padding:0 12px 0 8px;
  border:1px solid #f0c6d2;box-sizing:border-box;
}
.l-footer__bnr img.l-footer__bnrThumb{flex:none;width:62px;height:62px;border-radius:8px;object-fit:cover}
.l-footer__bnrText{display:flex;flex-direction:column;font-size:16px;font-weight:700;line-height:1.3;color:var(--main)}
.l-footer__bnrText small{font-size:12px;font-weight:700;color:#8a6c74;letter-spacing:.06em}

/* 施設基準など、最終列が長文の表は折り返す（料金表の最終列は金額なので nowrap のまま） */
.l-entry .c-table--text td:last-child{white-space:normal}
.l-entry .c-table--text td:first-child{width:34%;font-weight:700}

@media (max-width:1000px){
  .p-clinic__lead{font-size:14px;text-align:left}
  .p-clinic__depts li{font-size:13px;padding:3px 10px}
  .p-reserve__depts{font-size:13px}
  .l-footer__bnr{width:min(230px,44vw);height:auto;min-height:64px;padding:6px 8px}
  .l-footer__bnr img.l-footer__bnrThumb{width:48px;height:48px}
  .l-footer__bnrText{font-size:13px}
  .l-footer__bnrText small{font-size:11px}
}

/* 2026-09-27 おすすめ診療：画像ごとに切り抜き位置を指定（予防歯科の画像はスマホで顔が切れないよう上寄せ） */
.p-recommend__photo img{object-position:var(--pos,50% 50%)}

/* 2026-09-27 フッター：プライバシーポリシーへのリンク */
.l-footer__legal{margin:44px 0 0;text-align:center;font-size:13px;line-height:1.6}
.l-footer__legal a{color:#8a6c74;text-decoration:underline;text-underline-offset:3px}
.l-footer__legal + .l-footer__copy{margin-top:14px}
@media (max-width:1000px){.l-footer__legal{margin-top:28px;font-size:12px}}
.p-clinic__deptsNote + .p-clinic__deptsNote{margin-top:2px}

/* 2026-10-01 医院情報: 本院・分院の行の高さをそろえる（PC 2列時のみ）。
   列(.p-clinic__col)と住所欄(.p-clinic__dl)を display:contents にして、中身を親グリッドの「行」に直接並べる。
   院名・診療内容・住所・TEL・アクセス・診療時間・注記が左右で同じ行になり、住所以降の高さがそろう。
   （subgrid より対応ブラウザが広い。古い iPhone の Safari でも効く） */
@media (min-width:1025px){
  .p-clinic__grid{grid-auto-flow:column;grid-template-rows:repeat(7,auto);row-gap:0}
  .p-clinic__col,.p-clinic__dl{display:contents}
  .p-clinic__dl > div:first-child{margin-top:20px}
  .p-clinic__depts{align-self:stretch}
}
