@font-face{font-family:Manrope;src:url('fonts/Manrope-VariableFont_wght.ttf') format('truetype');font-style:normal;font-weight:200 800;font-display:swap}
:root{--navy:#385f83;--deep:#123d68;--ink:#0b3262;--blue:#518abb;--sky:#dff0fb;--orange:#ef9236;--orange-ink:#a3510f;--paper:#f8fbfe;--line:#c9dbe9;--body:#36577a;--shadow:0 18px 42px rgba(17,57,93,.12)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:#fbfdff;font:400 16px/1.55 Manrope,Inter,Arial,sans-serif;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
svg{display:block}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit}
button{cursor:pointer}
strong,b{font-weight:750}
h1,h2,h3,p,ul,ol,figure{margin-top:0}
h1,h2,h3{line-height:1.1;letter-spacing:-.035em}
.icon{width:1.3em;height:1.3em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.container{width:min(100% - 44px,1200px);margin-inline:auto;min-width:0}
/* Spokojna powierzchnia treści pod fotograficznym nagłówkiem. */
.site-content{position:relative;isolation:isolate;overflow:hidden;background:#fbfdff}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
.skip-link{position:absolute;z-index:100;left:12px;top:-90px;padding:10px 15px;background:#fff;color:var(--ink);font-weight:800;box-shadow:var(--shadow)}
.skip-link:focus{top:12px}
.eyebrow{margin:0 0 12px;color:var(--orange-ink);font-size:.74rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.button{display:inline-flex;justify-content:center;align-items:center;gap:12px;min-height:48px;padding:11px 19px;border:0;border-radius:4px;font-size:.9rem;font-weight:800;text-align:center;transition:transform .2s ease,background-color .2s ease}
.button .icon{width:1.2em;height:1.2em}
.button:hover{transform:translateY(-2px)}
.button--orange{background:var(--orange);color:#173e60}
.button--orange:hover{background:#ffac59}
.button--outline{border:1px solid var(--ink);background:rgba(255,255,255,.7);color:var(--ink)}
.button--outline:hover{background:#e6f3fc}
.text-link{display:inline-flex;align-items:center;gap:10px;min-height:40px;color:var(--ink);font-size:.92rem;font-weight:800;border-bottom:2px solid var(--orange)}
.text-link .icon{width:1.1em;height:1.1em}
.text-link:hover{color:#a3510f}

/* Navigation */
.site-header{position:relative;z-index:20;background:#123d68;border-bottom:3px solid var(--orange);box-shadow:0 3px 12px rgba(11,50,98,.12)}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:83px}
.site-header__mobile-name{display:none;color:#fff;font-size:1.15rem;font-weight:800;letter-spacing:.06em}
.primary-nav ul{list-style:none;display:flex;align-items:center;gap:5px;padding:0;margin:0}
.primary-nav a{display:inline-flex;align-items:center;min-height:48px;padding:11px 13px;color:#fff;font-size:.94rem;font-weight:750;white-space:nowrap;border:1px solid transparent;border-radius:4px;transition:background-color .15s ease}
.primary-nav a:hover{background:#285780}
.primary-nav a[aria-current=page]{color:#0b3262;background:var(--orange);border-color:var(--orange)}
.primary-nav a:focus-visible{outline-color:#fff}
.header-contact{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:10px 20px;border:1px solid var(--orange);border-radius:4px;background:var(--orange);color:var(--ink);font-size:.94rem;font-weight:800;white-space:nowrap}
.header-contact:hover{background:#ffac59;border-color:#ffac59}
.header-contact[aria-current=page]{border-color:#fff;box-shadow:inset 0 0 0 1px #fff}
.header-contact .icon{width:1.2em;height:1.2em}
.nav-toggle{display:none;align-items:center;gap:8px;border:1px solid #8aabc8;background:transparent;color:#fff;border-radius:4px;padding:9px 12px;font-size:.9rem;font-weight:800}
.nav-toggle[aria-expanded=true]{background:#fff;border-color:#fff;color:var(--ink)}

/* Home: hero and service links */
.hero{position:relative;isolation:isolate;background:#fbfdff;overflow:hidden}
/* Rozbudowany schemat pozostaje tylko w nagłówkach, wewnątrz szerokości treści. */
.hero::before,.page-intro::before{content:"";position:absolute;z-index:-1;inset:0 max(22px,calc((100% - 1200px)/2));background:url('images/background-header-single-line-v2.svg') center/auto 125% no-repeat;opacity:.075;pointer-events:none}
.hero::before{opacity:.06;mask-image:linear-gradient(90deg,#000,rgba(0,0,0,.75) 45%,transparent 76%)}
/* Osobny obraz o ograniczonym rozmiarze; cover zachowuje proporcje fotografii. */
.hero::after{content:"";position:absolute;z-index:-2;top:0;right:max(0px,calc((100% - 1480px)/2));width:min(60%,740px);height:min(100%,490px);background-image:linear-gradient(90deg,#fbfdff,rgba(251,253,255,.9) 12%,rgba(251,253,255,.45) 32%,transparent 65%),linear-gradient(0deg,#fbfdff,transparent 35%),url('images/hero-switchgear-v1.webp');background-size:100% 100%,100% 100%,cover;background-position:center,center,right center;background-repeat:no-repeat;pointer-events:none}
.hero__inner{position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.95fr);gap:44px;align-items:center;min-height:350px;padding-block:40px 28px}
.hero__copy{min-width:0}
.hero h1{max-width:800px;margin:0 0 15px;font-size:clamp(2rem,3.8vw,3.4rem);font-weight:800;color:#062f65;line-height:1.12}
.hero h1 span{color:#c05a08}
.hero__lead{max-width:690px;margin:0;color:#355d86;font-size:clamp(1rem,1.45vw,1.15rem);line-height:1.48}
.hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.hero__mark{position:relative;isolation:isolate;display:flex;flex-direction:column;align-self:start;align-items:center;justify-content:center;min-width:0;margin-top:14px;padding-block:24px}
.hero__mark::before{content:"";position:absolute;z-index:-1;inset:-22px -34px;background:radial-gradient(ellipse,rgba(255,255,255,1) 0 42%,rgba(255,255,255,.94) 56%,rgba(255,255,255,.55) 68%,transparent 80%);pointer-events:none}
.hero__mark img{width:min(100%,440px);height:auto;aspect-ratio:257/101;object-fit:contain;filter:drop-shadow(0 3px 4px rgba(18,61,104,.12))}
.hero__experience{display:inline-block;max-width:100%;margin:18px 0 0;padding:0 0 8px;color:var(--ink);font-size:1rem;line-height:1.4;font-weight:800;border-bottom:2px solid var(--orange)}
.service-rail{position:relative;padding-bottom:15px;background:linear-gradient(180deg,transparent,rgba(248,252,255,.94) 58%,rgba(248,252,255,.8) 87%,transparent)}
.service-rail::before{content:"";position:absolute;top:27px;left:0;right:0;height:2px;background:var(--orange)}
.service-rail ul{position:relative;list-style:none;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin:0;padding:0}
.service-rail li{display:flex;justify-content:center;min-width:0}
.service-rail a{display:flex;flex-direction:column;align-items:center;gap:7px;min-width:66px;color:var(--ink);font-size:.68rem;font-weight:800;text-align:center}
.service-rail a>.icon{width:56px;height:56px;padding:12px;background:#fff;border:2px solid var(--orange);border-radius:50%;stroke-width:1.65;transition:background-color .2s ease,transform .2s ease}
.service-rail a:hover>.icon{background:#ffecdc;transform:translateY(-3px)}
.service-rail a span{max-width:125px;line-height:1.25}

/* Service cards */
.services-section{padding:9px 0 45px;background:linear-gradient(180deg,transparent,rgba(248,252,255,.55) 50%,transparent)}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:24px}
.section-heading h2{font-size:clamp(1.65rem,2.5vw,2.15rem);margin:0}
.section-heading .eyebrow{margin-bottom:5px}
.section-heading--compact{margin-bottom:14px}
.section-heading--compact h2{font-size:1.22rem}
.section-heading--compact .eyebrow{display:none}
.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.service-card{position:relative;isolation:isolate;display:flex;align-items:stretch;min-width:0;min-height:252px;overflow:hidden;border-radius:7px;box-shadow:0 4px 15px rgba(19,61,104,.08)}
.service-card--dark{background:linear-gradient(115deg,#244f78,#123c68);color:#fff;--edge:var(--orange)}
.service-card--light{background:linear-gradient(115deg,#d9effe,#eaf6fd);color:#092f61;--edge:#168ade}
.service-card::after{content:"";position:absolute;z-index:2;inset:0;pointer-events:none;background:var(--edge);clip-path:polygon(54% 0,54.65% 0,43.65% 100%,43% 100%)}
.service-card__media{position:absolute;z-index:0;inset:0 0 0 auto;width:57%;clip-path:polygon(20% 0,100% 0,100% 100%,0 100%)}
.service-card__media img{width:100%;height:100%;object-fit:cover}
.service-card__media--installations img{object-position:80% center}
.service-card__media--measurements img{object-position:78% center}
.service-card__media--solar img{object-position:72% center}
.service-card__media--storage img{object-position:76% center}
.service-card__media--cctv img{object-position:72% center}
.service-card__media--wholesale img{object-position:82% center}
.service-card__content{position:relative;z-index:3;display:flex;flex-direction:column;align-items:flex-start;width:55%;min-width:0;padding:25px 20px 22px 25px}
.service-card h3{max-width:280px;margin:0 0 15px;font-size:clamp(1.25rem,1.65vw,1.55rem);font-weight:800;overflow-wrap:anywhere}
.service-card p{max-width:240px;margin:0 0 18px;font-size:.9rem;line-height:1.42}
.service-card .button{margin-top:auto;min-height:43px;padding:8px 14px;font-size:.82rem;white-space:nowrap}

/* Work, company, contact */
.featured-projects{padding:36px 0 45px;background:linear-gradient(180deg,transparent,rgba(214,237,252,.65) 25% 75%,transparent)}
.featured-projects__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}
.project-tile{position:relative;display:block;min-height:300px;overflow:hidden;border:5px solid #fff;border-radius:4px;box-shadow:var(--shadow);background:#93b4ce}
.project-tile img{width:100%;height:100%;max-height:360px;min-height:300px;object-fit:cover;transition:transform .25s ease}
.project-tile:hover img{transform:scale(1.035)}
.project-tile span{position:absolute;left:12px;bottom:12px;max-width:calc(100% - 24px);padding:10px 13px;background:#fff;color:var(--ink);font-size:.88rem;font-weight:800;box-shadow:0 5px 15px rgba(0,0,0,.12)}
.project-tile span::after{content:"";display:block;width:48px;height:2px;margin-top:7px;background:var(--orange)}
.company-strip{background:transparent}
.company-strip__inner{padding-block:35px}
.company-strip h2{margin:0 0 7px;font-size:clamp(1.35rem,2.25vw,1.75rem)}
.company-strip p{margin:0;color:#466789;font-size:1.02rem}
.audiences{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;list-style:none;margin:24px 0 0;padding:0}
.audiences li{display:flex;align-items:center;gap:11px;min-width:0;padding-right:12px;border-right:1px solid var(--line);color:#28517b;font-size:.68rem;font-weight:800;line-height:1.25;text-transform:uppercase}
.audiences li:last-child{border-right:0}
.audiences .icon{width:34px;height:34px;color:var(--deep);stroke-width:1.5}
.contact-band{position:relative;overflow:hidden;width:min(100% - 44px,1260px);margin:12px auto 30px;border-radius:14px;background:radial-gradient(ellipse at 92% 30%,rgba(81,138,187,.32),transparent 60%),#123d68;color:#fff;box-shadow:0 12px 32px rgba(18,61,104,.13)}
.contact-band__inner{display:flex;align-items:center;justify-content:space-between;gap:26px;min-height:180px;padding-block:25px}
.contact-band__inner{position:relative}
.contact-band h2{margin:0 0 8px;font-size:clamp(1.15rem,1.9vw,1.6rem);color:#fff}
.contact-band__phone{display:inline-flex;align-items:center;gap:14px;font-size:clamp(2.2rem,4vw,3.4rem);font-weight:800;line-height:1.08;letter-spacing:-.035em}
.contact-band__phone .icon{width:.8em;height:.8em;color:var(--orange)}
.contact-band p{display:flex;align-items:center;gap:10px;margin:8px 0 0;font-size:1rem;font-weight:700}
.contact-band p .icon{color:var(--orange)}
.contact-band__button{min-width:205px;min-height:55px}

/* Footer */
.site-footer{background:linear-gradient(180deg,rgba(255,255,255,.25),rgba(255,255,255,.85));border-top:1px solid rgba(81,138,187,.14);color:#355778}
.site-footer__top{display:grid;grid-template-columns:1.35fr .8fr 1.15fr .9fr;gap:34px;padding-block:37px 25px}
.site-footer__identity img{width:170px;height:auto;margin-bottom:15px}
.site-footer__identity p,.site-footer__contact p{font-size:.85rem;line-height:1.6}
.site-footer h2{margin:3px 0 13px;color:var(--ink);font-size:.92rem}
.site-footer__nav ul{list-style:none;margin:0;padding:0}
.site-footer__nav li+li{margin-top:8px}
.site-footer__nav a{font-size:.84rem}
.site-footer a:hover{text-decoration:underline;text-decoration-color:var(--orange);text-underline-offset:4px}
.site-footer__call{display:inline-block;color:var(--ink);font-size:1.15rem;font-weight:800}
.site-footer__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 20px;padding-block:13px;border-top:1px solid #e0ebf3;font-size:.74rem}
.site-footer__credit a{font-weight:750;text-decoration:underline;text-decoration-color:var(--orange);text-underline-offset:3px}

@media(max-width:900px){.site-header__inner{gap:11px}.primary-nav ul{gap:3px}.primary-nav a{padding-inline:11px;font-size:.92rem}.hero__inner{grid-template-columns:minmax(0,1.4fr) minmax(205px,.6fr);gap:20px}.service-card__content{padding:22px 11px 20px 21px}.service-card h3{font-size:1.3rem}.service-card p{font-size:.82rem}.site-footer__top{grid-template-columns:1.2fr .8fr 1.1fr;gap:25px}.site-footer__contact{grid-column:1/-1}}
@media(max-width:1000px){
 .site-header__inner{flex-wrap:wrap;gap:10px;min-height:66px;padding-block:7px}
 .site-header__mobile-name{display:block}
 .nav-toggle{display:none;order:2}
 .js .nav-toggle{display:flex}
 .header-contact{order:1;margin-left:auto;padding:9px 14px;font-size:.9rem;gap:7px}
 .primary-nav{order:3;width:100%;padding:10px 0 8px;border-top:1px solid #5b7b9a}
 .primary-nav ul{flex-direction:column;align-items:stretch;gap:5px}
 .primary-nav a{width:100%;min-height:48px;padding:11px 14px;font-size:1rem;background:#204d77;border:1px solid #527495}
 .js .primary-nav{display:none}
 .js .primary-nav.is-open{display:block}
}
@media(max-width:760px){
 .hero::before,.page-intro::before{inset-inline:16px;opacity:.05}
 .hero::after{right:0;width:100%;height:180px;opacity:.78}
 .container{width:min(100% - 32px,1200px)}
 .hero__inner{grid-template-columns:1fr;gap:19px;min-height:0;padding-block:25px 18px}
 .hero h1{font-size:clamp(1.9rem,6.4vw,2.75rem)}
 .hero__mark{order:-1;align-items:flex-start;justify-content:flex-start;margin:0;padding:8px 0 16px}
 .hero__mark::before{inset:-16px -20px}
 .hero__mark img{width:clamp(220px,64vw,280px)}
 .hero__experience{margin-top:12px;font-size:.95rem}
 .service-rail::before{display:none}
 .service-rail ul{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:13px}
 .service-rail{padding-block:8px 20px}
 .service-rail a{font-size:.62rem}
 .service-rail a>.icon{width:51px;height:51px;padding:10px}
 .service-grid{grid-template-columns:1fr}
 .service-card{min-height:258px}
 .service-card__content{width:55%;padding:25px 16px 22px 25px}
 .service-card h3{font-size:clamp(1.25rem,2.8vw,1.45rem)}
 .service-card p{font-size:.9rem}
 .featured-projects__grid{grid-template-columns:1fr}
 .project-tile,.project-tile img{min-height:270px}
 .company-strip__inner{padding-block:30px}
 .contact-band{width:100%;margin:10px 0 20px;border-radius:0;box-shadow:none}
 .contact-band__inner{flex-direction:column;align-items:flex-start;gap:20px}
 .site-footer__top{grid-template-columns:repeat(2,minmax(0,1fr))}
 .site-footer__contact{grid-column:auto}
}
@media(max-width:480px){
 .site-header__mobile-name{font-size:1rem}
 .nav-toggle{padding:8px 10px;font-size:.86rem}
 .header-contact{padding:8px 12px;font-size:.84rem}
 .hero h1{font-size:clamp(1.75rem,7.8vw,2.15rem)}
 .hero__lead{font-size:1rem}
 .hero__actions{gap:10px;margin-top:18px}
 .hero__actions .button{width:100%}
 .section-heading{align-items:flex-start;flex-direction:column;gap:8px}
 .section-heading--compact{align-items:center;flex-direction:row;gap:9px}
 .section-heading--compact h2{font-size:1rem}
 .section-heading--compact .text-link{font-size:.7rem;white-space:nowrap}
 .service-card{display:flex;flex-direction:column;min-height:0}
 .service-card::after{display:none}
 .service-card__content{order:1;width:100%;min-height:212px;padding:23px 20px 15px}
 .service-card h3{max-width:none;margin-bottom:8px;font-size:1.4rem}
 .service-card p{max-width:none;margin-bottom:12px;font-size:.9rem}
 .service-card .button{margin-top:auto}
 .service-card__media{position:relative;order:2;inset:auto;width:100%;height:160px;margin-top:-12px;clip-path:polygon(0 17%,100% 0,100% 100%,0 100%)}
 .service-card__media img{object-fit:cover}
 .project-tile,.project-tile img{min-height:220px}
 .audiences{grid-template-columns:1fr;gap:12px}
 .audiences li{border-right:0}
 .contact-band__phone{font-size:2.4rem}
 .contact-band p{font-size:.86rem}
 .contact-band__button{width:100%}
 .site-footer__top{grid-template-columns:1fr 1fr;gap:23px 14px}
 .site-footer__identity{grid-column:1/-1}
 .site-footer__contact{grid-column:1/-1}
}
@media(max-width:340px){.service-rail a span{font-size:.57rem}.section-heading--compact h2{font-size:.9rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}}

/* Shared interior pages */
.page-intro{position:relative;isolation:isolate;overflow:hidden;padding:49px 0 46px;background:linear-gradient(113deg,rgba(255,255,255,.83),rgba(220,239,252,.35));border-bottom:1px solid rgba(81,138,187,.12)}
.page-intro--short{padding:34px 0 32px}
.page-intro h1{max-width:900px;margin:0 0 13px;color:#082f62;font-size:clamp(2rem,3.8vw,3.5rem);overflow-wrap:anywhere}
.page-intro p:not(.eyebrow){max-width:760px;margin:0;color:#355d81;font-size:1.08rem}
.page-intro .page-intro__meta{font-size:.85rem!important;font-weight:700;color:#536d80!important}
.breadcrumbs{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-height:48px;padding-block:10px;color:#55708a;font-size:.78rem}
.breadcrumbs a{text-decoration:underline;text-decoration-color:#aec9dc;text-underline-offset:3px}
.breadcrumbs [aria-current=page]{color:var(--ink);font-weight:700;overflow-wrap:anywhere}
.breadcrumbs+.page-intro{padding-top:25px}
.reading-layout{max-width:900px;padding-block:37px 60px;background:radial-gradient(ellipse,rgba(255,255,255,.88) 45%,transparent 75%)}
.rich-text{color:#304f6d;font-size:1rem;line-height:1.75;overflow-wrap:anywhere}
.rich-text>*:last-child{margin-bottom:0}
.rich-text h2,.rich-text h3,.rich-text h4{color:var(--ink);margin:1.6em 0 .55em}
.rich-text h2{font-size:1.6rem}
.rich-text h3{font-size:1.35rem}
.rich-text p,.rich-text ul,.rich-text ol{margin-bottom:1.1em}
.rich-text a{color:#195b98;text-decoration:underline;text-decoration-color:var(--orange);text-underline-offset:3px}
.rich-text img{height:auto;max-width:100%;margin-block:18px}
.rich-text table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse}
.rich-text td,.rich-text th{padding:9px 12px;border:1px solid var(--line)}
.rich-text iframe{max-width:100%}
.back-link{margin-top:30px}

/* Offer and individual service */
.service-overview{background:transparent}
.service-overview__list{padding-block:28px 53px}
.service-overview__item{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:24px;align-items:stretch;padding:28px 0;border-bottom:1px solid var(--line)}
.service-overview__item:nth-child(even) .service-overview__copy{order:2}
.service-overview__item:nth-child(even) .service-overview__image{order:1}
.service-overview__copy{min-width:0;padding:12px 20px 12px 0}
.service-overview__icon{display:flex;align-items:center;justify-content:center;width:58px;height:58px;margin-bottom:16px;border:2px solid var(--orange);border-radius:50%;color:var(--ink)}
.service-overview__icon .icon{width:30px;height:30px}
.service-overview h2{font-size:clamp(1.55rem,2.45vw,2.2rem);margin:0 0 11px}
.service-overview__lead{max-width:590px;color:#43627e;font-size:1rem}
.service-overview__image{min-height:280px;overflow:hidden;border-radius:5px;background:#dceaf2}
.service-overview__image img{width:100%;height:100%;object-fit:cover;object-position:78% center}
.check-list{list-style:none;margin:16px 0 20px;padding:0;display:grid;gap:9px;color:#315675}
.check-list li{position:relative;padding-left:25px}
.check-list li::before{content:"";position:absolute;left:2px;top:.58em;width:11px;height:7px;border-left:2px solid #1b719c;border-bottom:2px solid #1b719c;transform:rotate(-45deg)}
.check-list--large{gap:15px;font-size:1.03rem}
.service-page__hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:37px;align-items:center;padding-block:40px 48px}
.service-page h1{font-size:clamp(2rem,3.6vw,3.25rem);margin:0 0 18px}
.service-page__intro{max-width:600px;color:#365a7b;font-size:1.12rem}
.service-page__image{min-height:320px;overflow:hidden;border-radius:6px;background:#e3f0f7}
.service-page__image img{width:100%;height:100%;object-fit:cover;object-position:78% center}
.service-page__scope{display:grid;grid-template-columns:minmax(0,.55fr) minmax(0,1fr);gap:35px;padding-block:37px 53px;border-top:1px solid var(--line)}
.service-page__scope h2{font-size:clamp(1.55rem,2.5vw,2.1rem);margin:0}

/* Galleries, articles and references */
.archive-section{padding-block:38px 62px}
.archive-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.archive-card{min-width:0;background:#fff;border:1px solid #d9e9f3;border-radius:6px;overflow:hidden;box-shadow:0 8px 24px rgba(18,61,104,.07)}
.archive-card__image{display:flex;align-items:center;justify-content:center;height:210px;background:#d8e9f4;color:var(--navy);overflow:hidden}
.archive-card__image img{width:100%;height:100%;object-fit:cover;transition:transform .2s ease}
.archive-card__image:hover img{transform:scale(1.035)}
.archive-card__image>.icon{width:58px;height:58px}
.archive-card__blank{font-size:2rem;font-weight:800;color:#7aa7c8}
.archive-card__body{padding:17px 18px 20px}
.archive-card__date{margin:0 0 8px;color:#5f7182;font-size:.77rem;font-weight:750}
.archive-card h2{margin:0 0 17px;font-size:1.24rem;line-height:1.25;overflow-wrap:anywhere}
.archive-card h2 a:hover{color:#a3510f}
.archive-card__more{display:inline-flex;align-items:center;gap:8px;color:#15537d;font-size:.81rem;font-weight:800;border-bottom:2px solid var(--orange)}
.archive-card__more .icon{width:1em;height:1em}
.pagination{margin-top:28px;color:var(--ink)}
.pagination ul{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0}
.pagination li a,.pagination li span{display:flex;align-items:center;justify-content:center;min-width:42px;min-height:42px;border:1px solid var(--line);border-radius:3px;padding:7px;color:var(--ink)}
.pagination li a:hover,.pagination .active span{background:var(--navy);color:#fff}
.empty-state{padding:35px;border:1px solid var(--line);background:var(--paper);font-weight:700}
.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:30px}
.photo-grid figure{min-width:0;margin:0}
.photo-grid a{display:block;overflow:hidden;border:1px solid var(--line);background:#e6f1f7}
.photo-grid img{width:100%;height:260px;object-fit:cover;transition:transform .2s ease}
.photo-grid a:hover img{transform:scale(1.025)}
.photo-grid figcaption{padding:8px 3px;color:#536c81;font-size:.83rem}
.photo-grid--documents img{height:380px;object-fit:contain;background:#edf3f7}
.references-section{padding-block:39px 60px}
.references-section h2{font-size:1.7rem}
.reference-names{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;list-style:none;margin:0;padding:0}
.reference-names li{display:flex;align-items:center;justify-content:center;min-height:80px;padding:16px;background:#f5faff;border-bottom:3px solid var(--blue);color:var(--ink);font-weight:800;text-align:center;overflow-wrap:anywhere}

/* Contact */
.contact-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:40px;padding-block:48px 65px}
.contact-layout h2{font-size:clamp(1.45rem,2.3vw,1.9rem);margin:0 0 22px}
.contact-details{padding:27px;background:#eaf5fc;border-top:4px solid var(--blue);align-self:start}
.contact-details__owner{margin:0 0 27px;color:#4a6680}
.contact-details__item{display:flex;align-items:flex-start;gap:14px;margin-top:25px}
.contact-details__item>.icon{width:26px;height:26px;color:#ae5c16}
.contact-details__item>div{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0}
.contact-details__item span{color:#5c7587;font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.contact-details__item a{font-size:1.08rem;font-weight:800}
.contact-details__item a:hover{text-decoration:underline;text-underline-offset:3px}
.contact-details address{font-style:normal;font-size:1.06rem;font-weight:700}
.contact-form-section{min-width:0}
.contact-form{display:grid;gap:17px}
.form-field{min-width:0}
.form-field label{display:block;margin-bottom:7px;font-size:.89rem;font-weight:800}
.form-field input:not([type=checkbox]),.form-field textarea{display:block;width:100%;min-height:48px;padding:11px 12px;border:1px solid #a8c3d6;border-radius:3px;background:#fff;color:var(--ink);font-size:1rem}
.form-field textarea{resize:vertical;min-height:150px}
.form-field input:focus,.form-field textarea:focus{border-color:var(--navy)}
.form-field [aria-invalid=true]{border-color:#aa2b27;background:#fff9f8}
.field-error{margin:5px 0 0;color:#9b2823;font-size:.82rem;font-weight:700}
.form-field--check{display:grid;grid-template-columns:20px minmax(0,1fr);gap:0 10px;align-items:start}
.form-field--check input{width:20px;height:20px;margin:3px 0 0;accent-color:var(--navy)}
.form-field--check label{font-size:.82rem;font-weight:500;line-height:1.55}
.form-field--check label a{font-weight:800;text-decoration:underline;text-decoration-color:var(--orange);text-underline-offset:2px}
.form-field--check .field-error{grid-column:2}
.form-required{margin:-4px 0 0;color:#617486;font-size:.78rem}
.contact-form .button{justify-self:start}
.form-status{margin:0 0 19px;padding:15px 18px;border-left:4px solid;font-size:.9rem;line-height:1.5}
.form-status--success{background:#ecf7f0;border-color:#20794f;color:#155b3c}
.form-status--error{background:#fff1ef;border-color:#aa2b27;color:#7d211d}
.form-status ul{margin:7px 0 0;padding-left:20px}
.form-status a{text-decoration:underline;text-underline-offset:2px}
.hp-field{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}

/* Optional enhanced full-image preview. The original image link remains functional without JS. */
.lightbox-dialog{max-width:min(95vw,1100px);max-height:95vh;padding:40px 18px 18px;border:0;border-radius:5px;background:#fff;color:var(--ink);box-shadow:0 20px 60px rgba(0,0,0,.35)}
.lightbox-dialog::backdrop{background:rgba(6,28,48,.82)}
.lightbox-dialog img{display:block;max-width:100%;max-height:calc(95vh - 110px);width:auto;height:auto;margin:auto}
.lightbox-dialog p{max-width:800px;margin:10px auto 0;font-size:.85rem;text-align:center}
.lightbox-dialog button{position:absolute;right:8px;top:7px;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:0;background:#edf5fb;color:var(--ink);font-size:1.5rem}

@media(max-width:900px){.archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.reference-names{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.service-overview__item,.service-page__hero,.service-page__scope,.contact-layout{grid-template-columns:1fr}.service-overview__item:nth-child(even) .service-overview__copy,.service-overview__item:nth-child(even) .service-overview__image{order:initial}.service-overview__copy{padding:0}.service-overview__image{min-height:210px;max-height:330px}.service-page__hero{padding-block:25px}.service-page__image{min-height:260px}.service-page__scope{gap:16px}.contact-layout{gap:23px}}
@media(max-width:540px){.page-intro{padding-block:35px;background-size:auto,auto 100%}.page-intro h1{font-size:2rem}.archive-grid,.photo-grid{grid-template-columns:1fr}.archive-card__image{height:190px}.photo-grid img{height:auto;max-height:350px;object-fit:contain}.reference-names{grid-template-columns:1fr 1fr;gap:8px}.reference-names li{min-height:65px;padding:10px;font-size:.82rem}.contact-details{padding:20px}.contact-layout{padding-block:27px 45px}.contact-form .button{width:100%}}

.hero h1 span{display:block}
.nav-toggle,.header-contact,.service-card .button,.text-link{min-height:44px}

/* Numery są pobierane po świadomym odsłonięciu, także przy wyłączonym JS. */
.phone-reveal{display:inline-flex;flex-direction:column;align-items:flex-start;max-width:100%;vertical-align:baseline;text-transform:none;letter-spacing:normal}
.phone-reveal__button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;max-width:100%;padding:9px 14px;border:1px solid currentColor;border-radius:4px;background:transparent;color:inherit;font:inherit;font-size:1rem;font-weight:800;line-height:1.25;letter-spacing:normal;text-transform:none;text-align:left;cursor:pointer}
.phone-reveal__button:hover{background:rgba(134,184,222,.14)}
.phone-reveal__button[aria-disabled=true]{cursor:wait;opacity:.7}
.phone-reveal__button.contact-band__phone{font-size:clamp(1.1rem,2vw,1.45rem);padding:13px 18px}
.phone-reveal__link{display:inline-flex;align-items:center;gap:10px;font-weight:800}
.phone-reveal .phone-reveal__status{display:block;max-width:28ch;margin-top:4px;font-size:.78rem;font-weight:500;line-height:1.45;letter-spacing:normal;text-transform:none;color:inherit}
.phone-reveal__status:empty{display:none}
