{"id":10,"date":"2025-06-13T15:02:06","date_gmt":"2025-06-13T13:02:06","guid":{"rendered":"https:\/\/fragrans.pl\/?page_id=10"},"modified":"2026-07-28T12:03:46","modified_gmt":"2026-07-28T10:03:46","slug":"realizacje","status":"publish","type":"page","link":"https:\/\/fragrans.pl\/it\/realizacje\/","title":{"rendered":"Realizzazioni"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; admin_label=&#8221;Baner&#8221; module_class=&#8221;counters&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; background_enable_image=&#8221;off&#8221; min_height_last_edited=&#8221;off|desktop&#8221; custom_padding=&#8221;||10px|||&#8221; custom_css_free_form=&#8221;selector {||display: flex;||flex-direction: column;||justify-content: center;||}&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row custom_padding_last_edited=&#8221;off|desktop&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;||||false|false&#8221; custom_margin_tablet=&#8221;100px||100px||false|false&#8221; custom_margin_phone=&#8221;||||false|false&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; custom_padding=&#8221;||13px||false|false&#8221; custom_padding_tablet=&#8221;100px||100px||false|false&#8221; custom_padding_phone=&#8221;||||false|false&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_heading title=&#8221;Realizacje&#8221; module_class=&#8221;main-title&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; title_text_align=&#8221;left&#8221; global_colors_info=&#8221;{}&#8221; custom_margin=&#8221;||17px|||&#8221;][\/et_pb_heading][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; animation_direction=&#8221;left&#8221; global_colors_info=&#8221;{}&#8221;]Przedstawiamy wybrane projekty, kt\u00f3re realizowali\u015bmy dla naszych Klient\u00f3w. Przez wiele lat podejmowali\u015bmy si\u0119 r\u00f3\u017cnorodnych projekt\u00f3w dla wielu bran\u017c. Wi\u0119kszo\u015b\u0107 realizacji zlecanych przez agencje reklamowe pozostaje tajemnic\u0105, dlatego ograniczyli\u015bmy prezentowane poni\u017cej prace.[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; fullwidth=&#8221;on&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_fullwidth_code _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<!-- [et_pb_line_break_holder] --><!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550<!-- [et_pb_line_break_holder] -->     FRAGRANS \u00b7 \u015aCIANA REALIZACJI \u2014 samodzielny blok do Divi<!-- [et_pb_line_break_holder] -->     \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<!-- [et_pb_line_break_holder] -->     JAK U\u017bY\u0106:<!-- [et_pb_line_break_holder] -->       Divi \u2192 Modu\u0142 \u201eKod&#8221; (Code) \u2192 wklej CA\u0141O\u015a\u0106 tego pliku.<!-- [et_pb_line_break_holder] -->       Ustaw w wierszu (Row): szeroko\u015b\u0107 100%, padding 0, \u201eUse Custom<!-- [et_pb_line_break_holder] -->       Gutter Width&#8221; = 1, \u017ceby \u015bciana sz\u0142a od kraw\u0119dzi do kraw\u0119dzi.<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->     KONFIGURACJA: patrz sekcja `const CFG` w skrypcie na dole.<!-- [et_pb_line_break_holder] -->     Blok jest w pe\u0142ni izolowany (prefiks .frw-), nie rusza styl\u00f3w motywu.<!-- [et_pb_line_break_holder] -->     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 &#8211;><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->\/* \u2500\u2500 zmienne bloku \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/<!-- [et_pb_line_break_holder] -->.frw{<!-- [et_pb_line_break_holder] -->  --frw-bg:#ffffff;<!-- [et_pb_line_break_holder] -->  --frw-ink:#020100;<!-- [et_pb_line_break_holder] -->  --frw-accent:#15779b;<!-- [et_pb_line_break_holder] -->  --frw-muted:#6b7280;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  --frw-gap:clamp(8px,1.1vw,18px);<!-- [et_pb_line_break_holder] -->  --frw-pad:clamp(6px,1.4vw,24px);<!-- [et_pb_line_break_holder] -->  --frw-radius:14px;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* wysoko\u015b\u0107 \u015bciany \u2014 svh nie skacze przy chowaniu paska adresu *\/<!-- [et_pb_line_break_holder] -->  --frw-h:clamp(520px,86vh,980px);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@supports (height:1svh){ .frw{ --frw-h:clamp(520px,86svh,980px); } }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2500\u2500 kontener \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/<!-- [et_pb_line_break_holder] -->.frw{<!-- [et_pb_line_break_holder] -->  position:relative;<!-- [et_pb_line_break_holder] -->  height:var(--frw-h);<!-- [et_pb_line_break_holder] -->  overflow:hidden;<!-- [et_pb_line_break_holder] -->  background:var(--frw-bg);<!-- [et_pb_line_break_holder] -->  padding:0 var(--frw-pad);<!-- [et_pb_line_break_holder] -->  font-family:inherit;<!-- [et_pb_line_break_holder] -->  contain:layout paint;<!-- [et_pb_line_break_holder] -->  isolation:isolate;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.frw *{box-sizing:border-box}<!-- [et_pb_line_break_holder] -->.frw-sr{<!-- [et_pb_line_break_holder] -->  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;<!-- [et_pb_line_break_holder] -->  overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2500\u2500 siatka kolumn \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/<!-- [et_pb_line_break_holder] -->.frw-grid{<!-- [et_pb_line_break_holder] -->  display:grid;<!-- [et_pb_line_break_holder] -->  grid-template-columns:repeat(var(--frw-nc,5),minmax(0,1fr));<!-- [et_pb_line_break_holder] -->  gap:var(--frw-gap);<!-- [et_pb_line_break_holder] -->  height:100%;<!-- [et_pb_line_break_holder] -->  \/* zoom kompensuje przesuni\u0119cie parallaxu \u2014 brak bia\u0142ych kraw\u0119dzi *\/<!-- [et_pb_line_break_holder] -->  transform:translate3d(var(--frw-mx,0px),var(--frw-my,0px),0) scale(var(--frw-zoom,1));<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.frw-col{<!-- [et_pb_line_break_holder] -->  min-width:0;<!-- [et_pb_line_break_holder] -->  opacity:0;<!-- [et_pb_line_break_holder] -->  transform:translate3d(0,30px,0);<!-- [et_pb_line_break_holder] -->  animation:frw-in 1.05s cubic-bezier(.19,1,.22,1) var(--frw-in,0ms) forwards;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@keyframes frw-in{to{opacity:1;transform:none}}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2500\u2500 pas (marquee) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/<!-- [et_pb_line_break_holder] -->.frw-track{<!-- [et_pb_line_break_holder] -->  display:flex;<!-- [et_pb_line_break_holder] -->  flex-direction:column;<!-- [et_pb_line_break_holder] -->  gap:var(--frw-gap);<!-- [et_pb_line_break_holder] -->  animation:frw-up var(--frw-dur,90s) linear var(--frw-delay,0s) infinite;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.frw-col.is-down .frw-track{animation-name:frw-down}<!-- [et_pb_line_break_holder] -->\/* pas sk\u0142ada si\u0119 z 2 identycznych kopii \u2192 przesuni\u0119cie o dok\u0142adnie<!-- [et_pb_line_break_holder] -->   jedn\u0105 kopi\u0119 (-50% wysoko\u015bci minus po\u0142owa gapa) jest bezszwowe *\/<!-- [et_pb_line_break_holder] -->@keyframes frw-up{<!-- [et_pb_line_break_holder] -->  from{transform:translate3d(0,0,0)}<!-- [et_pb_line_break_holder] -->  to  {transform:translate3d(0,calc(-50% - var(--frw-gap)\/2),0)}<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@keyframes frw-down{<!-- [et_pb_line_break_holder] -->  from{transform:translate3d(0,calc(-50% - var(--frw-gap)\/2),0)}<!-- [et_pb_line_break_holder] -->  to  {transform:translate3d(0,0,0)}<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* pauza: pod kursorem, przy fokusie Z KLAWIATURY, poza ekranem, w tle karty.<!-- [et_pb_line_break_holder] -->   Celowo :focus-visible, a nie :focus-within \u2014 po zamkni\u0119ciu podgl\u0105du<!-- [et_pb_line_break_holder] -->   oddajemy fokus na kafelek (dost\u0119pno\u015b\u0107), a :focus-within trzyma\u0142oby<!-- [et_pb_line_break_holder] -->   wtedy kolumn\u0119 zatrzyman\u0105 na sta\u0142e. Mysz nie ustawia :focus-visible,<!-- [et_pb_line_break_holder] -->   wi\u0119c kolumna rusza dalej; u\u017cytkownik klawiatury pauz\u0119 nadal dostaje. *\/<!-- [et_pb_line_break_holder] -->.frw-col:has(.frw-cell:hover) .frw-track,<!-- [et_pb_line_break_holder] -->.frw-col:has(.frw-cell:focus-visible) .frw-track,<!-- [et_pb_line_break_holder] -->.frw.is-paused .frw-track{animation-play-state:paused}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2500\u2500 kafelek \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/<!-- [et_pb_line_break_holder] -->.frw-cell{<!-- [et_pb_line_break_holder] -->  position:relative;<!-- [et_pb_line_break_holder] -->  flex:0 0 auto;<!-- [et_pb_line_break_holder] -->  width:100%;<!-- [et_pb_line_break_holder] -->  aspect-ratio:1\/1;<!-- [et_pb_line_break_holder] -->  display:block;<!-- [et_pb_line_break_holder] -->  padding:5%;<!-- [et_pb_line_break_holder] -->  margin:0;<!-- [et_pb_line_break_holder] -->  border:0;<!-- [et_pb_line_break_holder] -->  border-radius:var(--frw-radius);<!-- [et_pb_line_break_holder] -->  background:none;<!-- [et_pb_line_break_holder] -->  font:inherit;<!-- [et_pb_line_break_holder] -->  color:inherit;<!-- [et_pb_line_break_holder] -->  cursor:zoom-in;<!-- [et_pb_line_break_holder] -->  -webkit-tap-highlight-color:transparent;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.frw-cell img{<!-- [et_pb_line_break_holder] -->  display:block;<!-- [et_pb_line_break_holder] -->  width:100%;height:100%;<!-- [et_pb_line_break_holder] -->  object-fit:contain;<!-- [et_pb_line_break_holder] -->  user-select:none;-webkit-user-drag:none;<!-- [et_pb_line_break_holder] -->  transition:transform .7s cubic-bezier(.19,1,.22,1),opacity .4s ease,filter .4s ease;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Szarzeje TYLKO kafelek pod kursorem \u2014 reszta \u015bciany bez zmian<!-- [et_pb_line_break_holder] -->   (tak jak w wersji standalone). *\/<!-- [et_pb_line_break_holder] -->.frw-cell:hover{z-index:2}<!-- [et_pb_line_break_holder] -->.frw-cell:hover img{opacity:.6;transform:scale(1.07);filter:drop-shadow(0 12px 22px rgba(0,0,0,.10))}<!-- [et_pb_line_break_holder] -->.frw-cell:active img{transform:scale(1.03)}<!-- [et_pb_line_break_holder] -->.frw-cell:focus-visible{outline:2px solid var(--frw-accent);outline-offset:-3px}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* plakietka \u201e+\" \u2014 sygna\u0142, \u017ce kafelek jest klikalny *\/<!-- [et_pb_line_break_holder] -->.frw-cell::after{<!-- [et_pb_line_break_holder] -->  content:\"\";<!-- [et_pb_line_break_holder] -->  position:absolute;right:9%;bottom:9%;<!-- [et_pb_line_break_holder] -->  width:30px;height:30px;border-radius:50%;<!-- [et_pb_line_break_holder] -->  background:var(--frw-accent) no-repeat center\/13px 13px;<!-- [et_pb_line_break_holder] -->  background-image:url(\"data:image\/svg+xml;charset=utf8,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'\/%3E%3C\/svg%3E\");<!-- [et_pb_line_break_holder] -->  opacity:0;transform:scale(.6);<!-- [et_pb_line_break_holder] -->  transition:opacity .28s ease,transform .38s cubic-bezier(.19,1,.22,1);<!-- [et_pb_line_break_holder] -->  pointer-events:none;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.frw-cell:hover::after,.frw-cell:focus-visible::after{opacity:1;transform:none}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2500\u2500 wygaszenia g\u00f3ra\/d\u00f3\u0142 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/<!-- [et_pb_line_break_holder] -->.frw-fade{position:absolute;left:0;right:0;height:14%;pointer-events:none;z-index:3}<!-- [et_pb_line_break_holder] -->.frw-fade--t{top:0;background:linear-gradient(var(--frw-bg) 12%,rgba(255,255,255,0))}<!-- [et_pb_line_break_holder] -->.frw-fade--b{bottom:0;background:linear-gradient(rgba(255,255,255,0),var(--frw-bg) 88%)}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2500\u2500 podpowied\u017a \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/<!-- [et_pb_line_break_holder] -->.frw-hint{<!-- [et_pb_line_break_holder] -->  position:absolute;left:50%;bottom:18px;transform:translateX(-50%);<!-- [et_pb_line_break_holder] -->  z-index:4;margin:0;padding:8px 16px;border-radius:999px;<!-- [et_pb_line_break_holder] -->  background:rgba(2,1,0,.72);color:#fff;<!-- [et_pb_line_break_holder] -->  font-size:12.5px;line-height:1;letter-spacing:.02em;white-space:nowrap;<!-- [et_pb_line_break_holder] -->  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);<!-- [et_pb_line_break_holder] -->  opacity:0;animation:frw-hint 8s ease forwards 1.4s;pointer-events:none;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@keyframes frw-hint{0%{opacity:0;transform:translateX(-50%) translateY(8px)}<!-- [et_pb_line_break_holder] -->  12%,72%{opacity:1;transform:translateX(-50%)}100%{opacity:0;transform:translateX(-50%) translateY(8px)}}<!-- [et_pb_line_break_holder] -->.frw.is-touched .frw-hint{animation:none;opacity:0}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2550\u2550\u2550 PODGL\u0104D (dialog w top-layer \u2014 odporny na transformy Divi) \u2550\u2550\u2550 *\/<!-- [et_pb_line_break_holder] -->.frw-lb{<!-- [et_pb_line_break_holder] -->  position:fixed;inset:0;<!-- [et_pb_line_break_holder] -->  width:100%;max-width:100%;height:100%;max-height:100%;<!-- [et_pb_line_break_holder] -->  padding:0;margin:0;border:0;overflow:hidden;<!-- [et_pb_line_break_holder] -->  background:rgba(255,255,255,.92);<!-- [et_pb_line_break_holder] -->  -webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);<!-- [et_pb_line_break_holder] -->  color:var(--frw-ink,#020100);<!-- [et_pb_line_break_holder] -->  font-family:inherit;<!-- [et_pb_line_break_holder] -->  --frw-th:74px;              \/* rozmiar miniatury w pasku *\/<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.frw-lb *{box-sizing:border-box}<!-- [et_pb_line_break_holder] -->.frw-lb::backdrop{background:rgba(255,255,255,.6);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}<!-- [et_pb_line_break_holder] -->.frw-lb[open]{animation:frw-lb-in .34s cubic-bezier(.19,1,.22,1)}<!-- [et_pb_line_break_holder] -->@keyframes frw-lb-in{from{opacity:0}to{opacity:1}}<!-- [et_pb_line_break_holder] -->.frw-lb.is-closing{opacity:0;transition:opacity .22s ease}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->.frw-lb-nr{<!-- [et_pb_line_break_holder] -->  position:absolute;top:26px;left:clamp(18px,4vw,48px);z-index:3;<!-- [et_pb_line_break_holder] -->  font-size:14px;font-weight:800;letter-spacing:.12em;line-height:1;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.frw-lb-nr i{font-style:normal;font-weight:400;color:#6b7280;margin-left:6px;letter-spacing:.04em}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->.frw-lb-x{<!-- [et_pb_line_break_holder] -->  position:absolute;top:20px;right:clamp(14px,3vw,36px);z-index:4;<!-- [et_pb_line_break_holder] -->  width:46px;height:46px;border:0;border-radius:50%;padding:0;<!-- [et_pb_line_break_holder] -->  background:rgba(2,1,0,.05);cursor:pointer;<!-- [et_pb_line_break_holder] -->  transition:background .2s ease,transform .4s cubic-bezier(.19,1,.22,1);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.frw-lb-x span{position:absolute;left:14px;top:22px;width:18px;height:1.6px;background:currentColor;transition:background .2s}<!-- [et_pb_line_break_holder] -->.frw-lb-x span:first-child{transform:rotate(45deg)}<!-- [et_pb_line_break_holder] -->.frw-lb-x span:last-child{transform:rotate(-45deg)}<!-- [et_pb_line_break_holder] -->.frw-lb-x:hover{background:var(--frw-ink,#020100);transform:rotate(90deg)}<!-- [et_pb_line_break_holder] -->.frw-lb-x:hover span{background:#fff}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->.frw-lb-arw{<!-- [et_pb_line_break_holder] -->  position:absolute;top:calc(50% - 63px);z-index:3;<!-- [et_pb_line_break_holder] -->  width:54px;height:54px;display:grid;place-items:center;<!-- [et_pb_line_break_holder] -->  border:0;border-radius:50%;padding:0;<!-- [et_pb_line_break_holder] -->  background:rgba(2,1,0,.05);color:inherit;font-size:19px;line-height:1;cursor:pointer;<!-- [et_pb_line_break_holder] -->  transition:background .2s ease,color .2s ease,transform .35s cubic-bezier(.19,1,.22,1);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.frw-lb-arw:hover{background:var(--frw-accent,#15779b);color:#fff;transform:scale(1.09)}<!-- [et_pb_line_break_holder] -->.frw-lb-arw:active{transform:scale(.96)}<!-- [et_pb_line_break_holder] -->.frw-lb-arw--l{left:clamp(10px,2.4vw,34px)}<!-- [et_pb_line_break_holder] -->.frw-lb-arw--r{right:clamp(10px,2.4vw,34px)}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->.frw-lb-stage{<!-- [et_pb_line_break_holder] -->  position:absolute;left:0;right:0;top:0;bottom:126px;<!-- [et_pb_line_break_holder] -->  display:grid;place-items:stretch;<!-- [et_pb_line_break_holder] -->  padding:64px clamp(72px,9vw,150px) 12px;<!-- [et_pb_line_break_holder] -->  touch-action:pan-y;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Obrazek WYPE\u0141NIA ramk\u0119 i jest skalowany przez object-fit \u2014 nie odwrotnie.<!-- [et_pb_line_break_holder] -->   max-height:100% liczone wzgl\u0119dem wiersza o wysoko\u015bci auto jest<!-- [et_pb_line_break_holder] -->   nierozstrzygalne i przegl\u0105darka je ignoruje, przez co du\u017ce zdj\u0119cie<!-- [et_pb_line_break_holder] -->   wychodzi\u0142o pod pasek miniatur. *\/<!-- [et_pb_line_break_holder] -->.frw-lb-slide{display:block;min-width:0;min-height:0;will-change:transform}<!-- [et_pb_line_break_holder] -->.frw-lb-slide img{<!-- [et_pb_line_break_holder] -->  width:100%;height:100%;min-width:0;min-height:0;<!-- [et_pb_line_break_holder] -->  object-fit:contain;<!-- [et_pb_line_break_holder] -->  filter:drop-shadow(0 28px 48px rgba(0,0,0,.15));<!-- [et_pb_line_break_holder] -->  transition:opacity .32s ease,transform .5s cubic-bezier(.19,1,.22,1);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.frw-lb-slide.is-loading img{opacity:0;transform:scale(.97)}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* pasek miniatur *\/<!-- [et_pb_line_break_holder] -->.frw-lb-rail{<!-- [et_pb_line_break_holder] -->  position:absolute;left:0;right:0;bottom:0;height:126px;<!-- [et_pb_line_break_holder] -->  display:flex;align-items:center;gap:10px;<!-- [et_pb_line_break_holder] -->  \/* dope\u0142nienie = dok\u0142adnie tyle, by pierwsz\u0105 i ostatni\u0105 miniatur\u0119<!-- [et_pb_line_break_holder] -->     da\u0142o si\u0119 ustawi\u0107 na \u015brodku pasa *\/<!-- [et_pb_line_break_holder] -->  padding:0 calc(50% - var(--frw-th)\/2);<!-- [et_pb_line_break_holder] -->  overflow-x:auto;overflow-y:hidden;<!-- [et_pb_line_break_holder] -->  scrollbar-width:none;-ms-overflow-style:none;<!-- [et_pb_line_break_holder] -->  overscroll-behavior-x:contain;<!-- [et_pb_line_break_holder] -->  scroll-behavior:smooth;<!-- [et_pb_line_break_holder] -->  -webkit-mask-image:linear-gradient(90deg,transparent,#000 11%,#000 89%,transparent);<!-- [et_pb_line_break_holder] -->  mask-image:linear-gradient(90deg,transparent,#000 11%,#000 89%,transparent);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.frw-lb-rail::-webkit-scrollbar{display:none}<!-- [et_pb_line_break_holder] -->.frw-lb-th{<!-- [et_pb_line_break_holder] -->  flex:0 0 auto;width:var(--frw-th);height:var(--frw-th);padding:9px;margin:0;<!-- [et_pb_line_break_holder] -->  border:0;background:none;border-radius:10px;cursor:pointer;<!-- [et_pb_line_break_holder] -->  opacity:.34;transform:scale(.88);<!-- [et_pb_line_break_holder] -->  transition:opacity .3s ease,transform .45s cubic-bezier(.19,1,.22,1);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.frw-lb-th img{width:100%;height:100%;object-fit:contain;display:block}<!-- [et_pb_line_break_holder] -->.frw-lb-th:hover{opacity:.7}<!-- [et_pb_line_break_holder] -->.frw-lb-th.is-on{opacity:1;transform:scale(1.14)}<!-- [et_pb_line_break_holder] -->.frw-lb-th:focus-visible{outline:2px solid var(--frw-accent,#15779b);outline-offset:2px;opacity:1}<!-- [et_pb_line_break_holder] -->.frw-lb-mark{<!-- [et_pb_line_break_holder] -->  position:absolute;left:50%;bottom:15px;width:26px;height:2px;margin-left:-13px;<!-- [et_pb_line_break_holder] -->  background:var(--frw-accent,#15779b);pointer-events:none;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->@media (max-width:1100px){<!-- [et_pb_line_break_holder] -->  .frw-lb-stage{bottom:112px}<!-- [et_pb_line_break_holder] -->  .frw-lb-rail{height:112px}<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width:700px){<!-- [et_pb_line_break_holder] -->  .frw-lb-stage{padding:58px 14px 8px;bottom:104px}<!-- [et_pb_line_break_holder] -->  .frw-lb-arw{top:auto;bottom:112px;width:46px;height:46px;font-size:17px}<!-- [et_pb_line_break_holder] -->  .frw-lb-arw--l{left:12px}<!-- [et_pb_line_break_holder] -->  .frw-lb-arw--r{right:12px}<!-- [et_pb_line_break_holder] -->  .frw-lb-rail{height:104px}<!-- [et_pb_line_break_holder] -->  .frw-lb-nr{top:22px;left:16px;font-size:13px}<!-- [et_pb_line_break_holder] -->  .frw-lb{--frw-th:60px}<!-- [et_pb_line_break_holder] -->  .frw-lb-th{padding:7px}<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2500\u2500 mniej ruchu: \u015bciana staje si\u0119 zwyk\u0142\u0105, przewijaln\u0105 siatk\u0105 \u2500\u2500\u2500\u2500\u2500\u2500 *\/<!-- [et_pb_line_break_holder] -->@media (prefers-reduced-motion:reduce){<!-- [et_pb_line_break_holder] -->  .frw{height:auto;max-height:var(--frw-h);overflow-y:auto;padding:var(--frw-pad)}<!-- [et_pb_line_break_holder] -->  .frw-grid{height:auto;transform:none}<!-- [et_pb_line_break_holder] -->  .frw-col{opacity:1;transform:none;animation:none}<!-- [et_pb_line_break_holder] -->  .frw-track{animation:none}<!-- [et_pb_line_break_holder] -->  .frw-cell img,.frw-cell::after,.frw-lb-slide img{transition:none}<!-- [et_pb_line_break_holder] -->  .frw-fade,.frw-hint{display:none}<!-- [et_pb_line_break_holder] -->  \/* bez ruchu druga kopia pasa jest zb\u0119dna \u2014 zostaj\u0105 32 unikalne kafelki *\/<!-- [et_pb_line_break_holder] -->  .frw-cell[aria-hidden=\"true\"]{display:none}<!-- [et_pb_line_break_holder] -->  .frw-lb[open],.frw-lb-rail{animation:none;scroll-behavior:auto}<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<section class=\"frw\" id=\"frw-realizacje\" aria-labelledby=\"frw-title\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<h2 class=\"frw-sr\" id=\"frw-title\">Nasze realizacje<\/h2>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"frw-grid\" id=\"frw-grid\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"frw-fade frw-fade--t\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"frw-fade frw-fade--b\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->  <pee class=\"frw-hint\" id=\"frw-hint\"><\/pee><!-- [et_pb_line_break_holder] --><\/section>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function(){<!-- [et_pb_line_break_holder] -->\"use strict\";<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 KONFIGURACJA \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/<!-- [et_pb_line_break_holder] -->var CFG = {<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* wsp\u00f3lny pocz\u0105tek adresu wszystkich plik\u00f3w *\/<!-- [et_pb_line_break_holder] -->  base: \"https:\/\/fragrans.pl\/wp-content\/uploads\/2025\/06\/\",<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* 32 realizacje. Dodajesz now\u0105? Wgraj do Biblioteki medi\u00f3w WP<!-- [et_pb_line_break_holder] -->     (WP sam zrobi miniatury 150\/300\/768\/1024) i dopisz nazw\u0119 pliku. *\/<!-- [et_pb_line_break_holder] -->  files: [<!-- [et_pb_line_break_holder] -->    \"big-zngkyraqhcp92d3w4bmv165ixjfute08l7so20181219153247-1.png\",<!-- [et_pb_line_break_holder] -->    \"big-zlsda71wmjp02btfo3rengkvi9q58x4yuc6h20181219152647.png\",<!-- [et_pb_line_break_holder] -->    \"big-yjlovwiud29cs14zrpbneq8t07g63fmxka5h20181219153142.png\",<!-- [et_pb_line_break_holder] -->    \"big-wgqiaed4r09xlvbm2otu7sfk1pj65ny83chz20181219153259-1.png\",<!-- [et_pb_line_break_holder] -->    \"big-vor6jhq78zgbaucxipem5w4ktlny9s1df30220181219153241-1.png\",<!-- [et_pb_line_break_holder] -->    \"big-sf5v6edohnkt1mcx403gpurj7bq2ayzi9w8l20181219153312-1.png\",<!-- [et_pb_line_break_holder] -->    \"big-q03snybzd7wgia2ot6kl94urvcj18e5hfpmx20181219152918.png\",<!-- [et_pb_line_break_holder] -->    \"big-phgzwy41t9rbexmqa60i8su3jnfvk75ld2oc20181219153113.png\",<!-- [et_pb_line_break_holder] -->    \"big-p5ca4hyeuowzmnsl0igxtkr7vb92jf6q813d20181219153514-1.png\",<!-- [et_pb_line_break_holder] -->    \"big-oqvlxm53f61cnu4jdzrpwy2k9h0is7b8ateg20181219152858.png\",<!-- [et_pb_line_break_holder] -->    \"big-oj9nal18eyrks7xh6pctum4w2vig3fz0q5bd20181219153105.png\",<!-- [et_pb_line_break_holder] -->    \"big-mcoyl35dgwpvx0etn1hbq7kf69uz248arsij20181219153033.png\",<!-- [et_pb_line_break_holder] -->    \"big-lhki6dzg9escvtuo145p7wa3xf8ny2jrqm0b20181219152631.png\",<!-- [et_pb_line_break_holder] -->    \"big-kz74gbdup2cxwylqsmhftrj6o89i1v30a5en20181219153208.png\",<!-- [et_pb_line_break_holder] -->    \"big-kac0ygzo87rtvn214uhmel6p9fixqwdb5sj320181219153049.png\",<!-- [et_pb_line_break_holder] -->    \"big-k5g0j93ad6mpb4sf8irhonl17vtwyuzxcq2e20181219151306.png\",<!-- [et_pb_line_break_holder] -->    \"big-jy29v7nehizrlptwo51kas3xfq680m4gdcub20181219152842.png\",<!-- [et_pb_line_break_holder] -->    \"big-ivqspnaoe0391746fy5kcbdgxz2mwulrh8jt20181219153057.png\",<!-- [et_pb_line_break_holder] -->    \"big-g31qivd897uln0z62mcrxp4kafhwyoje5tsb20181219153148.png\",<!-- [et_pb_line_break_holder] -->    \"big-eq6zsn3bfd0ckloyj2iatp98x7v4hw15umgr20181219153121.png\",<!-- [et_pb_line_break_holder] -->    \"big-d9a582uphljbzvset6fwq401rig7onxkmyc320181219152653.png\",<!-- [et_pb_line_break_holder] -->    \"big-cxtkmjsrvu9dybznqh2p5og7a4e06wli183f20181219153234.png\",<!-- [et_pb_line_break_holder] -->    \"big-c605xr28n9sh3kyualqg7ejmztidwp4f1bvo20181219153214.png\",<!-- [et_pb_line_break_holder] -->    \"big-ba5tkf3gqu9zl07o2exmdip4jn6h1yc8srvw20181219153227.png\",<!-- [et_pb_line_break_holder] -->    \"big-a3zb79ygh1oqpuj82tsvfdcxr6n4kie05lmw20181219153253-1.png\",<!-- [et_pb_line_break_holder] -->    \"big-29yzc6tgp1r7jvx54hbsoe3mi0lufdkqaw8n20181219153203.png\",<!-- [et_pb_line_break_holder] -->    \"big-5mvxg1bfktpd67elaj9hunyo0rz8qsw324ic20181219153155.png\",<!-- [et_pb_line_break_holder] -->    \"big-4w6pqz7s582h1j3uk0ixacromgtblvne9yfd20181219153135.png\",<!-- [et_pb_line_break_holder] -->    \"big-3gnpi64hb0oj8zfemcsatk1w7q9xrv2ulyd520181219153305-1.png\",<!-- [et_pb_line_break_holder] -->    \"big-1lt5yj9wedprn28i67gcm0koqfhbaxsv3zu420181219153221.png\",<!-- [et_pb_line_break_holder] -->    \"big-0t8gr2z7aso6cy1q9wkn5xej43fphlmivubd20201123200223-1.jpg\",<!-- [et_pb_line_break_holder] -->    \"big-0n9e3jxqdgiamb5ovpfuw4c8syl27ht6rkz120181219153042.png\"<!-- [et_pb_line_break_holder] -->  ],<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* liczba kolumn: [maksymalna szeroko\u015b\u0107 okna, kolumny] *\/<!-- [et_pb_line_break_holder] -->  breakpoints: [[560,2],[860,3],[1200,4],[Infinity,5]],<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* pr\u0119dko\u015b\u0107 pas\u00f3w w pikselach na sekund\u0119 (25\u201335 = spokojnie, 50 = \u017cwawo) *\/<!-- [et_pb_line_break_holder] -->  speed: 30,<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* si\u0142a parallaxu pod kursorem w px (0 = wy\u0142\u0105cz) *\/<!-- [et_pb_line_break_holder] -->  parallax: 22,<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* podpowied\u017a na starcie; \"\" = bez podpowiedzi *\/<!-- [et_pb_line_break_holder] -->  hint: \"32 realizacje \u00b7 kliknij, aby powi\u0119kszy\u0107\",<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* miniatury generowane przez WordPress *\/<!-- [et_pb_line_break_holder] -->  thumbs: [150,300,768,1024]<!-- [et_pb_line_break_holder] -->};<!-- [et_pb_line_break_holder] -->\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 koniec konfiguracji \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->var wall = document.getElementById(\"frw-realizacje\");<!-- [et_pb_line_break_holder] -->var grid = document.getElementById(\"frw-grid\");<!-- [et_pb_line_break_holder] -->if (!wall || !grid || wall.dataset.frwReady) return;<!-- [et_pb_line_break_holder] -->wall.dataset.frwReady = \"1\";<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->var N = CFG.files.length;<!-- [et_pb_line_break_holder] -->var reduce = matchMedia(\"(prefers-reduced-motion: reduce)\");<!-- [et_pb_line_break_holder] -->var finePointer = matchMedia(\"(hover:hover) and (pointer:fine)\");<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2500\u2500 adresy obraz\u00f3w \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/<!-- [et_pb_line_break_holder] -->function variant(i, w){<!-- [et_pb_line_break_holder] -->  var f = CFG.files[i];<!-- [et_pb_line_break_holder] -->  if (!w) return CFG.base + f;<!-- [et_pb_line_break_holder] -->  return CFG.base + f.replace(\/(\\.(?:png|jpe?g|webp))$\/i, \"-\" + w + \"x\" + w + \"$1\");<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->function srcset(i, list){<!-- [et_pb_line_break_holder] -->  return list.map(function(w){ return variant(i, w) + \" \" + w + \"w\"; }).join(\", \");<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* je\u017celi kt\u00f3ra\u015b miniatura nie istnieje \u2014 cichy powr\u00f3t do orygina\u0142u *\/<!-- [et_pb_line_break_holder] -->function guard(img, i){<!-- [et_pb_line_break_holder] -->  img.addEventListener(\"error\", function once(){<!-- [et_pb_line_break_holder] -->    img.removeEventListener(\"error\", once);<!-- [et_pb_line_break_holder] -->    img.removeAttribute(\"srcset\");<!-- [et_pb_line_break_holder] -->    img.removeAttribute(\"sizes\");<!-- [et_pb_line_break_holder] -->    img.src = variant(i, 0);<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2500\u2500 ile kolumn \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/<!-- [et_pb_line_break_holder] -->function colCount(){<!-- [et_pb_line_break_holder] -->  var w = innerWidth;<!-- [et_pb_line_break_holder] -->  for (var k = 0; k < CFG.breakpoints.length; k++){<!-- [et_pb_line_break_holder] -->    if (w <= CFG.breakpoints[k][0]) return CFG.breakpoints[k][1];<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  return CFG.breakpoints[CFG.breakpoints.length - 1][1];<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->var WALL_SIZES =<!-- [et_pb_line_break_holder] -->  \"(max-width:560px) 42vw, (max-width:860px) 28vw, (max-width:1200px) 21vw, 17vw\";<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function makeCell(i, eager, dup){<!-- [et_pb_line_break_holder] -->  var b = document.createElement(\"button\");<!-- [et_pb_line_break_holder] -->  b.type = \"button\";<!-- [et_pb_line_break_holder] -->  b.className = \"frw-cell\";<!-- [et_pb_line_break_holder] -->  b.dataset.frwIndex = i;<!-- [et_pb_line_break_holder] -->  if (dup){<!-- [et_pb_line_break_holder] -->    b.setAttribute(\"aria-hidden\", \"true\");<!-- [et_pb_line_break_holder] -->    b.tabIndex = -1;<!-- [et_pb_line_break_holder] -->  } else {<!-- [et_pb_line_break_holder] -->    b.setAttribute(\"aria-label\", \"Powi\u0119ksz realizacj\u0119 \" + (i + 1) + \" z \" + N);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  var img = document.createElement(\"img\");<!-- [et_pb_line_break_holder] -->  img.width = 300; img.height = 300;<!-- [et_pb_line_break_holder] -->  img.alt = \"\";<!-- [et_pb_line_break_holder] -->  img.decoding = \"async\";<!-- [et_pb_line_break_holder] -->  img.draggable = false;<!-- [et_pb_line_break_holder] -->  img.loading = eager ? \"eager\" : \"lazy\";<!-- [et_pb_line_break_holder] -->  img.src = variant(i, 300);<!-- [et_pb_line_break_holder] -->  img.srcset = srcset(i, CFG.thumbs);<!-- [et_pb_line_break_holder] -->  img.sizes = WALL_SIZES;<!-- [et_pb_line_break_holder] -->  guard(img, i);<!-- [et_pb_line_break_holder] -->  b.appendChild(img);<!-- [et_pb_line_break_holder] -->  return b;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2500\u2500 budowa \u015bciany \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/<!-- [et_pb_line_break_holder] -->var built = {nc:0, need:0};<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function build(){<!-- [et_pb_line_break_holder] -->  var nc = colCount();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* rozmiar kafelka bierzemy z realnego layoutu, nie z domys\u0142u.<!-- [et_pb_line_break_holder] -->     clientWidth jest odporny na transform (scale) siatki. *\/<!-- [et_pb_line_break_holder] -->  var gap = parseFloat(getComputedStyle(grid).columnGap) || 0;<!-- [et_pb_line_break_holder] -->  var colW = (grid.clientWidth - (nc - 1) * gap) \/ nc;<!-- [et_pb_line_break_holder] -->  var wallH = wall.clientHeight;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* layout jeszcze nieustalony (Divi, ukryta zak\u0142adka, builder) \u2014<!-- [et_pb_line_break_holder] -->     nie budujemy \u015bmieci, spr\u00f3bujemy przy nast\u0119pnym pomiarze *\/<!-- [et_pb_line_break_holder] -->  if (!(colW > 40) || !(wallH > 80)) return;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* pas musi by\u0107 wy\u017cszy ni\u017c okno \u015bciany \u2014 inaczej pojawi si\u0119 przerwa.<!-- [et_pb_line_break_holder] -->     G\u00f3rny limit chroni przed lawin\u0105 w\u0119z\u0142\u00f3w przy dziwnym layoucie. *\/<!-- [et_pb_line_break_holder] -->  var need = Math.min(40, Math.max(3, Math.ceil(wallH \/ (colW + gap)) + 2));<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* przebudowa tylko gdy naprawd\u0119 trzeba \u2014 inaczej ka\u017cdy drobny resize<!-- [et_pb_line_break_holder] -->     restartowa\u0142by animacj\u0119 i pasy by \u201eprzeskakiwa\u0142y\" *\/<!-- [et_pb_line_break_holder] -->  if (nc === built.nc && need <= built.need) return;<!-- [et_pb_line_break_holder] -->  built = {nc:nc, need:need};<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  grid.style.setProperty(\"--frw-nc\", nc);<!-- [et_pb_line_break_holder] -->  grid.textContent = \"\";<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  var cellH = colW;<!-- [et_pb_line_break_holder] -->  var cols = [];<!-- [et_pb_line_break_holder] -->  var c;<!-- [et_pb_line_break_holder] -->  for (c = 0; c < nc; c++) cols.push([]);<!-- [et_pb_line_break_holder] -->  for (var i = 0; i < N; i++) cols[i % nc].push(i);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  var frag = document.createDocumentFragment();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  for (c = 0; c < nc; c++){<!-- [et_pb_line_break_holder] -->    var unit = cols[c].slice();<!-- [et_pb_line_break_holder] -->    while (unit.length < need) unit = unit.concat(cols[c]);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    var col = document.createElement(\"div\");<!-- [et_pb_line_break_holder] -->    col.className = \"frw-col\" + (c % 2 ? \" is-down\" : \"\");<!-- [et_pb_line_break_holder] -->    col.style.setProperty(\"--frw-in\", (c * 105) + \"ms\");<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    var track = document.createElement(\"div\");<!-- [et_pb_line_break_holder] -->    track.className = \"frw-track\";<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/* dwie identyczne kopie = bezszwowa p\u0119tla *\/<!-- [et_pb_line_break_holder] -->    for (var copy = 0; copy < 2; copy++){<!-- [et_pb_line_break_holder] -->      for (var k = 0; k < unit.length; k++){<!-- [et_pb_line_break_holder] -->        track.appendChild(makeCell(unit[k], copy === 0 && k < 3, copy === 1));<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/* czas p\u0119tli z pr\u0119dko\u015bci w px\/s \u2192 wszystkie kolumny p\u0142yn\u0105 sp\u00f3jnie *\/<!-- [et_pb_line_break_holder] -->    var pitch = unit.length * (cellH + gap);<!-- [et_pb_line_break_holder] -->    var speed = CFG.speed * (1 + ((c % 3) - 1) * 0.11);<!-- [et_pb_line_break_holder] -->    var dur = pitch \/ Math.max(4, speed);<!-- [et_pb_line_break_holder] -->    col.style.setProperty(\"--frw-dur\", dur.toFixed(2) + \"s\");<!-- [et_pb_line_break_holder] -->    \/* ujemne op\u00f3\u017anienie = ka\u017cda kolumna startuje w innej fazie *\/<!-- [et_pb_line_break_holder] -->    col.style.setProperty(\"--frw-delay\", (-(dur * ((c * 0.37) % 1))).toFixed(2) + \"s\");<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    col.appendChild(track);<!-- [et_pb_line_break_holder] -->    frag.appendChild(col);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  grid.appendChild(frag);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->build();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* ResizeObserver \u0142apie te\u017c sytuacje, w kt\u00f3rych `resize` okna nie leci:<!-- [et_pb_line_break_holder] -->   Divi Visual Builder, zmiana szeroko\u015bci kontenera, obr\u00f3t telefonu,<!-- [et_pb_line_break_holder] -->   p\u00f3\u017ane domierzenie layoutu po wczytaniu font\u00f3w. *\/<!-- [et_pb_line_break_holder] -->var rebuildTimer;<!-- [et_pb_line_break_holder] -->function scheduleBuild(){<!-- [et_pb_line_break_holder] -->  clearTimeout(rebuildTimer);<!-- [et_pb_line_break_holder] -->  rebuildTimer = setTimeout(build, 150);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->if (\"ResizeObserver\" in window) new ResizeObserver(scheduleBuild).observe(wall);<!-- [et_pb_line_break_holder] -->addEventListener(\"resize\", scheduleBuild, {passive:true});<!-- [et_pb_line_break_holder] -->addEventListener(\"load\", scheduleBuild, {passive:true});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2500\u2500 dogrzewanie cache \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<!-- [et_pb_line_break_holder] -->   Kafelki poza kadrem maj\u0105 loading=\"lazy\", wi\u0119c przy pierwszym obrocie<!-- [et_pb_line_break_holder] -->   p\u0119tli mog\u0142yby \u201ewyskakiwa\u0107\". Po za\u0142adowaniu strony, w wolnej chwili,<!-- [et_pb_line_break_holder] -->   doci\u0105gamy reszt\u0119 zdj\u0119\u0107 \u2014 dok\u0142adnie w tym rozmiarze, kt\u00f3ry przegl\u0105darka<!-- [et_pb_line_break_holder] -->   sama wybra\u0142a z srcset. Druga kopia pasa u\u017cywa tych samych adres\u00f3w,<!-- [et_pb_line_break_holder] -->   wi\u0119c jest gotowa od r\u0119ki. *\/<!-- [et_pb_line_break_holder] -->function warmCache(){<!-- [et_pb_line_break_holder] -->  var con = navigator.connection;<!-- [et_pb_line_break_holder] -->  if (con && (con.saveData || \/(^|-)2g$\/.test(con.effectiveType || \"\"))) return;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  var sample = grid.querySelector(\"img\");<!-- [et_pb_line_break_holder] -->  var w = 300;<!-- [et_pb_line_break_holder] -->  var m = sample && sample.currentSrc && sample.currentSrc.match(\/-(\\d+)x\\1\\.(?:png|jpe?g|webp)$\/i);<!-- [et_pb_line_break_holder] -->  if (m) w = parseInt(m[1], 10);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  var i = 0;<!-- [et_pb_line_break_holder] -->  (function next(){<!-- [et_pb_line_break_holder] -->    if (i >= N) return;<!-- [et_pb_line_break_holder] -->    var im = new Image();<!-- [et_pb_line_break_holder] -->    im.onload = im.onerror = function(){ setTimeout(next, 70); };<!-- [et_pb_line_break_holder] -->    im.src = variant(i++, w);<!-- [et_pb_line_break_holder] -->  })();<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->addEventListener(\"load\", function(){<!-- [et_pb_line_break_holder] -->  if (window.requestIdleCallback) requestIdleCallback(warmCache, {timeout:3000});<!-- [et_pb_line_break_holder] -->  else setTimeout(warmCache, 1200);<!-- [et_pb_line_break_holder] -->}, {once:true});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2500\u2500 podpowied\u017a \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/<!-- [et_pb_line_break_holder] -->var hint = document.getElementById(\"frw-hint\");<!-- [et_pb_line_break_holder] -->if (hint){<!-- [et_pb_line_break_holder] -->  if (CFG.hint) hint.textContent = CFG.hint;<!-- [et_pb_line_break_holder] -->  else hint.remove();<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->function hideHint(){ wall.classList.add(\"is-touched\"); }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2500\u2500 parallax pod kursorem \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/<!-- [et_pb_line_break_holder] -->if (CFG.parallax > 0 && finePointer.matches && !reduce.matches){<!-- [et_pb_line_break_holder] -->  var raf = 0, tx = 0, ty = 0, cx = 0, cy = 0;<!-- [et_pb_line_break_holder] -->  grid.style.setProperty(\"--frw-zoom\", \"1.045\");<!-- [et_pb_line_break_holder] -->  var loop = function(){<!-- [et_pb_line_break_holder] -->    cx += (tx - cx) * .05;<!-- [et_pb_line_break_holder] -->    cy += (ty - cy) * .05;<!-- [et_pb_line_break_holder] -->    grid.style.setProperty(\"--frw-mx\", cx.toFixed(2) + \"px\");<!-- [et_pb_line_break_holder] -->    grid.style.setProperty(\"--frw-my\", cy.toFixed(2) + \"px\");<!-- [et_pb_line_break_holder] -->    raf = (Math.abs(tx - cx) > .05 || Math.abs(ty - cy) > .05) ? requestAnimationFrame(loop) : 0;<!-- [et_pb_line_break_holder] -->  };<!-- [et_pb_line_break_holder] -->  wall.addEventListener(\"pointermove\", function(e){<!-- [et_pb_line_break_holder] -->    var r = wall.getBoundingClientRect();<!-- [et_pb_line_break_holder] -->    tx = ((e.clientX - r.left) \/ r.width  - .5) * -CFG.parallax;<!-- [et_pb_line_break_holder] -->    ty = ((e.clientY - r.top)  \/ r.height - .5) * -(CFG.parallax * 0.55);<!-- [et_pb_line_break_holder] -->    if (!raf) raf = requestAnimationFrame(loop);<!-- [et_pb_line_break_holder] -->  }, {passive:true});<!-- [et_pb_line_break_holder] -->  wall.addEventListener(\"pointerleave\", function(){<!-- [et_pb_line_break_holder] -->    tx = 0; ty = 0;<!-- [et_pb_line_break_holder] -->    if (!raf) raf = requestAnimationFrame(loop);<!-- [et_pb_line_break_holder] -->  }, {passive:true});<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2500\u2500 oszcz\u0119dzanie baterii: stop poza ekranem i w tle karty \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/<!-- [et_pb_line_break_holder] -->var offscreen = false, hidden = false;<!-- [et_pb_line_break_holder] -->function syncPause(){ wall.classList.toggle(\"is-paused\", offscreen || hidden); }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->if (\"IntersectionObserver\" in window){<!-- [et_pb_line_break_holder] -->  new IntersectionObserver(function(entries){<!-- [et_pb_line_break_holder] -->    offscreen = !entries[0].isIntersecting;<!-- [et_pb_line_break_holder] -->    syncPause();<!-- [et_pb_line_break_holder] -->  }, {rootMargin:\"120px\"}).observe(wall);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->document.addEventListener(\"visibilitychange\", function(){<!-- [et_pb_line_break_holder] -->  hidden = document.hidden;<!-- [et_pb_line_break_holder] -->  syncPause();<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 PODGL\u0104D \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/<!-- [et_pb_line_break_holder] -->var LB_SIZES = \"(max-width:700px) 92vw, min(70vw, 900px)\";<!-- [et_pb_line_break_holder] -->var lb, lbSlide, lbImg, lbNr, lbRail, thumbs = [], cur = 0, opener = null, pushed = false;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function buildLb(){<!-- [et_pb_line_break_holder] -->  lb = document.createElement(\"dialog\");<!-- [et_pb_line_break_holder] -->  lb.className = \"frw-lb\";<!-- [et_pb_line_break_holder] -->  lb.setAttribute(\"aria-label\", \"Podgl\u0105d realizacji\");<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  lb.innerHTML =<!-- [et_pb_line_break_holder] -->    '<\/p>\n<div class=\"frw-lb-nr\"><\/div>\n<p>' +<!-- [et_pb_line_break_holder] -->    '<button type=\"button\" class=\"frw-lb-x\" aria-label=\"Zamknij podgl\u0105d\"><span><\/span><span><\/span><\/button>' +<!-- [et_pb_line_break_holder] -->    '<button type=\"button\" class=\"frw-lb-arw frw-lb-arw--l\" aria-label=\"Poprzednia realizacja\">\u2190<\/button>' +<!-- [et_pb_line_break_holder] -->    '<button type=\"button\" class=\"frw-lb-arw frw-lb-arw--r\" aria-label=\"Nast\u0119pna realizacja\">\u2192<\/button>' +<!-- [et_pb_line_break_holder] -->    '<\/p>\n<div class=\"frw-lb-stage\">\n<div class=\"frw-lb-slide\"><img alt=\"\"><\/div>\n<\/div>\n<p>' +<!-- [et_pb_line_break_holder] -->    '<\/p>\n<div class=\"frw-lb-rail\" role=\"tablist\" aria-label=\"Wszystkie realizacje\"><\/div>\n<p>' +<!-- [et_pb_line_break_holder] -->    '<span class=\"frw-lb-mark\"><\/span>';<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  lbNr    = lb.querySelector(\".frw-lb-nr\");<!-- [et_pb_line_break_holder] -->  lbSlide = lb.querySelector(\".frw-lb-slide\");<!-- [et_pb_line_break_holder] -->  lbImg   = lb.querySelector(\".frw-lb-slide img\");<!-- [et_pb_line_break_holder] -->  lbRail  = lb.querySelector(\".frw-lb-rail\");<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  lb.querySelector(\".frw-lb-x\").addEventListener(\"click\", close);<!-- [et_pb_line_break_holder] -->  lb.querySelector(\".frw-lb-arw--l\").addEventListener(\"click\", function(){ go(cur - 1); });<!-- [et_pb_line_break_holder] -->  lb.querySelector(\".frw-lb-arw--r\").addEventListener(\"click\", function(){ go(cur + 1); });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* klik w t\u0142o zamyka, klik w obraz \/ miniatury \u2014 nie.<!-- [et_pb_line_break_holder] -->     Po przeci\u0105gni\u0119ciu palcem przegl\u0105darka i tak wysy\u0142a \u201eclick\" \u2014<!-- [et_pb_line_break_holder] -->     ignorujemy go, \u017ceby swipe nie zamyka\u0142 podgl\u0105du. *\/<!-- [et_pb_line_break_holder] -->  lb.addEventListener(\"click\", function(e){<!-- [et_pb_line_break_holder] -->    if (justSwiped){ justSwiped = false; return; }<!-- [et_pb_line_break_holder] -->    if (e.target === lb || e.target.classList.contains(\"frw-lb-stage\")) close();<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* miniatury \u2014 prawdziwe 32 sztuki, bez sztucznej niesko\u0144czonej ta\u015bmy *\/<!-- [et_pb_line_break_holder] -->  var frag = document.createDocumentFragment();<!-- [et_pb_line_break_holder] -->  for (var i = 0; i < N; i++){<!-- [et_pb_line_break_holder] -->    var t = document.createElement(\"button\");<!-- [et_pb_line_break_holder] -->    t.type = \"button\";<!-- [et_pb_line_break_holder] -->    t.className = \"frw-lb-th\";<!-- [et_pb_line_break_holder] -->    t.setAttribute(\"role\", \"tab\");<!-- [et_pb_line_break_holder] -->    t.setAttribute(\"aria-label\", \"Realizacja \" + (i + 1));<!-- [et_pb_line_break_holder] -->    var im = document.createElement(\"img\");<!-- [et_pb_line_break_holder] -->    im.alt = \"\"; im.decoding = \"async\"; im.loading = \"lazy\";<!-- [et_pb_line_break_holder] -->    im.width = 150; im.height = 150;<!-- [et_pb_line_break_holder] -->    im.src = variant(i, 150);<!-- [et_pb_line_break_holder] -->    im.srcset = srcset(i, [150, 300]);<!-- [et_pb_line_break_holder] -->    im.sizes = \"74px\";<!-- [et_pb_line_break_holder] -->    guard(im, i);<!-- [et_pb_line_break_holder] -->    t.appendChild(im);<!-- [et_pb_line_break_holder] -->    (function(n){ t.addEventListener(\"click\", function(){ go(n); }); })(i);<!-- [et_pb_line_break_holder] -->    thumbs.push(t);<!-- [et_pb_line_break_holder] -->    frag.appendChild(t);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  lbRail.appendChild(frag);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  lb.addEventListener(\"cancel\", function(e){ e.preventDefault(); close(); });<!-- [et_pb_line_break_holder] -->  lb.addEventListener(\"keydown\", onKey);<!-- [et_pb_line_break_holder] -->  swipe(lb.querySelector(\".frw-lb-stage\"));<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  document.body.appendChild(lb);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function onKey(e){<!-- [et_pb_line_break_holder] -->  if (e.key === \"ArrowRight\"){ e.preventDefault(); go(cur + 1); }<!-- [et_pb_line_break_holder] -->  else if (e.key === \"ArrowLeft\"){ e.preventDefault(); go(cur - 1); }<!-- [et_pb_line_break_holder] -->  else if (e.key === \"Home\"){ e.preventDefault(); go(0); }<!-- [et_pb_line_break_holder] -->  else if (e.key === \"End\"){ e.preventDefault(); go(N - 1); }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function preload(i){<!-- [et_pb_line_break_holder] -->  var im = new Image();<!-- [et_pb_line_break_holder] -->  im.sizes = LB_SIZES;<!-- [et_pb_line_break_holder] -->  im.srcset = srcset(i, [768, 1024]);<!-- [et_pb_line_break_holder] -->  im.src = variant(i, 1024);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function go(n){<!-- [et_pb_line_break_holder] -->  cur = ((n % N) + N) % N;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  lbNr.innerHTML = String(cur + 1).padStart(2, \"0\") + \"<i>\/ \" + N + \"<\/i>\";<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  lbSlide.classList.add(\"is-loading\");<!-- [et_pb_line_break_holder] -->  lbImg.removeAttribute(\"srcset\");<!-- [et_pb_line_break_holder] -->  lbImg.sizes = LB_SIZES;<!-- [et_pb_line_break_holder] -->  lbImg.srcset = srcset(cur, [768, 1024]);<!-- [et_pb_line_break_holder] -->  lbImg.src = variant(cur, 1024);<!-- [et_pb_line_break_holder] -->  lbImg.alt = \"Realizacja \" + (cur + 1) + \" z \" + N + \" \u2014 zawieszka zapachowa Fragrans\";<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  var show = function(){ lbSlide.classList.remove(\"is-loading\"); };<!-- [et_pb_line_break_holder] -->  if (lbImg.decode) lbImg.decode().then(show, show); else show();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  for (var i = 0; i < thumbs.length; i++){<!-- [et_pb_line_break_holder] -->    var on = i === cur;<!-- [et_pb_line_break_holder] -->    thumbs[i].classList.toggle(\"is-on\", on);<!-- [et_pb_line_break_holder] -->    thumbs[i].setAttribute(\"aria-selected\", on ? \"true\" : \"false\");<!-- [et_pb_line_break_holder] -->    thumbs[i].tabIndex = on ? 0 : -1;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  centerThumb();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  preload(((cur + 1) % N));<!-- [et_pb_line_break_holder] -->  preload(((cur - 1) + N) % N);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function centerThumb(){<!-- [et_pb_line_break_holder] -->  var t = thumbs[cur];<!-- [et_pb_line_break_holder] -->  if (!t || !lbRail) return;<!-- [et_pb_line_break_holder] -->  lbRail.scrollTo({<!-- [et_pb_line_break_holder] -->    left: t.offsetLeft - lbRail.clientWidth \/ 2 + t.offsetWidth \/ 2,<!-- [et_pb_line_break_holder] -->    behavior: reduce.matches ? \"auto\" : \"smooth\"<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* przeci\u0105ganie \/ swipe na scenie *\/<!-- [et_pb_line_break_holder] -->var justSwiped = false;<!-- [et_pb_line_break_holder] -->function swipe(stage){<!-- [et_pb_line_break_holder] -->  var id = null, x0 = 0, y0 = 0, dx = 0, lock = \"\";<!-- [et_pb_line_break_holder] -->  stage.addEventListener(\"pointerdown\", function(e){<!-- [et_pb_line_break_holder] -->    if (e.button !== undefined && e.button !== 0) return;<!-- [et_pb_line_break_holder] -->    id = e.pointerId; x0 = e.clientX; y0 = e.clientY; dx = 0; lock = \"\";<!-- [et_pb_line_break_holder] -->    lbSlide.style.transition = \"none\";<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] -->  stage.addEventListener(\"pointermove\", function(e){<!-- [et_pb_line_break_holder] -->    if (e.pointerId !== id) return;<!-- [et_pb_line_break_holder] -->    dx = e.clientX - x0;<!-- [et_pb_line_break_holder] -->    var dy = e.clientY - y0;<!-- [et_pb_line_break_holder] -->    if (!lock) lock = (Math.abs(dx) > Math.abs(dy) + 4) ? \"x\" : (Math.abs(dy) > 6 ? \"y\" : \"\");<!-- [et_pb_line_break_holder] -->    if (lock !== \"x\") return;<!-- [et_pb_line_break_holder] -->    lbSlide.style.transform = \"translate3d(\" + (dx * .55).toFixed(1) + \"px,0,0)\";<!-- [et_pb_line_break_holder] -->    lbSlide.style.opacity = String(Math.max(.45, 1 - Math.abs(dx) \/ 620));<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] -->  function end(e){<!-- [et_pb_line_break_holder] -->    if (e.pointerId !== id) return;<!-- [et_pb_line_break_holder] -->    id = null;<!-- [et_pb_line_break_holder] -->    lbSlide.style.transition = \"\";<!-- [et_pb_line_break_holder] -->    lbSlide.style.transform = \"\";<!-- [et_pb_line_break_holder] -->    lbSlide.style.opacity = \"\";<!-- [et_pb_line_break_holder] -->    if (lock === \"x\" && Math.abs(dx) > 6) justSwiped = true;<!-- [et_pb_line_break_holder] -->    if (lock === \"x\" && Math.abs(dx) > Math.min(120, stage.clientWidth * .16)) go(cur + (dx < 0 ? 1 : -1));<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  stage.addEventListener(\"pointerup\", end);<!-- [et_pb_line_break_holder] -->  stage.addEventListener(\"pointercancel\", end);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* blokada przewijania strony bez skoku layoutu *\/<!-- [et_pb_line_break_holder] -->var scrollLock = \"\";<!-- [et_pb_line_break_holder] -->function lockScroll(on){<!-- [et_pb_line_break_holder] -->  var html = document.documentElement;<!-- [et_pb_line_break_holder] -->  if (on){<!-- [et_pb_line_break_holder] -->    var bar = innerWidth - html.clientWidth;<!-- [et_pb_line_break_holder] -->    scrollLock = html.style.cssText;<!-- [et_pb_line_break_holder] -->    html.style.overflow = \"hidden\";<!-- [et_pb_line_break_holder] -->    if (bar > 0) html.style.paddingRight = bar + \"px\";<!-- [et_pb_line_break_holder] -->  } else {<!-- [et_pb_line_break_holder] -->    html.style.cssText = scrollLock;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function open(i){<!-- [et_pb_line_break_holder] -->  if (!lb) buildLb();<!-- [et_pb_line_break_holder] -->  opener = document.activeElement;<!-- [et_pb_line_break_holder] -->  lockScroll(true);<!-- [et_pb_line_break_holder] -->  if (typeof lb.showModal === \"function\") lb.showModal();<!-- [et_pb_line_break_holder] -->  else { lb.setAttribute(\"open\", \"\"); lb.style.zIndex = \"999999\"; }<!-- [et_pb_line_break_holder] -->  go(i);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* Wstecz w telefonie zamyka podgl\u0105d zamiast wychodzi\u0107 ze strony *\/<!-- [et_pb_line_break_holder] -->  try { history.pushState({frwLb:1}, \"\"); pushed = true; } catch (err){ pushed = false; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->var closing = false;<!-- [et_pb_line_break_holder] -->function close(){<!-- [et_pb_line_break_holder] -->  if (!lb || !lb.open || closing) return;<!-- [et_pb_line_break_holder] -->  closing = true;<!-- [et_pb_line_break_holder] -->  lb.classList.add(\"is-closing\");<!-- [et_pb_line_break_holder] -->  var done = function(){<!-- [et_pb_line_break_holder] -->    lb.classList.remove(\"is-closing\");<!-- [et_pb_line_break_holder] -->    if (typeof lb.close === \"function\") lb.close(); else lb.removeAttribute(\"open\");<!-- [et_pb_line_break_holder] -->    lockScroll(false);<!-- [et_pb_line_break_holder] -->    if (opener && opener.isConnected) opener.focus();<!-- [et_pb_line_break_holder] -->    opener = null;<!-- [et_pb_line_break_holder] -->    closing = false;<!-- [et_pb_line_break_holder] -->  };<!-- [et_pb_line_break_holder] -->  reduce.matches ? done() : setTimeout(done, 200);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  if (pushed){<!-- [et_pb_line_break_holder] -->    pushed = false;<!-- [et_pb_line_break_holder] -->    try { history.back(); } catch (err){}<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->addEventListener(\"popstate\", function(e){<!-- [et_pb_line_break_holder] -->  if (lb && lb.open){ pushed = false; close(); }<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2500\u2500 otwieranie z kafelka \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/<!-- [et_pb_line_break_holder] -->grid.addEventListener(\"click\", function(e){<!-- [et_pb_line_break_holder] -->  var cell = e.target.closest ? e.target.closest(\".frw-cell\") : null;<!-- [et_pb_line_break_holder] -->  if (!cell) return;<!-- [et_pb_line_break_holder] -->  hideHint();<!-- [et_pb_line_break_holder] -->  open(parseInt(cell.dataset.frwIndex, 10) || 0);<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] -->[\/et_pb_fullwidth_code][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Presentiamo una selezione di progetti realizzati per i nostri clienti. Nel corso degli anni abbiamo realizzato un'ampia variet\u00e0 di progetti per molti settori. La maggior parte dei progetti commissionati dalle agenzie pubblicitarie rimane segreta, per questo motivo abbiamo limitato il lavoro presentato di seguito.<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_et_pb_use_builder":"on","_et_pb_old_content":"<!-- wp:divi\/placeholder \/-->","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"class_list":["post-10","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Realizacje FRAGRANS - Sprawd\u017a Nasze Projekty Zawieszek Zapachowych<\/title>\n<meta name=\"description\" content=\"Zobacz nasze dotychczasowe realizacje personalizowanych zawieszek zapachowych. Wsp\u00f3\u0142pracujemy z najlepszymi markami, oferuj\u0105c unikalne projekty dopasowane do potrzeb klient\u00f3w.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fragrans.pl\/it\/realizacje\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Realizacje FRAGRANS - Sprawd\u017a Nasze Projekty Zawieszek Zapachowych\" \/>\n<meta property=\"og:description\" content=\"Zobacz nasze dotychczasowe realizacje personalizowanych zawieszek zapachowych. Wsp\u00f3\u0142pracujemy z najlepszymi markami, oferuj\u0105c unikalne projekty dopasowane do potrzeb klient\u00f3w.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fragrans.pl\/it\/realizacje\/\" \/>\n<meta property=\"og:site_name\" content=\"Fragrans\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-28T10:03:46+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data1\" content=\"7 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/fragrans.pl\\\/realizacje\\\/\",\"url\":\"https:\\\/\\\/fragrans.pl\\\/realizacje\\\/\",\"name\":\"Realizacje FRAGRANS - Sprawd\u017a Nasze Projekty Zawieszek Zapachowych\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fragrans.pl\\\/#website\"},\"datePublished\":\"2025-06-13T13:02:06+00:00\",\"dateModified\":\"2026-07-28T10:03:46+00:00\",\"description\":\"Zobacz nasze dotychczasowe realizacje personalizowanych zawieszek zapachowych. Wsp\u00f3\u0142pracujemy z najlepszymi markami, oferuj\u0105c unikalne projekty dopasowane do potrzeb klient\u00f3w.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/fragrans.pl\\\/realizacje\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/fragrans.pl\\\/realizacje\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/fragrans.pl\\\/realizacje\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\\\/\\\/fragrans.pl\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Realizacje\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/fragrans.pl\\\/#website\",\"url\":\"https:\\\/\\\/fragrans.pl\\\/\",\"name\":\"Fragrans\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/fragrans.pl\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Realizacje FRAGRANS - Sprawd\u017a Nasze Projekty Zawieszek Zapachowych","description":"Zobacz nasze dotychczasowe realizacje personalizowanych zawieszek zapachowych. Wsp\u00f3\u0142pracujemy z najlepszymi markami, oferuj\u0105c unikalne projekty dopasowane do potrzeb klient\u00f3w.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fragrans.pl\/it\/realizacje\/","og_locale":"it_IT","og_type":"article","og_title":"Realizacje FRAGRANS - Sprawd\u017a Nasze Projekty Zawieszek Zapachowych","og_description":"Zobacz nasze dotychczasowe realizacje personalizowanych zawieszek zapachowych. Wsp\u00f3\u0142pracujemy z najlepszymi markami, oferuj\u0105c unikalne projekty dopasowane do potrzeb klient\u00f3w.","og_url":"https:\/\/fragrans.pl\/it\/realizacje\/","og_site_name":"Fragrans","article_modified_time":"2026-07-28T10:03:46+00:00","twitter_card":"summary_large_image","twitter_misc":{"Tempo di lettura stimato":"7 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/fragrans.pl\/realizacje\/","url":"https:\/\/fragrans.pl\/realizacje\/","name":"Realizacje FRAGRANS - Sprawd\u017a Nasze Projekty Zawieszek Zapachowych","isPartOf":{"@id":"https:\/\/fragrans.pl\/#website"},"datePublished":"2025-06-13T13:02:06+00:00","dateModified":"2026-07-28T10:03:46+00:00","description":"Zobacz nasze dotychczasowe realizacje personalizowanych zawieszek zapachowych. Wsp\u00f3\u0142pracujemy z najlepszymi markami, oferuj\u0105c unikalne projekty dopasowane do potrzeb klient\u00f3w.","breadcrumb":{"@id":"https:\/\/fragrans.pl\/realizacje\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fragrans.pl\/realizacje\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fragrans.pl\/realizacje\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/fragrans.pl\/"},{"@type":"ListItem","position":2,"name":"Realizacje"}]},{"@type":"WebSite","@id":"https:\/\/fragrans.pl\/#website","url":"https:\/\/fragrans.pl\/","name":"Fragran","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fragrans.pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"}]}},"_links":{"self":[{"href":"https:\/\/fragrans.pl\/it\/wp-json\/wp\/v2\/pages\/10","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fragrans.pl\/it\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/fragrans.pl\/it\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/fragrans.pl\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fragrans.pl\/it\/wp-json\/wp\/v2\/comments?post=10"}],"version-history":[{"count":109,"href":"https:\/\/fragrans.pl\/it\/wp-json\/wp\/v2\/pages\/10\/revisions"}],"predecessor-version":[{"id":2102,"href":"https:\/\/fragrans.pl\/it\/wp-json\/wp\/v2\/pages\/10\/revisions\/2102"}],"wp:attachment":[{"href":"https:\/\/fragrans.pl\/it\/wp-json\/wp\/v2\/media?parent=10"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}