:root{--p:#d71920;--p2:#a8121a;--esc:#141414;--fundo:#f4f2ee;--card:#fff;--txt:#141414;--suave:#5c5852;--linha:#d9d6cf;--r:22px;--ft:'Space Grotesk',system-ui,sans-serif;--fx:'Inter',system-ui,sans-serif;--max:1240px;--p:#e0443e;--p2:#b32d2a;--esc:#121212}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:84px}body{font-family:var(--fx);color:var(--txt);background:var(--fundo);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}.w{max-width:var(--max);margin:0 auto;padding:0 32px}h1,h2,h3{font-family:var(--ft);letter-spacing:-.035em;line-height:1;font-weight:700}h2{font-size:clamp(2.3rem,4.6vw,4rem)}h3{font-size:1.35rem;letter-spacing:-.02em}h1 em,h2 em,.marca em{font-style:normal;color:var(--p)}.tag{display:inline-block;font:600 .78rem var(--fx);letter-spacing:.2em;text-transform:uppercase;color:var(--p);margin-bottom:16px}.sec{padding:120px 0}.cab{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap;margin-bottom:52px}.cab>div{max-width:720px}.cab p{color:var(--suave);font-size:1.05rem;max-width:420px}.btn{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 26px;border-radius:999px;font-weight:600;font-size:.98rem;transition:transform .25s,background .25s,color .25s,border-color .25s;border:1px solid transparent;cursor:pointer;white-space:nowrap}.btn svg{width:20px;height:20px;flex:none}.btn:hover{transform:translateY(-2px)}.btn-p{background:var(--p);color:#fff}.btn-p:hover{background:var(--p2)}.btn-e{background:var(--txt);color:var(--fundo)}.btn-o{border-color:var(--txt);color:var(--txt)}.btn-o:hover{background:var(--txt);color:var(--fundo)}/* faixa demo */.demo{background:#ffe600;color:#111;font:600 .82rem var(--fx);text-align:center;padding:8px 14px;position:relative;z-index:60}.demo a{text-decoration:underline}/* topo */.topo{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--fundo) 97%,transparent);transition:transform .4s cubic-bezier(.2,.7,.2,1),border-color .3s;border-bottom:1px solid transparent}.topo.rolou{border-color:var(--linha)}.topo .w{display:flex;align-items:center;justify-content:space-between;height:76px;gap:24px}.marca{display:flex;align-items:center;gap:10px;font-family:var(--ft);font-weight:700;font-size:1.4rem;letter-spacing:-.03em;line-height:1}.marca img{height:42px;width:auto;border-radius:10px}.marca small{display:block;font:500 .66rem var(--fx);letter-spacing:.16em;text-transform:uppercase;color:var(--suave);margin-top:4px}.menu{display:flex;gap:32px;font-size:.93rem;color:var(--suave)}.menu a:hover{color:var(--txt)}.topo .btn{min-height:44px;padding:0 20px;font-size:.9rem}.hamb{display:none;background:none;border:0;cursor:pointer;width:44px;height:44px;place-items:center}.hamb svg{width:28px;height:28px}/* hero *//* "hero": {"escuro": true} = topo com fundo escuro da marca (--esc); as cores do topo (cartões, traços, textos)são redefinidas aqui, então a ilustração do kit se adapta sozinha *//* "escuras": ["galeria", "faq"...] faz o mesmo em qualquer seção (classe fundo-esc) */.hero-esc,.fundo-esc{--p:var(--p3,#9db4ff);--card:color-mix(in srgb,var(--esc) 82%,#fff);--fundo:var(--esc);--txt:#f4f3fa;--suave:color-mix(in srgb,#fff 70%,var(--esc));--linha:rgba(255,255,255,.14);color:var(--txt)}.hero-esc{background:radial-gradient(900px 560px at 82% 12%,color-mix(in srgb,var(--p3,var(--p)) 22%,transparent),transparent 70%),var(--esc)}.fundo-esc{background:radial-gradient(700px 420px at 100% 0%,color-mix(in srgb,var(--p3,var(--p)) 12%,transparent),transparent 70%),var(--esc)}.hero-esc h1 em,.hero-esc .pre,.fundo-esc h2 em{color:color-mix(in srgb,var(--p3,var(--p)) 75%,#fff)}.hero-esc .btn-p,.fundo-esc .btn-p{background:#fff;color:var(--esc)}.hero-esc .btn-p:hover,.fundo-esc .btn-p:hover{background:var(--p3,#fff);color:var(--esc)}.hero-esc .selos svg{color:var(--p3,#fff)}.fundo-esc .dif,.fundo-esc .area{background:var(--card)}.fundo-esc .dif:hover{background:color-mix(in srgb,var(--card) 85%,#fff)}.fundo-esc .difs{background:var(--linha)}.fundo-esc .mapa iframe{filter:invert(.9) hue-rotate(180deg) brightness(.95) contrast(.9)}.hero .w{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center;min-height:calc(100vh - 110px);padding-top:40px;padding-bottom:64px}.pre{font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--p);font-weight:600;margin-bottom:22px}.hero h1{font-size:clamp(2.8rem,6.2vw,5.6rem);line-height:.96}.hero .sub{font-size:1.12rem;color:var(--suave);margin:26px 0 32px;max-width:520px}.hero .acoes{display:flex;gap:12px;flex-wrap:wrap}.selo{display:inline-flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--linha);padding:7px 16px 7px 12px;border-radius:999px;font-size:.88rem;margin-bottom:24px}.selo .est{color:#e0a100;letter-spacing:1px}.hlista{margin-top:44px;max-width:520px;list-style:none}.hlista li{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-top:1px solid var(--linha);font-size:.95rem}.hlista li span{color:#8a857c;font-size:.8rem}.mosaico{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1.3fr 1fr;gap:16px;height:min(720px,80vh)}.mosaico .ph:first-child{grid-row:span 2}.ph{border-radius:var(--r);overflow:hidden;background:var(--card)}.ph img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1)}.ph:hover img{transform:scale(1.05)}/* entrada do topo em sequência */.up{opacity:0;animation:up .9s cubic-bezier(.2,.7,.2,1) forwards}.u2{animation-delay:.12s}.u3{animation-delay:.24s}.u4{animation-delay:.36s}@keyframes up{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}/* números */.nums{border-block:1px solid var(--linha)}.nums .w{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:24px;padding-top:40px;padding-bottom:40px}.nums strong{display:block;font:700 clamp(2.2rem,4vw,3.2rem) var(--ft);letter-spacing:-.04em;line-height:1}.nums span{font-size:.88rem;color:var(--suave)}/* serviços */.servs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.servs.tres{grid-template-columns:repeat(3,minmax(0,1fr))}.serv{background:var(--card);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:transform .35s,box-shadow .35s}.serv:hover{transform:translateY(-4px);box-shadow:0 28px 50px -30px rgba(0,0,0,.35)}.serv .ph{border-radius:0;aspect-ratio:4/3}.serv .tx{padding:20px 22px 26px}.serv .n{font:600 .75rem var(--fx);letter-spacing:.16em;color:var(--p)}.serv h3{margin:8px 0 8px}.serv p{font-size:.93rem;color:var(--suave)}/* passos */.passos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.passo{border:1px solid var(--linha);border-radius:var(--r);padding:32px;transition:border-color .3s,background .3s}.passo:hover{border-color:var(--p);background:var(--card)}.passo .n{font:700 3.6rem var(--ft);line-height:1;color:transparent;-webkit-text-stroke:1.5px var(--p);letter-spacing:-.04em}.passo h3{margin:20px 0 8px}.passo p{color:var(--suave);font-size:.95rem}/* diferenciais */.sec-esc{background:var(--esc);color:#f2f1ed}.sec-esc .cab p{color:#a9a59d}.difs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:rgba(255,255,255,.1);border-radius:var(--r);overflow:hidden}.dif{padding:36px;background:var(--esc);transition:background .3s}.dif:hover{background:#1c1c1c}.dif .ic{width:48px;height:48px;border-radius:14px;border:1px solid rgba(255,255,255,.16);display:grid;place-items:center;margin-bottom:22px}.dif .ic svg{width:24px;height:24px;color:var(--p)}.dif h3{margin-bottom:8px}.dif p{color:#a9a59d;font-size:.95rem}/* galeria */.gal{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:240px;grid-auto-flow:dense;gap:16px}.gal button{display:block;width:100%;height:100%;border:0;padding:0;cursor:zoom-in}.gal button:nth-child(7n+1),.gal button:nth-child(7n+5){grid-row:span 2}.lb{position:fixed;inset:0;background:rgba(10,10,10,.94);display:none;align-items:center;justify-content:center;z-index:100;padding:20px}.lb.on{display:flex}.lb img{max-height:88vh;max-width:92vw;border-radius:12px}.lb button{position:absolute;background:rgba(255,255,255,.12);color:#fff;border:0;width:52px;height:52px;border-radius:50%;font-size:1.6rem;cursor:pointer}.lb .x{top:20px;right:20px}.lb .ant{left:20px}.lb .prox{right:20px}/* sobre */.sobre{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}.sobre .fotos{position:relative}.sobre .fotos .ph{aspect-ratio:4/5}.sobre .ano{position:absolute;left:24px;bottom:24px;background:var(--p);color:#fff;padding:18px 22px;border-radius:18px;line-height:1}.sobre .ano strong{display:block;font:700 3rem var(--ft);letter-spacing:-.04em}.sobre .ano span{font-size:.75rem;letter-spacing:.16em;text-transform:uppercase}.sobre p{color:var(--suave);margin-bottom:16px;font-size:1.05rem}.chips{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0 36px;list-style:none}.chips li{border:1px solid var(--linha);border-radius:999px;padding:9px 16px;font-size:.9rem;background:var(--card)}/* avaliações */.aval-top{display:grid;grid-template-columns:1fr 1.2fr;gap:56px;align-items:center}.destaque{font:700 clamp(1.8rem,3vw,2.6rem) var(--ft);letter-spacing:-.03em;line-height:1.12}.destaque+p{margin-top:20px;color:var(--suave)}.avals{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px;scrollbar-width:thin}.aval{flex:0 0 min(340px,85%);scroll-snap-align:start;background:var(--card);border-radius:var(--r);padding:28px;display:flex;flex-direction:column}.aval .est{color:#e0a100;letter-spacing:2px}.aval p{margin:12px 0 18px;font-size:.95rem;flex:1;color:var(--txt);opacity:.85}.aval .quem{font-weight:600;font-size:.92rem}.aval small{display:block;color:#8a857c;font-weight:400}.gnota{display:flex;align-items:center;gap:14px;margin-top:28px}.gnota strong{font:700 2.6rem var(--ft);letter-spacing:-.04em;line-height:1}.gnota .est{color:#e0a100}/* faq */.faq{max-width:880px}.faq details{border-top:1px solid var(--linha);padding:22px 0}.faq details:last-child{border-bottom:1px solid var(--linha)}.faq summary{cursor:pointer;font:600 1.12rem var(--ft);letter-spacing:-.01em;list-style:none;display:flex;justify-content:space-between;gap:20px}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";color:var(--p);font-size:1.6rem;line-height:1;transition:transform .25s}.faq details[open] summary::after{transform:rotate(45deg)}.faq p{margin-top:12px;color:var(--suave)}/* cta */.cta{background:var(--esc);color:#fff;border-radius:32px;padding:80px 64px;display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap;position:relative;overflow:hidden}.cta::before{content:"";position:absolute;width:520px;height:520px;right:-160px;top:-220px;border-radius:50%;border:90px solid var(--p);opacity:.9}.cta>*{position:relative}.cta h2{font-size:clamp(2.2rem,4.4vw,3.6rem);max-width:680px}.cta h2 em{color:var(--p)}.cta p{color:#bdb9b1;margin-top:12px;max-width:520px}.cta .btn{background:#fff;color:var(--esc)}/* contato */.contato{display:grid;grid-template-columns:1fr 1.15fr;gap:24px}.info{display:flex;flex-direction:column;gap:16px}.box{background:var(--card);border-radius:var(--r);padding:26px 28px}.box h4{font:600 .75rem var(--fx);letter-spacing:.18em;text-transform:uppercase;color:var(--p);margin-bottom:8px;display:flex;justify-content:space-between;align-items:center}.box a{font-weight:600}.horas{list-style:none;font-size:.93rem}.horas li{display:flex;justify-content:space-between;gap:16px;padding:6px 0;border-bottom:1px dashed var(--linha);color:var(--suave)}.horas li:last-child{border:0}.horas li.hoje{color:var(--txt);font-weight:600}.aberto{font:600 .72rem var(--fx);letter-spacing:0;text-transform:none;padding:4px 10px;border-radius:99px;background:#1e7d32;color:#fff}.aberto.fech{background:#77736b}.aberto:empty{display:none}.mapa{border-radius:var(--r);overflow:hidden;min-height:460px;background:var(--card)}.mapa iframe{width:100%;height:100%;min-height:460px;border:0}/* rodapé */.rod{border-top:1px solid var(--linha);color:var(--suave);padding:32px 0 110px;font-size:.9rem}.rod .w{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.rod a:hover{color:var(--txt)}.zap{position:fixed;right:22px;bottom:22px;z-index:70;width:60px;height:60px;border-radius:50%;background:#25d366;display:grid;place-items:center;box-shadow:0 14px 34px -10px rgba(0,0,0,.45);animation:pulso 2.6s infinite}.zap svg{width:32px;height:32px;color:#fff}@keyframes pulso{0%{box-shadow:0 0 0 0 rgba(37,211,102,.5)}70%{box-shadow:0 0 0 16px rgba(37,211,102,0)}100%{box-shadow:0 0 0 0 rgba(37,211,102,0)}}/* aparecer ao rolar */.rv{opacity:0;transition:opacity .9s cubic-bezier(.2,.7,.2,1)}.rv.vis,.rv.vis .aval{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.rv,.up{opacity:1;transform:none;animation:none}.zap{animation:none}html{scroll-behavior:auto}.ph img{transition:none}}@media (max-width:1000px){.servs,.servs.tres{grid-template-columns:repeat(2,minmax(0,1fr))}.difs,.passos{grid-template-columns:minmax(0,1fr)}.hero .w,.sobre,.contato,.aval-top{grid-template-columns:minmax(0,1fr)}.hero .w{min-height:auto}.mosaico{height:520px}.gal{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:760px){.w{padding:0 18px}.menu{display:none;position:absolute;top:76px;left:0;right:0;flex-direction:column;background:var(--fundo);padding:20px 18px 28px;gap:18px;border-bottom:1px solid var(--linha);font-size:1.05rem}.menu.on{display:flex}.hamb{display:grid}.topo .btn{display:none}.sec{padding:80px 0}.servs,.servs.tres{grid-template-columns:minmax(0,1fr)}.mosaico{height:380px;gap:10px}.hlista{display:none}.cta{padding:48px 26px}.gal{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:170px;gap:10px}}/* ===== tema escuro (conteudo.json: "tema": "escuro") ===== */.tema-escuro{--fundo:#0c0c0c;--card:#171717;--txt:#f2f1ed;--suave:#a6a29a;--linha:rgba(255,255,255,.12);--esc:#141414;color-scheme:dark}.tema-escuro .sec-esc{background:#151515;border-block:1px solid var(--linha)}.tema-escuro .dif{background:#151515}.tema-escuro .dif:hover{background:#1c1c1c}.tema-escuro .cta{background:var(--p)}.tema-escuro .cta::before{border-color:rgba(255,255,255,.12)}.tema-escuro .cta h2 em{color:#111}.tema-escuro .cta p{color:rgba(255,255,255,.85)}.tema-escuro .selo,.tema-escuro .chips li{background:var(--card)}.tema-escuro .hero{background:radial-gradient(900px 500px at 85% 10%,color-mix(in srgb,var(--p) 22%,transparent),transparent 70%)}.tema-escuro .mapa iframe{filter:invert(.9) hue-rotate(180deg) brightness(.95) contrast(.9)}/* ===== efeitos de rolagem ===== */.topo{transition:transform .45s cubic-bezier(.2,.7,.2,1),border-color .3s}.topo.some{transform:translateY(-100%)}.prog{position:fixed;top:0;left:0;height:3px;width:100%;background:var(--p);transform-origin:0 50%;transform:scaleX(0);z-index:80;pointer-events:none}/* faixa de serviços: anda sozinha (veja .auto); só acompanha a rolagem com "auto": false */.faixa{overflow:hidden;white-space:nowrap;border-block:1px solid var(--linha);padding:26px 0}.faixa .trilho{display:inline-flex;gap:56px}/* texto vazado: contorno pintado antes e preenchimento (cor do fundo) por cima, assim as linhas internasdas fontes variáveis (contornos sobrepostos) ficam escondidas; o traço tem o dobro porque metade fica coberta */.faixa span{font:700 clamp(1.8rem,4vw,3.2rem) var(--ft);letter-spacing:-.04em;color:var(--fundo);-webkit-text-stroke:2px var(--suave);paint-order:stroke fill}.faixa span:nth-child(odd){color:var(--txt);-webkit-text-stroke:0}.faixa i{font-style:normal;color:var(--p);-webkit-text-stroke:0}/* faixa automática: 3 cópias do trilho, anda 1 cópia (+ 1/3 do gap) e recomeça sem emenda */.faixa.auto .trilho{animation:faixa-anda var(--dur,40s) linear infinite}@keyframes faixa-anda{to{transform:translateX(calc(-33.3333% - 18.67px))}}@media (prefers-reduced-motion:reduce){.faixa.auto .trilho{animation:none}}@media (prefers-reduced-motion:reduce){.prog{display:none}.topo.some{transform:none}}/* ===== um efeito por seção (as demais ficam paradas de propósito) ===== *//* serviços: cartões sobem em cascata */.fx-sobe{opacity:0;transform:translateY(32px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}.fx-sobe.vis{opacity:1;transform:none}/* passos: o número vazado se preenche com a cor */.fx-traco .n{background:linear-gradient(var(--p),var(--p)) 0 100%/100% 0 no-repeat;-webkit-background-clip:text;background-clip:text;transition:background-size 1s cubic-bezier(.2,.7,.2,1) .2s}.fx-traco.vis .n{background-size:100% 100%}/* galeria: o quadro surge rápido e a foto aparece suave assim que termina de carregar */.fx-cortina{opacity:0;transform:translateY(16px) scale(.97);transition:opacity .45s ease-out,transform .55s cubic-bezier(.2,.7,.2,1)}.fx-cortina.vis{opacity:1;transform:none}.fx-cortina img{opacity:0;transition:opacity .35s ease-out,transform .9s cubic-bezier(.2,.7,.2,1)}.fx-cortina img.ok{opacity:1}/* sobre: a foto "afasta" (zoom de 1.18 para 1) */.fx-zoom .ph img{transform:scale(1.18);transition:transform 1.6s cubic-bezier(.2,.7,.2,1)}.fx-zoom.vis .ph img{transform:scale(1)}/* avaliações: cartões deslizam da direita */.fx-lado .aval{opacity:0;transform:translateX(80px);transition:opacity .8s,transform 1s cubic-bezier(.2,.7,.2,1)}.fx-lado .aval:nth-child(2){transition-delay:.1s}.fx-lado .aval:nth-child(3){transition-delay:.2s}.fx-lado .aval:nth-child(n+4){transition-delay:.3s}.fx-lado.vis .aval{opacity:1;transform:none}/* chamada final: cresce até o tamanho certo */.fx-escala{transform:scale(.92);border-radius:60px;transition:transform 1s cubic-bezier(.2,.7,.2,1),border-radius 1s}.fx-escala.vis{transform:none;border-radius:32px}@media (prefers-reduced-motion:reduce){.fx-sobe,.fx-lado .aval{opacity:1;transform:none}.fx-cortina,.fx-cortina img{opacity:1;transform:none}.fx-zoom .ph img,.fx-escala{transform:none}.fx-traco .n{background-size:100% 100%}}/* ===== logo e ícone da marca ===== */.marca .logo{height:54px;width:auto;border-radius:0}.cta.com-icone::before{display:none}.cta-icone{position:absolute!important;right:-90px;top:50%;width:360px;height:360px;transform:translateY(-50%) rotate(-8deg);opacity:.14;pointer-events:none}@media (max-width:760px){.marca .logo{height:34px}.cta-icone{width:220px;height:220px;right:-60px;top:auto;bottom:-60px;transform:rotate(-8deg)}}/* ===== páginas internas de serviço ===== */.marca .mi{height:42px;width:42px;border-radius:50%}.migalha{font-size:.85rem;color:var(--suave)}.migalha .w{display:flex;gap:10px;align-items:center;padding-top:18px;padding-bottom:4px;flex-wrap:wrap}.migalha a{color:var(--p);font-weight:600}.phero .w{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center;padding-top:28px;padding-bottom:72px}.phero h1{font-size:clamp(2.4rem,5vw,4.4rem);line-height:1}.phero .sub{font-size:1.1rem;color:var(--suave);margin:24px 0 28px;max-width:560px}.phero .acoes{display:flex;gap:12px;flex-wrap:wrap}.phero .ph{aspect-ratio:4/3}.bloco{padding:64px 0}.bloco+.bloco{padding-top:0}.artigo .txt{max-width:820px}.artigo.com-foto{display:grid;grid-template-columns:1.25fr 1fr;gap:56px;align-items:start}.artigo.com-foto .ph{aspect-ratio:4/5;position:sticky;top:100px}.artigo h2{font-size:clamp(1.9rem,3.4vw,2.8rem);line-height:1.05}.artigo .txt>p{color:var(--suave);font-size:1.06rem;margin-top:16px}.itens{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:28px;counter-reset:it}.item{background:var(--card);border:1px solid var(--linha);border-radius:18px;padding:22px 24px}.item h3{font-size:1.08rem;margin-bottom:8px}.item p{color:var(--suave);font-size:.96rem}.itens.num .item h3::before{counter-increment:it;content:counter(it,decimal-leading-zero);display:block;font:700 .8rem var(--fx);letter-spacing:.12em;color:var(--p);margin-bottom:10px}.bcta{margin-top:26px}.rod .rlinks a{text-decoration:underline;text-underline-offset:3px}@media (max-width:1000px){.phero .w,.artigo.com-foto{grid-template-columns:minmax(0,1fr)}.artigo.com-foto .ph{position:static;aspect-ratio:4/3}}@media (max-width:640px){.itens{grid-template-columns:minmax(0,1fr)}.bloco{padding:48px 0}}/* ===== barra superior ===== */.barra{background:var(--esc);color:#cfcac0;font-size:.82rem;border-bottom:1px solid var(--linha)}.tema-escuro .barra{background:#000}.barra .w{display:flex;justify-content:space-between;align-items:center;gap:16px;height:38px}.barra span,.barra a{display:inline-flex;align-items:center;gap:6px}.barra svg{width:15px;height:15px;color:var(--p)}.barra a{color:#fff;font-weight:600}.barra .hoje:empty{display:none}@media (max-width:760px){.barra .lg,.barra .hoje{display:none}}/* ===== topo: selos e indicador de rolagem ===== */.selos{list-style:none;display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:30px;font-size:.92rem;font-weight:500}.selos li{display:flex;align-items:center;gap:8px}.selos svg{width:20px;height:20px;color:var(--p)}.hero{position:relative}.rola{position:absolute;left:50%;bottom:22px;width:26px;height:42px;margin-left:-13px;border:2px solid var(--linha);border-radius:14px}.rola span{position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:var(--p);animation:rola 1.8s ease-in-out infinite}@keyframes rola{0%{opacity:0;transform:translateY(0)}30%{opacity:1}80%,100%{opacity:0;transform:translateY(14px)}}@media (max-width:1000px){.rola{display:none}}/* ===== serviços com ícone e link de WhatsApp ===== */a.serv{color:inherit}.serv .si{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;color:var(--p);background:color-mix(in srgb,var(--p) 14%,transparent);margin-bottom:14px;transition:transform .4s cubic-bezier(.2,.7,.2,1),background .3s,color .3s}.serv .si svg{width:32px;height:32px}.serv:hover .si{transform:rotate(-8deg) scale(1.08);background:var(--p);color:#fff}.serv .sl{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-weight:600;font-size:.9rem;color:var(--p)}.serv .sl i{font-style:normal;transition:transform .3s}.serv:hover .sl i{transform:translateX(5px)}.serv .tx{display:flex;flex-direction:column;flex:1}.serv .tx p{flex:1}/* ===== quem atendemos ===== */.tiles{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}.tile{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:26px 14px;border-radius:var(--r);background:var(--card);border:1px solid var(--linha);transition:transform .35s,border-color .3s}.tile:hover{transform:translateY(-5px);border-color:var(--p)}.tile .ti{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;color:var(--p);background:color-mix(in srgb,var(--p) 12%,transparent);margin-bottom:10px;transition:transform .5s}.tile:hover .ti{transform:translateY(-3px) rotate(6deg)}.tile .ti svg{width:32px;height:32px}.tile strong{font:700 1rem var(--ft)}.tile small{color:var(--suave);font-size:.82rem}.area{display:flex;align-items:center;gap:18px;margin-top:18px;padding:16px 16px 16px 22px;border-radius:var(--r);background:var(--esc);color:#fff;flex-wrap:wrap}.tema-escuro .area{background:var(--card);border:1px solid var(--linha)}.area .ai{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--p) 22%,transparent);color:var(--p)}.area .ai svg{width:22px;height:22px;animation:pulapin 2.4s ease-in-out infinite}@keyframes pulapin{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}.area p{flex:1;min-width:200px}@media (max-width:1000px){.tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:560px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}/* ===== como funciona: linha do tempo que enche com a rolagem ===== */.rota{position:relative;--prog:0}.rota ol{list-style:none;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:24px;padding-top:56px}.trilha{position:absolute;left:28px;right:28px;top:22px;height:3px;background:var(--linha);border-radius:3px}.trilha .enche{position:absolute;inset:0;transform-origin:0 50%;transform:scaleX(var(--prog));background:var(--p);border-radius:3px}.trilha .pino{position:absolute;top:50%;left:calc(var(--prog) * 100%);width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:var(--fundo);border:2px solid var(--p);display:grid;place-items:center;box-shadow:0 0 0 6px color-mix(in srgb,var(--p) 15%,transparent)}.trilha .pino img,.trilha .pino svg{width:30px;height:30px;object-fit:contain;color:var(--p)}.rota .passo{border:0;padding:0}.rota .passo:hover{background:none}.rota .passo .n{font:700 3.2rem var(--ft);line-height:1;letter-spacing:-.04em;color:var(--fundo);-webkit-text-stroke:3px var(--p);paint-order:stroke fill;transition:color .5s}.rota .passo.feito .n{color:var(--p)}.rota .passo h3{margin:16px 0 8px}.rota .passo p{color:var(--suave);font-size:.95rem}@media (max-width:760px){.rota ol{grid-template-columns:minmax(0,1fr);padding:0 0 0 70px;gap:34px}.trilha{left:22px;right:auto;top:6px;bottom:6px;width:3px;height:auto}.trilha .enche{transform-origin:50% 0;transform:scaleY(var(--prog))}.trilha .pino{left:50%;top:calc(var(--prog) * 100%);margin:-23px 0 0 -23px}}/* ===== bolha de convite ao lado do WhatsApp ===== */.bolha{position:fixed;right:94px;bottom:30px;z-index:69;max-width:250px;padding:14px 34px 14px 16px;border-radius:16px 16px 4px 16px;background:var(--card);color:var(--txt);border:1px solid var(--linha);box-shadow:0 18px 40px -14px rgba(0,0,0,.45);font-size:.88rem;line-height:1.4;opacity:0;transform:translateY(12px) scale(.96);pointer-events:none;transition:opacity .45s,transform .45s cubic-bezier(.2,.7,.2,1)}.bolha.on{opacity:1;transform:none;pointer-events:auto}.bolha strong{display:block;font-family:var(--ft);margin-bottom:2px}.bolha span{color:var(--suave)}.bolha .bx{position:absolute;top:6px;right:8px;width:24px;height:24px;border:0;background:none;color:var(--suave);font-size:1.2rem;cursor:pointer}@media (max-width:760px){.bolha{right:88px;bottom:24px;max-width:200px}}/* ===== menu marca a seção atual ===== */.menu a{position:relative}.menu a.on{color:var(--txt);opacity:1}.menu a.on::after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:2px;background:var(--p);border-radius:2px}@media (max-width:760px){.menu a.on::after{display:none}}@media (prefers-reduced-motion:reduce){.rola span,.area .ai svg{animation:none}}/* nada pode alargar a página para os lados (ex.: faíscas do topo), senão o botão do WhatsApp "pula" no celular */html,body{overflow-x:hidden}@supports (overflow:clip){html,body{overflow-x:clip}}.hero{overflow-x:clip}.barra .lg{white-space:nowrap;gap:0}/* ===== kit serralheria: topo "oficina" ===== */.oficina{position:relative;aspect-ratio:480/400;width:100%;max-width:620px;justify-self:end;border-radius:28px;border:1px solid var(--linha);overflow:visible;background:linear-gradient(var(--linha) 1px,transparent 1px) 0 0/24px 24px,linear-gradient(90deg,var(--linha) 1px,transparent 1px) 0 0/24px 24px,radial-gradient(120% 90% at 80% 10%,color-mix(in srgb,var(--p) 16%,transparent),transparent 60%),var(--card)}.planta{position:absolute;inset:6% 4%;width:92%;height:88%;overflow:visible}.planta .tr{fill:none;stroke:color-mix(in srgb,var(--txt) 70%,transparent);stroke-width:1.6;stroke-dasharray:1;stroke-dashoffset:1;animation:desenha 12s cubic-bezier(.6,0,.2,1) infinite;animation-delay:calc(var(--i) * .09s)}.planta .tr.forte{stroke:var(--txt);stroke-width:2.4}.planta .cota .tr{stroke:var(--p);stroke-width:1.2}.planta text{font:600 13px var(--fx);fill:var(--p);opacity:0;animation:aparece 12s infinite;animation-delay:.6s}.planta .varre{fill:color-mix(in srgb,var(--p) 18%,transparent);opacity:.0;animation:varre 6s ease-in-out infinite 2.4s}@keyframes desenha{0%{stroke-dashoffset:1;opacity:1}28%{stroke-dashoffset:0}86%{stroke-dashoffset:0;opacity:1}96%{opacity:0;stroke-dashoffset:0}100%{opacity:0;stroke-dashoffset:1}}@keyframes aparece{0%,20%{opacity:0}30%,86%{opacity:1}96%,100%{opacity:0}}@keyframes varre{0%{transform:translateY(-40px);opacity:0}15%{opacity:.9}85%{opacity:.9}100%{transform:translateY(400px);opacity:0}}/* faíscas de solda no canto do portão */.faiscas{position:absolute;left:83.3%;top:24%;width:0;height:0;pointer-events:none}.faiscas i{position:absolute;left:0;top:0;width:3px;height:3px;border-radius:2px;background:#ffd27a;box-shadow:0 0 6px 1px #ffb347;animation:faisca var(--t) cubic-bezier(.2,.6,.4,1) forwards}@keyframes faisca{0%{transform:translate(0,0) scale(1);opacity:1}100%{transform:translate(var(--x),var(--y)) scale(.3);opacity:0}}.brilho{position:absolute;left:83.3%;top:24%;width:70px;height:70px;margin:-35px 0 0 -35px;border-radius:50%;background:radial-gradient(circle,#fff6d8 0,#ffb347 22%,transparent 65%);mix-blend-mode:screen;animation:tocha 1.4s ease-in-out infinite;pointer-events:none}@keyframes tocha{0%,100%{opacity:.55;transform:scale(.85)}45%{opacity:1;transform:scale(1.15)}70%{opacity:.7;transform:scale(.95)}}/* selo com ícone da marca */.selo-marca{position:absolute;left:-22px;bottom:-22px;width:118px;height:118px;border-radius:50%;background:var(--fundo);display:grid;place-items:center;box-shadow:0 20px 40px -18px rgba(0,0,0,.6)}.selo-marca img{width:88px;height:88px;object-fit:contain}.selo-marca .anel{position:absolute;inset:-7px;border-radius:50%;border:2px dashed var(--p);animation:gira 18s linear infinite}@keyframes gira{to{transform:rotate(360deg)}}/* cartões flutuantes */.flut{position:absolute;display:flex;align-items:center;gap:12px;padding:12px 16px 12px 12px;border-radius:16px;background:color-mix(in srgb,var(--fundo) 88%,transparent);border:1px solid var(--linha);box-shadow:0 18px 40px -20px rgba(0,0,0,.6);animation:boia 6s ease-in-out infinite}.flut strong{display:block;font:700 .95rem var(--ft);letter-spacing:-.01em}.flut small{display:block;color:var(--suave);font-size:.78rem}.flut .fi{width:40px;height:40px;border-radius:12px;background:color-mix(in srgb,var(--p) 18%,transparent);color:var(--p);display:grid;place-items:center}.flut .fi svg{width:24px;height:24px}.flut.f1{top:-18px;left:8%}.flut.f2{right:-18px;bottom:16%;animation-delay:-3s}@keyframes boia{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}@media (max-width:1000px){.oficina{justify-self:center;margin:30px auto 10px}}@media (max-width:760px){.flut{padding:9px 12px 9px 9px}.flut .fi{width:32px;height:32px}.flut.f1{top:-24px;left:2%}.flut.f2{right:-4px;bottom:-26px}.selo-marca{width:86px;height:86px;left:-6px}.selo-marca img{width:64px;height:64px}}@media (prefers-reduced-motion:reduce){.planta .tr{animation:none;stroke-dashoffset:0}.planta text{animation:none;opacity:1}.planta .varre,.brilho,.faiscas{display:none}.selo-marca .anel,.flut{animation:none}}