/* ============================================================
   TOKENS
============================================================ */
:root{
  --roxo:        #864CE2;
  --roxo-claro:  #985CF9;
  --roxo-medio:  #6C38BE;
  --roxo-escuro: #502595;
  --roxo-noite:  #381253;
  --fundo:       #F2F3F5;
  --cinza:       #D9D9D9;
  --preto:       #000000;
  --rosa:        #FFAAD0;
  --lilas:       #CD97F8;
  --amarelo:     #FEBF03;

  --fonte-titulo: 'Bebas Neue', sans-serif;
  --fonte-corpo:  'Montserrat', sans-serif;

  --largura-max: 1240px;
  --raio: 18px;
  --altura-header: 76px;
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:auto; }
body{
  font-family:var(--fonte-corpo);
  font-size:1rem;
  line-height:1.75;
  color:var(--preto);
  background:var(--fundo);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:var(--roxo-medio); }
ul{ list-style:none; }

.container{
  width:100%;
  max-width:var(--largura-max);
  margin-inline:auto;
  padding-inline:clamp(20px, 4vw, 48px);
}

.pular-conteudo{
  position:absolute; left:-999px; top:0;
  background:var(--amarelo); color:var(--roxo-noite);
  padding:.6rem 1rem; font-weight:700; z-index:400;
}
.pular-conteudo:focus{ left:0; }
:focus-visible{ outline:3px solid var(--amarelo); outline-offset:2px; }

h1,h2,h3{ font-family:var(--fonte-titulo); font-weight:400; line-height:.95; letter-spacing:.01em; }
h2{ font-size:clamp(3rem, 7.5vw, 6rem); color:var(--roxo-noite); text-transform:uppercase; }
h3{ font-size:clamp(1.7rem, 3.5vw, 2.4rem); color:var(--roxo-escuro); }
p{ max-width:64ch; }

.rotulo{
  display:inline-block;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.22em;
  text-transform:uppercase;
  margin-bottom:1.2rem;
}

.grifo{
  background-image:linear-gradient(transparent 16%, var(--amarelo) 16%, var(--amarelo) 88%, transparent 88%);
  padding-inline:.22em;
}
.grifo-anim{
  background-image:linear-gradient(transparent 16%, var(--amarelo) 16%, var(--amarelo) 88%, transparent 88%);
  background-repeat:no-repeat;
  background-size:0% 100%;
  padding-inline:0;
}
.grifo--rosa{ background-image:linear-gradient(transparent 16%, var(--rosa) 16%, var(--rosa) 88%, transparent 88%); }

.destaque-rosa{ color:var(--rosa); }
.destaque-lilas{ color:var(--lilas); }
.destaque-amarelo{ color:var(--amarelo); }

/* ============================================================
   COMPONENTES
============================================================ */
.botao{
  position:relative;
  display:inline-block;
  overflow:hidden;
  font-weight:700;
  font-size:.95rem;
  text-decoration:none;
  padding:1rem 2.1rem;
  border-radius:999px;
  transition:color .35s ease, border-color .35s ease;
  isolation:isolate;
}
.botao::before{
  content:"";
  position:absolute; inset:0; z-index:-1;
  border-radius:inherit;
  transform:translateY(101%);
  transition:transform .45s cubic-bezier(.65,0,.25,1);
}
.botao:hover::before{ transform:translateY(0); }
.botao--principal{ background:var(--roxo); color:#fff; }
.botao--principal::before{ background:var(--amarelo); }
.botao--principal:hover{ color:var(--roxo-noite); }
.botao--contorno{ border:2px solid rgba(255,255,255,.7); color:#fff; }
.botao--contorno::before{ background:#fff; }
.botao--contorno:hover{ color:var(--roxo-noite); border-color:#fff; }

.link-seta{ font-weight:700; text-decoration:none; color:var(--amarelo); }
.link-seta .seta{ display:inline-block; transition:transform .3s ease; }
.link-seta:hover .seta{ transform:translateX(6px); }

.placeholder{
  border:2px dashed var(--lilas);
  border-radius:var(--raio);
  background:rgba(205,151,248,.08);
  color:var(--roxo-escuro);
  font-size:.82rem;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  padding:1.2rem;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  min-height:70px;
}

/* --- Componente: Alerta de Gatilho ------------------------------
   <span class="alerta-gatilho alerta-gatilho--escuro">
     <span class="icone" aria-hidden="true">&#9650;!</span> Alerta de Gatilho
   </span>
----------------------------------------------------------------- */
.alerta-gatilho{
  display:inline-flex; align-items:center; gap:.5rem;
  font-weight:700; font-size:.75rem;
  letter-spacing:.14em; text-transform:uppercase;
  padding:.45rem .9rem; border-radius:6px; line-height:1;
}
.alerta-gatilho .icone{ font-size:.9rem; }
.alerta-gatilho--escuro{ background:var(--roxo-noite); color:var(--amarelo); border:2px solid var(--amarelo); }
.alerta-gatilho--contorno{ background:transparent; color:var(--amarelo); border:2px solid transparent; }
.alerta-gatilho--amarelo{ background:var(--amarelo); color:var(--roxo-escuro); }

.grafismo{ position:absolute; pointer-events:none; }

.com-js.anima .revelar{ opacity:0; transform:translateY(40px); }
.com-js.anima .revelar-esq{ opacity:0; transform:translateX(-40px); }

/* ============================================================
   PRELOADER
============================================================ */
#preloader{
  position:fixed; inset:0; z-index:300;
  background:var(--roxo-noite);
  display:flex; align-items:center; justify-content:center; gap:14px;
}
#preloader .ponto{
  width:16px; height:16px; border-radius:50%;
  animation:pulso 1s ease-in-out infinite;
}
#preloader .ponto:nth-child(1){ background:var(--rosa); animation-delay:0s; }
#preloader .ponto:nth-child(2){ background:var(--lilas); animation-delay:.15s; }
#preloader .ponto:nth-child(3){ background:var(--roxo-claro); animation-delay:.3s; }
#preloader{ animation:preloader-failsafe .4s ease 4s forwards; }
@keyframes preloader-failsafe{ to{ opacity:0; visibility:hidden; } }
@keyframes pulso{
  0%,100%{ transform:translateY(0); opacity:.5; }
  50%{ transform:translateY(-12px); opacity:1; }
}
body:not(.com-js) #preloader,
body.sem-anima #preloader{ display:none; }

/* ============================================================
   HEADER
============================================================ */
.cabecalho{
  position:fixed; top:0; left:0; right:0; z-index:200;
  transition:transform .4s ease, background .35s ease, backdrop-filter .35s ease;
}
.cabecalho.oculto{ transform:translateY(-100%); }
.cabecalho .container{
  display:flex; align-items:center; justify-content:space-between;
  min-height:var(--altura-header);
}
.logo{ display:block; position:relative; text-decoration:none; }
.logo img{ height:40px; width:auto; }
.logo .logo-neg{ position:absolute; inset:0; opacity:0; transition:opacity .3s ease; }
.logo .logo-pos{ opacity:1; transition:opacity .3s ease; }

/* Estado no topo */
.cabecalho--topo{ background:transparent; }
.cabecalho--topo .menu > a:not(.botao){ color:#fff; }
.cabecalho--topo .logo .logo-neg{ opacity:1; }
.cabecalho--topo .logo .logo-pos{ opacity:0; }
.cabecalho--topo .menu-botao span{ background:#fff; }

/* Estado rolado */
.cabecalho--solida{
  background:rgba(242,243,245,.88);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  box-shadow:0 1px 0 rgba(0,0,0,.06);
}

.menu-botao{
  display:none;
  background:none; border:0; cursor:pointer;
  width:44px; height:44px;
  flex-direction:column; align-items:center; justify-content:center; gap:6px;
}
.menu-botao span{
  display:block; width:26px; height:3px;
  background:var(--roxo-noite); border-radius:2px;
  transition:transform .25s ease, opacity .25s ease, background .3s ease;
}
.menu{ display:flex; align-items:center; gap:2.2rem; }
.menu > a:not(.botao){
  position:relative;
  text-decoration:none; font-weight:600; font-size:.92rem;
  color:var(--preto);
  padding:.3rem 0;
  transition:color .25s ease;
}
.menu > a:not(.botao)::after{
  content:"";
  position:absolute; left:0; right:0; bottom:0;
  height:2px; background:var(--amarelo);
  transform:scaleX(0); transform-origin:right;
  transition:transform .35s cubic-bezier(.65,0,.25,1);
}
.menu > a:not(.botao):hover::after,
.menu > a:not(.botao):focus-visible::after{
  transform:scaleX(1); transform-origin:left;
}
.menu .botao{ padding:.65rem 1.5rem; }

@media (max-width: 860px){
  .menu-botao{ display:flex; }
  .menu{
    position:absolute; top:100%; left:0; right:0;
    background:var(--fundo);
    border-bottom:1px solid var(--cinza);
    flex-direction:column; align-items:flex-start;
    padding:1.2rem clamp(20px,4vw,48px) 1.6rem;
    gap:1.1rem;
    display:none;
  }
  .menu.aberto{ display:flex; }
  .cabecalho--topo .menu.aberto > a:not(.botao){ color:var(--preto); }
  .menu-botao.aberto span:nth-child(1){ transform:translateY(9px) rotate(45deg); }
  .menu-botao.aberto span:nth-child(2){ opacity:0; }
  .menu-botao.aberto span:nth-child(3){ transform:translateY(-9px) rotate(-45deg); }
}

/* ============================================================
   HERO
============================================================ */
.hero{
  position:relative;
  min-height:100svh;
  background:var(--roxo-noite);
  color:#fff;
  display:flex;
  flex-direction:column;
  justify-content:center;
  overflow:hidden;
  padding-top:calc(var(--altura-header) + 2rem);
  padding-bottom:clamp(9rem, 18vh, 12rem);
}
.hero .container{ position:relative; z-index:2; }
.hero .rotulo{ color:var(--lilas); margin-bottom:1.6rem; }
.hero h1{
  font-size:clamp(4rem, 13vw, 11.5rem);
  text-transform:uppercase;
  margin-bottom:2.2rem;
}
.hero h1 .linha{ display:block; overflow:hidden; }
.hero h1 .ch{ display:inline-block; will-change:transform; }
.hero p{
  font-size:clamp(1rem, 2vw, 1.25rem);
  max-width:36rem;
  margin-bottom:3rem;
  color:var(--fundo);
}
.hero-acoes{ display:flex; flex-wrap:wrap; gap:1.1rem; }

.hero .grafismo-balao{
  right:-8vw; top:44%; transform:translateY(-55%);
  width:clamp(300px, 42vw, 640px);
  opacity:.3; z-index:1;
  will-change:transform;
}
.hero .grafismo-estrela{
  left:3vw; bottom:24vh;
  width:clamp(70px, 8vw, 120px);
  opacity:.85; z-index:0;
  will-change:transform;
}
@media (max-width:860px){
  .hero .grafismo-balao{ opacity:.14; }
  .hero .grafismo-estrela{ display:none; }
}

/* Marquee das 4 frentes */
.marquee{
  position:absolute; left:0; right:0; bottom:0; z-index:2;
  border-top:1px solid rgba(255,255,255,.16);
  background:var(--roxo-noite);
  padding:1.1rem 0;
  overflow:hidden;
  white-space:nowrap;
}
.marquee-faixa{
  display:inline-flex; align-items:center; gap:2.6rem;
  padding-right:2.6rem;
  font-family:var(--fonte-titulo);
  font-size:clamp(1.3rem, 2.4vw, 1.8rem);
  letter-spacing:.08em;
  color:var(--fundo);
  animation:desliza 24s linear infinite;
  will-change:transform;
}
.marquee-faixa .estrela{ color:var(--amarelo); font-family:var(--fonte-corpo); }
@keyframes desliza{
  from{ transform:translateX(0); }
  to{ transform:translateX(-100%); }
}
body.sem-anima .marquee-faixa{ animation:none; }

/* ============================================================
   SEÇÕES BASE
============================================================ */
.secao{ padding:clamp(4.5rem, 10vw, 8.5rem) 0; position:relative; }
.secao-cabeca{ margin-bottom:clamp(2rem, 5vw, 3.5rem); }
.bloco p + p{ margin-top:1.1rem; }

/* ============================================================
   NOSSA HISTÓRIA
============================================================ */
.historia{ overflow:hidden; }
.historia-intro{ padding-top:clamp(4.5rem, 10vw, 8rem); }
.historia-caps{
  position:relative;
  padding-top:1rem;
  padding-bottom:clamp(3rem, 7vw, 5rem);
}
.historia-linha{
  position:absolute; left:50%; top:0; bottom:0;
  width:2px; background:var(--cinza);
  transform:translateX(-50%);
}
.historia-linha-preenchida{
  position:absolute; left:0; top:0;
  width:100%; height:0%;
  background:var(--roxo);
}
.historia-cap{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2rem clamp(3rem, 7vw, 6rem);
  align-items:center;
  padding:clamp(2.5rem, 6vw, 4.5rem) 0;
}
.historia-cap .num-fantasma{
  font-family:var(--fonte-titulo);
  font-size:clamp(7rem, 15vw, 13rem);
  line-height:1;
  color:transparent;
  -webkit-text-stroke:2px var(--lilas);
  user-select:none;
  justify-self:center;
}
.historia-cap:nth-child(3) .num-fantasma{ order:-1; }
.historia-cap p{
  font-size:clamp(1.02rem, 1.5vw, 1.3rem);
  line-height:1.85;
}
@media (max-width:899px){
  
  .historia-caps{ padding-left:calc(clamp(20px, 4vw, 48px) + 2.6rem); }
  .historia-linha{ left:clamp(20px, 4vw, 48px); transform:none; }
  .historia-cap{ grid-template-columns:1fr; gap:.6rem; padding:2rem 0; }
  .historia-cap .num-fantasma{
    font-size:5rem; -webkit-text-stroke-width:1.5px;
    justify-self:start; order:-1 !important;
  }
}

/* ============================================================
   POR QUE EXISTIMOS
============================================================ */
.existimos .definicao{
  font-size:clamp(1.25rem, 2.1vw, 1.65rem);
  font-weight:600;
  line-height:1.65;
  color:var(--roxo-noite);
  max-width:58ch;
  margin-top:.6rem;
}
.existimos .definicao .palavra{ display:inline; }
.existimos .definicao strong{ font-weight:800; }
.existimos .complemento strong{ font-weight:700; color:var(--roxo-noite); }

.fontes{
  margin-top:2.2rem;
  border:1px solid var(--cinza);
  border-radius:var(--raio);
  background:#fff;
  max-width:820px;
}
.fontes summary{
  cursor:pointer; font-weight:700; font-size:.9rem;
  color:var(--roxo-medio); padding:1.1rem 1.3rem; list-style:none;
}
.fontes summary::-webkit-details-marker{ display:none; }
.fontes summary::after{ content:" +"; }
.fontes[open] summary::after{ content:" \2212"; }
.fontes-corpo{ padding:0 1.3rem 1.3rem; }
.fontes-corpo li{ margin-bottom:1rem; font-size:.92rem; }
.fontes-corpo li:last-child{ margin-bottom:0; }
.fontes-corpo strong{ color:var(--roxo-escuro); }

.existimos .complemento{ margin-top:2.4rem; }

/* ============================================================
   VISÃO
============================================================ */
.visao{
  background:var(--roxo-escuro);
  color:#fff;
  overflow:hidden;
}
.visao h2{ color:#fff; }
.visao p{ color:var(--fundo); }
.visao .rotulo{ color:var(--rosa); }
.visao-frase{
  margin-top:2.2rem;
  font-family:var(--fonte-titulo);
  font-size:clamp(1.9rem, 4.5vw, 3.6rem);
  line-height:1.18;
  text-transform:uppercase;
  max-width:26ch;
  color:#fff;
}
.visao-frase .grifo-anim{
  background-image:linear-gradient(transparent 12%, var(--amarelo) 12%, var(--amarelo) 90%, transparent 90%);
  color:var(--roxo-noite);
  transition:color .3s ease;
  padding-inline:0;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}
.com-js.anima .visao-frase .grifo-anim{ color:#fff; }
.com-js.anima .visao-frase .grifo-anim.grifado{ color:var(--roxo-noite); }
.visao .grafismo-semicirculo{
  right:-90px; bottom:-110px; width:340px; opacity:.28;
  will-change:transform;
}
.visao .grafismo-estrela-visao{
  right:8vw; top:3rem; width:clamp(50px, 6vw, 90px);
  will-change:transform;
}

/* ============================================================
   VALORES
============================================================ */
.valores-pilha{ margin-top:clamp(2rem, 5vw, 3.5rem); }
.valor-card{
  position:sticky;
  top:calc(var(--altura-header) + 3.5rem);
  border-radius:var(--raio);
  padding:clamp(1.8rem, 4vw, 3.2rem);
  margin-bottom:1.6rem;
  min-height:clamp(220px, 34svh, 340px);
  display:flex; flex-direction:column; justify-content:center;
  box-shadow:0 -18px 50px rgba(56,18,83,.28);
  will-change:transform;
}
.valor-card h4{
  font-family:var(--fonte-titulo);
  font-weight:400;
  font-size:clamp(1.8rem, 3.6vw, 2.8rem);
  line-height:1;
  text-transform:uppercase;
  margin-bottom:.9rem;
}
.valor-card p{ font-size:clamp(.95rem, 1.5vw, 1.1rem); max-width:56ch; }
.valor-card--branco{ background:#fff; color:var(--preto); }
.valor-card--branco h4{ color:var(--roxo-noite); }
.valor-card--roxo{ background:var(--roxo); color:#fff; }
.valor-card--medio{ background:var(--roxo-medio); color:#fff; }
.valor-card--escuro{ background:var(--roxo-escuro); color:#fff; }
.valor-card--noite{ background:var(--roxo-noite); color:#fff; }
.valor-card--roxo h4,.valor-card--medio h4,.valor-card--escuro h4,.valor-card--noite h4{ color:var(--amarelo); }

/* ============================================================
   ALINHAMENTO
============================================================ */
.ods-lista{
  display:grid; gap:.9rem; margin-top:1.8rem;
  grid-template-columns:repeat(3, 1fr);
}
@media (max-width:980px){ .ods-lista{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:640px){ .ods-lista{ grid-template-columns:1fr; } }
.ods-item{
  display:flex; align-items:center; gap:.9rem;
  background:#fff; border:1px solid var(--cinza);
  border-radius:var(--raio); padding:1rem 1.2rem;
  font-weight:600; font-size:.92rem;
  transition:transform .25s ease, border-color .25s ease;
}
.ods-item:hover{ transform:translateY(-4px); border-color:var(--roxo); }
.ods-num{
  flex:none; width:46px; height:46px;
  display:grid; place-items:center;
  background:var(--roxo); color:#fff;
  border-radius:12px;
  font-family:var(--fonte-titulo); font-size:1.5rem;
}
.ods-item:nth-child(2) .ods-num{ background:var(--roxo-medio); }
.ods-item:nth-child(3) .ods-num{ background:var(--roxo-claro); }
.ods-item:nth-child(4) .ods-num{ background:var(--roxo-escuro); }
.ods-item:nth-child(5) .ods-num{ background:var(--roxo-noite); }

/* ============================================================
   EQUIPE
============================================================ */
.equipe-grid{
  --gap-equipe:1.4rem;
  display:flex; flex-wrap:wrap; justify-content:center;
  gap:var(--gap-equipe); margin-top:2.4rem;
}
.pessoa-card{
  background:#fff; border-radius:var(--raio); overflow:hidden;
  border:1px solid var(--cinza);
  display:flex; flex-direction:column;
 
  flex:0 1 calc((100% - 2 * var(--gap-equipe)) / 3);
  max-width:calc((100% - 2 * var(--gap-equipe)) / 3);
  transition:transform .3s ease, box-shadow .3s ease;
}
@media (max-width:900px){
  .pessoa-card{
    flex-basis:calc((100% - var(--gap-equipe)) / 2);
    max-width:calc((100% - var(--gap-equipe)) / 2);
  }
}
@media (max-width:560px){
  .pessoa-card{ flex-basis:100%; max-width:100%; }
}
.pessoa-card:hover{ transform:translateY(-8px); box-shadow:0 20px 40px rgba(56,18,83,.15); }
.pessoa-foto{ aspect-ratio:1/1; border-radius:0; border-width:0 0 2px 0; min-height:0; }
img.pessoa-foto{
  width:100%;
  object-fit:cover;
  object-position:center 22%;
  border-bottom:2px solid var(--cinza);
  background:var(--fundo);
}
.pessoa-info{ padding:1.2rem; display:flex; flex-direction:column; gap:.5rem; flex:1; }
.pessoa-info h4{
  font-family:var(--fonte-titulo); font-size:1.6rem;
  color:var(--roxo-noite); letter-spacing:.03em;
}
.pessoa-cargo{ font-size:.85rem; font-weight:700; color:var(--roxo-medio); }
.pessoa-info .placeholder{ min-height:52px; font-size:.7rem; padding:.7rem; }
.mini-ph{ display:inline-flex; min-height:0; padding:.15rem .5rem; }
.pessoa-bio{ font-size:.86rem; line-height:1.65; }
.pessoa-bio-extra{
  font-size:.86rem; line-height:1.65;
  display:grid; grid-template-rows:0fr;
  transition:grid-template-rows .45s cubic-bezier(.65,0,.25,1);
}
.pessoa-bio-extra > div{ overflow:hidden; }
.pessoa-card.aberta .pessoa-bio-extra{ grid-template-rows:1fr; }
.pessoa-bio-extra p{ padding-top:.8rem; }
.bio-toggle{
  margin-top:auto; align-self:flex-start;
  background:none; border:0; padding:.4rem 0 0;
  font-family:var(--fonte-corpo); font-size:.8rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase;
  color:var(--roxo-medio); cursor:pointer;
  display:inline-flex; align-items:center; gap:.4rem;
}
.bio-toggle:hover{ color:var(--roxo); }
.bio-toggle .cheveron{ transition:transform .35s ease; font-size:.7rem; }
.pessoa-card.aberta .bio-toggle .cheveron{ transform:rotate(180deg); }

.conselhos{ display:grid; gap:1.4rem; margin-top:3rem; }
@media (min-width:820px){ .conselhos{ grid-template-columns:1fr 1fr; } }
.conselho h3{ margin-bottom:1rem; }
.conselho .placeholder{ min-height:110px; }

/* ============================================================
   MANIFESTO
============================================================ */
.manifesto{
  background:var(--roxo-noite);
  color:#fff;
  overflow:hidden;
}
.manifesto h2{ color:#fff; }
.manifesto .rotulo{ color:var(--rosa); }
.manifesto-texto{ max-width:62ch; margin-top:1.5rem; }
.manifesto-texto p{
  font-size:clamp(1rem, 1.6vw, 1.18rem);
  line-height:1.85;
  color:var(--fundo);
  max-width:none;
}
.manifesto-texto p + p{ margin-top:1.3rem; }
.manifesto-texto .abertura{
  font-family:var(--fonte-titulo);
  font-size:clamp(1.7rem, 4vw, 3rem);
  line-height:1.15;
  text-transform:uppercase;
  color:#fff;
}
.manifesto-texto .fecho{
  font-weight:700;
  color:#fff;
  border-left:4px solid var(--amarelo);
  padding-left:1.2rem;
}
.manifesto .grafismo-aspas{
  right:-40px; top:2rem; width:clamp(120px, 16vw, 240px);
  opacity:.22; will-change:transform;
}

/* ============================================================
   PARA QUEM FAZEMOS
============================================================ */
.publicos{
  display:grid; gap:1.3rem; margin-top:2.4rem;
  grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
}
.publico-card{
  background:#fff; border:1px solid var(--cinza);
  border-radius:var(--raio); padding:1.8rem;
  border-top:5px solid var(--roxo);
  transition:transform .3s ease, box-shadow .3s ease;
}
.publico-card:nth-child(2){ border-top-color:var(--rosa); }
.publico-card:nth-child(3){ border-top-color:var(--amarelo); }
.publico-card:nth-child(4){ border-top-color:var(--lilas); }
.publico-card:hover{ transform:translateY(-6px); box-shadow:0 18px 36px rgba(56,18,83,.12); }
.publico-card h3{
  font-size:clamp(1.5rem, 2.6vw, 1.9rem);
  text-transform:uppercase; margin-bottom:.7rem;
  color:var(--roxo-noite);
}
.publico-card p{ font-size:.94rem; }
.interseccional{
  margin-top:2.4rem;
  background:var(--roxo-escuro); color:#fff;
  border-radius:var(--raio);
  padding:clamp(1.8rem, 4vw, 2.8rem);
}
.interseccional h3{ color:var(--amarelo); text-transform:uppercase; margin-bottom:.8rem; }
.interseccional p{ color:var(--fundo); }
.interseccional p + p{ margin-top:.9rem; }

/* ============================================================
   COMO FAZEMOS
============================================================ */
.ciclo{
  display:grid; gap:1rem; margin-top:2.4rem;
  grid-template-columns:repeat(auto-fit, minmax(230px, 1fr));
}
.ciclo-passo{
  position:relative;
  background:#fff; border:1px solid var(--cinza);
  border-radius:var(--raio); padding:1.6rem 1.4rem;
}
.ciclo-passo .de{
  font-family:var(--fonte-titulo);
  font-size:clamp(1.5rem, 2.6vw, 1.9rem);
  line-height:1; color:var(--roxo-noite); text-transform:uppercase;
}
.ciclo-passo .acao{
  display:block; font-size:.8rem; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--roxo); margin:.5rem 0;
}
.ciclo-passo .para{
  font-family:var(--fonte-titulo);
  font-size:clamp(1.5rem, 2.6vw, 1.9rem);
  line-height:1; color:var(--roxo-medio); text-transform:uppercase;
}
.ciclo-passo::after{
  content:"\2192";
  position:absolute; right:-.85rem; top:50%;
  transform:translateY(-50%);
  color:var(--amarelo); font-size:1.4rem; font-weight:700;
  z-index:2;
}
.ciclo-passo:last-child::after{ content:none; }
@media (max-width:900px){
  .ciclo-passo::after{
    content:"\2193"; right:auto; left:50%; top:auto; bottom:-1.15rem;
    transform:translateX(-50%);
  }
}
.ciclo-fecho{
  margin-top:2.4rem;
  font-family:var(--fonte-titulo);
  font-size:clamp(1.6rem, 3.4vw, 2.6rem);
  line-height:1.15; text-transform:uppercase;
  color:var(--roxo-noite);
  max-width:26ch;
}

/* ============================================================
   O QUE FAZEMOS
============================================================ */
.frentes{ margin-top:clamp(2rem, 5vw, 4rem); }
.frente-linha{
  display:grid; gap:1.4rem 3rem;
  padding:clamp(2.2rem, 5vw, 3.6rem) 0;
  position:relative;
}
@media (min-width:900px){
  .frente-linha{ grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); align-items:start; }
}
.frente-div{
  position:absolute; top:0; left:0; right:0;
  height:2px; background:var(--roxo-noite);
  transform-origin:left;
}
.frente-titulo{ display:flex; align-items:baseline; gap:1.2rem; }
.frente-num{
  font-family:var(--fonte-titulo);
  font-size:clamp(1.2rem, 2vw, 1.6rem);
  color:var(--roxo);
}
.frente-titulo h3{
  font-size:clamp(2.6rem, 6vw, 4.6rem);
  text-transform:uppercase;
  color:var(--roxo-noite);
  line-height:.95;
}
.frente-texto p + p{ margin-top:1rem; }

/* ============================================================
   PROJETOS
============================================================ */
.projetos{
  background:var(--roxo-noite);
  color:#fff;
  overflow:hidden;
}
.projetos h2{ color:#fff; }
.projetos .rotulo{ color:var(--amarelo); }
.projetos-topo{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:1.5rem; flex-wrap:wrap;
}
.trilho-setas{ display:flex; gap:.9rem; }
.trilho-setas[hidden], .trilho-progresso[hidden]{ display:none; }
.seta-btn{
  width:58px; height:58px; border-radius:50%;
  border:0;
  background:rgba(255,255,255,.1);
  color:#fff;
  cursor:pointer;
  display:grid; place-items:center;
  transition:background .25s ease, color .25s ease, transform .25s ease, opacity .25s ease;
}
.seta-btn svg{ width:24px; height:24px; display:block; }
.seta-btn:hover:not(:disabled){
  background:var(--amarelo); color:var(--roxo-noite);
  transform:scale(1.08);
}
.seta-btn:active:not(:disabled){ transform:scale(.96); }
.seta-btn:disabled{ opacity:.25; cursor:default; }
.projetos-trilho{
  display:flex; gap:1.4rem;
  overflow-x:auto;
  width:100%;
  max-width:var(--largura-max);
  margin-inline:auto;
  padding:2.4rem clamp(20px, 4vw, 48px) 1.4rem;
  scrollbar-width:none;
}
.projetos-trilho.sem-rolagem{ justify-content:center; }
.projetos-trilho::-webkit-scrollbar{ display:none; }
.projeto-card{
 
  flex:0 0 clamp(300px, 40%, 640px);
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.16);
  border-radius:var(--raio);
  padding:2rem;
  display:flex; flex-direction:column; gap:1rem;
  min-height:380px;
  transition:border-color .3s ease, background .3s ease;
}
.projeto-card:hover{ border-color:var(--rosa); background:rgba(255,255,255,.1); }
.projeto-card h3{ color:var(--rosa); font-size:2rem; line-height:1; }
.projeto-card p{ font-size:.94rem; color:var(--fundo); }
.projeto-card .link-seta{ margin-top:auto; }
.projeto-card--breve{ justify-content:center; align-items:flex-start; gap:1.2rem; }
.projeto-card img{ pointer-events:none; }
.tag-breve{
  font-size:.72rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--roxo-noite); background:var(--amarelo);
  border-radius:4px; padding:.3rem .6rem;
}
.trilho-progresso{
  height:3px; background:rgba(255,255,255,.15);
  max-width:calc(var(--largura-max) - 2 * clamp(20px, 4vw, 48px));
  margin:1rem auto 0;
  border-radius:2px; overflow:hidden;
}
.trilho-progresso .barra{
  height:100%; width:0%; background:var(--amarelo); border-radius:2px;
}
.projetos .grafismo-asterisco{
  right:-50px; top:-50px; width:180px; opacity:.25;
  will-change:transform;
}

/* ============================================================
   IMPACTO
============================================================ */
.contadores{ background:var(--roxo); color:#fff; overflow:hidden; }
.contadores h2{ color:#fff; }
.contadores .rotulo{ color:var(--amarelo); }
.metricas{ margin-top:clamp(2rem, 5vw, 3.5rem); border-top:1px solid rgba(255,255,255,.3); }
.metrica{
  display:flex; align-items:center; justify-content:space-between;
  gap:1.5rem;
  padding:clamp(1.2rem, 3vw, 2rem) 0;
  border-bottom:1px solid rgba(255,255,255,.3);
  transition:padding-left .35s ease;
}
.metrica:hover{ padding-left:1.2rem; }
.metrica-nome{
  font-weight:700;
  font-size:clamp(.85rem, 1.6vw, 1.1rem);
  letter-spacing:.16em;
  text-transform:uppercase;
  transition:color .3s ease;
}
.metrica:hover .metrica-nome{ color:var(--amarelo); }
.contador-valor{
  font-family:var(--fonte-titulo);
  font-size:clamp(3.2rem, 8vw, 6.5rem);
  line-height:1;
  color:transparent;
  -webkit-text-stroke:2px var(--amarelo);
  transition:color .3s ease;
  white-space:nowrap;
}
.contador-prefixo{
  font-family:var(--fonte-corpo);
  font-size:.9rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase;
  color:var(--amarelo);
  -webkit-text-stroke:0;
  vertical-align:middle;
  margin-right:.4rem;
}
.metrica:hover .contador-valor{ color:var(--amarelo); }
.contadores .nota{ margin-top:1.8rem; font-size:.8rem; opacity:.8; }
.contadores .grafismo-estrela-impacto{
  right:6vw; top:2.5rem; width:clamp(50px, 6vw, 90px);
  opacity:.5;
  will-change:transform;
}

/* ============================================================
   RODAPÉ
============================================================ */
.rodape{
  position:relative;
  background:linear-gradient(180deg, var(--roxo-noite) 0%, #1a0830 55%, #0b0313 100%);
  color:var(--fundo);
  padding:clamp(3.5rem, 8vw, 6rem) 0 0;
  overflow:hidden;
}
.rodape::before{
  content:"";
  position:absolute; inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23g)' opacity='0.55'/%3E%3C/svg%3E");
  opacity:.16;
  pointer-events:none;
  mix-blend-mode:overlay;
}
.rodape .container{ position:relative; z-index:1; }
.rodape-grid{ display:grid; gap:2.6rem; margin-bottom:3rem; }
@media (min-width:820px){ .rodape-grid{ grid-template-columns:1.2fr 1fr 1fr; } }
.rodape .logo img{ height:46px; }
.rodape h4{
  font-family:var(--fonte-titulo); font-size:1.5rem;
  letter-spacing:.06em; color:#fff; margin-bottom:1.1rem;
}
.contato-lista li{
  display:flex; flex-wrap:wrap; gap:.5rem 1rem;
  padding:.55rem 0;
  font-size:.92rem;
  border-bottom:1px solid rgba(255,255,255,.1);
}
.contato-lista li:last-child{ border-bottom:0; }
.contato-rotulo{
  font-weight:700; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--lilas);
  min-width:90px;
  align-self:center;
}
.contato-valor{ color:var(--fundo); }
.contato-valor em{ opacity:.65; }
.contato-lista a{ color:var(--fundo); text-decoration:none; }
.contato-lista a:hover{ color:var(--amarelo); }

.rodape-base{
  border-top:1px solid rgba(255,255,255,.14);
  padding:1.4rem 0;
  font-size:.82rem;
  display:flex; flex-wrap:wrap; gap:.6rem 2rem;
  justify-content:space-between; opacity:.85;
  position:relative; z-index:1;
}
.rodape-gigante{
  position:relative; z-index:1;
  font-family:var(--fonte-titulo);
  font-size:clamp(3.4rem, 12vw, 11.5rem);
  line-height:.9;
  text-transform:uppercase;
  text-align:center;
  color:transparent;
  -webkit-text-stroke:2px var(--roxo-claro);
  padding:2.5rem 0 .5rem;
  user-select:none;
  white-space:nowrap;
}
.rodape-gigante .cheio{ color:var(--roxo-claro); -webkit-text-stroke:0; }

/* ============================================================
   VOLTAR AO TOPO
============================================================ */
.ao-topo{
  position:fixed;
  right:clamp(16px, 3vw, 32px);
  bottom:clamp(16px, 3vw, 32px);
  z-index:150;
  width:54px; height:54px;
  border:0; border-radius:50%;
  background:var(--roxo);
  color:#fff;
  cursor:pointer;
  display:grid; place-items:center;
  box-shadow:0 8px 24px rgba(56,18,83,.35);
  opacity:0; visibility:hidden;
  transform:translateY(14px) scale(.9);
  transition:opacity .3s ease, transform .3s ease, visibility .3s,
             background .25s ease, color .25s ease;
}
.ao-topo.visivel{ opacity:1; visibility:visible; transform:none; }
.ao-topo:hover{ background:var(--amarelo); color:var(--roxo-noite); }
.ao-topo:active{ transform:scale(.94); }
.ao-topo svg.seta-topo{ width:22px; height:22px; position:relative; z-index:1; }
.ao-topo .anel{
  position:absolute; inset:0;
  width:100%; height:100%;
  transform:rotate(-90deg);
  pointer-events:none;
}
.ao-topo .anel circle{
  fill:none;
  stroke-width:2.5;
}
.ao-topo .anel .trilha{ stroke:rgba(255,255,255,.25); }
.ao-topo .anel .progresso{
  stroke:var(--amarelo);
  stroke-linecap:round;
  stroke-dasharray:157.08;
  stroke-dashoffset:157.08;
  transition:stroke-dashoffset .1s linear;
}
.ao-topo:hover .anel .trilha{ stroke:rgba(56,18,83,.2); }
.ao-topo:hover .anel .progresso{ stroke:var(--roxo-noite); }
@media (max-width:640px){
  .ao-topo{ width:48px; height:48px; }
}

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}

/* ============================================================
   PÁGINAS INTERNAS
============================================================ */
.pg-hero{
  background:var(--roxo-noite); color:#fff;
  padding:calc(var(--altura-header) + 5rem) 0 4.5rem;
  position:relative; overflow:hidden;
}
.pg-hero .rotulo{ color:var(--amarelo); }
.pg-hero h1{
  font-family:var(--fonte-titulo); text-transform:uppercase;
  font-size:clamp(3.2rem, 8vw, 6.4rem); line-height:.95; color:#fff;
}
.pg-hero p{ max-width:62ch; margin-top:1.2rem; color:rgba(255,255,255,.85); }
.pg-hero .grafismo{ position:absolute; opacity:.35; pointer-events:none; }
.pg-hero .grafismo-estrela{ width:90px; right:6%; top:22%; }

.secao-interna{ padding:5rem 0; }
.secao-interna--alt{ background:#fff; }
.secao-interna h2{ font-size:clamp(2.4rem, 5vw, 3.6rem); margin-bottom:.4rem; }
.secao-interna .intro{ max-width:64ch; margin-bottom:2.4rem; }

.cartoes-grid{ display:grid; gap:1.6rem; }
@media (min-width:640px){ .cartoes-grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1000px){ .cartoes-grid{ grid-template-columns:repeat(3,1fr); } }
.cartao{
  background:#fff; border-radius:var(--raio); padding:1.8rem;
  border:1px solid var(--cinza); display:flex; flex-direction:column; gap:.7rem;
  transition:transform .25s ease, box-shadow .25s ease;
}
.secao-interna--alt .cartao{ background:var(--fundo); }
.cartao:hover{ transform:translateY(-4px); box-shadow:0 14px 34px rgba(56,18,83,.12); }
.cartao h3{ font-size:1.5rem; }
.cartao .cartao-cat{
  align-self:flex-start; font-size:.68rem; font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; background:var(--lilas); color:var(--roxo-noite);
  padding:.3rem .7rem; border-radius:999px;
}
.cartao .cartao-meta{ font-size:.8rem; color:var(--roxo-medio); font-weight:600; }
.cartao p{ font-size:.92rem; }
.cartao .cartao-acao{ margin-top:auto; padding-top:.6rem; }

.filtros{ display:flex; flex-wrap:wrap; gap:.6rem; margin-bottom:2.2rem; }
.filtro{
  font-family:var(--fonte-corpo); font-size:.8rem; font-weight:600;
  padding:.55rem 1.1rem; border-radius:999px; border:2px solid var(--roxo);
  background:transparent; color:var(--roxo-escuro); cursor:pointer; text-decoration:none;
  transition:background .2s ease, color .2s ease;
}
.filtro:hover{ background:var(--lilas); }
.filtro.ativo{ background:var(--roxo); color:#fff; }

.lista-eventos{ display:flex; flex-direction:column; gap:1.2rem; }
.evento{
  display:grid; grid-template-columns:86px 1fr; gap:1.4rem; align-items:start;
  background:#fff; border:1px solid var(--cinza); border-radius:var(--raio); padding:1.5rem;
}
.evento-data{
  text-align:center; background:var(--roxo-noite); color:#fff;
  border-radius:12px; padding:.7rem .4rem; font-family:var(--fonte-titulo);
}
.evento-data .dia{ display:block; font-size:2rem; line-height:1; color:var(--amarelo); }
.evento-data .mes{ display:block; font-size:.95rem; letter-spacing:.08em; text-transform:uppercase; }
.evento h3{ font-size:1.4rem; margin-bottom:.3rem; }
.evento .evento-meta{ font-size:.82rem; color:var(--roxo-medio); font-weight:600; margin-bottom:.4rem; }
.evento p{ font-size:.92rem; }
.evento--passado{ opacity:.65; }

.docs-grupo{ margin-bottom:2.6rem; }
.docs-grupo h3{ margin-bottom:1rem; }
.docs-lista{ display:flex; flex-direction:column; gap:.7rem; }
.doc-item{
  display:flex; justify-content:space-between; align-items:center; gap:1rem;
  background:#fff; border:1px solid var(--cinza); border-radius:12px;
  padding:1rem 1.3rem; text-decoration:none; color:var(--preto);
  transition:border-color .2s ease, transform .2s ease;
}
.doc-item:hover{ border-color:var(--roxo); transform:translateX(4px); }
.doc-item .doc-nome{ font-weight:600; font-size:.95rem; }
.doc-item .doc-meta{ font-size:.78rem; color:var(--roxo-medio); white-space:nowrap; }

.vazio{
  border:2px dashed var(--cinza); border-radius:var(--raio);
  padding:3rem 1.5rem; text-align:center; color:var(--roxo-medio); font-size:.95rem;
}

.placeholder-bloco{
  border:2px dashed var(--lilas); border-radius:var(--raio);
  padding:1.6rem; color:var(--roxo-medio); font-size:.9rem; background:rgba(205,151,248,.08);
}


.menu a[aria-current="page"]{ color:var(--roxo); }
.cabecalho--topo .menu a[aria-current="page"]:not(.botao){ color:var(--amarelo); }

/* ============================================================
   COMUNIDADE TSA
============================================================ */
.com-topo{
  position:absolute; top:0; left:0; right:0; z-index:5;
  padding:1.4rem 0;
}
.com-topo .container{ display:flex; justify-content:space-between; align-items:center; }
.com-topo img{ height:52px; width:auto; }
.com-topo a.voltar{ color:#fff; font-size:.85rem; font-weight:600; text-decoration:none; }
.com-topo a.voltar:hover{ color:var(--amarelo); }

.form-caixa{
  background:#fff; border-radius:var(--raio); padding:2rem;
  border:1px solid var(--cinza); max-width:440px;
}
.form-campo{ margin-bottom:1.1rem; }
.form-campo label{
  display:block; font-size:.78rem; font-weight:700; letter-spacing:.06em;
  text-transform:uppercase; color:var(--roxo-escuro); margin-bottom:.4rem;
}
.form-campo input{
  width:100%; padding:.75rem .9rem; border:2px solid var(--cinza);
  border-radius:10px; font:inherit; font-size:.95rem; background:var(--fundo);
}
.form-campo input:focus{ outline:none; border-color:var(--roxo); background:#fff; }
.form-aviso{ padding:.8rem 1rem; border-radius:10px; font-size:.88rem; margin-bottom:1.1rem; }
.form-aviso--erro{ background:#FDECEC; color:#8F1F1F; }
.form-aviso--ok{ background:#EAF7EE; color:#1D6B34; }
.form-troca{ font-size:.85rem; margin-top:1rem; }

.com-grid{ display:grid; gap:2.5rem; align-items:start; }
@media (min-width:900px){ .com-grid{ grid-template-columns:1.1fr .9fr; } }

.material-item{
  display:flex; justify-content:space-between; align-items:center; gap:1rem;
  background:#fff; border:1px solid var(--cinza); border-radius:12px; padding:1.1rem 1.3rem;
}
.material-item .material-info h3{ font-size:1.2rem; margin-bottom:.15rem; }
.material-item .material-info p{ font-size:.85rem; color:var(--roxo-medio); }

/* ============================================================
   BLOCOS DE TEXTO LONGO
============================================================ */
.texto-corrido{ max-width:68ch; }
.texto-corrido p{ margin-bottom:1.1rem; }
.texto-corrido p:last-child{ margin-bottom:0; }
.texto-corrido strong{ font-weight:700; color:var(--roxo-escuro); }
.secao-interna--escura .texto-corrido strong{ color:var(--amarelo); }

.texto-corrido .destaque{
  border-left:4px solid var(--roxo); padding:.2rem 0 .2rem 1.2rem;
  margin:1.6rem 0; font-weight:600; color:var(--roxo-escuro);
}
.secao-interna--escura .texto-corrido .destaque{ border-left-color:var(--amarelo); color:#fff; }

.secao-interna--escura{ background:var(--roxo-noite); color:rgba(255,255,255,.85); }
.secao-interna--escura h2, .secao-interna--escura h3{ color:#fff; }
.secao-interna--escura .rotulo{ color:var(--amarelo); }

.eixos{ display:grid; gap:1.4rem; margin-top:2.8rem; counter-reset:eixo; }
@media (min-width:900px){ .eixos{ grid-template-columns:repeat(2,1fr); gap:1.6rem; } }

.eixo{
  position:relative; overflow:hidden;
  background:#fff; border-radius:var(--raio);
  padding:2.6rem 2.2rem 2.2rem;
  border:1px solid var(--cinza);
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.eixo::before{
  counter-increment:eixo; content:counter(eixo, decimal-leading-zero);
  position:absolute; top:-.22em; right:.1em;
  font-family:var(--fonte-titulo); font-size:9rem; line-height:1;
  color:var(--lilas); opacity:.22; pointer-events:none;
  transition:opacity .3s ease, color .3s ease;
}
.eixo:hover{ transform:translateY(-5px); border-color:var(--roxo); box-shadow:0 18px 44px rgba(56,18,83,.13); }
.eixo:hover::before{ opacity:.32; color:var(--roxo); }

.eixo h3{
  position:relative; font-size:clamp(1.5rem, 2.6vw, 1.9rem);
  line-height:1.05; margin-bottom:1.1rem; padding-bottom:1.1rem;
  max-width:15ch;
}
.eixo h3::after{
  content:''; position:absolute; left:0; bottom:0;
  width:52px; height:4px; border-radius:2px; background:var(--amarelo);
}
.eixo p{ position:relative; font-size:.93rem; margin-bottom:.75rem; }
.eixo p:last-child{ margin-bottom:0; }
.eixo p:first-of-type{ font-weight:600; color:var(--roxo-escuro); }

.lista-agenda{ display:grid; gap:1.2rem; margin-top:1.8rem; }
.lista-agenda li{
  list-style:none; padding-left:1.6rem; position:relative; font-size:.95rem;
}
.lista-agenda li::before{
  content:''; position:absolute; left:0; top:.55em;
  width:9px; height:9px; border-radius:50%; background:var(--roxo);
}
.secao-interna--escura .lista-agenda li::before{ background:var(--amarelo); }

.chamada-final{
  background:var(--roxo); color:#fff; border-radius:var(--raio);
  padding:clamp(2rem, 5vw, 3.2rem); text-align:center; margin-top:3rem;
}
.chamada-final h2{ color:#fff; margin-bottom:1.2rem; max-width:22ch; margin-inline:auto; }
.chamada-final p{ max-width:62ch; margin:0 auto 1rem; color:rgba(255,255,255,.9); }
.chamada-final p:last-of-type{ margin-bottom:2rem; }
.botao--amarelo{ background:var(--amarelo); color:var(--roxo-noite); }
.botao--amarelo::before{ background:#fff; }
.botao--amarelo:hover{ color:var(--roxo-noite); }

/* ============================================================
   ASSINATURA DO MANIFESTO
============================================================ */
.visualmente-oculto{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

.assinar{
  max-width:62ch; margin-top:3rem;
  padding-top:2.4rem; border-top:1px solid rgba(255,255,255,.18);
}
.assinar h3{ color:#fff; font-size:clamp(1.6rem, 3.4vw, 2.1rem); margin-bottom:.7rem; }
.assinar > p{ color:rgba(255,255,255,.85); font-size:.98rem; margin-bottom:1.8rem; }

.assinar-campos{ display:grid; gap:.9rem; }
@media (min-width:760px){
  .assinar-campos{ grid-template-columns:1fr 1fr auto; align-items:center; }
  .assinar-campos button{ white-space:nowrap; }
}
.assinar-campos input[type="text"], .assinar-campos input[type="email"]{
  width:100%; padding:1rem 1.2rem; border-radius:999px;
  border:2px solid rgba(255,255,255,.28); background:rgba(255,255,255,.07);
  color:#fff; font:inherit; font-size:.95rem;
}
.assinar-campos input::placeholder{ color:rgba(255,255,255,.5); }
.assinar-campos input:focus{ outline:none; border-color:var(--amarelo); background:rgba(255,255,255,.12); }
.assinar-campos input[name="website"]{ position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
.assinar-campos button[disabled]{ opacity:.6; cursor:not-allowed; }

.assinar-retorno{ margin-top:1.1rem; font-size:.92rem; font-weight:600; }
.assinar-retorno.ok{ color:var(--amarelo); }
.assinar-retorno.erro{ color:var(--rosa); }

/* ============================================================
   ORGANIZAÇÕES APOIADORAS  (seção do Manifesto C190)
   Chips claros: os logos chegam em cores, formatos e proporções
   diferentes, então cada um recebe a mesma caixa e altura ótica.
============================================================ */
.apoiadoras{
  max-width:62ch; margin-top:3rem;
  padding-top:2.4rem; border-top:1px solid rgba(255,255,255,.18);
}
.apoiadoras-titulo{
  display:block; font-size:.8rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--amarelo); font-weight:700; margin-bottom:1.4rem;
}
.apoiadoras-lista{
  list-style:none; display:flex; flex-wrap:wrap; align-items:stretch; gap:1rem;
}
.apoiadoras-lista li{
  display:flex; align-items:center; justify-content:center;
  background:#fff; border-radius:14px;
  padding:1rem 1.4rem; min-width:150px; height:92px;
}
.apoiadoras-lista img{
  display:block; max-height:100%; max-width:170px;
  width:auto; height:auto; object-fit:contain;
}

.cartao--em-breve{ min-height:190px; }
.cartao--em-breve h3{ color:var(--roxo-medio); }

/* ============================================================
   INSCRIÇÃO EM EVENTO  (dentro do card da Agenda)
============================================================ */
.inscricao{
  margin-top:1.4rem; padding-top:1.4rem;
  border-top:1px solid var(--cinza-borda, #D9D9D9);
}
.inscricao h4{
  font-family:'Bebas Neue', Impact, sans-serif;
  font-size:1.25rem; letter-spacing:.03em;
  color:var(--roxo-escuro, #502595); margin:0 0 .8rem;
}
.inscricao-campos{ display:grid; gap:.7rem; max-width:430px; }
.inscricao-campos input[type="text"],
.inscricao-campos input[type="email"]{
  width:100%; padding:.8rem 1rem;
  border:1px solid var(--cinza-borda, #D9D9D9); border-radius:9px;
  font-family:inherit; font-size:.95rem; background:#fff; color:#232323;
}
.inscricao-campos input:focus-visible{
  outline:2px solid var(--roxo, #864CE2); outline-offset:1px; border-color:transparent;
}
.inscricao-campos input[name="website"]{
  position:absolute; left:-9999px; width:1px; height:1px; opacity:0;
}
.inscricao-campos button{ justify-self:start; }
.inscricao-aviso{
  margin-top:.7rem; font-size:.78rem; line-height:1.5; color:#6b6b6b; max-width:430px;
}
.inscricao-aviso a{ color:var(--roxo-escuro, #502595); }
.inscricao-retorno{
  margin-top:.8rem; font-size:.9rem; font-weight:600; max-width:430px;
}
.inscricao-retorno.ok{ color:#1c7a3e; }
.inscricao-retorno.erro{ color:#b3261e; }

/* ============================================================
   DOCUMENTOS LEGAIS  (Política de Privacidade, Termos de Uso)
============================================================ */
.doc-legal{ max-width:74ch; }
.doc-legal h2{
  font-size:1.35rem; margin:2.6rem 0 .9rem;
  color:var(--roxo-escuro); scroll-margin-top:90px;
}
.doc-legal h2:first-child{ margin-top:0; }
.doc-legal h3{ font-size:1.02rem; margin:1.6rem 0 .5rem; color:var(--roxo-escuro); }
.doc-legal ul{ margin:0 0 1.1rem 1.2rem; }
.doc-legal li{ margin-bottom:.42rem; }
.doc-legal a{ color:var(--roxo-escuro); text-decoration:underline; }
.doc-legal .lista-dados{ list-style:none; margin-left:0; }

.doc-legal .conceitos{
  margin:0 0 1.1rem; border-top:1px solid var(--cinza);
}
.doc-legal .conceitos dt{
  font-weight:700; color:var(--roxo-escuro);
  padding-top:.85rem;
}
.doc-legal .conceitos dd{
  margin:0 0 .85rem; padding-bottom:.85rem;
  border-bottom:1px solid var(--cinza);
}

.rodape-legal{ display:flex; flex-wrap:wrap; gap:.4rem 1.4rem; }
.rodape-legal a{ font-size:.85rem; opacity:.8; }
.rodape-legal a:hover{ opacity:1; }
