/* ==========================================================================
   BOSS FINANCE stylesheet
   ========================================================================== */

@font-face{
  font-family:'Satoshi';
  src:url('../fonts/Satoshi-Variable.ttf') format('truetype-variations');
  font-weight:300 900;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'Satoshi';
  src:url('../fonts/Satoshi-VariableItalic.ttf') format('truetype-variations');
  font-weight:300 900;
  font-style:italic;
  font-display:swap;
}

:root{
  --navy-950:#050c17;
  --navy-900:#08152a;
  --navy-800:#0d1f3c;
  --navy-700:#15315b;
  --teal:#2fd6e6;
  --teal-soft:#8be9f0;
  --teal-deep:#0f6b7d;
  --gold:#d3ac6e;
  --gold-soft:#e8cd9d;
  --cream:#f6f0e4;
  --paper:#fbf8f1;
  --white:#ffffff;
  --ink:#0a1626;
  --ink-soft:rgba(10,22,38,0.68);
  --on-navy:#eaf2fa;
  --on-navy-dim:rgba(234,242,250,0.7);
  --line-navy:rgba(234,242,250,0.12);
  --line-ink:rgba(10,22,38,0.12);
  --shadow-lg:0 30px 80px -30px rgba(5,12,23,0.45);
  --ease:cubic-bezier(.16,.84,.44,1);
  --ease-spring:cubic-bezier(.34,1.56,.64,1);
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
::selection{background:var(--teal); color:var(--navy-950);}

body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Satoshi', 'Segoe UI', sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{display:block; max-width:100%;}
a{color:inherit; text-decoration:none;}
ul{list-style:none;}
button{font-family:inherit; background:none; border:none; color:inherit;}
.wrap{max-width:1160px; margin:0 auto; padding:0 28px;}

h1,h2,h3{
  font-weight:700;
  letter-spacing:-0.02em;
  line-height:1.08;
}

.eyebrow{
  display:inline-flex;
  align-items:flex-start;
  gap:8px;
  font-size:12.5px;
  font-weight:600;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--teal-deep);
  margin-bottom:14px;
}
.eyebrow::before{
  content:"";
  display:block; flex-shrink:0;
  width:9px; height:9px;
  margin-top:3px;
  background-color:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%23fff' stroke-width='5' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M12,32 L26,14 L74,14 L88,32 L50,84 Z'/%3E%3Cpath d='M12,32 L88,32 M26,14 L38,32 M50,14 L38,32 M50,14 L62,32 M74,14 L62,32'/%3E%3Cpath d='M38,32 L50,84 M62,32 L50,84'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%23fff' stroke-width='5' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M12,32 L26,14 L74,14 L88,32 L50,84 Z'/%3E%3Cpath d='M12,32 L88,32 M26,14 L38,32 M50,14 L38,32 M50,14 L62,32 M74,14 L62,32'/%3E%3Cpath d='M38,32 L50,84 M62,32 L50,84'/%3E%3C/svg%3E") center/contain no-repeat;
}
.hero .eyebrow, .metodologia .eyebrow, .numeros .eyebrow, .cta-final .eyebrow{
  color:var(--teal-soft);
}

.section-head{max-width:640px; margin:0 auto 56px;}
.section-head h2{font-size:clamp(28px,3.6vw,42px);}
.section-sub{margin-top:14px; font-size:16px; color:var(--ink-soft);}
.metodologia .section-sub, .numeros .section-sub{color:var(--on-navy-dim);}
.metodologia .section-head h2, .numeros .section-head h2, .cta-final .cta-grid h2{color:var(--on-navy);}
section{padding:110px 0; position:relative; scroll-margin-top:84px;}

/* ---------------- grain / noise overlay ---------------- */
.grain{
  position:fixed; inset:0; z-index:9990; pointer-events:none;
  opacity:0.035; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------------- scroll progress ---------------- */
/* ---------------- preloader ---------------- */
.preloader{
  position:fixed; inset:0; z-index:10000;
  background:var(--navy-950);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:18px;
  transition:opacity .6s var(--ease), visibility .6s var(--ease);
}
.preloader.is-done{opacity:0; visibility:hidden;}
.preloader-gem{
  width:64px; height:64px;
  fill:none; stroke:var(--teal); stroke-width:4;
  stroke-linejoin:round; stroke-linecap:round;
  filter:drop-shadow(0 0 16px rgba(47,214,230,0.55));
}
.gem-line{
  stroke-dasharray:320;
  stroke-dashoffset:320;
  animation:draw-gem 1.4s var(--ease) forwards;
}
@keyframes draw-gem{ to{stroke-dashoffset:0;} }
.preloader-word{
  font-size:13px; letter-spacing:0.5em; color:var(--on-navy-dim);
  animation:fade-in .6s ease .8s both;
}
@keyframes fade-in{ from{opacity:0;} to{opacity:1;} }

/* ---------------- buttons ---------------- */
.btn{
  position:relative;
  display:inline-flex; align-items:center; gap:8px;
  padding:15px 28px;
  border-radius:100px;
  font-size:13.5px; font-weight:600;
  letter-spacing:0.03em;
  cursor:pointer;
  overflow:hidden;
  isolation:isolate;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), background .3s ease, border-color .3s ease;
}
.btn span, .btn .btn-label{position:relative; z-index:2;}
.btn-primary{
  background:linear-gradient(135deg, var(--teal), var(--teal-deep));
  color:var(--navy-950);
  box-shadow:0 8px 24px -8px rgba(47,214,230,0.55);
  animation:btn-glow 3.4s ease-in-out infinite;
}
.btn-primary:hover{
  box-shadow:0 14px 34px -8px rgba(47,214,230,0.8);
  transform:translateY(-2px);
  animation-play-state:paused;
}
@keyframes btn-glow{
  0%,100%{box-shadow:0 8px 24px -8px rgba(47,214,230,0.5);}
  50%{box-shadow:0 8px 30px -6px rgba(47,214,230,0.75);}
}
.btn-ghost{
  border:1px solid var(--line-navy);
  color:var(--on-navy);
}
.btn-ghost:hover{border-color:var(--teal-soft); background:rgba(234,242,250,0.06);}
.btn-ghost-dark{
  border:1px solid var(--line-ink);
  color:var(--ink);
}
.btn-ghost-dark:hover{border-color:var(--teal-deep); background:rgba(15,107,125,0.06);}
.btn-small{padding:13px 24px; font-size:13.5px;}
.btn-block{width:100%; justify-content:center;}
.btn::after{
  content:"\2192";
  position:relative; z-index:2;
  display:inline-block;
  transition:transform .3s var(--ease);
}
.btn:hover::after{transform:translateX(5px);}

/* ---------------- header ---------------- */
header{
  position:fixed; top:0; left:0; right:0; z-index:500;
  padding:28px 0;
  transition:padding .35s var(--ease), background .35s ease, border-color .35s ease, box-shadow .35s ease;
}
header.is-scrolled{
  padding:16px 0;
  background:rgba(5,12,23,0.72);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line-navy);
  box-shadow:0 10px 30px -20px rgba(0,0,0,0.5);
}
.nav{display:flex; align-items:center; justify-content:space-between; gap:20px;}
.brand{display:flex; align-items:center; gap:8px; font-weight:700; letter-spacing:0.02em; color:var(--on-navy); font-size:19px;}
.brand-gem{width:28px; height:28px; fill:none; stroke:var(--teal); stroke-width:6; stroke-linejoin:round; stroke-linecap:round;}
.brand-logo{height:24px; width:auto; display:block;}
.brand em{font-style:normal; color:var(--gold-soft); font-weight:400; opacity:0.9;}
footer .brand{color:var(--on-navy);}
.navlinks{display:flex; gap:32px; align-items:center;}
.navlinks a{
  font-size:15px; font-weight:500; color:var(--on-navy-dim);
  position:relative; padding:4px 0;
}
.navlinks a::after{
  content:""; position:absolute; left:0; bottom:0; height:1px; width:0;
  background:var(--teal); transition:width .3s var(--ease);
}
.navlinks a:hover, .navlinks a.is-active{color:var(--on-navy);}
.navlinks a:hover::after, .navlinks a.is-active::after{width:100%;}
.burger{display:none; flex-direction:column; gap:5px; width:26px; cursor:pointer; z-index:600;}
.burger span{height:2px; background:var(--on-navy); border-radius:2px; transition:transform .3s ease, opacity .3s ease;}
.burger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.burger.is-open span:nth-child(2){opacity:0;}
.burger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

body.is-loading{overflow:hidden; height:100vh;}

.nav-overlay{
  position:fixed; inset:0; z-index:499;
  background:rgba(2,6,13,0.8);
  opacity:0; pointer-events:none;
  transition:opacity .35s ease;
}
@media(max-width:900px){
  .navlinks{
    position:fixed; top:0; right:0; height:100vh; width:min(78vw,320px);
    background:var(--navy-900); flex-direction:column; justify-content:center; align-items:flex-start;
    padding:40px; gap:26px;
    transform:translateX(100%); transition:transform .4s var(--ease);
    box-shadow:-20px 0 60px rgba(0,0,0,0.4);
    z-index:500;
  }
  .navlinks.is-open{transform:translateX(0);}
  .nav-overlay.is-open{opacity:1; pointer-events:auto;}
  .burger{display:flex;}
  .nav .btn-small{display:none;}
}

/* ---------------- hero ---------------- */
.hero{
  background:var(--navy-950);
  color:var(--on-navy);
  padding:180px 0 60px;
  overflow:hidden;
}
.hero-mesh{
  position:absolute; inset:-15%; z-index:0;
  background:
    radial-gradient(45% 55% at 18% 15%, rgba(47,214,230,0.22), transparent 60%),
    radial-gradient(40% 50% at 85% 20%, rgba(211,172,110,0.16), transparent 60%),
    radial-gradient(60% 60% at 50% 100%, rgba(15,107,125,0.25), transparent 60%);
  animation:mesh-drift 26s ease-in-out infinite, mesh-pulse 5s ease-in-out infinite;
}
.hero-mesh-alt{
  background:
    radial-gradient(40% 50% at 80% 10%, rgba(47,214,230,0.18), transparent 60%),
    radial-gradient(45% 55% at 15% 90%, rgba(211,172,110,0.16), transparent 60%);
}
@keyframes mesh-drift{
  0%{transform:translate3d(0,0,0) scale(1);}
  25%{transform:translate3d(-2%,1.5%,0) scale(1.04);}
  50%{transform:translate3d(1%,-2%,0) scale(1.08);}
  75%{transform:translate3d(2%,1%,0) scale(1.04);}
  100%{transform:translate3d(0,0,0) scale(1);}
}
@keyframes mesh-pulse{
  0%,100%{opacity:0.75;}
  50%{opacity:1;}
}
.hero-diamond-big{
  position:absolute; top:50%; right:22%; z-index:0; pointer-events:none;
  width:520px; height:520px; opacity:0.5;
  transform:translateY(-50%);
}
.hero-diamond-big svg{
  width:100%; height:100%;
  fill:none; stroke:var(--teal-soft); stroke-width:0.6;
  stroke-linejoin:round; stroke-linecap:round;
}
@media(max-width:900px){ .hero-diamond-big{width:380px; height:380px;} }
@media(max-width:600px){ .hero-diamond-big{width:260px; height:260px; opacity:0.35;} }

.floaters{position:absolute; inset:0; z-index:0; pointer-events:none; will-change:transform;}
.floater{
  position:absolute; width:52px; height:52px;
  fill:none; stroke:rgba(234,242,250,0.16); stroke-width:2.5;
  stroke-linejoin:round; stroke-linecap:round;
  animation:float-y 10s ease-in-out infinite;
}
.floater.f1{top:18%; left:6%; animation-duration:12s;}
.floater.f2{top:60%; left:88%; width:36px; height:36px; animation-duration:9s; animation-delay:-3s;}
.floater.f3{top:12%; left:80%; width:30px; height:30px; animation-duration:8s; animation-delay:-5s;}
.floater.f4{top:40%; left:42%; width:20px; height:20px; animation-duration:11s; animation-delay:-2s;}
.floater.f5{top:78%; left:18%; width:26px; height:26px; animation-duration:13s; animation-delay:-6s;}
.floater.f6{top:32%; left:62%; width:18px; height:18px; animation-duration:10s; animation-delay:-4s;}
@keyframes float-y{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-22px);}
}
@media(max-width:760px){ .floaters{display:none;} }

.hero-inner{position:relative; z-index:2;}
.hero-title{font-size:clamp(38px,6.6vw,74px); max-width:900px;}
.hero-title .reveal-line{display:block; overflow:hidden;}
.hero-title .reveal-line span{display:inline-block;}
.hero-title em{font-style:normal;}
.grad-text{
  background:linear-gradient(100deg, var(--teal-soft), var(--gold-soft) 60%, var(--teal-soft));
  background-size:200% auto;
  -webkit-background-clip:text; background-clip:text; color:transparent;
  animation:grad-move 6s linear infinite;
}
@keyframes grad-move{ to{background-position:200% center;} }

.hero-lede{font-size:18px; max-width:560px; color:var(--on-navy-dim); margin:26px 0 34px;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:64px;}

.hero-stats{
  position:relative; z-index:2;
  display:grid; grid-template-columns:repeat(4,1fr);
  background:rgba(8,21,42,0.6);
  border-radius:14px; overflow:hidden;
}
.stat{
  padding:26px 20px;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; gap:8px;
}
.stat-num{
  display:block; font-size:clamp(26px,3vw,36px); font-weight:700; color:var(--on-navy);
  font-variant-numeric:tabular-nums; line-height:1;
}
.stat-label{font-size:12.5px; color:var(--on-navy-dim); letter-spacing:0.02em;}
@media(max-width:760px){ .hero-stats{grid-template-columns:repeat(2,1fr);} }

.scroll-cue{
  position:absolute; bottom:26px; left:50%; transform:translateX(-50%);
  z-index:2; display:flex; flex-direction:column; align-items:center; gap:8px;
  font-size:11px; letter-spacing:0.3em; text-transform:uppercase; color:var(--on-navy-dim);
}
.scroll-cue span{
  width:1px; height:34px;
  background:linear-gradient(var(--teal), transparent);
  animation:cue-move 1.8s ease-in-out infinite;
}
@keyframes cue-move{ 0%{opacity:0; transform:scaleY(0.4);} 50%{opacity:1;} 100%{opacity:0; transform:scaleY(1);} }
@media(max-width:700px){ .scroll-cue{display:none;} }

/* ---------------- marquee ---------------- */
.marquee-strip{
  background:linear-gradient(100deg, var(--gold), var(--gold-soft));
  color:var(--navy-950);
  overflow:hidden;
  padding:14px 0;
  white-space:nowrap;
  border-top:1px solid rgba(5,12,23,0.15);
  border-bottom:1px solid rgba(5,12,23,0.15);
}
.marquee-track{
  display:inline-flex; align-items:center;
  animation:marquee 26s linear infinite;
  will-change:transform;
}
.marquee-set{display:inline-flex; align-items:center;}
.marquee-set > *{margin-right:22px;}
.marquee-track span{font-size:13.5px; font-weight:700; letter-spacing:0.04em; text-transform:uppercase;}
.marquee-dot{
  display:inline-block; flex-shrink:0;
  width:12px; height:12px;
  background-color:var(--teal-deep);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%23fff' stroke-width='5' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M12,32 L26,14 L74,14 L88,32 L50,84 Z'/%3E%3Cpath d='M12,32 L88,32 M26,14 L38,32 M50,14 L38,32 M50,14 L62,32 M74,14 L62,32'/%3E%3Cpath d='M38,32 L50,84 M62,32 L50,84'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%23fff' stroke-width='5' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M12,32 L26,14 L74,14 L88,32 L50,84 Z'/%3E%3Cpath d='M12,32 L88,32 M26,14 L38,32 M50,14 L38,32 M50,14 L62,32 M74,14 L62,32'/%3E%3Cpath d='M38,32 L50,84 M62,32 L50,84'/%3E%3C/svg%3E") center/contain no-repeat;
  animation:spin-slow 4s linear infinite;
}
@keyframes marquee{ from{transform:translateX(0);} to{transform:translateX(-50%);} }
@media (prefers-reduced-motion: reduce){ .marquee-track{animation-play-state:paused;} }

/* ---------------- reveal on scroll ---------------- */
.reveal{
  opacity:0; transform:translateY(28px) scale(.97);
  transition:opacity .8s var(--ease), transform .8s var(--ease-spring);
  transition-delay:calc(var(--d,0) * 90ms);
}
.reveal.is-in{opacity:1; transform:translateY(0) scale(1);}
.hero-title .reveal-line{opacity:1; transform:none; transition:none;}
.hero-title .reveal-line span{
  transform:translateY(115%);
  transition:transform .9s var(--ease);
  transition-delay:calc(var(--d,0) * 90ms);
}
.hero-title .reveal-line.is-in span{transform:translateY(0);}

/* ---------------- problema / bento ---------------- */
.problema{background:var(--cream);}
.bento{
  display:grid; grid-template-columns:repeat(4,1fr); gap:16px;
}
.bento-wide{grid-column:span 4;}
.bento-wide p{max-width:640px;}
.bento-card{
  position:relative;
  background:var(--white);
  border-radius:18px;
  padding:30px 26px;
  border:1px solid var(--line-ink);
  box-shadow:var(--shadow-lg);
  transition:box-shadow .3s ease, border-color .3s ease, transform .35s var(--ease-spring);
}
.bento-card:hover{border-color:rgba(47,214,230,0.4); transform:translateY(-6px); box-shadow:0 34px 90px -30px rgba(5,12,23,0.5);}
.q-mark{font-size:44px; color:var(--gold); line-height:0.6; display:block; margin-bottom:14px; font-weight:700;}
.bento-card p{font-size:15.5px; color:var(--ink-soft);}
@media(max-width:900px){ .bento{grid-template-columns:repeat(2,1fr);} .bento-wide{grid-column:span 2;} }
@media(max-width:560px){ .bento{grid-template-columns:1fr;} .bento-wide{grid-column:span 1;} }

/* ---------------- servicos / tabs ---------------- */
.servicos{background:var(--paper);}
.tabs-nav{
  position:relative;
  display:flex; gap:6px;
  border-bottom:1px solid var(--line-ink);
  margin-bottom:44px;
}
.tab-btn{
  padding:14px 22px; font-size:14px; font-weight:600; color:var(--ink-soft);
  cursor:pointer; transition:color .3s ease;
}
.tab-btn.is-active{color:var(--ink);}
.tab-indicator{
  position:absolute; bottom:-1px; left:0; height:2px;
  background:linear-gradient(90deg, var(--teal-deep), var(--gold));
  transition:transform .4s var(--ease), width .4s var(--ease);
}
.tab-panel{display:none;}
.tab-panel.is-active{display:block; animation:panel-in .5s var(--ease);}
@keyframes panel-in{ from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:translateY(0);} }
.panel-grid{display:grid; grid-template-columns:1.3fr 1fr; gap:50px;}
.panel-copy h3{font-size:26px; margin-bottom:14px;}
.panel-copy p{color:var(--ink-soft); margin-bottom:22px; max-width:520px;}
.check-list{display:flex; flex-direction:column; gap:12px; margin-bottom:26px;}
.check-list li{
  position:relative; padding-left:28px; font-size:15px;
}
.check-list li::before{
  content:""; position:absolute; left:0; top:4px;
  width:13px; height:13px;
  background-color:var(--teal-deep);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%23fff' stroke-width='5' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M12,32 L26,14 L74,14 L88,32 L50,84 Z'/%3E%3Cpath d='M12,32 L88,32 M26,14 L38,32 M50,14 L38,32 M50,14 L62,32 M74,14 L62,32'/%3E%3Cpath d='M38,32 L50,84 M62,32 L50,84'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%23fff' stroke-width='5' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M12,32 L26,14 L74,14 L88,32 L50,84 Z'/%3E%3Cpath d='M12,32 L88,32 M26,14 L38,32 M50,14 L38,32 M50,14 L62,32 M74,14 L62,32'/%3E%3Cpath d='M38,32 L50,84 M62,32 L50,84'/%3E%3C/svg%3E") center/contain no-repeat;
}
.panel-side{
  background:var(--navy-950); color:var(--on-navy);
  border-radius:18px; padding:32px 28px;
}
.panel-side .eyebrow{color:var(--gold-soft);}
.adv-list{display:flex; flex-direction:column; gap:14px;}
.adv-list li{font-size:14.5px; color:var(--on-navy-dim); border-bottom:1px solid var(--line-navy); padding-bottom:12px;}
.adv-list li b{color:var(--on-navy); font-weight:700;}
.panel-quote{color:var(--on-navy-dim); font-size:15.5px; line-height:1.7;}
@media(max-width:880px){ .panel-grid{grid-template-columns:1fr;} .tabs-nav{overflow-x:auto;} }

/* ---------------- metodologia / timeline ---------------- */
.metodologia{background:var(--navy-950); color:var(--on-navy);}
.timeline{position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:30px; padding-top:10px;}
.timeline-line{
  position:absolute; top:16px; left:0; right:0; height:2px; background:var(--line-navy);
}
.timeline-fill{
  display:block; height:100%; width:0%;
  background:linear-gradient(90deg, var(--teal), var(--gold));
  box-shadow:0 0 12px rgba(47,214,230,0.6);
  transition:width .2s linear;
}
.tl-step{position:relative; padding-top:44px;}
.tl-letter{
  position:absolute; top:0; left:0;
  width:32px; height:32px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:14px; font-weight:700;
  background:var(--navy-800); border:1px solid var(--teal); color:var(--teal-soft);
  box-shadow:0 0 0 6px var(--navy-950);
}
.tl-step h3{font-size:19px; margin-bottom:10px; color:var(--on-navy);}
.tl-step p{font-size:14.5px; color:var(--on-navy-dim);}
@media(max-width:880px){
  .timeline{grid-template-columns:1fr 1fr;}
}
@media(max-width:560px){
  .timeline{grid-template-columns:1fr;}
  .timeline-line{left:15px; right:auto; top:0; bottom:0; width:2px; height:auto;}
  .timeline-fill{width:100% !important; height:0%;}
}

/* ---------------- comparativo ---------------- */
.comparativo{background:var(--cream);}
.cost-grid{display:grid; grid-template-columns:1.4fr 1fr; gap:40px; align-items:stretch;}
.cost-list{
  background:var(--white); border:1px solid var(--line-ink); border-radius:18px;
  padding:32px; display:flex; flex-direction:column; gap:20px; box-shadow:var(--shadow-lg);
}
.cost-row{display:grid; grid-template-columns:1fr 1.3fr auto; gap:16px; align-items:center;}
.cost-name{font-size:14px; font-weight:600;}
.cost-bar{height:8px; background:var(--line-ink); border-radius:6px; overflow:hidden;}
.cost-bar i{
  display:block; height:100%; width:0%;
  background:linear-gradient(90deg, var(--gold), var(--teal-deep));
  border-radius:6px;
  transition:width 1.1s var(--ease);
}
.cost-bar.is-in i{width:var(--w);}
.cost-val{font-variant-numeric:tabular-nums; font-weight:700; font-size:14.5px; white-space:nowrap;}
.cost-note{font-size:12.5px; color:var(--ink-soft); border-top:1px dashed var(--line-ink); padding-top:16px;}
.cost-total{
  background:var(--navy-950); color:var(--on-navy);
  border-radius:18px; padding:34px 30px;
  display:flex; flex-direction:column; gap:6px;
}
.cost-total .eyebrow{color:var(--gold-soft); margin-bottom:4px;}
.cost-total-num{font-size:clamp(30px,4vw,44px); font-weight:700; font-variant-numeric:tabular-nums;}
.cost-total-num.is-strike{text-decoration:line-through; text-decoration-color:var(--gold-soft); text-decoration-thickness:2px; opacity:.6;}
.cost-total-label{font-size:12.5px; color:var(--on-navy-dim); margin-bottom:14px;}
.cost-total-divider{height:1px; background:var(--line-navy); margin:8px 0 16px;}
.cost-total p{font-size:14.5px; color:var(--on-navy-dim); margin-bottom:22px; line-height:1.7;}
@media(max-width:880px){ .cost-grid{grid-template-columns:1fr;} .cost-row{grid-template-columns:1fr 1fr auto; font-size:13px;} }
@media(max-width:560px){
  .cost-list{padding:24px 20px;}
  .cost-row{grid-template-columns:1fr; row-gap:6px;}
  .cost-name{order:1;}
  .cost-val{order:2; white-space:normal; font-size:15px;}
  .cost-bar{order:3;}
}

/* ---------------- para quem ---------------- */
.paraquem{background:var(--paper);}
.quem-grid{display:grid; grid-template-columns:1.1fr 1fr; gap:60px; align-items:stretch;}
.quem-grid h2{margin-bottom:26px;}
.check-list-big li{font-size:16px; padding:14px 0 14px 30px; border-bottom:1px solid var(--line-ink);}
.check-list-big li::before{top:18px;}
.quem-aside{
  background:var(--white); border:1px solid var(--line-ink); box-shadow:var(--shadow-lg);
  padding:34px 32px; border-radius:18px;
  display:flex; flex-direction:column;
}
.cross-list{display:flex; flex-direction:column; gap:16px; margin:18px 0 28px;}
.cross-list li{
  position:relative; padding-left:28px; font-size:15px; color:var(--ink-soft); line-height:1.6;
}
.cross-list li::before{
  content:""; position:absolute; left:0; top:4px;
  width:13px; height:13px; opacity:0.4;
  background-color:var(--ink-soft);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%23fff' stroke-width='5' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M12,32 L26,14 L74,14 L88,32 L50,84 Z'/%3E%3Cpath d='M12,32 L88,32 M26,14 L38,32 M50,14 L38,32 M50,14 L62,32 M74,14 L62,32'/%3E%3Cpath d='M38,32 L50,84 M62,32 L50,84'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%23fff' stroke-width='5' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M12,32 L26,14 L74,14 L88,32 L50,84 Z'/%3E%3Cpath d='M12,32 L88,32 M26,14 L38,32 M50,14 L38,32 M50,14 L62,32 M74,14 L62,32'/%3E%3Cpath d='M38,32 L50,84 M62,32 L50,84'/%3E%3C/svg%3E") center/contain no-repeat;
}
.quem-link{
  display:inline-flex; align-items:center; gap:8px;
  font-size:14.5px; font-weight:700; color:var(--teal-deep);
  margin-top:auto;
}
.quem-link span{display:inline-block; transition:transform .3s var(--ease);}
.quem-link:hover span{transform:translateX(5px);}
@media(max-width:820px){ .quem-grid{grid-template-columns:1fr;} }

/* ---------------- numeros ---------------- */
.numeros{background:var(--navy-950); color:var(--on-navy); overflow:hidden;}
.numeros-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-bottom:60px;
}
.numero-card{
  background:rgba(234,242,250,0.04); border:1px solid var(--line-navy); border-radius:16px;
  padding:28px 22px; text-align:center;
  transition:transform .35s var(--ease-spring), border-color .3s ease, background .3s ease;
}
.numero-card:hover{
  transform:translateY(-6px);
  border-color:rgba(47,214,230,0.4);
  background:rgba(234,242,250,0.07);
}
.numero-card .stat-num{font-size:clamp(28px,3.4vw,38px);}
.numero-card p{font-size:13.5px; color:var(--on-navy-dim); margin-top:8px;}
.chart-block{margin-bottom:56px;}
.chart-title{font-size:20px; color:var(--on-navy); margin-top:6px;}

.bars-card{
  margin-top:26px; background:rgba(234,242,250,0.045); border:1px solid var(--line-navy);
  border-radius:22px; padding:38px 34px 30px;
}
.bars-badge{
  display:inline-block; color:#fff;
  font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
  margin-bottom:38px;
}
.bars-chart{position:relative; display:flex; height:400px;}
.bars-yaxis{position:relative; flex:0 0 124px; width:124px;}
.bars-yaxis span{
  position:absolute; left:0; right:0; transform:translateY(50%);
  font-size:12.5px; color:var(--on-navy-dim); text-align:right; white-space:nowrap;
}
.bars-plot{position:relative; flex:1; min-width:0; height:100%;}
.bars-grid{position:absolute; inset:0;}
.bars-grid i{
  position:absolute; left:0; right:0; height:1px;
  background:rgba(255,255,255,0.08); transform:translateY(50%);
}
.bars-months{position:relative; display:flex; align-items:flex-end; height:100%;}
.bars-month{flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%;}
.bars-pair{display:flex; align-items:flex-end; gap:10px; height:100%;}
.bar-fill{
  width:30px; height:0%;
  transition:height 1.1s var(--ease);
}
.bars-chart.is-in .bar-fill{height:var(--h);}
.bar-in{background:#1e88ff;}
.bar-out{background:#00d9a3;}
.bars-month span{margin-top:14px; font-size:12px; color:var(--on-navy-dim); letter-spacing:.02em; white-space:nowrap;}
.bars-legend{display:flex; justify-content:flex-end; gap:22px; margin-top:26px; font-size:14px; color:var(--on-navy-dim);}
.bars-legend span{display:inline-flex; align-items:center; gap:7px;}
.bars-dot{width:11px; height:11px; border-radius:3px; display:inline-block;}
.bars-dot-in{background:#1e88ff;}
.bars-dot-out{background:#00d9a3;}
@media(max-width:700px){
  .bars-card{padding:26px 18px 22px;}
  .bars-chart{height:260px;}
  .bars-yaxis{flex-basis:60px; width:60px;}
  .bars-yaxis span{font-size:9px;}
  .bars-plot{overflow-x:auto; -webkit-overflow-scrolling:touch;}
  .bars-months{min-width:520px;}
  .bars-pair{gap:6px;}
  .bar-fill{width:16px;}
  .bars-month span{font-size:9.5px;}
}
.chart-card{
  position:relative;
  margin-top:22px;
  background:rgba(234,242,250,0.04); border:1px solid var(--line-navy); border-radius:18px;
  padding:30px 26px 18px;
}
.chart-growth{
  position:absolute; top:20px; right:22px; z-index:2;
  display:inline-flex; align-items:center; gap:5px;
  font-size:12px; font-weight:700; letter-spacing:0.02em;
  color:var(--navy-950); background:var(--gold-soft);
  padding:5px 12px; border-radius:100px;
  opacity:0; transform:translateY(-6px);
  transition:opacity .6s var(--ease), transform .6s var(--ease);
  transition-delay:1.5s;
}
.reveal.is-in .chart-growth{opacity:1; transform:translateY(0);}
.revenue-chart{width:100%; height:auto; overflow:visible; display:block;}
.chart-grid{stroke:var(--line-navy); stroke-width:1;}
.chart-gridline{stroke:var(--line-navy); stroke-width:1; stroke-dasharray:4 5; opacity:0.7;}
.chart-guide{
  stroke:var(--line-navy); stroke-width:1; stroke-dasharray:3 4;
  opacity:0; transition:opacity .6s ease; transition-delay:1.2s;
}
.reveal.is-in .chart-guide{opacity:1;}
.chart-area{
  fill:url(#chartFill);
  opacity:0; transition:opacity 1s ease; transition-delay:.4s;
}
.reveal.is-in .chart-area{opacity:1;}
.chart-line{
  fill:none; stroke:var(--teal); stroke-width:3;
  stroke-linecap:round; stroke-linejoin:round;
  filter:drop-shadow(0 0 6px rgba(47,214,230,0.5));
  stroke-dasharray:1000; stroke-dashoffset:1000;
  transition:stroke-dashoffset 1.8s var(--ease);
}
.reveal.is-in .chart-line{stroke-dashoffset:0;}
.chart-dot{
  fill:var(--gold-soft); stroke:var(--navy-950); stroke-width:2;
  opacity:0; transition:opacity .5s ease; transition-delay:1.3s;
  cursor:pointer;
}
.reveal.is-in .chart-dot{opacity:1;}
.chart-dot-peak{
  fill:var(--gold); stroke:var(--navy-950); stroke-width:2;
  filter:drop-shadow(0 0 8px rgba(211,172,110,0.85));
}
.chart-dot-pulse{
  fill:none; stroke:var(--gold); stroke-width:2;
  opacity:0; transform-box:fill-box; transform-origin:center;
}
.reveal.is-in .chart-dot-pulse{
  animation:dot-pulse 2.4s ease-out infinite;
  animation-delay:1.8s;
}
@keyframes dot-pulse{
  0%{opacity:0.55; transform:scale(1);}
  100%{opacity:0; transform:scale(2.8);}
}
.chart-tooltip{
  position:absolute; z-index:5; pointer-events:none;
  background:var(--navy-950); color:var(--on-navy);
  border:1px solid var(--line-navy); border-radius:10px;
  padding:9px 12px; font-size:12.5px; line-height:1.5;
  box-shadow:var(--shadow-lg);
  opacity:0; transform:translate(-50%,-100%) translateY(-10px);
  transition:opacity .2s ease, transform .2s ease;
  white-space:nowrap;
}
.chart-tooltip.is-visible{opacity:1; transform:translate(-50%,-100%) translateY(-16px);}
.chart-tooltip b{color:var(--teal-soft); font-size:13.5px;}
.chart-tooltip small{display:block; color:var(--on-navy-dim); margin-top:2px; font-size:11px;}
.chart-labels{
  display:flex; justify-content:space-between;
  margin-top:12px; font-size:12px; color:var(--on-navy-dim); text-align:center;
}
.chart-labels b{display:block; font-size:13px; color:var(--on-navy); margin-top:4px; font-weight:700;}
@media(max-width:700px){ .chart-labels{font-size:10.5px;} .chart-labels b{font-size:11px;} }
.cases-head{max-width:640px; margin-bottom:30px;}
.cases-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.case-card{
  position:relative;
  border:1px solid var(--line-navy); border-radius:16px;
  padding:28px 26px; background:rgba(234,242,250,0.04);
  transition:border-color .3s ease, background .3s ease, transform .35s var(--ease-spring);
}
.case-card:hover{border-color:rgba(47,214,230,0.4); background:rgba(234,242,250,0.07); transform:translateY(-6px);}
.case-tag{
  display:inline-block; font-size:11px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--navy-950); background:var(--gold-soft);
  padding:4px 10px; border-radius:100px; margin-bottom:14px;
}
.case-card h3{font-size:18px; margin-bottom:10px; color:var(--on-navy);}
.case-card p{font-size:14px; color:var(--on-navy-dim); line-height:1.6;}
@media(max-width:760px){ .numeros-grid{grid-template-columns:repeat(2,1fr);} .cases-grid{grid-template-columns:1fr;} }

/* ---------------- fundadores ---------------- */
.fundadores{background:var(--cream);}
.founders-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:24px; margin-bottom:34px;}
.founder-card{
  background:var(--white); border-radius:18px; padding:20px;
  border:1px solid var(--line-ink); box-shadow:var(--shadow-lg);
  text-align:left;
  transition:border-color .3s ease, box-shadow .3s ease;
}
.founder-card:hover{border-color:rgba(47,214,230,0.4);}
.founder-photo{
  aspect-ratio:4/5; border-radius:12px; margin-bottom:20px;
  overflow:hidden;
  background:linear-gradient(135deg, var(--navy-900), var(--navy-800));
}
.founder-photo img{
  width:100%; height:100%;
  object-fit:cover; object-position:top center;
}
@keyframes spin-slow{ to{transform:rotate(360deg);} }
.founder-body{padding:4px 14px 14px;}
.founder-card h3{font-size:19px; margin-bottom:2px;}
.founder-role{font-size:12.5px; color:var(--teal-deep); font-weight:600; letter-spacing:0.04em; text-transform:uppercase;}
.founder-card p{font-size:14.5px; color:var(--ink-soft); margin-top:12px;}
.social-strip{display:flex; gap:10px; justify-content:center; font-size:14px; font-weight:600; color:var(--ink-soft);}
.social-strip a:hover{color:var(--teal-deep);}
@media(max-width:600px){ .founders-grid{grid-template-columns:1fr;} }

/* ---------------- faq / accordion ---------------- */
.faq{background:var(--paper);}
.acc-item{border-bottom:1px solid var(--line-ink);}
.acc-head{
  width:100%; display:flex; justify-content:space-between; align-items:center; gap:20px;
  padding:22px 2px; font-size:15.5px; font-weight:600; text-align:left; cursor:pointer;
}
.acc-icon{position:relative; width:18px; height:18px; flex-shrink:0;}
.acc-icon::before, .acc-icon::after{
  content:""; position:absolute; top:50%; left:50%; background:var(--ink);
  transition:transform .3s var(--ease);
}
.acc-icon::before{width:14px; height:2px; transform:translate(-50%,-50%);}
.acc-icon::after{width:2px; height:14px; transform:translate(-50%,-50%);}
.acc-item.is-open .acc-icon::after{transform:translate(-50%,-50%) rotate(90deg); opacity:0;}
.acc-item.is-open .acc-head{color:var(--teal-deep);}
.acc-body{
  display:grid; grid-template-rows:0fr;
  transition:grid-template-rows .4s var(--ease);
}
.acc-item.is-open .acc-body{grid-template-rows:1fr;}
.acc-body-inner{overflow:hidden;}
.acc-body-inner p{padding-bottom:22px; font-size:15px; color:var(--ink-soft); max-width:680px;}

/* ---------------- cta final / form ---------------- */
.cta-final{background:var(--navy-950); color:var(--on-navy); overflow:hidden;}
.cta-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start; position:relative; z-index:2;}
.cta-grid h2{font-size:clamp(28px,3.6vw,42px); margin-bottom:18px;}
.cta-grid .lede{color:var(--on-navy-dim); max-width:460px; margin-bottom:30px;}
.contact-list{display:flex; flex-direction:column; gap:12px; font-size:14.5px;}
.contact-list a, .contact-list span{color:var(--on-navy-dim);}
.contact-list a:hover{color:var(--teal-soft);}

form.lead-form{
  background:var(--paper); color:var(--ink);
  padding:34px; border-radius:20px; box-shadow:var(--shadow-lg);
}
form.lead-form .eyebrow{margin-bottom:20px; color:var(--teal-deep);}
.field{position:relative; margin-bottom:20px;}
.field input, .field select{
  width:100%; padding:16px 14px 8px; border-radius:10px;
  border:1px solid var(--line-ink); background:var(--white);
  font-family:inherit; font-size:15px; color:var(--ink);
  transition:border-color .3s ease, box-shadow .3s ease;
}
.field select{appearance:none; cursor:pointer;}
.field select:invalid{color:rgba(10,22,38,0.4);}
.field-select::after{
  content:"▾"; position:absolute; right:16px; top:16px; pointer-events:none; color:var(--ink-soft);
}
.field label{
  position:absolute; left:14px; top:16px;
  font-size:15px; color:var(--ink-soft);
  transition:top .2s ease, font-size .2s ease, color .2s ease;
  pointer-events:none;
}
.field input:focus, .field select:focus{
  outline:none; border-color:var(--teal-deep);
  box-shadow:0 0 0 4px rgba(47,214,230,0.15);
}
.field input:focus ~ label,
.field input:not(:placeholder-shown) ~ label,
.field select:focus ~ label,
.field select:valid ~ label{
  top:6px; font-size:11px; letter-spacing:0.04em; text-transform:uppercase; color:var(--teal-deep);
}
.form-note{font-size:12px; color:var(--ink-soft); margin-top:14px; opacity:0.75;}
@media(max-width:880px){ .cta-grid{grid-template-columns:1fr;} }

/* ---------------- footer ---------------- */
footer{background:var(--navy-950); color:var(--on-navy); padding:50px 0 30px;}
.foot-top{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px; padding-bottom:30px; border-bottom:1px solid var(--line-navy); margin-bottom:24px;}
.foot-links{display:flex; gap:24px; flex-wrap:wrap;}
.foot-links a{font-size:13.5px; color:var(--on-navy-dim);}
.foot-links a:hover{color:var(--teal-soft);}
.foot-row{
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  font-size:12px; color:var(--on-navy-dim);
}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important;}
  .reveal{opacity:1; transform:none;}
  .hero-title .reveal-line span{transform:none;}
}
