/* CEREBRUM v23 — тематические маршруты, отдельные от старого упражнения grid-route. */
.route-home-banner{display:flex;align-items:center;justify-content:space-between;gap:24px;border:1px solid var(--line);background:var(--surface);border-radius:18px;padding:clamp(20px,2.3vw,32px);margin-top:30px}
.route-home-banner h2{margin:7px 0 8px}
.route-home-banner p{font-size:14px;margin:0;color:var(--muted);max-width:740px}
.route-home-banner .button{flex-shrink:0}
.route-category-teaser{display:flex;align-items:center;flex-wrap:wrap;gap:18px;padding:18px 20px;background:var(--surface-alt);border:1px solid var(--line);border-radius:15px;margin:0 0 25px}
.route-category-teaser>div{flex:1 1 260px}
.route-category-teaser strong{display:block;margin:2px 0 3px}
.route-category-teaser p{font-size:13px;color:var(--muted);margin:0}
.learning-route-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:28px}
.route-tile{display:flex;flex-direction:column;min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:clamp(18px,1.7vw,26px);transition:border-color .16s,transform .16s}
.route-tile:hover{transform:translateY(-2px);border-color:var(--teal)}
.route-tile h2{font-size:clamp(19px,1.45vw,25px);line-height:1.25;margin:12px 0}
.route-tile>p{font-size:13px;color:var(--muted);line-height:1.7;margin:0 0 20px;overflow-wrap:anywhere}
.route-meter{height:9px;background:var(--surface-alt);border-radius:30px;overflow:hidden;border:1px solid var(--line);margin-top:auto}
.route-meter>i{display:block;height:100%;background:var(--teal2);border-radius:30px;transition:width .2s ease}
.route-foot{font-size:12px;font-weight:700;margin-top:13px;display:flex;align-items:center;gap:7px;color:var(--teal)}
.route-foot .ico{width:15px;height:15px}
.route-intro{max-width:1100px;margin:0 0 28px;padding:23px 26px;background:var(--surface);border:1px solid var(--line);border-radius:16px}
.route-intro p,.route-bottom p{font-size:15px;line-height:1.78}
.route-intro p:last-child,.route-bottom p:last-child{margin-bottom:0}
.route-progress-panel{border:1px solid var(--line);background:var(--surface-alt);border-radius:16px;padding:22px 25px;margin:24px 0}
.route-progress-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}
.route-progress-head h2{font-size:23px;margin:0}
.route-progress-head strong{font-size:14px;color:var(--teal)}
.route-meter-large{height:14px;margin:16px 0}
.route-notice{font-size:13px;color:var(--muted);margin:0}
.route-steps{list-style:none;margin:18px 0 32px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;counter-reset:route}
.route-step{display:flex;align-items:flex-start;gap:16px;padding:24px;border:1px solid var(--line);border-radius:17px;background:var(--surface);min-width:0;flex-wrap:wrap}
.route-step.is-next{border-color:var(--teal2)}
.route-step-number{width:43px;height:43px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;background:var(--mint);color:var(--teal);font-weight:800;font-size:19px}
.route-step.completed .route-step-number{background:var(--teal);color:var(--surface)}
.route-step-main{flex:1 1 210px;min-width:0}
.route-step-main h2{font-size:clamp(19px,1.5vw,24px);margin:7px 0 8px}
.route-step-main p{font-size:14px;margin:0 0 9px}
.route-step-main small{display:block;font-size:12px;color:var(--muted);line-height:1.55}
.route-step>.button{width:100%;margin-top:auto}
.route-bottom{background:var(--surface);padding:clamp(20px,2vw,30px);border:1px solid var(--line);border-radius:18px}
.route-bottom a:not(.text-link){color:var(--teal);text-decoration:underline;text-underline-offset:3px}
.route-mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.route-mini-grid>a{min-width:0;background:var(--surface-alt);border:1px solid var(--line);border-radius:13px;padding:17px}
.route-mini-grid a:hover{border-color:var(--teal)}
.route-mini-grid strong{font-size:14px;line-height:1.35;display:block;margin-bottom:8px}
.route-mini-grid span{font-size:12px;color:var(--muted);display:block;margin-bottom:8px}
@media (max-width:1400px){.learning-route-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:950px){.route-steps,.route-mini-grid{grid-template-columns:1fr 1fr}.route-step{padding:18px}}
@media (max-width:690px){.route-home-banner{flex-direction:column;align-items:stretch}.route-home-banner .button{align-self:flex-start}.learning-route-grid,.route-steps,.route-mini-grid{grid-template-columns:1fr}.route-step{padding:18px;gap:12px}.route-intro,.route-progress-panel{padding:18px}.route-category-teaser .button{width:100%}}
@media print{.route-home-banner .button,.route-step>.button,.route-category-teaser .button{display:none}.route-step,.route-tile{break-inside:avoid}}
/* Длинные русские названия не должны расширять экран 320 px. */
.page-header h1,.route-step-main h2,.route-tile h2{overflow-wrap:anywhere}
