{"id":7,"date":"2026-07-14T01:04:56","date_gmt":"2026-07-14T01:04:56","guid":{"rendered":"https:\/\/itcvertebralcg.com.br\/blog\/?page_id=7"},"modified":"2026-07-20T01:15:57","modified_gmt":"2026-07-20T01:15:57","slug":"elementor-7","status":"publish","type":"page","link":"https:\/\/itcvertebralcg.com.br\/blog\/","title":{"rendered":"BLOG"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"7\" class=\"elementor elementor-7\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d51c278 e-con-full e-flex e-con e-parent\" data-id=\"d51c278\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0b27758 elementor-widget elementor-widget-html\" data-id=\"0b27758\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section class=\"itc-blog-hero\" aria-labelledby=\"itc-blog-title\">\r\n  <div class=\"itc-blog-hero__container\">\r\n\r\n    <div class=\"itc-blog-hero__content\">\r\n\r\n      <nav class=\"itc-blog-hero__breadcrumb\" aria-label=\"Navega\u00e7\u00e3o estrutural\">\r\n        <a href=\"https:\/\/itcvertebralcg.com.br\/\">In\u00edcio<\/a>\r\n        <span aria-hidden=\"true\">\/<\/span>\r\n        <span aria-current=\"page\">Blog<\/span>\r\n      <\/nav>\r\n\r\n      <span class=\"itc-blog-hero__signature\">\r\n        ITC Vertebral Campo Grande\r\n      <\/span>\r\n\r\n      <h1 id=\"itc-blog-title\">\r\n        Conte\u00fados sobre sa\u00fade da coluna\r\n      <\/h1>\r\n\r\n      <p class=\"itc-blog-hero__description\">\r\n        Informa\u00e7\u00f5es claras sobre dores na coluna, sintomas e possibilidades\r\n        de tratamento, com revis\u00e3o t\u00e9cnica especializada.\r\n      <\/p>\r\n\r\n      <a class=\"itc-blog-hero__link\" href=\"#artigos\">\r\n        Explorar conte\u00fados\r\n        <span aria-hidden=\"true\">\u2193<\/span>\r\n      <\/a>\r\n\r\n    <\/div>\r\n\r\n    <div class=\"itc-blog-hero__visual\" aria-hidden=\"true\">\r\n\r\n      <div class=\"itc-blog-hero__circle\"><\/div>\r\n\r\n      <svg\r\n        class=\"itc-blog-hero__spine\"\r\n        viewBox=\"0 0 240 420\"\r\n        xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\r\n      >\r\n        <path\r\n          d=\"M121 22\r\n             C88 58, 151 89, 111 124\r\n             C78 153, 149 187, 113 220\r\n             C82 249, 144 279, 111 310\r\n             C84 336, 130 365, 118 398\"\r\n          fill=\"none\"\r\n          stroke=\"currentColor\"\r\n          stroke-width=\"4\"\r\n          stroke-linecap=\"round\"\r\n        \/>\r\n\r\n        <g fill=\"currentColor\">\r\n          <ellipse cx=\"121\" cy=\"42\" rx=\"25\" ry=\"10\" \/>\r\n          <ellipse cx=\"113\" cy=\"81\" rx=\"24\" ry=\"10\" \/>\r\n          <ellipse cx=\"119\" cy=\"121\" rx=\"25\" ry=\"10\" \/>\r\n          <ellipse cx=\"110\" cy=\"162\" rx=\"24\" ry=\"10\" \/>\r\n          <ellipse cx=\"118\" cy=\"204\" rx=\"25\" ry=\"10\" \/>\r\n          <ellipse cx=\"111\" cy=\"246\" rx=\"24\" ry=\"10\" \/>\r\n          <ellipse cx=\"117\" cy=\"288\" rx=\"25\" ry=\"10\" \/>\r\n          <ellipse cx=\"111\" cy=\"330\" rx=\"24\" ry=\"10\" \/>\r\n          <ellipse cx=\"117\" cy=\"372\" rx=\"23\" ry=\"10\" \/>\r\n        <\/g>\r\n      <\/svg>\r\n\r\n      <span class=\"itc-blog-hero__detail itc-blog-hero__detail--one\"><\/span>\r\n      <span class=\"itc-blog-hero__detail itc-blog-hero__detail--two\"><\/span>\r\n      <span class=\"itc-blog-hero__detail itc-blog-hero__detail--three\"><\/span>\r\n\r\n    <\/div>\r\n\r\n  <\/div>\r\n<\/section>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-37fca69 e-con-full e-flex e-con e-parent\" data-id=\"37fca69\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ce2713d elementor-widget elementor-widget-html\" data-id=\"ce2713d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section class=\"blog-posts-section\" id=\"artigos\">\r\n    <div class=\"blog-posts-container\">\r\n\r\n        <div\r\n            class=\"blog-posts-grid\"\r\n            id=\"itcBlogGrid\"\r\n            aria-live=\"polite\"\r\n            aria-busy=\"true\"\r\n        >\r\n            <!-- Os cards ser\u00e3o inseridos aqui pelo JavaScript -->\r\n        <\/div>\r\n\r\n        <div class=\"blog-posts-empty\" id=\"itcBlogEmpty\" hidden>\r\n            <p>Nenhum artigo publicado ainda. Volte em breve.<\/p>\r\n        <\/div>\r\n\r\n        <div class=\"blog-posts-error\" id=\"itcBlogError\" hidden>\r\n            <p>\r\n                N\u00e3o foi poss\u00edvel carregar os artigos agora.\r\n                Tente novamente em instantes.\r\n            <\/p>\r\n        <\/div>\r\n\r\n        <div class=\"blog-posts-actions\">\r\n            <button\r\n                class=\"itc-btn itc-btn-outline\"\r\n                id=\"itcBlogLoadMore\"\r\n                type=\"button\"\r\n                hidden\r\n            >\r\n                Carregar mais artigos\r\n            <\/button>\r\n        <\/div>\r\n\r\n    <\/div>\r\n<\/section>\r\n\r\n<script>\r\n(function () {\r\n    'use strict';\r\n\r\n    var API_URL = 'https:\/\/itcvertebralcg.com.br\/blog\/wp-json\/wp\/v2\/posts';\r\n    var POSTS_PER_PAGE = 9;\r\n\r\n    var grid = document.getElementById('itcBlogGrid');\r\n    var loadMoreBtn = document.getElementById('itcBlogLoadMore');\r\n    var emptyState = document.getElementById('itcBlogEmpty');\r\n    var errorState = document.getElementById('itcBlogError');\r\n\r\n    var currentPage = 1;\r\n    var totalPages = 1;\r\n\r\n    if (!grid) {\r\n        return;\r\n    }\r\n\r\n    function escapeHtml(value) {\r\n        var div = document.createElement('div');\r\n        div.textContent = value || '';\r\n        return div.innerHTML;\r\n    }\r\n\r\n    function stripHtml(html) {\r\n        var temporaryElement = document.createElement('div');\r\n        temporaryElement.innerHTML = html || '';\r\n\r\n        return (\r\n            temporaryElement.textContent ||\r\n            temporaryElement.innerText ||\r\n            ''\r\n        );\r\n    }\r\n\r\n    function formatDate(dateString) {\r\n        var date = new Date(dateString);\r\n\r\n        if (isNaN(date.getTime())) {\r\n            return '';\r\n        }\r\n\r\n        return date.toLocaleDateString('pt-BR', {\r\n            day: '2-digit',\r\n            month: 'long',\r\n            year: 'numeric'\r\n        });\r\n    }\r\n\r\n    function getFeaturedImage(post) {\r\n        try {\r\n            var media = post._embedded['wp:featuredmedia'][0];\r\n            var sizes = media.media_details\r\n                ? media.media_details.sizes\r\n                : null;\r\n\r\n            if (sizes && sizes.large) {\r\n                return sizes.large.source_url;\r\n            }\r\n\r\n            if (sizes && sizes.medium_large) {\r\n                return sizes.medium_large.source_url;\r\n            }\r\n\r\n            if (sizes && sizes.medium) {\r\n                return sizes.medium.source_url;\r\n            }\r\n\r\n            return media.source_url || '';\r\n        } catch (error) {\r\n            return '';\r\n        }\r\n    }\r\n\r\n    function getFeaturedImageAlt(post) {\r\n        try {\r\n            var media = post._embedded['wp:featuredmedia'][0];\r\n\r\n            return (\r\n                media.alt_text ||\r\n                stripHtml(post.title.rendered) ||\r\n                'Artigo do ITC Vertebral Campo Grande'\r\n            );\r\n        } catch (error) {\r\n            return (\r\n                stripHtml(post.title.rendered) ||\r\n                'Artigo do ITC Vertebral Campo Grande'\r\n            );\r\n        }\r\n    }\r\n\r\n    function getCategoryName(post) {\r\n        try {\r\n            var termGroups = post._embedded['wp:term'];\r\n\r\n            if (!termGroups || !termGroups.length) {\r\n                return '';\r\n            }\r\n\r\n            for (var i = 0; i < termGroups.length; i++) {\r\n                if (termGroups[i] && termGroups[i].length) {\r\n                    return termGroups[i][0].name || '';\r\n                }\r\n            }\r\n\r\n            return '';\r\n        } catch (error) {\r\n            return '';\r\n        }\r\n    }\r\n\r\n    function getExcerpt(post) {\r\n        var excerpt = stripHtml(\r\n            post.excerpt && post.excerpt.rendered\r\n                ? post.excerpt.rendered\r\n                : ''\r\n        ).trim();\r\n\r\n        if (!excerpt) {\r\n            return '';\r\n        }\r\n\r\n        if (excerpt.length > 170) {\r\n            return excerpt.substring(0, 167).trim() + '...';\r\n        }\r\n\r\n        return excerpt;\r\n    }\r\n\r\n    function resetStates() {\r\n        emptyState.hidden = true;\r\n        errorState.hidden = true;\r\n    }\r\n\r\n    function renderSkeletons(count) {\r\n        var html = '';\r\n\r\n        for (var i = 0; i < count; i++) {\r\n            html +=\r\n                '<article class=\"blog-post-card blog-post-skeleton\">' +\r\n                    '<div class=\"blog-post-thumb\"><\/div>' +\r\n                    '<div class=\"blog-post-body\">' +\r\n                        '<div class=\"skeleton-line skeleton-line-tag\"><\/div>' +\r\n                        '<div class=\"skeleton-line skeleton-line-title\"><\/div>' +\r\n                        '<div class=\"skeleton-line skeleton-line-title short\"><\/div>' +\r\n                        '<div class=\"skeleton-line skeleton-line-text\"><\/div>' +\r\n                        '<div class=\"skeleton-line skeleton-line-text short\"><\/div>' +\r\n                    '<\/div>' +\r\n                '<\/article>';\r\n        }\r\n\r\n        grid.innerHTML = html;\r\n    }\r\n\r\n    function createPostCard(post) {\r\n        var image = getFeaturedImage(post);\r\n        var imageAlt = getFeaturedImageAlt(post);\r\n        var category = getCategoryName(post);\r\n        var excerpt = getExcerpt(post);\r\n        var title = stripHtml(post.title.rendered);\r\n        var date = formatDate(post.date);\r\n        var postUrl = post.link || '#';\r\n\r\n        var imageHtml = image\r\n            ? (\r\n                '<img ' +\r\n                    'src=\"' + escapeHtml(image) + '\" ' +\r\n                    'alt=\"' + escapeHtml(imageAlt) + '\" ' +\r\n                    'loading=\"lazy\" ' +\r\n                    'decoding=\"async\">' \r\n            )\r\n            : (\r\n                '<div class=\"blog-post-thumb-fallback\">' +\r\n                    '<span>ITC Vertebral<\/span>' +\r\n                '<\/div>'\r\n            );\r\n\r\n        return (\r\n            '<article class=\"blog-post-card\">' +\r\n\r\n                '<a ' +\r\n                    'class=\"blog-post-thumb\" ' +\r\n                    'href=\"' + escapeHtml(postUrl) + '\" ' +\r\n                    'aria-label=\"Ler artigo: ' + escapeHtml(title) + '\">' +\r\n\r\n                    imageHtml +\r\n\r\n                '<\/a>' +\r\n\r\n                '<div class=\"blog-post-body\">' +\r\n\r\n                    (\r\n                        category\r\n                            ? (\r\n                                '<span class=\"blog-post-tag\">' +\r\n                                    escapeHtml(category) +\r\n                                '<\/span>'\r\n                            )\r\n                            : ''\r\n                    ) +\r\n\r\n                    '<h2 class=\"blog-post-title\">' +\r\n                        '<a href=\"' + escapeHtml(postUrl) + '\">' +\r\n                            escapeHtml(title) +\r\n                        '<\/a>' +\r\n                    '<\/h2>' +\r\n\r\n                    (\r\n                        excerpt\r\n                            ? (\r\n                                '<p class=\"blog-post-excerpt\">' +\r\n                                    escapeHtml(excerpt) +\r\n                                '<\/p>'\r\n                            )\r\n                            : ''\r\n                    ) +\r\n\r\n                    '<div class=\"blog-post-meta\">' +\r\n\r\n                        (\r\n                            date\r\n                                ? '<span class=\"blog-post-date\">' + escapeHtml(date) + '<\/span>'\r\n                                : ''\r\n                        ) +\r\n\r\n                        '<a class=\"blog-post-arrow\" href=\"' + escapeHtml(postUrl) + '\">' +\r\n                            'Ler artigo <span aria-hidden=\"true\">\u2192<\/span>' +\r\n                        '<\/a>' +\r\n\r\n                    '<\/div>' +\r\n\r\n                '<\/div>' +\r\n\r\n            '<\/article>'\r\n        );\r\n    }\r\n\r\n    function renderPosts(posts, append) {\r\n        var html = '';\r\n\r\n        posts.forEach(function (post) {\r\n            html += createPostCard(post);\r\n        });\r\n\r\n        if (append) {\r\n            grid.insertAdjacentHTML('beforeend', html);\r\n        } else {\r\n            grid.innerHTML = html;\r\n        }\r\n    }\r\n\r\n    function updateLoadMoreButton() {\r\n        if (currentPage >= totalPages) {\r\n            loadMoreBtn.hidden = true;\r\n            return;\r\n        }\r\n\r\n        loadMoreBtn.hidden = false;\r\n        loadMoreBtn.disabled = false;\r\n        loadMoreBtn.textContent = 'Carregar mais artigos';\r\n    }\r\n\r\n    function loadPosts(page, append) {\r\n        resetStates();\r\n        grid.setAttribute('aria-busy', 'true');\r\n\r\n        if (!append) {\r\n            renderSkeletons(6);\r\n        } else {\r\n            loadMoreBtn.disabled = true;\r\n            loadMoreBtn.textContent = 'Carregando...';\r\n        }\r\n\r\n        var url =\r\n            API_URL +\r\n            '?per_page=' + POSTS_PER_PAGE +\r\n            '&page=' + page +\r\n            '&status=publish' +\r\n            '&orderby=date' +\r\n            '&order=desc' +\r\n            '&_embed=1';\r\n\r\n        fetch(url, {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application\/json'\r\n            }\r\n        })\r\n            .then(function (response) {\r\n                if (!response.ok) {\r\n                    throw new Error(\r\n                        'Erro na API do WordPress. Status: ' + response.status\r\n                    );\r\n                }\r\n\r\n                totalPages = parseInt(\r\n                    response.headers.get('X-WP-TotalPages') || '1',\r\n                    10\r\n                );\r\n\r\n                return response.json();\r\n            })\r\n            .then(function (posts) {\r\n                if (!Array.isArray(posts)) {\r\n                    throw new Error('A resposta da API n\u00e3o \u00e9 uma lista de artigos.');\r\n                }\r\n\r\n                if (!posts.length && !append) {\r\n                    grid.innerHTML = '';\r\n                    emptyState.hidden = false;\r\n                    loadMoreBtn.hidden = true;\r\n                    return;\r\n                }\r\n\r\n                renderPosts(posts, append);\r\n\r\n                currentPage = page;\r\n                updateLoadMoreButton();\r\n            })\r\n            .catch(function (error) {\r\n                console.error('Erro ao carregar artigos:', error);\r\n\r\n                if (!append) {\r\n                    grid.innerHTML = '';\r\n                    errorState.hidden = false;\r\n                    loadMoreBtn.hidden = true;\r\n                } else {\r\n                    loadMoreBtn.disabled = false;\r\n                    loadMoreBtn.textContent = 'Tentar novamente';\r\n                }\r\n            })\r\n            .finally(function () {\r\n                grid.setAttribute('aria-busy', 'false');\r\n            });\r\n    }\r\n\r\n    loadMoreBtn.addEventListener('click', function () {\r\n        loadPosts(currentPage + 1, true);\r\n    });\r\n\r\n    loadPosts(1, false);\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>In\u00edcio \/ Blog ITC Vertebral Campo Grande Conte\u00fados sobre sa\u00fade da coluna Informa\u00e7\u00f5es claras sobre dores na coluna, sintomas e possibilidades de tratamento, com revis\u00e3o t\u00e9cnica especializada. Explorar conte\u00fados \u2193 Nenhum artigo publicado ainda. Volte em breve. N\u00e3o foi poss\u00edvel carregar os artigos agora. Tente novamente em instantes. Carregar mais artigos<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-7","page","type-page","status-publish","hentry"],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/itcvertebralcg.com.br\/blog\/wp-json\/wp\/v2\/pages\/7","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itcvertebralcg.com.br\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/itcvertebralcg.com.br\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/itcvertebralcg.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/itcvertebralcg.com.br\/blog\/wp-json\/wp\/v2\/comments?post=7"}],"version-history":[{"count":25,"href":"https:\/\/itcvertebralcg.com.br\/blog\/wp-json\/wp\/v2\/pages\/7\/revisions"}],"predecessor-version":[{"id":98,"href":"https:\/\/itcvertebralcg.com.br\/blog\/wp-json\/wp\/v2\/pages\/7\/revisions\/98"}],"wp:attachment":[{"href":"https:\/\/itcvertebralcg.com.br\/blog\/wp-json\/wp\/v2\/media?parent=7"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}