/* ============================================================
   Nova FX · navfx.css — nav bar upgrade (all pages)
   Standing effects + scroll state + mobile menu.

   JEDEN system (2026-10-25, przepisane):
     .nv-sc        compact nav when scrolled (on <body>)
     .nv-ink       sliding underline under .nl links
     .nv-on        current-page link state
     body.nv-open  menu otwarte (JEDNA flaga, nie .nav.nv-open)
     .nv-burger    hamburger <=940px, trzy <span> (zgodnie z HTML)
     .nv-menu      panel; animowany opacity+transform, NIE display:none
   ============================================================ */

/* ---- nav base upgrades ---- */
.nav{transition:background .3s,border-color .3s,box-shadow .3s}
.nav .container{transition:height .3s}
body.nv-sc .nav{background:rgba(4,9,26,.9);border-color:rgba(127,176,255,.16);
  box-shadow:0 10px 40px rgba(2,8,25,.5)}
body.nv-sc .nav .container{height:56px}

/* bottom edge beam removed — perpetual sweep pod paskiem = template-look;
   zostaje czysty border + shadow w stanie .nv-sc */

/* ---- logo mark: slow breath + hover spin ---- */
.nav .logo img{transition:transform .45s cubic-bezier(.2,.8,.2,1),filter .3s}
.nav .logo:hover img{transform:rotate(8deg) scale(1.06);
  filter:drop-shadow(0 0 10px rgba(56,189,248,.7))}
.nav .logo{position:relative}
.nav .logo::after{content:'';position:absolute;inset:-4px;border-radius:8px;
  background:radial-gradient(60% 60% at 30% 30%,rgba(56,140,255,.16),transparent 70%);
  opacity:0;transition:opacity .3s;pointer-events:none}
.nav .logo:hover::after{opacity:1}

/* ---- link states: hover ink + active page ---- */
.nav a.nl{position:relative;padding:6px 2px;transition:color .2s}
.nav a.nl.nv-on{color:#e8f2ff}

/* sliding ink pill — single indicator: follows hover, rests under .nv-on */
.nv-ink{position:absolute;top:50%;height:22px;border-radius:7px;
  background:rgba(56,140,255,.10);box-shadow:inset 0 0 0 1px rgba(94,164,255,.18);
  opacity:0;pointer-events:none;transform:translateY(-50%);
  transition:left .32s cubic-bezier(.2,.9,.25,1.15),width .32s cubic-bezier(.2,.9,.25,1.15),opacity .25s,background .25s,box-shadow .25s;
  z-index:-1}
.nv-ink.nv-rest{background:rgba(56,140,255,.06);
  box-shadow:inset 0 0 0 1px rgba(94,164,255,.11)}
.nav .container{position:relative}

/* ============================================================
   PRO POLISH (2026-10-28)
   - .eyebrow: pill-box -> boxless micro-label (accent tick + uppercase)
     navfx.css laduje sie po nova.css, wiec ta regula wygrywa
   - h1: text-wrap balance + luzniejszy tracking na telefonie
   ============================================================ */
.eyebrow{background:none;border:0;padding:0;border-radius:0;
  color:#8fb9ff;letter-spacing:.14em;gap:9px}
.eyebrow::before{content:'';width:22px;height:1.5px;border-radius:2px;flex:none;
  background:linear-gradient(90deg,#2f6bff,#38bdf8)}
.eyebrow svg{color:#38bdf8;flex:none}

/* .lx-pill — generowany przez b-legal.js na stronach legal/post
   ("NOVA WALLET · LEGAL"), ten sam pro micro-label co .eyebrow */
.lx-pill{display:inline-flex;align-items:center;gap:9px;background:none;
  border:0;padding:0;border-radius:0;font-size:12px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:#8fb9ff}
.lx-pill::before{content:'';width:22px;height:1.5px;border-radius:2px;flex:none;
  background:linear-gradient(90deg,#2f6bff,#38bdf8)}
.lx-pill svg{width:13px;height:13px;color:#38bdf8;flex:none}

.hero h1,.hero2 h1,.doc h1{text-wrap:balance}
@media (max-width:640px){
  .hero h1,.hero2 h1,.doc h1{letter-spacing:-0.9px !important}
}

/* BUGFIX: .container.hero2 — per-page inline .hero2{padding:Npx 0 Mpx}
   zerowalo boczny padding .container -> hero jelo krawedzi ekranu na
   mobile (tekst uciety z lewej/prawej). Przywracamy 24px jak w .container. */
.container.hero2{padding-left:24px;padding-right:24px}

/* link entrance cascade */
@keyframes nv-in{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:none}}
body.nv-boot .nav a.nl{opacity:0;animation:nv-in .5s cubic-bezier(.2,.8,.2,1) forwards}
body.nv-boot .nav a.nl:nth-of-type(1){animation-delay:.05s}
body.nv-boot .nav a.nl:nth-of-type(2){animation-delay:.12s}
body.nv-boot .nav a.nl:nth-of-type(3){animation-delay:.19s}
body.nv-boot .nav a.nl:nth-of-type(4){animation-delay:.26s}
body.nv-boot .nav a.nl:nth-of-type(5){animation-delay:.33s}
body.nv-boot .nav a.nl:nth-of-type(6){animation-delay:.40s}
body.nv-boot .nav .logo{opacity:0;animation:nv-in .55s .02s cubic-bezier(.2,.8,.2,1) forwards}

/* ============================================================
   MOBILE (<=940px): logo lewo, burger prawo, panel pod navem.
   Desktop nietkniety.
   ============================================================ */

/* ---- burger: trzy kreski, morph w X ---- */
.nv-burger{display:none;width:42px;height:42px;border:0;background:transparent;
  cursor:pointer;padding:0;border-radius:11px;flex:none;margin-left:auto;
  align-items:center;justify-content:center;flex-direction:column;gap:5px;
  -webkit-tap-highlight-color:transparent;
  transition:background .2s}
.nv-burger:hover{background:rgba(94,164,255,.08)}
.nv-burger span{display:block;width:20px;height:2px;border-radius:2px;
  background:#cfe2ff;
  transition:transform .3s cubic-bezier(.2,.8,.2,1),opacity .18s ease}
body.nv-open .nv-burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.nv-open .nv-burger span:nth-child(2){opacity:0;transform:scaleX(.3)}
body.nv-open .nv-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---- panel: arkusz, animowany, nie display:none ---- */
/* KOMPOZYCJA (2026-10-27 #2, przepisane):
   - gora: pasek z logo + zamknieciem (sticky, zawsze widoczny)
   - srodek: JEDEN obszar przewijany (linki wysrodkowane + More)
   - dol: PRZYKLEJONY dock (akcje + jezyk + stopka) — nigdy nie uciety
   Poprzednio caly panel byl jednym scrollem, wiec dol uciekal za ekran,
   a popover jezyka byl przycinany przez overflow. */
.nv-menu{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99;
  display:flex;flex-direction:column;
  background:linear-gradient(180deg,#070d20 0%,#04091a 100%);
  -webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);
  opacity:0;transform:translateY(-8px);pointer-events:none;
  visibility:hidden;
  transition:opacity .26s ease,transform .3s cubic-bezier(.2,.8,.2,1),visibility .3s;
  overscroll-behavior:contain;
  height:100dvh;max-height:100dvh;
  padding-bottom:env(safe-area-inset-bottom,0px)}
body.nv-open .nv-menu{opacity:1;transform:none;pointer-events:auto;visibility:visible}

/* ---- naglowek panelu: logo lewo, X prawo (sticky) ---- */
.nv-menu-top{display:flex;align-items:center;justify-content:space-between;
  gap:12px;padding:0 20px;height:var(--nv-h,64px);flex:none;
  border-bottom:1px solid rgba(127,176,255,.10);
  background:rgba(7,13,32,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  position:relative;z-index:3}
.nv-menu-top .nv-menu-logo{display:flex;align-items:center;gap:9px;
  font:800 16px/1 Inter,system-ui,sans-serif;letter-spacing:-.02em;
  color:#eaf2ff;text-decoration:none}
.nv-menu-top .nv-menu-logo img{width:27px;height:27px;flex:none}
.nv-menu-top .nv-menu-logo .accent{color:#5ea4ff}
.nv-menu-x{width:38px;height:38px;flex:none;display:flex;align-items:center;
  justify-content:center;border:1px solid rgba(148,178,255,.16);
  background:rgba(255,255,255,.03);color:#cfe2ff;border-radius:11px;
  cursor:pointer;padding:0;-webkit-tap-highlight-color:transparent;
  transition:background .18s,border-color .18s,transform .18s}
.nv-menu-x:hover{background:rgba(94,164,255,.10);border-color:rgba(148,178,255,.32)}
.nv-menu-x:active{transform:scale(.94)}
.nv-menu-x svg{width:16px;height:16px}

/* ---- JEDYNY obszar przewijany ---- */
.nv-menu-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;
  overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  scrollbar-width:thin;scrollbar-color:rgba(148,178,255,.28) transparent}
.nv-menu-scroll::-webkit-scrollbar{width:6px}
.nv-menu-scroll::-webkit-scrollbar-thumb{background:rgba(148,178,255,.26);border-radius:3px}

/* ---- tresc: JEDNA os, WYSRODKOWANA, rowna szerokosc ---- */
.nv-menu-in{display:flex;flex-direction:column;align-items:stretch;
  padding:10px 20px 14px;max-width:520px;margin:0 auto;width:100%}

/* ---- linki nawigacji: wysrodkowane etykiety, separator, strzalka ---- */
.nv-menu a.nv-mlink{position:relative;display:flex;align-items:center;justify-content:center;
  padding:14px 30px;font:600 16px/1.2 Inter,system-ui,sans-serif;
  color:#dce8fb;letter-spacing:-.01em;text-decoration:none;
  border-bottom:1px solid rgba(127,176,255,.07);text-align:center;
  opacity:0;transform:translateY(8px);
  transition:opacity .3s cubic-bezier(.2,.8,.2,1),transform .3s cubic-bezier(.2,.8,.2,1),color .18s}
body.nv-open .nv-menu a.nv-mlink{opacity:1;transform:none}
.nv-menu a.nv-mlink:active{color:#7fc4ff}
.nv-menu a.nv-mlink svg{position:absolute;right:8px;top:50%;margin-top:-7px;
  width:14px;height:14px;flex:none;
  color:rgba(148,178,255,.42);transition:transform .2s,color .2s}
.nv-menu a.nv-mlink:active svg{transform:translateX(2px);color:#5ea4ff}
.nv-menu a.nv-mlink.nv-on{color:#7fc4ff}
.nv-menu a.nv-mlink.nv-on svg{color:#38bdf8}

/* ---- sekcja "More": mniejsza waga, wysrodkowana ---- */
.nv-more{display:none}
.nv-more-h{font:600 10.5px/1 Inter,system-ui,sans-serif;letter-spacing:.15em;
  text-transform:uppercase;color:rgba(148,178,255,.42);
  margin:20px 0 4px;text-align:center}
.nv-more a{position:relative;display:flex;align-items:center;justify-content:center;
  padding:11px 26px;color:#a9bfe0;text-decoration:none;
  font:500 14px/1.2 Inter,system-ui,sans-serif;text-align:center;
  border-bottom:1px solid rgba(127,176,255,.055);
  opacity:0;transform:translateY(6px);
  transition:opacity .3s cubic-bezier(.2,.8,.2,1),transform .3s cubic-bezier(.2,.8,.2,1),color .18s}
body.nv-open .nv-more a{opacity:1;transform:none}
.nv-more a:active{color:#7fc4ff}
.nv-more a svg{position:absolute;right:6px;top:50%;margin-top:-6.5px;
  width:13px;height:13px;flex:none;color:rgba(148,178,255,.3)}

/* ---- PRZYKLEJONY DOL: akcje + jezyk ---- */
.nv-menu-dock{flex:none;position:relative;z-index:2;
  padding:10px 20px 0;max-width:520px;margin:0 auto;width:100%;
  background:linear-gradient(180deg,rgba(4,9,26,.55),#04091a 42%);
  border-top:1px solid rgba(127,176,255,.09)}
.nv-menu .nv-mcta{display:flex;flex-direction:column;gap:7px}
.nv-menu .nv-mcta .btn{width:100%;justify-content:center;gap:7px;
  padding:11px 14px;font-size:14px;font-weight:600;
  white-space:nowrap;border-radius:12px;text-align:center}
.nv-menu .nv-mcta .btn svg{width:15px;height:15px;flex:none}
/* kolejnosc: Download (ghost) NAD Connect (solid) */
.nv-menu .nv-mcta .btn.gho{order:1}
.nv-menu .nv-mcta .btn:not(.gho){order:2}

/* ---- wiersz jezyka: globus + aktualny + chevron, popover w gore ---- */
.nv-lang-inline{position:relative;display:block;margin:8px 0 0;width:100%}
.nv-lang-trigger{display:flex;align-items:center;gap:9px;width:100%;
  padding:10px 13px;border:1px solid rgba(148,178,255,.14);
  background:rgba(255,255,255,.025);border-radius:12px;
  color:#c6d6ee;font:600 14px Inter,system-ui,sans-serif;
  cursor:pointer;-webkit-tap-highlight-color:transparent;
  transition:background .18s,border-color .18s}
.nv-lang-trigger:hover{background:rgba(94,164,255,.07);border-color:rgba(148,178,255,.28)}
.nv-lang-trigger .g{width:16px;height:16px;flex:none;color:#7fa8dd}
.nv-lang-trigger .cur{flex:1;text-align:left}
.nv-lang-trigger .ch{width:13px;height:13px;flex:none;color:rgba(148,178,255,.45);
  transition:transform .22s}
.nv-lang-inline.open .nv-lang-trigger .ch{transform:rotate(180deg)}

/* popover: absolute wzgledem wiersza, w GORE, ponad dockiem (z-index) */
.nv-lang-pop{position:absolute;left:0;right:0;bottom:calc(100% + 7px);
  padding:6px;border:1px solid rgba(148,178,255,.16);border-radius:13px;
  background:#0a1122;box-shadow:0 18px 44px rgba(2,6,20,.72);
  opacity:0;visibility:hidden;transform:translateY(6px) scale(.985);
  transform-origin:bottom center;
  transition:opacity .18s,transform .2s cubic-bezier(.2,.8,.2,1),visibility .2s;
  z-index:5;max-height:min(58vh,340px);overflow-y:auto}
.nv-lang-inline.open .nv-lang-pop{opacity:1;visibility:visible;transform:none}
.nv-lang-pop a{display:flex;align-items:center;justify-content:space-between;
  gap:10px;padding:10px 11px;border-radius:8px;color:#c6d6ee;
  font:500 14px Inter,system-ui,sans-serif;text-decoration:none;
  border-bottom:0;opacity:1;transform:none;transition:background .15s,color .15s}
.nv-lang-pop a:active{background:rgba(94,164,255,.12)}
.nv-lang-pop a.on{color:#5eead4;background:rgba(94,234,212,.07)}
.nv-lang-pop a .tick{width:13px;height:13px;flex:none;opacity:0}
.nv-lang-pop a.on .tick{opacity:1}

/* ---- footer: 6 kolumn tresci w gridzie liczonym na 4 -> przeskok wiersza.
   navfx.css laduje sie ostatni na kazdej stronie, wiec wygrywa kaskade. ---- */
.foot .cols{grid-template-columns:1.7fr repeat(5,minmax(0,1fr))}
@media (max-width:1080px){.foot .cols{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.foot .cols{grid-template-columns:1fr 1fr}}

/* ============================================================
   GLOBAL MICRO-POLISH (2026-10-27)
   Te komponenty sa zdefiniowane w inline <style> kazdej strony —
   tu tylko DODAJE sie interakcje, nic nie nadpisuje wizualnie.
   ============================================================ */
/* wiersze tabel porownawczych (.cmp) — subtelny hover jak w fintech */
.cmp tbody tr{transition:background .15s}
.cmp tbody tr:hover{background:rgba(148,178,255,.045)}
/* kafelki liczb i kart informacyjnych — ten sam jezyk co .card:hover */
.bignum div,.kcard{transition:transform .2s,border-color .2s,box-shadow .25s}
.bignum div:hover,.kcard:hover{transform:translateY(-3px);
  border-color:rgba(148,178,255,.32);
  box-shadow:0 14px 34px -10px rgba(2,8,25,.55),0 0 22px -8px rgba(56,140,255,.18)}

/* ---- stopka ---- */
.nv-menu .nv-mfoot{padding:8px 20px calc(11px + env(safe-area-inset-bottom,0px));
  text-align:center;font:500 10px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;
  color:rgba(148,178,255,.42);letter-spacing:.1em;text-transform:uppercase;flex:none}

@media (min-width:941px){
  .nv-menu,.nv-burger{display:none!important}
}

@media (max-width:940px){
  /* nav: logo lewo, burger prawo, ZERO linkow i CTA w pasku */
  .nav .container{gap:10px;height:var(--nv-h,64px)}
  .nav a.nl,.nav .sp,.nav .btn{display:none}
  /* selektor jezyka siedzi w panelu — w pasku tylko na desktopie */
  .nav .nv-lang{display:none}
  .nv-burger{display:flex}
  .nav .logo{margin-right:auto;min-width:0}
  .nav .logo span{white-space:nowrap}
  /* FLEX-OVERFLOW-FIX: .hero jest display:flex, a .container ma
     margin:0 auto + min-width:auto -> rozpycha sie do TRESCI (387px na
     ekranie 360px). min-width:0 + width:100% przywraca 100% rodzica. */
  .hero .container,.ha-hero .container{min-width:0;width:100%}
  /* .vx-flow (graf przeplywu) jest flex bez wrap -> na waskich ekranach
     drugi wezel wychodzil 18px za ekran. Zawijamy. */
  .vx-flow{flex-wrap:wrap;gap:12px;justify-content:flex-start}
  .vx-flow-node{max-width:100%}
  .nv-more{display:block}
  body.nv-open{overflow:hidden}
  body.nv-open .nav{background:rgba(4,9,26,.98);border-color:transparent}
}

/* ============================================================
   SCROLL-ROOT-FIX (2026-10-27)
   body{overflow-x:hidden} (b-*.css) robi z BODY scroll-container:
   przegladarka wymusza overflow-y:auto na body, a html zostaje
   visible. Skutek: window.scrollTo/scrollY nie dziala, tresc
   wyglada na ucieta, a mobilny pasek adresu zle sie chowa.
   Fix: przenosimy poziome ciecie na html (tam gdzie jego miejsce),
   a body oddaje scroll rootowi. overflow-x:clip nie tworzy
   scroll-kontenera, wiec nie ma tego efektu ubocznego.
   ============================================================ */
html{overflow-x:clip}
/* body tez clip: elementy position:fixed z inset:-60% (ax-grain) sa poza
   klipem html w czesci silnikow i rozpychaja scrollWidth. clip NIE tworzy
   scroll-kontenera (w odroznieniu od hidden), wiec scroll root zostaje na
   html i window.scrollTo dalej dziala. */
body{overflow-x:clip;overflow-y:visible}

/* ============================================================
   SELEKTOR JEZYKA (desktop) — 2026-10-27 #3
   POWOD: .nv-lang>button i .nv-lang-menu NIE MIALY zadnych regul,
   wiec przegladarka rysowala natywny bialy <button> z niebieskim
   tekstem, a opcje (gołe <a>) sklejaly sie w jedna linie i wychodzily
   za prawa krawedz. Wszystko ponizej to jeden spojny komponent.
   ============================================================ */
.nv-lang{position:static;flex:none;margin-left:8px}
.nv-lang>button{display:inline-flex;align-items:center;gap:6px;
  height:34px;padding:0 10px;border:1px solid rgba(148,178,255,.18);
  background:rgba(255,255,255,.04);color:#c6d6ee;border-radius:9px;
  font:600 11.5px/1 Inter,system-ui,sans-serif;letter-spacing:.06em;
  cursor:pointer;-webkit-tap-highlight-color:transparent;
  transition:background .18s,border-color .18s,color .18s}
.nv-lang>button:hover{background:rgba(94,164,255,.10);
  border-color:rgba(148,178,255,.34);color:#e8f2ff}
.nv-lang>button svg{flex:none;color:#7fa8dd}
.nv-lang>button:focus-visible{outline:2px solid rgba(56,189,248,.6);outline-offset:2px}

/* popover: absolute, w prawo od triggera, NIGDY za viewport */
/* right:0 liczy od triggera, a trigger jest na koncu paska -> popover
   wychodzi za ekran. Kotwiczymy do PRAWEJ krawedzi kontenera navu. */
.nv-lang-menu{position:absolute;right:0;top:calc(100% + 7px);min-width:150px;
  max-width:min(220px,calc(100vw - 24px));
  transform-origin:top right;
  padding:6px;border:1px solid rgba(148,178,255,.18);border-radius:12px;
  background:#0a1122;box-shadow:0 18px 44px rgba(2,6,20,.75);
  opacity:0;visibility:hidden;transform:translateY(-5px) scale(.985);
  transform-origin:top right;z-index:120;
  transition:opacity .1s ease,transform .12s cubic-bezier(.2,.8,.2,1),visibility 0s}
.nv-lang.open .nv-lang-menu{opacity:1 !important;visibility:visible !important;
  transform:none;transition:opacity .12s ease,transform .12s ease}
.nv-lang-menu a{display:flex;align-items:center;justify-content:space-between;
  gap:10px;padding:8px 10px;border-radius:8px;color:#c6d6ee;
  font:500 13px/1.2 Inter,system-ui,sans-serif;text-decoration:none;
  white-space:nowrap;transition:background .14s,color .14s}
.nv-lang-menu a:hover{background:rgba(94,164,255,.12);color:#e8f2ff}
.nv-lang-menu a.on{color:#5eead4;background:rgba(94,234,212,.08)}
.nv-lang-menu a:focus-visible{outline:2px solid rgba(56,189,248,.6);outline-offset:-2px}
/* tick aktualnego jezyka — jak w mobilnym .nv-lang-pop */
.nv-lang-menu a .tick{width:13px;height:13px;flex:none;opacity:0}
.nv-lang-menu a.on .tick{opacity:1}

/* 2. HOVER/ACTIVE NAV: zero systemowych ramek, tylko kolor + subtelny pill.
      :focus-visible zostaje dla klawiatury (a11y). */
/* b-*.css laduje sie PO navfx.css i ma .nav a.nl:hover{color:#fff}.
   Podbijamy specyficznosc, zeby hover byl spojny na kazdej stronie. */
/* hover = WYRAZNY niebieski akcent (bialy #fff z b-*.css byl nieodroznialny) */
.nav .container a.nl:hover,.nav a.nl:hover{color:#7fc4ff}
.nav .container a.nl:focus,.nav a.nl:focus{outline:none}
.nav .container a.nl:focus-visible,.nav a.nl:focus-visible{
  outline:2px solid rgba(56,189,248,.55);outline-offset:3px;border-radius:6px}
.nav .container a.nl:active,.nav a.nl:active{color:#7fc4ff}

/* 3. OFFSET POD FIXED HEADER — globalnie, z jednego miejsca.
      Strony z .aml-hero / .hero / .pool-hero itp. startowaly pod navem. */
:root{--nv-h:64px}
body{padding-top:0}
main, .aml-wrap, .pool-wrap, .dl-wrap, .otc-wrap, .imp-wrap, .sec-wrap,
.pts-wrap, .cmp-wrap, .blog-wrap, .upd-wrap, .ver-wrap, .fees-wrap,
.mc-wrap, .nokyc-wrap, .post-wrap, .legal-wrap, .air-wrap, .aid-wrap{
  scroll-margin-top:calc(var(--nv-h) + 12px)}
.aml-hero, .pool-hero, .dl-hero, .otc-hero, .imp-hero, .sec-hero,
.pts-hero, .cmp-hero, .blog-hero, .upd-hero, .ver-hero, .fees-hero,
.mc-hero, .nokyc-hero, .post-hero, .legal-hero, .air-hero, .aid-hero{
  padding-top:calc(var(--nv-h) + 34px)}
/* sekcje bez klasy hero: pierwszy blok tresci tez musi miec oddech */
.aml-wrap > section:first-child,
.pool-wrap > section:first-child{padding-top:calc(var(--nv-h) + 30px)}

/* ============================================================
   DESKTOP SITE-MAP DROPDOWN — 2026-10-27 #5
   Przycisk .nv-collapse w pasku (desktop only) otwiera panel .nv-drop
   z PELNA lista podstron i sekcji pogrupowanych logicznie.
   Naglowek zostaje na miejscu — nic sie nie zwija.

   POWOD zmiany: poprzedni tryb `body.nv-col` chowal wszystkie linki,
   CTA i selektor jezyka (utrwalony w localStorage!) — uzytkownik
   tracil nawigacje i zmiana jezyka wymagala dodatkowych klikniec.
   ============================================================ */
.nv-collapse{display:none;width:32px;height:32px;flex:none;margin-left:10px;
  align-items:center;justify-content:center;border:1px solid rgba(148,178,255,.16);
  background:rgba(255,255,255,.03);color:#a9bcdf;border-radius:9px;
  cursor:pointer;padding:0;-webkit-tap-highlight-color:transparent;
  transition:background .18s,border-color .18s,color .18s,transform .2s}
.nv-collapse:hover{background:rgba(94,164,255,.10);border-color:rgba(148,178,255,.32);color:#e8f2ff}
.nv-collapse:focus-visible{outline:2px solid rgba(56,189,248,.6);outline-offset:2px}
.nv-collapse svg{width:14px;height:14px;transition:transform .25s}
.nv-collapse[aria-expanded="true"]{background:rgba(56,140,255,.14);
  border-color:rgba(56,189,248,.42);color:#7fc4ff}
.nv-collapse[aria-expanded="true"] svg{transform:rotate(180deg)}

@media (min-width:941px){
  .nv-collapse{display:inline-flex}
  /* pasek nav jest szerszy niz grid tresci (1140): realna zawartosc
     ~1418px (logo+8 linkow+CTA+lang+chevron). Bez tego EN/chevron
     wypadaly za prawa krawedz viewportu na 1440-1900px.
     gap 34->26px: 12 przerw x 8px = ~96px, linki mieszcza sie od ~1360. */
  .nav .container{max-width:1420px;gap:26px}
  /* nv-tight: zawartosc paska szersza niz kontener (zoom, waski desktop)
     -> linki ida do panelu .nv-drop, pasek zostaje czytelny */
  body.nv-tight .nav a.nl{display:none}
  body.nv-tight .nav .nv-ink{display:none}
}

/* ---- panel: ciemny arkusz pod navem, prawa krawedz = wewnetrzna
   krawedz kontenera nav (1420 - 2*24 -> 686px od srodka viewportu).
   visibility 0s + delay: natychmiastowe otwarcie, plynne zamkniecie. */
.nv-drop{position:fixed;top:calc(var(--nv-h,64px) + 8px);
  right:max(16px, calc(50vw - 686px));
  width:min(760px, calc(100vw - 32px));
  max-height:calc(100dvh - var(--nv-h,64px) - 24px);
  overflow-y:auto;overscroll-behavior:contain;
  scrollbar-width:thin;scrollbar-color:rgba(148,178,255,.28) transparent;
  padding:10px 14px 14px;z-index:101;
  background:linear-gradient(180deg,#0b1428 0%,#08101f 100%);
  border:1px solid rgba(148,178,255,.18);border-radius:16px;
  box-shadow:0 24px 60px rgba(2,6,20,.72);
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  opacity:0;transform:translateY(-6px) scale(.985);transform-origin:top right;
  visibility:hidden;pointer-events:none;
  transition:opacity .16s ease,transform .18s cubic-bezier(.2,.8,.2,1),visibility 0s .18s}
body.nv-drop-open .nv-drop{opacity:1;transform:none;visibility:visible;
  pointer-events:auto;transition-delay:0s,0s,0s}
.nv-drop::-webkit-scrollbar{width:6px}
.nv-drop::-webkit-scrollbar-thumb{background:rgba(148,178,255,.26);border-radius:3px}

/* ---- gorna listwa: tytul + hint Esc ---- */
.nv-drop-top{display:flex;align-items:center;justify-content:space-between;
  padding:2px 8px 10px;border-bottom:1px solid rgba(127,176,255,.09);
  margin-bottom:10px}
.nv-drop-title{font:700 10.5px/1 Inter,system-ui,sans-serif;
  letter-spacing:.16em;text-transform:uppercase;color:rgba(148,178,255,.5)}
.nv-drop-esc{font:600 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace;
  color:rgba(148,178,255,.42);border:1px solid rgba(148,178,255,.16);
  border-radius:5px;padding:3px 6px}

/* ---- siatka grup ---- */
.nv-drop-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));
  gap:4px 16px}
.nv-drop-g{min-width:0}
.nv-drop-h{font:700 10px/1 Inter,system-ui,sans-serif;letter-spacing:.15em;
  text-transform:uppercase;color:rgba(148,178,255,.42);
  padding:8px 10px 7px}
.nv-drop a.nv-dlink{position:relative;display:flex;align-items:center;
  justify-content:space-between;gap:10px;padding:8px 10px;border-radius:9px;
  color:#c6d6ee;font:500 13.5px/1.25 Inter,system-ui,sans-serif;
  text-decoration:none;transition:background .15s,color .15s}
.nv-drop a.nv-dlink:hover{background:rgba(94,164,255,.12);color:#eaf3ff}
.nv-drop a.nv-dlink:focus-visible{outline:2px solid rgba(56,189,248,.55);
  outline-offset:-2px}
.nv-drop a.nv-dlink svg{width:13px;height:13px;flex:none;
  color:rgba(148,178,255,.38);transition:transform .18s,color .18s}
.nv-drop a.nv-dlink:hover svg{transform:translateX(2px);color:#5ea4ff}
.nv-drop a.nv-dlink.nv-on{color:#7fc4ff;background:rgba(56,140,255,.10)}
.nv-drop a.nv-dlink.nv-on svg{color:#38bdf8}

/* na mobile dropdown nie istnieje — burger + .nv-menu */
@media (max-width:940px){
  .nv-drop{display:none!important}
}
