@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/poppins-500-latin.woff2) format("woff2")}
@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/poppins-600-latin.woff2) format("woff2")}
/* Schneider Improvement — własny projekt (2026-10). Paleta z logo: pomarańcz + czerń. */
:root{--orange:#e06a1e;--orange-d:#c85a14;--orange-l:#f0a06a;--black:#0f0f0f;--ink:#161616;--panel:#1c1c1c;--line:#2a2a2a;--white:#fff;--muted:#cfcfcf;--grey:#f3f1ee;--text:#1d1d1d}
*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;line-height:1.6;color:var(--white);background:var(--black)}
h1,h2,h3,.poppins,nav,.btn,.chip,.step b{font-family:Poppins,"Helvetica Neue",Arial,sans-serif}
h1{font-weight:600;font-size:clamp(1.9rem,4.2vw,3.1rem);line-height:1.15;margin:0 0 16px;letter-spacing:-.01em}
h2{font-weight:600;font-size:clamp(1.5rem,2.8vw,2.2rem);line-height:1.2;margin:0 0 14px;color:var(--orange)}
h3{font-weight:600;font-size:1.12rem;margin:0 0 8px}
p{margin:0 0 14px}a{color:inherit}
.wrap{width:min(1120px,92%);margin:0 auto}
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--orange);color:#fff;text-decoration:none;padding:13px 24px;border-radius:6px;font-weight:600;font-size:.95rem;border:0;cursor:pointer;transition:background .15s,transform .1s}
.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:2px solid var(--orange-l);outline-offset:2px}
.btn.ghost{background:transparent;border:2px solid #fff;color:#fff}.btn.ghost:active{background:rgba(255,255,255,.18)}
.btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
.eyebrow{display:inline-block;color:var(--orange);font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;margin-bottom:8px}
.muted{color:var(--muted)}
/* header */
header.top{position:sticky;top:0;z-index:30;background:rgba(15,15,15,.96);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0}
header.top .logo img{height:44px;width:auto;display:block}
nav.main{display:flex;align-items:center;gap:22px;font-size:.9rem;font-weight:500}
nav.main a{text-decoration:none;color:#eee;padding:6px 0;border-bottom:2px solid transparent}
nav.main a[aria-current]{border-color:var(--orange);color:#fff}
.hdr-cta{display:flex;align-items:center;gap:10px}
.hdr-cta .btn{padding:10px 16px;font-size:.9rem}
.burger{display:none;background:none;border:1px solid var(--line);border-radius:6px;color:#fff;font-size:1.5rem;line-height:1;cursor:pointer;padding:6px 10px}
/* hero */
.hero{position:relative;min-height:min(78vh,640px);display:flex;align-items:flex-end;background:#222 center/cover no-repeat}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,.55) 55%,rgba(0,0,0,.9) 100%)}
.hero .wrap{position:relative;padding:70px 0 54px;max-width:760px;margin-left:max(4%,calc((100% - 1120px)/2))}
.hero .lead{font-size:1.15rem;max-width:620px;color:#f2f2f2}
.hero .cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.chip{font-size:.8rem;font-weight:500;padding:7px 12px;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:rgba(0,0,0,.35)}
.hero.sub{min-height:min(52vh,460px)}
/* sections */
.section{padding:64px 0}
.section.alt{background:var(--ink)}
.section.light{background:var(--grey);color:var(--text)}
.section.light h2{color:var(--orange-d)}
.center{text-align:center}
.intro{max-width:760px;margin:0 auto 28px}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden;text-decoration:none;color:#fff;display:flex;flex-direction:column;transition:transform .15s,border-color .15s}
.card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.card .body{padding:18px 20px 22px}
.card .body p{color:var(--muted);font-size:.95rem;margin-bottom:10px}
.card .more{color:var(--orange);font-weight:600;font-size:.9rem}
/* why band */
.why{background:var(--orange);color:#fff;padding:40px 0}
.why .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.why .item{display:flex;gap:12px;align-items:flex-start}
.why svg{width:34px;height:34px;flex:none;fill:none;stroke:#fff;stroke-width:2}
.why b{display:block;font-family:Poppins,sans-serif;font-size:1rem;margin-bottom:2px}
.why span{font-size:.9rem;opacity:.95}
/* split */
.split{display:grid;grid-template-columns:1.05fr 1fr;gap:44px;align-items:center}
.split.rev .img{order:2}
.split .img img{width:100%;height:auto;border-radius:10px;display:block}
.split ul{columns:2;column-gap:28px;padding-left:18px;margin:10px 0 18px}
.split ul li{margin:3px 0;break-inside:avoid}
/* steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;counter-reset:s}
.step{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:22px 22px 24px;position:relative}
.step::before{counter-increment:s;content:counter(s);position:absolute;top:-16px;left:20px;width:34px;height:34px;border-radius:50%;background:var(--orange);color:#fff;font:600 1rem Poppins,sans-serif;display:flex;align-items:center;justify-content:center}
.step b{display:block;font-size:1.05rem;margin:6px 0 6px}
.step p{color:var(--muted);font-size:.95rem;margin:0}
/* gallery */
.grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.grid a{display:block;border-radius:8px;overflow:hidden;aspect-ratio:1}
.grid img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s}
.portfolio{columns:4 140px;column-gap:10px}
.portfolio a{display:block;break-inside:avoid;margin:0 0 10px;border-radius:8px;overflow:hidden}
.portfolio img{width:100%;height:auto;display:block}
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.93);display:none;align-items:center;justify-content:center;z-index:50;cursor:zoom-out;touch-action:pan-y}
.lightbox.open{display:flex}
.lightbox figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:default}
.lightbox img{max-width:94vw;max-height:84vh;border-radius:6px;object-fit:contain}
.lightbox figcaption{color:#cfd3d8;font-size:.85rem;text-align:center;padding:0 52px;max-width:94vw}
.lightbox button{position:absolute;background:rgba(0,0,0,.45);color:#fff;border:0;border-radius:50%;width:46px;height:46px;font:300 34px/1 Poppins,sans-serif;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0 0 3px}
.lightbox button[hidden]{display:none}
.lightbox .lb-x{top:12px;right:12px;font-size:30px}
.lightbox .lb-p{left:10px;top:50%;transform:translateY(-50%)}
.lightbox .lb-n{right:10px;top:50%;transform:translateY(-50%)}
body.lb-open{overflow:hidden}
@media (max-width:520px){.lightbox .lb-p,.lightbox .lb-n{width:38px;height:38px;font-size:28px;background:rgba(0,0,0,.3)}.lightbox figcaption{padding:0 44px;font-size:.8rem}}
/* reviews */
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.review{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:22px 22px 20px}
.review .stars{color:var(--orange);letter-spacing:2px;font-size:1rem;margin-bottom:8px}
.review p{font-size:.97rem}
.review .who{color:var(--muted);font-size:.88rem}
.review .who b{color:#fff}
/* areas */
.areas{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.areas span{background:#fff;color:var(--text);border:1px solid #ddd;border-radius:999px;padding:6px 12px;font-size:.88rem}
/* contact */
.contact{padding:64px 0 72px;background:var(--ink)}
.contact .wrap{display:grid;grid-template-columns:1fr 1.2fr;gap:44px;align-items:start}
.contact .info p{margin-bottom:10px}
.contact .info a.big{display:block;font-family:Poppins,sans-serif;font-size:1.6rem;font-weight:600;color:var(--orange);text-decoration:none;margin:4px 0 12px}
.contact .info img{width:min(100%,300px);margin-top:26px}
.form{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:24px}
.form h3{font-size:1.3rem;color:#fff;margin-bottom:4px}
.form label{display:block;font-size:.86rem;margin:12px 0 6px;color:#ddd}
.form label span{color:var(--orange-l)}
.form input,.form textarea,.form select{width:100%;padding:12px;font:16px "Helvetica Neue",Arial,sans-serif;border:1px solid #444;border-radius:6px;background:#0f0f0f;color:#fff}
.form input:focus,.form textarea:focus{outline:2px solid var(--orange);border-color:var(--orange)}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form textarea{min-height:120px;resize:vertical}
.form .submit{margin-top:18px}
.form .note{font-size:.8rem;color:#9a9a9a;margin-top:12px}
.form .hp{position:absolute;left:-9999px}
/* booking: dzień + godzina w formularzu (/book-online/) */
.bk label small{color:#9a9a9a;font-weight:400}
.bk-days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:4px}
.bk-days button,.bk-slots button{background:#0f0f0f;border:1px solid #444;color:#fff;border-radius:6px;padding:7px 2px;font:600 .78rem/1.2 Poppins,sans-serif;cursor:pointer;transition:background .12s,border-color .12s}
.bk-days button b{display:block;font-size:1.05rem;margin:1px 0}
.bk-days button small{display:block;font-weight:400;color:#9a9a9a;font-size:.66rem}
.bk-days button[disabled]{opacity:.28;cursor:default}
.bk button[aria-pressed="true"]{background:var(--orange);border-color:var(--orange)}
.bk button[aria-pressed="true"] small{color:#fff}
.bk-slots{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px;min-height:38px}
.bk-slots button{padding:9px 13px;font-size:.85rem}
.bk-hint{color:#9a9a9a;font-size:.85rem;margin:6px 0 0}
.bk-sum{font-size:.92rem;color:#ddd;margin-top:14px}.bk-sum strong{color:#fff}
.bk-err{display:none;color:var(--orange-l);font-size:.85rem;margin-top:6px}
@media (max-width:520px){.bk-days{gap:4px}.bk-days button{padding:6px 0}.bk-days button b{font-size:.95rem}}
/* footer */
footer.site{background:#0a0a0a;border-top:1px solid var(--line);padding:40px 0 20px;font-size:.92rem;color:var(--muted)}
footer.site .cols{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:26px}
footer.site h4{color:#fff;font-family:Poppins,sans-serif;font-size:.95rem;margin:0 0 10px}
footer.site a{color:var(--muted);text-decoration:none;display:block;padding:3px 0}
footer.site img{height:40px;margin-bottom:12px}
footer.site .legal{border-top:1px solid var(--line);margin-top:28px;padding-top:16px;font-size:.78rem;color:#8a8a8a;display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:space-between}
footer.site .legal a{display:inline;padding:0}
.callbar{display:none}
/* mobile */
@media (max-width:900px){
 header.top .wrap{flex-wrap:wrap}
 header.top .logo img{height:38px}
 nav.main{display:none;flex-direction:column;align-items:stretch;gap:0;width:100%;padding:8px 0 4px;order:3}
 nav.main.open{display:flex}
 nav.main a{padding:11px 4px;border-bottom:1px solid var(--line)}
 .burger{display:block}
 .hdr-cta .btn span{display:none}
 .hdr-cta .btn{padding:10px 12px}
 .hero{min-height:70vh}.hero .wrap{padding:50px 0 40px}
 .cards,.steps,.reviews{grid-template-columns:1fr}
 .why .wrap{grid-template-columns:1fr 1fr;gap:18px 12px}
 .split{grid-template-columns:1fr;gap:26px}.split.rev .img{order:0}
 .split ul{columns:1}
 .grid{grid-template-columns:repeat(3,1fr)}
 .contact .wrap{grid-template-columns:1fr;gap:30px}
 .form .row{grid-template-columns:1fr;gap:0}
 footer.site .cols{grid-template-columns:1fr 1fr}
 .callbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--orange);color:#fff;font:600 1rem Poppins,sans-serif;align-items:center;justify-content:center;gap:10px;padding:14px;text-decoration:none;box-shadow:0 -2px 10px rgba(0,0,0,.5)}
 .callbar svg{width:20px;height:20px;fill:none;stroke:#fff;stroke-width:2}
 body{padding-bottom:56px}
}
@media (max-width:520px){.why .wrap{grid-template-columns:1fr}.grid{grid-template-columns:repeat(2,1fr)}footer.site .cols{grid-template-columns:1fr}}

.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}.hero::before{z-index:1}.hero .wrap{z-index:2}
/* 06.11: <img> mają width/height (CLS) — wysokość/szerokość liczy CSS, nie atrybuty */
img{max-width:100%;height:auto}
.card img{height:auto}
.contact .info img{height:auto}
footer.site img{width:auto}
header.top .logo{flex-shrink:0}
header.top .logo img{max-width:none}
/* FAQ */
.faq{margin-top:22px}.faq-item{border-bottom:1px solid rgba(255,255,255,.12);padding:4px 0}
.faq-item summary{cursor:pointer;list-style:none;padding:14px 32px 14px 0;font-weight:600;position:relative}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";position:absolute;right:4px;top:10px;font-size:1.4rem;color:#e07a28}
.faq-item[open] summary::after{content:"–"}
.faq-item p{margin:0 0 16px;color:#d6d6d6}
/* podstrony lokalne + linki dzielnic (06.11) */
.areas a{background:#fff;color:var(--text);border:1px solid var(--orange);border-radius:999px;padding:6px 12px;font-size:.88rem;text-decoration:none;font-weight:600}
.area-gal{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:22px}
.area-gal a{display:block;border-radius:8px;overflow:hidden;aspect-ratio:4/3}
.area-gal img{width:100%;height:100%;object-fit:cover;display:block}
footer.site .cols{grid-template-columns:1.3fr 1fr 1fr 1fr 1fr}
@media (max-width:900px){footer.site .cols{grid-template-columns:1fr 1fr}}
@media (max-width:520px){footer.site .cols{grid-template-columns:1fr}}
footer.site .cols img{width:auto;height:auto;max-height:40px;max-width:100%}
/* okienko cookies (06.11) — oba przyciski tak samo widoczne (ICO) */
.cc{position:fixed;left:12px;right:12px;bottom:12px;z-index:60;max-width:760px;margin:0 auto;background:#161616;color:#eee;border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;gap:14px;align-items:center;box-shadow:0 8px 30px rgba(0,0,0,.45);font-size:.92rem}
.cc p{margin:0;flex:1}.cc a{color:var(--orange)}.cc-b{display:flex;gap:8px}.cc .btn{padding:9px 16px;min-width:96px;justify-content:center}
@media (max-width:900px){.cc{bottom:70px;flex-direction:column;align-items:stretch}.cc-b .btn{flex:1}}
/* przegląd 06.11: formularz, WhatsApp, pasek, podziękowanie, ustawienia cookies */
#quote{scroll-margin-top:84px}
.form label small{color:#aaa;font-weight:400}
.contact-alt{display:flex;flex-wrap:wrap;gap:10px;margin:6px 0 16px}
.btn.wa{background:#25d366;border-color:#25d366;color:#fff}.btn.wa svg,.callbar svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
@media (max-width:900px){.callbar{padding:0;gap:0}.callbar a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;color:#fff;text-decoration:none;padding:14px 6px}.callbar a.wa{background:#25d366}}
.thanks ol.next{padding-left:20px;margin:18px 0 22px}.thanks ol.next li{margin:0 0 12px}
.cc{font-size:.86rem;padding:12px 14px}.cc-set{flex-direction:column;align-items:stretch}.cc-row{display:flex;gap:10px;align-items:flex-start;margin:6px 0}.cc-row input{margin-top:4px;width:18px;height:18px}
.cc .btn{background:#2b2b2b;border:1px solid #555;color:#fff}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
/* WhatsApp: oficjalna zieleń #25D366 + logo wypełnione (06.11) */
svg.i-wa,.btn svg.i-wa,.callbar svg.i-wa{fill:currentColor!important;stroke:none!important;width:20px;height:20px}

/* telefon: okienko cookies jako cienki pasek nad paskiem Call | WhatsApp (06.11) */
@media (max-width:900px){
 .cc{left:0;right:0;bottom:53px;max-width:none;border-radius:0;border-width:1px 0 0;padding:10px 14px 12px;gap:8px;flex-direction:column;align-items:stretch;box-shadow:0 -4px 18px rgba(0,0,0,.5);font-size:.84rem;line-height:1.4}
 .cc .btn{padding:8px 12px;min-width:0}
 .cc-b{gap:8px}
}
/* efekty najechania TYLKO tam, gdzie jest kursor (08.11: na telefonie :hover zostawał po dotknięciu, np. biały „Get a free quote”) */
@media (hover:hover){
.btn:hover{background:var(--orange-d)}
.btn.ghost:hover{background:#fff;color:#111}
.btn.wa:hover{background:#1ebe5a;border-color:#1ebe5a}
nav.main a:hover{border-color:var(--orange);color:#fff}
.card:hover{transform:translateY(-3px);border-color:var(--orange)}
.grid a:hover img{transform:scale(1.04)}
.lightbox button:hover{background:rgba(255,255,255,.22)}
.bk-days button:hover:not([disabled]),.bk-slots button:hover{border-color:var(--orange-l)}
footer.site a:hover{color:var(--orange)}
.areas a:hover{background:var(--orange);color:#fff}
.cc .btn:hover{background:#3a3a3a}
}

/* telefon: porządek w przyciskach kontaktu (10.11, Sebastian: „tak”) — pasek Call | Text | WhatsApp, w banerze jeden przycisk
   „Get a free quote”, słuchawka w nagłówku zostaje, bez powtórki WhatsApp/SMS w sekcji kontaktu */
@media (max-width:900px){
 .hero .cta .hero-call{display:none}
 .hero .cta .hero-quote{background:var(--orange);border-color:var(--orange)}
 .contact .info .contact-alt{display:none}
 /* Sebastian 10.11: pomarańczowy Call i zielony WhatsApp dochodzą do krawędzi ekranu (bez zaokrąglenia od zewnątrz),
    zaokrąglone są tylko rogi od środka i cały czarny przycisk Text */
 .callbar{background:#1b1b1b;padding:6px 0;gap:8px}
 .callbar a{padding:0 2px;min-height:48px}
 .callbar a:first-child{background:var(--orange);border-radius:0 8px 8px 0}
 .callbar a.sms{background:#000;box-shadow:inset 0 0 0 1px #555;border-radius:8px}
 .callbar a.wa{background:#25d366;border-radius:8px 0 0 8px}
 .callbar a{flex:1 1 0;min-width:0;white-space:nowrap;gap:6px}
 .callbar a svg{flex:none}
 .cc{bottom:60px}
 body{padding-bottom:64px}
}
@media (max-width:375px){.callbar{font-size:.93rem;gap:6px}.callbar a{gap:5px}}
@media (max-width:345px){.callbar{font-size:.86rem;gap:4px}.callbar a{gap:4px}.callbar svg.i-wa{width:17px;height:17px}}
