:root{
  --zx-primary:#0d6efd;
  --zx-primary-700:#0b5ed7;
  --zx-accent:#6f42c1;     /* roxo elegante p/ detalhes */
  --zx-ink:#0f172a;
  --zx-muted:#6b7280;
  --zx-border:#e9edf5;
  --zx-shadow:0 10px 30px rgba(13,110,253,.10), 0 4px 14px rgba(2,6,23,.06);
}

/* Base */
*,
*::before,
*::after { box-sizing: border-box; }

html,body{
  font-family:"Inter",system-ui,-apple-system,Segoe UI,Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;
  color:var(--zx-ink);
  background:#fff;
  scroll-behavior:smooth;
  max-width:100%;
  overflow-x:hidden; /* remove rolagem lateral */
}
a{text-decoration:none}
img{max-width:100%; height:auto; display:block}

/* Navbar (glass) */
.navbar{
  background:rgba(255,255,255,.88)!important;
  backdrop-filter:saturate(1.2) blur(10px);
  border-bottom:1px solid rgba(233,237,245,.8);
}
.navbar .nav-link{color:var(--zx-ink)}
.navbar .nav-link.active,.navbar .nav-link:hover{color:var(--zx-primary)}

/* Sections */
.section{padding:96px 0; position:relative; overflow:hidden}
.section-pt{padding-top:128px; padding-bottom:96px}
.section-alt{background:linear-gradient(180deg,#eef2ff 0%,#e7edff 100%)}

/* Hero */
.hero .chip{
  display:inline-flex; align-items:center; gap:.5rem;
  background:linear-gradient(90deg, rgba(13,110,253,.12), rgba(111,66,193,.12));
  color:var(--zx-primary-700);
  font-weight:600; border-radius:999px; padding:.45rem .85rem;
  box-shadow:0 2px 8px rgba(13,110,253,.12);
}
.hero .display-5{
  letter-spacing:-.02em;
  background:linear-gradient(90deg,#0d6efd 0%,#6f42c1 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.hero-card{border:1px solid var(--zx-border); border-radius:18px; background:#fff; box-shadow:var(--zx-shadow)}
.hero{position:relative; overflow:hidden}
.hero::before{
  content:"";
  position:absolute;
  left:50%; top:-10%;
  width:120vw; height:60vh;
  transform:translateX(-50%);
  background:
    radial-gradient(800px 400px at 20% 50%, rgba(13,110,253,.12), transparent 60%),
    radial-gradient(700px 380px at 80% 0%, rgba(111,66,193,.10), transparent 60%);
  z-index:-1;
}

/* Icons / Cards */
.icon-wrap{
  width:56px; height:56px; border-radius:14px; display:grid; place-items:center;
  background:linear-gradient(135deg, rgba(13,110,253,.12), rgba(111,66,193,.12));
  color:#0b4fc4; font-size:1.25rem;
}
.card-zx{
  border:1px solid var(--zx-border); border-radius:18px; background:#fff;
  transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.card-zx:hover{transform:translateY(-4px); box-shadow:var(--zx-shadow); border-color:#d9e5ff}

/* Lists */
.list-check{list-style:none; margin:0; padding:0}
.list-check li{
  padding-left:1.5rem; position:relative; margin:.5rem 0; color:#334155; font-size:.96rem
}
.list-check li::before{
  content:"\F26E"; /* bi-check-circle-fill */
  font-family:"bootstrap-icons"; position:absolute; left:0; top:0; color:#16a34a
}

/* Section titles com detalhe */
.section h2{
  position:relative; display:inline-block; padding-bottom:.35rem;
}
.section h2::after{
  content:""; position:absolute; left:0; bottom:0; height:3px; width:56%;
  background:linear-gradient(90deg,var(--zx-primary),var(--zx-accent));
  border-radius:3px;
}

/* Logo wall */
.logo-wall img{
  filter:none; opacity:1; transition:transform .25s ease;
}
.logo-wall img:hover{transform:scale(1.05)}

/* Contact / Footer */
.contact-card{border:1px solid var(--zx-border); border-radius:18px; background:#fff}
.footer .border-top{border-color:var(--zx-border)!important}

/* Botão voltar ao topo */
.back-to-top{
  position:fixed; right:16px; bottom:16px; width:48px; height:48px;
  border-radius:999px; display:none; align-items:center; justify-content:center; z-index:9999;
  box-shadow:0 10px 24px rgba(13,110,253,.25);
}

/* Helpers */
.text-muted{color:var(--zx-muted)!important}

/* ====== REVEAL ON SCROLL ====== */
.reveal{
  opacity:0; 
  transform:translateY(26px);
  transition:opacity .45s ease, transform .45s ease; /* antes .7s */
  transition-delay:var(--d, 0ms);
  will-change:opacity, transform;
}
.reveal--visible{
  opacity:1; 
  transform:none;
}

/* Reduz animação para quem prefere menos movimento */
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms!important; animation-iteration-count:1!important; transition-duration:0.001ms!important; scroll-behavior:auto!important}
  .reveal{opacity:1; transform:none}
}

/* ===== Fundos extras para contraste ===== */
#solucoes.section{
  background:
    radial-gradient(1200px 600px at -10% -20%, rgba(13,110,253,.08), transparent 60%),
    radial-gradient(900px 500px at 120% 10%, rgba(111,66,193,.08), transparent 60%),
    #ffffff;
}
#portfolio.section{
  background:linear-gradient(180deg,#f9fbff 0%,#ecf2ff 100%);
}
#clientes.section.section-alt{
  background:
    radial-gradient(800px 400px at 80% 20%, rgba(13,110,253,.08), transparent 60%),
    linear-gradient(180deg,#e9efff 0%,#e5ecff 100%);
}

/* Responsividade */
@media (max-width: 991.98px){
  .section{padding:72px 0}
  .section-pt{padding-top:104px; padding-bottom:72px}
}
