Imprimir
Com Parkinson e câncer, ela foi dispensada junto com outros aposentados.
Resumo
A 2ª Turma do TST confirmou que a dispensa de uma empregada aposentada pela CAR, empresa pública baiana, foi discriminatória e caracterizou etarismo.
A trabalhadora, que tinha Parkinson e câncer, foi dispensada com mais colegas, também aposentados por tempo de contribuição, e faleceu durante o processo judicial.
A empresa foi condenada a pagar indenização por danos morais e salários retroativos ao espólio da trabalhadora, porque violou normas constitucionais e legais que proíbem discriminação por idade.
12/8/2025 – A Segunda Turma do Tribunal Superior do Trabalho rejeitou exame de recurso da Companhia de Desenvolvimento e Ação Regional (CAR), vinculada ao Estado da Bahia, contra decisão que considerou que houve discriminação por idade, ou seja, etarismo, na dispensa, em 2016, de uma empregada pública concursada, por ela já ser aposentada. Para o colegiado, a decisão do Tribunal Regional do Trabalho da 5ª Região (BA) seguiu a jurisprudência do TST.
Dispensa
Na ação que ajuizou em 2018, a empregada, admitida por concurso público em 22 de julho de 1985 e que faleceu no decorrer do processo, contou que foi despedida, sem justa causa, por “motivos operacionais” em 27 de julho de 2016. Ela pediu a nulidade da dispensa, afirmando que o ato foi arbitrário, abusivo e discriminatório, pois a empregadora teria despedido, sem motivo, mais de dez empregados aposentados por tempo de contribuição, inclusive sem negociação sindical.
Doença
Além disso, relatou que a CAR tinha conhecimento de que ela sofria de doenças graves, especificamente Mal de Parkinson e neoplasia maligna (câncer), sendo este mais um traço discriminatório da rescisão, porque ela deixou, assim, de contar com o plano de saúde, necessário para o seu tratamento, custeado pela empregadora.
Em sua defesa, a companhia baiana afirmou que não era obrigada a justificar a dispensa, mas apontou que não fora, de todo, injustificada, alegando como motivo a crise financeira e a necessidade de adequação do orçamento do governo do Estado da Bahia à Lei de Responsabilidade Fiscal (Lei 9.784/99).
O juízo da 16ª Vara do Trabalho de Salvador (BA), em 2019, indeferiu os pedidos de nulidade da rescisão e de reintegração da trabalhadora, considerando que a dispensa foi motivada por questões financeiras, para redução das despesas da CAR. Ao examinar o recurso ordinário do espólio da trabalhadora, já falecida à época do julgamento, em 2024, o TRT da 5ª Região (BA) reformou a sentença.
Dispensa discriminatória
Para o TRT, ao contrário do que concluiu o juízo de primeiro grau, a dispensa foi discriminatória. O Tribunal Regional apontou que a dispensa foi feita sob motivo genérico, correspondente a “questões operacionais”. Destacou que a crise financeira alegada e o temor quanto à inobservância dos limites derivados da Lei de Responsabilidade Fiscal não foram comprovados.
Ressaltou que a empregadora não demonstrou que, antes da despedida da empregada pública concursada, tenha atendido à imposição constitucional de que, em caso de necessária redução de despesas, os cortes sejam realizados, inicialmente, entre os ocupantes de cargos comissionados, não submetidos a concurso público. Também entendeu que a CAR não atendeu ao critério de que a “motivação deve consistir em fundamento razoável”.
Etarismo
Por último, destacou que o ato da dispensa foi, “confessadamente”, discriminatório, pois houve despedida coletiva, realizada apenas em relação a empregados já aposentados, o que, conforme o TRT, caracterizou etarismo. Afinal, a própria empregadora afirmou que “o critério utilizado pela CAR foi de desligar pessoas que dispunham de outra fonte renda, aposentadoria, em detrimento de pessoas que não dispunham de qualquer fonte de renda para a sua subsistência”.
O TRT, então, condenou a CAR a pagar a remuneração do período da despedida ao falecimento da empregada e a indenização por danos morais equivalente a quinze vezes o último salário da trabalhadora. No recurso ao TST, a CAR alegou que a dispensa foi legítima e que a decisão regional confrontou dispositivos constitucionais que privilegiam a livre iniciativa e a liberdade da atuação empresarial e aqueles que consagram a proteção à propriedade e a ordem econômica constitucional.
TST
Segundo a relatora do recurso de revista, ministra Liana Chaib, “é juridicamente questionável e ilícita” a validade do ato administrativo que demitiu a empregada com base no fato de já estar aposentada, “critério utilizado para a escolha trabalhadora para a redução do quadro de funcionários”. A seu ver, pela forma que os fatos se encadearam, “ vislumbra-se uma dispensa como forma de descartar do quadro funcional uma trabalhadora com idade mais avançada e com maior custo para a empresa pública, como método para redução de suas despesas”.
Violações legais
A relatora destacou que a dignidade da pessoa humana, fundamento da República, inserido na Constituição, não foi observada no caso, pois a dispensa da trabalhadora ocorreu por conta de fatores alicerçados em práticas discriminatórias de etarismo. Da Constituição também ela citou o artigo 7º, inciso XXX, que garante a proteção contra discriminações por idade especificamente nas relações de trabalho urbanas e rurais. A nível internacional, apontou a convenção da Organização Internacional do Trabalho que regulamenta a proteção do trabalho frente a diversas discriminações. No âmbito infraconstitucional, destacou a proibição de que a manutenção de um vínculo de trabalho seja cerceada com base na idade do trabalhador, conforme a Lei 9.029/95.
Na avaliação da ministra Liana Chaib, o critério da aposentadoria implica, por sua natureza, que este trabalhador tenha uma idade superior aos demais, por já ter implementado os requisitos de anos de trabalho e de contribuição (condições para a aposentadoria). Logo, “sua escolha para critério de demissão com fins de reestruturar o quadro de funcionários possui claro viés discriminatório, vedado expressamente pela Lei 9.029/95”.
Com base em acervo doutrinário, sociológico, filosófico e jurídico de nível internacional e constitucional, a relatora frisou que a jurisprudência do TST é de que “a demissão fundada em critério que tem relação com a idade do trabalhador, mais especificamente em virtude de condição para aposentadoria, tem viés discriminatório e, por isso, é nula de pleno direito”. Assim, segundo Chaib, “o Tribunal Regional, ao reputar discriminatório o método de eleição dos empregados a serem dispensados por estarem aposentados”, decidiu em sintonia com a jurisprudência do TST.
(Lourdes Tavares/GS)
Processo: RRAg 0000491-66.2018.5.05.0016
Receba nossos conteúdos
Quer receber as notícias do TST em seu email? Assine a nossa newsletter.
Se quiser receber as notícias em seu WhatsApp, faça parte da comunidade do TST no aplicativo. Atenção: ao ingressar, os demais membros não terão acesso ao seu contato. Os envios de conteúdo são realizados uma vez por dia, em dias úteis.
Esta matéria é meramente informativa.
Permitida a reprodução mediante citação da fonte.
Secretaria de Comunicação Social
Tribunal Superior do Trabalho
Tel. (61) 3043-4907
secom@tst.jus.br
×
1 / 1
‹
›
Mais detalhes
Número de visualizações
0
Visualizações
// Objeto para armazenar dados das imagens por grupo
const imageGalleries = {};
let currentModalIndex = 0;
let currentGalleryGroup = 0;
// Coletar dados das imagens do DOM por grupo, SEMPRE usando a ordem atual do DOM
function initGalleryCustom() {
// Limpar dados anteriores
Object.keys(imageGalleries).forEach(key => delete imageGalleries[key]);
console.log(‘Inicializando galerias baseado na ordem atual do DOM…’);
// SEMPRE usar a ordem atual do DOM, ignorar scripts JSON após reordenação
const galleryContainers = document.querySelectorAll(‘.gallery-container-custom’);
galleryContainers.forEach((container) => {
const groupId = container.getAttribute(‘data-gallery-group’);
const thumbnails = container.querySelectorAll(‘.thumbnail’);
imageGalleries[groupId] = [];
// Coletar imagens na ordem atual do DOM
thumbnails.forEach((img, index) => {
imageGalleries[groupId].push({
src: img.src,
alt: img.alt,
fileEntryId: img.getAttribute(‘data-fileentryid’),
imageIndex: index, // Usar índice atual do DOM
originalOrder: parseInt(img.getAttribute(‘data-original-order’)) || index
});
});
console.log(‘Grupo ‘ + groupId + ‘ carregado com ‘ + imageGalleries[groupId].length + ‘ imagens (ordem DOM)’);
});
console.log(‘Galerias inicializadas:’, imageGalleries);
// Atualizar contadores nos títulos
updateGalleryTitles();
// Recriar os atributos onclick com os índices corretos
updateOnClickHandlers();
}
// Atualizar os handlers onclick para refletir a ordem atual
function updateOnClickHandlers() {
const galleryContainers = document.querySelectorAll(‘.gallery-container-custom’);
galleryContainers.forEach((container) => {
const groupId = container.getAttribute(‘data-gallery-group’);
const thumbnails = container.querySelectorAll(‘.thumbnail’);
thumbnails.forEach((img, index) => {
// Atualizar o data-image-index para refletir a posição atual
img.setAttribute(‘data-image-index’, index);
// Remover o onclick antigo e adicionar o novo
img.onclick = null;
img.onclick = function() {
openModalCustom(index, groupId);
};
console.log(‘Thumbnail ‘ + index + ‘ do grupo ‘ + groupId + ‘ atualizado’);
});
});
}
// Método fallback – REMOVIDO pois agora sempre usamos DOM
// function fallbackLoadGallery(groupId) { … }
// Atualizar títulos das galerias com contadores corretos
function updateGalleryTitles() {
Object.keys(imageGalleries).forEach(groupId => {
const container = document.querySelector(‘.gallery-container-custom[data-gallery-group=”‘ + groupId + ‘”]’);
if (container) {
const title = container.querySelector(‘.gallery-header h3’);
const imageCount = imageGalleries[groupId].length;
if (title && imageCount > 0) {
title.textContent = ‘Mais imagens (‘ + imageCount + ‘)’;
}
}
});
}
// Função para reinicializar quando a ordem dos campos muda
function handleFieldReorder() {
console.log(‘Reordenação detectada, reinicializando galerias…’);
// Fechar modal se estiver aberto
const modal = document.getElementById(‘imageModalCustom’);
if (modal && modal.style.display === ‘block’) {
closeModalCustom();
}
// Atualizar IDs e reinicializar
updateGroupIds();
initGalleryCustom();
}
// Atualizar modal com nova imagem
function updateModalImage() {
const modalImage = document.getElementById(‘modalImageCustom’);
const modalDescription = document.getElementById(‘modalDescriptionCustom’);
const modalCounter = document.getElementById(‘modalCounterCustom’);
const modalPrev = document.getElementById(‘modalPrevCustom’);
const modalNext = document.getElementById(‘modalNextCustom’);
const currentGallery = imageGalleries[currentGalleryGroup];
if (currentGallery && currentGallery[currentModalIndex]) {
const image = currentGallery[currentModalIndex];
modalImage.src = image.src;
modalImage.alt = image.alt;
modalDescription.textContent = image.alt;
modalCounter.textContent = (currentModalIndex + 1) + ‘ / ‘ + currentGallery.length;
// Atualizar estado dos botões
modalPrev.disabled = (currentModalIndex === 0);
modalNext.disabled = (currentModalIndex === currentGallery.length – 1);
console.log(‘Modal atualizado – Grupo:’, currentGalleryGroup, ‘Índice:’, currentModalIndex, ‘Imagem:’, image.src);
}
}
// Abrir modal
function openModalCustom(index, galleryGroup) {
const modal = document.getElementById(‘imageModalCustom’);
currentGalleryGroup = galleryGroup;
currentModalIndex = index;
console.log(‘Abrindo modal – Grupo:’, galleryGroup, ‘Índice:’, index);
if (imageGalleries[galleryGroup] && imageGalleries[galleryGroup][index]) {
updateModalImage();
modal.style.display = ‘block’;
document.body.style.overflow = ‘hidden’;
} else {
console.error(‘Imagem não encontrada:’, galleryGroup, index, imageGalleries);
}
}
// Próxima imagem no modal
function nextImageModal() {
const currentGallery = imageGalleries[currentGalleryGroup];
if (currentGallery && currentModalIndex 0) {
currentModalIndex–;
updateModalImage();
}
}
// Fechar modal
function closeModalCustom() {
const modal = document.getElementById(‘imageModalCustom’);
modal.style.display = ‘none’;
document.body.style.overflow = ‘auto’;
}
// Event listeners
document.addEventListener(‘DOMContentLoaded’, function() {
// Inicializar galeria
setTimeout(initGalleryCustom, 100);
// Fechar modal clicando fora da imagem
const modal = document.getElementById(‘imageModalCustom’);
if (modal) {
modal.addEventListener(‘click’, function(e) {
if (e.target === modal) {
closeModalCustom();
}
});
}
});
// Escutar eventos de reordenação dos campos repetíveis
document.addEventListener(‘repeatableFieldReordered’, function(e) {
console.log(‘Campo reordenado detectado:’, e.detail);
// Aguardar um pouco para garantir que o DOM foi atualizado
setTimeout(function() {
console.log(‘Detectando e corrigindo duplicação de conteúdo…’);
// Primeiro, detectar e corrigir duplicação de matérias
fixDuplicatedContent();
// Depois atualizar galerias
updateGroupIds();
initGalleryCustom();
// Se o modal estiver aberto, fechar para evitar inconsistências
const modal = document.getElementById(‘imageModalCustom’);
if (modal && modal.style.display === ‘block’) {
closeModalCustom();
console.log(‘Modal fechado devido à reordenação’);
}
}, 200);
});
// Escutar eventos de reordenação dos campos repetíveis
document.addEventListener(‘repeatableFieldReordered’, function(e) {
console.log(‘Campo reordenado detectado:’, e.detail);
handleFieldReorder();
});
// Escutar evento de mudança de ordem do conteúdo
document.addEventListener(‘contentOrderChanged’, function(e) {
console.log(‘Ordem do conteúdo alterada:’, e.detail);
handleContentOrderChange(e.detail);
});
// Lidar com mudança na ordem do conteúdo
function handleContentOrderChange(detail) {
console.log(‘Processando mudança de ordem do conteúdo…’);
// Fechar modal se estiver aberto
const modal = document.getElementById(‘imageModalCustom’);
if (modal && modal.style.display === ‘block’) {
closeModalCustom();
}
// Aguardar e reinicializar completamente
setTimeout(function() {
console.log(‘Reconstruindo galerias após mudança de conteúdo…’);
// Limpar tudo e reconstruir
rebuildGalleries();
}, 300);
}
// Reconstruir galerias completamente
function rebuildGalleries() {
// Limpar dados existentes
Object.keys(imageGalleries).forEach(key => delete imageGalleries[key]);
// Encontrar todas as galerias novamente
const galleryContainers = document.querySelectorAll(‘.gallery-container-custom’);
console.log(‘Reconstruindo ‘ + galleryContainers.length + ‘ galerias’);
galleryContainers.forEach((container, index) => {
// Redefinir IDs de grupo sequencialmente
container.setAttribute(‘data-gallery-group’, index);
const thumbnails = container.querySelectorAll(‘.thumbnail’);
imageGalleries[index] = [];
// Recriar dados da galeria
thumbnails.forEach((img, imgIndex) => {
// Atualizar atributos
img.setAttribute(‘data-gallery-group’, index);
img.setAttribute(‘data-image-index’, imgIndex);
// Recriar onclick
img.onclick = function() {
openModalCustom(imgIndex, index);
};
// Adicionar aos dados
imageGalleries[index].push({
src: img.src,
alt: img.alt,
fileEntryId: img.getAttribute(‘data-fileentryid’),
imageIndex: imgIndex,
originalOrder: imgIndex
});
});
// Atualizar título
const title = container.querySelector(‘.gallery-header h3’);
if (title && imageGalleries[index].length > 0) {
title.textContent = ‘Mais imagens (‘ + imageGalleries[index].length + ‘)’;
}
console.log(‘Galeria ‘ + index + ‘ reconstruída com ‘ + imageGalleries[index].length + ‘ imagens’);
});
console.log(‘Reconstrução concluída:’, imageGalleries);
}
// Função principal para lidar com reordenação (simplificada)
function handleFieldReorder() {
console.log(‘Processando reordenação de campos…’);
// Fechar modal se estiver aberto
const modal = document.getElementById(‘imageModalCustom’);
if (modal && modal.style.display === ‘block’) {
closeModalCustom();
}
// Aguardar e reinicializar
setTimeout(function() {
console.log(‘Reinicializando galerias…’);
updateGroupIds();
initGalleryCustom();
}, 200);
}
// Atualizar os IDs dos grupos após reordenação para manter consistência
function updateGroupIds() {
const galleryContainers = document.querySelectorAll(‘.gallery-container-custom’);
galleryContainers.forEach((container, newIndex) => {
const oldGroupId = container.getAttribute(‘data-gallery-group’);
const newGroupId = newIndex.toString();
if (oldGroupId !== newGroupId) {
console.log(‘Atualizando grupo ID de ‘ + oldGroupId + ‘ para ‘ + newGroupId);
// Atualizar o container
container.setAttribute(‘data-gallery-group’, newGroupId);
// Atualizar todos os thumbnails deste grupo
const thumbnails = container.querySelectorAll(‘.thumbnail’);
thumbnails.forEach((img, imgIndex) => {
img.setAttribute(‘data-gallery-group’, newGroupId);
img.setAttribute(‘data-image-index’, imgIndex);
});
// Atualizar script JSON se existir
const script = document.querySelector(‘script.gallery-data[data-gallery-group=”‘ + oldGroupId + ‘”]’);
if (script) {
script.setAttribute(‘data-gallery-group’, newGroupId);
}
}
});
}
// Observador adicional para mudanças no DOM relacionadas aos campos de imagem
const imageFieldObserver = new MutationObserver(function(mutations) {
let shouldReinitialize = false;
mutations.forEach(function(mutation) {
if (mutation.type === ‘childList’) {
mutation.addedNodes.forEach(function(node) {
if (node.nodeType === 1) {
// Verificar se é um campo de imagem ou contém campos de imagem
if (node.classList && node.classList.contains(‘lfr-forms__form-view-field-repeatable-dnd’) ||
node.querySelector && node.querySelector(‘.gallery-container-custom’)) {
shouldReinitialize = true;
}
}
});
mutation.removedNodes.forEach(function(node) {
if (node.nodeType === 1) {
if (node.classList && node.classList.contains(‘lfr-forms__form-view-field-repeatable-dnd’) ||
node.querySelector && node.querySelector(‘.gallery-container-custom’)) {
shouldReinitialize = true;
}
}
});
}
});
if (shouldReinitialize) {
setTimeout(initGalleryCustom, 300);
}
});
// Observar mudanças no body para capturar reordenações
imageFieldObserver.observe(document.body, {
childList: true,
subtree: true
});
// Navegação por teclado
document.addEventListener(‘keydown’, function(e) {
const modal = document.getElementById(‘imageModalCustom’);
if (modal && modal.style.display === ‘block’) {
if (e.key === ‘Escape’) {
closeModalCustom();
} else if (e.key === ‘ArrowLeft’) {
prevImageModal();
} else if (e.key === ‘ArrowRight’) {
nextImageModal();
}
}
});
$(‘#lightbox-dpli_ .slider-gallery-wrapper img’).hover(
function() {
const $text=$($($(this).parent()).next());
$text.hasClass(‘inside-description’) && $text.fadeTo( “slow” , 0);
}, function() {
const $text=$($($(this).parent()).next());
$text.hasClass(‘inside-description’) && $text.fadeTo( “slow” , 1);
}
);
$(document).ready(function() {
});
Liferay.on(“allPortletsReady”, function() {
$(‘#header_custom_print’).attr(‘href’, $(“[title*=’Imprimir’]”).children().attr(‘href’));
})
.banner-final-noticia {
margin: 25px auto 20px auto;
padding: 15px 0;
text-align: center;
width: 100%;
max-width: 800px; /* Largura reduzida */
border-top: 1px solid #e6e6e6;
border-bottom: 1px solid #f0f0f0;
}
.banner-final-noticia a {
display: inline-block;
width: 100%;
text-decoration: none;
transition: all 0.3s ease;
}
.banner-final-noticia a:hover {
transform: translateY(-1px);
box-shadow: 0 6px 15px rgba(0, 0, 0, 0.1);
}
.banner-final-noticia .banner-image {
width: 100%;
height: auto;
min-height: 80px; /* Altura mínima reduzida */
max-height: 150px; /* Altura máxima reduzida */
object-fit: cover; /* Mantém proporção e preenche o espaço */
object-position: center;
border-radius: 6px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
transition: all 0.3s ease;
cursor: pointer;
}
.banner-final-noticia .banner-image:hover {
opacity: 0.9;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}
.banner-final-noticia .banner-legenda {
margin-top: 10px;
font-size: 13px;
font-style: italic;
color: #666;
line-height: 1.4;
max-width: 700px;
margin-left: auto;
margin-right: auto;
}
/* === RESPONSIVIDADE === */
/* Tablets */
@media (max-width: 1024px) {
.banner-final-noticia {
margin: 20px auto 15px auto;
padding: 12px 10px;
max-width: 90%;
}
.banner-final-noticia .banner-image {
min-height: 70px;
max-height: 120px;
border-radius: 5px;
}
.banner-final-noticia .banner-legenda {
font-size: 13px;
max-width: 90%;
}
}
/* Mobile */
@media (max-width: 768px) {
.banner-final-noticia {
margin: 15px auto 12px auto;
padding: 10px 5px;
max-width: 95%;
}
.banner-final-noticia .banner-image {
min-height: 60px;
max-height: 100px;
border-radius: 4px;
}
.banner-final-noticia .banner-legenda {
font-size: 12px;
margin-top: 8px;
padding: 0 10px;
}
.banner-final-noticia a:hover {
transform: none; /* Remove efeito hover no mobile */
}
}
/* Mobile pequeno */
@media (max-width: 480px) {
.banner-final-noticia {
margin: 12px auto 10px auto;
padding: 8px 0;
}
.banner-final-noticia .banner-image {
min-height: 50px;
max-height: 80px;
}
.banner-final-noticia .banner-legenda {
font-size: 11px;
padding: 0 15px;
}
}
.gallery-container-custom {
max-width: 800px;
margin: 20px auto;
background: white;
border-radius: 10px;
box-shadow: 0 4px 6px rgba(0,0,0,0.1);
overflow: hidden;
font-family: Arial, sans-serif;
}
.gallery-header {
background: #e8e8e8;
padding: 15px;
border-bottom: 2px dotted #ccc;
}
.gallery-header h3 {
color: #333;
font-size: 14px;
margin: 0 0 10px 0;
}
.thumbnail-container {
display: flex;
gap: 10px;
flex-wrap: wrap;
justify-content: flex-start;
}
/* Adaptação automática baseada na quantidade de imagens */
.thumbnail-container.images-1 {
justify-content: center;
}
.thumbnail-container.images-2 {
justify-content: center;
}
.thumbnail-container.images-3 {
justify-content: center;
}
.thumbnail-container.images-4 {
justify-content: center;
}
.thumbnail-container.images-5-plus {
justify-content: flex-start;
}
/* Tamanhos adaptativos dos thumbnails */
.thumbnail-container.images-1 .thumbnail {
width: 80px;
height: 80px;
}
.thumbnail-container.images-2 .thumbnail {
width: 70px;
height: 70px;
}
.thumbnail-container.images-3 .thumbnail {
width: 65px;
height: 65px;
}
.thumbnail-container.images-4 .thumbnail {
width: 60px;
height: 60px;
}
.thumbnail-container.images-5-plus .thumbnail {
width: 55px;
height: 55px;
}
.thumbnail {
width: 60px;
height: 60px;
border-radius: 5px;
object-fit: cover;
cursor: pointer;
transition: transform 0.2s, box-shadow 0.2s;
border: 2px solid transparent;
}
.thumbnail:hover {
transform: scale(1.05);
box-shadow: 0 2px 8px rgba(0,0,0,0.2);
border-color: #007bff;
}
/* Modal Styles */
.image-modal {
display: none;
position: fixed;
z-index: 1000;
left: 0;
top: 0;
width: 100%;
height: 100%;
background-color: rgba(0,0,0,0.9);
animation: fadeIn 0.3s;
}
.modal-content-custom {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
max-width: 90%;
max-height: 90%;
text-align: center;
}
.modal-image {
max-width: 100%;
max-height: 80vh;
object-fit: contain;
border-radius: 10px;
box-shadow: 0 4px 20px rgba(255,255,255,0.1);
}
.modal-description {
background: white;
color: #333;
padding: 15px;
margin-top: 15px;
border-radius: 8px;
font-size: 16px;
box-shadow: 0 2px 10px rgba(0,0,0,0.2);
max-width: 600px;
margin-left: auto;
margin-right: auto;
}
.modal-close {
position: absolute;
top: 15px;
right: 25px;
color: white;
font-size: 35px;
font-weight: bold;
cursor: pointer;
transition: color 0.3s;
z-index: 1001;
}
.modal-close:hover {
color: #007bff;
}
/* Navegação no Modal */
.modal-nav {
position: absolute;
top: 50%;
transform: translateY(-50%);
background: rgba(0,0,0,0.7);
color: white;
border: none;
width: 50px;
height: 50px;
border-radius: 50%;
cursor: pointer;
font-size: 24px;
display: flex;
align-items: center;
justify-content: center;
transition: background 0.3s;
z-index: 1002;
}
.modal-nav:hover {
background: rgba(0,0,0,0.9);
}
.modal-nav:disabled {
opacity: 0.3;
cursor: not-allowed;
}
.modal-prev {
left: 20px;
}
.modal-next {
right: 20px;
}
.modal-counter {
position: absolute;
top: 20px;
left: 50%;
transform: translateX(-50%);
background: rgba(0,0,0,0.7);
color: white;
padding: 8px 16px;
border-radius: 20px;
font-size: 14px;
z-index: 1002;
}
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
/* Responsive Design */
@media (max-width: 768px) {
.gallery-container-custom {
margin: 10px;
}
/* Ajustes para mobile – thumbnails menores */
.thumbnail-container.images-1 .thumbnail {
width: 60px;
height: 60px;
}
.thumbnail-container.images-2 .thumbnail {
width: 55px;
height: 55px;
}
.thumbnail-container.images-3 .thumbnail {
width: 50px;
height: 50px;
}
.thumbnail-container.images-4 .thumbnail {
width: 45px;
height: 45px;
}
.thumbnail-container.images-5-plus .thumbnail {
width: 40px;
height: 40px;
}
.modal-close {
font-size: 28px;
top: 10px;
right: 15px;
}
.modal-description {
font-size: 14px;
padding: 12px;
}
.modal-nav {
width: 40px;
height: 40px;
font-size: 20px;
}
.modal-prev {
left: 10px;
}
.modal-next {
right: 10px;
}
.modal-counter {
font-size: 12px;
padding: 6px 12px;
}
}
@media (max-width: 480px) {
/* Para telas muito pequenas */
.thumbnail-container {
gap: 8px;
}
.thumbnail-container.images-5-plus .thumbnail {
width: 35px;
height: 35px;
}
.gallery-header h3 {
font-size: 12px;
}
}
Source: TST

Leave a Comment