@media(max-width:420px){
  .routes-table-v8 .route-cell--comfort{min-width:0}
  .routes-table-v8 .comfort-list{max-width:100%;flex-wrap:wrap;justify-content:flex-end;row-gap:4px}
}
@media(max-width:360px){
  .page-hero__grid>*{min-width:0}
  .page-hero h1{overflow-wrap:anywhere}
}
.season-method{margin:16px 0 0;color:#64748b;font-size:13px;line-height:1.55}

/* route-stop-snap-v12-2026-08-30 */
.route-motion-v8 .route-motion__top{display:flex;align-items:center;justify-content:space-between;gap:16px}
.route-motion-v8 .route-motion__hint{color:#647792;font-size:.68rem;font-weight:600;line-height:1.3;text-align:right}
.route-motion-v8 .route-stop:not(.route-stop--terminal) .route-stop__label strong{color:#405775;font-size:.72rem;font-weight:700}
.route-motion-v8 .route-stop:not(.route-stop--terminal) .route-stop__label small{margin-top:3px;color:#7a8da7;font-size:.58rem;font-weight:550}
.route-motion-v8 .route-road .route-bus{animation:route-bus-cycle-v12 48s linear infinite}
.route-motion-v8 .route-road .route-stop:nth-child(2) .route-stop__marker{animation:route-stop-one-v12 48s linear infinite}
.route-motion-v8 .route-road .route-stop:nth-child(3) .route-stop__marker{animation:route-stop-two-v12 48s linear infinite}
.route-motion-v8 .route-road .route-stop:nth-child(4) .route-stop__marker{animation:route-stop-three-v12 48s linear infinite}
@keyframes route-bus-cycle-v12{
  0%,5%{left:0;transform:translate(-50%,-50%) scaleX(1)}
  12%,16%{left:28%;transform:translate(-50%,-50%) scaleX(1)}
  23%,27%{left:56%;transform:translate(-50%,-50%) scaleX(1)}
  34%,38%{left:80%;transform:translate(-50%,-50%) scaleX(1)}
  45%,49.99%{left:100%;transform:translate(-50%,-50%) scaleX(1)}
  50.01%,55%{left:100%;transform:translate(-50%,-50%) scaleX(-1)}
  62%,66%{left:80%;transform:translate(-50%,-50%) scaleX(-1)}
  73%,77%{left:56%;transform:translate(-50%,-50%) scaleX(-1)}
  84%,88%{left:28%;transform:translate(-50%,-50%) scaleX(-1)}
  95%,100%{left:0;transform:translate(-50%,-50%) scaleX(-1)}
}
@keyframes route-stop-one-v12{
  0%,11.99%,16.01%,83.99%,88.01%,100%{background:#fff;box-shadow:0 0 0 3px #1769e055,0 5px 12px #0b1f3a26}
  12%,16%,84%,88%{background:var(--accent);box-shadow:0 0 0 5px #f59e0b2e,0 5px 12px #0b1f3a26}
}
@keyframes route-stop-two-v12{
  0%,22.99%,27.01%,72.99%,77.01%,100%{background:#fff;box-shadow:0 0 0 3px #1769e055,0 5px 12px #0b1f3a26}
  23%,27%,73%,77%{background:var(--accent);box-shadow:0 0 0 5px #f59e0b2e,0 5px 12px #0b1f3a26}
}
@keyframes route-stop-three-v12{
  0%,33.99%,38.01%,61.99%,66.01%,100%{background:#fff;box-shadow:0 0 0 3px #1769e055,0 5px 12px #0b1f3a26}
  34%,38%,62%,66%{background:var(--accent);box-shadow:0 0 0 5px #f59e0b2e,0 5px 12px #0b1f3a26}
}
@media(max-width:920px) and (min-width:761px){
  .route-motion-v8 .route-stop:not(.route-stop--terminal) .route-stop__label small{display:none}
}
@media(prefers-reduced-motion:reduce){
  .route-motion-v8 .route-road .route-bus{animation:none!important;left:56%!important;transform:translate(-50%,-50%)!important}
  .route-motion-v8 .route-road .route-stop__marker{animation:none!important}
}

/* rostov-lugansk-demand-history-v1 */
.demand-history-section{border-top:1px solid var(--line);background:linear-gradient(180deg,#f7faff 0,#eef4fb 100%)}
.season-card--demand{overflow:hidden}
.demand-season-chart .season-bar i{min-height:2px}
.demand-season-chart .season-bar:focus-visible{outline:0}
.demand-season-chart .season-bar:focus-visible i{box-shadow:inset 0 1px #ffffff80,0 0 0 3px #ff8a1f66}
.season-card--demand .season-card__meta{justify-content:flex-start}
.season-card--demand .season-card__meta output{font-weight:600}
.season-card--demand .season-method{max-width:1040px}
@media(max-width:760px){.demand-season-chart{grid-template-columns:repeat(12,56px);height:250px}.season-card--demand .season-card__meta{display:grid;gap:10px}.season-card--demand .chart-legend{gap:10px}}
@media(max-width:760px){.demand-history-section,.main-nav a[href$="#season-chart"]{display:none!important}}

/* rostov-lugansk-responsive-qa-v1 */
@media(max-width:480px){
  .page-hero__grid>*{min-width:0}
  .page-hero h1{overflow-wrap:anywhere}
}
@media(max-width:340px){.routes-table-v8{overflow:clip}}

/* route-ticket-ui-v13-2026-09-18 */
.route-hero-v2 .route-kpis dt,.route-hero-v2 .route-kpis dd,.route-hero-v2 .route-kpis small{font-family:var(--font-sans)}
.routes-table-v8 table{table-layout:fixed}
.routes-table-v8 th:nth-child(1){width:22%}
.routes-table-v8 th:nth-child(2){width:22%}
.routes-table-v8 th:nth-child(3){width:9%}
.routes-table-v8 th:nth-child(4){width:8%}
.routes-table-v8 th:nth-child(5){width:15%}
.routes-table-v8 th:nth-child(6){width:7%}
.routes-table-v8 th:nth-child(7){width:11%}
.routes-table-v8 th:nth-child(8){width:6%;padding-inline:4px;font-size:.65rem;letter-spacing:0}
.routes-table-v8 .route-cell--price>strong{white-space:nowrap}
.routes-table-v8 .route-cell--comfort .comfort-list{max-width:100%;flex-wrap:wrap;gap:3px}
.routes-table-v8 .route-cell--comfort .table-icon-chip{width:25px;height:25px;flex:none}
.routes-table-v8 .route-cell--comfort .table-icon-chip .icon{width:14px;height:14px}
.routes-table-v8 .route-row-cta{width:36px;min-width:36px;height:36px;min-height:36px;padding:0}
.routes-table-v8 .route-row-cta .icon{width:17px;height:17px}
.routes-table-v8 .route-cell--arrival>strong{white-space:nowrap}
.route-next-day{display:inline-block;margin-left:5px;color:#5d718d;font-size:.59rem;font-weight:650;letter-spacing:0;line-height:1;vertical-align:super;white-space:nowrap}
.route-filterbar-v8{--filter-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23506780' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}
.route-filterbar-v8 .route-filter select{appearance:none;background-image:var(--filter-chevron);background-position:right 13px center;background-repeat:no-repeat;background-size:15px 15px}
.route-filterbar-v8 .route-comfort-picker>summary:after{content:"";width:15px;height:15px;flex:none;margin-right:2px;background-image:var(--filter-chevron);background-position:center;background-repeat:no-repeat;background-size:15px 15px}

/* Three yellow dots leave the bus at each intermediate city on the outward trip,
   remain at the stop, then board again as it returns. */
.route-motion-v8 .route-stop__passengers{position:absolute;left:50%;z-index:4;display:flex;gap:3px;opacity:0;pointer-events:none}
.route-motion-v8 .route-stop--above .route-stop__passengers{top:21px}
.route-motion-v8 .route-stop--below .route-stop__passengers{bottom:21px}
.route-motion-v8 .route-stop__passengers i{display:block;width:5px;height:5px;border-radius:50%;background:#ffc443;box-shadow:0 0 0 1px #bc7e0f,0 1px 4px #935f0c45}
.route-motion-v8 .route-stop:nth-child(2) .route-stop__passengers{animation:dropoff-one-v13 48s linear infinite}
.route-motion-v8 .route-stop:nth-child(3) .route-stop__passengers{animation:dropoff-two-v13 48s linear infinite}
.route-motion-v8 .route-stop:nth-child(4) .route-stop__passengers{animation:dropoff-three-v13 48s linear infinite}
.route-motion-v8 .route-road .route-bus__passengers{animation:none!important;opacity:1!important}
.route-motion-v8 .route-road .route-bus__passengers i:nth-child(1){animation:aboard-one-v13 48s linear infinite}
.route-motion-v8 .route-road .route-bus__passengers i:nth-child(2){animation:aboard-two-v13 48s linear infinite}
.route-motion-v8 .route-road .route-bus__passengers i:nth-child(3){animation:aboard-three-v13 48s linear infinite}
.route-motion-v8 .route-road .route-bus__passengers i:nth-child(4){animation:none!important;opacity:1!important}
@keyframes dropoff-one-v13{0%,11.9%{opacity:0;transform:translate(-50%,7px)}16.1%,83.9%{opacity:1;transform:translate(-50%,0)}88.1%,100%{opacity:0;transform:translate(-50%,-7px)}}
@keyframes dropoff-two-v13{0%,22.9%{opacity:0;transform:translate(-50%,7px)}27.1%,72.9%{opacity:1;transform:translate(-50%,0)}77.1%,100%{opacity:0;transform:translate(-50%,-7px)}}
@keyframes dropoff-three-v13{0%,33.9%{opacity:0;transform:translate(-50%,7px)}38.1%,61.9%{opacity:1;transform:translate(-50%,0)}66.1%,100%{opacity:0;transform:translate(-50%,-7px)}}
@keyframes aboard-one-v13{0%,11.9%{opacity:1}16.1%,83.9%{opacity:0}88.1%,100%{opacity:1}}
@keyframes aboard-two-v13{0%,22.9%{opacity:1}27.1%,72.9%{opacity:0}77.1%,100%{opacity:1}}
@keyframes aboard-three-v13{0%,33.9%{opacity:1}38.1%,61.9%{opacity:0}66.1%,100%{opacity:1}}
@media(max-width:1100px) and (min-width:761px){.routes-table-v8 .route-cell--comfort .table-icon-chip{width:23px;height:23px}}
@media(max-width:760px){.routes-table-v8 table{table-layout:auto}.routes-table-v8 .route-row-cta{width:100%;min-height:44px}}
@media(prefers-reduced-motion:reduce){.route-motion-v8 .route-stop__passengers,.route-motion-v8 .route-road .route-bus__passengers i{animation:none!important}.route-motion-v8 .route-stop__passengers{opacity:0!important}.route-motion-v8 .route-road .route-bus__passengers i{opacity:1!important}}

/* route-content-v14-2026-09-21 */
.route-next-day{color:#7f8998;font-size:.51rem;font-weight:400;letter-spacing:0}
.info-main--wide .content-grid--wide{grid-template-columns:minmax(0,1fr);gap:26px}
.info-main--wide .content-grid--wide .prose{max-width:none;min-width:0;width:100%}
.info-main--wide .content-grid--wide .source-card{position:static;width:100%}
.info-main--wide .evidence-table-block{width:100%}
.info-main--wide .evidence-table-block>h2{margin-top:0}
.info-route-table{width:100%;overflow:visible}
.info-route-table table{width:100%;table-layout:fixed}
.info-route-table caption{font-family:var(--font-sans)}
.info-route-table th,.info-route-table td{overflow-wrap:anywhere}
.info-route-table td{font-variant-numeric:tabular-nums}
.info-route-table td strong{white-space:nowrap}
.info-route-table td small{display:block;margin-top:5px;color:var(--muted);font-size:.68rem;line-height:1.35}
.info-route-table td .route-next-day{display:inline-block;margin-left:5px;vertical-align:super;white-space:nowrap}
.info-route-table--price th:first-child{width:64%}
.info-route-table--price th:nth-child(2){width:23%}
.info-route-table--price th:nth-child(3){width:13%}
@media(max-width:700px){
  .info-route-table{border:0;background:transparent}
  .info-route-table caption{display:block;border:1px solid var(--line);border-radius:12px;margin-bottom:12px}
  .info-route-table table,.info-route-table tbody,.info-route-table tr,.info-route-table td{display:block;width:100%}
  .info-route-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  .info-route-table tr{margin-bottom:10px;border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
  .info-route-table td{display:grid;grid-template-columns:minmax(100px,38%) minmax(0,1fr);gap:8px;align-items:start;padding:10px 12px;border-bottom:1px solid var(--line);background:transparent!important}
  .info-route-table td:last-child{border-bottom:0}
  .info-route-table td:before{content:attr(data-label);color:var(--muted);font-size:.72rem;font-weight:650;line-height:1.4}
  .info-route-table td small{grid-column:2}
  .info-route-table td strong{white-space:normal}
}
@media(max-width:360px){.info-route-table td{grid-template-columns:minmax(92px,38%) minmax(0,1fr)}}

/* Local responsive QA repair, 2026-10-07. */
.routes-table-v8 .route-cell--departure small,.routes-table-v8 .route-cell--arrival small{overflow-wrap:anywhere}@media(max-width:767px){.routes-table-v8 .route-cell--comfort{flex-wrap:wrap;min-width:0}.routes-table-v8 .route-cell--comfort>.route-cell__label{flex-basis:100%}.routes-table-v8 .comfort-icons{min-width:0;flex-wrap:wrap}}

/* Keep the duration text on its full mobile card row. */
@media(max-width:760px){.routes-table-v8 .route-cell--duration{grid-column:1/-1}}
