/*!
 * ふるさと控除ラボ 共通スタイルシート
 * 外部CDN不使用・素のCSS。カスタムプロパティでテーマ管理。
 */

:root {
  --color-bg: #f7f5f0;
  --color-surface: #ffffff;
  --color-text: #262220;
  --color-text-muted: #5c5650;
  --color-border: #e4ddd2;
  --color-primary: #b5502f;
  --color-primary-dark: #8f3e22;
  --color-primary-tint: #fbeee7;
  --color-accent: #2f6b5e;
  --color-accent-tint: #e8f2ef;
  --color-notice-bg: #3a352f;
  --color-notice-text: #f7f5f0;
  --color-warning-bg: #fff4e5;
  --color-warning-border: #e0a458;
  --radius-md: 10px;
  --radius-lg: 16px;
  --max-width: 880px;
  --font-base: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN",
    "Yu Gothic", Meiryo, sans-serif;
}

* {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  font-family: var(--font-base);
  background: var(--color-bg);
  color: var(--color-text);
  line-height: 1.8;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
}

img {
  max-width: 100%;
  height: auto;
}

a {
  color: var(--color-primary);
  text-decoration: underline;
  text-underline-offset: 2px;
}

a:hover {
  color: var(--color-primary-dark);
}

.container {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 20px;
}

/* ---------- AI運営・PR 告知バー ---------- */
/* ---------- ヘッダー ---------- */
.site-header {
  background: var(--color-surface);
  border-bottom: 1px solid var(--color-border);
  padding: 16px 0;
}

.site-header .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
}

.site-logo {
  font-size: 19px;
  font-weight: 700;
  color: var(--color-text);
  text-decoration: none;
  letter-spacing: 0.02em;
}

.site-logo:hover {
  color: var(--color-primary);
}

.site-logo .logo-mark {
  color: var(--color-primary);
}

.site-nav {
  display: flex;
  gap: 18px;
  flex-wrap: wrap;
  font-size: 14px;
}

.site-nav a {
  color: var(--color-text-muted);
  text-decoration: none;
  font-weight: 600;
}

.site-nav a:hover,
.site-nav a[aria-current="page"] {
  color: var(--color-primary);
}

/* ---------- メイン ---------- */
main {
  padding: 32px 0 64px;
}

.page-title {
  font-size: 26px;
  font-weight: 800;
  margin: 0 0 8px;
  line-height: 1.4;
}

.page-lead {
  color: var(--color-text-muted);
  font-size: 15px;
  margin: 0 0 28px;
}

.hero {
  background: linear-gradient(155deg, var(--color-primary-tint), var(--color-bg) 70%);
  border-radius: var(--radius-lg);
  padding: 28px 24px;
  margin-bottom: 28px;
  border: 1px solid var(--color-border);
}

.hero h1 {
  margin: 0 0 10px;
  font-size: 24px;
  line-height: 1.45;
}

.hero p {
  margin: 0;
  color: var(--color-text-muted);
  font-size: 14.5px;
}

/* ---------- カード / セクション ---------- */
.card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 24px;
  margin-bottom: 24px;
}

.card h2 {
  margin-top: 0;
  font-size: 19px;
}

article h2 {
  font-size: 20px;
  margin-top: 40px;
  padding-top: 8px;
  border-top: 3px solid var(--color-primary-tint);
}

article h3 {
  font-size: 16.5px;
  margin-top: 28px;
}

article p,
article li {
  font-size: 15.5px;
}

/* ---------- フォーム（シミュレーター） ---------- */
.sim-form {
  display: grid;
  gap: 18px;
}

.form-row label {
  display: block;
  font-weight: 700;
  font-size: 14px;
  margin-bottom: 6px;
}

.sim-form > .form-hint,
.form-row .form-hint {
  font-size: 12.5px;
  color: var(--color-text-muted);
  margin: 4px 0 0;
}

.form-row select,
.form-row input[type="text"],
.form-row input[type="number"] {
  width: 100%;
  padding: 12px 14px;
  font-size: 16px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-bg);
  color: var(--color-text);
  font-family: inherit;
}

.form-row select:focus,
.form-row input[type="text"]:focus,
.form-row input[type="number"]:focus {
  outline: 2px solid var(--color-primary);
  outline-offset: 1px;
}

.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

@media (max-width: 520px) {
  .form-grid {
    grid-template-columns: 1fr;
  }
}

.btn-primary {
  display: inline-block;
  background: var(--color-primary);
  color: #fff;
  font-weight: 700;
  font-size: 16px;
  border: none;
  border-radius: 999px;
  padding: 14px 32px;
  cursor: pointer;
  text-align: center;
  text-decoration: none;
}

.btn-primary:hover {
  background: var(--color-primary-dark);
  color: #fff;
}

/* --- 主ボタンの脇に置く操作（残り枠ページの「行を追加」「入力を消す」）--------
   横に並ぶ兄弟の間隔は margin ではなく親の gap で取る（2026-08-26 学習）。
   高さは中身 + padding に任せ、固定しない。 */
.nw-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.btn-sub {
  background: var(--color-bg);
  color: var(--color-primary-dark);
  font-weight: 700;
  font-size: 14px;
  font-family: inherit;
  border: 1.5px solid var(--color-primary);
  border-radius: 999px;
  padding: 10px 20px;
  cursor: pointer;
}

.btn-sub:hover {
  background: var(--color-accent-tint);
}

/* ---------- 結果表示 ---------- */
.result-box {
  margin-top: 24px;
  background: var(--color-accent-tint);
  border: 1px solid #bfd9d1;
  border-radius: var(--radius-lg);
  padding: 24px;
  display: none;
}

.result-box.is-visible {
  display: block;
}

.result-box .result-label {
  font-size: 13px;
  font-weight: 700;
  color: var(--color-accent);
  margin: 0 0 4px;
}

.result-box .result-amount {
  font-size: 40px;
  font-weight: 800;
  color: var(--color-accent);
  margin: 0 0 4px;
  line-height: 1.2;
}

.result-box .result-amount .unit {
  font-size: 20px;
  margin-left: 2px;
}

.result-box .result-note {
  font-size: 13px;
  color: var(--color-text-muted);
  margin: 0;
}

.breakdown-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 18px;
  font-size: 13.5px;
}

.breakdown-table th,
.breakdown-table td {
  text-align: left;
  padding: 8px 6px;
  border-bottom: 1px solid var(--color-border);
}

.breakdown-table th {
  color: var(--color-text-muted);
  font-weight: 600;
  width: 55%;
}

.breakdown-table td {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.result-warning {
  background: var(--color-warning-bg);
  border: 1px solid var(--color-warning-border);
  border-radius: var(--radius-md);
  padding: 12px 14px;
  font-size: 13.5px;
  margin-top: 16px;
}

/* ---------- テーブル（早見表など） ---------- */
.table-scroll {
  overflow-x: auto;
  margin: 16px 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}

table.data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
  min-width: 480px;
}

table.data-table caption {
  caption-side: top;
  text-align: left;
  font-size: 13px;
  color: var(--color-text-muted);
  padding: 8px 12px;
}

table.data-table th,
table.data-table td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--color-border);
  text-align: right;
  white-space: nowrap;
}

table.data-table th:first-child,
table.data-table td:first-child {
  text-align: left;
}

table.data-table thead th {
  background: var(--color-primary-tint);
  color: var(--color-primary-dark);
  position: sticky;
  top: 0;
}

table.data-table tbody tr:nth-child(even) {
  background: rgba(0, 0, 0, 0.02);
}

/* ---------- 記事一覧 ---------- */
.article-list {
  display: grid;
  gap: 14px;
}

.article-list-item {
  display: block;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 18px 20px;
  text-decoration: none;
  color: var(--color-text);
}

.article-list-item:hover {
  border-color: var(--color-primary);
}

.article-list-item .article-num {
  font-size: 12px;
  font-weight: 700;
  color: var(--color-primary);
  letter-spacing: 0.06em;
}

.article-list-item h3 {
  margin: 4px 0 6px;
  font-size: 16.5px;
}

.article-list-item p {
  margin: 0;
  font-size: 13.5px;
  color: var(--color-text-muted);
}

/* ---------- ASP CTA ブロック ---------- */
.asp-cta {
  border: 1px dashed var(--color-primary);
  border-radius: var(--radius-md);
  padding: 16px 18px;
  margin: 20px 0;
  background: var(--color-primary-tint);
  font-size: 14px;
}

.asp-cta .asp-cta-label {
  font-weight: 700;
  color: var(--color-primary-dark);
  display: block;
  margin-bottom: 6px;
}

.asp-cta ul {
  margin: 8px 0 0;
  padding: 0;
  list-style: none;
}

/* 2026-08-26: 計測を入れてから 4 日で、表示 90 に対して収益リンクのクリックは 1 件だけ
   （state 集計は uranai-click-stats.py）。リンクは箇条書きテキストのままで、
   指で押す対象に見えていなかった。ASP 発行の文言は触らず、押せる形にする。 */
.asp-cta li > a {
  display: block;
  padding: 13px 16px;
  min-height: 44px;
  box-sizing: border-box;
  border-radius: var(--radius-md);
  background: var(--color-primary-dark);
  color: #fff;
  font-weight: 700;
  font-size: 14px;
  line-height: 1.45;
  text-decoration: none;
  text-align: center;
}

.asp-cta li:has(> a) ~ li:has(> a) > a {
  background: transparent;
  color: var(--color-primary-dark);
  border: 1.5px solid var(--color-primary-dark);
}

.asp-cta li > a:hover,
.asp-cta li > a:focus-visible {
  filter: brightness(1.08);
  text-decoration: none;
}

/* 広告である旨の表示。小さくしても消えない濃さを保つ（景表法・ステマ規制） */
.asp-cta .pr-inline {
  margin: 0 0 6px;
  font-size: 12px;
  color: #666;
}

/* ---------- 出典ブロック ---------- */
.sources {
  margin-top: 40px;
  padding-top: 18px;
  border-top: 1px solid var(--color-border);
  font-size: 12.5px;
  color: var(--color-text-muted);
}

.sources h2 {
  font-size: 14px;
  border: none;
  margin: 0 0 10px;
  padding: 0;
  color: var(--color-text);
}

.sources ol {
  padding-left: 20px;
  margin: 0;
}

.sources li {
  margin-bottom: 6px;
  word-break: break-all;
}

.disclaimer-box {
  background: var(--color-warning-bg);
  border: 1px solid var(--color-warning-border);
  border-radius: var(--radius-md);
  padding: 14px 16px;
  font-size: 13px;
  margin: 24px 0;
}

.disclaimer-box strong {
  display: block;
  margin-bottom: 4px;
}

.updated-at {
  font-size: 12.5px;
  color: var(--color-text-muted);
  margin: 0 0 20px;
}

.breadcrumb {
  font-size: 12.5px;
  color: var(--color-text-muted);
  margin-bottom: 18px;
}

.breadcrumb a {
  color: var(--color-text-muted);
}

/* ---------- フッター ---------- */
.site-footer {
  background: var(--color-notice-bg);
  color: var(--color-notice-text);
  padding: 32px 0 40px;
  font-size: 13px;
}

.site-footer .footer-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-bottom: 16px;
}

/* 同じ運営の無料ツールへの出口（2026-08-30）。footer-nav と同じ並びだが、
   このサイトのページではないことが分かるようにラベルを前に置く。 */
.site-footer .footer-tools {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 14px;
  margin-bottom: 16px;
  font-size: 0.92rem;
}

.site-footer .footer-tools-label {
  opacity: 0.72;
}

.site-footer a {
  color: #f0e6da;
}

.site-footer .footer-disclosure {
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  padding-top: 16px;
  margin-top: 16px;
  line-height: 1.9;
  color: #cfc8bc;
}

.site-footer .footer-copyright {
  margin-top: 16px;
  color: #9c9488;
  font-size: 12px;
}

/* ---------- ユーティリティ ---------- */
.text-muted {
  color: var(--color-text-muted);
}

.mt-0 {
  margin-top: 0;
}

/* 出典などに生 URL をそのままリンク文字として置くと、折り返せずに横スクロールが出る
   （2026-08-18 実測: 幅 467px の a 要素で document が 527px になった）。
   長い URL はどこでも折り返す */
a { overflow-wrap: anywhere; }

/* ---------- 記事の判断支援パーツ ----------
   2026-08-24: 上位に居る個人・士業サイトの実測（本文 3,500〜9,000 字／表・計算例・
   チェックリスト・FAQ・立場の明示）に合わせて追加。本文を長くするためではなく、
   「で、自分はどうすればいいのか」に答える形を持たせるため */

/* 冒頭の結論。読者が最初の 5 秒で「自分に関係あるか」を判定できるようにする */
.summary-box {
  background: var(--color-accent-tint);
  border: 1px solid var(--color-accent);
  border-left-width: 5px;
  border-radius: var(--radius-md);
  padding: 18px 20px;
  margin: 0 0 28px;
}

.summary-box h2 {
  margin: 0 0 10px;
  font-size: 16px;
  border-top: none;
  padding-top: 0;
  color: var(--color-accent);
}

.summary-box ul {
  margin: 0;
  padding-left: 1.2em;
}

.summary-box li {
  margin-bottom: 6px;
  line-height: 1.75;
}

.summary-box li:last-child {
  margin-bottom: 0;
}

/* チェックリスト。番号でなく「該当するか」を目で追える形 */
.checklist {
  list-style: none;
  padding: 0;
  margin: 16px 0;
}

.checklist li {
  position: relative;
  padding: 10px 12px 10px 40px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  margin-bottom: 8px;
  line-height: 1.75;
}

.checklist li::before {
  content: "☐";
  position: absolute;
  left: 14px;
  top: 9px;
  font-size: 17px;
  color: var(--color-primary);
}

.checklist li.is-done::before {
  content: "☑";
  color: var(--color-accent);
}

/* FAQ。details なので JS を足さずに開閉できる */
.faq {
  margin: 16px 0;
}

.faq details {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  margin-bottom: 10px;
}

.faq summary {
  cursor: pointer;
  padding: 14px 16px;
  font-weight: 700;
  font-size: 15px;
  line-height: 1.6;
  list-style: none;
}

.faq summary::-webkit-details-marker {
  display: none;
}

.faq summary::before {
  content: "Q. ";
  color: var(--color-primary);
  font-weight: 800;
}

.faq details[open] summary {
  border-bottom: 1px solid var(--color-border);
}

.faq .faq-a {
  padding: 14px 16px;
  margin: 0;
  font-size: 15px;
  line-height: 1.9;
}

/* 立場の明示。誰がどういう根拠で書いたのかを記事内で言い切る */
.stance-box {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  padding: 18px 20px;
  margin: 32px 0 0;
  font-size: 14px;
  line-height: 1.9;
  color: var(--color-text-muted);
}

.stance-box h2 {
  margin: 0 0 8px;
  font-size: 15px;
  border-top: none;
  padding-top: 0;
  color: var(--color-text);
}

.stance-box p {
  margin: 0 0 8px;
  font-size: 14px;
}

.stance-box p:last-child {
  margin-bottom: 0;
}

/* 改正の時系列 */
.timeline {
  list-style: none;
  padding: 0;
  margin: 16px 0;
  border-left: 3px solid var(--color-primary-tint);
}

.timeline li {
  position: relative;
  padding: 0 0 20px 22px;
  line-height: 1.85;
}

.timeline li::before {
  content: "";
  position: absolute;
  left: -8px;
  top: 8px;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: var(--color-primary);
  border: 3px solid var(--color-bg);
}

.timeline .timeline-when {
  display: block;
  font-weight: 800;
  color: var(--color-primary-dark);
  font-size: 14px;
  letter-spacing: 0.02em;
}

/* 関連記事のクラスタ */
.related-links {
  margin: 32px 0 0;
  padding: 18px 20px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
}

.related-links h2 {
  margin: 0 0 10px;
  font-size: 15px;
  border-top: none;
  padding-top: 0;
}

.related-links ul {
  margin: 0;
  padding-left: 1.2em;
}

.related-links li {
  margin-bottom: 6px;
  font-size: 14.5px;
}

/* 文章が入る表。既定の data-table は数値表（右寄せ・nowrap・min-width 480px）なので、
   説明文を入れると 1 セルが折り返せず横 1,518px まで伸びた（2026-08-24 実測 / SP 350px 幅）。
   文章列を持つ表にはこの修飾子を付けて、折り返す・左寄せにする */
table.data-table.text-table {
  min-width: 0;
  font-size: 13.5px;
}

table.data-table.text-table th,
table.data-table.text-table td {
  white-space: normal;
  text-align: left;
  line-height: 1.8;
  vertical-align: top;
}

/* 1 列目が最小幅まで潰れて 1 文字ずつ改行されるのを防ぐ（2026-08-24 実測 / SP 350px 幅） */
table.data-table.text-table th:first-child,
table.data-table.text-table td:first-child {
  width: 28%;
  min-width: 5.5em;
}

/* --- 質問文の見出し（2026-08-24 追加）-----------------------------------
   フォームの各項目を「機能名」ではなく「客が頭の中で使う質問文」で見出しにする。
   実測: 上位の個人サイトは全部この形（furucheck.com の h2 は全部質問文）。 */
.sim-form .q {
  font-size: 1.05rem;
  margin: 1.9rem 0 .6rem;
  padding-left: .6rem;
  border-left: 4px solid #2f7d5d;
  line-height: 1.5;
}
.sim-form .q:first-of-type { margin-top: .4rem; }
.result-box .q { font-size: 1rem; margin: 0 0 .3rem; border-left: none; padding-left: 0; color: #555; }

/* 計算結果に付く注意（自己負担が2,000円を超える等）。必ず金額の直後に出す */
.result-notes {
  list-style: none;
  margin: .9rem 0 0;
  padding: 0;
}
.result-notes li {
  background: #fff8e5;
  border-left: 4px solid #d9a300;
  padding: .7rem .9rem;
  margin-bottom: .5rem;
  font-size: .9rem;
  line-height: 1.7;
  border-radius: 0 4px 4px 0;
}

/* ------------------------------------------------------------------
   早見表・比較表（hayamihyou.html / kojo-check.html / onestop-hantei.html）
   横スクロールは .table-scroll 側で担保する。表自体に幅を固定しない。
------------------------------------------------------------------ */
.hayami-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
  background: #fff;
}
.hayami-table th,
.hayami-table td {
  border: 1px solid #dfe5e2;
  padding: 0.5em 0.7em;
  text-align: right;
  white-space: nowrap;
}
.hayami-table thead th {
  background: #eef5f1;
  color: #1f4c3a;
  font-weight: 700;
  text-align: center;
  position: sticky;
  top: 0;
}
.hayami-table tbody th[scope="row"] {
  background: #f7faf8;
  text-align: left;
  font-weight: 700;
}
.hayami-table tbody tr:nth-child(even) td {
  background: #fbfdfc;
}

/* 判定結果の色分け（kojo-check / onestop-hantei） */
.verdict-ok    { color: #1f7a4d; }
.verdict-warn  { color: #a86a00; }
.verdict-ng    { color: #b3261e; }

/* 結果の金額は既定で .result-box .result-amount の緑。判定色はクラス2つ分の強さで
   書かないと勝てず、「上限を超えている金額」まで緑で出る（2026-08-26 実測）。 */
.result-box .result-amount.verdict-ok { color: #1f7a4d; }
.result-box .result-amount.verdict-warn { color: #a86a00; }
.result-box .result-amount.verdict-ng { color: #b3261e; }
.result-box .result-sub {
  margin: 0.2em 0 1em;
  font-size: 0.95rem;
  color: #4a5a52;
}
.action-list {
  margin: 0 0 1.2em;
  padding-left: 1.2em;
}
.action-list li { margin-bottom: 0.5em; }

/* 一次資料の引用（記事18〜）。
   このサイトの差別化は「国税庁・総務省の原文をそのまま置く」ことなので、
   引用が地の文に埋もれると差が見えない。左罫と地色で本文と分ける。 */
blockquote {
  margin: 20px 0;
  padding: 14px 18px;
  border-left: 3px solid var(--color-accent);
  background: var(--color-accent-tint);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
  font-size: 15px;
  line-height: 1.9;
  color: var(--color-text);
}
blockquote p { margin: 0; }
blockquote .src {
  display: block;
  margin-top: 8px;
  font-size: 13px;
  color: var(--color-text-muted);
}

/* stance-box の中で h2 を使うと本文の見出しと同格に見える。
   節の中に置く時は h3 を使うので、h2 と同じ見た目を与える。 */
.stance-box h3 {
  margin: 0 0 8px;
  font-size: 15px;
  border-top: none;
  padding-top: 0;
  color: var(--color-text);
}

.asp-cta-note {
  font-size: 13px;
  line-height: 1.75;
  color: var(--color-text-muted);
  margin: 0 0 12px;
}

.asp-cta .asp-note {
  display: block;
  font-size: 13px;
  line-height: 1.7;
  color: var(--color-text-muted);
  font-weight: 400;
  margin-top: 4px;
}

.asp-cta ul li + li {
  margin-top: 14px;
}

.asp-cta-more {
  font-size: 13px;
  line-height: 1.7;
  margin: 14px 0 0;
}

/* 日付つきの過去スナップショットに出す断り。
   古い寄付額をそのまま読まれないよう、本文の前に必ず目に入る強さで置く。 */
.archive-note {
  margin: 0 0 1.5rem;
  padding: .9rem 1.1rem;
  border-left: 4px solid #d98324;
  background: #fdf6ec;
  border-radius: 0 6px 6px 0;
  font-size: .95rem;
  line-height: 1.7;
}
.archive-note strong { color: #a35c0a; }

/* 記事から関係のある無料ツールへ出す箱。
   同じドメインの中で tools → furusato は繋がっていたのに逆が 0 本だったので足した。 */
.related-tools {
  margin: 2.5rem 0 1rem;
  padding: 1.1rem 1.3rem;
  border: 2px solid #2f6f4f;
  border-radius: 10px;
  background: #f4f9f6;
}
.related-tools h3 { margin: 0 0 .5rem; font-size: 1.05rem; color: #235640; }
.related-tools p { margin: 0 0 .7rem; font-size: .93rem; }
.related-tools ul { margin: 0; padding-left: 1.2em; }
.related-tools li { margin: .3rem 0; }
.related-tools a { color: #2f6f4f; font-weight: 600; }

/* フォーム内のチェックボックス 1 行（ワンストップ特例の有無）。
   数値欄と同じ見た目の箱に入れず、押せる範囲をラベル全体にする。 */
.check-inline {
  display: flex;
  align-items: flex-start;
  gap: .55rem;
  font-weight: 600;
  cursor: pointer;
  line-height: 1.6;
}
.check-inline input[type="checkbox"] {
  width: 1.15rem;
  height: 1.15rem;
  margin-top: .18rem;
  flex: 0 0 auto;
  accent-color: #2f6f4f;
  cursor: pointer;
}

/* 医療費控除の表: 家族構成の区切り行と、税率区分をまたいだセル。
   「比率どおりに下がっていない」ことが目で分かるようにする（数字だけだと読み飛ばす）。 */
table.data-table tr.group th {
  background: #e8efe9;
  color: #235640;
  text-align: left;
  font-size: .95rem;
}
table.data-table td.step {
  background: #fdf1e3;
  font-weight: 700;
  color: #a35c0a;
}
