/* Conexão Z — Hero 3D (usa as variáveis de site.css) */
.imm{position:relative;height:100vh;height:100svh;min-height:560px;overflow:hidden;isolation:isolate;background:linear-gradient(180deg,var(--paper) 0%,#E6F0FB 100%)}
.imm-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0;touch-action:pan-y}
.imm-ui{position:absolute;inset:0;z-index:2;pointer-events:none;color:var(--ink);transition:color .6s var(--ease)}
.imm-top{position:absolute;left:var(--pad);top:calc(var(--hh) + 1rem);display:flex;align-items:center;gap:.4rem}
.imm-hint{position:absolute;right:var(--pad);top:calc(var(--hh) + 1rem);color:var(--mut);transition:color .6s}
.imm-progress{position:absolute;right:var(--pad);bottom:clamp(2rem,8vh,4.5rem);width:clamp(90px,14vw,160px);height:2px;background:rgba(30,42,58,.18);overflow:hidden;transition:background .6s}
.imm-progress i{display:block;height:100%;background:currentColor;transform:scaleX(0);transform-origin:left}

/* textos sobrepostos à cena */
.imm-step,.imm-cap{position:absolute;left:var(--pad);bottom:clamp(2rem,8vh,5rem);max-width:min(46vw,680px)}
.imm-step::before,.imm-cap::before{content:"";position:absolute;z-index:-1;inset:-2.5rem -3rem -2rem -3rem;background:radial-gradient(closest-side,rgba(244,244,242,.9),rgba(244,244,242,0));transition:opacity .6s}
.imm-step .label,.imm-cap .label{display:block;color:var(--blue-d);margin-bottom:1rem;transition:color .6s}
.imm-step h1,.imm-step h2,.imm-cap h2{font:700 clamp(2.4rem,6.6vw,6.4rem)/.88 var(--fd);text-transform:uppercase;letter-spacing:-.055em;text-wrap:balance}
.imm-step p,.imm-cap p{margin-top:1.1rem;max-width:44ch;font-size:clamp(1rem,1.5vw,1.2rem);color:var(--mut);transition:color .6s}
.imm-cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.6rem;pointer-events:auto}
.imm-step .btn{margin-top:1.6rem;pointer-events:auto}
.imm-cta .btn{margin-top:0}
.imm-step--outro{opacity:0;visibility:hidden}


/* legenda da solução em foco (só área + descrição; o nome fica no rótulo da esfera) */
.imm-cap{opacity:0;transform:translateY(24px);transition:opacity .55s var(--ease),transform .55s var(--ease);pointer-events:none;max-width:min(40vw,520px)}
.imm-cap.on{opacity:1;transform:none}
.imm-cap .cap-d{font:500 clamp(1.15rem,2vw,1.7rem)/1.3 var(--fd);letter-spacing:-.02em;color:var(--ink);max-width:24ch}
.imm-cap .cap-hint{display:inline-block;margin-top:1.1rem;font:600 .7rem/1 var(--fb);letter-spacing:.14em;text-transform:uppercase;color:var(--blue-d)}
.imm--dark .imm-cap{opacity:0!important}

/* fase final: mergulha no fundo navy do vídeo da marca */
.imm--dark .imm-ui{color:#fff}
.imm--dark .imm-step .label{color:var(--sun)}
.imm--dark .imm-step p,.imm--dark .imm-hint{color:#cfe0f3}
.imm--dark .imm-step::before{opacity:0}
.imm--dark .imm-progress{background:rgba(255,255,255,.22)}
.imm--dark .imm-cap{opacity:0!important}

/* lista de soluções: acessível (leitores de tela e teclado) e visível na versão estática */
.imm-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.imm-sr a:focus-visible{position:fixed;left:var(--pad);bottom:1rem;z-index:300;background:var(--ink);color:#fff;padding:.8rem 1.1rem;border-radius:12px;white-space:normal;width:min(90vw,420px);height:auto;clip:auto}

/* sem WebGL / movimento reduzido / sem JS: versão estática legível */
.imm--static,.no-js .imm{height:auto;min-height:0;overflow:visible;padding-bottom:clamp(2rem,5vw,4rem)}
.imm--static .imm-canvas,.no-js .imm-canvas{position:relative;height:46vh;min-height:280px;margin-top:var(--hh);background:radial-gradient(40% 50% at 70% 40%,rgba(244,214,120,.45),transparent 70%),radial-gradient(45% 55% at 30% 60%,rgba(127,164,202,.4),transparent 70%)}
.imm--static .imm-ui,.no-js .imm-ui{position:relative;inset:auto;display:grid;gap:2.2rem;padding:2rem var(--pad) 0;pointer-events:auto}
.imm--static .imm-top,.imm--static .imm-hint,.imm--static .imm-progress,.imm--static .imm-cap,.no-js .imm-top,.no-js .imm-hint,.no-js .imm-progress,.no-js .imm-cap{display:none}
.imm--static .imm-step,.no-js .imm-step{position:relative;left:auto;bottom:auto;opacity:1!important;visibility:visible!important;transform:none!important;max-width:760px}
.imm--static .imm-step::before,.no-js .imm-step::before{display:none}
.imm--static .imm-step h1,.imm--static .imm-step h2,.no-js .imm-step h1,.no-js .imm-step h2{font-size:clamp(2rem,6vw,3.6rem)}
.imm--static .imm-sr,.no-js .imm-sr{position:relative;width:auto;height:auto;margin:0;padding:2rem var(--pad) 0;overflow:visible;clip:auto;white-space:normal;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:1rem}
.imm--static .imm-sr a,.no-js .imm-sr a{display:block;padding:1.3rem;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow);font-weight:600}
.imm--static .imm-sr a small,.no-js .imm-sr a small{display:block;margin-top:.4rem;font-weight:400;color:var(--mut)}

@media (max-width:760px){
  .imm-hint{display:none}
  .imm-step,.imm-cap{right:var(--pad);max-width:none}
  .imm-step h1,.imm-step h2{font-size:clamp(2.2rem,11vw,3.4rem)}
  .imm-cap p{font-size:.98rem}
}
/* atalho pequeno para pular a animação */
.imm-skip{position:absolute;right:var(--pad);top:calc(var(--hh) + 2.9rem);display:inline-flex;align-items:center;gap:.45rem;pointer-events:auto;cursor:pointer;padding:.5rem .8rem;border-radius:999px;border:0;font:600 .6rem/1 var(--fb);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:rgba(255,255,255,.55);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:inset 0 0 0 1px rgba(55,73,96,.22);transition:background .3s,color .4s,box-shadow .4s,opacity .4s,transform .4s}
.imm-skip svg{width:11px;height:11px;transition:transform .3s}
.imm-skip:hover{background:var(--g-sun,#F4D678)}
.imm-skip:hover svg{transform:translateY(2px)}
.imm--dark .imm-skip{color:#fff;background:rgba(255,255,255,.1);box-shadow:inset 0 0 0 1px rgba(255,255,255,.3)}
.imm--dark .imm-skip:hover{color:var(--ink);background:#F4D678}
.imm-skip.gone{opacity:0;pointer-events:none;transform:translateY(-6px)}
.imm--static .imm-skip,.no-js .imm-skip{display:none}
@media (max-width:860px){.imm-skip{top:calc(var(--hh) + 2.7rem)}}