/* 30/10/2026 · "Onde trabalhamos" da página inicial: mapa de satélite num quadro, com a linha do aeroporto, a aproximação em 3D e a foto que abre (prova em teste-local/maquetes/mapa-estacoes/mapa.html) */
.mapa-est .quadro{position:relative;margin-top:36px;aspect-ratio:1/1;max-width:100%;width:min(760px,calc(100vh - 170px));min-width:min(100%,420px);margin-left:auto;margin-right:auto;border-radius:16px;overflow:hidden;background:#dfe6ea;box-shadow:0 18px 50px rgba(0,40,50,.14);isolation:isolate}
.mapa-est .cena{position:absolute;left:0;top:0;width:100%;height:100%;will-change:transform;transition:transform 3.4s cubic-bezier(.45,0,.2,1)}
.mapa-est .ancora{position:absolute;width:0;height:0}
.mapa-est .cena img{display:block;width:100%;height:100%}
.mapa-est .cena svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.mapa-est .rota{fill:none;stroke:#fff;stroke-width:.55;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;filter:drop-shadow(0 0 .6px rgba(0,0,0,.6));opacity:0;transition:opacity .6s}
.mapa-est .rota.desenha{opacity:1;stroke-dashoffset:0;transition:stroke-dashoffset 3.2s cubic-bezier(.4,0,.2,1),opacity .4s,stroke-width 3.4s}
.mapa-est .veu{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,30,40,.06),rgba(0,30,40,.14));pointer-events:none}
.mapa-est .pinos{position:absolute;inset:0;pointer-events:none}
.mapa-est .pino{position:absolute;left:0;top:0;width:0;height:0;will-change:transform}
.mapa-est .pino .pt{position:absolute;left:-6px;top:-6px;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px rgba(0,110,131,.85),0 2px 8px rgba(0,0,0,.4);transition:transform .5s}
.mapa-est .pino .an{position:absolute;left:-6px;top:-6px;width:12px;height:12px;border-radius:50%;border:2px solid #fff;opacity:0}
.mapa-est .pino .nm{position:absolute;white-space:nowrap;color:#fff;font:600 15px/1 Jost,sans-serif;letter-spacing:.02em;text-shadow:0 1px 2px rgba(0,0,0,.75),0 0 10px rgba(0,0,0,.45)}
.mapa-est .pino .nm.d{left:12px;top:-8px}
.mapa-est .pino .nm.e{right:12px;top:-8px}
.mapa-est .pino .nm.c{left:50%;bottom:12px;transform:translateX(-50%)}
.mapa-est .pino .nm.b{left:50%;top:12px;transform:translateX(-50%)}
.mapa-est .pino .av{position:absolute;left:-13px;top:-13px;width:26px;height:26px;border-radius:50%;background:#fff;color:#004E5D;font:15px/26px Jost,sans-serif;text-align:center;box-shadow:0 2px 8px rgba(0,0,0,.4)}
.mapa-est .pino.aeroporto .nm.d{left:18px}
.mapa-est .pino.aeroporto .nm.b{top:18px;left:-12px;transform:none}
.mapa-est .pino.ativo .pt{transform:scale(1.3)}
.mapa-est .pino.ativo .an{animation:mePulso 2.2s ease-out infinite}
.mapa-est .pino.ativo .nm{font-size:17px}
@keyframes mePulso{0%{transform:scale(1);opacity:.9}100%{transform:scale(3.6);opacity:0}}
.mapa-est .voo{position:absolute;left:18px;top:16px;max-width:38%!important;color:#fff;font:500 14px/1.3 Jost,sans-serif;text-shadow:0 1px 2px rgba(0,0,0,.8),0 0 10px rgba(0,0,0,.4);opacity:0;transform:translateY(-4px);transition:opacity .6s,transform .6s;pointer-events:none;max-width:70%}
.mapa-est .voo.on{opacity:1;transform:none}
.mapa-est .foto{position:absolute;inset:0;clip-path:circle(0% at var(--x,50%) var(--y,50%));transition:clip-path 1.3s cubic-bezier(.6,0,.2,1);z-index:3;background:#1A1A1A}
.mapa-est .foto.aberta{clip-path:circle(150% at var(--x,50%) var(--y,50%))}
.mapa-est .foto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.12);transition:transform 7s ease-out}
.mapa-est .foto.aberta img{transform:scale(1.02)}
.mapa-est .foto::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(0,20,28,.72))}
.mapa-est .foto .txt{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:clamp(18px,3.5vw,36px);color:#fff;opacity:0;transform:translateY(10px);transition:opacity .7s .5s,transform .7s .5s}
.mapa-est .foto.aberta .txt{opacity:1;transform:none}
.mapa-est .foto h3{margin:0;font:600 clamp(30px,4.2vw,46px)/1.05 'Cormorant Garamond',Georgia,serif}
.mapa-est .foto .dom{margin:6px 0 0;font-size:14px;letter-spacing:.08em;text-transform:uppercase;opacity:.9}
.mapa-est .foto p{margin:10px 0 0;max-width:46ch;font-size:16px;line-height:1.5}
.mapa-est .foto .bt{display:inline-flex;align-items:center;min-height:42px;padding:0 18px;margin-top:14px;border-radius:10px;background:#fff;color:#006E83;font:600 15px Jost,sans-serif;text-decoration:none;transition:background-color .3s,color .3s}
.mapa-est .foto .bt:hover{background:#004E5D;color:#fff}
.mapa-est .fechar{position:absolute;right:12px;top:12px;z-index:4;width:40px;height:40px;border:0;border-radius:50%;background:rgba(255,255,255,.9);color:#004E5D;font:500 22px/1 Jost,sans-serif;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .4s}
.mapa-est .quadro.parado .foto.aberta ~ .fechar{opacity:1;pointer-events:auto}
.mapa-est .opcoes{display:flex;flex-wrap:nowrap;justify-content:flex-start;gap:clamp(18px,3vw,28px);margin:22px auto 0;max-width:760px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.mapa-est .opcoes::-webkit-scrollbar{display:none}
.mapa-est .opcoes button{flex:0 0 auto;white-space:nowrap}
.mapa-est .opcoes button:first-child{margin-left:auto}
.mapa-est .opcoes button:last-child{margin-right:auto}
.mapa-est .opcoes button{position:relative;padding:8px 0;border:0;background:none;color:#2A2A2A;font:500 16px Jost,sans-serif;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color .3s}
.mapa-est .opcoes button::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:1.5px;background:#006E83;transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.mapa-est .opcoes button.ativo{color:#006E83}
.mapa-est .opcoes button.ativo::after{transform:scaleX(1)}
@media (hover:hover){.mapa-est .opcoes button:hover{color:#006E83}
.mapa-est .opcoes button:hover::after{transform:scaleX(1)}}
.mapa-est .fileira{position:relative;max-width:760px;margin:22px auto 0}
.mapa-est .fileira .opcoes{margin-top:0}
.mapa-est .seta{position:absolute;top:50%;width:30px;height:30px;margin-top:-15px;border:0;border-radius:50%;background:#fff;color:#006E83;font:500 20px/30px Jost,sans-serif;text-align:center;padding:0;cursor:pointer;box-shadow:0 2px 10px rgba(0,40,50,.16);opacity:0;pointer-events:none;transition:opacity .35s;z-index:2}
.mapa-est .seta.esq{left:-4px}
.mapa-est .seta.dir{right:-4px}
.mapa-est .seta.on{opacity:1;pointer-events:auto}
.mapa-est .info{position:absolute;right:10px;bottom:10px;z-index:2;width:22px;height:22px;padding:0;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:rgba(0,0,0,.18);color:rgba(255,255,255,.85);font:italic 600 12px/20px Georgia,serif;text-align:center;cursor:pointer;transition:background-color .3s}
.mapa-est .info:hover,.mapa-est .info[aria-expanded="true"]{background:rgba(0,0,0,.45)}
.mapa-est .creditos{position:absolute;right:10px;bottom:38px;z-index:2;max-width:min(320px,calc(100% - 20px));padding:10px 12px;border-radius:8px;background:rgba(255,255,255,.94);color:#2A2A2A;font:400 12px/1.45 Jost,sans-serif;box-shadow:0 4px 16px rgba(0,0,0,.18)}
@media (max-width:640px){.mapa-est .pino .pt,.mapa-est .pino .an{left:-5px;top:-5px;width:10px;height:10px}
.mapa-est .pino .av{left:-10px;top:-10px;width:20px;height:20px;font-size:12px;line-height:20px}
.mapa-est .pino.aeroporto .nm.d{left:14px}
.mapa-est .pino.aeroporto .nm.b{top:14px;left:-8px}
.mapa-est .quadro{margin-top:26px;border-radius:12px}
.mapa-est .pino .nm{font-size:12.5px}
.mapa-est .pino.ativo .nm{font-size:14px}
.mapa-est .voo{left:10px;top:8px;font-size:11.5px;max-width:40%!important}
.mapa-est .foto p{font-size:14.5px}
.mapa-est .opcoes{gap:20px;padding:0 30px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 30px,#000 calc(100% - 30px),transparent);mask-image:linear-gradient(90deg,transparent,#000 30px,#000 calc(100% - 30px),transparent)}
.mapa-est .opcoes button{font-size:15px}}
@media (prefers-reduced-motion:reduce){.mapa-est .cena,.mapa-est .foto,.mapa-est .foto img,.mapa-est .rota.desenha{transition:none!important}
.mapa-est .pino.ativo .an{animation:none}}
/* 30/10/2026 (Nayara): computador — nomes nas laterais do mapa, com linha fina até a estação */
.mapa-est .me-lado{display:none}
.mapa-est .me-liga{display:none}
.mapa-est.lados .fileira{display:none}
.mapa-est.lados .me-lado{position:absolute;display:flex;flex-direction:column;justify-content:center;gap:26px;z-index:2}
.mapa-est.lados .me-lado.e{text-align:right;align-items:flex-end}
.mapa-est.lados .me-lado.d{text-align:left;align-items:flex-start}
.mapa-est .me-lado button{border:0;background:none;padding:6px 0;cursor:pointer;font:inherit;color:#2A2A2A;transform-origin:var(--o,center);transition:transform .35s cubic-bezier(.2,.7,.2,1),color .3s}
.mapa-est .me-lado.e button{--o:right center}.mapa-est .me-lado.d button{--o:left center}
.mapa-est .me-lado button b{display:block;font:600 26px/1.1 'Cormorant Garamond',Georgia,serif;transition:color .3s}
.mapa-est .me-lado button span{display:block;margin-top:3px;font:500 12px/1.2 Jost,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#7A8589}
.mapa-est .me-lado button:hover,.mapa-est .me-lado button:focus-visible,.mapa-est .me-lado button.ativo{transform:scale(1.08)}
.mapa-est .me-lado button:hover b,.mapa-est .me-lado button:focus-visible b,.mapa-est .me-lado button.ativo b{color:#006E83}
.mapa-est.lados .me-liga{display:block;position:absolute;left:0;top:0;pointer-events:none;z-index:3;overflow:visible;opacity:0;transition:opacity .4s}
.mapa-est .me-liga.on{opacity:1}
.mapa-est .me-liga path{fill:none;stroke-linecap:round}
.mapa-est .me-liga path.halo{stroke:rgba(255,255,255,.9);stroke-width:5}
.mapa-est .me-liga path.fio{stroke:#006E83;stroke-width:2}
.mapa-est .me-liga circle{fill:#fff;stroke:#006E83;stroke-width:2}
