/* Route animation and ticket controls for Краснодар — Москва. */
.route-hero-v2 .route-kpis dt{font-size:.78rem;font-weight:650}
.route-hero-v2 .route-kpis dd{font-size:clamp(1.25rem,1.8vw,1.62rem);font-weight:700;letter-spacing:-.025em}
.route-hero-v2 .route-kpis small{font-size:.72rem}

.route-motion-v8 .route-road .route-bus{animation:km-bus-cycle 36s linear infinite}
.route-motion-v8 .route-road .route-stop--terminal{z-index:6}
.route-motion-v8 .route-road .route-stop:nth-child(2) .route-stop__marker{animation:km-stop-one 36s linear infinite!important}
.route-motion-v8 .route-road .route-stop:nth-child(3) .route-stop__marker{animation:km-stop-two 36s linear infinite!important}
.route-motion-v8 .route-road .route-stop:nth-child(4) .route-stop__marker{animation:km-stop-three 36s linear infinite!important}
.route-motion-v8 .route-road .route-bus__passengers i:nth-child(1){animation:km-passenger-one 36s linear infinite}
.route-motion-v8 .route-road .route-bus__passengers i:nth-child(2){animation:km-passenger-two 36s linear infinite}
.route-motion-v8 .route-road .route-bus__passengers i:nth-child(3){animation:km-passenger-three 36s linear infinite}
.route-motion-v8 .route-road .route-bus__passengers i:nth-child(4){animation:km-passenger-destination 36s linear infinite}
@keyframes km-bus-cycle{
  0%,5%{left:0;transform:translate(-50%,-50%) scaleX(1)}
  18%,21%{left:24%;transform:translate(-50%,-50%) scaleX(1)}
  30%,33%{left:60%;transform:translate(-50%,-50%) scaleX(1)}
  43%,46%{left:84%;transform:translate(-50%,-50%) scaleX(1)}
  55%{left:100%;transform:translate(-50%,-50%) scaleX(1)}
  60%{left:100%;transform:translate(-50%,-50%) scaleX(-1)}
  69%,72%{left:84%;transform:translate(-50%,-50%) scaleX(-1)}
  80%,83%{left:60%;transform:translate(-50%,-50%) scaleX(-1)}
  91%,94%{left:24%;transform:translate(-50%,-50%) scaleX(-1)}
  100%{left:0;transform:translate(-50%,-50%) scaleX(-1)}
}
@keyframes km-stop-one{
  0%,20.5%{background:#fff;box-shadow:0 0 0 3px #1769e055,0 5px 12px #0b1f3a26}
  20.51%,93.5%{background:var(--accent);box-shadow:0 0 0 3px #1769e033,0 5px 12px #0b1f3a26}
  93.51%,100%{background:#fff;box-shadow:0 0 0 3px #1769e055,0 5px 12px #0b1f3a26}
}
@keyframes km-stop-two{
  0%,32.5%{background:#fff;box-shadow:0 0 0 3px #1769e055,0 5px 12px #0b1f3a26}
  32.51%,82.5%{background:var(--accent);box-shadow:0 0 0 3px #1769e033,0 5px 12px #0b1f3a26}
  82.51%,100%{background:#fff;box-shadow:0 0 0 3px #1769e055,0 5px 12px #0b1f3a26}
}
@keyframes km-stop-three{
  0%,45.5%{background:#fff;box-shadow:0 0 0 3px #1769e055,0 5px 12px #0b1f3a26}
  45.51%,71.5%{background:var(--accent);box-shadow:0 0 0 3px #1769e033,0 5px 12px #0b1f3a26}
  71.51%,100%{background:#fff;box-shadow:0 0 0 3px #1769e055,0 5px 12px #0b1f3a26}
}
@keyframes km-passenger-one{0%,19.5%{opacity:1}19.51%,93.5%{opacity:0}93.51%,100%{opacity:1}}
@keyframes km-passenger-two{0%,31.5%{opacity:1}31.51%,82.5%{opacity:0}82.51%,100%{opacity:1}}
@keyframes km-passenger-three{0%,44.5%{opacity:1}44.51%,71.5%{opacity:0}71.51%,100%{opacity:1}}
@keyframes km-passenger-destination{0%,55%{opacity:1}55.01%,100%{opacity:0}}

.route-filterbar-v8{--filter-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%231769e0' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.route-filterbar-v8 .route-filter select{appearance:none;background-image:var(--filter-chevron);background-repeat:no-repeat;background-size:12px 8px;background-position:right 13px center;padding-right:34px}
.route-filterbar-v8 .route-comfort-picker>summary:after{content:"";display:block;flex:0 0 12px;width:12px;height:8px;background:var(--filter-chevron) center/12px 8px no-repeat}

.routes-table-v8 .arrival-time{white-space:nowrap}
.routes-table-v8 .arrival-next-day{position:relative;top:-.3em;margin-left:4px;color:var(--muted);font-size:.56rem;font-weight:650;line-height:1;vertical-align:super;white-space:nowrap}
.routes-table-v8 .route-cell--price>strong{white-space:nowrap}
.routes-table-v8 .route-cell--comfort .comfort-list{display:flex;flex-wrap:wrap;gap:5px;max-width:none}
.routes-table-v8 .comfort-unknown{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid #dbe6f2;border-radius:7px;color:#71849d;background:#f7faff}
.routes-table-v8 .comfort-unknown svg{width:16px;height:16px}
.routes-table-v8 .route-row-cta{display:inline-flex;align-items:center;justify-content:center;width:40px;min-width:40px;height:40px;min-height:40px;padding:0}
.routes-table-v8 .route-row-cta svg{width:18px;height:18px;margin:0}
.routes-table-v8 .route-cell--action{text-align:center}
@media(min-width:1121px){
  .routes-table-v8 table{min-width:1040px;table-layout:fixed}
  .routes-table-v8 th:nth-child(1){width:18%}
  .routes-table-v8 th:nth-child(2){width:18%}
  .routes-table-v8 th:nth-child(3){width:9%}
  .routes-table-v8 th:nth-child(4){width:12%}
  .routes-table-v8 th:nth-child(5){width:14%}
  .routes-table-v8 th:nth-child(6){width:8%}
  .routes-table-v8 th:nth-child(7){width:12%}
  .routes-table-v8 th:nth-child(8){width:9%}
}
@media(max-width:1120px){
  .routes-table-v8 .route-cell--action{justify-content:flex-end;text-align:right}
  .routes-table-v8 .route-row-cta{width:44px;min-width:44px;height:44px;min-height:44px;margin-left:auto}
}
@media(max-width:560px){
  .route-motion-v8 .route-stop:not(.route-stop--terminal) .route-stop__label strong{font-size:.64rem}
  .route-motion-v8 .route-stop__label{max-width:92px}
}
@media(max-width:760px){
  .route-motion-v8{display:block!important;min-height:310px;margin-top:24px;padding:18px}
  .route-motion-v8 .route-road{margin:100px 4px 98px}
}
@media(prefers-reduced-motion:reduce){
  .route-motion-v8 .route-road .route-bus{animation:none!important;left:0!important;transform:translate(-50%,-50%)!important}
  .route-motion-v8 .route-road .route-bus__passengers i{animation:none!important;opacity:1!important}
  .route-motion-v8 .route-road .route-stop:nth-child(2) .route-stop__marker,
  .route-motion-v8 .route-road .route-stop:nth-child(3) .route-stop__marker,
  .route-motion-v8 .route-road .route-stop:nth-child(4) .route-stop__marker{animation:none!important}
}
