/* Short, one-time entrances. No content is hidden while waiting for JavaScript. */
@keyframes kf-reveal-in {
  from { opacity: 0; translate: 0 22px; }
  to { opacity: 1; translate: 0 0; }
}
.kf-reveal.is-revealed {
  animation: kf-reveal-in 650ms cubic-bezier(.22, 1, .36, 1) var(--kf-reveal-delay, 0ms) both;
}

.kf-card-icon .elementor-heading-title,
.kf-step .elementor-heading-title,
.kf-screen img,
.kf-tag .elementor-heading-title,
.kf-cta:after,
.kf-button .elementor-button-text {
  transition: transform 300ms cubic-bezier(.22, 1, .36, 1), background-color 200ms, border-color 200ms, box-shadow 200ms;
}
.kf-workflow-card { transition: border-color 250ms; }
.kf-nav-link .elementor-button { transition: color 200ms; }
.kf-form-panel .elementor-field {
  transition: border-color 180ms, box-shadow 180ms, background-color 180ms;
}
.kf-form-panel .elementor-field:focus {
  border-color: #2b795c !important;
  box-shadow: 0 0 0 3px #d0f1e1;
  background: #fff !important;
}

/* Focus and tap receive feedback as well as pointer hover. */
.kf-card:focus-within .kf-card-icon .elementor-heading-title { transform: rotate(-5deg) translateY(-2px); }
.kf-card:focus-within { box-shadow: 0 12px 28px -18px #01342455; }
.kf-button .elementor-button:active { transform: translateY(1px) scale(.98); }
.kf-button .elementor-button:focus-visible .elementor-button-text { transform: translateX(2px); }
.kf-cta:focus-within:after { transform: translate(8px, -8px); }

@media (hover:hover) and (pointer:fine) {
  .kf-card:hover .kf-card-icon .elementor-heading-title { transform: rotate(-5deg) translateY(-2px); }
  .kf-split-visual:hover .kf-screen img { transform: translateY(-4px); box-shadow: 0 18px 30px -18px #01342466; }
  .kf-workflow-card:hover { border-color: #addec7; }
  .kf-workflow-card:hover .kf-step .elementor-heading-title { transform: translateX(5px); background: #fff; }
  .kf-tag:hover .elementor-heading-title { background: #1b6047; border-color: #addec7; transform: translateY(-2px); }
  .kf-button .elementor-button:hover .elementor-button-text { transform: translateX(2px); }
  .kf-cta:hover:after { transform: translate(8px, -8px); }
}

@keyframes kf-answer-in {
  from { opacity: 0; translate: 0 -5px; }
  to { opacity: 1; translate: 0 0; }
}
.kf-faq details[open] p { animation: kf-answer-in 240ms ease-out; }
.kf-faq summary:after { transition: transform 200ms; }
.kf-faq details[open] summary:after { transform: rotate(180deg); }
.kf-faq summary:hover { color: #0b4834; }

@media (max-width:767px) {
  .kf-reveal.is-revealed { animation-duration: 500ms; }
  .kf-navigation.is-open { animation: kf-answer-in 180ms ease-out; }
}
@media (prefers-reduced-motion:reduce) {
  .kf-reveal.is-revealed,
  .kf-faq details[open] p,
  .kf-navigation.is-open { animation: none !important; }
  .kf-card:focus-within .kf-card-icon .elementor-heading-title,
  .kf-card:hover .kf-card-icon .elementor-heading-title,
  .kf-split-visual:hover .kf-screen img,
  .kf-workflow-card:hover .kf-step .elementor-heading-title,
  .kf-tag:hover .elementor-heading-title,
  .kf-button .elementor-button:active,
  .kf-button .elementor-button:hover .elementor-button-text,
  .kf-button .elementor-button:focus-visible .elementor-button-text,
  .kf-cta:hover:after,
  .kf-cta:focus-within:after { transform: none; }
}
