/* Общая оболочка сайтов НПК: фон, полоса направлений, шапка, подвал.
   Один файл на корень, текстиль и добавки — поэтому переход между направлениями не меняет вид.
   Классы npk-* свои: старые правила сайта добавок (.site-header, .site-footer) сюда не достают. */

:root{
  --npk-amber:#F5A623; --npk-ink:#080808; --npk-white:#f2f2f2; --npk-gray:#98a0a8; --npk-gray2:#c4c9ce;
  --npk-line:rgba(190,210,230,.1); --npk-max:1240px; --npk-dir-h:34px; --npk-head-h:66px;
  --npk-gutter:clamp(16px,4vw,40px);       /* один отступ для оболочки и содержимого: иначе шапка не в ряд с текстом */
  --npk-mono:ui-monospace,"JetBrains Mono",Menlo,Consolas,monospace;
  --npk-ease:cubic-bezier(.22,.61,.36,1);
}
.npk-wrap{max-width:var(--npk-max);margin:0 auto;padding-inline:var(--npk-gutter)}

/* ── живой фон ─────────────────────────────────────────────────────────────────────────── */
.npk-amb{position:fixed;inset:0;z-index:-3;pointer-events:none;overflow:hidden}
.npk-amb i{position:absolute;border-radius:50%;filter:blur(90px);opacity:.5;will-change:transform}
.npk-amb i:nth-child(1){width:58vw;height:58vw;left:-18vw;top:-22vw;background:radial-gradient(circle,rgba(245,166,35,.16),transparent 62%);animation:npk-drift1 46s ease-in-out infinite alternate}
.npk-amb i:nth-child(2){width:46vw;height:46vw;right:-16vw;top:34vh;background:radial-gradient(circle,rgba(245,166,35,.10),transparent 62%);animation:npk-drift2 58s ease-in-out infinite alternate}
.npk-amb i:nth-child(3){width:64vw;height:64vw;left:12vw;bottom:-40vw;background:radial-gradient(circle,rgba(120,150,190,.10),transparent 62%);animation:npk-drift1 70s ease-in-out infinite alternate-reverse}
@keyframes npk-drift1{to{transform:translate3d(9vw,7vh,0) scale(1.12)}}
@keyframes npk-drift2{to{transform:translate3d(-8vw,-9vh,0) scale(.92)}}
.npk-weave{position:fixed;inset:0;z-index:-2;pointer-events:none;opacity:.55;
  background:repeating-linear-gradient(0deg,rgba(255,255,255,.022) 0 1px,transparent 1px 4px),repeating-linear-gradient(90deg,rgba(255,255,255,.018) 0 1px,transparent 1px 4px);
  -webkit-mask-image:radial-gradient(ellipse 85% 70% at 50% 40%,#000 25%,transparent 78%);mask-image:radial-gradient(ellipse 85% 70% at 50% 40%,#000 25%,transparent 78%)}
.npk-grain{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.07;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}

/* ── полоса направлений ────────────────────────────────────────────────────────────────── */
.npk-dir{position:relative;z-index:1002;background:#050505;border-bottom:1px solid var(--npk-line);
  font:500 12.5px/1 Inter,system-ui,sans-serif;letter-spacing:.03em;color:#7c7c7c}
.npk-dir .npk-wrap{display:flex;align-items:center;gap:22px;height:var(--npk-dir-h)}
.npk-dir a{color:inherit;text-decoration:none;white-space:nowrap}
.npk-dir-home{font-weight:600;color:#b5b5b5;margin-right:auto}
.npk-dir-nav{display:flex;gap:22px;align-items:center}
.npk-dir-nav a{display:inline-flex;align-items:center;gap:7px;min-height:var(--npk-dir-h)}
.npk-dir-nav a::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.45}
.npk-dir-nav a[aria-current]{color:var(--npk-amber)} .npk-dir-nav a[aria-current]::before{opacity:1}
.npk-dir a:hover{color:#fff}

/* ── шапка ─────────────────────────────────────────────────────────────────────────────── */
.npk-head{position:sticky;top:0;z-index:1001;background:rgba(8,8,8,.92);backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--npk-line)}
.npk-head .npk-wrap{display:flex;align-items:center;gap:clamp(12px,2vw,28px);height:var(--npk-head-h)}
.npk-logo{display:flex;align-items:center;flex:none}
.npk-logo img{height:36px;width:auto;display:block}
.npk-nav{display:flex;align-items:center;gap:2px;margin-left:auto}
.npk-top{display:inline-flex;align-items:center;gap:6px;padding:10px 12px;border:0;border-radius:8px;background:none;cursor:pointer;
  font-family:inherit;font-weight:500;font-size:14.5px;line-height:1;color:var(--npk-gray);white-space:nowrap;text-decoration:none;transition:color .18s}
.npk-top:hover{color:var(--npk-white)}
.npk-top.npk-cur{color:var(--npk-white)}
.npk-top svg{width:10px;height:10px;transition:transform .2s var(--npk-ease)}
.npk-has-sub{position:relative}
.npk-has-sub:hover .npk-top svg,.npk-has-sub.npk-open .npk-top svg{transform:rotate(180deg)}
.npk-sub{position:absolute;left:50%;top:100%;transform:translate(-50%,6px);min-width:232px;padding:8px;border-radius:12px;
  background:#0e1114;border:1px solid var(--npk-line);box-shadow:0 24px 50px rgba(0,0,0,.6);
  display:flex;flex-direction:column;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s,transform .22s var(--npk-ease)}
.npk-has-sub:hover .npk-sub,.npk-has-sub:focus-within .npk-sub,.npk-has-sub.npk-open .npk-sub{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
.npk-sub a{padding:10px 12px;border-radius:8px;font-size:14.5px;color:var(--npk-gray2);text-decoration:none;white-space:nowrap;transition:background .15s,color .15s}
.npk-sub a:hover,.npk-sub a[aria-current]{background:rgba(245,166,35,.12);color:var(--npk-amber)}
.npk-act{display:flex;align-items:center;flex:none}
.npk-cta{display:inline-flex;align-items:center;min-height:40px;padding:9px 18px;border:1px solid var(--npk-amber);border-radius:10px;
  font-family:inherit;font-weight:700;font-size:14px;line-height:1;color:var(--npk-amber);text-decoration:none;white-space:nowrap;transition:background .18s,color .18s}
.npk-cta:hover{background:var(--npk-amber);color:#140c00}
.npk-tel{font-family:inherit;font-weight:700;font-size:14.5px;line-height:1;color:var(--npk-white);text-decoration:none;white-space:nowrap;padding:12px 4px}
.npk-burger{display:none;flex:none;width:44px;height:44px;flex-direction:column;justify-content:center;align-items:center;gap:5px;
  background:none;border:1px solid var(--npk-line);border-radius:10px;cursor:pointer}
.npk-burger span{display:block;width:18px;height:2px;border-radius:2px;background:var(--npk-white);transition:transform .2s var(--npk-ease),opacity .2s}
.npk-head.npk-menu .npk-burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.npk-head.npk-menu .npk-burger span:nth-child(2){opacity:0}
.npk-head.npk-menu .npk-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.npk-top:focus-visible,.npk-cta:focus-visible,.npk-burger:focus-visible,.npk-sub a:focus-visible,.npk-dir a:focus-visible,.npk-foot a:focus-visible,.npk-logo:focus-visible{outline:2px solid var(--npk-amber);outline-offset:3px;border-radius:4px}

@media (max-width:1180px){
  .npk-burger{display:inline-flex}
  .npk-nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;margin:0;
    padding:6px var(--npk-gutter) 20px;background:#080808;border-bottom:1px solid var(--npk-line);
    box-shadow:0 24px 40px rgba(0,0,0,.6);max-height:calc(100vh - var(--npk-head-h) - var(--npk-dir-h));overflow-y:auto}
  .npk-head.npk-menu .npk-nav{display:flex}
  .npk-nav>*{border-bottom:1px solid var(--npk-line)}
  .npk-nav>*:last-child{border-bottom:0}
  .npk-top{width:100%;justify-content:space-between;padding:15px 4px;border-radius:0;font-size:16px}
  .npk-has-sub .npk-sub{position:static;transform:none;opacity:1;visibility:visible;pointer-events:auto;min-width:0;padding:0 0 10px 12px;
    background:none;border:0;box-shadow:none;display:none}
  .npk-has-sub.npk-open .npk-sub{display:flex}
  .npk-sub a{padding:11px 8px;font-size:15px}
}
@media (max-width:520px){
  .npk-dir{font-size:11.5px;letter-spacing:0} .npk-dir .npk-wrap{gap:10px}
  .npk-dir-home{display:none}
  .npk-dir-nav{width:100%;justify-content:space-between;gap:10px}
  .npk-head .npk-wrap{gap:10px} .npk-logo img{height:32px}
  .npk-cta{padding:9px 13px;font-size:13px}
}
.npk-short{display:none}
/* узкие телефоны (320–400 px): полоса и шапка должны помещаться в строку без прокрутки вбок */
@media (max-width:400px){
  :root{--npk-gutter:14px}
  .npk-dir{font-size:11px} .npk-dir-nav{gap:8px}
  .npk-dir-nav a{gap:5px} .npk-dir-nav a::before{width:6px;height:6px}
  .npk-head .npk-wrap{gap:8px} .npk-logo img{height:28px}
  .npk-cta{padding:8px 10px;font-size:12px;border-radius:8px}
  .npk-burger{width:40px;height:40px}
  .npk-long{display:none} .npk-short{display:inline}   /* «Функциональный текстиль» в строку не помещается */
}

/* ── подвал ────────────────────────────────────────────────────────────────────────────── */
.npk-foot{position:relative;z-index:1;border-top:1px solid var(--npk-line);background:rgba(6,7,8,.72);padding:36px 0 18px;margin-top:0}
.npk-fgrid{display:grid;grid-template-columns:1.5fr repeat(var(--fcols,4),minmax(0,1fr));gap:28px 22px}
.npk-fbrand img{height:44px;width:auto;display:block;margin-bottom:12px}
.npk-fbrand p{font-size:13.5px;line-height:1.45;color:var(--npk-gray);max-width:30ch}
.npk-fcol h2{font:700 11px/1 Inter,system-ui,sans-serif;letter-spacing:.15em;text-transform:uppercase;color:var(--npk-amber);margin:0 0 12px}
.npk-fcol ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.npk-fcol a,.npk-fcol span{font-size:13.5px;line-height:1.35;color:var(--npk-gray2);text-decoration:none;transition:color .18s}
.npk-fcol a:hover{color:var(--npk-amber)}
.npk-fbot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;margin-top:28px;padding-top:14px;
  border-top:1px solid var(--npk-line);font-size:12px;color:#7a7a7a}
.npk-fbot a{color:#9aa1a8;text-decoration:none} .npk-fbot a:hover{color:var(--npk-amber)}
@media (max-width:1180px){.npk-fgrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px} .npk-fbrand{grid-column:1/-1}}
@media (max-width:820px){.npk-fgrid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.npk-fgrid{grid-template-columns:1fr} .npk-fbot{flex-direction:column;gap:6px}}

@media (prefers-reduced-motion:reduce){.npk-amb i{animation:none}
  *{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
  html{scroll-behavior:auto}}
