:root{--main:#1f4e79;--accent:#e07a1f;--text:#222222;--bg:#ffffff;--font:'Noto Sans JP', 'Hiragino Sans', 'Yu Gothic', sans-serif}
*{box-sizing:border-box}
body{margin:0;font-family:var(--font);color:var(--text);background:var(--bg);line-height:1.8;font-size:16px}
a{color:var(--main)}
img{max-width:100%;height:auto}
.wrap{max-width:1040px;margin:0 auto;padding:0 20px}
header.site{border-bottom:1px solid #e5e5e5;background:var(--bg)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;flex-wrap:wrap}
header.site .brand{font-weight:700;font-size:1.15rem;color:var(--text);text-decoration:none}
nav.site a{margin-left:18px;text-decoration:none;color:var(--text);font-size:.95rem}
nav.site a.on{color:var(--main);font-weight:700}
.hero{background:var(--main);color:#fff;padding:72px 0}
.hero h1{margin:0 0 8px;font-size:2rem;line-height:1.4}
.hero p{margin:0;opacity:.9}
main{padding:40px 0 64px}
main h2{border-left:5px solid var(--accent);padding-left:12px;margin:40px 0 16px;font-size:1.4rem}
main h3{margin:28px 0 8px;font-size:1.15rem}
main table{border-collapse:collapse;width:100%}
main th,main td{border-bottom:1px solid #e5e5e5;padding:10px 8px;text-align:left;vertical-align:top}
main th{width:28%;color:#555;font-weight:600}
.news-list{list-style:none;padding:0}
.news-list li{border-bottom:1px solid #eee;padding:12px 0}
.news-list time{color:#777;margin-right:12px;font-size:.9rem}
.contact-form label{display:block;margin:14px 0 4px;font-weight:600}
.contact-form input,.contact-form textarea{width:100%;padding:10px;border:1px solid #ccc;border-radius:6px;font:inherit}
.contact-form button{margin-top:18px;background:var(--accent);color:#fff;border:0;border-radius:6px;padding:12px 28px;font:inherit;cursor:pointer}
.contact-form .hp{position:absolute;left:-9999px}
footer.site{background:#f5f5f5;padding:28px 0;font-size:.9rem;color:#555}
footer.site p{margin:2px 0}
@media (max-width:640px){.hero{padding:48px 0}.hero h1{font-size:1.5rem}nav.site a{margin:0 14px 0 0}}
