/* =========================================================
   ACBERGS — main.css
   Paleta extraída dos SVGs oficiais da marca.
   ========================================================= */
:root{
	/* Azul institucional, tipografia e traço principal da marca */
	--navy:#274F99;
	--navy-2:#1E3E7A;      /* derivado, para gradientes e hover */
	--navy-deep:#16294F;   /* fundo do rodapé */
	--slate:#4C7ECC;       /* azul claro da marca */
	--slate-light:#7FA4DC;
	--blue:#2F5DB0;        /* links sobre branco, 5.6:1 */
	--blue-light:#4C7ECC;
	/* Verde da marca, as duas figuras laterais do símbolo */
	--green:#019051;
	--green-dark:#017542;
	--green-soft:#E8F5EE;
	/* Laranja da marca, a figura central. Reservado para ação. */
	--gold:#FD6D00;        /* mantém o nome da variável do modelo */
	--gold-dark:#D65C00;
	--gold-deep:#A34700;   /* texto sobre fundo claro, 4.8:1 */
	--gold-soft:#FFF1E4;
	--gold-line:rgba(253,109,0,.42);
	--ink:#1F2A3C;         /* texto principal */
	--muted:#5A6779;       /* texto secundário, 5.9:1 */
	--gray:#9AA3B2;
	--line:#E3E7EE;
	--bg:#F4F6FA;
	--white:#fff;
	--radius:16px;
	--shadow:0 12px 40px rgba(39,79,153,.13);
	--shadow-sm:0 4px 16px rgba(39,79,153,.10);
	--container:1180px;
	/* Fontes do sistema: nada é baixado de servidor externo, o que evita
	   transferir o IP do visitante para terceiros (ver Política de Privacidade). */
	--ff:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
	--fh:var(--ff);
}

*,*::before,*::after{box-sizing:border-box;}

/* O navegador esconde [hidden] com display:none, mas essa regra dele perde para
   qualquer display declarado aqui. Sem esta linha, .projeto-linha continuava
   display:grid e o filtro não escondia nada, e o aviso de cookies dispensado
   seguia ocupando a tela em display:flex com opacidade zero, engolindo cliques.
   O !important é o jeito usual de garantir que o atributo vença o layout. */
[hidden]{display:none !important;}
/* overflow-x:clip, e nao hidden: a gaveta do menu fica estacionada fora da tela pela
   direita e, mesmo fechada, estica a largura rolavel da pagina em 323px no celular.
   Com hidden o html viraria container de rolagem e todo position:sticky do site
   pararia de grudar: a ficha lateral do projeto e a coluna de compartilhar da
   noticia. O clip corta sem criar container. */
html{scroll-behavior:smooth;scroll-padding-top:90px;overflow-x:clip;}
/* O clip precisa estar nos dois. Só no html o documento continuava com 698px de
   largura rolável num celular de 375: a rolagem não acontecia, mas o Chrome do
   Android usa essa largura para escolher o zoom inicial e abria a página afastada,
   com o conteúdo ocupando pouco mais da metade da tela e o resto em branco.
   Medido antes e depois: scrollWidth de 698 para 375. */
body{overflow-x:clip;}
body{margin:0;font-family:var(--ff);color:var(--ink);background:var(--white);line-height:1.6;font-size:17px;-webkit-font-smoothing:antialiased;}
img{max-width:100%;height:auto;display:block;}
a{color:var(--blue);text-decoration:none;transition:.2s;}
a:hover{color:var(--navy);}
h1,h2,h3,h4{font-family:var(--fh);line-height:1.2;color:var(--navy);margin:0 0 .5em;}
p{margin:0 0 1em;}
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 22px;}
.screen-reader-text{position:absolute;left:-9999px;}
.skip-link:focus{left:12px;top:12px;position:fixed;background:#fff;padding:8px 14px;z-index:9999;border-radius:8px;}

/* Foco visível padrão para navegação por teclado (funciona sobre fundo claro e escuro) */
a:focus-visible,button:focus-visible,[tabindex]:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:4px;}
.hero a:focus-visible,.projeto-hero a:focus-visible,.projeto-cta a:focus-visible,.site-footer a:focus-visible,.contato a:focus-visible{outline-color:#fff;}

/* ---------- Botões ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--fh);font-weight:600;font-size:15px;padding:14px 26px;border-radius:50px;border:2px solid transparent;cursor:pointer;transition:.25s;text-align:center;}
.btn-primary{background:var(--green);color:#fff;border-color:var(--green);}
.btn-primary:hover{background:var(--green-dark);border-color:var(--green-dark);color:#fff;transform:translateY(-2px);}
/* Em fundos escuros, o botão inverte para claro para manter contraste */
.hero .btn-primary,.projeto-cta .btn-primary{background:var(--gold);color:#fff;border-color:var(--gold);}
.hero .btn-primary:hover,.projeto-cta .btn-primary:hover{background:var(--gold-dark);color:#fff;border-color:var(--gold-dark);}
.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.6);}
.btn-ghost:hover{background:#fff;color:var(--navy);}
.btn-outline-gold{background:transparent;color:var(--gold-deep);border-color:var(--gold);}
.btn-outline-gold:hover{background:var(--gold);color:#fff;transform:translateY(-2px);}
.btn-navy{background:var(--navy);color:#fff;border-color:var(--navy);}
.btn-navy:hover{background:var(--blue);border-color:var(--blue);color:#fff;transform:translateY(-2px);}
.btn-whats{background:#25D366;color:#fff;border-color:#25D366;}
.btn-whats:hover{background:#1da851;border-color:#1da851;color:#fff;transform:translateY(-2px);}
.btn-block{width:100%;}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:1000;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);transition:background .35s,box-shadow .35s,border-color .35s;}
.site-header.scrolled{box-shadow:0 6px 24px rgba(18,42,64,.12);}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:76px;}
.site-title{display:flex;align-items:center;gap:12px;font-family:var(--fh);}
.brand-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,var(--navy),var(--blue));color:#fff;font-weight:800;font-size:18px;letter-spacing:.5px;}
.brand-text strong{display:block;color:var(--navy);font-size:17px;font-weight:700;line-height:1.1;}
.brand-text small{display:block;color:var(--muted);font-size:11px;letter-spacing:.5px;text-transform:uppercase;}
.custom-logo{max-height:56px;width:auto;}
.site-logo-link{position:relative;display:inline-flex;align-items:center;}
.site-logo-img{height:52px;width:auto;display:block;transition:opacity .3s;}
.logo-light{position:absolute;left:0;top:50%;transform:translateY(-50%);opacity:0;pointer-events:none;}

.main-navigation ul{list-style:none;display:flex;gap:6px;margin:0;padding:0;}
/* Escopado em 'ul a': dentro do <nav> também existem os botões de contato da
   gaveta, que não devem herdar o visual dos itens de menu. */
.main-navigation ul a{display:block;padding:10px 14px;font-family:var(--fh);font-weight:500;font-size:15px;color:var(--ink);border-radius:8px;}
.main-navigation ul a:hover{background:var(--bg);color:var(--navy);}
/* Página atual em destaque (classes que o WordPress aplica no <li>) */
.main-navigation .current-menu-item>a,
.main-navigation .current_page_item>a,
.main-navigation .current-menu-ancestor>a,
.main-navigation .current-menu-parent>a,
.main-navigation .current_page_parent>a{color:var(--gold-deep);font-weight:700;}
/* Blocos que só existem na gaveta do celular */
.menu-drawer-head,.menu-drawer-social{display:none;}
.header-cta{display:flex;align-items:center;gap:14px;}
.menu-toggle{display:none;flex-direction:column;gap:5px;width:44px;height:44px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;align-items:center;justify-content:center;}
.menu-toggle span{width:22px;height:2px;background:var(--navy);border-radius:2px;transition:.3s;}
.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* Cabeçalho transparente sobre o banner (home) — vira branco ao rolar */
body.home .hero{margin-top:-77px;}
body.home .hero-inner{padding-top:133px;min-height:100vh;min-height:100svh;}
body.home .hero-panel{inset:133px 0 64px;}
body.home .site-header:not(.scrolled){background:transparent;backdrop-filter:none;border-bottom-color:transparent;box-shadow:none;}
body.home .site-header:not(.scrolled) .logo-dark{opacity:0;}
body.home .site-header:not(.scrolled) .logo-light{opacity:1;}
/* Links brancos sobre o banner: só no desktop. No celular os itens ficam
   dentro da gaveta branca e devem manter as cores normais (inclusive o
   dourado do item da página atual). */
@media(min-width:981px){
	body.home .site-header:not(.scrolled) .main-navigation ul a{color:#fff;}
	body.home .site-header:not(.scrolled) .main-navigation ul a:hover{background:rgba(255,255,255,.16);color:#fff;}
	body.home .site-header:not(.scrolled) .main-navigation .current-menu-item>a,
	body.home .site-header:not(.scrolled) .main-navigation .current_page_item>a,
	body.home .site-header:not(.scrolled) .main-navigation .current-menu-ancestor>a{color:var(--gold);}

	/*
	 * O submenu é exceção à regra acima, pelo mesmo motivo que a gaveta do
	 * celular: ele tem caixa branca própria. A regra de links brancos nasceu
	 * antes de existir submenu e o pegava junto — as duas opções ficavam brancas
	 * sobre branco, e o menu abria aparentemente vazio.
	 */
	body.home .site-header:not(.scrolled) .main-navigation .sub-menu a{color:var(--navy);}
	body.home .site-header:not(.scrolled) .main-navigation .sub-menu a:hover{background:var(--azul-suave);color:var(--navy);}
	body.home .site-header:not(.scrolled) .main-navigation .sub-menu .current-menu-item>a,
	body.home .site-header:not(.scrolled) .main-navigation .sub-menu .current_page_item>a{color:var(--gold-deep);}
}
body.home .site-header:not(.scrolled) .header-cta .btn-primary{background:transparent;border-color:rgba(255,255,255,.75);color:#fff;}
body.home .site-header:not(.scrolled) .header-cta .btn-primary:hover{background:#fff;border-color:#fff;color:var(--navy);}
body.home .site-header:not(.scrolled) .menu-toggle{background:transparent;border-color:rgba(255,255,255,.55);}
body.home .site-header:not(.scrolled) .menu-toggle span{background:#fff;}

/* Gaveta aberta: o cabeçalho fica transparente e a sua logo some — quem mostra
   a marca é o topo da própria gaveta. Sem isto sobrava uma faixa branca do
   cabeçalho ao lado da gaveta, por cima do fundo escurecido. */
body.nav-open .site-header,
body.nav-open .site-header.scrolled{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom-color:transparent;box-shadow:none;}
body.nav-open .site-branding{opacity:0;pointer-events:none;}
/* O botão de fechar fica sobre o branco da gaveta: barras sempre escuras */
body.nav-open .menu-toggle{background:#fff;border-color:var(--line);}
body.nav-open .menu-toggle span{background:var(--navy);}
body.home.nav-open .site-header:not(.scrolled) .menu-toggle{background:#fff;border-color:var(--line);}
body.home.nav-open .site-header:not(.scrolled) .menu-toggle span{background:var(--navy);}
/* Fundo escurecido atrás do menu, para separar do banner */
.nav-scrim{position:fixed;inset:0;z-index:900;background:rgba(12,30,46,.45);opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;}
body.nav-open .nav-scrim{opacity:1;visibility:visible;}
/* Os botões flutuantes ficam acima do escurecido; somem enquanto o menu está aberto */
body.nav-open .social-float,body.nav-open .back-to-top{opacity:0;visibility:hidden;pointer-events:none;}

/* ---------- Hero ---------- */
.hero{position:relative;padding:0;color:#fff;overflow:hidden;background:linear-gradient(135deg,var(--navy) 0%,var(--navy-2) 55%,var(--blue) 100%);}

/* Slideshow de fundo (imagens que passam) */
.hero-slideshow{position:absolute;inset:0;z-index:0;}
.hero-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transform:scale(1.06);transition:opacity 1.6s ease,transform 7s ease;}
.hero-slide.is-active{opacity:1;transform:scale(1);}
/* Overlay das cenas de texto: escurece só o lado do texto e libera a imagem à direita */
/* O contraste do texto sobre a foto é resolvido em duas camadas, e a divisão
   entre elas é o ponto todo: este gradiente cuida do ambiente, e a sombra do
   texto (ver .hero-sombra-texto) cuida da vizinhança de cada letra.

   Chegou-se a escurecer só aqui, com .90/.84/.66/.50. Passava em AA, mas ao
   custo de deixar a foto com metade do brilho — medido: 0,058 de luminância
   média contra 0,118 do original. A foto é o conteúdo do banner; apagá-la para
   proteger o texto troca um problema por outro.

   Empurrando o trabalho para a sombra, que escurece só onde há letra, estas
   paradas devolvem a foto a 0,109 de luminância, 92% do original, e ainda assim
   sobram 0,05% dos glifos abaixo de 4,5:1 — cerca de 96 pixels em 185 mil
   medidos, quase todos na ponta fina de letra sobre a parede branca do
   refeitório, que é a foto mais clara do conjunto. */
.hero-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(100deg,rgba(18,42,64,.87) 0%,rgba(18,42,64,.74) 32%,rgba(18,42,64,.38) 62%,rgba(18,42,64,.17) 100%);transition:opacity .8s ease,background .8s ease;}

/* Três camadas: um halo largo que separa a letra da foto, um médio que fecha o
   contorno e um curto que dá a borda. Uma sombra só, por mais forte, ou fica
   fraca perto do traço ou vira mancha visível em volta do bloco. */
.hero-sombra-texto{text-shadow:0 2px 26px rgba(12,30,46,1),0 0 12px rgba(12,30,46,1),0 1px 3px rgba(12,30,46,.9);}
/* Nas cenas de logo, overlay ainda mais leve para valorizar a foto */
.hero.is-showcase .hero-overlay{background:linear-gradient(180deg,rgba(18,42,64,.34) 0%,rgba(18,42,64,.44) 100%);}
/* Sombra sutil garante leitura mesmo onde o degradê é mais claro */
/* Substituído por .hero-sombra-texto, aplicada no HTML a todo texto do banner,
   inclusive a tag e o título, que antes não tinham sombra nenhuma. */
@media (prefers-reduced-motion:reduce){.hero-slide{transition:opacity .6s ease;transform:none;}}

.hero-bg{position:absolute;inset:0;z-index:1;pointer-events:none;background:
	radial-gradient(600px circle at 88% 12%,rgba(110,127,142,.20),transparent 60%),
	radial-gradient(460px circle at 8% 92%,rgba(166,151,123,.14),transparent 60%);}
.hero-inner{position:relative;z-index:2;min-height:400px;padding:56px 0 64px;display:flex;align-items:center;}
/* O painel é absoluto dentro do .container, então se posiciona pela caixa de
   padding: sem este padding o texto encosta na borda da tela no celular. */
.hero-panel{position:absolute;inset:56px 0 64px;padding-left:22px;padding-right:22px;display:flex;flex-direction:column;justify-content:center;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .7s ease,transform .7s ease;}
.hero-panel.is-visible{opacity:1;visibility:visible;transform:none;}
.hero-panel-text{max-width:660px;}
.hero-tag{display:inline-block;padding:6px 15px;border:1px solid rgba(255,255,255,.35);border-radius:50px;font-size:12px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;margin-bottom:16px;background:rgba(255,255,255,.06);align-self:flex-start;}
.hero-title{color:#fff;font-size:clamp(1.6rem,3.4vw,2.5rem);font-weight:800;margin-bottom:14px;}
.hero-text{font-size:1rem;color:rgba(255,255,255,.9);max-width:560px;margin-bottom:24px;}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;}
.hero-dots{position:absolute;left:0;right:0;bottom:78px;z-index:6;display:flex;justify-content:center;gap:9px;}
.hero-dot{width:9px;height:9px;padding:0;border:none;border-radius:50%;background:rgba(255,255,255,.45);cursor:pointer;transition:.25s;}
.hero-dot.is-active{background:var(--gold);width:26px;border-radius:6px;}

/* Setas do banner: aparecem ao aproximar o mouse das bordas.
   A faixa não recebe cliques (só o botão), senão cobriria os botões do banner. */
.hero-edge{position:absolute;top:77px;bottom:0;width:120px;z-index:5;display:flex;align-items:center;pointer-events:none;}
.hero-edge-left{left:0;justify-content:flex-start;padding-left:22px;}
.hero-edge-right{right:0;justify-content:flex-end;padding-right:22px;}
.hero-arrow{width:52px;height:52px;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:rgba(255,255,255,.12);backdrop-filter:blur(3px);color:#fff;font-size:30px;line-height:1;cursor:pointer;display:grid;place-items:center;opacity:0;transition:.3s;pointer-events:auto;}
.hero-edge-left .hero-arrow{transform:translateX(-10px);}
.hero-edge-right .hero-arrow{transform:translateX(10px);}
.hero:hover .hero-arrow,.hero-arrow:focus-visible{opacity:1;transform:none;}
.hero-arrow:hover{background:var(--gold);border-color:var(--gold);color:#fff;}
@media(max-width:980px){.hero-arrow{opacity:.75;transform:none;}.hero-edge{width:70px;}.hero-edge-left{padding-left:10px;}.hero-edge-right{padding-right:10px;}}
/* No celular as setas ficariam em cima do texto: navega-se pelos pontinhos ou arrastando */
@media(max-width:768px){.hero-edge{display:none;}}

/* ---------- Breadcrumb ---------- */
.breadcrumb{font-size:13px;margin-bottom:16px;}
.breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:4px;margin:0;padding:0;}
.breadcrumb li{display:flex;align-items:center;gap:4px;color:rgba(255,255,255,.85);}
.breadcrumb li+li::before{content:"\203A";color:rgba(255,255,255,.55);margin:0 4px;}
.breadcrumb a{color:rgba(255,255,255,.85);font-weight:600;}
.breadcrumb a:hover{color:var(--gold);}
.breadcrumb li[aria-current="page"]{color:#fff;}
.breadcrumb-dark li,.breadcrumb-dark a{color:var(--muted);}
.breadcrumb-dark li+li::before{color:var(--gray);}
.breadcrumb-dark a:hover{color:var(--gold-deep);}
.breadcrumb-dark li[aria-current="page"]{color:var(--navy);font-weight:600;}
.acbergs-single .breadcrumb{margin-bottom:22px;}

/* ---------- Números ---------- */

/* ---------- Seções gerais ---------- */
section{padding:84px 0;}
.section-eyebrow{display:inline-block;font-family:var(--fh);font-weight:600;font-size:13px;letter-spacing:1px;text-transform:uppercase;color:var(--gold-deep);margin-bottom:12px;}
.section-eyebrow.light{color:var(--gold-claro);}
.section-title{font-size:clamp(1.7rem,3.4vw,2.5rem);font-weight:700;}
.section-title.light{color:#fff;}
.section-head{margin-bottom:52px;}
.section-head.center{text-align:center;max-width:720px;margin-left:auto;margin-right:auto;}
.section-head.center .section-eyebrow{justify-content:center;}
.section-head.center .section-title::after{content:"";display:block;width:56px;height:3px;border-radius:2px;background:var(--gold);margin:18px auto 0;}

/* ---------- Sobre ---------- */
.sobre-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:center;}
.sobre-slide{position:absolute;inset:0;margin:0;opacity:0;transform:scale(1.04);transition:opacity .7s ease,transform .7s ease;}
.sobre-slide.is-active{opacity:1;transform:scale(1);}
.sobre-slide img{width:100%;height:100%;object-fit:cover;display:block;}
.sobre-prev{left:12px;}
.sobre-next{right:12px;}
.sobre-dot{width:9px;height:9px;padding:0;border:none;border-radius:50%;background:rgba(255,255,255,.55);cursor:pointer;transition:.25s;}
.sobre-dot.is-active{background:var(--gold);width:26px;border-radius:6px;}
.terc-item{position:absolute;inset:0;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .5s ease,transform .5s ease,visibility .5s;}
.terc-item.is-visible{opacity:1;visibility:visible;transform:none;}
.terc-item h3{font-size:1.3rem;color:var(--navy);margin-bottom:10px;padding-left:16px;border-left:4px solid var(--gold);}
.terc-item p{color:var(--muted);margin:0;padding-left:20px;}
.terc-dot{width:9px;height:9px;padding:0;border:none;border-radius:50%;background:var(--gray);cursor:pointer;transition:.25s;}
.terc-dot:hover{background:var(--gold-dark);}
.terc-dot.is-active{background:var(--gold);width:26px;border-radius:6px;}
.terc-foto{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transform:scale(1.05);transition:opacity 1s ease,transform 6s ease;}
.terc-foto.is-active{opacity:1;transform:scale(1);}
@media (prefers-reduced-motion:reduce){.terc-foto{transition:opacity .5s ease;transform:none;}}

/* ---------- Página de projeto ---------- */
/* Herdada do tema modelo, onde o título da capa ficava colado embaixo. Com
   align-items:end, toda a sobra de altura ia para cima, e era isso que deixava
   a folga de cima maior que a de baixo. Centralizado, a sobra se divide igual
   entre os dois lados. O padding:0 também saiu: o espaçamento agora é definido
   em .projeto-single .projeto-hero, num lugar só. */
.projeto-hero{position:relative;min-height:520px;display:grid;align-items:center;color:#fff;overflow:hidden;}
.projeto-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,42,64,.15) 0%,rgba(12,30,46,.55) 45%,rgba(12,30,46,.94) 100%);}

/* auto-fit: acompanha a quantidade de itens (3 ou 4) sem deixar coluna vazia */
.galeria-item:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:var(--gold-line);}
.galeria-item img{width:100%;height:240px;object-fit:cover;object-position:center;}
.galeria-item figcaption{padding:18px 20px;font-size:14px;color:var(--muted);border-top:3px solid var(--gold);}

.projeto-cta{background:var(--navy);color:#fff;}
.projeto-cta p{color:rgba(255,255,255,.85);margin:0;}
.projeto-cta .section-title{margin-bottom:8px;}

/* Visualizador de imagens (lightbox) */
.galeria-item img{cursor:zoom-in;}
.galeria-item img:focus-visible{outline:3px solid var(--gold);outline-offset:-3px;}
body.lb-open{overflow:hidden;}
.lightbox{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;padding:64px 20px;}
.lightbox.is-open{display:flex;}
.lightbox-backdrop{position:absolute;inset:0;background:rgba(12,30,46,.94);backdrop-filter:blur(4px);cursor:zoom-out;}
.lightbox-content{position:relative;z-index:2;margin:0;max-width:1100px;width:100%;display:flex;flex-direction:column;align-items:center;gap:14px;animation:lbIn .3s ease;}
.lightbox-img{max-width:100%;max-height:76vh;width:auto;height:auto;border-radius:var(--radius);box-shadow:0 24px 70px rgba(0,0,0,.5);border:3px solid rgba(255,255,255,.9);}
.lightbox-caption{color:rgba(255,255,255,.9);font-size:15px;text-align:center;max-width:720px;}
.lightbox-counter{position:absolute;bottom:24px;left:0;right:0;z-index:2;text-align:center;color:rgba(255,255,255,.7);font-family:var(--fh);font-size:13px;font-weight:600;letter-spacing:1px;}
.lightbox-close{position:absolute;top:18px;right:20px;z-index:3;width:46px;height:46px;border:1px solid rgba(255,255,255,.3);border-radius:50%;background:rgba(255,255,255,.1);color:#fff;font-size:30px;line-height:1;cursor:pointer;display:grid;place-items:center;transition:.25s;}
.lightbox-close:hover{background:var(--gold);border-color:var(--gold);color:var(--navy);transform:rotate(90deg);}
.lightbox-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:52px;height:52px;border:1px solid rgba(255,255,255,.3);border-radius:50%;background:rgba(255,255,255,.1);color:#fff;font-size:30px;line-height:1;cursor:pointer;display:grid;place-items:center;transition:.25s;}
.lightbox-arrow:hover{background:var(--gold);border-color:var(--gold);color:var(--navy);}
.lightbox-prev{left:20px;}
.lightbox-next{right:20px;}
.lightbox-close:focus-visible,.lightbox-arrow:focus-visible{outline:3px solid var(--gold);outline-offset:2px;}
@keyframes lbIn{from{opacity:0;transform:scale(.97);}to{opacity:1;transform:scale(1);}}
@media (prefers-reduced-motion:reduce){.lightbox-content{animation:none;}.lightbox-close:hover{transform:none;}}
@media(max-width:700px){
	.lightbox{padding:56px 12px;}
	.lightbox-img{max-height:64vh;}
	.lightbox-arrow{width:44px;height:44px;font-size:26px;}
	.lightbox-prev{left:8px;}
	.lightbox-next{right:8px;}
	.lightbox-close{top:12px;right:12px;width:42px;height:42px;}
}
/* Sem mouse (celular/tablet) não há hover: mostra colorido desde o início. */

/* ---------- Notícias / cards ---------- */
.post-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:.3s;display:flex;flex-direction:column;}
.post-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--gold-line);}

.post-card-cat:hover{background:var(--navy);color:#fff;}
.post-card-thumb img{width:100%;height:210px;object-fit:cover;transition:transform .5s ease;}
.post-card:hover .post-card-thumb img{transform:scale(1.05);}
.post-meta{color:var(--gold-deep);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;}

/* ---------- Busca de notícias ---------- */
.noticias-busca{display:flex;flex-wrap:wrap;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-top:4px solid var(--gold);border-radius:var(--radius);padding:20px 22px;box-shadow:var(--shadow-sm);margin-bottom:34px;}
.busca-campo{position:relative;flex:1 1 260px;display:flex;align-items:center;}
.busca-icone{position:absolute;left:14px;width:18px;height:18px;color:var(--gold-deep);pointer-events:none;}
.noticias-busca input[type="search"]{width:100%;font-family:var(--ff);font-size:15px;padding:13px 15px 13px 42px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);transition:.2s;}
.busca-categoria{flex:0 1 220px;}
.noticias-busca select{width:100%;font-family:var(--ff);font-size:15px;padding:13px 15px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);cursor:pointer;transition:.2s;}
.noticias-busca input:focus,.noticias-busca select:focus{outline:none;border-color:var(--gold);background:#fff;box-shadow:0 0 0 3px rgba(166,151,123,.22);}
.noticias-busca .btn{flex:0 0 auto;padding:13px 28px;}
.busca-limpar{font-weight:600;font-size:14px;color:var(--muted);}
.busca-limpar:hover{color:var(--gold-deep);}
.busca-resultado{color:var(--muted);font-size:15px;margin-bottom:26px;}
.busca-resultado strong{color:var(--navy);}
.busca-vazia{color:var(--muted);}
.busca-vazia a{font-weight:600;color:var(--gold-deep);text-decoration:underline;}
@media(max-width:560px){
	.noticias-busca{padding:16px;}
	.busca-campo,.busca-categoria{flex:1 1 100%;}
	.noticias-busca .btn{width:100%;}
}

/* Capa padrão quando a notícia não tem imagem de destaque */
.post-card-thumb.is-placeholder{height:210px;background:linear-gradient(135deg,var(--navy),var(--navy-2));display:grid;place-items:center;}
.post-card-thumb.is-placeholder::after{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--gold-line) 1px,transparent 1px),linear-gradient(90deg,var(--gold-line) 1px,transparent 1px);background-size:32px 32px;opacity:.35;}
.post-card-thumb.is-placeholder img{width:96px;height:auto;position:relative;z-index:2;object-fit:contain;}

/* ---------- Contato ---------- */
.contato-info p{color:rgba(255,255,255,.9);}

/* ---------- Voltar ao topo ---------- */
.back-to-top{position:fixed;left:22px;bottom:22px;z-index:1200;width:48px;height:48px;border:none;border-radius:50%;background:var(--navy);color:#fff;cursor:pointer;display:grid;place-items:center;box-shadow:0 8px 24px rgba(18,42,64,.35);opacity:0;visibility:hidden;transform:translateY(12px);transition:.3s;}
.back-to-top.is-visible{opacity:1;visibility:visible;transform:none;}
.back-to-top:hover{background:var(--gold);color:var(--navy);transform:translateY(-3px);}
.back-to-top svg{width:22px;height:22px;}

/* ---------- Páginas legais ---------- */
.legal-page{font-size:1rem;}
.legal-page h2{font-size:1.2rem;margin-top:2em;}
.legal-page ul{padding-left:22px;}
.legal-page li{margin-bottom:8px;color:var(--ink);}
.legal-updated{color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:.5px;font-weight:600;margin-bottom:26px;}

/* ---------- Rodapé: links legais ---------- */

/* ---------- Footer ---------- */
.site-footer{background:#0C1E2E;color:rgba(255,255,255,.8);}
.footer-title .brand-text strong{color:#fff;}
.footer-logo-link{display:inline-flex;}
.footer-logo-img{height:60px;width:auto;display:block;}
.footer-about p{color:rgba(255,255,255,.7);font-size:15px;margin-top:16px;}
.footer-social{display:flex;gap:12px;margin-top:20px;}
.footer-social-link{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.9);transition:.25s;}
.footer-social-link svg{width:20px;height:20px;display:block;}
.footer-social-link:hover{transform:translateY(-3px);color:#fff;border-color:transparent;}
.footer-social-link.is-whatsapp:hover{background:#25D366;}
.footer-social-link.is-instagram:hover{background:linear-gradient(45deg,#F58529,#DD2A7B 50%,#8134AF 80%,#515BD4);}
.footer-social-link.is-facebook:hover{background:#1877F2;}
.footer-social-link.is-linkedin:hover{background:#0A66C2;}
.footer-social-link:focus-visible{outline:3px solid var(--gold);outline-offset:3px;}
.footer-menu,.footer-contact{list-style:none;padding:0;margin:0;}
.footer-menu a,.footer-contact a{color:rgba(255,255,255,.75);}
.footer-menu a:hover,.footer-contact a:hover{color:var(--gold);}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding:20px 0;}
.footer-bottom p{margin:0;font-size:14px;color:rgba(255,255,255,.6);text-align:center;}

/* ---------- WhatsApp flutuante ---------- */
/* ---------- Botão flutuante de contato ---------- */
.social-float{position:fixed;right:22px;bottom:22px;z-index:1250;display:flex;flex-direction:column;align-items:flex-end;gap:12px;}
.social-float-actions{display:flex;flex-direction:column;align-items:flex-end;gap:12px;}
/* A pilha do flutuante mede 158x186 mesmo fechada, porque os rótulos escondidos
   continuam ocupando lugar. Essa área vazia é bem maior que os botões que se
   veem e engole o clique de quem estiver embaixo dela, no canto inferior
   direito. Só os alvos de verdade recebem ponteiro; a caixa em volta deixa
   passar. */
.social-float,.social-float-actions{pointer-events:none;}
.social-float-toggle,.social-float-item{pointer-events:auto;}
.social-float-item{display:flex;align-items:center;gap:12px;opacity:0;visibility:hidden;transform:translateY(14px) scale(.9);transition:opacity .25s,transform .25s,visibility .25s;}
.social-float.is-open .social-float-item{opacity:1;visibility:visible;transform:none;}
/* Escalonado a partir do botão, e não do topo: quem está mais perto dele sai
   primeiro, como se a pilha brotasse dali. Contado de trás para frente porque a
   quantidade de itens varia — cada canal só existe se a URL estiver preenchida. */
.social-float.is-open .social-float-item:nth-last-child(2){transition-delay:.06s;}
.social-float.is-open .social-float-item:nth-last-child(3){transition-delay:.12s;}
.social-float-label{background:#fff;color:var(--navy);font-family:var(--fh);font-weight:600;font-size:14px;padding:8px 14px;border-radius:8px;box-shadow:var(--shadow-sm);white-space:nowrap;}
.social-float-icon{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;color:#fff;box-shadow:0 6px 18px rgba(18,42,64,.3);transition:transform .2s;}
.social-float-item:hover .social-float-icon{transform:scale(1.08);}
.social-whatsapp .social-float-icon{background:#25D366;}
.social-instagram .social-float-icon{background:linear-gradient(45deg,#F58529,#DD2A7B 50%,#8134AF 80%,#515BD4);}
.social-facebook .social-float-icon{background:#1877F2;}
.social-float-toggle{width:58px;height:58px;border:none;border-radius:50%;background:var(--navy);color:#fff;cursor:pointer;display:grid;place-items:center;box-shadow:0 8px 24px rgba(18,42,64,.4);transition:.3s;}
.social-float-toggle:hover{background:var(--gold);color:var(--navy);}
.social-float-toggle svg{width:28px;height:28px;grid-area:1/1;transition:opacity .25s,transform .25s;}
.social-float-toggle .icon-close{opacity:0;transform:rotate(-90deg);}
.social-float.is-open .social-float-toggle{background:var(--gold);color:var(--navy);}
.social-float.is-open .icon-open{opacity:0;transform:rotate(90deg);}
.social-float.is-open .icon-close{opacity:1;transform:none;}
.social-float-toggle:focus-visible{outline:3px solid var(--gold);outline-offset:3px;}
@media(max-width:560px){
	.social-float{right:16px;bottom:16px;}
	.social-float-label{font-size:13px;padding:7px 12px;}
	.social-float-icon{width:46px;height:46px;}
	.social-float-toggle{width:52px;height:52px;}
}

/* ---------- Páginas internas / blog ---------- */
.content-area{padding:64px 22px;}
.acbergs-single{max-width:820px;}
.single-title{font-size:2.2rem;}
.single-header{margin-bottom:8px;}
.single-thumb img{border-radius:var(--radius);margin:20px 0;width:100%;}
.single-content{font-size:1.05rem;color:#2b3546;}
.single-content h2,.single-content h3{margin-top:1.6em;}
.single-content p{margin-bottom:1.1em;}
.single-content img{max-width:100%;height:auto;border-radius:var(--radius);}
.post-navigation{display:flex;justify-content:space-between;gap:20px;margin:48px 0;padding-top:24px;border-top:1px solid var(--line);font-weight:600;}

/* ---------- Comentários ---------- */
.comments-area{margin-top:48px;padding-top:32px;border-top:1px solid var(--line);}
.comments-title,.comment-reply-title{font-family:var(--fh);font-size:1.35rem;color:var(--navy);margin-bottom:20px;}
.comment-list{list-style:none;margin:0 0 40px;padding:0;}
.comment-list ol.children{list-style:none;margin:16px 0 0;padding-left:28px;}
.comment-list li.comment{margin-bottom:18px;}
.comment-body{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;}
.comment-author{display:flex;align-items:center;gap:10px;font-weight:600;color:var(--navy);}
.comment-author img{border-radius:50%;}
.comment-metadata{font-size:13px;color:var(--muted);margin:4px 0 10px;}
.comment-content p{margin-bottom:.8em;}
.reply a{font-weight:600;font-size:14px;color:var(--blue);}
.comment-notes{color:var(--muted);font-size:14px;margin-bottom:18px;}
.comment-form{display:grid;gap:16px;}
.comment-form label{display:block;font-weight:600;font-size:14px;color:var(--navy);margin-bottom:6px;}
.comment-form input[type="text"],.comment-form input[type="email"],.comment-form input[type="url"],.comment-form textarea{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;font:inherit;color:var(--ink);background:#fff;}
.comment-form input:focus,.comment-form textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(166,151,123,.22);}
.comment-form textarea{resize:vertical;min-height:130px;}
.comment-form p{margin:0;}
.comment-form .form-submit{margin-top:4px;}
.comment-form .submit{cursor:pointer;}
.comment-form-cookies-consent{display:flex;align-items:center;gap:8px;}
.comment-form-cookies-consent label{margin:0;font-weight:400;color:var(--muted);}
.comment-form-cookies-consent input{width:auto;}
.no-comments{color:var(--muted);}
@media(min-width:640px){
	.comment-form-author,.comment-form-email{display:inline-block;width:calc(50% - 8px);}
	.comment-form-author{margin-right:12px;}
}
.pagination{margin-top:44px;text-align:center;}
.pagination .page-numbers{display:inline-grid;place-items:center;min-width:44px;height:44px;padding:0 10px;border:1px solid var(--line);border-radius:10px;margin:0 4px;font-weight:600;color:var(--navy);}
.pagination .page-numbers.current{background:var(--navy);color:#fff;border-color:var(--navy);}
.error-404{text-align:center;}
.elementor-canvas{min-height:40vh;}

/* ---------- Responsivo ---------- */
@media(max-width:980px){
	/* Menu lateral (gaveta) entrando pela direita, do mesmo lado do botão.
	   Usa top+height em unidades de viewport, e não 'bottom': o .site-header tem
	   backdrop-filter, que só às vezes está ativo (na home, no topo, ele é
	   desligado) e nesses casos vira bloco de contenção dos filhos fixed —
	   com 'bottom' a gaveta mudaria de altura conforme o estado do cabeçalho.
	   O 'visibility' garante a gaveta escondida qualquer que seja a largura. */
	.main-navigation{position:fixed;top:0;right:0;left:auto;bottom:auto;width:min(330px,86vw);height:100vh;height:100dvh;background:#fff;border-left:1px solid var(--line);border-bottom:none;box-shadow:-14px 0 44px rgba(18,42,64,.22);transform:translateX(100%);visibility:hidden;transition:transform .35s ease,visibility .35s;padding-top:0;max-height:none;display:flex;flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;}
	.main-navigation.open{transform:translateX(0);visibility:visible;}
	/* Logo e botão do menu ficam acima da gaveta: o "X" continua clicável */
	.site-branding,.header-cta{position:relative;z-index:2;}

	/* Topo da gaveta: a marca, alinhada com o botão de fechar */
	.menu-drawer-head{display:flex;align-items:center;flex:0 0 auto;min-height:77px;padding:12px 24px;border-bottom:1px solid var(--line);}
	.menu-drawer-logo{height:46px;width:auto;display:block;}

	/* Itens: divisórias entre eles e barra dourada no item da página atual */
	.main-navigation ul{flex-direction:column;gap:0;padding:6px 0 10px;}
	.main-navigation li{padding:0;}
	.main-navigation ul a{position:relative;display:block;padding:17px 24px;border-bottom:1px solid var(--line);border-radius:0;color:var(--ink);font-size:16px;font-weight:600;}
	.main-navigation ul li:last-child a{border-bottom:none;}
	.main-navigation ul a::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%) scaleY(0);width:4px;height:26px;border-radius:0 3px 3px 0;background:var(--gold);transition:transform .25s;}
	.main-navigation .current-menu-item>a,
	.main-navigation .current_page_item>a,
	.main-navigation .current-menu-ancestor>a,
	.main-navigation .current-menu-parent>a,
	.main-navigation .current_page_parent>a{color:var(--gold-deep);background:var(--gold-soft);}
	.main-navigation .current-menu-item>a::before,
	.main-navigation .current_page_item>a::before,
	.main-navigation .current-menu-ancestor>a::before,
	.main-navigation .current-menu-parent>a::before,
	.main-navigation .current_page_parent>a::before{transform:translateY(-50%) scaleY(1);}
	.main-navigation ul a:active{background:var(--bg);}

	/* Rodapé da gaveta: canais de contato, sempre coladas embaixo */
	.menu-drawer-social{display:block;flex:0 0 auto;margin-top:auto;padding:20px 24px calc(24px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--bg);}
	.menu-drawer-social-title{display:block;font-family:var(--fh);font-size:12px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--gold-deep);margin-bottom:14px;}
	/* Tres numa linha so: o icone em cima e o nome embaixo, senao icone e texto lado a
	   lado nao cabem em um terco da gaveta. */
	.menu-drawer-social-links{display:flex;flex-direction:row;gap:10px;}
	.menu-social-link{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:14px 6px;border:1px solid var(--line);border-radius:12px;background:#fff;font-family:var(--fh);font-weight:600;font-size:12.5px;line-height:1.2;text-align:center;color:var(--navy);transition:.25s;}
	.menu-social-icon{display:grid;place-items:center;width:36px;height:36px;flex:0 0 auto;border-radius:50%;color:#fff;}
	.menu-social-icon svg{width:20px;height:20px;display:block;}
	.is-whatsapp .menu-social-icon{background:#25D366;}
	.is-instagram .menu-social-icon{background:linear-gradient(45deg,#F58529,#DD2A7B 50%,#8134AF 80%,#515BD4);}
	.is-facebook .menu-social-icon{background:#1877F2;}
	.menu-social-link:active{border-color:var(--gold);background:var(--gold-soft);color:var(--navy);}
	/* Trava o fundo enquanto o menu está aberto */
	body.nav-open{overflow:hidden;}
	.menu-toggle{display:flex;}
	.header-cta .btn-primary{display:none;}
	.projeto-numeros-grid{grid-template-columns:repeat(2,1fr);}
	.projeto-hero{min-height:420px;}
	.projeto-hero-inner{padding-top:90px;padding-bottom:52px;}
	.hero-inner{min-height:340px;padding:44px 0 56px;}
	.hero-panel{inset:44px 0 56px;}
	.hero-panel-logo img{width:min(240px,66%);}
	/* Mesmo raciocínio do gradiente de tela larga: quem garante o contraste é a
	   sombra do texto, não o escurecimento da foto. Estava .80/.90, que deixava
	   a foto em 0,037 de luminância — mais escura ainda que no desktop. Com
	   .50/.68 ela vai a 0,086, e a medição sob os glifos segue em zero abaixo
	   de AA, com folga até .44/.62. */
	.hero-overlay{background:linear-gradient(180deg,rgba(18,42,64,.50) 0%,rgba(18,42,64,.68) 100%);}
	.numeros-grid{grid-template-columns:repeat(2,1fr);}
	.numero-item:nth-child(2){border-right:none;}
}
/* ---- Banner no celular ---- */
@media(max-width:768px){
	/* Menos espaço perdido no topo e folga suficiente para os pontinhos embaixo */
	body.home .hero-inner{padding-top:104px;padding-bottom:104px;}
	body.home .hero-panel{inset:104px 0 104px;}
	.hero-panel{inset:40px 0 104px;}
	.hero-panel-text{max-width:100%;}
	.hero-tag{font-size:11px;padding:5px 13px;margin-bottom:14px;}
	.hero-title{font-size:clamp(1.45rem,6.2vw,2rem);margin-bottom:12px;}
	.hero-text{font-size:1rem;max-width:100%;margin-bottom:22px;}
	.hero-panel-logo img{width:min(220px,64%);}
	.hero-dots{bottom:74px;}
	.hero-dot{width:8px;height:8px;}
	.hero-dot.is-active{width:22px;}
}
@media(max-width:560px){
	body{font-size:16px;}
	section{padding:60px 0;}
	.hero-inner{padding:70px 0 84px;}
	.hero-actions{flex-direction:column;}
	.hero-actions .btn{width:100%;}
	.numeros-grid{grid-template-columns:1fr 1fr;gap:8px;}
	.numeros-card{padding:24px 14px;}
	.projeto-numeros-grid{gap:8px;padding:24px 14px;}
	.numero-valor{font-size:1.9rem;}
	.footer-grid{grid-template-columns:1fr;gap:32px;}
}

/* =========================================================
   Componentes da ACBERGS
   Vêm depois do bloco herdado do modelo, de propósito: onde
   os nomes de classe coincidem, o que vale é o daqui.
   ========================================================= */

/* ---------- Estruturas gerais ---------- */
.container-estreito{max-width:820px;}
.section-head{text-align:center;margin-bottom:38px;}
.section-head .section-title{margin-bottom:0;}
.section-actions{display:flex;justify-content:center;margin-top:38px;}
.secao-vazia{text-align:center;color:var(--muted);padding:40px 0;font-size:15px;}

/* Nota que explica a contagem de atendimentos. Sem ela, 66 mil parece número
   de pessoas atendidas, e a instituição atende 252. */
.numeros-nota{margin:22px auto 0;max-width:64ch;text-align:center;font-size:13px;color:var(--muted);line-height:1.5;}
.numero-valor.numero-texto{font-size:1.15rem;line-height:1.3;}

/* ---------- Sobre ---------- */
.sobre{padding:96px 0 84px;}
.sobre-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;}
.sobre-galeria{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
/* As quatro fotos formam uma gráde reta: mesma altura e mesma linha de topo.
   A primeira e a quarta já desceram 26px para dar o efeito escada, o que
   desalinhava as duas colunas nas três páginas que usam esta galeria — home,
   Quem Somos e Como Apoiar. */
.sobre-galeria img{width:100%;height:210px;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow-sm);}

/* ---------- Áreas de atuação ---------- */
.atuacao{padding:88px 0;background:var(--bg);}
.atuacao-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.atuacao-card{background:#fff;border-radius:var(--radius);padding:28px 24px;border:1px solid var(--line);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease,background-color .25s ease;}
.atuacao-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);}
.atuacao-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;margin-bottom:16px;transition:background-color .25s ease,color .25s ease;}
.atuacao-icon svg{width:26px;height:26px;}
.atuacao-card h3{font-size:1.05rem;margin-bottom:8px;transition:color .25s ease;}
.atuacao-card p{font-size:14.5px;color:var(--muted);margin:0;line-height:1.55;transition:color .25s ease;}

/* ---------- Projetos: cards da home ---------- */
.projetos{padding:92px 0;}
.projetos-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.projeto-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:transform .25s,box-shadow .25s;}
.projeto-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);}
.projeto-card-media{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:var(--bg);}
.projeto-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s;}
.projeto-card:hover .projeto-card-media img{transform:scale(1.05);}
.projeto-card-area{position:absolute;left:14px;bottom:14px;padding:6px 13px;border-radius:50px;background:var(--navy);color:#fff;font-size:11.5px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;}
.projeto-card-corpo{display:flex;flex-direction:column;flex:1;padding:24px;}
.projeto-card-corpo h3{font-size:1.1rem;line-height:1.3;margin-bottom:10px;}
.projeto-card-corpo h3 a{color:var(--navy);}
.projeto-card-corpo h3 a:hover{color:var(--gold-deep);}
.projeto-card-corpo>p{font-size:14.5px;color:var(--muted);margin-bottom:16px;}
.projeto-card-tags{list-style:none;display:flex;flex-wrap:wrap;gap:7px;margin:0 0 18px;padding:0;}
.projeto-card-tags li{padding:5px 11px;border-radius:50px;background:var(--gold-soft);color:var(--gold-deep);font-size:11.5px;font-weight:600;}
.projeto-card-rodape{margin-top:auto;padding-top:16px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:3px;}
.projeto-card-destaque{font-size:13.5px;color:var(--muted);}
.projeto-card-destaque strong{font-size:1.35rem;color:var(--green);font-weight:800;margin-right:5px;}
.projeto-card-parceria{font-size:12.5px;color:var(--gray);}

/* ---------- Projetos: lista completa ---------- */
.projetos-lista{display:flex;flex-direction:column;gap:30px;}
.projeto-linha{display:grid;grid-template-columns:340px 1fr;gap:32px;align-items:start;padding-bottom:30px;border-bottom:1px solid var(--line);}
.projeto-linha:last-child{border-bottom:none;padding-bottom:0;}
.projeto-linha-media{display:block;aspect-ratio:16/10;border-radius:var(--radius);overflow:hidden;background:var(--bg);}
.projeto-linha-media img{width:100%;height:100%;object-fit:cover;}
.projeto-linha-area{display:inline-block;padding:5px 12px;border-radius:50px;background:var(--green-soft);color:var(--green-dark);font-size:11.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;margin-bottom:12px;}
.projeto-linha-corpo h2{font-size:1.35rem;margin-bottom:10px;}
.projeto-linha-corpo h2 a{color:var(--navy);}
.projeto-linha-corpo h2 a:hover{color:var(--gold-deep);}
.projeto-linha-corpo>p{color:var(--muted);margin-bottom:16px;}
.projeto-linha-dados{display:flex;flex-wrap:wrap;gap:28px;margin:0 0 18px;}
.projeto-linha-dados div{margin:0;}
.projeto-linha-dados dt{font-size:11.5px;letter-spacing:.5px;text-transform:uppercase;color:var(--gray);font-weight:600;margin-bottom:3px;}
.projeto-linha-dados dd{margin:0;font-weight:700;color:var(--navy);font-size:15px;}
.projetos-nota{margin:44px auto 0;max-width:70ch;text-align:center;font-size:13.5px;color:var(--muted);line-height:1.6;}

/* ---------- Página de um projeto ---------- */
.projeto-single .projeto-hero{position:relative;background-size:cover;background-position:center;color:#fff;}
.projeto-hero-overlay{position:absolute;inset:0;background:linear-gradient(100deg,rgba(22,41,79,.92) 0%,rgba(22,41,79,.76) 45%,rgba(22,41,79,.42) 100%);}
.projeto-hero-inner{position:relative;z-index:2;max-width:760px;}
.projeto-hero-inner h1{color:#fff;font-size:clamp(1.7rem,3.6vw,2.6rem);margin-bottom:14px;}
.projeto-hero-resumo{font-size:1.05rem;color:rgba(255,255,255,.92);margin:0;}
.conteudo-texto p{font-size:1.03rem;line-height:1.75;color:var(--ink);}
.projeto-destaques{margin-top:44px;padding:30px 32px;background:var(--bg);border-radius:var(--radius);border-left:4px solid var(--gold);}
.projeto-destaques h2{font-size:1.15rem;margin-bottom:16px;}
.projeto-destaques-lista{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;}
.projeto-destaques-lista li{padding:9px 16px;background:#fff;border:1px solid var(--line);border-radius:50px;font-size:14px;font-weight:600;color:var(--navy);}
.projeto-cta{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-2) 100%);color:#fff;text-align:center;padding:72px 0;}
.projeto-cta h2{color:#fff;font-size:clamp(1.4rem,3vw,2rem);}
.projeto-cta p{color:rgba(255,255,255,.88);max-width:56ch;margin:0 auto 26px;}
.projeto-cta-acoes{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;}

/* ---------- Páginas internas ---------- */
.pagina-corpo{padding:80px 0;}

/* ---------- Missão e valores ---------- */
.missao{padding:20px 0 84px;}
.missao-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.missao-card p{margin:0;color:var(--muted);line-height:1.7;}
.valores{padding:88px 0;background:var(--bg);}
.valores-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.valor-card p{font-size:14px;color:var(--muted);margin:0;line-height:1.55;}
.atividades{padding:88px 0;}
.atividades-lista{list-style:none;margin:0;padding:0;display:grid;gap:12px;}
.atividades-lista li{position:relative;padding:14px 18px 14px 46px;background:var(--bg);border-radius:12px;font-size:15px;}
.atividades-lista li::before{content:"";position:absolute;left:20px;top:50%;width:9px;height:9px;margin-top:-4px;border-radius:50%;background:var(--green);}

/* ---------- Chamada de apoio ---------- */
.apoio{padding:78px 0;background:linear-gradient(135deg,var(--green) 0%,var(--green-dark) 100%);color:#fff;}
.apoio-inner{max-width:760px;margin:0 auto;text-align:center;}
.apoio h2{color:#fff;font-size:clamp(1.5rem,3.2vw,2.1rem);}
.apoio p{color:rgba(255,255,255,.93);margin-bottom:26px;}
.apoio-acoes{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;}
.apoio .btn-whats{background:#fff;color:var(--green-dark);border-color:#fff;}
.apoio .btn-whats:hover{background:var(--gold);color:#fff;border-color:var(--gold);}
.apoio a:focus-visible{outline-color:#fff;}

/* ---------- Parceiros ---------- */

/* ---------- Notícias ---------- */
.noticias{padding:88px 0;background:var(--bg);}
.posts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.post-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:transform .25s,box-shadow .25s;}
.post-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);}
.post-card-media{position:relative;aspect-ratio:16/10;background:var(--navy);}
.post-card-thumb{display:block;height:100%;}
.post-card-thumb img{width:100%;height:100%;object-fit:cover;}
.post-card-thumb.is-placeholder{display:grid;place-items:center;padding:32px;}
.post-card-thumb.is-placeholder img{width:auto;height:auto;max-width:70%;object-fit:contain;}
.post-card-cat{position:absolute;left:14px;bottom:14px;padding:5px 12px;border-radius:50px;background:var(--gold);color:#fff;font-size:11.5px;font-weight:600;}
.post-card-corpo{padding:22px 24px 26px;}
.post-card-corpo time{font-size:12.5px;color:var(--gray);}
.post-card-corpo h3{font-size:1.05rem;line-height:1.35;margin:8px 0 10px;}
.post-card-corpo h3 a{color:var(--navy);}
.post-card-corpo h3 a:hover{color:var(--gold-deep);}
.post-card-corpo p{font-size:14.5px;color:var(--muted);margin:0;}

/* ---------- Contato ---------- */
.contato-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;}
.contato-info h2{color:#fff;font-size:clamp(1.5rem,3.2vw,2.1rem);}
.contato-info>p{color:rgba(255,255,255,.9);margin-bottom:28px;}
.contato-lista{list-style:none;margin:0;padding:0;display:grid;gap:18px;}
.contato-lista li{display:flex;flex-direction:column;gap:3px;}
.contato-lista strong{font-size:11.5px;letter-spacing:.6px;text-transform:uppercase;color:var(--gold);font-weight:700;}
.contato-lista a{color:#fff;}
.contato-lista a:hover{color:var(--gold);}

/* ---------- Formulário ---------- */
.form-contato .campo{margin-bottom:16px;}
.form-contato input:focus,.form-contato select:focus,.form-contato textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(1,144,81,.16);}
.form-contato textarea{resize:vertical;min-height:96px;}
.campo-consentimento label{display:flex;align-items:flex-start;gap:10px;font-size:13px;font-weight:400;color:var(--muted);line-height:1.5;}
.campo-consentimento input{margin-top:3px;flex:0 0 auto;width:16px;height:16px;accent-color:var(--green);}
.campo-consentimento a{font-weight:600;text-decoration:underline;}
.form-contato-indisponivel .contato-botoes{display:grid;gap:10px;}
.form-contato-indisponivel .aviso-admin{margin:20px 0 0;padding:12px 14px;background:var(--gold-soft);border-radius:10px;font-size:12.5px;color:var(--gold-deep);line-height:1.5;}

/* ---------- Rodapé ---------- */
.footer-horario{color:var(--gray);font-size:13.5px;}
.footer-cnpj{display:inline-block;margin-left:8px;opacity:.8;}
.footer-social-link.is-youtube:hover{background:#ff0000;border-color:#ff0000;color:#fff;}

/* ---------- Responsivo ---------- */
@media (max-width:1024px){
	.atuacao-grid,.valores-grid{grid-template-columns:repeat(2,1fr);}
	.projetos-grid,.posts-grid{grid-template-columns:repeat(2,1fr);}
	.sobre-grid,.contato-grid{grid-template-columns:1fr;gap:40px;}
	.projeto-linha{grid-template-columns:260px 1fr;gap:24px;}
	.projeto-numeros-grid{grid-template-columns:1fr;}
}

@media (max-width:768px){
	.sobre,.atuacao,.projetos,.noticias,.valores,.atividades,.pagina-corpo,.contato{padding:60px 0;}
	.projetos-grid,.posts-grid,.atuacao-grid,.valores-grid,.missao-grid{grid-template-columns:1fr;}
	.projeto-linha{grid-template-columns:1fr;gap:18px;}
	.sobre-galeria img{height:160px;}
	.numeros-grid{grid-template-columns:1fr 1fr;gap:24px 12px;}
	.numero-item{border-right:none;}
	.form-contato{padding:26px 22px;}
	.projeto-linha-dados{gap:18px;}
	.pagina-hero{padding:52px 0 74px;}
	.projeto-single .projeto-hero{padding:74px 0 66px;}
}

@media (prefers-reduced-motion:reduce){
	.projeto-card,.post-card,.atuacao-card,.projeto-card-media img{transition:none;}
	.projeto-card:hover,.post-card:hover,.atuacao-card:hover{transform:none;}
	.projeto-card:hover .projeto-card-media img{transform:none;}
}

/* =========================================================
   Ajustes da revisão
   ========================================================= */

/* ---------- Cena do banner só com a marca ---------- */
.hero-logo-lema{margin:22px auto 0;max-width:46ch;color:rgba(255,255,255,.94);font-size:1.02rem;}
.hero-panel-logo .hero-actions{justify-content:center;margin-top:26px;}
/* Sobre a cena da marca o véu é mais leve: não há texto competindo com a foto. */
.hero.is-showcase .hero-overlay{background:linear-gradient(180deg,rgba(22,41,79,.62) 0%,rgba(22,41,79,.72) 100%);}

/* ---------- Cards com a mesma altura ---------- */
/* stretch é o padrão do grid, mas fica explícito porque é o que garante que
   três cards de texto desigual terminem alinhados embaixo. */
.projetos-grid,.posts-grid,.atuacao-grid,.valores-grid,.missao-grid{align-items:stretch;}
.projetos-grid>*,.posts-grid>*,.atuacao-grid>*,.valores-grid>*,.missao-grid>*{height:100%;}
.projeto-card-corpo>p{flex:1 1 auto;}

/* ---------- Animação de entrada ---------- */
.a-revelar{opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .55s ease;}
.a-revelar.revelado{opacity:1;transform:none;}

/* Segurança: se o JavaScript não rodar, nada fica invisível, porque a classe
   .a-revelar só é aplicada pelo próprio JavaScript. */

@media (prefers-reduced-motion:reduce){
	.a-revelar{opacity:1;transform:none;transition:none;}
}

/* ---------- Formulário de contato ---------- */
.campo-duplo{display:grid;grid-template-columns:1fr 1fr;gap:0 14px;}
.form-contato .obrigatorio{color:var(--gold-deep);}
.form-contato .btn-block{margin-top:6px;}

/* Isca de spam: some da tela sem usar display:none, que alguns robôs detectam. */
.campo-isca{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

.form-aviso{margin:0 0 18px;padding:13px 16px;border-radius:10px;font-size:14px;line-height:1.5;}
.form-aviso-sucesso{background:var(--green-soft);color:var(--green-dark);border-left:4px solid var(--green);}
.form-aviso-erro{background:var(--gold-soft);color:var(--gold-deep);border-left:4px solid var(--gold);}
.form-alternativa{margin:16px 0 0;text-align:center;font-size:13.5px;color:var(--muted);}
.form-alternativa a{font-weight:600;text-decoration:underline;}

@media (max-width:520px){
	.campo-duplo{grid-template-columns:1fr;}
}

/* ---------- Mensagens no painel ---------- */
.aviso-admin{margin:20px 0 0;padding:12px 14px;background:var(--gold-soft);border-radius:10px;font-size:12.5px;color:var(--gold-deep);line-height:1.5;}

/* =========================================================
   Números e rodapé, versão 1.2
   ========================================================= */

/* ---------- Números ----------
   O cartão flutuante anterior subia 56px por cima do banner. Isso deixava a
   folga de cima menor que a de baixo, e não havia como equilibrar sem desfazer
   a sobreposição. Aqui a seção é uma faixa própria, com respiro igual dos dois
   lados, e o destaque vem do contraste de fundo, não de sombra e moldura. */
.numeros{position:relative;padding:72px 0;background:var(--bg);}
.numeros-card{background:none;border:0;box-shadow:none;padding:0;border-radius:0;}
.numeros-title{text-align:center;font-family:var(--fh);font-size:clamp(1.35rem,2.6vw,1.85rem);font-weight:700;color:var(--navy);margin:0 0 40px;}

.numeros-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}

/* Sem divisórias e sem risquinhos: o espaço entre os blocos já separa. */
.numero-item{position:relative;text-align:center;padding:30px 20px;background:#fff;border-radius:18px;border:1px solid transparent;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;}
.numero-item:hover{transform:translateY(-4px);border-color:var(--gold-line);box-shadow:0 14px 34px rgba(39,79,153,.10);}

/* Filete no topo que só aparece no hover, em vez de moldura permanente. */
.numero-item::before{content:"";position:absolute;left:50%;top:0;width:0;height:3px;border-radius:0 0 3px 3px;background:var(--gold);transform:translateX(-50%);transition:width .3s ease;}
.numero-item:hover::before{width:56px;}

.numero-valor{display:block;font-family:var(--fh);font-weight:800;font-size:clamp(2.2rem,4.4vw,3.1rem);line-height:1;letter-spacing:-.02em;color:var(--navy);font-variant-numeric:tabular-nums;}
.numero-label{display:block;margin-top:12px;color:var(--muted);font-size:14px;line-height:1.45;}
.numero-valor.numero-texto{font-size:1.15rem;line-height:1.3;letter-spacing:0;}

.numeros-nota{margin:34px auto 0;max-width:66ch;text-align:center;font-size:13px;color:var(--muted);line-height:1.6;}

/* Na página Quem Somos a faixa vem logo abaixo do cabeçalho azul, então fica
   branca para não empilhar dois fundos cinzas. */
.numeros-interna{background:#fff;}
.numeros-interna .numero-item{background:var(--bg);}
.numeros-interna .numero-item:hover{background:#fff;}

/* A seção seguinte à faixa não precisa repetir o respiro que a faixa já deu. */
.numeros + .sobre,.numeros + .pagina-corpo{padding-top:76px;}

@media (max-width:900px){
	.numeros{padding:56px 0;}
	.numeros-grid{grid-template-columns:repeat(2,1fr);gap:14px;}
	.numeros-title{margin-bottom:28px;}
}

@media (max-width:480px){
	.numero-item{padding:24px 14px;}
}

@media (prefers-reduced-motion:reduce){
	.numero-item,.numero-item::before{transition:none;}
	.numero-item:hover{transform:none;}
}

/* ---------- Rodapé em quatro colunas ---------- */
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1.1fr 1.5fr;gap:48px;padding:72px 22px 48px;}
.footer-about p{color:rgba(255,255,255,.68);font-size:14.5px;line-height:1.65;margin-top:18px;max-width:38ch;}

/* Título sem a barra colorida embaixo: em quatro colunas ela virava uma
   sequência de traços que competia com o conteúdo. */
.footer-col h4{color:#fff;font-family:var(--fh);font-size:15px;font-weight:700;letter-spacing:.3px;margin:0 0 20px;}

.footer-menu li,.footer-contact li{margin-bottom:14px;color:rgba(255,255,255,.72);font-size:14.5px;line-height:1.5;}
.footer-menu a{position:relative;display:inline-block;}
.footer-menu a::after{content:"";position:absolute;left:0;bottom:-3px;width:0;height:1px;background:var(--gold);transition:width .25s ease;}
.footer-menu a:hover::after{width:100%;}

/* Contato com ícone: grade de duas colunas para o texto longo do endereço
   alinhar embaixo do próprio texto, e não embaixo do ícone. */
.footer-contact li{display:grid;grid-template-columns:22px 1fr;gap:12px;align-items:start;}
.footer-icon{display:flex;align-items:center;justify-content:center;width:22px;height:22px;color:var(--gold);flex:0 0 auto;}
.footer-icon svg{width:17px;height:17px;display:block;}
.footer-horario{color:rgba(255,255,255,.6);}

.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding:22px 0;}
.footer-cnpj{display:inline-block;margin-left:8px;opacity:.75;}

@media (max-width:1024px){
	.footer-grid{grid-template-columns:1fr 1fr;gap:40px;padding:56px 22px 40px;}
	.footer-about{grid-column:1 / -1;}
}

@media (max-width:600px){
	.footer-grid{grid-template-columns:1fr;gap:34px;}
	.footer-about p{max-width:none;}
}

/* =========================================================
   Versão 1.3
   ========================================================= */

/* ---------- Formulário de contato ----------
   Antes eram duas caixas brancas empilhadas: o tema modelo estilizava
   .contato-form e o tema novo estilizava .form-contato dentro dela. Agora é
   uma caixa só, sem sombra, com borda fina no lugar do relevo. */
.form-contato{background:#fff;border:1px solid rgba(255,255,255,.14);border-radius:20px;padding:36px 34px;box-shadow:none;color:var(--ink);}
.form-contato h3{font-size:1.25rem;font-weight:700;color:var(--navy);margin:0 0 24px;}

.form-contato label{display:block;font-size:13px;font-weight:600;color:var(--navy);margin-bottom:7px;letter-spacing:.1px;}
.form-contato .obrigatorio{color:var(--gold);font-weight:700;}

/* Campos sem borda em volta: só um traço embaixo. Menos moldura, mais foco no
   que a pessoa está escrevendo. */

/* A seta do select precisa ser desenhada: sem borda, o campo perde a moldura
   que o navegador usa como pista de que é uma lista. */
.form-contato select{
	appearance:none;-webkit-appearance:none;padding-right:26px;cursor:pointer;
	background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235A6779' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat:no-repeat;background-position:right 2px center;background-size:16px;
}

.form-contato .btn-block{margin-top:8px;padding:15px 26px;}

@media (max-width:520px){
	.form-contato{padding:28px 22px;}
	.campo-duplo{grid-template-columns:1fr;}
}

/* ---------- Cabeçalho das páginas internas ----------
   Azul da marca com brilhos suaves em verde e laranja, e um filete tricolor
   embaixo que amarra o cabeçalho ao resto do site. */
.pagina-hero{
	position:relative;overflow:hidden;color:#fff;padding:82px 0 78px;
	background:linear-gradient(120deg,var(--navy-deep) 0%,var(--navy) 52%,#2D5CAE 100%);
}
.pagina-hero::before{
	content:"";position:absolute;inset:0;pointer-events:none;
	background:
		radial-gradient(620px circle at 88% 8%,rgba(1,144,81,.30),transparent 62%),
		radial-gradient(520px circle at 4% 96%,rgba(253,109,0,.24),transparent 60%);
}
/* Filete tricolor na base, nas três cores do símbolo. */
.pagina-hero::after{
	content:"";position:absolute;left:0;right:0;bottom:0;height:4px;
	background:linear-gradient(90deg,var(--green) 0 34%,var(--slate) 34% 67%,var(--gold) 67% 100%);
}
.pagina-hero .container{position:relative;z-index:2;}
.pagina-titulo{color:#fff;font-size:clamp(2rem,4.4vw,3rem);font-weight:800;letter-spacing:-.02em;margin:6px 0 14px;max-width:20ch;}
.pagina-subtitulo p{color:rgba(255,255,255,.88);max-width:62ch;font-size:1.06rem;line-height:1.65;margin:0;}
.pagina-hero .breadcrumb{margin-bottom:20px;}

@media (max-width:768px){
	.pagina-hero{padding:56px 0 52px;}
	.pagina-titulo{max-width:none;}
}

/* ---------- Missão e visão ---------- */
.missao{padding:84px 0;}
.missao-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:20px;padding:34px 32px;box-shadow:none;transition:border-color .25s ease,transform .25s ease;}
.missao-card:hover{transform:translateY(-3px);}
.missao-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;margin-bottom:20px;}
.missao-icon svg{width:27px;height:27px;}
.missao-card h3{font-size:1.3rem;font-weight:700;margin-bottom:14px;}
.missao-card p{margin:0;color:var(--muted);line-height:1.72;}

.missao-card.is-verde .missao-icon{background:var(--green-soft);color:var(--green);}
.missao-card.is-verde:hover{border-color:var(--green);}
.missao-card.is-verde h3{color:var(--green-dark);}
.missao-card.is-laranja .missao-icon{background:var(--gold-soft);color:var(--gold);}
.missao-card.is-laranja:hover{border-color:var(--gold);}
.missao-card.is-laranja h3{color:var(--gold-deep);}

/* ---------- Valores ---------- */
.valor-card{background:#fff;border-radius:18px;padding:28px 24px;border:1px solid var(--line);transition:transform .25s ease,border-color .25s ease,background-color .25s ease;}
.valor-card:hover{transform:translateY(-4px);}
.valor-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;margin-bottom:16px;transition:background-color .25s ease,color .25s ease;}
.valor-icon svg{width:23px;height:23px;}
.valor-card h3{font-size:1.02rem;font-weight:700;margin-bottom:9px;color:var(--navy);transition:color .25s ease;}
.valor-card p{font-size:14px;color:var(--muted);margin:0;line-height:1.58;transition:color .25s ease;}

/* Mesmo comportamento das áreas de atuação: o card assume a tinta da própria
   cor, o ícone inverte para não sumir dentro dela, e o título acompanha.
   O título usa o tom escuro de cada cor, porque o tom cheio sobre a tinta
   clara ficaria abaixo do contraste mínimo para texto. */
.valor-card.is-verde .valor-icon{background:var(--green-soft);color:var(--green);}
.valor-card.is-verde:hover{background:var(--green-soft);border-color:var(--green);}
.valor-card.is-verde:hover .valor-icon{background:var(--green);color:#fff;}
.valor-card.is-verde:hover h3{color:var(--green-dark);}

.valor-card.is-azul .valor-icon{background:#E9F0FB;color:var(--blue);}
.valor-card.is-azul:hover{background:#E9F0FB;border-color:var(--slate);}
.valor-card.is-azul:hover .valor-icon{background:var(--blue);color:#fff;}
.valor-card.is-azul:hover h3{color:var(--navy);}

.valor-card.is-laranja .valor-icon{background:var(--gold-soft);color:var(--gold);}
.valor-card.is-laranja:hover{background:var(--gold-soft);border-color:var(--gold);}
.valor-card.is-laranja:hover .valor-icon{background:var(--gold);color:#fff;}
.valor-card.is-laranja:hover h3{color:var(--gold-deep);}

.valor-card:hover p{color:var(--ink);}

/* ---------- Linha do tempo ---------- */
.trajetoria{padding:88px 0;}
.linha-tempo{position:relative;list-style:none;margin:0;padding:0 0 0 34px;}
/* Trilho vertical em degradê: as três cores da marca de cima a baixo. */
.linha-tempo::before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:2px;border-radius:2px;background:linear-gradient(180deg,var(--green),var(--slate),var(--gold));}
.marco{position:relative;padding-bottom:34px;}
.marco:last-child{padding-bottom:0;}
.marco::before{content:"";position:absolute;left:-34px;top:6px;width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid var(--slate);box-shadow:0 0 0 4px #fff;}
.marco:first-child::before{border-color:var(--green);}
.marco:last-child::before{border-color:var(--gold);}
.marco-ano{display:inline-block;font-family:var(--fh);font-weight:800;font-size:13px;letter-spacing:.6px;text-transform:uppercase;color:var(--gold-deep);background:var(--gold-soft);padding:5px 13px;border-radius:50px;margin-bottom:10px;}
.marco-corpo h3{font-size:1.12rem;margin-bottom:8px;}
.marco-corpo p{margin:0;color:var(--muted);line-height:1.65;}
.marco-nota{margin-top:8px !important;font-size:12.5px;color:var(--gray);font-style:italic;}

@media (max-width:768px){
	.trajetoria{padding:60px 0;}
	.linha-tempo{padding-left:28px;}
	.marco::before{left:-28px;width:14px;height:14px;}
}

@media (prefers-reduced-motion:reduce){
	.missao-card,.valor-card{transition:none;}
	.missao-card:hover,.valor-card:hover{transform:none;}
}

/* =========================================================
   Versão 1.4: ritmo de cor nas páginas internas
   ========================================================= */

:root{
	--azul-suave:#EDF3FC;   /* tinta clara do azul da marca */
	--gold-claro:#FFB877;   /* laranja clareado para texto sobre fundo escuro (4,9:1) */
}

/* A faixa de números nas páginas internas ganha tinta azul clara. Antes era
   branca, entre um cabeçalho azul e um texto em fundo branco, e sumia. */
.numeros.numeros-interna{background:var(--azul-suave);}
.numeros-interna .numero-item{background:#fff;}
.numeros-interna .numero-item:hover{background:#fff;}
.numeros-interna .numeros-title{margin-bottom:34px;}

/* ---------- Faixa escura ----------
   Missão e visão sobre o azul da marca. É a seção mais declaratória da página,
   e o fundo escuro sustenta esse peso sem precisar aumentar a fonte. */
.secao-escura{
	position:relative;overflow:hidden;
	background:linear-gradient(125deg,var(--navy-deep) 0%,var(--navy) 60%,#2D5CAE 100%);
	color:#fff;
}
.secao-escura::before{
	content:"";position:absolute;inset:0;pointer-events:none;
	background:
		radial-gradient(560px circle at 92% 12%,rgba(1,144,81,.26),transparent 62%),
		radial-gradient(480px circle at 6% 92%,rgba(253,109,0,.20),transparent 60%);
}
.secao-escura .container{position:relative;z-index:2;}
.secao-escura .section-title{color:#fff;}
.secao-escura .section-eyebrow{color:var(--gold-claro);}

/* Os cards continuam brancos: o contraste com o fundo é o que dá o destaque. */
.secao-escura .missao-card{border-color:rgba(255,255,255,.14);}
.secao-escura .missao-card:hover{box-shadow:0 18px 44px rgba(0,0,0,.22);}

/* ---------- Faixa azul clara ----------
   Fecha a página antes do rodapé escuro, e é onde estão as atividades do dia a
   dia, que é o assunto mais concreto de todos. Usa a mesma tinta clara da
   faixa de números, para o site ter um azul de fundo só. */
.secao-azul{background:var(--azul-suave);}
.secao-azul .section-eyebrow{color:var(--blue);}
.secao-azul .atividades-lista li{background:#fff;}
.secao-azul .atividades-lista li::before{background:var(--blue);}

/* ---------- Ritmo da página Quem Somos ----------
   Sequência de fundos: azul escuro, azul claro, branco, azul escuro, cinza,
   branco, verde claro. Nenhum par de faixas vizinhas repete a cor. */
.valores{background:var(--bg);}
.trajetoria{background:#fff;}
.pagina-corpo{background:#fff;}

/* Duas faixas coloridas vizinhas dispensam o respiro dobrado da emenda. */
.secao-escura + .valores{padding-top:78px;}

@media (max-width:768px){
	.secao-escura{padding:60px 0;}
	.secao-azul{padding:60px 0;}
}

/* =========================================================
   Versão 1.5: faixa rolante de parceiros
   ========================================================= */

.parceiros{padding:76px 0 84px;overflow:hidden;}

/* A faixa sangra até as bordas da tela: é o que dá a sensação de que os logos
   continuam para fora do enquadramento. */
.parceiros-faixa{position:relative;width:100%;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);}

.parceiros-trilho{display:flex;width:max-content;animation:parceiros-desliza 38s linear infinite;}

/* Anda exatamente metade: a lista está impressa duas vezes, então nesse ponto
   a segunda cópia ocupa a posição inicial da primeira e o laço não tem emenda. */
@keyframes parceiros-desliza{
	from{transform:translateX(0);}
	to{transform:translateX(-50%);}
}

/* Passar o mouse pausa, para dar tempo de ler ou clicar num parceiro. */
.parceiros-faixa:hover .parceiros-trilho,
.parceiros-faixa:focus-within .parceiros-trilho{animation-play-state:paused;}

.parceiros-lista{list-style:none;display:flex;align-items:center;margin:0;padding:0;flex:0 0 auto;}

/* A altura precisa caber o logo ampliado do hover sem que a faixa corte por
   cima: 84px de logo a 1,4 dão 118px. */
.parceiro-item{display:flex;align-items:center;justify-content:center;min-height:124px;padding:14px 30px;flex:0 0 auto;}
.parceiro-item a{display:flex;align-items:center;justify-content:center;}

/* Cinza que ganha cor no hover. A transição é do filtro e da opacidade juntas,
   senão um logo já acinzentado de origem não mostra diferença nenhuma.

   Os dois limites juntos, e não só a altura: os logos vão de quadrado (DU99,
   CEASA, Afrô Tchê) a faixas quatro vezes mais largas que altas (Fundação
   Geração, INMETRO, CMDCA). Limitando só a altura, o quadrado ocupava um quarto
   da área do mais largo e sumia ao lado dele. Com o teto de largura, o largo
   para de crescer e o quadrado usa a altura inteira: a diferença de área cai de
   4,7x para cerca de 2,4x. */
.parceiro-item img{
	max-height:84px;max-width:176px;width:auto;display:block;
	filter:grayscale(1);opacity:.55;
	transition:filter .3s ease,opacity .3s ease,transform .3s ease;
}

/* O hover é o que salva o logo pequeno: além da cor, ele cresce o bastante
   para ser lido. O z-index tira o ampliado de baixo dos vizinhos. */
.parceiro-item:hover img{filter:grayscale(0);opacity:1;transform:scale(1.4);}
.parceiro-item:hover,.parceiro-item:focus-within{position:relative;z-index:2;}
.parceiro-item a:focus-visible img{transform:scale(1.4);}

/* Sem logo, o nome vira a marca: letra grande, mesmo tratamento de cinza. */
.parceiro-nome{
	font-family:var(--fh);font-weight:800;font-size:clamp(1.1rem,1.7vw,1.45rem);
	line-height:1.2;letter-spacing:-.01em;text-align:center;max-width:16ch;
	text-wrap:balance;
	color:var(--gray);
	transition:color .3s ease,transform .3s ease;
}
.parceiro-item:hover .parceiro-nome{color:var(--navy);transform:scale(1.04);}

.parceiro-item a:focus-visible{outline:3px solid var(--gold);outline-offset:6px;border-radius:8px;}
.parceiro-item a:focus-visible img{filter:grayscale(0);opacity:1;}
.parceiro-item a:focus-visible .parceiro-nome{color:var(--navy);}

@media (max-width:768px){
	.parceiros{padding:56px 0 60px;}
	/* Sem hover no toque, o tamanho de partida é o único que existe. */
	.parceiro-item{min-height:96px;padding:12px 20px;}
	.parceiro-item img{max-height:64px;max-width:132px;}
	.parceiros-trilho{animation-duration:28s;}
}

/* Movimento automático é justamente o que incomoda quem pediu menos animação.
   A faixa vira uma tira que a pessoa arrasta no ritmo dela. */
@media (prefers-reduced-motion:reduce){
	.parceiros-trilho{animation:none;width:auto;overflow-x:auto;scroll-snap-type:x proximity;}
	.parceiros-trilho .parceiros-lista[aria-hidden="true"]{display:none;}
	.parceiro-item{scroll-snap-align:center;}
	.parceiros-faixa{-webkit-mask-image:none;mask-image:none;}
	.parceiro-item img,.parceiro-nome{transition:none;}
}

/* Nomes com mais de três palavras longas ocupariam quatro linhas na mesma
   altura dos logos. Encolher a letra mantém a faixa com altura uniforme. */
.parceiro-item.sem-logo .parceiro-nome{font-size:clamp(.95rem,1.5vw,1.28rem);}
.parceiros-lista{align-items:stretch;}
.parceiro-item{align-self:center;}

/* =========================================================
   Versão 1.6: seção de contato e campos do formulário
   ========================================================= */

/* ---------- Contato com efeito de luz ----------
   O gradiente sozinho ficava chapado numa área grande. Os brilhos radiais dão
   profundidade e trazem o verde e o laranja da marca para uma seção que era
   só azul. */
.contato{
	position:relative;overflow:hidden;padding:96px 0;
	background:linear-gradient(125deg,var(--navy-deep) 0%,var(--navy) 48%,#2D5CAE 100%);
	color:#fff;
}
.contato::before{
	content:"";position:absolute;inset:0;pointer-events:none;
	background:
		radial-gradient(680px circle at 78% 6%,rgba(1,144,81,.30),transparent 60%),
		radial-gradient(560px circle at 2% 88%,rgba(253,109,0,.24),transparent 58%),
		radial-gradient(900px circle at 50% 120%,rgba(76,126,204,.32),transparent 62%);
}
/* Brilho suave atrás do cartão, que o descola do fundo sem usar sombra. */
.contato::after{
	content:"";position:absolute;right:-6%;top:12%;width:52%;height:76%;pointer-events:none;
	background:radial-gradient(closest-side,rgba(255,255,255,.10),transparent);
}
.contato .container{position:relative;z-index:2;}

/* ---------- Campos com borda ----------
   A versão só com traço embaixo deixava dúvida sobre onde clicar, ainda mais
   no e-mail e no telefone, que ficam lado a lado. Voltam a ter moldura. */
.form-contato input[type=text],
.form-contato input[type=email],
.form-contato input[type=tel],
.form-contato select,
.form-contato textarea{
	width:100%;padding:13px 15px;
	border:1.5px solid var(--line);border-bottom:1.5px solid var(--line);border-radius:11px;
	font:inherit;font-size:15px;color:var(--ink);background:#FBFCFE;
	transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease;
}
.form-contato input::placeholder,.form-contato textarea::placeholder{color:var(--gray);}
.form-contato input:hover,.form-contato select:hover,.form-contato textarea:hover{border-color:var(--gray);background:#fff;}
.form-contato input:focus,.form-contato select:focus,.form-contato textarea:focus{
	outline:none;border-color:var(--green);background:#fff;
	box-shadow:0 0 0 3px rgba(1,144,81,.15);
}
.form-contato textarea{resize:vertical;min-height:112px;padding-top:12px;}

/* Com a moldura de volta, a seta do select precisa recuar da borda. */
.form-contato select{background-position:right 13px center;padding-right:40px;}
.form-contato select:hover,.form-contato select:focus{background-color:#fff;}

.form-contato .campo{margin-bottom:18px;}
.campo-duplo{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;}

/* Caixa de consentimento no mesmo tom dos campos, para ler como parte do
   formulário e não como aviso solto. */
.campo-consentimento{margin-top:2px;}
.campo-consentimento label{padding:12px 14px;background:#FBFCFE;border:1.5px solid var(--line);border-radius:11px;transition:border-color .2s ease;}
.campo-consentimento label:hover{border-color:var(--gray);}
.campo-consentimento input:focus-visible{outline:3px solid var(--gold);outline-offset:2px;}

/* ---------- Áreas de atuação: cores em rodízio ----------
   O ícone alterna as três cores da marca e o card assume a mesma tinta no
   hover. No hover o ícone inverte, fundo cheio e traço branco, senão ele
   sumiria dentro do card já tingido. */
.atuacao-card.is-verde .atuacao-icon{background:var(--green-soft);color:var(--green);}
.atuacao-card.is-verde:hover{background:var(--green-soft);border-color:var(--green);}
.atuacao-card.is-verde:hover .atuacao-icon{background:var(--green);color:#fff;}
/* Título assume o tom escuro da cor, e não o tom cheio: sobre a tinta clara do
   card, o tom cheio ficaria abaixo do contraste mínimo para texto. */
.atuacao-card.is-verde:hover h3{color:var(--green-dark);}

.atuacao-card.is-azul .atuacao-icon{background:#E9F0FB;color:var(--blue);}
.atuacao-card.is-azul:hover{background:#E9F0FB;border-color:var(--slate);}
.atuacao-card.is-azul:hover .atuacao-icon{background:var(--blue);color:#fff;}
.atuacao-card.is-azul:hover h3{color:var(--navy);}

.atuacao-card.is-laranja .atuacao-icon{background:var(--gold-soft);color:var(--gold);}
.atuacao-card.is-laranja:hover{background:var(--gold-soft);border-color:var(--gold);}
.atuacao-card.is-laranja:hover .atuacao-icon{background:var(--gold);color:#fff;}
.atuacao-card.is-laranja:hover h3{color:var(--gold-deep);}

/* O corpo escurece um pouco no hover, o mesmo em qualquer uma das três cores:
   dar cor também ao parágrafo deixaria o card inteiro tingido e cansativo. */
.atuacao-card:hover p{color:var(--ink);}

@media (prefers-reduced-motion:reduce){
	.atuacao-icon,.atuacao-card h3,.atuacao-card p{transition:none;}
}

/* ---------- Banner: alvos de clique ----------
   A régua de bolinhas ocupa a largura toda e fica acima dos painéis, então
   engolia o clique numa faixa horizontal inteira do banner. Só as bolinhas
   precisam receber ponteiro. */
.hero-dots{pointer-events:none;}
.hero-dot{pointer-events:auto;}

/* O painel que sai deixa de receber clique na hora, mas ainda leva 0,7s
   sumindo. Marcá-lo como inerte deixa explícito que aquilo já não é alvo,
   inclusive para leitor de tela e para o tabulador. */
.hero-panel:not(.is-visible){pointer-events:none;}

/* ---------- Espaço reservado ao aviso de cookies ----------
   O aviso é fixo no rodapé da tela, em z-index 9999. Enquanto está aberto, o
   plugin marca a raiz com .tem-aviso-cookies e publica a altura dele em
   --altura-aviso-cookies. Aqui o que fica embaixo sobe.

   Sem isso, o botão da cena da marca no banner, que é centralizado e cai na
   parte baixa da tela, ficava debaixo do aviso e não recebia clique. */
/* O aviso virou um cartão no canto inferior esquerdo, com 430px. Em tela larga
   ele já não passa pelo centro, então só o botão de voltar ao topo, que divide
   o mesmo canto, precisa subir. */
.tem-aviso-cookies .back-to-top{bottom:calc(var(--altura-aviso-cookies, 0px) + 34px);}

/* Abaixo de 640px o cartão ocupa a largura toda e volta a cobrir o centro.
   Aí sim o conteúdo do banner e as bolinhas precisam subir. */
@media (max-width:640px){
	.tem-aviso-cookies .hero-panel{padding-bottom:calc(var(--altura-aviso-cookies, 0px) + 20px);}
	.tem-aviso-cookies .hero-dots{bottom:calc(var(--altura-aviso-cookies, 0px) + 30px);}
	.tem-aviso-cookies .social-float{bottom:calc(var(--altura-aviso-cookies, 0px) + 26px);}
}

.hero-panel,.hero-dots,.back-to-top,.social-float{transition:padding-bottom .3s ease,bottom .3s ease;}

/* O painel do banner já anima opacidade e deslocamento; a linha acima não pode
   apagar essa transição. */
.hero-panel{transition:opacity .7s ease,transform .7s ease,padding-bottom .3s ease;}

/* Com o espaço reservado ao aviso, o conteúdo da cena da marca precisa caber
   no que sobra, em vez de transbordar para cima do cabeçalho. O limite de
   altura faz a marca encolher junto. */

/* ---------- Alternância de fundo na home ----------
   As seções revezam branco e cinza claro, para dar limite visível entre uma e
   outra sem precisar de linha divisória. As de destaque, banner, apoio e
   contato, ficam fora do revezamento porque já têm cor própria.

   A sequência fica: escuro, cinza, branco, cinza, branco, verde, branco,
   cinza, escuro. Nenhum par vizinho repete.

   Declarado aqui em bloco, e não espalhado em cada seção, para a próxima
   pessoa conseguir conferir a alternância de uma olhada só. */
.numeros,
.atuacao,
.noticias{background:var(--bg);}

.sobre,
.projetos,
.parceiros{background:#fff;}

/* =========================================================
   Versão 2.0: página de projeto
   ========================================================= */

/* ---------- Capa ----------
   As regras herdadas do tema modelo somavam padding na seção e no container:
   230px em cima contra 154px embaixo. Daí a folga desigual. Agora o
   espaçamento fica num lugar só. */
.projeto-single .projeto-hero{padding:88px 0 140px;}
.projeto-hero-inner{padding-top:0;padding-bottom:0;max-width:860px;}
.projeto-hero .breadcrumb{margin-bottom:18px;}
.projeto-hero .hero-tag{margin-bottom:16px;}
.projeto-hero-inner h1{margin-bottom:16px;}

/* O cartão de números sobe 52px sobre a capa, então o espaço de baixo precisa
   ser o de cima mais essa sobreposição: 88 + 52 = 140. Assim a folga que a
   pessoa enxerga em volta do título fica igual dos dois lados. */
.projeto-numeros{margin-top:-52px;position:relative;z-index:5;padding:0;}
.projeto-numeros-grid{
	display:grid;grid-template-columns:repeat(3,1fr);gap:0;
	background:#fff;border-radius:20px;border-top:4px solid var(--gold);
	box-shadow:0 18px 46px rgba(39,79,153,.14);overflow:hidden;
}

/* ---------- Números alinhados ----------
   O valor numérico e o valor em texto têm tamanhos bem diferentes, e o texto
   ainda quebra em duas linhas. Sem uma altura comum, cada rótulo parava numa
   altura, o que dava a impressão de desalinho. A caixa do valor tem altura
   fixa e centraliza o conteúdo, então os rótulos saem todos na mesma linha. */
.projeto-numeros .numero-item{
	display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
	text-align:center;padding:32px 22px;background:#fff;border:0;border-radius:0;
	border-right:1px solid var(--line);
}
.projeto-numeros .numero-item:last-child{border-right:none;}
.projeto-numeros .numero-item:hover{transform:none;box-shadow:none;background:#fff;}
.projeto-numeros .numero-item::before{display:none;}

/* O rótulo ocupa a primeira linha em todos os itens, então os três começam na
   mesma altura. A caixa do valor tem altura fixa para o item de logo e os de
   texto terminarem juntos, mesmo com o logo tendo proporção diferente. */
.projeto-numeros .numero-rotulo{
	display:block;font-size:11.5px;letter-spacing:.6px;text-transform:uppercase;
	color:var(--gray);font-weight:700;margin-bottom:14px;
}
.projeto-numeros .numero-valor{display:grid;place-items:center;min-height:76px;margin:0;}
.projeto-numeros .numero-valor.numero-texto{font-size:1.22rem;line-height:1.32;font-weight:700;max-width:16ch;}

.projeto-numeros .numero-logo{display:grid;place-items:center;min-height:76px;}
.projeto-numeros .numero-logo img{max-height:64px;max-width:180px;width:auto;display:block;}

@media (max-width:860px){
	.projeto-single .projeto-hero{padding:64px 0 116px;}
	.projeto-numeros-grid{grid-template-columns:1fr;}
	.projeto-numeros .numero-item{border-right:none;border-bottom:1px solid var(--line);padding:24px 20px;}
	.projeto-numeros .numero-item:last-child{border-bottom:none;}
	.projeto-numeros .numero-valor,
	.projeto-numeros .numero-logo{min-height:0;}
	.projeto-numeros .numero-rotulo{margin-bottom:10px;}
}

/* ---------- Texto e ficha ---------- */
.projeto-conteudo{padding:78px 0 70px;}
.projeto-conteudo-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:56px;align-items:start;}
.conteudo-texto p{font-size:1.03rem;line-height:1.75;color:var(--ink);}

.projeto-ficha{position:sticky;top:96px;background:var(--bg);border-radius:20px;padding:28px 26px;}
.projeto-ficha h2{font-size:1.05rem;margin-bottom:18px;color:var(--navy);}
.projeto-ficha dl{margin:0 0 22px;display:grid;gap:16px;}
.projeto-ficha dt{font-size:11.5px;letter-spacing:.5px;text-transform:uppercase;color:var(--gray);font-weight:700;margin-bottom:3px;}
.projeto-ficha dd{margin:0;font-size:14.5px;font-weight:600;color:var(--navy);line-height:1.45;}

@media (max-width:980px){
	.projeto-conteudo-grid{grid-template-columns:1fr;gap:38px;}
	.projeto-ficha{position:static;}
}

/* ---------- Galeria ---------- */
.projeto-galeria{padding:78px 0;background:var(--bg);}
.galeria-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;}
.galeria-item{margin:0;background:#fff;border-radius:16px;overflow:hidden;border:1px solid var(--line);transition:transform .25s ease,box-shadow .25s ease;}
.galeria-item:hover{transform:translateY(-4px);box-shadow:var(--shadow);}

/* ---------- Outros projetos ---------- */
.projeto-outros{padding:78px 0;}

/* ---------- Lista de projetos: card resumido ---------- */
.projeto-linha-rodape{display:flex;align-items:baseline;gap:20px;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px solid var(--line);}
.projeto-linha-numero{margin-left:auto;font-size:13.5px;color:var(--muted);text-align:right;}
.projeto-linha-numero strong{font-family:var(--fh);font-weight:800;font-size:1.45rem;color:var(--green);margin-right:6px;}

@media (max-width:560px){
	
}

/* ---------- Botão do card de projeto ----------
   Era um link de texto e passava despercebido no fim do card. Botão sólido no
   azul da marca: destaca sem competir com o número, que já é verde. */
.projeto-linha-btn{padding:11px 22px;font-size:14.5px;gap:7px;}
.projeto-linha-btn span{transition:transform .25s ease;}
.projeto-linha-btn:hover span{transform:translateX(3px);}

@media (max-width:560px){
	.projeto-linha-btn{width:100%;}
	.projeto-linha-numero{margin-left:0;}
}

@media (prefers-reduced-motion:reduce){
	.projeto-linha-btn span{transition:none;}
	.projeto-linha-btn:hover span{transform:none;}
}

/* ---------- Contraste dos botões ----------
   Medido no navegador. Os valores anteriores não passavam no mínimo de 4,5:1
   da WCAG para texto de botão:

     branco sobre o verde cheio    4,11:1   reprovado
     branco sobre o laranja cheio  2,85:1   reprovado

   O verde escurece um passo e continua sendo o verde da marca. O laranja
   mantém a cor vibrante, que é o que a comunidade reconhece, e troca o texto
   branco por texto escuro. */
.btn-primary{background:var(--green-dark);border-color:var(--green-dark);color:#fff;}
.btn-primary:hover{background:#016336;border-color:#016336;color:#fff;}

/* Botão branco sobre a foto, com o azul da marca no texto: 7,88:1. No hover
   inverte para o azul cheio com texto branco, mesma razão de contraste ao
   contrário. As duas pontas passam com folga. */
.hero .btn-primary,.projeto-cta .btn-primary{background:#fff;border-color:#fff;color:var(--navy);}
.hero .btn-primary:hover,.projeto-cta .btn-primary:hover{background:var(--navy);border-color:#fff;color:#fff;}

/* O verde do WhatsApp é a cor da marca deles e não se muda. Com texto escuro
   ele passa; com texto branco, não. */
.btn-whats{background:#25D366;border-color:#25D366;color:#0B2E19;}
.btn-whats:hover{background:#1DA851;border-color:#1DA851;color:#fff;}
.apoio .btn-whats{background:#fff;color:var(--green-dark);border-color:#fff;}

/* Laranja no hover. Texto escuro junto, porque o laranja cheio com branco fica
   em 2,85:1 e reprova; com o tom de texto do site vai a 5,06:1.
   Duas classes no seletor para vencer o hover herdado de .btn-navy. */
.btn.projeto-linha-btn:hover{background:var(--gold);border-color:var(--gold);color:var(--ink);}

/* ---------- Filtro de projetos por área ----------
   Botões de verdade, não um <select>: com sete opções, ver todas de uma vez
   custa menos que abrir uma lista. A contagem ao lado do nome evita o clique
   que não leva a nada. */
.projetos-filtro{margin-bottom:38px;padding-bottom:28px;border-bottom:1px solid var(--line);}
.projetos-filtro-rotulo{display:block;font-size:11.5px;letter-spacing:.6px;text-transform:uppercase;color:var(--gray);font-weight:700;margin-bottom:14px;}
.projetos-filtro ul{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;}

.filtro-opcao{
	display:inline-flex;align-items:center;gap:8px;
	padding:9px 16px;border-radius:50px;
	border:1.5px solid var(--line);background:#fff;
	font-size:14px;font-weight:600;color:var(--muted);
	transition:border-color .2s ease,background-color .2s ease,color .2s ease;
}
.filtro-opcao:hover{border-color:var(--navy);color:var(--navy);}
.filtro-opcao:focus-visible{outline:3px solid var(--gold);outline-offset:3px;}

.filtro-opcao.is-ativa{background:var(--navy);border-color:var(--navy);color:#fff;}
.filtro-opcao.is-ativa:hover{background:var(--navy-2);border-color:var(--navy-2);color:#fff;}

.filtro-conta{
	display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;
	border-radius:50px;background:var(--bg);color:var(--muted);
	font-size:12px;font-weight:700;line-height:1;
}
.filtro-opcao.is-ativa .filtro-conta{background:rgba(255,255,255,.22);color:#fff;}

.projetos-vazio{text-align:center;color:var(--muted);padding:40px 0;font-size:15px;}

@media (max-width:560px){
	.projetos-filtro{margin-bottom:28px;padding-bottom:22px;}
	.filtro-opcao{font-size:13.5px;padding:8px 13px;}
}

@media (prefers-reduced-motion:reduce){
	.filtro-opcao{transition:none;}
}

/* Com o filtro logo abaixo do cabeçalho, os 80px de respiro da seção somavam
   demais: filtro é controle, não conteúdo, e pede menos distância do topo. */
.pagina-corpo.tem-filtro{padding-top:40px;}

/* =========================================================
   Página Como apoiar
   ========================================================= */

.pagina-hero-acoes{margin-top:26px;}
.btn-grande{padding:16px 30px;font-size:16px;}
.btn-icone{display:inline-flex;align-items:center;}
.btn-icone svg{width:20px;height:20px;display:block;}

/* ---------- Formas de ajudar ---------- */
.apoiar-formas{padding:88px 0;}
.formas-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.forma-card{background:#fff;border-radius:20px;padding:30px 26px;border:1px solid rgba(255,255,255,.14);transition:transform .25s ease,box-shadow .25s ease;}
.forma-card:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(0,0,0,.22);}
.forma-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;margin-bottom:18px;}
.forma-icon svg{width:26px;height:26px;}
.forma-card h3{font-size:1.1rem;font-weight:700;margin-bottom:10px;}
.forma-card p{font-size:14.5px;color:var(--muted);margin:0;line-height:1.6;}

.forma-card.is-verde .forma-icon{background:var(--green-soft);color:var(--green);}
.forma-card.is-verde h3{color:var(--green-dark);}
.forma-card.is-azul .forma-icon{background:#E9F0FB;color:var(--blue);}
.forma-card.is-azul h3{color:var(--navy);}
.forma-card.is-laranja .forma-icon{background:var(--gold-soft);color:var(--gold);}
.forma-card.is-laranja h3{color:var(--gold-deep);}

/* ---------- Como doar ---------- */
.apoiar-como{padding:84px 0;background:var(--azul-suave);}
.doacao-dados{display:grid;gap:18px;margin-bottom:30px;}
.doacao-bloco{background:#fff;border-radius:18px;padding:26px 28px;border-left:4px solid var(--green);}
.doacao-bloco h3{font-size:1rem;letter-spacing:.4px;text-transform:uppercase;color:var(--gray);margin-bottom:10px;}
.doacao-chave{font-family:var(--fh);font-weight:800;font-size:1.35rem;color:var(--navy);margin:0 0 8px;word-break:break-all;}
.doacao-detalhe{font-size:14px;color:var(--muted);margin:0 0 4px;}

.apoiar-sem-dados{max-width:62ch;margin:0 auto 30px;text-align:center;color:var(--muted);line-height:1.7;}
.apoiar-canais{display:grid;gap:12px;max-width:420px;margin:0 auto;}
.apoiar-horario{margin:20px 0 0;text-align:center;font-size:13.5px;color:var(--gray);}

/* ---------- Nota em destaque na lista de projetos ---------- */
.projetos-nota-destaque{
	display:grid;grid-template-columns:44px 1fr;gap:18px;align-items:start;
	margin:48px 0 0;padding:26px 28px;
	background:var(--gold-soft);border-radius:18px;border-left:4px solid var(--gold);
}
.nota-icone{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--gold);color:#fff;}
.nota-icone svg{width:24px;height:24px;}
.projetos-nota-destaque h2{font-size:1.05rem;color:var(--gold-deep);margin-bottom:8px;}
.projetos-nota-destaque p{margin:0;font-size:14.5px;color:var(--ink);line-height:1.65;}

.projetos-apoio{margin-top:0;}

@media (max-width:980px){
	.formas-grid{grid-template-columns:repeat(2,1fr);}
}

@media (max-width:640px){
	.apoiar-formas,.apoiar-como{padding:60px 0;}
	.formas-grid{grid-template-columns:1fr;}
	.projetos-nota-destaque{grid-template-columns:1fr;gap:14px;padding:22px;}
}

@media (prefers-reduced-motion:reduce){
	.forma-card{transition:none;}
	.forma-card:hover{transform:none;}
}

/* Faixa de números com três indicadores em vez de quatro. */
.numeros-grid-3{grid-template-columns:repeat(3,1fr);}

@media (max-width:900px){
	.numeros-grid-3{grid-template-columns:1fr;}
}

/* ---------- Botão do WhatsApp ----------
   Texto branco, como pedido. Sobre o verde claro do ícone, `#25D366`, branco
   mede 1,98:1 e fica praticamente ilegível. O fundo passa a ser `#075E54`, o
   verde escuro da própria identidade do WhatsApp, onde o branco vai a 7,67:1.
   Continua sendo a cor deles, e agora dá para ler. */
.btn-whats{background:#075E54;border-color:#075E54;color:#fff;}
.btn-whats:hover{background:#05463F;border-color:#05463F;color:#fff;}

/* Sobre a faixa verde da home o botão inverte, e ali o texto é escuro. */
.apoio .btn-whats{background:#fff;color:var(--green-dark);border-color:#fff;}
.apoio .btn-whats:hover{background:var(--gold);color:#fff;border-color:var(--gold);}

/* =========================================================
   Ajustes da página de Notícias
   ========================================================= */

/* Busca sem o filete laranja no topo: a página já tem o filete tricolor logo
   acima, no cabeçalho, e dois na sequência viravam listra sobre listra. */
.noticias-busca{border-top:1px solid var(--line);}

/* O respiro de 64px vinha do tema modelo e, com a busca logo abaixo do
   cabeçalho, sobrava. Busca é controle, e pede menos distância do topo. */
.content-area{padding:40px 22px 72px;}

/* Botão Ler mais no rodapé do card. Empurrado para baixo para os botões
   alinharem entre cards de texto desigual. */
.post-card-corpo{display:flex;flex-direction:column;flex:1;}
.post-card-corpo p{flex:1 1 auto;}
.post-card-link{
	align-self:flex-start;margin-top:16px;
	display:inline-flex;align-items:center;gap:7px;
	font-family:var(--fh);font-weight:600;font-size:14px;color:var(--navy);
	padding:9px 18px;border-radius:50px;border:1.5px solid var(--line);
	transition:background-color .25s ease,border-color .25s ease,color .25s ease;
}
.post-card-link span{transition:transform .25s ease;}
.post-card-link:hover{background:var(--navy);border-color:var(--navy);color:#fff;}
.post-card-link:hover span{transform:translateX(3px);}
.post-card-link:focus-visible{outline:3px solid var(--gold);outline-offset:3px;}

/* Imagem da notícia menor: em 'large' ela ocupava a largura toda da coluna e
   empurrava o texto para baixo da dobra. */
.single-thumb{max-width:560px;margin:22px 0 26px;}
.single-thumb img{margin:0;border-radius:16px;}

@media (prefers-reduced-motion:reduce){
	.post-card-link,.post-card-link span{transition:none;}
	.post-card-link:hover span{transform:none;}
}

/* =========================================================
   Compartilhar a notícia
   ========================================================= */

/* Coluna estreita à esquerda do texto. Vira faixa horizontal acima do artigo
   quando a tela não comporta as duas colunas. */
.single-layout{display:grid;grid-template-columns:64px minmax(0,1fr);gap:36px;align-items:start;}

.compartilhar{position:sticky;top:104px;}
.compartilhar-titulo{
	font-size:10.5px;letter-spacing:.8px;text-transform:uppercase;
	color:var(--gray);font-weight:700;margin:0 0 14px;text-align:center;
}
.compartilhar-lista{list-style:none;display:flex;flex-direction:column;gap:10px;margin:0;padding:0;}

.compartilhar-botao{
	display:grid;place-items:center;width:44px;height:44px;margin:0 auto;
	border-radius:50%;border:1.5px solid var(--line);background:#fff;
	color:var(--muted);cursor:pointer;
	transition:background-color .25s ease,border-color .25s ease,color .25s ease,transform .25s ease;
}
.compartilhar-botao svg{width:19px;height:19px;display:block;}
.compartilhar-botao:hover{transform:translateY(-2px);color:#fff;border-color:transparent;}
.compartilhar-botao:focus-visible{outline:3px solid var(--gold);outline-offset:3px;}

/* Cada rede assume a própria cor só no hover. Em repouso a coluna fica
   neutra, para não competir com o conteúdo da notícia. */
.compartilhar-botao.is-whatsapp:hover{background:#075E54;}
.compartilhar-botao.is-facebook:hover{background:#1877F2;}
.compartilhar-botao.is-linkedin:hover{background:#0A66C2;}
.compartilhar-botao.is-email:hover{background:var(--navy);}
.compartilhar-botao.is-copiar:hover{background:var(--gold-deep);}
.compartilhar-botao.is-copiado{background:var(--green-dark);border-color:var(--green-dark);color:#fff;}

.compartilhar-aviso{
	margin:12px 0 0;text-align:center;font-size:11px;font-weight:600;
	color:var(--green-dark);line-height:1.3;
}

@media (max-width:900px){
	.single-layout{grid-template-columns:1fr;gap:20px;}
	.compartilhar{position:static;padding-bottom:18px;border-bottom:1px solid var(--line);}
	.compartilhar-titulo{text-align:left;}
	.compartilhar-lista{flex-direction:row;flex-wrap:wrap;}
	.compartilhar-botao{margin:0;}
	.compartilhar-aviso{text-align:left;}
}

@media (prefers-reduced-motion:reduce){
	.compartilhar-botao{transition:none;}
	.compartilhar-botao:hover{transform:none;}
}

/* Quando a cópia falha, o aviso muda de tom e cabe mais texto. */
.compartilhar-aviso.is-erro{color:var(--gold-deep);font-weight:600;font-size:11.5px;}

/* =========================================================
   Movimento do banner
   ========================================================= */

/* ---------- As fotos ----------
   Aproximação lenta enquanto a cena está no ar. A animação começa do zero toda
   vez que a classe volta, então cada passagem pela cena recomeça o movimento.

   `will-change` avisa o navegador para preparar a camada antes de animar, o
   que evita o tranco no primeiro quadro em imagem de tela cheia. */
.hero-slide{will-change:transform,opacity;}
.hero-slide.is-active{animation:hero-aproxima 9s ease-out both;}

/* Sentidos alternados, para a sequência não parecer um único movimento
   repetido cinco vezes. */
.hero-slide:nth-child(2n).is-active{animation-name:hero-afasta;}
.hero-slide:nth-child(3n).is-active{animation-name:hero-desliza;}

@keyframes hero-aproxima{
	from{transform:scale(1) translate3d(0,0,0);}
	to{transform:scale(1.09) translate3d(0,-1%,0);}
}

@keyframes hero-afasta{
	from{transform:scale(1.09) translate3d(0,0,0);}
	to{transform:scale(1) translate3d(0,0,0);}
}

@keyframes hero-desliza{
	from{transform:scale(1.07) translate3d(-1.5%,0,0);}
	to{transform:scale(1.07) translate3d(1.5%,0,0);}
}

/* ---------- A marca ----------
   Duas camadas empilhadas. A colorida ocupa o espaço; a branca fica por cima,
   no mesmo lugar, e some. */
/* A largura mora no invólucro, não nas imagens.
   Com `width:min(400px,74%)` nas duas, a porcentagem de cada uma se media
   contra uma referência diferente: a de dentro do fluxo contra o invólucro,
   que por sua vez se ajustava ao conteúdo, e a absoluta contra o invólucro já
   dimensionado. As duas camadas saíam com tamanhos e posições diferentes.

   Fixando a largura aqui e usando 100% nas imagens, elas ocupam exatamente a
   mesma caixa. */
.hero-marca{position:relative;display:block;width:min(400px,74%);margin:0 auto;line-height:0;}
.hero-marca img{width:100%;height:auto;max-height:min(340px,36vh);object-fit:contain;
	filter:drop-shadow(0 10px 30px rgba(0,0,0,.5));}

.hero-marca-branca{position:absolute;inset:0;pointer-events:none;}

/* A cena só anima quando está no ar. Sem isso, a marca das cenas escondidas
   já teria terminado a animação quando a pessoa chegasse nelas. */
.hero-panel-logo.is-visible .hero-marca-cor{animation:hero-marca-entra 1.1s ease-out both;}
.hero-panel-logo.is-visible .hero-marca-branca{animation:hero-marca-some 1.6s ease-out .9s both;}

@keyframes hero-marca-entra{
	from{opacity:0;transform:scale(.94);}
	to{opacity:1;transform:scale(1);}
}

@keyframes hero-marca-some{
	from{opacity:1;}
	to{opacity:0;}
}

/* O texto abaixo da marca entra depois dela, para a leitura ter uma ordem. */
.hero-panel-logo.is-visible .hero-logo-lema{animation:hero-sobe .9s ease-out .6s both;}
.hero-panel-logo.is-visible .hero-actions{animation:hero-sobe .9s ease-out .9s both;}

@keyframes hero-sobe{
	from{opacity:0;transform:translateY(14px);}
	to{opacity:1;transform:none;}
}

/* ---------- Menos movimento ----------
   Quem pediu para reduzir animação recebe a cena parada e a marca já colorida,
   sem nada aparecendo aos poucos. */
@media (prefers-reduced-motion:reduce){
	.hero-slide.is-active,
	.hero-slide:nth-child(2n).is-active,
	.hero-slide:nth-child(3n).is-active{animation:none;transform:none;}

	.hero-panel-logo.is-visible .hero-marca-cor,
	.hero-panel-logo.is-visible .hero-logo-lema,
	.hero-panel-logo.is-visible .hero-actions{animation:none;}

	.hero-marca-branca{display:none;}
}



/* =========================================================
   Pedido de comprovante de doação
   ========================================================= */

.recibo-chamada{margin-top:28px;padding:22px 24px;border:1px dashed var(--line);border-radius:var(--radius);text-align:center;}
.recibo-chamada-texto{margin:0 0 14px;color:var(--muted);font-size:15px;}

/* O diálogo cobre a página inteira e rola sozinho: em tela baixa, com o teclado
   do celular aberto, o conteúdo precisa caber em algum lugar. */
.recibo-modal{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:20px;overflow-y:auto;}
.recibo-fundo{position:absolute;inset:0;background:rgba(12,30,46,.62);backdrop-filter:blur(2px);}
.recibo-caixa{position:relative;z-index:1;width:min(520px,100%);background:#fff;border-radius:20px;padding:30px 28px 26px;box-shadow:0 24px 70px rgba(18,42,64,.34);}
body.tem-modal{overflow:hidden;}

.recibo-x{position:absolute;top:14px;right:14px;width:36px;height:36px;display:grid;place-items:center;border:none;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer;transition:background-color .2s,color .2s;}
.recibo-x:hover{background:var(--line);color:var(--navy);}
.recibo-x svg{width:18px;height:18px;}
.recibo-x:focus-visible{outline:3px solid var(--gold);outline-offset:2px;}

/* Régua de passos */
.recibo-regua{list-style:none;display:flex;align-items:center;justify-content:center;gap:8px;margin:0 0 22px;padding:0;}
.recibo-passo-marca{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--line);color:var(--muted);font-family:var(--fh);font-weight:700;font-size:13px;transition:background-color .25s,color .25s;}
.recibo-passo-marca.is-atual{background:var(--navy);color:#fff;}
.recibo-passo-marca.is-feito{background:var(--green);color:#fff;}

.recibo-titulo{font-size:1.32rem;line-height:1.25;color:var(--navy);margin:0 0 6px;}
.recibo-apoio{margin:0 0 18px;color:var(--muted);font-size:14.5px;line-height:1.55;}
.recibo-dupla{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.recibo-form .campo{margin-bottom:16px;}
.recibo-form .obrig{color:var(--gold);}

/* Mesma moldura do formulário de contato. Sem isto o navegador desenha o
   campo do jeito dele: Arial, borda em relevo e dois pixels de respiro. */
.recibo-form label{display:block;font-size:13px;font-weight:600;color:var(--navy);margin-bottom:7px;letter-spacing:.1px;}
.recibo-form input[type=text],
.recibo-form input[type=email],
.recibo-form input[type=tel],
.recibo-form input[type=date]{
	width:100%;padding:13px 15px;
	border:1.5px solid var(--line);border-radius:11px;
	font:inherit;font-size:15px;color:var(--ink);background:#FBFCFE;
	transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease;
}
.recibo-form input::placeholder{color:var(--gray);}
.recibo-form input:hover{border-color:var(--gray);background:#fff;}
.recibo-form input:focus{outline:none;border-color:var(--green);background:#fff;box-shadow:0 0 0 3px rgba(1,144,81,.15);}
.recibo-form input.tem-erro{border-color:#b32d2e;background:#fffafa;}

/* O campo de data traz um botãozinho de calendário próprio do navegador. Não dá
   para trocá-lo por um desenho nosso sem perder o seletor que vem junto, então
   ele fica, só mais discreto e alinhado à cor do texto de apoio. */
.recibo-form input[type=date]{appearance:none;-webkit-appearance:none;}
.recibo-form input[type=date]::-webkit-calendar-picker-indicator{
	opacity:.45;cursor:pointer;padding:2px;transition:opacity .2s ease;
}
.recibo-form input[type=date]:hover::-webkit-calendar-picker-indicator,
.recibo-form input[type=date]:focus::-webkit-calendar-picker-indicator{opacity:.9;}

/* Aceite: a caixa do navegador é pequena demais para o dedo e não combina com
   nada em volta. Esta é desenhada, com área de toque de 20px. */
.campo-aceite label{display:flex;align-items:flex-start;gap:11px;font-weight:400;font-size:13.5px;color:var(--muted);line-height:1.55;margin-bottom:0;cursor:pointer;}
.campo-aceite input[type=checkbox]{
	appearance:none;-webkit-appearance:none;
	width:20px;height:20px;flex:0 0 auto;margin:1px 0 0;position:relative;cursor:pointer;
	border:1.5px solid var(--line);border-radius:6px;background:#FBFCFE;
	transition:background-color .2s ease,border-color .2s ease;
}
.campo-aceite input[type=checkbox]:hover{border-color:var(--gray);}
.campo-aceite input[type=checkbox]:checked{background:var(--green);border-color:var(--green);}
.campo-aceite input[type=checkbox]:checked::after{
	content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;
	border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg);
}
.campo-aceite input[type=checkbox]:focus-visible{outline:3px solid var(--gold);outline-offset:2px;}

.recibo-erro{margin:0 0 14px;padding:10px 13px;border-radius:10px;background:#fdecec;color:#8a2224;font-size:14px;}

/* O .btn-ghost nasceu para o banner, que tem foto escura atrás: é texto branco
   com borda clara. Dentro do diálogo, que é branco, ele sumia — o botão Voltar
   existia, ocupava lugar e recebia clique, mas ninguém o via. */
.recibo-acoes .btn-ghost{color:var(--navy);border-color:var(--line);background:#fff;}
.recibo-acoes .btn-ghost:hover{background:var(--bg);border-color:var(--gray);color:var(--navy);}

.recibo-acoes{display:flex;gap:10px;justify-content:flex-end;margin-top:20px;}
.recibo-acoes-centro{justify-content:center;}
.recibo-acoes .btn{flex:0 0 auto;}
.is-enviando{opacity:.6;pointer-events:none;}

/* A isca some da tela sem sumir do DOM: display:none faria o robô ignorá-la. */
.recibo-isca{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

.recibo-fim{text-align:center;}
.recibo-anim{width:150px;height:150px;margin:0 auto 6px;}
.recibo-agradece{margin:14px 0 0;font-family:var(--fh);font-weight:600;color:var(--navy);font-size:15.5px;}

@media (max-width:480px){
	.recibo-caixa{padding:26px 20px 22px;border-radius:16px;}
	.recibo-dupla{grid-template-columns:1fr;gap:0;}
	.recibo-acoes{flex-direction:column-reverse;}
	.recibo-acoes .btn{width:100%;}
}

@media (prefers-reduced-motion:reduce){
	.recibo-passo-marca,.recibo-x{transition:none;}
}

/* =========================================================
   Doação: dados em destaque e pedido de comprovante ao lado
   ========================================================= */

/* Os dados da conta ocupam a coluna larga e o convite ao comprovante fica ao
   lado, na mesma faixa. Abaixo de 900px viram uma coluna só, com o comprovante
   por último: no celular o que importa é achar a chave primeiro. */
.doacao-destaque{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:22px;align-items:start;}
.doacao-destaque .doacao-dados{margin-bottom:0;}

.doacao-bloco-pix{border-left-color:var(--gold);}

/* A conta bancária é para ser lida em pedaços, não de um fôlego só. */
.doacao-chave-conta{font-size:1.08rem;line-height:1.5;word-break:normal;}

/* Os cartões de dados são brancos sobre fundo azul claro. Se este fosse branco
   também, viraria mais um deles — e ele não é informação, é a ação. Escuro, se
   lê como botão grande, e os brilhos em verde e laranja repetem os do cabeçalho
   das páginas internas, para não parecer peça de outro site. */
.doacao-destaque .recibo-chamada{
	position:relative;overflow:hidden;
	margin-top:0;height:100%;
	display:flex;flex-direction:column;justify-content:center;align-items:center;gap:0;
	border:none;border-radius:18px;padding:30px 26px;text-align:center;color:#fff;
	background:linear-gradient(150deg,var(--navy-deep) 0%,var(--navy) 58%,#2D5CAE 100%);
}
.doacao-destaque .recibo-chamada::before{
	content:"";position:absolute;inset:0;pointer-events:none;
	background:
		radial-gradient(300px circle at 88% 6%,rgba(1,144,81,.34),transparent 62%),
		radial-gradient(260px circle at 6% 98%,rgba(253,109,0,.28),transparent 60%);
}
.doacao-destaque .recibo-chamada > *{position:relative;z-index:1;}

.recibo-chamada-icone{
	display:grid;place-items:center;width:52px;height:52px;margin-bottom:14px;
	border-radius:15px;background:rgba(255,255,255,.12);color:#fff;
}
.recibo-chamada-icone svg{width:25px;height:25px;}

.recibo-chamada-titulo{font-size:1.16rem;font-weight:800;color:#fff;margin:0 0 7px;line-height:1.3;}
.doacao-destaque .recibo-chamada-texto{margin:0 0 20px;font-size:14.5px;line-height:1.55;color:rgba(255,255,255,.9);max-width:30ch;}

/* Branco cheio, como todo botão principal do site sobre fundo escuro.
   O primeiro desenho era laranja da marca com texto branco, que é bonito e
   reprova: medido, dá 2,85:1, contra os 4,5 exigidos. O laranja é claro demais
   para carregar texto branco — serve de moldura, não de fundo de botão. */
.btn-recibo{background:#fff;border-color:#fff;color:var(--navy);font-weight:700;}
/* O hover não troca as cores: nem laranja com branco (2,85:1) nem laranja com
   o azul da marca (2,76:1) passam em AA. O laranja entra como moldura, que é
   decoração e não precisa carregar texto, e o aviso de que dá para clicar vem
   da borda, da elevação e da sombra. */
.btn-recibo:hover{background:#fff;border-color:var(--gold);color:var(--navy);transform:translateY(-2px);box-shadow:0 10px 22px rgba(12,30,46,.28);}
.btn-recibo:focus-visible{outline:3px solid var(--gold);outline-offset:3px;}

@media (prefers-reduced-motion:reduce){
	.btn-recibo:hover{transform:none;}
}

@media (max-width:900px){
	.doacao-destaque{grid-template-columns:1fr;}
	.doacao-destaque .recibo-chamada{height:auto;}
}

/* Doação de itens: seção própria, porque item se combina e dinheiro se transfere */
.apoiar-itens{padding:76px 0 84px;}
.apoiar-itens-texto{margin:0 0 26px;text-align:center;color:var(--muted);font-size:15.5px;line-height:1.6;}

@media (max-width:768px){
	.apoiar-itens{padding:56px 0 60px;}
}

/* ---------- Dados da conta, um por linha, com copiar ---------- */

.doacao-linha{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 8px;}
.doacao-linha .doacao-chave{margin:0;}

.doacao-conta{margin:0;display:grid;gap:12px;}
.doacao-campo{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.doacao-campo dt{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--gray);margin:0 0 2px;flex:1 1 100%;}
.doacao-campo dd{margin:0;display:flex;align-items:center;justify-content:space-between;gap:12px;flex:1 1 100%;}
.doacao-valor{font-family:var(--fh);font-weight:800;font-size:1.18rem;color:var(--navy);line-height:1.3;}

/* O botão fica discreto até a pessoa precisar dele: é ação de apoio, não a
   informação em si. */
.doacao-copiar{
	display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;
	padding:7px 12px;border:1.5px solid var(--line);border-radius:9px;
	background:#fff;color:var(--muted);cursor:pointer;
	font-family:var(--fh);font-weight:600;font-size:12.5px;
	transition:border-color .2s ease,color .2s ease,background-color .2s ease;
}
.doacao-copiar:hover{border-color:var(--green);color:var(--green);}
.doacao-copiar:focus-visible{outline:3px solid var(--gold);outline-offset:2px;}
.doacao-copiar-icone{display:grid;place-items:center;width:15px;height:15px;}
.doacao-copiar-icone svg{width:100%;height:100%;}

.doacao-copiar.is-copiado{border-color:var(--green);background:var(--green);color:#fff;}
.doacao-copiar.is-falhou{border-color:var(--gold);color:var(--gold);}

@media (max-width:420px){
	.doacao-copiar-texto{position:absolute;left:-9999px;}
	.doacao-copiar{padding:8px 10px;}
}

@media (prefers-reduced-motion:reduce){
	.doacao-copiar{transition:none;}
}

/* =========================================================
   Portal da transparência
   ========================================================= */

.transp-pilares{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:32px;}
.transp-pilar{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px 22px;}
.transp-pilar-icone{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--azul-suave);color:var(--navy);margin-bottom:14px;}
.transp-pilar-icone svg{width:23px;height:23px;}
.transp-pilar h3{font-size:1rem;font-weight:700;color:var(--navy);margin:0 0 8px;}
.transp-pilar p{margin:0;font-size:14px;color:var(--muted);line-height:1.55;}

.transp-documentos{padding:76px 0 84px;background:var(--azul-suave);}
.transp-ano{margin-bottom:34px;}
.transp-ano:last-child{margin-bottom:0;}

/* O ano é âncora de leitura: quem procura um documento procura primeiro o ano. */
.transp-ano-titulo{
	font-size:1.5rem;font-weight:800;color:var(--navy);margin:0 0 16px;padding-bottom:10px;
	border-bottom:2px solid var(--line);
}

.transp-lista{list-style:none;margin:0;padding:0;display:grid;gap:10px;}

/* A linha inteira é o link, e não só o título: alvo grande erra menos, no dedo
   e no mouse. */
.transp-link{
	display:flex;align-items:center;gap:15px;
	background:#fff;border:1px solid var(--line);border-radius:13px;padding:16px 18px;
	text-decoration:none;color:inherit;
	transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.transp-link:hover{border-color:var(--green);box-shadow:var(--shadow-sm);transform:translateY(-2px);}
.transp-link:focus-visible{outline:3px solid var(--gold);outline-offset:3px;}

.transp-item-icone{display:grid;place-items:center;width:42px;height:42px;flex:0 0 auto;border-radius:11px;background:var(--azul-suave);color:var(--navy);}
.transp-item-icone svg{width:20px;height:20px;}
.transp-item-corpo{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1 auto;}
.transp-item-titulo{font-family:var(--fh);font-weight:700;font-size:15.5px;color:var(--navy);line-height:1.35;}
.transp-item-meta{font-size:13px;color:var(--muted);}
.transp-sep{margin:0 6px;}
.transp-item-acao{display:grid;place-items:center;width:34px;height:34px;flex:0 0 auto;color:var(--gray);transition:color .2s ease;}
.transp-item-acao svg{width:19px;height:19px;}
.transp-link:hover .transp-item-acao{color:var(--green);}

.transp-vazio{background:#fff;border:1px dashed var(--line);border-radius:16px;padding:34px 30px;text-align:center;}
.transp-vazio-titulo{font-family:var(--fh);font-weight:700;font-size:1.08rem;color:var(--navy);margin:0 0 10px;}
.transp-vazio p{margin:0 auto;max-width:56ch;color:var(--muted);line-height:1.6;}

.transp-pedir{padding:70px 0 78px;text-align:center;}
.transp-pedir-titulo{font-size:1.45rem;color:var(--navy);margin:0 0 10px;}
.transp-pedir-texto{margin:0 auto 24px;max-width:58ch;color:var(--muted);line-height:1.6;}
.transp-pedir-acoes{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
.transp-cnpj{margin:22px 0 0;font-size:13px;color:var(--gray);}

@media (max-width:900px){
	.transp-pilares{grid-template-columns:1fr;}
}

@media (max-width:640px){
	.transp-documentos{padding:56px 0 60px;}
	.transp-link{padding:14px;gap:12px;}
	.transp-item-acao{display:none;}
	.transp-pedir-acoes .btn{width:100%;}
}

@media (prefers-reduced-motion:reduce){
	.transp-link{transition:none;}
	.transp-link:hover{transform:none;}
}

/* ---------- Submenu do topo ----------
   "Sobre" agrupa Quem Somos e Transparência. O item pai não leva a lugar
   nenhum sozinho: é rótulo de grupo, e por isso abre no clique também, e não
   só no hover, que não existe em tela de toque. */
.nav-menu li.menu-item-has-children{position:relative;}
.nav-menu .sub-menu{
	/* O menu do topo é flex em linha, e o submenu herdava essa direção: as duas
	   opções saíam lado a lado dentro da caixinha. Aqui a direção é declarada,
	   e não herdada. */
	display:flex;flex-direction:column;align-items:stretch;
	list-style:none;margin:0;padding:8px;
	position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(-6px);
	min-width:210px;background:#fff;border:1px solid var(--line);border-radius:14px;
	box-shadow:0 16px 40px rgba(18,42,64,.16);
	opacity:0;visibility:hidden;transition:opacity .2s ease,transform .2s ease,visibility .2s ease;z-index:60;
}
/* So no desktop: no celular o submenu e lista fixa dentro da gaveta, e reacende-lo
   por foco o deixaria pintado com a gaveta fechada. */
@media(min-width:981px){
	.nav-menu li.menu-item-has-children:hover > .sub-menu,
	.nav-menu li.menu-item-has-children:focus-within > .sub-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
}
.nav-menu .sub-menu li{display:block;width:100%;}
.nav-menu .sub-menu a{display:block;padding:10px 14px;border-radius:9px;font-size:14.5px;color:var(--navy);white-space:nowrap;}
.nav-menu .sub-menu a:hover,.nav-menu .sub-menu a:focus-visible{background:var(--azul-suave);color:var(--navy);}

/* Setinha que avisa que há mais coisa embaixo. */
.nav-menu li.menu-item-has-children > a::after{
	content:"";display:inline-block;width:7px;height:7px;margin-left:7px;vertical-align:1px;
	border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);
}

/* No menu lateral do celular não há hover nem espaço para flutuar: o submenu
   vira uma lista recuada, sempre aberta. */
@media (max-width:980px){
	.nav-menu .sub-menu{
		/* visibility:inherit, e nao visible: a gaveta se esconde com visibility:hidden, e
		   um filho que declara visible volta a ser pintado mesmo com o pai escondido.
		   Era o que deixava Quem Somos e Transparencia aparecendo fora da tela, a
		   direita, com o menu fechado. */
		/* display:none guarda o submenu ate o clique. A setinha ao lado de Sobre
		   passou a abrir e fechar de verdade, em vez de ser enfeite, e a gaveta
		   ficou tres linhas mais curta. Sem JavaScript a regra de .is-aberto nunca
		   entra, entao o bloco abaixo devolve o submenu aberto: menu que nao abre e
		   pior que menu comprido. */
		display:none;position:static;transform:none;opacity:1;visibility:inherit;
		min-width:0;border:none;box-shadow:none;background:transparent;
		/* Sem barra vertical: dentro da gaveta ela lia como divisoria de secao, nao como
		   recuo. O recuo do texto ja diz que os dois itens pertencem a Sobre. */
		padding:0;margin:0;
	}
	/* A seta fica: na gaveta ela e o unico aviso de que Sobre abre duas opcoes.
	   Encostada na direita da linha, apontando para baixo. */
	.nav-menu li.menu-item-has-children > a{display:flex;align-items:center;justify-content:space-between;gap:10px;}
	.nav-menu li.menu-item-has-children > a::after{display:block;flex:0 0 auto;margin:0;width:8px;height:8px;vertical-align:0;transform:rotate(45deg) translate(-2px,-2px);}
	/* Sem a barra, o recuo do texto e o que diz que os dois itens sao filhos de Sobre:
	   44px contra os 24px das linhas de primeiro nivel. Altura de toque menor que a
	   dos pais, para a hierarquia aparecer tambem no peso da linha. */
	.nav-menu .sub-menu a{padding:14px 24px 14px 44px;font-size:15px;font-weight:500;}
	/* Com a gaveta aberta o submenu aparece por declaracao, e nao so por heranca.
	   A gaveta anima a propria visibility, e depender da heranca atravessando tres
	   niveis no meio de uma transicao e fragil. Fechada, o inherit acima manda. */
	.main-navigation.open .nav-menu .sub-menu{visibility:visible;}
	.nav-menu li.menu-item-has-children.is-aberto > .sub-menu{display:flex;}

	/* A seta gira para cima quando o submenu esta aberto. */
	.nav-menu li.menu-item-has-children > a::after{transition:transform .2s ease;}
	.nav-menu li.menu-item-has-children.is-aberto > a::after{transform:rotate(-135deg) translate(-2px,-2px);}

	/* Gaveta mais enxuta: linhas um pouco mais baixas, sem descer dos 48px que
	   o dedo precisa para acertar. */
	.main-navigation ul a{padding:15px 24px;}
	.nav-menu .sub-menu a{padding:12px 24px 12px 44px;}

	@media (prefers-reduced-motion:reduce){
		.nav-menu li.menu-item-has-children > a::after{transition:none;}
	}
}

@media (prefers-reduced-motion:reduce){
	.nav-menu .sub-menu{transition:none;}
}

/* ---------- Transparência na home ---------- */

.home-transp{padding:78px 0;background:var(--navy);color:#fff;position:relative;overflow:hidden;}
.home-transp::before{
	content:"";position:absolute;inset:0;pointer-events:none;
	background:
		radial-gradient(520px circle at 92% 10%,rgba(1,144,81,.28),transparent 62%),
		radial-gradient(420px circle at 4% 94%,rgba(253,109,0,.22),transparent 60%);
}
.home-transp-inner{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:46px;align-items:center;}
/* O dourado da marca sobre o azul da marca dá 2,76:1, medido. Este é o mesmo
   laranja clareado até passar em AA: 5,11:1, e continua lendo como dourado. */
.home-transp .section-eyebrow{color:#ffc49a;}
.home-transp .section-title{color:#fff;margin-bottom:14px;}
.home-transp-texto p{color:rgba(255,255,255,.88);line-height:1.65;margin:0 0 24px;max-width:52ch;}
.home-transp .btn-outline-gold{border-color:var(--gold);color:#fff;}
.home-transp .btn-outline-gold:hover{background:var(--gold);color:var(--navy);}

.home-transp-lista{list-style:none;margin:0;padding:0;display:grid;gap:14px;}
.home-transp-lista li{display:flex;align-items:center;gap:14px;background:rgba(255,255,255,.08);border-radius:14px;padding:16px 18px;font-size:14.5px;line-height:1.45;}
.home-transp-icone{display:grid;place-items:center;width:40px;height:40px;flex:0 0 auto;border-radius:12px;background:rgba(255,255,255,.12);color:#fff;}
.home-transp-icone svg{width:20px;height:20px;}

@media (max-width:900px){
	.home-transp-inner{grid-template-columns:1fr;gap:32px;}
}

@media (max-width:768px){
	.home-transp{padding:58px 0;}
}

/* ---------- Botão secundário da chamada de apoio ----------
   O .btn-ghost é texto branco sem fundo. Sobre o verde claro do gradiente ele
   mede 4,11:1, abaixo dos 4,5 exigidos, e a borda a 60% de branco fica em 2,19,
   o que dá ao botão o aspecto de desbotado. Aqui ele ganha fundo próprio: o
   verde escuro do mesmo gradiente, onde o branco sobe para 5,79:1. De quebra
   cria hierarquia com o botão branco ao lado, em vez de competir com ele. */
.apoio .btn-ghost{background:var(--green-dark);border-color:#fff;color:#fff;}
.apoio .btn-ghost:hover{background:#fff;border-color:#fff;color:var(--green-dark);}
