{"id":2608,"date":"2026-06-16T13:15:54","date_gmt":"2026-06-16T13:15:54","guid":{"rendered":"https:\/\/app.digitalfreelancer.org\/?page_id=2608"},"modified":"2026-06-22T18:09:37","modified_gmt":"2026-06-22T18:09:37","slug":"dashboard-viagens","status":"publish","type":"page","link":"https:\/\/app.digitalfreelancer.org\/index.php\/dashboard-viagens\/","title":{"rendered":"Dashboard Viagens+"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2608\" class=\"elementor elementor-2608\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f9bfd1b e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-parent\" data-id=\"f9bfd1b\" 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-6dc36e2 elementor-widget elementor-widget-shortcode\" data-id=\"6dc36e2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">        <div id=\"trp-1-3MJ7jO\" class=\"travel-wrap\">\n                    <style>\n        #trp-1-3MJ7jO {\n            --tp-bg: #f6f9fc;\n            --tp-card-bg: #ffffff;\n            --tp-text: #111111;\n            --tp-muted: #555555;\n            --tp-border: #e6eaf0;\n            --tp-primary: #3b82f6;\n            --tp-success: #22c55e;\n            --tp-warning: #f97316;\n            --tp-danger: #ef4444;\n            all: initial;\n            * { box-sizing: border-box; }\n            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n            color: var(--tp-text);\n            background: var(--tp-bg);\n            display: block;\n            padding: 24px;\n            border-radius: 20px;\n            box-shadow: 0 10px 30px rgba(0,0,0,0.08);\n            animation: tpFadeIn 0.5s ease-in-out;\n            max-width: 1280px;\n            margin: 0 auto;\n        }\n\n        #trp-1-3MJ7jO button, \n        #trp-1-3MJ7jO input,\n        #trp-1-3MJ7jO select, \n        #trp-1-3MJ7jO textarea {\n            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n            font-size: 14px;\n            color: var(--tp-text);\n            outline: none;\n        }\n\n        @keyframes tpFadeIn {\n            from { opacity: 0; transform: translateY(10px); }\n            to { opacity: 1; transform: translateY(0); }\n        }\n\n        \/* HEADER *\/\n        #trp-1-3MJ7jO .travel-header {\n            display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; flex-wrap: wrap; gap: 12px;\n        }\n        #trp-1-3MJ7jO .travel-header h2 { margin: 0; color: #1e3a8a; font-size: 26px; }\n        #trp-1-3MJ7jO .travel-header p { color: var(--tp-muted); margin: 4px 0 0 0; font-size: 14px; }\n\n        \/* GRID *\/\n        #trp-1-3MJ7jO .travel-grid {\n            display: grid; grid-template-columns: 1fr 2fr 1fr; gap: 20px; margin-bottom: 20px;\n        }\n        #trp-1-3MJ7jO .travel-bottom {\n            display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 20px;\n        }\n\n        \/* CARD *\/\n        #trp-1-3MJ7jO .travel-card {\n            background: var(--tp-card-bg); border-radius: 16px; padding: 20px;\n            border: 1px solid var(--tp-border); box-shadow: 0 4px 12px rgba(0,0,0,0.04);\n            transition: all 0.25s ease; position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between;\n        }\n        #trp-1-3MJ7jO .travel-card:hover {\n            transform: translateY(-3px); box-shadow: 0 8px 20px rgba(0,0,0,0.08);\n        }\n        #trp-1-3MJ7jO .travel-card h3 { margin-top: 0; color: #111; font-size: 16px; display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }\n\n        \/* INPUTS & FORMS *\/\n        #trp-1-3MJ7jO .tp-field { margin-bottom: 10px; }\n        #trp-1-3MJ7jO .tp-field label { display: block; font-size: 12px; color: var(--tp-muted); margin-bottom: 4px; font-weight: 600; }\n        #trp-1-3MJ7jO input, #trp-1-3MJ7jO select {\n            width: 100%; padding: 10px 12px; border-radius: 10px; border: 1px solid #ddd; transition: 0.2s; background: #fff;\n        }\n        #trp-1-3MJ7jO input:focus, #trp-1-3MJ7jO select:focus {\n            border-color: var(--tp-primary); box-shadow: 0 0 0 3px rgba(59,130,246,0.15);\n        }\n\n        \/* BUTTONS *\/\n        #trp-1-3MJ7jO .tp-btn {\n            width: 100%; margin-top: 6px; padding: 11px; border: none; border-radius: 10px;\n            background: linear-gradient(135deg, #3b82f6, #22c55e); color: white; font-weight: bold;\n            cursor: pointer; transition: 0.3s; text-align: center;\n        }\n        #trp-1-3MJ7jO .tp-btn:hover {\n            filter: brightness(1.05); transform: translateY(-1px); box-shadow: 0 6px 15px rgba(59,130,246,0.25);\n        }\n        #trp-1-3MJ7jO .tp-btn.danger { background: var(--tp-danger); }\n        #trp-1-3MJ7jO .tp-btn.outline { background: transparent; border: 1px solid var(--tp-border); color: var(--tp-text); }\n        #trp-1-3MJ7jO .tp-btn.outline:hover { background: #f8fafc; }\n        #trp-1-3MJ7jO .tp-btn.small { padding: 5px 10px; font-size: 12px; width: auto; }\n\n        \/* TRIPS LIST *\/\n        #trp-1-3MJ7jO .trip-list-container { max-height: 280px; overflow-y: auto; padding-right: 4px; }\n        #trp-1-3MJ7jO .trip-item {\n            padding: 12px; border-bottom: 1px solid #f1f5f9; transition: 0.2s; border-radius: 10px; margin-bottom: 6px; background: #fafbfc; display: flex; justify-content: space-between; align-items: center;\n        }\n        #trp-1-3MJ7jO .trip-item:hover { background: #f1f5f9; }\n        #trp-1-3MJ7jO .trip-info strong { display: block; font-size: 15px; color: #1e293b; }\n        #trp-1-3MJ7jO .trip-info small { color: var(--tp-muted); font-size: 12px; }\n        #trp-1-3MJ7jO .trip-tags { display: flex; gap: 6px; margin-top: 6px; flex-wrap: wrap; }\n        #trp-1-3MJ7jO .tag {\n            font-size: 11px; padding: 3px 8px; border-radius: 20px; color: white; font-weight: 600;\n        }\n        #trp-1-3MJ7jO .tag.blue { background: var(--tp-primary); }\n        #trp-1-3MJ7jO .tag.green { background: var(--tp-success); }\n        #trp-1-3MJ7jO .tag.orange { background: var(--tp-warning); }\n\n        \/* STATS *\/\n        #trp-1-3MJ7jO .stat {\n            padding: 12px 14px; border-radius: 12px; margin-bottom: 10px; color: white; transition: 0.2s;\n            display: flex; justify-content: space-between; align-items: center;\n        }\n        #trp-1-3MJ7jO .stat:hover { transform: translateX(3px); }\n        #trp-1-3MJ7jO .stat span { font-size: 12.5px; opacity: 0.9; }\n        #trp-1-3MJ7jO .stat strong { font-size: 18px; }\n        #trp-1-3MJ7jO .stat.blue { background: var(--tp-primary); }\n        #trp-1-3MJ7jO .stat.green { background: var(--tp-success); }\n        #trp-1-3MJ7jO .stat.orange { background: var(--tp-warning); }\n\n        \/* BARS \/ EXPENSES *\/\n        #trp-1-3MJ7jO .bar-row { margin-bottom: 10px; }\n        #trp-1-3MJ7jO .bar-label { display: flex; justify-content: space-between; font-size: 12px; margin-bottom: 3px; font-weight: 600; }\n        #trp-1-3MJ7jO .bar {\n            padding: 8px 12px; border-radius: 8px; color: white; font-size: 12px; transition: 0.2s; display: flex; justify-content: space-between;\n        }\n        #trp-1-3MJ7jO .bar:hover { filter: brightness(1.05); }\n        #trp-1-3MJ7jO .bar.blue { background: var(--tp-primary); }\n        #trp-1-3MJ7jO .bar.green { background: var(--tp-success); }\n        #trp-1-3MJ7jO .bar.orange { background: var(--tp-warning); }\n\n        \/* CHECKLIST *\/\n        #trp-1-3MJ7jO .checklist-items { max-height: 140px; overflow-y: auto; }\n        #trp-1-3MJ7jO .check-row { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; font-size: 13.5px; cursor: pointer; }\n        #trp-1-3MJ7jO .check-row input { width: auto; margin: 0; cursor: pointer; }\n\n        \/* MAP BOX *\/\n        #trp-1-3MJ7jO .map-box {\n            height: 130px; background: linear-gradient(135deg, #e0e7ff, #d1fae5); border-radius: 12px;\n            display: flex; align-items: center; justify-content: center; font-weight: bold; color: var(--tp-muted); text-align: center; padding: 10px; font-size: 13px;\n        }\n\n        \/* EMPTY STATE *\/\n        #trp-1-3MJ7jO .tp-empty { text-align: center; padding: 30px; color: var(--tp-muted); font-size: 13px; }\n\n        \/* RESPONSIVE *\/\n        @media(max-width: 950px){\n            #trp-1-3MJ7jO .travel-grid, \n            #trp-1-3MJ7jO .travel-bottom {\n                grid-template-columns: 1fr;\n            }\n        }\n        <\/style>\n                            <div class=\"travel-wrap-inner\">\n            <!-- HEADER -->\n            <div class=\"travel-header\">\n                <div>\n                    <h2>\u2708\ufe0f Travel Dashboard Pro<\/h2>\n                    <p>Gest\u00e3o completa de viagens, itiner\u00e1rios, or\u00e7amento e checklist<\/p>\n                <\/div>\n                <button class=\"tp-btn small outline\" data-tp-export>\ud83d\udce5 Exportar Dados<\/button>\n            <\/div>\n\n            <!-- GRID PRINCIPAL -->\n            <div class=\"travel-grid\">\n\n                <!-- LEFT: NOVA VIAGEM -->\n                <div class=\"travel-card\">\n                    <h3><span>\u2795 Nova Viagem<\/span><\/h3>\n                    <div class=\"tp-field\">\n                        <label>Destino \/ Nome<\/label>\n                        <input type=\"text\" data-f=\"destino\" placeholder=\"Ex: Roma, It\u00e1lia\">\n                    <\/div>\n                    <div class=\"tp-field\">\n                        <label>Data de In\u00edcio<\/label>\n                        <input type=\"date\" data-f=\"inicio\">\n                    <\/div>\n                    <div class=\"tp-field\">\n                        <label>Data de Fim<\/label>\n                        <input type=\"date\" data-f=\"fim\">\n                    <\/div>\n                    <div class=\"tp-field\">\n                        <label>Or\u00e7amento \/ Gastos (\u20ac)<\/label>\n                        <input type=\"number\" data-f=\"gastos\" placeholder=\"Ex: 450\">\n                    <\/div>\n                    <div class=\"tp-field\">\n                        <label>Estado<\/label>\n                        <select data-f=\"estado\">\n                            <option value=\"Planeada\">Planeada<\/option>\n                            <option value=\"Em curso\">Em curso<\/option>\n                            <option value=\"Conclu\u00edda\">Conclu\u00edda<\/option>\n                        <\/select>\n                    <\/div>\n                    <button class=\"tp-btn\" data-tp-save>Registar Viagem<\/button>\n                <\/div>\n\n                <!-- CENTER: MINHAS VIAGENS -->\n                <div class=\"travel-card large\">\n                    <h3><span>\ud83d\udccd As Minhas Viagens<\/span> <span style=\"font-size: 12px; color: var(--tp-muted);\" data-tp-count>0 viagens<\/span><\/h3>\n                    <div class=\"trip-list-container\" data-tp-list>\n                        <!-- Preenchido via JS -->\n                    <\/div>\n                <\/div>\n\n                <!-- RIGHT: RESUMO ESTAT\u00cdSTICO -->\n                <div class=\"travel-card\">\n                    <h3><span>\ud83d\udcca Resumo Geral<\/span><\/h3>\n                    <div class=\"stat blue\">\n                        <span>Total Viagens<\/span>\n                        <strong data-stat=\"total\">0<\/strong>\n                    <\/div>\n                    <div class=\"stat orange\">\n                        <span>Gasto Total<\/span>\n                        <strong data-stat=\"gastos\">\u20ac0<\/strong>\n                    <\/div>\n                    <div class=\"stat green\">\n                        <span>Pr\u00f3xima Destina\u00e7\u00e3o<\/span>\n                        <strong data-stat=\"proxima\">\u2014<\/strong>\n                    <\/div>\n                <\/div>\n\n            <\/div>\n\n            <!-- BOTTOM -->\n            <div class=\"travel-bottom\">\n\n                <!-- DESPESAS POR CATEGORIA -->\n                <div class=\"travel-card\">\n                    <h3><span>\ud83d\udcb0 Or\u00e7amento &amp; Despesas<\/span><\/h3>\n                    <div class=\"bar-row\">\n                        <div class=\"bar-label\"><span>Alojamento \/ Hotel<\/span><span data-exp=\"hotel\">\u20ac0<\/span><\/div>\n                        <div class=\"bar blue\" style=\"width: 100%;\"><span>Principal fatia de custo<\/span><\/div>\n                    <\/div>\n                    <div class=\"bar-row\">\n                        <div class=\"bar-label\"><span>Voos \/ Transporte<\/span><span data-exp=\"transporte\">\u20ac0<\/span><\/div>\n                        <div class=\"bar orange\" style=\"width: 70%;\"><span>Desloca\u00e7\u00f5es<\/span><\/div>\n                    <\/div>\n                    <div class=\"bar-row\">\n                        <div class=\"bar-label\"><span>Alimenta\u00e7\u00e3o \/ Lazer<\/span><span data-exp=\"lazer\">\u20ac0<\/span><\/div>\n                        <div class=\"bar green\" style=\"width: 45%;\"><span>Restaurantes e extras<\/span><\/div>\n                    <\/div>\n                <\/div>\n\n                <!-- CHECKLIST INTERATIVA -->\n                <div class=\"travel-card\">\n                    <h3><span>\u2714 Checklist de Viagem<\/span> <button class=\"tp-btn small outline\" data-check-add style=\"padding:2px 6px; font-size:11px;\">+ Item<\/button><\/h3>\n                    <div class=\"checklist-items\" data-tp-checklist>\n                        <label class=\"check-row\"><input type=\"checkbox\" checked> Passaporte \/ Documentos<\/label>\n                        <label class=\"check-row\"><input type=\"checkbox\"> Bilhetes de Avi\u00e3o \/ Comboio<\/label>\n                        <label class=\"check-row\"><input type=\"checkbox\"> Reservas de Hotel<\/label>\n                        <label class=\"check-row\"><input type=\"checkbox\"> Seguro de Viagem<\/label>\n                    <\/div>\n                <\/div>\n\n                <!-- MAPA \/ LOCALIZA\u00c7\u00c3O -->\n                <div class=\"travel-card\">\n                    <h3><span>\ud83d\uddfa Central de Mapas<\/span><\/h3>\n                    <div class=\"map-box\" data-tp-map-text>\n                        Selecione ou adicione uma viagem para visualizar o planeamento geogr\u00e1fico e rotas.\n                    <\/div>\n                <\/div>\n\n            <\/div>\n        <\/div>\n                            <script>\n        (function(){\n            var root = document.getElementById(\"trp-1-3MJ7jO\");\n            if (!root) return;\n            var STORAGE_KEY = 'travel_plus_data_v2_trp-1-3MJ7jO';\n\n            function loadData(){\n                try {\n                    var raw = localStorage.getItem(STORAGE_KEY);\n                    if (raw) return JSON.parse(raw);\n                } catch(e) {}\n                return [\n                    { id: uid(), destino: 'Paris, Fran\u00e7a', inicio: '2026-06-10', fim: '2026-06-15', gastos: 650, estado: 'Planeada' },\n                    { id: uid(), destino: 'Lisboa, Portugal', inicio: '2026-07-01', fim: '2026-07-05', gastos: 320, estado: 'Em curso' },\n                    { id: uid(), destino: 'T\u00f3quio, Jap\u00e3o', inicio: '2026-10-12', fim: '2026-10-25', gastos: 1850, estado: 'Planeada' }\n                ];\n            }\n\n            function saveData(){ localStorage.setItem(STORAGE_KEY, JSON.stringify(state.viagens)); }\n            function uid(){ return 't' + Math.random().toString(36).slice(2,9); }\n\n            var state = { viagens: loadData() };\n\n            var els = {\n                list: root.querySelector('[data-tp-list]'),\n                count: root.querySelector('[data-tp-count]'),\n                statTotal: root.querySelector('[data-stat=\"total\"]'),\n                statGastos: root.querySelector('[data-stat=\"gastos\"]'),\n                statProxima: root.querySelector('[data-stat=\"proxima\"]'),\n                btnSave: root.querySelector('[data-tp-save]'),\n                btnExport: root.querySelector('[data-tp-export]'),\n                mapText: root.querySelector('[data-tp-map-text]'),\n                expHotel: root.querySelector('[data-exp=\"hotel\"]'),\n                expTransp: root.querySelector('[data-exp=\"transporte\"]'),\n                expLazer: root.querySelector('[data-exp=\"lazer\"]'),\n                inputDestino: root.querySelector('[data-f=\"destino\"]'),\n                inputInicio: root.querySelector('[data-f=\"inicio\"]'),\n                inputFim: root.querySelector('[data-f=\"fim\"]'),\n                inputGastos: root.querySelector('[data-f=\"gastos\"]'),\n                inputEstado: root.querySelector('[data-f=\"estado\"]'),\n                checkAdd: root.querySelector('[data-check-add]'),\n                checklist: root.querySelector('[data-tp-checklist]')\n            };\n\n            function fmtDate(s){\n                if (!s) return '';\n                var parts = s.split('-');\n                if (parts.length !== 3) return s;\n                return parts[2] + '\/' + parts[1] + '\/' + parts[0];\n            }\n\n            function getTagClass(estado){\n                if (estado === 'Em curso') return 'orange';\n                if (estado === 'Conclu\u00edda') return 'green';\n                return 'blue';\n            }\n\n            function renderAll(){\n                var items = state.viagens;\n                els.count.textContent = items.length + (items.length === 1 ? ' viagem' : ' viagens');\n\n                if (!items.length){\n                    els.list.innerHTML = '<div class=\"tp-empty\">\ud83d\udced Nenhuma viagem registada. Preencha os campos ao lado para come\u00e7ar.<\/div>';\n                    els.statTotal.textContent = '0';\n                    els.statGastos.textContent = '\u20ac0';\n                    els.statProxima.textContent = '\u2014';\n                    els.mapText.textContent = 'Adicione uma viagem para ver os detalhes do mapa.';\n                    return;\n                }\n\n                \/\/ Ordenar por data de in\u00edcio\n                items.sort(function(a,b){ return (a.inicio || '').localeCompare(b.inicio || ''); });\n\n                els.list.innerHTML = items.map(function(v){\n                    return '' +\n                    '<div class=\"trip-item\">' +\n                        '<div class=\"trip-info\">' +\n                            '<strong>\u2708\ufe0f ' + escapeHtml(v.destino) + '<\/strong>' +\n                            '<small>' + fmtDate(v.inicio) + ' \u2192 ' + fmtDate(v.fim) + '<\/small>' +\n                            '<div class=\"trip-tags\">' +\n                                '<span class=\"tag ' + getTagClass(v.estado) + '\">' + escapeHtml(v.estado) + '<\/span>' +\n                                '<span class=\"tag green\">\u20ac' + Number(v.gastos || 0).toLocaleString() + ' gastos<\/span>' +\n                            '<\/div>' +\n                        '<\/div>' +\n                        '<button class=\"tp-btn small danger\" data-del=\"' + v.id + '\">Eliminar<\/button>' +\n                    '<\/div>';\n                }).join('');\n\n                \/\/ Ativar bot\u00f5es de eliminar\n                els.list.querySelectorAll('[data-del]').forEach(function(btn){\n                    btn.addEventListener('click', function(){\n                        var id = btn.getAttribute('data-del');\n                        state.viagens = state.viagens.filter(function(x){ return x.id !== id; });\n                        saveData();\n                        renderAll();\n                    });\n                });\n\n                \/\/ Estat\u00edsticas\n                var totalViagens = items.length;\n                var somaGastos = items.reduce(function(acc, cur){ return acc + Number(cur.gastos || 0); }, 0);\n                var proxima = items.find(function(x){ return x.estado === 'Planeada' || x.estado === 'Em curso'; });\n\n                els.statTotal.textContent = totalViagens;\n                els.statGastos.textContent = '\u20ac' + somaGastos.toLocaleString();\n                els.statProxima.textContent = proxima ? proxima.destino.split(',')[0] : 'Nenhuma';\n\n                \/\/ Distribuir despesas simuladas proporcionalmente\n                els.expHotel.textContent = '\u20ac' + Math.round(somaGastos * 0.5);\n                els.expTransp.textContent = '\u20ac' + Math.round(somaGastos * 0.3);\n                els.expLazer.textContent = '\u20ac' + Math.round(somaGastos * 0.2);\n\n                if (proxima){\n                    els.mapText.textContent = '\ud83d\udccd Localiza\u00e7\u00e3o em destaque: Rota planeada para ' + proxima.destino + ' (' + fmtDate(proxima.inicio) + ')';\n                } else {\n                    els.mapText.textContent = '\ud83c\udf0d Todas as viagens conclu\u00eddas. Pronto para a pr\u00f3xima aventura!';\n                }\n            }\n\n            function escapeHtml(str){\n                return (str || '').toString().replace(\/[&<>\"']\/g, function(m){\n                    return ({'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'})[m];\n                });\n            }\n\n            els.btnSave.addEventListener('click', function(){\n                var destino = els.inputDestino.value.trim();\n                var inicio = els.inputInicio.value;\n                var fim = els.inputFim.value;\n                var gastos = els.inputGastos.value;\n                var estado = els.inputEstado.value;\n\n                if (!destino){\n                    els.inputDestino.focus();\n                    els.inputDestino.style.borderColor = 'var(--tp-danger)';\n                    return;\n                }\n                els.inputDestino.style.borderColor = '';\n\n                state.viagens.push({\n                    id: uid(),\n                    destino: destino,\n                    inicio: inicio,\n                    fim: fim,\n                    gastos: gastos ? parseFloat(gastos) : 0,\n                    estado: estado\n                });\n\n                \/\/ Limpar inputs de texto\/gastos\n                els.inputDestino.value = '';\n                els.inputInicio.value = '';\n                els.inputFim.value = '';\n                els.inputGastos.value = '';\n\n                saveData();\n                renderAll();\n            });\n\n            els.btnExport.addEventListener('click', function(){\n                var dataStr = \"data:text\/json;charset=utf-8,\" + encodeURIComponent(JSON.stringify(state.viagens, null, 2));\n                var dlAnchor = document.createElement('a');\n                dlAnchor.setAttribute(\"href\", dataStr);\n                dlAnchor.setAttribute(\"download\", \"travel_plus_backup.json\");\n                document.body.appendChild(dlAnchor);\n                dlAnchor.click();\n                dlAnchor.remove();\n            });\n\n            els.checkAdd.addEventListener('click', function(){\n                var itemName = prompt('Nome do novo item para o checklist:');\n                if (!itemName) return;\n                var label = document.createElement('label');\n                label.className = 'check-row';\n                label.innerHTML = '<input type=\"checkbox\"> ' + escapeHtml(itemName);\n                els.checklist.appendChild(label);\n            });\n\n            renderAll();\n        })();\n        <\/script>\n                <\/div>\n        <\/div>\n\t\t\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":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-2608","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/app.digitalfreelancer.org\/index.php\/wp-json\/wp\/v2\/pages\/2608","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/app.digitalfreelancer.org\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/app.digitalfreelancer.org\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/app.digitalfreelancer.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/app.digitalfreelancer.org\/index.php\/wp-json\/wp\/v2\/comments?post=2608"}],"version-history":[{"count":4,"href":"https:\/\/app.digitalfreelancer.org\/index.php\/wp-json\/wp\/v2\/pages\/2608\/revisions"}],"predecessor-version":[{"id":2647,"href":"https:\/\/app.digitalfreelancer.org\/index.php\/wp-json\/wp\/v2\/pages\/2608\/revisions\/2647"}],"wp:attachment":[{"href":"https:\/\/app.digitalfreelancer.org\/index.php\/wp-json\/wp\/v2\/media?parent=2608"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}