/* ===== 名古屋院ページ: JP-SENIOR-CARE 調整レイヤー（既存デザインは変えず、可読性のみ補正） ===== */

/* 下層タイトル帯: スラッグが英字装飾として出るため大文字化。H1は22px→30px（基準37px） */
.lower_ttl.nagoya .ttl .en { text-transform: uppercase; }
.lower_ttl.nagoya .ttl { font-size: 30px !important; line-height: 1.45 !important; }
@media only screen and (min-width: 768px) { .lower_ttl.nagoya .ttl { font-size: 36px !important; } }

/* テーマの .l-contents が padding-bottom:120px を持ち、FAQセクション下に白帯が出るため除去 */
.l-contents:has(.ngy-page) { padding-bottom: 0 !important; }

/* セクション横幅: fuelcells.org トップと同じ 1140px コンテナに統一 */
.ngy-page .container { max-width: 1140px; }

/* 本文: 18px / 行間1.9（シニア基準）。既存の .sec .container 内テキストに適用 */
.ngy-page .sec .container p,
.ngy-page .sec .container li,
.ngy-page .sec .container dd,
.ngy-page .sec .container td { font-size: 18px; line-height: 1.9; letter-spacing: 0.03em; }
@media only screen and (max-width: 767px) {
  .ngy-page .sec .container p,
  .ngy-page .sec .container li,
  .ngy-page .sec .container dd,
  .ngy-page .sec .container td { font-size: 18px; line-height: 1.8; }
}
.ngy-page .sec .container .note,
.ngy-page .sec .container .remark,
.ngy-page .sec .container .remark p { font-size: 16px; line-height: 1.8; color: #444; }  /* #555=6.9:1 → 8.7:1 */

/* 見出しのテーマ緑 #007450 は白背景と5.38:1（AAA 7:1未達）。深緑に寄せて8.5:1を確保
   （ダーク帯の白見出しは既存 !important が優先） */
.ngy-page .fst-hd .hd-ttl,
.ngy-page .common_ttl01,
.ngy-page .qa-list .qa-cate { color: #007450; }

/* 症状名（H3）が18.72pxで基準26pxに未達。最も正確に読む必要がある情報なので拡大 */
.ngy-page .index_lineup .menu-ttl .svnm { font-size: 22px; line-height: 1.5; }
.ngy-page .index_lineup .menu-ttl .s-size { font-size: 14px; line-height: 1.5; }
.ngy-page .index_commit .container .slct-wrap .slct-box .bx-ttl span { font-size: 22px; line-height: 1.5; }
@media only screen and (min-width: 768px) { .ngy-page .index_lineup .menu-ttl .svnm { font-size: 24px; } }

/* 流用セクションのコントラスト是正（テーマ由来の不足。背景は変えず文字を濃色化） */
.ngy-page .slct-box .ck-list li,
.ngy-page .slct-box .ck-list .ck-ttl,
.ngy-page .slct-box .ck-list .s-size { color: #3f2d16; }        /* 茶3.81:1 → 濃色 */
.ngy-page .index_commit .container .rs-list-wrap { background-color: #007450; }  /* 白と5.83:1 */
@media only screen and (max-width: 767px) {
  .ngy-page .index_commit .container .rs-list-wrap { background-color: #007450; }
}
.ngy-page .rs-list-wrap .rs-ttl,
.ngy-page .index_commit .container .rs-list-wrap .rs-list li { color: #fff; }
.ngy-page .rs-note { color: #fff; font-size: 16px; line-height: 1.8; margin: 10px 0 0; }
/* 独自に背景色を敷いた帯のPC余白: テーマのPC paddingは12.6px 0（左右0）でテキストが
   帯の端に密着する（ユーザーFB 2026-08-11）。モバイルはテーマの40px 20px 48pxが効くため触らない */
@media only screen and (min-width: 768px) {
  .ngy-page .index_commit .container .rs-list-wrap { padding: 28px 32px; }
}

/* index_lineup は本番トップで唯一 container を広げている（max-width:96% = 実測1382px@1440 /
   他セクションは1140px）。一時 1140px に揃えていたが、2026-08-21 ユーザー指示で本番と同じ 96% に戻した。
   症状カード1枚が178→216pxに広がり、シニア向けの視認性方針とも整合する */
.ngy-page .index_lineup .container { max-width: 96%; }
/* セクション上下余白: 既存ページは SP 60px / PC reason 110px。
   .rzn-dtl-wrap 配下に置いたことで 90px / 130px が当たり縦に伸びていたので既存値に揃える */
.ngy-page .reason.sec { padding-top: 60px; padding-bottom: 60px; }
@media only screen and (min-width: 768px) {
  .ngy-page .reason.sec { padding-top: 110px; padding-bottom: 110px; }
}
/* 2026-08-25 ユーザー指示: 背景を自然写真（シダ＋ボケ光）に変更。
   CSSで暗めのスモークオーバーレイを重ねる。白文字はそのまま維持 */
.ngy-page .index_lineup {
  position: relative; overflow: hidden;
}
.ngy-page .index_lineup .lineup-bg {
  position: absolute; inset: -20% 0; z-index: 0;
  background-image: url(../../img/index/bg-lineup-fukuoka.webp) !important;
  background-size: cover; background-position: center;
  will-change: transform;
}
.ngy-page .index_lineup::before {
  content: ''; position: absolute; inset: -20% 0;
  background: rgba(0, 30, 20, 0.45);
  z-index: 1;
}
.ngy-page .index_lineup > .container { position: relative; z-index: 2; }
.ngy-page .index_lineup .tm-ttl span { color: #fff !important; }
.ngy-page .index_lineup .tm-wrap > li { color: #fff; }  /* ラッパーliの継承色（内側の白カードは各自の色を持つ） */
.ngy-page .index_lineup .fst-hd .hd-ttl,
.ngy-page .index_lineup .fst-hd .en-ttl { color: #fff !important; }
.ngy-page .index_lineup .container .note { color: #e7efe9 !important; }  /* ダーク帯上の注記（.sec .container .note の#444に負けない） */
/* 全セクション共通: .fst-hd と直後のリード文を max-width 860px でブロック中央配置
   （text-align: center ではない。テキストは左寄せのまま、ブロック自体を中央に置く） */
.ngy-page .fst-hd { max-width: 860px; margin-left: auto; margin-right: auto; text-align: center; }
.ngy-page .fst-hd .en-ttl::before { left: 50% !important; transform: translateX(-50%); }
.ngy-page .reason.sec > .container > p { max-width: 860px; margin-left: auto; margin-right: auto; }
.ngy-page .index_voice > .container > .case-lead,
.ngy-page .index_voice > .container > .case-note { max-width: 860px; margin-left: auto; margin-right: auto; }
.ngy-page .index_lineup .container > p { color: #fff; max-width: 860px; margin-left: auto; margin-right: auto; }

/* モバイルで .slct-wrap が width:100vw 全幅化され、grid 1fr が中身の最小幅に引っ張られて
   カードが親を66px超えて切れる（図解が見えない）。全幅化を外し minmax(0,1fr) で縮小を許可 */
@media only screen and (max-width: 767px) {
  .ngy-page .index_commit .container .slct-wrap { margin: 0; width: auto; grid-template-columns: minmax(0, 1fr); }
  .ngy-page .index_commit .container .slct-wrap .slct-box,
  .ngy-page .index_commit .container .slct-wrap .slct-box .desc .ck-list { min-width: 0; }
  /* 図解を横110pxに押し込むと画像内ラベル（神経・筋肉・分化誘導 等）が5px相当になり判読不能。
     モバイルはテキストの下に1カラムで置き、幅220pxまで拡大する（視覚監査 2026-08-04 指摘） */
  .ngy-page .index_commit .container .slct-wrap .slct-box .desc { grid-template-columns: minmax(0, 1fr); }
  .ngy-page .index_commit .container .slct-wrap .slct-box .desc figure { min-width: 0; margin: 10px auto 0; width: 70%; max-width: 220px; }
  .ngy-page .index_commit .container .slct-wrap .slct-box .desc figure img { width: 100%; height: auto; }
}
/* リンクのないカードはリンク風の矢印を消す（押しても反応せず不信を招く） */
.ngy-page .slct-box:not([href]) { cursor: default; }
.ngy-page .slct-box:not([href]) .bx-ttl::after { display: none !important; }

/* 目次・FAQ・CTA のタップ領域を48px以上に（既存デザインは変えずサイズのみ） */
.ngy-page .ac-list li a { min-height: 48px; text-wrap: balance; display: flex; align-items: center; justify-content: center; }
.ngy-page .qa-list dl.qa dt { min-height: 48px; }
/* FAQ回答: firsttime.css がモバイルで15pxに落とすため、シニア基準18pxに固定 */
.ngy-page .qa-list dl.qa dd p { font-size: 18px !important; line-height: 1.9 !important; }

/* 費用表: 既存 .time_table を使い、金額列だけ折り返さない */
.ngy-page .time_table th { white-space: nowrap; }
.ngy-page .time_table td.fee { white-space: nowrap; font-weight: 700; }
/* 数字は tabular-nums で桁を揃える */
.ngy-page .time_table td.fee,
.ngy-page .ngy-num { font-variant-numeric: tabular-nums; letter-spacing: 0; }

/* ===== デザイン案（nagoya-lp2 / 2026-08-04）にのみ存在するパーツ ===== */

/* ① ヒーロー: D-2 KVデザイン（全幅写真 + テキストオーバーレイ + 統計バー + 開院メダル） */
/* 旧グリッドレイアウトを全幅写真オーバーレイに置き換え（2026-08-25） */
.ngy-page .ngy-hero { background: none; padding: 0; overflow: hidden; position: relative; }
.ngy-page .ngy-hero::before {
  content: ''; position: absolute; inset: 0; z-index: 0;
  background: url(../../img/clinics/clinic-nagoya-concept-v2.webp) center bottom / cover no-repeat;
}
.ngy-page .ngy-hero > .container { max-width: none; padding: 0; }
body:has(.ngy-page) .lower_ttl { display: none !important; }

/* Doctor リード文（ヒーロー外だが旧位置を維持） */
.ngy-dr-lead { font-size: 17px; font-weight: 500; color: #007450; margin-bottom: 12px; }

/* D-2 KV: 写真エリア */
.ngy-page .hero-photo-area { position: relative; width: 100%; aspect-ratio: 16 / 7; }
.ngy-page .hero-photo-area .photo { position: absolute; inset: 0; overflow: hidden; }
.ngy-page .hero-photo-area .photo img { width: 100%; height: 150%; object-fit: cover; object-position: center; will-change: transform; }

/* 開院予定バッジ（長方形・clinic-nameの左に横並び） */
.ngy-page .hero-name-row {
  display: flex; align-items: center; gap: 16px; margin-bottom: 10px;
}
.ngy-page .open-badge {
  flex: none; display: flex; flex-direction: row; align-items: baseline; gap: 6px;
  white-space: nowrap;
  padding: 10px 18px;
  background: linear-gradient(135deg, #e8cc7a 0%, #c9a84c 40%, #9a7d3a 100%);
  border: 2px solid rgba(255,255,255,0.45);
  border-radius: 0;
  box-shadow: 0 4px 20px rgba(0,0,0,0.3), inset 0 1px 3px rgba(255,255,255,0.35);
  line-height: 1.3;
}
.ngy-page .open-badge .badge-clinic { font-size: 18px; font-weight: 700; color: #fff; letter-spacing: 0.08em; text-shadow: 0 1px 3px rgba(0,0,0,0.3); }
.ngy-page .open-badge .badge-date { display: flex; align-items: baseline; gap: 2px; }
.ngy-page .open-badge .badge-year { font-family: 'Outfit', sans-serif; font-size: 18px; font-weight: 700; color: #fff; text-shadow: 0 1px 3px rgba(0,0,0,0.3); }
.ngy-page .open-badge .badge-month { font-size: 15px; font-weight: 700; color: #fff; letter-spacing: 0.04em; text-shadow: 0 1px 3px rgba(0,0,0,0.3); }
.ngy-page .open-badge .badge-label { font-size: 12px; font-weight: 700; color: #fff; letter-spacing: 0.12em; text-shadow: 0 1px 3px rgba(0,0,0,0.3); }

/* テキストオーバーレイ（右下配置） */
.ngy-page .hero-text {
  position: absolute; z-index: 2; inset: 0;
  display: flex; flex-direction: column;
  justify-content: flex-end; align-items: flex-end;
  padding: 0 52px 140px;
}
.ngy-page .hero-text .clinic-name {
  /* h1 だがテーマ既定の見出しスタイルは使わない（KV内の院名表示） */
  margin: 0; padding: 0; border: 0; background: none; font-family: inherit;
  font-size: 19px; font-weight: 600; color: #fff;
  letter-spacing: 0.14em;
  text-shadow: 0 1px 6px rgba(0,40,20,0.4);
  line-height: 1.5;
}
.ngy-page .hero-text .catch-line {
  display: inline-block; background: rgba(255,255,255,0.82);
  padding: 14px 32px; font-family: 'Noto Serif JP', serif; font-weight: 700;
  font-size: 38px; line-height: 1.4; color: #007450;
  letter-spacing: 0.05em; margin-bottom: 16px;
}
.ngy-page .hero-text .catch-sub {
  font-size: 19px; font-weight: 500; color: #fff;
  letter-spacing: 0.12em; margin-bottom: 20px;
  text-shadow: 0 1px 8px rgba(0,40,20,0.45), 0 0 20px rgba(0,0,0,0.18);
}
.ngy-page .hero-text .meta-row { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.ngy-page .hero-text .location-tag {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 15px; color: #1a1a1a; font-weight: 600; letter-spacing: 0.06em;
  background: rgba(255,255,255,0.88); backdrop-filter: blur(4px);
  padding: 8px 18px; border-radius: 6px; box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}
.ngy-page .hero-text .location-tag svg { width: 15px; height: 15px; fill: #009c6c; }

/* 統計バー（ヒーロー下部オーバーレイ） */
.ngy-page .stats-bar {
  position: absolute; bottom: 0; left: 0; right: 0; z-index: 3;
  background: rgba(0, 116, 80, 0.88); backdrop-filter: blur(8px);
  padding: 14px 28px; display: grid; grid-template-columns: repeat(6, 1fr);
}
.ngy-page .stats-bar .stat-item { text-align: center; padding: 10px 6px 8px; border-right: 1px solid rgba(255,255,255,0.15); }
.ngy-page .stats-bar .stat-item:last-child { border-right: none; }
.ngy-page .stats-bar .stat-icon { display: inline-block; width: 16px; height: 16px; vertical-align: -2px; margin-right: 3px; }
.ngy-page .stats-bar .stat-icon svg { width: 16px; height: 16px; fill: rgba(255,255,255,0.8); }
.ngy-page .stats-bar .stat-label { font-size: 14px; font-weight: 500; color: rgba(255,255,255,0.8); letter-spacing: 0.06em; margin-bottom: 3px; }
.ngy-page .stats-bar .stat-value { font-family: 'Outfit', sans-serif; font-weight: 700; font-size: 38px; color: #fff; line-height: 1.15; }
.ngy-page .stats-bar .stat-value .unit { font-family: 'Noto Sans JP', sans-serif; font-size: 17px; font-weight: 500; }
.ngy-page .stats-bar .stat-value .text-only { font-family: 'Noto Sans JP', sans-serif; font-size: 24px; font-weight: 700; letter-spacing: 0.04em; }
.ngy-page .stats-bar .stat-value sup { font-size: 9px; font-weight: 400; opacity: 0.7; vertical-align: super; }

/* 注釈（ヒーロー直下） */
.ngy-page .stats-notes {
  position: relative; z-index: 2;
  font-size: 13px; color: #fff; line-height: 1.7;
  margin: 0; padding: 8px 20px;
  background: #3b2e1c; /* 写真下端に白文字を直置きするとコントラストが保証できないため明示背景（2026-08-29） */
}

/* 「はじめての方はこちら」ボタン（本番トップ .flt-btn と同じオレンジグラデーション） */
.ngy-hero .hr-firsttime {
  display: grid; width: 340px; height: 64px; margin: 8px 0 12px;
  background: linear-gradient(0deg, #e76700, #ff9c49);
  border-radius: 6px; text-decoration: none;
  box-shadow: 0 4px 16px rgba(0,0,0,0.25);
}
.ngy-hero .hr-firsttime .inr { display: flex; align-items: center; justify-content: center; }
.ngy-hero .hr-firsttime figure { margin: 0 12px 0 0; width: 40px; line-height: 0; }
.ngy-hero .hr-firsttime figure img { width: 40px; height: auto; display: block; }
.ngy-hero .hr-firsttime .ft-ttl {
  font-size: 18px; font-weight: 500; color: #fff;
  letter-spacing: 0.02em; line-height: 1; margin: 0;
}
.ngy-hero .hr-firsttime .ft-ttl span { position: relative; padding-right: 25px; }
.ngy-hero .hr-firsttime .ft-ttl span::after {
  content: ""; display: block; position: absolute; right: 0; top: 50%;
  width: 14px; height: 14px; transform: translateY(-50%);
  background: url(../../img/common/arw-wht.png) no-repeat center / contain;
}
.ngy-hero .hr-firsttime:hover { opacity: 0.9; }

/* D-2 モバイル対応 */
@media (max-width: 900px) {
  .ngy-page .hero-photo-area { aspect-ratio: 4 / 3; }
  .ngy-page .hero-text { padding: 0 24px 180px; align-items: flex-start; }
  .ngy-page .hero-text .clinic-name { font-size: 15px; }
  .ngy-page .hero-name-row { gap: 12px; }
  .ngy-page .open-badge { padding: 8px 14px; gap: 5px; }
  .ngy-page .open-badge .badge-clinic { font-size: 15px; }
  .ngy-page .open-badge .badge-year { font-size: 15px; }
  .ngy-page .open-badge .badge-month { font-size: 13px; }
  .ngy-page .open-badge .badge-label { font-size: 10px; }
  .ngy-page .hero-text .catch-line { font-size: 26px; padding: 10px 20px; }
  .ngy-page .hero-text .catch-sub { font-size: 16px; }
  .ngy-page .hero-text .location-tag { font-size: 13px; padding: 6px 14px; }
  .ngy-page .hero-text .meta-row { gap: 8px; }
  .ngy-page .stats-bar { grid-template-columns: repeat(3, 1fr); padding: 10px 16px; }
  .ngy-page .stats-bar .stat-item:nth-child(3) { border-right: none; }
  .ngy-page .stats-bar .stat-label { font-size: 13px; }
  .ngy-page .stats-bar .stat-value { font-size: 30px; }
  .ngy-page .stats-bar .stat-value .unit { font-size: 15px; }
  .ngy-page .stats-bar .stat-value .text-only { font-size: 20px; }
  .ngy-page .stats-notes { padding: 6px 16px; font-size: 12px; }
}
@media only screen and (max-width: 767px) {
  .ngy-page .hero-photo-area { aspect-ratio: auto; min-height: 660px; }
  .ngy-page .hero-text { padding: 0 16px 170px; }
  .ngy-page .hero-text .clinic-name { font-size: 15px; letter-spacing: 0.08em; }
  .ngy-page .hero-text .catch-line { font-size: 28px; padding: 10px 14px; letter-spacing: 0.02em; }
  .ngy-page .hero-text .catch-sub { font-size: 16px; }
  .ngy-page .hero-text .location-tag { font-size: 12px; padding: 5px 12px; }
  .ngy-page .hero-name-row { gap: 8px; flex-wrap: wrap; }
  .ngy-page .open-badge { padding: 6px 12px; gap: 4px; }
  .ngy-page .open-badge .badge-clinic { font-size: 15px; }
  .ngy-page .open-badge .badge-year { font-size: 15px; }
  .ngy-page .open-badge .badge-month { font-size: 13px; }
  .ngy-page .open-badge .badge-label { font-size: 11px; }
  .ngy-page .stats-bar { padding: 8px 10px; gap: 0; }
  .ngy-page .stats-bar .stat-icon { display: none; }
  .ngy-page .stats-bar .stat-label { font-size: 12px; letter-spacing: 0; white-space: nowrap; margin-bottom: 1px; }
  .ngy-page .stats-bar .stat-value { font-size: 24px; line-height: 1.1; }
  .ngy-page .stats-bar .stat-value .unit { font-size: 13px; }
  .ngy-page .stats-bar .stat-value .text-only { font-size: 15px; letter-spacing: 0; }
  .ngy-page .stats-bar .stat-item { padding: 6px 2px 4px; }
  .ngy-page .stats-notes { font-size: 12px; line-height: 1.6; padding: 6px 16px; }
  .ngy-hero .hr-firsttime { width: 260px; height: 54px; margin: 6px 0 10px; }
  .ngy-hero .hr-firsttime .ft-ttl { font-size: 15px; }
  .ngy-hero .hr-firsttime figure { width: 32px; margin-right: 8px; }
  .ngy-hero .hr-firsttime figure img { width: 32px; }
  .ngy-hero .hr-crumbs { top: 4px; left: 16px !important; font-size: 11px; }
}
/* 320〜350px級では28pxだと「できなくなったことを、」が1行に収まらないため一段落とす（KV文字サイズ引き上げ 2026-08-29） */
@media only screen and (max-width: 350px) {
  .ngy-page .hero-text .catch-line { font-size: 22px; }
  .ngy-page .hero-text .clinic-name { font-size: 13px; letter-spacing: 0.04em; }
}
@media only screen and (min-width: 768px) and (max-width: 1023px) {
  .ngy-hero .hr-firsttime { width: 340px; }
}

/* ② 開院準備中の告知帯（競合調査 2026-08-04: 同じ天神のよつば会は画面の約1/6を
   開院予定日に使用。当方は小さな帯1つで埋没していたため、日付を主役にした大型表示へ。
   ユーザー判断 2026-08-07: 表示拡大を採用。カウントダウンは調査16件で採用ゼロのため実施しない） */
/* 2026-08-18 ユーザー指摘: 目次だけ白帯で告知帯とグレー帯の間に孤立して見える
   → 告知帯と同じミント地でひと続きにし、境界線は目次帯の下端へ移す */
.ngy-page .ngy-notice { background: #eaf8f4; border-top: 1px solid #c9e6da; padding: 44px 0 24px; text-align: center; }
.l-main.ngy-page .ac-link { background: #eaf8f4; border-bottom: 1px solid #c9e6da; margin-top: 0; padding: 0 0 36px; }
@media only screen and (max-width: 767px) {
  .l-main.ngy-page .ac-link { margin-top: 0; padding: 4px 0 28px; }
}
.ngy-notice .nt-ttl { display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 21px; font-weight: 700; color: #007450; margin: 0 0 14px; }
.ngy-notice .nt-ttl .nt-ico { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: #0c9367; color: #fff; font-size: 16px; flex: none; }
.ngy-notice .nt-date { font-size: 26px; font-weight: 700; color: #007450; line-height: 1.3; margin: 0 0 18px; }
.ngy-notice .nt-date strong { display: inline-block; font-size: 56px; color: #007450; letter-spacing: 0.02em; margin-right: 10px; }
.ngy-notice .nt-txt { font-size: 18px; line-height: 1.9; margin: 0; color: #333; text-align: center; }
@media only screen and (max-width: 767px) {
  .ngy-page .ngy-notice { padding: 32px 0 28px; }
  .ngy-notice .nt-ttl { font-size: 19px; }
  .ngy-notice .nt-date { font-size: 21px; }
  .ngy-notice .nt-date strong { display: block; font-size: 40px; margin: 0 0 4px; }
  .ngy-notice .nt-txt { text-align: left; }
}

/* ③b 実績の数字バンド（数字主体・深緑地に白。白文字と#007450のコントラスト約8.9:1） */
.ngy-page .ngy-stats { background: #007450; padding: 44px 0 36px; }
.ngy-stats .st-lead { font-size: 18px; font-weight: 700; line-height: 1.8; color: #fff; text-align: center; margin: 0 0 24px; }
.ngy-stats .st-list { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 0 0 20px; padding: 0; }
/* color はテーマ継承の #555 のままだと深緑地で低コントラストになるため白を明示
   （テキスト実体は子 span 側だが、コンテナの継承色も背景に対して読める色に揃える） */
.ngy-stats .st-list > li { text-align: center; padding: 8px 12px; margin: 0; color: #fff; }
.ngy-stats .st-list > li + li { border-left: 1px solid rgba(255, 255, 255, 0.35); }
.ngy-stats .st-lbl { display: block; font-size: 17px; font-weight: 700; color: #d9f0e7; line-height: 1.5; margin-bottom: 8px; }
.ngy-stats .st-num { display: block; font-size: 26px; font-weight: 700; color: #fff; line-height: 1.2; margin-bottom: 10px; }
.ngy-stats .st-num em { font-style: normal; font-size: 52px; letter-spacing: 0.01em; }
.ngy-stats .st-sub { display: block; font-size: 16px; color: #eaf8f4; line-height: 1.6; }
.ngy-stats .st-note { font-size: 16px; line-height: 1.8; color: #eaf8f4; margin: 0; text-align: center; }
@media only screen and (max-width: 767px) {
  .ngy-page .ngy-stats { padding: 32px 0 28px; }
  .ngy-stats .st-list { grid-template-columns: 1fr; gap: 0; }
  .ngy-stats .st-list > li { padding: 16px 0; }
  .ngy-stats .st-list > li + li { border-left: none; border-top: 1px solid rgba(255, 255, 255, 0.35); }
  .ngy-stats .st-num em { font-size: 44px; }
  .ngy-stats .st-lead { text-align: left; }
  .ngy-stats .st-note { text-align: left; }
}

/* ⑨b 不安・疑問の吹き出し（イラスト＋吹き出しチップ→直後のCTA帯へつなぐ） */
.ngy-page .ngy-worry { background: #fff; padding: 60px 0; }
@media only screen and (min-width: 768px) { .ngy-page .ngy-worry { padding: 100px 0 88px; } }
.ngy-worry .wr-fig { margin: 8px auto 28px; max-width: 720px; }
.ngy-worry .wr-fig img { width: 100%; height: auto; display: block; }
.ngy-worry .wr-list { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; max-width: 860px; margin: 0 auto 28px; padding: 0; }
.ngy-worry .wr-list > li { position: relative; background: #eaf8f4; border: 1px solid #c9e6da; border-radius: 24px; padding: 12px 22px; font-size: 17px; font-weight: 700; color: #007450; line-height: 1.6; margin: 0; }
.ngy-worry .wr-list > li::after { content: ''; position: absolute; left: 28px; bottom: -8px; width: 14px; height: 14px; background: #eaf8f4; border-right: 1px solid #c9e6da; border-bottom: 1px solid #c9e6da; transform: rotate(45deg) skew(10deg, 10deg); }
.ngy-worry .wr-lead { font-size: 18px; line-height: 1.9; color: #333; text-align: center; margin: 0; }
/* firsttime.css の .l-main.m-firsttime ul { margin-bottom:0 } リセット（詳細度0,2,1）が
   上記 .wr-list / 下記 .ngy-dr（いずれも0,2,0）の下マージン28pxを打ち消していたため、
   クラス3つ（0,3,0）で上書きして復元（2026-08-18 ユーザー指摘: 吹き出し→締め文が密着） */
.ngy-page .ngy-worry .wr-list { margin-bottom: 28px; }
.ngy-page .ngy-dr.ngy-dr { margin-bottom: 28px; }
/* 6つの取り組み: 末尾の「リペア幹細胞」注記が直上要素と密着していたため余白を追加
   （2026-08-18 実績バンド削除に伴い隣接セレクタから変更） */
.ngy-page .index_commit .note { margin-top: 24px; }
.ngy-page .index_commit .common_ttl01_sub br.sm-only { display: none; }
/* 6つの取り組みカード: テーマはカード内の余り空間をタイトルとテキストの間に配分するため、
   内容が短いカードほど1行目が下に落ちて行内でガタつく（実測85〜143px、ユーザー指摘 2026-08-18）。
   タイトル直後にテキストを上揃えし、余り空間は図の上（desc内）で吸収して図は下揃えを維持する */
.ngy-page .index_commit .slct-box { align-content: start; grid-template-rows: auto 1fr; }
.ngy-page .index_commit .slct-box .desc { display: grid; align-content: space-between; }
@media only screen and (max-width: 767px) {
  .ngy-worry .wr-list { gap: 12px; }
  .ngy-worry .wr-list > li { font-size: 16px; padding: 10px 18px; }
  .ngy-worry .wr-lead { text-align: left; }
}

/* ⑤ 行っている治療: 写真＋タイトルの2カード */
.ngy-page .ngy-tx { background: #fff; padding: 60px 0; }
@media only screen and (min-width: 768px) { .ngy-page .ngy-tx { padding: 100px 0 96px; } }
.ngy-tx .tx-grd { display: grid; gap: 20px; margin: 24px 0 16px; }
@media only screen and (min-width: 768px) { .ngy-tx .tx-grd { grid-template-columns: 1fr 1fr; gap: 32px; } }
.ngy-tx .tx-card { display: block; background: #fff; border: 1px solid #d6e2db; border-radius: 6px; overflow: hidden; transition: transform 0.2s ease, box-shadow 0.2s ease; }
.ngy-tx .tx-card:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08); }
.ngy-tx .tx-card figure { margin: 0; aspect-ratio: 16 / 9; overflow: hidden; }
.ngy-tx .tx-card img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ngy-tx .tx-ttl { font-size: 22px; font-weight: 700; color: #007450; text-align: center; margin: 18px 16px 6px; line-height: 1.5; }
.ngy-tx .tx-ttl .arw { color: #0c9367; font-size: 16px; margin-left: 6px; }
.ngy-tx .tx-txt { font-size: 16px !important; line-height: 1.8 !important; color: #333; margin: 0 20px 20px; text-align: center; }

/* ⑨ 症例紹介: theme.css の .index_voice/.post_list を流用し、下層ページ向けに補正 */
.ngy-page .index_voice { padding: 60px 0; background: #f6f9f7; }
@media only screen and (min-width: 768px) { .ngy-page .index_voice { padding: 100px 0 96px; } }
.ngy-page .index_voice .post_list ul { display: flex; flex-wrap: wrap; }
.ngy-page .index_voice .post_list ul li { width: 23%; margin: 0 1% 20px; }
.ngy-page .index_voice .post_list .thumb { height: 190px; background-color: #e8eeeb; }
.ngy-page .index_voice .post_list .ttl { font-size: 16px; line-height: 1.6; }
.ngy-page .index_voice .post_list p.txt { display: none; }  /* 本文抜粋は長すぎるため本番トップ同様に非表示 */
@media only screen and (max-width: 767px) {
  .ngy-page .index_voice .post_list ul li { width: 48%; margin: 0 1% 16px; }
  .ngy-page .index_voice .post_list .thumb { height: 130px; }
}
/* theme.css の .index_voice / .cat_list はトップのダーク背景前提（白文字・淡色タグ）。
   本ページは明色背景に置くため、文字を濃色・タグを深緑に是正する
   （カードの li ラッパーがセクションの白文字を継承するため、セクションごと濃色化） */
.ngy-page .index_voice,
.ngy-page .index_voice .post_list ul li { color: #333; }
.ngy-page .index_voice .common_ttl01 { color: #007450; }  /* テーマの白見出し（ダーク背景前提）を濃色化 */
/* カテゴリタグ: 本文18px化の影響でカード幅に収まらず縦積みになる。
   デザイン案のカード（タイトル＋日付）に合わせて非表示にする */
.ngy-page .index_voice .post_list .cat_list { display: none !important; }
.ngy-page .index_voice .post_list .detail,
.ngy-page .index_voice .post_list .detail .ttl { color: #333; }
.ngy-page .index_voice .post_list .detail .date { color: #555; font-size: 16px; }
.ngy-page .index_voice .case-lead { font-size: 18px; line-height: 1.9; color: #333; margin: 0 0 12px; }
.ngy-page .index_voice .case-note { font-size: 16px; line-height: 1.8; color: #333; margin: 0 0 24px; }

/* 文中リンク（FAQ・表・注記内）: 行高由来でタップ領域が21px程度になるため、
   inline-block + 上下パディングで44px以上を確保（負マージンで行送りは維持） */
.ngy-page .qa-list dd a,
.ngy-page .time_table a,
.ngy-page .sec .container p a,
.ngy-page .note a { display: inline-block; padding: 12px 2px; margin: -8px 0; line-height: 1.4; }

/* CTA帯（.grn_cta は .sec ではないため本文サイズ補正が届かない）: 15px/14pxをシニア基準へ */
.ngy-page .grn_cta .consult { font-size: 18px; line-height: 1.9; }
.ngy-page .grn_cta .ft-list li { font-size: 16px; }
.ngy-page .grn_cta .tel a { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; }
.ngy-page .grn_cta .tel .note { font-size: 16px; }
/* ボタン内テキスト14pxをシニア基準へ。固定幅だと16px化で中途改行するため幅は内容に合わせる */
.ngy-page .btn.btnarrow span { font-size: 16px; }
.ngy-page .common_link .btn.btnarrow { width: auto; min-width: 240px; max-width: 100%; padding-left: 28px; padding-right: 44px; }
.ngy-page .common_link .btn.btnarrow span { white-space: nowrap; }
/* 「料金一覧を見る」等の茶ボタンが直上の白ボックスに密着していた（2026-08-07 ユーザーFB）。
   費用・症例・FAQ各所の common_link に一律で上余白を確保 */
.ngy-page .common_link { margin-top: 28px; }
/* 「治療に伴う主なリスク」注記が直上のボタン付きボックスに詰まっていた（アネマ廣山さんFB 2026-08-17） */
.ngy-page #fee .note { margin-top: 28px; }
/* テーマのパンくず帯を非表示にし、ヒーロー内にインラインで移設（ユーザー指示 2026-08-21:
   フルタイトル表示で縦幅を浪費、階層1段で実用価値が薄い → ヒーロー内にコンパクト化） */
body:has(.ngy-page) .crumbs { display: none !important; }
.ngy-hero .hr-crumbs { position: absolute; top: 6px; left: 170px; z-index: 5; font-size: 12px; color: rgba(255,255,255,0.85); margin: 0; text-shadow: 0 1px 4px rgba(0,0,0,0.5); }
.ngy-hero .hr-crumbs a { color: rgba(255,255,255,0.85); text-decoration: none; }
.ngy-hero .hr-crumbs a:hover { color: #fff; text-decoration: underline; }
.ngy-hero .hr-crumbs .sep { margin: 0 6px; }
/* 長文ボタン（治療に関するよくあるご質問を見る）でテキストがボタン右端からはみ出していた
   （PC: 通し目視 2026-08-11 検出 / モバイル: ユーザー指摘 2026-08-18 で同事象を確認）。
   原因は theme.css がコンテナ幅を固定（PC 230px・モバイル280px）し、nowrap のテキスト
   256px+パディング72px が収まらないため。全幅でコンテナ・ボタンとも内容適合にし、中央寄せを維持 */
.ngy-page .common_link { width: fit-content; max-width: 100%; margin-left: auto; margin-right: auto; }
.ngy-page .common_link a.btn.btnarrow { width: fit-content; max-width: 100%; }
/* 320px級の極小幅では内容適合でも収まらないため折返しを許可 */
@media only screen and (max-width: 350px) {
  .ngy-page .common_link .btn.btnarrow span { white-space: normal; }
}
/* 文節単位の改行（Chrome/Edge）。「〜治療を｜を｜」「ご案｜内」のような1文字だけの
   孤立改行を防ぐ（ユーザー指摘 2026-08-18）。非対応ブラウザは従来挙動のまま */
.ngy-page h2, .ngy-page h3, .ngy-page h4, .ngy-page p, .ngy-page li,
.ngy-page dt, .ngy-page dd, .ngy-page .if-ttl, .ngy-page .st-lbl { word-break: auto-phrase; }

/* ---- リンクカードのアフォーダンス強化（ユーザー指示 2026-08-18）----
   カードがリンクだと分かりにくいため、症状タイル（小）は右端に緑丸矢印のみ、
   大カード（治療・6つの取り組み・症例・医師）は右下に「詳細を見る ＞」を表示。
   すべてCSS疑似要素のみ（本文・画像・HTMLは不変） */
/* 症状タイルはカード幅が狭く（PC180px/SP169px）、矢印を入れるとテキストと被る。
   カード全体が<a>でホバー半透明もあるため、ここは矢印なしでリンクと認識できる */
.ngy-page .tx-card::after,
.ngy-page .slct-box[href]::after,
.ngy-page .index_voice .post_list li a .detail::after,
.ngy-page .ngy-dr a::after {
  content: '詳細を見る ＞';
  display: block; text-align: right;
  font-size: 15px; font-weight: 700; color: #007450;
  padding: 10px 14px 2px 0; line-height: 1.4;
}
/* 医師カードはテキスト中央揃えのカードなのでラベルも中央に */
.ngy-page .ngy-dr a::after { text-align: center; padding-right: 0; }
/* 症例カードは白背景が内側の .detail のみ（a自体は透明）のため、ラベルはカード外に
   置かず .detail 内の右下に固定する（ユーザー指摘 2026-08-18） */
.ngy-page .index_voice .post_list li a .detail { position: relative; padding-bottom: 38px; }
.ngy-page .index_voice .post_list li a .detail::after { position: absolute; right: 0; bottom: 8px; padding: 0 14px 0 0; }

/* CTA帯: 柑橘の背景写真は治療の文脈と無関係で文字も沈むため、無地の深緑に */
.ngy-page .grn_cta { background-image: none !important; background-color: #007450 !important; }

/* 医師の顔写真リスト（競合調査 2026-08-04: 当方はここが顔写真ゼロで最も見劣りしていた。
   2026-08-07 ユーザーFBで理事長を先頭に追加し4枚組に。理事長写真(639x540)と院長写真(400x266)で
   縦横比が違うため aspect-ratio + object-fit で切り抜きを統一（顔が切れないよう上寄せ） */
/* 西村医師追加で5枚組に（2026-08-17）。PC幅は5枚を1列に。
   2026-08-18: 一時「理事長中央」を試したが、等サイズカードでは中央が強調にならず
   読み順（左から）が序列に見えるため、理事長先頭（左端）に確定。全幅で理事長が最初 */
.ngy-page .ngy-dr { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin: 20px 0 28px; padding: 0; }
.ngy-page .ngy-dr > li { width: calc((100% - 56px) / 5); }
@media only screen and (max-width: 1023px) {
  .ngy-page .ngy-dr > li { width: calc((100% - 14px) / 2); }
}
@media only screen and (max-width: 767px) {
  .ngy-page .ngy-dr > li { width: 100%; }
}
.ngy-page .ngy-dr > li { margin: 0; position: relative; }
.ngy-page .ngy-dr > li::before { content: ''; position: absolute; top: 10px; left: 10px; width: 100%; height: 100%; background: #007450; z-index: 0; }
.ngy-page .ngy-dr a { display: block; height: 100%; background: #fff; border: 1px solid #d6e2db; overflow: hidden; padding-bottom: 14px; transition: transform .2s ease, box-shadow .2s ease; position: relative; z-index: 1; }
.ngy-page .ngy-dr a:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,.08); }
.ngy-page .ngy-dr figure { margin: 0 0 12px; }
.ngy-page .ngy-dr img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; object-position: center top; display: block; }
.ngy-page .ngy-dr .dr-pos { display: block; font-size: 16px; color: #007450; font-weight: 700; text-align: center; line-height: 1.5; }
.ngy-page .ngy-dr .dr-name { display: block; font-size: 21px; color: #007450; font-weight: 700; text-align: center; line-height: 1.5; }
.ngy-page .ngy-dr .dr-en { display: block; font-size: 16px; color: #555; text-align: center; line-height: 1.5; letter-spacing: 0.04em; }

/* 医師・診療体制と症例のご案内（デザイン案v3のアイコン付き行リスト） */
.ngy-page .ngy-info { list-style: none; margin: 24px 0 0; padding: 0; }
.ngy-page .ngy-info > li { margin: 0 0 14px; }
.ngy-page .ngy-info a,
.ngy-page .ngy-info .if-static { display: flex; align-items: center; gap: 16px; background: #fff; border: 1px solid #d6e2db; border-radius: 6px; padding: 18px 20px; min-height: 64px; }
.ngy-page .ngy-info a { transition: transform .2s ease, box-shadow .2s ease; color: #333; }
.ngy-page .ngy-info a:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,.08); }
.ngy-page .ngy-info .if-ico { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 50%; background: #eaf8f4; color: #007450; font-size: 20px; }
.ngy-page .ngy-info .if-body { display: block; min-width: 0; }
.ngy-page .ngy-info .if-ttl { display: block; font-size: 20px; font-weight: 700; color: #007450; line-height: 1.5; margin: 0 0 4px; }
.ngy-page .ngy-info .if-txt { display: block; font-size: 16px; line-height: 1.8; color: #333; }
.ngy-page .ngy-info .if-arw { flex: none; margin-left: auto; color: #0c9367; font-size: 20px; }

/* ⑩ お知らせ: 日付+タイトルのシンプルなリスト（本番 /information/notice/ と同形式）
   テーマの .sec が padding を 110px に上書きするため !important で制御 */
.ngy-page .ngy-news { padding: 20px 0 60px !important; background: #fff; }
@media only screen and (min-width: 768px) { .ngy-page .ngy-news { padding: 30px 0 80px !important; } }
.ngy-page .ngy-news-list { list-style: none; margin: 28px 0 0; padding: 0; }
.ngy-page .ngy-news-list > li { border-bottom: 1px solid #e0e0e0; }
.ngy-page .ngy-news-list > li:first-child { border-top: 1px solid #e0e0e0; }
.ngy-page .ngy-news-list > li > a {
  display: flex; align-items: baseline; gap: 28px;
  padding: 20px 8px; color: #333; text-decoration: none;
  transition: background .2s ease;
}
.ngy-page .ngy-news-list > li > a:hover { background: #f8f8f8; }
.ngy-page .ngy-news-list time {
  flex: none; font-family: 'Outfit', 'Roboto Condensed', sans-serif;
  font-size: 15px; color: #888; letter-spacing: 0.02em; white-space: nowrap;
}
.ngy-page .ngy-news-list .news-title {
  font-size: 16px; line-height: 1.7; color: #333;
}
@media only screen and (max-width: 767px) {
  .ngy-page .ngy-news-list > li > a { flex-direction: column; gap: 4px; padding: 16px 4px; }
  .ngy-page .ngy-news-list time { font-size: 13px; }
  .ngy-page .ngy-news-list .news-title { font-size: 15px; }
}
.ngy-page .ngy-news .news-more {
  text-align: center; margin-top: 32px;
}

/* FAQアコーディオン: テーマのトグルJSはこのページに読み込まれないため、
   同じ規約（dl.qa に .open 付与で±アイコン切替）で開閉を実装する（実体JSはページ末尾）。
   JSが動かない環境では js-acc が付かず全問開いたまま＝読めなくなることはない */
.ngy-page .qa-list dl.qa dt { cursor: pointer; }
.ngy-page .qa-list dl.qa.js-acc:not(.open) dd { display: none; }

/* 住所＋地図の2カラム（地図が visual anchor になる） */
.ngy-page .ngy-acs { display: grid; gap: 24px; margin-top: 8px; }
@media only screen and (min-width: 768px) {
  .ngy-page .ngy-acs { grid-template-columns: 1fr 1fr; align-items: start; gap: 32px; }
}
.ngy-page .ngy-acs iframe { width: 100%; height: 100%; min-height: 300px; border: 1px solid #cdd8d3; border-radius: 4px; display: block; }

/* 既存ボタン・カードに hover の動きを足す（既存の見た目は変えない） */
.ngy-page .btn.btnarrow { transition: transform .2s ease, box-shadow .2s ease; }
.ngy-page .btn.btnarrow:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0,90,64,.14); }
.ngy-page .btn.btnarrow:active { transform: translateY(0); }
.ngy-page .ac-list li a,
.ngy-page .index_lineup .menu-list a,
.ngy-page .slct-box[href] { transition: transform .2s ease, box-shadow .2s ease; }
.ngy-page .index_lineup .menu-list a:hover,
.ngy-page .slct-box[href]:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,.08); }
/* anchor scroll を smooth に（固定ヘッダー分のオフセットも確保） */
.ngy-page { scroll-behavior: smooth; }
.ngy-page [id] { scroll-margin-top: 120px; }

/* --- 共通パーツの是正（名古屋ページのみスコープ。ユーザーテスト・視覚監査の指摘） --- */
/* 東京院の地図と他地域セミナーバナー: 「所在地は正式決定後」と矛盾し東京を福岡と誤認させる */
body:has(.ngy-page) .f_map,
body:has(.ngy-page) .footer_banner { display: none !important; }
/* 院切替タブ: ユーザー指示（2026-08-04）によりトップページと同じテーマ標準の見た目に統一（上書きしない） */
/* フッター診療案内がどの院か不明のまま10:00〜19:00と出て本文の「未定」と矛盾する */
body:has(.ngy-page) .time .ttl::after { content: "（東京院・大阪院・札幌院）"; font-size: 15px; font-weight: 500; display: block; margin-top: 2px; }
/* フッターが14px/行間1.5で本文18pxから急に窮屈になる */
body:has(.ngy-page) .l-footer,
body:has(.ngy-page) .l-footer p,
body:has(.ngy-page) .l-footer td,
body:has(.ngy-page) .l-footer th { font-size: 16px; line-height: 1.8; }
/* 「トップへ戻る」が本文に重なって文字を隠す */
body:has(.ngy-page) .pagetop { right: 6px !important; bottom: 76px !important; opacity: .85; }
/* SP下部固定バー: 2026-08-04にコントラスト是正で色・構成を上書きしていたが、
   2026-08-07 ユーザーFB「元のサイトと同じにしてほしい」により上書きを全撤去し
   テーマ標準（オレンジ電話・緑メール・YouTubeの3ボタン）へ戻した。
   ※テーマ標準はラベル11px・電話コントラスト2.08:1でシニア基準未達（既知のテーマ共通問題として扱う） */
/* PC版バーも茶#A27C4A on 白=3.81:1でAA未達 */
body:has(.ngy-page) .pc-only-contact li a,
body:has(.ngy-page) .pc-only-contact .text,
body:has(.ngy-page) .pc-only-contact .text span,
body:has(.ngy-page) .pc-only-contact .number { color: #6b4a1f !important; }
/* 2026-08-20 ユーザーFB: メールボタンの背景はグロナビと同じテーマ緑（#0c9367）に合わせるため、
   旧・深緑#007450の上書きを撤去（テーマ標準を継承）。白文字化はコントラスト是正として維持
   （テーマ標準の文字色は緑地に茶で読めないため） */
body:has(.ngy-page) .pc-only-contact .contact-mail-btn-link,
body:has(.ngy-page) .pc-only-contact .contact-mail-btn-link * { color: #fff !important; }
/* 固定バーが初期表示で本文を覆っていた（モバイル51px・tablet70px） */
body:has(.ngy-page) .l-contents { padding-bottom: 96px; }
@media only screen and (min-width: 768px) {
  body:has(.ngy-page) .l-contents { padding-bottom: 120px; }
}
