:root{
  --paper:#fff;
  --paper-2:#f7f7f5;
  --paper-3:#ebebe9;
  --ink:#0a0a0a;
  --ink-2:#1f1f20;
  --ink-3:#5b5d61;
  --ink-4:#9094a0;
  --line:rgba(10,10,10,.09);
  --line-2:rgba(10,10,10,.05);
  --accent:#4a90d9;
  --accent-deep:#1f5a96;
  --accent-rgb:74, 144, 217;
  --gradient-1:#eef4fb;
  --gradient-2:#d4e5f5;
  --gradient-3:#b1caea;
  --gradient-4:#efe6d6;
  --maxw:1240px;
  --ease-out-soft:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:clip}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Geist,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:clip}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{
  margin:0;
  font-family:inherit;
  font-weight:500;
  letter-spacing:-.035em;
  line-height:1.04;
}
h1{
  font-size:clamp(48px,6vw,90px);
  letter-spacing:-.05em;
}
h2{
  font-size:clamp(36px,4.4vw,66px);
}
h3{
  font-size:clamp(23px,2.2vw,34px);
}
h4{
  font-size:16px;
  letter-spacing:-.01em;
}
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.brand-mark{height:26px;width:auto;display:block}
.mono{
  font-family:inherit;
  font-size:12px;
}
.eyebrow{
  font-family:inherit;
  font-size:11.5px;
  color:var(--accent-deep);
  display:inline-flex;
  align-items:center;
  gap:8px;
  text-transform:uppercase;
  letter-spacing:.10em;
  padding:0;
  background:transparent;
  border:0;
}
.eyebrow::before{
  content:"";
  width:6px;
  height:6px;
  background:var(--accent);
  display:inline-block;
  border-radius:50%;
}
.btn{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:10px 16px;
  border-radius:7px;
  font-size:14px;
  font-weight:500;
  border:1px solid var(--ink);
  background:transparent;
  color:var(--ink);
  cursor:pointer;
  transition:background .15s ease,color .15s ease,transform .15s ease,box-shadow .2s ease,border-color .15s ease;
  font-family:inherit;
}
.btn:hover{background:var(--ink);color:var(--paper);transform:translateY(-1px)}
.btn.solid{background:var(--ink);color:var(--paper);position:relative;overflow:hidden}
.btn.solid:hover{background:var(--ink-2);box-shadow:0 8px 22px -8px rgba(10,10,10,.35)}
.btn.solid::after{
  content:"";
  position:absolute;
  top:0;
  left:-100%;
  width:60%;
  height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);
  transition:left .9s cubic-bezier(.22,.61,.36,1);
}
.btn.solid:hover::after{left:140%}
.btn.ghost{border-color:var(--line);background:rgba(255,255,255,.62)}
.btn.ghost:hover{background:var(--paper-2);color:var(--ink);border-color:var(--ink-4);transform:translateY(-1px)}
.nav-login-desktop{display:inline-flex;align-items:center;font-size:14px;color:var(--ink-2);padding:8px 12px;border-radius:6px;transition:background .15s ease,color .15s ease}
.nav-login-desktop:hover{background:var(--line-2);color:var(--ink)}
.hero-eyebrow{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-deep);display:inline-flex;align-items:center;gap:8px}
.hero-eyebrow-dot{width:6px;height:6px;border-radius:999px;background:var(--accent);display:inline-block}

nav.site{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:saturate(140%) blur(12px);border-bottom:1px solid var(--line-2);transition:box-shadow .35s ease,background .35s ease}
nav.site.scrolled{box-shadow:0 6px 20px -16px rgba(10,10,10,.18);background:rgba(255,255,255,.92)}
nav.site .inner{max-width:var(--maxw);margin:0 auto;padding:16px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;transition:padding .35s cubic-bezier(.22,.61,.36,1)}
nav.site.scrolled .inner{padding:11px 24px}
.logo{
  display:flex;
  align-items:center;
  gap:9px;
  font-weight:650;
  letter-spacing:-.04em;
  line-height:0;
}
.logo:focus,
.logo:focus-visible{
  outline:none;
}
.logo img{
  border:0;
  outline:0;
  box-shadow:none;
  background:transparent;
}
.nav-links{display:flex;gap:4px;align-items:center}
.nav-links > .item{
  padding:8px 12px;
  font-size:14.5px;
  color:var(--ink-2);
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:4px;
  border-radius:6px;
  transition:background .15s ease,color .15s ease;
  white-space:nowrap;
  border:0;
  background:transparent;
  font:inherit;
  appearance:none;
  -webkit-appearance:none;
  line-height:1.2;
}
.nav-links > .item:hover{color:var(--ink);background:var(--line-2)}
.nav-links a.current{color:var(--ink);font-weight:500}
.nav-dd{position:relative}
.nav-dd > .item{
  padding:8px 12px;
  font-size:14.5px;
  color:var(--ink-2);
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:4px;
  border-radius:6px;
  transition:background .15s ease,color .15s ease;
  white-space:nowrap;
  border:0;
  background:transparent;
  font:inherit;
  appearance:none;
  -webkit-appearance:none;
  line-height:1.2;
}
.nav-dd > .item:hover{color:var(--ink);background:var(--line-2)}
.nav-links button.item{padding-right:10px}
.nav-links button.item::-ms-expand{display:none}
.nav-dd{position:relative}
.nav-dd::after{content:"";position:absolute;left:0;right:0;top:100%;height:12px}
.nav-dd .chev{width:10px;height:10px;opacity:.6;transition:transform .2s ease}
.nav-dd .dd-menu{
  position:absolute;
  top:calc(100% + 10px);
  left:50%;
  transform:translateX(-50%) translateY(6px);
  min-width:560px;
  padding:12px;
  border-radius:16px;
  background:rgba(255,255,255,.985);
  backdrop-filter:saturate(140%) blur(14px);
  border:1px solid var(--line);
  box-shadow:0 20px 50px rgba(10,10,10,.12),0 4px 12px rgba(10,10,10,.06);
  opacity:0;
  pointer-events:none;
  transition:opacity .18s ease,transform .18s ease;
  z-index:60;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:4px;
}
.nav-dd:hover .dd-menu,.nav-dd:focus-within .dd-menu{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto}
.nav-dd .dd-item{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:10px;color:var(--ink-2);transition:background .15s ease;text-decoration:none}
.nav-dd .dd-item:hover{background:var(--paper-2)}
.nav-dd .dd-item .dd-icon{width:38px;height:38px;border-radius:9px;background:var(--ink);color:#fff;display:grid;place-items:center;flex-shrink:0}
.nav-dd .dd-item .dd-icon svg{width:17px;height:17px}
.nav-dd .dd-item .dd-text{display:grid;gap:3px;padding-top:1px}
.nav-dd .dd-item .dd-name{font-size:13.5px;font-weight:600;color:var(--ink);line-height:1.2}
.nav-dd .dd-item .dd-desc{font-size:12px;line-height:1.45;color:var(--ink-3)}
.nav-dd:hover .chev,.nav-dd:focus-within .chev{transform:rotate(180deg)}
.nav-actions{display:flex;align-items:center;gap:8px}
nav.site .nav-actions .btn.solid{box-shadow:0 8px 24px -12px rgba(10,10,10,.32)}
.nav-toggle{display:none;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--line);background:#fff;border-radius:10px;cursor:pointer}
.nav-toggle svg{width:18px;height:18px}
.nav-mobile-overlay{position:fixed;inset:0;background:rgba(10,10,10,.36);opacity:0;visibility:hidden;pointer-events:none;z-index:70}
.nav-mobile{position:fixed;inset:0 0 0 auto;width:min(92vw,360px);background:#fff;transform:translateX(102%);transition:transform .3s ease;z-index:80;padding:18px;display:flex;flex-direction:column;gap:18px}
.nav-mobile .top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.nav-mobile .close{width:40px;height:40px;border:1px solid var(--line);background:#fff;border-radius:10px;cursor:pointer}
.nav-mobile .close svg{width:18px;height:18px}
.nav-mobile .links{display:grid;gap:4px;padding-top:6px}
.nav-mobile .links a{padding:12px 12px;border-radius:12px;border:1px solid transparent;color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:12px}
.nav-mobile .links a:hover{background:var(--paper-2);border-color:var(--line)}
.nav-mobile .subhead{margin-top:6px;padding:10px 12px 6px;font-family:inherit;font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.10em}
.nav-mobile .links a.sub{padding-left:18px;color:var(--ink-2)}
.nav-mobile .links .arrow{opacity:.7}
.nav-mobile .cta{margin-top:auto;padding-top:12px;border-top:1px solid var(--line);display:grid;gap:10px}
.nav-mobile .cta .btn{width:100%;justify-content:center}
body.nav-open{overflow:hidden}
body.nav-open .nav-mobile-overlay{opacity:1;visibility:visible;pointer-events:auto}
body.nav-open .nav-mobile{transform:translateX(0);visibility:visible}

.page{
  width:100%;
  max-width:none;
  margin:0;
  padding-top:50px;
}
h1,
h2,
h3,
h4{
  margin:0;
  font-weight:500;
  line-height:1.04;
  letter-spacing:-.035em;
}
.hero h1{
  font-size:clamp(48px,6vw,90px);
  line-height:1.04;
  letter-spacing:-.05em;
  margin:0 auto;
}
.hero p{max-width:65ch;font-size:18px;line-height:1.65;color:var(--ink-3);margin:18px 0 0}
.card{margin-top:32px;border:1px solid var(--line);border-radius:24px;padding:28px;background:linear-gradient(180deg,#fff,#fcfcfb);box-shadow:0 30px 80px -52px rgba(10,10,10,.18)}
.card h2{margin:0 0 10px;font-size:20px;letter-spacing:-.03em}
.card p{margin:0;color:var(--ink-3)}

section.hero {
  position: relative;
  width: 100%;
  padding: 136px 0 0;
  overflow: hidden;
}

.aurora {
  position: absolute;
  left: -10%;
  right: -10%;
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(ellipse 60% 90% at 18% 40%, var(--gradient-1) 0%, transparent 65%),
    radial-gradient(ellipse 55% 85% at 50% 55%, var(--gradient-2) 0%, transparent 70%),
    radial-gradient(ellipse 45% 85% at 82% 35%, var(--gradient-3) 0%, transparent 65%),
    radial-gradient(ellipse 40% 70% at 95% 70%, var(--gradient-4) 0%, transparent 60%);
  filter: blur(80px) saturate(118%);
  opacity: 0.85;
  will-change: transform, opacity;
  animation: auroraDrift 22s ease-in-out infinite alternate;
}

.hero .aurora { top: -180px; height: 560px; }

@keyframes auroraDrift {
  0%   { transform: translate3d(0, 0, 0) scale(1); opacity: 0.78; }
  33%  { transform: translate3d(-2.5%, 1.2%, 0) scale(1.04); opacity: 0.92; }
  66%  { transform: translate3d(2.2%, -1.8%, 0) scale(1.02); opacity: 0.86; }
  100% { transform: translate3d(-1%, 1%, 0) scale(1.05); opacity: 0.95; }
}

.hero .inner {
  position: relative;
  z-index: 1;
  text-align: center;
  padding: 36px 24px 0;
}

.hero h1 .br { display: block; }

.hero p.lede {
  font-family: 'Geist Mono', monospace;
  font-size: 14.5px;
  color: var(--ink-3);
  max-width: 520px;
  letter-spacing: 0;
  line-height: 1.5;
}

/* hero per page */
.page-home .hero p.lede {
  margin: 20px auto 0;
  text-align: center;
}
.page-construpag .hero p.lede {
  margin: 20px 0 0;
  text-align: left;
}
.page-aprovacao .hero p.lede {
  margin: 22px 0 0;
  font-size: 18px;
  line-height: 1.65;
  max-width: 650px;
  text-align: left;
}

.hero .cta-row {
  margin-top: 24px;
  display: flex;
  gap: 10px;
  justify-content: center;
}

.flow {
  position: relative;
  width: 100%;
  max-width: 1040px;
  margin: 36px auto 0;
  padding: 0 24px 56px;
}

.flow .lane {
  position: relative;
  display: grid;
  grid-template-columns: 200px 1fr 200px;
  gap: 60px;
  align-items: center;
  min-height: 320px;
}

.flow svg.lines {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  overflow: visible;
  z-index: 0;
}

.flow .col { display: grid; gap: 18px; align-content: center; position: relative; z-index: 1; }
.flow .col-hub { display: grid; place-items: center; min-height: 100%; }

.node {
  position: relative;
  background: rgba(255,255,255,0.72);
  backdrop-filter: blur(6px);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px;
  text-align: left;
  color: var(--ink-2);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease, background .25s ease;
  display: grid;
  gap: 2px;
  min-height: 92px;
  align-content: center;
}

.node .node-label { font-size: 13px; font-weight: 500; color: var(--ink); letter-spacing: -0.01em; line-height: 1.2; }

.node .node-meta {
  font-family: inherit;
  font-size: 10.5px;
  color: var(--ink-4);
  letter-spacing: 0;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.node.active {
  background: var(--paper);
  border-color: var(--accent);
  box-shadow: 0 0 0 4px rgba(74,144,217,0.12);
}

.node.active .node-label { color: var(--accent-deep); }

.hub {
  position: relative;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 22px 28px;
  text-align: center;
  box-shadow:
    0 14px 40px -18px rgba(31,90,150,0.20),
    0 0 0 1px rgba(74,144,217,0.06);
  z-index: 2;
  min-width: 240px;
}

.hub-mark {
  width: 44px;
  height: 44px;
  margin: 0 auto;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: var(--paper-2);
  border: 1px solid var(--line);
  color: var(--ink);
}

.hub-mark svg { width: 24px; height: auto; display: block; }

.hub-tagline {
  font-family: inherit;
  font-size: 10px;
  color: var(--ink-4);
  margin-top: 14px;
  text-transform: uppercase;
  letter-spacing: 0.14em;
}

.flow .lines path.connector {
  stroke: rgba(74,144,217,0.30);
  stroke-width: 1.2;
  stroke-dasharray: 4 5;
  fill: none;
}

.flow .lines path.connector.active {
  stroke: var(--accent);
  stroke-dasharray: none;
}

.flow .lines circle.dot {
  fill: var(--accent);
  opacity: 0;
  transition: opacity .2s ease;
}

.flow .lines circle.dot.on { opacity: 1; }

/* ── logo bar ─────────────────────────────────── */
.logobar { padding: 88px 0 104px; border-top: 1px solid var(--line); }
.logos-head { display: grid; justify-items: center; gap: 10px; position: relative; z-index: 1; }
.logos-head h4 { text-align: center; color: var(--ink-3); font-weight: 400; font-size: 15px; margin: 0; }

.logos-carousel {
  --logo-gap: 52px;
  margin-top: 28px;
  border: 1px solid rgba(17,17,17,0.10);
  border-radius: 18px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 28px 80px -64px rgba(0,0,0,0.28);
  position: relative;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 11%, #000 89%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 11%, #000 89%, transparent 100%);
}
.logos-carousel::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(10,10,10,0.07) 1px, transparent 1px);
  background-size: 26px 26px;
  opacity: 0.55;
  pointer-events: none;
}
.logos-track {
  display: flex;
  align-items: center;
  width: max-content;
  gap: var(--logo-gap);
  padding: 26px 26px;
  will-change: transform;
  animation: logos-scroll 34s linear infinite;
  position: relative;
  z-index: 1;
}
.logos-carousel:hover .logos-track { animation-play-state: paused; }
.logos-set { display: flex; align-items: center; gap: var(--logo-gap); }
.logo-item {
  flex: 0 0 auto;
  width: 194px;
  height: 124px;
  display: grid;
  place-items: center;
  padding: 10px;
  border-radius: 16px;
  background:
    radial-gradient(180px 140px at 20% 15%, rgba(255,255,255,0.82), rgba(255,255,255,0) 68%),
    radial-gradient(190px 150px at 80% 25%, rgba(255,255,255,0.72), rgba(255,255,255,0) 72%),
    linear-gradient(180deg, #f4f5f8 0%, #e9ebf0 100%);
  border: 1px solid rgba(17,17,17,0.10);
  box-shadow:
    0 24px 55px -46px rgba(0,0,0,0.34),
    0 1px 0 rgba(255,255,255,0.95) inset;
  position: relative;
  overflow: hidden;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.logo-item::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(closest-side at 50% 10%, rgba(255,255,255,0.85), rgba(255,255,255,0) 70%);
  opacity: 0.6;
  pointer-events: none;
}
.logo-item:hover {
  transform: translateY(-1px);
  box-shadow:
    0 34px 75px -56px rgba(0,0,0,0.42),
    0 1px 0 rgba(255,255,255,0.92) inset;
  border-color: rgba(17,17,17,0.16);
}
.logo-item img {
  justify-self: center;
  align-self: center;
  width: auto;
  height: 50px;
  max-width: 168px;
  object-fit: contain;
  display: block;
  position: relative;
  z-index: 1;
}
@keyframes logos-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(calc(-50% - (var(--logo-gap) / 2))); }
}

/* ── stage / carousel ─────────────────────────── */
.dual-carousels { margin-top: 22px; }
.stage {
  margin-top: 48px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--paper-2);
  position: relative;
  isolation: isolate;
}
.dual-carousels .stage {
  overflow: hidden;
  margin-top: 0;
}
.stage::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(10,10,10,0.07) 1px, transparent 1px);
  background-size: 22px 22px;
  pointer-events: none;
  mask-image: radial-gradient(ellipse 75% 65% at 50% 50%, #000 40%, transparent 80%);
}
.stage-grid {
  position: relative;
  z-index: 1;
  max-width: 1200px;
  margin: 0 auto;
  min-height: 520px;
  overflow: hidden;
  transition: height .35s ease;
}
.stage[data-carousel-root="desktop"] .stage-grid {
  min-height: 460px;
}
@media (max-width: 900px) {
  .stage-grid { min-height: 0; transition: none; }
}
.stage-panel {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 52%) minmax(0, 48%);
  align-items: center;
  gap: 32px;
  padding: 34px 44px 26px;
  opacity: 0;
  transform: translate3d(34px, 0, 0);
  pointer-events: none;
  transition: opacity .38s ease, transform .38s cubic-bezier(.22,.68,0,1);
}
.stage-panel.active {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  pointer-events: auto;
}
.stage-panel.is-enter-left { opacity: 0; transform: translate3d(-34px, 0, 0); }
.stage-panel.is-enter-right { opacity: 0; transform: translate3d(34px, 0, 0); }
.stage-panel.is-leave-left { opacity: 0; transform: translate3d(-34px, 0, 0); }
.stage-panel.is-leave-right { opacity: 0; transform: translate3d(34px, 0, 0); }
@media (max-width: 900px) {
  .stage-panel {
    position: absolute;
    top: 0; left: 0; right: 0; width: 100%;
    grid-template-columns: 1fr;
    padding: 32px 24px calc(40px + env(safe-area-inset-bottom));
    gap: 24px;
  }
}
.stage-media {
  display: grid;
  justify-items: start;
  align-content: center;
  gap: 12px;
}
.stage[data-carousel-root="desktop"] .stage-media {
  justify-items: center;
}
@media (max-width: 900px) { .stage-media { justify-items: center; } }

.device-picker {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px;
  border-radius: 999px;
  background: rgba(255,255,255,0.82);
  border: 1px solid var(--line);
  box-shadow: 0 16px 40px -34px rgba(10,10,10,0.35);
  width: fit-content;
  margin: 0 auto;
}
.device-option {
  appearance: none;
  border: 0;
  background: transparent;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 999px;
  color: var(--ink-3);
  font: inherit;
  font-size: 13px;
  font-weight: 500;
  transition: transform .15s ease, background .15s ease, color .15s ease, box-shadow .15s ease;
}
.device-option svg { width: 16px; height: 16px; display: block; }
.device-option:hover { transform: translateY(-1px); }
.device-option.is-active {
  background: var(--ink);
  color: var(--paper);
  box-shadow: 0 18px 44px -34px rgba(10,10,10,0.5);
}

.stage-text {
  display: grid;
  gap: 14px;
  max-width: 460px;
}
.stage[data-carousel-root="desktop"] .stage-text {
  justify-self: start;
}
.stage[data-carousel-root="mobile"] .stage-panel {
  grid-template-columns: minmax(0, 38%) minmax(0, 62%);
}
.stage[data-carousel-root="mobile"] .stage-text {
  max-width: 540px;
}
@media (max-width: 900px) { .stage-text { max-width: none; text-align: center; justify-items: center; } }
.stage-text .step-num {
  font-family: inherit;
  font-size: 11px;
  color: var(--ink-3);
  text-transform: uppercase;
  letter-spacing: 0.10em;
}
.stage-text .step-num b { color: var(--ink); font-weight: 500; }
.stage-text h3 {
  font-size: clamp(24px, 2.2vw, 30px);
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: 1.12;
}
.stage-text p { color: var(--ink-3); font-size: 15px; line-height: 1.55; }

.carousel-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 20px 4px;
  border-top: 1px solid var(--line);
  margin-top: 0;
}
.stage[data-carousel-root="desktop"] .carousel-nav {
  padding-top: 8px;
  margin-top: -6px;
  transform: translateY(-4px);
}
.carousel-counter {
  font-family: "Geist Mono", monospace;
  font-size: 12px;
  color: var(--ink-4);
  letter-spacing: 0.06em;
  font-feature-settings: "tnum";
}
.carousel-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 500;
  padding: 10px 20px;
  border-radius: 8px;
  border: 1px solid var(--ink);
  background: var(--ink);
  color: var(--paper);
  cursor: pointer;
  transition: background .2s ease, color .2s ease, transform .15s ease, opacity .2s ease;
  white-space: nowrap;
}
.carousel-btn svg { width: 15px; height: 15px; flex-shrink: 0; }
.carousel-btn:hover:not(:disabled) {
  background: var(--ink);
  color: var(--paper);
  transform: translateY(-1px);
}
.carousel-btn:disabled {
  opacity: 0.34;
  cursor: default;
  pointer-events: none;
}

.stage-artwork {
  width: min(100%, 960px);
  aspect-ratio: 1917 / 1200;
  overflow: hidden;
  position: relative;
}
.stage-shot {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  object-position: center top;
}
.stage-shot.is-integracao-web {
  object-fit: contain;
  object-position: center top;
}

.device-tag {
  font-family: inherit;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid rgba(10,10,10,0.12);
  background: rgba(255,255,255,0.75);
  color: rgba(10,10,10,0.62);
  white-space: nowrap;
}

.phone {
  width: clamp(220px, 28vw, 320px);
  max-width: 100%;
  aspect-ratio: 9 / 19;
  background: linear-gradient(180deg, #1a1a1c 0%, #050505 100%);
  border-radius: 34px;
  padding: 8px;
  position: relative;
  box-shadow:
    0 0 0 1px rgba(255,255,255,0.04),
    0 24px 60px -20px rgba(0,0,0,0.28),
    0 6px 14px -6px rgba(0,0,0,0.18);
}
.phone::before {
  content: "";
  position: absolute;
  top: 12px;
  left: 50%;
  transform: translateX(-50%);
  width: min(89px, 35%);
  height: 24px;
  background: #050505;
  border-radius: 10px;
  z-index: 3;
}
.phone .device-tag {
  position: absolute;
  left: 16px;
  top: 44px;
  z-index: 4;
  background: rgba(5,5,5,0.72);
  color: rgba(255,255,255,0.86);
  border: 1px solid rgba(255,255,255,0.14);
}
.phone .screen {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, rgba(255,255,255,0.95) 0%, rgba(234,228,255,0.92) 55%, rgba(255,255,255,0.95) 100%);
  border-radius: 26px;
  overflow: hidden;
  position: relative;
}
.phone .screen img,
.phone .screen video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  object-position: center top;
}
.mobile-shot { object-fit: contain; object-position: center top; }
.phone .screen .lb-trigger:hover { opacity: 1; }
.stage-panel[data-carousel-panel="1"] .phone::before { width: min(120px); top: 10px; height: 24px; }

.stage-panel[data-panel="1"] .phone,
.stage-panel[data-carousel-panel="1"] .phone,
.stage-panel[data-panel="3"] .phone,
.stage-panel[data-carousel-panel="3"] .phone {
  width: clamp(220px, 28vw, 320px);
  margin: 0;
}
.stage-panel[data-panel="1"] .stage-media,
.stage-panel[data-carousel-panel="1"] .stage-media,
.stage-panel[data-panel="3"] .stage-media,
.stage-panel[data-carousel-panel="3"] .stage-media {
  padding: 0;
}

.stage-nav {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 16px calc(14px + env(safe-area-inset-bottom));
  background: rgba(246,246,245,0.88);
  backdrop-filter: blur(10px);
  border-top: 1px solid var(--line);
  z-index: 2;
}
.stage-counter {
  font-family: inherit;
  font-size: 11.5px;
  color: var(--ink-3);
  letter-spacing: 0.06em;
  padding: 6px 12px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 999px;
}
.stage-btn {
  appearance: none;
  cursor: pointer;
  background: var(--ink);
  color: var(--paper);
  border: 1px solid var(--ink);
  padding: 12px 20px;
  border-radius: 8px;
  font-family: inherit;
  font-size: 14px;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: background .15s ease, opacity .15s ease;
}
.stage-btn:hover { background: var(--ink-2); }
.stage-btn:disabled { opacity: 0.35; cursor: not-allowed; }
.stage-btn .arrow { transition: transform .2s ease; }
.stage-btn.next:hover .arrow { transform: translateX(2px); }
.stage-btn.prev:hover .arrow { transform: translateX(-2px); }

/* ── solutions ─────────────────────────────────── */
:is(.solutions, .stats) {
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
}
.solutions {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 0;
  background: linear-gradient(180deg, #f4f5f7 0%, #eceef2 100%);
}
@media (max-width: 900px) { .solutions { grid-template-columns: 1fr; } }
.solutions :is(.head, .grid .item) {
  background: linear-gradient(180deg, #f7f8fa 0%, #eef0f4 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.75);
}
.solutions .head {
  padding: 36px;
  border-right: 1px solid var(--line);
}
.solutions .grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.solutions .grid .item {
  padding: 32px;
  border-bottom: 1px solid var(--line);
  border-right: 1px solid var(--line);
}
.solutions .grid .item:nth-child(2n) { border-right: 0; }
.solutions .grid .item:nth-last-child(-n+2) { border-bottom: 0; }
.solutions .grid .item h4 { font-size: 16px; font-weight: 500; }
.solutions .grid .item p { color: var(--ink-3); margin-top: 8px; font-size: 14px; }
.solutions .grid .item .role { font-family: inherit; font-size: 11px; color: var(--ink-4); margin-bottom: 10px; }

/* ── stats ─────────────────────────────────────── */
.stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  background: var(--paper);
}
.stats .stat { padding: 56px 32px; border-right: 1px solid var(--line); }
.stats .stat:last-child { border-right: 0; }
.stats .stat .num {
  font-size: clamp(48px, 5vw, 84px);
  font-weight: 500;
  letter-spacing: -0.04em;
  font-variant-numeric: tabular-nums;
}
.stats .stat .label { color: var(--ink-3); font-size: 14px; margin-top: 8px; max-width: 280px; }
.stats .stat .stat-ico {
  width: 28px;
  height: 28px;
  margin-bottom: 14px;
  color: var(--ink-3);
}
.stats .stat .stat-ico svg { width: 28px; height: 28px; display: block; }

/* ── quote carousel ────────────────────────────── */
.quote {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 56px;
  align-items: center;
}
@media (max-width: 900px) { .quote { grid-template-columns: 1fr; } }
.quote blockquote {
  font-size: clamp(18px, 3vw, 40px);
  letter-spacing: -0.025em;
  line-height: 1.3;
  margin: 0;
  font-weight: 400;
  text-align: left;
}
.quote .author { display: flex; gap: 12px; align-items: center; margin-top: 32px; font-size: 14px; }
.quote .author div { display: grid; gap: 2px; }
.quote .author .pho { width: 44px; height: 44px; border-radius: 50%; background: var(--paper-2); border: 1px solid var(--line); overflow: hidden; flex-shrink: 0; }
.quote .author .pho img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.quote .photo {
  aspect-ratio: 4/5;
  background:
    repeating-linear-gradient(135deg, transparent 0 8px, rgba(12,13,14,0.04) 8px 9px),
    var(--paper-2);
  border: 1px dashed var(--line);
  border-radius: 8px;
  display: grid;
  place-items: center;
  font-family: inherit;
  font-size: 11px;
  color: var(--ink-4);
  overflow: hidden;
}
.quote .photo.photo-logo { padding: 28px; }
.quote .photo.photo-logo img {
  width: 100%;
  height: 100%;
  max-width: 75%;
  max-height: 75%;
  object-fit: contain;
  display: block;
  filter: drop-shadow(0 8px 24px rgba(10,10,10,0.10));
}
.quote.is-active { display: grid; }
.quote:not(.is-active) { display: none; }
.quote-carousel__viewport { position: relative; }
.quote-carousel__nav {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 32px;
}
.quote-carousel__btn {
  appearance: none;
  border: 1px solid var(--line);
  background: var(--paper);
  border-radius: 8px;
  padding: 8px 14px;
  font: inherit;
  font-size: 13px;
  cursor: pointer;
  color: var(--ink-2);
  transition: background .15s ease, color .15s ease;
}
.quote-carousel__btn:hover { background: var(--paper-2); color: var(--ink); }
.quote-carousel__counter {
  font-family: inherit;
  font-size: 11px;
  color: var(--ink-3);
}
.quote-carousel__dots {
  display: none;
  justify-content: center;
  gap: 8px;
  margin-top: 24px;
}
.quote-dot {
  appearance: none;
  border: 0;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--paper-3);
  padding: 0;
  cursor: pointer;
  transition: background .2s ease, width .2s ease;
}
.quote-dot.is-active {
  width: 24px;
  background: var(--ink);
}
@media (max-width: 900px) {
  .quote {
    grid-template-columns: 1fr;
    gap: 24px;
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 28px 24px;
    background: var(--paper);
  }
  .quote .photo { display: none; }
  .quote blockquote { font-size: 16px; line-height: 1.5; }
  .quote .author { margin-top: 20px; }
  .quote-carousel__nav { display: none; }
  .quote-carousel__dots { display: flex; }
}

/* ── section header ───────────────────────────── */
section.block { padding: 96px 0; border-top: 1px solid var(--line); }
.block-head {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: end;
  margin-bottom: 48px;
}
@media (max-width: 820px) { .block-head { grid-template-columns: 1fr; } }
.block-head .lead { color: var(--ink-3); font-size: 17px; max-width: 460px; margin-left: auto; }

/* ── products grid ────────────────────────────── */
.grid-products {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
  background: var(--paper);
}
@media (max-width: 820px) { .grid-products { grid-template-columns: 1fr; } }
.product-card {
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 36px 32px;
  position: relative;
  transition: background .2s ease;
}
.product-card:hover { background: var(--paper-2); }
.product-card .icon {
  width: 32px;
  height: 32px;
  border-radius: 6px;
  background: var(--paper-2);
  border: 1px solid var(--line);
  display: grid;
  place-items: center;
  margin-bottom: 22px;
}
.product-card .icon svg { width: 18px; height: 18px; stroke: var(--ink); fill: none; stroke-width: 1.5; }
.product-card h3 { margin-bottom: 14px; }
.product-card p { color: var(--ink-3); font-size: 15px; max-width: 420px; }
.product-card .view {
  margin-top: 24px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  color: var(--ink);
  border-bottom: 1px solid var(--ink);
  padding-bottom: 2px;
}
.product-card .view .arrow { transition: transform .2s ease; }
.product-card:hover .view .arrow { transform: translate(2px, -2px); }
.product-card .badge {
  position: absolute;
  top: 22px;
  right: 22px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: inherit;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
  padding: 7px 12px;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(6, 18, 16, 0.98) 0%, rgba(12, 71, 55, 0.96) 100%);
  color: #f8fffb;
  border: 1px solid rgba(255, 255, 255, 0.16);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  box-shadow:
    0 10px 24px rgba(6, 18, 16, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

/* ── plans ────────────────────────────────────── */
#pricing {
  background: linear-gradient(180deg, #f3f4f6 0%, #ffffff 60%);
}
.plans-head { text-align: center; max-width: 720px; margin: 0 auto 56px; }
.plans-head h2 { font-size: clamp(40px, 5vw, 72px); }
.plans-head p {
  margin-top: 18px;
  color: var(--ink-3);
  font-size: 17px;
}
.plans-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
@media (max-width: 980px) { .plans-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .plans-grid { grid-template-columns: 1fr; } }

.plan-card {
  border-radius: 18px;
  padding: 44px 40px;
  display: flex;
  flex-direction: column;
  gap: 28px;
  min-height: 520px;
  position: relative;
  overflow: hidden;
  transition: transform 0.35s cubic-bezier(.22,.68,0,1.15), box-shadow 0.35s ease;
}
.plan-card:hover { transform: translateY(-5px); }
.plan-card::after {
  content: "";
  position: absolute;
  top: 0; left: -80%;
  width: 50%; height: 100%;
  background: linear-gradient(105deg, transparent, rgba(255,255,255,0.07), transparent);
  transform: skewX(-18deg);
  transition: left 0.65s ease;
  pointer-events: none;
}
.plan-card:hover::after { left: 140%; }
.plan-card.starter {
  background:
    linear-gradient(145deg, rgba(255,255,255,0.95) 0%, #e6e8ee 45%, #d1d6df 100%),
    repeating-linear-gradient(135deg, rgba(10,10,10,0.03) 0 7px, rgba(10,10,10,0.00) 7px 14px);
  border: 1px solid rgba(10,10,10,0.10);
  box-shadow: 0 2px 12px rgba(10,10,10,0.05), 0 1px 3px rgba(10,10,10,0.04);
}
.plan-card.starter:hover {
  box-shadow:
    0 0 0 1.5px rgba(10,10,10,0.18),
    0 0 32px rgba(148,163,184,0.25),
    0 0 64px rgba(148,163,184,0.10),
    0 14px 40px rgba(10,10,10,0.10);
}
.plan-card.custom {
  background:
    linear-gradient(145deg, #14161b 0%, #07080b 55%, #000000 100%),
    radial-gradient(420px 280px at 20% 0%, rgba(255,255,255,0.10), transparent 60%);
  border: 1px solid rgba(255,255,255,0.10);
  box-shadow: 0 2px 16px rgba(0,0,0,0.28), 0 1px 4px rgba(0,0,0,0.20);
}
.plan-card.custom:hover {
  box-shadow:
    0 0 0 1.5px rgba(200,210,220,0.35),
    0 0 40px rgba(180,190,205,0.18),
    0 0 80px rgba(180,190,205,0.08),
    0 14px 50px rgba(0,0,0,0.22);
}
.plan-card .plan-blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(48px);
  pointer-events: none;
  transition: transform 0.5s ease;
}
.plan-card:hover .plan-blob { transform: scale(1.25); }
.plan-card.starter .plan-blob {
  width: 220px; height: 220px;
  background: rgba(148,163,184,0.15);
  top: -60px; right: -50px;
}
.plan-card.custom .plan-blob {
  width: 200px; height: 200px;
  background: rgba(200,210,220,0.12);
  bottom: -40px; left: -40px;
}
.plan-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  font-family: inherit;
  font-size: 10.5px;
  text-transform: uppercase;
  letter-spacing: 0.10em;
  width: fit-content;
}
.plan-card.starter .plan-tag {
  background: rgba(10,10,10,0.06);
  color: rgba(10,10,10,0.72);
  border: 1px solid rgba(10,10,10,0.14);
}
.plan-card.custom .plan-tag {
  background: rgba(255,255,255,0.08);
  color: rgba(235,239,245,0.86);
  border: 1px solid rgba(255,255,255,0.14);
}
.plan-tag .dot { width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.plan-card .head { display: grid; gap: 10px; position: relative; z-index: 1; }
.plan-card h3 {
  font-size: clamp(40px, 4.4vw, 56px);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 1;
}
.plan-card.starter h3 { color: var(--ink); }
.plan-card.custom h3 { color: rgba(245,247,250,0.92); }
.plan-card .pitch { font-size: 16px; }
.plan-card.starter .pitch { color: var(--ink-3); }
.plan-card.custom .pitch { color: rgba(255,255,255,0.52); }
.plan-card ul.features {
  margin: 0; padding: 0; list-style: none;
  display: grid; gap: 15px;
  flex: 1;
  position: relative; z-index: 1;
}
.plan-card ul.features li {
  position: relative;
  padding-left: 28px;
  font-size: 15px;
  line-height: 1.45;
}
.plan-card.starter ul.features li { color: var(--ink); }
.plan-card.custom ul.features li { color: rgba(255,255,255,0.72); }
.plan-card.custom ul.features li strong { color: rgba(245,247,250,0.92); font-weight: 500; }
.plan-card ul.features li::before {
  content: "";
  position: absolute; left: 0; top: 4px;
  width: 17px; height: 17px;
  border-radius: 50%;
  background-repeat: no-repeat; background-position: center;
}
.plan-card.starter ul.features li::before {
  background-color: var(--ink);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' fill='none' stroke='%23f7f6f2' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M5 9l3 3 5-6'/></svg>");
}
.plan-card.custom ul.features li::before {
  background-color: rgba(210,218,228,0.80);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' fill='none' stroke='%23f7f6f2' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M5 9l3 3 5-6'/></svg>");
}
.plan-divider { height: 1px; border: none; margin: 0; }
.plan-card.starter .plan-divider { background: linear-gradient(90deg, rgba(10,10,10,0.12), transparent); }
.plan-card.custom .plan-divider { background: linear-gradient(90deg, rgba(255,255,255,0.12), transparent); }
.plan-card .cta-row { margin-top: auto; position: relative; z-index: 1; }
.btn.plan {
  padding: 12px 22px; border-radius: 8px; font-weight: 500;
  display: inline-flex; align-items: center; gap: 7px;
  transition: background .18s ease, color .18s ease, box-shadow .25s ease, transform .18s ease;
}
.btn.plan .arrow { transition: transform .2s ease; }
.btn.plan:hover .arrow { transform: translate(2px, -2px); }
.btn.plan-outline {
  background: transparent; color: var(--ink); border: 1px solid rgba(10,10,10,0.55);
}
.btn.plan-outline:hover {
  background: var(--ink); color: var(--paper);
  box-shadow: 0 4px 16px rgba(10,10,10,0.12);
  transform: translateY(-1px);
}
.btn.plan-filled {
  background: var(--ink-2); color: var(--paper); border: 1px solid var(--ink-2);
}
.btn.plan-filled:hover {
  background: var(--ink); border-color: var(--ink);
  box-shadow: 0 4px 20px rgba(10,10,10,0.25);
  transform: translateY(-1px);
}

/* ── section bridge ───────────────────────────── */
.section-bridge {
  position: relative;
  height: 1px;
  margin: 0;
  overflow: visible;
  pointer-events: none;
  z-index: 0;
}
.section-bridge::before {
  content: "";
  position: absolute;
  left: -8%; right: -8%; top: -180px;
  height: 360px;
  background:
    radial-gradient(ellipse 55% 90% at 18% 50%, var(--gradient-1) 0%, transparent 60%),
    radial-gradient(ellipse 45% 75% at 50% 55%, var(--gradient-2) 0%, transparent 60%),
    radial-gradient(ellipse 50% 80% at 82% 45%, var(--gradient-3) 0%, transparent 60%);
  filter: blur(90px) saturate(118%);
  opacity: 0.45;
  animation: auroraDrift 24s ease-in-out infinite alternate;
}
.section-bridge.warm::before {
  background:
    radial-gradient(ellipse 50% 80% at 25% 50%, var(--gradient-4) 0%, transparent 60%),
    radial-gradient(ellipse 60% 90% at 70% 50%, var(--gradient-2) 0%, transparent 60%);
  opacity: 0.40;
}

/* ── final cta ─────────────────────────────────── */
.cta-section {
  position: relative;
  padding: 80px 0 56px;
  isolation: isolate;
}
.cta-section .aurora {
  top: -40px;
  height: calc(100% + 200px);
  left: -10%; right: -10%;
  opacity: 0.55;
  animation: auroraDrift 26s ease-in-out infinite alternate;
}
.final-cta {
  position: relative;
  z-index: 1;
  background: rgba(255,255,255,0.45);
  backdrop-filter: blur(20px) saturate(140%);
  -webkit-backdrop-filter: blur(20px) saturate(140%);
  border: 1px solid rgba(255,255,255,0.45);
  color: var(--ink);
  border-radius: 16px;
  padding: 56px 40px;
  text-align: center;
  overflow: hidden;
  box-shadow:
    0 1px 0 rgba(255,255,255,0.55) inset,
    0 18px 50px -28px rgba(10,10,10,0.10);
}
.final-cta h2 {
  font-size: clamp(36px, 4.4vw, 60px);
  font-weight: 500; letter-spacing: -0.025em; line-height: 1.1;
  color: var(--ink);
}
.final-cta p {
  color: var(--ink-3); margin-top: 12px; max-width: 440px;
  margin-left: auto; margin-right: auto;
  font-size: 17px; line-height: 1.65;
}
.final-cta .cta-row {
  margin-top: 28px; display: flex; gap: 10px; justify-content: center;
}
.final-cta .hero-actions { margin-top: 28px; display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.final-cta .eyebrow { color: var(--accent-deep); margin-bottom: 18px; }
.final-cta .btn {
  color: var(--ink); border-color: var(--ink);
  background: transparent;
  padding: 9px 16px; font-size: 14px;
}
.final-cta .btn:hover { background: var(--ink); color: var(--paper); }
.final-cta .btn.solid { background: var(--ink); color: var(--paper); }
.final-cta .btn.solid:hover { background: var(--ink-2); }
.final-cta .btn.accent {
  background: var(--ink); color: var(--paper); border-color: var(--ink);
}
.final-cta .btn.accent:hover {
  background: var(--accent); border-color: var(--accent); color: var(--paper);
}
.final-cta .lead-form {
  margin-top: 26px;
  display: grid;
  gap: 12px;
  justify-items: center;
}
.final-cta .lead-grid {
  width: min(660px, 100%);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
@media (max-width: 560px) { .final-cta .lead-grid { grid-template-columns: 1fr; } }
.final-cta .lead-input {
  width: 100%;
  border-radius: 12px;
  border: 1px solid rgba(10,10,10,0.16);
  background: rgba(255,255,255,0.86);
  color: var(--ink);
  padding: 15px 18px;
  font-size: 15px;
  outline: none;
  font-family: inherit;
}
.final-cta .lead-input::placeholder { color: rgba(10,10,10,0.45); }
.final-cta .lead-input:focus {
  border-color: rgba(10,10,10,0.45);
  box-shadow: 0 0 0 4px rgba(10,10,10,0.10);
  background: rgba(255,255,255,0.95);
}
.final-cta .lead-actions { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.final-cta .lead-help {
  font-size: 12.5px;
  color: rgba(10,10,10,0.55);
  text-align: center;
  max-width: 520px;
}
.final-cta .lead-status {
  min-height: 18px;
  font-size: 13.5px;
  color: rgba(10,10,10,0.62);
  text-align: center;
}

footer.site {
  position: relative;
  padding: 64px 0 32px;
  margin-top: 0;
  isolation: isolate;
  background: linear-gradient(180deg, var(--gradient-1) 0%, #fff 70%);
  color: var(--ink);
}

footer.site .aurora {
  position: absolute;
  left: -10%;
  right: -10%;
  top: -200px;
  height: 520px;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 55% 85% at 18% 40%, rgba(74,144,217,.18) 0%, transparent 60%),
    radial-gradient(ellipse 50% 80% at 62% 55%, rgba(31,90,150,.10) 0%, transparent 62%),
    radial-gradient(ellipse 45% 75% at 88% 40%, rgba(226,232,240,.55) 0%, transparent 62%);
  filter: blur(90px);
  opacity: .7;
  animation: none;
}

footer.site .container {
  position: relative;
  z-index: 2;
}

footer.site h4 {
  font-size: 11px;
  color: var(--ink-4);
  font-weight: 600;
  margin-bottom: 14px;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-family: inherit;
}

footer.site ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 10px;
  font-size: 13px;
  color: var(--ink-3);
}

footer.site a {
  color: inherit;
}

footer.site a:hover {
  color: var(--ink);
}

.footer-top {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1.2fr 1.3fr;
  gap: 44px;
  padding: 10px 0 26px;
}

.footer-brand img {
  display: block;
  height: 20px;
  width: auto;
  filter: none;
  opacity: .92;
}

.footer-social {
  display: flex;
  gap: 10px;
  margin-top: 18px;
  flex-wrap: wrap;
}

.footer-social a {
  width: 40px;
  height: 40px;
  border-radius: 999px;
  border: 1px solid var(--line);
  color: var(--ink-3);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}

.footer-social a:hover {
  background: var(--paper-2);
  border-color: rgba(10,10,10,.14);
  color: var(--ink);
}

.footer-social svg {
  width: 16px;
  height: 16px;
  display: block;
}

.footer-intro {
  color: var(--ink-3);
  font-size: 13px;
  line-height: 1.55;
}

.footer-form {
  margin-top: 14px;
  display: grid;
  gap: 10px;
  justify-items: start;
}

.footer-input {
  width: 100%;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  padding: 12px 14px;
  font-size: 14px;
  outline: none;
}

.footer-input::placeholder {
  color: var(--ink-4);
}

.footer-input:focus {
  border-color: rgba(var(--accent-rgb),.35);
  box-shadow: 0 0 0 4px rgba(var(--accent-rgb),.10);
}

.footer-submit {
  width: fit-content;
  justify-content: flex-end;
  border-radius: 0;
  padding: 0;
  font-size: 13px;
  font-weight: 600;
  border: 0;
  background: transparent;
  color: var(--accent-deep);
  cursor: pointer;
  transition: color .15s ease, transform .15s ease;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: inherit;
  text-transform: none;
  letter-spacing: 0;
  align-self: flex-end;
}

.footer-submit .arrow {
  transition: transform .2s ease;
}

.footer-submit:hover {
  color: var(--ink);
  transform: translateY(-1px);
}

.footer-submit:hover .arrow {
  transform: translateX(2px);
}

.footer-contact li {
  display: flex;
  gap: 10px;
  align-items: flex-start;
}

.footer-contact .ico {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  margin-top: 2px;
  color: var(--ink-4);
}

.footer-app {
  margin-top: 18px;
  padding: 22px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  flex-wrap: wrap;
}

.footer-app p {
  color: var(--ink-3);
  font-size: 14px;
  margin-top: 6px;
}

.stores {
  display: flex;
  gap: 10px;
  margin-top: 22px;
  flex-wrap: wrap;
}

footer.site .stores {
  margin-top: 0;
}

.store {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 9px 14px;
  background: var(--paper);
  color: var(--ink);
  border-radius: 8px;
  border: 1px solid var(--line);
  transition: transform .15s ease, background .15s ease;
}

footer.site .store {
  background: var(--paper);
  color: var(--ink);
  border-color: var(--line);
  border-radius: 999px;
  padding: 10px 16px;
}

footer.site .store:hover {
  background: var(--paper-2);
}

.store:hover {
  background: var(--paper-2);
  transform: translateY(-1px);
}

.store .ico {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  fill: currentColor;
}

.store .lbl {
  display: grid;
  line-height: 1.05;
}

.store .lbl small {
  font-family: inherit;
  font-size: 9.5px;
  opacity: .66;
  text-transform: uppercase;
  letter-spacing: 0.10em;
}

.store .lbl strong {
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.01em;
}

.footer-legal {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 18px;
  width: 100%;
  padding-top: 18px;
  color: var(--ink-4);
  font-size: 13px;
  font-family: inherit;
}

.footer-legal .links {
  display: flex;
  gap: 18px;
  flex-wrap: wrap;
  justify-content: flex-end;
  text-align: right;
  justify-self: end;
}

.footer-product {
  color: var(--ink-4);
}

.footer-link-button,
.cart-doc-link {
  appearance: none;
  border: 0;
  background: transparent;
  padding: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
}

.footer-link-button {
  color: var(--ink-2);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.footer-link-button:hover {
  color: var(--ink);
}

.cart-footnote .cart-doc-link {
  color: var(--accent-deep);
  font-family: inherit;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.cart-footnote .cart-doc-link:hover {
  color: var(--ink);
}

.wa-float {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 60;
  width: 56px;
  height: 56px;
  border-radius: 999px;
  background: #25D366;
  color: #fff;
  display: grid;
  place-items: center;
  box-shadow: 0 20px 40px rgba(0,0,0,.35);
  transition: filter .15s ease, transform .15s ease;
}

.wa-float:hover {
  filter: brightness(1.05);
}

.wa-float:active {
  transform: scale(.98);
}

.wa-float svg {
  width: 28px;
  height: 28px;
  display: block;
}

.lb-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.92);
  z-index: 300;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px 72px;
  opacity: 0;
  visibility: hidden;
  transition: opacity .25s ease, visibility .25s ease;
  cursor: zoom-out;
}
.lb-overlay.open { opacity: 1; visibility: visible; }
.lb-content {
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: min(1280px, 96vw);
  max-height: 90vh;
}
.lb-content img,
.lb-content video {
  max-width: 100%;
  max-height: 90vh;
  border-radius: 10px;
  display: block;
  box-shadow: 0 40px 100px rgba(0,0,0,.7);
  cursor: default;
}
.lb-close {
  position: fixed;
  top: 16px; right: 16px;
  width: 44px; height: 44px;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.22);
  color: #fff;
  font-size: 20px;
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: background .2s ease;
  z-index: 301;
}
.lb-close:hover { background: rgba(255,255,255,.26); }
.lb-nav {
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
  width: 48px; height: 48px;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.22);
  color: #fff;
  font-size: 22px;
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: background .2s ease, opacity .2s ease;
  z-index: 301;
}
.lb-nav:hover { background: rgba(255,255,255,.26); }
.lb-nav:disabled { opacity: 0.25; cursor: default; }
.lb-prev { left: 14px; }
.lb-next { right: 14px; }
.lb-counter {
  position: fixed;
  bottom: 18px;
  left: 50%;
  transform: translateX(-50%);
  font-family: inherit;
  font-size: 11px;
  color: rgba(255,255,255,.55);
  letter-spacing: .08em;
  z-index: 301;
}

.cart-overlay {
  position: fixed;
  inset: 0;
  z-index: 120;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .22s ease, visibility .22s ease;
}

.cart-overlay.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.cart-overlay__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(10,10,10,.48);
  backdrop-filter: blur(10px);
}

.cart-overlay__panel {
  position: absolute;
  top: 12px;
  right: 12px;
  width: min(440px, calc(100vw - 24px));
  height: calc(100vh - 24px);
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(247,248,250,.98) 100%);
  box-shadow: -30px 0 80px rgba(10,10,10,.24);
  border: 1px solid rgba(10,10,10,.08);
  overflow: hidden;
  transform: translateX(18px);
  display: flex;
  flex-direction: column;
}

.cart-overlay.is-open .cart-overlay__panel {
  transform: translateX(0);
}

.cart-overlay__header {
  padding: 20px 20px 14px;
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid rgba(10,10,10,.08);
  background: rgba(255,255,255,.7);
  backdrop-filter: blur(8px);
}

.cart-overlay__header h3 {
  font-size: 24px;
  letter-spacing: -0.03em;
  margin-top: 6px;
}

.cart-overlay__close {
  width: 42px;
  height: 42px;
  border-radius: 999px;
  border: 1px solid rgba(10,10,10,.08);
  background: white;
  color: var(--ink);
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}

.cart-overlay__body {
  padding: 18px 20px 22px;
  display: grid;
  gap: 16px;
  overflow: auto;
  flex: 1;
}

.cart-summary {
  background: white;
  border: 1px solid rgba(10,10,10,.08);
  border-radius: 20px;
  padding: 16px;
  display: grid;
  gap: 12px;
}

.cart-summary__plan {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: start;
}

.cart-summary__plan h4 {
  font-size: 20px;
  margin-top: 2px;
}

.cart-summary__meta {
  font-family: inherit;
  font-size: 11px;
  color: var(--ink-3);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.cart-summary__price {
  text-align: right;
  white-space: nowrap;
}

.cart-summary__price strong {
  display: block;
  font-size: 28px;
  letter-spacing: -0.04em;
  line-height: 1;
}

.cart-summary__price span {
  display: block;
  margin-top: 4px;
  color: var(--ink-3);
  font-size: 13px;
}

.cart-options {
  display: grid;
  gap: 10px;
}

.cart-option {
  width: 100%;
  text-align: left;
  border-radius: 16px;
  border: 1px solid rgba(10,10,10,.08);
  background: white;
  padding: 14px 14px;
  cursor: pointer;
  transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
  display: grid;
  gap: 4px;
}

.cart-option:hover {
  transform: translateY(-1px);
  border-color: rgba(74,144,217,.30);
  box-shadow: 0 14px 30px -24px rgba(10,10,10,.35);
}

.cart-option.is-active {
  border-color: rgba(74,144,217,.55);
  box-shadow: 0 0 0 4px rgba(74,144,217,.10);
}

.cart-option .kicker {
  font-family: inherit;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent-deep);
}

.cart-option .name {
  font-size: 17px;
  font-weight: 500;
}

.cart-option .desc {
  color: var(--ink-3);
  font-size: 13px;
  line-height: 1.45;
}

.cart-option .price {
  font-family: inherit;
  font-size: 12px;
  color: var(--ink-3);
}

.cart-form {
  background: white;
  border: 1px solid rgba(10,10,10,.08);
  border-radius: 20px;
  padding: 16px;
  display: grid;
  gap: 12px;
}

.cart-form .row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.cart-form label {
  display: grid;
  gap: 6px;
  font-size: 12px;
  color: var(--ink-3);
  font-family: inherit;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.cart-form input,
.cart-form select,
.cart-form textarea {
  width: 100%;
  border-radius: 14px;
  border: 1px solid rgba(10,10,10,.10);
  background: #fff;
  color: var(--ink);
  padding: 12px 14px;
  font: inherit;
  font-size: 14px;
  outline: none;
}

.cart-form textarea {
  resize: vertical;
  min-height: 88px;
}

.cart-form input:focus,
.cart-form select:focus,
.cart-form textarea:focus {
  border-color: rgba(74,144,217,.50);
  box-shadow: 0 0 0 4px rgba(74,144,217,.10);
}

.cart-actions {
  display: grid;
  gap: 10px;
}

.cart-actions .btn {
  justify-content: center;
  width: 100%;
}

.cart-footnote {
  font-size: 12px;
  color: var(--ink-3);
  line-height: 1.5;
}

.cart-inline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 14px;
  background: rgba(74,144,217,.08);
  color: var(--ink);
  border: 1px solid rgba(74,144,217,.14);
}

.cart-inline strong {
  font-size: 18px;
  letter-spacing: -0.03em;
}

.cart-inline span {
  color: var(--ink-3);
  font-size: 12px;
}

.cart-inline__right {
  text-align: right;
}

.cart-footnote--spaced {
  margin-top: 10px;
}

body.cart-open {
  overflow: hidden;
}

body.doc-modal-open {
  overflow: hidden;
}

body.lead-modal-open {
  overflow: hidden;
}
@media (max-width: 1080px){
  .nav-toggle{display:inline-flex}
  .nav-links{display:none}
  nav.site .inner{position:relative;justify-content:space-between}
  nav.site .inner > .logo{position:absolute;left:50%;transform:translateX(-50%)}
  nav.site .inner > .nav-toggle{order:-1}
  nav.site .nav-actions{margin-left:auto}
  nav.site .nav-actions .nav-login-desktop{display:none}
}

@media (max-width: 980px) {
  .footer-top {
    grid-template-columns: 1fr 1fr;
    gap: 34px;
  }
}

@media (max-width: 820px) {
  .flow .lane { grid-template-columns: 1fr; gap: 18px; min-height: 0; }
  .flow svg.lines { display: none; }
  .flow .col-hub { display: none; }
  .logos-carousel { --logo-gap: 38px; }
  .logos-track { padding: 18px 20px; }
  .logo-item { width: 176px; height: 114px; border-radius: 14px; padding: 10px; }
  .logo-item img { height: 44px; max-width: 152px; }
  .product-card { padding: 28px 24px; }
  .stage-panel {
    padding: 24px 20px 24px;
  }
  .carousel-nav {
    padding: 12px 14px 12px;
    gap: 8px;
  }
  .carousel-btn {
    padding: 8px 12px;
    font-size: 12px;
  }
  .carousel-counter {
    font-size: 10px;
  }
}

@media (max-width: 640px){
  nav.site .nav-actions{display:none}
  nav.site .inner > .logo{position:static;transform:none;margin:0 auto}
  nav.site .inner{padding:12px 16px}
  .container{padding:0 16px}
  .page{padding-top:55px}
  section.hero { padding: 0; }
  section.hero .inner { padding: 20px 20px 0; }
  .hero{padding:44px 0 72px}
  .logobar { padding: 72px 0 84px; }
  .logos-carousel { --logo-gap: 26px; }
  .logos-track { padding: 16px 16px; }
  .stage-text { order: -1; }
  .stage-media { order: 0; width: 100%; display: flex; justify-content: center; }
  .stage { margin-top: 32px; }
  .stage[data-carousel-root="mobile"] .stage-panel { grid-template-columns: 1fr; }
  .phone { width: clamp(200px, 60vw, 280px); }
  .stats { grid-template-columns: 1fr; }
  .stats .stat { border-right: 0; border-bottom: 1px solid var(--line); padding: 32px 24px; }
  .stats .stat:last-child { border-bottom: 0; }
  .stats .stat .num { font-size: 48px; }
  .product-card { padding: 22px 18px; }
  .product-card h3 { font-size: 19px; }
  .product-card p { font-size: 14px; }
  .product-card .badge { top: 18px; right: 18px; font-size: 10.5px; padding: 6px 11px; }
  .block-head { gap: 24px; margin-bottom: 32px; }
  .block-head .lead { margin-left: 0; max-width: none; font-size: 15px; }
  .card{padding:22px}
  nav.site .btn.solid {
    padding: 8px 12px;
    font-size: 13px;
  }
  .footer-top {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .footer-top > div:first-child {
    text-align: center;
  }
  .footer-brand img {
    margin: 0 auto;
  }
  .footer-social {
    justify-content: center;
  }
  .footer-legal {
    grid-template-columns: 1fr;
    gap: 12px;
    justify-items: center;
    text-align: center;
  }
  .footer-legal .links {
    justify-content: center;
    text-align: center;
    justify-self: center;
    gap: 10px;
    font-size: 12px;
  }
  .wa-float {
    right: calc(14px + env(safe-area-inset-right));
    bottom: calc(96px + env(safe-area-inset-bottom));
  }
  .cart-overlay__panel {
    top: 0;
    right: 0;
    width: 100vw;
    height: 100vh;
    border-radius: 0;
    border-left: 0;
    border-right: 0;
  }
  .cart-form .row {
    grid-template-columns: 1fr;
  }
  .flow {
    padding: 0 18px 40px;
    margin-top: 24px;
  }
  .hub {
    padding: 18px 22px;
    min-width: 0;
    max-width: 280px;
  }
  .solutions .head { border-right: 0; border-bottom: 1px solid var(--line); padding: 28px; }
  .solutions .grid { grid-template-columns: 1fr; }
  .solutions .grid .item { border-right: 0; border-bottom: 1px solid var(--line); padding: 26px 28px; }
  .solutions .grid .item:nth-child(2n) { border-right: 0; }
  .solutions .grid .item:nth-last-child(-n+2) { border-bottom: 1px solid var(--line); }
  .solutions .grid .item:last-child { border-bottom: 0; }
  .hero p.lede { font-size: 13.5px; max-width: 380px; }
  .hero .cta-row { flex-wrap: nowrap; gap: 8px; }
  .hero .cta-row .btn { white-space: nowrap; justify-content: center; padding: 10px 14px; font-size: 13px; }
  .lb-overlay {
    padding: 14px;
  }
  .lb-content {
    max-width: 96vw;
  }
  .lb-close {
    top: 12px;
    right: 12px;
  }
  .lb-nav {
    width: 42px;
    height: 42px;
  }
  .lb-prev { left: 10px; }
  .lb-next { right: 10px; }
  .lb-counter {
    bottom: 12px;
  }
  .stage-panel {
    padding-bottom: 24px;
  }
  .stage-nav {
    padding: 12px 14px calc(12px + env(safe-area-inset-bottom));
    gap: 8px;
  }
  .stage-btn {
    padding: 9px 12px;
    font-size: 13px;
  }
  .stage-counter {
    font-size: 10px;
    padding: 5px 10px;
  }
  .plans-head { margin-bottom: 36px; }
  .plans-head p { font-size: 15px; }
  .plans-grid { gap: 14px; }
  .plan-card { padding: 28px 24px; min-height: 0; gap: 20px; }
  .plan-card h3 { font-size: clamp(34px, 8vw, 44px); }
  .plan-card .pitch { font-size: 14.5px; }
  .plan-card ul.features li { font-size: 14px; padding-left: 28px; }
}

@media (max-width: 400px) {
  .container {
    padding: 0 14px;
  }
  .hero h1 { font-size: 34px; line-height: 1.05; }
  .hero p.lede { font-size: 13px; }
  .product-card { padding: 20px 16px; }
  nav.site .btn.solid {
    padding: 8px 10px;
    font-size: 12.5px;
  }
  .store {
    padding: 9px 12px;
  }
  .store .lbl small {
    font-size: 9px;
  }
  .store .lbl strong {
    font-size: 13px;
  }
  .logos-carousel { --logo-gap: 22px; }
  .logos-track { padding: 14px 14px; }
  .logo-item { width: 164px; height: 108px; padding: 9px; }
  .logo-item img { height: 40px; max-width: 140px; }
  .plans-head { margin-bottom: 28px; }
  .plan-card { padding: 24px 18px; }
}
