/* Public action buttons. Kept separate from navigation, tabs, cards and galleries. */
body#content.mp-public-ui[data-public-page][data-mapiole-theme] {
  --mp-button-primary: #9300b8;
  --mp-button-primary-hover: #760094;
  --mp-button-primary-active: #63007d;
  --mp-button-secondary: #ffffff;
  --mp-button-secondary-hover: #f3eaf7;
  --mp-button-secondary-active: #e9daef;
  --mp-button-secondary-text: #24142d;
  --mp-button-secondary-border: #c8bbd0;
  --mp-button-focus: #b500de;
}
body#content.mp-public-ui[data-public-page][data-mapiole-theme="dark"] {
  --mp-button-primary: #a000c8;
  --mp-button-primary-hover: #b000db;
  --mp-button-primary-active: #8a00ad;
  --mp-button-secondary: #2c2235;
  --mp-button-secondary-hover: #3a2b46;
  --mp-button-secondary-active: #483456;
  --mp-button-secondary-text: #fff8ff;
  --mp-button-secondary-border: #776383;
  --mp-button-focus: #df8df4;
}

/* All candidates are action controls, never their enclosing cards or tab items. */
body#content.mp-public-ui[data-public-page][data-mapiole-theme]
  :is(#mp-public-content, #footer, #chatPopup)
  :is(
    [data-ed-control], .fg-button, .fg-button.fg-button-outline,
    .fgs-button, .fg-program-btn, .amb-btn,
    .mp-btn-solid, .mp-hero-discover, .fg-services-cta > a, .hx-team-heading > .mp-link, .mp-btn-outline, .mp-btn-outline-light,
    .mp-plan-cta, .pkg-cta, .pros-btn, .mp-profile-btn,
    .mp-pl-search-submit, .mp-pl-cta-btn, .mp-pl-alert-btn,
    .sf-apply-btn, .mp-home-filter-apply, .pd-action-primary,
    .pd-action-outline, .ab-btn-primary, .ab-btn-outline,
    .lfx-btn, .lfx-outline, .mp-about-btn-primary,
    .mp-about-btn-outline, .mp-search-submit, .mp-search-filter,
    .mp-pl-filter-btn, .mp-pl-icon-btn, .fg-home-assistant-submit,
    .fg-newsletter > button, button[type="submit"], input[type="submit"]
  ):not(.accordion-button, .btn-close, .carousel-control-prev, .carousel-control-next,
       [role="tab"], [data-bs-toggle="tab"], .ab-gallery-show-all, .ab-show-all-btn) {
  --ed-control-bg: var(--mp-button-primary);
  --ed-control-fg: #ffffff;
  --ed-control-border: var(--mp-button-primary);
  --mp-button-active: var(--mp-button-primary-active);
  background: var(--ed-control-bg) !important;
  background-image: none !important;
  color: var(--ed-control-fg) !important;
  -webkit-text-fill-color: var(--ed-control-fg) !important;
  border-color: var(--ed-control-border) !important;
  box-shadow: none !important;
  text-shadow: none !important;
  transform: none !important;
  translate: none !important;
  rotate: none !important;
  scale: none !important;
  filter: none !important;
  text-decoration: none !important;
  transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease !important;
}

/* Secondary treatments include all existing outline and neutral controls. */
body#content.mp-public-ui[data-public-page][data-mapiole-theme]
  :is(#mp-public-content, #footer, #chatPopup)
  :is(
    [data-ed-control="secondary"], .fg-button.fg-button-outline,
    .fgs-button.fgs-button-outline, .fg-program-btn.is-outline,
    .fg-program-btn.fg-program-btn-outline, .amb-btn:not(.amb-btn-primary),
    .mp-btn-outline, .mp-btn-outline-light, .mp-plan-cta-outline,
    .pd-action-outline, .ab-btn-outline, .lfx-outline,
    .mp-about-btn-outline, .mp-search-filter, .mp-pl-filter-btn, .mp-pl-icon-btn
  ):not(.accordion-button, .btn-close, .carousel-control-prev, .carousel-control-next,
       [role="tab"], [data-bs-toggle="tab"], .ab-gallery-show-all, .ab-show-all-btn) {
  --ed-control-bg: var(--mp-button-secondary);
  --ed-control-fg: var(--mp-button-secondary-text);
  --ed-control-border: var(--mp-button-secondary-border);
  --mp-button-active: var(--mp-button-secondary-active);
}

body#content.mp-public-ui[data-public-page][data-mapiole-theme]
  :is(#mp-public-content, #footer, #chatPopup)
  :is([data-ed-control], .fg-button, .fg-button.fg-button-outline,
      .fgs-button, .fg-program-btn, .amb-btn, .mp-btn-solid, .mp-hero-discover, .fg-services-cta > a, .hx-team-heading > .mp-link, .mp-btn-outline,
      .mp-btn-outline-light, .mp-plan-cta, .pkg-cta, .pros-btn, .mp-profile-btn,
      .mp-pl-search-submit, .mp-pl-cta-btn, .mp-pl-alert-btn, .sf-apply-btn,
      .mp-home-filter-apply, .pd-action-primary, .pd-action-outline, .ab-btn-primary,
      .ab-btn-outline, .lfx-btn, .lfx-outline, .mp-about-btn-primary,
      .mp-about-btn-outline, .mp-search-submit, .mp-search-filter,
      .mp-pl-filter-btn, .mp-pl-icon-btn, .fg-home-assistant-submit,
      .fg-newsletter > button, button[type="submit"], input[type="submit"]):not(
      .accordion-button, .btn-close, .carousel-control-prev, .carousel-control-next,
      [role="tab"], [data-bs-toggle="tab"], .ab-gallery-show-all, .ab-show-all-btn):not(
      :disabled, [aria-disabled="true"], .disabled):active {
  --ed-control-bg: var(--mp-button-active) !important;
  --ed-control-border: var(--mp-button-active) !important;
}

body#content.mp-public-ui[data-public-page][data-mapiole-theme]
  :is(#mp-public-content, #footer, #chatPopup)
  :is(
    [data-ed-control], .fg-button, .fg-button.fg-button-outline,
    .fgs-button, .fg-program-btn, .amb-btn,
    .mp-btn-solid, .mp-hero-discover, .fg-services-cta > a, .hx-team-heading > .mp-link, .mp-btn-outline, .mp-btn-outline-light,
    .mp-plan-cta, .pkg-cta, .pros-btn, .mp-profile-btn,
    .mp-pl-search-submit, .mp-pl-cta-btn, .mp-pl-alert-btn,
    .sf-apply-btn, .mp-home-filter-apply, .pd-action-primary,
    .pd-action-outline, .ab-btn-primary, .ab-btn-outline,
    .lfx-btn, .lfx-outline, .mp-about-btn-primary,
    .mp-about-btn-outline, .mp-search-submit, .mp-search-filter,
    .mp-pl-filter-btn, .mp-pl-icon-btn, .fg-home-assistant-submit,
    .fg-newsletter > button, button[type="submit"], input[type="submit"]
  ):not(.accordion-button, .btn-close, .carousel-control-prev, .carousel-control-next,
       [role="tab"], [data-bs-toggle="tab"], .ab-gallery-show-all, .ab-show-all-btn):is(:hover, :active, :focus-visible) {
  transform: none !important;
  translate: none !important;
  rotate: none !important;
  scale: none !important;
  filter: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
}

/* Color is the only hover feedback; geometry and icon positions stay fixed. */
body#content.mp-public-ui[data-public-page][data-mapiole-theme]
  :is(#mp-public-content, #footer, #chatPopup)
  :is([data-ed-control="primary"], .fg-button:not(.fg-button-outline),
      .fgs-button:not(.fgs-button-outline), .fg-program-btn:not(.is-outline):not(.fg-program-btn-outline),
      .amb-btn-primary, .mp-btn-solid, .mp-hero-discover, .fg-services-cta > a, .hx-team-heading > .mp-link, .mp-plan-cta-filled, .pkg-cta, .pros-btn,
      .mp-profile-btn, .mp-pl-search-submit, .mp-pl-cta-btn, .mp-pl-alert-btn,
      .sf-apply-btn, .mp-home-filter-apply, .pd-action-primary, .ab-btn-primary,
      .lfx-btn, .mp-about-btn-primary, .mp-search-submit, .fg-home-assistant-submit,
      .fg-newsletter > button, button[type="submit"], input[type="submit"]):not(:disabled):not([aria-disabled="true"]):not(.disabled):hover {
  --ed-control-bg: var(--mp-button-primary-hover);
  --ed-control-border: var(--mp-button-primary-hover);
}
body#content.mp-public-ui[data-public-page][data-mapiole-theme]
  :is(#mp-public-content, #footer, #chatPopup)
  :is([data-ed-control="secondary"], .fg-button.fg-button-outline,
      .fgs-button.fgs-button-outline, .fg-program-btn.is-outline,
      .fg-program-btn.fg-program-btn-outline, .amb-btn:not(.amb-btn-primary),
      .mp-btn-outline, .mp-btn-outline-light, .mp-plan-cta-outline,
      .pd-action-outline, .ab-btn-outline, .lfx-outline, .mp-about-btn-outline,
      .mp-search-filter, .mp-pl-filter-btn, .mp-pl-icon-btn):not(:disabled):not([aria-disabled="true"]):not(.disabled):hover {
  --ed-control-bg: var(--mp-button-secondary-hover);
  --ed-control-fg: var(--mp-button-secondary-text);
  --ed-control-border: var(--mp-button-secondary-border);
}

body#content.mp-public-ui[data-public-page][data-mapiole-theme]
  :is(#mp-public-content, #footer, #chatPopup)
  :is([data-ed-control], .fg-button, .fg-button.fg-button-outline,
      .fgs-button, .fg-program-btn, .amb-btn, .mp-btn-solid, .mp-hero-discover, .fg-services-cta > a, .hx-team-heading > .mp-link, .mp-btn-outline,
      .mp-btn-outline-light, .mp-plan-cta, .pkg-cta, .pros-btn, .mp-profile-btn,
      .mp-pl-search-submit, .mp-pl-cta-btn, .mp-pl-alert-btn, .sf-apply-btn,
      .mp-home-filter-apply, .pd-action-primary, .pd-action-outline, .ab-btn-primary,
      .ab-btn-outline, .lfx-btn, .lfx-outline, .mp-about-btn-primary,
      .mp-about-btn-outline, .mp-search-submit, .mp-search-filter,
      .mp-pl-filter-btn, .mp-pl-icon-btn, .fg-home-assistant-submit,
      .fg-newsletter > button, button[type="submit"], input[type="submit"]):not(.accordion-button, .btn-close, .carousel-control-prev, .carousel-control-next,
       [role="tab"], [data-bs-toggle="tab"], .ab-gallery-show-all, .ab-show-all-btn):is(:focus-visible) {
  outline: 2px solid var(--mp-button-focus) !important;
  outline-offset: 3px !important;
}

/* Old templates create sliding overlays with pseudo elements. These actions
   already contain real labels and icons, so overlays have no semantic role. */
body#content.mp-public-ui[data-public-page][data-mapiole-theme]
  :is(#mp-public-content, #footer, #chatPopup)
  :is([data-ed-control], .fg-button, .fg-button.fg-button-outline,
      .fgs-button, .fg-program-btn, .amb-btn, .mp-btn-solid, .mp-hero-discover, .fg-services-cta > a, .hx-team-heading > .mp-link, .mp-btn-outline,
      .mp-btn-outline-light, .mp-plan-cta, .pkg-cta, .pros-btn, .mp-profile-btn,
      .mp-pl-search-submit, .mp-pl-cta-btn, .mp-pl-alert-btn, .sf-apply-btn,
      .mp-home-filter-apply, .pd-action-primary, .pd-action-outline, .ab-btn-primary,
      .ab-btn-outline, .lfx-btn, .lfx-outline, .mp-about-btn-primary,
      .mp-about-btn-outline, .mp-search-submit, .mp-search-filter,
      .mp-pl-filter-btn, .mp-pl-icon-btn, .fg-home-assistant-submit,
      .fg-newsletter > button, button[type="submit"], input[type="submit"]):not(.accordion-button, .btn-close, .carousel-control-prev, .carousel-control-next,
       [role="tab"], [data-bs-toggle="tab"], .ab-gallery-show-all, .ab-show-all-btn)::before {
  content: none !important;
  display: none !important;
  animation: none !important;
  transition: none !important;
}

body#content.mp-public-ui[data-public-page][data-mapiole-theme]
  :is(#mp-public-content, #footer, #chatPopup)
  :is([data-ed-control], .fg-button, .fg-button.fg-button-outline,
      .fgs-button, .fg-program-btn, .amb-btn, .mp-btn-solid, .mp-hero-discover, .fg-services-cta > a, .hx-team-heading > .mp-link, .mp-btn-outline,
      .mp-btn-outline-light, .mp-plan-cta, .pkg-cta, .pros-btn, .mp-profile-btn,
      .mp-pl-search-submit, .mp-pl-cta-btn, .mp-pl-alert-btn, .sf-apply-btn,
      .mp-home-filter-apply, .pd-action-primary, .pd-action-outline, .ab-btn-primary,
      .ab-btn-outline, .lfx-btn, .lfx-outline, .mp-about-btn-primary,
      .mp-about-btn-outline, .mp-search-submit, .mp-search-filter,
      .mp-pl-filter-btn, .mp-pl-icon-btn, .fg-home-assistant-submit,
      .fg-newsletter > button, button[type="submit"], input[type="submit"]):not(
      .accordion-button, .btn-close, .carousel-control-prev, .carousel-control-next,
      [role="tab"], [data-bs-toggle="tab"], .ab-gallery-show-all, .ab-show-all-btn)::after {
  content: none !important;
  display: none !important;
  animation: none !important;
  transition: none !important;
}

body#content.mp-public-ui[data-public-page][data-mapiole-theme]
  :is(#mp-public-content, #footer, #chatPopup)
  :is([data-ed-control], .fg-button, .fg-button.fg-button-outline,
      .fgs-button, .fg-program-btn, .amb-btn, .mp-btn-solid, .mp-hero-discover, .fg-services-cta > a, .hx-team-heading > .mp-link, .mp-btn-outline,
      .mp-btn-outline-light, .mp-plan-cta, .pkg-cta, .pros-btn, .mp-profile-btn,
      .mp-pl-search-submit, .mp-pl-cta-btn, .mp-pl-alert-btn, .sf-apply-btn,
      .mp-home-filter-apply, .pd-action-primary, .pd-action-outline, .ab-btn-primary,
      .ab-btn-outline, .lfx-btn, .lfx-outline, .mp-about-btn-primary,
      .mp-about-btn-outline, .mp-search-submit, .mp-search-filter,
      .mp-pl-filter-btn, .mp-pl-icon-btn, .fg-home-assistant-submit,
      .fg-newsletter > button, button[type="submit"], input[type="submit"]):not(.accordion-button, .btn-close, .carousel-control-prev, .carousel-control-next,
       [role="tab"], [data-bs-toggle="tab"], .ab-gallery-show-all, .ab-show-all-btn) * {
  color: inherit !important;
  -webkit-text-fill-color: currentColor !important;
  text-shadow: none !important;
  transform: none !important;
  translate: none !important;
  rotate: none !important;
  scale: none !important;
  transition: color 160ms ease !important;
}

body#content.mp-public-ui[data-public-page][data-mapiole-theme]
  :is(#mp-public-content, #footer, #chatPopup)
  :is([data-ed-control], .fg-button, .fg-button.fg-button-outline,
      .fgs-button, .fg-program-btn, .amb-btn, .mp-btn-solid, .mp-hero-discover, .fg-services-cta > a, .hx-team-heading > .mp-link, .mp-btn-outline,
      .mp-btn-outline-light, .mp-plan-cta, .pkg-cta, .pros-btn, .mp-profile-btn,
      .mp-pl-search-submit, .mp-pl-cta-btn, .mp-pl-alert-btn, .sf-apply-btn,
      .mp-home-filter-apply, .pd-action-primary, .pd-action-outline, .ab-btn-primary,
      .ab-btn-outline, .lfx-btn, .lfx-outline, .mp-about-btn-primary,
      .mp-about-btn-outline, .mp-search-submit, .mp-search-filter,
      .mp-pl-filter-btn, .mp-pl-icon-btn, .fg-home-assistant-submit,
      .fg-newsletter > button, button[type="submit"], input[type="submit"]):is(:disabled, [aria-disabled="true"], .disabled) {
  opacity: .58 !important;
  cursor: not-allowed !important;
  transform: none !important;
  box-shadow: none !important;
}
@media (prefers-reduced-motion: reduce) {
  body#content.mp-public-ui[data-public-page] [data-ed-control] { transition: none !important; }
}
