/* Serviço: laudo para ar-condicionado (sessão 2 da revisão de 02/11/2026).
   Cada serviço tem a sua cena; nesta, o prédio vai ligando o ar depois do laudo.
   O que as páginas de serviço dividem (papéis, carimbo, conversa, quem assina) está no servicos-comum.css. */
.hero .cena.predio-cena{height:auto;width:100%;max-width:470px;aspect-ratio:460/600;margin:0 0 0 auto;overflow:visible;perspective:none}
.capa-ar h1{font-size:clamp(2.2rem,4.4vw,3.4rem)}
.predio{display:block;width:100%;height:100%;overflow:visible;opacity:0;animation:aparece-predio 1.4s .3s var(--sai) forwards}
@keyframes aparece-predio{from{opacity:0;transform:translateY(60px)}to{opacity:1;transform:none}}
.predio .fachada{fill:url(#g-fachada)}
.predio .topo-predio{fill:#24465a}
.predio .lado-predio{fill:#09161e}
.predio .caixa-agua{fill:#15303f}
.predio .antena{stroke:#2b4a5c;stroke-width:2}
.predio .luz-antena{fill:#ef5350;animation:pisca 1.6s ease-in-out infinite alternate}
.predio .estrela{fill:#fff;opacity:.3;animation:pisca 2.4s ease-in-out infinite alternate}
@keyframes pisca{to{opacity:.95}}
.predio .portaria{fill:#e9a944;opacity:.55}
.ap .jan{fill:#0f2431}
.ap.acesa .jan{fill:#e3a44a}
.ap .caixilho{stroke:rgba(0,0,0,.22);stroke-width:2}
.ap .split{fill:#1b3343}
.ap.acesa .split{fill:#f3d9a6}
.ap .sacada{fill:#25404f}
.ap .cond rect{fill:#1f3747;stroke:#2c4759;stroke-width:1.5}
.ap .ventoinha{transform-box:fill-box;transform-origin:center}
.ap .ventoinha circle{fill:none;stroke:#3f596b;stroke-width:1.5}
.ap .ventoinha path{fill:none;stroke:#3f596b;stroke-width:2;stroke-linecap:round}
.ap.liga .jan{animation:esfria 1.1s var(--t) var(--curva) forwards}
.ap.liga .split{animation:split-liga .5s var(--t) forwards}
.ap.liga .cond rect{animation:cond-liga .5s var(--t) forwards}
.ap.liga .ventoinha{animation:gira .5s linear var(--t) infinite}
@keyframes esfria{to{fill:#8fd6f7}}
@keyframes split-liga{to{fill:#fff}}
@keyframes cond-liga{to{fill:#dfe8ed;stroke:#b9c7cf}}
@keyframes gira{to{transform:rotate(360deg)}}
.ap .sopro path{fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;opacity:0}
.ap.liga .sopro path{animation:sopra 1.8s var(--t) ease-out infinite}
.ap.liga .sopro path:nth-child(2){animation-delay:calc(var(--t) + .3s)}
.ap.liga .sopro path:nth-child(3){animation-delay:calc(var(--t) + .6s)}
@keyframes sopra{0%{opacity:0;transform:translateY(-3px)}35%{opacity:.95}100%{opacity:0;transform:translateY(6px)}}
.ap .marca-seu{fill:none;stroke:var(--amarelo);stroke-width:2.5;stroke-dasharray:7 5;opacity:0;animation:aparece-marca .6s 1.7s forwards,anda 1.2s linear 1.7s infinite}
@keyframes aparece-marca{to{opacity:1}}
@keyframes anda{to{stroke-dashoffset:-24}}
.temp{position:absolute;left:47.6%;top:56.3%;margin-top:-12px;transform:translate(-50%,-100%);display:flex;align-items:center;gap:6px;padding:6px 12px 6px 9px;border-radius:999px;background:rgba(11,26,36,.94);border:1px solid rgba(255,255,255,.16);color:#fff;font-size:.8rem;white-space:nowrap;box-shadow:0 14px 30px -10px rgba(0,0,0,.6);opacity:0;animation:aparece-temp .6s 1.7s var(--sai) forwards}
@keyframes aparece-temp{from{opacity:0;scale:.8}to{opacity:1;scale:1}}
.temp svg{width:16px;height:16px;fill:none;stroke:#ffb36b;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:stroke .6s}
.temp span{color:#93a7b3}
.temp b{font-family:var(--titulo);font-weight:var(--peso-titulo);font-size:1rem;color:#ffb36b;font-variant-numeric:tabular-nums;transition:color .6s}
.temp.frio b{color:#8fd6f7}
.temp.frio svg{stroke:#8fd6f7}
.predio-cena .aviso-sindico{left:-36px;top:13%;animation-delay:1.1s}
.laudo-mini{position:absolute;right:-34px;bottom:3%;width:220px;padding:14px 16px;border-radius:var(--raio);background:#fff;color:var(--texto);box-shadow:0 24px 50px -16px rgba(0,0,0,.6);font-size:.8rem;line-height:1.35;opacity:0;transform:translateY(18px) rotate(3deg);animation:laudo-mini .8s 2s var(--sai) forwards}
@keyframes laudo-mini{to{opacity:1;transform:rotate(3deg)}}
.laudo-mini b{display:block;font-family:var(--titulo);font-weight:var(--peso-titulo);font-size:.95rem;color:var(--noite)}
.laudo-mini small{color:var(--suave);font-size:.74rem}
.laudo-mini ul{list-style:none;margin:10px 0 0;padding:10px 0 0;border-top:1px solid var(--linha);display:grid;gap:6px}
.laudo-mini li{display:flex;align-items:center;gap:8px}
.laudo-mini li::before{content:"";flex:none;width:16px;height:16px;border-radius:50%;background:#d6f5e3 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B7F4B' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center/10px no-repeat}
.laudo-mini .rodape-laudo{display:flex;justify-content:space-between;align-items:center;margin-top:12px}
.laudo-mini .trt{font-size:.66rem;font-weight:600;letter-spacing:.1em;padding:3px 8px;border-radius:999px;background:var(--noite);color:#fff}
.laudo-mini .carimbo{position:static;font-size:.74rem;animation:carimba .45s 2.7s cubic-bezier(.3,1.5,.5,1) forwards}
/* no celular o prédio fica abaixo da dobra: a cena espera aparecer na tela para começar */
.js .predio-cena:not(.anda),.js .predio-cena:not(.anda) *{animation-play-state:paused!important}
@media (max-width:980px){
  .hero .cena.predio-cena{max-width:380px;margin:8px auto 0}
  .predio-cena .aviso-sindico{left:-10px;top:5%;width:230px}
  .laudo-mini{right:-10px;bottom:-5%;width:176px;font-size:.74rem}
}

/* o que o laudo confere: o desenho do circuito acende a parte da etapa que está no meio da tela */
.confere-grade{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,6vw,96px);align-items:start}
.confere-visual{position:sticky;top:110px}
.circuito{display:block;width:100%;height:auto}
.circuito .parede{fill:var(--fundo)}
.circuito .tr{fill:#fff;stroke:#b8c3ca;stroke-width:3;transition:stroke .45s,fill .45s,filter .45s}
.circuito path.tr{fill:none;stroke-linecap:round}
.circuito .peca{fill:#eef1f3}
.circuito .fio{fill:none;stroke:#b8c3ca;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;transition:stroke .45s,filter .45s}
.circuito .furo{fill:#8a9aa3}
.circuito .rot{fill:#97a5ad;font:600 16px var(--corpo);transition:fill .45s}
.circuito .split-desenho rect{fill:#fff;stroke:#cfd8dd;stroke-width:3}
.circuito .split-desenho path{stroke:#cfd8dd;stroke-width:3;stroke-linecap:round}
.circuito .led{fill:#2fbf71}
.circuito .vento path{fill:none;stroke:#8fd6f7;stroke-width:3;stroke-linecap:round;animation:sopra 2s ease-out infinite}
.circuito .vento path:nth-child(2){animation-delay:.4s}
.circuito .vento path:nth-child(3){animation-delay:.8s}
.circuito .aceso .tr{stroke:#e2ab00;filter:drop-shadow(0 0 6px rgba(254,203,3,.75))}
.circuito .aceso .peca{fill:#fff3c4}
.circuito .aceso .fio{stroke:#e2ab00;stroke-dasharray:12 9;animation:corre-fio .7s linear infinite;filter:drop-shadow(0 0 6px rgba(254,203,3,.75))}
.circuito .aceso .rot{fill:var(--noite)}
@keyframes corre-fio{to{stroke-dashoffset:-21}}
.confere-lista{list-style:none;margin:0;padding:0;counter-reset:conf}
.confere-lista li{min-height:46vh;display:flex;flex-direction:column;justify-content:center;padding:24px 0;opacity:.25;transition:opacity .5s var(--curva)}
html:not(.js) .confere-lista li,.confere-lista li.ativo{opacity:1}
.confere-lista li::before{counter-increment:conf;content:"0" counter(conf);font-family:var(--titulo);font-weight:600;font-size:.85rem;letter-spacing:.08em;color:var(--suave);margin-bottom:12px}
.confere-lista h3{font-size:clamp(1.6rem,3.2vw,2.4rem);letter-spacing:-.02em;margin-bottom:.4em}
.confere-lista p{color:var(--suave);font-size:1.08rem;max-width:460px;margin:0}
@media (max-width:900px){
  .confere-grade{grid-template-columns:1fr;gap:0}
  .confere-visual{top:56px;z-index:2;background:var(--branco);margin:0 -22px;padding:6px 22px 10px}
  .confere-visual::after{content:"";position:absolute;left:0;right:0;top:100%;height:28px;background:linear-gradient(var(--branco),rgba(255,255,255,0))}
  .circuito{max-height:34vh;width:auto;max-width:100%;margin:0 auto}
  .confere-lista li{min-height:38vh}
}

/* como funciona: a conversa e os papéis que o síndico recebe */
.entrega-grade{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,90px);align-items:center}
.msg.fotos .miniaturas i:first-child{background:linear-gradient(#e7ebee,#e7ebee) 50% 30%/60% 14% no-repeat,linear-gradient(#e7ebee,#e7ebee) 50% 64%/60% 14% no-repeat,linear-gradient(160deg,#5b6f7b,#33454f)}
.papeis.visivel .papel.trt{transform:rotate(6deg) translate(26px,8px)}
.papeis.visivel .papel.laudo{transform:rotate(-3deg)}
@media (max-width:900px){.entrega-grade{grid-template-columns:1fr}.papeis{max-width:340px}}

/* e se não aguentar: o ponteiro da carga passa do limite */
.limite-grade{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(36px,6vw,96px);align-items:center}
.medidor{border-radius:var(--raio-g);background:var(--noite);padding:clamp(28px,4vw,48px)}
.medidor svg{display:block;width:100%;height:auto;overflow:visible}
.medidor .arco-fundo{fill:none;stroke:rgba(255,255,255,.08);stroke-width:30;stroke-linecap:round}
.medidor .arco{fill:none;stroke:url(#g-carga);stroke-width:20;stroke-linecap:round}
.medidor .ponteiro{fill:#fff;transform-box:view-box;transform-origin:150px 160px;transform:rotate(-70deg)}
.medidor.visivel .ponteiro{animation:sobe-carga 2.2s .5s var(--curva) forwards}
@keyframes sobe-carga{0%{transform:rotate(-70deg)}55%{transform:rotate(72deg)}72%{transform:rotate(56deg)}86%{transform:rotate(66deg)}100%{transform:rotate(62deg)}}
.medidor .g-rot{fill:#93a7b3;font:600 13px var(--corpo);letter-spacing:.04em}
.medidor .alerta{fill:#ff8a80;font:600 13px var(--corpo);letter-spacing:.08em;text-transform:uppercase;opacity:0}
.medidor.visivel .alerta{animation:aparece-marca .5s 2.4s forwards}
@media (max-width:900px){.limite-grade{grid-template-columns:1fr}}
