@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-bus__passengers i{opacity:1;animation-duration:48s;animation-timing-function:linear;animation-iteration-count:infinite}
.route-motion-v8 .route-road .route-bus__passengers i:nth-child(1){animation-name:route-passenger-one-v13}
.route-motion-v8 .route-road .route-bus__passengers i:nth-child(2){animation-name:route-passenger-two-v13}
.route-motion-v8 .route-road .route-bus__passengers i:nth-child(3){animation-name:route-passenger-three-v13}
.route-motion-v8 .route-road .route-bus__passengers i:nth-child(4){animation-name:route-passenger-terminal-v13}
.route-motion-v8 .route-stop__passenger{position:absolute;top:15px;left:50%;z-index:4;width:8px;height:8px;border-radius:50%;background:#f9b928;box-shadow:0 0 0 2px #fff,0 3px 9px #a85d0b66;opacity:0;pointer-events:none}
.route-motion-v8 .route-stop:nth-child(2) .route-stop__passenger{animation:route-stop-passenger-one-v13 48s linear infinite}
.route-motion-v8 .route-stop:nth-child(3) .route-stop__passenger{animation:route-stop-passenger-two-v13 48s linear infinite}
.route-motion-v8 .route-stop:nth-child(4) .route-stop__passenger{animation:route-stop-passenger-three-v13 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}
}
@keyframes route-passenger-one-v13{0%,13%{opacity:1}15%,85%{opacity:0}87%,100%{opacity:1}}
@keyframes route-passenger-two-v13{0%,24%{opacity:1}26%,74%{opacity:0}76%,100%{opacity:1}}
@keyframes route-passenger-three-v13{0%,35%{opacity:1}37%,63%{opacity:0}65%,100%{opacity:1}}
@keyframes route-passenger-terminal-v13{0%,46%{opacity:1}48%,54%{opacity:0}56%,100%{opacity:1}}
@keyframes route-stop-passenger-one-v13{0%,13%{opacity:0;transform:translate(-50%,-8px) scale(.5)}15%,85%{opacity:1;transform:translate(-50%,0) scale(1)}87%,100%{opacity:0;transform:translate(-50%,-8px) scale(.5)}}
@keyframes route-stop-passenger-two-v13{0%,24%{opacity:0;transform:translate(-50%,-8px) scale(.5)}26%,74%{opacity:1;transform:translate(-50%,0) scale(1)}76%,100%{opacity:0;transform:translate(-50%,-8px) scale(.5)}}
@keyframes route-stop-passenger-three-v13{0%,35%{opacity:0;transform:translate(-50%,-8px) scale(.5)}37%,63%{opacity:1;transform:translate(-50%,0) scale(1)}65%,100%{opacity:0;transform:translate(-50%,-8px) scale(.5)}}
@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}
  .route-motion-v8 .route-road .route-bus__passengers i,.route-motion-v8 .route-stop__passenger{animation:none!important}
  .route-motion-v8 .route-stop__passenger{opacity:0!important}
}

/* ticket-table-and-filter-v13 */
.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}
.routes-table-v8 table{min-width:1150px}
.routes-table-v8 th:nth-child(5),.routes-table-v8 .route-cell--price{min-width:150px;white-space:nowrap}
.routes-table-v8 th:nth-child(7),.routes-table-v8 .route-cell--comfort{width:132px;min-width:132px;max-width:132px}
.routes-table-v8 .route-cell--comfort .comfort-list{gap:2px;flex-wrap:wrap}
.routes-table-v8 .route-cell--comfort .table-icon-chip{width:20px;height:24px;min-width:20px;padding:0}
.routes-table-v8 .route-cell--arrival>strong{white-space:nowrap}
.routes-table-v8 .next-day-note,.route-detail-table .next-day-note{display:inline-block;margin-left:5px;color:#89929d;font-size:.52rem;font-weight:400;letter-spacing:0;line-height:1;vertical-align:super}
.routes-table-v8 .route-row-cta{display:inline-grid;width:38px;min-width:38px;height:38px;min-height:38px;place-items:center;padding:0}
.routes-table-v8 .route-row-cta svg{width:18px;height:18px;margin:0}
.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='%231769e0' stroke-width='2' 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-repeat:no-repeat;background-position:right 12px center;background-size:16px 16px;padding-right:36px}
.route-filterbar-v8 .route-comfort-picker>summary:after{content:"";display:block;flex:none;width:16px;height:16px;background:var(--filter-chevron) center/16px 16px no-repeat}
@media(max-width:900px){
  .routes-table-v8 table{min-width:0}
  .routes-table-v8 .route-cell--price{min-width:0}
  .routes-table-v8 .route-cell--comfort{width:auto;min-width:0;max-width:none}
}

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

/* full-width route detail pages and shared data tables */
.route-detail-page .page-hero__grid,.route-detail-page .content-grid{grid-template-columns:minmax(0,1fr);gap:24px}
.route-detail-page .page-hero__grid>*{min-width:0}
.route-detail-page .page-hero .lead,.route-detail-page .prose{max-width:none}
.route-detail-page .source-card{position:static;width:100%}
.route-detail-page .source-card .button{max-width:100%}
.route-detail-data{padding-bottom:28px}
.route-detail-data__heading{width:100%;margin-bottom:28px}
.route-detail-data__heading h2{margin-bottom:14px}
.route-detail-data__heading p:last-child{margin:0;color:var(--muted)}
.route-detail-data__note{margin:14px 0 0;color:var(--muted);font-size:.8125rem}
.route-detail-table{overflow:visible}
.route-detail-table table{width:100%;min-width:0;border-collapse:collapse;table-layout:fixed}
.route-detail-table caption{font-family:var(--font-sans);font-size:.875rem;line-height:1.5}
.route-detail-table th,.route-detail-table td{font-family:var(--font-sans);font-size:.8125rem;line-height:1.45;padding:13px 14px;overflow-wrap:anywhere}
.route-detail-table thead th{font-size:.8125rem;font-weight:650;letter-spacing:0;text-transform:none}
.route-detail-table td strong{font-size:inherit;font-weight:700}
.route-detail-table tr>:first-child{padding-left:18px}
.route-detail-table tr>:last-child{padding-right:18px}
.route-detail-table__times{font-variant-numeric:tabular-nums}
.route-detail-table tbody tr:hover td{background:#f3f8ff}
@media(max-width:760px){
  .route-detail-table{border:0;background:transparent}
  .route-detail-table table,.route-detail-table tbody{display:block;width:100%}
  .route-detail-table caption{display:block;border:1px solid var(--line);border-radius:12px;margin-bottom:12px}
  .route-detail-table thead{display:none}
  .route-detail-table tbody{display:grid;gap:12px}
  .route-detail-table tbody tr{display:grid;gap:0;padding:8px 14px;border:1px solid var(--line);border-radius:14px;background:var(--white)}
  .route-detail-table tbody td,.route-detail-table tr>:first-child,.route-detail-table tr>:last-child{display:grid;grid-template-columns:minmax(92px,120px) minmax(0,1fr);gap:12px;width:100%;padding:8px 0;border-bottom:1px solid var(--line);background:transparent!important}
  .route-detail-table tbody td:last-child{border-bottom:0}
  .route-detail-table tbody td:before{content:attr(data-label);color:var(--muted);font-size:.75rem;font-weight:650}
  .route-detail-table tbody td strong{min-width:0}
  .transport-table{border:0;background:transparent;overflow:visible}
  .transport-table table,.transport-table tbody{display:block;min-width:0;width:100%}
  .transport-table thead{display:none}
  .transport-table tbody{display:grid;gap:12px}
  .transport-table tbody tr{display:grid;gap:0;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--white)}
  .transport-table tbody th,.transport-table tbody td{display:block;padding:7px 0;border:0!important;background:transparent!important;overflow-wrap:anywhere}
  .transport-table tbody th{font-size:.9rem}
  .transport-table tbody td:before{display:block;color:var(--muted);font-size:.7rem;font-weight:650}
  .transport-table tbody td:nth-of-type(1):before{content:"В пути"}
  .transport-table tbody td:nth-of-type(2):before{content:"Стоимость на одного"}
  .transport-table tbody td:nth-of-type(3):before{content:"Источник и статус"}
}
@media(max-width:420px){
  .route-detail-table tbody td,.route-detail-table tr>:first-child,.route-detail-table tr>:last-child{grid-template-columns:minmax(82px,102px) minmax(0,1fr);gap:8px}
}
