{"id":6995,"date":"2026-01-10T19:23:44","date_gmt":"2026-01-11T00:23:44","guid":{"rendered":"https:\/\/gladiium.com\/?page_id=6995"},"modified":"2026-04-11T03:00:35","modified_gmt":"2026-04-11T07:00:35","slug":"governanca-risco-e-conformidade","status":"publish","type":"page","link":"https:\/\/gladiium.com\/pt_pt\/solutions-and-services\/governance-risk-and-compliance\/","title":{"rendered":"Governance, Risk and Compliance (GRC) | GLADiiUM Technology Partners"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"6995\" class=\"elementor elementor-6995\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4e36466 e-flex e-con-boxed e-con e-parent\" data-id=\"4e36466\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-57437a4 elementor-widget elementor-widget-spacer\" data-id=\"57437a4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-674997c elementor-widget elementor-widget-html\" data-id=\"674997c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<html lang=\"es\">\n  <head><script>(function(firebaseConfig, initialAuthToken, appId) {\n          window.__firebase_config = firebaseConfig;\n          window.__initial_auth_token = initialAuthToken;\n          window.__app_id = appId;\n              })(\"\\n{\\n  \\\"apiKey\\\": \\\"AIzaSyCqyCcs2R2e7AegGjvFAwG98wlamtbHvZY\\\",\\n  \\\"authDomain\\\": \\\"bard-frontend.firebaseapp.com\\\",\\n  \\\"projectId\\\": \\\"bard-frontend\\\",\\n  \\\"storageBucket\\\": \\\"bard-frontend.firebasestorage.app\\\",\\n  \\\"messagingSenderId\\\": \\\"175205271074\\\",\\n  \\\"appId\\\": \\\"1:175205271074:web:2b7bd4d34d33bf38e6ec7b\\\"\\n}\\n\",\"eyJhbGciOiJSUzI1NiIsImtpZCI6ImVkMTFlZDM5MmY5YzMwZjkyMGE1OGIzYmQ1NGUyZTI3MjIxZTkwMjQiLCJ0eXAiOiJKV1QifQ.eyJzdWIiOiJmaXJlYmFzZS1hZG1pbnNkay1mYnN2Y0BiYXJkLWZyb250ZW5kLmlhbS5nc2VydmljZWFjY291bnQuY29tIiwiYXVkIjoiaHR0cHM6Ly9pZGVudGl0eXRvb2xraXQuZ29vZ2xlYXBpcy5jb20vZ29vZ2xlLmlkZW50aXR5LmlkZW50aXR5dG9vbGtpdC52MS5JZGVudGl0eVRvb2xraXQiLCJ1aWQiOiIxMzgzNjA1NDYyNDM2Njg4ODM1MiIsImlzcyI6ImZpcmViYXNlLWFkbWluc2RrLWZic3ZjQGJhcmQtZnJvbnRlbmQuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20iLCJjbGFpbXMiOnsiYXBwSWQiOiIzMjliNWViMDYzYzktU2VjdXJpdHlfQ29tcGxpYW5jZV9JbmZvZ3JhcGhpYy5odG1sLTE4MSJ9LCJleHAiOjE3NjgwOTM0MDksImlhdCI6MTc2ODA4OTgwOSwiYWxnIjoiUlMyNTYifQ.OerdxbeVC8MBHPOY1pH-YaxP0YhIXy2swaNIS7Ilwf4PcFr9oTFg47zole2uHE-YyQjMtKPPjUlRilS4JsxvoLr2kbH-gxi1dAvsEFl-PQRVVWX6lVSe3j_5brGZirrVm9MIh6Qcvmf_qe0bBOmBF8zbJRtI88Z1a7y8OnG17Q8pwUQM9otaYKZviM-KvS816O9dyoI2ltS_yTAqb0ZNS9VbkgiKT8Gbwix6UTp6rpmmiJOAY9Oe1f49kpdYDlrtBxbncHAcHTbfI78nzWZdv1iGR-gVV16i6mYPMWSIlNhvjL1BIu8EIWs_suTKMu7p0A0iwsIYXCl65GG0QHhO5A\",\"329b5eb063c9-Security_Compliance_Infographic.html-181\")<\/script><script>'use strict';var h=typeof Object.defineProperties==\"function\"?Object.defineProperty:function(a,b,d){if(a==Array.prototype||a==Object.prototype)return a;a[b]=d.value;return a};function l(a){a=[\"object\"==typeof globalThis&&globalThis,a,\"object\"==typeof window&&window,\"object\"==typeof self&&self,\"object\"==typeof global&&global];for(var b=0;b<a.length;++b){var d=a[b];if(d&&d.Math==Math)return d}throw Error(\"Cannot find global object\");}var n=l(this);\n  function p(a,b){if(b)a:{var d=n;a=a.split(\".\");for(var c=0;c<a.length-1;c++){var e=a[c];if(!(e in d))break a;d=d[e]}a=a[a.length-1];c=d[a];b=b(c);b!=c&&b!=null&&h(d,a,{configurable:!0,writable:!0,value:b})}}function r(a){function b(c){return a.next(c)}function d(c){return a.throw(c)}return new Promise(function(c,e){function f(g){g.done?c(g.value):Promise.resolve(g.value).then(b,d).then(f,e)}f(a.next())})}function t(a){return r(a())}\n  p(\"Object.values\",function(a){return a?a:function(b){var d=[],c;for(c in b)Object.prototype.hasOwnProperty.call(b,c)&&d.push(b[c]);return d}});p(\"Array.prototype.includes\",function(a){return a?a:function(b,d){var c=this;c instanceof String&&(c=String(c));var e=c.length;d=d||0;for(d<0&&(d=Math.max(d+e,0));d<e;d++){var f=c[d];if(f===b||Object.is(f,b))return!0}return!1}});\/*\n\n  MIT License\n\n  Copyright (c) 2017-2023 W.Y.\n\n  Permission is hereby granted, free of charge, to any person obtaining a copy\n  of this software and associated documentation files (the \"Software\"), to deal\n  in the Software without restriction, including without limitation the rights\n  to use, copy, modify, merge, publish, distribute, sublicense, and\/or sell\n  copies of the Software, and to permit persons to whom the Software is\n  furnished to do so, subject to the following conditions:\n\n  The above copyright notice and this permission notice shall be included in\n  all copies or substantial portions of the Software.\n\n  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n  SOFTWARE.\n\n  *\/\n  function u(a,b){const d=a.style;b.backgroundColor&&(d.backgroundColor=b.backgroundColor);b.width&&(d.width=`${b.width}px`);b.height&&(d.height=`${b.height}px`);const c=b.style;c!=null&&Object.keys(c).forEach(e=>{d[e]=c[e]})};var v=(()=>{let a=0;return()=>{a+=1;return`u${`0000${(Math.random()*1679616<<0).toString(36)}`.slice(-4)}${a}`}})();function w(a){const b=[];for(let d=0,c=a.length;d<c;d++)b.push(a[d]);return b}let x=null;function y(a={}){return x?x:a.l?x=a.l:x=w(window.getComputedStyle(document.documentElement))}function z(a,b){return(a=(a.ownerDocument.defaultView||window).getComputedStyle(a).getPropertyValue(b))?parseFloat(a.replace(\"px\",\"\")):0}\n  function A(a,b={}){var d;if(!(d=b.width)){d=z(a,\"border-left-width\");var c=z(a,\"border-right-width\");d=a.clientWidth+d+c}(b=b.height)||(b=z(a,\"border-top-width\"),c=z(a,\"border-bottom-width\"),b=a.clientHeight+b+c);return{width:d,height:b}}function B(a){return new Promise((b,d)=>{const c=new Image;c.onload=()=>{c.decode().then(()=>{requestAnimationFrame(()=>b(c))})};c.onerror=d;c.crossOrigin=\"anonymous\";c.decoding=\"async\";c.src=a})}\n  function C(a){return t(function*(){return Promise.resolve().then(()=>(new XMLSerializer).serializeToString(a)).then(encodeURIComponent).then(b=>`data:image\/svg+xml;charset=utf-8,${b}`)})}\n  function D(a,b,d){return t(function*(){const c=document.createElementNS(\"http:\/\/www.w3.org\/2000\/svg\",\"svg\"),e=document.createElementNS(\"http:\/\/www.w3.org\/2000\/svg\",\"foreignObject\");c.setAttribute(\"width\",`${b}`);c.setAttribute(\"height\",`${d}`);c.setAttribute(\"viewBox\",`0 0 ${b} ${d}`);e.setAttribute(\"width\",\"100%\");e.setAttribute(\"height\",\"100%\");e.setAttribute(\"x\",\"0\");e.setAttribute(\"y\",\"0\");e.setAttribute(\"externalResourcesRequired\",\"true\");c.appendChild(e);e.appendChild(a);return C(c)})}\n  var E=(a,b)=>{if(a instanceof b)return!0;a=Object.getPrototypeOf(a);return a===null?!1:a.constructor.name===b.name||E(a,b)};function F(a,b){return y(b).map(d=>{const c=a.getPropertyValue(d),e=a.getPropertyPriority(d);return`${d}: ${c}${e?\" !important\":\"\"};`}).join(\" \")}\n  function G(a,b,d,c){a=window.getComputedStyle(a,d);var e=a.getPropertyValue(\"content\");if(e!==\"\"&&e!==\"none\"){var f=v();try{b.className=`${b.className} ${f}`}catch(k){return}e=document.createElement(\"style\");var g=e.appendChild;d=`.${f}:${d}`;a.cssText?(c=a.getPropertyValue(\"content\"),c=`${a.cssText} content: '${c.replace(\/'|\"\/g,\"\")}';`):c=F(a,c);g.call(e,document.createTextNode(`${d}{${c}}`));b.appendChild(e)}};function H(a){return a.search(\/^(data:)\/)!==-1}function I(a,b,d){return t(function*(){const c=yield fetch(a,b);if(c.status===404)throw Error(`Resource \"${c.url}\" not found`);const e=yield c.blob();return new Promise((f,g)=>{const k=new FileReader;k.onerror=g;k.onloadend=()=>{try{f(d({o:c,result:k.result}))}catch(m){g(m)}};k.readAsDataURL(e)})})}const J={};function K(a,b,d){let c=a.replace(\/\\?.*\/,\"\");d&&(c=a);\/ttf|otf|eot|woff2?\/i.test(c)&&(c=c.replace(\/.*\\\/\/,\"\"));return b?`[${b}]${c}`:c}\n  function L(a,b,d){return t(function*(){const c=K(a,b,d.C);if(J[c]!=null)return J[c];d.u&&(a+=(\/\\?\/.test(a)?\"&\":\"?\")+(new Date).getTime());let e;try{const f=yield I(a,d.i,({o:g,result:k})=>{b||(b=g.headers.get(\"Content-Type\")||\"\");return k.split(\/,\/)[1]});e=`data:${b};base64,${f}`}catch(f){e=d.B||\"\"}return J[c]=e})};const M={P:\"application\/font-woff\",R:\"application\/font-woff\",N:\"application\/font-truetype\",v:\"application\/vnd.ms-fontobject\",H:\"image\/png\",F:\"image\/jpeg\",D:\"image\/jpeg\",A:\"image\/gif\",M:\"image\/tiff\",L:\"image\/svg+xml\",O:\"image\/webp\"};function N(a){return(a=\/\\.([^.\/]*?)$\/g.exec(a))?a[1]:\"\"};function O(a){return t(function*(){const b=a.toDataURL();return b===\"data:,\"?a.cloneNode(!1):B(b)})}function aa(a,b){return t(function*(){if(a.currentSrc){var d=document.createElement(\"canvas\");const c=d.getContext(\"2d\");d.width=a.clientWidth;d.height=a.clientHeight;c==null||c.drawImage(a,0,0,d.width,d.height);d=d.toDataURL();return B(d)}d=a.poster;d=yield L(d,M[N(d).toLowerCase()]||\"\",b);return B(d)})}\n  function ba(a,b){return t(function*(){try{let d;if(a==null?0:(d=a.contentDocument)==null?0:d.body)return yield P(a.contentDocument.body,b,!0)}catch(d){}return a.cloneNode(!1)})}function ca(a,b){return t(function*(){return E(a,HTMLCanvasElement)?O(a):E(a,HTMLVideoElement)?aa(a,b):E(a,HTMLIFrameElement)?ba(a,b):a.cloneNode(a.tagName!=null&&a.tagName.toUpperCase()===\"SVG\")})}\n  function da(a,b,d){return t(function*(){if(b.tagName!=null&&b.tagName.toUpperCase()===\"SVG\")return b;let c=[];if(a.tagName!=null&&a.tagName.toUpperCase()===\"SLOT\"&&a.assignedNodes)c=w(a.assignedNodes());else{let e;if(E(a,HTMLIFrameElement)&&((e=a.contentDocument)==null?0:e.body))c=w(a.contentDocument.body.childNodes);else{let f;c=w(((f=a.shadowRoot)!=null?f:a).childNodes)}}if(c.length===0||E(a,HTMLVideoElement))return b;yield c.reduce((e,f)=>e.then(()=>P(f,d)).then(g=>{g&&b.appendChild(g)}),Promise.resolve());\n  return b})}function ea(a,b,d){const c=b.style;if(c){var e=window.getComputedStyle(a);e.cssText?(c.cssText=e.cssText,c.transformOrigin=e.transformOrigin):y(d).forEach(f=>{let g=e.getPropertyValue(f);f===\"font-size\"&&g.endsWith(\"px\")&&(g=`${Math.floor(parseFloat(g.substring(0,g.length-2)))-.1}px`);E(a,HTMLIFrameElement)&&f===\"display\"&&g===\"inline\"&&(g=\"block\");f===\"d\"&&b.getAttribute(\"d\")&&(g=`path(${b.getAttribute(\"d\")})`);c.setProperty(f,g,e.getPropertyPriority(f))})}}\n  function fa(a,b){E(a,HTMLSelectElement)&&(b=Array.from(b.children).find(d=>a.value===d.getAttribute(\"value\")))&&b.setAttribute(\"selected\",\"\")}\n  function ha(a,b){return t(function*(){var d=a.querySelectorAll?a.querySelectorAll(\"use\"):[];if(d.length===0)return a;var c={};for(var e=0;e<d.length;e++){var f=d[e].getAttribute(\"xlink:href\");if(f){const g=document.querySelector(f);a.querySelector(f)||!g||c[f]||(c[f]=yield P(g,b,!0))}}d=Object.values(c);if(d.length){c=document.createElementNS(\"http:\/\/www.w3.org\/1999\/xhtml\",\"svg\");c.setAttribute(\"xmlns\",\"http:\/\/www.w3.org\/1999\/xhtml\");c.style.position=\"absolute\";c.style.width=\"0\";c.style.height=\"0\";\n  c.style.overflow=\"hidden\";c.style.display=\"none\";e=document.createElementNS(\"http:\/\/www.w3.org\/1999\/xhtml\",\"defs\");c.appendChild(e);for(f=0;f<d.length;f++)e.appendChild(d[f]);a.appendChild(c)}return a})}\n  function P(a,b,d){return t(function*(){return d||!b.filter||b.filter(a)?Promise.resolve(a).then(c=>ca(c,b)).then(c=>da(a,c,b)).then(c=>{E(c,Element)&&(ea(a,c,b),G(a,c,\":before\",b),G(a,c,\":after\",b),E(a,HTMLTextAreaElement)&&(c.textContent=a.value),E(a,HTMLInputElement)&&c.setAttribute(\"value\",a.value),fa(a,c));return c}).then(c=>ha(c,b)):null})};const Q=\/url\\((['\"]?)([^'\"]+?)\\1\\)\/g,ia=\/url\\([^)]+\\)\\s*format\\(([\"']?)([^\"']+)\\1\\)\/g,ja=\/src:\\s*(?:url\\([^)]+\\)\\s*format\\([^)]+\\)[,;]\\s*)+\/g;function ka(a){const b=[];a.replace(Q,(d,c,e)=>{b.push(e);return d});return b.filter(d=>!H(d))}\n  function la(a,b,d,c){return t(function*(){try{const e=d?(new URL(b,d||void 0)).toString():b;let f;f=yield L(e,M[N(b).toLowerCase()]||\"\",c);return a.replace(new RegExp(`(url\\\\(['\"]?)(${b.replace(\/([.*+?^${}()|\\[\\]\\\/\\\\])\/g,\"\\\\$1\")})(['\"]?\\\\))`,\"g\"),`$1${f}$3`)}catch(e){}return a})}function ma(a,{I:b}){return b?a.replace(ja,d=>{for(;;){const [c,,e]=ia.exec(d)||[],f=c,g=e;if(!g)return\"\";if(g===b)return`src: ${f};`}}):a}\n  function R(a,b,d){return t(function*(){if(a.search(Q)===-1)return a;const c=ma(a,d);return ka(c).reduce((e,f)=>e.then(g=>la(g,f,b,d)),Promise.resolve(c))})};function S(a,b,d){return t(function*(){var c;const e=(c=b.style)==null?void 0:c.getPropertyValue(a);return e?(c=yield R(e,null,d),b.style.setProperty(a,c,b.style.getPropertyPriority(a)),!0):!1})}function na(a,b){return t(function*(){(yield S(\"background\",a,b))||(yield S(\"background-image\",a,b));(yield S(\"mask\",a,b))||(yield S(\"-webkit-mask\",a,b))||(yield S(\"mask-image\",a,b))||(yield S(\"-webkit-mask-image\",a,b))})}\n  function oa(a,b){return t(function*(){const d=E(a,HTMLImageElement);if(d&&!H(a.src)||E(a,SVGImageElement)&&!H(a.href.baseVal)){var c=d?a.src:a.href.baseVal,e=yield L(c,M[N(c).toLowerCase()]||\"\",b);yield new Promise((f,g)=>{a.onload=f;a.onerror=b.m?(...k)=>{try{f(b.m(...k))}catch(m){g(m)}}:g;a.decode&&(a.decode=f);a.loading===\"lazy\"&&(a.loading=\"eager\");d?(a.srcset=\"\",a.src=e):a.href.baseVal=e})}})}\n  function pa(a,b){return t(function*(){const d=w(a.childNodes).map(c=>T(c,b));yield Promise.all(d).then(()=>a)})}function T(a,b){return t(function*(){E(a,Element)&&(yield na(a,b),yield oa(a,b),yield pa(a,b))})};const U={};function V(a){return t(function*(){var b=U[a];if(b!=null)return b;b=yield(yield fetch(a)).text();b={url:a,cssText:b};return U[a]=b})}function W(a,b){return t(function*(){let d=a.cssText;const c=\/url\\([\"']?([^\"')]+)[\"']?\\)\/g,e=(d.match(\/url\\([^)]+\\)\/g)||[]).map(f=>t(function*(){let g=f.replace(c,\"$1\");g.startsWith(\"https:\/\/\")||(g=(new URL(g,a.url)).href);return I(g,b.i,({result:k})=>{d=d.replace(f,`url(${k})`);return[f,k]})}));return Promise.all(e).then(()=>d)})}\n  function X(a){if(a==null)return[];const b=[];a=a.replace(\/(\\\/\\*[\\s\\S]*?\\*\\\/)\/gi,\"\");for(var d=RegExp(\"((@.*?keyframes [\\\\s\\\\S]*?){([\\\\s\\\\S]*?}\\\\s*?)})\",\"gi\");;){var c=d.exec(a);if(c===null)break;b.push(c[0])}a=a.replace(d,\"\");d=\/@import[\\s\\S]*?url\\([^)]*\\)[\\s\\S]*?;\/gi;for(c=RegExp(\"((\\\\s*?(?:\\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\\/)?\\\\s*?@media[\\\\s\\\\S]*?){([\\\\s\\\\S]*?)}\\\\s*?})|(([\\\\s\\\\S]*?){([\\\\s\\\\S]*?)})\",\"gi\");;){let e=d.exec(a);if(e===null)if(e=c.exec(a),e===null)break;else d.lastIndex=c.lastIndex;else c.lastIndex=\n  d.lastIndex;b.push(e[0])}return b}\n  function qa(a,b){return t(function*(){const d=[],c=[];a.forEach(e=>{if(\"cssRules\"in e)try{w(e.cssRules||[]).forEach((f,g)=>{if(f.type===CSSRule.IMPORT_RULE){let k=g+1;f=V(f.href).then(m=>W(m,b)).then(m=>X(m).forEach(q=>{try{e.insertRule(q,q.startsWith(\"@import\")?k+=1:e.cssRules.length)}catch(Da){}})).catch(()=>{});c.push(f)}})}catch(f){const g=a.find(k=>k.href==null)||document.styleSheets[0];e.href!=null&&c.push(V(e.href).then(k=>W(k,b)).then(k=>X(k).forEach(m=>{g.insertRule(m,g.cssRules.length)})).catch(()=>\n  {}))}});return Promise.all(c).then(()=>{a.forEach(e=>{if(\"cssRules\"in e)try{w(e.cssRules||[]).forEach(f=>{d.push(f)})}catch(f){}});return d})})}function ra(a){return a.filter(b=>b.type===CSSRule.FONT_FACE_RULE).filter(b=>b.style.getPropertyValue(\"src\").search(Q)!==-1)}function sa(a,b){return t(function*(){if(a.ownerDocument==null)throw Error(\"Provided element is not within a Document\");var d=w(a.ownerDocument.styleSheets);d=yield qa(d,b);return ra(d)})}\n  function ta(a){function b(c){(c.style.fontFamily||getComputedStyle(c).fontFamily).split(\",\").forEach(e=>{d.add(e.trim().replace(\/[\"']\/g,\"\"))});Array.from(c.children).forEach(e=>{e instanceof HTMLElement&&b(e)})}const d=new Set;b(a);return d}function ua(a,b){return t(function*(){const d=yield sa(a,b),c=ta(a);return(yield Promise.all(d.filter(e=>c.has(e.style.fontFamily.trim().replace(\/[\"']\/g,\"\"))).map(e=>R(e.cssText,e.parentStyleSheet?e.parentStyleSheet.href:null,b)))).join(\"\\n\")})}\n  function va(a,b){return t(function*(){const d=b.j!=null?b.j:b.K?null:yield ua(a,b);if(d){const c=document.createElement(\"style\");c.appendChild(document.createTextNode(d));a.firstChild?a.insertBefore(c,a.firstChild):a.appendChild(c)}})};function wa(a,b={}){return t(function*(){const {width:d,height:c}=A(a,b),e=yield P(a,b,!0);yield va(e,b);yield T(e,b);u(e,b);return yield D(e,d,c)})}\n  function xa(a,b={}){return t(function*(){const {width:d,height:c}=A(a,b);var e=yield wa(a,b);e=yield B(e);const f=document.createElement(\"canvas\"),g=f.getContext(\"2d\"),k=b.G||window.devicePixelRatio||1,m=b.h||d,q=b.g||c;f.width=m*k;f.height=q*k;!b.J&&(f.width>16384||f.height>16384)&&(f.width>16384&&f.height>16384?f.width>f.height?(f.height*=16384\/f.width,f.width=16384):(f.width*=16384\/f.height,f.height=16384):f.width>16384?(f.height*=16384\/f.width,f.width=16384):(f.width*=16384\/f.height,f.height=\n  16384));f.style.width=`${m}`;f.style.height=`${q}`;b.backgroundColor&&(g.fillStyle=b.backgroundColor,g.fillRect(0,0,f.width,f.height));g.drawImage(e,0,0,f.width,f.height);return f})}function ya(a,b={}){return t(function*(){return(yield xa(a,b)).toDataURL()})};const za=[\"gemini.google.com\",\"corp.google.com\",\"proxy.googlers.com\"];function Y(){return document.body.querySelectorAll('[class*=\"animate\"]').length>0}function Z(a){return t(function*(){try{return yield ya(a,{h:a.offsetWidth,g:a.offsetHeight})}catch(d){var b=a.offsetHeight;const c=document.createElement(\"canvas\");c.width=a.offsetWidth;c.height=b;return c.toDataURL(\"image\/png\")}})}\n  function Aa(){return t(function*(){const a=document.body.offsetWidth,b=document.body.offsetHeight,d=document.body.cloneNode(!0);d.querySelectorAll('[class*=\"animate\"]').forEach(c=>{c.classList.remove(...Array.from(c.classList).filter(e=>e.startsWith(\"animate\")))});d.style.width=`${a}px`;d.style.height=`${b}px`;return d})}\n  function Ba(a){return t(function*(){let b=document.body;if(Y()){var d=yield Aa();b=d;document.body.appendChild(d)}d=yield Z(b);Y()&&document.body.removeChild(b);window.parent.postMessage({type:\"SEND_SCREENSHOT\",image:d,topOffset:document.documentElement.scrollTop},a.origin)})}function Ca(a){return t(function*(){const b={type:\"SEND_SCREENSHOT_FOR_DATA_VISUALIZATION\",image:yield Z(document.body),topOffset:0};window.parent.postMessage(b,a.origin)})}\n  window.addEventListener(\"message\",a=>t(function*(){if(za.some(d=>a.origin.includes(d))){var b=a.data;b&&(b.type===\"MAKE_SCREENSHOT\"&&(yield Ba(a)),b.type===\"MAKE_SCREENSHOT_FOR_DATA_VISUALIZATION\"&&(yield Ca(a)))}}));\n  <\/script><script>(function() {\n    \/\/ Ensure this script is executed only once\n    if (window.firebaseAuthBridgeScriptLoaded) {\n      return;\n    }\n    window.firebaseAuthBridgeScriptLoaded = true;\n\n    let nextTokenPromiseId = 0;\n\n    \/\/ Stores { resolve, reject } for ongoing token requests\n    const pendingTokenPromises = {};\n\n    \/\/ Listen for messages from the Host Application\n    window.addEventListener('message', function(event) {\n\n      const messageData = event.data;\n\n    if (messageData && messageData.type === 'RESOLVE_NEW_FIREBASE_TOKEN') {\n        const { success, token, error, promiseId } = messageData ?? {};\n        if (pendingTokenPromises[promiseId]) {\n          if (success) {\n            pendingTokenPromises[promiseId].resolve(token);\n          } else {\n            pendingTokenPromises[promiseId].reject(new Error(error || 'Token refresh failed from host.'));\n          }\n          delete pendingTokenPromises[promiseId];\n        }\n      }\n    });\n\n    \/\/ Expose a function for the Generated App to request a new Firebase token\n    window.requestNewFirebaseToken = function() {\n      const currentPromiseId = nextTokenPromiseId++;\n      const promise = new Promise((resolve, reject) => {\n        pendingTokenPromises[currentPromiseId] = { resolve, reject };\n      });\n      if (window.parent && window.parent !== window) {\n        window.parent.postMessage({\n          type: 'REQUEST_NEW_FIREBASE_TOKEN',\n          promiseId: currentPromiseId\n        }, '*');\n      } else {\n        pendingTokenPromises[currentPromiseId].reject(new Error('No parent window to request token from.'));\n        delete pendingTokenPromises[currentPromiseId];\n      }\n      return promise;\n    };\n  })();<\/script><script>\n  let realOriginalGetUserMedia = null;\n  if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n    realOriginalGetUserMedia = navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices);\n  }\n\n  (function() {\n    if (navigator.mediaDevices && navigator.mediaDevices.__proto__) {\n      try {\n        Object.defineProperty(navigator.mediaDevices.__proto__, 'getUserMedia', {\n          get: function() {\n            return undefined; \/\/ Or throw an error\n          },\n          configurable: false\n        });\n      } catch (error) {\n        console.error(\"Error defining prototype getter:\", error);\n      }\n    }\n  })();\n\n  (function() {\n    const pendingMediaResolvers = {};\n    let nextMediaPromiseId = 0;\n\n    function requestMediaPermissions(constraints) {\n      const mediaPromiseId = nextMediaPromiseId++;\n      const promise = new Promise((resolve, reject) => {\n        pendingMediaResolvers[mediaPromiseId] = (granted) => {\n          delete pendingMediaResolvers[mediaPromiseId];\n          resolve(granted);\n        };\n      });\n\n      window.parent.postMessage({\n        type: 'requestMediaPermission',\n        constraints: constraints,\n        promiseId: mediaPromiseId,\n      }, '*');\n\n      return promise;\n    }\n\n    let originalGetUserMedia = realOriginalGetUserMedia;\n\n    function interceptGetUserMedia() {\n      if (navigator.mediaDevices) {\n        Object.defineProperty(navigator.mediaDevices, 'getUserMedia', {\n          value: function(constraints) {\n            return requestMediaPermissions(constraints).then((granted) => {\n              if (granted) {\n                if (originalGetUserMedia) {\n                  return originalGetUserMedia(constraints);\n                } else {\n                  throw new Error(\"Original getUserMedia not available.\");\n                }\n              } else {\n                throw new DOMException('Permission denied', 'NotAllowedError');\n              }\n            });\n          },\n          writable: false,\n          configurable: false\n        });\n      }\n    }\n\n    interceptGetUserMedia();\n\n    const observer = new MutationObserver(function(mutationsList, observer) {\n      for (const mutation of mutationsList) {\n        if (mutation.type === 'reconfigured' && mutation.name === 'getUserMedia' && mutation.object === navigator.mediaDevices) {\n          interceptGetUserMedia();\n        } else if (mutation.type === 'attributes' && mutation.attributeName === 'getUserMedia' && mutation.target === navigator.mediaDevices) {\n          interceptGetUserMedia();\n        } else if (mutation.type === 'childList' && mutation.addedNodes) {\n          mutation.addedNodes.forEach(node => {\n            if (node === navigator.mediaDevices) {\n              interceptGetUserMedia();\n            }\n          });\n        }\n      }\n    });\n\n    function interceptSpeechRecognition() {\n      if (!window.SpeechRecognition && !window.webkitSpeechRecognition) {\n        return;\n      }\n\n      const OriginalSpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;\n\n      const SpeechRecognitionWrapper = function(...args) {\n        const recognizer = new OriginalSpeechRecognition(...args);\n        const originalStart = recognizer.start.bind(recognizer);\n\n        recognizer.start = function() {\n          requestMediaPermissions({ audio: true }).then(granted => {\n            if (granted) {\n              originalStart();\n            } else {\n              const errorEvent = new SpeechRecognitionErrorEvent('error');\n              errorEvent.error = 'not-allowed'; \/\/ This is the standard error for permission denial.\n              recognizer.dispatchEvent(errorEvent);\n            }\n          });\n        };\n\n        return recognizer;\n      };\n\n      SpeechRecognitionWrapper.prototype = OriginalSpeechRecognition.prototype;\n      SpeechRecognitionWrapper.prototype.constructor = SpeechRecognitionWrapper;\n\n      if (window.SpeechRecognition) {\n        window.SpeechRecognition = SpeechRecognitionWrapper;\n      }\n      if (window.webkitSpeechRecognition) {\n        window.webkitSpeechRecognition = SpeechRecognitionWrapper;\n      }\n    }\n\n    interceptSpeechRecognition();\n\n    window.addEventListener('message', function(event) {\n      if (event.data) {\n        if (event.data.type === 'resolveMediaPermission') {\n          const { promiseId, granted } = event.data;\n          if (pendingMediaResolvers[promiseId]) {\n            pendingMediaResolvers[promiseId](granted);\n          }\n        }\n      }\n    });\n\n  })();<\/script><script>((function(modelInformation) {\n    const originalFetch = window.fetch;\n    \/\/ TODO: b\/421908508 - Move these out of the script and match all generative AI model calls.\n    let googleLlmBaseApiUrls = [\n      'https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/' + modelInformation.textModelName + ':streamGenerateContent',\n      'https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/' + modelInformation.textModelName + ':generateContent',\n      'https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/' + modelInformation.imageModelName + ':predict',\n      'https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/' + modelInformation.imageModelName + ':predictLongRunning',\n      'https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/' + modelInformation.imageEditModelName + ':generateContent',\n      'https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/' + modelInformation.imageTransformModelName + ':generateContent',\n      'https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/' + modelInformation.videoModelName + ':predict',\n      'https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/' + modelInformation.videoModelName + ':predictLongRunning',\n      'https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/' + modelInformation.ttsModelName + ':generateContent',\n    ];\n    modelInformation.deprecatedTextModelNames.forEach((modelName) => {\n      googleLlmBaseApiUrls.push(\n        'https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/' + modelName + ':streamGenerateContent',\n        'https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/' + modelName + ':generateContent',\n      );\n    });\n    modelInformation.deprecatedImageModelNames.forEach((modelName) => {\n      googleLlmBaseApiUrls.push(\n        'https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/' + modelName + ':predict',\n        'https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/' + modelName + ':predictLongRunning',\n      );\n    });\n\n    const pendingFetchResolvers = {};\n    let nextPromiseId = 0;\n\n    function handleStringInput(input, optionsArgument) {\n      const actualUrl = input;\n      const fetchCallArgs = [actualUrl, optionsArgument];\n      const effectiveOptions = optionsArgument || {};\n      const bodyForApiKeyCheck = effectiveOptions.body;\n      const bodyForPostMessage = effectiveOptions.body;\n      return { actualUrl, fetchCallArgs, effectiveOptions, bodyForApiKeyCheck, bodyForPostMessage };\n    }\n\n    function handleRequestInput(input, optionsArgument) {\n      const actualUrl = input.url;\n      const fetchCallArgs = [input, optionsArgument];\n      const effectiveOptions = { method: input.method, headers: new Headers(input.headers) };\n      let bodyForApiKeyCheck;\n      let bodyForPostMessage;\n\n      if (optionsArgument) {\n        if (optionsArgument.method) effectiveOptions.method = optionsArgument.method;\n        if (optionsArgument.headers) effectiveOptions.headers = new Headers(optionsArgument.headers);\n        if ('body' in optionsArgument) {\n          bodyForApiKeyCheck = optionsArgument.body;\n          bodyForPostMessage = optionsArgument.body;\n        } else {\n          bodyForApiKeyCheck = undefined;\n          bodyForPostMessage = input.body;\n        }\n      } else {\n        bodyForApiKeyCheck = undefined;\n        bodyForPostMessage = input.body;\n      }\n      return { actualUrl, fetchCallArgs, effectiveOptions, bodyForApiKeyCheck, bodyForPostMessage };\n    }\n\n    window.fetch = function(input, optionsArgument) {\n      let actualUrl;\n      let fetchCallArgs;\n      let effectiveOptions = {};\n      let bodyForApiKeyCheck;\n      let bodyForPostMessage;\n\n      if (typeof input === 'string') {\n        ({actualUrl, fetchCallArgs, effectiveOptions, bodyForApiKeyCheck, bodyForPostMessage} = handleStringInput(input, optionsArgument));\n      } else if (input instanceof Request) {\n        ({actualUrl, fetchCallArgs, effectiveOptions, bodyForApiKeyCheck, bodyForPostMessage} = handleRequestInput(input, optionsArgument));\n      } else {\n        return originalFetch.apply(window, [input, optionsArgument]);\n      }\n\n      effectiveOptions.method = effectiveOptions.method || 'GET';\n      if (!effectiveOptions.headers) {\n        effectiveOptions.headers = new Headers();\n      }\n\n\n      if (typeof actualUrl === 'string' && googleLlmBaseApiUrls.some((url) => actualUrl.startsWith(url))) {\n        let apiKeyIsNull = true;\n\n        const regex = new RegExp(\"models\/([^:]+)\");\n        const modelNameMatch = actualUrl.match(regex);\n        const modelName = modelNameMatch ? modelNameMatch[1] : 'unspecified';\n\n\n        try {\n          const urlObject = new URL(actualUrl);  \/\/ Use URL object for robust parsing\n          const apiKeyParam = urlObject.searchParams.get('key');\n          if (apiKeyParam) {\n            apiKeyIsNull = false;\n          }\n        } catch (e) {\n          \/\/ Continue checks even if URL parsing fails\n        }\n\n        if (apiKeyIsNull && effectiveOptions.headers) {\n          const h = new Headers(effectiveOptions.headers);\n          const apiKeyHeaderValue = h.get('X-API-Key') || h.get('x-api-key');\n          if (apiKeyHeaderValue) {\n            apiKeyIsNull = false;\n            return originalFetch.apply(window, fetchCallArgs);\n          }\n        }\n\n        if (apiKeyIsNull && effectiveOptions.method && ['POST', 'PUT', 'PATCH'].includes(effectiveOptions.method.toUpperCase()) && typeof bodyForApiKeyCheck === 'string') {\n          try {\n            const bodyData = JSON.parse(bodyForApiKeyCheck);\n            if (bodyData && bodyData.apiKey) {\n              apiKeyIsNull = false;\n              return originalFetch.apply(window, fetchCallArgs);\n            }\n          } catch (e) {\n            \/\/ Ignore JSON parsing errors\n          }\n        }\n\n        if(apiKeyIsNull) {\n          const promiseId = nextPromiseId++;\n          const promise = new Promise((resolve) => {\n            pendingFetchResolvers[promiseId] = (resolvedResponse) => {\n              delete pendingFetchResolvers[promiseId];\n              resolve(resolvedResponse);\n            };\n          });\n\n          let serializedBodyForPostMessage;\n          if (typeof bodyForPostMessage === 'string' || bodyForPostMessage == null) {\n              serializedBodyForPostMessage = bodyForPostMessage;\n          } else if (bodyForPostMessage instanceof ReadableStream) {\n              serializedBodyForPostMessage = null;\n          } else {\n              try {\n                  serializedBodyForPostMessage = JSON.stringify(bodyForPostMessage);\n              } catch (e) {\n                  serializedBodyForPostMessage = null;\n              }\n          }\n\n          const messageOptions = {\n              method: effectiveOptions.method,\n              headers: Object.fromEntries(new Headers(effectiveOptions.headers).entries()),\n              body: serializedBodyForPostMessage\n          };\n\n          window.parent.postMessage({\n            type: 'requestFetch',\n            url: actualUrl,\n            modelName: modelName,\n            options: messageOptions,\n            promiseId: promiseId,\n          }, '*');\n\n          return promise;\n        }\n        return originalFetch.apply(window, fetchCallArgs);\n      }\n      return originalFetch.apply(window, fetchCallArgs);\n    };\n\n    window.addEventListener('message', function(event) {\n      if (event.data && event.data.type === 'resolveFetch') {\n        const { promiseId, response } = event.data;\n        if (pendingFetchResolvers[promiseId]) {\n          try {\n            const reconstructedResponse = new Response(response.body, {\n              status: response.status,\n              statusText: response.statusText,\n              headers: new Headers(response.headers),\n            });\n            pendingFetchResolvers[promiseId](reconstructedResponse);\n          } catch (error) {\n            pendingFetchResolvers[promiseId](new Response(null, { status: 500, statusText: \"Interceptor Response Reconstruction Error\" }));\n          }\n        }\n      }\n    });\n\n  }))({\"textModelName\":\"gemini-2.5-flash-preview-09-2025\",\"imageModelName\":\"imagen-4.0-generate-001\",\"imageEditModelName\":\"gemini-2.5-flash-image-preview\",\"imageTransformModelName\":\"gemini-3-pro-image-preview-11-2025\",\"videoModelName\":\"veo-2.0-generate-001\",\"ttsModelName\":\"gemini-2.5-flash-preview-tts\",\"deprecatedTextModelNames\":[\"gemini-2.0-flash\",\"gemini-2.5-flash-preview-04-17\",\"gemini-2.5-flash-preview-05-20\"],\"deprecatedImageModelNames\":[\"imagen-3.0-generate-001\",\"imagen-3.0-generate-002\"]})<\/script><script>(function() {\n    const originalConsoleLog = console.log;\n    const originalConsoleError = console.error;\n\n      \/**\n     * Normalizes an error event or a promise rejection reason into a structured error object.\n     * @param {*} errorEventOrReason The error object or reason.\n     * @return {object} Structured error data { message, name, stack }.\n     *\/\n    function getErrorObject(errorEventOrReason) {\n      if (errorEventOrReason instanceof Error) {\n        return {\n          message: errorEventOrReason.message,\n          name: errorEventOrReason.name,\n          stack: errorEventOrReason.stack,\n        };\n      }\n      \/\/ Fallback for non-Error objects.\n      try {\n        return {\n          message: JSON.stringify(errorEventOrReason),\n          name: 'UnknownErrorType',\n          stack: null,\n        };\n      } catch (e) {\n        return {\n          message: String(errorEventOrReason),\n          name: 'UnknownErrorTypeNonStringifiable',\n          stack: null,\n        };\n      }\n    }\n\n    \/**\n     * Converts an array of arguments (from log\/error) into a single string.\n     * Handles Error objects specially to include their message and stack.\n     * @param {Array<*>} args - Arguments passed to console methods.\n     * @return {string} A string representation of the arguments.\n     *\/\n    function stringifyArgs(args) {\n      return args\n        .map((arg) => {\n          if (arg instanceof Error) {\n            const {message, stack} = arg;\n            return `Error: ${message}${stack ? ('\\nStack: ' + stack) : ''}`;\n          }\n          if (typeof arg === 'object' && arg !== null) {\n            try {\n              return JSON.stringify(arg);\n            } catch (error) {\n              return '[Circular Object]';\n            }\n          } else {\n            return String(arg);\n          }\n        })\n        .join(' ');\n    }\n\n    console.log = function(...args) {\n      const logString = stringifyArgs(args);\n      window.parent.postMessage({ type: 'log', message: logString }, '*');\n      originalConsoleLog.apply(console, args);\n    };\n\n    console.error = function(...args) {\n      let errorData;\n      if (args.length > 0 && args[0] instanceof Error) {\n        const err = args[0];\n        \/\/ If the first arg is an Error, capture its details.\n        errorData = {\n          type: 'error',\n          source: 'CONSOLE_ERROR',\n          ...getErrorObject(err),\n          rawArgsString: stringifyArgs(args.slice(1)),\n          timestamp: new Date().toISOString(),\n        };\n      } else {\n        \/\/ If not an Error object, treat all args as a general error message.\n        errorData = {\n          type: 'error',\n          source: 'CONSOLE_ERROR',\n          message: stringifyArgs(args),\n          name: 'ConsoleLoggedError',\n          stack: null,\n          timestamp: new Date().toISOString(),\n        };\n      }\n      window.parent.postMessage(errorData, '*');\n      originalConsoleError.apply(console, args);\n    };\n\n    \/\/ Listen for global unhandled synchronous errors.\n    window.addEventListener('error', function(event) {\n      const errorDetails = event.error ? getErrorObject(event.error) : {\n        message: event.message,\n        name: 'GlobalError',\n        stack: null,\n        filename: event.filename,\n        lineno: event.lineno,\n        colno: event.colno,\n      };\n\n      window.parent.postMessage({\n        type: 'error',\n        source: 'global',\n        ...errorDetails,\n        message: errorDetails.message || event.message,\n        timestamp: new Date().toISOString(),\n      }, '*');\n    });\n\n    \/\/ Listen for unhandled promise rejections (asynchronous errors).\n    window.addEventListener('unhandledrejection', function(event) {\n      const errorDetails = getErrorObject(event.reason);\n\n      window.parent.postMessage({\n        type: 'error',\n        source: 'unhandledrejection',\n        ...errorDetails,\n        message: errorDetails.message || 'Unhandled Promise Rejection',\n        timestamp: new Date().toISOString(),\n      }, '*');\n    });\n\n  })();<\/script>\n      <meta charset=\"UTF-8\">\n      <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n      <title>Estrategia de Ciberseguridad y Cumplimiento | GLADiiUM vCISO<\/title>\n      <!-- Tailwind CSS -->\n      <script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\n      <!-- Chart.js -->\n      <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/chart.js\" crossorigin=\"anonymous\"><\/script>\n      <!-- Google Fonts -->\n      <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@300;400;600;800&amp;display=swap\" rel=\"stylesheet\">\n\n      <!-- Chosen Palette: \"Electric Future\" - Vibrant Blues, Purples, and Cyans -->\n      <!-- \n          Palette:\n          Primary Dark: #111827 (Gray 900)\n          Accent Cyan: #06B6D4 (Cyan 500)\n          Accent Purple: #8B5CF6 (Violet 500)\n          Accent Pink: #EC4899 (Pink 500)\n          Background: #F3F4F6 (Gray 100)\n          Card Bg: #FFFFFF\n      -->\n\n      <style>\n          body {\n              font-family: 'Inter', sans-serif;\n              background-color: #F3F4F6;\n              color: #1F2937;\n          }\n          \n          \/* Chart Container Styling - MANDATORY *\/\n          .chart-container {\n              position: relative;\n              width: 100%;\n              max-width: 600px;\n              margin-left: auto;\n              margin-right: auto;\n              height: 350px; \/* Base height *\/\n              max-height: 400px;\n          }\n\n          @media (min-width: 768px) {\n              .chart-container {\n                  height: 400px;\n              }\n          }\n\n          \/* Custom Gradients *\/\n          .bg-gradient-header {\n              background: linear-gradient(135deg, #111827 0%, #4C1D95 100%);\n          }\n          \n          .bg-gradient-card {\n              background: linear-gradient(135deg, #ffffff 0%, #f9fafb 100%);\n          }\n\n          .text-gradient {\n              background-clip: text;\n              -webkit-background-clip: text;\n              -webkit-text-fill-color: transparent;\n              background-image: linear-gradient(to right, #06B6D4, #8B5CF6);\n          }\n\n          \/* Unicode Icons styling *\/\n          .icon-large {\n              font-size: 3rem;\n              line-height: 1;\n          }\n      <\/style>\n  <style>*, ::before, ::after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 \/ 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 \/ 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }\/* ! tailwindcss v3.4.17 | MIT License | https:\/\/tailwindcss.com *\/*,::after,::before{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}::after,::before{--tw-content:''}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0px}.-left-24{left:-6rem}.-top-24{top:-6rem}.-top-5{top:-1.25rem}.bottom-0{bottom:0px}.left-0{left:0px}.left-1\\\/2{left:50%}.right-0{right:0px}.top-0{top:0px}.top-1\\\/2{top:50%}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.order-1{order:1}.order-2{order:2}.mx-auto{margin-left:auto;margin-right:auto}.-mt-10{margin-top:-2.5rem}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:0.5rem}.mb-3{margin-bottom:0.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mr-2{margin-right:0.5rem}.mr-3{margin-right:0.75rem}.mt-2{margin-top:0.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-1{height:0.25rem}.h-10{height:2.5rem}.h-96{height:24rem}.h-full{height:100%}.w-10{width:2.5rem}.w-96{width:24rem}.w-full{width:100%}.max-w-3xl{max-width:48rem}.max-w-7xl{max-width:80rem}.-translate-x-1\\\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\\\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-skew-y-2{--tw-skew-y:-2deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.grid-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr))}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.gap-10{gap:2.5rem}.gap-12{gap:3rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-y-16 > :not([hidden]) ~ :not([hidden]){--tw-space-y-reverse:0;margin-top:calc(4rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(4rem * var(--tw-space-y-reverse))}.space-y-3 > :not([hidden]) ~ :not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0.75rem * var(--tw-space-y-reverse))}.space-y-4 > :not([hidden]) ~ :not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.rounded{border-radius:0.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:0.5rem}.rounded-xl{border-radius:0.75rem}.border{border-width:1px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t-4{border-top-width:4px}.border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246 \/ var(--tw-border-opacity, 1))}.border-cyan-500{--tw-border-opacity:1;border-color:rgb(6 182 212 \/ var(--tw-border-opacity, 1))}.border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246 \/ var(--tw-border-opacity, 1))}.border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81 \/ var(--tw-border-opacity, 1))}.border-purple-500{--tw-border-opacity:1;border-color:rgb(168 85 247 \/ var(--tw-border-opacity, 1))}.border-yellow-200{--tw-border-opacity:1;border-color:rgb(254 240 138 \/ var(--tw-border-opacity, 1))}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254 \/ var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255 \/ var(--tw-bg-opacity, 1))}.bg-cyan-500{--tw-bg-opacity:1;background-color:rgb(6 182 212 \/ var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251 \/ var(--tw-bg-opacity, 1))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55 \/ var(--tw-bg-opacity, 1))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39 \/ var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231 \/ var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94 \/ var(--tw-bg-opacity, 1))}.bg-indigo-500\\\/30{background-color:rgb(99 102 241 \/ 0.3)}.bg-pink-500{--tw-bg-opacity:1;background-color:rgb(236 72 153 \/ var(--tw-bg-opacity, 1))}.bg-purple-50{--tw-bg-opacity:1;background-color:rgb(250 245 255 \/ var(--tw-bg-opacity, 1))}.bg-purple-500{--tw-bg-opacity:1;background-color:rgb(168 85 247 \/ var(--tw-bg-opacity, 1))}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226 \/ var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255 \/ var(--tw-bg-opacity, 1))}.bg-white\\\/10{background-color:rgb(255 255 255 \/ 0.1)}.bg-yellow-100{--tw-bg-opacity:1;background-color:rgb(254 249 195 \/ var(--tw-bg-opacity, 1))}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgb(254 252 232 \/ var(--tw-bg-opacity, 1))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right, var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right, var(--tw-gradient-stops))}.from-cyan-500{--tw-gradient-from:#06b6d4 var(--tw-gradient-from-position);--tw-gradient-to:rgb(6 182 212 \/ 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-gray-900{--tw-gradient-from:#111827 var(--tw-gradient-from-position);--tw-gradient-to:rgb(17 24 39 \/ 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.to-indigo-900{--tw-gradient-to:#312e81 var(--tw-gradient-to-position)}.to-purple-600{--tw-gradient-to:#9333ea var(--tw-gradient-to-position)}.p-1{padding:0.25rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\\[2px\\]{padding:2px}.px-3{padding-left:0.75rem;padding-right:0.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:0.25rem;padding-bottom:0.25rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-3{padding-top:0.75rem;padding-bottom:0.75rem}.pb-16{padding-bottom:4rem}.pb-20{padding-bottom:5rem}.pt-20{padding-top:5rem}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-6xl{font-size:3.75rem;line-height:1}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:0.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:0.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-0.025em}.tracking-wider{letter-spacing:0.05em}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235 \/ var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175 \/ var(--tw-text-opacity, 1))}.text-blue-900{--tw-text-opacity:1;color:rgb(30 58 138 \/ var(--tw-text-opacity, 1))}.text-cyan-300{--tw-text-opacity:1;color:rgb(103 232 249 \/ var(--tw-text-opacity, 1))}.text-cyan-400{--tw-text-opacity:1;color:rgb(34 211 238 \/ var(--tw-text-opacity, 1))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219 \/ var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175 \/ var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128 \/ var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99 \/ var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81 \/ var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55 \/ var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39 \/ var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity:1;color:rgb(74 222 128 \/ var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74 \/ var(--tw-text-opacity, 1))}.text-pink-400{--tw-text-opacity:1;color:rgb(244 114 182 \/ var(--tw-text-opacity, 1))}.text-purple-400{--tw-text-opacity:1;color:rgb(192 132 252 \/ var(--tw-text-opacity, 1))}.text-purple-800{--tw-text-opacity:1;color:rgb(107 33 168 \/ var(--tw-text-opacity, 1))}.text-purple-900{--tw-text-opacity:1;color:rgb(88 28 135 \/ var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38 \/ var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255 \/ var(--tw-text-opacity, 1))}.text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8 \/ var(--tw-text-opacity, 1))}.text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4 \/ var(--tw-text-opacity, 1))}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-20{opacity:0.2}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgb(0 0 0 \/ 0.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgb(0 0 0 \/ 0.1), 0 4px 6px -4px rgb(0 0 0 \/ 0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgb(0 0 0 \/ 0.1), 0 8px 10px -6px rgb(0 0 0 \/ 0.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.blur-3xl{--tw-blur:blur(64px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color, background-color, border-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-text-decoration-color, -webkit-backdrop-filter;transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-text-decoration-color, -webkit-backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.duration-300{transition-duration:300ms}.hover\\:-translate-y-2:hover{--tw-translate-y:-0.5rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\\:transform:hover{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\\:bg-transparent:hover{background-color:transparent}.group:hover .group-hover\\:bg-cyan-400{--tw-bg-opacity:1;background-color:rgb(34 211 238 \/ var(--tw-bg-opacity, 1))}.group:hover .group-hover\\:bg-green-400{--tw-bg-opacity:1;background-color:rgb(74 222 128 \/ var(--tw-bg-opacity, 1))}.group:hover .group-hover\\:bg-pink-400{--tw-bg-opacity:1;background-color:rgb(244 114 182 \/ var(--tw-bg-opacity, 1))}.group:hover .group-hover\\:bg-purple-400{--tw-bg-opacity:1;background-color:rgb(192 132 252 \/ var(--tw-bg-opacity, 1))}@media (min-width: 640px){.sm\\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.sm\\:px-6{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width: 768px){.md\\:order-1{order:1}.md\\:order-2{order:2}.md\\:block{display:block}.md\\:w-1\\\/3{width:33.333333%}.md\\:w-2\\\/3{width:66.666667%}.md\\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.md\\:grid-cols-4{grid-template-columns:repeat(4, minmax(0, 1fr))}.md\\:flex-row{flex-direction:row}.md\\:p-10{padding:2.5rem}.md\\:p-12{padding:3rem}.md\\:text-6xl{font-size:3.75rem;line-height:1}}@media (min-width: 1024px){.lg\\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.lg\\:px-8{padding-left:2rem;padding-right:2rem}}<\/style><\/head>\n  <body class=\"antialiased\">\n\n      <!-- HERO SECTION -->\n      <header class=\"bg-gradient-header text-white pt-20 pb-16 px-4 sm:px-6 lg:px-8 shadow-xl relative overflow-hidden\">\n          <div class=\"max-w-7xl mx-auto text-center relative z-10\">\n              <div class=\"inline-block px-3 py-1 mb-4 text-xs font-semibold tracking-wider text-cyan-300 uppercase bg-white\/10 rounded-full\">\n                  Strategic Report\n              <\/div>\n              <h1 class=\"text-4xl md:text-6xl font-extrabold tracking-tight mb-6\">\n                  Risk Management <br>and <span class=\"text-cyan-400\">Compliance<\/span>\n              <\/h1>\n              <p class=\"mt-4 text-xl text-gray-300 max-w-3xl mx-auto\">\n                  Transform uncertainty into a competitive advantage. A 360\u00b0 view of your assets, vulnerabilities, and compliance posture, powered by leading technology and expert auditing.\n              <\/p>\n          <\/div>\n          <!-- Decorative bg element -->\n          <div class=\"absolute top-0 left-0 w-full h-full overflow-hidden z-0 opacity-20\">\n              <div class=\"absolute -top-24 -left-24 w-96 h-96 rounded-full bg-purple-500 blur-3xl\"><\/div>\n              <div class=\"absolute bottom-0 right-0 w-96 h-96 rounded-full bg-cyan-500 blur-3xl\"><\/div>\n          <\/div>\n      <\/header>\n\n      <!-- MAIN CONTENT CONTAINER -->\n      <main class=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 -mt-10 relative z-20 pb-20 space-y-16\">\n\n          <!-- SECTION 1: THE ECOSYSTEM (Doughnut Chart) -->\n          <section class=\"bg-white rounded-2xl shadow-xl p-8 md:p-10 border-t-4 border-cyan-500\">\n              <div class=\"grid grid-cols-1 md:grid-cols-2 gap-12 items-center\">\n                  \n                  <!-- Text Content -->\n                  <div class=\"order-2 md:order-1\">\n                      <h2 class=\"text-3xl font-bold text-gray-900 mb-4\">Protection Ecosystem<\/h2>\n                      <p class=\"text-lg text-gray-600 mb-6 leading-relaxed\">\n                          Modern security is not an isolated tool; it is an interconnected ecosystem. We use the <strong>Kaseya<\/strong> suite to cover the four critical pillars of cybersecurity, ensuring that no device or user falls outside the radar.\n                      <\/p>\n                      <ul class=\"space-y-4\">\n                          <li class=\"flex items-start\">\n                              <span class=\"text-2xl mr-3\">\ud83d\udd0d<\/span>\n                              <div>\n                                  <strong class=\"text-gray-900 block\">Identify <\/strong>\n                                  <span class=\"text-gray-500 text-sm\">Automated deep visibility into the network and assets.<\/span>\n                              <\/div>\n                          <\/li>\n                          <li class=\"flex items-start\">\n                              <span class=\"text-2xl mr-3\">\ud83d\udee1\ufe0f<\/span>\n                              <div>\n                                  <strong class=\"text-gray-900 block\">Protect<\/strong>\n                                  <span class=\"text-gray-500 text-sm\">Continuous management of internal and external vulnerabilities.<\/span>\n                              <\/div>\n                          <\/li>\n                          <li class=\"flex items-start\">\n                              <span class=\"text-2xl mr-3\">\ud83d\udea8<\/span>\n                              <div>\n                                  <strong class=\"text-gray-900 block\">Detect<\/strong>\n                                  <span class=\"text-gray-500 text-sm\">Alerts for suspicious changes through machine learning.<\/span>\n                              <\/div>\n                          <\/li>\n                          <li class=\"flex items-start\">\n                              <span class=\"text-2xl mr-3\">\u2705<\/span>\n                              <div>\n                                  <strong class=\"text-gray-900 block\">Comply <\/strong>\n                                  <span class=\"text-gray-500 text-sm\">Automated evidence for audits and governance..<\/span>\n                              <\/div>\n                          <\/li>\n                      <\/ul>\n                  <\/div>\n\n                  <!-- Visualization: Doughnut Chart -->\n                  <div class=\"order-1 md:order-2 flex flex-col items-center\">\n                      <div class=\"chart-container\">\n                          <canvas id=\"ecosystemChart\" style=\"display: block; box-sizing: border-box; height: 400px; width: 422.8px;\" width=\"845\" height=\"800\"><\/canvas>\n                      <\/div>\n                      <p class=\"text-center text-sm text-gray-400 mt-4 italic\">\n                          Figure 1: Functional distribution of the risk management suite.\n                      <\/p>\n                  <\/div>\n              <\/div>\n          <\/section>\n\n          <!-- SECTION 2: NIST FRAMEWORK (Radar Chart) -->\n          <section>\n              <div class=\"mb-8 text-center max-w-3xl mx-auto\">\n                  <h2 class=\"text-3xl font-bold text-gray-900\">Alignment with Global Standards.<\/h2>\n                  <p class=\"text-lg text-gray-600 mt-2\">\n                      Our solutions are not generic; they are natively mapped to comply with the most demanding frameworks such as <strong>NIST CSF, ISO 27001:2022, SOC, HIPAA, and more.<\/strong>\n                  <\/p>\n              <\/div>\n\n              <div class=\"bg-white rounded-2xl shadow-lg overflow-hidden\">\n                  <div class=\"grid grid-cols-1 lg:grid-cols-2\">\n                      \n                      <!-- Visualization: Radar Chart -->\n                      <div class=\"p-8 bg-gray-50 flex flex-col justify-center items-center border-r border-gray-100\">\n                          <div class=\"chart-container\">\n                              <canvas id=\"nistRadarChart\" style=\"display: block; box-sizing: border-box; height: 400px; width: 600px;\" width=\"1200\" height=\"800\"><\/canvas>\n                          <\/div>\n                          <p class=\"text-center text-sm text-gray-500 mt-6\">\n                              Comparison: Typical Coverage vs. Coverage with GLADiiUM\u2019s vCISO.\n                          <\/p>\n                      <\/div>\n\n                      <!-- Context Text -->\n                      <div class=\"p-8 md:p-12 flex flex-col justify-center\">\n                          <h3 class=\"text-2xl font-bold text-gray-800 mb-4\">The NIST CSF Cycle<\/h3>\n                          <p class=\"text-gray-600 mb-6\">\n                            The radar chart illustrates how our implementation covers the five key functions of the NIST framework. While many organizations (Gray Line) struggle with detection and recovery, our comprehensive solution (Purple Line) raises the maturity score across all areas.  <\/p>\n                          \n                          <div class=\"space-y-4\">\n                              <div class=\"bg-blue-50 p-4 rounded-lg border-l-4 border-blue-500\">\n                                  <h4 class=\"font-bold text-blue-900\">For Regulated Entities (ISO 27001 \/ CMMC \/ NIST 800-171).<\/h4>\n                                  <p class=\"text-sm text-blue-800\">Automatic generation of Security Management policies and Action Plans with all documentation required by regulatory bodies.<\/p>\n                              <\/div>\n                              <div class=\"bg-purple-50 p-4 rounded-lg border-l-4 border-purple-500\">\n                                  <h4 class=\"font-bold text-purple-900\">For Healthcare (HIPAA)<\/h4>\n                                  <p class=\"text-sm text-purple-800\">Continuous auditing of the privacy and security of sensitive data.<\/p>\n                              <\/div>\n                          <\/div>\n                      <\/div>\n\n                  <\/div>\n              <\/div>\n          <\/section>\n\n          <!-- SECTION 3: COMPLIANCE WORKFLOW (HTML Diagram) -->\n          <section class=\"bg-gradient-to-br from-gray-900 to-indigo-900 rounded-2xl shadow-2xl p-8 md:p-12 text-white\">\n              <h2 class=\"text-3xl font-bold mb-8 text-center\">Automated Workflow<\/h2>\n              <p class=\"text-gray-300 text-center max-w-3xl mx-auto mb-12\">\n                  Our vCISO service and its platform eliminate the chaos of spreadsheets. A structured, logical process that transforms technical data into audit-ready documentation.\n              <\/p>\n\n              <!-- Custom HTML Flowchart (Responsive Grid) -->\n              <div class=\"grid grid-cols-1 md:grid-cols-4 gap-6 relative\">\n                  <!-- Connecting Line (Desktop Only) -->\n                  <div class=\"hidden md:block absolute top-1\/2 left-0 w-full h-1 bg-indigo-500\/30 -translate-y-1\/2 z-0\"><\/div>\n\n                  <!-- Step 1 -->\n                  <div class=\"bg-gray-800 border border-gray-700 p-6 rounded-xl relative z-10 hover:transform hover:-translate-y-2 transition duration-300 shadow-lg group\">\n                      <div class=\"absolute -top-5 left-1\/2 transform -translate-x-1\/2 bg-cyan-500 text-white w-10 h-10 rounded-full flex items-center justify-center font-bold text-lg shadow-lg group-hover:bg-cyan-400\">1<\/div>\n                      <div class=\"mt-4 text-center\">\n                          <div class=\"text-4xl mb-3\">\u2699\ufe0f<\/div>\n                          <h3 class=\"font-bold text-xl mb-2 text-cyan-400\">Configuration<\/h3>\n                          <p class=\"text-sm text-gray-400\">The administrator configures the project and selects the applicable standards.<\/p>\n                      <\/div>\n                  <\/div>\n\n                  <!-- Step 2 -->\n                  <div class=\"bg-gray-800 border border-gray-700 p-6 rounded-xl relative z-10 hover:transform hover:-translate-y-2 transition duration-300 shadow-lg group\">\n                      <div class=\"absolute -top-5 left-1\/2 transform -translate-x-1\/2 bg-purple-500 text-white w-10 h-10 rounded-full flex items-center justify-center font-bold text-lg shadow-lg group-hover:bg-purple-400\">2<\/div>\n                      <div class=\"mt-4 text-center\">\n                          <div class=\"text-4xl mb-3\">\ud83d\ude80<\/div>\n                          <h3 class=\"font-bold text-xl mb-2 text-purple-400\">Deployment<\/h3>\n                          <p class=\"text-sm text-gray-400\">Automated scanning of the network and endpoints for evidence collection.<\/p>\n                      <\/div>\n                  <\/div>\n\n                  <!-- Step 3 -->\n                  <div class=\"bg-gray-800 border border-gray-700 p-6 rounded-xl relative z-10 hover:transform hover:-translate-y-2 transition duration-300 shadow-lg group\">\n                      <div class=\"absolute -top-5 left-1\/2 transform -translate-x-1\/2 bg-pink-500 text-white w-10 h-10 rounded-full flex items-center justify-center font-bold text-lg shadow-lg group-hover:bg-pink-400\">3<\/div>\n                      <div class=\"mt-4 text-center\">\n                          <div class=\"text-4xl mb-3\">\ud83d\udccb<\/div>\n                          <h3 class=\"font-bold text-xl mb-2 text-pink-400\">Evaluation<\/h3>\n                          <p class=\"text-sm text-gray-400\">Risk scoring through guided questionnaires for administrative and physical controls.<\/p>\n                      <\/div>\n                  <\/div>\n\n                  <!-- Step 4 -->\n                  <div class=\"bg-gray-800 border border-gray-700 p-6 rounded-xl relative z-10 hover:transform hover:-translate-y-2 transition duration-300 shadow-lg group\">\n                      <div class=\"absolute -top-5 left-1\/2 transform -translate-x-1\/2 bg-green-500 text-white w-10 h-10 rounded-full flex items-center justify-center font-bold text-lg shadow-lg group-hover:bg-green-400\">4<\/div>\n                      <div class=\"mt-4 text-center\">\n                          <div class=\"text-4xl mb-3\">\ud83d\udcc4<\/div>\n                          <h3 class=\"font-bold text-xl mb-2 text-green-400\">Report<\/h3>\n                          <p class=\"text-sm text-gray-400\">Automatic generation of evidence, improvement opportunities, and measurable action plans.<\/p>\n                      <\/div>\n                  <\/div>\n              <\/div>\n          <\/section>\n\n          <!-- SECTION 4: THE GLADIIUM DIFFERENCE (Feature Card) -->\n          <section class=\"relative\">\n              <div class=\"absolute inset-0 bg-yellow-50 transform -skew-y-2 z-0 rounded-3xl\"><\/div>\n              <div class=\"relative z-10 bg-white rounded-2xl shadow-xl p-8 md:p-12 border border-yellow-200\">\n                  <div class=\"flex flex-col md:flex-row items-center gap-10\">\n                      <div class=\"md:w-1\/3 text-center\">\n                          <div class=\"inline-block p-6 rounded-full bg-yellow-100 mb-4\">\n                              <span class=\"text-6xl\">\ud83e\udd1d<\/span>\n                          <\/div>\n                          <h3 class=\"text-2xl font-bold text-gray-900\">The Human Factor<\/h3>\n                          <p class=\"text-yellow-600 font-semibold mt-2\">GLADiiUM Technology Partners<\/p>\n                      <\/div>\n                      <div class=\"md:w-2\/3\">\n                          <h2 class=\"text-3xl font-bold text-gray-900 mb-4\">It's not only software: <span class=\"text-yellow-600\">it's Expert Guidance<\/span><\/h2>\n                          <p class=\"text-lg text-gray-700 mb-6\">\n                              The technology detects, but people resolve. The implementation of these tools includes direct support from certified auditors from <strong>GLADiiUM<\/strong>.\n                          <\/p>\n                          <div class=\"grid grid-cols-1 sm:grid-cols-2 gap-4\">\n                              <div class=\"flex items-start\">\n                                  <span class=\"text-yellow-500 mr-2\">\u2713<\/span>\n                                  <span class=\"text-gray-600\"><strong>Knowledge Transfer:<\/strong> Comprehensive training for your internal team.<\/span>\n                              <\/div>\n                              <div class=\"flex items-start\">\n                                  <span class=\"text-yellow-500 mr-2\">\u2713<\/span>\n                                  <span class=\"text-gray-600\"><strong>Custom Policies:<\/strong> Creation of processes tailored to your operational reality.<\/span>\n                              <\/div>\n                              <div class=\"flex items-start\">\n                                  <span class=\"text-yellow-500 mr-2\">\u2713<\/span>\n                                  <span class=\"text-gray-600\"><strong>Audit Simulation:<\/strong> Pre-audit preparation to ensure success.<\/span>\n                              <\/div>\n                              <div class=\"flex items-start\">\n                                  <span class=\"text-yellow-500 mr-2\">\u2713<\/span>\n                                  <span class=\"text-gray-600\"><strong>Best Practices:<\/strong> Application of proven international standards.<\/span>\n                              <\/div>\n                          <\/div>\n                      <\/div>\n                  <\/div>\n              <\/div>\n          <\/section>\n\n          <!-- SECTION 5: ROI & IMPACT (Bar Chart) -->\n          <section class=\"grid grid-cols-1 lg:grid-cols-2 gap-8 mb-12\">\n              <!-- Text -->\n              <div class=\"flex flex-col justify-center\">\n                  <h2 class=\"text-3xl font-bold text-gray-900 mb-4\">Measurable Business Impact<\/h2>\n                  <p class=\"text-lg text-gray-600 mb-6\">\n                      Investing in compliance automation is not an expense; it is a recovery of resources. By reducing the manual time spent on data collection and report preparation, your IT team can focus on strategic initiatives.\n                  <\/p>\n                  <ul class=\"space-y-3\">\n                      <li class=\"flex items-center text-gray-700\">\n                          <span class=\"bg-green-100 text-green-600 p-1 rounded mr-3 text-xs\">\ud83d\udcc9<\/span>\n                          Drastic reduction in man-hours for audits.\n                      <\/li>\n                      <li class=\"flex items-center text-gray-700\">\n                          <span class=\"bg-red-100 text-red-600 p-1 rounded mr-3 text-xs\">\ud83d\udee1\ufe0f<\/span>\n                         Active ransomware prevention (attack surface reduction).\n                      <\/li>\n                      <li class=\"flex items-center text-gray-700\">\n                          <span class=\"bg-blue-100 text-blue-600 p-1 rounded mr-3 text-xs\">\ud83d\udcbc<\/span>\n                          Competitive advantage by demonstrating compliance to customers.\n                      <\/li>\n                  <\/ul>\n              <\/div>\n\n              <!-- Visualization: Bar Chart -->\n              <div class=\"bg-white p-6 rounded-2xl shadow-lg border border-gray-100\">\n                  <h3 class=\"text-lg font-semibold text-gray-800 mb-4 text-center\">Efficiency: Manual vs. Automated Approach.<\/h3>\n                  <div class=\"chart-container\">\n                      <canvas id=\"impactChart\" style=\"display: block; box-sizing: border-box; height: 400px; width: 600px;\" width=\"1200\" height=\"800\"><\/canvas>\n                  <\/div>\n                  <p class=\"text-xs text-gray-400 mt-2 text-center\">Estimate based on typical annual audit processes.<\/p>\n              <\/div>\n          <\/section>\n\n      <\/main>\n\n      <!-- FOOTER -->\n      <footer class=\"bg-gray-900 text-white py-12\">\n          <div class=\"max-w-7xl mx-auto px-4 text-center\">\n              <h2 class=\"text-2xl font-bold mb-4\">Protect Your Future Today<\/h2>\n              <p class=\"mb-8 text-gray-400\">Move from \u2018hoping for the best\u2019 to \u2018proving you are the best.\u2019<\/p>\n              <div class=\"inline-block bg-gradient-to-r from-cyan-500 to-purple-600 p-[2px] rounded-full\">\n                  <a href=\"https:\/\/gladiium.com\/about-us\/#contacto\"><button class=\"bg-gray-900 text-white px-8 py-3 rounded-full font-bold hover:bg-transparent transition duration-300\">\n                      Request Your Evaluation\n                  <\/button><\/a>\n              <\/div>\n              <p class=\"mt-8 text-xs text-gray-600\">\n                  \u00a9 2026 GLADiiUM Technology Partners. All rights reserved.\n              <\/p>\n          <\/div>\n      <\/footer>\n\n      <!-- SCRIPT SECTION -->\n      <script>\n          \/\/ --- UTILITIES ---\n          \/\/ Helper function to wrap long labels for Chart.js\n          function wrapLabel(str, maxChars) {\n              if (str.length <= maxChars) return str;\n              const words = str.split(' ');\n              const lines = [];\n              let currentLine = words[0];\n\n              for (let i = 1; i < words.length; i++) {\n                  if ((currentLine + \" \" + words[i]).length < maxChars) {\n                      currentLine += \" \" + words[i];\n                  } else {\n                      lines.push(currentLine);\n                      currentLine = words[i];\n                  }\n              }\n              lines.push(currentLine);\n              return lines;\n          }\n\n          \/\/ Shared Tooltip Callback for Multiline support\n          const tooltipCallback = {\n              title: function(tooltipItems) {\n                  const item = tooltipItems[0];\n                  let label = item.chart.data.labels[item.dataIndex];\n                  if (Array.isArray(label)) {\n                      return label.join(' ');\n                  } else {\n                      return label;\n                  }\n              }\n          };\n\n          \/\/ --- CHART 1: ECOSYSTEM (Doughnut) ---\n          const ctxEcosystem = document.getElementById('ecosystemChart').getContext('2d');\n          const ecosystemLabels = ['Identify ', 'Protect', 'Detect', 'Compliance'];\n          const processedEcosystemLabels = ecosystemLabels.map(l => wrapLabel(l, 20));\n\n          new Chart(ctxEcosystem, {\n              type: 'doughnut',\n              data: {\n                  labels: processedEcosystemLabels,\n                  datasets: [{\n                      data: [25, 25, 25, 25], \/\/ Equal weight for the pillars\n                      backgroundColor: [\n                          '#06B6D4', \/\/ Cyan\n                          '#3B82F6', \/\/ Blue\n                          '#EC4899', \/\/ Pink\n                          '#8B5CF6'  \/\/ Purple\n                      ],\n                      borderWidth: 0,\n                      hoverOffset: 15\n                  }]\n              },\n              options: {\n                  responsive: true,\n                  maintainAspectRatio: false,\n                  plugins: {\n                      legend: {\n                          position: 'bottom',\n                          labels: { font: { family: \"'Inter', sans-serif\" }, boxWidth: 12 }\n                      },\n                      tooltip: {\n                          callbacks: tooltipCallback,\n                          backgroundColor: 'rgba(17, 24, 39, 0.9)',\n                          padding: 12\n                      }\n                  }\n              }\n          });\n\n          \/\/ --- CHART 2: NIST RADAR ---\n          const ctxRadar = document.getElementById('nistRadarChart').getContext('2d');\n          const nistLabels = ['Identify', 'Protect', 'Detect', 'Respond', 'Recover'];\n          \n          new Chart(ctxRadar, {\n              type: 'radar',\n              data: {\n                  labels: nistLabels,\n                  datasets: [{\n                      label: 'Integral Solution (RapidFire + GLADiiUM)',\n                      data: [95, 90, 85, 80, 85],\n                      fill: true,\n                      backgroundColor: 'rgba(139, 92, 246, 0.2)', \/\/ Purple transparent\n                      borderColor: '#8B5CF6',\n                      pointBackgroundColor: '#8B5CF6',\n                      pointBorderColor: '#fff',\n                      pointHoverBackgroundColor: '#fff',\n                      pointHoverBorderColor: '#8B5CF6'\n                  }, {\n                      label: 'Traditional \/ Manual Approach',\n                      data: [60, 70, 40, 30, 40],\n                      fill: true,\n                      backgroundColor: 'rgba(156, 163, 175, 0.2)', \/\/ Gray transparent\n                      borderColor: '#9CA3AF',\n                      pointBackgroundColor: '#9CA3AF',\n                      pointBorderColor: '#fff',\n                      pointHoverBackgroundColor: '#fff',\n                      pointHoverBorderColor: '#9CA3AF'\n                  }]\n              },\n              options: {\n                  responsive: true,\n                  maintainAspectRatio: false,\n                  scales: {\n                      r: {\n                          angleLines: { color: '#E5E7EB' },\n                          grid: { color: '#E5E7EB' },\n                          pointLabels: {\n                              font: { size: 12, family: \"'Inter', sans-serif\", weight: '600' },\n                              color: '#374151'\n                          },\n                          suggestedMin: 0,\n                          suggestedMax: 100\n                      }\n                  },\n                  plugins: {\n                      legend: { position: 'top' },\n                      tooltip: {\n                          callbacks: tooltipCallback,\n                          backgroundColor: 'rgba(17, 24, 39, 0.9)'\n                      }\n                  }\n              }\n          });\n\n          \/\/ --- CHART 3: IMPACT\/ROI (Bar) ---\n          const ctxImpact = document.getElementById('impactChart').getContext('2d');\n          const impactLabels = ['Data Collection', 'Risk Analysis', 'Report Generation', 'Audit Preparation'];\n          const processedImpactLabels = impactLabels.map(l => wrapLabel(l, 16));\n\n          new Chart(ctxImpact, {\n              type: 'bar',\n              data: {\n                  labels: processedImpactLabels,\n                  datasets: [\n                      {\n                          label: 'Hours (Manual)',\n                          data: [40, 25, 30, 20],\n                          backgroundColor: '#D1D5DB', \/\/ Gray\n                          borderRadius: 4\n                      },\n                      {\n                          label: 'Hours (Automated)',\n                          data: [5, 2, 1, 4],\n                          backgroundColor: '#06B6D4', \/\/ Cyan\n                          borderRadius: 4\n                      }\n                  ]\n              },\n              options: {\n                  responsive: true,\n                  maintainAspectRatio: false,\n                  indexAxis: 'y', \/\/ Horizontal Bar\n                  scales: {\n                      x: {\n                          beginAtZero: true,\n                          grid: { display: false },\n                          title: { display: true, text: 'Hours Invested (Approx.)' }\n                      },\n                      y: {\n                          grid: { display: false }\n                      }\n                  },\n                  plugins: {\n                      legend: { position: 'top' },\n                      tooltip: {\n                          callbacks: tooltipCallback,\n                          backgroundColor: 'rgba(17, 24, 39, 0.9)'\n                      }\n                  }\n              }\n          });\n      <\/script>\n\n  <\/body>\n<\/html\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<div class=\"elementor-element elementor-element-5166f4e e-flex e-con-boxed e-con e-parent\" data-id=\"5166f4e\" 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<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>In today&#8217;s rapidly evolving business landscape, effective Governance, Risk, and Compliance (GRC) strategies are more crucial than ever. Organizations face an array of challenges, from regulatory pressures to cybersecurity threats, making it essential to establish a robust framework that not only safeguards assets but also enhances decision-making. Discover how integrating GRC can empower your organization to navigate complexities, mitigate risks, and ensure compliance with ease. Join us as we delve into best practices, innovative solutions, and real-world case studies that illustrate the transformative power of a well-structured GRC approach. Your journey towards resilience and accountability starts here!<\/p>","protected":false},"author":10,"featured_media":6996,"parent":4410,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"rank_math_title":"Governance Risk and Compliance (GRC) | GLADiiUM","rank_math_description":"GLADiiUM's GRC services help organizations in Latin America and Miami meet ISO 27001, PCI-DSS and regulatory compliance requirements. Free gap assessment available.","rank_math_focus_keyword":"governance risk compliance Latin America","rank_math_seo_score":"16","footnotes":"","_links_to":"","_links_to_target":""},"class_list":["post-6995","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/gladiium.com\/pt_pt\/wp-json\/wp\/v2\/pages\/6995","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gladiium.com\/pt_pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/gladiium.com\/pt_pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/gladiium.com\/pt_pt\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/gladiium.com\/pt_pt\/wp-json\/wp\/v2\/comments?post=6995"}],"version-history":[{"count":32,"href":"https:\/\/gladiium.com\/pt_pt\/wp-json\/wp\/v2\/pages\/6995\/revisions"}],"predecessor-version":[{"id":7140,"href":"https:\/\/gladiium.com\/pt_pt\/wp-json\/wp\/v2\/pages\/6995\/revisions\/7140"}],"up":[{"embeddable":true,"href":"https:\/\/gladiium.com\/pt_pt\/wp-json\/wp\/v2\/pages\/4410"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gladiium.com\/pt_pt\/wp-json\/wp\/v2\/media\/6996"}],"wp:attachment":[{"href":"https:\/\/gladiium.com\/pt_pt\/wp-json\/wp\/v2\/media?parent=6995"}],"curies":[{"name":"\u00c9 indispens\u00e1vel","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}