/* ==========================================================================
   PRÓ-IFF — compatibilidade Elementor × theme.css
   Os contêineres do Elementor com a classe "pi-raw" ficam "neutros":
   sem espaçamentos próprios, e o visual vem das classes originais do site.
   ========================================================================== */

/* contêiner neutro (equivalente a uma <div> / <section> comum) */
body:not(#pi-x) .e-con.pi-raw {
  --display: block;
  --flex-direction: row;
  --flex-wrap: nowrap;
  --justify-content: normal;
  --align-items: normal;
  --align-content: normal;
  --align-self: auto;
  --flex-basis: auto; --flex-grow: 0; --flex-shrink: 1;
  --container-widget-align-self: auto;
  --container-widget-flex-grow: 0;
  --width: auto;
  --min-height: 0;
  --gap: 0px; --row-gap: 0px; --column-gap: 0px;
  --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
  --padding-block-start: 0px; --padding-block-end: 0px; --padding-inline-start: 0px; --padding-inline-end: 0px;
  --margin-top: 0px; --margin-right: 0px; --margin-bottom: 0px; --margin-left: 0px;
  --margin-block-start: 0px; --margin-block-end: 0px; --margin-inline-start: 0px; --margin-inline-end: 0px;
  --container-widget-width: auto;
  --overflow: visible;
  --position: static;
  --z-index: auto;
}
/* nível de página: sem limitação de largura do Elementor */
:is([data-elementor-id]) > .e-con.pi-raw { max-width: none; margin-inline: 0; }
/* os elementos que no site original já tinham posição própria mantêm o theme.css */
.e-con.pi-raw > .elementor-widget,
.e-con.pi-raw > .elementor-widget > .elementor-widget-container { width: auto; max-width: none; margin: 0; }
.e-con.pi-raw > .elementor-widget:not(:last-child) { margin-block-end: 0; }

/* seções */
body section.e-con.pi-raw { position: relative; }

/* widgets de texto: sem margens extras do Elementor, mantém a tipografia do tema */
.elementor-widget-text-editor { color: inherit; font-family: inherit; font-size: inherit; line-height: inherit; }
.elementor-widget-text-editor > *:last-child,
.elementor-widget-text-editor .elementor-widget-container > *:last-child { margin-bottom: 0; }
/* o widget de texto dentro de um bloco "display:contents" deixa os filhos participarem do layout */
.e-con .pi-contents, .pi-contents > .elementor-widget-container { display: contents; }

/* No site publicado, os invólucros dos widgets ficam "transparentes": o conteúdo
   participa direto das grades/flex do tema, como no HTML original.
   (No editor do Elementor eles continuam com caixa, para dar para clicar e editar.) */
body:not(.elementor-editor-active) .elementor-widget:not(.fig),
body:not(.elementor-editor-active) .elementor-widget:not(.fig) > .elementor-widget-container { display: contents; }

/* imagens (widget Imagem com as classes originais "fig ...") */
.elementor-widget-image.fig { overflow: hidden; padding: 0; }
.elementor-widget-image.fig > .elementor-widget-container,
.elementor-widget-image.fig a { display: block; height: 100%; }
body .elementor-widget-image.fig img { width: 100%; height: 100%; max-height: none; object-fit: cover; object-position: center; display: block; border-radius: 0; box-shadow: none; aspect-ratio: auto; }
body .elementor img.fig { border-radius: var(--radius); box-shadow: var(--shadow-1); }

/* cabeçalho/rodapé do Criador de Temas: os invólucros do Elementor não podem
   prender o cabeçalho fixo (position: sticky) */
.elementor-location-header,
.elementor-location-header .e-con,
.elementor-location-header .elementor-widget,
.elementor-location-header .elementor-widget-container,
.elementor-location-footer,
.elementor-location-footer .e-con,
.elementor-location-footer .elementor-widget,
.elementor-location-footer .elementor-widget-container { display: contents; }

/* widgets PRÓ-IFF que geram <section> inteira */
.elementor-widget-pi_page_hero,
.elementor-widget-pi_page_hero > .elementor-widget-container { display: contents; }

/* sanfona dentro do conteúdo do widget de texto */
.pi-acc-body, .pi-accordion, .pi-editais, .pi-documentos, .pi-licitacoes { display: contents; }
/* o editor de texto às vezes envolve botões/rótulos soltos em <p>: o <p> some do layout */
.elementor-widget-text-editor p:has(> .eyebrow:only-child),
.elementor-widget-text-editor p:has(> .btn),
.elementor-widget-text-editor p:has(> .card-link:only-child),
.elementor-widget-text-editor p:has(> .news-more:only-child) { display: contents; }
.pi-empty-msg { color: var(--ink-3); }
.accordion-trigger { font: inherit; }

/* Editor do Elementor: deixa as áreas vazias visíveis ao editar */
.elementor-editor-active .e-con.pi-raw:empty { min-height: 40px; outline: 1px dashed rgba(63, 157, 118, .5); }
.elementor-editor-active .reveal, .elementor-editor-active .reveal-3d, .elementor-editor-active .reveal-l,
.elementor-editor-active .reveal-r, .elementor-editor-active .reveal-zoom, .elementor-editor-active .reveal-stagger { opacity: 1 !important; transform: none !important; }

/* barra de admin não cobre o cabeçalho fixo */
body.admin-bar:not(#pi-x) .site-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar:not(#pi-x) .site-header { top: 46px; } }

/* texto do topo (home e páginas internas) fica parado ao rolar — sem efeito parallax */
body:not(#pi-x) .hero .container,
html.js body:not(#pi-x) .page-hero > .container { transform: none !important; }

/* página de notícia (vinha num <style> das páginas noticia-*.html) */
body:not(#pi-x) .article-hero-img { width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: var(--radius); margin-bottom: 14px; box-shadow: var(--shadow-2); }
body:not(#pi-x) .article-meta { display: flex; gap: 14px; align-items: center; color: var(--ink-3); font-size: .85rem; margin-bottom: 18px; flex-wrap: wrap; }
body:not(#pi-x) .article-body { max-width: 760px; margin: 0 auto; }
body:not(#pi-x) .article-body p { font-size: 1.02rem; line-height: 1.75; }
body:not(#pi-x) .article-body h2 { margin-top: 36px; }
.pi-projetos, .pi-links { display: contents; }

/* banner da página inicial mais compacto: menos respiro e título em menos linhas */
body:not(#pi-x) section.hero { min-height: 0; }
body:not(#pi-x) .hero .container { padding-block: clamp(56px, 6.5vw, 96px); }
body:not(#pi-x) .hero h1.hero-title { max-width: min(30em, 100%); font-size: clamp(1.45rem, 1.1rem + 1.2vw, 2.05rem); line-height: 1.25; margin-bottom: 18px; }
@media (min-width: 901px) { body:not(#pi-x) .hero h1.hero-title { max-width: min(30em, 66%); } }
body:not(#pi-x) .hero .hero-eyebrow { margin-bottom: 18px; }
body:not(#pi-x) .hero p.lead.hero-intro { text-align: left; hyphens: manual; -webkit-hyphens: manual; margin-bottom: 26px; }
