Core Services

<script>   /*Source: https://github.com/Krzysztof-Antosik/Two-direction-Sticky-Sidebar*/      // Verificar el ancho de pantalla al cargar y redimensionar   function checkScreenWidth() {     if (window.innerWidth <= 767) {       // Si la pantalla es menor o igual a 676px, no ejecutar el código       return;     }      const stickyElement = document.querySelector('.fb-sidebar__aside');     const startPosition = stickyElement.getBoundingClientRect().top;      let endScroll = window.innerHeight - stickyElement.offsetHeight - 500;     let currPos = window.scrollY;     let screenHeight = window.innerHeight;     let stickyElementHeight = stickyElement.offsetHeight;     let topGap = 40;     let bottomGap = 40;      setTimeout(() => {       if (stickyElement.hasAttribute('data-top-gap')) {         const dataTopGap = stickyElement.getAttribute('data-top-gap');         topGap = dataTopGap === 'auto' ? startPosition : parseInt(dataTopGap);       }        if (stickyElement.hasAttribute('data-bottom-gap')) {         bottomGap = parseInt(stickyElement.getAttribute('data-bottom-gap'));       }     }, 100);      stickyElement.style.position = 'sticky';     stickyElement.style.top = `${topGap}px`;     stickyElement.style.height = 'fit-content';      function positionStickySidebar() {       endScroll = window.innerHeight - stickyElement.offsetHeight - bottomGap;       const stickyElementTop = parseInt(stickyElement.style.top.replace('px', ''));        if (stickyElementHeight + topGap + bottomGap > screenHeight) {         if (window.scrollY < currPos) {           if (stickyElementTop < topGap) {             stickyElement.style.top = `${stickyElementTop + currPos - window.scrollY}px`;           } else if (stickyElementTop >= topGap && stickyElementTop !== topGap) {             stickyElement.style.top = `${topGap}px`;           }         } else {           if (stickyElementTop > endScroll) {             stickyElement.style.top = `${stickyElementTop + currPos - window.scrollY}px`;           } else if (stickyElementTop < endScroll && stickyElementTop !== endScroll) {             stickyElement.style.top = `${endScroll}px`;           }         }       } else {         stickyElement.style.top = `${topGap}px`;       }       currPos = window.scrollY;     }      function stickyElementToMe() {       stickyElement.style.top = `${topGap}px`;     }      function updateSticky() {       screenHeight = window.innerHeight;       stickyElementHeight = stickyElement.offsetHeight;       positionStickySidebar();     }      setTimeout(() => {       window.addEventListener('resize', () => {         currPos = window.scrollY;         updateSticky();       });        document.addEventListener('scroll', updateSticky, {         capture: true,         passive: true       });     }, 1000);   }    // Verificar el ancho de pantalla al cargar y redimensionar   window.addEventListener('load', checkScreenWidth);   window.addEventListener('resize', checkScreenWidth); </script> 
Renaissance Personnel Group

November 13, 2025

Contact Us
if (!window.fbPopoverInitialized) {   window.fbPopoverInitialized = true;    document.addEventListener('DOMContentLoaded', function () {     var popovers = document.querySelectorAll('[fb-popover]');      popovers.forEach(function (popover) {       var toggle = popover.querySelector('[fb-popover-button]');       var accnElement = popover.querySelector('[fb-accn]');       var content = popover.querySelector('[fb-popover-content]');       var lastClosedTime = 0; // Almacenar el tiempo de cierre para cada popover       var minTimeBeforeReopen = 500; // 0.5 segundos en milisegundos       var openedWithKeyboard = false;        toggle.setAttribute('aria-label', accnElement.textContent || accnElement.innerText);       toggle.setAttribute('aria-controls', content.id);        toggle.addEventListener('keydown', function (event) {         if (['Enter', ' ', 'Spacebar'].includes(event.key)) {           openedWithKeyboard = true;         }       });        toggle.addEventListener('click', function () {         var currentTime = Date.now();         var elapsedTime = currentTime - lastClosedTime;          if (elapsedTime < minTimeBeforeReopen) {           return; // No se permite abrir el popover si no ha pasado el tiempo mínimo         }          var expanded = toggle.getAttribute('aria-expanded') === 'true';         toggle.setAttribute('aria-expanded', expanded ? 'false' : 'true');         if (expanded) {           content.classList.remove('fb-popover--open');           lastClosedTime = Date.now(); // Almacenar el tiempo de cierre al cerrar el popover         } else {           content.classList.add('fb-popover--open');           lastClosedTime = 0; // Resetear el tiempo de cierre al abrir el popover           setTimeout(function () {             if (openedWithKeyboard) {               focusFirstElementInContent();             }             document.addEventListener('mousedown', clickOutsideHandler); // Cambiado de `click` a `mousedown`             document.addEventListener('keydown', escapeKeyHandler);             document.addEventListener('focusin', focusInHandler);           }, 700); // Espera 0.7 segundos antes de enfocar el primer elemento         }       });        function focusFirstElementInContent() {         var focusableElement = content.querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');         if (focusableElement) {           focusableElement.focus();         }       }        function clickOutsideHandler(event) {         // Cerrar el popover si se hace clic fuera, independientemente de cómo se abrió         if (!popover.contains(event.target)) {           toggle.setAttribute('aria-expanded', 'false');           content.classList.remove('fb-popover--open');           lastClosedTime = Date.now(); // Almacenar el tiempo de cierre al hacer clic fuera del popover           document.removeEventListener('mousedown', clickOutsideHandler);           document.removeEventListener('keydown', escapeKeyHandler);           document.removeEventListener('focusin', focusInHandler);         }       }        function escapeKeyHandler(event) {         if (event.key === 'Escape' && toggle.getAttribute('aria-expanded') === 'true') {           toggle.setAttribute('aria-expanded', 'false');           content.classList.remove('fb-popover--open');           lastClosedTime = Date.now(); // Almacenar el tiempo de cierre al presionar Escape           document.removeEventListener('mousedown', clickOutsideHandler);           document.removeEventListener('keydown', escapeKeyHandler);           document.removeEventListener('focusin', focusInHandler);         }       }        function focusInHandler(event) {         if (!popover.contains(event.target)) { // Verifica que el foco no esté dentro del popover           toggle.setAttribute('aria-expanded', 'false');           content.classList.remove('fb-popover--open');           lastClosedTime = Date.now();           document.removeEventListener('mousedown', clickOutsideHandler);           document.removeEventListener('keydown', escapeKeyHandler);           document.removeEventListener('focusin', focusInHandler);         }       }        // Previene el cierre del popover si se hace clic dentro del contenido       content.addEventListener('mousedown', function(event) {         event.stopPropagation();       });     });   }); }