:root{
  --bg-0:#0A0F14;
  --bg-1:#121820;
  --bg-2:#1A2330;
  --bg-3:#243140;
  --line:#1F2A37;
  --line-bright:#2A3849;
  --line-glow:#3A4B5E;

  --text:#F4F4F7;
  --text-dim:#9CA3AF;
  --text-muted:#6B7280;
  --text-faint:#4B5563;

  /* Brand palette PROENSO — z brand book / logo specification.
     Primary #7CC242 = baza (przyciski, akcenty, linie strukturalne).
     #93D64F = hover/lighter. #4FA34A = darker. #A8D870 = ACCENT/glow only (pistacjowy, desat. z #A6E85B). */
  --green:#7CC242;
  --green-bright:#93D64F;
  --green-dark:#4FA34A;
  --green-deep:#2D6E20;
  --green-accent:#A8D870;     /* glow / hub core / gradient peak — pistacjowy, mniej neon (było #A6E85B) */
  --green-glow:rgba(124,194,66,.20);
  --green-glow-strong:rgba(124,194,66,.35);
  --green-accent-glow:rgba(168,216,112,.55);

  --teal:#1F4259;
  --teal-bright:#2D5A75;
  --teal-deep:#0F2533;
  --teal-glow:rgba(45,90,117,.25);

  --blue:#3B82F6;
  --blue-glow:rgba(59,130,246,.18);
  --orange:#F59E0B;
  --orange-glow:rgba(245,158,11,.18);
  --red:#EF4444;
  --red-glow:rgba(239,68,68,.18);

  --font-sans:'Inter', system-ui, sans-serif;
  --font-display:'Space Grotesk', sans-serif;
  --font-mono:'JetBrains Mono', ui-monospace, monospace;

  --maxw:1480px;
  --gutter:48px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;background:var(--bg-0)}
body{
  font-family:var(--font-sans);
  background:var(--bg-0);
  color:var(--text);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body::before{
  content:'';position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:
    linear-gradient(var(--line) 1px,transparent 1px),
    linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:96px 96px;
  opacity:.25;
  mask-image:radial-gradient(ellipse 1400px 900px at 50% 0%, black 30%, transparent 80%);
  -webkit-mask-image:radial-gradient(ellipse 1400px 900px at 50% 0%, black 30%, transparent 80%);
}
a{color:inherit;text-decoration:none}
.container{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);position:relative;z-index:1}

/* HEADER */
header{
  position:sticky;top:0;z-index:90;
  background:rgba(10,15,20,.78);
  backdrop-filter:blur(20px) saturate(140%);
  -webkit-backdrop-filter:blur(20px) saturate(140%);
  border-bottom:1px solid var(--line);
}
.nav{display:flex;align-items:center;justify-content:space-between;height:76px;gap:24px}
.logo{display:flex;align-items:center;gap:12px;flex-shrink:0}
/* Logo zaprojektowane na jasne tło — na ciemnym landingu rozjaśniamy. Bez drop-shadow (powodował rozmycie tekstu). */
.logo-img{
  height:48px;width:auto;display:block;
  filter:brightness(1.45) saturate(1.05);
}
header .logo-img{height:44px}
footer .logo-img{height:40px}

.nav-menu{display:flex;gap:4px;list-style:none;align-items:center}
.nav-menu>li>a{
  font-size:13px;font-weight:500;color:var(--text-dim);
  padding:9px 14px;border-radius:6px;transition:all .2s;
}
.nav-menu>li>a:hover{color:var(--text);background:var(--bg-1)}
.nav-menu>li>a.active{color:var(--green)}

.nav-right{display:flex;align-items:center;gap:14px;flex-shrink:0}
.lang-switch{
  display:flex;align-items:center;gap:6px;
  padding:8px 12px;border:1px solid var(--line-bright);border-radius:6px;
  font-size:11px;color:var(--text-dim);font-family:var(--font-mono);font-weight:500;
  letter-spacing:.1em;cursor:pointer;transition:all .2s;background:none;
}
.lang-switch:hover{border-color:var(--green);color:var(--text)}
.lang-current{color:var(--green)}

.hub-btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 18px;font-size:13px;font-weight:600;
  background:transparent;color:var(--text);
  border:1px solid var(--green);border-radius:6px;
  letter-spacing:.04em;transition:all .2s;
  position:relative;overflow:hidden;
}
.hub-btn::before{
  content:'';position:absolute;inset:0;background:var(--green);
  transform:translateY(100%);transition:transform .25s;
}
.hub-btn:hover::before{transform:translateY(0)}
.hub-btn:hover{color:#0F2533}
.hub-btn>*{position:relative;z-index:1}
.hub-btn .pulse{
  width:6px;height:6px;border-radius:50%;background:var(--green);
  box-shadow:0 0 8px var(--green);
  animation:pulse 2s ease-in-out infinite;
}
@keyframes pulse{0%,100%{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}}
.hub-btn:hover .pulse{background:#0F2533;box-shadow:none}

.burger{display:none;background:none;border:none;color:var(--text);cursor:pointer;padding:8px}

/* HERO */
.hero{
  position:relative;
  padding:32px 0 56px;        /* kompaktowe padding — całe hero ma się zmieścić w pierwszym ekranie */
  overflow:hidden;
  border-bottom:1px solid var(--line);
}
.hero-bg{
  position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(ellipse 800px 600px at 80% 30%, var(--green-glow) 0%, transparent 60%),
    radial-gradient(ellipse 600px 400px at 20% 70%, var(--teal-glow) 0%, transparent 60%);
}
/* HERO FULL-BLEED LAYOUT — mapa wypełnia prawą połowę aż do prawej krawędzi viewport.
   Override standardowego .container (max-width 1480 + padding 48 each side) → mapa "wystaje". */
.hero > .container{
  max-width:none;       /* zdejmujemy globalny limit 1480 */
  padding-right:0;      /* mapa idzie do samej krawędzi viewport */
}
.hero-inner{
  /* tekst col 540-660px (mieści meta line bez wrap) + map col 1fr.
     gap=0; text col ma własne padding-right.
     min-height oparte o viewport (100svh - header 76px - hero padding 88px - bufor 36px) → 1st screen fit. */
  display:grid;
  grid-template-columns:minmax(540px, 660px) 1fr;
  gap:0;align-items:center;
  position:relative;z-index:2;
  min-height:calc(100svh - 200px);
}
.hero-content{
  padding-right:60px;   /* dystans od mapy */
}
.hero-meta{
  display:flex;align-items:center;gap:14px;margin-bottom:24px;
  font-family:var(--font-mono);font-size:11px;color:var(--text-dim);
  letter-spacing:.18em;text-transform:uppercase;
}
.hero-meta .meta-line{height:1px;flex:1;max-width:60px;background:linear-gradient(90deg,var(--green),transparent)}
.hero-meta .live{display:flex;align-items:center;gap:8px;color:var(--green)}
.hero-meta .live::before{
  content:'';width:6px;height:6px;border-radius:50%;background:var(--green);
  box-shadow:0 0 8px var(--green);animation:pulse 2s ease-in-out infinite;
}

h1{
  font-family:var(--font-display);
  font-size:clamp(56px,4.6vw,78px);   /* spec brief — większy min, podobny max, ciaśniejszy line-height */
  line-height:1.0;
  letter-spacing:-.03em;
  font-weight:600;
  margin-bottom:22px;
}
h1 .line{display:block;line-height:1.0}
h1 .gradient{
  background:linear-gradient(135deg,var(--green) 0%,var(--green-bright) 50%,var(--teal-bright) 120%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  font-weight:500;font-style:italic;line-height:0.98;
}

.hero-sub{
  font-size:18px;color:var(--text-dim);max-width:580px;margin-bottom:26px;line-height:1.55;
}
.hero-sub strong{color:var(--text);font-weight:500}

.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:30px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:16px 28px;font-weight:600;font-size:14px;
  letter-spacing:.02em;
  transition:all .25s cubic-bezier(.4,0,.2,1);cursor:pointer;border:none;
  font-family:inherit;border-radius:6px;
}
.btn-primary{background:var(--green);color:#0F2533}
.btn-primary:hover{background:var(--green-bright);box-shadow:0 12px 40px var(--green-glow);transform:translateY(-2px)}
.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--line-bright)}
.btn-ghost:hover{border-color:var(--green);color:var(--green)}

.hero-stats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:28px;
  padding-top:22px;border-top:1px solid var(--line);
  margin-bottom:22px;          /* odstęp do dolnego paska process-flow */
}
.stat-block{display:flex;flex-direction:column}
.stat-num{
  font-family:var(--font-display);font-size:44px;font-weight:600;
  color:var(--text);line-height:1;letter-spacing:-.02em;
}
.stat-num .plus{color:var(--green);margin-left:2px;font-weight:400}
.stat-label{
  font-size:11px;color:var(--text-muted);
  margin-top:8px;font-family:var(--font-mono);
  letter-spacing:.18em;text-transform:uppercase;
}

/* HERO VISUAL — wide control-center / engineering hub layout (1672×941, ~16:9)
   Hub anchor (Piaseczno 52.073°N, 21.026°E) jako CSS custom properties.
   Wartości w % odnoszą się do .hero-visual; fallbacki na różne breakpointy poniżej. */
/* ===== HERO EUROPE MAP — pełny komponent SVG z czytelną sylwetką Europy =====
   ZERO background, ZERO bitmap, ZERO border. Wszystko transparent overlay.
   Warstwy: europe-layer (silhouette + dots) → flow-layer (arcs + ends) → hub-layer → labels-layer */

.proenso-europe-hero-map.hero-visual{
  position:relative;
  width:100%;            /* wypełnia całe 1fr w grid (do prawej krawędzi viewport) */
  max-width:none;        /* zdjęty cap — mapa może być duża */
  aspect-ratio: 1300 / 820;
  background:transparent !important;
  pointer-events:none; user-select:none;
}
.map-svg{
  display:block;
  width:100%; height:100%;
  overflow:visible;
  background:transparent !important;
}

/* ===== EUROPE REAL MAP — Wikimedia Commons "Blank map of Europe" — 52 country paths
   Transformed via SVG attribute (scale 1.4, translate 52,12). Russia/Caucasus/ME excluded. */
.europe-real path{
  fill:rgba(150,175,195,0.07);
  stroke:rgba(160,190,210,0.30);
  stroke-width:0.5;
  vector-effect:non-scaling-stroke;  /* stroke-width zostaje 0.5px niezależnie od scale */
  opacity:0.92;
  animation:mapBreath 18s ease-in-out infinite;   /* bardzo wolny oddech — 18s, ledwo zauważalny */
}
.europe-real path:hover{
  opacity:1;  /* dla potencjalnej interaktywności w przyszłości */
}

/* ===== FLOW LAYER — Bezier paths z huba do endpointów ===== */
.flow-line-base{
  fill:none;
  stroke:rgba(124,194,66,0.22);     /* subtelna stała baza — 1px @ 0.22 alpha */
  stroke-width:1;
  stroke-linecap:round;
}
.flow-line-active{
  /* delikatny impuls świetlny: krótki dash (10px) z dużym gap (280px) → mały punkt świetlny
     przesuwa się wzdłuż linii w 5s pętli. NIE gruba smuga, NIE laser — pojedyncza iskra. */
  fill:none;
  stroke:rgba(168,216,112,0.85);
  stroke-width:1.4;
  stroke-linecap:round;
  stroke-dasharray:10 280;
  filter:url(#softGlow);
  animation:flowMove 5s linear infinite;
}
/* Procesy WCHODZĄCE do huba (DOSTAWCY, PRODUCENCI, UDT) — reverse direction:
   impuls płynie OD procesu DO huba (komponenty/normy/specyfikacje wpływają do PROENSO). */
.flow-line-active.flow-inbound{
  animation-direction:reverse;
}
.flow-end{
  fill:rgba(168,216,112,0.75);     /* accent #A8D870 — peak zmniejszony (0.92→0.75) — mniej neon */
  filter:url(#softGlow);
  /* puls promienia: SVG <animate attributeName="r"> w HTML — stable na każdej skali */
}

/* ===== HUB — centralny PROENSO Piaseczno
   IMPORTANT: animacje pulsu są w SVG <animate attributeName="r"> wewnątrz HTML, NIE w CSS.
   Powód: CSS transform: scale() z transform-origin px w SVG się "rozjeżdża" przy resize
   (px w CSS != viewBox unit). SVG <animate r> animuje promień natywnie — bulletproof. */
.hub-orbit{
  fill:none;
  stroke:rgba(124,194,66,0.55);     /* mocniejszy stroke ringów — boost vs 0.32 */
  stroke-width:1.6;
}
.hub-core{
  fill:rgba(168,216,112,1);        /* accent #A8D870 — najjaśniejszy punkt huba */
}
.hub-title{
  fill:rgba(255,255,255,0.96);
  font-family:var(--font-display);
  font-size:28px; font-weight:800;
  letter-spacing:2px;
  /* outline dla czytelności na bright glow huba */
  paint-order:stroke;
  stroke:rgba(8,12,18,0.85);
  stroke-width:4;
  stroke-linejoin:round;
}
.hub-subtitle{
  fill:rgba(124,194,66,0.95);
  font-family:var(--font-mono);
  font-size:12px; font-weight:700;
  letter-spacing:4px;
  paint-order:stroke;
  stroke:rgba(8,12,18,0.85);
  stroke-width:3;
  stroke-linejoin:round;
}

/* ===== LABELS LAYER ===== */
.label-link{
  stroke:rgba(124,194,66,0.32);     /* widoczna linia łącząca etykiety — boost vs 0.18 */
  stroke-width:1.2;
  stroke-dasharray:4 6;
  animation:linkShift 14s linear infinite;   /* wolny ruch dashed — premium ambient */
}
.label-icon-ring{
  fill:rgba(8,20,28,0.48);
  stroke:rgba(124,194,66,0.52);
  stroke-width:1.4;
  filter:url(#softGlow);
}
.label-icon-text{
  fill:rgba(124,194,66,0.95);
  font-family:var(--font-mono);
  font-size:11px; font-weight:700;
}
.label-title{
  fill:rgba(124,194,66,0.95);
  font-family:var(--font-display);
  font-size:12px; font-weight:800;
  letter-spacing:1.2px;
}
.label-subtitle{
  fill:rgba(226,234,241,0.72);
  font-family:var(--font-sans);
  font-size:11px; font-weight:400;
}

/* ===== ANIMATIONS — Subtelny impuls przepływu po linii (5s linear loop) ===== */
@keyframes flowMove{
  /* dasharray=[10, 280] → period 290px. Animacja przesuwa offset 0 → -290 = jeden cykl.
     Mały świetlny punkt (10px dash) przesuwa się wzdłuż linii, znika za końcem,
     pauzuje (gap 280px), wraca na początek. Subtelne, eleganckie, nie nachalne. */
  0%   { stroke-dashoffset:0; }
  100% { stroke-dashoffset:-290; }
}
/* USUNIĘTE: pointPulse, corePulse, orbitPulse (transform: scale with transform-origin px → drift)
   Animacje promienia kół (hub orbits, hub core, flow ends) są teraz SVG <animate attributeName="r">
   z calcMode="spline" (ease-in-out) i dłuższym dur (6s/8s) → premium feel, less intensity. */
@keyframes mapBreath{
  0%,100%{ opacity:0.78; }
  50%    { opacity:0.88; }   /* mniejsza amplituda — bardziej subtelne */
}
@keyframes linkShift{
  0%   { stroke-dashoffset:50; }
  100% { stroke-dashoffset:0; }
}

/* ===== A11Y: prefers-reduced-motion ===== */
@media (prefers-reduced-motion:reduce){
  /* CSS animations OFF */
  .europe-real path, .flow-line-active, .label-link{
    animation:none !important;
  }
  /* SVG <animate> elements — w SVG nie ma standardu prefers-reduced-motion,
     ale można zatrzymać przez display:none na <animate> elementach */
  .map-svg animate, .map-svg animateMotion, .map-svg animateTransform{
    display:none;
  }
}

/* PROCESS FLOW — pasek pod hero-visual, rozciąga się na obie kolumny gridu .hero-inner */
.hero-flow{
  grid-column:1 / -1;
  margin-top:48px;
  /* Right margin = wartość gutter; container ma padding-right:0 dla full-bleed mapy,
     ale process-flow bar ma symetryczny gutter, żeby nie szedł do krawędzi viewport */
  margin-right:var(--gutter);
  width:auto;
  display:flex;align-items:center;gap:24px;
  padding:14px 20px;
  background:rgba(18,24,32,.6);
  border:1px solid var(--line-bright);
  border-radius:8px;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  flex-wrap:wrap;
}
.hero-flow-status,
.hero-flow-sync{
  display:flex;flex-direction:column;gap:2px;
  font-family:var(--font-mono);
  flex-shrink:0;
}
.hero-flow-sync{margin-left:auto;text-align:right}
.hero-flow-tag{
  font-size:9px;color:var(--text-muted);
  letter-spacing:.22em;text-transform:uppercase;font-weight:500;
}
.hero-flow-state{
  font-size:11px;color:var(--green-bright);
  letter-spacing:.18em;font-weight:600;
  display:inline-flex;align-items:center;gap:6px;
}
.dot{display:inline-block;width:6px;height:6px;border-radius:50%}
.dot-green{background:var(--green-bright);box-shadow:0 0 6px var(--green-bright)}
.dot.pulse{animation:dotPulse 1.6s ease-in-out infinite}
@keyframes dotPulse{
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:.4;transform:scale(.85)}
}
.hero-flow-steps{
  display:flex;align-items:center;gap:18px;
  flex-wrap:wrap;flex:1;justify-content:center;
}
.flow-step{
  display:flex;flex-direction:column;align-items:center;gap:6px;
  color:var(--text-dim);
  font-family:var(--font-mono);font-size:9px;font-weight:600;
  letter-spacing:.18em;
  position:relative;
  min-width:64px;
}
.flow-step svg{width:20px;height:20px;color:var(--green-bright);opacity:.85}
.flow-step::after{
  content:'';position:absolute;right:-13px;top:9px;
  width:8px;height:1px;background:var(--line-bright);
}
.flow-step:last-child::after{display:none}

/* COMMON */
section{padding:128px 0;position:relative;border-bottom:1px solid var(--line)}
.section-head{margin-bottom:80px;max-width:920px;padding-right:16px}
.section-tag{
  font-family:var(--font-mono);font-size:11px;color:var(--green);
  letter-spacing:.2em;text-transform:uppercase;margin-bottom:20px;
  display:inline-flex;align-items:center;gap:10px;font-weight:500;
}
.section-tag::before{content:'';width:24px;height:1px;background:var(--green)}
h2{
  font-family:var(--font-display);
  font-size:clamp(32px,4vw,50px);
  line-height:1.08;letter-spacing:-.02em;font-weight:500;
  margin-bottom:24px;
  /* italic .accent ma slant — overflow-wrap chroni długie słowa typu "wymagających" */
  overflow-wrap:break-word;
  word-wrap:break-word;
  hyphens:auto;
}
h2 .accent{padding-right:6px}
h2 strong{font-weight:600}
h2 .accent{
  background:linear-gradient(135deg,var(--green),var(--green-bright));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  font-style:italic;
}
.section-lead{font-size:18px;color:var(--text-dim);line-height:1.6;max-width:680px}

/* HUB DEFINITION */
#hub-definition{background:var(--bg-1)}
.hub-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.hub-points{display:flex;flex-direction:column}
.hub-point{
  padding:28px 0;border-top:1px solid var(--line);
  display:grid;grid-template-columns:60px 1fr;gap:20px;align-items:start;
}
.hub-point:last-child{border-bottom:1px solid var(--line)}
.hub-point-num{font-family:var(--font-mono);font-size:12px;color:var(--green);font-weight:600;letter-spacing:.1em}
.hub-point h3{font-family:var(--font-display);font-size:20px;font-weight:600;margin-bottom:8px}
.hub-point p{font-size:15px;color:var(--text-dim);line-height:1.6}

/* SOLUTIONS */
#solutions{background:var(--bg-0)}
.solutions-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:0;
  border-left:1px solid var(--line);border-top:1px solid var(--line);
}
.solution-card{
  padding:44px 36px;
  border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  background:var(--bg-0);transition:all .35s;position:relative;
  display:flex;flex-direction:column;min-height:300px;
}
.solution-card:hover{background:var(--bg-1)}
.solution-card::before{
  content:'';position:absolute;top:0;left:0;height:1px;width:0;
  background:var(--green);transition:width .4s;
}
.solution-card:hover::before{width:100%}
.solution-icon{width:44px;height:44px;color:var(--green);margin-bottom:28px}
.solution-icon svg{width:100%;height:100%}
.solution-card h3{font-family:var(--font-display);font-size:20px;font-weight:600;margin-bottom:12px}
.solution-card p{font-size:14px;color:var(--text-dim);line-height:1.6;margin-bottom:24px;flex:1}
.solution-meta{
  font-family:var(--font-mono);font-size:10px;color:var(--text-muted);
  letter-spacing:.15em;text-transform:uppercase;
  display:flex;align-items:center;gap:8px;
}
.solution-meta .arrow{transition:transform .25s;color:var(--green)}
.solution-card:hover .solution-meta .arrow{transform:translateX(6px)}

/* SECTORS */
#sectors{background:var(--bg-1);padding:96px 0}
.sectors-strip{
  /* 14 sektorów = 7×2 na desktop, 2×7 na mobile (zero pustych cells) */
  display:grid;grid-template-columns:repeat(7,1fr);
  gap:1px;background:var(--line);border:1px solid var(--line);
}
.sector{
  padding:28px 22px;background:var(--bg-1);
  display:flex;flex-direction:column;gap:8px;
  transition:background .25s;cursor:default;
}
.sector:hover{background:var(--bg-2)}
.sector-icon{color:var(--green);width:24px;height:24px;margin-bottom:4px}
.sector-name{font-family:var(--font-display);font-size:14px;font-weight:600}
.sector-detail{font-size:11px;color:var(--text-muted);font-family:var(--font-mono)}

/* PARTNERS */
#partners{background:var(--bg-0)}
.partners-stats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  border:1px solid var(--line);margin-bottom:64px;
}
.partners-stat{
  padding:32px 28px;border-right:1px solid var(--line);
  background:var(--bg-1);position:relative;
}
.partners-stat:last-child{border-right:none}
.partners-stat::before{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:var(--green);opacity:.6;
}
.partners-stat:nth-child(2)::before{background:var(--blue);opacity:.6}
.partners-stat:nth-child(3)::before{background:var(--orange);opacity:.6}
.partners-stat:nth-child(4)::before{background:var(--green-bright);opacity:.85}
.partners-stat-num{
  font-family:var(--font-display);font-size:36px;font-weight:700;
  color:var(--text);line-height:1;
}
.partners-stat-num .plus{color:var(--green);font-weight:400;margin-left:2px}
.partners-stat-label{
  font-size:10px;color:var(--text-muted);margin-top:10px;
  font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;
}

.partners-tier-head{margin:64px 0 32px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.partners-tier-head:first-of-type{margin-top:0}
.tier-tag{
  font-family:var(--font-mono);font-size:10px;color:var(--green);
  letter-spacing:.2em;text-transform:uppercase;font-weight:600;
  padding:5px 11px;border:1px solid var(--green);border-radius:3px;
}
.tier-tag.tier-tag-own{
  border-color:var(--green-bright);color:var(--green-bright);
  background:var(--green-glow);
}
.tier-title{font-family:var(--font-display);font-size:24px;font-weight:600}
.tier-desc{flex-basis:100%;font-size:14px;color:var(--text-dim);margin-top:6px;line-height:1.6}

.partners-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}
.partner-card{
  padding:32px 28px;border:1px solid var(--line);background:var(--bg-1);
  transition:all .3s;position:relative;overflow:hidden;
}
.partner-card:hover{border-color:var(--green);transform:translateY(-3px)}
.partner-card::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,var(--green),transparent);
  transform:scaleX(0);transform-origin:left;transition:transform .4s;
}
.partner-card:hover::after{transform:scaleX(1)}

.partner-region{
  font-family:var(--font-mono);font-size:10px;color:var(--green);
  letter-spacing:.18em;text-transform:uppercase;margin-bottom:14px;
  display:flex;justify-content:space-between;align-items:baseline;
}
.partner-rank{
  font-family:var(--font-display);font-size:14px;font-weight:700;
  color:var(--green-bright);letter-spacing:0;text-transform:none;
}
.partner-name{font-family:var(--font-display);font-size:22px;font-weight:600;color:var(--text);margin-bottom:6px}
.partner-type{font-size:13px;color:var(--text-dim);margin-bottom:20px;line-height:1.5}
.partner-tags{display:flex;flex-wrap:wrap;gap:6px}
.tag{
  font-size:10px;font-family:var(--font-mono);font-weight:500;
  padding:4px 9px;border:1px solid var(--line-bright);
  color:var(--text-muted);letter-spacing:.05em;border-radius:3px;
}
.tag.tag-own{background:var(--green-glow);color:var(--green-bright);border-color:var(--green)}

/* legacy partner-card-own — pozostawione fallback, ale moduł zastąpiony przez .own-production */
.partner-card-own{
  background:linear-gradient(135deg,var(--bg-1) 0%,rgba(31,66,89,.4) 100%);
  border-color:var(--green);
}
.partner-card-own::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--green-bright),var(--teal-bright));
}
.partner-models-badge{
  position:absolute;top:24px;right:24px;
  font-family:var(--font-mono);font-size:11px;color:var(--green-bright);
  letter-spacing:.08em;font-weight:600;
  padding:6px 12px;background:rgba(124,194,66,.12);
  border:1px solid var(--green);border-radius:3px;
}

/* ===== OWN PRODUCTION MODULE — "PROENSO jako producent" =====
   Strategiczny moduł między Tier 1 a Tier 2. Wizualnie spokojniejszy niż neonowy panel —
   subtelny zielony akcent tylko na top-line + cienkim borderze. Zielone identyfikatory
   przeniesione na wewnętrzne elementy (badge, stat-card, bullets, accents). */
.own-production{
  margin:64px 0 32px;
  position:relative;
  border:1px solid rgba(124,194,66,0.18);    /* mocno wyciszony border (było var(--green)) */
  background:var(--bg-1);                    /* tło spójne z resztą strony, bez teal-gradientu */
  border-radius:6px;
  overflow:hidden;
}
.own-production::before{
  /* delikatna 1px linia akcentu na górze — z transparentnymi krawędziami, fade w środku */
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg, transparent 0%, rgba(124,194,66,0.45) 50%, transparent 100%);
  z-index:2;
}
.own-production::after{
  /* delikatny technical grid w tle — mocno przyciemniony (z 0.035 do 0.018) */
  content:'';position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(124,194,66,.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(124,194,66,.018) 1px, transparent 1px);
  background-size:32px 32px;
  background-position:0 0;
  z-index:0;
}
.own-production-grid{
  display:grid;
  grid-template-columns:1.55fr 1fr;
  gap:48px;
  padding:48px 56px;
  position:relative;
  z-index:1;
}

/* LEFT COLUMN — content */
.op-badge{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-mono);font-size:10px;color:var(--green-bright);
  letter-spacing:.22em;font-weight:600;
  padding:7px 14px;border:1px solid rgba(124,194,66,0.42);border-radius:3px;
  background:rgba(124,194,66,0.10);
  margin-bottom:24px;
}
.op-badge-dot{
  width:6px;height:6px;border-radius:50%;background:var(--green-bright);
  box-shadow:0 0 8px var(--green-bright);
  animation:pulse 2s ease-in-out infinite;
}
.op-title{
  font-family:var(--font-display);
  font-size:clamp(28px,2.4vw,38px);
  line-height:1.1;letter-spacing:-.02em;font-weight:600;
  margin-bottom:14px;
}
.op-title-accent{
  background:linear-gradient(135deg, var(--green) 0%, var(--green-bright) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  font-style:italic;font-weight:500;
}
.op-lead{
  font-size:15px;color:var(--text-dim);line-height:1.65;
  margin-bottom:28px;max-width:560px;
}
.op-lead strong{color:var(--text);font-weight:500}

.op-bullets{
  list-style:none;display:grid;
  grid-template-columns:1fr 1fr;gap:14px;
}
.op-bullets li{
  display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;
  padding:14px 18px;
  border-left:2px solid rgba(124,194,66,0.45);   /* dimmer green stripe */
  background:rgba(124,194,66,.025);
}
.op-bullet-num{
  font-family:var(--font-mono);font-size:11px;color:var(--green-bright);
  letter-spacing:.1em;font-weight:600;line-height:1;padding-top:3px;
}
.op-bullets li > div{display:flex;flex-direction:column;gap:3px;min-width:0}
.op-bullets li strong{
  font-family:var(--font-display);font-size:14px;font-weight:600;
  color:var(--text);
}
.op-bullets li > div span{font-size:12px;color:var(--text-dim);line-height:1.5}

/* RIGHT COLUMN — stat + accents */
.op-aside{display:flex;flex-direction:column;gap:18px}
.op-stat{
  padding:28px 22px;
  border:1px solid rgba(124,194,66,0.32);    /* wyciszony border (było var(--green) = 1.0) */
  background:rgba(124,194,66,.04);            /* mniej intensywne tło */
  border-radius:6px;
  text-align:center;
  position:relative;
}
.op-stat::before{
  content:'';position:absolute;inset:6px;
  border:1px solid rgba(124,194,66,.10);border-radius:4px;   /* dimmer inner-border */
  pointer-events:none;
}
.op-stat-meta{
  display:block;
  font-family:var(--font-mono);font-size:10px;color:var(--green-bright);
  letter-spacing:.22em;font-weight:500;margin-bottom:6px;
}
.op-stat-num{
  display:inline-block;
  font-family:var(--font-display);font-size:64px;font-weight:600;
  color:var(--text);line-height:1;letter-spacing:-.02em;
}
.op-stat-plus{color:var(--green);font-weight:400;margin-left:2px;font-size:48px}
.op-stat-label{
  display:block;font-size:12px;color:var(--text-dim);
  margin-top:10px;line-height:1.4;
  font-family:var(--font-mono);letter-spacing:.05em;
}

.op-accents{
  list-style:none;display:flex;flex-direction:column;gap:10px;
}
.op-accents li{
  display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;
  padding:13px 16px;
  border:1px solid var(--line);
  background:var(--bg-1);
  transition:border-color .25s,background .25s;
}
.op-accents li:hover{
  border-color:var(--green);
  background:rgba(124,194,66,.04);
}
.op-accents li svg{
  width:22px;height:22px;color:var(--green);
  flex-shrink:0;
}
.op-accents li > div{display:flex;flex-direction:column;gap:2px;min-width:0}
.op-accents li strong{
  font-family:var(--font-display);font-size:13px;font-weight:600;
  color:var(--text);
}
.op-accents li > div span{font-size:11px;color:var(--text-muted);line-height:1.4}

/* RESPONSIVE — single column poniżej tablet */
@media (max-width:1100px){
  .own-production-grid{
    grid-template-columns:1fr;
    gap:32px;
    padding:36px 32px;
  }
  .op-bullets{grid-template-columns:1fr}
  .op-stat-num{font-size:56px}
}
@media (max-width:600px){
  .own-production{margin:48px 0 24px}
  .own-production-grid{padding:28px 22px;gap:24px}
  .op-stat-num{font-size:48px}
  .op-stat-plus{font-size:36px}
}

.partners-list{list-style:none;border:1px solid var(--line);background:var(--bg-1)}
.partners-list li{
  display:grid;grid-template-columns:2.5fr 1fr 1fr;gap:16px;
  padding:18px 26px;border-bottom:1px solid var(--line);
  align-items:center;transition:background .2s,padding .2s;
}
.partners-list li:last-child{border-bottom:none}
.partners-list li:hover{background:var(--bg-2);padding-left:34px}
.partners-list li>strong{font-family:var(--font-display);font-size:15px;font-weight:600;color:var(--text)}
.partners-list li>span{font-size:13px;color:var(--text-dim);font-family:var(--font-mono);letter-spacing:.05em}
.partners-list li>span:last-child{color:var(--green);text-align:right;font-weight:600}

.partners-extras{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:36px}
.partners-extras-block{
  padding:26px 30px;border:1px solid var(--line);background:var(--bg-1);
  transition:border-color .2s;
}
.partners-extras-block:hover{border-color:var(--green)}
.partners-extras-label{
  font-family:var(--font-mono);font-size:10px;color:var(--green);
  letter-spacing:.2em;text-transform:uppercase;font-weight:600;
  margin-bottom:14px;display:block;
}
.partners-extras-text{font-size:14px;color:var(--text-dim);line-height:1.75}
.partners-extras-text strong{color:var(--text);font-weight:500}

.partners-disclaimer{
  margin-top:40px;padding:20px 24px;border:1px solid var(--line-bright);
  background:linear-gradient(135deg,var(--bg-1) 0%,var(--bg-2) 100%);
  display:flex;gap:14px;align-items:flex-start;border-radius:6px;
}
.partners-disclaimer svg{width:18px;height:18px;color:var(--green);flex-shrink:0;margin-top:2px}
.partners-disclaimer p{font-size:13px;color:var(--text-dim);line-height:1.55}

.partners-list-note{
  font-size:12px;color:var(--text-muted);margin-top:14px;
  font-family:var(--font-mono);letter-spacing:.05em;line-height:1.5;
}

/* AI & DIGITAL */
#ai-digital{
  background:var(--bg-1);
  background-image:radial-gradient(ellipse 600px 400px at 30% 50%, var(--green-glow) 0%, transparent 70%);
  padding-top:64px;            /* override globalnego section{padding:128px 0} — sekcja startuje ~64px wyżej */
}
.ai-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.ai-visual{
  /* +20% skala (520→620), przesunięte w prawo (margin-left:auto w obrębie kolumny grid),
     40px w dół żeby środek diagramu siedział optycznie na linii kafelków po lewej.
     Subtelny radial green glow w tle — bez ramki, bez panelu, tylko świecenie pod diagramem. */
  aspect-ratio:1/1;
  max-width:620px;
  width:100%;
  position:relative;
  display:flex;align-items:center;justify-content:center;
  margin-left:auto;
  margin-top:40px;
  background-image:radial-gradient(circle at center, rgba(124,194,66,0.10) 0%, rgba(124,194,66,0.04) 35%, transparent 62%);
}
.ai-visual svg{width:100%;height:100%;overflow:visible;position:relative;z-index:1}

/* AI TEAM FLOW — 3-warstwowy schemat: AI SUPPORT → ZESPÓŁ PROENSO → KORZYŚĆ DLA KLIENTA */
.ai-team-flow{width:100%;height:100%;overflow:visible}

/* layer tags + dividers (mono, subtelne) */
.ai-layer-tag{
  font-family:var(--font-mono);
  font-size:8px;
  font-weight:500;
  fill:var(--green);
  letter-spacing:.22em;
}
.ai-layer-divider{
  stroke:var(--line);
  stroke-width:0.6;
  opacity:0.5;
}

/* AI MODULES (warstwa 1 — top) — subtelne pigułki */
.ai-mod-bg{
  fill:rgba(8,20,28,0.55);
  stroke:rgba(124,194,66,0.42);
  stroke-width:1;
}
.ai-mod-bg-secondary{
  stroke-opacity:0.28;
}
.ai-mod-icon{
  color:var(--green);
  stroke:var(--green);
}
.ai-mod-title{
  font-family:var(--font-display);
  font-size:9px;
  font-weight:700;
  fill:var(--text);
  letter-spacing:.08em;
}
.ai-mod-sub{
  font-family:var(--font-mono);
  font-size:7px;
  fill:var(--text-dim);
  letter-spacing:.05em;
}

/* TEAM CORE (warstwa 2 — środek, najmocniejsza wizualnie) */
.ai-team-bg{
  fill:rgba(8,20,28,0.78);
  stroke:rgba(124,194,66,0.55);
  stroke-width:1.4;
}
.ai-team-pulse{
  fill:none;
  stroke:rgba(168,216,112,0.65);
  stroke-width:1.4;
  pointer-events:none;
}
.ai-team-meta{
  font-family:var(--font-mono);
  font-size:7px;
  fill:var(--green);
  letter-spacing:.22em;
  font-weight:500;
}
.ai-team-title{
  font-family:var(--font-display);
  font-size:18px;
  font-weight:700;
  fill:var(--text);
  letter-spacing:.05em;
}
.ai-team-sub{
  font-family:var(--font-display);
  font-size:11px;
  fill:var(--green-bright);
  font-weight:600;
}
.ai-team-tag{
  font-family:var(--font-mono);
  font-size:7px;
  fill:var(--text-muted);
  letter-spacing:.18em;
  font-weight:500;
}

/* OUTCOMES (warstwa 3 — dolna, korzyść dla klienta) */
.ai-out-bg{
  fill:rgba(8,20,28,0.62);
  stroke:rgba(124,194,66,0.32);
  stroke-width:1;
}
.ai-out-title{
  font-family:var(--font-display);
  font-size:9px;
  font-weight:700;
  fill:var(--green-bright);
  letter-spacing:.08em;
}
.ai-out-sub{
  font-family:var(--font-mono);
  font-size:7px;
  fill:var(--text-dim);
  letter-spacing:.05em;
}

/* FLOW PATHS — subtelne łukowe linie między warstwami */
.ai-flow-base{
  fill:none;
  stroke:rgba(124,194,66,0.32);   /* lekko mocniej (było 0.22) — czytelne na większym diagramie */
  stroke-width:0.9;
  stroke-linecap:round;
}
/* particles płynące po liniach — bardzo małe, premium */
.ai-flow-particle{
  fill:rgba(168,216,112,0.68);                  /* było 0.85 — mniej neon */
  filter:drop-shadow(0 0 2px rgba(168,216,112,0.4));   /* było 3px @ 0.6 */
}
.ai-flow-particle-strong{
  fill:rgba(168,216,112,0.78);                  /* było 0.95 */
  filter:drop-shadow(0 0 3px rgba(168,216,112,0.5));   /* było 4px @ 0.75 */
}

.ai-features{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:26px}
.ai-feature{
  padding:20px;border:1px solid var(--line);background:var(--bg-2);
  transition:border-color .2s;
}
.ai-feature:hover{border-color:var(--green)}
.ai-feature-icon{color:var(--green);width:18px;height:18px;margin-bottom:10px}
.ai-feature h4{font-family:var(--font-display);font-size:14px;font-weight:600;margin-bottom:4px}
.ai-feature p{font-size:12px;color:var(--text-dim);line-height:1.5}

/* PROJECTS */
#projects{background:var(--bg-0)}
.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:24px}
.project-card{
  border:1px solid var(--line);background:var(--bg-1);
  overflow:hidden;transition:all .3s;cursor:pointer;
  display:flex;flex-direction:column;
}
.project-card:hover{border-color:var(--green);transform:translateY(-4px)}
.project-visual{
  aspect-ratio:16/10;position:relative;overflow:hidden;
  background:linear-gradient(135deg,var(--bg-2) 0%,var(--bg-0) 100%);
  display:grid;place-items:center;
}
.project-visual::before{
  content:'';position:absolute;inset:0;
  background-image:
    linear-gradient(var(--line) 1px,transparent 1px),
    linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:24px 24px;opacity:.4;
}
.project-visual svg{position:relative;z-index:1;width:50%;height:50%;color:var(--green);opacity:.5;transition:all .35s}
.project-card:hover .project-visual svg{opacity:1;transform:scale(1.05)}
.project-region-tag{
  position:absolute;top:14px;left:14px;z-index:2;
  font-family:var(--font-mono);font-size:10px;color:var(--green);
  letter-spacing:.18em;text-transform:uppercase;
  background:rgba(10,15,20,.7);backdrop-filter:blur(10px);
  padding:5px 10px;border:1px solid var(--green);border-radius:3px;
}
.project-classified{
  position:absolute;top:14px;right:14px;z-index:2;
  font-family:var(--font-mono);font-size:9px;color:var(--text-muted);
  letter-spacing:.18em;text-transform:uppercase;
  display:flex;align-items:center;gap:6px;
}
.project-classified::before{
  content:'';width:6px;height:6px;border-radius:50%;background:var(--text-muted);
}
.project-body{padding:28px;flex:1;display:flex;flex-direction:column}
.project-name{font-family:var(--font-display);font-size:20px;font-weight:600;color:var(--text);margin-bottom:8px;line-height:1.3}
.project-context{font-size:14px;color:var(--text-dim);margin-bottom:20px;flex:1;line-height:1.6}
.project-context strong{color:var(--text);font-weight:500}
.project-meta{display:flex;gap:12px;flex-wrap:wrap;padding-top:16px;border-top:1px solid var(--line)}
.project-meta-item{
  font-family:var(--font-mono);font-size:10px;color:var(--text-muted);
  letter-spacing:.1em;text-transform:uppercase;
}
.project-meta-item strong{color:var(--green);font-weight:500;display:block;margin-top:3px}

/* HUB PROCESS STRIP — kompaktowy pasek 5 etapów wewnątrz #hub-definition.
   Zastępuje wcześniejszą sekcję #process (zdublowany przekaz).
   Anchor id="process" zachowany dla kompatybilności z linkiem nawigacji "Service". */
.hub-process-strip{
  margin-top:64px;
  padding:28px 32px;
  border:1px solid var(--line);
  background:var(--bg-0);
  border-radius:6px;
  scroll-margin-top:120px;       /* offset gdy nawigacja "Service" prowadzi do #process */
}
.hub-process-strip-head{
  display:flex;flex-direction:column;gap:8px;
  margin-bottom:22px;
  padding-bottom:18px;
  border-bottom:1px solid var(--line);
}
.hub-process-strip-tag{
  font-family:var(--font-mono);font-size:10px;color:var(--green-bright);
  letter-spacing:.22em;font-weight:600;text-transform:uppercase;
  display:inline-block;
}
.hub-process-strip-desc{
  font-size:14px;color:var(--text-dim);line-height:1.6;max-width:880px;
}
.hub-process-strip-desc strong{color:var(--text);font-weight:500}

.hub-process-strip-steps{
  list-style:none;
  display:grid;grid-template-columns:repeat(5,1fr);gap:0;
}
.hub-process-strip-steps li{
  display:flex;flex-direction:column;gap:6px;
  padding:12px 18px;
  position:relative;
  border-right:1px solid var(--line);
}
.hub-process-strip-steps li:last-child{border-right:none}
.hub-process-strip-steps li::after{
  /* chevron arrow między etapami — premium, subtelny */
  content:'';position:absolute;
  right:-7px;top:50%;
  width:10px;height:10px;
  border-top:1px solid rgba(124,194,66,0.55);
  border-right:1px solid rgba(124,194,66,0.55);
  transform:translateY(-50%) rotate(45deg);
  background:var(--bg-0);
}
.hub-process-strip-steps li:last-child::after{display:none}
.hub-process-step-num{
  font-family:var(--font-mono);font-size:10px;color:var(--green);
  letter-spacing:.18em;font-weight:600;
}
.hub-process-step-name{
  font-family:var(--font-display);font-size:16px;font-weight:600;color:var(--text);
  letter-spacing:-.005em;
}
.hub-process-step-desc{
  font-size:11px;color:var(--text-muted);
  font-family:var(--font-mono);letter-spacing:.05em;line-height:1.4;
}

/* responsive */
@media (max-width:980px){
  .hub-process-strip{padding:24px 22px}
  .hub-process-strip-steps{grid-template-columns:1fr 1fr;gap:0}
  .hub-process-strip-steps li{
    border-right:1px solid var(--line);
    border-bottom:1px solid var(--line);
    padding:14px 16px;
  }
  .hub-process-strip-steps li::after{display:none}
  .hub-process-strip-steps li:nth-child(2n){border-right:none}
}
@media (max-width:600px){
  .hub-process-strip-steps{grid-template-columns:1fr}
  .hub-process-strip-steps li{border-right:none}
}

/* CONTACT */
#contact{background:var(--bg-0)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.contact-channels{display:flex;flex-direction:column}
.contact-channel{
  padding:28px 0;border-top:1px solid var(--line);
  display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center;
  transition:padding .25s;
}
.contact-channel:last-child{border-bottom:1px solid var(--line)}
.contact-channel:hover{padding-left:8px}
.contact-channel-icon{
  width:40px;height:40px;border:1px solid var(--line-bright);
  display:grid;place-items:center;color:var(--green);border-radius:6px;
}
.contact-channel-icon svg{width:18px;height:18px}
.contact-channel-label{
  font-family:var(--font-mono);font-size:10px;color:var(--text-muted);
  letter-spacing:.18em;text-transform:uppercase;margin-bottom:4px;
}
.contact-channel-value{font-family:var(--font-display);font-size:18px;font-weight:500;color:var(--text)}
.contact-channel-value a{color:inherit;transition:color .2s}
.contact-channel-value a:hover{color:var(--green)}
.contact-channel-arrow{color:var(--text-muted);transition:transform .25s,color .2s}
.contact-channel:hover .contact-channel-arrow{transform:translateX(6px);color:var(--green)}

.contact-card{
  padding:36px 32px;border:1px solid var(--line-bright);
  background:linear-gradient(135deg,var(--bg-1) 0%,var(--bg-2) 100%);
  border-radius:8px;
}
.contact-card-tag{
  font-family:var(--font-mono);font-size:10px;color:var(--green);
  letter-spacing:.2em;text-transform:uppercase;margin-bottom:16px;
  display:flex;align-items:center;gap:10px;
}
.contact-card-tag::before{
  content:'';width:6px;height:6px;border-radius:50%;background:var(--green);
  animation:pulse 2s ease-in-out infinite;
}
.contact-card h3{font-family:var(--font-display);font-size:22px;font-weight:600;margin-bottom:12px}
.contact-card p{font-size:14px;color:var(--text-dim);line-height:1.6;margin-bottom:24px}
.inquiry-types{display:flex;flex-direction:column;gap:8px}
.inquiry-type{
  padding:14px 18px;background:var(--bg-0);border:1px solid var(--line);
  border-radius:6px;display:flex;align-items:center;gap:12px;
  font-size:13px;cursor:pointer;transition:all .2s;
}
.inquiry-type:hover{border-color:var(--green);background:var(--bg-1);transform:translateX(4px)}
.inquiry-type-icon{width:28px;height:28px;color:var(--green);flex-shrink:0}
.inquiry-type-icon svg{width:100%;height:100%}
.inquiry-type-text{flex:1}
.inquiry-type-text strong{font-weight:600;color:var(--text)}
.inquiry-type-arrow{color:var(--text-muted);transition:color .2s}
.inquiry-type:hover .inquiry-type-arrow{color:var(--green)}

.contact-data{
  margin-top:48px;padding-top:32px;border-top:1px solid var(--line);
  display:grid;grid-template-columns:1fr 1fr;gap:32px;
  font-family:var(--font-mono);font-size:12px;color:var(--text-muted);
  letter-spacing:.05em;line-height:1.9;
}
.contact-data strong{color:var(--text);display:block;font-weight:500}

/* FOOTER */
footer{padding:96px 0 32px;background:var(--bg-1);border-top:1px solid var(--line)}
.footer-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;gap:48px;margin-bottom:64px}
.footer-brand p{color:var(--text-dim);font-size:14px;margin:24px 0;line-height:1.7;max-width:340px}
.footer-socials{display:flex;gap:10px}
.footer-social{
  width:38px;height:38px;border:1px solid var(--line-bright);
  display:grid;place-items:center;color:var(--text-dim);transition:all .2s;
  border-radius:6px;
}
.footer-social:hover{border-color:var(--green);color:var(--green)}
.footer-social svg{width:14px;height:14px}
.footer-col h4{
  font-family:var(--font-mono);font-size:11px;font-weight:600;
  margin-bottom:24px;color:var(--green);
  letter-spacing:.2em;text-transform:uppercase;
}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:11px}
.footer-col a{font-size:13px;color:var(--text-dim);transition:color .2s}
.footer-col a:hover{color:var(--text)}
.footer-bottom{
  padding-top:24px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:16px;font-family:var(--font-mono);font-size:11px;
  color:var(--text-muted);letter-spacing:.05em;
}
.footer-legal{display:flex;gap:24px;flex-wrap:wrap}

/* AI WIDGET */
.ai-widget{position:fixed;bottom:24px;right:24px;z-index:80}
.ai-trigger{
  display:flex;align-items:center;gap:14px;
  padding:14px 20px 14px 14px;
  background:rgba(18,24,32,.92);
  backdrop-filter:blur(20px);
  border:1px solid var(--green);border-radius:100px;
  cursor:pointer;transition:all .3s;
  box-shadow:0 12px 40px rgba(124,194,66,.15);
}
.ai-trigger:hover{box-shadow:0 12px 48px var(--green-glow);transform:translateY(-2px)}
.ai-orb{
  width:36px;height:36px;flex-shrink:0;position:relative;
  background:radial-gradient(circle at 32% 28%, #FFFFFF 0%, var(--green-bright) 25%, var(--green) 60%, var(--teal) 100%);
  border-radius:50%;
  box-shadow:0 0 16px var(--green-glow), inset 0 -4px 8px rgba(15,37,51,.5);
  display:grid;place-items:center;
  animation:ai-pulse 3s ease-in-out infinite;
}
@keyframes ai-pulse{
  0%,100%{box-shadow:0 0 16px var(--green-glow), inset 0 -4px 8px rgba(15,37,51,.5)}
  50%{box-shadow:0 0 28px var(--green-glow-strong), inset 0 -4px 8px rgba(15,37,51,.5)}
}
.ai-orb svg{width:18px;height:18px;color:#0F2533}
.ai-trigger-text{display:flex;flex-direction:column;line-height:1.2}
.ai-trigger-label{font-size:13px;font-weight:600;color:var(--text)}
.ai-trigger-status{
  font-size:10px;color:var(--green);font-family:var(--font-mono);
  letter-spacing:.1em;display:flex;align-items:center;gap:6px;margin-top:3px;
}
.ai-trigger-status::before{
  content:'';width:5px;height:5px;border-radius:50%;background:var(--green);
  box-shadow:0 0 6px var(--green);animation:pulse 2s ease-in-out infinite;
}

.ai-panel{
  position:fixed;bottom:96px;right:24px;z-index:79;
  width:380px;max-width:calc(100vw - 48px);
  background:rgba(18,24,32,.96);backdrop-filter:blur(24px);
  border:1px solid var(--green);border-radius:16px;
  box-shadow:0 24px 64px rgba(0,0,0,.6);
  display:none;flex-direction:column;overflow:hidden;max-height:560px;
}
.ai-panel.open{display:flex;animation:slide-up .35s cubic-bezier(.4,0,.2,1)}
@keyframes slide-up{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.ai-panel-head{padding:20px;border-bottom:1px solid var(--line-bright);display:flex;align-items:center;gap:14px}
.ai-panel-head .ai-orb{width:32px;height:32px}
.ai-panel-head .ai-orb svg{width:16px;height:16px}
.ai-panel-title{font-family:var(--font-display);font-size:15px;font-weight:600}
.ai-panel-sub{font-size:11px;color:var(--green);font-family:var(--font-mono);margin-top:2px}
.ai-panel-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px}
.ai-panel-close:hover{color:var(--text)}
.ai-panel-body{padding:20px;overflow-y:auto;flex:1}
.ai-message{
  background:var(--bg-2);padding:14px 16px;border-radius:12px 12px 12px 4px;
  font-size:13px;color:var(--text);line-height:1.55;margin-bottom:16px;
  border:1px solid var(--line);
}
.ai-message strong{color:var(--green);font-weight:600}
.ai-quick-actions{display:flex;flex-direction:column;gap:8px}
.ai-quick{
  padding:12px 14px;background:var(--bg-2);border:1px solid var(--line);
  border-radius:8px;font-size:12px;color:var(--text);text-align:left;cursor:pointer;
  transition:all .2s;display:flex;align-items:center;gap:10px;font-family:inherit;
}
.ai-quick:hover{border-color:var(--green);color:var(--green)}
.ai-quick svg{width:14px;height:14px;color:var(--green);flex-shrink:0}
.ai-panel-foot{
  padding:14px 20px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;align-items:center;
  font-family:var(--font-mono);font-size:9px;color:var(--text-muted);
  letter-spacing:.1em;text-transform:uppercase;
}
.ai-panel-foot .powered{color:var(--green);font-weight:500}

/* RESPONSIVE */
@media (max-width:1500px){
  /* Mid-desktop: zwężamy grid bo container już nie sięga 1760px → minmax minimum redukuje */
  .hero-inner{grid-template-columns:minmax(460px, 1fr) 1.4fr;gap:48px}
}
@media (max-width:1200px){
  .hero-stats{gap:20px}
  .stat-num{font-size:26px}
  .nav-menu{gap:0}
  .nav-menu>li>a{padding:8px 10px;font-size:12px}
  .footer-top{grid-template-columns:1.5fr 1fr 1fr;gap:32px}
  .hero-inner{grid-template-columns:minmax(420px, 1fr) 1.25fr;gap:40px;min-height:680px}
  .proenso-europe-hero-map.hero-visual{max-width:1080px}
  .label-title{font-size:11px}
  .label-subtitle{font-size:10px}
  .hub-title{font-size:24px}
}
@media (max-width:980px){
  :root{--gutter:32px}
  .hero-inner,.hub-grid,.ai-grid,.contact-grid{grid-template-columns:1fr;gap:48px}
  /* Tablet: hero-visual centered, mniejszy max-width, lekkie wyciszenie */
  .hero-visual{max-width:820px;margin:0 auto;opacity:0.92}
  .label-title{font-size:11px}
  .label-subtitle{font-size:10px}
  .hub-title{font-size:24px}
  .hero-flow{flex-direction:column;align-items:stretch;gap:14px;padding:14px}
  .hero-flow-sync{margin-left:0;text-align:left}
  .hero-flow-steps{justify-content:space-between;gap:10px}
  .flow-step{min-width:0}
  .flow-step::after{display:none}
  .nav-menu,.lang-switch{display:none}
  .burger{display:block}
  section{padding:80px 0}
  .hero{padding:48px 0 80px}
  .sectors-strip{grid-template-columns:repeat(2,1fr)}  /* 14 = 2×7 perfect */
  .process-flow{grid-template-columns:1fr 1fr}
  .process-step{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
  .footer-top{grid-template-columns:1fr 1fr}
  .ai-features,.partners-extras{grid-template-columns:1fr}
  .contact-data{grid-template-columns:1fr}
  .partners-stats{grid-template-columns:1fr 1fr}
  .partners-stat{border-bottom:1px solid var(--line)}
  .partners-stat:nth-child(2n){border-right:none}
}
@media (max-width:600px){
  :root{--gutter:20px}
  .hero-stats{grid-template-columns:1fr 1fr;gap:16px}
  /* Mobile: mapa staje się tłem dekoracyjnym, etykiety chowane (nieczytelne na małym ekranie) */
  .proenso-europe-hero-map.hero-visual{max-width:720px;opacity:0.34}
  .labels-layer{display:none}
  .hub-title{font-size:20px}
  .hub-subtitle{font-size:10px}
  /* AI Neural Hub mobile: chowamy 4 narożne węzły (NE/SE/SW/NW) — zostają 4 cardinal */
  .ai-secondary{display:none}
  .ai-core .core-sub{display:none}
  .ai-node .node-label{font-size:6.5px}
  /* na bardzo małych ekranach: chowamy detal pod ikoną, zostaje ikona + nazwa */
  .flow-step span{font-size:8px}
  .process-flow{grid-template-columns:1fr}
  .footer-top{grid-template-columns:1fr;gap:32px}
  .ai-widget{bottom:16px;right:16px}
  .ai-trigger-text{display:none}
  .ai-trigger{padding:10px}
  h1{font-size:38px}
  .hub-point{grid-template-columns:1fr}
  .partners-list li{grid-template-columns:1fr;gap:6px;padding:14px 20px}
  .partners-list li:hover{padding-left:24px}
  .partners-list li>span:last-child{text-align:left}
  .partner-models-badge{position:static;display:inline-block;margin-bottom:14px}
}
