:root{
  --cor-preto:        #262626;
  --cor-azul-escuro:  #0a2088;
  --cor-azul-claro:   #337fc6;
  --cor-rosa:         #ad3eb5;
  --cor-branco:       #f4f4f4;

  --fonte-titulos: 'Bricolage Grotesque', sans-serif;
  --fonte-textos:  'Roboto', sans-serif;

  --container-largura: 75%;
  --container-max:     1360px;
}

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

html{
  scroll-behavior: smooth;
}

body{
  background: var(--cor-preto);
  color: var(--cor-branco);
  font-family: var(--fonte-textos);
  /* "clip" em vez de "hidden": corta o overflow horizontal igual,
     mas não cria uma nova scrolling box — o que quebraria o
     position:sticky usado no painel de imagem da seção Soluções. */
  overflow-x: clip;
}

/* Campo de estrelas fixo atrás de todo o conteúdo. Fica visível nas
   seções de fundo escuro (que ficam com background transparente) e
   some atrás das seções de fundo claro (Framework Arcus, Soluções). */
#starfield{
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

img{
  max-width: 100%;
  display: block;
}

a{
  color: var(--cor-azul-claro);
  text-decoration: none;
  transition: color .2s ease;
}
a:hover{
  color: var(--cor-rosa);
}

.container{
  width: var(--container-largura);
  max-width: var(--container-max);
  margin: 0 auto;
}

@media (max-width: 720px){
  :root{
    --container-largura: 88%;
  }
}

@keyframes heroFadeUp{
  from{ opacity:0; transform:translateY(16px); }
  to{ opacity:1; transform:translateY(0); }
}
@keyframes marqueeScroll{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}
@keyframes heroImgFloat{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(-16px); }
}

/* animações da ilustração "Framework Arcus" no hero */
#Camada_1{
  opacity:0;
  transform:scale(.92);
  transform-box:fill-box;
  transform-origin:center;
  animation:stageIn 1.1s cubic-bezier(.16,.8,.24,1) forwards;
}
@keyframes stageIn{
  to{opacity:1; transform:scale(1);}
}

.halo{
  opacity:0;
  transform-box:fill-box;
  transform-origin:center;
  animation:haloIn 1.6s ease-out .25s forwards, haloPulse 5.5s ease-in-out 1.8s infinite;
}
@keyframes haloIn{
  from{opacity:0; transform:scale(.7);}
  to{opacity:1; transform:scale(1);}
}
@keyframes haloPulse{
  0%,100%{opacity:1; transform:scale(1);}
  50%{opacity:.72; transform:scale(1.06);}
}
@keyframes fadeIn{
  to{opacity:1;}
}

#staticRings{
  opacity:0;
  transform-box:fill-box;
  transform-origin:center;
  animation:ringsIn 1.3s ease-out .15s forwards;
}
#staticRings circle,
#staticRings path{
  stroke-dasharray:2400;
  stroke-dashoffset:2400;
  animation:drawRing 2.4s cubic-bezier(.3,.7,.2,1) .3s forwards;
}
@keyframes ringsIn{
  to{opacity:1;}
}
@keyframes drawRing{
  to{stroke-dashoffset:0;}
}

#centerLogo{
  opacity:0;
  transform-box:fill-box;
  transform-origin:center;
  animation:logoIn 1s cubic-bezier(.2,.8,.2,1) .55s forwards, logoBreathe 4.5s ease-in-out 1.7s infinite;
}
@keyframes logoIn{
  from{opacity:0; transform:scale(.6);}
  to{opacity:1; transform:scale(1);}
}
@keyframes logoBreathe{
  0%,100%{transform:scale(1);}
  50%{transform:scale(1.035);}
}

.satPop{
  opacity:0;
  transform:scale(.3);
}
#sat-disaster      .satPop{ animation:popIn .7s cubic-bezier(.2,1.4,.4,1) 1.05s forwards; }
#sat-infra         .satPop{ animation:popIn .7s cubic-bezier(.2,1.4,.4,1) 1.20s forwards; }
#sat-cicd          .satPop{ animation:popIn .7s cubic-bezier(.2,1.4,.4,1) 1.35s forwards; }
#sat-devsecops     .satPop{ animation:popIn .7s cubic-bezier(.2,1.4,.4,1) 1.50s forwards; }
#sat-observability .satPop{ animation:popIn .7s cubic-bezier(.2,1.4,.4,1) 1.65s forwards; }
#sat-finops        .satPop{ animation:popIn .7s cubic-bezier(.2,1.4,.4,1) 1.80s forwards; }
@keyframes popIn{
  to{opacity:1; transform:scale(1);}
}

#spokesGroup{
  opacity:0;
  animation:fadeIn .8s ease-out 1.9s forwards;
}
.spokeLine{
  fill:none;
  stroke-width:1.6;
  opacity:.38;
  stroke-dasharray:5 7;
  animation:dashFlow 2.4s linear infinite;
}
@keyframes dashFlow{
  to{ stroke-dashoffset:-24; }
}
.spokeDot{
  filter:url(#dotGlow);
  opacity:.95;
}

.particle{
  opacity:0;
  animation:twinkle var(--dur) ease-in-out var(--delay) infinite;
}
@keyframes twinkle{
  0%,100%{opacity:0;}
  50%{opacity:var(--maxop);}
}

/* header fica dentro da .hero para o degradê de fundo passar por
   baixo do menu e cobrir a seção inteira; sticky para permanecer
   visível durante a rolagem */
.header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding: 24px 0;
  position: sticky;
  top: 0;
  z-index: 100;
  transition: background .3s ease, backdrop-filter .3s ease, padding .3s ease, border-color .3s ease;
  border-bottom: 1px solid transparent;
}
.header.is-scrolled{
  background: rgba(38,38,38,.82);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  padding: 16px 0;
  border-bottom-color: rgba(244,244,244,.08);
}

.header__logo{
  flex:none;
  position:relative;
  z-index:2;
}
.header__logo img{
  height: 120px;
  width: auto;
  display:block;
}

.header__nav{
  display:flex;
  align-items:center;
  gap:34px;
}
.header__nav a{
  font-family: var(--fonte-textos);
  font-size:.92rem;
  font-weight:500;
  color:rgba(244,244,244,.72);
  white-space:nowrap;
}
.header__nav a:hover{
  color: var(--cor-branco);
}

.header__cta{
  flex:none;
  display:flex;
  align-items:center;
}
.header__cta .btn{
  padding:12px 26px;
  font-size:.86rem;
}

.header__toggle{
  display:none;
  flex:none;
  width:44px; height:44px;
  border-radius:50%;
  border:1px solid rgba(244,244,244,.2);
  background:rgba(244,244,244,.04);
  align-items:center;
  justify-content:center;
  cursor:pointer;
  position:relative;
  z-index:102;
  -webkit-tap-highlight-color:transparent;
}
.header__toggle-bar{
  position:relative;
  width:18px;
  height:12px;
}
.header__toggle-bar span{
  position:absolute;
  left:0;
  width:100%;
  height:1.6px;
  border-radius:2px;
  background: var(--cor-branco);
  transition: transform .3s cubic-bezier(.22,1,.36,1), opacity .2s ease, top .3s cubic-bezier(.22,1,.36,1);
}
.header__toggle-bar span:nth-child(1){ top:0; }
.header__toggle-bar span:nth-child(2){ top:5px; }
.header__toggle-bar span:nth-child(3){ top:10px; }

.header.is-menu-open .header__toggle-bar span:nth-child(1){
  top:5px;
  transform: rotate(45deg);
}
.header.is-menu-open .header__toggle-bar span:nth-child(2){
  opacity:0;
}
.header.is-menu-open .header__toggle-bar span:nth-child(3){
  top:5px;
  transform: rotate(-45deg);
}

.mobile-menu{
  position:fixed;
  inset:0;
  z-index:99;
  background: var(--cor-preto);
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding: 0 var(--container-largura) 0 0;
  opacity:0;
  visibility:hidden;
  transform: translateY(-12px);
  transition: opacity .35s cubic-bezier(.22,1,.36,1), transform .35s cubic-bezier(.22,1,.36,1), visibility 0s linear .35s;
}
.mobile-menu.is-visible{
  opacity:1;
  visibility:visible;
  transform: translateY(0);
  transition: opacity .35s cubic-bezier(.22,1,.36,1), transform .35s cubic-bezier(.22,1,.36,1), visibility 0s linear 0s;
}
.mobile-menu__inner{
  width: 88%;
  max-width:520px;
  margin:0 auto;
  padding: 100px 0 60px;
}
.mobile-menu__nav{
  list-style:none;
  display:flex;
  flex-direction:column;
  margin-bottom:44px;
}
.mobile-menu__nav li{
  border-bottom:1px solid rgba(244,244,244,.1);
}
.mobile-menu__nav li:first-child{
  border-top:1px solid rgba(244,244,244,.1);
}
.mobile-menu__nav a{
  display:block;
  padding:22px 2px;
  font-family: var(--fonte-titulos);
  font-weight:600;
  font-size:1.35rem;
  color: var(--cor-branco);
}
.mobile-menu__nav a:hover{
  color: var(--cor-rosa);
}
.mobile-menu__cta .btn{
  width:100%;
  text-align:center;
}

body.no-scroll{
  overflow:hidden;
}

@media (min-width: 981px){
  .mobile-menu{ display:none; }
}

@media (max-width: 980px){
  .header__nav,
  .header__cta{
    display:none;
  }
  .header__toggle{
    display:flex;
  }
}

/* hero + cost-section dividem um único degradê de fundo (ver
   .gradient-wrap) para não haver linha de corte entre as duas.
   Esse bloco combinado é mais alto que a tela, então NÃO pode
   usar position:sticky aqui — ficaria preso mostrando só o topo
   para sempre. O efeito de cortina na entrada da seção seguinte
   é feito via JavaScript (parallax leve), não em CSS. */
.gradient-wrap{
  position:relative;
  z-index:1;
  background:
    radial-gradient(ellipse 1100px 800px at 78% 4%, rgba(173,62,181,.18), transparent 55%),
    radial-gradient(ellipse 900px 750px at 8% 46%, rgba(51,127,198,.15), transparent 55%),
    radial-gradient(ellipse 1000px 850px at 62% 62%, rgba(10,32,136,.20), transparent 55%),
    radial-gradient(ellipse 800px 650px at 90% 96%, rgba(173,62,181,.14), transparent 60%);
}

.hero{
  position:relative;
  overflow:hidden;
  background:transparent;
}

.hero__inner{
  display:flex;
  align-items:center;
  gap:56px;
  padding: 28px 0 90px;
  position:relative;
  z-index:2;
  flex-wrap:wrap;
}

.hero__copy{
  flex:1 1 480px;
  min-width:340px;
  animation: heroFadeUp .7s cubic-bezier(.22,1,.36,1) both;
}

.hero__eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 14px;
  border-radius:999px;
  border:1px solid rgba(244,244,244,.14);
  background:rgba(244,244,244,.04);
  margin-bottom:26px;
}
.hero__eyebrow-dot{
  width:7px; height:7px;
  border-radius:50%;
  background: var(--cor-rosa);
  box-shadow:0 0 8px 1px rgba(173,62,181,.7);
  flex:none;
}
.hero__eyebrow-label{
  font-family: var(--fonte-textos);
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(244,244,244,.65);
}

.hero__title{
  font-family: var(--fonte-titulos);
  font-weight:800;
  font-size:clamp(2.3rem, 4.4vw, 3.9rem);
  line-height:1.05;
  letter-spacing:-0.025em;
  margin:0 0 26px;
  text-wrap: balance;
  background:linear-gradient(180deg, var(--cor-branco) 0%, var(--cor-branco) 35%, rgba(244,244,244,.35) 85%, rgba(38,38,38,.15) 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

.hero__lead{
  font-family: var(--fonte-textos);
  font-weight:400;
  font-size:1.15rem;
  line-height:1.65;
  color:rgba(244,244,244,.66);
  max-width:540px;
  margin:0 0 40px;
}

.hero__ctas{
  display:flex;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
  margin-bottom:56px;
}

.btn{
  font-family: var(--fonte-textos);
  font-size:clamp(.85rem,1.6vw,1rem);
  white-space:nowrap;
  border-radius:999px;
  transition: transform .25s cubic-bezier(.22,1,.36,1), box-shadow .25s, border-color .25s, background .25s;
}
.btn--primary{
  font-weight:700;
  color: var(--cor-branco);
  padding:16px clamp(18px,3vw,32px);
  background: var(--cor-rosa);
  box-shadow:0 8px 28px -6px rgba(173,62,181,.55), 0 4px 14px -4px rgba(173,62,181,.3);
}
.btn--primary:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 34px -6px rgba(173,62,181,.7), 0 6px 18px -4px rgba(173,62,181,.4);
  color: var(--cor-branco);
}
.btn--secondary{
  font-weight:500;
  color:rgba(244,244,244,.85);
  padding:15px clamp(16px,3vw,30px);
  border:1px solid rgba(244,244,244,.22);
}
.btn--secondary:hover{
  border-color:rgba(244,244,244,.5);
  background:rgba(244,244,244,.06);
  color:rgba(244,244,244,.85);
}

.hero__stack-label{
  font-family: var(--fonte-textos);
  font-size:.68rem;
  font-weight:500;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(244,244,244,.4);
  margin-bottom:18px;
}

.hero__marquee{
  width:100%;
  max-width:560px;
  overflow:hidden;
  mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.hero__marquee-track{
  display:flex;
  align-items:center;
  gap:44px;
  width:max-content;
  animation:marqueeScroll 18s linear infinite;
}
.hero__marquee-track img{
  height:26px;
  width:auto;
  opacity:.9;
  transition:opacity .2s;
}
.hero__marquee-track img:hover{
  opacity:1;
}

.hero__visual{
  flex:1 1 460px;
  min-width:380px;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  animation:heroFadeUp .8s cubic-bezier(.22,1,.36,1) .15s both;
}
.hero__visual-float{
  width:100%;
  max-width:560px;
  animation:heroImgFloat 6s ease-in-out infinite;
  position:relative;
  z-index:1;
}
.hero__visual-float svg{
  width:100%;
  height:auto;
  display:block;
  overflow:visible;
}

@media (max-width: 640px){
  .hero__visual{ min-width:0; }
  .hero__ctas{
    flex-direction:column;
    align-items:stretch;
  }
  .hero__ctas .btn{
    text-align:center;
    width:100%;
  }
}

.cost-section{
  position:relative;
  overflow:hidden;
  background:transparent;
  padding: 110px 0;
}

.cost-section__header{
  text-align:center;
  max-width:720px;
  margin:0 auto 64px;
  opacity:0;
  animation:heroFadeUp .7s cubic-bezier(.22,1,.36,1) .05s forwards;
}
.cost-section__header h2{
  font-family: var(--fonte-titulos);
  font-weight:800;
  font-size:clamp(2rem, 3.6vw, 3rem);
  line-height:1.1;
  letter-spacing:-0.02em;
  color: var(--cor-branco);
  margin-bottom:20px;
  text-wrap: balance;
}
.cost-section__header p{
  font-family: var(--fonte-textos);
  font-size:1.1rem;
  line-height:1.65;
  color:rgba(244,244,244,.66);
}

.cost-section__grid{
  display:flex;
  align-items:center;
  gap:64px;
  flex-wrap:wrap;
  margin-bottom:56px;
}

.cost-section__visual{
  flex:1 1 440px;
  min-width:320px;
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  animation:heroFadeUp .8s cubic-bezier(.22,1,.36,1) .15s forwards;
}
.cost-section__visual img{
  width:100%;
  max-width:640px;
  height:auto;
  border-radius:0;
  border:none;
  background:none;
  box-shadow:none;
  filter: drop-shadow(0 40px 70px rgba(10,32,136,.5));
  transform: translateY(-20%);
}

.cost-section__content{
  flex:1 1 440px;
  min-width:320px;
  opacity:0;
  animation:heroFadeUp .8s cubic-bezier(.22,1,.36,1) .25s forwards;
}

.cost-list{
  list-style:none;
}
.cost-list li{
  display:flex;
  align-items:flex-start;
  gap:16px;
  padding:22px 0;
  border-bottom:1px solid rgba(244,244,244,.1);
}
.cost-list li:first-child{ padding-top:0; }
.cost-list li:last-child{ border-bottom:none; }

.cost-list__icon{
  flex:none;
  width:32px; height:32px;
  border-radius:50%;
  background:rgba(51,127,198,.14);
  border:1px solid rgba(51,127,198,.4);
  display:flex; align-items:center; justify-content:center;
  margin-top:2px;
}
.cost-list__icon svg{ width:16px; height:16px; }

.cost-list p{
  font-family: var(--fonte-textos);
  font-size:1.05rem;
  font-weight:500;
  color: var(--cor-branco);
  line-height:1.5;
}

.cost-section__highlight{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  flex-wrap:wrap;
  padding:36px 48px;
  border-radius:20px;
  background:linear-gradient(90deg, rgba(10,32,136,.92), rgba(51,127,198,.55));
  border:1px solid rgba(51,127,198,.45);
  opacity:0;
  animation:heroFadeUp .8s cubic-bezier(.22,1,.36,1) .35s forwards;
}
.cost-section__highlight-label{
  display:block;
  font-family: var(--fonte-textos);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(244,244,244,.7);
  margin-bottom:8px;
}
.cost-section__highlight h3{
  font-family: var(--fonte-titulos);
  font-weight:800;
  font-size:clamp(1.5rem, 2.4vw, 2.1rem);
  color: var(--cor-branco);
  margin-bottom:6px;
}
.cost-section__highlight-sub{
  display:block;
  font-family: var(--fonte-textos);
  font-size:1rem;
  font-weight:500;
  color:rgba(244,244,244,.75);
}

@media (max-width: 720px){
  .cost-section{ padding:80px 0; }
  .cost-section__highlight{ padding:28px; flex-direction:column; align-items:flex-start; }
  .cost-section__highlight .btn{ width:100%; text-align:center; }
}

/* qualquer elemento ".reveal-item" dentro de um ".reveal-container"
   começa invisível/deslocado e ganha "is-visible" via
   IntersectionObserver (script.js) ao entrar na viewport; o atraso
   entre itens do mesmo grupo é aplicado em JS (stagger) */
.reveal-item{
  opacity:0;
  transform: translateY(28px);
  transition: opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1);
  will-change: opacity, transform;
}
.reveal-item.is-visible{
  opacity:1;
  transform: translateY(0);
}
img.reveal-item, .reveal-item img{
  transform: translateY(28px) scale(1.02);
}
.reveal-item.is-visible img,
img.reveal-item.is-visible{
  transform: translateY(0) scale(1);
}

.framework-section{
  position:relative;
  background: var(--cor-branco);
  border-radius: 100px 100px 0 0;
  margin-top: -60px;
  z-index: 3;
  padding: 150px 0 130px;
  overflow:hidden;
  box-shadow: 0 -60px 90px -30px rgba(0,0,0,.4);
}

.framework-section__grid{
  display:flex;
  align-items:center;
  gap:64px;
  flex-wrap:wrap;
}

.framework-section__content{
  flex:1 1 440px;
  min-width:320px;
}

.framework-section__eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 14px;
  border-radius:999px;
  border:1px solid rgba(38,38,38,.14);
  background:rgba(38,38,38,.04);
  margin-bottom:22px;
}
.framework-section__eyebrow-dot{
  width:7px; height:7px;
  border-radius:50%;
  background: var(--cor-rosa);
  box-shadow:0 0 8px 1px rgba(173,62,181,.5);
  flex:none;
}
.framework-section__eyebrow-label{
  font-family: var(--fonte-textos);
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(38,38,38,.6);
}

.framework-section__title{
  font-family: var(--fonte-titulos);
  font-weight:800;
  font-size:clamp(2rem, 3.4vw, 2.9rem);
  line-height:1.12;
  letter-spacing:-0.02em;
  color: var(--cor-preto);
  margin-bottom:24px;
  text-wrap: balance;
}

.framework-section__text{
  font-family: var(--fonte-textos);
  font-weight:400;
  font-size:1.1rem;
  line-height:1.65;
  color:rgba(38,38,38,.68);
  max-width:480px;
  margin-bottom:40px;
}

.framework-section__visual{
  flex:1 1 460px;
  min-width:340px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.framework-section__visual img{
  width:100%;
  max-width:560px;
  height:auto;
}

@media (max-width: 720px){
  .framework-section{
    border-radius: 60px 60px 0 0;
    margin-top: -30px;
    padding: 100px 0 90px;
  }
}

.solutions-section{
  position:relative;
  background: var(--cor-branco);
  padding: 20px 0 150px;
}

.solutions-section__header{
  max-width:720px;
  margin: 0 0 64px;
}

.solutions-section__eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 14px;
  border-radius:999px;
  border:1px solid rgba(38,38,38,.14);
  background:rgba(38,38,38,.04);
  margin-bottom:22px;
}
.solutions-section__eyebrow-icon{
  font-size:.85rem;
  line-height:1;
  color: var(--cor-rosa);
}
.solutions-section__eyebrow-label{
  font-family: var(--fonte-textos);
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(38,38,38,.6);
}

.solutions-section__title{
  font-family: var(--fonte-titulos);
  font-weight:800;
  font-size:clamp(2rem, 3.4vw, 2.9rem);
  line-height:1.12;
  letter-spacing:-0.02em;
  color: var(--cor-preto);
  margin-bottom:18px;
  text-wrap: balance;
}

.solutions-section__subtitle{
  font-family: var(--fonte-textos);
  font-weight:400;
  font-size:1.1rem;
  line-height:1.6;
  color:rgba(38,38,38,.66);
  max-width:560px;
}

.solutions-section__grid{
  display:flex;
  align-items:flex-start;
  gap:72px;
  flex-wrap:wrap;
}

.solutions-list{
  flex:1 1 480px;
  min-width:320px;
  list-style:none;
}

.solutions-list__item{
  border-bottom:1px solid rgba(38,38,38,.12);
}
.solutions-list__item:first-child{
  border-top:1px solid rgba(38,38,38,.12);
}

.solutions-list__head{
  display:flex;
  align-items:center;
  gap:20px;
  padding:26px 4px;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}

.solutions-list__number{
  font-family: var(--fonte-titulos);
  font-weight:700;
  font-size:.95rem;
  color:rgba(38,38,38,.32);
  flex:none;
  width:30px;
  transition: color .3s ease;
}

.solutions-list__title{
  font-family: var(--fonte-titulos);
  font-weight:700;
  font-size:1.15rem;
  color: var(--cor-preto);
  flex:1;
  transition: color .3s ease;
}

.solutions-list__icon{
  flex:none;
  width:26px; height:26px;
  border-radius:50%;
  border:1px solid rgba(38,38,38,.2);
  display:flex;
  align-items:center;
  justify-content:center;
  color:rgba(38,38,38,.5);
  transition: transform .4s cubic-bezier(.22,1,.36,1), color .3s ease, border-color .3s ease, background .3s ease;
}
.solutions-list__icon svg{ width:12px; height:12px; }

.solutions-list__item.is-active .solutions-list__number{ color: var(--cor-rosa); }
.solutions-list__item.is-active .solutions-list__title{ color: var(--cor-azul-escuro); }
.solutions-list__item.is-active .solutions-list__icon{
  transform:rotate(135deg);
  color: var(--cor-branco);
  background: var(--cor-rosa);
  border-color: var(--cor-rosa);
}

.solutions-list__body{
  display:grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .45s cubic-bezier(.22,1,.36,1);
}
.solutions-list__item.is-active .solutions-list__body{
  grid-template-rows: 1fr;
}
.solutions-list__body-inner{
  overflow:hidden;
}
.solutions-list__desc{
  font-family: var(--fonte-textos);
  font-size:1rem;
  line-height:1.65;
  color:rgba(38,38,38,.64);
  padding: 0 30px 28px 50px;
  max-width: 460px;
}

.solutions-visual{
  flex:1 1 440px;
  min-width:300px;
  position:sticky;
  top:120px;
  align-self:flex-start;
}
.solutions-visual__frame{
  position:relative;
  border-radius:24px;
  overflow:hidden;
  aspect-ratio: 3 / 4.3;
  max-width:420px;
  margin:0 auto;
  box-shadow: 0 30px 60px -24px rgba(10,32,136,.35);
}
.solutions-visual__img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0;
  /* escala > 1 para "sangrar" a imagem pra fora da moldura e
     cortar qualquer margem clara vinda do próprio PNG */
  transform: scale(1.22);
  transition: opacity .5s ease, transform .7s cubic-bezier(.22,1,.36,1);
}
.solutions-visual__img.is-active{
  opacity:1;
  transform: scale(1.14);
}

@media (max-width: 900px){
  .solutions-visual{
    position:static;
    order:-1;
    margin-bottom:8px;
  }
  .solutions-list__desc{ padding-left:50px; padding-right:4px; }
}

@media (max-width: 720px){
  .solutions-section{ padding:0 0 100px; }
}

.partners-section{
  position:relative;
  z-index:1;
  background: transparent;
  padding: 140px 0 120px;
  overflow:hidden;
}

.partners-section__header{
  text-align:center;
  max-width:820px;
  margin:0 auto 72px;
}

.partners-section__title{
  font-family: var(--fonte-titulos);
  font-weight:800;
  font-size:clamp(2rem, 3.6vw, 3rem);
  line-height:1.1;
  letter-spacing:-0.02em;
  color: var(--cor-branco);
  margin-bottom:20px;
  text-wrap: balance;
}

.partners-section__subtitle{
  font-family: var(--fonte-textos);
  font-weight:400;
  font-size:1.1rem;
  line-height:1.65;
  color:rgba(244,244,244,.66);
  max-width:640px;
  margin:0 auto;
}

.partners-grid{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  row-gap:64px;
  column-gap:clamp(40px, 6vw, 90px);
}

.partners-grid__item{
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:.82;
  transition: opacity .25s ease, transform .25s ease;
}
.partners-grid__item:hover{
  opacity:1;
  transform: translateY(-2px);
}
.partners-grid__item img{
  height:30px;
  width:auto;
  max-width:150px;
  object-fit:contain;
}

@media (max-width: 720px){
  .partners-section{ padding:100px 0 90px; }
  .partners-section__header{ margin-bottom:52px; }
  .partners-grid{ row-gap:44px; column-gap:36px; }
  .partners-grid__item img{ height:24px; }
}

.migration-section{
  position:relative;
  z-index:1;
  background: transparent;
  padding: 130px 0;
  overflow:hidden;
}

.migration-section__grid{
  display:flex;
  align-items:center;
  gap:64px;
  flex-wrap:wrap;
}

.migration-section__visual{
  flex:1 1 440px;
  min-width:320px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.migration-section__visual img{
  width:100%;
  max-width:600px;
  height:auto;
  filter: drop-shadow(0 40px 70px rgba(10,32,136,.5));
}

.migration-section__content{
  flex:1 1 440px;
  min-width:320px;
}

.migration-section__eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 14px;
  border-radius:999px;
  border:1px solid rgba(244,244,244,.14);
  background:rgba(244,244,244,.04);
  margin-bottom:26px;
}
.migration-section__eyebrow-dot{
  width:7px; height:7px;
  border-radius:50%;
  background: var(--cor-rosa);
  box-shadow:0 0 8px 1px rgba(173,62,181,.7);
  flex:none;
}
.migration-section__eyebrow-label{
  font-family: var(--fonte-textos);
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(244,244,244,.65);
}

.migration-section__title{
  font-family: var(--fonte-titulos);
  font-weight:800;
  font-size:clamp(2rem, 3.6vw, 3rem);
  line-height:1.14;
  letter-spacing:-0.02em;
  color: var(--cor-branco);
  margin-bottom:36px;
  text-wrap: balance;
  max-width:560px;
}

.migration-list{
  list-style:none;
  margin-bottom:44px;
}
.migration-list li{
  display:flex;
  align-items:flex-start;
  gap:16px;
  padding:20px 0;
  border-bottom:1px solid rgba(244,244,244,.1);
}
.migration-list li:first-child{ padding-top:0; }
.migration-list li:last-child{ border-bottom:none; padding-bottom:0; }

.migration-list__icon{
  flex:none;
  width:32px; height:32px;
  border-radius:50%;
  background:rgba(51,127,198,.14);
  border:1px solid rgba(51,127,198,.4);
  display:flex; align-items:center; justify-content:center;
  margin-top:2px;
}
.migration-list__icon svg{ width:16px; height:16px; }

.migration-list p{
  font-family: var(--fonte-textos);
  font-size:1.05rem;
  font-weight:500;
  color: var(--cor-branco);
  line-height:1.5;
}

@media (max-width: 900px){
  .migration-section__grid{
    flex-direction:column-reverse;
  }
}

@media (max-width: 720px){
  .migration-section{ padding:90px 0; }
  .migration-section__content .btn{ width:100%; text-align:center; }
}

.news-section{
  position:relative;
  z-index:1;
  background: var(--cor-preto);
  padding: 130px 0;
  overflow:hidden;
}

.news-section__bg{
  position:absolute;
  inset:0;
  background-image:url('assets/Noticias.png');
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  z-index:0;
}
.news-section__overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(38,38,38,.92) 0%, rgba(38,38,38,.88) 40%, rgba(38,38,38,.94) 100%);
  z-index:1;
}

.news-section .container{
  position:relative;
  z-index:2;
}

.news-section__header{
  max-width:760px;
  margin:0 0 72px;
}

.news-section__eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 14px;
  border-radius:999px;
  border:1px solid rgba(244,244,244,.14);
  background:rgba(244,244,244,.04);
  margin-bottom:26px;
}
.news-section__eyebrow-dot{
  width:7px; height:7px;
  border-radius:50%;
  background: var(--cor-rosa);
  box-shadow:0 0 8px 1px rgba(173,62,181,.7);
  flex:none;
}
.news-section__eyebrow-label{
  font-family: var(--fonte-textos);
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(244,244,244,.65);
}

.news-section__title{
  font-family: var(--fonte-titulos);
  font-weight:800;
  font-size:clamp(2rem, 3.6vw, 3rem);
  line-height:1.12;
  letter-spacing:-0.02em;
  color: var(--cor-branco);
  margin-bottom:20px;
  text-wrap: balance;
}

.news-section__subtitle{
  font-family: var(--fonte-textos);
  font-weight:400;
  font-size:1.1rem;
  line-height:1.65;
  color:rgba(244,244,244,.62);
  max-width:600px;
}

.news-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1px;
  background:rgba(244,244,244,.12);
  border:1px solid rgba(244,244,244,.12);
  border-radius:20px;
  overflow:hidden;
}

.news-stat{
  background: rgba(38,38,38,.78);
  padding:44px 32px 36px;
  display:flex;
  flex-direction:column;
}

.news-stat__number{
  font-family: var(--fonte-titulos);
  font-weight:800;
  font-size:clamp(2.1rem, 3vw, 2.7rem);
  line-height:1;
  letter-spacing:-0.02em;
  background:linear-gradient(135deg, var(--cor-branco) 0%, var(--cor-azul-claro) 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  margin-bottom:18px;
}

.news-stat__desc{
  font-family: var(--fonte-textos);
  font-weight:500;
  font-size:.98rem;
  line-height:1.55;
  color: rgba(244,244,244,.85);
  margin-bottom:22px;
  flex:1;
}

.news-stat__source{
  font-family: var(--fonte-textos);
  font-weight:400;
  font-size:.72rem;
  letter-spacing:.02em;
  color: rgba(244,244,244,.42);
  padding-top:16px;
  border-top:1px solid rgba(244,244,244,.1);
}

@media (max-width: 980px){
  .news-grid{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width: 620px){
  .news-section{ padding:90px 0; }
  .news-grid{ grid-template-columns:1fr; }
  .news-stat{ padding:36px 28px; }
}

.social-proof-section{
  position:relative;
  z-index:1;
  background: transparent;
  padding: 130px 0 140px;
}

.social-proof-section__title{
  font-family: var(--fonte-titulos);
  font-weight:800;
  font-size:clamp(2rem, 3.6vw, 3rem);
  line-height:1.1;
  letter-spacing:-0.02em;
  color: var(--cor-branco);
  text-align:center;
  margin-bottom:72px;
  text-wrap: balance;
}

.testimonial-grid{
  display:flex;
  gap:32px;
  flex-wrap:wrap;
}

.testimonial-card{
  flex:1 1 420px;
  min-width:280px;
  padding:44px 40px;
  border-radius:20px;
  background:rgba(244,244,244,.03);
  border:1px solid rgba(244,244,244,.1);
  display:flex;
  flex-direction:column;
}

.testimonial-card__quote-mark{
  font-family: var(--fonte-titulos);
  font-size:3rem;
  line-height:1;
  color: var(--cor-rosa);
  margin-bottom:14px;
}

.testimonial-card__quote{
  font-family: var(--fonte-titulos);
  font-weight:500;
  font-size:1.3rem;
  line-height:1.5;
  color: var(--cor-branco);
  margin-bottom:28px;
  flex:1;
}

.testimonial-card__author{
  display:flex;
  align-items:center;
  gap:14px;
  padding-top:20px;
  border-top:1px solid rgba(244,244,244,.1);
}
.testimonial-card__author-dot{
  width:8px; height:8px;
  border-radius:50%;
  background: var(--cor-azul-claro);
  flex:none;
}
.testimonial-card__author-text{
  font-family: var(--fonte-textos);
  font-size:.92rem;
  font-weight:500;
  color:rgba(244,244,244,.62);
}

@media (max-width: 720px){
  .social-proof-section{ padding:90px 0 100px; }
  .social-proof-section__title{ margin-bottom:48px; }
  .testimonial-card{ padding:34px 28px; }
}

.cta-final-section{
  position:relative;
  z-index:1;
  overflow:hidden;
  padding: 140px 0;
  background:
    radial-gradient(ellipse 1000px 700px at 15% 10%, rgba(173,62,181,.16), transparent 55%),
    radial-gradient(ellipse 900px 750px at 90% 90%, rgba(51,127,198,.16), transparent 55%);
}

.cta-final-grid{
  display:flex;
  gap:80px;
  flex-wrap:wrap;
}

.cta-final-content{
  flex:1 1 420px;
  min-width:300px;
}

.cta-final-content__title{
  font-family: var(--fonte-titulos);
  font-weight:800;
  font-size:clamp(2.1rem, 3.8vw, 3.2rem);
  line-height:1.1;
  letter-spacing:-0.02em;
  color: var(--cor-branco);
  margin-bottom:22px;
  text-wrap: balance;
}

.cta-final-content__subtitle{
  font-family: var(--fonte-textos);
  font-weight:400;
  font-size:1.12rem;
  line-height:1.65;
  color:rgba(244,244,244,.64);
  max-width:460px;
  margin-bottom:40px;
}

.cta-final-content__points{
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:18px;
}
.cta-final-content__points li{
  display:flex;
  align-items:center;
  gap:14px;
  font-family: var(--fonte-textos);
  font-size:.98rem;
  font-weight:500;
  color:rgba(244,244,244,.75);
}
.cta-final-content__points li svg{
  flex:none;
  width:20px; height:20px;
}

.cta-form{
  flex:1 1 460px;
  min-width:280px;
  padding:44px;
  border-radius:24px;
  background:rgba(244,244,244,.04);
  border:1px solid rgba(244,244,244,.12);
  backdrop-filter: blur(6px);
}

.cta-form__row{
  display:flex;
  gap:16px;
  flex-wrap:wrap;
}
.cta-form__field{
  flex:1 1 200px;
  margin-bottom:20px;
  display:flex;
  flex-direction:column;
}
.cta-form__field--full{
  flex:1 1 100%;
}

.cta-form__label{
  font-family: var(--fonte-textos);
  font-size:.78rem;
  font-weight:500;
  letter-spacing:.02em;
  color:rgba(244,244,244,.55);
  margin-bottom:8px;
}

.cta-form__input,
.cta-form__select,
.cta-form__textarea{
  font-family: var(--fonte-textos);
  font-size:16px; /* 16px evita zoom automático no iOS ao focar */
  color: var(--cor-branco);
  background:rgba(244,244,244,.05);
  border:1px solid rgba(244,244,244,.16);
  border-radius:10px;
  padding:13px 16px;
  transition: border-color .2s ease, background .2s ease;
  width:100%;
}
.cta-form__input:focus,
.cta-form__select:focus,
.cta-form__textarea:focus{
  outline:none;
  border-color: var(--cor-azul-claro);
  background:rgba(244,244,244,.08);
}
.cta-form__textarea{
  resize:vertical;
  min-height:90px;
}
.cta-form__select{
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%23f4f4f4' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position: right 14px center;
  padding-right:40px;
}
.cta-form__select option{
  background: var(--cor-preto);
  color: var(--cor-branco);
}

.cta-form__submit{
  width:100%;
  border:none;
  cursor:pointer;
  margin-top:6px;
  text-align:center;
}

.cta-form__feedback{
  display:none;
  margin-top:16px;
  padding:14px 16px;
  border-radius:10px;
  font-family: var(--fonte-textos);
  font-size:.88rem;
  font-weight:500;
  background:rgba(51,127,198,.14);
  border:1px solid rgba(51,127,198,.4);
  color: var(--cor-branco);
}
.cta-form__feedback.is-visible{
  display:block;
}

@media (max-width: 720px){
  .cta-final-section{ padding:100px 0; }
  .cta-form{ padding:30px 22px; }
}

@media (max-width: 900px){
  .cost-section__grid,
  .framework-section__grid,
  .solutions-section__grid,
  .migration-section__grid,
  .cta-final-grid{
    gap:44px;
  }
}

@media (max-width: 480px){
  .btn{ font-size:.85rem; }
}

/* usar em h1/h2 sobre fundo ESCURO para esmaecer as últimas linhas;
   não usar em seções com fundo branco (Framework Arcus, Soluções) */
h2.title-fade,
.title-fade{
  background:linear-gradient(180deg, var(--cor-branco) 0%, var(--cor-branco) 30%, rgba(244,244,244,.45) 60%, rgba(244,244,244,.12) 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent !important;
}

/* variante para fundo CLARO: degradê azul → rosa, sem esmaecer */
h2.title-accent,
.title-accent{
  background:linear-gradient(120deg, var(--cor-azul-escuro) 0%, var(--cor-azul-claro) 45%, var(--cor-rosa) 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent !important;
}

/* footer: bloco abaixo sobrescreve/complementa as regras acima
   (adiciona .footer__certificates e ajustes de box-sizing) */
.footer {
  position: relative;
  z-index: 1;
  background: transparent;
  border-top: 1px solid rgba(244,244,244,.1);
  padding: 56px 0 40px;
  width: 100%;
  box-sizing: border-box;
}

.footer *, .footer *:before, .footer *:after {
  box-sizing: border-box;
}

.footer__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  padding-bottom: 32px;
  margin-bottom: 32px;
  border-bottom: 1px solid rgba(244,244,244,.08);
}

.footer__brand {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
}

.footer__brand img {
  height: 40px !important;
  width: auto !important;
  display: block !important;
}

.footer__tagline {
  font-family: var(--fonte-textos, sans-serif);
  font-size: .92rem;
  font-weight: 500;
  color: rgba(244,244,244,.55);
  padding-left: 18px;
  border-left: 1px solid rgba(244,244,244,.15);
}

.footer__location {
  font-family: var(--fonte-textos, sans-serif);
  font-size: .88rem;
  font-weight: 400;
  color: rgba(244,244,244,.42);
}

.footer .footer__certificates {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  flex-wrap: nowrap;
  margin-bottom: 32px;
  width: 100%;
}

.footer .footer__certificates img {
  display: block !important;
  height: 46px !important;
  width: 90px !important;
  object-fit: contain !important;
  opacity: 1;
  flex: none;
  transition: transform 0.3s ease;
}

.footer .footer__certificates img:hover {
  transform: translateY(-3px);
}

.footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
}

.footer__copyright {
  font-family: var(--fonte-textos, sans-serif);
  font-size: .8rem;
  color: rgba(244,244,244,.35);
}

.footer__credit {
  font-family: var(--fonte-textos, sans-serif);
  font-size: .8rem;
  color: rgba(244,244,244,.35);
}

.footer__credit a {
  color: rgba(244,244,244,.55);
  font-weight: 500;
  text-decoration: none;
  transition: color 0.3s ease;
}

.footer__credit a:hover {
  color: var(--cor-rosa, #ad3eb5);
}

@media (max-width: 640px) {
  .footer__inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }

  .footer__tagline {
    padding-left: 0;
    border-left: none;
    width: 100%;
  }

  .footer .footer__certificates {
    justify-content: flex-start;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 14px;
    padding-bottom: 4px;
  }

  .footer .footer__certificates img {
    height: 38px !important;
    width: 74px !important;
  }

  .footer__bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
}
