:root{
  --bg: #ffffff;
  --ink: #0b0f14;
  --muted: rgba(11,15,20,.68);
  --line: rgba(11,15,20,.10);

  --green: #0B6E3B;      /* institucional */
  --green-2:#0E8A4A;
  --red:   #C21F2D;      /* pitada do logotipo / detalhes */
  --soft:  #F6F8F7;

  --radius: 18px;
  --shadow: 0 18px 48px rgba(0,0,0,.08);
  --shadow2: 0 10px 24px rgba(0,0,0,.08);

  --font-sans: "Nunito Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-display: "Jost", "Nunito Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-body: "Nunito Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

 

 /* --wrap: min(1260px, calc(100% - 48px));*/
/*Layout menos “estendido” nas laterais */
--wrap: min(1120px, calc(100% - 44px));



  /* Header height helper (aprox.) */
  --nav-h: 86px;

  /* Logos (header + footer) */
  --logo-h: 82px;
  --logo-h-sm: 62px;

  /* Header stack */
  --topbar-h: 42px;
  --nav-gap: 14px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}

html{font-size:15px}
body{ line-height:1.55; }
.footer-newsletter input{ font-size:16px; }

body{
  font-family: var(--font-sans);
  color: var(--ink);
  background: var(--bg);
  line-height: 1.6;
  text-rendering: optimizeLegibility;
}
img{max-width:100%;height:auto;display:block}
a{color: inherit; text-decoration: none}
a:hover{opacity:.92}

.wrap{width: var(--wrap); margin-inline:auto}

.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

.kicker{
  letter-spacing: .14em;
  text-transform: uppercase;
  font-size: .78rem;
  color: var(--muted);
  margin: 0 0 10px;
}

/* Kicker do HERO (AAPCIL • HUILA) em branco */
.hero .kicker{
  color: rgba(255,255,255,.78);
}


.h1{
  font-family: var(--font-display);
  letter-spacing: -0.02em;
  font-size: clamp(1.9rem, 3.1vw, 2.95rem);

  line-height: 1.1;
  margin: 0 0 14px;
}
.h3{
  font-family: var(--font-display);
  letter-spacing: -0.01em;
  font-size: 1.18rem;
  line-height: 1.18;
  margin: 0 0 10px;
}
.muted{color: var(--muted)}
.section{padding: 64px 0}

.section--tight{padding: 34px 0}
@media (max-width: 720px){
  .section--tight{padding: 26px 0}
}

.section--soft{background: var(--soft)}
.section-head{max-width: 820px}

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding: 12px 16px;
  border-radius: 999px;
  border: 1px solid transparent;
  font-weight: 600;
  gap: 10px;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
}
.btn:focus{outline: 2px solid rgba(11,110,59,.30); outline-offset: 3px}
.btn--primary{
  background: linear-gradient(180deg, var(--green-2), var(--green));
  color: #fff;
  box-shadow: var(--shadow2);
}
.btn--primary:hover{transform: translateY(-1px)}
.btn--ghost{
  background: #fff;
  border-color: rgba(11,110,59,.30);
  color: var(--green);
}
.btn--ghost:hover{transform: translateY(-1px)}
.btn--link{
  padding: 12px 8px;
  border-color: transparent;
  color: var(--green);
}

.cta-row{display:flex; gap: 10px; flex-wrap: wrap; margin-top: 18px}

/* Header (Top bar + Navbar estilo “Dryad”) */
.header-stack{
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 80;
  pointer-events: none;
}
body.admin-bar .header-stack{ top: 32px; }
@media (max-width: 782px){
  body.admin-bar .header-stack{ top: 46px; }
}

.topbar{
  height: var(--topbar-h);
  background: #20481f;
  color: rgba(255,255,255,.92);
  pointer-events: auto;
  transition: transform .25s ease, opacity .25s ease;
}
.topbar__inner{
  width: var(--wrap);
  margin-inline: auto;
  height: 100%;
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 14px;
  font-size: .92rem;
}
.topbar__left{display:flex; align-items:center; gap: 10px; flex-wrap:wrap}
.topbar__item{display:inline-flex; align-items:center; gap: 8px; opacity:.95}
.topbar__item:hover{opacity:1}
.topbar__icon{font-size: .96rem; opacity:.95}
.topbar__icon svg{display:block}
.topbar__sep{opacity:.55}
.topbar__right{display:flex; align-items:center; gap: 10px}
.topbar__social{
  width: 28px; height: 28px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.22);
  color:#fff;
  font-weight: 800;
  font-size: .86rem;
}
.topbar__social-ic svg{display:block}
.topbar__social:hover{background: rgba(255,255,255,.10)}

.aapcil-social-soon,
.topbar__social[data-tip],
.footer-social__a[data-tip]{
  position:relative;
  cursor:not-allowed;
}

.aapcil-social-soon::after,
.topbar__social[data-tip]::after,
.footer-social__a[data-tip]::after{
  content: attr(data-tip);
  position:absolute;
  left:50%;
  bottom:calc(100% + 10px);
  transform:translate(-50%,8px);
  background:#111827;
  color:#fff;
  padding:8px 10px;
  border-radius:10px;
  font-size:12px;
  line-height:1.3;
  white-space:nowrap;
  box-shadow:0 12px 28px rgba(0,0,0,.18);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .18s ease, transform .18s ease;
  z-index:40;
}

.aapcil-social-soon::before,
.topbar__social[data-tip]::before,
.footer-social__a[data-tip]::before{
  content:'';
  position:absolute;
  left:50%;
  bottom:calc(100% + 3px);
  transform:translateX(-50%);
  border:6px solid transparent;
  border-top-color:#111827;
  opacity:0;
  visibility:hidden;
  transition:opacity .18s ease;
  z-index:40;
}

.aapcil-social-soon:hover::after,
.aapcil-social-soon:hover::before,
.aapcil-social-soon:focus::after,
.aapcil-social-soon:focus::before,
.aapcil-social-soon:active::after,
.aapcil-social-soon:active::before,
.topbar__social[data-tip]:hover::after,
.topbar__social[data-tip]:hover::before,
.topbar__social[data-tip]:focus::after,
.topbar__social[data-tip]:focus::before,
.topbar__social[data-tip]:active::after,
.topbar__social[data-tip]:active::before,
.footer-social__a[data-tip]:hover::after,
.footer-social__a[data-tip]:hover::before,
.footer-social__a[data-tip]:focus::after,
.footer-social__a[data-tip]:focus::before,
.footer-social__a[data-tip]:active::after,
.footer-social__a[data-tip]:active::before{
  opacity:1;
  visibility:visible;
}

.aapcil-social-soon:hover::after,
.aapcil-social-soon:focus::after,
.aapcil-social-soon:active::after,
.topbar__social[data-tip]:hover::after,
.topbar__social[data-tip]:focus::after,
.topbar__social[data-tip]:active::after,
.footer-social__a[data-tip]:hover::after,
.footer-social__a[data-tip]:focus::after,
.footer-social__a[data-tip]:active::after{
  transform:translate(-50%,0);
}

.nav-frame{
  padding: var(--nav-gap) 24px;
  pointer-events: none;
  transition: padding .25s ease, transform .25s ease;
}
.nav-shell{
  pointer-events: auto;
  max-width: 1260px;
  margin: 0 auto;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(12px);
  border-radius: 20px;
  box-shadow: 0 20px 60px rgba(0,0,0,.10);
  border: 1px solid rgba(11,15,20,.08);
  padding: 14px 16px;
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 18px;
}
.nav-brand__text{font-weight: 800; letter-spacing: .02em}



/* No topo (antes de scroll): navbar translúcida sobre o HERO (estilo Dryad) */
body:not(.is-scrolled) .nav-shell{
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.22);
  box-shadow: none;
}
body:not(.is-scrolled) .nav-brand__text{color:#fff}
body:not(.is-scrolled) .nav__list a{color: rgba(255,255,255,.92)}
body:not(.is-scrolled) .nav__list a:hover{background: rgba(255,255,255,.12)}
body:not(.is-scrolled) .nav-toggle{
  background: rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.22);
}
body:not(.is-scrolled) .nav-toggle__lines:before,
body:not(.is-scrolled) .nav-toggle__lines:after,
body:not(.is-scrolled) .nav-toggle__lines span{
  background: rgba(255,255,255,.92);
}
body:not(.is-scrolled) .custom-logo-link img{filter: drop-shadow(0 10px 18px rgba(0,0,0,.35));}
/* Estado ao fazer scroll: topbar esconde e navbar “cola” */
body.is-scrolled .topbar{
  transform: translateY(-100%);
  opacity: 0;
}
body.is-scrolled .nav-frame{
  padding: 0;
  transform: translateY(calc(-1 * var(--topbar-h)));
}
body.is-scrolled .nav-shell{
  max-width: none;
  border-radius: 0;
  border-left: 0;
  border-right: 0;
  box-shadow: 0 18px 46px rgba(0,0,0,.10);
  padding: 10px clamp(16px, 3vw, 34px);
}

/* Logo */
.custom-logo-link{display:inline-flex; align-items:center}
.custom-logo-link img{
  height: var(--logo-h);
  width: auto;
  max-width: 240px;
  object-fit: contain;
}
@media (max-width: 980px){
  .custom-logo-link img{height: var(--logo-h-sm); max-width: 200px}
}

.nav{display:flex; align-items:center; gap: 18px}
.nav__list{display:flex; gap: 14px; list-style:none; margin:0; padding:0}
.nav__list a{padding: 9px 10px; border-radius: 11px; font-weight: 700; font-family: var(--font-display); text-transform: uppercase; letter-spacing: .075em; font-size: .82rem}
.nav__list a:hover{background: rgba(11,110,59,.06)}
.nav__cta{display:flex; gap: 10px; align-items:center}

/* =========================
   NAV — SUBMENUS (clique)
   - pais "bloqueados" não navegam
   - abre/fecha com classe .is-sub-open
   ========================= */
.nav__list li{position:relative}

/* Chevron nos pais bloqueados */
.nav__list li.aapcil-parent-blocked > a{position:relative; padding-right: 26px}
.nav__list li.aapcil-parent-blocked > a::after{
  content:"";
  position:absolute;
  right: 8px;
  top: 50%;
  width: 10px;
  height: 10px;
  transform: translateY(-55%) rotate(45deg);
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  opacity: .72;
}
.nav__list li.aapcil-parent-blocked.is-sub-open > a::after{
  transform: translateY(-35%) rotate(-135deg);
  opacity: .92;
}

/* Base do submenu */
.nav__list li > ul{
  display:none;
  position:absolute;
  left: 0;
  top: calc(100% + 10px);
  min-width: 260px;
  padding: 12px;
  margin: 0;
  list-style:none;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(18, 22, 28, .72);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 22px 60px rgba(0,0,0,.28);
  z-index: 60;
}
.nav__list li.is-sub-open > ul{display:block}

/* Sub-submenu (flyout à direita, estilo "Reuniões anteriores") */
.nav__list li > ul li > ul{
  top: -12px;
  left: calc(100% + 10px);
}
.nav__list li > ul li.is-sub-open > a{background: rgba(255,255,255,.10)}
body.is-scrolled .nav__list li > ul li.is-sub-open > a{background: rgba(11,15,20,.06)}

/* Chevron para sub-submenus (seta à direita) */
.nav__list li > ul li.aapcil-parent-blocked > a::after{
  transform: translateY(-50%) rotate(-45deg);
}
.nav__list li > ul li.aapcil-parent-blocked.is-sub-open > a::after{
  transform: translateY(-50%) rotate(135deg);
}

 (max-width: 980px){
  /* no mobile, mantém o comportamento vertical */
  .nav__list li > ul li.aapcil-parent-blocked > a::after{
    transform: translateY(-55%) rotate(45deg);
  }
  .nav__list li > ul li.aapcil-parent-blocked.is-sub-open > a::after{
    transform: translateY(-35%) rotate(-135deg);
  }
}


/* Links submenu */
.nav__list li > ul a{
  display:block;
  padding: 12px 12px;
  border-radius: 14px;
  font-family: var(--font-body);
  font-weight: 800;
  text-transform:none;
  letter-spacing: 0;
  font-size: .92rem;
  color: rgba(255,255,255,.92);
}
.nav__list li > ul a:hover{background: rgba(255,255,255,.10)}

/* Quando o header está "scrolled" (fundo branco), o submenu fica claro */
body.is-scrolled .nav__list li > ul{
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(11,15,20,.10);
  box-shadow: 0 18px 55px rgba(0,0,0,.14);
}
body.is-scrolled .nav__list li > ul a{color: var(--ink)}
body.is-scrolled .nav__list li > ul a:hover{background: rgba(11,15,20,.06)}

/* Mobile: submenu inline (colapsável) */
@media (max-width: 980px){
  .nav__list li > ul{
    position: static;
    min-width: 0;
    width: 100%;
    margin-top: 8px;
    padding: 8px;
    border-radius: 16px;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;



    /* FAZ O SUBMENU FICAR BRANCO NO MOBILE */
    background: #fff;
    border: 1px solid rgba(11,15,20,.10);


  }
  .nav__list li > ul a{font-size: .94rem}


  .nav__list li > ul a{ color: rgba(11,15,20,.92); }
  .nav__list li > ul a:hover{ background: rgba(11,15,20,.06); }

}

.nav-toggle{
  display:none;
  border: 1px solid rgba(11,15,20,.14);
  background:#fff;
  border-radius: 14px;
  padding: 12px;
}
.nav-toggle__lines{display:block; width:22px; height:14px; position:relative}
.nav-toggle__lines:before,.nav-toggle__lines:after,.nav-toggle__lines span{
  content:"";
  position:absolute;
  left:0;
  right:0;
  height:2px;
  border-radius:999px;
  background: rgba(11,15,20,.72);
}
.nav-toggle__lines:before{top:0}
.nav-toggle__lines:after{bottom:0}
.nav-toggle__lines span{top:6px}

@media (max-width: 980px){
  .nav-toggle{display:inline-flex}
  .topbar{display:none}
  .nav-frame{padding: 10px 14px}
  .nav-shell{padding: 12px 14px; border-radius: 18px}
  .nav{position: fixed; left: 0; right: 0; top: var(--nav-h); background:#fff; border-bottom: 1px solid rgba(11,15,20,.08);
       padding: 16px 18px; display:none; flex-direction:column; align-items:flex-start;
       z-index: 9999;}
  .nav.is-open{display:flex}
  .nav__list{flex-direction:column; width:100%}
  .nav__cta{width:100%; justify-content:flex-start; flex-wrap:wrap}

  /* Em mobile o painel é branco — garante links visíveis mesmo sem scroll */
  .nav__list > li > a{color: var(--ink) !important;}
  .nav__list li > ul a{color: var(--ink) !important;}


body.is-scrolled .nav-frame{
    transform: none;
    padding: 0px 0px; 
  }

}

/* Hero */
.hero{position:relative; height:100vh; min-height:100svh; overflow:hidden}
.hero__bg{position:absolute; inset:0}
.hero__video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.hero__poster{position:absolute; inset:0; background-size:cover; background-position:center}
/* Base para parallax (JS ajusta translateY) */
.hero__video, .hero__poster{
  transform: translate3d(0,0,0) scale(1.06);
  will-change: transform;
}
.hero__poster--fallback{
  background-image:
    radial-gradient(1200px 500px at 18% 30%, rgba(11,110,59,.18), rgba(11,110,59,0)),
    radial-gradient(900px 420px at 80% 45%, rgba(194,31,45,.10), rgba(194,31,45,0)),
    linear-gradient(180deg, rgba(0,0,0,.10), rgba(0,0,0,.34));
}
.hero__overlay{
  position:absolute; inset:0;
  background:
    radial-gradient(900px 520px at 18% 30%, rgba(0,0,0,.62), rgba(0,0,0,0)),
    radial-gradient(1100px 560px at 70% 55%, rgba(0,0,0,.54), rgba(0,0,0,0)),
    linear-gradient(180deg, rgba(0,0,0,.42), rgba(0,0,0,.72));
}

/* Quando há vídeo/poster, mantém o mood escuro mas deixa o media respirar */
.hero.has-media .hero__overlay{
  background:
    radial-gradient(900px 520px at 18% 30%, rgba(0,0,0,.52), rgba(0,0,0,0)),
    radial-gradient(1100px 560px at 70% 55%, rgba(0,0,0,.44), rgba(0,0,0,0)),
    linear-gradient(180deg, rgba(0,0,0,.30), rgba(0,0,0,.64));
}


/* Hero News (3 últimas notícias com dissolução) */
.hero--news .hero-news__bg{isolation:isolate}
.hero-news__slide{
  position:absolute; inset:0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity .9s ease;
  transform: translate3d(0,0,0) scale(1.06);
  will-change: opacity;
}
.hero-news__slide.is-active{opacity:1}
.hero-news__slide--fallback{
  background-image:
    radial-gradient(1200px 500px at 18% 30%, rgba(11,110,59,.18), rgba(11,110,59,0)),
    radial-gradient(900px 420px at 80% 45%, rgba(194,31,45,.10), rgba(194,31,45,0)),
    linear-gradient(180deg, rgba(0,0,0,.10), rgba(0,0,0,.34));
}

.hero--news .kicker--news{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color: rgba(255,255,255,.82);
  margin-bottom: 12px;
}



/* HERO notícias — título menor + área fixa para não mexer o layout */
.hero--news .hero-news__content{
  max-width: 760px;
}

.hero--news .hero-news__title{
  max-width: 760px;
  margin: 0 0 14px;
  font-size: clamp(1.85rem, 3vw, 2.85rem);
  line-height: 1.08;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
  min-height: calc(1.08em * 3);
}

.hero--news .hero-news__titlelink{
  display: block;
}

@media (min-width: 981px){
  .hero--news .hero-news__content{margin-left: 100px;}
}

@media (max-width: 680px){
  .hero--news .hero-news__content{
    max-width: 100%;
  }

  .hero--news .hero-news__title{
    font-size: clamp(1.45rem, 5.2vw, 2rem);
    line-height: 1.1;
    -webkit-line-clamp: 4;
    line-clamp: 4;
    min-height: calc(1.1em * 4);
    margin-bottom: 12px;
  }

  .hero-news__dots{margin-top: 12px;}
}


.hero--news .kicker__badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width: 28px;
  height: 28px;
  border-radius: 7px;
  background: rgba(11,110,59,.94);
  color:#fff;
  font-weight: 900;
  letter-spacing: 0;
  box-shadow: 0 12px 28px rgba(0,0,0,.18);
}
.hero--news .hero-news__titlelink{display:inline}
.hero--news .hero-news__titlelink:focus{
  outline: 2px solid rgba(255,255,255,.55);
  outline-offset: 6px;
  border-radius: 10px;
}

/* Título aparece depois da imagem (JS adiciona classes) */
.hero--news.is-hero-news-anim .hero-news__title{
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .55s ease, transform .55s ease;
}
.hero--news.is-hero-news-anim.is-text-show .hero-news__title{
  opacity: 1;
  transform: translateY(0);
}
.site-main{padding-top: calc(var(--topbar-h) + var(--nav-h) + var(--nav-gap));}

/* Home: deixa o HERO passar por baixo do header (igual ao demo) */
body.home .site-main{padding-top:0}
body.home .hero{ margin-top: 0 !important; }

body.home .hero__content{padding-top: calc(200px + var(--topbar-h) + var(--nav-h));}

body.home .hero{
  height: clamp(560px, 74svh, 760px);
  min-height: clamp(560px, 74svh, 760px);
}

body.home .hero__content{
  min-height: clamp(560px, 74svh, 760px);
  padding-bottom: 96px;
}

body.home .hero__scroll{bottom: 28px;}
/* Removido: linha preta no fim do banner de notícias (KPIs devem colar ao HERO) */
body.home .hero::after{content:none !important; display:none !important;}

.kpi-strip--home{margin-top:0; border-top:0;}
.kpi-strip--home .kpi-strip__grid{padding: 16px 0;}
.kpi-strip--home .kpi__value{font-size: 1.78rem;}

@media (max-width: 680px){
  body.home .hero{
    height: clamp(460px, 66svh, 580px);
    min-height: clamp(460px, 66svh, 580px);
  }

  body.home .hero__content{
    min-height: clamp(460px, 66svh, 580px);
    padding-bottom: 84px;
  }

  body.home .hero__scroll{bottom: 22px;}
  body.home .hero::after{content:none !important; display:none !important;}
}

/* Dots do HERO Notícias (navegação manual) */
.hero-news__dots{
  display:flex;
  align-items:center;
  gap: 10px;
  margin-top: 18px;
}
.hero-dot{
  width: 10px;
  height: 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.55);
  background: rgba(255,255,255,.18);
  padding: 0;
  cursor: pointer;
  transition: transform .18s ease, background .18s ease, border-color .18s ease;
}
.hero-dot.is-active{
  background: rgba(255,255,255,.88);
  border-color: rgba(255,255,255,.92);
  transform: scale(1.15);
}
.hero-dot:focus{
  outline: 2px solid rgba(255,255,255,.65);
  outline-offset: 5px;
}


/* Mobile: título do banner mais acima e ligeiramente menor (para não "sumir") */
@media (max-width: 680px){
  body.home .hero__content{
    padding-top: calc(190px + var(--nav-h));
    padding-bottom: 84px;
    /* CORREÇÃO #3: dar “respiração” ao texto no mobile */
    padding-left: 30px;
    padding-right: 30px;
  }
  .hero__title{font-size: clamp(1.75rem, 7.6vw, 2.35rem)}
  .hero__subtitle{font-size: 1rem; line-height: 1.45}
}


.hero__content{
  position: relative;
  padding: 110px 0 170px;
  max-width: 920px;
  margin-left: 0; /* default */
}

/* Offset só no DESKTOP */
@media (min-width: 981px){
  .hero__content{ margin-left: 100px; }
}

.hero__title{
  color: #fff;
  font-family: var(--font-display);
  letter-spacing: -0.03em;
  font-size: clamp(2.3rem, 4.3vw, 4.1rem);
  line-height: 1.04;
  margin: 0 0 14px;
  /*text-align: justify;
  text-justify: inter-word;*/
}
.hero__subtitle{color: rgba(255,255,255,.82)}
.hero__cta{display:flex; gap:10px; flex-wrap:wrap; margin-top: 18px}
.hero__scroll{position:absolute; left: 0; bottom: 20px; opacity:.8}
.hero__scroll-dot{
  display:block; width: 14px; height: 14px; border-radius: 999px;
  border: 2px solid rgba(11,110,59,.55);
  box-shadow: 0 0 0 6px rgba(11,110,59,.10);
  animation: bob 1.7s ease-in-out infinite;
}
@keyframes bob{50%{transform: translateY(8px)}}

/* KPI dentro do HERO (full-screen) */



.kpi__value{
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}



.hero__kpi{
  position:absolute; left:0; right:0; bottom:0;
  z-index: 3;
}
.hero__kpi.kpi-strip{
  background: rgba(255,255,255,.78);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.hero__kpi .kpi-strip__grid{padding: 16px 0}
.hero__kpi .kpi__value{font-size: 1.78rem}

/* evita o scroll-indicator sobrepor o KPI */
.hero__scroll{bottom: 110px}

@media (max-width: 980px){
  .hero__content{padding-bottom: 240px}
  .hero__scroll{bottom: 180px}
}


.kpi-strip{
  border-top: 1px solid rgba(11,15,20,.06);
  border-bottom: 1px solid rgba(11,15,20,.06);
  background: rgba(255,255,255,.75);
}
.kpi-strip__grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr); /* era 4 */
  gap: 16px;
  padding: 18px 0;
}

.kpi{
  border-left: 1px solid rgba(11,15,20,.08);
  padding-left: 16px;
   text-align: center;
}
.kpi:first-child{border-left:none; padding-left:0}
.kpi__value{font-weight: 900; font-size: 1.68rem; color: var(--ink); letter-spacing: -0.02em}
.kpi__value{font-size: 1.68rem}
.kpi__label{font-size: .88rem; color: var(--muted)}

@media (max-width: 980px){
  .kpi-strip__grid{grid-template-columns: repeat(2, 1fr)}
  .kpi{border-left:none; padding-left:0; border-top:1px solid rgba(11,15,20,.08); padding-top:12px}
  .kpi:nth-child(1),.kpi:nth-child(2){border-top:none; padding-top:0}
}

/* Mobile pequeno: KPIs na MESMA LINHA (scroll horizontal suave) */
@media (max-width: 680px){
  .kpi-strip__grid{
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 6px !important;
    padding: 12px 0 !important;
    overflow: visible !important;
    align-items: start !important;
  }

  .kpi{
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    min-width: 0 !important;
    border: 0 !important;
    padding: 0 2px !important;
    text-align: center !important;
    gap: 4px !important;
  }

  .kpi__value{
    font-size: 1rem !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  .kpi__label{
    font-size: .68rem !important;
    line-height: 1.2 !important;
    text-align: center !important;
    white-space: normal !important;
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
  }
}

/* Grids */
.grid{display:grid; gap: 18px}
.grid--personas{grid-template-columns: repeat(3, 1fr)}
.grid--orgs{grid-template-columns: repeat(3, 1fr)}
.grid--posts{grid-template-columns: repeat(3, 1fr)}
.grid--expo-hub{grid-template-columns: repeat(2, 1fr)}




/* ------------------------------------------------------------
   HOME — SECÇÃO 1 (Percurso) — igual ao exemplo (full-screen + 3 cards)
   Nota: a imagem vem do inline style --percurso-bg no front-page.php
------------------------------------------------------------ */
.percurso-hero.section{ padding:0; }

.percurso-hero{
  position: relative;
  /* fallback local (se o inline style não existir) */
  --percurso-bg: url('../img/seccao1_fundo.webp');
  min-height: 100svh; /* cobre a tela toda */
  display: flex;
  align-items: center;
  overflow: hidden;
  color: #fff;

  /* Fundo: gradientes + imagem (via --percurso-bg) */
  background-image:
    radial-gradient(1200px 600px at 18% 12%, rgba(255,255,255,.10), transparent 58%),
    radial-gradient(1000px 700px at 92% 18%, rgba(0,0,0,.14), transparent 60%),
    linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.55)),
    var(--percurso-bg);
  background-size: cover;
  background-position: center;
}

.percurso-hero::after{
  content:"";
  position: absolute;
  inset: -2px;
  pointer-events: none;
  background: radial-gradient(700px 420px at 50% 92%, rgba(0,0,0,.22), transparent 70%);
}

.percurso-hero__grid{
  width: 100%;
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 42px;
  padding: clamp(72px, 10vh, 120px) 0;
}

.percurso-hero__intro{ max-width: 780px; }


/* Kicker da Secção 1 em branco (evita ser sobrescrito pelo .kicker global) */
.percurso-hero .kicker.kicker--light{
  color: #fff;
  opacity: .82; /* opcional (fica igual ao estilo do exemplo) */
}

.percurso-hero__title{
  margin: 10px 0 10px;
  font-weight: 900;
  line-height: 1.08;
  letter-spacing: -0.02em;
  font-size: clamp(32px, 3.4vw, 56px);
}

.percurso-hero__lead{
  margin: 0;
  font-size: clamp(15px, 1.2vw, 18px);
  line-height: 1.6;
  color: rgba(255,255,255,.84);
}

/* Cards */
.percurso-hero__cards{
  width: min(1040px, 100%);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(14px, 2.2vw, 26px);
}

.pathcard{
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 22px 22px 18px;
  border-radius: 22px;
  text-decoration: none;

  background: rgba(255,255,255,.94);
  color: #0b0f14;

  border: 1px solid rgba(255,255,255,.55);
  box-shadow: 0 22px 60px rgba(0,0,0,.22);

  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);

  min-height: 270px;

  transition: transform .18s ease, box-shadow .18s ease;
  will-change: transform;
}

.pathcard:hover{
  transform: translateY(-3px);
  box-shadow: 0 26px 70px rgba(0,0,0,.28);
}

.pathcard:focus-visible{
  outline: 3px solid rgba(255,255,255,.85);
  outline-offset: 3px;
}

.pathcard__icon{
  width: 52px;
  height: 52px;
  border-radius: 18px;
  display: grid;
  place-items: center;

  background: rgba(11,110,59,.10);
  color: var(--green, #0B6E3B);

  box-shadow: inset 0 0 0 1px rgba(11,110,59,.14);
}

.pathcard__title{
  margin: 4px 0 0;
  font-weight: 900;
  line-height: 1.15;
  font-size: 21px;
  letter-spacing: -0.01em;
}

.pathcard__accent{ color: var(--green, #0B6E3B); }

.pathcard__text{
  margin: 0;
  color: rgba(11,15,20,.70);
  line-height: 1.55;
  font-size: 14.5px;
}

.pathcard__cta{
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 800;
  color: var(--green, #0B6E3B);
}


@media (max-width: 920px){

  /* cards: mais estreitos (não ocupam o ecrã todo) */
  .percurso-hero__cards{
    width: min(92vw, 420px);   /* <-- AQUI fica mais estreito */
    margin: 0 auto;
    padding: 0;                /* sem padding extra */
    gap: 14px;
  }

  /* opcional: card ainda mais “fino” nas bordas */
  .percurso-hero .pathcard{
    padding: 16px 16px 14px;
    border-radius: 18px;
  }
}








/* Card do meio (featured) */
.pathcard--featured{
  background:
    radial-gradient(900px 520px at 50% 0%, rgba(255,255,255,.12), transparent 60%),
    linear-gradient(180deg, rgba(11,110,59,.92), rgba(6,80,43,.92));
  color: #fff;
  border: 1px solid rgba(255,255,255,.18);
}

.pathcard--featured .pathcard__icon{
  background: rgba(255,255,255,.12);
  color: #fff;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.18);
}

.pathcard--featured .pathcard__text{ color: rgba(255,255,255,.82); }
.pathcard--featured .pathcard__cta{ color: #fff; }

/* Responsivo */
@media (max-width: 920px){
  .percurso-hero__cards{ grid-template-columns: 1fr; }
  .pathcard{ min-height: auto; }
}



@media (max-width: 980px){
  .grid--personas,.grid--orgs,.grid--posts,.grid--expo-hub{grid-template-columns: 1fr}
}

.persona{
  border: 1px solid rgba(11,15,20,.10);
  border-radius: var(--radius);
  padding: 20px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(0,0,0,.06);
  position:relative;
  overflow:hidden;
}
.persona:before{
  content:""; position:absolute; inset:-60px -80px auto auto;
  width: 220px; height: 220px; border-radius: 999px;
  background: radial-gradient(circle at 30% 30%, rgba(11,110,59,.14), rgba(11,110,59,0));
}
.persona__icon{
  width: 44px; height: 44px; border-radius: 14px;
  margin-bottom: 12px;
  background: rgba(11,15,20,.06);
}
.persona__icon--green{background: linear-gradient(180deg, rgba(14,138,74,.20), rgba(11,110,59,.14))}
.persona__icon--red{background: linear-gradient(180deg, rgba(194,31,45,.18), rgba(194,31,45,.10))}
.persona__icon--glass{
  background: linear-gradient(180deg, rgba(11,110,59,.14), rgba(194,31,45,.08));
}
.persona__more{display:inline-flex; margin-top: 12px; color: var(--green); font-weight: 700}
.persona:hover{transform: translateY(-2px); transition: transform .16s ease}

/* Chapters */
.chapter{
  padding: 86px 0;
  background:
    radial-gradient(700px 300px at 10% 20%, rgba(11,110,59,.10), rgba(11,110,59,0)),
    radial-gradient(700px 340px at 80% 50%, rgba(194,31,45,.06), rgba(194,31,45,0));
}

/* Quem somos (layout tipo “About / Connecting With Nature”) */
.chapter--about{
  background:
    radial-gradient(900px 380px at 10% 20%, rgba(11,110,59,.10), rgba(11,110,59,0)),
    radial-gradient(900px 420px at 85% 55%, rgba(194,31,45,.06), rgba(194,31,45,0)),
    #fff;
  overflow:hidden;
}
.about-split{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 44px;
  align-items: center;
}


/* CTA do about-split: desktop vs mobile */
.about-split__cta--mobile{ display: none; }

@media (max-width: 980px){
  .about-split__cta--desktop{ display: none; }
  .about-split__cta--mobile{
    display: block;
    margin-top: 14px;
  }
  /* opcional: botão full-width no mobile */
  .about-split__cta--mobile .btn{
    width: 100%;
    justify-content: center;
  }
}



.about-split__text{max-width: 640px}

.about-feature{
  display:flex;
  align-items:flex-start;
  gap: 14px;
  margin: 18px 0 18px;
  padding: 14px 16px;
  border-radius: 24px;
  border: 1px solid rgba(11,15,20,.10);
  background: rgba(255,255,255,.86);
  box-shadow: var(--shadow2);
}
.about-feature__icon{
  width: 54px; height: 54px;
  border-radius: 999px;
  display:flex; align-items:center; justify-content:center;
  background: linear-gradient(180deg, rgba(14,138,74,.18), rgba(11,110,59,.10));
  color: var(--green);
  border: 1px solid rgba(11,110,59,.16);
  flex: 0 0 auto;
}
.about-feature__title{font-weight: 950; letter-spacing: -.01em; color: var(--ink)}
.about-feature__text{margin-top: 2px; color: rgba(11,15,20,.70)}

.about-split__media{position:relative}
.about-collage{position:relative; min-height: 460px}
.about-photo{
  position:absolute;
  background-size: cover;
  background-position: center;
  border-radius: 28px;
  border: 6px solid rgba(255,255,255,.96);
  box-shadow: var(--shadow);
  overflow:hidden;
}
.about-photo--main{
  left: 0;
  top: 0;
  width: 72%;
  height: 62%;
}
.about-photo--side{
  right: 0;
  top: 18%;
  width: 36%;
  height: 44%;
}
.about-photo--bottom{
  left: 12%;
  bottom: 0;
  width: 80%;
  height: 46%;
}
.about-photo--fallback{
  background-image:
    radial-gradient(800px 380px at 30% 30%, rgba(11,110,59,.20), rgba(11,110,59,0)),
    radial-gradient(700px 340px at 80% 60%, rgba(194,31,45,.12), rgba(194,31,45,0)),
    linear-gradient(135deg, rgba(11,15,20,.10), rgba(11,15,20,0));
}
.chapter__grid{
  display:grid; grid-template-columns: 1.25fr .75fr; gap: 22px; align-items: start;
}
.chapter__card{
  border: 1px solid rgba(11,15,20,.10);
  border-radius: var(--radius);
  background: rgba(255,255,255,.84);
  backdrop-filter: blur(6px);
  box-shadow: var(--shadow2);
  padding: 18px;
}
@media (max-width: 980px){.chapter__grid{grid-template-columns: 1fr}}

@media (max-width: 980px){
  .about-split{grid-template-columns: 1fr; gap: 22px}
  .about-split__text{max-width: 100%}
  .about-collage{min-height: 420px}
  .about-photo--main{width: 78%; height: 58%}
  .about-photo--side{width: 40%; height: 40%; top: 20%}
  .about-photo--bottom{left: 8%; width: 86%; height: 46%}
}

@media (max-width: 520px){
  .about-collage{min-height: 380px}
  .about-photo{border-width: 5px; border-radius: 24px}
  .about-photo--main{width: 82%; height: 56%}
  .about-photo--side{width: 46%; height: 38%; top: 22%}
  .about-photo--bottom{left: 6%; width: 90%; height: 46%}
}

.mini-timeline{position:relative; display:flex; flex-direction:column; gap: 14px; padding: 6px 4px 6px 10px}
.mini-timeline:before{
  content:"";
  position:absolute;
  left: 14px;
  top: 10px;
  bottom: 10px;
  width: 2px;
  background: linear-gradient(180deg, rgba(11,110,59,.55), rgba(194,31,45,.35));
  border-radius: 999px;
}
.mini-timeline__item{display:grid; grid-template-columns: 30px 1fr; gap: 12px; align-items:flex-start; position:relative}
.mini-timeline__dot{
  width: 12px; height: 12px; border-radius: 999px;
  margin-top: 6px;
  background: #fff;
  border: 2px solid rgba(11,110,59,.55);
  box-shadow: 0 0 0 6px rgba(11,110,59,.10);
  flex: 0 0 auto;
  margin-left: 4px;
}
.mini-timeline__content{padding-left: 0}
.mini-timeline__year{font-weight:900; color: var(--ink); letter-spacing: -.01em}
.mini-timeline__text{color: rgba(11,15,20,.72)}

/* Expo teaser */
.expo-teaser{
  border: 1px solid rgba(11,15,20,.10);
  border-radius: calc(var(--radius) + 6px);
  overflow:hidden;
  background:#fff;
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  box-shadow: var(--shadow);
}
.expo-teaser__left{padding: 22px}
.expo-teaser__right{position:relative; min-height: 320px}
.expo-teaser__media{
  position:absolute; inset:0;
  background-size: cover;
  background-position: center;
  background-image:
    radial-gradient(800px 400px at 30% 40%, rgba(11,110,59,.18), rgba(11,110,59,0)),
    linear-gradient(135deg, rgba(11,15,20,.10), rgba(11,15,20,.00));
}
.expo-teaser__media:after{
  content:"";
  position:absolute; inset:0;
  /* remove o "embranquecimento" — mantém só uma leve suavização */
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.18));
}
.expo-teaser__badge{
  position:absolute; right: 14px; top: 14px;
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(11,15,20,.10);
  border-radius: 999px;
  padding: 8px 12px;
  font-weight: 800;
}
@media (max-width: 980px){
  .expo-teaser{grid-template-columns: 1fr}
  .expo-teaser__right{min-height: 220px}
}


/* ------------------------------------------------------------
   HOME — SECÇÃO 2 (Expo Hub) — igual ao exemplo (full-screen + overlay verde)
   Nota: a imagem vem do inline style --expo-bg no front-page.php
------------------------------------------------------------ */
.expo-hero.section{ padding:0; }

.expo-hero{
  position: relative;
  /* fallback (se o inline style não existir) */
  --expo-bg:
    radial-gradient(1000px 520px at 18% 18%, rgba(11,110,59,.32), rgba(11,110,59,0)),
    linear-gradient(135deg, rgba(11,15,20,.14), rgba(11,15,20,0));

  min-height: 100svh;
  display: flex;
  align-items: stretch;
  overflow: hidden;
  color: #fff;
}

.expo-hero__media{
  position:absolute;
  inset:0;
  background-image: var(--expo-bg);
  background-size: cover;
  background-position: center;
  transform: scale(1.03);
  will-change: transform;
}

/* Overlay verde a desvanecer para transparente (como na referência) */
.expo-hero__veil{
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    /* luz suave */
    radial-gradient(900px 520px at 12% 18%, rgba(255,255,255,.10), rgba(255,255,255,0) 60%),
    /* verde principal (fade para transparente à direita) */
    linear-gradient(90deg,
      rgba(11,110,59,.92) 0%,
      rgba(11,110,59,.78) 40%,
      rgba(11,110,59,.34) 70%,
      rgba(11,110,59,0) 100%
    ),
    /* vinheta/contraste */
    linear-gradient(180deg, rgba(0,0,0,.16), rgba(0,0,0,.55));
}

.expo-hero__content{
  position: relative;
  z-index: 1;
  width: 100%;
  display:flex;
  align-items:flex-end;
}

.expo-hero__inner{
  max-width: 860px;
  padding: clamp(72px, 10vh, 120px) 0;
}

.expo-hero .kicker.kicker--light{
  color: #fff;
  opacity: .84;
}

.expo-hero__title{
  margin: 10px 0 12px;
  font-family: var(--font-display);
  font-weight: 950;
  letter-spacing: -0.03em;
  line-height: 1.05;
  font-size: clamp(34px, 4.2vw, 64px);
  text-shadow: 0 18px 46px rgba(0,0,0,.35);
}

.expo-hero__lead{
  margin: 0;
  max-width: 78ch;
  font-size: clamp(15px, 1.25vw, 18px);
  line-height: 1.6;
  color: rgba(255,255,255,.86);
  text-shadow: 0 18px 46px rgba(0,0,0,.28);
}

.expo-hero__cta{ margin-top: 18px; }

.expo-hero__meta{ margin-top: 18px; }
.expo-hero__pill{
  display:inline-flex;
  align-items:center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 999px;
  background: rgba(0,0,0,.25);
  border: 1px solid rgba(255,255,255,.18);
  color: rgba(255,255,255,.92);
  font-weight: 900;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

/* Mobile: overlay mais “cheio” para texto legível + espaçamento */
@media (max-width: 980px){
  .expo-hero__veil{
    background:
      radial-gradient(900px 520px at 18% 10%, rgba(255,255,255,.10), rgba(255,255,255,0) 62%),
      linear-gradient(180deg, rgba(11,110,59,.92), rgba(11,110,59,.72) 45%, rgba(0,0,0,.55)),
      linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.62));
  }
  .expo-hero__content{ align-items: flex-end; }
  .expo-hero__inner{ padding: 72px 0 64px; }
}



@media (max-width: 680px){
  .expo-hero__cta{
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 10px !important;
    width: 100% !important;
    align-items: stretch !important;
  }

  .expo-hero__cta .btn{
    width: 100% !important;
    min-width: 0 !important;
    padding: 12px 10px !important;
    font-size: 13px !important;
    line-height: 1.2 !important;
    text-align: center !important;
    justify-content: center !important;
    white-space: normal !important;
    border-radius: 22px !important;
  }
}

/* Orgs */
.org-card{
  border: 1px solid rgba(11,15,20,.10);
  border-radius: var(--radius);
  background:#fff;
  padding: 18px;
  box-shadow: 0 10px 22px rgba(0,0,0,.06);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.org-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 16px 36px rgba(0,0,0,.09);
  border-color: rgba(11,110,59,.22);
}

/* Cards / posts */
.card{
  border: 1px solid rgba(11,15,20,.10);
  border-radius: var(--radius);
  background:#fff;
  overflow:hidden;
  box-shadow: 0 10px 22px rgba(0,0,0,.06);
}
.card__cover img{width:100%; height: 220px; object-fit: cover}
.card__body{padding: 16px}
.card--feature .card__body{padding: 18px}

/* Prose */
.prose{max-width: 820px}
.prose p{margin: 0 0 14px}
.prose h2{font-family: var(--font-display); margin: 28px 0 10px}
.hero-media{margin: 16px 0 18px}
.hero-media img{border-radius: var(--radius)}

/* Contact */
.contact-card{
  border: 1px solid rgba(11,15,20,.10);
  border-radius: calc(var(--radius) + 8px);
  background: #fff;
  padding: 22px;
  display:flex;
  align-items:flex-end;
  justify-content: space-between;
  gap: 18px;
  box-shadow: var(--shadow2);
}
@media (max-width: 980px){
  .contact-card{flex-direction:column; align-items:flex-start}
}



/* Contact CTA — alinhar e dar espaço entre botões */
.contact-card__cta{
  display:flex;
  flex-direction:column;
  gap: 12px;              /* espaço entre botões */
  width: 340px;           /* largura estável (desktop) */
}


@media (max-width: 980px){
  .contact-card__cta{
    width: 100%;
    max-width: 520px;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 10px;
  }

  .contact-card__cta .btn{
    flex: 1 1 0;
    min-width: 170px;
    justify-content: center;

    /* ↓ diminuir letras no mobile */
    font-size: 14px;
    padding: 10px 12px;
    line-height: 1.1;
  }
}






/* Footer (estilo imersivo) */
.site-footer--lush{
  position: relative;
  padding: 76px 0 0;
  background: #08150a;
  color: #fff;
  overflow: hidden;
}
.site-footer--lush a{color: inherit}
.site-footer--lush .wrap{position:relative; z-index:2}
.site-footer__veil{
  position:absolute; inset:0;
  pointer-events:none;
  background:
    radial-gradient(820px 420px at 14% 22%, rgba(91,182,78,.22), rgba(91,182,78,0)),
    radial-gradient(780px 420px at 78% 38%, rgba(255,255,255,.08), rgba(255,255,255,0)),
    radial-gradient(720px 460px at 60% 90%, rgba(91,182,78,.14), rgba(91,182,78,0)),
    linear-gradient(180deg, rgba(8,21,10,.86), rgba(8,21,10,.98));
  filter: saturate(1.05) contrast(1.05);
}

.footer-top{
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, .95fr) minmax(0, 1.05fr);
  gap: 40px;
  padding-bottom: 46px;
  align-items: start;
}

.footer-col{
  min-width: 0;
}

.footer-brand{
  min-width: 0;
}

@media (max-width: 1100px){
  .footer-top{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px;
  }

  .footer-brand{
    grid-column: 1 / -1;
  }
}

@media (max-width: 720px){
  .footer-top{
    grid-template-columns: 1fr;
    gap: 26px;
  }

  .footer-brand{
    grid-column: auto;
  }
}

.footer-brand__row{display:flex; gap: 14px; align-items:center}
.footer-logo .custom-logo-link img{height: var(--logo-h-sm); width:auto}
.footer-brand__title{font-family: var(--font-display); margin:0; font-size: 1.4rem; letter-spacing:-.02em}
.footer-brand__desc{margin:.2rem 0 0; opacity:.85}
.footer-muted{opacity:.82; line-height:1.6; margin: 12px 0 0}

.footer-follow{margin-top: 18px}
.footer-follow__label{margin:0 0 10px; opacity:.86; font-weight:800}

.footer-h{font-family: var(--font-display); margin:0 0 14px; font-size: 1.2rem}

.footer-links{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap: 10px;
}
.footer-links a{
  display:flex;
  align-items:center;
  gap: 10px;
  opacity:.9;
}
.footer-links a:before{
  content:"→";
  opacity:.9;
}
.footer-links a:hover{opacity:1; transform: translateX(2px); transition: transform .18s ease, opacity .18s ease}

.footer-contact{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap: 12px}
.footer-contact li{display:flex; gap: 12px; align-items:flex-start; opacity:.9}
.footer-ico{width: 22px; height: 22px; display:inline-flex; align-items:center; justify-content:center; opacity:.95}
.footer-ico svg{width: 20px; height: 20px; fill: currentColor}
.footer-contact a{opacity:.95}
.footer-contact a:hover{text-decoration: underline}

.footer-newsletter{display:flex; flex-direction:column; gap: 12px; margin-top: 14px}
.footer-newsletter input{
  width: 100%;
  padding: 14px 16px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.28);
  background: rgba(255,255,255,.06);
  color:#fff;
  outline: none;
}
.footer-newsletter input::placeholder{color: rgba(255,255,255,.72)}
.footer-newsletter input:focus{border-color: rgba(255,255,255,.5); background: rgba(255,255,255,.08)}
.footer-btn{
  align-self:flex-start;
  padding: 13px 22px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(110, 200, 70, .95);
  color: #0b130c;
  font-weight: 900;
  box-shadow: 0 12px 26px rgba(0,0,0,.28);
}
.footer-btn:hover{transform: translateY(-1px); filter: saturate(1.03); transition: transform .18s ease, filter .18s ease}

.footer-note{margin: 10px 0 0; font-weight:800; font-size:.95rem}
.footer-note--ok{color: rgba(205,255,205,.95)}
.footer-note--err{color: rgba(255,210,210,.95)}

.footer-social{display:flex; gap: 10px; align-items:center}
.footer-social__a{
  width: 36px; height: 36px;
  border-radius: 999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.06);
}
.footer-social__a svg{width: 18px; height: 18px; fill: currentColor}
.footer-social__a:hover{transform: translateY(-1px); background: rgba(255,255,255,.10); transition: transform .18s ease, background .18s ease}

.footer-bottombar{
  background: rgba(0,0,0,.58);
  border-top: 1px solid rgba(255,255,255,.10);
}
.footer-bottombar__inner{
  padding: 18px 0;
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 14px;
}
@media (max-width: 720px){
  .footer-bottombar__inner{
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 8px;
  }
  .footer-copy{margin:0}
}
.footer-copy{margin:0; opacity:.88}

/* Reveal fallback */
[data-reveal]{opacity: 0; transform: translateY(14px)}
.is-revealed{opacity: 1; transform:none; transition: opacity .7s ease, transform .7s ease}
@media (prefers-reduced-motion: reduce){
  [data-reveal]{opacity:1; transform:none}
}

/* Persona image */
.persona{padding-top: 16px}
.persona__img{
  width: 100%;
  height: 150px;
  border-radius: 14px;
  background-size: cover;
  background-position: center;
  margin-bottom: 14px;
  position: relative;
  overflow: hidden;
}
.persona__img:after{
  content:"";
  position:absolute; inset:0;
  /* Barra cinza mais baixa (não "mata" a foto) */
  background: linear-gradient(180deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,.08) 60%,
    rgba(255,255,255,.28) 100%
  );
}
.persona__img--fallback{
  background:
    radial-gradient(600px 220px at 22% 30%, rgba(11,110,59,.18), rgba(11,110,59,0)),
    radial-gradient(520px 220px at 80% 50%, rgba(194,31,45,.08), rgba(194,31,45,0)),
    linear-gradient(135deg, rgba(11,15,20,.08), rgba(11,15,20,0));
}

/* Page hero (banner com imagem destacada) */
.page-hero{
  position:relative;
  min-height: 320px;
  overflow:hidden;
  border-bottom: 1px solid rgba(11,15,20,.06);
}
.page-hero__bg{
  position:absolute; inset:0;
  background-size: cover;
  background-position: center;
  background-image:
    radial-gradient(900px 420px at 18% 30%, rgba(11,110,59,.18), rgba(11,110,59,0)),
    radial-gradient(900px 420px at 80% 45%, rgba(194,31,45,.10), rgba(194,31,45,0));
}
.page-hero__overlay{
  position:absolute; inset:0;
  /*
    Filtro negro transparente (todas as páginas com banner)
    - reduz o “choque” visual
    - permite texto branco legível
    Dica: ajusta os alphas (0.45–0.70) para mais/menos escuro.
  */
  background:
    radial-gradient(900px 520px at 18% 30%, rgba(0,0,0,.55), rgba(0,0,0,0)),
    radial-gradient(1100px 560px at 70% 55%, rgba(0,0,0,.48), rgba(0,0,0,0)),
    linear-gradient(180deg, rgba(0,0,0,.48), rgba(0,0,0,.72));

}
.page-hero__content{position:relative; padding: 96px 0 36px}
.page-hero__kicker{
  display:inline-block;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-size: .78rem;
  color: rgba(255,255,255,.82);
  margin: 0 0 10px;
}
.page-hero__title{
  font-family: var(--font-display);
  letter-spacing: -0.03em;
  font-size: clamp(2.1rem, 3.8vw, 3.6rem);
  line-height: 1.06;
  margin: 0;
  color: #fff;
  text-shadow: 0 18px 40px rgba(0,0,0,.35);
}
.page-hero__desc{
  margin: 12px 0 0;
  max-width: 68ch;
  color: rgba(255,255,255,.86);
  text-shadow: 0 18px 40px rgba(0,0,0,.35);
}

@media (max-width: 980px){
  .page-hero__content{padding: 84px 0 28px}
  .page-hero__title{font-size: clamp(1.8rem, 6.2vw, 2.6rem)}
  .page-hero__desc{max-width: 56ch}
}

/*
  FIX: Colar o banner (page-hero) ao topo (barra verde + navbar).
  Antes, o .site-main tinha padding-top para o header fixed, então os banners ficavam “baixos”.
  Aqui puxamos o banner para cima e compensamos no padding do conteúdo,
  mantendo o título/conteúdo legível e sem ficar por baixo do header.
*/
.page-hero{
  margin-top: calc(-1 * (var(--topbar-h) + var(--nav-h) + var(--nav-gap)));
}
.page-hero__content{
  padding-top: calc(96px + var(--topbar-h) + var(--nav-h) + var(--nav-gap));
}

/* Notícias & Eventos (home) */
.grid--ne{grid-template-columns: repeat(2, 1fr); align-items:start}
.grid--mini{grid-template-columns: 1fr; gap: 12px}
.mini{
  display:grid;
  grid-template-columns: 110px 1fr;
  gap: 12px;
  border: 1px solid rgba(11,15,20,.10);
  border-radius: 16px;
  background:#fff;
  overflow:hidden;
}
.mini__cover img{width:100%; height:100%; object-fit: cover}
.mini__body{padding: 10px 10px 12px}
.mini__title{font-family: var(--font-display); margin: 0; font-size: 1.05rem; line-height: 1.18}
@media (max-width: 980px){
  .grid--ne{grid-template-columns: 1fr}
  .mini{grid-template-columns: 96px 1fr}
}

/* Contact grid */
.grid--contact{grid-template-columns: repeat(2, 1fr)}
.card--pad .card__body{padding: 18px}
@media (max-width: 980px){.grid--contact{grid-template-columns: 1fr}}

/* Logos */
.grid--logos{grid-template-columns: repeat(4, 1fr)}
.logo-card{
  border: 1px solid rgba(11,15,20,.10);
  border-radius: var(--radius);
  background:#fff;
  padding: 14px;
  box-shadow: 0 10px 22px rgba(0,0,0,.06);
}
.logo-card__logo img{
  width:100%;
  height: 84px;
  object-fit: contain;
  background: rgba(11,15,20,.02);
  border-radius: 14px;
  padding: 10px;
}
.logo-card__title{font-weight:800; margin: 12px 0 6px}
@media (max-width: 980px){.grid--logos{grid-template-columns: repeat(2, 1fr)}}

/* Documentos */
.grid--docs{grid-template-columns: repeat(3, 1fr)}
.doc-card{
  border: 1px solid rgba(11,15,20,.10);
  border-radius: var(--radius);
  background:#fff;
  padding: 16px;
  box-shadow: 0 10px 22px rgba(0,0,0,.06);
}
.doc-card__title{font-family: var(--font-display); margin:0 0 8px}
@media (max-width: 980px){.grid--docs{grid-template-columns: 1fr}}




/* ------------------------------------------------------------
   Catálogos (estilo “biblioteca + recentes” + efeito livro)
   ✅ Ajustado: grid tipo “revistas” (como as 2 últimas imagens)
   ✅ NÃO mexe na coluna “Catálogos Recentes”
------------------------------------------------------------ */

.catalog-layout{
  display:grid;
  grid-template-columns: 1fr .38fr;
  gap: 26px;
  align-items:start;
}

/* Sidebar (recentes) — mantém como está */
.catalog-sidebar{
  border: 1px solid rgba(11,15,20,.10);
  border-radius: calc(var(--radius) + 6px);
  background: rgba(255,255,255,.88);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  box-shadow: var(--shadow2);
  padding: 18px;
  position: sticky;
  top: calc(var(--topbar-h) + var(--nav-h) + 18px);
}

.catalog-sidebar__h{
  font-family: var(--font-display);
  margin:0 0 10px;
  font-weight: 950;
}
.catalog-sidebar__p{
  margin:0 0 12px;
  color: var(--muted);
  font-size:.95rem;
}

.catalog-recent{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap: 10px;
}
.catalog-recent a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding: 12px 12px;
  border-radius: 16px;
  border: 1px solid rgba(11,15,20,.08);
  background: rgba(255,255,255,.82);
  box-shadow: 0 10px 22px rgba(0,0,0,.06);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.catalog-recent a:hover{
  transform: translateY(-2px);
  box-shadow: 0 16px 36px rgba(0,0,0,.10);
  border-color: rgba(11,110,59,.22);
}
.catalog-recent__t{font-weight:900; letter-spacing:-.01em}
.catalog-recent__meta{color: var(--muted); font-size:.85rem; white-space:nowrap}

/* ✅ GRID “REVISTAS” (biblioteca) — com especificidade alta para não ser sobrescrito */
.catalog-layout .catalog-grid{
  display:grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 22px !important;
  align-items:start;
}

@media (max-width: 1280px){
  .catalog-layout .catalog-grid{grid-template-columns: repeat(4, minmax(0, 1fr)) !important;}
}
@media (max-width: 1060px){
  .catalog-layout .catalog-grid{grid-template-columns: repeat(3, minmax(0, 1fr)) !important;}
}
@media (max-width: 980px){
  .catalog-layout{grid-template-columns: 1fr;}
  .catalog-sidebar{position: static;}
  .catalog-layout .catalog-grid{grid-template-columns: repeat(2, minmax(0, 1fr)) !important;}
}
@media (max-width: 560px){
  .catalog-layout .catalog-grid{grid-template-columns: 1fr !important;}
}

/* Card do “livro” */
.catalog-layout a.book{
  display:block !important;
  color: inherit;
  text-decoration:none;
  transform: translateY(0);
  transition: transform .22s ease;
}
.catalog-layout a.book:hover{transform: translateY(-4px)}

/* ✅ Proporção vertical consistente */
.catalog-layout .book__stage{
  display:block !important;
  position:relative !important;
  width:100% !important;
  aspect-ratio: 3 / 4 !important;  /* capa vertical */
  perspective: 900px !important;
}

.catalog-layout .book__inner{
  position:absolute !important;
  inset:0 !important;
  transform-style: preserve-3d !important;
  transform: rotateY(0deg);
  transition: transform .5s cubic-bezier(.2,.8,.2,1);
}
.catalog-layout a.book:hover .book__inner{transform: rotateY(-18deg)}

.catalog-layout .book__cover,
.catalog-layout .book__back,
.catalog-layout .book__spine,
.catalog-layout .book__pages{
  position:absolute !important;
  top:0; bottom:0;
  border-radius: 18px;
}

.catalog-layout .book__cover{
  left:0; right:0;
  background-size: cover !important;
  background-position:center !important;
  box-shadow: 0 26px 70px rgba(0,0,0,.18);
  border: 1px solid rgba(11,15,20,.10);
  overflow:hidden;
  transform: translateZ(22px);
}

.catalog-layout .book__cover:after{
  content:"";
  position:absolute; inset:0;
  background:
    radial-gradient(600px 260px at 20% 20%, rgba(255,255,255,.14), rgba(255,255,255,0)),
    linear-gradient(180deg, rgba(0,0,0,.06), rgba(0,0,0,.22));
}

.catalog-layout .book__cover--fallback{
  background:
    radial-gradient(600px 260px at 22% 28%, rgba(11,110,59,.18), rgba(11,110,59,0)),
    radial-gradient(560px 260px at 85% 70%, rgba(194,31,45,.12), rgba(194,31,45,0)),
    linear-gradient(135deg, rgba(11,15,20,.10), rgba(11,15,20,0)) !important;
}

.catalog-layout .book__back{
  left:0; right:0;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(11,15,20,.10);
  transform: translateZ(-22px) rotateY(180deg);
}

.catalog-layout .book__spine{
  left:-18px;
  width: 36px;
  background: linear-gradient(180deg, rgba(11,110,59,.92), rgba(11,110,59,.72));
  border: 1px solid rgba(0,0,0,.12);
  transform: rotateY(90deg) translateZ(18px);
  transform-origin: left;
}

.catalog-layout .book__pages{
  left:6px; right:6px;
  background: linear-gradient(90deg, rgba(255,255,255,.94), rgba(245,245,245,.94));
  box-shadow: inset -10px 0 18px rgba(0,0,0,.08);
  transform: translateZ(14px);
  border-radius: 16px;
  opacity: 0;
  transition: opacity .35s ease;
}
.catalog-layout a.book:hover .book__pages{opacity: .85}

.catalog-layout .book__meta{margin-top: 10px}
.catalog-layout .book__title{
  font-weight: 950;
  letter-spacing: -.02em;
  line-height: 1.12;
  display:block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.catalog-layout .book__hint{
  display:inline-block;
  margin-top: 6px;
  font-weight: 900;
  font-size: .92rem;
  color: rgba(11,15,20,.70);
  opacity: 0;
  transform: translateY(2px);
  transition: opacity .18s ease, transform .18s ease;
}
.catalog-layout a.book:hover .book__hint{opacity:1; transform: translateY(0)}


/* ------------------------------------------------------------
   GALERIA (igual ao exemplo, tiles horizontais com número)
------------------------------------------------------------ */
.aapcil-glimpse{
  padding: 86px 0;
  background:
    radial-gradient(900px 420px at 14% 25%, rgba(11,110,59,.08), rgba(11,110,59,0)),
    radial-gradient(900px 420px at 82% 45%, rgba(194,31,45,.06), rgba(194,31,45,0)),
    #fff;
  overflow: hidden;
}

.glimpse{margin-top: 22px}
.glimpse__viewport{
  /* Full-bleed (encosta às extremidades do ecrã)
     - sem “card”
     - SEM scroll manual (apenas automático via JS)
  */
  overflow-x: auto;              /* permite scroll programático (JS) */
  overflow-y: hidden;
  border-radius: 0 !important;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  scrollbar-width: none;          /* Firefox */
  user-select: none;
 touch-action: pan-x pan-y;
}
.glimpse__viewport::-webkit-scrollbar{display:none}

.glimpse__viewport::-webkit-scrollbar{display:none}
.glimpse__track{
  display: flex;
  gap: 0;
  will-change: transform;
  transform: translate3d(0,0,0);
}

.glimpse__item{
  flex: 0 0 auto;
  width: clamp(280px, 22vw, 360px);
  scroll-snap-align: start;
}

.glimpse__media{
  position: relative;
  height: clamp(220px, 22vw, 300px);
  background-size: cover;
  background-position: center;
  /* sem curvas nas laterais (nem no 1º nem no último tile) */
  border-radius: 0 !important;               /* como o exemplo: encosta lado a lado */
}

/* garantir que nenhum overlay/texto cria curva por herança */
.glimpse, .glimpse__track, .glimpse__item, .glimpse__veil, .glimpse__text{
  border-radius: 0 !important;
}

/* Overlay escuro suave */
.glimpse__veil{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(0,0,0,.18) 0%, rgba(0,0,0,.32) 48%, rgba(0,0,0,.72) 100%);
}

/* Número grande no topo */
.glimpse__num{
  position:absolute;
  top: 16px;
  left: 18px;
  font-size: 2.1rem;
  font-weight: 950;
  letter-spacing: -0.02em;
  color: rgba(255,255,255,.82);
  text-shadow: 0 10px 22px rgba(0,0,0,.35);
}

/* Texto em baixo */
.glimpse__text{
  position:absolute;
  left: 18px;
  right: 18px;
  bottom: 18px;
  color: #fff;
}
.glimpse__title{
  font-family: var(--font-display);
  font-weight: 950;
  letter-spacing: -0.02em;
  font-size: 1.2rem;
  line-height: 1.12;
  margin-bottom: 8px;
}
.glimpse__desc{
  color: rgba(255,255,255,.86);
  font-size: .98rem;
  line-height: 1.35;
  max-width: 28ch;
}

/* Hover suave (sem “partir” cores) */
.glimpse__media{
  transition: transform .35s ease, filter .35s ease;
}
.glimpse__item:hover .glimpse__media{
  transform: scale(1.02);
  filter: saturate(1.06) contrast(1.02);
}

/* Pequena dica */
.glimpse__hint{margin-top: 12px}

/* Mobile: tiles maiores e scroll manual bom */
@media (max-width: 980px){
  .glimpse__item{width: 78vw}
  .glimpse__media{height: 52vw}
}


/* ---------------------------
   Eventos — Paginação em pontinhos
--------------------------- */
.pagination--dots .nav-links{display:flex; gap:10px; justify-content:center; align-items:center}
.pagination--dots .page-numbers{
  width: 10px; height: 10px;
  border-radius: 999px;
  background: rgba(11,15,20,.18);
  display:inline-block;
  overflow:hidden;
  text-indent: -999px;
  border: 1px solid rgba(11,15,20,.10);
}
.pagination--dots .page-numbers.current{background: rgba(11,110,59,.92); border-color: rgba(11,110,59,.92)}
.pagination--dots a.page-numbers:hover{background: rgba(11,110,59,.45); border-color: rgba(11,110,59,.45)}

/* ------------------------------------------------------------
   Eventos (arquivo) — ajustes como Notícias
   1) Remove “vazio” dos cards (grid não estica alturas)
   2) Paginação igual à das Notícias (botões pill)
------------------------------------------------------------ */

/* 1) Cards: mesma altura (independente do tamanho do resumo) */
body.post-type-archive-evento .grid--posts{align-items:stretch}
body.post-type-archive-evento .grid--posts > .card{
  height: 100%;
  display:flex;
  flex-direction:column;
}
body.post-type-archive-evento .grid--posts .card__body{
  flex: 1;
  display:flex;
  flex-direction:column;
  overflow-wrap:anywhere;
  word-break: break-word;
}

/* Título: máximo 2 linhas e reserva altura (para equalizar) */
body.post-type-archive-evento .grid--posts .h3{
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  min-height: calc(1.18em * 2);
}

/* Resumo: máximo 3 linhas e reserva altura (para equalizar) */
body.post-type-archive-evento .grid--posts .card__body p.muted{
  margin: 0;
  overflow-wrap:anywhere;
  word-break: break-word;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
  min-height: calc(1.6em * 3);
  max-height: calc(1.6em * 3);
}




/* 1c) Hover: igual às Notícias (desktop only) */
@media (hover:hover) and (pointer:fine){
  body.post-type-archive-evento .grid--posts > .card{
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  }
  body.post-type-archive-evento .grid--posts > .card:hover{
    transform: translateY(-3px);
    box-shadow: 0 18px 44px rgba(0,0,0,.12);
    border-color: rgba(11,110,59,.22);
  }
}
/* 2) Paginação: mantém o markup do WP, mas estiliza como a paginação das Notícias */
body.post-type-archive-evento .pagination--dots{margin-top: 18px}
body.post-type-archive-evento .pagination--dots .nav-links{
  gap: 10px;
  flex-wrap: wrap;
}

body.post-type-archive-evento .pagination--dots .page-numbers{
  /* override dos “pontinhos” */
  width: auto;
  height: 40px;
  min-width: 40px;
  padding: 0 14px;
  text-indent: 0;
  border-radius: 999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(11,15,20,.12);
  color: rgba(11,110,59,.95);
  font-weight: 950;
  box-shadow: var(--shadow2);
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease, color .18s ease;
}

body.post-type-archive-evento .pagination--dots a.page-numbers:hover{transform: translateY(-1px)}

body.post-type-archive-evento .pagination--dots .page-numbers.current{
  background: linear-gradient(180deg, var(--green-2), var(--green));
  border-color: rgba(11,110,59,.22);
  color: #fff;
}

@media (max-width: 680px){
  body.post-type-archive-evento .pagination--dots .page-numbers{
    height: 38px;
    min-width: 38px;
    padding: 0 12px;
  }
}

/* ---------------------------
   Eventos — Estado (Disponível/Indisponível)
--------------------------- */
.status-pill{
  position:absolute;
  right: 14px;
  top: 14px;
  padding: 8px 12px;
  border-radius: 999px;
  font-weight: 900;
  font-size: .85rem;
  letter-spacing: .02em;
  border: 1px solid rgba(11,15,20,.10);
  background: rgba(255,255,255,.90);
}
.status-pill--ok{color: #0b6e3b}
.status-pill--bad{color: #b91c1c}

.hero-media--event{position:relative}
.event-hero-fallback{
  position:relative;
  min-height: 220px;
  border: 1px solid rgba(11,15,20,.10);
  border-radius: var(--radius);
  background:
    radial-gradient(800px 360px at 25% 35%, rgba(11,110,59,.14), rgba(11,110,59,0)),
    radial-gradient(800px 360px at 80% 60%, rgba(194,31,45,.10), rgba(194,31,45,0)),
    linear-gradient(135deg, rgba(11,15,20,.08), rgba(11,15,20,0));
}

/* Botão desativado */
.btn--disabled{
  background: rgba(11,15,20,.08) !important;
  border: 1px solid rgba(11,15,20,.14) !important;
  color: rgba(11,15,20,.55) !important;
  cursor: not-allowed;
  pointer-events: none;
}

/* Notices (form) */
.notice{padding: 14px 16px; border-radius: 16px; margin: 0 0 16px; border: 1px solid rgba(11,15,20,.10); background:#fff}
.notice--ok{border-color: rgba(11,110,59,.22); background: rgba(11,110,59,.06)}
.notice--bad{border-color: rgba(185,28,28,.22); background: rgba(185,28,28,.06)}

.form-card .form__row{margin-bottom: 12px}
.form__row--2{display:grid; grid-template-columns: 1fr 1fr; gap: 12px}
@media (max-width: 980px){.form__row--2{grid-template-columns: 1fr}}


/* ------------------------------------------------------------
   Evento — efeito hover no formulário (desktop only)
------------------------------------------------------------ */

@media (hover:hover) and (pointer:fine){
  .evento-form-card{
    transition:
      transform .25s ease,
      box-shadow .25s ease,
      border-color .25s ease;
  }

  .evento-form-card:hover{
    transform: translateY(-3px);
    box-shadow: 0 18px 45px rgba(0,0,0,.10);
    border-color: rgba(11,110,59,.35);
  }
}



/* Eventos — badge Disponível/Indisponível + meta row (sem alterar layout dos cards) */
.card__meta-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.badge{
  display:inline-flex;
  align-items:center;
  gap: 8px;
  padding: 6px 10px;
  border-radius: 999px;
  font-weight: 900;
  font-size: .82rem;
  line-height: 1;
  border: 1px solid rgba(17,24,39,.10);
  background: rgba(255,255,255,.85);
}

.badge--ok{
  color: rgba(11,110,59,.95);
  border-color: rgba(11,110,59,.25);
  background: rgba(11,110,59,.10);
}

.badge--no{
  color: rgba(185,28,28,.95);
  border-color: rgba(185,28,28,.22);
  background: rgba(185,28,28,.10);
}





/* ------------------------------------------------------------
   Evento (single) — Coluna "ÚLTIMOS EVENTOS" fixa no desktop
   (não mexe na estrutura; apenas comportamento visual)
------------------------------------------------------------ */
@media (min-width: 981px){
  .event-layout{display:grid; grid-template-columns: 1fr .38fr; gap: 26px; align-items:start}
  .event-aside{
    position: sticky;
    top: calc(var(--topbar-h) + var(--nav-h) + 18px);
    align-self:start;
  }
}
@media (max-width: 980px){
  .event-aside{position: static;}
}



/* ------------------------------------------------------------
   Notícias — arquivo (cards) + single (2 colunas) + partilha
------------------------------------------------------------ */

.page-hero--sm .page-hero__content{
  /*
    IMPORTANT: O banner (page-hero) é puxado para cima com margin-top negativo
    para “colar” no topo. Por isso, o conteúdo do banner precisa compensar a
    altura do header fixo, senão o título fica por baixo do menu (sumindo).
  */
  padding-top: calc(38px + var(--topbar-h) + var(--nav-h) + var(--nav-gap));
  padding-bottom: 38px;
}
.page-hero--sm .page-hero__title{font-size: clamp(2.0rem, 3.2vw, 3.0rem)}
.page-hero--sm .page-hero__desc{max-width: 80ch}

@media (max-width: 980px){
  .page-hero--sm .page-hero__content{
    padding-top: calc(28px + var(--topbar-h) + var(--nav-h) + var(--nav-gap));
    padding-bottom: 28px;
  }
}

/* Grid de notícias */
.news-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}
@media (max-width: 1060px){.news-grid{grid-template-columns: repeat(2, minmax(0, 1fr));}}
@media (max-width: 680px){.news-grid{grid-template-columns: 1fr;}}

@media (max-width: 980px){
  .page-hero--sm .page-hero__content{padding-top: calc(28px + var(--nav-h) + var(--nav-gap)); padding-bottom: 28px;}
}

.news-card{
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(11,15,20,.10);
  border-radius: calc(var(--radius) + 8px);
  overflow:hidden;
  box-shadow: var(--shadow2);
  display:flex;
  flex-direction:column;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}


/* ------------------------------------------------------------
   Parceiros — faixa horizontal com "scroll" contínuo + fade nas bordas
------------------------------------------------------------ */

.partners-marquee{
  position: relative;
  margin-top: 22px;
  /* CORREÇÃO #1: remover o “card” com bordas (manter apenas a faixa suave) */
  border: 0;
  border-radius: 24px;
  background: rgba(255,255,255,.78);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  overflow: hidden;
}

/* Fade nas extremidades */
.partners-marquee::before,
.partners-marquee::after{
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 80px;
  pointer-events: none;
  z-index: 2;
}
.partners-marquee::before{left: 0; background: linear-gradient(90deg, rgba(255,255,255,1), rgba(255,255,255,0));}
.partners-marquee::after{right: 0; background: linear-gradient(270deg, rgba(255,255,255,1), rgba(255,255,255,0));}

.partners-inner{
  display:flex;
  width: max-content;
}

.partners-track{
  display:flex;
  align-items:center;
  gap: 34px;
  padding: 18px 24px;
  width: max-content;
  flex-wrap: nowrap;
  animation: partners-marquee 36s linear infinite;
}

@keyframes partners-marquee{
  from{transform: translate3d(0,0,0);}
  to{transform: translate3d(-50%,0,0);}
}

/* Respeita acessibilidade */
@media (prefers-reduced-motion: reduce){
  .partners-track{animation: none;}
}

.partners-item{
  flex: 0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  height: 54px;
}

.partners-item img{
  max-height: 54px;
  width: auto;
  max-width: 160px;
  object-fit: contain;
  filter: saturate(.95) contrast(1.02);
  opacity: .92;
}

@media (max-width: 680px){
  .partners-marquee::before,
  .partners-marquee::after{width: 44px;}
  .partners-track{gap: 22px; padding: 14px 16px; animation-duration: 42s;}
  .partners-item{height: 44px}
  .partners-item img{max-height: 44px; max-width: 120px}
}


/* ------------------------------------------------------------
   Botão flutuante: Ir ao topo
------------------------------------------------------------ */

.aapcil-floating-ui{
  position: fixed;
  right: 12px;
  bottom: 30px;
  z-index: 10000;
  pointer-events: none;
}

.float-btn{
  pointer-events: auto;
  border: 1px solid rgba(11,15,20,.14);
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  padding: 12px 14px;
  font-weight: 800;
  letter-spacing: .02em;
  box-shadow: 0 18px 55px rgba(0,0,0,.12);
  transform: translateY(8px);
  opacity: 0;
  transition: opacity .25s ease, transform .25s ease;
}

body.is-scrolled .float-btn{opacity: 1; transform: translateY(0)}

.float-btn:focus-visible{outline: 3px solid rgba(11,110,59,.35); outline-offset: 2px;}

/* CORREÇÃO #2: “Topo” com ícone (↑) + texto menor no mobile */
.float-btn--top span{
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.float-btn--top span::before{
  content: "↑";
  line-height: 1;
  font-size: 1.05em;
}

@media (max-width: 680px){
  .aapcil-floating-ui{
      
    right: 14px;
    bottom: calc(18px + env(safe-area-inset-bottom));
      
  }
  .float-btn{padding: 10px 12px; font-size: .82rem; box-shadow: 0 14px 40px rgba(0,0,0,.12);}
  .float-btn--top span{gap: 6px;}
}

.news-card:hover{
  transform: translateY(-3px);
  box-shadow: 0 18px 44px rgba(0,0,0,.12);
  border-color: rgba(11,110,59,.22);
}
.news-card__media{
  display:block;
  aspect-ratio: 16 / 9;
  background: rgba(11,15,20,.06);
  overflow:hidden;
}
.news-card__media img{width:100%; height:100%; object-fit:cover; display:block}
.news-card__ph{width:100%; height:100%; background: rgba(11,15,20,.06)}
.news-card__body{
  padding: 16px 16px 18px;
  /*
    NOTÍCIAS (arquivo):
    O CSS Grid estica todos os cards para a altura do maior da linha.
    Se o card tem pouco texto, fica um “vazio” grande e o "Ver mais" não
    fica alinhado. Transformamos o corpo em flex para empurrar o CTA ao fundo.
  */
  display: flex;
  flex-direction: column;
  flex: 1;
}
.news-card__meta{
  font-size: .92rem;
  color: rgba(17,24,39,.64);
  display:flex;
  align-items:center;
  gap: 8px;
  margin-bottom: 10px;
}
.news-card__sep{opacity:.7}
.news-card__title{margin:0 0 10px; font-size:1.1rem; line-height:1.25; letter-spacing:-.01em}
.news-card__title a{
  color: rgba(11,110,59,.95);
  text-decoration:none;
  font-weight: 950;
}
.news-card__title a:hover{text-decoration:underline}
.news-card__excerpt{
  margin:0 0 12px;
  color: rgba(17,24,39,.78);
  font-size:.98rem;
  line-height:1.55;
}
.news-card__excerpt{flex: 1;}
.news-card__more{margin-top: auto; font-weight:950; text-decoration:none; color: rgba(11,110,59,.95)}
.news-card__more:hover{text-decoration: underline}

/* Paginação (paginate_links type=list) */
.cta-row ul.page-numbers{
  list-style: none;
  padding: 0;
  margin: 0;
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}
.cta-row ul.page-numbers li{margin:0; padding:0}

.cta-row ul.page-numbers a.page-numbers,
.cta-row ul.page-numbers span.page-numbers{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid rgba(11,15,20,.12);
  background: rgba(255,255,255,.92);
  color: rgba(11,110,59,.95);
  font-weight: 950;
  box-shadow: var(--shadow2);
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease, color .18s ease;
}

.cta-row ul.page-numbers a.page-numbers:hover{transform: translateY(-1px)}
.cta-row ul.page-numbers span.page-numbers.current{
  background: linear-gradient(180deg, var(--green-2), var(--green));
  border-color: rgba(11,110,59,.22);
  color: #fff;
}

@media (max-width: 680px){
  .cta-row ul.page-numbers{gap: 8px}
  .cta-row ul.page-numbers a.page-numbers,
  .cta-row ul.page-numbers span.page-numbers{
    min-width: 38px;
    height: 38px;
    padding: 0 12px;
  }
}

/* Single notícia: 2 colunas + sidebar fixa */
.news-layout{
  display:grid;
  grid-template-columns: 1fr .38fr;
  gap: 26px;
  align-items:start;
}
@media (max-width: 980px){
  .news-layout{grid-template-columns: 1fr;}
  .news-aside{position: static;}
}
@media (min-width: 981px){
  .news-aside{
    position: sticky;
    top: calc(var(--topbar-h) + var(--nav-h) + 18px);
    align-self:start;
  }
}

.news-latest{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap: 10px}
.news-latest__item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding: 12px 12px;
  border-radius: 16px;
  border: 1px solid rgba(11,15,20,.08);
  background: rgba(255,255,255,.82);
  box-shadow: 0 10px 22px rgba(0,0,0,.06);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  text-decoration:none;
  color: inherit;
}
.news-latest__item:hover{
  transform: translateY(-2px);
  box-shadow: 0 16px 36px rgba(0,0,0,.10);
  border-color: rgba(11,110,59,.22);
}
.news-latest__t{font-weight:950; letter-spacing:-.01em}
.news-latest__d{color: var(--muted); font-size:.88rem; white-space:nowrap}

/* Partilha */
.news-share{margin-top: 22px; padding-top: 18px; border-top: 1px solid rgba(11,15,20,.10)}
.share-row{display:flex; flex-wrap:wrap; gap: 10px}
.share-btn{
  display:inline-flex;
  align-items:center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid rgba(11,15,20,.10);
  background: rgba(255,255,255,.90);
  box-shadow: 0 10px 22px rgba(0,0,0,.06);
  text-decoration:none;
  color: rgba(17,24,39,.86);
  font-weight: 900;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, filter .18s ease;
}
.share-btn:hover{
  transform: translateY(-2px);
  box-shadow: 0 16px 36px rgba(0,0,0,.10);
  border-color: rgba(11,110,59,.25);
  filter: brightness(1.02);
}
.share-ico{display:inline-flex; align-items:center; justify-content:center}
.share-btn--wa{border-color: rgba(16,185,129,.25)}
.share-btn--wa:hover{border-color: rgba(16,185,129,.45)}








/* Home — Notícias & Eventos: fundo verde bebé a cobrir a secção toda */
#noticias-eventos{
  

background: radial-gradient(900px 340px at 15% 0%, rgba(11,110,59,.10), transparent 60%),
            radial-gradient(900px 340px at 85% 20%, rgba(11,110,59,.08), transparent 60%),
            #EAF6EF;



  padding: 56px 0;                      /* garante “respiro” vertical */
  

}

/* opcional: cards mini destacam mais em fundo claro */
#noticias-eventos .mini{
  background: radial-gradient(900px 340px at 15% 0%, rgba(11,110,59,.10), transparent 60%),
            radial-gradient(900px 340px at 85% 20%, rgba(11,110,59,.08), transparent 60%),
            #EAF6EF;

  
}



/* Colar Galeria (fotos) na secção Notícias & Eventos — remove a faixa branca */
#galeria{
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}
#galeria .glimpse{
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
#galeria .glimpse__viewport{
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* garante que Notícias & Eventos começa logo a seguir */
#noticias-eventos{
  margin-top: 0 !important;
  /* se quiseres ainda mais “colado”, baixa para 24px */
  padding-top: 40px; 
}


/* ------------------------------------------------------------
   FIX — SECÇÃO 2 (EXPO HUB)
   - repõe o comportamento de .wrap (estava colado por width:100%)
   - sobe o conteúdo e dá “respiração” como na secção de cima
------------------------------------------------------------ */

/* Desktop / geral */
.expo-hero .expo-hero__content{
  /* repõe o comportamento de .wrap (antes estava width:100%) */
  width: var(--wrap);
  margin-inline: auto;

  /* em vez de ficar colado ao fundo, sobe e dá respiro */
  align-items: flex-start;
  padding-top: calc(var(--topbar-h) + var(--nav-h) + clamp(82px, 21vh, 150px));
  padding-bottom: clamp(52px, 9vh, 110px);
}

/* deixa o espaçamento vertical controlado pelo container */
.expo-hero .expo-hero__inner{
  padding: 0;
}

@media (max-width: 980px){
  .expo-hero .expo-hero__content{
    padding-top: calc(var(--nav-h) + clamp(40px, 9vh, 72px));
  }
}






/* ---------------------------
   Publicidade / Associados
--------------------------- */
.section--ad{padding: 28px 0}

.ad-banner{
  overflow: hidden;
  box-shadow: none !important;
  border: 1px solid rgba(11,15,20,.10);
  background: #fff;
}

.ad-banner__link{display:block}

.ad-banner__img{
  width: 100%;
  height: 190px;
  object-fit: contain;
  object-position: center;
  background: #fff;
  display: block;
}

/* Rotator (troca automática) */
.ad-rotator{
  position: relative;
  height: 190px;
}

.ad-rotator__slide{
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity .6s ease;
}

.ad-rotator__slide.is-active{
  opacity: 1;
  z-index: 1;
}

.ad-rotator .ad-banner__link{
  display: block;
  height: 100%;
}

.ad-rotator .ad-banner__img{
  height: 100% !important;
}

/* =========================
   SECÇÃO ASSOCIADOS
   ========================= */
.section--associados{
  padding-top: 72px !important;
  padding-bottom: 72px !important;
}

.section--associados .wrap{
  display: block !important;
}

.section--associados .associados-head{
  max-width: 820px !important;
  margin: 0 0 28px 0 !important;
  text-align: left !important;
}

.section--associados .associados-head__small{
  margin: 0 0 10px 0 !important;
  font-size: .78rem !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: var(--muted) !important;
}

.section--associados .associados-head__title{
  margin: 0 0 14px 0 !important;
  font-family: var(--font-display) !important;
font-size: clamp(1.8rem, 3.6vw, 3rem) !important;
  line-height: 1.02 !important;
  font-weight: 950 !important;
  letter-spacing: -0.03em !important;
  color: var(--ink) !important;
  text-align: left !important;
}

.section--associados .associados-head__desc{
  max-width: 62ch !important;
  margin: 0 !important;
  font-size: 1.04rem !important;
  line-height: 1.65 !important;
  font-weight: 400 !important;
  color: var(--muted) !important;
  text-align: justify !important;
  text-justify: inter-word !important;
  hyphens: auto !important;
}

/* tira o rectângulo só nesta secção */
.section--associados .ad-banner{
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* banner em faixa total sem cortar a arte */
.section--associados .ad-rotator{
  position: relative !important;
  height: auto !important;
  aspect-ratio: 3405 / 564 !important;
}

.section--associados .ad-rotator__slide{
  position: absolute !important;
  inset: 0 !important;
  opacity: 0 !important;
  transition: opacity .6s ease !important;
  display: block !important;
  text-align: left !important;
}

.section--associados .ad-rotator__slide.is-active{
  opacity: 1 !important;
  z-index: 1 !important;
}

.section--associados .ad-rotator .ad-banner__link{
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}

.section--associados .ad-banner__img{
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: center center !important;
  background: #dfeecd !important;
  margin: 0 !important;
}

/* Mobile */
@media (max-width: 720px){
  .section--ad{
    padding: 18px 0;
  }

  .ad-banner{
    border-radius: 18px;
  }

  .ad-banner__img{
    height: 120px;
  }

  .ad-rotator{
    height: 120px;
  }

  .section--associados{
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }

  .section--associados .associados-head{
    margin-bottom: 20px !important;
  }

  .section--associados .associados-head__title{
  font-size: clamp(1.8rem, 6vw, 2.4rem) !important;
}

  .section--associados .associados-head__desc{
    font-size: .98rem !important;
  }

  .section--associados .ad-banner{
    border-radius: 0 !important;
  }

  .section--associados .ad-rotator{
    height: auto !important;
    aspect-ratio: 3405 / 564 !important;
  }

  .section--associados .ad-banner__img{
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center center !important;
    background: #dfeecd !important;
  }
}
/* =========================================================
   AAPCIL — Institucional (Quem Somos / Historial / Direcção / MVV)
   - ajustes UX sem quebrar o resto
   ========================================================= */

/* Cards: garantir padding mesmo quando não existe .card__body */
.card--pad{padding: 18px}
.card--pad .card__body{padding: 0}

/* Grid cards: 1 -> 2 -> 3 colunas */
.grid--cards{grid-template-columns: 1fr}
@media (min-width: 720px){
  .grid--cards{grid-template-columns: repeat(2, minmax(0, 1fr))}
}
@media (min-width: 1024px){
  .grid--cards{grid-template-columns: repeat(3, minmax(0, 1fr))}
}

/* Missão — 4 cards numa linha no desktop; 1 a 1 no telemóvel */
.grid--cards.grid--cards--desktop4{grid-template-columns: 1fr}
@media (min-width: 720px){
  .grid--cards.grid--cards--desktop4{grid-template-columns: repeat(2, minmax(0, 1fr))}
}
@media (min-width: 1024px){
  .grid--cards.grid--cards--desktop4{grid-template-columns: repeat(4, minmax(0, 1fr))}
}
/* Direcção — Estrutura: no "media" (>=720) manter 1 a 1; no desktop 2 colunas */
.grid--cards.grid--cards--md1{grid-template-columns: 1fr}
@media (min-width: 720px){
  .grid--cards.grid--cards--md1{grid-template-columns: 1fr}
}
@media (min-width: 1024px){
  .grid--cards.grid--cards--md1{grid-template-columns: repeat(2, minmax(0, 1fr))}
}

/* Prose: listas e separadores com espaçamento consistente */
.prose{max-width: 820px}
.prose-list{margin: 14px 0 0; padding-left: 18px}
.prose-list li{margin: 10px 0; color: var(--ink)}
.prose hr{border:0; border-top:1px solid var(--line); margin: 18px 0}

/* Page hero actions */
.page-hero__actions{display:flex; flex-wrap:wrap; gap: 12px; margin-top: 16px}

/* Top nav institucional */
.about-topnav{border-top:1px solid var(--line); border-bottom:1px solid var(--line); background: rgba(255,255,255,.92); backdrop-filter: blur(10px)}
.about-topnav__inner{display:flex; gap: 10px; overflow:auto; padding: 12px 0}
.about-topnav__link{
  display:inline-flex; align-items:center; justify-content:center;
  white-space:nowrap; padding: 10px 14px;
  border-radius: 999px; border: 1px solid var(--line);
  background:#fff; color: var(--ink);
  font-weight: 800; font-size: 13px;
}
.about-topnav__link.is-active{background: var(--green); color:#fff; border-color: transparent}
.about-topnav__link:focus{outline: 3px solid rgba(11,110,59,.25); outline-offset: 2px}

/* Subnav interno (âncoras) */
.about-subnav{display:flex; flex-wrap:wrap; gap: 10px; margin-top: 18px}
.about-subnav__link{
  display:inline-flex; align-items:center;
  padding: 8px 12px; border-radius: 999px;
  border: 1px solid rgba(11,15,20,.10);
  background: rgba(11,15,20,.06);
  font-weight: 800; font-size: 13px; color: var(--ink);
}



.about-subnav__link.is-active{border-color: rgba(11,110,59,.26); background: rgba(11,110,59,.10)}

/* Stats */
.about-stats{display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 18px 0}
.stat{padding: 14px 14px; border-radius: 16px; border: 1px solid rgba(11,15,20,.10); background: #fff; box-shadow: var(--shadow2)}
.stat__value{font-size: 21px; font-weight: 950; letter-spacing: -.02em}
.stat__label{margin-top: 2px; font-size: 12px; color: var(--muted); text-transform: uppercase; letter-spacing: .06em}

@media (max-width: 680px){
  .about-stats{
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
  }

  .stat{
    padding: 12px 10px;
    min-width: 0;
    overflow: hidden;
  }

  .stat__label{
    font-size: 9px;
    line-height: 1.15;
    letter-spacing: .03em;
  }

  .stat__value{
    font-size: 12px;
    line-height: 1.1;
    letter-spacing: 0;
    word-break: break-word;
    overflow-wrap: anywhere;
  }
}

/* Historial header grid */
.historial-hero{grid-template-columns: 1fr; gap: 18px}
@media (min-width: 960px){
  .historial-hero{grid-template-columns: 1.25fr .75fr; align-items: start}
}

/* Historial split + meta */
.history-split{grid-template-columns: 1fr; gap: 18px}
@media (min-width: 960px){
  .history-split{grid-template-columns: 1fr 1fr; align-items: start}
}
.history-cards{display:grid; gap: 12px}
.history-meta{display:flex; flex-wrap:wrap; gap: 10px; margin-top: 12px}
.history-meta .badge{white-space:nowrap}

/* Timeline */
.timeline{position:relative; display:grid; gap: 14px; padding-left: 18px}
.timeline:before{content:""; position:absolute; left: 7px; top: 2px; bottom: 2px; width: 2px; background: rgba(11,15,20,.10)}
.timeline__item{position:relative; display:grid; grid-template-columns: 86px 1fr; gap: 14px; align-items: start}
.timeline__item:before{
  content:""; position:absolute; left: -18px; top: 4px;
  width: 12px; height: 12px; border-radius: 999px;
  background:#fff; border: 2px solid rgba(11,110,59,.35)
}
.timeline__year{font-weight: 950; color: var(--green)}
.timeline__card{padding: 16px; border: 1px solid rgba(11,15,20,.10); border-radius: 16px; background:#fff; box-shadow: var(--shadow2)}
.timeline__title{font-weight: 900}
.timeline__text{margin-top: 4px; color: var(--muted)}

/* Accordion (details/summary) */
.aapcil-acc{margin-top: 14px; border: 1px solid rgba(11,15,20,.10); border-radius: 16px; background:#fff; overflow:hidden}
.aapcil-acc > summary{
  cursor:pointer; list-style:none;
  padding: 14px 16px; font-weight: 900;
  display:flex; align-items:center; justify-content:space-between;
}
.aapcil-acc > summary::-webkit-details-marker{display:none}
.aapcil-acc > summary:after{content:"+"; color: var(--muted); font-weight: 900}
.aapcil-acc[open] > summary:after{content:"–"}
.aapcil-acc__body{padding: 0 16px 16px}

/* Direcção */
.org-grid{display:grid; grid-template-columns: 1fr; gap: 14px}
@media (min-width: 720px){ .org-grid{grid-template-columns: repeat(2, minmax(0, 1fr))} }
@media (min-width: 1024px){ .org-grid{grid-template-columns: repeat(3, minmax(0, 1fr))} }
.org-grid--3{grid-template-columns: repeat(1, minmax(0, 1fr))}
@media (min-width: 720px){ .org-grid--3{grid-template-columns: repeat(3, minmax(0, 1fr))} }

.org-item__role{font-size: 12px; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; font-weight: 900}
.org-item__name{margin-top: 6px; font-size: 16px; font-weight: 950}
.org-item__org{margin-top: 4px; color: var(--muted)}

/* Notices */
.notice--strong{border-color: rgba(11,110,59,.25); background: rgba(11,110,59,.06)}

/* ---------------------------
   Modal (Programa do Evento / PDFs)
---------------------------- */
.aapcil-modal{position:fixed; inset:0; z-index:9999; display:none; align-items:center; justify-content:center; padding:18px}
.aapcil-modal.is-open{display:flex}
.aapcil-modal__overlay{position:absolute; inset:0; background:rgba(0,0,0,.58); backdrop-filter: blur(6px)}
.aapcil-modal__panel{position:relative; width:min(1000px, 96vw); max-height:90vh; background:#fff; border-radius:18px; overflow:hidden; box-shadow:0 30px 80px rgba(0,0,0,.35)}
.aapcil-modal__head{display:flex; align-items:center; justify-content:space-between; gap:10px; padding:14px 16px; border-bottom:1px solid rgba(17,24,39,.10)}
.aapcil-modal__title{font-weight:900; letter-spacing:.01em}
.aapcil-modal__close{appearance:none; border:0; background:rgba(17,24,39,.06); width:40px; height:40px; border-radius:999px; font-size:22px; line-height:1; cursor:pointer}
.aapcil-modal__close:hover{background:rgba(17,24,39,.10)}
.aapcil-modal__body{padding:0}
.aapcil-modal__frame{width:100%; height:72vh; border:0; display:block; background:#fff}
.aapcil-modal__foot{display:flex; justify-content:flex-end; gap:10px; padding:12px 16px; border-top:1px solid rgba(17,24,39,.10)}
body.is-modal-open{overflow:hidden}
@media (max-width: 700px){
  .aapcil-modal{padding:10px}
  .aapcil-modal__frame{height:70vh}
}

/* ---------------------------
   KPI cards (Áreas de Atuação)
---------------------------- */
.kpi{display:flex; align-items:center; gap:12px}
.kpi__icon{width:46px; height:46px; border-radius:16px; display:grid; place-items:center; background:rgba(11,15,20,.06); border:1px solid rgba(11,15,20,.08)}
.kpi__value{font-size:1.6rem; font-weight:950; line-height:1}
.kpi__label{color:rgba(11,15,20,.68); margin-top:4px}
.kpi-grid{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:14px; margin-top:18px}
@media (max-width: 720px){.kpi-grid{grid-template-columns:1fr}}

/* ---------------------------
   Formulários (Seja Associado / Formação)
---------------------------- */
.aapcil-form{max-width:820px}
.aapcil-form .field{margin:0 0 14px}
.aapcil-form label{display:block; font-weight:800; margin:0 0 6px}
.aapcil-form input[type="text"],
.aapcil-form input[type="email"],
.aapcil-form input[type="tel"],
.aapcil-form input[type="number"],
.aapcil-form input[type="url"],
.aapcil-form select,
.aapcil-form textarea{width:100%; padding:12px 14px; border-radius:16px; border:1px solid rgba(11,15,20,.14); background:#fff}
.aapcil-form input[type="file"]{width:100%; padding:10px 12px; border-radius:16px; border:1px dashed rgba(11,15,20,.18); background:rgba(11,15,20,.03)}
.aapcil-form input:focus,
.aapcil-form select:focus,
.aapcil-form textarea:focus{outline:2px solid rgba(11,110,59,.25); outline-offset:2px}
.aapcil-form .help{color:rgba(11,15,20,.68); font-size:.92rem; margin-top:6px}
.aapcil-form .row{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:12px}
@media (max-width: 720px){.aapcil-form .row{grid-template-columns:1fr}}
.aapcil-form .hp{position:absolute; left:-9999px; width:1px; height:1px; opacity:0}





/*-------------------------*/
html{
  scroll-behavior: smooth;
}


/* Newsletter: esconder nota vazia (AJAX) */
.footer-note:empty{display:none}

/* Hover suave nos cards (Quem Somos / Historial / Objectivos / Direcção) */
body.page-quem-somos .card,
body.page-historial .card,
body.page-objectivos .card,
body.page-direccao .card{
  transition: background .18s ease, transform .18s ease, border-color .18s ease, box-shadow .18s ease, color .18s ease;
}

body.page-quem-somos .card:hover,
body.page-historial .card:hover,
body.page-objectivos .card:hover,
body.page-direccao .card:hover{
  background: rgba(14,138,74,.92); /* verde bebé */
  border-color: rgba(255,255,255,.22);
  box-shadow: 0 16px 36px rgba(0,0,0,.12);
  transform: translateY(-2px);
  color: #fff;
}

/* Garantir texto branco mesmo quando o CSS do componente define cores fixas */
body.page-quem-somos .card:hover .muted,
body.page-historial .card:hover .muted,
body.page-objectivos .card:hover .muted,
body.page-direccao .card:hover .muted{
  color: rgba(255,255,255,.86) !important;
}

body.page-quem-somos .card:hover .kicker,
body.page-historial .card:hover .kicker,
body.page-objectivos .card:hover .kicker,
body.page-direccao .card:hover .kicker{
  color: rgba(255,255,255,.82) !important;
}

body.page-quem-somos .card:hover .prose-list li,
body.page-historial .card:hover .prose-list li,
body.page-objectivos .card:hover .prose-list li,
body.page-direccao .card:hover .prose-list li{
  color: rgba(255,255,255,.90) !important;
}

body.page-quem-somos .card:hover a,
body.page-historial .card:hover a,
body.page-objectivos .card:hover a,
body.page-direccao .card:hover a{
  color: inherit;
}

body.page-quem-somos .card:hover .badge,
body.page-historial .card:hover .badge,
body.page-objectivos .card:hover .badge,
body.page-direccao .card:hover .badge,
body.page-quem-somos .card:hover .badge--ok,
body.page-historial .card:hover .badge--ok,
body.page-objectivos .card:hover .badge--ok,
body.page-direccao .card:hover .badge--ok,
body.page-quem-somos .card:hover .badge--no,
body.page-historial .card:hover .badge--no,
body.page-objectivos .card:hover .badge--no,
body.page-direccao .card:hover .badge--no{
  color: #fff !important;
  border-color: rgba(255,255,255,.28) !important;
  background: rgba(255,255,255,.16) !important;
}

/* Linha do tempo (Historial) */
body.page-historial .timeline__card{
  transition: background .18s ease, transform .18s ease, border-color .18s ease, box-shadow .18s ease, color .18s ease;
}
body.page-historial .timeline__card:hover{
  background: rgba(14,138,74,.92);
  border-color: rgba(255,255,255,.22);
  box-shadow: 0 16px 36px rgba(0,0,0,.12);
  transform: translateY(-2px);
  color:#fff;
}
body.page-historial .timeline__card:hover .timeline__text{
  color: rgba(255,255,255,.86) !important;
}
body.page-historial .timeline__card:hover .badge,
body.page-historial .timeline__card:hover .badge--ok,
body.page-historial .timeline__card:hover .badge--no{
  color:#fff !important;
  border-color: rgba(255,255,255,.28) !important;
  background: rgba(255,255,255,.16) !important;
}


/* ------------------------------------------------------------
   Missão — cards (grid--cards--desktop4)
   - texto justificado
   - hover: fundo verde + texto branco
------------------------------------------------------------ */
.grid--cards--desktop4 .card{
  transition: background-color .18s ease, color .18s ease, border-color .18s ease,
              transform .18s ease, box-shadow .18s ease;
}

/* Justificar o conteúdo (textos dentro dos cards) */
.grid--cards--desktop4 .card p,
.grid--cards--desktop4 .card li{
  text-align: justify;
  text-justify: inter-word;
}

/* Hover (e teclado) */
.grid--cards--desktop4 .card:hover,
.grid--cards--desktop4 .card:focus-within{
  background: var(--green, #0B6E3B);
  border-color: rgba(255,255,255,.20);
  transform: translateY(-3px);
  box-shadow: 0 18px 48px rgba(0,0,0,.14);
  color: #fff;
}

/* Garantir que tudo dentro fica branco */
.grid--cards--desktop4 .card:hover *,
.grid--cards--desktop4 .card:focus-within *{
  color: #fff !important;
}

/* Links no hover (se existirem) */
.grid--cards--desktop4 .card:hover a,
.grid--cards--desktop4 .card:focus-within a{
  text-decoration-color: rgba(255,255,255,.60);
}

/* ============================================================
   QUEM SOMOS (Institucional) — Justificar texto + Hover nos cards
   Escopo: .about-page (só afecta este template)
============================================================ */

/* 1) Justificar praticamente todo o texto (sem mexer em títulos e menus) */
.about-page .page-hero__desc,
.about-page .muted,
.about-page .about-feature__text,
.about-page .about-feature__title,
.about-page .prose,
.about-page .prose p,
.about-page .prose-list li,
.about-page .about-split__text p,
.about-page .card p{
  text-align: justify;
  text-justify: inter-word;
}

/* 2) Hover nos cards (verde + fonte branca) */
.about-page .grid--cards .card{
  transition: background-color .18s ease, color .18s ease, border-color .18s ease,
              transform .18s ease, box-shadow .18s ease;
  will-change: transform;
}

/* Evitar hover “esquisito” em mobile */
@media (hover: hover) and (pointer: fine){
  .about-page .grid--cards .card:hover,
  .about-page .grid--cards .card:focus-within{
    background: var(--green, #0B6E3B);
    border-color: rgba(255,255,255,.22);
    transform: translateY(-3px);
    box-shadow: 0 18px 48px rgba(0,0,0,.14);
    color: #fff;
  }

  /* Garantir que tudo dentro fica branco, mesmo textos .muted */
  .about-page .grid--cards .card:hover *,
  .about-page .grid--cards .card:focus-within *{
    color: #fff !important;
  }
}

/* ============================================================
   HOME — Quem somos (secção com collage) — texto justificado
============================================================ */
.chapter--about--justify .about-split__text p,
.chapter--about--justify .about-feature__text{
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}

/* Notícias (Arquivo) — justificar resumo dentro do card */
.news-card__excerpt{
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}


/* Eventos (Arquivo) — justificar resumo dentro do card */
.grid--posts .card .card__body > p.muted{
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}


/* ============================================================
   PÁGINAS — Justificar TODO o conteúdo (Historial / Serviços / Formações / Área — Eventos)
   Nota: aplica-se apenas ao conteúdo dentro de .section (exclui o banner/hero)
============================================================ */

/* Historial (linha do tempo) */
body.page-template-templates-page-historial-php .site-main .section p,
body.page-template-templates-page-historial-php .site-main .section li,
body.page-historial .site-main .section p,
body.page-historial .site-main .section li,

/* Serviços ao Associado (informativo) */
body.page-template-templates-page-area-servicos-ao-associado-php .site-main .section p,
body.page-template-templates-page-area-servicos-ao-associado-php .site-main .section li,
body.page-servicos-ao-associado .site-main .section p,
body.page-servicos-ao-associado .site-main .section li,

/* Formações (informativo) */
body.page-template-templates-page-area-formacoes-php .site-main .section p,
body.page-template-templates-page-area-formacoes-php .site-main .section li,
body.page-formacoes .site-main .section p,
body.page-formacoes .site-main .section li,
body.page-formacao .site-main .section p,
body.page-formacao .site-main .section li,

/* Área — Eventos (informativo) */
body.page-template-templates-page-area-eventos-php .site-main .section p,
body.page-template-templates-page-area-eventos-php .site-main .section li{
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}

/* Também aplica ao texto de descrição do banner/hero destas páginas */
body.page-template-templates-page-historial-php .page-hero__desc,
body.page-template-templates-page-area-servicos-ao-associado-php .page-hero__desc,
body.page-template-templates-page-area-formacoes-php .page-hero__desc,
body.page-template-templates-page-area-eventos-php .page-hero__desc,
body.page-historial .page-hero__desc,
body.page-servicos-ao-associado .page-hero__desc,
body.page-formacoes .page-hero__desc,
body.page-formacao .page-hero__desc{
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}

/* ============================================================
   FIX (garantido) — Justificar conteúdo nas páginas informativas
   Marcador: adicionamos .content-justify no <main>
   (Historial / Serviços ao Associado / Formações / Área — Eventos)
============================================================ */

.site-main.content-justify .page-hero__desc,
.site-main.content-justify .section p,
.site-main.content-justify .section li,
.site-main.content-justify .about-split__text p,
.site-main.content-justify .prose,
.site-main.content-justify .prose p,
.site-main.content-justify .prose li,
.site-main.content-justify .muted,
.site-main.content-justify .timeline__text,
.site-main.content-justify .notice__text{
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}



