/**
 * TurboJet - Estilos Base para o Componente de Card de Post
 * Usado por Grid, Lista, Carrossel e Destaque.
 *
 * @version 1.2.0
 * @package TurboJet
 */

.tj-post-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    /* height: auto por padrão — contextos específicos (destaque, grid com altura fixa)
       definem height:100% via seletor mais específico no seu próprio CSS */
    position: relative;
    background-color: #fff;
}

/* --- Container da Imagem --- */
.tj-card-image-link {
    display: block; /* Garante que o link ocupe a largura total */
    /* line-height:0 foi removido — em contexto flexbox é desnecessário e
       pode causar herança incorreta de font-size:0 nos filhos */
    flex-shrink: 0; /* Previne que a imagem encolha ou seja mal posicionada */
}

/* CORREÇÃO: Remove parágrafos vazios que o WordPress possa inserir, causando espaços indesejados. */
.tj-card-image-link > p:empty {
    display: none;
}

.tj-card-image {
    width: 100%;
    background-size: cover;
    background-position: center;
    transition: transform 0.4s ease;
    /* A altura é definida via style inline pelo PHP */
}

/* ==========================================================================
   EFEITOS DE HOVER DO CARD
   Aplicados via classe hover-effect-{valor} no .tj-post-card
   O valor vem do atributo card_hover_effect configurado pelo usuário.
   ========================================================================== */

/* Transição base para todos os efeitos */
.tj-post-card {
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
                box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Grow: eleva e escala ligeiramente o card */
.tj-post-card.hover-effect-grow:hover {
    transform: translateY(-5px) scale(1.02);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);
}

/* Shrink: pressiona o card para baixo (efeito de clique) */
.tj-post-card.hover-effect-shrink:hover {
    transform: translateY(2px) scale(0.98);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

/* None: sem transformação */
.tj-post-card.hover-effect-none:hover {
    transform: none;
    box-shadow: none;
}

/* Overlay: sobreposição de cor configurável via --tj-card-overlay-color
   O PHP já injeta esta variável via inline CSS no wrapper:
   #wrapper-id { --tj-card-overlay-color: rgba(0,0,0,0.5); }
   O pseudo-elemento cobre a imagem mas não o conteúdo textual. */
.tj-post-card.hover-effect-overlay {
    /* Garante position:relative para o ::after funcionar */
    position: relative;
    overflow: hidden;
}

.tj-post-card.hover-effect-overlay .tj-card-image-link::after {
    content: '';
    position: absolute;
    inset: 0;
    background-color: var(--tj-card-overlay-color, rgba(0, 0, 0, 0.45));
    opacity: 0;
    transition: opacity 0.35s ease;
    pointer-events: none;
    z-index: 2;
    border-radius: inherit;
}

.tj-post-card.hover-effect-overlay:hover .tj-card-image-link::after {
    opacity: 1;
}

/* Zoom suave na imagem ao hover (compartilhado por grow e overlay) */
.tj-post-card.hover-effect-grow:hover .tj-card-image,
.tj-post-card.hover-effect-overlay:hover .tj-card-image {
    transform: scale(1.06);
}


/* --- Container do Conteúdo --- */
.tj-card-content {
    display: flex;
    flex-direction: column;
    flex-grow: 1; /* Faz o conteúdo ocupar o espaço restante */
    /* CORREÇÃO: variável era --tj-card-content-padding mas o PHP gera --tj-card-padding */
    padding: var(--tj-card-padding, 20px);
}

/* --- Correção para Modo "Apenas Imagem" --- */
/* Se o card for apenas para imagem, o conteúdo textual é completamente removido */
.tj-post-card.image-only .tj-card-content {
    display: none;
}

/* E a imagem ocupa 100% da altura do card, preenchendo todo o espaço */
.tj-post-card.image-only .tj-card-image-link,
.tj-post-card.image-only .tj-card-image {
    height: 100%;
}


/* --- Elementos de Conteúdo --- */
.tj-card-category {
    display: inline-block;
    padding: 4px 10px;
    font-size: 0.75em;
    font-weight: 600;
    text-transform: uppercase;
    border-radius: 4px;
    margin-bottom: 15px;
    text-decoration: none;
    align-self: flex-start; /* Garante que não estique em largura */
    transition: opacity 0.2s ease;
}
.tj-card-category:hover {
    opacity: 0.8;
}

.tj-card-title {
    margin: 0 0 10px 0;
    font-weight: 700;
    line-height: 1.3;
}

.tj-card-title a {
    text-decoration: none !important;
    /* Sobrescreve regras de tema (ex: Kubio) que aplicam cor em a:not([class*=wp-block-button]) com alta especificidade */
    color: var(--tj-title-color, #1f2937) !important;
    transition: color 0.2s ease;
}

.tj-card-meta {
    margin-bottom: 15px;
    font-style: italic;
    font-size: 0.9em;
    color: #666;
}

.tj-meta-separator {
    margin: 0 8px;
}

.tj-card-excerpt {
    margin-bottom: 20px;
    line-height: 1.6;
    flex-grow: 1; /* Garante que o resumo ocupe o espaço, empurrando o botão para baixo */
}

.tj-card-read-more {
    margin-top: auto; /* Garante que o botão 'Leia Mais' fique sempre no final */
}
