Ingeniería en Sistemas

Con su empleo de chofer costeó su carrera y se graduó como ingeniero en Sistemas

sistemas

Con su empleo de chofer costeó su carrera y se graduó como ingeniero en Sistemas

Ryan Morales aprovechaba las pausas entre recorridos para conectarse a clases y sus días libres para cumplir con la universidad, hasta alcanzar una meta que persiguió durante años

sistemas

Ryan fue acompañado por su madre, esposa e hijo durante la graduación oficial de la U Fidélitas del pasado mes de junio.

Durante los últimos años de su carrera, Ryan Morales combinó extensas jornadas como chofer con sus estudios en Ingeniería en Sistemas de Computación de Universidad Fidélitas.

Mientras realizaba giras por diferentes zonas del país y cumplía jornadas laborales que podían extenderse hasta 18 horas, aprovechaba sus pausas para conectarse a clases y reservaba sus días libres para completar tareas y proyectos.

Ese esfuerzo le permitió graduarse y cumplir una ansiada meta. 

“Nunca me rendí, siempre luché por seguir estudiando y fue un sueño para mí tener un título universitario toda mi vida”, dijo Morales.

Conocé su caso ejemplar.

Camino difícil

Antes de ingresar a la U, Ryan trabajó en bodegas y como chofer.

Fue en el 2019, que este hombre consiguió iniciar la carrera, aunque las dificultades económicas durante la pandemia lo obligaron a detenerla temporalmente.

En 2022 obtuvo su mejor empleo como conductor y pudo retomar la carrera.

Un año después, llegó una de las etapas más exigentes de su camino universitario, cuando su trabajo empezó a requerirle giras frecuentes por diferentes regiones del país.

Sus jornadas comenzaban alrededor de las 6 de la mañana y, dependiendo del recorrido, podía regresar a San José hasta las 11 de la noche.

El camino se empinó para Ryan, pero siguió adelante.

¿Podés estudiar una carrera universitaria mientras trabajás?

El caso de Morales ilustra una pregunta que seguro te has hecho.

En su experiencia, la respuesta estuvo en las modalidades de estudio con las que cuenta la U Fidélitas, ya que le permitieron conectarse a sus clases desde distintos lugares, incluso durante sus giras de trabajo.

En U Fidélitas las carreras se imparten en tres modalidades —Presencial, Virtual Sincrónica y Virtual Asincrónica— y toda la oferta académica de grado está aprobada por el Consejo Nacional de Enseñanza Superior Universitaria Privada (CONESUP).

“A la hora de mi clase me detenía para recibirla; le pasaba internet a mi computadora e incluso muchas veces en esas circunstancias tuve que exponer”, relató el ahora profesional en Ingeniería en Sistemas de Computación.

Los días libres de Ryan también estuvieron dedicados a la U.

Los sábados eran prácticamente su única oportunidad para avanzar con las obligaciones académicas y, en algunos cuatrimestres, consiguió concentrar los cursos ese día y recibirlos desde su casa.

Las exigencias laborales y académicas lo llevaron a pensar en abandonar la universidad más de una vez.

“Sentía que era imposible mantener las dos y pensaba: o renuncio al trabajo o al estudio. Pero sabía que, si renunciaba al trabajo, tenía que renunciar a los estudios por un tiempo otra vez y no quería. Mis mayores motivaciones para no rendirme eran mi familia, mi esposa, mi hijo y mi madre; no podía defraudarlos, ellos se lo merecían”, expresó.

sistemas de computación

Morales accedió a una entrevista con U Fidélitas, justo antes de iniciar el acto oficial de graduación, junio del 2026.

El mundo de los Sistemas de Computación

Además de cumplir su meta personal, para Ryan haber concluido la carrera marcó otro desafío: incorporarse al mercado laboral en el área de sistemas.

Para él, lo aprendido, durante la carrera de Ingeniería en Sistemas de Computación, amplió las posibilidades de optar por puestos que antes estaban fuera de su alcance.

«Valoro mucho el hecho de que puedo ver muchos puestos en áreas, a los que antes no habría podido aplicar, y ahora puedo hacerlo por mi formación», agregó.

Con el título universitario que persiguió durante años, Morales inició su nueva etapa con la mirada puesta en desarrollarse profesionalmente en el sector tecnológico del país.

Universidad Fidélitas

Formación de calidad
en Ingenierías

¡Matriculá ahora!

Noticias Relacionadas​

sistemas

Con su empleo de chofer costeó su carrera y se graduó como ingeniero en Sistemas

Ryan Morales aprovechaba las pausas entre recorridos para conectarse a clases y sus días libres para cumplir con la universidad,

…
colegio de abogados de Costa Rica

Nueva forma de evaluar en Derecho impulsará tu seguridad para aprobar el examen del Colegio de Abogados

La carrera de Derecho de Universidad Fidélitas avanza en el proceso de mejora continua para que llegués a la prueba

…
aprender ciberseguridad

¿Cómo aprendo ciberseguridad desde cero?

Cada semana aparecen noticias sobre ciberataques, fraudes digitales y filtraciones de datos. Si estos temas despiertan tu interés y te

…
/* ========================================= CONTENEDOR GENERAL ========================================= */ .uf-related-section { --uf-related-blue: #0719a5; --uf-related-yellow: #ffd522; --uf-related-light: #f5f7ff; position: relative; display: flex; flex-direction: column; align-items: stretch; width: 100%; max-width: 1180px; min-height: 0; height: auto; margin: clamp(24px, 4vw, 50px) auto 0; padding: clamp(22px, 3vw, 34px) clamp(16px, 2.5vw, 30px) clamp(26px, 3vw, 38px); gap: 18px; background: linear-gradient( 145deg, #f9faff 0%, #f2f5ff 100% ); border: 1px solid rgba(7, 25, 165, 0.1); border-radius: 20px; box-shadow: 0 10px 30px rgba(7, 25, 165, 0.07); overflow: hidden; } /* Línea institucional superior */ .uf-related-section::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient( 90deg, var(--uf-related-blue) 0%, var(--uf-related-blue) 76%, var(--uf-related-yellow) 76%, var(--uf-related-yellow) 100% ); } /* Decoración discreta */ .uf-related-section::after { content: ""; position: absolute; top: -65px; right: -65px; width: 165px; height: 165px; background: rgba(7, 25, 165, 0.035); border-radius: 50%; pointer-events: none; } /* ========================================= TÍTULO ========================================= */ .uf-related-section > .uf-related-heading { position: relative; z-index: 2; width: 100% !important; max-width: 100% !important; margin: 0 !important; padding: 0 0 14px !important; text-align: left !important; border-bottom: 1px solid rgba(7, 25, 165, 0.11); } .uf-related-section > .uf-related-heading .elementor-widget-container { margin: 0 !important; padding: 0 !important; } .uf-related-section > .uf-related-heading .elementor-heading-title { position: relative; display: inline-block; margin: 0 !important; padding: 0 0 10px !important; color: var(--uf-related-blue) !important; font-family: inherit; font-size: clamp(27px, 2.5vw, 36px) !important; font-weight: 800 !important; line-height: 1.1 !important; letter-spacing: -0.02em; text-align: left !important; } /* Línea amarilla bajo el título */ .uf-related-section > .uf-related-heading .elementor-heading-title::after { content: ""; position: absolute; bottom: 0; left: 0; width: 54px; height: 4px; background: var(--uf-related-yellow); border-radius: 999px; } /* ========================================= LOOP GRID ========================================= */ .uf-related-section > .uf-related-loop { position: relative; z-index: 2; width: 100% !important; max-width: 100% !important; min-height: 0 !important; height: auto !important; margin: 0 !important; padding: 0 !important; } .uf-related-section > .uf-related-loop > .elementor-widget-container { width: 100% !important; margin: 0 !important; padding: 0 !important; } .uf-related-section .elementor-loop-container { display: grid !important; grid-template-columns: repeat( auto-fit, minmax(min(100%, 300px), 370px) ) !important; justify-content: center !important; justify-items: stretch !important; align-items: stretch !important; width: 100% !important; margin: 0 auto !important; padding: 0 !important; gap: 20px !important; } /* ========================================= ELEMENTO DEL LOOP ========================================= */ .uf-related-section .e-loop-item { width: 100% !important; max-width: 370px !important; min-width: 0 !important; min-height: 0 !important; height: auto !important; margin: 0 auto !important; padding: 0 !important; } /* Elimina la altura mínima antigua de 450px */ .uf-related-section .e-loop-item .elementor-element-a46a173 { width: 100% !important; max-width: 370px !important; min-height: 0 !important; height: 100% !important; margin: 0 auto !important; padding: 0 !important; background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; } /* ========================================= TARJETA INTERIOR ========================================= */ .uf-related-section .e-loop-item .elementor-element-25eefe3 { display: flex !important; flex-direction: column !important; width: 100% !important; max-width: 370px !important; min-height: 0 !important; height: 100% !important; margin: 0 auto !important; padding: 10px !important; background: #ffffff !important; border: 1px solid rgba(7, 25, 165, 0.12) !important; border-radius: 16px !important; box-shadow: 0 8px 24px rgba(7, 25, 165, 0.09) !important; overflow: hidden !important; transition: transform 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease; } .uf-related-section .e-loop-item .elementor-element-25eefe3:hover { border-color: rgba(7, 25, 165, 0.2) !important; box-shadow: 0 12px 30px rgba(7, 25, 165, 0.13) !important; transform: translateY(-2px); } /* ========================================= IMAGEN ========================================= */ .uf-related-section .e-loop-item .elementor-widget-theme-post-featured-image { display: block !important; width: 100% !important; margin: 0 0 14px !important; padding: 0 !important; } .uf-related-section .e-loop-item .elementor-widget-theme-post-featured-image .elementor-widget-container { margin: 0 !important; padding: 0 !important; border-radius: 11px; overflow: hidden; } .uf-related-section .e-loop-item .elementor-widget-theme-post-featured-image img { display: block !important; width: 100% !important; max-width: 100% !important; height: 185px !important; object-fit: cover !important; object-position: center !important; border-radius: 11px !important; transition: transform 0.35s ease; } .uf-related-section .e-loop-item:hover .elementor-widget-theme-post-featured-image img { transform: scale(1.025); } /* ========================================= TÍTULO DE LA NOTICIA ========================================= */ .uf-related-section .e-loop-item .elementor-widget-theme-post-title { width: 100% !important; min-height: 0 !important; height: auto !important; margin: 0 0 11px !important; padding: 0 4px !important; overflow: visible !important; } .uf-related-section .e-loop-item .elementor-widget-theme-post-title .elementor-widget-container { margin: 0 !important; padding: 0 !important; } .uf-related-section .e-loop-item .elementor-widget-theme-post-title .elementor-heading-title { display: -webkit-box; margin: 0 !important; padding: 0 !important; color: var(--uf-related-blue) !important; font-size: 19px !important; font-weight: 800 !important; line-height: 1.18 !important; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden; } .uf-related-section .e-loop-item .elementor-widget-theme-post-title a { color: var(--uf-related-blue) !important; text-decoration: none !important; } /* ========================================= FECHA Y CATEGORÍA ========================================= */ .uf-related-section .e-loop-item .elementor-widget-post-info { width: 100% !important; margin: 0 0 11px !important; padding: 0 4px !important; } .uf-related-section .e-loop-item .elementor-widget-post-info .elementor-widget-container { margin: 0 !important; padding: 0 !important; } .uf-related-section .e-loop-item .elementor-widget-post-info .elementor-icon-list-items { display: flex !important; align-items: center !important; flex-wrap: wrap !important; margin: 0 !important; gap: 6px !important; } .uf-related-section .e-loop-item .elementor-widget-post-info .elementor-icon-list-item { min-height: 27px; margin: 0 !important; padding: 5px 9px !important; background: #f5f7ff; border: 1px solid rgba(7, 25, 165, 0.1); border-radius: 999px; } /* ========================================= EXTRACTO ========================================= */ .uf-related-section .e-loop-item .elementor-widget-theme-post-excerpt { width: 100% !important; margin: 0 0 14px !important; padding: 0 4px !important; } .uf-related-section .e-loop-item .elementor-widget-theme-post-excerpt .elementor-widget-container { margin: 0 !important; padding: 0 !important; color: var(--uf-related-blue) !important; font-size: 14px !important; line-height: 1.45 !important; } /* ========================================= BOTÓN ========================================= */ .uf-related-section .e-loop-item .elementor-widget-button { width: 100% !important; margin-top: auto !important; padding: 0 4px 3px !important; align-self: flex-start !important; } /* ========================================= OCULTAR ESPACIADOR ANTERIOR ========================================= */ .uf-related-spacer-hidden { display: none !important; height: 0 !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; } /* Evita que el contenedor original deje espacio */ .uf-related-original-empty { display: none !important; width: 0 !important; height: 0 !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; } /* ========================================= TABLETA ========================================= */ @media (max-width: 1024px) { .uf-related-section { margin-top: 30px; padding: 22px 18px 28px; border-radius: 17px; } .uf-related-section .elementor-loop-container { grid-template-columns: repeat( auto-fit, minmax(min(100%, 280px), 350px) ) !important; gap: 18px !important; } .uf-related-section .e-loop-item { max-width: 350px !important; } } /* ========================================= IGUALAR ANCHO CON EL CARRUSEL SUPERIOR ========================================= */ .uf-related-section { box-sizing: border-box !important; width: min(100%, 370px) !important; max-width: 370px !important; min-width: 0 !important; margin-left: auto !important; margin-right: auto !important; } /* El título respeta el mismo ancho */ .uf-related-section > .uf-related-heading { box-sizing: border-box !important; width: 100% !important; max-width: 100% !important; } /* Loop ocupa el interior disponible */ .uf-related-section > .uf-related-loop, .uf-related-section > .uf-related-loop > .elementor-widget-container, .uf-related-section .elementor-loop-container { box-sizing: border-box !important; width: 100% !important; max-width: 100% !important; } /* Una tarjeta por fila */ .uf-related-section .elementor-loop-container { grid-template-columns: minmax(0, 1fr) !important; } /* Tarjeta alineada al ancho interior */ .uf-related-section .e-loop-item, .uf-related-section .e-loop-item .elementor-element-a46a173, .uf-related-section .e-loop-item .elementor-element-25eefe3 { box-sizing: border-box !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; margin-left: auto !important; margin-right: auto !important; } /* ========================================= TABLETA ========================================= */ @media (max-width: 1024px) { .uf-related-section { width: min(100%, 350px) !important; max-width: 350px !important; } } /* ========================================= CELULAR ========================================= */ @media (max-width: 767px) { .uf-related-section { width: calc(100% - 24px) !important; max-width: 340px !important; margin: 22px auto 0 !important; /* * Padding compacto para que la tarjeta * interior no quede demasiado angosta. */ padding: 18px 12px 22px !important; } .uf-related-section > .uf-related-heading { padding-left: 4px !important; padding-right: 4px !important; } } /* ========================================= CELULAR ========================================= */ @media (max-width: 767px) { .uf-related-section { width: calc(100% - 24px); margin: 22px auto 0; padding: 18px 13px 22px; gap: 15px; border-radius: 14px; } .uf-related-section > .uf-related-heading { padding-bottom: 12px !important; } .uf-related-section > .uf-related-heading .elementor-heading-title { font-size: clamp(25px, 8vw, 31px) !important; line-height: 1.12 !important; } .uf-related-section .elementor-loop-container { grid-template-columns: minmax(0, 1fr) !important; gap: 16px !important; } .uf-related-section .e-loop-item, .uf-related-section .e-loop-item .elementor-element-a46a173, .uf-related-section .e-loop-item .elementor-element-25eefe3 { width: 100% !important; max-width: 100% !important; } .uf-related-section .e-loop-item .elementor-element-25eefe3 { padding: 9px !important; border-radius: 14px !important; } .uf-related-section .e-loop-item .elementor-widget-theme-post-featured-image img { height: 175px !important; border-radius: 10px !important; } .uf-related-section .e-loop-item .elementor-widget-theme-post-title .elementor-heading-title { font-size: 18px !important; } .uf-related-section .e-loop-item:hover .elementor-widget-theme-post-featured-image img, .uf-related-section .e-loop-item .elementor-element-25eefe3:hover { transform: none; } } (function () { "use strict"; /* * Evita ejecutar el bloque más de una vez. */ if ( document.documentElement.dataset .ufRelatedInitialized === "true" ) { return; } document.documentElement.dataset .ufRelatedInitialized = "true"; /* * Normaliza texto para reconocer el título * aunque incluya espacios invisibles. */ function normalizeText(text) { return String(text || "") .replace(/\u200B/g, "") .replace(/\u00A0/g, " ") .replace(/\s+/g, " ") .trim() .toLowerCase(); } /* * Busca específicamente el encabezado * "Noticias Relacionadas". */ function findRelatedHeading() { const headings = Array.from( document.querySelectorAll( ".elementor-widget-heading" ) ); return headings.find(function (widget) { const title = widget.querySelector( ".elementor-heading-title" ); if (!title) { return false; } return normalizeText(title.textContent) .includes("noticias relacionadas"); }) || null; } /* * Busca el Loop Grid asociado al título. */ function findRelatedLoop(headingWidget) { if (!headingWidget) { return null; } /* * Primer intento: siguiente hermano. */ let sibling = headingWidget.nextElementSibling; while (sibling) { if ( sibling.classList.contains( "elementor-widget-loop-grid" ) ) { return sibling; } /* * Se detiene si encuentra otro título. */ if ( sibling.classList.contains( "elementor-widget-heading" ) ) { break; } sibling = sibling.nextElementSibling; } /* * Segundo intento: buscar dentro * del mismo contenedor padre. */ const parent = headingWidget.parentElement; if (parent) { return parent.querySelector( ".elementor-widget-loop-grid" ); } return null; } /* * Organiza la sección completa. */ function buildRelatedSection() { const headingWidget = findRelatedHeading(); if (!headingWidget) { return false; } const loopWidget = findRelatedLoop(headingWidget); if (!loopWidget) { return false; } /* * Evita crear dos veces la sección. */ if ( headingWidget.closest( ".uf-related-section" ) ) { return true; } const originalParent = headingWidget.parentElement; if (!originalParent) { return false; } /* * Detecta y oculta un espaciador que * aparezca justo antes del título. */ const previousElement = headingWidget.previousElementSibling; if ( previousElement && previousElement.classList.contains( "elementor-widget-spacer" ) ) { previousElement.classList.add( "uf-related-spacer-hidden" ); } /* * Crea el nuevo contenedor visual. */ const section = document.createElement("section"); section.className = "uf-related-section"; section.setAttribute( "aria-label", "Noticias relacionadas" ); /* * Inserta la sección donde estaba * originalmente el título. */ originalParent.insertBefore( section, headingWidget ); headingWidget.classList.add( "uf-related-heading" ); loopWidget.classList.add( "uf-related-loop" ); /* * Mueve título y loop dentro * del nuevo contenedor. */ section.appendChild( headingWidget ); section.appendChild( loopWidget ); /* * Si el contenedor original quedó vacío, * elimina cualquier espacio restante. */ const remainingWidgets = originalParent.querySelectorAll( ":scope > .elementor-widget:not(" + ".uf-related-spacer-hidden)" ); const remainingContainers = originalParent.querySelectorAll( ":scope > .e-con" ); if ( remainingWidgets.length === 0 && remainingContainers.length === 0 ) { originalParent.classList.add( "uf-related-original-empty" ); } return true; } /* * Ejecuta cuando Elementor y el DOM * ya estén disponibles. */ function initializeRelatedSection() { if (buildRelatedSection()) { return; } /* * Reintenta brevemente por si Elementor * carga el Loop Grid de forma tardía. */ let attempts = 0; const timer = window.setInterval( function () { attempts += 1; if ( buildRelatedSection() || attempts >= 20 ) { window.clearInterval(timer); } }, 250 ); } if (document.readyState === "loading") { document.addEventListener( "DOMContentLoaded", initializeRelatedSection, { once: true } ); } else { initializeRelatedSection(); } })();
/* ========================================= VARIABLES ========================================= */ .uf-blog-scope, #uf-post-tags { --uf-blue: #0719a5; --uf-yellow: #ffd522; --uf-light: #f6f7ff; --uf-border: rgba(7, 25, 165, 0.12); } /* ========================================= CONTENEDOR PRINCIPAL ========================================= */ .uf-blog-scope { width: 100%; } /* Primera sección: título, tags, fecha e información */ .uf-blog-scope > .e-con-boxed:first-child { min-height: 0 !important; height: auto !important; margin: 0 !important; padding-top: clamp(16px, 2vw, 28px) !important; padding-bottom: 8px !important; } .uf-blog-scope > .e-con-boxed:first-child > .e-con-inner { min-height: 0 !important; height: auto !important; margin-top: 0 !important; margin-bottom: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important; gap: 0 !important; } /* ========================================= 1. TÍTULO ========================================= */ .uf-blog-scope .elementor-widget-theme-post-title { width: 100% !important; max-width: 100% !important; margin: 0 0 12px !important; padding: 0 !important; } .uf-blog-scope .elementor-widget-theme-post-title .elementor-widget-container { margin: 0 !important; padding: 0 !important; } .uf-blog-scope .elementor-widget-theme-post-title .elementor-heading-title { max-width: 1050px; margin: 0 !important; padding: 0 !important; color: var(--uf-blue); font-size: clamp(28px, 3vw, 42px) !important; font-weight: 800 !important; line-height: 1.12 !important; letter-spacing: -0.02em; } /* ========================================= 2. ETIQUETAS ========================================= */ #uf-post-tags { display: none; position: relative; width: fit-content; max-width: 100%; margin: 0 0 12px; padding: 9px 12px 9px 15px; align-items: center; flex-wrap: wrap; gap: 8px; background: linear-gradient( 135deg, #ffffff 0%, var(--uf-light) 100% ); border: 1px solid var(--uf-border); border-radius: 11px; box-shadow: 0 4px 13px rgba(7, 25, 165, 0.06); font-family: inherit; } #uf-post-tags.has-tags { display: flex; } #uf-post-tags::before { content: ""; position: absolute; top: 8px; bottom: 8px; left: 0; width: 3px; background: var(--uf-yellow); border-radius: 0 4px 4px 0; } #uf-post-tags .uf-post-tags__label { display: inline-flex; align-items: center; gap: 6px; color: var(--uf-blue); font-size: 12px; font-weight: 800; line-height: 1; } #uf-post-tags .uf-post-tags__label::before { content: ""; width: 6px; height: 6px; background: var(--uf-yellow); border-radius: 50%; box-shadow: 0 0 0 3px rgba(255, 213, 34, 0.16); } #uf-post-tags .uf-post-tags__list { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; } #uf-post-tags .uf-post-tag { display: inline-flex; align-items: center; justify-content: center; min-height: 28px; padding: 5px 10px; color: var(--uf-blue); background: #ffffff; border: 1px solid rgba(7, 25, 165, 0.15); border-radius: 8px; font-size: 12px; font-weight: 650; line-height: 1.2; text-decoration: none; transition: color 0.18s ease, background-color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease; } #uf-post-tags .uf-post-tag::before { content: "#"; margin-right: 4px; color: var(--uf-blue); font-weight: 800; } #uf-post-tags .uf-post-tag:hover, #uf-post-tags .uf-post-tag:focus-visible { color: #ffffff; background: var(--uf-blue); border-color: var(--uf-blue); box-shadow: 0 5px 12px rgba(7, 25, 165, 0.15); transform: translateY(-1px); outline: none; } #uf-post-tags .uf-post-tag:hover::before, #uf-post-tags .uf-post-tag:focus-visible::before { color: var(--uf-yellow); } /* ========================================= 3. FECHA ========================================= */ .uf-blog-scope .elementor-widget-post-info:has( [itemprop="datePublished"] ) { width: fit-content !important; max-width: 100% !important; margin: 0 0 16px !important; padding: 0 !important; align-self: flex-start !important; } .uf-blog-scope .elementor-widget-post-info:has( [itemprop="datePublished"] ) .elementor-widget-container, .uf-blog-scope .elementor-widget-post-info:has( [itemprop="datePublished"] ) .elementor-icon-list-items { margin: 0 !important; padding: 0 !important; } .uf-blog-scope .elementor-widget-post-info:has( [itemprop="datePublished"] ) .elementor-icon-list-item { min-height: 37px; margin: 0 !important; padding: 8px 13px !important; background: #ffffff; border: 1px solid var(--uf-border); border-left: 3px solid var(--uf-yellow); border-radius: 9px; box-shadow: 0 4px 12px rgba(7, 25, 165, 0.07); } .uf-blog-scope .elementor-widget-post-info:has( [itemprop="datePublished"] ) .elementor-icon-list-item a { color: var(--uf-blue) !important; text-decoration: none; } .uf-blog-scope .elementor-widget-post-info:has( [itemprop="datePublished"] ) .elementor-icon-list-icon svg { fill: var(--uf-blue) !important; } /* ========================================= 4. INFORMACIÓN OPCIONAL ========================================= */ /* Columna que contiene información y autor */ .uf-blog-scope .uf-information-column { min-height: 0 !important; height: auto !important; margin: 0 !important; padding: 0 !important; gap: 12px !important; justify-content: flex-start !important; align-items: flex-start !important; } /* Cuadro informativo válido */ .uf-blog-scope .uf-information-card { display: block !important; width: 100% !important; max-width: 100% !important; min-height: 0 !important; height: auto !important; margin: 0 !important; padding: clamp(13px, 1.5vw, 18px) !important; color: var(--uf-blue); background: linear-gradient( 135deg, #ffffff 0%, #f7f8ff 100% ); border: 1px solid rgba(7, 25, 165, 0.1); border-radius: 12px; box-shadow: 0 4px 14px rgba(7, 25, 165, 0.05); } .uf-blog-scope .uf-information-card .elementor-widget-container { margin: 0 !important; padding: 0 !important; } .uf-blog-scope .uf-information-card p { margin-top: 0 !important; margin-bottom: 0 !important; line-height: 1.48; } /* Widget de texto completamente vacío */ .uf-blog-scope .uf-information-empty { display: none !important; width: 0 !important; height: 0 !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; } /* Si solo existe un cuadro */ .uf-blog-scope .uf-information-column.uf-information-count-1 .uf-information-card { max-width: 100% !important; } /* Si existen dos cuadros */ .uf-blog-scope .uf-information-column.uf-information-count-2 { gap: 12px !important; } /* Si no existe ningún cuadro */ .uf-blog-scope .uf-information-column.uf-information-count-0 { gap: 0 !important; } /* ========================================= 5. AUTOR ========================================= */ .uf-blog-scope .elementor-widget-post-info:has( [itemprop="author"] ) { width: fit-content !important; max-width: 100% !important; margin: 2px 0 8px !important; padding: 0 !important; align-self: flex-start !important; } .uf-blog-scope .elementor-widget-post-info:has( [itemprop="author"] ) .elementor-widget-container, .uf-blog-scope .elementor-widget-post-info:has( [itemprop="author"] ) .elementor-icon-list-items { margin: 0 !important; padding: 0 !important; } .uf-blog-scope .elementor-widget-post-info:has( [itemprop="author"] ) .elementor-icon-list-item { min-height: 38px; margin: 0 !important; padding: 8px 13px !important; background: #ffffff; border: 1px solid var(--uf-border); border-radius: 9px; box-shadow: 0 4px 12px rgba(7, 25, 165, 0.06); } .uf-blog-scope .elementor-widget-post-info:has( [itemprop="author"] ) .elementor-icon-list-item a { color: var(--uf-blue) !important; text-decoration: none; } .uf-blog-scope .elementor-widget-post-info:has( [itemprop="author"] ) .elementor-icon-list-icon svg { fill: var(--uf-blue) !important; } /* ========================================= REDUCIR ESPACIO DESPUÉS DEL AUTOR ========================================= */ /* * Contenedor horizontal donde están los * cuadros informativos y el autor. */ .uf-blog-scope .uf-information-row { box-sizing: border-box !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; min-height: 0 !important; height: auto !important; margin-top: 0 !important; margin-bottom: 10px !important; padding-top: 0 !important; padding-bottom: 0 !important; align-items: flex-start !important; flex-direction: row !important; flex-wrap: nowrap !important; overflow: visible !important; } /* Evita que una columna obligue a la fila a salir de la pantalla. */ .uf-blog-scope .uf-information-row > .e-con { box-sizing: border-box !important; min-width: 0 !important; max-width: 100% !important; } /* * Contenedor que aparece inmediatamente * después de la información y el autor. */ .uf-blog-scope .uf-after-information { min-height: 0 !important; height: auto !important; margin-top: 0 !important; margin-bottom: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important; justify-content: flex-start !important; } /* ========================================= SECCIONES SIGUIENTES Y CARRUSEL ========================================= */ /* ========================================= MEDIOS NUEVOS DENTRO DEL ARTÍCULO ========================================= */ /* * Esta clase se asigna automáticamente por JavaScript al * contenedor principal del artículo. No incluye la imagen * destacada, el autor, los banners ni las notas relacionadas. */ .uf-blog-scope .uf-post-content { --uf-media-radius: 16px; --uf-media-border: rgba(7, 25, 165, 0.13); --uf-media-shadow: 0 8px 24px rgba(7, 25, 165, 0.12); } /* * Se decora el medio real, nunca el contenedor completo. * Así se respetan el ancho, alto, alineación y cantidad de * columnas que cada persona configure en Elementor. */ .uf-blog-scope .uf-post-content > .elementor-widget-image img, .uf-blog-scope .uf-post-content > .elementor-widget-video .elementor-wrapper, .uf-blog-scope .uf-post-content > .elementor-widget-image-carousel .elementor-image-carousel-wrapper, .uf-blog-scope .uf-post-content > .elementor-widget-media-carousel .elementor-main-swiper, .uf-blog-scope .uf-post-content > .elementor-widget-loop-carousel .swiper, .uf-blog-scope .uf-post-content > .elementor-widget-gallery .e-gallery-container { box-sizing: border-box !important; max-width: 100% !important; border: 1px solid var(--uf-media-border) !important; border-radius: var(--uf-media-radius) !important; box-shadow: var(--uf-media-shadow) !important; overflow: hidden !important; isolation: isolate; } /* * Los elementos internos siguen el redondeado, pero no reciben * ancho ni alto forzado. */ .uf-blog-scope .uf-post-content > .elementor-widget-video iframe, .uf-blog-scope .uf-post-content > .elementor-widget-video video, .uf-blog-scope .uf-post-content > .elementor-widget-image-carousel img, .uf-blog-scope .uf-post-content > .elementor-widget-media-carousel img, .uf-blog-scope .uf-post-content > .elementor-widget-loop-carousel img, .uf-blog-scope .uf-post-content > .elementor-widget-gallery img { max-width: 100% !important; border-radius: inherit !important; } /* * Medios insertados desde el editor de texto o Gutenberg: * imágenes, videos, galerías y enlaces incrustados. */ .uf-blog-scope .uf-post-content .elementor-widget-text-editor figure.wp-block-image, .uf-blog-scope .uf-post-content .elementor-widget-text-editor figure.wp-block-video, .uf-blog-scope .uf-post-content .elementor-widget-text-editor figure.wp-block-embed, .uf-blog-scope .uf-post-content .elementor-widget-text-editor .wp-block-gallery, .uf-blog-scope .uf-post-content .elementor-widget-text-editor > .elementor-widget-container > img, .uf-blog-scope .uf-post-content .elementor-widget-text-editor > .elementor-widget-container > video, .uf-blog-scope .uf-post-content .elementor-widget-text-editor > .elementor-widget-container > iframe { box-sizing: border-box !important; max-width: 100% !important; border: 1px solid var(--uf-media-border) !important; border-radius: var(--uf-media-radius) !important; box-shadow: var(--uf-media-shadow) !important; overflow: hidden !important; } .uf-blog-scope .uf-post-content .elementor-widget-text-editor figure.wp-block-image img, .uf-blog-scope .uf-post-content .elementor-widget-text-editor figure.wp-block-video video, .uf-blog-scope .uf-post-content .elementor-widget-text-editor figure.wp-block-embed iframe { display: block !important; max-width: 100% !important; border: 0 !important; border-radius: inherit !important; } @media (max-width: 767px) { .uf-blog-scope .uf-post-content { --uf-media-radius: 12px; --uf-media-shadow: 0 6px 18px rgba(7, 25, 165, 0.11); } } /* * Elimina la separación grande entre la * primera sección y el contenido siguiente. */ .uf-blog-scope > .e-con-boxed + .e-con-boxed { min-height: 0 !important; height: auto !important; margin-top: 0 !important; padding-top: clamp(12px, 1.8vw, 22px) !important; } /* Interior de la siguiente sección */ .uf-blog-scope > .e-con-boxed + .e-con-boxed > .e-con-inner { min-height: 0 !important; height: auto !important; margin-top: 0 !important; padding-top: 0 !important; } /* Contenedor que incorpora texto y carrusel */ .uf-blog-scope .e-con:has(.elementor-widget-loop-carousel), .uf-blog-scope .e-con:has(.elementor-widget-loop-grid), .uf-blog-scope .e-con:has([id*="carousel"]), .uf-blog-scope .e-con:has([class*="carousel"]) { min-height: 0 !important; height: auto !important; margin-top: 0 !important; padding-top: 0 !important; justify-content: flex-start !important; align-items: flex-start !important; } /* Widget del carrusel */ .uf-blog-scope .elementor-widget-loop-carousel, .uf-blog-scope .elementor-widget-loop-grid { margin-top: 0 !important; margin-bottom: 0 !important; } /* Reduce el margen del texto anterior al carrusel */ .uf-blog-scope .elementor-widget-text-editor + .elementor-widget-loop-carousel, .uf-blog-scope .elementor-widget-text-editor + .elementor-widget-loop-grid { margin-top: 12px !important; } /* Párrafos sin márgenes vacíos */ .uf-blog-scope .elementor-widget-text-editor .elementor-widget-container > p:first-child { margin-top: 0 !important; } .uf-blog-scope .elementor-widget-text-editor .elementor-widget-container > p:last-child { margin-bottom: 0 !important; } /* Evita centrados verticales que generan espacios */ .uf-blog-scope .e-con:has(> .elementor-widget-text-editor) { min-height: 0 !important; height: auto !important; justify-content: flex-start !important; } /* ========================================= OCULTAR ELEMENTOS ANTIGUOS ========================================= */ article.post-single-page > .wd-single-post-header { display: none !important; height: 0 !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; overflow: hidden !important; } article.post-single-page .wd-single-footer .wd-tags-list, article.post-single-page .entry-footer .tags-links, article.post-single-page .post-tags, .single-post .wd-single-footer .wd-tags-list, .single-post .entry-footer .tags-links { display: none !important; visibility: hidden !important; width: 0 !important; height: 0 !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; overflow: hidden !important; } /* * En el editor, todos los cuadros informativos permanecen * visibles aunque Elementor les genere identificadores nuevos. * En la página publicada, los cuadros vacíos se siguen ocultando. */ body.elementor-editor-active .uf-blog-scope .uf-information-column > .elementor-widget-text-editor, body.elementor-editor-preview .uf-blog-scope .uf-information-column > .elementor-widget-text-editor, body.elementor-editor-active .uf-blog-scope .uf-information-empty, body.elementor-editor-preview .uf-blog-scope .uf-information-empty { display: block !important; visibility: visible !important; opacity: 1 !important; width: 100% !important; max-width: 100% !important; height: auto !important; min-height: 45px !important; margin: 0 !important; padding: 14px !important; overflow: visible !important; } /* ========================================= TABLETA ========================================= */ @media (max-width: 1024px) { .uf-blog-scope > .e-con-boxed:first-child { padding-top: 18px !important; padding-bottom: 7px !important; } .uf-blog-scope .elementor-widget-theme-post-title { margin-bottom: 10px !important; } #uf-post-tags { margin-bottom: 11px; } .uf-blog-scope .elementor-widget-post-info:has( [itemprop="datePublished"] ) { margin-bottom: 15px !important; } .uf-blog-scope .uf-information-row { margin-bottom: 8px !important; } .uf-blog-scope > .e-con-boxed + .e-con-boxed { padding-top: 14px !important; } } /* ========================================= CELULAR ========================================= */ @media (max-width: 767px) { .uf-blog-scope > .e-con-boxed:first-child { padding-top: 13px !important; padding-bottom: 5px !important; } .uf-blog-scope .elementor-widget-theme-post-title { margin-bottom: 8px !important; } .uf-blog-scope .elementor-widget-theme-post-title .elementor-heading-title { font-size: clamp(23px, 7vw, 30px) !important; line-height: 1.15 !important; } #uf-post-tags { width: 100%; margin-bottom: 9px; padding: 9px 10px 9px 14px; } #uf-post-tags .uf-post-tags__label { width: 100%; } #uf-post-tags .uf-post-tags__list { width: 100%; } #uf-post-tags .uf-post-tag { min-height: 27px; padding: 5px 8px; font-size: 11px; } .uf-blog-scope .elementor-widget-post-info:has( [itemprop="datePublished"] ) { margin-bottom: 12px !important; } .uf-blog-scope .uf-information-column { gap: 9px !important; } .uf-blog-scope .uf-information-card { padding: 12px !important; border-radius: 10px; } .uf-blog-scope .elementor-widget-post-info:has( [itemprop="author"] ) { margin-top: 1px !important; margin-bottom: 5px !important; } .uf-blog-scope .uf-information-row { margin-bottom: 6px !important; } .uf-blog-scope > .e-con-boxed + .e-con-boxed { padding-top: 10px !important; } } /* ========================================= ALINEAR IMAGEN DESTACADA Y SU TEXTO ========================================= */ .uf-featured-stack { display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: flex-start !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; min-height: 0 !important; height: auto !important; margin: 0 !important; padding: 0 !important; gap: 10px !important; } .uf-featured-stack > .elementor-widget-theme-post-featured-image, .uf-featured-stack > .elementor-widget-theme-post-featured-image .elementor-widget-container, .uf-featured-stack > .uf-featured-caption { width: 100% !important; max-width: 560px !important; min-width: 0 !important; margin-left: auto !important; margin-right: auto !important; } .uf-featured-stack > .elementor-widget-theme-post-featured-image { display: block !important; margin-top: 0 !important; margin-bottom: 0 !important; padding: 0 !important; align-self: center !important; } .uf-featured-stack > .elementor-widget-theme-post-featured-image .elementor-widget-container { display: block !important; padding: 0 !important; } .uf-featured-stack > .elementor-widget-theme-post-featured-image img { display: block !important; width: 100% !important; max-width: 100% !important; height: auto !important; margin: 0 !important; object-fit: cover; object-position: center; border-radius: 14px; } .uf-featured-stack > .uf-featured-caption { display: block !important; position: static !important; float: none !important; clear: both !important; min-height: 0 !important; height: auto !important; margin-top: 0 !important; margin-bottom: 0 !important; padding: 0 2px !important; align-self: center !important; transform: none !important; text-align: left !important; } .uf-featured-stack > .uf-featured-caption .elementor-widget-container { width: 100% !important; margin: 0 !important; padding: 0 !important; text-align: left !important; } .uf-featured-stack > .uf-featured-caption p { width: 100% !important; max-width: 100% !important; margin: 0 !important; padding: 0 !important; color: #252938; font-size: clamp(14px, 1.2vw, 16px) !important; font-weight: 500; line-height: 1.5 !important; text-align: left !important; white-space: normal !important; word-break: normal !important; overflow-wrap: anywhere; } .uf-featured-stack > .uf-featured-caption p:empty { display: none !important; } /* ========================================= MISMO ANCHO: CARRUSEL Y RELACIONADAS ========================================= */ .uf-related-section { box-sizing: border-box !important; width: min(100%, 370px) !important; max-width: 370px !important; min-width: 0 !important; margin-left: auto !important; margin-right: auto !important; } .uf-related-section > .uf-related-heading, .uf-related-section > .uf-related-loop, .uf-related-section > .uf-related-loop > .elementor-widget-container, .uf-related-section .elementor-loop-container, .uf-related-section .e-loop-item, .uf-related-section .e-loop-item .elementor-element-a46a173, .uf-related-section .e-loop-item .elementor-element-25eefe3 { box-sizing: border-box !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; } .uf-related-section .elementor-loop-container { grid-template-columns: minmax(0, 1fr) !important; } @media (max-width: 1024px) { .uf-related-section { width: min(100%, 350px) !important; max-width: 350px !important; } .uf-featured-stack > .elementor-widget-theme-post-featured-image, .uf-featured-stack > .elementor-widget-theme-post-featured-image .elementor-widget-container, .uf-featured-stack > .uf-featured-caption { max-width: 520px !important; } } /* * En pantallas pequeñas la imagen permanece siempre al lado. * Ambas columnas reducen su ancho sin cambiar de posición. */ @media (max-width: 1024px) { .uf-blog-scope .uf-information-row { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; align-items: flex-start !important; gap: clamp(10px, 2vw, 20px) !important; } .uf-blog-scope .uf-information-column { width: auto !important; max-width: none !important; min-width: 0 !important; flex: 1 1 52% !important; align-self: flex-start !important; } .uf-blog-scope .uf-featured-stack { width: auto !important; max-width: none !important; min-width: 0 !important; flex: 1 1 48% !important; align-self: flex-start !important; } .uf-featured-stack > .elementor-widget-theme-post-featured-image, .uf-featured-stack > .elementor-widget-theme-post-featured-image .elementor-widget-container, .uf-featured-stack > .uf-featured-caption { width: 100% !important; max-width: 100% !important; margin-left: auto !important; margin-right: auto !important; } .uf-featured-stack > .elementor-widget-theme-post-featured-image img { width: 100% !important; max-width: 100% !important; height: auto !important; } .uf-featured-stack > .uf-featured-caption p { font-size: clamp(11px, 1.7vw, 14px) !important; line-height: 1.35 !important; white-space: normal !important; overflow-wrap: anywhere !important; } } @media (max-width: 767px) { .uf-related-section { width: calc(100% - 24px) !important; max-width: 340px !important; margin: 22px auto 0 !important; padding: 18px 12px 22px !important; } .uf-featured-stack { gap: 8px !important; } .uf-featured-stack > .elementor-widget-theme-post-featured-image, .uf-featured-stack > .elementor-widget-theme-post-featured-image .elementor-widget-container, .uf-featured-stack > .uf-featured-caption { width: 100% !important; max-width: 100% !important; } .uf-featured-stack > .uf-featured-caption { padding: 0 1px !important; } .uf-featured-stack > .uf-featured-caption p { font-size: 14px !important; line-height: 1.45 !important; } } /* ========================================= CAJA DE AUTOR CON FOTO — NUEVO WIDGET ========================================= */ .uf-blog-scope .uf-author-card { width: fit-content !important; max-width: 100% !important; margin: 2px 0 8px !important; padding: 0 !important; align-self: flex-start !important; } .uf-blog-scope .uf-author-card > .elementor-widget-container { display: inline-flex !important; align-items: center !important; width: auto !important; max-width: 100% !important; margin: 0 !important; padding: 10px 17px !important; background: #fff !important; border: 1px solid #e0e4f2 !important; border-radius: 8px !important; box-shadow: 0 3px 12px rgba(7, 25, 165, .08) !important; transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease; } .uf-blog-scope .uf-author-card .elementor-author-box { display: flex !important; flex-direction: row !important; align-items: center !important; justify-content: flex-start !important; gap: 10px !important; width: auto !important; max-width: 100% !important; margin: 0 !important; padding: 0 !important; } .uf-blog-scope .uf-author-card .elementor-author-box__avatar { display: block !important; flex: 0 0 34px !important; width: 34px !important; height: 34px !important; min-width: 34px !important; margin: 0 !important; padding: 0 !important; } .uf-blog-scope .uf-author-card .elementor-author-box__avatar img { display: block !important; width: 34px !important; height: 34px !important; max-width: none !important; margin: 0 !important; padding: 0 !important; object-fit: cover !important; object-position: center !important; background: #f6f7ff; border: 1px solid #e0e4f2 !important; border-radius: 50% !important; box-shadow: none !important; transition: border-color .2s ease, box-shadow .2s ease; } .uf-blog-scope .uf-author-card .elementor-author-box__text { display: flex !important; flex-direction: column !important; justify-content: center !important; width: auto !important; min-width: 0 !important; margin: 0 !important; padding: 0 !important; } .uf-blog-scope .uf-author-card .elementor-author-box__name { display: flex !important; flex-direction: column !important; gap: 2px !important; margin: 0 !important; padding: 0 !important; color: #07145f !important; font-family: inherit !important; font-size: 14px !important; font-weight: 700 !important; line-height: 1.15 !important; text-decoration: none !important; white-space: nowrap; } .uf-blog-scope .uf-author-card .elementor-author-box__name::before { content: "Escrito por"; display: block; color: #747b98; font-size: 9px; font-weight: 600; line-height: 1; letter-spacing: .5px; text-transform: uppercase; } .uf-blog-scope .uf-author-card .elementor-author-box__name, .uf-blog-scope .uf-author-card .elementor-author-box__name a { color: #07145f !important; text-decoration: none !important; } .uf-blog-scope .uf-author-card .elementor-author-box__bio, .uf-blog-scope .uf-author-card .elementor-author-box__button { display: none !important; } .uf-blog-scope .uf-author-card > .elementor-widget-container:hover { background-color: #fafbff !important; border-color: #cdd3ea !important; box-shadow: 0 5px 15px rgba(7, 25, 165, .11) !important; } .uf-blog-scope .uf-author-card > .elementor-widget-container:hover .elementor-author-box__avatar img { border-color: #cdd3ea !important; box-shadow: 0 0 0 3px rgba(7, 25, 165, .05) !important; } @media (max-width: 767px) { .uf-blog-scope .uf-author-card { width: 100% !important; margin-top: 1px !important; margin-bottom: 5px !important; } .uf-blog-scope .uf-author-card > .elementor-widget-container, .uf-blog-scope .uf-author-card .elementor-author-box { width: 100% !important; } .uf-blog-scope .uf-author-card > .elementor-widget-container { padding: 10px 14px !important; } .uf-blog-scope .uf-author-card .elementor-author-box__name { font-size: 14px !important; white-space: normal !important; overflow-wrap: anywhere; } } /* Corrección móvil: información arriba, imagen y descripción debajo. */ @media (max-width: 767px) { .uf-blog-scope .uf-information-row { flex-direction: column !important; align-items: stretch !important; } .uf-blog-scope .uf-information-row > .uf-information-column, .uf-blog-scope .uf-information-row > .uf-featured-stack { width: 100% !important; max-width: 100% !important; min-width: 0 !important; flex: 0 0 auto !important; } .uf-blog-scope .uf-information-row > .uf-information-column { order: 0 !important; } .uf-blog-scope .uf-information-row > .uf-featured-stack { order: 1 !important; } } (function () { "use strict"; const tagsContainer = document.getElementById("uf-post-tags"); if ( !tagsContainer || tagsContainer.dataset.initialized === "true" ) { return; } tagsContainer.dataset.initialized = "true"; const tagsList = tagsContainer.querySelector( ".uf-post-tags__list" ); function getTemplateScope() { return ( tagsContainer.closest(".elementor") || document.querySelector( "article.post-single-page" ) || document ); } /* * Coloca las etiquetas debajo del título. */ function organizeHeading(scope) { const titleWidget = scope.querySelector( ".elementor-widget-theme-post-title" ); if (!titleWidget) { return; } titleWidget.insertAdjacentElement( "afterend", tagsContainer ); } /* * Detecta los cuadros opcionales. * Funciona con dos, uno o ninguno. */ function organizeOptionalInformation(scope) { const isElementorEditor = document.body.classList.contains( "elementor-editor-active" ) || document.body.classList.contains( "elementor-editor-preview" ) || ( window.elementorFrontend && typeof window.elementorFrontend.isEditMode === "function" && window.elementorFrontend.isEditMode() ); const authorWidget = scope.querySelector( ".elementor-widget-author-box" ); if (!authorWidget) { return; } authorWidget.classList.add( "uf-author-card" ); const informationColumn = authorWidget.closest(".e-con"); if (!informationColumn) { return; } informationColumn.classList.add( "uf-information-column" ); const textWidgets = Array.from( informationColumn.children ).filter(function (element) { return element.classList.contains( "elementor-widget-text-editor" ); }); let validCount = 0; textWidgets.forEach(function (widget) { /* * Nunca se oculta un widget de información dentro * del editor. Elementor cambia sus IDs al insertar * la plantilla y puede cargar el texto con retraso. */ const protectedInEditor = isElementorEditor; if (protectedInEditor) { widget.classList.remove( "uf-information-empty" ); widget.classList.add( "uf-information-card" ); validCount += 1; return; } /* * Elimina espacios invisibles, saltos, *   y etiquetas vacías. */ const content = widget.textContent .replace(/\u00a0/g, " ") .trim(); if (!content) { widget.classList.add( "uf-information-empty" ); return; } widget.classList.remove( "uf-information-empty" ); widget.classList.add( "uf-information-card" ); validCount += 1; }); informationColumn.classList.remove( "uf-information-count-0", "uf-information-count-1", "uf-information-count-2" ); informationColumn.classList.add( "uf-information-count-" + Math.min(validCount, 2) ); const informationRow = informationColumn.parentElement; if (informationRow) { informationRow.classList.add( "uf-information-row" ); const followingContainer = informationRow.nextElementSibling; if ( followingContainer && followingContainer.classList.contains( "e-con" ) ) { followingContainer.classList.add( "uf-after-information" ); } } } function getCurrentPostId() { const bodyMatch = document.body.className.match( /\bpostid-(\d+)\b/ ); if (bodyMatch) { return bodyMatch[1]; } const article = document.querySelector( "article[id^='post-']" ); if (article) { const articleMatch = article.id.match(/^post-(\d+)$/); if (articleMatch) { return articleMatch[1]; } } const restLink = document.querySelector( 'link[rel="alternate"]' + '[type="application/json"]' ); if (restLink) { const restMatch = restLink.href.match( /\/wp-json\/wp\/v2\/posts\/(\d+)/ ); if (restMatch) { return restMatch[1]; } } return null; } function renderTags(tags) { if (!Array.isArray(tags) || !tags.length) { return false; } tagsList.innerHTML = ""; const usedTags = new Set(); tags.forEach(function (tag) { if (!tag || !tag.name) { return; } const name = String(tag.name) .replace(/^#/, "") .trim(); const normalizedName = name.toLowerCase(); if ( !name || usedTags.has(normalizedName) ) { return; } usedTags.add(normalizedName); const link = document.createElement("a"); link.className = "uf-post-tag"; link.textContent = name; link.href = tag.link || "#"; link.rel = "tag"; tagsList.appendChild(link); }); if (!tagsList.children.length) { return false; } tagsContainer.classList.add("has-tags"); return true; } function getOriginalTags() { /* * WoodMart coloca .wd-single-footer después del cierre * del
. Por eso la búsqueda debe hacerse en todo * el documento y no solamente dentro del artículo. */ const sourceLinks = document.querySelectorAll( "body.single-post .wd-single-footer " + ".wd-tags-list a," + "body.single-post .entry-footer " + ".tags-links a" ); if (!sourceLinks.length) { return false; } const tags = []; sourceLinks.forEach(function (link) { const name = link.textContent.trim(); if (!name) { return; } tags.push({ name: name, link: link.href }); }); return renderTags(tags); } async function getWordPressTags() { const postId = getCurrentPostId(); if (!postId) { return false; } try { const postResponse = await fetch( window.location.origin + "/wp-json/wp/v2/posts/" + postId + "?_fields=id,tags", { credentials: "same-origin" } ); if (!postResponse.ok) { return false; } const post = await postResponse.json(); if ( !Array.isArray(post.tags) || !post.tags.length ) { return false; } const tagsResponse = await fetch( window.location.origin + "/wp-json/wp/v2/tags" + "?include=" + post.tags.join(",") + "&per_page=100" + "&_fields=id,name,link", { credentials: "same-origin" } ); if (!tagsResponse.ok) { return false; } const tags = await tagsResponse.json(); tags.sort(function (first, second) { return ( post.tags.indexOf(first.id) - post.tags.indexOf(second.id) ); }); return renderTags(tags); } catch (error) { console.warn( "Etiquetas Fidélitas:", error ); return false; } } /* Alinea el texto descriptivo justo debajo de la imagen destacada. */ function organizeFeaturedCaption(scope) { const images = Array.from( scope.querySelectorAll( ".elementor-widget-theme-post-featured-image" ) ); const imageWidget = images.find(function (widget) { return !widget.closest(".e-loop-item") && !widget.closest(".uf-related-section"); }); if (!imageWidget) { return false; } const imageColumn = imageWidget.closest(".e-con"); if (!imageColumn) { return false; } let captionWidget = imageWidget.nextElementSibling; if ( !captionWidget || !captionWidget.classList.contains("elementor-widget-text-editor") ) { captionWidget = Array.from( imageColumn.querySelectorAll( ":scope > .elementor-widget-text-editor" ) ).find(function (widget) { return widget.textContent .replace(/\u00a0/g, " ") .replace(/\u200b/g, "") .trim().length > 0; }) || null; } if (!captionWidget) { return false; } imageColumn.classList.add("uf-featured-stack"); captionWidget.classList.add("uf-featured-caption"); imageWidget.insertAdjacentElement( "afterend", captionWidget ); return true; } /* * Identifica el contenedor donde se escribe el cuerpo del * artículo. Permite que cualquier medio nuevo reciba el * formato automático sin afectar la imagen destacada. */ function organizePostContent(scope) { const topLevelSections = Array.from( scope.children ).filter(function (element) { return element.classList && element.classList.contains("e-con-boxed"); }); if (topLevelSections.length .e-con-inner" ); if (!inner) { return false; } const contentContainer = Array.from( inner.children ).find(function (element) { return element.classList && element.classList.contains("e-con") && !element.querySelector( ".elementor-widget-theme-post-featured-image" ); }); if (!contentContainer) { return false; } contentContainer.classList.add( "uf-post-content" ); return true; } async function initializeBlogLayout() { const scope = getTemplateScope(); if (scope.classList) { scope.classList.add("uf-blog-scope"); } organizeHeading(scope); organizeOptionalInformation(scope); organizeFeaturedCaption(scope); organizePostContent(scope); if (getOriginalTags()) { return; } await getWordPressTags(); } if (document.readyState === "loading") { document.addEventListener( "DOMContentLoaded", initializeBlogLayout, { once: true } ); } else { initializeBlogLayout(); } })();
.title{ display: none !important; } .news-thumb { display: none !important; } .post-single-page.has-post-thumbnail .article-inner>.entry-header { display: none!important; } .post-single-page .meta-post-categories { display: none!important; } .page-title-default { display: none !important; }