:root{--spiral:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 900 900%27 fill=%27none%27 stroke=%27black%27 stroke-linecap=%27round%27%3E%3Cpath d=%27M456 450 L457 451 L458 451 L459 453 L460 454 L461 455 L461 457 L462 458 L462 460 L462 462 L461 464 L460 466 L460 468 L458 470 L457 472 L455 473 L453 475 L451 476 L449 477 L446 478 L443 479 L440 479 L437 479 L434 479 L431 479 L428 478 L424 477 L421 475 L418 473 L415 471 L412 468 L410 465 L407 461 L405 458 L404 454 L402 450 L401 445 L401 441 L401 436 L401 431 L402 426 L403 421 L405 417 L407 412 L410 407 L413 403 L417 399 L421 395 L426 392 L431 389 L436 386 L442 384 L448 382 L454 381 L460 381 L467 381 L473 381 L480 383 L486 385 L493 387 L499 390 L505 394 L511 398 L516 403 L521 409 L526 415 L529 422 L533 429 L536 436 L538 444 L539 451 L540 460 L540 468 L539 476 L537 485 L535 493 L532 501 L528 509 L523 516 L518 523 L511 530 L505 536 L497 542 L489 547 L481 551 L472 555 L462 557 L453 559 L443 560 L433 560 L422 560 L412 558 L402 555 L393 551 L383 547 L374 541 L365 535 L357 528 L349 520 L342 511 L336 501 L331 491 L327 481 L323 470 L321 458 L319 447 L319 435 L320 423 L322 411 L324 399 L328 387 L334 376 L340 365 L347 355 L355 345 L364 336 L374 328 L385 320 L396 314 L408 309 L421 304 L434 301 L448 299 L461 298 L475 299 L489 300 L503 303 L516 308 L529 313 L542 320 L554 328 L565 337 L576 347 L586 358 L594 370 L602 383 L609 396 L614 410 L618 425 L621 440 L622 456 L622 471 L621 487 L618 503 L614 518 L608 533 L601 547 L592 561 L583 574 L572 587 L560 598 L546 608 L532 617 L517 625 L502 632 L485 637 L469 640 L451 643 L434 643 L416 642 L399 639 L382 635 L365 629 L349 622 L333 613 L318 603 L304 591 L291 578 L279 564 L268 549 L259 533 L251 515 L245 498 L240 479 L238 460 L236 441 L237 422 L239 402 L243 383 L249 364 L256 346 L265 328 L276 312 L288 296 L302 281 L317 267 L334 255 L351 244 L369 235 L389 228 L409 222 L429 218 L450 216 L471 216 L493 217 L514 221 L534 227 L555 234 L574 243 L593 254 L611 267 L628 281 L643 297 L657 315 L669 333 L680 353 L689 374 L696 395 L701 417 L704 440 L705 463 L704 486 L701 509 L696 532 L689 554 L679 575 L668 596 L655 616 L640 635 L624 652 L605 668 L586 682 L565 694 L543 704 L520 713 L496 719 L472 724 L447 726 L422 725 L398 723 L373 718 L349 711 L325 702 L302 691 L280 678 L260 663 L241 645 L223 627 L207 606 L193 584 L181 561 L171 537 L163 512 L157 486 L154 459 L153 433 L155 406 L159 379 L165 353 L174 327 L185 302 L199 279 L214 256 L232 235 L251 215 L273 197 L295 181 L320 167 L345 156 L372 146 L399 139 L427 135 L456 133 L484 133 L513 137 L541 142 L569 151 L596 162 L622 175 L647 190 L670 208 L692 228 L711 250 L729 274 L745 299 L759 326 L770 354 L778 383 L784 412 L787 442 L788 473 L786 503 L781 533 L773 563 L763 592 L750 620 L734 647 L716 673 L696 697 L673 719 L649 739 L623 756 L595 772 L566 785 L536 795 L505 802 L473 807 L441 809 L408 808 L376 804 L344 797 L313 787 L283 774 L254 759 L226 741 L200 720 L176 698 L154 673 L134 646 L116 617 L102 587 L90 555 L80 523 L74 489 L71 455 L71 421 L74 387 L80 353 L89 320 L101 288 L116 256 L134 226 L154 198 L177 172 L203 147 L230 125 L260 106 L291 89 L324 75 L358 64 L392 56 L428 51 L464 50 L500 52 L536 56 L571 65 L606 76 L639 90 L672 108 L702 128 L731 151 L757 177 L782 205 L803 235 L822 267 L838 301 L851 336 L861 373 L867 410 L871 448%27 stroke-width=%271.4%27 stroke-opacity=%27.8%27/%3E%3Cpath d=%27M444 450 L443 449 L442 449 L441 447 L440 446 L439 445 L439 443 L438 442 L438 440 L438 438 L439 436 L440 434 L440 432 L442 430 L443 428 L445 427 L447 425 L449 424 L451 423 L454 422 L457 421 L460 421 L463 421 L466 421 L469 421 L472 422 L476 423 L479 425 L482 427 L485 429 L488 432 L490 435 L493 439 L495 442 L496 446 L498 450 L499 455 L499 459 L499 464 L499 469 L498 474 L497 479 L495 483 L493 488 L490 493 L487 497 L483 501 L479 505 L474 508 L469 511 L464 514 L458 516 L452 518 L446 519 L440 519 L433 519 L427 519 L420 517 L414 515 L407 513 L401 510 L395 506 L389 502 L384 497 L379 491 L374 485 L371 478 L367 471 L364 464 L362 456 L361 449 L360 440 L360 432 L361 424 L363 415 L365 407 L368 399 L372 391 L377 384 L382 377 L389 370 L395 364 L403 358 L411 353 L419 349 L428 345 L438 343 L447 341 L457 340 L467 340 L478 340 L488 342 L498 345 L507 349 L517 353 L526 359 L535 365 L543 372 L551 380 L558 389 L564 399 L569 409 L573 419 L577 430 L579 442 L581 453 L581 465 L580 477 L578 489 L576 501 L572 513 L566 524 L560 535 L553 545 L545 555 L536 564 L526 572 L515 580 L504 586 L492 591 L479 596 L466 599 L452 601 L439 602 L425 601 L411 600 L397 597 L384 592 L371 587 L358 580 L346 572 L335 563 L324 553 L314 542 L306 530 L298 517 L291 504 L286 490 L282 475 L279 460 L278 444 L278 429 L279 413 L282 397 L286 382 L292 367 L299 353 L308 339 L317 326 L328 313 L340 302 L354 292 L368 283 L383 275 L398 268 L415 263 L431 260 L449 257 L466 257 L484 258 L501 261 L518 265 L535 271 L551 278 L567 287 L582 297 L596 309 L609 322 L621 336 L632 351 L641 367 L649 385 L655 402 L660 421 L662 440 L664 459 L663 478 L661 498 L657 517 L651 536 L644 554 L635 572 L624 588 L612 604 L598 619 L583 633 L566 645 L549 656 L531 665 L511 672 L491 678 L471 682 L450 684 L429 684 L407 683 L386 679 L366 673 L345 666 L326 657 L307 646 L289 633 L272 619 L257 603 L243 585 L231 567 L220 547 L211 526 L204 505 L199 483 L196 460 L195 437 L196 414 L199 391 L204 368 L211 346 L221 325 L232 304 L245 284 L260 265 L276 248 L295 232 L314 218 L335 206 L357 196 L380 187 L404 181 L428 176 L453 174 L478 175 L502 177 L527 182 L551 189 L575 198 L598 209 L620 222 L640 237 L659 255 L677 273 L693 294 L707 316 L719 339 L729 363 L737 388 L743 414 L746 441 L747 467 L745 494 L741 521 L735 547 L726 573 L715 598 L701 621 L686 644 L668 665 L649 685 L627 703 L605 719 L580 733 L555 744 L528 754 L501 761 L473 765 L444 767 L416 767 L387 763 L359 758 L331 749 L304 738 L278 725 L253 710 L230 692 L208 672 L189 650 L171 626 L155 601 L141 574 L130 546 L122 517 L116 488 L113 458 L112 427 L114 397 L119 367 L127 337 L137 308 L150 280 L166 253 L184 227 L204 203 L227 181 L251 161 L277 144 L305 128 L334 115 L364 105 L395 98 L427 93 L459 91 L492 92 L524 96 L556 103 L587 113 L617 126 L646 141 L674 159 L700 180 L724 202 L746 227 L766 254 L784 283 L798 313 L810 345 L820 377 L826 411 L829 445 L829 479 L826 513 L820 547 L811 580 L799 612 L784 644 L766 674 L746 702 L723 728 L697 753 L670 775 L640 794 L609 811 L576 825 L542 836 L508 844 L472 849 L436 850 L400 848 L364 844 L329 835 L294 824 L261 810 L228 792 L198 772 L169 749 L143 723 L118 695 L97 665 L78 633 L62 599 L49 564 L39 527 L33 490 L29 452%27 stroke-width=%271%27 stroke-opacity=%27.45%27/%3E%3C/svg%3E");--orbit:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 200 200%27 fill=%27none%27%3E%3Ccircle cx=%27100%27 cy=%27100%27 r=%2796%27 stroke=%27black%27 stroke-opacity=%27.6%27 stroke-width=%271.2%27/%3E%3Ccircle cx=%27196%27 cy=%27100%27 r=%272.2%27 fill=%27black%27/%3E%3Ccircle cx=%2720%27 cy=%2754%27 r=%271.6%27 fill=%27black%27/%3E%3C/svg%3E");--hue:265;}
:root,html[data-theme=pryzmat]{--bg:#0E0F1A;--bg2:#181A2B;--ink:#F4F2FA;--mute:#B7B5CC;--acc:hsl(var(--hue) 92% 72%);--on-acc:#0E0F1A;--err:#FF9E94;--dk:#080912;--dk-ink:#F4F2FA;--dk-mute:#B7B5CC;--dk-acc:hsl(var(--hue) 92% 72%);--dk-on:#0E0F1A;--p1:hsl(var(--hue) 92% 72%);--p2:hsl(calc(var(--hue) + 70) 90% 72%);--p3:hsl(calc(var(--hue) + 140) 88% 75%);--line:#2A2C44;--dk-line:#262842;--ga:78 58 220;--gal:.5;--gb:40 112 200;--gbl:.4;--gc:44 160 150;--gcl:.36;--grn:.16;--sp-c:hsl(var(--hue) 70% 26%);--acc-rgb:150 140 255;--logo-a:#F4F2FA;--logo-mi:hsl(var(--hue) 92% 72%);--logo-com:#B7B5CC;--bi:#1B1530;--b1:hsl(var(--hue) 90% 86%);--b2:hsl(calc(var(--hue) + 50) 88% 86%);--b3:hsl(calc(var(--hue) + 100) 86% 85%);--b4:hsl(calc(var(--hue) + 160) 86% 86%);--b5:hsl(calc(var(--hue) + 220) 88% 87%);--b6:hsl(calc(var(--hue) + 280) 88% 87%);}
/* zbudujmi.com v15 „Warsztat”: ciepły papier, zielony tusz, miedź. Instrument Serif + Geist (lokalne, OFL). Tokeny kolorów dopisuje build_v15.py. */
@font-face{font-family:'Geist';font-style:normal;font-weight:300 700;font-display:swap;src:url(../fonts/geist-normal-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:'Geist';font-style:normal;font-weight:300 700;font-display:swap;src:url(../fonts/geist-normal-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:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/instrument-serif-normal-2.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:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/instrument-serif-normal-3.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:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/instrument-serif-italic-0.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:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/instrument-serif-italic-1.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}

:root{--g:56px;--hh:72px;--eo:cubic-bezier(.16,1,.3,1);--sans:'Geist',system-ui,-apple-system,'Segoe UI',sans-serif;--serif:'Instrument Serif',Georgia,'Times New Roman',serif;
--dp-bg:#FBE7A1;--dp-ink:#3A2F00;--gut:clamp(16px,4vw,48px)}
@media (max-width:760px){:root{--g:40px;--hh:60px}}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--hh) + 8px)}
html.lock{overflow:hidden}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.55 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{max-width:100%}
a{color:inherit}
h1,h2,h3,p,ul,ol,figure{margin:0}
ul,ol{padding:0;list-style:none}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.dark :focus-visible{outline-color:var(--dk-ink)}
.skip{position:absolute;left:-9999px;top:8px;z-index:300;background:var(--ink);color:var(--bg);padding:12px 18px;font-weight:600}
.skip:focus{left:16px}
.wrap{width:100%;max-width:1376px;margin-inline:auto;padding-inline:var(--gut)}
em{font-style:italic}

/* nagłówek */
.top{position:sticky;top:0;z-index:40;background:var(--bg)}
.bar{display:flex;align-items:center;justify-content:space-between;height:var(--hh)}
.brand{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}
.tools{display:flex;align-items:center;gap:4px}
.lang{min-width:44px;min-height:44px;display:inline-grid;place-items:center;font-weight:600;font-size:15px;text-decoration:none}
.lang:hover{text-decoration:underline;text-underline-offset:4px}
.theme-btn{width:44px;height:44px;border:0;background:transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer;padding:0;margin-right:4px}
.theme-btn svg{width:22px;height:22px;display:block}
.menu-btn{min-height:44px;padding:0 20px;border:0;background:var(--bg2);color:var(--ink);font:600 16px/1 var(--sans);display:inline-flex;gap:12px;align-items:center;cursor:pointer;text-decoration:none;transition:background .25s var(--eo),color .25s var(--eo)}
.menu-btn:hover{background:var(--ink);color:var(--bg)}
.mb-ic{display:grid;gap:5px;width:18px}
.mb-ic i{display:block;height:2px;background:currentColor}
.mb-ic i:last-child{width:12px;justify-self:end}

/* przyciski i odnośniki */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 30px;border:0;border-radius:0;background:var(--acc);color:var(--on-acc);font:600 17px/1 var(--sans);text-decoration:none;cursor:pointer;transition:background .25s var(--eo),color .25s var(--eo),transform .25s var(--eo)}
.btn:hover{background:var(--ink);color:var(--bg)}
.btn:active{transform:translateY(1px)}
.btn:disabled{opacity:.55;cursor:not-allowed}
.btn .ar{transition:transform .3s var(--eo)}
.btn:hover .ar,.lnk:hover .ar{transform:translateX(4px)}
.lnk{display:inline-flex;align-items:center;min-height:44px;font:600 15px/1.2 var(--sans);color:var(--acc);text-decoration:none}
.dark .lnk{color:var(--dk-acc)}
.lnk:hover{text-decoration:underline;text-underline-offset:4px}
.lnk .ar{display:inline-block;transition:transform .3s var(--eo)}
.lnk.off{color:var(--mute);font-weight:500;cursor:default}
.lnk.off:hover{text-decoration:none}
button.lnk{background:none;border:0;padding:0 6px;cursor:pointer;font-family:var(--sans)}

/* wejście hero: jedna choreografia, całość < 1,3 s */
.e{animation:rise .8s var(--eo) both;animation-delay:calc(var(--i) * 70ms)}
@keyframes rise{from{opacity:0;transform:translate3d(0,24px,0)}to{opacity:1;transform:none}}

/* hero */
.hero{padding-top:32px}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center}
.eyebrow{font-size:15px;font-weight:500;color:var(--mute);margin-bottom:20px}
h1{font:400 clamp(44px,5.6vw,82px)/1.02 var(--serif);letter-spacing:-.012em;margin-bottom:24px}
h1>span,h1>em{display:block;text-wrap:balance}
.hero .lead{font-size:clamp(19px,1.9vw,22px);line-height:1.4;max-width:32ch}
.strip{display:flex;align-items:flex-end;gap:12px 32px;flex-wrap:wrap;margin:32px 0}
.stl{font-size:15px;color:var(--mute);font-weight:500;padding-bottom:6px}
.strip ul{display:flex;gap:12px 32px;flex-wrap:wrap}
.strip li{display:grid;gap:0}
.sk{font-size:15px;color:var(--mute)}
.sv{font:400 clamp(30px,3vw,38px)/1.1 var(--serif);white-space:nowrap}
.actions{display:flex;align-items:center;gap:12px 28px;flex-wrap:wrap}
.marks{display:flex;flex-wrap:wrap;gap:8px 28px;margin-top:32px;font-size:15px;font-weight:500}
.marks li{display:inline-flex;align-items:center;gap:8px;min-height:32px}
.marks a{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.ic{width:20px;height:20px;flex:none;color:var(--acc);display:block}
.dark .ic{color:var(--dk-acc)}

/* własny rysunek: trzy zazębione koła (jedyny dominujący ruch) */
.art{position:relative;aspect-ratio:600/440;width:100%;container-type:inline-size;overflow:clip}
.gear{position:absolute;aspect-ratio:1;height:auto;display:block;will-change:transform;transform:rotate(var(--a));animation:spin var(--T) linear infinite}
.gear path{fill:currentColor}
.g1{color:var(--g1)}.g2{color:var(--g2)}.g3{color:var(--g3)}
@keyframes spin{from{transform:rotate(var(--a))}to{transform:rotate(calc(var(--a) + 360deg * var(--s)))}}
.art.off .gear{animation-play-state:paused}
.hub{position:absolute;aspect-ratio:1;transform:translate(-50%,-50%);display:grid;place-items:center;text-align:center;border-radius:50%;font-family:var(--serif);line-height:1.08}
.hub1{font-size:clamp(14px,3.7cqw,24px);padding:5%}
.hub2{font-size:clamp(14px,3.8cqw,22px);font-style:italic;color:var(--acc)}
.hero-art figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;margin-top:20px;font-size:15px;color:var(--mute)}
.legend{display:flex;gap:8px 24px;flex-wrap:wrap}
.legend li{display:inline-flex;align-items:center;gap:8px}
.sw{width:14px;height:14px;border-radius:50%;display:block}
.sw1{background:var(--g1)}.sw2{background:var(--g2)}

/* sekcje */
.sec{padding-top:var(--g);scroll-margin-top:var(--hh)}
#social,#pytania{padding-bottom:var(--g)}
#proces,#kontakt{padding-block:var(--g)}
.dark{background:var(--dk);color:var(--dk-ink)}
.tone2{background:var(--bg2)}
.sh{display:flex;align-items:baseline;gap:16px;border-top:1px solid var(--line);padding-top:16px;margin-bottom:32px;font-size:15px;color:var(--mute)}
.dark .sh{border-color:var(--dk-line);color:var(--dk-mute)}
.tone2 .sh{border-color:var(--line)}
.sn{font-weight:600;font-variant-numeric:tabular-nums}
.sl{font-weight:500}
h2{font:400 clamp(38px,4.6vw,64px)/1.04 var(--serif);letter-spacing:-.008em;text-wrap:balance}
h2 em{color:var(--acc)}
.dark h2 em{color:var(--dk-acc)}
h1 em{color:var(--acc)}
.sn{color:var(--acc)}
.dark .sn{color:var(--dk-acc)}
.sec h2+*{margin-top:40px}
.h2row h2+.vsw{margin-top:0}

/* realizacje */
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.card{display:grid;grid-template-rows:auto 1fr auto;background:var(--bg2)}
.shot img{display:block;width:100%;height:auto}
.cbody{padding:24px 24px 0}
.ctitle{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px}
.ctitle h3{font:400 clamp(26px,2.4vw,32px)/1.1 var(--serif);white-space:nowrap}
.ctag{font-size:14.5px;color:var(--mute);font-weight:500}
.cbody p{font-size:16.5px}
.cfoot{padding:16px 24px 20px}

/* dla kogo */
.paths{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.path{display:grid;grid-template-rows:auto 1fr auto;border-top:2px solid var(--ink);padding-top:24px}
.path h3{font:400 clamp(30px,3vw,38px)/1.1 var(--serif);min-height:2.2em}
.pmid{padding-top:12px}
.pname{font-weight:600;margin-bottom:6px}
.pmid p:last-child{color:var(--mute);font-size:16.5px}
.pfoot{margin-top:24px;display:flex;align-items:center;justify-content:space-between;gap:8px 16px;flex-wrap:wrap}
.pprice{font:400 clamp(34px,3.2vw,42px)/1 var(--serif);white-space:nowrap}

/* proces: numerowane zwijane wiersze */
.proc-top{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:24px 48px;align-items:end}
.proc-side p{color:var(--dk-mute);font-size:17px}
.proc-side .leg{margin-top:16px;font-size:15px;display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap}
.steps{margin-top:48px!important}
.steps li,.rows li,.faq li{position:relative}
details>summary{list-style:none;cursor:pointer}
details>summary::-webkit-details-marker{display:none}
.steps summary{display:grid;grid-template-columns:44px minmax(0,1fr) auto 28px;column-gap:24px;align-items:start;padding:24px 0 24px;min-height:44px}
.steps li::before{content:'';position:absolute;left:21.25px;top:0;bottom:0;width:1.5px;background:var(--dk-line)}
.steps li:first-child::before{top:46px}
.steps li:last-child::before{bottom:auto;height:46px}
.steps li::after{content:'';position:absolute;left:68px;right:0;top:0;height:1px;background:var(--dk-line)}
.steps li:first-child::after{display:none}
.steps .num{position:relative;z-index:1;width:44px;height:44px;border-radius:50%;border:1.5px solid var(--dk-mute);background:var(--dk);display:grid;place-items:center;font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}
.steps .num.hot{background:var(--dk-acc);border-color:var(--dk-acc);color:var(--dk-on)}
.tt{display:grid;gap:4px;min-width:0}
.ti{font:400 clamp(28px,3vw,38px)/1.1 var(--serif);padding-top:2px}
.gi{color:var(--dk-mute);font-size:16.5px}
.tg{font-size:14.5px;font-weight:500;color:var(--dk-mute);white-space:nowrap;margin-top:10px}
.tg.hot{background:var(--dk-acc);color:var(--dk-on);padding:5px 12px;font-weight:600;margin-top:8px;display:inline-block}
.pm{position:relative;width:22px;height:22px;margin:11px 0 0 6px;color:inherit;flex:none}
.pm::before,.pm::after{content:'';position:absolute;background:currentColor;transition:transform .35s var(--eo)}
.pm::before{left:2px;right:2px;top:10px;height:2px}
.pm::after{top:2px;bottom:2px;left:10px;width:2px}
details[open]>summary .pm::after{transform:scaleY(0)}
.more{animation:fade .5s var(--eo) both}
@keyframes fade{from{opacity:0;transform:translate3d(0,-8px,0)}to{opacity:1;transform:none}}
.steps .more{padding:0 0 30px 68px;max-width:calc(68px + 64ch)}
.steps .more p{font-size:17px}
.steps summary:hover .ti{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px}

/* w cenie */
.incl-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 64px}
.who{border-top:1px solid var(--line);padding-top:20px;margin-top:48px;max-width:46ch}
.who h3{font-size:15px;font-weight:600;color:var(--mute);margin-bottom:8px}
.wt{font:400 30px/1.15 var(--serif);margin-bottom:8px}
.who p+p{color:var(--mute);margin-bottom:8px}
.incl li{display:grid;grid-template-columns:20px minmax(0,1fr);gap:16px;align-items:start;padding:18px 0;border-top:1px solid var(--line);font-size:18px}
.incl li:last-child{border-bottom:1px solid var(--line)}
.incl .ic{margin-top:3px}

/* ceny */
.price-top{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:24px 48px;align-items:end}
.pn{color:var(--mute);max-width:40ch}
.rows{margin-top:48px!important}
.rows li{border-top:1px solid var(--line)}
.rows li:last-child{border-bottom:1px solid var(--line)}
.rows summary{display:grid;grid-template-columns:44px minmax(0,1.1fr) minmax(0,1.2fr) 190px 28px;column-gap:24px;align-items:center;padding:20px 0;min-height:44px}
.rows .num{font-weight:600;font-size:15px;color:var(--mute);font-variant-numeric:tabular-nums}
.rn{font:400 clamp(26px,2.6vw,34px)/1.1 var(--serif)}
.rd{color:var(--mute);font-size:16.5px}
.rp{font:400 clamp(28px,2.8vw,36px)/1 var(--serif);text-align:right;white-space:nowrap}
.rows .pm{margin:0 0 0 6px}
.rows .more{padding:0 0 26px 68px;max-width:calc(68px + 62ch);display:grid;gap:4px;justify-items:start}
.rows summary:hover .rn{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px}
.after{display:flex;justify-content:space-between;align-items:center;gap:16px 32px;flex-wrap:wrap;margin-top:40px;padding:28px 32px;background:var(--bg2)}
.at{font:400 clamp(26px,2.6vw,32px)/1.15 var(--serif);margin-bottom:4px}
.after p{max-width:56ch}

/* pytania */
.faq li{border-top:1px solid var(--line)}
.faq li:last-child{border-bottom:1px solid var(--line)}
.faq summary{display:grid;grid-template-columns:minmax(0,1fr) 28px;column-gap:24px;align-items:center;padding:20px 0;min-height:44px}
.q{font:600 19px/1.35 var(--sans)}
.faq .pm{margin:0 0 0 6px}
.faq .more{padding:0 0 24px;max-width:62ch}
.faq .more p{color:var(--mute)}
.faq summary:hover .q{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}

/* kontakt */
.contact-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:32px 64px;align-items:start}
.big{font-size:20px;margin-top:24px;max-width:32ch}
.mail{display:inline-block;margin-top:24px;font:400 clamp(28px,3vw,40px)/1.15 var(--serif);text-decoration:underline;text-decoration-color:var(--acc);text-decoration-thickness:2px;text-underline-offset:6px;overflow-wrap:anywhere}
.pend{margin-top:32px;display:grid;gap:8px;font-size:15px}
.pend li{display:flex;gap:12px;align-items:center}
.form{display:block}
.fld{margin-bottom:20px}
label{display:block;font-weight:600;font-size:15px;margin-bottom:6px}
input,select,textarea{width:100%;min-width:0;font:400 17px/1.4 var(--sans);color:var(--ink);background:var(--bg);border:0;border-bottom:2px solid var(--mute);border-radius:0;padding:14px 16px;min-height:54px}
textarea{resize:vertical;min-height:140px}
select{appearance:none;-webkit-appearance:none;padding-right:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1.5l6 6 6-6' fill='none' stroke='%238A6F7E' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center}
input::placeholder,textarea::placeholder{color:var(--mute);opacity:.85}
input[aria-invalid=true],textarea[aria-invalid=true]{border-bottom-color:var(--err)}
.err{color:var(--err);font-size:14.5px;font-weight:500;margin-top:6px}
.err::before{content:"! ";font-weight:700}
.note{font-size:15px;color:var(--mute);margin:4px 0 24px;max-width:52ch}
.f-actions{display:flex;align-items:center;gap:12px 28px;flex-wrap:wrap}
.stat{margin-top:24px;padding:20px 24px;background:var(--bg)}
.stat p{font-weight:600;margin-bottom:12px}
.stat.bad p{color:var(--err);margin-bottom:0}
.stat.bad label,.stat.bad textarea{display:none}
.stat textarea{font-size:15px;min-height:130px;border-bottom-color:var(--line)}

/* stopka */
.foot{padding-top:var(--g);padding-bottom:40px}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:32px 48px}
.foot h3{font-size:15px;font-weight:600;color:var(--mute);margin-bottom:12px}
.foot p{font-size:16px;margin-bottom:6px}
.foot .f1 p{color:var(--mute);margin-top:16px;max-width:34ch}
.foot a{text-underline-offset:4px}
.foot li a{display:inline-flex;align-items:center;min-height:32px}
.legal-links{grid-column:1/-1;display:flex;gap:8px 28px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:16px;font-size:15px}
.legal-links a{display:inline-flex;align-items:center;min-height:44px}
.slim{grid-template-columns:1fr}
.slim p{color:var(--mute)}

/* menu: kolorowe pasy wjeżdżające kolejno */
.menu{--bg:#F9F2E6;--ink:#33182F;--acc:#5B45E0;--on-acc:#FFFFFF;--mute:#6A4A5E;position:fixed;inset:0;z-index:100;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:var(--bg);color:var(--ink);visibility:hidden;transition:visibility 0s .4s}
.menu.open{visibility:visible;transition-delay:0s}
.m-top{display:flex;align-items:center;justify-content:space-between;height:var(--hh)}
.m-top img{height:22px;width:auto;display:block}
.m-close{min-height:44px;padding:0 20px;border:0;background:var(--ink);color:var(--bg);font:600 16px/1 var(--sans);display:inline-flex;gap:12px;align-items:center;cursor:pointer}
.m-close:hover{background:var(--acc)}
.m-close .x{position:relative;width:16px;height:16px}
.m-close .x::before,.m-close .x::after{content:'';position:absolute;left:0;right:0;top:7px;height:2px;background:currentColor;transform:rotate(45deg)}
.m-close .x::after{transform:rotate(-45deg)}
.bands{display:flex;flex-direction:column;min-height:0}
.band{flex:1 1 0;min-height:56px;display:grid;grid-template-columns:56px minmax(0,1fr) auto 40px;align-items:center;gap:0 16px;padding-inline:max(var(--gut),calc((100% - 1280px) / 2));background:var(--c);color:#33182F;text-decoration:none;clip-path:inset(0 100% 0 0);transition:clip-path .3s var(--eo)}
.menu.open .band{clip-path:inset(0 0 0 0);transition:clip-path .7s var(--eo) calc(var(--i) * 60ms)}
.band:focus-visible{outline:3px solid #33182F;outline-offset:-8px}
.bn{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}
.bl{font:400 clamp(32px,min(8.5vw,6.2vh),68px)/1.05 var(--serif);transform:translate3d(-28px,0,0);opacity:0;transition:transform .3s var(--eo),opacity .2s}
.menu.open .bl{transform:none;opacity:1;transition:transform .8s var(--eo) calc(var(--i) * 60ms + 140ms),opacity .5s ease calc(var(--i) * 60ms + 140ms)}
.menu.open .band:hover .bl{transform:translate3d(14px,0,0);transition:transform .45s var(--eo)}
.bd{font-size:15px;font-weight:500}
.ba{font-size:26px;transition:transform .4s var(--eo)}
.band:hover .ba,.band:focus-visible .ba{transform:translateX(6px)}
.m-foot{display:flex;align-items:center;gap:12px 28px;flex-wrap:wrap;padding-block:16px}
.m-lang,.m-mail{display:inline-flex;align-items:center;min-height:44px;font-weight:600;font-size:15px;color:var(--ink)}

/* znaczniki „do potwierdzenia”: tylko w podglądzie */
.dp{margin-top:16px;padding:10px 14px;background:var(--dp-bg);color:var(--dp-ink);font-size:14.5px;line-height:1.4;max-width:64ch;border-left:4px solid #8A6D00}
.dpk{font-weight:700}
.dpi{display:inline-block;padding:1px 8px;background:var(--dp-bg);color:var(--dp-ink);font-size:14px;font-weight:600;line-height:1.5}
.cbody .dp{margin-top:12px}
.dp+.dp{margin-top:8px}

/* strony prawne */
.legal{max-width:780px;padding:32px 0 var(--g)}
.legal h1{font:400 clamp(40px,5vw,64px)/1.05 var(--serif);margin-bottom:20px}
.legal h2{font:400 30px/1.15 var(--serif);margin:40px 0 12px}
.legal .lead{font-size:20px;color:var(--mute);margin-bottom:8px}
.legal p,.legal li{font-size:17px;line-height:1.6;margin-bottom:12px}
.legal ul{list-style:disc;padding-left:24px}
.legal a{color:var(--acc);text-underline-offset:3px}
.nw{white-space:nowrap}

/* tablet i telefon */
@media (max-width:1099px){
 .cards{grid-template-columns:1fr}
 .card{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);grid-template-rows:1fr auto}
 .shot{grid-row:1/3}
 .shot img{height:100%;object-fit:cover;object-position:left top}
}
@media (max-width:999px){
 .hero{padding-top:24px}
 .hero-grid{grid-template-columns:1fr;gap:40px}
 .hero .lead{max-width:36ch}
 .paths{grid-template-columns:1fr;gap:40px}
 .path h3{min-height:0}
 .proc-top,.price-top,.incl-grid,.contact-grid{grid-template-columns:1fr}
 .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
 body{font-size:16.5px}
 .hero{padding-top:20px}
 .eyebrow{margin-bottom:14px}
 h1{margin-bottom:18px}
 .strip{margin:24px 0}
 .marks{margin-top:24px}
 .card{grid-template-columns:1fr;grid-template-rows:auto 1fr auto}
 .shot{grid-row:auto}
 .shot img{height:auto}
 .steps summary{grid-template-columns:44px minmax(0,1fr) 28px;grid-template-areas:"n t c" ". g .";column-gap:16px}
 .steps .num{grid-area:n}.steps .tt{grid-area:t}.steps .tg{grid-area:g;justify-self:start;margin-top:0}.steps .pm{grid-area:c}
 .steps .tg.hot{margin-top:0}
 .steps .more{padding-left:60px}
 .steps li::after{left:60px}
 .rows summary{grid-template-columns:32px minmax(0,1fr) 28px;grid-template-areas:"n a c" ". b c" ". p c";column-gap:12px;row-gap:2px;align-items:start;padding:18px 0}
 .rows .num{grid-area:n;padding-top:10px}.rows .rn{grid-area:a}.rows .rd{grid-area:b}.rows .rp{grid-area:p;text-align:left;margin-top:6px}.rows .pm{grid-area:c;margin-top:8px}
 .rows .more{padding-left:44px}
 .after{padding:24px 20px}
 .bd{display:none}
 .band{grid-template-columns:40px minmax(0,1fr) 32px}
 .foot-grid{grid-template-columns:1fr}
 .m-mail{display:none}
}
@media (prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 .e,.more{animation:none}
 .gear{animation:none}
 .band,.menu.open .band,.bl,.menu.open .bl{transition:none}
 .btn,.btn .ar,.lnk .ar,.menu-btn,.pm::before,.pm::after,.ba{transition:none}
}

/* zamknięte wiersze nie liczą się do układu; zamykająca linia wiersza listy */
details:not([open])>.more{display:none}
.steps li:last-child{border-bottom:1px solid var(--dk-line)}
.faq{margin-top:32px!important}
.contact-l{display:flex;flex-direction:column;align-self:stretch}
.art.still{margin-top:auto}
.art.still .gear{animation:none}
.art.end{max-width:270px;margin-top:32px}
html:not(.js) #menu-btn{display:none}

/* koła w kolejności 1-4, numery w piastach, opis ciągu pod rysunkiem */
.c1{color:var(--g1)}.c2{color:var(--g3)}.c3{color:var(--g2)}.c4{color:var(--g4)}
.hub{font-style:normal;color:var(--ink);padding:0}
.hub1{font-size:clamp(18px,7cqw,40px)}
.hub2,.hub3,.hub4{font-size:clamp(15px,4.6cqw,26px)}
.hub3{color:var(--acc)}
.seq{display:grid;grid-template-columns:1fr 1fr;gap:12px 28px;margin-top:20px;font-size:15.5px;line-height:1.35}
.seq li{display:flex;gap:10px;align-items:flex-start}
.seq b{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:14px;font-weight:600;background:var(--g1);color:var(--bg)}
.seq li:nth-child(2) b{background:var(--g3);color:var(--ink)}
.seq li:nth-child(3) b{background:var(--acc);color:var(--on-acc)}
.seq li:nth-child(4) b{background:var(--g4);color:var(--bg)}
.seq li.hot span{color:var(--acc);font-weight:600}
.od{font:500 .4em/1 var(--sans);color:var(--mute);margin-right:.15em}
.dark .od{color:var(--dk-mute)}
@media (max-width:420px){.seq{grid-template-columns:1fr}}

/* animacje przy przewijaniu (tylko gdy JS włączył tryb i ruch nie jest ograniczony) */
.rv{opacity:0;transform:translate3d(0,26px,0);transition:opacity .9s var(--eo),transform .9s var(--eo);transition-delay:calc(var(--d,0) * 80ms)}
.rv.in{opacity:1;transform:none}
h2 em{position:relative}
h2 em::after{content:'';position:absolute;left:0;right:0;bottom:.04em;height:2px;background:currentColor;transform-origin:left}
.rv-on h2 em::after{transform:scaleX(0);transition:transform 1.1s var(--eo) .4s}
.rv-on h2.in em::after{transform:scaleX(1)}
.shot{overflow:hidden}
.shot img{translate:0 var(--py,0px);transition:scale .9s var(--eo)}
.px .shot img{scale:1.14}
.px .card:hover .shot img{scale:1.2}
.path{transition:border-color .35s var(--eo)}
.path:hover{border-top-color:var(--acc)}
.steps{position:relative}
.fill{position:absolute;left:21.25px;top:46px;bottom:46px;width:1.5px;background:var(--dk-acc);transform:scaleY(var(--p,0));transform-origin:top;pointer-events:none}
.steps .num{z-index:2}
@media (prefers-reduced-motion:reduce){.rv,.rv.in{opacity:1;transform:none;transition:none}h2 em::after{transform:none!important;transition:none}.shot img{translate:none}}

/* ceny w odcieniach motywu: poziom 1 indygo, 2 morski, 3 fiolet */
.t1{color:var(--p1)}.t2{color:var(--p2)}.t3{color:var(--p3)}
.t1 .od,.t2 .od,.t3 .od{color:inherit;opacity:.8}

/* ===== hero v15.2: tło ze spiralą i poświatą, łańcuch etapów w trzech warstwach głębi ===== */
.hero{position:relative;overflow:clip}
.hero-bg{position:absolute;inset:0;pointer-events:none;z-index:0}
.glow{position:absolute;inset:0;background-image:radial-gradient(55% 75% at 76% 40%,rgb(var(--acc-rgb) / .22),transparent 72%),radial-gradient(42% 55% at 8% 96%,rgb(var(--acc-rgb) / .10),transparent 72%)}
.spiral{position:absolute;right:-14%;top:-18%;width:min(980px,86vw);aspect-ratio:1;background-image:var(--spiral);background-size:contain;background-repeat:no-repeat;animation:spiralspin 260s linear infinite;translate:0 var(--sy,0px)}
@keyframes spiralspin{to{transform:rotate(360deg)}}
.hero-grid{position:relative;z-index:1}
.hero-art{position:relative}
.art{position:relative;aspect-ratio:600/440;width:100%;overflow:clip;container-type:normal;-webkit-mask-image:radial-gradient(ellipse 74% 80% at 50% 50%,#000 56%,transparent 100%);mask-image:radial-gradient(ellipse 74% 80% at 50% 50%,#000 56%,transparent 100%)}
.ly{position:absolute;inset:0;width:100%;height:100%;display:block;translate:var(--px,0px) calc(var(--py,0px) + var(--sy,0px));will-change:transform}
.ly .cam{transition:transform 1.9s var(--eo);transform-origin:0 0}
.far{opacity:.55}.far .ro path,.far .ro circle{fill:none;stroke:var(--line);stroke-width:1.3}
.near{opacity:.34;filter:blur(2.4px)}.near .ro path,.near .ro circle{fill:none;stroke:var(--acc);stroke-width:1.1}
.mid .ring path{fill:none;stroke:var(--ink);stroke-width:1.3;stroke-linejoin:round}
.mid .in{fill:none;stroke:var(--line);stroke-width:1}
.stage{opacity:.26;transition:opacity 1.3s var(--eo)}.stage.nb{opacity:.55}.stage.on{opacity:1}
.snm{font:600 8.4px var(--sans);fill:var(--mute)}
.nl{font:500 9px var(--sans);fill:var(--ink)}
.el{font:400 7.6px var(--sans);fill:var(--mute);paint-order:stroke;stroke:var(--bg);stroke-width:2.8px;stroke-linejoin:round}
.el.yes{fill:var(--acc)}
.ed{fill:none;stroke:var(--mute);stroke-width:.9}.ed.no{stroke-dasharray:3 2.6}.ed.yes{stroke:var(--acc)}
.ah{fill:var(--mute)}.ah.yes{fill:var(--acc)}
.nd{fill:var(--bg);stroke:var(--ink);stroke-width:1.3}
.dot{fill:var(--acc);transition:transform .7s cubic-bezier(.65,0,.35,1);filter:drop-shadow(0 0 5px rgb(var(--acc-rgb) / .9))}
.ring{animation:ringspin var(--T) linear infinite paused;transform:rotate(var(--a))}
.stage.on .ring,.stage.nb .ring{animation-play-state:running}
@keyframes ringspin{from{transform:rotate(var(--a))}to{transform:rotate(calc(var(--a) + 360deg * var(--s)))}}
.art.off .ring{animation-play-state:paused!important}
.stagecap{display:grid;gap:2px;margin-top:14px;min-height:3.5em;font-size:15.5px;line-height:1.4}
.sc-n{font-weight:600;color:var(--acc)}.sc-t{color:var(--ink)}
.still{margin-top:auto;max-width:300px}
.still-st{display:block;width:100%;height:auto}
.still-st .stage{opacity:1}.still-st .ring{animation:none}
.art.still{all:unset}

/* ===== przyciski: boks zlewa się z tłem, od prawej zmienia się w kolor akcentu; hover zalewa całość ===== */
.btn{position:relative;overflow:hidden;isolation:isolate;padding:0 0 0 28px;min-height:56px;gap:20px;justify-content:flex-start;color:var(--ink);background:linear-gradient(90deg,var(--bg2) 0,var(--bg2) calc(100% - 84px),var(--acc) calc(100% - 52px));transition:color .4s var(--eo)}
.btn::before{content:'';position:absolute;inset:0;background:var(--acc);transform:scaleX(0);transform-origin:right;transition:transform .65s var(--eo);z-index:-1}
.btn:hover{color:var(--on-acc);background:linear-gradient(90deg,var(--bg2) 0,var(--bg2) calc(100% - 84px),var(--acc) calc(100% - 52px))}
.btn:hover::before{transform:scaleX(1)}
.btn .ar{align-self:stretch;width:84px;display:grid;place-items:center;margin:0;padding:0;color:var(--on-acc);font-size:21px}
.btn:hover .ar{transform:none}
.btn:disabled::before{display:none}
.actions .btn{animation:emerge 1s var(--eo) .55s both}
@keyframes emerge{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
.btn.rv{opacity:1;transform:none;clip-path:inset(0 100% 0 0);transition:clip-path 1s var(--eo),color .4s var(--eo)}
.btn.rv.in{clip-path:inset(0 0 0 0)}
@media (prefers-reduced-motion:reduce){.actions .btn{animation:none}.btn.rv{clip-path:none}.ly .cam{transition:none}.ring{animation:none}.spiral{animation:none}.dot{transition:none}}

/* ===== stała warstwa tła: spirala i poświata schodzą w dół strony w miarę przewijania ===== */
html{background:var(--bg)}
body{background:transparent}
.hero{overflow:visible}
.bg-fx{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:clip}
.bg-fx .glow{position:absolute;left:0;top:0;width:90vw;height:90vh;background-image:radial-gradient(closest-side,rgb(var(--acc-rgb) / .22),transparent);transform:translate3d(var(--gx,40vw),var(--gy,-10vh),0)}
.bg-fx .glow.g2{width:60vw;height:70vh;background-image:radial-gradient(closest-side,rgb(var(--acc-rgb) / .12),transparent);transform:translate3d(var(--hx,-10vw),var(--hy,60vh),0)}
.bg-fx .spiral{position:absolute;left:0;top:0;right:auto;width:min(980px,92vw);aspect-ratio:1;background-color:var(--sp-c);-webkit-mask-image:var(--spiral);mask-image:var(--spiral);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;animation:none;translate:none;transform:translate3d(var(--bx,40vw),var(--by,-18vh),0) rotate(var(--br,0deg));will-change:transform}

/* ===== tło: gradient indygo-morski z ziarnem i rozmytymi smugami, przesuwa się z przewijaniem ===== */
:root{--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}
html[data-mode=dark]{--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}
.bg-fx .grad{position:absolute;left:0;top:0;width:100%;height:260%;background-image:linear-gradient(180deg,rgb(var(--ga) / var(--gal)) 0%,rgb(var(--gb) / var(--gbl)) 34%,rgb(var(--gc) / var(--gcl)) 62%,rgb(var(--ga) / var(--gal)) 100%);transform:translate3d(0,var(--gy2,0%),0);will-change:transform}
.bg-fx .grain{position:absolute;inset:0;background-image:var(--grain);opacity:var(--grn)}
.bg-fx .sm{position:absolute;border-radius:48px;background:rgb(var(--ga) / .55);filter:blur(34px);opacity:.5;will-change:transform}
.bg-fx .sm.s1{left:18vw;top:10vh;width:34vw;height:46vh;transform:translate3d(var(--sx1,0px),var(--sy1,0px),0)}
.bg-fx .sm.s2{left:46vw;top:46vh;width:26vw;height:26vh;background:rgb(var(--gc) / .5);transform:translate3d(var(--sx2,0px),var(--sy2,0px),0)}
.bg-fx .sm.s3{left:8vw;top:62vh;width:22vw;height:20vh;transform:translate3d(var(--sx3,0px),var(--sy3,0px),0)}
.top{background:color-mix(in srgb,var(--bg) 78%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.near{filter:none;opacity:.2}

/* ===== teksty wychodzące słowo po słowie, podkreślenia rysowane ===== */
.wd{display:inline-block;overflow:hidden;vertical-align:top;line-height:1.12;padding:0 .05em .16em 0;margin:0 -.05em -.16em 0}
.wd>span{display:inline-block;transform:translate3d(0,112%,0);transition:transform 1s var(--eo);transition-delay:calc(var(--k,0) * 55ms)}
.wr.in .wd>span{transform:none}
h2{translate:0 var(--hy,0px)}
.ul{position:relative;white-space:nowrap}
.ul::after{content:'';position:absolute;left:0;right:0;bottom:-3px;height:2px;background:var(--acc);transform-origin:left;animation:ulin 1.1s var(--eo) 1.3s both}
@keyframes ulin{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* ===== realizacje: przełącznik układu, 3D przy przewijaniu ===== */
.vsw{display:inline-flex;gap:4px;margin-top:32px;background:var(--bg2);padding:4px}
.vb{min-height:44px;padding:0 20px;border:0;background:transparent;color:var(--ink);font:600 15px var(--sans);cursor:pointer;transition:background .3s var(--eo),color .3s var(--eo)}
.vb[aria-pressed=true]{background:var(--acc);color:var(--on-acc)}
.vsw+.cards{margin-top:24px}
.cards{perspective:1400px}
.px .shot{transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transform-origin:50% 100%}
.cards.list{grid-template-columns:1fr}
.cards.list .card{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);grid-template-rows:1fr auto}
.cards.list .shot{grid-row:1/3}.cards.list .shot img{height:100%;object-fit:cover;object-position:left top}
@media (max-width:1099px){.vsw{display:none}}

/* ===== dla kogo: subtelny dryf kolumn ===== */
.px .path{translate:0 var(--dy,0px)}

/* ===== ceny: siatka składa się przy przewijaniu ===== */
.gx .rows li .rn{translate:calc((1 - var(--gp,1)) * -70px) 0;opacity:calc(.15 + var(--gp,1) * .85)}
.gx .rows li .rd{translate:0 calc((1 - var(--gp,1)) * 26px);opacity:calc(.1 + var(--gp,1) * .9)}
.gx .rows li .rp{translate:calc((1 - var(--gp,1)) * 90px) 0;opacity:calc(.15 + var(--gp,1) * .85)}
.gx .rows li .num{translate:calc((1 - var(--gp,1)) * -34px) calc((1 - var(--gp,1)) * -14px)}

/* ===== automatyzacje: nawigacja przewijaniem ===== */
.auto-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:24px 56px;align-items:start}
.auto-stage{position:sticky;top:calc(var(--hh) + 24px);aspect-ratio:4/3;background:var(--bg2);overflow:hidden;color:var(--ink)}
.ap{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:10px;opacity:0;transform:translate3d(0,26px,0) scale(.97);transition:opacity .7s var(--eo),transform .9s var(--eo)}
.ap.on{opacity:1;transform:none}
.ap svg{width:58%;height:auto}
.ap-t{font:400 clamp(26px,2.6vw,36px)/1.1 var(--serif)}
.auto-n{position:absolute;left:20px;top:16px;font-size:14.5px;color:var(--mute)}
.auto-n b{font:600 16px var(--sans);color:var(--acc)}
.auto-right .pa{color:var(--mute);max-width:44ch}
.auto-list{margin-top:8px!important}
.aitem{padding:5vh 0;color:var(--mute);transition:color .6s var(--eo);border-top:1px solid var(--line)}
.aitem.on{color:var(--ink)}
.aitem:last-child{padding-bottom:5vh}
.ai-n{font-size:15px;font-weight:600;color:var(--acc)}
.aitem h3{font:400 clamp(30px,3vw,44px)/1.1 var(--serif);margin:4px 0 8px}
.aitem p{font-size:17.5px;max-width:42ch}
.auto-cta{display:flex;align-items:center;gap:16px 28px;flex-wrap:wrap;margin-top:8px}
.pa{font-size:18px}

/* ===== social media: odstęp słów maleje po najechaniu ===== */
.soc-grid{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:32px 64px;align-items:start}
.soc-l .pa{color:var(--mute);max-width:40ch}
.soc-cta{margin-top:16px}
.ws-wrap{position:relative}
.ws{font:400 clamp(30px,3.6vw,52px)/1.3 var(--serif);word-spacing:1.5em;transition:word-spacing 1.7s var(--eo);outline-offset:10px}
.ws .nz{font:500 .46em/1 var(--sans);color:var(--mute);opacity:.6;filter:blur(.3px);transition:opacity 1.3s var(--eo),font-size 1.3s var(--eo),filter 1.3s var(--eo)}
.ws .nz:nth-child(3n){font-size:.62em;opacity:.4}
.ws .nz:nth-child(4n+1){font-size:.36em;opacity:.7}
.ws .ky{color:var(--ink);text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:2px;text-underline-offset:.14em;transition:text-decoration-color 1.2s var(--eo) .4s}
.ws:hover,.ws:focus-visible,.ws.on{word-spacing:.2em}
.ws:hover .nz,.ws:focus-visible .nz,.ws.on .nz{opacity:.14;font-size:.3em;filter:blur(1px)}
.ws:hover .ky,.ws:focus-visible .ky,.ws.on .ky{text-decoration-color:var(--acc)}
.ws-hint{display:block;margin-top:16px;font-size:14.5px;color:var(--mute)}
html:not(.js) .ws{word-spacing:.2em}
html:not(.js) .ws .nz{opacity:.14;font-size:.3em}

/* ===== menu: fala dopasowana do spirali, potem kolorowe pasy zmieniające szerokość ===== */
.menu{background:transparent}
.waves{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.wv{position:absolute;left:-2%;top:-6%;width:104%;height:112%;transform:translate3d(-118%,0,0) rotate(-5deg) scale(1.18);transition:transform .55s var(--eo)}
.wv path{fill:currentColor}
.w1{color:var(--acc);--w:0}.w2{color:#BFE0FB;--w:1}.w3{color:var(--bg);--w:2}
.menu.open .wv{transform:translate3d(0,0,0) rotate(-5deg) scale(1.18);transition:transform 1.15s var(--eo) calc(var(--w) * 130ms)}
.m-top,.bands,.m-foot{position:relative;z-index:1}
.m-top,.m-foot{opacity:0;transition:opacity .25s}
.menu.open .m-top,.menu.open .m-foot{opacity:1;transition:opacity .6s ease .75s}
.menu{transition:visibility 0s .75s}
.menu.open{transition-delay:0s}
.menu.open .band{transition:clip-path .8s var(--eo) calc(var(--i) * 60ms + 520ms),flex-grow .8s var(--eo)}
.menu.open .bl{transition:transform .9s var(--eo) calc(var(--i) * 60ms + 650ms),opacity .6s ease calc(var(--i) * 60ms + 650ms)}
.menu.open .bands:hover .band{flex-grow:.55}
.menu.open .bands .band:hover,.menu.open .bands .band:focus-visible{flex-grow:2.7}
@media (prefers-reduced-motion:reduce){.wv,.menu.open .wv{transition:none}.wd>span{transform:none;transition:none}.ul::after{animation:none}.ws{word-spacing:.2em;transition:none}.ws .nz{opacity:.14;font-size:.3em}.ap{transition:none}}

/* ===== znak operatora iapply (ia <-> ai) ===== */
a.iapply-znak-link,.iapply-znak-link{display:inline-flex;align-items:center;min-height:44px;color:inherit;text-decoration:none}
.foot .op{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

.stage:not(.on):not(.nb) text{visibility:hidden}
.soc-grid{padding-bottom:28px;border-bottom:1px solid var(--line)}
@media (max-width:760px){.strip ul{gap:6px 18px;flex-wrap:nowrap}.sv{font-size:25px}.strip li{min-width:0}.sk{font-size:14px}}
/* statyczny etap przy kontakcie i znak operatora */
.still-st .ring path{fill:none;stroke:var(--ink);stroke-width:1.3;stroke-linejoin:round}
.still-st .in{fill:none;stroke:var(--line);stroke-width:1}
.still-st .snm{font:600 8.4px var(--sans);fill:var(--mute)}
.still-st .nl{font:500 9px var(--sans);fill:var(--ink)}
.still-st .el{font:400 7.6px var(--sans);fill:var(--mute);paint-order:stroke;stroke:var(--bg2);stroke-width:2.8px;stroke-linejoin:round}
.still-st .el.yes{fill:var(--acc)}
.still-st .ed{fill:none;stroke:var(--mute);stroke-width:.9}.still-st .ed.no{stroke-dasharray:3 2.6}.still-st .ed.yes{stroke:var(--acc)}
.still-st .ah{fill:var(--mute)}.still-st .ah.yes{fill:var(--acc)}
.still-st .nd{fill:var(--bg2);stroke:var(--ink);stroke-width:1.3}
.foot .op .iapply-znak-link{min-height:44px}
@media (max-width:760px){.strip ul{flex-wrap:wrap}.sv{font-size:clamp(21px,6.2vw,25px)}.hero-copy{min-width:0}}
.still{max-width:210px}
@media (max-width:760px){.pprice{font-size:clamp(26px,7.6vw,34px)}}

/* ===== spirala żyje jak układ słoneczny; zębatki wypadają z niej przy przewijaniu ===== */
.bg-fx .spiral{animation:spiralspin 150s linear infinite}
@keyframes spiralspin{to{rotate:360deg}}
.bg-fx .spiral i{position:absolute;left:50%;top:50%;aspect-ratio:1;translate:-50% -50%;background-color:var(--sp-c);-webkit-mask-image:var(--orbit);mask-image:var(--orbit);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.bg-fx .spiral .o1{width:76%;animation:orbspin 64s linear infinite reverse}
.bg-fx .spiral .o2{width:44%;animation:orbspin 38s linear infinite}
@keyframes orbspin{to{rotate:360deg}}
.ly{rotate:var(--fr,0deg)}
.art,.stagecap{opacity:var(--fo,1)}
@media (prefers-reduced-motion:reduce){.bg-fx .spiral,.bg-fx .spiral i{animation:none}}

/* ===== logo jako symbol: kolory z motywu, „mi” pogrubione ===== */
.lg{display:block;height:24px;width:auto;aspect-ratio:555/106.5}
.la{fill:var(--logo-a)}
.lm{fill:var(--logo-mi);stroke:var(--logo-mi);stroke-width:7;stroke-linejoin:round;paint-order:stroke}
.lc{fill:var(--logo-com)}
.menu{--logo-a:#33182F;--logo-mi:#5B45E0;--logo-com:#6A4A5E}
.m-top .lg{height:24px}
.foot .brand .lg{height:24px}

/* ===== wybór motywu ===== */
.tpick{position:relative}
.tpop{position:absolute;right:0;top:calc(100% + 10px);width:min(330px,calc(100vw - 32px));background:var(--bg2);padding:8px;z-index:60;box-shadow:0 18px 44px rgb(0 0 0 / .28)}
.tpop[hidden]{display:none}
.tmi{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;width:100%;min-height:58px;padding:8px 12px;border:0;background:transparent;color:var(--ink);text-align:left;font:inherit;cursor:pointer;transition:background .25s var(--eo)}
.tmi:hover,.tmi:focus-visible,.tmi[aria-checked=true]{background:var(--bg)}
.sws{display:flex}.sws i{display:block;width:16px;height:36px}
.tn b{display:block;font:400 23px/1.1 var(--serif)}
.tn span{font-size:14.5px;color:var(--mute)}
.tmi[aria-checked=true] .tn b::after{content:" \2713";color:var(--acc);font:600 15px var(--sans)}

/* ===== osobne kolory haseł w tytułach i nazwach sekcji (rotacja odcieni po sekcjach) ===== */
main>section:nth-of-type(3n+1){--sec:var(--p1);--sec2:var(--p2)}
main>section:nth-of-type(3n+2){--sec:var(--p2);--sec2:var(--p3)}
main>section:nth-of-type(3n){--sec:var(--p3);--sec2:var(--p1)}
#proces{--sec:var(--dk-acc);--sec2:var(--dk-acc)}
main h2 em{color:var(--sec,var(--acc))}
main h2 em~em{color:var(--sec2,var(--acc))}
main .sn{color:var(--sec,var(--acc))}
main .sl{font:italic 400 20px/1 var(--serif);color:var(--sec,var(--acc))}
.eyebrow{font-style:italic;font-family:var(--serif);font-size:20px;color:var(--sec,var(--mute))}
.pa strong,.big{color:var(--ink)}

/* ===== motyw Pryzmat: kolory zależne od odcienia ustawianego przy przewijaniu ===== */
html[data-theme=pryzmat] .bg-fx .grad{background-image:linear-gradient(180deg,hsl(var(--hue) 80% 48% / .55) 0%,hsl(calc(var(--hue) + 50) 78% 42% / .45) 34%,hsl(calc(var(--hue) + 110) 72% 40% / .45) 62%,hsl(calc(var(--hue) + 20) 80% 46% / .55) 100%)}
html[data-theme=pryzmat] .bg-fx .glow{background-image:radial-gradient(closest-side,hsl(var(--hue) 90% 60% / .30),transparent)}
html[data-theme=pryzmat] .bg-fx .glow.g2{background-image:radial-gradient(closest-side,hsl(calc(var(--hue) + 120) 90% 60% / .22),transparent)}
html[data-theme=pryzmat] .bg-fx .sm{background:hsl(var(--hue) 90% 55% / .5)}
html[data-theme=pryzmat] .bg-fx .sm.s2{background:hsl(calc(var(--hue) + 140) 90% 55% / .5)}

.soc-note{margin-top:8px;font-size:15px;color:var(--mute)}
.pend a{font-weight:600;text-decoration:underline;text-underline-offset:4px;display:inline-flex;align-items:center;min-height:44px}

/* ===== nagłówki w stylu logo: pogrubiony grotesk + kursywa szeryfowa na wyróżnionych słowach ===== */
h1,h2{font-family:var(--sans);font-weight:600;letter-spacing:-.04em;line-height:1.04}
h1{font-size:clamp(42px,5.2vw,78px)}
h2{font-size:clamp(34px,4.2vw,58px)}
h1 em,h2 em{font-family:var(--serif);font-weight:400;font-style:italic;letter-spacing:-.012em;font-size:1.1em}
.hw1{color:var(--p1)}.hw2{color:var(--p2)}.hw3{color:var(--p3)}
h1 em{color:var(--acc)}
.path h3{font-family:var(--sans);font-weight:500;letter-spacing:-.03em;font-size:clamp(25px,2.5vw,32px);min-height:2.3em}
.path h3 em{font-family:var(--serif);font-style:italic;font-weight:400;font-size:1.12em;letter-spacing:-.01em}
.path:nth-child(1) h3 em{color:var(--p1);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.16em}
.path:nth-child(2) h3 em{color:var(--p2);box-shadow:inset 0 -.38em 0 color-mix(in srgb,var(--p2) 22%,transparent)}
.path:nth-child(3) h3 em{color:var(--p3);font-family:var(--sans);font-style:normal;font-weight:700;letter-spacing:-.04em;font-size:1em;border-bottom:2px dotted var(--p3)}
.path:nth-child(1){border-top-color:var(--p1)}.path:nth-child(2){border-top-color:var(--p2)}.path:nth-child(3){border-top-color:var(--p3)}

/* ===== układ realizacji: ikony w wierszu tytułu, z prawej ===== */
.h2row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}
.h2row .vsw{margin:0;padding:0;background:transparent;display:inline-flex;gap:2px;flex:none}
.h2row+.cards{margin-top:40px}
.vb{width:44px;min-width:44px;height:44px;padding:0;display:grid;place-items:center;background:transparent;color:var(--mute)}
.vb svg{width:22px;height:22px;fill:currentColor;display:block}
.vb[aria-pressed=true]{background:var(--acc);color:var(--on-acc)}
.vb:hover{color:var(--ink)}.vb[aria-pressed=true]:hover{color:var(--on-acc)}

/* ===== szkło: spirala przesuwa się rozmyta pod elementami ===== */
.card,.after,.auto-stage{background:color-mix(in srgb,var(--bg2) 76%,transparent);-webkit-backdrop-filter:blur(10px) saturate(1.1);backdrop-filter:blur(10px) saturate(1.1)}
.tone2{background:color-mix(in srgb,var(--bg2) 80%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.dark{background:color-mix(in srgb,var(--dk) 86%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}

/* ===== mechanizm: wielka stała spirala, koła na jej ramieniu ===== */
.art-anchor{aspect-ratio:600/440;width:100%}
.bg-fx .mech{position:absolute;left:0;top:0;width:3200px;height:3200px;max-width:none;overflow:visible;transform-origin:50% 50%;transform:translate3d(var(--mx,0px),var(--my,0px),0) rotate(var(--mr,0deg)) scale(var(--ms,1));will-change:transform}
.mech .arm{fill:none;stroke:var(--sp-c);stroke-width:1.2;stroke-opacity:.5}
.mech .arm.a0{stroke-width:1.8;stroke-opacity:.85}
.mech .orb{animation:orbspin 70s linear infinite}
.mech .orb.o2{animation-duration:140s;animation-direction:reverse}
.mech .orc{fill:none;stroke:var(--sp-c);stroke-opacity:.35;stroke-width:1}
.mech .orp{fill:var(--sp-c)}
.mech .ring path{fill:none;stroke:var(--ink);stroke-width:1.3;stroke-linejoin:round}
.mech .in{fill:none;stroke:var(--line);stroke-width:1}
.mech .stageX{opacity:.32;transition:opacity .9s var(--eo)}.mech .stage.nb{opacity:.62}.mech .stage.on{opacity:1}
@media (prefers-reduced-motion:reduce){.mech .orb{animation:none}}

/* stopka: trzy równe kolumny od jednej linii górnej, nawigacja w dwóch rzędach */
.foot-grid{grid-template-columns:1.1fr 1.1fr 1fr;gap:32px 56px;align-items:start}
.foot h3{margin:0 0 12px;line-height:1.2}
.foot .f1 p{margin:14px 0 0}
.foot .f2 p{margin:0 0 4px}
.foot .f2 .op{margin-top:10px}
.foot .f2 .ids{color:var(--mute);font-size:15px;margin-top:6px}
.foot .f4 ul{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
.foot .f4 li a{min-height:36px}
.foot .brand{margin-bottom:0}
@media (max-width:999px){.foot-grid{grid-template-columns:1fr 1fr}.foot .f1{grid-column:1/-1}}
@media (max-width:760px){.foot-grid{grid-template-columns:1fr}}
.foot{background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.foot .f4 ul{grid-auto-flow:column;grid-template-rows:repeat(3,auto)}
/* TYMCZASOWO: koła zębate wyłączone na prośbę właściciela (usuń ten blok, żeby wróciły) */

/* ceny pogrubione (grotesk 700, jak nagłówki) */
.sv,.pprice,.rp{font-family:var(--sans);font-weight:700;letter-spacing:-.04em}
.sv{font-size:clamp(26px,2.6vw,34px)}
.pprice{font-size:clamp(30px,2.8vw,38px)}
.rp{font-size:clamp(24px,2.4vw,32px)}
.od{font-weight:500;letter-spacing:0}
/* „Cena znana z góry.” żyje: gradient odcieni przesuwa się z przewijaniem (jak Pryzmat), jasność zależy od motywu */
h1>em{--el:36%;color:hsl(var(--eh,265) 70% var(--el));background-image:linear-gradient(90deg,hsl(var(--eh,265) 78% var(--el)),hsl(calc(var(--eh,265) + 70) 80% var(--el)) 60%,hsl(calc(var(--eh,265) + 140) 78% var(--el)));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;padding-right:.08em}
html[data-mode=dark] h1>em{--el:74%}
html[data-theme=granat] h1>em{--el:32%}
@media (max-width:360px){.strip ul{gap:6px 12px}.sv{font-size:22px}.hero-copy,.hero-grid{min-width:0}.marks{gap:6px 16px}}
.rn.t0{color:var(--ink)}
.rows summary:hover .rn{text-decoration-color:currentColor}

/* descendery „Cena znana z góry.” nie są ucinane */
h1>em{display:block;padding-bottom:.22em;margin-bottom:-.12em;line-height:1.12;overflow:visible}

/* ===== mechanizm v15.4: mała spirala, przezroczyste koła na trzech ramionach ===== */
.hero-grid{grid-template-columns:minmax(0,640px)}
.bg-fx .mech{width:1300px;height:1300px}
.mech .arm{fill:none;stroke:var(--sp-c);stroke-width:1.1;stroke-opacity:.45}
.mech .orc{fill:none;stroke:var(--sp-c);stroke-opacity:.3;stroke-width:1}
.mech .orp{fill:var(--sp-c);fill-opacity:.7}
.mech .chain{opacity:.26}
.mech .chain .ring path,.mech .c0 .ring path{fill:none;stroke:var(--ink);stroke-width:1;stroke-linejoin:round}
.mech .chain .in{fill:none;stroke:var(--ink);stroke-width:.7;stroke-opacity:.6}
.mech .chain .lp{fill:none;stroke:var(--acc);stroke-width:.8;stroke-dasharray:2 2.4}
.mech .chain .nd{fill:var(--acc)}
.mech .g.st .ring path{stroke:var(--ink)}
.mech .c0 .in{fill:none;stroke:var(--ink);stroke-width:.8}.mech .c0 .lp{fill:none;stroke:var(--acc);stroke-width:1}
.mech .gp0{opacity:.4}
.mech .ring{animation:ringspin var(--T) linear infinite;transform:rotate(var(--a))}
@media (prefers-reduced-motion:reduce){.mech .ring{animation:none}}
@media (max-width:760px){.mech .chain{opacity:.15}.mech .arm{stroke-opacity:.3}}
.mech .chain{opacity:.4}
.mech .gp{will-change:auto}
@media (max-width:760px){.mech .chain{opacity:.22}}

/* zębatka przy kontakcie żyje: okrąg obraca się, wnętrze kołysze */
.still-st .ring{animation:ringspin 44s linear infinite;transform:rotate(var(--a))}
.still-st .pend{animation:swing 5.4s ease-in-out infinite alternate}
@keyframes swing{from{transform:rotate(-13deg)}to{transform:rotate(13deg)}}
@media (prefers-reduced-motion:reduce){.still-st .ring,.still-st .pend{animation:none}}
.iac{color:var(--acc);font-weight:600}
.dark .iac,.menu .iac{color:var(--dk-acc)}
.menu .iac{color:var(--acc)}
.mail .iac{color:var(--acc);font-weight:inherit}

/* kreator zapytania: trzy kroki, klikane wybory */
.sr{position:absolute;left:-9999px}
.stp{border:0;padding:0;margin:0 0 24px;min-width:0}
.wq{font:600 clamp(22px,2.2vw,28px)/1.2 var(--sans);letter-spacing:-.03em;padding:0;margin-bottom:18px}
.chips{display:none;flex-wrap:wrap;gap:10px}
html.js .chips{display:flex}
html.js .selhid{display:none}
.chip{min-height:52px;padding:0 22px;border:0;background:var(--bg);color:var(--ink);font:600 16.5px var(--sans);cursor:pointer;transition:background .25s var(--eo),color .25s var(--eo),transform .25s var(--eo)}
.chip:hover{background:var(--acc);color:var(--on-acc);transform:translateY(-2px)}
.chip[aria-checked=true]{background:var(--acc);color:var(--on-acc)}
.wz-top{display:none;align-items:center;justify-content:space-between;margin-bottom:22px;font-size:14.5px;color:var(--mute)}
.wiz .wz-top{display:flex}
.wz-dots{display:flex;gap:6px}.wz-dots i{display:block;width:28px;height:4px;background:var(--line);transition:background .4s var(--eo)}
.wz-dots i.on{background:var(--acc)}
.wz-nav{display:flex;align-items:center;gap:12px 24px;flex-wrap:wrap}
.wz-back{display:none}
.wiz .wz-back{display:inline-flex}
.wiz .stp{display:none;animation:fade .5s var(--eo) both}
.wiz .stp.cur{display:block}
.wiz .stp[data-s="0"] .wz-nav{display:none}
@media (prefers-reduced-motion:reduce){.chip{transition:none}.wiz .stp{animation:none}}

/* jedno koło w sercu spirali: pętla agentów, zawsze pośrodku */
.mech .heart{opacity:.6}
.mech .heart .stage{opacity:1}
.mech .heart .ring{animation:ringspin 56s linear infinite;transform:rotate(var(--a))}
.mech .heart .ring path{fill:none;stroke:var(--ink);stroke-width:1.3;stroke-linejoin:round}
.mech .heart .in{fill:none;stroke:var(--line);stroke-width:1}
.mech .heart .nl{font:500 9px var(--sans);fill:var(--ink)}
.mech .heart .ed{fill:none;stroke:var(--mute);stroke-width:.9}.mech .heart .ed.no{stroke-dasharray:3 2.6}.mech .heart .ed.yes{stroke:var(--acc)}
.mech .heart .ah{fill:var(--mute)}.mech .heart .ah.yes{fill:var(--acc)}
.mech .heart .nd{fill:var(--bg);stroke:var(--ink);stroke-width:1.3}
.mech .heart .dot{fill:var(--acc)}
.mech .heart .pend{animation:swing 6s ease-in-out infinite alternate}
@media (prefers-reduced-motion:reduce){.mech .heart .ring,.mech .heart .pend{animation:none}}
.mech .hc{transform:rotate(calc(var(--mr,0deg) * -1))}
.mech .heart{opacity:.7}

/* serce spirali: bez kołysania, pętla żyje (kropka wędruje po węzłach, strzałki płyną), lądowanie nad stopką */
.mech .heart .pend{animation:none}
.mech .heart{opacity:var(--ho,.7)}
.mech .heart .ed:not(.no){stroke-dasharray:5 4;animation:flow 2.4s linear infinite}
@keyframes flow{to{stroke-dashoffset:-18}}
.mech .heart .hdot{fill:var(--acc);transition:transform .8s cubic-bezier(.65,0,.35,1);filter:drop-shadow(0 0 4px var(--acc))}
.mech .heart .nd{animation:npulse 3.6s ease-in-out infinite}
@keyframes npulse{50%{stroke-width:2.4}}
.still.end{width:min(268px,70vw);aspect-ratio:1;max-width:none;margin-top:auto}
@media (prefers-reduced-motion:reduce){.mech .heart .ed,.mech .heart .nd{animation:none}.mech .heart .hdot{transition:none}}
.mech .heart{opacity:var(--ho,.38)}
.tone2{-webkit-backdrop-filter:none;backdrop-filter:none;background:color-mix(in srgb,var(--bg2) 55%,transparent)}
.mech .heart .hph{font:700 10.5px var(--sans);fill:var(--acc)}
.mech .heart .hpc{font:500 7.5px var(--sans);fill:var(--mute)}
.mech .hc{transform-origin:0 0}

/* lądowanie: zębatka wpada nad stopkę i zostaje, spirala zostaje w tle */
#landing{opacity:var(--lo,0);transform:translate3d(0,var(--ly,-120px),0) scale(var(--ls,1.5));transform-origin:50% 0;will-change:transform,opacity}
#landing .still-st .ring{animation:ringspin 44s linear infinite;transform:rotate(var(--a))}
#landing .still-st .pend{animation:none}
#landing .ldot{fill:var(--acc);transition:transform .8s cubic-bezier(.65,0,.35,1);filter:drop-shadow(0 0 4px var(--acc))}
#landing .still-st .ed:not(.no){stroke-dasharray:5 4;animation:flow 2.4s linear infinite}
#landing .still-st .nd{animation:npulse 3.6s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){#landing{opacity:1;transform:none}#landing .still-st .ring,#landing .still-st .ed,#landing .still-st .nd{animation:none}}
/* stopka: powrót do wersji czterokolumnowej */
.foot-grid{grid-template-columns:1.5fr 1fr 1fr 1fr}
.foot .f2 .op,.foot .f2 .ids{display:none}
.foot .f4 ul{display:block;grid-auto-flow:initial;grid-template-rows:none}
.foot .f4 li a{min-height:36px}
.foot .f3 p{margin:0 0 6px}
.foot .f3 .op{margin:0 0 8px}
.foot{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}
@media (max-width:999px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.foot-grid{grid-template-columns:1fr}}

/* pętla zadania: Ty w środku, kropka płynie po łukach */
.loopg .ring path{fill:none;stroke:var(--ink);stroke-width:1.3;stroke-linejoin:round}
.loopg .ring{animation:ringspin 56s linear infinite;transform:rotate(var(--a))}
.loopg .in{fill:none;stroke:var(--line);stroke-width:1}
.loopg .ed{fill:none;stroke:var(--mute);stroke-width:.9}
.loopg .ah{fill:var(--mute)}
.loopg .nd{fill:var(--bg);stroke:var(--ink);stroke-width:1.3}
.loopg .nd.ty{fill:var(--acc);stroke:var(--acc)}
.loopg .nl{font:500 8.6px var(--sans);fill:var(--ink)}
.loopg .tyl{font:700 8px var(--sans);fill:var(--on-acc)}
.loopg .ldot{fill:var(--acc);filter:drop-shadow(0 0 4px var(--acc));opacity:0}
.loopg .ldot.go{opacity:1}
.still-st{overflow:visible}
@media (prefers-reduced-motion:reduce){.loopg .ring{animation:none}}

/* kolory węzłów i kropki zależne od motywu (Pryzmat: odcienie płyną z przewijaniem) */
:root{--nc0:var(--acc);--nc1:var(--p2);--nc2:var(--p3);--nc3:var(--p1);--nc4:hsl(calc(var(--hue,265) + 210) 90% 76%)}
.loopg .n0{fill:var(--nc0);stroke:var(--nc0)}
.loopg .n1{stroke:var(--nc1);fill:color-mix(in srgb,var(--nc1) 30%,var(--bg))}
.loopg .n2{stroke:var(--nc2);fill:color-mix(in srgb,var(--nc2) 30%,var(--bg))}
.loopg .n3{stroke:var(--nc3);fill:color-mix(in srgb,var(--nc3) 30%,var(--bg))}
.loopg .n4{stroke:var(--nc4);fill:color-mix(in srgb,var(--nc4) 30%,var(--bg))}
.loopg .ldot{fill:var(--nc0);transition:fill .45s ease}
.still.end{width:min(360px,82vw)}
#landing .loopg .nl{font-size:11px}#landing .loopg .tyl{font-size:10px}
.mech .arm{stroke-opacity:.75;stroke-width:1.3}

/* wnętrze pętli (punkty, strzałki, kropka) obraca się wolno w przeciwną stronę niż zębaty okrąg; napisy zostają proste */
.loopg .inner{animation:innerspin 14s linear infinite}
@keyframes innerspin{to{transform:rotate(-360deg)}}
.loopg .nl,.loopg .tyl{transform-box:fill-box;transform-origin:center;animation:innerspin 14s linear infinite reverse;rotate:calc(var(--mr,0deg) * -1)}
@media (prefers-reduced-motion:reduce){.loopg .inner,.loopg .nl,.loopg .tyl{animation:none}}
.heart .loopg .nl,.heart.loopg .nl{font-size:13px}.heart.loopg .tyl{font-size:11px}
.heart.loopg .tyl{font-size:15px}
.loopg .tyl{font-size:11px}
.heart .arm{fill:none;stroke:var(--sp-c);stroke-opacity:.8;stroke-width:1.6}
.mech .heart{opacity:1!important}
.mech .heart .ring,.mech .heart .in,.mech .heart .ed,.mech .heart .ah,.mech .heart .nd,.mech .heart .nl,.mech .heart .ldot{opacity:var(--ho,.38)}
.heart .arm{stroke-opacity:.85;stroke-width:1.8}

/* napisy przy węzłach: grupa w węźle kontr-obraca się, więc napis zawsze jest prosto i stale pod swoim punktem */
.loopg .nl,.loopg .tyl{animation:none!important;rotate:none!important;transform:none!important}
.loopg .ctr{transform-origin:0 0;animation:innerspin 14s linear infinite reverse;rotate:calc(var(--mr,0deg) * -1)}
.loopg .nl{paint-order:stroke;stroke:rgb(20 10 40 / .55);stroke-width:2.2px;stroke-linejoin:round}
@media (prefers-reduced-motion:reduce){.loopg .ctr{animation:none}}
#landing .loopg{opacity:.78}
.loopg .tyl{stroke:none}
.loopg .ring{animation-duration:30s}
.heart.loopg .nl{font-size:16px}.heart.loopg .tyl{font-size:17px}

/* formularz jako jeden box w kolorze motywu: wybór na górze, tekst na dole */
.form{background:linear-gradient(155deg,color-mix(in srgb,var(--acc) 30%,var(--bg2)) 0%,color-mix(in srgb,var(--p3) 18%,var(--bg2)) 100%);padding:clamp(22px,3vw,36px);box-shadow:0 24px 60px rgb(0 0 0 / .25)}
.wz-top,.wz-nav,.wz-back{display:none!important}
.form .stp{display:block!important;margin:0 0 20px}
.form .wq{font:600 19px/1.25 var(--sans);letter-spacing:-.02em;margin-bottom:14px}
.form .chips{display:flex}
.form .chip{background:color-mix(in srgb,var(--bg) 60%,transparent);min-height:48px;padding:0 18px;font-size:16px}
.form .chip:hover,.form .chip[aria-checked=true]{background:var(--acc);color:var(--on-acc)}
.form input,.form textarea,.form select{background:color-mix(in srgb,var(--bg) 62%,transparent)}
.form textarea{min-height:150px}
.form .note{margin:4px 0 20px}

/* 15 etapów drogi klienta na spirali, zapytanie wędruje po nich od środka */
.heart .route{fill:none;stroke:var(--acc);stroke-width:1;stroke-dasharray:3 5;stroke-opacity:.55}
.heart .sn{fill:var(--bg);stroke:var(--acc);stroke-width:1.2;opacity:.7}
.heart .sl{font:500 13px var(--sans);fill:var(--ink);opacity:.7;paint-order:stroke;stroke:rgb(20 10 40 / .5);stroke-width:2px}
.heart .sdot{fill:var(--acc);filter:drop-shadow(0 0 5px var(--acc))}

/* główne zębatki etapów: ciemniejsze od zębatki głównej, każda z 3-5 punktami; kulka je odwiedza */
.heart .sring{animation:ringspin var(--T) linear infinite;transform:rotate(var(--a))}
.heart .sring path{fill:none;stroke:color-mix(in srgb,var(--ink) 52%,#2a1850);stroke-width:1.2;stroke-linejoin:round}
.heart .sin{fill:rgb(20 10 40 / .18);stroke:color-mix(in srgb,var(--ink) 40%,#2a1850);stroke-width:.8}
.heart .rseg{fill:none;stroke:var(--acc);stroke-width:.7;stroke-opacity:.35;stroke-dasharray:2 3}
.heart .rseg.far{stroke-opacity:.5}
.heart .route{display:none}
.heart .sn{fill:var(--bg);stroke:var(--acc);stroke-width:1;opacity:.85}
@media (prefers-reduced-motion:reduce){.heart .sring{animation:none}}

/* dwie kulki: jedna w głównym kole (Ty/Opiekun), druga leci przez etapy i krąży w każdym po jego punktach */
.heart .sdot{fill:var(--p2);r:5.4px;filter:drop-shadow(0 0 7px var(--p2))}
.heart .stg .sin{transition:fill .5s ease,stroke .5s ease}
.heart .stg.cur .sin{fill:color-mix(in srgb,var(--p2) 28%,transparent);stroke:var(--p2)}
.heart .stg.cur .sring path{stroke:var(--p2)}

/* puste koła rozdzielające (bez pętli agentów): ciemniejsze, bez napisów */
.heart .emp .sring path{fill:none;stroke:color-mix(in srgb,var(--ink) 30%,#140a30);stroke-width:1.3;stroke-linejoin:round}
.heart .emp .sring{animation:ringspin var(--T) linear infinite;transform:rotate(var(--a))}
@media (prefers-reduced-motion:reduce){.heart .emp .sring{animation:none}}
.heart .nd.cur{stroke-width:2.6;filter:drop-shadow(0 0 5px currentColor)}
.heart .nd.n0.cur{stroke-width:1.3}
/* obracają się tylko koła, w których jest kulka (główne zawsze, etapy tylko gdy kulka jest w środku); reszta stoi */
.heart .stg .sring,.heart .emp .sring{animation-play-state:paused}
.heart .stg.cur .sring{animation-play-state:running}

/* ===== FX 8.10: warstwy, postęp przewijania, światło tła (tylko transform/opacity) ===== */
.sec{position:relative;overflow:clip}
.sec>.wrap{position:relative;z-index:1}
.fx-glow{position:absolute;left:0;top:0;width:640px;height:640px;margin:-320px 0 0 -320px;border-radius:50%;pointer-events:none;z-index:0;opacity:0;background:radial-gradient(closest-side,color-mix(in srgb,var(--acc) 16%,transparent),transparent);transition:opacity .5s var(--eo);will-change:transform}
.sec.fx-lit .fx-glow{opacity:1}
/* sześć kroków: licznik postępu jak ekran ładowania */
.ld{display:flex;align-items:center;gap:16px;margin:0 0 28px;color:var(--dk-mute)}
.ld .nw{display:block;height:1.05em;overflow:hidden;font:400 clamp(56px,7vw,96px)/1.05 var(--serif);color:var(--dk-ink,#fff);font-variant-numeric:tabular-nums}
.ld .col{display:block;transition:transform .6s var(--eo)}
.ld .col b{display:block;font-weight:400;height:1.05em}
.ld .of{font:600 15px/1 var(--sans);letter-spacing:.04em}
.ld .bar{flex:1;height:2px;background:var(--dk-line);position:relative;overflow:hidden;min-width:60px}
.ld .bar i{position:absolute;inset:0;background:var(--dk-acc);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--eo)}
.fx .steps li{opacity:.42;transition:opacity .5s var(--eo)}
.fx .steps li.is-on{opacity:1}
.fx .steps li .tt{transform:translate3d(-14px,0,0);transition:transform .6s var(--eo)}
.fx .steps li.is-on .tt{transform:none}
/* w cenie: warstwy 3D */
.fx .incl-grid{perspective:1100px}
.fx .incl-l,.fx .incl-r{transform-style:preserve-3d;will-change:transform}
.fx .incl li{opacity:0;transform:translate3d(0,18px,0);transition:opacity .6s var(--eo),transform .6s var(--eo)}
.fx .incl.fx-in li{opacity:1;transform:none}
.incl .ic path{stroke-dasharray:30;stroke-dashoffset:30;transition:stroke-dashoffset .7s var(--eo) .2s}
.incl.fx-in .ic path{stroke-dashoffset:0}
/* ceny: subtelny pasek i przesuw przy przewijaniu */
.rows li .pbar{position:absolute;left:0;bottom:0;height:2px;width:100%;transform:scaleX(0);transform-origin:left;background:var(--acc);opacity:.7;transition:transform 1.1s var(--eo)}
.rows li.fx-in .pbar{transform:scaleX(var(--w,.1))}
.rows li .rp,.rows li .rn{will-change:transform}
/* dla kogo: grafiki warstwowe w kartach */
.path{position:relative}
.path .art{position:absolute;right:0;top:12px;width:42%;aspect-ratio:1;pointer-events:none;z-index:0}
.path .art i{position:absolute;display:block;border:1.5px solid var(--acc);border-radius:50%;will-change:transform}
.path .art i:nth-child(1){inset:0;opacity:.35}
.path .art i:nth-child(2){inset:22%;opacity:.55}
.path .art i:nth-child(3){inset:44%;background:var(--acc);opacity:.85}
.path>*:not(.art){position:relative;z-index:1}
@media (prefers-reduced-motion:reduce){.fx .steps li,.fx .incl li{opacity:1;transform:none;transition:none}.incl .ic path{stroke-dashoffset:0}.rows li .pbar{transform:scaleX(var(--w,.1));transition:none}.fx-glow{display:none}}
@media (max-width:620px){.path .art{width:30%}.fx-glow{display:none}}

/* ===== FX2 8.10: warstwy paneli, rysowane kreski, ilustracje cen, linie kolumn, panel tak/nie, fale pod kursorem, kursor-pierścień ===== */
.sc{fill:none;stroke:var(--acc);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.2s var(--eo) .3s;vector-effect:non-scaling-stroke}
.fx-in>.sc,.fx-in .sc,.sc.fx-in{stroke-dashoffset:0}
/* W cenie: panele o różnych prędkościach, ogromna cyfra, pionowy podpis */
#w-cenie .incl-grid{position:relative}
.pl{position:absolute;inset:0;pointer-events:none;z-index:0}
.pl i{position:absolute;display:block;will-change:transform}
.pl i:nth-child(1){left:0;top:max(48px,14%);width:34%;height:52%;background:color-mix(in srgb,var(--acc) 12%,transparent)}
.pl i:nth-child(2){right:6%;top:48px;width:26%;height:38%;background:color-mix(in srgb,var(--acc) 7%,transparent)}
.pl i:nth-child(3){left:30%;bottom:48px;width:22%;height:34%;border:1.5px solid color-mix(in srgb,var(--acc) 40%,transparent)}
.pl b{position:absolute;left:1%;bottom:48px;font:400 clamp(180px,24vw,360px)/.8 var(--serif);color:transparent;-webkit-text-stroke:1.5px color-mix(in srgb,var(--acc) 45%,transparent);will-change:transform}
.pl s{position:absolute;left:-2px;top:40px;writing-mode:vertical-rl;transform:rotate(180deg);text-decoration:none;font:600 12px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--mute)}
#w-cenie .incl-grid>*:not(.pl){position:relative;z-index:1}
#w-cenie h2 em{position:relative;white-space:nowrap}
#w-cenie h2 .sk,#dla-kogo .pprice .sk{position:absolute;left:-4%;width:108%;overflow:visible;pointer-events:none}
#w-cenie h2 .sk{bottom:-14px;height:18px}
.pprice{position:relative}
#dla-kogo .pprice .sk{left:-10%;top:-12%;width:120%;height:124%}
/* Dla kogo: cienkie duże hasła */
#dla-kogo .path h3{font-weight:300;font-size:clamp(32px,3.5vw,46px);letter-spacing:-.01em}
/* Ceny: ilustracje liniowe */
.rows li .ill{position:absolute;right:250px;top:50%;width:72px;height:56px;margin-top:-28px;pointer-events:none;opacity:.55;will-change:transform}
.rows li .ill svg{width:100%;height:100%;display:block;overflow:visible}
.rows li .ill path,.rows li .ill circle,.rows li .ill rect{fill:none;stroke:var(--acc);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.1s var(--eo) .2s}
.rows li.fx-in .ill path,.rows li.fx-in .ill circle,.rows li.fx-in .ill rect{stroke-dashoffset:0}
.rows li .pbar{display:none}
@media (max-width:1100px){.rows li .ill{display:none}}
/* Sześć kroków: linie kolumn i panel tak/nie */
.fx .steps{background-image:linear-gradient(to right,var(--dk-line) 1px,transparent 1px);background-size:25% 100%;background-position:68px 0;background-repeat:repeat-x}
.fork{display:grid;grid-template-columns:1fr 1fr;margin-top:16px;max-width:560px}
.fork span{padding:14px 18px;font:600 15px/1.3 var(--sans);display:block;transform:translate3d(0,10px,0);opacity:0;transition:transform .6s var(--eo),opacity .6s var(--eo)}
.fork .y{background:var(--dk-acc);color:var(--dk-on)}
.fork .n{background:color-mix(in srgb,var(--dk-ink,#fff) 12%,transparent);color:var(--dk-ink,#fff);transition-delay:.12s}
li.is-on .fork span{transform:none;opacity:1}
/* fale pod kursorem i kursor-pierścień */
.rip{position:absolute;left:0;top:0;width:90px;height:90px;margin:-45px 0 0 -45px;border-radius:50%;border:1.5px solid var(--acc);pointer-events:none;z-index:0;opacity:0;animation:rip 1.6s var(--eo) forwards}
@keyframes rip{0%{opacity:.5;transform:translate3d(var(--x),var(--y),0) scale(.2)}100%{opacity:0;transform:translate3d(var(--x),var(--y),0) scale(3.4)}}
.fx-ring{position:fixed;left:0;top:0;width:36px;height:36px;margin:-18px 0 0 -18px;border:1.5px solid var(--acc);border-radius:50%;pointer-events:none;z-index:60;opacity:0;transition:opacity .3s var(--eo);will-change:transform}
.fx-ring.on{opacity:.8}
@media (prefers-reduced-motion:reduce){.sc,.rows li .ill path,.rows li .ill circle,.rows li .ill rect{stroke-dashoffset:0;transition:none}.fork span{opacity:1;transform:none}.rip,.fx-ring{display:none}}
@media (max-width:620px){.pl s{display:none}.pl b{font-size:150px}.fork{grid-template-columns:1fr}.fx-ring{display:none}}

/* FX3: porządek paneli w „W cenie” (cyfra i panele w wolnym miejscu pod lewą kolumną) */
#w-cenie .incl-l{padding-bottom:104px}
.pl i:nth-child(1){left:22%;top:auto;bottom:24px;width:30%;height:76px}
.pl i:nth-child(2){right:2%;top:24px;width:20%;height:30%}
.pl i:nth-child(3){left:2%;top:auto;bottom:24px;width:14%;height:70px}
.pl b{left:44px;bottom:18px;font-size:clamp(84px,7.6vw,110px);line-height:1;height:1em;display:block}
.pl s{left:0;top:auto;bottom:16px}
@media (max-width:900px){#w-cenie .incl-l{padding-bottom:0}#w-cenie .incl-r{padding-bottom:150px}.pl b{font-size:110px}}

/* ===== logo klientów zamiast kroju w tytułach realizacji; stopka ciemna ===== */
.ctitle h3 .clogo{display:block;width:auto}
.ctitle h3 .cl-spin{height:26px}.ctitle h3 .cl-iapply{height:32px}.ctitle h3 .cl-stroiki{height:58px}
.ctitle{align-items:center;min-height:60px}
.foot{--logo-a:#1A1330;--logo-mi:#1A1330;--logo-com:#1A1330}
.foot .op,.foot .op .iapply-znak,.foot .op .iapply-znak-link{color:#1A1330}
.fprod{list-style:none;margin:20px 0 0;padding:0;display:flex;gap:28px;align-items:center;flex-wrap:wrap}
.fprod a{display:inline-flex;align-items:center;min-height:44px}
.fprod img{height:22px;width:auto;display:block}
.fprod li:last-child img{height:26px}

/* ===== FX4: scena w wolnym miejscu przy „Sześć kroków” (okno strony, które buduje się z kolejnymi krokami) ===== */
.steps{position:relative}
.sart{position:absolute;left:41%;width:27%;top:210px;bottom:0;pointer-events:none;z-index:0}
.sart .stick{position:sticky;top:calc(50vh - 140px);width:100%}
.sart svg{display:block;width:100%;height:auto;overflow:visible}
.sa{fill:none;stroke:var(--dk-ink,#fff);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1;opacity:.75;transition:stroke-dashoffset .9s var(--eo),opacity .5s var(--eo)}
.sa.ac{stroke:var(--dk-acc)}
.sa.fl{fill:var(--dk-acc);stroke:none;stroke-dasharray:none;stroke-dashoffset:0;opacity:0;transition:opacity .6s var(--eo)}
.sa.frame{stroke-dashoffset:0;opacity:.45}
.sa.on{stroke-dashoffset:0}
.sa.fl.on{opacity:.9}
.sa.fl.soft.on{opacity:.16}
.sart .caret{fill:var(--dk-acc);opacity:0;transition:opacity .4s}
.sart .caret.on{opacity:1;animation:caret 1.1s steps(1) infinite}
@keyframes caret{50%{opacity:0}}
.sart .live{fill:var(--dk-acc);opacity:0;transition:opacity .4s}
.sart .live.on{opacity:1}
.sart .pulse{fill:none;stroke:var(--dk-acc);stroke-width:1.5;opacity:0;transform-origin:318px 34px;vector-effect:non-scaling-stroke}
.sart .pulse.on{animation:pls 2.2s var(--eo) infinite}
@keyframes pls{0%{opacity:.7;transform:scale(1)}100%{opacity:0;transform:scale(3.2)}}
@media (max-width:900px){.sart{display:none}}
@media (prefers-reduced-motion:reduce){.sa{stroke-dashoffset:0;transition:none}.sa.fl{opacity:.9;transition:none}.sa.fl.soft{opacity:.16}.sart .caret,.sart .live{opacity:1;animation:none}.sart .pulse{display:none}}

.sa.fl.bgf{fill:var(--dk)}
.sa.fl.bgf.on{opacity:1}

/* pętla: linie bez kierunku (kulka może iść w każdą stronę) */
.ah{display:none}
.mech .heart .ed:not(.no),#landing .still-st .ed:not(.no),.ed:not(.no){animation:none;stroke-dasharray:5 4}
#landing .ldot{transition:none}

/* stopka: „mi” w kolorze, płynnie zmieniającym się (reszta logo ciemna) */
.foot{--logo-mi:#FFE27A}
.foot .brand .lm{animation:mi-col 12s ease-in-out infinite}
@keyframes mi-col{0%,100%{fill:#FFE27A;stroke:#FFE27A}25%{fill:#9BF0E0;stroke:#9BF0E0}50%{fill:#FFC2E0;stroke:#FFC2E0}75%{fill:#CDBDFF;stroke:#CDBDFF}}
@media (prefers-reduced-motion:reduce){.foot .brand .lm{animation:none;fill:#FFE27A;stroke:#FFE27A}}

.foot .op .iapply-logo-link{display:inline-flex;align-items:center;min-height:44px}
.foot .op img{height:24px;width:auto;display:block}

/* stopka: kolumny o równej wysokości, nawigacja w dwóch kolumnach */
.foot-grid{grid-template-columns:1.2fr 1fr 1fr 1.2fr;align-items:start}
.foot .f4 ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 24px;list-style:none;margin:0;padding:0}
.foot .f4 li a{min-height:44px}
.foot .f1 p{max-width:30ch}
@media (max-width:900px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.foot-grid{grid-template-columns:1fr}}

/* ===== stopka efektowna: gigantyczne logo odsłaniane przy wejściu, obracający się kółkiem z przewijaniem ząb ===== */
.foot{overflow:clip}
.foot-big{position:relative;margin-top:40px;padding-top:8px}
.foot-big .lg{position:relative;z-index:1;display:block;width:100%;height:auto;aspect-ratio:555/106.5;clip-path:inset(0 0 100% 0);transform:translate3d(0,26px,0);transition:clip-path 1.3s var(--eo),transform 1.3s var(--eo);will-change:transform}
.foot-big.in .lg{clip-path:inset(0 0 -20% 0);transform:none}
.foot-big .lg .la,.foot-big .lg .lc{fill:#1A1330}
.foot-big .lg .lm{fill:#FFE27A;stroke:#FFE27A;animation:mi-col 12s ease-in-out infinite}
.fgear{position:absolute;right:-6%;top:-70%;width:min(46vw,560px);height:auto;z-index:0;pointer-events:none;overflow:visible;will-change:transform}
.fgear path,.fgear circle{fill:none;stroke:#1A1330;stroke-opacity:.28;stroke-width:1.5;vector-effect:non-scaling-stroke;stroke-linejoin:round}
@media (prefers-reduced-motion:reduce){.foot-big .lg{clip-path:none;transform:none;transition:none}.foot-big .lg .lm{animation:none}}
@media (max-width:620px){.fgear{width:70vw;top:-40%}}

/* ===== formularz: redakcyjny panel (numerowane pytania, linie zamiast ramek, równe przyciski wyboru) ===== */
.form{counter-reset:q;background:linear-gradient(140deg,color-mix(in srgb,var(--bg2) 90%,transparent) 0%,color-mix(in srgb,var(--acc) 20%,var(--bg2)) 100%);padding:clamp(28px,3.4vw,52px);box-shadow:none;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.form .stp{counter-increment:q;margin:0 0 40px;padding:0}
.form .stp:last-of-type{margin-bottom:0}
.form .wq{display:block;font:400 clamp(26px,2.4vw,34px)/1.12 var(--serif);letter-spacing:-.005em;margin:0 0 20px;padding:0}
.form .wq::before{content:"0" counter(q);display:block;margin-bottom:10px;font:600 13px/1 var(--sans);letter-spacing:.14em;color:var(--acc)}
html.js .form .chips,.form .chips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.form .chip{min-height:56px;padding:0 16px;background:color-mix(in srgb,var(--ink) 7%,transparent);color:var(--ink);font:500 16px/1.2 var(--sans);text-align:left;display:flex;align-items:center;justify-content:space-between;gap:10px;transition:background .3s var(--eo),color .3s var(--eo),transform .3s var(--eo)}
.form .chip::after{content:"";width:16px;height:16px;flex:none;border-radius:50%;border:1.5px solid color-mix(in srgb,var(--ink) 45%,transparent);transition:background .3s var(--eo),border-color .3s var(--eo)}
.form .chip:hover{background:color-mix(in srgb,var(--acc) 30%,transparent);color:var(--ink);transform:translateY(-2px)}
.form .chip[aria-checked=true]{background:var(--acc);color:var(--on-acc)}
.form .chip[aria-checked=true]::after{background:var(--on-acc);border-color:var(--on-acc)}
.form .fld{margin:0 0 22px}
.form label{font:600 12.5px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--mute);margin:0 0 4px}
.form .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.form input,.form textarea,.form select{background:transparent;border:0;border-bottom:1px solid color-mix(in srgb,var(--ink) 38%,transparent);padding:14px 0;min-height:56px;font:400 19px/1.4 var(--sans);transition:border-color .3s var(--eo),box-shadow .3s var(--eo)}
.form textarea{min-height:104px;resize:none}
.form input:focus,.form textarea:focus{outline:0;border-bottom-color:var(--acc);box-shadow:0 1px 0 0 var(--acc)}
.form input::placeholder,.form textarea::placeholder{color:color-mix(in srgb,var(--ink) 48%,transparent);opacity:1}
.form .note{font-size:14.5px;line-height:1.5;color:var(--mute);margin:6px 0 24px;max-width:44ch}
.form .f-actions{gap:12px 32px}
.form .stat{background:color-mix(in srgb,var(--bg) 70%,transparent)}
@media (max-width:760px){.form .chips{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:420px){.form .chips{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.form .chip,.form input,.form textarea{transition:none}}

/* wybór usługi: duże, płaskie kafle w kolorach cen (inspiracja: kolorowe bloki wyboru z Cocota, bez zaokrągleń) */
.form .chips{gap:12px}
.form .chip{--c:var(--p1);min-height:92px;padding:16px 18px;align-items:flex-start;flex-direction:column;justify-content:space-between;background:color-mix(in srgb,var(--c) 14%,transparent);color:var(--ink);font:400 clamp(19px,1.7vw,23px)/1.15 var(--serif)}
.form .chip[data-v="sklep"],.form .chip[data-v="auto"]{--c:var(--p2)}
.form .chip[data-v="app"]{--c:var(--p3)}
.form .chip[data-v="social"]{--c:var(--p1)}
.form .chip[data-v="inne"]{--c:var(--mute)}
.form .chip::after{content:"↗";width:auto;height:auto;border:0;border-radius:0;align-self:flex-end;font:500 20px/1 var(--sans);color:var(--c);transition:transform .3s var(--eo),color .3s var(--eo)}
.form .chip:hover{background:color-mix(in srgb,var(--c) 34%,transparent);transform:translateY(-3px)}
.form .chip:hover::after{transform:translate(3px,-3px)}
.form .chip[aria-checked=true]{background:var(--c);color:#1A1330}
.form .chip[aria-checked=true]::after{content:"✓";color:#1A1330;background:transparent;border:0}
@media (max-width:420px){.form .chip{min-height:72px;flex-direction:row;align-items:center}.form .chip::after{align-self:center}}

/* formularz: zwarty (mniej wysokości) */
.form{padding:clamp(22px,2.4vw,34px)}
.form .stp{margin:0 0 22px}
.form .wq{font-size:clamp(21px,1.7vw,25px);line-height:1.15;margin:0 0 12px}
.form .wq::before{display:inline;margin:0 12px 0 0;vertical-align:.18em}
.form .chips{gap:8px}
.form .chip{min-height:66px;padding:10px 14px;font-size:clamp(17px,1.4vw,20px)}
.form .chip::after{font-size:17px}
.form .fld{margin:0 0 12px}
.form label{margin:0}
.form input,.form textarea{min-height:46px;padding:10px 0;font-size:17px}
.form textarea{min-height:72px}
.form .note{margin:2px 0 16px;font-size:14px}
.form .f-actions .btn{min-height:52px}
@media (max-width:420px){.form .chip{min-height:56px}}
.form textarea{height:84px}

/* stopka: koło zębate ma środek w czarnym „o” logo; „mi” płynnie zmienia kolor (zmienna, bo logo to <use>) */
@property --logo-mi{syntax:'<color>';inherits:true;initial-value:#FFE27A}
.foot{animation:mi-var 12s ease-in-out infinite}
@keyframes mi-var{0%,100%{--logo-mi:#FFE27A}25%{--logo-mi:#8CF0DC}50%{--logo-mi:#FFA9D6}75%{--logo-mi:#BFB0FF}}
.fgear{--gw:34%;left:86.3%;top:63%;width:var(--gw);margin:calc(var(--gw) / -2) 0 0 calc(var(--gw) / -2);right:auto}
.fgear path,.fgear circle{stroke-opacity:.5}
@media (prefers-reduced-motion:reduce){.foot{animation:none}}
@media (max-width:620px){.fgear{--gw:46%}}

/* wyróżnienia kursywą szeryfową: grubsze i czytelniejsze (kontur w kolorze litery) */
h2 em,.path h3 em{-webkit-text-stroke:.9px currentColor;paint-order:stroke fill;font-weight:400}
.path:nth-child(2) h3 em{color:color-mix(in srgb,var(--p2) 72%,#fff)}
.path:nth-child(1) h3 em{color:color-mix(in srgb,var(--p1) 78%,#fff)}
.path h3 em{background:none}
.path:nth-child(3) h3 em{-webkit-text-stroke:0}

/* mniej zbędnych łamań: opisy w jednym wierszu, gdy się mieszczą; krótsze nagłówki kart bez sztucznych dwóch linii */
.aitem p{max-width:62ch;text-wrap:balance}
.path h3{min-height:0;text-wrap:balance}
.path p{text-wrap:pretty}
.auto-right .pa,.soc-l .pa{max-width:52ch}
.hero .lead{max-width:40ch}
.big{max-width:40ch}
.path:nth-child(2) h3 em{box-shadow:none;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.16em}

/* pętla: kulka wpada do „łuzy” (przyspiesza, zapada się w punkcie, punkt błyska) */
.loopg .nd.drop{transform-box:fill-box;transform-origin:center;animation:pocket .55s var(--eo)}
@keyframes pocket{0%{transform:scale(1)}30%{transform:scale(1.9);stroke-width:2.4}100%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.loopg .nd.drop{animation:none}}

/* stopka v2: nagłówki w jednej linii (logo jak tytuły kolumn), treść w drugim wierszu, linki prawne wyśrodkowane na samym dole */
.foot .brand{display:block;margin:0 0 12px;line-height:1}
.foot .brand .lg{height:17px;width:auto}
.foot-grid{grid-template-columns:1.2fr 1fr 1fr 1.3fr;gap:0 48px;align-items:start}
.foot .f1 p{margin:0}
.foot .f2 p,.foot .f3 p{margin:0 0 4px}
.foot .f4 ul{grid-template-columns:repeat(3,auto);grid-auto-flow:row;justify-content:start;gap:2px 28px}
.foot .f4 li a{min-height:44px}
.foot .op{display:block}
.foot-legal{display:flex;justify-content:center;gap:8px 28px;flex-wrap:wrap;margin:0 auto;padding:28px 0 8px;list-style:none;border-top:0}
.foot-big{margin-top:28px}
@media (max-width:900px){.foot-grid{grid-template-columns:1fr 1fr;gap:28px 40px}.foot .f4 ul{grid-template-columns:repeat(2,auto)}}
@media (max-width:560px){.foot-grid{grid-template-columns:1fr}}
.foot .brand .lg{height:22px}
.foot .op,.foot .op a{color:var(--ink)}
.foot-legal{padding-bottom:0}
.form textarea{height:auto;min-height:46px;overflow:hidden;resize:none;transition:height .2s var(--eo)}

/* duże logo: litery „zbuduj” zmieniają wielkość losowo */
.foot-big .lgbig{overflow:visible}
.foot-big .lgbig .ltr{transform-box:fill-box;transform-origin:50% 100%;transition:transform .9s cubic-bezier(.34,1.56,.64,1)}
@media (prefers-reduced-motion:reduce){.foot-big .lgbig .ltr{transition:none}}
.foot-big{padding-top:28px}

/* stopka v3: jeden wiersz - zbudujmi + opis | menu na środku (2 wiersze) | iapply.pl + kontakt i adres (2 wiersze) */
.foot-grid{grid-template-columns:1fr auto 1fr;gap:0 48px;align-items:start}
.foot .f1 p,.foot .f5 p{font-size:16px;line-height:1.5;color:var(--mute);margin:0;max-width:none}
.foot .f1 p{margin-top:0}
.foot .f5{justify-self:end;text-align:left}
.foot .f5 p a{color:inherit;text-decoration:underline;text-underline-offset:4px}
.foot .fiap{display:inline-flex;align-items:center;min-height:22px;margin:0 0 12px}
.foot .fiap img{height:22px;width:auto;display:block}
.foot .brand{margin:0 0 12px}
.foot .fnav ul{display:grid;grid-template-columns:repeat(3,auto);grid-auto-flow:row;gap:6px 36px;justify-content:center;text-align:center;margin:0;padding:0;list-style:none}
.foot .fnav li a{min-height:44px;font-size:16px;justify-content:center}
@media (max-width:1000px){.foot-grid{grid-template-columns:1fr 1fr;gap:28px 40px}.foot .fnav{grid-column:1/-1;order:3}.foot .f5{justify-self:start}}
@media (max-width:560px){.foot-grid{grid-template-columns:1fr}.foot .fnav ul{grid-template-columns:repeat(2,auto)}}
.foot .fnav ul{grid-template-columns:repeat(3,136px);gap:0 8px}
.foot .fiap img{height:26px}
.foot .fiap{min-height:26px}
@media (max-width:560px){.foot .fnav ul{grid-template-columns:repeat(2,136px)}}
.foot .f1 p{white-space:nowrap}@media (max-width:560px){.foot .f1 p{white-space:normal}}

/* stopka: lustrzane odbicie - zbudujmi (lewo) i iapply (prawo), loga tej samej wielkości, teksty na równych wierszach */
.foot .brand,.foot .fiap{height:34px;margin:0 0 12px;display:flex;align-items:center}
.foot .brand .lg{height:24px}
.foot .fiap{justify-content:flex-end}
.foot .fiap img{height:34px}
.foot .f5{justify-self:end;text-align:right}
.foot .f1 p,.foot .f5 p{line-height:27px;font-size:16px}
@media (max-width:1000px){.foot .f5{justify-self:start;text-align:left}.foot .fiap{justify-content:flex-start}}
.foot-big .lgbig .ltr{transition:transform .65s cubic-bezier(.34,1.56,.64,1)}
.foot-big .lgbig .ltr{transition:transform 1.6s cubic-bezier(.45,.05,.25,1)}

/* okrągła tarcza w środku zębatki lekko się przesuwa w jej wnętrzu */
.loopg .in,.loopg .sin{transform-box:view-box;animation:indrift 9s ease-in-out infinite alternate}
.loopg .sin{animation-duration:7s}
@keyframes indrift{0%{transform:translate(-2.6px,1.4px)}50%{transform:translate(2.2px,-1.8px)}100%{transform:translate(1.2px,2.6px)}}
@media (prefers-reduced-motion:reduce){.loopg .in,.loopg .sin{animation:none}}

.sa.th{stroke-width:3.5}
.sart .pulse{transform-origin:318px 30px}
.sa.fl.soft{fill:var(--dk-acc)}

/* „hula-hop”: okrąg wpisany w zębatkę krąży w jej wnętrzu (zębatka i punkty stoją) */
.loopg .in,.loopg .sin{--o:7px;transform-box:fill-box;transform-origin:center;animation:hoop 6s linear infinite}
.loopg .sin{--o:2.4px;animation-duration:5s}
@keyframes hoop{
 0%{transform:translate(var(--o),0)}
 12.5%{transform:translate(calc(var(--o)*.707),calc(var(--o)*.707))}
 25%{transform:translate(0,var(--o))}
 37.5%{transform:translate(calc(var(--o)*-.707),calc(var(--o)*.707))}
 50%{transform:translate(calc(var(--o)*-1),0)}
 62.5%{transform:translate(calc(var(--o)*-.707),calc(var(--o)*-.707))}
 75%{transform:translate(0,calc(var(--o)*-1))}
 87.5%{transform:translate(calc(var(--o)*.707),calc(var(--o)*-.707))}
 100%{transform:translate(var(--o),0)}}
@media (prefers-reduced-motion:reduce){.loopg .in,.loopg .sin{animation:none}}
.path h3{font-size:clamp(26px,2.45vw,35px);white-space:nowrap;text-wrap:initial}
#dla-kogo .path h3{font-size:clamp(26px,2.45vw,35px);white-space:nowrap;line-height:1.15}

/* stopka v4: trzy boksy, menu wyśrodkowane, bez podkreśleń w kontakcie, podtytuły na wspólnych liniach */
.foot-grid{grid-template-columns:1fr 1fr 1fr;align-items:start}
.foot .f1{justify-self:start}
.foot .fnav{justify-self:center}
.foot .f5{justify-self:end}
.foot .f5 p a,.foot .f5 p a:hover{text-decoration:none}
.foot .fnav li a{text-decoration:none}
.foot .fnav li a:hover{text-decoration:none;opacity:.75}
.foot .fnav ul{gap:0 8px;grid-template-rows:repeat(2,27px);align-items:center}
.foot .fnav li a{min-height:27px}
.foot .brand,.foot .fiap{height:34px;margin:0 0 12px}
.foot .f1 p,.foot .f5 p{line-height:27px;margin:0;height:27px;white-space:nowrap}
.foot .fnav{padding-top:46px}
@media (max-width:1000px){.foot-grid{grid-template-columns:1fr 1fr}.foot .fnav{padding-top:0}.foot .f5 p,.foot .f1 p{height:auto;white-space:normal}}
@media (max-width:560px){.foot-grid{grid-template-columns:1fr}}
.foot .fnav{padding-top:6px}
.foot .fnav ul{grid-template-rows:repeat(2,44px);gap:0 8px}
.foot .fnav li a{min-height:44px}
.foot-big .lgbig .ltr{transition-property:transform;transition-timing-function:cubic-bezier(.45,.05,.25,1)}
@media (max-width:620px){.fgear{--gw:39%}}
.loopg .in{--o:5px}.loopg .sin{--o:1.8px}

/* stopka v5: wspólna siatka wierszy - podtytuły lewy/środkowy/prawy w tych samych dwóch liniach */
@media (min-width:1001px){
 .foot-grid{grid-template-columns:1fr auto 1fr;grid-template-rows:34px 12px 27px 27px;gap:0 48px;align-items:center}
 .foot .f1,.foot .f5{display:contents}
 .foot .f1 .brand{grid-column:1;grid-row:1;margin:0;justify-self:start;height:34px}
 .foot .f1 p{grid-column:1;grid-row:3 / span 2;align-self:start;height:54px;line-height:27px;margin:0;white-space:nowrap}
 .foot .fnav{grid-column:2;grid-row:3 / span 2;padding-top:0;align-self:start;justify-self:center}
 .foot .fnav ul{grid-template-rows:repeat(2,27px);gap:0 8px;align-items:center}
 .foot .fnav li a{min-height:27px;padding:8px 0;margin:-8px 0}
 .foot .f5 .fiap{grid-column:3;grid-row:1;justify-self:end;margin:0;height:34px}
 .foot .f5 p{grid-column:3;justify-self:end;margin:0;height:27px;line-height:27px;white-space:nowrap}
 .foot .f5 .fiap + p{grid-row:3}
 .foot .f5 .fiap + p + p{grid-row:4}
}

/* ===== MOBILKA (<=620 px): szlif każdej sekcji ===== */
@media (max-width:620px){
 /* hero i linki: cele dotykowe min. 44 px */
 .hero .marks a,.hero .marks li a{display:inline-flex;align-items:center;min-height:44px}
 .mail{min-height:44px;display:inline-flex;align-items:center}
 .pend a{display:inline-flex;align-items:center;min-height:44px}
 .legal-links a,.foot-legal a{min-height:44px;display:inline-flex;align-items:center}
 .foot-legal{gap:0 20px}
 /* automatyzacje: scena nad listą, lista na całą szerokość */
 .auto-grid{display:flex!important;flex-direction:column;gap:20px}
 .auto-stage{position:relative!important;top:auto!important;width:100%;aspect-ratio:16/10}
 .auto-right{width:100%}
 .aitem{padding:28px 0}
 .aitem p{max-width:none}
 /* social: kolumny jedna pod drugą */
 .soc-grid{display:flex!important;flex-direction:column;gap:28px}
 .soc-l .pa{max-width:none}
 /* kroki: bez pionowych linii kolumn, scena ukryta */
 .fx .steps{background-image:none}
 .steps .more{padding-left:68px;max-width:none}
 .ld .nw{font-size:64px}
 /* w cenie: bez paneli tła, czytelna lista */
 .pl{display:none}
 #w-cenie .incl-l,#w-cenie .incl-r{padding-bottom:0}
 .incl li{font-size:17px}
 /* ceny: ilustracje schowane, pasek cen czytelny */
 .rows summary{grid-template-columns:28px minmax(0,1fr) 24px;row-gap:2px}
 /* stopka: wszystko do lewej, jedno pod drugim */
 .foot-grid{grid-template-columns:1fr!important;gap:28px!important;justify-items:start}
 .foot .f1,.foot .f5,.foot .fnav{justify-self:start!important;text-align:left!important}
 .foot .fiap{justify-content:flex-start!important}
 .foot .f5 p,.foot .f1 p{height:auto!important;white-space:normal!important;line-height:1.55}
 .foot .fnav ul{grid-template-columns:repeat(2,minmax(0,1fr))!important;justify-content:start!important;text-align:left!important;width:100%}
 .foot .fnav li a{justify-content:flex-start!important;min-height:44px}
 .foot .f5 p a{display:inline-flex;align-items:center;min-height:44px}
 .foot-big{margin-top:12px}
 .fgear{--gw:78%!important}
 /* formularz: kafle w jednej kolumnie, padding mniejszy */
 .form{padding:20px 16px}
}
@media (max-width:620px){
 .foot-legal li a,.foot .legal-links a{min-height:44px!important;display:inline-flex!important;align-items:center}
 .foot .fnav li a{min-width:44px}
 .foot .fiap{min-height:44px;height:auto}
}
@media (max-width:620px){
 html.js .form .chips,.form .chips{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px}
 .form .chip{min-height:64px;padding:10px 12px;font-size:17px;flex-direction:row;align-items:center}
 .form .chip::after{align-self:center;margin-left:6px}
 .form .wq{font-size:22px}
}

/* loga klientów w kartach: jednakowa wysokość */
.ctitle h3 .clogo{height:44px!important;width:auto}
.ctitle{min-height:60px}

/* loga jako zwykłe inline SVG (bez <use>): jednakowo w każdej przeglądarce */
.foot .brand .lgin{height:24px;width:auto;aspect-ratio:555/106.5;display:block}
.foot .brand .lgin .la,.foot .brand .lgin .lc{fill:#1A1330;stroke:none}
.foot .brand .lgin .lm{fill:#FFE27A;stroke:#FFE27A;stroke-width:7;stroke-linejoin:round;paint-order:stroke;animation:mi-col 12s ease-in-out infinite}
.fiap .iap-svg{height:34px;width:auto;aspect-ratio:236/88;display:block}
.ctitle h3 .cl-iapply{height:44px!important;width:auto;aspect-ratio:236/88}
.ctitle h3{display:flex;align-items:center}
.hero .lead .ul{font-weight:700}

/* social: stała wysokość pola (bez skoków przy rozszerzaniu), reakcja na całe pole */
.ws-wrap{overflow:visible}
.ws-wrap:hover .ws,.ws-wrap:focus-within .ws{word-spacing:.2em}
.ws-wrap:hover .ws .nz,.ws-wrap:focus-within .ws .nz{opacity:.14;font-size:.3em;filter:blur(1px)}
.ws-wrap:hover .ws .ky,.ws-wrap:focus-within .ws .ky{text-decoration-color:var(--acc)}

/* menu: czytelny przycisk, ENG, mail na wysokości kolumny strzałek */
.menu .m-foot .btn{color:#F4F0FF;background:linear-gradient(90deg,#1B1530 0,#1B1530 calc(100% - 84px),var(--acc) calc(100% - 52px))}
.menu .m-foot .btn:hover{color:var(--on-acc)}
.m-foot .m-mail{margin-left:auto;margin-right:20px}
.m-foot{align-items:center}
@media (max-width:700px){.m-foot .m-mail{margin-left:0;margin-right:0}}
@media (max-width:900px){#landing,.contact-l .still.end{display:none!important}.contact-l{align-self:auto}}

/* formularz: pułapka na boty (poza ekranem) i miejsce na Turnstile */
.hpw{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.ts-box:empty{display:none}
.ts-box{margin:4px 0 14px;min-height:65px}
.foot-legal{position:relative;z-index:3}.foot-legal a{position:relative}.foot .foot-big{z-index:1}.foot-grid{position:relative;z-index:2}

/* Turnstile: mały, w wolnym miejscu po prawej od „Kopiuj treść” */
.f-actions .ts-box{margin:0 0 0 auto;width:216px;height:47px;min-height:0;flex:none}
.f-actions .ts-box>*{transform:scale(.72);transform-origin:left top}
@media (max-width:620px){.f-actions .ts-box{margin:6px 0 0;width:255px;height:55px}.f-actions .ts-box>*{transform:scale(.85)}}

/* Turnstile: w jednym rzędzie z przyciskiem wysyłki, wycentrowany względem niego; linki pod spodem */
.f-actions .btn{order:1}.f-actions .ts-box{order:2}.f-actions .lnk{order:3}
@media (min-width:621px){.f-actions .ts-box{margin:0}}

/* znak iapply w stopce (10.10.2026): kwadratowy znak „ia” z zamianą liter */
.foot .fiap{min-height:44px}
.foot .fiap .iapply-znak{font-size:15px}
.foot .fiap .iap-t{display:inline}
.slim p{display:flex;flex-wrap:wrap;align-items:center;gap:0 8px}
.slim .iapply-znak-link{text-decoration:none}

/* podstrony marketingowe */
.pg{padding:32px 0 0}
.pg .crumb{font-size:15px;color:var(--mute);margin-bottom:24px;display:flex;flex-wrap:wrap;gap:4px 10px}
.pg .crumb a{display:inline-flex;align-items:center;min-height:44px;text-underline-offset:4px}
.pg .crumb span[aria-hidden]{color:var(--mute)}
.pg h1 em,.pg h1 span{display:inline}
.pg h1{font-size:clamp(38px,4.8vw,66px);max-width:20ch;margin-bottom:24px;text-wrap:balance}
.pg-lead{font-size:20px;line-height:1.5;color:var(--mute);max-width:58ch}
.pg-price{display:flex;flex-wrap:wrap;align-items:center;gap:24px 40px;margin-top:40px}
.pg-price .pv{font:400 clamp(40px,4.4vw,58px)/1 var(--serif);color:var(--ink)}
.pg-price .pv small{display:block;font:500 15px/1.4 var(--sans);color:var(--mute);margin-top:8px}
.pg-sec{padding-top:var(--g)}
.pg-sec h2+*{margin-top:40px}
.pg-who{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 40px}
.pg-who li{font-size:17px;line-height:1.55;color:var(--mute);border-top:1px solid var(--line);padding-top:16px}
.pg-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px 64px;align-items:start}
.pg-list{display:grid;gap:0}
.pg-list li{display:flex;gap:14px;align-items:flex-start;padding:14px 0;border-top:1px solid var(--line);font-size:17px;line-height:1.45}
.pg-list li:last-child{border-bottom:1px solid var(--line)}
.pg-list .ic{flex:none;width:20px;height:20px;margin-top:2px;color:var(--acc)}
.pg-text p{font-size:17px;line-height:1.6;color:var(--mute);max-width:62ch}
.pg-text p+p{margin-top:16px}
.pg-h3,.pg-text h3{font:400 clamp(26px,2.6vw,32px)/1.15 var(--serif);margin-bottom:16px;color:var(--ink)}
.pg-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 32px;counter-reset:s}
.pg-steps li{border-top:1px solid var(--line);padding-top:16px;counter-increment:s;display:grid;grid-template-rows:auto auto 1fr;gap:8px}
.pg-steps li::before{content:"0" counter(s);font:600 15px var(--sans);color:var(--acc);font-variant-numeric:tabular-nums}
.pg-steps b{font:400 clamp(24px,2.2vw,28px)/1.15 var(--serif)}
.pg-steps span{font-size:16px;line-height:1.5;color:var(--mute)}
.pg-note{margin-top:24px;font-size:17px;color:var(--ink);max-width:84ch}
.ptab{display:grid;gap:0}
.ptab li{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.5fr) minmax(0,1fr) minmax(0,.9fr);gap:8px 24px;align-items:baseline;padding:18px 0;border-top:1px solid var(--line)}
.ptab li:last-child{border-bottom:1px solid var(--line)}
.ptab .pnm{font:400 clamp(22px,2vw,26px)/1.15 var(--serif)}
.ptab .pnm a{text-decoration:none}
.ptab .pnm a:hover{text-decoration:underline;text-underline-offset:5px}
.ptab .pd,.ptab .pt{font-size:16px;color:var(--mute)}
.ptab .pp{font:600 20px/1.2 var(--sans);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.ptab .pz{display:block;font:500 14px/1.35 var(--sans);color:var(--mute);margin-top:4px;white-space:normal}
.ptab .th{font:600 14px/1.2 var(--sans);color:var(--mute);padding:0 0 12px;border:0}
.ptab .th span:last-child{text-align:right}
.pg-rel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 40px}
.pg-rel li{border-top:1px solid var(--line);padding-top:16px;font-size:17px}
.pg-cta{display:flex;flex-wrap:wrap;gap:24px 40px;align-items:center;margin-top:40px}
.pg-foot{padding-top:calc(var(--g) - 13px);padding-bottom:40px}
.pg.pg-btn{margin-bottom:-14px}
.pg-foot .legal-links{margin-top:0}
.foot.pg-foot .op,.foot.pg-foot .op .iapply-znak,.foot.pg-foot .op .iapply-znak-link{color:var(--ink)}
.pg-foot .iapply-znak{--iap-t:var(--ink);--iap-pole:var(--ink)}
.pg-foot .op{display:flex;flex-wrap:wrap;align-items:center;gap:0 6px}
.pg-foot .fcols{display:flex;flex-wrap:wrap;gap:16px 48px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:24px;margin-bottom:8px}
.pg-foot .fcols p{color:var(--mute);font-size:16px}
@media (max-width:980px){.pg-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.pg-two{grid-template-columns:1fr}.ptab li{grid-template-columns:minmax(0,1fr) auto}.ptab .pd,.ptab .pt{grid-column:1/-1}.ptab .th{display:none}}
@media (max-width:760px){.pg{padding-top:28px;margin-bottom:-12px}.pg-who,.pg-rel{grid-template-columns:1fr}.pg-steps{grid-template-columns:1fr}.pg-lead{font-size:18px}.pg h1{max-width:none}}

/* etap B: narzędzia, blog, realizacje */
.pg-table{width:100%;border-collapse:collapse;font-size:16px;margin:8px 0 0}
.pg-table th{text-align:left;font:600 14px/1.3 var(--sans);color:var(--mute);padding:0 16px 12px 0;border-bottom:1px solid var(--line)}
.pg-table td{padding:14px 16px 14px 0;vertical-align:top;border-top:1px solid var(--line);color:var(--mute);line-height:1.5}
.pg-table td:first-child{font:400 22px/1.2 var(--serif);color:var(--ink)}
.tbw{overflow-x:auto}
@media (max-width:760px){.pg-table,.pg-table tbody,.pg-table tr,.pg-table td{display:block}.pg-table thead{display:none}.pg-table tr{border-top:1px solid var(--line);padding:16px 0}.pg-table td{border:0;padding:4px 0}.pg-table td:first-child{margin-bottom:4px}}
.blogart{max-width:760px;padding-bottom:0}
.blogart h2{font:400 clamp(28px,3vw,38px)/1.15 var(--serif);margin:56px 0 20px}
.blogart h2+*{margin-top:0!important}
.blogart>.art-meta+*{margin-top:0}
.blogart>h2:first-of-type{margin-top:40px}
.blogart p,.blogart li{font-size:18px;line-height:1.65;color:var(--mute)}
.blogart p{margin:0 0 16px}
.blogart ul,.blogart ol{margin:0 0 16px;padding-left:24px}
.blogart li{margin-bottom:8px}
.blogart .tbw{margin:24px 0}
.art-meta{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:15px;color:var(--mute);margin-top:24px}
.art-ai{margin-top:48px;font-size:15px;color:var(--mute);border-top:1px solid var(--line);padding-top:16px}
.gcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px}
.gcards li{display:grid;grid-template-rows:auto auto 1fr auto;gap:12px}
.gcards img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;background:var(--bg2)}
.gcards h3{font:400 clamp(26px,2.4vw,32px)/1.15 var(--serif)}
.gcards .ct{font:600 14px/1.2 var(--sans);color:var(--acc)}
.gcards p{font-size:16px;line-height:1.5;color:var(--mute)}
.posts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 40px}
.posts li{border-top:1px solid var(--line);padding-top:20px;display:grid;grid-template-rows:auto auto 1fr auto;gap:12px}
.posts h3{font:400 clamp(26px,2.6vw,34px)/1.15 var(--serif);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.posts h3 a{text-decoration:none}
.posts .pm2{font-size:14.5px;color:var(--mute)}
.posts p{font-size:16px;line-height:1.5;color:var(--mute)}
.kform{display:grid;gap:20px;max-width:640px}
.kform [hidden],.kres [hidden]{display:none!important}
.kform label,.auf label{display:grid;gap:8px;font:600 15px/1.3 var(--sans)}
.kform select,.auf input[type=text],.auf input[type=email]{font:400 17px var(--sans);min-height:48px;padding:0 12px;background:var(--bg2);color:var(--ink);border:1px solid var(--line);border-radius:0;width:100%}
.kform select:focus-visible,.auf input:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.kres{margin-top:40px;max-width:640px}
.kres .kv{font:400 clamp(36px,4vw,52px)/1.1 var(--serif);color:var(--ink);margin-bottom:12px}
.kres .kn{font-size:16px;line-height:1.5;color:var(--mute);margin-bottom:8px}
.kres ul{margin:16px 0 24px;padding:0}
.kres li{padding:10px 0;border-top:1px solid var(--line);font-size:16px}
.auf{display:grid;gap:20px;max-width:640px}
.auf .chk{display:flex;gap:12px;align-items:flex-start;font:400 15px/1.5 var(--sans);color:var(--mute)}
.auf .chk input{margin-top:3px;width:20px;height:20px;flex:none}
.auf .off{opacity:.55}
.auf .hpw{position:absolute;left:-9999px}
.au-stat{min-height:24px;font-size:16px;color:var(--mute)}
.au-stat.err{color:var(--warn,#E8967A)}
.au-note{font-size:14.5px;line-height:1.5;color:var(--mute);max-width:640px}
#au-res{margin-top:48px;max-width:760px}
#au-res:empty{display:none}
.kres{margin-bottom:-14px}
#au-res h2{font:400 clamp(28px,3vw,38px)/1.15 var(--serif);margin-bottom:24px}
.au-list{display:grid;gap:0;padding:0}
.au-list li{display:grid;grid-template-columns:104px 1fr;gap:16px;padding:16px 0;border-top:1px solid var(--line)}
.au-list li:last-child{border-bottom:1px solid var(--line)}
.au-b{font:600 14px/1.4 var(--sans)}
.au-t{display:grid;gap:4px;font-size:16px;color:var(--mute);line-height:1.5}
.au-t b{color:var(--ink);font-weight:600}
.s-ok .au-b{color:#7FD6A0}.s-warn .au-b{color:#F2C46B}.s-bad .au-b{color:#E8967A}.s-info .au-b{color:var(--mute)}
.au-sum{margin-top:24px;font-size:16px;color:var(--mute)}
.ops{display:grid;grid-template-columns:200px 1fr;gap:0;max-width:640px}
.ops dt,.ops dd{margin:0;padding:12px 0;border-top:1px solid var(--line);font-size:16px}
.ops dt{color:var(--mute)}
@media (max-width:980px){.gcards{grid-template-columns:1fr 1fr}.posts{grid-template-columns:1fr}}
@media (max-width:760px){.gcards{grid-template-columns:1fr}.au-list li{grid-template-columns:1fr;gap:4px}.ops{grid-template-columns:1fr}.ops dt{border-bottom:0;padding-bottom:0}.ops dd{border-top:0;padding-top:4px}}
/* iapply-znak (10.10.2026): kwadratowy znak „ia” (zamiana liter po najechaniu) + napis. Użycie: <a class="iapply-znak-link" href="mailto:kontakt@iapply.pl" aria-label="iapply">SVG z iapply_mark.svg()</a> + iapply-znak.js */
.iapply-znak{flex:none;display:inline-flex;align-items:center;gap:.5em;font:600 1em/1 'Geist',system-ui,sans-serif;letter-spacing:-.01em;color:var(--iap-t,var(--ink,inherit));vertical-align:middle;text-decoration:none}
.iapply-znak .iap-mk{display:block;width:2em;height:2em;flex:none;overflow:hidden}
.iapply-znak .iap-t{white-space:nowrap;text-decoration:none}
a.iapply-znak-link,.iapply-znak-link{flex:none;display:inline-flex;align-items:center;min-height:44px;color:inherit;text-decoration:none}
.iap-mk .iap-f{fill:var(--iap-pole,var(--ink,currentColor))}
.iap-mk .iap-l{fill:var(--iap-litery,var(--bg,#101411))}
.iap-mk.iap-jasny .iap-f{fill:#EDF0E8}.iap-mk.iap-jasny .iap-l{fill:#101411}
.iap-mk.iap-ciemny .iap-f{fill:#101411}.iap-mk.iap-ciemny .iap-l{fill:#EDF0E8}
.iap-mk .gI,.iap-mk .gA{will-change:transform}
