.ap-club-filters { --ap-cf-line: color-mix(in srgb, currentColor 22%, transparent); display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; width: 100%; min-width: 0; color: inherit; font: inherit; }
.ap-club-filters fieldset { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-width: 0; margin: 0; padding: 0; border: 0; }
.ap-club-filters legend { float: none; width: 100%; padding: 0; margin: 0 0 10px; font-size: 14px; font-weight: 700; color: inherit; }
.ap-club-filters .ap-cf-essential { display: inline-flex; margin: 0; }
.ap-club-filters .ap-cf-more { min-width: 0; }
.ap-club-filters .ap-cf-more[open] { flex-basis: 100%; }
.ap-club-filters .ap-cf-essential legend { position: absolute; clip-path: inset(50%); width: 1px; height: 1px; overflow: hidden; }
.ap-club-filters .ap-cf-choice { display: inline-flex; position: relative; margin: 0; cursor: pointer; font: inherit; }
.ap-club-filters .ap-cf-choice input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ap-club-filters .ap-cf-choice span { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 12px; box-sizing: border-box; border: 1px solid var(--ap-cf-line); border-radius: 8px; font-size: 14px; line-height: 1.3; transition: background-color .18s ease, border-color .18s ease; }
.ap-club-filters .ap-cf-choice input:checked + span { background: #f4c430; color: #04233a; border-color: #f4c430; }
.ap-club-filters .ap-cf-choice input:focus-visible + span, .ap-club-filters summary:focus-visible, .ap-club-filters button:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.ap-club-filters .ap-cf-choice img { display: block; width: 22px; height: 22px; object-fit: contain; border-radius: 4px; background: #fff; }
.ap-club-filters summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 44px; cursor: pointer; list-style: none; font-size: 14px; font-weight: 700; width: fit-content; }
.ap-club-filters summary::-webkit-details-marker { display: none; }
.ap-club-filters summary::after { content: '+'; font-size: 20px; font-weight: 400; }
.ap-club-filters details[open] > summary::after { content: '−'; }
.ap-club-filters .ap-cf-panel { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); align-items: start; gap: 24px; padding: 18px 0 4px; }
.ap-club-filters .ap-cf-panel fieldset { align-content: start; align-items: start; }
.ap-club-filters .ap-cf-budget { display: flex; flex-wrap: wrap; gap: 10px; width: 100%; }
.ap-club-filters .ap-cf-budget label { display: grid; gap: 8px; flex: 1 1 105px; font-size: 13px; margin: 0; }
.ap-club-filters .ap-cf-budget input, .ap-club-filters .ap-cf-budget select { width: 100%; min-width: 0; min-height: 44px; font: inherit; font-size: 16px; color: inherit; background: transparent; border: 1px solid var(--ap-cf-line); border-radius: 8px; padding: 8px 10px; box-sizing: border-box; box-shadow: none; }
.ap-club-filters .ap-cf-budget select option { background: Canvas; color: CanvasText; }
.ap-club-filters .ap-cf-budget :focus { box-shadow: none; }
.ap-club-filters .ap-cf-budget :focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.ap-club-filters p { margin: 8px 0 0; font-size: 12px; line-height: 1.6; opacity: .8; }
.ap-club-filters button { grid-column: 1 / -1; justify-self: start; min-height: 44px; padding: 8px 0; color: inherit; background: transparent; border: 0; text-decoration: underline; text-underline-offset: 4px; font: inherit; font-size: 13px; cursor: pointer; }
.ap-geo-directory [data-club-filter-scope] { grid-column: 1 / -1; flex-basis: 100%; }
@media (hover: hover) { .ap-club-filters .ap-cf-choice:hover span { border-color: currentColor; } .ap-club-filters summary:hover, .ap-club-filters button:hover { text-decoration: underline; text-underline-offset: 4px; } }
@media (prefers-reduced-motion: reduce) { .ap-club-filters .ap-cf-choice span { transition: none; } }
