/* Annuaires publics : styles limités aux listes d’artistes et de galeries. */
.annuaire { width: min(100%, max(90%, 1200px)); max-width: 1600px; margin: 0 auto 3rem; color: var(--icac-anthracite); font-size: 1rem; font-weight: 300; font-variant-numeric: lining-nums tabular-nums; }
.annuaire .btn { margin: 0; text-transform: none; letter-spacing: 0; }
.annuaire a:focus-visible, .annuaire summary:focus-visible { outline: 3px solid var(--icac-rouge); outline-offset: 4px; }
.annuaire-entete { display: flex; justify-content: space-between; align-items: center; gap: 2rem; padding: .5rem 0 1.25rem; }
.annuaire-surtitre { color: var(--icac-anthracite); font-size: .75rem; font-family: var(--icac-police-surtitre); font-weight: 500; letter-spacing: .15em; text-transform: uppercase; margin-bottom: .65rem; }
.annuaire h1 { margin: 0 0 .5rem; font-size: clamp(2rem, 3.2vw, 3rem); letter-spacing: -.035em; text-transform: none; line-height: 1.15; }
.annuaire-intro { max-width: 68ch; color: var(--icac-anthracite); line-height: 1.6; margin: 0; }
.annuaire-filtres { padding: 1rem 1.25rem; margin-bottom: 1.25rem; background: #f3f4f8; border: 1px solid #e4e5eb; border-radius: .85rem; }
.annuaire-filtres-entete { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .25rem 1rem; margin-bottom: .5rem; }
.annuaire-filtres .annuaire-filtres-entete label { margin: 0; }
.annuaire-resultats-compte { margin: 0; color: var(--icac-anthracite); font-size: .85rem; }
.annuaire-resultats-compte strong { color: var(--icac-anthracite); margin-right: .2rem; }
.annuaire-champs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; align-items: end; }
.annuaire-galerie .annuaire-champs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.annuaire-champs > div { min-width: 0; }
.annuaire-filtres label { display: block; margin-bottom: .5rem; color: var(--icac-anthracite); font-size: .8rem; font-weight: 800; }
.annuaire .annuaire-filtres .form-control, .annuaire .annuaire-filtres .form-select { min-width: 0; width: 100%; height: 46px; padding: .65rem .8rem; border: 1px solid #d8dae4; border-radius: .5rem; background-color: #fff; font-size: .9rem; font-weight: 300; color: var(--icac-anthracite); }
.annuaire .annuaire-filtres .form-select { padding-right: 2.25rem; text-overflow: ellipsis; }
.annuaire-recherche { position: relative; }
.annuaire-recherche > .icone { position: absolute; left: .85rem; top: 50%; transform: translateY(-50%); color: #727581; pointer-events: none; }
.annuaire .annuaire-recherche .form-control { padding-left: 2.4rem; }
.annuaire .annuaire-filtres .form-control:focus, .annuaire .annuaire-filtres .form-select:focus { border-color: var(--icac-rouge); }
.annuaire-recherche-principale { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; align-items: end; }
.annuaire .annuaire-recherche-principale > .btn { min-height: 46px; }
.annuaire-options { display: flex; align-items: baseline; justify-content: space-between; gap: 1.25rem; margin-top: .8rem; }
.annuaire-affiner { flex: 1; min-width: 0; }
.annuaire-affiner summary { width: fit-content; font-size: .8rem; font-weight: 800; cursor: pointer; }
.annuaire-affiner summary span { color: var(--icac-anthracite); font-weight: 300; }
.annuaire-affiner .annuaire-champs { margin-top: 1rem; }
.annuaire-options > .annuaire-reset { flex-shrink: 0; }
.annuaire-reset { color: var(--icac-anthracite); font-size: .8rem; text-decoration: underline; text-underline-offset: 3px; }
.annuaire .choix-vue { flex-shrink: 0; padding: .25rem; border: 1px solid #e4e5eb; border-radius: .6rem; gap: .25rem; }
.annuaire .choix-vue .btn { white-space: nowrap; border: 0; border-radius: .35rem; background: transparent; color: var(--icac-anthracite); padding: .45rem .75rem; }
.annuaire .choix-vue .btn[aria-current] { background: var(--icac-anthracite); color: #fff; }
.annuaire .choix-vue .btn:hover:not([aria-current]) { background: var(--icac-fond); color: var(--icac-anthracite); }
.annuaire-table-wrap { border: 1px solid #e4e5eb; border-radius: .75rem; }
.annuaire table.annuaire-table { width: 100%; margin: 0; border-collapse: collapse; font-size: .9rem; --bs-table-bg: transparent; }
.annuaire .annuaire-table tr { border-bottom: 1px solid #e4e5eb; }
.annuaire .annuaire-table tbody tr:last-child { border-bottom: 0; }
.annuaire .annuaire-table th, .annuaire .annuaire-table td { border: 0; padding: 1rem .8rem; vertical-align: middle; box-shadow: none; }
.annuaire .annuaire-table thead { background: #f5f6f9; }
.annuaire .annuaire-table th { color: var(--icac-anthracite); font-size: .75rem; font-weight: 800; text-transform: none; }
.annuaire .annuaire-table th a { color: var(--icac-anthracite); }
.annuaire .annuaire-table th a.active { color: var(--icac-rouge-fonce); }
.annuaire .annuaire-table tbody tr:hover { background: #fafafb; }
.annuaire .annuaire-table a.annuaire-nom { display: inline-block; color: var(--icac-anthracite); font-size: 1rem; font-weight: 800; overflow-wrap: anywhere; }
.annuaire .annuaire-table a.annuaire-nom:hover { color: var(--icac-rouge-fonce); }
.annuaire-certification { width: 40px; }
.annuaire .img-certification { width: 22px; max-width: 22px; margin: 0; }
.annuaire-localisation { display: block; font-size: .8rem; color: var(--icac-anthracite); margin-top: .2rem; }
.annuaire-mobile-indice { display: none; }
.annuaire-ligne-actions { display: flex; align-items: center; justify-content: flex-end; gap: 1rem; }
.annuaire .annuaire-table .annuaire-cotation { font-size: .8rem; color: var(--icac-rouge-fonce); font-weight: 800; }
.annuaire-actions-cell { text-align: right; white-space: nowrap; }
.annuaire .annuaire-actions-cell .btn { white-space: nowrap; padding: .45rem .7rem; font-size: .75rem; font-weight: 800; }
.annuaire-compteur { display: inline-block; padding: .25rem .6rem; min-width: 2rem; border-radius: 2rem; background: var(--icac-fond); font-weight: 800; }
.annuaire .tri-grille { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; color: var(--icac-anthracite); font-size: .8rem; }
.annuaire-grille { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; margin-bottom: 1.5rem; }
.annuaire-grille-item { min-width: 0; }
.annuaire-vide { grid-column: 1 / -1; padding: 3rem 1.5rem; text-align: center; }
.annuaire-vide h2 { font-size: 1.4rem; text-transform: none; }
.annuaire-vide p { color: var(--icac-anthracite); margin: .75rem 0 1.5rem; }
.annuaire-pagination { display: flex; justify-content: center; margin: 1.5rem 0; }
.annuaire .pagination { flex-wrap: wrap; justify-content: center; gap: .35rem; margin: 0; }
.annuaire .pagination .page-link { border: 1px solid #e4e5eb; border-radius: .45rem; min-width: 2.5rem; text-align: center; font-size: .85rem; font-weight: 800; }
.annuaire-a-propos { margin-top: 2.5rem; border-top: 1px solid #e4e5eb; }
.annuaire-a-propos summary { padding: 1.25rem 0; font-weight: 800; cursor: pointer; }
.annuaire-a-propos > div { max-width: 85ch; color: var(--icac-anthracite); line-height: 1.8; padding: .5rem 0 1rem; }
.annuaire-a-propos h2 { color: var(--icac-anthracite); text-transform: none; font-size: 1.3rem; }
.annuaire-a-propos p { margin-bottom: 1rem; }
@media (max-width: 1199px) {
    .annuaire { width: 100%; padding-inline: 1rem; }
    .annuaire-entete { align-items: flex-start; }
    .annuaire-champs { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .annuaire-ligne-actions { flex-direction: column; gap: .5rem; }
    .annuaire .annuaire-table th, .annuaire .annuaire-table td { padding: .85rem .6rem; }
    .annuaire-grille { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
}
@media (max-width: 767px) {
    .annuaire { padding-inline: .25rem; }
    .annuaire-entete { flex-direction: column; gap: .75rem; padding-top: 0; }
    .annuaire h1 { font-size: 2.25rem; }
    .annuaire-intro { font-size: .95rem; }
    .annuaire-filtres { padding: 1rem; }
    .annuaire-recherche-principale { grid-template-columns: minmax(0, 1fr); gap: .65rem; }
    .annuaire-champs, .annuaire-galerie .annuaire-champs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem .75rem; }
    .annuaire-options { position: relative; }
    .annuaire-options > .annuaire-reset { position: absolute; top: 0; right: 0; }
    .annuaire-affiner summary { padding-right: 6rem; }
    .annuaire-galerie .annuaire-champs > div:last-child { grid-column: 1 / -1; }
    .annuaire .annuaire-filtres .form-control, .annuaire .annuaire-filtres .form-select { font-size: 1rem; }
    .annuaire-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575px) {
    .annuaire-grille { grid-template-columns: 1fr; }
    .annuaire .annuaire-table th, .annuaire .annuaire-table td { padding: .8rem .5rem; }
    .annuaire .annuaire-table a.annuaire-nom { font-size: .95rem; }
    .annuaire-mobile-indice { display: block; font-size: .75rem; color: var(--icac-anthracite); margin-top: .2rem; }
    .annuaire-actions-cell { width: 70px; }
    .annuaire-localisation { font-size: .75rem; }
    .annuaire .choix-vue .btn { padding: .4rem .6rem; }
}
@media (max-width: 380px) {
    .annuaire-grille { grid-template-columns: 1fr; }
    .annuaire-filtres { padding: 1rem; }
}
