.commune-directory [hidden] { display: none !important; }
.commune-directory__controls { max-width: 42rem; margin: 2rem 0 1.25rem; }
.commune-directory__controls label { display: block; margin-bottom: .6rem; font-weight: 700; }
.commune-directory__search { display: flex; gap: .6rem; }
.commune-directory__search input { flex: 1; min-width: 0; width: 100%; padding: .9rem; border: 1px solid #777d79; border-radius: .25rem; background: #fff; color: #202427; font: inherit; }
.commune-directory__search button { padding: .8rem 1rem; border: 1px solid #202427; border-radius: .25rem; background: #202427; color: #fff; font: inherit; cursor: pointer; }
.commune-directory :is(input,button,a):focus-visible { outline: 3px solid #346454; outline-offset: 4px; }
.commune-directory__controls p, .commune-directory__sources { font-size: .88rem; line-height: 1.6; }
.commune-directory__count { font-weight: 700; }
.commune-directory__list { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .65rem 1rem; list-style: none; margin: 1.25rem 0 2rem; padding: 0; }
.commune-directory__list li { min-width: 0; padding: .9rem 1rem; border: 1px solid #d3d9d4; border-radius: .25rem; background: #fff; overflow-wrap: anywhere; }
.commune-directory__list a { text-underline-offset: .2em; }
.commune-directory__sources a { text-decoration: underline; text-underline-offset: .15em; }
@media (max-width: 900px) { .commune-directory__list { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 580px) { .commune-directory__list { grid-template-columns: 1fr; } .commune-directory__search { flex-wrap: wrap; } }
