/* Виджеты «Партнёры и работодатели» и «Программа курса». Чтобы отключить - уберите <link> на этот файл. */

/* при правках в редакторе не проигрываем переходы заново */
.b.nt *,.b.nt *::before,.b.nt *::after{transition:none!important}

.ptn-empty{padding:28px;text-align:center;border:1px dashed var(--edge);border-radius:var(--r);color:var(--mut)}

/* ===================== Партнёры ===================== */
.ptn-title{display:flex;align-items:center;justify-content:center;gap:18px;margin-bottom:24px;
  font-size:13px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--mut)}
.ptn-title::before,.ptn-title::after{content:"";flex:1;max-width:170px;height:1px;background:linear-gradient(90deg,transparent,var(--c1))}
.ptn-title::after{background:linear-gradient(270deg,transparent,var(--c1))}
.ptn-title span{text-align:center}

.ptn{position:relative;display:flex;align-items:center;justify-content:center;flex:none;height:88px;min-width:168px;padding:16px 30px;
  border:1px solid var(--edge);border-radius:var(--r);background:var(--panel);backdrop-filter:blur(6px);color:var(--tx);overflow:hidden;
  transition:transform .45s var(--e),border-color .4s var(--e),box-shadow .45s var(--e),background .4s var(--e)}
.ptn::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.2) 50%,transparent 70%);
  translate:-130% 0;transition:translate .9s var(--e)}
.ptn:hover{transform:translateY(-4px);border-color:var(--edge-hover);box-shadow:0 16px 34px rgba(var(--bkr),.5)}
.ptn:hover::after{translate:130% 0}
a.ptn:focus-visible{outline:2px solid var(--c2);outline-offset:3px}
.ptn img{display:block;width:auto;height:auto;max-width:150px;max-height:46px;object-fit:contain;transition:filter .45s var(--e),opacity .45s var(--e),transform .45s var(--e)}
.ptn:hover img{transform:scale(1.06)}
.ptn-name{font-weight:800;font-size:17px;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;color:var(--tx2);transition:color .4s var(--e)}
.ptn:hover .ptn-name{color:var(--c1)}

/* плашки */
.t-light .ptn{background:rgba(255,255,255,.95);border-color:transparent;backdrop-filter:none}
.t-light .ptn-name{color:#1b1d22}
.t-light .ptn:hover{border-color:transparent;box-shadow:0 16px 34px rgba(var(--bkr),.55),0 0 0 2px rgba(var(--c1r),.55)}
.t-light .ptn:hover .ptn-name{color:#000}
.t-none .ptn{background:transparent;border-color:transparent;backdrop-filter:none;box-shadow:none}
.t-none .ptn::after{display:none}
.t-none .ptn:hover{box-shadow:none}
/* серые логотипы */
.k-gray .ptn img{filter:grayscale(1);opacity:.72}
.k-gray .ptn:hover img{filter:none;opacity:1}
.k-gray .ptn-name{color:var(--mut)}
.k-gray .t-light .ptn-name,.t-light.k-gray .ptn-name{color:#6a6f78}

/* бегущая лента */
.ptn-mq{overflow:hidden;padding:12px 0 16px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent)}
.ptn-track{display:flex;width:max-content;animation:ptnMq var(--dur,30s) linear infinite;will-change:transform}
.ptn-mq.rev .ptn-track{animation-direction:reverse}
.ptn-mq:hover .ptn-track,.ptn-mq:focus-within .ptn-track{animation-play-state:paused}
.ptn-set{display:flex;flex:none}
.ptn-set .ptn{margin-right:20px}
@keyframes ptnMq{to{transform:translate3d(-50%,0,0)}}

/* сетка */
.ptn-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:16px}
.ptn-grid .ptn{flex:0 1 210px;min-width:0}
.ptn-grid .ptn.reveal{transition:opacity 1s var(--e),filter 1s var(--e),transform .5s var(--e),border-color .4s var(--e),box-shadow .45s var(--e),background .4s var(--e)}

@media(max-width:620px){
  .ptn{height:72px;min-width:136px;padding:12px 22px}
  .ptn img{max-width:116px;max-height:38px}
  .ptn-name{font-size:14px}
  .ptn-set .ptn{margin-right:14px}
  .ptn-grid .ptn{flex-basis:calc(50% - 8px)}
  .ptn-title{letter-spacing:.14em;gap:12px}
}
@media(prefers-reduced-motion:reduce){
  .ptn-mq{-webkit-mask-image:none;mask-image:none}
  .ptn-track{animation:none!important;width:auto;flex-wrap:wrap;justify-content:center}
  .ptn-set{flex-wrap:wrap;justify-content:center}
  .ptn-set .ptn{margin-bottom:14px}
  .ptn-set[aria-hidden]{display:none}
}

/* ===================== Программа курса ===================== */
.prg-title{position:relative;margin-bottom:22px;padding-bottom:14px;font-size:clamp(22px,3vw,30px);font-weight:800;line-height:1.25}
.prg-title::after{content:"";position:absolute;left:0;bottom:0;width:56px;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--c1),var(--c2))}

.prg-sum{display:flex;flex-wrap:wrap;align-items:stretch;gap:12px;margin-bottom:26px}
.prg-chip{display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:128px;padding:12px 18px;
  border:1px solid var(--edge);border-radius:var(--r);background:var(--panel);backdrop-filter:blur(6px)}
.prg-chip small{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--mut)}
.prg-chip b{font-size:20px;line-height:1.25;color:var(--c1)}
.prg .prg-all{margin-left:auto;align-self:center;padding:9px 18px;border:1px solid var(--edge);border-radius:999px;background:transparent;color:var(--c1);
  font-size:14px;font-weight:700;cursor:pointer;transition:background .35s var(--e),color .35s var(--e),border-color .35s var(--e)}
.prg .prg-all:hover{background:var(--c1);color:var(--on1);border-color:var(--c1)}

.prg-list{position:relative;display:grid;gap:14px;margin:0;padding:0;list-style:none}
.prg-item{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr);gap:16px;align-items:start;
  transition:opacity .7s var(--e) var(--d,0ms),translate .7s var(--e) var(--d,0ms)}
.prg-list:not(.in) .prg-item{opacity:0;translate:-18px 0}

/* вертикальная линия-маршрут между номерами; прорисовывается при появлении */
.prg-item::before,.prg-item::after{content:"";position:absolute;left:21px;top:32px;width:2px;height:calc(100% + 14px);border-radius:2px;pointer-events:none}
.prg-item::before{background:var(--line)}
.prg-item::after{background:linear-gradient(var(--c1),var(--c2));scale:1 0;transform-origin:top;transition:scale .7s var(--e) calc(var(--d,0ms) + .35s)}
.prg-list.in .prg-item::after{scale:1 1}
.prg-item:last-child::before,.prg-item:last-child::after{display:none}

.prg-n{position:relative;z-index:1;display:grid;place-items:center;width:44px;height:44px;margin-top:10px;border-radius:50%;
  background:var(--bk);border:2px solid var(--c1);color:var(--c1);font-size:15px;font-weight:800;font-variant-numeric:tabular-nums;
  transition:background .4s var(--e),color .4s var(--e),box-shadow .5s var(--e),transform .5s var(--e)}
.prg-item:hover .prg-n{transform:scale(1.06)}
.prg-item.open .prg-n{background:var(--c1);color:var(--on1);box-shadow:0 0 0 6px rgba(var(--c1r),.16)}

.prg-card{position:relative;min-width:0;overflow:hidden;border:1px solid var(--edge);border-radius:var(--r);background:var(--panel);backdrop-filter:blur(8px);
  transition:border-color .4s var(--e),box-shadow .45s var(--e)}
.prg-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(var(--c1),var(--c2));
  scale:1 0;transform-origin:top;transition:scale .55s var(--e)}
.prg-item.open .prg-card::before{scale:1 1}
.prg-item:hover .prg-card{border-color:var(--edge-hover)}
.prg-item.open .prg-card{border-color:var(--edge-hover);box-shadow:0 16px 38px rgba(var(--bkr),.45)}

/* заголовок модуля (кнопка: сбрасываем глобальные стили button) */
.prg .prg-head{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:14px;width:100%;padding:16px 20px;text-align:left;
  color:var(--tx);font-size:17px;font-weight:700;line-height:1.35;cursor:pointer;-webkit-tap-highlight-color:transparent}
.prg .prg-head:hover{background:none;color:var(--tx)}
.prg .prg-head:focus-visible{outline:2px solid var(--c2);outline-offset:-3px;border-radius:var(--r)}
.prg-item.flat .prg-head{cursor:default}
.prg-ttl{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.prg-ttl b{overflow-wrap:anywhere;transition:color .35s var(--e)}
.prg button.prg-head:hover .prg-ttl b{color:var(--c1)}
.prg-tag{padding:2px 10px;border-radius:999px;background:rgba(var(--c2r),.14);border:1px solid rgba(var(--c2r),.5);color:var(--c2);
  font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.prg-h{display:inline-flex;align-items:center;gap:6px;flex:none;padding:5px 13px;border-radius:999px;border:1px solid var(--edge);
  background:rgba(var(--c1r),.08);color:var(--c1);font-size:14px;font-weight:700;white-space:nowrap}
.prg-chev{flex:none;width:10px;height:10px;margin:0 4px 0 2px;border:solid var(--c1);border-width:0 2px 2px 0;rotate:45deg;translate:0 -3px;
  transition:rotate .5s var(--e),translate .5s var(--e)}
.prg-item.open .prg-chev{rotate:225deg;translate:0 3px}

/* раскрывающееся содержимое */
.prg-body{display:grid;grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows .55s var(--e),visibility 0s linear .55s}
.prg-item.open .prg-body{grid-template-rows:1fr;visibility:visible;transition:grid-template-rows .55s var(--e),visibility 0s}
.prg-clip{min-height:0;overflow:hidden}
.prg-in{margin:0 20px;padding:16px 0 22px;border-top:1px solid var(--line);color:var(--tx2);
  opacity:0;translate:0 -6px;transition:opacity .4s var(--e),translate .55s var(--e)}
.prg-item.open .prg-in{opacity:1;translate:none;transition-delay:.12s}
.prg-in p{white-space:pre-line;line-height:1.7}
.prg-top{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px 28px;margin:14px 0 0;padding:0;list-style:none}
.prg-in p+.prg-top{margin-top:16px}
.prg-top li{position:relative;padding-left:28px;line-height:1.5;opacity:0;translate:0 8px;
  transition:opacity .45s var(--e),translate .5s var(--e)}
.prg-item.open .prg-top li{opacity:1;translate:none;transition-delay:calc(var(--i,0) * 45ms + .18s)}
.prg-top li::before{content:"";position:absolute;left:0;top:.2em;width:17px;height:17px;border-radius:50%;background:rgba(var(--c1r),.14);border:1px solid rgba(var(--c1r),.55)}
.prg-top li::after{content:"";position:absolute;left:6px;top:calc(.2em + 3.5px);width:4px;height:8px;border:solid var(--c1);border-width:0 2px 2px 0;rotate:45deg}

@media(max-width:560px){
  .prg-item{grid-template-columns:34px minmax(0,1fr);gap:10px}
  .prg-item::before,.prg-item::after{left:16px;top:31px}
  .prg-n{width:34px;height:34px;margin-top:14px;font-size:13px}
  .prg .prg-head{padding:14px;gap:10px;font-size:16px}
  .prg-in{margin:0 14px}
  .prg-chip{flex:1 1 calc(50% - 6px);min-width:0}
  .prg .prg-all{margin-left:0;width:100%}
}
@media(prefers-reduced-motion:reduce){
  .prg-list:not(.in) .prg-item{opacity:1;translate:none}
  .prg-item::after{scale:1 1}
}
