:root{
  --navy:#07111f;
  --navy-2:#0b1628;
  --graphite:#101722;
  --blue:#176bff;
  --blue-2:#18c9ff;
  --yellow:#ffd24a;
  --text:#0f172a;
  --muted:#64748b;
  --line:#e2e8f0;
  --white:#fff;
  --soft:#f8fafc;
  --shadow:0 20px 60px rgba(15,23,42,.13);
  --radius:24px;
  --container:min(1180px, calc(100vw - 40px));
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:121px}
body{min-height:100%;margin:0;font-family:"Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;color:var(--text);background:linear-gradient(135deg,#07111f,#0b1628);background-attachment:fixed;line-height:1.55}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}button,input,textarea,select{font:inherit}.skip-link{position:absolute;left:-999px;top:16px;background:#fff;color:#000;padding:12px 18px;z-index:999}.skip-link:focus{left:16px}.container{width:var(--container);margin-inline:auto}.site-header{position:fixed;top:0;left:0;right:0;width:100%;z-index:9999;background:rgba(4,10,18,.92);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.08);transition:.25s;transform:translateZ(0);-webkit-transform:translateZ(0);will-change:transform}.site-header.is-scrolled{box-shadow:0 16px 40px rgba(0,0,0,.28);background:rgba(4,10,18,.98)}.nav-wrap{height:120px;display:flex;align-items:center;gap:34px}.brand{margin-right:auto;display:flex;align-items:center;padding-block:20px}.brand img{display:block;height:80px;width:auto;max-width:none}.main-nav{display:flex;align-items:center;gap:30px;color:#dbeafe;font-weight:800;font-size:18px;text-transform:uppercase;letter-spacing:.06em}.main-nav a{position:relative;line-height:1;white-space:nowrap}.main-nav a:after{content:"";position:absolute;left:0;bottom:-11px;width:0;height:3px;background:#18c9ff;border-radius:999px;transform:none;transition:width .25s ease}.main-nav a:hover:after,.main-nav a.is-active:after{width:100%;transform:none}.call-btn,.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:12px;font-weight:900;border:0;cursor:pointer;transition:.25s}.call-btn{padding:13px 20px;background:var(--blue);color:#fff;box-shadow:0 10px 30px rgba(23,107,255,.28)}.call-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}.call-btn:hover,.btn-primary:hover{transform:translateY(-2px);box-shadow:0 18px 38px rgba(23,107,255,.34)}.menu-toggle{display:none;background:transparent;border:0;width:44px;height:44px;padding:10px}.menu-toggle span{display:block;height:2px;margin:6px 0;background:#fff;border-radius:99px}.hero{position:relative;min-height:760px;background:var(--navy);color:#fff;overflow:hidden;padding-top:120px}.hero-bg{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,8,15,.94) 0%,rgba(5,10,18,.78) 33%,rgba(7,17,31,.12) 68%,rgba(7,17,31,.32) 100%),url('../img/hero-photo.webp') 58% center/cover no-repeat}.hero-bg:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 18% 38%,rgba(24,201,255,.15),transparent 30%),linear-gradient(0deg,rgba(3,7,13,.58),transparent 48%)}.hero-grid{position:relative;min-height:640px;display:grid;grid-template-columns:1.1fr .74fr;gap:54px;align-items:start;padding:140px 0 0}.eyebrow{margin:0 0 10px;color:var(--blue);font-size:12px;font-weight:1000;text-transform:uppercase;letter-spacing:.1em}.hero h1,.section-heading h2,.smart-content h2,.contact-info h2,.section-top h2{margin:0;font-size:clamp(38px,5vw,76px);line-height:.98;letter-spacing:-.045em}.hero h1 span{display:block;color:#2f84ff}.hero-lead{font-size:clamp(18px,2vw,23px);max-width:640px;color:#e2e8f0;margin:26px 0 34px}.hero-actions{display:flex;gap:16px;flex-wrap:wrap}.btn{padding:15px 22px}.btn-primary{background:linear-gradient(135deg,var(--blue),#0ea5e9);color:#fff}.btn-outline{background:rgba(255,255,255,.04);color:#fff;border:1px solid rgba(255,255,255,.45)}.hero-cards{display:grid;gap:18px}.hero-card{display:grid;grid-template-columns:64px 1fr;gap:18px;align-items:center;padding:22px;border:1px solid rgba(255,255,255,.18);background:rgba(8,18,34,.75);border-radius:18px;box-shadow:0 20px 50px rgba(0,0,0,.22);backdrop-filter:blur(14px)}.card-icon{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(24,201,255,.6);color:#26c6ff;font-size:30px}.hero-card h3{margin:0 0 3px;font-size:20px}.hero-card p{margin:0;color:#cbd5e1;font-size:14px}.hero-card>span{color:var(--yellow);font-size:24px}.section{padding:92px 0;background:#fff}.section-grid{display:grid;grid-template-columns:240px 1fr;gap:36px;align-items:start}.section-heading h2,.smart-content h2,.contact-info h2,.section-top h2{font-size:clamp(30px,3.2vw,48px);line-height:1.07}.section-heading p:not(.eyebrow),.smart-content p,.contact-info p{color:var(--muted);margin:18px 0 0}.section-heading h2:after,.smart-content h2:after,.contact-info h2:after,.section-top h2:after{content:"";display:block;width:34px;height:3px;background:var(--yellow);border-radius:999px;margin-top:18px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.service-card{min-height:210px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:26px;box-shadow:0 12px 34px rgba(15,23,42,.08);transition:.25s}.service-card:hover{transform:translateY(-6px);box-shadow:0 22px 50px rgba(23,107,255,.14);border-color:#bfdbfe}.service-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:#eff6ff;color:var(--blue);font-size:31px;margin-bottom:18px}.service-card h3{font-size:19px;line-height:1.12;margin:0 0 10px}.service-card p{margin:0;color:var(--muted);font-size:15px}.smart-band{position:relative;background:linear-gradient(135deg,#07111f,#101827);color:#fff;padding:90px 0;overflow:hidden}.smart-band:before{content:"";position:absolute;inset:auto 0 0 0;height:60%;background:radial-gradient(circle at 20% 50%,rgba(24,201,255,.18),transparent 34%),radial-gradient(circle at 78% 28%,rgba(255,210,74,.12),transparent 30%)}.smart-grid{position:relative;display:grid;grid-template-columns:.85fr 1fr;gap:54px;align-items:center}.phone-wrap{position:relative}.phone-wrap:before{content:"";position:absolute;left:5%;right:5%;bottom:2%;height:58%;border-radius:34px;background:radial-gradient(circle at 50% 50%,rgba(24,201,255,.18),rgba(23,107,255,.06) 58%,transparent 78%);filter:blur(18px)}.phone-wrap img{position:relative;display:block;width:min(100%,520px);margin:0 auto;border-radius:28px;box-shadow:0 30px 70px rgba(0,0,0,.34);border:1px solid rgba(255,255,255,.08)}.smart-content p{color:#cbd5e1;max-width:650px}.feature-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:28px 0}.feature-list span{padding:16px;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:rgba(255,255,255,.04);font-weight:900;color:#dbeafe}.process{background:linear-gradient(180deg,#fff,#f8fafc)}.center{text-align:center;max-width:760px;margin:0 auto 44px}.center h2:after{margin-left:auto;margin-right:auto}.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;position:relative}.process-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:0 16px 34px rgba(15,23,42,.06)}.process-card span{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--blue);color:#fff;font-weight:1000;margin-bottom:18px}.process-card h3{margin:0 0 8px}.process-card p{margin:0;color:var(--muted);font-size:15px}.trust{background:#fff;padding-top:74px}.trust-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:40px;align-items:center}.trust-items{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.trust-item{padding:22px;border-radius:20px;background:#f8fafc;border:1px solid var(--line)}.trust-item strong{display:block;font-size:18px;margin-bottom:6px}.trust-item p{margin:0;color:var(--muted);font-size:15px}.realizations{background:#f8fafc}.section-top{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:26px}.section-top a{color:var(--blue);font-weight:900}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.gallery-grid figure{margin:0;position:relative;border-radius:22px;overflow:hidden;background:#fff;box-shadow:0 16px 34px rgba(15,23,42,.08)}.gallery-grid img{aspect-ratio:1.35/1;object-fit:cover;width:100%}.gallery-grid figcaption{position:absolute;left:14px;bottom:14px;background:rgba(4,10,18,.92);color:#fff;padding:8px 12px;border-radius:999px;font-weight:900;font-size:13px}.contact{padding:96px 0;background:linear-gradient(135deg,#07111f,#0b1628);color:#fff}.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:42px;align-items:start}.contact-info p{color:#cbd5e1}.contact-cards{display:grid;gap:12px;margin-top:30px}.contact-cards a,.contact-cards div{padding:18px;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:rgba(255,255,255,.04)}.contact-cards span,.contact-cards small{display:block;color:#aab8cc}.contact-cards strong{display:block;font-size:20px;margin:2px 0;color:#fff}.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;background:#fff;color:var(--text);border-radius:26px;padding:26px;box-shadow:0 30px 70px rgba(0,0,0,.25)}.contact-form label{display:grid;gap:7px;font-size:13px;font-weight:900;color:#475569}.contact-form .wide{grid-column:1/-1}.contact-form input,.contact-form textarea,.contact-form select{width:100%;border:1px solid #dbe3ee;background:#f8fafc;border-radius:12px;padding:13px 14px;outline:none}.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(23,107,255,.12)}.consent{grid-template-columns:auto 1fr!important;align-items:start;font-weight:600!important;color:#64748b!important}.consent input{width:auto;margin-top:3px}.form-note{margin:0;color:#64748b;font-size:13px}.site-footer{background:#040a12;color:#93a4ba;padding:28px 0}.footer-grid{display:flex;align-items:center;justify-content:space-between;gap:20px}.footer-logo img{display:block;height:62px;width:auto;max-width:none}.footer-links{display:flex;gap:18px;font-weight:700}.footer-links a:hover{color:#fff}.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}.reveal.is-visible{opacity:1;transform:translateY(0)}.delay-1{transition-delay:.1s}

.content-page{padding:140px 0 70px;background:transparent}.content-card{max-width:900px;margin:auto;background:#fff;border:1px solid rgba(255,255,255,.12);border-radius:24px;padding:42px;box-shadow:0 30px 70px rgba(0,0,0,.28)}.content-card h1{font-size:clamp(34px,4vw,54px);line-height:1.05;margin:0 0 20px;letter-spacing:-.04em}.content-card h2{margin-top:34px}.content-card p,.content-card li{color:#475569}.content-card a{color:var(--blue);font-weight:900}.back-link{display:inline-flex;margin-top:28px;color:var(--blue);font-weight:900}

@media (max-width:980px){
  html{scroll-padding-top:92px}.nav-wrap{min-height:92px}.brand{padding-block:10px}.brand img{height:58px;width:auto}.menu-toggle{display:block}.main-nav{position:fixed;top:92px;left:20px;right:20px;display:grid;gap:0;background:#07111f;border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:10px;box-shadow:0 24px 60px rgba(0,0,0,.38);transform:translateY(-14px);opacity:0;pointer-events:none;transition:.22s;font-size:16px}.main-nav.is-open{transform:translateY(0);opacity:1;pointer-events:auto}.main-nav a{padding:14px;border-radius:12px}.main-nav a:hover{background:rgba(255,255,255,.06)}.main-nav a:after{display:none}.call-btn{display:none}.hero{padding-top:92px;min-height:auto}.hero-grid{grid-template-columns:1fr;min-height:auto;padding:96px 0 24px}.hero-cards{grid-template-columns:1fr}.section-grid,.smart-grid,.trust-grid,.contact-grid{grid-template-columns:1fr}.section{padding:70px 0}.service-grid{grid-template-columns:repeat(2,1fr)}.process-grid{grid-template-columns:repeat(2,1fr)}.gallery-grid{grid-template-columns:repeat(2,1fr)}.phone-wrap{min-height:auto}.phone-wrap img{width:min(100%,460px);margin:0 auto}.section-top{align-items:flex-start;flex-direction:column}.footer-grid{flex-direction:column;text-align:center}.footer-links{flex-wrap:wrap;justify-content:center}}
@media (max-width:620px){
  :root{--container:min(100vw - 26px,1180px)}.hero h1{font-size:42px}.hero-lead{font-size:17px}.hero-actions,.btn{width:100%}.hero-card{grid-template-columns:48px 1fr;padding:18px}.card-icon{width:44px;height:44px;font-size:23px}.service-grid,.process-grid,.trust-items,.gallery-grid,.contact-form{grid-template-columns:1fr}.feature-list{grid-template-columns:1fr 1fr}.contact-form{padding:20px;border-radius:22px}.content-card{padding:28px}.section-heading h2,.smart-content h2,.contact-info h2,.section-top h2{font-size:34px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.btn,.service-card,.call-btn{transition:none}}


/* Cisco_v1.1 — usługi jako fotorealistyczne kafle, sekcja realizacji usunięta */
.services-photo{
  background:linear-gradient(180deg,#fff 0%,#f8fafc 100%);
}
.services-photo .section-heading{
  max-width:820px;
}
.service-photo-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.service-photo-card{
  position:relative;
  min-height:360px;
  overflow:hidden;
  border-radius:24px;
  background:#07111f;
  box-shadow:0 18px 46px rgba(15,23,42,.14);
  border:1px solid rgba(148,163,184,.24);
  isolation:isolate;
}
.service-photo-card img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.02);
  transition:transform .45s ease, filter .45s ease;
  filter:saturate(.96) contrast(1.02);
}
.service-photo-card:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(180deg,rgba(7,17,31,.10) 0%,rgba(7,17,31,.48) 42%,rgba(4,8,15,.92) 100%),
    radial-gradient(circle at 16% 84%,rgba(23,107,255,.38),transparent 34%);
}
.service-photo-card:hover img{
  transform:scale(1.07);
}
.service-photo-content{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:2;
  padding:24px;
  color:#fff;
}
.service-badge{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  margin-bottom:14px;
  border-radius:14px;
  color:#19c9ff;
  background:rgba(7,17,31,.72);
  border:1px solid rgba(25,201,255,.45);
  box-shadow:0 10px 30px rgba(0,0,0,.22);
  backdrop-filter:blur(10px);
  font-size:24px;
}
.service-photo-card h3{
  margin:0 0 8px;
  font-size:22px;
  line-height:1.08;
}
.service-photo-card p{
  margin:0;
  color:#dbeafe;
  font-size:15px;
  line-height:1.5;
}
.service-photo-card a{
  display:inline-flex;
  margin-top:14px;
  color:#38bdf8;
  font-weight:1000;
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.service-photo-card a:hover{
  color:#fff;
}
@media (max-width:980px){
  .service-photo-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:620px){
  .service-photo-grid{grid-template-columns:1fr}
  .service-photo-card{min-height:340px}
}

/* sesco_v1.2 — zastosowano nowoczesne logo techniczne z białoszarym efektem 3D i niebieskimi ozdobnikami elektronicznymi. */

/* sesco_v1.3 — jaśniejsza wersja logo z wyraźniejszymi niebieskimi akcentami elektronicznymi, dopasowana do czarnego tła nagłówka i stopki. */

/* sesco_v1.5 — uproszczone logo bez niebieskich ozdobników oraz granatowe tło dokumentu w stylu sekcji Kontakt. */

/* sesco_v1.6 — granatowe tło dodane do html oraz body, zgodnie z tłem sekcji Kontakt. */


/* sesco_v1.7 — tło dokumentu zabezpieczone pod iOS / Opera / orientacja pozioma */
html::before{
  content:"";
  position:fixed;
  inset:-20vmax;
  z-index:-2;
  pointer-events:none;
  background:#07111f;
  background:linear-gradient(135deg,#07111f,#0b1628);
}
body::before{
  content:"";
  position:fixed;
  inset:-20vmax;
  z-index:-1;
  pointer-events:none;
  background:#07111f;
  background:linear-gradient(135deg,#07111f,#0b1628);
}
@supports (height:100dvh){
  body{
    min-height:100dvh;
  }
}
@supports (width:100lvw){
  html::before,
  body::before{
    width:140lvw;
    height:140lvh;
  }
}


/* sesco_v1.8 — pełne tło viewportu pod iOS Opera / tryb stacjonarny / poziom */
:root{
  background:#07111f !important;
  background-image:linear-gradient(135deg,#07111f,#0b1628) !important;
  min-width:100%;
}

html{
  background:#07111f !important;
  background-image:linear-gradient(135deg,#07111f,#0b1628) !important;
  background-color:#07111f !important;
  min-width:100%;
  min-height:100%;
  overflow-x:hidden;
}

body{
  background:#07111f !important;
  background-image:linear-gradient(135deg,#07111f,#0b1628) !important;
  background-color:#07111f !important;
  min-width:100%;
  min-height:100vh;
  min-height:100svh;
  min-height:100dvh;
  overflow-x:hidden;
}

/* Nadpisanie ewentualnego białego tła canvasu przez stałą warstwę pełnoekranową. */
body::after{
  content:"";
  position:fixed;
  top:-50vh;
  left:-50vw;
  width:200vw;
  height:200vh;
  z-index:-9999;
  pointer-events:none;
  background:#07111f;
  background-image:linear-gradient(135deg,#07111f,#0b1628);
}

/* Główna strona ma mieć własne sekcje, ale dokument pod spodem zawsze jest granatowy. */
main,
.site-header,
.site-footer{
  position:relative;
}

/* Tryb poziomy i safe-area na iOS. */
@supports (padding:max(0px)){
  body{
    padding-left:env(safe-area-inset-left);
    padding-right:env(safe-area-inset-right);
    box-sizing:border-box;
  }
}



/* sesco_v1.9 — zastosowano nowe logo z hasłem Inteligentne instalacje na transparentnym tle, zwiększono wysokość belki, dodano pionowy oddech wokół logo oraz ustawiono menu wielkimi literami. */

/* sesco_v1.10 — header 120px, logo 80px, większa typografia menu, usunięty przycisk CTA w belce oraz dopracowany odstęp sekcji hero od nagłówka. */

/* sesco_v1.11 — zmniejszono pustą przestrzeń między belką a treścią hero przez podniesienie zawartości i skrócenie wysokości roboczej hero-grid. */


/* sesco_v1.12 — przywrócone i wzmocnione stałe pozycjonowanie górnej belki */
@supports (-webkit-touch-callout:none){
  .site-header{
    position:fixed;
    top:0;
    left:0;
    right:0;
  }
}

/* sesco_v1.13 — zwiększono odstęp między stałą belką 120px a treścią hero; header pozostaje fixed. */


/* sesco_v1.14 — nowa sekcja techniczna, spójna wizualnie z projektem */
.technology-band{
  position:relative;
  overflow:hidden;
  padding:96px 0;
  background:
    radial-gradient(circle at 12% 18%,rgba(24,201,255,.16),transparent 28%),
    radial-gradient(circle at 92% 72%,rgba(23,107,255,.14),transparent 32%),
    linear-gradient(135deg,#07111f,#0b1628);
  color:#fff;
}
.technology-band:before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.03) 1px, transparent 1px);
  background-size:54px 54px;
  mask-image:linear-gradient(180deg,transparent,black 18%,black 78%,transparent);
}
.technology-layout{
  position:relative;
  display:grid;
  grid-template-columns:.92fr 1.08fr;
  gap:42px;
  align-items:start;
}
.technology-intro h2{
  margin:0;
  font-size:clamp(32px,3.5vw,54px);
  line-height:1.04;
  letter-spacing:-.045em;
}
.technology-intro h2:after{
  content:"";
  display:block;
  width:34px;
  height:3px;
  margin-top:20px;
  border-radius:999px;
  background:var(--yellow);
}
.technology-intro p{
  margin:22px 0 0;
  max-width:620px;
  color:#cbd5e1;
}
.tech-tags{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:28px;
}
.tech-tags span{
  padding:10px 13px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:999px;
  background:rgba(255,255,255,.05);
  color:#dbeafe;
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.architecture-stack{
  display:grid;
  gap:14px;
}
.architecture-stack article{
  position:relative;
  padding:24px 24px 24px 92px;
  min-height:154px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:24px;
  background:linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,.035));
  box-shadow:0 24px 60px rgba(0,0,0,.24);
  backdrop-filter:blur(14px);
}
.layer-number{
  position:absolute;
  left:24px;
  top:24px;
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  border-radius:16px;
  color:#18c9ff;
  border:1px solid rgba(24,201,255,.44);
  background:rgba(4,10,18,.62);
  font-weight:1000;
}
.architecture-stack small{
  display:block;
  color:#7dd3fc;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.11em;
  font-size:11px;
}
.architecture-stack h3{
  margin:6px 0 8px;
  font-size:24px;
}
.architecture-stack p{
  margin:0;
  color:#cbd5e1;
  line-height:1.55;
}
.tech-proof-grid{
  position:relative;
  margin-top:28px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}
.tech-proof-card{
  padding:24px;
  min-height:220px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:22px;
  background:rgba(255,255,255,.055);
  box-shadow:0 20px 50px rgba(0,0,0,.18);
  backdrop-filter:blur(12px);
}
.tech-proof-card span{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border-radius:14px;
  margin-bottom:16px;
  color:#18c9ff;
  border:1px solid rgba(24,201,255,.38);
  background:rgba(7,17,31,.65);
  font-size:24px;
}
.tech-proof-card h3{
  margin:0 0 9px;
  font-size:18px;
  line-height:1.15;
}
.tech-proof-card p{
  margin:0;
  color:#cbd5e1;
  font-size:14px;
  line-height:1.55;
}
@media (max-width:980px){
  .technology-layout{grid-template-columns:1fr}
  .tech-proof-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:620px){
  .technology-band{padding:72px 0}
  .architecture-stack article{padding:22px}
  .layer-number{position:static;margin-bottom:14px}
  .tech-proof-grid{grid-template-columns:1fr}
}


/* sesco_v1.15 — Google Fonts: Inter + Rajdhani */
.hero h1,
.section-heading h2,
.smart-content h2,
.contact-info h2,
.section-top h2,
.technology-intro h2,
.content-card h1,
.content-card h2,
.main-nav,
.btn,
.call-btn,
.eyebrow,
.service-photo-card h3,
.process-card h3,
.trust-item strong,
.architecture-stack h3,
.tech-proof-card h3{
  font-family:"Rajdhani","Inter",ui-sans-serif,system-ui,sans-serif;
}
.hero h1,
.section-heading h2,
.smart-content h2,
.contact-info h2,
.section-top h2,
.technology-intro h2{
  font-weight:700;
}

/* sesco_v1.15 — header stale przy górnej krawędzi viewportu */
.site-header,
.site-header.is-scrolled{
  position:fixed!important;
  top:0!important;
  left:0!important;
  right:0!important;
  width:100%!important;
  z-index:100000!important;
  clip-path:none!important;
  transform:translate3d(0,0,0)!important;
  -webkit-transform:translate3d(0,0,0)!important;
  will-change:transform;
}

/* sesco_v1.15 — kafle hero bez fałszywych strzałek */
.hero-card{
  grid-template-columns:64px 1fr!important;
}
.hero-card>span{
  display:none!important;
}

/* sesco_v1.15 — jednolity niebieski styl ikon w hero na desktopie i mobile */
.card-icon,
.hero-card .card-icon,
.hero-card:first-child .card-icon{
  color:#26c6ff!important;
  border-color:rgba(24,201,255,.6)!important;
  background:rgba(7,17,31,.42)!important;
}
.card-icon svg{
  width:30px;
  height:30px;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:2.25;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.card-icon svg path:first-child{
  fill:none;
}
.hero-card:first-child .card-icon svg path{
  fill:none!important;
  stroke:currentColor!important;
}
.service-badge,
.service-photo-card .service-badge{
  color:#19c9ff!important;
  font-family:"Rajdhani","Inter",ui-sans-serif,system-ui,sans-serif;
}
@media (max-width:620px){
  .hero-card{
    grid-template-columns:48px 1fr!important;
  }
  .card-icon svg{
    width:25px;
    height:25px;
  }
}


/* sesco_v1.16 — stabilizacja renderowania sekcji: wyłączone reveal/fade */
.reveal,
.reveal.is-visible,
.delay-1{
  opacity:1!important;
  transform:none!important;
  transition:none!important;
  transition-delay:0s!important;
}


/* sesco_v1.16 — bezpieczne tło dokumentu bez clip-path na sekcjach */
:root,
html,
body{
  background-color:#07111f!important;
}
body{
  overflow-x:hidden;
}


/* sesco_v1.16 — górna belka stale fixed */
.site-header,
.site-header.is-scrolled{
  position:fixed!important;
  top:0!important;
  left:0!important;
  right:0!important;
  width:100%!important;
  z-index:100000!important;
}

/* sesco_v1.17 — zwiększono górny padding hero i zmniejszono dolny, aby przesunąć treść sekcji hero w dół względem tła. */


/* sesco_v1.18 — stabilna animacja podkreślenia menu */
.main-nav a:after{
  content:"";
  position:absolute;
  left:0;
  right:auto;
  bottom:-11px;
  width:0;
  height:3px;
  background:#18c9ff;
  border-radius:999px;
  transform:none!important;
  transform-origin:left center;
  transition:width .25s ease;
}
.main-nav a:hover:after,
.main-nav a.is-active:after{
  width:100%;
  transform:none!important;
}


/* sesco_v1.19 — druga linia hover w menu, animowana od prawej do lewej */
.main-nav a{
  position:relative;
}
.main-nav a:before{
  content:"";
  position:absolute;
  right:0;
  left:auto;
  top:-11px;
  width:0;
  height:3px;
  background:#18c9ff;
  border-radius:999px;
  transform:none!important;
  transform-origin:right center;
  transition:width .25s ease;
}
.main-nav a:hover:before,
.main-nav a.is-active:before{
  width:100%;
  transform:none!important;
}
.main-nav a:after{
  left:0;
  right:auto;
  bottom:-11px;
  width:0;
  height:3px;
  background:#18c9ff;
  border-radius:999px;
  transform:none!important;
  transition:width .25s ease;
}
.main-nav a:hover:after,
.main-nav a.is-active:after{
  width:100%;
  transform:none!important;
}
@media (max-width:980px){
  .main-nav a:before,
  .main-nav a:after{
    display:none!important;
  }
}


/* sesco_v1.20 — synchronizacja obu linii hover i większy poziomy oddech przycisków menu */
.main-nav a{
  position:relative;
  padding-left:12px;
  padding-right:12px;
}
.main-nav a:before,
.main-nav a:after{
  transition-property:width!important;
  transition-duration:.25s!important;
  transition-timing-function:linear!important;
  transition-delay:0s!important;
}
.main-nav a:before{
  top:-11px;
  right:0;
  left:auto;
}
.main-nav a:after{
  bottom:-11px;
  left:0;
  right:auto;
}
@media (max-width:980px){
  .main-nav a{
    padding-left:14px;
    padding-right:14px;
  }
}


/* sesco_v1.21 — cieńsze linie hover w górnym menu */
.main-nav a:before,
.main-nav a:after{
  height:2px!important;
}


/* sesco_v1.22 — idealna synchronizacja górnej i dolnej linii hover w menu */
.main-nav a{
  position:relative;
}
.main-nav a:before,
.main-nav a:after{
  content:"";
  position:absolute;
  width:100%;
  height:2px!important;
  background:#18c9ff;
  border-radius:999px;
  transform:scaleX(0);
  transition:transform .24s linear!important;
  transition-delay:0s!important;
  will-change:transform;
}
.main-nav a:before{
  top:-11px;
  left:0;
  transform-origin:right center;
}
.main-nav a:after{
  bottom:-11px;
  left:0;
  transform-origin:left center;
}
.main-nav a:hover:before,
.main-nav a:hover:after,
.main-nav a.is-active:before,
.main-nav a.is-active:after{
  transform:scaleX(1);
}
@media (max-width:980px){
  .main-nav a:before,
  .main-nav a:after{
    display:none!important;
  }
}


/* sesco_v1.23 — animacja menu naprawiona: jedna warstwa steruje obiema liniami */
.main-nav a{
  position:relative!important;
  padding-left:12px;
  padding-right:12px;
}

/*
  Poprzednio górna i dolna linia były osobnymi pseudo-elementami
  oraz nakładały się na nie starsze reguły z !important.
  Teraz obie linie są rysowane jednym pseudo-elementem :before
  jako dwa tła. Dzięki temu start, czas i koniec animacji są identyczne.
*/
.main-nav a:before{
  content:""!important;
  position:absolute!important;
  left:0!important;
  right:0!important;
  top:-11px!important;
  bottom:-11px!important;
  display:block!important;
  pointer-events:none!important;
  background-image:
    linear-gradient(#18c9ff,#18c9ff),
    linear-gradient(#18c9ff,#18c9ff)!important;
  background-repeat:no-repeat!important;
  background-position:
    right top,
    left bottom!important;
  background-size:
    0 2px,
    0 2px!important;
  transform:none!important;
  transition:
    background-size .24s linear!important;
  transition-delay:0s!important;
  will-change:background-size;
}

/* :after wyłączamy, żeby stare reguły nie doklejały trzeciej linii ani nie nadpisywały animacji */
.main-nav a:after{
  content:""!important;
  display:none!important;
}

.main-nav a:hover:before,
.main-nav a.is-active:before{
  background-size:
    100% 2px,
    100% 2px!important;
  transform:none!important;
}

@media (max-width:980px){
  .main-nav a:before,
  .main-nav a:after{
    display:none!important;
  }
}


/* sesco_v1.24 — finalna, naprawiona animacja hover menu
   Ważne: linie pokazują się WYŁĄCZNIE na hover/focus, nie na .is-active.
   Dzięki temu link aktywnej sekcji nie ma stale widocznej kreski. */
.main-nav a{
  position:relative!important;
  padding-left:12px!important;
  padding-right:12px!important;
}

.main-nav a::before,
.main-nav a::after{
  content:""!important;
  position:absolute!important;
  display:block!important;
  left:0!important;
  right:auto!important;
  width:100%!important;
  height:2px!important;
  background:#18c9ff!important;
  border-radius:999px!important;
  opacity:1!important;
  pointer-events:none!important;
  transition-property:transform!important;
  transition-duration:.24s!important;
  transition-timing-function:linear!important;
  transition-delay:0s!important;
  will-change:transform!important;
  background-image:none!important;
  background-size:auto!important;
  background-position:initial!important;
  background-repeat:initial!important;
}

/* Górna linia: start od prawej, więc rośnie w kierunku lewej */
.main-nav a::before{
  top:-11px!important;
  bottom:auto!important;
  transform:scaleX(0)!important;
  transform-origin:right center!important;
}

/* Dolna linia: start od lewej, więc rośnie w kierunku prawej */
.main-nav a::after{
  top:auto!important;
  bottom:-11px!important;
  transform:scaleX(0)!important;
  transform-origin:left center!important;
}

/* Animacja wyłącznie po najechaniu / focusie klawiaturą */
.main-nav a:hover::before,
.main-nav a:hover::after,
.main-nav a:focus-visible::before,
.main-nav a:focus-visible::after{
  transform:scaleX(1)!important;
}

/* .is-active nie może pokazywać linii stale */
.main-nav a.is-active:not(:hover):not(:focus-visible)::before,
.main-nav a.is-active:not(:hover):not(:focus-visible)::after{
  transform:scaleX(0)!important;
}

/* W menu mobilnym linie hover są wyłączone */
@media (max-width:980px){
  .main-nav a::before,
  .main-nav a::after{
    display:none!important;
  }
}


/* sesco_v1.25 — aktywny przycisk menu podświetlony jak hover */
.main-nav a.is-active::before,
.main-nav a.is-active::after{
  display:block!important;
  transform:scaleX(1)!important;
}
@media (max-width:980px){
  .main-nav a.is-active{
    background:rgba(255,255,255,.08);
    color:#fff;
  }
}


/* sesco_v1.26 — aktywne menu naprawdę wygląda jak hover */
.main-nav a.is-active::before,
.main-nav a.is-active::after,
.main-nav a.is-active:not(:hover):not(:focus-visible)::before,
.main-nav a.is-active:not(:hover):not(:focus-visible)::after{
  display:block!important;
  transform:scaleX(1)!important;
  opacity:1!important;
}

/* Hover/focus nadal działa dokładnie tak samo */
.main-nav a:hover::before,
.main-nav a:hover::after,
.main-nav a:focus-visible::before,
.main-nav a:focus-visible::after{
  transform:scaleX(1)!important;
}

@media (max-width:980px){
  .main-nav a.is-active{
    background:rgba(255,255,255,.08)!important;
    color:#fff!important;
  }
  .main-nav a.is-active::before,
  .main-nav a.is-active::after{
    display:none!important;
  }
}


/* sesco_v1.27 — menu z dodatkową sekcją Dlaczego my + stabilne active */
.main-nav{
  gap:18px!important;
  font-size:16px!important;
}
.main-nav a{
  padding-left:10px!important;
  padding-right:10px!important;
}
.main-nav a.is-active::before,
.main-nav a.is-active::after,
.main-nav a.is-active:not(:hover):not(:focus-visible)::before,
.main-nav a.is-active:not(:hover):not(:focus-visible)::after{
  display:block!important;
  transform:scaleX(1)!important;
  opacity:1!important;
}
@media (max-width:980px){
  .main-nav{
    font-size:16px!important;
  }
  .main-nav a{
    padding-left:14px!important;
    padding-right:14px!important;
  }
  .main-nav a.is-active{
    background:rgba(255,255,255,.08)!important;
    color:#fff!important;
  }
  .main-nav a.is-active::before,
  .main-nav a.is-active::after{
    display:none!important;
  }
}


/* sesco_v1.28 — ciaśniejsze menu i przycisk powrotu do góry */
.main-nav{
  gap:8px!important;
}
.main-nav a{
  padding-left:10px!important;
  padding-right:10px!important;
}

.back-to-top{
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:99990;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-width:92px;
  height:50px;
  padding:0 16px;
  border-radius:14px;
  border:1px solid rgba(24,201,255,.78);
  background:rgba(4,10,18,.92);
  color:#dbeafe;
  box-shadow:0 18px 44px rgba(0,0,0,.32),0 0 24px rgba(24,201,255,.10);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  opacity:0;
  pointer-events:none;
  transform:translateY(16px);
  transition:opacity .22s ease, transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.back-to-top.is-visible{
  opacity:1;
  pointer-events:auto;
  transform:translateY(0);
}
.back-to-top span{
  display:block;
  color:#18c9ff;
  font-size:22px;
  line-height:1;
  transform:translateY(-1px);
}
.back-to-top strong{
  display:block;
  color:#dbeafe;
  font-family:"Rajdhani","Inter",ui-sans-serif,system-ui,sans-serif;
  font-size:14px;
  font-weight:700;
  letter-spacing:.08em;
}
.back-to-top:hover{
  border-color:#18c9ff;
  box-shadow:0 20px 52px rgba(0,0,0,.38),0 0 30px rgba(24,201,255,.20);
  transform:translateY(-2px);
}
.back-to-top:focus-visible{
  outline:3px solid rgba(24,201,255,.32);
  outline-offset:3px;
}
@media (max-width:980px){
  .main-nav{
    gap:0!important;
  }
}
@media (max-width:620px){
  .back-to-top{
    right:16px;
    bottom:16px;
    min-width:54px;
    width:54px;
    height:50px;
    padding:0;
    border-radius:14px;
  }
  .back-to-top strong{
    display:none;
  }
}


/* sesco_v1.29 — subtelniejszy kolor etykiet menu */
.main-nav{
  color:#cbd5e1!important;
}
.main-nav a{
  color:#cbd5e1!important;
  transition:color .18s ease;
}
.main-nav a:hover,
.main-nav a:focus-visible,
.main-nav a.is-active{
  color:#fff!important;
}
@media (max-width:980px){
  .main-nav a{
    color:#cbd5e1!important;
  }
  .main-nav a:hover,
  .main-nav a:focus-visible,
  .main-nav a.is-active{
    color:#fff!important;
  }
}


/* sesco_v1.30 — nieco ciemniejszy jasnoszary kolor etykiet menu */
.main-nav{
  color:#aeb9ca!important;
}
.main-nav a{
  color:#aeb9ca!important;
}
.main-nav a:hover,
.main-nav a:focus-visible,
.main-nav a.is-active{
  color:#fff!important;
}
@media (max-width:980px){
  .main-nav a{
    color:#aeb9ca!important;
  }
  .main-nav a:hover,
  .main-nav a:focus-visible,
  .main-nav a.is-active{
    color:#fff!important;
  }
}





/* sesco_v1.32 — poprawka scrollowania pod fixed headerem
   Poprzednio scroll-padding-top i scroll-margin-top zadziałały razem,
   przez co offset się podwoił. Teraz sekcje nie mają scroll-margin,
   a kliknięcia menu obsługuje JS liczony od rzeczywistej wysokości belki. */
html{
  scroll-padding-top:121px!important;
}
#start,
#uslugi,
#smart-home,
#technologia,
#o-firmie,
#dlaczego-my,
#kontakt{
  scroll-margin-top:0!important;
}
@media (max-width:980px){
  html{
    scroll-padding-top:93px!important;
  }
  #start,
  #uslugi,
  #smart-home,
  #technologia,
  #o-firmie,
  #dlaczego-my,
  #kontakt{
    scroll-margin-top:0!important;
  }
}


/* sesco_v1.33 — pasek przewijania dopasowany do stylu strony */
html{
  scrollbar-width:thin;
  scrollbar-color:#18c9ff #040a12;
}

/* Chrome / Edge / Opera / Safari */
::-webkit-scrollbar{
  width:12px;
  height:12px;
}
::-webkit-scrollbar-track{
  background:#040a12;
  border-left:1px solid rgba(24,201,255,.12);
}
::-webkit-scrollbar-thumb{
  background:
    linear-gradient(180deg,rgba(24,201,255,.95),rgba(23,107,255,.9));
  border:3px solid #040a12;
  border-radius:999px;
}
::-webkit-scrollbar-thumb:hover{
  background:
    linear-gradient(180deg,#38d7ff,#2f84ff);
}
::-webkit-scrollbar-corner{
  background:#040a12;
}


/* sesco_v1.34 — subtelne oddzielenie górnej belki od ciemnych sekcji */
.site-header{
  border-bottom:1px solid rgba(24,201,255,.18)!important;
  box-shadow:
    0 12px 32px rgba(0,0,0,.34),
    0 1px 0 rgba(24,201,255,.16),
    0 18px 34px rgba(24,201,255,.08)!important;
}
.site-header::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-18px;
  height:18px;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(24,201,255,.13),rgba(24,201,255,0));
  filter:blur(7px);
  opacity:.9;
}
.site-header.is-scrolled{
  box-shadow:
    0 14px 38px rgba(0,0,0,.42),
    0 1px 0 rgba(24,201,255,.22),
    0 20px 38px rgba(24,201,255,.10)!important;
}


/* sesco_v1.35 — header 120 px, logo w górnej belce 80 px */
.nav-wrap{
  height:120px!important;
  min-height:120px!important;
}
.site-header .brand{
  padding-top:20px!important;
  padding-bottom:20px!important;
}
.site-header .brand img{
  height:80px!important;
  width:auto!important;
  max-height:80px!important;
}
@media (max-width:980px){
  .nav-wrap{
    min-height:92px!important;
    height:92px!important;
  }
  .site-header .brand{
    padding-top:10px!important;
    padding-bottom:10px!important;
  }
  .site-header .brand img{
    height:58px!important;
    max-height:58px!important;
  }
}


/* sesco_v1.36 — wymuszenie 80 px logo w headerze + cache-busting CSS */
.site-header{
  height:120px!important;
  min-height:120px!important;
}
.site-header .nav-wrap{
  height:120px!important;
  min-height:120px!important;
}
.site-header .brand{
  height:120px!important;
  min-height:120px!important;
  display:flex!important;
  align-items:center!important;
  padding-top:0!important;
  padding-bottom:0!important;
}
.site-header .brand > img{
  display:block!important;
  height:80px!important;
  min-height:0!important;
  max-height:80px!important;
  width:auto!important;
  object-fit:contain!important;
  flex:0 0 auto!important;
}
@media (max-width:980px){
  .site-header{
    height:92px!important;
    min-height:92px!important;
  }
  .site-header .nav-wrap{
    height:92px!important;
    min-height:92px!important;
  }
  .site-header .brand{
    height:92px!important;
    min-height:92px!important;
    padding-top:0!important;
    padding-bottom:0!important;
  }
  .site-header .brand > img{
    height:58px!important;
    max-height:58px!important;
  }
}


/* sesco_v1.37 — realnie mniejsze logo w headerze
   Wcześniejsze wersje miały już 80 px w CSS, więc zmiana nie była widoczna.
   Teraz ustawiamy widoczną wysokość headerowego logo na 72 px,
   przy zachowaniu zewnętrznej wysokości belki 120 px. */
.site-header{
  height:120px!important;
  min-height:120px!important;
}
.site-header .nav-wrap{
  height:120px!important;
  min-height:120px!important;
}
.site-header .brand{
  height:120px!important;
  min-height:120px!important;
  display:flex!important;
  align-items:center!important;
  padding-top:0!important;
  padding-bottom:0!important;
}
.site-header .brand > img{
  display:block!important;
  height:72px!important;
  min-height:0!important;
  max-height:72px!important;
  width:auto!important;
  object-fit:contain!important;
}
@media (max-width:980px){
  .site-header{
    height:92px!important;
    min-height:92px!important;
  }
  .site-header .nav-wrap{
    height:92px!important;
    min-height:92px!important;
  }
  .site-header .brand{
    height:92px!important;
    min-height:92px!important;
  }
  .site-header .brand > img{
    height:54px!important;
    max-height:54px!important;
  }
}
