{"id":92808,"date":"2026-10-14T08:59:20","date_gmt":"2026-10-14T07:59:20","guid":{"rendered":"https:\/\/staging.academiaclinicadragao.com\/?page_id=92808"},"modified":"2026-10-28T16:01:06","modified_gmt":"2026-10-28T16:01:06","slug":"perfil","status":"publish","type":"page","link":"https:\/\/staging.academiaclinicadragao.com\/en\/portal-dos-formadores\/perfil\/","title":{"rendered":"Profile"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"92808\" class=\"elementor elementor-92808\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-bd5b429 elementor-section-boxed elementor-section-height-default elementor-section-height-default wd-section-disabled\" data-id=\"bd5b429\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-74cbaba\" data-id=\"74cbaba\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6c3eb5f elementor-widget elementor-widget-shortcode\" data-id=\"6c3eb5f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\n\n<script>\n\/* Set interface language before the form is displayed, avoiding translation flicker. *\/\n(function(){\n  const isEnglish = \/^\\\/en(?:\\\/|$)\/i.test(window.location.pathname);\n  document.documentElement.classList.toggle('trainer-profile-english',isEnglish);\n  const key='trainer-profile-return-english';\n  try {\n    const saved=JSON.parse(sessionStorage.getItem(key)||'null');\n    if(saved && Date.now()-saved.time < 120000 && !isEnglish &&\n       saved.url && new URL(saved.url).pathname.replace(\/^\\\/en(?=\\\/)\/i,'')===window.location.pathname){\n      sessionStorage.removeItem(key);\n      window.location.replace(saved.url);\n    } else if(saved && (isEnglish || Date.now()-saved.time>=120000)) {\n      sessionStorage.removeItem(key);\n    }\n  } catch(e) { try{sessionStorage.removeItem(key)}catch(_){} }\n})();\n<\/script>\n\n\n\n\n\n\n\n<div id=\"icds-custom-form-container-6ae8b1c8688f3\"><\/div>\n<style>\n\/* Trainer profile \u2014 visual design matched to the e-formador profile; Dataverse behavior unchanged *\/\n.formador-perfil-form{background:#fff!important;border-radius:18px!important;padding:28px 30px!important;box-shadow:0 4px 20px rgba(20,80,150,.07);box-sizing:border-box;width:100%;font-family:inherit}\n.formador-perfil-form *{box-sizing:border-box}\n.formador-perfil-form .formador-perfil-header{margin-bottom:26px}\n.formador-perfil-form .formador-perfil-title-line{display:flex;align-items:center;gap:12px;color:#0954d9}\n.formador-perfil-form .formador-perfil-title-line h2{font-size:24px!important;color:#0954d9!important;font-weight:700!important;line-height:1.2!important;margin:0!important;text-transform:none!important}\n.formador-perfil-form .formador-perfil-header p{margin:8px 0 0!important;font-size:14px;color:#6480ac}\n.formador-perfil-form > h3{margin:32px 0 20px!important;padding:0 0 12px!important;border-bottom:1px solid #e1e9fb!important;color:#0954d9!important;font-size:18px!important;font-weight:700!important;text-transform:none!important;line-height:1.35!important}\n.formador-perfil-form .dados-pessoais-layout{display:grid;grid-template-columns:190px minmax(0,1fr);gap:28px;align-items:start}\n.formador-perfil-form .foto-wrapper{display:flex;flex-direction:column;gap:10px;min-width:0}\n.formador-perfil-form .formador-photo-label{display:block;color:#134bb9!important;font-size:14px!important;font-weight:700!important;margin:0 0 2px!important;line-height:1.4!important}\n.formador-perfil-form .formador-foto,.formador-perfil-form .formador-foto-placeholder{display:block;width:170px;max-width:100%;aspect-ratio:1\/1;object-fit:cover;border:1px solid #c6d8fd;border-radius:12px;background:#f8fbff}\n.formador-perfil-form .formador-foto-placeholder{display:flex;align-items:center;justify-content:center;text-align:center;color:#8297bc;font-size:13px;padding:12px}\n.formador-perfil-form .form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 24px}\n.formador-perfil-form .form-field{min-width:0;margin:0!important}\n.formador-perfil-form .form-field label{display:block;color:#134bb9!important;font-size:14px!important;font-weight:700!important;margin:0 0 9px!important;line-height:1.4!important}\n.formador-perfil-form .form-field input:not([type=\"file\"]),.formador-perfil-form .form-field select{display:block!important;width:100%!important;min-width:0!important;min-height:51px!important;padding:13px 15px!important;background:#fbfdff!important;color:#233b63!important;border:1px solid #c7d8fc!important;border-radius:11px!important;font-family:inherit!important;font-size:15px!important;box-shadow:none!important;outline:none!important;line-height:1.4!important}\n.formador-perfil-form .form-field input:focus,.formador-perfil-form .form-field select:focus{border-color:#287efa!important;box-shadow:0 0 0 3px rgba(40,126,250,.1)!important}\n.formador-perfil-form .form-field input[readonly]{background:#f1f5fd!important;color:#6880a5!important}\n.formador-perfil-form .form-field input[type=\"file\"]{display:block;width:100%;font-size:12px;color:#164cb7;max-width:100%}\n.formador-perfil-form .form-field small{display:block;margin-top:6px;color:#7893c0;font-size:12px;line-height:1.4}\n.formador-perfil-form .form-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #e1e9fb;margin-top:30px;padding-top:24px}\n.formador-perfil-form .form-actions p{margin:0!important;color:#7790b7;font-size:12px}\n.formador-perfil-form .form-actions button,.formador-perfil-form .form-actions button:hover,.formador-perfil-form .form-actions button:focus{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:10px!important;min-height:48px!important;padding:12px 25px!important;background:#1676f4!important;color:#fff!important;border:0!important;border-radius:11px!important;font-size:14px!important;font-weight:700!important;cursor:pointer!important;box-shadow:0 6px 15px rgba(22,118,244,.18)!important;text-decoration:none!important}\n.formador-perfil-form .form-actions button:disabled{opacity:.65!important;cursor:wait!important}\n\/* Existing DataPress feedback\/Toast logic stays intact *\/\nimg[src*=\"\/integration-cds\/front\/custom-form\/img\/spinner\"]{display:none!important}\n.formador-perfil-form .success-message,.formador-perfil-form .error-message{display:none!important}\n#trainer-profile-toast{display:none;position:fixed;right:24px;bottom:24px;z-index:999999;pointer-events:none;max-width:min(400px,calc(100vw - 32px));padding:14px 19px;border-radius:9px;background:#1d4ed8;color:#fff;box-shadow:0 5px 18px #0003;font-size:14px}\n#trainer-profile-toast.ativo{display:block}\n#trainer-profile-toast.sucesso{background:#14532d}\n#trainer-profile-toast.erro{background:#991b1b}\n\n\n\/* Required marker, independent of the label's blue text color. *\/\n.formador-perfil-form .form-required-star{color:#ef4444!important;font-weight:700!important}\n\/* Accessible clickable \/ draggable file-input area; the real DataPress input stays present. *\/\n.formador-perfil-form .formador-upload-zone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:158px;padding:21px 15px;border:2px dashed #b9d2fa;border-radius:12px;background:#f8fbff;text-align:center;color:#134bb9;transition:background .18s,border-color .18s;cursor:pointer;overflow:hidden}\n.formador-perfil-form .formador-upload-zone:hover,.formador-perfil-form .formador-upload-zone.is-dragover{background:#edf5ff;border-color:#1676f4}\n.formador-perfil-form .formador-upload-zone:focus-within{outline:3px solid rgba(40,126,250,.17);outline-offset:2px;border-color:#287efa}\n.formador-perfil-form .formador-upload-icon{color:#1676f4;display:flex}\n.formador-perfil-form .formador-upload-heading{font-size:13px;line-height:1.45;color:#325b9b}\n.formador-perfil-form .formador-upload-heading strong{color:#145ee0}\n.formador-perfil-form .formador-upload-types{font-size:12px;color:#7893c0}\n.formador-perfil-form .formador-upload-filename{font-size:12px;color:#116149;font-weight:700;overflow-wrap:anywhere}\n.formador-perfil-form .formador-upload-zone input[type=\"file\"]{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;opacity:0!important;cursor:pointer!important;margin:0!important;z-index:1}\n\n\/* Single consistent dropdown arrow; hide native\/browser arrows to prevent overlap. *\/\n.formador-perfil-form .form-field select {\n  appearance:none!important;\n  -webkit-appearance:none!important;\n  -moz-appearance:none!important;\n  padding-right:42px!important;\n  background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23134bb9' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'\/%3E%3C\/svg%3E\")!important;\n  background-repeat:no-repeat!important;\n  background-position:right 14px center!important;\n  background-size:18px 18px!important;\n  cursor:pointer;\n}\n.formador-perfil-form .form-field select::-ms-expand {display:none}\n@media(min-width:601px) and (max-width:1199px){.formador-perfil-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}\n@media(max-width:850px){.formador-perfil-form .dados-pessoais-layout{grid-template-columns:1fr}.formador-perfil-form .foto-wrapper{max-width:250px}}\n@media(max-width:600px){.formador-perfil-form{padding:20px 17px!important}.formador-perfil-form .form-grid{grid-template-columns:minmax(0,1fr);gap:17px}.formador-perfil-form .form-actions{flex-direction:column;align-items:stretch}.formador-perfil-form .form-actions button{width:100%}.formador-perfil-form .formador-perfil-title-line h2{font-size:21px!important}}\n\n\/* Date fields: visible calendar icon, with the native date picker still clickable. *\/\n.formador-perfil-form .form-field input[type=\"date\"] {\n  appearance:auto!important;\n  -webkit-appearance:auto!important;\n  color-scheme:light;\n  padding-right:45px!important;\n  background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23134bb9' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'\/%3E%3Cpath d='M7 3v4M17 3v4M3 10h18'\/%3E%3C\/svg%3E\")!important;\n  background-repeat:no-repeat!important;\n  background-position:right 15px center!important;\n  background-size:20px 20px!important;\n  cursor:pointer;\n}\n\/* Make the native browser picker trigger cover the drawn icon without drawing a second icon. *\/\n.formador-perfil-form .form-field input[type=\"date\"]::-webkit-calendar-picker-indicator {\n  opacity:0!important;\n  cursor:pointer!important;\n  position:absolute;\n  right:0;\n  width:44px;\n  height:100%;\n  margin:0;\n}\n.formador-perfil-form .form-field input[type=\"date\"] {position:relative;}\n\n\/* Bilingual trainer profile: interface is authored explicitly; TranslatePress leaves it alone. *\/\n.formador-perfil-form .trainer-profile-en,.error-message .trainer-profile-en{display:none!important}\nhtml.trainer-profile-english .formador-perfil-form .trainer-profile-pt,\nhtml.trainer-profile-english .error-message .trainer-profile-pt{display:none!important}\nhtml.trainer-profile-english .formador-perfil-form .trainer-profile-en,\nhtml.trainer-profile-english .error-message .trainer-profile-en{display:inline!important}\n<\/style>\n\n<script>\n(function () {\n    function initConditionalTrainerFields() {\n        const form = document.querySelector('.formador-perfil-form');\n        if (!form || form.dataset.conditionalFieldsReady === '1') return;\n\n        const nacionalidade = form.querySelector('#nacionalidade');\n        const naturalidadeContainer = form.querySelector('#naturalidade_container');\n        const naturalidadeInput = form.querySelector('#bpe_naturalidade');\n        const habilitacao = form.querySelector('#habilitacao');\n        const outroContainer = form.querySelector('#outro_container');\n        const outroInput = form.querySelector('#bpe_outro');\n\n        if (!nacionalidade || !naturalidadeContainer || !naturalidadeInput ||\n            !habilitacao || !outroContainer || !outroInput) return;\n\n        form.dataset.conditionalFieldsReady = '1';\n\n        function normalizar(texto) {\n            return String(texto || '')\n                .normalize('NFD')\n                .replace(\/[\\u0300-\\u036f]\/g, '')\n                .trim()\n                .toLowerCase();\n        }\n\n        function selectedLabel(select) {\n            return select.selectedOptions.length\n                ? (select.selectedOptions[0].dataset.labelPt || select.selectedOptions[0].textContent)\n                : '';\n        }\n\n        function atualizarNaturalidade() {\n            const mostrar = normalizar(selectedLabel(nacionalidade)) === 'portuguesa';\n            naturalidadeContainer.style.display = mostrar ? '' : 'none';\n            naturalidadeInput.required = mostrar;\n            naturalidadeInput.disabled = !mostrar;\n        }\n\n        function atualizarOutro() {\n            const mostrar = normalizar(selectedLabel(habilitacao)) === 'outro';\n            outroContainer.style.display = mostrar ? '' : 'none';\n            outroInput.required = mostrar;\n            outroInput.disabled = !mostrar;\n        }\n\n        nacionalidade.addEventListener('change', atualizarNaturalidade);\n        habilitacao.addEventListener('change', atualizarOutro);\n\n        atualizarNaturalidade();\n        atualizarOutro();\n    }\n\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initConditionalTrainerFields, {once:true});\n    } else {\n        initConditionalTrainerFields();\n    }\n})();\n<\/script>\n\n\n<div id=\"trainer-profile-toast\" role=\"status\" aria-live=\"polite\"><\/div>\n<style>\n\/* Existing DataPress spinner; avoid hiding unrelated page images. *\/\nimg[src*=\"\/integration-cds\/front\/custom-form\/img\/spinner\"] { display: none !important; }\n#trainer-profile-toast { pointer-events:none; }\n<\/style>\n<script>\n(function () {\n  function initTrainerToast() {\n    const form = document.getElementById('formador-perfil-form');\n    const toast = document.getElementById('trainer-profile-toast');\n    if (!form || !toast || form.dataset.toastReady === '1') return;\n    form.dataset.toastReady = '1';\n\n    let state = 'idle';\n    let hideTimer = null;\n    let responseTimer = null;\n    let scheduled = false;\n\n    const isEnglish = \/^\\\/en(?:\\\/|$)\/i.test(window.location.pathname);\n    const successMessage = isEnglish ? 'Details updated successfully!' : 'Dados atualizados com sucesso!';\n    const serverSuccessMessage = 'Dados atualizados com sucesso!';\n    const errorMessage = isEnglish ? 'Unable to update your details.' : 'N\u00e3o foi poss\u00edvel atualizar os dados.';\n    const serverErrorMessage = 'N\u00e3o foi poss\u00edvel atualizar os dados.';\n\n    function display(message, type, duration) {\n      clearTimeout(hideTimer);\n      toast.textContent = message;\n      toast.className = 'ativo ' + (type || '');\n      if (duration) {\n        hideTimer = setTimeout(() => { toast.className = ''; }, duration);\n      }\n    }\n\n    \nfunction resolve(type) {\n\n    \/\/ Stop the processing timeout\n    clearTimeout(responseTimer);\n\n    if (state === type) return;\n\n    state = type;\n\n    \/\/ Show the confirmed result\n    display(\n        type === 'success' ? successMessage : errorMessage,\n        type === 'success' ? 'sucesso' : 'erro',\n        6000\n    );\n\n    \/\/ Refresh the page ONLY after a successful update\n    if (type === 'success') {\n\n        setTimeout(function () {\n\n            window.location.reload();\n\n        }, 1500);\n\n    }\n}\n\n\n    \/\/ DataPress can render its response AFTER\/outside the <form>.\n    \/\/ Match exactly the response text, not a general \"success\" class.\n    \/\/ Keep the trainer form, script and toast itself untouched.\n    function findAndHideDatapressResponses() {\n      const elems = document.querySelectorAll(\n        'p, div, span, small, li, strong, .alert, .message, [role=\"alert\"]'\n      );\n      let found = null;\n      for (const el of elems) {\n        if (el === toast || toast.contains(el) ||\n            el.closest('#trainer-profile-toast') ||\n            el.closest('script, style')) continue;\n        \/\/ Check leaf-like nodes to avoid hiding an entire Elementor container.\n        if (el.children.length > 2) continue;\n        const label = (el.textContent || '').replace(\/^[\\s\u2713\u2714]+\/, '').trim();\n        if (label !== serverSuccessMessage && label !== serverErrorMessage && label !== successMessage && label !== errorMessage) continue;\n        el.style.setProperty('display', 'none', 'important');\n        if (label === serverSuccessMessage || label === successMessage) found = 'success';\n        else if (!found) found = 'error';\n      }\n      if (found) resolve(found);\n    }\n\n    \/\/ Server-side result marker from the existing Twig form.\n    const marker = document.getElementById('trainer-profile-result');\n    if (marker) resolve(marker.dataset.result === 'success' ? 'success' : 'error');\n\n    \/\/ Check initially (also handles success messages on full page reload).\n    findAndHideDatapressResponses();\n\n    \/\/ Watch the entire page, because DataPress may append results outside the form.\n    const observer = new MutationObserver(() => {\n      if (scheduled) return;\n      scheduled = true;\n      requestAnimationFrame(() => {\n        scheduled = false;\n        findAndHideDatapressResponses();\n      });\n    });\n    observer.observe(document.body, { childList: true, subtree: true, characterData: true });\n\n    form.addEventListener('submit', function (event) {\n      if (event.defaultPrevented || !form.checkValidity()) return;\n      state = 'processing';\n      display(isEnglish ? 'Your changes are being saved...' : 'As suas altera\u00e7\u00f5es est\u00e3o a ser guardadas...', '', 0);\n      clearTimeout(responseTimer);\n      responseTimer = setTimeout(function () {\n        if (state === 'processing') {\n          state = 'unknown';\n          display(isEnglish ? 'The result could not be confirmed. Please check whether your details were saved.' : 'N\u00e3o foi poss\u00edvel confirmar o resultado. Verifique se os dados foram guardados.', 'erro', 9000);\n        }\n      }, 20000);\n    });\n  }\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', initTrainerToast, {once:true});\n  } else {\n    initTrainerToast();\n  }\n})();\n<\/script>\n\n\n<script>\n(function(){\n  function initializeDropAreas(){\n    const form=document.getElementById('formador-perfil-form');\n    if(!form)return;\n    const isEnglish = \/^\\\/en(?:\\\/|$)\/i.test(window.location.pathname);\n    form.querySelectorAll('.formador-upload-zone').forEach(function(zone){\n      if(zone.dataset.uploadReady==='1')return;\n      zone.dataset.uploadReady='1';\n      const input=zone.querySelector('input[type=\"file\"]');\n      const output=zone.querySelector('.formador-upload-filename');\n      if(!input||!output)return;\n      function updateName(){\n        const file=input.files&&input.files[0];\n        if(file){\n          const ext=(file.name.split('.').pop()||'').toLowerCase();\n          if(ext!=='pdf' || (file.type && file.type!=='application\/pdf')){\n            input.value='';\n            output.textContent=isEnglish?'File type not allowed. Select PDF files only.':'Formato n\u00e3o permitido. Selecione apenas ficheiros PDF.';\n            return;\n          }\n        }\n        output.textContent=file ? (isEnglish?'Selected file: ':'Ficheiro selecionado: ')+file.name : '';\n      }\n      input.addEventListener('change',updateName);\n      ['dragenter','dragover'].forEach(function(name){\n        zone.addEventListener(name,function(e){e.preventDefault();zone.classList.add('is-dragover');});\n      });\n      ['dragleave','dragend'].forEach(function(name){\n        zone.addEventListener(name,function(e){e.preventDefault();if(!zone.contains(e.relatedTarget))zone.classList.remove('is-dragover');});\n      });\n      zone.addEventListener('drop',function(e){\n        e.preventDefault();zone.classList.remove('is-dragover');\n        const files=e.dataTransfer&&e.dataTransfer.files;\n        if(!files||!files.length)return;\n        const file=files[0];\n        const ext=(file.name.split('.').pop()||'').toLowerCase();\n        if(ext!=='pdf' || (file.type && file.type!=='application\/pdf')){\n          output.textContent=isEnglish?'File type not allowed. PDF only.':'Formato n\u00e3o permitido. Use Apenas PDF.';\n          return;\n        }\n        try{\n          const transfer=new DataTransfer();transfer.items.add(file);\n          input.files=transfer.files;\n          input.dispatchEvent(new Event('change',{bubbles:true}));\n        }catch(err){\n          output.textContent=isEnglish?'Unable to attach the dropped file. Click to select it.':'N\u00e3o foi poss\u00edvel anexar o ficheiro arrastado. Clique para o selecionar.';\n        }\n      });\n    });\n  }\n  if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',initializeDropAreas,{once:true});\n  else initializeDropAreas();\n})();\n<\/script>\n\n\n<script>\n\/* Mensagens de valida\u00e7\u00e3o HTML5 em portugu\u00eas (incluindo ficheiros obrigat\u00f3rios). *\/\n(function () {\n  function initPortugueseRequiredMessages() {\n    const form = document.getElementById('formador-perfil-form');\n    if (!form || form.dataset.requiredPtReady === '1') return;\n    form.dataset.requiredPtReady = '1';\n\n    form.addEventListener('invalid', function (event) {\n      const field = event.target;\n      if (!field || typeof field.setCustomValidity !== 'function') return;\n      \/\/ Only replace the default missing-required-field message.\n      if (field.validity.valueMissing) {\n        field.setCustomValidity(\/^\\\/en(?:\\\/|$)\/i.test(window.location.pathname) ? 'This field is required.' : '\u00c9 necess\u00e1rio preencher este campo.');\n      }\n    }, true);\n\n    function clearRequiredMessage(event) {\n      const field = event.target;\n      if (!field || typeof field.setCustomValidity !== 'function') return;\n      field.setCustomValidity('');\n    }\n    form.addEventListener('input', clearRequiredMessage, true);\n    form.addEventListener('change', clearRequiredMessage, true);\n  }\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', initPortugueseRequiredMessages, {once:true});\n  } else {\n    initPortugueseRequiredMessages();\n  }\n})();\n<\/script>\n\n\n<script>\n(function () {\n  function initTrainerLanguage() {\n    const form=document.getElementById('formador-perfil-form');\n    if(!form)return;\n    const isEnglish=\/^\\\/en(?:\\\/|$)\/i.test(window.location.pathname);\n    document.documentElement.classList.toggle('trainer-profile-english',isEnglish);\n    form.querySelectorAll('select').forEach(function(select){\n      const placeholder=select.querySelector('option[value=\"\"]');\n      if(placeholder) placeholder.textContent=isEnglish?'Select...':'Selecione...';\n    });\n    \/\/ Decode HTML entities sometimes double-encoded by DataPress\/Twig in data attributes.\n    \/\/ E.g. National&amp;#x20;identity becomes National identity, without altering option values.\n    function decodeLookupLabel(value){\n      const decoder=document.createElement('textarea');\n      let text=String(value||'');\n      for(let pass=0;pass<3;pass++){\n        decoder.innerHTML=text;\n        const decoded=decoder.value;\n        if(decoded===text)break;\n        text=decoded;\n      }\n      return text;\n    }\n    \/\/ Lookups: display the Dataverse English label without changing the lookup JSON value or selected record.\n    ['tipo_documento','habilitacao'].forEach(function(id){\n      const select=form.querySelector('#'+id);\n      if(!select)return;\n      Array.from(select.options).forEach(function(option){\n        if(!option.value)return;\n        const pt=decodeLookupLabel(option.dataset.labelPt || option.textContent);\n        const en=decodeLookupLabel(option.dataset.labelEn || '');\n        option.textContent=isEnglish && en.trim() ? en : pt;\n      });\n    });\n    const gender=form.querySelector('#bpe_sexo');\n    if(gender){\n      const translations={1:['Masculino','Male'],2:['Feminino','Female'],3:['Prefiro n\u00e3o indicar','Prefer not to say']};\n      Array.from(gender.options).forEach(function(option){\n        const pair=translations[option.value];\n        if(pair) option.textContent=pair[isEnglish?1:0];\n      });\n    }\n    const photo=form.querySelector('[data-trainer-photo-alt]');\n    if(photo)photo.alt=isEnglish?'Trainer photograph':'Fotografia do formador';\n    form.addEventListener('submit',function(){\n      if(!form.checkValidity())return;\n      try {\n        if(isEnglish)sessionStorage.setItem('trainer-profile-return-english',JSON.stringify({url:window.location.href,time:Date.now()}));\n      } catch(e){}\n    });\n  }\n  if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',initTrainerLanguage,{once:true});\n  else initTrainerLanguage();\n})();\n<\/script>\n\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":65,"featured_media":0,"parent":92806,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"courseId":0,"footnotes":""},"class_list":["post-92808","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/staging.academiaclinicadragao.com\/en\/wp-json\/wp\/v2\/pages\/92808","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/staging.academiaclinicadragao.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/staging.academiaclinicadragao.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/staging.academiaclinicadragao.com\/en\/wp-json\/wp\/v2\/users\/65"}],"replies":[{"embeddable":true,"href":"https:\/\/staging.academiaclinicadragao.com\/en\/wp-json\/wp\/v2\/comments?post=92808"}],"version-history":[{"count":5,"href":"https:\/\/staging.academiaclinicadragao.com\/en\/wp-json\/wp\/v2\/pages\/92808\/revisions"}],"predecessor-version":[{"id":93859,"href":"https:\/\/staging.academiaclinicadragao.com\/en\/wp-json\/wp\/v2\/pages\/92808\/revisions\/93859"}],"up":[{"embeddable":true,"href":"https:\/\/staging.academiaclinicadragao.com\/en\/wp-json\/wp\/v2\/pages\/92806"}],"wp:attachment":[{"href":"https:\/\/staging.academiaclinicadragao.com\/en\/wp-json\/wp\/v2\/media?parent=92808"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}