Planos de saúde e odonto para você, sua família ou sua empresa
Planos de Saúde Individuais
Planos de Saúde Individuais
Ideal para quem busca assistência médica integral com excelente custo/benefício e ampla rede de atendimento para cuidar da saúde.
Conheça
Planos de Saúde Empresariais
Planos de Saúde Empresariais
Oferecemos soluções para pequenas, médias e grandes empresas que buscam assistência de qualidade e acolhimento para seus colaboradores. Contamos com opções de cobertura local, regional e nacional.
Conheça
Planos Odontológicos Empresariais
Planos Odontológicos Empresariais
Atendemos empresas de todos os portes que buscam planos odontológicos para promover a saúde bucal de qualidade os seus colaboradores. Contamos com ampla rede credenciada com mais de 22 mil dentistas disponíveis.
Conheça
Planos Odontológicos Individuais
Planos Odontológicos Individuais
Ideal para quem busca assistência médica integral com excelente custo/benefício e ampla rede de atendimento para cuidar da saúde bucal.
Conheça
Planos de Saúde Individuais
Continuar lendo
Planos de Saúde Empresariais
Continuar lendo
Planos Odontológicos Empresariais
Continuar lendo
Planos Odontológicos Individuais
Continuar lendoConfira nossas vantagens
Dicas de saúde para você!
The following has evaluated to null or missing:
==> titulo0 [in template "20097#20123#5835504" at line 77, column 82]
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----
----
FTL stack trace ("~" means nesting-related):
- Failed at: ${titulo0..69?lower_case?replace(" ",... [in template "20097#20123#5835504" at line 77, column 80]
----
1<#if themeDisplay.getLocale() == "pt_BR">
2<#if entries?has_content>
3 <div class="bg_fundo_onda_dicas dicasPraVoce">
4 <div class="container">
5 <div class="row">
6 <#assign contNews=0>
7 <#list entries as curEntry>
8 <#assign
9 assetRenderer = curEntry.getAssetRenderer()
10 serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()
11 dlAppLocalServiceUtil = staticUtil["com.liferay.document.library.kernel.service.DLAppLocalServiceUtil"]
12 dlUtil = staticUtil["com.liferay.document.library.kernel.util.DLUtil"]
13 themeDisplay = serviceContext.getThemeDisplay()
14 link = assetRenderer.getURLViewInContext(renderRequest, renderResponse, '')
15 >
16 <#assign docXml = saxReaderUtil.read(assetRenderer.getArticle().getContent()) />
17 <#assign nomeLinkFeed = docXml.valueOf("//dynamic-element[@name='nomeLink']/dynamic-content/text()") />
18 <#assign
19 <#--labels = docXml.selectNodes("//dynamic-element[@name='label']/dynamic-content/text()")-->
20 <#-- descricao = docXml.valueOf("//dynamic-element[@name='descricao']/dynamic-content/text()") -->
21 titulo = docXml.valueOf("//dynamic-element[@name='titulo']/dynamic-content/text()")
22 url = docXml.valueOf("//dynamic-element[@name='url']/dynamic-content/text()")
23 imagemCard = docXml.valueOf("//dynamic-element[@name='imagem']/dynamic-content/text()")
24 >
25 <#assign originalLocale = locale>
26 <#setting locale = 'pt_BR'>
27 <#assign
28 assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")
29 labels=""
30 assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")
31 categories = assetCategoryLocalService.getCategories(curEntry.classNameId,curEntry.classPK)
32 vocabularyFlag = 0
33 >
34
35 <#if categories?has_content>
36 <#list categories as categoryName>
37 <#if (categoryName.getName() != "Blog da saúde")>
38 <#assign
39 labels = labels +categoryName.getName()+','
40 vocabulary = assetVocabularyLocalService.getVocabulary(categoryName.getVocabularyId())
41 >
42 </#if>
43 </#list>
44 <#else>
45 <#assign vocabularyFlag = 1>
46 </#if>
47
48 <#if vocabularyFlag == 0 && contNews != 3>
49 <#assign contNews = contNews + 1>
50 <#assign description="" />
51 <#if imagemCard?has_content>
52 <#assign
53 imagem = imagemCard?eval
54 imagemUuid = imagem.uuid
55 groupId = imagem.groupId
56 dlFile = dlAppLocalServiceUtil.getFileEntryByUuidAndGroupId(imagemUuid,groupId?number)
57 imgUrl = dlUtil.getPreviewURL(dlFile, dlFile.getFileVersion(),themeDisplay,'')
58 >
59 <#assign description = imagem.alt?string!"">
60 </#if>
61 <#if description=="">
62 <#assign description = "sem descrição textual">
63 </#if>
64
65 <div class="col-12 col-lg-4 campoWrapper">
66 <a class="gtm-botao-card-dicas-atencaoSemConteudo" href="${link}">
67 <img loading=lazy alt="${description}" class="img-fluid widget_img_dicas_destaque" src="${imgUrl}"/>
68 </a>
69 <div class="campotext">
70 <div class="categorias">
71 <#list labels?split(",", "r") as label>
72 <p class="label-category"><a class="gtm-botao-card-dicas-${label?lower_case?replace(' ', '')?replace('á', 'a')?replace('é', 'e')?replace('í', 'i')?replace('ó', 'o')?replace('ú', 'u')?replace('[^a-zA-Z0-9]', '')?truncate(30, '')}" href="/saude/blog-da-saude?category=${label}">${label}</a></p>
73 </#list>
74 </div>
75 <div class="tituloCard">
76 <#if (titulo?length>69)>
77 <h3><a class="gtm-botao-card-dicas-${titulo0..69?lower_case?replace(' ', '')?replace('á', 'a')?replace('é', 'e')?replace('í', 'i')?replace('ó', 'o')?replace('ú', 'u')?replace('[^a-zA-Z0-9]', '')?truncate(30, '')}" href="${link}">${titulo[0..69]}</a></h3>
78 <#else>
79 <h3><a class="gtm-botao-card-dicas-${titulo?lower_case?replace(' ', '')?replace('á', 'a')?replace('é', 'e')?replace('í', 'i')?replace('ó', 'o')?replace('ú', 'u')?replace('[^a-zA-Z0-9]', '')?truncate(30, '')}" href="${link}">${titulo}</a></h3>
80 </#if>
81 </div>
82 <a class="gtm-botao-card-dicas-atencaoSemConteudo" title="clique para continuar lendo ${titulo}" href="${link}">
83 <span>
84 <svg height="20" viewbox="0 0 20 20" width="20" xmlns="http://www.w3.org/2000/svg">
85 <title></title>
86 <g data-name="Grupo 1585" transform="translate(-412 281) rotate(-90)">
87 <rect data-name="Retângulo 356" fill="none" height="20" transform="translate(261 412)" width="20"></rect>
88 <path d="M171.476,425.028a.748.748,0,0,1-.559-.25l-5.724-6.4-6.177,6.418a.75.75,0,1,1-1.081-1.04l6.737-7a.75.75,0,0,1,1.1.02l6.263,7a.75.75,0,0,1-.559,1.25Z" data-name="Caminho 382" fill="#fff" transform="translate(435.976 843.778) rotate(180)"></path>
89 </g>
90 </svg>
91 </span>
92 <#if nomeLinkFeed =="">
93 Continuar Lendo
94 <#else>
95 ${nomeLinkFeed}
96 </#if>
97 </a>
98 </div>
99 </div>
100 </#if>
101
102 <#if contNews == 3>
103 <#break>
104 </#if>
105 </#list>
106 </div>
107 </div>
108 </div>
109 </#if>
110<style>
111
112 .dicasPraVoce .dicas_button{
113 background-color: transparent;
114 outline: 1px solid #F6C198;
115 border: 1px solid #e7751c;
116 border-radius: 8px;
117 color: #e7751c !important;
118 width: 200px;
119 font-size: 16px;
120 }
121
122 .dicasPraVoce .button_acesso_dicas{
123 text-align: center;
124 margin-bottom:0px;
125 padding: 60px 0px 75px;
126 font-size: 16px;
127 font-family:"oxygen-bold";
128 }
129
130 .dicasPraVoce .dicas_button:active,
131 .dicasPraVoce .dicas_button:focus{
132 color: #F29F5E;
133 outline: 1px solid #F6C198;
134 border: 1px solid #F29F5E;
135 background-color: transparent;
136
137 }
138 .dicasPraVoce .dicas_button:hover{
139 color: #fff !important;
140 outline: 1px solid #ec6e0c;
141 border: 1px solid #ec6e0c;
142 background-color: #ec6e0c;
143 }
144
145 .dicasPraVoce .title_dicas_sand {
146 text-align: left;
147 color: #1a171b;
148 font-family: "oxygen-bold";
149 }
150
151 .dicasPraVoce .title_dicas_sand h2 {
152 font-size: 36px;
153 }
154
155 .dicasPraVoce .campoWrapper {
156 display:flex;
157 flex-direction:column;
158 margin-top: 50px;
159 }
160
161 .dicasPraVoce .campoWrapper img {
162 display: block;
163 margin: auto;
164 box-shadow: rgb(0 0 0 / 35%) 0px 5px 15px;
165 border-radius: 8px 8px 0 0;
166 }
167 .dicasPraVoce .campoWrapper .campotext {
168 display: flex;
169 flex-direction: column;
170 flex:1;
171 row-gap: 26px;
172 background-color: var(--primary);
173 padding: 30px;
174 opacity: 0.95;
175 margin: auto;
176 width: 340px;
177 min-height: 247.6px;
178 border: 1px solid transparent;
179 margin-top: -0.5px !important;
180 box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
181 border-radius: 0 0 8px 8px;
182 }
183 .dicasPraVoce .campoWrapper .campotext .categorias{
184 display: flex;
185 flex-wrap: wrap;
186 gap:10px;
187 flex:1;
188 }
189 .dicasPraVoce .campoWrapper .campotext .categorias p.label-category{
190 margin:0;
191 }
192 .dicasPraVoce img.widget_img_dicas_destaque{
193 width: 341.49px;
194 height: 157.34px;
195 object-fit: cover;
196 }
197
198 .dicasPraVoce p.label-category{
199 margin-bottom: 0.20rem;
200 }
201 .dicasPraVoce .campoWrapper .campotext .tituloCard{
202 margin-top: 0;
203 min-height: 90px;
204 height:100%;
205 flex:1;
206 }
207 /*
208 .campotext h3{
209 margin-top: 1.5rem;
210 min-height: 100px;
211 }*/
212 .dicasPraVoce .campoWrapper .campotext>a {
213 display: inline-block !important;
214 margin-top:auto;
215 }
216
217 .dicasPraVoce .campoWrapper .campotext p>a {
218 color: #685c5c;
219 display: block;
220 padding: 2px 7px;
221 border-radius: 10px;
222 font-size: 0.8rem;
223 background-color: white;
224 width: auto;
225 float: left;
226 font-family: "oxygen-bold";
227 }
228
229 .dicasPraVoce div.campotext h3>a {
230 text-decoration: none;
231 color: white;
232 font-family:"oxygen-bold";
233 font-size: 20px;
234 min-height:4.5rem;
235 }
236 .dicasPraVoce .campoWrapper .campotext a,
237 .dicasPraVoce .campoWrapper .campotext span {
238 color: white;
239 float: left;
240 font-size: 15px;
241 }
242 .dicasPraVoce .campoWrapper .campotext h3+a {
243 text-decoration: underline;
244 display: block;
245 float: left;
246 font-family: "oxygen-bold";
247 }
248
249 .dicasPraVoce .campoWrapper .campotext ha {
250 text-decoration: underline;
251 font-size: 15px;
252 display: block;
253 float: left;
254 font-family: "oxygen-bold";
255 padding-top: 15px;
256 }
257
258 .dicasPraVoce .campoWrapper .campotext span {
259 display: inline-block;
260 padding-right: 10px;
261 text-decoration: none !important;
262 float: left;
263 margin-top:-2px;
264 }
265
266 .dicasPraVoce .title_dicas_sand h2{
267 padding-top: 70px !important;
268 }
269
270 @media (max-width: 992px) {
271 .dicasPraVoce .campoWrapper .campotext {
272 width: 262px;
273 }
274 .dicasPraVoce .campoWrapper div.campotext h3>a{
275 margin-bottom:5px;
276 }
277 .dicasPraVoce .title_dicas_sand h2 {
278 font-size: 24px;
279 padding-top: 5px !important;
280 }
281
282 .dicasPraVoce .btn_Lermais2 {
283 padding-bottom: 40px;
284 }
285 .dicasPraVoce .button_acesso_dicas{
286 padding-bottom: 0;
287 }
288
289 .dicasPraVoce img.widget_img_dicas_destaque{
290 width: 262px;
291 }
292 }
293
294 @media (min-width: 992px) and (max-width: 1199px) {
295 .dicasPraVoce .campoWrapper .campotext {
296 width: 290px;
297 height: 188px;
298 top: -185px;
299 }
300 .dicasPraVoce .campoWrapper .campotext a{
301 padding-top: 10px;
302 }
303 .dicasPraVoce .campoWrapper .campotext h3 {
304 font-size: 18px;
305 }
306 }
307
308 @media (max-width: 768px) {
309 .dicasPraVoce .title_dicas_sand h2 {
310 font-size: 24px;
311 }
312 }
313
314 @media (max-width: 380px){
315 .dicasPraVoce .campoWrapper .campotext{
316 width: 100%;
317 }
318 .dicasPraVoce img.widget_img_dicas_destaque{
319 width: 100%;
320 }
321
322 }
323 </style>
324</#if>
Notícias em Destaque
02 de fevereiro de 2026
Hapvida NotreDame fortalece rede própria com inauguração de novas unid
28 de janeiro de 2026
Hapvida amplia capacidade assistencial com a habilitação do Hospital S
26 de janeiro de 2026
Isenção do IR em 2026: mais renda para investir na sua saúde e da sua
Informações regulatórias
Encontre todas as resoluções normativas e alterações estabelecidas pela Agência Nacional de Saúde Suplementar (ANS) em nossa página exclusiva.