
:root{--fg:#1b1b1f;--sub:#5c5f66;--line:#e3e5e8;--bg:#fff;--accent:#1f5fa8;--soft:#f6f7f9}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
color:var(--fg);background:var(--bg);line-height:1.85;font-size:16px;-webkit-text-size-adjust:100%}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:760px;margin:0 auto;padding:0 20px}
header.site{border-bottom:1px solid var(--line);padding:18px 0;margin-bottom:34px}
header.site .wrap{display:flex;flex-wrap:wrap;gap:12px;align-items:baseline;justify-content:space-between}
.brand{font-weight:700;font-size:19px;color:var(--fg)}
.brand small{display:block;font-weight:400;font-size:12px;color:var(--sub);margin-top:3px}
nav.g a{font-size:14px;color:var(--sub);margin-left:4px;white-space:nowrap;
display:inline-block;padding:10px 8px;min-height:44px;line-height:24px}
p,li,td,th,blockquote,.card .d{overflow-wrap:anywhere;word-break:normal}
h1{font-size:27px;line-height:1.45;margin:0 0 10px}
h2{font-size:21px;margin:38px 0 12px;padding-bottom:7px;border-bottom:2px solid var(--line)}
h3{font-size:17px;margin:28px 0 8px}
p{margin:0 0 17px}
ul,ol{margin:0 0 17px;padding-left:1.4em}
li{margin-bottom:6px}
blockquote{margin:0 0 17px;padding:12px 16px;background:var(--soft);
border-left:3px solid var(--accent);color:var(--sub)}
code{background:var(--soft);padding:2px 5px;border-radius:3px;font-size:.9em}
pre{background:var(--soft);padding:14px;overflow:auto;border-radius:5px}
pre code{background:none;padding:0}
img{max-width:100%;height:auto}
.tw{overflow-x:auto;margin:0 0 20px}
table{border-collapse:collapse;width:100%;font-size:14.5px}
th,td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
th{background:var(--soft);font-weight:700;white-space:nowrap}
hr{border:0;border-top:1px solid var(--line);margin:32px 0}
.meta{color:var(--sub);font-size:13px;margin-bottom:22px}
.tag{display:inline-block;background:var(--soft);border:1px solid var(--line);border-radius:3px;
padding:1px 9px;font-size:12px;color:var(--sub);margin-right:6px}
.pr{background:#fff8e6;border:1px solid #f0dca8;border-radius:5px;padding:11px 14px;
font-size:13px;color:#6b5a2a;margin:0 0 26px}
.lead{font-size:18px;line-height:1.85;margin:0 0 14px}
.lead:first-of-type{font-size:20px;font-weight:700;line-height:1.6;margin-bottom:12px}
.card{border-bottom:1px solid var(--line);padding:18px 0}
.card:last-child{border-bottom:0}
.card a.t{font-size:17px;font-weight:700;color:var(--fg);display:block;margin-bottom:5px}
.card a.t:hover{color:var(--accent)}
.card .d{color:var(--sub);font-size:14px;margin:0}
.rel{background:var(--soft);border-radius:6px;padding:16px 20px;margin:40px 0 0}
.rel h2{border:0;font-size:15px;margin:0 0 8px;padding:0}
.rel ul{margin:0;padding-left:1.2em}
.rel li{font-size:14px}
footer.site{border-top:1px solid var(--line);margin-top:56px;padding:26px 0 46px;
color:var(--sub);font-size:13px}
footer.site a{color:var(--sub)}
.disc{font-size:12px;color:var(--sub);margin-top:10px;line-height:1.7}
/* スマホ。本文は小さくしない。画面が狭いほど1行が短くなるので、字は据え置きでよい */
@media(max-width:600px){
h1{font-size:24px}h2{font-size:20px}h3{font-size:17px}
body{font-size:16.5px;line-height:1.9}
.wrap{padding:0 16px}
th{white-space:normal}
table{font-size:15px}
header.site .wrap{gap:4px}
nav.g a{margin-left:0;margin-right:6px}
}
