/* Motion adds feedback without hiding content or changing the page's geometry. */
.ls-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
[data-count-to]{display:inline-block;font-variant-numeric:tabular-nums;white-space:nowrap}
/* A single white canvas behind all light sections, not separate coloured boxes. */
html{scroll-behavior:smooth}
main :is(section[id],div[id].ls-section){scroll-margin-top:100px}
:root{--ls-paper:#fff}
body:is(.ls-page,.ls-original-home,.ls-static-legacy){background:#fff!important}
body :is(main,.ls-embedded,.ls-service-tiles-section,.ls-reviews){background:transparent!important}
body main>.ls-section:not(.ls-proof,.ls-consult,.ls-budget-strip,.ls-service-contact),
body main :is(.ls-chooser,.ls-costs,.ls-faq,.ls-related,.ls-service-pricing,.ls-home-pricing),
body.ls-static-home #main>section:not(#kontakt),
body.ls-static-home :is(#uslugi,#realizacje,#proces,#opinie){background:transparent!important}
body .ls-reviews{border-block:0}
body .ls-footer{background:#fff}
body .ls-header{background:rgba(255,255,255,.94)}
/* Remove older local backdrops, including the rings directly behind Spirit. */
body .ls-ambience::before,body .ls-ambience::after{content:none!important}
body :is(.ls-hero-orbit,.ls-scene-orbits,.ls-choice-orbit,.ls-art-orbit){display:none!important}
body :is(.ls-hero-art,.ls-index-art){background:none!important}
.ls-has-canvas{position:relative;isolation:isolate}
.ls-motion-canvas{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:clip}
.ls-motion-cloud{position:absolute;width:260px;height:260px;overflow:visible;pointer-events:none}
.ls-motion-cloud[hidden]{display:none}
.ls-motion-cloud i{position:absolute;display:block;animation-delay:var(--ls-cloud-delay,0s);animation-play-state:paused}
.ls-motion-cloud.ls-motion-visible i{animation-play-state:running}
.ls-motion-light{width:800px;height:680px;left:-270px;top:-210px;background:radial-gradient(ellipse 48% 48% at 50% 50%,#315cff29 0%,#6c8cff16 32%,#bacaff08 58%,transparent 100%);animation:ls-light-travel 16s ease-in-out infinite alternate}
.ls-motion-cloud[data-variant="1"] .ls-motion-light{width:720px;height:820px;left:-230px;top:-280px;animation-duration:20s;animation-direction:alternate-reverse}
.ls-motion-cloud[data-variant="2"] .ls-motion-light{background:radial-gradient(ellipse 48% 48% at 50% 50%,#6085ff28 0%,#315cff12 35%,#bacaff07 60%,transparent 100%);animation-duration:18s}
.ls-motion-cloud[data-pricing="true"] .ls-motion-light{background:radial-gradient(ellipse 48% 48% at 50% 50%,#315cff30 0%,#6c8cff1c 32%,#bacaff09 58%,transparent 100%)}
.ls-motion-float{animation:ls-brand-float 6.8s ease-in-out infinite;animation-delay:var(--ls-float-delay,0s);animation-play-state:paused}
.ls-motion-float.ls-motion-visible{animation-play-state:running}
@keyframes ls-light-travel{from{transform:translate3d(-20px,-18px,0) scale(.96)}to{transform:translate3d(24px,26px,0) scale(1.04)}}
@keyframes ls-brand-float{0%,100%{translate:0 5px;rotate:-1deg}50%{translate:0 -10px;rotate:1.5deg}}
[data-process-line]{position:relative;height:2px!important;border-radius:4px;overflow:hidden}
[data-process-line]>span{position:absolute;inset:0;background:#315cff;transform:scaleX(0);transform-origin:left center;border-radius:inherit}
[data-process-dot]{position:relative;z-index:1;background:#cbd1df}
.ls-review-progress{height:3px;width:100%;overflow:hidden;border-radius:999px;background:#315cff16;margin-top:24px}
.ls-review-progress>span{display:block;width:100%;height:100%;border-radius:inherit;background:#315cff;transform:scaleX(0);transform-origin:left center}
[data-review-carousel]:not([data-review-ready]) .ls-review-progress{display:none}
.ls-faq-questions details{box-sizing:border-box;transition:border-color .25s ease,background-color .25s ease}
.ls-faq-questions summary{cursor:pointer;touch-action:manipulation;display:grid;grid-template-columns:minmax(0,1fr) 27px;align-items:center}
.ls-faq-questions summary>span{position:relative;box-sizing:border-box;width:27px;height:27px;justify-self:end;font-size:0!important;line-height:0;transform:none!important;rotate:none!important;transition:background-color .2s,scale .2s!important}
.ls-faq-questions summary>span::before,.ls-faq-questions summary>span::after{content:"";position:absolute;left:50%;top:50%;width:11px;height:1.5px;border-radius:2px;background:currentColor;transform:translate(-50%,-50%) rotate(var(--faq-angle,0deg));transition:transform .3s cubic-bezier(.22,1,.36,1)}
.ls-faq-questions summary>span::after{transform:translate(-50%,-50%) rotate(calc(var(--faq-angle,0deg) + 90deg))}
.ls-faq-questions details[open] summary>span,.ls-faq-questions details[data-faq-open="true"] summary>span{--faq-angle:45deg}
.ls-faq-questions details[data-faq-open="false"] summary>span{--faq-angle:0deg}
.ls-faq-questions summary:active>span{scale:.9}
/* Individual transforms compose with pre-existing positioning and hover styles. */
:where(button,.ls-action,.ls-pill,.button,.ls-nav-book,[data-nav-cta],[data-magnetic],.hero-sales-actions>a,.ls-pricing-cards a,.ls-home-price-nav>a,.ls-service-tile){-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:background-color .22s ease,color .22s ease,border-color .22s ease,box-shadow .25s ease,transform .23s ease,scale .23s cubic-bezier(.2,1.6,.4,1),translate .23s cubic-bezier(.2,1.3,.4,1)!important}
:where(button,.ls-action,.ls-pill,.button,.ls-nav-book,[data-nav-cta],[data-magnetic],.hero-sales-actions>a,.ls-pricing-cards a,.ls-home-price-nav>a):not(:disabled):not([aria-disabled="true"]):active{scale:.965;translate:0 1px;transition-duration:80ms!important}
@media(hover:hover) and (pointer:fine){
 :where(.ls-action,.button,.ls-nav-book,[data-nav-cta],.hero-sales-actions>a,.ls-pricing-cards a):hover{translate:0 -2px;box-shadow:0 7px 18px #1d327b14}
 :where(button,.ls-action,.ls-pill,.button,.ls-nav-book,[data-nav-cta],.hero-sales-actions>a,.ls-pricing-cards a):active{translate:0 1px;box-shadow:0 2px 5px #1d327b0c}
}
@media(max-width:700px){
 .ls-motion-cloud{width:150px;height:150px}
 .ls-motion-cloud .ls-motion-light{width:460px;height:520px;left:-155px;top:-185px;opacity:.8}
 .ls-review-progress{margin-top:18px}
}
@media(max-width:700px){.ls-faq-questions summary{grid-template-columns:minmax(0,1fr) 24px}.ls-faq-questions summary>span{width:24px;height:24px}}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto!important}.ls-motion-cloud i,.ls-motion-float{animation:none!important}.ls-review-progress{display:none}
 :where(button,a,summary){scale:1!important;translate:0!important;transition-duration:.01ms!important}
 .ls-faq-questions summary>span,.ls-faq-questions summary>span::before,.ls-faq-questions summary>span::after{transition:none!important}
}

@media print{.ls-motion-canvas{display:none}.ls-motion-float{animation:none!important}}

/* Keep the privacy link in the same text flow; the entire label is a tap target. */
.ls-contact-consent{display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px;align-items:start;min-height:44px;padding-block:6px;font-size:.82rem;line-height:1.65;color:#c7c9d0;cursor:pointer}
.ls-contact-consent>span{min-width:0}
.ls-contact-consent a{display:inline;text-underline-offset:3px}
.ls-contact-consent input{appearance:none;-webkit-appearance:none;display:grid;place-items:center;box-sizing:border-box;width:24px;height:24px;margin:1px 0 0;padding:0;border:1.5px solid #a3acc280;border-radius:7px;background:#ffffff09;cursor:pointer;touch-action:manipulation;transition:background-color .18s,border-color .18s,box-shadow .22s,scale .18s cubic-bezier(.2,1.5,.4,1)}
.ls-contact-consent input::after{content:"";width:6px;height:11px;border:solid #fff;border-width:0 2px 2px 0;transform:translateY(-1px) rotate(45deg) scale(0);transition:transform .2s cubic-bezier(.2,1.5,.4,1)}
.ls-contact-consent input:checked{background:#315cff;border-color:#7898ff;box-shadow:0 0 0 3px #315cff1c;animation:ls-consent-tick .28s ease-out}
.ls-contact-consent input:checked::after{transform:translateY(-1px) rotate(45deg) scale(1)}
.ls-contact-consent input:focus-visible{outline:2px solid #a4baff;outline-offset:4px}
.ls-contact-consent input:active{scale:.88}
@media(hover:hover){.ls-contact-consent:hover input{border-color:#9eb3ff;box-shadow:0 0 0 3px #315cff16}}
@keyframes ls-consent-tick{0%{scale:.88}65%{scale:1.12}100%{scale:1}}
@media(prefers-reduced-motion:reduce){.ls-contact-consent input,.ls-contact-consent input::after{animation:none!important;transition:none!important}}
@media(forced-colors:active){.ls-contact-consent input{appearance:auto}.ls-contact-consent input::after{content:none}}

/* Smooth form/booking panels: one height reservation, no scroll anchoring jump. */
.ls-flow-region{display:flow-root;min-width:0;overflow-anchor:none;scroll-margin-top:100px}
.ls-flow-region>[tabindex="-1"]:focus{outline:none}
.ls-flow-region[aria-busy="true"]{pointer-events:none}
.booking-steps>span,.booking-steps>span>b{transition:background-color .3s,color .3s,border-color .3s}
#booking-slots{transition:opacity .2s}
#booking-slots[aria-busy="true"]{opacity:.45}
@media(prefers-reduced-motion:reduce){.booking-steps>span,.booking-steps>span>b,#booking-slots{transition:none}}
