/* latin-ext */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  src: url(../fonts/outfit-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  src: url(../fonts/outfit-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: role, nie kolory ---------- */
:root{
  --red:#ed1c24;                 /* czerwień z logo, stały akcent we wszystkich kierunkach */
  --ease:cubic-bezier(.16,1,.3,1);
  --r-card:28px; --r-img:20px; --r-pill:999px;
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:72px;--s9:112px;
  --wrap:min(1440px,100% - clamp(32px,6vw,96px));
}
html{ /* kierunek A · Świeże powietrze */
  --bg:#f3f6f7; --surface:#fff; --surface2:#e6eef0; --ink:#0e1a20; --ink2:#51626b; --line:rgba(14,26,32,.1);
  --dark:#0e1a20; --dark-ink:#f3f6f7; --dark-ink2:#9fb2bb; --accent:var(--red); --on-accent:#fff;
  --head:'Outfit',sans-serif; --body:'Outfit',sans-serif; --hw:600; --track:-.035em;
  --logo-dark:none; --logo-light:block; --tile:#fff;
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font:400 17px/1.6 var(--body);-webkit-font-smoothing:antialiased;transition:background .5s var(--ease),color .5s var(--ease)}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.wrap{width:var(--wrap);margin-inline:auto}
h1,h2,h3{font-family:var(--head);font-weight:var(--hw);letter-spacing:var(--track);line-height:1.05;text-wrap:balance}
h1{font-size:clamp(40px,6.2vw,84px)} h2{font-size:clamp(32px,4.2vw,56px)} h3{font-size:clamp(21px,1.9vw,26px);letter-spacing:-.02em;line-height:1.15}
p{text-wrap:pretty}
.eyebrow{font:600 12px/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--ink2);display:flex;align-items:center;gap:var(--s3)}
.eyebrow::before{content:"";width:28px;height:2px;background:var(--accent)}
em{font-style:normal;color:var(--accent)}
.btn{display:inline-flex;align-items:center;gap:var(--s3);min-height:52px;padding:0 var(--s6);border-radius:var(--r-pill);font:600 16px var(--body);border:1.5px solid transparent;transition:transform .6s var(--ease),background .3s,box-shadow .6s var(--ease)}
.btn:hover{transform:translateY(-2px) scale(1.01)}
.btn-main{background:var(--accent);color:var(--on-accent);box-shadow:0 10px 30px -10px rgba(237,28,36,.55)}
.btn-ghost{border-color:var(--line);background:transparent;color:var(--ink)}
.btn-ghost:hover{border-color:var(--ink)}
.btn .ar{transition:transform .6s var(--ease)} .btn:hover .ar{transform:translateX(4px)}

/* ---------- Nagłówek ---------- */
header{position:fixed;inset:0 0 auto;z-index:50;padding:var(--s4) 0;transition:background .5s var(--ease),backdrop-filter .5s,padding .5s var(--ease),border-color .5s;border-bottom:1px solid transparent}
header.scrolled{background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(18px) saturate(1.4);padding:var(--s3) 0;border-color:var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:var(--s5)}
.logo img{height:46px;width:auto;transition:height .5s var(--ease)} header.scrolled .logo img{height:38px}
.logo .l-dark{display:var(--logo-dark)} .logo .l-light{display:var(--logo-light)}
nav{display:flex;gap:var(--s2);align-items:center}
nav a.lnk{padding:var(--s3) var(--s4);border-radius:var(--r-pill);font:500 15px var(--body);color:var(--ink2);transition:color .3s,background .3s}
nav a.lnk:hover{color:var(--ink);background:var(--line)}
.tel{display:flex;align-items:center;gap:var(--s3);min-height:46px;padding:0 var(--s5);border-radius:var(--r-pill);background:var(--ink);color:var(--bg);font:600 15px var(--body)}
.menu-btn{display:none;min-width:46px;min-height:46px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);color:var(--ink);font:600 14px var(--body)}

/* ---------- Hero ---------- */
.hero{padding:calc(var(--s9) + 24px) 0 var(--s8);position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:-20% -10% auto auto;width:60vw;height:60vw;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--accent) 13%,transparent),transparent);pointer-events:none}
.hero-grid{display:grid;grid-template-columns:1.08fr 1fr;gap:clamp(32px,5vw,88px);align-items:center;position:relative}
.hero h1{margin:var(--s5) 0}
.hero .lead{font-size:clamp(17px,1.4vw,20px);color:var(--ink2);max-width:52ch}
.cta{display:flex;flex-wrap:wrap;gap:var(--s3);margin:var(--s6) 0 var(--s7)}
.proof{display:flex;gap:clamp(20px,3.5vw,56px);padding-top:var(--s5);border-top:1px solid var(--line)}
.proof b{display:block;font:var(--hw) clamp(30px,3.2vw,44px)/1 var(--head);letter-spacing:var(--track)}
.proof span{font-size:14px;color:var(--ink2)}
.tiles{display:grid;gap:var(--s4);grid-template-rows:1.15fr 1fr}
.tile{position:relative;border-radius:var(--r-card);overflow:hidden;min-height:250px;isolation:isolate;display:block}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease);z-index:-2}
.tile::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(6,10,13,.78),rgba(6,10,13,0) 62%);z-index:-1}
.tile:hover img{transform:scale(1.05)}
.tile .cap{position:absolute;inset:auto var(--s5) var(--s5);display:flex;justify-content:space-between;align-items:flex-end;gap:var(--s4);color:#fff}
.tile .cap .t{font:var(--hw) clamp(22px,2.2vw,32px)/1.15 var(--head);letter-spacing:-.02em}
.tile .cap h3{font-size:clamp(22px,2.2vw,32px)}
.tile .more{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#fff;color:#0e1a20;font-weight:700;transition:transform .6s var(--ease),background .3s}
.tile:hover .more{transform:rotate(-45deg);background:var(--accent);color:#fff}
.tile small{display:block;font:600 11px var(--body);letter-spacing:.16em;text-transform:uppercase;opacity:.8;margin-bottom:6px}

/* ---------- Partnerzy ---------- */
.partners{padding:var(--s7) 0;border-block:1px solid var(--line);background:var(--surface)}
.partners .row{display:flex;align-items:center;gap:var(--s7)}
.partners .lbl{flex:none;font:600 12px var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--ink2);max-width:150px;line-height:1.5}
.logos{display:flex;gap:var(--s3);overflow-x:auto;scrollbar-width:none;flex:1;padding:2px}
.logos::-webkit-scrollbar{display:none}
.logos span{flex:none;display:grid;place-items:center;width:168px;height:80px;background:var(--tile);border-radius:16px;border:1px solid rgba(0,0,0,.07);padding:var(--s3) var(--s4);transition:transform .6s var(--ease)}
.logos span:hover{transform:translateY(-3px)}
.logos img{width:100%;height:100%;object-fit:contain}

/* ---------- Sekcje ---------- */
section{padding:var(--s9) 0}
.head{display:grid;grid-template-columns:1fr 1fr;gap:var(--s7);align-items:end;margin-bottom:var(--s8)}
.head p{color:var(--ink2);max-width:56ch}
.about{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(32px,6vw,112px);align-items:center}
.about h2{margin:var(--s5) 0}
.about p{color:var(--ink2);max-width:60ch}
.about .fig{border-radius:var(--r-card);overflow:hidden;background:#fff;border:1px solid var(--line);aspect-ratio:4/3.1}
.about .fig img{width:100%;height:100%;object-fit:cover}
.about .sig{margin-top:var(--s6);font:var(--hw) 22px var(--head);letter-spacing:-.02em}

.services{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s5)}
.svc{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;display:grid;grid-template-columns:.8fr 1.2fr;transition:transform .7s var(--ease),box-shadow .7s var(--ease)}
.svc:hover{transform:translateY(-3px);box-shadow:0 30px 60px -30px rgba(0,0,0,.35)}
.svc .ph{position:relative;min-height:100%}
.svc .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.svc .tx{padding:var(--s6)}
.svc .n{font:600 12px var(--body);letter-spacing:.16em;color:var(--accent)}
.svc h3{margin:var(--s3) 0 var(--s3)}
.svc p{font-size:15px;color:var(--ink2)}
.svc ul{list-style:none;padding:0;margin-top:var(--s4);display:grid;gap:var(--s3)}
.svc li{font-size:14.5px;line-height:1.5;padding-left:26px;position:relative;color:var(--ink)}
.svc li::before{content:"";position:absolute;left:0;top:.5em;width:12px;height:2px;background:var(--accent);border-radius:2px}
.svc li b{font-weight:600}

/* sekcja z charakterem: ogrzewanie klimatyzacją */
.heat{background:var(--dark);color:var(--dark-ink);border-radius:clamp(28px,4vw,56px);margin-inline:clamp(8px,1.5vw,24px);padding:var(--s9) 0;position:relative;overflow:hidden}
.heat::before{content:"";position:absolute;right:-10%;top:-30%;width:60%;aspect-ratio:1;background:radial-gradient(closest-side,color-mix(in srgb,var(--accent) 26%,transparent),transparent)}
.heat .grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(32px,6vw,100px);align-items:center;position:relative}
.heat .eyebrow{color:var(--dark-ink2)}
.heat h2{margin:var(--s5) 0}
.heat p{color:var(--dark-ink2);max-width:54ch}
.big{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--s4);white-space:nowrap;font-family:var(--head);font-weight:var(--hw);letter-spacing:var(--track);line-height:.9}
.big .a{font-size:clamp(44px,6vw,96px);opacity:.45}
.big .b{font-size:clamp(72px,10vw,170px);color:var(--accent)}
.big small{font:500 15px var(--body);letter-spacing:0;color:var(--dark-ink2);margin-left:var(--s2);white-space:nowrap}
.heat .pts{display:grid;gap:var(--s4);margin-top:var(--s6)}
.heat .pts div{padding-top:var(--s4);border-top:1px solid rgba(255,255,255,.14);font-size:15px;color:var(--dark-ink2)}
.heat .pts b{color:var(--dark-ink);font-weight:600}

.why{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s5)}
.why article{padding-top:var(--s5);border-top:2px solid var(--ink)}
.why .n{font:600 12px var(--body);letter-spacing:.16em;color:var(--accent)}
.why h3{margin:var(--s3) 0 var(--s3)}
.why p{font-size:15px;color:var(--ink2)}

.gal{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(180px,17vw,260px);gap:var(--s4)}
.gal figure{position:relative;border-radius:var(--r-img);overflow:hidden;background:var(--surface2)}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.gal figure:hover img{transform:scale(1.04)}
.gal figcaption{position:absolute;left:var(--s3);bottom:var(--s3);padding:6px 14px;border-radius:var(--r-pill);background:rgba(255,255,255,.92);color:#0e1a20;font:600 12px var(--body)}

.contact{background:var(--surface2)}
.cgrid{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(32px,6vw,112px)}
.contact h2{margin:var(--s5) 0}
.contact .lead{color:var(--ink2);max-width:50ch}
.info{display:grid;gap:var(--s4);margin-top:var(--s7)}
.info a,.info div{display:flex;align-items:center;gap:var(--s4);font:500 19px var(--body)}
.info i{flex:none;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--surface);border:1px solid var(--line);font-style:normal;font-size:17px;color:var(--accent)}
form{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:clamp(24px,3vw,44px);display:grid;gap:var(--s4)}
form h3{margin-bottom:var(--s2)}
label{display:grid;gap:6px;font:600 13px var(--body);color:var(--ink2)}
input,textarea{font:400 16px var(--body);color:var(--ink);background:var(--bg);border:1.5px solid var(--line);border-radius:14px;padding:14px 16px;min-height:52px;transition:border-color .3s,box-shadow .3s;width:100%}
textarea{min-height:130px;resize:vertical}
input:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4)}
form .btn{justify-content:center;width:100%}
.note{font-size:12.5px;color:var(--ink2)}

footer{background:var(--dark);color:var(--dark-ink);padding:var(--s8) 0 var(--s6)}
.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:var(--s7)}
footer .logo img{height:44px}
footer p,footer li{color:var(--dark-ink2);font-size:15px;max-width:52ch}
footer ul{list-style:none;padding:0;display:grid;gap:var(--s2)}
footer .fh{font:600 12px var(--body);letter-spacing:.16em;text-transform:uppercase;margin-bottom:var(--s4)}
.copy{margin-top:var(--s8);padding-top:var(--s5);border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;gap:var(--s4);flex-wrap:wrap;font-size:13px;color:var(--dark-ink2)}

/* ---------- Ruch ---------- */
.js .rv{opacity:0;transform:translateY(18px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:calc(var(--i,0)*80ms)}
.js .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}.js .rv{opacity:1;transform:none}}

/* ---------- Mobile ---------- */
@media (max-width:1100px){
  .services{grid-template-columns:1fr}
  .why{grid-template-columns:1fr 1fr}
  .gal{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  nav .lnk{display:none} .menu-btn{display:block}
  nav.open{position:absolute;inset:100% 0 auto;flex-direction:column;align-items:stretch;background:var(--surface);padding:var(--s4);margin:0 16px;border-radius:20px;border:1px solid var(--line)}
  nav.open .lnk{display:block}
  .tel .full{display:none} .tel .short{display:inline} .tel{padding:0 var(--s4)}
  .hero{padding-top:120px}
  .hero-grid,.about,.head,.heat .grid,.cgrid,.fgrid{grid-template-columns:1fr}
  .head{gap:var(--s4);margin-bottom:var(--s7)}
  .tiles{grid-template-rows:none}
  .cta .btn{width:100%;justify-content:center}
  .proof{gap:var(--s5);justify-content:space-between}
  .partners .row{flex-direction:column;align-items:flex-start;gap:var(--s4)} .logos{width:100%}
  .svc{grid-template-columns:1fr} .svc .ph{min-height:200px}
  section{padding:var(--s8) 0}
  .why{grid-template-columns:1fr}
  .two{grid-template-columns:1fr}
}

/* ---------- Podstrony ---------- */
.phero{padding:calc(var(--s9) + 24px) 0 var(--s7);position:relative;overflow:hidden}
.phero::before{content:"";position:absolute;inset:-30% -10% auto auto;width:55vw;height:55vw;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--accent) 12%,transparent),transparent);pointer-events:none}
.crumbs{font-size:14px;color:var(--ink2);display:flex;gap:var(--s2);margin-bottom:var(--s5)}
.crumbs a:hover{color:var(--ink)}
.phero h1{font-size:clamp(40px,5.6vw,76px);max-width:16ch;margin-bottom:var(--s5)}
.phero .lead{font-size:clamp(17px,1.4vw,20px);color:var(--ink2);max-width:58ch}
.subnav{position:sticky;top:70px;z-index:40;padding:var(--s3) 0;background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:blur(14px)}
.subnav .wrap{display:flex;gap:var(--s2);overflow-x:auto;scrollbar-width:none}
.subnav .wrap::-webkit-scrollbar{display:none}
.subnav a{flex:none;min-height:44px;display:inline-flex;align-items:center;padding:0 var(--s5);border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--line);font:500 15px var(--body);transition:background .3s,color .3s,border-color .3s}
.subnav a:hover{border-color:var(--ink)}
.subnav a.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.feat{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,104px);align-items:center;scroll-margin-top:140px}
.feat.rev .fig{order:2}
.feat .fig{border-radius:var(--r-card);overflow:hidden;background:var(--surface2);aspect-ratio:4/3}
.feat .fig img{width:100%;height:100%;object-fit:cover}
.feat h2{margin:var(--s5) 0 var(--s4)}
.feat .sub{font:500 clamp(18px,1.6vw,22px)/1.4 var(--head);color:var(--ink);margin-bottom:var(--s4)}
.feat p{color:var(--ink2);max-width:58ch}
.bens{list-style:none;padding:0;margin:var(--s6) 0 0;display:grid;gap:var(--s4)}
.bens li{padding:var(--s4) 0 0;border-top:1px solid var(--line);font-size:15.5px;color:var(--ink2)}
.bens b{color:var(--ink);font-weight:600}
.feat .btn{margin-top:var(--s6)}
.feat h3.mini{margin:var(--s6) 0 var(--s2)}
.band{background:var(--dark);color:var(--dark-ink);border-radius:clamp(28px,4vw,56px);margin-inline:clamp(8px,1.5vw,24px);padding:var(--s8) 0;position:relative;overflow:hidden}
.band::before{content:"";position:absolute;right:-10%;top:-60%;width:60%;aspect-ratio:1;background:radial-gradient(closest-side,color-mix(in srgb,var(--accent) 26%,transparent),transparent)}
.band .in2{display:flex;justify-content:space-between;align-items:center;gap:var(--s7);flex-wrap:wrap;position:relative}
.band h2{max-width:20ch}
.band p{color:var(--dark-ink2);margin-top:var(--s3);max-width:50ch}
.band .cta{margin:0}
.band .btn-ghost{color:var(--dark-ink);border-color:rgba(255,255,255,.25)}
.band .btn-ghost:hover{border-color:#fff}
.pp{padding:var(--s7) 0}
.pp .lbl{font:600 12px var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--ink2);margin-bottom:var(--s4)}
.pp .logos{flex:none;flex-wrap:wrap;overflow:visible}
.map a{display:inline-flex;margin-top:var(--s4);font-weight:600;color:var(--accent)}
.status{font-size:14px;font-weight:600;min-height:1.4em}
.status.ok{color:#117a43}.status.err{color:#b3151c}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.gal.g3{grid-template-columns:repeat(3,1fr)}
.gal.g3 figure{aspect-ratio:auto}
@media (max-width:1100px){.gal.g3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:900px){
  .feat{grid-template-columns:1fr}.feat.rev .fig{order:0}
  .phero{padding-top:120px}.subnav{top:70px}
  .band .in2{flex-direction:column;align-items:flex-start}
  .band .btn{width:100%;justify-content:center}
}
.more-l{display:inline-flex;gap:var(--s2);margin-top:var(--s5);font:600 15px var(--body);color:var(--accent)}.more-l span{transition:transform .6s var(--ease)}.more-l:hover span{transform:translateX(4px)}
nav a.lnk[aria-current=page]{color:var(--ink);background:var(--line)}
footer a:hover{color:#fff}
.tel .short{display:none}
