/*! Webomat components v1 — zachowania komponentów (bez wyglądu marki; ten robi agent w styles.css). */
/* ── Ruch (przybornik animacji) ──────────────────────────────────────────────────────────────────────────────
   Wejścia są animacjami CSS (nie przejściami): nie gryzą się z przejściami i efektami :hover z arkusza agenta,
   a po zakończeniu element wraca do własnych stylów (animation-fill-mode: backwards). Stan ukryty tylko gdy działa
   wbm.js (html.wbm-js) i gość nie prosi o ograniczenie ruchu. Ukrycie zawsze przez opacity — element zasłonięty
   własnym clip-path nie jest „widoczny” dla IntersectionObserver i nigdy nie dostałby klasy .is-in. */
:root{--wbm-dur:.8s;--wbm-ease:cubic-bezier(.2,.7,.2,1);--wbm-shift:24px;--wbm-stagger:90ms}
@media (prefers-reduced-motion:no-preference){
  html.wbm-js [data-wbm-reveal]:not(.is-in),html.wbm-js [data-wbm-stagger]:not(.is-in)>*{opacity:0}
  [data-wbm-reveal].is-in,[data-wbm-stagger].is-in>*{animation:wbm-up var(--wbm-dur) var(--wbm-ease) backwards;animation-delay:calc(var(--wbm-i,0)*var(--wbm-stagger))}
  [data-wbm-reveal="fade"].is-in,[data-wbm-stagger="fade"].is-in>*{animation-name:wbm-fade}
  [data-wbm-reveal="left"].is-in,[data-wbm-stagger="left"].is-in>*{animation-name:wbm-left}
  [data-wbm-reveal="right"].is-in,[data-wbm-stagger="right"].is-in>*{animation-name:wbm-right}
  [data-wbm-reveal="scale"].is-in,[data-wbm-stagger="scale"].is-in>*{animation-name:wbm-scale}
  [data-wbm-reveal="wipe"].is-in{animation-name:wbm-wipe;animation-duration:calc(var(--wbm-dur)*1.4)}
  [data-wbm-parallax]{transform:translate3d(0,var(--wbm-py,0px),0) scale(var(--wbm-ps,1));will-change:transform}
  html.wbm-js [data-wbm-marquee]>*{flex-wrap:nowrap;justify-content:space-around;min-width:100%;animation:wbm-marquee var(--wbm-marquee-dur,40s) linear infinite}
  html.wbm-js [data-wbm-marquee="reverse"]>*{animation-direction:reverse}
  html.wbm-js [data-wbm-marquee]:hover>*,html.wbm-js [data-wbm-marquee]:focus-within>*{animation-play-state:paused}
  html.wbm-js [data-wbm-marquee]{-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
  /* Płynne przejście między podstronami (przeglądarki z View Transitions; pozostałe ładują stronę jak zwykle). */
  @view-transition{navigation:auto}
  :where(html){scroll-behavior:smooth}
}
@keyframes wbm-up{from{opacity:0;transform:translate3d(0,var(--wbm-shift),0)}}
@keyframes wbm-fade{from{opacity:0}}
@keyframes wbm-left{from{opacity:0;transform:translate3d(calc(var(--wbm-shift)*-1),0,0)}}
@keyframes wbm-right{from{opacity:0;transform:translate3d(var(--wbm-shift),0,0)}}
@keyframes wbm-scale{from{opacity:0;transform:scale(.95)}}
@keyframes wbm-wipe{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes wbm-marquee{to{transform:translate3d(calc(-100% - var(--wbm-gap,48px)),0,0)}}
::view-transition-old(root),::view-transition-new(root){animation-duration:.28s}

/* Pasek przewijany (logotypy, krótkie hasła): [data-wbm-marquee] > lista. Bez JS albo przy ograniczonym ruchu — zwykły, zawijany rząd. */
[data-wbm-marquee]{display:flex;overflow:hidden;gap:var(--wbm-gap,48px)}
[data-wbm-marquee]>*{display:flex;flex:none;flex-wrap:wrap;align-items:center;gap:var(--wbm-gap,48px);margin:0;padding:0;list-style:none;max-width:100%}
html.wbm-js [data-wbm-marquee]>*{max-width:none}
@media (prefers-reduced-motion:reduce){html.wbm-js [data-wbm-marquee]>*{max-width:100%}[data-wbm-marquee]>[aria-hidden="true"]{display:none}}

/* Efekty po najechaniu (tylko urządzenia ze wskaźnikiem). */
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  .wbm-lift{transition:transform .35s var(--wbm-ease),box-shadow .35s var(--wbm-ease)}
  .wbm-lift:hover{transform:translate3d(0,-4px,0)}
  .wbm-zoom{overflow:hidden}
  .wbm-zoom img{transition:transform .9s var(--wbm-ease)}
  .wbm-zoom:hover img,a:hover .wbm-zoom img{transform:scale(1.045)}
  .wbm-arrow>svg,.wbm-arrow>span[aria-hidden]{display:inline-block;transition:transform .3s var(--wbm-ease)}
  .wbm-arrow:hover>svg,.wbm-arrow:hover>span[aria-hidden]{transform:translate3d(4px,0,0)}
}
.wbm-line{background:linear-gradient(currentColor,currentColor) no-repeat 0 100%/0 1px;text-decoration:none;transition:background-size .4s var(--wbm-ease)}
.wbm-line:hover,.wbm-line:focus-visible{background-size:100% 1px}

/* ── Układ (klocki bez wyglądu marki; zerowa specyficzność — każda reguła agenta wygrywa) ─────────────────── */
:root{
  --wbm-text-s:.875rem;--wbm-text:clamp(1.0625rem,1.02rem + .18vw,1.125rem);--wbm-lead:clamp(1.1875rem,1.1rem + .45vw,1.375rem);
  --wbm-h3:clamp(1.25rem,1.12rem + .6vw,1.625rem);--wbm-h2:clamp(1.875rem,1.35rem + 2.4vw,3.375rem);--wbm-h1:clamp(2.5rem,1.45rem + 4.6vw,5rem);
  --wbm-space-xs:8px;--wbm-space-s:16px;--wbm-space-m:24px;--wbm-space-l:clamp(32px,4vw,48px);--wbm-space-xl:clamp(48px,6vw,80px);--wbm-section:clamp(64px,8vw,112px);
}
:where(.wbm-wrap){width:100%;max-width:var(--wbm-max,1200px);margin-inline:auto;padding-inline:clamp(16px,4vw,40px);box-sizing:border-box}
:where(.wbm-band){padding-block:var(--wbm-section)}
:where(.wbm-stack){display:flex;flex-direction:column;gap:var(--gap,var(--wbm-space-m))}
:where(.wbm-stack)>*{margin-block:0}
:where(.wbm-cluster){display:flex;flex-wrap:wrap;align-items:center;gap:var(--gap,var(--wbm-space-s))}
:where(.wbm-grid){display:grid;gap:var(--gap,var(--wbm-space-m));grid-template-columns:repeat(auto-fit,minmax(min(var(--min,260px),100%),1fr))}
:where(.wbm-split){display:grid;gap:var(--gap,clamp(32px,6vw,96px));align-items:var(--align,start)}
:where(.wbm-split)>*,:where(.wbm-grid)>*,:where(.wbm-rows)>*>*{min-width:0}
:where(.wbm-rows){display:grid;margin:0;padding:0;list-style:none}
:where(.wbm-rows)>*{display:grid;gap:var(--wbm-space-s) var(--gap,var(--wbm-space-l));padding-block:var(--wbm-space-l);border-top:1px solid var(--c-line,rgba(128,128,128,.3))}
:where(.wbm-rows)>*:last-child{border-bottom:1px solid var(--c-line,rgba(128,128,128,.3))}
@media (min-width:900px){
  :where(.wbm-split){grid-template-columns:var(--cols,1fr 1fr)}
  :where(.wbm-split--wide-left){--cols:1.35fr 1fr}
  :where(.wbm-split--wide-right){--cols:1fr 1.35fr}
  :where(.wbm-split--aside){--cols:1fr minmax(280px,.5fr)}
  :where(.wbm-rows)>*{grid-template-columns:var(--cols,1fr 1.6fr 1.2fr);align-items:start}
}
:where(.wbm-media){display:block;overflow:hidden;aspect-ratio:var(--ratio,4/3);margin:0}
:where(.wbm-media)>img,:where(.wbm-media)>picture>img{display:block;width:100%;height:100%;object-fit:cover;object-position:var(--focus,50% 50%)}

[data-wbm-carousel] [data-wbm-track]{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(260px,1fr);gap:var(--wbm-gap,16px);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
[data-wbm-carousel] [data-wbm-track]::-webkit-scrollbar{display:none}
[data-wbm-carousel] [data-wbm-track]>*{scroll-snap-align:start}

@media (max-width:1023px){
  [data-wbm-nav] [data-wbm-nav-menu]{display:none}
  [data-wbm-nav].is-open [data-wbm-nav-menu]{display:flex}
}
@media (min-width:1024px){[data-wbm-nav] [data-wbm-nav-toggle]{display:none}}
html.wbm-nav-open{overflow:hidden}

form[data-wbm-form] .wbm-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
/* Po udanym wysłaniu wbm.js chowa pola (hidden) i odsłania [data-wbm-form-success] — własny display strony nie może tego przebić */
form[data-wbm-form][hidden],form[data-wbm-form] [hidden],[data-wbm-form-success][hidden]{display:none!important}

/* Podpis Webomatu: czytelny w każdym kontekście — kolor i wyrównanie stopki, bez ujemnych marginesów, zawija się zamiast uciekać za krawędź */
.wbm-credit{margin:.25rem 0 0;font-size:.8125rem;line-height:1.5;opacity:.75;color:inherit;max-width:100%;overflow-wrap:anywhere;text-indent:0}
.wbm-credit a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.wbm-credit span{color:#e5484d}
.wbm-credit-wrap{padding:1rem clamp(16px,4vw,48px);text-align:center}
/* Ostateczność (stopka bez linii „©” i bez kontenera — assemble.ts → slotSpot): własny pasek z marginesami jak .wbm-wrap, na całą szerokość także w stopce flex/grid */
.wbm-credit-edge{box-sizing:border-box;width:100%;max-width:var(--wbm-max,1200px);margin-inline:auto;padding:.25rem clamp(16px,4vw,40px) 1rem;flex-basis:100%;grid-column:1/-1}
.wbm-credit-edge:empty{display:none}

/* Podgląd zdjęć galerii ([data-wbm-lightbox] — element tworzy wbm.js) */
.wbm-lightbox{position:fixed;inset:0;z-index:1000;display:grid;grid-template-rows:1fr auto;justify-items:center;align-items:center;padding:clamp(12px,3vw,40px);background:rgba(10,12,16,.94);color:#fff}
.wbm-lightbox[hidden]{display:none}
.wbm-lightbox__img{max-width:100%;max-height:calc(100vh - 140px);object-fit:contain;border-radius:4px}
.wbm-lightbox__bar{display:flex;align-items:center;gap:16px;padding-top:14px;font:500 15px/1.4 system-ui,sans-serif;max-width:min(100%,900px)}
.wbm-lightbox__cap{flex:1;min-width:0;text-align:center;opacity:.9}
.wbm-lightbox button{appearance:none;flex:none;display:grid;place-items:center;width:44px;height:44px;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:transparent;color:#fff;font-size:22px;line-height:1;cursor:pointer}
.wbm-lightbox button:hover{background:rgba(255,255,255,.14)}
.wbm-lightbox button:focus-visible{outline:2px solid #fff;outline-offset:2px}
.wbm-lightbox__close{position:absolute;top:clamp(10px,2vw,24px);right:clamp(10px,2vw,24px)}
