.elementor-kit-6{--e-global-color-primary:#000000;--e-global-color-secondary:#0E0E0E;--e-global-color-text:#FFFFFF;--e-global-color-accent:#0A3D7E;--e-global-color-24b23b2:#1E6EDC;--e-global-color-41dc8d6:#2C8BFF;--e-global-typography-primary-font-family:"Controller";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Montserrat";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Montserrat";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Montserrat";--e-global-typography-accent-font-weight:500;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS */<style>
/* Elegant "from-left + skew" enter + slow "drift-away" exit animation for word-split text */
/* Target widgets by adding the CSS class `ea-split` */

.ea-split { display:inline-block; line-height:1.12; overflow:visible; }
.ea-split .ea-word { display:inline-block; white-space:pre; 
  /* initial hidden state (off-screen left, skewed, blurred) */
  opacity:0;
  transform: translateX(-14px) skewX(-8deg) scale(.995);
  filter: blur(2px);
  transition:
    transform .72s cubic-bezier(.18,.9,.32,1),
    opacity .48s ease-out,
    filter .55s ease;
  transition-delay: var(--word-delay, 0ms);
  will-change: transform, opacity, filter;
}

/* Enter state (in-view): neutralize skew/blur and pop */
.ea-split.in .ea-word {
  opacity:1;
  transform: translateX(0) skewX(0deg) scale(1);
  filter: blur(0);
}

/* Exit state: slowly drift to right, fade and blur (longer timing) */
.ea-split.out .ea-word {
  opacity:0;
  transform: translateX(30px) skewX(6deg) scale(.995);
  filter: blur(3px);
  transition:
    transform 1.0s cubic-bezier(.2,.8,.25,1),
    opacity 1.0s ease,
    filter .9s ease;
}

/* Slightly tighter feel for paragraph mode */
.ea-split[data-mode="paragraph"] .ea-word {
  transition-duration: .5s .4s .45s; /* transform/opacity/filter */
}

/* Hover micro-interaction when visible */
.ea-split.in:hover .ea-word { transition-duration:.22s; transform: translateY(-1px) scale(1.01); }

/* Accessibility: reduce motion */
@media (prefers-reduced-motion: reduce) {
  .ea-split .ea-word { transition: none !important; transform: none !important; opacity: 1 !important; filter: none !important; }
}
</style>

<script>
(function(){
  const DEFAULT_STAGGER = 60; // ms per word

  // reduced motion: instantly reveal and do not do IntersectionObserver animations
  const reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;
  if (reduce) {
    document.addEventListener('DOMContentLoaded', () => {
      document.querySelectorAll('.ea-split').forEach(el => {
        if (el.dataset.eaSplitDone !== '1') {
          el.dataset.eaSplitDone = '1';
          // quick split but no transitions
          splitElementToWords(el, 0);
        }
        el.classList.add('in');
      });
    });
    return;
  }

  document.addEventListener('DOMContentLoaded', () => {
    const elems = Array.from(document.querySelectorAll('.ea-split'));
    elems.forEach(el => {
      if (el.dataset.eaSplitDone === '1') return;
      el.dataset.eaSplitDone = '1';
      const stagger = parseInt(el.getAttribute('data-stagger') || DEFAULT_STAGGER, 10);
      splitElementToWords(el, stagger);
      attachObserver(el, stagger);
    });
  });

  // Splits an element's text nodes into .ea-word spans while preserving inline tags.
  function splitElementToWords(el, stagger) {
    const nodes = Array.from(el.childNodes);
    el.innerHTML = ''; // rebuild
    let wordIndex = 0;

    nodes.forEach(node => {
      if (node.nodeType === Node.TEXT_NODE) {
        const parts = node.textContent.match(/\S+\s*/g) || [];
        parts.forEach(part => {
          const span = document.createElement('span');
          span.className = 'ea-word';
          span.style.setProperty('--word-delay', (wordIndex * stagger) + 'ms');
          span.textContent = part;
          el.appendChild(span);
          wordIndex++;
        });
      } else if (node.nodeType === Node.ELEMENT_NODE) {
        const clone = node.cloneNode(true);
        // recursively split text nodes inside this cloned element
        (function splitInner(subel) {
          Array.from(subel.childNodes).forEach(child => {
            if (child.nodeType === Node.TEXT_NODE) {
              const parts = child.textContent.match(/\S+\s*/g) || [];
              const frag = document.createDocumentFragment();
              parts.forEach(p => {
                const s = document.createElement('span');
                s.className = 'ea-word';
                s.style.setProperty('--word-delay', (wordIndex * stagger) + 'ms');
                s.textContent = p;
                frag.appendChild(s);
                wordIndex++;
              });
              child.replaceWith(frag);
            } else if (child.nodeType === Node.ELEMENT_NODE) {
              splitInner(child);
            }
          });
        })(clone);
        el.appendChild(clone);
      }
    });
  }

  // IntersectionObserver toggles .in/.out for enter + exit animations
  function attachObserver(el, stagger) {
    const io = new IntersectionObserver((entries) => {
      entries.forEach(entry => {
        if (entry.isIntersecting) {
          // on enter: remove out, add in
          el.classList.remove('out');
          // force reflow to ensure remove takes effect before add (helps with some browsers)
          void el.offsetWidth;
          el.classList.add('in');
        } else {
          // on exit: remove in, add out (slowly animate away)
          el.classList.remove('in');
          // give a short tick before adding out so transitions are smooth
          setTimeout(() => el.classList.add('out'), 20);
        }
      });
    }, {
      threshold: 0.18,
      rootMargin: '0px 0px -8% 0px'
    });

    io.observe(el);

    // optional: when user clicks into the element (keyboard focus), ensure it's visible
    el.addEventListener('focusin', () => { el.classList.remove('out'); el.classList.add('in'); });
  }
})();
</script>/* End custom CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Controller';
	font-style: normal;
	font-weight: normal;
	font-display: auto;
	src: url('https://fixraautoservices.com/wp-content/uploads/2025/11/fonnts.com-Controller-Ext-W03-Five-Oblique.ttf') format('truetype');
}
/* End Custom Fonts CSS */