/* Terra Firmae · landing page
   Paleta institucional (equivalentes digitais aproximados; a cor em tela não reproduz o Pantone):
   Verde 347 C  #009A44 · Cool Gray 10 #53565A · Grafite #171C1A · Off-white #F2F3EF · Branco #FFFFFF
   #007A36 é a variação do verde usada em texto pequeno sobre fundo claro (contraste AA). */

@font-face { font-family: "Sofia Sans Condensed"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("/assets/fonts/sofia-sans-condensed-latin-wght-normal.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("/assets/fonts/inter-latin-wght-normal.woff2") format("woff2"); }
@font-face { font-family: "Space Mono"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("/assets/fonts/space-mono-latin-400-normal.woff2") format("woff2"); }

:root {
  --verde: #009A44;
  --verde-txt: #007A36;
  --verde-claro: #4CC27E;
  --cinza: #53565A;
  --cinza-claro: #9CA19D;
  --grafite: #171C1A;
  --grafite-2: #1F2522;
  --off: #F2F3EF;
  --branco: #FFFFFF;
  --linha: rgba(23, 28, 26, .14);
  --linha-esc: rgba(242, 243, 239, .16);
  --f-tit: "Sofia Sans Condensed", "Arial Narrow", "Roboto Condensed", sans-serif;
  --f-txt: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --f-mono: "Space Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  --lado: max(20px, calc((100% - 1240px) / 2));
  --topo-h: 64px;
  --raio: 2px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--topo-h) + 12px); }
body { margin: 0; background: var(--off); color: var(--grafite); font: 400 1rem/1.65 var(--f-txt); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: hidden; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; }
h1, h2, h3, h4 { font-family: var(--f-tit); font-weight: 300; line-height: 1.04; letter-spacing: -.005em; margin: 0; text-wrap: balance; }
p { margin: 0 0 1em; text-wrap: pretty; }
ul, ol { margin: 0; padding: 0; list-style: none; }
button { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--verde); outline-offset: 3px; }
.sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.pular { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--verde); color: var(--grafite); padding: 10px 16px; font-weight: 600; text-decoration: none; }
.pular:focus { top: 12px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; } }

/* ------------------------------------------------------------------ topo */
.topo { position: fixed; inset: 0 0 auto; z-index: 50; height: var(--topo-h); color: var(--off); transition: background-color .3s, box-shadow .3s; }
.topo.rolado, .topo-fixo, .menu-aberto .topo { background: rgba(23, 28, 26, .94); box-shadow: 0 1px 0 var(--linha-esc); }
@supports (backdrop-filter: blur(8px)) { .topo.rolado, .topo-fixo { background: rgba(23, 28, 26, .82); backdrop-filter: blur(10px); } }
.topo-in { height: 100%; padding-inline: var(--lado); display: flex; align-items: center; gap: 24px; }
.marca { display: block; flex: none; padding: 6px 0; }
.marca img { width: 147px; height: auto; }
.nav { margin-left: auto; }
.nav ul { display: flex; gap: clamp(14px, 1.6vw, 26px); }
.nav a { font: 500 .95rem/1 var(--f-tit); letter-spacing: .07em; text-transform: uppercase; text-decoration: none; color: rgba(242, 243, 239, .78); padding: 8px 0; border-bottom: 1px solid transparent; transition: color .2s, border-color .2s; }
.nav a:hover, .nav a[aria-current="true"] { color: var(--off); border-color: var(--verde); }
.topo-acoes { display: flex; align-items: center; gap: 14px; }
.idioma { font: 500 .9rem/1 var(--f-tit); letter-spacing: .12em; text-decoration: none; border: 1px solid var(--linha-esc); padding: 8px 10px; color: rgba(242, 243, 239, .6); }
.idioma b { color: var(--off); font-weight: 600; }
.idioma:hover { border-color: var(--verde); }
.topo-voltar { color: var(--off); }
.menu-btn { display: none; width: 44px; height: 44px; background: none; border: 1px solid var(--linha-esc); cursor: pointer; position: relative; }
.menu-ico, .menu-ico::before, .menu-ico::after { position: absolute; left: 12px; width: 18px; height: 1.5px; background: var(--off); transition: transform .25s, opacity .2s; }
.menu-ico { top: 21px; }
.menu-ico::before, .menu-ico::after { content: ""; left: 0; }
.menu-ico::before { top: -6px; }
.menu-ico::after { top: 6px; }
.menu-aberto .menu-ico { background: transparent; }
.menu-aberto .menu-ico::before { transform: translateY(6px) rotate(45deg); }
.menu-aberto .menu-ico::after { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 1080px) {
  .menu-btn { display: block; }
  .nav { position: fixed; inset: var(--topo-h) 0 auto 0; background: var(--grafite); border-top: 1px solid var(--linha-esc); padding: 12px var(--lado) 28px; display: none; max-height: calc(100vh - var(--topo-h)); overflow-y: auto; }
  .menu-aberto .nav { display: block; }
  .nav ul { flex-direction: column; gap: 0; }
  .nav a { display: block; font-size: 1.35rem; padding: 16px 0; border-bottom: 1px solid var(--linha-esc); }
  .topo-acoes { margin-left: auto; }
  html:not(.js) .nav { display: block; position: static; padding: 0; background: none; border: 0; }
  html:not(.js) .menu-btn { display: none; }
}

/* ----------------------------------------------------------- elementos */
.sobre-titulo { display: flex; align-items: center; gap: 12px; font: 600 .82rem/1.3 var(--f-tit); letter-spacing: .16em; text-transform: uppercase; color: var(--verde-txt); margin-bottom: 22px; }
.sobre-titulo::before { content: ""; width: 28px; height: 1px; background: currentColor; flex: none; }
.secao-escura .sobre-titulo, .hero .sobre-titulo { color: var(--verde-claro); }
.lead { font-size: clamp(1.12rem, 1.5vw, 1.32rem); line-height: 1.55; }
.nota { font-size: .875rem; color: var(--cinza); }
.secao-escura .nota { color: var(--cinza-claro); }
.botoes { display: flex; flex-wrap: wrap; gap: 12px; }
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 22px; font: 600 1rem/1.1 var(--f-tit); letter-spacing: .08em; text-transform: uppercase; text-decoration: none; border-radius: var(--raio); border: 1px solid transparent; transition: background-color .2s, color .2s, border-color .2s; }
.btn-pri { background: var(--verde); color: var(--grafite); }
.btn-pri:hover { background: var(--verde-claro); }
.btn-sec { border-color: rgba(242, 243, 239, .45); color: var(--off); }
.btn-sec:hover { border-color: var(--off); background: rgba(242, 243, 239, .06); }
.btn-ico { width: 44px; height: 44px; border: 1px solid var(--linha); background: var(--branco); cursor: pointer; font-size: 1.1rem; border-radius: var(--raio); }
.btn-ico:hover:not(:disabled) { border-color: var(--verde); }
.btn-ico:disabled { opacity: .35; cursor: default; }
.link-seta { display: inline-flex; gap: 6px; align-items: baseline; font: 600 .95rem/1.2 var(--f-tit); letter-spacing: .08em; text-transform: uppercase; text-decoration: none; color: var(--verde-txt); padding: 6px 0; border-bottom: 1px solid currentColor; }
.link-seta:hover { color: var(--grafite); }
.lista { display: grid; gap: 6px; margin: 0 0 1em; }
.lista li { padding-left: 18px; position: relative; }
.lista li::before { content: ""; position: absolute; left: 0; top: .72em; width: 8px; height: 1px; background: var(--verde); }
.selo { display: inline-block; font: 600 .74rem/1 var(--f-tit); letter-spacing: .14em; text-transform: uppercase; padding: 6px 8px; margin-right: 10px; border: 1px solid currentColor; color: var(--verde-txt); vertical-align: 1px; }
.selo-claro { color: var(--verde-claro); }
.h-menor { font-size: clamp(1.4rem, 2vw, 1.75rem); font-weight: 400; margin-bottom: 22px; }
.h-mini { font: 600 .82rem/1.3 var(--f-tit); letter-spacing: .16em; text-transform: uppercase; margin: 22px 0 10px; color: var(--cinza); }
.coord { font: 400 .74rem/1.4 var(--f-mono); letter-spacing: .04em; }

/* ------------------------------------------------------------------ hero */
.hero { position: relative; min-height: 100vh; min-height: 100svh; background: radial-gradient(120% 90% at 78% 40%, #202925 0%, var(--grafite) 62%); color: var(--off); display: grid; grid-template-rows: 1fr auto; overflow: hidden; isolation: isolate; }
.hero-cena { position: absolute; inset: var(--topo-h) 0 70px 32%; z-index: -1; display: flex; align-items: center; }
.hero-cena svg { width: 100%; height: 100%; }
.hero::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(90deg, var(--grafite) 0%, rgba(23, 28, 26, .9) 30%, rgba(23, 28, 26, 0) 56%); }
.hero-in { align-self: center; padding: calc(var(--topo-h) + 48px) var(--lado) 40px; max-width: calc(620px + var(--lado)); }
.hero-sobre { font-size: .78rem; letter-spacing: .14em; }
.hero h1 { font-size: clamp(2.7rem, 6.4vw, 5.9rem); font-weight: 250; line-height: .98; letter-spacing: -.012em; margin-bottom: 28px; }
.hero h1 em { font-style: normal; color: var(--verde-claro); font-weight: 300; }
.hero-sub { font-size: clamp(1.05rem, 1.35vw, 1.2rem); color: rgba(242, 243, 239, .82); max-width: 54ch; margin-bottom: 14px; }
.hero-assina { font: 400 1.1rem/1.3 var(--f-tit); letter-spacing: .04em; color: var(--cinza-claro); margin-bottom: 34px; }
.hero-rodape { display: flex; align-items: center; gap: 22px; padding: 18px var(--lado); border-top: 1px solid var(--linha-esc); min-height: 70px; }
.hero-steps { display: flex; gap: clamp(10px, 2.2vw, 30px); flex-wrap: wrap; }
.hero-steps li { font: 500 .86rem/1.2 var(--f-tit); letter-spacing: .08em; text-transform: uppercase; color: rgba(242, 243, 239, .42); display: flex; gap: 8px; align-items: baseline; position: relative; padding-top: 10px; transition: color .4s; }
.hero-steps li::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: var(--linha-esc); }
.hero-steps li::after { content: ""; position: absolute; left: 0; top: 0; height: 2px; width: 0; background: var(--verde); transition: width .5s; }
.hero-steps li.on { color: var(--off); }
.hero-steps li.on::after { width: 100%; }
.step-n { font: .7rem/1 var(--f-mono); }
.hero-pausa { margin-left: auto; width: 40px; height: 40px; flex: none; border: 1px solid var(--linha-esc); background: none; cursor: pointer; position: relative; border-radius: 50%; }
.hero-pausa:hover { border-color: var(--verde); }
.pausa-ico { position: absolute; left: 15px; top: 13px; width: 10px; height: 14px; border-left: 3px solid var(--off); border-right: 3px solid var(--off); }
.hero-pausa[aria-pressed="true"] .pausa-ico { left: 16px; width: 0; height: 0; border-style: solid; border-width: 7px 0 7px 11px; border-color: transparent transparent transparent var(--off); }
.hero-rodape .coord { color: var(--cinza-claro); margin: 0; white-space: nowrap; }

@media (max-width: 900px) {
  .hero-cena { inset: calc(var(--topo-h) - 10px) -14% auto -14%; height: 42vh; opacity: .85; }
  .hero::after { background: linear-gradient(180deg, rgba(23, 28, 26, 0) 0%, rgba(23, 28, 26, 0) 30%, rgba(23, 28, 26, .9) 46%, var(--grafite) 58%); }
  .hero-in { padding-top: calc(var(--topo-h) + 34vh); }
  .hero-rodape { flex-wrap: wrap; }
  .hero-rodape .coord { display: none; }
  .hero-steps li:not(.on) { display: none; }
  .hero-steps li { min-width: 180px; }
}

/* --------------------------------------------------------------- seções */
.secao { padding: clamp(80px, 11vw, 150px) var(--lado); position: relative; }
.secao-papel { background: var(--branco); }
.secao-escura { background: var(--grafite); color: var(--off); }
.grade { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(28px, 6vw, 96px); align-items: start; }
.cab h2 { font-size: clamp(2.15rem, 4.3vw, 3.7rem); }
.cab-larga { max-width: 900px; margin-bottom: clamp(40px, 6vw, 72px); }
.texto-longo { padding-top: 38px; max-width: 64ch; }
.texto-longo p:last-child { margin-bottom: 0; }
@media (max-width: 860px) { .grade { grid-template-columns: 1fr; } .texto-longo { padding-top: 0; } }

/* quem somos */
.destaques { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: clamp(56px, 8vw, 96px); border-top: 1px solid var(--linha); }
.destaques li { padding: 22px 22px 0 0; display: grid; gap: 10px; font: 400 1.3rem/1.2 var(--f-tit); }
.destaques li + li { padding-left: 22px; border-left: 1px solid var(--linha); }
.dest-k { font: .72rem/1 var(--f-mono); color: var(--verde-txt); }
@media (max-width: 860px) { .destaques { grid-template-columns: 1fr 1fr; } .destaques li:nth-child(3) { border-left: 0; padding-left: 0; } .destaques li { padding-bottom: 22px; } }
@media (max-width: 480px) { .destaques { grid-template-columns: 1fr; } .destaques li + li { border-left: 0; padding-left: 0; border-top: 1px solid var(--linha); } }

/* competências */
.comps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--linha); }
.comp { padding: 30px 28px 38px 0; border-bottom: 1px solid var(--linha); }
.comp:not(:nth-child(3n + 1)) { padding-left: 28px; border-left: 1px solid var(--linha); }
.comp-topo { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 28px; }
.comp-n { font: .74rem/1 var(--f-mono); color: var(--cinza); }
.comp-ico { width: 44px; height: 44px; fill: none; stroke: var(--verde); stroke-width: 1.3; }
.comp h3 { font-size: clamp(1.5rem, 2.1vw, 1.9rem); font-weight: 400; margin-bottom: 8px; }
.comp-sub { font: 500 .8rem/1.3 var(--f-tit); letter-spacing: .12em; text-transform: uppercase; color: var(--cinza); margin-bottom: 16px; }
.comp p:not(.comp-sub) { font-size: .96rem; color: #2E3431; }
.comp .lista { font-size: .92rem; }
@media (max-width: 1000px) {
  .comps { grid-template-columns: 1fr 1fr; }
  .comp:not(:nth-child(3n + 1)) { padding-left: 0; border-left: 0; }
  .comp:nth-child(2n) { padding-left: 28px; border-left: 1px solid var(--linha); }
}
@media (max-width: 640px) { .comps { grid-template-columns: 1fr; } .comp:nth-child(2n) { padding-left: 0; border-left: 0; } }

/* ecossistema */
.entidades { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: clamp(48px, 7vw, 80px); }
.entidade { padding: 32px; border: 1px solid var(--linha-esc); border-top: 3px solid var(--verde); background: var(--grafite-2); }
.ent-ph { border-top-color: var(--cinza-claro); }
.ent-papel { font: 600 .75rem/1 var(--f-tit); letter-spacing: .16em; text-transform: uppercase; color: var(--cinza-claro); }
.entidade h3 { font-size: clamp(2rem, 3vw, 2.6rem); letter-spacing: .02em; margin-bottom: 6px; }
.ent-sub { font: 500 .85rem/1.3 var(--f-tit); letter-spacing: .1em; text-transform: uppercase; color: var(--verde-claro); margin-bottom: 18px; }
.ent-ph .ent-sub { color: var(--cinza-claro); }
.entidade p:last-child { color: rgba(242, 243, 239, .8); margin: 0; }
.fluxo { margin-top: clamp(56px, 7vw, 88px); }
.fluxo-titulo { font: 300 clamp(1.5rem, 2.6vw, 2.2rem)/1.15 var(--f-tit); margin-bottom: 36px; max-width: 900px; }
.fluxo-titulo span[lang="pt-BR"] { display: block; color: var(--cinza-claro); font-size: .7em; margin-top: 6px; }
.fluxo-nos { display: grid; grid-template-columns: repeat(6, 1fr); position: relative; }
.fluxo-nos::before { content: ""; position: absolute; left: 0; right: 0; top: 22px; height: 1px; background: var(--linha-esc); }
.eco-no { width: 100%; background: none; border: 0; padding: 0 10px 12px 0; text-align: left; cursor: pointer; display: grid; gap: 14px; color: rgba(242, 243, 239, .62); }
.eco-k { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; font: .7rem/1 var(--f-mono); position: relative; background: var(--grafite); border: 1px solid var(--verde); color: var(--off); transition: background-color .25s, color .25s; }
.eco-ph .eco-k { border-color: var(--cinza-claro); }
.eco-t { font: 500 1.05rem/1.2 var(--f-tit); letter-spacing: .06em; text-transform: uppercase; transition: color .2s; }
.eco-no:hover .eco-t, .eco-no[aria-pressed="true"] .eco-t { color: var(--off); }
.eco-no[aria-pressed="true"] .eco-k { background: var(--verde); color: var(--grafite); }
.eco-ph[aria-pressed="true"] .eco-k { background: var(--off); border-color: var(--off); }
.fluxo-desc { margin-top: 30px; padding: 28px 30px; background: var(--grafite-2); border-left: 3px solid var(--verde); min-height: 168px; max-width: 760px; }
.eco-desc h4 { font-size: 1.7rem; font-weight: 400; margin-bottom: 10px; }
.eco-desc p:last-child { margin: 0; color: rgba(242, 243, 239, .82); }
.eco-quem { font: 500 .8rem/1 var(--f-tit); letter-spacing: .14em; text-transform: uppercase; color: var(--cinza-claro); margin-bottom: 12px; }
.eco-quem strong { color: var(--off); font-weight: 600; }
.js .eco-desc { display: none; }
.js .eco-desc.on { display: block; animation: surgir .45s ease both; }
html:not(.js) .eco-desc + .eco-desc { margin-top: 24px; }
.fluxo-legenda { display: flex; align-items: center; gap: 10px; margin-top: 18px; font: 500 .8rem/1 var(--f-tit); letter-spacing: .12em; text-transform: uppercase; color: var(--cinza-claro); }
.leg { width: 12px; height: 12px; border-radius: 50%; border: 1px solid; display: inline-block; }
.leg-tf { border-color: var(--verde); background: var(--verde); }
.leg-ph { border-color: var(--cinza-claro); margin-left: 12px; }
@keyframes surgir { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media (max-width: 900px) {
  .entidades { grid-template-columns: 1fr; }
  .fluxo-nos { grid-template-columns: 1fr 1fr 1fr; row-gap: 22px; }
  .fluxo-nos::before { display: none; }
}
@media (max-width: 520px) { .fluxo-nos { grid-template-columns: 1fr 1fr; } .entidade { padding: 24px; } .fluxo-desc { padding: 22px; } }

/* laboratório */
.lab { display: grid; grid-template-columns: minmax(0, 7.4fr) minmax(0, 4.6fr); gap: clamp(24px, 4vw, 56px); align-items: start; }
.lab-fig { margin: 0; position: relative; background: var(--branco); border: 1px solid var(--linha); padding: clamp(10px, 2vw, 24px); }
.lab-fig svg { width: 100%; height: auto; aspect-ratio: 904 / 572; }
.lab-fig figcaption { font-size: .82rem; color: var(--cinza); border-top: 1px solid var(--linha); padding-top: 14px; margin-top: 10px; }
.lab-ind { position: absolute; top: clamp(10px, 2vw, 24px); right: clamp(10px, 2vw, 24px); width: min(270px, 46%); background: rgba(255, 255, 255, .94); border: 1px solid var(--linha); padding: 14px 16px; animation: surgir .5s ease both; }
.ind-titulo { font: 600 .74rem/1.2 var(--f-tit); letter-spacing: .14em; text-transform: uppercase; color: var(--verde-txt); margin-bottom: 8px; }
.lab-ind dl { margin: 0; display: grid; gap: 6px; }
.lab-ind dl div { display: flex; justify-content: space-between; gap: 10px; border-bottom: 1px solid var(--linha); padding-bottom: 5px; }
.lab-ind dt { font-size: .78rem; color: var(--cinza); line-height: 1.3; }
.lab-ind dd { margin: 0; font: 400 .78rem/1.3 var(--f-mono); white-space: nowrap; }
.lab-tabs { display: grid; border-top: 1px solid var(--linha); }
.lab-tabs [role="tab"] { display: flex; align-items: baseline; gap: 14px; width: 100%; text-align: left; padding: 15px 14px; background: none; border: 0; border-bottom: 1px solid var(--linha); cursor: pointer; font: 400 1.45rem/1.1 var(--f-tit); color: var(--cinza); position: relative; transition: color .2s, background-color .2s; }
.lab-tabs [role="tab"]::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: transparent; transition: background-color .2s; }
.lab-tabs [role="tab"]:hover { color: var(--grafite); }
.lab-tabs [role="tab"][aria-selected="true"] { color: var(--grafite); background: var(--branco); }
.lab-tabs [role="tab"][aria-selected="true"]::before { background: var(--verde); }
.tab-n { font: .72rem/1 var(--f-mono); color: var(--verde-txt); }
.lab-painel { padding: 24px 2px 6px; }
.lab-painel:focus-visible { outline-offset: 2px; }
.lab-painel h3 { font-size: 1.15rem; font-family: var(--f-txt); font-weight: 600; margin-bottom: 8px; line-height: 1.3; }
.lab-painel p { color: #2E3431; margin: 0; }
html:not(.js) .lab-painel { border-bottom: 1px solid var(--linha); padding-bottom: 18px; }
html:not(.js) .lab-tabs, html:not(.js) .lab-nav { display: none; }
.lab-nav { display: flex; align-items: center; gap: 14px; margin-top: 22px; }
.lab-pos { font: .78rem/1 var(--f-mono); color: var(--cinza); }
.lab-pos b { color: var(--grafite); font-weight: 400; }
@media (max-width: 960px) {
  .lab { grid-template-columns: 1fr; }
  .lab-tabs { grid-template-columns: repeat(5, minmax(0, 1fr)); border: 1px solid var(--linha); border-bottom: 0; }
  .lab-tabs [role="tab"] { flex-direction: column; gap: 6px; font-size: 1rem; padding: 12px 8px; border-right: 1px solid var(--linha); }
  .lab-tabs [role="tab"]:last-child { border-right: 0; }
  .lab-tabs [role="tab"]::before { right: 0; bottom: auto; width: auto; height: 3px; }
  .lab-ind { position: static; width: auto; margin-top: 12px; }
}
@media (max-width: 520px) { .lab-tabs [role="tab"] { font-size: .86rem; letter-spacing: 0; padding: 10px 4px; } }

/* inteligência */
.ia-bloco { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(28px, 5vw, 72px); margin-top: clamp(56px, 7vw, 88px); align-items: start; }
.frentes { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--linha); }
.frentes li { display: flex; gap: 14px; padding: 16px 16px 16px 0; border-bottom: 1px solid var(--linha); font-size: .96rem; line-height: 1.45; }
.frentes li:nth-child(2n) { padding-left: 16px; border-left: 1px solid var(--linha); }
.fr-n { font: .7rem/1.9 var(--f-mono); color: var(--verde-txt); flex: none; }
.produto { background: var(--grafite); color: var(--off); padding: clamp(26px, 3.4vw, 40px); position: relative; overflow: hidden; }
.produto::after { content: ""; position: absolute; right: -60px; bottom: -60px; width: 240px; height: 240px; background: url("/assets/img/contornos.svg") center / contain no-repeat; opacity: .35; pointer-events: none; }
.produto h3 { font-size: clamp(1.9rem, 2.8vw, 2.5rem); margin: 18px 0 6px; }
.produto p { color: rgba(242, 243, 239, .84); position: relative; z-index: 1; }
.produto .h-mini { color: var(--cinza-claro); }
.produto .nota { color: var(--cinza-claro); margin: 18px 0 0; }
.tags { display: flex; flex-wrap: wrap; gap: 8px; position: relative; z-index: 1; }
.tags li { font: 500 .82rem/1 var(--f-tit); letter-spacing: .08em; text-transform: uppercase; border: 1px solid var(--linha-esc); padding: 8px 10px; }
@media (max-width: 900px) { .ia-bloco { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .frentes { grid-template-columns: 1fr; } .frentes li:nth-child(2n) { padding-left: 0; border-left: 0; } }

/* pesquisa */
.pilares { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: clamp(48px, 7vw, 80px); }
.pilares li { border-top: 3px solid var(--grafite); padding-top: 22px; }
.pilares li:first-child { border-top-color: var(--verde); }
.pil-n { font: .74rem/1 var(--f-mono); color: var(--cinza); }
.pilares h3 { font-size: clamp(1.9rem, 3vw, 2.6rem); margin: 14px 0 10px; }
.pilares p { color: #2E3431; }
@media (max-width: 760px) { .pilares { grid-template-columns: 1fr; } }

/* fundador */
.ceo { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: clamp(28px, 6vw, 96px); align-items: start; }
.ceo-marca { aspect-ratio: 4 / 5; background: var(--grafite) url("/assets/img/contornos.svg") center 70% / 140% no-repeat; color: var(--off); display: flex; flex-direction: column; justify-content: space-between; padding: 28px; position: sticky; top: calc(var(--topo-h) + 24px); }
.ceo-ini { font: 200 clamp(4.5rem, 10vw, 8rem)/.85 var(--f-tit); letter-spacing: .04em; color: var(--off); }
.ceo-coord { font: 600 .8rem/1 var(--f-tit); letter-spacing: .16em; text-transform: uppercase; color: var(--verde-claro); }
.ceo-txt h2 { font-size: clamp(2.4rem, 4.6vw, 4rem); margin-bottom: 12px; }
.ceo-cargo { font: 500 .95rem/1.4 var(--f-tit); letter-spacing: .1em; text-transform: uppercase; color: var(--cinza); margin-bottom: 26px; }
.ceo-txt > p:not(.sobre-titulo):not(.ceo-cargo) { max-width: 62ch; }
.bio { margin-top: 26px; border-top: 1px solid var(--linha); border-bottom: 1px solid var(--linha); max-width: 62ch; }
.bio summary { cursor: pointer; list-style: none; padding: 18px 0; font: 600 1rem/1 var(--f-tit); letter-spacing: .1em; text-transform: uppercase; color: var(--verde-txt); display: flex; justify-content: space-between; align-items: center; }
.bio summary::-webkit-details-marker { display: none; }
.bio summary::after { content: "+"; font: 300 1.6rem/1 var(--f-tit); transition: transform .25s; }
.bio[open] summary::after { transform: rotate(45deg); }
.bio-in { padding-bottom: 20px; }
@media (max-width: 760px) { .ceo { grid-template-columns: 1fr; } .ceo-marca { position: static; aspect-ratio: auto; min-height: 220px; } }

/* projetos */
.cats { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: clamp(48px, 7vw, 80px); border-top: 1px solid var(--linha); border-left: 1px solid var(--linha); }
.cats li { padding: 26px 20px 30px; border-right: 1px solid var(--linha); border-bottom: 1px solid var(--linha); font: 400 clamp(1.25rem, 1.8vw, 1.55rem)/1.15 var(--f-tit); display: grid; gap: 22px; align-content: space-between; min-height: 150px; transition: background-color .25s; }
.cats li:hover { background: var(--branco); }
.cat-n { font: .72rem/1 var(--f-mono); color: var(--verde-txt); }
.casos { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; margin-top: 48px; }
.caso { background: var(--branco); border: 1px solid var(--linha); padding: 0 0 22px; }
.caso img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; margin-bottom: 18px; }
.caso > *:not(img) { margin-inline: 22px; }
.caso h3 { font-size: 1.6rem; font-weight: 400; margin-bottom: 12px; }
.caso-meta { font: 500 .78rem/1.2 var(--f-tit); letter-spacing: .12em; text-transform: uppercase; color: var(--verde-txt); margin-bottom: 8px; padding-top: 20px; }
.caso img + .caso-meta { padding-top: 0; }
.caso p { font-size: .94rem; }
@media (max-width: 900px) { .cats { grid-template-columns: 1fr 1fr; } }

/* visão global */
.global { background: var(--grafite) url("/assets/img/contornos.svg") right -300px center / 760px no-repeat; }
.global-in { max-width: 1100px; }
.global h2 { font-size: clamp(2.8rem, 7vw, 6.2rem); font-weight: 250; margin-bottom: clamp(36px, 5vw, 60px); }
.global-txt { display: grid; grid-template-columns: 1.3fr 1fr; gap: 20px 56px; max-width: 1000px; color: rgba(242, 243, 239, .86); }
.global-txt .lead { grid-row: span 2; color: var(--off); }
.global-assina { margin-top: 48px; font: 400 1.2rem/1.3 var(--f-tit); letter-spacing: .06em; color: var(--verde-claro); }
@media (max-width: 760px) { .global-txt { grid-template-columns: 1fr; } .global-txt .lead { grid-row: auto; } .global { background-size: 480px; background-position: right -200px top 40px; } }

/* contato */
.dados { font-style: normal; margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--linha); line-height: 1.9; }
.dados a { text-decoration-color: var(--verde); text-underline-offset: 3px; }
.dados a:hover { color: var(--verde-txt); }
.canais { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; margin-top: clamp(48px, 7vw, 80px); }
.canal { background: var(--branco); border: 1px solid var(--linha); border-top: 3px solid var(--verde); padding: 24px 22px; display: flex; flex-direction: column; }
.canal-n { font: .72rem/1 var(--f-mono); color: var(--cinza); }
.canal h3 { font-size: 1.55rem; font-weight: 400; margin: 18px 0 10px; }
.canal p { font-size: .92rem; color: #2E3431; flex: 1; }
.canal-acoes { display: flex; flex-wrap: wrap; gap: 6px 18px; }
@media (max-width: 1100px) { .canais { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 700px) { .canais { grid-template-columns: 1fr; } }

/* rodapé */
.rodape { background: var(--grafite); color: var(--off); padding: 64px var(--lado) 34px; border-top: 1px solid var(--linha-esc); }
.rodape-in { display: grid; grid-template-columns: auto 1fr auto; gap: 28px 56px; align-items: start; }
.rodape-logo { width: 220px; height: auto; }
.rodape-assina p { font: 300 1.3rem/1.3 var(--f-tit); margin: 0 0 4px; }
.rodape-assina p[lang="en"] { color: var(--cinza-claro); }
.rodape-links { display: grid; gap: 10px; }
.rodape-links a { font: 500 .9rem/1.2 var(--f-tit); letter-spacing: .1em; text-transform: uppercase; text-decoration: none; color: rgba(242, 243, 239, .78); }
.rodape-links a:hover { color: var(--verde-claro); }
.rodape-legal { grid-column: 1 / -1; border-top: 1px solid var(--linha-esc); padding-top: 22px; margin: 18px 0 0; font-size: .8rem; color: var(--cinza-claro); display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px; }
.rodape-curto { padding-top: 10px; }
.rodape-curto .rodape-legal { border: 0; }
@media (max-width: 860px) { .rodape-in { grid-template-columns: 1fr; } }

/* ------------------------------------------------- cena territorial */
.cena { overflow: visible; }
.cena .camada { opacity: 0; transition: opacity .9s ease, transform .9s ease; }
.cena .l-vol, .cena .l-sombra { transform: translateY(14px); }
.cena[data-v~="chao"] .l-chao, .cena[data-v~="topo"] .l-topo, .cena[data-v~="limite"] .l-limite,
.cena[data-v~="analise"] .l-analise, .cena[data-v~="plano"] .l-plano, .cena[data-v~="decisao"] .l-decisao { opacity: 1; }
.cena[data-v~="vol"] .l-vol, .cena[data-v~="sombra"] .l-sombra { opacity: 1; transform: none; }
.cena.dim-analise .l-analise { opacity: .32; }
.cena.dim-vol .l-vol { opacity: .45; }
.cena:not(.pronta) .camada { transition: none; }
.cena .edif polygon, .cena .copa, .cena .gleba, .cena .quadra, .cena .sombra { transition: fill .9s ease, stroke .9s ease, fill-opacity .9s ease; }

/* tema escuro (hero) */
.cena-escura .base-topo { fill: #1C2320; stroke: rgba(242, 243, 239, .22); stroke-width: 1; }
.cena-escura .base-lado-e { fill: #111513; }
.cena-escura .base-lado-d { fill: #0C0F0E; }
.cena-escura .gleba { stroke: rgba(242, 243, 239, .07); stroke-width: .8; }
.cena-escura .g1 { fill: #1F2B25; } .cena-escura .g2 { fill: #222A26; } .cena-escura .g3 { fill: #1B2622; } .cena-escura .g4 { fill: #26302A; }
.cena-escura .mata-ciliar { fill: #173A28; }
.cena-escura .agua { fill: none; stroke: #6F98A6; stroke-width: 3; stroke-linecap: round; }
.cena-escura .via-existente { fill: none; stroke: #9CA19D; stroke-width: 5; stroke-linecap: round; }
.cena-escura .curva { fill: none; stroke: rgba(242, 243, 239, .3); stroke-width: .8; }
.cena-escura .curva.mestra { stroke: rgba(242, 243, 239, .55); stroke-width: 1.1; }
.cena-escura .limite { fill: none; stroke: #F2F3EF; stroke-width: 1.2; stroke-dasharray: 8 5; }
.cena-escura .hachura-app { stroke: #4CC27E; stroke-width: 1.4; }
.cena-escura .hachura-decl { stroke: #C9B98F; stroke-width: 1.2; }
.cena-escura .zona-app { stroke: #4CC27E; stroke-width: 1; }
.cena-escura .zona-decl { stroke: #C9B98F; stroke-width: 1; }
.cena-escura .anel { fill: none; stroke: #4CC27E; stroke-width: 1; stroke-dasharray: 3 4; }
.cena-escura .ponto-acesso { fill: #4CC27E; }
.cena-escura .rot line { stroke: rgba(242, 243, 239, .7); stroke-width: .8; }
.cena-escura .rot circle { fill: #F2F3EF; }
.cena-escura .rot text { fill: #F2F3EF; stroke: #171C1A; font: 500 14px var(--f-txt); paint-order: stroke; stroke-width: 3px; stroke-linejoin: round; }
.cena-escura .rua { fill: rgba(242, 243, 239, .78); }
.cena-escura .quadra { fill: rgba(23, 28, 26, .55); stroke: rgba(242, 243, 239, .5); stroke-width: .8; }
.cena-escura .q-parque { fill: rgba(0, 154, 68, .38); }
.cena-escura .q-inst { fill: rgba(156, 161, 157, .3); }
.cena-escura .lote { fill: none; stroke: rgba(242, 243, 239, .38); stroke-width: .6; }
.cena-escura .edif polygon { fill: rgba(23, 28, 26, .25); stroke: #4CC27E; stroke-width: .8; stroke-linejoin: round; }
.cena-escura .tronco { stroke: rgba(242, 243, 239, .5); stroke-width: 1; }
.cena-escura .copa { fill: none; stroke: #4CC27E; stroke-width: .8; }
.cena-escura .sombra { fill: rgba(0, 0, 0, .42); }
.cena-escura.render .gleba { fill-opacity: .9; }
.cena-escura.render .edif .f-topo { fill: #F2F3EF; stroke: none; }
.cena-escura.render .edif .f-dir { fill: #B9BDB8; stroke: none; }
.cena-escura.render .edif .f-esq { fill: #7E837F; stroke: none; }
.cena-escura.render .copa { fill: #1E8F4E; stroke: #11643A; }
.cena-escura.render .tronco { stroke: #5B4A3A; }

/* tema claro (laboratório) */
.cena-clara .base-topo { fill: #ECEEE8; stroke: rgba(23, 28, 26, .25); stroke-width: 1; }
.cena-clara .base-lado-e { fill: #D3D6CF; }
.cena-clara .base-lado-d { fill: #C1C5BE; }
.cena-clara .gleba { stroke: rgba(23, 28, 26, .08); stroke-width: .8; }
.cena-clara .g1 { fill: #DFE5D7; } .cena-clara .g2 { fill: #E8E6D8; } .cena-clara .g3 { fill: #D8DFCF; } .cena-clara .g4 { fill: #E4E8DE; }
.cena-clara .mata-ciliar { fill: #BFD6BE; }
.cena-clara .agua { fill: none; stroke: #6E9AAB; stroke-width: 3; stroke-linecap: round; }
.cena-clara .via-existente { fill: none; stroke: #53565A; stroke-width: 5; stroke-linecap: round; }
.cena-clara .curva { fill: none; stroke: rgba(83, 86, 90, .45); stroke-width: .8; }
.cena-clara .curva.mestra { stroke: rgba(23, 28, 26, .65); stroke-width: 1.1; }
.cena-clara .limite { fill: none; stroke: #171C1A; stroke-width: 1.2; stroke-dasharray: 8 5; }
.cena-clara .hachura-app { stroke: #009A44; stroke-width: 1.4; }
.cena-clara .hachura-decl { stroke: #A88F55; stroke-width: 1.2; }
.cena-clara .zona-app { stroke: #009A44; stroke-width: 1; }
.cena-clara .zona-decl { stroke: #A88F55; stroke-width: 1; }
.cena-clara .anel { fill: none; stroke: #007A36; stroke-width: 1; stroke-dasharray: 3 4; }
.cena-clara .ponto-acesso { fill: #007A36; }
.cena-clara .rot line { stroke: #171C1A; stroke-width: .8; }
.cena-clara .rot circle { fill: #171C1A; }
.cena-clara .rot text { fill: #171C1A; stroke: #FFFFFF; font: 500 14px var(--f-txt); paint-order: stroke; stroke-width: 3px; stroke-linejoin: round; }
.cena-clara .rua { fill: #FFFFFF; stroke: rgba(23, 28, 26, .25); stroke-width: .5; }
.cena-clara .quadra { fill: rgba(255, 255, 255, .55); stroke: rgba(23, 28, 26, .55); stroke-width: .8; }
.cena-clara .q-parque { fill: rgba(0, 154, 68, .3); }
.cena-clara .q-inst { fill: rgba(83, 86, 90, .22); }
.cena-clara .lote { fill: none; stroke: rgba(23, 28, 26, .4); stroke-width: .6; }
.cena-clara .lote-dec { fill: rgba(83, 86, 90, .18); stroke: none; }
.cena-clara .lote-dec.lind { fill: rgba(0, 154, 68, .62); }
.cena-clara .edif polygon { fill: rgba(255, 255, 255, .4); stroke: #171C1A; stroke-width: .7; stroke-linejoin: round; }
.cena-clara .tronco { stroke: #6B5A48; stroke-width: 1; }
.cena-clara .copa { fill: none; stroke: #007A36; stroke-width: .8; }
.cena-clara .sombra { fill: rgba(23, 28, 26, .16); }
.cena-clara.render .edif .f-topo { fill: #FFFFFF; stroke: rgba(23, 28, 26, .35); stroke-width: .5; }
.cena-clara.render .edif .f-dir { fill: #E2E4DF; stroke: rgba(23, 28, 26, .35); stroke-width: .5; }
.cena-clara.render .edif .f-esq { fill: #B8BCB6; stroke: rgba(23, 28, 26, .35); stroke-width: .5; }
.cena-clara.render .copa { fill: #2FA661; stroke: #16753F; }

/* ------------------------------------------------ páginas de texto */
.pg-texto { background: var(--off); }
.doc { max-width: 760px; margin: 0 auto; padding: calc(var(--topo-h) + 64px) 20px 80px; }
.doc h1 { font-size: clamp(2.4rem, 6vw, 3.8rem); margin-bottom: 24px; }
.doc h2 { font-size: 1.7rem; font-weight: 400; margin: 44px 0 12px; padding-top: 18px; border-top: 1px solid var(--linha); }
.doc a { color: var(--verde-txt); text-underline-offset: 3px; }
.pg-texto .topo-voltar { font-size: .85rem; }
@media (max-width: 560px) { .pg-texto .topo-voltar { display: none; } }

.pg-404 { background: var(--grafite) url("/assets/img/contornos.svg") center / cover no-repeat; color: var(--off); min-height: 100vh; display: grid; place-items: center; }
.nf { padding: 40px 20px; max-width: 640px; }
.nf-logo { width: 196px; height: auto; margin-bottom: 56px; }
.nf-cod { font: 1rem/1 var(--f-mono); color: var(--verde-claro); margin-bottom: 16px; }
.nf h1 { font-size: clamp(2.4rem, 6vw, 3.8rem); margin-bottom: 12px; }
.nf-en { color: var(--cinza-claro); font: 300 1.4rem/1.3 var(--f-tit); margin-bottom: 40px; }

@media print {
  .topo, .hero-cena, .hero-rodape, .lab-nav, .menu-btn { display: none !important; }
  .hero, .secao-escura, .rodape, .produto { background: #fff !important; color: #000 !important; }
  .secao { padding: 32px 0; }
}
