
:root{
  --fg:#111; --bg:#fafafa; --muted:#666; --line:#e5e5e5; --accent:#0a66cc;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,'Hiragino Kaku Gothic ProN','Noto Sans JP','Yu Gothic','Meiryo',sans-serif;color:var(--fg);background:var(--bg);}
.container{max-width:1100px;margin:0 auto;padding:20px;}
header{background:#fff;border-bottom:1px solid var(--line);}
.topbar{display:flex;align-items:center;gap:14px;padding:12px 8px;}
.topbar img.logo{width:44px;height:44px}
.brand{display:flex;flex-direction:column;}
.brand .name{font-weight:800;font-size:clamp(22px,3vw,30px);letter-spacing:.02em;}
.brand .tag{color:#225;opacity:.8;font-size:14px;margin-top:2px}
nav a{display:inline-block;margin-right:14px;padding:6px 10px;border-radius:10px;text-decoration:none;color:#222}
nav a:hover{background:#eef2ff}
nav a.active{background:#e6f0ff}
.hero{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;margin-top:16px}
.grid{display:grid;gap:14px}
@media(min-width:860px){.grid-2{grid-template-columns:1fr 1fr}}
.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:10px}
.badge{display:inline-block;font-size:12px;padding:2px 8px;background:#eef;border:1px solid var(--line);border-radius:999px;margin-right:8px}
.muted{color:var(--muted)}
h1,h2,h3{margin:.4em 0}
.table{width:100%;border-collapse:collapse}
.table th,.table td{border-top:1px solid var(--line);padding:10px;text-align:left}
.table th{color:#444;background:#fff;font-weight:700}
.btn{display:inline-block;background:#fff;border:1px solid var(--line);padding:8px 12px;border-radius:10px;text-decoration:none;color:var(--fg);}
.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}
footer{border-top:1px solid var(--line);background:#fff;margin-top:28px}
footer .wrap{max-width:1100px;margin:0 auto;padding:16px}
.small{font-size:13px}
.center{text-align:center}


/* --- news media & attachments --- */
.news-media{margin:8px 0 10px; display:grid; grid-template-columns:1fr; gap:8px;}
.news-media img{width:100%; height:auto; border-radius:10px; border:1px solid var(--line);}
@media(min-width:760px){ .news-media{grid-template-columns:repeat(2,1fr);} }
.file-list{margin-top:8px; display:flex; flex-wrap:wrap; gap:8px;}
.file-list a{display:inline-block; padding:6px 10px; border:1px solid var(--line); border-radius:10px; text-decoration:none;}
