{"id":6835,"date":"2026-06-16T11:26:16","date_gmt":"2026-06-16T11:26:16","guid":{"rendered":"https:\/\/3solutions.pt\/?page_id=6835"},"modified":"2026-07-21T21:21:03","modified_gmt":"2026-07-21T21:21:03","slug":"jobmaps-ver-oferta","status":"publish","type":"page","link":"https:\/\/3solutions.pt\/en\/jobmaps-ver-oferta\/","title":{"rendered":"WIW &#8211; Ver ofertas"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"6835\" class=\"elementor elementor-6835\">\n\t\t\t\t<div class=\"elementor-element elementor-element-98cb294 e-flex e-con-boxed e-con e-parent\" data-id=\"98cb294\" 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-160dce2 elementor-widget elementor-widget-html\" data-id=\"160dce2\" 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        <header class=\"jm-site-header\" data-wiw-header>\r\n          <div class=\"jm-site-header-inner\">\r\n\r\n            <a href=\"https:\/\/3solutions.pt\/en\/jobmaps-o-mapa-do-trabalho-local\/\"\r\n               class=\"jm-site-brand\"\r\n               aria-label=\"Ir para o mapa WIW\">\r\n              <span class=\"jm-site-logo\">\r\n                <img decoding=\"async\" src=\"https:\/\/3solutions.pt\/wp-content\/uploads\/2026\/06\/WIW.png\"\r\n                     alt=\"WIW \u2014 Work is Worth\">\r\n              <\/span>\r\n              <span class=\"jm-site-tagline\">O mapa de ofertas salariais na sua zona<\/span>\r\n            <\/a>\r\n\r\n            <nav class=\"jm-site-nav\" aria-label=\"Menu WIW\">\r\n\r\n              <a id=\"jm-link-contratar\"\r\n                 href=\"https:\/\/3solutions.pt\/en\/jobmaps-login\/\"\r\n                 class=\"jm-site-nav-link jm-primary-link\">\r\n                Quero contratar\r\n              <\/a>\r\n\r\n              <a id=\"jm-link-publicar\"\r\n                 href=\"https:\/\/3solutions.pt\/en\/planos-para-empresas-wiw\/\"\r\n                 class=\"jm-site-nav-link\"\r\n                 style=\"display:none;\">\r\n                Publicar oferta\r\n              <\/a>\r\n\r\n              <a id=\"jm-link-trabalhar\"\r\n                 href=\"https:\/\/3solutions.pt\/en\/jobmaps-login-candidato\/\"\r\n                 class=\"jm-site-nav-link\">\r\n                Quero trabalhar\r\n              <\/a>\r\n\r\n              <a id=\"jm-link-recrutador\"\r\n                 href=\"https:\/\/3solutions.pt\/en\/wiw-recrutadores\/\"\r\n                 class=\"jm-site-nav-link\">\r\n                Sou recrutador\r\n              <\/a>\r\n\r\n              <a id=\"jm-link-legal\"\r\n                 href=\"https:\/\/3solutions.pt\/en\/legal-wiw\/\"\r\n                 class=\"jm-site-nav-link jm-legal-link\">\r\n                Privacidade e Termos\r\n              <\/a>\r\n\r\n              <a id=\"jm-user-pill\"\r\n                 href=\"#\"\r\n                 class=\"jm-user-pill\"\r\n                 style=\"display:none;\">\r\n                <span class=\"jm-user-icon\" aria-hidden=\"true\">\ud83d\udc64<\/span>\r\n                <span id=\"jm-user-name\">Conta WIW<\/span>\r\n              <\/a>\r\n\r\n              <a id=\"jm-logout-link\"\r\n                 href=\"#\"\r\n                 class=\"jm-logout-link\"\r\n                 style=\"display:none;\">\r\n                Sair\r\n              <\/a>\r\n\r\n            <\/nav>\r\n\r\n          <\/div>\r\n        <\/header>\r\n\r\n        <script>\r\n        (function() {\r\n          function initWiwHeader() {\r\n            const header = document.querySelector(\"[data-wiw-header]\");\r\n            if (!header || header.dataset.ready === \"1\") return;\r\n\r\n            header.dataset.ready = \"1\";\r\n\r\n            const contratarLink = header.querySelector(\"#jm-link-contratar\");\r\n            const publicarLink = header.querySelector(\"#jm-link-publicar\");\r\n            const trabalharLink = header.querySelector(\"#jm-link-trabalhar\");\r\n            const recrutadorLink = header.querySelector(\"#jm-link-recrutador\");\r\n            const legalLink = header.querySelector(\"#jm-link-legal\");\r\n            const userPill = header.querySelector(\"#jm-user-pill\");\r\n            const userName = header.querySelector(\"#jm-user-name\");\r\n            const logoutLink = header.querySelector(\"#jm-logout-link\");\r\n\r\n            const urlsDefault = {\r\n              mapa: \"https:\/\/3solutions.pt\/en\/jobmaps-o-mapa-do-trabalho-local\/\",\r\n              loginEmpresa: \"https:\/\/3solutions.pt\/en\/jobmaps-login\/\",\r\n              areaEmpresa: \"https:\/\/3solutions.pt\/en\/jobmaps-area-empresa\/\",\r\n              planosEmpresa: \"https:\/\/3solutions.pt\/en\/planos-para-empresas-wiw\/\",\r\n              candidatos: \"https:\/\/3solutions.pt\/en\/jobmaps-candidatos\/\",\r\n              registoCandidato: \"https:\/\/3solutions.pt\/en\/jobmaps-registo-candidato\/\",\r\n              loginCandidato: \"https:\/\/3solutions.pt\/en\/jobmaps-login-candidato\/\",\r\n              areaCandidato: \"https:\/\/3solutions.pt\/en\/jobmaps-area-candidato\/\",\r\n              recrutador: \"https:\/\/3solutions.pt\/en\/wiw-recrutadores\/\",\r\n              areaRecrutador: \"https:\/\/3solutions.pt\/en\/jobmaps-area-recrutador\/\",\r\n              legal: \"https:\/\/3solutions.pt\/en\/legal-wiw\/\",\r\n              logoutAjax: \"https:\/\/3solutions.pt\/wp-admin\/admin-ajax.php\",\r\n              logoutRedirect: \"https:\/\/3solutions.pt\/en\/jobmaps-o-mapa-do-trabalho-local\/\" \r\n            };\r\n\r\n            function setHref(el, href) {\r\n              if (el && href) el.href = href;\r\n            }\r\n\r\n            function setText(el, text) {\r\n              if (el) el.textContent = text || \"\";\r\n            }\r\n\r\n            function show(el, displayValue) {\r\n              if (el) el.style.display = displayValue || \"inline-flex\";\r\n            }\r\n\r\n            function hide(el) {\r\n              if (el) el.style.display = \"none\";\r\n            }\r\n\r\n            function resetClasses() {\r\n              [contratarLink, publicarLink, trabalharLink, recrutadorLink, legalLink].forEach(function(link) {\r\n                if (!link) return;\r\n                link.classList.remove(\"jm-primary-link\", \"jm-logged-link\");\r\n              });\r\n            }\r\n\r\n            function resetVisibility() {\r\n              show(contratarLink);\r\n              hide(publicarLink);\r\n              show(trabalharLink);\r\n              show(recrutadorLink);\r\n              show(legalLink);\r\n              hide(userPill);\r\n              hide(logoutLink);\r\n            }\r\n\r\n            function applyCommonUrls(data) {\r\n              const urls = data && data.urls ? data.urls : {};\r\n\r\n              setHref(contratarLink, urls.login_empresa || urlsDefault.loginEmpresa);\r\n              setHref(publicarLink, urls.planos_empresa || urlsDefault.planosEmpresa);\r\n              setHref(trabalharLink, urls.login_candidato || urlsDefault.loginCandidato);\r\n              setHref(recrutadorLink, urls.recrutador || urlsDefault.recrutador);\r\n              setHref(legalLink, urls.legal || urlsDefault.legal);\r\n            }\r\n\r\n            function applyAccount(data, name, areaUrl) {\r\n              if (userPill && userName) {\r\n                setText(userName, name || \"Conta WIW\");\r\n                setHref(userPill, areaUrl);\r\n                show(userPill);\r\n              }\r\n\r\n              if (logoutLink) {\r\n                setHref(logoutLink, \"#\");\r\n                show(logoutLink);\r\n              }\r\n            }\r\n\r\n            function bindLogout() {\r\n              if (!logoutLink || logoutLink.dataset.bound === \"1\") {\r\n                return;\r\n              }\r\n\r\n              logoutLink.dataset.bound = \"1\";\r\n\r\n              logoutLink.addEventListener(\"click\", function(event) {\r\n                event.preventDefault();\r\n\r\n                if (logoutLink.dataset.loading === \"1\") {\r\n                  return;\r\n                }\r\n\r\n                logoutLink.dataset.loading = \"1\";\r\n                logoutLink.textContent = \"A sair...\";\r\n\r\n                const body = new URLSearchParams();\r\n                body.append(\"action\", \"wiw_logout_now\");\r\n\r\n                fetch(urlsDefault.logoutAjax, {\r\n                  method: \"POST\",\r\n                  credentials: \"same-origin\",\r\n                  cache: \"no-store\",\r\n                  headers: {\r\n                    \"Content-Type\": \"application\/x-www-form-urlencoded; charset=UTF-8\"\r\n                  },\r\n                  body: body.toString()\r\n                })\r\n                  .then(function(response) {\r\n                    return response.json();\r\n                  })\r\n                  .then(function(data) {\r\n                    const redirect =\r\n                      data &&\r\n                      data.success &&\r\n                      data.data &&\r\n                      data.data.redirect\r\n                        ? data.data.redirect\r\n                        : urlsDefault.logoutRedirect;\r\n\r\n                    window.location.replace(redirect);\r\n                  })\r\n                  .catch(function() {\r\n                    window.location.replace(urlsDefault.logoutRedirect);\r\n                  });\r\n              });\r\n            }\r\n\r\n            function applyCurrentPageHighlight() {\r\n              const path = String(window.location.pathname || \"\").toLowerCase();\r\n\r\n              [contratarLink, publicarLink, trabalharLink, recrutadorLink, legalLink].forEach(function(link) {\r\n                if (!link) return;\r\n                link.classList.remove(\"jm-primary-link\");\r\n              });\r\n\r\n              const isLegal =\r\n                path.includes(\"\/legal-wiw\") ||\r\n                path.includes(\"\/politica-de-privacidade\") ||\r\n                path.includes(\"\/termos-e-condicoes\") ||\r\n                path.includes(\"\/termos\");\r\n\r\n              const isRecruiter =\r\n                path.includes(\"\/wiw-recrutadores\") ||\r\n                path.includes(\"\/jobmaps-area-recrutador\") ||\r\n                path.includes(\"\/jobmaps-login-recrutador\") ||\r\n                path.includes(\"\/jobmaps-registo-recrutador\");\r\n\r\n              const isCandidate =\r\n                path.includes(\"\/jobmaps-candidatos\") ||\r\n                path.includes(\"\/jobmaps-registo-candidato\") ||\r\n                path.includes(\"\/jobmaps-login-candidato\") ||\r\n                path.includes(\"\/jobmaps-area-candidato\") ||\r\n                path.includes(\"\/jobmaps-candidatar-oferta\");\r\n\r\n              const isCompanyPublishing =\r\n                path.includes(\"\/planos-para-empresas-wiw\") ||\r\n                path.includes(\"\/jobmaps-publicar-oferta\");\r\n\r\n              const isCompanyArea =\r\n                path.includes(\"\/jobmaps-login\") ||\r\n                path.includes(\"\/jobmaps-registo-empresa\") ||\r\n                path.includes(\"\/jobmaps-area-empresa\") ||\r\n                path.includes(\"\/jobmaps-minhas-ofertas\") ||\r\n                path.includes(\"\/jobmaps-editar-oferta\") ||\r\n                path.includes(\"\/jobmaps-candidaturas-oferta\") ||\r\n                path.includes(\"\/jobmaps-ofertas-entidade\");\r\n\r\n              if (isLegal && legalLink && legalLink.style.display !== \"none\") {\r\n                legalLink.classList.add(\"jm-primary-link\");\r\n                return;\r\n              }\r\n\r\n              if (isRecruiter && recrutadorLink && recrutadorLink.style.display !== \"none\") {\r\n                recrutadorLink.classList.add(\"jm-primary-link\");\r\n                return;\r\n              }\r\n\r\n              if (isCandidate && trabalharLink && trabalharLink.style.display !== \"none\") {\r\n                trabalharLink.classList.add(\"jm-primary-link\");\r\n                return;\r\n              }\r\n\r\n              if (isCompanyPublishing) {\r\n                if (publicarLink && publicarLink.style.display !== \"none\") {\r\n                  publicarLink.classList.add(\"jm-primary-link\");\r\n                  return;\r\n                }\r\n\r\n                if (contratarLink && contratarLink.style.display !== \"none\") {\r\n                  contratarLink.classList.add(\"jm-primary-link\");\r\n                  return;\r\n                }\r\n              }\r\n\r\n              if (isCompanyArea && contratarLink && contratarLink.style.display !== \"none\") {\r\n                contratarLink.classList.add(\"jm-primary-link\");\r\n              }\r\n            }\r\n\r\n            function estadoNaoLogado(data) {\r\n              resetClasses();\r\n              resetVisibility();\r\n              applyCommonUrls(data || {});\r\n\r\n              setText(contratarLink, \"Quero contratar\");\r\n              setText(trabalharLink, \"Quero trabalhar\");\r\n              setText(recrutadorLink, \"Sou recrutador\");\r\n              setText(legalLink, \"Privacidade e Termos\");\r\n\r\n              applyCurrentPageHighlight();\r\n            }\r\n\r\n            function estadoEmpresaLogada(data) {\r\n              resetClasses();\r\n              resetVisibility();\r\n              applyCommonUrls(data);\r\n\r\n              setHref(contratarLink, data.area_url || urlsDefault.areaEmpresa);\r\n              setText(contratarLink, \"\u00c1rea da empresa\");\r\n\r\n              setHref(publicarLink, data.publicar_url || urlsDefault.planosEmpresa);\r\n              setText(publicarLink, \"Publicar oferta\");\r\n              publicarLink.classList.add(\"jm-primary-link\");\r\n              show(publicarLink);\r\n\r\n              hide(trabalharLink);\r\n\r\n              setText(recrutadorLink, \"Sou recrutador\");\r\n              setText(legalLink, \"Privacidade e Termos\");\r\n\r\n              applyAccount(\r\n                data,\r\n                data.empresa_titulo || data.display_name || \"Empresa\",\r\n                data.area_url || urlsDefault.areaEmpresa\r\n              );\r\n\r\n              applyCurrentPageHighlight();\r\n            }\r\n\r\n            function estadoCandidatoLogado(data) {\r\n              resetClasses();\r\n              resetVisibility();\r\n              applyCommonUrls(data);\r\n\r\n              hide(contratarLink);\r\n              hide(publicarLink);\r\n\r\n              setHref(trabalharLink, data.area_url || urlsDefault.areaCandidato);\r\n              setText(trabalharLink, \"\u00c1rea do candidato\");\r\n\r\n              setText(recrutadorLink, \"Sou recrutador\");\r\n              setText(legalLink, \"Privacidade e Termos\");\r\n\r\n              applyAccount(\r\n                data,\r\n                data.candidato_nome || data.display_name || \"Candidato\",\r\n                data.area_url || urlsDefault.areaCandidato\r\n              );\r\n\r\n              applyCurrentPageHighlight();\r\n            }\r\n\r\n            function estadoRecrutadorLogado(data) {\r\n              resetClasses();\r\n              resetVisibility();\r\n              applyCommonUrls(data);\r\n\r\n              setHref(contratarLink, data.empresa_login_url || urlsDefault.loginEmpresa);\r\n              setText(contratarLink, \"Quero contratar\");\r\n\r\n              hide(publicarLink);\r\n              hide(trabalharLink);\r\n\r\n              setHref(recrutadorLink, data.area_url || urlsDefault.areaRecrutador);\r\n              setText(recrutadorLink, \"\u00c1rea do recrutador\");\r\n\r\n              setText(legalLink, \"Privacidade e Termos\");\r\n\r\n              applyAccount(\r\n                data,\r\n                data.recrutador_nome || data.display_name || \"Recrutador\",\r\n                data.area_url || urlsDefault.areaRecrutador\r\n              );\r\n\r\n              applyCurrentPageHighlight();\r\n            }\r\n\r\n            bindLogout();\r\n\r\n            fetch(\"https:\/\/3solutions.pt\/wp-admin\/admin-ajax.php?action=jm5_header_me&t=\" + Date.now(), {\r\n              method: \"GET\",\r\n              credentials: \"same-origin\",\r\n              cache: \"no-store\"\r\n            })\r\n              .then(function(response) {\r\n                return response.json();\r\n              })\r\n              .then(function(data) {\r\n                if (!data || !data.logged_in) {\r\n                  estadoNaoLogado(data || {});\r\n                  return;\r\n                }\r\n\r\n                if (data.is_empresa) {\r\n                  estadoEmpresaLogada(data);\r\n                  return;\r\n                }\r\n\r\n                if (data.is_candidato) {\r\n                  estadoCandidatoLogado(data);\r\n                  return;\r\n                }\r\n\r\n                if (data.is_recrutador) {\r\n                  estadoRecrutadorLogado(data);\r\n                  return;\r\n                }\r\n\r\n                estadoNaoLogado(data);\r\n              })\r\n              .catch(function() {\r\n                estadoNaoLogado({});\r\n              });\r\n          }\r\n\r\n          if (document.readyState === \"loading\") {\r\n            document.addEventListener(\"DOMContentLoaded\", initWiwHeader);\r\n          } else {\r\n            initWiwHeader();\r\n          }\r\n        })();\r\n        <\/script>\r\n\r\n        <style>\r\n        .jm-site-header {\r\n          width: 100%;\r\n          padding: 0;\r\n          background: #ffffff;\r\n          box-sizing: border-box;\r\n          font-family: inherit;\r\n          position: relative;\r\n          z-index: 20;\r\n          border-bottom: 1px solid #e8ebf0;\r\n        }\r\n\r\n        .jm-site-header *,\r\n        .jm-site-header *::before,\r\n        .jm-site-header *::after {\r\n          box-sizing: border-box;\r\n        }\r\n\r\n        .jm-site-header-inner {\r\n          width: 100%;\r\n          margin: 0 auto;\r\n          padding: 4px 24px;\r\n          min-height: 66px;\r\n          background: #ffffff;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: space-between;\r\n          gap: 18px;\r\n          overflow: visible;\r\n          position: relative;\r\n        }\r\n\r\n        .jm-site-brand {\r\n          display: inline-flex;\r\n          flex-direction: column;\r\n          align-items: flex-start;\r\n          justify-content: center;\r\n          text-decoration: none;\r\n          flex-shrink: 0;\r\n          min-width: 250px;\r\n          overflow: visible;\r\n        }\r\n\r\n        .jm-site-logo {\r\n          height: 52px;\r\n          display: inline-flex;\r\n          align-items: center;\r\n          justify-content: flex-start;\r\n          overflow: visible;\r\n        }\r\n\r\n        .jm-site-logo img {\r\n          height: 150px;\r\n          width: auto;\r\n          max-width: 285px;\r\n          display: block;\r\n          transform: scale(1.16);\r\n          transform-origin: left center;\r\n        }\r\n\r\n        .jm-site-tagline {\r\n          margin-top: -9px;\r\n          padding-left: 6px;\r\n          color: #587092;\r\n          font-size: 12px;\r\n          font-weight: 750;\r\n          line-height: 1.2;\r\n          letter-spacing: -0.1px;\r\n          white-space: nowrap;\r\n        }\r\n\r\n        .jm-site-nav {\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: flex-end;\r\n          gap: 16px;\r\n          flex-wrap: nowrap;\r\n        }\r\n\r\n        .jm-site-nav-link {\r\n          position: relative;\r\n          display: inline-flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          padding: 8px 0;\r\n          text-align: center;\r\n          text-decoration: none;\r\n          font-size: 12px;\r\n          font-weight: 650;\r\n          line-height: 1;\r\n          color: #405066;\r\n          background: transparent;\r\n          border: 0;\r\n          box-shadow: none;\r\n          transition: color 0.15s ease, opacity 0.15s ease;\r\n          white-space: nowrap;\r\n          opacity: 0.86;\r\n        }\r\n\r\n        .jm-site-nav-link::after {\r\n          content: \"\";\r\n          position: absolute;\r\n          left: 0;\r\n          right: 0;\r\n          bottom: -5px;\r\n          height: 2px;\r\n          border-radius: 999px;\r\n          background: #1556ff;\r\n          transform: scaleX(0);\r\n          transform-origin: center;\r\n          transition: transform 0.15s ease;\r\n        }\r\n\r\n        .jm-site-nav-link:hover {\r\n          color: #1556ff;\r\n          opacity: 1;\r\n        }\r\n\r\n        .jm-site-nav-link:hover::after {\r\n          transform: scaleX(1);\r\n        }\r\n\r\n        .jm-primary-link {\r\n          color: #1556ff;\r\n          font-weight: 750;\r\n          opacity: 0.95;\r\n        }\r\n\r\n        .jm-logged-link {\r\n          color: #15396f;\r\n          font-weight: 750;\r\n          opacity: 0.95;\r\n        }\r\n\r\n        .jm-legal-link {\r\n          color: #6b7d96;\r\n          font-size: 11.5px;\r\n        }\r\n\r\n        .jm-site-nav-link.jm-primary-link,\r\n        .jm-site-nav-link.jm-logged-link.jm-primary-link,\r\n        .jm-legal-link.jm-primary-link {\r\n          color: #1556ff;\r\n          font-weight: 750;\r\n          opacity: 1;\r\n        }\r\n\r\n        .jm-user-pill {\r\n          display: inline-flex;\r\n          align-items: center;\r\n          gap: 5px;\r\n          padding: 0;\r\n          color: #587092;\r\n          text-decoration: none;\r\n          font-size: 11.5px;\r\n          font-weight: 650;\r\n          white-space: nowrap;\r\n          max-width: 155px;\r\n          overflow: hidden;\r\n          text-overflow: ellipsis;\r\n          transition: color 0.15s ease;\r\n        }\r\n\r\n        .jm-user-pill:hover {\r\n          color: #1556ff;\r\n        }\r\n\r\n        .jm-user-icon {\r\n          font-size: 12px;\r\n          line-height: 1;\r\n          flex-shrink: 0;\r\n        }\r\n\r\n        #jm-user-name {\r\n          display: inline-block;\r\n          overflow: hidden;\r\n          text-overflow: ellipsis;\r\n          white-space: nowrap;\r\n        }\r\n\r\n        .jm-logout-link {\r\n          align-items: center;\r\n          justify-content: center;\r\n          color: #7d8da3;\r\n          text-decoration: none;\r\n          font-size: 11.5px;\r\n          font-weight: 750;\r\n          white-space: nowrap;\r\n        }\r\n\r\n        .jm-logout-link:hover {\r\n          color: #1556ff;\r\n        }\r\n\r\n        @media (max-width: 980px) {\r\n          .jm-site-header-inner {\r\n            padding: 5px 16px;\r\n            min-height: 64px;\r\n            gap: 14px;\r\n          }\r\n\r\n          .jm-site-brand {\r\n            min-width: 215px;\r\n          }\r\n\r\n          .jm-site-logo {\r\n            height: 50px;\r\n          }\r\n\r\n          .jm-site-logo img {\r\n            height: 135px;\r\n            max-width: 250px;\r\n            transform: scale(1.13);\r\n          }\r\n\r\n          .jm-site-tagline {\r\n            margin-top: -8px;\r\n            padding-left: 4px;\r\n            font-size: 11.5px;\r\n          }\r\n\r\n          .jm-site-nav {\r\n            gap: 12px;\r\n          }\r\n\r\n          .jm-site-nav-link {\r\n            font-size: 11.2px;\r\n            padding: 7px 0;\r\n          }\r\n\r\n          .jm-legal-link {\r\n            font-size: 10.8px;\r\n          }\r\n\r\n          .jm-user-pill {\r\n            font-size: 11px;\r\n            max-width: 115px;\r\n          }\r\n\r\n          .jm-logout-link {\r\n            font-size: 11px;\r\n          }\r\n        }\r\n\r\n        @media (max-width: 680px) {\r\n          .jm-site-header-inner {\r\n            padding: 8px 12px 13px;\r\n            min-height: auto;\r\n            flex-direction: column;\r\n            align-items: flex-start;\r\n            gap: 0;\r\n          }\r\n\r\n          .jm-site-brand {\r\n            width: 100%;\r\n            min-width: 0;\r\n            align-items: flex-start;\r\n            padding-right: 92px;\r\n          }\r\n\r\n          .jm-site-logo {\r\n            height: 70px;\r\n            width: 100%;\r\n            justify-content: flex-start;\r\n          }\r\n\r\n          .jm-site-logo img {\r\n            height: 156px;\r\n            max-width: 292px;\r\n            transform: scale(1.18);\r\n          }\r\n\r\n          .jm-site-tagline {\r\n            margin-top: -5px;\r\n            padding-left: 3px;\r\n            margin-bottom: 13px;\r\n            font-size: 12px;\r\n            text-align: left;\r\n            white-space: normal;\r\n            max-width: 100%;\r\n            line-height: 1.25;\r\n          }\r\n\r\n          .jm-site-nav {\r\n            width: 100%;\r\n            justify-content: center;\r\n            gap: 10px 14px;\r\n            flex-wrap: wrap;\r\n            padding-top: 6px;\r\n          }\r\n\r\n          .jm-site-nav-link {\r\n            font-size: 12px;\r\n            font-weight: 650;\r\n            padding: 5px 0;\r\n          }\r\n\r\n          .jm-legal-link {\r\n            font-size: 11.5px;\r\n            width: 100%;\r\n            order: 8;\r\n            opacity: 0.74;\r\n          }\r\n\r\n          .jm-site-nav-link::after {\r\n            bottom: -3px;\r\n          }\r\n\r\n          .jm-user-pill {\r\n            position: absolute;\r\n            top: 12px;\r\n            right: 44px;\r\n            font-size: 11px;\r\n            max-width: 92px;\r\n            justify-content: flex-end;\r\n          }\r\n\r\n          .jm-logout-link {\r\n            position: absolute;\r\n            top: 12px;\r\n            right: 12px;\r\n            font-size: 11px;\r\n          }\r\n        }\r\n\r\n        @media (max-width: 420px) {\r\n          .jm-site-header-inner {\r\n            padding: 8px 10px 12px;\r\n          }\r\n\r\n          .jm-site-brand {\r\n            padding-right: 82px;\r\n          }\r\n\r\n          .jm-site-logo {\r\n            height: 64px;\r\n          }\r\n\r\n          .jm-site-logo img {\r\n            height: 138px;\r\n            max-width: 255px;\r\n            transform: scale(1.13);\r\n          }\r\n\r\n          .jm-site-tagline {\r\n            margin-top: -3px;\r\n            margin-bottom: 12px;\r\n            padding-left: 2px;\r\n            font-size: 11.2px;\r\n          }\r\n\r\n          .jm-site-nav {\r\n            gap: 9px 11px;\r\n          }\r\n\r\n          .jm-site-nav-link {\r\n            font-size: 11.4px;\r\n            padding: 4px 0;\r\n          }\r\n\r\n          .jm-user-pill {\r\n            top: 11px;\r\n            right: 42px;\r\n            font-size: 10.5px;\r\n            max-width: 78px;\r\n          }\r\n\r\n          .jm-logout-link {\r\n            top: 11px;\r\n            right: 10px;\r\n            font-size: 10.5px;\r\n          }\r\n        }\r\n        <\/style>\r\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-71c9c57 elementor-widget elementor-widget-html\" data-id=\"71c9c57\" 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<section class=\"jm-view-offer-page\">\r\n  <div class=\"jm-view-offer-shell\">\r\n\r\n    <div id=\"jm-view-loading\" class=\"jm-view-message\">\r\n      A carregar oferta...\r\n    <\/div>\r\n\r\n    <div id=\"jm-view-error\" class=\"jm-view-message error\" style=\"display:none;\"><\/div>\r\n\r\n    <article id=\"jm-view-content\" class=\"jm-view-card\" style=\"display:none;\">\r\n\r\n      <div class=\"jm-view-hero\">\r\n\r\n        <div class=\"jm-view-main-title\">\r\n          <span class=\"jm-view-badge\">Oferta publicada<\/span>\r\n          <h1 id=\"jm-oferta-funcao\">Oferta de emprego<\/h1>\r\n\r\n          <div class=\"jm-view-company\">\r\n            <div id=\"jm-company-logo-wrap\" class=\"jm-company-logo-wrap\" style=\"display:none;\">\r\n              <img decoding=\"async\" id=\"jm-company-logo\" src=\"\" alt=\"\">\r\n            <\/div>\r\n\r\n            <div>\r\n              <strong id=\"jm-oferta-empresa\">Empresa WIW<\/strong>\r\n              <span id=\"jm-oferta-localizacao\">Localiza\u00e7\u00e3o<\/span>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <aside class=\"jm-view-summary\">\r\n          <div id=\"jm-summary-vencimento\">\r\n            <strong>Vencimento m\u00ednimo<\/strong>\r\n            <span id=\"jm-oferta-vencimento\">\u2014<\/span>\r\n          <\/div>\r\n\r\n          <div id=\"jm-oferta-vencimento-pt-box\" style=\"display:none;\">\r\n            <strong>Estimativa part-time<\/strong>\r\n            <span id=\"jm-oferta-vencimento-pt\">\u2014<\/span>\r\n          <\/div>\r\n\r\n          <div id=\"jm-summary-contrato\">\r\n            <strong>Contrato<\/strong>\r\n            <span id=\"jm-oferta-contrato\">\u2014<\/span>\r\n          <\/div>\r\n\r\n          <div id=\"jm-summary-regime\">\r\n            <strong>Regime<\/strong>\r\n            <span id=\"jm-oferta-regime\">\u2014<\/span>\r\n          <\/div>\r\n\r\n          <div id=\"jm-summary-horario\">\r\n            <strong>Hor\u00e1rio<\/strong>\r\n            <span id=\"jm-oferta-horario\">\u2014<\/span>\r\n          <\/div>\r\n        <\/aside>\r\n\r\n      <\/div>\r\n\r\n      <div class=\"jm-view-grid\">\r\n\r\n        <main class=\"jm-view-body\">\r\n\r\n          <section id=\"jm-section-descricao\" class=\"jm-view-section\">\r\n            <h2>Descri\u00e7\u00e3o da fun\u00e7\u00e3o<\/h2>\r\n            <p id=\"jm-oferta-descricao\">\u2014<\/p>\r\n          <\/section>\r\n\r\n          <section id=\"jm-section-requisitos\" class=\"jm-view-section\">\r\n            <h2>Requisitos \/ experi\u00eancia<\/h2>\r\n            <p id=\"jm-oferta-requisitos\">\u2014<\/p>\r\n          <\/section>\r\n\r\n          <section id=\"jm-section-beneficios\" class=\"jm-view-section\">\r\n            <h2>Benef\u00edcios \/ condi\u00e7\u00f5es adicionais<\/h2>\r\n            <p id=\"jm-oferta-beneficios\">\u2014<\/p>\r\n          <\/section>\r\n\r\n          <section id=\"jm-section-empresa\" class=\"jm-view-section jm-view-soft-section\">\r\n            <h2>Sobre a empresa<\/h2>\r\n            <div class=\"jm-info-grid\">\r\n              <div id=\"jm-card-tempo-atividade\">\r\n                <strong>Tempo de atividade<\/strong>\r\n                <span id=\"jm-oferta-tempo-atividade\">\u2014<\/span>\r\n              <\/div>\r\n              <div id=\"jm-card-tipo-entidade\">\r\n                <strong>Tipo de entidade<\/strong>\r\n                <span id=\"jm-oferta-tipo-entidade\">\u2014<\/span>\r\n              <\/div>\r\n            <\/div>\r\n            <p id=\"jm-oferta-descricao-empresa\">Informa\u00e7\u00e3o n\u00e3o indicada.<\/p>\r\n          <\/section>\r\n\r\n          <section id=\"jm-section-horarios\" class=\"jm-view-section jm-view-soft-section\">\r\n            <h2>Hor\u00e1rios e contexto de trabalho<\/h2>\r\n            <div class=\"jm-info-grid\">\r\n              <div id=\"jm-card-tipo-horario\">\r\n                <strong>Tipo de hor\u00e1rio<\/strong>\r\n                <span id=\"jm-oferta-tipo-horario\">\u2014<\/span>\r\n              <\/div>\r\n              <div id=\"jm-card-horas-semanais\">\r\n                <strong>Horas semanais<\/strong>\r\n                <span id=\"jm-oferta-horas-semanais\">\u2014<\/span>\r\n              <\/div>\r\n              <div id=\"jm-card-horarios-rotativos\">\r\n                <strong>Hor\u00e1rios rotativos<\/strong>\r\n                <span id=\"jm-oferta-horarios-rotativos\">\u2014<\/span>\r\n              <\/div>\r\n              <div id=\"jm-card-horario-rotativo-entre\">\r\n                <strong>Entre<\/strong>\r\n                <span id=\"jm-oferta-horario-rotativo-entre\">\u2014<\/span>\r\n              <\/div>\r\n              <div id=\"jm-card-trabalho-noturno\">\r\n                <strong>Trabalho noturno<\/strong>\r\n                <span id=\"jm-oferta-trabalho-noturno\">\u2014<\/span>\r\n              <\/div>\r\n              <div id=\"jm-card-trabalho-noturno-entre\">\r\n                <strong>Horas noturnas<\/strong>\r\n                <span id=\"jm-oferta-trabalho-noturno-entre\">\u2014<\/span>\r\n              <\/div>\r\n              <div id=\"jm-card-fim-semana\">\r\n                <strong>Fim de semana<\/strong>\r\n                <span id=\"jm-oferta-fim-semana\">\u2014<\/span>\r\n              <\/div>\r\n              <div id=\"jm-card-folgas\">\r\n                <strong>Folgas<\/strong>\r\n                <span id=\"jm-oferta-folgas\">\u2014<\/span>\r\n              <\/div>\r\n            <\/div>\r\n\r\n            <p id=\"jm-oferta-horario-rotativo-descricao\" class=\"jm-extra-text\">Informa\u00e7\u00e3o n\u00e3o indicada.<\/p>\r\n          <\/section>\r\n\r\n          <section id=\"jm-section-regalias\" class=\"jm-view-section jm-view-soft-section\">\r\n            <h2>Subs\u00eddio de refei\u00e7\u00e3o e regalias<\/h2>\r\n\r\n            <div class=\"jm-info-grid\">\r\n              <div id=\"jm-card-subsidio-refeicao\">\r\n                <strong>Subs\u00eddio de refei\u00e7\u00e3o<\/strong>\r\n                <span id=\"jm-oferta-subsidio-refeicao\">\u2014<\/span>\r\n              <\/div>\r\n              <div id=\"jm-card-subsidio-refeicao-valor\">\r\n                <strong>Valor di\u00e1rio<\/strong>\r\n                <span id=\"jm-oferta-subsidio-refeicao-valor\">\u2014<\/span>\r\n              <\/div>\r\n              <div id=\"jm-card-subsidio-refeicao-forma\">\r\n                <strong>Forma de pagamento<\/strong>\r\n                <span id=\"jm-oferta-subsidio-refeicao-forma\">\u2014<\/span>\r\n              <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"jm-regalias-list-wrap\">\r\n              <strong>Outras regalias<\/strong>\r\n              <div id=\"jm-oferta-regalias-lista\" class=\"jm-regalias-lista\">\r\n                <span class=\"jm-empty-pill\">N\u00e3o indicado<\/span>\r\n              <\/div>\r\n            <\/div>\r\n\r\n            <p id=\"jm-oferta-outras-regalias\" class=\"jm-extra-text\">Informa\u00e7\u00e3o n\u00e3o indicada.<\/p>\r\n          <\/section>\r\n\r\n        <\/main>\r\n\r\n        <aside class=\"jm-view-side\">\r\n\r\n          <div id=\"jm-box-local\" class=\"jm-side-box\">\r\n            <h2>Local de trabalho<\/h2>\r\n\r\n            <div id=\"jm-side-zona\" class=\"jm-side-info\">\r\n              <strong>Zona<\/strong>\r\n              <span id=\"jm-oferta-zona\">\u2014<\/span>\r\n            <\/div>\r\n\r\n            <div id=\"jm-side-distrito\" class=\"jm-side-info\">\r\n              <strong>Distrito<\/strong>\r\n              <span id=\"jm-oferta-distrito\">\u2014<\/span>\r\n            <\/div>\r\n\r\n            <div id=\"jm-side-concelho\" class=\"jm-side-info\">\r\n              <strong>Concelho<\/strong>\r\n              <span id=\"jm-oferta-concelho\">\u2014<\/span>\r\n            <\/div>\r\n\r\n            <div id=\"jm-side-localidade\" class=\"jm-side-info\">\r\n              <strong>Localidade<\/strong>\r\n              <span id=\"jm-oferta-localidade\">\u2014<\/span>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <div class=\"jm-side-box\">\r\n            <h2>Candidatura<\/h2>\r\n            <p id=\"jm-apply-text\">\r\n              Pode avan\u00e7ar para a candidatura desta oferta atrav\u00e9s do WIW.\r\n            <\/p>\r\n\r\n            <a id=\"jm-apply-btn\" class=\"jm-apply-btn\" href=\"#\">\r\n              Quero candidatar-me\r\n            <\/a>\r\n\r\n            <a id=\"jm-company-area-btn\" class=\"jm-soft-side-btn\" href=\"\/jobmaps-area-empresa\/\" style=\"display:none;\">\r\n              Voltar \u00e0 \u00e1rea da entidade\r\n            <\/a>\r\n          <\/div>\r\n\r\n          <a id=\"jm-entity-offers-btn\" class=\"jm-soft-side-btn\" href=\"#\" style=\"display:none;\">\r\n            Ver todas as ofertas desta entidade\r\n          <\/a>\r\n\r\n          <a class=\"jm-back-map-btn\" href=\"\/jobmaps-o-mapa-do-trabalho-local\/\">\r\n            Voltar ao mapa\r\n          <\/a>\r\n\r\n        <\/aside>\r\n\r\n      <\/div>\r\n\r\n    <\/article>\r\n\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", async function () {\r\n  const loading = document.getElementById(\"jm-view-loading\");\r\n  const errorBox = document.getElementById(\"jm-view-error\");\r\n  const content = document.getElementById(\"jm-view-content\");\r\n  const applyBtn = document.getElementById(\"jm-apply-btn\");\r\n  const applyText = document.getElementById(\"jm-apply-text\");\r\n  const companyAreaBtn = document.getElementById(\"jm-company-area-btn\");\r\n  const entityOffersBtn = document.getElementById(\"jm-entity-offers-btn\");\r\n\r\n  const params = new URLSearchParams(window.location.search);\r\n  const ofertaId = params.get(\"oferta_id\") || params.get(\"oferta\");\r\n\r\n  let userType = \"visitante\";\r\n\r\n  function showError(message) {\r\n    if (loading) loading.style.display = \"none\";\r\n    if (content) content.style.display = \"none\";\r\n\r\n    if (errorBox) {\r\n      errorBox.textContent = message;\r\n      errorBox.style.display = \"block\";\r\n    }\r\n  }\r\n\r\n  function hasValue(value) {\r\n    return value !== undefined && value !== null && String(value).trim() !== \"\";\r\n  }\r\n\r\n  function isUsefulValue(value) {\r\n    if (!hasValue(value)) return false;\r\n\r\n    const normal = String(value).trim().toLowerCase();\r\n\r\n    return ![\r\n      \"\u2014\", \"-\", \"n\/a\", \"na\", \"n\u00e3o indicado\",\r\n      \"informa\u00e7\u00e3o n\u00e3o indicada.\", \"informa\u00e7\u00e3o n\u00e3o indicada\",\r\n      \"ft\"\r\n    ].includes(normal);\r\n  }\r\n\r\n  function setVisible(id, visible) {\r\n    const el = document.getElementById(id);\r\n    if (el) el.style.display = visible ? \"\" : \"none\";\r\n  }\r\n\r\n  function setOptionalCard(cardId, textId, value, formatter) {\r\n    const isUseful = isUsefulValue(value);\r\n    const el = document.getElementById(textId);\r\n\r\n    if (el && isUseful) {\r\n      el.textContent = typeof formatter === \"function\" ? formatter(value) : value;\r\n    }\r\n\r\n    setVisible(cardId, isUseful);\r\n    return isUseful;\r\n  }\r\n\r\n  function setOptionalTextSection(sectionId, textId, value) {\r\n    const useful = isUsefulValue(value);\r\n    const text = document.getElementById(textId);\r\n\r\n    if (text && useful) {\r\n      text.textContent = value;\r\n    }\r\n\r\n    setVisible(sectionId, useful);\r\n    return useful;\r\n  }\r\n\r\n  function setOptionalParagraph(id, value) {\r\n    const el = document.getElementById(id);\r\n    const useful = isUsefulValue(value);\r\n\r\n    if (el) {\r\n      el.style.display = useful ? \"\" : \"none\";\r\n      if (useful) el.textContent = value;\r\n    }\r\n\r\n    return useful;\r\n  }\r\n\r\n  function setOptionalBetween(cardId, textId, inicio, fim) {\r\n    const usefulInicio = isUsefulValue(inicio);\r\n    const usefulFim = isUsefulValue(fim);\r\n    const useful = usefulInicio || usefulFim;\r\n    const el = document.getElementById(textId);\r\n\r\n    if (el && useful) {\r\n      if (usefulInicio && usefulFim) {\r\n        el.textContent = inicio + \" \u00e0s \" + fim;\r\n      } else if (usefulInicio) {\r\n        el.textContent = \"A partir das \" + inicio;\r\n      } else {\r\n        el.textContent = \"At\u00e9 \u00e0s \" + fim;\r\n      }\r\n    }\r\n\r\n    setVisible(cardId, useful);\r\n    return useful;\r\n  }\r\n\r\n  function setText(id, value, fallback = \"\u2014\") {\r\n    const el = document.getElementById(id);\r\n    if (el) el.textContent = hasValue(value) ? value : fallback;\r\n  }\r\n\r\n  function setLongText(id, value, fallback = \"Informa\u00e7\u00e3o n\u00e3o indicada.\") {\r\n    const el = document.getElementById(id);\r\n    if (el) el.textContent = hasValue(value) ? value : fallback;\r\n  }\r\n\r\n  function setMoney(id, value, fallback = \"N\u00e3o indicado\") {\r\n    const el = document.getElementById(id);\r\n    if (!el) return;\r\n\r\n    const n = Number(value);\r\n    if (value && !isNaN(n) && n > 0) {\r\n      el.textContent = n.toLocaleString(\"pt-PT\") + \"\u20ac\";\r\n    } else {\r\n      el.textContent = fallback;\r\n    }\r\n  }\r\n\r\n  function setBetween(id, inicio, fim, fallback = \"\u2014\") {\r\n    const el = document.getElementById(id);\r\n    if (!el) return;\r\n\r\n    if (hasValue(inicio) && hasValue(fim)) {\r\n      el.textContent = inicio + \" \u00e0s \" + fim;\r\n    } else if (hasValue(inicio)) {\r\n      el.textContent = \"A partir das \" + inicio;\r\n    } else if (hasValue(fim)) {\r\n      el.textContent = \"At\u00e9 \u00e0s \" + fim;\r\n    } else {\r\n      el.textContent = fallback;\r\n    }\r\n  }\r\n\r\n  function renderRegalias(regalias) {\r\n    const wrap = document.getElementById(\"jm-oferta-regalias-lista\");\r\n    if (!wrap) return;\r\n\r\n    wrap.innerHTML = \"\";\r\n\r\n    let lista = [];\r\n\r\n    if (Array.isArray(regalias)) {\r\n      lista = regalias.filter(function(item) {\r\n        return hasValue(item);\r\n      });\r\n    } else if (hasValue(regalias)) {\r\n      lista = [regalias];\r\n    }\r\n\r\n    if (!lista.length) {\r\n      return false;\r\n    }\r\n\r\n    lista.forEach(function(item) {\r\n      const pill = document.createElement(\"span\");\r\n      pill.className = \"jm-regalia-pill\";\r\n      pill.textContent = item;\r\n      wrap.appendChild(pill);\r\n    });\r\n\r\n    return true;\r\n  }\r\n\r\n  async function getSessionType() {\r\n    try {\r\n      const response = await fetch(\"\/wp-admin\/admin-ajax.php?action=jm5_header_me&t=\" + Date.now(), {\r\n        method: \"GET\",\r\n        credentials: \"same-origin\",\r\n        cache: \"no-store\"\r\n      });\r\n\r\n      const data = await response.json();\r\n\r\n      if (!data || !data.logged_in) return \"visitante\";\r\n      if (data.user_type === \"empresa\" || data.is_empresa) return \"empresa\";\r\n      if (data.user_type === \"candidato\" || data.is_candidato) return \"candidato\";\r\n      if (data.user_type === \"recrutador\" || data.is_recrutador) return \"recrutador\";\r\n\r\n      return \"visitante\";\r\n    } catch (e) {\r\n      return \"visitante\";\r\n    }\r\n  }\r\n\r\n  function configureApplicationBox(oferta) {\r\n    const candidaturaUrl = \"\/jobmaps-candidatar-oferta\/?oferta=\" + encodeURIComponent(oferta.id);\r\n\r\n    if (entityOffersBtn && oferta.empresa_id) {\r\n      entityOffersBtn.href = \"\/jobmaps-ofertas-entidade\/?empresa_id=\" + encodeURIComponent(oferta.empresa_id);\r\n      entityOffersBtn.style.display = \"inline-flex\";\r\n    }\r\n\r\n    if (userType === \"empresa\") {\r\n      if (applyText) {\r\n        applyText.textContent = \"Est\u00e1 logado como entidade empregadora. Pode consultar a oferta, mas n\u00e3o pode candidatar-se.\";\r\n      }\r\n\r\n      if (applyBtn) {\r\n        applyBtn.style.display = \"none\";\r\n      }\r\n\r\n      if (companyAreaBtn) {\r\n        companyAreaBtn.style.display = \"inline-flex\";\r\n      }\r\n\r\n      return;\r\n    }\r\n\r\n    if (userType === \"recrutador\") {\r\n      if (applyText) {\r\n        applyText.textContent = \"Est\u00e1 logado como recrutador. Pode consultar a oferta, mas a candidatura direta \u00e9 reservada a candidatos.\";\r\n      }\r\n\r\n      if (applyBtn) {\r\n        applyBtn.style.display = \"none\";\r\n      }\r\n\r\n      return;\r\n    }\r\n\r\n    if (userType === \"candidato\") {\r\n      if (applyText) {\r\n        applyText.textContent = \"Pode avan\u00e7ar com a sua candidatura a esta oferta.\";\r\n      }\r\n\r\n      if (applyBtn) {\r\n        applyBtn.href = candidaturaUrl;\r\n        applyBtn.textContent = \"Quero candidatar-me\";\r\n        applyBtn.style.display = \"inline-flex\";\r\n      }\r\n\r\n      return;\r\n    }\r\n\r\n    if (applyText) {\r\n      applyText.textContent = \"Para se candidatar, avance para o processo de candidatura WIW.\";\r\n    }\r\n\r\n    if (applyBtn) {\r\n      applyBtn.href = candidaturaUrl;\r\n      applyBtn.textContent = \"Quero candidatar-me\";\r\n      applyBtn.style.display = \"inline-flex\";\r\n    }\r\n  }\r\n\r\n  if (!ofertaId) {\r\n    showError(\"Oferta n\u00e3o indicada.\");\r\n    return;\r\n  }\r\n\r\n  userType = await getSessionType();\r\n\r\n  try {\r\n    const response = await fetch(\"\/wp-admin\/admin-ajax.php?action=jm4_ver_oferta&oferta_id=\" + encodeURIComponent(ofertaId) + \"&t=\" + Date.now(), {\r\n      method: \"GET\",\r\n      credentials: \"same-origin\",\r\n      cache: \"no-store\"\r\n    });\r\n\r\n    const data = await response.json();\r\n\r\n    if (!data || !data.success || !data.oferta) {\r\n      showError(data && data.message ? data.message : \"N\u00e3o foi poss\u00edvel carregar esta oferta.\");\r\n      return;\r\n    }\r\n\r\n    const oferta = data.oferta;\r\n\r\n    document.title = (oferta.funcao || \"Oferta\") + \" \u2014 WIW\";\r\n\r\n    setText(\"jm-oferta-funcao\", oferta.funcao || oferta.titulo, \"Oferta de emprego\");\r\n    setText(\"jm-oferta-empresa\", oferta.empresa, \"Empresa WIW\");\r\n    setText(\"jm-oferta-localizacao\", oferta.localizacao, \"Localiza\u00e7\u00e3o n\u00e3o indicada\");\r\n\r\n    setMoney(\"jm-oferta-vencimento\", oferta.vencimento_minimo);\r\n\r\n    const vencPtBox = document.getElementById(\"jm-oferta-vencimento-pt-box\");\r\n    if (oferta.vencimento_proporcional_estimado && Number(oferta.vencimento_proporcional_estimado) > 0) {\r\n      if (vencPtBox) vencPtBox.style.display = \"block\";\r\n      setMoney(\"jm-oferta-vencimento-pt\", oferta.vencimento_proporcional_estimado);\r\n    }\r\n\r\n    setText(\"jm-oferta-contrato\", oferta.tipo_contrato);\r\n    setText(\"jm-oferta-regime\", oferta.regime_trabalho);\r\n    setText(\"jm-oferta-horario\", oferta.horario, \"N\u00e3o indicado\");\r\n\r\n    \/\/ S\u00f3 mostramos o que a entidade realmente preencheu.\r\n    setOptionalTextSection(\"jm-section-descricao\", \"jm-oferta-descricao\", oferta.descricao);\r\n    setOptionalTextSection(\"jm-section-requisitos\", \"jm-oferta-requisitos\", oferta.requisitos);\r\n    setOptionalTextSection(\"jm-section-beneficios\", \"jm-oferta-beneficios\", oferta.beneficios);\r\n\r\n    const hasZona = setOptionalCard(\"jm-side-zona\", \"jm-oferta-zona\", oferta.zona_portugal);\r\n    const hasDistrito = setOptionalCard(\"jm-side-distrito\", \"jm-oferta-distrito\", oferta.distrito);\r\n    const hasConcelho = setOptionalCard(\"jm-side-concelho\", \"jm-oferta-concelho\", oferta.concelho);\r\n    const hasLocalidade = setOptionalCard(\"jm-side-localidade\", \"jm-oferta-localidade\", oferta.localidade);\r\n    setVisible(\"jm-box-local\", hasZona || hasDistrito || hasConcelho || hasLocalidade);\r\n\r\n    const hasTempo = setOptionalCard(\"jm-card-tempo-atividade\", \"jm-oferta-tempo-atividade\", oferta.tempo_atividade_empresa);\r\n    const hasTipoEntidade = setOptionalCard(\"jm-card-tipo-entidade\", \"jm-oferta-tipo-entidade\", oferta.tipo_entidade_oferta);\r\n    const hasDescricaoEmpresa = setOptionalParagraph(\"jm-oferta-descricao-empresa\", oferta.descricao_empresa);\r\n    setVisible(\"jm-section-empresa\", hasTempo || hasTipoEntidade || hasDescricaoEmpresa);\r\n\r\n    const hasTipoHorario = setOptionalCard(\"jm-card-tipo-horario\", \"jm-oferta-tipo-horario\", oferta.tipo_horario);\r\n    const hasHoras = setOptionalCard(\r\n      \"jm-card-horas-semanais\",\r\n      \"jm-oferta-horas-semanais\",\r\n      oferta.horas_semanais,\r\n      function(value) { return value + \" horas\"; }\r\n    );\r\n    const hasRotativo = setOptionalCard(\"jm-card-horarios-rotativos\", \"jm-oferta-horarios-rotativos\", oferta.horarios_rotativos);\r\n    const hasRotativoEntre = setOptionalBetween(\r\n      \"jm-card-horario-rotativo-entre\",\r\n      \"jm-oferta-horario-rotativo-entre\",\r\n      oferta.horario_rotativo_inicio,\r\n      oferta.horario_rotativo_fim\r\n    );\r\n    const hasRotativoDescricao = setOptionalParagraph(\"jm-oferta-horario-rotativo-descricao\", oferta.horario_rotativo_descricao);\r\n    const hasNoturno = setOptionalCard(\"jm-card-trabalho-noturno\", \"jm-oferta-trabalho-noturno\", oferta.trabalho_noturno);\r\n    const hasNoturnoEntre = setOptionalBetween(\r\n      \"jm-card-trabalho-noturno-entre\",\r\n      \"jm-oferta-trabalho-noturno-entre\",\r\n      oferta.trabalho_noturno_inicio,\r\n      oferta.trabalho_noturno_fim\r\n    );\r\n    const hasFimSemana = setOptionalCard(\"jm-card-fim-semana\", \"jm-oferta-fim-semana\", oferta.trabalho_fim_semana);\r\n    const hasFolgas = setOptionalCard(\"jm-card-folgas\", \"jm-oferta-folgas\", oferta.folgas);\r\n    setVisible(\r\n      \"jm-section-horarios\",\r\n      hasTipoHorario || hasHoras || hasRotativo || hasRotativoEntre || hasRotativoDescricao ||\r\n      hasNoturno || hasNoturnoEntre || hasFimSemana || hasFolgas\r\n    );\r\n\r\n    const hasSubsidio = setOptionalCard(\"jm-card-subsidio-refeicao\", \"jm-oferta-subsidio-refeicao\", oferta.subsidio_refeicao);\r\n    const hasSubsidioValor = setOptionalCard(\r\n      \"jm-card-subsidio-refeicao-valor\",\r\n      \"jm-oferta-subsidio-refeicao-valor\",\r\n      oferta.subsidio_refeicao_valor,\r\n      function(value) { return value + \"\u20ac \/ dia\"; }\r\n    );\r\n    const hasSubsidioForma = setOptionalCard(\"jm-card-subsidio-refeicao-forma\", \"jm-oferta-subsidio-refeicao-forma\", oferta.subsidio_refeicao_forma);\r\n    const hasRegalias = renderRegalias(oferta.regalias);\r\n    const regaliasWrap = document.querySelector(\".jm-regalias-list-wrap\");\r\n    if (regaliasWrap) regaliasWrap.style.display = hasRegalias ? \"\" : \"none\";\r\n    const hasOutrasRegalias = setOptionalParagraph(\"jm-oferta-outras-regalias\", oferta.outras_regalias);\r\n    setVisible(\"jm-section-regalias\", hasSubsidio || hasSubsidioValor || hasSubsidioForma || hasRegalias || hasOutrasRegalias);\r\n\r\n    \/\/ Evita valores de teste como \u201cft\u201d no resumo do topo.\r\n    setVisible(\"jm-summary-contrato\", isUsefulValue(oferta.tipo_contrato));\r\n    setVisible(\"jm-summary-regime\", isUsefulValue(oferta.regime_trabalho));\r\n    setVisible(\"jm-summary-horario\", isUsefulValue(oferta.horario));\r\n\r\n    const logoWrap = document.getElementById(\"jm-company-logo-wrap\");\r\n    const logo = document.getElementById(\"jm-company-logo\");\r\n\r\n    if (oferta.logo_empresa && logo && logoWrap) {\r\n      logo.src = oferta.logo_empresa;\r\n      logo.alt = oferta.empresa || \"Empresa WIW\";\r\n      logoWrap.style.display = \"flex\";\r\n    }\r\n\r\n    configureApplicationBox(oferta);\r\n\r\n    if (loading) loading.style.display = \"none\";\r\n    if (content) content.style.display = \"block\";\r\n\r\n  } catch (error) {\r\n    showError(\"Erro ao carregar a oferta. Tente novamente.\");\r\n  }\r\n});\r\n<\/script>\r\n\r\n<style>\r\n.jm-view-offer-page {\r\n  min-height: calc(100vh - 120px);\r\n  padding: 46px 20px;\r\n  background:\r\n    radial-gradient(circle at top left, rgba(21,86,255,0.10), transparent 34%),\r\n    linear-gradient(180deg, #f5f9ff 0%, #eef5ff 100%);\r\n  box-sizing: border-box;\r\n}\r\n\r\n.jm-view-offer-page * {\r\n  box-sizing: border-box;\r\n}\r\n\r\n.jm-view-offer-shell {\r\n  width: 100%;\r\n  max-width: 1120px;\r\n  margin: 0 auto;\r\n}\r\n\r\n.jm-view-card {\r\n  padding: 34px;\r\n  border-radius: 34px;\r\n  background: #ffffff;\r\n  box-shadow: 0 24px 70px rgba(20, 80, 170, 0.13);\r\n  box-sizing: border-box;\r\n}\r\n\r\n.jm-view-hero {\r\n  display: grid;\r\n  grid-template-columns: minmax(0, 1fr) 330px;\r\n  gap: 28px;\r\n  align-items: start;\r\n  padding-bottom: 28px;\r\n  border-bottom: 1px solid #e1ebf8;\r\n}\r\n\r\n.jm-view-badge {\r\n  display: inline-flex;\r\n  margin-bottom: 14px;\r\n  padding: 8px 14px;\r\n  border-radius: 999px;\r\n  background: rgba(21,86,255,0.08);\r\n  color: #1556ff;\r\n  font-size: 13px;\r\n  font-weight: 850;\r\n}\r\n\r\n.jm-view-main-title h1 {\r\n  margin: 0 0 18px;\r\n  color: #15396f;\r\n  font-size: 42px;\r\n  line-height: 1.08;\r\n  font-weight: 950;\r\n  letter-spacing: -0.7px;\r\n}\r\n\r\n.jm-view-company {\r\n  display: flex;\r\n  align-items: center;\r\n  gap: 14px;\r\n}\r\n\r\n.jm-company-logo-wrap {\r\n  width: 54px;\r\n  height: 54px;\r\n  border-radius: 16px;\r\n  background: #f3f7ff;\r\n  align-items: center;\r\n  justify-content: center;\r\n  overflow: hidden;\r\n  border: 1px solid #d9e6f8;\r\n}\r\n\r\n.jm-company-logo-wrap img {\r\n  max-width: 100%;\r\n  max-height: 100%;\r\n  object-fit: contain;\r\n}\r\n\r\n.jm-view-company strong {\r\n  display: block;\r\n  color: #15396f;\r\n  font-size: 17px;\r\n  font-weight: 900;\r\n}\r\n\r\n.jm-view-company span {\r\n  display: block;\r\n  margin-top: 4px;\r\n  color: #587092;\r\n  font-size: 14px;\r\n}\r\n\r\n.jm-view-summary {\r\n  display: grid;\r\n  gap: 12px;\r\n}\r\n\r\n.jm-view-summary div,\r\n.jm-side-info {\r\n  padding: 15px;\r\n  border: 1px solid #d9e6f8;\r\n  border-radius: 18px;\r\n  background: #f8fbff;\r\n}\r\n\r\n.jm-view-summary strong,\r\n.jm-side-info strong {\r\n  display: block;\r\n  margin-bottom: 7px;\r\n  color: #15396f;\r\n  font-size: 13px;\r\n  font-weight: 900;\r\n}\r\n\r\n.jm-view-summary span,\r\n.jm-side-info span {\r\n  color: #39577f;\r\n  font-size: 15px;\r\n}\r\n\r\n.jm-view-grid {\r\n  display: grid;\r\n  grid-template-columns: minmax(0, 1fr) 330px;\r\n  gap: 28px;\r\n  margin-top: 30px;\r\n}\r\n\r\n.jm-view-section {\r\n  margin-bottom: 28px;\r\n}\r\n\r\n.jm-view-soft-section {\r\n  padding: 24px;\r\n  border: 1px solid #d9e6f8;\r\n  border-radius: 24px;\r\n  background: #f8fbff;\r\n}\r\n\r\n.jm-view-section h2,\r\n.jm-side-box h2 {\r\n  margin: 0 0 12px;\r\n  color: #15396f;\r\n  font-size: 23px;\r\n  font-weight: 950;\r\n  letter-spacing: -0.3px;\r\n}\r\n\r\n.jm-view-section p,\r\n.jm-side-box p {\r\n  margin: 0;\r\n  color: #39577f;\r\n  font-size: 16px;\r\n  line-height: 1.65;\r\n  white-space: pre-line;\r\n}\r\n\r\n.jm-info-grid {\r\n  display: grid;\r\n  grid-template-columns: 1fr 1fr;\r\n  gap: 12px;\r\n  margin-bottom: 18px;\r\n}\r\n\r\n.jm-info-grid div {\r\n  padding: 14px;\r\n  border-radius: 16px;\r\n  background: #ffffff;\r\n  border: 1px solid #e1ebf8;\r\n}\r\n\r\n.jm-info-grid strong,\r\n.jm-regalias-list-wrap strong {\r\n  display: block;\r\n  margin-bottom: 7px;\r\n  color: #15396f;\r\n  font-size: 13px;\r\n  font-weight: 900;\r\n}\r\n\r\n.jm-info-grid span {\r\n  color: #39577f;\r\n  font-size: 15px;\r\n  line-height: 1.4;\r\n}\r\n\r\n.jm-extra-text {\r\n  margin-top: 14px !important;\r\n  padding-top: 14px;\r\n  border-top: 1px solid #e1ebf8;\r\n}\r\n\r\n.jm-regalias-list-wrap {\r\n  margin-top: 18px;\r\n}\r\n\r\n.jm-regalias-lista {\r\n  display: flex;\r\n  flex-wrap: wrap;\r\n  gap: 9px;\r\n  margin: 8px 0 16px;\r\n}\r\n\r\n.jm-regalia-pill,\r\n.jm-empty-pill {\r\n  display: inline-flex;\r\n  padding: 8px 12px;\r\n  border-radius: 999px;\r\n  font-size: 13px;\r\n  font-weight: 800;\r\n}\r\n\r\n.jm-regalia-pill {\r\n  background: rgba(21,86,255,0.08);\r\n  color: #1556ff;\r\n  border: 1px solid rgba(21,86,255,0.16);\r\n}\r\n\r\n.jm-empty-pill {\r\n  background: #ffffff;\r\n  color: #667b96;\r\n  border: 1px solid #e1ebf8;\r\n}\r\n\r\n.jm-view-side {\r\n  display: grid;\r\n  gap: 18px;\r\n  align-content: start;\r\n}\r\n\r\n.jm-side-box {\r\n  padding: 22px;\r\n  border-radius: 24px;\r\n  background: #f8fbff;\r\n  border: 1px solid #d9e6f8;\r\n}\r\n\r\n.jm-side-box .jm-side-info {\r\n  margin-top: 10px;\r\n  background: #ffffff;\r\n}\r\n\r\n.jm-apply-btn,\r\n.jm-back-map-btn,\r\n.jm-soft-side-btn {\r\n  display: inline-flex;\r\n  width: 100%;\r\n  align-items: center;\r\n  justify-content: center;\r\n  padding: 14px 18px;\r\n  border-radius: 999px;\r\n  text-decoration: none;\r\n  font-size: 14px;\r\n  font-weight: 900;\r\n  box-sizing: border-box;\r\n  text-align: center;\r\n}\r\n\r\n.jm-apply-btn {\r\n  margin-top: 16px;\r\n  background: linear-gradient(135deg, #1556ff, #159dff);\r\n  color: #ffffff;\r\n  box-shadow: 0 14px 30px rgba(24,95,255,0.24);\r\n}\r\n\r\n.jm-back-map-btn,\r\n.jm-soft-side-btn {\r\n  background: #eef5ff;\r\n  color: #1556ff;\r\n}\r\n\r\n.jm-soft-side-btn {\r\n  margin-top: 12px;\r\n}\r\n\r\n.jm-view-message {\r\n  max-width: 700px;\r\n  margin: 0 auto;\r\n  padding: 16px 18px;\r\n  border-radius: 18px;\r\n  background: rgba(21,86,255,0.08);\r\n  color: #15396f;\r\n  font-size: 15px;\r\n  font-weight: 750;\r\n}\r\n\r\n.jm-view-message.error {\r\n  background: rgba(220,40,40,0.10);\r\n  color: #a12626;\r\n}\r\n\r\n.jm-view-section[style*=\"display: none\"],\r\n.jm-side-box[style*=\"display: none\"],\r\n.jm-side-info[style*=\"display: none\"],\r\n.jm-view-summary > div[style*=\"display: none\"],\r\n.jm-info-grid > div[style*=\"display: none\"] {\r\n  display: none !important;\r\n}\r\n\r\n@media (max-width: 900px) {\r\n  .jm-view-hero,\r\n  .jm-view-grid {\r\n    grid-template-columns: 1fr;\r\n  }\r\n}\r\n\r\n@media (max-width: 760px) {\r\n  .jm-info-grid {\r\n    grid-template-columns: 1fr;\r\n  }\r\n}\r\n\r\n@media (max-width: 560px) {\r\n  .jm-view-offer-page {\r\n    padding: 30px 14px;\r\n  }\r\n\r\n  .jm-view-card {\r\n    padding: 24px 20px;\r\n    border-radius: 24px;\r\n  }\r\n\r\n  .jm-view-main-title h1 {\r\n    font-size: 31px;\r\n  }\r\n\r\n  .jm-view-section p,\r\n  .jm-side-box p {\r\n    font-size: 15px;\r\n  }\r\n\r\n  .jm-view-soft-section {\r\n    padding: 18px;\r\n  }\r\n}\r\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>A carregar oferta&#8230; Oferta publicada Oferta de emprego Empresa WIW Localiza\u00e7\u00e3o Vencimento m\u00ednimo \u2014 Estimativa part-time \u2014 Contrato \u2014 Regime \u2014 Hor\u00e1rio \u2014 Descri\u00e7\u00e3o da fun\u00e7\u00e3o \u2014 Requisitos \/ experi\u00eancia \u2014 Benef\u00edcios \/ condi\u00e7\u00f5es adicionais \u2014 Sobre a empresa Tempo de atividade \u2014 Tipo de entidade \u2014 Informa\u00e7\u00e3o n\u00e3o indicada. Hor\u00e1rios e contexto de trabalho [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-6835","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>WIW - Ver ofertas - 3 Solutions | WE SPEAK RETAIL - Consultoria e Forma\u00e7\u00e3o retalho<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/3solutions.pt\/en\/jobmaps-ver-oferta\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"WIW - Ver ofertas - 3 Solutions | WE SPEAK RETAIL - Consultoria e Forma\u00e7\u00e3o retalho\" \/>\n<meta property=\"og:description\" content=\"A carregar oferta&#8230; Oferta publicada Oferta de emprego Empresa WIW Localiza\u00e7\u00e3o Vencimento m\u00ednimo \u2014 Estimativa part-time \u2014 Contrato \u2014 Regime \u2014 Hor\u00e1rio \u2014 Descri\u00e7\u00e3o da fun\u00e7\u00e3o \u2014 Requisitos \/ experi\u00eancia \u2014 Benef\u00edcios \/ condi\u00e7\u00f5es adicionais \u2014 Sobre a empresa Tempo de atividade \u2014 Tipo de entidade \u2014 Informa\u00e7\u00e3o n\u00e3o indicada. Hor\u00e1rios e contexto de trabalho [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/3solutions.pt\/en\/jobmaps-ver-oferta\/\" \/>\n<meta property=\"og:site_name\" content=\"3 Solutions | WE SPEAK RETAIL - Consultoria e Forma\u00e7\u00e3o retalho\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/share\/17VAXrDnwy\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-21T21:21:03+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/3solutions.pt\\\/jobmaps-ver-oferta\\\/\",\"url\":\"https:\\\/\\\/3solutions.pt\\\/jobmaps-ver-oferta\\\/\",\"name\":\"WIW - Ver ofertas - 3 Solutions | WE SPEAK RETAIL - Consultoria e Forma\u00e7\u00e3o retalho\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/3solutions.pt\\\/#website\"},\"datePublished\":\"2026-06-16T11:26:16+00:00\",\"dateModified\":\"2026-07-21T21:21:03+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/3solutions.pt\\\/jobmaps-ver-oferta\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/3solutions.pt\\\/jobmaps-ver-oferta\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/3solutions.pt\\\/jobmaps-ver-oferta\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\\\/\\\/3solutions.pt\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WIW &#8211; Ver ofertas\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/3solutions.pt\\\/#website\",\"url\":\"https:\\\/\\\/3solutions.pt\\\/\",\"name\":\"3Solutions Consultoria em Marketing e Gest\u00e3o\",\"description\":\"Consultoria e Marketing Digital\",\"publisher\":{\"@id\":\"https:\\\/\\\/3solutions.pt\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/3solutions.pt\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/3solutions.pt\\\/#organization\",\"name\":\"3Solutions Consultoria em Marketing e Gest\u00e3o\",\"url\":\"https:\\\/\\\/3solutions.pt\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/3solutions.pt\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/3solutions.pt\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/cropped-Prancheta-1-copia-scaled-1.png\",\"contentUrl\":\"https:\\\/\\\/3solutions.pt\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/cropped-Prancheta-1-copia-scaled-1.png\",\"width\":1505,\"height\":785,\"caption\":\"3Solutions Consultoria em Marketing e Gest\u00e3o\"},\"image\":{\"@id\":\"https:\\\/\\\/3solutions.pt\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/share\\\/17VAXrDnwy\\\/\",\"https:\\\/\\\/www.instagram.com\\\/wespeakretail?igsh=d2Y0a2RzY29nN2Fv\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"WIW - Ver ofertas - 3 Solutions | WE SPEAK RETAIL - Consultoria e Forma\u00e7\u00e3o retalho","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/3solutions.pt\/en\/jobmaps-ver-oferta\/","og_locale":"en_GB","og_type":"article","og_title":"WIW - Ver ofertas - 3 Solutions | WE SPEAK RETAIL - Consultoria e Forma\u00e7\u00e3o retalho","og_description":"A carregar oferta&#8230; Oferta publicada Oferta de emprego Empresa WIW Localiza\u00e7\u00e3o Vencimento m\u00ednimo \u2014 Estimativa part-time \u2014 Contrato \u2014 Regime \u2014 Hor\u00e1rio \u2014 Descri\u00e7\u00e3o da fun\u00e7\u00e3o \u2014 Requisitos \/ experi\u00eancia \u2014 Benef\u00edcios \/ condi\u00e7\u00f5es adicionais \u2014 Sobre a empresa Tempo de atividade \u2014 Tipo de entidade \u2014 Informa\u00e7\u00e3o n\u00e3o indicada. Hor\u00e1rios e contexto de trabalho [&hellip;]","og_url":"https:\/\/3solutions.pt\/en\/jobmaps-ver-oferta\/","og_site_name":"3 Solutions | WE SPEAK RETAIL - Consultoria e Forma\u00e7\u00e3o retalho","article_publisher":"https:\/\/www.facebook.com\/share\/17VAXrDnwy\/","article_modified_time":"2026-07-21T21:21:03+00:00","twitter_card":"summary_large_image","twitter_misc":{"Estimated reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/3solutions.pt\/jobmaps-ver-oferta\/","url":"https:\/\/3solutions.pt\/jobmaps-ver-oferta\/","name":"WIW - Ver ofertas - 3 Solutions | WE SPEAK RETAIL - Consultoria e Forma\u00e7\u00e3o retalho","isPartOf":{"@id":"https:\/\/3solutions.pt\/#website"},"datePublished":"2026-06-16T11:26:16+00:00","dateModified":"2026-07-21T21:21:03+00:00","breadcrumb":{"@id":"https:\/\/3solutions.pt\/jobmaps-ver-oferta\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/3solutions.pt\/jobmaps-ver-oferta\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/3solutions.pt\/jobmaps-ver-oferta\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/3solutions.pt\/"},{"@type":"ListItem","position":2,"name":"WIW &#8211; Ver ofertas"}]},{"@type":"WebSite","@id":"https:\/\/3solutions.pt\/#website","url":"https:\/\/3solutions.pt\/","name":"3Solutions Consultoria em Marketing e Gest\u00e3o","description":"Consultoria e Marketing Digital","publisher":{"@id":"https:\/\/3solutions.pt\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/3solutions.pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/3solutions.pt\/#organization","name":"3Solutions Consultoria em Marketing e Gest\u00e3o","url":"https:\/\/3solutions.pt\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/3solutions.pt\/#\/schema\/logo\/image\/","url":"https:\/\/3solutions.pt\/wp-content\/uploads\/2026\/05\/cropped-Prancheta-1-copia-scaled-1.png","contentUrl":"https:\/\/3solutions.pt\/wp-content\/uploads\/2026\/05\/cropped-Prancheta-1-copia-scaled-1.png","width":1505,"height":785,"caption":"3Solutions Consultoria em Marketing e Gest\u00e3o"},"image":{"@id":"https:\/\/3solutions.pt\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/share\/17VAXrDnwy\/","https:\/\/www.instagram.com\/wespeakretail?igsh=d2Y0a2RzY29nN2Fv"]}]}},"_links":{"self":[{"href":"https:\/\/3solutions.pt\/en\/wp-json\/wp\/v2\/pages\/6835","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/3solutions.pt\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/3solutions.pt\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/3solutions.pt\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/3solutions.pt\/en\/wp-json\/wp\/v2\/comments?post=6835"}],"version-history":[{"count":46,"href":"https:\/\/3solutions.pt\/en\/wp-json\/wp\/v2\/pages\/6835\/revisions"}],"predecessor-version":[{"id":8105,"href":"https:\/\/3solutions.pt\/en\/wp-json\/wp\/v2\/pages\/6835\/revisions\/8105"}],"wp:attachment":[{"href":"https:\/\/3solutions.pt\/en\/wp-json\/wp\/v2\/media?parent=6835"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}