/* KPI typography matches the route reference. */
.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;line-height:1.62}
.route-kpis small{font-family:var(--font-sans);font-size:.72rem}
.routes-table-v8 .route-cell--price>strong{white-space:nowrap;overflow-wrap:normal}
.routes-table-v8 .route-cell--arrival>strong{display:block;white-space:nowrap}
.arrival-next-day{position:relative;top:-.2em;vertical-align:super;margin-left:4px;font-size:.5em;font-weight:400;line-height:0;white-space:nowrap;color:#808080}
.routes-table-v8 .route-row-cta{width:40px;min-width:40px;height:40px;min-height:40px;padding:9px;flex:none}
.routes-table-v8 .route-row-cta .icon{width:18px;height:18px;margin:0;flex:none}
.routes-table-v8 .comfort-list{display:flex;flex-wrap:wrap;gap:4px;max-width:92px}
.routes-table-v8 .comfort-icon{display:inline-flex;width:26px;height:26px;flex:0 0 26px;padding:4px}
.routes-table-v8 .comfort-icon .icon{width:17px;height:17px;margin:0}
.route-filter select,.route-comfort-picker>summary{--filter-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23607089' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 7.5 5 5 5-5'/%3E%3C/svg%3E");background-image:var(--filter-chevron);background-repeat:no-repeat;background-position:right 12px center;background-size:16px 16px;padding-right:38px}
.route-filter select{appearance:none;-webkit-appearance:none}
.route-comfort-picker>summary:after{content:none}
.route-comfort-picker>summary::marker{content:""}
.route-comfort-picker>summary::-webkit-details-marker{display:none}
.route-comfort-picker[open]>summary{background-image:var(--filter-chevron)}
@media(min-width:901px){
 .routes-table-v8 table{table-layout:fixed;min-width:0}
 .routes-table-v8 .col-departure{width:21%}.routes-table-v8 .col-arrival{width:21%}
 .routes-table-v8 .col-duration{width:9%}.routes-table-v8 .col-schedule{width:12%}
 .routes-table-v8 .col-price{width:14%}.routes-table-v8 .col-ticket{width:6%}
 .routes-table-v8 .col-comfort{width:10%}.routes-table-v8 .col-action{width:7%}
 .routes-table-v8 td,.routes-table-v8 th{min-width:0;overflow-wrap:anywhere}
 .routes-table-v8 th:nth-child(6),.routes-table-v8 th:nth-child(8){padding-left:6px;padding-right:6px;font-size:.7rem;letter-spacing:0;white-space:nowrap}
 .routes-table-v8 th:nth-child(6) button{gap:4px;white-space:nowrap}
}
@media(max-width:900px){
 .routes-table-v8 colgroup{display:none}
 .routes-table-v8 .route-cell--ticket{gap:4px}
 .routes-table-v8 .route-cell--ticket .route-cell__label{white-space:nowrap;flex-shrink:0}
 .routes-table-v8 .route-cell--action{display:flex;justify-content:flex-end;align-items:center}
 .routes-table-v8 .comfort-list{max-width:none}
}
@media(max-width:600px){
 .routes-table-v8 tr[data-route-row]{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px;align-items:start}
 .routes-table-v8 .route-cell--departure{grid-column:1;grid-row:1}
 .routes-table-v8 .route-cell--arrival{grid-column:2;grid-row:1;text-align:right}
 .routes-table-v8 .route-cell--duration{grid-column:1/-1;grid-row:2;display:flex;align-items:baseline;justify-content:space-between;gap:12px;text-align:left}
 .routes-table-v8 .route-cell--duration>strong{white-space:nowrap;font-size:.875rem}
 .routes-table-v8 .route-cell--duration>.route-cell__label{white-space:nowrap}
 .routes-table-v8 .route-cell--schedule{grid-column:1;grid-row:3}
 .routes-table-v8 .route-cell--price{grid-column:2;grid-row:3;text-align:right}
 .routes-table-v8 .route-cell--ticket{grid-column:1;grid-row:4}
 .routes-table-v8 .route-cell--comfort{grid-column:2;grid-row:4;align-items:center;gap:5px}
 .routes-table-v8 .route-cell--action{grid-column:1/-1;grid-row:5}
 .routes-table-v8 .route-cell--departure small,.routes-table-v8 .route-cell--arrival small{overflow-wrap:normal;word-break:normal}
}

/* Keep currency amounts together and all control typography consistent. */
.routes-table-v8 .route-cell--price>strong{font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.route-filterbar-v8 select,.route-comfort-picker summary,.route-comfort-picker fieldset{font-family:var(--font-sans)}
.routes-table-v8 .comfort-list{max-width:100%}
@media(min-width:901px) and (max-width:1180px){.routes-table-v8 td,.routes-table-v8 th{padding-inline:6px}.routes-table-v8 .col-price{width:15%}.routes-table-v8 .col-comfort{width:9%}.routes-table-v8 .route-cell--price>strong{font-size:.88rem}.routes-table-v8 .route-sort{gap:3px;font-size:.65rem;letter-spacing:0}}

@media(max-width:600px){.routes-table-v8 .route-cell--comfort{flex-direction:column;align-items:flex-end}.routes-table-v8 .route-cell--comfort>.route-cell__label{white-space:nowrap}.routes-table-v8 .route-cell--comfort .comfort-list{justify-content:flex-end}}

/* Full-width content on the schedule, prices and stops pages. */
.route-page--wide .content-grid,.route-page--wide .page-hero__grid{grid-template-columns:minmax(0,1fr)}
.route-page--wide .prose,.route-page--wide .prose>*,.route-page--wide .page-hero .lead,.route-page--wide .page-hero__aside{width:100%;max-width:none;min-width:0}
.route-page--wide .prose table{width:100%;max-width:100%}
.price-table th:first-child{width:56%}.price-table th:not(:first-child){width:22%}
@media(max-width:900px){.price-table td[data-label]::before{content:attr(data-label) ": ";font-weight:600}.price-table th:first-child,.price-table th:not(:first-child){width:auto}}

.transport-source{display:block;margin-top:8px;font-size:.8rem}.transport-section .transport-table td,.transport-section .transport-table th{overflow-wrap:anywhere}

/* Scoped route illustration, adapted from melitopol-rostov.ru, 2026-09-18. */
.rm-route-figure{position:relative;z-index:1;min-width:0;min-height:340px;margin:0;padding:24px 26px;border:1px solid #d4e2f3;border-radius:24px;background:#fff;box-shadow:0 24px 60px #16345c1c;overflow:visible}
.rm-route-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}
.rm-route-heading>span{color:var(--muted,#64748b);text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:750}
.rm-route-road{position:relative;height:8px;margin:126px 4px 116px;border-radius:999px;background:#c9d2df;box-shadow:inset 0 1px 2px #0b1f3a22}
.rm-route-road:after{content:"";position:absolute;inset:3px 7px;height:2px;background:repeating-linear-gradient(90deg,#fff 0,#fff 12px,transparent 12px,transparent 22px)}
.rm-route-stops{position:absolute;inset:0;margin:0;padding:0;list-style:none}
.rm-route-stop{position:absolute;top:50%;left:var(--stop);z-index:2;transform:translate(-50%,-50%)}
.rm-route-marker{display:block;box-sizing:border-box;width:14px;height:14px;border:3px solid #fff;border-radius:50%;background:#fff;box-shadow:0 0 0 3px #1769e055,0 5px 12px #0b1f3a26}
.rm-route-stop:nth-child(2) .rm-route-marker{animation:rm-stop-sambek 36s linear infinite}
.rm-route-stop:nth-child(3) .rm-route-marker{animation:rm-stop-taganrog 36s linear infinite}
.rm-route-stop:nth-child(4) .rm-route-marker{animation:rm-stop-novoazovsk 36s linear infinite}
.rm-route-terminal .rm-route-marker{display:grid;place-items:center;width:42px;height:42px;border:1px solid #d5e2f2;border-radius:13px;background:#fff;box-shadow:0 7px 18px #0b1f3a20}
.rm-route-terminal img{display:block;max-width:32px;max-height:35px;object-fit:contain}
.rm-route-label{position:absolute;left:50%;width:max-content;max-width:128px;text-align:center;transform:translateX(-50%)}
.rm-route-above .rm-route-label{bottom:27px}.rm-route-below .rm-route-label{top:27px}.rm-route-terminal.rm-route-below .rm-route-label{top:49px}
.rm-route-label strong,.rm-route-label small{display:block}.rm-route-label strong{color:#687a92;font-size:.7rem;font-weight:600;line-height:1.25}.rm-route-label small{margin-top:2px;color:var(--muted,#64748b);font-size:.62rem;line-height:1.25}.rm-route-terminal .rm-route-label strong{color:var(--heading,#0f1729);font-size:.82rem;font-weight:750}
.rm-route-stop:first-child .rm-route-label{left:0;text-align:left;transform:none}.rm-route-stop:last-child .rm-route-label{right:0;left:auto;text-align:right;transform:none}
.rm-route-bus{position:absolute;top:50%;left:0;z-index:5;box-sizing:border-box;width:28px;height:20px;border:2px solid #fff;border-radius:6px 6px 4px 4px;background:linear-gradient(180deg,#1769e0 0 62%,#0d51b8 62% 100%);box-shadow:0 5px 10px #16345c33;transform:translate(-50%,-50%);animation:rm-bus-cycle 36s linear infinite;will-change:left,transform}
.rm-route-bus:before{content:"";position:absolute;top:3px;right:4px;left:4px;height:7px;border-radius:2px;background:linear-gradient(90deg,#d9edff 0 44%,#fff 44% 56%,#d9edff 56% 100%)}
.rm-route-bus:after{content:"";position:absolute;bottom:-5px;left:3px;box-sizing:border-box;width:5px;height:5px;border:2px solid #fff;border-radius:50%;background:#0b1f3a;box-shadow:15px 0 0 -2px #0b1f3a,15px 0 0 0 #fff}
.rm-route-passengers{position:absolute;inset:4px 4px auto;display:flex;justify-content:space-around;height:7px}
.rm-route-passengers i{flex:0 0 4px;width:4px;height:4px;border-radius:50%;background:#ffcf70;box-shadow:0 3px 0 #fff}
.rm-route-passengers i:nth-child(1){animation:rm-passenger-sambek 36s linear infinite}.rm-route-passengers i:nth-child(2){animation:rm-passenger-taganrog 36s linear infinite}.rm-route-passengers i:nth-child(3){animation:rm-passenger-novoazovsk 36s linear infinite}.rm-route-passengers i:nth-child(4){animation:rm-passenger-terminal 36s linear infinite}
@keyframes rm-bus-cycle{0%,5%{left:0;transform:translate(-50%,-50%) scaleX(1)}18%,21%{left:27%;transform:translate(-50%,-50%) scaleX(1)}30%,33%{left:43%;transform:translate(-50%,-50%) scaleX(1)}43%,46%{left:78%;transform:translate(-50%,-50%) scaleX(1)}55%,57%{left:100%;transform:translate(-50%,-50%) scaleX(1)}57.01%,60%{left:100%;transform:translate(-50%,-50%) scaleX(-1)}69%,72%{left:78%;transform:translate(-50%,-50%) scaleX(-1)}80%,83%{left:43%;transform:translate(-50%,-50%) scaleX(-1)}91%,94%{left:27%;transform:translate(-50%,-50%) scaleX(-1)}100%{left:0;transform:translate(-50%,-50%) scaleX(-1)}}
@keyframes rm-stop-sambek{0%,19.5%{background:#fff}19.51%,93.5%{background:#ffcf70}93.51%,100%{background:#fff}}
@keyframes rm-stop-taganrog{0%,31.5%{background:#fff}31.51%,82.5%{background:#ffcf70}82.51%,100%{background:#fff}}
@keyframes rm-stop-novoazovsk{0%,44.5%{background:#fff}44.51%,71.5%{background:#ffcf70}71.51%,100%{background:#fff}}
@keyframes rm-passenger-sambek{0%,19.5%{opacity:1}19.51%,93.5%{opacity:0}93.51%,100%{opacity:1}}
@keyframes rm-passenger-taganrog{0%,31.5%{opacity:1}31.51%,82.5%{opacity:0}82.51%,100%{opacity:1}}
@keyframes rm-passenger-novoazovsk{0%,44.5%{opacity:1}44.51%,71.5%{opacity:0}71.51%,100%{opacity:1}}
@keyframes rm-passenger-terminal{0%,55%{opacity:1}55.01%,59.5%{opacity:0}59.51%,100%{opacity:1}}
@media(max-width:1180px){.rm-route-figure{max-width:760px}}
/* Same mobile visibility as the requested live reference. */
@media(max-width:760px){.rm-route-figure{display:none!important}}
@media(prefers-reduced-motion:reduce){.rm-route-bus{animation:none!important;left:58%!important;transform:translate(-50%,-50%)!important;will-change:auto}.rm-route-passengers i{animation:none!important;opacity:1!important}.rm-route-stop .rm-route-marker{animation:none!important;background:#fff!important}}

/* Shared table typography and full-width information-page layout. */
.arrival-next-day{font-size:10px;font-weight:400;letter-spacing:0;color:#64748b;top:-.4em}
.page-hero--wide .page-hero__grid{grid-template-columns:minmax(0,1fr);gap:20px}
.page-hero--wide .page-hero__aside{width:100%;max-width:none}
.page-hero--wide .lead{max-width:none}
.content-grid--wide{grid-template-columns:minmax(0,1fr);gap:0}
.content-grid--wide .prose,.content-grid--wide .notice,.content-grid--wide .table-wrap{width:100%;max-width:none;min-width:0}
.transport-table table{width:100%;min-width:0!important;font-family:var(--font-sans);font-size:.875rem;line-height:1.45}
.transport-table th,.transport-table td{font-family:inherit;font-size:.875rem;line-height:1.45;padding:13px 14px;vertical-align:top}
.transport-table thead th{font-weight:700}
.transport-table tbody th{font-size:.875rem;font-weight:700}
.transport-table td small,.transport-table th small{display:block;margin-top:5px;font-size:.75rem;font-weight:400;line-height:1.45;color:var(--muted)}
.transport-table small a{font-weight:650}
.comparison-table col:nth-child(1){width:18%}
.comparison-table col:nth-child(2){width:18%}
.comparison-table col:nth-child(3){width:25%}
.comparison-table col:nth-child(4){width:39%}
.schedule-data-table col:nth-child(1){width:12%}
.schedule-data-table col:nth-child(2){width:12%}
.schedule-data-table col:nth-child(3){width:13%}
.schedule-data-table col:nth-child(4){width:13%}
.schedule-data-table col:nth-child(5){width:50%}
.price-data-table col:nth-child(1){width:56%}
.price-data-table col:nth-child(2){width:22%}
.price-data-table col:nth-child(3){width:22%}
.data-table td:first-child{font-variant-numeric:tabular-nums}
.price-data-table td:first-child{line-height:1.7}
@media(max-width:900px){
  .transport-table colgroup{display:none}
  .transport-table th,.transport-table td{padding:5px 0}
  .transport-table tr{padding:14px}
  .transport-table tbody th{margin-bottom:4px}
  .data-table td::before,.comparison-table td::before{content:attr(data-label);display:block;margin-bottom:2px;color:var(--muted);font-size:.75rem;font-weight:600;line-height:1.4}
  .transport-table td small{margin-top:3px}
}
