/* Fontes auto-hospedadas (Google Fonts) — subsets latin + latin-ext */
/* latin-ext */
@font-face{font-family:'Archivo';font-style:normal;font-weight:400 700;font-stretch:100%;font-display:swap;src:url(../fonts/archivo-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
/* latin */
@font-face{font-family:'Archivo';font-style:normal;font-weight:400 700;font-stretch:100%;font-display:swap;src:url(../fonts/archivo-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
/* latin-ext */
@font-face{font-family:'Exo 2';font-style:italic;font-weight:500 700;font-display:swap;src:url(../fonts/exo-2-italic-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
/* latin */
@font-face{font-family:'Exo 2';font-style:italic;font-weight:500 700;font-display:swap;src:url(../fonts/exo-2-italic-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
/* latin-ext */
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/instrument-serif-italic-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
/* latin */
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/instrument-serif-italic-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
/* latin-ext */
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 500;font-display:swap;src:url(../fonts/jetbrains-mono-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
/* latin */
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 500;font-display:swap;src:url(../fonts/jetbrains-mono-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}


/* ---- base ---- */


  html { scroll-behavior: smooth; }
  body { margin: 0; background: #091420; -webkit-font-smoothing: antialiased; }
  * { box-sizing: border-box; }
  a { color: #A9D93F; text-decoration: none; }
  a:hover { color: #C4E874; }
  ::selection { background: #A9D93F; color: #091420; }
  :focus-visible { outline: 2px solid #A9D93F; outline-offset: 3px; border-radius: 2px; }

  .js-anima [data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity 1s cubic-bezier(.16,1,.3,1), transform 1s cubic-bezier(.16,1,.3,1); }
  .js-anima [data-reveal].in { opacity: 1; transform: none; }
  [data-cut] { display: block; overflow: hidden; }
  .js-anima [data-cut] > span { display: block; transform: translateY(105%); transition: transform 1.1s cubic-bezier(.16,1,.3,1); }
  .js-anima [data-cut].in > span { transform: none; }

  [data-spy].ativo { color: #E6EBEF !important; }
  [data-painel] { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows .55s cubic-bezier(.16,1,.3,1), opacity .4s ease; }
  [data-painel] > div { overflow: hidden; }
  [data-bloco].aberto [data-painel] { grid-template-rows: 1fr; opacity: 1; }
  [data-bloco].aberto [data-mais] { transform: rotate(45deg); border-color: #A9D93F; color: #A9D93F; }
  [data-pais].ativo { border-color: #A9D93F !important; background: rgba(169,217,63,.07) !important; }
  [data-pillar]:last-child { border-bottom: 1px solid rgba(255,255,255,.11); }
  [data-linha-tempo] li > span[aria-hidden] { transform: scale(.4); opacity: .3; transition: transform .6s cubic-bezier(.34,1.56,.64,1), opacity .5s, box-shadow .5s; }
  [data-linha-tempo] li.in > span[aria-hidden] { transform: scale(1); opacity: 1; box-shadow: 0 0 0 6px rgba(169,217,63,.1); }
  [data-linha-tempo] li h3 { transition: color .5s; }
  [data-linha-tempo] li:hover h3 { color: #A9D93F; }
  [data-menu] { max-height: 0; overflow: hidden; transition: max-height .5s cubic-bezier(.16,1,.3,1); }
  [data-menu].aberto { max-height: 420px; }

  @keyframes drift { 0% { transform: translate3d(0,0,0) scale(1); } 50% { transform: translate3d(4%,-3%,0) scale(1.12); } 100% { transform: translate3d(0,0,0) scale(1); } }
  @keyframes marq { from { transform: translateX(0); } to { transform: translateX(-50%); } }
  @keyframes pulseDot { 0%,100% { opacity: .25; } 50% { opacity: 1; } }
  @keyframes flow { 0% { left: 0; opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { left: 100%; opacity: 0; } }
  .nuvem-a { background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%271000%27%20height%3D%27560%27%3E%3Cfilter%20id%3D%27n%27%20x%3D%270%27%20y%3D%270%27%20width%3D%27100%25%27%20height%3D%27100%25%27%3E%3CfeTurbulence%20type%3D%27fractalNoise%27%20baseFrequency%3D%270.006%200.016%27%20numOctaves%3D%276%27%20seed%3D%273%27%20stitchTiles%3D%27stitch%27%2F%3E%3CfeColorMatrix%20type%3D%27matrix%27%20values%3D%270%200%200%200%201%200%200%200%200%201%200%200%200%200%201%20-1.35%200%200%200%201.02%27%2F%3E%3C%2Ffilter%3E%3Crect%20width%3D%271000%27%20height%3D%27560%27%20filter%3D%27url%28%23n%29%27%2F%3E%3C%2Fsvg%3E); background-size: 1700px 950px; background-repeat: repeat; animation: derivaA 190s linear infinite; }
  .nuvem-b { background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%271000%27%20height%3D%27560%27%3E%3Cfilter%20id%3D%27n%27%20x%3D%270%27%20y%3D%270%27%20width%3D%27100%25%27%20height%3D%27100%25%27%3E%3CfeTurbulence%20type%3D%27fractalNoise%27%20baseFrequency%3D%270.011%200.028%27%20numOctaves%3D%275%27%20seed%3D%2711%27%20stitchTiles%3D%27stitch%27%2F%3E%3CfeColorMatrix%20type%3D%27matrix%27%20values%3D%270%200%200%200%201%200%200%200%200%201%200%200%200%200%201%20-1.5%200%200%200%201.06%27%2F%3E%3C%2Ffilter%3E%3Crect%20width%3D%271000%27%20height%3D%27560%27%20filter%3D%27url%28%23n%29%27%2F%3E%3C%2Fsvg%3E); background-size: 1150px 640px; background-repeat: repeat; animation: derivaB 105s linear infinite; }
  @keyframes derivaA { from { background-position: 0 0; } to { background-position: -1700px 0; } }
  @keyframes derivaB { from { background-position: 0 0; } to { background-position: -1150px 0; } }
  @keyframes passa { 0% { transform: translate3d(-60%,0,0) scaleX(1); opacity: 0; } 12% { opacity: 1; } 88% { opacity: 1; } 100% { transform: translate3d(160%,0,0) scaleX(1.3); opacity: 0; } }
  @keyframes bob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

  @media (max-width: 980px) {
    [data-stack] { grid-template-columns: minmax(0,1fr) !important; }
    [data-sticky] { position: static !important; }
    [data-pillar] { grid-template-columns: 56px minmax(0,1fr) 40px !important; }
    [data-pillar] > h3 { grid-column: 2 !important; grid-row: 1 !important; }
    [data-pillar] > [data-mais] { grid-column: 3 !important; grid-row: 1 !important; }
    [data-pillar-desc] { grid-column: 2 / 4 !important; grid-row: 2 !important; }
    [data-pillar] > [data-painel] { grid-column: 2 / -1 !important; grid-row: 3 !important; }
    [data-cartao-esq] { left: 0 !important; }
    [data-cartao-dir] { right: 0 !important; }
    [data-paises] { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
    [data-crencas] { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
    [data-rodape] { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
    [data-etapas] { grid-template-columns: repeat(1,minmax(0,1fr)) !important; }
    [data-nav], [data-langs] { display: none !important; }
    [data-burger] { display: flex !important; }
    [data-founder] { grid-template-columns: minmax(0,1fr) !important; }
  }
  @media (max-width: 1180px) and (min-width: 981px) {
    [data-etapas] { grid-template-columns: repeat(3,minmax(0,1fr)) !important; }
    [data-etapas] > div:nth-child(4) { grid-column: span 2 !important; }
    [data-etapas] > div:nth-child(5) { grid-column: span 1 !important; }
  }
  @media (max-width: 760px) {
    [data-fluxo] ol { flex-direction: column !important; gap: 24px !important; align-items: stretch !important; }
    [data-etapa] { flex: none !important; flex-direction: row !important; align-items: center !important; gap: 14px !important; text-align: left !important; }
    [data-etapa] [data-rotulo] { font-size: 1.15rem !important; }
  }
  @media (max-width: 560px) {
    [data-pad] { padding-left: 20px !important; padding-right: 20px !important; }
    [data-crencas], [data-paises], [data-rodape] { grid-template-columns: repeat(1,minmax(0,1fr)) !important; }
    [data-cta-header] { display: none !important; }
  }
  @media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    [data-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; }
    [data-cut] > span { transform: none !important; transition: none !important; }
    *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  }


/* ---- hover ---- */

.h1:hover{opacity:.75;}
.h2:hover{color:#E6EBEF;}
.h3:hover{background:#C4E874;transform:translateY(-1px);color:#091420;}
.h4:hover{background:#fff;transform:translateY(-2px);color:#091420;}
.h5:hover{border-color:#A9D93F;color:#A9D93F;}
.h6:hover{background:rgba(255,255,255,.026);padding-left:20px;}
.h7:hover{color:#A9D93F;}
.h8:hover{background:#0F2130;}
.h9:hover{background:#C4E874;color:#091420;}
.h10:hover{padding-left:14px;color:#A9D93F;}
.h11:hover{color:#A9D93F;padding-left:5px;}

/* ---- correções sobre o design original ---- */
html { scroll-padding-top: 96px; }

/* o header só cabe até ~1130px: esconde a nav antes de espremer */
@media (max-width: 1180px) {
  [data-nav], .langs-topo { display: none !important; }
  [data-burger] { display: flex !important; }
}
/* o menu mobile tinha max-height:420px e cortava o CTA; o JS define a altura exata */
[data-menu].aberto { max-height: 760px; }

/* seletor de idioma */
[data-lang] { color: inherit; }
[data-lang]:hover { color: #C6D2DA; }
[data-lang][aria-current="true"] { color: #A9D93F; }

/* imagens de fundo decorativas preenchem o container */
.fundo-secao { position: absolute; inset: 0; }

/* impede que a barra de rolagem horizontal apareça em telas estreitas */
img { max-width: 100%; }

/* ---- telas muito estreitas (<=320px, iPhone SE) ---- */
/* a grade dos painéis usava minmax(190px,1fr) e vazava 16px a 320px */
.grade-cards { grid-template-columns: repeat(auto-fit, minmax(min(190px, 100%), 1fr)) !important; }
/* o h1 recortava 4px a 280px: [data-cut] precisa de overflow:hidden para a animação */
@media (max-width: 330px) {
  h1 { font-size: clamp(2.05rem, 12vw, 7.6rem) !important; }
}
/* palavras longas (ES: "automatizaciones", "INFRAESTRUCTURA") eram recortadas
   em vez de quebrar, porque os painéis têm overflow:hidden */
.grade-cards, .grade-cards * { overflow-wrap: anywhere; }
/* a 280px sobravam só 90px úteis dentro do card: aperta as folgas */
@media (max-width: 380px) {
  [data-pillar] { grid-template-columns: 34px minmax(0,1fr) 34px !important; gap: 14px !important; }
  .grade-cards > div { padding: 16px 14px !important; }
}

/* ---- alvos de toque (WCAG 2.5.8: mínimo 24x24; alvo 44x44) ---- */
/* área clicável ampliada por pseudo-elemento, sem alterar o layout.
   PT/EN/ES ficam a ~40px de distância entre centros: 32px de largura não
   se sobrepõem (44px se sobreporiam e o toque cairia no botão errado). */
[data-lang], [data-cabecalho] a[aria-label] { position: relative; }
[data-lang]::after {
  content: ""; position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%); width: 32px; height: 44px;
}
[data-cabecalho] a[aria-label]::after {
  content: ""; position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%); width: 100%; height: 44px;
}
[data-burger] { width: 44px !important; height: 44px !important; }
[data-menu] nav > a { padding-top: 12px !important; padding-bottom: 12px !important; }
[data-menu] a[href="#contato"] { padding-top: 15px !important; padding-bottom: 15px !important; }
/* links do rodapé eram 16px de altura */
[data-rodape] nav { gap: 3px !important; }
[data-rodape] nav > a { padding: 8px 0 !important; }
