/* ============================================================
   RESET & VARIABLES
============================================================ */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --gold:        #C2A074;
  --gold-dark:   #B8976A;
  --gold-light:  #EAD9C2;
  --gold-pale:   #F6F0E6;
  --off-white:   #FEFCF9;
  --charcoal:    #302C28;
  --mid:         #5A5249;
  --light:       #847A6F;
  --border:      #E8E0D2;
  --deep:        #1E1B18;
  --cream-bg:    #F5F2EC;
  --line-green:  #06C755;
  /* システムフォントスタック。Webフォント追加なしで軽量、数字の判読性とサンセリフ感を両立 */
  --en: 'Helvetica Neue', Helvetica, 'Hiragino Sans', Arial, sans-serif;
  --ja: 'Noto Serif JP', serif;
  --san: 'Noto Sans JP', sans-serif;
  --base-size: 15px;
  /* コンテンツ幅の統一基準（固定ページ全般）
     --wrap-wide  : セクション・テーブル・グリッドなどコンテンツ領域
     --wrap-narrow: 本文テキスト中心のブロック */
  --wrap-wide:   1100px;
  --wrap-narrow: 760px;
}

/* ============================================================
   セクション内コンテンツ幅の統一
   背景は全幅のままに、中のコンテンツだけ --wrap-wide に制約する
   （.mech-bg などの絶対配置の装飾要素は除外）
============================================================ */
.page-hero-light > *,
.shimi-tx > *,
.flow-sec > *,
.faq-sec > *,
.se-sec > *,
.mech-sec > *:not(.mech-bg),
.cta-sec > *,
.types-intro > *,
.types-sec > *,
.price-sec > *,
.area-sec > *,
/* 再生医療ページのヒーロー(.phd)も他下層ページと同じ幅に揃える(背景装飾は除外) */
.phd > *:not(.phd-grid):not(.phd-glow):not(.phd-bgtext),
/* 再生医療ページのセクションも他ページと同じ 1000px に収める */
.regen-cards-sec > *,
.compare-sec > *,
.rflo-sec > *,
/* 医師紹介ページの「医師紹介」「看護師紹介」セクションも 1000px に揃える */
.dr-team > *,
.nurse-sec > *{
  max-width:var(--wrap-wide);
  margin-left:auto;
  margin-right:auto;
}
html{scroll-behavior:smooth}
body{
  font-family:var(--san);
  background:var(--cream-bg);
  color:var(--charcoal);
  font-size:16px;
  line-height:1.9;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
a{text-decoration:none;color:inherit}
ul{list-style:none}
button{cursor:pointer;font-family:inherit}
img{max-width:100%;height:auto;display:block}

/* ============================================================
   NOTICE BAR（自由診療の明示・医療広告GL 限定解除要件①）
============================================================ */
.notice-bar{
  background:var(--charcoal);
  color:#fff !important;
  text-align:center;
  padding:7px 16px;
  font-family:var(--ja);
  font-size:11.5px;
  font-weight:500;
  letter-spacing:.06em;
  line-height:1.5;
}
.notice-bar p{margin:0;color:#fff !important;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit}

/* ============================================================
   SHARED NAV
============================================================ */
.snav{
  background:rgba(254,252,249,.97);
  border-bottom:.5px solid var(--border);
  padding:0 48px;
  display:flex;align-items:center;justify-content:space-between;
  height:64px;
  position:sticky;top:0;z-index:100;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.nav-logo{
  font-family:var(--ja);font-size:14px;
  letter-spacing:.13em;color:var(--charcoal);line-height:1.45;
  font-weight:300;
}
.nav-logo a{color:inherit}
.nav-logo span{
  display:block;font-family:var(--en);
  font-style:italic;font-size:11.5px;
  letter-spacing:.28em;color:var(--gold);margin-top:1px;
}
.nav-ul{display:flex;gap:22px;list-style:none;padding:0;margin:0}
.nav-ul > li{position:relative}
.nav-ul a{
  font-size:13px;letter-spacing:.07em;color:var(--mid);
  transition:color .2s;position:relative;padding-bottom:2px;
}
.nav-ul a::after{
  content:'';position:absolute;bottom:0;left:0;right:0;
  height:.5px;background:var(--gold);
  transform:scaleX(0);transform-origin:left;
  transition:transform .25s ease;
}
.nav-ul a:hover{color:var(--charcoal)}
.nav-ul a:hover::after,.nav-ul a.current::after{transform:scaleX(1)}
.nav-ul a.current{color:var(--gold)}

/* 子メニュー（ドロップダウン）
   親項目をホバーすると下に展開する */
.nav-ul .menu-item-has-children > a{
  /* 「＋」記号を表示するスペースを右側に確保 */
  padding-right:16px;
}
.nav-ul .menu-item-has-children > a::before{
  /* 親項目の右側に「＋」記号を表示。2本の線をlinear-gradientで描画
     ホバー時に縦線をフェードアウトして「−」に変化（展開中の合図） */
  content:'';
  position:absolute;
  right:0;top:50%;
  width:9px;height:9px;
  margin-top:-5px;
  background:
    linear-gradient(currentColor,currentColor) center/9px 1px no-repeat,
    linear-gradient(currentColor,currentColor) center/1px 9px no-repeat;
  transition:background-size .25s ease;
}
.nav-ul .menu-item-has-children:hover > a::before{
  /* 1つ目（横線）は維持、2つ目（縦線）の高さを0にしてフェードアウト */
  background-size:9px 1px, 1px 0;
}
.nav-ul .sub-menu{
  position:absolute;top:100%;left:50%;
  transform:translateX(-50%) translateY(8px);
  min-width:180px;
  background:rgba(254,252,249,.98);
  border:.5px solid var(--border);
  list-style:none;padding:8px 0;margin:0;
  opacity:0;visibility:hidden;
  transition:opacity .2s ease,visibility .2s ease,transform .2s ease;
  z-index:101;
  box-shadow:0 6px 20px rgba(48,44,40,.08);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
/* 親と子メニューの間にホバー用の透明ブリッジを置き、移動中に閉じないようにする */
.nav-ul .menu-item-has-children::before{
  content:'';position:absolute;
  top:100%;left:50%;
  width:180px;height:12px;
  transform:translateX(-50%);
}
.nav-ul .menu-item-has-children:hover > .sub-menu,
.nav-ul .menu-item-has-children:focus-within > .sub-menu{
  opacity:1;visibility:visible;
  transform:translateX(-50%) translateY(0);
}
.nav-ul .sub-menu li{display:block}
.nav-ul .sub-menu a{
  display:block;padding:10px 22px;
  font-size:12.5px;letter-spacing:.07em;
  white-space:nowrap;color:var(--mid);
}
.nav-ul .sub-menu a::after{display:none} /* 親メニューの下線エフェクトを無効化 */
.nav-ul .sub-menu a:hover{
  color:var(--gold);background:rgba(194,160,116,.05);
}
.nav-ul .sub-menu a.current{color:var(--gold)}
.nav-cta{display:flex;gap:8px;align-items:center}
.btn-nav-outline{
  padding:8px 18px;font-size:12px;letter-spacing:.1em;
  background:var(--charcoal);color:var(--off-white);border:none;
  transition:opacity .2s;display:inline-block;
}
.btn-nav-outline:hover{opacity:.78}
.btn-nav-line{
  padding:8px 18px;font-size:12px;letter-spacing:.1em;
  background:var(--line-green);color:#fff;border:none;
  transition:opacity .2s;display:inline-block;
}
.btn-nav-line:hover{opacity:.78}
.btn-nav-icon{
  width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;
  border:.5px solid var(--charcoal);color:var(--charcoal);border-radius:50%;
  background:transparent;transition:all .22s;flex-shrink:0;
}
.btn-nav-icon:hover{background:var(--charcoal);color:var(--off-white)}
.nav-hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:8px}
.nav-hamburger span{display:block;width:20px;height:1px;background:var(--charcoal);transition:all .3s}
.btn-sp-reserve{
  display:none;background:var(--gold);color:white;
  padding:7px 15px;font-size:11.5px;letter-spacing:.1em;border:none;
}

/* Mobile nav overlay */
.mobile-nav-overlay{
  display:none;position:fixed;inset:0;z-index:999;
  background:rgba(254,252,249,.98);
  padding:80px 32px 48px;
  flex-direction:column;gap:0;
  /* メニュー項目+CTAが画面高を超えた場合にスクロール可能にする */
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
}
.mobile-nav-overlay ul{flex-shrink:0}
.mobile-nav-overlay .mobile-nav-cta{flex-shrink:0;padding-bottom:env(safe-area-inset-bottom)}
.mobile-nav-overlay.open{display:flex}
.mobile-nav-close{
  position:absolute;top:20px;right:20px;
  background:none;border:none;font-size:24px;color:var(--charcoal);cursor:pointer;
}
.mobile-nav-overlay ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:0}
.mobile-nav-overlay ul li a{
  display:block;padding:16px 0;font-size:15px;letter-spacing:.08em;
  color:var(--charcoal);border-bottom:.5px solid var(--border);
}
/* モバイル子メニュー：インデントして展開表示（タップで開閉ではなく、常時展開） */
.mobile-nav-overlay .sub-menu{
  list-style:none;
  padding:0 0 0 18px;margin:0;
  background:rgba(245,242,236,.5);
  border-bottom:.5px solid var(--border);
}
.mobile-nav-overlay .sub-menu li a{
  padding:12px 0;font-size:13.5px;
  color:var(--mid);border-bottom:none;
  border-top:.5px dashed rgba(48,44,40,.08);
}
.mobile-nav-overlay .sub-menu li:first-child a{border-top:none}
/* 親項目で枠線を子メニュー側に統合 */
.mobile-nav-overlay .menu-item-has-children > a{border-bottom:none}
.mobile-nav-overlay .mobile-nav-cta{
  display:flex;flex-direction:column;gap:10px;margin-top:28px;
}
.mobile-nav-overlay .mobile-nav-cta a{
  display:block;text-align:center;padding:14px;font-size:13px;letter-spacing:.1em;
}
/* スマホメニュー電話番号ボタン：囲い線を濃くして視認性UP */
.mobile-nav-overlay .mobile-nav-cta .btn-secondary{
  border-color:var(--charcoal);
  border-width:1px;
  color:var(--charcoal);
}
.mobile-nav-overlay .mobile-nav-cta .btn-secondary:hover{
  border-color:var(--gold);color:var(--gold-dark);
}

/* ============================================================
   BREADCRUMB
============================================================ */
.breadcrumb{
  padding:13px 48px;
  background:var(--off-white);
  border-bottom:.5px solid var(--border);
  font-size:13px;color:var(--light);letter-spacing:.08em;
}
.breadcrumb a{color:var(--light);transition:color .2s}
.breadcrumb a:hover{color:var(--gold)}
.breadcrumb .bsep{margin:0 9px;color:var(--border)}

/* ============================================================
   STICKY BOTTOM：CTAセクションと統一したベージュ系
============================================================ */
.sticky-btm{
  position:fixed;bottom:0;left:0;right:0;
  background:rgba(246,240,230,.97); /* var(--gold-pale) 相当に半透明 */
  padding:12px 28px;
  display:flex;align-items:center;justify-content:space-between;
  z-index:200;
  border-top:.5px solid var(--gold-light);
  backdrop-filter:blur(10px);
  transform:translateY(100%);
  transition:transform .3s ease;
}
.sticky-btm.visible{transform:translateY(0)}
.sticky-btm p{font-size:12px;letter-spacing:.08em;color:var(--mid)}
.sticky-btns{display:flex;gap:8px}
.sb{padding:10px 22px;font-size:12.5px;letter-spacing:.1em;border:none;cursor:pointer;font-family:var(--san);display:inline-block}
.sb.line{background:var(--line-green);color:white}
.sb.web{background:var(--charcoal);color:white;transition:opacity .2s}
.sb.web:hover{opacity:.78}
.sb.phone{
  background:transparent;color:var(--charcoal);
  border:1px solid var(--charcoal);
  transition:background .2s,color .2s;
}
.sb.phone:hover{background:var(--charcoal);color:#fff}

/* ============================================================
   SECTION SHARED
============================================================ */
.sec-eyebrow{
  font-family:var(--en);font-style:italic;
  font-size:12px;letter-spacing:.38em;color:var(--gold);
  display:block;margin-bottom:9px;
}
.sec-title{
  font-family:var(--ja);font-size:28px;font-weight:300;
  letter-spacing:.07em;color:var(--charcoal);line-height:1.5;
}
.sec-sub{font-size:14px;color:var(--light);letter-spacing:.08em;margin-top:4px;display:block}
.sec-head{
  display:flex;align-items:flex-end;justify-content:space-between;
  margin-bottom:42px;
}
.see-all{
  font-size:13px;letter-spacing:.14em;color:var(--gold);
  display:inline-flex;align-items:center;gap:5px;
  transition:gap .2s;
}
.see-all::after{content:'\2192';font-size:12px}
.see-all:hover{gap:9px}

/* ============================================================
   BUTTONS
============================================================ */
.btn-primary{
  background:var(--charcoal);color:white;
  padding:15px 36px;font-size:14px;letter-spacing:.16em;
  border:none;cursor:pointer;display:inline-block;
  transition:opacity .2s;
}
.btn-primary:hover{opacity:.78}
.btn-secondary{
  background:transparent;color:var(--charcoal);
  padding:15px 30px;font-size:14px;letter-spacing:.14em;
  border:.5px solid var(--border);cursor:pointer;display:inline-block;
  transition:all .2s;
}
.btn-secondary:hover{border-color:var(--gold);color:var(--gold-dark)}

/* ============================================================
   HERO
============================================================ */
.hero{
  position:relative;
  min-height:680px;
  background:linear-gradient(148deg, #ECE7DC 0%, #F4EDDF 38%, #FAF7F0 68%, var(--off-white) 100%);
  overflow:hidden;
  display:flex;align-items:center;
  padding-bottom:90px;
}
.hero-bg-text{
  position:absolute;right:-15px;top:50%;transform:translateY(-50%);
  font-family:var(--en);font-size:190px;font-weight:300;
  color:rgba(194,160,116,.065);letter-spacing:-.02em;
  white-space:nowrap;pointer-events:none;user-select:none;
}
.hero-photo{
  position:absolute;right:0;top:0;
  width:52%;height:100%;
  background:linear-gradient(158deg, #D8C8B4 0%, #C8B89A 55%, #BAAB92 100%);
  overflow:hidden;
  display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;
}
.hero-photo img{
  width:100%;height:100%;object-fit:cover;
}
.hero-photo p{font-size:11.5px;color:rgba(48,44,40,.3);letter-spacing:.18em}

/* ヒーロー画像スライドショー：複数画像をフェードで切り替え (WebP優先/JPEGフォールバック対応の<picture>) */
.hero-slideshow .hero-slide{
  position:absolute;top:0;left:0;
  width:100%;height:100%;
  opacity:0;transition:opacity 1.4s ease-in-out;
  pointer-events:none;display:block;
}
.hero-slideshow .hero-slide.is-active{opacity:1}
.hero-slideshow .hero-slide img{
  width:100%;height:100%;object-fit:cover;display:block;
  transform-origin:center center;
  will-change:transform;
  /* transformの管理は theme.js で行う：
     スライド切替直前にJSが現在のtransformをインラインで固定し、アニメ剥がれによる
     scaleの瞬間ジャンプ（=「カクッ」）を防いでいる。 */
}
/* Ken Burns効果：アクティブなスライドの画像をゆっくりズーム&パン。
   スライドごとに動きの方向を変えて単調にならないように4パターン用意。
   アニメ時間(12s) > スライド表示時間(5s) なので、切替時もまだ動き途中＝最後にカクッと止まる感がない。
   ease-in-out で急停止感も抑制。 */
.hero-slideshow .hero-slide.is-active img{
  animation:heroKenBurnsA 12s ease-in-out forwards;
}
.hero-slideshow .hero-slide:nth-child(4n+2).is-active img{
  animation-name:heroKenBurnsB;
}
.hero-slideshow .hero-slide:nth-child(4n+3).is-active img{
  animation-name:heroKenBurnsC;
}
.hero-slideshow .hero-slide:nth-child(4n).is-active img{
  animation-name:heroKenBurnsD;
}
/* すべて「拡大 → 通常サイズ」のズームアウト方向で統一し、
   画像がゆっくり引いていく演出に。パンの方向だけ4種で変化を付ける。
   scale差は控えめ(1.10→1.00)にしてスライド切替時のサイズジャンプを目立たなくする。 */
@keyframes heroKenBurnsA{
  0%  {transform:scale(1.10) translate(0,0)}
  100%{transform:scale(1.00) translate(0,0)}
}
@keyframes heroKenBurnsB{
  0%  {transform:scale(1.10) translate(-1.2%,-.8%)}
  100%{transform:scale(1.00) translate(0,0)}
}
@keyframes heroKenBurnsC{
  0%  {transform:scale(1.10) translate(1.2%,-.8%)}
  100%{transform:scale(1.00) translate(0,0)}
}
@keyframes heroKenBurnsD{
  0%  {transform:scale(1.10) translate(0,1.2%)}
  100%{transform:scale(1.00) translate(0,0)}
}
/* モーション抑制設定の方には控えめに */
@media (prefers-reduced-motion:reduce){
  .hero-slideshow .hero-slide.is-active img,
  .hero-slideshow .hero-slide:nth-child(4n+2).is-active img,
  .hero-slideshow .hero-slide:nth-child(4n+3).is-active img,
  .hero-slideshow .hero-slide:nth-child(4n).is-active img{
    animation:none;
  }
}
.hero-fade{
  position:absolute;right:0;top:0;
  width:52%;height:100%;
  background:linear-gradient(90deg, var(--off-white) 0%, rgba(254,252,249,.62) 18%, transparent 42%);
  pointer-events:none;
}
.hero-content{
  position:relative;z-index:2;
  padding:56px 66px;max-width:620px;
}
.hero-eyebrow{
  font-family:var(--en);font-style:italic;
  font-size:12.5px;letter-spacing:.3em;color:var(--gold);
  display:flex;align-items:center;gap:13px;
  margin-bottom:24px;
}
.hero-eyebrow::before{content:'';display:block;width:28px;height:.5px;background:var(--gold);flex-shrink:0}
.hero-title{
  font-family:var(--ja);font-weight:300;
  font-size:clamp(30px, 3.6vw, 48px);
  line-height:1.5;letter-spacing:.04em;color:var(--charcoal);
  margin-bottom:18px;
}
.hero-title .hero-title-line{display:block;white-space:nowrap}
.hero-title em{font-style:normal;color:var(--gold)}
.hero-title-en{
  font-family:var(--en);font-style:italic;
  font-size:13px;letter-spacing:.18em;color:var(--gold);
  display:block;margin-bottom:22px;
}
.hero-sub{
  font-size:15.5px;color:var(--mid);letter-spacing:.05em;
  margin-bottom:28px;line-height:2.1;
}
.hero-badges{
  list-style:none;padding:0;margin:0 0 32px;
  display:flex;flex-direction:column;gap:8px;
  /* バッジが右側ドクター画像エリアと重ならないよう幅を制限 */
  max-width:420px;
}
.hero-badges li{
  display:flex;align-items:center;gap:12px;
  padding:10px 16px;font-size:14px;letter-spacing:.04em;
  color:var(--charcoal);
  background:rgba(254,252,249,.86);
  border:.5px solid var(--border);
  backdrop-filter:blur(4px);
}
.hero-badge-dot{
  width:5px;height:5px;background:var(--gold);
  border-radius:50%;flex-shrink:0;
}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:40px}
.hero-actions .btn-primary,.hero-actions .btn-secondary{
  padding:14px 28px;font-size:13px;letter-spacing:.14em;
  border: .5px solid var(--charcoal);
}
.hero-stats{
  display:flex;align-items:baseline;gap:20px;
  padding-top:28px;border-top:.5px solid var(--border);
}
.hstat{text-align:left;flex:1}
.hstat-num{
  font-family:var(--en);font-size:32px;font-weight:300;
  color:var(--charcoal);line-height:1;letter-spacing:.02em;
}
.hstat-num-ja{
  font-family:var(--ja);font-size:17px;font-weight:400;
  letter-spacing:.05em;
}
.hstat-plus{font-size:20px;color:var(--gold);margin-left:2px;vertical-align:top}
.hstat-unit{
  font-family:var(--ja);font-size:13px;font-weight:400;
  color:var(--mid);margin-left:3px;
}
.hstat-lbl{
  font-size:12px;letter-spacing:.06em;color:var(--light);
  margin-top:6px;line-height:1.5;
}
.hstat-div{width:.5px;height:36px;background:var(--border);flex-shrink:0}
.scroll-hint{
  position:absolute;bottom:28px;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:6px;z-index:2;
}
.scroll-hint span{font-size:11px;letter-spacing:.26em;color:var(--light)}
.scroll-line{
  width:.5px;height:32px;background:var(--gold);
  animation:sline 1.7s ease-in-out infinite;
}
@keyframes sline{
  0%{transform:scaleY(0);transform-origin:top}
  50%{transform:scaleY(1);transform-origin:top}
  51%{transform:scaleY(1);transform-origin:bottom}
  100%{transform:scaleY(0);transform-origin:bottom}
}

/* ============================================================
   REGEN FEATURE SECTION (当院の専門領域)
============================================================ */
.regen-feature-sec{
  background:linear-gradient(180deg, #FBF7F0 0%, var(--gold-pale) 100%);
  padding:88px 66px 76px;
  position:relative;overflow:hidden;
  border-top:.5px solid var(--gold-light);
  border-bottom:.5px solid var(--gold-light);
}
.regen-feature-bg-text{
  position:absolute;
  top:30px;right:-20px;
  font-family:var(--en);font-style:italic;font-weight:200;
  font-size:140px;letter-spacing:.04em;
  color:rgba(194,160,116,.08);
  pointer-events:none;line-height:1;
  white-space:nowrap;
}
.regen-feature-head{
  position:relative;z-index:1;
  text-align:center;margin-bottom:48px;
}
.regen-feature-tag{
  display:inline-block;
  font-size:11.5px;letter-spacing:.22em;
  color:var(--gold);
  background:rgba(255,255,255,.7);
  border:.5px solid var(--gold);
  padding:5px 16px;
  margin-bottom:18px;
}
.regen-feature-head .sec-eyebrow{margin-bottom:14px}
.regen-feature-title{
  font-family:var(--ja);font-size:34px;font-weight:300;
  letter-spacing:.06em;color:var(--charcoal);
  line-height:1.55;margin:0 0 22px;
}
.regen-feature-title em{
  font-style:normal;color:var(--gold-dark);font-weight:400;
  position:relative;
  background:linear-gradient(transparent 70%, rgba(194,160,116,.18) 70%);
  padding:0 4px;
}
.regen-feature-lead{
  font-size:15.5px;color:var(--mid);line-height:2.1;
  max-width:760px;margin:0 auto 24px;
}
.regen-feature-meta{
  display:inline-flex;flex-wrap:wrap;justify-content:center;
  gap:18px 28px;
  margin-top:8px;
}
.regen-feature-meta-item{
  display:inline-flex;align-items:center;gap:7px;
  font-size:13px;letter-spacing:.04em;color:var(--charcoal);
}
.regen-feature-foot{
  text-align:center;margin-top:42px;
  position:relative;z-index:1;
}

/* 既存の .regen-bar は他ページでも使用される可能性があるので残す */
.regen-bar{
  background:var(--off-white);
  border-top:.5px solid var(--border);
  border-bottom:.5px solid var(--border);
}
.regen-bar-in{
  display:grid;grid-template-columns:1fr .5px 1fr .5px 1fr .5px 1fr;
  max-width:none;
}
/* トップページの強調表示 (regen-feature-sec内のみ) */
.regen-feature-sec .regen-bar-in{
  position:relative;z-index:1;
  background:rgba(255,255,255,.92);
  border:.5px solid var(--gold-light);
  box-shadow:0 8px 28px rgba(48,44,40,.06);
}
.rbar-div{background:var(--border);margin:20px 0}
.rbar-item{
  padding:22px 18px;display:flex;align-items:center;gap:12px;
  cursor:pointer;transition:background .2s;color:inherit;
  text-decoration:none;
  min-width:0;
}
.rbar-item:hover{background:var(--gold-pale)}
.rbar-ico{
  width:38px;height:38px;flex-shrink:0;
  border:.5px solid var(--gold-light);
  background:rgba(255,255,255,.55);
  display:flex;align-items:center;justify-content:center;
}
/* テキストラッパー（rbar-ico と rbar-badge の間）。 min-width:0 で flex の縮小を許可し、改行を抑止 */
.rbar-item > div:not(.rbar-ico){flex:1 1 auto;min-width:0}
.rbar-en{
  font-family:var(--en);font-style:italic;
  font-size:11px;letter-spacing:.2em;color:var(--gold);
  display:block;margin-bottom:2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.rbar-ja{
  font-family:var(--ja);font-size:15px;font-weight:300;
  color:var(--charcoal);letter-spacing:.04em;
  display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.rbar-badge{
  margin-left:auto;flex-shrink:0;
  font-size:10.5px;letter-spacing:.05em;
  background:var(--gold);color:white;padding:3px 7px;
  white-space:nowrap;
}
/* スマホでは badge と padding を調整 */
@media (max-width: 768px){
  .rbar-item{padding:18px 18px;gap:14px}
  .rbar-ja{font-size:15.5px;white-space:normal}
  .rbar-badge{font-size:10.5px}
}

/* ============================================================
   CONCERNS
============================================================ */
.concerns-sec{background:var(--off-white);padding:56px 0}
.concerns-header{
  max-width:var(--wrap-wide);margin:0 auto;
  padding:0 24px 22px;
  display:flex;align-items:flex-end;justify-content:space-between;
}
.con-grid{
  max-width:var(--wrap-wide);margin:0 auto;
  display:grid;grid-template-columns:repeat(6,1fr);
  /* 背景は設定せず（ベージュ余白防止）、外枠だけ border で描画 */
  gap:0;
  border:.5px solid #A89678;
}
/* 部位から探す（2カテゴリ） */
.con-grid.con-grid-2{grid-template-columns:repeat(2,1fr);max-width:640px}
/* 施術メニュー（3カテゴリ） */
.con-grid.con-grid-3{grid-template-columns:repeat(3,1fr);max-width:840px}
/* 施術メニュー（4カテゴリ：アートメイク・点滴・院内処方・血液検査） */
.con-grid.con-grid-4{grid-template-columns:repeat(4,1fr);max-width:1080px}
/* お悩みから探す（7カテゴリ：しみ・しわ・たるみ・美肌・毛穴・ニキビ・ほくろ） */
.con-grid.con-grid-7{grid-template-columns:repeat(7,1fr)}
/* 連続するサブセクションは上部余白を詰める */
.concerns-sec-sub{padding-top:28px}
/* お悩み・部位・施術メニューはカードが詰まりがちなので少し広く（標準 1000px → 1180px） */
.concerns-sec .concerns-header,
.concerns-sec .con-grid{max-width:1180px}
/* 3カラム版は元の上限(840px)を維持して中央寄せ感をキープ */
.concerns-sec .con-grid.con-grid-3{max-width:840px}
.concerns-sec .con-grid.con-grid-4{max-width:1080px}
.con-item{
  background:var(--off-white);padding:22px 10px 18px;text-align:center;
  cursor:pointer;transition:background .25s, transform .25s;position:relative;
  display:block;color:inherit;
  /* カード間の仕切り線：右側と下側に細い罫線（折り返し時の横線も担う） */
  border-right:.5px solid #A89678;
  border-bottom:2px solid transparent;
}
/* デフォルト各グリッドで最終カラムの右罫線を消す（カラム数別） */
.con-grid.con-grid-2 > .con-item:nth-child(2n),
.con-grid.con-grid-3 > .con-item:nth-child(3n),
.con-grid.con-grid-4 > .con-item:nth-child(4n),
.con-grid > .con-item:last-child{border-right:0}
.con-item:hover,.con-item.feat{background:var(--gold-pale);border-bottom-color:var(--gold)}
.con-item:hover .con-ico{background:var(--gold);border-color:var(--gold)}
.con-item:hover .con-ico svg [stroke="#C2A074"]{stroke:#fff}
.con-item:hover .con-ico svg [fill="#C2A074"]{fill:#fff}
.con-tag{
  position:absolute;top:10px;right:9px;
  background:var(--gold);color:white;
  font-size:11px;letter-spacing:.1em;padding:2px 6px;
}
/* アイコンに丸い背景タイルを敷いて視認性を強化 */
.con-ico{
  width:44px;height:44px;margin:0 auto 10px;
  display:flex;align-items:center;justify-content:center;
  background:var(--gold-pale);
  border:1px solid var(--gold-light);
  border-radius:50%;
  transition:background .25s, border-color .25s;
}
.con-ico svg{width:22px;height:22px;overflow:visible}
/* SVG内の線・面を一段濃い金色で統一（薄い装飾線の階調は維持） */
.con-ico svg [stroke="#C2A074"]{stroke:var(--gold-dark)}
.con-ico svg [fill="#C2A074"]{fill:var(--gold-dark)}
/* 極端に低いopacityのフィルだけ底上げして塗り潰しを見えるようにする */
.con-ico svg circle[fill="#C2A074"][opacity=".25"],
.con-ico svg circle[fill="#C2A074"][opacity=".2"]{opacity:.55}
.con-ico svg circle[fill="#C2A074"][opacity=".35"]{opacity:.7}
.con-name{
  font-family:var(--ja);font-size:14.5px;font-weight:600;
  letter-spacing:.06em;color:var(--charcoal);margin-bottom:4px;
}
.con-desc{font-size:11.5px;color:var(--mid);line-height:1.5;letter-spacing:.03em}

/* ============================================================
   SEARCH
============================================================ */
.search-sec{
  background:var(--cream-bg);
  border-bottom:.5px solid var(--border);
  padding:56px 66px;
}
.s-row{margin-bottom:16px}
.s-lbl{
  font-size:13px;letter-spacing:.16em;color:var(--gold);
  margin-bottom:11px;display:flex;align-items:center;gap:9px;
}
.s-lbl::before{content:'';display:block;width:14px;height:.5px;background:var(--gold)}
.chips{display:flex;flex-wrap:wrap;gap:7px}
.chip{
  padding:8px 18px;font-size:13px;letter-spacing:.08em;
  border:.5px solid var(--border);background:var(--off-white);
  color:var(--mid);cursor:pointer;transition:all .2s;
  display:inline-block;
}
.chip:hover,.chip.on{background:var(--charcoal);color:white;border-color:var(--charcoal)}
.chip.gold{background:var(--gold);color:white;border-color:var(--gold)}
.s-btn{
  background:var(--charcoal);color:white;
  padding:14px 44px;font-size:13px;letter-spacing:.16em;
  border:none;cursor:pointer;margin-top:22px;display:inline-block;
  transition:opacity .2s;
}
.s-btn:hover{opacity:.78}

/* ============================================================
   TREATMENTS
============================================================ */
.treatments-sec{background:var(--off-white);padding:76px 66px}
.tc-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:1px;background:var(--border);border:.5px solid var(--border);
}
.tc{
  background:var(--off-white);
  position:relative;overflow:hidden;color:inherit;
  display:flex;flex-direction:column;
}
/* カード本文（画像に相当する上部）だけがページへのリンク。ホバー演出もここだけに限定する。
   flex:1 でカードの高さいっぱいに伸ばし、下のtc-footを行内で常に同じ位置（最下部）に揃える */
.tc-mainlink{
  display:block;color:inherit;cursor:pointer;
  padding:36px 28px 24px;
  transition:background .3s;
  flex:1 1 auto;
}
.tc-mainlink:hover{background:var(--charcoal)}
/* 料金リンクとページ詳細リンクは、本文リンクとは別の独立したフッター行に分離。
   常時カードと異なる背景色にして「別の操作エリア」であることを常に視覚化する */
.tc-foot{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:14px 24px;
  background:var(--cream-bg);
  border-top:.5px solid var(--border);
  position:relative;z-index:3;
}
.tc-pricelink{
  display:inline-flex;align-items:center;gap:4px;
  font-family:var(--san);font-size:12px;letter-spacing:.03em;
  color:var(--gold-dark);
  border:.5px solid rgba(194,160,116,.4);border-radius:20px;
  padding:6px 12px 6px 11px;
  transition:all .2s;
}
.tc-pricelink::before{content:'¥';font-size:10.5px}
.tc-pricelink:hover{background:var(--gold-dark);color:#fff;border-color:var(--gold-dark)}
.tc-pagelink{
  display:inline-flex;align-items:center;gap:3px;
  font-family:var(--san);font-size:12px;letter-spacing:.03em;
  color:var(--mid);padding:6px 4px;
  transition:color .2s;
}
.tc-pagelink:hover{color:var(--charcoal)}
.tc::after{
  content:'';position:absolute;bottom:0;left:0;right:0;
  height:2px;
  background:linear-gradient(90deg, var(--gold), transparent);
  transform:scaleX(0);transform-origin:left;
  transition:transform .35s ease;
}
.tc:has(.tc-mainlink:hover)::after{transform:scaleX(1)}
.tc-mainlink:hover .tc-num,.tc-mainlink:hover .tc-tag,.tc-mainlink:hover .tc-title,.tc-mainlink:hover .tc-desc{color:rgba(255,255,255,.82)}
.tc-mainlink:hover .tc-line{background:rgba(255,255,255,.1)}
.tc-num{
  font-family:var(--en);font-size:44px;font-weight:300;
  color:var(--border);display:block;letter-spacing:-.02em;
  margin-bottom:14px;line-height:1;transition:color .3s;
}
.tc-tag{font-size:11.5px;letter-spacing:.14em;color:var(--gold);margin-bottom:9px;display:block;transition:color .3s}
.tc-title{
  font-family:var(--ja);font-size:18px;font-weight:400;
  color:var(--charcoal);letter-spacing:.06em;transition:color .3s;
}
.tc-line{height:.5px;background:var(--border);margin:14px 0;transition:background .3s}
.tc-desc{font-size:15.5px;color:var(--mid);line-height:1.9;transition:color .3s}

/* ============================================================
   BEFORE/AFTER
============================================================ */
.ba-sec{background:var(--charcoal);padding:76px 66px}
.ba-sec .sec-eyebrow{color:var(--gold)}
.ba-sec .sec-title{color:rgba(255,255,255,.92)}
.ba-filter{display:flex;gap:8px;margin:0 0 30px;flex-wrap:wrap}
.ba-chip{
  padding:6px 16px;font-size:12px;letter-spacing:.08em;
  border:.5px solid rgba(255,255,255,.14);
  color:rgba(255,255,255,.48);cursor:pointer;background:transparent;
  transition:all .2s;display:inline-block;
}
.ba-chip:hover,.ba-chip.on{border-color:var(--gold);color:var(--gold)}
.ba-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ba-card{
  background:rgba(255,255,255,.04);
  border:.5px solid rgba(255,255,255,.08);
  overflow:hidden;cursor:pointer;
  transition:border-color .25s, box-shadow .25s;
}
.ba-card:hover{
  border-color:rgba(194,160,116,.32);
  box-shadow:0 4px 24px rgba(0,0,0,.25);
}
.ba-imgs{
  display:grid;grid-template-columns:1fr 1fr;
  height:205px;gap:1px;background:rgba(255,255,255,.08);
}
.ba-img{
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.04);position:relative;overflow:hidden;
}
.ba-img img{width:100%;height:100%;object-fit:cover}
.ba-lbl{
  position:absolute;top:8px;left:8px;
  font-size:11.5px;letter-spacing:.16em;
  background:rgba(0,0,0,.55);color:rgba(255,255,255,.85);padding:3px 8px;
}
.ba-info{padding:16px 18px}
.ba-treatment{font-size:15px;letter-spacing:.08em;color:var(--gold);margin-bottom:6px;font-weight:500}
.ba-detail{font-size:14.5px;color:rgba(255,255,255,.7);line-height:1.7}

/* ===== Before & After スライダー（トップページ） ===== */
.ba-slider{position:relative;padding:0 48px}
.ba-slider-viewport{overflow:hidden}
.ba-slider-track{
  display:flex;position:relative;
  /* JSで translateX を当てて移動。transitionでなめらかに */
  transition:transform .55s cubic-bezier(.4,.2,.2,1);
  will-change:transform;
}
/* PCでは3枚表示 → 各スライドの幅は1/3 */
.ba-slide{
  flex:0 0 calc((100% - 32px) / 3);
  margin-right:16px;
  box-sizing:border-box;
}
.ba-slide:last-child{margin-right:0}
.ba-slide .ba-card{height:100%}

/* 左右矢印 */
.ba-arrow{
  position:absolute;top:50%;transform:translateY(-50%);
  width:38px;height:38px;border-radius:50%;
  background:rgba(255,255,255,.06);
  border:.5px solid rgba(255,255,255,.18);
  color:rgba(255,255,255,.7);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:all .2s;padding:0;
  z-index:3;
}
.ba-arrow:hover{
  background:var(--gold);border-color:var(--gold);color:var(--charcoal);
}
.ba-arrow:disabled{
  opacity:.25;cursor:default;pointer-events:none;
}
.ba-prev{left:0}
.ba-next{right:0}

/* ドットインジケーター */
.ba-dots{
  display:flex;justify-content:center;gap:8px;
  margin-top:24px;
}
.ba-dots button{
  width:8px;height:8px;border-radius:50%;
  background:rgba(255,255,255,.22);
  border:0;padding:0;cursor:pointer;
  transition:all .2s;
}
.ba-dots button:hover{background:rgba(255,255,255,.4)}
.ba-dots button.on{background:var(--gold);width:24px;border-radius:4px}

/* ============================================================
   DOCTOR
============================================================ */
.doctor-sec{background:var(--off-white);padding:76px 66px}
.doctor-in{
  display:grid;grid-template-columns:1fr 1.25fr;
}
.doc-photo{
  background:linear-gradient(158deg, #D8C8B4 0%, #C8B89A 50%, #BAA890 100%);
  min-height:480px;
  display:flex;align-items:center;justify-content:center;
  flex-direction:column;gap:8px;
  position:relative;overflow:hidden;
}
.doc-photo img{width:100%;height:100%;object-fit:cover}
.doc-photo p{font-size:11.5px;color:rgba(48,44,40,.3);letter-spacing:.17em}
/* 院長写真下の資格ストリップ：背景を強めにし、項目を金線で区切って視認性を上げる */
.doc-strip{
  position:absolute;bottom:0;left:0;right:0;
  background:linear-gradient(to bottom, rgba(30,27,24,.55), rgba(30,27,24,.88));
  padding:16px 26px;
  display:flex;justify-content:center;align-items:center;flex-wrap:wrap;
  gap:10px 18px;
  backdrop-filter:blur(6px);
}
.dstrip{
  font-size:12.5px;letter-spacing:.1em;
  color:rgba(255,255,255,.95);line-height:1.5;
  position:relative;padding-right:18px;
  white-space:nowrap;
}
/* 項目間の金色セパレーター */
.dstrip:not(:last-child)::after{
  content:"";
  position:absolute;right:0;top:50%;transform:translateY(-50%);
  width:1px;height:11px;
  background:rgba(194,160,116,.55);
}
/* スマホ：2列に並べ替え、セパレーターを非表示 */
@media (max-width: 768px){
  .doc-strip{padding:14px 18px;gap:8px 14px}
  .dstrip{font-size:11.5px;padding-right:14px}
  .dstrip:not(:last-child)::after{height:9px}
}
.doc-txt{padding:56px;display:flex;flex-direction:column;justify-content:center}
.doc-name{
  font-family:var(--ja);font-size:26px;font-weight:300;
  letter-spacing:.09em;margin-bottom:3px;color:var(--charcoal);
}
.doc-name-en{
  font-family:var(--en);font-style:italic;
  font-size:15px;letter-spacing:.2em;color:var(--gold);
  margin-bottom:26px;display:block;
}
.doc-msg{font-size:16px;color:var(--mid);line-height:2.3;margin-bottom:26px}
.doc-msg em{font-style:normal;color:var(--charcoal)}
.doc-creds{
  border-top:.5px solid var(--border);
  padding-top:18px;display:flex;flex-direction:column;gap:9px;
}
.dcred{display:flex;align-items:center;gap:10px;font-size:15px;color:var(--mid)}
.dcred::before{content:'';width:4px;height:4px;background:var(--gold);border-radius:50%;flex-shrink:0}
/* 院長セクション SNS */
.doc-sns{
  margin-top:22px;padding-top:18px;
  border-top:.5px solid var(--border);
}
.doc-sns-label{
  display:block;font-size:11.5px;letter-spacing:.22em;
  color:var(--gold);margin-bottom:10px;
}
.doc-sns-list{display:flex;gap:10px;flex-wrap:wrap}
.doc-sns-link{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 16px;
  border:.5px solid var(--gold-light);
  color:var(--charcoal);
  font-size:12px;letter-spacing:.08em;
  background:var(--off-white);
  transition:color .25s,border-color .25s,background .25s;
}
.doc-sns-link:hover{
  color:var(--gold);
  border-color:var(--gold);
  background:var(--gold-pale);
}
.doc-sns-link svg{flex-shrink:0}

/* ============================================================
   AXIS NAV (3軸の入り口ナビ)
============================================================ */
.axis-nav-sec{
  background:linear-gradient(165deg, #1A2332 0%, #25324A 60%, #2D3D58 100%);
  color:rgba(255,255,255,.92);
  padding:78px 66px;
  position:relative;overflow:hidden;
}
.axis-nav-sec::before{
  content:'';position:absolute;
  top:-100px;right:-100px;width:380px;height:380px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(194,160,116,.12) 0%, rgba(194,160,116,0) 70%);
  pointer-events:none;
}
.axis-nav-sec::after{
  content:'';position:absolute;
  bottom:-80px;left:-80px;width:280px;height:280px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(194,160,116,.08) 0%, rgba(194,160,116,0) 70%);
  pointer-events:none;
}
.axis-nav-head{
  position:relative;z-index:1;text-align:center;margin-bottom:48px;
}
.axis-nav-head .sec-eyebrow{color:var(--gold)}
.axis-nav-head .sec-title{
  color:rgba(255,255,255,.95);
}
.axis-nav-head .sec-sub{
  color:rgba(255,255,255,.55);
}
.axis-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
  position:relative;z-index:1;
}
.axis-card{
  background:rgba(255,255,255,.04);
  border:.5px solid rgba(255,255,255,.12);
  padding:42px 32px 36px;
  text-decoration:none;color:inherit;
  display:flex;flex-direction:column;
  position:relative;
  transition:background .3s,border-color .3s,transform .3s;
}
.axis-card:hover{
  background:rgba(194,160,116,.08);
  border-color:var(--gold);
  transform:translateY(-3px);
}
.axis-card::before{
  content:'';position:absolute;top:0;left:0;right:0;
  height:2px;background:var(--gold);
  transform:scaleX(0);transform-origin:left;
  transition:transform .35s ease;
}
.axis-card:hover::before{transform:scaleX(1)}
.axis-num{
  font-family:var(--en);font-style:italic;
  font-size:14px;letter-spacing:.3em;color:var(--gold);
  margin-bottom:24px;
}
.axis-ico{
  width:52px;height:52px;
  border:.5px solid rgba(194,160,116,.4);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:22px;
  background:rgba(194,160,116,.05);
}
.axis-en{
  font-family:var(--en);font-style:italic;
  font-size:13px;letter-spacing:.22em;color:var(--gold);
  margin-bottom:8px;
}
.axis-title{
  font-family:var(--ja);font-size:22px;font-weight:300;
  letter-spacing:.06em;color:rgba(255,255,255,.95);
  margin-bottom:14px;line-height:1.5;
}
.axis-desc{
  font-size:15px;color:rgba(255,255,255,.6);
  line-height:1.95;margin:0 0 22px;flex:1;
}
.axis-arrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:13px;letter-spacing:.12em;color:var(--gold);
  border-top:.5px solid rgba(194,160,116,.25);padding-top:18px;
  transition:gap .25s;
}
.axis-card:hover .axis-arrow{gap:14px}
.axis-sublinks{
  display:flex;flex-wrap:wrap;gap:8px;
  border-top:.5px solid rgba(194,160,116,.25);padding-top:18px;
}
.axis-sublinks span{
  font-size:12px;letter-spacing:.06em;
  padding:4px 12px;
  border:.5px solid rgba(194,160,116,.3);
  color:rgba(255,255,255,.75);
}

/* ============================================================
   NEWS TABS
============================================================ */
.news-tabs{
  display:flex;gap:6px;margin-bottom:24px;
  border-bottom:.5px solid var(--border);
}
.news-tab{
  background:transparent;border:none;
  font-family:inherit;cursor:pointer;
  padding:12px 22px;
  font-size:13.5px;letter-spacing:.1em;
  color:var(--light);
  border-bottom:1.5px solid transparent;
  margin-bottom:-.5px;
  transition:color .25s,border-color .25s;
}
.news-tab:hover{color:var(--charcoal)}
.news-tab.is-active{
  color:var(--charcoal);
  border-bottom-color:var(--gold);
  font-weight:500;
}
.news-item.is-hidden{display:none}

/* アクセスCTA */
.access-cta{
  margin-top:32px;
  display:flex;flex-wrap:wrap;gap:12px;
}

/* ============================================================
   SHOP BANNER (院長セレクト ドクターズコスメ)
============================================================ */
.shop-banner-sec{
  background:var(--off-white);
  padding:0 66px 76px;
}
.shop-banner{
  display:flex;align-items:center;justify-content:space-between;
  gap:48px;flex-wrap:wrap;
  background:linear-gradient(120deg, var(--gold-pale) 0%, #F2E8D6 100%);
  padding:48px 56px;
  border:.5px solid var(--gold-light);
  position:relative;overflow:hidden;
  text-decoration:none;color:inherit;
  transition:box-shadow .35s,transform .35s;
}
.shop-banner:hover{
  box-shadow:0 12px 36px rgba(194,160,116,.18);
  transform:translateY(-2px);
}
.shop-banner::before{
  content:'';position:absolute;top:-40px;right:-40px;
  width:180px;height:180px;border-radius:50%;
  background:radial-gradient(circle, rgba(255,255,255,.6) 0%, rgba(255,255,255,0) 70%);
  pointer-events:none;
}
.shop-banner-text{flex:1;min-width:280px;position:relative;z-index:1}
.shop-banner-eyebrow{
  font-family:var(--en);font-style:italic;
  font-size:13px;letter-spacing:.28em;color:var(--gold);
  display:block;margin-bottom:14px;
}
.shop-banner-title{
  font-family:var(--ja);font-size:26px;font-weight:300;
  color:var(--charcoal);letter-spacing:.06em;line-height:1.5;
  margin:0 0 16px;
}
.shop-banner-title em{
  font-style:normal;color:var(--gold-dark);font-weight:400;
}
.shop-banner-desc{
  font-size:15px;color:var(--mid);line-height:1.95;
  margin:0;max-width:560px;
}
.shop-banner-cta{flex-shrink:0;position:relative;z-index:1}
.shop-banner-btn{
  display:inline-flex;align-items:center;gap:12px;
  padding:16px 32px;
  background:var(--charcoal);color:var(--off-white);
  font-size:14px;letter-spacing:.14em;
  border:.5px solid var(--charcoal);
  transition:background .25s,color .25s,border-color .25s;
}
.shop-banner:hover .shop-banner-btn{
  background:var(--gold);border-color:var(--gold);
}
.shop-banner-btn svg{transition:transform .25s}
.shop-banner:hover .shop-banner-btn svg{transform:translateX(3px)}

/* フッター: 院長セレクトショップリンク */
.ft-shop{
  margin-top:14px;padding-top:14px;
  border-top:.5px solid rgba(255,255,255,.08);
}
.ft-shop-link{
  display:inline-flex;align-items:center;
  font-size:13.5px;letter-spacing:.04em;
  color:var(--gold) !important;
}
.ft-shop-link:hover{color:var(--gold-light) !important}

/* ============================================================
   STRENGTHS
============================================================ */
.strengths-sec{background:var(--gold-pale);padding:76px 66px}
.st-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:1px;background:var(--border);border:.5px solid var(--border);
  margin-top:42px;
}
.st-item{background:var(--off-white);padding:36px 24px;text-align:center}
.st-ico{
  width:50px;height:50px;margin:0 auto 14px;
  border:.5px solid var(--gold-light);
  background:rgba(255,255,255,.55);
  display:flex;align-items:center;justify-content:center;
}
.st-num{font-family:var(--en);font-style:italic;font-size:12px;letter-spacing:.3em;color:var(--gold);margin-bottom:10px}
.st-title{font-family:var(--ja);font-size:17px;font-weight:400;color:var(--charcoal);margin-bottom:8px;letter-spacing:.05em}
.st-desc{font-size:15px;color:var(--light);line-height:1.88}

/* ============================================================
   NEWS
============================================================ */
.news-sec{background:var(--off-white);padding:76px 66px}
/* 医療コラムセクション：お知らせと視覚的に分けるため別背景 */
.news-sec.news-sec-alt{background:var(--cream-bg);padding-top:64px;padding-bottom:64px}
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:0}
.news-item{
  border-bottom:.5px solid var(--border);
  padding-bottom:18px;cursor:pointer;display:block;color:inherit;
}
.news-item:hover .news-title{color:var(--gold-dark)}
.news-dt{
  font-family:var(--en);font-size:13px;letter-spacing:.2em;
  color:var(--gold);margin-bottom:5px;
}
.news-cat{
  display:inline-block;font-size:11.5px;letter-spacing:.1em;
  color:var(--gold);border:.5px solid var(--gold-light);
  padding:2px 8px;margin-bottom:8px;
}
.news-title{font-size:16px;color:var(--charcoal);line-height:1.72;transition:color .2s}

/* ============================================================
   ACCESS
============================================================ */
.access-sec{
  background:var(--charcoal);
  padding:76px 66px;
  display:grid;grid-template-columns:1.1fr 1fr;
  gap:56px;align-items:stretch;
  position:relative;overflow:hidden;
}
.access-grid-bg{
  position:absolute;inset:0;
  opacity:.032;
  background-image:
    linear-gradient(var(--gold) 1px,transparent 1px),
    linear-gradient(90deg,var(--gold) 1px,transparent 1px);
  background-size:52px 52px;
  pointer-events:none;
}
.access-sec .sec-eyebrow{color:var(--gold)}
.access-sec .sec-title{color:rgba(255,255,255,.92);margin-bottom:32px}
.access-rows{display:flex;flex-direction:column;gap:14px}
.acc-row{
  display:flex;gap:17px;font-size:15.5px;
  color:rgba(255,255,255,.62);
  padding-bottom:14px;border-bottom:.5px solid rgba(255,255,255,.07);
}
.acc-lbl{
  font-size:11.5px;letter-spacing:.12em;color:var(--gold);
  min-width:56px;padding-top:2px;flex-shrink:0;
}
.acc-tel{
  font-family:var(--en);font-size:26px;font-weight:300;
  color:var(--gold);letter-spacing:.05em;
}
.map-box{
  background:rgba(255,255,255,.04);
  border:.5px solid rgba(255,255,255,.08);
  min-height:420px;
  display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;
  overflow:hidden;position:relative;
}
.map-box iframe{width:100%;height:100%;position:absolute;inset:0;border:0}
.map-box p{font-size:11.5px;letter-spacing:.16em;color:rgba(255,255,255,.24)}

/* ============================================================
   CTA BAR
============================================================ */
.cta-bar{
  background:var(--gold);
  padding:26px 66px;
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:16px;
}
.cta-bar p{
  font-family:var(--ja);font-size:18px;font-weight:300;
  color:white;letter-spacing:.07em;
}
.cta-bar-btns{display:flex;gap:10px;flex-wrap:wrap}
.cbtn-white{
  background:white;color:var(--gold);
  padding:12px 28px;font-size:13px;letter-spacing:.1em;
  border:none;cursor:pointer;font-weight:400;
  transition:opacity .2s;display:inline-block;
}
.cbtn-white:hover{opacity:.85}
.cbtn-outline-w{
  background:transparent;color:white;
  padding:11px 24px;font-size:13px;letter-spacing:.1em;
  border:1px solid white;cursor:pointer;
  transition:background .2s,color .2s;display:inline-block;
}
.cbtn-outline-w:hover{background:white;color:var(--gold)}

/* ============================================================
   FOOTER
============================================================ */
.site-footer{background:#1E1C1A;padding:52px 66px 28px}
.ft-in{display:flex;justify-content:space-between;gap:40px;margin-bottom:28px;flex-wrap:wrap}
.ft-logo{
  font-family:var(--ja);font-size:16px;font-weight:300;
  color:rgba(255,255,255,.74);margin-bottom:5px;
}
.ft-logo span{
  display:block;font-family:var(--en);font-style:italic;
  font-size:11.5px;color:var(--gold);letter-spacing:.22em;margin-top:2px;
}
.ft-addr{font-size:15px;color:rgba(255,255,255,.4);line-height:1.92;margin-top:10px;letter-spacing:.06em}
/* フッターSNS */
.ft-sns{margin-top:22px}
.ft-sns-label{
  display:block;font-family:var(--en);font-style:italic;
  font-size:12px;letter-spacing:.28em;color:var(--gold);
  margin-bottom:10px;
}
.ft-sns-list{display:flex;gap:10px}
.ft-sns-link{
  width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;
  border:.5px solid rgba(255,255,255,.18);
  color:rgba(255,255,255,.54);
  border-radius:50%;
  transition:color .25s,border-color .25s,background .25s;
}
.ft-sns-link:hover{
  color:var(--gold);
  border-color:var(--gold);
  background:rgba(194,160,116,.08);
}
.ft-links{display:flex;gap:40px;flex-wrap:wrap}
.ft-col h4{
  font-size:11.5px;letter-spacing:.22em;
  color:rgba(255,255,255,.44);margin-bottom:12px;
  padding-bottom:8px;border-bottom:.5px solid rgba(255,255,255,.07);
}
.ft-col ul{display:flex;flex-direction:column;gap:7px;list-style:none;padding:0;margin:0}
.ft-col a{
  color:rgba(255,255,255,.42);font-size:14px;letter-spacing:.04em;
  transition:color .2s;
}
.ft-col a:hover{color:var(--gold)}
.ft-btm{
  border-top:.5px solid rgba(255,255,255,.06);
  padding-top:18px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;
  font-size:12px;color:rgba(255,255,255,.2);letter-spacing:.08em;
}

/* ============================================================
   ANCHOR NAV (for sub-pages)
============================================================ */
.anav{
  background:var(--off-white);
  border-bottom:.5px solid var(--border);
  padding:0 48px;
  display:flex;overflow-x:auto;justify-content:center;
  position:sticky;top:64px;z-index:90;
  scrollbar-width:none;
}
.anav::-webkit-scrollbar{display:none}
.anav-btn{
  padding:13px 18px;font-size:12px;letter-spacing:.08em;
  color:var(--mid);cursor:pointer;border:none;background:transparent;
  font-family:var(--san);border-bottom:2px solid transparent;
  white-space:nowrap;flex-shrink:0;transition:all .2s;
  display:inline-block;
}
.anav-btn.active{color:var(--gold);border-bottom-color:var(--gold)}
.anav-btn:hover{color:var(--charcoal)}

/* ============================================================
   SHIMI PAGE HERO
============================================================ */
.page-hero-light{
  background:linear-gradient(148deg, #ECE7DC 0%, #F3EBE0 50%, #E8E0D4 100%);
  padding:64px 48px 58px;
  position:relative;overflow:hidden;
}
.page-hero-light::after{
  content:attr(data-text);
  position:absolute;right:-10px;bottom:-22px;
  font-family:var(--en);font-size:145px;font-weight:300;
  color:rgba(194,160,116,.066);letter-spacing:-.02em;
  pointer-events:none;white-space:nowrap;
}
.ph-eyebrow{
  font-family:var(--en);font-style:italic;
  font-size:12.5px;letter-spacing:.36em;color:var(--gold);margin-bottom:10px;
}
.ph-title{
  font-family:var(--ja);font-size:38px;font-weight:300;
  letter-spacing:.06em;color:var(--charcoal);margin-bottom:13px;line-height:1.52;
}
/* H1 と先頭位置を揃えるため、サブ説明文もサイト標準幅(1000px)で配置 */
.ph-sub{font-size:15px;color:var(--mid);line-height:2.1;max-width:var(--wrap-wide)}
.ph-tags{display:flex;gap:8px;margin-top:24px;flex-wrap:wrap}
.ph-tag{
  padding:5px 14px;font-size:12px;letter-spacing:.1em;
  border:.5px solid var(--border);color:var(--mid);
  background:rgba(255,255,255,.58);
}

/* TYPES SECTION */
.types-sec{background:var(--off-white);padding:72px 48px}
/* 内部要素もサイト標準 1080px センター寄せに揃える */
.types-sec > *{max-width:var(--wrap-wide);margin-left:auto;margin-right:auto}
.types-intro{
  font-size:15px;color:var(--mid);line-height:2.0;
  margin-bottom:42px;
  background:var(--gold-pale);padding:22px 26px;
  border-left:2px solid var(--gold);
}

/* === 比較表（types-sec 内の Gutenberg テーブル）をテーマカラーに統一 === */
/* スマホで横スクロール可能にするため、figure を overflow:auto に */
.types-sec figure.wp-block-table{
  margin:0 auto 16px; /* left/right:auto でセンタリングを維持 */
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.types-sec figure.wp-block-table table{
  width:100%;
  min-width:620px;     /* 列が多いテーブルはスマホで横スクロール発生 */
  border-collapse:collapse;
  border:.5px solid var(--border);
}
/* 見出しはサイト全体の compare-tbl と同じチャコール */
.types-sec figure.wp-block-table thead th{
  background:var(--charcoal);
  color:rgba(255,255,255,.88);
  padding:14px 16px;
  font-size:13px;
  letter-spacing:.08em;
  font-weight:400;
  text-align:left;
  border:.5px solid rgba(255,255,255,.1);
  white-space:nowrap;
}
.types-sec figure.wp-block-table tbody td{
  padding:13px 16px;
  font-size:14.5px;
  color:var(--mid);
  border:.5px solid var(--border);
  line-height:1.72;
  background:var(--off-white);
  vertical-align:top;
}
/* 1列目（項目名）は強調 */
.types-sec figure.wp-block-table tbody td:first-child{
  background:var(--cream-bg);
  color:var(--charcoal);
  font-weight:500;
  white-space:nowrap;
}
/* Gutenberg のストライプ表示は偶数行をクリームに */
.types-sec figure.wp-block-table.is-style-stripes tbody tr:nth-child(even) td{
  background:#FAF7F1;
}
.types-sec figure.wp-block-table.is-style-stripes tbody tr:nth-child(even) td:first-child{
  background:var(--cream-bg);
}

/* 比較表セクション：見出し下の余白 */
.types-sec .sec-title{margin-bottom:28px}

/* スマホ最適化 */
@media (max-width: 768px){
  .types-sec{padding:48px 20px}
  .types-sec figure.wp-block-table{
    /* スクロールバーが見えやすいよう枠線を外側に */
    border:.5px solid var(--border);
  }
  .types-sec figure.wp-block-table table{
    min-width:560px;
    border:none;
  }
  .types-sec figure.wp-block-table thead th{padding:10px 12px;font-size:12px}
  .types-sec figure.wp-block-table tbody td{padding:10px 12px;font-size:13px}
  /* 横スクロールが必要であることを視覚的に示すヒント */
  .types-sec figure.wp-block-table::after{
    content:"← 横にスクロールできます →";
    display:block;
    text-align:center;
    font-size:11px;
    color:var(--light);
    padding:6px 0 0;
    letter-spacing:.06em;
  }
}

/* 期待できる変化など、3カラムの効果リスト */
.effect-cols{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:1px;background:var(--border);
  border:.5px solid var(--border);
  margin-top:24px;
}
.effect-col{
  background:var(--off-white);
  padding:28px 26px;
}
.effect-col-title{
  font-family:var(--ja);font-size:17px;font-weight:400;
  color:var(--charcoal);letter-spacing:.05em;
  margin:0 0 14px;padding-bottom:12px;
  border-bottom:.5px solid var(--gold-light);
}
.effect-list{
  list-style:none;padding:0;margin:0;
  display:flex;flex-direction:column;gap:9px;
}
.effect-list li{
  position:relative;padding-left:14px;
  font-size:15px;line-height:1.78;color:var(--mid);
}
.effect-list li::before{
  content:'';position:absolute;left:0;top:.7em;
  width:4px;height:4px;border-radius:50%;
  background:var(--gold);
}
@media (max-width: 768px){
  .effect-cols{grid-template-columns:1fr}
  .effect-col{padding:22px 20px}
}
.types-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:1px;background:var(--border);border:.5px solid var(--border);
}
.type-card{
  background:var(--off-white);padding:22px 24px;
  display:grid;grid-template-columns:72px 1fr;
  gap:18px;align-items:start;cursor:pointer;transition:background .2s;
}
.type-card:hover{background:var(--gold-pale)}
.type-img{
  width:72px;height:72px;
  background:linear-gradient(142deg, #EAD9C4, #D4C3B0);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;position:relative;overflow:hidden;
}
.type-img img{width:100%;height:100%;object-fit:cover}
.type-img-lbl{
  position:absolute;bottom:0;left:0;right:0;
  background:rgba(48,44,40,.62);font-size:10.5px;
  letter-spacing:.03em;color:rgba(255,255,255,.92);
  padding:4px 6px;text-align:center;line-height:1.35;
  /* 文字数が多い時は最大2行で省略(モダンブラウザはellipsis、IEは単純カット) */
  max-height:34px;overflow:hidden;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
}
.type-info h3{
  font-family:var(--ja);font-size:17px;font-weight:400;
  color:var(--charcoal);margin-bottom:3px;letter-spacing:.05em;
}
.type-en{
  font-family:var(--en);font-style:italic;font-size:12.5px;
  letter-spacing:.18em;color:var(--gold);margin-bottom:6px;display:block;
}
.type-info p{font-size:14.5px;color:var(--mid);line-height:1.75}
/* タグエリア: 「主な治療・ポイント」ラベルを擬似要素で先頭に挿入し、横一列でコンパクトに見せる */
.type-tags{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:9px}
.type-tags::before{
  content:"主な治療・ポイント";
  font-family:var(--ja);font-size:10.5px;color:var(--mid);
  letter-spacing:.1em;margin-right:2px;flex-shrink:0;
}
.type-tag{font-size:10.5px;padding:2px 7px;letter-spacing:.06em}
.type-tag.laser{background:#EAF3DE;color:#3B6D11;border:.5px solid #C0DD97}
.type-tag.medicine{background:#E6F1FB;color:#185FA5;border:.5px solid #B5D4F4}
.type-tag.hard{background:#FCEBEB;color:#A32D2D;border:.5px solid #F7C1C1}

/* SHIMI TREATMENTS */
.shimi-tx{background:var(--gold-pale);padding:72px 48px}
.tc-list{display:flex;flex-direction:column;gap:1px;background:var(--border);border:.5px solid var(--border)}
.tc-card{background:var(--off-white)}
.tc-header{
  padding:26px 30px;display:flex;
  align-items:center;justify-content:space-between;cursor:pointer;
}
.tc-hdr-l{display:flex;align-items:center;gap:18px}
.tc-hnum{
  font-family:var(--en);font-size:30px;font-weight:300;
  color:var(--gold-light);letter-spacing:-.02em;
}
.tc-htitle h3{
  font-family:var(--ja);font-size:18px;font-weight:400;
  color:var(--charcoal);margin-bottom:3px;letter-spacing:.05em;
}
.tc-hen{
  font-family:var(--en);font-style:italic;font-size:12.5px;
  letter-spacing:.18em;color:var(--gold);
}
.badge-pop{font-size:11.5px;letter-spacing:.1em;padding:4px 10px;background:var(--gold);color:white}
.badge-kan{font-size:11.5px;letter-spacing:.1em;padding:4px 10px;background:var(--gold-pale);color:var(--gold);border:.5px solid var(--gold-light)}
.tc-body-grid{
  padding:0 30px 30px;
  display:grid;grid-template-columns:1fr 1.1fr;gap:28px;align-items:start;
}
.tc-body-desc{font-size:15.5px;color:var(--mid);line-height:2.0;margin-bottom:14px}
.tc-merits{display:flex;flex-direction:column;gap:7px;margin-bottom:18px}
.tc-merit{display:flex;align-items:baseline;gap:9px;font-size:14.5px;color:var(--charcoal)}
.tc-merit::before{content:'';width:3px;height:3px;background:var(--gold);border-radius:50%;flex-shrink:0;margin-top:5px}
.price-box{background:var(--gold-pale);border:.5px solid var(--gold-light);padding:18px 20px}
.price-lbl{font-size:11.5px;letter-spacing:.16em;color:var(--gold);margin-bottom:6px}
.price-val{font-family:var(--en);font-size:23px;font-weight:300;color:var(--charcoal)}
.price-val small{font-family:var(--san);font-size:12px;color:var(--mid);margin-left:4px}
.price-note{font-size:11.5px;color:var(--light);margin-top:4px;line-height:1.6}
.dt-pills{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.dt-pill{
  font-size:11.5px;letter-spacing:.06em;padding:3px 9px;
  background:var(--off-white);border:.5px solid var(--border);color:var(--mid);
}
.tc-ba-pair{display:flex;gap:7px}
.tc-ba-img{
  flex:1;background:linear-gradient(142deg, #EAD9C4, #D4C3B0);
  aspect-ratio:4/3;
  display:flex;align-items:center;justify-content:center;position:relative;
  overflow:hidden;
}
.tc-ba-img img{width:100%;height:100%;object-fit:cover}
.tc-ba-lbl{
  position:absolute;top:5px;left:5px;font-size:11px;
  letter-spacing:.12em;background:rgba(48,44,40,.6);color:white;padding:2px 5px;
}
.tc-ba-cap{font-size:13px;color:var(--mid);margin-top:7px;line-height:1.6}

/* FLOW */
.flow-sec{background:var(--off-white);padding:72px 48px}
.flow-steps{display:flex;align-items:flex-start;gap:0;position:relative}
.flow-step{flex:1;text-align:center;padding:0 12px;position:relative}
.flow-step:not(:last-child)::after{
  content:'';position:absolute;top:24px;right:-1px;
  width:16px;height:.5px;background:var(--gold);
}
.fstep-circle{
  width:50px;height:50px;
  border:.5px solid var(--gold);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 12px;
  font-family:var(--en);font-size:17px;color:var(--gold);
}
.fstep-title{
  font-family:var(--ja);font-size:17px;font-weight:400;
  color:var(--charcoal);margin-bottom:5px;letter-spacing:.05em;
}
.fstep-desc{font-size:14.5px;color:var(--mid);line-height:1.8}

/* CAUTION */
.caution-box{
  background:var(--off-white);border:.5px solid var(--border);
  padding:22px 26px;margin-top:28px;
}
.caution-title{
  font-size:12px;letter-spacing:.1em;color:var(--charcoal);
  margin-bottom:12px;padding-bottom:10px;border-bottom:.5px solid var(--border);
}
.caution-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.caution-item{display:flex;gap:8px;font-size:12px;color:var(--mid);align-items:center}
.caution-x{
  width:14px;height:14px;border:.5px solid var(--border);border-radius:50%;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  font-size:11px;color:var(--gold);
}

/* SE section */
.se-sec{background:var(--off-white);padding:56px 48px}
.se-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:22px}
.se-item{
  background:var(--cream-bg);border:.5px solid var(--border);
  padding:20px 16px;text-align:center;
}
.se-ico{width:32px;height:32px;margin:0 auto 10px;display:flex;align-items:center;justify-content:center}
.se-title{font-size:12px;letter-spacing:.05em;color:var(--charcoal);margin-bottom:5px}
.se-desc{font-size:12px;color:var(--light);line-height:1.72}
.se-status{font-size:11.5px;letter-spacing:.08em;color:var(--gold);margin-top:5px}

/* FAQ */
.faq-sec{background:var(--charcoal);padding:72px 48px}
.faq-sec .sec-eyebrow{color:var(--gold)}
.faq-sec .sec-title{color:rgba(255,255,255,.92)}
.faq-sec .sec-sub{color:rgba(255,255,255,.4)}
.faq-list{display:flex;flex-direction:column;gap:1px;background:rgba(255,255,255,.05);margin-top:32px}
.faq-item{
  background:rgba(255,255,255,.03);
  border:.5px solid rgba(255,255,255,.08);
  padding:18px 22px;
}
.faq-q{display:flex;align-items:flex-start;gap:14px;margin-bottom:8px}
.fq-mark{
  font-family:var(--en);font-size:21px;font-weight:300;
  color:var(--gold);flex-shrink:0;line-height:1.2;
}
.fq-text{font-size:16px;color:rgba(255,255,255,.92);line-height:1.72}
.faq-a{padding-left:35px;font-size:16px;color:rgba(255,255,255,.6);line-height:2}

/* CTA SECTION */
.cta-sec{text-align:center;padding:62px 48px}
.cta-sec h2{
  font-family:var(--ja);font-size:26px;font-weight:300;
  color:var(--charcoal);margin-bottom:10px;letter-spacing:.07em;
}
.cta-sec p{font-size:16px;color:var(--mid);margin-bottom:30px;line-height:2}
.cta-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.cta-btn-dark{
  background:var(--charcoal);color:white;padding:16px 40px;
  font-size:14px;letter-spacing:.15em;border:none;cursor:pointer;
  transition:opacity .2s;display:inline-block;
}
.cta-btn-dark:hover{opacity:.78}
.cta-btn-line{
  background:var(--line-green);color:white;padding:16px 30px;
  font-size:14px;letter-spacing:.15em;border:none;cursor:pointer;
  display:inline-block;
}
.cta-btn-tel{
  background:transparent;color:var(--charcoal);padding:15px 28px;
  font-size:14px;letter-spacing:.12em;
  border:1px solid var(--charcoal);
  cursor:pointer;transition:background .2s,color .2s;display:inline-block;
}
.cta-btn-tel:hover{background:var(--charcoal);color:white}

/* ============================================================
   REGEN PAGE HERO
============================================================ */
.phd{
  background:var(--deep);
  padding:84px 48px 76px;
  position:relative;overflow:hidden;
}
.phd-grid{
  position:absolute;inset:0;opacity:.038;
  background-image:
    linear-gradient(var(--gold) 1px,transparent 1px),
    linear-gradient(90deg,var(--gold) 1px,transparent 1px);
  background-size:52px 52px;
}
.phd-glow{
  position:absolute;top:-90px;right:-90px;
  width:520px;height:520px;
  background:radial-gradient(circle,rgba(194,160,116,.1) 0%,transparent 68%);
  pointer-events:none;
}
.phd-bgtext{
  position:absolute;right:-12px;bottom:-26px;
  font-family:var(--en);font-size:155px;font-weight:300;
  color:rgba(194,160,116,.048);letter-spacing:-.02em;
  line-height:1;pointer-events:none;white-space:nowrap;
}
.phd-eyebrow{
  font-family:var(--en);font-style:italic;
  font-size:13px;letter-spacing:.36em;color:var(--gold);margin-bottom:12px;
  position:relative;z-index:1;
}
.phd-title{
  font-family:var(--ja);font-size:42px;font-weight:300;
  line-height:1.56;letter-spacing:.06em;
  color:rgba(255,255,255,.92);margin-bottom:14px;
  position:relative;z-index:1;
}
.phd-title em{font-style:normal;color:var(--gold)}
.phd-sub{
  font-size:15.5px;color:rgba(255,255,255,.48);
  line-height:2.1;max-width:570px;margin-bottom:38px;
  position:relative;z-index:1;
}
.certify-row{display:flex;gap:14px;flex-wrap:wrap;position:relative;z-index:1}
.certify-badge{
  display:flex;align-items:center;gap:10px;
  background:rgba(255,255,255,.04);
  border:.5px solid rgba(194,160,116,.24);padding:12px 16px;
}
.cb-ico{
  width:30px;height:30px;
  border:.5px solid rgba(194,160,116,.34);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.cb-txt{font-size:13px;letter-spacing:.06em;color:rgba(255,255,255,.64);line-height:1.5}
.cb-txt strong{display:block;font-size:11px;letter-spacing:.15em;color:var(--gold);font-weight:400;margin-bottom:1px}

/* REGEN INTRO */
.intro-regen{
  background:var(--off-white);padding:72px 48px;
  display:grid;
  /* 2カラムそれぞれ最大510pxに制限し、中央寄せ。背景は全幅、中身は約1080px以内 */
  grid-template-columns:minmax(auto,510px) minmax(auto,510px);
  gap:60px;align-items:center;
  justify-content:center;
}
.intro-label{
  font-family:var(--en);font-style:italic;
  font-size:12px;letter-spacing:.36em;color:var(--gold);margin-bottom:8px;
}
.intro-title{
  font-family:var(--ja);font-size:26px;font-weight:300;
  letter-spacing:.07em;color:var(--charcoal);margin-bottom:18px;line-height:1.6;
}
.intro-body{font-size:15px;color:var(--mid);line-height:2.22;margin-bottom:22px}
.intro-body em{font-style:normal;color:var(--charcoal)}
.intro-quote{
  border-left:2px solid var(--gold);
  padding:14px 18px;background:var(--gold-pale);
}
.intro-quote p{
  font-family:var(--ja);font-size:15px;font-weight:300;
  color:var(--charcoal);line-height:1.92;letter-spacing:.04em;
}
.intro-quote cite{
  display:block;font-size:11.5px;letter-spacing:.12em;
  color:var(--gold);margin-top:9px;font-style:normal;
}
.intro-visual{
  background:linear-gradient(148deg, var(--deep) 0%, #2A2420 100%);
  min-height:360px;
  display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;
}
.iv-bg{
  position:absolute;inset:0;opacity:.05;
  background-image:
    linear-gradient(var(--gold) 1px,transparent 1px),
    linear-gradient(90deg,var(--gold) 1px,transparent 1px);
  background-size:32px 32px;
}
.iv-in{position:relative;z-index:1;text-align:center;padding:32px;width:100%}
.iv-ring{
  width:92px;height:92px;
  border:.5px solid rgba(194,160,116,.4);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 18px;position:relative;
}
.iv-ring::before{
  content:'';position:absolute;inset:-10px;
  border:.5px solid rgba(194,160,116,.12);border-radius:50%;
}
.iv-lbl{
  font-family:var(--en);font-style:italic;
  font-size:12px;letter-spacing:.28em;color:var(--gold);margin-bottom:5px;
}
.iv-title{
  font-family:var(--ja);font-size:15px;font-weight:300;
  color:rgba(255,255,255,.78);letter-spacing:.06em;margin-bottom:18px;
}
.iv-pts{display:flex;flex-direction:column;gap:8px;width:100%}
.iv-pt{
  display:flex;align-items:center;gap:10px;
  padding:9px 14px;
  background:rgba(255,255,255,.03);
  border:.5px solid rgba(194,160,116,.12);
}
.iv-pt-dot{width:3px;height:3px;background:var(--gold);border-radius:50%;flex-shrink:0}
.iv-pt-txt{font-size:12px;color:rgba(255,255,255,.58);letter-spacing:.04em}

/* REGEN CARDS */
.regen-cards-sec{background:var(--cream-bg);padding:72px 48px}
.regen-cards{
  display:flex;flex-direction:column;
  gap:1px;background:var(--border);border:.5px solid var(--border);
}
.rc{
  background:var(--off-white);
  display:grid;grid-template-columns:64px 1fr;min-height:auto;
}
.rc-numcol{
  background:var(--deep);
  display:flex;align-items:flex-start;justify-content:center;padding-top:32px;
}
.rc-num{
  font-family:var(--en);font-size:36px;font-weight:300;
  color:rgba(194,160,116,.32);writing-mode:vertical-rl;
}
.rc-main{padding:32px 28px}
.rc-tag{
  font-family:var(--en);font-style:italic;
  font-size:11.5px;letter-spacing:.16em;color:var(--gold);
  margin-bottom:7px;display:block;
}
.rc-title{
  font-family:var(--ja);font-size:22px;font-weight:400;
  color:var(--charcoal);margin-bottom:3px;letter-spacing:.06em;
}
.rc-en{
  font-family:var(--en);font-style:italic;
  font-size:12px;letter-spacing:.18em;color:var(--gold);
  margin-bottom:18px;display:block;
}
.rc-desc{font-size:15.5px;color:var(--mid);line-height:2.0;margin-bottom:16px}
.rc-merits{display:flex;flex-direction:column;gap:7px;margin-bottom:18px}
.rc-merit{display:flex;align-items:baseline;gap:9px;font-size:14.5px;color:var(--charcoal)}
.rc-merit::before{content:'';width:3px;height:3px;background:var(--gold);border-radius:50%;flex-shrink:0;margin-top:5px}
.rc-target{background:var(--gold-pale);border:.5px solid var(--gold-light);padding:12px 15px}
.rc-tgt-lbl{font-size:12px;letter-spacing:.14em;color:var(--gold);margin-bottom:5px}
.rc-tgt-txt{font-size:14.5px;color:var(--mid);line-height:1.72}
/* 本文末尾の「詳しく見る」ボタン領域（右寄せ） */
.rc-actions{
  margin-top:20px;
  display:flex;justify-content:flex-end;
}
.rc-detail-btn{
  display:inline-block;
  background:var(--charcoal);color:white;
  padding:12px 28px 12px 24px;
  font-size:13px;letter-spacing:.12em;
  border:none;cursor:pointer;text-align:center;
  transition:background .25s,color .25s;
  text-decoration:none;
}
.rc-detail-btn:hover{
  background:var(--gold);
}

/* MECHANISM */
.mech-sec{
  background:var(--deep);padding:72px 48px;
  position:relative;overflow:hidden;
}
.mech-bg{
  position:absolute;inset:0;opacity:.032;
  background-image:
    linear-gradient(var(--gold) 1px,transparent 1px),
    linear-gradient(90deg,var(--gold) 1px,transparent 1px);
  background-size:52px 52px;
}
.mech-sec .sec-eyebrow{color:var(--gold);position:relative;z-index:1}
.mech-sec .sec-title{color:rgba(255,255,255,.92);position:relative;z-index:1}
.mech-sec .sec-sub{color:rgba(255,255,255,.4);position:relative;z-index:1}
.mech-flow{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:1px;background:rgba(255,255,255,.06);
  border:.5px solid rgba(255,255,255,.06);
  margin-top:40px;position:relative;z-index:1;
}
.mstep{
  background:rgba(255,255,255,.03);
  padding:30px 22px;position:relative;
}
.mstep:not(:last-child)::after{
  content:'\2192';position:absolute;top:30px;right:-14px;
  font-family:var(--en);font-size:20px;
  color:rgba(194,160,116,.32);z-index:1;
}
.ms-num{
  font-family:var(--en);font-size:46px;font-weight:300;
  color:rgba(194,160,116,.12);line-height:1;margin-bottom:14px;
}
.ms-ico{
  width:40px;height:40px;
  border:.5px solid rgba(194,160,116,.24);
  display:flex;align-items:center;justify-content:center;margin-bottom:12px;
}
.ms-title{
  font-family:var(--ja);font-size:17px;font-weight:400;
  color:rgba(255,255,255,.8);margin-bottom:7px;letter-spacing:.05em;
}
.ms-desc{font-size:14.5px;color:rgba(255,255,255,.4);line-height:1.88}

/* ============================================================
   Gutenbergテーブル 共通ベース（フォールバック）
   .price-sec / .types-sec などの囲みの「外」に出てしまったテーブルでも、
   最低限のデザイン（中央寄せ・幅100%・チャコールのヘッダー・枠線）を
   当てるための保険。ブロックエディタでの編集やパターン再挿入で囲みが
   崩れても、素の左寄せテーブルにならないようにする。
   ※ 各セクション専用ルール（.price-sec ... / .types-sec ... など）の方が
     詳細度が高いため、囲みの中ではそちらが優先される。
   ============================================================ */
figure.wp-block-table{
  max-width:var(--wrap-wide);
  margin-left:auto;
  margin-right:auto;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
figure.wp-block-table table{
  width:100%;
  border-collapse:collapse;
  border:.5px solid var(--border);
}
figure.wp-block-table thead th{
  background:var(--charcoal);
  color:rgba(255,255,255,.86);
  padding:13px 16px;
  font-size:13px;
  letter-spacing:.08em;
  font-weight:400;
  text-align:left;
  border:.5px solid rgba(255,255,255,.1);
}
figure.wp-block-table tbody td{
  padding:12px 16px;
  font-size:14.5px;
  color:var(--mid);
  border:.5px solid var(--border);
  line-height:1.72;
  background:var(--off-white);
}
figure.wp-block-table.is-style-stripes tbody tr:nth-child(even) td{
  background:var(--cream-bg);
}

/* ============================================================
   Flexible Table Block 対応
   プラグインが生成する専用インラインCSS（.wp-block-flexible-table-block-table
   を2連続で使う高詳細度セレクタ）を上書きし、上のfigure.wp-block-tableと
   同じデザイン（チャコールヘッダー・クリーム系ストライプ）に統一する。
   ============================================================ */
figure.wp-block-flexible-table-block-table{
  max-width:var(--wrap-wide);
  margin-left:auto;
  margin-right:auto;
}
.wp-block-flexible-table-block-table.wp-block-flexible-table-block-table>table{
  border:.5px solid var(--border);
}
.wp-block-flexible-table-block-table.wp-block-flexible-table-block-table>table tr th{
  background-color:var(--charcoal) !important;
  color:rgba(255,255,255,.86) !important;
  padding:13px 16px;
  font-size:13px;
  letter-spacing:.08em;
  font-weight:400;
  border-color:rgba(255,255,255,.1) !important;
}
.wp-block-flexible-table-block-table.wp-block-flexible-table-block-table>table tr td{
  background-color:var(--off-white) !important;
  padding:12px 16px;
  font-size:14.5px;
  color:var(--mid);
  border-color:var(--border) !important;
  line-height:1.72;
}
.wp-block-flexible-table-block-table.wp-block-flexible-table-block-table.is-style-stripes tbody tr:nth-child(even) td{
  background-color:var(--cream-bg) !important;
}
.wp-block-flexible-table-block-table.wp-block-flexible-table-block-table.is-style-stripes tbody tr:nth-child(odd) td{
  background-color:var(--off-white) !important;
}

/* PRICE (editable section) */
.price-sec{background:var(--off-white);padding:72px 48px;border-top:.5px solid var(--border)}
/* サイト標準の 1080px コンテナにそろえて中央寄せ（料金表が画面全幅に広がるのを防ぐ） */
.price-sec > *{max-width:var(--wrap-wide);margin-left:auto;margin-right:auto}
/* 過去の仕様変更で.price-secの外に取り残された段落・見出し・テーブル（本来は料金表内に収まる想定）の位置ズレ修正。
   .price-secが自身のsection/divを閉じるようになった際、後続の手書き閉じタグ用wp:htmlブロックが無効化された状態で残っており、
   間に挟まる素のGutenbergブロックが左端に寄って見える。中身(コンテンツ)には触れず、位置合わせのみ行う。 */
.price-sec ~ p.wp-block-paragraph,
.price-sec ~ h3.wp-block-heading,
.price-sec ~ h2.wp-block-heading,
.price-sec ~ figure.wp-block-table,
.price-sec ~ ul.wp-block-list,
.price-sec ~ ol.wp-block-list{
  max-width:calc(var(--wrap-wide) + 96px);
  margin-left:auto;margin-right:auto;
  padding-left:48px;padding-right:48px;
  box-sizing:border-box;
}
@media (max-width:768px){
  .price-sec ~ p.wp-block-paragraph,
  .price-sec ~ h3.wp-block-heading,
  .price-sec ~ h2.wp-block-heading,
  .price-sec ~ figure.wp-block-table,
  .price-sec ~ ul.wp-block-list,
  .price-sec ~ ol.wp-block-list{
    padding-left:20px;padding-right:20px;
  }
}
.price-sec .editable-content{margin-top:8px;max-width:var(--wrap-wide);margin-left:auto;margin-right:auto}
/* .editable-content または .price-sec 直下のGutenbergブロックの両方に同じデザインを適用 */
.price-sec .editable-content table,
.price-sec > .wp-block-table table,
.price-sec figure.wp-block-table table{
  width:100%;border-collapse:collapse;
  border:.5px solid var(--border);margin:0;
}
.price-sec .editable-content th,
.price-sec > .wp-block-table th,
.price-sec figure.wp-block-table th{
  background:var(--charcoal);color:rgba(255,255,255,.84);
  padding:13px 18px;font-size:13px;letter-spacing:.1em;
  font-weight:400;text-align:left;border:.5px solid rgba(255,255,255,.1);
}
.price-sec .editable-content td,
.price-sec > .wp-block-table td,
.price-sec figure.wp-block-table td{
  padding:13px 18px;font-size:15px;color:var(--mid);
  border:.5px solid var(--border);line-height:1.72;background:var(--off-white);
}
.price-sec .editable-content tbody tr:nth-child(even) td,
.price-sec > .wp-block-table tbody tr:nth-child(even) td,
.price-sec figure.wp-block-table tbody tr:nth-child(even) td{background:var(--cream-bg)}
.price-sec .editable-content p,
.price-sec > p{font-size:15px;color:var(--mid);line-height:1.9;margin:14px 0}
.price-sec > p.wp-block-paragraph{max-width:var(--wrap-wide);margin-left:auto;margin-right:auto}
.price-sec .editable-content h2,
.price-sec > h2.wp-block-heading{
  font-family:var(--ja);font-size:20px;font-weight:400;
  color:var(--charcoal);margin:28px 0 12px;letter-spacing:.05em;
}
.price-sec > h2.wp-block-heading{max-width:var(--wrap-wide);margin-left:auto;margin-right:auto}
.price-sec .editable-content h3,
.price-sec > h3.wp-block-heading{
  font-family:var(--ja);font-size:17px;font-weight:400;
  color:var(--charcoal);margin:20px 0 10px;letter-spacing:.05em;
}
.price-sec > h3.wp-block-heading{max-width:var(--wrap-wide);margin-left:auto;margin-right:auto}
.price-sec .editable-content ul,.price-sec .editable-content ol,
.price-sec > ul.wp-block-list,.price-sec > ol.wp-block-list{
  font-size:15px;color:var(--mid);line-height:1.9;margin:12px 0;padding-left:22px;
}
.price-sec .editable-content :last-child{margin-bottom:0}
.price-sec figure.wp-block-table{max-width:var(--wrap-wide);margin:0 auto 14px}
.price-sec .editable-content:empty::before{
  content:'料金表の内容は、固定ページの本文エリアから追加・編集できます。';
  display:block;padding:24px;text-align:center;
  color:var(--light);font-size:13px;
  background:var(--cream-bg);border:.5px dashed var(--border);
}

/* ACFリピーター方式の料金表 */
.price-sec .price-tables{margin-top:8px;max-width:var(--wrap-wide);margin-left:auto;margin-right:auto}
.price-group{margin-bottom:24px}
.price-group:last-child{margin-bottom:0}
.price-group__name{
  font-family:var(--ja);font-size:17px;font-weight:400;
  color:var(--charcoal);margin:0 0 10px;letter-spacing:.05em;
}
.price-sec .price-tables table{
  width:100%;border-collapse:collapse;
  border:.5px solid var(--border);margin:0;
}
.price-sec .price-tables td{
  padding:13px 18px;font-size:15px;color:var(--mid);
  border:.5px solid var(--border);line-height:1.72;background:var(--off-white);
}
.price-sec .price-tables tbody tr:nth-child(even) td{background:var(--cream-bg)}
.price-sec .price-tables .ptd-name{width:55%}
.price-sec .price-tables .ptd-price{width:25%;white-space:nowrap;font-family:var(--en);font-size:16px;color:var(--charcoal)}
.price-sec .price-tables .ptd-note{width:20%;font-size:12px;color:var(--light)}

@media (max-width: 768px){
  .price-sec{padding:36px 20px}
  .price-sec .editable-content th,.price-sec .editable-content td,
  .price-sec figure.wp-block-table th,.price-sec figure.wp-block-table td{padding:9px 11px;font-size:12px}
  .price-sec .price-tables td{padding:9px 11px;font-size:12px}
  .price-sec .price-tables .ptd-price{font-size:13px}
  /* Flexible Table Block（プラグイン生成テーブル）はここまでのルールが効かず、
     スマホでも列幅・余白がデスクトップのままで見づらくなっていたため個別に縮小 */
  .wp-block-flexible-table-block-table.wp-block-flexible-table-block-table>table tr th{padding:8px 8px;font-size:11px}
  .wp-block-flexible-table-block-table.wp-block-flexible-table-block-table>table tr td{padding:8px 8px;font-size:11.5px;line-height:1.5}
}

/* ============================================================
   CONTENT IMAGE SECTION — 各治療ページの解説画像セクション
   本番サイトの図解・機器・施設画像などを統一デザインで組み込む
   後方互換: .adipose-img-sec / .adipose-cpc-sec / .adipose-img-list / .adipose-img も残す
============================================================ */
.content-img-sec,
.adipose-img-sec{
  background:var(--off-white);
  padding:76px 48px;
  text-align:center;
  position:relative;
}
.content-img-sec .sec-eyebrow,
.content-img-sec .sec-title,
.adipose-img-sec .sec-eyebrow,
.adipose-img-sec .sec-title{
  position:relative;z-index:1;
}
.content-img-list,
.adipose-img-list{
  display:flex;flex-direction:column;gap:40px;
  max-width:960px;margin:48px auto 0;
}
/* 機器画像など小さめの図を横並びにしたい時用 */
.content-img-list.is-grid-2{
  display:grid;grid-template-columns:1fr 1fr;gap:32px;
  /* 機器画像が大きく見え過ぎないよう全体幅も制限 */
  max-width:780px;margin-left:auto;margin-right:auto;
}
.content-img-list.is-grid-2 .content-img{
  /* 個別カードの最大幅 ＋ 中央寄せ */
  max-width:340px;margin:0 auto;
}
/* 縦長／正方形など異なる比率の画像でも左右の高さを揃える */
.content-img-list.is-grid-2 .content-img img{
  width:100%;height:280px;
  object-fit:contain;
  padding:14px;background:#fff;box-sizing:border-box;
}
.content-img-list.is-grid-3{
  display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;
}
/* 1項目のみの場合は中央寄せにする(/eye/ など) */
.content-img-list.is-grid-2 > .content-img:only-child,
.content-img-list.is-grid-3 > .content-img:only-child{
  grid-column:1 / -1;
  justify-self:center;
}
.content-img,
.adipose-img{
  margin:0;
  background:#fff;
  border:.5px solid var(--gold-light);
  box-shadow:0 6px 24px rgba(48,44,40,.06);
  overflow:hidden;
}
.content-img img,
.adipose-img img{
  width:100%;height:auto;display:block;
}
.content-img figcaption{
  padding:12px 16px;font-size:13px;color:var(--mid);
  letter-spacing:.06em;text-align:center;
  background:var(--off-white);border-top:.5px solid var(--gold-light);
}
/* 縦長(資格証など)の画像を中央寄せで幅制限 */
.content-img.is-narrow{max-width:420px;margin-left:auto;margin-right:auto}

/* 脂肪幹細胞ページ：図解をテキスト化したセクションの汎用スタイル */
.adipose-tx-sec{
  background:var(--off-white);padding:76px 48px;
}
.adipose-tx-sec.is-cream{background:var(--cream-bg)}
.adipose-tx-sec .sec-eyebrow,
.adipose-tx-sec .sec-title{text-align:center}
.adipose-tx-sec h3{
  font-family:var(--ja);font-size:20px;font-weight:400;
  color:var(--charcoal);letter-spacing:.06em;
  margin:48px auto 14px;max-width:960px;
  padding-left:14px;border-left:3px solid var(--gold);
  line-height:1.6;
}
.adipose-tx-sec p{
  font-size:15.5px;color:var(--mid);line-height:1.95;
  max-width:960px;margin:0 auto 14px;
}
.adipose-tx-sec p.note{font-size:13px;color:var(--light);margin-top:8px}
/* データ参考表：ミニマル＆エレガント（料金表とは別系統） */
.adipose-tx-sec .wp-block-table{max-width:440px;margin:24px auto 28px}
.adipose-tx-sec .wp-block-table table{
  width:100%;border-collapse:collapse;
  background:transparent;border:none;
}
.adipose-tx-sec .wp-block-table thead tr{
  border-bottom:.5px solid var(--gold);
}
.adipose-tx-sec .wp-block-table th{
  padding:10px 16px;
  background:transparent;
  font-family:var(--ja);font-weight:400;
  font-size:13px;letter-spacing:.14em;
  color:var(--gold);
  text-align:center;border:none;
}
.adipose-tx-sec .wp-block-table td{
  padding:14px 16px;
  border:none;border-bottom:.5px solid var(--gold-light);
  background:transparent;
  font-family:var(--ja);font-size:16px;
  color:var(--charcoal);letter-spacing:.05em;
  text-align:center;
}
.adipose-tx-sec .wp-block-table tbody tr:last-child td{border-bottom:none}
/* 2カラム特性カード（ホーミング・パラクライン） */
.adipose-feat-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:24px;
  max-width:960px;margin:24px auto 0;
}
.adipose-feat-grid > div{
  background:#fff;border:.5px solid var(--gold-light);
  padding:28px 28px 24px;
}
.adipose-feat-grid h4{
  font-family:var(--ja);font-size:17px;font-weight:400;
  color:var(--gold-dark);margin-bottom:10px;letter-spacing:.05em;
}
.adipose-feat-grid p{font-size:14.5px;color:var(--mid);line-height:1.95;margin:0}
/* 3カラム × 2行の特徴カード（CPC 6つの特徴） */
.adipose-feat-grid-6{
  display:grid;grid-template-columns:repeat(3,1fr);gap:16px;
  max-width:1020px;margin:24px auto 0;
}
.adipose-feat-grid-6 > div{
  background:#fff;border:.5px solid var(--gold-light);
  padding:24px 22px;position:relative;
}
.adipose-feat-grid-6 .num{
  font-family:var(--en);font-size:32px;font-weight:300;font-style:italic;
  color:var(--gold);line-height:1;display:block;margin-bottom:8px;
}
.adipose-feat-grid-6 h4{
  font-family:var(--ja);font-size:15.5px;font-weight:500;
  color:var(--charcoal);margin-bottom:8px;letter-spacing:.04em;line-height:1.55;
}
.adipose-feat-grid-6 p{font-size:13.5px;color:var(--mid);line-height:1.85;margin:0}
@media (max-width:768px){
  .adipose-tx-sec{padding:48px 20px}
  .adipose-tx-sec h3{font-size:17px;margin-top:36px}
  .adipose-feat-grid{grid-template-columns:1fr;gap:14px}
  .adipose-feat-grid-6{grid-template-columns:1fr;gap:12px}
}
/* 背景色バリエーション（区切りを出したい時） */
.content-img-sec.is-cream,
.adipose-cpc-sec{background:var(--cream-bg)}
@media (max-width:768px){
  .content-img-sec,
  .adipose-img-sec{padding:48px 20px}
  .content-img-list,
  .adipose-img-list{gap:24px;margin-top:28px}
  .content-img-list.is-grid-2,
  .content-img-list.is-grid-3{grid-template-columns:1fr;gap:20px}
}

/* ============================================================
   脂肪幹細胞ページ「体内での働き（#asc-action）」
   インライン style の上書き：上余白を詰めつつ、レスポンシブ対応
============================================================ */
/* 上のセクション（培養加工施設）に既にパディングがあるため、ここは上を詰める */
#asc-action{padding:48px 48px !important}
/* タブレット域：3カラム→2カラムへ */
@media (max-width:1080px){
  #asc-action{padding:44px 32px !important}
  #asc-action .st-grid{grid-template-columns:repeat(2,1fr) !important}
}
/* モバイル域：1カラムに */
@media (max-width:768px){
  #asc-action{padding:36px 20px !important}
  #asc-action .st-grid{grid-template-columns:1fr !important}
  #asc-action .types-intro{margin:14px auto 22px !important;font-size:14.5px !important}
  #asc-action .st-item{padding:24px 18px !important}
}

/* COMPARISON */
.compare-sec{background:var(--gold-pale);padding:72px 48px}
.compare-tbl{
  width:100%;border-collapse:collapse;
  margin-top:8px;border:.5px solid var(--border);
}
.compare-tbl th{
  background:var(--charcoal);color:rgba(255,255,255,.84);
  padding:13px 18px;font-size:13px;letter-spacing:.1em;
  font-weight:400;text-align:left;border:.5px solid rgba(255,255,255,.1);
}
.compare-tbl th.hl{background:var(--gold);color:white}
.compare-tbl td{
  padding:13px 18px;font-size:15px;color:var(--mid);
  border:.5px solid var(--border);line-height:1.72;background:var(--off-white);
}
/* hl強調は背景色ではなく文字スタイルで（テーブル背景がまだらに見える問題を解消） */
.compare-tbl td.hl{
  background:var(--off-white);
  color:var(--gold-dark);
  font-weight:500;
  letter-spacing:.02em;
}
.chk{color:var(--gold-dark)}
.crs{color:#C49A8A}

/* REGEN FLOW */
.rflo-sec{background:var(--off-white);padding:72px 48px}
.rflo-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:1px;background:var(--border);border:.5px solid var(--border);
}
.rfs{background:var(--off-white);padding:26px 22px}
.rfs-hdr{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.rfs-num{
  font-family:var(--en);font-size:32px;font-weight:300;
  color:var(--gold-light);line-height:1;
}
.rfs-title{
  font-family:var(--ja);font-size:17px;font-weight:400;
  color:var(--charcoal);letter-spacing:.05em;
}
.rfs-desc{font-size:14.5px;color:var(--mid);line-height:1.88}
.rfs-note{font-size:13px;color:var(--gold);margin-top:7px;letter-spacing:.04em}

/* ============================================================
   PRP治療プロセス（しわ治療ページ内・6ステップ）
============================================================ */
.proc-sec{padding:64px 48px;background:var(--off-white);border-top:.5px solid var(--border)}
.proc-head{max-width:1100px;margin:0 auto 32px}
.proc-grid{
  max-width:1100px;margin:0 auto;
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.proc-step{
  display:flex;flex-direction:column;align-items:center;text-align:center;
}
.wp-block-image.proc-step-img{margin:0 0 14px;width:100%}
.proc-step-img img{
  width:100%;height:auto;display:block;
  background:var(--gold-pale);
  border:.5px solid var(--border);
}
.proc-step-cap{
  font-family:var(--ja);font-size:14.5px;font-weight:400;
  color:var(--charcoal);letter-spacing:.04em;line-height:1.6;
}
@media (max-width:768px){
  .proc-sec{padding:36px 16px}
  .proc-grid{grid-template-columns:repeat(2,1fr);gap:16px}
  .proc-step-cap{font-size:12.5px}
}

/* ============================================================
   ヒアルロン酸製剤紹介（しわ治療ページ内）
============================================================ */
.hap-sec{padding:64px 48px;background:var(--cream-bg)}
.hap-head{max-width:1100px;margin:0 auto 32px}
.hap-grid{
  max-width:1100px;margin:0 auto;
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:36px;
}
.hap-card{
  background:var(--off-white);padding:32px 28px;
  border:.5px solid var(--border);
}
.wp-block-image.hap-card-img{margin:0 auto 18px;text-align:center}
.hap-card-img img{max-width:100%;height:auto;display:inline-block}
.hap-card h3{
  font-family:var(--ja);font-size:18px;font-weight:400;
  color:var(--charcoal);margin-bottom:10px;letter-spacing:.05em;
}
.hap-card p{font-size:14.5px;color:var(--mid);line-height:1.95}
@media (max-width:768px){
  .hap-sec{padding:36px 16px}
  .hap-grid{grid-template-columns:1fr;gap:20px}
  .hap-card{padding:24px 20px}
}

/* DOC COMMENT */
.dc-sec{
  background:var(--gold-pale);padding:56px 48px;
  display:grid;
  /* 中央寄せの 2カラム（180px 写真 + 約 784px 本文 = 約 1000px に収める） */
  grid-template-columns:180px minmax(auto,784px);
  gap:36px;align-items:center;
  justify-content:center;
  border-top:.5px solid var(--gold-light);
}
.dc-photo{
  background:linear-gradient(148deg, #D4C3B0, #BFAA98);
  height:200px;
  display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;
  overflow:hidden;
}
/* wp:image ブロック化に伴うfigureのデフォルトマージンを打ち消す */
.wp-block-image.dc-photo{margin:0}
.dc-photo img{width:100%;height:100%;object-fit:cover;object-position:center 20%}
.dc-photo p{font-size:11px;letter-spacing:.14em;color:rgba(48,44,40,.32)}
.dc-eyebrow{
  font-family:var(--en);font-style:italic;
  font-size:12px;letter-spacing:.3em;color:var(--gold);margin-bottom:5px;
}
.dc-quote{
  font-family:var(--ja);font-size:17px;font-weight:300;
  color:var(--charcoal);line-height:1.92;letter-spacing:.04em;margin-bottom:14px;
}
.dc-quote em{font-style:normal;color:var(--gold-dark)}
.dc-name{font-size:13px;letter-spacing:.1em;color:var(--mid)}

/* REGEN CTA：他ページの CTA セクションと統一したベージュ背景 */
.regen-cta{
  background:var(--gold-pale);padding:56px 48px;
  border-top:.5px solid var(--gold-light);
  text-align:center;position:relative;overflow:hidden;
}
.regen-cta-bg{
  position:absolute;inset:0;opacity:.05;
  background-image:
    linear-gradient(var(--gold) 1px,transparent 1px),
    linear-gradient(90deg,var(--gold) 1px,transparent 1px);
  background-size:48px 48px;
}
.regen-cta h2{
  font-family:var(--ja);font-size:26px;font-weight:300;
  color:var(--charcoal);margin-bottom:9px;
  letter-spacing:.06em;position:relative;z-index:1;
}
.regen-cta p{
  font-size:15px;color:var(--mid);
  margin-bottom:28px;position:relative;z-index:1;line-height:2;
}
.regen-cta-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;position:relative;z-index:1}
.rcta-gold{
  background:var(--charcoal);color:#fff;
  padding:16px 40px;font-size:14px;letter-spacing:.14em;
  border:none;cursor:pointer;transition:opacity .2s;display:inline-block;
}
.rcta-gold:hover{opacity:.85}
.rcta-line{
  background:var(--line-green);color:white;
  padding:16px 30px;font-size:14px;letter-spacing:.14em;border:none;cursor:pointer;
  display:inline-block;
}
.rcta-outline{
  background:transparent;color:var(--charcoal);
  padding:15px 26px;font-size:14px;letter-spacing:.12em;
  border:1px solid var(--charcoal);cursor:pointer;
  transition:background .2s,color .2s;display:inline-block;
}
.rcta-outline:hover{background:var(--charcoal);color:#fff}
.rcta-outline:hover{background:rgba(255,255,255,.95);color:var(--charcoal)}

/* ============================================================
   SCROLL FADE-IN ANIMATION
============================================================ */
.fade-in{
  opacity:0;transform:translateY(18px);
  transition:opacity .6s ease, transform .6s ease;
}
.fade-in.visible{opacity:1;transform:translateY(0)}

/* ============================================================
   WP ADMIN BAR ADJUSTMENT
============================================================ */
.admin-bar .snav{top:32px}
.admin-bar .anav{top:96px}
.admin-bar .sticky-btm{bottom:0}

/* ============================================================
   BLOG / ARCHIVE STYLES
============================================================ */
.blog-sec{background:var(--off-white);padding:72px 48px;min-height:60vh}
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.blog-card{border-bottom:.5px solid var(--border);padding-bottom:18px;display:block;color:inherit}
.blog-card:hover .blog-card-title{color:var(--gold-dark)}
.blog-card-thumb{
  width:100%;aspect-ratio:16/10;background:var(--cream-bg);
  margin-bottom:12px;overflow:hidden;
}
.blog-card-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.blog-card:hover .blog-card-thumb img{transform:scale(1.03)}
.blog-card-date{font-family:var(--en);font-size:13px;letter-spacing:.2em;color:var(--gold);margin-bottom:5px}
.blog-card-cat{
  display:inline-block;font-size:11.5px;letter-spacing:.1em;
  color:var(--gold);border:.5px solid var(--gold-light);
  padding:2px 8px;margin-bottom:8px;
}
.blog-card-title{font-size:16px;color:var(--charcoal);line-height:1.72;transition:color .2s}
.blog-card-excerpt{font-size:13px;color:var(--light);line-height:1.78;margin-top:8px}
.blog-empty{text-align:center;padding:60px 0;color:var(--light);font-size:15px}

/* News filter */
.news-filter{
  background:var(--off-white);
  border-bottom:.5px solid var(--border);
  padding:16px 48px;
  display:flex;flex-wrap:wrap;gap:8px;
}
.news-filter-chip{
  padding:7px 18px;font-size:12.5px;letter-spacing:.08em;
  border:.5px solid var(--border);background:var(--off-white);
  color:var(--mid);transition:all .2s;display:inline-block;
}
.news-filter-chip:hover{border-color:var(--gold);color:var(--gold)}
.news-filter-chip.on{background:var(--charcoal);color:white;border-color:var(--charcoal)}

/* 月別アーカイブ（セレクトボックス） */
.news-archive{
  background:var(--off-white);
  border-bottom:.5px solid var(--border);
  padding:14px 48px;
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
}
.news-archive-label{
  font-size:12.5px;color:var(--mid);letter-spacing:.08em;
}
.news-archive-select{
  font-family:inherit;font-size:13px;color:var(--charcoal);
  padding:7px 32px 7px 14px;
  border:.5px solid var(--border);background:#fff;
  letter-spacing:.04em;cursor:pointer;
  appearance:none;-webkit-appearance:none;-moz-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23C2A074' stroke-width='1.2' fill='none'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;
  min-width:200px;
}
.news-archive-select:hover{border-color:var(--gold)}

.pagination{
  display:flex;justify-content:center;gap:8px;margin-top:48px;
}
.pagination a,.pagination span{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:40px;height:40px;padding:0 12px;
  font-size:13px;letter-spacing:.08em;
  border:.5px solid var(--border);color:var(--mid);
  transition:all .2s;
}
.pagination a:hover{border-color:var(--gold);color:var(--gold)}
.pagination .current{background:var(--charcoal);color:white;border-color:var(--charcoal)}

/* Single post */
.single-article{background:var(--off-white);padding:72px 48px}
.single-content{max-width:var(--wrap-narrow);margin:0 auto}
.single-meta{margin-bottom:32px}
.single-content h1{
  font-family:var(--ja);font-size:28px;font-weight:300;
  letter-spacing:.06em;color:var(--charcoal);line-height:1.6;margin-bottom:18px;
}
.single-content .entry-content{
  font-size:15px;color:var(--mid);line-height:2.2;
}
/* 投稿ページ見出し: 左縦ライン + ドットでメリハリを出すデザイン */
.single-content .entry-content h2{
  font-family:var(--ja);font-size:22px;font-weight:400;
  color:var(--charcoal);margin:48px 0 22px;
  padding:6px 0 14px 18px;line-height:1.55;letter-spacing:.05em;
  border-left:3px solid var(--gold);
  border-bottom:.5px solid var(--gold-light);
  position:relative;
}
.single-content .entry-content h3{
  font-family:var(--ja);font-size:18px;font-weight:500;
  color:var(--charcoal);margin:36px 0 14px;letter-spacing:.05em;
  padding-left:18px;line-height:1.6;position:relative;
}
.single-content .entry-content h3::before{
  content:'';position:absolute;left:0;top:.68em;
  width:8px;height:8px;border-radius:50%;
  background:var(--gold);
}
.single-content .entry-content h4{
  font-family:var(--ja);font-size:16px;font-weight:500;
  color:var(--charcoal);margin:28px 0 12px;letter-spacing:.04em;
  padding-left:14px;border-left:2px solid var(--gold-light);line-height:1.5;
}
.single-content .entry-content p{margin-bottom:18px}
.single-content .entry-content img{margin:24px 0}
.single-content .entry-content ul,.single-content .entry-content ol{
  margin:18px 0;padding-left:24px;
}
.single-content .entry-content li{margin-bottom:8px}
.single-content .entry-content blockquote{
  border-left:2px solid var(--gold);
  padding:14px 18px;background:var(--gold-pale);
  margin:24px 0;
}

/* 404 */
.page-404{
  background:var(--off-white);padding:120px 48px;text-align:center;min-height:60vh;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
}
.page-404 .err-num{
  font-family:var(--en);font-size:120px;font-weight:300;
  color:var(--border);line-height:1;margin-bottom:18px;
}
.page-404 h1{
  font-family:var(--ja);font-size:22px;font-weight:300;
  color:var(--charcoal);margin-bottom:14px;letter-spacing:.07em;
}
.page-404 p{font-size:15px;color:var(--mid);margin-bottom:32px}

/* ============================================================
   DOCTOR PAGE
============================================================ */
.dr-hero{
  background:linear-gradient(148deg, #ECE7DC 0%, #F3EBE0 50%, #E8E0D4 100%);
  padding:0;position:relative;overflow:hidden;
}
.dr-hero::after{
  content:'Doctor';
  position:absolute;right:-10px;bottom:-22px;
  font-family:var(--en);font-size:145px;font-weight:300;
  color:rgba(194,160,116,.066);letter-spacing:-.02em;
  pointer-events:none;white-space:nowrap;
}
.dr-hero-in{
  /* 実写真サイズ 249×325（縦長）に合わせて、写真エリアの横幅を控えめに、
     テキストエリアを広めにとる */
  display:grid;grid-template-columns:320px 1fr;
  max-width:var(--wrap-wide);margin:0 auto;
}
.dr-hero-photo{
  background:linear-gradient(158deg, #D8C8B4 0%, #C8B89A 50%, #BAA890 100%);
  /* 写真の縦横比 249:325 ≒ 0.766 に近づける（320×418 ≒ 同比率）。
     min-height で IE 等でも崩れないようにする */
  min-height:418px;
  display:flex;align-items:center;justify-content:center;
  flex-direction:column;gap:8px;
  position:relative;overflow:hidden;
  /* wp-block-image のデフォルトマージンを打ち消し（医師カードと同じ対応） */
  margin:0;
}
.wp-block-image.dr-hero-photo{margin:0}
.dr-hero-photo img{width:100%;height:100%;object-fit:cover;display:block}
.dr-hero-photo p{font-size:11.5px;color:rgba(48,44,40,.3);letter-spacing:.17em}
.dr-hero-txt{
  padding:64px 56px;display:flex;flex-direction:column;justify-content:center;
  position:relative;z-index:1;
}
.dr-hero-eyebrow{
  font-family:var(--en);font-style:italic;
  font-size:12.5px;letter-spacing:.36em;color:var(--gold);margin-bottom:12px;
}
.dr-hero-name{
  font-family:var(--ja);font-size:34px;font-weight:300;
  letter-spacing:.09em;color:var(--charcoal);
  margin:0 0 4px;line-height:1.5;
}
.dr-hero-name-en{
  font-family:var(--en);font-style:italic;
  font-size:15px;letter-spacing:.2em;color:var(--gold);
  margin-bottom:20px;display:block;
}
.dr-hero-role{
  font-size:15px;color:var(--mid);letter-spacing:.08em;
  margin-bottom:24px;line-height:1.9;
}
.dr-hero-badges{display:flex;flex-wrap:wrap;gap:8px}
.dr-badge{
  display:inline-flex;align-items:center;gap:7px;
  padding:7px 14px;
  background:rgba(254,252,249,.78);
  border:.5px solid var(--border);
  backdrop-filter:blur(4px);
}
.dr-badge-dot{width:4px;height:4px;background:var(--gold);border-radius:50%;flex-shrink:0}
.dr-badge-txt{font-size:12px;letter-spacing:.06em;color:var(--mid)}

/* Doctor message */
.dr-message{
  background:var(--off-white);padding:76px 48px;
}
.dr-message-in{
  max-width:var(--wrap-narrow);margin:0 auto;
}
.dr-msg-eyebrow{
  font-family:var(--en);font-style:italic;
  font-size:12px;letter-spacing:.36em;color:var(--gold);
  margin-bottom:10px;display:block;
}
.dr-msg-title{
  font-family:var(--ja);font-size:26px;font-weight:300;
  letter-spacing:.07em;color:var(--charcoal);line-height:1.6;
  margin-bottom:28px;
}
.dr-msg-body{
  font-size:15px;color:var(--mid);line-height:2.4;
}
.dr-msg-body em{font-style:normal;color:var(--charcoal)}
.dr-msg-body p{margin-bottom:20px}
.dr-msg-sign{
  margin-top:32px;text-align:right;
}
.dr-msg-sign-name{
  font-family:var(--ja);font-size:18px;font-weight:300;
  color:var(--charcoal);letter-spacing:.08em;
}
.dr-msg-sign-en{
  font-family:var(--en);font-style:italic;
  font-size:12px;letter-spacing:.2em;color:var(--gold);
  display:block;margin-top:3px;
}

/* === 院長紹介動画セクション === */
.dr-video{background:var(--off-white);padding:76px 48px}
.dr-video-in{max-width:720px;margin:0 auto;text-align:center}
.dr-video-wrap{
  position:relative;width:100%;
  padding-top:56.25%; /* 16:9 アスペクト比 */
  margin-top:36px;
  background:#000;overflow:hidden;
  border:.5px solid var(--gold-light);
  box-shadow:0 6px 24px rgba(48,44,40,.08);
}
.dr-video-wrap iframe{
  position:absolute;top:0;left:0;
  width:100%;height:100%;border:0;display:block;
}
@media (max-width:768px){
  .dr-video{padding:48px 20px}
  .dr-video-wrap{margin-top:24px}
}

/* Career timeline */
.dr-career{
  background:var(--cream-bg);padding:76px 48px;
}
.dr-career-in{
  max-width:var(--wrap-narrow);margin:0 auto;
}
.dr-timeline{
  margin-top:36px;display:flex;flex-direction:column;gap:0;
  border-left:1px solid var(--gold-light);
  padding-left:32px;
}
.dr-tl-item{
  position:relative;padding-bottom:24px;
}
.dr-tl-item:last-child{padding-bottom:0}
.dr-tl-item::before{
  content:'';position:absolute;left:-37px;top:6px;
  width:9px;height:9px;
  border:.5px solid var(--gold);border-radius:50%;
  background:var(--cream-bg);
}
.dr-tl-year{
  font-family:var(--en);font-size:14px;letter-spacing:.18em;
  color:var(--gold);margin-bottom:3px;display:block;
}
.dr-tl-text{
  font-size:15.5px;color:var(--charcoal);letter-spacing:.04em;line-height:1.8;
}

/* Qualifications grid */
.dr-qual{
  background:var(--off-white);padding:76px 48px;
  border-top:.5px solid var(--border);
}
.dr-qual-in{
  max-width:var(--wrap-narrow);margin:0 auto;
}
.dr-qual-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:1px;background:var(--border);border:.5px solid var(--border);
  margin-top:36px;
}
.dr-qual-item{
  background:var(--off-white);padding:24px 22px;
  display:flex;align-items:flex-start;gap:14px;
}
.dr-qual-ico{
  width:40px;height:40px;flex-shrink:0;
  border:.5px solid var(--gold-light);
  background:rgba(255,255,255,.55);
  display:flex;align-items:center;justify-content:center;
}
.dr-qual-label{
  font-family:var(--en);font-style:italic;
  font-size:11.5px;letter-spacing:.22em;color:var(--gold);
  margin-bottom:3px;display:block;
}
.dr-qual-name{
  font-family:var(--ja);font-size:15px;font-weight:400;
  color:var(--charcoal);letter-spacing:.05em;line-height:1.6;
}
.dr-qual-note{font-size:12px;color:var(--light);margin-top:3px}

/* Philosophy */
.dr-philosophy{
  background:var(--gold-pale);padding:76px 48px;
  border-top:.5px solid var(--gold-light);
}
.dr-philosophy-in{
  max-width:var(--wrap-narrow);margin:0 auto;
}
.dr-philo-grid{
  display:grid;grid-template-columns:1fr 1fr 1fr;
  gap:1px;background:var(--border);border:.5px solid var(--border);
  margin-top:36px;
}
.dr-philo-item{
  background:var(--off-white);padding:32px 24px;text-align:center;
}
.dr-philo-num{
  font-family:var(--en);font-style:italic;font-size:12px;
  letter-spacing:.3em;color:var(--gold);margin-bottom:10px;
}
.dr-philo-title{
  font-family:var(--ja);font-size:17px;font-weight:400;
  color:var(--charcoal);margin-bottom:10px;letter-spacing:.05em;
}
.dr-philo-desc{
  font-size:14.5px;color:var(--light);line-height:1.88;
}

/* Doctor cards (multi-doctor) */
.dr-team{background:var(--cream-bg);padding:76px 48px}
.dr-team-grid{
  display:flex;flex-direction:column;
  gap:1px;background:var(--border);border:.5px solid var(--border);
  margin-top:36px;
}
.dr-card{
  background:var(--off-white);
  display:grid;grid-template-columns:240px 1fr;
  min-height:0;
  /* テキスト量が増えても画像サイズが拡大されないよう各セルを上端配置 */
  align-items:start;
  /* wp-block-group のデフォルトマージンを打ち消し */
  margin:0;
}
.dr-card-photo{
  background:linear-gradient(158deg, #D8C8B4 0%, #C8B89A 50%, #BAA890 100%);
  display:flex;align-items:center;justify-content:center;
  flex-direction:column;gap:6px;
  position:relative;overflow:hidden;
  /* テキストが長くなっても画像サイズが変わらないよう高さを固定 */
  width:240px;height:320px;
  /* wp-block-image のデフォルトマージンを打ち消し */
  margin:0;
}
.dr-card-photo img{width:100%;height:100%;object-fit:cover}
/* ブロックエディタの画像未設定時のプレースホルダー */
.dr-card-photo img[src=""],
.dr-card-photo img:not([src]){
  display:none;
}
.dr-card-photo:not(:has(img[src]:not([src=""]))){
  /* 画像がない場合、SVGっぽいプレースホルダーをCSSで擬似表示 */
}
.dr-card-photo::before{
  content:'';
  display:none;
}
/* wp:group/wp:image の余計なクラス対策 */
.wp-block-group.dr-card,
.wp-block-group.dr-card-body{margin:0}
.wp-block-image.dr-card-photo{margin:0}
.dr-card-photo p{font-size:11px;color:rgba(48,44,40,.3);letter-spacing:.14em}
.dr-card-body{padding:32px 28px;display:flex;flex-direction:column}
.dr-card-eyebrow{
  font-family:var(--en);font-style:italic;
  font-size:11.5px;letter-spacing:.22em;color:var(--gold);
  margin-bottom:5px;display:block;
}
.dr-card-name{
  font-family:var(--ja);font-size:22px;font-weight:300;
  letter-spacing:.08em;color:var(--charcoal);margin-bottom:2px;
}
.dr-card-name small{
  font-family:var(--san);font-size:12px;font-weight:400;
  color:var(--light);margin-left:8px;letter-spacing:.04em;
}
.dr-card-role{
  font-size:12px;color:var(--gold);letter-spacing:.08em;
  margin-bottom:14px;
}
.dr-card-msg{
  font-size:15px;color:var(--mid);line-height:1.95;
  margin-bottom:16px;
  padding:14px 18px;background:var(--gold-pale);
  border-left:2px solid var(--gold);
}
.dr-card-spec{margin-bottom:16px}
.dr-card-spec-lbl{
  font-size:11.5px;letter-spacing:.14em;color:var(--gold);
  margin-bottom:7px;display:block;
}
.dr-card-spec-tags{display:flex;gap:6px;flex-wrap:wrap}
.dr-spec-tag{
  padding:4px 12px;font-size:11.5px;letter-spacing:.06em;
  background:var(--off-white);border:.5px solid var(--border);
  color:var(--charcoal);
}
.dr-card-career{margin-bottom:14px}
.dr-card-career-lbl{
  font-size:11.5px;letter-spacing:.14em;color:var(--gold);
  margin-bottom:7px;display:block;
}
.dr-card-career-list{
  display:flex;flex-direction:column;gap:4px;
}
.dr-cl-item{
  display:flex;gap:10px;font-size:14px;line-height:1.7;
}
.dr-cl-year{
  font-family:var(--en);font-size:12px;letter-spacing:.1em;
  color:var(--gold);min-width:40px;flex-shrink:0;padding-top:1px;
}
.dr-cl-text{color:var(--mid)}
.dr-card-quals{
  display:flex;flex-wrap:wrap;gap:5px;margin-top:auto;
  padding-top:14px;border-top:.5px solid var(--border);
}
.dr-qual-tag{
  font-size:12px;letter-spacing:.04em;color:var(--mid);
  padding:3px 10px;border:.5px solid var(--border);
}
.dr-qual-tag.primary{
  color:var(--gold);border-color:var(--gold-light);background:var(--gold-pale);
}

/* Nurse section */
.nurse-sec{background:var(--off-white);padding:76px 48px;border-top:.5px solid var(--border)}
.nurse-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:1px;background:var(--border);border:.5px solid var(--border);
  margin-top:36px;
}
.nurse-card{background:var(--off-white);padding:28px 24px}
.nurse-card-photo{
  width:100%;aspect-ratio:1/1;max-width:180px;margin:0 auto 16px;
  background:linear-gradient(158deg, #D8C8B4, #C8B89A);
  border-radius:50%;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
}
/* ポートレート写真は頭頂部が切れないよう焦点を上寄りに */
.nurse-card-photo img{width:100%;height:100%;object-fit:cover;object-position:center 20%}
.nurse-card-photo p{font-size:11px;color:rgba(48,44,40,.3);letter-spacing:.14em}
.nurse-card-name{
  font-family:var(--ja);font-size:16px;font-weight:400;
  color:var(--charcoal);text-align:center;margin-bottom:3px;letter-spacing:.06em;
}
.nurse-card-name small{
  font-family:var(--san);font-size:12px;font-weight:400;
  color:var(--light);margin-left:5px;
}
.nurse-card-role{
  font-size:12px;color:var(--gold);letter-spacing:.1em;
  text-align:center;margin-bottom:12px;
}
.nurse-card-desc{
  font-size:14.5px;color:var(--mid);line-height:1.88;
}
.nurse-card-quals{
  display:flex;flex-wrap:wrap;gap:4px;margin-top:10px;
}
.nurse-qual{
  font-size:11.5px;padding:2px 8px;letter-spacing:.04em;
  background:var(--gold-pale);color:var(--gold);border:.5px solid var(--gold-light);
}

/* 医師ページ：顧問・特別顧問 / 選ばれる理由 グリッド */
.advisor-grid{
  display:flex;gap:20px;flex-wrap:wrap;margin-top:36px;
}
/* 顧問カード（ブロックパターンで追加可能）：旧インラインstyleの代替 */
.advisor-card{
  flex:1 1 320px;
  background:var(--off-white);
  padding:32px 28px;
  border:.5px solid var(--border);
}
/* 顧問カード写真：丸型ポートレート */
.advisor-card-photo{
  width:120px;aspect-ratio:1/1;margin:0 auto 18px;
  background:linear-gradient(158deg, #D8C8B4, #C8B89A);
  border-radius:50%;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
}
.wp-block-image.advisor-card-photo{margin:0 auto 18px}
/* ポートレート写真は頭頂部が切れないよう焦点を上寄りに */
.advisor-card-photo img{width:100%;height:100%;object-fit:cover;object-position:center 20%;display:block}
.advisor-card-eyebrow{
  font-family:var(--en);font-style:italic;
  font-size:12px;letter-spacing:.22em;color:var(--gold);
  margin-bottom:8px;
}
.advisor-card-name{
  font-family:var(--ja);font-size:20px;font-weight:300;
  letter-spacing:.06em;color:var(--charcoal);
  margin-bottom:4px;
}
.advisor-card-name small{
  font-family:var(--san);font-size:14px;font-weight:400;
  color:var(--light);margin-left:8px;
}
.advisor-card-role{
  font-size:14px;color:var(--gold);letter-spacing:.06em;
  margin-bottom:14px;
}
.advisor-card-desc{
  font-size:15.5px;color:var(--mid);line-height:1.95;
}
.why-us-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:1px;background:var(--border);border:.5px solid var(--border);
  margin-top:36px;
}

/* ============================================================
   RESPONSIVE
============================================================ */
@media (max-width: 1080px) {
  .hero{min-height:640px;padding-bottom:40px}
  .hero-photo{width:44%}
  .hero-fade{width:44%}
  .hero-content{padding:40px;max-width:56%}
  .hero-title{font-size:clamp(28px,3.4vw,42px)}
  .hero-stats{gap:14px}
  .hero-sub br{display:none}
}

/* ヘッダーナビ: 1100px以下でハンバーガーメニューに切替 */
@media (max-width: 1100px) {
  .snav{padding:12px 20px;height:auto}
  .nav-hamburger{display:flex}
  .nav-ul{display:none !important}
  .nav-cta{display:none !important}
  .btn-sp-reserve{display:flex}
}

@media (max-width: 768px) {
  .breadcrumb{padding:10px 20px;font-size:11.5px}

  /* モバイルは画像と本文を縦積みにし、文字が画像に被らないようにする */
  .hero{
    height:auto;min-height:0;
    flex-direction:column;align-items:stretch;justify-content:flex-start;
    padding-bottom:0;
  }
  /* 装飾の巨大背景英字は被りの原因になるので非表示 */
  .hero-bg-text{display:none}
  /* 画像はブロック要素として上部に配置 */
  .hero-photo{
    position:relative;top:auto;right:auto;
    width:100%;height:auto;aspect-ratio:4/5;max-height:62vh;
  }
  /* 画像下端から本文背景へのグラデのみに変更（横方向のフェードは廃止） */
  .hero-fade{
    position:absolute;inset:auto 0 0 0;
    width:100%;height:90px;
    background:linear-gradient(180deg, rgba(254,252,249,0) 0%, var(--off-white) 100%);
  }
  /* 本文は画像の下に独立配置 */
  .hero-content{
    padding:32px 22px 40px;max-width:100%;
  }
  .hero-title{font-size:28px}
  .hero-title .hero-title-line{white-space:normal}
  .hero-badges{margin-bottom:24px;gap:6px;max-width:100%}
  .hero-badges li{font-size:12.5px;padding:9px 14px}
  .hero-actions{margin-bottom:28px}
  .hero-stats{padding-top:20px;gap:14px}
  .hstat-num{font-size:23px}
  .hstat-num-ja{font-size:15px}

  .regen-bar-in{grid-template-columns:1fr}
  .rbar-div{display:none}
  .rbar-item{border-bottom:.5px solid var(--border)}

  .concerns-sec{padding:40px 0}
  .concerns-header{padding:0 16px 14px}
  /* スマホは 3列→2列に変更してカード内に余裕を持たせる */
  .con-grid{grid-template-columns:repeat(2,1fr);margin:0 16px}
  .con-grid.con-grid-2{grid-template-columns:repeat(2,1fr);margin:0 16px}
  .con-grid.con-grid-3{grid-template-columns:repeat(2,1fr);margin:0 16px}
  .con-grid.con-grid-4{grid-template-columns:repeat(2,1fr);margin:0 16px}
  .con-grid.con-grid-7{grid-template-columns:repeat(2,1fr);margin:0 16px}
  /* モバイル時：2カラムなので偶数番目(2n)の右罫線を消す */
  .con-grid > .con-item:nth-child(2n){border-right:0}
  /* 折り返し時の行間に横罫線を引く（最終行は除く） */
  .con-grid.con-grid-3 > .con-item:nth-child(-n+2){border-bottom:.5px solid #A89678}
  .con-grid.con-grid-4 > .con-item:nth-child(-n+2){border-bottom:.5px solid #A89678}
  .con-grid.con-grid-7 > .con-item:nth-child(-n+6){border-bottom:.5px solid #A89678}
  /* 項目数が奇数で最後の1個が単独行になる場合、横長カードにして空白セルを作らない */
  .con-grid > .con-item:nth-child(odd):last-child{
    grid-column:1 / -1;
    border-right:0;
  }
  /* カードの内側を広げて視認性UP */
  .con-item{padding:22px 14px 20px}
  .con-name{font-size:14px;margin-top:6px}
  .con-desc{font-size:11.5px;margin-top:4px;line-height:1.7}
  .concerns-sec-sub{padding-top:18px}

  .search-sec{padding:24px 20px}

  .treatments-sec{padding:28px 20px}
  .tc-grid{grid-template-columns:1fr}

  .ba-sec{padding:36px 16px}
  .ba-grid{grid-template-columns:1fr}
  /* スライダー：モバイルでは1枚ずつ表示・矢印は内側に */
  .ba-slider{padding:0 32px}
  .ba-slide{flex:0 0 100%;margin-right:0}
  .ba-arrow{width:30px;height:30px}
  .ba-dots{margin-top:18px}
  /* sec-headの「すべて見る」が改行されないように調整 */
  .ba-sec .sec-head{flex-direction:column;align-items:flex-start;gap:8px}
  .ba-sec .see-all{align-self:flex-end}

  /* 院長紹介セクション：他セクションと padding を揃える（既定 76px 66px のままだと左右余白が大きすぎ） */
  .doctor-sec{padding:48px 20px}
  .doctor-in{grid-template-columns:1fr}
  /* スマホ：院長写真は中央寄せ、医師カードよりやや大きめ */
  .doc-photo{
    min-height:0;width:100%;max-width:300px;height:auto;aspect-ratio:3/4;
    margin:0 auto;justify-self:center;
  }
  .doc-txt{padding:28px 20px}

  .shop-banner-sec{padding:0 20px 40px}
  .shop-banner{padding:32px 24px;gap:24px;flex-direction:column;align-items:flex-start}
  .shop-banner-title{font-size:21px}
  .shop-banner-desc{font-size:15px;line-height:1.85}
  .shop-banner-btn{padding:14px 24px;font-size:14px}

  .axis-nav-sec{padding:36px 20px}
  .axis-grid{grid-template-columns:1fr;gap:14px}
  .axis-card{padding:30px 22px}
  .axis-title{font-size:18px}
  .axis-desc{font-size:14.5px;line-height:1.85}

  .regen-feature-sec{padding:48px 20px 40px}
  .regen-feature-bg-text{font-size:64px;top:18px;right:-10px}
  .regen-feature-title{font-size:24px;line-height:1.55}
  /* スマホでは「肌そのものを変える、」と「4つの再生医療」を改行
     em は inline-block にして背景ハイライトの幅を文字幅に合わせる */
  .regen-feature-title > span{display:block}
  .regen-feature-title > em{display:inline-block}
  .regen-feature-lead{font-size:15px;line-height:1.95;text-align:left}
  .regen-feature-meta{flex-direction:column;gap:10px;align-items:flex-start;text-align:left}
  .regen-feature-meta-item{font-size:13px}
  .regen-feature-foot{margin-top:28px}

  .news-tabs{flex-wrap:wrap;gap:2px}
  .news-tab{padding:10px 14px;font-size:13px}

  .access-cta{flex-direction:column}
  .access-cta a{width:100%;text-align:center}

  .strengths-sec{padding:28px 20px}
  .st-grid{grid-template-columns:1fr 1fr;margin-top:24px}
  /* インラインstyleで4カラム固定のPRP「選ばれる理由」もスマホでは2カラムに上書き */
  .st-grid.types-cols[style]{grid-template-columns:1fr 1fr !important}
  /* モバイルではst-itemのpaddingを縮小して文字詰まりを防ぐ */
  .st-item{padding:22px 14px}
  .st-title{font-size:15.5px}
  .st-desc{font-size:14px;line-height:1.8}

  .news-sec{padding:28px 20px}
  .news-grid{grid-template-columns:1fr}

  .access-sec{grid-template-columns:1fr;padding:28px 20px;gap:28px}

  .cta-bar{padding:18px 20px;flex-direction:column;text-align:center}

  .site-footer{padding:28px 20px 18px}
  .ft-in{flex-direction:column;gap:24px}
  /* スマホ：3カテゴリを2列で並べて縦の長さを抑える */
  .ft-links{
    display:flex;flex-direction:row;flex-wrap:wrap;
    gap:18px 16px;
  }
  .ft-col{
    flex:0 0 calc(50% - 8px);   /* 2列：gapの半分を引いた幅 */
    min-width:0;                 /* 長文リンクの折り返し対策 */
  }
  .ft-col h4{margin-bottom:8px}
  .ft-col ul{gap:5px}            /* リンク間も少し詰める */
  .ft-col a{font-size:13px}      /* 2列分の幅で収まりやすく */

  .anav{padding:0 12px;top:56px}
  .admin-bar .anav{top:88px}

  /* スマホ時：追従ボタンを横長に整える */
  .sticky-btm{padding:8px 10px}        /* 親パディングを縮めてボタン領域を拡大 */
  .sticky-btm p{display:none}
  .sticky-btns{gap:6px;width:100%}     /* ボタン群を横幅100%に */
  .sb{
    padding:12px 6px;                  /* 縦は確保・横は詰めて横長シルエットに */
    flex:1;text-align:center;
    font-size:12px;letter-spacing:.04em;
    white-space:nowrap;                /* テキストの改行を防止 */
  }

  /* Sub-page responsive */
  .page-hero-light{padding:40px 20px}
  .ph-title{font-size:28px}

  .types-sec{padding:36px 20px}
  .types-grid{grid-template-columns:1fr;gap:14px}
  /* スマホは縦並び：アイコンを上部の帯にし、 文字情報はその下にまとめる */
  .type-card{
    grid-template-columns:1fr;
    gap:0;
    padding:0;
  }
  /* 縦幅圧縮: 画像エリア高さを縮小、各余白・行間も詰める */
  .type-img{
    width:100%;height:78px;
    padding-top:0;
    align-items:center;
  }
  .type-img svg{width:30px;height:30px}
  .type-img-lbl{
    font-size:10.5px;padding:4px 10px;max-height:26px;line-height:1.3;
  }
  .type-info{padding:16px 20px 18px}
  .type-info h3{font-size:17px;line-height:1.45;margin-bottom:2px}
  .type-en{font-size:12px;letter-spacing:.18em;margin-bottom:6px}
  .type-info p{font-size:14px;line-height:1.75}
  .type-tags{margin-top:9px;gap:5px}
  .type-tags::before{font-size:10px}
  .type-tag{font-size:10px;padding:2.5px 7px}

  .shimi-tx{padding:36px 20px}
  /* スマホ：治療カードのヘッダーを縦組みにし、バッジを別行に配置（タイトルが詰まらないよう余白を確保） */
  .tc-header{
    padding:18px 20px;flex-direction:column;
    align-items:flex-start;gap:10px;
  }
  .tc-hdr-l{gap:14px;width:100%}
  .tc-hnum{font-size:26px;flex-shrink:0}
  .tc-htitle h3{font-size:16px;line-height:1.5;margin-bottom:2px}
  .tc-hen{font-size:11.5px;line-height:1.5;display:inline-block}
  .badge-kan,.badge-pop{
    white-space:nowrap;font-size:11px;padding:3px 9px;align-self:flex-start;
  }
  .tc-body-grid{grid-template-columns:1fr;gap:18px;padding:0 20px 22px}

  .flow-sec{padding:36px 20px}
  /* align-items:stretchで各ステップを横幅一杯に揃え、数字の位置を完全に画面中央に固定 */
  .flow-steps{flex-direction:column;gap:24px;align-items:stretch}
  .flow-step::after{display:none !important}
  /* スマホ時：ステップを画面幅いっぱいに広げ、数字・タイトルは中央、説明文は左寄せで読みやすく */
  .flow-step{width:100%;padding:0;text-align:center}
  .fstep-circle{margin-left:auto;margin-right:auto}
  .fstep-title{margin-bottom:8px;text-align:center}
  .fstep-desc{text-align:left;font-size:14px;line-height:1.75}

  .se-sec{padding:36px 20px}
  .se-grid{grid-template-columns:1fr 1fr}

  .faq-sec{padding:36px 20px}
  .cta-sec{padding:36px 20px}
  /* スマホでは3ボタンを縦並び・同サイズに揃える */
  .cta-btns{flex-direction:column;align-items:center;gap:10px}
  .cta-btn-dark,
  .cta-btn-line,
  .cta-btn-tel{
    width:100%;max-width:280px;
    padding:16px 20px;
    text-align:center;
    box-sizing:border-box;
  }

  .phd{padding:50px 20px 42px}
  .phd-title{font-size:28px}
  .certify-row{flex-direction:column}

  .intro-regen{grid-template-columns:1fr;padding:36px 20px}

  .regen-cards-sec{padding:36px 20px}
  .rc{grid-template-columns:48px 1fr}
  .rc-main{padding:24px 18px}
  .rc-actions{justify-content:stretch;margin-top:16px}
  .rc-actions .rc-detail-btn{width:100%}

  .mech-sec{padding:36px 20px}
  .mech-flow{grid-template-columns:1fr 1fr}
  .mstep::after{display:none !important}

  .compare-sec{padding:36px 20px}
  .compare-tbl th,.compare-tbl td{padding:9px 11px;font-size:12.5px}

  .rflo-sec{padding:36px 20px}
  .rflo-grid{grid-template-columns:1fr}

  .dc-sec{grid-template-columns:1fr;padding:36px 20px}
  .dc-photo{height:160px}

  .regen-cta{padding:36px 20px}

  /* Blog responsive */
  .news-filter{padding:12px 20px}
  .blog-sec{padding:36px 20px}
  .blog-grid{grid-template-columns:1fr}
  .single-article{padding:36px 20px}
  .single-content h1{font-size:22px}

  .page-404{padding:60px 20px}
  .page-404 .err-num{font-size:80px}

  /* Doctor page responsive */
  .dr-hero-in{grid-template-columns:1fr}
  /* スマホ：院長画像を医師カードと同サイズに揃え中央寄せ */
  .dr-hero-photo{
    min-height:0;width:100%;max-width:240px;height:auto;aspect-ratio:3/4;max-height:none;
    margin:0 auto;justify-self:center;
  }
  .dr-hero-txt{padding:32px 20px}
  .dr-hero-name{font-size:26px}
  .dr-message{padding:36px 20px}
  .dr-msg-title{font-size:22px}
  .dr-career{padding:36px 20px}
  .dr-qual{padding:36px 20px}
  .dr-qual-grid{grid-template-columns:1fr}
  .dr-philosophy{padding:36px 20px}
  .dr-philo-grid{grid-template-columns:1fr}
  .dr-team{padding:36px 20px}
  .dr-card{grid-template-columns:1fr;padding-top:24px}
  /* スマホ：画像は縦長・中央寄せ。被写体が綺麗に収まるサイズ感 */
  .dr-card-photo{
    width:100%;max-width:240px;height:auto;aspect-ratio:3/4;
    margin:0 auto;justify-self:center;
  }
  .nurse-sec{padding:36px 20px}
  .nurse-grid{grid-template-columns:1fr}
  /* 顧問・特別顧問 / 選ばれる理由 をモバイルで1カラムに */
  /* !important は既挿入パターンのインラインstyle対策 */
  .advisor-grid{gap:12px !important;margin-top:24px !important}
  .advisor-grid > div{flex:1 1 100% !important}
  .why-us-grid{grid-template-columns:1fr !important;margin-top:24px !important}
}

/* タブレット域（769〜1080px）では選ばれる理由を2カラムに */
@media (min-width:769px) and (max-width:1080px){
  .why-us-grid{grid-template-columns:repeat(2,1fr) !important}

  /* ===== トップページ：タブレット域のレイアウト調整 ===== */
  /* 各セクションの左右パディングを統一して縮小 */
  .strengths-sec{padding:60px 32px}
  .regen-feature-sec{padding:64px 32px 56px}
  .treatments-sec{padding:60px 32px}
  .ba-sec{padding:60px 32px}
  .doctor-sec{padding:60px 32px}
  .news-sec{padding:60px 32px}
  .shop-banner-sec{padding:0 32px 56px}
  .access-sec{padding:60px 32px}

  /* お悩みから探す（7カラム→4カラム）→ 4+3で折り返す */
  .con-grid.con-grid-7{grid-template-columns:repeat(4,1fr)}
  /* 4列折り返し時：4n番目（4・8番目）の右罫線を消す */
  .con-grid.con-grid-7 > .con-item:nth-child(4n){border-right:0}
  /* 4列折り返し時：行間（1〜4番目の下）に横罫線 */
  .con-grid.con-grid-7 > .con-item:nth-child(-n+4){border-bottom:.5px solid #A89678}
  /* 7番目(最終項目)は3列目に位置するため、右側の空セルとの境界に罫線を復活させる */
  .con-grid.con-grid-7 > .con-item:last-child{border-right:.5px solid #A89678}
  .concerns-header,.con-grid{max-width:none;padding-left:32px;padding-right:32px}
  .con-grid.con-grid-7{margin-left:32px;margin-right:32px;padding-left:0;padding-right:0}

  /* 再生医療メニュー4治療：2x2に折り返し、ディバイダー線を非表示 */
  .regen-feature-sec .regen-bar-in{grid-template-columns:1fr 1fr}
  .regen-feature-sec .rbar-div{display:none}
  .regen-feature-sec .rbar-item{border-bottom:.5px solid var(--border)}
  .regen-feature-sec .rbar-item:nth-last-child(-n+2){border-bottom:none}

  /* 選ばれる理由：4カラム→2x2 */
  .st-grid{grid-template-columns:repeat(2,1fr)}

  /* お知らせ・医療コラム：3カラム→2カラム */
  .news-grid{grid-template-columns:repeat(2,1fr)}

  /* 治療メニュー：3カラム→2カラム */
  .tc-grid{grid-template-columns:repeat(2,1fr)}

  /* Before & After スライダー：パディング縮小 */
  .ba-slider{padding:0 40px}

  /* ヒーロー：1080px以下の既存ルール（.hero-content max-width:56%）が崩れるのでこの帯で再調整 */
  .hero-content{padding:36px;max-width:58%}

  /* ドクターズコスメバナー：縦並びにしない（横幅は確保できる） */
  .shop-banner{gap:24px}
  .shop-banner-text{min-width:0}
}

/* ============================================================
   症例写真（Before & After） 詳細・一覧ページ
============================================================ */
/* 画像エリアのリンクは色・装飾をリセット */
.ba-imgs-link{display:block;text-decoration:none;color:inherit}
/* aタグになったba-chipのリンク色をリセット */
a.ba-chip{text-decoration:none}

/* ===== 医療広告GL: 限定解除要件アコーディオン ===== */
.ba-disclosure{
  margin-top:14px;
  border-top:1px solid rgba(255,255,255,.12);
  padding-top:12px;
}
.ba-disclosure summary{
  list-style:none;
  cursor:pointer;
  font-size:13px;
  letter-spacing:.08em;
  color:var(--gold);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:6px 0;
  outline:none;
}
/* デフォルトの三角マーカーを非表示（Chrome/Safari） */
.ba-disclosure summary::-webkit-details-marker{display:none}
.ba-disclosure summary::after{
  content:"+";
  font-size:18px;
  font-weight:300;
  margin-left:8px;
}
.ba-disclosure[open] summary::after{content:"−"}
.ba-disclosure-list{
  margin:10px 0 0;
  padding:14px 16px;
  background:rgba(255,255,255,.04);
  border:.5px solid rgba(255,255,255,.12);
  font-size:13px;
  line-height:1.75;
  color:rgba(255,255,255,.82);
}
.ba-disclosure-list dt{
  font-weight:500;
  color:var(--gold);
  margin-top:10px;
  font-size:12.5px;
  letter-spacing:.06em;
}
.ba-disclosure-list dt:first-child{margin-top:0}
.ba-disclosure-list dd{margin:4px 0 0;padding:0}
/* 「症例詳細を見る」リンク */
.ba-more{
  display:inline-block;
  margin-top:14px;
  font-size:13px;
  letter-spacing:.08em;
  color:var(--gold);
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:border-color .2s;
}
.ba-more:hover{border-bottom-color:var(--gold)}

/* ===== アーカイブ（一覧） ===== */
.ba-archive{padding:64px 66px;background:var(--off-white)}
.ba-filter-archive{justify-content:center;margin:0 auto 36px}
.ba-filter-archive .ba-chip{
  border-color:rgba(48,44,40,.15);
  color:var(--mid);
}
.ba-filter-archive .ba-chip:hover,
.ba-filter-archive .ba-chip.on{
  border-color:var(--gold);color:var(--gold);
}
/* 一覧ページはライト背景なのでカードもライト用に */
.ba-archive .ba-grid{grid-template-columns:repeat(3,1fr);gap:24px}
.ba-archive .ba-card{
  background:#fff;
  border:.5px solid rgba(48,44,40,.08);
}
.ba-archive .ba-card:hover{
  border-color:rgba(194,160,116,.4);
  box-shadow:0 4px 20px rgba(48,44,40,.08);
}
.ba-archive .ba-detail{color:var(--mid)}
.ba-archive .ba-imgs{background:rgba(48,44,40,.06)}
.ba-archive .ba-img{background:rgba(48,44,40,.04)}
/* アーカイブ（ライト背景）用のアコーディオン色 */
.ba-archive .ba-disclosure{border-top-color:rgba(48,44,40,.1)}
.ba-archive .ba-disclosure-list{
  background:var(--cream-bg);
  border-color:rgba(48,44,40,.08);
  color:var(--charcoal);
}
.ba-archive .ba-lbl{background:rgba(48,44,40,.7);color:#fff}

/* ページネーション */
.ba-pagination{margin:48px 0 0;text-align:center}
.ba-pagination .nav-links{display:inline-flex;gap:8px;flex-wrap:wrap;justify-content:center}
.ba-pagination .page-numbers{
  display:inline-block;padding:8px 14px;
  border:.5px solid rgba(48,44,40,.15);color:var(--charcoal);
  text-decoration:none;font-size:13px;letter-spacing:.04em;
  transition:all .2s;
}
.ba-pagination .page-numbers:hover,
.ba-pagination .page-numbers.current{
  border-color:var(--gold);color:var(--gold);
}

/* 一覧ページ下部の注意書き */
.ba-archive-note{
  margin:48px auto 0;max-width:880px;padding:20px 24px;
  background:rgba(48,44,40,.04);border-left:3px solid var(--gold);
  font-size:14px;line-height:1.8;color:var(--mid);
}
.ba-archive .ba-empty{text-align:center;padding:60px 0;color:var(--mid)}

/* ===== 詳細ページ ===== */
.case-single{background:var(--off-white);padding:60px 24px}
.case-single-inner{max-width:960px;margin:0 auto}
.case-single-head{text-align:center;margin-bottom:40px}
.case-single-head .sec-eyebrow{color:var(--gold);display:block;margin-bottom:8px}
.case-single-title{
  font-family:var(--ja);font-weight:300;
  font-size:30px;letter-spacing:.04em;color:var(--charcoal);
  margin:0 0 12px;
}
.case-single-treatment{
  font-size:15px;letter-spacing:.08em;color:var(--gold);
  margin:0 0 14px;
}
.case-single-cats{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
.case-single-cats .ba-chip{
  border-color:rgba(48,44,40,.15);color:var(--mid);
}

/* Before / After 大きい画像 */
.case-single-imgs{
  display:flex;gap:16px;margin:0 0 24px;
}
.case-single-img{
  flex:1 1 50%;margin:0;position:relative;
  background:rgba(48,44,40,.04);
  border:.5px solid rgba(48,44,40,.08);
  min-height:360px;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
}
.case-single-img .ba-lbl{
  position:absolute;top:12px;left:12px;
  font-size:12px;letter-spacing:.16em;
  background:rgba(48,44,40,.85);color:#fff;padding:4px 10px;
  z-index:2;
}
.case-single-img img.case-photo{
  width:100%;height:100%;object-fit:cover;display:block;
}
.case-photo-empty{
  color:var(--mid);font-size:13px;
}

.case-single-detail{
  text-align:center;color:var(--mid);font-size:15px;
  margin:0 0 32px;
}

.case-single-body{
  margin:0 0 40px;line-height:1.9;color:var(--charcoal);
}
.case-single-body p{margin:0 0 1em}

/* 重要事項ボックス（限定解除要件） */
.case-disclosure.important-notice{
  background:#fff;border:.5px solid var(--gold);
  padding:28px 32px;margin:0 0 40px;
}
.case-disclosure h2{
  font-family:var(--ja);font-weight:400;
  font-size:18px;letter-spacing:.06em;color:var(--charcoal);
  margin:0 0 18px;padding:0 0 10px;
  border-bottom:.5px solid rgba(48,44,40,.12);
}
.case-disclosure dl{margin:0;font-size:15px;line-height:1.8}
.case-disclosure dt{
  font-weight:500;color:var(--gold);
  margin:14px 0 4px;letter-spacing:.04em;
}
.case-disclosure dt:first-child{margin-top:0}
.case-disclosure dd{
  margin:0;color:var(--charcoal);
  padding-left:0;
}
.case-disclosure-note{
  margin:18px 0 0;padding:12px 0 0;
  border-top:.5px dashed rgba(48,44,40,.12);
  font-size:12px;color:var(--mid);
}

.case-single-back{text-align:center;margin:24px 0 0}
.case-single-back .see-all{color:var(--gold);text-decoration:none;font-size:13px;letter-spacing:.08em}

/* ===== 症例詳細ページ：関連治療ページボタン ===== */
.case-related{
  margin:28px 0 0;
  padding:28px 24px;
  background:var(--cream-bg);
  border-top:.5px solid rgba(194,160,116,.25);
}
.case-related-title{
  font-family:var(--ja);
  font-size:18px;font-weight:500;
  text-align:center;color:var(--charcoal);
  letter-spacing:.08em;margin:0 0 20px;
}
.case-related-btns{
  display:flex;gap:14px;
  justify-content:center;flex-wrap:wrap;
}
.case-related-btn{
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  min-width:240px;padding:18px 28px;
  background:#fff;border:1px solid var(--gold);
  color:var(--charcoal);text-decoration:none;
  transition:background .2s,color .2s;
  position:relative;
}
.case-related-btn::after{
  content:'\2192';
  position:absolute;right:16px;top:50%;
  transform:translateY(-50%);
  color:var(--gold);font-size:14px;
  transition:right .2s,color .2s;
}
.case-related-btn:hover{
  background:var(--gold);color:#fff;
}
.case-related-btn:hover::after{
  color:#fff;right:12px;
}
.case-related-btn-text{
  font-size:15px;font-weight:500;
  letter-spacing:.04em;line-height:1.4;
}
.case-related-btn-sub{
  font-size:11px;color:var(--mid);
  letter-spacing:.1em;margin-top:4px;
}
.case-related-btn:hover .case-related-btn-sub{color:rgba(255,255,255,.85)}

/* ============================================================
   診療日カレンダーページ
   ※カレンダー本体はテーマ自前実装のショートコード [mskin_calendar] で
     自動表示。管理画面 → 設定 → 診療日カレンダーで休診日を設定。
============================================================ */

.mskin-cal-wrap{margin:36px auto 0;max-width:var(--wrap-wide)}

/* 本日のセル */
.cal-table .cal-today{
  position:relative;
  color:var(--gold-dark);font-weight:500;
}
.cal-table .cal-today::before{
  content:'';position:absolute;
  inset:6px;border:.5px solid var(--gold);
  pointer-events:none;
}

/* 診療時間表 */
.cal-hours-table{
  width:100%;max-width:760px;margin:32px auto 16px;
  border-collapse:collapse;
  background:var(--off-white);
  border:.5px solid var(--border);
  font-family:var(--san);
}
.cal-hours-table th,
.cal-hours-table td{
  padding:14px 8px;text-align:center;
  border:.5px solid var(--border);
  font-size:14px;letter-spacing:.06em;
}
.cal-hours-table thead th{
  background:var(--cream-bg);color:var(--charcoal);
  font-weight:500;font-size:13px;letter-spacing:.1em;
}
.cal-hours-table .cal-hours-time{
  background:var(--cream-bg);
  font-family:var(--en);font-size:13.5px;
  letter-spacing:.06em;color:var(--mid);
  white-space:nowrap;
}
.cal-hours-table .cal-sun{color:#C26B6B}
.cal-hours-note{
  text-align:center;
  font-size:13px;color:var(--mid);
  margin-top:6px;letter-spacing:.04em;
}

/* カレンダーセクション */
.cal-sec{
  background:var(--cream-bg);
  padding:72px 48px;
}
.cal-months{
  display:flex;gap:36px;justify-content:center;
  flex-wrap:wrap;margin-top:36px;
}
.cal-month{
  background:var(--off-white);
  border:.5px solid var(--border);
  padding:28px 26px;
  flex:1 1 360px;max-width:480px;
}
.cal-month-title{
  text-align:center;margin-bottom:18px;
  border-bottom:.5px solid var(--gold-light);
  padding-bottom:12px;
}
.cal-month-title .cal-month-en{
  display:block;
  font-family:var(--en);font-style:italic;
  font-size:14px;letter-spacing:.22em;color:var(--gold);
  margin-bottom:2px;
}
.cal-month-title .cal-month-jp{
  display:block;
  font-family:var(--ja);font-size:18px;
  letter-spacing:.08em;color:var(--charcoal);font-weight:400;
}

/* カレンダーテーブル */
.cal-table{
  width:100%;border-collapse:collapse;
  table-layout:fixed;
}
.cal-table th{
  padding:10px 0;font-size:12px;font-weight:500;
  letter-spacing:.08em;color:var(--mid);
  border-bottom:.5px solid var(--border);
}
.cal-table th.cal-sun,
.cal-table td.cal-sun{color:#C26B6B}
.cal-table th.cal-sat,
.cal-table td.cal-sat{color:#7A8BAA}
.cal-table td{
  padding:12px 0;text-align:center;
  font-family:var(--en);font-size:15px;
  color:var(--charcoal);letter-spacing:.04em;
  border-bottom:.5px dashed rgba(48,44,40,.06);
  height:42px;vertical-align:middle;
}
.cal-table .cal-empty{
  color:transparent;background:rgba(48,44,40,.015);
}
/* 臨時開院日（定期休診曜日の例外） */
.cal-table .cal-open{
  color:var(--gold-dark);
  background:rgba(194,160,116,.16);
  position:relative;
  vertical-align:top;
  padding-top:6px;
  padding-bottom:16px;
  font-weight:600;
}
.cal-table .cal-open::after{
  content:'開院';
  position:absolute;
  left:50%;bottom:4px;
  transform:translateX(-50%);
  font-family:var(--ja);font-size:10.5px;font-weight:600;
  color:rgba(154,116,58,.9);
  letter-spacing:0;
}
.cal-legend-exception{background:rgba(194,160,116,.16)}

.cal-table .cal-closed{
  color:#C26B6B;
  background:rgba(194,107,107,.07);
  position:relative;
  /* 数字を上寄せにして、下に「休」マーク用の余白を確保 */
  vertical-align:top;
  padding-top:6px;
  padding-bottom:16px;
}
.cal-table .cal-closed::after{
  content:'休';
  position:absolute;
  left:50%;bottom:4px;
  transform:translateX(-50%);
  font-family:var(--ja);font-size:10px;
  color:rgba(194,107,107,.55);
  letter-spacing:0;
}

/* 凡例 */
.cal-legend{
  display:flex;justify-content:center;gap:24px;
  margin-top:28px;margin-bottom:48px;
  font-size:13px;color:var(--mid);
  letter-spacing:.04em;
}
.cal-legend-item{display:inline-flex;align-items:center;gap:7px}
.cal-legend-mark{
  display:inline-block;width:14px;height:14px;
  border:.5px solid var(--border);
}
.cal-legend-open{background:var(--off-white)}
.cal-legend-closed{background:rgba(194,107,107,.15)}

/* ご案内リスト */
.cal-notes-list{
  max-width:760px;margin:32px auto 0;
  padding-left:20px;
  font-size:15px;line-height:2;color:var(--charcoal);
  letter-spacing:.04em;
}
.cal-notes-list li{margin-bottom:6px}
.cal-notes-list strong{color:var(--gold-dark);font-weight:500}

/* ===== レスポンシブ（〜768px） ===== */
@media (max-width:768px){
  .ba-archive{padding:40px 16px}
  .ba-archive .ba-grid{grid-template-columns:1fr;gap:20px}

  .case-single{padding:32px 16px}
  .case-single-title{font-size:22px}
  .case-single-imgs{flex-direction:column;gap:8px}
  .case-single-img{min-height:280px}
  .case-disclosure.important-notice{padding:20px 18px}
  .case-disclosure h2{font-size:16px}

  .case-related{padding:22px 16px}
  .case-related-title{font-size:16px}
  .case-related-btns{flex-direction:column;gap:10px}
  .case-related-btn{min-width:0;width:100%;padding:16px 40px 16px 20px;align-items:flex-start}
  .case-related-btn-text{font-size:14px}

  /* 診療日カレンダー：スマホ調整 */
  .cal-hours-table{font-size:12px}
  .cal-hours-table th,.cal-hours-table td{padding:10px 4px;font-size:12px}
  .cal-hours-table .cal-hours-time{font-size:11.5px;letter-spacing:.02em}

  .cal-sec{padding:36px 16px}
  .cal-months{gap:24px;margin-top:24px}
  .cal-month{padding:20px 16px;flex:1 1 100%;max-width:none}
  .cal-month-title .cal-month-jp{font-size:16px}
  .cal-table th{padding:8px 0;font-size:11px}
  .cal-table td{padding:10px 0;font-size:14px;height:38px}
  /* モバイルの「休」「開院」マークもセル下部に配置 */
  .cal-table .cal-closed{padding-top:4px;padding-bottom:14px}
  .cal-table .cal-closed::after{font-size:9px;bottom:3px}
  .cal-table .cal-open{padding-top:4px;padding-bottom:14px}
  .cal-table .cal-open::after{font-size:8.5px;bottom:3px}
  .cal-legend{gap:16px;font-size:12px;margin-bottom:32px}
  .cal-notes-list{font-size:14px;padding-left:18px}
}

/* ============================================================
   CONTACT お問い合わせフォーム
============================================================ */
/* 注意書きエリア */
.contact-notice{
  max-width:920px;margin:32px auto 0;
  padding:22px 28px;
  background:#FFF7E8;border-left:3px solid var(--gold);
  font-size:14px;color:var(--charcoal);line-height:1.85;
}
.contact-notice h3{
  font-family:var(--ja);font-size:16px;font-weight:500;
  color:var(--charcoal);margin:0 0 12px;letter-spacing:.05em;
}
.contact-notice ul{margin:0;padding-left:20px}
.contact-notice li{margin-bottom:8px}
.contact-notice li:last-child{margin-bottom:0}
.contact-notice a{color:var(--gold-dark);text-decoration:underline}
.contact-tel-inline{display:inline-block;margin-top:4px;font-size:13.5px;color:var(--mid)}
.contact-tel-inline a{color:var(--gold-dark);text-decoration:none;font-weight:500}

/* フォーム本体セクション */
.contact-sec{background:var(--off-white);padding:64px 48px 72px}
.contact-sec-in{max-width:780px;margin:0 auto}
.contact-form-wrap{margin-top:36px}

/* Contact Form 7 が出力する form 要素のスタイル */
.contact-form-wrap form{margin:0}
.contact-form-wrap p{margin:0 0 22px;font-size:14px;color:var(--charcoal)}
/* 各項目（cf-row）間の余白を確実に確保 */
.contact-form-wrap .cf-row{margin-bottom:24px}
.contact-form-wrap .cf-row:last-child{margin-bottom:0}
/* contact ページの page-hero 説明文を H1 と同じ位置・幅で左寄せに
   （元の .ph-sub の max-width:560px を解除し、サイト標準の 1000px に揃える） */
.ph-sub-left{
  max-width:var(--wrap-wide) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
.contact-form-wrap label{
  display:block;font-size:14px;color:var(--charcoal);
  font-weight:500;margin-bottom:8px;letter-spacing:.04em;
}
/* 必須マーク */
.contact-form-wrap .cf-req{
  display:inline-block;margin-left:8px;
  font-size:11px;letter-spacing:.1em;
  color:#fff;background:#C46A4A;
  padding:2px 8px;font-weight:400;
  vertical-align:middle;
}
.contact-form-wrap .cf-opt{
  display:inline-block;margin-left:8px;
  font-size:11px;letter-spacing:.1em;
  color:var(--mid);background:var(--cream-bg);
  padding:2px 8px;font-weight:400;border:.5px solid var(--border);
  vertical-align:middle;
}
/* 入力欄共通 */
.contact-form-wrap input[type="text"],
.contact-form-wrap input[type="email"],
.contact-form-wrap input[type="tel"],
.contact-form-wrap input[type="number"],
.contact-form-wrap input[type="date"],
.contact-form-wrap input[type="time"],
.contact-form-wrap select,
.contact-form-wrap textarea{
  width:100%;
  padding:12px 14px;
  font-size:15px;
  font-family:var(--san);
  color:var(--charcoal);
  background:#fff;
  border:.5px solid var(--border);
  border-radius:0;
  box-sizing:border-box;
  transition:border-color .2s, box-shadow .2s;
  -webkit-appearance:none;
  appearance:none;
}
.contact-form-wrap input:focus,
.contact-form-wrap select:focus,
.contact-form-wrap textarea:focus{
  outline:none;
  border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(194,160,116,.18);
}
.contact-form-wrap textarea{min-height:140px;line-height:1.7;resize:vertical}
/* 姓・名、メール・確認のように2カラム並べ
   CF7 は自動で<p>と<br>を挿入するため、内側の<p>を flex 化して
   <span>を横並びにする。<br>は非表示。 */
.contact-form-wrap .cf-2col > p{
  display:flex;gap:14px;flex-wrap:wrap;margin:0;
}
.contact-form-wrap .cf-2col br{display:none}
.contact-form-wrap .cf-2col .wpcf7-form-control-wrap{
  flex:1;min-width:140px;
}
/* 希望日（日付+午前午後）も同様の処理 */
.contact-form-wrap .cf-date-row > p{
  display:flex;gap:14px;flex-wrap:wrap;margin:0;
}
.contact-form-wrap .cf-date-row br{display:none}
.contact-form-wrap .cf-date-row .wpcf7-form-control-wrap{
  flex:1;min-width:140px;
}
/* ラジオボタン（性別など） */
.contact-form-wrap .wpcf7-radio,
.contact-form-wrap .wpcf7-checkbox{display:flex;gap:24px;flex-wrap:wrap}
.contact-form-wrap .wpcf7-list-item{margin:0;display:inline-flex;align-items:center;gap:6px}
.contact-form-wrap .wpcf7-list-item input{margin-right:4px;accent-color:var(--gold)}
.contact-form-wrap .wpcf7-list-item-label{font-size:15px;color:var(--charcoal)}

/* セレクトの矢印 */
.contact-form-wrap select{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4l4 4 4-4' stroke='%23C2A074' stroke-width='1.4' fill='none'/></svg>");
  background-repeat:no-repeat;
  background-position:right 14px center;
  background-size:12px;
  padding-right:36px;
}
/* 送信ボタン */
.contact-form-wrap input[type="submit"],
.contact-form-wrap .wpcf7-submit{
  display:inline-block;
  min-width:240px;
  padding:16px 36px;
  margin-top:18px;
  background:var(--charcoal);
  color:#fff;
  font-size:14.5px;
  letter-spacing:.16em;
  font-family:var(--san);
  border:.5px solid var(--charcoal);
  cursor:pointer;
  transition:background .25s,border-color .25s;
  -webkit-appearance:none;
  appearance:none;
}
.contact-form-wrap input[type="submit"]:hover,
.contact-form-wrap .wpcf7-submit:hover{
  background:var(--gold);border-color:var(--gold);
}
/* 送信ボタンエリア中央寄せ */
.contact-form-wrap .cf-submit-wrap{text-align:center;margin-top:32px;position:relative}

/* 必須未入力時の送信ボタン無効化スタイル
   ・JS側で .cf-not-ready クラスを cf-submit-wrap に付与
   ・ボタン自体にも disabled 属性が付く */
.contact-form-wrap .wpcf7-submit:disabled,
.contact-form-wrap .wpcf7-submit[disabled]{
  background:#B8B0A4;
  border-color:#B8B0A4;
  color:#fff;
  cursor:not-allowed;
  opacity:.7;
  pointer-events:auto; /* not-allowed カーソルを表示するため auto */
}
.contact-form-wrap .wpcf7-submit:disabled:hover,
.contact-form-wrap .wpcf7-submit[disabled]:hover{
  background:#B8B0A4;
  border-color:#B8B0A4;
}
/* 未入力時の注意メッセージ（送信ボタン下に表示） */
.contact-form-wrap .cf-submit-wrap.cf-not-ready::after{
  content:"※ 必須項目をすべてご入力ください";
  display:block;
  margin-top:14px;
  font-size:12.5px;
  color:#A88B5C;
  letter-spacing:.05em;
}

/* CF7 バリデーションメッセージ */
.contact-form-wrap .wpcf7-not-valid-tip{
  display:block;margin-top:6px;font-size:12.5px;color:#C46A4A;
}
/* ファイル添付フィールド（CF7 の [file] 用）
   ブラウザ標準UIだと崩れがちなのでラベル風ボタンとして見せる */
.contact-form-wrap input[type="file"]{
  width:100%;
  padding:12px 14px;
  font-size:14px;
  font-family:var(--san);
  color:var(--charcoal);
  background:#fff;
  border:.5px dashed var(--gold);
  cursor:pointer;
  box-sizing:border-box;
}
.contact-form-wrap input[type="file"]::file-selector-button{
  margin-right:14px;padding:8px 16px;
  background:var(--cream-bg);
  border:.5px solid var(--border);
  font-family:var(--san);font-size:13px;
  color:var(--charcoal);cursor:pointer;
  transition:background .2s;
}
.contact-form-wrap input[type="file"]::file-selector-button:hover{
  background:var(--gold-pale);
}
.contact-form-wrap input[type="file"]:focus{
  outline:none;border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(194,160,116,.18);
}
.contact-form-wrap .wpcf7-response-output{
  margin:20px 0 0;padding:14px 18px;
  border:.5px solid var(--border);font-size:14px;
  background:var(--cream-bg);color:var(--charcoal);
}

/* ============================================================
   CONTACT その他のお問い合わせ方法
============================================================ */
.contact-other-sec{background:var(--cream-bg);padding:64px 48px 80px;border-top:.5px solid var(--border)}
.contact-other-in{max-width:920px;margin:0 auto;text-align:center}
.contact-other-grid{
  margin-top:32px;
  display:flex;gap:20px;flex-wrap:wrap;justify-content:center;
}
.contact-other-card{
  flex:1;min-width:240px;max-width:380px;
  padding:28px 24px;
  background:#fff;border:.5px solid var(--gold-light);
  text-align:center;text-decoration:none;color:var(--charcoal);
  transition:transform .25s,box-shadow .25s,border-color .25s;
  display:block;
}
.contact-other-card:hover{
  transform:translateY(-2px);
  box-shadow:0 6px 20px rgba(48,44,40,.08);
  border-color:var(--gold);
}
.contact-other-label{
  display:block;font-family:var(--en);font-style:italic;
  font-size:12px;letter-spacing:.28em;color:var(--gold);
  margin-bottom:10px;
}
.contact-other-num{
  display:block;font-family:var(--ja);font-size:22px;
  color:var(--charcoal);letter-spacing:.04em;margin-bottom:10px;
}
.contact-other-note{
  display:block;font-size:12.5px;color:var(--mid);line-height:1.7;
}
.contact-other-line{background:linear-gradient(135deg,#fff 0%, #F0FAEB 100%);border-color:#A8D9A0}
.contact-other-line:hover{border-color:var(--line-green)}
.contact-other-line .contact-other-label{color:#06B048}

/* スマホ */
@media (max-width:768px){
  .contact-notice{margin:24px 16px 0;padding:18px 20px;font-size:13.5px}
  .contact-sec{padding:40px 20px 56px}
  .contact-sec-in{max-width:none}
  .contact-form-wrap p{margin-bottom:18px}
  /* スマホでは2カラムを縦並びに（内側<p>の flex 方向を変更） */
  .contact-form-wrap .cf-2col > p,
  .contact-form-wrap .cf-date-row > p{flex-direction:column;gap:10px}
  .contact-form-wrap input[type="submit"],
  .contact-form-wrap .wpcf7-submit{width:100%;min-width:0}
  .contact-other-sec{padding:48px 20px 64px}
  .contact-other-grid{flex-direction:column;gap:14px}
  .contact-other-card{max-width:none}
}

/* ============================================================
   CONTACT 入力内容の確認画面（JS で挿入）
============================================================ */
.cf-confirm-screen{
  background:var(--cream-bg);border:.5px solid var(--gold-light);
  padding:36px 36px 32px;margin-top:24px;
}
.cf-confirm-in{max-width:680px;margin:0 auto}
.cf-confirm-title{
  font-family:var(--ja);font-size:22px;font-weight:300;color:var(--charcoal);
  margin:0 0 12px;letter-spacing:.06em;text-align:center;
}
.cf-confirm-note{
  font-size:13.5px;color:var(--mid);text-align:center;
  margin:0 0 28px;line-height:1.85;
}
.cf-confirm-list{margin:0;padding:0;border-top:.5px solid var(--border)}
.cf-confirm-list dt{
  font-size:13px;letter-spacing:.06em;color:var(--gold-dark);
  padding:14px 0 4px;font-weight:500;
}
.cf-confirm-list dd{
  font-size:15px;color:var(--charcoal);line-height:1.8;
  padding:0 0 14px;margin:0;border-bottom:.5px solid var(--border);
  word-break:break-word;white-space:pre-wrap;
}
.cf-confirm-btns{
  display:flex;gap:14px;justify-content:center;margin-top:30px;
}
.cf-back-btn,.cf-submit-btn{
  min-width:200px;padding:14px 28px;
  font-size:14.5px;letter-spacing:.16em;font-family:var(--san);
  cursor:pointer;border-radius:0;
  -webkit-appearance:none;appearance:none;
  transition:background .25s,color .25s,border-color .25s;
}
.cf-back-btn{
  background:#fff;color:var(--charcoal);border:.5px solid var(--mid);
}
.cf-back-btn:hover{border-color:var(--charcoal);background:var(--off-white)}
.cf-submit-btn{
  background:var(--charcoal);color:#fff;border:.5px solid var(--charcoal);
}
.cf-submit-btn:hover{background:var(--gold);border-color:var(--gold)}
@media (max-width:768px){
  .cf-confirm-screen{padding:24px 20px}
  .cf-confirm-btns{flex-direction:column;gap:10px}
  .cf-back-btn,.cf-submit-btn{width:100%;min-width:0}
}

/* ============================================================
   types-sec 内の WordPress Columns ブロック（適応部位など）の装飾
============================================================ */
.types-sec .wp-block-columns{
  margin-top:32px !important;
  gap:24px;
}
/* 各カラムを軽くカード化（白背景＋ゴールド薄枠） */
.types-sec .wp-block-column{
  background:#fff;
  border:.5px solid var(--gold-light);
  padding:28px 32px;
}
/* カラム内の H3（部位カテゴリ見出し） */
.types-sec .wp-block-column h3,
.types-sec .wp-block-column .wp-block-heading{
  font-family:var(--ja) !important;
  font-size:17px !important;
  font-weight:400 !important;
  color:var(--charcoal) !important;
  letter-spacing:.05em;
  margin:0 0 14px !important;
  padding-bottom:10px;
  border-bottom:.5px solid var(--gold-light);
}
/* カラム内に複数の H3 がある場合（首・デコルテと手甲が同じカラムに入る等）の2つ目以降 */
.types-sec .wp-block-column h3:not(:first-child),
.types-sec .wp-block-column .wp-block-heading:not(:first-child){
  margin-top:24px !important;
}
/* 部位リスト：ゴールドのドット付き、シンプルに */
.types-sec .wp-block-column ul,
.types-sec .wp-block-column .wp-block-list{
  list-style:none !important;
  padding:0 !important;
  margin:0 !important;
}
.types-sec .wp-block-column ul li,
.types-sec .wp-block-column .wp-block-list li{
  position:relative;
  padding-left:18px;
  margin:0 0 6px;
  font-size:15px;
  line-height:1.9;
  color:var(--mid);
}
.types-sec .wp-block-column ul li::before,
.types-sec .wp-block-column .wp-block-list li::before{
  content:'';
  position:absolute;left:0;top:12px;
  width:5px;height:5px;
  background:var(--gold);
  border-radius:50%;
}
/* スマホ */
@media (max-width:768px){
  .types-sec .wp-block-columns{flex-direction:column;gap:14px}
  .types-sec .wp-block-column{padding:20px 22px}
}

/* ============================================================
   トップページ 06b. 公式SNS バナー
============================================================ */
.media-sec{background:var(--off-white);padding:56px 48px}
.media-header{max-width:1180px;margin:0 auto 28px;text-align:center}

/* SNS バナーグリッド（横並び3列） */
.sns-grid{
  max-width:1000px;margin:0 auto;
  display:flex;flex-wrap:wrap;gap:16px;justify-content:center;
}

/* 各SNSバナー共通 - 横型コンパクトカード */
.sns-banner{
  flex:1 1 260px;max-width:310px;
  display:flex;flex-direction:row;align-items:center;
  gap:14px;
  padding:12px 20px 12px 12px;
  text-decoration:none;
  background:#fff;
  border:.5px solid var(--gold-light);
  border-left-width:4px;  /* 左側ブランドカラーアクセント */
  transition:transform .25s,box-shadow .25s,background .25s;
  cursor:pointer;
}
.sns-banner:hover{
  transform:translateY(-3px);
  box-shadow:0 8px 24px rgba(48,44,40,.13);
}

/* ブランドカラー：左ボーダー＋ホバー背景 */
.sns-ameba              {border-left-color:#4D9955}
.sns-ameba:hover        {background:#EEF7EF}
.sns-instagram          {border-left-color:#C13584}
.sns-instagram:hover    {background:#FDF0F7}
.sns-youtube            {border-left-color:#FF0000}
.sns-youtube:hover      {background:#FFF2F2}

/* 円形アイコン */
.sns-banner-icon{
  width:42px;height:42px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:#fff;flex-shrink:0;
  transition:transform .3s cubic-bezier(.34,1.56,.64,1);  /* バネっぽい拡大 */
}
.sns-banner:hover .sns-banner-icon{transform:scale(1.15)}
.sns-ameba    .sns-banner-icon{background:#4D9955}
.sns-instagram .sns-banner-icon{
  background:linear-gradient(135deg,#F58529 0%,#DD2A7B 50%,#8134AF 100%);
}
.sns-youtube  .sns-banner-icon{background:#FF0000}

/* テキスト部分 */
.sns-banner-body{
  flex:1;
  display:flex;flex-direction:column;gap:2px;
  text-align:left;
}
.sns-banner-name{
  font-family:var(--en);font-size:.92rem;font-weight:600;
  color:var(--charcoal);letter-spacing:.04em;
}
.sns-banner-label{
  font-family:var(--san);font-size:.68rem;
  color:var(--mid);
}

/* スマホ：1列縦積み（バナー高さを詰めてコンパクトに） */
@media (max-width:768px){
  .media-sec{padding:28px 20px}
  .sns-grid{flex-direction:column;gap:8px;max-width:340px}
  .sns-banner{max-width:none;flex:0 1 auto;padding:9px 14px 9px 10px;gap:10px}
  .sns-banner-icon{width:34px;height:34px}
  .sns-banner-icon svg{width:22px;height:22px}
}

/* ============================================================
   single.php 医療コラム記事下 執筆者情報カード (E-E-A-T)
============================================================ */
.author-card{
  background:#fff;
  border:.5px solid var(--gold-light);
  margin:48px auto 0;
  max-width:var(--wrap-wide, 1000px);
}
.author-head{
  background:var(--gold);
  padding:14px 24px;
}
.author-h{
  margin:0;color:#fff;
  font-family:var(--ja);font-size:16px;font-weight:500;
  letter-spacing:.1em;
}
.author-h span{
  font-family:var(--en);font-size:13px;font-weight:300;
  letter-spacing:.16em;margin-left:10px;color:rgba(255,255,255,.85);
}
.author-body{
  display:flex;flex-wrap:wrap;gap:32px;
  padding:32px;align-items:flex-start;
}
.author-profile{
  flex:0 0 200px;text-align:center;
}
.author-photo{
  width:180px;height:180px;
  margin:0 auto 16px;
  background:var(--cream-bg);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
}
.author-photo .author-photo-img,
.author-photo img{
  width:100%;height:100%;object-fit:cover;
}
.author-photo-fallback{
  font-family:var(--en);font-size:11.5px;
  color:rgba(48,44,40,.3);letter-spacing:.17em;
  text-align:center;line-height:1.6;
}
.author-title{
  font-size:13px;color:var(--mid);
  line-height:1.7;margin:0 0 6px;
}
.author-name{
  font-family:var(--ja);font-size:20px;font-weight:500;
  color:var(--gold);margin:0;letter-spacing:.1em;
}
.author-name ruby rt{
  font-size:10px;color:var(--mid);
  font-weight:400;letter-spacing:.05em;
}
.author-career,
.author-society{
  flex:1;min-width:220px;
}
.author-sec-h{
  background:var(--cream-bg);
  padding:6px 14px;
  font-family:var(--ja);font-size:14px;font-weight:500;
  color:var(--charcoal);letter-spacing:.06em;
  border-left:3px solid var(--gold);
  margin:0 0 16px;
}
.author-card ul{
  list-style:disc;padding-left:22px;margin:0;
}
.author-card ul li{
  font-size:14px;color:var(--mid);line-height:1.85;
  padding-bottom:10px;
  border-bottom:.5px solid rgba(110,102,92,.12);
  margin-bottom:10px;
}
.author-card ul li:last-child{
  border-bottom:none;padding-bottom:0;margin-bottom:0;
}
/* スマホ */
@media (max-width:768px){
  .author-card{margin:36px 16px 0}
  .author-body{padding:24px 18px;gap:24px;flex-direction:column}
  .author-profile{flex:1 1 100%}
  .author-photo{width:140px;height:140px}
  .author-career,
  .author-society{flex:1 1 100%;min-width:100%}
  .author-h{font-size:14px}
  .author-h span{font-size:11px;margin-left:6px}
}

/* === 料金例テーブルの合計行を強調 === */
.price-sec figure.wp-block-table.price-example-tbl tbody tr.price-example-total td{
  background:var(--gold-pale) !important;
  color:var(--charcoal);
  font-size:15.5px;
  border-color:var(--gold-light);
}

/* === /access/ 診療時間カード（「選ばれる理由」と同じ grid トーン） === */
.acp-hours-wrap{background:transparent;padding:0;border:none}
.acp-day-en{
  font-family:var(--en);font-style:italic;
  font-size:12px;letter-spacing:.28em;color:var(--gold);
  margin-bottom:10px;
}
.acp-day-jp{
  font-family:var(--ja);font-size:26px;font-weight:300;
  color:var(--charcoal);letter-spacing:.06em;
  margin-bottom:12px;line-height:1;
}
.acp-day-time{
  font-size:13px;color:var(--mid);line-height:1.85;
  letter-spacing:.02em;
}
.acp-day-closed .acp-day-en,
.acp-day-closed .acp-day-jp{color:#C77}
.acp-day-closed .acp-day-time{color:#C77;font-size:14px;font-weight:500}
/* スマホ */
@media (max-width:768px){
  .acp-hours-grid{grid-template-columns:repeat(2,1fr) !important}
  .acp-day-jp{font-size:22px}
  .acp-day-time{font-size:12.5px}
}

/* ============================================================
   /contact-thanks/ 送信完了ページ
============================================================ */
.thanks-sec{background:var(--off-white);padding:72px 48px}
.thanks-in{max-width:780px;margin:0 auto;text-align:center}
.thanks-ico{margin:0 0 28px}
.thanks-title{
  font-family:var(--ja);font-size:24px;font-weight:300;
  color:var(--charcoal);letter-spacing:.07em;
  margin:0 0 20px;line-height:1.6;
}
.thanks-lead{
  font-size:15px;color:var(--mid);line-height:2.0;
  margin:0 0 36px;
}
.thanks-lead strong{color:var(--charcoal);font-weight:500}

.thanks-notice{
  text-align:left;max-width:620px;margin:0 auto 36px;
  background:#FFF7E8;border-left:3px solid var(--gold);
  padding:22px 28px;
  font-size:14px;color:var(--charcoal);line-height:1.85;
}
.thanks-notice h3{
  font-family:var(--ja);font-size:15px;font-weight:500;
  color:var(--charcoal);margin:0 0 12px;letter-spacing:.05em;
}
.thanks-notice ul{margin:0;padding-left:20px}
.thanks-notice li{margin-bottom:6px}
.thanks-notice li:last-child{margin-bottom:0}

.thanks-contact{margin:0 auto 36px;padding:28px 24px;background:var(--cream-bg)}
.thanks-contact-tel{display:flex;flex-direction:column;align-items:center;gap:6px}
.thanks-contact-label{
  font-family:var(--en);font-style:italic;font-size:12px;
  letter-spacing:.28em;color:var(--gold);
}
.thanks-contact-num{
  font-family:var(--en);font-size:28px;font-weight:300;
  color:var(--charcoal);letter-spacing:.06em;text-decoration:none;
}
.thanks-contact-hours{font-size:12.5px;color:var(--mid);letter-spacing:.04em}

.thanks-actions{
  display:flex;gap:14px;justify-content:center;flex-wrap:wrap;
  margin-top:8px;
}
.thanks-actions .btn-primary,
.thanks-actions .btn-secondary{
  display:inline-block;
  min-width:240px;padding:14px 28px;
  font-size:14.5px;letter-spacing:.16em;font-family:var(--san);
  text-decoration:none;text-align:center;
  transition:background .25s,color .25s,border-color .25s;
}
.thanks-actions .btn-primary{
  background:var(--charcoal);color:#fff;border:.5px solid var(--charcoal);
}
.thanks-actions .btn-primary:hover{background:var(--gold);border-color:var(--gold)}
.thanks-actions .btn-secondary{
  background:#fff;color:var(--charcoal);border:.5px solid var(--mid);
}
.thanks-actions .btn-secondary:hover{border-color:var(--charcoal);background:var(--off-white)}

@media (max-width:768px){
  .thanks-sec{padding:48px 20px}
  .thanks-title{font-size:20px}
  .thanks-lead{font-size:14px}
  .thanks-notice{padding:18px 20px;font-size:13.5px}
  .thanks-contact-num{font-size:24px}
  .thanks-actions{flex-direction:column;align-items:stretch}
  .thanks-actions .btn-primary,
  .thanks-actions .btn-secondary{min-width:0;width:100%}
}

/* ============================================================
   .important-notice 統一スタイル（本治療/本処方に関する重要事項）
   inline style が指定されている dl を上書きするため !important を使用
============================================================ */
/* コンテナの最大幅・中央寄せを統一（PRPなど一部ページがmax-width未指定で全幅化していた問題に対応） */
.important-notice{
  max-width:880px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
/* h3 と h4 の見出しを同じトーンに統一（本治療 ≒ 未承認医薬品） */
.important-notice h3,
.important-notice h4{
  font-family:var(--ja) !important;
  font-size:18px !important;
  font-weight:400 !important;
  color:var(--charcoal) !important;
  letter-spacing:.05em !important;
  margin:0 0 16px !important;
  padding-bottom:12px;
  border-bottom:.5px solid rgba(194,160,116,.35);
}
.important-notice h4{
  margin-top:36px !important;
}
.important-notice dl{
  display:grid !important;
  grid-template-columns:200px 1fr;
  gap:14px 24px;
  font-size:15.5px;
  line-height:1.9;
  margin:0;
}
.important-notice dt{
  color:var(--gold-dark);
  font-weight:600;
  letter-spacing:.04em;
}
.important-notice dd{
  margin:0;
  color:var(--mid);
}
.important-notice > p{
  font-size:14px;
  color:var(--light);
  line-height:1.85;
  margin:16px 0 0;
}

/* スマホ対応：1カラムに切り替え */
@media (max-width:768px){
  .important-notice{
    padding:24px 18px !important;
    margin:32px 16px !important;
    max-width:none !important;
  }
  .important-notice h3,
  .important-notice h4{
    font-size:16px !important;
    margin-bottom:14px !important;
  }
  .important-notice h4{margin-top:28px !important}
  .important-notice dl{
    grid-template-columns:1fr !important;
    gap:0 !important;
    font-size:14px !important;
    line-height:1.85 !important;
  }
  .important-notice dt{
    margin-top:14px;
    padding-bottom:2px;
  }
  .important-notice dl > dt:first-of-type{margin-top:0}
  .important-notice dd{
    padding-bottom:6px;
  }
}

/* ============================================================
   院長確認用ハイライト(ステージング /cms/ 配下時のみ表示)
   functions.php のフィルタで【要確認】を <mark> で囲んでいる
   本番公開(ルート配置)時はフィルタが動作しないため自動的に消える
============================================================ */
mark.mskin-review-flag{
  display:inline-block;
  background:#FFF7E8;
  border:1px dashed #C2A074;
  color:#7A5A2A;
  padding:1px 8px;
  margin:0 2px;
  font-weight:600;
  font-size:.95em;
  border-radius:3px;
  letter-spacing:.02em;
  text-decoration:none;
  /* 印刷時も目立つように */
  -webkit-print-color-adjust:exact;
  print-color-adjust:exact;
}
mark.mskin-review-flag::before{
  content:"⚠ ";
  font-size:.9em;
  margin-right:2px;
}

/* ============================================================
   取り扱いスキンケア バナーグリッド（/others/ rx-brands）
============================================================ */
.skincare-banner-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:16px;
  margin:28px 0 8px;
}
.skincare-banner-item{
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  border:1px solid #E5E0D6;
  border-radius:4px;
  padding:18px 20px;
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.skincare-banner-item:hover{
  border-color:var(--gold);
  box-shadow:0 4px 14px rgba(194,160,116,.18);
  transform:translateY(-2px);
}
.skincare-banner-item img{
  display:block;
  width:100%;
  height:auto;
  max-height:56px;
  object-fit:contain;
}
@media (max-width:768px){
  .skincare-banner-grid{
    grid-template-columns:repeat(2, 1fr);
    gap:12px;
  }
  .skincare-banner-item{
    padding:14px 16px;
  }
}

/* ============================================================
   施術部位ごとの見出し＋説明グリッド（ミラノリピールボディ等）
============================================================ */
.area-sec{background:var(--off-white);padding:72px 48px}
.area-sec .sec-title{margin-bottom:28px}
.area-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1px;background:var(--border);border:.5px solid var(--border);
  margin-bottom:32px;
}
.area-card{
  background:var(--off-white);
  padding:22px 24px;
}
.area-card-icon{
  width:40px;height:40px;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(142deg, #EAD9C4, #D4C3B0);
  margin-bottom:14px;
}
.area-card h4{
  font-family:var(--ja);font-size:15px;font-weight:500;
  color:var(--charcoal);letter-spacing:.04em;margin:0 0 8px;
}
.area-card p{
  font-size:13px;color:var(--mid);line-height:1.85;margin:0;
}
@media (max-width:768px){
  .area-sec{padding:48px 20px}
  .area-grid{grid-template-columns:1fr 1fr}
  .area-card{padding:18px 18px}
}
@media (max-width:480px){
  .area-grid{grid-template-columns:1fr}
}
