
/* Elementor/CMSMasters simulation layer */
/* --- Safe defaults for CMSMasters variables --- */
:root{
  --cmsmasters-transform-translate-x: 0px;
  --cmsmasters-transform-translate-y: 0px;
  --cmsmasters-transform-rotate-z: 0deg;
  --cmsmasters-transform-rotate-x: 0deg;
  --cmsmasters-transform-rotate-y: 0deg;
  --cmsmasters-transform-scale-x: 1;
  --cmsmasters-transform-scale-y: 1;
  --cmsmasters-transform-skew-x: 0deg;
  --cmsmasters-transform-skew-y: 0deg;
  --cmsmasters-transform-opacity: 1;
  --cmsmasters-transform-blur: 0px;

  --cmsmasters-transform-translate-x-hover: var(--cmsmasters-transform-translate-x);
  --cmsmasters-transform-translate-y-hover: var(--cmsmasters-transform-translate-y);
  --cmsmasters-transform-rotate-z-hover: var(--cmsmasters-transform-rotate-z);
  --cmsmasters-transform-rotate-x-hover: var(--cmsmasters-transform-rotate-x);
  --cmsmasters-transform-rotate-y-hover: var(--cmsmasters-transform-rotate-y);
  --cmsmasters-transform-scale-x-hover: var(--cmsmasters-transform-scale-x);
  --cmsmasters-transform-scale-y-hover: var(--cmsmasters-transform-scale-y);
  --cmsmasters-transform-skew-x-hover: var(--cmsmasters-transform-skew-x);
  --cmsmasters-transform-skew-y-hover: var(--cmsmasters-transform-skew-y);
  --cmsmasters-transform-opacity-hover: var(--cmsmasters-transform-opacity);
  --cmsmasters-transform-blur-hover: var(--cmsmasters-transform-blur);

  --cms-anim-duration: .8s;
  --cms-anim-ease: cubic-bezier(.2,.7,.2,1);
  --cms-anim-delay: 0s;
  --cms-parallax-strength: 0.15; /* 0..1 */
}

/* --- Reveal animations (scroll into view) --- */
.cms-anim{
  opacity: 0;
  transform: translate3d(0, 18px, 0) scale(.98);
  filter: blur(2px);
  transition:
    transform var(--cms-anim-duration) var(--cms-anim-ease),
    opacity var(--cms-anim-duration) var(--cms-anim-ease),
    filter var(--cms-anim-duration) var(--cms-anim-ease);
  transition-delay: var(--cms-anim-delay);
  will-change: transform, opacity, filter;
}
.cms-anim.in-view{
  opacity: 1;
  transform: none;
  filter: none;
}
/* Variants */
.cms-fade{ transform:none; }
.cms-slide-up{ transform: translate3d(0, 18px, 0); }
.cms-zoom{ transform: scale(.96); }

/* Attribute-driven */
[data-anim="fade"]{}
[data-anim="slide-up"]{ transform: translate3d(0, 18px, 0); }
[data-anim="zoom"]{ transform: scale(.96); }

/* --- Hover transforms (simulate CMSMasters transform on hover) --- */
.hover-transform{
  transition: transform .3s ease, opacity .3s ease, filter .3s ease, box-shadow .3s ease;
}
.hover-transform:hover, .hover-transform:focus{
  transform:
    translate(
      var(--cmsmasters-transform-translate-x-hover, var(--cmsmasters-transform-translate-x)),
      var(--cmsmasters-transform-translate-y-hover, var(--cmsmasters-transform-translate-y))
    )
    rotateZ(var(--cmsmasters-transform-rotate-z-hover, var(--cmsmasters-transform-rotate-z)))
    rotateX(var(--cmsmasters-transform-rotate-x-hover, var(--cmsmasters-transform-rotate-x)))
    rotateY(var(--cmsmasters-transform-rotate-y-hover, var(--cmsmasters-transform-rotate-y)))
    scale(
      var(--cmsmasters-transform-scale-x-hover, var(--cmsmasters-transform-scale-x)),
      var(--cmsmasters-transform-scale-y-hover, var(--cmsmasters-transform-scale-y))
    )
    skew(
      var(--cmsmasters-transform-skew-x-hover, var(--cmsmasters-transform-skew-x)),
      var(--cmsmasters-transform-skew-y-hover, var(--cmsmasters-transform-skew-y))
    );
  opacity: var(--cmsmasters-transform-opacity-hover, var(--cmsmasters-transform-opacity));
  -webkit-backdrop-filter: blur(var(--cmsmasters-transform-blur-hover, var(--cmsmasters-transform-blur)));
  backdrop-filter: blur(var(--cmsmasters-transform-blur-hover, var(--cmsmasters-transform-blur)));
}

/* A subtle default lift for cards/media/buttons when no custom vars are set */
.hover-lift{ transition: transform .25s ease, box-shadow .25s ease; }
.hover-lift:hover, .hover-lift:focus{ transform: translateY(-6px); box-shadow: 0 12px 28px rgba(0,0,0,.35); }

/* --- Parallax (background/media) --- */
.cms-parallax{ position: relative; overflow: hidden; }
.cms-parallax > .parallax-media{ position:absolute; inset:-10% -5%; transform: translate3d(0, var(--parallax-y, 0), 0); will-change: transform; }
.cms-parallax img, .cms-parallax video{ width:100%; height:100%; object-fit: cover; }

/* --- Respect user preferences --- */
@media (prefers-reduced-motion: reduce){
  .cms-anim{ transition:none; opacity:1; transform:none; filter:none; }
  .hover-transform, .hover-lift{ transition:none; }
}

/* force hide any leftover preloader */
#preloader,.preloader,.page-preloader,.site-preloader{display:none!important;opacity:0!important;visibility:hidden!important}
html,body{opacity:1!important;visibility:visible!important;overflow:auto!important}
