{"id":3,"date":"2026-05-28T12:32:06","date_gmt":"2026-05-28T12:32:06","guid":{"rendered":"http:\/\/macarenatorralba.es\/?page_id=3"},"modified":"2026-06-09T10:54:23","modified_gmt":"2026-06-09T10:54:23","slug":"politica-de-privacidad","status":"publish","type":"page","link":"https:\/\/macarenatorralba.es\/en\/politica-de-privacidad\/","title":{"rendered":"Privacy Policy"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3\" class=\"elementor elementor-3\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a6aa234 e-flex e-con-boxed e-con e-parent\" data-id=\"a6aa234\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<h1 data-interaction-id=\"1d82e56\" class=\"H1 e-1d82e56-50f62df e-heading-base\">Pol\u00edtica de privacidad, informaci\u00f3n legal y cookies<\/h1>\n\t\t\t\t<div class=\"elementor-element elementor-element-7acf386 elementor-widget elementor-widget-html\" data-id=\"7acf386\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div id=\"hero-end\"><\/div>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e514ddc e-flex e-con-boxed e-con e-parent\" data-id=\"e514ddc\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<p class=\"Enphasis2 e-paragraph-base\" data-interaction-id=\"1859073\">\u00daltima actualizaci\u00f3n: junio de 2026<\/p>\n\t\t\t\t\t<p class=\"e-paragraph-base\" data-interaction-id=\"6422688\">Esta p\u00e1gina recoge la informaci\u00f3n legal b\u00e1sica de este sitio web, incluyendo la pol\u00edtica de privacidad, el aviso legal y la pol\u00edtica de cookies.<br><br>La web <strong id=\"e-mq55ugo8-dff3cgi\">macarenatorralba.es<\/strong> es un portfolio personal y profesional creado para mostrar mi trabajo, trayectoria, proyectos, reflexiones y formas de contacto. La informaci\u00f3n publicada tiene una finalidad exclusivamente profesional e informativa.<\/p>\n\t\t\t\t\t<h2 data-interaction-id=\"2daec1b\" class=\"H2 e-2daec1b-751a0be e-heading-base\">Pol\u00edtica de privacidad<\/h2>\n\t\t\t\t\t<h2 data-interaction-id=\"7dcfc7e\" class=\"H3 e-heading-base\">Informaci\u00f3n b\u00e1sica sobre protecci\u00f3n de datos<\/h2>\n\t\t\t\t\t<p class=\"e-paragraph-base\" data-interaction-id=\"54bdbcf\"><strong>Responsable:<\/strong> Macarena Torralba Garc\u00eda.<br><br><strong>Contacto:<\/strong> emacarenatorralba@gmail.com.<br><br><strong>Finalidad:<\/strong> responder consultas enviadas a trav\u00e9s del formulario de contacto, atender comunicaciones profesionales y gestionar posibles contactos laborales, colaboraciones o propuestas de proyecto.<br><br><strong>Legitimaci\u00f3n:<\/strong> consentimiento de la persona usuaria al enviar el formulario y, cuando corresponda, inter\u00e9s leg\u00edtimo en mantener comunicaciones profesionales iniciadas voluntariamente.<br><br><strong>Destinatarios:<\/strong> no se ceden datos a terceros con fines comerciales. Pueden intervenir proveedores t\u00e9cnicos necesarios para el funcionamiento de la web, como el alojamiento web, WordPress, el plugin de formularios, el servicio de correo electr\u00f3nico y Google reCAPTCHA, utilizado como medida de seguridad y prevenci\u00f3n de spam en el formulario de contacto.<br><br><strong>Derechos:<\/strong> puedes solicitar el acceso, rectificaci\u00f3n, supresi\u00f3n, oposici\u00f3n, limitaci\u00f3n del tratamiento y portabilidad de tus datos escribiendo a emacarenatorralba@gmail.com.<\/p>\n\t\t\t\t\t<h2 data-interaction-id=\"a3590b7\" class=\"H3 e-heading-base\">Responsable del tratamiento<\/h2>\n\t\t\t\t\t<p class=\"e-paragraph-base\" data-interaction-id=\"2f5e2a4\">La responsable del tratamiento de los datos personales recogidos a trav\u00e9s de este sitio web es:<br><br><strong>Macarena Torralba Garc\u00eda<\/strong><br>Correo electr\u00f3nico de contacto: <strong>emacarenatorralba@gmail.com<\/strong><br><br>No se publica direcci\u00f3n f\u00edsica por tratarse de una web personal y profesional.<\/p>\n\t\t\t\t\t<h2 data-interaction-id=\"67a3ca8\" class=\"H3 e-heading-base\">Datos personales que se recogen<\/h2>\n\t\t\t\t\t<p class=\"e-paragraph-base\" data-interaction-id=\"48efa24\">A trav\u00e9s del formulario de contacto de la web pueden recogerse los siguientes datos: nombre, apellidos, correo electr\u00f3nico, asunto y mensaje. Confirmaci\u00f3n de consentimiento para el tratamiento de los datos.Tambi\u00e9n puedes contactar directamente mediante correo electr\u00f3nico o LinkedIn. En esos casos, se tratar\u00e1n \u00fanicamente los datos que decidas facilitar voluntariamente en la comunicaci\u00f3n.<\/p>\n\t\t\t\t\t<h2 data-interaction-id=\"d3bac75\" class=\"H3 e-heading-base\">Finalidad del tratamiento<\/h2>\n\t\t\t\t\t<p class=\"e-paragraph-base\" data-interaction-id=\"246c322\">Los datos se tratan \u00fanicamente para:<br><br><strong id=\"e-mq57v647-9gx34eb\">\u00b7 <\/strong>Responder a consultas recibidas a trav\u00e9s del formulario de contacto.<br><strong id=\"e-mq57v647-9c4bfdp\">\u00b7 <\/strong>Atender posibles contactos profesionales, colaboraciones, propuestas de proyecto o procesos laborales.<br><strong id=\"e-mq57v647-n33ibhv\">\u00b7 <\/strong>Mantener la comunicaci\u00f3n necesaria cuando una persona inicia contacto conmigo de forma voluntaria.<br><br>Los datos no se utilizan para enviar newsletters, comunicaciones comerciales masivas, campa\u00f1as publicitarias ni comunicaciones no solicitadas.<\/p>\n\t\t\t\t\t<h2 data-interaction-id=\"1b0a741\" class=\"H3 e-heading-base\">Base legal del tratamiento<\/h2>\n\t\t\t\t\t<p class=\"e-paragraph-base\" data-interaction-id=\"083260d\">La base legal para tratar los datos enviados mediante el formulario es el consentimiento que prestas al marcar la casilla correspondiente y enviar tu consulta. En caso de comunicaciones profesionales iniciadas por ti, tambi\u00e9n puede existir un inter\u00e9s leg\u00edtimo en responder y mantener la conversaci\u00f3n relacionada con tu consulta, propuesta o contacto profesional.<\/p>\n\t\t\t\t\t<h2 data-interaction-id=\"bfab712\" class=\"H3 e-heading-base\">Conservaci\u00f3n de los datos<\/h2>\n\t\t\t\t\t<p class=\"e-paragraph-base\" data-interaction-id=\"f895368\">Los datos se conservar\u00e1n durante el tiempo necesario para responder a la consulta o gestionar la comunicaci\u00f3n profesional iniciada. Una vez finalizada la finalidad para la que fueron recogidos, podr\u00e1n eliminarse, salvo que exista una obligaci\u00f3n legal de conservaci\u00f3n o sea necesario mantenerlos durante un tiempo razonable para atender posibles responsabilidades derivadas de la comunicaci\u00f3n.<\/p>\n\t\t\t\t\t<h2 data-interaction-id=\"045884b\" class=\"H3 e-heading-base\">D\u00f3nde se almacenan los datos<\/h2>\n\t\t\t\t\t<p class=\"e-paragraph-base\" data-interaction-id=\"f697f38\">Los mensajes enviados a trav\u00e9s del formulario pueden quedar almacenados en WordPress mediante el plugin de formularios utilizado en la web y, adem\u00e1s, pueden enviarse al correo electr\u00f3nico de contacto indicado. La web est\u00e1 alojada en Hostinger, que act\u00faa como proveedor de alojamiento y puede intervenir como encargado del tratamiento en la prestaci\u00f3n t\u00e9cnica del servicio.<br><br>El formulario de contacto utiliza Google reCAPTCHA como medida de seguridad para prevenir spam, env\u00edos automatizados y usos abusivos. Este servicio puede tratar informaci\u00f3n t\u00e9cnica necesaria para verificar que la interacci\u00f3n procede de una persona y no de un bot, de acuerdo con las pol\u00edticas y condiciones de Google. <br><br>No se utilizan herramientas externas de email marketing, ni se ceden los datos a terceros con fines comerciales.<\/p>\n\t\t\t\t\t<h2 data-interaction-id=\"f9fa876\" class=\"H3 e-heading-base\">Medidas de seguridad<\/h2>\n\t\t\t\t\t<p class=\"e-paragraph-base\" data-interaction-id=\"f66b379\">Se aplican medidas t\u00e9cnicas y organizativas razonables para proteger la informaci\u00f3n recibida y evitar accesos no autorizados, p\u00e9rdida, alteraci\u00f3n o uso indebido de los datos. No obstante, ning\u00fan sistema conectado a internet puede garantizar una seguridad absoluta. Por ello, se recomienda no enviar informaci\u00f3n especialmente sensible a trav\u00e9s del formulario de contacto.<\/p>\n\t\t\t\t\t<h2 data-interaction-id=\"e2f1455\" class=\"H3 e-heading-base\">Derechos de las personas usuarias<\/h2>\n\t\t\t\t\t<p class=\"e-paragraph-base\" data-interaction-id=\"b98c5a4\">Puedes ejercer tus derechos de acceso, rectificaci\u00f3n, supresi\u00f3n, oposici\u00f3n, limitaci\u00f3n del tratamiento y portabilidad escribiendo a: <strong>emacarenatorralba@gmail.com<\/strong><br><br>En la solicitud deber\u00e1s indicar claramente qu\u00e9 derecho deseas ejercer y aportar la informaci\u00f3n necesaria para poder identificar la comunicaci\u00f3n o datos a los que te refieres. Si consideras que el tratamiento de tus datos no se ajusta a la normativa, tambi\u00e9n puedes presentar una reclamaci\u00f3n ante la Agencia Espa\u00f1ola de Protecci\u00f3n de Datos.<\/p>\n\t\t\t\t\t<h2 data-interaction-id=\"e813c84\" class=\"H2 e-e813c84-d93f1d2 e-heading-base\">Aviso legal y t\u00e9rminos de uso<\/h2>\n\t\t\t\t\t<h2 data-interaction-id=\"be4f865\" class=\"H3 e-heading-base\">Titularidad del sitio web<\/h2>\n\t\t\t\t\t<p class=\"e-paragraph-base\" data-interaction-id=\"561603d\">Este sitio web pertenece a Macarena Torralba Garc\u00eda y se publica como portfolio personal y profesional. Correo electr\u00f3nico de contacto: <strong>emacarenatorralba@gmail.com<\/strong><\/p>\n\t\t\t\t\t<h2 data-interaction-id=\"2d5d5fc\" class=\"H3 e-heading-base\">Objeto de la web<\/h2>\n\t\t\t\t\t<p class=\"e-paragraph-base\" data-interaction-id=\"a6e70fd\">El objetivo de esta web es presentar mi perfil profesional, experiencia, proyectos, \u00e1reas de especializaci\u00f3n, reflexiones y v\u00edas de contacto. Los contenidos tienen una finalidad informativa y profesional. No constituyen asesoramiento legal, t\u00e9cnico, estrat\u00e9gico o profesional espec\u00edfico para ning\u00fan caso concreto.<\/p>\n\t\t\t\t\t<h2 data-interaction-id=\"baaaacf\" class=\"H3 e-heading-base\">Uso de la web<\/h2>\n\t\t\t\t\t<p class=\"e-paragraph-base\" data-interaction-id=\"400f503\">Como persona usuaria, te comprometes a utilizar esta web de forma adecuada, respetuosa y conforme a la ley.No est\u00e1 permitido utilizar la web para:<br><br><strong id=\"e-mq57vicu-uuxz969\">\u00b7 <\/strong>Enviar mensajes falsos, ofensivos, abusivos o fraudulentos.Intentar acceder a zonas restringidas o sistemas internos.<br><strong id=\"e-mq57vicu-8g0aaiw\">\u00b7 <\/strong>Introducir c\u00f3digo malicioso, automatismos, spam o cualquier elemento que pueda da\u00f1ar la web o afectar a su funcionamiento.<br><strong id=\"e-mq57vicu-yc7mis9\">\u00b7 <\/strong>Hacer un uso indebido de los contenidos, textos, im\u00e1genes, dise\u00f1os o materiales publicados.<\/p>\n\t\t\t\t\t<h2 data-interaction-id=\"3ca0f46\" class=\"H3 e-heading-base\">Propiedad intelectual e industrial<\/h2>\n\t\t\t\t\t<p class=\"e-paragraph-base\" data-interaction-id=\"17b0d44\">Salvo que se indique lo contrario, los textos, estructura, dise\u00f1o, im\u00e1genes, recursos gr\u00e1ficos, casos de uso y contenidos publicados en esta web forman parte de mi portfolio personal y profesional.<br><br>No est\u00e1 permitida su reproducci\u00f3n, distribuci\u00f3n, transformaci\u00f3n o uso comercial sin autorizaci\u00f3n previa. Algunos proyectos se describen de forma resumida, parcial o adaptada por motivos de confidencialidad, protecci\u00f3n de informaci\u00f3n de clientes o claridad comunicativa. Las marcas, nombres de proyectos o referencias mencionadas pertenecen a sus respectivos titulares.<\/p>\n\t\t\t\t\t<h2 data-interaction-id=\"531f090\" class=\"H3 e-heading-base\">Enlaces externos<\/h2>\n\t\t\t\t\t<p class=\"e-paragraph-base\" data-interaction-id=\"d6649bb\">La web puede incluir enlaces a sitios externos, como LinkedIn u otras p\u00e1ginas relacionadas con proyectos, referencias o recursos profesionales. No soy responsable del contenido, funcionamiento, pol\u00edticas de privacidad o pr\u00e1cticas de sitios web externos. Al acceder a ellos, se aplicar\u00e1n sus propias condiciones legales y pol\u00edticas de privacidad.<\/p>\n\t\t\t\t\t<h2 data-interaction-id=\"b09ee4e\" class=\"H3 e-heading-base\">Responsabilidad<\/h2>\n\t\t\t\t\t<p class=\"e-paragraph-base\" data-interaction-id=\"d689199\">Hago lo posible por mantener la informaci\u00f3n actualizada y correcta, pero no puedo garantizar que todos los contenidos est\u00e9n siempre libres de errores, desactualizaciones o interrupciones t\u00e9cnicas. La web puede sufrir cambios, actualizaciones o modificaciones sin previo aviso.<\/p>\n\t\t\t\t\t<h2 data-interaction-id=\"3b4f370\" class=\"H2 e-3b4f370-aa3056a e-heading-base\">Pol\u00edtica de cookies<\/h2>\n\t\t\t\t\t<h2 data-interaction-id=\"bbe79d7\" class=\"H3 e-heading-base\">Qu\u00e9 son las cookies<\/h2>\n\t\t\t\t\t<p class=\"e-paragraph-base\" data-interaction-id=\"8d11554\">Las cookies son peque\u00f1os archivos que se almacenan en el navegador cuando visitas una p\u00e1gina web. Pueden servir para que la web funcione correctamente, recordar ciertas preferencias, mejorar la seguridad, gestionar formularios, mantener la sesi\u00f3n o analizar el uso del sitio.<\/p>\n\t\t\t\t\t<h2 data-interaction-id=\"e064ceb\" class=\"H3 e-heading-base\">Qu\u00e9 tipo de cookies utiliza esta web<\/h2>\n\t\t\t\t\t<p class=\"e-paragraph-base\" data-interaction-id=\"0fcceb3\">Esta web utiliza principalmente cookies t\u00e9cnicas o necesarias para su funcionamiento. Pueden estar relacionadas con:<br><br><strong>\u00b7 <\/strong>El funcionamiento b\u00e1sico de WordPress.<br><strong>\u00b7 <\/strong>La gesti\u00f3n t\u00e9cnica del sitio web.<br><strong>\u00b7 <\/strong>El rendimiento y cach\u00e9 de la p\u00e1gina.<br><strong>\u00b7 <\/strong>La seguridad del sitio.<br><strong>\u00b7 <\/strong>El formulario de contacto.<br><strong>\u00b7 <\/strong>La gesti\u00f3n del idioma en la versi\u00f3n multiling\u00fce de la web.<br><strong>\u00b7 <\/strong>La comprobaci\u00f3n antispam o verificaci\u00f3n de \u201cno soy un robot\u201d, si se incorpora al formulario.<br><br>Estas cookies son necesarias para que la web funcione correctamente y no se utilizan con fines publicitarios.<br><br><strong>Cookies de an\u00e1lisis, publicidad o seguimiento<\/strong><br><br>Actualmente esta web no utiliza Google Analytics, Google Tag Manager, Meta Pixel, Hotjar, herramientas de publicidad comportamental ni sistemas de anal\u00edtica comercial. Tampoco se utiliza newsletter ni herramientas de email marketing. <br><br>Si en el futuro se incorporase alguna herramienta de anal\u00edtica, medici\u00f3n, publicidad o seguimiento que requiera consentimiento, se actualizar\u00e1 esta pol\u00edtica y se habilitar\u00e1, cuando corresponda, un sistema de gesti\u00f3n o aceptaci\u00f3n de cookies.<br><br><strong>Cookies de terceros<\/strong><br><br>Algunos proveedores t\u00e9cnicos pueden generar cookies o tecnolog\u00edas similares necesarias para prestar sus servicios. Esto puede incluir servicios de alojamiento, cach\u00e9, seguridad, formularios, traducci\u00f3n de idioma o sistemas antispam. <br><br>El formulario de contacto incorpora Google reCAPTCHA como sistema de verificaci\u00f3n antispam de tipo \u201cno soy un robot\u201d. Google puede tratar informaci\u00f3n t\u00e9cnica necesaria para comprobar que el env\u00edo del formulario no procede de un bot o uso automatizado. El uso de reCAPTCHA est\u00e1 sujeto a la Pol\u00edtica de Privacidad y a los T\u00e9rminos del Servicio de Google. <br><br>Si interact\u00faas con enlaces externos, como LinkedIn, esas plataformas pueden utilizar sus propias cookies y pol\u00edticas de privacidad. Esas cookies no dependen de esta web, sino del sitio externo al que accedas.<\/p>\n\t\t\t\t\t<h2 data-interaction-id=\"cc48cc6\" class=\"H3 e-heading-base\">C\u00f3mo gestionar las cookies<\/h2>\n\t\t\t\t\t<p class=\"e-paragraph-base\" data-interaction-id=\"cb03ee9\">Puedes configurar, bloquear o eliminar cookies desde tu navegador. Cada navegador permite gestionar las cookies desde su secci\u00f3n de configuraci\u00f3n, privacidad o seguridad. Ten en cuenta que bloquear determinadas cookies t\u00e9cnicas puede afectar al funcionamiento correcto de algunas partes de la web.<\/p>\n\t\t\t\t\t<h2 data-interaction-id=\"f7808e1\" class=\"H3 e-heading-base\">Cambios en esta pol\u00edtica<\/h2>\n\t\t\t\t\t<p class=\"e-paragraph-base\" data-interaction-id=\"f0a39fb\">Esta pol\u00edtica puede actualizarse si cambia la configuraci\u00f3n de la web, se incorporan nuevas herramientas, plugins o servicios, o si es necesario adaptarla a cambios t\u00e9cnicos o legales. La versi\u00f3n vigente ser\u00e1 siempre la publicada en esta p\u00e1gina.<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-dbd05c3 e-flex e-con-boxed e-con e-parent\" data-id=\"dbd05c3\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-41af029 e-con-full e-flex e-con e-child\" data-id=\"41af029\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-032bb1b e-con-full e-flex e-con e-child\" data-id=\"032bb1b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<h1 data-interaction-id=\"bc0295e\" class=\"Enphasis1 e-heading-base\">Macarena Torralba<\/h1>\n\t\t\t\t\t<p class=\"Body1 e-paragraph-base\" data-interaction-id=\"cb2633c\">Product Innovacion \u00b7 UX Strategy \u00b7 IA &amp; Emerging Tech<\/p>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f275de2 e-con-full e-flex e-con e-child\" data-id=\"f275de2\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<p class=\"Body1 e-dae5206-c0961d4 e-paragraph-base\" data-interaction-id=\"dae5206\"><a href=\"mailto:emacarenatorralba@gmail.com\" target=\"_self\" class=\"e-paragraph-link-base\">\n\t\tMail\n\t<\/a><\/p>\n\t\t\t\t\t<p class=\"Body1 e-paragraph-base\" data-interaction-id=\"03c8032\"><a href=\"https:\/\/www.linkedin.com\/in\/macarenatorralbagarcia\/\" target=\"_blank\" class=\"e-paragraph-link-base\">\n\t\tLinkedin\n\t<\/a><\/p>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e937415 e-con-full e-flex e-con e-child\" data-id=\"e937415\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<h1 data-interaction-id=\"9e83146\" class=\"e-9e83146-15b0c0f Body1 e-heading-base\">Definiendo y aterrizando productos digitales complejos desde la intersecci\u00f3n entre experiencia, tecnolog\u00eda e innovaci\u00f3n.<\/h1>\n\t\t<div class=\"elementor-element elementor-element-ae41c5e e-con-full e-flex e-con e-child\" data-id=\"ae41c5e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e28de3a elementor-widget elementor-widget-html\" data-id=\"e28de3a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<header class=\"mt-header\" id=\"mtHeader\">\n  <div class=\"mt-header-inner\">\n    <a class=\"mt-brand\" href=\"\/es\/\">\n      <span class=\"mt-brand-name\">Macarena Torralba<\/span>\n      <span class=\"mt-brand-role\">Product Innovation \u00b7 UX Strategy \u00b7 IA & Emerging Tech<\/span>\n    <\/a>\n\n    <button class=\"mt-burger\" id=\"mtBurger\" type=\"button\" aria-label=\"Abrir men\u00fa\" aria-expanded=\"false\">\n      <span><\/span>\n      <span><\/span>\n    <\/button>\n  <\/div>\n\n  <nav class=\"mt-menu-overlay\" id=\"mtNav\" aria-label=\"Men\u00fa principal\">\n    <div class=\"mt-menu-inner\">\n\n      <div class=\"mt-menu-top\">\n        <a class=\"mt-menu-brand\" href=\"\/es\/\">\n          <span class=\"mt-menu-brand-name\">Macarena Torralba<\/span>\n          <span class=\"mt-menu-brand-role\">Product Innovation \u00b7 UX Strategy \u00b7 IA & Emerging Tech<\/span>\n        <\/a>\n\n        <button class=\"mt-menu-close\" id=\"mtMenuClose\" type=\"button\" aria-label=\"Cerrar men\u00fa\">\n          <span><\/span>\n          <span><\/span>\n        <\/button>\n      <\/div>\n\n      <div class=\"mt-menu-content\">\n        <div class=\"mt-menu-left\">\n          <a href=\"\/es\/\" class=\"mt-menu-link\" data-menu=\"home\">Sobre m\u00ed<\/a>\n          <a href=\"\/es\/proyectos\/\" class=\"mt-menu-link\" data-menu=\"proyectos\">Mis proyectos<\/a>\n          <a href=\"\/es\/reflexiones\/\" class=\"mt-menu-link\" data-menu=\"reflexiones\">Reflexiones<\/a>\n          <a href=\"\/es\/contacto\/\" class=\"mt-menu-link\" data-menu=\"contacto\">Contacto<\/a>\n          <a href=\"https:\/\/macarenatorralba.es\/wp-content\/uploads\/2026\/05\/Macarena_Torralba_CV.pdf\" class=\"mt-menu-cv\" target=\"_blank\" rel=\"noopener\">Descargar CV<\/a>\n        <\/div>\n\n        <div class=\"mt-menu-right\">\n          <div class=\"mt-contact-block\">\n            <span class=\"mt-contact-title\">Contacto<\/span>\n            <a href=\"mailto:emacarenatorralba@gmail.com\">emacarenatorralba@gmail.com<\/a>\n            <a href=\"https:\/\/www.linkedin.com\/in\/macarenatorralbagarcia\/\" target=\"_blank\" rel=\"noopener\">Linkedin<\/a>\n          <\/div>\n\n          <div class=\"mt-lang-switch\" aria-label=\"Cambiar idioma\">\n            <a href=\"#\" class=\"mt-lang-option\" id=\"mtLangEN\">EN<\/a>\n            <a href=\"#\" class=\"mt-lang-option\" id=\"mtLangES\">ES<\/a>\n          <\/div>\n        <\/div>\n      <\/div>\n\n    <\/div>\n  <\/nav>\n<\/header>\n\n<style>\n\/* ===== HEADER BASE ===== *\/\n\n.mt-header {\n  position: fixed;\n  top: 0;\n  left: 0;\n  width: 100%;\n  z-index: 9999;\n  background: transparent !important;\n  box-shadow: none !important;\n  transition: background-color 0.28s ease, box-shadow 0.28s ease, backdrop-filter 0.28s ease;\n}\n\nbody.admin-bar .mt-header {\n  top: 32px;\n}\n\n@media (max-width: 782px) {\n  body.admin-bar .mt-header {\n    top: 46px;\n  }\n}\n\n.mt-header-inner,\n.mt-menu-inner {\n  width: min(calc(100% - 160px), 1320px);\n  margin-left: auto;\n  margin-right: auto;\n}\n\n.mt-header-inner {\n  padding: 22px 0;\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n}\n\n.mt-brand {\n  display: flex;\n  flex-direction: column;\n  text-decoration: none;\n  gap: 2px;\n}\n\n.mt-brand-name {\n  font-family: \"Poppins\", sans-serif;\n  font-size: 16px;\n  font-weight: 600;\n  line-height: 1.2;\n  color: #ffffff;\n  transition: color 0.28s ease;\n}\n\n.mt-brand-role {\n  font-family: \"Poppins\", sans-serif;\n  font-size: 14px;\n  font-weight: 400;\n  line-height: 1.25;\n  color: rgba(255,255,255,0.72);\n  transition: color 0.28s ease;\n}\n\n\/* Burger *\/\n.mt-burger {\n  width: 44px;\n  height: 44px;\n  border: 1px solid rgba(255,255,255,0.9);\n  border-radius: 999px;\n  background: #ffffff;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 6px;\n  cursor: pointer;\n  padding: 0;\n  appearance: none;\n  -webkit-appearance: none;\n  transition: border-color 0.28s ease, background-color 0.28s ease, box-shadow 0.28s ease;\n}\n\n.mt-burger span {\n  width: 18px;\n  height: 1.5px;\n  border-radius: 999px;\n  background: #2B5E56;\n  transition: transform 0.28s ease, background-color 0.28s ease;\n}\n\n.mt-burger:hover,\n.mt-burger:focus,\n.mt-burger:active {\n  border-color: #2B5E56 !important;\n  background: #2B5E56 !important;\n  box-shadow: 0 8px 20px rgba(43,94,86,0.22) !important;\n}\n\n.mt-burger:hover span,\n.mt-burger:focus span,\n.mt-burger:active span {\n  background: #ffffff !important;\n}\n\n\/* Estado oscuro sobre hero *\/\n.mt-header.is-dark {\n  background: rgba(16, 42, 36, 0.94) !important;\n  backdrop-filter: blur(10px);\n  box-shadow: 0 8px 24px rgba(0,0,0,0.08) !important;\n}\n\n.mt-header.is-dark .mt-burger {\n  border-color: rgba(255,255,255,0.9);\n  background: #ffffff;\n}\n\n.mt-header.is-dark .mt-burger span {\n  background: #2B5E56;\n}\n\n\/* Estado blanco despu\u00e9s del hero *\/\n.mt-header.is-cream {\n  background: rgba(255, 255, 255, 0.96) !important;\n  backdrop-filter: blur(10px);\n  box-shadow: 0 8px 24px rgba(172,140,125,0.12) !important;\n}\n\n.mt-header.is-cream .mt-brand-name {\n  color: #111111;\n}\n\n.mt-header.is-cream .mt-brand-role {\n  color: #A07C6B;\n}\n\n.mt-header.is-cream .mt-burger {\n  border-color: rgba(43,94,86,0.28);\n  background: rgba(43,94,86,0.06);\n}\n\n.mt-header.is-cream .mt-burger span {\n  background: #2B5E56;\n}\n\n.mt-header.is-cream .mt-burger:hover,\n.mt-header.is-cream .mt-burger:focus,\n.mt-header.is-cream .mt-burger:active {\n  border-color: #2B5E56 !important;\n  background: #2B5E56 !important;\n}\n\n.mt-header.is-cream .mt-burger:hover span,\n.mt-header.is-cream .mt-burger:focus span,\n.mt-header.is-cream .mt-burger:active span {\n  background: #ffffff !important;\n}\n\n\/* ===== OVERLAY MENU ===== *\/\n\n.mt-menu-overlay {\n  position: fixed;\n  left: 0;\n  right: 0;\n  top: 0;\n  background: #F7F1E8;\n  z-index: 10000;\n  opacity: 0;\n  visibility: hidden;\n  pointer-events: none;\n  transform: translateY(-28px);\n  transition: opacity 0.32s ease, transform 0.32s ease, visibility 0.32s ease;\n  overflow-y: auto;\n  max-height: 100vh;\n}\n\nbody.admin-bar .mt-menu-overlay {\n  top: 32px;\n  max-height: calc(100vh - 32px);\n}\n\n@media (max-width: 782px) {\n  body.admin-bar .mt-menu-overlay {\n    top: 46px;\n    max-height: calc(100vh - 46px);\n  }\n}\n\n.mt-menu-overlay.is-open {\n  opacity: 1;\n  visibility: visible;\n  pointer-events: auto;\n  transform: translateY(0);\n}\n\n.mt-menu-inner {\n  padding-top: 48px;\n  padding-bottom: 72px;\n  display: flex;\n  flex-direction: column;\n}\n\n.mt-menu-top {\n  display: flex;\n  align-items: flex-start;\n  justify-content: space-between;\n  margin-bottom: 96px;\n}\n\n.mt-menu-brand {\n  display: flex;\n  flex-direction: column;\n  gap: 4px;\n  text-decoration: none;\n}\n\n.mt-menu-brand-name {\n  font-family: \"Poppins\", sans-serif;\n  font-size: 18px;\n  font-weight: 600;\n  color: #111111;\n  line-height: 1.2;\n}\n\n.mt-menu-brand-role {\n  font-family: \"Poppins\", sans-serif;\n  font-size: 14px;\n  font-weight: 400;\n  color: #A07C6B;\n  line-height: 1.3;\n}\n\n\/* Bot\u00f3n cerrar *\/\n.mt-menu-close {\n  width: 44px;\n  height: 44px;\n  min-width: 44px;\n  min-height: 44px;\n  border-radius: 999px;\n  border: 1px solid #111111;\n  background: transparent;\n  cursor: pointer;\n  position: relative;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  padding: 0;\n  appearance: none;\n  -webkit-appearance: none;\n  font-size: 0;\n  line-height: 0;\n  transition: background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;\n}\n\n.mt-menu-close span {\n  position: absolute;\n  width: 16px;\n  height: 1.4px;\n  background: #111111;\n  border-radius: 999px;\n  transition: background-color 0.25s ease;\n}\n\n.mt-menu-close span:first-child {\n  transform: rotate(45deg);\n}\n\n.mt-menu-close span:last-child {\n  transform: rotate(-45deg);\n}\n\n.mt-menu-close:hover,\n.mt-menu-close:focus,\n.mt-menu-close:active {\n  background: #2B5E56 !important;\n  border-color: #2B5E56 !important;\n  box-shadow: 0 8px 20px rgba(43,94,86,0.22) !important;\n}\n\n.mt-menu-close:hover span,\n.mt-menu-close:focus span,\n.mt-menu-close:active span {\n  background: #ffffff !important;\n}\n\n\/* Contenido *\/\n.mt-menu-content {\n  display: grid;\n  grid-template-columns: 1.2fr 1fr;\n  gap: 120px;\n  align-items: start;\n}\n\n.mt-menu-left {\n  display: flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: 34px;\n}\n\n.mt-menu-left a {\n  font-family: \"Poppins\", sans-serif;\n  font-size: 30px;\n  line-height: 1.15;\n  font-weight: 500;\n  color: #2B5E56;\n  text-decoration: none;\n  transition: color 0.25s ease, transform 0.25s ease, background-color 0.25s ease;\n}\n\n.mt-menu-left .mt-menu-link {\n  width: 100%;\n  padding: 18px 18px;\n  border-radius: 0;\n}\n\n.mt-menu-left .mt-menu-link:hover,\n.mt-menu-left .mt-menu-link.is-selected {\n  background: #F0E6D9;\n  color: #2B5E56;\n  transform: translateX(4px);\n}\n\n.mt-menu-left .mt-menu-cv {\n  width: fit-content;\n  margin-top: 8px;\n  font-size: 15px;\n  line-height: 1;\n  font-weight: 600;\n  color: #F7F7F5;\n  background: #2B5E56;\n  padding: 16px 24px;\n  border-radius: 999px;\n}\n\n.mt-menu-left .mt-menu-cv:hover {\n  color: #F7F7F5;\n  background: #4E9288;\n  transform: translateY(-2px);\n}\n\n.mt-menu-right {\n  display: flex;\n  flex-direction: column;\n  gap: 36px;\n}\n\n.mt-contact-block {\n  display: flex;\n  flex-direction: column;\n  gap: 22px;\n}\n\n.mt-contact-title {\n  font-family: \"Poppins\", sans-serif;\n  font-size: 20px;\n  font-weight: 600;\n  color: #A07C6B;\n  line-height: 1.2;\n}\n\n.mt-contact-block a {\n  font-family: \"Poppins\", sans-serif;\n  font-size: 15px;\n  font-weight: 400;\n  color: #444444;\n  text-decoration: underline;\n  text-underline-offset: 3px;\n}\n\n.mt-contact-block a:hover {\n  color: #2B5E56;\n}\n\n.mt-lang-switch {\n  display: inline-flex;\n  width: fit-content;\n  border: 1px solid #2B5E56;\n  border-radius: 999px;\n  overflow: hidden;\n  margin-top: 8px;\n}\n\n.mt-lang-option {\n  font-family: \"Poppins\", sans-serif !important;\n  font-size: 14px !important;\n  font-weight: 500;\n  text-decoration: none;\n  color: #2B5E56;\n  padding: 10px 16px;\n  line-height: 1;\n  min-width: 52px;\n  text-align: center;\n  transition: background-color 0.25s ease, color 0.25s ease;\n}\n\n.mt-lang-option:hover {\n  background: #F0E6D9;\n  color: #2B5E56;\n}\n\n.mt-lang-option.is-active {\n  background: #2B5E56;\n  color: #F7F7F5;\n}\n\n\/* Animaci\u00f3n interna *\/\n.mt-menu-overlay .mt-menu-brand,\n.mt-menu-overlay .mt-menu-left,\n.mt-menu-overlay .mt-menu-right,\n.mt-menu-overlay .mt-menu-close {\n  opacity: 0;\n  transform: translateY(-18px);\n  transition: opacity 0.34s ease, transform 0.34s ease;\n}\n\n.mt-menu-overlay.is-open .mt-menu-brand,\n.mt-menu-overlay.is-open .mt-menu-left,\n.mt-menu-overlay.is-open .mt-menu-right,\n.mt-menu-overlay.is-open .mt-menu-close {\n  opacity: 1;\n  transform: translateY(0);\n}\n\n.mt-menu-overlay.is-open .mt-menu-brand {\n  transition-delay: 0.04s;\n}\n\n.mt-menu-overlay.is-open .mt-menu-close {\n  transition-delay: 0.06s;\n}\n\n.mt-menu-overlay.is-open .mt-menu-left {\n  transition-delay: 0.12s;\n}\n\n.mt-menu-overlay.is-open .mt-menu-right {\n  transition-delay: 0.18s;\n}\n\nbody.mt-menu-open {\n  overflow: hidden;\n}\n\n\/* Responsive *\/\n@media (max-width: 1200px) {\n  .mt-header-inner,\n  .mt-menu-inner {\n    width: calc(100% - 64px);\n  }\n}\n\n@media (max-width: 767px) {\n  .mt-header-inner,\n  .mt-menu-inner {\n    width: calc(100% - 40px);\n  }\n\n  .mt-header-inner {\n    padding: 18px 0;\n  }\n\n  .mt-brand-name {\n    font-size: 15px;\n  }\n\n  .mt-brand-role {\n    font-size: 12px;\n  }\n\n  .mt-menu-inner {\n    padding-top: 32px;\n    padding-bottom: 56px;\n  }\n\n  .mt-menu-top {\n    margin-bottom: 64px;\n  }\n\n  .mt-menu-content {\n    grid-template-columns: 1fr;\n    gap: 64px;\n  }\n\n  .mt-menu-left {\n    gap: 24px;\n  }\n\n  .mt-menu-left a {\n    font-size: 28px;\n  }\n\n  .mt-menu-left .mt-menu-link {\n    padding: 16px 14px;\n  }\n\n  .mt-menu-left .mt-menu-cv {\n    font-size: 15px;\n  }\n\n  .mt-menu-right {\n    gap: 32px;\n  }\n\n  .mt-menu-close {\n    width: 42px;\n    height: 42px;\n    min-width: 42px;\n    min-height: 42px;\n  }\n\n  .mt-menu-close span {\n    width: 15px;\n  }\n\n  .mt-lang-option {\n    font-size: 14px !important;\n    padding: 10px 15px;\n  }\n}\n<\/style>\n\n<script>\n(function () {\n  function initMacarenaHeader() {\n    const header = document.getElementById(\"mtHeader\");\n    const burger = document.getElementById(\"mtBurger\");\n    const closeBtn = document.getElementById(\"mtMenuClose\");\n    const nav = document.getElementById(\"mtNav\");\n    const heroEnd = document.getElementById(\"hero-end\");\n    const langEN = document.getElementById(\"mtLangEN\");\n    const langES = document.getElementById(\"mtLangES\");\n\n    if (!header || !burger || !nav) return;\n\n    if (header.dataset.initialized === \"true\") return;\n    header.dataset.initialized = \"true\";\n\n    function updateHeaderState() {\n      const scrollY = window.scrollY || window.pageYOffset;\n\n      header.classList.remove(\"is-dark\", \"is-cream\");\n\n      if (!heroEnd) {\n        header.classList.add(\"is-cream\");\n        return;\n      }\n\n      const heroBottom = heroEnd.getBoundingClientRect().top + scrollY;\n\n      if (scrollY < 80) {\n        return;\n      }\n\n      if (scrollY < heroBottom - 90) {\n        header.classList.add(\"is-dark\");\n      } else {\n        header.classList.add(\"is-cream\");\n      }\n    }\n\n    function openMenu() {\n      nav.classList.add(\"is-open\");\n      document.body.classList.add(\"mt-menu-open\");\n      burger.setAttribute(\"aria-expanded\", \"true\");\n    }\n\n    function closeMenu() {\n      nav.classList.remove(\"is-open\");\n      document.body.classList.remove(\"mt-menu-open\");\n      burger.setAttribute(\"aria-expanded\", \"false\");\n    }\n\n    function toggleMenu(event) {\n      event.preventDefault();\n      event.stopPropagation();\n\n      if (nav.classList.contains(\"is-open\")) {\n        closeMenu();\n      } else {\n        openMenu();\n      }\n    }\n\n    function updateSelectedMenuItem() {\n      const path = window.location.pathname;\n      const menuLinks = nav.querySelectorAll(\".mt-menu-link\");\n\n      menuLinks.forEach(function (link) {\n        link.classList.remove(\"is-selected\");\n      });\n\n      let active = \"home\";\n\n      if (path.includes(\"\/proyectos\")) {\n        active = \"proyectos\";\n      } else if (path.includes(\"\/reflexiones\")) {\n        active = \"reflexiones\";\n      } else if (path.includes(\"\/contacto\")) {\n        active = \"contacto\";\n      } else {\n        active = \"home\";\n      }\n\n      const activeLink = nav.querySelector('[data-menu=\"' + active + '\"]');\n\n      if (activeLink) {\n        activeLink.classList.add(\"is-selected\");\n      }\n    }\n\n    function updateLanguageLinks() {\n      if (!langEN || !langES) return;\n\n      const currentPath = window.location.pathname;\n      const search = window.location.search || \"\";\n      const hash = window.location.hash || \"\";\n\n      let pathWithoutLang = currentPath;\n\n      if (currentPath.startsWith(\"\/es\/\")) {\n        pathWithoutLang = currentPath.replace(\/^\\\/es\/, \"\");\n        langES.classList.add(\"is-active\");\n        langEN.classList.remove(\"is-active\");\n      } else if (currentPath.startsWith(\"\/en\/\")) {\n        pathWithoutLang = currentPath.replace(\/^\\\/en\/, \"\");\n        langEN.classList.add(\"is-active\");\n        langES.classList.remove(\"is-active\");\n      } else {\n        langES.classList.add(\"is-active\");\n        langEN.classList.remove(\"is-active\");\n      }\n\n      if (pathWithoutLang === \"\") {\n        pathWithoutLang = \"\/\";\n      }\n\n      langES.href = \"\/es\" + pathWithoutLang + search + hash;\n      langEN.href = \"\/en\" + pathWithoutLang + search + hash;\n    }\n\n    burger.addEventListener(\"click\", toggleMenu);\n\n    if (closeBtn) {\n      closeBtn.addEventListener(\"click\", function (event) {\n        event.preventDefault();\n        event.stopPropagation();\n        closeMenu();\n      });\n    }\n\n    nav.querySelectorAll(\"a\").forEach(function (link) {\n      link.addEventListener(\"click\", function () {\n        closeMenu();\n      });\n    });\n\n    document.addEventListener(\"keydown\", function (event) {\n      if (event.key === \"Escape\") {\n        closeMenu();\n      }\n    });\n\n    window.addEventListener(\"scroll\", updateHeaderState);\n    window.addEventListener(\"resize\", updateHeaderState);\n\n    updateHeaderState();\n    updateSelectedMenuItem();\n    updateLanguageLinks();\n  }\n\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", initMacarenaHeader);\n  } else {\n    initMacarenaHeader();\n  }\n\n  window.addEventListener(\"load\", initMacarenaHeader);\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6d51529 elementor-widget elementor-widget-html\" data-id=\"6d51529\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n.etiqueta {\n  display: inline-flex !important;\n  width: fit-content !important;\n  max-width: max-content !important;\n  white-space: nowrap !important;\n  align-items: center !important;\n  justify-content: center !important;\n  padding: 4px 10px !important;\n  border-radius: 999px !important;\n  border: 1px solid #4E9288 !important;\n  background: #4E92880D !important;\n  color: #4E9288 !important;\n  font-size: 12px !important;\n  font-weight: 500 !important;\n  line-height: 1 !important;\n}\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9ab6fa1 elementor-widget elementor-widget-html\" data-id=\"9ab6fa1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n\/* Contenedor del paso detectado autom\u00e1ticamente *\/\n.work-step {\n  transition: box-shadow 0.3s ease, transform 0.3s ease;\n}\n\n\/* Estilos base del n\u00famero *\/\n.work-step .step-number {\n  color: #DCCFC0 !important;\n  font-family: \"Poppins\", sans-serif !important;\n  font-size: 60px !important;\n  font-weight: 300 !important;\n  line-height: 1 !important;\n  transition: color 0.3s ease, opacity 0.3s ease;\n}\n\n\/* Estilos base del t\u00edtulo *\/\n.work-step .step-title {\n  color: #A07C6B !important;\n  font-family: \"Poppins\", sans-serif !important;\n  font-size: 32px !important;\n  font-weight: 400 !important;\n  line-height: 1.2 !important;\n  transition: color 0.3s ease, opacity 0.3s ease;\n}\n\n\/* Hover sobre todo el contenedor del paso *\/\n.work-step:hover {\n  box-shadow: 10px 10px 10px 0 #AC8C7D33;\n}\n\n\/* Cambio de color al hacer hover *\/\n.work-step:hover .step-number {\n  color: #BFE1DB !important;\n}\n\n.work-step:hover .step-title {\n  color: #4E9288 !important;\n}\n\n\/* Estado activo al hacer scroll *\/\n.work-step.is-active {\n  box-shadow: 10px 10px 10px 0 #AC8C7D33;\n}\n\n.work-step.is-active .step-number {\n  color: #BFE1DB !important;\n}\n\n.work-step.is-active .step-title {\n  color: #4E9288 !important;\n}\n<\/style>\n\n<script>\n(function () {\n  function findStepContainer(element) {\n    let parent = element.parentElement;\n\n    while (parent && parent !== document.body) {\n      if (parent.querySelector(\".step-number\") && parent.querySelector(\".step-title\")) {\n        return parent;\n      }\n      parent = parent.parentElement;\n    }\n\n    return null;\n  }\n\n  function initWorkSteps() {\n    const numbers = document.querySelectorAll(\".step-number\");\n    const steps = [];\n\n    numbers.forEach((number) => {\n      const step = findStepContainer(number);\n\n      if (step && !step.classList.contains(\"work-step\")) {\n        step.classList.add(\"work-step\");\n        steps.push(step);\n      } else if (step && step.classList.contains(\"work-step\") && !steps.includes(step)) {\n        steps.push(step);\n      }\n    });\n\n    if (!steps.length) return;\n\n    const observer = new IntersectionObserver(\n      (entries) => {\n        const visibleSteps = entries\n          .filter((entry) => entry.isIntersecting)\n          .sort((a, b) => b.intersectionRatio - a.intersectionRatio);\n\n        if (visibleSteps.length > 0) {\n          steps.forEach((step) => step.classList.remove(\"is-active\"));\n          visibleSteps[0].target.classList.add(\"is-active\");\n        }\n      },\n      {\n        threshold: [0.25, 0.45, 0.65],\n        rootMargin: \"-20% 0px -40% 0px\"\n      }\n    );\n\n    steps.forEach((step) => observer.observe(step));\n  }\n\n  window.addEventListener(\"load\", initWorkSteps);\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f395c86 elementor-widget elementor-widget-html\" data-id=\"f395c86\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n\/* ===== PROYECTOS DESTACADOS HOME - LAYOUT ===== *\/\n\n.proyectos-destacados-home {\n  display: flex !important;\n  flex-direction: column !important;\n  gap: 26px !important;\n  width: 100% !important;\n  margin: 0 !important;\n  padding: 0 !important;\n}\n\n\/* Card horizontal *\/\n.proyectos-destacados-home article,\n.proyectos-destacados-home li,\n.proyectos-destacados-home .lps-post,\n.proyectos-destacados-home .lps-item,\n.proyectos-destacados-home .listing-item,\n.proyectos-destacados-home > * {\n  display: grid !important;\n  grid-template-columns: 300px 1fr !important;\n  align-items: stretch !important;\n  background: #ffffff !important;\n  border-radius: 22px !important;\n  overflow: hidden !important;\n  border: none !important;\n  box-shadow: none !important;\n  min-height: 300px !important;\n  margin: 0 !important;\n  padding: 0 !important;\n  cursor: pointer !important;\n  transition: background-color 0.28s ease, box-shadow 0.28s ease, transform 0.28s ease !important;\n}\n\n\/* Hover card *\/\n.proyectos-destacados-home article:hover,\n.proyectos-destacados-home li:hover,\n.proyectos-destacados-home .lps-post:hover,\n.proyectos-destacados-home .lps-item:hover,\n.proyectos-destacados-home .listing-item:hover,\n.proyectos-destacados-home > *:hover {\n  background: #EFE4D6 !important;\n  box-shadow: 10px 10px 10px 0 #AC8C7D33 !important;\n  transform: translateY(-2px) !important;\n}\n\n\/* Imagen izquierda *\/\n.proyectos-destacados-home a:has(img),\n.proyectos-destacados-home figure,\n.proyectos-destacados-home .lps-image,\n.proyectos-destacados-home .lps-thumbnail,\n.proyectos-destacados-home .post-thumbnail,\n.proyectos-destacados-home .featured-image {\n  width: 300px !important;\n  min-width: 300px !important;\n  max-width: 300px !important;\n  height: 100% !important;\n  min-height: 100% !important;\n  align-self: stretch !important;\n  margin: 0 !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  display: block !important;\n  border-radius: 0 !important;\n}\n\n\/* Imagen interna *\/\n.proyectos-destacados-home img {\n  width: 100% !important;\n  height: 100% !important;\n  min-height: 100% !important;\n  object-fit: cover !important;\n  object-position: center center !important;\n  display: block !important;\n  margin: 0 !important;\n  padding: 0 !important;\n  border-radius: 0 !important;\n}\n\n\/* Contenido derecho *\/\n.proyectos-destacados-home article > div,\n.proyectos-destacados-home li > div,\n.proyectos-destacados-home .lps-content,\n.proyectos-destacados-home .content,\n.proyectos-destacados-home .entry-content,\n.proyectos-destacados-home .listing-item-content {\n  padding: 44px 44px !important;\n  margin: 0 !important;\n  min-width: 0 !important;\n  display: flex !important;\n  flex-direction: column !important;\n  justify-content: center !important;\n}\n\n\/* T\u00edtulo *\/\n.proyectos-destacados-home h3,\n.proyectos-destacados-home h3 a {\n  font-family: \"Poppins\", sans-serif !important;\n  font-size: 28px !important;\n  line-height: 1.2 !important;\n  font-weight: 500 !important;\n  color: #111111 !important;\n  text-decoration: none !important;\n  margin: 0 0 18px 0 !important;\n  padding: 0 !important;\n  transition: color 0.28s ease !important;\n}\n\n\/* Quitar cualquier flecha accidental del t\u00edtulo *\/\n.proyectos-destacados-home h3::after,\n.proyectos-destacados-home h3 a::after {\n  content: none !important;\n  display: none !important;\n}\n\n\/* Hover t\u00edtulo *\/\n.proyectos-destacados-home article:hover h3,\n.proyectos-destacados-home article:hover h3 a,\n.proyectos-destacados-home li:hover h3,\n.proyectos-destacados-home li:hover h3 a,\n.proyectos-destacados-home .lps-post:hover h3,\n.proyectos-destacados-home .lps-post:hover h3 a,\n.proyectos-destacados-home .lps-item:hover h3,\n.proyectos-destacados-home .lps-item:hover h3 a,\n.proyectos-destacados-home .listing-item:hover h3,\n.proyectos-destacados-home .listing-item:hover h3 a,\n.proyectos-destacados-home > *:hover h3,\n.proyectos-destacados-home > *:hover h3 a {\n  color: #2B5E56 !important;\n}\n\n\/* Texto formateado *\/\n.proyectos-destacados-home .project-subtitle {\n  display: block !important;\n  font-family: \"Poppins\", sans-serif !important;\n  font-size: 17px !important;\n  line-height: 1.45 !important;\n  font-weight: 500 !important;\n  color: #A07C6B !important;\n  margin: 0 0 18px 0 !important;\n}\n\n.proyectos-destacados-home .project-desc {\n  display: block !important;\n  font-family: \"Poppins\", sans-serif !important;\n  font-size: 15px !important;\n  line-height: 1.6 !important;\n  font-weight: 400 !important;\n  color: #444444 !important;\n  margin: 0 0 20px 0 !important;\n}\n\n.proyectos-destacados-home .project-tags {\n  display: block !important;\n  font-family: \"Poppins\", sans-serif !important;\n  font-size: 13px !important;\n  line-height: 1.4 !important;\n  font-weight: 600 !important;\n  color: #2B5E56 !important;\n  margin: 0 !important;\n}\n\n\/* Ver m\u00e1s \/ View more *\/\n.proyectos-destacados-home a.project-read-more {\n  font-family: \"Poppins\", sans-serif !important;\n  font-size: 14px !important;\n  font-weight: 500 !important;\n  color: #4E9288 !important;\n  text-decoration: none !important;\n  margin-top: 22px !important;\n  align-self: flex-end !important;\n  display: inline-flex !important;\n  align-items: center !important;\n  gap: 8px !important;\n}\n\n\/* Flecha SOLO en Ver m\u00e1s \/ View more *\/\n.proyectos-destacados-home a.project-read-more::after {\n  content: \"\" !important;\n  width: 8px !important;\n  height: 8px !important;\n  border-top: 1.5px solid currentColor !important;\n  border-right: 1.5px solid currentColor !important;\n  transform: rotate(45deg) !important;\n  display: inline-block !important;\n  margin-left: 2px !important;\n}\n\n.proyectos-destacados-home a.project-read-more:hover {\n  color: #2B5E56 !important;\n}\n\n\/* Tablet *\/\n@media (max-width: 1024px) {\n  .proyectos-destacados-home article,\n  .proyectos-destacados-home li,\n  .proyectos-destacados-home .lps-post,\n  .proyectos-destacados-home .lps-item,\n  .proyectos-destacados-home .listing-item,\n  .proyectos-destacados-home > * {\n    grid-template-columns: 260px 1fr !important;\n    min-height: 260px !important;\n  }\n\n  .proyectos-destacados-home a:has(img),\n  .proyectos-destacados-home figure,\n  .proyectos-destacados-home .lps-image,\n  .proyectos-destacados-home .lps-thumbnail,\n  .proyectos-destacados-home .post-thumbnail,\n  .proyectos-destacados-home .featured-image {\n    width: 260px !important;\n    min-width: 260px !important;\n    max-width: 260px !important;\n    height: 100% !important;\n    min-height: 100% !important;\n    align-self: stretch !important;\n  }\n\n  .proyectos-destacados-home img {\n    width: 100% !important;\n    height: 100% !important;\n    min-height: 100% !important;\n    object-fit: cover !important;\n    object-position: center center !important;\n  }\n\n  .proyectos-destacados-home article > div,\n  .proyectos-destacados-home li > div,\n  .proyectos-destacados-home .lps-content,\n  .proyectos-destacados-home .content,\n  .proyectos-destacados-home .entry-content,\n  .proyectos-destacados-home .listing-item-content {\n    padding: 36px 34px !important;\n  }\n}\n\n\/* M\u00f3vil *\/\n@media (max-width: 767px) {\n  .proyectos-destacados-home article,\n  .proyectos-destacados-home li,\n  .proyectos-destacados-home .lps-post,\n  .proyectos-destacados-home .lps-item,\n  .proyectos-destacados-home .listing-item,\n  .proyectos-destacados-home > * {\n    grid-template-columns: 1fr !important;\n    min-height: auto !important;\n  }\n\n  .proyectos-destacados-home a:has(img),\n  .proyectos-destacados-home figure,\n  .proyectos-destacados-home .lps-image,\n  .proyectos-destacados-home .lps-thumbnail,\n  .proyectos-destacados-home .post-thumbnail,\n  .proyectos-destacados-home .featured-image {\n    width: 100% !important;\n    min-width: 100% !important;\n    max-width: 100% !important;\n    height: 220px !important;\n    min-height: 220px !important;\n    max-height: 220px !important;\n    overflow: hidden !important;\n  }\n\n  .proyectos-destacados-home img {\n    width: 100% !important;\n    height: 220px !important;\n    min-height: 220px !important;\n    max-height: 220px !important;\n    object-fit: cover !important;\n    object-position: center center !important;\n  }\n\n  .proyectos-destacados-home article > div,\n  .proyectos-destacados-home li > div,\n  .proyectos-destacados-home .lps-content,\n  .proyectos-destacados-home .content,\n  .proyectos-destacados-home .entry-content,\n  .proyectos-destacados-home .listing-item-content {\n    padding: 30px 26px !important;\n  }\n\n  .proyectos-destacados-home h3,\n  .proyectos-destacados-home h3 a {\n    font-size: 24px !important;\n  }\n\n  .proyectos-destacados-home a.project-read-more {\n    align-self: flex-start !important;\n  }\n}\n<\/style>\n\n<script>\n(function () {\n  function cleanProjectText(text) {\n    return (text || \"\")\n      .replace(\/\\u00a0\/g, \" \")\n      .replace(\/\\s+\/g, \" \")\n      .trim();\n  }\n\n  function extractMarker(text, marker) {\n    const regex = new RegExp(\"::\" + marker + \"::([\\\\s\\\\S]*?)::\\\\\/\" + marker + \"::\", \"i\");\n    const match = text.match(regex);\n    return match ? cleanProjectText(match[1]) : \"\";\n  }\n\n  function slugify(text) {\n    return (text || \"\")\n      .toString()\n      .normalize(\"NFD\")\n      .replace(\/[\\u0300-\\u036f]\/g, \"\")\n      .toLowerCase()\n      .trim()\n      .replace(\/&\/g, \"y\")\n      .replace(\/[^a-z0-9]+\/g, \"-\")\n      .replace(\/^-+|-+$\/g, \"\");\n  }\n\n  function getCurrentLangPrefix() {\n    const path = window.location.pathname || \"\";\n\n    if (path.startsWith(\"\/en\/\") || path === \"\/en\") {\n      return \"\/en\/\";\n    }\n\n    return \"\/es\/\";\n  }\n\n  function isEnglish() {\n    const path = window.location.pathname || \"\";\n    return path.startsWith(\"\/en\/\") || path === \"\/en\";\n  }\n\n  function getReadMoreText() {\n    return isEnglish() ? \"View more\" : \"Ver m\u00e1s\";\n  }\n\n  function getCardAriaLabel() {\n    return isEnglish() ? \"View project detail\" : \"Ver detalle del proyecto\";\n  }\n\n  function normalizeProjectTitle(text) {\n    return (text || \"\")\n      .toString()\n      .normalize(\"NFD\")\n      .replace(\/[\\u0300-\\u036f]\/g, \"\")\n      .toLowerCase()\n      .replace(\/\\s+\/g, \" \")\n      .trim();\n  }\n\n  function getProjectSlugFromTitle(titleText) {\n    const key = normalizeProjectTitle(titleText);\n\n    const projectSlugMap = {\n      \/* Incorpora *\/\n      \"plataforma de atencion social\": \"plataforma-de-atencion-social\",\n      \"social services platform\": \"plataforma-de-atencion-social\",\n      \"social care platform\": \"plataforma-de-atencion-social\",\n      \"multi-entity social platform\": \"plataforma-de-atencion-social\",\n\n      \/* SSITIZENS *\/\n      \"tokenizacion de ayudas\": \"tokenizacion-de-ayudas\",\n      \"tokenization of aid\": \"tokenizacion-de-ayudas\",\n      \"tokenisation of aid\": \"tokenizacion-de-ayudas\",\n      \"tokenization of social aid\": \"tokenizacion-de-ayudas\",\n      \"tokenisation of social aid\": \"tokenizacion-de-ayudas\",\n      \"digital identity and tokenisation for social assistance\": \"tokenizacion-de-ayudas\",\n\n      \/* GRAPERTE *\/\n      \"servicio de trazabilidad\": \"servicio-de-trazabilidad\",\n      \"traceability service\": \"servicio-de-trazabilidad\",\n      \"wine traceability service\": \"servicio-de-trazabilidad\",\n      \"industrial traceability platform for the wine industry\": \"servicio-de-trazabilidad\",\n\n      \/* Identfy *\/\n      \"ecosistema de ssi\": \"ecosistema-de-ssi\",\n      \"ssi ecosystem\": \"ecosistema-de-ssi\",\n      \"digital identity ecosystem\": \"ecosistema-de-ssi\",\n      \"ssi ecosystem for digital identity interoperability and verifiable credentials\": \"ecosistema-de-ssi\",\n\n      \/* BeatBeat *\/\n      \"solucion clinica de telemonitorizacion\": \"solucion-clinica-de-telemonitorizacion\",\n      \"clinical telemonitoring solution\": \"solucion-clinica-de-telemonitorizacion\",\n      \"clinical remote monitoring solution\": \"solucion-clinica-de-telemonitorizacion\",\n      \"remote patient monitoring with predictive ai and digital clinical follow-up\": \"solucion-clinica-de-telemonitorizacion\"\n    };\n\n    return projectSlugMap[key] || slugify(titleText);\n  }\n\n  function getProjectUrlFromTitle(title) {\n    const titleText = title ? title.textContent : \"\";\n    const slug = getProjectSlugFromTitle(titleText);\n    const langPrefix = getCurrentLangPrefix();\n\n    if (!slug) return \"#\";\n\n    return langPrefix + slug + \"\/\";\n  }\n\n  function getDirectContentContainer(card, heading) {\n    const preferred = card.querySelector(\n      \".lps-content, .content, .entry-content, .listing-item-content\"\n    );\n\n    if (preferred && !preferred.querySelector(\"img\")) {\n      return preferred;\n    }\n\n    let current = heading ? heading.parentElement : null;\n\n    while (current && current !== card) {\n      if (current.parentElement === card) {\n        return current;\n      }\n\n      current = current.parentElement;\n    }\n\n    return heading ? heading.parentElement : null;\n  }\n\n  function makeCardClickable(card, detailUrl) {\n    if (!detailUrl || detailUrl === \"#\") return;\n\n    card.style.cursor = \"pointer\";\n    card.setAttribute(\"role\", \"link\");\n    card.setAttribute(\"tabindex\", \"0\");\n    card.setAttribute(\"aria-label\", getCardAriaLabel());\n\n    if (card.dataset.clickableReady === \"true\") return;\n\n    card.addEventListener(\"click\", function (event) {\n      const clickedLink = event.target.closest(\"a\");\n\n      if (clickedLink) {\n        return;\n      }\n\n      window.location.href = detailUrl;\n    });\n\n    card.addEventListener(\"keydown\", function (event) {\n      if (event.key === \"Enter\") {\n        window.location.href = detailUrl;\n      }\n    });\n\n    card.dataset.clickableReady = \"true\";\n  }\n\n  function removeWrongTitleArrows(card) {\n    const titleLinks = card.querySelectorAll(\"h3 a\");\n\n    titleLinks.forEach(function (link) {\n      link.classList.remove(\"project-read-more\");\n    });\n  }\n\n  function formatProjectCards() {\n    const cards = document.querySelectorAll(\n      \".proyectos-destacados-home article, \" +\n      \".proyectos-destacados-home li, \" +\n      \".proyectos-destacados-home .lps-post, \" +\n      \".proyectos-destacados-home .lps-item, \" +\n      \".proyectos-destacados-home .listing-item, \" +\n      \".proyectos-destacados-home > *\"\n    );\n\n    cards.forEach(function (card) {\n      if (card.dataset.projectFormatted === \"true\") {\n        removeWrongTitleArrows(card);\n        return;\n      }\n\n      const fullText = card.textContent || \"\";\n\n      if (\n        !fullText.includes(\"::sub::\") &&\n        !fullText.includes(\"::desc::\") &&\n        !fullText.includes(\"::tags::\")\n      ) {\n        return;\n      }\n\n      const title = card.querySelector(\"h3\");\n      const contentContainer = getDirectContentContainer(card, title);\n\n      if (!title || !contentContainer) return;\n\n      const subtitle = extractMarker(fullText, \"sub\");\n      const desc = extractMarker(fullText, \"desc\");\n      const tags = extractMarker(fullText, \"tags\");\n\n      const detailUrl = getProjectUrlFromTitle(title);\n      const titleText = cleanProjectText(title.textContent);\n\n      const titleHTML =\n        '<h3><a href=\"' + detailUrl + '\">' + titleText + \"<\/a><\/h3>\";\n\n      const readMoreHTML =\n        '<a class=\"project-read-more\" href=\"' + detailUrl + '\">' + getReadMoreText() + \"<\/a>\";\n\n      contentContainer.innerHTML =\n        titleHTML +\n        (subtitle ? '<span class=\"project-subtitle\">' + subtitle + \"<\/span>\" : \"\") +\n        (desc ? '<span class=\"project-desc\">' + desc + \"<\/span>\" : \"\") +\n        (tags ? '<span class=\"project-tags\">' + tags + \"<\/span>\" : \"\") +\n        readMoreHTML;\n\n      const imageLinks = card.querySelectorAll(\"a:has(img)\");\n      imageLinks.forEach(function (link) {\n        link.setAttribute(\"href\", detailUrl);\n      });\n\n      removeWrongTitleArrows(card);\n      makeCardClickable(card, detailUrl);\n\n      card.dataset.projectFormatted = \"true\";\n    });\n  }\n\n  function runProjectFormatting() {\n    formatProjectCards();\n\n    setTimeout(formatProjectCards, 300);\n    setTimeout(formatProjectCards, 900);\n    setTimeout(formatProjectCards, 1800);\n  }\n\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", runProjectFormatting);\n  } else {\n    runProjectFormatting();\n  }\n\n  window.addEventListener(\"load\", runProjectFormatting);\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-eacab71 elementor-widget elementor-widget-html\" data-id=\"eacab71\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n\/* ===== INSIGHTS HOME CARDS ===== *\/\n\n\/* Card base *\/\n.insights-home article,\n.insights-home li,\n.insights-home .lps-post,\n.insights-home .lps-item,\n.insights-home .listing-item,\n.insights-home > * {\n  background: #ffffff !important;\n  border-radius: 22px !important;\n  overflow: hidden !important;\n  border: none !important;\n  box-shadow: none !important;\n  transition: box-shadow 0.28s ease, transform 0.28s ease !important;\n}\n\n\/* Imagen rectangular *\/\n.insights-home img {\n  width: 100% !important;\n  height: 190px !important;\n  max-height: 190px !important;\n  object-fit: cover !important;\n  object-position: center center !important;\n  display: block !important;\n  border-radius: 0 !important;\n  margin: 0 !important;\n  padding: 0 !important;\n}\n\n\/* Enlace o contenedor que envuelve la imagen *\/\n.insights-home a:has(img),\n.insights-home figure,\n.insights-home .lps-image,\n.insights-home .lps-thumbnail,\n.insights-home .post-thumbnail,\n.insights-home .featured-image {\n  width: 100% !important;\n  height: 190px !important;\n  max-height: 190px !important;\n  overflow: hidden !important;\n  display: block !important;\n  margin: 0 !important;\n  padding: 0 !important;\n  border-radius: 0 !important;\n}\n\n\/* T\u00edtulo *\/\n.insights-home h3,\n.insights-home h3 a {\n  font-family: \"Poppins\", sans-serif !important;\n  font-size: 22px !important;\n  line-height: 1.25 !important;\n  font-weight: 500 !important;\n  color: #111111 !important;\n  text-decoration: none !important;\n  transition: color 0.28s ease !important;\n}\n\n\/* Evita flechas accidentales en t\u00edtulos *\/\n.insights-home h3::after,\n.insights-home h3 a::after {\n  content: none !important;\n  display: none !important;\n}\n\n\/* Hover de card *\/\n.insights-home article:hover,\n.insights-home li:hover,\n.insights-home .lps-post:hover,\n.insights-home .lps-item:hover,\n.insights-home .listing-item:hover,\n.insights-home > *:hover {\n  box-shadow: 10px 10px 10px 0 #AC8C7D33 !important;\n  transform: translateY(-2px) !important;\n}\n\n\/* Hover del t\u00edtulo cuando haces hover en la card *\/\n.insights-home article:hover h3,\n.insights-home article:hover h3 a,\n.insights-home li:hover h3,\n.insights-home li:hover h3 a,\n.insights-home .lps-post:hover h3,\n.insights-home .lps-post:hover h3 a,\n.insights-home .lps-item:hover h3,\n.insights-home .lps-item:hover h3 a,\n.insights-home .listing-item:hover h3,\n.insights-home .listing-item:hover h3 a,\n.insights-home > *:hover h3,\n.insights-home > *:hover h3 a {\n  color: #2B5E56 !important;\n}\n\n\/* Leer m\u00e1s \/ Ver m\u00e1s \/ Read more \/ View more *\/\n.insights-home a.insight-read-more {\n  font-family: \"Poppins\", sans-serif !important;\n  font-size: 14px !important;\n  font-weight: 500 !important;\n  color: #4E9288 !important;\n  text-decoration: none !important;\n  display: inline-flex !important;\n  align-items: center !important;\n  gap: 8px !important;\n  transition: color 0.28s ease !important;\n}\n\n\/* Flecha angular SOLO en leer m\u00e1s *\/\n.insights-home a.insight-read-more::after {\n  content: \"\" !important;\n  width: 8px !important;\n  height: 8px !important;\n  border-top: 1.5px solid currentColor !important;\n  border-right: 1.5px solid currentColor !important;\n  transform: rotate(45deg) !important;\n  display: inline-block !important;\n  margin-left: 2px !important;\n}\n\n.insights-home a.insight-read-more:hover {\n  color: #2B5E56 !important;\n}\n\n\/* Por seguridad: cualquier enlace no marcado como leer m\u00e1s no recibe flecha *\/\n.insights-home a:not(.insight-read-more)::after {\n  content: none !important;\n  display: none !important;\n}\n\n\/* Tablet *\/\n@media (max-width: 1024px) {\n  .insights-home img,\n  .insights-home a:has(img),\n  .insights-home figure,\n  .insights-home .lps-image,\n  .insights-home .lps-thumbnail,\n  .insights-home .post-thumbnail,\n  .insights-home .featured-image {\n    height: 180px !important;\n    max-height: 180px !important;\n  }\n}\n\n\/* M\u00f3vil *\/\n@media (max-width: 767px) {\n  .insights-home img,\n  .insights-home a:has(img),\n  .insights-home figure,\n  .insights-home .lps-image,\n  .insights-home .lps-thumbnail,\n  .insights-home .post-thumbnail,\n  .insights-home .featured-image {\n    height: 190px !important;\n    max-height: 190px !important;\n  }\n\n  .insights-home h3,\n  .insights-home h3 a {\n    font-size: 21px !important;\n  }\n\n  .insights-home a.insight-read-more {\n    font-size: 14px !important;\n  }\n}\n<\/style>\n\n<script>\n(function () {\n  function cleanText(text) {\n    return (text || \"\")\n      .replace(\/\\u00a0\/g, \" \")\n      .replace(\/\\s+\/g, \" \")\n      .trim();\n  }\n\n  function isReadMoreLink(link) {\n    const text = cleanText(link.textContent).toLowerCase();\n\n    return (\n      text.includes(\"leer m\u00e1s\") ||\n      text.includes(\"leer mas\") ||\n      text.includes(\"ver m\u00e1s\") ||\n      text.includes(\"ver mas\") ||\n      text.includes(\"read more\") ||\n      text.includes(\"view more\")\n    );\n  }\n\n  function cleanArrowCharacters(link) {\n    link.childNodes.forEach(function (node) {\n      if (node.nodeType === Node.TEXT_NODE) {\n        node.textContent = cleanText(\n          node.textContent\n            .replace(\/[>\u2192\u2197\u279c\u279d\u279e\u2794]\/g, \"\")\n        );\n      }\n    });\n  }\n\n  function prepareInsightsHomeCards() {\n    const root = document.querySelector(\".insights-home\");\n    if (!root) return;\n\n    const links = root.querySelectorAll(\"a\");\n\n    links.forEach(function (link) {\n      const isImageLink = !!link.querySelector(\"img\");\n      const isTitleLink = !!link.closest(\"h1, h2, h3, h4, h5, h6\");\n\n      link.classList.remove(\"insight-read-more\");\n\n      if (isImageLink || isTitleLink) {\n        return;\n      }\n\n      if (isReadMoreLink(link)) {\n        cleanArrowCharacters(link);\n        link.classList.add(\"insight-read-more\");\n      }\n    });\n  }\n\n  function runInsightsHomeCards() {\n    prepareInsightsHomeCards();\n\n    setTimeout(prepareInsightsHomeCards, 300);\n    setTimeout(prepareInsightsHomeCards, 900);\n    setTimeout(prepareInsightsHomeCards, 1800);\n  }\n\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", runInsightsHomeCards);\n  } else {\n    runInsightsHomeCards();\n  }\n\n  window.addEventListener(\"load\", runInsightsHomeCards);\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bb32589 elementor-widget elementor-widget-html\" data-id=\"bb32589\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\n(function () {\n  function adjustFooterContactMobile() {\n    if (window.innerWidth > 767) return;\n\n    const footerContact = document.querySelector(\".footer-contact-links\");\n    if (!footerContact) return;\n\n    const links = footerContact.querySelectorAll(\"a\");\n    if (!links.length) return;\n\n    footerContact.style.setProperty(\"width\", \"100%\", \"important\");\n    footerContact.style.setProperty(\"display\", \"flex\", \"important\");\n    footerContact.style.setProperty(\"flex-direction\", \"column\", \"important\");\n    footerContact.style.setProperty(\"align-items\", \"flex-end\", \"important\");\n    footerContact.style.setProperty(\"gap\", \"8px\", \"important\");\n    footerContact.style.setProperty(\"text-align\", \"right\", \"important\");\n\n    links.forEach(function (link) {\n      link.style.setProperty(\"display\", \"inline-block\", \"important\");\n      link.style.setProperty(\"width\", \"auto\", \"important\");\n      link.style.setProperty(\"text-align\", \"right\", \"important\");\n    });\n  }\n\n  function resetFooterContactDesktop() {\n    if (window.innerWidth <= 767) return;\n\n    const footerContact = document.querySelector(\".footer-contact-links\");\n    if (!footerContact) return;\n\n    const links = footerContact.querySelectorAll(\"a\");\n\n    footerContact.style.removeProperty(\"width\");\n    footerContact.style.removeProperty(\"display\");\n    footerContact.style.removeProperty(\"flex-direction\");\n    footerContact.style.removeProperty(\"align-items\");\n    footerContact.style.removeProperty(\"gap\");\n    footerContact.style.removeProperty(\"text-align\");\n\n    links.forEach(function (link) {\n      link.style.removeProperty(\"display\");\n      link.style.removeProperty(\"width\");\n      link.style.removeProperty(\"text-align\");\n    });\n  }\n\n  function updateFooterContactLayout() {\n    adjustFooterContactMobile();\n    resetFooterContactDesktop();\n  }\n\n  document.addEventListener(\"DOMContentLoaded\", function () {\n    setTimeout(updateFooterContactLayout, 300);\n  });\n\n  window.addEventListener(\"load\", function () {\n    setTimeout(updateFooterContactLayout, 300);\n    setTimeout(updateFooterContactLayout, 1000);\n  });\n\n  window.addEventListener(\"resize\", function () {\n    setTimeout(updateFooterContactLayout, 150);\n  });\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-431f0ae e-con-full e-flex e-con e-child\" data-id=\"431f0ae\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<p class=\"Body1 e-19ff16e-a857166 e-paragraph-base\" data-interaction-id=\"19ff16e\"><a href=\"https:\/\/macarenatorralba.es\/es\/politica-de-privacidad\/\" target=\"_self\" class=\"e-paragraph-link-base\">\n\t\tPol\u00edtica de Privacidad\n\t<\/a><\/p>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Pol\u00edtica de privacidad, informaci\u00f3n legal y cookies \u00daltima actualizaci\u00f3n: junio de 2026 Esta p\u00e1gina recoge la informaci\u00f3n legal b\u00e1sica de este sitio web, incluyendo la pol\u00edtica de privacidad, el aviso legal y la pol\u00edtica de cookies. La web macarenatorralba.es es un portfolio personal y profesional creado para mostrar mi trabajo, trayectoria, proyectos, reflexiones y formas [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-3","page","type-page","status-publish","hentry"],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/macarenatorralba.es\/en\/wp-json\/wp\/v2\/pages\/3","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/macarenatorralba.es\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/macarenatorralba.es\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/macarenatorralba.es\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/macarenatorralba.es\/en\/wp-json\/wp\/v2\/comments?post=3"}],"version-history":[{"count":55,"href":"https:\/\/macarenatorralba.es\/en\/wp-json\/wp\/v2\/pages\/3\/revisions"}],"predecessor-version":[{"id":2063,"href":"https:\/\/macarenatorralba.es\/en\/wp-json\/wp\/v2\/pages\/3\/revisions\/2063"}],"wp:attachment":[{"href":"https:\/\/macarenatorralba.es\/en\/wp-json\/wp\/v2\/media?parent=3"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}