/* Phase 1A: preserve the existing design while making controls usable. */
html body :is(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid #781afe !important;
  outline-offset: 3px;
  box-shadow: 0 0 0 3px #fff !important;
}
html body :is(.acc-btn, .accordion-button):focus-visible {
  outline-offset: -3px;
}
button.acc-btn {
  display: block;
  width: 100%;
  text-align: left;
  line-height: inherit;
  background: transparent;
  padding: 0;
}
.flowbit-scope button.accordion-button {
  font-family: var(--font-primary);
  margin: 0;
}
.main-menu ul li.menu-item-has-children:focus-within > .submenu,
.main-menu ul li.menu-item-has-children.keyboard-open > .submenu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.main-menu ul li.menu-item-has-children.keyboard-closed > .submenu {
  opacity: 0;
  visibility: hidden;
}
button.xb-menu-toggle { padding: 0; }
html:not(.yeti-controls-ready) :is(.acc_body, .acc-content) { display: block !important; }
/* Baseline navigation stays available if the enhancement script cannot load. */
@media (max-width: 991px) {
  html:not(.yeti-controls-ready) header { position: relative; top: auto; }
  html:not(.yeti-controls-ready) .xb-header-area-sticky { display: none; }
  html:not(.yeti-controls-ready) .xb-header-menu {
    position: static;
    transform: none;
    visibility: visible;
    height: auto;
    width: 100%;
  }
  html:not(.yeti-controls-ready) .xb-header-menu .sub-menu { display: block !important; }
  html:not(.yeti-controls-ready) :is(.xb-nav-mobile, .xb-menu-close) { display: none; }
}
.cta-bg-video .cta-static-poster {
  height: 100%;
  width: 100%;
  object-fit: cover;
  object-position: center;
}

/* No full-screen loading gate, even when every script is unavailable. */
#preloader { display: none !important; }
/* Keep movement effects, but never make meaningful content depend on a reveal. */
.wow, .heroTitleUp, .xbFadeUp, .xbFadeUpContent, .xbFadeUpImg,
.xbFadeUpItem, .xb_fade_anim, .xb-word-inner {
  visibility: visible !important;
  opacity: 1 !important;
}
.heroTitleUp { filter: none !important; }
/* A failed word tween must not leave its words outside an overflow-hidden span. */
.xb-word-inner { transform: none !important; }
