/* Схема трасс: главная (heromap) и География. Значения перенесены из исходного дизайна без изменений. */
.route .ah{fill:#D9DCE3}
.route.sel .ah,.route:hover .ah,.route.hov .ah{fill:var(--red)}
.route.hov .ln{stroke:var(--red);stroke-width:2.6;opacity:1}
.heromap .route{cursor:default}
.heromap .route .hit{display:none}
.heromap .route .ln{stroke:#6F7586;stroke-width:1.3}
.heromap .route.proj .ln{stroke:#4B505E}
.heromap .route .ah{fill:#6F7586}
.heromap .mlabel{fill:#8C92A0;font-size:10.5px}
.heromap .mlabel.hi{fill:#fff}
.heromap .tick{fill:#5C6170}
.heromap .grat{stroke:#22252D}

/* ---------- География ---------- */
.geo .h2{font-size:clamp(30px,3.3vw,46px);overflow-wrap:anywhere}
.geo{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:32px clamp(28px,5vw,80px);align-items:start}
.routes{margin-top:28px;border-top:1px solid var(--graphite-line)}
.routes li{border-bottom:1px solid var(--graphite-line)}
.rbtn{width:100%;display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:baseline;padding:13px 0;color:#E4E6EB;font-size:15px;transition:color .2s,padding .3s var(--ease),background .2s}
.rbtn .mono{color:var(--steel-on-dark);font-size:10.5px}
.rbtn .st{font-size:10px}
.rbtn .st.proj{color:var(--steel-on-dark)}
.rbtn .st.ok{color:#E4E6EB}
.rbtn:hover{padding-left:8px}
.rbtn[aria-pressed="true"]{color:#fff;font-weight:600;box-shadow:inset 2px 0 0 var(--red);padding-left:14px}
.rbtn[aria-pressed="true"] .mono:first-child{color:var(--red)}
.hint{margin-top:18px;color:var(--steel-on-dark);font-size:13.5px}
.mapbox{position:relative;min-width:0}
.mapscroll{overflow-x:auto;overscroll-behavior-x:contain;border:1px solid var(--graphite-line);background:#14161B;-webkit-overflow-scrolling:touch}
.mapscroll svg{display:block;width:100%;min-width:760px;height:auto}
.legend{display:flex;flex-wrap:wrap;gap:8px 24px;padding-top:14px;color:var(--steel-on-dark);align-items:center}
.legend i{display:inline-block;width:26px;height:0;border-top:1.5px solid #D9DCE3;vertical-align:middle;margin-right:8px}
.legend i.d{border-top:1.5px dashed #8F95A4}
.legend i.r{border-top:2.5px solid var(--red)}
.readout{margin-top:18px;border:1px solid var(--graphite-line);padding:16px 20px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 20px;align-items:baseline;min-height:84px}
.readout .nm{font-family:var(--f-display);font-weight:600;font-size:24px;letter-spacing:-.005em;line-height:1.15}
.readout .nt{grid-column:1/-1;color:#C9CDD6;font-size:14.5px}
.tip{position:absolute;z-index:5;pointer-events:none;background:var(--ink);border:1px solid #4A4E5A;color:#fff;padding:8px 10px;max-width:260px;opacity:0;transition:opacity .15s}
.tip.on{opacity:1}
.tip .nm{font-size:13.5px;font-weight:600;margin-bottom:2px}
.route{cursor:pointer}
.route .hit{stroke:transparent;stroke-width:16;fill:none}
.route .ln{fill:none;stroke:#D9DCE3;stroke-width:1.4;transition:stroke .2s,stroke-width .2s,opacity .2s}
.route.proj .ln{stroke:#8F95A4;stroke-dasharray:6 5}
.map-has-sel .route:not(.sel) .ln{opacity:.35}
.route.sel .ln,.route:hover .ln{stroke:var(--red);stroke-width:2.6;opacity:1}
.route.sel.proj .ln{stroke-dasharray:6 5}
.mlabel{font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;fill:#AEB3BF;text-transform:uppercase}
.mlabel.hi{fill:#fff}
.tick{font-family:var(--f-mono);font-size:9.5px;fill:#6D7280;letter-spacing:.05em}
.grat{stroke:#272A33;stroke-width:1;fill:none}
/* Цвет трассы, заданный в админке (атрибут stroke у группы), до правил выделения */
.route.custom .ln{stroke:inherit}
.route.custom.proj .ln{stroke:inherit}
.route.sel.custom .ln,.route.custom:hover .ln,.route.custom.hov .ln{stroke:var(--red)}
.route:focus{outline:none}
.route:focus-visible .ln{stroke:var(--red);stroke-width:2.6;opacity:1}
