/* PUR TECH: jasna strona, niebieski z logo, ciepły beż piany, miękkie (nie okrągłe) narożniki, Manrope. */

/* ---------- fonty (self-hosted Manrope) ---------- */
@font-face{font-family:"Manrope";font-style:normal;font-weight:300;font-display:swap;src:url("/fonts/manrope-300-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:"Manrope";font-style:normal;font-weight:300;font-display:swap;src:url("/fonts/manrope-300-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:"Manrope";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/manrope-400-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:"Manrope";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/manrope-400-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:"Manrope";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/manrope-500-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:"Manrope";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/manrope-500-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:"Manrope";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/manrope-600-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:"Manrope";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/manrope-600-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:"Manrope";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/manrope-700-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:"Manrope";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/manrope-700-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:"Manrope";font-style:normal;font-weight:800;font-display:swap;src:url("/fonts/manrope-800-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:"Manrope";font-style:normal;font-weight:800;font-display:swap;src:url("/fonts/manrope-800-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}

/* ---------- tokeny ---------- */
:root{
  --paper:#FFFFFF;--mist:#E9EEF5;--mist-2:#F3F6FA;--blue:#0B5ED7;--sky:#38B2F6;--ice:#BFDFF9;--navy:#0A3F86;--navy-deep:#072E63;--navy-ink:#06224A;
  --foam:#F4D7A1;--foam-2:#FBEBD0;--amber:#E9A93A;--graphite:#3F4A59;--ink:#16213A;--muted:#5E6B7E;--hair:#D7E0EA;
  --sans:"Manrope","Helvetica Neue",Arial,sans-serif;
  --container:1240px;--gutter:clamp(20px,4vw,56px);--section:clamp(80px,9.5vw,140px);--nav-h:80px;
  --r:4px;--r-lg:8px;
  --shadow:0 24px 60px -28px rgba(6,34,74,.45),0 2px 6px rgba(6,34,74,.06);
  --shadow-sm:0 12px 30px -18px rgba(6,34,74,.35);
  --ease:cubic-bezier(.2,.8,.2,1);--ease-io:cubic-bezier(.7,0,.3,1);--ease-back:cubic-bezier(.34,1.56,.64,1);
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 12px);background:var(--navy-ink)}
body{margin:0;font-family:var(--sans);font-size:17px;line-height:1.65;color:var(--graphite);background:var(--navy-ink);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.is-intro,body.menu-open,body.has-dialog{overflow:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--blue)}
p{margin:0 0 1em}
ul,ol{margin:0;padding:0;list-style:none}
figure{margin:0}
button{font:inherit;color:inherit}
fieldset{border:0;margin:0;padding:0;min-width:0}
legend{padding:0}
svg{stroke-linecap:round;stroke-linejoin:round}
h1,h2,h3,h4{margin:0;text-wrap:balance;color:var(--navy)}
h1{font:800 clamp(38px,5.4vw,72px)/1.03 var(--sans);letter-spacing:-.03em}
h2{font:800 clamp(30px,3.4vw,46px)/1.1 var(--sans);letter-spacing:-.025em}
h3{font:700 20px/1.3 var(--sans);color:var(--ink);letter-spacing:-.01em}
.mark{position:relative;display:inline;white-space:normal;background:linear-gradient(transparent 55%,var(--foam) 55%,var(--foam) 92%,transparent 92%) no-repeat 0 0/100% 100%;padding:0 .08em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.mark--dark{background:linear-gradient(transparent 55%,rgba(244,215,161,.62) 55%,rgba(244,215,161,.62) 92%,transparent 92%) no-repeat 0 0/100% 100%;color:#fff}
.skip{position:absolute;left:12px;top:-60px;z-index:200;background:var(--navy);color:#fff;padding:10px 14px;border-radius:var(--r)}
.skip:focus{top:12px}
main{padding-top:var(--nav-h);background:var(--paper)}
.page-home main{padding-top:0}
.defs{position:absolute;width:0;height:0;overflow:hidden}
/* wypełnienia logo przez zmienne: dziedziczą do <use>, więc nagłówek na hero może przełączyć logo na białe */
.lg-roof{fill:var(--lg-roof,url(#lg-grad-roof))}
.lg-pur{fill:var(--lg-pur,url(#lg-grad-pur))}
.lg-ink{fill:var(--lg-ink,#2A2F3A)}
.lg-foam{fill:var(--lg-foam,url(#lg-grad-foam))}
.ico{width:48px;height:48px;stroke:currentColor;fill:none;stroke-width:1.6;flex:none}
.ico--sm{width:22px;height:22px}
.ico__foam{stroke:var(--amber)}

.container{width:min(var(--container),100% - 2 * var(--gutter));margin-inline:auto}
.section{padding:var(--section) 0;position:relative}
.section--tight{padding-top:40px}
.sec{position:relative}
.sec--white{background:var(--paper)}
.sec--mist{background:var(--mist-2)}
.sec--navy{background:linear-gradient(180deg,var(--navy-deep),var(--navy-ink));color:rgba(255,255,255,.82)}
.sec--navy h2,.sec--navy h3{color:#fff}
.section-head{max-width:760px;margin:0 0 clamp(40px,5vw,64px)}
.section-head--light .eyebrow{color:var(--foam)}
.section-head--light .section-head__text{color:rgba(255,255,255,.74)}
.section-head__text{margin:20px 0 0;font-size:clamp(17px,1.4vw,19px);color:var(--muted);max-width:62ch}
.eyebrow{display:inline-flex;align-items:center;gap:12px;margin:0 0 18px;font:700 12px/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--blue)}
.eyebrow b{display:inline-grid;place-items:center;min-width:30px;height:22px;padding:0 6px;background:var(--foam);color:var(--navy);font:800 11px/1 var(--sans);letter-spacing:.06em;border-radius:var(--r)}
.eyebrow:not(:has(b))::before{content:"";width:22px;height:2px;background:var(--amber)}
.eyebrow--light{color:#fff}
.lede{font:400 clamp(17px,1.5vw,20px)/1.6 var(--sans);color:var(--muted);max-width:58ch;margin:22px 0 0}
.link{display:inline-flex;align-items:center;gap:8px;font:700 14px/1.2 var(--sans);color:var(--blue);text-decoration:none}
.link svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;transition:transform .4s var(--ease)}
.link:hover svg{transform:translateX(5px)}

/* ---------- krawędź „pianowa” między sekcjami ---------- */
.edge{position:absolute;left:0;right:0;top:-1px;width:100%;height:clamp(34px,5.5vw,78px);z-index:2;pointer-events:none;display:block}
.edge--flip{top:auto;bottom:-1px;transform:scaleY(-1)}
.edge--white path{fill:var(--paper)}
.edge--mist path{fill:var(--mist-2)}
.edge--navy path{fill:var(--navy-ink)}

/* ---------- przyciski ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:12px;height:54px;padding:0 24px;font:700 14px/1 var(--sans);letter-spacing:.01em;text-decoration:none;border:1px solid transparent;border-radius:var(--r);background:var(--navy);color:#fff;cursor:pointer;white-space:nowrap;transition:transform .45s var(--ease),box-shadow .45s var(--ease),background .35s,color .35s,border-color .35s}
.btn--sm{height:44px;padding:0 18px;font-size:13px;gap:10px}
.btn__icon{display:inline-grid;place-items:center;width:18px;height:18px;overflow:hidden;flex:none}
.btn__icon svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}
.btn:hover .btn__icon svg{animation:arrow-swap .55s var(--ease-io)}
.btn__icon--l{overflow:visible}
.btn:hover .btn__icon--l svg{animation:none;transform:translateX(-4px)}
@keyframes arrow-swap{0%{transform:translateX(0)}49%{transform:translateX(140%)}50%{transform:translateX(-140%)}100%{transform:translateX(0)}}
.btn--primary{background:var(--navy);border-color:var(--navy)}
.btn--primary:hover{background:var(--blue);border-color:var(--blue);transform:translateY(-2px);box-shadow:0 14px 26px -14px rgba(11,94,215,.7)}
.btn--foam{background:var(--foam);color:var(--navy);border-color:var(--foam)}
.btn--foam:hover{background:#F8E2B6;transform:translateY(-2px);box-shadow:0 14px 26px -14px rgba(233,169,58,.7)}
.btn--foam .btn__icon{color:var(--navy)}
.btn--ghost{background:transparent;color:var(--navy);border-color:var(--hair)}
.btn--ghost:hover{border-color:var(--navy);background:rgba(10,63,134,.04)}
.btn--ghost .btn__icon{overflow:visible}
.btn--ghost:hover .btn__icon svg{animation:none;transform:scale(1.1)}
.btn--ghost-light{background:rgba(255,255,255,.06);color:#fff;border-color:rgba(255,255,255,.4);backdrop-filter:blur(6px)}
.btn--ghost-light:hover{border-color:#fff;background:rgba(255,255,255,.12)}
.btn--ghost-light .btn__icon{overflow:visible}
.btn--ghost-light:hover .btn__icon svg{animation:none;transform:scale(1.1)}
.btn:focus-visible{outline:2px solid var(--sky);outline-offset:3px}
.btn:disabled{opacity:.6;cursor:wait}

/* ---------- techniczny narożnik na zdjęciach ---------- */
.svc__corner{position:absolute;inset:10px;pointer-events:none;--c:var(--foam);--l:16px;z-index:2;
  background:linear-gradient(var(--c),var(--c)) top left/var(--l) 2px no-repeat,linear-gradient(var(--c),var(--c)) top left/2px var(--l) no-repeat,
    linear-gradient(var(--c),var(--c)) top right/var(--l) 2px no-repeat,linear-gradient(var(--c),var(--c)) top right/2px var(--l) no-repeat,
    linear-gradient(var(--c),var(--c)) bottom left/var(--l) 2px no-repeat,linear-gradient(var(--c),var(--c)) bottom left/2px var(--l) no-repeat,
    linear-gradient(var(--c),var(--c)) bottom right/var(--l) 2px no-repeat,linear-gradient(var(--c),var(--c)) bottom right/2px var(--l) no-repeat;
  transition:inset .45s var(--ease)}
figure:hover>.svc__corner,button:hover>.svc__corner,.svc__frame:hover .svc__corner{inset:16px}

/* ---------- nawigacja ---------- */
.nav{position:fixed;inset:0 0 auto;z-index:50;height:var(--nav-h);transition:background .35s,box-shadow .35s}
.nav.is-scrolled{background:rgba(255,255,255,.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 1px 0 rgba(10,63,134,.08),0 12px 30px -20px rgba(10,63,134,.25)}
.nav__inner{position:relative;width:min(var(--container),100% - 2 * var(--gutter));margin-inline:auto;height:100%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px}
.nav__inner::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:rgba(10,63,134,.18);transition:opacity .45s}
.nav.is-scrolled .nav__inner::after{opacity:0}
.brand{display:block;flex:none}
.brand__logo{display:block;height:46px;width:auto;aspect-ratio:1534/560}
.nav__links{display:flex;gap:2px;justify-content:center}
.nav__links a{position:relative;display:block;padding:10px 12px;font:600 14px/1.2 var(--sans);color:var(--ink);text-decoration:none}
.nav__links a span{display:block;overflow:hidden;height:1.2em}
.nav__links a i{display:block;font-style:normal;transition:transform .45s var(--ease)}
.nav__links a i::after{content:attr(data-text);display:block;color:var(--blue)}
.nav__links a:hover i,.nav__links a:focus-visible i{transform:translateY(-1.2em)}
.nav__links a::after{content:"";position:absolute;left:12px;right:12px;bottom:4px;height:2px;background:var(--amber);transform:scaleX(0);transform-origin:0 50%;transition:transform .4s var(--ease)}
.nav__links a.is-current::after{transform:scaleX(1)}
.nav__right{display:flex;align-items:center;justify-content:flex-end;gap:18px;flex:none}
.nav__phone{display:inline-flex;align-items:center;gap:8px;font:700 14px/1 var(--sans);color:var(--ink);text-decoration:none;font-variant-numeric:tabular-nums}
.nav__phone svg{width:18px;height:18px;stroke:var(--amber);fill:none;stroke-width:1.8}
/* na hero (nieprzewinięte): jasne menu i białe logo */
.page-home .nav:not(.is-scrolled) .nav__inner::after{background:rgba(255,255,255,.3)}
.page-home .nav:not(.is-scrolled) .nav__links a,.page-home .nav:not(.is-scrolled) .nav__phone{color:#fff}
.page-home .nav:not(.is-scrolled) .nav__links a i::after{color:var(--foam)}
.page-home .nav:not(.is-scrolled) .brand__logo{--lg-roof:#fff;--lg-pur:#fff;--lg-ink:#fff}
.page-home .nav:not(.is-scrolled) .burger span{background:#fff}
.burger{display:none;position:relative;width:44px;height:44px;margin-right:-8px;border:1px solid transparent;border-radius:var(--r);background:transparent;cursor:pointer;z-index:70;-webkit-tap-highlight-color:transparent}
.burger span{position:absolute;left:11px;right:11px;height:2px;border-radius:2px;background:var(--navy);transition:transform .45s var(--ease-io),top .45s var(--ease-io),right .45s var(--ease-io),background .3s}
.burger span:first-child{top:16px}.burger span:last-child{top:26px}
.burger[aria-expanded="true"] span,.page-home .nav:not(.is-scrolled) .burger[aria-expanded="true"] span{top:21px;right:10px;background:#fff}
.burger[aria-expanded="true"] span:first-child{transform:rotate(45deg)}
.burger[aria-expanded="true"] span:last-child{transform:rotate(-45deg)}

body.menu-open .nav{z-index:70;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
body.menu-open .nav__inner::after{opacity:0}
body.menu-open .brand__logo{--lg-roof:#fff;--lg-pur:#fff;--lg-ink:#fff}
body.menu-open .nav__phone{color:#fff}
.menu{position:fixed;inset:0;z-index:60;background:linear-gradient(160deg,var(--navy-ink),var(--navy));color:#fff;transform:translateY(-100%);visibility:hidden;transition:transform .55s var(--ease-io),visibility 0s .55s}
.menu.is-open{transform:none;visibility:visible;transition:transform .55s var(--ease-io),visibility 0s}
.menu__inner{height:100%;display:flex;flex-direction:column;justify-content:space-between;gap:32px;padding:calc(var(--nav-h) + 16px) var(--gutter) calc(36px + env(safe-area-inset-bottom));overflow:auto}
.menu__link{display:block;font:800 clamp(28px,6.4vw,42px)/1.2 var(--sans);letter-spacing:-.02em;color:#fff;text-decoration:none;padding:13px 0;border-bottom:1px solid rgba(255,255,255,.14);opacity:0;transform:translateY(12px);transition:opacity .45s calc(var(--i) * 45ms + .15s),transform .45s calc(var(--i) * 45ms + .15s)}
.menu.is-open .menu__link{opacity:1;transform:none}
.menu__foot{display:flex;flex-wrap:wrap;gap:18px 28px;align-items:center}
.menu__phone{display:inline-flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font:700 16px/1 var(--sans)}
.menu__phone svg{width:20px;height:20px;stroke:var(--foam);fill:none;stroke-width:1.8}
.menu__social{display:grid;place-items:center;width:44px;height:44px;border:1px solid rgba(255,255,255,.3);border-radius:var(--r);color:#fff}
.menu__social svg{width:20px;height:20px;fill:#fff;stroke:none}
.menu__social svg path{fill:#fff}

/* ---------- intro: logo od razu, hasło pisane literka po literce ---------- */
.intro{position:fixed;inset:0;z-index:100;background:#fff;display:grid;place-items:center}
.intro-seen #intro{display:none}
.intro__lockup{display:flex;flex-direction:column;align-items:center;gap:6px}
.intro__mark{width:min(80vw,620px);height:auto;overflow:visible;display:block}
.intro__ghost{opacity:.06}
.intro__cone{fill:url(#spray-cone)}
.intro__gun-body{fill:#fff;stroke:var(--navy);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.intro__tag{display:flex;justify-content:center;align-items:center;margin:0;font:700 12px/1.4 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--graphite);text-align:center;padding:0 16px;min-height:1.4em}
.intro__type{margin-right:-.24em}
.intro__type{position:relative;display:inline-block;max-width:100%;white-space:pre-wrap}
.intro__type i{font-style:normal;opacity:0}
.intro__caret{position:absolute;left:0;top:50%;width:2px;height:1.1em;transform:translateY(-50%);background:var(--amber);opacity:0;animation:caret 1s steps(2,start) infinite}
@keyframes caret{to{visibility:hidden}}
.intro__skip{position:absolute;right:28px;bottom:24px;border:1px solid var(--hair);background:#fff;padding:10px 16px;border-radius:var(--r);font:700 12px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);cursor:pointer}

/* ---------- hero: cały pierwszy ekran, zdjęcie w tle, treść na środku, liczby u dołu ---------- */
.hero{position:relative;display:grid;grid-template-rows:1fr auto;min-height:100svh;padding-top:var(--nav-h);overflow:hidden;background:var(--navy-ink);color:#fff}
.hero__media{position:absolute;inset:0;z-index:0}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.hero__media::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 62% 56% at 50% 46%,rgba(6,34,74,.42),transparent 100%),linear-gradient(180deg,rgba(6,34,74,.6) 0%,rgba(6,34,74,.22) 40%,rgba(6,34,74,.45) 75%,rgba(6,34,74,.9) 100%)}
.hero__inner{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center;padding:clamp(40px,6vh,80px) 0 clamp(32px,5vh,64px);max-width:980px}
.hero__eyebrow{margin-bottom:24px}
.hero__eyebrow::before{display:none}
.hero__h1{color:#fff;max-width:17ch;font-size:clamp(36px,min(5.6vw,8.6vh),78px)}
.hero__h1 .mark{color:var(--navy);background:linear-gradient(transparent 12%,var(--foam) 12%,var(--foam) 92%,transparent 92%) no-repeat 0 0/100% 100%;padding:0 .12em}
/* nagłówki: pasek piany przelatuje po każdej linii, tekst pojawia się w połowie przelotu, wyróżnienie .mark odsłania się już zaznaczone */
.sweep-h{--sw-text:var(--navy);--mk-color:var(--navy)}
.hero__h1,.section-head--light .sweep-h{--sw-text:#fff}
.mark--dark{--mk-color:#fff}
.sweep-h .sweep__line{position:relative;display:block;width:fit-content;color:transparent}
.hero__h1 .sweep__line{margin-inline:auto}
.sweep-h .sweep__line::after{content:"";position:absolute;inset:.02em -.12em;background:var(--foam);transform:scaleX(0);transform-origin:0 50%;pointer-events:none}
.sweep-h.is-in .sweep__line{animation:sweep-text 1.2s linear calc(.15s + var(--i,0) * .2s) both}
.sweep-h.is-in .sweep__line::after{animation:sweep 1.2s cubic-bezier(.76,0,.24,1) calc(.15s + var(--i,0) * .2s) both}
.sweep-h .sweep__line .mark{color:transparent;background-size:0% 100%;background-repeat:no-repeat}
.sweep-h.is-in .sweep__line .mark{animation:mark-text 1.2s linear calc(.15s + var(--i,0) * .2s) both}
@keyframes sweep{0%{transform:scaleX(0);transform-origin:0 50%}50%{transform:scaleX(1);transform-origin:0 50%}50.01%{transform:scaleX(1);transform-origin:100% 50%}100%{transform:scaleX(0);transform-origin:100% 50%}}
@keyframes sweep-text{0%,50%{color:transparent}50.01%,100%{color:var(--sw-text)}}
@keyframes mark-text{0%,50%{color:transparent;background-size:0% 100%}50.01%,100%{color:var(--mk-color);background-size:100% 100%}}
.qa .sweep-h .sweep__line,.sweep-h.no-split .sweep__line{color:var(--sw-text);animation:none}
.qa .sweep-h .sweep__line::after{display:none}
.qa .sweep-h .sweep__line .mark{color:var(--mk-color);background-size:100% 100%;animation:none}
.hero__lead{margin:26px auto 0;max-width:62ch;font-size:clamp(16px,1.35vw,19px);line-height:1.6;color:rgba(255,255,255,.84)}
.hero__cta{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:34px}
.hero__foot{position:relative;z-index:2;padding-bottom:clamp(56px,7vw,96px)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,.26)}
.stats__item{padding:20px 20px 0;border-left:1px solid rgba(255,255,255,.26)}
.stats__item:first-child{border-left:0;padding-left:0}
.stats__item b{display:block;font:800 clamp(28px,3vw,40px)/1 var(--sans);letter-spacing:-.02em;color:#fff;font-variant-numeric:tabular-nums}
.stats__item small{display:block;margin-top:8px;font:600 11px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--foam)}

/* ---------- pas marek / certyfikat ---------- */
.trust{margin-top:40px}
.trust__row{display:flex;flex-wrap:wrap;align-items:center;gap:18px 32px;padding:22px 0 0;border-top:1px solid var(--hair)}
.trust__cert{display:inline-flex;align-items:center;gap:10px;margin:0;padding:10px 14px;background:var(--foam-2);color:var(--navy);font:700 12px/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;border-radius:var(--r)}
.trust__cert svg{stroke:var(--amber)}
.trust__label{margin:0;font:700 11px/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.trust__list{display:flex;flex-wrap:wrap;gap:18px 44px;align-items:center}
.trust__item{display:flex;align-items:center;gap:14px}
.trust__logo img{height:30px;width:auto;filter:grayscale(1);opacity:.7;transition:filter .4s,opacity .4s}
.trust__item:hover .trust__logo img{filter:none;opacity:1}
.trust__item small{font-size:13px;color:var(--muted)}

/* ---------- usługi: trzy bloki w kolumnie, przyklejone zdjęcie zmienia się z przewijaniem ---------- */
.svc{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,80px);align-items:start}
.svc__item{padding:30px 0 34px;border-top:1px solid var(--hair);transition:opacity .5s}
.svc__item:last-child{border-bottom:1px solid var(--hair)}
.svc__list.has-cur .svc__item:not(.is-cur){opacity:.42}
.svc__head{display:grid;grid-template-columns:auto auto 1fr;gap:18px;align-items:center;margin-bottom:16px}
.svc__num{font:800 12px/1 var(--sans);letter-spacing:.12em;color:var(--muted);transition:color .3s}
.svc__icon{width:52px;height:52px;padding:10px;border:1px solid var(--hair);border-radius:var(--r);color:var(--navy);stroke-width:1.5;transition:border-color .3s,background .3s}
.svc__title h3{font-size:clamp(18px,1.6vw,22px)}
.svc__title small{display:block;margin-top:4px;font:700 11px/1.4 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--blue)}
.svc__item.is-cur .svc__num{color:var(--amber)}
.svc__item.is-cur .svc__icon{background:var(--foam-2);border-color:var(--foam)}
.svc__item.is-cur .ico__foam{stroke-dasharray:6 4;animation:foamflow 1.4s linear infinite}
@keyframes foamflow{to{stroke-dashoffset:-20}}
.svc__body{padding-left:calc(30px + 52px + 36px)}
.svc__body>p{color:var(--muted);margin:0 0 14px}
.svc__points{display:grid;gap:8px;margin:0 0 20px}
.svc__points li{display:flex;align-items:flex-start;gap:10px;font-size:14.5px;color:var(--ink)}
.svc__points svg{width:18px;height:18px;flex:none;margin-top:3px;stroke:var(--amber);fill:none;stroke-width:2}
.svc__mobile{display:none}
.svc__media{position:sticky;top:calc(var(--nav-h) + 24px)}
.svc__frame{position:relative;aspect-ratio:4/4.2;overflow:hidden;background:var(--mist);border-radius:var(--r-lg);box-shadow:var(--shadow)}
.svc__pic{position:absolute;inset:0;opacity:0;transition:opacity .7s var(--ease)}
.svc__pic.is-active{opacity:1}
.svc__pic img{width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%);transform:scale(1.06);transition:transform 1.4s var(--ease)}
.svc__pic.is-active img{transform:scale(1)}
.svc__dots{position:absolute;right:20px;bottom:20px;display:flex;gap:6px;z-index:3}
.svc__dots i{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.55);transition:background .3s,width .3s}
.svc__dots i.is-on{background:var(--foam);width:22px;border-radius:4px}

/* ---------- rodzaje piany: porównanie obok siebie ---------- */
.section-head--split{display:grid;grid-template-columns:1.1fr .9fr;gap:24px clamp(32px,5vw,80px);align-items:end;max-width:none}
.section-head--split .section-head__text{margin:0 0 .35em;max-width:none}
.cmp{display:grid;background:#fff;border:1px solid var(--hair);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm)}
.cmp__row{display:grid;grid-template-columns:.8fr 1fr 1fr;border-top:1px solid var(--hair)}
.cmp__row--head{border-top:0;background:var(--mist-2)}
.cmp__label{padding:18px 24px;font:700 11.5px/1.5 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center}
.cmp__cell{padding:18px 24px;font-size:15.5px;color:var(--ink);border-left:1px solid var(--hair);display:flex;align-items:center}
.cmp__cell--open{background:rgba(244,215,161,.1)}
.cmp__m{display:none}
.cmp__head{padding:28px 24px 26px;border-left:1px solid var(--hair)}
.cmp__head--open{background:rgba(244,215,161,.22)}
.cmp__ico{width:44px;height:44px;padding:8px;border-radius:var(--r);background:#fff;border:1px solid var(--hair);color:var(--navy);stroke-width:1.5;margin-bottom:14px}
.cmp__head--open .cmp__ico{background:var(--foam);border-color:var(--foam)}
.cmp__tag{margin:0 0 6px;font:700 11px/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}
.cmp__head h3{font-size:clamp(19px,1.7vw,23px);color:var(--navy);margin-bottom:10px}
.cmp__head>p:last-child{margin:0;font-size:14.5px;color:var(--muted)}
.cmp__note{margin:20px 0 0;font-size:13px;color:var(--muted)}

/* ---------- jak pracujemy: oś czasu (linia od pierwszego do ostatniego węzła, duże numery w tle) ---------- */
.tl{position:relative;padding-top:48px}
.tl__track{position:absolute;left:12.5%;width:75%;top:calc(48px + 31px);height:2px;background:rgba(255,255,255,.16);display:block}
.tl__fill{position:absolute;inset:0;background:var(--foam);transform:scaleX(0);transform-origin:0 50%;display:block}
.tl__steps{display:grid;grid-template-columns:repeat(4,1fr)}
.tl__step{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 clamp(10px,1.6vw,24px)}
.tl__bg{position:absolute;left:50%;top:-56px;transform:translateX(-50%);font:800 clamp(120px,11vw,160px)/1 var(--sans);letter-spacing:-.04em;color:rgba(255,255,255,.055);pointer-events:none;user-select:none;z-index:0}
.tl__node{position:relative;z-index:1;display:grid;place-items:center;width:62px;height:62px;border-radius:50%;background:var(--navy-ink);border:2px solid rgba(255,255,255,.25);transition:border-color .4s,background .4s,transform .5s var(--ease-back)}
.tl__icon{width:30px;height:30px;color:rgba(255,255,255,.7);stroke-width:1.6;transition:color .4s}
.tl__step.is-on .tl__node{border-color:var(--foam);background:var(--foam);transform:scale(1.08)}
.tl__step.is-on .tl__icon{color:var(--navy)}
.tl__step h3{position:relative;z-index:1;font-size:20px;color:#fff;margin:26px 0 8px}
.tl__step p{position:relative;z-index:1;margin:0;color:rgba(255,255,255,.72);font-size:15.5px;max-width:30ch}

/* ---------- dlaczego my ---------- */
.why{display:grid;grid-template-columns:.86fr 1.14fr;gap:clamp(32px,5vw,80px);align-items:start}
.why__media{position:sticky;top:calc(var(--nav-h) + 24px)}
.why__photo{position:relative;aspect-ratio:4/5;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);background:var(--mist)}
.why__photo img{width:100%;height:100%;object-fit:cover}
.why__quote{position:absolute;left:24px;right:24px;bottom:24px;margin:0;padding:22px 24px;border-radius:var(--r);background:rgba(6,34,74,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fff;z-index:3}
.why__quote p{margin:0 0 10px;font:600 17px/1.5 var(--sans)}
.why__quote footer{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--foam)}
.why__list{display:grid;grid-template-columns:1fr 1fr;gap:28px 32px}
.why__item{display:flex;gap:18px;align-items:flex-start}
.why__ico{display:grid;place-items:center;width:56px;height:56px;flex:none;border-radius:var(--r);background:var(--foam-2);color:var(--navy);transition:background .3s,transform .4s var(--ease)}
.why__ico .ico{width:30px;height:30px;stroke-width:1.5}
.why__item:hover .why__ico{background:var(--foam);transform:translateY(-3px)}
.why__item h3{font-size:18px;margin-bottom:6px}
.why__item p{margin:0;font-size:15px;color:var(--muted)}

/* ---------- realizacje ---------- */
.projects{display:grid;gap:clamp(48px,6vw,88px)}
.project{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,4vw,64px);align-items:center}
.project--flip .project__gallery{order:2}
.project__gallery{display:grid;gap:12px}
.project__main,.project__thumb{position:relative;padding:0;border:0;background:var(--mist);cursor:zoom-in;overflow:hidden;border-radius:var(--r);display:block}
.project__main{aspect-ratio:4/3;border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}
.project__main img,.project__thumb img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.project__main:hover img,.project__thumb:hover img{transform:scale(1.05)}
.project__zoom{position:absolute;right:16px;bottom:16px;z-index:3;display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:var(--r);background:rgba(255,255,255,.92);font:700 12px/1 var(--sans);color:var(--navy)}
.project__zoom svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}
.project__thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.project__thumb{aspect-ratio:4/3}
.project__tags{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.project__tags span{padding:6px 10px;border-radius:var(--r);background:#fff;border:1px solid var(--hair);font:700 11px/1.3 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--blue)}
.project__tags span:first-child{background:var(--foam);border-color:var(--foam);color:var(--navy)}
.project__body h3{font-size:clamp(24px,2.2vw,30px);color:var(--navy);margin-bottom:12px}
.project__scope{font-weight:600;color:var(--ink)}
.project__body>p:not(.project__scope){color:var(--muted)}
.facts{display:grid;grid-template-columns:repeat(3,auto);gap:16px 32px;margin:24px 0 0;justify-content:start}
.facts__item dt{font:700 11px/1.5 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.facts__item dd{margin:2px 0 0;font:800 18px/1.3 var(--sans);color:var(--navy)}
.facts--side{grid-template-columns:1fr 1fr;gap:16px 24px}
.facts--side dt{color:var(--foam)}
.facts--side dd{font:600 16px/1.45 var(--sans);color:#fff}
.facts--side dd a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.3)}

.lb{position:fixed;inset:0;z-index:90;background:rgba(6,34,74,.94);display:grid;place-items:center;padding:24px}
.lb[hidden]{display:none}
.lb__fig{max-width:min(1200px,92vw);display:grid;gap:12px;justify-items:center}
.lb__img{max-width:100%;max-height:80vh;width:auto;height:auto;border-radius:var(--r);box-shadow:0 30px 80px -30px rgba(0,0,0,.8)}
.lb__cap{color:rgba(255,255,255,.8);font-size:14px;text-align:center}
.lb__close,.lb__nav{position:absolute;display:grid;place-items:center;width:52px;height:52px;border:1px solid rgba(255,255,255,.25);border-radius:var(--r);background:rgba(255,255,255,.08);color:#fff;cursor:pointer;transition:background .3s}
.lb__close:hover,.lb__nav:hover{background:rgba(255,255,255,.2)}
.lb__close{right:20px;top:20px}
.lb__nav{top:50%;transform:translateY(-50%)}
.lb__nav--prev{left:20px}.lb__nav--next{right:20px}
.lb__close svg,.lb__nav svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8}

/* ---------- zasięg: podkład OSM + pinezki ---------- */
.area{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,80px);align-items:center}
.area .section-head{margin-bottom:8px}
.gmap{border:1px solid var(--hair);border-radius:var(--r-lg);background:#fff;box-shadow:var(--shadow-sm);overflow:hidden}
.gmap__map{position:relative}
.gmap__map img{width:100%;height:auto;display:block}
.gmap__pins{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.gmap__ring{fill:rgba(244,215,161,.14);stroke:var(--amber);stroke-width:3;stroke-dasharray:10 10}
.gmap__ring--50{fill:none;stroke:rgba(10,63,134,.35);stroke-width:2;stroke-dasharray:4 8}
.gmap__ring-lbl{font:800 22px var(--sans);fill:var(--amber);paint-order:stroke;stroke:#fff;stroke-width:7px;stroke-linejoin:round}
.gmap__ring-lbl--50{fill:var(--navy);font-size:19px}
.gmap__city circle{fill:var(--navy);stroke:#fff;stroke-width:3;transform-box:fill-box;transform-origin:center;transition:transform .5s var(--ease-back)}
.gmap__city text{font:700 21px var(--sans);fill:var(--ink);paint-order:stroke;stroke:#fff;stroke-width:7px;stroke-linejoin:round}
.gmap__city--far circle{fill:var(--muted)}
.gmap__city--far text{fill:var(--muted);font-weight:600}
[data-reveal]:not(.is-in) .gmap__city circle{transform:scale(0)}
.gmap__base rect{fill:var(--amber);stroke:#fff;stroke-width:4}
.gmap__pulse{fill:var(--amber);opacity:.3;transform-origin:center;transform-box:fill-box;animation:pulse 2.6s ease-out infinite}
@keyframes pulse{0%{transform:scale(.3);opacity:.5}100%{transform:scale(1.6);opacity:0}}
.gmap__base text{font:800 22px var(--sans);fill:var(--navy);letter-spacing:.02em;paint-order:stroke;stroke:#fff;stroke-width:7px;stroke-linejoin:round}
.gmap__legend{display:flex;flex-wrap:wrap;gap:8px 18px;padding:12px 16px;border-top:1px solid var(--hair);font:700 10.5px/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.gmap__legend li{display:flex;align-items:center;gap:8px}
.gmap__lg-base{width:10px;height:10px;background:var(--amber)}
.gmap__lg-ring{width:10px;height:10px;border:2px dashed var(--amber);border-radius:50%}
.gmap__lg-city{width:9px;height:9px;background:var(--navy);border-radius:50%}
.gmap__attr{margin:0;padding:0 16px 10px;text-align:right;font-size:10px;color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 30px}
.chips li{padding:7px 12px;border-radius:var(--r);border:1px solid var(--hair);font:600 13px/1.2 var(--sans);color:var(--ink);background:#fff}

/* ---------- FAQ: przyklejona kolumna + rozwijane odpowiedzi ---------- */
.faq{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(32px,5vw,80px);align-items:start}
.faq__sticky{position:sticky;top:calc(var(--nav-h) + 24px)}
.faq__side .section-head{margin-bottom:28px}
.faq__card{padding:26px 28px;background:#fff;border:1px solid var(--hair);border-radius:var(--r-lg);border-top:3px solid var(--foam)}
.faq__card-title{margin:0 0 8px;font:800 18px/1.3 var(--sans);color:var(--navy)}
.faq__card>p{font-size:15px;color:var(--muted)}
.faq__card-btns{display:flex;flex-wrap:wrap;gap:10px}
.faq__item{border-bottom:1px solid var(--hair)}
.faq__item:first-child{border-top:1px solid var(--hair)}
.faq__item summary{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:22px 0;cursor:pointer;list-style:none}
.faq__item summary::-webkit-details-marker{display:none}
.faq__num{font:800 12px/1 var(--sans);letter-spacing:.1em;color:var(--muted);transition:color .3s}
.faq__item[open] .faq__num,.faq__item summary:hover .faq__num{color:var(--amber)}
.faq__item summary h3{font-size:18px;color:var(--ink);transition:color .3s}
.faq__item summary:hover h3{color:var(--blue)}
.faq__item summary i{display:grid;place-items:center;width:36px;height:36px;flex:none;border-radius:var(--r);background:#fff;border:1px solid var(--hair);color:var(--navy);transition:transform .45s var(--ease),background .3s}
.faq__item summary i svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}
.faq__item[open] summary i{transform:rotate(45deg);background:var(--foam);border-color:var(--foam)}
.faq__body{overflow:hidden}
.faq__body p{margin:0;padding:0 56px 26px 46px;color:var(--graphite);font-size:16px;line-height:1.7}

/* ---------- kontakt (na granacie) + formularz w krokach ---------- */
.contact__grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(32px,5vw,80px);align-items:start}
.contact__side{position:sticky;top:calc(var(--nav-h) + 24px)}
.contact__side .section-head{margin-bottom:32px}
.contact__side-title{margin:0 0 8px;font:700 12px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--foam)}
.contact__phone{display:block;font:800 clamp(28px,2.6vw,36px)/1.1 var(--sans);letter-spacing:-.02em;color:#fff;text-decoration:none;margin-bottom:12px}
.contact__side-text{color:rgba(255,255,255,.76);font-size:15px;margin-bottom:24px}
.contact__fb{display:flex;align-items:center;gap:10px;margin-top:26px;padding-top:20px;border-top:1px solid rgba(255,255,255,.2);color:#fff;text-decoration:none;font:600 14px/1.2 var(--sans)}
.contact__fb svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8}
.contact__fb span{flex:1}
.contact__form{background:#fff;border-radius:var(--r-lg);padding:clamp(24px,3vw,40px);box-shadow:var(--shadow);color:var(--graphite)}

.qf{display:grid;gap:22px}
.qf[hidden]{display:none}
.qf__progress{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:6px}
.qf__dot{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r);background:var(--mist-2);border:1px solid var(--hair);color:var(--muted);transition:background .35s,border-color .35s,color .35s}
.qf__dot b{display:grid;place-items:center;width:26px;height:26px;flex:none;border-radius:var(--r);background:#fff;border:1px solid var(--hair);font:800 12px/1 var(--sans);color:var(--muted);transition:background .35s,color .35s,border-color .35s}
.qf__dot span{display:grid;font:700 12px/1.2 var(--sans);color:inherit}
.qf__dot span small{font:500 11px/1.3 var(--sans);color:var(--muted);margin-top:2px}
.qf__dot.is-active{background:#fff;border-color:var(--foam);color:var(--navy)}
.qf__dot.is-active b{background:var(--foam);border-color:var(--foam);color:var(--navy)}
.qf__dot.is-done b{background:var(--navy);border-color:var(--navy);color:#fff}
.qf__step{display:grid;gap:18px}
.qf__step[hidden]{display:none}
.qf__step legend{font:800 20px/1.3 var(--sans);color:var(--navy);margin-bottom:6px}
.qf__tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.qf__tile{position:relative;display:grid;gap:10px;justify-items:center;text-align:center;padding:18px 10px 16px;border:1px solid var(--hair);border-radius:var(--r);cursor:pointer;background:#fff;transition:border-color .3s,background .3s,transform .35s var(--ease)}
.qf__tile input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer;margin:0}
.qf__tile-ico{display:grid;place-items:center;width:52px;height:52px;border-radius:var(--r);background:var(--mist-2);color:var(--navy);transition:background .3s}
.qf__tile-ico .ico{width:32px;height:32px;stroke-width:1.5}
.qf__tile>span:last-child{font:700 13px/1.3 var(--sans);color:var(--ink)}
.qf__tile:hover{border-color:var(--navy);transform:translateY(-2px)}
.qf__tile:has(input:checked){border-color:var(--amber);background:var(--foam-2)}
.qf__tile:has(input:checked) .qf__tile-ico{background:var(--foam)}
.qf__tile:has(input:checked) .ico__foam{stroke-dasharray:6 4;animation:foamflow 1.4s linear infinite}
.qf__tile:has(input:focus-visible){outline:2px solid var(--sky);outline-offset:2px}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{display:grid;gap:7px}
.field>label,.field__lbl{font:700 11px/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.field>label small{font-weight:500;letter-spacing:0;text-transform:none}
.field input,.field select,.field textarea{width:100%;padding:13px 14px;border:1px solid var(--hair);background:#fff;font:400 16px/1.4 var(--sans);color:var(--ink);border-radius:var(--r);appearance:none;-webkit-appearance:none;transition:border-color .25s,box-shadow .25s}
.field textarea{resize:vertical;min-height:96px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 4px rgba(244,215,161,.5)}
.field__unit{position:relative;display:block}
.field__unit b{position:absolute;right:14px;top:50%;transform:translateY(-50%);font:700 13px/1 var(--sans);color:var(--muted)}
.qf.was-validated :is(input,textarea):invalid{border-color:#C23B2E}
.qf.was-validated .pills:has(input:invalid) span{border-color:#C23B2E}
.qf.was-validated .consent:has(input:invalid){color:#C23B2E}
.qf.was-validated .qf__tiles:has(input:invalid){outline:1px solid #C23B2E;outline-offset:4px;border-radius:var(--r)}
.pills{display:flex;flex-wrap:wrap;gap:8px}
.pill{position:relative;display:block}
.pill input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.pill span{display:block;padding:10px 14px;border:1px solid var(--hair);border-radius:var(--r);font:600 13px/1.2 var(--sans);color:var(--ink);background:#fff;transition:border-color .3s,background .3s;cursor:pointer}
.pill:hover span{border-color:var(--navy)}
.pill:has(input:checked) span{background:var(--navy);border-color:var(--navy);color:#fff}
.pill:has(input:focus-visible) span{outline:2px solid var(--sky);outline-offset:2px}
.file{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;position:relative}
.file input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.file__btn{display:inline-flex;align-items:center;gap:10px;padding:12px 16px;border:1px dashed var(--navy);border-radius:var(--r);font:700 12px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--navy);background:var(--mist-2)}
.file__btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8}
.file__list{font-size:13px;color:var(--muted)}
.consent{display:flex;gap:12px;align-items:flex-start;font-size:13px;color:var(--muted)}
.consent input{margin:4px 0 0;width:16px;height:16px;flex:none;accent-color:var(--navy)}
.consent a{color:var(--blue)}
.qf__nav{display:flex;align-items:center;gap:12px;padding-top:6px;border-top:1px solid var(--hair)}
.qf__nav [hidden]{display:none}
.qf__count{margin-left:auto;font:600 13px/1 var(--sans);color:var(--muted);font-variant-numeric:tabular-nums}
.qf__count b{color:var(--navy)}
.form__err{color:#C23B2E;font-size:14px;margin:0}
.hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.form__ok{padding:40px 8px;display:grid;gap:14px;justify-items:center;text-align:center}
.qm.is-sent .qm__head,.qm.is-sent .qm__phone{display:none}
.form__ok[hidden]{display:none}
.form__ok-icon{width:72px;height:72px;stroke:var(--amber);fill:none;stroke-width:1.6}
.form__ok h3{font-size:clamp(24px,2.4vw,30px);color:var(--navy)}
.form__ok p{color:var(--muted);margin:0;max-width:40ch}

/* ---------- pop-up wyceny ---------- */
.qm{position:fixed;inset:0;z-index:95;display:grid;place-items:center;padding:24px;background:rgba(6,34,74,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.qm[hidden]{display:none}
.qm__box{position:relative;width:min(760px,100%);max-height:calc(100svh - 48px);overflow:auto;background:#fff;border-radius:var(--r-lg);padding:clamp(24px,3vw,40px);box-shadow:var(--shadow);color:var(--graphite)}
.qm__close{position:absolute;right:16px;top:16px;display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--hair);border-radius:var(--r);background:#fff;color:var(--navy);cursor:pointer;z-index:2}
.qm__close svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}
.qm__head{margin-bottom:24px;padding-right:48px}
.qm__head h2{font-size:clamp(24px,2.4vw,32px)}
.qm__sub{margin:10px 0 0;color:var(--muted);font-size:15px}
.qm__phone{display:flex;align-items:center;gap:8px;margin:22px 0 0;font-size:14px;color:var(--muted)}
.qm__phone svg{width:16px;height:16px;stroke:var(--amber);fill:none;stroke-width:1.8}
.qm__phone a{color:var(--navy);font-weight:700;text-decoration:none}

/* ---------- stopka (granat, ten sam kolor co tło strony: iPhone nie pokazuje białych pasów) ---------- */
.footer{background:var(--navy-ink);color:rgba(255,255,255,.72);padding:64px 0 calc(28px + env(safe-area-inset-bottom));font-size:14px;border-top:1px solid rgba(255,255,255,.08)}
.footer__top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px 40px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.12)}
.footer__logo{display:block;--lg-roof:#fff;--lg-pur:#fff;--lg-ink:#fff}
.footer__logo svg{display:block;height:72px;width:auto;aspect-ratio:1534/630}
.footer__desc{margin:0;max-width:50ch;color:rgba(255,255,255,.66);font-size:15px}
.footer__grid{display:grid;grid-template-columns:1.2fr 1fr 1.2fr 1.3fr;gap:36px;padding:40px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.footer__label{margin:0 0 14px;font:700 11px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--foam)}
.footer__col ul{display:grid;gap:9px}
.footer__col a{color:#fff;text-decoration:none;transition:color .3s}
.footer__col a:hover{color:var(--foam)}
.footer__line{display:flex;align-items:flex-start;gap:10px;margin:0 0 10px;color:#fff;text-decoration:none}
.footer__line i{display:grid;place-items:center;width:18px;height:18px;flex:none;margin-top:3px}
.footer__line svg{width:18px;height:18px;stroke:var(--foam);fill:none;stroke-width:1.8}
.footer__social{display:flex;gap:8px;margin-top:12px}
.footer__social a{display:grid;place-items:center;width:40px;height:40px;border:1px solid rgba(255,255,255,.3);border-radius:var(--r);color:#fff;background:transparent}
.footer__social svg{width:16px;height:16px}
.footer__social svg path{fill:#fff}
.footer__col ul.footer__chips{display:flex;flex-wrap:wrap;gap:6px}
.footer__chips li{padding:5px 10px;border-radius:var(--r);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);font-size:12px;color:rgba(255,255,255,.86)}
.footer__bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 24px;padding-top:24px}
.footer__legal{margin:0;color:rgba(255,255,255,.55);font-size:13px}
.footer__ffm{display:inline-flex;align-items:center;gap:10px;color:rgba(255,255,255,.55);text-decoration:none;font-size:13px}
.footer__ffm img{height:30px;width:auto}

/* ---------- strony prawne, 404 ---------- */
.phead{padding:clamp(40px,6vw,72px) 0 8px}
.legal__updated{margin:14px 0 0;font-size:14px;color:var(--muted)}
.legal{max-width:760px}
.legal h2{font-size:24px;margin:36px 0 12px}
.legal p{color:var(--graphite)}
.legal__links{display:grid;gap:14px;margin:24px 0 0}

/* ---------- wejścia sekcji ---------- */
[data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .8s var(--d,0ms),transform 1s var(--ease) var(--d,0ms)}
[data-reveal].is-in{opacity:1;transform:none}
.qa [data-reveal]{opacity:1;transform:none}
.qa .intro{display:none}
.qa .stage__drop,.qa .gmap__pulse,.qa .ico__foam{animation:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .sweep-h .sweep__line{color:var(--sw-text);animation:none}
  .sweep-h .sweep__line::after{display:none}
  .sweep-h .sweep__line .mark{color:var(--mk-color);background-size:100% 100%;animation:none}
  [data-reveal]{opacity:1;transform:none;transition:none}
  .stage__drop,.gmap__pulse,.ico__foam{animation:none}
  .intro{display:none}
}

/* ---------- responsywność ---------- */
@media (max-width:1100px){
  .why__list{grid-template-columns:1fr}
  .footer__grid{grid-template-columns:1fr 1fr}
  .qf__tiles{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:980px){
  .nav__links{display:none}
  .nav__phone{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--hair);border-radius:var(--r)}
  .nav__phone span{display:none}
  .nav__phone svg{width:20px;height:20px}
  .page-home .nav:not(.is-scrolled) .nav__phone,body.menu-open .nav__phone{border-color:rgba(255,255,255,.4)}
  .nav__right{gap:10px}
  .nav__inner{grid-template-columns:auto 1fr}
  .nav__right{justify-content:flex-end}
  .burger{display:block}
  .hero{min-height:0}
  .hero__media img{object-position:38% 50%}
  .hero__inner{padding-top:40px}
  .stats{grid-template-columns:1fr 1fr}
  .stats__item:nth-child(odd){border-left:0;padding-left:0}
  .stats__item{padding-top:16px}
  .svc{grid-template-columns:1fr}
  .svc__media{display:none}
  .svc__mobile{display:block;aspect-ratio:16/10;overflow:hidden;border-radius:var(--r);margin:4px 0 18px}
  .svc__list.has-cur .svc__item:not(.is-cur){opacity:1}
  .svc__mobile img{width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%)}
  .svc__body{padding-left:0}
  .section-head--split{grid-template-columns:1fr;align-items:start}
  .section-head--split .section-head__text{margin:0}
  .cmp__row{grid-template-columns:1fr 1fr}
  .cmp__row--head .cmp__label--head{display:none}
  .cmp__label{grid-column:1 / -1;padding:14px 20px 6px;border-bottom:0}
  .cmp__cell{padding:6px 20px 16px;border-left:0;font-size:14.5px;display:block}
  .cmp__cell--closed{border-left:1px solid var(--hair)}
  .cmp__head{border-left:0;padding:22px 20px}
  .cmp__head--closed{border-left:1px solid var(--hair)}
  .why{grid-template-columns:1fr}
  .why__media{position:static}
  .why__photo{aspect-ratio:16/10}
  .tl{padding-top:8px}
  .tl__track{left:30px;right:auto;top:calc(8px + 31px);width:2px;height:calc(100% - 120px)}
  .tl__fill{transform:scaleY(0);transform-origin:50% 0}
  .tl__steps{grid-template-columns:1fr;gap:36px}
  .tl__step{padding:0 0 0 84px;align-items:flex-start;text-align:left}
  .tl__node{position:absolute;left:0;top:0}
  .tl__bg{left:auto;right:0;top:-18px;transform:none;font-size:96px}
  .tl__step h3{margin-top:14px}
  .project,.project--flip{grid-template-columns:1fr}
  .project--flip .project__gallery{order:0}
  .area{grid-template-columns:1fr}
  .faq{grid-template-columns:1fr}
  .faq__sticky{position:static}
  .contact__grid{grid-template-columns:1fr}
  .contact__side{position:static}
}
@media (max-width:640px){
  :root{--nav-h:68px}
  .intro__mark{width:96vw}
  .intro__tag{font-size:10px;letter-spacing:.14em;line-height:1.7;padding:0 24px}
  .intro__type{margin-right:-.14em}
  .brand__logo{height:38px}
  .nav__cta{display:none}
  .hero__cta .btn{width:100%}
  .hero__h1{font-size:clamp(34px,9vw,44px)}
  .trust__row{gap:14px 24px}
  .svc__head{grid-template-columns:auto 1fr;gap:14px}
  .svc__num{display:none}
  .cmp__row{grid-template-columns:1fr}
  .cmp__cell--closed,.cmp__head--closed{border-left:0;border-top:1px solid var(--hair)}
  .cmp__cell{display:flex;gap:10px;align-items:baseline}
  .cmp__m{display:inline-block;flex:none;min-width:92px;font:700 10px/1.4 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--blue)}
  .form__row{grid-template-columns:1fr}
  .qf__tiles{grid-template-columns:1fr 1fr}
  .qf__progress{grid-template-columns:1fr}
  .qf__dot span small{display:none}
  .qf__nav{flex-wrap:wrap}
  .facts{grid-template-columns:1fr 1fr}
  .facts--side{grid-template-columns:1fr}
  .footer__grid{grid-template-columns:1fr}
  .why__quote{position:static;margin-top:14px;background:var(--navy)}
  .faq__body p{padding:0 0 22px}
  .gmap__city text{font-size:30px;stroke-width:9px}
  .gmap__base text,.gmap__ring-lbl{font-size:30px;stroke-width:9px}
  .gmap__city circle{r:9px}
  .lb__nav{top:auto;bottom:20px;transform:none}
  .qm{padding:0}
  .qm__box{max-height:100svh;border-radius:0;min-height:100svh}
  .qm.is-sent .qm__box{display:grid;align-content:center}
}
