/* Annuaire des clubs : recherche, carte de France et liste */
.club-dir { display: grid; gap: 14px; }
.club-dir__head .page-title { text-wrap: balance; }
.club-dir__search { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.club-dir__field { flex: 1 1 280px; display: flex; align-items: center; gap: 8px; padding-left: 12px; border: 1px solid var(--line-2); border-radius: var(--r-sm); background: var(--card); }
.club-dir__field .icon { width: 18px; height: 18px; color: var(--muted); flex: none; }
.club-dir__field .input { border: 0; padding-left: 0; background: transparent; min-width: 0; }
.club-dir__field:focus-within { border-color: var(--brand); box-shadow: var(--ring); }
.club-dir__search select.input { flex: 0 1 220px; }
.club-dir__body { display: grid; gap: 14px; grid-template-columns: minmax(0, 1fr) minmax(0, 420px); align-items: start; }
.club-dir__map { position: sticky; top: 84px; height: min(72vh, 680px); padding: 0; overflow: hidden; z-index: 0; }
.club-dir__list { display: grid; gap: 10px; min-width: 0; }
.club-dir__count { margin: 0; font-weight: 600; }
.club-dir__add { margin-top: 6px; }
.club-dir__legal { margin: 0; }
.club-results { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.club-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 10px; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--r); background: var(--card); }
.club-card__main { display: grid; gap: 3px; min-width: 0; }
.club-card__main strong { overflow-wrap: anywhere; }
.club-card__meta { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.club-card__locate { align-self: start; }
.club-card__actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; }
.club-pop { display: grid; gap: 3px; min-width: 200px; font-family: var(--font); }
.club-pop strong { font-size: .95rem; }
.club-pop .club-card__actions { margin-top: 6px; }
.club-pop .btn { color: inherit; }
.club-pop .btn--primary { color: #fff; }
.club-cluster { display: grid; place-items: center; border-radius: 50%; background: color-mix(in srgb, var(--brand) 88%, transparent); color: #fff; font: 800 13px/1 var(--font); box-shadow: 0 0 0 5px color-mix(in srgb, var(--brand) 25%, transparent); }
.club-cluster span { pointer-events: none; }
.club-pin { display: inline-block; width: 11px; height: 11px; border-radius: 50%; background: #ff7a3d; border: 2px solid #fff; box-shadow: 0 0 0 1px var(--line-2); vertical-align: middle; }
.club-pin--exact { background: var(--brand); }
@media (max-width: 900px) {
  .club-dir__body { grid-template-columns: minmax(0, 1fr); }
  .club-dir__map { position: relative; top: 0; height: 58vh; min-height: 320px; }
  .club-dir__search .btn { flex: 1 1 auto; justify-content: center; }
  .club-dir__search select.input { flex: 1 1 100%; }
}

/* Plusieurs clubs au même point (position de la commune) : pastille numérotée et liste */
.club-cluster--spot { background: #ff7a3d; box-shadow: 0 0 0 4px rgba(255, 122, 61, .3); font-size: 12px; }
.club-pop--list ul { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 4px; max-width: 260px; }
.club-pop--list li { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 8px; align-items: center; padding: 4px 0; border-top: 1px solid #eef0f6; }
.club-pop--list li a:first-child { font-weight: 700; color: #16163a; text-decoration: none; overflow-wrap: anywhere; }
.club-pop--list li small { grid-column: 1; color: #6b6f8f; }
.club-pop__trip { grid-column: 2; grid-row: 1 / 3; text-decoration: none; font-size: 16px; }
/* Bulle de la carte : la liste défile dans la bulle, sans entraîner la carte */
.club-pop--list ul { max-height: 230px; overflow-y: auto; overscroll-behavior: contain; touch-action: pan-y; -webkit-overflow-scrolling: touch; }
.leaflet-popup-content { touch-action: pan-y; }