:root{
  --bg-main: rgb(13, 20, 26);        /* fundo principal das seções escuras */
  --bg-footer: rgb(20, 15, 7);       /* fundo do rodapé */
  --header-bg: rgba(13, 20, 26, 0.69);
  --white: rgb(255, 255, 255);
  --white-80: rgba(255, 255, 255, 0.8);
  --white-60: rgba(255, 255, 255, 0.6);
  --btn-primary-bg: rgb(13, 20, 26);
  --btn-primary-bg-hover: rgb(255, 255, 255);
  --btn-secondary-bg: rgb(92, 92, 92);
  --radius-btn: 10px;
  --maxw: 1224px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg-main);
  color:var(--white-80);
  font-family:'Open Sans', 'Lato', sans-serif;
  font-weight:300;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
h1,h2,h3,h4{
  font-family:'Open Sans', sans-serif;
  font-weight:400;
  margin:0;
  color:var(--white);
  line-height:1.3;
}
p{margin:0;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 16px;}
.eyebrow{
  font-family:'Open Sans', sans-serif;
  font-size:14px;
  font-weight:500;
  letter-spacing:normal;
  text-transform:uppercase;
  color:var(--white-80);
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:16px 40px;
  font-family:'Open Sans', sans-serif;
  font-size:16px;
  font-weight:700;
  letter-spacing:normal;
  text-transform:none;
  border:1px solid var(--white);
  border-radius:var(--radius-btn);
  transition:background-color .2s ease, color .2s ease;
  white-space:nowrap;
  cursor:pointer;
}
.btn-primary{
  background:var(--btn-primary-bg);
  color:var(--white);
}
.btn-primary:hover{background:var(--white); color:var(--bg-main);}
.btn-secondary{
  background:var(--btn-secondary-bg);
  color:var(--white);
  border-color:var(--white);
}
.btn-secondary:hover{background:var(--white); color:var(--bg-main);}

::selection{background:var(--white); color:var(--bg-main);}

/* ---------- HEADER ---------- */
header{
  position:sticky; top:0; left:0; right:0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:30px 16px;
  background:var(--header-bg);
  backdrop-filter:blur(4px);
}
header .logo img{height:43px; width:auto;}
nav.primary-nav{display:flex; align-items:center; gap:32px;}
nav.primary-nav a{
  font-size:16px;
  font-weight:400;
  color:var(--white);
}
nav.primary-nav a:hover{opacity:.75;}
.nav-cta{
  padding:12px 24px;
  border:1px solid var(--white);
  color:var(--white);
  font-size:14px; font-weight:700;
  border-radius:var(--radius-btn);
  transition:all .2s ease;
}
.nav-cta:hover{background:var(--white); color:var(--bg-main);}
.burger{display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; padding:6px;}
.burger span{width:24px; height:2px; background:var(--white);}

/* ---------- HERO ---------- */
.hero{
  position:relative;
  min-height:100vh;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background:var(--bg-main);
}
.hero video{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
}
.hero::after{
  content:'';
  position:absolute; inset:0;
  background:rgba(13,20,26,0.5);
}
.hero-content{
  position:relative; z-index:2;
  width:100%;
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 16px 80px;
}
.hero h1{
  color:var(--white);
  font-size:clamp(32px, 5vw, 48px);
  line-height:0.98;
  max-width:14ch;
  font-weight:300;
}
.hero h1 strong{font-weight:500;}
.hero-sub{
  color:var(--white);
  max-width:503px;
  font-size:18px;
  font-weight:300;
  margin:18px 0 32px;
}
.scroll-cue{display:none;}

/* ---------- PARTNER LOGOS (static, as on the live site) ---------- */
.partner-row{
  display:flex;
  align-items:center;
  gap:40px;
  margin-top:40px;
  flex-wrap:wrap;
}
.partner-row img{
  height:56px;
  width:auto;
}

/* ---------- SECTION SHELLS ---------- */
section{padding:80px 0;}
.section-tight{padding:56px 0;}
.split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:64px;
  align-items:center;
}
.split .media{position:relative;}
.media img{border-radius:0;}

h2.headline{
  font-size:clamp(26px, 3.5vw, 48px);
  font-weight:300;
  line-height:1.3;
  max-width:15ch;
}
h2.headline strong{font-weight:500;}
.lede{
  font-size:18px;
  font-weight:300;
  color:var(--white-80);
  max-width:52ch;
  margin-top:16px;
}

.manifesto{background:var(--bg-main);}
.manifesto-media{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  align-items:end;
}
.manifesto-media img:first-child{align-self:end;}

.quote-section{
  background:var(--bg-main);
  color:var(--white);
  padding:80px 0;
  position:relative;
}
.quote-section h2{
  font-size:clamp(26px, 3.5vw, 48px);
  color:var(--white);
  max-width:22ch;
  margin:16px auto 0;
  font-weight:300;
  text-align:center;
}
.quote-sub{
  max-width:835px;
  margin:24px auto 0;
  text-align:center;
  font-size:18px;
  font-weight:300;
  color:var(--white-80);
}
.quote-mark{
  font-family:'Open Sans', sans-serif;
  color:var(--white);
  font-size:clamp(24px,3vw,34px);
  font-weight:300;
  line-height:1.3;
}
.quote-mark strong{font-weight:400;}

/* ---------- HOVER CARDS ---------- */
.cards-section{padding-top:0;}
.hover-cards{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:24px;
}
.hover-card{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:16/10;
  overflow:hidden;
  border-radius:16px;
}
.hover-card img{
  width:100%; height:100%;
  object-fit:cover;
  display:block;
  filter:brightness(0);
  transition:.5s ease;
}
.hover-text{
  position:absolute; inset:0;
  display:flex; flex-direction:column; justify-content:center;
  padding:22px;
  color:var(--white);
  transition:.5s ease;
}
.hover-text h3{
  margin:0;
  font-size:22px;
  font-weight:500;
  letter-spacing:0.5px;
}
.hover-text p{
  margin:4px 0 0;
  font-size:14px;
  font-weight:300;
  opacity:.9;
}
.hover-card:hover img{filter:brightness(1); transform:scale(1.03);}
.hover-card:hover .hover-text{opacity:0;}

.pillar-item, .service-item{
  font-size:14px;
  font-weight:400;
  text-transform:uppercase;
  color:var(--white);
  margin:0 0 8px;
}

.pillars{margin-top:16px;}

.proof{background:var(--bg-main);}
.proof p b{color:var(--white); font-weight:500;}

.services{background:var(--bg-main); color:var(--white);}
.badge-row{margin-bottom:16px;}
.badge-row img{height:28px; width:auto;}

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

footer{
  background:var(--bg-footer);
  color:var(--white-80);
  padding:48px 0 24px;
}
.footer-top{
  display:flex; justify-content:space-between; align-items:flex-start;
  gap:32px; flex-wrap:wrap;
  padding-bottom:24px;
}
footer .logo img{height:24px; margin-bottom:12px;}
footer .foot-tag{max-width:320px; font-size:11px; font-weight:300; color:var(--white-80);}
.foot-nav{display:flex; gap:48px; flex-wrap:wrap;}
.foot-col h4{
  font-family:'Open Sans', sans-serif;
  font-size:11px; text-transform:uppercase;
  color:var(--white); margin-bottom:12px; font-weight:500;
}
.foot-col a{display:block; font-size:11px; font-weight:300; color:var(--white-80); margin-bottom:8px;}
.foot-col a:hover{color:var(--white);}
.social-row{display:flex; gap:32px;}
.social-row a{
  width:18px; height:18px;
  display:flex; align-items:center; justify-content:center;
}
.social-row svg{width:18px; height:18px; fill:var(--white);}
.foot-bottom{
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px;
  font-size:10px;
  font-weight:300;
  color:var(--white-80);
}

.reveal{opacity:0; transform:translateY(20px); transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1; transform:translateY(0);}

@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1; transform:none; transition:none;}
  .marquee-track{animation:none;}
  html{scroll-behavior:auto;}
}

a:focus-visible, button:focus-visible{
  outline:2px solid var(--white);
  outline-offset:3px;
}

@media (max-width: 980px){
  .split{grid-template-columns:1fr; gap:32px;}
  .split .media{order:-1;}
  nav.primary-nav{
    position:fixed; inset:0; top:0;
    background:var(--bg-main);
    flex-direction:column; justify-content:center; align-items:center;
    gap:28px;
    transform:translateX(100%);
    transition:transform .3s ease;
  }
  nav.primary-nav.open{transform:translateX(0);}
  nav.primary-nav a{font-size:18px;}
  .burger{display:flex; z-index:101;}
  .footer-top{flex-direction:column;}
}
