/* вынесен из slider.js (SEC-11: style-src без unsafe-inline); подключается ссылкой <link> на страницах и страховочно из скрипта */
/* ── SLIDER ── */
.nvs{position:relative;width:100%;height:var(--nvs-h,480px);border-radius:20px;overflow:hidden;background:#07041a;font-family:inherit}
.nvs__vp{position:absolute;inset:0 0 80px 0;overflow:hidden;border-radius:20px 20px 0 0;cursor:grab}
.nvs__vp:active{cursor:grabbing}
.nvs__track{display:flex;height:100%;transition:transform .48s cubic-bezier(.4,0,.2,1);will-change:transform}
.nvs__slide{min-width:100%;height:100%;flex-shrink:0;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}

/* Blur-фон + чёткое фото поверх */
.nvs__bg{position:absolute;inset:-30px;background-size:cover;background-position:center;filter:blur(24px) brightness(.35) saturate(1.4);transform:scale(1.1);z-index:0;transition:opacity .4s}
.nvs__img{position:relative;z-index:1;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block;cursor:zoom-in;transition:transform .35s ease;-webkit-user-drag:none}
.nvs__img:hover{transform:scale(1.025)}
.nvs__vid{width:100%;height:100%;object-fit:contain;background:#000;display:block}

/* Прозрачность неактивных слайдов */
.nvs__slide{opacity:.55;transition:opacity .4s}
.nvs__slide--on{opacity:1}

/* ── Стрелки ── */
.nvs__btn{position:absolute;top:calc(50% - 40px);transform:translateY(-50%);z-index:20;width:46px;height:46px;border-radius:50%;background:rgba(10,6,28,.72);border:1.5px solid rgba(147,51,255,.35);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,border-color .2s,transform .2s;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.nvs__btn:hover{background:#9333ff;border-color:#9333ff;transform:translateY(-50%) scale(1.12);box-shadow:0 0 20px rgba(147,51,255,.45)}
.nvs__btn--l{left:14px}
.nvs__btn--r{right:14px}

/* ── UI панель (счётчик + точки) ── */
.nvs__ui{position:absolute;top:14px;right:14px;z-index:20;display:flex;align-items:center;gap:10px}
.nvs__cnt{background:rgba(10,6,28,.68);border:1px solid rgba(147,51,255,.25);border-radius:30px;padding:4px 12px;font-size:.75rem;font-weight:700;color:rgba(255,255,255,.85);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);letter-spacing:.04em}
.nvs__dots{display:flex;gap:5px}
.nvs__dot{width:7px;height:7px;border-radius:4px;background:rgba(255,255,255,.28);border:none;padding:0;cursor:pointer;transition:width .25s,background .25s}
.nvs__dot--on{width:24px;background:#fff}

/* ── Миниатюры ── */
.nvs__thumbs{position:absolute;bottom:0;left:0;right:0;height:80px;display:flex;align-items:center;gap:8px;padding:0 16px;background:rgba(7,4,26,.92);border-top:1px solid rgba(147,51,255,.18);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);overflow-x:auto;scroll-behavior:smooth;scrollbar-width:none;z-index:20}
.nvs__thumbs::-webkit-scrollbar{display:none}
.nvs__th{flex-shrink:0;width:88px;height:58px;border-radius:10px;overflow:hidden;border:2px solid rgba(255,255,255,.1);padding:0;cursor:pointer;background:#0c0920;transition:border-color .2s,transform .2s,box-shadow .2s}
.nvs__th img{width:100%;height:100%;object-fit:cover;display:block}
.nvs__th--on{border-color:#9333ff;transform:scale(1.07);box-shadow:0 0 14px rgba(147,51,255,.5)}
.nvs__th-play{width:100%;height:100%;background:#16094a;display:flex;align-items:center;justify-content:center;color:#9333ff;font-size:1.1rem}

/* ── ЛАЙТБОКС ── */
#nvs-lb{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .28s}
#nvs-lb.nvs-lb--on{opacity:1}
.nvslb__bg{position:absolute;inset:0;background:rgba(4,2,14,.97);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}
.nvslb__wrap{position:relative;z-index:1;max-width:94vw;max-height:92vh;display:flex;align-items:center;justify-content:center;border-radius:16px;overflow:hidden}
.nvslb__bg-blur{position:absolute;inset:-30px;background-size:cover;background-position:center;filter:blur(28px) brightness(.28);z-index:0;transition:background-image .2s}
.nvslb__img{position:relative;z-index:1;max-width:94vw;max-height:88vh;object-fit:contain;display:block;border-radius:8px;box-shadow:0 24px 80px rgba(0,0,0,.8);transition:opacity .18s}
.nvslb__x{position:fixed;top:16px;right:16px;z-index:2;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s}
.nvslb__x:hover{background:rgba(244,63,94,.5)}
.nvslb__arrow{position:fixed;top:50%;transform:translateY(-50%);z-index:2;width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s}
.nvslb__arrow:hover{background:rgba(147,51,255,.45)}
.nvslb__arrow--l{left:14px}
.nvslb__arrow--r{right:14px}
.nvslb__cnt{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);z-index:2;color:rgba(255,255,255,.6);font-size:.84rem;font-weight:600;background:rgba(10,6,28,.6);padding:4px 14px;border-radius:20px;backdrop-filter:blur(8px)}

/* ── ГАЛЕРЕЯ ── */
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.gallery-item{display:block;position:relative;border-radius:16px;overflow:hidden;background:#07041a;text-decoration:none;border:1px solid rgba(147,51,255,.12);transition:transform .25s,border-color .25s,box-shadow .25s}
.gallery-item:hover{transform:translateY(-5px);border-color:rgba(147,51,255,.5);box-shadow:0 20px 50px rgba(147,51,255,.18)}
.gallery-item--wide{grid-column:span 2}
.gallery-item img{width:100%;height:auto;display:block;transition:transform .4s ease}
.gallery-item:hover img{transform:scale(1.04)}
.gallery-item__overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(7,4,26,.9) 0%,transparent 55%);opacity:0;transition:opacity .3s;display:flex;flex-direction:column;justify-content:flex-end;padding:16px}
.gallery-item:hover .gallery-item__overlay{opacity:1}
.gallery-item__name{font-size:.9rem;font-weight:700;color:#fff}
.gallery-item__type{font-size:.75rem;color:#22d3f0;font-weight:600;margin-top:2px}
.gallery-skeleton{border-radius:16px;background:#0c0920;border:1px solid rgba(147,51,255,.08);min-height:200px;animation:nvsSkel 1.4s ease-in-out infinite}
.gallery-skeleton:first-child{grid-column:span 2;min-height:240px}
@keyframes nvsSkel{0%,100%{opacity:1}50%{opacity:.3}}

/* ── АДАПТИВ ── */
@media(max-width:900px){
  .nvs{--nvs-h:300px !important;border-radius:16px}
  .nvs__vp{inset:0 0 68px 0;border-radius:16px 16px 0 0}
  .nvs__thumbs{height:68px;gap:6px;padding:0 12px}
  .nvs__th{width:72px;height:48px;border-radius:8px}
  .nvs__btn{width:40px;height:40px}
  .gallery-grid{grid-template-columns:repeat(2,1fr);gap:8px}
  .gallery-item--wide{grid-column:span 2}
  .gallery-item__overlay{opacity:1}
}
@media(max-width:540px){
  .nvs{--nvs-h:240px !important;border-radius:14px}
  .nvs__vp{inset:0 0 60px 0;border-radius:14px 14px 0 0}
  .nvs__thumbs{height:60px;gap:5px;padding:0 10px}
  .nvs__th{width:60px;height:40px;border-radius:7px}
  .nvs__btn{width:36px;height:36px}
  .nvslb__arrow--l{left:6px}
  .nvslb__arrow--r{right:6px}
  .gallery-grid{grid-template-columns:1fr}
  .gallery-item--wide{grid-column:span 1}
}
  
