/* Виджет «Путь студента». Чтобы отключить - уберите <link> на этот файл. */
.b.nt *,.b.nt *::before,.b.nt *::after{transition:none!important}
.pth-empty{padding:28px;text-align:center;border:1px dashed var(--edge);border-radius:var(--r);color:var(--mut)}

.pth-title{position:relative;margin-bottom:24px;padding-bottom:14px;font-size:clamp(22px,3vw,30px);font-weight:800;line-height:1.25}
.pth-title::after{content:"";position:absolute;left:0;bottom:0;width:56px;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--c1),var(--c2))}

/* старт -> финиш */
.pth-ends{display:flex;align-items:center;gap:16px;margin-bottom:32px}
.pth-end{display:flex;flex-direction:column;gap:2px;max-width:42%;padding:12px 18px;border:1px solid var(--edge);border-radius:var(--r);background:var(--panel);backdrop-filter:blur(6px)}
.pth-end small{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--mut)}
.pth-end b{font-size:16px;line-height:1.35}
.pth-end.go{margin-left:auto;border-color:var(--c1);background:rgba(var(--c1r),.12)}
.pth-end.go small{color:var(--c1)}
.pth-way{position:relative;flex:1;min-width:40px;height:2px;opacity:.85;background:repeating-linear-gradient(90deg,var(--c1) 0 8px,transparent 8px 16px);background-size:16px 2px;animation:pthMarch 1.2s linear infinite}
.pth-way::after{content:"";position:absolute;right:-1px;top:-4px;width:9px;height:9px;border:solid var(--c1);border-width:2px 2px 0 0;rotate:45deg}
@keyframes pthMarch{to{background-position:16px 0}}
@keyframes pthMarchV{to{background-position:0 16px}}

/* ---- вертикальная раскладка (по умолчанию; на телефоне и при выборе «всегда вертикально») ---- */
.pth-list{position:relative;display:grid;gap:14px;margin:0;padding:0;list-style:none}
.pth-run{display:none}
.pth-step{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr);gap:16px;align-items:start;
  transition:opacity .7s var(--e) var(--d,0ms),translate .7s var(--e) var(--d,0ms)}
.pth-list:not(.in) .pth-step{opacity:0;translate:-18px 0}
.pth-step::before,.pth-step::after{content:"";position:absolute;left:27px;top:28px;width:2px;height:calc(100% + 14px);border-radius:2px;pointer-events:none}
.pth-step::before{background:var(--line)}
.pth-step::after{background:linear-gradient(var(--c1),var(--c2));scale:1 0;transform-origin:top;transition:scale .35s linear calc(var(--d,0ms) + .3s)}
.pth-list.in .pth-step::after{scale:1 1}
.pth-step:last-of-type::before,.pth-step:last-of-type::after{display:none}

.pth-dot{position:relative;z-index:1;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;
  background:var(--bk);border:2px solid var(--c1);color:var(--c1);
  transition:scale .7s cubic-bezier(.34,1.56,.64,1) calc(var(--d,0ms) + .1s),background .4s var(--e),color .4s var(--e),box-shadow .5s var(--e)}
.pth-list:not(.in) .pth-dot{scale:.5}
.pth-dot svg{width:24px;height:24px}
.pth-dot em{position:absolute;right:-5px;top:-5px;min-width:22px;height:22px;padding:0 5px;border-radius:11px;background:var(--c2);color:var(--on2);
  font-size:11px;font-weight:800;font-style:normal;line-height:22px;text-align:center;font-variant-numeric:tabular-nums}
.pth-step:hover .pth-dot{background:var(--c1);color:var(--on1);box-shadow:0 0 0 7px rgba(var(--c1r),.16)}
.pth-step.goal .pth-dot{background:var(--c1);color:var(--on1)}
.pth-list.in .pth-step.goal .pth-dot{animation:pthRing 2.6s ease-out infinite 2.4s}
@keyframes pthRing{0%{box-shadow:0 0 0 0 rgba(var(--c1r),.55)}100%{box-shadow:0 0 0 20px rgba(var(--c1r),0)}}

.pth-card{display:flex;flex-direction:column;gap:6px;min-width:0;padding:14px 18px 16px;border:1px solid var(--edge);border-radius:var(--r);
  background:var(--panel);backdrop-filter:blur(8px);transition:transform .45s var(--e),border-color .4s var(--e),box-shadow .45s var(--e)}
.pth-step:hover .pth-card{transform:translateY(-3px);border-color:var(--edge-hover);box-shadow:0 14px 32px rgba(var(--bkr),.45)}
.pth-step.goal .pth-card{border-color:var(--edge-hover)}
.pth-dur{align-self:flex-start;padding:2px 10px;border-radius:999px;background:rgba(var(--c1r),.1);border:1px solid var(--edge);
  color:var(--c1);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.pth-card h4{font-size:18px;font-weight:800;line-height:1.3;overflow-wrap:anywhere}
.pth-card p{margin:0;color:var(--tx2);font-size:15px;line-height:1.6;white-space:pre-line}

/* ---- горизонтальная раскладка ---- */
@media(min-width:760px){
  .pth.l-h .pth-scroll{overflow-x:auto;padding:8px 2px 12px;scrollbar-width:thin;scrollbar-color:rgba(var(--c1r),.55) transparent}
  .pth.l-h .pth-list{grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:0;min-width:calc(var(--n) * 176px)}
  .pth.l-h .pth-step{display:flex;flex-direction:column;align-items:center;text-align:center;gap:0}
  .pth.l-h .pth-list:not(.in) .pth-step{translate:0 18px}
  .pth.l-h .pth-step::before,.pth.l-h .pth-step::after{display:none}
  .pth.l-h .pth-card{flex:1;align-self:stretch;margin:18px 9px 0;align-items:center}
  .pth.l-h .pth-dur{align-self:center}
  .pth.l-h .pth-list::before,.pth.l-h .pth-list::after{content:"";position:absolute;top:28px;left:calc(50% / var(--n));right:calc(50% / var(--n));height:2px;border-radius:2px;pointer-events:none}
  .pth.l-h .pth-list::before{background:var(--line)}
  .pth.l-h .pth-list::after{background:linear-gradient(90deg,var(--c1),var(--c2));scale:0 1;transform-origin:left;transition:scale calc(var(--n) * .28s) linear .25s}
  .pth.l-h .pth-list.in::after{scale:1 1}
  /* светящаяся точка бежит по линии */
  .pth.l-h .pth-run{display:block;position:absolute;top:24px;left:calc(50% / var(--n));width:10px;height:10px;margin-left:-5px;border-radius:50%;
    background:var(--c1);box-shadow:0 0 14px 3px rgba(var(--c1r),.7);opacity:0;pointer-events:none}
  .pth.l-h .pth-list.in .pth-run{animation:pthRun 5.5s ease-in-out infinite calc(var(--n) * .28s + 1s)}
}
@keyframes pthRun{0%{left:calc(50% / var(--n));opacity:0}10%{opacity:1}90%{opacity:1}100%{left:calc(100% - 50% / var(--n));opacity:0}}

@media(max-width:559px){
  .pth-ends{flex-direction:column;align-items:stretch;gap:0}
  .pth-end{max-width:none}
  .pth-end.go{margin-left:0}
  .pth-way{flex:none;width:2px;height:28px;min-width:0;margin-left:28px;background:repeating-linear-gradient(180deg,var(--c1) 0 8px,transparent 8px 16px);background-size:2px 16px;animation:pthMarchV 1.2s linear infinite}
  .pth-way::after{right:auto;left:-4px;top:auto;bottom:-1px;rotate:135deg}
  .pth-step{grid-template-columns:48px minmax(0,1fr);gap:12px}
  .pth-dot{width:48px;height:48px}
  .pth-step::before,.pth-step::after{left:23px;top:24px}
  .pth-card{padding:12px 14px 14px}
}
@media(prefers-reduced-motion:reduce){
  .pth-list:not(.in) .pth-step{opacity:1;translate:none}
  .pth-list:not(.in) .pth-dot{scale:1}
  .pth-step::after{scale:1 1}
  .pth.l-h .pth-list::after{scale:1 1}
  .pth-run{display:none!important}
}
