/* ==========================================================================
   TORQ Lava Rápido
   Ideia: a página é a logo. Ela fica em 3D num palco fixo (canvas #palco) e a
   rolagem leva a câmera por cada peça dela; cada peça apresenta um serviço.
   O 3D só liga com a classe .tem3d no <html> (posta por js/palco.js). Sem ela
   o conteúdo aparece como página comum, com a logo em imagem.
   Cores tiradas da logo: azul royal, branco e o azul fundo do túnel de lavagem.
   ========================================================================== */
:root{
  --tunel:#061033;
  --tunel-2:#0C2274;
  --azul:#1F5BFF;
  --agua:#BFD4FF;
  --espuma:#F3F6FB;
  --asfalto:#0A0D18;
  --cinza:#55607A;
  --fio:rgba(191,212,255,.2);
  --fio-claro:#D3DBEA;

  --marca:'Michroma','Eurostile','Arial Narrow',sans-serif;
  --texto:'Archivo','Segoe UI',Roboto,Arial,sans-serif;

  --largura:1200px;
  --nav:68px;
  --ease:cubic-bezier(.2,.7,.2,1);
  color-scheme:dark;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-tap-highlight-color:rgba(31,91,255,.2)}
body{font-family:var(--texto);font-size:1.0625rem;line-height:1.55;color:var(--agua);background:var(--tunel);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ol,ul{list-style:none}
button,input,select{font:inherit;color:inherit}
a,button,input,select,summary,label{touch-action:manipulation}
:focus-visible{outline:2px solid var(--agua);outline-offset:3px;border-radius:4px}
main:focus{outline:none}
.wrap{max-width:var(--largura);margin-inline:auto;padding-inline:32px}
.ico{width:18px;height:18px;flex-shrink:0}

h1,h2{font-family:var(--marca);font-weight:400;line-height:1.14;letter-spacing:.01em;text-wrap:balance}
h1{font-size:clamp(1.85rem,4.2vw,3.5rem);color:#fff}
h2{font-size:clamp(1.45rem,2.9vw,2.35rem)}
h3{font-size:1.1rem;font-weight:700;font-stretch:112%;line-height:1.25}

.skip{position:absolute;left:12px;top:12px;z-index:200;padding:12px 18px;border-radius:999px;background:#fff;color:var(--tunel);font-weight:700;font-size:.9rem;transform:translateY(-200%);transition:transform .25s var(--ease)}
.skip:focus-visible{transform:none}

/* ---------- botões ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:12px 22px;border-radius:999px;font-weight:700;font-size:.95rem;white-space:nowrap;border:1.5px solid transparent;cursor:pointer;transition:background .25s,border-color .25s,color .25s}
.btn-g{padding:15px 26px;font-size:1rem}
.btn-azul{background:var(--azul);color:#fff}
.btn-azul:hover{background:#3D74FF}
.btn-fio{border-color:rgba(191,212,255,.45);color:#fff}
.btn-fio:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.btn-escuro{background:var(--tunel);color:#fff}
.btn-escuro:hover{background:var(--tunel-2)}

/* ---------- palco 3D ---------- */
.palco{position:fixed;left:0;top:0;width:100%;height:100vh;height:100lvh;z-index:0;display:none;pointer-events:none;opacity:0;transition:opacity .9s;
  background:radial-gradient(70% 55% at 62% 38%,var(--tunel-2) 0%,rgba(12,34,116,0) 70%),var(--tunel)}
.tem3d .palco{display:block}
.palco.pronto{opacity:1}
html:not(.tem3d) .so-3d{display:none}

/* ---------- nav ---------- */
.nav{position:sticky;top:0;z-index:100;background:rgba(6,16,51,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--fio)}
.nav-inner{display:flex;align-items:center;gap:28px;height:var(--nav)}
.logo{margin-right:auto;transition:opacity .4s}
.logo img{height:42px;width:auto}
.na-capa .logo{opacity:0;pointer-events:none}
.nav-links{display:flex;gap:26px}
.nav-links a{font-size:.93rem;font-weight:600;color:var(--agua);padding-block:6px;border-bottom:2px solid transparent;transition:color .25s,border-color .25s}
.nav-links a:hover{color:#fff;border-bottom-color:var(--azul)}
.nav-cta{padding:10px 20px}
.burger{display:none;flex-direction:column;gap:5px;padding:10px 6px;background:none;border:0;cursor:pointer}
.burger span{display:block;width:24px;height:2px;background:#fff;border-radius:2px;transition:transform .3s,opacity .3s}
.burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------- seções sobre o palco ---------- */
main{position:relative;z-index:1}
.capa{min-height:calc(100svh - var(--nav));display:flex;flex-direction:column;justify-content:flex-end;padding-block:40px 56px}
.capa-logo{width:min(860px,88%);margin:auto}
.tem3d .capa-logo{display:none}
.capa-base{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:48px;align-items:end;width:100%}
.capa-lado p{color:var(--agua);max-width:44ch}
.capa-acoes{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.capa-lado .capa-end{margin-top:18px;font-size:.9rem;color:rgba(191,212,255,.7)}

/* serviços: lista fixa enquanto a câmera percorre a logo */
.passeio{padding-block:96px;scroll-margin-top:var(--nav)}
.passeio h2{color:#fff}
.menu-bloco{max-width:460px}
.menu-dica{margin-top:10px;font-size:.95rem;color:rgba(191,212,255,.75)}
.menu{margin-top:28px}
.item{border-top:1px solid var(--fio)}
.item:last-child{border-bottom:1px solid var(--fio)}
.item-nome{position:relative;display:block;width:100%;text-align:left;background:none;border:0;cursor:pointer;padding:13px 0 13px 28px;font-family:var(--marca);font-size:clamp(.98rem,1.5vw,1.3rem);line-height:1.2;color:#fff;transition:color .35s}
.item-nome::before{content:"";position:absolute;left:0;top:50%;width:14px;height:14px;margin-top:-7px;background:var(--azul);clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);transition:transform .35s var(--ease),background .35s}
.item-corpo>div{padding:0 0 18px 28px}
.item-corpo p{font-size:.98rem;color:var(--agua);max-width:46ch}
.item-corpo a{display:inline-block;margin-top:10px;font-weight:700;color:#fff;border-bottom:2px solid var(--azul);padding-bottom:2px;transition:border-color .25s}
.item-corpo a:hover{border-bottom-color:#fff}
.menu-nota{margin-top:20px;font-size:.88rem;color:rgba(191,212,255,.7);max-width:46ch}

.tem3d .passeio{height:calc(100vh + 6 * 80vh);padding-block:0}
.tem3d .passeio-fixo{position:sticky;top:var(--nav);height:calc(100svh - var(--nav));display:flex;align-items:center}
.tem3d .passeio-fixo::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,16,51,.96) 0%,rgba(6,16,51,.84) 34%,rgba(6,16,51,0) 60%);pointer-events:none}
.tem3d .passeio-fixo .wrap{position:relative;width:100%}
.tem3d .item-nome{color:rgba(191,212,255,.42)}
.tem3d .item-nome:hover{color:var(--agua)}
.tem3d .item-nome::before{transform:scale(0) rotate(-90deg)}
.tem3d .item.ativo .item-nome{color:#fff}
.tem3d .item.ativo .item-nome::before{transform:none;background:var(--agua)}
.tem3d .item-corpo{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--ease)}
.tem3d .item-corpo>div{overflow:hidden;visibility:hidden;opacity:0;padding-bottom:0;transition:opacity .3s,visibility 0s .45s,padding-bottom .45s var(--ease)}
.tem3d .item.ativo .item-corpo{grid-template-rows:1fr}
.tem3d .item.ativo .item-corpo>div{visibility:visible;opacity:1;padding-bottom:18px;transition:opacity .45s .1s,visibility 0s,padding-bottom .45s var(--ease)}

/* antes e depois: a logo suja de um lado, lavada do outro */
.lavagem{height:170vh;scroll-margin-top:var(--nav)}
.lavagem-fixo{position:sticky;top:var(--nav);height:calc(100svh - var(--nav));overflow:hidden}
.lavagem-texto{padding-top:clamp(28px,6vh,64px)}
.lavagem-texto h2{color:#fff}
.lavagem-texto p{margin-top:12px;max-width:46ch}
.lavagem-rotulo{position:absolute;bottom:28px;font-family:var(--marca);font-size:.95rem;color:#fff}
.lavagem-rotulo.antes{left:32px;color:#C9B79C}
.lavagem-rotulo.depois{right:96px}
.lavagem-linha{position:absolute;top:0;bottom:0;left:var(--pos);width:2px;margin-left:-1px;background:#fff;pointer-events:none}
.lavagem-linha span{position:absolute;top:58%;left:50%;width:48px;height:48px;margin:-24px 0 0 -24px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 0 0 6px rgba(31,91,255,.4)}
.lavagem-linha svg{width:22px;height:22px;fill:none;stroke:var(--tunel);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.lavagem-range{position:absolute;left:0;right:0;top:32%;bottom:0;width:100%;height:68%;margin:0;opacity:0;cursor:ew-resize;touch-action:pan-y}
.lavagem-fixo:focus-within .lavagem-linha span{box-shadow:0 0 0 6px var(--agua)}

/* ---------- parte clara: cobre o palco ---------- */
.resto{position:relative;z-index:2;background:var(--espuma);color:var(--asfalto);color-scheme:light}
.bloco{padding-block:104px;scroll-margin-top:var(--nav)}
.bloco p{color:var(--cinza)}

/* processo: o brilho anda pela pista conforme a página rola */
.pista{position:relative;margin-top:52px;padding-top:56px}
.pista-fio{position:absolute;left:0;right:0;top:11px;height:2px;background:var(--fio-claro)}
.pista-fio::after{content:"";position:absolute;inset:0;background:var(--azul);transform:scaleX(var(--prog,0));transform-origin:left}
.pista-brilho{position:absolute;left:-12px;top:0;width:24px;height:24px;fill:var(--azul);transform:translateX(var(--x,0px))}
.etapas{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}
.etapa-n{display:block;font-family:var(--marca);font-size:2.6rem;line-height:1;color:var(--fio-claro);transition:color .4s}
.etapa.passou .etapa-n{color:var(--azul)}
.etapa h3{margin-top:14px}
.etapa p{margin-top:6px;font-size:.98rem;max-width:30ch}

/* sobre */
.sobre{background:#fff}
.sobre-grade{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:64px;align-items:center}
.sobre-foto{width:100%;border-radius:6px}
.sobre-texto p{margin-top:16px;max-width:52ch}
.pilares{margin-top:26px;border-bottom:1px solid var(--fio-claro)}
.pilares li{padding:12px 0;border-top:1px solid var(--fio-claro);font-weight:650;font-stretch:112%;color:var(--asfalto)}
.sobre-texto .btn{margin-top:28px}

/* faq */
.faq-grade{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:64px;align-items:start}
.faq-item{border-top:1px solid var(--fio-claro)}
.faq-item:last-child{border-bottom:1px solid var(--fio-claro)}
.faq-item summary{list-style:none;cursor:pointer;position:relative;padding:20px 44px 20px 0;font-weight:700;font-stretch:108%;font-size:1.08rem;color:var(--asfalto)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::before,.faq-item summary::after{content:"";position:absolute;right:6px;top:50%;width:16px;height:2px;margin-top:-1px;background:var(--azul);transition:transform .3s var(--ease)}
.faq-item summary::after{transform:rotate(90deg)}
.faq-item[open] summary::after{transform:none}
.faq-item p{padding:0 44px 22px 0;max-width:60ch}
.faq-item a{color:var(--azul);font-weight:700;text-decoration:underline;text-underline-offset:3px}

/* contato */
.contato{background:var(--tunel);color:var(--agua);color-scheme:dark}
.contato h2{color:#fff}
.bloco.contato p{color:var(--agua)}
.contato-sub{margin-top:12px}
.contato-grade{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:72px;align-items:start}
.contato-dados{margin-top:36px;border-bottom:1px solid var(--fio)}
.contato-dados>div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px;padding:14px 0;border-top:1px solid var(--fio)}
.contato-dados dt{font-size:.9rem;color:rgba(191,212,255,.7)}
.contato-dados a{color:#fff;font-weight:650;border-bottom:1px solid transparent;transition:border-color .25s}
.contato-dados a:hover{border-bottom-color:var(--azul)}
.contato-form{display:flex;flex-direction:column;gap:22px}
.contato-form label{display:flex;flex-direction:column;gap:4px;font-size:.9rem;font-weight:600;color:rgba(191,212,255,.8)}
.contato-form input,.contato-form select{background-color:transparent;color:#fff;border:0;border-bottom:1.5px solid rgba(191,212,255,.4);border-radius:0;padding:10px 0;font-size:1.05rem;font-weight:500;transition:border-color .25s}
.contato-form input::placeholder{color:rgba(191,212,255,.4)}
.contato-form input:focus-visible,.contato-form select:focus-visible{outline:none;border-bottom-color:#fff;box-shadow:0 2px 0 0 var(--azul)}
.contato-form select option{background-color:var(--tunel);color:#fff}
.contato-form .btn{align-self:flex-start;margin-top:6px}
.bloco.contato .form-nota{font-size:.9rem;min-height:1.4em}

/* rodapé */
.rodape{position:relative;z-index:2;background:#040A22;color:rgba(191,212,255,.78);padding-block:56px 28px;font-size:.94rem}
.rodape-grade{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr);gap:40px}
.rodape-logo{width:200px}
.rodape-logo+p{margin-top:14px}
.rodape-links{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.rodape a:hover{color:#fff}
.rodape-fim{margin-top:40px;padding-top:22px;border-top:1px solid var(--fio);font-size:.84rem}

/* whatsapp */
.whatsapp-float{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:90;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;color:#fff;background:#25D366;box-shadow:0 10px 26px -8px rgba(0,0,0,.6);transition:transform .3s var(--ease),opacity .3s,visibility 0s,background .3s}
.whatsapp-float svg{width:30px;height:30px}
.whatsapp-float:hover{transform:scale(1.08);background:#1FBF5B}
.no-palco .whatsapp-float{opacity:0;visibility:hidden;transform:scale(.6);transition:transform .3s var(--ease),opacity .3s,visibility 0s .3s}

/* ---------- responsivo ---------- */
@media (max-width:1024px){
  .sobre-grade,.contato-grade,.faq-grade{grid-template-columns:minmax(0,1fr);gap:36px}
}
@media (max-width:860px){
  :root{--nav:60px}
  .nav-links{position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:rgba(6,16,51,.98);padding:6px 24px 22px;border-bottom:1px solid var(--fio);transform:translateY(-12px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s,transform .3s,visibility 0s .3s}
  .nav-links.open{opacity:1;transform:none;visibility:visible;pointer-events:auto;transition:opacity .3s,transform .3s}
  .nav-links a{padding:14px 0;border-bottom:1px solid var(--fio)}
  .burger{display:flex}
  .nav-cta{display:none}
  .logo img{height:28px}

  .capa{padding-block:24px 36px}
  .capa-base{grid-template-columns:minmax(0,1fr);gap:16px}

  .menu-bloco{max-width:none}
  .tem3d .passeio-fixo{align-items:flex-end;padding-bottom:18px}
  .tem3d .passeio-fixo::before{display:none}
  .tem3d .passeio-fixo .wrap{padding-inline:0}
  .tem3d .menu-bloco{padding:34px 20px 0;background:linear-gradient(180deg,rgba(6,16,51,0) 0,rgba(6,16,51,.95) 34px)}
  .tem3d .passeio h2{font-size:1.3rem}
  .tem3d .menu-dica,.tem3d .menu-nota{display:none}
  /* no celular a logo fica com a tela: só o serviço da vez aparece, com a posição dele (2 de 6) */
  .tem3d .menu{margin-top:10px;counter-reset:servico;border-top:1px solid var(--fio)}
  .tem3d .item{counter-increment:servico;border:0}
  .tem3d .item:not(.ativo){height:0;overflow:hidden;visibility:hidden}
  .tem3d .item.ativo{animation:surge .45s var(--ease)}
  .tem3d .item-nome{padding:14px 64px 8px 26px;font-size:1.08rem;cursor:default}
  .tem3d .item-nome::before{top:25px}
  .tem3d .item-nome::after{content:counter(servico) " de 6";position:absolute;right:0;top:16px;font-family:var(--texto);font-size:.85rem;color:rgba(191,212,255,.7)}
  .tem3d .item-corpo>div{padding-left:26px}
  .tem3d .item-corpo p{font-size:.95rem;line-height:1.45}
  .tem3d .item.ativo .item-corpo>div{padding-bottom:10px}

  .lavagem-rotulo.antes{left:18px}
  .lavagem-rotulo.depois{right:88px}

  .pista{padding-top:0;padding-left:44px}
  .pista-fio{left:11px;right:auto;top:6px;bottom:6px;width:2px;height:auto}
  .pista-fio::after{transform:scaleY(var(--prog,0));transform-origin:top}
  .pista-brilho{left:0;top:-6px;transform:translateY(var(--x,0px))}
  .etapas{grid-template-columns:minmax(0,1fr);gap:36px}
  .rodape-grade{grid-template-columns:minmax(0,1fr)}
}
@keyframes surge{from{opacity:0;transform:translateY(10px)}}
@media (max-width:860px) and (max-height:700px){
  .capa h1{font-size:1.6rem}
  .capa .btn-g{padding-block:12px}
}
@media (max-width:600px){
  .wrap{padding-inline:20px}
  .bloco{padding-block:76px}
  .passeio{padding-block:72px}
  .btn-g{width:100%}
  .contato-form .btn{align-self:stretch}
  .contato-dados>div{grid-template-columns:92px minmax(0,1fr)}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important;scroll-behavior:auto!important}
}
