/* Accessibility reinforcement for WCAG 2.2 AA practices. */

.mm-skip-link,
.wp-block-button__link,
.mm-contact-submit,
.mm-legal-submit,
.mm-cookie-preferences-link,
.mm-consent__button,
.mm-consent__close,
.mm-chat__launcher,
.mm-chat__close,
.mm-chat__choices button,
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close {
  min-height: 44px;
}

.mm-skip-link,
.mm-cookie-preferences-link,
.mm-contact-email,
.mm-social-links a,
.mm-primary-navigation .wp-block-navigation-item__content,
.mm-footer-links .wp-block-navigation-item__content {
  display: inline-flex;
  align-items: center;
}

.mm-primary-navigation .wp-block-navigation-item__content,
.mm-footer-links .wp-block-navigation-item__content,
.mm-contact-email,
.mm-social-links a {
  min-height: 44px;
}

.mm-header-search .wp-block-search__button,
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close,
.mm-consent__close,
.mm-chat__close {
  min-width: 44px;
  min-height: 44px;
}

main input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
main select,
main textarea {
  min-height: 44px;
}

main input[type="checkbox"],
main input[type="radio"],
.mm-consent__category input[type="checkbox"] {
  width: 1.25rem;
  min-width: 1.25rem;
  height: 1.25rem;
  min-height: 1.25rem;
}

.mm-privacy-check,
.mm-legal-verification,
.mm-consent__category {
  min-height: 44px;
}

.mm-faq-list summary,
.mm-service-section--faq summary,
details > summary {
  min-height: 44px;
  display: flex;
  align-items: center;
  cursor: pointer;
}

main p a:not(.wp-element-button),
main li a:not(.wp-element-button),
.mm-legal-content a,
.mm-chat__privacy a {
  text-decoration: underline;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
}

[aria-invalid="true"] {
  border-color: #8c1d2c !important;
  box-shadow: 0 0 0 2px rgba(140, 29, 44, 0.18);
}

.mm-field-error {
  display: block;
  margin-top: 0.35rem;
  color: #7a1422;
  font-size: 0.86rem;
  font-weight: 700;
  line-height: 1.45;
}

.mm-contact-form-error[tabindex="-1"],
.mm-legal-form-error[tabindex="-1"] {
  outline: none;
}

.mm-contact-form-error[tabindex="-1"]:focus,
.mm-legal-form-error[tabindex="-1"]:focus {
  outline: 3px solid var(--mm-cyan);
  outline-offset: 3px;
}

.mm-form-live-region {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* Final contrast corrections for small text on light surfaces. */
.mm-services-page .mm-section-intro .mm-eyebrow,
.mm-service-detail-page .mm-section-intro .mm-eyebrow,
.mm-legal-content a,
.mm-about-beliefs article > span {
  color: #0b55ce;
}

.mm-optional,
.mm-contact-submit-row p {
  color: #5d6c82;
}

/* Keep white CTA text away from the low-contrast cyan end of gradients. */
.mm-header-cta .wp-block-button__link,
.mm-services-final-cta__button,
.mm-service-detail-final-cta__button,
.mm-work-final-cta__button,
.mm-contact-submit {
  background: linear-gradient(135deg, #0b55ce, #5144f8);
  color: #fff;
}

/* Dark Insight surfaces must explicitly own their foreground color. */
.mm-featured-insight,
.mm-insight-card,
.mm-related-service-cta,
.mm-newsletter-cta {
  color: #f5f7fb;
}

.mm-featured-insight p,
.mm-insight-card p,
.mm-related-service-cta p,
.mm-newsletter-cta p {
  color: #d2deed;
}

.mm-insights-filters input,
.mm-insights-filters select {
  color: #f5f7fb;
}

.mm-article-content blockquote {
  color: #eef6ff;
}

@media (forced-colors: active) {
  a:focus-visible,
  button:focus-visible,
  input:focus-visible,
  select:focus-visible,
  textarea:focus-visible,
  summary:focus-visible {
    outline: 2px solid CanvasText !important;
    outline-offset: 3px !important;
  }

  [aria-invalid="true"] {
    outline: 2px solid CanvasText !important;
  }
}
