@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}
}

/* route-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}}

/* melitopol-tula-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}}

/* The named points are geographic waypoints; each ticket controls its actual stops. */
.route-motion--five-stops .route-stop--terminal .route-stop__label{width:126px;max-width:none}
.route-motion--five-stops .route-stop:first-child .route-stop__label{left:0;transform:none;text-align:left}
.route-motion--five-stops .route-stop:last-child .route-stop__label{left:auto;right:0;transform:none;text-align:right}
.station-contact-card dd,.source-card,.prose{overflow-wrap:anywhere}
.section-heading-v2--single>div{width:100%}
@media(max-width:760px){.route-kpis{grid-template-columns:1fr}.route-kpis div{min-width:0}.station-time-list{flex-wrap:wrap}}

/* Responsive tables: retain every value without page-level horizontal overflow. */
.table-wrap table{font-family:inherit;font-size:.875rem;line-height:1.5;width:100%;min-width:0}
.table-wrap th,.table-wrap td{font-family:inherit;font-size:inherit;line-height:inherit;overflow-wrap:anywhere}
.routes-table-v8 .route-cell small{white-space:normal;overflow-wrap:anywhere}
@media(min-width:901px){.routes-table-v8 table{table-layout:fixed;min-width:0;width:100%}.routes-table-v8 th,.routes-table-v8 td{padding:12px 7px}.routes-table-v8 th:nth-child(1),.routes-table-v8 th:nth-child(2){width:16%}.routes-table-v8 th:nth-child(3),.routes-table-v8 th:nth-child(4){width:12%}.routes-table-v8 th:nth-child(5){width:20%}.routes-table-v8 th:nth-child(6),.routes-table-v8 th:nth-child(7){width:7%}.routes-table-v8 th:nth-child(8){width:10%}}
@media(min-width:901px){.routes-table-v8 th:nth-child(6),.routes-table-v8 th:nth-child(7),.routes-table-v8 th:nth-child(8){padding-inline:4px;font-size:.68rem;white-space:nowrap;overflow-wrap:normal}.routes-table-v8 th:nth-child(6) .route-sort,.routes-table-v8 th:nth-child(7) .route-sort{gap:3px;white-space:nowrap}.routes-table-v8 th:nth-child(6) .route-sort .icon,.routes-table-v8 th:nth-child(7) .route-sort .icon{width:12px;height:12px;flex:none}}
@media(min-width:901px) and (max-width:1100px){.routes-table-v8 th:nth-child(1),.routes-table-v8 th:nth-child(2){width:15%}.routes-table-v8 th:nth-child(3),.routes-table-v8 th:nth-child(4){width:11%}.routes-table-v8 th:nth-child(5){width:20%}.routes-table-v8 th:nth-child(6){width:8%}.routes-table-v8 th:nth-child(7){width:9%}.routes-table-v8 th:nth-child(8){width:11%}.routes-table-v8 th:nth-child(6),.routes-table-v8 th:nth-child(7),.routes-table-v8 th:nth-child(8){padding-inline:3px}.routes-table-v8 .route-cell--comfort{padding-inline:3px}.routes-table-v8 .comfort-list{gap:3px}}
@media(min-width:901px) and (max-width:1100px){.routes-table-v8 thead th{padding-inline:3px;font-size:.6875rem;white-space:nowrap;overflow-wrap:normal}.routes-table-v8 .route-sort{gap:1px;white-space:nowrap}.routes-table-v8 .route-sort .icon{width:9px;height:9px;flex:none}}
@media(max-width:980px){.transport-table{overflow:visible;border:0;background:none}.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 tr{display:block;padding:16px;border:1px solid var(--line);border-radius:14px;background:white}.transport-table th,.transport-table td{display:block;width:100%;padding:8px 0;border:0;text-align:left;white-space:normal}.transport-table td:before{content:attr(data-label);display:block;color:var(--muted);font-weight:600;margin-bottom:4px}.transport-table th{font-weight:700;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:4px}.transport-table td small{display:block}}

/* Melitopol–Tula: passengers leave on the outbound leg and board on the return. */
.route-motion--five-stops .route-road .route-bus{animation:mt-bus-cycle 36s linear infinite}
.route-motion--five-stops .route-road .route-bus__passengers i:nth-child(1){animation:mt-passenger-one 36s linear infinite}
.route-motion--five-stops .route-road .route-bus__passengers i:nth-child(2){animation:mt-passenger-two 36s linear infinite}
.route-motion--five-stops .route-road .route-bus__passengers i:nth-child(3){animation:mt-passenger-three 36s linear infinite}
.route-motion--five-stops .route-road .route-bus__passengers i:nth-child(4){animation:mt-passenger-four 36s linear infinite}
@keyframes mt-bus-cycle{0%,5%{left:0;transform:translate(-50%,-50%) scaleX(1)}18%,21%{left:28%;transform:translate(-50%,-50%) scaleX(1)}30%,33%{left:56%;transform:translate(-50%,-50%) scaleX(1)}43%,46%{left:80%;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:80%;transform:translate(-50%,-50%) scaleX(-1)}80%,83%{left:56%;transform:translate(-50%,-50%) scaleX(-1)}91%,94%{left:28%;transform:translate(-50%,-50%) scaleX(-1)}100%{left:0;transform:translate(-50%,-50%) scaleX(-1)}}
@keyframes mt-passenger-one{0%,19.99%{opacity:1}20%,91.99%{opacity:0}92%,100%{opacity:1}}
@keyframes mt-passenger-two{0%,31.99%{opacity:1}32%,80.99%{opacity:0}81%,100%{opacity:1}}
@keyframes mt-passenger-three{0%,44.99%{opacity:1}45%,69.99%{opacity:0}70%,100%{opacity:1}}
@keyframes mt-passenger-four{0%,55.99%{opacity:1}56%,60.99%{opacity:0}61%,100%{opacity:1}}

/* Timetable: compact icon controls, consistent chevrons and a readable price. */
.routes-table-v8 .route-cell--price>strong{white-space:nowrap}
.routes-table-v8 .comfort-list{max-width:none;flex-wrap:wrap;gap:4px}
.routes-table-v8 .route-cell--comfort .table-icon-chip{flex:none}
.routes-table-v8 .table-icon-chip:after{display:none}
.routes-table-v8 .route-row-cta{display:inline-grid;place-items:center;width:42px;min-width:42px;height:42px;min-height:42px;margin-left:auto;padding:0}
.routes-table-v8 .route-row-cta .icon{width:18px;height:18px}
.routes-table-v8 .route-cell--arrival .arrival-time{white-space:nowrap}
.routes-table-v8 .route-cell--arrival .arrival-next-day{display:inline-block;margin-left:4px;color:var(--muted);font-size:.6rem;font-weight:650;line-height:1;vertical-align:super;white-space:nowrap}
.routes-table-v8 .comfort-unconfirmed{color:var(--muted)}
.routes-table-v8 .comfort-unconfirmed svg{width:15px;height:15px}
.route-filterbar-v8 .route-filter{position:relative}
.route-filterbar-v8 .route-filter select{appearance:none;-webkit-appearance:none;background-image:none;padding-right:34px}
.route-filterbar-v8 .route-filter:after,.route-filterbar-v8 .route-comfort-picker>summary:after{content:"";display:block;width:7px;height:7px;border-right:2px solid var(--brand);border-bottom:2px solid var(--brand);transform:rotate(45deg);pointer-events:none;flex:none}
.route-filterbar-v8 .route-filter:after{position:absolute;right:16px;bottom:20px}
.route-filterbar-v8 .route-comfort-picker>summary:after{margin-left:2px;margin-right:5px}
@media(max-width:420px){.routes-table-v8 .route-cell--arrival .arrival-next-day{font-size:.55rem;margin-left:3px}}
@media(max-width:420px){.routes-table-v8 .route-cell--departure{grid-column:1/7;grid-row:1}.routes-table-v8 .route-cell--arrival{grid-column:7/13;grid-row:1}.routes-table-v8 .route-cell--duration{grid-column:1/13;grid-row:2;display:flex;align-items:baseline;justify-content:center;gap:6px;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-cell--schedule{grid-row:3}.routes-table-v8 .route-cell--price{grid-row:3}.routes-table-v8 .route-cell--ticket{grid-column:1/5;grid-row:4}.routes-table-v8 .route-cell--comfort{grid-column:5/13;grid-row:4}.routes-table-v8 .route-cell--action{grid-row:5}}
@media(max-width:420px){.routes-table-v8 .route-cell--ticket,.routes-table-v8 .route-cell--comfort{flex-direction:column;align-items:flex-start;gap:3px}.routes-table-v8 .route-cell--ticket .route-cell__label,.routes-table-v8 .route-cell--comfort .route-cell__label{white-space:nowrap}.routes-table-v8 .route-cell--comfort .comfort-list{justify-content:flex-start}}

/* 2026-09-21: full-width route reference pages and dated source tables. */
.route-wide-page .page-hero__grid,.route-wide-page .content-grid{grid-template-columns:minmax(0,1fr)}
.route-wide-page .page-hero__grid{gap:22px}
.route-wide-page .page-hero__aside,.route-wide-page .prose,.route-wide-page .source-card{max-width:none;width:100%}
.route-wide-page .source-card{position:static}
.route-wide-page .prose>p,.route-wide-page .prose>ol{max-width:80ch}
.route-wide-page .prose>.notice{max-width:none}
.route-wide-page--stops .prose>ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;max-width:none;padding:0;list-style:none}
.route-wide-page--stops .prose>ul li{margin:0;padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:var(--white)}
.route-data-snapshot{margin:34px 0 42px}
.route-data-snapshot h2{margin-bottom:12px}
.route-data-snapshot>p{max-width:80ch;color:var(--muted)}
.route-snapshot-table{margin-top:18px;outline-offset:4px}
.route-snapshot-table:focus-visible{outline:3px solid var(--brand)}
.route-snapshot-table table{width:100%;min-width:1100px;border-collapse:collapse;table-layout:auto;font-size:.875rem}
.route-snapshot-table--prices table{min-width:930px}
.route-snapshot-table th,.route-snapshot-table td{padding:13px 14px;overflow-wrap:normal;vertical-align:middle}
.route-snapshot-table thead th{white-space:nowrap;background:#f5f9ff}
.route-snapshot-table tbody th{font-weight:750;white-space:nowrap}
.route-snapshot-table tbody tr:nth-child(even) th,.route-snapshot-table tbody tr:nth-child(even) td{background:#fbfdff}
.route-snapshot-table .snapshot-price{white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:700}
.route-snapshot-table .snapshot-arrival{white-space:nowrap;font-variant-numeric:tabular-nums}
.routes-table-v8 .route-cell--arrival .arrival-next-day,.route-snapshot-table .arrival-next-day{display:inline-block;margin-left:3px;color:#788595;font-size:9px;font-weight:400;line-height:1;letter-spacing:0;vertical-align:super;white-space:nowrap}
@media(max-width:420px){.routes-table-v8 .route-cell--arrival .arrival-next-day,.route-snapshot-table .arrival-next-day{font-size:8px}}
@media(prefers-reduced-motion:reduce){
  .route-motion--five-stops .route-road .route-bus__passengers i{animation:none!important;opacity:1!important}
}
