:root{--red:#c8102e;--red-dark:#9c0b22;--ink:#1c1c1e;--ink-2:#4a4a4f;--ink-3:#77777d;--line:#e4e1dc;--paper:#faf8f4;--card:#ffffff;--tint:#fbeef0;--focus:#1b5fb4;--max:1080px;}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.55 "Source Sans 3","Segoe UI",system-ui,-apple-system,sans-serif}
a{color:var(--red-dark);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--red)}
a:focus-visible,button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
h1,h2,h3{font-family:Fraunces,Georgia,"Times New Roman",serif;line-height:1.15;margin:0 0 .5rem;font-weight:600;letter-spacing:-.01em}
h1{font-size:clamp(2rem,4.5vw,2.9rem)}h2{font-size:clamp(1.45rem,2.6vw,1.9rem);margin-top:2.2rem}h3{font-size:1.15rem;margin-top:1.4rem}
p{margin:.55rem 0}
.wrap{max-width:var(--max);margin:0 auto;padding:0 16px}
.skip{position:absolute;left:-999px;top:8px;background:#fff;padding:.5rem .8rem;border-radius:6px}.skip:focus{left:8px;z-index:20}
header.site{background:#fff;border-bottom:3px solid var(--red)}
.topbar{display:flex;align-items:center;gap:14px;padding:12px 0}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}
.brand img{height:52px;width:auto}
.brand b{font-family:Fraunces,Georgia,serif;font-size:1.25rem;font-weight:600;line-height:1.1;display:block}
.brand small{display:block;color:var(--ink-3);font-size:.85rem}
.portal{margin-left:auto;background:var(--red);color:#fff;text-decoration:none;padding:.55rem .95rem;border-radius:8px;font-weight:600;white-space:nowrap}
.portal:hover{background:var(--red-dark);color:#fff}
nav.main{border-top:1px solid var(--line)}
nav.main ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 4px}
nav.main a{display:block;padding:.7rem .75rem;text-decoration:none;color:var(--ink-2);font-weight:600;border-bottom:3px solid transparent}
nav.main a[aria-current]{color:var(--red-dark);border-bottom-color:var(--red)}
nav.main a:hover{color:var(--red)}
main{padding:2rem 0 3rem}
.hero{display:grid;gap:1.4rem;grid-template-columns:1.4fr 1fr;align-items:center;margin-bottom:1rem}
.hero .lede{font-size:1.2rem;color:var(--ink-2);max-width:56ch}
.cards{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));margin:1.2rem 0}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1.05rem 1.15rem}
.card h3{margin-top:0}
.card.link{display:block;text-decoration:none;color:inherit}.card.link:hover{border-color:var(--red)}
.notice{background:var(--tint);border-left:4px solid var(--red);border-radius:8px;padding:.9rem 1.1rem;margin:1.2rem 0}
.notice strong{color:var(--red-dark)}
.muted{color:var(--ink-3)}
.tel{white-space:nowrap}
dl.contact{display:grid;grid-template-columns:max-content 1fr;gap:.35rem 1rem;margin:.5rem 0}
dl.contact dt{font-weight:600;color:var(--ink-2)}dl.contact dd{margin:0}
ul.plain{list-style:none;padding:0;margin:.5rem 0}ul.plain li{padding:.3rem 0;border-bottom:1px solid var(--line)}
ul.plain li:last-child{border-bottom:0}
.doc{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--ink)}
.doc:hover{color:var(--red)}
.doc .tag{font-size:.72rem;font-weight:700;color:#fff;background:var(--ink-2);padding:.1rem .4rem;border-radius:4px;letter-spacing:.04em}
table{border-collapse:collapse;width:100%;max-width:560px;margin:.6rem 0 1rem;background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden}
th,td{text-align:left;padding:.55rem .8rem;border-bottom:1px solid var(--line)}th{background:#f3f0ea;font-weight:600}
tr:last-child td{border-bottom:0}
.two{display:grid;gap:1.5rem;grid-template-columns:1fr 1fr}
.people{columns:2;column-gap:2rem}.people li{break-inside:avoid}
footer.site{border-top:1px solid var(--line);background:#fff;color:var(--ink-3);font-size:.92rem;padding:1.4rem 0 2rem}
footer.site .wrap{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:space-between}
.article h2{margin-top:1.6rem}.article h3{margin-top:1.1rem}
.byline{color:var(--ink-3);margin-bottom:1rem}
@media (max-width:720px){.hero,.two{grid-template-columns:1fr}.people{columns:1}.brand small{display:none}.portal{padding:.5rem .7rem;font-size:.9rem}}
