{"id":297,"date":"2026-09-10T15:08:13","date_gmt":"2026-09-10T18:08:13","guid":{"rendered":"https:\/\/arttamoveis.com.br\/?page_id=297"},"modified":"2026-09-21T23:35:56","modified_gmt":"2026-09-22T02:35:56","slug":"orcamento","status":"publish","type":"page","link":"https:\/\/arttamoveis.com.br\/index.php\/orcamento\/","title":{"rendered":"Or\u00e7amento"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Estamos felizes que tenha chegado at\u00e9 aqui para tirar do papel o seu t\u00e3o sonhado ambiente personalizado. Estamos \u00e0 disposi\u00e7\u00e3o para lhe atender.<br>Transformamos suas ideias em m\u00f3veis exclusivos. Desenvolvemos projetos de mobili\u00e1rio para toda regi\u00e3o Sul, oferecemos atendimento presencial, fabrica\u00e7\u00e3o pr\u00f3pria e montagem impec\u00e1vel em cada detalhe. Solicite seu or\u00e7amento e d\u00ea o primeiro passo para o seu novo ambiente!<\/p>\n\n\n<div class='fluentform ff-default fluentform_wrapper_3 ffs_default_wrap'><form data-form_id=\"3\" id=\"fluentform_3\" class=\"frm-fluent-form fluent_form_3 ff-el-form-top ff_form_instance_3_1 ff-form-loading ffs_default\" data-form_instance=\"ff_form_instance_3_1\" method=\"POST\" ><fieldset  style=\"border: none!important;margin: 0!important;padding: 0!important;background-color: transparent!important;box-shadow: none!important;outline: none!important; min-inline-size: 100%;\">\n                    <legend class=\"ff_screen_reader_title\" style=\"display: block; margin: 0!important;padding: 0!important;height: 0!important;text-indent: -999999px;width: 0!important;overflow:hidden;\">Solicita\u00e7\u00e3o de Or\u00e7amento - Artta M\u00f3veis<\/legend><input type='hidden' name='__fluent_form_embded_post_id' value='297' \/><input type=\"hidden\" id=\"_fluentform_3_fluentformnonce\" name=\"_fluentform_3_fluentformnonce\" value=\"d39f7b7bb6\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/index.php\/wp-json\/wp\/v2\/pages\/297\" \/><div data-type=\"name-element\" data-name=\"names\" class=\" ff-field_container ff-name-field-wrapper\" ><div class='ff-t-container'><div class='ff-t-cell '><div class='ff-el-group ff-el-form-top'><div class=\"ff-el-input--label asterisk-right\"><label for='ff_3_names_first_name_' id='label_ff_3_names_first_name_' >Nome<\/label><\/div><div class='ff-el-input--content'><input type=\"text\" name=\"names[first_name]\" id=\"ff_3_names_first_name_\" class=\"ff-el-form-control\" placeholder=\"Seu primeiro nome\" aria-invalid=\"false\" aria-required=false><\/div><\/div><\/div><div class='ff-t-cell '><div class='ff-el-group ff-el-form-top'><div class=\"ff-el-input--label asterisk-right\"><label for='ff_3_names_last_name_' id='label_ff_3_names_last_name_' >Sobrenome<\/label><\/div><div class='ff-el-input--content'><input type=\"text\" name=\"names[last_name]\" id=\"ff_3_names_last_name_\" class=\"ff-el-form-control\" placeholder=\"Seu sobrenome\" aria-invalid=\"false\" aria-required=false><\/div><\/div><\/div><\/div><\/div><div class='ff-el-group'><div class=\"ff-el-input--label ff-el-is-required asterisk-right\"><label for='ff_3_input_text' id='label_ff_3_input_text' aria-label=\"Telefone \/ Whatsapp\">Telefone \/ Whatsapp<\/label><\/div><div class='ff-el-input--content'><input type=\"text\" name=\"input_text\" class=\"ff-el-form-control\" placeholder=\"DDD + telefone\" data-name=\"input_text\" id=\"ff_3_input_text\"  aria-invalid=\"false\" aria-required=true><\/div><\/div><div class='ff-el-group'><div class=\"ff-el-input--label ff-el-is-required asterisk-right\"><label for='ff_3_email' id='label_ff_3_email' aria-label=\"E-mail\">E-mail<\/label><\/div><div class='ff-el-input--content'><input type=\"email\" name=\"email\" id=\"ff_3_email\" class=\"ff-el-form-control\" placeholder=\"seuemail@exemplo.com\" data-name=\"email\"  aria-invalid=\"false\" aria-required=true><\/div><\/div><div class='ff-el-group'><div class=\"ff-el-input--label ff-el-is-required asterisk-right\"><label   aria-label=\"Para qual (is) ambiente (s) voc\u00ea precisa de um projeto ou or\u00e7amento?\">Para qual (is) ambiente (s) voc\u00ea precisa de um projeto ou or\u00e7amento?<\/label><\/div><div class='ff-el-input--content'><div class='ff-el-form-check ff-el-form-check-'><label class='ff-el-form-check-label' for='tipo_servico_eb7eba1477969db7300a780e32093dd6'><input  type=\"checkbox\" name=\"tipo_servico[]\" data-name=\"tipo_servico\" class=\"ff-el-form-check-input ff-el-form-check-checkbox\" value=\"Projeto Completo (Diversos ambientes)\"  id='tipo_servico_eb7eba1477969db7300a780e32093dd6' aria-label='Projeto Completo (Diversos ambientes)' aria-invalid='false' aria-required=true> <span>Projeto Completo (Diversos ambientes)<\/span><\/label><\/div><div class='ff-el-form-check ff-el-form-check-'><label class='ff-el-form-check-label' for='tipo_servico_5e6583f7b4879a8afdcd1c100762b501'><input  type=\"checkbox\" name=\"tipo_servico[]\" data-name=\"tipo_servico\" class=\"ff-el-form-check-input ff-el-form-check-checkbox\" value=\"Cozinha\"  id='tipo_servico_5e6583f7b4879a8afdcd1c100762b501' aria-label='Cozinha' aria-invalid='false' aria-required=true> <span>Cozinha<\/span><\/label><\/div><div class='ff-el-form-check ff-el-form-check-'><label class='ff-el-form-check-label' for='tipo_servico_829d279e3cd3c85cd5be85e182dc03d9'><input  type=\"checkbox\" name=\"tipo_servico[]\" data-name=\"tipo_servico\" class=\"ff-el-form-check-input ff-el-form-check-checkbox\" value=\"Dormit\u00f3rio\"  id='tipo_servico_829d279e3cd3c85cd5be85e182dc03d9' aria-label='Dormit\u00f3rio' aria-invalid='false' aria-required=true> <span>Dormit\u00f3rio<\/span><\/label><\/div><div class='ff-el-form-check ff-el-form-check-'><label class='ff-el-form-check-label' for='tipo_servico_af0685426cd67cc1a8f35a65c1a0cc0a'><input  type=\"checkbox\" name=\"tipo_servico[]\" data-name=\"tipo_servico\" class=\"ff-el-form-check-input ff-el-form-check-checkbox\" value=\"Sala\"  id='tipo_servico_af0685426cd67cc1a8f35a65c1a0cc0a' aria-label='Sala' aria-invalid='false' aria-required=true> <span>Sala<\/span><\/label><\/div><div class='ff-el-form-check ff-el-form-check-'><label class='ff-el-form-check-label' for='tipo_servico_d631e287c754049792ce9e5f2ea1d2e4'><input  type=\"checkbox\" name=\"tipo_servico[]\" data-name=\"tipo_servico\" class=\"ff-el-form-check-input ff-el-form-check-checkbox\" value=\"Banheiro\"  id='tipo_servico_d631e287c754049792ce9e5f2ea1d2e4' aria-label='Banheiro' aria-invalid='false' aria-required=true> <span>Banheiro<\/span><\/label><\/div><div class='ff-el-form-check ff-el-form-check-'><label class='ff-el-form-check-label' for='tipo_servico_4252f2e367973fcd1e37acafcd403335'><input  type=\"checkbox\" name=\"tipo_servico[]\" data-name=\"tipo_servico\" class=\"ff-el-form-check-input ff-el-form-check-checkbox\" value=\"Escrit\u00f3rio\"  id='tipo_servico_4252f2e367973fcd1e37acafcd403335' aria-label='Escrit\u00f3rio' aria-invalid='false' aria-required=true> <span>Escrit\u00f3rio<\/span><\/label><\/div><div class='ff-el-form-check ff-el-form-check-'><label class='ff-el-form-check-label' for='tipo_servico_93cfa6dd99a3da9eda142e58b346b7ff'><input  type=\"checkbox\" name=\"tipo_servico[]\" data-name=\"tipo_servico\" class=\"ff-el-form-check-input ff-el-form-check-checkbox\" value=\"Outros (acrescente na descri\u00e7\u00e3o)\"  id='tipo_servico_93cfa6dd99a3da9eda142e58b346b7ff' aria-label='Outros (acrescente na descri\u00e7\u00e3o)' aria-invalid='false' aria-required=true> <span>Outros (acrescente na descri\u00e7\u00e3o)<\/span><\/label><\/div><\/div><\/div><div class='ff-el-group'><div class=\"ff-el-input--label asterisk-right\"><label   aria-label=\"J\u00e1 possui projeto para fabrica\u00e7\u00e3o dos m\u00f3veis?\">J\u00e1 possui projeto para fabrica\u00e7\u00e3o dos m\u00f3veis?<\/label><\/div><div class='ff-el-input--content'><div class='ff-el-form-check ff-el-form-check-'><label class='ff-el-form-check-label' for='input_radio_c6e8565ceed22434f73142bc90f8739f'><input  type=\"radio\" name=\"input_radio\" data-name=\"input_radio\" class=\"ff-el-form-check-input ff-el-form-check-radio\" value=\"Sim! S\u00f3 preciso do or\u00e7amento\"  id='input_radio_c6e8565ceed22434f73142bc90f8739f' aria-label='Sim! S\u00f3 preciso do or\u00e7amento' aria-invalid='false' aria-required=false> <span>Sim! S\u00f3 preciso do or\u00e7amento<\/span><\/label><\/div><div class='ff-el-form-check ff-el-form-check-'><label class='ff-el-form-check-label' for='input_radio_6da68f33c1287016814707376876e802'><input  type=\"radio\" name=\"input_radio\" data-name=\"input_radio\" class=\"ff-el-form-check-input ff-el-form-check-radio\" value=\"N\u00e3o! Gostaria de um projeto e or\u00e7amento\"  id='input_radio_6da68f33c1287016814707376876e802' aria-label='N\u00e3o! Gostaria de um projeto e or\u00e7amento' aria-invalid='false' aria-required=false> <span>N\u00e3o! Gostaria de um projeto e or\u00e7amento<\/span><\/label><\/div><\/div><\/div><div class='ff-el-group'><div class=\"ff-el-input--label ff-el-is-required asterisk-right\"><label   aria-label=\"Tipo de Im\u00f3vel onde ser\u00e1 feita a instala\u00e7\u00e3o?\">Tipo de Im\u00f3vel onde ser\u00e1 feita a instala\u00e7\u00e3o?<\/label><\/div><div class='ff-el-input--content'><div class='ff-el-form-check ff-el-form-check-'><label class='ff-el-form-check-label' for='tipo_imovel_2f1aeafd921f33dca1e2dc2e4a1e0e89'><input  type=\"radio\" name=\"tipo_imovel\" data-name=\"tipo_imovel\" class=\"ff-el-form-check-input ff-el-form-check-radio\" value=\"casa\"  id='tipo_imovel_2f1aeafd921f33dca1e2dc2e4a1e0e89' aria-label='Casa' aria-invalid='false' aria-required=true> <span>Casa<\/span><\/label><\/div><div class='ff-el-form-check ff-el-form-check-'><label class='ff-el-form-check-label' for='tipo_imovel_c4f01f1112add2eb968f428b543da9cf'><input  type=\"radio\" name=\"tipo_imovel\" data-name=\"tipo_imovel\" class=\"ff-el-form-check-input ff-el-form-check-radio\" value=\"apartamento\"  id='tipo_imovel_c4f01f1112add2eb968f428b543da9cf' aria-label='Apartamento' aria-invalid='false' aria-required=true> <span>Apartamento<\/span><\/label><\/div><div class='ff-el-form-check ff-el-form-check-'><label class='ff-el-form-check-label' for='tipo_imovel_ebcfb77a6574ee77e2eef9ea4e66e978'><input  type=\"radio\" name=\"tipo_imovel\" data-name=\"tipo_imovel\" class=\"ff-el-form-check-input ff-el-form-check-radio\" value=\"comercial\"  id='tipo_imovel_ebcfb77a6574ee77e2eef9ea4e66e978' aria-label='Comercial \/ Escrit\u00f3rio' aria-invalid='false' aria-required=true> <span>Comercial \/ Escrit\u00f3rio<\/span><\/label><\/div><\/div><\/div><div class='ff-el-group'><div class=\"ff-el-input--label asterisk-right\"><label for='ff_3_area_imovel' id='label_ff_3_area_imovel' aria-label=\"\u00c1rea aproximada dos ambientes (m\u00e9dia em m\u00b2)\">\u00c1rea aproximada dos ambientes (m\u00e9dia em m\u00b2)<\/label><\/div><div class='ff-el-input--content'><div class=\"ff_input-group\"><input type=\"number\" name=\"area_imovel\" id=\"ff_3_area_imovel\" class=\"ff-el-form-control\" placeholder=\"Ex: 120\" data-name=\"area_imovel\" inputmode=\"numeric\" step=\"any\"  aria-invalid=\"false\" aria-required=false><div class=\"ff_input-group-append\"><span class=\"ff_input-group-text\">m\u00b2<\/span><\/div><\/div><\/div><\/div><div class='ff-el-group'><div class=\"ff-el-input--label ff-el-is-required asterisk-right\"><label for='ff_3_localizacao' id='label_ff_3_localizacao' aria-label=\"Onde fica o im\u00f3vel?\">Onde fica o im\u00f3vel?<\/label><\/div><div class='ff-el-input--content'><input type=\"text\" name=\"localizacao\" class=\"ff-el-form-control\" placeholder=\"Bairro - Cidade - Estado\" data-name=\"localizacao\" id=\"ff_3_localizacao\"  aria-invalid=\"false\" aria-required=true><\/div><\/div><div class='ff-el-group'><div class=\"ff-el-input--label asterisk-right\"><label for='ff_3_fase_imovel' id='label_ff_3_fase_imovel' aria-label=\"Qual expectativa para iniciar o projeto ap\u00f3s aprova\u00e7\u00e3o?\">Qual expectativa para iniciar o projeto ap\u00f3s aprova\u00e7\u00e3o?<\/label><\/div><div class='ff-el-input--content'><select name=\"fase_imovel[]\" id=\"ff_3_fase_imovel\" class=\"ff-el-form-control  ff_has_multi_select\" multiple=\"1\" data-name=\"fase_imovel\" data-calc_value=\"0\"  aria-invalid=\"false\" aria-required=\"false\" aria-labelledby=\"label_ff_3_fase_imovel\"><option value=\"\">Selecione uma op\u00e7\u00e3o<\/option><option value=\"Imediato\"  >Imediato<\/option><option value=\"De 3 a 6 meses\"  >De 3 a 6 meses<\/option><option value=\"At\u00e9 1 ano\"  >At\u00e9 1 ano<\/option><option value=\"Im\u00f3vel ainda na planta\"  >Im\u00f3vel ainda na planta<\/option><\/select><\/div><\/div><div class='ff-el-group'><div class=\"ff-el-input--label asterisk-right\"><label for='ff_3_investimento_estimado' id='label_ff_3_investimento_estimado' aria-label=\"Qual o investimento estimado para a execu\u00e7\u00e3o do projeto dos m\u00f3veis?\">Qual o investimento estimado para a execu\u00e7\u00e3o do projeto dos m\u00f3veis?<\/label><\/div><div class='ff-el-input--content'><select name=\"investimento_estimado[]\" id=\"ff_3_investimento_estimado\" class=\"ff-el-form-control  ff_has_multi_select\" multiple=\"1\" data-name=\"investimento_estimado\" data-calc_value=\"0\"  aria-invalid=\"false\" aria-required=\"false\" aria-labelledby=\"label_ff_3_investimento_estimado\"><option value=\"\">Selecione uma faixa de valor<\/option><option value=\"At\u00e9 R$ 20.000\"  >At\u00e9 R$ 20.000<\/option><option value=\"De R$ 20.000 a R$ 50.000\"  >De R$ 20.000 a R$ 50.000<\/option><option value=\"De R$ 50.000 a R$ 100.000\"  >De R$ 50.000 a R$ 100.000<\/option><option value=\"Acima de R$ 100.000\"  >Acima de R$ 100.000<\/option><\/select><\/div><\/div><div class='ff-el-group'><div class=\"ff-el-input--label asterisk-right\"><label for='ff_3_dropdown' id='label_ff_3_dropdown' aria-label=\"Como voc\u00ea conheceu Artta M\u00f3veis?\">Como voc\u00ea conheceu Artta M\u00f3veis?<\/label><\/div><div class='ff-el-input--content'><select name=\"dropdown\" id=\"ff_3_dropdown\" class=\"ff-el-form-control\" data-name=\"dropdown\" data-calc_value=\"0\"  aria-invalid=\"false\" aria-required=\"false\" aria-labelledby=\"label_ff_3_dropdown\"><option value=\"\">Selecione uma op\u00e7\u00e3o<\/option><option value=\"Instagram\"  >Instagram<\/option><option value=\"Google \/ Busca\"  >Google \/ Busca<\/option><option value=\"Indica\u00e7\u00e3o\"  >Indica\u00e7\u00e3o<\/option><option value=\"Cart\u00e3o de Visitas\"  >Cart\u00e3o de Visitas<\/option><option value=\"Divulga\u00e7\u00e3o\"  >Divulga\u00e7\u00e3o<\/option><option value=\"Outro\"  >Outro<\/option><\/select><\/div><\/div><div class='ff-el-group'><div class=\"ff-el-input--label asterisk-right\"><label for='ff_3_detalhes_projeto' id='label_ff_3_detalhes_projeto' aria-label=\"Fale um pouco mais sobre o que voc\u00ea deseja:\">Fale um pouco mais sobre o que voc\u00ea deseja:<\/label><\/div><div class='ff-el-input--content'><textarea aria-required=\"false\" aria-labelledby=\"label_ff_3_detalhes_projeto\" name=\"detalhes_projeto\" id=\"ff_3_detalhes_projeto\" class=\"ff-el-form-control\" placeholder=\"Conte-nos mais sobre o seu sonho, necessidades, n\u00famero de c\u00f4modos, estilo preferido...\" rows=\"3\" cols=\"2\" data-name=\"detalhes_projeto\" ><\/textarea><\/div><\/div><input type=\"hidden\" name=\"hidden\" data-name=\"hidden\" ><div class='ff-el-group  ff-custom_html' tabindex='-1' data-name=\"custom_html-3_1\" ><div id=\"artta-upload-area\">\n\n    <div class=\"artta-upload-title\">\n        FOTOS E DOCUMENTOS DO AMBIENTE\n    <\/div>\n\n    <div class=\"artta-upload-description\">\n        Envie at\u00e9 5 arquivos do ambiente que deseja or\u00e7ar.\n        <br>\n        Imagens: JPG, JPEG ou PNG at\u00e9 5 MB cada.\n        <br>\n        PDF: at\u00e9 25 MB.\n    <\/div>\n\n    <button type=\"button\" id=\"artta-select-images\" class=\"artta-upload-button\">\n        + SELECIONAR ARQUIVOS\n    <\/button>\n\n    <div id=\"artta-upload-counter\">\n        0 de 5 arquivos selecionados\n    <\/div>\n\n    <div id=\"artta-upload-error\"><\/div>\n\n    <div id=\"artta-preview\"><\/div>\n\n<\/div><\/div><div class='ff-el-group ff-text-left ff_submit_btn_wrapper'><button type=\"submit\" class=\"ff-btn ff-btn-submit ff-btn-md ff_btn_style\"  aria-label=\"Enviar\">Enviar<\/button><\/div><\/fieldset><\/form><div id='fluentform_3_errors' class='ff-errors-in-stack ff_form_instance_3_1 ff-form-loading_errors ff_form_instance_3_1_errors'><\/div><\/div>            <script type=\"text\/javascript\">\n                window.fluent_form_ff_form_instance_3_1 = {\"id\":\"3\",\"ajaxUrl\":\"https:\\\/\\\/arttamoveis.com.br\\\/wp-admin\\\/admin-ajax.php\",\"settings\":{\"layout\":{\"labelPlacement\":\"top\",\"asteriskPlacement\":\"asterisk-right\",\"helpMessagePlacement\":\"with_label\",\"errorMessagePlacement\":\"inline\",\"cssClassName\":\"\"},\"restrictions\":{\"denyEmptySubmission\":{\"enabled\":false}}},\"form_instance\":\"ff_form_instance_3_1\",\"form_id_selector\":\"fluentform_3\",\"rules\":{\"names[first_name]\":{\"required\":{\"value\":false,\"message\":\"Este campo \\u00e9 obrigat\\u00f3rio\",\"global_message\":\"Este campo \\u00e9 obrigat\\u00f3rio\",\"global\":true}},\"names[middle_name]\":{\"required\":{\"value\":false,\"message\":\"Este campo \\u00e9 obrigat\\u00f3rio\",\"global_message\":\"Este campo \\u00e9 obrigat\\u00f3rio\",\"global\":true}},\"names[last_name]\":{\"required\":{\"value\":false,\"message\":\"Este campo \\u00e9 obrigat\\u00f3rio\",\"global_message\":\"Este campo \\u00e9 obrigat\\u00f3rio\",\"global\":true}},\"input_text\":{\"required\":{\"value\":true,\"message\":\"Este campo \\u00e9 obrigat\\u00f3rio\",\"global_message\":\"Este campo \\u00e9 obrigat\\u00f3rio\",\"global\":true}},\"email\":{\"required\":{\"value\":true,\"message\":\"O e-mail \\u00e9 obrigat\\u00f3rio.\",\"global\":false,\"global_message\":\"Este campo \\u00e9 obrigat\\u00f3rio\"},\"email\":{\"value\":true,\"message\":\"Insira um e-mail v\\u00e1lido.\",\"global\":false,\"global_message\":\"Este campo deve conter um e-mail v\\u00e1lido\"}},\"tipo_servico\":{\"required\":{\"value\":true,\"message\":\"Selecione pelo menos uma op\\u00e7\\u00e3o.\",\"global\":false,\"global_message\":\"Este campo \\u00e9 obrigat\\u00f3rio\"},\"max_selection\":{\"value\":\"\",\"message\":\"You have selected more options than allowed\",\"global_message\":\"You have selected more options than allowed\",\"global\":true},\"min_selection\":{\"value\":\"1\",\"message\":\"Please select at least the minimum number of options\",\"global_message\":\"Please select at least the minimum number of options\",\"global\":true}},\"input_radio\":{\"required\":{\"value\":false,\"message\":\"Este campo \\u00e9 obrigat\\u00f3rio\",\"global_message\":\"Este campo \\u00e9 obrigat\\u00f3rio\",\"global\":true}},\"tipo_imovel\":{\"required\":{\"value\":true,\"message\":\"Selecione o tipo de im\\u00f3vel.\",\"global\":false,\"global_message\":\"Este campo \\u00e9 obrigat\\u00f3rio\"}},\"area_imovel\":{\"required\":{\"value\":false,\"message\":\"Informe a \\u00e1rea aproximada.\",\"global\":false,\"global_message\":\"Este campo \\u00e9 obrigat\\u00f3rio\"}},\"localizacao\":{\"required\":{\"value\":true,\"message\":\"A localiza\\u00e7\\u00e3o \\u00e9 obrigat\\u00f3ria.\",\"global\":false,\"global_message\":\"Este campo \\u00e9 obrigat\\u00f3rio\"}},\"fase_imovel\":{\"required\":{\"value\":false,\"global\":false,\"global_message\":\"Este campo \\u00e9 obrigat\\u00f3rio\"},\"max_selection\":{\"value\":\"\",\"message\":\"You have selected more options than allowed\",\"global_message\":\"You have selected more options than allowed\",\"global\":true},\"min_selection\":{\"value\":\"\",\"message\":\"Please select at least the minimum number of options\",\"global_message\":\"Please select at least the minimum number of options\",\"global\":true}},\"investimento_estimado\":{\"required\":{\"value\":false,\"global\":false,\"global_message\":\"Este campo \\u00e9 obrigat\\u00f3rio\"},\"max_selection\":{\"value\":\"\",\"message\":\"You have selected more options than allowed\",\"global_message\":\"You have selected more options than allowed\",\"global\":true},\"min_selection\":{\"value\":\"\",\"message\":\"Please select at least the minimum number of options\",\"global_message\":\"Please select at least the minimum number of options\",\"global\":true}},\"dropdown\":{\"required\":{\"value\":false,\"message\":\"Este campo \\u00e9 obrigat\\u00f3rio\",\"global_message\":\"Este campo \\u00e9 obrigat\\u00f3rio\",\"global\":true}},\"detalhes_projeto\":{\"required\":{\"value\":false,\"global\":false,\"global_message\":\"Este campo \\u00e9 obrigat\\u00f3rio\"}}},\"debounce_time\":300,\"file_upload_settings\":[]};\n                            <\/script>\n            \n\n\n\n<script data-wp-block-html=\"js\">\ndocument.addEventListener('DOMContentLoaded', function () {\n\n    const button = document.getElementById('artta-select-images');\n    const input = document.getElementById('artta-images-input');\n    const counter = document.getElementById('artta-upload-counter');\n    const error = document.getElementById('artta-upload-error');\n    const preview = document.getElementById('artta-preview');\n\n    const MAX_FILES = 5;\n    const MAX_IMAGE_SIZE = 5 * 1024 * 1024;\n    const MAX_PDF_SIZE = 25 * 1024 * 1024;\n\n    let filesSelected = [];\n\n    if (!button || !input || !counter || !error || !preview) {\n        return;\n    }\n\n    button.addEventListener('click', function (event) {\n\n        event.preventDefault();\n\n        input.click();\n\n    });\n\n    input.addEventListener('change', function () {\n\n        error.style.display = 'none';\n        error.textContent = '';\n\n        const files = Array.from(input.files);\n\n        if (!files.length) {\n            return;\n        }\n\n        if (filesSelected.length + files.length > MAX_FILES) {\n\n            error.textContent =\n                'Voc\u00ea pode selecionar no m\u00e1ximo 5 arquivos.';\n\n            error.style.display = 'block';\n\n            input.value = '';\n\n            return;\n        }\n\n        for (const file of files) {\n\n            const name =\n                file.name.toLowerCase();\n\n            const isImage =\n                name.endsWith('.jpg') ||\n                name.endsWith('.jpeg') ||\n                name.endsWith('.png');\n\n            const isPdf =\n                name.endsWith('.pdf');\n\n            if (!isImage && !isPdf) {\n\n                error.textContent =\n                    'Arquivo n\u00e3o permitido: ' +\n                    file.name;\n\n                error.style.display = 'block';\n\n                input.value = '';\n\n                return;\n            }\n\n            if (\n                isImage &&\n                file.size > MAX_IMAGE_SIZE\n            ) {\n\n                error.textContent =\n                    'A imagem \"' +\n                    file.name +\n                    '\" ultrapassa 5 MB.';\n\n                error.style.display = 'block';\n\n                input.value = '';\n\n                return;\n            }\n\n            if (\n                isPdf &&\n                file.size > MAX_PDF_SIZE\n            ) {\n\n                error.textContent =\n                    'O PDF \"' +\n                    file.name +\n                    '\" ultrapassa 25 MB.';\n\n                error.style.display = 'block';\n\n                input.value = '';\n\n                return;\n            }\n        }\n\n        filesSelected =\n            filesSelected.concat(files);\n\n        renderPreview();\n\n        input.value = '';\n\n    });\n\n    function renderPreview() {\n\n        preview.innerHTML = '';\n\n        counter.textContent =\n            filesSelected.length +\n            ' de 5 arquivos selecionados';\n\n        filesSelected.forEach(function (file, index) {\n\n            const item =\n                document.createElement('div');\n\n            item.style.position = 'relative';\n            item.style.width = '110px';\n            item.style.height = '110px';\n            item.style.border = '1px solid #c4c4c4';\n            item.style.borderRadius = '5px';\n            item.style.overflow = 'hidden';\n            item.style.background = '#f5f5f5';\n\n            const remove =\n                document.createElement('button');\n\n            remove.type = 'button';\n            remove.textContent = '\u00d7';\n\n            remove.style.position = 'absolute';\n            remove.style.top = '5px';\n            remove.style.right = '5px';\n            remove.style.width = '24px';\n            remove.style.height = '24px';\n            remove.style.border = 'none';\n            remove.style.borderRadius = '50%';\n            remove.style.background =\n                'rgba(79, 77, 74, 0.85)';\n            remove.style.color = '#fff';\n            remove.style.fontSize = '17px';\n            remove.style.lineHeight = '1';\n            remove.style.cursor = 'pointer';\n            remove.style.zIndex = '10';\n\n            remove.addEventListener('click', function (event) {\n\n                event.preventDefault();\n                event.stopPropagation();\n\n                filesSelected.splice(index, 1);\n\n                renderPreview();\n\n            });\n\n            if (\n                file.name\n                    .toLowerCase()\n                    .endsWith('.pdf')\n            ) {\n\n                item.style.display = 'flex';\n                item.style.alignItems = 'center';\n                item.style.justifyContent = 'center';\n\n                const pdfText =\n                    document.createElement('div');\n\n                pdfText.textContent = '\ud83d\udcc4 PDF';\n\n                pdfText.style.fontFamily =\n                    'Montserrat, sans-serif';\n\n                pdfText.style.fontSize = '13px';\n\n                pdfText.style.color = '#555';\n\n                item.appendChild(pdfText);\n\n            } else {\n\n                const image =\n                    document.createElement('img');\n\n                image.style.width = '100%';\n                image.style.height = '100%';\n                image.style.objectFit = 'cover';\n\n                const reader =\n                    new FileReader();\n\n                reader.onload =\n                    function (event) {\n\n                        image.src =\n                            event.target.result;\n\n                    };\n\n                reader.readAsDataURL(file);\n\n                item.appendChild(image);\n\n            }\n\n            item.appendChild(remove);\n\n            preview.appendChild(item);\n\n        });\n\n    }\n\n    function positionSubmitButton() {\n\n        const uploadArea =\n            document.getElementById('artta-upload-area');\n\n        if (!uploadArea) {\n            return;\n        }\n\n        const submitButton =\n            document.querySelector('#fluentform_3 .ff-btn-submit') ||\n            document.querySelector('form[data-form_id=\"3\"] .ff-btn-submit') ||\n            document.querySelector('.frm-fluent-form[data-form_id=\"3\"] .ff-btn-submit');\n\n        if (!submitButton) {\n            return;\n        }\n\n        const submitGroup =\n            submitButton.closest('.ff-el-group') ||\n            submitButton.parentElement;\n\n        if (!submitGroup) {\n            return;\n        }\n\n        const uploadParent =\n            uploadArea.parentElement;\n\n        if (!uploadParent) {\n            return;\n        }\n\n        uploadParent.appendChild(submitGroup);\n    }\n\n    positionSubmitButton();\n\n    setTimeout(\n        positionSubmitButton,\n        300\n    );\n\n    setTimeout(\n        positionSubmitButton,\n        800\n    );\n\n    setTimeout(\n        positionSubmitButton,\n        1500\n    );\n\n});\n<\/script>\n\n\n\n<script data-wp-block-html=\"js\">\ndocument.addEventListener('DOMContentLoaded', function () {\n\n    const input = document.getElementById('artta-images-input');\n    const preview = document.getElementById('artta-preview');\n    const counter = document.getElementById('artta-upload-counter');\n    const errorBox = document.getElementById('artta-upload-error');\n\n    if (!input) {\n        console.log('Campo de imagens Artta n\u00e3o encontrado.');\n        return;\n    }\n\n    let selectedFiles = [];\n\n    const MAX_FILES = 5;\n    const MAX_SIZE = 5 * 1024 * 1024;\n\n    const allowedTypes = [\n        'image\/jpeg',\n        'image\/png'\n    ];\n\n\n    function showError(message) {\n        errorBox.innerHTML = message;\n        errorBox.style.display = 'block';\n    }\n\n\n    function clearError() {\n        errorBox.innerHTML = '';\n        errorBox.style.display = 'none';\n    }\n\n\n    function updateCounter() {\n\n        counter.textContent =\n            selectedFiles.length +\n            ' de ' +\n            MAX_FILES +\n            ' imagens selecionadas';\n\n    }\n\n\n    function renderPreview() {\n\n        preview.innerHTML = '';\n\n        selectedFiles.forEach(function (file, index) {\n\n            const reader = new FileReader();\n\n            reader.onload = function (event) {\n\n                const item =\n                    document.createElement('div');\n\n                item.className =\n                    'artta-image-item';\n\n                item.innerHTML =\n                    '<img decoding=\"async\" src=\"' +\n                    event.target.result +\n                    '\">' +\n\n                    '<button type=\"button\" ' +\n                    'class=\"artta-image-remove\" ' +\n                    'data-index=\"' +\n                    index +\n                    '\">\u00d7<\/button>' +\n\n                    '<div class=\"artta-image-name\">' +\n                    file.name +\n                    '<\/div>';\n\n                preview.appendChild(item);\n\n            };\n\n            reader.readAsDataURL(file);\n\n        });\n\n        updateCounter();\n\n    }\n\n\n    input.addEventListener(\n        'change',\n        function () {\n\n            clearError();\n\n            const files =\n                Array.from(input.files);\n\n\n            if (!files.length) {\n                return;\n            }\n\n\n            \/*\n             * Limite de 5 arquivos\n             *\/\n\n            if (\n                selectedFiles.length +\n                files.length >\n                MAX_FILES\n            ) {\n\n                showError(\n                    'Voc\u00ea pode selecionar no m\u00e1ximo 5 imagens.'\n                );\n\n                input.value = '';\n\n                return;\n\n            }\n\n\n            \/*\n             * Verifica\u00e7\u00e3o dos arquivos\n             *\/\n\n            for (const file of files) {\n\n                if (\n                    !allowedTypes.includes(\n                        file.type\n                    )\n                ) {\n\n                    showError(\n                        'O arquivo \"' +\n                        file.name +\n                        '\" n\u00e3o \u00e9 JPG, JPEG ou PNG.'\n                    );\n\n                    input.value = '';\n\n                    return;\n\n                }\n\n\n                if (\n                    file.size >\n                    MAX_SIZE\n                ) {\n\n                    showError(\n                        'O arquivo \"' +\n                        file.name +\n                        '\" ultrapassa o limite de 5 MB.'\n                    );\n\n                    input.value = '';\n\n                    return;\n\n                }\n\n            }\n\n\n            \/*\n             * Adiciona os arquivos\n             *\/\n\n            files.forEach(function (file) {\n\n                selectedFiles.push(file);\n\n            });\n\n\n            \/*\n             * Permite nova sele\u00e7\u00e3o\n             *\/\n\n            input.value = '';\n\n\n            renderPreview();\n\n        }\n    );\n\n\n    \/*\n     * Remover imagem\n     *\/\n\n    preview.addEventListener(\n        'click',\n        function (event) {\n\n            if (\n                !event.target.classList.contains(\n                    'artta-image-remove'\n                )\n            ) {\n                return;\n            }\n\n\n            const index =\n                parseInt(\n                    event.target.getAttribute(\n                        'data-index'\n                    )\n                );\n\n\n            selectedFiles.splice(\n                index,\n                1\n            );\n\n\n            renderPreview();\n\n            clearError();\n\n        }\n    );\n\n\n    updateCounter();\n\n});\n<\/script>\n\n\n\n<style data-wp-block-html=\"css\">\n```css\n#artta-upload-area {\n    width: 100%;\n    margin: 15px 0 25px;\n    padding: 20px;\n    box-sizing: border-box;\n    border: 1px solid #c4c4c4;\n    border-radius: 5px;\n    background: #fff;\n    font-family: 'Montserrat', sans-serif;\n}\n\n#artta-upload-area .artta-upload-title {\n    margin-bottom: 10px;\n    color: #333;\n    font-size: 14px;\n    font-weight: 500;\n    letter-spacing: 1px;\n    text-transform: uppercase;\n}\n\n#artta-upload-area .artta-upload-description {\n    margin-bottom: 15px;\n    color: #777;\n    font-size: 13px;\n    line-height: 1.5;\n}\n\n#artta-upload-area .artta-upload-button {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: 100%;\n    min-height: 48px;\n    margin: 0;\n    padding: 15px 20px;\n    border: none;\n    border-radius: 5px;\n    background: #4f4d4a;\n    color: #fff;\n    font-family: 'Montserrat', sans-serif;\n    font-size: 14px;\n    font-weight: 700;\n    letter-spacing: 1.5px;\n    text-transform: uppercase;\n    cursor: pointer;\n    box-sizing: border-box;\n    transition: background-color .2s ease, opacity .2s ease;\n}\n\n#artta-upload-area .artta-upload-button:hover {\n    background: #3e3c3a;\n}\n\n#artta-upload-area .artta-upload-button:disabled {\n    opacity: .55;\n    cursor: wait;\n}\n\n#artta-images-input {\n    position: absolute !important;\n    width: 1px !important;\n    height: 1px !important;\n    margin: -1px !important;\n    padding: 0 !important;\n    overflow: hidden !important;\n    opacity: 0 !important;\n    pointer-events: none !important;\n}\n\n#artta-upload-counter {\n    margin-top: 10px;\n    color: #777;\n    font-size: 13px;\n}\n\n#artta-upload-error {\n    display: none;\n    margin-top: 10px;\n    padding: 10px;\n    box-sizing: border-box;\n    border-radius: 5px;\n    background: #fff0f0;\n    color: #c00000;\n    font-size: 13px;\n    line-height: 1.4;\n}\n\n#artta-preview {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 12px;\n    margin-top: 15px;\n}\n\n.artta-file-item {\n    position: relative;\n    width: 110px;\n    height: 110px;\n    overflow: hidden;\n    border: 1px solid #c4c4c4;\n    border-radius: 5px;\n    background: #f5f5f5;\n    box-sizing: border-box;\n}\n\n.artta-file-item img {\n    display: block;\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n}\n\n.artta-pdf-content {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: 100%;\n    height: 100%;\n    flex-direction: column;\n    color: #555;\n    font-family: 'Montserrat', sans-serif;\n}\n\n.artta-pdf-icon {\n    margin-bottom: 5px;\n    font-size: 30px;\n    line-height: 1;\n}\n\n.artta-pdf-label {\n    font-size: 12px;\n}\n\n.artta-remove-file {\n    position: absolute;\n    top: 5px;\n    right: 5px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: 24px;\n    height: 24px;\n    padding: 0;\n    border: 0;\n    border-radius: 50%;\n    background: rgba(79,77,74,.85);\n    color: #fff;\n    font-family: Arial, sans-serif;\n    font-size: 17px;\n    line-height: 1;\n    text-align: center;\n    cursor: pointer;\n    z-index: 10;\n}\n\n.artta-remove-file:hover {\n    background: rgba(79,77,74,1);\n}\n\n#fluentform_3 select,\n#fluentform_3 input[type=\"text\"],\n#fluentform_3 input[type=\"email\"],\n#fluentform_3 input[type=\"number\"],\n#fluentform_3 input[type=\"tel\"],\n#fluentform_3 input[type=\"url\"],\n#fluentform_3 input[type=\"date\"],\n#fluentform_3 textarea {\n    width: 100% !important;\n    box-sizing: border-box !important;\n    border: 1px solid #c4c4c4 !important;\n    border-radius: 5px !important;\n    background-color: #fff !important;\n    color: #333 !important;\n    font-family: 'Montserrat', sans-serif !important;\n    font-size: 14px !important;\n    font-weight: 400 !important;\n    outline: none !important;\n    box-shadow: none !important;\n}\n\n#fluentform_3 select,\n#fluentform_3 input[type=\"text\"],\n#fluentform_3 input[type=\"email\"],\n#fluentform_3 input[type=\"number\"],\n#fluentform_3 input[type=\"tel\"],\n#fluentform_3 input[type=\"url\"],\n#fluentform_3 input[type=\"date\"] {\n    min-height: 48px !important;\n    padding: 12px 15px !important;\n}\n\n#fluentform_3 textarea {\n    min-height: 120px !important;\n    padding: 12px 15px !important;\n    resize: vertical;\n}\n\n#fluentform_3 select:focus,\n#fluentform_3 input[type=\"text\"]:focus,\n#fluentform_3 input[type=\"email\"]:focus,\n#fluentform_3 input[type=\"number\"]:focus,\n#fluentform_3 input[type=\"tel\"]:focus,\n#fluentform_3 input[type=\"url\"]:focus,\n#fluentform_3 input[type=\"date\"]:focus,\n#fluentform_3 textarea:focus {\n    border-color: #c4c4c4 !important;\n    outline: none !important;\n    box-shadow: none !important;\n}\n\n#fluentform_3 .ff-btn-submit {\n    width: 100% !important;\n    min-height: 48px !important;\n    margin-top: 18px !important;\n    padding: 15px 20px !important;\n    border: none !important;\n    border-radius: 5px !important;\n    background: #4f4d4a !important;\n    color: #fff !important;\n    font-family: 'Montserrat', sans-serif !important;\n    font-size: 14px !important;\n    font-weight: 700 !important;\n    letter-spacing: 1.5px !important;\n    text-transform: uppercase !important;\n    cursor: pointer !important;\n}\n\n#fluentform_3 .ff-btn-submit:hover {\n    background: #3e3c3a !important;\n}\n\n#fluentform_3 .ff-btn-submit:disabled {\n    opacity: .55 !important;\n    cursor: wait !important;\n}\n```\n\n<\/style>\n\n<script data-wp-block-html=\"js\">\ndocument.addEventListener('DOMContentLoaded', function () {\n\n    const MAX_FILES = 5;\n    const MAX_IMAGE_SIZE = 5 * 1024 * 1024;\n    const MAX_PDF_SIZE = 25 * 1024 * 1024;\n\n    const allowedTypes = [\n        'image\/jpeg',\n        'image\/png',\n        'application\/pdf'\n    ];\n\n    let selectedFiles = [];\n    let uploadedIds = [];\n    let uploading = false;\n\n    function initArttaUpload() {\n\n        const uploadArea = document.getElementById('artta-upload-area');\n        const fileInput = document.getElementById('artta-images-input');\n        const selectButton = document.getElementById('artta-select-images');\n        const counter = document.getElementById('artta-upload-counter');\n        const errorBox = document.getElementById('artta-upload-error');\n        const preview = document.getElementById('artta-preview');\n\n        if (\n            !uploadArea ||\n            !fileInput ||\n            !selectButton ||\n            !counter ||\n            !errorBox ||\n            !preview\n        ) {\n            return false;\n        }\n\n        \/*\n         * Localiza o campo oculto do Fluent Forms.\n         *\/\n        const hiddenField =\n            document.querySelector('#fluentform_3 input[name=\"artta_upload_token\"]');\n\n        if (!hiddenField) {\n            console.warn('Campo art\u00adta_upload_token n\u00e3o encontrado.');\n        }\n\n        function showError(message) {\n            errorBox.textContent = message;\n            errorBox.style.display = 'block';\n        }\n\n        function clearError() {\n            errorBox.textContent = '';\n            errorBox.style.display = 'none';\n        }\n\n        function updateCounter() {\n            counter.textContent =\n                selectedFiles.length + ' de ' + MAX_FILES + ' arquivos selecionados';\n        }\n\n        function updateHiddenField() {\n\n            if (!hiddenField) {\n                return;\n            }\n\n            hiddenField.value = uploadedIds.join(',');\n        }\n\n        function renderPreview() {\n\n            preview.innerHTML = '';\n\n            selectedFiles.forEach(function (item, index) {\n\n                const box = document.createElement('div');\n                box.className = 'artta-file-item';\n\n                \/*\n                 * IMAGEM\n                 *\/\n                if (item.file.type !== 'application\/pdf') {\n\n                    const img = document.createElement('img');\n\n                    if (item.previewUrl) {\n                        img.src = item.previewUrl;\n                    }\n\n                    box.appendChild(img);\n\n                } else {\n\n                    \/*\n                     * PDF\n                     *\/\n                    const pdfContent = document.createElement('div');\n                    pdfContent.className = 'artta-pdf-content';\n\n                    const pdfIcon = document.createElement('div');\n                    pdfIcon.className = 'artta-pdf-icon';\n                    pdfIcon.textContent = 'PDF';\n\n                    const pdfLabel = document.createElement('div');\n                    pdfLabel.className = 'artta-pdf-label';\n                    pdfLabel.textContent = item.file.name;\n\n                    pdfContent.appendChild(pdfIcon);\n                    pdfContent.appendChild(pdfLabel);\n\n                    box.appendChild(pdfContent);\n                }\n\n                \/*\n                 * BOT\u00c3O REMOVER\n                 *\/\n                const removeButton = document.createElement('button');\n\n                removeButton.type = 'button';\n                removeButton.className = 'artta-remove-file';\n                removeButton.innerHTML = '&times;';\n                removeButton.setAttribute('aria-label', 'Remover arquivo');\n\n                removeButton.addEventListener('click', function () {\n\n                    \/*\n                     * Remove tamb\u00e9m o ID correspondente\n                     *\/\n                    if (\n                        uploadedIds[index] !== undefined &&\n                        uploadedIds[index] !== null\n                    ) {\n                        uploadedIds.splice(index, 1);\n                    }\n\n                    selectedFiles.splice(index, 1);\n\n                    updateCounter();\n                    updateHiddenField();\n                    renderPreview();\n\n                    clearError();\n\n                });\n\n                box.appendChild(removeButton);\n\n                preview.appendChild(box);\n            });\n        }\n\n        function uploadFile(file, index) {\n\n            return new Promise(function (resolve, reject) {\n\n                const formData = new FormData();\n\n                formData.append('action', 'artta_upload_files');\n                formData.append('file', file);\n\n                fetch(\n                    window.ajaxurl || '\/wp-admin\/admin-ajax.php',\n                    {\n                        method: 'POST',\n                        body: formData,\n                        credentials: 'same-origin'\n                    }\n                )\n                .then(function (response) {\n\n                    if (!response.ok) {\n                        throw new Error('Erro HTTP ' + response.status);\n                    }\n\n                    return response.json();\n                })\n                .then(function (result) {\n\n                    if (!result.success) {\n                        const message =\n                            result.data && result.data.message\n                                ? result.data.message\n                                : 'N\u00e3o foi poss\u00edvel enviar o arquivo.';\n\n                        throw new Error(message);\n                    }\n\n                    if (\n                        !result.data ||\n                        !result.data.attachment_id\n                    ) {\n                        throw new Error(\n                            'O servidor recebeu o arquivo, mas n\u00e3o retornou o ID.'\n                        );\n                    }\n\n                    resolve(result.data.attachment_id);\n\n                })\n                .catch(function (error) {\n\n                    console.error(\n                        'Erro no upload do arquivo:',\n                        file.name,\n                        error\n                    );\n\n                    reject(error);\n                });\n            });\n        }\n\n        async function processFiles(files) {\n\n            clearError();\n\n            const filesArray = Array.from(files);\n\n            \/*\n             * Limite total\n             *\/\n            if (selectedFiles.length + filesArray.length > MAX_FILES) {\n\n                showError(\n                    'Voc\u00ea pode selecionar no m\u00e1ximo 5 arquivos.'\n                );\n\n                return;\n            }\n\n            \/*\n             * Valida\u00e7\u00e3o dos arquivos\n             *\/\n            for (const file of filesArray) {\n\n                const isValidType =\n                    allowedTypes.includes(file.type);\n\n                if (!isValidType) {\n\n                    showError(\n                        'O arquivo \"' +\n                        file.name +\n                        '\" possui um formato n\u00e3o permitido.'\n                    );\n\n                    return;\n                }\n\n                if (\n                    file.type === 'application\/pdf' &&\n                    file.size > MAX_PDF_SIZE\n                ) {\n\n                    showError(\n                        'O PDF \"' +\n                        file.name +\n                        '\" ultrapassa o limite de 25 MB.'\n                    );\n\n                    return;\n                }\n\n                if (\n                    file.type !== 'application\/pdf' &&\n                    file.size > MAX_IMAGE_SIZE\n                ) {\n\n                    showError(\n                        'A imagem \"' +\n                        file.name +\n                        '\" ultrapassa o limite de 5 MB.'\n                    );\n\n                    return;\n                }\n            }\n\n            uploading = true;\n\n            selectButton.disabled = true;\n\n            try {\n\n                for (const file of filesArray) {\n\n                    const previewUrl =\n                        file.type !== 'application\/pdf'\n                            ? URL.createObjectURL(file)\n                            : null;\n\n                    selectedFiles.push({\n                        file: file,\n                        previewUrl: previewUrl\n                    });\n\n                    \/*\n                     * Mant\u00e9m a posi\u00e7\u00e3o correspondente.\n                     *\/\n                    uploadedIds.push(null);\n\n                    updateCounter();\n                    renderPreview();\n\n                    const index = selectedFiles.length - 1;\n\n                    const attachmentId =\n                        await uploadFile(file, index);\n\n                    uploadedIds[index] = attachmentId;\n\n                    updateHiddenField();\n                }\n\n            } catch (error) {\n\n                \/*\n                 * Retira arquivos que ficaram sem upload conclu\u00eddo.\n                 *\/\n                selectedFiles = selectedFiles.filter(function (item, index) {\n                    return uploadedIds[index] !== null &&\n                           uploadedIds[index] !== undefined;\n                });\n\n                uploadedIds = uploadedIds.filter(function (id) {\n                    return id !== null &&\n                           id !== undefined;\n                });\n\n                updateCounter();\n                updateHiddenField();\n                renderPreview();\n\n                showError(\n                    error.message ||\n                    'Ocorreu um erro ao enviar um dos arquivos.'\n                );\n\n            } finally {\n\n                uploading = false;\n                selectButton.disabled = false;\n            }\n        }\n\n        \/*\n         * Abrir seletor\n         *\/\n        selectButton.addEventListener('click', function () {\n            fileInput.click();\n        });\n\n        \/*\n         * Arquivos selecionados\n         *\/\n        fileInput.addEventListener('change', function () {\n\n            if (!fileInput.files || !fileInput.files.length) {\n                return;\n            }\n\n            processFiles(fileInput.files);\n\n            \/*\n             * Permite selecionar novamente o mesmo arquivo depois.\n             *\/\n            fileInput.value = '';\n        });\n\n        \/*\n         * Impede o envio enquanto arquivos ainda estiverem sendo enviados.\n         *\/\n        const form = document.querySelector('#fluentform_3');\n\n        if (form) {\n\n            form.addEventListener('submit', function (event) {\n\n                if (uploading) {\n\n                    event.preventDefault();\n\n                    showError(\n                        'Aguarde o envio dos arquivos terminar antes de enviar o formul\u00e1rio.'\n                    );\n\n                    return;\n                }\n\n                \/*\n                 * Confere se existe arquivo sem ID.\n                 *\/\n                const pendingUpload =\n                    uploadedIds.some(function (id) {\n                        return !id;\n                    });\n\n                if (pendingUpload) {\n\n                    event.preventDefault();\n\n                    showError(\n                        'Aguarde o envio dos arquivos terminar antes de enviar o formul\u00e1rio.'\n                    );\n\n                    return;\n                }\n\n            }, true);\n        }\n\n        updateCounter();\n        updateHiddenField();\n\n        return true;\n    }\n\n    \/*\n     * O Fluent Forms\/Elementor pode carregar os elementos\n     * ligeiramente depois do DOM.\n     *\/\n    let attempts = 0;\n\n    const interval = setInterval(function () {\n\n        attempts++;\n\n        if (initArttaUpload()) {\n\n            clearInterval(interval);\n\n        }\n\n        if (attempts >= 60) {\n\n            clearInterval(interval);\n\n            console.warn(\n                'N\u00e3o foi poss\u00edvel inicializar o upload Artta.'\n            );\n        }\n\n    }, 250);\n\n});\n<\/script>\n\n________________________\n","protected":false},"excerpt":{"rendered":"<p>Estamos felizes que tenha chegado at\u00e9 aqui para tirar do papel o seu t\u00e3o sonhado ambiente personalizado. Estamos \u00e0 disposi\u00e7\u00e3o para lhe atender.Transformamos suas ideias em m\u00f3veis exclusivos. Desenvolvemos projetos de mobili\u00e1rio para toda regi\u00e3o Sul, oferecemos atendimento presencial, fabrica\u00e7\u00e3o pr\u00f3pria e montagem impec\u00e1vel em cada detalhe. Solicite seu or\u00e7amento e d\u00ea o primeiro passo [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-297","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/arttamoveis.com.br\/index.php\/wp-json\/wp\/v2\/pages\/297","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arttamoveis.com.br\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/arttamoveis.com.br\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/arttamoveis.com.br\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/arttamoveis.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=297"}],"version-history":[{"count":90,"href":"https:\/\/arttamoveis.com.br\/index.php\/wp-json\/wp\/v2\/pages\/297\/revisions"}],"predecessor-version":[{"id":423,"href":"https:\/\/arttamoveis.com.br\/index.php\/wp-json\/wp\/v2\/pages\/297\/revisions\/423"}],"wp:attachment":[{"href":"https:\/\/arttamoveis.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=297"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}