/* JB Postagens - Frontend CSS
   Design tokens unificados. Portal sempre em tema CLARO: os cards e títulos do
   artigo são claros fixos (#fff / #0a0a0a), então o dark mode automático deixava
   o fundo preto atrás do card branco. Mantido em luz fixa (color-scheme: light). */

:root {
    --jfb-bg:        #ffffff;
    --jfb-surface:   #f5f5f7;
    --jfb-border:    #e5e5e7;
    --jfb-text:      #0a0a0a;
    --jfb-text-soft: #1f1f23;
    --jfb-muted:     #5a5a60;
    --jfb-mute2:     #86868b;
    --jfb-accent:    #15803d;
    --jfb-accent-h:  #166534;
    --jfb-success:   #16a34a;
    --jfb-radius:    10px;
    --jfb-radius-lg: 14px;
    --jfb-shadow-1:  0 1px 3px rgba(0, 0, 0, 0.06);
    --jfb-shadow-2:  0 6px 24px rgba(0, 0, 0, 0.08);
    --jfb-stack:     -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, sans-serif;
    --jfb-serif:     ui-serif, Georgia, "Times New Roman", serif;

    /* Trava o esquema em claro: evita que o navegador/SO em modo escuro
       reinterprete elementos nativos e quebre o contraste do artigo. */
    color-scheme: light;
}

/* Dark mode automático DESATIVADO de propósito (ver cabeçalho do arquivo):
   o artigo é claro fixo, então a paleta escura deixava o fundo preto. Para
   reativar no futuro, reintroduza as variáveis dark E torne card/título/texto
   adaptáveis (sem cores claras hardcoded). */

/* Barra de progresso de leitura */
.jfb-noticia-progress {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: transparent;
    z-index: 9999;
    pointer-events: none;
}
.jfb-noticia-progress span {
    display: block;
    height: 100%;
    width: 0;
    background: linear-gradient(90deg, var(--jfb-accent), var(--jfb-accent-h));
    transition: width 0.05s linear;
}

/* Wrapper full-width do template próprio (single.php do plugin).
   Ocupa toda a largura entre header/footer do tema e dá fundo neutro
   para o card branco se destacar. */
.jfb-noticia-single {
    background: var(--jfb-surface);
    padding: 32px 0 56px;
    box-sizing: border-box;
    /* Full-bleed: o fundo claro cobre toda a largura da viewport, mesmo que o
       tema/Elementor tenha uma seção de fundo escuro atrás do conteúdo. Usa
       margin (não transform) para não criar containing block e quebrar o
       lightbox em position:fixed. */
    position: relative;
    width: 100vw;
    max-width: 100vw;
    left: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    overflow-x: clip;
}

@media (max-width: 768px) {
    .jfb-noticia-single {
        padding: 16px 0 32px;
    }
}

/* Artigo de notícia — container principal: 1200px
   Escape do container estreito do Elementor via posicionamento central no viewport */
.jfb-noticia {
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    width: min(1200px, 100vw);
    padding: 24px 24px 40px;
    box-sizing: border-box;
    font-family: var(--jfb-stack);
    color: var(--jfb-text);
}

/* Card branco institucional envolvendo todo o conteúdo */
.jfb-noticia-card {
    background: #ffffff;
    border-radius: 18px;
    padding: 48px 56px;
    box-shadow:
        0 6px 32px rgba(0, 0, 0, 0.06),
        0 1px 3px rgba(0, 0, 0, 0.04);
    border: 1px solid #ececef;
    max-width: 1100px;
    margin: 0 auto;
}

@media (max-width: 768px) {
    .jfb-noticia {
        padding: 12px 12px 24px;
    }
    .jfb-noticia-card {
        padding: 24px 20px;
        border-radius: 12px;
    }
}

/* Breadcrumb */
.jfb-noticia-breadcrumb {
    max-width: 980px;
    margin: 0 auto 24px;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 0.85rem;
    color: var(--jfb-muted);
}
.jfb-noticia-breadcrumb a {
    color: var(--jfb-muted);
    text-decoration: none;
    transition: color 0.15s;
}
.jfb-noticia-breadcrumb a:hover {
    color: var(--jfb-accent);
}
.jfb-noticia-breadcrumb-atual {
    color: var(--jfb-text);
    font-weight: 500;
}

/* Foto de destaque — discreta, 760px centralizada, 16:9 com hover suave */
.jfb-noticia-destaque {
    margin: 0 auto 40px;
    max-width: 760px;
    width: 100%;
    position: relative;
    border-radius: 20px;
    overflow: hidden;
    box-shadow:
        0 14px 40px rgba(0, 0, 0, 0.18),
        0 4px 12px rgba(0, 0, 0, 0.10);
    background: #000;
    transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.jfb-noticia-destaque:hover {
    transform: translateY(-2px);
    box-shadow:
        0 20px 56px rgba(0, 0, 0, 0.22),
        0 6px 16px rgba(0, 0, 0, 0.12);
}

.jfb-noticia-destaque-link {
    display: block;
    position: relative;
    cursor: zoom-in;
    /* Involucro de imagem nao tem cor de link. Sem esta linha, quem pinta e o
       `a{color:#c36}` do reset.css do hello-elementor: nao se ve enquanto a foto
       carrega, mas aparece no alt de imagem quebrada e no anel de foco. Medido
       em 18/09/2026: 4 links assim no corpo de um post. */
    color: inherit;
    text-decoration: none !important;
    border: none !important;
}

.jfb-noticia-galeria-link {
    color: inherit;
}

.jfb-noticia-destaque-img {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

@media (hover: hover) {
    .jfb-noticia-destaque:hover .jfb-noticia-destaque-img {
        transform: scale(1.04);
    }
}

/* Hint "Ampliar" no canto superior direito quando hover */
.jfb-noticia-destaque-zoom-hint {
    position: absolute;
    top: 14px;
    right: 14px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 12px;
    background: rgba(0, 0, 0, 0.65);
    color: #fff !important;
    font-size: 0.78rem;
    font-weight: 600;
    border-radius: 8px;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    opacity: 0;
    transform: translateY(-6px);
    transition: opacity 0.22s ease, transform 0.22s ease;
    pointer-events: none;
}

.jfb-noticia-destaque-zoom-hint svg {
    flex-shrink: 0;
}

@media (hover: hover) {
    .jfb-noticia-destaque:hover .jfb-noticia-destaque-zoom-hint {
        opacity: 1;
        transform: translateY(0);
    }
}

/* No mobile, exibe sempre (não tem hover) */
@media (hover: none) {
    .jfb-noticia-destaque-zoom-hint {
        opacity: 1;
        transform: translateY(0);
        font-size: 0.7rem;
        padding: 5px 9px;
        top: 10px;
        right: 10px;
    }
}

.jfb-noticia-credito {
    font-size: 0.78rem;
    color: var(--jfb-mute2);
    font-style: italic;
    margin: 8px auto 0;
    max-width: 760px;
    text-align: right;
    padding: 0 4px;
}

/* Header e texto — coluna proporcional ao container (1200px) */
.jfb-noticia-header,
.jfb-noticia-texto,
.jfb-noticia-video {
    max-width: 980px;
    margin-left: auto;
    margin-right: auto;
}

/* Header */
.jfb-noticia-header {
    margin-bottom: 36px;
}

/* Meta — autor, data, tempo de leitura */
.jfb-noticia-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    padding: 18px 0 22px;
    border-bottom: 1px solid var(--jfb-border);
    margin-top: 18px;
}

.jfb-noticia-meta-autor {
    display: flex;
    align-items: center;
    gap: 12px;
}

.jfb-noticia-meta-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
}

.jfb-noticia-meta-autor-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.jfb-noticia-meta-autor-nome {
    font-weight: 600;
    color: var(--jfb-text);
    font-size: 0.95rem;
}

.jfb-noticia-meta-data {
    font-size: 0.82rem;
    color: var(--jfb-mute2);
}

.jfb-noticia-meta-atualizado {
    color: var(--jfb-success);
    font-weight: 500;
}

.jfb-noticia-meta-leitura {
    font-size: 0.85rem;
    color: var(--jfb-muted);
    background: var(--jfb-surface);
    padding: 6px 12px;
    border-radius: 16px;
}

/* Share buttons */
.jfb-noticia-share {
    max-width: 980px;
    margin: 0 auto 28px;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.jfb-noticia-share-label {
    font-size: 0.8rem;
    color: var(--jfb-muted);
    font-weight: 500;
    margin-right: 4px;
}
.jfb-noticia-share-btn {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    border: 1px solid var(--jfb-border);
    background: var(--jfb-bg);
    color: var(--jfb-text-soft);
    cursor: pointer;
    text-decoration: none;
    transition: all 0.18s ease;
}
.jfb-noticia-share-btn:hover {
    background: var(--jfb-accent);
    color: #fff;
    border-color: var(--jfb-accent);
    transform: translateY(-1px);
    box-shadow: var(--jfb-shadow-1);
}
.jfb-noticia-share-whatsapp:hover {
    background: #25d366;
    border-color: #25d366;
}
.jfb-noticia-share-copied {
    background: var(--jfb-success) !important;
    color: #fff !important;
    border-color: var(--jfb-success) !important;
}

/* Alterna ícone link → check quando copia */
.jfb-noticia-share-copy .jfb-noticia-share-icon-check {
    display: none;
}
.jfb-noticia-share-copy.jfb-noticia-share-copied .jfb-noticia-share-icon-link {
    display: none;
}
.jfb-noticia-share-copy.jfb-noticia-share-copied .jfb-noticia-share-icon-check {
    display: inline-block;
    animation: jfb-pop 0.3s ease;
}

@keyframes jfb-pop {
    0%   { transform: scale(0.5); opacity: 0; }
    100% { transform: scale(1);   opacity: 1; }
}

.jfb-noticia-categorias {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 18px;
}

.jfb-noticia-cat {
    background: var(--jfb-surface);
    color: var(--jfb-text);
    padding: 5px 14px;
    border-radius: 16px;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.3px;
    text-transform: uppercase;
    display: inline-block;
    text-decoration: none;
    transition: background .15s, color .15s;
}

.jfb-noticia-cat:hover {
    background: var(--jfb-accent);
    color: #fff;
}

.jfb-noticia-titulo {
    font-size: clamp(1.4rem, 1.2vw + 0.9rem, 1.95rem) !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    letter-spacing: -0.01em !important;
    margin: 0 0 14px 0 !important;
    color: #0a0a0a !important;
    background: none !important;
    text-shadow: none !important;
    text-transform: none !important;
}

/* =========================================================
   TÍTULO DO TEMA / ELEMENTOR (post single)
   Diminui o título gigante que vem do widget Post Title
   ========================================================= */
body.single-post .elementor-widget-theme-post-title h1,
body.single-post .elementor-widget-theme-post-title .elementor-heading-title,
body.single-post .elementor-widget-heading > .elementor-widget-container > h1,
body.single-post h1.elementor-page-title,
body.single-post h1.entry-title,
body.single-post .entry-header h1,
body.single-post .page-title,
body.single .post-title,
body.single article > header h1 {
    font-size: clamp(1.35rem, 1.1vw + 0.85rem, 1.85rem) !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    letter-spacing: -0.01em !important;
    text-transform: none !important;
    color: #0a0a0a !important;
    max-width: 980px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    overflow-wrap: break-word !important;
    word-wrap: break-word !important;
    hyphens: auto !important;
}

/* Mobile: título do tema/Elementor cortava nas bordas + espaço excessivo acima */
@media (max-width: 768px) {
    /* ===== ATAQUE AGRESSIVO ===== */

    /* Padding lateral no widget container (que é onde o Elementor coloca o h1) */
    body.single-post .elementor-widget,
    body.single-post .elementor-widget > .elementor-widget-container,
    body.single-post [data-element_type="widget"][data-widget_type*="heading"],
    body.single-post [data-element_type="widget"][data-widget_type*="post-title"],
    body.single-post [data-widget_type*="heading"] > .elementor-widget-container,
    body.single-post [data-widget_type*="post-title"] > .elementor-widget-container {
        padding-left: 16px !important;
        padding-right: 16px !important;
        max-width: 100vw !important;
        box-sizing: border-box !important;
    }

    /* Section do Elementor que envolve o título: zera padding vertical */
    body.single-post .elementor-section,
    body.single-post section.elementor-section,
    body.single-post [data-element_type="section"],
    body.single-post .elementor-top-section,
    body.single-post .elementor-inner-section {
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        margin-top: 0 !important;
        margin-bottom: 0 !important;
    }

    /* Permite respiro mínimo logo após o cabeçalho do site */
    body.single-post .elementor-location-single .elementor-section:first-child,
    body.single-post .elementor-section.elementor-top-section:first-of-type {
        padding-top: 12px !important;
    }

    /* Containers que abraçam tudo — limita largura ao viewport */
    body.single-post .elementor-section,
    body.single-post .elementor-container,
    body.single-post .elementor-column,
    body.single-post .elementor-row,
    body.single-post .elementor-column-wrap,
    body.single-post .elementor-widget-wrap {
        max-width: 100vw !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    /* Body — bloqueia scroll horizontal */
    body.single-post,
    html body.single-post {
        overflow-x: hidden !important;
    }

    /* === FIX ESPECÍFICO baseado no DOM real do site loterio.com.br === */

    /* Widget Spacer do Elementor — é ele que cria o vazio gigante acima do título */
    body.single-post .elementor-widget-spacer,
    body.single-post .elementor-widget-spacer .elementor-spacer,
    body.single-post .elementor-widget-spacer .elementor-spacer-inner {
        height: 0 !important;
        min-height: 0 !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    /* Título — atinge as classes EXATAS do DOM real */
    body.single-post h1.elementor-heading-title,
    body.single-post h1.elementor-size-default,
    body.single-post .elementor-widget-theme-post-title h1.elementor-heading-title {
        font-size: 1.3rem !important;
        line-height: 1.3 !important;
        padding: 0 20px !important;
        margin: 12px 0 8px !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        word-break: break-word !important;
        overflow-wrap: break-word !important;
        hyphens: auto !important;
    }

    /* Widget que envolve o título (data-widget_type="theme-post-title.default") */
    body.single-post .elementor-widget-theme-post-title,
    body.single-post .elementor-widget-theme-post-title > .elementor-widget-container,
    body.single-post .elementor-page-title {
        padding: 0 !important;
        margin: 0 !important;
    }

    /* Containers v3 do Elementor (e-con, e-con-inner, e-con-boxed) */
    body.single-post .e-con,
    body.single-post .e-con-inner,
    body.single-post .e-con-boxed,
    body.single-post .e-parent {
        padding-top: 8px !important;
        padding-bottom: 8px !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        max-width: 100vw !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    /* ===== /ATAQUE AGRESSIVO ===== */

    /* Título — atinge todas as variantes possíveis do <h1> de single post */
    body.single-post h1,
    body.single-post .elementor-heading-title,
    body.single-post h1.elementor-heading-title,
    body.single-post h1.entry-title,
    body.single-post h1.elementor-page-title,
    body.single-post .entry-title,
    body.single-post .post-title,
    body.single-post .elementor-widget-theme-post-title h1,
    body.single-post .elementor-widget-theme-post-title .elementor-heading-title,
    body.single-post .elementor-widget-heading h1,
    body.single-post .elementor-widget-heading .elementor-heading-title,
    body.single-post article header h1 {
        font-size: 1.25rem !important;
        line-height: 1.3 !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        margin: 8px 0 !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        word-break: break-word !important;
        overflow-wrap: break-word !important;
        hyphens: auto !important;
    }

    /* Remove TODO padding/margem dos wrappers do widget do título */
    body.single-post .elementor-widget-theme-post-title,
    body.single-post .elementor-widget-theme-post-title > .elementor-widget-container,
    body.single-post .elementor-widget-heading,
    body.single-post .elementor-widget-heading > .elementor-widget-container {
        padding: 0 !important;
        margin: 0 !important;
    }

    /* Section/column do Elementor: reduz padding vertical em mobile pra remover
       o "espaço grande" entre header e título.
       Cuidado: aplica APENAS na primeira section da single post. */
    body.single-post .elementor-section.elementor-top-section:first-of-type {
        padding-top: 0 !important;
        margin-top: 0 !important;
    }
    body.single-post .elementor-section.elementor-top-section:first-of-type
        > .elementor-container {
        padding-top: 8px !important;
    }

    /* Reduz padding lateral dos containers do Elementor em mobile (evita scroll horizontal) */
    body.single-post .elementor-section,
    body.single-post .elementor-container,
    body.single-post .elementor-column,
    body.single-post .elementor-row {
        overflow-x: visible !important;
        max-width: 100vw !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* Garante que o body não tem scroll horizontal */
    body.single-post {
        overflow-x: hidden !important;
    }
}

.jfb-noticia-subtitulo {
    font-family: var(--jfb-serif);
    font-size: 1.25rem;
    color: var(--jfb-text-soft);
    font-weight: 400;
    line-height: 1.5;
    margin: 0 0 8px 0;
}

/* Texto — força cor preta vencendo CSS do tema/Elementor */
.jfb-noticia-texto {
    font-size: 1.05rem;
    line-height: 1.75;
    color: #111 !important;
    text-align: justify;
    hyphens: auto;
    overflow-wrap: break-word;
}

/* Seletores agressivos: cobre nosso wrapper E o widget Elementor de Post Content */
body.single-post .jfb-noticia .jfb-noticia-texto p,
body.single-post .jfb-noticia .jfb-noticia-texto li,
body.single-post .jfb-noticia .jfb-noticia-texto span,
body.single-post .jfb-noticia .jfb-noticia-texto strong,
body.single-post .jfb-noticia .jfb-noticia-texto em,
body.single-post .jfb-noticia .jfb-noticia-texto div,
body.single-post .elementor-widget-theme-post-content p,
body.single-post .elementor-widget-theme-post-content li,
body.single-post .elementor-widget-theme-post-content span,
body.single-post .elementor-widget-theme-post-content .jfb-noticia-texto,
body.single-post .elementor-widget-theme-post-content .jfb-noticia-texto * {
    color: #111 !important;
}

body.single-post .jfb-noticia .jfb-noticia-texto a,
body.single-post .jfb-noticia .jfb-noticia-texto a span,
body.single-post .jfb-noticia .jfb-noticia-texto a strong,
body.single-post .elementor-widget-theme-post-content a {
    color: var(--jfb-accent) !important;
    border-bottom: 1px solid transparent;
}

body.single-post .jfb-noticia .jfb-noticia-texto a:hover,
body.single-post .elementor-widget-theme-post-content a:hover {
    border-bottom-color: var(--jfb-accent) !important;
}

.jfb-noticia-texto h2,
.jfb-noticia-texto h3 {
    color: var(--jfb-text);
    font-weight: 700;
    letter-spacing: -0.01em;
    margin: 1.8em 0 0.6em;
    line-height: 1.3;
    scroll-margin-top: 24px;
}
.jfb-noticia-texto h2 { font-size: 1.55rem; }
.jfb-noticia-texto h3 { font-size: 1.25rem; }

.jfb-noticia-texto blockquote {
    margin: 1.6em 0;
    padding: 0.4em 0 0.4em 1.2em;
    border-left: 4px solid var(--jfb-accent);
    color: var(--jfb-text);
    font-family: var(--jfb-serif);
    font-size: 1.2rem;
    font-style: italic;
    line-height: 1.5;
}

/* =========================================================
   IMAGENS DENTRO DO TEXTO — espaçamento padrão consistente
   ========================================================= */

/* Imagem padrão (sem classe de alinhamento) */
.jfb-noticia-texto img {
    max-width: 100%;
    height: auto;
    border-radius: var(--jfb-radius);
    margin: 32px 0;
    display: block;
}

/* Imagem dentro de <p>: garantir margem mesmo com parágrafo ao redor */
.jfb-noticia-texto p > img {
    margin: 32px auto;
}

/* Figura/figcaption */
.jfb-noticia-texto figure,
.jfb-noticia-texto .wp-caption {
    margin: 32px auto !important;
    max-width: 100% !important;
    text-align: center;
}

.jfb-noticia-texto figure img,
.jfb-noticia-texto .wp-caption img {
    margin: 0 auto !important;
    display: block;
}

.jfb-noticia-texto figcaption,
.jfb-noticia-texto .wp-caption-text {
    font-size: 0.85rem !important;
    color: var(--jfb-muted) !important;
    font-style: italic;
    text-align: center;
    margin-top: 10px !important;
    line-height: 1.4;
}

/* Alinhamento à esquerda (texto envolve à direita) */
.jfb-noticia-texto img.alignleft,
.jfb-noticia-texto .alignleft,
.jfb-noticia-texto figure.alignleft {
    float: left;
    margin: 8px 28px 20px 0 !important;
    max-width: 50%;
}

/* Alinhamento à direita (texto envolve à esquerda) */
.jfb-noticia-texto img.alignright,
.jfb-noticia-texto .alignright,
.jfb-noticia-texto figure.alignright {
    float: right;
    margin: 8px 0 20px 28px !important;
    max-width: 50%;
}

/* Alinhamento centralizado */
.jfb-noticia-texto img.aligncenter,
.jfb-noticia-texto .aligncenter,
.jfb-noticia-texto figure.aligncenter {
    display: block;
    margin: 32px auto !important;
    clear: both;
}

/* Sem alinhamento — comportamento padrão (block, margem vertical) */
.jfb-noticia-texto img.alignnone,
.jfb-noticia-texto .alignnone {
    display: block;
    margin: 32px 0 !important;
}

/* Clearfix: garante que parágrafos seguintes não sobreponham imagens flutuadas */
.jfb-noticia-texto::after {
    content: '';
    display: block;
    clear: both;
}

/* Em mobile: imagens float viram block (não tem espaço pra envolver texto) */
@media (max-width: 600px) {
    .jfb-noticia-texto img.alignleft,
    .jfb-noticia-texto .alignleft,
    .jfb-noticia-texto img.alignright,
    .jfb-noticia-texto .alignright,
    .jfb-noticia-texto figure.alignleft,
    .jfb-noticia-texto figure.alignright {
        float: none !important;
        max-width: 100% !important;
        margin: 24px auto !important;
        display: block;
    }
}

.jfb-noticia-texto p {
    margin-bottom: 1.5em;
}

.jfb-noticia-texto a {
    color: var(--jfb-accent);
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: border-color 0.15s;
}

.jfb-noticia-texto a:hover {
    border-bottom-color: var(--jfb-accent);
}

.jfb-noticia-texto ul,
.jfb-noticia-texto ol {
    margin-bottom: 1.5em;
    padding-left: 1.5em;
}

.jfb-noticia-texto li {
    margin-bottom: 0.5em;
}

/* Créditos no topo — autor texto + crédito foto, discreto e sem fundo */
.jfb-noticia-creditos-topo {
    max-width: 980px;
    margin: 14px auto 22px;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

.jfb-noticia-creditos-topo .jfb-noticia-credito-autor,
.jfb-noticia-creditos-topo .jfb-noticia-credito-foto {
    font-size: 0.88rem;
    color: #555 !important;
    font-style: italic;
    background: transparent !important;
    padding: 0;
}
.jfb-noticia-creditos-topo .jfb-noticia-credito-autor::before { content: '✍ '; opacity: 0.7; }
.jfb-noticia-creditos-topo .jfb-noticia-credito-foto::before  { content: '📷 '; opacity: 0.7; }

/* Galeria de vídeos */
.jfb-noticia-videos {
    max-width: 980px;
    margin: 48px auto 0;
    padding-top: 32px;
    border-top: 1px solid #e5e5e7;
}

.jfb-noticia-videos h2 {
    font-size: 1.4rem;
    font-weight: 600;
    margin: 0 0 24px 0;
    color: #1d1d1f;
}

/* 1 vídeo: largura total */
.jfb-noticia-videos-single {
    display: block;
}

/* 2+ vídeos: grid 2 colunas */
.jfb-noticia-videos-multi {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
    gap: 20px;
}

.jfb-noticia-video-wrapper {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
    border-radius: 10px;
    background: #000;
}

.jfb-noticia-video-wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

/* Galeria — usa toda a largura do container (1200px) */
.jfb-noticia-galeria {
    margin-top: 56px;
    padding-top: 32px;
    padding-bottom: 80px;
    border-top: 1px solid #e5e5e7;
}

.jfb-noticia-galeria h2 {
    font-size: 1.4rem;
    font-weight: 600;
    margin: 0 0 24px 0;
    color: #1d1d1f;
}

.jfb-noticia-galeria-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 16px;
}

.jfb-noticia-galeria-item {
    margin: 0;
}

.jfb-noticia-galeria-item a {
    display: block;
    border-radius: 8px;
    overflow: hidden;
}

.jfb-noticia-galeria-img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
}

.jfb-noticia-galeria-item a:hover .jfb-noticia-galeria-img {
    transform: scale(1.03);
}

/* =========================================================
   CARREGAMENTO DE IMAGENS (shimmer/skeleton)
   ========================================================= */
.jfb-noticia-destaque.jfb-media-loading,
.jfb-noticia-galeria-item.jfb-media-loading {
    position: relative;
    background: #e9e9ee;
}
.jfb-noticia-galeria-item.jfb-media-loading {
    border-radius: 8px;
    overflow: hidden;
}
.jfb-noticia-destaque.jfb-media-loading::after,
.jfb-noticia-galeria-item.jfb-media-loading::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    background: linear-gradient(100deg, #e9e9ee 30%, #f4f4f7 50%, #e9e9ee 70%);
    background-size: 200% 100%;
    animation: jfb-shimmer 1.3s ease-in-out infinite;
}
@keyframes jfb-shimmer {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}
/* A imagem aparece suavemente quando termina de carregar */
.jfb-noticia-destaque-img,
.jfb-noticia-galeria-img {
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s ease;
}
.jfb-media-loading .jfb-noticia-destaque-img,
.jfb-media-loading .jfb-noticia-galeria-img {
    opacity: 0;
}
@media (prefers-reduced-motion: reduce) {
    .jfb-noticia-destaque.jfb-media-loading::after,
    .jfb-noticia-galeria-item.jfb-media-loading::after {
        animation: none;
    }
}

/* =========================================================
   EDITAL — LAYOUT GERAL
   ========================================================= */

.jfb-edital {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, sans-serif;
    color: #1d1d1f;
}

/* Header */
.jfb-edital-header {
    padding: 48px 0 36px;
    border-bottom: 1px solid #e5e5e7;
    margin-bottom: 40px;
    text-align: center;
}

.jfb-edital-meta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    font-size: 0.9rem;
    color: #86868b;
    flex-wrap: wrap;
    margin-bottom: 20px;
    letter-spacing: 0.2px;
}

.jfb-edital-meta-item {
    font-weight: 400;
}

.jfb-edital-meta-sep {
    color: #c7c7cc;
}

.jfb-edital-titulo {
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1.2;
    color: #1d1d1f;
    margin: 0 0 16px 0;
}

.jfb-edital-subtitulo {
    font-size: 1.2rem;
    color: #6e6e73;
    font-weight: 400;
    line-height: 1.5;
    margin: 0;
}

.jfb-edital-categorias {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
}

.jfb-edital-cat-btn {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 20px;
    background: #f2f2f7;
    color: #1d1d1f;
    font-size: 0.82rem;
    font-weight: 500;
    text-decoration: none;
    transition: background 0.15s, color 0.15s;
}

.jfb-edital-cat-btn:hover {
    background: #15803d;
    color: #fff;
}

/* Layout: coluna única — PDF é o elemento principal */
.jfb-edital-body {
    display: flex;
    flex-direction: column;
    gap: 0;
}

/* Corpo do texto — acima do PDF, largura legível centralizada */
.jfb-edital-corpo {
    max-width: 760px;
    margin: 0 auto 40px;
    width: 100%;
    font-size: 1.05rem;
    line-height: 1.8;
    color: #333;
}

.jfb-edital-corpo p {
    margin-bottom: 1.4em;
}

.jfb-edital-corpo a {
    color: #15803d;
    text-decoration: none;
}

.jfb-edital-corpo a:hover {
    text-decoration: underline;
}

.jfb-edital-corpo ul,
.jfb-edital-corpo ol {
    margin-bottom: 1.4em;
    padding-left: 1.5em;
}

.jfb-edital-corpo li {
    margin-bottom: 0.5em;
}

/* PDF Viewer — largura total, destaque principal */
.jfb-edital-pdf {
    width: 100%;
    border: 1px solid #e5e5e7;
    border-radius: 12px;
    overflow: hidden;
    background: #f5f5f7;
    margin-bottom: 80px;
}

.jfb-edital-pdf-viewer {
    display: block;
    width: 100%;
    height: 90vh;
    min-height: 640px;
    border: none;
}

.jfb-edital-pdf-fallback {
    padding: 56px 24px;
    text-align: center;
    color: #86868b;
    font-size: 15px;
}

.jfb-edital-pdf-fallback a {
    display: inline-block;
    margin-top: 12px;
    color: #fff;
    background: #15803d;
    text-decoration: none;
    font-weight: 500;
    font-size: 14px;
    padding: 10px 24px;
    border-radius: 8px;
    transition: background 0.2s;
}

.jfb-edital-pdf-fallback a:hover {
    background: #166534;
}

/* Responsivo */
@media (max-width: 768px) {
    .jfb-noticia {
        padding: 0 16px;
    }

    .jfb-noticia-header,
    .jfb-noticia-texto,
    .jfb-noticia-video {
        max-width: 100%;
    }

    .jfb-noticia-destaque {
        border-radius: 14px;
    }

    .jfb-noticia-titulo {
        font-size: 1.7rem;
    }

    .jfb-noticia-subtitulo {
        font-size: 1.05rem;
    }

    .jfb-noticia-texto {
        font-size: 1rem;
        line-height: 1.75;
    }

    .jfb-noticia-galeria-grid {
        grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
        gap: 10px;
    }

    .jfb-noticia-galeria-img {
        height: 150px;
    }

    .jfb-edital {
        padding: 0 16px;
    }

    .jfb-edital-titulo {
        font-size: 1.6rem;
    }

    .jfb-edital-subtitulo {
        font-size: 1rem;
    }

    .jfb-edital-corpo {
        margin-bottom: 28px;
    }

    .jfb-edital-pdf-viewer {
        height: 70vh;
        min-height: 400px;
    }
}

/* Notícia — PDF download */
/* Bloco de PDF em destaque (depois da galeria) */
.jfb-noticia-pdf-bloco {
    margin: 40px auto;
    max-width: 980px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.jfb-noticia-pdf-link {
    display: flex !important;
    align-items: center;
    gap: 18px;
    padding: 20px 24px;
    background: linear-gradient(135deg, #ffffff 0%, #f0fafe 100%);
    border: 1px solid #c6ebfa;
    border-left: 4px solid #0db4ec;
    border-radius: 14px;
    text-decoration: none !important;
    color: #1d1d1f !important;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
    transition: transform 0.15s, box-shadow 0.15s, border-color 0.15s;
}
.jfb-noticia-pdf-link:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 26px rgba(13, 180, 236, 0.18);
    border-color: #0db4ec;
}

.jfb-noticia-pdf-icon {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    flex-shrink: 0;
    color: #0db4ec;
    background: #e5f6fe;
    border-radius: 12px;
}
.jfb-noticia-pdf-badge {
    position: absolute;
    bottom: -6px;
    right: -6px;
    background: #0db4ec;
    color: #ffffff;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.5px;
    padding: 2px 6px;
    border-radius: 6px;
    border: 2px solid #ffffff;
    line-height: 1;
}

.jfb-noticia-pdf-texto {
    display: flex;
    flex-direction: column;
    gap: 3px;
    flex: 1;
    min-width: 0;
}
.jfb-noticia-pdf-titulo {
    font-size: 1.08rem !important;
    font-weight: 700 !important;
    color: #1d1d1f !important;
    line-height: 1.3 !important;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}
.jfb-noticia-pdf-sub {
    font-size: 0.88rem !important;
    color: #6e6e73 !important;
}

.jfb-noticia-pdf-acao {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    color: #ffffff;
    background: #0db4ec;
    border-radius: 50%;
    transition: background 0.15s;
}
.jfb-noticia-pdf-link:hover .jfb-noticia-pdf-acao {
    background: #0a96c6;
}

/* Estado de carregamento ao clicar (abrindo o PDF) */
.jfb-noticia-pdf-link.is-loading {
    pointer-events: none;
    opacity: 0.92;
}
.jfb-noticia-pdf-link.is-loading .jfb-noticia-pdf-acao svg {
    display: none;
}
.jfb-noticia-pdf-link.is-loading .jfb-noticia-pdf-acao::after {
    content: "";
    width: 20px;
    height: 20px;
    border: 2px solid rgba(255, 255, 255, 0.45);
    border-top-color: #ffffff;
    border-radius: 50%;
    animation: jfb-spin 0.7s linear infinite;
}
@keyframes jfb-spin {
    to { transform: rotate(360deg); }
}

@media (max-width: 600px) {
    .jfb-noticia-pdf-link { padding: 16px; gap: 14px; }
    .jfb-noticia-pdf-icon { width: 52px; height: 52px; }
    .jfb-noticia-pdf-acao { width: 40px; height: 40px; }
    .jfb-noticia-pdf-sub { font-size: 0.82rem !important; }
}

/* Edital — Anexos (frontend) */
.jfb-edital-anexos {
    margin-top: 32px;
    padding-top: 24px;
    border-top: 1px solid #e0e0e5;
}

.jfb-edital-anexos-titulo {
    font-size: 1.1rem;
    font-weight: 600;
    color: #1d1d1f;
    margin-bottom: 16px;
}

.jfb-edital-anexos-lista {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.jfb-edital-anexo-li {
    margin: 0;
    padding: 0;
}

.jfb-edital-anexo-link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 12px 20px;
    background: #f5f5f7;
    border-radius: 8px;
    text-decoration: none;
    color: #1d1d1f;
    font-size: 0.95rem;
    font-weight: 500;
    transition: background 0.15s;
    width: 100%;
    box-sizing: border-box;
}

.jfb-edital-anexo-link:hover {
    background: #e8e8ed;
}

.jfb-edital-anexo-link-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: #15803d;
    color: #fff;
    border-radius: 6px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.5px;
    flex-shrink: 0;
}

/* =========================================================
   LIGHTBOX — galeria em tela cheia
   ========================================================= */
.jfb-noticia-lightbox {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.92);
    z-index: 100000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 40px;
    opacity: 0;
    transition: opacity 0.2s ease;
}
.jfb-noticia-lightbox.is-open {
    display: flex;
    opacity: 1;
}
.jfb-noticia-lightbox figure {
    margin: 0;
    max-width: 100%;
    max-height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
}
.jfb-noticia-lightbox-img {
    max-width: 100%;
    max-height: calc(100vh - 120px);
    object-fit: contain;
    border-radius: 6px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
}
.jfb-noticia-lightbox-caption {
    color: #fff;
    font-size: 0.9rem;
    text-align: center;
    max-width: 700px;
    opacity: 0.85;
}
/* Os tres botoes sao <button type="button">, e o reset.css do hello-elementor
   pinta [type=button] de #c36 (rosa) com fundo transparente. `[type=button]` tem
   a MESMA especificidade (0,1,0) que estas classes e e enfileirado DEPOIS do
   front.css, entao ele ganhava por ordem: o X e as setas saiam rosa sobre o
   fundo preto do lightbox, e no hover ganhavam fundo rosa solido. Qualificar
   pelo elemento (`button.classe` = 0,1,1) vence sem precisar de !important, e
   continua perdendo para quem pintar de proposito com classe mais especifica.
   Medido em 18/09/2026: color rgb(204,51,102) -> rgb(255,255,255). */
button.jfb-noticia-lightbox-close,
button.jfb-noticia-lightbox-prev,
button.jfb-noticia-lightbox-next {
    position: absolute;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #fff;
    cursor: pointer;
    border-radius: 50%;
    transition: background 0.18s, transform 0.18s;
}
button.jfb-noticia-lightbox-close:hover,
button.jfb-noticia-lightbox-prev:hover,
button.jfb-noticia-lightbox-next:hover {
    background: rgba(255, 255, 255, 0.25);
    color: #fff;
}
.jfb-noticia-lightbox-close {
    top: 20px;
    right: 20px;
    width: 44px;
    height: 44px;
    font-size: 26px;
    line-height: 0;
}
.jfb-noticia-lightbox-prev,
.jfb-noticia-lightbox-next {
    top: 50%;
    transform: translateY(-50%);
    width: 56px;
    height: 56px;
    font-size: 32px;
    line-height: 0;
}
.jfb-noticia-lightbox-prev { left: 24px; }
.jfb-noticia-lightbox-next { right: 24px; }

@media (max-width: 768px) {
    .jfb-noticia-lightbox {
        padding: 16px;
    }
    .jfb-noticia-lightbox-prev,
    .jfb-noticia-lightbox-next {
        width: 44px;
        height: 44px;
        font-size: 24px;
    }
    .jfb-noticia-lightbox-prev { left: 8px; }
    .jfb-noticia-lightbox-next { right: 8px; }
}

/* =========================================================
   RESPONSIVO ADICIONAL — meta/share em mobile
   ========================================================= */
@media (max-width: 768px) {
    .jfb-noticia {
        padding: 16px 16px 0;
    }
    .jfb-noticia-meta {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
    .jfb-noticia-meta-leitura {
        align-self: flex-start;
    }
    .jfb-noticia-share-label {
        width: 100%;
    }
}

/* =========================================================
   PÁGINA DE AUTOR (/author/{slug}/) — hero + grid de cards
   ========================================================= */
.jfb-author-page {
    max-width: 1200px;
    margin: 0 auto;
    padding: 32px 24px 64px;
    font-family: var(--jfb-stack);
    color: var(--jfb-text);
}

/* Hero do autor */
.jfb-author-hero {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 28px;
    align-items: center;
    padding: 32px 36px;
    margin-bottom: 40px;
    background:
        linear-gradient(135deg, rgba(21, 128, 61, 0.05) 0%, rgba(21, 128, 61, 0.12) 100%),
        #ffffff;
    border: 1px solid #e5e7eb;
    border-left: 4px solid var(--jfb-accent);
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
}

.jfb-author-hero-avatar {
    width: 140px;
    height: 140px;
    flex-shrink: 0;
    border-radius: 50%;
    overflow: hidden;
    border: 5px solid #fff;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.14);
    background: linear-gradient(135deg, var(--jfb-accent), #4ade80);
    display: flex;
    align-items: center;
    justify-content: center;
}

.jfb-author-hero-avatar img {
    width: 140px !important;
    height: 140px !important;
    object-fit: cover;
    display: block;
    border-radius: 50%;
}

.jfb-author-hero-iniciais {
    color: #fff;
    font-size: 3rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.jfb-author-hero-info {
    min-width: 0;
}

.jfb-author-hero-label {
    display: inline-block;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.14em !important;
    color: var(--jfb-accent) !important;
    margin-bottom: 6px !important;
}

.jfb-author-hero-nome {
    font-size: clamp(1.6rem, 1.5vw + 0.9rem, 2.1rem) !important;
    font-weight: 700 !important;
    color: #0a0a0a !important;
    margin: 0 0 10px !important;
    line-height: 1.15 !important;
    letter-spacing: -0.015em !important;
}

.jfb-author-hero-bio {
    font-size: 1rem;
    color: #2a2a2e !important;
    line-height: 1.55;
    margin: 0 0 14px !important;
}

.jfb-author-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    align-items: center;
    font-size: 0.9rem;
    color: var(--jfb-muted);
}

.jfb-author-hero-stat strong {
    color: #0a0a0a;
    font-weight: 700;
    font-size: 1rem;
}

.jfb-author-hero-link {
    color: var(--jfb-accent) !important;
    text-decoration: none !important;
    font-weight: 600;
    border-bottom: 1px solid transparent;
    transition: border-color 0.15s;
}

.jfb-author-hero-link:hover {
    border-bottom-color: var(--jfb-accent);
}

@media (max-width: 600px) {
    .jfb-author-hero {
        grid-template-columns: 1fr;
        text-align: center;
        padding: 24px 20px;
    }
    .jfb-author-hero-avatar {
        margin: 0 auto;
        width: 110px;
        height: 110px;
    }
    .jfb-author-hero-avatar img {
        width: 110px !important;
        height: 110px !important;
    }
    .jfb-author-hero-meta {
        justify-content: center;
    }
}

/* Grid de cards */
.jfb-author-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 24px;
}

.jfb-author-card {
    background: #ffffff;
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid #ececef;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.jfb-author-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.10);
    border-color: var(--jfb-accent);
}

.jfb-author-card-link {
    display: block;
    color: inherit !important;
    text-decoration: none !important;
    border: none !important;
}

.jfb-author-card-thumb {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #f5f5f7;
}

.jfb-author-card-thumb img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    display: block;
    transition: transform 0.5s ease;
}

.jfb-author-card:hover .jfb-author-card-thumb img {
    transform: scale(1.06);
}

.jfb-author-card-thumb-vazio {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #c7c7cc;
}

.jfb-author-card-cat {
    position: absolute;
    top: 12px;
    left: 12px;
    padding: 5px 12px;
    background: rgba(0, 0, 0, 0.78);
    color: #fff !important;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border-radius: 6px;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}

.jfb-author-card-body {
    padding: 18px 20px 20px;
}

.jfb-author-card-title {
    font-size: 1.1rem !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    color: #0a0a0a !important;
    margin: 0 0 10px !important;
    letter-spacing: -0.01em !important;
    /* clamp 2 linhas */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.jfb-author-card-resumo {
    font-size: 0.9rem;
    color: #4a4a4f !important;
    line-height: 1.5;
    margin: 0 0 14px !important;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.jfb-author-card-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    padding-top: 12px;
    border-top: 1px solid #ececef;
}

.jfb-author-card-data {
    font-size: 0.8rem;
    color: var(--jfb-muted);
}

.jfb-author-card-leia {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--jfb-accent);
    transition: transform 0.25s ease;
}

.jfb-author-card:hover .jfb-author-card-leia {
    transform: translateX(3px);
}

/* Paginação */
.jfb-author-paginacao {
    margin-top: 40px;
    display: flex;
    justify-content: center;
    gap: 6px;
    flex-wrap: wrap;
}

.jfb-author-paginacao a,
.jfb-author-paginacao span {
    padding: 8px 14px;
    border-radius: 8px;
    border: 1px solid #d2d2d7;
    background: #fff;
    color: #1d1d1f !important;
    text-decoration: none !important;
    font-size: 0.9rem;
    font-weight: 500;
    transition: background 0.15s, border-color 0.15s;
}

.jfb-author-paginacao a:hover {
    background: #f5f5f7;
    border-color: var(--jfb-accent);
}

.jfb-author-paginacao .current {
    background: var(--jfb-accent) !important;
    color: #fff !important;
    border-color: var(--jfb-accent) !important;
}

.jfb-author-paginacao .dots {
    border: none;
    background: transparent;
    color: var(--jfb-muted) !important;
}

.jfb-author-vazio {
    padding: 80px 24px;
    text-align: center;
    color: var(--jfb-muted);
    font-size: 1.1rem;
}

/* =========================================================
   BOX DO AUTOR — final da postagem
   ========================================================= */
.jfb-noticia-autor-box {
    margin: 56px auto 0;
    max-width: 980px;
    padding: 32px 36px;
    background:
        linear-gradient(135deg, rgba(21, 128, 61, 0.04) 0%, rgba(21, 128, 61, 0.10) 100%),
        #ffffff;
    border: 1px solid #e5e7eb;
    border-left: 4px solid var(--jfb-accent);
    border-radius: 14px;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 28px;
    align-items: flex-start;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
}

.jfb-noticia-autor-avatar-wrap {
    width: 120px;
    height: 120px;
    flex-shrink: 0;
    border-radius: 50%;
    overflow: hidden;
    border: 4px solid #fff;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
    background: linear-gradient(135deg, var(--jfb-accent), #4ade80);
    display: flex;
    align-items: center;
    justify-content: center;
}

.jfb-noticia-autor-avatar,
.jfb-noticia-autor-avatar-wrap img,
.jfb-noticia-autor-avatar-wrap .avatar {
    width: 120px !important;
    height: 120px !important;
    max-width: 120px !important;
    max-height: 120px !important;
    min-width: 120px !important;
    min-height: 120px !important;
    border-radius: 50% !important;
    object-fit: cover !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    border: none !important;
    box-shadow: none !important;
    margin: 0 !important;
    padding: 0 !important;
    position: relative;
    z-index: 1;
}

/* Fallback de iniciais quando não há foto custom nem Gravatar */
.jfb-noticia-autor-iniciais {
    width: 120px;
    height: 120px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.6rem;
    font-weight: 700;
    color: #fff !important;
    background: transparent;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    user-select: none;
}

.jfb-noticia-autor-info {
    min-width: 0;
    padding-top: 4px;
}

.jfb-noticia-autor-label {
    display: inline-block;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.12em !important;
    color: var(--jfb-accent) !important;
    margin-bottom: 6px !important;
    background: transparent !important;
}

.jfb-noticia-autor-nome {
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    color: #0a0a0a !important;
    margin: 0 0 10px 0 !important;
    line-height: 1.2 !important;
    text-transform: none !important;
    letter-spacing: -0.015em !important;
    background: transparent !important;
}

.jfb-noticia-autor-bio {
    font-size: 0.98rem !important;
    color: #2a2a2e !important;
    margin: 0 0 18px 0 !important;
    line-height: 1.6 !important;
    background: transparent !important;
}

.jfb-noticia-autor-acoes {
    display: flex !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
    align-items: center !important;
}

/* Botão — força layout, texto visível e cor branca acima de qualquer override do tema */
.jfb-noticia-autor-btn,
a.jfb-noticia-autor-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    padding: 10px 20px !important;
    min-height: 40px !important;
    background: var(--jfb-accent) !important;
    color: #ffffff !important;
    text-decoration: none !important;
    border: 1px solid var(--jfb-accent) !important;
    border-bottom: 1px solid var(--jfb-accent) !important;
    border-radius: 8px !important;
    font-size: 0.9rem !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    transition: background 0.18s, transform 0.18s, box-shadow 0.18s !important;
    cursor: pointer !important;
    white-space: nowrap !important;
}

.jfb-noticia-autor-btn:hover,
a.jfb-noticia-autor-btn:hover {
    background: var(--jfb-accent-h) !important;
    border-color: var(--jfb-accent-h) !important;
    color: #ffffff !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 12px rgba(21, 128, 61, 0.25) !important;
}

.jfb-noticia-autor-btn-icon {
    width: 16px !important;
    height: 16px !important;
    flex-shrink: 0;
    display: inline-block !important;
    color: inherit !important;
}

/* Texto do botão — explicitamente visível mesmo se tema injetar font-size:0 */
.jfb-noticia-autor-btn-texto {
    display: inline-block !important;
    font-size: 0.9rem !important;
    line-height: 1 !important;
    color: inherit !important;
    visibility: visible !important;
    text-indent: 0 !important;
    width: auto !important;
    height: auto !important;
    opacity: 1 !important;
}

.jfb-noticia-autor-btn-secundario,
a.jfb-noticia-autor-btn-secundario {
    background: #ffffff !important;
    color: var(--jfb-accent) !important;
    border: 1px solid var(--jfb-border) !important;
}

.jfb-noticia-autor-btn-secundario:hover,
a.jfb-noticia-autor-btn-secundario:hover {
    background: #f5f5f7 !important;
    color: var(--jfb-accent) !important;
    border-color: var(--jfb-accent) !important;
}

@media (max-width: 600px) {
    .jfb-noticia-autor-box {
        grid-template-columns: 1fr;
        text-align: center;
        padding: 24px 20px;
        gap: 18px;
    }
    .jfb-noticia-autor-avatar-wrap {
        margin: 0 auto;
        width: 96px;
        height: 96px;
    }
    .jfb-noticia-autor-avatar {
        width: 96px !important;
        height: 96px !important;
    }
    .jfb-noticia-autor-acoes {
        justify-content: center !important;
    }
    .jfb-noticia-autor-btn {
        flex: 1 1 auto;
        min-width: 140px;
    }
}

/* === Botão WhatsApp no box do autor === */
.jfb-noticia-autor-btn-whatsapp,
a.jfb-noticia-autor-btn-whatsapp {
    background: #25d366 !important;
    border-color: #25d366 !important;
    color: #ffffff !important;
}
.jfb-noticia-autor-btn-whatsapp:hover,
a.jfb-noticia-autor-btn-whatsapp:hover {
    background: #1ebe5b !important;
    border-color: #1ebe5b !important;
    color: #ffffff !important;
    box-shadow: 0 4px 12px rgba(37, 211, 102, 0.3) !important;
}

/* Ícone BRANCO nos botões verdes (primário + WhatsApp) — evita verde sobre verde.
   Os botões secundários (fundo branco) mantêm o ícone verde via color:inherit. */
.jfb-noticia-autor-btn:not(.jfb-noticia-autor-btn-secundario) .jfb-noticia-autor-btn-icon,
.jfb-noticia-autor-btn:not(.jfb-noticia-autor-btn-secundario) .jfb-noticia-autor-btn-icon path {
    color: #ffffff !important;
    fill: #ffffff !important;
}

/* ============================================================
   Modal de contato (rodapé "Sobre o autor")
   ============================================================ */
.jfb-contato-modal {
    position: fixed !important;
    inset: 0 !important;
    z-index: 100000 !important;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    box-sizing: border-box;
}
.jfb-contato-modal.is-open {
    display: flex !important;
}
/* Paleta clara FIXA (não inverte no dark mode do SO) — combina com o card branco do post */
.jfb-contato-overlay {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.4);
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
}
.jfb-contato-box {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 460px;
    background: #ffffff !important;
    color: #0a0a0a !important;
    border-radius: 16px;
    border: 1px solid #ececef;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.2);
    padding: 28px;
    font-family: var(--jfb-stack);
    max-height: calc(100vh - 40px);
    overflow-y: auto;
    animation: jfb-contato-in 0.18s ease-out;
}
@keyframes jfb-contato-in {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: translateY(0); }
}
.jfb-contato-fechar {
    position: absolute !important;
    top: 12px;
    right: 12px;
    width: 34px !important;
    height: 34px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 50% !important;
    font-size: 24px !important;
    line-height: 1 !important;
    color: #86868b !important;
    cursor: pointer;
    padding: 0 !important;
    transition: background 0.15s, color 0.15s;
}
.jfb-contato-fechar:hover {
    background: #f0f0f2 !important;
    color: #0a0a0a !important;
}
.jfb-contato-titulo {
    margin: 0 0 4px !important;
    padding: 0 !important;
    font-size: 1.4rem !important;
    font-weight: 700 !important;
    color: #0a0a0a !important;
}
.jfb-contato-sub {
    margin: 0 0 18px !important;
    font-size: 0.92rem !important;
    color: #5a5a60 !important;
}
.jfb-contato-label {
    display: block;
    font-size: 0.85rem;
    font-weight: 600;
    color: #1f1f23;
    margin-bottom: 14px;
}
.jfb-contato-label input,
.jfb-contato-label textarea {
    display: block !important;
    width: 100% !important;
    margin-top: 5px !important;
    padding: 10px 12px !important;
    font-size: 0.95rem !important;
    font-family: inherit !important;
    color: #0a0a0a !important;
    background: #f5f5f7 !important;
    border: 1px solid #e2e2e6 !important;
    border-radius: 8px !important;
    box-sizing: border-box !important;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
}
.jfb-contato-label input:focus,
.jfb-contato-label textarea:focus {
    outline: none !important;
    background: #ffffff !important;
    border-color: #15803d !important;
    box-shadow: 0 0 0 3px rgba(21, 128, 61, 0.12) !important;
}
.jfb-contato-label input::placeholder,
.jfb-contato-label textarea::placeholder { color: #9a9aa0 !important; }
.jfb-contato-label textarea { resize: vertical; min-height: 90px; }

/* honeypot — escondido de humanos */
.jfb-contato-hp {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

.jfb-contato-feedback {
    font-size: 0.88rem;
    margin: 2px 0 12px;
    min-height: 1px;
}
.jfb-contato-feedback.is-success { color: #15803d !important; font-weight: 600; }
.jfb-contato-feedback.is-error   { color: #dc2626 !important; font-weight: 600; }

.jfb-contato-acoes {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    margin-top: 6px;
}
.jfb-contato-btn-cancelar,
.jfb-contato-btn-enviar {
    padding: 10px 18px !important;
    font-size: 0.9rem !important;
    font-weight: 600 !important;
    border-radius: 8px !important;
    cursor: pointer;
    font-family: inherit !important;
    border: 1px solid transparent !important;
}
.jfb-contato-btn-cancelar {
    background: #ffffff !important;
    color: #5a5a60 !important;
    border-color: #e2e2e6 !important;
}
.jfb-contato-btn-cancelar:hover { background: #f5f5f7 !important; color: #0a0a0a !important; }
.jfb-contato-btn-enviar {
    background: #15803d !important;
    color: #fff !important;
    border-color: #15803d !important;
}
.jfb-contato-btn-enviar:hover { background: #166534 !important; border-color: #166534 !important; }
.jfb-contato-btn-enviar:disabled { opacity: 0.6 !important; cursor: default; }

@media (max-width: 480px) {
    .jfb-contato-box { padding: 22px 18px; }
    .jfb-contato-acoes { flex-direction: column-reverse; }
    .jfb-contato-btn-cancelar,
    .jfb-contato-btn-enviar { width: 100% !important; }
}

/* ===== Galerias clássicas [gallery] em grid responsivo (add Claude) ===== */
.jfb-noticia-card .gallery{display:grid !important;gap:12px;margin:22px 0;width:100%}
.jfb-noticia-card .gallery br{display:none}
.jfb-noticia-card .gallery-columns-2{grid-template-columns:repeat(2,1fr)}
.jfb-noticia-card .gallery-columns-3{grid-template-columns:repeat(3,1fr)}
.jfb-noticia-card .gallery-columns-4{grid-template-columns:repeat(4,1fr)}
.jfb-noticia-card .gallery-columns-5{grid-template-columns:repeat(5,1fr)}
.jfb-noticia-card .gallery-columns-6{grid-template-columns:repeat(6,1fr)}
.jfb-noticia-card .gallery-columns-7{grid-template-columns:repeat(7,1fr)}
.jfb-noticia-card .gallery-columns-8{grid-template-columns:repeat(8,1fr)}
.jfb-noticia-card .gallery-columns-9{grid-template-columns:repeat(9,1fr)}
.jfb-noticia-card .gallery-item{margin:0 !important;width:auto !important;text-align:center}
.jfb-noticia-card .gallery-icon{margin:0}
.jfb-noticia-card .gallery-icon img{width:100% !important;height:auto;aspect-ratio:1/1;object-fit:cover;border-radius:8px;display:block;border:0;transition:transform .25s ease,box-shadow .25s ease}
.jfb-noticia-card .gallery-icon img:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(15,61,28,.16)}
.jfb-noticia-card .gallery-caption{font-size:.82rem;color:#6b7280;margin-top:6px}
@media(max-width:900px){.jfb-noticia-card [class*="gallery-columns-"]{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.jfb-noticia-card .gallery{grid-template-columns:repeat(2,1fr) !important}}

/* === Ícones SVG soltos no conteúdo (herança de layouts antigos do Elementor) ===
   Vêm só com viewBox, sem width/height: sem CSS eles esticam e viram blocos gigantes.
   Limita ao tamanho de ícone, alinha com o texto e herda a cor do link. */
.jfb-noticia-texto svg{width:1.5em !important;height:1.5em !important;max-width:28px !important;max-height:28px !important;vertical-align:middle;fill:currentColor;flex:none}
/* Só o link que contém o ícone vira inline-flex — NÃO usar seletor amplo em `a`,
   senão quebra os <a> que envolvem as imagens da galeria. */
.jfb-noticia-texto a:has(> svg){display:inline-flex;align-items:center;gap:8px}

/* =========================================================
   GALERIA EM CONTEÚDO (.post-galeria) — grid multi-coluna
   (a estrutura vinha sem CSS de grid → empilhava em 1 coluna)
   ========================================================= */
.post-galeria{
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 16px;
    margin: 26px 0;
}
.post-galeria .pg-item{ margin: 0; }
.post-galeria .pg-zoom{
    display: block;
    border-radius: 8px;
    overflow: hidden;
    cursor: zoom-in;
}
.post-galeria .pg-item img{
    width: 100%;
    height: 220px;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
}
.post-galeria .pg-zoom:hover img{ transform: scale(1.03); }
.post-galeria .pg-item figcaption:empty{ display: none; }
.post-galeria .pg-item figcaption{ font-size: .82rem; color: #5b6b62; margin-top: 6px; }
@media (max-width: 600px){
    .post-galeria{ grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
    .post-galeria .pg-item img{ height: 150px; }
}

/* --------------------------------------------------------------------------
   Galerias "órfãs" de conteúdo importado (figuras .gallery-item coladas sem o
   contêiner .gallery). O PHP agrupa cada sequência em .jfb-galeria; aqui vira
   grade. Sem isso cada figura ocupava a largura toda e a página esticava.
   -------------------------------------------------------------------------- */
.jfb-galeria{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 300px));
    gap: 12px;
    margin: 26px 0;
    clear: both;
}
.jfb-galeria .gallery-item{
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    display: block;
}
.jfb-galeria .gallery-item a,
.jfb-galeria .gallery-item img{ display: block; width: 100%; }
.jfb-galeria .gallery-item img{
    aspect-ratio: 1;
    height: auto;
    object-fit: cover;
    border-radius: 12px;
    border: 1px solid #e4ece7 !important;
    transition: transform .18s ease, box-shadow .18s ease;
}
.jfb-galeria .gallery-item a:hover img{
    transform: scale(1.04);
    box-shadow: 0 14px 30px -14px rgba(6, 78, 59, .45);
}
.jfb-galeria .gallery-caption,
.jfb-galeria .wp-caption-text{
    font-size: .78rem;
    line-height: 1.35;
    color: #5b6b62;
    margin-top: 6px;
    text-align: center;
}
.jfb-galeria br{ display: none; }
@media (max-width: 600px){
    .jfb-galeria{ grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 9px; }
}

/* --------------------------------------------------------------------------
   "Icon boxes" do Elementor coladas como HTML cru (ícone SVG solto + <h3> com
   o link). O PHP transforma cada uma em .jfb-linkcard e agrupa em .jfb-linkcards.
   -------------------------------------------------------------------------- */
.jfb-linkcards{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 14px;
    margin: 26px 0;
}
.jfb-linkcard{
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 18px;
    background: #fff;
    border: 1px solid #e4ece7;
    border-radius: 16px;
    text-decoration: none !important;
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.jfb-linkcard:hover{
    transform: translateY(-3px);
    border-color: #cfe6d8;
    box-shadow: 0 20px 40px -22px rgba(6, 78, 59, .35);
}
.jfb-linkcard .lc-ic{
    flex: none;
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: #f9f7f4;
}
.jfb-linkcard .lc-ic svg{
    width: 21px;
    height: 21px;
    fill: #047857;
    display: block;
}
.jfb-linkcard .lc-tx{
    font-weight: 600;
    font-size: .95rem;
    line-height: 1.35;
    color: #064e3b;
}
.jfb-linkcard:hover .lc-tx{ color: #047857; }
@media (max-width: 600px){
    .jfb-linkcards{ grid-template-columns: 1fr; gap: 11px; }
}

/* Títulos do corpo da notícia não devem herdar o justify do texto —
   justificado em título curto vira aquele espaçamento esticado feio. */
.jfb-noticia-texto h1,
.jfb-noticia-texto h2,
.jfb-noticia-texto h3,
.jfb-noticia-texto h4{
    text-align: left !important;
    text-wrap: balance;
}
.jfb-linkcard, .jfb-linkcard .lc-tx{ text-align: left !important; }
.jfb-galeria .gallery-caption, .jfb-galeria .wp-caption-text{ text-align: center !important; }

/* Vídeos incorporados (EmbedPress/YouTube) vinham como inline-block encostado
   à esquerda dentro do texto — centraliza e deixa responsivo. */
.jfb-noticia-texto .ose-youtube,
.jfb-noticia-texto .ose-embedpress-responsive,
.jfb-noticia-texto .epyt-video-wrapper,
.jfb-noticia-texto .wp-video,
.jfb-noticia-texto .wp-block-embed__wrapper{
    display: block !important;
    margin-left: auto !important;
    margin-right: auto !important;
    max-width: 100% !important;
}
.jfb-noticia-texto .ose-youtube iframe,
.jfb-noticia-texto .epyt-video-wrapper iframe{
    display: block;
    width: 100%;
    max-width: 100%;
    border-radius: 14px;
}

/* Imagens soltas agrupadas pelo PHP (conteúdo importado sem <figure>):
   o <span class="jfb-galeria"> precisa virar grade e as fotos perdem o
   width="180" que vinha no HTML antigo. */
span.jfb-galeria{ display: grid; }
.jfb-galeria > a{ display: block; }
.jfb-galeria > img,
.jfb-galeria > a > img{
    display: block;
    width: 100% !important;
    max-width: none !important;
    height: auto;
    aspect-ratio: 1;
    object-fit: cover;
    margin: 0 !important;
    float: none !important;
    border-radius: 12px;
    border: 1px solid #e4ece7;
    transition: transform .18s ease, box-shadow .18s ease;
}
.jfb-galeria > a:hover img{
    transform: scale(1.04);
    box-shadow: 0 14px 30px -14px rgba(6, 78, 59, .45);
}

/* termo buscado, destacado nos resultados */
.jfb-author-card-title mark{ background: #fdf3d3; color: inherit; padding: 0 .12em; border-radius: 3px; }

/* Zoom: a foto do texto abre no lightbox e lá amplia no ponto clicado. */
.jfb-noticia-texto a[data-lightbox]{ cursor: zoom-in; }
.jfb-galeria > a{ cursor: zoom-in; }
.jfb-noticia-lightbox-img{ cursor: zoom-in; transition: transform .25s ease; }
.jfb-noticia-lightbox-img.is-zoom{ cursor: zoom-out; }
@media (prefers-reduced-motion: reduce){ .jfb-noticia-lightbox-img{ transition: none; } }
