/* ===================================================================
   FUNDAÇÃO REDE BRASIL — v2: tema escuro premium + nó 3D no scroll
=================================================================== */
:root{
  --navy: #16335C;
  --navy-deep: #081123;
  --navy-mid: #0F2140;
  --green: #2E9563;
  --green-light: #58C68A;
  --gold: #E0B84A;
  --ink: #ECEBE4;
  --ink-soft: #B7BFCB;
  --ink-dim: #7C8798;
  --line: rgba(236,235,228,0.12);
  --radius: 20px;

  --font-display: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  --font-body: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: "IBM Plex Mono", monospace;

  --ease: cubic-bezier(.16,.8,.24,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--navy-deep);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3{ font-family:var(--font-display); color:#fff; line-height:1.14; margin:0 0 .5em; font-weight:800; letter-spacing:-.02em; }
p{ margin:0 0 1em; color:var(--ink-soft); }
.wrap{ max-width:1180px; margin:0 auto; padding:0 28px; }

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

.cursor-dot{
  position:fixed; width:26px; height:26px; border-radius:50%; border:1px solid rgba(224,184,74,.55);
  pointer-events:none; z-index:9998; transform:translate(-50%,-50%); transition:opacity .3s, transform .18s ease;
  display:none;
}
@media (hover:hover) and (pointer:fine){ .cursor-dot{ display:block; } }

/* ---------------- HEADER ---------------- */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:500;
  backdrop-filter:blur(12px);
  background:rgba(8,17,35,.5);
  border-bottom:1px solid transparent;
  transition:border-color .3s var(--ease), background .3s var(--ease);
}
.site-header.scrolled{ border-color:var(--line); background:rgba(8,17,35,.85); }
.header-inner{ display:flex; align-items:center; justify-content:space-between; padding:14px 28px; }
.brand{ display:flex; align-items:center; gap:12px; }
.brand-mark{ width:42px; height:42px; object-fit:cover; border-radius:10px; }
.brand-name{ font-family:var(--font-display); font-size:.82rem; color:#fff; line-height:1.25; }
.brand-name strong{ font-size:1rem; }
.main-nav{ display:flex; align-items:center; gap:30px; font-size:.92rem; font-weight:500; }
.main-nav a{ color:var(--ink-soft); opacity:.85; transition:opacity .2s, color .2s; }
.main-nav a:hover{ opacity:1; color:var(--gold); }
.nav-cta{
  background:var(--gold); color:var(--navy-deep) !important; padding:10px 20px; border-radius:100px; opacity:1 !important;
  font-weight:700; transition:background .25s var(--ease), transform .25s var(--ease);
}
.nav-cta:hover{ background:#fff; transform:translateY(-2px); }
.nav-toggle{ display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:6px; }
.nav-toggle span{ width:24px; height:2px; background:#fff; border-radius:2px; }

/* ---------------- HERO — nó 3D que se forma no scroll ---------------- */
.hero{
  position:relative; min-height:230vh;
  background:
    radial-gradient(ellipse 900px 600px at 50% 0%, rgba(46,149,99,.14), transparent 60%),
    radial-gradient(ellipse 700px 500px at 85% 30%, rgba(224,184,74,.10), transparent 60%),
    var(--navy-deep);
}
.hero-stage{
  position:sticky; top:0; height:100vh; display:flex; align-items:center; justify-content:center;
  perspective:1400px; overflow:hidden;
}
.knot-svg{ width:min(78vh, 640px); height:min(78vh, 640px); overflow:visible; transform-style:preserve-3d; }
.strand{ fill:none; stroke-width:16; stroke-linecap:round; filter:drop-shadow(0 0 18px rgba(0,0,0,.25)); }
.strand-navy{ stroke:#3E6FB8; }
.strand-green{ stroke:var(--green-light); }
.strand-gold{ stroke:var(--gold); }

.hero-inner{
  position:absolute; top:0; left:0; right:0; height:100vh; z-index:2;
  display:flex; flex-direction:column; justify-content:center; pointer-events:none;
  opacity:0; transition:opacity .3s linear;
}
.hero-inner .btn{ pointer-events:auto; }
.eyebrow{
  font-family:var(--font-mono); text-transform:uppercase; letter-spacing:.14em; font-size:.72rem;
  color:var(--gold); font-weight:500; margin-bottom:18px; display:block;
}
.eyebrow.center{ text-align:center; }
h1{ font-size:clamp(2.6rem, 6vw, 4.4rem); max-width:14ch; }
.hero-lede{ font-size:1.15rem; max-width:52ch; margin-bottom:34px; color:var(--ink-soft); }
.hero-actions{ display:flex; gap:16px; flex-wrap:wrap; }

.btn{
  display:inline-flex; align-items:center; justify-content:center; padding:15px 30px; border-radius:100px;
  font-weight:700; font-size:.95rem; cursor:pointer; border:1px solid transparent;
  transition:transform .25s var(--ease), background .25s var(--ease), border-color .25s var(--ease), color .25s var(--ease);
}
.btn-primary{ background:var(--gold); color:var(--navy-deep); }
.btn-primary:hover{ background:#fff; transform:translateY(-3px); }
.btn-ghost{ border-color:rgba(236,235,228,.35); color:#fff; }
.btn-ghost:hover{ background:#fff; color:var(--navy-deep); transform:translateY(-3px); border-color:#fff; }
.btn-light{ background:var(--gold); color:var(--navy-deep); }
.btn-light:hover{ background:#fff; }

.scroll-hint{
  position:absolute; bottom:34px; left:50%; transform:translateX(-50%); z-index:3;
  display:flex; flex-direction:column; align-items:center; gap:10px;
  font-family:var(--font-mono); font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-dim);
  writing-mode:vertical-rl; pointer-events:none;
}
.scroll-hint span{ width:1px; height:46px; background:var(--ink-dim); opacity:.5;
  animation:scrollLine 2.4s ease infinite; }
@keyframes scrollLine{ 0%{transform:scaleY(0); transform-origin:top;} 50%{transform:scaleY(1); transform-origin:top;} 51%{transform-origin:bottom;} 100%{transform:scaleY(0); transform-origin:bottom;} }

/* ---------------- SECTIONS GENERIC ---------------- */
.section{ padding:130px 0; position:relative; background:var(--navy-deep); }
.section h2{ font-size:clamp(1.9rem, 3.4vw, 2.6rem); max-width:20ch; }
.center{ text-align:center; margin-left:auto; margin-right:auto; }
.pilares h2.center, .impacto h2.center, .programas h2.center{ max-width:22ch; margin-bottom:64px; }

.two-col{ display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
.col-media{ position:relative; }
.col-media img{ border-radius:var(--radius); aspect-ratio:4/5; object-fit:cover; box-shadow:0 40px 80px -20px rgba(0,0,0,.6); }
.media-tag{
  position:absolute; bottom:-18px; left:-18px; background:var(--navy-mid); padding:12px 18px; border-radius:12px;
  font-family:var(--font-mono); font-size:.72rem; box-shadow:0 14px 30px rgba(0,0,0,.4); color:var(--gold);
  border:1px solid var(--line);
}
.mini-stats{ display:flex; flex-direction:column; gap:16px; margin-top:34px; padding-top:28px; border-top:1px solid var(--line); }
.mini-stats > div{ display:grid; grid-template-columns:140px 1fr; gap:18px; align-items:baseline; }
.mini-stats strong{ display:block; font-family:var(--font-display); font-size:1rem; color:var(--gold); font-weight:700; }
.mini-stats span{ font-size:.85rem; color:var(--ink-soft); }

/* reveal on scroll (fade) */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in{ opacity:1; transform:translateY(0); }

/* reveal 3D — cards rise up out of the page */
.reveal-3d, .reveal-flip{ opacity:0; transition:opacity .9s var(--ease), transform .9s var(--ease); }
.reveal-3d{ transform:perspective(1200px) translateY(60px) rotateX(-18deg) scale(.94); transform-origin:bottom center; }
.reveal-flip{ transform:perspective(1200px) rotateX(60deg) translateY(40px); transform-origin:bottom center; }
.reveal-3d.in, .reveal-flip.in{ opacity:1; transform:perspective(1200px) translateY(0) rotateX(0) scale(1); }

/* ---------------- PILARES ---------------- */
.pilares{ background:var(--navy-mid); }
.pilares-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.pilar-card{
  background:linear-gradient(160deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
  border-radius:var(--radius); padding:34px 26px; border:1px solid var(--line);
  transform-style:preserve-3d; will-change:transform; transition:box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.pilar-card:hover{ box-shadow:0 30px 60px -24px rgba(0,0,0,.6); border-color:rgba(224,184,74,.35); }
.pilar-icon{ width:52px; height:52px; display:flex; align-items:center; justify-content:center; border-radius:14px;
  background:linear-gradient(135deg, rgba(62,111,184,.18), rgba(46,149,99,.18)); margin-bottom:20px; }
.pilar-icon svg{ width:26px; height:26px; fill:none; stroke:var(--gold); stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }
.pilar-card h3{ font-size:1.12rem; margin-bottom:.4em; color:#fff; }
.pilar-card p{ font-size:.92rem; margin:0; }

/* ---------------- TRANSPARÊNCIA ---------------- */
.impacto-lede{ max-width:58ch; margin:0 auto 50px; text-align:center; color:var(--ink-soft); }
.impacto-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:26px; text-align:left; }
.impacto-item{ background:rgba(255,255,255,.04); border:1px solid var(--line); border-radius:var(--radius); padding:26px 22px;
  transform-style:preserve-3d; transition:border-color .3s var(--ease); }
.impacto-item:hover{ border-color:rgba(88,198,138,.4); }
.impacto-item strong{ display:block; font-size:1.05rem; color:var(--green-light); margin-bottom:8px; }
.impacto-item span{ font-size:.85rem; color:var(--ink-soft); line-height:1.5; }

/* ---------------- PROGRAMAS ---------------- */
.programas-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.programa-card{ border-radius:var(--radius); overflow:hidden; background:var(--navy-mid); border:1px solid var(--line);
  transform-style:preserve-3d; transition:box-shadow .3s var(--ease), border-color .3s var(--ease); }
.programa-card:hover{ box-shadow:0 30px 55px -24px rgba(0,0,0,.6); border-color:rgba(224,184,74,.3); }
.programa-media{ aspect-ratio:7/5; overflow:hidden; }
.programa-media img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); filter:saturate(.9) brightness(.92); }
.programa-card:hover .programa-media img{ transform:scale(1.06); }
.programa-card h3,.programa-card p{ padding:0 22px; }
.programa-card h3{ margin-top:22px; font-size:1.08rem; color:#fff; }
.programa-card p{ font-size:.9rem; padding-bottom:24px; }

/* ---------------- APOIE (spotlight cursor) ---------------- */
.apoie{ background:var(--navy-mid); overflow:hidden; }
.apoie h2{ max-width:16ch; }
.apoie-lede{ max-width:56ch; color:var(--ink-soft); }
.apoie-inner{ position:relative; z-index:2; }
.spotlight{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%), rgba(224,184,74,.14), transparent 70%);
  transition:background .1s linear;
}
.apoie-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin:50px 0 46px; }
.apoie-card{ background:rgba(255,255,255,.04); border:1px solid var(--line); border-radius:var(--radius); padding:30px 26px;
  transform-style:preserve-3d; }
.apoie-num{ font-family:var(--font-mono); color:var(--gold); font-size:.85rem; }
.apoie-card h3{ color:#fff; margin:14px 0 8px; font-size:1.08rem; }
.apoie-card p{ color:var(--ink-soft); font-size:.9rem; margin:0; }

/* ---------------- CONTATO ---------------- */
.contato-info{ list-style:none; padding:0; margin:26px 0 0; display:flex; flex-direction:column; gap:10px; font-family:var(--font-mono); font-size:.85rem; color:var(--gold); }
.col-form{ display:flex; flex-direction:column; gap:18px; background:var(--navy-mid); padding:38px; border-radius:var(--radius); border:1px solid var(--line); }
.col-form label{ display:flex; flex-direction:column; gap:8px; font-size:.85rem; font-weight:600; color:#fff; }
.col-form input, .col-form select, .col-form textarea{
  font-family:var(--font-body); font-size:.95rem; padding:12px 14px; border-radius:10px; border:1px solid var(--line);
  background:var(--navy-deep); color:var(--ink); resize:vertical;
}
.col-form input:focus, .col-form select:focus, .col-form textarea:focus{ outline:2px solid var(--gold); outline-offset:1px; }
.col-form button{ align-self:flex-start; }
.hidden-field{ position:absolute; left:-9999px; }

/* ---------------- FOOTER ---------------- */
.site-footer{ background:var(--navy-mid); border-top:1px solid var(--line); padding:50px 0; }
.footer-inner{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:24px; }
.footer-brand{ display:flex; align-items:center; gap:14px; }
.footer-brand img{ width:38px; height:38px; border-radius:8px; object-fit:cover; }
.footer-brand p{ margin:0; font-size:.8rem; color:var(--ink-dim); }
.footer-nav{ display:flex; gap:22px; font-size:.85rem; flex-wrap:wrap; }
.footer-nav a{ color:var(--ink-soft); }
.footer-nav a:hover{ color:var(--gold); }
.footer-copy{ font-size:.78rem; color:var(--ink-dim); margin:0; }

/* ---------------- RESPONSIVE ---------------- */
@media (max-width:1000px){
  .pilares-grid{ grid-template-columns:repeat(2,1fr); }
  .programas-grid{ grid-template-columns:repeat(2,1fr); }
  .impacto-grid{ grid-template-columns:repeat(2,1fr); row-gap:36px; }
  .apoie-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:820px){
  .main-nav{
    position:fixed; inset:70px 16px auto 16px; background:var(--navy-mid); border-radius:16px; padding:20px;
    flex-direction:column; align-items:flex-start; gap:16px; box-shadow:0 24px 50px rgba(0,0,0,.5);
    transform:translateY(-14px); opacity:0; pointer-events:none; transition:all .3s var(--ease);
    border:1px solid var(--line);
  }
  .main-nav.open{ transform:translateY(0); opacity:1; pointer-events:auto; }
  .nav-toggle{ display:flex; }
  .two-col{ grid-template-columns:1fr; gap:44px; }
  .pilares-grid, .programas-grid, .impacto-grid, .apoie-grid{ grid-template-columns:1fr; }
  .section{ padding:90px 0; }
  .media-tag{ left:14px; bottom:14px; }
  .hero{ min-height:200vh; }
  .knot-svg{ width:88vw; height:88vw; }
}
