/**
 * Arquivo: public/assets/public.css
 * Plugin:  Jet Listing Grid
 * Prefixo: jlg-
 */
.jlg-listing-wrap { width:100%; }
.jlg-listing-wrap.jlg-loading { opacity:.5; pointer-events:none; transition:opacity .2s; }
.jlg-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; width:100%; }
.jlg-equal-height .jlg-card { display:flex; flex-direction:column; height:100%; }
.jlg-equal-height .jlg-card-inner { flex:1; display:flex; flex-direction:column; }
.jlg-card { overflow:hidden; }
.jlg-card-inner { height:100%; }

/* ==================================================================
 * Espaçamento interno do card — o Kit do Elementor define
 * --widgets-spacing:20px (post-9.css), aplicado entre os widgets do
 * template. Reduz para 5px (mínimo). Escopado ao .jlg-card.
 * ================================================================== */
.jlg-card { --widgets-spacing:5px; --widgets-spacing-row:5px; --widgets-spacing-column:5px; }

/* ==================================================================
 * ⚠️ NÃO REMOVER — Espaço entre teses.
 * O vão vem do padding vertical dos containers do template Elementor
 * (.e-con / .e-con-inner) dentro do card. Essas regras são injetadas
 * INLINE por card (<style> em .jlg-card-inner) com especificidade
 * (0,3,0): ".elementor-NNNN .elementor-element.elementor-element-XXXX".
 * Por isso aqui usamos (0,4,0) — ".elementor-element.e-con.e-con" —
 * para vencer o inline SEM !important.
 * Zera só o eixo vertical (block); o ritmo interno (flex gap entre
 * título/subtítulo/corpo/citação) é preservado. Containers vazios do
 * template são colapsados (removem espaço residual).
 * Espaço final ENTRE teses = "Gap (px)" do widget Listing Grid (0 ou 5).
 * ================================================================== */
.jlg-card .elementor-element.e-con.e-con,
.jlg-card .elementor-element.e-con.e-con > .e-con-inner {
    padding-top: 0;
    padding-bottom: 0;
    padding-block-start: 0;
    padding-block-end: 0;
}
.jlg-card .elementor-element.e-con.e-con:empty { display: none; }

/* Dynamic Image */
.jlg-dynamic-image-wrap { display:block; overflow:hidden; }
.jlg-dynamic-img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s; }
.jlg-img-zoom:hover .jlg-dynamic-img,
.jlg-dynamic-image-wrap:hover .jlg-img-zoom { transform:scale(1.04); }
.jlg-img-link { display:block; }

/* Dynamic Field */
.jlg-dynamic-field { display:block; }
.jlg-dynamic-field a { color:inherit; text-decoration:none; }
/* wysiwyg (wpautop) na Dynamic Tag dentro de widget Título do Elementor:
   o conteúdo vira <p> dentro de .elementor-heading-title. Neutraliza a margem
   nativa do <p>; o espaço entre parágrafos da própria tese fica abaixo. */
.jlg-card .elementor-heading-title p { margin:0; }
.jlg-card .elementor-heading-title p:not(:last-child) { margin-bottom:1em; }

/* Dynamic Link */
.jlg-dynamic-link { display:inline-block; text-decoration:none; transition:background-color .15s,color .15s; }

/* Sem resultados */
.jlg-no-results { padding:40px; text-align:center; color:#888; }
.jlg-placeholder { padding:20px; background:#f9f9f9; border:2px dashed #ccc; text-align:center; color:#888; font-size:13px; }

/* Paginação */
.jlg-pagination { display:flex; align-items:center; justify-content:center; gap:6px; margin-top:32px; flex-wrap:wrap; }
.jlg-page-btn { width:36px; height:36px; display:flex; align-items:center; justify-content:center; border:1px solid #ddd; border-radius:4px; background:#fff; cursor:pointer; font-size:14px; color:#333; transition:background .15s; }
.jlg-page-btn:hover { background:#f5f5f5; }
.jlg-page-btn.jlg-page-active { background:#0073aa; border-color:#0073aa; color:#fff; pointer-events:none; }
.jlg-load-more-btn { padding:10px 28px; background:#0073aa; color:#fff; border:none; border-radius:4px; font-size:15px; cursor:pointer; transition:background .15s; }
.jlg-load-more-btn:hover { background:#005a87; }
.jlg-load-more-btn:disabled { opacity:.5; pointer-events:none; }
.jlg-infinite-trigger { height:1px; width:100%; }

/* Filtros */
.jlg-filters-wrap { margin-bottom:24px; }
.jlg-filters-row { display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end; }
.jlg-filters-column { display:flex; flex-direction:column; gap:12px; }
.jlg-filter-item { display:flex; flex-direction:column; gap:4px; min-width:160px; }
.jlg-filter-label { font-size:13px; font-weight:600; color:#444; }
.jlg-filter-search,.jlg-filter-meta,.jlg-filter-tax-select { padding:8px 12px; border:1px solid #ccc; border-radius:4px; font-size:14px; width:100%; box-sizing:border-box; }
.jlg-filter-tax-list { display:flex; flex-direction:column; gap:6px; }
.jlg-filter-option { display:flex; align-items:center; gap:6px; font-size:13px; cursor:pointer; }
.jlg-filter-option small { color:#888; }
.jlg-filter-range-wrap { display:flex; flex-direction:column; gap:6px; }
.jlg-range-min,.jlg-range-max { width:100%; }
.jlg-range-values { font-size:12px; color:#666; text-align:center; }
.jlg-filter-reset { padding:8px 16px; background:transparent; border:1px solid #ccc; border-radius:4px; font-size:13px; cursor:pointer; color:#666; transition:background .15s; }
.jlg-filter-reset:hover { background:#f0f0f0; color:#333; }

/* Autocomplete de busca */
.jlg-suggest-box { position:absolute; top:100%; left:0; right:0; z-index:50; margin-top:4px; max-height:320px; overflow-y:auto; background:#fff; border:1px solid #ccc; border-radius:4px; box-shadow:0 4px 16px rgba(0,0,0,.12); }
.jlg-suggest-item { padding:10px 12px; cursor:pointer; border-bottom:1px solid #f0f0f0; transition:background .12s; }
.jlg-suggest-item:last-child { border-bottom:none; }
.jlg-suggest-item:hover { background:#f5f7fa; }
.jlg-suggest-title { font-size:13px; font-weight:600; color:#333; margin-bottom:2px; }
.jlg-suggest-snippet { font-size:12px; color:#666; line-height:1.4; }
.jlg-suggest-snippet mark { background:#fff3a3; color:inherit; padding:0 1px; border-radius:2px; }

@media (max-width:1024px) { .jlg-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .jlg-grid { grid-template-columns:1fr; } .jlg-filters-row { flex-direction:column; } }