:root{--bg:#fff;--text:#111;--muted:#666;--line:#e5e7eb;--soft:#eef8fd;--accent:#9ED8F5;--accent-dark:#6cc0ee;--r:8px;
--font:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP","Yu Gothic",Meiryo,system-ui,sans-serif}
*{box-sizing:border-box}
body{margin:0;font-family:var(--font);color:var(--text);background:var(--bg);line-height:1.8;min-height:100vh;display:flex;flex-direction:column}
a{color:var(--text);text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:3px}
.container{width:min(960px,92%);margin:0 auto}
header{border-bottom:1px solid var(--line)}
header .container{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;padding:1rem 0}
.brand{font-weight:700;font-size:1.25rem;text-decoration:none}
nav{display:flex;gap:1.2rem;font-size:.92rem}nav a{text-decoration:none;border-bottom:2px solid transparent}nav a:hover{border-bottom-color:var(--accent)}
main{flex:1;padding:1.5rem 0 3rem}
h1{font-size:clamp(1.5rem,5vw,2.2rem);margin:.5rem 0 1rem}
h1::after{content:"";display:block;width:48px;height:3px;background:var(--accent);margin-top:.6rem}
h2{font-size:1.2rem;margin:2.2rem 0 .8rem;padding-bottom:.3rem;border-bottom:2px solid var(--accent)}
.muted{color:var(--muted);font-size:.9rem}
.crumb{font-size:.8rem;color:var(--muted)}
.search{display:flex;gap:.5rem;margin:1rem 0}
.search input{flex:1;padding:.65rem .8rem;border:1px solid var(--line);border-radius:var(--r);font-size:1rem}
.search input:focus{outline:2px solid var(--accent)}
.chips{display:flex;gap:.5rem;flex-wrap:wrap;margin:.5rem 0}
.chip{border:1px solid var(--line);background:#fff;border-radius:99px;padding:.3rem .9rem;cursor:pointer;font-size:.9rem;font-family:inherit}
.chip.on,.chip:hover{background:var(--soft);border-color:var(--accent)}
.grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.8rem}
.card{display:block;border:1px solid var(--line);border-radius:var(--r);padding:.9rem 1rem;text-decoration:none;height:100%}
.card:hover{border-color:var(--accent-dark);background:var(--soft)}
.card b{display:block}.card span{font-size:.82rem;color:var(--muted)}
.tag{display:inline-block;background:var(--soft);border:1px solid var(--accent);border-radius:4px;padding:0 .5rem;font-size:.78rem}
dl.info{display:grid;grid-template-columns:7em 1fr;gap:.3rem 1rem;margin:0}dl.info dt{color:var(--muted)}dl.info dd{margin:0}
.tbl{width:100%}table{border-collapse:collapse;width:100%;table-layout:auto}
th,td{border:1px solid var(--line);padding:.6rem .7rem;text-align:left;font-size:.92rem;vertical-align:middle}th{background:var(--soft)}
.btn{display:inline-block;padding:.4rem 1rem;border-radius:var(--r);background:var(--accent);color:#111;text-decoration:none;white-space:nowrap}
.btn:hover{background:var(--accent-dark)}
.btn.off{background:#f3f4f6;color:#999;cursor:default}
.note{background:var(--soft);border-radius:var(--r);padding:.8rem 1rem;font-size:.88rem}
footer{border-top:1px solid var(--line);padding:1.2rem 0;font-size:.8rem;color:var(--muted)}
footer p{margin:.2rem 0}footer a{color:var(--muted)}

.cover{text-align:center;margin:16px 0}.cover img{max-width:200px;height:auto}

.tbl td{overflow-wrap:anywhere}
.sub{margin-top:1.6rem}
.chk{color:#666;font-size:.9rem}
@media (max-width:600px){
 .tbl table,.tbl thead,.tbl tbody,.tbl tr,.tbl td{display:block;width:100%;box-sizing:border-box}
 .tbl thead{display:none}
 .tbl tr{border:1px solid var(--line);border-radius:var(--r);padding:.7rem .8rem;margin-bottom:.8rem}
 .tbl td{border:0;padding:.2rem 0}
 .tbl td.svc{font-weight:700;font-size:1.05rem;border-bottom:2px solid var(--accent);padding-bottom:.4rem;margin-bottom:.3rem}
 .tbl td.free::before{content:"無料・試し読み：";color:#666;font-size:.85rem;display:block}
 .tbl td.act{padding-top:.5rem}
 .tbl .btn{display:block;text-align:center;white-space:normal}
}
