@font-face {
  font-family:Manrope;
  src:url('assets/fonts/manrope-variable.ttf') format('truetype');
  font-weight:200 800;
  font-style:normal;
  font-display:swap;
}
:root {
  --ink:#080f1c;
  --blue:#246bff;
  --blue-action:#1258db;
  --white:#fff;
  --muted:#526075;
  --line:#dce2eb;
  --paper:#f3f6fa;
  --dark-copy:#b4c2d8;
  --max:1240px;
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:100px;
  scrollbar-color:#60708b var(--ink);
}
body {
  margin:0;
  background:var(--white);
  color:var(--ink);
  font:16px/1.65 Manrope,sans-serif;
}
::selection {
  background:var(--blue-action);
  color:white;
}
a {
  color:inherit;
  text-underline-offset:5px;
}
button,summary {
  font:inherit;
}
button,a,summary {
  -webkit-tap-highlight-color:transparent;
}
a:focus-visible,button:focus-visible,summary:focus-visible {
  outline:3px solid #669bff;
  outline-offset:6px;
}
svg {
  display:block;
}
h1,h2,h3,p {
  margin:0;
}
h1,h2,h3 {
  text-wrap:balance;
}
h1,h2 {
  letter-spacing:-.04em;
  line-height:1.13;
}
h2 {
  font-size:clamp(2rem,3.5vw,3.1rem);
  font-weight:600;
}
h3 {
  font-size:1.4rem;
  line-height:1.3;
  font-weight:650;
}
p {
  max-width:68ch;
}
.wrap {
  width:min(calc(100% - 96px),var(--max));
  margin-inline:auto;
}
.skip-link {
  position:fixed;
  top:-100px;
  left:20px;
  padding:14px;
  background:white;
  color:var(--ink);
  z-index:100;
}
.skip-link:focus {
  top:12px;
}

.site-header {
  position:sticky;
  top:0;
  z-index:20;
  background:var(--ink);
  color:white;
  border-bottom:1px solid #253043;
}
.header-row {
  display:flex;
  align-items:center;
  gap:32px;
  min-height:88px;
}
.brand {
  display:inline-flex;
  align-items:center;
  gap:11px;
  text-decoration:none;
  flex-shrink:0;
}
.brand-symbol {
  width:39px;
  height:39px;
  filter:invert(1);
  mix-blend-mode:screen;
}
.brand span {
  font-size:1.55rem;
  letter-spacing:-.035em;
  font-weight:500;
}
.desktop-nav {
  display:flex;
  gap:30px;
  margin-left:auto;
}
.desktop-nav a {
  font-size:.8125rem;
  text-decoration:none;
  padding-block:14px;
  color:#c6d0df;
}
.desktop-nav a:hover {
  color:white;
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:26px;
  min-height:54px;
  padding:15px 23px;
  background:var(--blue-action);
  color:white;
  border-radius:6px;
  font-weight:650;
  font-size:.875rem;
  text-decoration:none;
  transition:background-color .2s ease-out;
}
.button:hover {
  background:#0846b5;
}
.button svg,.text-link svg,summary svg,.hero-bottom svg {
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.6;
  flex-shrink:0;
}
.header-contact {
  background:transparent;
  border:1px solid #536078;
  min-height:44px;
  padding:10px 15px;
  font-size:.75rem;
  gap:20px;
}
.header-contact:hover {
  background:#1a2a43;
}
.mobile-menu {
  display:none;
}

.hero {
  background:var(--ink);
  color:white;
}
.hero-grid {
  display:grid;
  grid-template-columns:1.08fr 1fr;
  gap:44px;
  align-items:center;
  padding-top:66px;
  padding-bottom:62px;
}
.hero h1 {
  font-size:clamp(2.6rem,4.35vw,3.85rem);
  font-weight:550;
  max-width:620px;
}
.hero h1 span {
  color:#669bff;
}
.hero-copy>p {
  margin-top:26px;
  font-size:1.0625rem;
  line-height:1.8;
  color:var(--dark-copy);
  max-width:47ch;
}
.hero-actions {
  display:flex;
  align-items:center;
  gap:26px;
  margin-top:33px;
}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:15px;
  font-size:.875rem;
  font-weight:600;
}
.hero-actions .text-link {
  font-size:.8125rem;
  color:#dce6f5;
}
.connection-map {
  margin:0;
  min-width:0;
}
.network {
  position:relative;
  width:100%;
  aspect-ratio:560/420;
}
.network-lines {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  fill:#526c93;
}
.route {
  fill:none;
  stroke:#334663;
  stroke-width:1.5;
  transition:stroke .25s ease-out;
}
.network[data-active=ia] .route-ia,.network[data-active=atendimento] .route-atendimento,.network[data-active=sistemas] .route-sistemas,.network[data-active=operacao] .route-operacao {
  stroke:#669bff;
  stroke-width:2.5;
}
.network-center {
  position:absolute;
  left:50%;
  top:50%;
  width:96px;
  height:96px;
  transform:translate(-50%,-50%);
  display:grid;
  place-items:center;
  background:var(--ink);
}
.network-center svg {
  width:83px;
  height:78px;
  filter:invert(1);
  mix-blend-mode:screen;
}
.network-node {
  position:absolute;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
  width:39%;
  padding:15px 16px;
  text-align:left;
  color:#e2eaf7;
  background:#0e192a;
  border:1px solid #304058;
  border-radius:12px;
  cursor:pointer;
  transition:background-color .2s ease-out,border-color .2s ease-out;
}
.network-node:hover {
  border-color:#7daaff;
  background:#172c49;
}
.network-node[aria-pressed=true] {
  background:#152b4c;
  border-color:#669bff;
}
.network-node svg {
  width:27px;
  height:27px;
  fill:none;
  stroke:#8ab2ff;
  stroke-width:1.45;
  stroke-linecap:round;
  stroke-linejoin:round;
  margin-bottom:7px;
}
.network-node strong {
  font-size:.9375rem;
  font-weight:600;
}
.network-node span {
  font-size:.66rem;
  color:#b4c2d8;
}
.node-atendimento {
  left:0;
  top:4%;
}
.node-sistemas {
  right:0;
  top:4%;
}
.node-ia {
  left:0;
  bottom:2%;
}
.node-operacao {
  right:0;
  bottom:2%;
}
.connection-detail {
  margin-top:24px;
  padding-top:21px;
  border-top:1px solid #304058;
  min-height:112px;
}
.connection-detail strong {
  font-size:.875rem;
  font-weight:600;
}
.connection-detail p {
  font-size:.8125rem;
  color:var(--dark-copy);
  margin-top:5px;
  max-width:59ch;
}
.connection-map figcaption {
  font-size:.65rem;
  color:#a1b1c9;
  margin-top:13px;
}
.hero-bottom {
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-top:1px solid #2b374a;
  padding-block:23px;
  color:#b4c2d8;
  font-size:.75rem;
}
.hero-bottom a {
  display:flex;
  align-items:center;
  gap:15px;
  text-decoration:none;
}
.hero-bottom svg {
  width:17px;
  height:17px;
}

.services {
  padding-block:104px 85px;
}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:60px;
  margin-bottom:48px;
}
.section-heading>p {
  font-size:.9375rem;
  max-width:36ch;
  color:var(--muted);
}
.service-list {
  border-top:1px solid var(--line);
}
.service {
  display:grid;
  grid-template-columns:.9fr 2fr;
  gap:40px;
  padding-block:34px;
  border-bottom:1px solid var(--line);
}
.service h3 {
  max-width:15ch;
  padding-top:4px;
}
.service dl {
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:16px 36px;
  margin:0;
}
.service dl>div:first-child {
  grid-column:1;
}
.service dl>div:nth-child(2) {
  grid-column:2;
  grid-row:1 / 3;
}
.service dl>div:last-child {
  grid-column:1;
}
.service dt {
  font-size:.6875rem;
  color:var(--muted);
  margin-bottom:6px;
  font-weight:700;
}
.service dd {
  margin:0;
  font-size:.875rem;
  color:var(--muted);
  line-height:1.75;
}
.service dl>div:last-child dd {
  color:var(--blue-action);
  font-weight:650;
}
.integration-capabilities {
  margin:16px 0 0;
  padding-left:20px;
}
.integration-capabilities li+li {
  margin-top:12px;
}
.integration-capabilities strong {
  color:var(--ink);
  font-weight:650;
}
.service-feature {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:64px;
  padding:48px;
  margin-block:0 16px;
  background:var(--paper);
}
.service-feature h3 {
  margin:0;
  font-size:clamp(1.7rem,2.7vw,2.4rem);
  line-height:1.2;
  letter-spacing:-.03em;
  font-weight:600;
}
.service-feature h3 span {
  color:var(--blue-action);
}
.service-feature-intro>p {
  margin-top:24px;
  font-size:.9375rem;
  color:var(--muted);
  max-width:43ch;
}
.service-feature-intro .service-feature-outcome {
  color:var(--ink);
  font-weight:650;
}
.service-feature .text-link {
  margin-top:24px;
  color:var(--blue-action);
}
.service-feature-details {
  display:grid;
  gap:24px;
}
.service-feature-details>div+div {
  border-top:1px solid var(--line);
  padding-top:24px;
}
.service-feature h4 {
  margin:0 0 8px;
  font-size:1rem;
  font-weight:700;
  line-height:1.4;
}
.service-feature-details p {
  font-size:.875rem;
  color:var(--muted);
}
@media(max-width:900px) {
  .service-feature {
    padding:32px;
    gap:32px;
  }
}
@media(max-width:650px) {
  .service-feature {
    grid-template-columns:1fr;
    padding:28px 20px;
    gap:32px;
  }
  .service-feature h3 br {
    display:none;
  }
  .service-feature-intro>p {
    font-size:.875rem;
  }
}
.service-note {
  font-size:.75rem;
  color:var(--muted);
  margin-top:25px;
  max-width:none;
}

.experience {
  background:var(--paper);
  padding-block:80px;
}
.experience-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:110px;
}
.experience h2 {
  font-size:clamp(2rem,3.25vw,2.85rem);
}
.experience h2 span {
  color:var(--blue-action);
}
.experience-copy>p {
  font-size:.9375rem;
  color:var(--muted);
}
.experience-copy .large-copy {
  font-size:1.4rem;
  line-height:1.5;
  color:var(--ink);
  margin-bottom:20px;
}
.experience-copy .text-link {
  margin-top:26px;
  color:var(--blue-action);
}

.process {
  padding-block:94px 100px;
}
.process .section-heading {
  margin-bottom:43px;
}
.process-steps {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:32px;
  list-style:none;
  margin:0;
  padding:0;
  counter-reset:step;
}
.process-steps li {
  border-top:1px solid var(--line);
  padding-top:20px;
}
.step-number {
  display:block;
  color:var(--blue-action);
  font-size:.8125rem;
  font-variant-numeric:tabular-nums;
  margin-bottom:25px;
}
.process-steps h3 {
  font-size:1.125rem;
  margin-bottom:14px;
}
.process-steps p {
  font-size:.875rem;
  color:var(--muted);
}

.contact.wrap {
  width:100%;
  max-width:none;
  background:var(--ink);
  color:white;
  display:grid;
  grid-template-columns:1.25fr 1fr;
  gap:80px;
  padding:82px max(48px,calc((100% - var(--max))/2));
}
.contact h2 {
  font-size:clamp(2.1rem,3.8vw,3.4rem);
}
.contact h2 span {
  color:#669bff;
}
.contact p {
  font-size:.9375rem;
  color:var(--dark-copy);
  margin-top:24px;
  max-width:48ch;
}
.contact-action {
  align-self:center;
}
.contact-action .button {
  min-width:240px;
}
.contact-action #email-help {
  font-size:.6875rem;
  margin-top:12px;
}
.email {
  display:inline-block;
  margin-top:25px;
  font-size:clamp(.875rem,1.6vw,1.25rem);
  color:white;
}

.site-footer {
  background:var(--ink);
  color:white;
  border-top:1px solid #283346;
}
.footer-row {
  display:flex;
  align-items:center;
  gap:50px;
  padding-block:30px;
}
.site-footer .brand-symbol {
  width:30px;
  height:30px;
}
.site-footer .brand span {
  font-size:1.25rem;
}
.site-footer p {
  font-size:.6875rem;
  line-height:1.7;
  color:var(--dark-copy);
}
.site-footer small {
  font-size:.6875rem;
  color:var(--dark-copy);
  margin-left:auto;
}

@media(min-width:1500px) {
  .hero-grid {
    padding-top:85px;
    padding-bottom:76px;
  }
}
@media(max-width:1100px) {
  .wrap {
    width:calc(100% - 64px);
  }
  .header-row {
    gap:24px;
  }
  .desktop-nav {
    gap:20px;
  }
  .hero-grid {
    gap:32px;
  }
  .hero-actions {
    gap:20px;
    align-items:flex-start;
    flex-direction:column;
  }
  .network-node {
    padding:12px;
  }
  .network-node strong {
    font-size:.8125rem;
  }
  .network-node span {
    font-size:.625rem;
  }
  .experience-grid {
    gap:60px;
  }
  .contact.wrap {
    padding-inline:32px;
  }
  .section-heading {
    gap:40px;
  }
}
@media(max-width:900px) {
  .desktop-nav {
    display:none;
  }
  .header-contact {
    margin-left:auto;
  }
  .mobile-menu {
    display:block;
    position:relative;
    margin-left:8px;
  }
  .mobile-menu summary {
    display:flex;
    align-items:center;
    gap:10px;
    cursor:pointer;
    font-size:.8125rem;
    min-height:44px;
    list-style:none;
  }
  .mobile-menu summary::-webkit-details-marker {
    display:none;
  }
  .mobile-menu nav {
    position:absolute;
    right:0;
    top:58px;
    width:245px;
    background:#102038;
    border:1px solid #415371;
    border-radius:6px;
    padding:10px;
  }
  .mobile-menu nav a {
    display:block;
    padding:12px 15px;
    min-height:48px;
    font-size:.875rem;
    text-decoration:none;
  }
  .mobile-menu nav a:hover {
    background:#203857;
  }
  .hero-grid {
    grid-template-columns:1fr 1fr;
    gap:28px;
    padding-top:48px;
  }
  .hero h1 {
    font-size:clamp(2.3rem,4.6vw,3rem);
  }
  .hero-copy>p {
    font-size:.9375rem;
  }
  .network-node {
    gap:3px;
  }
  .network-node span {
    display:none;
  }
  .network-node svg {
    width:24px;
    height:24px;
    margin-bottom:3px;
  }
  .network-center {
    width:70px;
    height:70px;
  }
  .network-center svg {
    width:60px;
    height:60px;
  }
  .connection-detail {
    min-height:130px;
  }
  .section-heading {
    align-items:flex-start;
    flex-direction:column;
    gap:22px;
  }
  .section-heading>p {
    max-width:54ch;
  }
  .service {
    grid-template-columns:.9fr 2fr;
    gap:28px;
  }
  .service dl {
    gap:18px 24px;
  }
  .process-steps {
    grid-template-columns:repeat(2,minmax(0,1fr));
    row-gap:35px;
  }
  .contact.wrap {
    gap:35px;
  }
  .footer-row {
    gap:25px;
  }
}
@media(max-width:650px) {
  html {
    scroll-padding-top:85px;
  }
  .wrap {
    width:calc(100% - 40px);
  }
  .header-row {
    min-height:74px;
  }
  .header-contact {
    display:none;
  }
  .mobile-menu {
    margin-left:auto;
  }
  .brand-symbol {
    width:34px;
    height:34px;
  }
  .brand span {
    font-size:1.35rem;
  }
  .hero-grid {
    grid-template-columns:1fr;
    gap:42px;
    padding-top:43px;
    padding-bottom:32px;
  }
  .hero h1 {
    font-size:clamp(2.25rem,8.8vw,3.25rem);
    max-width:540px;
  }
  .hero-copy>p {
    font-size:.9375rem;
    max-width:43ch;
    margin-top:22px;
  }
  .hero-actions {
    flex-direction:row;
    align-items:center;
    gap:20px;
    margin-top:27px;
  }
  .hero-actions .button {
    font-size:.8125rem;
    padding-inline:17px;
    gap:18px;
  }
  .hero-actions .text-link {
    font-size:.75rem;
    max-width:12ch;
  }
  .network {
    max-width:460px;
    margin-inline:auto;
    aspect-ratio:1/1;
  }
  .network-node {
    padding:14px;
    width:39%;
  }
  .network-node svg {
    width:28px;
    height:28px;
    margin-bottom:7px;
  }
  .network-node strong {
    font-size:.875rem;
  }
  .network-node span {
    display:block;
    font-size:.6875rem;
  }
  .network-center {
    width:75px;
    height:75px;
  }
  .network-center svg {
    width:68px;
    height:68px;
  }
  .connection-detail {
    margin-top:20px;
    padding-top:18px;
    min-height:100px;
  }
  .connection-map figcaption {
    max-width:48ch;
  }
  .hero-bottom {
    padding-block:19px;
    font-size:.6875rem;
  }
  .hero-bottom>a {
    font-size:0;
    gap:0;
  }
  .hero-bottom svg {
    width:23px;
    height:23px;
  }
  .hero-bottom>a:after {
    content:'Soluções';
    font-size:.6875rem;
    margin-left:8px;
  }
  .services {
    padding-block:62px;
  }
  .section-heading {
    margin-bottom:32px;
    gap:20px;
  }
  h2 {
    font-size:2rem;
  }
  .section-heading>p {
    font-size:.875rem;
  }
  .service {
    grid-template-columns:1fr;
    gap:22px;
    padding-block:29px;
  }
  .service h3 {
    max-width:none;
    font-size:1.3rem;
  }
  .service dl {
    gap:20px;
    grid-template-columns:1fr;
  }
  .service dl>div:first-child,.service dl>div:nth-child(2),.service dl>div:last-child {
    grid-column:auto;
    grid-row:auto;
  }
  .service dl>div:last-child {
    padding-top:15px;
    border-top:1px solid var(--line);
  }
  .service dl>div:nth-child(2) dd {
    color:var(--ink);
  }
  .service dt {
    font-size:.6875rem;
  }
  .service dd {
    font-size:.875rem;
  }
  .service-note {
    font-size:.6875rem;
  }
  .experience {
    padding-block:58px;
  }
  .experience-grid {
    grid-template-columns:1fr;
    gap:30px;
  }
  .experience h2 {
    font-size:2rem;
  }
  .experience-copy .large-copy {
    font-size:1.1875rem;
  }
  .process {
    padding-block:62px;
  }
  .process-steps {
    gap:28px 22px;
  }
  .process-steps h3 {
    font-size:1rem;
  }
  .process-steps p {
    font-size:.8125rem;
  }
  .step-number {
    margin-bottom:18px;
  }
  .contact.wrap {
    grid-template-columns:1fr;
    padding:60px 20px;
    gap:32px;
  }
  .contact h2 {
    font-size:2.2rem;
  }
  .contact p {
    font-size:.875rem;
    margin-top:23px;
  }
  .contact-action .button {
    width:100%;
    min-width:0;
  }
  .contact-action #email-help {
    margin-top:10px;
  }
  .email {
    font-size:1rem;
    margin-top:22px;
  }
  .footer-row {
    flex-wrap:wrap;
    gap:20px;
    padding-block:28px;
  }
  .site-footer p {
    width:100%;
    order:3;
  }
  .site-footer small {
    margin-left:auto;
    font-size:.625rem;
  }
}
@media(max-width:360px) {
  .hero h1 {
    font-size:2.2rem;
  }
  .network-node {
    padding:11px;
  }
  .network-node strong {
    font-size:.75rem;
  }
  .network-node span {
    font-size:.625rem;
  }
  .hero-actions {
    gap:13px;
  }
  .hero-actions .button {
    padding-inline:13px;
    gap:10px;
  }
  .process-steps {
    grid-template-columns:1fr;
  }
  .email {
    font-size:.9375rem;
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*::before,*::after {
    animation:none!important;
    transition:none!important;
  }
}

