/* Entrance controls live in Elementor > Advanced > Motion Effects.
   Scoped keyframes keep the native slide effects short and consistent. */
@keyframes ok-rise { from { opacity:0; transform:translate3d(0,var(--ok-motion-distance,24px),0); } to { opacity:1; transform:none; } }
@keyframes ok-left { from { opacity:0; transform:translate3d(calc(-1 * var(--ok-motion-distance,24px)),0,0); } to { opacity:1; transform:none; } }
@keyframes ok-right { from { opacity:0; transform:translate3d(var(--ok-motion-distance,24px),0,0); } to { opacity:1; transform:none; } }
@keyframes ok-header-enter { from { opacity:0; transform:translateY(-8px); } to { opacity:1; transform:none; } }
@keyframes ok-button-shine { from { transform:translateX(-140%) skewX(-18deg); } to { transform:translateX(240%) skewX(-18deg); } }

@media (prefers-reduced-motion:no-preference) {
  .ok-motion-item.animated { animation-timing-function:cubic-bezier(.22,1,.36,1); animation-fill-mode:backwards; }
  .ok-motion-item.animated.fadeInUp { animation-name:ok-rise; }
  .ok-motion-item.animated.fadeInLeft { animation-name:ok-left; }
  .ok-motion-item.animated.fadeInRight { animation-name:ok-right; }
  body:not(.elementor-editor-active) .elementor-location-header { animation:ok-header-enter .42s ease-out backwards; transition:box-shadow .25s ease; }
  .elementor-location-header.ok-header-scrolled { box-shadow:0 6px 26px #1a1a1a16; }
  .elementor-button .elementor-button-icon { transition:transform .25s cubic-bezier(.22,1,.36,1); }
  .elementor-button:focus-visible .elementor-button-icon { transform:translateX(4px); }
  .ok-plan, .ok-benefit, .ok-help-card { transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s ease,border-color .28s ease; }
  .ok-plan:focus-within, .ok-benefit:focus-visible, .ok-help-card:focus-visible { transform:translateY(-4px); }
  .ok-coverage .elementor-form-fields-wrapper { transition:box-shadow .25s ease; }
  .ok-coverage .elementor-form-fields-wrapper:focus-within { box-shadow:0 0 0 4px #0bd90426; }
  .ok-faq .elementor-tab-title { transition:background-color .2s ease; }
  .ok-motion-photo img { transition:transform .65s cubic-bezier(.22,1,.36,1); }
}

@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .elementor-button { position:relative; overflow:hidden; transition:transform .25s ease,box-shadow .25s ease,background-color .25s ease; }
  .elementor-button::after { content:""; position:absolute; inset:0; width:55%; pointer-events:none; background:linear-gradient(90deg,transparent,#ffffff24,transparent); transform:translateX(-140%) skewX(-18deg); }
  .elementor-button:hover::after { animation:ok-button-shine .65s ease-out; }
  .elementor-button:hover .elementor-button-icon { transform:translateX(4px); }
  .ok-plan:hover { transform:translateY(-7px); }
  .ok-benefit:hover, .ok-help-card:hover { transform:translateY(-5px); }
  .ok-benefit:hover .elementor-icon, .ok-help-card:hover .elementor-icon { transform:translateY(-2px) rotate(-5deg); }
  body:not(.elementor-editor-active) .ok-motion-photo { overflow:hidden; border-radius:22px; }
  body:not(.elementor-editor-active) .ok-motion-photo:hover img { transform:scale(1.025); }
  .ok-faq .elementor-tab-title:hover { background-color:var(--ok-surface); }
  .ok-header .elementor-nav-menu--main .elementor-item { transition:color .2s ease; }
}

/* No hidden content in editor, print, keyboard browsing or reduced-motion mode. */
.elementor-editor-active .ok-motion-item,
.ok-keyboard-mode .ok-motion-item,
.ok-motion-static .ok-motion-item { visibility:visible; opacity:1; animation:none; }
.ok-keyboard-mode .elementor-location-header { animation:none; }
@media (max-width:767px) { .ok-motion-item { --ok-motion-distance:14px; } }
@media (prefers-reduced-motion:reduce) {
  .ok-motion-item.elementor-invisible { visibility:visible; opacity:1; transform:none; }
  .ok-motion-item.animated, .elementor-location-header { animation:none; }
  .ok-plan:hover, .ok-plan:focus-within, .ok-benefit:hover, .ok-help-card:hover,
  .elementor-button:hover, .ok-motion-photo:hover img,
  .ok-benefit:hover .elementor-icon, .ok-help-card:hover .elementor-icon { transform:none; }
  .elementor-button::after { display:none; }
}
@media print { .ok-motion-item.elementor-invisible { visibility:visible; opacity:1; animation:none; transform:none; } }
