/******* Do not edit this file *******
Simple Custom CSS and JS - by Silkypress.com
Saved: Jun 18 2026 | 23:31:44 */
/* =========================================================
SPAIC - CSS Overrides Footer FINAL
Carregar no FOOTER, depois do CSS base HEAD.
Objetivo:

* Corrigir cards/imagens da homepage
* Header fixo APENAS em desktop
* Menu desktop profissional
* Submenus e subsubmenus funcionais
* Mobile entregue ao plugin Responsive Menu
  ========================================================= */

:root {
--spaic-font-main: 'Mont SPAIC', Aptos, 'Segoe UI', Arial, sans-serif;
--spaic-font-body: 'Mont SPAIC', Aptos, 'Segoe UI', Arial, sans-serif;
--spaic-font-heading: 'Mont SPAIC', Aptos, 'Segoe UI', Arial, sans-serif;

--spaic-green: #509944;
--spaic-dark-green: #264a3f;
--spaic-gray: #afb0b1;
--spaic-light-green: #c6ff84;
--spaic-light-green-soft: rgba(198,255,132,0.18);
--spaic-light-green-hover: rgba(198,255,132,0.28);
}

/* =========================================================

1. Homepage: cards rápidos + notícias
   ========================================================= */

html body.home .elementor .spaic-el-card,
html body.home .elementor .spaic-news-card {
border-radius: 16px !important;
overflow: hidden !important;
padding: 0 !important;
background: #ffffff !important;
}

html body.home .elementor .spaic-el-card > .elementor-widget-wrap,
html body.home .elementor .spaic-news-card > .elementor-widget-wrap {
border-radius: 16px !important;
overflow: hidden !important;
padding: 0 22px 24px 22px !important;
background: #ffffff !important;
}

html body.home .elementor .spaic-el-card .spaic-img-placeholder,
html body.home .elementor .spaic-el-card .elementor-widget-image,
html body.home .elementor .spaic-news-card .spaic-img-placeholder,
html body.home .elementor .spaic-news-card .elementor-widget-image {
width: calc(100% + 44px) !important;
max-width: calc(100% + 44px) !important;
height: 150px !important;
min-height: 150px !important;
margin: 0 -22px 20px -22px !important;
padding: 0 !important;
border-radius: 16px 16px 0 0 !important;
overflow: hidden !important;
background: var(--spaic-light-green-soft) !important;
border: 0 !important;
border-bottom: 1px solid rgba(175,176,177,0.55) !important;
}

html body.home .elementor .spaic-el-card .spaic-img-placeholder .elementor-widget-container,
html body.home .elementor .spaic-el-card .elementor-widget-image .elementor-widget-container,
html body.home .elementor .spaic-el-card figure,
html body.home .elementor .spaic-news-card .spaic-img-placeholder .elementor-widget-container,
html body.home .elementor .spaic-news-card .elementor-widget-image .elementor-widget-container,
html body.home .elementor .spaic-news-card figure {
width: 100% !important;
max-width: 100% !important;
height: 100% !important;
min-height: 150px !important;
margin: 0 !important;
padding: 0 !important;
border-radius: 16px 16px 0 0 !important;
overflow: hidden !important;
background: transparent !important;
}

html body.home .elementor .spaic-el-card .spaic-img-placeholder img,
html body.home .elementor .spaic-el-card .elementor-widget-image img,
html body.home .elementor .spaic-news-card .spaic-img-placeholder img,
html body.home .elementor .spaic-news-card .elementor-widget-image img {
display: block !important;
width: 100% !important;
max-width: none !important;
height: 100% !important;
max-height: none !important;
object-fit: cover !important;
object-position: center center !important;
border-radius: 0 !important;
margin: 0 !important;
padding: 0 !important;
}

html body.home .elementor .spaic-el-card .spaic-card-title,
html body.home .elementor .spaic-el-card .spaic-card-text,
html body.home .elementor .spaic-el-card .spaic-button-link,
html body.home .elementor .spaic-el-card .spaic-button-primary {
padding-left: 0 !important;
padding-right: 0 !important;
}

html body.home .spaic-card-text,
html body.home .spaic-card-text p,
html body.home .spaic-el-card .elementor-widget-text-editor,
html body.home .spaic-el-card .elementor-widget-text-editor p {
line-height: 1.32 !important;
}

html body.home .spaic-news-card .spaic-news-title .elementor-heading-title,
html body.home .spaic-news-card .spaic-news-title h2,
html body.home .spaic-news-card .spaic-news-title h3 {
font-size: 20px !important;
line-height: 1.16 !important;
font-weight: 700 !important;
letter-spacing: -0.01em !important;
}

html body.home .spaic-news-card .spaic-news-text,
html body.home .spaic-news-card .spaic-news-text p,
html body.home .spaic-news-card .elementor-widget-text-editor,
html body.home .spaic-news-card .elementor-widget-text-editor p {
font-size: 17px !important;
line-height: 1.38 !important;
font-weight: 400 !important;
letter-spacing: -0.005em !important;
}

/* =========================================================
2. Header fixo APENAS em desktop
========================================================= */

@media (min-width: 1181px) {
html body {
padding-top: 128px !important;
}

html body.admin-bar {
padding-top: 160px !important;
}

html body.home {
padding-top: 98px !important;
}

html body.home.admin-bar {
padding-top: 130px !important;
}

html body:not(.home) {
padding-top: 128px !important;
}

html body:not(.home).admin-bar {
padding-top: 160px !important;
}

html body .site-header,
html body header.site-header,
html body #masthead,
html body #masthead.site-header {
position: fixed !important;
top: 0 !important;
left: 0 !important;
right: 0 !important;
width: 100% !important;
z-index: 1000000 !important;
background: #f3ffed !important;
border-bottom: 3px solid var(--spaic-green) !important;
box-shadow: 0 10px 28px rgba(38,74,63,0.10) !important;
backdrop-filter: none !important;
-webkit-backdrop-filter: none !important;
overflow: visible !important;
}

html body.admin-bar .site-header,
html body.admin-bar header.site-header,
html body.admin-bar #masthead,
html body.admin-bar #masthead.site-header {
top: 32px !important;
}

html body.home .n2-section-smartslider,
html body.home #n2-ss-2,
html body.home .elementor-section:first-of-type,
html body.home .elementor-top-section:first-of-type {
margin-top: 0 !important;
}

html body .site-header .topbar,
html body .site-header .header-inner,
html body .site-header .container {
min-height: 76px !important;
align-items: center !important;
overflow: visible !important;
}

html body .site-header .site-logo,
html body .site-header .custom-logo-link {
display: flex !important;
align-items: center !important;
}

html body .site-header img.custom-logo,
html body .site-header .custom-logo-link img,
html body .site-header .logo img {
max-height: 58px !important;
width: auto !important;
object-fit: contain !important;
}
}

/* =========================================================
3. Mobile/tablet: SEM header fixo
O menu mobile fica entregue ao plugin Responsive Menu.
========================================================= */

@media (max-width: 1180px) {
html body,
html body.home,
html body:not(.home),
html body.admin-bar,
html body.admin-bar.home,
html body.admin-bar:not(.home) {
padding-top: 0 !important;
}

html body .site-header,
html body header.site-header,
html body #masthead,
html body #masthead.site-header {
position: relative !important;
top: auto !important;
left: auto !important;
right: auto !important;
width: 100% !important;
z-index: 10 !important;
box-shadow: none !important;
background: #f3ffed !important;
overflow: visible !important;
}

html body .site-header .main-nav,
html body .site-header .primary-menu {
display: none !important;
}
}

/* =========================================================
4. Menu principal desktop
========================================================= */

@media (min-width: 1181px) {
html body .site-header .main-nav,
html body .site-header .primary-menu {
align-items: center !important;
gap: 2px !important;
overflow: visible !important;
}

html body .site-header .primary-menu,
html body .site-header .primary-menu ul,
html body .site-header .main-nav ul {
list-style: none !important;
}

html body .site-header .nav-item,
html body .site-header .primary-menu .menu-item,
html body .site-header .main-nav > ul > li {
position: relative !important;
}

html body .site-header .nav-link,
html body .site-header .main-nav > ul > li > a,
html body .site-header .primary-menu > li > a {
font-family: var(--spaic-font-main) !important;
font-size: 14.2px !important;
font-weight: 560 !important;
line-height: 1.2 !important;
letter-spacing: 0.004em !important;
text-transform: none !important;
height: 44px !important;
min-height: 44px !important;
padding: 3px 6px 0 6px !important;
color: var(--spaic-dark-green) !important;
background: transparent !important;
border-radius: 0 !important;
border-top: 3px solid transparent !important;
box-shadow: none !important;
text-decoration: none !important;
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
transition: border-top-color 160ms ease, color 160ms ease !important;
}

html body .site-header .nav-link:hover,
html body .site-header .main-nav > ul > li > a:hover,
html body .site-header .primary-menu > li > a:hover,
html body .site-header .primary-menu > li.current-menu-item > a,
html body .site-header .primary-menu > li.current-menu-ancestor > a,
html body .site-header .primary-menu > li.current-menu-parent > a {
background: transparent !important;
border-top-color: var(--spaic-green) !important;
color: var(--spaic-dark-green) !important;
box-shadow: none !important;
}

html body .site-header .nav-link:focus-visible,
html body .site-header .main-nav > ul > li > a:focus-visible,
html body .site-header .primary-menu > li > a:focus-visible,
html body .site-header .search-button:focus-visible,
html body .site-header .member-button:focus-visible {
outline: 3px solid rgba(80,153,68,0.34) !important;
outline-offset: 4px !important;
}

html body .site-header .nav-link::after,
html body .site-header .primary-menu > li.menu-item-has-children > a::after {
margin-left: 2px !important;
transform: scale(0.68) !important;
opacity: 0.72 !important;
}

html body .site-header .search-button {
width: 44px !important;
height: 44px !important;
flex: 0 0 44px !important;
border-radius: 50% !important;
border: 1.5px solid rgba(38,74,63,0.42) !important;
color: var(--spaic-dark-green) !important;
background: #ffffff !important;
box-shadow: 0 6px 14px rgba(38,74,63,0.06) !important;
}

html body .site-header .search-button:hover {
background: rgba(198,255,132,0.24) !important;
border-color: var(--spaic-green) !important;
}

html body .site-header .member-button,
html body .site-header .cta-menu li a {
font-family: var(--spaic-font-main) !important;
font-size: 13px !important;
font-weight: 650 !important;
letter-spacing: 0.006em !important;
height: 44px !important;
min-height: 44px !important;
padding: 0 18px !important;
border-radius: 8px !important;
background: var(--spaic-green) !important;
border: 1px solid var(--spaic-green) !important;
color: #ffffff !important;
box-shadow: 0 8px 18px rgba(80,153,68,0.22) !important;
}

html body .site-header .member-button:hover,
html body .site-header .cta-menu li a:hover {
background: var(--spaic-dark-green) !important;
border-color: var(--spaic-dark-green) !important;
color: #ffffff !important;
transform: translateY(-1px) !important;
}
}

/* Desktop intermédio */
@media (min-width: 1181px) and (max-width: 1500px) {
html body .site-header .nav-link,
html body .site-header .main-nav > ul > li > a,
html body .site-header .primary-menu > li > a {
font-size: 13.4px !important;
font-weight: 560 !important;
padding-left: 4px !important;
padding-right: 4px !important;
letter-spacing: 0 !important;
}

html body .site-header .nav-link::after,
html body .site-header .primary-menu > li.menu-item-has-children > a::after {
margin-left: 1px !important;
transform: scale(0.64) !important;
}

html body .site-header .member-button,
html body .site-header .cta-menu li a {
font-size: 12.4px !important;
padding: 0 13px !important;
}

html body .site-header .search-button {
width: 40px !important;
height: 40px !important;
flex-basis: 40px !important;
}
}

/* =========================================================
5. Submenus e subsubmenus desktop
========================================================= */

@media (min-width: 1181px) {
html body .site-header .primary-menu .sub-menu,
html body .site-header .dropdown {
display: block !important;
position: absolute !important;
min-width: 260px !important;
margin: 0 !important;
padding: 8px !important;
background: #ffffff !important;
border: 1px solid rgba(175,176,177,0.35) !important;
border-radius: 14px !important;
box-shadow: 0 20px 46px rgba(38,74,63,0.18) !important;
z-index: 1000002 !important;
opacity: 0 !important;
visibility: hidden !important;
transform: translateY(10px) !important;
pointer-events: auto !important;
transition:
opacity 120ms ease 180ms,
transform 120ms ease 180ms,
visibility 0s linear 300ms !important;
}

html body .site-header .primary-menu > li > .sub-menu,
html body .site-header .main-nav > ul > li > .dropdown {
top: calc(100% - 1px) !important;
left: 0 !important;
}

html body .site-header .primary-menu > li > .sub-menu::before,
html body .site-header .main-nav > ul > li > .dropdown::before {
content: "" !important;
position: absolute !important;
left: 0 !important;
right: 0 !important;
top: -14px !important;
height: 14px !important;
display: block !important;
}

html body .site-header .primary-menu .sub-menu .sub-menu {
top: -8px !important;
left: calc(100% + 8px) !important;
transform: translateX(10px) !important;
}

html body .site-header .primary-menu .sub-menu .sub-menu::before {
content: "" !important;
position: absolute !important;
top: 0 !important;
bottom: 0 !important;
left: -12px !important;
width: 12px !important;
display: block !important;
}

html body .site-header .primary-menu .menu-item:hover > .sub-menu,
html body .site-header .primary-menu .menu-item:focus-within > .sub-menu,
html body .site-header .main-nav > ul > li:hover > .dropdown,
html body .site-header .main-nav > ul > li:focus-within > .dropdown,
html body .site-header .dropdown:hover {
opacity: 1 !important;
visibility: visible !important;
transform: translateY(0) !important;
transition:
opacity 100ms ease 0s,
transform 100ms ease 0s,
visibility 0s linear 0s !important;
}

html body .site-header .primary-menu .sub-menu .menu-item:hover > .sub-menu,
html body .site-header .primary-menu .sub-menu .menu-item:focus-within > .sub-menu {
opacity: 1 !important;
visibility: visible !important;
transform: translateX(0) !important;
transition:
opacity 100ms ease 0s,
transform 100ms ease 0s,
visibility 0s linear 0s !important;
}

html body .site-header .primary-menu .sub-menu li,
html body .site-header .dropdown li {
position: relative !important;
}

html body .site-header .dropdown a,
html body .site-header .primary-menu .sub-menu a {
display: block !important;
font-family: var(--spaic-font-main) !important;
font-size: 13.8px !important;
font-weight: 500 !important;
line-height: 1.34 !important;
letter-spacing: 0 !important;
color: var(--spaic-dark-green) !important;
background: transparent !important;
padding: 10px 12px !important;
border-radius: 10px !important;
white-space: normal !important;
text-decoration: none !important;
}

html body .site-header .dropdown a:hover,
html body .site-header .primary-menu .sub-menu a:hover,
html body .site-header .primary-menu .sub-menu li.current-menu-item > a,
html body .site-header .primary-menu .sub-menu li.current-menu-ancestor > a {
background: rgba(198,255,132,0.26) !important;
color: var(--spaic-dark-green) !important;
}
}


/* =========================================================
   SPAIC - FINAL HEADER RESPONSIVE FIX
   2026-06-19
   - Desktop largo mantém-se
   - Desktop médio/quadrado: reserva espaço ao logótipo
   - Mobile: remove texto "SPAI"/brand-text
   - Mobile: mantém apenas o menu responsive SPAIC
   ========================================================= */

/* Desktop intermédio/quadrado: evitar menu sobre o logótipo */
@media (min-width: 1181px) and (max-width: 1400px) {
  html body header.site-header .topbar,
  html body .site-header .topbar {
    width: calc(100% - 24px) !important;
    max-width: 1400px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    overflow: visible !important;
  }

  html body header.site-header .brand,
  html body .site-header .brand,
  html body header.site-header .site-branding,
  html body .site-header .site-branding {
    flex: 0 0 195px !important;
    width: 195px !important;
    min-width: 195px !important;
    max-width: 195px !important;
    overflow: visible !important;
  }

  html body header.site-header .brand-logo,
  html body .site-header .brand-logo,
  html body header.site-header .custom-logo-link,
  html body .site-header .custom-logo-link {
    width: 185px !important;
    min-width: 185px !important;
    max-width: 185px !important;
    flex: 0 0 185px !important;
    overflow: visible !important;
  }

  html body header.site-header .brand-logo img,
  html body .site-header .brand-logo img,
  html body header.site-header .custom-logo-link img,
  html body .site-header .custom-logo-link img,
  html body header.site-header img.custom-logo,
  html body .site-header img.custom-logo {
    width: auto !important;
    max-width: 185px !important;
    max-height: 60px !important;
    object-fit: contain !important;
    object-position: left center !important;
  }

  html body header.site-header .brand-text,
  html body .site-header .brand-text,
  html body header.site-header .brand strong,
  html body .site-header .brand strong,
  html body header.site-header .brand small,
  html body .site-header .brand small,
  html body header.site-header .site-title,
  html body .site-header .site-title,
  html body header.site-header .site-description,
  html body .site-header .site-description {
    display: none !important;
    visibility: hidden !important;
  }

  html body header.site-header .main-nav,
  html body .site-header .main-nav {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    display: flex !important;
    justify-content: flex-start !important;
    align-items: center !important;
    margin-left: 4px !important;
    overflow: visible !important;
  }

  html body header.site-header .primary-menu,
  html body .site-header .primary-menu {
    display: flex !important;
    justify-content: flex-start !important;
    align-items: center !important;
    gap: 0 !important;
    flex-wrap: nowrap !important;
  }

  html body header.site-header .primary-menu > li > a,
  html body .site-header .primary-menu > li > a,
  html body header.site-header .main-nav > ul > li > a,
  html body .site-header .main-nav > ul > li > a {
    font-size: 11.1px !important;
    padding-left: 3px !important;
    padding-right: 3px !important;
    letter-spacing: -0.015em !important;
    white-space: nowrap !important;
  }

  html body header.site-header .header-actions,
  html body .site-header .header-actions {
    flex: 0 0 auto !important;
    margin-left: auto !important;
    gap: 8px !important;
  }

  html body header.site-header .cta-menu,
  html body .site-header .cta-menu,
  html body header.site-header .member-button,
  html body .site-header .member-button,
  html body header.site-header a[href*="tornar-se-socio"],
  html body .site-header a[href*="tornar-se-socio"],
  html body header.site-header a[href*="tornar-se-sócio"],
  html body .site-header a[href*="tornar-se-sócio"] {
    display: none !important;
    visibility: hidden !important;
  }

  html body header.site-header .search-button,
  html body .site-header .search-button {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    flex: 0 0 38px !important;
  }
}

/* Desktop estreito antes de passar a mobile/tablet */
@media (min-width: 1025px) and (max-width: 1180px) {
  html body header.site-header .main-nav,
  html body .site-header .main-nav,
  html body header.site-header .primary-menu,
  html body .site-header .primary-menu {
    display: none !important;
  }
}

/* Mobile/tablet: remover texto extra "SPAI" e esconder menu nativo */
@media (max-width: 1180px) {
  html body header.site-header .brand-text,
  html body .site-header .brand-text,
  html body header.site-header .brand strong,
  html body .site-header .brand strong,
  html body header.site-header .brand small,
  html body .site-header .brand small,
  html body header.site-header .brand-title,
  html body .site-header .brand-title,
  html body header.site-header .site-title,
  html body .site-header .site-title,
  html body header.site-header .site-description,
  html body .site-header .site-description {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
  }

  html body header.site-header .mobile-toggle,
  html body .site-header .mobile-toggle,
  html body header.site-header [data-mobile-menu],
  html body .site-header [data-mobile-menu],
  html body header.site-header .main-nav,
  html body .site-header .main-nav,
  html body header.site-header .primary-menu,
  html body .site-header .primary-menu {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  html body .spaic-mobile-menu-toggle {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
}

/* Mobile pequeno: manter logótipo limpo e sem a palavra SPAI */
@media (max-width: 767px) {
  html body header.site-header,
  html body .site-header {
    min-height: 138px !important;
    padding: 14px 14px 12px 14px !important;
  }

  html body header.site-header .topbar,
  html body .site-header .topbar {
    min-height: 108px !important;
  }

  html body header.site-header .brand,
  html body .site-header .brand,
  html body header.site-header .brand-logo,
  html body .site-header .brand-logo,
  html body header.site-header .custom-logo-link,
  html body .site-header .custom-logo-link {
    max-width: calc(100vw - 136px) !important;
    overflow: visible !important;
  }

  html body header.site-header .brand-logo img,
  html body .site-header .brand-logo img,
  html body header.site-header .custom-logo-link img,
  html body .site-header .custom-logo-link img,
  html body header.site-header img.custom-logo,
  html body .site-header img.custom-logo {
    max-width: calc(100vw - 136px) !important;
    max-height: 88px !important;
  }

  html body .spaic-mobile-menu-toggle {
    position: fixed !important;
    top: 18px !important;
    right: 16px !important;
    z-index: 1000002 !important;
  }

  html body.admin-bar .spaic-mobile-menu-toggle {
    top: 52px !important;
  }
}


/* =========================================================
   SPAIC - STEP 7 FINAL POLISH
   2026-06-19
   1) Desktop médio/quadrado: menu maior e alinhado à direita
   2) Mobile: submenus fechados por defeito; só abrem com .spaic-sub-open
   ========================================================= */

/* Desktop normal/quadrado: aumentar ligeiramente fonte e alinhar menu à direita */
@media (min-width: 1181px) and (max-width: 1400px) {
  html body header.site-header .topbar,
  html body .site-header .topbar {
    justify-content: space-between !important;
    gap: 10px !important;
  }

  html body header.site-header .brand,
  html body .site-header .brand,
  html body header.site-header .site-branding,
  html body .site-header .site-branding {
    flex: 0 0 185px !important;
    width: 185px !important;
    min-width: 185px !important;
    max-width: 185px !important;
  }

  html body header.site-header .brand-logo,
  html body .site-header .brand-logo,
  html body header.site-header .custom-logo-link,
  html body .site-header .custom-logo-link {
    width: 175px !important;
    min-width: 175px !important;
    max-width: 175px !important;
    flex: 0 0 175px !important;
  }

  html body header.site-header .brand-logo img,
  html body .site-header .brand-logo img,
  html body header.site-header .custom-logo-link img,
  html body .site-header .custom-logo-link img,
  html body header.site-header img.custom-logo,
  html body .site-header img.custom-logo {
    max-width: 175px !important;
    max-height: 58px !important;
  }

  html body header.site-header .main-nav,
  html body .site-header .main-nav {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    justify-content: flex-end !important;
    margin-left: 8px !important;
  }

  html body header.site-header .primary-menu,
  html body .site-header .primary-menu {
    justify-content: flex-end !important;
  }

  html body header.site-header .primary-menu > li > a,
  html body .site-header .primary-menu > li > a,
  html body header.site-header .main-nav > ul > li > a,
  html body .site-header .main-nav > ul > li > a {
    font-size: 12.2px !important;
    line-height: 1 !important;
    padding-left: 4px !important;
    padding-right: 4px !important;
    letter-spacing: -0.01em !important;
    white-space: nowrap !important;
  }

  html body header.site-header .header-actions,
  html body .site-header .header-actions {
    flex: 0 0 auto !important;
    margin-left: 10px !important;
  }
}

/* Mobile/tablet: corrigir submenus do painel SPAIC.
   Esta regra tem mais especificidade do que o display:revert anterior. */
@media (max-width: 1180px) {
  html body.spaic-mobile-menu-ready .spaic-mobile-menu-panel .spaic-mobile-menu-list li > ul,
  html body.spaic-mobile-menu-ready .spaic-mobile-menu-panel .spaic-mobile-menu-list li:not(.spaic-sub-open) > ul,
  html body.spaic-mobile-menu-ready .spaic-mobile-menu-panel nav.spaic-mobile-menu-nav .spaic-mobile-menu-list li:not(.spaic-sub-open) > ul {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
  }

  html body.spaic-mobile-menu-ready .spaic-mobile-menu-panel .spaic-mobile-menu-list li.spaic-sub-open > ul,
  html body.spaic-mobile-menu-ready .spaic-mobile-menu-panel nav.spaic-mobile-menu-nav .spaic-mobile-menu-list li.spaic-sub-open > ul {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }

  html body.spaic-mobile-menu-ready .spaic-mobile-menu-panel .spaic-mobile-menu-list li.spaic-sub-open > .spaic-sub-toggle::before {
    content: "−" !important;
  }

  html body.spaic-mobile-menu-ready .spaic-mobile-menu-panel .spaic-mobile-menu-list li:not(.spaic-sub-open) > .spaic-sub-toggle::before {
    content: "+" !important;
  }
}


/* =========================================================
   SPAIC - STEP 8 FINAL MENU POLISH
   2026-06-19
   - Desktop médio: menu principal ligeiramente maior
   - Mobile: botão sem palavra "Menu", mais profissional
   - Mobile: botões "+" substituídos por setas discretas
   ========================================================= */

/* Desktop normal/quadrado: menu principal um pouco maior, mantendo alinhamento à direita */
@media (min-width: 1181px) and (max-width: 1400px) {
  html body header.site-header .brand,
  html body .site-header .brand,
  html body header.site-header .site-branding,
  html body .site-header .site-branding {
    flex: 0 0 170px !important;
    width: 170px !important;
    min-width: 170px !important;
    max-width: 170px !important;
  }

  html body header.site-header .brand-logo,
  html body .site-header .brand-logo,
  html body header.site-header .custom-logo-link,
  html body .site-header .custom-logo-link {
    width: 162px !important;
    min-width: 162px !important;
    max-width: 162px !important;
    flex: 0 0 162px !important;
  }

  html body header.site-header .brand-logo img,
  html body .site-header .brand-logo img,
  html body header.site-header .custom-logo-link img,
  html body .site-header .custom-logo-link img,
  html body header.site-header img.custom-logo,
  html body .site-header img.custom-logo {
    max-width: 162px !important;
    max-height: 56px !important;
  }

  html body header.site-header .main-nav,
  html body .site-header .main-nav {
    justify-content: flex-end !important;
    margin-left: 10px !important;
  }

  html body header.site-header .primary-menu,
  html body .site-header .primary-menu {
    justify-content: flex-end !important;
  }

  html body header.site-header .primary-menu > li > a,
  html body .site-header .primary-menu > li > a,
  html body header.site-header .main-nav > ul > li > a,
  html body .site-header .main-nav > ul > li > a {
    font-size: 12.9px !important;
    font-weight: 620 !important;
    padding-left: 4.5px !important;
    padding-right: 4.5px !important;
    letter-spacing: -0.008em !important;
  }

  html body header.site-header .header-actions,
  html body .site-header .header-actions {
    margin-left: 12px !important;
  }
}

/* Faixa mais apertada: pequeno ajuste para não colidir */
@media (min-width: 1181px) and (max-width: 1280px) {
  html body header.site-header .primary-menu > li > a,
  html body .site-header .primary-menu > li > a,
  html body header.site-header .main-nav > ul > li > a,
  html body .site-header .main-nav > ul > li > a {
    font-size: 12.4px !important;
    padding-left: 3.5px !important;
    padding-right: 3.5px !important;
  }
}

/* Mobile/tablet: botão principal só com ícone, sem a palavra "Menu" */
@media (max-width: 1180px) {
  html body .spaic-mobile-menu-toggle {
    width: 48px !important;
    min-width: 48px !important;
    max-width: 48px !important;
    height: 48px !important;
    min-height: 48px !important;
    max-height: 48px !important;
    padding: 0 !important;
    border-radius: 999px !important;
    background: #3f8f39 !important;
    color: transparent !important;
    font-size: 0 !important;
    line-height: 0 !important;
    box-shadow: 0 8px 22px rgba(38,74,63,0.22) !important;
    border: 1px solid rgba(255,255,255,0.35) !important;
  }

  html body .spaic-mobile-menu-toggle::before {
    content: "" !important;
    width: 20px !important;
    height: 14px !important;
    display: block !important;
    background:
      linear-gradient(#fff,#fff) 0 0 / 20px 2px no-repeat,
      linear-gradient(#fff,#fff) 0 6px / 20px 2px no-repeat,
      linear-gradient(#fff,#fff) 0 12px / 20px 2px no-repeat !important;
    border: 0 !important;
    transform: none !important;
  }

  html body.spaic-menu-open .spaic-mobile-menu-toggle {
    background: #154734 !important;
  }

  html body.spaic-menu-open .spaic-mobile-menu-toggle::before {
    content: "×" !important;
    width: auto !important;
    height: auto !important;
    background: none !important;
    color: #fff !important;
    font-size: 28px !important;
    line-height: 1 !important;
    font-weight: 500 !important;
  }

  /* Painel mobile mais limpo */
  html body .spaic-mobile-menu-panel {
    width: min(88vw, 390px) !important;
    background: #ffffff !important;
  }

  html body .spaic-mobile-menu-head {
    min-height: 66px !important;
    padding: 18px 20px !important;
    background: #154734 !important;
    border-bottom: 1px solid rgba(255,255,255,0.12) !important;
  }

  html body .spaic-mobile-menu-head span {
    font-size: 16px !important;
    font-weight: 850 !important;
    letter-spacing: 0 !important;
  }

  html body .spaic-mobile-menu-close {
    width: 38px !important;
    height: 38px !important;
    border-radius: 999px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(255,255,255,0.10) !important;
    font-size: 24px !important;
    font-weight: 400 !important;
  }

  /* Remover bolas verdes com + e substituir por seta discreta */
  html body.spaic-mobile-menu-ready .spaic-mobile-menu-panel .spaic-sub-toggle {
    top: 7px !important;
    right: 14px !important;
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    min-height: 32px !important;
    padding: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
  }

  html body.spaic-mobile-menu-ready .spaic-mobile-menu-panel .spaic-sub-toggle::before,
  html body.spaic-mobile-menu-ready .spaic-mobile-menu-panel .spaic-mobile-menu-list li:not(.spaic-sub-open) > .spaic-sub-toggle::before {
    content: "" !important;
    position: absolute !important;
    top: 10px !important;
    left: 9px !important;
    width: 8px !important;
    height: 8px !important;
    border-right: 2px solid #3f8f39 !important;
    border-bottom: 2px solid #3f8f39 !important;
    transform: rotate(-45deg) !important;
    background: none !important;
  }

  html body.spaic-mobile-menu-ready .spaic-mobile-menu-panel .spaic-mobile-menu-list li.spaic-sub-open > .spaic-sub-toggle::before {
    content: "" !important;
    position: absolute !important;
    top: 8px !important;
    left: 9px !important;
    width: 8px !important;
    height: 8px !important;
    border-right: 2px solid #3f8f39 !important;
    border-bottom: 2px solid #3f8f39 !important;
    transform: rotate(45deg) !important;
    background: none !important;
  }

  html body.spaic-mobile-menu-ready .spaic-mobile-menu-panel .spaic-mobile-menu-list a {
    padding-top: 12px !important;
    padding-bottom: 12px !important;
    padding-right: 54px !important;
    font-size: 15px !important;
    font-weight: 650 !important;
    line-height: 1.25 !important;
  }

  html body.spaic-mobile-menu-ready .spaic-mobile-menu-panel .spaic-mobile-menu-list > li > a {
    font-weight: 800 !important;
  }

  html body.spaic-mobile-menu-ready .spaic-mobile-menu-panel .spaic-mobile-menu-list ul a {
    font-size: 14px !important;
    font-weight: 560 !important;
  }

  html body.spaic-mobile-menu-ready .spaic-mobile-menu-panel .spaic-mobile-menu-list li {
    border-bottom: 1px solid rgba(38,74,63,0.10) !important;
  }
}


/* =========================================================
   SPAIC - STEP 11
   Esconder texto "Menu SPAIC" no topo do painel mobile
   ========================================================= */
@media (max-width: 1180px) {
  html body .spaic-mobile-menu-head {
    justify-content: flex-end !important;
    gap: 0 !important;
  }

  html body .spaic-mobile-menu-head span,
  html body .spaic-mobile-menu-head > span {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  html body .spaic-mobile-menu-close {
    margin-left: auto !important;
  }
}


/* =========================================================
   SPAIC - STEP 12
   2026-06-19
   - Remove duplo X no menu mobile
   - Repõe fontes corretas dos ícones WordPress/Elementor
   ========================================================= */

/* 1) Quando o menu mobile está aberto, esconder o botão externo.
      Fica apenas o X interno do painel. */
@media (max-width: 1180px) {
  html body.spaic-menu-open .spaic-mobile-menu-toggle {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  html body .spaic-mobile-menu-close {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
}

/* 2) Repor fontes dos ícones do WordPress/Admin bar */
html body #wpadminbar .ab-icon,
html body #wpadminbar .ab-icon::before,
html body #wpadminbar .ab-item::before,
html body #wpadminbar .dashicons,
html body #wpadminbar .dashicons::before,
html body .dashicons,
html body .dashicons::before {
  font-family: dashicons !important;
  font-weight: normal !important;
  font-style: normal !important;
  speak: never !important;
  text-rendering: auto !important;
  -webkit-font-smoothing: antialiased !important;
}

/* 3) Repor fontes dos ícones do Elementor */
html body .eicon,
html body .eicon::before,
html body [class^="eicon-"],
html body [class^="eicon-"]::before,
html body [class*=" eicon-"],
html body [class*=" eicon-"]::before,
html body .elementor-editor-active .eicon,
html body .elementor-editor-active .eicon::before,
html body .elementor-editor-active [class^="eicon-"],
html body .elementor-editor-active [class^="eicon-"]::before,
html body .elementor-editor-active [class*=" eicon-"],
html body .elementor-editor-active [class*=" eicon-"]::before,
html body .elementor-control .eicon,
html body .elementor-control .eicon::before,
html body .elementor-panel .eicon,
html body .elementor-panel .eicon::before,
html body .elementor-editor-section-settings .eicon,
html body .elementor-editor-section-settings .eicon::before,
html body .elementor-editor-element-setting .eicon,
html body .elementor-editor-element-setting .eicon::before,
html body .elementor-editor-container-setting,
html body .elementor-editor-container-setting::before,
html body .elementor-editor-column-setting,
html body .elementor-editor-column-setting::before {
  font-family: eicons !important;
  font-weight: normal !important;
  font-style: normal !important;
  speak: never !important;
  text-rendering: auto !important;
  -webkit-font-smoothing: antialiased !important;
}

/* 4) Repor Font Awesome */
html body .fa,
html body .fa::before,
html body .fas,
html body .fas::before,
html body .far,
html body .far::before,
html body .fal,
html body .fal::before,
html body .fab,
html body .fab::before,
html body [class^="fa-"],
html body [class^="fa-"]::before,
html body [class*=" fa-"],
html body [class*=" fa-"]::before {
  font-family: "Font Awesome 5 Free", "Font Awesome 5 Brands", "Font Awesome 6 Free", "Font Awesome 6 Brands" !important;
  font-style: normal !important;
  text-rendering: auto !important;
  -webkit-font-smoothing: antialiased !important;
}

/* 5) Evitar que elementos técnicos do Elementor sejam afetados pela fonte global */
html body.elementor-editor-active .elementor-panel *,
html body.elementor-editor-active .elementor-control *,
html body.elementor-editor-active .elementor-editor-section-settings *,
html body.elementor-editor-active .elementor-editor-element-settings *,
html body.elementor-editor-active .elementor-editor-container-settings *,
html body.elementor-editor-active .elementor-navigator * {
  font-family: inherit !important;
}


/* =========================================================
   SPAIC - STEP 13
   Baixar a janela de pesquisa para não ficar:
   - sobreposta ao botão menu mobile
   - escondida pelo header em ecrãs maiores
   ========================================================= */

/* Desktop / portátil */
@media (min-width: 1181px) {
  html body .search-overlay,
  html body .search-modal,
  html body .search-popup,
  html body .spaic-search-overlay,
  html body .spaic-search-modal,
  html body .spaic-search-popup,
  html body .site-search-overlay,
  html body .site-search-popup {
    align-items: flex-start !important;
    padding-top: 145px !important;
    box-sizing: border-box !important;
  }
}

/* Tablet / mobile */
@media (max-width: 1180px) {
  html body .search-overlay,
  html body .search-modal,
  html body .search-popup,
  html body .spaic-search-overlay,
  html body .spaic-search-modal,
  html body .spaic-search-popup,
  html body .site-search-overlay,
  html body .site-search-popup {
    align-items: flex-start !important;
    padding-top: 88px !important;
    box-sizing: border-box !important;
  }
}

/* Mobile pequeno */
@media (max-width: 767px) {
  html body .search-overlay,
  html body .search-modal,
  html body .search-popup,
  html body .spaic-search-overlay,
  html body .spaic-search-modal,
  html body .spaic-search-popup,
  html body .site-search-overlay,
  html body .site-search-popup {
    padding-top: 102px !important;
  }
}

/* Garantir que a caixa de pesquisa respeita o novo espaçamento */
html body .search-overlay .search-box,
html body .search-modal .search-box,
html body .search-popup .search-box,
html body .spaic-search-overlay .search-box,
html body .spaic-search-modal .search-box,
html body .spaic-search-popup .search-box,
html body .site-search-overlay .search-box,
html body .site-search-popup .search-box,
html body .search-overlay .search-inner,
html body .search-modal .search-inner,
html body .search-popup .search-inner,
html body .spaic-search-overlay .search-inner,
html body .spaic-search-modal .search-inner,
html body .spaic-search-popup .search-inner,
html body .site-search-overlay .search-inner,
html body .site-search-popup .search-inner {
  margin-top: 0 !important;
}


/* =========================================================
   SPAIC - HOMEPAGE EVENT LAYOUT FIX
   2026-06-19
   Próximo Evento: imagem à esquerda + texto à direita
   ========================================================= */

@media (min-width: 768px) {
  html body.home .spaic-el-event {
    padding: 72px 24px !important;
    background: #ffffff !important;
    overflow: hidden !important;
  }

  html body.home .spaic-el-event > .elementor-container,
  html body.home .spaic-el-event > .elementor-column-gap-default,
  html body.home .spaic-el-event > .elementor-column-gap-narrow,
  html body.home .spaic-el-event > .elementor-column-gap-extended,
  html body.home .spaic-el-event > .elementor-column-gap-wide,
  html body.home .spaic-el-event > .elementor-column-gap-wider {
    width: min(100%, 1180px) !important;
    max-width: 1180px !important;
    margin: 0 auto !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 52px !important;
    border-radius: 24px !important;
    background: rgba(198,255,132,0.14) !important;
    border: 1px solid rgba(80,153,68,0.16) !important;
    box-shadow: 0 24px 60px rgba(38,74,63,0.10) !important;
    padding: 42px !important;
    overflow: visible !important;
  }

  html body.home .spaic-el-event .spaic-event-visual,
  html body.home .spaic-el-event .spaic-event-image,
  html body.home .spaic-el-event > .elementor-container > .elementor-column:first-child {
    flex: 0 0 38% !important;
    width: 38% !important;
    max-width: 430px !important;
    min-width: 300px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  html body.home .spaic-el-event .spaic-event-content,
  html body.home .spaic-el-event > .elementor-container > .elementor-column:last-child {
    flex: 1 1 62% !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  html body.home .spaic-el-event .spaic-event-visual > .elementor-widget-wrap,
  html body.home .spaic-el-event > .elementor-container > .elementor-column:first-child > .elementor-widget-wrap {
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  html body.home .spaic-el-event .spaic-event-content > .elementor-widget-wrap,
  html body.home .spaic-el-event > .elementor-container > .elementor-column:last-child > .elementor-widget-wrap {
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
  }

  html body.home .spaic-el-event .spaic-event-visual img,
  html body.home .spaic-el-event .spaic-event-image img,
  html body.home .spaic-el-event > .elementor-container > .elementor-column:first-child img {
    display: block !important;
    width: 100% !important;
    max-width: 390px !important;
    height: auto !important;
    max-height: 360px !important;
    object-fit: contain !important;
    object-position: center center !important;
    border-radius: 18px !important;
    box-shadow: 0 18px 42px rgba(38,74,63,0.14) !important;
    margin: 0 auto !important;
  }

  html body.home .spaic-el-event .spaic-event-kicker,
  html body.home .spaic-el-event .spaic-section-kicker {
    margin-bottom: 8px !important;
  }

  html body.home .spaic-el-event .spaic-event-kicker .elementor-heading-title,
  html body.home .spaic-el-event .spaic-section-kicker .elementor-heading-title {
    font-size: 14px !important;
    line-height: 1.1 !important;
    font-weight: 800 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
    color: var(--spaic-green) !important;
  }

  html body.home .spaic-el-event .spaic-event-title .elementor-heading-title,
  html body.home .spaic-el-event h2.elementor-heading-title,
  html body.home .spaic-el-event h3.elementor-heading-title {
    font-size: clamp(30px, 3vw, 44px) !important;
    line-height: 1.05 !important;
    font-weight: 800 !important;
    letter-spacing: -0.035em !important;
    color: var(--spaic-dark-green) !important;
    margin: 0 0 20px 0 !important;
  }

  html body.home .spaic-el-event .spaic-event-text,
  html body.home .spaic-el-event .elementor-widget-text-editor,
  html body.home .spaic-el-event .elementor-widget-text-editor p {
    font-size: 20px !important;
    line-height: 1.42 !important;
    color: var(--spaic-dark-green) !important;
    margin-bottom: 22px !important;
  }

  html body.home .spaic-el-event .elementor-button,
  html body.home .spaic-el-event .spaic-button-link .elementor-button,
  html body.home .spaic-el-event .spaic-button-primary .elementor-button {
    min-height: 44px !important;
    padding: 0 24px !important;
    border-radius: 6px !important;
    font-size: 14px !important;
    font-weight: 800 !important;
  }
}

/* Mobile: empilhar de forma limpa */
@media (max-width: 767px) {
  html body.home .spaic-el-event {
    padding: 48px 18px !important;
    background: #ffffff !important;
  }

  html body.home .spaic-el-event > .elementor-container {
    display: flex !important;
    flex-direction: column !important;
    gap: 24px !important;
    padding: 24px !important;
    border-radius: 22px !important;
    background: rgba(198,255,132,0.14) !important;
    border: 1px solid rgba(80,153,68,0.16) !important;
  }

  html body.home .spaic-el-event > .elementor-container > .elementor-column,
  html body.home .spaic-el-event .spaic-event-visual,
  html body.home .spaic-el-event .spaic-event-content {
    width: 100% !important;
    max-width: 100% !important;
  }

  html body.home .spaic-el-event img {
    width: 100% !important;
    max-width: 320px !important;
    height: auto !important;
    object-fit: contain !important;
    border-radius: 16px !important;
    margin: 0 auto !important;
  }

  html body.home .spaic-el-event .elementor-widget-wrap {
    padding: 0 !important;
  }

  html body.home .spaic-el-event h2.elementor-heading-title,
  html body.home .spaic-el-event h3.elementor-heading-title {
    font-size: 28px !important;
    line-height: 1.08 !important;
  }

  html body.home .spaic-el-event .elementor-widget-text-editor,
  html body.home .spaic-el-event .elementor-widget-text-editor p {
    font-size: 17px !important;
    line-height: 1.4 !important;
  }
}


/* =========================================================
   SPAIC - EVENT BUTTON ALIGN FIX
   Reaplicado após reposição do menu mobile funcional
   ========================================================= */

html body.home .spaic-el-event .elementor-button,
html body.home .spaic-el-event a.elementor-button,
html body.home .spaic-el-event .spaic-button-link .elementor-button,
html body.home .spaic-el-event .spaic-button-primary .elementor-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  min-height: 56px !important;
  height: 56px !important;
  padding: 0 28px !important;
  line-height: 1 !important;
  vertical-align: middle !important;
  box-sizing: border-box !important;
}

html body.home .spaic-el-event .elementor-button span,
html body.home .spaic-el-event .elementor-button .elementor-button-content-wrapper,
html body.home .spaic-el-event .elementor-button .elementor-button-text {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
  height: auto !important;
}

