/* Regras de estado ligadas por JS em tempo de execucao.
   Recuperadas do espelho depois que o css_morto as cortou por engano:
   o corpus lia so arquivos .js, e o JS deste site e inline no HTML.
   Ver css_repara.py. */
#et_search_icon:hover,.mobile_menu_bar:before,.mobile_menu_bar:after,.et_toggle_slide_menu:after,.et-social-icon a:hover,.et_pb_sum,.et_pb_pricing li a,.et_pb_pricing_table_button,.et_overlay:before,.entry-summary p.price ins,.et_pb_member_social_links a:hover,.et_pb_widget li a:hover,.et_pb_filterable_portfolio .et_pb_portfolio_filters li a.active,.et_pb_filterable_portfolio .et_pb_portofolio_pagination ul li a.active,.et_pb_gallery .et_pb_gallery_pagination ul li a.active,.wp-pagenavi span.current,.wp-pagenavi a:hover,.nav-single a,.tagged_as a,.posted_in a{color:#009ace}
.gal-header.slim{ height: var(--h-slim); }
.gal-drawer.open{ transform: translateX(0); }
.gal-mobile-trigger.active::after{ transform: rotate(-135deg); }
.gal-overlay.show{ opacity: 1; pointer-events: all; }
.gal-search-overlay.open{
  opacity: 1;
  pointer-events: all;
}
.gal-search-overlay.open .gal-search-box{ transform: translateY(0); }
.cert-form-error.show{display:block}
.cert-form-success.show{display:block}
.ai-tab.on{color:#fff;background:linear-gradient(135deg,#00a2e8,#0074c7);border-color:transparent}
.ai-panel.on{display:block}
#gpActiveIA.aip-unlocked .aip-stage{display:block}
/* ── LAYOUT ────────────────────────────────────────────────────────────────
   🔴 HEADER ENCAIXOTADO NOS ARTIGOS. Nos 14.352 gerados pelo artigos.py o
   `moldura()` removeu o `.elementor-container` que encaixotava — o mesmo padrao
   que ja tinha derrubado o header antes. Medido a 1920px: institucional 1140px
   centrado, artigo 1905px full. Boxar pelo wrapper resolve sem tocar no HTML e
   e inofensivo onde ja esta boxado (la o wrapper ja e <= 1140). */
.gal-header-wrapper{max-width:1140px;margin-left:auto;margin-right:auto}
