/**
Theme Name: Astra Child
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-child
Template: astra
*/
/* =============================================================================
   1kV - FUNDAMENT WYMIENNOSCI  (wklejka P18 par. 2, wdrozenie: watek Hanto WWW s4)
   Zrodlo: deliverables/makieta_hanto_v5-softit.html  (md5 06DE2604...)
   Data: 2026-08-17

   ZASADA: wszystkie wartosci ZALEZNE OD MARKI siedza w tokenach nizej.
   Serwis satelicki (securapro, 400kv, securiti) powstaje przez PODMIANE
   TOKENOW, nie przez przepisywanie regul.
   Wprost, poza tokenami, zostaja WYLACZNIE wartosci niezalezne od marki:
   biel (#fff) oraz przezroczystosci w cieniach i nakladkach (rgba). Kontrola:
   grep na hex poza blokiem :root ma zwracac tylko #fff.

   PREFIKS: `onekv-` dla klas, animacji i tokenow (nie koliduje z Astra ani
   Spectra). Decyzja Dariusza 2026-08-17: wzorce i komponenty sa WSPOLNE DLA
   GRUPY 1kV i wedruja na serwisy satelickie (securapro, 400kv, securiti),
   wiec nazwa nie moze mowic "hanto".
   Dlaczego `onekv-`, a nie `1kv-`: selektor `.1kv-cos` NIE JEST nazwa klasy -
   parser czyta go jako liczbe z jednostka, wiec regula nigdy nie trafia i robi
   to BEZ zadnego komunikatu o bledzie (sprawdzone parserem 2026-08-17).
   Identyfikator CSS nie moze zaczynac sie od cyfry. Wlasciwosc niestandardowa
   `--1kv-x` byla by poprawna, ale mieszanie dwoch prefiksow w jednym arkuszu
   jest gorsze niz jeden, ktory dziala wszedzie.
   ============================================================================= */

:root{
  /* --- marka (podmieniane per serwis) --- */
  --onekv-accent:#E3000F;
  --onekv-accent-d:#b8000c;
  --onekv-accent-soft:rgba(227,0,15,.10);
  --onekv-accent-line:#f1c2c5;
  --onekv-accent-1:#ff5560;    /* gradient przycisku serwisowego - najjasniejszy */
  --onekv-accent-2:#f01423;
  --onekv-accent-3:#8e0009;    /* gradient przycisku serwisowego - najciemniejszy */

  /* --- neutralne (wspolne dla grupy 1kV) --- */
  --onekv-slate:#232733;
  --onekv-slate-2:#171a23;
  --onekv-logo-gray:#C8CACC;   /* grafit logo na ciemnym tle - regula stala */
  --onekv-head:#140f12;
  --onekv-body:#6d727a;
  --onekv-soft:#f7f8fa;
  --onekv-tint:#eceff8;
  --onekv-line:#e7e9ee;
  --onekv-ico:#39404c;

  --onekv-muted:#a2a7b0;       /* tekst wyciszony na jasnym tle (nazwy marek) */
  --onekv-muted-dark:#b9bec8;  /* tekst wyciszony na ciemnym pasku */
  --onekv-muted-foot:#9096a2;  /* daty i metadane w stopce */
  --onekv-thumb-bg:#39404c;    /* tlo miniatury przed zaladowaniem */
  --onekv-accent-hi:#ffb4b9;   /* rozjasniony akcent - hover na ciemnym tle */
  --onekv-ph-a:#3a4152; --onekv-ph-b:#262b38; --onekv-ph-c:#20242f;   /* placeholder ciemny */
  --onekv-ph-d:#e3e7ee; --onekv-ph-e:#ccd3de;                          /* placeholder jasny */

  /* --- ksztalt --- */
  --onekv-r:5px;
  --onekv-sh:0 10px 30px rgba(20,15,18,.09);
  --onekv-wrap:1170px;

  /* --- typografia --- */
  --onekv-font-h:'Jost',sans-serif;
  --onekv-font-b:'Fira Sans',sans-serif;
}

/* =============================================================================
   PLACEHOLDERY ZDJEC - do czasu dostarczenia zdjec przez Dariusza.
   Uzywane zamiast <img>; zachowuja proporcje slotu, wiec uklad jest docelowy.
   Po podmianie na zdjecia klasy mozna zostawic (beda niewidoczne pod obrazem).
   ============================================================================= */
.onekv-ph{display:block;width:100%;border-radius:var(--onekv-r)}
.onekv-ph-dark{background:linear-gradient(135deg,var(--onekv-ph-a) 0%,var(--onekv-ph-b) 60%,var(--onekv-ph-c) 100%)}
.onekv-ph-light{background:linear-gradient(135deg,var(--onekv-ph-d) 0%,var(--onekv-ph-e) 100%)}

/* =============================================================================
   IKONY SVG - autorski zestaw z makiety (kreska 2px, grafit + akcent)
   ============================================================================= */
.onekv-ic{display:inline-block;vertical-align:middle}
.onekv-ic svg{display:block;width:100%;height:100%;fill:none;stroke:var(--onekv-ico);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.onekv-ic svg .a{stroke:var(--onekv-accent)}
.onekv-ic svg .af{fill:var(--onekv-accent);stroke:none}
.onekv-ic svg .wf{fill:#fff;stroke:#fff;stroke-width:2.2}

/* =============================================================================
   NAGLOWEK SEKCJI - eyebrow z kreskami po bokach
   ============================================================================= */
.onekv-eyebrow{font-family:var(--onekv-font-h);font-weight:500;font-size:16px;color:var(--onekv-accent);display:inline-flex;align-items:center;gap:12px;margin-bottom:6px}
.onekv-eyebrow::before,.onekv-eyebrow::after{content:"";width:30px;height:2px;background:var(--onekv-accent)}

/* =============================================================================
   SLIDER MAREK - bezszwowa petla (dwie identyczne grupy, translateX(-50%))
   ============================================================================= */
.onekv-marquee-wrap{overflow:hidden}
.onekv-marquee{display:flex;width:max-content;animation:onekv-mq 34s linear infinite}
.onekv-marquee:hover{animation-play-state:paused}
@keyframes onekv-mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.onekv-grp{display:flex;gap:22px;padding-right:22px}
.onekv-brand{flex:0 0 auto;border:1px solid var(--onekv-line);border-radius:var(--onekv-r);padding:16px 32px;font-family:var(--onekv-font-h);font-weight:600;font-size:17px;color:var(--onekv-muted);white-space:nowrap;background:#fff;transition:all .2s}
.onekv-brand:hover{color:var(--onekv-accent);border-color:var(--onekv-accent-line)}

/* =============================================================================
   PRZYCISK SERWISOWY 24/7 - klikalny, docelowo formularz zgloszenia
   ============================================================================= */
.onekv-srv-btn{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:170px;height:170px;border-radius:50%;background:radial-gradient(circle at 32% 24%,var(--onekv-accent-1) 0%,var(--onekv-accent-2) 38%,var(--onekv-accent) 62%,var(--onekv-accent-3) 100%);box-shadow:0 18px 44px rgba(227,0,15,.5),inset 0 -8px 22px rgba(0,0,0,.22);display:grid;place-items:center;text-align:center;text-decoration:none;transition:transform .2s;animation:onekv-puls 2.4s ease-out infinite}
.onekv-srv-btn:hover{transform:translate(-50%,-50%) scale(1.06);animation-play-state:paused}
.onekv-srv-btn::before{content:"";position:absolute;inset:7px;border-radius:50%;border:2px dashed rgba(255,255,255,.55);animation:onekv-spin247 30s linear infinite}
@keyframes onekv-spin247{to{transform:rotate(360deg)}}
@keyframes onekv-puls{
  0%{box-shadow:0 18px 44px rgba(227,0,15,.5),inset 0 -8px 22px rgba(0,0,0,.22),0 0 0 0 rgba(227,0,15,.55)}
  70%{box-shadow:0 18px 44px rgba(227,0,15,.5),inset 0 -8px 22px rgba(0,0,0,.22),0 0 0 30px rgba(227,0,15,0)}
  100%{box-shadow:0 18px 44px rgba(227,0,15,.5),inset 0 -8px 22px rgba(0,0,0,.22),0 0 0 0 rgba(227,0,15,0)}
}
.onekv-srv-btn u{display:block;text-decoration:none;font-family:var(--onekv-font-h);font-size:12px;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.92);padding-left:.3em}
.onekv-srv-btn b{font-family:var(--onekv-font-h);color:#fff;font-size:46px;font-weight:700;line-height:1.05;display:block;text-shadow:0 2px 6px rgba(0,0,0,.25);margin:2px 0 8px}
.onekv-srv-btn .onekv-chip{display:inline-flex;align-items:center;gap:6px;background:#fff;color:var(--onekv-accent);font-family:var(--onekv-font-h);font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:6px 16px;border-radius:999px;box-shadow:0 4px 10px rgba(0,0,0,.25);transition:gap .2s}
.onekv-srv-btn:hover .onekv-chip{gap:10px}
.onekv-collage{position:relative}

/* =============================================================================
   KARTA USLUGI - zdjecie + ciemny pasek podpisu
   ============================================================================= */
.onekv-scard{position:relative;border-radius:var(--onekv-r);overflow:hidden;box-shadow:var(--onekv-sh);text-decoration:none;display:block}
.onekv-scard .onekv-im{aspect-ratio:16/11.5;overflow:hidden}
.onekv-scard .onekv-im img,.onekv-scard .onekv-im .onekv-ph{width:100%;height:100%;object-fit:cover;transition:transform .4s;border-radius:0}
.onekv-scard:hover .onekv-im img{transform:scale(1.06)}
.onekv-scard .onekv-cap{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:13px;padding:15px 18px;background:rgba(17,20,29,.88)}
.onekv-scard .onekv-cap .onekv-ic{width:30px;height:30px;flex:0 0 30px}
.onekv-scard .onekv-cap .onekv-ic svg{stroke:var(--onekv-logo-gray)}
.onekv-scard .onekv-cap .onekv-ic svg .a{stroke:var(--onekv-accent)}
.onekv-scard .onekv-cap h3{color:#fff;font-size:17.5px;font-weight:600;line-height:1.2;margin:0}
.onekv-scard .onekv-cap p{color:var(--onekv-muted-dark);font-size:12.5px;margin-top:2px;line-height:1.4;margin-bottom:0}

/* =============================================================================
   JAK PRACUJEMY - okragle zdjecia w kreskowanej obwodce + numerowane odznaki
   ============================================================================= */
.onekv-hstep{text-align:center}
.onekv-hstep .onekv-circ{position:relative;width:min(100%,190px);aspect-ratio:1;margin:0 auto 22px;border-radius:50%;padding:8px;border:1.5px dashed var(--onekv-accent-line)}
.onekv-hstep .onekv-circ img,.onekv-hstep .onekv-circ .onekv-ph{width:100%;height:100%;object-fit:cover;border-radius:50%}
.onekv-hstep .onekv-num{position:absolute;top:4px;right:4px;width:44px;height:44px;border-radius:50%;background:var(--onekv-accent);color:#fff;display:grid;place-items:center;font:600 17px var(--onekv-font-h);box-shadow:0 6px 14px rgba(227,0,15,.35);border:3px solid #fff}
.onekv-hstep h3{font-size:19px;font-weight:600;margin-bottom:6px}
.onekv-hstep p{font-size:13.5px;line-height:1.7;max-width:30ch;margin:0 auto}

/* =============================================================================
   STOPKA - przewijane listy (zakres uslug, wpisy bloga)
   ============================================================================= */
.onekv-f-scroll{max-height:248px;overflow-y:auto;padding-right:10px;scrollbar-width:thin;scrollbar-color:rgba(227,0,15,.65) rgba(255,255,255,.08)}
.onekv-f-scroll::-webkit-scrollbar{width:5px}
.onekv-f-scroll::-webkit-scrollbar-track{background:rgba(255,255,255,.08);border-radius:3px}
.onekv-f-scroll::-webkit-scrollbar-thumb{background:rgba(227,0,15,.65);border-radius:3px}
.onekv-bpost{display:flex;gap:14px;align-items:flex-start;text-decoration:none;margin-bottom:18px}
.onekv-bpost img,.onekv-bpost .onekv-ph{width:74px;height:60px;object-fit:cover;border-radius:4px;flex:0 0 74px;background:var(--onekv-thumb-bg)}
.onekv-bpost b{display:block;color:#fff;font-family:var(--onekv-font-h);font-weight:500;font-size:14.5px;line-height:1.35}
.onekv-bpost:hover b{color:var(--onekv-accent-hi)}
.onekv-bpost i{font-style:normal;font-size:12px;color:var(--onekv-muted-foot);display:block;margin-top:4px}
.onekv-dark-text{color:var(--onekv-logo-gray)}

/* =============================================================================
   DOSTEPNOSC - zadna animacja nie jest obowiazkowa
   ============================================================================= */
@media(prefers-reduced-motion:reduce){
  .onekv-marquee,.onekv-srv-btn,.onekv-srv-btn::before{animation:none}
  .onekv-scard:hover .onekv-im img{transform:none}
}

/* ===== KONIEC BLOKU 1kV ===== */

/* =============================================================================
   1kV - STRONA GLOWNA HANTO: pelny port makiety v5
   Zrodlo:  makieta_hanto_v5-softit.html  (39 202 B, md5 c22f833860b11ab0dbd6ee16ce7795d1)
   Wersja zatwierdzona przez Dariusza; port automatyczny, nie przepisywany recznie.

   ZASADY PORTU (zeby nie kolidowac z Astra i Spectra):
   1. Wszystko poza :root jest ZASCOPOWANE pod .onekv-page - arkusz nie moze
      dotknac naglowka, stopki ani panelu, bo makieta miala globalne resety.
   2. Globalne resety makiety (*, html) NIE zostaly przeniesione; regula body
      przepisana na .onekv-page.
   3. Wszystkie klasy i animacje maja prefiks onekv- (decyzja Dariusza: wzorce
      sa wspolne dla grupy 1kV; `.1kv-` bylo by niepoprawne - patrz nizej).
   4. Kolory wylacznie przez tokeny --onekv-* z :root. Satelita = podmiana tokenow.

   Kontrola przed wdrozeniem: parser CSS 175 regul / 0 bledow, nawiasy 202/202,
   0 selektorow bez scope, 0 klas bez prefiksu, 0 odwolan var(--) spoza --onekv-.
   ============================================================================= */

:root{--onekv-accent:#E3000F; --onekv-accent-d:#b8000c;
  --onekv-slate:#232733; --onekv-slate-2:#171a23;
  --onekv-logo-gray:#C8CACC;             
  --onekv-head:#140f12; --onekv-body:#6d727a;
  --onekv-bg:#fff; --onekv-soft:#f7f8fa; --onekv-tint:#eceff8; --onekv-line:#e7e9ee;
  --onekv-r:5px;
  --onekv-sh:0 10px 30px rgba(20,15,18,.09);
  --onekv-font-h:"Jost",sans-serif; --onekv-font-b:"Fira Sans",sans-serif;}
.onekv-page{font-family:var(--onekv-font-b);font-size:15px;line-height:1.85;color:var(--onekv-body);background:var(--onekv-bg)}
.onekv-page img{max-width:100%;display:block}
.onekv-page a{color:inherit}
.onekv-page .onekv-wrap{max-width:1170px;margin:0 auto;padding:0 24px}
.onekv-page :focus-visible{outline:2px solid var(--onekv-accent);outline-offset:2px}
.onekv-page h1, .onekv-page h2, .onekv-page h3, .onekv-page h4{font-family:var(--onekv-font-h);color:var(--onekv-head);line-height:1.22}
.onekv-page .onekv-ph-dark{background:linear-gradient(135deg,#3a4152 0%,#262b38 60%,#20242f 100%)}
.onekv-page .onekv-ph-light{background:linear-gradient(135deg,#e3e7ee 0%,#ccd3de 100%)}
.onekv-page .onekv-ic{display:inline-block;vertical-align:middle}
.onekv-page .onekv-ic svg{display:block;width:100%;height:100%;fill:none;stroke:#39404c;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.onekv-page .onekv-ic svg .onekv-a{stroke:var(--onekv-accent)}
.onekv-page .onekv-ic svg .onekv-af{fill:var(--onekv-accent);stroke:none}
.onekv-page .onekv-ic svg .onekv-wf{fill:#fff;stroke:#fff;stroke-width:2.2}
.onekv-page .onekv-btn{display:inline-block;font-family:var(--onekv-font-h);font-weight:600;font-size:15.5px;letter-spacing:.01em;text-decoration:none;padding:14px 32px;border-radius:4px;transition:all .2s;cursor:pointer;border:0}
.onekv-page .onekv-btn-a{background:var(--onekv-accent);color:#fff;box-shadow:0 8px 18px rgba(227,0,15,.22)}
.onekv-page .onekv-btn-a:hover{background:var(--onekv-accent-d);transform:translateY(-1px)}
.onekv-page .onekv-btn-o{border:1.5px solid rgba(255,255,255,.85);color:#fff;background:transparent}
.onekv-page .onekv-btn-o:hover{background:#fff;color:var(--onekv-head)}
.onekv-page .onekv-sec-head{text-align:center;max-width:620px;margin:0 auto 56px}
.onekv-page .onekv-sec-head .onekv-eyebrow{font-family:var(--onekv-font-h);font-weight:500;font-size:16px;color:var(--onekv-accent);display:inline-flex;align-items:center;gap:12px;margin-bottom:6px}
.onekv-page .onekv-sec-head .onekv-eyebrow::before, .onekv-page .onekv-sec-head .onekv-eyebrow::after{content:"";width:34px;height:2px;background:var(--onekv-accent)}
.onekv-page .onekv-sec-head h2{font-size:clamp(28px,3.4vw,38px);font-weight:600}
.onekv-page .onekv-sec-head .onekv-under{width:64px;height:3px;background:var(--onekv-accent);margin:16px auto 18px;border-radius:2px}
.onekv-page .onekv-sec-head p{font-size:14.5px;line-height:1.8}
.onekv-page header{position:sticky;top:0;z-index:80;background:#fff;box-shadow:0 2px 16px rgba(20,15,18,.08)}
.onekv-page header .onekv-wrap{display:flex;align-items:center;gap:22px;height:88px}
.onekv-page .onekv-logo{display:block;flex:0 0 auto}
.onekv-page .onekv-logo img{height:58px;width:auto}
.onekv-page nav.onekv-main{margin-left:auto;display:flex;gap:26px;align-items:center}
.onekv-page nav.onekv-main a{font-family:var(--onekv-font-h);font-weight:500;font-size:16px;color:var(--onekv-head);text-decoration:none;padding:8px 0;position:relative}
.onekv-page nav.onekv-main a::after{content:"";position:absolute;left:0;bottom:2px;width:0;height:2px;background:var(--onekv-accent);transition:width .2s}
.onekv-page nav.onekv-main a:hover{color:var(--onekv-accent)}
.onekv-page nav.onekv-main a:hover::after{width:100%}
.onekv-page header .onekv-btn{padding:12px 26px}
.onekv-page .onekv-burger{display:none;margin-left:auto;background:none;border:0;width:44px;height:44px;cursor:pointer}
.onekv-page .onekv-burger span{display:block;width:26px;height:3px;background:var(--onekv-head);margin:5px auto;border-radius:2px}
.onekv-page .onekv-mnav{display:none;background:var(--onekv-slate);padding:10px 0 16px}
.onekv-page .onekv-mnav a{display:block;padding:12px 24px;color:#e8eaef;text-decoration:none;font-family:var(--onekv-font-h);font-weight:500;border-bottom:1px solid rgba(255,255,255,.06)}
.onekv-page body.onekv-nav-open .onekv-mnav{display:block}
@media (max-width:1060px){
  .onekv-page nav.onekv-main, .onekv-page header .onekv-btn-a.onekv-desktop{display:none}
  .onekv-page .onekv-burger{display:block}
  .onekv-page .onekv-logo img{height:48px}
}
@media (min-width:1061px){
  .onekv-page .onekv-mnav{display:none!important}
}
.onekv-page .onekv-hero{position:relative;color:#fff;min-height:680px;display:flex;align-items:center;background:var(--onekv-slate)}
.onekv-page .onekv-hero .onekv-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.onekv-page .onekv-hero .onekv-shade{position:absolute;inset:0;background:linear-gradient(95deg,rgba(13,15,22,.92) 0%,rgba(13,15,22,.62) 52%,rgba(13,15,22,.3) 100%)}
.onekv-page .onekv-hero .onekv-wrap{position:relative;z-index:2;padding-top:96px;padding-bottom:170px;width:100%}
.onekv-page .onekv-hero .onekv-kicker{font-family:var(--onekv-font-h);font-weight:500;font-size:16px;color:#ffd9dc;display:flex;align-items:center;gap:12px;margin-bottom:14px}
.onekv-page .onekv-hero .onekv-kicker::before{content:"";width:34px;height:2px;background:var(--onekv-accent)}
.onekv-page .onekv-hero h1{color:#fff;font-size:clamp(38px,5.2vw,62px);font-weight:700;max-width:16ch;margin-bottom:20px}
.onekv-page .onekv-hero p{max-width:52ch;color:#e2e5ea;font-size:16.5px;line-height:1.75;margin-bottom:36px}
.onekv-page .onekv-hero .onekv-cta{display:flex;gap:14px;flex-wrap:wrap}
.onekv-page .onekv-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:48px;height:48px;border-radius:50%;border:1.5px solid rgba(255,255,255,.5);color:#fff;display:grid;place-items:center;font:600 28px/1 var(--onekv-font-h);padding-bottom:4px;background:rgba(0,0,0,.18);user-select:none;cursor:pointer}
.onekv-page .onekv-arrow:hover{background:var(--onekv-accent);border-color:var(--onekv-accent)}
.onekv-page .onekv-arrow.onekv-l{left:24px}
.onekv-page .onekv-arrow.onekv-r{right:24px}
.onekv-page .onekv-hero .onekv-dots{position:absolute;left:50%;transform:translateX(-50%);bottom:104px;display:flex;gap:8px;z-index:3}
.onekv-page .onekv-hero .onekv-dots i{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.45)}
.onekv-page .onekv-hero .onekv-dots i.onekv-on{background:var(--onekv-accent)}
@media (max-width:800px){
  .onekv-page .onekv-arrow{display:none}
  .onekv-page .onekv-hero{min-height:600px}
  .onekv-page .onekv-hero .onekv-wrap{padding-bottom:130px}
}
.onekv-page .onekv-feat{position:relative;z-index:5;margin-top:-84px}
.onekv-page .onekv-feat .onekv-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.onekv-page .onekv-fcard{background:#fff;border-radius:var(--onekv-r);box-shadow:var(--onekv-sh);padding:36px 24px 30px;text-align:center;transition:transform .2s;border-bottom:3px solid transparent}
.onekv-page .onekv-fcard:hover{transform:translateY(-5px);border-bottom-color:var(--onekv-accent)}
.onekv-page .onekv-fcard .onekv-ic{width:52px;height:52px;margin-bottom:16px}
.onekv-page .onekv-fcard h3{font-size:19px;font-weight:600;margin-bottom:8px}
.onekv-page .onekv-fcard p{font-size:13.8px;line-height:1.7}
@media (max-width:1060px){
  .onekv-page .onekv-feat .onekv-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:620px){
  .onekv-page .onekv-feat .onekv-grid{grid-template-columns:1fr}
  .onekv-page .onekv-feat{margin-top:-56px}
}
.onekv-page .onekv-about{padding:110px 0 100px}
.onekv-page .onekv-about .onekv-wrap{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.onekv-page .onekv-collage{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.onekv-page .onekv-collage .onekv-cimg{border-radius:var(--onekv-r);aspect-ratio:1/1.06;object-fit:cover;box-shadow:var(--onekv-sh);width:100%}
.onekv-page .onekv-srv-btn{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:170px;height:170px;border-radius:50%;background:radial-gradient(circle at 32% 24%,#ff5560 0%,#f01423 38%,var(--onekv-accent) 62%,#8e0009 100%);box-shadow:0 18px 44px rgba(227,0,15,.5),inset 0 -8px 22px rgba(0,0,0,.22);display:grid;place-items:center;text-align:center;text-decoration:none;transition:transform .2s;animation:onekv-puls 2.4s ease-out infinite}
.onekv-page .onekv-srv-btn:hover{transform:translate(-50%,-50%) scale(1.06);animation-play-state:paused}
.onekv-page .onekv-srv-btn::before{content:"";position:absolute;inset:7px;border-radius:50%;border:2px dashed rgba(255,255,255,.55);animation:onekv-spin247 30s linear infinite}
@keyframes onekv-spin247{to{transform:rotate(360deg)}}
@keyframes onekv-puls{0%{box-shadow:0 18px 44px rgba(227,0,15,.5),inset 0 -8px 22px rgba(0,0,0,.22),0 0 0 0 rgba(227,0,15,.55)}70%{box-shadow:0 18px 44px rgba(227,0,15,.5),inset 0 -8px 22px rgba(0,0,0,.22),0 0 0 30px rgba(227,0,15,0)}100%{box-shadow:0 18px 44px rgba(227,0,15,.5),inset 0 -8px 22px rgba(0,0,0,.22),0 0 0 0 rgba(227,0,15,0)}}
.onekv-page .onekv-srv-btn u{display:block;text-decoration:none;font-family:var(--onekv-font-h);font-size:12px;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.92);padding-left:.3em}
.onekv-page .onekv-srv-btn b{font-family:var(--onekv-font-h);color:#fff;font-size:46px;font-weight:700;line-height:1.05;display:block;text-shadow:0 2px 6px rgba(0,0,0,.25);margin:2px 0 8px}
.onekv-page .onekv-srv-btn .onekv-chip{display:inline-flex;align-items:center;gap:6px;background:#fff;color:var(--onekv-accent);font-family:var(--onekv-font-h);font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:6px 16px;border-radius:999px;box-shadow:0 4px 10px rgba(0,0,0,.25);transition:gap .2s}
.onekv-page .onekv-srv-btn:hover .onekv-chip{gap:10px}
.onekv-page .onekv-l-eyebrow{font-family:var(--onekv-font-h);font-weight:500;font-size:16px;color:var(--onekv-accent);display:inline-flex;align-items:center;gap:12px;margin-bottom:6px}
.onekv-page .onekv-l-eyebrow::before, .onekv-page .onekv-l-eyebrow::after{content:"";width:30px;height:2px;background:var(--onekv-accent)}
.onekv-page .onekv-about h2{font-size:clamp(28px,3.4vw,38px);font-weight:600;margin-bottom:16px}
.onekv-page .onekv-about h2 em{font-style:normal;color:var(--onekv-accent)}
.onekv-page .onekv-about .onekv-lead{margin-bottom:24px}
.onekv-page .onekv-steps{list-style:none;margin-bottom:32px}
.onekv-page .onekv-steps li{display:flex;align-items:center;gap:14px;padding:12px 2px;border-bottom:1px solid var(--onekv-line);font-family:var(--onekv-font-h);font-weight:500;color:var(--onekv-head);font-size:17px}
.onekv-page .onekv-steps li::before{content:"";width:9px;height:9px;border-top:2.5px solid var(--onekv-accent);border-right:2.5px solid var(--onekv-accent);transform:rotate(45deg);flex:0 0 9px}
.onekv-page .onekv-steps li span{margin-left:auto;font-family:var(--onekv-font-b);font-weight:400;font-size:13px;color:var(--onekv-body);text-align:right;max-width:52%}
@media (max-width:940px){
  .onekv-page .onekv-about .onekv-wrap{grid-template-columns:1fr}
  .onekv-page .onekv-about{padding:80px 0 70px}
}
.onekv-page .onekv-brands{background:#fff;padding:40px 0;border-top:1px solid var(--onekv-line);border-bottom:1px solid var(--onekv-line);overflow:hidden}
.onekv-page .onekv-marquee{display:flex;width:max-content;animation:onekv-mq 34s linear infinite}
.onekv-page .onekv-marquee:hover{animation-play-state:paused}
@keyframes onekv-mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.onekv-page .onekv-grp{display:flex;gap:22px;padding-right:22px}
.onekv-page .onekv-brand{flex:0 0 auto;border:1px solid var(--onekv-line);border-radius:var(--onekv-r);padding:16px 32px;font-family:var(--onekv-font-h);font-weight:600;font-size:17px;color:#a2a7b0;white-space:nowrap;background:#fff;transition:all .2s}
.onekv-page .onekv-brand:hover{color:var(--onekv-accent);border-color:#f1c2c5}
.onekv-page .onekv-services{background:var(--onekv-tint);padding:110px 0}
.onekv-page .onekv-sgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.onekv-page .onekv-scard{position:relative;border-radius:var(--onekv-r);overflow:hidden;box-shadow:var(--onekv-sh);text-decoration:none;display:block}
.onekv-page .onekv-scard .onekv-im{aspect-ratio:16/11.5;overflow:hidden}
.onekv-page .onekv-scard .onekv-im img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.onekv-page .onekv-scard:hover .onekv-im img{transform:scale(1.06)}
.onekv-page .onekv-scard .onekv-cap{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:13px;padding:15px 18px;background:rgba(17,20,29,.88)}
.onekv-page .onekv-scard .onekv-cap .onekv-ic{width:30px;height:30px;flex:0 0 30px}
.onekv-page .onekv-scard .onekv-cap .onekv-ic svg{stroke:var(--onekv-logo-gray)}
.onekv-page .onekv-scard .onekv-cap .onekv-ic svg .onekv-a{stroke:var(--onekv-accent)}
.onekv-page .onekv-scard .onekv-cap h3{color:#fff;font-size:17.5px;font-weight:600;line-height:1.2}
.onekv-page .onekv-scard .onekv-cap p{color:#b9bec8;font-size:12.5px;margin-top:2px;line-height:1.4}
.onekv-page .onekv-services .onekv-more{text-align:center;margin-top:46px}
@media (max-width:940px){
  .onekv-page .onekv-sgrid{grid-template-columns:1fr 1fr}
}
@media (max-width:620px){
  .onekv-page .onekv-sgrid{grid-template-columns:1fr}
}
.onekv-page .onekv-how{padding:110px 0}
.onekv-page .onekv-hgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}
.onekv-page .onekv-hstep{text-align:center}
.onekv-page .onekv-hstep .onekv-circ{position:relative;width:min(100%,190px);aspect-ratio:1;margin:0 auto 22px;border-radius:50%;padding:8px;border:1.5px dashed #d9bfc2}
.onekv-page .onekv-hstep .onekv-circ img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.onekv-page .onekv-hstep .onekv-num{position:absolute;top:4px;right:4px;width:44px;height:44px;border-radius:50%;background:var(--onekv-accent);color:#fff;display:grid;place-items:center;font:600 17px var(--onekv-font-h);box-shadow:0 6px 14px rgba(227,0,15,.35);border:3px solid #fff}
.onekv-page .onekv-hstep h3{font-size:19px;font-weight:600;margin-bottom:6px}
.onekv-page .onekv-hstep p{font-size:13.5px;line-height:1.7;max-width:30ch;margin:0 auto}
@media (max-width:1000px){
  .onekv-page .onekv-hgrid{grid-template-columns:1fr 1fr;gap:40px 24px}
}
@media (max-width:560px){
  .onekv-page .onekv-hgrid{grid-template-columns:1fr}
}
.onekv-page .onekv-why{padding:0 0 110px}
.onekv-page .onekv-wgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.onekv-page .onekv-wcard{background:#fff;border:1px solid var(--onekv-line);border-radius:var(--onekv-r);padding:34px 24px;text-align:center;transition:all .2s}
.onekv-page .onekv-wcard:hover{box-shadow:var(--onekv-sh);border-color:transparent;transform:translateY(-4px)}
.onekv-page .onekv-wcard .onekv-ring{width:74px;height:74px;margin:0 auto 18px;border-radius:50%;background:rgba(227,0,15,.07);display:grid;place-items:center}
.onekv-page .onekv-wcard .onekv-ring .onekv-ic{width:34px;height:34px}
.onekv-page .onekv-wcard h3{font-size:18px;font-weight:600;margin-bottom:8px}
.onekv-page .onekv-wcard p{font-size:13.5px;line-height:1.7}
@media (max-width:1000px){
  .onekv-page .onekv-wgrid{grid-template-columns:1fr 1fr}
}
@media (max-width:600px){
  .onekv-page .onekv-wgrid{grid-template-columns:1fr}
}
.onekv-page .onekv-cta-band{position:relative;color:#fff;padding:110px 0;text-align:center;background:var(--onekv-slate)}
.onekv-page .onekv-cta-band .onekv-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.onekv-page .onekv-cta-band .onekv-shade{position:absolute;inset:0;background:rgba(14,16,24,.8)}
.onekv-page .onekv-cta-band .onekv-wrap{position:relative;z-index:2}
.onekv-page .onekv-cta-band h2{color:#fff;font-size:clamp(28px,3.6vw,40px);font-weight:600;max-width:24ch;margin:0 auto 14px}
.onekv-page .onekv-cta-band p{color:#d7dae1;max-width:52ch;margin:0 auto 34px;font-size:15.5px}
.onekv-page footer{position:relative;background:var(--onekv-slate-2);color:var(--onekv-logo-gray);font-size:14.5px}
.onekv-page footer .onekv-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.1}
.onekv-page footer .onekv-inner{position:relative;z-index:2}
.onekv-page footer .onekv-cols{display:grid;grid-template-columns:1.25fr .85fr 1.25fr 1.15fr;gap:42px;padding:78px 0 56px}
.onekv-page footer .onekv-dane{margin-top:18px;padding-top:16px;border-top:1px solid rgba(200,202,204,.16);line-height:1.8;color:#aeb2bc}
.onekv-page .onekv-f-scroll{max-height:248px;overflow-y:auto;padding-right:10px;scrollbar-width:thin;scrollbar-color:rgba(227,0,15,.65) rgba(255,255,255,.08)}
.onekv-page .onekv-f-scroll::-webkit-scrollbar{width:5px}
.onekv-page .onekv-f-scroll::-webkit-scrollbar-track{background:rgba(255,255,255,.08);border-radius:3px}
.onekv-page .onekv-f-scroll::-webkit-scrollbar-thumb{background:rgba(227,0,15,.65);border-radius:3px}
.onekv-page footer .onekv-dane b{color:#fff;font-family:var(--onekv-font-h);font-weight:600;font-size:15px}
.onekv-page .onekv-bpost{display:flex;gap:14px;align-items:flex-start;text-decoration:none;margin-bottom:18px}
.onekv-page .onekv-bpost img{width:74px;height:60px;object-fit:cover;border-radius:4px;flex:0 0 74px;background:#39404c}
.onekv-page .onekv-bpost b{display:block;color:#fff;font-family:var(--onekv-font-h);font-weight:500;font-size:14.5px;line-height:1.35}
.onekv-page .onekv-bpost:hover b{color:#ffb4b9}
.onekv-page .onekv-bpost i{font-style:normal;font-size:12px;color:#9096a2;display:block;margin-top:4px}
.onekv-page footer h4{font-family:var(--onekv-font-h);color:#fff;font-size:20px;font-weight:600;margin-bottom:22px}
.onekv-page footer ul{list-style:none}
.onekv-page footer li{margin-bottom:12px;display:flex;gap:12px;align-items:baseline;line-height:1.6}
.onekv-page footer a{text-decoration:none}
.onekv-page footer a:hover{color:#fff}
.onekv-page .onekv-f-logo img{height:52px;width:auto}
.onekv-page .onekv-about-f p{margin:18px 0 22px;font-size:13.8px;line-height:1.85;color:#a9adb5}
.onekv-page .onekv-soc{display:flex;gap:10px}
.onekv-page .onekv-soc a{width:42px;height:42px;border:1px solid rgba(200,202,204,.35);border-radius:50%;display:grid;place-items:center;color:var(--onekv-logo-gray);transition:all .2s;font:600 13px var(--onekv-font-h)}
.onekv-page .onekv-soc a:hover{background:var(--onekv-accent);border-color:var(--onekv-accent);color:#fff}
.onekv-page footer .onekv-dash{color:var(--onekv-accent);font-weight:600}
.onekv-page footer .onekv-cico{width:17px;height:17px;flex:0 0 17px;position:relative;top:3px}
.onekv-page footer .onekv-cico svg{stroke:var(--onekv-accent)}
.onekv-page .onekv-f-bar{border-top:1px solid rgba(200,202,204,.16);padding:22px 0;display:flex;justify-content:space-between;align-items:center;gap:10px 18px;flex-wrap:wrap;font-size:13.5px;color:#9498a1}
.onekv-page .onekv-f-bar .onekv-pol a{margin-left:18px}
.onekv-page .onekv-f-bar .onekv-pol a:first-child{margin-left:0}
@media (max-width:700px){
  .onekv-page .onekv-f-bar{justify-content:center;text-align:center}
}
.onekv-page .onekv-top{position:fixed;right:22px;bottom:22px;z-index:90;width:46px;height:46px;border-radius:6px;background:var(--onekv-accent);color:#fff;display:grid;place-items:center;text-decoration:none;font:600 20px/1 var(--onekv-font-h);box-shadow:0 8px 20px rgba(227,0,15,.35)}
.onekv-page .onekv-top:hover{background:var(--onekv-accent-d)}
@media (max-width:1000px){
  .onekv-page footer .onekv-cols{grid-template-columns:1fr 1fr}
}
@media (max-width:600px){
  .onekv-page footer .onekv-cols{grid-template-columns:1fr;gap:34px;padding:56px 0 40px}
}

/* ===== KONIEC PORTU MAKIETY ===== */
/* === 1kV: fonty self-hosted =========================================
   Jost  = font ZMIENNY (os wght 100..900, jeden plik na podzbior) -
           deklaracja zakresem 100 900; osobne @font-face per waga
           wskazywalyby TEN SAM plik i przypinaly instancje domyslna 400.
   Fira Sans = fonty statyczne, po jednym pliku na wage (400/500/600).
   Podzbiory: latin + latin-ext (latin-ext = polskie znaki diakrytyczne).
   Zrodlo plikow: fonts.gstatic.com, pobrane 2026-08-18.
   ================================================================== */
@font-face{font-family:'Jost';font-style:normal;font-weight:100 900;font-display:swap;src:url('fonts/jost-var-latin.woff2') format('woff2-variations'),url('fonts/jost-var-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Jost';font-style:normal;font-weight:100 900;font-display:swap;src:url('fonts/jost-var-latin-ext.woff2') format('woff2-variations'),url('fonts/jost-var-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Fira Sans';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/fira-sans-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Fira Sans';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/fira-sans-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Fira Sans';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/fira-sans-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Fira Sans';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/fira-sans-500-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Fira Sans';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/fira-sans-600-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Fira Sans';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/fira-sans-600-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
/* === 1kV: stopka - port z makiety v5, zakres .onekv-foot === */
.onekv-foot{position:relative;background:var(--onekv-slate-2);color:var(--onekv-logo-gray);font-size:14.5px}
.onekv-foot .onekv-dane{margin-top:18px;padding-top:16px;border-top:1px solid rgba(200,202,204,.16);line-height:1.8;color:#aeb2bc}
.onekv-foot .onekv-f-scroll{max-height:248px;overflow-y:auto;padding-right:10px;scrollbar-width:thin;scrollbar-color:rgba(227,0,15,.65) rgba(255,255,255,.08)}
.onekv-foot .onekv-f-scroll::-webkit-scrollbar{width:5px}
.onekv-foot .onekv-f-scroll::-webkit-scrollbar-track{background:rgba(255,255,255,.08);border-radius:3px}
.onekv-foot .onekv-f-scroll::-webkit-scrollbar-thumb{background:rgba(227,0,15,.65);border-radius:3px}
.onekv-foot .onekv-dane b{color:#fff;font-family:var(--onekv-font-h);font-weight:600;font-size:15px}
.onekv-foot .onekv-bpost{display:flex;gap:14px;align-items:flex-start;text-decoration:none;margin-bottom:18px}
.onekv-foot .onekv-bpost img{width:74px;height:60px;object-fit:cover;border-radius:4px;flex:0 0 74px;background:#39404c}
.onekv-foot .onekv-bpost b{display:block;color:#fff;font-family:var(--onekv-font-h);font-weight:500;font-size:14.5px;line-height:1.35}
.onekv-foot .onekv-bpost:hover b{color:#ffb4b9}
.onekv-foot .onekv-bpost i{font-style:normal;font-size:12px;color:#9096a2;display:block;margin-top:4px}
.onekv-foot h4{font-family:var(--onekv-font-h);color:#fff;font-size:20px;font-weight:600;margin-bottom:22px}
.onekv-foot ul{list-style:none}
.onekv-foot li{margin-bottom:12px;display:flex;gap:12px;align-items:baseline;line-height:1.6}
.onekv-foot a{text-decoration:none}
.onekv-foot a:hover{color:#fff}
.onekv-foot .onekv-f-logo img{height:52px;width:auto}
.onekv-foot .onekv-about-f p{margin:18px 0 22px;font-size:13.8px;line-height:1.85;color:#a9adb5}
.onekv-foot .onekv-soc{display:flex;gap:10px}
.onekv-foot .onekv-soc a{width:42px;height:42px;border:1px solid rgba(200,202,204,.35);border-radius:50%;display:grid;place-items:center;color:var(--onekv-logo-gray);transition:all .2s;font:600 13px var(--onekv-font-h)}
.onekv-foot .onekv-soc a:hover{background:var(--onekv-accent);border-color:var(--onekv-accent);color:#fff}
.onekv-foot .onekv-dash{color:var(--onekv-accent);font-weight:600}
.onekv-foot .onekv-cico{width:17px;height:17px;flex:0 0 17px;position:relative;top:3px}
.onekv-foot .onekv-cico svg{stroke:var(--onekv-accent)}
.onekv-foot .onekv-f-bar{border-top:1px solid rgba(200,202,204,.16);padding:22px 0;display:flex;justify-content:space-between;align-items:center;gap:10px 18px;flex-wrap:wrap;font-size:13.5px;color:#9498a1}
.onekv-foot .onekv-f-bar .onekv-pol a{margin-left:18px}
.onekv-foot .onekv-f-bar .onekv-pol a:first-child{margin-left:0}
@media (max-width:700px){
  .onekv-foot .onekv-f-bar{justify-content:center;text-align:center}
}
/* zajawki zdjec (zdjecia w trakcie wyboru - osobny watek) */
.onekv-foot .onekv-ph{background:linear-gradient(135deg,#2a2f3b,#1d2028);display:block}
.onekv-foot .onekv-bpost .onekv-ph{width:64px;height:48px;border-radius:3px;flex:0 0 auto}

/* --- pasek dolny stopki (Astra: below footer) --- */
.onekv-foot .onekv-pol a{margin-left:18px}
.onekv-foot .onekv-pol a:first-child{margin-left:0}
.site-below-footer-wrap .ast-builder-html-element{text-align:right}
.ast-footer-copyright,.site-below-footer-wrap p{color:#9498a1;font-size:13.5px;margin:0}
.site-primary-footer-wrap{padding-top:64px;padding-bottom:52px}
.site-below-footer-wrap{border-top:1px solid rgba(200,202,204,.16)}
@media (max-width:700px){.site-below-footer-wrap .ast-builder-html-element{text-align:center}}
/* --- korekta: odnosniki w stopce dziedzicza kolor po kontenerze (bez niebieskiego domyslnego) --- */
.onekv-foot a{color:inherit}
.onekv-foot .onekv-pol a,.onekv-foot .onekv-pol .cmplz-manage-consent a,.onekv-foot .onekv-pol #cmplz-manage-consent-container a{color:#c8cacc}
.onekv-foot .onekv-pol a:hover{color:#fff}
.site-below-footer-wrap .ast-builder-grid-row{align-items:center}
/* --- pasek dolny: odnosnik ustawien cookies ma wygladac jak pozostale dwa --- */
.onekv-foot .onekv-pol a{color:#c8cacc;text-decoration:none;background:none;border:0;padding:0;font:inherit}
.onekv-foot .onekv-pol a:hover{color:#fff;text-decoration:underline}
.onekv-foot .cmplz-status-accepted,.onekv-foot .cmplz-status-denied{display:none!important}
/* --- przycisk powrotu na gore w kolorze marki (domyslny Astry jest niebieski) --- */
#ast-scroll-top{background:var(--onekv-accent);color:#fff;border-radius:4px}
#ast-scroll-top:hover{background:#c60010;color:#fff}
/* === 1kV: naglowek doprowadzony do zgodnosci z makieta v5 ==================
   Zrodlo wartosci: reguly `header`, `nav.main a`, `header .btn` z makiety.
   Selektory z ID `#ast-hf-menu-1` (1,0,1) wygrywaja z dynamicznym CSS Astry (0,3,0)
   bez uzycia !important.
   ========================================================================= */
.ast-primary-header-bar{box-shadow:0 2px 16px rgba(20,15,18,.08);border-bottom:0}
#ast-hf-menu-1{gap:26px}
#ast-hf-menu-1 > li > a{font-family:var(--onekv-font-h);font-weight:500;font-size:16px;color:var(--onekv-head);padding:8px 0;position:relative;transition:color .2s}
#ast-hf-menu-1 > li > a::after{content:"";position:absolute;left:0;bottom:2px;width:0;height:2px;background:var(--onekv-accent);transition:width .2s}
#ast-hf-menu-1 > li > a:hover{color:var(--onekv-accent)}
#ast-hf-menu-1 > li > a:hover::after{width:100%}
/* przycisk w naglowku: proporcje i podswietlenie jak w makiecie (padding 12/26) */
.ast-primary-header-bar .ast-custom-button{letter-spacing:.01em;box-shadow:0 8px 18px rgba(227,0,15,.22);transition:all .2s}
.ast-primary-header-bar .ast-custom-button-link:hover .ast-custom-button{background:var(--onekv-accent-d);transform:translateY(-1px)}
/* === 1kV: zadnych podkreslen w tresci strony ==============================
   Astra dokleja `.ast-single-post .entry-content a{text-decoration:underline}`
   (0,2,1) w swoim dynamicznym CSS, ktory idzie PO arkuszu motywu potomnego.
   Prefiks `body` podnosi nasza regule do (0,2,2) - wygrywa bez !important.
   Makieta nie ma podkreslen nigdzie: ani na przyciskach, ani na kartach.
   ========================================================================= */
body .entry-content .onekv-page a{text-decoration:none}
/* === 1kV: korekty zgodnosci z makieta, runda 2 ===========================
   1) Pasek pod pozycja menu lezal ~40 px pod tekstem, bo Astra rozciaga
      <a> na cala wysokosc wiersza (96 px), a `bottom:2px` liczy sie od dolu
      TEGO pudelka. W makiecie <a> ma wysokosc tresci + padding 8 px.
      Lekarstwo: link przestaje sie rozciagac (`align-self:center`).
   2) Naglowek i stopka jechaly na kontenerze Astry 1240 px, gdy sekcje
      strony uzywaja `.onekv-wrap` 1170 px - logo, menu i kolumny stopki
      byly szersze niz tresc. Wyrownane do 1170 px z paddingiem 24 px,
      dokladnie jak `.wrap` w makiecie.
   ======================================================================== */
#ast-hf-menu-1 > li > a{align-self:center}
.ast-primary-header-bar .site-primary-header-wrap{max-width:1170px;padding-left:24px;padding-right:24px;margin-left:auto;margin-right:auto}
.site-primary-footer-wrap .ast-builder-grid-row-container-inner,
.site-below-footer-wrap .ast-builder-grid-row-container-inner{max-width:1170px;padding-left:24px;padding-right:24px;margin-left:auto;margin-right:auto}
/* --- ciag dalszy korekty paska pod menu ---------------------------------
   Astra wymusza `.main-header-menu > .menu-item > .menu-link{height:100%}`
   oraz `line-height:80px` na pozycji listy - stad link 96 px wysokosci
   i pasek 40 px pod tekstem. Selektor z ID (1,0,1) bije regule Astry (0,3,0).
   ----------------------------------------------------------------------- */
#ast-hf-menu-1 > li{line-height:1.4}
#ast-hf-menu-1 > li > a{height:auto;line-height:1.4}
/* --- karuzela marek: stala predkosc przewijania ---------------------------
   Makieta: 10 marek, grupa 1569 px, 34 s -> 46,1 px/s.
   Lista P18 (18.08): 40 marek, grupa 6223 px -> 6223 / 46,1 = 135 s.
   Czas dobrany do DLUGOSCI tasmy, zeby predkosc zostala ta sama.
   ----------------------------------------------------------------------- */
.onekv-page .onekv-marquee{animation-duration:135s}

/* === P33-MOBILE-TYPO BEGIN (2026-08-31, P33 s3, staging baza.hanto.eu) ===
   Powod: na 375 px naglowki i tekst szly rozmiarami desktopowymi.
   Pomiar przed zmiana: hero h1 38 px (clamp z podloga 38), h2 sekcji 28 px
   (clamp z podloga 28), h1 podstrony 32 px, body 15 px z interlinia 1.85.
   Zmiana dotyczy WYLACZNIE szerokosci do 640 px. Desktop bez zmian. */
@media (max-width:640px){
  /* wzorce strony glownej (.onekv-page) */
  .onekv-page{line-height:1.6}
  .onekv-page .onekv-wrap{padding:0 18px}
  .onekv-page .onekv-hero h1{font-size:30px;line-height:1.16;max-width:none;margin-bottom:14px}
  .onekv-page .onekv-hero .onekv-kicker{font-size:13px;line-height:1.35;gap:8px;margin-bottom:12px}
  .onekv-page .onekv-hero .onekv-kicker::before{width:22px}
  .onekv-page .onekv-hero p{font-size:15.5px;line-height:1.6;margin-bottom:26px;max-width:none}
  /* Przyciski hero byly `inline-block` sizowane trescia, wiec na telefonie
     mialy dwie rozne szerokosci jeden pod drugim (pomiar 02.09). */
  .onekv-page .onekv-hero .onekv-cta{gap:10px}
  .onekv-page .onekv-hero .onekv-btn{display:block;width:100%;text-align:center;font-size:15px;padding:13px 20px}
  /* Podloga czytelnosci: najmniejsze akapity we wzorcach mialy 12,5 px. */
  .onekv-page p{font-size:13.5px}
  .onekv-page .onekv-scard .onekv-cap p{font-size:13.5px;line-height:1.45}
  .onekv-page .onekv-sec-head{margin-bottom:32px}
  .onekv-page .onekv-sec-head h2,
  .onekv-page .onekv-about h2,
  .onekv-page .onekv-cta-band h2{font-size:23px;line-height:1.22}
  .onekv-page .onekv-sec-head .onekv-eyebrow{font-size:13.5px;gap:8px}
  .onekv-page .onekv-sec-head .onekv-eyebrow::before,
  .onekv-page .onekv-sec-head .onekv-eyebrow::after{width:22px}
  .onekv-page .onekv-sec-head p{font-size:14px;line-height:1.6}

  /* podstrony na szablonie Astry */
  body,
  .entry-content,
  .entry-content p,
  .entry-content li{line-height:1.6}
  /* Astra ustawia tytul regula `header.entry-header .entry-title` o
     specyficznosci (0,1,2) - slabszy selektor przegrywa bez zadnego
     komunikatu (pomiar 01.09: `.entry-title` dalo 25 px w arkuszu,
     a element renderowal sie na 32 px). Stad pelny selektor. */
  header.entry-header .entry-title,
  .ast-single-post header.entry-header .entry-title{font-size:25px;line-height:1.2}
  .entry-content h2{font-size:20px;line-height:1.25;margin-bottom:12px}
  .entry-content h3{font-size:17px;line-height:1.3;margin-bottom:10px}
  .entry-content h4{font-size:16px;line-height:1.3}
  .entry-content p,
  .entry-content li{font-size:15px}
  .entry-content ul,
  .entry-content ol{padding-left:20px}

  /* Akapit prowadzacy. Niesie klase `has-large-font-size`, ktora WordPress
     wypisuje z `!important` (preset `large` = 36 px na kazdej szerokosci),
     wiec zwykla regula o wyzszej specyficznosci przegrywa bez komunikatu.
     Pomiar 01.09 na 412 px: 36 px przy tekscie 15 px, czyli lead wiekszy
     od naglowka H1. Klasa wystepuje w 26 obiektach, 52 razy. */
  .p33-lead,
  p.has-large-font-size,
  .entry-content p.has-large-font-size{font-size:17px !important;line-height:1.55}

  /* Naglowki kolumn stopki mialy 20 px, wiecej niz H3 w tresci. */
  .site-footer h4,
  .ast-builder-layout-element h4,
  footer .widget-title{font-size:17px;line-height:1.3}
}
/* === P33-MOBILE-TYPO END === */
