/*! Website Factory base kit — wf.css v2
 * Reset, dostepnosc i style elementow tworzonych przez wf.js. Bez decyzji o wygladzie strony:
 * kolory, fonty i layout nalezą do style.css klienta. Opcjonalne zmienne: --focus, --ease, --cursor, --cursor-ink.
 */
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:clip;-webkit-text-size-adjust:100%;text-size-adjust:100%;--ease:cubic-bezier(.16,1,.3,1);--ease-io:cubic-bezier(.76,0,.24,1)}
body{margin:0;min-height:100vh;min-height:100svh;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}
img,picture,video,canvas,svg{display:block;max-width:100%}
img{height:auto}
input,button,textarea,select{font:inherit;color:inherit;letter-spacing:inherit}
button{cursor:pointer;background:none;border:0;padding:0;border-radius:0}
h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd,address{margin:0;font-style:normal}
:where(ul,ol)[class]{list-style:none;margin:0;padding:0}
a{color:inherit;text-underline-offset:.18em;text-decoration-thickness:.06em}
summary{cursor:pointer;list-style:none}
summary::-webkit-details-marker{display:none}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--focus,currentColor);outline-offset:3px}
::selection{background:var(--selection-bg,currentColor);color:var(--selection-ink,Canvas)}
/* Kontenery z elementami absolutnymi (np. .sr-only z data-roll) musza je zamykac — inaczej na telefonie strona robi sie szersza */
[data-roll],[data-horizontal-track],[data-marquee],[data-drag-scroll]{position:relative}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:fixed;z-index:10000;top:.75rem;left:.75rem;padding:.75rem 1rem;background:var(--focus,#000);color:var(--bg,#fff);font-weight:700;text-decoration:none;transform:translateY(-200%);transition:transform .2s}
.skip-link:focus{transform:none}

/* Lenis */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:clip}
html:not(.lenis){scroll-behavior:smooth}

/* Bramka intro: ukrywa elementy hero tylko do startu animacji (skrypt w <head> + limit 3,5 s) */
.wf-intro [data-intro],.wf-intro [data-trigger="intro"]{opacity:0}
[data-loader]{display:none}
.wf-intro [data-loader],.wf-loading [data-loader]{display:grid}

/* SplitText */
.wf-line{display:block}
.wf-word,.wf-char{display:inline-block}
/* Maski SplitText nie moga ucinac ogonkow (y, ą, ę) ani znakow nad wersalikami (Ż, Ś, Ł) */
.wf-line-mask,.wf-word-mask,.wf-char-mask{padding-block:.14em .16em;margin-block:-.14em -.16em}

/* Marquee */
[data-marquee]{display:flex;overflow:hidden;white-space:nowrap;max-width:100%}
[data-marquee]>*{flex:none}
.wf-marquee-track{display:flex;flex:none;align-items:center;gap:inherit;padding-inline-end:var(--marquee-gap,0);will-change:transform}

/* Poziomy tor: bez JS/na dotyku natywny scroll ze snapem, z JS na desktopie przypiety */
[data-horizontal-track]{display:flex;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
[data-horizontal-track]::-webkit-scrollbar{display:none}
[data-horizontal-track]>*{flex:none;scroll-snap-align:start}
.wf-hz-pinned{overflow:hidden}
.wf-hz-pinned [data-horizontal-track]{overflow:visible;scroll-snap-type:none}

/* Przypieta historia: kroki nakladaja sie tylko w trybie przypietym */
.wf-story-pinned [data-story-steps],.wf-story-pinned [data-story-medias]{display:grid}
.wf-story-pinned [data-story-step],.wf-story-pinned [data-story-media]{grid-area:1/1}

/* Sticky stack */
[data-stack-item]{position:sticky;top:var(--stack-top,6vh);transform-origin:50% 0}
[data-stack-item]::after{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--stack-dim-color,#000);opacity:var(--dim,0);pointer-events:none}

/* Tla stref */
.wf-bgzones body{background-color:var(--wf-bg)}
.wf-bgzones [data-bg]{background-color:transparent!important}
.wf-bgzones [data-bg][data-fg]{color:var(--wf-fg)}

/* Przed / po */
[data-ba]{--ba:50%;position:relative;overflow:hidden;touch-action:pan-y;user-select:none}
[data-ba] img{width:100%;height:100%;object-fit:cover}
[data-ba] .wf-ba-after{position:absolute;inset:0;clip-path:inset(0 0 0 var(--ba))}
[data-ba] input[type=range]{position:absolute;inset:0;z-index:3;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize}
[data-ba] .wf-ba-handle{position:absolute;z-index:2;top:0;bottom:0;left:var(--ba);width:2px;background:var(--ba-line,#fff);pointer-events:none}
[data-ba] .wf-ba-handle::after{content:"↔";position:absolute;top:50%;left:50%;display:grid;place-items:center;width:3.2rem;height:3.2rem;border-radius:50%;background:var(--ba-line,#fff);color:var(--ba-ink,#000);font-size:1.2rem;transform:translate(-50%,-50%)}
[data-ba]:has(input:focus-visible) .wf-ba-handle::after{outline:3px solid var(--focus,#000);outline-offset:3px}

/* Rolka tekstu na hover (data-roll) */
.wf-roll{display:inline-flex;overflow:hidden;vertical-align:bottom;line-height:1.15;padding-block:.02em}
.wf-rc{position:relative;display:inline-block;transition:transform .55s var(--ease);transition-delay:calc(var(--i) * 14ms)}
.wf-rc::after{content:attr(data-c);position:absolute;left:0;top:100%}
:is(a,button,summary,label):is(:hover,:focus-visible) .wf-rc,[data-roll]:hover .wf-rc{transform:translateY(-100%)}

/* Kursor */
.wf-cursor{position:fixed;z-index:9999;left:0;top:0;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:var(--cursor,#fff);mix-blend-mode:difference;pointer-events:none;opacity:0;display:grid;place-items:center;transition:width .35s var(--ease),height .35s var(--ease),margin .35s var(--ease),opacity .3s,background-color .3s}
.wf-cursor.is-on{opacity:1}
.wf-cursor.is-link{width:44px;height:44px;margin:-22px 0 0 -22px}
.wf-cursor.has-label{width:96px;height:96px;margin:-48px 0 0 -48px;mix-blend-mode:normal;background:var(--cursor-label-bg,var(--cursor,#fff))}
.wf-cursor-label{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--cursor-ink,#000);opacity:0;transition:opacity .2s}
.wf-cursor.has-label .wf-cursor-label{opacity:1}

/* Podglad obrazu za kursorem */
.wf-preview{position:fixed;z-index:60;left:0;top:0;width:clamp(13rem,20vw,21rem);aspect-ratio:4/5;pointer-events:none;overflow:hidden;border-radius:var(--preview-radius,.4rem);box-shadow:0 2rem 4rem rgba(0,0,0,.3)}
.wf-preview img{width:100%;height:100%;object-fit:cover}

/* Postep strony */
[data-progress]{transform-origin:0 50%;transform:scaleX(var(--p,0))}

/* Pasek dzwonienia mobile */
[data-callbar]{position:fixed;z-index:80;left:.75rem;right:.75rem;bottom:max(.75rem,env(safe-area-inset-bottom));transition:transform .5s var(--ease),opacity .3s}
.js [data-callbar]:not(.is-visible){transform:translateY(160%);opacity:0;pointer-events:none}
@media (min-width:900px){[data-callbar]{display:none!important}}

/* Leniwe obrazy */
img.wf-lazy{opacity:0;transition:opacity .7s ease}
img.wf-lazy.is-loaded{opacity:1}

/* Przeciaganie */
[data-drag-scroll]{cursor:grab}
[data-drag-scroll].is-dragging{cursor:grabbing;user-select:none}
[data-drag-scroll].is-dragging *{pointer-events:none}

/* Ziarno (dodaj klase do sekcji z position:relative) */
.wf-grain{position:relative;isolation:isolate}
.wf-grain::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:var(--grain,.12);mix-blend-mode:var(--grain-blend,overlay);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  [data-marquee]{flex-wrap:wrap;white-space:normal}
  img.wf-lazy{opacity:1}
}
@media print{[data-loader],[data-callbar],.wf-cursor,.wf-preview{display:none!important}}
