/* D14.9 R1D — Button text contrast fix */
:root {
  --semantic-on-primary-fixed: var(--theme-on-primary, var(--site-action-text, #ffffff));
}

/* Primary/action buttons: force readable text/icons on every descendant. */
.doctor-actions a.primary,
.doctor-actions a.primary *,
.doctor-main-book,
.doctor-main-book *,
.doctor-review-form button,
.doctor-review-form button *,
.doctor-filters button,
.doctor-filters button *,
.schedule-period-navigation a,
.schedule-period-navigation a *,
.doctor-schedule-filter button,
.doctor-schedule-filter button *,
.home-upcoming-book,
.home-upcoming-book *,
.news-filter-form button,
.news-filter-form button *,
.news-search-submit,
.news-search-submit *,
.news-primary-link,
.news-primary-link *,
.booking-submit-button,
.booking-submit-button *,
.booking-primary-link,
.booking-primary-link *,
.booking-status-submit,
.booking-status-submit *,
.booking-status-primary-link,
.booking-status-primary-link *,
.patient-service-primary,
.patient-service-primary *,
.patient-turn-form button,
.patient-turn-form button *,
.visual-button-primary,
.visual-button-primary *,
.dynamic-lead-widget button[type="submit"],
.dynamic-lead-widget button[type="submit"] *,
.btn-primary,
.btn-primary *,
button.btn-primary,
button.btn-primary * {
  color: var(--semantic-on-primary-fixed) !important;
  -webkit-text-fill-color: var(--semantic-on-primary-fixed) !important;
  text-shadow: none !important;
}

.doctor-actions a.primary i,
.doctor-main-book i,
.doctor-review-form button i,
.doctor-filters button i,
.schedule-period-navigation a i,
.doctor-schedule-filter button i,
.home-upcoming-book i,
.news-filter-form button i,
.news-search-submit i,
.news-primary-link i,
.booking-submit-button i,
.booking-primary-link i,
.booking-status-submit i,
.booking-status-primary-link i,
.patient-service-primary i,
.patient-turn-form button i,
.visual-button-primary i,
.dynamic-lead-widget button[type="submit"] i,
.btn-primary i {
  color: currentColor !important;
  fill: currentColor !important;
  stroke: currentColor !important;
}

/* Secondary / outline buttons keep theme-primary text on surface. */
.doctor-actions a:not(.primary),
.doctor-actions a:not(.primary) *,
.booking-secondary-link,
.booking-secondary-link *,
.booking-status-secondary-link,
.booking-status-secondary-link *,
.booking-status-home-link,
.booking-status-home-link *,
.patient-service-secondary,
.patient-service-secondary *,
.visual-button-secondary,
.visual-button-secondary *,
.visual-button-outline,
.visual-button-outline *,
.btn-outline-primary,
.btn-outline-primary * {
  color: var(--semantic-primary) !important;
  -webkit-text-fill-color: var(--semantic-primary) !important;
}

/* Preserve danger/emergency semantics. */
.btn-danger,
.btn-danger *,
.emergency,
.emergency *,
.patient-service-hero-emergency .btn,
.patient-service-hero-emergency .btn * {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}
