/* Use existing light/dark brand colors only for keyboard focus indicators. */
body :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
  outline: 3px solid var(--flex-ink, #141414) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 6px var(--flex-paper, #fff) !important;
}
/* Keep the skip link above navigation, media and the WordPress admin bar. */
body a.skip {
  position: fixed !important;
  left: 16px;
  top: -200px;
  z-index: 100001 !important;
  max-width: calc(100vw - 32px);
  border-radius: 8px;
}
body a.skip:focus { top: 16px !important; }
body.admin-bar a.skip:focus { top: 48px !important; }
/* Comfortable stand-alone controls without changing inline copy links. */
body :is(.menu-toggle,.video-toggle,.industry-video-toggle,.services-video-toggle,
.how-video-toggle,.platforms-toggle,.ticker-toggle,.puzzle-pause,.web-art-pause,
.review-pause,.search-loop-pause,.how-motion-toggle,.growth-toggle,
.lightbox-close,.lightbox-prev,.lightbox-next,.dialog-close) {
  min-width: 44px;
  min-height: 44px;
}
body :is(.platforms-toggle,.ticker-toggle,.puzzle-pause,.web-art-pause,
.review-pause,.search-loop-pause,.how-motion-toggle) { font-size: 14px; }
body header #navigation > a,
body footer.site-footer nav > a { min-height: 44px; display: inline-flex; align-items: center; }
/* Match the owner's requested hidden footer CTA even when this plugin loads last. */
body footer.site-footer nav > a.nav-cta { display: none; }
/* Essential copy links can be identified without color alone. */
body .flex-post-body a,
body article.flex-editorial :is(p,li) a,
body .contact-welcome p a {
  text-decoration: underline;
  text-underline-offset: .18em;
  text-decoration-thickness: .08em;
}
/* Let keyboard users stop on the review window and read all original cards. */
body .review-window.flex-review-reader { overflow-x: auto; }
body .review-window.flex-review-reader:focus-within .review-track {
  animation: none !important;
  transform: none !important;
}
body .review-window.flex-review-reader:focus-within .review-set[aria-hidden="true"] { display: none !important; }
/* Remain usable at increased text size; do not clip long labels. */
body :is(.button,.nav-cta,.service-tags li,.intro-chips span) { height: auto; }
body .contact-form :is(input:not([type="checkbox"]):not([type="submit"]),textarea,select) {
  font-size: max(16px, 1em);
}
body .flex-editorial :is(table,pre) { max-width: 100%; overflow-x: auto; }
body .portfolio-lightbox .lightbox-toolbar { flex-shrink: 0; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  body *,body *::before,body *::after { scroll-behavior: auto !important; transition: none !important; }
  body :is(.hero-bokeh i,.puzzle-bokeh i,.how-team-bokeh i,.web-art-halo) { animation: none !important; }
  body .flex-reviews .review-track { animation: none !important; transform: none !important; width: auto; display: block; }
  body .flex-reviews .review-window { overflow: visible; }
  body .flex-reviews .review-set { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(280px,100%),1fr)); gap: 22px; padding-right: 0; }
  body .flex-reviews .review-set[aria-hidden="true"] { display: none !important; }
  body .flex-reviews .review-card { width: 100%; min-width: 0; }
}
@media (forced-colors: active) {
  body :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
    outline: 3px solid Highlight !important;
    box-shadow: none !important;
  }
  body .button, body .nav-cta { border: 1px solid ButtonText; }
}
