:root{--gelo:#F7F5EF;--preto:#141414;--azul:#2B3BFF;--marca:#FFE14D;--verm:#FF4A2E;--kraft:#D9C3A0;--borda:#14141426;--w:1200px}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:clip}
body{background:var(--gelo);color:var(--preto);font-family:Figtree,sans-serif;font-size:18px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:clip}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.wrap{max-width:var(--w);margin:0 auto;padding:0 32px}
.br{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;letter-spacing:-.035em;line-height:.92;font-variation-settings:"wdth" 80}
.br em{font-style:normal;color:var(--azul)}
.hl{background:linear-gradient(transparent 56%,var(--marca) 56%,var(--marca) 92%,transparent 92%);padding:0 .08em}
.cota{font-size:13px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#141414a0}
.btn{display:inline-flex;align-items:center;gap:10px;border-radius:999px;padding:16px 28px;font-weight:700;font-size:17px;transition:transform .2s,box-shadow .2s}
.btn-azul{background:var(--azul);color:#fff;box-shadow:6px 6px 0 var(--marca)}
.btn-azul:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--marca)}
.btn-linha{border:2px solid var(--preto)}
.btn-linha:hover{background:var(--preto);color:var(--gelo)}
.curvas{background-image:url(../rota/curvas-post.svg);background-repeat:no-repeat;background-size:900px auto}

/* topo */
header{position:sticky;top:0;z-index:20;background:#F7F5EFf5;border-bottom:1px solid var(--borda)}
header .wrap{display:flex;align-items:center;justify-content:space-between;height:74px}
.logo{display:flex;align-items:center;gap:10px;font-family:'Bricolage Grotesque';font-weight:800;font-size:30px;letter-spacing:-.04em;font-variation-settings:"wdth" 80}
.logo svg{width:32px;height:32px;transition:transform .6s cubic-bezier(.3,1.6,.5,1)}
.logo:hover svg{transform:rotate(-20deg)}
nav{display:flex;gap:28px;font-weight:600;font-size:16px}
nav a:hover{color:var(--azul)}
header .btn{padding:11px 20px;font-size:15px}

/* hero */
.hero{position:relative;padding:90px 0 110px;min-height:calc(100vh - 74px);display:flex;align-items:center;background-position:right -160px top -120px;background-size:1100px auto}
.hero .wrap{display:block;width:100%}
.hero h1{font-size:clamp(56px,8.4vw,124px);margin:18px 0 26px}
.hero p.sub{font-size:21px;max-width:520px;color:#141414cc}
.hero .acoes{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap}
.mapa{position:relative;height:600px}
.mapa .cel{position:absolute;right:20px;top:10px;width:270px;height:560px;border-radius:40px;background:var(--preto);padding:10px;box-shadow:14px 14px 0 var(--marca);transform:rotate(4deg)}
.mapa .cel img{width:100%;height:100%;object-fit:cover;object-position:top;border-radius:31px}
.mapa .leg{position:absolute;left:0;top:40px;background:#fff;border:1.5px solid var(--preto);border-radius:14px;padding:14px 18px;font-size:14px;font-weight:700;line-height:1.7}
.mapa .leg b{display:inline-block;width:22px}
.selo{position:absolute;width:120px;height:120px;animation:gira 26s linear infinite}
@keyframes gira{to{transform:rotate(360deg)}}

/* rota entre seções */
.trecho{position:relative;height:170px;margin:0 auto;max-width:var(--w)}
.trecho svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.trecho .parada{position:absolute;display:flex;align-items:center;gap:10px}
.trecho .parada svg{position:static;width:34px;height:44px}
.trecho .parada span{background:var(--preto);color:var(--gelo);border-radius:99px;padding:6px 14px;font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}

/* seções */
section{position:relative}
.tit{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:44px;flex-wrap:wrap}
.tit h2{font-size:clamp(46px,6vw,84px)}
.tit p{max-width:420px;color:#141414b0}

.serv{display:grid;grid-template-columns:repeat(3,1fr);border-top:1.5px solid var(--preto);border-left:1.5px solid var(--preto)}
.serv>div{border-right:1.5px solid var(--preto);border-bottom:1.5px solid var(--preto);padding:30px 28px 26px;background:#fff;transition:background .2s}
.serv>div:hover{background:#FFF8CC}
.serv .n{display:flex;justify-content:space-between;align-items:center;margin-bottom:34px}
.serv .n i{width:14px;height:14px;border-radius:50%;background:var(--azul);display:block}
.serv h3{font-family:'Bricolage Grotesque';font-weight:800;font-size:32px;letter-spacing:-.03em;line-height:1;font-variation-settings:"wdth" 80;margin-bottom:12px}
.serv p{font-size:16px;color:#141414b8}
.serv small{display:block;margin-top:20px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--azul)}

.trab{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:44px 34px}
.caso{position:relative;display:block}
.caso .jan{border:1.5px solid var(--preto);border-radius:20px;overflow:hidden;background:#fff;box-shadow:12px 12px 0 var(--c,var(--azul));transition:transform .3s}
.caso:hover .jan{transform:translate(-3px,-3px) rotate(-.4deg)}
.caso .bar{height:40px;border-bottom:1.5px solid var(--preto);display:flex;align-items:center;gap:7px;padding-left:16px;font-size:13px;font-weight:700}
.caso .bar i{width:11px;height:11px;border-radius:50%;display:block}
.caso .jan img{width:100%;height:100%;object-fit:cover;object-position:top}
.caso .info{display:flex;justify-content:space-between;align-items:baseline;margin-top:24px;gap:16px}
.caso h3{font-family:'Bricolage Grotesque';font-weight:800;font-size:34px;letter-spacing:-.03em;font-variation-settings:"wdth" 80;line-height:1}
.caso p{font-size:15px;color:#141414b0;margin-top:6px}
.caso .ver{font-weight:700;font-size:15px;color:var(--azul);white-space:nowrap}
.caso.grande{grid-column:span 2}
.caso.grande .jan .img{aspect-ratio:16/7.2;height:auto}
.caso .img{height:300px}

.etapas{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:28px;padding-top:70px}
.etapas svg.linha{position:absolute;left:0;top:0;width:100%;height:60px;overflow:visible}
.etapas .e{position:relative}
.etapas .e .pin{position:absolute;top:-74px;left:-4px;width:36px;height:47px}
.etapas h3{font-family:'Bricolage Grotesque';font-weight:800;font-size:38px;letter-spacing:-.03em;font-variation-settings:"wdth" 80;margin:10px 0}
.etapas p{font-size:16px;color:#141414b8}

.sis{background:var(--azul) url(../rota/curvas-claro.svg) right -200px top -100px/1100px no-repeat;color:#fff;padding:100px 0;margin-top:30px}
.sis .wrap{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.sis h2{font-size:clamp(50px,6vw,88px);margin:16px 0 22px}
.sis .cota{color:#ffffffb0}
.sis p{font-size:19px;color:#ffffffd8;max-width:480px}
.painel{background:#fff;color:var(--preto);border-radius:22px;box-shadow:14px 14px 0 var(--marca);overflow:hidden;font-size:15px}
.painel .ph{display:flex;justify-content:space-between;align-items:center;padding:16px 22px;border-bottom:1.5px solid var(--preto)}
.painel .nums{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1.5px solid var(--preto)}
.painel .nums div{padding:16px 22px;border-right:1.5px solid var(--preto)}.painel .nums div:last-child{border:0}
.painel .nums b{display:block;font-family:'Bricolage Grotesque';font-size:40px;letter-spacing:-.03em;line-height:1;margin-top:4px}
.painel .li{display:flex;justify-content:space-between;padding:13px 22px;border-bottom:1px solid var(--borda)}
.painel .cota{color:#14141499}.painel .ok{background:#FFF3A6;border-radius:99px;padding:2px 12px;font-size:12px;font-weight:700}
.painel .novo{animation:entra 1s .4s both}
@keyframes entra{from{opacity:0;transform:translateY(-10px)}}

.sobre .wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:center}
.sobre .ficha{position:relative;background:#fff;border:1.5px solid var(--preto);border-radius:22px;padding:34px;box-shadow:12px 12px 0 var(--kraft)}
.sobre .ficha dl{display:grid;grid-template-columns:auto 1fr;gap:16px 26px;font-size:16px}
.sobre .ficha dt{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--azul);padding-top:3px}
.sobre h2{font-size:clamp(46px,5.6vw,80px);margin:14px 0 24px}
.sobre p{font-size:19px;color:#141414c8;margin-bottom:16px;max-width:560px}

.faq{display:grid;grid-template-columns:1fr 1fr;gap:0 50px}
.faq details{border-top:1.5px solid var(--preto);padding:22px 0}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;font-family:'Bricolage Grotesque';font-weight:800;font-size:26px;letter-spacing:-.02em;line-height:1.1;font-variation-settings:"wdth" 85}
.faq summary::after{content:"+";color:var(--verm);font-size:32px;line-height:.8;transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin-top:12px;font-size:16px;color:#141414b8}

.destino{padding:40px 0 110px;text-align:center}
.destino h2{font-size:clamp(54px,8vw,120px);margin:18px auto 26px;max-width:1000px}
.destino p{font-size:20px;color:#141414b8;max-width:560px;margin:0 auto 36px}
.destino .acoes{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}

footer{border-top:1.5px solid var(--preto);padding:34px 0;font-size:15px}
footer .wrap{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}

.aparece{opacity:0;transform:translateY(24px);transition:opacity .8s,transform .8s}
.aparece.on{opacity:1;transform:none}


/* carregando */
.carregando{position:fixed;inset:0;z-index:100;background:var(--gelo) url(../rota/curvas-story.svg) center/cover no-repeat;color:var(--preto);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;animation:c-sai .75s 2.15s cubic-bezier(.76,0,.24,1) forwards}
.ja-viu .carregando{display:none}
@keyframes c-sai{to{clip-path:inset(0 0 100% 0);visibility:hidden}}
.c-bussola{width:104px;height:104px;animation:c-tique .35s 1.55s ease-out}
.c-bussola .aro{stroke-dasharray:158;stroke-dashoffset:158;animation:c-aro .7s .1s cubic-bezier(.6,0,.2,1) forwards}
.c-bussola .marcas{opacity:0;animation:c-surge .3s .55s forwards}
.c-bussola .marca-n{opacity:0;animation:c-surge .2s .6s forwards}
.c-bussola .agulha{transform-origin:32px 32px;opacity:0;animation:c-surge .2s .35s forwards,c-procura 1.3s .35s cubic-bezier(.3,.7,.4,1) forwards}
@keyframes c-aro{to{stroke-dashoffset:0}}@keyframes c-surge{to{opacity:1}}
@keyframes c-procura{0%{transform:rotate(-160deg)}34%{transform:rotate(430deg)}50%{transform:rotate(332deg)}63%{transform:rotate(378deg)}74%{transform:rotate(352deg)}84%{transform:rotate(364deg)}92%{transform:rotate(358.5deg)}100%{transform:rotate(360deg)}}
@keyframes c-tique{50%{transform:scale(1.08)}}
.c-nome{display:flex;overflow:hidden;font-family:'Bricolage Grotesque';font-weight:800;font-variation-settings:"wdth" 80;font-size:58px;letter-spacing:-.045em;line-height:1.1}
.c-nome span{display:inline-block;transform:translateY(105%);animation:c-sobe .55s cubic-bezier(.2,.8,.2,1) forwards}
.c-nome span:nth-child(1){animation-delay:.75s}.c-nome span:nth-child(2){animation-delay:.8s}.c-nome span:nth-child(3){animation-delay:.85s}.c-nome span:nth-child(4){animation-delay:.9s}.c-nome span:nth-child(5){animation-delay:.95s}.c-nome span:nth-child(6){animation-delay:1s}
@keyframes c-sobe{to{transform:none}}
.c-msg{display:grid;font-size:13px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;height:18px;overflow:hidden;color:#14141499}
.c-msg span{grid-area:1/1;text-align:center}
.c-msg span:first-child{animation:c-troca-sai .3s 1.5s forwards}
.c-msg span:last-child{color:var(--azul);transform:translateY(100%);animation:c-troca-entra .3s 1.55s forwards}
@keyframes c-troca-sai{to{transform:translateY(-100%);opacity:0}}@keyframes c-troca-entra{to{transform:none}}
.c-rota{width:180px;height:30px;overflow:visible}
.c-rota path{fill:none;stroke:var(--verm);stroke-width:4;stroke-linecap:round;stroke-dasharray:2 11;clip-path:inset(0 100% 0 0);animation:c-rota 1.2s .6s ease-out forwards}
@keyframes c-rota{to{clip-path:inset(0 0 0 0)}}

/* bússola (mola) */
[data-bussola]{display:block}
.bussola{display:block;width:100%;height:100%;overflow:visible}
.bussola .agulha{transform-origin:32px 32px}
.logo [data-bussola]{width:34px;height:34px}
.nav-rumo{font-size:12px;font-weight:800;letter-spacing:.14em;color:#14141480;border:1.5px solid var(--borda);border-radius:99px;padding:3px 10px;white-space:nowrap}
.nav-rumo.pulsa{animation:pulsa .6s}
@keyframes pulsa{30%{color:var(--azul);border-color:var(--azul)}}

/* 3D no topo */
.hero{overflow:hidden}
.campo3d{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:crosshair;opacity:0;transition:opacity .9s;z-index:0}
.campo3d.pronto{opacity:1}
.hero-veu{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,var(--gelo) 0,#F7F5EFee 30%,#F7F5EF55 58%,transparent 75%),linear-gradient(0deg,var(--gelo) 0,transparent 22%)}
.hero .wrap{position:relative;z-index:2;pointer-events:none}
.rotaH,.pinH{display:none}
.hero .wrap a,.hero .wrap button,.hero .cel{pointer-events:auto}
.rumo-linha{display:flex;align-items:center;gap:8px;font-weight:700;font-size:20px;margin-top:26px}
.rumo-linha .az{color:var(--azul)}
.rumo-linha .dig{background:var(--marca);padding:0 6px}
.rumo-linha .cur{width:2px;height:22px;background:var(--azul);animation:pisca 1s steps(1) infinite}
@keyframes pisca{50%{opacity:0}}
.tecla-dica{position:absolute;right:32px;bottom:26px;z-index:3;display:flex;align-items:center;gap:10px;background:none;border:0;font:700 13px Figtree;letter-spacing:.12em;text-transform:uppercase;color:#14141499;cursor:pointer}
.tecla-dica kbd{font:800 16px Figtree;color:#fff;background:var(--azul);border-radius:8px;padding:5px 11px;box-shadow:0 4px 0 var(--preto);transition:transform .1s,box-shadow .1s}
.tecla-dica kbd.press{transform:translateY(3px);box-shadow:0 1px 0 var(--preto)}

/* ícones animados dos serviços */
.serv .n{margin-bottom:22px}
.ic{width:72px;height:72px;flex:none}
.ic svg{width:72px;height:72px;overflow:visible}
.ic *{transform-box:fill-box}
.ic .tr{fill:none;stroke:var(--preto);stroke-width:3;stroke-linejoin:round;stroke-linecap:round}
.ic .ch{fill:var(--preto)}
.ic-site .ln{fill:var(--preto);transform-origin:left;animation:linha 3.2s ease-in-out infinite}
.ic-site .l1{fill:var(--azul)}.ic-site .l2{animation-delay:.2s}.ic-site .l3{animation-delay:.4s}
@keyframes linha{0%,8%{transform:scaleX(0)}40%,82%{transform:scaleX(1)}100%{transform:scaleX(0)}}
.ic-site .pino path{fill:var(--verm);stroke:#fff;stroke-width:3}.ic-site .pino circle{fill:#fff}
.ic-site .pino{transform-origin:bottom;animation:pino 3.2s cubic-bezier(.3,0,.3,1) infinite}
@keyframes pino{0%,35%{transform:translateY(-30px);opacity:0}50%{transform:none;opacity:1}55%{transform:scaleY(.86)}62%,90%{transform:none;opacity:1}100%{opacity:0}}
.ic-lp .cl{opacity:.35}
.ic-lp .botao{fill:var(--preto);animation:botao 2.6s ease-in-out infinite}
@keyframes botao{0%,46%{fill:var(--preto)}52%,78%{fill:var(--azul)}90%,100%{fill:var(--preto)}}
.ic-lp .cursor{fill:var(--preto);stroke:#fff;stroke-width:2;stroke-linejoin:round;animation:toque 2.6s ease-in-out infinite}
@keyframes toque{0%{transform:translate(18px,14px)}38%,62%{transform:none}48%{transform:scale(.82)}100%{transform:translate(18px,14px)}}
.ic-lp .mais{font:800 12px Figtree;fill:var(--verm);opacity:0;animation:mais 2.6s ease-out infinite}
@keyframes mais{0%,50%{opacity:0;transform:translateY(6px)}58%{opacity:1}80%{opacity:0;transform:translateY(-8px)}100%{opacity:0}}
.ic-sis .topo{fill:var(--preto)}
.ic-sis [class^=cel]{fill:none;stroke:var(--preto);stroke-width:2;animation:marca 4.5s steps(1) infinite}
.ic-sis .cel0{animation-delay:.1s}.ic-sis .cel4{animation-delay:.5s}.ic-sis .cel2{animation-delay:.9s}.ic-sis .cel6{animation-delay:1.3s}.ic-sis .cel1{animation-delay:1.7s}.ic-sis .cel8{animation-delay:2.1s}.ic-sis .cel3{animation-delay:2.5s}.ic-sis .cel7{animation-delay:2.9s}.ic-sis .cel5{animation-delay:3.3s}
@keyframes marca{0%{fill:transparent}1%,76%{fill:var(--marca)}77%,100%{fill:transparent}}
.ic-trafego .b{fill:var(--preto);transform-origin:bottom;animation:barra 3s ease-in-out infinite}
.ic-trafego .b2{animation-delay:.15s}.ic-trafego .b3{animation-delay:.3s;fill:var(--azul)}
@keyframes barra{0%,6%{transform:scaleY(.15)}40%,85%{transform:scaleY(1)}100%{transform:scaleY(.15)}}
.ic-trafego .linha{fill:none;stroke:var(--verm);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:sobe 3s ease-in-out infinite}
@keyframes sobe{0%,10%{stroke-dashoffset:1}50%,85%{stroke-dashoffset:0}100%{stroke-dashoffset:1}}
.ic-trafego .seta{fill:none;stroke:var(--verm);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;opacity:0;animation:seta 3s ease-in-out infinite}
@keyframes seta{0%,46%{opacity:0;transform:translate(-4px,4px)}54%,85%{opacity:1;transform:none}100%{opacity:0}}
.ic-manut .engr{transform-origin:center;animation:gira 6s linear infinite}
.ic-manut .dente{fill:var(--preto);transform-box:view-box}
.ic-manut .tr{fill:#fff}.serv>div:hover .ic-manut .tr{fill:#FFF8CC}
.ic-manut .ch{fill:var(--azul)}
.ic-manut .anel{fill:none;stroke:var(--verm);stroke-width:3;stroke-linecap:round;stroke-dasharray:.22 .78;transform-origin:center;animation:gira 1.6s linear infinite reverse}
.ic-auto .pt{fill:var(--preto);animation:digita 2.8s ease-in-out infinite}
.ic-auto .p2{animation-delay:.15s}.ic-auto .p3{animation-delay:.3s}
@keyframes digita{0%,40%,100%{transform:none;opacity:.35}12%{transform:translateY(-3px);opacity:1}24%{transform:none;opacity:.35}}
.ic-auto .balao2 path:first-child{fill:var(--azul)}
.ic-auto .ok{fill:none;stroke:#fff;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:22;stroke-dashoffset:22;animation:ok 2.8s ease-out infinite}
.ic-auto .balao2{transform-origin:right bottom;animation:responde 2.8s cubic-bezier(.23,1,.32,1) infinite}
@keyframes responde{0%,42%{transform:scale(0);opacity:0}54%,92%{transform:none;opacity:1}100%{transform:none;opacity:0}}
@keyframes ok{0%,55%{stroke-dashoffset:22}70%,100%{stroke-dashoffset:0}}

/* agenda ao vivo */
.painel ul{list-style:none}
.painel li{display:flex;justify-content:space-between;align-items:center;padding:13px 22px;border-bottom:1px solid var(--borda)}
.painel li time{font-weight:800;margin-right:12px}
.painel li.in{animation:entra .6s cubic-bezier(.2,.8,.2,1);background:#FFF8CC}
.painel li em{font-style:normal;background:#FFF3A6;border-radius:99px;padding:2px 12px;font-size:12px;font-weight:700}
.painel li em.n{background:var(--azul);color:#fff}
.painel .nums b{transition:color .3s}
.painel .nums b.bump{animation:bump .6s}
@keyframes bump{40%{transform:scale(1.18);color:var(--azul)}}


/* rota global */
main{position:relative}
#rotaGlobal{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:5;contain:strict}
#rotaGlobal svg{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible}
#rotaGlobal path{fill:none;stroke-linecap:round}
#rotaGlobal .r-fundo{stroke:#14141418;stroke-width:3;stroke-dasharray:2 14}
#rotaGlobal .r-trilha{stroke:var(--verm);stroke-width:5;stroke-dasharray:2 14}
#rotaGlobal .r-janela,#rotaGlobal .r-dentro{position:absolute;inset:0;overflow:hidden;will-change:transform}
#rotaGlobal .r-dentro{overflow:visible}
#rotaGlobal .r-ponto{position:absolute;left:0;top:0;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;background:var(--azul);border:3.5px solid #fff;box-shadow:0 2px 0 #1414142e;will-change:transform;opacity:0;transition:opacity .3s}
.trecho .parada{z-index:6}
/* etiqueta de mapa nos trabalhos */
.caso .img{position:relative}
.caso .coord{position:absolute;right:14px;top:14px;z-index:2;background:var(--preto);color:var(--gelo);border-radius:99px;padding:6px 12px;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;opacity:0;transform:translateY(-6px);transition:.25s}
.caso:hover .coord,.caso:focus-visible .coord{opacity:1;transform:none}
/* status */
.status{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;white-space:nowrap}
.status::before{content:"";width:9px;height:9px;border-radius:50%;flex:none}
.status.on::before{background:#1FAF5A;animation:respira 2s infinite}
.status.off{color:#14141499}.status.off::before{border:1.5px solid #14141499}
@keyframes respira{0%{box-shadow:0 0 0 0 #1FAF5A88}70%{box-shadow:0 0 0 9px #1FAF5A00}100%{box-shadow:0 0 0 0 #1FAF5A00}}
@media (max-width:1100px){header .status{display:none}}
/* agendar */
.agendar{margin-top:34px;padding-top:26px;border-top:1.5px solid #ffffff44;display:grid;gap:14px;max-width:430px}
.agendar .cota{color:var(--marca)!important}
.agendar input[name=nome]{font:600 17px Figtree;padding:14px 18px;border-radius:14px;border:0;background:#ffffff1f;color:#fff;outline:2px solid transparent}
.agendar input[name=nome]::placeholder{color:#ffffffaa}
.agendar input[name=nome]:focus{outline-color:var(--marca)}
.agendar .horas{display:flex;gap:8px}
.agendar .horas label{cursor:pointer}
.agendar .horas input{position:absolute;opacity:0}
.agendar .horas span{display:block;padding:9px 16px;border-radius:99px;border:1.5px solid #ffffff66;font-weight:700;font-size:15px}
.agendar .horas input:checked+span{background:var(--marca);color:var(--preto);border-color:var(--marca)}
.agendar .horas input:focus-visible+span{outline:2px solid #fff}
.agendar .btn{justify-self:start;background:#fff;color:var(--preto);box-shadow:6px 6px 0 var(--marca);border:0;cursor:pointer;font-family:Figtree}
.agendar .ok{font-size:16px;color:#fff}
.link-sis{display:inline-block;margin-top:22px;font-weight:700;color:#fff;border-bottom:2px solid var(--marca)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.painel{position:relative}
.painel li.meu{background:#FFF3A6}
.toast{position:absolute;left:18px;right:18px;bottom:18px;background:var(--preto);color:#fff;border-radius:16px;padding:14px 18px;display:flex;gap:12px;align-items:center;font-size:14px;transform:translateY(20px);opacity:0;transition:.35s cubic-bezier(.2,.8,.2,1)}
.toast.show{transform:none;opacity:1}
.toast i{font-style:normal;color:#1FAF5A}
.toast b{display:block}
/* destino + quiz */
.destino{text-align:left}
.destino .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center}
.destino h2{font-size:clamp(50px,6.4vw,96px);margin:18px 0 24px;max-width:none}
.destino p{margin:0 0 30px}
.destino .acoes{justify-content:flex-start}
.quiz{background:#fff;border:1.5px solid var(--preto);border-radius:24px;overflow:hidden;box-shadow:14px 14px 0 var(--azul)}
.quiz-h{display:flex;justify-content:space-between;padding:16px 24px;font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;border-bottom:1.5px solid var(--preto)}
.quiz-h span:last-child{color:#14141488}
.quiz-barra{height:5px;background:#1414140f}
.quiz-barra i{display:block;height:100%;width:0;background:var(--verm);transition:width .45s cubic-bezier(.23,1,.32,1)}
.quiz-corpo{padding:26px 24px 26px;display:flex;flex-direction:column;gap:16px;min-height:360px}
.quiz-q{font-family:'Bricolage Grotesque';font-weight:800;font-variation-settings:"wdth" 82;font-size:32px;letter-spacing:-.03em;line-height:1.05}
.quiz-op{display:grid;gap:9px}
.quiz-op button{display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;font:600 16px Figtree;color:var(--preto);background:var(--gelo);border:1.5px solid var(--borda);border-radius:14px;padding:15px 18px;cursor:pointer;transition:border-color .2s,background .2s,transform .2s}
.quiz-op button:hover,.quiz-op button:focus-visible{border-color:var(--preto);background:#FFF8CC;outline:none;transform:translateX(3px)}
.quiz-op .seta{color:var(--verm);font-weight:800}
.quiz-volta{align-self:flex-start;background:none;border:0;padding:6px 0;font:700 14px Figtree;color:#14141488;cursor:pointer}
.quiz-volta:hover{color:var(--preto)}
.quiz-res{display:flex;align-items:center;gap:18px}
.quiz-rosa{width:80px;height:80px;flex:none}
.quiz-res small{display:block;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--azul);margin-bottom:6px}
.quiz-res h3{font-family:'Bricolage Grotesque';font-weight:800;font-variation-settings:"wdth" 82;font-size:34px;letter-spacing:-.03em;line-height:1}
.quiz-pq{font-size:17px;color:#141414c0}
.quiz-corpo .btn{align-self:flex-start}
/* barra WhatsApp no celular */
.wa-barra{display:none}
@media (max-width:860px){
 .wa-barra{display:flex;position:fixed;left:12px;right:12px;bottom:12px;z-index:30;justify-content:space-between;align-items:center;gap:12px;background:var(--azul);color:#fff;border-radius:18px;padding:14px 18px;box-shadow:0 6px 0 var(--marca),0 10px 30px #1414143a;transform:translateY(140%);transition:transform .45s cubic-bezier(.2,.8,.2,1)}
 .wa-barra.on{transform:none}
 .wa-barra .status{color:#ffffffd0}.wa-barra .status.off::before{border-color:#ffffffd0}
 .wa-barra b{font-size:16px}
 .destino .wrap{grid-template-columns:minmax(0,1fr);gap:40px}
 .quiz-corpo{min-height:0;padding:22px 18px}
 .quiz-q{font-size:26px}
 .quiz-h{font-size:11px;letter-spacing:.08em;padding:14px 18px}
 .caso .coord{opacity:1;transform:none;font-size:10px}
 footer{padding-bottom:96px}
}
.fora *,.fora{animation-play-state:paused!important}
@media (prefers-reduced-motion:reduce){.ic *,.selo{animation:none!important}}

@media (max-width:860px){
 .hero-veu{background:linear-gradient(180deg,var(--gelo) 0,#F7F5EFdd 45%,#F7F5EF66 70%,var(--gelo) 100%)}
 .tecla-dica{display:none}
 .nav-rumo{display:none}
 body{font-size:17px}
 .wrap{padding:0 22px}
 nav{display:none}
 .hero{padding:34px 0 10px;background-size:700px auto}
 .hero .wrap,.sis .wrap,.sobre .wrap,.trab,.faq{grid-template-columns:minmax(0,1fr)}
 .mapa{height:470px;margin-top:10px}
 .mapa .cel{width:220px;height:450px;right:18px}
 .mapa .selo{right:0!important;width:96px;height:96px}
 .rotaH,.pinH{display:none}
 header .btn{padding:9px 16px;font-size:14px;box-shadow:4px 4px 0 var(--marca)}
 .trecho .parada{top:64px!important}
 .mapa .leg{top:0}
 .sobre .ficha .selo{right:-8px!important}
 .ficha{margin-top:30px}
 .serv{grid-template-columns:1fr}
 .caso.grande{grid-column:auto}.caso.grande .jan .img{aspect-ratio:auto;height:240px}.caso .img{height:240px}
 .etapas{grid-template-columns:1fr 1fr;gap:70px 22px}
 .etapas svg.linha{display:none}
 .trecho{height:120px}
 .sis{padding:70px 0}
 .sobre .wrap{gap:40px}
}

.quiz-nota{font-size:14px;color:#14141488}

html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:clip}
[id]{scroll-margin-top:88px}

/* ===== capricho (só transform/opacity: leve) ===== */
/* 1. títulos sobem palavra por palavra */
.palavras .wi{display:inline-block;opacity:0;transform:translate3d(0,.5em,0) rotate(3deg);transition:opacity .6s,transform .8s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--i) * 55ms)}
.palavras.on .wi{opacity:1;transform:none}
/* 4. marca-texto se pinta da esquerda pra direita */
.hl{background-repeat:no-repeat!important;background-size:0% 100%!important;transition:background-size .9s cubic-bezier(.6,0,.2,1) .35s}
.hl.on,.on .hl{background-size:100% 100%!important}
/* 5. alfinetes caem e quicam; etiqueta entra depois */
.trecho .parada svg,.etapas .pin{opacity:0;transform-origin:50% 100%}
.trecho.on .parada svg{animation:cai .8s cubic-bezier(.3,0,.3,1) .15s forwards}
.etapas.on .pin{animation:cai .8s cubic-bezier(.3,0,.3,1) forwards}
.etapas.on .e:nth-child(3) .pin{animation-delay:.15s}.etapas.on .e:nth-child(4) .pin{animation-delay:.3s}.etapas.on .e:nth-child(5) .pin{animation-delay:.45s}
@keyframes cai{0%{opacity:0;transform:translate3d(0,-50px,0)}45%{opacity:1;transform:translate3d(0,0,0) scale(1.1,.8)}65%{transform:translate3d(0,-10px,0) scale(.95,1.06)}82%{transform:translate3d(0,0,0) scale(1.03,.96)}100%{opacity:1;transform:none}}
.trecho .parada span{opacity:0;transform:translate3d(-10px,0,0);transition:opacity .4s .6s,transform .5s cubic-bezier(.2,.8,.2,1) .6s}
.trecho.on .parada span{opacity:1;transform:none}
/* 2. cartões com profundidade */
.caso .jan{will-change:transform}
/* 3. botão ímã */
.btn{transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .2s}
.btn.ima{transition:transform .12s ease-out,box-shadow .2s}
/* 7. troca de página suave */
@view-transition{navigation:auto}
header{view-transition-name:topo}
::view-transition-old(root){animation:vt-sai .4s cubic-bezier(.7,0,.3,1) both}
::view-transition-new(root){animation:vt-entra .6s cubic-bezier(.2,.8,.2,1) both}
@keyframes vt-sai{to{opacity:0;transform:translate3d(0,-40px,0)}}
@keyframes vt-entra{from{opacity:0;transform:translate3d(0,70px,0)}}
@media (prefers-reduced-motion:reduce){
 .palavras .wi,.trecho .parada svg,.etapas .pin,.trecho .parada span{opacity:1!important;transform:none!important;animation:none!important}
 .hl{background-size:100% 100%!important}
 ::view-transition-old(root),::view-transition-new(root){animation:none}
}

/* menu do celular */
.menu-btn{display:none;width:46px;height:46px;border-radius:14px;border:1.5px solid var(--preto);background:#fff;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:6px}
.menu-btn i{display:block;width:20px;height:2.5px;border-radius:2px;background:var(--preto);transition:transform .3s cubic-bezier(.2,.8,.2,1)}
.menu-on .menu-btn i:first-child{transform:translateY(4.2px) rotate(45deg)}.menu-on .menu-btn i:last-child{transform:translateY(-4.2px) rotate(-45deg)}
@media (max-width:860px){
 .menu-btn{display:flex}
 header .wrap>div:last-child{gap:10px!important}
 nav#menuNav{display:flex;position:fixed;left:0;right:0;top:74px;flex-direction:column;gap:0;background:var(--gelo);border-bottom:1.5px solid var(--preto);padding:8px 22px 22px;font-family:'Bricolage Grotesque';font-weight:800;font-variation-settings:"wdth" 80;font-size:34px;letter-spacing:-.02em;opacity:0;transform:translate3d(0,-12px,0);pointer-events:none;transition:opacity .25s,transform .35s cubic-bezier(.2,.8,.2,1);z-index:19}
 nav#menuNav a{padding:12px 0;border-bottom:1px solid var(--borda)}
 nav#menuNav a:last-child{border:0}
 .menu-on nav#menuNav{opacity:1;transform:none;pointer-events:auto}
}
@media (max-width:430px){header .btn-azul{display:none}}
.faq summary{padding:8px 0;min-height:44px;align-items:center}
.link-sis{padding:10px 0}

/* ===== topo opção 2: mapa topográfico que se desenha ===== */
.mapa2d{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;overflow:visible;will-change:transform;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.m-curvas .fx{opacity:0}
.m-curvas.vai .fx{animation:surge2d .9s ease-out var(--d) forwards}
.m-curvas .cn{fill:none;stroke:#3A342B;stroke-opacity:.34;stroke-width:1.3;stroke-dasharray:1;stroke-dashoffset:1}
.m-curvas .cn.mestra{stroke-opacity:.6;stroke-width:2.2}
.m-curvas.vai .cn{animation:desenha2d 1.6s cubic-bezier(.6,0,.2,1) var(--d) forwards}
.m-curvas .grade line{stroke:#14141412;stroke-width:1}
.m-curvas .rosa circle{fill:#fff;stroke:#141414;stroke-width:2}
.m-curvas .rosa text,.m-curvas .escala text{font:800 13px Figtree;fill:#141414;letter-spacing:.12em}
.m-curvas .rosa,.m-curvas .escala{opacity:0}.m-curvas.vai .rosa,.m-curvas.vai .escala{animation:surge2d .5s 1.2s forwards}
@keyframes desenha2d{to{stroke-dashoffset:0}}
@keyframes surge2d{to{opacity:1}}
.m-rota .mk{fill:none;stroke:#fff;stroke-width:30;stroke-dasharray:1;stroke-dashoffset:1}
.m-rota.vai .mk{animation:desenha2d 2s cubic-bezier(.5,0,.2,1) .3s forwards}
.m-rota .r-base{fill:none;stroke:#14141422;stroke-width:3;stroke-linecap:round;stroke-dasharray:1 13}
.m-rota .r-halo{fill:none;stroke:#F7F5EF;stroke-width:15;stroke-linecap:round;stroke-opacity:.95}
.m-rota .r-tr{fill:none;stroke:#FF4A2E;stroke-width:6.5;stroke-linecap:round;stroke-dasharray:1 14}
.m-rota .pt{fill:#fff;stroke:#141414;stroke-width:3}
.m-rota .etq rect{fill:#fff;stroke:#141414;stroke-width:2}
.m-rota .etq text{font:800 14px Figtree;fill:#141414;letter-spacing:.08em;text-transform:uppercase}
.m-rota .etq.az rect{fill:#2B3BFF;stroke:#2B3BFF}.m-rota .etq.az text{fill:#fff}
.m-rota .etq.am rect{fill:#141414;stroke:#141414}.m-rota .etq.am text{fill:#FFE14D}
.m-rota .sombra{fill:#141414;opacity:.18}
.m-rota .cai{transform-box:fill-box;transform-origin:50% 100%;opacity:0}
.m-rota.vai .pinb .cai,.m-rota .solto .cai{animation:cai .8s cubic-bezier(.3,0,.3,1) var(--d,0s) forwards}
.m-rota .par,.m-rota .pinb .etq{opacity:0}
.m-rota.vai .par{animation:surge2d .45s var(--d) forwards}
.m-rota.vai .pinb .etq{animation:surge2d .4s calc(var(--d) + .6s) forwards}
.m-rota .pulso{fill:none;stroke:#FFE14D;stroke-width:3;opacity:0;transform-box:fill-box;transform-origin:center}
.m-rota.vai .fim .pulso{animation:pulso2d 2.2s ease-out 3s infinite}
@keyframes pulso2d{0%{opacity:.9;transform:scale(.4)}100%{opacity:0;transform:scale(2.2)}}
/* ===== topo opção 1: etiquetas presas no relevo ===== */
.etq3d{position:absolute;left:0;top:0;z-index:2;pointer-events:none;transform-origin:0 0;margin:-16px 0 0 -14px;background:#fff;border:2px solid #141414;border-radius:99px;padding:6px 14px;font:800 13px Figtree;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;opacity:0;transition:opacity .4s;will-change:transform}
.etq3d.on{opacity:1}.etq3d.az{background:#2B3BFF;border-color:#2B3BFF;color:#fff}.etq3d.am{background:#141414;border-color:#141414;color:#FFE14D}
@media (prefers-reduced-motion:reduce){.m-curvas .cn,.m-rota .mk{stroke-dashoffset:0!important;animation:none!important}.m-curvas .fx,.m-rota .cai,.m-rota .par,.m-rota .etq,.m-curvas .rosa,.m-curvas .escala{opacity:1!important;animation:none!important}}
@media (max-width:860px){html[data-topo=mapa] .hero,html[data-topo=relevo] .hero{padding-bottom:300px!important;align-items:flex-start}html[data-topo=mapa] .hero-veu,html[data-topo=relevo] .hero-veu{background:linear-gradient(180deg,var(--gelo) 0,#F7F5EFee 55%,#F7F5EF00 72%)}}

.m-rota{z-index:2!important}

/* ===== topo Carta interativo (sem 3D) ===== */
.hero-carta{min-height:0!important;display:block!important;padding:70px 0 50px!important}
.hero-carta .wrap{display:grid!important;grid-template-columns:1.1fr .9fr;gap:30px;align-items:center;pointer-events:auto!important}
.h-fundo{position:absolute;inset:-60px -10px 0;background:url(../rota/curvas-post.svg) right -140px top -120px/1100px no-repeat;opacity:.9;will-change:transform;transition:transform .8s cubic-bezier(.2,.8,.2,1);pointer-events:none;-webkit-mask-image:linear-gradient(180deg,#000 70%,transparent 96%);mask-image:linear-gradient(180deg,#000 70%,transparent 96%)}
.h-mapa{position:relative;height:620px;touch-action:pan-y}
.h-leg{position:absolute;left:0;top:30px;z-index:3;background:#fff;border:1.5px solid var(--preto);border-radius:14px;padding:12px 16px;font-size:14px;font-weight:700;line-height:1.75;display:grid}
.h-leg span{cursor:default;transition:transform .25s}.h-leg span:hover{transform:translateX(4px)}
.h-leg b{display:inline-block;width:22px}
.h-rota{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:1}
.h-rota path{fill:none;stroke-linecap:round}
.h-rota .r-base{stroke:#F7F5EF;stroke-width:12;opacity:.9}
.h-rota .r-corre{stroke:var(--verm);stroke-width:5;stroke-dasharray:2 15;animation:corre 1.4s linear infinite}
@keyframes corre{to{stroke-dashoffset:-17}}
.h-mapa.foco-rota .r-corre{stroke-width:7}
.h-pin{position:absolute;left:0;top:0;z-index:4;width:46px;height:60px;margin:-60px 0 0 -23px;border:0;background:none;padding:0;cursor:grab;touch-action:none;will-change:transform}
.h-pin svg{width:100%;height:100%;display:block;transform-origin:50% 100%;transition:transform .25s cubic-bezier(.3,1.6,.5,1);filter:drop-shadow(0 3px 0 #14141433)}
.h-pin .h-sombra{position:absolute;left:50%;bottom:-4px;width:26px;height:8px;margin-left:-13px;border-radius:50%;background:#14141426;transition:transform .25s}
.h-pin:hover svg,.h-pin:focus-visible svg{transform:scale(1.08)}
.h-pin.arrasta{cursor:grabbing}.h-pin.arrasta svg{transform:translateY(-16px) scale(1.12) rotate(-6deg)}.h-pin.arrasta .h-sombra{transform:scale(.6)}
.h-pin.cai svg{animation:cai .7s cubic-bezier(.3,0,.3,1)}
.h-mapa.foco-pin .h-pin svg{transform:scale(1.15)}
.h-dica{position:absolute;z-index:3;left:0;top:0;font:700 12px Figtree;letter-spacing:.14em;text-transform:uppercase;color:#14141499;white-space:nowrap;pointer-events:none;transition:opacity .4s;will-change:transform}
.h-dica.some{opacity:0}
.h-cel{position:absolute;right:20px;top:20px;z-index:2;width:270px;height:560px;border-radius:40px;background:var(--preto);padding:10px;box-shadow:14px 14px 0 var(--marca);transform:perspective(1100px) rotateY(var(--ry,-6deg)) rotateX(var(--rx,2deg)) rotate(3deg);transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .3s;will-change:transform}
.h-mapa.foco-cel .h-cel{box-shadow:18px 18px 0 var(--azul)}
.h-tela{position:relative;display:block;width:100%;height:100%;border-radius:31px;overflow:hidden;background:#fff}
.h-rolo{position:absolute;left:0;top:0;width:100%;height:auto;opacity:0;transition:opacity .6s;will-change:transform}
.h-rolo.on{opacity:1;animation:rola 16s cubic-bezier(.45,0,.55,1) infinite alternate}
@keyframes rola{0%,8%{transform:translate3d(0,0,0)}92%,100%{transform:translate3d(0,calc(-100% + 540px),0)}}
.h-cel:hover .h-rolo.on{animation-play-state:paused}
.h-url{position:absolute;left:50%;bottom:-38px;transform:translateX(-50%);background:#fff;border:1.5px solid var(--preto);border-radius:99px;padding:5px 14px;font:700 13px Figtree;white-space:nowrap;color:var(--preto)}
.h-zap{position:absolute;right:150px;top:110px;z-index:5;display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center;background:#fff;border:1.5px solid var(--preto);border-radius:16px;padding:10px 14px;box-shadow:0 8px 0 var(--preto);font-size:14px;opacity:0;transform:translate3d(0,10px,0) scale(.9);transition:opacity .3s,transform .45s cubic-bezier(.3,1.6,.5,1);pointer-events:none}
.h-zap i{grid-row:span 2;width:30px;height:30px;border-radius:9px;background:#1FAF5A;display:block}
.h-zap b{font-weight:800}.h-zap small{color:#14141499;font-size:12px}
.h-zap.on{opacity:1;transform:none}
.h-selo{position:absolute;right:-20px;bottom:30px;z-index:3;width:116px;height:116px;animation:gira 26s linear infinite}
@media (max-width:860px){
 .hero-carta{padding:30px 0 20px!important}
 .hero-carta .wrap{grid-template-columns:minmax(0,1fr)!important;gap:10px}
 .h-mapa{height:520px;margin-top:10px}
 .h-cel{width:210px;height:430px;right:16px;top:30px;border-radius:32px;padding:8px}
 .h-tela{border-radius:25px}
 @keyframes rola{0%,8%{transform:translate3d(0,0,0)}92%,100%{transform:translate3d(0,calc(-100% + 414px),0)}}
 .h-leg{top:0;font-size:13px}
 .h-zap{right:120px;top:120px}
 .h-selo{width:90px;height:90px;right:0;bottom:24px}
 .h-fundo{background-size:760px auto;background-position:right -260px top 300px}
}
@media (prefers-reduced-motion:reduce){.h-rolo.on,.h-rota .r-corre,.h-selo{animation:none!important}}
.h-dica::before{content:"↑ "}

/* paradas da rota: do lado direito a etiqueta fica antes do alfinete; visitada = vermelho com check */
.trecho .parada.dir{flex-direction:row-reverse}
.trecho .parada span{transition:background .35s,color .35s,opacity .4s .6s,transform .5s cubic-bezier(.2,.8,.2,1) .6s}
.trecho .parada span b{font-weight:800;opacity:.55;margin-right:6px}
.trecho .parada.passou span{background:var(--verm);color:#fff}
.trecho .parada.passou span b{opacity:1}
.trecho .parada.passou span::before{content:"✓ ";font-weight:800}
.trecho .parada.passou svg{filter:drop-shadow(0 0 0 transparent)}
#rotaGlobal .r-ponto{box-shadow:0 0 0 6px #2B3BFF22,0 2px 0 #1414142e}
@media (max-width:859px){.trecho .parada span{font-size:11px;padding:5px 11px;letter-spacing:.1em}}

/* paradas clicáveis */
.trecho .parada.clica{cursor:pointer;pointer-events:auto}
.trecho .parada.clica:hover span{background:var(--azul);color:#fff}
.trecho .parada.clica:hover svg{transform:translateY(-4px);transition:transform .25s}
/* chegada no destino */
.trecho .chegada{position:absolute;left:50%;top:calc(100% + 10px);transform:translate(-50%,8px) scale(.9);opacity:0;pointer-events:none;white-space:nowrap;background:#fff;border:1.5px solid var(--preto);border-radius:14px;padding:9px 14px;font-size:14px;font-weight:600;box-shadow:5px 5px 0 var(--marca);transition:opacity .4s,transform .5s cubic-bezier(.3,1.6,.5,1)}
.trecho .chegada::before{content:"";position:absolute;left:50%;top:-7px;width:12px;height:12px;margin-left:-6px;background:#fff;border-left:1.5px solid var(--preto);border-top:1.5px solid var(--preto);transform:rotate(45deg)}
.trecho .chegada b{color:var(--verm)}
.trecho .parada.chegou .chegada{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.trecho .parada.chegou svg{animation:quica .9s cubic-bezier(.3,0,.3,1) 2}
@keyframes quica{0%,100%{transform:none}40%{transform:translateY(-14px)}70%{transform:translateY(0) scaleY(.9)}}
.btn.chamando{animation:chama 1.6s ease-in-out 3}
@keyframes chama{0%,100%{transform:none}50%{transform:translateY(-3px) scale(1.04)}}
@media (prefers-reduced-motion:reduce){.trecho .parada.chegou svg,.btn.chamando{animation:none}}
.trecho .parada.chegou svg{opacity:1}

/* ajustes da revisão final */
.trecho.fim{height:240px!important}
@media (max-width:859px){.trecho.fim{height:190px!important}}
/* curvas do fecho: saem de trás do texto e dos botões */
.destino.curvas{background-position:right -380px top 60px!important}
@media (max-width:859px){.destino.curvas{background-position:right -520px top 140px!important}}
/* respiro entre a rota (na margem) e o texto, no celular */
@media (max-width:859px){.wrap{padding-left:26px;padding-right:26px}}
/* área de clique maior no menu do PC */
nav a{padding:10px 4px;margin:-10px -4px}
