/* Directory controls: one source for native Elementor/Geo and the static map. */
body :is(#ap-directory-archive.ap-directory-premium, #ap-annuaire-app, .ap-geo-directory, .ap-club-premium, .ap-df-control, .ap-mobile-filters) {
  --ap-control-radius: 4px;
  --ap-control-bg: #fff;
  --ap-control-ink: #04233a;
  --ap-control-line: #d0dce5;
  --ap-control-hover: #04233a;
  --ap-control-hover-ink: #fff;
  --ap-control-primary: #f4c430;
  --ap-control-primary-hover: #dfb223;
}
body[data-theme="dark"] :is(#ap-directory-archive.ap-directory-premium, #ap-annuaire-app, .ap-geo-directory, .ap-club-premium, .ap-df-control, .ap-mobile-filters) {
  --ap-control-bg: #222528;
  --ap-control-ink: #f5f5f5;
  --ap-control-line: #45494f;
  --ap-control-hover: #f4c430;
  --ap-control-hover-ink: #04233a;
  --ap-control-primary-hover: #ffe17e;
}
/* Keep circular counters, social marks and the native Foxiz switch independent. */
body :is(#ap-directory-archive.ap-directory-premium, #ap-annuaire-app, .ap-geo-directory, .ap-club-premium, .ap-df-control, .ap-mobile-filters) :is(
  .elementor-button, .ap-gd-primary, .ap-gd-submit, .ap-gd-search, .ap-gd-sort select,
  .ap-gd-chip > span, .ap-gd-view button, .ap-gd-type-arrow, .ap-gd-page,
  .ap-archive-select-trigger, .uc-search-filter-btn, .uc-search-filter__input,
  .ue_post_blocks_link a, .uc-button-clear, .ci-input, .ci-select,
  .ap-df-trigger, .ap-df-apply, .ap-df-close, .ap-cf-choice span,
  .ap-mobile-filters__apply, .ap-mobile-filters__close, .ap-filter-trigger,
  .ap-result-cta, .ap-popup__cta, .ap-badge, .ap-gd-tag, .ap-gd-facts > span
) { border-radius: var(--ap-control-radius); }
body :is(#ap-directory-archive.ap-directory-premium, #ap-annuaire-app, .ap-geo-directory, .ap-club-premium) :is(.ap-gd-card, .ap-card, .ap-row) {
  border-radius: var(--ap-control-radius);
  box-shadow: none;
}
body #ap-directory-archive .ap-geo-cards .ap-gd-card:is(:hover, :focus-within) { box-shadow: none; }
body .ap-directory-related.ap-geo-cards {
  --ap-gd-ink: var(--ap-control-ink);
  --ap-gd-line: var(--ap-control-line);
  --ap-gd-muted: #526572;
  --ap-gd-soft: #f5f7fa;
}
body[data-theme="dark"] .ap-directory-related.ap-geo-cards { --ap-gd-muted: #bfc1c5; --ap-gd-soft: #2b2e32; }
body .ap-directory-related.ap-geo-cards .ap-gd-card { background: var(--ap-control-bg); }
body .ap-directory-related.ap-geo-cards .ap-gd-body h3 { font-family: inherit; font-size: 18px; line-height: 1.3; font-weight: 700; }
body .ap-directory-related.ap-geo-cards .ap-gd-tag { background: var(--ap-control-bg); color: var(--ap-control-ink); }
/* Discovery, site and hours actions share the white/blue secondary design. */
body :is(#ap-directory-archive.ap-directory-premium, #ap-annuaire-app, .ap-geo-directory, .ap-club-premium) :is(
  .ap-gd-primary, .ap-card .ap-result-cta, .ap-popup__cta,
  .ap-club-action--secondary .elementor-button, .ue_post_blocks_link a, .uc-button-clear
) {
  min-height: 44px;
  border: 1px solid var(--ap-control-line);
  background: var(--ap-control-bg);
  color: var(--ap-control-ink);
  font-weight: 700;
  text-decoration: none;
  box-shadow: none;
  transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease;
}
body :is(#ap-directory-archive.ap-directory-premium, #ap-annuaire-app, .ap-geo-directory, .ap-club-premium) :is(
  .ap-gd-primary, .ap-card .ap-result-cta, .ap-popup__cta,
  .ap-club-action--secondary .elementor-button, .ue_post_blocks_link a, .uc-button-clear
):is(:hover, :focus-visible),
body #ap-annuaire-app .ap-card:is(:hover, :focus-visible) .ap-result-cta {
  background: var(--ap-control-hover);
  border-color: var(--ap-control-hover);
  color: var(--ap-control-hover-ink);
  text-decoration: none;
  transform: none;
}
/* Search, apply and ordinary booking remain primary. Branded booking is excluded. */
body :is(#ap-directory-archive.ap-directory-premium, #ap-annuaire-app, .ap-club-premium, .ap-df-control, .ap-mobile-filters) :is(
  .ap-gd-submit, .uc-search-filter-btn, .ap-df-apply, .ap-mobile-filters__apply,
  .ap-club-action--primary .elementor-button:not([data-ap-booking-provider]):not([href*="playtomic.io/" i]):not([href*="playtomic.com/" i])
) {
  background: var(--ap-control-primary);
  border-color: var(--ap-control-primary);
  color: #04233a;
  text-decoration: none;
  transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease;
}
body :is(#ap-directory-archive.ap-directory-premium, #ap-annuaire-app, .ap-club-premium, .ap-df-control, .ap-mobile-filters) :is(
  .ap-gd-submit, .uc-search-filter-btn, .ap-df-apply, .ap-mobile-filters__apply,
  .ap-club-action--primary .elementor-button:not([data-ap-booking-provider]):not([href*="playtomic.io/" i]):not([href*="playtomic.com/" i])
):is(:hover, :focus-visible) {
  background: var(--ap-control-primary-hover);
  border-color: var(--ap-control-primary-hover);
  color: #04233a;
}
body .ap-df-control .ap-df-dialog, body dialog.ap-mobile-filters { border-radius: var(--ap-control-radius); }
@media (max-width: 650px) { body .ap-df-control .ap-df-dialog { border-radius: 0; } }
@media (max-width: 1023px) { body dialog.ap-mobile-filters { border-radius: 0; } }
@media (prefers-reduced-motion: reduce) {
  body :is(#ap-directory-archive.ap-directory-premium, #ap-annuaire-app, .ap-geo-directory, .ap-club-premium, .ap-df-control, .ap-mobile-filters) :is(a, button, .ap-result-cta) { transition: none; }
}
