.elementor-52 .elementor-element.elementor-element-d42c0a1{--display:flex;--min-height:100vh;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--gap:20px 0px;--row-gap:20px;--column-gap:0px;--flex-wrap:wrap;--align-content:flex-start;--overlay-opacity:0.5;--padding-top:30px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;--z-index:5;}.elementor-52 .elementor-element.elementor-element-d42c0a1:not(.elementor-motion-effects-element-type-background), .elementor-52 .elementor-element.elementor-element-d42c0a1 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://jasmimflorescerterapeutico.com.br/wp-content/uploads/2026/03/Terapia-integrativa-scaled.avif");background-position:top center;background-repeat:no-repeat;background-size:cover;}.elementor-52 .elementor-element.elementor-element-d42c0a1::before, .elementor-52 .elementor-element.elementor-element-d42c0a1 > .elementor-background-video-container::before, .elementor-52 .elementor-element.elementor-element-d42c0a1 > .e-con-inner > .elementor-background-video-container::before, .elementor-52 .elementor-element.elementor-element-d42c0a1 > .elementor-background-slideshow::before, .elementor-52 .elementor-element.elementor-element-d42c0a1 > .e-con-inner > .elementor-background-slideshow::before, .elementor-52 .elementor-element.elementor-element-d42c0a1 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:#1A0E0E;--background-overlay:'';}.elementor-52 .elementor-element.elementor-element-469d451{--display:flex;--min-height:140px;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;--gap:0px 38px;--row-gap:0px;--column-gap:38px;--flex-wrap:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:16px;}.elementor-52 .elementor-element.elementor-element-469d451.e-con{--align-self:flex-start;}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-52 .elementor-element.elementor-element-18e4c6c{width:var( --container-widget-width, 75% );max-width:75%;--container-widget-width:75%;--container-widget-flex-grow:0;text-align:start;}.elementor-52 .elementor-element.elementor-element-18e4c6c.elementor-element{--flex-grow:0;--flex-shrink:0;}.elementor-52 .elementor-element.elementor-element-18e4c6c img{width:315px;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-52 .elementor-element.elementor-element-c4cd597{width:var( --container-widget-width, 68% );max-width:68%;padding:30px 0px 0px 0px;--container-widget-width:68%;--container-widget-flex-grow:0;text-align:start;}.elementor-52 .elementor-element.elementor-element-c4cd597 .elementor-heading-title{font-family:"Urbanist", Sans-serif;font-size:80px;font-weight:600;line-height:0.9em;color:#FFFFFF;}.elementor-52 .elementor-element.elementor-element-7483f50{width:var( --container-widget-width, 43% );max-width:43%;padding:30px 0px 0px 0px;--container-widget-width:43%;--container-widget-flex-grow:0;text-align:start;}.elementor-52 .elementor-element.elementor-element-7483f50.elementor-element{--align-self:flex-start;}.elementor-52 .elementor-element.elementor-element-7483f50 .elementor-heading-title{font-family:"Urbanist", Sans-serif;font-size:80px;font-weight:600;line-height:0.9em;color:#FFFFFF;}.elementor-52 .elementor-element.elementor-element-0c7cdb5{width:var( --container-widget-width, 49% );max-width:49%;--container-widget-width:49%;--container-widget-flex-grow:0;text-align:start;}.elementor-52 .elementor-element.elementor-element-0c7cdb5.elementor-element{--align-self:flex-start;}.elementor-52 .elementor-element.elementor-element-0c7cdb5 .elementor-heading-title{font-family:"Urbanist", Sans-serif;font-size:25px;font-weight:400;text-shadow:0px 0px 84px rgba(0, 0, 0, 0.56);color:#FFFFFF;}.elementor-widget-button .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-52 .elementor-element.elementor-element-9423887 .elementor-button{background-color:transparent;font-family:"Urbanist", Sans-serif;font-weight:500;letter-spacing:3.8px;background-image:radial-gradient(at center center, #ee7e5c 0%, #f2295b 100%);border-radius:500px 500px 500px 500px;padding:18px 30px 18px 30px;}.elementor-52 .elementor-element.elementor-element-9423887 .elementor-button:hover, .elementor-52 .elementor-element.elementor-element-9423887 .elementor-button:focus{background-color:transparent;background-image:linear-gradient(180deg, #927941 0%, #435328 100%);}.elementor-52 .elementor-element.elementor-element-9423887 .elementor-button-content-wrapper{flex-direction:row-reverse;}@media(max-width:1024px){.elementor-52 .elementor-element.elementor-element-d42c0a1{--min-height:100vh;--justify-content:center;--padding-top:0px;--padding-bottom:70px;--padding-left:0px;--padding-right:0px;}.elementor-52 .elementor-element.elementor-element-18e4c6c{width:var( --container-widget-width, 286px );max-width:286px;--container-widget-width:286px;--container-widget-flex-grow:0;}.elementor-52 .elementor-element.elementor-element-18e4c6c img{width:100%;}.elementor-52 .elementor-element.elementor-element-c4cd597 .elementor-heading-title{font-size:60px;}.elementor-52 .elementor-element.elementor-element-7483f50 .elementor-heading-title{font-size:50px;}.elementor-52 .elementor-element.elementor-element-0c7cdb5 .elementor-heading-title{font-size:20px;word-spacing:0.2em;}}@media(max-width:767px){.elementor-52 .elementor-element.elementor-element-d42c0a1:not(.elementor-motion-effects-element-type-background), .elementor-52 .elementor-element.elementor-element-d42c0a1 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://jasmimflorescerterapeutico.com.br/wp-content/uploads/2026/03/Terapia-integrativa-scaled.avif");background-position:-670px 0px;}.elementor-52 .elementor-element.elementor-element-d42c0a1{--content-width:90vw;--min-height:100vh;--gap:25px 0px;--row-gap:25px;--column-gap:0px;--overlay-opacity:0.52;--padding-top:12rem;--padding-bottom:0rem;--padding-left:0rem;--padding-right:0rem;}.elementor-52 .elementor-element.elementor-element-469d451{--gap:0px 10px;--row-gap:0px;--column-gap:10px;}.elementor-52 .elementor-element.elementor-element-18e4c6c{width:var( --container-widget-width, 100% );max-width:100%;--container-widget-width:100%;--container-widget-flex-grow:0;text-align:center;}.elementor-52 .elementor-element.elementor-element-18e4c6c.elementor-element{--align-self:center;}.elementor-52 .elementor-element.elementor-element-18e4c6c img{width:66%;}.elementor-52 .elementor-element.elementor-element-c4cd597{padding:0px 0px 0px 0px;text-align:center;}.elementor-52 .elementor-element.elementor-element-c4cd597.elementor-element{--align-self:center;}.elementor-52 .elementor-element.elementor-element-c4cd597 .elementor-heading-title{font-size:30px;}.elementor-52 .elementor-element.elementor-element-7483f50{padding:0px 0px 0px 0px;--container-widget-width:87%;--container-widget-flex-grow:0;width:var( --container-widget-width, 87% );max-width:87%;text-align:center;}.elementor-52 .elementor-element.elementor-element-7483f50.elementor-element{--align-self:center;}.elementor-52 .elementor-element.elementor-element-7483f50 .elementor-heading-title{font-size:30px;}.elementor-52 .elementor-element.elementor-element-0c7cdb5{width:var( --container-widget-width, 88% );max-width:88%;--container-widget-width:88%;--container-widget-flex-grow:0;text-align:center;}.elementor-52 .elementor-element.elementor-element-0c7cdb5.elementor-element{--align-self:center;}.elementor-52 .elementor-element.elementor-element-0c7cdb5 .elementor-heading-title{font-size:18px;}.elementor-52 .elementor-element.elementor-element-9423887.elementor-element{--align-self:center;}}@media(max-width:1024px) and (min-width:768px){.elementor-52 .elementor-element.elementor-element-d42c0a1{--content-width:90%;}}/* Start custom CSS for heading, class: .elementor-element-c4cd597 */<!--
Créditos do efeito:
Ciparoni
-->

<script src="https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/gsap.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/ScrollTrigger.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/SplitText.min.js"></script>

<script>
gsap.registerPlugin(ScrollTrigger, SplitText);

(function () {
  let splits = [];
  let masters = [];

  function destroyAll() {
    splits.forEach(s => { try { s.revert(); } catch(e){} });
    splits = [];
    masters.forEach(tl => { try { tl.kill(); } catch(e){} });
    masters = [];
    ScrollTrigger.getAll().forEach(st => st.kill());
    gsap.killTweensOf("*");
  }

  function build() {
    const containers = document.querySelectorAll('.container-titulos');

    containers.forEach(container => {
      container.style.opacity = "1";

      const frases = Array.from(
        container.querySelectorAll('.frases .elementor-heading-title')
      );

      const timelineMestre = gsap.timeline({
        scrollTrigger: {
          trigger: container,
          start: "top 10%",
          end: "bottom bottom",
          scrub: true,
        }
      });

      const duracaoAparecer = 1;  
      const duracaoSumir    = 1;
      const sobreposicao    = 0.05;

      frases.forEach((frase, index) => {
        frase.setAttribute("aria-label", frase.textContent);

        if (frase._split) { try { frase._split.revert(); } catch(e){} }

        const split = new SplitText(frase, {
          type: "words,chars",
          wordsClass: "word",
          charsClass: "char"
        });
        frase._split = split;
        splits.push(split);

        gsap.set(frase, { visibility: "visible" });
        void frase.offsetHeight;

        const timelineFrase = gsap.timeline();

        timelineFrase.from(split.chars, {
          autoAlpha: 0,
        //   filter: "blur(10px)",
          stagger: { amount: duracaoAparecer, from: "start" },
          duration: duracaoAparecer
        });

        if (index < frases.length - 1) {
          timelineFrase.to(split.chars, {
            autoAlpha: 0,
            // filter: "blur(10px)",
            stagger: { amount: duracaoSumir, from: "start" }, //mude para end, caso queira que suma de trás para frente
            duration: duracaoSumir
          });
        }

        timelineMestre.add(timelineFrase, index === 0 ? undefined : `-=${sobreposicao}`);
      });

      masters.push(timelineMestre);
    });

    requestAnimationFrame(() => ScrollTrigger.refresh());
  }

  function start() {
    requestAnimationFrame(() => requestAnimationFrame(build));
  }

  function initAfterFonts() {
    if (document.fonts && document.fonts.ready) {
      document.fonts.ready.then(start).catch(start);
    } else {
      start();
    }
  }

  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", initAfterFonts, { once: true });
  } else {
    initAfterFonts();
  }

  let lastW = window.innerWidth, lastH = window.innerHeight, to;
  window.addEventListener("resize", () => {
    const w = window.innerWidth, h = window.innerHeight;
    if (w !== lastW || Math.abs(h - lastH) > 80) {
      lastW = w; lastH = h;
      clearTimeout(to);
      to = setTimeout(() => { destroyAll(); initAfterFonts(); }, 120);
    }
  }, { passive: true });

})();
</script>

<style>
   
 .container-titulos {
    position: relative;
    width: 100%;
    height: 1000vh; /*controle a duração do scroll por aqui*/
    opacity: 0;
}

.container-sticky {
    position: sticky;
    top: 0;
    left: 0;
    height: 100vh;
}

.frases {
    text-wrap: balance; /*equilibra a quantidade de palavras por linha*/
}

.frases.oculto {
    visibility: hidden;
    position: absolute;
    
}


</style>/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-7483f50 */<!--
Créditos do efeito:
Ciparoni
-->

<script src="https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/gsap.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/ScrollTrigger.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/SplitText.min.js"></script>

<script>
gsap.registerPlugin(ScrollTrigger, SplitText);

(function () {
  let splits = [];
  let masters = [];

  function destroyAll() {
    splits.forEach(s => { try { s.revert(); } catch(e){} });
    splits = [];
    masters.forEach(tl => { try { tl.kill(); } catch(e){} });
    masters = [];
    ScrollTrigger.getAll().forEach(st => st.kill());
    gsap.killTweensOf("*");
  }

  function build() {
    const containers = document.querySelectorAll('.container-titulos');

    containers.forEach(container => {
      container.style.opacity = "1";

      const frases = Array.from(
        container.querySelectorAll('.frases .elementor-heading-title')
      );

      const timelineMestre = gsap.timeline({
        scrollTrigger: {
          trigger: container,
          start: "top 10%",
          end: "bottom bottom",
          scrub: true,
        }
      });

      const duracaoAparecer = 1;  
      const duracaoSumir    = 1;
      const sobreposicao    = 0.05;

      frases.forEach((frase, index) => {
        frase.setAttribute("aria-label", frase.textContent);

        if (frase._split) { try { frase._split.revert(); } catch(e){} }

        const split = new SplitText(frase, {
          type: "words,chars",
          wordsClass: "word",
          charsClass: "char"
        });
        frase._split = split;
        splits.push(split);

        gsap.set(frase, { visibility: "visible" });
        void frase.offsetHeight;

        const timelineFrase = gsap.timeline();

        timelineFrase.from(split.chars, {
          autoAlpha: 0,
        //   filter: "blur(10px)",
          stagger: { amount: duracaoAparecer, from: "start" },
          duration: duracaoAparecer
        });

        if (index < frases.length - 1) {
          timelineFrase.to(split.chars, {
            autoAlpha: 0,
            // filter: "blur(10px)",
            stagger: { amount: duracaoSumir, from: "start" }, //mude para end, caso queira que suma de trás para frente
            duration: duracaoSumir
          });
        }

        timelineMestre.add(timelineFrase, index === 0 ? undefined : `-=${sobreposicao}`);
      });

      masters.push(timelineMestre);
    });

    requestAnimationFrame(() => ScrollTrigger.refresh());
  }

  function start() {
    requestAnimationFrame(() => requestAnimationFrame(build));
  }

  function initAfterFonts() {
    if (document.fonts && document.fonts.ready) {
      document.fonts.ready.then(start).catch(start);
    } else {
      start();
    }
  }

  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", initAfterFonts, { once: true });
  } else {
    initAfterFonts();
  }

  let lastW = window.innerWidth, lastH = window.innerHeight, to;
  window.addEventListener("resize", () => {
    const w = window.innerWidth, h = window.innerHeight;
    if (w !== lastW || Math.abs(h - lastH) > 80) {
      lastW = w; lastH = h;
      clearTimeout(to);
      to = setTimeout(() => { destroyAll(); initAfterFonts(); }, 120);
    }
  }, { passive: true });

})();
</script>

<style>
   
 .container-titulos {
    position: relative;
    width: 100%;
    height: 1000vh; /*controle a duração do scroll por aqui*/
    opacity: 0;
}

.container-sticky {
    position: sticky;
    top: 0;
    left: 0;
    height: 100vh;
}

.frases {
    text-wrap: balance; /*equilibra a quantidade de palavras por linha*/
}

.frases.oculto {
    visibility: hidden;
    position: absolute;
    
}


</style>/* End custom CSS */