/* Site-wide accessibility contrast guardrails.
   Keep button-like controls readable regardless of theme/custom branding. */

:root {
  --cm-a11y-primary-bg: #111111;
  --cm-a11y-primary-bg-hover: #2b2b2b;
  --cm-a11y-primary-fg: #ffffff;
  --cm-a11y-secondary-bg: #ffffff;
  --cm-a11y-secondary-bg-hover: #f3f4f6;
  --cm-a11y-secondary-fg: #111111;
  --cm-a11y-secondary-border: #8b929d;
  --cm-a11y-danger-bg: #991b1b;
  --cm-a11y-danger-bg-hover: #7f1d1d;
  --cm-a11y-success-bg: #166534;
  --cm-a11y-success-bg-hover: #14532d;
  --cm-a11y-focus: #2563eb;
}

:root[data-theme="dark"],
:root[data-partner-theme="dark"],
.ep-app[data-ui-theme="dark"] {
  --cm-a11y-secondary-bg: #111827;
  --cm-a11y-secondary-bg-hover: #1f2937;
  --cm-a11y-secondary-fg: #ffffff;
  --cm-a11y-secondary-border: #6b7280;
  --cm-a11y-focus: #93c5fd;
}

:where(
  .ep-page,
  .cm-auth-page,
  .ep-app,
  .cm-embed-shell,
  .onboarding-page,
  body
) :where(
  .ep-btn,
  .ep-btn-primary,
  .btn,
  .auth-btn,
  .onb-btn-primary,
  .onb-btn-ghost,
  .vnd-btn,
  .aff-btn,
  .rd-btn,
  .cm-topbar__cta,
  .cm-notice-rail__cta,
  .cm-notice-rail__dismiss,
  .cm-user-panel__link,
  .cm-user-panel__button,
  .cm-user-panel__switch button,
  .cm-user-panel__switch-current,
  .store-product-card__button,
  .retail-card__button,
  .retail-advert__cta,
  .product-retail-quickbuy,
  .product-mobile-purchase__btn,
  .qc-primary-btn,
  .qc-secondary-btn,
  .lp-btn,
  .lp-legal-btn,
  .cart-summary-actions .ep-btn,
  .checkout-primary-btn,
  .tc-payment-main .ep-btn,
  .tc-payment-main .ep-btn-primary,
  [role="button"][class],
  button[class*="btn"],
  a[class*="btn"],
  button[class*="button"],
  a[class*="button"]
) {
  text-decoration: none !important;
  text-shadow: none !important;
}

:where(
  .ep-page,
  .cm-auth-page,
  .ep-app,
  .cm-embed-shell,
  .onboarding-page,
  body
) :where(
  .ep-btn--primary,
  .ep-btn-primary,
  .btn.primary,
  button[class*="primary"],
  a[class*="primary"][class*="btn"],
  a[class*="primary"][class*="button"],
  input[type="submit"][class*="primary"],
  .auth-btn--primary,
  .onb-btn-primary,
  .vnd-btn--primary,
  .aff-btn--primary,
  .rd-btn--primary,
  .cm-topbar__cta--primary,
  .cm-notice-rail__cta,
  .store-product-card__button--primary,
  .store-product-card__button--buy-now,
  .retail-card__button--primary,
  .retail-card__button--buy-now,
  .product-retail-quickbuy,
  .product-mobile-purchase__btn--buy,
  .qc-primary-btn,
  .lp-btn-primary,
  .lp-legal-btn--primary,
  .checkout-primary-btn,
  .cart-summary-actions .ep-btn--primary,
  .tc-payment-main .ep-btn--primary,
  .tc-payment-main .ep-btn-primary
) {
  background: var(--cm-a11y-primary-bg) !important;
  border-color: var(--cm-a11y-primary-bg) !important;
  color: var(--cm-a11y-primary-fg) !important;
  -webkit-text-fill-color: var(--cm-a11y-primary-fg) !important;
}

:where(
  .ep-page,
  .cm-auth-page,
  .ep-app,
  .cm-embed-shell,
  .onboarding-page,
  body
) :where(
  .ep-btn--primary,
  .ep-btn-primary,
  .btn.primary,
  button[class*="primary"],
  a[class*="primary"][class*="btn"],
  a[class*="primary"][class*="button"],
  input[type="submit"][class*="primary"],
  .auth-btn--primary,
  .onb-btn-primary,
  .vnd-btn--primary,
  .aff-btn--primary,
  .rd-btn--primary,
  .cm-topbar__cta--primary,
  .cm-notice-rail__cta,
  .store-product-card__button--primary,
  .store-product-card__button--buy-now,
  .retail-card__button--primary,
  .retail-card__button--buy-now,
  .product-retail-quickbuy,
  .product-mobile-purchase__btn--buy,
  .qc-primary-btn,
  .lp-btn-primary,
  .lp-legal-btn--primary,
  .checkout-primary-btn,
  .cart-summary-actions .ep-btn--primary,
  .tc-payment-main .ep-btn--primary,
  .tc-payment-main .ep-btn-primary
):where(:hover, :focus) {
  background: var(--cm-a11y-primary-bg-hover) !important;
  border-color: var(--cm-a11y-primary-bg-hover) !important;
  color: var(--cm-a11y-primary-fg) !important;
  -webkit-text-fill-color: var(--cm-a11y-primary-fg) !important;
}

:where(
  .ep-page,
  .cm-auth-page,
  .ep-app,
  .cm-embed-shell,
  .onboarding-page,
  body
) :where(
  .ep-btn--secondary,
  .ep-btn--outline,
  .ep-btn--ghost,
  .btn.secondary,
  button[class*="secondary"],
  a[class*="secondary"][class*="btn"],
  a[class*="secondary"][class*="button"],
  input[type="submit"][class*="secondary"],
  button[class*="outline"],
  a[class*="outline"][class*="btn"],
  a[class*="outline"][class*="button"],
  button[class*="ghost"],
  a[class*="ghost"][class*="btn"],
  a[class*="ghost"][class*="button"],
  .auth-btn--ghost,
  .onb-btn-ghost,
  .vnd-btn--secondary,
  .aff-btn--secondary,
  .rd-btn--secondary,
  .rd-btn--ghost,
  .cm-topbar__cta,
  .cm-sidebar-toggle,
  .cm-icon-button,
  .cm-user-toggle,
  .cm-user-panel__link,
  .cm-user-panel__button,
  .cm-user-panel__switch button,
  .cm-user-panel__switch-current,
  .store-product-card__button--secondary:not(.store-product-card__button--buy-now),
  .retail-card__button--secondary:not(.retail-card__button--buy-now),
  .product-mobile-purchase__btn--cart,
  .qc-secondary-btn,
  .lp-btn-ghost,
  .lp-btn-outline,
  .lp-legal-btn:not(.lp-legal-btn--primary),
  .cart-summary-actions .ep-btn--secondary,
  .cart-summary-actions .ep-btn--ghost,
  .tc-payment-main .ep-btn--secondary,
  .tc-payment-main .ep-btn--ghost
) {
  background: var(--cm-a11y-secondary-bg) !important;
  border-color: var(--cm-a11y-secondary-border) !important;
  color: var(--cm-a11y-secondary-fg) !important;
  -webkit-text-fill-color: var(--cm-a11y-secondary-fg) !important;
}

:where(
  .ep-page,
  .cm-auth-page,
  .ep-app,
  .cm-embed-shell,
  .onboarding-page,
  body
) :where(
  button[class*="bg-blue-"],
  a[class*="bg-blue-"],
  input[type="submit"][class*="bg-blue-"],
  button[class*="bg-indigo-"],
  a[class*="bg-indigo-"],
  input[type="submit"][class*="bg-indigo-"],
  button[class*="bg-sky-"],
  a[class*="bg-sky-"],
  input[type="submit"][class*="bg-sky-"],
  button[class*="bg-red-"],
  a[class*="bg-red-"],
  input[type="submit"][class*="bg-red-"],
  button[class*="bg-emerald-"],
  a[class*="bg-emerald-"],
  input[type="submit"][class*="bg-emerald-"],
  button[class*="bg-green-"],
  a[class*="bg-green-"],
  input[type="submit"][class*="bg-green-"],
  button[class*="bg-slate-9"],
  a[class*="bg-slate-9"],
  input[type="submit"][class*="bg-slate-9"],
  button[class*="bg-gray-9"],
  a[class*="bg-gray-9"],
  input[type="submit"][class*="bg-gray-9"],
  button[class*="bg-black"],
  a[class*="bg-black"],
  input[type="submit"][class*="bg-black"]
) {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

:where(
  .ep-page,
  .cm-auth-page,
  .ep-app,
  .cm-embed-shell,
  .onboarding-page,
  body
) :where(
  button[class*="bg-white"],
  a[class*="bg-white"],
  input[type="submit"][class*="bg-white"],
  button[class*="bg-gray-50"],
  a[class*="bg-gray-50"],
  input[type="submit"][class*="bg-gray-50"],
  button[class*="bg-slate-50"],
  a[class*="bg-slate-50"],
  input[type="submit"][class*="bg-slate-50"]
) {
  color: #111111 !important;
  -webkit-text-fill-color: #111111 !important;
}

:where(
  .ep-page,
  .cm-auth-page,
  .ep-app,
  .cm-embed-shell,
  .onboarding-page,
  body
) :where(
  .ep-btn--secondary,
  .ep-btn--outline,
  .ep-btn--ghost,
  .btn.secondary,
  button[class*="secondary"],
  a[class*="secondary"][class*="btn"],
  a[class*="secondary"][class*="button"],
  input[type="submit"][class*="secondary"],
  button[class*="outline"],
  a[class*="outline"][class*="btn"],
  a[class*="outline"][class*="button"],
  button[class*="ghost"],
  a[class*="ghost"][class*="btn"],
  a[class*="ghost"][class*="button"],
  .auth-btn--ghost,
  .onb-btn-ghost,
  .vnd-btn--secondary,
  .aff-btn--secondary,
  .rd-btn--secondary,
  .rd-btn--ghost,
  .cm-topbar__cta,
  .cm-sidebar-toggle,
  .cm-icon-button,
  .cm-user-toggle,
  .cm-user-panel__link,
  .cm-user-panel__button,
  .cm-user-panel__switch button,
  .cm-user-panel__switch-current,
  .store-product-card__button--secondary:not(.store-product-card__button--buy-now),
  .retail-card__button--secondary:not(.retail-card__button--buy-now),
  .product-mobile-purchase__btn--cart,
  .qc-secondary-btn,
  .lp-btn-ghost,
  .lp-btn-outline,
  .lp-legal-btn:not(.lp-legal-btn--primary),
  .cart-summary-actions .ep-btn--secondary,
  .cart-summary-actions .ep-btn--ghost,
  .tc-payment-main .ep-btn--secondary,
  .tc-payment-main .ep-btn--ghost
):where(:hover, :focus) {
  background: var(--cm-a11y-secondary-bg-hover) !important;
  color: var(--cm-a11y-secondary-fg) !important;
  -webkit-text-fill-color: var(--cm-a11y-secondary-fg) !important;
}

:where(.ep-page, .cm-auth-page, .ep-app, .cm-embed-shell, .onboarding-page, body)
:where(.ep-btn--danger, .btn.danger, button[class*="danger"], a[class*="danger"][class*="btn"], a[class*="danger"][class*="button"], input[type="submit"][class*="danger"], .cm-user-panel__button--danger, .vnd-btn--danger, .aff-btn--danger) {
  background: var(--cm-a11y-danger-bg) !important;
  border-color: var(--cm-a11y-danger-bg) !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

:where(.ep-page, .cm-auth-page, .ep-app, .cm-embed-shell, .onboarding-page, body)
:where(.ep-btn--danger, .btn.danger, button[class*="danger"], a[class*="danger"][class*="btn"], a[class*="danger"][class*="button"], input[type="submit"][class*="danger"], .cm-user-panel__button--danger, .vnd-btn--danger, .aff-btn--danger):where(:hover, :focus) {
  background: var(--cm-a11y-danger-bg-hover) !important;
  border-color: var(--cm-a11y-danger-bg-hover) !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

:where(.ep-page, .cm-auth-page, .ep-app, .cm-embed-shell, .onboarding-page, body)
:where(.ep-btn--success, .btn.success, button[class*="success"], a[class*="success"][class*="btn"], a[class*="success"][class*="button"], input[type="submit"][class*="success"], .vnd-btn--success, .aff-btn--success) {
  background: var(--cm-a11y-success-bg) !important;
  border-color: var(--cm-a11y-success-bg) !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

:where(.ep-page, .cm-auth-page, .ep-app, .cm-embed-shell, .onboarding-page, body)
:where(.ep-btn--success, .btn.success, button[class*="success"], a[class*="success"][class*="btn"], a[class*="success"][class*="button"], input[type="submit"][class*="success"], .vnd-btn--success, .aff-btn--success):where(:hover, :focus) {
  background: var(--cm-a11y-success-bg-hover) !important;
  border-color: var(--cm-a11y-success-bg-hover) !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

:where(
  .ep-page,
  .cm-auth-page,
  .ep-app,
  .cm-embed-shell,
  .onboarding-page,
  body
) :where(
  .ep-btn,
  .ep-btn-primary,
  .btn,
  .auth-btn,
  .onb-btn-primary,
  .onb-btn-ghost,
  .vnd-btn,
  .aff-btn,
  .rd-btn,
  .cm-topbar__cta,
  .cm-notice-rail__cta,
  .cm-notice-rail__dismiss,
  .cm-sidebar-toggle,
  .cm-icon-button,
  .cm-user-toggle,
  .cm-user-panel__link,
  .cm-user-panel__button,
  .cm-user-panel__switch button,
  .cm-user-panel__switch-current,
  .store-product-card__button,
  .retail-card__button,
  .retail-advert__cta,
  .product-retail-quickbuy,
  .product-mobile-purchase__btn,
  .qc-primary-btn,
  .qc-secondary-btn,
  .lp-btn,
  .lp-legal-btn,
  .cart-summary-actions .ep-btn,
  .checkout-primary-btn,
  .tc-payment-main .ep-btn,
  .tc-payment-main .ep-btn-primary
) :where(span, svg, strong, small) {
  color: inherit !important;
  -webkit-text-fill-color: inherit !important;
}

:where(
  .ep-page,
  .cm-auth-page,
  .ep-app,
  .cm-embed-shell,
  .onboarding-page,
  body
) :where(
  .ep-btn,
  .ep-btn-primary,
  .btn,
  .auth-btn,
  .onb-btn-primary,
  .onb-btn-ghost,
  .vnd-btn,
  .aff-btn,
  .rd-btn,
  .cm-topbar__cta,
  .cm-sidebar-toggle,
  .cm-icon-button,
  .cm-user-toggle,
  .store-product-card__button,
  .retail-card__button,
  .retail-advert__cta,
  .product-retail-quickbuy,
  .product-mobile-purchase__btn,
  .qc-primary-btn,
  .qc-secondary-btn,
  .lp-btn,
  .lp-legal-btn,
  .checkout-primary-btn,
  [role="button"][class],
  button[class],
  a[class*="btn"],
  a[class*="button"]
):focus-visible {
  outline: 3px solid var(--cm-a11y-focus) !important;
  outline-offset: 2px !important;
  box-shadow: none !important;
}

.cm-admin-button,
.submit-row input,
.submit-row .button,
.object-tools a,
a.button,
input[type="submit"],
button.button {
  background: var(--cm-a11y-secondary-bg, #ffffff) !important;
  border-color: var(--cm-a11y-secondary-border, #8b929d) !important;
  color: var(--cm-a11y-secondary-fg, #111111) !important;
  -webkit-text-fill-color: var(--cm-a11y-secondary-fg, #111111) !important;
}

.cm-admin-button--primary,
.submit-row input.default,
.submit-row .button.default,
.object-tools a.addlink,
a.button.default,
input[type="submit"].default {
  background: var(--cm-a11y-primary-bg, #111111) !important;
  border-color: var(--cm-a11y-primary-bg, #111111) !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

.cm-admin-button:hover,
.submit-row input:hover,
.submit-row .button:hover,
.object-tools a:hover,
a.button:hover,
input[type="submit"]:hover,
button.button:hover {
  background: var(--cm-a11y-secondary-bg-hover, #f3f4f6) !important;
  color: var(--cm-a11y-secondary-fg, #111111) !important;
  -webkit-text-fill-color: var(--cm-a11y-secondary-fg, #111111) !important;
}

.cm-admin-button--primary:hover,
.submit-row input.default:hover,
.submit-row .button.default:hover,
.object-tools a.addlink:hover,
a.button.default:hover,
input[type="submit"].default:hover {
  background: var(--cm-a11y-primary-bg-hover, #2b2b2b) !important;
  border-color: var(--cm-a11y-primary-bg-hover, #2b2b2b) !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

html.dark .cm-admin-button,
html.dark .submit-row input,
html.dark .submit-row .button,
html.dark .object-tools a,
html.dark a.button,
html.dark input[type="submit"],
html.dark button.button {
  background: #111827 !important;
  border-color: #6b7280 !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

button[disabled],
input[type="submit"][disabled],
.ep-btn[disabled],
.ep-btn[aria-disabled="true"],
.auth-btn[disabled],
.onb-btn-primary[disabled],
.vnd-btn[disabled],
.aff-btn[disabled] {
  opacity: 0.72 !important;
}
