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

/* doneck-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}}
@media(max-width:760px){.demand-history-section,.main-nav a[href$="#season-chart"]{display:none!important}}

/* moskva-starobelsk-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}}

/* Route animation: passengers leave on the outbound leg and board on return. */
.route-motion--moskva-starobelsk .route-road .route-bus{animation:route-ms-bus 36s linear infinite}
.route-motion--moskva-starobelsk .route-road .route-bus__passengers i{opacity:1}
.route-motion--moskva-starobelsk .route-road .route-bus__passengers i:nth-child(1){animation:route-ms-passenger-voronezh 36s linear infinite!important}
.route-motion--moskva-starobelsk .route-road .route-bus__passengers i:nth-child(2){animation:route-ms-passenger-boguchar 36s linear infinite!important}
.route-motion--moskva-starobelsk .route-road .route-bus__passengers i:nth-child(3){animation:route-ms-passenger-novopskov 36s linear infinite!important}
.route-motion--moskva-starobelsk .route-road .route-bus__passengers i:nth-child(4){animation:route-ms-passenger-starobelsk 36s linear infinite!important}
.route-motion--moskva-starobelsk .route-road .route-stop:nth-child(2) .route-stop__marker{animation:route-ms-stop-voronezh 36s linear infinite}
.route-motion--moskva-starobelsk .route-road .route-stop:nth-child(3) .route-stop__marker{animation:route-ms-stop-boguchar 36s linear infinite}
.route-motion--moskva-starobelsk .route-road .route-stop:nth-child(4) .route-stop__marker{animation:route-ms-stop-novopskov 36s linear infinite}
@keyframes route-ms-bus{
  0%,5%{left:0;transform:translate(-50%,-50%) scaleX(1)}
  18%,21%{left:33%;transform:translate(-50%,-50%) scaleX(1)}
  32%,35%{left:67%;transform:translate(-50%,-50%) scaleX(1)}
  45%,48%{left:84%;transform:translate(-50%,-50%) scaleX(1)}
  57%,59.99%{left:100%;transform:translate(-50%,-50%) scaleX(1)}
  60%,64%{left:100%;transform:translate(-50%,-50%) scaleX(-1)}
  69%,72%{left:84%;transform:translate(-50%,-50%) scaleX(-1)}
  80%,83%{left:67%;transform:translate(-50%,-50%) scaleX(-1)}
  91%,94%{left:33%;transform:translate(-50%,-50%) scaleX(-1)}
  100%{left:0;transform:translate(-50%,-50%) scaleX(-1)}
}
@keyframes route-ms-passenger-voronezh{0%,20.5%{opacity:1}20.51%,93.5%{opacity:0}93.51%,100%{opacity:1}}
@keyframes route-ms-passenger-boguchar{0%,34.5%{opacity:1}34.51%,82.5%{opacity:0}82.51%,100%{opacity:1}}
@keyframes route-ms-passenger-novopskov{0%,47.5%{opacity:1}47.51%,71.5%{opacity:0}71.51%,100%{opacity:1}}
@keyframes route-ms-passenger-starobelsk{0%,57%{opacity:1}57.01%,59.99%{opacity:0}60%,100%{opacity:1}}
@keyframes route-ms-stop-voronezh{0%,20.5%,93.51%,100%{background:#fff}20.51%,93.5%{background:var(--accent)}}
@keyframes route-ms-stop-boguchar{0%,34.5%,82.51%,100%{background:#fff}34.51%,82.5%{background:var(--accent)}}
@keyframes route-ms-stop-novopskov{0%,47.5%,71.51%,100%{background:#fff}47.51%,71.5%{background:var(--accent)}}

/* Keep the reference site's KPI typography explicit on this route. */
.route-hero-v2 .route-kpis dt{font-size:.7rem;font-weight:400}
.route-hero-v2 .route-kpis dd{font-size:clamp(1.2rem,2vw,1.65rem);font-weight:850;letter-spacing:-.04em}
.route-hero-v2 .route-kpis small{font-size:.62rem;line-height:1.35}

/* Give the price its complete figure and keep the comfort column icon-sized. */
.routes-table-v8 table{min-width:0;table-layout:fixed}
.routes-table-v8 th:nth-child(1){width:16%}
.routes-table-v8 th:nth-child(2){width:16%}
.routes-table-v8 th:nth-child(3){width:10%}
.routes-table-v8 th:nth-child(4){width:12%}
.routes-table-v8 th:nth-child(5){width:15%}
.routes-table-v8 th:nth-child(6){width:8%}
.routes-table-v8 th:nth-child(7){width:16%}
.routes-table-v8 th:nth-child(8){width:7%}
.routes-table-v8 .route-cell--price>strong{white-space:nowrap;font-size:1rem}
.routes-table-v8 .comfort-list{gap:4px;flex-wrap:wrap}
.routes-table-v8 .comfort-list .table-icon-chip,.routes-table-v8 .comfort-empty{width:25px;height:25px}
.routes-table-v8 .comfort-list .icon,.routes-table-v8 .comfort-empty .icon{width:14px;height:14px}
.routes-table-v8 .comfort-empty{display:inline-grid;place-items:center;border:1px solid #d3e3f6;border-radius:8px;color:#8092aa;background:#f2f6fb}
.routes-table-v8 .route-row-cta{width:38px;height:38px;padding:7px}
.routes-table-v8 .route-row-cta .icon{width:18px;height:18px}
.routes-table-v8 .route-cell--arrival>strong{white-space:nowrap}
.routes-table-v8 .arrival-day-sup{position:relative;top:-.25em;margin-left:4px;color:var(--muted);font-size:.53rem;font-weight:650;letter-spacing:0;white-space:nowrap;vertical-align:super}

/* Native select arrows and the comfort picker now share one chevron. */
.route-filterbar-v8 .route-filter select{appearance:none;-webkit-appearance:none;padding-right:38px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' 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");background-position:right 15px center;background-repeat:no-repeat;background-size:12px 8px}
.route-comfort-picker>summary:after{content:"";flex:0 0 12px;width:12px;height:8px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' 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");background-repeat:no-repeat;background-size:12px 8px}
.route-comfort-picker[open]>summary:after{transform:rotate(180deg)}
.station-contact-card dd,.source-card,.prose{overflow-wrap:anywhere}
@media(max-width:900px){
  .routes-table-v8 table{table-layout:auto}
  .routes-table-v8 .route-cell--duration{grid-column:1/13;display:flex;align-items:baseline;justify-content:center;gap:8px;padding-top:11px;text-align:center}
  .routes-table-v8 .route-cell--duration .route-cell__label{margin:0}
  .routes-table-v8 .route-cell--duration>strong{white-space:nowrap}
  .routes-table-v8 .route-row-cta{width:44px;height:44px}
  .routes-table-v8 .route-cell--action{justify-content:flex-end}
}
@media(prefers-reduced-motion:reduce){.route-motion--moskva-starobelsk .route-road .route-bus{animation:none!important;left:50%!important;transform:translate(-50%,-50%)!important}.route-motion--moskva-starobelsk .route-road .route-bus__passengers i,.route-motion--moskva-starobelsk .route-road .route-stop__marker{animation:none!important}}

/* Wide route detail pages and compact next-day superscripts, 2026-09-21. */
.content-grid--full{grid-template-columns:minmax(0,1fr);gap:30px}
.content-grid--full .prose{max-width:none;min-width:0}
.content-grid--full .source-card{position:static;width:100%}
.content-grid--full .prose>h2:first-child{margin-top:0}
.arrival-day-sup,.routes-table-v8 .arrival-day-sup{position:relative;top:-.18em;margin-left:3px;color:#8290a3;font-size:.48rem;font-weight:400;letter-spacing:0;white-space:nowrap;vertical-align:super}
.detail-table{margin-top:18px}
.detail-table table{table-layout:fixed;min-width:0}
.detail-table th,.detail-table td{padding:13px 11px;overflow-wrap:anywhere}
.detail-table td strong{white-space:nowrap}
.detail-table .route-detail-pair{display:block;line-height:1.45}
.detail-table--prices th:first-child,.detail-table--prices td:first-child{width:19%}
.detail-table--prices th:last-child,.detail-table--prices td:last-child{width:19%;white-space:nowrap}
@media(max-width:760px){.detail-table{overflow:visible;border:0;background:transparent}.detail-table table,.detail-table tbody,.detail-table tr,.detail-table td{display:block;width:100%}.detail-table table{table-layout:auto}.detail-table caption{display:block;border:1px solid var(--line);border-radius:12px;margin-bottom:12px}.detail-table thead{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.detail-table tbody{display:grid;gap:12px}.detail-table tr{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff}.detail-table td,.detail-table--prices td:first-child,.detail-table--prices td:last-child{display:flex;justify-content:space-between;align-items:baseline;gap:12px;width:100%;padding:7px 0;border:0;text-align:right;white-space:normal}.detail-table td:not(:last-child){border-bottom:1px solid var(--line)}.detail-table td:before{content:attr(data-label);flex:0 0 39%;color:var(--muted);font-size:.66rem;font-weight:700;text-align:left;text-transform:uppercase;letter-spacing:.03em}.detail-table td strong{white-space:normal}.detail-table tbody tr:nth-child(2n) td{background:transparent}}
@media(max-width:380px){.detail-table td:before{flex-basis:37%}}
@media(max-width:960px){
  .transport-table{overflow:visible;border:0;background:transparent}
  .transport-table table,.transport-table tbody,.transport-table tr,.transport-table th,.transport-table td{display:block;width:100%;min-width:0}
  .transport-table thead{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
  .transport-table tbody{display:grid;gap:12px}
  .transport-table tbody tr{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
  .transport-table tbody th{padding:12px 14px;border-bottom:1px solid var(--line);background:var(--brand-soft);font-size:.88rem}
  .transport-table tbody td{padding:11px 14px;border-bottom:1px solid var(--line);background:#fff!important;overflow-wrap:anywhere}
  .transport-table tbody td:last-child{border-bottom:0}
  .transport-table tbody td:before{display:block;margin-bottom:4px;color:var(--muted);font-size:.63rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
  .transport-table tbody td:nth-child(2):before{content:"Время в пути"}
  .transport-table tbody td:nth-child(3):before{content:"Стоимость / расходы"}
  .transport-table tbody td:nth-child(4):before{content:"Источник и условия"}
}

/* Fit the complete action heading at the narrow desktop breakpoint without changing its label or column width. */
@media(min-width:901px) and (max-width:1100px){.routes-table-v8 thead th:last-child{padding-inline:2px}}
