/* KERTS — restrained luxury motion system */
/* Only active when JS confirms (html.ka-js) — no content lost without JS */

html.ka-js .ka-reveal {
  opacity: 0;
  transform: translateY(26px);
  filter: blur(5px);
  will-change: opacity, transform, filter;
  transition:
    opacity 1s cubic-bezier(.22,1,.36,1),
    transform 1s cubic-bezier(.22,1,.36,1),
    filter 1s cubic-bezier(.22,1,.36,1);
  transition-delay: var(--ka-d, 0ms);
}
html.ka-js .ka-reveal.ka-in {
  opacity: 1;
  transform: none;
  filter: blur(0);
}

/* Media get a gentle settle-scale instead of blur */
html.ka-js .ka-reveal.ka-media {
  filter: none;
  transform: translateY(18px) scale(1.03);
  transition-duration: 1.2s;
}
html.ka-js .ka-reveal.ka-media.ka-in { transform: none; }

/* Hero: choreographed load-in, slightly slower & larger travel */
html.ka-js .ka-hero .ka-reveal {
  transform: translateY(34px);
  transition-duration: 1.15s;
}

/* Elegant micro-interactions (site-wide, subtle) */
.elementor-button,
.rem_item, .rem-item, .property-item {
  transition: transform .45s cubic-bezier(.22,1,.36,1), box-shadow .45s cubic-bezier(.22,1,.36,1) !important;
}
.elementor-button:hover { transform: translateY(-2px); }
.rem_item:hover, .rem-item:hover, .property-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 22px 40px -18px rgba(0,0,0,.28);
}

/* Underline sweep on in-content links inside text widgets */
.elementor-widget-text-editor a {
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  background-size: 0% 1px;
  background-position: 0 100%;
  transition: background-size .5s cubic-bezier(.22,1,.36,1);
  text-decoration: none;
}
.elementor-widget-text-editor a:hover { background-size: 100% 1px; }

/* Accessibility: honour reduced motion fully */
@media (prefers-reduced-motion: reduce) {
  html.ka-js .ka-reveal { opacity: 1 !important; transform: none !important; filter: none !important; transition: none !important; }
  .elementor-button, .rem_item, .rem-item, .property-item { transition: none !important; }
}
