/* =============================================================================
 *  KT CLINIC — 料金表（共通）
 *  2026-08-01 新規。マークアップは inc/price-table.php が持つ。
 *
 *  料金一覧ページと施術詳細ページの両方で、**この1ファイルだけ**が
 *  料金表の見た目を決める。以前は page-price.css と single-treatment.css に
 *  同じ値が二重に書かれていた。
 *
 *  価格の大きさは 2026-08-01 に見直した（案D）。
 *  それまで価格は明朝1.05rem・太さそのままで、行名の 1.14倍しかなく、
 *  明朝の細い縦線とあいまって華奢に見えていた。
 *    数字   … 1.35rem・太さ500（行名の 1.5倍）
 *    「円」 … 数字の 72%。単位を落とすと数字が主役になり、塊が間延びしない
 *    行     … 上下の余白を広げて、数字のまわりに空きをつくる
 *  色や塗りは足していない。塗りはサイト内で「独立したお知らせ」に使っているため。
 * ========================================================================== */

.kt-ptbl{color:var(--ink);}
.kt-ptbl-grp + .kt-ptbl-grp{margin-top:2.5rem;}

/* 大見出し（料金グループ）。料金マスター名と同じときはPHP側で出さない */
.kt-ptbl .kt-ptbl-glabel{font-family:var(--serif);font-size:1rem;font-weight:600;letter-spacing:.05em;
                         color:var(--gold-deep);margin:0 0 .45rem;}
.kt-ptbl .kt-ptbl-gnote{font-size:.82rem;line-height:1.95;color:var(--sub);margin:0 0 1rem;}

/* --- 本体 -----------------------------------------------------------------
   has-parts … 中見出し（部位）があるとき。行の左端に部位の列をつくる。
   無いときは1列で並べる（空の列が空くのを避ける）。 */
.kt-ptbl-body{border-top:1px solid var(--grey-line);}
.kt-ptbl-part{border-bottom:1px solid var(--grey-line);}

.kt-ptbl-body.has-parts .kt-ptbl-part{display:flex;gap:1.5rem;align-items:flex-start;
                                      padding:.85rem .25rem;}
.kt-ptbl-part-name{flex:none;width:9rem;font-size:.9rem;font-weight:600;
                   line-height:1.7;padding-top:.35rem;}
.kt-ptbl-part-body{flex:1;min-width:0;}

/* --- 価格の行 --- */
.kt-ptbl-row{display:flex;align-items:baseline;gap:1rem;font-size:.9rem;}
.kt-ptbl-name{flex:1;min-width:0;}
.kt-ptbl-sub{font-size:.78rem;color:var(--sub);margin-left:.4rem;}
.kt-ptbl-sub::before{content:"（";}
.kt-ptbl-sub::after{content:"）";}
.kt-ptbl-yen{flex:none;font-family:var(--serif);font-size:1.35rem;font-weight:500;
             font-variant-numeric:tabular-nums;letter-spacing:.01em;white-space:nowrap;}
.kt-ptbl-yen .unit{font-size:.72em;font-weight:500;margin-left:.08em;}
.kt-ptbl-yen.is-campaign{color:#C0392B;}
.kt-ptbl-tax{font-family:var(--sans);font-size:.68rem;font-weight:400;color:var(--sub);
             margin-left:.45rem;}

/* 部位の列があるとき：右側は行そのものに余白を持たせない（器が持つ）。
   同じ部位に回数が複数あるときだけ、点線で軽く区切る。 */
.kt-ptbl-body.has-parts .kt-ptbl-row{padding:.3rem 0;}
.kt-ptbl-body.has-parts .kt-ptbl-row + .kt-ptbl-row{border-top:1px dotted var(--grey-line);
                                                    margin-top:.2rem;padding-top:.5rem;}

/* 部位の列が無いとき：1行ずつが独立した行になる */
.kt-ptbl-body:not(.has-parts) .kt-ptbl-part{padding:0;}
.kt-ptbl-body:not(.has-parts) .kt-ptbl-row{padding:1.15rem .25rem;}
.kt-ptbl-body:not(.has-parts) .kt-ptbl-row + .kt-ptbl-row{border-top:1px solid var(--grey-line);}

.kt-ptbl-note{font-size:.8rem;line-height:1.95;color:#8C8A85;margin:.6rem 0 .2rem;}
.kt-ptbl-body:not(.has-parts) .kt-ptbl-note{margin:.7rem .25rem .9rem;}

/* ===== スマホ =========================================================== */
@media (max-width:1080px){
  /* 部位の列をやめて上下に積む。横に並べると価格まで届かない */
  .kt-ptbl-body.has-parts .kt-ptbl-part{display:block;padding:.9rem .25rem;}
  .kt-ptbl-part-name{width:auto;padding-top:0;margin-bottom:.2rem;color:var(--gold-deep);
                     font-size:.85rem;letter-spacing:.04em;}
  .kt-ptbl-row{flex-wrap:wrap;gap:.25rem 1rem;}
  .kt-ptbl-yen{margin-left:auto;font-size:1.25rem;}
  .kt-ptbl-body:not(.has-parts) .kt-ptbl-row{padding:1rem .25rem;}
}
