.municipal-directory { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:24px; }
.municipal-directory-card { display:flex; flex-direction:column; gap:20px; padding:28px; background:#fff; border:1px solid var(--line); border-radius:14px; transition:box-shadow .2s,border-color .2s; }
.municipal-directory-card:hover { border-color:#83a394; box-shadow:0 8px 24px #143f3212; }
.municipal-directory-card h2 { font-family:inherit; font-size:21px; line-height:1.4; margin:0; }
/* Directory pages do not load home.css; keep icon layout shared across designs. */
.municipal-directory-card > .home-card-icon { display:grid; place-items:center; width:48px; height:48px; flex-shrink:0; align-self:start; box-sizing:border-box; }
.municipal-directory-card > .home-card-icon > svg { display:block; margin:0; padding:0; }
.municipal-directory-card svg { width:26px; height:26px; }
.municipal-directory-card .text-link { margin-top:auto; }
.municipal-content { max-width:1040px; }
.history-section-heading { margin:clamp(28px,4vw,48px) 0 20px; padding-bottom:16px; border-bottom:1px solid var(--line); }
.history-section-heading h2 { margin:0; font-family:inherit; font-size:clamp(22px,2.5vw,30px); line-height:1.4; overflow-wrap:anywhere; }
.municipal-contact-heading { display:flex; align-items:center; gap:16px; }
.municipal-contact-heading > span:last-child { min-width:0; }
.municipal-contact-icon { display:inline-flex; align-items:center; justify-content:center; flex:0 0 48px; width:48px; height:48px; border-radius:12px; background:var(--green-3, #edf4ef); color:var(--green); border:1px solid var(--line); }
.municipal-contact-icon .home-icon { display:block; width:24px; height:24px; flex-shrink:0; }
:root[data-design="civic"] .municipal-contact-icon { background:var(--civic-pale); color:var(--civic-blue); border-color:var(--civic-border); border-radius:4px; box-shadow:inset 0 -3px 0 var(--civic-gold); }
@media(max-width:540px) { .municipal-contact-heading { gap:12px; } .municipal-contact-icon { flex-basis:40px; width:40px; height:40px; } }
.municipal-block { min-width:0; background:#fff; padding:clamp(18px,3vw,32px); margin-bottom:20px; border:1px solid var(--line); border-radius:14px; overflow-wrap:anywhere; }
.municipal-block h2 { font-family:inherit; font-size:clamp(20px,2vw,27px); line-height:1.5; margin:0 0 16px; }
.municipal-block p { color:#344c40; line-height:1.85; white-space:pre-line; margin:0 0 16px; }
.municipal-block p:last-child { margin-bottom:0; }
.municipal-image-link { display:block; margin-bottom:22px; background:#f3f6f2; border-radius:10px; overflow:hidden; }
.municipal-image-link img { display:block; width:100%; height:auto; max-height:800px; object-fit:contain; }
.municipal-resource-list { list-style:none; padding:0; margin:0; }
.municipal-resource-list li+li { border-top:1px solid var(--line); }
.municipal-resource-list a { display:flex; gap:14px; align-items:flex-start; padding:18px 4px; color:var(--green); line-height:1.65; text-decoration:underline; text-underline-offset:4px; }
.municipal-details summary { cursor:pointer; padding:14px 0; color:var(--green); font-weight:600; line-height:1.6; }
.municipal-details .municipal-block { background:#f7f9f5; margin:12px 0; }
.municipal-details .municipal-block .municipal-block { background:#fff; }
.archive-search { display:flex; flex-wrap:wrap; gap:12px; align-items:end; margin-bottom:24px; }
.archive-search label { flex:1; min-width:min(100%,250px); font-weight:600; }
.archive-search input { display:block; width:100%; padding:13px 16px; border:1px solid #a8b8ad; border-radius:8px; margin-top:8px; font:inherit; }
.archive-pagination { display:flex; flex-wrap:wrap; gap:16px; align-items:center; justify-content:space-between; margin-top:32px; }
.archive-pagination a { padding:12px 18px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--green); }
.municipal-directory-card:focus-visible,.municipal-block a:focus-visible,.municipal-details summary:focus-visible,.archive-search input:focus-visible,.archive-pagination a:focus-visible { outline:3px solid #327956; outline-offset:4px; }
@media(prefers-reduced-motion:reduce) { .municipal-directory-card { transition:none; } }
