/* ツボチェック 共通の見た目。決めごとは docs/格式の設計.md（見た目の正本は tools/mock_kakushiki.py の見本）。
   古い医書（木版の版本・線装本）を、いま刷り直したように組む：素色の紙・墨・藍の表紙・金茶のあしらいの線。
   朱は、ツボの印・「すぐ受診」・セルフチェックで選んだ印・落款にだけ使う。
   角丸・影・グラデーション・ピル・絵文字・線画の汎用アイコンは使わない。あしらいの原画は build/ornaments.py。 */
:root{
  --paper:#F1F2EC;      /* 素色の紙 */
  --white:#FBFBF7;      /* 図と札の白 */
  --plate:#E7E9DF;      /* 図版の地 */
  --ink:#1D1F24;        /* 墨 */
  --sub:#55585F;        /* 薄墨 */
  --line:#C6C9BC;       /* 細い罫 */
  --ai:#1E4C78;         /* 藍：リンク */
  --ai-deep:#16304D;    /* 表紙の藍 */
  --shu:#B5341F; --shu-dark:#8C2616;   /* 朱 */
  --kin:#8E7436; --kin-light:#C9AE6A;  /* 金茶：あしらいの線だけ */
  --mist:#DFE6E3;       /* 受診の帯 */
  --draft-bg:#F3E9C8; --draft-line:#B79A4A; --draft-ink:#5C4A12;
  --head:"Shippori Mincho B1","Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  --body:"BIZ UDPMincho","Hiragino Mincho ProN","Yu Mincho",serif;
  --fude:"Yuji Syuku","Shippori Mincho B1","Hiragino Mincho ProN",serif;
  --kai:"LXGW WenKai TC","Shippori Mincho B1",serif;
  --ui:"Hiragino Sans","Yu Gothic UI","Meiryo",system-ui,sans-serif;
  --pad:28px; --max:66rem; --read:40rem;
}
:lang(zh-Hant){--head:"Noto Serif TC","PingFang TC",serif;--body:"Noto Serif TC","PingFang TC",serif;--fude:"LXGW WenKai TC","Noto Serif TC",serif}
:lang(en){--head:"EB Garamond","Iowan Old Style","Palatino Linotype",Georgia,serif;--body:"EB Garamond","Iowan Old Style","Palatino Linotype",Georgia,serif;--fude:"LXGW WenKai TC",serif}
body:lang(zh-Hant){font-weight:500}
body:lang(en){font-size:1.1875rem;font-weight:500;line-height:1.7;word-break:normal;overflow-wrap:break-word}
:lang(en) h1,:lang(en) h2,:lang(en) h3{letter-spacing:0;font-feature-settings:normal;font-weight:700}
/* 筆（繁体字・英語は LXGW WenKai TC の 700） */
.slip-name:lang(zh-Hant),.in-ji:lang(zh-Hant),.gyobi-ji:lang(zh-Hant),.flow b:lang(zh-Hant),.daisen-name:lang(zh-Hant){font-weight:700}
:lang(en) .daisen-name{font-family:var(--head);font-weight:600;letter-spacing:.04em}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:16px}
html.text-lg{font-size:118.75%}
body{margin:0;background:var(--paper) url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20width%3D%27260%27%20height%3D%27260%27%3E%3Cfilter%20id%3D%27n%27%20x%3D%270%27%20y%3D%270%27%20width%3D%27100%25%27%20height%3D%27100%25%27%3E%3CfeTurbulence%20type%3D%27fractalNoise%27%20baseFrequency%3D%27.85%27%20numOctaves%3D%272%27%20seed%3D%277%27%20stitchTiles%3D%27stitch%27/%3E%3CfeColorMatrix%20values%3D%270%200%200%200%20.36%20%200%200%200%200%20.34%20%200%200%200%200%20.27%20%200%200%200%20.07%200%27/%3E%3C/filter%3E%3Crect%20width%3D%27260%27%20height%3D%27260%27%20filter%3D%27url%28%23n%29%27/%3E%3C/svg%3E");color:var(--ink);font-family:var(--body);font-size:1.0625rem;line-height:1.95;
  line-break:strict;overflow-wrap:anywhere;word-break:auto-phrase}
a{color:var(--ai);text-underline-offset:.2em;text-decoration-thickness:.6px}
a:hover{color:var(--ai-deep)}
:focus-visible{outline:3px solid var(--ai);outline-offset:3px}
h1,h2,h3{font-family:var(--head);font-weight:700;margin:0;line-height:1.4;text-wrap:balance;font-feature-settings:"palt"}
p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding-left:1.5em}
.wrap{max-width:var(--max);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
.nw{white-space:nowrap}

/* ---- あしらい（原画は build/ornaments.py）---- */
/* 雷文の帯：藍地に金茶の回紋 */
.raimon{height:12px;background:var(--ai-deep);position:relative;border-bottom:.75px solid var(--kin-light)}
.raimon::before{content:"";position:absolute;inset:1px 0;background:var(--kin-light);-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2014%2010%22%3E%3Cpath%20d%3D%22M1.6%208.4V1.6H11V8.4H5V4.8H8%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.2%22%20stroke-linecap%3D%22square%22/%3E%3C/svg%3E") 0 0/14px 10px repeat-x;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2014%2010%22%3E%3Cpath%20d%3D%22M1.6%208.4V1.6H11V8.4H5V4.8H8%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.2%22%20stroke-linecap%3D%22square%22/%3E%3C/svg%3E") 0 0/14px 10px repeat-x}
/* 印：taku＝墨地に白い字／waku＝枠だけ／in-shu＝朱（落款） */
.in{flex:none;display:block;width:2em;height:2em}
.in-ji{font-family:var(--fude);font-size:25px}
.in-taku .in-bg{fill:var(--ink)}.in-taku .in-ji{fill:var(--white)}
.in-waku .in-bg{fill:none;stroke:var(--ink);stroke-width:1.3;stroke-linejoin:round}.in-waku .in-ji{fill:var(--ink)}
.in-shu .in-bg{fill:var(--shu)}
.rakkan{width:3rem;height:3rem}
/* 魚尾の番号札 */
.gyobi{flex:none;width:1.05em;height:1.58em;margin-top:.1em}
.gyobi-bg{fill:var(--ink)}.gyobi-ji{font-family:var(--fude);font-size:13px;fill:var(--white)}
.gyobi-shu .gyobi-bg{fill:var(--shu)}
/* 作字：書体に無い字を、同じ書体の部品（へん・つくり）から組む。本物の字は透明のまま置く */
.sakuji{position:relative;display:inline-block;color:transparent}
.sakuji::before,.sakuji::after{position:absolute;top:0;left:0;color:var(--ink);white-space:nowrap}
.sakuji::before{content:attr(data-l);transform:scaleX(var(--l));transform-origin:0 50%;-webkit-text-stroke:.042em currentColor}
.sakuji::after{content:attr(data-r);transform:translateX(calc(1em * (1 - var(--r)))) scaleX(var(--r));transform-origin:0 50%;-webkit-text-stroke:.02em currentColor}
/* 筆に無い字を含む名前は、名前まるごと楷書で（字を混ぜない） */
.kai{font-family:var(--kai)!important;font-weight:700}

/* ---- アイコン（残したのは mark・ui-top・ui-tel だけ。build/icons.py）---- */
.ic{width:1.6em;height:1.6em;flex:none;color:var(--ink);stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.il{fill:none;stroke:currentColor;stroke-width:1.8}
.iw{fill:var(--ic-fill,var(--white));stroke:currentColor;stroke-width:1.8}
.ik{fill:currentColor}
.id{fill:var(--shu)}
.ih{fill:var(--shu);fill-opacity:.17}
.is{fill:none;stroke:var(--shu);stroke-width:2}
.btn .ic{--ic-fill:none;color:currentColor;width:1.2em;height:1.2em}
.skip{position:absolute;left:8px;top:-80px;z-index:10;background:var(--white);color:var(--ai);padding:12px 18px;border:2px solid var(--ai);font-weight:700}
.skip:focus{top:8px}

/* ---- ヘッダー：雷文 → 表紙（題箋＋道具）→ ナビ ---- */
.cover{background:var(--ai-deep);color:var(--white)}
/* 屋号は左、道具（文字の大きさ・言語）は右に寄せ、入るだけ横に並べて折り返す。入らない道具は、まとまりごと次の行の右へ送る */
.site-header .cover .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px 14px;padding-top:14px;padding-bottom:16px}
/* 題箋：隅を切った白い札に、細い墨の内枠 */
.daisen{margin-right:auto;flex:none;display:inline-flex;align-items:center;gap:10px;min-height:48px;background:var(--white);color:var(--ink);text-decoration:none;padding:9px 20px 9px 16px;position:relative;
  clip-path:polygon(5px 0,calc(100% - 5px) 0,calc(100% - 5px) 5px,100% 5px,100% calc(100% - 5px),calc(100% - 5px) calc(100% - 5px),calc(100% - 5px) 100%,5px 100%,5px calc(100% - 5px),0 calc(100% - 5px),0 5px,5px 5px)}
.daisen::after{content:"";position:absolute;inset:5.5px;border:.75px solid var(--ink);pointer-events:none}
.daisen:hover{color:var(--ink)}
.daisen:focus-visible{outline:0}.daisen:focus-visible::after{border:2px solid var(--ai)}
.brand-mark{flex:none;width:26px;height:26px;display:block}
.daisen-name{font-family:var(--fude);font-size:1.5rem;line-height:1.25;letter-spacing:.1em;white-space:nowrap}
.daisen-sub{font-family:var(--ui);font-size:.6875rem;color:var(--sub);letter-spacing:.06em;white-space:nowrap}
.tools{display:contents;font-family:var(--ui);font-size:.8125rem}
.textsize,.langs{display:flex;gap:6px;align-items:center;flex:none;white-space:nowrap}
.textsize>span{color:#C8D0D8}
.textsize button,.langs a{font:inherit;color:var(--white);background:none;border:.75px solid rgba(201,174,106,.55);min-height:44px;min-width:44px;padding:0 10px;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;text-decoration:none;white-space:nowrap}
.textsize button:hover,.langs a:hover{border-color:var(--kin-light);color:var(--white)}
.textsize button[aria-pressed="true"],.langs a[aria-current]{background:var(--white);color:var(--ink);border-color:var(--white);font-weight:700}
.cover :focus-visible{outline-color:var(--kin-light)}
/* ナビ：紙の上に、枠だけの印＋言葉。いまの場所は、塗った印 */
.gnav{border-bottom:1px solid var(--ink)}
.gnav .wrap{display:flex;flex-wrap:wrap;gap:0 30px}
.gnav a{display:inline-flex;align-items:center;gap:.55em;min-height:56px;color:var(--ink);text-decoration:none;font-family:var(--head);font-weight:700;font-size:1rem;letter-spacing:.04em;white-space:nowrap}
.gnav a:hover .nl{text-decoration:underline;text-decoration-thickness:.6px;text-underline-offset:.25em}
.gnav .in{width:1.75em;height:1.75em}
.gnav .ns{display:none}

/* ---- 本文の枠：main は区画（section）の並び。区画の中に .wrap ---- */
main{display:block;padding-bottom:80px}
main>section{padding-top:60px}
main>section:first-child{padding-top:30px}
.stack{display:flex;flex-direction:column;gap:18px}
.read{max-width:var(--read)}

/* 匡郭：区画の頭の、太い線と細い線 */
.rule{position:relative;border-top:3px solid var(--ink);padding-top:26px}
.rule::before{content:"";position:absolute;left:0;right:0;top:3px;height:.75px;background:var(--ink)}
.rule-shu{border-top-color:var(--shu)}
.rule-shu::before{background:var(--shu)}
.hair{border-top:.75px solid var(--line);padding-top:22px}

/* ---- 題と導入 ---- */
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;font-family:var(--ui);font-size:.8125rem;color:var(--sub)}
.crumbs li{display:inline-flex;align-items:center;min-height:32px}
.crumbs li+li::before{content:"／";margin:0 .4em;color:var(--line)}
.crumbs a{color:var(--sub)}
h1{font-size:clamp(2.125rem,8.4vw,3rem);font-weight:800;line-height:1.3;letter-spacing:.05em}
h1 rt{font-size:.3em}
h2{font-size:clamp(1.5rem,6vw,1.9375rem);font-weight:800;line-height:1.45;letter-spacing:.04em}
h3{font-size:1.375rem}
.lead{font-size:1.1875rem;line-height:2;max-width:var(--read)}
.note{font-family:var(--ui);font-size:.875rem;line-height:1.8;color:var(--sub)}
.more{font-size:1rem}
/* 章の扉：拓本ふうの印＋題 */
.door{display:flex;align-items:center;gap:18px}
.door .in{width:4.25rem;height:4.25rem}
.door>h1,.door>h2{min-width:0}
.door-h2 .in{width:3rem;height:3rem}
/* 番号札（魚尾）つきの見出し */
.hic{display:flex;align-items:flex-start;gap:.55em}
.hic>span{min-width:0}

/* ---- 監修 ---- */
.review{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:baseline;font-family:var(--ui);font-size:.875rem;color:var(--sub)}
.badge-draft,.tbd{border:1px solid var(--draft-line);color:var(--draft-ink);background:var(--draft-bg);font-weight:700;white-space:nowrap}
.badge-draft{padding:2px 12px}
.review-note{flex:1 1 16em}
.tbd{display:inline-block;margin-left:.6em;padding:0 .55em;font-family:var(--ui);font-size:.75rem;line-height:1.7;vertical-align:.08em}
.tbd-line .tbd{margin-left:0}

/* ---- 押す前の確認：確認票の形 ---- */
.warn h2{color:var(--shu-dark)}
.checklist{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));gap:12px 36px}
.checklist li{position:relative;padding-left:1.9em}
.checklist li::before{content:"";position:absolute;left:0;top:.5em;width:1em;height:1em;border:1.25px solid var(--ink);background:var(--white)}
.urgent{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;margin-top:6px}
.urgent-dept{font-weight:700}
.urgent-call{display:block;flex:1 1 100%;color:var(--shu-dark);font-size:1.125rem}

/* ---- ボタン：藍の札・内側に金茶の細い罫・角は直角。救急は朱 ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:56px;padding:0 34px;background:var(--ai-deep);color:var(--white);
  font-family:var(--head);font-weight:700;font-size:1.0625rem;line-height:1.4;letter-spacing:.1em;text-decoration:none;border:0;position:relative;cursor:pointer;text-align:center;align-self:flex-start}
.btn::after{content:"";position:absolute;inset:4px;border:.75px solid var(--kin-light);pointer-events:none}
.btn:hover{background:var(--ai);color:var(--white)}
.btn-shu{background:var(--shu)}
.btn-shu::after{border-color:rgba(251,251,247,.6)}
.btn-shu:hover{background:var(--shu-dark)}
.btn-line{display:inline-flex;align-items:center;justify-content:center;background:none;color:var(--ink);border:1px solid var(--ink);min-height:44px;padding:0 16px;
  font-family:var(--ui);font-weight:400;font-size:.9375rem;letter-spacing:.02em;cursor:pointer;text-decoration:none}
.btn-line::after{content:none}
.btn-line:hover{background:var(--white);color:var(--ink)}

/* ---- 図版：四周双辺（外は太く、内は細く）。角は直角 ---- */
.plate{border:2px solid var(--ink);padding:3px;background:var(--white);margin:0}
.plate-in{border:.75px solid var(--ink);background:var(--plate)}
.plate-fig{all:unset;display:block;width:100%;cursor:zoom-in}
.plate-fig:focus-visible{outline:3px solid var(--ai);outline-offset:3px}
.fig{display:block;width:100%;height:auto;font-family:var(--head)}
.fig-defs{position:absolute}
.plate figcaption{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 12px 9px;font-family:var(--ui);font-size:.8125rem;color:var(--sub)}
.zoom-hint{white-space:nowrap}
.fo{fill:var(--white);stroke:var(--ink);stroke-width:1.7}
.fd{fill:none;stroke:var(--ink);stroke-width:1.4}
.fg{fill:none;stroke:#7C8785;stroke-width:1.25}
.fgd{stroke-dasharray:3 6}
.mk-h{fill:var(--shu);fill-opacity:.17}
.mk-d{fill:var(--shu)}
.ld{fill:none;stroke:var(--shu);stroke-width:1.1}
.nm{fill:var(--ink);font-size:16px;font-weight:800;paint-order:stroke;stroke:var(--plate);stroke-width:3.2px;stroke-linejoin:round}
.vw{fill:var(--sub);font-size:12.5px;font-family:var(--ui)}
.fig-map [data-mark]{cursor:pointer}
.fig-map .on .mk-h{fill-opacity:.4}
.fig-map text.on{fill:var(--shu-dark)}

/* ---- ツボの項目：題箋（縦書きの名前）＋書誌 ---- */
.charts{display:grid;gap:16px 20px;grid-template-columns:repeat(2,minmax(0,1fr))}
.charts-1{grid-template-columns:minmax(0,26rem)}
.fig-chart a .nm{fill:var(--ink);text-decoration:underline;text-decoration-thickness:.6px;text-underline-offset:3px}
.fig-chart a:hover .nm,.fig-chart a:focus .nm{fill:var(--shu-dark)}
.fig-chart .ld{stroke-width:.85}
.overview{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:20px 40px;align-items:start}
.overview .charts{grid-template-columns:minmax(0,1fr)}
.overview .charts-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.jump{list-style:none;padding:0;display:flex;flex-direction:column}
.jump li{border-top:.75px solid var(--line)}
.jump li:first-child{border-top:1px solid var(--ink)}
.jump li:last-child{border-bottom:.75px solid var(--line)}
.jump a{display:flex;align-items:baseline;gap:.8em;min-height:52px;padding:10px 2px;text-decoration:none;color:var(--ink)}
.jump a:hover .jump-name{text-decoration:underline;text-decoration-thickness:.6px}
.jump-name{font-family:var(--head);font-weight:700;font-size:1.25rem;white-space:nowrap}
.jump-where{font-family:var(--ui);font-size:.875rem;color:var(--sub)}
.jump-stars{margin-left:auto;white-space:nowrap;font-size:.9375rem;color:var(--sub)}
.entries{display:flex;flex-direction:column}
.entry{border-top:1px solid var(--ink);padding:28px 0 46px;display:grid;grid-template-columns:minmax(0,25rem) minmax(0,1fr);gap:20px 46px;align-items:start}
.entry:last-child{padding-bottom:0}
.entry-head{grid-column:1/-1;display:flex;align-items:flex-end;gap:22px}
.entry-title{display:flex;flex-direction:column;gap:8px;min-width:0}
.entry-name{font-size:clamp(1.75rem,6vw,2.125rem);line-height:1.3}
/* 題箋：隅を切った二重枠の札 */
.slip{flex:none;align-self:flex-start;background:var(--ink);padding:1.4px;
  clip-path:polygon(6px 0,calc(100% - 6px) 0,calc(100% - 6px) 6px,100% 6px,100% calc(100% - 6px),calc(100% - 6px) calc(100% - 6px),calc(100% - 6px) 100%,6px 100%,6px calc(100% - 6px),0 calc(100% - 6px),0 6px,6px 6px)}
.slip-in{display:block;background:var(--white);position:relative;padding:18px 10px 16px;
  clip-path:polygon(5px 0,calc(100% - 5px) 0,calc(100% - 5px) 5px,100% 5px,100% calc(100% - 5px),calc(100% - 5px) calc(100% - 5px),calc(100% - 5px) 100%,5px 100%,5px calc(100% - 5px),0 calc(100% - 5px),0 5px,5px 5px)}
.slip-in::after{content:"";position:absolute;inset:6px;border:.75px solid var(--ink);pointer-events:none}
.slip-name{display:block;writing-mode:vertical-rl;text-orientation:upright;font-family:var(--fude);font-weight:400;font-size:2.375rem;line-height:1.5;letter-spacing:.1em;margin:0;text-wrap:nowrap;white-space:nowrap}
.slip-name rt{font-family:var(--ui);font-weight:400;font-size:.27em;color:var(--sub);letter-spacing:.14em;text-orientation:mixed}
.entry-head .slip{align-self:auto}
ruby{ruby-position:over}
rt{font-family:var(--ui);font-weight:400;font-size:.36em;color:var(--sub);letter-spacing:.12em;font-feature-settings:normal}
/* 書誌：WHO表記・拼音・経絡 */
.shoshi{display:grid;grid-template-columns:auto minmax(0,1fr);gap:0 14px;font-family:var(--ui);font-size:.875rem;line-height:1.9;padding-bottom:4px}
.shoshi dt{color:var(--sub);white-space:nowrap}
.shoshi dd{font-family:var(--body);font-size:1rem}
.facts{display:flex;flex-direction:column}
.facts>div{display:grid;grid-template-columns:5.4em minmax(0,1fr);gap:0 12px;padding:14px 0;border-top:.75px solid var(--line)}
.facts>div:first-child{border-top:0;padding-top:0}
.facts dt{font-family:var(--head);font-weight:700;font-size:1rem;line-height:1.9;letter-spacing:.06em}
.facts .caution dt{color:var(--shu-dark)}
.stars{letter-spacing:.08em;white-space:nowrap}
.fact-stars{display:block;font-weight:700}
.ref{font-family:var(--ui);font-size:.8125rem;margin-left:.2em;text-decoration:none;white-space:nowrap}
.ref:hover{text-decoration:underline}
.entry-more{margin-top:14px;font-size:1rem}

/* ---- ★の凡例 ---- */
.legend{display:flex;flex-direction:column;max-width:var(--read)}
.legend>div{display:grid;grid-template-columns:5.6em minmax(0,1fr);gap:0 12px;padding:10px 0;border-top:.75px solid var(--line)}
.legend>div:first-child{border-top:1px solid var(--ink)}
.legend>div:last-child{border-bottom:.75px solid var(--line)}
.legend dt{font-weight:700;white-space:nowrap;letter-spacing:.08em}

/* ---- 受診の目安：ページでここだけ色の帯 ---- */
.band{background:var(--mist);margin-top:60px;padding-top:44px!important;padding-bottom:48px;border-top:1px solid var(--ink);border-bottom:.75px solid var(--line)}
.band+section{padding-top:48px}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));gap:28px 48px}
.cols h3{margin-bottom:10px}

/* ---- 索引の並び（関連する症状・一覧）---- */
.index{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:0 36px;border-top:1px solid var(--ink)}
.index li{border-bottom:.75px solid var(--line)}
.index a{display:flex;align-items:center;min-height:56px;padding:8px 2px;text-decoration:none;color:var(--ink);font-family:var(--head);font-weight:700;font-size:1.1875rem}
.index a:hover{color:var(--ai);text-decoration:underline;text-decoration-thickness:.6px}
.list{list-style:none;padding:0;border-top:1px solid var(--ink)}
.list>li{border-bottom:.75px solid var(--line)}
.list a.item{display:block;padding:20px 2px 22px;text-decoration:none;color:var(--ink)}
.list a.item:hover .item-title{text-decoration:underline;text-decoration-thickness:.6px}
.item-title{display:block;font-family:var(--head);font-weight:700;font-size:1.5rem;line-height:1.5;letter-spacing:.03em}
.item-desc{display:block;max-width:var(--read)}
.item-meta{display:block;font-family:var(--ui);font-size:.875rem;color:var(--sub);margin-top:4px}
/* 一覧の行：左に印、右に題と説明 */
.list a.item-in{display:flex;align-items:flex-start;gap:18px}
.item-in>.in{width:2.6rem;height:2.6rem;margin-top:4px}
.item-body{display:block;min-width:0}

/* ---- ツボの名前から探す ---- */
.find{display:flex;flex-direction:column;gap:6px;max-width:30rem}
.find label{font-family:var(--head);font-weight:700;font-size:1rem}
.find input{font:inherit;min-height:52px;padding:0 14px;border:1.5px solid var(--ink);border-radius:0;background:var(--white);color:var(--ink);width:100%}
.rows{list-style:none;padding:0;border-top:1px solid var(--ink)}
.rows li{border-bottom:.75px solid var(--line)}
.rows a{display:grid;grid-template-columns:minmax(8.5em,auto) 5em minmax(0,1fr);gap:4px 18px;align-items:baseline;min-height:56px;padding:12px 2px;text-decoration:none;color:var(--ink)}
.rows a:hover .row-name{text-decoration:underline;text-decoration-thickness:.6px}
.row-name{font-family:var(--head);font-weight:700;font-size:1.375rem;white-space:nowrap}
.row-reading{margin-left:.7em;font-family:var(--ui);font-size:.8125rem;font-weight:400;color:var(--sub)}
.row-code{font-family:var(--ui);font-size:.8125rem;color:var(--sub);white-space:nowrap}
.row-loc{font-size:.9375rem}

/* ---- 部位のマップ ---- */
.map-grid{display:grid;grid-template-columns:minmax(0,32rem) minmax(0,1fr);gap:20px 40px;align-items:start}
.map-list{list-style:none;padding:0;border-top:1px solid var(--ink)}
.map-item{border-bottom:.75px solid var(--line);padding:12px 10px;cursor:pointer}
.map-item.on{background:var(--white)}
.map-name{font-family:var(--head);font-weight:700;font-size:1.25rem}
.map-name a{color:var(--ink)}
.map-name .row-code{margin-left:.7em;font-weight:400}

/* ---- ツボのページ：題箋を h1 の左に ---- */
.point-door{display:flex;align-items:flex-start;gap:26px}
.point-door>.stack{flex:1 1 auto;min-width:0}
.point-meta{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 16px;font-family:var(--ui);font-size:.875rem;max-width:var(--read)}
.point-meta dt{color:var(--sub)}
.point-meta dd{font-family:var(--body);font-size:1rem}
.detail{display:grid;grid-template-columns:minmax(0,30rem) minmax(0,1fr);gap:20px 44px;align-items:start}
.use-list{list-style:none;padding:0;max-width:var(--read)}
.use-list li{border-top:.75px solid var(--line);padding:14px 0}
.use-head{font-family:var(--head);font-weight:700;font-size:1.1875rem;display:flex;flex-wrap:wrap;gap:0 1em;align-items:baseline}
.use-head .stars{font-family:var(--body);font-size:1rem}

/* ---- トップ：扉（縦書きの題＋落款／全身図／導入）と序 ---- */
.hero{display:grid;grid-template-columns:auto minmax(0,27rem) minmax(15rem,1fr);gap:28px 52px;align-items:start}
.hero h1{writing-mode:vertical-rl;font-size:3.25rem;line-height:1.42;letter-spacing:.16em;white-space:nowrap}
.hero h1 span{display:block}
.hero-title{display:flex;flex-direction:column;align-items:flex-start;gap:26px}
.hero-text{display:flex;flex-direction:column;gap:22px;padding-top:6px}
.hero-find{list-style:none;padding:0;border-top:1px solid var(--ink)}
.hero-find li{border-bottom:.75px solid var(--line)}
.hero-find a{display:flex;align-items:center;gap:.8em;min-height:60px;color:var(--ink);text-decoration:none;font-family:var(--head);font-weight:700;font-size:1.1875rem;letter-spacing:.04em}
.hero-find a:hover span{text-decoration:underline;text-decoration-thickness:.6px}
.hero-find .in{width:2em;height:2em}
.ck-home{gap:10px}
/* ---- 目次（トップ。docs/拡張の設計.md 4章）：一 症状／二 部位／三 読む・確かめる。点線の罫で数へつなぐ ---- */
.toc{display:flex;flex-direction:column;gap:38px}
.toc-h{letter-spacing:.32em}
:lang(en) .toc-h{letter-spacing:.02em}
.toc-chap{display:flex;flex-direction:column;gap:10px}
.toc-chap-h{display:flex;align-items:flex-start;gap:.55em;font-size:1.375rem;padding-bottom:10px;border-bottom:1px solid var(--ink)}
.toc-chap-name{flex:1 1 auto;min-width:0}
.toc-count{flex:none;font-weight:700;letter-spacing:.08em;white-space:nowrap}
.toc-grps{display:flex;flex-direction:column}
.toc-grp{display:grid;grid-template-columns:10.5rem minmax(0,1fr);gap:0 28px;align-items:start;padding:6px 0 10px;border-bottom:.75px solid var(--line)}
.toc-gh{margin:0;padding-top:12px;font-family:var(--head);font-weight:700;font-size:1.0625rem;color:var(--sub);letter-spacing:.06em}
.toc-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px}
.toc-list-1{grid-template-columns:minmax(0,1fr)}
.toc-row{display:flex;align-items:center;gap:.6em;min-height:48px;padding:3px 0;color:var(--ink);text-decoration:none;font-family:var(--head);font-weight:700;font-size:1.125rem;letter-spacing:.03em}
.toc-row:hover{color:var(--ink)}
.toc-row:hover .toc-name{text-decoration:underline;text-decoration-thickness:.6px}
.toc-row>.in{flex:none;width:1.9em;height:1.9em}
.toc-name{flex:none;white-space:nowrap}
.toc-dots{flex:1 1 1.5em;min-width:1.5em;align-self:center;margin-top:.45em;border-bottom:1px dotted var(--sub)}
.toc-n{flex:none;font-weight:400;font-size:1rem;color:var(--sub);white-space:nowrap}
.toc-row-read .toc-n{flex:0 1 auto;white-space:normal;text-align:right;font-family:var(--body)}
.toc-parts{list-style:none;padding:0;margin:0}
.toc-part{display:flex;align-items:flex-start;gap:.8em;padding:8px 0 12px;border-bottom:.75px solid var(--line)}
.toc-part>.in{flex:none;width:2.2rem;height:2.2rem;margin-top:5px}
.toc-part-body{min-width:0}
.toc-part-h{margin:0;font-family:var(--head);font-weight:700;font-size:1.1875rem;letter-spacing:.04em}
.toc-part-h a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);text-decoration:none}
.toc-part-h a:hover{text-decoration:underline;text-decoration-thickness:.6px}
.toc-pn{font-weight:400;color:var(--sub)}
.toc-pts{margin:0;font-family:var(--head);font-size:1.0625rem;line-height:1.6;letter-spacing:.02em}
.toc-pt{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;white-space:nowrap;text-decoration:none}
.toc-pt:hover{text-decoration:underline;text-decoration-thickness:.6px}
/* 群の見出し（/symptom/ の一覧・セルフチェックの①） */
.grp-sec+.grp-sec{margin-top:6px}
.grp-h{font-size:1.375rem;font-weight:700;letter-spacing:.06em;margin:18px 0 10px}
.ck-grp+.ck-grp{margin-top:14px}
.ck-gh{font-size:1.0625rem;color:var(--sub);letter-spacing:.06em;margin:0 0 6px}
:lang(en) .hero{grid-template-columns:minmax(0,27rem) minmax(15rem,1fr)}
:lang(en) .hero-title{grid-column:1/-1;flex-direction:row;align-items:flex-end;gap:18px}
:lang(en) .hero h1{writing-mode:horizontal-tb;letter-spacing:0;line-height:1.25;white-space:normal;font-size:clamp(2.125rem,6vw,3.25rem)}
.preface{display:grid;grid-template-columns:minmax(0,25rem) minmax(0,1fr);gap:24px 52px;align-items:start}
.promise{display:flex;flex-direction:column;max-width:var(--read);border-top:1px solid var(--ink)}
.promise>div{padding:14px 0;border-bottom:.75px solid var(--line)}
.promise dt{font-family:var(--head);font-weight:700;font-size:1.1875rem}
.prose{display:flex;flex-direction:column;gap:18px;max-width:var(--read)}
.prose h2{margin-top:26px}
.prose h3{margin-top:10px}
.prose .q{font-size:1.1875rem}
table.tbl{border-collapse:collapse;width:100%;font-size:1rem}
.tbl th,.tbl td{text-align:left;vertical-align:top;padding:12px 14px 12px 0;border-top:.75px solid var(--line)}
.tbl thead th{border-top:0;border-bottom:1px solid var(--ink);font-family:var(--head);font-size:.9375rem;white-space:nowrap}
.tbl tbody th{white-space:nowrap;font-family:var(--head);font-size:1.125rem}
.tbl-scroll{overflow-x:auto}

/* ---- 出典 ---- */
.sources{font-family:var(--ui);font-size:.8125rem;color:var(--sub);line-height:1.75}
.sources h2{font-family:var(--head);font-size:1.125rem;color:var(--ink);margin-bottom:8px;letter-spacing:.04em}
.sources li{margin-bottom:6px}
.sources li:target{background:var(--mist)}
.sources i{font-style:normal}

/* ---- フッター：雷文 → 藍。右下に落款 ---- */
.site-footer{padding-bottom:60px}   /* 下の余白＝「先頭へ」が最後の行に重ならない */
.site-footer .wrap{padding-top:30px;padding-bottom:34px;display:flex;flex-direction:column;gap:10px;font-family:var(--ui);font-size:.875rem;color:#D5DBE0}
/* 案内：症状／部位／案内 の3つのまとまり */
.foot-nav{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:20px 40px;margin:14px 0 10px}
.foot-h{font-size:.75rem;color:var(--kin-light);letter-spacing:.12em;padding-bottom:6px;border-bottom:.75px solid rgba(201,174,106,.45)}
.foot-group ul{list-style:none;padding:0}
.foot-sym ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}
.foot-nav a{color:#E4E8EC;display:flex;align-items:center;min-height:44px;text-decoration:none;font-family:var(--head);font-size:.9375rem;letter-spacing:.03em}
.foot-nav a:hover{color:var(--white);text-decoration:underline;text-decoration-thickness:.6px}
.foot-end{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-top:6px}
.foot-op{color:#AEB8C2;font-size:.8125rem}
.foot-end .rakkan{width:2.25rem;height:2.25rem}

/* ---- 図を大きく見る（四周双辺）---- */
.zoom{border:0;padding:0;background:transparent;max-width:min(96vw,46rem);width:100%}
.zoom::backdrop{background:rgba(29,31,36,.78)}
.zoom-in{background:var(--white);border:2px solid var(--ink);padding:3px;display:flex;flex-direction:column}
.zoom-fig{border:.75px solid var(--ink);background:var(--plate)}
.zoom-close{align-self:flex-end;margin:10px 6px 6px}

/* ---- セルフチェック（docs/セルフチェック設計.md）：1段組み・幅は --read まで。朱は選んだ印と「すぐ受診」だけ ---- */
.ck[hidden],.ck [hidden]{display:none!important}   /* .stack などの display より「隠す」を先に効かせる */
.ck-notes{padding-left:1.2em}
.ck-in{max-width:var(--read);display:flex;flex-direction:column;gap:22px}
.ck-steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));font-family:var(--ui);font-size:.8125rem;color:var(--sub)}
.ck-steps li{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
.ck-steps li+li::before{content:"";position:absolute;top:5.5px;right:calc(50% + 12px);left:calc(-50% + 12px);height:1px;background:var(--line)}
.ck-steps li.done+li::before{background:var(--ink)}
.ck-dot{position:relative;width:12px;height:12px;border-radius:50%;border:1.5px solid var(--sub);background:var(--paper)}
.ck-steps .done .ck-dot{background:var(--ink);border-color:var(--ink)}
.ck-steps [aria-current] .ck-dot{border:0;background:var(--shu)}
.ck-steps [aria-current] .ck-dot::after{content:"";position:absolute;left:-6px;top:-6px;width:24px;height:24px;border-radius:50%;background:var(--shu);opacity:.17}
.ck-steps [aria-current] .ck-step{color:var(--ink);font-weight:700}
.ck-step{white-space:nowrap}
.ck-cands{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 1em;padding:10px 0;border-top:1px solid var(--ink);border-bottom:.75px solid var(--line);font-size:.9375rem}
.ck-cands-h{font-family:var(--ui);font-size:.8125rem;color:var(--sub);white-space:nowrap}
.ck-cands .ck-names{display:flex;flex-wrap:wrap;gap:0 1em}
.ck-cands .ck-names span{font-family:var(--head);font-weight:700;font-size:1.0625rem;white-space:nowrap;transition:opacity .3s}
.ck-cands .ck-names span.out{opacity:.4;text-decoration:line-through;text-decoration-thickness:1px}
.ck-q{font-family:var(--ui);font-size:.875rem;color:var(--sub);margin-bottom:-10px}
.ck-screen h2:focus{outline:0}
.ck-screen h2:focus-visible{outline:3px solid var(--ai);outline-offset:3px}
.ck-screen.ck-fade{animation:ck-fade .16s ease-out}
@keyframes ck-fade{from{opacity:0}to{opacity:1}}
.ck-opts{list-style:none;padding:0;border-top:1px solid var(--ink)}
.ck-opts li{border-bottom:.75px solid var(--line)}
.ck-opts-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:0 36px}
.ck-opt{display:flex;align-items:center;gap:.8em;width:100%;min-height:60px;padding:10px 2px;margin:0;background:none;border:0;cursor:pointer;
  color:var(--ink);font-family:var(--head);font-weight:700;font-size:1.25rem;line-height:1.5;text-align:left}
.ck-opt:hover .ck-label{text-decoration:underline;text-decoration-thickness:.6px;text-underline-offset:.2em}
.ck-label{flex:1 1 auto;min-width:0}
.ck-box{position:relative;flex:none;width:1.15em;height:1.15em;border:1.25px solid var(--ink);background:var(--white)}
.ck-box i{position:absolute;left:50%;top:50%;width:.95em;height:.95em;margin:-.475em 0 0 -.475em;border-radius:50%;background:rgba(181,52,31,.17);transform:scale(0);opacity:0;transition:transform .18s ease-out,opacity .18s ease-out}
.ck-box i::after{content:"";position:absolute;left:50%;top:50%;width:.5em;height:.5em;margin:-.25em 0 0 -.25em;border-radius:50%;background:var(--shu)}
.ck-opt[aria-pressed="true"] .ck-box i{transform:scale(1);opacity:1}
.ck-foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px}
.ck-back{font:inherit;font-size:1rem;color:var(--ai);background:none;border:0;padding:0 2px;min-height:44px;cursor:pointer;text-decoration:underline;text-decoration-thickness:.6px;text-underline-offset:.2em}
.ck-back:hover{color:var(--ai-deep)}
.ck-screen[data-screen="stop"] h2{color:var(--shu-dark)}
.ck h2{text-wrap:balance}
/* 確認票：1行ずつ押せる（押すと「あてはまるものがある」と同じ先へ） */
.ck-flags li{padding-left:0}
.ck-flags li::before{content:none}
.ck-flag{align-items:flex-start;min-height:44px;padding:6px 0;font-family:var(--body);font-weight:400;font-size:1.0625rem;line-height:1.7}
.ck-flag .ck-box{margin-top:.32em;width:1.05em;height:1.05em}
/* 結果：「まず、ここ」は題箋。見出しのすぐ下、図より前（スマホで、最初の画面に入るように） */
.ck-first{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.ck-first-h{font-family:var(--head);font-weight:700;font-size:1.125rem;letter-spacing:.06em}
.ck-first-name .slip-name{font-size:2.75rem}
.ck-band{background:var(--mist);padding:20px 22px;border-top:1px solid var(--ink)}
.ck-band h3{font-size:1.25rem}
.ck-map .charts{grid-template-columns:minmax(0,26rem)}
.ck-chart [data-code] .nm{transition:opacity .3s}
.ck-chart [data-code] .mk-h,.ck-chart [data-code] .mk-d{transform-box:fill-box;transform-origin:center;transition:transform .3s ease-out,opacity .3s}
.ck-chart [data-code]{transition:opacity .3s}
.ck-chart [data-code].faint{opacity:.35}
.ck-chart [data-code].gone{opacity:0;pointer-events:none}
.ck-chart [data-code].first .mk-h,.ck-chart [data-code].first .mk-d{transform:scale(1.7)}
.ck-chart [data-code].first .nm{font-size:18px}
.ck-chart [data-code].hide-name .nm,.ck-chart [data-code].hide-name .ld{opacity:0}
.ck-chart [data-code].pulse .mk-h{animation:ck-pulse 1.2s ease-out 1}
@keyframes ck-pulse{0%{transform:scale(1.7)}45%{transform:scale(2.6)}100%{transform:scale(1.7)}}
.ck-entries .entry{grid-template-columns:minmax(0,1fr)}
.ck-entries .plate{max-width:26rem}
.ck-entry:not(.is-first) .slip-name{font-size:2rem}
.ck-first-label{font-family:var(--head);font-weight:700;font-size:1.125rem;margin-bottom:-14px;grid-column:1/-1}
.ck-others-h{padding-top:30px;font-size:1.375rem}
.ck-entries .ck-others-h+.entry{border-top-color:var(--line)}
.ck-press{display:flex;flex-direction:column;gap:10px;margin-top:16px}
.ck-press-line{display:flex;justify-content:space-between;gap:12px;font-size:1.125rem;font-weight:700}
.ck-phase{font-family:var(--head)}
.ck-count{color:var(--sub);font-weight:400;white-space:nowrap}
.ck-live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ck-plate-press .mk-h{transform-box:fill-box;transform-origin:center;transition-property:transform;transition-timing-function:ease-in-out}
.ck-plate-press.in .mk-h{transform:scale(1.7)}
.ck-out{display:flex;flex-direction:column;gap:10px;align-items:flex-start;font-family:var(--ui);font-size:.875rem;color:var(--sub)}
.ck-out .ck-names span:not([hidden])~span:not([hidden])::before{content:"・"}
.ck-out .ck-names span{white-space:nowrap}
@media (prefers-reduced-motion:reduce){
  .ck-screen.ck-fade{animation:none}
  .ck-box i,.ck-cands .ck-names span,.ck-chart [data-code],.ck-chart [data-code] *{transition:none!important;animation:none!important}
  .ck-plate-press .mk-h{transition:none!important}
  .ck-plate-press.in .mk-h{transform:none}
}
@media print{
  .ck-steps,.ck-foot,.ck-press{display:none}
}

/* ---- このページの流れ（症状ページ）：番号は筆の漢数字（一は朱）。貼り付きにはしない ---- */
.flow ol{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.flow li+li{border-left:.75px solid var(--line)}
.flow a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:68px;padding:10px 4px 12px;color:var(--ink);text-decoration:none;
  font-family:var(--ui);font-size:.875rem;line-height:1.4;text-align:center}
.flow a:hover span{text-decoration:underline;text-decoration-thickness:.6px}
.flow b{font-family:var(--fude);font-weight:400;font-size:1.375rem;line-height:1.2}
.flow li:first-child b{color:var(--shu)}
.flow span{word-break:keep-all;overflow-wrap:normal}

/* ---- ページの先頭へ ---- */
.totop{position:fixed;right:16px;bottom:16px;z-index:6;display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--white);border:1px solid var(--ink);color:var(--ink)}
.totop[hidden]{display:none}
.totop .ic{width:28px;height:28px;color:var(--ink)}

/* ---- 狭い画面 ---- */
@media (max-width:820px){
  .toc-grp{grid-template-columns:minmax(0,1fr)}
  .toc-gh{padding-top:8px}
  .toc-list{grid-template-columns:minmax(0,1fr)}
  .entry,.detail,.map-grid,.preface{grid-template-columns:minmax(0,1fr)}
  .overview{grid-template-columns:minmax(0,1fr)}
  /* トップの扉：題 → 導入 → ボタン → 探し方 → 図（図より先に入口を置く） */
  .hero,:lang(en) .hero{grid-template-columns:minmax(0,1fr)}
  .hero-title{flex-direction:row;align-items:flex-end;gap:14px}
  .hero .rakkan{width:2.5rem;height:2.5rem;margin-bottom:.5rem}
  .hero h1{writing-mode:horizontal-tb;font-size:clamp(2.125rem,8.4vw,3rem);line-height:1.35;letter-spacing:.05em;white-space:normal;min-width:0}
  .hero-fig{order:3}
  .preface>.plate{order:2}
  /* 下のタブ：ヘッダーと同じ nav を画面の下に固定する。印の下に短い名前。いまの場所は塗った印 */
  .gnav{position:fixed;left:0;right:0;bottom:0;z-index:5;border-bottom:0;border-top:1px solid var(--ink);background:var(--paper) url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20width%3D%27260%27%20height%3D%27260%27%3E%3Cfilter%20id%3D%27n%27%20x%3D%270%27%20y%3D%270%27%20width%3D%27100%25%27%20height%3D%27100%25%27%3E%3CfeTurbulence%20type%3D%27fractalNoise%27%20baseFrequency%3D%27.85%27%20numOctaves%3D%272%27%20seed%3D%277%27%20stitchTiles%3D%27stitch%27/%3E%3CfeColorMatrix%20values%3D%270%200%200%200%20.36%20%200%200%200%200%20.34%20%200%200%200%200%20.27%20%200%200%200%20.07%200%27/%3E%3C/filter%3E%3Crect%20width%3D%27260%27%20height%3D%27260%27%20filter%3D%27url%28%23n%29%27/%3E%3C/svg%3E");
    height:calc(62px + env(safe-area-inset-bottom));padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
  .gnav .wrap{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:0;max-width:none;padding:0;height:62px}
  .gnav a{flex-direction:column;justify-content:center;gap:3px;min-height:62px;padding:0 2px;color:var(--sub);font-family:var(--ui);font-weight:400;font-size:.75rem;line-height:1.3;letter-spacing:0}
  .gnav a[aria-current]{color:var(--ink);font-weight:700}
  .gnav .in{width:1.6rem;height:1.6rem}
  .gnav .nl{display:none}
  .gnav .ns{display:block;white-space:nowrap}
  html.text-lg .gnav a{font-size:.6875rem}
  html.text-lg .gnav .in{width:1.4rem;height:1.4rem}
  .site-footer{padding-bottom:calc(62px + 60px + env(safe-area-inset-bottom))}   /* タブの高さ＋「先頭へ」のぶん */
  .totop{bottom:calc(62px + env(safe-area-inset-bottom) + 12px)}
  .foot-nav{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:560px){
  :root{--pad:18px}
  main>section{padding-top:46px}
  .site-header .cover .wrap{padding-top:10px;padding-bottom:12px;gap:8px 10px}
  .textsize>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .daisen-sub{display:none}
  .daisen-name{font-size:1.3125rem}
  .door{gap:14px}
  .door .in{width:3.5rem;height:3.5rem}
  .door h1{font-size:clamp(1.875rem,8.4vw,3rem);letter-spacing:.02em}
  html.text-lg .door .in{width:3rem;height:3rem}
  .door-h2 .in{width:2.75rem;height:2.75rem}
  .point-door{gap:16px}
  .point-door .slip-name{font-size:2.125rem}
  /* 図版は画面いっぱい（左右の辺を落とす） */
  .plate{margin-left:calc(var(--pad) * -1);margin-right:calc(var(--pad) * -1);border-left:0;border-right:0;padding:3px 0}
  .plate-in{border-left:0;border-right:0}
  .ck-entries .plate{max-width:none}
  .slip-name{font-size:2.125rem}
  .entry-head{gap:16px}
  .facts>div,.legend>div{grid-template-columns:minmax(0,1fr)}
  .rows a{grid-template-columns:minmax(0,1fr) auto}
  .row-loc{grid-column:1/-1}
  .btn{align-self:stretch;padding:0 20px}
  .urgent .btn{width:100%}
  .band{margin-top:46px}
  .tbl thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .tbl,.tbl tbody,.tbl tr,.tbl th,.tbl td{display:block}
  .tbl tr{border-top:1px solid var(--ink);padding:12px 0}
  .tbl th,.tbl td{border:0;padding:2px 0}
  .tbl tbody th{white-space:normal;font-size:1.25rem}
  .tbl td::before{content:attr(data-label);display:block;font-family:var(--ui);font-size:.8125rem;font-weight:700;color:var(--sub);margin-top:8px}
  .charts,.overview .charts-2{grid-template-columns:minmax(0,1fr)}
}
@media (prefers-reduced-motion:no-preference){
  html{scroll-behavior:smooth}
}
@media print{
  .gnav,.tools,.foot-nav,.skip,.zoom-hint,.zoom-close,.totop,.flow{display:none}
  body{background:#fff}
  .entry{break-inside:avoid}
}
