/* 印刷（A4 縦）。<link media="print"> で読み込む。
   - 地域ページ: 地図・絞り込み・ヘッダのナビ・ボタンを隠し、一覧を1ページ15件前後（1件を3行前後に詰める）。絞り込み・並べ替えの結果をそのまま印刷する
   - 各ページの下に運営者とデータの時点: @page の余白（@bottom-left）に出す。文言はデータの時点を含むので base.html の <style media="print"> に書いている
   - 主治医へのメモ: A4 1枚 */
@page { size: A4 portrait; margin: 11mm 11mm 14mm 11mm; }

html, body { background: #fff !important; }
body { font-size: 9.5pt; line-height: 1.4; color: #000; }
a { color: #000 !important; text-decoration: none !important; }
h1, h2, h3 { color: #000; }
.wrap { max-width: none; padding: 0; }
.no-print, .skip, .nav-wide, .nav-narrow, .op-about, .crumbs, .finder, .map-section, .list-tools, .needs-js, [data-print], .site-footer nav, .vh { display: none !important; }
/* 画面用の飾り（町並みの線画・家の記号・アイコンの記号）とボタンの中のアイコン・影は印刷しない */
.hero-art, .foot-art, .brand-mark, .sprite, .ft-brand, .btn svg { display: none !important; }
body * { box-shadow: none !important; }
small { font-size: inherit; }
/* バッジのアイコン（<svg class="ico-sm">）は文字と同じ大きさ・黒で */
.badge .ico-sm { display: inline-block; width: 1em !important; height: 1em !important; margin: 0 .6mm 0 0 !important; vertical-align: -.12em; color: #000 !important; }
/* CSS の mask で描いた印（届出・指定の表の ✓／－／？、休止中の札）は、背景を印刷しない設定でも出す */
.yn::before, .flag-suspended::before, .badge::before { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.yn::before { width: 1em; height: 1em; margin-right: .6mm; vertical-align: -.12em; }
.block { margin: 5mm 0; }
.note { font-size: 8pt; }

/* ヘッダ: サイト名と運営者を1行で */
.site-header { display: flex; justify-content: space-between; align-items: baseline; gap: 4mm; border-bottom: .3mm solid #000; padding-bottom: 1mm; margin-bottom: 3mm; }
.hdr, .op { display: block; padding: 0; margin: 0; min-height: 0; }
.site-name { display: inline; min-height: 0; font-size: 10pt; color: #000; }
.site-name .brand-name { font-size: inherit; }
.operator { font-size: 10pt; }

/* 地域ページの見出し */
.page-area h1 { font-size: 14pt; margin: 0 0 1mm; }
.count-line { font-size: 9.5pt; margin: 0 0 1.5mm; }
.count-line strong { font-size: 10.5pt; color: #000; }
.cl-date { margin-left: 2mm; font-size: 8pt; color: #000; }
.results { display: block; }
.list-head { display: flex; gap: 3mm; align-items: baseline; margin: 0 0 1mm; }
.list-head h2 { font-size: 10.5pt; margin: 0; }
.list-order, .result-count { font-size: 9pt; color: #000; }
.badge-note { font-size: 7.5pt; line-height: 1.35; color: #000; background: none; border: 0; border-left: .6mm solid #999; padding: 0 0 0 2mm; margin: 0 0 1.5mm; }

/* 一覧のカード: 1行目 名称＋電話・2行目 住所（距離）・3行目 バッジ（画面用の .card .badge より詳細度の高い指定にする）。
   画面は町名だけ（.ca-text）だが、紙では番地まで（.ca-full）。バッジは短い文言（正式名は .vh で印刷しない） */
.cards { display: block; }
.cards .card { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "flag flag" "name tel" "addr addr" "badges badges"; column-gap: 4mm; margin: 0; padding: .9mm 0 1.1mm; border: 0; border-bottom: .25mm solid #888; border-radius: 0; background: #fff; break-inside: avoid; page-break-inside: avoid; }
main:has(#f-suspended:checked) .cards .card[data-status="休止"] { display: grid; }
.cards .flag-suspended { grid-area: flag; justify-self: start; margin: 0 0 .3mm; padding: 0 1.5mm; font-size: 8pt; background: none; border: .25mm solid #000; color: #000; }
.cards .card-name { grid-area: name; margin: 0; font-size: 10pt; line-height: 1.3; }
.cards .card-name a { display: inline; min-height: 0; padding: 0; }
.cards .card-addr { grid-area: addr; font-size: 8.5pt; line-height: 1.3; color: #000; }
.cards .card-dist { margin-left: 2mm; color: #000; padding: 0; border: 0; background: none; }
.cards .ca-text { display: none; }
.cards .ca-full { display: inline; }
.cards .card .badges { grid-area: badges; display: flex; flex-wrap: wrap; margin: .4mm 0 0; gap: 0 2.6mm; }
.cards .card .badge { display: inline; padding: 0; border: 0; background: none; color: #000; font-size: 7.5pt; line-height: 1.3; }
.cards .card .badge::before { color: #000; margin-right: .6mm; }
.cards .card-actions { grid-area: tel; align-self: start; display: block; }
.cards .card-actions .btn { display: none; }
.cards .card-actions .btn.btn-tel { display: inline; min-height: 0; min-width: 0; padding: 0; border: 0; border-radius: 0; background: none; color: #000; font-size: 10pt; font-weight: 700; }
.list-empty { background: none; border: .25mm solid #000; }
/* 件数の折りたたみ（site.js の .is-folded）は印刷では全件。「さらに表示」のボタンと件数の札は出さない */
  .card.is-folded:not([hidden]) { display: grid !important; }
  .rc-fold, .list-more { display: none !important; }
.btn-tel .btn-word { display: none; }

/* 地域の数字・この一覧について */
.num-table { width: auto; font-size: 8.5pt; }
.num-table th, .num-table td { padding: .6mm 2mm; border-bottom: .2mm solid #999; }
.num-table td { color: #000; }
.about-list .al-order { font-size: 8.5pt; margin: 0; }
.about-list .al-links, .about-list .btn { display: none; }
.page-area .block h2 { font-size: 10.5pt; margin-bottom: 1mm; }
.area-links { display: none; }

/* 事業所ページ */
.page-station h1 { font-size: 15pt; }
.page-station .btn { display: none; }
.page-station .btn.btn-tel { display: inline; min-height: 0; padding: 0; border: 0; background: none; color: #000; font-size: 11pt; }
.page-station .block { margin: 4mm 0; }
.page-station h2 { font-size: 11pt; margin: 0 0 1mm; break-after: avoid; }
.page-station .badges { display: flex; flex-wrap: wrap; gap: 0 3mm; margin: 1mm 0; }
.page-station .badge { display: inline; padding: 0; border: 0; background: none; color: #000; font-size: 9pt; line-height: 1.35; }
.page-station .badges-sm .badge { font-size: 7.5pt; }
.page-station .badge-note, .page-station .note { font-size: 7.5pt; }
.page-station .kv > div, .page-station .kv-table tr { break-inside: avoid; }
.page-station .kv > div { padding: .6mm 0; grid-template-columns: 34mm minmax(0, 1fr); }
.page-station .kv-table th, .page-station .kv-table td { padding: .6mm 1.5mm; font-size: 8.5pt; }
.near5 { display: block; }
.near5 li { border: 0; border-bottom: .2mm solid #999; border-radius: 0; padding: .6mm 0; break-inside: avoid; }
.near5-name { display: inline; min-height: 0; font-size: 9pt; }
.near5-meta { display: inline; margin-left: 2mm; font-size: 8pt; }
.src-label { background: none; padding: 0; color: #000; font-size: 8.5pt; }
.src-list { font-size: 8pt; }

/* フッタ（文書の最後に1回。各ページの下は @page の余白に） */
.site-footer { margin-top: 5mm; padding: 2mm 0 0; background: none; border-top: .3mm solid #000; font-size: 7.5pt; }
.site-footer p { margin: 0 0 1mm; }
.ft-op { font-size: 8pt; }

/* 主治医へのメモ: A4 1枚 */
.page-memo .site-header, .page-memo .site-footer, .page-memo .memo-intro, .page-memo .memo-after { display: none !important; }
.page-memo body, body.page-memo { font-size: 10.5pt; }
.page-memo .sheet { max-width: none; margin: 0; padding: 0; border: 0; border-radius: 0; background: none; }
.page-memo .sheet h1 { font-size: 18pt; margin: 0 0 1mm; }
.page-memo .sheet-sub { font-size: 9.5pt; margin-bottom: 4mm; }
.page-memo .box { break-inside: avoid; border: .35mm solid #555; padding: 2.5mm 4mm; margin-bottom: 3.5mm; }
.page-memo .box h2 { font-size: 11pt; }
.page-memo .box .hint { font-size: 8.5pt; color: #333; }
.page-memo .lines { -webkit-print-color-adjust: exact; print-color-adjust: exact; height: 32mm; background: repeating-linear-gradient(to bottom, transparent 0, transparent 7.7mm, #888 7.7mm, #888 8mm); }
.page-memo .lines.short { height: 16mm; }
.page-memo .ask { background: #f2f2f2; padding: 3mm 4mm; margin: 4mm 0; break-inside: avoid; }
.page-memo .ask-note, .page-memo .sheet-foot { font-size: 8.5pt; color: #333; }
