/* ============================================================
   AYIO — AI Software Studio
   Sistema de design + efeitos
   ============================================================ */

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
img,svg,video{display:block;max-width:100%;height:auto}
button,input,textarea,select{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
a{color:inherit;text-decoration:none}
ul{list-style:none}

/* ---------- Tokens ---------- */
:root{
  /* Marca AYIO */
  --ink:#05070F;
  --ink-2:#080C1A;
  --surface:#0D1327;
  --surface-2:#121A33;
  --line:rgba(255,255,255,.10);
  --line-strong:rgba(255,255,255,.18);

  --navy:#1B2A5E;
  --navy-lit:#2E45A0;
  --cream:#F8F7F5;

  --text:#EDEFF6;
  --text-dim:rgba(237,239,246,.62);
  --text-faint:rgba(237,239,246,.38);

  /* Accent dinâmico — trocado por seção via JS.
     --accent é o azul da marca CLAREADO: precisa passar em texto pequeno
     sobre fundo quase preto (7.4:1). O azul escuro fica nos preenchimentos. */
  --accent:#7D9BF0;
  --accent-2:#3F57B8;
  --accent-ink:#05070F;
  --glow:rgba(62,87,184,.34);

  /* Preenchimento sólido (botões): azul escuro da AYIO.
     Sozinho ele quase some no fundo #05070F (1.5:1), então vem em gradiente
     e com um fio de borda clara — é o que devolve a definição da forma. */
  --fill:linear-gradient(135deg,#33499F,#1B2A5E);
  --fill-hover:linear-gradient(135deg,#4A61CE,#27387F);
  --on-fill:#FFFFFF;
  --fill-edge:rgba(255,255,255,.18);

  /* Texto grande em gradiente: faixa mais clara, senão a ponta escura some */
  --grad-a:#A8BCFF;
  --grad-b:#5C79DD;

  /* Produtos */
  --sc-navy:#1E3A5F;
  --sc-red:#B00000;
  --sc-coral:#C94D4D;
  --ls-deep:#081F30;
  --ls-green:#298268;
  --ls-teal:#23757A;
  --ls-blue:#086C8A;
  --ls-leaf:#468D51;
  --ad-navy:#164A67;
  --ad-mint:#7BD3BD;
  --ad-violet:#A783EB;
  --ad-sky:#6EB7EB;
  --ad-pink:#EB70A4;
  --ad-amber:#ECC75F;

  --display:'Sora',ui-sans-serif,system-ui,sans-serif;
  --body:'Inter',ui-sans-serif,system-ui,sans-serif;
  --alt:'Poppins',var(--body);

  --rad:18px;
  --rad-lg:28px;
  --pad:clamp(20px,5vw,80px);
  --maxw:1280px;
  --ease:cubic-bezier(.22,1,.36,1);
  --ease-io:cubic-bezier(.65,.05,.36,1);
}

/* ---------- Base ---------- */
html{scroll-behavior:smooth}
html.has-smooth{scroll-behavior:auto}
body{
  font-family:var(--body);
  background:var(--ink);
  color:var(--text);
  line-height:1.6;
  overflow-x:clip;
  -webkit-font-smoothing:antialiased;
  font-synthesis-weight:none;
}
::selection{background:var(--accent);color:var(--accent-ink)}

/* Scrollbar */
::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-track{background:var(--ink)}
::-webkit-scrollbar-thumb{background:rgba(255,255,255,.14);border-radius:99px}
::-webkit-scrollbar-thumb:hover{background:var(--accent)}

/* Grão */
body::after{
  content:'';position:fixed;inset:-50%;z-index:9998;pointer-events:none;opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 6s steps(6) infinite;
}
@keyframes grain{
  0%,100%{transform:translate(0,0)}20%{transform:translate(-6%,4%)}
  40%{transform:translate(4%,-6%)}60%{transform:translate(-3%,-4%)}80%{transform:translate(6%,3%)}
}

/* ---------- Tipografia ---------- */
h1,h2,h3,h4{font-family:var(--display);font-weight:600;line-height:1.02;letter-spacing:-.035em}
.h-xl{font-size:clamp(2.5rem,6.6vw,5.9rem)}
.h-lg{font-size:clamp(2rem,4.8vw,4.2rem)}
.h-md{font-size:clamp(1.6rem,3.2vw,2.7rem)}
.h-sm{font-size:clamp(1.2rem,2vw,1.65rem);letter-spacing:-.02em}
.lead{font-size:clamp(1.02rem,1.55vw,1.32rem);color:var(--text-dim);line-height:1.62;max-width:62ch}
.small{font-size:.83rem;line-height:1.6;color:var(--text-dim)}
.mono{font-family:ui-monospace,'SFMono-Regular',Menlo,monospace;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase}

.eyebrow{
  display:inline-flex;align-items:center;gap:.6rem;
  font-family:ui-monospace,'SFMono-Regular',Menlo,monospace;
  font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--accent);
}
.eyebrow::before{content:'';width:26px;height:1px;background:currentColor;opacity:.6}
.eyebrow.no-bar::before{display:none}

.grad-accent{
  background:linear-gradient(100deg,var(--grad-a),var(--grad-b) 92%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}

/* ---------- Layout ---------- */
.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad)}
.section{position:relative;padding-block:clamp(84px,11vw,170px)}
.section--tight{padding-block:clamp(56px,7vw,100px)}
.grid{display:grid;gap:clamp(20px,3vw,40px)}
.g-2{grid-template-columns:repeat(2,1fr)}
.g-3{grid-template-columns:repeat(3,1fr)}
.g-4{grid-template-columns:repeat(4,1fr)}
.split{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(28px,5vw,72px);align-items:start}
@media(max-width:900px){.g-3,.g-4,.g-2,.split{grid-template-columns:1fr}}

.rule{height:1px;background:var(--line);border:0}

/* ---------- Cursor ---------- */
.cursor,.cursor-ring{position:fixed;top:0;left:0;z-index:9999;pointer-events:none;border-radius:50%;mix-blend-mode:difference}
.cursor{width:6px;height:6px;background:#fff;margin:-3px 0 0 -3px}
.cursor-ring{width:38px;height:38px;margin:-19px 0 0 -19px;border:1px solid rgba(255,255,255,.55);transition:width .3s var(--ease),height .3s var(--ease),margin .3s var(--ease),opacity .3s,background .3s}
.cursor-ring.grow{width:74px;height:74px;margin:-37px 0 0 -37px;background:rgba(255,255,255,.12);border-color:transparent}
@media(hover:none),(pointer:coarse){.cursor,.cursor-ring{display:none}}

/* ---------- Barra de progresso ---------- */
.progress{position:fixed;top:0;left:0;height:2px;width:100%;z-index:900;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:background .6s}

/* ---------- Nav ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:800;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:18px var(--pad);
  transition:background .45s var(--ease),backdrop-filter .45s,border-color .45s,padding .45s var(--ease),transform .5s var(--ease);
  border-bottom:1px solid transparent;
}
.nav.stuck{background:rgba(5,7,15,.72);backdrop-filter:blur(16px) saturate(140%);border-bottom-color:var(--line);padding-block:12px}
.nav.hide{transform:translateY(-102%)}
.nav__logo img{height:34px;width:auto;transition:height .45s var(--ease)}
.nav.stuck .nav__logo img{height:28px}
.nav__links{display:flex;align-items:center;gap:clamp(14px,2.2vw,34px)}
.nav__links a{
  position:relative;font-size:.86rem;font-weight:500;color:var(--text-dim);
  padding:6px 2px;transition:color .3s;
}
.nav__links a::after{
  content:'';position:absolute;left:0;bottom:0;height:1px;width:100%;
  background:var(--accent);transform:scaleX(0);transform-origin:100% 50%;
  transition:transform .45s var(--ease);
}
.nav__links a:hover{color:var(--text)}
.nav__links a:hover::after,.nav__links a.active::after{transform:scaleX(1);transform-origin:0 50%}
.nav__links a.active{color:var(--text)}
.nav__cta{display:flex;align-items:center;gap:12px}
@media(max-width:880px){.nav__links{display:none}}

/* Botões */
.btn{
  --b:var(--accent);
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  padding:14px 26px;border-radius:99px;font-size:.88rem;font-weight:600;letter-spacing:-.01em;
  overflow:hidden;isolation:isolate;white-space:nowrap;
  transition:color .4s var(--ease),border-color .4s,transform .35s var(--ease);
}
.btn::before{
  content:'';position:absolute;inset:0;z-index:-1;background:var(--b);
  transform:translateY(101%);transition:transform .5s var(--ease);border-radius:99px;
}
.btn:hover::before{transform:translateY(0)}
.btn--solid{background:var(--fill);color:var(--on-fill);border:1px solid var(--fill-edge)}
.btn--solid::before{background:var(--fill-hover)}
.btn--solid:hover{color:var(--on-fill);border-color:transparent}
.btn--ghost{border:1px solid var(--line-strong);color:var(--text)}
.btn--ghost::before{background:var(--fill-hover)}
.btn--ghost:hover{color:var(--on-fill);border-color:transparent}
.btn--sm{padding:10px 20px;font-size:.8rem}
.btn i{display:inline-block;transition:transform .4s var(--ease)}
.btn:hover i{transform:translateX(4px)}

/* Link com seta */
.arrow-link{
  display:inline-flex;align-items:center;gap:.55rem;font-weight:600;font-size:.9rem;
  color:var(--accent);position:relative;padding-bottom:3px;
}
.arrow-link::after{content:'';position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:100% 50%;transition:transform .45s var(--ease)}
.arrow-link:hover::after{transform:scaleX(1);transform-origin:0 50%}
.arrow-link svg{transition:transform .4s var(--ease)}
.arrow-link:hover svg{transform:translate(4px,-4px)}

/* Menu mobile */
.burger{display:none;width:42px;height:42px;border:1px solid var(--line-strong);border-radius:50%;position:relative}
.burger span{position:absolute;left:12px;width:18px;height:1.5px;background:var(--text);transition:transform .4s var(--ease),opacity .3s}
.burger span:nth-child(1){top:17px}
.burger span:nth-child(2){top:23px}
.burger.open span:nth-child(1){transform:translateY(3px) rotate(45deg)}
.burger.open span:nth-child(2){transform:translateY(-3px) rotate(-45deg)}
@media(max-width:880px){.burger{display:block}}
.drawer{
  position:fixed;inset:0;z-index:790;background:var(--ink-2);
  display:grid;align-content:center;gap:6px;padding:0 var(--pad);
  clip-path:inset(0 0 100% 0);transition:clip-path .75s var(--ease);
}
.drawer.open{clip-path:inset(0 0 0 0)}
.drawer a{
  font-family:var(--display);font-size:clamp(2rem,9vw,3.4rem);font-weight:600;letter-spacing:-.04em;
  padding:6px 0;opacity:0;transform:translateY(24px);transition:opacity .6s var(--ease),transform .6s var(--ease),color .3s;
}
.drawer.open a{opacity:1;transform:none}
.drawer a:hover{color:var(--accent)}
.drawer__foot{margin-top:32px;display:flex;flex-wrap:wrap;gap:18px}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;padding:clamp(110px,14vh,150px) 0 clamp(74px,10vh,110px)}
.hero__canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.hero::before{
  content:'';position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    radial-gradient(120% 80% at 50% 8%,rgba(27,42,94,.55),transparent 62%),
    radial-gradient(90% 60% at 82% 88%,rgba(125,155,240,.12),transparent 70%),
    linear-gradient(180deg,rgba(5,7,15,.62) 0%,rgba(5,7,15,.05) 34%,rgba(5,7,15,.86) 100%);
}
.hero__inner{position:relative;z-index:2;width:100%}
.hero__mark{width:clamp(160px,20vw,260px);margin-bottom:clamp(24px,4vh,44px);opacity:0}
.hero h1{margin-block:.22em .6em;max-width:15ch}
.hero__meta{display:flex;flex-wrap:wrap;gap:clamp(20px,3vw,52px);align-items:flex-end;justify-content:space-between}
.hero__actions{display:flex;flex-wrap:wrap;gap:14px}
.scroll-cue{
  position:absolute;left:var(--pad);bottom:26px;z-index:3;
  display:flex;align-items:center;gap:12px;color:var(--text-faint);
}
.scroll-cue .line{width:1px;height:44px;background:var(--line-strong);position:relative;overflow:hidden}
.scroll-cue .line::after{content:'';position:absolute;inset:0;background:var(--accent);transform:translateY(-100%);animation:cue 2.2s var(--ease-io) infinite}
@keyframes cue{0%{transform:translateY(-100%)}55%,100%{transform:translateY(100%)}}
@media(max-width:880px){.scroll-cue{display:none}}

/* Reveal por palavra/linha */
.reveal-lines{overflow:hidden}
.word{display:inline-block;overflow:hidden;vertical-align:top}
.word > span{display:inline-block;transform:translateY(110%);transition:transform .95s var(--ease)}
.reveal-lines.in .word > span{transform:none}
.reveal-lines .word:nth-child(n) > span{transition-delay:calc(var(--i,0) * 42ms)}

/* Reveal genérico */
.js [data-rise]{opacity:0;transform:translateY(38px);transition:opacity .9s var(--ease),transform 1s var(--ease)}
.js [data-rise].in{opacity:1;transform:none}
.js [data-rise][data-d="1"]{transition-delay:.09s}
.js [data-rise][data-d="2"]{transition-delay:.18s}
.js [data-rise][data-d="3"]{transition-delay:.27s}
.js [data-rise][data-d="4"]{transition-delay:.36s}
.js [data-rise][data-d="5"]{transition-delay:.45s}
.js [data-rise][data-d="6"]{transition-delay:.54s}

.js [data-clip]{clip-path:inset(0 0 100% 0);transition:clip-path 1.15s var(--ease)}
.js [data-clip].in{clip-path:inset(0 0 0 0)}

.js [data-grow]{transform:scaleX(0);transform-origin:0 50%;transition:transform 1.1s var(--ease)}
.js [data-grow].in{transform:scaleX(1)}

/* Média com máscara + parallax */
.media{position:relative;overflow:hidden;border-radius:var(--rad-lg);background:var(--surface)}
.js .media::after{content:'';position:absolute;inset:0;background:var(--ink);transform-origin:50% 0;transform:scaleY(1);transition:transform 1.15s var(--ease)}
.js .media.in::after{transform:scaleY(0)}
.js .media img{width:100%;transform:scale(1.14);transition:transform 1.6s var(--ease)}
.js .media.in img{transform:scale(1)}
.media--frame{border:1px solid var(--line);padding:10px}
.media--frame img{border-radius:14px}

/* ---------- Marquee ---------- */
.marquee{
  position:relative;display:flex;overflow:hidden;gap:0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding-block:clamp(14px,2vw,22px);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
}
.marquee__track{display:flex;flex:0 0 auto;align-items:center;gap:clamp(24px,4vw,56px);padding-right:clamp(24px,4vw,56px);animation:slide 34s linear infinite}
.marquee:hover .marquee__track{animation-play-state:paused}
@keyframes slide{to{transform:translateX(-100%)}}
.marquee__item{
  display:inline-flex;align-items:center;gap:clamp(24px,4vw,56px);
  font-family:var(--display);font-weight:600;letter-spacing:-.03em;
  font-size:clamp(1.1rem,2.6vw,2.1rem);color:var(--text-dim);white-space:nowrap;
}
.marquee__item b{color:var(--text);font-weight:600}
.dot{width:7px;height:7px;border-radius:50%;background:var(--accent);flex:0 0 auto}

/* ---------- Cards ---------- */
.card{
  position:relative;border:1px solid var(--line);border-radius:var(--rad-lg);
  background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.008));
  padding:clamp(24px,3vw,38px);overflow:hidden;
  transition:border-color .5s var(--ease),transform .55s var(--ease),background .5s;
}
.card::before{
  content:'';position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .5s;
  background:radial-gradient(340px 240px at var(--mx,50%) var(--my,0%),var(--glow),transparent 72%);
}
.card:hover{border-color:var(--line-strong);transform:translateY(-6px)}
.card:hover::before{opacity:1}
.card__num{font-family:ui-monospace,monospace;font-size:.72rem;letter-spacing:.18em;color:var(--accent);margin-bottom:20px;display:block}
.card h3{margin-bottom:.55rem}
.card p{color:var(--text-dim);font-size:.96rem}
.card__icon{width:44px;height:44px;margin-bottom:22px;color:var(--accent)}

/* Cards de clientes: centralizados, com monograma */
.card--client{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px;min-height:168px}
.card--client .mono-badge{
  width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:0 0 auto;
  background:var(--accent);color:var(--ink);font-family:var(--display);font-weight:700;font-size:1.05rem;
}
.card--client p{color:var(--text);font-size:.98rem;font-weight:500;line-height:1.4;max-width:32ch}

/* Cards de feedback/depoimento */
.card--quote{display:flex;flex-direction:column;gap:22px;justify-content:space-between}
.card--quote::after{
  content:'“';position:absolute;top:2px;right:24px;font-family:var(--display);
  font-size:4.6rem;line-height:1;color:var(--accent);opacity:.16;pointer-events:none;
}
.card--quote p{color:var(--text);font-size:1.02rem;line-height:1.55;position:relative;z-index:1}
.card--quote footer{display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--line);padding-top:14px}
.card--quote footer .n{font-family:var(--display);font-weight:600;font-size:.92rem;color:var(--text)}
.card--quote footer .r{font-size:.78rem;color:var(--text-faint)}

/* Lista de features */
.feats{display:grid;gap:2px;border-top:1px solid var(--line)}
.feats li{
  display:grid;grid-template-columns:auto 1fr;gap:clamp(14px,2.4vw,32px);align-items:baseline;
  padding:clamp(18px,2.4vw,28px) 0;border-bottom:1px solid var(--line);
  transition:padding-left .5s var(--ease),color .4s;
}
.feats li:hover{padding-left:14px}
.feats li .k{font-family:ui-monospace,monospace;font-size:.7rem;letter-spacing:.16em;color:var(--c,var(--accent));padding-top:.35em}
.feats li .t{font-family:var(--display);font-size:clamp(1.05rem,1.7vw,1.4rem);font-weight:500;letter-spacing:-.02em}
.feats li .d{grid-column:2;color:var(--text-dim);font-size:.93rem;margin-top:.4rem;max-width:64ch}

/* ---------- Produtos: cards empilhados sticky ---------- */
.stack{position:relative}
.stack__item{position:sticky;top:0;min-height:100svh;display:flex;align-items:center;padding-block:clamp(90px,10vh,120px)}
.stack__card{
  position:relative;width:100%;border-radius:var(--rad-lg);overflow:hidden;
  border:1px solid var(--line);
  background:var(--p-bg,var(--surface));
  box-shadow:0 -30px 80px -40px rgba(0,0,0,.9);
  transform-origin:50% 0;
  padding:clamp(28px,4.4vw,66px);
}
.stack__card::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:var(--p-glow,radial-gradient(90% 70% at 78% 8%,rgba(125,155,240,.16),transparent 66%));
}
.stack__card > *{position:relative}
/* Em telas pequenas o empilhamento vira fluxo normal */
@media(max-width:980px){
  .stack__item{position:relative;top:auto;min-height:0;padding-block:10px}
  .stack__card{transform:none!important;filter:none!important;box-shadow:none}
}
.prod{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.92fr);
  grid-template-areas:"head demo" "body demo";
  grid-template-rows:auto auto;
  column-gap:clamp(26px,4vw,64px);align-content:center;
}
.prod__head{grid-area:head}
.prod__body{grid-area:body}
.prod__demo{grid-area:demo;align-self:center}
@media(max-width:980px){
  /* A demo sobe para logo abaixo do título: sem ela no meio, o card vira
     uma parede de texto até o final. */
  .prod{grid-template-columns:1fr;grid-template-areas:"head" "demo" "body";row-gap:22px}
  .prod__demo{align-self:stretch}
}
.prod__badge{
  display:inline-flex;align-items:center;gap:9px;padding:7px 17px;border-radius:99px;
  font-family:var(--display);font-size:.73rem;font-weight:600;letter-spacing:.085em;text-transform:uppercase;
  background:var(--p-badge-bg,rgba(255,255,255,.08));color:var(--p-badge,#fff);
  border:1px solid var(--p-badge-bd,rgba(255,255,255,.16));margin-bottom:22px;
}
.prod h2{margin-bottom:.5rem}
.prod__tag{font-family:ui-monospace,monospace;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--p-accent,var(--accent));margin-bottom:20px;text-wrap:balance}
.prod p{color:var(--p-text-dim,var(--text-dim));max-width:56ch}
.prod__list{display:flex;flex-wrap:wrap;gap:8px;margin:26px 0 30px}
.prod__list li{
  font-size:.78rem;padding:7px 14px;border-radius:99px;
  border:1px solid var(--p-chip-bd,var(--line));color:var(--p-chip,var(--text-dim));
  background:var(--p-chip-bg,rgba(255,255,255,.03));
  transition:transform .4s var(--ease),border-color .4s,color .4s;
}
.prod__list li:hover{transform:translateY(-3px);border-color:var(--p-accent,var(--accent));color:var(--p-accent,var(--accent))}
@media(max-width:560px){
  .prod__list{gap:7px;margin:20px 0 24px}
  .prod__list li{font-size:.72rem;padding:6px 11px}
}
/* ---------- Demos vivas dentro dos cards de produto ---------- */
/* Estado final = estado natural do CSS. O GSAP parte dele para trás,
   então sem JS (ou com GSAP fora do ar) a demo aparece montada. */
.stack__card > .prod__idx{
  position:absolute;top:clamp(6px,1.2vw,18px);right:clamp(16px,2.4vw,34px);z-index:0;
  font-family:var(--display);font-weight:700;font-size:clamp(4.5rem,11vw,10rem);line-height:.8;
  letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.10);
  pointer-events:none;user-select:none;
}
.prod__demo{
  position:relative;border-radius:20px;overflow:hidden;display:flex;flex-direction:column;
  border:1px solid rgba(255,255,255,.13);
  background:linear-gradient(170deg,rgba(9,14,24,.88),rgba(6,10,18,.95));
  box-shadow:0 26px 60px -30px rgba(0,0,0,.85),inset 0 1px 0 rgba(255,255,255,.07);
  min-height:clamp(220px,23vw,300px);
}
/* trama fina de "tela" */
.prod__demo::before{
  content:'';position:absolute;inset:0;pointer-events:none;opacity:.55;
  background-image:linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px);
  background-size:34px 34px;
}
/* A barra de título da janela é a barra da marca: cada produto usa o fundo
   que a própria identidade pede (o Seu Cartório é knockout e pede escuro; o
   LicenSys e o AdaptAI são coloridos sobre claro). */
.demo__top{
  display:flex;align-items:center;gap:11px;padding:9px 14px;flex:0 0 auto;position:relative;z-index:1;
  background:var(--p-plate,rgba(255,255,255,.03));
  border-bottom:1px solid var(--p-dot,rgba(255,255,255,.09));
}
.demo__dots{display:inline-flex;gap:6px;flex:0 0 auto}
.demo__dots i{width:8px;height:8px;border-radius:50%;background:var(--p-dot,rgba(255,255,255,.16))}
.demo__logo{height:26px;width:auto;display:block}
@media(max-width:560px){.demo__logo{height:22px}}
.demo__scr{position:relative;z-index:1;padding:clamp(15px,1.8vw,22px);flex:1 1 auto;display:flex;flex-direction:column}

/* --- Seu Cartório: conversa --- */
.demo__chat{gap:9px;justify-content:flex-end}
.bub{
  max-width:84%;padding:10px 14px;border-radius:14px;font-size:.8rem;line-height:1.5;
  border:1px solid rgba(255,255,255,.1);
}
.bub--u{align-self:flex-end;background:rgba(255,255,255,.09);color:rgba(255,255,255,.92);border-bottom-right-radius:5px}
.bub--a{
  align-self:flex-start;color:#fff;border-bottom-left-radius:5px;
  background:var(--p-badge-bg,rgba(255,255,255,.06));border-color:var(--p-badge-bd,rgba(255,255,255,.16));
}
/* o "digitando" só faz sentido com o JS animando */
.bub--dots{display:none}
.js .bub--dots{
  display:inline-flex;align-self:flex-start;gap:5px;align-items:center;overflow:hidden;
  padding:13px 15px;border-bottom-left-radius:5px;background:rgba(255,255,255,.06);
}
.bub--dots i{width:5px;height:5px;border-radius:50%;background:var(--p-accent,var(--accent))}

/* --- LicenSys: prazos e alertas --- */
.demo__rows{gap:13px;justify-content:center}
.rw{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;align-items:center}
.rw b{font-size:.76rem;font-weight:500;color:rgba(255,255,255,.85)}
.rw u{text-decoration:none;font-family:ui-monospace,monospace;font-size:.68rem;color:rgba(255,255,255,.5);white-space:nowrap}
.rw s{grid-column:1/-1;text-decoration:none;display:block;height:4px;border-radius:99px;background:rgba(255,255,255,.09);overflow:hidden}
.rw s em{display:block;height:100%;width:var(--w,50%);border-radius:99px;background:var(--p-accent,var(--accent))}
.rw.is-warn u{color:#FFC46B}
.rw.is-warn s em{background:linear-gradient(90deg,var(--p-accent,var(--accent)),#FFB454)}
.demo__alert{
  margin-top:18px;display:flex;align-items:center;gap:9px;padding:10px 13px;border-radius:11px;
  font-size:.74rem;color:#FFD9A3;background:rgba(255,180,84,.10);border:1px solid rgba(255,180,84,.28);
}
.demo__alert::before{content:'';width:6px;height:6px;border-radius:50%;background:#FFB454;flex:0 0 auto}

/* --- AdaptAI: a página densa vira a página adaptada --- */
/* Duas colunas de texto não mostravam nada: a diferença entre um material
   dito e um material adaptado é de FORMA, não de conteúdo. Aqui ela aparece
   como densidade — muitas linhas finas de um lado, poucas e largas do outro. */
.demo__doc{gap:14px;justify-content:center}
.doc__row{display:grid;grid-template-columns:1fr auto 1.15fr;gap:clamp(8px,1.3vw,16px);align-items:center}
.pg{border-radius:10px;padding:12px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.045)}
.pg--src{opacity:.75}
.pg--out{background:rgba(255,255,255,.075);border-color:var(--p-badge-bd,rgba(255,255,255,.2))}
.pg__h{display:block;height:5px;width:54%;border-radius:99px;background:rgba(255,255,255,.32);margin-bottom:10px}
.pg__l{display:block;height:3px;border-radius:99px;background:rgba(255,255,255,.17);margin-bottom:5px}
.pg__l:last-child{width:62%;margin-bottom:0}
.pg__l--big{height:5px;background:rgba(255,255,255,.26);margin-bottom:7px}
.pg__pic{display:flex;gap:7px;justify-content:center;margin-bottom:11px;color:var(--p-accent,var(--accent))}
.pg__pic i{
  width:38px;height:38px;border-radius:10px;display:grid;place-items:center;flex:0 0 auto;
  background:linear-gradient(140deg,rgba(155,224,203,.22),rgba(167,131,235,.22));
  border:1px solid rgba(255,255,255,.10);
}
.pg__pic svg{width:20px;height:20px}
.pg__txt{font-size:.8rem;line-height:1.45;color:#fff;margin:0 0 10px}
.pg__ar{color:var(--p-accent,var(--accent));font-size:1.05rem;opacity:.8;line-height:1}
.doc__chips{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
.doc__chips span{
  font-size:.62rem;padding:4px 9px;border-radius:99px;color:var(--p-accent,var(--accent));
  border:1px solid var(--p-badge-bd,rgba(255,255,255,.18));background:rgba(255,255,255,.04);
}
@media(max-width:560px){
  .doc__row{grid-template-columns:1fr auto 1.15fr;gap:8px}
  .pg{padding:10px}
  .pg__pic i{width:32px;height:32px}
  .pg__pic svg{width:17px;height:17px}
  .pg__txt{font-size:.76rem}
}

/* ---------- Passos ---------- */
.steps{counter-reset:s;display:grid;gap:0}
.step{
  display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1.1fr);
  gap:clamp(16px,3vw,48px);align-items:start;
  padding:clamp(26px,3.4vw,44px) 0;border-top:1px solid var(--line);
  transition:background .5s;
}
.step:last-child{border-bottom:1px solid var(--line)}
.step__n{font-family:ui-monospace,monospace;font-size:.72rem;letter-spacing:.18em;color:var(--accent);padding-top:.5em}
@media(max-width:820px){.step{grid-template-columns:auto 1fr}.step p{grid-column:2}}

/* ---------- Contato ---------- */
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--line)}
@media(max-width:820px){.contact-grid{grid-template-columns:1fr}}
.contact-cell{
  background:var(--ink);padding:clamp(24px,3vw,40px);
  transition:background .5s var(--ease);
}
.contact-cell:hover{background:var(--surface)}
.contact-cell .k{font-family:ui-monospace,monospace;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-faint);display:block;margin-bottom:12px}
.contact-cell .v{font-family:var(--display);font-size:clamp(1rem,1.7vw,1.3rem);font-weight:500;letter-spacing:-.02em;word-break:break-word}
.contact-cell a.v:hover{color:var(--accent)}

/* CTA gigante */
.cta-huge{text-align:center;display:grid;justify-items:center;gap:clamp(22px,3vw,38px)}
.cta-huge h2{max-width:14ch}

/* ---------- Footer ---------- */
.footer{border-top:1px solid var(--line);padding-block:clamp(48px,6vw,80px) 32px}
.footer__top{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(0,1fr));gap:clamp(28px,4vw,56px);margin-bottom:clamp(40px,5vw,72px)}
@media(max-width:820px){.footer__top{grid-template-columns:1fr}}
.footer__logo{width:150px;margin-bottom:20px}
.footer h4{font-family:ui-monospace,monospace;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-faint);font-weight:400;margin-bottom:18px}
.footer li + li{margin-top:11px}
.footer li a{font-size:.92rem;color:var(--text-dim);transition:color .3s,padding-left .35s var(--ease)}
.footer li a:hover{color:var(--accent);padding-left:5px}
.footer__bot{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:center;padding-top:26px;border-top:1px solid var(--line)}
.footer__bot p{font-size:.78rem;color:var(--text-faint)}

/* ---------- Páginas de produto ---------- */
.p-hero{position:relative;min-height:92svh;display:flex;align-items:center;overflow:hidden;padding-block:140px 80px}
.p-hero__bg{position:absolute;inset:0;z-index:0}
.p-hero__inner{position:relative;z-index:2}
.p-hero__logo{max-width:min(78vw,440px);margin-bottom:clamp(26px,4vw,44px)}
.p-hero__logo--lg{display:block;max-width:min(96vw,768px);margin-inline:auto}
.crumb{display:flex;align-items:center;gap:10px;margin-bottom:26px;font-family:ui-monospace,monospace;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-faint)}
.crumb a:hover{color:var(--accent)}

.theme-sc{--accent:#F2726F;--accent-2:#C94D4D;--accent-ink:#2A0606;--glow:rgba(226,59,59,.24);
  --fill:linear-gradient(135deg,#C21C1C,#7E0000);--fill-hover:linear-gradient(135deg,#E03434,#9E0505);
  --grad-a:#FF9A97;--grad-b:#D24A4A}
.theme-ls{--accent:#63D3A0;--accent-2:#1FA0A8;--accent-ink:#04150F;--glow:rgba(79,194,142,.22);
  --fill:linear-gradient(135deg,#2A8D6E,#0F4D46);--fill-hover:linear-gradient(135deg,#37AC86,#166A5E);
  --grad-a:#8FE8C0;--grad-b:#2C9E8C}
.theme-ad{--accent:#9BE0CB;--accent-2:#A783EB;--accent-ink:#0B1B26;--glow:rgba(167,131,235,.24);
  --fill:linear-gradient(135deg,#2C6E92,#164A67);--fill-hover:linear-gradient(135deg,#3C8CB6,#1D6088);
  --grad-a:#A9E7D3;--grad-b:#8E6FD8}

.tint{position:relative}
.tint--sc{background:linear-gradient(180deg,#0B1220,#14202F 55%,#0B1220)}
.tint--ls{background:linear-gradient(180deg,#04141F,#0A2A2A 55%,#04141F)}
.tint--ad{background:linear-gradient(180deg,#08121C,#102A3A 55%,#08121C)}

/* Chat demo */
.chat{
  border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.03);
  padding:clamp(18px,2.4vw,28px);display:grid;gap:14px;backdrop-filter:blur(8px);
}
.chat__head{display:flex;align-items:center;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.chat__head img{width:36px;height:36px;object-fit:contain}
.chat__head .n{font-family:var(--display);font-weight:600;font-size:.95rem;letter-spacing:-.02em}
.chat__head .s{font-size:.72rem;color:var(--text-faint)}
.bubble{
  max-width:82%;padding:13px 18px;border-radius:18px;font-size:.93rem;line-height:1.55;
  transition:opacity .6s var(--ease),transform .6s var(--ease);
}
.js .bubble{opacity:0;transform:translateY(14px)}
.js .bubble.show{opacity:1;transform:none}
.bubble--u{justify-self:end;background:rgba(255,255,255,.09);border-bottom-right-radius:6px}
.bubble--a{justify-self:start;background:linear-gradient(140deg,rgba(226,59,59,.20),rgba(226,59,59,.07));border:1px solid rgba(226,59,59,.28);border-bottom-left-radius:6px}
.typing{display:inline-flex;gap:4px;align-items:center}
.typing i{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.5;animation:tp 1.1s infinite}
.typing i:nth-child(2){animation-delay:.16s}.typing i:nth-child(3){animation-delay:.32s}
@keyframes tp{0%,60%,100%{transform:translateY(0);opacity:.35}30%{transform:translateY(-4px);opacity:1}}

/* Waveform ata notarial */
.wave{display:flex;align-items:center;gap:3px;height:56px;margin:22px 0}
.wave i{flex:1;background:linear-gradient(180deg,var(--accent),var(--accent-2));border-radius:99px;height:14%;transform-origin:50% 50%;animation:wv 1.4s var(--ease-io) infinite alternate}
@keyframes wv{to{height:100%}}

/* Métricas / contadores */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--line);border-block:1px solid var(--line)}
@media(max-width:760px){.stats{grid-template-columns:1fr}}
.stat{background:var(--ink);padding:clamp(24px,3vw,40px)}
.stat .n{font-family:var(--display);font-size:clamp(2.2rem,5vw,3.6rem);font-weight:600;letter-spacing:-.04em;line-height:1;background:linear-gradient(120deg,var(--grad-a),var(--grad-b));-webkit-background-clip:text;background-clip:text;color:transparent}
.stat .l{margin-top:12px;font-size:.86rem;color:var(--text-dim)}

/* Acordeão */
.acc{border-top:1px solid var(--line)}
.acc__item{border-bottom:1px solid var(--line)}
.acc__btn{
  width:100%;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:clamp(20px,2.6vw,28px) 0;font-family:var(--display);font-weight:500;letter-spacing:-.02em;
  font-size:clamp(1rem,1.7vw,1.3rem);transition:color .35s,padding-left .45s var(--ease);
}
.acc__btn:hover{color:var(--accent);padding-left:10px}
.acc__ic{position:relative;width:16px;height:16px;flex:0 0 auto}
.acc__ic::before,.acc__ic::after{content:'';position:absolute;background:currentColor;border-radius:2px;transition:transform .45s var(--ease),opacity .3s}
.acc__ic::before{left:0;top:7.25px;width:16px;height:1.5px}
.acc__ic::after{left:7.25px;top:0;width:1.5px;height:16px}
.acc__item.open .acc__ic::after{transform:scaleY(0)}
.acc__item.open .acc__btn{color:var(--accent)}
.acc__body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .55s var(--ease)}
.acc__item.open .acc__body{grid-template-rows:1fr}
.acc__body > div{overflow:hidden}
.acc__body p{padding-bottom:26px;color:var(--text-dim);max-width:72ch}

/* Galeria AdaptAI */
.shots{display:grid;gap:clamp(18px,2.6vw,30px)}
.shot{border-radius:20px;overflow:hidden;border:1px solid var(--line);background:#fff}

/* Utilidades */
.mt-s{margin-top:14px}.mt-m{margin-top:26px}.mt-l{margin-top:clamp(34px,5vw,64px)}
.mb-m{margin-bottom:26px}.mb-l{margin-bottom:clamp(34px,5vw,64px)}
.center{text-align:center}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.of-hidden{overflow:hidden}

/* Movimento reduzido */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .js [data-rise],.js [data-clip],.js [data-grow],.js .media::after,.word>span,.js .bubble{opacity:1!important;transform:none!important;clip-path:none!important}
  .js .media::after{display:none}
  body::after{display:none}
}

/* ---------- AdaptAI: composições ----------
   As lâminas do produto traziam foto E texto; o texto virou HTML e só a
   parte que o código não faz (as crianças, o mascote) continua bitmap.
   O resto da estética — roda de pinceladas, pílulas coloridas, onda
   pastel, cápsulas — é desenhado aqui. */

/* Bloco "o que é": texto + foto recortada dentro da roda da marca */
.ad-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.94fr);gap:clamp(34px,5vw,68px);align-items:center}
@media(max-width:900px){.ad-intro{grid-template-columns:1fr;gap:clamp(40px,7vw,56px)}}
.ad-photo{
  --blob:72% 28% 56% 44% / 36% 64% 36% 64%;
  position:relative;justify-self:center;width:min(100%,620px);margin:0;
  padding:clamp(9px,1.7vw,16px);border-radius:var(--blob);
  background:conic-gradient(from 195deg,
    #1B54B8,#6EB7EB 14%,#3AAA35 32%,#F2B705 52%,#D32F2F 72%,#A783EB 88%,#1B54B8);
  animation:adBlob 22s ease-in-out infinite alternate;
}
.ad-photo img{
  position:relative;z-index:1;display:block;width:100%;aspect-ratio:31/19;object-fit:cover;
  border-radius:var(--blob);filter:saturate(1.04);
}
.ad-photo__ring{
  position:absolute;z-index:0;inset:-3%;border-radius:inherit;
  background:inherit;filter:blur(30px);opacity:.42;pointer-events:none;
  animation:inherit;
}
@keyframes adBlob{
  0%  {border-radius:72% 28% 56% 44% / 36% 64% 36% 64%}
  25% {border-radius:38% 62% 30% 70% / 62% 34% 66% 38%}
  50% {border-radius:64% 36% 74% 26% / 28% 70% 30% 72%}
  75% {border-radius:30% 70% 44% 56% / 70% 26% 74% 30%}
  100%{border-radius:56% 44% 34% 66% / 40% 72% 28% 60%}
}
@media(max-width:900px){.ad-photo{width:min(100%,520px)}}

.ad-kicker{font-family:ui-monospace,'SFMono-Regular',Menlo,monospace;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-faint);margin-bottom:13px}
.ad-chips{display:flex;flex-wrap:wrap;gap:9px}
.ad-chips li{
  font-size:.79rem;font-weight:600;letter-spacing:-.01em;padding:8px 16px;border-radius:99px;
  color:var(--c);border:1px solid color-mix(in srgb,var(--c) 40%,transparent);
  background:color-mix(in srgb,var(--c) 11%,transparent);
  transition:transform .4s var(--ease),background .4s;
}
.ad-chips li:hover{transform:translateY(-3px);background:color-mix(in srgb,var(--c) 22%,transparent)}

/* Bloco "o conjunto": mascote + as seis frentes como pílulas */
.ad-suite{position:relative;display:grid;grid-template-columns:minmax(0,.66fr) minmax(0,1.34fr);gap:clamp(30px,5vw,74px);align-items:center}
@media(max-width:980px){.ad-suite{grid-template-columns:1fr;gap:clamp(34px,6vw,48px)}}
.ad-wave{position:absolute;z-index:0;left:-6%;right:-6%;top:50%;translate:0 -50%;width:112%;height:auto;pointer-events:none}
.ad-bot{position:relative;z-index:1;justify-self:center;width:min(100%,430px);margin:0}
.ad-bot img{
  display:block;width:100%;
  filter:drop-shadow(0 38px 46px rgba(0,0,0,.55)) drop-shadow(0 0 60px rgba(95,196,238,.18));
  animation:adFloat 7s ease-in-out infinite;
}
@keyframes adFloat{0%,100%{transform:translateY(-10px)}50%{transform:translateY(10px)}}
@media(max-width:980px){.ad-bot{width:min(78%,360px)}}
.ad-feat{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,3vw,40px)}
@media(max-width:700px){.ad-feat{grid-template-columns:1fr;gap:26px}}
.ad-feat li{display:grid;justify-items:start;gap:11px}
.ad-feat .t{
  padding:7px 15px;border-radius:10px;background:var(--c);color:#08121C;
  font-family:var(--display);font-weight:600;font-size:.87rem;letter-spacing:-.015em;
  box-shadow:0 10px 26px -14px var(--c);
}
.ad-feat p{color:var(--text-dim);font-size:.95rem;max-width:34ch}

/* Fita de infinito — a moldura da lâmina de legislação */
.ad-tree{position:relative;width:min(100%,360px);margin:clamp(28px,4vw,46px) 0 0;pointer-events:none}
.ad-tree::before{
  content:'';position:absolute;z-index:0;left:6%;right:6%;top:10%;bottom:10%;border-radius:50%;
  background:radial-gradient(closest-side,rgba(110,183,235,.16),transparent 72%);filter:blur(18px);
}
.ad-tree img{
  position:relative;z-index:1;display:block;width:100%;height:auto;opacity:.95;
  filter:drop-shadow(0 26px 44px rgba(0,0,0,.5));
  animation:adSway 11s ease-in-out infinite;transform-origin:50% 50%;
}
@keyframes adSway{0%,100%{transform:rotate(-1.1deg)}50%{transform:rotate(1.1deg)}}
@media(max-width:900px){.ad-tree{width:min(70%,280px);margin:0 auto clamp(20px,5vw,32px)}}

/* Vídeo ao lado do eyebrow nas lâminas split (LicenSys, Seu Cartório); a máscara funde as bordas no fundo */
.split-video{width:min(100%,420px);margin:clamp(28px,4vw,46px) 0 0;pointer-events:none}
.split-video video{
  display:block;width:100%;height:auto;mix-blend-mode:screen;
  -webkit-mask-image:radial-gradient(closest-side,#000 40%,transparent 100%);
          mask-image:radial-gradient(closest-side,#000 40%,transparent 100%);
}
/* Fundo não-preto (ex.: tint--sc): o screen clareia as sombras e lava o vídeo, então mistura normal + miolo maior */
.split-video--solid video{
  mix-blend-mode:normal;filter:contrast(1.12) saturate(1.1);
  -webkit-mask-image:radial-gradient(closest-side,#000 58%,transparent 100%);
          mask-image:radial-gradient(closest-side,#000 58%,transparent 100%);
}
@media(max-width:900px){.split-video{width:min(80%,320px);margin:0 auto clamp(20px,5vw,32px)}}
@media(prefers-reduced-motion:reduce){.split-video{display:none}}
