:root{
  --bg:#fffdf8; --fg:#1d1b16; --muted:#6b6559; --line:#e6e0d4;
  --card:#ffffff; --accent:#b4581f; --accent-soft:#fdf0e4; --warn:#8a6d1f;
  --maxw:720px;
}
@media (prefers-color-scheme:dark){
  :root{ --bg:#15140f; --fg:#f0ece2; --muted:#a39c8d; --line:#302c23;
         --card:#1e1c15; --accent:#e08a45; --accent-soft:#2a2116; --warn:#c9a94e; }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg); color:var(--fg);
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP",sans-serif;
  font-size:17px; line-height:1.85; letter-spacing:.01em;
}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 20px}

/* 広告表記バー（全ページ最上部・必須） */
.ad-bar{
  background:var(--accent-soft); color:var(--fg); border-bottom:1px solid var(--line);
  font-size:13px; line-height:1.6; padding:9px 0; text-align:center;
}
.ad-bar strong{color:var(--accent)}

header.site{border-bottom:1px solid var(--line); padding:22px 0 18px}
header.site .brand{
  display:inline-block; font-size:22px; font-weight:800; letter-spacing:.06em;
  color:var(--fg); text-decoration:none;
}
header.site .tag{margin:4px 0 0; font-size:13px; color:var(--muted)}
nav.site{margin-top:14px; display:flex; gap:16px; flex-wrap:wrap; font-size:14px}
nav.site a{color:var(--muted); text-decoration:none; border-bottom:1px solid transparent}
nav.site a:hover{color:var(--accent); border-bottom-color:var(--accent)}

main{padding:32px 0 8px}
h1{font-size:27px; line-height:1.5; margin:0 0 6px; letter-spacing:.01em}
h2{font-size:20px; margin:38px 0 12px; padding-bottom:8px; border-bottom:2px solid var(--line)}
h3{font-size:17px; margin:26px 0 8px; color:var(--accent)}
p{margin:0 0 16px}
a{color:var(--accent)}
.lead{font-size:16px; color:var(--muted); margin-bottom:28px}

.note{
  background:var(--card); border:1px solid var(--line); border-left:4px solid var(--warn);
  border-radius:8px; padding:14px 16px; font-size:15px; margin:22px 0;
}
.note p:last-child{margin-bottom:0}

table{width:100%; border-collapse:collapse; margin:18px 0; font-size:15px}
th,td{border:1px solid var(--line); padding:9px 11px; text-align:left; vertical-align:top}
th{background:var(--accent-soft); font-weight:700; white-space:nowrap}
.scroll{overflow-x:auto; -webkit-overflow-scrolling:touch}

ul,ol{margin:0 0 16px; padding-left:1.4em}
li{margin-bottom:7px}

.cards{display:grid; gap:14px; margin:22px 0}
.card{
  background:var(--card); border:1px solid var(--line); border-radius:10px;
  padding:16px 18px; text-decoration:none; color:inherit; display:block;
}
.card:hover{border-color:var(--accent)}
.card .k{font-size:12px; color:var(--accent); font-weight:700; letter-spacing:.08em}
.card .t{font-size:17px; font-weight:700; margin:4px 0 6px; line-height:1.5}
.card .d{font-size:14px; color:var(--muted); margin:0}

.empty{
  border:1px dashed var(--line); border-radius:10px; padding:28px 20px;
  text-align:center; color:var(--muted); font-size:15px;
}

footer.site{
  margin-top:52px; border-top:1px solid var(--line); padding:24px 0 44px;
  font-size:13px; color:var(--muted);
}
footer.site a{color:var(--muted)}
footer.site .links{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:12px}

@media (max-width:480px){
  body{font-size:16px}
  h1{font-size:23px}
  h2{font-size:18px}
}
