.civic-index { max-width:1400px; margin:0 auto 3rem; padding:2rem clamp(1rem,4vw,2rem); color:#0a1128; font-family:Inter,Arial,sans-serif; scroll-margin-top:110px; }
.civic-index-label { font-size:.75rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; color:#1e3a8a; }
.civic-index h2 { font-size:clamp(1.7rem,4vw,2.8rem); font-weight:800; line-height:1.15; letter-spacing:-.035em; text-transform:none; margin:.8rem 0 1rem; }
.civic-index > p { max-width:850px; line-height:1.7; }
.civic-index-categories { margin:1.75rem 0; border-top:1px solid #cad2e0; }
.civic-index details { border-bottom:1px solid #cad2e0; scroll-margin-top:110px; }
.civic-index summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.15rem 0; cursor:pointer; font-size:1.08rem; font-weight:700; }
.civic-index summary::after { content:'+'; font-size:1.3rem; color:#1e3a8a; }
.civic-index details[open] summary::after { content:'−'; }
.civic-index summary span { margin-left:auto; color:#566780; font-size:.8rem; font-weight:500; white-space:nowrap; }
.civic-index ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem 2rem; padding:0 0 1.5rem; list-style:none; }
.civic-index li { border-left:3px solid #a8bde4; padding-left:1rem; }
.civic-index a { color:#174caa; text-decoration:underline; text-underline-offset:.2em; overflow-wrap:anywhere; }
.civic-index li a { font-size:1rem; font-weight:700; }
.civic-index li p { font-size:.92rem; color:#455570; line-height:1.7; margin:.5rem 0 0; }
.civic-index-note { font-size:.9rem; }
.civic-index :focus-visible { outline:3px solid #174caa; outline-offset:5px; }
@media(max-width:640px) { .civic-index ul { grid-template-columns:1fr; } .civic-index summary { font-size:1rem; } }
