@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}
}

/* krasnodar-mariupol-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}}

/* krasnodar-mariupol-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}}

/* Two endpoint route diagram. */
.route-motion--two-stops .route-stop:first-child .route-stop__label{left:0;transform:none;text-align:left}
.route-motion--two-stops .route-stop:last-child .route-stop__label{left:auto;right:0;transform:none;text-align:right}
.route-motion--two-stops .route-road .route-bus{animation:route-km 24s linear infinite}
@keyframes route-km{0%,7%{left:0;transform:translate(-50%,-50%) scaleX(1)}43%,49.9%{left:100%;transform:translate(-50%,-50%) scaleX(1)}50%,57%{left:100%;transform:translate(-50%,-50%) scaleX(-1)}93%,100%{left:0;transform:translate(-50%,-50%) scaleX(-1)}}
.station-contact-card dd{overflow-wrap:anywhere}
@media(prefers-reduced-motion:reduce){.route-motion--two-stops .route-road .route-bus{animation:none}}
@media(max-width:760px){#season-chart{display:none}}

/* Mobile transport comparison cards. */
@media(max-width:760px){
  .transport-table{overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none}
  .transport-table table,.transport-table tbody{display:block;width:100%;min-width:0}
  .transport-table thead{display:none}
  .transport-table tbody{display:grid;gap:14px}
  .transport-table tbody tr{display:grid;overflow:hidden;border:1px solid #d9e5f3;border-radius:16px;background:#fff;box-shadow:0 10px 28px #16345c0d}
  .transport-table tbody tr:first-child{border-color:#a9c9ed;background:linear-gradient(180deg,#f3f8ff 0,#fff 58%);box-shadow:0 12px 30px #1769e018}
  .transport-table tbody th{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 18px 14px;border:0;color:var(--heading);font-size:1rem;font-weight:750;text-align:left}
  .transport-table tbody th:before{content:"Вид транспорта";order:2;padding:5px 8px;border-radius:999px;color:#45617f;background:#edf3fa;font-size:.62rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
  .transport-table tbody tr:first-child th:before{content:"Проверено";color:#1458a7;background:#dcecff}
  .transport-table tbody td{display:grid;grid-template-columns:minmax(108px,.8fr) minmax(0,1.2fr);gap:14px;align-items:start;padding:12px 18px;border:0;border-top:1px solid #e5edf6;color:var(--heading);font-size:.84rem;line-height:1.45;text-align:left}
  .transport-table tbody td:before{color:#667b94;font-size:.68rem;font-weight:700;letter-spacing:.035em;text-transform:uppercase}
  .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:"Статус данных"}
  .transport-table tbody td small{margin-top:2px;font-size:.7rem;line-height:1.4}
  .transport-note{margin-top:16px;padding:0 4px;line-height:1.5}
}
@media(max-width:430px){
  .transport-table tbody td{grid-template-columns:1fr;gap:4px}
}

/* Route animation and timetable refinements. */
.route-motion-v8 .route-road .route-bus__passengers i:nth-child(1){animation:km-passenger-one 48s linear infinite}
.route-motion-v8 .route-road .route-bus__passengers i:nth-child(2){animation:km-passenger-two 48s linear infinite}
.route-motion-v8 .route-road .route-bus__passengers i:nth-child(3){animation:km-passenger-three 48s linear infinite}
.route-motion-v8 .route-road .route-bus__passengers i:nth-child(4){animation:km-passenger-four 48s linear infinite}
@keyframes km-passenger-one{0%,15.99%{opacity:1}16%,83.99%{opacity:0}84%,100%{opacity:1}}
@keyframes km-passenger-two{0%,26.99%{opacity:1}27%,72.99%{opacity:0}73%,100%{opacity:1}}
@keyframes km-passenger-three{0%,37.99%{opacity:1}38%,61.99%{opacity:0}62%,100%{opacity:1}}
@keyframes km-passenger-four{0%,48.99%{opacity:1}49%,54.99%{opacity:0}55%,100%{opacity:1}}
@keyframes route-stop-one-v12{0%,15.99%{background:#fff;box-shadow:0 0 0 3px #1769e055,0 5px 12px #0b1f3a26}16%,83.99%{background:var(--accent);box-shadow:0 0 0 5px #f59e0b2e,0 5px 12px #0b1f3a26}84%,100%{background:#fff;box-shadow:0 0 0 3px #1769e055,0 5px 12px #0b1f3a26}}
@keyframes route-stop-two-v12{0%,26.99%{background:#fff;box-shadow:0 0 0 3px #1769e055,0 5px 12px #0b1f3a26}27%,72.99%{background:var(--accent);box-shadow:0 0 0 5px #f59e0b2e,0 5px 12px #0b1f3a26}73%,100%{background:#fff;box-shadow:0 0 0 3px #1769e055,0 5px 12px #0b1f3a26}}
@keyframes route-stop-three-v12{0%,37.99%{background:#fff;box-shadow:0 0 0 3px #1769e055,0 5px 12px #0b1f3a26}38%,61.99%{background:var(--accent);box-shadow:0 0 0 5px #f59e0b2e,0 5px 12px #0b1f3a26}62%,100%{background:#fff;box-shadow:0 0 0 3px #1769e055,0 5px 12px #0b1f3a26}}
.route-kpis dt{font-family:var(--font-sans);font-size:.78rem;font-weight:650}
.route-kpis dd{font-family:var(--font-sans);font-size:clamp(1.25rem,1.8vw,1.62rem);font-weight:700;letter-spacing:-.025em}
.route-kpis small{font-family:var(--font-sans);font-size:.72rem}
.routes-table-v8 table{min-width:1110px}
.routes-table-v8 thead th:nth-child(5),.routes-table-v8 td.route-cell--price{min-width:152px}
.routes-table-v8 thead th:nth-child(7),.routes-table-v8 td.route-cell--comfort{width:112px;max-width:112px}
.routes-table-v8 .route-cell--price>strong{white-space:nowrap}
.routes-table-v8 .route-cell--arrival>strong sup{display:inline-block;margin-left:4px;color:#788699;font-size:.5rem;font-weight:400;line-height:1;vertical-align:super;white-space:nowrap}
.routes-table-v8 .route-row-cta{display:inline-flex;width:38px;min-width:38px;height:38px;padding:0;align-items:center;justify-content:center}
.route-filter select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath d='m3 5 4 4 4-4' fill='none' stroke='%231769e0' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.8'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:14px 14px}
.route-comfort-picker>summary{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath d='m3 5 4 4 4-4' fill='none' stroke='%231769e0' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.8'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:14px 14px;padding-right:36px}
.route-comfort-picker>summary:after{display:none}
@media(max-width:900px){
  .routes-table-v8 table{min-width:0}
  .routes-table-v8 td.route-cell--price{min-width:0}
  .routes-table-v8 td.route-cell--comfort{width:auto;max-width:none}
  .routes-table-v8 .route-row-cta{width:44px;min-width:44px;height:44px;margin-left:auto}
}
@media(max-width:420px){
  .routes-table-v8 .route-cell--departure{grid-column:1/5}
  .routes-table-v8 .route-cell--duration{grid-column:5/9}
  .routes-table-v8 .route-cell--arrival{grid-column:9/13}
  .routes-table-v8 .route-cell--duration>strong{font-size:.8rem;white-space:nowrap}
}
@media(prefers-reduced-motion:reduce){
  .route-motion-v8 .route-road .route-bus__passengers i{animation:none!important;opacity:1!important}
}

/* Full-width reference pages and dated offer tables. */
.detail-page .page-hero__grid,.detail-page .detail-content{display:block}
.detail-page .page-hero__grid>*{max-width:none}
.detail-page .lead,.detail-page .prose{max-width:none}
.detail-page .page-hero__aside{margin-top:28px}
.detail-page .detail-content>.prose{margin-top:52px}
.detail-page .detail-content>.source-card{position:static;width:100%;max-width:none;margin-top:42px}
.detail-table-section{width:100%}
.detail-table-section>h2{margin-bottom:12px}
.detail-table-section>p{max-width:none}
.detail-table-wrap{width:100%;overflow-x:auto;border:1px solid #d9e5f3;border-radius:16px;background:#fff;box-shadow:0 12px 30px #16345c0b}
.detail-table{width:100%;border-collapse:collapse;font-size:.86rem;line-height:1.45}
.detail-table caption{padding:16px 20px;border-bottom:1px solid #d9e5f3;color:var(--heading);background:#edf5ff;font-weight:750;text-align:left}
.detail-table thead th{padding:12px 14px;color:#526984;background:#f5f9fe;font-size:.72rem;font-weight:750;text-align:left;vertical-align:top}
.detail-table tbody td{padding:14px;border-top:1px solid #e3ebf4;vertical-align:top}
.detail-table tbody tr:nth-child(even){background:#f9fbfe}
.detail-table td strong{color:var(--heading);font-size:1rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.detail-table td small{display:block;margin-top:4px;color:var(--muted);font-size:.72rem}
.detail-table .next-day{display:inline-block;margin-left:4px;color:#788699;font-size:.5rem;font-weight:400;line-height:1;vertical-align:super;white-space:nowrap}
.detail-table-note{margin-top:14px;color:var(--muted);font-size:.8rem}
.detail-table a,.transport-table a{overflow-wrap:anywhere}
.schedule-table th:first-child,.schedule-table td:first-child,.schedule-table th:nth-child(2),.schedule-table td:nth-child(2){min-width:144px}
.schedule-table th:nth-child(5),.schedule-table td:nth-child(5){min-width:180px}
.price-table th:first-child,.price-table td:first-child{min-width:180px}
.price-table th:nth-child(2),.price-table td:nth-child(2){min-width:245px}
@media(max-width:760px){
  .detail-page .page-hero__aside{margin-top:22px}
  .detail-page .detail-content>.prose{margin-top:42px}
  .detail-table-wrap{overflow:visible;border:0;background:transparent;box-shadow:none}
  .detail-table,.detail-table tbody{display:block;width:100%}
  .detail-table caption{display:block;margin-bottom:12px;border:1px solid #d9e5f3;border-radius:12px}
  .detail-table thead{display:none}
  .detail-table tbody{display:grid;gap:12px}
  .detail-table tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border:1px solid #d9e5f3;border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 8px 24px #16345c0d}
  .detail-table tbody td,.detail-table tbody tr:nth-child(even) td{min-width:0!important;padding:11px 14px;border-top:1px solid #e8eef6;background:transparent;overflow-wrap:anywhere}
  .detail-table tbody td:before{content:attr(data-label);display:block;margin-bottom:4px;color:#657a93;font-size:.66rem;font-weight:750;letter-spacing:.03em;text-transform:uppercase}
  .detail-table tbody td:nth-child(-n+2){border-top:0}
  .schedule-table tbody td:nth-child(4),.schedule-table tbody td:nth-child(5),.price-table tbody td:nth-child(2),.price-table tbody td:nth-child(3){grid-column:1/-1}
  .schedule-table tbody td:last-child,.price-table tbody td:last-child{grid-column:1/-1}
  .schedule-table tbody td strong,.price-table tbody td strong{white-space:normal}
}
@media(max-width:400px){
  .detail-table tbody td{padding:10px 11px!important}
  .detail-table .next-day{font-size:.46rem}
}
