/*
 * TSUNAGU料金表プラグイン（ショートコード [tsunagu_fee_table]）の CSS
 * - ショートコードのあるページだけで読み込む。すべてのセレクタは #tsgfee-root（料金表の外枠）の中だけに効く
 * - クラス名は tsgfee- で始まる（Local の tsunagu-theme-classic の tsunagu- を置き換え。テーマ・他プラグインと衝突しない）
 * - 1・2 は Local 完成版（料金ページ公開前完成版_2026-10-02）の CSS から自動で作成（build_css.py）。手で直さないこと
 * - 各セレクタは元の CSS より ID 1つ分だけ詳細度が高い。テーマの CSS（クラス・要素のセレクタ）より常に優先され、
 *   料金表の CSS どうしの優先順位は Local 完成版と同じ
 */

/* ===== 0. テーマの CSS を料金表の中だけ打ち消す（すべてのプロパティをブラウザの初期状態に戻す。SVG の中は除く） ===== */
#tsgfee-root, #tsgfee-root :where(*:not(svg *)), #tsgfee-root :where(*:not(svg *))::before, #tsgfee-root :where(*:not(svg *))::after, #tsgfee-root::before, #tsgfee-root::after {
  all: revert;
}

/* ===== 1. 共通デザイン（Local 完成版の style.css のうち料金ページで使っているルール。自動抽出） ===== */
#tsgfee-root.tsgfee { --tsgfee-bg: #fffdfa; --tsgfee-white: #ffffff; --tsgfee-text: #38312f; --tsgfee-text-soft: #5e5753; --tsgfee-coral: #f26f66; --tsgfee-coral-light: #fbe2de; --tsgfee-teal: #18a7aa; --tsgfee-teal-light: #dff4f3; --tsgfee-yellow: #d9aa38; --tsgfee-yellow-light: #fbf1cf; --tsgfee-border: #ebe5df; --tsgfee-coral-deep: #d0483f; --tsgfee-teal-deep: #0e8487; --tsgfee-font-sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif; --tsgfee-font-serif: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif; --tsgfee-max: 1180px; --tsgfee-gutter: 24px; --tsgfee-section-y: 112px; --tsgfee-radius: 16px; --tsgfee-radius-sm: 12px; --tsgfee-radius-pill: 999px; --tsgfee-shadow: 0 6px 24px rgba(56, 49, 47, 0.06); --tsgfee-header-h: 76px; --tsgfee-accent: var(--tsgfee-coral); --tsgfee-accent-deep: var(--tsgfee-coral-deep); --tsgfee-accent-light: var(--tsgfee-coral-light); }
@media (max-width: 1024px) { #tsgfee-root.tsgfee { --tsgfee-section-y: 80px; --tsgfee-header-h: 68px; } }
@media (max-width: 768px) { #tsgfee-root.tsgfee { --tsgfee-section-y: 56px; --tsgfee-gutter: 20px; --tsgfee-header-h: 64px; } }
@media (max-width: 768px) { #tsgfee-root.tsgfee { font-size: 16px; } }
#tsgfee-root.tsgfee { margin: 0px; background: var(--tsgfee-bg); color: var(--tsgfee-text); font-family: var(--tsgfee-font-sans); font-size: 17px; line-height: 1.85; text-size-adjust: 100%; overflow-x: hidden; }
#tsgfee-root *, #tsgfee-root ::before, #tsgfee-root ::after { box-sizing: border-box; }
#tsgfee-root a { color: inherit; }
#tsgfee-root :is(h1, h2, h3, p, ul, ol, dl, dd, figure) { margin: 0px; }
#tsgfee-root ul { padding: 0px; list-style: none; }
#tsgfee-root.tsgfee { line-break: strict; word-break: auto-phrase; }
#tsgfee-root :is(p, li, h1, h2, h3) { text-wrap: pretty; }
#tsgfee-root.tsgfee :focus-visible { outline: 3px solid var(--tsgfee-teal-deep); outline-offset: 3px; border-radius: 4px; }
#tsgfee-root .tsgfee-container { width: 100%; max-width: calc(var(--tsgfee-max) + var(--tsgfee-gutter) * 2); margin-inline: auto; padding-inline: var(--tsgfee-gutter); }
#tsgfee-root .tsgfee-section { position: relative; padding-block: var(--tsgfee-section-y); }
#tsgfee-root .tsgfee-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 0px 28px; border-radius: var(--tsgfee-radius-pill); border: 1.5px solid transparent; font-style: inherit; font-variant: inherit; font-stretch: inherit; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-size: 16px; font-weight: 700; line-height: 1.4; text-decoration: none; cursor: pointer; text-align: center; transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s; }
#tsgfee-root .tsgfee-btn::after { content: ""; width: 7px; height: 7px; flex: 0 0 auto; border-top: 2px solid currentcolor; border-right: 2px solid currentcolor; transform: rotate(45deg); margin-left: -2px; }
#tsgfee-root .tsgfee-btn--coral { background: var(--tsgfee-coral-deep); color: rgb(255, 255, 255); }
#tsgfee-root .tsgfee-btn--coral:hover { background: rgb(185, 60, 52); }
#tsgfee-root .tsgfee-btn--white { background: rgb(255, 255, 255); color: var(--tsgfee-text); border-color: var(--tsgfee-border); box-shadow: rgba(56, 49, 47, 0.06) 0px 2px 10px; }
#tsgfee-root .tsgfee-btn--white:hover { border-color: var(--tsgfee-text-soft); }
#tsgfee-root .tsgfee-btn--sm { min-height: 44px; padding: 0px 20px; font-size: 15px; }
#tsgfee-root .tsgfee-curve { display: block; width: 100%; height: 120px; pointer-events: none; }
#tsgfee-root .tsgfee-curve path { fill: none; stroke-width: 1.6; stroke-linecap: round; }
#tsgfee-root .tsgfee-curve--tight { height: 84px; }
@container tsgfee (max-width: 768px) { #tsgfee-root .tsgfee-curve { height: 72px; } }
#tsgfee-root .tsgfee-sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0px; overflow: hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border: 0px; }
#tsgfee-root .tsgfee-pagehead { position: relative; overflow: hidden; padding: clamp(40px, 6vw, 80px) 0px clamp(28px, 4vw, 48px); text-align: center; background: linear-gradient(180deg, #fff 0%, var(--tsgfee-bg) 100%); }
#tsgfee-root .tsgfee-pagehead::before { content: ""; position: absolute; width: clamp(120px, 16vw, 210px); aspect-ratio: 1 / 1; right: 4%; top: -30px; border-radius: 50%; background: rgba(24, 167, 170, 0.13); }
#tsgfee-root .tsgfee-pagehead::after { content: ""; position: absolute; width: clamp(70px, 9vw, 120px); aspect-ratio: 1 / 1; left: 6%; bottom: 20px; border-radius: 50%; background: rgba(242, 111, 102, 0.12); }
#tsgfee-root .tsgfee-pagehead .tsgfee-container { position: relative; z-index: 1; }
#tsgfee-root .tsgfee-pagehead__title { font-family: var(--tsgfee-font-serif); font-weight: 500; font-size: clamp(28px, 4vw, 44px); line-height: 1.5; margin-top: 14px; }
#tsgfee-root .tsgfee-pagehead__lead { margin: 14px auto 0px; max-width: 680px; color: var(--tsgfee-text-soft); }
#tsgfee-root .tsgfee-section--sub { padding-block: clamp(36px, 5.5vw, 68px); }
#tsgfee-root .tsgfee-section--tint { background: linear-gradient(180deg, var(--tsgfee-bg), #fff 40%, var(--tsgfee-bg)); }
#tsgfee-root .tsgfee-anchor { scroll-margin-top: calc(var(--tsgfee-header-h) + 16px); }
#tsgfee-root .tsgfee-h2--sub { font-family: var(--tsgfee-font-serif); font-weight: 600; font-size: clamp(25px, 3vw, 34px); line-height: 1.5; }
#tsgfee-root .tsgfee-h2--sub::after { content: ""; display: block; width: 56px; height: 3px; margin-top: 14px; border-radius: 3px; background: var(--tsgfee-accent); }
#tsgfee-root .tsgfee-card { background: rgb(255, 255, 255); border: 1px solid var(--tsgfee-border); border-radius: var(--tsgfee-radius); padding: 28px 30px; box-shadow: var(--tsgfee-shadow); }
#tsgfee-root .tsgfee-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
#tsgfee-root .tsgfee-chips li { padding: 8px 20px; border-radius: var(--tsgfee-radius-pill); background: var(--tsgfee-accent-light); color: var(--tsgfee-text); font-weight: 700; }
#tsgfee-root .tsgfee-cta-row { margin-top: 28px; display: flex; flex-wrap: wrap; gap: 12px; }
#tsgfee-root .tsgfee-cta-row--center { justify-content: center; }
@container tsgfee (max-width: 640px) { #tsgfee-root .tsgfee-cta-row .tsgfee-btn { width: 100%; min-height: 52px; } }
@media (prefers-reduced-motion: reduce) { #tsgfee-root *, #tsgfee-root ::before, #tsgfee-root ::after { transition-duration: 0.01ms !important; scroll-behavior: auto !important; } }
#tsgfee-root .tsgfee-chips--center { justify-content: center; }
#tsgfee-root .tsgfee-chips a { display: block; text-decoration: none; }
#tsgfee-root .tsgfee-chips li:has(> a) { padding: 0px; }
#tsgfee-root .tsgfee-chips li > a { padding: 8px 20px; min-height: 44px; display: flex; align-items: center; border-radius: var(--tsgfee-radius-pill); color: var(--tsgfee-text); font-weight: 700; }
#tsgfee-root .tsgfee-chips li > a:hover { background: rgb(255, 255, 255); box-shadow: inset 0 0 0 1.5px var(--tsgfee-accent); }
#tsgfee-root.tsgfee { --tsgfee-tg-indigo: #263B4A; --tsgfee-tg-indigo-hover: #33505F; --tsgfee-tg-gold: #C8A661; --tsgfee-tg-gold-light: #E3C98F; --tsgfee-tg-ivory: #F7F1E6; --tsgfee-tg-ivory-soft: #E6DDCF; --tsgfee-tg-coral-on-indigo: #F59A92; --tsgfee-tg-teal-on-indigo: #6FD3D5; }
div#tsgfee-root.tsgfee.tsgfee :is(.tsgfee-pagehead__title, .tsgfee-h2, .tsgfee-h2--sub, .tsgfee-eyebrow, .rc-hero__title, .rc-visit__title, .tsgfee-recruit__title, .tsgfee-contact__title, .tsgfee-insta__title, .tsgfee-about__title, .tsgfee-philo__main, .tsgfee-pl__main, .tsgfee-pl__sub, .tsgfee-philo__sub) { color: var(--tsgfee-tg-indigo); }
div#tsgfee-root.tsgfee.tsgfee .tsgfee-pagehead__title { display: flex; align-items: center; justify-content: center; gap: clamp(14px, 2.4vw, 22px); text-wrap: balance; }
div#tsgfee-root.tsgfee.tsgfee .tsgfee-pagehead__title::before, div#tsgfee-root.tsgfee.tsgfee .tsgfee-pagehead__title::after { content: ""; flex: 0 0 clamp(28px, 5vw, 56px); height: 1px; background: var(--tsgfee-tg-gold); }
@container tsgfee (max-width: 640px) { div#tsgfee-root.tsgfee.tsgfee .tsgfee-pagehead__title { display: block; text-align: center; } }
@container tsgfee (max-width: 640px) { div#tsgfee-root.tsgfee.tsgfee .tsgfee-pagehead__title::before { content: none; } }
@container tsgfee (max-width: 640px) { div#tsgfee-root.tsgfee.tsgfee .tsgfee-pagehead__title::after { display: block; width: 40px; margin: 14px auto 0px; } }
div#tsgfee-root.tsgfee.tsgfee .tsgfee-h2--sub:not(.tsgfee-h2--center):not(:has(br)) { display: flex; align-items: center; gap: 18px; }
div#tsgfee-root.tsgfee.tsgfee .tsgfee-h2--sub:not(.tsgfee-h2--center):not(:has(br))::after { content: ""; display: block; flex: 0 0 56px; width: 56px; height: 1px; margin: 0px; border-radius: 0px; background: var(--tsgfee-tg-gold); }
div#tsgfee-root.tsgfee.tsgfee .tsgfee-pagehead::before { width: clamp(90px, 11vw, 150px); right: 2%; top: -40px; background: rgba(24, 167, 170, 0.08); }
div#tsgfee-root.tsgfee.tsgfee .tsgfee-pagehead::after { width: clamp(56px, 7vw, 90px); left: 3%; bottom: 8px; background: rgba(241, 217, 138, 0.22); }
#tsgfee-root.tsgfee { --tsgfee-tg-wave: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0,60 L1440,60 L1440,32 C1300,14 1140,12 960,26 C780,40 620,44 460,30 C300,16 150,12 0,24 Z' fill='%23000'/%3E%3C/svg%3E"); --tsgfee-tg-wave-h: clamp(18px, 3vw, 36px); --tsgfee-tg-card-bg: #FFFEFB; }
div#tsgfee-root.tsgfee :where(.tsgfee-features, .tsgfee-pamphlet, .tsgfee-contact, .ab-intro, .rc-intro-sec, [id="environment"], .tsgfee-section--tint) { position: relative; isolation: isolate; }
div#tsgfee-root.tsgfee :where(.tsgfee-features, .tsgfee-pamphlet, .tsgfee-contact, .ab-intro, .rc-intro-sec, [id="environment"], .tsgfee-section--tint:not(.tsgfee-section--tint ~ .tsgfee-section--tint))::after { content: ""; position: absolute; z-index: -1; top: var(--tsgfee-tg-dots-top, 18%); width: 190px; height: 190px; pointer-events: none; }
div#tsgfee-root.tsgfee :where(.tsgfee-pamphlet, .rc-intro-sec, .tsgfee-section--tint:not(.tsgfee-section--tint ~ .tsgfee-section--tint))::after { right: 0px; left: auto; background: radial-gradient(circle closest-side, rgba(42, 168, 170, 0.12) 0px, rgba(42, 168, 170, 0.12) 98%, transparent 100%) right -64px top 10px / 140px 140px no-repeat, radial-gradient(circle closest-side, rgba(241, 217, 138, 0.16) 0px, rgba(241, 217, 138, 0.16) 98%, transparent 100%) right 50px top 104px / 54px 54px no-repeat, radial-gradient(circle closest-side, rgba(239, 127, 116, 0.1) 0px, rgba(239, 127, 116, 0.1) 98%, transparent 100%) right 58px top 2px / 24px 24px no-repeat; }
div#tsgfee-root.tsgfee :where(.tsgfee-contact, .ab-intro, .tsgfee-section--tint)::after { top: auto; bottom: 16px; }
@container tsgfee (max-width: 1023px) { div#tsgfee-root.tsgfee :is(.tsgfee-features, .tsgfee-pamphlet, .tsgfee-contact, .ab-intro, .rc-intro-sec, [id="environment"], .tsgfee-section--tint:not(.tsgfee-section--tint ~ .tsgfee-section--tint))::after { width: 64px; height: 96px; top: auto; bottom: 4px; } }
@container tsgfee (max-width: 1023px) { div#tsgfee-root.tsgfee :is(.tsgfee-pamphlet, .rc-intro-sec, .tsgfee-section--tint:not(.tsgfee-section--tint ~ .tsgfee-section--tint))::after { background: radial-gradient(circle closest-side, rgba(42, 168, 170, 0.12) 0px, rgba(42, 168, 170, 0.12) 98%, transparent 100%) right -36px top 6px / 76px 76px no-repeat, radial-gradient(circle closest-side, rgba(241, 217, 138, 0.16) 0px, rgba(241, 217, 138, 0.16) 98%, transparent 100%) right 18px top 62px / 28px 28px no-repeat; } }
#tsgfee-root .tsgfee-pagehead__eyebrow { margin: 0px 0px 14px; color: rgb(14, 132, 135); font-family: sans-serif; font-size: 12.48px; font-weight: 700; letter-spacing: 0.18em; line-height: 1.4; text-align: center; }
@container tsgfee (max-width: 767px) { #tsgfee-root .tsgfee-pagehead__eyebrow { margin-bottom: 10px; font-size: 11.52px; } }
#tsgfee-root .tsgfee-pagehead__eyebrow { margin-top: 24px; }
@container tsgfee (max-width: 767px) { #tsgfee-root .tsgfee-pagehead__eyebrow { margin-top: 18px; } }

/* ===== 2. 料金表（Local 完成版の assets/fee/css/fee.css を変換） ===== */
/*
 * 料金について（/fee/）料金表の CSS（2026-10-01 新規）
 * - page-fee.php だけで読み込む。既存の style.css・simulator.css は変更しない
 * - クラス名は tsgfee-feeprice / tsgfee-feetable で始める（既存のクラスと重ならない）
 * - PC・iPad は表、スマートフォン（640px 以下）は1行を1枚のカードにする
 * - A4 印刷：ヘッダー・フッター・ナビ・ボタンを隠し、表は行の途中で分けない
 */

#tsgfee-root .tsgfee-feeprice { --fee-line: var(--tsgfee-border, #ebe5df); --fee-head: var(--tsgfee-coral-light, #fbe2de); --fee-ink: #3b3733; --fee-sub: #6b645d; }

#tsgfee-root .tsgfee-feeprice__meta { margin: 18px auto 0; max-width: 760px; text-align: center; font-size: 15px; line-height: 1.8; color: var(--fee-sub); }
#tsgfee-root .tsgfee-feeprice__meta a { color: inherit; }
#tsgfee-root .tsgfee-feeprice__print { margin: 12px 0 0; text-align: center; }
#tsgfee-root .tsgfee-feeprice__print-only { display: none; }

#tsgfee-root .tsgfee-feeprice__sub { display: inline-block; margin-left: 12px; font-size: 0.6em; font-weight: 500; color: var(--fee-sub); letter-spacing: 0.02em; }
#tsgfee-root .tsgfee-feeprice__block { margin: 28px 0 0; }
#tsgfee-root .tsgfee-feeprice__block:first-of-type { margin-top: 20px; }
#tsgfee-root .tsgfee-feeprice__h3 { margin: 0 0 12px; font-size: 18px; line-height: 1.6; font-weight: 700; color: var(--fee-ink); }
#tsgfee-root .tsgfee-feeprice__lead { margin: 0 0 14px; font-size: 15px; line-height: 1.8; color: var(--fee-sub); }
#tsgfee-root .tsgfee-feeprice__block--supplement { padding: 18px 20px 20px; border: 1px solid var(--fee-line); border-left: 5px solid var(--tsgfee-teal, #18a7aa); border-radius: var(--tsgfee-radius-sm, 12px); background: #fff; }
#tsgfee-root .tsgfee-feeprice__block--supplement .tsgfee-feeprice__h3 { font-size: 16px; }

/* ---- 表（PC・iPad） ---- */
#tsgfee-root .tsgfee-feetable-wrap { max-width: 100%; }
#tsgfee-root .tsgfee-feetable { width: 100%; border-collapse: separate; border-spacing: 0; background: #fff; border: 1px solid var(--fee-line); border-radius: var(--tsgfee-radius-sm, 12px); overflow: hidden; font-size: 15px; color: var(--fee-ink); }
#tsgfee-root .tsgfee-feetable th,
#tsgfee-root .tsgfee-feetable td { padding: 12px 14px; border-top: 1px solid var(--fee-line); text-align: left; vertical-align: middle; line-height: 1.6; }
#tsgfee-root .tsgfee-feetable thead th { border-top: 0; background: var(--fee-head); font-weight: 700; font-size: 14px; white-space: nowrap; }
#tsgfee-root .tsgfee-feetable thead th:not(:first-child) { text-align: right; }
#tsgfee-root .tsgfee-feetable--add thead th:nth-child(2) { text-align: left; }
#tsgfee-root .tsgfee-feetable tbody th { font-weight: 700; width: 34%; }
#tsgfee-root .tsgfee-feetable--add tbody th { width: 38%; }
#tsgfee-root .tsgfee-feetable__num { text-align: right !important; white-space: nowrap; font-variant-numeric: tabular-nums; }
#tsgfee-root .tsgfee-feetable__unit { margin-left: 2px; font-size: 12px; font-weight: 400; color: var(--fee-sub); }
#tsgfee-root .tsgfee-feetable__copay { font-weight: 700; }
#tsgfee-root .tsgfee-feetable__label { display: block; }
#tsgfee-root .tsgfee-feetable__tag { display: inline-block; margin-top: 4px; padding: 1px 8px; border-radius: 999px; background: #eef7f7; color: #0f6f71; font-size: 12px; font-weight: 500; }
#tsgfee-root .tsgfee-feetable__desc { display: block; margin-top: 4px; font-size: 13px; font-weight: 400; line-height: 1.7; color: var(--fee-sub); }
#tsgfee-root .tsgfee-feetable__charge { min-width: 6.5em; font-size: 14px; color: var(--fee-sub); }
@container tsgfee (min-width: 641px) and (max-width: 900px) { #tsgfee-root .tsgfee-feetable th,
#tsgfee-root .tsgfee-feetable td { padding: 10px 9px; } #tsgfee-root .tsgfee-feetable { font-size: 14px; } }
#tsgfee-root .tsgfee-feetable__inquiry { text-align: center !important; font-weight: 700; color: var(--tsgfee-coral-deep, #d0483f); }
#tsgfee-root .tsgfee-feetable__rate { text-align: center !important; font-weight: 700; }

/* ---- その他の加算（折りたたみ） ---- */
#tsgfee-root .tsgfee-feeprice__more { margin: 24px 0 0; }
#tsgfee-root .tsgfee-feeprice__more > summary { display: inline-flex; align-items: center; gap: 8px; padding: 10px 20px; border: 1px solid var(--tsgfee-teal, #18a7aa); border-radius: 999px; background: #fff; color: #0f6f71; font-weight: 700; cursor: pointer; list-style: none; }
#tsgfee-root .tsgfee-feeprice__more > summary::-webkit-details-marker { display: none; }
#tsgfee-root .tsgfee-feeprice__more > summary::after { content: "＋"; font-weight: 700; }
#tsgfee-root .tsgfee-feeprice__more[open] > summary::after { content: "−"; }
#tsgfee-root .tsgfee-feeprice__more > summary:focus-visible { outline: 3px solid rgba(24, 167, 170, 0.4); outline-offset: 2px; }

/* ---- 注意事項・CTA ---- */
#tsgfee-root .tsgfee-feeprice__notes ul { margin: 0; padding-left: 1.3em; }
#tsgfee-root .tsgfee-feeprice__notes li { margin: 0 0 8px; font-size: 15px; line-height: 1.8; }
#tsgfee-root .tsgfee-feeprice__notes li:last-child { margin-bottom: 0; }
#tsgfee-root .tsgfee-feeprice__cta-card { text-align: center; }
#tsgfee-root .tsgfee-feeprice__cta-title { margin: 0 0 8px; font-size: 20px; font-weight: 700; }
#tsgfee-root .tsgfee-feeprice__cta-card p { margin: 0 0 18px; line-height: 1.8; }
/* ---- 2026-10-02 医療保険・精神科訪問看護（円の表。10割だけ） ---- */
#tsgfee-root .tsgfee-feetable--yen tbody th { width: 52%; }
#tsgfee-root .tsgfee-feetable--yen thead th:nth-child(2) { text-align: left; }
#tsgfee-root .tsgfee-feetable--mgmt tbody th,
#tsgfee-root .tsgfee-feetable--matrix tbody th { width: 34%; }
#tsgfee-root .tsgfee-feetable--mgmt thead th:nth-child(2),
#tsgfee-root .tsgfee-feetable--matrix thead th:nth-child(2) { text-align: right; }
#tsgfee-root .tsgfee-feetable__sub { font-weight: 500; font-size: 0.92em; }
#tsgfee-root .tsgfee-feeprice__tnote { margin: 8px 0 0; font-size: 13px; line-height: 1.7; color: var(--fee-sub); }
#tsgfee-root .tsgfee-feeprice__notes-h { margin: 0 0 8px; font-size: 16px; font-weight: 700; }
#tsgfee-root .tsgfee-feeprice__notes ul + .tsgfee-feeprice__notes-h { margin-top: 18px; padding-top: 14px; border-top: 1px dashed var(--fee-line); }
#tsgfee-root .tsgfee-feeprice__cta-card p.tsgfee-feeprice__cta-note { margin-top: -8px; font-size: 14px; color: var(--fee-sub); }
#tsgfee-root .tsgfee-feeprice__section--medical .tsgfee-feeprice__more { margin-top: 20px; }
#tsgfee-root .tsgfee-feeprice__more > .tsgfee-feeprice__block { margin-top: 14px; }
/* ---- 2026-10-02 公開前の最終調整：見出しの下の適用日・金額の説明、注意事項の保険ごとのカード ---- */
#tsgfee-root .tsgfee-feeprice__when { margin: 0 0 14px; font-size: 14px; line-height: 1.75; color: var(--fee-sub); }
#tsgfee-root .tsgfee-feeprice__when + .tsgfee-feeprice__lead { margin-top: -6px; }
#tsgfee-root .tsgfee-feeprice__notes-groups { display: grid; gap: 20px; }
#tsgfee-root .tsgfee-feeprice__notes-groups .tsgfee-feeprice__notes-h { margin: 0 0 14px; padding: 2px 0 2px 12px; border-left: 4px solid var(--tsgfee-coral, #f26f66); font-size: 17px; line-height: 1.6; }
#tsgfee-root .tsgfee-feeprice__notes--medical .tsgfee-feeprice__notes-h { border-left-color: var(--tsgfee-teal, #18a7aa); }
#tsgfee-root .tsgfee-feeprice__notes-groups ul { padding-left: 4px; }
#tsgfee-root .tsgfee-feeprice__notes-groups li { position: relative; margin-bottom: 10px; padding-left: 1.1em; }
#tsgfee-root .tsgfee-feeprice__notes-groups li::before { content: ""; position: absolute; left: 0; top: 0.78em; width: 6px; height: 6px; border-radius: 50%; background: var(--tsgfee-coral, #f26f66); }
#tsgfee-root .tsgfee-feeprice__notes--medical li::before { background: var(--tsgfee-teal, #18a7aa); }
/* 通常の訪問時間（注意事項の先頭） */
#tsgfee-root .tsgfee-feeprice__notes--hours { margin: 0 0 20px; }
#tsgfee-root .tsgfee-feeprice__notes--hours .tsgfee-feeprice__notes-h { margin: 0 0 14px; padding: 2px 0 2px 12px; border-left: 4px solid var(--tsgfee-gold, #d9aa38); font-size: 17px; line-height: 1.6; }
#tsgfee-root .tsgfee-feeprice__notes--hours ul { padding-left: 4px; }
#tsgfee-root .tsgfee-feeprice__notes--hours li { position: relative; margin-bottom: 10px; padding-left: 1.1em; }
#tsgfee-root .tsgfee-feeprice__notes--hours li::before { content: ""; position: absolute; left: 0; top: 0.78em; width: 6px; height: 6px; border-radius: 50%; background: var(--tsgfee-gold, #d9aa38); }
@container tsgfee (max-width: 640px) {
  #tsgfee-root .tsgfee-feeprice__notes-groups { gap: 14px; }
  #tsgfee-root .tsgfee-feeprice__notes--hours { margin-bottom: 14px; padding: 20px 16px; }
  #tsgfee-root .tsgfee-feeprice__notes--hours ul { padding-left: 0; }
  #tsgfee-root .tsgfee-feeprice__notes--hours .tsgfee-feeprice__notes-h { font-size: 16px; }
  #tsgfee-root .tsgfee-feeprice__notes-groups .tsgfee-feeprice__notes { padding: 20px 16px; }
  #tsgfee-root .tsgfee-feeprice__notes-groups ul { padding-left: 0; }
  #tsgfee-root .tsgfee-feeprice__notes-groups .tsgfee-feeprice__notes-h { font-size: 16px; }
  #tsgfee-root .tsgfee-feeprice__notes li { font-size: 14.5px; }
}


/* ---- スマートフォン：1行を1枚のカードに（単位数・10割を1段、1〜3割を横並び） ---- */
@container tsgfee (max-width: 640px) {
  #tsgfee-root .tsgfee-feeprice__sub { display: block; margin: 4px 0 0; min-width: 0; white-space: normal; overflow-wrap: anywhere; }
  #tsgfee-root .tsgfee-feeprice__section .tsgfee-h2--sub { min-width: 0; flex-wrap: wrap; }
  #tsgfee-root .tsgfee-feeprice__block--supplement { padding: 14px 12px 14px 14px; }
  #tsgfee-root .tsgfee-feetable,
#tsgfee-root .tsgfee-feetable tbody { display: block; width: auto !important; }
  #tsgfee-root .tsgfee-feetable { border: 0; background: transparent; overflow: visible; }
  #tsgfee-root .tsgfee-feetable thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  #tsgfee-root .tsgfee-feetable tbody tr { display: grid; grid-template-columns: repeat(6, 1fr); margin: 0 0 10px; border: 1px solid var(--fee-line); border-radius: var(--tsgfee-radius-sm, 12px); background: #fff; overflow: hidden; }
  #tsgfee-root .tsgfee-feetable tbody th { grid-column: 1 / -1; display: block; width: auto !important; padding: 9px 12px; border-top: 0; background: var(--fee-head); }
  #tsgfee-root .tsgfee-feetable tbody td { display: block; width: auto !important; padding: 6px 8px 8px; border-top: 1px dashed var(--fee-line); text-align: center !important; white-space: nowrap; }
  #tsgfee-root .tsgfee-feetable tbody td::before { content: attr(data-label); display: block; font-size: 11.5px; font-weight: 500; color: var(--fee-sub); }
  #tsgfee-root .tsgfee-feetable tbody td[data-label="単位数"],
#tsgfee-root .tsgfee-feetable tbody td[data-label="10割"] { grid-column: span 3; }
  #tsgfee-root .tsgfee-feetable tbody td.tsgfee-feetable__copay { grid-column: span 2; border-left: 1px dashed var(--fee-line); }
  #tsgfee-root .tsgfee-feetable tbody td[data-label="1割負担"] { border-left: 0; }
  #tsgfee-root .tsgfee-feetable tbody td[data-label="10割"] { border-left: 1px dashed var(--fee-line); }
  #tsgfee-root .tsgfee-feetable tbody td.tsgfee-feetable__charge { grid-column: 1 / -1; display: flex; gap: 10px; justify-content: flex-start; text-align: left !important; white-space: normal; }
  #tsgfee-root .tsgfee-feetable tbody td.tsgfee-feetable__charge::before { display: inline; font-size: 12px; }
  #tsgfee-root .tsgfee-feetable__charge:empty { display: none !important; }
  #tsgfee-root .tsgfee-feetable tbody td.tsgfee-feetable__inquiry,
#tsgfee-root .tsgfee-feetable tbody td.tsgfee-feetable__rate { grid-column: 1 / -1; padding: 10px 12px; white-space: normal; }
  #tsgfee-root .tsgfee-feetable tbody td.tsgfee-feetable__inquiry::before,
#tsgfee-root .tsgfee-feetable tbody td.tsgfee-feetable__rate::before { display: none; }
}

/* 医療保険の表（スマートフォン）：金額は1行に「見出し … 金額」。管理にかかる料金は3列、精神科は2列 */
@container tsgfee (max-width: 640px) {
  #tsgfee-root .tsgfee-feetable--yen tbody td,
#tsgfee-root .tsgfee-feetable--yen tbody td.tsgfee-feetable__num,
#tsgfee-root .tsgfee-feetable--yen tbody td.tsgfee-feetable__charge { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: baseline; gap: 12px; text-align: right !important; padding: 8px 14px; border-left: 0; }
  #tsgfee-root .tsgfee-feetable--yen tbody td::before { display: inline; font-size: 12.5px; }
  #tsgfee-root .tsgfee-feetable--yen tbody td.tsgfee-feetable__charge { font-size: 13px; }
  #tsgfee-root .tsgfee-feetable--mgmt tbody td,
#tsgfee-root .tsgfee-feetable--mgmt tbody td.tsgfee-feetable__num { grid-column: span 2; display: block; text-align: center !important; padding: 6px 6px 8px; border-left: 1px dashed var(--fee-line); }
  #tsgfee-root .tsgfee-feetable--mgmt tbody td.tsgfee-feetable__num:nth-of-type(1) { border-left: 0; }
  #tsgfee-root .tsgfee-feetable--mgmt tbody td::before { display: block; font-size: 11px; line-height: 1.4; white-space: normal; }
  #tsgfee-root .tsgfee-feetable--mgmt tbody td { white-space: normal; overflow-wrap: anywhere; }
  #tsgfee-root .tsgfee-feetable--matrix tbody td,
#tsgfee-root .tsgfee-feetable--matrix tbody td.tsgfee-feetable__num { grid-column: span 3; display: block; text-align: center !important; padding: 6px 8px 8px; }
  #tsgfee-root .tsgfee-feetable--matrix tbody td + td.tsgfee-feetable__num { border-left: 1px dashed var(--fee-line); }
  #tsgfee-root .tsgfee-feetable--matrix tbody td::before { display: block; font-size: 11.5px; }
}

/* ---- A4 印刷 ---- */
@page { size: A4 portrait; margin: 12mm 10mm; }
@media print {
  #tsgfee-root .tsgfee-curve,
#tsgfee-root .tsgfee-feeprice__toc,
#tsgfee-root .tsgfee-feeprice__print,
#tsgfee-root .tsgfee-feeprice__cta,
#tsgfee-root .tsgfee-feeprice__more > summary { display: none !important; }
  #tsgfee-root .tsgfee-feeprice__print-only { display: inline; }
  #tsgfee-root h3.tsgfee-feeprice__print-only { display: block; }
  body.tsgfee-page { background: #fff !important; }
  body.tsgfee-page { font-size: 10.5pt; color: #000; }
  
  #tsgfee-root .tsgfee-pagehead { padding: 0 0 4mm !important; background: none !important; }
  #tsgfee-root .tsgfee-pagehead::before,
#tsgfee-root .tsgfee-pagehead::after { display: none !important; }
  /* 介護予防・加算・注意事項はそれぞれ新しいページから（見出しだけがページの下に残らないように） */
  #tsgfee-root #preventive,
#tsgfee-root #additions,
#tsgfee-root #medical,
#tsgfee-root #psychiatric { break-before: page; page-break-before: always; }
  #tsgfee-root .tsgfee-feeprice__section--medical .tsgfee-feeprice__more { margin: 0; }
  #tsgfee-root .tsgfee-feeprice__tnote { font-size: 8pt; color: #333; margin-top: 1mm; }
  #tsgfee-root .tsgfee-feeprice__notes-h { font-size: 9.5pt; margin: 0 0 1mm; }
  #tsgfee-root .tsgfee-feeprice__notes ul + .tsgfee-feeprice__notes-h { margin-top: 2mm; padding-top: 1.5mm; }
  #tsgfee-root .tsgfee-feeprice__when { margin: 0 0 1.5mm; font-size: 9pt; color: #000; }
  #tsgfee-root .tsgfee-feeprice__when + .tsgfee-feeprice__lead { margin-top: 0; }
  #tsgfee-root .tsgfee-feeprice__notes-groups { gap: 3mm; }
  #tsgfee-root .tsgfee-feeprice__notes-groups .tsgfee-feeprice__notes-h { margin: 0 0 1.5mm; padding: 0 0 0 2mm; border-left-width: 2px; font-size: 10pt; }
  #tsgfee-root .tsgfee-feeprice__notes-groups li { margin-bottom: 1mm; }
  #tsgfee-root .tsgfee-feeprice__notes--hours { margin-bottom: 3mm; }
  #tsgfee-root .tsgfee-feeprice__notes--hours .tsgfee-feeprice__notes-h { margin: 0 0 1.5mm; padding: 0 0 0 2mm; border-left-width: 2px; font-size: 10pt; }
  #tsgfee-root .tsgfee-feeprice__notes--hours li { margin-bottom: 1mm; }
  #tsgfee-root .tsgfee-feeprice__notes--hours li::before { top: 0.65em; width: 4px; height: 4px; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  #tsgfee-root .tsgfee-feeprice__notes-groups li::before { top: 0.65em; width: 4px; height: 4px; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  #tsgfee-root .tsgfee-feeprice__section > .tsgfee-container > .tsgfee-feeprice__lead { break-after: avoid; page-break-after: avoid; }
  #tsgfee-root .tsgfee-pagehead__eyebrow { display: none; }
  #tsgfee-root .tsgfee-pagehead__title { font-size: 18pt !important; margin: 0 !important; }
  #tsgfee-root .tsgfee-pagehead__lead { margin: 1mm 0 0 !important; font-size: 10pt !important; }
  #tsgfee-root .tsgfee-section { padding: 3mm 0 !important; background: none !important; }
  #tsgfee-root .tsgfee-container { max-width: none !important; padding: 0 !important; }
  #tsgfee-root .tsgfee-h2--sub { font-size: 13pt !important; margin: 0 0 2mm !important; break-after: avoid; page-break-after: avoid; }
  #tsgfee-root .tsgfee-feeprice__h3 { font-size: 11pt; margin: 0 0 1.5mm; break-after: avoid; page-break-after: avoid; }
  #tsgfee-root .tsgfee-feeprice__meta { margin: 0; text-align: left; font-size: 9pt; color: #000; }
  #tsgfee-root .tsgfee-feeprice__lead { margin: 0 0 1.5mm; font-size: 9pt; color: #000; }
  #tsgfee-root .tsgfee-feeprice__block { margin: 3mm 0 0; break-inside: avoid; page-break-inside: avoid; }
  #tsgfee-root .tsgfee-feeprice__block--supplement { padding: 2.5mm 3mm; border-left-width: 3px; }
  #tsgfee-root .tsgfee-feeprice__more { margin: 0; }
  #tsgfee-root .tsgfee-feeprice__more::details-content { content-visibility: visible; display: block; } /* 閉じている場合も中身を印刷（対応ブラウザ） */
  #tsgfee-root .tsgfee-feeprice__notes { padding: 3mm 4mm !important; box-shadow: none !important; border: 1px solid #999; break-inside: avoid; page-break-inside: avoid; }
  #tsgfee-root .tsgfee-feeprice__notes li { font-size: 8.5pt; line-height: 1.55; margin: 0 0 1mm; }
  #tsgfee-root .tsgfee-card { box-shadow: none !important; }
  /* 表は印刷では常に表の形（スマートフォンのカード表示を使わない） */
  #tsgfee-root .tsgfee-feetable { display: table !important; width: calc(100% - 2px) !important; border: 1px solid #777; border-radius: 0; font-size: 9pt; overflow: visible; }
  #tsgfee-root .tsgfee-feetable thead { display: table-header-group !important; position: static; width: auto; height: auto; overflow: visible; clip: auto; }
  #tsgfee-root .tsgfee-feetable tbody { display: table-row-group !important; }
  #tsgfee-root .tsgfee-feetable tr { display: table-row !important; break-inside: avoid; page-break-inside: avoid; }
  #tsgfee-root .tsgfee-feetable th,
#tsgfee-root .tsgfee-feetable td { display: table-cell !important; padding: 1.4mm 2mm; border-top: 1px solid #999; }
  #tsgfee-root .tsgfee-feetable thead th { background: #eee !important; font-size: 8.5pt; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  #tsgfee-root .tsgfee-feetable tbody th { background: none !important; }
  #tsgfee-root .tsgfee-feetable tbody td::before { display: none !important; }
  #tsgfee-root .tsgfee-feetable__desc { font-size: 7.5pt; color: #333; margin-top: 0.5mm; }
  #tsgfee-root .tsgfee-feetable__tag { padding: 0; background: none; color: #333; font-size: 7.5pt; }
  #tsgfee-root .tsgfee-feetable__unit,
#tsgfee-root .tsgfee-feetable__charge { color: #333; }
  #tsgfee-root .tsgfee-feetable__charge { font-size: 8.5pt; }
  #tsgfee-root a { color: #000 !important; text-decoration: none !important; }
}



/* ===== 3. プラグインで追加した表示 ===== */
/* 料金表の外枠：テーマの本文エリアの中に収める */
#tsgfee-root.tsgfee { display: block; width: 100%; max-width: 100%; clear: both; container: tsgfee / inline-size; }
#tsgfee-root.tsgfee .tsgfee-pagehead { margin: 0; }
/* その他の費用（交通費・キャンセル料）：医療保険の表と同じ「項目｜内容｜金額」の形 */
#tsgfee-root .tsgfee-feetable--other tbody th { width: 24%; }
#tsgfee-root .tsgfee-feetable--other .tsgfee-feetable__charge { font-size: 14px; line-height: 1.7; }
@container tsgfee (max-width: 640px) {
  #tsgfee-root .tsgfee-feetable--other tbody td.tsgfee-feetable__charge { display: block; text-align: left !important; }
  #tsgfee-root .tsgfee-feetable--other tbody td.tsgfee-feetable__charge::before { display: block; }
}

/* ===== 4. 印刷：料金表以外（テーマのヘッダー・フッター・サイドバー等）を隠す。JS が印刷の直前に付けるクラスで行う ===== */
@media print {
  body.tsgfee-page { margin: 0 !important; padding: 0 !important; background: #fff !important; }
  body.tsgfee-page .tsgfee-print-hide { display: none !important; }
  body.tsgfee-page .tsgfee-print-ancestor {
    margin: 0 !important; padding: 0 !important; border: 0 !important; box-shadow: none !important; background: none !important;
    width: auto !important; max-width: none !important; min-height: 0 !important; float: none !important; position: static !important; transform: none !important;
    display: block !important;
  }
  #tsgfee-root.tsgfee { overflow: visible; background: #fff; }
}
