@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}
}

/* lugansk-volgograd-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}}

/* Lugansk–Volgograd route animation and shared accessible table system. */
.route-motion-v8 .route-road .route-bus{animation:route-bus-cycle-lv-v2 48s linear infinite!important}
.route-motion-v8 .route-road .route-bus__passengers i:nth-child(1){animation:passenger-lv-one-v2 48s linear infinite!important}
.route-motion-v8 .route-road .route-bus__passengers i:nth-child(2){animation:passenger-lv-two-v2 48s linear infinite!important}
.route-motion-v8 .route-road .route-bus__passengers i:nth-child(3){animation:passenger-lv-three-v2 48s linear infinite!important}
.route-motion-v8 .route-road .route-bus__passengers i:nth-child(4){animation:passenger-lv-four-v2 48s linear infinite!important}
.route-motion-v8 .route-road .route-stop:nth-child(2) .route-stop__marker{animation:route-stop-lv-one-v2 48s linear infinite}
.route-motion-v8 .route-road .route-stop:nth-child(3) .route-stop__marker{animation:route-stop-lv-two-v2 48s linear infinite}
.route-motion-v8 .route-road .route-stop:nth-child(4) .route-stop__marker{animation:route-stop-lv-three-v2 48s linear infinite}
@keyframes route-bus-cycle-lv-v2{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-lv-one-v2{0%,13.99%{background:#fff}14%,85.99%{background:#ffcf70}86%,100%{background:#fff}}
@keyframes route-stop-lv-two-v2{0%,24.99%{background:#fff}25%,74.99%{background:#ffcf70}75%,100%{background:#fff}}
@keyframes route-stop-lv-three-v2{0%,35.99%{background:#fff}36%,63.99%{background:#ffcf70}64%,100%{background:#fff}}
@keyframes passenger-lv-one-v2{0%,13.99%{opacity:1}14%,85.99%{opacity:0}86%,100%{opacity:1}}
@keyframes passenger-lv-two-v2{0%,24.99%{opacity:1}25%,74.99%{opacity:0}75%,100%{opacity:1}}
@keyframes passenger-lv-three-v2{0%,35.99%{opacity:1}36%,63.99%{opacity:0}64%,100%{opacity:1}}
@keyframes passenger-lv-four-v2{0%,46.99%{opacity:1}47%,100%{opacity:0}}
.route-motion-v8 .route-road .route-stop:not(.route-stop--terminal) .route-stop__marker{box-shadow:0 0 0 3px #1769e055,0 5px 12px #0b1f3a26}
.route-motion-v8 .route-road .route-stop--terminal img{width:34px;height:34px;object-fit:contain}
.route-kpis dt,.route-kpis dd,.route-kpis small{font-family:var(--font-sans)}
.route-kpis dt{font-size:.78rem;font-weight:650}.route-kpis dd{font-size:clamp(1.25rem,1.8vw,1.62rem);font-weight:700;letter-spacing:-.025em}.route-kpis small{font-size:.72rem}
@media(min-width:761px){.route-kpis{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr) minmax(0,1fr)}.route-kpis dd{white-space:nowrap}}
.route-next-day{display:inline-block;margin-left:4px;color:#8792a0;font-family:var(--font-sans);font-size:.52rem;font-weight:400;letter-spacing:0;line-height:1;vertical-align:super;white-space:nowrap}
.routes-table-v8 .route-cell--price>strong{white-space:nowrap;font-variant-numeric:tabular-nums}
.routes-table-v8 .route-cell--comfort{min-width:0}
.routes-table-v8 .comfort-icons{display:flex;flex-wrap:wrap;gap:4px}
.routes-table-v8 .route-row-cta--icon{width:38px;min-width:38px;height:38px;min-height:38px;padding:8px}
.routes-table-v8 .route-row-cta--icon .icon{width:18px;height:18px}
.route-filter select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231769e0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 13px center;background-repeat:no-repeat;background-size:16px 16px}
.route-comfort-picker>summary:after{content:"";display:block;flex:none;width:16px;height:16px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231769e0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center/16px 16px no-repeat}
.route-comfort-picker[open]>summary:after{transform:rotate(180deg)}
@media(max-width:900px){.routes-table-v8 .route-row-cta--icon{width:44px;min-width:44px;height:44px;min-height:44px}.routes-table-v8 .route-cell--action{justify-content:flex-end}.routes-table-v8 .route-cell--price>strong{font-size:1.08rem}}
.table-wrap{min-width:0}.unified-table{width:100%;border-collapse:collapse;font-family:inherit;font-size:14px;line-height:1.5}.unified-table th,.unified-table td{font-family:inherit;font-size:14px;line-height:1.5;padding:14px 12px;border-bottom:1px solid #dce3eb;vertical-align:top}.unified-table thead th{background:#edf2f7;color:#364152}.unified-table button{font-family:inherit;font-size:inherit;line-height:inherit}.prose .unified-table{font-size:14px}.prose{overflow-wrap:anywhere}.comfort-icons .icon{width:18px;height:18px}.comfort-icons{display:flex;gap:4px;flex-wrap:wrap}.route-cell--comfort .table-icon-chip{font-size:18px}.content-grid>*{min-width:0}
.table-wrap{min-width:0}.unified-table{width:100%;border-collapse:collapse;font-family:inherit;font-size:14px;line-height:1.5}.unified-table th,.unified-table td{font-family:inherit;font-size:14px;line-height:1.5;padding:14px 12px;border-bottom:1px solid #dce3eb;vertical-align:top}.unified-table thead th{background:#edf2f7;color:#364152}.unified-table button{font-family:inherit;font-size:inherit;line-height:inherit}.prose .unified-table{font-size:14px}.prose{overflow-wrap:anywhere}.comfort-icons .icon{width:18px;height:18px}.comfort-icons{display:flex;gap:4px;flex-wrap:wrap}.route-cell--comfort .table-icon-chip{font-size:18px}.content-grid>*{min-width:0}
@media(max-width:767px){.table-wrap{overflow:visible}.unified-table:not(.routes-table-v8 table),.prose .unified-table{display:block;width:100%}.unified-table thead{display:none}.unified-table tbody{display:block}.unified-table tr{display:grid;grid-template-columns:1fr;gap:0;margin-bottom:14px;border:1px solid #dce3eb;border-radius:12px;background:white}.unified-table td,.unified-table tbody th{display:block;width:auto;min-width:0;white-space:normal;overflow-wrap:anywhere}.unified-table td:before,.unified-table tbody th:before{content:attr(data-label);display:block;font-size:12px;color:#64748b;margin-bottom:4px}.routes-table-v8 td:before{display:none}.routes-table-v8 .unified-table tr{display:grid}.route-cell--action{grid-column:auto}.route-motion__map{min-width:0}}
@media(prefers-reduced-motion:reduce){.route-motion-v8 .route-bus{animation:none!important}}
.transport-table .unified-table,.routes-table-v8 .unified-table{min-width:0;width:100%;table-layout:fixed}
.unified-table th,.unified-table td{overflow-wrap:anywhere;white-space:normal}
.content-grid--full{display:block}.content-grid--full .prose{width:100%;max-width:none}
#season-chart.demand-history-section{display:block}
@media(max-width:767px){.routes-table-v8 .unified-table tr{grid-template-columns:repeat(12,minmax(0,1fr))}.routes-table-v8 .route-cell--departure{grid-column:1/7}.routes-table-v8 .route-cell--arrival{grid-column:7/13}.routes-table-v8 .route-cell--duration{grid-column:1/13}.routes-table-v8 .route-cell--schedule{grid-column:1/7}.routes-table-v8 .route-cell--price{grid-column:7/13}.routes-table-v8 .route-cell--ticket{grid-column:1/5}.routes-table-v8 .route-cell--action{grid-column:1/13}.routes-table-v8 .route-cell--comfort{grid-column:5/13;display:flex;align-items:center;justify-content:flex-start;gap:12px}.routes-table-v8 .route-cell--comfort .route-cell__label{white-space:nowrap;flex:0 0 auto}.routes-table-v8 .comfort-icons{flex:1}}
@media(max-width:760px){#season-chart.demand-history-section,.main-nav a[href="/#season-chart"]{display:none}}
@media(prefers-reduced-motion:reduce){.route-motion-v8 .route-road .route-bus{animation:none!important;left:50%!important;transform:translate(-50%,-50%)!important}.route-motion-v8 .route-road .route-bus__passengers i,.route-motion-v8 .route-road .route-stop:not(.route-stop--terminal) .route-stop__marker{animation:none!important}.route-motion-v8 .route-road .route-bus__passengers i{opacity:1!important}}

/* Preserve filter visibility and comfort glyph layout. */
.routes-table-v8 .unified-table tr[hidden]{display:none!important}@media(max-width:900px){.routes-table-v8 .unified-table .route-empty:not([hidden]){display:block}.routes-table-v8 .unified-table .route-empty td{width:100%;grid-column:1/-1}}

/* Keep all revealed comfort glyphs and the ticket label readable on narrow cards. */
@media(max-width:900px){.routes-table-v8 .route-cell--comfort{flex-wrap:wrap;min-width:0}.routes-table-v8 .route-cell--comfort .table-icon-chip{flex-shrink:0;white-space:nowrap;overflow-wrap:normal;line-height:1}.routes-table-v8 .route-cell--ticket .route-cell__label{white-space:nowrap}}
