.jrv-journey{--jrv-ink:#132b31;--jrv-deep:#083d43;--jrv-teal:#087f7b;--jrv-aqua:#4dc9c5;--jrv-sand:#f5e9cf;--jrv-coral:#ef754d;--jrv-gold:#e9b94f;position:relative;margin:34px 0 8px;color:var(--jrv-ink);font-family:inherit}
.jrv-journey *{box-sizing:border-box}
.jrv-journey-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:0 0 24px;padding:0 4px}
.jrv-journey-intro h3{margin:4px 0 8px;font-size:clamp(1.55rem,3vw,2.65rem);line-height:1.05;color:var(--jrv-deep);letter-spacing:-.035em}
.jrv-journey-intro p{max-width:820px;margin:0;color:#496268;font-size:.98rem;line-height:1.65}
.jrv-journey-kicker{color:var(--jrv-coral);font-size:.72rem;font-weight:900;letter-spacing:.16em}
.jrv-journey-ai-badge{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;padding:9px 13px;border:1px solid #b9ddd8;border-radius:999px;background:#effbf8;color:#17685f;font-size:.72rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}
.jrv-journey-ai-badge i{width:8px;height:8px;border-radius:50%;background:#b7c3c2;box-shadow:0 0 0 4px rgba(183,195,194,.18)}
.jrv-journey-ai-badge.is-active i{background:#27ad75;box-shadow:0 0 0 4px rgba(39,173,117,.16)}
.jrv-journey-ai-badge.is-waiting i{background:var(--jrv-gold);animation:jrv-pulse 1.2s ease-in-out infinite}
.jrv-journey-board{position:relative;display:grid;grid-template-columns:minmax(255px,340px) minmax(420px,1fr) minmax(255px,340px);gap:clamp(22px,4vw,70px);align-items:start;padding:clamp(18px,3vw,34px);border:1px solid rgba(8,127,123,.15);border-radius:34px;background:radial-gradient(circle at 50% 12%,rgba(77,201,197,.14),transparent 32%),linear-gradient(145deg,#fafffe 0%,#f6fbf9 55%,#fff9ed 100%);box-shadow:0 24px 70px rgba(9,58,65,.1);overflow:hidden}
.jrv-journey-board:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(8,127,123,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(8,127,123,.035) 1px,transparent 1px);background-size:28px 28px;mask-image:linear-gradient(to bottom,black,transparent 72%)}
.jrv-journey-city-card{position:relative;z-index:2;min-height:540px;padding:22px;border:1px solid rgba(12,78,82,.14);border-radius:25px;background:rgba(255,255,255,.94);box-shadow:0 14px 35px rgba(12,50,55,.11);backdrop-filter:blur(12px)}
.jrv-journey-origin{border-top:5px solid var(--jrv-coral)}
.jrv-journey-destination{border-top:5px solid var(--jrv-teal)}
.jrv-journey-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.jrv-journey-card-label{display:inline-flex;padding:6px 9px;border-radius:8px;background:#edf5f3;color:#3e6668;font-size:.65rem;font-weight:900;letter-spacing:.16em}
.jrv-journey-city-card h4{margin:12px 0 2px;color:var(--jrv-deep);font-size:clamp(1.35rem,2.2vw,2rem);line-height:1.1;letter-spacing:-.025em}
.jrv-journey-place{margin:0 0 18px;color:#708084;font-size:.85rem}
.jrv-station-clock{position:relative;flex:0 0 auto;width:92px;height:92px;border:7px solid #183d41;border-radius:50%;background:radial-gradient(circle,#fffdf4 0 59%,#eee4c9 60% 64%,#fffdf4 65%);box-shadow:inset 0 0 0 2px #b98b42,0 5px 0 #092f34,0 10px 22px rgba(7,48,52,.22);font-family:Georgia,serif;color:#17373a}
.jrv-clock-hand{position:absolute;left:50%;bottom:50%;display:block;transform-origin:50% 100%;border-radius:10px;background:#163a3e}.jrv-clock-hour{width:4px;height:21px;margin-left:-2px}.jrv-clock-minute{width:3px;height:29px;margin-left:-1.5px}.jrv-clock-second{width:1px;height:31px;background:var(--jrv-coral)}.jrv-station-clock>b{position:absolute;left:50%;top:50%;width:8px;height:8px;transform:translate(-50%,-50%);border:2px solid #fff;border-radius:50%;background:#173b3f;z-index:3}
.jrv-origin-actions{display:grid;gap:8px;margin:8px 0 18px}.jrv-origin-actions label{font-size:.7rem;font-weight:800;color:#345b5e}.jrv-origin-actions input{width:100%;padding:11px 12px;border:1px solid #bfd1cf;border-radius:12px;background:#fff;color:var(--jrv-ink);font:inherit;font-size:.88rem;outline:none}.jrv-origin-actions input:focus{border-color:var(--jrv-teal);box-shadow:0 0 0 3px rgba(8,127,123,.13)}
.jrv-origin-gps{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:11px 14px;border:0;border-radius:12px;background:linear-gradient(135deg,var(--jrv-teal),#0aa99d);box-shadow:0 7px 16px rgba(8,127,123,.18);color:#fff;font:inherit;font-size:.82rem;font-weight:850;cursor:pointer}.jrv-origin-gps:hover{transform:translateY(-1px);filter:saturate(1.1)}.jrv-origin-gps:disabled{cursor:wait;opacity:.68;transform:none}.jrv-origin-divider{display:flex;align-items:center;gap:9px;color:#859696;font-size:.66rem;text-transform:uppercase;letter-spacing:.1em}.jrv-origin-divider:before,.jrv-origin-divider:after{content:"";height:1px;background:#dae3e1;flex:1}
.jrv-origin-results{position:relative;z-index:5;display:grid;gap:4px}.jrv-origin-results:empty{display:none}.jrv-origin-results button{width:100%;padding:9px 10px;border:1px solid #d5e2df;border-radius:9px;background:#fff;color:#244b50;text-align:left;font:inherit;font-size:.78rem;cursor:pointer}.jrv-origin-results button:hover,.jrv-origin-results button:focus{border-color:var(--jrv-teal);background:#eefaf7}
.jrv-journey-facts{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:0}.jrv-journey-facts>div{min-width:0;padding:10px;border:1px solid #e1e9e6;border-radius:11px;background:#fbfdfc}.jrv-journey-facts dt{margin-bottom:4px;color:#7a8d8f;font-size:.62rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.jrv-journey-facts dd{margin:0;color:#193f43;font-size:.78rem;font-weight:750;line-height:1.3;overflow-wrap:anywhere}
.jrv-journey-privacy{display:flex;gap:8px;margin:15px 0 0;color:#667c7e;font-size:.67rem;line-height:1.45}.jrv-journey-privacy span{color:var(--jrv-teal)}
.jrv-alert-panel{display:flex;gap:11px;margin-top:14px;padding:12px;border:1px solid #dce8e5;border-radius:14px;background:#f7fbfa}.jrv-alert-panel.has-alert{border-color:#f1b7a5;background:#fff4ef}.jrv-alert-icon{display:grid;place-items:center;flex:0 0 auto;width:29px;height:29px;border-radius:50%;background:#c6d8d4;color:#16464b;font-weight:950}.has-alert .jrv-alert-icon{background:var(--jrv-coral);color:#fff}.jrv-alert-panel strong{display:block;font-size:.74rem;line-height:1.35}.jrv-alert-panel p{margin:4px 0;color:#667a7b;font-size:.67rem;line-height:1.35}.jrv-alert-panel a{color:#0a756f;font-size:.68rem;font-weight:800;text-decoration:none}.jrv-alert-panel a:hover{text-decoration:underline}
.jrv-journey-routes{position:relative;z-index:2;display:grid;gap:16px;padding-top:25px}.jrv-journey-loader{display:grid;place-items:center;min-height:90px;padding:14px;border:1px dashed #9dbfba;border-radius:18px;background:rgba(255,255,255,.6);text-align:center}.jrv-journey-loader span{width:22px;height:22px;margin-bottom:7px;border:3px solid #cfe3df;border-top-color:var(--jrv-teal);border-radius:50%}.jrv-journey-loader.is-loading span{animation:jrv-spin .8s linear infinite}.jrv-journey-loader strong{color:#31595c;font-size:.84rem}.jrv-journey-loader small{color:#789091;font-size:.68rem}.jrv-journey.is-ready .jrv-journey-loader{display:none}
.jrv-route-lane{position:relative;padding:14px 15px;border:1px solid rgba(7,84,88,.13);border-radius:18px;background:rgba(255,255,255,.88);box-shadow:0 8px 22px rgba(16,65,69,.07);overflow:hidden}.jrv-route-lane header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.jrv-route-lane header strong{color:#355a5d;font-size:.72rem;text-align:right}.jrv-route-mode{padding:5px 8px;border-radius:7px;background:#e9f4f1;color:#1b6664;font-size:.62rem;font-weight:950;letter-spacing:.12em}
.jrv-route-flightpath{position:relative;height:82px;margin:0 4px}.jrv-route-flightpath:before{content:"";position:absolute;left:2%;right:2%;top:48%;height:54px;border-top:2px dashed rgba(18,123,120,.35);border-radius:50% 50% 0 0;transform:translateY(-6px)}
.jrv-route-vehicle{position:absolute;z-index:3;display:grid;place-items:center;color:var(--jrv-deep);filter:drop-shadow(0 4px 4px rgba(8,55,60,.2))}.jrv-route-vehicle--plane{left:2%;top:34%;font-size:2rem;transform:rotate(8deg)}
.jrv-flight-smoke{position:absolute;left:4%;top:54%;width:0;height:2px;border-radius:10px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.2),rgba(255,255,255,.9) 8px,rgba(97,180,177,.32) 11px,transparent 17px);filter:drop-shadow(0 1px 2px rgba(12,92,91,.28))}.jrv-flight-smoke--one{transform:translateY(-5px)}.jrv-flight-smoke--two{transform:translateY(5px)}
.jrv-route-time-cloud{position:absolute;inset:0;pointer-events:none}.jrv-route-time-chip{position:absolute;top:var(--chip-top,7px);left:var(--chip-left,20%);padding:4px 7px;border:1px solid #b8d8d3;border-radius:999px;background:#fff;color:#145b5d;box-shadow:0 3px 10px rgba(17,83,84,.1);font-size:.58rem;font-weight:900;opacity:0;transform:translateY(5px)}
.jrv-route-road{position:relative;height:42px;margin:2px 4px 6px;border-bottom:7px double #687a79}.jrv-route-road:before{content:"";position:absolute;left:0;right:0;bottom:-5px;border-bottom:1px dashed #f5df8b}.jrv-route-vehicle--bus{left:1%;bottom:2px;width:34px;height:20px;border-radius:5px 5px 2px 2px;background:var(--jrv-coral);color:#fff;font-size:.7rem}.jrv-route-vehicle--bus:after{content:"●  ●";position:absolute;bottom:-8px;color:#183b3f;font-size:.55rem;letter-spacing:9px;white-space:nowrap}.jrv-route-road>div{position:absolute;inset:0}.jrv-route-road .jrv-route-time-chip{top:0}.jrv-route-rail{position:relative;height:38px;margin-bottom:7px;background:repeating-linear-gradient(90deg,#6e7775 0 14px,#d7dfdc 14px 20px) left bottom/100% 6px no-repeat}.jrv-route-vehicle--train{left:2%;bottom:2px;width:38px;height:22px;border-radius:8px 8px 3px 3px;background:#277477;color:#d9f4ee;font-size:.7rem}.jrv-route-road--car{height:35px}.jrv-route-vehicle--car{left:2%;bottom:3px;width:30px;height:16px;border-radius:9px 12px 4px 4px;background:var(--jrv-gold);color:#7b4a17;font-size:.55rem}
.jrv-journey.is-animating .jrv-route-vehicle--plane{animation:jrv-plane-trip 30s cubic-bezier(.35,.05,.2,1) both}.jrv-journey.is-animating .jrv-flight-smoke{animation:jrv-smoke 30s cubic-bezier(.35,.05,.2,1) both}.jrv-journey.is-animating .jrv-route-vehicle--bus,.jrv-journey.is-animating .jrv-route-vehicle--train,.jrv-journey.is-animating .jrv-route-vehicle--car{animation:jrv-ground-trip 30s ease-in-out both}.jrv-journey.is-animating .jrv-route-time-chip{animation:jrv-chip-in .55s ease-out var(--chip-delay,2s) both}
.jrv-route-results{color:#607476;font-size:.68rem;line-height:1.45}.jrv-route-results p{margin:5px 0}.jrv-route-results ul{display:grid;gap:5px;margin:7px 0 0;padding:0;list-style:none}.jrv-route-results li{display:flex;align-items:flex-start;justify-content:space-between;gap:9px;padding:6px 8px;border-radius:8px;background:#f1f7f5}.jrv-route-results time{flex:0 0 auto;color:#075e5c;font-weight:950}.jrv-route-results span{color:#405f61;text-align:right}.jrv-route-source{display:inline-flex;margin-top:6px;color:#0a716d;font-weight:800;text-decoration:none}.jrv-route-source:hover{text-decoration:underline}.jrv-route-tool-link{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:11px;background:var(--jrv-deep);color:#fff!important;font-size:.73rem;font-weight:850;text-decoration:none!important}.jrv-route-tool-link:hover{background:var(--jrv-teal)}
.jrv-journey-sourcebar{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:8px 24px;align-items:center;margin:17px 5px 0;color:#5e7476;font-size:.72rem}.jrv-journey-sourcebar p{margin:0;font-weight:750}.jrv-journey-sourcebar>div{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.jrv-journey-sourcebar a{color:#08716e;font-weight:800;text-decoration:none}.jrv-journey-sourcebar a:hover{text-decoration:underline}.jrv-journey-sourcebar small{grid-column:1/-1;color:#7c8b8d;font-size:.64rem}.jrv-journey-noscript{padding:12px;border:1px solid #edcba4;border-radius:10px;background:#fff7e8}
@keyframes jrv-plane-trip{0%{left:2%;top:44%;transform:rotate(1deg)}35%{top:11%;transform:rotate(-8deg)}70%{top:13%;transform:rotate(6deg)}100%{left:91%;top:42%;transform:rotate(13deg)}}
@keyframes jrv-smoke{0%{width:0;opacity:0}8%{opacity:.9}100%{width:88%;opacity:.72}}
@keyframes jrv-ground-trip{0%{left:1%}100%{left:90%}}
@keyframes jrv-chip-in{to{opacity:1;transform:translateY(0)}}
@keyframes jrv-spin{to{transform:rotate(360deg)}}
@keyframes jrv-pulse{50%{opacity:.35;transform:scale(.82)}}
@media(max-width:1120px){.jrv-journey-board{grid-template-columns:minmax(235px,300px) minmax(340px,1fr) minmax(235px,300px);gap:20px;padding:22px}.jrv-journey-city-card{padding:17px}.jrv-station-clock{width:78px;height:78px;border-width:6px}.jrv-journey-facts{grid-template-columns:1fr}.jrv-journey-city-card{min-height:0}}
@media(max-width:900px){.jrv-journey-board{grid-template-columns:1fr 1fr}.jrv-journey-routes{grid-column:1/-1;grid-row:2;padding-top:0}.jrv-journey-origin{grid-column:1}.jrv-journey-destination{grid-column:2}.jrv-journey-facts{grid-template-columns:1fr 1fr}.jrv-journey-sourcebar{grid-template-columns:1fr}.jrv-journey-sourcebar>div{justify-content:flex-start}.jrv-journey-sourcebar small{grid-column:auto}}
@media(max-width:620px){.jrv-journey-intro{align-items:flex-start;flex-direction:column}.jrv-journey-board{display:flex;flex-direction:column;padding:14px;border-radius:24px}.jrv-journey-city-card,.jrv-journey-routes{width:100%}.jrv-journey-routes{order:2}.jrv-journey-destination{order:3}.jrv-journey-facts{grid-template-columns:1fr 1fr}.jrv-route-lane header{align-items:flex-start;flex-direction:column}.jrv-route-lane header strong{text-align:left}.jrv-station-clock{width:86px;height:86px}.jrv-journey-sourcebar>div{gap:6px 12px}}
@media(max-width:390px){.jrv-journey-facts{grid-template-columns:1fr}.jrv-journey-city-card{padding:15px}.jrv-station-clock{width:76px;height:76px}}
@media(prefers-reduced-motion:reduce){.jrv-journey *{scroll-behavior:auto!important}.jrv-journey.is-animating .jrv-route-vehicle,.jrv-journey.is-animating .jrv-flight-smoke,.jrv-journey.is-animating .jrv-route-time-chip,.jrv-journey-ai-badge i{animation:none!important}.jrv-route-time-chip{opacity:1;transform:none}}

/* Rota Viva 2: palco aberto, veículos vetoriais e informações no rastro. */
.jrv-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.jrv-journey-board{
  --jrv-board-pad:clamp(22px,2.8vw,40px);
  --jrv-card-w:clamp(340px,29vw,410px);
  --jrv-half-card:clamp(170px,14.5vw,205px);
  grid-template-columns:var(--jrv-card-w) var(--jrv-card-w);
  justify-content:space-between;
  min-height:900px;
  padding:var(--jrv-board-pad);
  border-radius:36px;
  background:radial-gradient(circle at 50% 16%,rgba(77,201,197,.16),transparent 35%),linear-gradient(145deg,#fafffe 0%,#f3fbf9 54%,#fff8e9 100%);
}
.jrv-journey-board:after{content:"";position:absolute;left:28%;right:28%;top:9%;height:48%;pointer-events:none;background:radial-gradient(ellipse,rgba(255,255,255,.72),transparent 70%);filter:blur(18px)}
.jrv-journey-city-card{z-index:2;min-width:0;min-height:810px;padding:clamp(23px,2vw,30px);border-radius:28px;background:rgba(255,255,255,.96);box-shadow:0 16px 38px rgba(12,50,55,.12);backdrop-filter:blur(14px)}
.jrv-journey-origin{border-top-width:6px}
.jrv-journey-destination{border-top-width:6px}
.jrv-journey-card-top{gap:18px}
.jrv-journey-card-label{padding:7px 10px;border-radius:9px;font-size:.67rem;letter-spacing:.17em}
.jrv-journey-city-card h4{margin:16px 0 3px;font-size:clamp(1.65rem,2.35vw,2.25rem);line-height:1.08;letter-spacing:-.035em;overflow-wrap:normal;word-break:normal}
.jrv-journey-place{margin-bottom:21px;font-size:.9rem}
.jrv-station-clock{width:98px;height:98px;box-shadow:inset 0 0 0 2px #b98b42,0 5px 0 #092f34,0 11px 24px rgba(7,48,52,.22)}
.jrv-origin-actions{gap:9px;margin-bottom:21px}
.jrv-origin-actions label{font-size:.74rem;font-weight:850}
.jrv-origin-actions input{padding:12px 13px;font-size:.9rem}
.jrv-origin-gps{padding:12px 14px;font-size:.84rem}
.jrv-origin-results{z-index:9}
.jrv-journey-facts{grid-template-columns:1fr;gap:8px;border:0}
.jrv-journey-facts>div{position:relative;display:grid;grid-template-columns:minmax(108px,38%) minmax(0,1fr);align-items:center;gap:13px;min-width:0;padding:12px 13px 12px 16px;border:1px solid rgba(8,127,123,.12);border-radius:13px;background:linear-gradient(135deg,#fbfefd,#f1f9f7);box-shadow:0 7px 18px rgba(12,70,73,.045);overflow:hidden}
.jrv-journey-facts>div::before{position:absolute;top:11px;bottom:11px;left:0;width:3px;border-radius:0 999px 999px 0;background:linear-gradient(180deg,#4dc9c5,#087f7b);content:""}
.jrv-journey-origin .jrv-journey-facts>div::before{background:linear-gradient(180deg,#ff9a76,#ef754d)}
.jrv-journey-facts dt{margin:0;color:#6d8384;font-size:.64rem;font-weight:900;letter-spacing:.07em;line-height:1.35;overflow-wrap:normal;text-transform:uppercase;word-break:normal}
.jrv-journey-facts dd{min-width:0;margin:0;color:#163f43;font-size:.83rem;font-weight:800;line-height:1.42;text-align:right;overflow-wrap:normal;word-break:normal;hyphens:none}
.jrv-journey-privacy{margin-top:17px;font-size:.7rem;line-height:1.5}
.jrv-alert-panel{margin-top:17px;padding:13px;border-radius:15px}

.jrv-journey-routes{position:absolute;left:calc(var(--jrv-board-pad) + var(--jrv-half-card));right:calc(var(--jrv-board-pad) + var(--jrv-half-card));top:var(--jrv-board-pad);bottom:var(--jrv-board-pad);z-index:auto;display:block;padding:0;pointer-events:none}
.jrv-journey-loader{position:absolute;z-index:8;left:50%;top:49%;display:grid;place-items:center;width:min(340px,70%);min-height:0;padding:0;border:0;border-radius:0;background:transparent;transform:translate(-50%,-50%);text-align:center;color:#476568;transition:opacity .25s ease}
.jrv-journey-loader span{width:26px;height:26px;margin-bottom:8px;background:rgba(255,255,255,.72);box-shadow:0 0 0 8px rgba(255,255,255,.5)}
.jrv-journey.is-ready .jrv-journey-loader{display:grid;opacity:0;visibility:hidden}
.jrv-route-lane{position:absolute;left:0;right:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible;pointer-events:none}
.jrv-route-plane{top:0;height:59%}
.jrv-route-bus{top:58%;height:14%}
.jrv-route-train{top:71%;height:14%}
.jrv-route-car{top:84%;height:13%}
.jrv-route-head,.jrv-route-lane header{position:absolute;z-index:5;left:22%;right:22%;top:0;display:flex;align-items:center;justify-content:center;gap:9px;min-width:0;margin:0;color:#355a5d;text-align:center}
.jrv-route-head strong,.jrv-route-lane header strong{min-width:0;font-size:.74rem;line-height:1.35;text-align:center;overflow-wrap:normal;word-break:normal}
.jrv-route-mode{flex:0 0 auto;padding:5px 8px;border:1px solid rgba(8,127,123,.1);border-radius:8px;background:rgba(233,244,241,.92);box-shadow:0 3px 10px rgba(15,78,81,.07)}
.jrv-route-canvas{position:absolute;inset:0}
.jrv-route-caption{position:absolute;z-index:5;left:22%;right:22%;bottom:0;color:#607476;font-size:.64rem;line-height:1.38;text-align:center;pointer-events:auto}
.jrv-route-caption p{margin:0}
.jrv-route-caption .jrv-route-source{margin-left:8px}
.jrv-route-head>.jrv-route-caption{left:0;right:0;top:calc(100% + 5px);bottom:auto}
.jrv-route-source{display:inline-flex;color:#0a716d;font-weight:850;text-decoration:none;pointer-events:auto}
.jrv-route-source:hover{text-decoration:underline}

.jrv-flight-trails{position:absolute;z-index:1;inset:0;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 3px 3px rgba(52,141,143,.14))}
.jrv-route-flightpath{height:auto;margin:0}
.jrv-route-flightpath:before{content:none}
.jrv-flight-trail{fill:none;stroke:rgba(255,255,255,.94);stroke-width:7;stroke-linecap:round;stroke-dasharray:2 2.7;stroke-dashoffset:0;vector-effect:non-scaling-stroke}
.jrv-flight-trail--two{stroke:rgba(139,210,209,.7);stroke-width:5}
.jrv-route-time-cloud{position:absolute;z-index:5;inset:0;pointer-events:none}
.jrv-route-time-chip{position:absolute;z-index:5;left:var(--chip-left,50%);top:var(--chip-top,50%);max-width:150px;padding:5px 9px;border:1px solid rgba(153,200,196,.78);border-radius:999px;background:rgba(255,255,255,.94);color:#145b5d;box-shadow:0 5px 15px rgba(17,83,84,.14),0 0 18px rgba(255,255,255,.78);font-size:.62rem;font-weight:900;line-height:1.15;white-space:nowrap;opacity:1;transform:translate(-50%,-50%);backdrop-filter:blur(7px)}
.jrv-route-time-chip:before,.jrv-route-time-chip:after{content:"";position:absolute;z-index:-1;border-radius:50%;background:rgba(255,255,255,.78)}
.jrv-route-time-chip:before{left:-9px;top:50%;width:14px;height:9px;transform:translateY(-50%)}
.jrv-route-time-chip:after{right:-7px;top:22%;width:11px;height:7px}
.jrv-route-vehicle{position:absolute;z-index:7;display:block;color:inherit;opacity:0;filter:drop-shadow(0 10px 9px rgba(6,49,54,.24));will-change:left,top}
.jrv-route-vehicle svg{display:block;width:100%;height:auto;overflow:visible}
.jrv-vehicle-3d{display:block;transform-style:preserve-3d;will-change:transform}
.jrv-vehicle-shadow{fill:rgba(9,43,48,.2);filter:blur(3px)}
.jrv-route-vehicle--plane{left:100%;top:91%;width:clamp(92px,9vw,126px);font-size:0;transform:translate(-50%,-50%)}
.jrv-route-vehicle--plane .jrv-vehicle-3d{transform:perspective(320px) rotateX(9deg) rotateY(-7deg) rotateZ(9deg)}
.jrv-route-ground{top:18px;bottom:12px}
.jrv-route-roadway{position:absolute;z-index:1;left:0;right:0;top:56%;height:18px;border:1px solid rgba(36,63,66,.55);background:linear-gradient(#687979,#34494c);box-shadow:0 7px 12px rgba(19,52,55,.15);transform:perspective(160px) rotateX(62deg);transform-origin:center center}
.jrv-route-roadway:after{content:"";position:absolute;left:1%;right:1%;top:50%;border-top:2px dashed rgba(255,226,134,.95)}
.jrv-route-railway{position:absolute;z-index:1;left:0;right:0;top:56%;height:13px;border-top:3px solid #6c7777;border-bottom:3px solid #6c7777;background:repeating-linear-gradient(90deg,transparent 0 13px,#87908e 13px 18px,transparent 18px 28px);box-shadow:0 6px 10px rgba(19,52,55,.14);transform:perspective(160px) rotateX(58deg)}
.jrv-ground-smoke{position:absolute;z-index:2;left:0;top:49%;width:100%;height:5px;border-radius:50%;background:repeating-linear-gradient(90deg,rgba(255,255,255,.15) 0 8px,rgba(255,255,255,.88) 9px 17px,rgba(112,181,181,.32) 18px 23px,transparent 24px 32px);filter:drop-shadow(0 1px 4px rgba(64,140,141,.2));transform-origin:left center}
.jrv-route-vehicle--bus,.jrv-route-vehicle--train,.jrv-route-vehicle--car{left:100%;top:56%;bottom:auto;width:auto;height:auto;background:transparent;border-radius:0;font-size:0;letter-spacing:normal;transform:translate(-50%,-56%)}
.jrv-route-vehicle--bus:after{content:none}
.jrv-route-vehicle--bus{width:clamp(88px,7.6vw,112px)}
.jrv-route-vehicle--train{width:clamp(94px,8vw,118px)}
.jrv-route-vehicle--car{width:clamp(76px,6.5vw,98px)}
.jrv-route-vehicle--bus .jrv-vehicle-3d,.jrv-route-vehicle--train .jrv-vehicle-3d,.jrv-route-vehicle--car .jrv-vehicle-3d{transform:perspective(300px) rotateY(-9deg) rotateX(4deg)}
.jrv-route-car-action{top:51%;left:48%;max-width:none;color:#fff!important;background:linear-gradient(135deg,var(--jrv-deep),#086f70);border-color:rgba(255,255,255,.42);font-size:.65rem;text-decoration:none!important;pointer-events:auto}
.jrv-route-car-action:hover{background:linear-gradient(135deg,var(--jrv-teal),#0aa99d);transform:translate(-50%,-53%)}

.jrv-journey.is-animating .jrv-route-vehicle--plane{animation:jrv-plane-trip-v2 30s cubic-bezier(.3,.05,.22,1) both}
.jrv-journey.is-animating .jrv-route-vehicle--plane .jrv-vehicle-3d{animation:jrv-plane-bank-v2 30s cubic-bezier(.3,.05,.22,1) both}
.jrv-journey.is-animating .jrv-flight-trail{animation:jrv-flight-smoke-v2 30s cubic-bezier(.3,.05,.22,1) both}
.jrv-journey.is-animating .jrv-route-vehicle--bus,.jrv-journey.is-animating .jrv-route-vehicle--train,.jrv-journey.is-animating .jrv-route-vehicle--car{animation:jrv-ground-trip-v2 30s cubic-bezier(.24,.05,.2,1) both}
.jrv-journey.is-animating .jrv-route-vehicle--bus .jrv-vehicle-3d,.jrv-journey.is-animating .jrv-route-vehicle--train .jrv-vehicle-3d,.jrv-journey.is-animating .jrv-route-vehicle--car .jrv-vehicle-3d{animation:jrv-ground-depth-v2 30s ease-in-out both}
.jrv-journey.is-animating .jrv-ground-smoke{animation:jrv-ground-smoke-v2 30s cubic-bezier(.24,.05,.2,1) both}
.jrv-journey.is-animating .jrv-route-time-chip{animation:jrv-chip-in-v2 .62s cubic-bezier(.2,.8,.2,1) var(--chip-delay,2s) both}
.jrv-journey.is-animating .jrv-route-car-action{--chip-delay:7s}

@keyframes jrv-plane-trip-v2{0%{left:0;top:91%;opacity:0}3%{opacity:1}14%{left:12%;top:65%}27%{left:26%;top:50%}50%{left:50%;top:36%}73%{left:74%;top:50%}86%{left:88%;top:65%}96%{opacity:1}100%{left:100%;top:91%;opacity:0}}
@keyframes jrv-plane-bank-v2{0%{transform:perspective(320px) rotateX(9deg) rotateY(-9deg) rotateZ(-9deg) scale(.88)}30%{transform:perspective(320px) rotateX(13deg) rotateY(-5deg) rotateZ(-13deg) scale(1)}50%{transform:perspective(320px) rotateX(5deg) rotateY(0) rotateZ(0) scale(1.08)}72%{transform:perspective(320px) rotateX(12deg) rotateY(6deg) rotateZ(12deg) scale(1)}100%{transform:perspective(320px) rotateX(9deg) rotateY(9deg) rotateZ(8deg) scale(.88)}}
@keyframes jrv-flight-smoke-v2{0%{stroke-dashoffset:100;opacity:0}5%{opacity:.92}100%{stroke-dashoffset:0;opacity:.9}}
@keyframes jrv-ground-trip-v2{0%{left:0;opacity:0}3%{opacity:1}96%{opacity:1}100%{left:100%;opacity:0}}
@keyframes jrv-ground-depth-v2{0%,100%{transform:perspective(300px) rotateY(-10deg) rotateX(4deg) translateY(0) scale(.92)}45%{transform:perspective(300px) rotateY(-4deg) rotateX(2deg) translateY(-3px) scale(1.05)}55%{transform:perspective(300px) rotateY(2deg) rotateX(2deg) translateY(-3px) scale(1.05)}}
@keyframes jrv-ground-smoke-v2{0%{width:0;opacity:0}6%{opacity:.85}100%{width:100%;opacity:.72}}
@keyframes jrv-chip-in-v2{from{opacity:0;filter:blur(3px);transform:translate(-50%,-30%) scale(.72)}to{opacity:1;filter:blur(0);transform:translate(-50%,-50%) scale(1)}}

@media(max-width:1180px){
  .jrv-journey-board{--jrv-board-pad:22px;--jrv-card-w:clamp(320px,31vw,360px);--jrv-half-card:clamp(160px,15.5vw,180px)}
  .jrv-journey-city-card{padding:22px}
  .jrv-station-clock{width:88px;height:88px;border-width:6px}
  .jrv-route-head,.jrv-route-lane header,.jrv-route-caption{left:25%;right:25%}
  .jrv-route-head>.jrv-route-caption{left:-12%;right:-12%}
  .jrv-route-time-chip{font-size:.58rem;padding:4px 7px}
}
@media(max-width:980px){
  .jrv-journey-board{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;min-height:0;padding:22px}
  .jrv-journey-city-card{min-height:0}
  .jrv-journey-routes{position:relative;left:auto;right:auto;top:auto;bottom:auto;grid-column:1/-1;grid-row:2;height:690px;margin:4px -6px 0}
  .jrv-journey-origin{grid-column:1;grid-row:1}
  .jrv-journey-destination{grid-column:2;grid-row:1}
  .jrv-route-head,.jrv-route-lane header,.jrv-route-caption{left:16%;right:16%}
}
@media(max-width:680px){
  .jrv-journey-board{display:flex;flex-direction:column;padding:14px;border-radius:25px}
  .jrv-journey-city-card,.jrv-journey-routes{width:100%}
  .jrv-journey-origin{order:1}
  .jrv-journey-routes{order:2;height:760px;margin:0}
  .jrv-journey-destination{order:3}
  .jrv-route-plane{height:54%}
  .jrv-route-bus{top:54%;height:18%}
  .jrv-route-train{top:72%;height:14%}
  .jrv-route-car{top:86%;height:14%}
  .jrv-route-ground{top:32px;bottom:13px}
  .jrv-route-head,.jrv-route-lane header,.jrv-route-caption{left:7%;right:7%}
  .jrv-route-head strong,.jrv-route-lane header strong{font-size:.68rem}
  .jrv-route-bus .jrv-route-head strong,.jrv-route-train .jrv-route-head strong,.jrv-route-car .jrv-route-head strong{display:none}
  .jrv-route-head>.jrv-route-caption{left:0;right:0}
  .jrv-route-time-chip{max-width:132px;font-size:.55rem;overflow:visible;text-overflow:clip}
  .jrv-route-car-action{top:64%}
  .jrv-route-vehicle--plane{width:88px}
  .jrv-route-vehicle--bus{width:84px}
  .jrv-route-vehicle--train{width:88px}
  .jrv-route-vehicle--car{width:72px}
}
@media(max-width:410px){
  .jrv-journey-city-card{padding:18px}
  .jrv-station-clock{width:80px;height:80px}
  .jrv-journey-facts>div{grid-template-columns:90px minmax(0,1fr);gap:10px;padding:11px 10px 11px 14px}
  .jrv-journey-facts dt{font-size:.6rem}
  .jrv-journey-facts dd{font-size:.78rem}
  .jrv-route-head,.jrv-route-lane header{left:3%;right:3%;gap:6px}
  .jrv-route-mode{font-size:.56rem}
}
@media(prefers-reduced-motion:reduce){
  .jrv-journey.is-animating .jrv-route-vehicle,.jrv-journey.is-animating .jrv-vehicle-3d,.jrv-journey.is-animating .jrv-flight-trail,.jrv-journey.is-animating .jrv-ground-smoke,.jrv-journey.is-animating .jrv-route-time-chip{animation:none!important}
  .jrv-route-time-chip{opacity:1;filter:none;transform:translate(-50%,-50%)}
}

/* Rota Viva 3: relógios históricos sobrepostos e câmbio automático nos cartões. */
.jrv-journey-board{
  --jrv-clock-size:184px;
  min-height:1000px;
}
.jrv-journey-city-card{
  margin-top:calc(var(--jrv-clock-size)/2);
  min-height:830px;
  padding-top:calc(var(--jrv-clock-size)/2 + 34px);
}
.jrv-journey-card-top{position:static;min-height:0}
.jrv-journey-card-label{position:absolute;z-index:5;top:24px;left:clamp(23px,2vw,30px)}
.jrv-station-clock{
  position:absolute;
  z-index:6;
  top:0;
  left:50%;
  width:var(--jrv-clock-size);
  height:var(--jrv-clock-size);
  border:0;
  border-radius:50%;
  background:transparent;
  box-shadow:0 9px 0 rgba(24,12,5,.2),0 20px 34px rgba(31,17,8,.28);
  color:#080706;
  transform:translate(-50%,-50%);
  overflow:visible;
}
.jrv-station-clock:before{content:none}
.jrv-clock-face{display:block;width:100%;height:100%;overflow:visible;border-radius:50%}
.jrv-clock-ticks line{stroke:#11100e;stroke-width:1.35}
.jrv-clock-ticks line:nth-child(5n+1){stroke-width:2.4}
.jrv-clock-cardinals{fill:#11100e}
.jrv-clock-romans text{
  fill:#080706;
  font-family:"Times New Roman",Georgia,serif;
  font-size:27px;
  font-stretch:condensed;
  font-weight:700;
  text-anchor:middle;
  dominant-baseline:middle;
}
.jrv-clock-minutes text{
  fill:#17110b;
  font-family:Georgia,"Times New Roman",serif;
  font-size:10px;
  font-weight:700;
  text-anchor:middle;
  dominant-baseline:middle;
}
.jrv-clock-hand{
  position:absolute;
  z-index:8;
  left:50%;
  bottom:50%;
  display:block;
  border-radius:2px 2px 6px 6px;
  background:#070706;
  box-shadow:1px 2px 2px rgba(50,24,8,.35);
  transform-origin:50% 100%;
}
.jrv-clock-hour{width:7px;height:26%;margin-left:-3.5px}
.jrv-clock-minute{width:5px;height:36%;margin-left:-2.5px}
.jrv-clock-second{width:1.5px;height:39%;margin-left:-.75px;background:#6f3516}
.jrv-station-clock>.jrv-clock-pin{
  position:absolute;
  z-index:9;
  left:50%;
  top:50%;
  width:13px;
  height:13px;
  border:2px solid #070706;
  border-radius:50%;
  background:#6f3516;
  box-shadow:0 1px 3px rgba(0,0,0,.45);
  transform:translate(-50%,-50%);
}
.jrv-currency-lines{display:grid;justify-items:end;gap:5px;margin-top:8px;padding-top:8px;border-top:1px solid #e2e9e6}
.jrv-currency-lines[hidden]{display:none}
.jrv-currency-lines strong{display:block;color:#0a6764;font-size:.76rem;line-height:1.3}
.jrv-currency-lines small{display:block;color:#738486;font-size:.61rem;font-weight:650;line-height:1.35}
.jrv-currency-lines a{color:#08746f;font-size:.63rem;font-weight:850;text-decoration:none}
.jrv-currency-lines a:hover{text-decoration:underline}

@media(max-width:1180px){
  .jrv-journey-board{--jrv-clock-size:166px;min-height:970px}
  .jrv-journey-city-card{min-height:820px;padding-top:calc(var(--jrv-clock-size)/2 + 31px)}
  .jrv-journey-card-label{top:21px;left:22px}
}
@media(max-width:980px){
  .jrv-journey-board{--jrv-clock-size:158px;min-height:0;padding-top:22px}
  .jrv-journey-city-card{min-height:0;padding-top:calc(var(--jrv-clock-size)/2 + 30px)}
}
@media(max-width:680px){
  .jrv-journey-board{--jrv-clock-size:154px;padding-top:14px;gap:20px}
  .jrv-journey-city-card{margin-top:calc(var(--jrv-clock-size)/2);padding-top:calc(var(--jrv-clock-size)/2 + 29px)}
  .jrv-journey-card-label{top:18px;left:18px}
  .jrv-currency-lines{justify-items:start}
  .jrv-city-fact--currency dd{text-align:left}
}
@media(max-width:410px){
  .jrv-journey-board{--jrv-clock-size:144px}
  .jrv-station-clock{width:var(--jrv-clock-size);height:var(--jrv-clock-size);border-width:0}
  .jrv-clock-romans text{font-size:26px}
  .jrv-clock-minutes text{font-size:9.5px}
}

/* Rota Viva 4: pesquisa rodoviária estruturada e distância total de carro. */
.jrv-city-fact--road-distance dd{display:grid;justify-items:end;gap:5px}
.jrv-city-fact--road-distance [data-road-distance-value]{color:#193f43;font-size:.83rem;font-weight:750;letter-spacing:0;line-height:1.42;text-transform:none}
.jrv-city-fact--road-distance a{color:#08746f;font-size:.63rem;font-weight:850;line-height:1.3;text-decoration:none}
.jrv-city-fact--road-distance a:hover{text-decoration:underline}
.jrv-bus-research-meta{display:block;margin-top:4px;color:#0b6e69;font-size:.66rem;font-weight:900;line-height:1.3}
.jrv-route-bus .jrv-route-caption{display:block;max-width:430px;margin-inline:auto}
.jrv-route-bus .jrv-route-caption p{display:block;overflow-wrap:normal;word-break:normal}
.jrv-route-bus .jrv-route-source{margin-top:3px}
.jrv-route-bus .jrv-route-time-chip{border-color:rgba(239,117,77,.42);box-shadow:0 5px 15px rgba(129,70,51,.13),0 0 18px rgba(255,255,255,.78)}
@media(max-width:680px){
  .jrv-city-fact--road-distance dd{justify-items:start;text-align:left}
  .jrv-journey-routes{height:900px}
  .jrv-route-plane{height:48%}
  .jrv-route-bus{top:48%;height:30%}
  .jrv-route-train{top:78%;height:10%}
  .jrv-route-car{top:88%;height:12%}
  .jrv-route-bus .jrv-route-ground{top:38px;bottom:48px}
  .jrv-route-bus .jrv-route-caption{font-size:.61rem;line-height:1.32}
  .jrv-route-bus .jrv-route-time-chip{max-width:128px;font-size:.54rem}
  .jrv-route-bus .jrv-route-time-chip:nth-child(odd){left:27%!important}
  .jrv-route-bus .jrv-route-time-chip:nth-child(even){left:73%!important}
  .jrv-route-bus .jrv-route-time-chip:nth-child(1),.jrv-route-bus .jrv-route-time-chip:nth-child(2){top:12%!important}
  .jrv-route-bus .jrv-route-time-chip:nth-child(3),.jrv-route-bus .jrv-route-time-chip:nth-child(4){top:34%!important}
  .jrv-route-bus .jrv-route-time-chip:nth-child(5),.jrv-route-bus .jrv-route-time-chip:nth-child(6){top:56%!important}
  .jrv-route-bus .jrv-route-time-chip:nth-child(7),.jrv-route-bus .jrv-route-time-chip:nth-child(8){top:78%!important}
}

/* Rota Viva 5: consultas separadas do trajeto, sem alterar os cartões da cidade. */
.jrv-route-plane{height:47.5%}
.jrv-route-bus{top:47.5%;height:17.5%}
.jrv-route-train{top:65%;height:17.5%}
.jrv-route-car{top:82.5%;height:17.5%}
.jrv-route-bus .jrv-route-caption,.jrv-route-train .jrv-route-caption{top:29px;bottom:auto}
.jrv-route-bus .jrv-route-ground,.jrv-route-train .jrv-route-ground,.jrv-route-car .jrv-route-ground{top:42px;bottom:47px}
.jrv-route-actions{
  position:absolute;
  z-index:10;
  left:50%;
  bottom:0;
  display:flex;
  justify-content:center;
  gap:8px;
  width:min(280px,calc(100% - 24px));
  transform:translateX(-50%);
  pointer-events:auto;
}
.jrv-route-plane .jrv-route-actions{top:clamp(76px,13%,110px);bottom:auto}
.jrv-route-actions--car{width:min(310px,calc(100% - 24px))}
.jrv-journey .jrv-route-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:1 1 0;
  min-width:0;
  min-height:46px;
  padding:10px 14px;
  border:1px solid #9d350e;
  border-radius:13px;
  background:linear-gradient(145deg,#c24610,#a8320e);
  box-shadow:0 7px 16px rgba(129,49,17,.22),inset 0 1px 0 rgba(255,255,255,.24);
  color:#fff!important;
  font-size:.86rem;
  font-weight:900;
  line-height:1.25;
  text-align:center;
  text-decoration:none!important;
  text-wrap:balance;
  cursor:pointer;
  pointer-events:auto;
  transition:background .18s ease,box-shadow .18s ease,transform .18s ease;
}
.jrv-journey .jrv-route-cta:hover{
  background:linear-gradient(145deg,#bd4312,#a42e0c);
  box-shadow:0 10px 21px rgba(129,49,17,.3),inset 0 1px 0 rgba(255,255,255,.28);
  transform:translateY(-2px);
}
.jrv-journey .jrv-route-cta:focus-visible{
  outline:3px solid #063f43;
  outline-offset:3px;
  box-shadow:0 0 0 6px #fff,0 8px 18px rgba(129,49,17,.24);
}
.jrv-route-actions--car .jrv-route-cta{padding-inline:8px;font-size:.78rem}
.jrv-journey-mobile-actions{display:none}
@media(max-width:980px) and (min-width:681px){
  .jrv-journey-routes{height:850px}
}
@media(max-width:680px){
  .jrv-journey-board{gap:20px}
  .jrv-journey-origin,.jrv-journey-routes{display:none!important}
  .jrv-journey-destination{order:1;width:100%;min-height:0}
  .jrv-journey-mobile-actions{
    position:relative;
    z-index:2;
    display:grid;
    gap:10px;
    width:100%;
    margin-top:14px;
    padding:16px;
    border:1px solid rgba(8,127,123,.16);
    border-radius:20px;
    background:rgba(255,255,255,.95);
    box-shadow:0 11px 28px rgba(12,50,55,.08);
  }
  .jrv-journey-mobile-actions h4{margin:0 0 3px;color:var(--jrv-deep);font-size:1.1rem;line-height:1.25}
  .jrv-journey-mobile-actions .jrv-route-actions{
    position:static;
    display:flex;
    width:100%;
    transform:none;
  }
  .jrv-journey-mobile-actions .jrv-route-cta{width:100%;min-height:50px;font-size:.88rem}
  .jrv-journey-mobile-actions .jrv-route-actions--car .jrv-route-cta{font-size:.8rem}
}
@media(max-width:390px){
  .jrv-journey-mobile-actions{padding:12px}
  .jrv-journey-mobile-actions .jrv-route-actions--car{flex-direction:column}
}
@media(prefers-reduced-motion:reduce){
  .jrv-journey .jrv-route-cta{transition:none}
}
