/* ============================================================
   PRECISION CLINIC — Redesign 2026 共通CSS（デザイン正典 SSOT）
   precision-design-system §1 準拠。
   ここを変えれば全リデザインページが変わる。ページ側での上書き禁止。
   ============================================================ */

:root {
  --navy-900: #1a2a44;
  --navy-800: #20314f;
  --navy-700: #2a3f63;
  --deep-navy: #0a1628;
  --ivory: #faf8f3;
  --ivory-dark: #f0ebdd;
  --gold: #dda84c;
  --gold-deep: #b8892f;
  --gold-muted: #e8c888;
  --gray-text: #4a4a4a;
  --gray-line: #e0d9c5;
  --serif-jp: "Noto Serif JP", "游明朝", "Yu Mincho", serif;
  --serif-en: "Cormorant Garamond", serif;
  --sans: "Inter", "Noto Sans JP", sans-serif;
  --gold-band: linear-gradient(90deg,#836222 0%,#a87e30 14%,#c79a3c 30%,#f4d58a 47%,#e2bd62 53%,#c79a3c 70%,#a87e30 86%,#7e5d20 100%);
  --gold-button: linear-gradient(90deg,#c2933e 0%,#dcb55f 26%,#f7e6b3 50%,#dcb55f 74%,#c2933e 100%);
  --gold-text: linear-gradient(135deg,#C8923A 0%,#E7BD6A 45%,#F4D58A 60%,#DDA84C 100%);
}

* { margin: 0; padding: 0; box-sizing: border-box; }

/* 本番テーマ対策（2026-09-11）：テーマ parts.css が html{font-size:10px} を敷くため、
   何もしないと rem が 62.5% に縮む（症例で実証済み＝rem禁止の根拠）。
   リデザインページでは基準を 16px に固定し、読込順に依存しないよう !important。
   あわせて functions-enqueue.php で main_css/swiper_css を dequeue する（二重防御）。 */
html { font-size: 16px !important; -webkit-text-size-adjust: 100%; }

body {
  font-family: var(--serif-jp);
  font-size: 16px; text-align: left;
  color: var(--navy-900);
  background: var(--ivory);
  line-height: 1.8;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
}

/* 正典の金箔帯（全ページ最上部・固定） */
body::before {
  content: ""; position: fixed; top: 0; left: 0; right: 0; height: 4px;
  z-index: 200; pointer-events: none; background: var(--gold-band);
}

h1, h2, h3, h4 { font-feature-settings: "palt" 1; }
img { max-width: 100%; height: auto; }
a { color: inherit; }

/* ============ NAV（全ページ共通） ============ */
nav#siteNav {
  position: fixed; top: 4px; left: 0; right: 0;
  padding: 1.2rem 3rem; z-index: 100;
  display: flex; justify-content: space-between; align-items: center;
  background: transparent; border-bottom: 1px solid transparent;
  transition: background .45s ease, border-color .45s ease;
}
nav#siteNav.nav-solid {
  background: rgba(245,241,232,.95);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(168,138,74,.15);
}
.logo-link { position: relative; display: inline-block; line-height: 0; text-decoration: none; flex-shrink: 0; margin-right: clamp(2.5rem,6vw,7rem); }
.logo-img { height: 50px; width: auto; display: block; transition: opacity .45s ease; }
/* 2ロゴ切替：ヒーロー(透明ナビ)=白＋金／スクロール後(アイボリー)=紺＋金。金の螺旋は常に保持 */
.logo-dark { position: absolute; top: 0; left: 0; opacity: 0; }
nav#siteNav.nav-solid .logo-light { opacity: 0; }
nav#siteNav.nav-solid .logo-dark { opacity: 1; }

.nav-links { display: flex; margin-left: auto; gap: clamp(1.1rem,1.7vw,2.2rem); list-style: none; align-items: center; }
/* ラベルは絶対に折り返さない（2026-09-11 先生指摘：幅が詰まると「プレシジョンメディシ／ン」と折れていた） */
.nav-links li { flex-shrink: 0; }
.nav-links a, .nav-links a .nav-en, .nav-links a .nav-jp { white-space: nowrap; }
.nav-links a {
  text-decoration: none; color: var(--navy-800);
  display: flex; flex-direction: column; align-items: center; gap: .15rem;
  transition: color .3s; padding: .3rem 0;
}
.nav-links a .nav-en { font-family: var(--sans); font-size: .8rem; letter-spacing: .18em; text-transform: uppercase; font-weight: 500; line-height: 1.2; }
.nav-links a .nav-jp { font-family: var(--serif-jp); font-size: .65rem; letter-spacing: .1em; color: var(--gray-text); line-height: 1.2; transition: color .3s; }
.nav-links a:hover { color: var(--gold); }
.nav-links a:hover .nav-jp { color: var(--gold-deep); }
nav#siteNav:not(.nav-solid) .nav-links a { color: var(--ivory); }
nav#siteNav:not(.nav-solid) .nav-links a .nav-jp { color: rgba(245,241,232,.7); }
nav#siteNav:not(.nav-solid) .nav-links a:hover { color: var(--gold-muted); }
nav#siteNav:not(.nav-solid) .nav-links a:hover .nav-jp { color: var(--gold-muted); }

.nav-cta { padding: .7rem 1.5rem !important; background: var(--navy-900); transition: background .3s; }
.nav-cta .nav-en { color: var(--ivory); letter-spacing: .22em !important; }
.nav-cta .nav-jp { color: var(--gold-muted) !important; }
.nav-cta:hover { background: var(--gold) !important; }
.nav-cta:hover .nav-en, .nav-cta:hover .nav-jp { color: var(--navy-900) !important; }
nav#siteNav:not(.nav-solid) .nav-cta { background: rgba(245,241,232,.12) !important; border: 1px solid rgba(245,241,232,.45); }
nav#siteNav:not(.nav-solid) .nav-cta:hover { background: var(--gold) !important; border-color: var(--gold); }

.nav-lang { display: flex; align-items: center; gap: .5rem; margin-left: .5rem; padding-left: 1.5rem; border-left: 1px solid rgba(32,49,79,.15); }
.nav-lang a { font-family: var(--serif-en); font-size: .95rem; letter-spacing: .15em; color: var(--gray-text); opacity: .7; text-decoration: none; transition: color .3s; }
.nav-lang a:hover { color: var(--gold); opacity: 1; }
nav#siteNav:not(.nav-solid) .nav-lang { border-left-color: rgba(245,241,232,.25); }
nav#siteNav:not(.nav-solid) .nav-lang a { color: rgba(245,241,232,.6); }

@media (max-width: 1200px) {
  .nav-links a .nav-en { font-size: .72rem; letter-spacing: .13em; }
  .nav-links a .nav-jp { font-size: .6rem; }
  .nav-cta { padding: .6rem 1.1rem !important; }
}
@media (max-width: 1040px) {
  .nav-links { gap: .8rem; }
  .nav-links a .nav-en { font-size: .66rem; letter-spacing: .08em; }
  .nav-links a .nav-jp { font-size: .56rem; letter-spacing: .04em; }
  .logo-link { margin-right: 1.4rem; }
  .nav-lang { padding-left: .9rem; margin-left: .2rem; }
}

/* ハンバーガー＋ドロワー */
.nav-toggle { display: none; flex-direction: column; justify-content: center; gap: 5px; width: 44px; height: 44px; background: none; border: none; cursor: pointer; padding: 9px; z-index: 120; }
.nav-toggle span { display: block; height: 2px; width: 26px; background: var(--navy-800); border-radius: 2px; transition: transform .3s ease, opacity .3s ease; }
nav#siteNav:not(.nav-solid) .nav-toggle span { background: var(--ivory); }
.nav-toggle.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle.open span:nth-child(2) { opacity: 0; }
.nav-toggle.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.mobile-drawer {
  position: fixed; top: 0; right: 0; bottom: 0; width: min(82vw,340px);
  background: var(--navy-900); z-index: 110;
  transform: translateX(100%); transition: transform .42s cubic-bezier(.4,0,.2,1);
  display: flex; flex-direction: column; justify-content: center; gap: .35rem;
  padding: 2rem 1.6rem; box-shadow: -24px 0 70px rgba(0,0,0,.35);
  overflow-y: auto;
}
.mobile-drawer.open { transform: none; }
.mobile-drawer a { color: var(--ivory); text-decoration: none; padding: .8rem 1.1rem; border-bottom: 1px solid rgba(201,180,138,.14); display: flex; flex-direction: column; gap: .1rem; font-family: var(--serif-jp); font-size: .98rem; letter-spacing: .04em; }
.mobile-drawer a span { font-family: var(--serif-en); font-style: italic; color: var(--gold-muted); font-size: .74rem; letter-spacing: .1em; }
.mobile-drawer a.drawer-cta { background: var(--gold-button); color: var(--navy-900); margin-top: 1rem; border-radius: 4px; border-bottom: none; font-weight: 700; }
.mobile-drawer a.drawer-cta span { color: var(--navy-900); opacity: .65; }
.drawer-backdrop { position: fixed; inset: 0; background: rgba(10,22,40,.5); opacity: 0; visibility: hidden; transition: opacity .3s ease; z-index: 105; }
.drawer-backdrop.open { opacity: 1; visibility: visible; }

@media (max-width: 900px) {
  nav#siteNav { padding: 1rem 1.5rem; }
  .nav-links { display: none; }
  .nav-toggle { display: flex; }
  .logo-img { height: 38px; }
}

/* ============ ボタン（§1確定） ============ */
.btn-primary {
  display: inline-block; padding: 1.15rem 2.6rem; text-decoration: none;
  font-family: var(--sans); font-size: .8rem; letter-spacing: .14em; font-weight: 700;
  background: var(--gold-button); color: var(--navy-800);
  transition: filter .3s ease;
}
.btn-primary::after { content: "→"; margin-left: .7rem; }
.btn-primary:hover { filter: brightness(1.07); }
.btn-navy {
  display: inline-block; padding: 1.15rem 2.6rem; text-decoration: none;
  font-family: var(--sans); font-size: .8rem; letter-spacing: .14em; font-weight: 700;
  background: var(--navy-800); color: var(--ivory);
  transition: background .3s ease;
}
.btn-navy:hover { background: var(--navy-700); }
.btn-text {
  color: var(--navy-800); text-decoration: none; font-family: var(--sans);
  font-size: .8rem; letter-spacing: .14em; white-space: nowrap;
  border-bottom: 1px solid var(--navy-800); padding-bottom: .2rem; transition: all .3s;
}
.btn-text:hover { color: var(--gold-deep); border-color: var(--gold-deep); }

/* ============ 下層ページ・ヒーロー（紺の帯） ============ */
.page-hero {
  position: relative; overflow: hidden;
  padding: 11rem 3rem 5rem; color: var(--ivory);
  background:
    radial-gradient(120% 110% at 80% 10%, rgba(42,63,99,.55) 0%, rgba(19,33,64,0) 55%),
    linear-gradient(160deg,#1c2c4d 0%,#132140 45%,#0a1628 100%);
}
.page-hero-rings {
  position: absolute; top: 50%; right: -18%; width: 60vw; height: 60vw;
  transform: translateY(-50%); border-radius: 50%; pointer-events: none; opacity: .8;
  background: repeating-radial-gradient(circle at center, rgba(221,168,76,0) 0 46px, rgba(221,168,76,.12) 46px 47px);
  -webkit-mask: radial-gradient(circle at center,#000 30%,transparent 70%);
          mask: radial-gradient(circle at center,#000 30%,transparent 70%);
}
.page-hero-inner { position: relative; z-index: 2; max-width: 1200px; margin: 0 auto; }
.page-hero .eyebrow {
  font-family: var(--serif-en); font-style: italic; color: var(--gold-muted);
  font-size: 1.05rem; letter-spacing: .12em; margin-bottom: 1.2rem;
  display: flex; align-items: center; gap: 1rem;
}
.page-hero .eyebrow::before { content: ""; width: 48px; height: 1px; background: linear-gradient(90deg,var(--gold),transparent); }
.page-hero h1 {
  font-family: var(--serif-jp); font-weight: 500; color: var(--ivory);
  font-size: clamp(2rem,4.4vw,3.4rem); line-height: 1.35; letter-spacing: .05em;
  margin-bottom: 1.4rem;
}
.page-hero h1 em { font-style: normal; background: var(--gold-text); -webkit-background-clip: text; background-clip: text; color: transparent; }
.page-hero .lead { color: rgba(245,241,232,.82); font-size: 1.02rem; line-height: 2.05; max-width: 720px; }
@media (max-width: 900px) { .page-hero { padding: 7.5rem 1.5rem 3.5rem; } }

/* ============ セクション共通 ============ */
.section { padding: 6.5rem 3rem; }
.section-inner { max-width: 1200px; margin: 0 auto; }
.section-navy { background: var(--navy-800); color: var(--ivory); position: relative; }
.section-navy::before, .section-navy::after {
  content: ""; position: absolute; left: 0; right: 0; height: 4px; background: var(--gold-band);
}
.section-navy::before { top: 0; } .section-navy::after { bottom: 0; }
.section-ivory-dark { background: var(--ivory-dark); }
.section-head { text-align: center; margin-bottom: 3.2rem; }
.section-eyebrow { font-family: var(--serif-en); font-style: italic; color: var(--gold-deep); font-size: 1.15rem; letter-spacing: .08em; margin-bottom: .5rem; }
.section-navy .section-eyebrow { color: var(--gold-muted); }
.section-title { font-family: var(--serif-jp); color: var(--navy-800); font-size: clamp(1.6rem,3vw,2.1rem); font-weight: 600; letter-spacing: .05em; line-height: 1.45; }
.section-navy .section-title { color: var(--ivory); }
.section-lead { max-width: 760px; margin: 1.2rem auto 0; color: var(--gray-text); line-height: 2; font-size: .97rem; }
.section-navy .section-lead { color: rgba(245,241,232,.78); }
@media (max-width: 900px) { .section { padding: 4rem 1.5rem; } }

/* ============ 本文タイポグラフィ（コンテンツ領域） ============ */
.pc-content { max-width: 860px; margin: 0 auto; }
.pc-content h2 {
  font-family: var(--serif-jp); color: var(--navy-800); font-size: 1.5rem; font-weight: 600;
  letter-spacing: .04em; line-height: 1.5; margin: 3.2rem 0 1.1rem;
  padding-bottom: .7rem; position: relative;
}
.pc-content h2::after { content: ""; position: absolute; bottom: 0; left: 0; width: 64px; height: 2px; background: var(--gold-band); }
.pc-content h3 { font-family: var(--serif-jp); color: var(--navy-800); font-size: 1.15rem; font-weight: 600; margin: 2.2rem 0 .8rem; padding-left: .9rem; border-left: 3px solid var(--gold); }
.pc-content p { color: var(--gray-text); line-height: 2.05; margin-bottom: 1.2rem; font-size: .97rem; }
.pc-content ul, .pc-content ol { margin: 0 0 1.4rem 1.4rem; color: var(--gray-text); line-height: 2; }
.pc-content li { margin-bottom: .4rem; }
.pc-content strong { color: var(--navy-800); }

/* 紺背景セクション内の本文（.section-navy > .pc-content）— 白系に反転して沈み防止 */
.section-navy .pc-content p,
.section-navy .pc-content ul,
.section-navy .pc-content ol,
.section-navy .pc-content li { color: rgba(245,241,232,.85); }
.section-navy .pc-content h2 { color: var(--ivory); }
.section-navy .pc-content h3 { color: var(--ivory); border-left-color: var(--gold); }
.section-navy .pc-content strong { color: var(--gold-muted); }
.section-navy .pc-content a { color: var(--gold-muted); }
.section-navy .pc-content a:hover { color: var(--gold); }
/* 紺背景内の def-box は白箱をやめ、半透明ガラスに */
.section-navy .def-box { background: rgba(255,255,255,.05); border-color: rgba(201,180,138,.35); border-left-color: var(--gold); }
.section-navy .def-box .def-term { color: var(--gold-muted); }
.section-navy .def-box p { color: rgba(245,241,232,.85); }
.section-navy .disclaimer { color: rgba(245,241,232,.7); border-top-color: rgba(201,180,138,.25); }

/* 定義ボックス（AIO・答えファースト） */
.def-box {
  background: #fff; border: 1px solid var(--gray-line); border-left: 4px solid var(--gold);
  border-radius: 4px; padding: 1.5rem 1.8rem; margin: 1.8rem 0;
}
.def-box .def-term { font-family: var(--serif-jp); font-weight: 700; color: var(--navy-800); margin-bottom: .5rem; font-size: 1.05rem; }
.def-box p { margin: 0; color: var(--gray-text); line-height: 2; }

/* Gold枠カード（強調・希少性） */
.gold-card {
  background: #fff; border: 1.5px solid var(--gold); border-radius: 6px;
  padding: 1.8rem 2rem; margin: 2rem 0;
  box-shadow: 0 14px 40px -28px rgba(32,49,79,.4);
}
.gold-card .gc-title { font-family: var(--serif-jp); font-weight: 700; color: var(--navy-800); margin-bottom: .7rem; display: flex; align-items: center; gap: .6rem; }
.gold-card .gc-title::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--gold-button); }

/* ============ テーブル（料金・比較） ============ */
.pc-table { width: 100%; border-collapse: collapse; margin: 1.6rem 0 2.4rem; background: #fff; font-size: .93rem; }
.pc-table th {
  background: var(--navy-800); color: var(--ivory); font-family: var(--serif-jp);
  font-weight: 600; letter-spacing: .06em; padding: .95rem 1.1rem; text-align: left;
  border: 1px solid var(--navy-700);
}
.pc-table td { padding: .9rem 1.1rem; border: 1px solid var(--gray-line); color: var(--gray-text); line-height: 1.8; }
.pc-table tr:nth-child(even) td { background: rgba(240,235,221,.35); }
.pc-table td.price { font-family: var(--serif-en); font-size: 1.05rem; color: var(--navy-800); white-space: nowrap; }
.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.table-scroll .pc-table { min-width: 640px; }

/* ============ FAQ ============ */
.faq-list { max-width: 860px; margin: 0 auto; }
.faq-item { background: #fff; border: 1px solid var(--gray-line); border-radius: 6px; margin-bottom: 1rem; overflow: hidden; }
.faq-q {
  display: flex; gap: .9rem; align-items: baseline; padding: 1.2rem 1.5rem;
  font-family: var(--serif-jp); font-weight: 600; color: var(--navy-800); cursor: pointer; list-style: none;
}
.faq-q::before { content: "Q"; font-family: var(--serif-en); font-style: italic; color: var(--gold-deep); font-size: 1.25rem; flex-shrink: 0; }
.faq-q::-webkit-details-marker { display: none; }
.faq-a { padding: 0 1.5rem 1.3rem 3.4rem; color: var(--gray-text); line-height: 2; font-size: .95rem; }

/* ============ カードグリッド（lineup系・汎用） ============ */
.card-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1.25rem; }
.card-grid.cols-3 { grid-template-columns: repeat(3,1fr); }
.card-grid.cols-2 { grid-template-columns: repeat(2,1fr); }
.pc-card {
  position: relative; display: flex; flex-direction: column;
  background: #fff; border: 1px solid var(--gray-line); border-radius: 6px;
  padding: 1.7rem 1.4rem 1.6rem; overflow: hidden; text-decoration: none; color: inherit;
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.pc-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--gold-band); opacity: 0; transition: opacity .35s ease; }
.pc-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -24px rgba(32,49,79,.45); border-color: var(--gold-muted); }
.pc-card:hover::before { opacity: 1; }
.pc-card .c-num { font-family: var(--serif-en); font-style: italic; color: var(--gold); font-size: 1rem; letter-spacing: .12em; margin-bottom: .55rem; }
.pc-card .c-en { font-family: var(--serif-en); font-style: italic; color: var(--gold-deep); font-size: .95rem; margin-bottom: .45rem; }
.pc-card .c-jp { font-family: var(--serif-jp); color: var(--navy-800); font-size: 1.08rem; font-weight: 600; line-height: 1.5; margin-bottom: .7rem; }
.pc-card .c-desc { color: var(--gray-text); font-size: .85rem; line-height: 1.85; flex-grow: 1; }
.pc-card .c-more { display: inline-flex; align-items: center; gap: .45rem; margin-top: 1.1rem; font-family: var(--sans); font-size: .7rem; letter-spacing: .18em; text-transform: uppercase; color: var(--navy-800); opacity: 0; transform: translateY(4px); transition: all .35s ease; }
.pc-card:hover .c-more { opacity: 1; transform: none; color: var(--gold-deep); }
@media (max-width: 900px) { .card-grid, .card-grid.cols-3 { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 540px) { .card-grid, .card-grid.cols-3, .card-grid.cols-2 { grid-template-columns: 1fr; } }

/* ============ ご相談の流れ（4ステップ） ============ */
.flow-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1.2rem; max-width: 1100px; margin: 0 auto; }
.flow-step { background: #fff; border: 1px solid var(--gray-line); border-radius: 6px; padding: 1.6rem 1.3rem; position: relative; }
.flow-step .f-num { font-family: var(--serif-en); font-style: italic; font-size: 2rem; color: var(--gold); line-height: 1; margin-bottom: .8rem; }
.flow-step .f-title { font-family: var(--serif-jp); font-weight: 700; color: var(--navy-800); margin-bottom: .5rem; font-size: 1rem; }
.flow-step p { font-size: .85rem; color: var(--gray-text); line-height: 1.9; margin: 0; }
@media (max-width: 900px) { .flow-grid { grid-template-columns: 1fr; } }

/* ============ CTA帯（紺のブックエンド・全ページ末尾） ============ */
.cta-band {
  position: relative; overflow: hidden; text-align: center;
  padding: 6.5rem 3rem; color: var(--ivory);
  background: linear-gradient(160deg,#1c2c4d 0%,#132140 45%,#0a1628 100%);
}
.cta-band::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: var(--gold-band); }
/* 細胞の同心円（ヒーローと同じ語彙）を左下に薄く。コンテンツより背面 */
.cta-band::after {
  content: ""; position: absolute; left: -10%; bottom: -34%; width: 48vw; height: 48vw; max-width: 680px; max-height: 680px;
  border-radius: 50%; pointer-events: none; opacity: .7;
  background: repeating-radial-gradient(circle at center, rgba(221,168,76,0) 0 46px, rgba(221,168,76,.11) 46px 47px);
  -webkit-mask: radial-gradient(circle at center,#000 28%,transparent 70%);
          mask: radial-gradient(circle at center,#000 28%,transparent 70%);
}
.cta-band > * { position: relative; z-index: 1; }
.cta-band h2 { font-family: var(--serif-en); font-style: italic; font-weight: 300; font-size: clamp(2rem,3.6vw,2.9rem); margin-bottom: 1rem; letter-spacing: .02em; }
.cta-band .jp-sub { font-family: var(--serif-jp); font-size: 1.1rem; color: var(--gold-muted); letter-spacing: .1em; margin-bottom: 2rem; }
.cta-band p { color: rgba(245,241,232,.8); line-height: 2.1; margin-bottom: 2.6rem; font-size: .97rem; }
.cta-band .cta-buttons { display: flex; gap: 1.2rem; justify-content: center; flex-wrap: wrap; }
/* 簡単CTAの下の二次導線（詳しい予約フォーム／料金表など） */
.cta-band .cta-links { display: flex; gap: 2.2rem; justify-content: center; flex-wrap: wrap; margin-top: .4rem; }
.cta-band .btn-text { color: var(--gold-muted); border-bottom-color: rgba(232,200,136,.5); }
.cta-band .btn-text:hover { color: var(--gold); border-bottom-color: var(--gold); }
@media (max-width: 900px) { .cta-band { padding: 4.5rem 1.5rem; } }

/* ============ パンくず ============ */
.breadcrumbs { font-family: var(--sans); font-size: .74rem; letter-spacing: .08em; color: rgba(245,241,232,.55); margin-bottom: 1.6rem; }
.breadcrumbs a { color: rgba(245,241,232,.55); text-decoration: none; }
.breadcrumbs a:hover { color: var(--gold-muted); }
.breadcrumbs .sep { margin: 0 .5rem; color: var(--gold-muted); }

/* ============ フッター（全ページ共通・本番構成） ============ */
footer.site-footer { background: var(--navy-900); color: var(--ivory); padding: 6rem 3rem 2rem; }
.footer-grid {
  max-width: 1400px; margin: 0 auto;
  display: grid; grid-template-columns: 1.2fr 1.5fr 1.1fr 1.2fr; gap: 4rem;
  padding-bottom: 4rem; border-bottom: 1px solid rgba(201,180,138,.15);
}
.logo-img-footer { height: 56px; width: auto; display: block; margin-bottom: 1.5rem; }
.footer-brand p { margin-top: 1.5rem; font-size: .9rem; line-height: 1.9; color: rgba(245,241,232,.6); }
.footer-col h4 { font-family: var(--serif-en); font-style: italic; font-size: .95rem; color: var(--gold-muted); margin-bottom: 1.5rem; letter-spacing: .05em; font-weight: 400; }
.footer-col ul { list-style: none; }
.footer-col li { margin-bottom: .9rem; }
.footer-col a { color: rgba(245,241,232,.7); text-decoration: none; font-size: .88rem; letter-spacing: .05em; transition: color .3s; }
.footer-col a:hover { color: var(--gold); }
.footer-col-wide ul { columns: 2; column-gap: 2.2rem; }
.footer-col-wide ul li { break-inside: avoid; }
.ft-access { display: block; font-size: .74rem; color: rgba(245,241,232,.45); letter-spacing: .05em; margin-top: .15rem; }
.footer-bottom {
  max-width: 1400px; margin: 0 auto; padding-top: 2rem;
  display: flex; justify-content: space-between;
  font-family: var(--sans); font-size: .75rem; letter-spacing: .15em; color: rgba(245,241,232,.4);
}
.footer-bottom a { color: rgba(245,241,232,.55); text-decoration: none; transition: color .3s; }
.footer-bottom a:hover { color: var(--gold-muted); }
@media (max-width: 900px) {
  footer.site-footer { padding: 4rem 1.5rem 2rem; }
  .footer-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .footer-col-wide ul { columns: 2; }
  .footer-bottom { flex-direction: column; gap: 1rem; }
}

/* ============ 簡単CTA（相談ブロック .pc-lite-embed）— 本番 parts.css から verbatim 抽出（2026-09-11） ============
   v2〜v2.4（先生承認 2026-09-10）の全層。markup は _CONSULT_CARD.html（本番と同一・inline style込み）。
   ここは編集禁止：直すなら本番側（cvr-fix/）を直してから再抽出する。 */
.section-consult { background: var(--ivory); padding: 3.5rem 3rem 5rem; }
/* 幅は本番 /bill と同じ 1060px。本番CSSは内側幅 701〜899px で縦積みになる（v2.3 と v2.4 の隙間）ため、860px幅の本文に入れると PC でも縦積みになる。
   ブロックは本文幅ではなく 1060px の独立帯に置く（本番と同じ container 幅 1000px → 3枚横並び） */
.section-consult .pc-lite-embed, .section-inner > .pc-lite-embed { max-width: 1060px; margin-left: auto !important; margin-right: auto !important; }
.section-inner > .pc-lite-embed { margin-bottom: 3rem !important; }
@media (max-width: 900px) { .section-consult { padding: 2.5rem 1.5rem 3.5rem; } }
/* ---- 土台：本番 functions.php（cvr-fix/03_functions_追加コード.php）の CSS を verbatim。parts.css の v2 層はこの上に !important で重なる ---- */
/* ---- 電話ボタン（3院）----
   PC：内容幅の小さめボタンを横並び／SP：縦一列で全幅
   ※ 02_症例ページ埋め込みブロック.html の class と対応 */
/* ボタン幅 = min-width130 + 左右padding14×2 + 枠線2 = 160px
   160×3 + gap10×2 = 500px に収まるので、狭い本文幅でも1行で並ぶ */
.pc-tel{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin:0 0 28px}
.pc-tel__btn{
	flex:0 0 auto;min-width:130px;display:block;padding:12px 14px;
	border:1px solid #DDA84C;border-radius:4px;text-align:center;text-decoration:none;
	background:rgba(221,168,76,.08);transition:background .2s}
.pc-tel__btn:hover{background:rgba(221,168,76,.18)}
.pc-tel__name{
	display:flex;align-items:center;justify-content:center;gap:6px;
	color:#FAF8F3;font-size:15px;font-weight:700;letter-spacing:.06em;margin:0 0 3px}
.pc-tel__num{
	display:block;color:#DDA84C;font-size:17px;font-weight:700;letter-spacing:.02em}

@media (max-width:600px){
	.pc-tel{flex-direction:column;gap:10px}
	.pc-tel__btn{width:100%;min-width:0;box-sizing:border-box;padding:14px 10px}
	.pc-tel__num{font-size:19px}
}

/* ---- フォームの折りたたみ（<details>）----
   ブロックの縦を抑えるため既定は閉じる。JSは不要。
   ラベルに「2項目・30秒」と入れて"軽さ"を先に伝えるのが肝。
   隠すだけだと「どうせ長いフォーム」と思われて開かれない。 */
.pc-lite-toggle{max-width:520px;margin:0 auto}
.pc-lite-toggle > summary{
	list-style:none;cursor:pointer;display:block;text-align:center;
	padding:14px 18px;border:1px solid #DDA84C;border-radius:4px;
	background:rgba(221,168,76,.08);color:#FAF8F3;font-size:15px;font-weight:700;
	transition:background .2s}
.pc-lite-toggle > summary::-webkit-details-marker{display:none}
.pc-lite-toggle > summary::marker{content:""}
.pc-lite-toggle > summary:hover{background:rgba(221,168,76,.18)}
.pc-lite-toggle > summary .sub{
	display:block;font-size:12px;font-weight:400;color:#CFD6E4;margin:3px 0 0}
.pc-lite-toggle[open] > summary{margin:0 0 20px}
.pc-lite-toggle[open] > summary .arrow{transform:rotate(180deg)}
.pc-lite-toggle .arrow{display:inline-block;margin-left:6px;color:#DDA84C;
	transition:transform .2s}

/* ---- 軽量フォーム ---- */
.pc-lite{color:#FAF8F3;font-size:15px;line-height:1.8}
.pc-lite__row{margin:0 0 18px}
.pc-lite__label{display:block;font-weight:700;margin:0 0 6px;color:#FAF8F3}
.pc-lite__req{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:3px;
	background:#DDA84C;color:#20314F;font-size:11px;font-weight:700;vertical-align:2px}
.pc-lite__opt{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:3px;
	border:1px solid #6B7A94;color:#CFD6E4;font-size:11px;font-weight:400;vertical-align:2px}
/* ラジオ（ご希望の院）— タップしやすく、選択済みが分かるように */
.pc-lite .wpcf7-radio .wpcf7-list-item{margin:0 8px 6px 0}
.pc-lite .wpcf7-radio label{display:inline-flex;align-items:center;gap:6px;
	padding:8px 14px;border:1px solid #4A5B78;border-radius:4px;cursor:pointer;
	color:#FAF8F3;font-size:14px}
.pc-lite .wpcf7-radio input[type="radio"]{accent-color:#DDA84C;margin:0}
.pc-lite__note{display:block;font-size:12px;color:#CFD6E4;margin:0 0 8px}
.pc-lite input[type="text"],
.pc-lite input[type="tel"],
.pc-lite input[type="email"],
.pc-lite textarea{
	width:100%;box-sizing:border-box;padding:12px 14px;margin:0 0 8px;
	border:1px solid #4A5B78;border-radius:4px;background:#FAF8F3;color:#20314F;
	font-size:16px} /* 16px＝iOSで自動ズームさせない */
.pc-lite textarea{min-height:110px;resize:vertical}
.pc-lite .wpcf7-list-item{margin:0 18px 0 0}
.pc-lite__accept{font-size:13px;color:#CFD6E4}
.pc-lite__accept a{color:#DDA84C;text-decoration:underline}
.pc-lite__submit{margin:22px 0 0;text-align:center}
.pc-lite input[type="submit"]{
	display:inline-block;width:100%;max-width:360px;padding:16px 0;border:0;border-radius:4px;
	background:linear-gradient(90deg,#c2933e 0%,#dcb55f 26%,#f7e6b3 50%,#dcb55f 74%,#c2933e 100%);
	color:#20314F;font-size:17px;font-weight:700;letter-spacing:.04em;cursor:pointer}
.pc-lite input[type="submit"]:hover{opacity:.9}
.pc-lite .wpcf7-not-valid-tip{color:#FFD9A0;font-size:13px}
.pc-lite .wpcf7-response-output{
	margin:16px 0 0;padding:12px 14px;border-radius:4px;
	border:1px solid #DDA84C;color:#FAF8F3;font-size:14px}


/* ---- 本番 parts.css の相談ブロック層（v2〜v2.4）verbatim ---- */
/* ============================================================
   相談ブロック（.pc-lite-embed）のチェックボックス復活  2026-09-07
   parts-form.css が `input[type=checkbox]{display:none}` を全体に当て、
   代替の独自ボックスは `.form_block02 .wpcf7-list-item-label` でしか描画されない。
   相談ブロックは .form_block02 を持たないため、同意チェックボックスが
   完全に消えて「送信ボタンが押せない」状態になっていた。
   ここでネイティブのチェックボックスを復活させる（Navy背景に合わせて accent-color 指定）。
   ============================================================ */
.pc-lite-embed input[type="checkbox"]{
	display:inline-block!important;
	-webkit-appearance:checkbox!important;
	appearance:checkbox!important;
	width:20px!important;
	height:20px!important;
	min-width:20px!important;
	margin:2px 10px 0 0!important;
	accent-color:#DDA84C!important;
	cursor:pointer!important;
	flex:0 0 auto!important;
}
.pc-lite-embed .wpcf7-acceptance label{
	display:flex!important;
	align-items:flex-start!important;
	cursor:pointer!important;
}
.pc-lite-embed .wpcf7-acceptance .wpcf7-list-item{
	display:block!important;
	margin:0!important;
}
.pc-lite-embed .wpcf7-acceptance .wpcf7-list-item-label{
	flex:1 1 auto!important;
	padding:0!important;
	line-height:1.7!important;
	color:#E6EAF2!important;
}

/* ============================================================
   相談ブロック（.pc-lite-embed）共通CSS  2026-09-07 テーマへ移設
   従来は症例ページ本文の <style> に埋め込んでいたが、コラムにも同じブロックを
   置くため、テーマ側に一本化した。症例ページ側の埋め込みは同一内容なので競合しない。
   ★このファイルを変更したら master.css の ?v= も必ず上げること。
   ============================================================ */
/* --- 相談ブロック内は本文用の一括ルールを打ち消す（Navy背景・独自レイアウト） --- */
.pc-lite-embed p{color:#CFD6E4!important;}
.pc-lite-embed a{color:#DDA84C!important;text-decoration:none!important;}
.pc-lite-embed label,.pc-lite-embed .pc-lite__label{color:#FAF8F3!important;}
.pc-lite-embed .pc-lite__row{margin:0 0 14px!important;line-height:1.6!important;}
.pc-lite-embed .pc-lite__note{color:#CFD6E4!important;font-size:12px!important;line-height:1.6!important;margin:0 0 6px!important;}
.pc-lite-embed .pc-lite__accept{font-size:13px!important;line-height:1.75!important;color:#E6EAF2!important;}
.pc-lite-embed .pc-lite__accept a{text-decoration:underline!important;font-weight:700;}
/* 3院のラジオを常に横一列に */
.pc-lite-embed .wpcf7-radio{display:flex!important;flex-wrap:nowrap!important;gap:6px!important;justify-content:center!important;}
.pc-lite-embed .wpcf7-radio .wpcf7-list-item{margin:0!important;flex:1 1 0!important;min-width:0!important;}
.pc-lite-embed .wpcf7-radio .wpcf7-list-item label{display:flex!important;align-items:center!important;justify-content:center!important;gap:4px!important;font-size:14px!important;line-height:1.4!important;white-space:nowrap!important;}
/* 同意チェックは通常の折り返しに戻す（ラジオ用ルールを継がせない） */
.pc-lite-embed .pc-lite__accept .wpcf7-list-item{display:block!important;margin:0!important;flex:none!important;}
.pc-lite-embed .pc-lite__accept label{display:inline!important;white-space:normal!important;}
/* 空要素が作る無駄な余白を消す（CF7が出す screen-reader-response・spinner 等） */
.pc-lite-embed ul:empty,.pc-lite-embed div:empty,.pc-lite-embed p:empty{display:none!important;margin:0!important;height:0!important;}
.pc-lite-embed .screen-reader-response{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;margin:0!important;}
.pc-lite-embed .wpcf7-spinner{margin:0 0 0 8px!important;}
.pc-lite-embed .wpcf7-spinner:not(.is-active){display:none!important;}
.pc-lite-embed .pc-lite__submit{margin:16px 0 0!important;}
.pc-lite-embed form{margin-bottom:0!important;}
.pc-lite-embed .pc-lite-toggle{margin-bottom:0!important;}
.pc-lite-embed .wpcf7{margin:0!important;}
.pc-lite-embed .pc-lite-toggle > br,.pc-lite-embed > br{display:none!important;}
.pc-lite-embed summary{margin-bottom:0!important;}
.pc-lite-embed details[open] > *:not(summary){margin-top:12px!important;}
.pc-lite-embed .screen-reader-response{display:none!important;}
/* wpautopが作る空<p>の余白を殺す（:empty では拾えないため） */
.pc-lite-embed > p:not([style]),.pc-lite-embed .pc-lite-toggle > p:not([class]){margin:0!important;height:0!important;line-height:0!important;}
/* 任意バッジ */
.pc-lite-embed .pc-lite__opt{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:3px;border:1px solid #8C9AB4;color:#CFD6E4!important;font-size:11px;font-weight:700;vertical-align:2px;}
/* Turnstile 前後の余白を詰める */
.pc-lite-embed .cf-turnstile,.pc-lite-embed .wpcf7-spinner{margin:6px 0!important;}
.pc-lite-embed form p{margin:0 0 12px!important;}
.pc-lite-embed .pc-tel{margin:0 0 14px!important;}
.pc-lite-embed .pc-tel__btn{line-height:0!important;padding:12px 10px!important;}
.pc-lite-embed .pc-tel__name{display:block!important;line-height:1.35!important;font-size:15px!important;margin:0 0 2px!important;}
.pc-lite-embed .pc-tel__num{line-height:1.25!important;}
.pc-lite-embed .pc-lite-embed__title{font-size:20px!important;}

/* ============================================================
   電話3ボタンの間隔が空きすぎる問題を解消  2026-09-07
   本文は wpautop を通るため、.pc-tel の中の改行が <br> に変換される。
   .pc-tel は display:flex なので、この <br> が匿名フレックスアイテムになり
   gap:10px が二重にかかって間隔が約44pxまで広がっていた。
   ボタン内部（.pc-tel__btn の中）の <br> も同じ理由で高さを押し広げるため、
   .pc-tel 配下の br をまとめて無効化する。マークアップ側は変更しない。
   対象：コラム5590/5218/5238/5304/5297 と 相談ブロック入り症例32本すべて
   ============================================================ */
.pc-tel br{ display:none!important; }

/* ============================================================
   簡単CTA（.pc-lite-embed）デザイン v2 — 2026-09-10 先生承認（案2）
   料金表・症例・コラム・用語集に埋め込まれた全ブロックに、本文を触らずCSSだけで適用する。
   ブロックの inline style（!important付きの色）は -webkit-text-fill-color で上書きする。
   ============================================================ */
div.pc-lite-embed{
	position:relative!important; overflow:hidden!important;
	background:linear-gradient(165deg,#0F1F3A 0%,#20314F 60%,#233856 100%)!important;
	border-radius:8px!important; padding:52px 24px 28px!important;
	box-shadow:0 12px 32px rgba(10,22,40,.20)!important;
	font-family:'Noto Sans JP','Hiragino Sans',sans-serif!important;
}
/* 上端の金帯 */
div.pc-lite-embed::before{ content:""; position:absolute; left:0; right:0; top:0; height:3px;
	background:linear-gradient(90deg,#836222,#c79a3c 30%,#f4d58a 50%,#c79a3c 70%,#7e5d20); }
/* 英字アイブロウ（本文を触らずに追加） */
div.pc-lite-embed::after{ content:"FREE CONSULTATION"; position:absolute; left:0; right:0; top:22px;
	text-align:center; font-family:'Noto Sans JP','Hiragino Sans',sans-serif; font-size:11px; letter-spacing:.3em;
	color:#D8B25C; font-weight:500; line-height:1; }
/* 見出し：細めのゴシック・中太 */
div.pc-lite-embed .pc-lite-embed__title{
	font-family:'Noto Sans JP','Hiragino Sans',sans-serif!important; font-weight:500!important;
	letter-spacing:.04em!important; line-height:1.6!important; margin:0!important;
	-webkit-text-fill-color:#FFFFFF;
}
div.pc-lite-embed .pc-lite-embed__title span{ -webkit-text-fill-color:#F1D68F; font-weight:500!important; }
/* 見出し下の短い金線 */
div.pc-lite-embed .pc-lite-embed__title::after{ content:""; display:block; width:36px; height:1px; margin:16px auto 18px; background:#C79A3C; }
/* 本文（リード）：細字・明るめ */
div.pc-lite-embed > p:not(.pc-lite-embed__title){ font-family:'Noto Sans JP','Hiragino Sans',sans-serif!important; font-weight:300!important; letter-spacing:.02em!important; }
div.pc-lite-embed > p:not(.pc-lite-embed__title){ -webkit-text-fill-color:#E6EAF2; }
div.pc-lite-embed > p:not(.pc-lite-embed__title) span[style*="#FAF8F3"]{ -webkit-text-fill-color:#FFFFFF; font-weight:400!important; }
/* 「お電話でご相談」見出し行（太字の小見出し） */
div.pc-lite-embed > p[style*="font-weight:700"]{ font-weight:500!important; letter-spacing:.2em!important; -webkit-text-fill-color:#FFFFFF; }
/* 注記（平日10:00〜18:00…）：明るいグレー */
div.pc-lite-embed > p[style*="font-size:12px"]{ -webkit-text-fill-color:#C3CCDC; font-weight:300!important; }
/* 区切り「または、フォームでご相談」 */
div.pc-lite-embed > p[style*="display:flex"]{ -webkit-text-fill-color:#C3CCDC; font-weight:400!important; letter-spacing:.12em!important; font-size:12px!important; margin:18px 0 14px!important; }
div.pc-lite-embed > p[style*="display:flex"] > span[style*="height:1px"]{ background:linear-gradient(90deg,transparent,#6E82A6,transparent)!important; }
/* 電話ボタン：アイボリーのカード＋金の縦線 */
div.pc-lite-embed .pc-tel{ display:flex!important; flex-direction:column!important; gap:10px!important; margin:0 0 4px!important; }
div.pc-lite-embed .pc-tel .pc-tel__btn{
	display:flex!important; align-items:center!important; justify-content:space-between!important;
	width:100%!important; min-width:0!important; box-sizing:border-box!important;
	background:#FAF8F3!important; border:0!important; border-left:4px solid #C79A3C!important; border-radius:6px!important;
	padding:14px 18px 14px 16px!important; margin:0!important; line-height:1.3!important; text-decoration:none!important;
	box-shadow:0 1px 0 rgba(0,0,0,.12)!important;
}
div.pc-lite-embed .pc-tel .pc-tel__btn:hover{ background:#FFFFFF!important; }
div.pc-lite-embed .pc-tel .pc-tel__name{ display:block!important; margin:0!important; color:#20314F!important; -webkit-text-fill-color:#20314F;
	font-size:13px!important; font-weight:500!important; letter-spacing:.08em!important; line-height:1.3!important; }
div.pc-lite-embed .pc-tel .pc-tel__num{ display:flex!important; align-items:center!important; gap:8px!important; color:#1F2E55!important; -webkit-text-fill-color:#1F2E55;
	font-size:20px!important; font-weight:600!important; letter-spacing:.03em!important; line-height:1.25!important; }
div.pc-lite-embed .pc-tel .pc-tel__num::before{ content:""; display:inline-block; width:15px; height:15px; background:#C79A3C;
	-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6.6 10.8a15 15 0 006.6 6.6l2.2-2.2a1 1 0 011-.25c1.1.37 2.3.57 3.6.57a1 1 0 011 1V20a1 1 0 01-1 1A17 17 0 013 4a1 1 0 011-1h3.5a1 1 0 011 1c0 1.25.2 2.45.57 3.57a1 1 0 01-.25 1z'/></svg>") center/contain no-repeat;
	mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6.6 10.8a15 15 0 006.6 6.6l2.2-2.2a1 1 0 011-.25c1.1.37 2.3.57 3.6.57a1 1 0 011 1V20a1 1 0 01-1 1A17 17 0 013 4a1 1 0 011-1h3.5a1 1 0 011 1c0 1.25.2 2.45.57 3.57a1 1 0 01-.25 1z'/></svg>") center/contain no-repeat; }
/* フォーム折りたたみ：細い金枠・下線なし・中太 */
div.pc-lite-embed .pc-lite-toggle{ max-width:none!important; }
div.pc-lite-embed .pc-lite-toggle > summary{
	display:block!important; text-align:center!important; padding:14px 18px!important;
	border:1px solid #C79A3C!important; border-radius:6px!important; background:rgba(255,255,255,.03)!important;
	color:#FFFFFF!important; -webkit-text-fill-color:#FFFFFF; font-size:15px!important; font-weight:500!important; letter-spacing:.06em!important;
	text-decoration:none!important; list-style:none!important;
}
div.pc-lite-embed .pc-lite-toggle > summary::-webkit-details-marker{ display:none; }
div.pc-lite-embed .pc-lite-toggle > summary .arrow{ color:#D8B25C!important; -webkit-text-fill-color:#D8B25C; font-size:11px!important; margin-left:8px!important; vertical-align:1px; }
div.pc-lite-embed .pc-lite-toggle > summary .sub{ display:block!important; margin-top:4px!important; color:#C3CCDC!important; -webkit-text-fill-color:#C3CCDC; font-size:12px!important; font-weight:300!important; letter-spacing:0!important; }
@media (min-width:601px){
	div.pc-lite-embed{ padding:54px 34px 30px!important; }
	div.pc-lite-embed .pc-tel{ flex-direction:row!important; }
	div.pc-lite-embed .pc-tel .pc-tel__btn{ flex:1 1 0!important; flex-direction:column!important; align-items:flex-start!important; gap:4px!important; }
}

/* ============================================================
   簡単CTA デザイン v2.1 — PC（601px以上）の文字と余白を大きく（2026-09-10 先生指摘）
   ============================================================ */
@media (min-width:601px){
	div.pc-lite-embed{ padding:58px 40px 36px!important; }
	div.pc-lite-embed::after{ font-size:12px; top:24px; }
	div.pc-lite-embed .pc-lite-embed__title{ zoom:1.2; }
	div.pc-lite-embed > p:not(.pc-lite-embed__title){ zoom:1.08; }
	div.pc-lite-embed .pc-tel{ gap:16px!important; margin:4px 0 8px!important; }
	div.pc-lite-embed .pc-tel .pc-tel__btn{ padding:22px 26px 22px 24px!important; border-left-width:5px!important; gap:8px!important; }
	div.pc-lite-embed .pc-tel .pc-tel__name{ font-size:16px!important; letter-spacing:.1em!important; }
	div.pc-lite-embed .pc-tel .pc-tel__num{ font-size:28px!important; gap:10px!important; }
	div.pc-lite-embed .pc-tel .pc-tel__num::before{ width:20px; height:20px; }
	div.pc-lite-embed > p[style*="display:flex"]{ font-size:14px!important; margin:26px 0 18px!important; }
	div.pc-lite-embed .pc-lite-toggle > summary{ padding:20px 24px!important; font-size:19px!important; letter-spacing:.08em!important; }
	div.pc-lite-embed .pc-lite-toggle > summary .arrow{ font-size:13px!important; margin-left:10px!important; }
	div.pc-lite-embed .pc-lite-toggle > summary .sub{ font-size:14px!important; margin-top:6px!important; }
}

/* ============================================================
   簡単CTA デザイン v2.2 — 区切り「または、フォームでご相談」を上下ボタンの真ん中に（2026-09-10 先生指摘）
   区切り<p>の margin は本文側 inline !important（上4px／下18px）で動かせないため、隣接要素側で釣り合わせる
   ============================================================ */
.column_post_block01 div.pc-lite-embed div.pc-tel, div.pc-lite-embed div.pc-tel{ margin:0 0 18px!important; }
.column_post_block01 div.pc-lite-embed details.pc-lite-toggle, div.pc-lite-embed details.pc-lite-toggle{ margin-top:0!important; }
.column_post_block01 div.pc-lite-embed .pc-lite-toggle > summary, div.pc-lite-embed .pc-lite-toggle > summary{ margin-top:0!important; }
@media (min-width:601px){
	.column_post_block01 div.pc-lite-embed div.pc-tel, div.pc-lite-embed div.pc-tel{ margin:0 0 18px!important; }
}

/* ============================================================
   簡単CTA デザイン v2.3 — PCで電話番号が折り返す不具合の修正（2026-09-10 先生指摘・/column/5297/）
   原因：v2.1で番号を28pxにしたが、コラム本文の幅（約700px）では3枚横並びの1枚が約200pxしかなく
        「03-」「6228-」「6062」でハイフン折り返しが起きる。
   対策：①番号は絶対に折り返さない ②ブロック自身の幅で判定し、狭ければ縦積み（SPと同じ並び）にする
        （コンテナクエリ。ビューポート幅ではなく .pc-lite-embed の幅で切り替える）
   ============================================================ */
div.pc-lite-embed{ container-type:inline-size; }
div.pc-lite-embed .pc-tel .pc-tel__num{ white-space:nowrap!important; }
@media (min-width:601px){
	/* 横並び1枚あたり 28px の番号＋アイコン＋余白 ≒ 290px。3枚＋余白で約900px未満なら縦積みに戻す */
	@container (max-width:899px){
		div.pc-lite-embed .pc-tel{ flex-direction:column!important; gap:12px!important; }
		div.pc-lite-embed .pc-tel .pc-tel__btn{ flex:0 0 auto!important; flex-direction:row!important; align-items:center!important; justify-content:space-between!important; padding:18px 24px 18px 22px!important; }
		div.pc-lite-embed .pc-tel .pc-tel__num{ font-size:26px!important; }
	}
	/* コンテナクエリ非対応ブラウザ用の保険：折り返すくらいなら文字を小さく */
	@supports not (container-type:inline-size){
		div.pc-lite-embed .pc-tel .pc-tel__num{ font-size:clamp(18px, 2.2vw, 28px)!important; }
		div.pc-lite-embed .pc-tel .pc-tel__btn{ padding:20px 18px 20px 18px!important; }
	}
}

/* ============================================================
   簡単CTA（.pc-lite-embed）デザイン v2.4 — 2026-09-10 先生指示「PCは電話ボタンを横並びに」
   v2.3 で内側幅700px未満（コラム・用語集）を縦積みにしたが、PCは常に3枚横並びにする。
   内側幅 620px（コラム）でカード1枚≈200px。番号20px・字間0・余白を詰めて1行に収める。
   ============================================================ */
@media (min-width:601px){
	@container (max-width:700px){
		div.pc-lite-embed .pc-tel{ flex-direction:row!important; gap:8px!important; }
		div.pc-lite-embed .pc-tel .pc-tel__btn{ flex:1 1 0!important; width:auto!important; min-width:0!important; flex-direction:column!important; align-items:flex-start!important; justify-content:center!important; gap:3px!important; padding:14px 10px 14px 12px!important; }
		div.pc-lite-embed .pc-tel .pc-tel__name{ font-size:13px!important; }
		div.pc-lite-embed .pc-tel .pc-tel__num{ font-size:20px!important; letter-spacing:0!important; gap:5px!important; }
		div.pc-lite-embed .pc-tel .pc-tel__num::before{ width:13px!important; height:13px!important; }
	}
}

/* ============ SP固定フッターバー pc-spbar — 本番 cvr-fix/sp_fixed_bar.css を verbatim 移植 ============ */
.pc-spbar, .pc-spbar__sheet, .pc-spbar__dim{ display:none; }
@media screen and (max-width:900px){
	body.pc-spbar-on{ padding-bottom:calc(60px + env(safe-area-inset-bottom))!important; }
	.pc-spbar{
		display:flex; position:fixed; left:0; right:0; bottom:0; z-index:1500;
		height:calc(58px + env(safe-area-inset-bottom)); padding-bottom:env(safe-area-inset-bottom);
		background:linear-gradient(165deg,#0F1F3A 0%,#20314F 60%,#233856 100%);
		box-shadow:0 -6px 20px rgba(10,22,40,.25);
		font-family:'Noto Sans JP','Hiragino Sans',sans-serif;
		transform:translateY(0); transition:transform .25s ease;
	}
	.pc-spbar::before{ content:""; position:absolute; left:0; right:0; top:0; height:2px;
		background:linear-gradient(90deg,#836222,#c79a3c 30%,#f4d58a 50%,#c79a3c 70%,#7e5d20); }
	.pc-spbar.is-hidden{ transform:translateY(110%); }
	.pc-spbar__btn{
		flex:1 1 0; min-width:0; display:flex; align-items:center; justify-content:center; gap:8px;
		margin:0; padding:0 8px; border:0; background:transparent; color:#FFFFFF; -webkit-text-fill-color:#FFFFFF;
		text-decoration:none!important; line-height:1.25; cursor:pointer; -webkit-tap-highlight-color:rgba(255,255,255,.08);
		font-family:inherit; -webkit-appearance:none; appearance:none;
	}
	.pc-spbar__btn + .pc-spbar__btn{ border-left:1px solid rgba(255,255,255,.14); }
	.pc-spbar__ico{ flex:none; width:19px; height:19px; background:#D8B25C; }
	.pc-spbar__ico--tel{ -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6.6 10.8a15 15 0 006.6 6.6l2.2-2.2a1 1 0 011-.25c1.1.37 2.3.57 3.6.57a1 1 0 011 1V20a1 1 0 01-1 1A17 17 0 013 4a1 1 0 011-1h3.5a1 1 0 011 1c0 1.25.2 2.45.57 3.57a1 1 0 01-.25 1z'/></svg>") center/contain no-repeat; mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6.6 10.8a15 15 0 006.6 6.6l2.2-2.2a1 1 0 011-.25c1.1.37 2.3.57 3.6.57a1 1 0 011 1V20a1 1 0 01-1 1A17 17 0 013 4a1 1 0 011-1h3.5a1 1 0 011 1c0 1.25.2 2.45.57 3.57a1 1 0 01-.25 1z'/></svg>") center/contain no-repeat; }
	.pc-spbar__ico--form{ -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M4 4h16a1 1 0 011 1v14a1 1 0 01-1 1H4a1 1 0 01-1-1V5a1 1 0 011-1zm1 3.5V18h14V7.5l-7 4.5-7-4.5zM6.2 6l5.8 3.7L17.8 6H6.2z'/></svg>") center/contain no-repeat; mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M4 4h16a1 1 0 011 1v14a1 1 0 01-1 1H4a1 1 0 01-1-1V5a1 1 0 011-1zm1 3.5V18h14V7.5l-7 4.5-7-4.5zM6.2 6l5.8 3.7L17.8 6H6.2z'/></svg>") center/contain no-repeat; }
	.pc-spbar__lbl{ display:flex; flex-direction:column; align-items:flex-start; min-width:0; }
	.pc-spbar__lbl b{ font-size:15px; font-weight:600; letter-spacing:.08em; color:#FFFFFF; -webkit-text-fill-color:#FFFFFF; white-space:nowrap; }
	.pc-spbar__lbl small{ display:block; font-size:10px; font-weight:400; letter-spacing:.04em; line-height:1.35; color:#C3CCDC; -webkit-text-fill-color:#C3CCDC; white-space:nowrap; }

	/* 電話タップ後：3院シート */
	.pc-spbar__dim.is-open{ display:block; position:fixed; inset:0; z-index:1600; background:rgba(15,31,58,.45); }
	.pc-spbar__sheet.is-open{
		display:block; position:fixed; left:10px; right:10px; bottom:calc(68px + env(safe-area-inset-bottom)); z-index:1700;
		background:#FAF8F3; border-radius:10px; box-shadow:0 12px 32px rgba(10,22,40,.35); padding:12px 12px 8px;
		font-family:'Noto Sans JP','Hiragino Sans',sans-serif;
	}
	.pc-spbar__eb{ margin:0 0 8px; text-align:center; font-size:10px; letter-spacing:.3em; color:#B8892F; -webkit-text-fill-color:#B8892F; font-weight:500; }
	.pc-spbar__sheet a.pc-spbar__tel{
		display:flex; justify-content:space-between; align-items:center; margin:0 0 8px; padding:12px 14px;
		background:#FFFFFF; border-left:4px solid #C79A3C; border-radius:6px; text-decoration:none!important;
	}
	.pc-spbar__sheet a.pc-spbar__tel span{ font-size:13px; font-weight:500; letter-spacing:.06em; color:#20314F; -webkit-text-fill-color:#20314F; }
	.pc-spbar__sheet a.pc-spbar__tel strong{ font-size:19px; font-weight:600; letter-spacing:.03em; color:#1F2E55; -webkit-text-fill-color:#1F2E55; white-space:nowrap; }
	.pc-spbar__note{ margin:0 0 10px; text-align:center; font-size:11px; line-height:1.6; color:#4A4A4A; -webkit-text-fill-color:#4A4A4A; }
	.pc-spbar__note strong{ display:block; font-size:14px; font-weight:600; letter-spacing:.04em; color:#20314F; -webkit-text-fill-color:#20314F; }
	.pc-spbar__close{ display:block; width:100%; margin:0; padding:8px; border:0; background:transparent; font-family:inherit; font-size:12px; color:#4A4A4A; -webkit-text-fill-color:#4A4A4A; cursor:pointer; }
	/* ハンバーガーメニュー展開中は隠す */
	body.pc-spbar-menu-open .pc-spbar{ transform:translateY(110%); }
}

/* リデザインのドロワー展開中も隠す（precision-2026.js が body.pc-spbar-menu-open を同期） */

/* ============ スクロール・リビール ============ */
.js .reveal { opacity: 0; transform: translateY(22px); transition: opacity .9s ease, transform .9s ease; }
.js .reveal.in { opacity: 1; transform: none; }

/* ============ アクセシビリティ ============ */
:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: .001ms !important; transition: none !important; }
  .js .reveal { opacity: 1 !important; transform: none !important; }
}

/* 免責注記（医療広告） */
.disclaimer { font-size: .8rem; color: var(--gray-text); opacity: .85; line-height: 1.9; border-top: 1px solid var(--gray-line); padding-top: 1.2rem; margin-top: 2.5rem; }

/* ============ アイコン・バッジ（文字の多いページの視覚アンカー） ============ */
/* 金リングのアイコンチップ：中に細線SVG（stroke: currentColor）を入れる */
.icon-chip {
  width: 58px; height: 58px; border-radius: 50%; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  color: var(--gold-deep); border: 1.5px solid var(--gold);
  background: radial-gradient(circle at 32% 28%, rgba(221,168,76,.14), rgba(221,168,76,.03));
}
.icon-chip svg { width: 28px; height: 28px; stroke: currentColor; fill: none; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.section-navy .icon-chip { color: var(--gold-muted); border-color: rgba(221,168,76,.55); background: radial-gradient(circle at 32% 28%, rgba(221,168,76,.16), rgba(221,168,76,.04)); }
.icon-chip.lg { width: 72px; height: 72px; }
.icon-chip.lg svg { width: 36px; height: 36px; }
/* アイコン付き小見出し行 */
.icon-row { display: flex; align-items: center; gap: 1rem; margin: 2.2rem 0 .9rem; }
.icon-row .icon-chip { width: 46px; height: 46px; }
.icon-row .icon-chip svg { width: 22px; height: 22px; }
.icon-row h3 { margin: 0 !important; padding-left: 0 !important; border-left: none !important; }

/* テキストバッジ（チップ）：3種 */
.pc-chip {
  display: inline-block; border-radius: 20px; padding: 5px 15px;
  font-family: var(--serif-jp); font-size: .8rem; font-weight: 700; letter-spacing: .05em;
  margin: 0 6px 6px 0; vertical-align: middle;
}
.pc-chip-gold { background: var(--gold-button); color: var(--navy-800); }
.pc-chip-navy { background: var(--navy-800); color: var(--gold-muted); }
.pc-chip-line { border: 1.5px solid var(--navy-800); color: var(--navy-800); }
.section-navy .pc-chip-line, .page-hero .pc-chip-line { border-color: rgba(245,241,232,.6); color: var(--ivory); }
.section-navy .pc-chip-navy, .page-hero .pc-chip-navy { background: rgba(245,241,232,.12); border: 1px solid rgba(201,180,138,.4); }

/* ============ 深化① 細胞モチーフ（2026-09-11・/lineup から適用） ============
   語彙：金の細線（1px・不透明度 .25〜.55）で「膜・核・受容体」を描く。塗りつぶし禁止、色は金と象牙のみ。
   動きは 90〜150秒の緩い回転だけ（prefers-reduced-motion で停止）。 */
/* ヒーローの細胞（inline SVG .page-hero-cell） */
.page-hero-cell {
  position: absolute; top: 50%; right: -4%; width: clamp(360px, 44vw, 640px); aspect-ratio: 1;
  transform: translateY(-50%); pointer-events: none; z-index: 1; opacity: .9;
}
.page-hero-cell svg { width: 100%; height: 100%; overflow: visible; }
.page-hero-cell .membrane { fill: none; stroke: var(--gold); stroke-width: 1; opacity: .34; }
.page-hero-cell .membrane-2 { fill: none; stroke: var(--gold); stroke-width: .8; opacity: .18; }
.page-hero-cell .nucleus { fill: none; stroke: var(--gold-muted); stroke-width: 1; opacity: .5; }
.page-hero-cell .nucleolus { fill: var(--gold); opacity: .22; }
.page-hero-cell .organelle { fill: none; stroke: var(--gold); stroke-width: .8; opacity: .22; }
.page-hero-cell .receptor { fill: var(--gold); opacity: .6; }
.page-hero-cell .halo { fill: none; stroke: var(--gold); stroke-width: .6; opacity: .1; }
.page-hero-cell .spin { transform-origin: 300px 300px; animation: cellSpin 140s linear infinite; }
.page-hero-cell .spin-r { transform-origin: 300px 300px; animation: cellSpin 95s linear infinite reverse; }
@keyframes cellSpin { to { transform: rotate(360deg); } }
@media (max-width: 900px) { .page-hero-cell { width: 82vw; right: -34%; top: 46%; opacity: .7; } }
@media (prefers-reduced-motion: reduce) { .page-hero-cell .spin, .page-hero-cell .spin-r { animation: none; } }

/* 膜の区切り（セクション頭の飾り：細線＋核リング） */
.cell-divider { display: flex; align-items: center; gap: 1rem; max-width: 420px; margin: 0 auto 2.4rem; }
.cell-divider::before, .cell-divider::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, transparent, rgba(184,137,47,.55), transparent); }
.cell-divider span { width: 12px; height: 12px; border-radius: 50%; border: 1.5px solid var(--gold); position: relative; flex-shrink: 0; }
.cell-divider span::after { content: ""; position: absolute; inset: 3px; border-radius: 50%; background: var(--gold); opacity: .75; }

/* カード＝細胞：常時うっすら金の上線、左上に細胞質の光、番号の前に核リング、右下に透かし番号 */
.pc-card { border-radius: 8px; padding: 1.9rem 1.5rem 1.8rem; background: #fff radial-gradient(circle at 16% 10%, rgba(221,168,76,.09), transparent 42%); }
.pc-card::before { opacity: .35; }
.pc-card:hover::before { opacity: 1; }
.pc-card .c-num { display: flex; align-items: center; gap: .55rem; }
.pc-card .c-num::before { content: ""; width: 11px; height: 11px; border-radius: 50%; border: 1.5px solid var(--gold); box-shadow: inset 0 0 0 2px #fff, inset 0 0 0 5px rgba(221,168,76,.7); flex-shrink: 0; }
.pc-card[data-num]::after { content: attr(data-num); position: absolute; right: .8rem; bottom: .1rem; font-family: var(--serif-en); font-style: italic; font-size: 4.4rem; line-height: 1; color: var(--gold); opacity: .09; pointer-events: none; }
.pc-card .c-tags { display: flex; flex-wrap: wrap; gap: .35rem; margin: -.15rem 0 .85rem; }
.pc-card .c-tag { font-family: var(--sans); font-size: .62rem; letter-spacing: .08em; padding: .2rem .55rem; border: 1px solid rgba(184,137,47,.45); border-radius: 999px; color: var(--gold-deep); white-space: nowrap; }
/* タグは色分けしない（2026-09-11 先生指示：全て同じ細線タグ） */
/* 段差リビール（親 .card-grid が data-reveal のとき、子カードが順に浮き上がる） */
.js .card-grid.reveal .pc-card { opacity: 0; transform: translateY(16px); transition: opacity .75s ease, transform .75s ease, box-shadow .35s ease, border-color .35s ease; }
.js .card-grid.reveal.in .pc-card { opacity: 1; transform: none; }
.js .card-grid.reveal.in .pc-card:hover { transform: translateY(-4px); }
.card-grid .pc-card:nth-child(2) { transition-delay: .08s; } .card-grid .pc-card:nth-child(3) { transition-delay: .16s; } .card-grid .pc-card:nth-child(4) { transition-delay: .24s; }
.js .card-grid.reveal.in .pc-card:hover { transition-delay: 0s; }
/* ワイドカード（1枚だけのセクション用：左に見出し・右に説明） */
.pc-card.card-wide { grid-column: 1 / -1; flex-direction: row; align-items: center; gap: 2.4rem; padding: 2.2rem 2.4rem; }
.pc-card.card-wide .cw-head { flex: 0 0 320px; display: flex; flex-direction: column; }
.pc-card.card-wide .c-desc { flex: 1; font-size: .92rem; border-left: 1px solid var(--gray-line); padding-left: 2.4rem; }
.pc-card.card-wide .c-more { margin-top: .9rem; }
@media (max-width: 900px) { .pc-card.card-wide { flex-direction: column; align-items: stretch; gap: 1rem; padding: 1.9rem 1.5rem; } .pc-card.card-wide .cw-head { flex-basis: auto; } .pc-card.card-wide .c-desc { border-left: 0; padding-left: 0; } }
