{"id":1247,"date":"2026-09-02T16:13:29","date_gmt":"2026-09-02T14:13:29","guid":{"rendered":"https:\/\/onode.es\/servicios\/cumplimiento-normativo\/"},"modified":"2026-10-01T12:23:49","modified_gmt":"2026-10-01T10:23:49","slug":"cumplimiento-normativo","status":"publish","type":"page","link":"https:\/\/onode.es\/es\/servicios\/cumplimiento-normativo\/","title":{"rendered":"Risk &#038; Compliance"},"content":{"rendered":"<div class=\"et_pb_section_0 et_pb_section et_section_regular et_block_section et_animated hero-manchas onode-fluid-section\">\n<div class=\"et_pb_row_0 et_pb_row et_block_row\">\n<div class=\"et_pb_column_0 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough\">\n<div class=\"et_pb_code_0 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><!-- ============================================================\n  EFECTO MANCHAS ANIMADAS \u2014 onode.thelab.es\n  Pegar en un m\u00f3dulo \"C\u00f3digo\" de Divi dentro de la secci\u00f3n hero.\n  La secci\u00f3n debe tener la clase CSS personalizada: hero-manchas\n  ============================================================ --><style id=\"blob-style\">.hero-manchas {\n    position: fixed !important;\n    overflow: hidden !important;\n    top: 0px!important;\n  }\n  #blob-canvas-wrapper {\n    position: absolute;\n    inset: 0;\n    pointer-events: none;\n    z-index: 0;\n  }\n  \/* Degradado inferior hacia blanco *\/\n  #blob-canvas-wrapper::after {\n    content: '';\n    position: absolute;\n    bottom: 0; left: 0; right: 0;\n    height: 45%;\n    \/*background: linear-gradient(to bottom, transparent, #91C0DB);*\/\n    pointer-events: none;\n    z-index: 2;\n  }\n  #blob-canvas {\n    width: 100%;\n    height: 100%;\n    display: block;\n    filter: blur(72px) saturate(1.4);\n  }\n  .hero-manchas > *:not(#blob-canvas-wrapper) {\n    position: relative;\n    z-index: 1;\n  }\n<\/style><script>(function () {\n  function initBlobs() {\n    var hero = document.querySelector('.hero-manchas');\n    if (!hero || document.getElementById('blob-canvas-wrapper')) return;\n \n    \/* --- Canvas --- *\/\n    var wrapper = document.createElement('div');\n    wrapper.id = 'blob-canvas-wrapper';\n    var canvas = document.createElement('canvas');\n    canvas.id = 'blob-canvas';\n    wrapper.appendChild(canvas);\n    hero.insertBefore(wrapper, hero.firstChild);\n \n    var ctx = canvas.getContext('2d');\n    var W, H;\n    function resize() { W = canvas.width = hero.offsetWidth; H = canvas.height = hero.offsetHeight; }\n    resize();\n    window.addEventListener('resize', resize);\n \n    \/* --- Rat\u00f3n: solo activo mientras se mueve --- *\/\n    var mouse = { x: 0, y: 0, active: false };\n    var mouseTimer = null;\n    document.addEventListener('mousemove', function (e) {\n      var rect = hero.getBoundingClientRect();\n      mouse.x = e.clientX - rect.left;\n      mouse.y = e.clientY - rect.top;\n      mouse.active = true;\n      clearTimeout(mouseTimer);\n      mouseTimer = setTimeout(function () { mouse.active = false; }, 300);\n    });\n \n    \/* --- Manchas --- *\/\n    var blobs = [\n      {\n        x: W * 0.28, y: H * 0.45,\n        vx: 1.1, vy: 0.75,\n        r: 680,\n        color: [50, 85, 114], alpha: 0.82,\n        ox: [{ a: 1.4, f: 0.009 }, { a: 0.7, f: 0.017 }],\n        oy: [{ a: 1.0, f: 0.007 }, { a: 0.8, f: 0.013 }],\n        phase: 0,\n        attract: 0.008\n      },\n      {\n        x: W * 0.68, y: H * 0.52,\n        vx: -0.9, vy: 0.85,\n        r: 600,\n        color: [145, 192, 219], alpha: 0.78,\n        ox: [{ a: 1.2, f: 0.008 }, { a: 0.7, f: 0.015 }],\n        oy: [{ a: 1.1, f: 0.011 }, { a: 0.6, f: 0.006 }],\n        phase: 2.5,\n        attract: 0.007\n      }\n    ];\n \n    function drawBlob(b) {\n      var r = b.color[0], g = b.color[1], bl = b.color[2];\n      var grad = ctx.createRadialGradient(b.x, b.y, 0, b.x, b.y, b.r);\n      grad.addColorStop(0,   'rgba('+r+','+g+','+bl+','+b.alpha+')');\n      grad.addColorStop(0.5, 'rgba('+r+','+g+','+bl+','+(b.alpha*0.45)+')');\n      grad.addColorStop(1,   'rgba('+r+','+g+','+bl+',0)');\n      ctx.beginPath();\n      ctx.arc(b.x, b.y, b.r, 0, Math.PI * 2);\n      ctx.fillStyle = grad;\n      ctx.fill();\n    }\n \n    var t = 0;\n    function animate() {\n      t++;\n      ctx.clearRect(0, 0, W, H);\n \n      blobs.forEach(function (b) {\n        \/* Movimiento aut\u00f3nomo: velocidad base + oscilaciones en capas *\/\n        var driftX = b.ox.reduce(function (s, o) { return s + Math.sin(t * o.f + b.phase) * o.a; }, 0);\n        var driftY = b.oy.reduce(function (s, o) { return s + Math.cos(t * o.f + b.phase) * o.a; }, 0);\n        b.x += b.vx + driftX;\n        b.y += b.vy + driftY;\n \n        \/* Atracci\u00f3n solo cuando el rat\u00f3n se est\u00e1 moviendo *\/\n        if (mouse.active) {\n          b.x += (mouse.x - b.x) * b.attract;\n          b.y += (mouse.y - b.y) * b.attract;\n        }\n \n        \/* Rebote suave en bordes *\/\n        var m = b.r * 0.2;\n        if (b.x < m)     { b.x = m;     b.vx =  Math.abs(b.vx); }\n        if (b.x > W - m) { b.x = W - m; b.vx = -Math.abs(b.vx); }\n        if (b.y < m)     { b.y = m;     b.vy =  Math.abs(b.vy); }\n        if (b.y > H - m) { b.y = H - m; b.vy = -Math.abs(b.vy); }\n \n        drawBlob(b);\n      });\n \n      requestAnimationFrame(animate);\n    }\n    animate();\n  }\n \n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', initBlobs);\n  } else {\n    initBlobs();\n  }\n})();\n<\/script><\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_1 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_1 et_pb_row et_block_row\">\n<div class=\"et_pb_column_1 et_pb_column et_pb_column_4_4 et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough\">\n<div class=\"et_pb_text_0 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p>Servicio<\/p>\n<\/div><\/div>\n\n<div class=\"et_pb_text_1 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p>Risk & Compliance<\/p>\n<\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_2 et_pb_section et_section_regular et_block_section\">\n<div class=\"et_pb_row_2 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_2 et_pb_column et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_text_2 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p><span>Seguridad jur\u00eddica y cumplimiento normativo para la transformaci\u00f3n digital<\/span><\/p>\n<\/div><\/div>\n\n<div class=\"et_pb_text_3 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p style=\"text-align: justify;\"><span>La digitalizaci\u00f3n lleva consigo grandes oportunidades, pero tambi\u00e9n nuevos riesgos legales, \u00e9ticos y tecnol\u00f3gicos.<\/span><strong>Risk & Compliance<\/strong> <span>es nuestro servicio especializado a garantizar la <strong>seguridad jur\u00eddica, el cumplimiento normativo estricto y la protecci\u00f3n de datos<\/strong> en el desarrollo, implantaci\u00f3n y uso de soluciones inform\u00e1ticas.<\/span><\/p>\n<p style=\"text-align: justify;\"><span>Acompa\u00f1amos a nuestros clientes desde el asesoramiento jur\u00eddico experto, poniendo el foco en tres pilares clave: la <strong>Inteligencia Artificial Responsable<\/strong>, el <strong>Esquema Nacional de Seguridad (<\/strong><\/span><strong>ENS)<\/strong><span> y la normativa de <strong>protecci\u00f3n de datos<\/strong>, integrando adem\u00e1s los requisitos derivados del <strong>Reglamento Europeo de Inteligencia Artificial<\/strong>.<\/span><\/p>\n<\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_3 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_3 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_3 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_text_4 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p><span>\u00c1reas de especializaci\u00f3n<\/span><\/p>\n<\/div><\/div>\n\n<div class=\"et_pb_code_1 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Outfit:wght@300;400;500;600;700&display=swap\" rel=\"stylesheet\">\n\n<div class=\"onode-servicios\">\n\n  <!-- FOTO (solo en ordenador) -->\n  <div class=\"onode-servicios__media\">\n    <div class=\"onode-servicios__photo\">\n              <img class=\"onode-serv-photo is-active\" data-index=\"0\" loading=\"eager\" decoding=\"async\" fetchpriority=\"high\" src=\"https:\/\/onode.es\/wp-content\/uploads\/2026\/10\/IA-Responsable-scaled.jpeg\" alt=\"IA Responsable\" style=\"object-position: center top;\">\n              <img class=\"onode-serv-photo\" data-index=\"1\" loading=\"eager\" decoding=\"async\" src=\"https:\/\/onode.es\/wp-content\/uploads\/2026\/10\/Esquema-Nacional-de-Seguretat-ENS.jpeg\" alt=\"Esquema Nacional de Seguridad (ENS)\" style=\"object-position: center top;\">\n              <img class=\"onode-serv-photo\" data-index=\"2\" loading=\"eager\" decoding=\"async\" src=\"https:\/\/onode.es\/wp-content\/uploads\/2026\/10\/Proteccio-de-Dades-scaled.jpeg\" alt=\"Protecci\u00f3n de Datos\" style=\"object-position: center top;\">\n              <img class=\"onode-serv-photo\" data-index=\"3\" loading=\"eager\" decoding=\"async\" src=\"https:\/\/onode.es\/wp-content\/uploads\/2026\/10\/Reglament-Europeu-dIntelligencia-Artificial-Reglament-IA-scaled.jpeg\" alt=\"Reglamento Europeo de Inteligencia Artificial (Reglamento IA)\" style=\"object-position: center top;\">\n          <\/div>\n  <\/div>\n\n  <!-- ACORDE\u00d3N -->\n  <div class=\"onode-servicios__list\">\n          <div class=\"onode-servicios__item is-active\" data-index=\"0\" tabindex=\"0\" role=\"button\" aria-expanded=\"true\">\n        <div class=\"onode-servicios__head\">\n          <h3>IA Responsable<\/h3>\n          <span class=\"onode-servicios__icon\" aria-hidden=\"true\"><\/span>\n        <\/div>\n        <div class=\"onode-servicios__desc\">\n          <div class=\"onode-servicios__desc-inner\">\n            <div class=\"onode-servicios__desc-text\">Asesoramos en el dise\u00f1o, desarrollo e implantaci\u00f3n de sistemas de inteligencia artificial conforme a criterios de transparencia, no discriminaci\u00f3n, supervisi\u00f3n humana y responsabilidad. Ayudamos a las organizaciones a anticiparse a las obligaciones legales y a construir soluciones de IA fiables y alineadas con los principios \u00e9ticos exigidos por la normativa europea.<\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n          <div class=\"onode-servicios__item\" data-index=\"1\" tabindex=\"0\" role=\"button\" aria-expanded=\"false\">\n        <div class=\"onode-servicios__head\">\n          <h3>Esquema Nacional de Seguridad (ENS)<\/h3>\n          <span class=\"onode-servicios__icon\" aria-hidden=\"true\"><\/span>\n        <\/div>\n        <div class=\"onode-servicios__desc\">\n          <div class=\"onode-servicios__desc-inner\">\n            <div class=\"onode-servicios__desc-text\">Apoyo integral en la adecuaci\u00f3n de sistemas y procesos al ENS, garantizando que las soluciones inform\u00e1ticas cumplen con los requerimientos t\u00e9cnicos y organizativos en materia de seguridad de la informaci\u00f3n.<\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n          <div class=\"onode-servicios__item\" data-index=\"2\" tabindex=\"0\" role=\"button\" aria-expanded=\"false\">\n        <div class=\"onode-servicios__head\">\n          <h3>Protecci\u00f3n de Datos<\/h3>\n          <span class=\"onode-servicios__icon\" aria-hidden=\"true\"><\/span>\n        <\/div>\n        <div class=\"onode-servicios__desc\">\n          <div class=\"onode-servicios__desc-inner\">\n            <div class=\"onode-servicios__desc-text\">Asesoramiento jur\u00eddico especializado en materia de protecci\u00f3n de datos, incluyendo la elaboraci\u00f3n de an\u00e1lisis de riesgos, evaluaci\u00f3n de impacto en la protecci\u00f3n de datos y el dise\u00f1o de medidas de privacidad desde el dise\u00f1o y por defecto (privacy by design &amp; by default), as\u00ed como el apoyo a la funci\u00f3n de Delegado de Protecci\u00f3n de Datos.<\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n          <div class=\"onode-servicios__item\" data-index=\"3\" tabindex=\"0\" role=\"button\" aria-expanded=\"false\">\n        <div class=\"onode-servicios__head\">\n          <h3>Reglamento Europeo de Inteligencia Artificial (Reglamento IA)<\/h3>\n          <span class=\"onode-servicios__icon\" aria-hidden=\"true\"><\/span>\n        <\/div>\n        <div class=\"onode-servicios__desc\">\n          <div class=\"onode-servicios__desc-inner\">\n            <div class=\"onode-servicios__desc-text\">An\u00e1lisis de clasificaci\u00f3n de riesgo de los sistemas de IA conforme al Reglamento IA, definici\u00f3n de obligaciones aplicables seg\u00fan el nivel de riesgo, y acompa\u00f1amiento en la implementaci\u00f3n de los requisitos de gobernanza, documentaci\u00f3n t\u00e9cnica, transparencia y supervisi\u00f3n humana exigidos por la norma.<\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n      <\/div>\n<\/div>\n\n<style>\n.onode-servicios, .onode-servicios *, .onode-servicios *::before, .onode-servicios *::after {\n  box-sizing: border-box;\n}\n.onode-servicios {\n  --photo-min-height: 460px;\n  position: relative;\n  display: grid;\n  grid-template-columns: 0.9fr 1fr;\n  gap: 90px;\n  align-items: start;\n  width: 100%;\n  max-width: none;\n  margin: 0;\n  padding: 0;\n  font-family: 'Outfit', sans-serif;\n}\n\n\/* ---------- FOTO (ordenador) ---------- *\/\n\/* La altura la calcula el script: la del acorde\u00f3n con la descripci\u00f3n m\u00e1s larga abierta *\/\n.onode-servicios__photo {\n  position: relative;\n  height: var(--photo-min-height);\n  min-height: var(--photo-min-height);\n  border-radius: 19px;\n  overflow: hidden;\n  background: #dfe6ea;\n}\n.onode-servicios__photo img {\n  position: absolute;\n  inset: 0;\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n  object-position: top;\n  display: block;\n  margin: 0;\n  opacity: 0;\n}\n.onode-servicios__photo img.is-active {\n  opacity: 1;\n}\n.onode-servicios__photo::after {\n  content: \"\";\n  position: absolute;\n  inset: 0;\n  background-color: #335673;\n  opacity: 0.4;\n  mix-blend-mode: multiply;\n  pointer-events: none;\n  z-index: 1;\n}\n\n\/* ---------- ACORDE\u00d3N ---------- *\/\n.onode-servicios__list {\n  position: relative;\n  z-index: 5;\n  display: flex;\n  flex-direction: column;\n  align-self: center; \/* Centrado en vertical respecto a la foto *\/\n  margin-top: 0;\n  pointer-events: auto;\n}\n.onode-servicios__item {\n  position: relative;\n  padding: 28px 0;\n  border-bottom: 1px solid #c3d0d9;\n  cursor: pointer;\n  outline: none;\n  pointer-events: auto;\n  transition: border-color .25s ease;\n}\n.onode-servicios__item:first-child {\n  padding-top: 0;\n}\n.onode-servicios__item:focus-visible {\n  outline: 2px solid #335673;\n  outline-offset: 4px;\n}\n.onode-servicios__item.is-active {\n  border-bottom-color: #335673;\n}\n\n\/* Cabecera: t\u00edtulo a la izquierda, flecha a la derecha *\/\n.onode-servicios__head {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 24px;\n}\n\/* T\u00edtulo de cada pesta\u00f1a *\/\n.onode-servicios__item h3 {\n  margin: 0;\n  font-size: 32px;\n  font-weight: 700;\n  line-height: 1.15;\n  color: #a3b7c4;\n  transition: color .25s ease;\n}\n.onode-servicios__item.is-active h3 {\n  color: #335673;\n}\n\n\/* Flecha *\/\n.onode-servicios__icon {\n  display: block;\n  flex: 0 0 auto;\n  width: 14px;\n  height: 14px;\n  margin-right: 6px;\n  border-right: 2px solid #93a9b8;\n  border-bottom: 2px solid #93a9b8;\n  transform: rotate(45deg);\n  transition: transform .3s ease, border-color .3s ease;\n}\n.onode-servicios__item.is-active .onode-servicios__icon {\n  transform: rotate(-135deg);\n  border-color: #335673;\n}\n\n\/* Descripci\u00f3n desplegable *\/\n.onode-servicios__desc {\n  display: grid;\n  grid-template-rows: 0fr;\n  transition: grid-template-rows .35s ease;\n}\n.onode-servicios__item.is-active .onode-servicios__desc {\n  grid-template-rows: 1fr;\n}\n.onode-servicios__desc-inner {\n  overflow: hidden;\n  min-height: 0;\n}\n.onode-servicios__desc-text {\n  padding-top: 16px;\n  color: #335673;\n  font-size: 20px;\n  line-height: 1.5;\n  font-weight: 300;\n}\n\n\/* ---------- M\u00d3VIL ---------- *\/\n@media (max-width: 900px) {\n  .onode-servicios {\n    grid-template-columns: 1fr;\n    gap: 0;\n    padding: 0;\n  }\n\n  \/* Se oculta la foto *\/\n  .onode-servicios__media {\n    display: none;\n  }\n\n  .onode-servicios__list {\n    margin-top: 0 !important;\n  }\n  .onode-servicios__item {\n    padding: 22px 0;\n  }\n  .onode-servicios__item:first-child {\n    padding-top: 22px;\n  }\n  .onode-servicios__head {\n    gap: 16px;\n  }\n  .onode-servicios__item h3 {\n    font-size: 24px;\n  }\n  .onode-servicios__icon {\n    width: 12px;\n    height: 12px;\n    margin-right: 4px;\n  }\n  .onode-servicios__desc-text {\n    padding-top: 14px;\n    font-size: 17px;\n    line-height: 1.55;\n  }\n}\n<\/style>\n\n<script>\n(function () {\n\n  \/\/ Retardo antes de abrir al pasar el rat\u00f3n (0 = al instante)\n  var HOVER_DELAY = 0;\n  \/\/ Pausa breve mientras se abre una pesta\u00f1a (evita el efecto rebote)\n  var ANIMATION_LOCK = 250;\n\n  \/\/ \u00bfDispositivo con rat\u00f3n? (en m\u00f3vil\/tablet se sigue abriendo al tocar)\n  function canHover() {\n    return window.matchMedia &&\n      window.matchMedia('(hover: hover) and (pointer: fine)').matches &&\n      window.innerWidth > 900;\n  }\n\n  function initServicios(wrap) {\n    \/\/ Evita activar dos veces el mismo acorde\u00f3n\n    if (wrap.getAttribute(\"data-onode-init\") === \"1\") return;\n    wrap.setAttribute(\"data-onode-init\", \"1\");\n\n    var photos = wrap.querySelectorAll(\".onode-serv-photo\");\n    var items = wrap.querySelectorAll(\".onode-servicios__item\");\n    var list = wrap.querySelector(\".onode-servicios__list\");\n    var photoBox = wrap.querySelector(\".onode-servicios__photo\");\n    var inners = wrap.querySelectorAll(\".onode-servicios__desc-inner\");\n    var texts = wrap.querySelectorAll(\".onode-servicios__desc-text\");\n\n    var activeIndex = 0;\n    var hoveredIndex = -1;\n    var hoverTimer = null;\n    var lockUntil = 0;\n\n    photos.forEach(function (p) {\n      if (p.decode) {\n        p.decode().catch(function () {});\n      }\n    });\n\n    \/\/ Calcula la altura m\u00e1xima del acorde\u00f3n (con la descripci\u00f3n m\u00e1s larga abierta)\n    \/\/ y se la aplica a la foto para que no cambie de tama\u00f1o\n    function fixPhotoHeight() {\n      if (!photoBox || window.innerWidth <= 900) return;\n\n      \/\/ Altura del acorde\u00f3n sin ninguna descripci\u00f3n abierta\n      var openNow = 0;\n      inners.forEach(function (el) {\n        openNow += el.offsetHeight;\n      });\n      var closedHeight = list.offsetHeight - openNow;\n\n      \/\/ Descripci\u00f3n m\u00e1s alta\n      var maxDesc = 0;\n      texts.forEach(function (el) {\n        maxDesc = Math.max(maxDesc, el.offsetHeight);\n      });\n\n      photoBox.style.height = Math.ceil(closedHeight + maxDesc) + \"px\";\n    }\n\n    function setActive(index) {\n      if (index === activeIndex) return;\n      activeIndex = index;\n      lockUntil = Date.now() + ANIMATION_LOCK;\n\n      [items, photos].forEach(function (group) {\n        group.forEach(function (el) {\n          el.classList.toggle(\"is-active\", el.getAttribute(\"data-index\") === String(index));\n        });\n      });\n      items.forEach(function (el) {\n        el.setAttribute(\"aria-expanded\", el.getAttribute(\"data-index\") === String(index) ? \"true\" : \"false\");\n      });\n    }\n\n    \/\/ Abrir por hover: al instante, o en cuanto termine la pausa\n    \/\/ si el rat\u00f3n sigue encima de esa pesta\u00f1a\n    function requestHover(index) {\n      clearTimeout(hoverTimer);\n      var wait = Math.max(HOVER_DELAY, lockUntil - Date.now(), 0);\n\n      if (wait === 0) {\n        setActive(index);\n        return;\n      }\n      hoverTimer = setTimeout(function () {\n        if (hoveredIndex === index) setActive(index);\n      }, wait);\n    }\n\n    items.forEach(function (item) {\n      var index = parseInt(item.getAttribute(\"data-index\"), 10);\n\n      \/\/ Clic (y toque en m\u00f3vil)\n      item.addEventListener(\"click\", function () {\n        clearTimeout(hoverTimer);\n        setActive(index);\n      });\n\n      \/\/ Teclado\n      item.addEventListener(\"keydown\", function (e) {\n        if (e.key === \"Enter\" || e.key === \" \") {\n          e.preventDefault();\n          setActive(index);\n        }\n      });\n\n      \/\/ Pasar el rat\u00f3n por encima (solo ordenador con rat\u00f3n)\n      \/\/ \"mousemove\": solo reacciona cuando el rat\u00f3n se mueve de verdad,\n      \/\/ no cuando la pesta\u00f1a se desplaza sola por debajo al abrirse otra.\n      item.addEventListener(\"mousemove\", function () {\n        if (!canHover()) return;\n        hoveredIndex = index;\n        if (index !== activeIndex) requestHover(index);\n      });\n\n      item.addEventListener(\"mouseleave\", function () {\n        if (hoveredIndex === index) hoveredIndex = -1;\n        clearTimeout(hoverTimer);\n      });\n    });\n\n    \/\/ Recalcular al cargar, al cargar la fuente y al cambiar el tama\u00f1o de la ventana\n    fixPhotoHeight();\n    if (document.fonts && document.fonts.ready) {\n      document.fonts.ready.then(fixPhotoHeight);\n    }\n    window.addEventListener(\"load\", fixPhotoHeight);\n    var resizeTimer;\n    window.addEventListener(\"resize\", function () {\n      clearTimeout(resizeTimer);\n      resizeTimer = setTimeout(fixPhotoHeight, 150);\n    });\n  }\n\n  function initAll() {\n    document.querySelectorAll(\".onode-servicios\").forEach(initServicios);\n  }\n\n  \/\/ Espera a que la p\u00e1gina est\u00e9 cargada (por si un plugin mueve el script)\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", initAll);\n  } else {\n    initAll();\n  }\n})();\n<\/script>\n\t<\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_4 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_4 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_4 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_text_5 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p><span>Cumplimiento normativo aplicado al desarrollo tecnol\u00f3gico<\/span><\/p>\n<\/div><\/div>\n\n<div class=\"et_pb_text_6 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p style=\"text-align: justify;\"><span>No entendemos el cumplimiento normativo como un tr\u00e1mite posterior, sino como una <strong>parte integral del ciclo de vida de las soluciones inform\u00e1ticas<\/strong>. Por eso, nuestro asesoramiento se incorpora desde las fases tempranas de dise\u00f1o y desarrollo de cualquier proyecto tecnol\u00f3gico, revisando: <\/span><\/p>\n<\/div><\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_row_5 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_5 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_12_24 et_flex_column_12_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_row_6 et_pb_row et_pb_row_nested et_flex_row\">\n<div class=\"et_pb_column_6 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_text_7 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p><span>La legalidad y seguridad jur\u00eddica de las soluciones desarrolladas.<\/span><\/p>\n<\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_column_7 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_6_24 et_flex_column_6_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_image_0 et_pb_image et_pb_module et_flex_module\"><span class=\"et_pb_image_wrap\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/onode.es\/wp-content\/uploads\/2026\/09\/mazo.png\" title=\"mazo\" width=\"512\" height=\"512\" srcset=\"https:\/\/onode.es\/wp-content\/uploads\/2026\/09\/mazo.png 512w, https:\/\/onode.es\/wp-content\/uploads\/2026\/09\/mazo-480x480.png 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 512px, 100vw\" class=\"wp-image-1560\" \/><\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_column_8 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_12_24 et_flex_column_12_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_row_7 et_pb_row et_pb_row_nested et_flex_row\">\n<div class=\"et_pb_column_9 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_text_8 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p><span>El cumplimiento de los requisitos normativos aplicables.<\/span><\/p>\n<\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_column_10 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_6_24 et_flex_column_6_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_image_1 et_pb_image et_pb_module et_flex_module\"><span class=\"et_pb_image_wrap\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/onode.es\/wp-content\/uploads\/2026\/09\/texto-sello.png\" title=\"texto sello\" width=\"512\" height=\"512\" srcset=\"https:\/\/onode.es\/wp-content\/uploads\/2026\/09\/texto-sello.png 512w, https:\/\/onode.es\/wp-content\/uploads\/2026\/09\/texto-sello-480x480.png 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 512px, 100vw\" class=\"wp-image-1561\" \/><\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_row_8 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_11 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_12_24 et_flex_column_12_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_row_9 et_pb_row et_pb_row_nested et_flex_row\">\n<div class=\"et_pb_column_12 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_text_9 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p><span>Los riesgos legales, reputacionales y operativos asociados al uso de nuevas tecnolog\u00edas.<\/span><\/p>\n<\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_column_13 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_6_24 et_flex_column_6_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_image_2 et_pb_image et_pb_module et_flex_module\"><span class=\"et_pb_image_wrap\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/onode.es\/wp-content\/uploads\/2026\/09\/engranaje.png\" title=\"engranaje\" width=\"512\" height=\"512\" srcset=\"https:\/\/onode.es\/wp-content\/uploads\/2026\/09\/engranaje.png 512w, https:\/\/onode.es\/wp-content\/uploads\/2026\/09\/engranaje-480x480.png 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 512px, 100vw\" class=\"wp-image-1562\" \/><\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_column_14 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_12_24 et_flex_column_12_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_row_10 et_pb_row et_pb_row_nested et_flex_row\">\n<div class=\"et_pb_column_15 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_text_10 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p><span>La documentaci\u00f3n y evidencias necesarias para acreditar el cumplimiento ante terceros y organismos supervisores.<\/span><\/p>\n<\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_column_16 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_6_24 et_flex_column_6_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_image_3 et_pb_image et_pb_module et_flex_module\"><span class=\"et_pb_image_wrap\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/onode.es\/wp-content\/uploads\/2026\/09\/lapiz.png\" title=\"lapiz\" width=\"512\" height=\"512\" srcset=\"https:\/\/onode.es\/wp-content\/uploads\/2026\/09\/lapiz.png 512w, https:\/\/onode.es\/wp-content\/uploads\/2026\/09\/lapiz-480x480.png 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 512px, 100vw\" class=\"wp-image-1563\" \/><\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_5 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_11 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_17 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_3_5 et_flex_column_3_5_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_text_11 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p>Un equipo multidisciplinar<\/p>\n<\/div><\/div>\n\n<div class=\"et_pb_text_12 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p><span>Un equipo experto a tu disposici\u00f3n<\/span><\/p>\n<\/div><\/div>\n\n<div class=\"et_pb_text_13 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p><span>El servicio se presta a trav\u00e9s de un equipo multidisciplinario de especialistas, entre los cuales se incluyen Delegados de Protecci\u00f3n de Datos,<\/span><span>Compliance<span> <\/span><\/span><span>Officer<\/span> <span>y juristas especializados en derecho digital y nuevas tecnolog\u00edas<\/span><\/p>\n<p><span>Esta combinaci\u00f3n de perfiles nos permite ofrecer un asesoramiento riguroso, actualizado y adaptado a la realidad t\u00e9cnica y jur\u00eddica de cada organizaci\u00f3n.<\/span><\/p>\n<\/div><\/div>\n\n<div class=\"et_pb_module et_pb_button_module_wrapper et_pb_button_0_wrapper\"><a class=\"et_pb_button_0 et_pb_button et_pb_bg_layout_dark et_pb_module et_flex_module onode-btn-conoce\" href=\"https:\/\/onode.es\/es\/sobre-onode\/\">Con\u00f3cenos<\/a><\/div>\n<\/div>\n\n<div class=\"et_pb_column_18 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_2_5 et_flex_column_2_5_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_image_4 et_pb_image et_pb_module et_flex_module\"><span class=\"et_pb_image_wrap\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/onode.es\/wp-content\/uploads\/2026\/07\/MARIA.jpg\" title=\"MARI\u0301A\" width=\"800\" height=\"960\" srcset=\"https:\/\/onode.es\/wp-content\/uploads\/2026\/07\/MARIA.jpg 800w, https:\/\/onode.es\/wp-content\/uploads\/2026\/07\/MARIA-480x576.jpg 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 800px, 100vw\" class=\"wp-image-485\" \/><\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_6 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_12 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_19 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_text_14 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p><span>Antic\u00edpate al riesgo, garantiza el cumplimiento<\/span><\/p>\n<\/div><\/div>\n\n<div class=\"et_pb_text_15 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p><span>Seguridad jur\u00eddica, cumplimiento normativo y confianza tecnol\u00f3gica en un \u00fanico servicio especializado.<\/span><\/p>\n<\/div><\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":1241,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-1247","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/onode.es\/es\/wp-json\/wp\/v2\/pages\/1247","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/onode.es\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/onode.es\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/onode.es\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/onode.es\/es\/wp-json\/wp\/v2\/comments?post=1247"}],"version-history":[{"count":6,"href":"https:\/\/onode.es\/es\/wp-json\/wp\/v2\/pages\/1247\/revisions"}],"predecessor-version":[{"id":1689,"href":"https:\/\/onode.es\/es\/wp-json\/wp\/v2\/pages\/1247\/revisions\/1689"}],"up":[{"embeddable":true,"href":"https:\/\/onode.es\/es\/wp-json\/wp\/v2\/pages\/1241"}],"wp:attachment":[{"href":"https:\/\/onode.es\/es\/wp-json\/wp\/v2\/media?parent=1247"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}