/*
 * design-kit tokens
 * 役所の書式や、よくできた日本語の道具サイトのような「読める・書ける・印刷できる」画面のための変数。
 * 色はほぼ墨と紙。アクセントは 1 色だけで、リンクと主ボタンにしか使わない。
 * 値を変えるときは ANTI-PATTERNS.md に反しないか確認する（グラデーション・紫・大きな角丸・影は足さない）。
 */
:root {
  /* 書体。和文はシステムフォント（Web フォントを読み込まない） */
  --dk-font-sans: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN",
    "BIZ UDPGothic", "Yu Gothic UI", "Yu Gothic", YuGothic, Meiryo, "Noto Sans JP", sans-serif;
  --dk-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "BIZ UDGothic", monospace;

  /* 文字の大きさ（本文 16px 基準） */
  --dk-fs-small: 0.875rem;  /* 14px 注記・出典・確認日 */
  --dk-fs-body: 1rem;       /* 16px */
  --dk-fs-lead: 1.0625rem;  /* 17px 導入文 */
  --dk-fs-h3: 1.0625rem;    /* 17px 太字で区別する */
  --dk-fs-h2: 1.25rem;      /* 20px */
  --dk-fs-h1: 1.625rem;     /* 26px */
  --dk-fs-input: 1.0625rem; /* iOS のズームを避けるため 16px 以上 */

  --dk-lh-body: 1.85;
  --dk-lh-tight: 1.45;
  --dk-weight-bold: 700;

  /* 色。墨・紙・罫線 + アクセント 1 色 */
  --dk-ink: #1b1b1b;        /* 本文 */
  --dk-ink-2: #4d4d4d;      /* 補足（白地でコントラスト 8:1 程度） */
  --dk-paper: #ffffff;
  --dk-paper-2: #f5f5f2;    /* 表の見出し行・注記の地。ほとんど白 */
  --dk-rule: #d4d4cf;       /* 細い罫線 */
  --dk-rule-strong: #1b1b1b;/* 表の上下など、区切りを強めたい所だけ */
  --dk-accent: #1d4f8c;     /* 藍。リンク・主ボタン・フォーカス以外に使わない */
  --dk-accent-ink: #ffffff;
  --dk-visited: #5a3d7a;
  --dk-error: #a1001b;
  --dk-focus: #1d4f8c;

  /* 罫線 */
  --dk-hairline: 1px solid var(--dk-rule);
  --dk-rule-thick: 2px solid var(--dk-rule-strong);

  /* 余白（8px 系） */
  --dk-space-1: 0.25rem;
  --dk-space-2: 0.5rem;
  --dk-space-3: 0.75rem;
  --dk-space-4: 1rem;
  --dk-space-5: 1.5rem;
  --dk-space-6: 2rem;
  --dk-space-7: 3rem;

  /* 幅。和文 1 行 38〜42 字前後 */
  --dk-measure: 42rem;
  --dk-page: 46rem;
  --dk-gutter: 1rem;

  /* 角丸は入力欄とボタンの 2px だけ。カードは作らない */
  --dk-radius: 2px;
}

/*
 * design-kit base
 * tokens.css の後に読み込む。素の要素（見出し・段落・表・フォーム）を整え、
 * 少数の部品をクラスで用意する。どれもフレームワークに依存しない。
 *
 *   .dk-header / .dk-nav     サイトの頭（サイト名と少数のリンク）
 *   .dk-page / .dk-crumbs    本文の幅、パンくず
 *   .dk-lead / .dk-meta      導入文、確認日などの付記
 *   .dk-section              区切り（見出しの上に細い罫線）
 *   .dk-form / .dk-row       入力フォームと 1 項目（ラベル・入力・補足）
 *   .dk-table / .dk-result   表と計算結果の表（数字は右揃え・等幅数字）
 *   .dk-note                 注意書き（地色だけ。左の色線は使わない）
 *   .dk-sources              出典の一覧
 *   .dk-qa                   よくある質問（dl）
 *   .dk-button               ボタン（主・副）
 *   .dk-footer               サイトの足
 */

/* ---- 土台 ---- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--dk-paper);
  color: var(--dk-ink);
  font-family: var(--dk-font-sans);
  font-size: var(--dk-fs-body);
  line-height: var(--dk-lh-body);
  font-feature-settings: "palt" 0;
  overflow-wrap: anywhere;
  line-break: strict;
}
:focus-visible { outline: 2px solid var(--dk-focus); outline-offset: 2px; }
::selection { background: #d9e3f0; }

a { color: var(--dk-accent); text-underline-offset: 0.2em; text-decoration-thickness: 1px; }
a:visited { color: var(--dk-visited); }
a:hover { text-decoration-thickness: 2px; }

h1, h2, h3, h4 { line-height: var(--dk-lh-tight); font-weight: var(--dk-weight-bold); color: var(--dk-ink); }
h1 { font-size: var(--dk-fs-h1); margin: var(--dk-space-5) 0 var(--dk-space-4); letter-spacing: 0.01em; }
/* h2 は上に細い罫線を引いて区切る。左の色線・番号バッジ・下線の帯は付けない */
h2 { font-size: var(--dk-fs-h2); margin: var(--dk-space-7) 0 var(--dk-space-3); padding-top: var(--dk-space-4); border-top: var(--dk-hairline); }
h3 { font-size: var(--dk-fs-h3); margin: var(--dk-space-5) 0 var(--dk-space-2); }
h4 { font-size: var(--dk-fs-body); margin: var(--dk-space-4) 0 var(--dk-space-1); }
p, ul, ol, dl, table, figure, blockquote { margin: 0 0 var(--dk-space-4); }
ul, ol { padding-left: 1.4em; }
li + li { margin-top: var(--dk-space-1); }
small, .dk-small { font-size: var(--dk-fs-small); color: var(--dk-ink-2); }
strong, b { font-weight: var(--dk-weight-bold); }
hr { border: 0; border-top: var(--dk-hairline); margin: var(--dk-space-6) 0; }
blockquote { margin-left: 0; padding-left: 1.4em; color: var(--dk-ink-2); }
code, kbd, samp { font-family: var(--dk-font-mono); font-size: 0.9em; }
img, svg { max-width: 100%; height: auto; }

/* ---- 頭と足 ---- */
.dk-skip { position: absolute; left: -9999px; top: 0; background: var(--dk-paper); padding: var(--dk-space-2) var(--dk-space-3); border: 1px solid var(--dk-ink); z-index: 10; }
.dk-skip:focus { left: var(--dk-space-2); top: var(--dk-space-2); }

.dk-header { border-bottom: var(--dk-hairline); }
.dk-header__inner { max-width: var(--dk-page); margin: 0 auto; padding: var(--dk-space-3) var(--dk-gutter); display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--dk-space-1) var(--dk-space-5); }
.dk-site-name { font-weight: var(--dk-weight-bold); font-size: 1.0625rem; color: var(--dk-ink); text-decoration: none; letter-spacing: 0.02em; }
a.dk-site-name:visited { color: var(--dk-ink); }
.dk-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--dk-space-1) var(--dk-space-5); font-size: 0.9375rem; }
.dk-nav li + li { margin-top: 0; }

.dk-footer { margin-top: var(--dk-space-7); border-top: var(--dk-hairline); padding: var(--dk-space-5) 0 var(--dk-space-6); font-size: var(--dk-fs-small); color: var(--dk-ink-2); }
.dk-footer__inner { max-width: var(--dk-page); margin: 0 auto; padding: 0 var(--dk-gutter); }
.dk-footer ul { list-style: none; padding: 0; margin: 0 0 var(--dk-space-3); display: flex; flex-wrap: wrap; gap: var(--dk-space-1) var(--dk-space-5); }
.dk-footer li + li { margin-top: 0; }
.dk-footer p { margin: 0; }

/* ---- 本文 ---- */
.dk-page { max-width: var(--dk-page); margin: 0 auto; padding: 0 var(--dk-gutter); }
.dk-crumbs { font-size: var(--dk-fs-small); color: var(--dk-ink-2); margin-top: var(--dk-space-4); }
.dk-crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; }
.dk-crumbs li + li { margin-top: 0; }
.dk-crumbs li + li::before { content: "/"; margin: 0 0.6em; color: var(--dk-rule); }
.dk-lead { font-size: var(--dk-fs-lead); max-width: var(--dk-measure); }
.dk-meta { font-size: var(--dk-fs-small); color: var(--dk-ink-2); margin-top: calc(-1 * var(--dk-space-2)); }
.dk-section { margin-top: var(--dk-space-7); padding-top: var(--dk-space-4); border-top: var(--dk-hairline); }
.dk-section > h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.dk-toc { font-size: 0.9375rem; margin: var(--dk-space-5) 0; padding: var(--dk-space-3) 0; border-top: var(--dk-hairline); border-bottom: var(--dk-hairline); }
.dk-toc ol, .dk-toc ul { margin: 0; }

/* ---- フォーム ---- */
.dk-form { margin: var(--dk-space-5) 0; }
fieldset { border: 0; border-top: var(--dk-hairline); margin: var(--dk-space-5) 0 0; padding: var(--dk-space-3) 0 0; min-width: 0; }
legend { font-weight: var(--dk-weight-bold); padding: 0 var(--dk-space-2) 0 0; }
label { cursor: default; }
.dk-row { margin: var(--dk-space-4) 0; }
.dk-row > label, .dk-row__label { display: block; font-weight: var(--dk-weight-bold); margin-bottom: var(--dk-space-1); }
.dk-hint { margin: var(--dk-space-1) 0 0; font-size: var(--dk-fs-small); color: var(--dk-ink-2); line-height: 1.6; }
.dk-unit { margin-left: var(--dk-space-2); color: var(--dk-ink-2); }
input[type="text"], input[type="number"], input[type="date"], input[type="email"], input[type="search"], input[type="tel"], input[type="url"], select, textarea {
  width: 100%;
  font: inherit;
  font-size: var(--dk-fs-input);
  line-height: 1.5;
  padding: 0.55em 0.65em;
  color: var(--dk-ink);
  background: var(--dk-paper);
  border: 1px solid #767676;
  border-radius: var(--dk-radius);
}
input.dk-num, .dk-num input { text-align: right; font-variant-numeric: tabular-nums; }
input[aria-invalid="true"] { border-color: var(--dk-error); }
textarea { resize: vertical; }
input[type="checkbox"], input[type="radio"] { width: 1.15em; height: 1.15em; margin: 0.35em 0 0; accent-color: var(--dk-accent); flex: none; }
.dk-check { display: flex; gap: var(--dk-space-2); align-items: flex-start; margin: var(--dk-space-2) 0; }
.dk-error { color: var(--dk-error); font-size: var(--dk-fs-small); margin: var(--dk-space-1) 0 0; }

.dk-button, button {
  font: inherit;
  font-size: var(--dk-fs-input);
  padding: 0.6em 1.6em;
  border: 1px solid var(--dk-accent);
  border-radius: var(--dk-radius);
  background: var(--dk-accent);
  color: var(--dk-accent-ink);
  cursor: pointer;
  display: inline-block;
  text-decoration: none;
  line-height: 1.5;
}
.dk-button:visited { color: var(--dk-accent-ink); }
.dk-button:hover, button:hover { background: #163f70; border-color: #163f70; }
.dk-button--secondary, button.dk-button--secondary { background: var(--dk-paper); color: var(--dk-accent); }
.dk-button--secondary:hover, button.dk-button--secondary:hover { background: var(--dk-paper-2); }
button:disabled { background: var(--dk-paper-2); border-color: var(--dk-rule); color: var(--dk-ink-2); cursor: not-allowed; }
.dk-actions { display: flex; flex-wrap: wrap; gap: var(--dk-space-3); margin: var(--dk-space-5) 0; }

/* ---- 表 ---- */
table, .dk-table { border-collapse: collapse; width: 100%; font-size: 0.9375rem; font-variant-numeric: tabular-nums; }
caption { text-align: left; font-weight: var(--dk-weight-bold); padding: 0 0 var(--dk-space-2); }
th, td { padding: 0.5em 0.7em; text-align: left; vertical-align: top; border-bottom: var(--dk-hairline); }
thead th { border-bottom: 1px solid var(--dk-ink); font-weight: var(--dk-weight-bold); background: transparent; }
tbody th { font-weight: normal; }
table > :last-child > tr:last-child > * { border-bottom-color: var(--dk-ink); }
td.num, th.num, .dk-num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.dk-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 0 0 var(--dk-space-4); }
.dk-scroll > table { margin: 0; }
/* 計算結果。合計行は上に墨の罫線と太字で示す（色だけで示さない） */
.dk-result { margin: var(--dk-space-5) 0; }
.dk-result tr.dk-total > * { border-top: 1px solid var(--dk-ink); font-weight: var(--dk-weight-bold); }
.dk-figure { font-size: 1.5rem; font-weight: var(--dk-weight-bold); font-variant-numeric: tabular-nums; }

/* ---- 注意書き・出典・Q&A ---- */
/* 地色を少しだけ変える。左の色線・アイコン・「⚠️」は付けない。見出し語は文章で書く */
.dk-note { background: var(--dk-paper-2); padding: var(--dk-space-3) var(--dk-space-4); margin: var(--dk-space-5) 0; font-size: 0.9375rem; }
.dk-note > :last-child { margin-bottom: 0; }
.dk-note--error { background: #fbeff0; color: var(--dk-error); }
.dk-sources { font-size: var(--dk-fs-small); color: var(--dk-ink-2); padding-left: 1.4em; }
.dk-sources li + li { margin-top: var(--dk-space-2); }
.dk-qa dt { font-weight: var(--dk-weight-bold); margin-top: var(--dk-space-5); }
.dk-qa dd { margin: var(--dk-space-1) 0 0; }
details { margin: var(--dk-space-3) 0; }
summary { cursor: pointer; }

/* ---- 狭い画面 ---- */
@media (max-width: 480px) {
  h1 { font-size: 1.4375rem; }
  h2 { font-size: 1.1875rem; margin-top: var(--dk-space-6); }
  .dk-button, button { width: 100%; }
  .dk-actions .dk-button, .dk-actions button { width: auto; flex: 1 1 auto; }
}

/* ---- 印刷 ---- */
@media print {
  @page { margin: 15mm; }
  body { font-size: 10.5pt; line-height: 1.7; color: #000; background: #fff; }
  .dk-header, .dk-nav, .dk-footer, .dk-skip, .dk-actions, .dk-no-print, button { display: none !important; }
  .dk-page { max-width: none; padding: 0; }
  a { color: #000; text-decoration: none; }
  .dk-sources a[href^="http"]::after { content: "（" attr(href) "）"; font-size: 0.85em; overflow-wrap: anywhere; }
  h2, h3 { break-after: avoid; }
  table, tr, .dk-note { break-inside: avoid; }
  .dk-note { background: none; border: 1px solid #000; }
  .dk-scroll { overflow: visible; }
}

/*
 * サイト固有の CSS。ビルド時に vendor/design-kit/css/tokens.css → base.css → このファイルの順に
 * 連結して dist/assets/style.css（1 ファイル）にする（scripts/build.ts）。
 * 色・文字・余白は design-kit の変数（--dk-*）を使う。左の色線・グラデーション・影・大きな角丸・絵文字は使わない
 * （vendor/design-kit/ANTI-PATTERNS.md。`pnpm check:design` で検出）。
 */

/* 本文 */
.small { font-size: var(--dk-fs-small); color: var(--dk-ink-2); }
.lead { font-size: var(--dk-fs-lead); max-width: var(--dk-measure); }
.checked { font-size: var(--dk-fs-small); color: var(--dk-ink-2); margin-top: calc(-1 * var(--dk-space-2)); }
.toc { font-size: .9375rem; margin: var(--dk-space-4) 0 var(--dk-space-5); }
.toc ul { margin: 0; }
.tool-list { list-style: none; padding: 0; }
.tool-list li { margin: 0; padding: var(--dk-space-3) 0; border-bottom: var(--dk-hairline); }
.tool-list a { font-weight: var(--dk-weight-bold); }
.tool-list p { margin: var(--dk-space-1) 0 0; color: var(--dk-ink-2); font-size: .9375rem; }
.faq dt, .terms dt { font-weight: var(--dk-weight-bold); margin-top: var(--dk-space-5); }
.faq dd, .terms dd { margin: var(--dk-space-1) 0 0; }
.gyoshu-links li { margin-bottom: .3em; }
.formulas li, .sources li { margin-bottom: var(--dk-space-2); }
.sources { font-size: var(--dk-fs-small); }

/* フォーム（素の要素は base.css） */
#calc-form, #fee-form, #meisai-form { margin-top: var(--dk-space-4); }
.field { margin: var(--dk-space-4) 0; }
.field label { display: block; font-weight: var(--dk-weight-bold); margin-bottom: var(--dk-space-1); }
.hint { margin: var(--dk-space-1) 0 0; font-size: var(--dk-fs-small); color: var(--dk-ink-2); line-height: 1.6; }
input[type=text] { text-align: right; font-variant-numeric: tabular-nums; }
input[type=text].text-left { text-align: left; }
.check { display: flex; gap: var(--dk-space-2); align-items: flex-start; margin: var(--dk-space-3) 0; font-weight: normal; }
.field .check, .check label { font-weight: normal; }
.check .hint { display: block; }
.kokuho-row { margin: var(--dk-space-3) 0; }
.group-label { margin: var(--dk-space-3) 0 var(--dk-space-1); font-weight: var(--dk-weight-bold); }
.noscript { padding: var(--dk-space-2) var(--dk-space-4); background: #fbeff0; color: var(--dk-error); }
@media (min-width: 600px) { button { width: auto; } }
@media (max-width: 599px) { #calc-form button[type=submit], #fee-form button[type=submit] { width: 100%; } }
input[type=file] { width: 100%; font: inherit; padding: var(--dk-space-2) 0; }
.btn-row { display: flex; flex-wrap: wrap; gap: var(--dk-space-3); margin: var(--dk-space-4) 0; }
.btn-row button { width: auto; }
button.sub { background: var(--dk-paper); color: var(--dk-accent); }
button.sub:hover { background: var(--dk-paper-2); }
.small-btn { padding: .3em .8em; font-size: .9375rem; width: auto; }
.download-link { display: inline-block; padding: .6em 1.4em; border: 1px solid var(--dk-accent); background: var(--dk-accent); color: var(--dk-accent-ink); border-radius: var(--dk-radius); text-decoration: none; font-size: var(--dk-fs-input); }
.download-link:visited { color: var(--dk-accent-ink); }

/* 表（素の table は base.css。横線だけで区切る） */
.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 0 0 var(--dk-space-4); }
.table-scroll > table { margin: 0; }
thead th, tbody th { background: transparent; }
.result-table { min-width: 460px; }
.example-table { min-width: 560px; }
.compare-table { min-width: 480px; }
.compare-table th[scope=row] { white-space: nowrap; }
.result-table td.judge { white-space: nowrap; }
.is-cheapest th, .is-cheapest td { font-weight: var(--dk-weight-bold); background: var(--dk-paper-2); }
.cheapest { font-size: 1.125rem; }
.cheapest strong { font-variant-numeric: tabular-nums; }

/* 注意書き・広告。左の色線は使わず、地色だけ変える */
.disclaimer { background: var(--dk-paper-2); padding: var(--dk-space-3) var(--dk-space-4); margin: var(--dk-space-5) 0; font-size: .9375rem; }
.disclaimer > :last-child { margin-bottom: 0; }
.calc-note { background: var(--dk-paper-2); padding: var(--dk-space-2) var(--dk-space-3); margin: var(--dk-space-3) 0 0; font-size: .9375rem; }
.result-error { background: #fbeff0; color: var(--dk-error); padding: var(--dk-space-2) var(--dk-space-3); }
.affiliate { border-top: var(--dk-hairline); border-bottom: var(--dk-hairline); padding: var(--dk-space-3) 0; margin: var(--dk-space-5) 0; font-size: .9375rem; }
.affiliate p { margin: .3em 0; }
.pr-label, .ad-label { font-weight: var(--dk-weight-bold); color: var(--dk-ink-2); font-size: .8125rem; margin: 0; }
.ad-slot { min-height: 280px; margin: var(--dk-space-5) 0; }
.footer-links { margin-bottom: var(--dk-space-3); }

/* 直売所の精算書集計（/tools/chokubaisho-seisan/） */
#seisan-form fieldset { min-width: 0; } /* fieldset は既定で中身の最小幅まで広がるので、横に長い表があると画面からはみ出す */
.rows-table { min-width: 1100px; }
.rows-table input, .rows-table select { font-size: 1rem; padding: .35em .4em; min-width: 5em; }
.rows-table input.num-input { text-align: right; min-width: 6em; }
.rows-table .row-status { min-width: 14em; font-size: var(--dk-fs-small); }
.preview-table { min-width: 480px; font-size: var(--dk-fs-small); }
.seisan-table { min-width: 1000px; }
.seisan-table td.num { white-space: nowrap; }
.error-list li { margin-bottom: .2em; }

/* キャッシュレス手数料比較（/tools/cashless-tesuryo/） */
.fee-table { min-width: 560px; }
.fee-compare { min-width: 1100px; font-size: var(--dk-fs-small); }
.fee-compare ul { margin: 0; padding-left: 1.1em; }
.sources-table { min-width: 560px; }

/* 明細CSV変換（/tools/meisai-csv/） */
#meisai-manual[hidden], #m-split[hidden], #m-signed[hidden] { display: none; }
.meisai-table { min-width: 420px; }
.wide-table { min-width: 720px; }
.meisai-table td.nowrap { white-space: nowrap; overflow-wrap: normal; }
.meisai-table caption { white-space: normal; }
.ref-list, .plain-list { margin: 0; padding-left: 1.1em; font-size: var(--dk-fs-small); }
.ref-list li, .plain-list li { margin-bottom: .3em; }
.meisai-result { margin: var(--dk-space-5) 0; }
.meisai-result:empty { display: none; }
.meisai-summary dt { font-weight: var(--dk-weight-bold); margin-top: var(--dk-space-2); }
.meisai-summary dd { margin: .1em 0 0; }
.warnings li { margin-bottom: .3em; }

/* 手取り計算ツール */
.tedori-table { min-width: 460px; }
.tedori-detail { min-width: 600px; }
.tedori-detail .group th { border-top: 1px solid var(--dk-ink); font-weight: var(--dk-weight-bold); padding-top: var(--dk-space-3); }
.tedori-detail .strong th, .tedori-detail .strong td { font-weight: var(--dk-weight-bold); }
.tedori-detail td.formula { font-size: .85rem; color: var(--dk-ink-2); line-height: 1.5; }

/* 食品表示ラベル（/tools/shokuhin-label/）。画面のプレビューと印刷（@media print）の両方 */
.calc-example-table { min-width: 520px; }
.label-preview { background: var(--dk-paper-2); padding: var(--dk-space-4); overflow-x: auto; }
:root { --label-w: 80mm; --label-fs: 8pt; }
.label { width: var(--label-w); max-width: 100%; background: #fff; color: #000; font-size: var(--label-fs); line-height: 1.45; }
.label-table { width: 100%; margin: 0; font-size: inherit; table-layout: fixed; border-collapse: collapse; }
.label-table th, .label-table td { border: .25mm solid #000; padding: .3em .5em; background: #fff; color: #000; vertical-align: top; text-align: left; font-weight: normal; white-space: pre-line; overflow-wrap: anywhere; }
.label-table th { white-space: nowrap; }
.label-col-heading { width: 6.4em; }
.label-caption { position: absolute; left: -9999px; }
.label-table .ph { color: #555; }
.print-sheet { display: none; }
@media print {
  @page { size: A4; margin: 10mm; }
  html, body { background: #fff; }
  /* ラベルのページだけ、印刷するのはラベルの面（.print-sheet）だけにする。ほかのページは base.css の印刷用の指定 */
  main:has(.print-sheet) > *:not(.print-sheet) { display: none !important; }
  .print-sheet { display: flex; flex-wrap: wrap; align-content: flex-start; gap: 4mm; }
  .print-sheet .label { max-width: none; break-inside: avoid; }
  .label[data-skip-empty="1"] tr.is-empty { display: none; }
  .label .ph { visibility: hidden; }
}

/* お問い合わせフォームの罠欄（人には見えない。ロボットが埋めたら送信を捨てる） */
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
#contact-form textarea { min-height: 10rem; }
