/* STARCONT v2 – ciemny motyw premium. Ładowany po main.css i nadpisuje jego style. */

/* Zastępczy font o metryce Inter – fonty (sc-fonts) ładują się asynchronicznie, więc tekst nie przeskakuje po ich wczytaniu */
@font-face { font-family: "Inter Fallback"; src: local("Arial"), local("Helvetica Neue"), local("Helvetica"); ascent-override: 90.44%; descent-override: 22.52%; line-gap-override: 0%; size-adjust: 107.12%; }

:root {
  --v2-bg: #070b13;
  --v2-bg-2: #0a101b;
  --v2-surface: rgba(var(--ink), .028);
  --v2-surface-2: rgba(var(--ink), .05);
  --v2-border: rgba(var(--ink), .08);
  --v2-border-2: rgba(var(--ink), .14);
  --v2-text: #e7ecf3;
  --v2-text-2: #a3afc0;
  --v2-text-3: #6f7c8f;
  --v2-orange: #f2832c;
  --v2-orange-2: #c56212;
  --v2-blue: #6f9be0;
  --v2-blue-2: #2c4d6f;
  --v2-radius: 16px;
  --v2-radius-sm: 10px;
  --v2-ease: cubic-bezier(.16, 1, .3, 1);
  --v2-shadow: 0 1px 0 rgba(var(--ink), .04) inset, 0 20px 50px -24px rgba(0, 0, 0, .7);
  /* kanały kolorów zależne od motywu (jasny motyw je odwraca, patrz v2.light.css) */
  --ink: 255, 255, 255; --bgc: 7, 11, 19; --bgc2: 12, 18, 30; --v2-strong: #fff; --v2-inv: #0a0f1a;

  /* zmienne main.css przemapowane na ciemny motyw */
  --color-primary: var(--v2-blue);
  --color-primary-dark: var(--v2-text);
  --color-accent: var(--v2-orange);
  --color-accent-2: var(--v2-orange);
  --color-text: var(--v2-text-2);
  --color-gray-100: var(--v2-bg-2);
  --color-gray-300: var(--v2-border-2);
  --color-gray-500: var(--v2-text-3);
  --font-base: "Inter", "Inter Fallback", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --radius: var(--v2-radius-sm);
  --shadow-sm: var(--v2-shadow);
  --shadow-md: 0 1px 0 rgba(var(--ink), .06) inset, 0 30px 60px -20px rgba(0, 0, 0, .8);
  color-scheme: dark;
}

/* ---------- Podstawy i typografia ---------- */
html { background: var(--v2-bg); }
body {
  background: var(--v2-bg);
  color: var(--v2-text-2);
  font-family: var(--font-base);
  font-size: 16px;
  line-height: 1.65;
  letter-spacing: -.011em;
  font-feature-settings: "cv11", "ss01", "ss03";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
::selection { background: rgba(242, 131, 44, .35); color: #fff; }
h1, h2, h3, h4, h5, h6 { color: var(--v2-text); font-weight: 650; letter-spacing: -.025em; line-height: 1.15; }
strong, b { color: var(--v2-text); font-weight: 600; }
a { color: var(--v2-blue); transition: color .2s var(--v2-ease); }
a:hover { color: #9dbdf0; }
:focus-visible { outline: 2px solid var(--v2-orange); outline-offset: 3px; border-radius: 4px; }
hr { border: 0; border-top: 1px solid var(--v2-border); }

/* Delikatna siatka i poświata w tle całej strony */
body::before {
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(60rem 30rem at 85% -10%, rgba(111, 155, 224, .10), transparent 60%),
    radial-gradient(40rem 25rem at -10% 10%, rgba(242, 131, 44, .07), transparent 60%);
}

/* Ikony Lucide (wstawiane przez v2_js) */
.lucide { width: 1em; height: 1em; stroke-width: 1.75; vertical-align: -.125em; flex: none; }
.v2-ico-brand { width: 1em; height: 1em; fill: currentColor; vertical-align: -.125em; }

/* ---------- Przyciski ---------- */
.btn {
  position: relative; isolation: isolate;
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .8em 1.4em; border-radius: 999px;
  background: linear-gradient(180deg, #f5944a, var(--v2-orange) 45%, var(--v2-orange-2));
  color: var(--v2-strong); font-weight: 600; font-size: .95rem; letter-spacing: -.01em;
  box-shadow: 0 1px 0 rgba(var(--ink), .25) inset, 0 8px 24px -8px rgba(242, 131, 44, .55);
  transition: transform .35s var(--v2-ease), box-shadow .35s var(--v2-ease), filter .2s;
}
.btn:hover { background: linear-gradient(180deg, #f5944a, var(--v2-orange) 45%, var(--v2-orange-2)); color: #fff; transform: translateY(-2px); box-shadow: 0 1px 0 rgba(var(--ink), .3) inset, 0 14px 34px -8px rgba(242, 131, 44, .7); filter: brightness(1.06); }
.btn:active { transform: translateY(0) scale(.98); }
.btn .lucide { transition: transform .35s var(--v2-ease); }
.btn:hover .lucide { transform: translateX(3px); }
.btn--ghost { background: var(--v2-surface-2); color: var(--v2-text); box-shadow: 0 0 0 1px var(--v2-border-2) inset; }
.btn--ghost:hover { background: rgba(var(--ink), .09); color: var(--v2-strong); box-shadow: 0 0 0 1px rgba(var(--ink), .22) inset; filter: none; }

/* ---------- Nagłówek ---------- */
.site-header {
  background: rgba(var(--bgc), .72);
  -webkit-backdrop-filter: saturate(180%) blur(16px); backdrop-filter: saturate(180%) blur(16px);
  box-shadow: none; border-bottom: 1px solid transparent;
  transition: border-color .3s, background .3s;
}
.site-header.is-scrolled { border-bottom-color: var(--v2-border); background: rgba(var(--bgc), .85); }
.site-header__inner { padding-block: .9rem; }
.site-header__logo img { content: url("/assets/pages/SC_Logo_dark.png"); max-height: clamp(36px, 3.4vw, 46px); }
.nav-toggle { color: var(--v2-text); }
@media (width < 1024px) {
  .main-nav { background: rgba(var(--bgc), .75); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); border-left: 1px solid var(--v2-border); }
}
.main-nav__close { background: var(--v2-surface-2); color: var(--v2-text); }
.main-nav__list a { color: var(--v2-text-2); font-weight: 500; font-size: .93rem; }
.main-nav__list a:hover, .main-nav__list a.is-active { color: var(--v2-strong); }
@media (width >= 1024px) {
  .main-nav__list { gap: .25rem; }
  .main-nav__list > li > a { color: var(--v2-text-2); padding: .45rem .8rem; border-radius: 999px; transition: color .2s, background .2s; text-shadow: 0 1px 2px rgba(0, 0, 0, .25); }
  .main-nav__list > li > a:hover { color: var(--v2-strong); background: var(--v2-surface-2); }
  .main-nav__list > li > a.is-active { color: var(--v2-strong); background: rgba(var(--ink), .07); box-shadow: 0 0 0 1px var(--v2-border) inset; }
  .main-nav__list > li > a::after { display: none; }
  .main-nav__submenu {
    background: rgba(var(--bgc2), .96); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
    border: 1px solid var(--v2-border-2); border-radius: 14px; padding: .5rem; margin-top: .5rem; min-width: 200px;
    box-shadow: 0 24px 60px -12px rgba(0, 0, 0, .8);
  }
  .main-nav__item--has-submenu::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: .6rem; }
  .main-nav__submenu a { color: var(--v2-text-2); margin: 0; padding: .55rem .75rem; border-radius: 8px; }
  .main-nav__submenu a:hover, .main-nav__submenu a.is-active { background: var(--v2-surface-2); color: var(--v2-strong); padding-left: .75rem; }
}
.main-nav__submenu a { color: var(--v2-text-2); }
.lang-switcher__select {
  background-color: var(--v2-surface-2); color: var(--v2-text); border: 1px solid var(--v2-border-2); border-radius: 999px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23a3afc0'%3E%3Cpath d='M4 6l4 4 4-4H4z'/%3E%3C/svg%3E");
}
.lang-switcher__select option { background: #0c121e; color: var(--v2-text); }
.lang-switcher__flag { border-radius: 3px; box-shadow: 0 0 0 1px rgba(var(--ink), .15); }

/* ---------- Hero (slider) ---------- */
.hero { background: var(--v2-bg); isolation: isolate; }
.hero__slide::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    linear-gradient(90deg, rgba(var(--bgc), .88) 0%, rgba(var(--bgc), .45) 45%, rgba(var(--bgc), .1) 75%),
    linear-gradient(0deg, var(--v2-bg) 0%, rgba(var(--bgc), 0) 35%);
}
.hero::after {
  content: ""; position: absolute; z-index: 1; pointer-events: none;
  width: 60rem; height: 30rem; left: -20rem; bottom: -18rem;
  background: radial-gradient(closest-side, rgba(242, 131, 44, .22), transparent);
  filter: blur(20px); mix-blend-mode: screen;
}
.hero__track { transition: transform .9s var(--v2-ease); }
.hero__slide img { filter: saturate(.9) contrast(1.05); }
.hero__caption {
  z-index: 2; left: max(var(--gutter), calc((100% - var(--container-max)) / 2 + var(--gutter))); bottom: 18%;
  max-width: min(42rem, 85%); margin: 0;
  text-transform: none; text-shadow: none;
  font-size: clamp(1.9rem, 5vw, 4rem); font-weight: 700; letter-spacing: -.04em; line-height: 1.02;
  color: var(--v2-strong); text-shadow: 0 2px 30px rgba(0, 0, 0, .35);
  animation: v2-rise 1s var(--v2-ease) both .15s;
}
.hero__caption::before {
  content: "STARCONT"; display: block; width: max-content; margin-bottom: 1rem;
  padding: .35rem .8rem; border-radius: 999px;
  font-size: .72rem; font-weight: 600; letter-spacing: .14em; line-height: 1.4;
  color: #ffd2ad; text-shadow: none;
  background: rgba(242, 131, 44, .12); box-shadow: 0 0 0 1px rgba(242, 131, 44, .35) inset;
}
.hero__dots { z-index: 3; bottom: 1.5rem; gap: .4rem; }
.hero__dot { width: 22px; height: 4px; border-radius: 4px; background: rgba(var(--ink), .25); transition: width .4s var(--v2-ease), background .3s; }
.hero__dot.is-active { width: 40px; background: var(--v2-orange); }
@keyframes v2-rise { from { opacity: 0; transform: translateY(18px); filter: blur(6px); } to { opacity: 1; transform: none; filter: none; } }

/* ---------- Pasek "o nas" ---------- */
.intro-banner { background: transparent; color: var(--v2-text-2); padding: 3.5rem 0 1.5rem; }
.intro-banner__inner {
  font-size: clamp(1.05rem, 1.6vw, 1.3rem); line-height: 1.6; gap: 2rem;
  padding: 2rem 2.25rem; border-radius: var(--v2-radius);
  background: linear-gradient(135deg, rgba(111, 155, 224, .08), rgba(242, 131, 44, .05));
  border: 1px solid var(--v2-border);
}
.intro-banner__inner > div { max-width: 52rem; }
.intro-banner__inner strong, .intro-banner__inner b { color: var(--v2-strong); }

/* ---------- Sekcje ---------- */
.section { padding: clamp(2.5rem, 6vw, 5.5rem) 0; background: transparent !important; position: relative; }
.section + .section::before {
  content: ""; position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: min(var(--container-max), 92%); height: 1px;
  background: linear-gradient(90deg, transparent, var(--v2-border-2), transparent);
}
.section--trusted { padding-bottom: clamp(3rem, 7vw, 6rem); }
.section__title {
  color: var(--v2-text); font-size: clamp(1.75rem, 3.4vw, 2.75rem); font-weight: 650; letter-spacing: -.035em; line-height: 1.1;
  margin: 0 0 1rem; max-width: 46rem; text-wrap: balance;
}
.section__title + p { font-size: 1.1rem; max-width: 46rem; color: var(--v2-text-2); text-wrap: pretty; }

/* Karty – wspólny wygląd + efekt "spotlight" za kursorem (zmienne --mx/--my z v2_js) */
.card-solution, .offer-card, .info-card, .solution-card, .product-card, .feature-stat, .products-sidebar, .page-intro {
  position: relative; isolation: isolate;
  background: linear-gradient(180deg, rgba(var(--ink), .04), rgba(var(--ink), .015));
  border: 1px solid var(--v2-border); border-radius: var(--v2-radius);
  box-shadow: var(--v2-shadow);
}
.card-solution::before, .offer-card::before, .info-card::before, .solution-card::before, .product-card::before, .feature-stat::before {
  content: ""; position: absolute; inset: -1px; z-index: -1; border-radius: inherit; pointer-events: none; opacity: 0;
  background: radial-gradient(28rem circle at var(--mx, 50%) var(--my, 0%), rgba(242, 131, 44, .12), transparent 45%);
  transition: opacity .4s var(--v2-ease);
}
.card-solution:hover::before, .offer-card:hover::before, .info-card:hover::before, .solution-card:hover::before, .product-card:hover::before, .feature-stat:hover::before { opacity: 1; }
.card-solution, .offer-card, .info-card, .solution-card, .product-card, .feature-stat {
  transition: transform .5s var(--v2-ease), border-color .3s, box-shadow .5s var(--v2-ease);
}
.card-solution:hover, .offer-card:hover, .info-card:hover, .solution-card:hover, .product-card:hover, .feature-stat:hover {
  transform: translateY(-4px); border-color: rgba(var(--ink), .16);
  box-shadow: 0 1px 0 rgba(var(--ink), .06) inset, 0 30px 60px -24px rgba(0, 0, 0, .9), 0 0 0 1px rgba(242, 131, 44, .08);
}

/* Bento: rozwiązania na stronie głównej */
.card-grid { gap: 1rem; }
@media (width >= 1024px) {
  .card-grid { grid-template-columns: repeat(6, 1fr); }
  .card-grid > .card-solution:nth-child(1) { grid-column: span 3; }
  .card-grid > .card-solution:nth-child(2) { grid-column: span 3; }
  .card-grid > .card-solution:nth-child(3) { grid-column: span 6; }
}
.card-solution { text-align: left; align-items: flex-start; padding: 2rem; min-height: 100%; overflow: hidden; }
.card-solution__icon, .v2-tile-icon {
  width: 52px; height: 52px; margin: 0 0 1.5rem; padding: 12px; border-radius: 14px;
  display: inline-grid; place-items: center; color: var(--v2-orange); font-size: 28px;
  background: linear-gradient(180deg, rgba(242, 131, 44, .16), rgba(242, 131, 44, .06));
  box-shadow: 0 0 0 1px rgba(242, 131, 44, .28) inset, 0 10px 30px -10px rgba(242, 131, 44, .5);
}
.card-solution__title { margin: 0 0 .6rem; font-size: 1.35rem; }
.card-solution__title a { color: var(--v2-text); }
.card-solution__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.card-solution__body { color: var(--v2-text-2); }
.card-solution__body p { margin: 0 0 1.5rem; }
.card-solution .btn { position: relative; z-index: 2; background: var(--v2-surface-2); color: var(--v2-text); box-shadow: 0 0 0 1px var(--v2-border-2) inset; font-size: .88rem; padding: .6em 1.15em; }
.card-solution:hover .btn { background: var(--v2-orange); color: #fff; box-shadow: 0 8px 24px -8px rgba(242, 131, 44, .6); }

/* Bento: statystyki */
.feature-stats { gap: 1rem; margin-top: 2.5rem; text-align: left; }
@media (width >= 1024px) {
  .feature-stats { grid-template-columns: repeat(6, 1fr); }
  .feature-stat:nth-child(1) { grid-column: span 4; }
  .feature-stat:nth-child(2) { grid-column: span 2; }
  .feature-stat:nth-child(3) { grid-column: span 2; }
  .feature-stat:nth-child(4) { grid-column: span 4; }
}
/* Technologia: wstęp + kafel "Jak działamy" */
.t-intro { display: grid; gap: 1.5rem; margin-bottom: clamp(2rem, 4vw, 3rem); }
.t-intro > .h-head { margin-bottom: 0; }
@media (width >= 1024px) { .t-intro { grid-template-columns: 1.4fr 1fr; gap: 3rem; align-items: center; } }
.how { position: relative; overflow: hidden; padding: 1.75rem 2rem; border-radius: var(--v2-radius); background: var(--v2-surface); border: 1px solid var(--v2-border-2); }
.how::before { content: ""; position: absolute; top: -90px; right: -70px; width: 260px; height: 260px; background: radial-gradient(closest-side, rgba(242, 131, 44, .2), transparent); pointer-events: none; }
.how__title { position: relative; display: flex; align-items: center; gap: .6rem; margin: 0 0 1.1rem; font-size: 1.35rem; font-weight: 700; letter-spacing: -.02em; color: var(--v2-text); }
.how__title .lucide { width: 1.3em; height: 1.3em; color: var(--v2-orange); }
.how__steps { position: relative; list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
.how__steps::before { content: ""; position: absolute; left: calc(1.25rem - 1px); top: 1.5rem; bottom: 1.5rem; width: 2px; background: linear-gradient(180deg, var(--v2-orange), rgba(242, 131, 44, .15)); }
.how__steps li { display: grid; grid-template-columns: 2.5rem 1fr; gap: .9rem; align-items: center; padding: .45rem 0; }
.how__ico { position: relative; z-index: 1; display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 12px; background: rgba(var(--bgc2), 1); border: 1px solid var(--v2-border-2); color: var(--v2-orange); }
.how__ico .lucide { width: 1.15rem; height: 1.15rem; }
.how__txt { color: var(--v2-text); font-weight: 500; line-height: 1.4; }
.how__txt b { display: block; font-size: .72rem; font-weight: 600; letter-spacing: .14em; color: var(--v2-orange); }
.how__win { position: relative; display: flex; align-items: center; gap: .6rem; margin: 1rem 0 0; padding-top: 1rem; border-top: 1px solid var(--v2-border); font-size: 1.3rem; font-weight: 800; letter-spacing: -.02em; color: var(--v2-orange); }
.how__win .lucide { width: 1.2em; height: 1.2em; }
.how__cta { margin-top: .6rem; padding: .5em 1em; font-size: .85rem; }
/* Technologia: karty */
.tech-grid { display: grid; gap: 1rem; margin-bottom: 1rem; }
@media (width >= 600px) { .tech-grid { grid-template-columns: 1fr 1fr; } }
@media (width >= 1024px) { .tech-grid { grid-template-columns: repeat(3, 1fr); } }
.tech-card { padding: 1.4rem 1.5rem; border-radius: var(--v2-radius); background: var(--v2-surface); border: 1px solid var(--v2-border-2); }
.tech-card > .lucide { display: block; width: 1.6rem; height: 1.6rem; margin-bottom: .8rem; color: var(--v2-orange); }
.tech-card h3 { margin: 0 0 .35rem; font-size: 1.05rem; font-weight: 700; color: var(--v2-text); }
.tech-card p { margin: 0; color: var(--v2-text-2); font-size: .95rem; line-height: 1.5; }
/* Hero: wyróżnik */
.h-first { display: inline-flex; align-items: center; gap: .6rem; max-width: 36rem; margin: 0 0 2.6rem; padding: .6rem .9rem; border-radius: 12px; background: rgba(242, 131, 44, .1); border: 1px solid rgba(242, 131, 44, .35); color: var(--v2-text); font-size: .92rem; font-weight: 600; line-height: 1.35; }
.h-first .lucide { flex: none; width: 1.15rem; height: 1.15rem; color: var(--v2-orange); }
/* Kafel: dodatkowy link nad nakładką linku głównego */
.h-tile__sub { position: relative; z-index: 4; display: inline-flex; align-items: center; gap: .3rem; margin-left: 1rem; font-size: .88rem; font-weight: 600; color: var(--v2-orange); }
.feature-stat { padding: 1.75rem 2rem; overflow: hidden; }
.feature-stat > i, .feature-stat > .lucide { display: block; font-size: 2.25rem; margin: 0 0 1.25rem; color: var(--v2-orange); }
.feature-stat__title {
  font-size: clamp(1.25rem, 1.9vw, 1.65rem); font-weight: 700; letter-spacing: -.03em; line-height: 1.15; margin-bottom: .6rem; text-wrap: balance;
  background: linear-gradient(180deg, #fff, #b9c4d4); -webkit-background-clip: text; background-clip: text; color: transparent;
}
.feature-stat p { margin: 0; color: var(--v2-text-2); }

/* Bento: oferta */
.offer-grid { gap: 1rem; margin-top: 2.5rem; }
@media (width >= 1024px) {
  .offer-grid { grid-template-columns: repeat(6, 1fr); }
  .offer-card:nth-child(1) { grid-column: span 3; }
  .offer-card:nth-child(2) { grid-column: span 3; }
  .offer-card:nth-child(3) { grid-column: span 2; }
  .offer-card:nth-child(4) { grid-column: span 4; }
}
.offer-card { padding: 1.75rem 2rem; }
.offer-card__title { color: var(--v2-text); font-size: 1.15rem; gap: .75rem; margin-bottom: .75rem; }
.offer-card__title::before { width: 8px; height: 8px; background: var(--v2-orange); box-shadow: 0 0 0 4px rgba(242, 131, 44, .15), 0 0 16px rgba(242, 131, 44, .8); }
.offer-card p { margin: 0; }

/* Filmy */
.responsive-video, .insert-video { border-radius: var(--v2-radius); border: 1px solid var(--v2-border-2); box-shadow: 0 40px 100px -40px rgba(0, 0, 0, .9), 0 0 0 6px rgba(var(--ink), .02); }
/* Ramka filmu jak w hero (h-visual__frame): szklana obwódka + poświata */
.v-frame { position: relative; isolation: isolate; }
.v-frame::before {
  content: ""; position: absolute; inset: 8% 4%; z-index: -1; border-radius: 40px;
  background: radial-gradient(closest-side, rgba(242, 131, 44, .28), transparent), radial-gradient(closest-side at 80% 80%, rgba(111, 155, 224, .25), transparent);
  filter: blur(50px);
}
.v-frame__glass {
  padding: 8px; border-radius: 22px; background: linear-gradient(180deg, rgba(var(--ink), .1), rgba(var(--ink), .02));
  box-shadow: 0 0 0 1px var(--v2-border-2) inset, 0 50px 100px -30px rgba(0, 0, 0, .9);
  transition: transform .8s var(--v2-ease);
}
.v-frame:hover .v-frame__glass { transform: translateY(-4px); }
.v-frame__in { position: relative; aspect-ratio: 16 / 9; border-radius: 15px; overflow: hidden; background: #0c1322; }
.v-frame .responsive-video { display: block; width: 100%; height: 100%; object-fit: cover; border: 0; border-radius: 0; box-shadow: none; background: #0c1322; }

/* Logo klientów: monochromatyczna ściana logotypów */
/* Pliki logo mają białe tło: po odwróceniu kolorów jest czarne i znika w trybie "screen" */
.logo-grid {
  gap: 0; isolation: isolate; background: var(--v2-bg);
  border-top: 1px solid var(--v2-border); border-bottom: 1px solid var(--v2-border);
  -webkit-mask: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.logo-grid img {
  max-width: 170px; width: 100%; height: 96px; padding: 1.5rem 1.25rem; object-fit: contain; background: transparent;
  filter: grayscale(1) invert(1) contrast(1.4); mix-blend-mode: screen; opacity: .6;
  transition: opacity .3s;
}
.logo-grid img:hover { opacity: 1; }

/* ---------- Okruszki, treść podstron ---------- */
.breadcrumbs ol { color: var(--v2-text-3); }
.breadcrumbs a { color: var(--v2-text-3); }
.breadcrumbs a:hover { color: var(--v2-text); }
.breadcrumbs li[aria-current=page] { color: var(--v2-text); }
.breadcrumbs li:not(:last-child)::after, .page-intro li::before, .solution-card__link::after, .product-card__link::after, .solution-detail__related li a::before {
  content: ""; display: inline-block; width: 1em; height: 1em; background: currentColor; font-family: inherit;
  -webkit-mask: var(--v2-i) center / contain no-repeat; mask: var(--v2-i) center / contain no-repeat;
}
.breadcrumbs li:not(:last-child)::after { --v2-i: url("data:image/svg+xml,%3Csvg class='lucide lucide-chevron-right' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m9 18 6-6-6-6' /%3E%3C/svg%3E"); width: .85em; height: .85em; color: var(--v2-text-3); }
.page-intro li::before { --v2-i: url("data:image/svg+xml,%3Csvg class='lucide lucide-check' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M20 6 9 17l-5-5' /%3E%3C/svg%3E"); color: var(--v2-orange); top: .3em; }
.solution-card__link::after, .product-card__link::after { --v2-i: url("data:image/svg+xml,%3Csvg class='lucide lucide-arrow-right' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M5 12h14' /%3E%3Cpath d='m12 5 7 7-7 7' /%3E%3C/svg%3E"); }
.solution-detail__related li a::before { --v2-i: url("data:image/svg+xml,%3Csvg class='lucide lucide-chevron-right' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m9 18 6-6-6-6' /%3E%3C/svg%3E"); color: var(--v2-orange); }

.page-content__title { color: var(--v2-text); font-size: clamp(2rem, 4.5vw, 3.25rem); letter-spacing: -.04em; line-height: 1.05; }
.page-content h1, .page-content h2, .page-content h3 { color: var(--v2-text); }
.page-content h2 { font-size: clamp(1.4rem, 2.4vw, 1.9rem); }
.page-content h1::before, .page-content h2::before { background: linear-gradient(180deg, var(--v2-orange), rgba(242, 131, 44, .2)); width: 3px; }
.page-content p, .page-content li { color: var(--v2-text-2); }
.page-content img { border-radius: var(--v2-radius); border: 1px solid var(--v2-border); }
.page-content a { text-decoration-color: rgba(111, 155, 224, .4); text-underline-offset: 3px; }
.page-content table { border-collapse: collapse; }
.page-content th, .page-content td { border-color: var(--v2-border) !important; }
.page-intro { padding: 2rem 2.25rem; }
.page-intro li { color: var(--v2-text-2); }

.info-grid { gap: 1rem; }
.info-card { padding: 1.75rem; }
.info-card h3 { color: var(--v2-text); }
.info-card p { color: var(--v2-text-2); }
.info-card__icon {
  width: 44px; height: 44px; display: inline-grid; place-items: center; font-size: 1.3rem; border-radius: 12px;
  color: var(--v2-orange); background: rgba(242, 131, 44, .1); box-shadow: 0 0 0 1px rgba(242, 131, 44, .25) inset; margin-bottom: 1.1rem;
}

/* ---------- Rozwiązania / produkty ---------- */
.solutions-filter__btn {
  background: var(--v2-surface); color: var(--v2-text-2); border: 1px solid var(--v2-border-2); font-family: inherit; font-weight: 500;
}
.solutions-filter__btn:hover { border-color: rgba(var(--ink), .3); color: var(--v2-strong); }
.solutions-filter__btn.is-active { background: var(--v2-strong); border-color: var(--v2-strong); color: var(--v2-inv); }
.solution-card, .product-card { overflow: hidden; }
.solution-card__image, .product-card__image { background-color: #0e1522; border-bottom: 1px solid var(--v2-border); transition: transform .8s var(--v2-ease); }
.product-card__image { background-color: #f3f5f8; }
.solution-card:hover .solution-card__image, .product-card:hover .product-card__image { transform: scale(1.04); }
.solution-card__title, .product-card__title { color: var(--v2-text); }
.solution-card__summary, .product-card__summary { color: var(--v2-text-2); }
.solution-card__link, .product-card__link { color: var(--v2-text); border: 1px solid var(--v2-border-2); background: var(--v2-surface-2); }
.solution-card:hover .solution-card__link, .product-card:hover .product-card__link { background: var(--v2-orange); border-color: var(--v2-orange); color: #fff; }
.solution-detail__media, .product-gallery__main { border: 1px solid var(--v2-border); border-radius: var(--v2-radius); }
.product-gallery__main, .product-gallery__thumb { background-color: #f3f5f8; }
.product-gallery__thumb { border-color: var(--v2-border-2); }
.product-gallery__thumb:hover, .product-gallery__thumb.is-active { border-color: var(--v2-orange); }
.solution-detail__description p, .product-detail__description p, .product-detail__description ul { color: var(--v2-text-2); }
.solution-detail__description strong, .product-detail__description h3, .solution-detail__block h2 { color: var(--v2-text); }
.product-detail__description table th { color: var(--v2-text); }
.product-detail__description table th, .product-detail__description table td { border-bottom-color: var(--v2-border); }
.solution-detail__block li a, .solution-detail__categories-form button { color: var(--v2-text-2); border-color: var(--v2-border-2); background: var(--v2-surface); }
.solution-detail__block li a:hover, .solution-detail__categories-form button:hover { color: var(--v2-strong); border-color: rgba(var(--ink), .3); }
.products-sidebar { padding: 1.5rem; }
.products-sidebar__block h2 { color: var(--v2-text); font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; color: var(--v2-text-3); }
.products-categories__item { color: var(--v2-text-2); }
.products-categories__item--parent { color: var(--v2-text); }
.products-categories__item input[type=checkbox] { accent-color: var(--v2-orange); }
.products-search__input, .form-group input, .form-group textarea, .form-group select {
  background: rgba(var(--ink), .03); border: 1px solid var(--v2-border-2); color: var(--v2-text); font-family: inherit;
}
.products-search__input:focus, .form-group input:focus, .form-group textarea:focus {
  border-color: rgba(242, 131, 44, .6); box-shadow: 0 0 0 4px rgba(242, 131, 44, .15); background: rgba(var(--ink), .05);
}
.products-search__icon { color: var(--v2-text-3); }
.pagination a, .pagination em, .pagination strong { border: 1px solid var(--v2-border-2); color: var(--v2-text-2); border-radius: 10px; }
.pagination a:hover { border-color: rgba(var(--ink), .3); color: var(--v2-strong); }
.pagination em, .pagination strong { background: var(--v2-strong); border-color: var(--v2-strong); color: var(--v2-inv); }

/* ---------- Kontakt i formularze ---------- */
.contact-section-title, .contact-form-block h2, .contact-info-block h2, .contact-info-greeting { color: var(--v2-text); }
.contact-info-text, .contact-company, .contact-phone a { color: var(--v2-text-2); }
.contact-phone i, .contact-phone .lucide { color: var(--v2-orange); }
.contact-legal { border-top-color: var(--v2-border); color: var(--v2-text-3); }
.form-group label { color: var(--v2-text); font-weight: 500; }
.contact-map iframe { border-radius: var(--v2-radius); border: 1px solid var(--v2-border); filter: invert(.9) hue-rotate(180deg) saturate(.6) brightness(.95); }
p.contact-form-success { background: rgba(242, 131, 44, .12); border: 1px solid rgba(242, 131, 44, .45); color: #ffd2ad; }
p.contact-form-error { background: rgba(239, 68, 68, .1); border: 1px solid rgba(239, 68, 68, .45); color: #fca5a5; }

/* ---------- Stopka ---------- */
.site-footer { background: var(--v2-bg); border-top: 1px solid var(--v2-border); padding: 4.5rem 0 2rem; position: relative; overflow: hidden; }
.site-footer::before {
  content: ""; position: absolute; left: 50%; top: -1px; transform: translateX(-50%); width: min(50rem, 90%); height: 1px;
  background: linear-gradient(90deg, transparent, rgba(242, 131, 44, .6), transparent);
}
.footer-col h2 { color: var(--v2-text-3); font-size: .75rem; font-weight: 600; letter-spacing: .12em; }
.footer-col a { color: var(--v2-text-2); }
.footer-col a:hover { color: var(--v2-strong); }
.footer-col li { color: var(--v2-text-2); }
.footer-social a {
  width: 40px; height: 40px; display: inline-grid; place-items: center; border-radius: 10px; font-size: 1.1rem;
  color: var(--v2-text-2); background: var(--v2-surface-2); border: 1px solid var(--v2-border); transition: color .2s, border-color .2s, transform .3s var(--v2-ease);
}
.footer-social a:hover { color: var(--v2-strong); border-color: var(--v2-border-2); transform: translateY(-2px); }
.footer-badge { border-radius: 12px; }
.footer-bottom { border-top-color: var(--v2-border); color: var(--v2-text-3); }

/* ---------- SensLine i "O nas" (style osadzone w szablonach sensline/index i pages/entry) ---------- */
body .sl-stats, body .sl-cta { background: linear-gradient(135deg, rgba(111, 155, 224, .07), rgba(242, 131, 44, .05)); border-block: 1px solid var(--v2-border); color: var(--v2-text-2); }
body .sl-stat__value { color: var(--v2-orange); font-weight: 700; letter-spacing: -.04em; }
body .sl-stat__label { color: var(--v2-text-2); }
body .sl-stats .sl-note { color: var(--v2-text-3); }
body .sl-cta h2 { color: var(--v2-text); }
body .sl-strip { background: var(--v2-bg-2); border-block: 1px solid var(--v2-border); color: var(--v2-text-2); }
body .sl-table thead th { background: rgba(var(--ink), .06); color: var(--v2-text); }
body .sl-table th, body .sl-table td { border-bottom-color: var(--v2-border); }
body .sl-tags span { background: rgba(242, 131, 44, .08); color: var(--v2-text); border-left: 0; box-shadow: 0 0 0 1px rgba(242, 131, 44, .3) inset; border-radius: 999px; }
body .sl-card {
  position: relative; background: linear-gradient(180deg, rgba(var(--ink), .04), rgba(var(--ink), .015));
  border: 1px solid var(--v2-border); border-radius: var(--v2-radius); box-shadow: var(--v2-shadow);
  transition: transform .5s var(--v2-ease), border-color .3s;
}
body .sl-card:hover { transform: translateY(-4px); border-color: rgba(var(--ink), .16); }
body .sl-card > i, body .sl-card > .lucide { font-size: 1.6rem; width: 1em; height: 1em; color: var(--v2-orange); }
body .sl-btn-ghost, body .ab-btn-ghost { border: 1px solid rgba(var(--ink), .3) !important; background: rgba(var(--ink), .06) !important; box-shadow: none; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
body .sl-btn-ghost:hover, body .ab-btn-ghost:hover { background: rgba(var(--ink), .14) !important; color: var(--v2-strong) !important; }

/* ---------- Baner cookies w ciemnym motywie ---------- */
/* "Akceptuj" i "Odrzuć" nadal wyglądają identycznie (wymóg UODO / EROD) */
.sc-cc {
  --cc-navy: #f2832c; --cc-blue: #f2832c;
  --cc-bg: rgba(var(--bgc2), .9); --cc-surface: #0f1726;
  --cc-text: #e7ecf3; --cc-muted: #a3afc0; --cc-line: rgba(var(--ink), .12);
  --cc-shadow: 0 30px 80px -20px rgba(0, 0, 0, .9), 0 0 0 1px rgba(var(--ink), .04) inset;
}
.sc-cc .sc-cc__btn--primary, .sc-cc .sc-cc__btn--primary:hover { color: #fff; background: var(--v2-orange); border-color: var(--v2-orange); }
.sc-cc .sc-cc__btn--primary:hover { filter: brightness(1.08); box-shadow: 0 8px 24px -8px rgba(242, 131, 44, .7); }
.sc-cc .sc-cc__btn--ghost:hover { color: var(--v2-strong); border-color: rgba(var(--ink), .35); }
.sc-cc a { color: #ffb57a; }

/* ==========================================================
   STRONA GŁÓWNA v2 (szablon start/index)
   ========================================================== */
.h-hero { position: relative; isolation: isolate; overflow: hidden; padding: clamp(3.5rem, 8vw, 7rem) 0 clamp(3rem, 6vw, 5.5rem); }
.h-hero::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-image: linear-gradient(rgba(var(--ink), .045) 1px, transparent 1px), linear-gradient(90deg, rgba(var(--ink), .045) 1px, transparent 1px);
  background-size: 64px 64px; background-position: center top;
  -webkit-mask: radial-gradient(ellipse 70% 60% at 50% 30%, #000 20%, transparent 75%); mask: radial-gradient(ellipse 70% 60% at 50% 30%, #000 20%, transparent 75%);
}
.h-hero::after {
  content: ""; position: absolute; z-index: -1; pointer-events: none; inset: -20% -10% auto auto; width: 60rem; height: 40rem;
  background: radial-gradient(closest-side, rgba(242, 131, 44, .22), transparent 70%), radial-gradient(closest-side at 30% 70%, rgba(111, 155, 224, .18), transparent 70%);
  filter: blur(30px);
}
.h-hero__inner { display: grid; gap: clamp(2.5rem, 5vw, 4rem); align-items: center; }
@media (width >= 1024px) { .h-hero__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2.5rem, 4vw, 4rem); max-width: 1400px; }
  .h-hero__inner { align-items: start; }
  /* Ramka wysunięta o 2 kratki tła (2 x 64 px) w lewo; górna krawędź równo ze znaczkiem .h-pill */
  .h-visual { margin-left: -64px; } }

.h-pill {
  display: inline-flex; align-items: center; gap: .6rem; margin: 0 0 1.5rem; padding: .4rem .9rem .4rem .7rem; border-radius: 999px;
  font-size: .8rem; font-weight: 500; letter-spacing: .02em; color: var(--v2-text);
  background: rgba(var(--ink), .04); box-shadow: 0 0 0 1px var(--v2-border-2) inset;
  animation: v2-rise .9s var(--v2-ease) both;
}
.h-pill__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--v2-orange); box-shadow: 0 0 0 0 rgba(242, 131, 44, .6); animation: h-pulse 2s infinite; }
@keyframes h-pulse { 70% { box-shadow: 0 0 0 8px rgba(242, 131, 44, 0); } 100% { box-shadow: 0 0 0 0 rgba(242, 131, 44, 0); } }

.h-hero__title {
  margin: 0 0 1.4rem; font-size: clamp(2.1rem, 3.3vw, 3.15rem); font-weight: 700; letter-spacing: -.04em; line-height: 1.07; text-wrap: balance;
  background: linear-gradient(180deg, #fff 40%, #aeb9ca); -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: v2-rise 1s var(--v2-ease) both .08s;
}
.h-grad { background: linear-gradient(90deg, #ffb37a, var(--v2-orange) 50%, #e2661b); -webkit-background-clip: text; background-clip: text; color: transparent; }
.h-hero__lead { max-width: 34rem; margin: 0 0 2rem; font-size: clamp(1.05rem, 1.5vw, 1.2rem); color: var(--v2-text-2); animation: v2-rise 1s var(--v2-ease) both .16s; }
.h-hero__lead p { margin: 0; }
.h-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; animation: v2-rise 1s var(--v2-ease) both .24s; }
/* Znaczek EcoVadis: w wolnym polu między przyciskami a ramką zdjęcia (ujemny margines, żeby nie podnosić wiersza) */
.h-eco { display: flex; justify-content: center; margin: -10px 0 -10px .5rem; }
.h-eco img { display: block; width: 72px; height: 72px; filter: drop-shadow(0 6px 18px rgba(0, 0, 0, .45)); }
@media (width >= 1024px) { .h-eco { flex: 1 1 auto; margin: -10px 16px -10px 0; } }
@media (width >= 1280px) { .h-eco { margin: -24px 128px -24px 0; } .h-eco img { width: 96px; height: 96px; } }
.h-trust {
  list-style: none; margin: 2.75rem 0 0; padding: 1.5rem 0 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.25rem 1.5rem;
  border-top: 1px solid var(--v2-border); animation: v2-rise 1s var(--v2-ease) both .32s;
}
@media (width >= 1280px) { .h-visual { margin-left: -128px; } }
@media (width >= 640px) { .h-trust { grid-template-columns: repeat(4, auto); justify-content: start; gap: 1.5rem 2.25rem; } }
.h-trust strong { display: block; color: var(--v2-text); font-size: 1.35rem; font-weight: 650; letter-spacing: -.03em; line-height: 1.2; }
.h-trust span { display: block; font-size: .8rem; color: var(--v2-text-3); line-height: 1.4; }

/* Wizualizacja: zdjęcie w szklanej ramce + pływające karty statusu */
.h-visual { position: relative; animation: v2-rise 1.2s var(--v2-ease) both .3s; }
.h-visual::before {
  content: ""; position: absolute; inset: 10% 5%; z-index: -1; border-radius: 40px;
  background: radial-gradient(closest-side, rgba(242, 131, 44, .35), transparent), radial-gradient(closest-side at 80% 80%, rgba(111, 155, 224, .3), transparent);
  filter: blur(50px);
}
.h-visual__frame {
  padding: 8px; border-radius: 22px; background: linear-gradient(180deg, rgba(var(--ink), .1), rgba(var(--ink), .02));
  box-shadow: 0 0 0 1px var(--v2-border-2) inset, 0 50px 100px -30px rgba(0, 0, 0, .9);
  transform: perspective(1800px) rotateY(-4deg) rotateX(1.5deg); transition: transform 1s var(--v2-ease);
}
.h-visual:hover .h-visual__frame { transform: perspective(1400px) rotateY(-2deg) rotateX(1deg); }
.h-stage { position: relative; }
.h-frame-in { position: relative; aspect-ratio: 16 / 10; border-radius: 15px; overflow: hidden; background: #0c1322; }
/* Sceny: przenikanie + powolne zbliżenie (Ken Burns) */
.h-scene-img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  opacity: 0; transform: scale(1.08); transition: opacity 1.1s ease, transform 0s linear 1.1s;
}
.h-scene-img.is-active { opacity: 1; transform: scale(1); transition: opacity 1.1s ease, transform 8s cubic-bezier(.2, .6, .3, 1); }
.h-chips { position: absolute; inset: 0; pointer-events: none; }
.h-chips .h-chip { opacity: 0; translate: 0 14px; filter: blur(6px); transition: opacity .5s ease, translate .5s ease, filter .5s ease; }
.h-chips.is-active .h-chip { opacity: 1; translate: 0 0; filter: blur(0); transition: opacity .8s var(--v2-ease), translate .8s var(--v2-ease), filter .8s var(--v2-ease); }
.h-chips.is-active .h-chip--1 { transition-delay: .35s; }
.h-chips.is-active .h-chip--2 { transition-delay: .55s; }
.h-chips.is-active .h-chip--3 { transition-delay: .75s; }
/* Zakładki filarów z paskiem postępu */
.h-tabs { display: flex; gap: 1rem; margin-top: 2rem; }
.h-tab {
  flex: 1; display: flex; flex-wrap: wrap; align-items: baseline; gap: .45rem; padding: 0; border: 0; background: none; cursor: pointer;
  font: inherit; font-size: .88rem; font-weight: 500; color: var(--v2-text-3); text-align: left; transition: color .3s;
}
.h-tab:hover { color: var(--v2-text-2); }
.h-tab.is-active { color: var(--v2-text); }
.h-tab__num { font-size: .72rem; font-variant-numeric: tabular-nums; color: var(--v2-text-3); transition: color .3s; }
.h-tab.is-active .h-tab__num { color: var(--v2-orange); }
.h-tab__bar { flex: 0 0 100%; height: 2px; margin-bottom: .55rem; border-radius: 2px; background: var(--v2-border-2); overflow: hidden; }
.h-tab__bar i { display: block; width: 100%; height: 100%; background: linear-gradient(90deg, var(--v2-orange), #ffb37a); transform: scaleX(0); transform-origin: left; }
.h-tab.is-active .h-tab__bar i { animation: h-progress 7s linear forwards; }
.h-visual:hover .h-tab.is-active .h-tab__bar i { animation-play-state: paused; }
@keyframes h-progress { to { transform: scaleX(1); } }
.h-chip {
  position: absolute; display: flex; align-items: center; gap: .7rem; padding: .7rem .95rem .7rem .7rem; border-radius: 14px;
  background: rgba(var(--bgc2), .72); -webkit-backdrop-filter: blur(14px) saturate(160%); backdrop-filter: blur(14px) saturate(160%);
  box-shadow: 0 0 0 1px rgba(var(--ink), .12) inset, 0 20px 40px -12px rgba(0, 0, 0, .8);
  font-size: .82rem; line-height: 1.25; color: var(--v2-text); white-space: nowrap;
  animation: h-float 6s ease-in-out infinite;
}
.h-chip b { display: block; font-weight: 600; }
.h-chip small { display: flex; align-items: center; gap: .35rem; color: var(--v2-text-2); font-size: .75rem; }
.h-chip__ico { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; color: var(--v2-orange); font-size: 18px; background: rgba(242, 131, 44, .12); box-shadow: 0 0 0 1px rgba(242, 131, 44, .3) inset; }
.h-dot { width: 7px; height: 7px; border-radius: 50%; background: #34d399; box-shadow: 0 0 10px #34d399; }
.h-chip--1 { left: -1.5rem; top: 30%; }
.h-chip--2 { right: -1.25rem; top: 58%; animation-delay: -2s; }
.h-chip--3 { left: 12%; bottom: -1.25rem; animation-delay: -4s; }
@keyframes h-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@media (width < 640px) {
  .h-chip { font-size: .75rem; padding: .5rem .7rem .5rem .5rem; }
  .h-chip__ico { width: 28px; height: 28px; font-size: 15px; }
  .h-chip--1 { left: .5rem; } .h-chip--2 { right: .5rem; } .h-chip--3 { left: .5rem; bottom: -1rem; }
  .h-visual__frame { transform: none; }
}

/* Nagłówki sekcji */
.h-head { margin-bottom: clamp(2rem, 4vw, 3rem); }
.h-head .section__title { margin-bottom: 1rem; }
.h-head > p:not(.h-eyebrow) { max-width: 46rem; font-size: 1.05rem; color: var(--v2-text-2); margin: 0; }
.h-head--center { text-align: center; }
.h-head--center .h-eyebrow { justify-content: center; }
.h-eyebrow { display: flex; align-items: center; gap: .6rem; margin: 0 0 .9rem; font-size: .78rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--v2-orange); }
.h-eyebrow::before { content: ""; width: 18px; height: 1px; background: currentColor; }
.h-head--center .h-eyebrow::after { content: ""; width: 18px; height: 1px; background: currentColor; }

/* Bento rozwiązań */
.h-bento { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (width >= 768px) { .h-bento { grid-template-columns: repeat(2, 1fr); } .h-tile--a { grid-column: span 2; } }
@media (width >= 1024px) {
  .h-bento { grid-template-columns: repeat(6, 1fr); grid-auto-rows: minmax(270px, auto); }
  .h-tile--a { grid-column: span 4; grid-row: span 2; }
  .h-tile--b, .h-tile--c { grid-column: span 2; }
}
.h-tile {
  position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; min-height: 320px;
  padding: clamp(1.5rem, 3vw, 2.25rem); border-radius: 20px; border: 1px solid var(--v2-border);
  background: linear-gradient(180deg, rgba(var(--ink), .04), rgba(var(--ink), .015)); box-shadow: var(--v2-shadow);
  transition: transform .5s var(--v2-ease), border-color .3s, box-shadow .5s var(--v2-ease);
}
.h-tile:hover { transform: translateY(-4px); border-color: rgba(var(--ink), .18); box-shadow: 0 1px 0 rgba(var(--ink), .06) inset, 0 40px 80px -30px rgba(0, 0, 0, .95), 0 0 0 1px rgba(242, 131, 44, .1); }
.h-tile::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: 0; transition: opacity .4s;
  background: radial-gradient(30rem circle at var(--mx, 50%) var(--my, 0%), rgba(242, 131, 44, .14), transparent 45%);
}
.h-tile:hover::before { opacity: 1; }
/* Zdjęcie u góry kafelka w pełnej jasności, wygaszane w dół do tła karty; tekst pod zdjęciem */
.h-tile { --tp: clamp(1.5rem, 3vw, 2.25rem); padding: var(--tp); }
.h-tile:has(.h-tile__media) { justify-content: flex-start; }
.h-tile__media-wrap {
  position: relative; display: block; overflow: hidden; height: 220px;
  margin: calc(-1 * var(--tp)) calc(-1 * var(--tp)) 1.25rem;
  -webkit-mask: linear-gradient(180deg, #000 55%, transparent); mask: linear-gradient(180deg, #000 55%, transparent);
}
.h-tile--a .h-tile__media-wrap { flex: 1 1 auto; height: auto; min-height: 340px; }
.h-tile__media { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform 1.2s var(--v2-ease); }
.h-tile:hover .h-tile__media { transform: scale(1.04); }
.h-tile--c .h-tile__media { object-position: 60% 50%; }
.h-tile .h-tile__media-wrap + .h-tile__body .v2-tile-icon { margin-top: -2.75rem; position: relative; background: #1a120c; }
.h-tile--b .v2-tile-icon { display: none; }
.h-tile--b { padding-top: 7rem; justify-content: flex-end; }.h-tile__body { position: relative; max-width: 36rem; }
.h-tile h3 { margin: 0 0 .6rem; font-size: clamp(1.2rem, 1.8vw, 1.5rem); letter-spacing: -.03em; }
.h-tile--a h3 { font-size: clamp(1.5rem, 2.6vw, 2.1rem); }
.h-tile h3 a { color: var(--v2-text); }
.h-tile h3 a::after { content: ""; position: absolute; inset: 0; z-index: 3; }
.h-tile:focus-within { outline: 2px solid var(--v2-orange); outline-offset: 3px; }
.h-tile p { margin: 0 0 1.25rem; color: var(--v2-text-2); font-size: .95rem; }
.h-tile__more { display: inline-flex; align-items: center; gap: .35rem; font-size: .88rem; font-weight: 600; color: var(--v2-text); }
.h-tile__more .lucide { transition: transform .4s var(--v2-ease); color: var(--v2-orange); }
.h-tile:hover .h-tile__more .lucide { transform: translate(3px, -3px); }
.h-tile .v2-tile-icon { margin-bottom: 1.25rem; }

/* Kafelek "kontenery": 4 unoszące się karty telemetrii na zdjęciu (wartości zmienia v2_js) */
.h-tchips { position: absolute; inset: 0; pointer-events: none; }
.h-tc { font-size: .78rem; padding: .55rem .8rem .55rem .55rem; gap: .6rem; }
.h-tc .h-chip__ico { width: 30px; height: 30px; font-size: 16px; }
.h-tc b { font-variant-numeric: tabular-nums; transition: color .3s; }
.h-tc b.is-tick { color: #ffd2ad; }
.h-tc--1 { left: 6%; top: 9%; }
.h-tc--2 { right: 6%; top: 15%; animation-delay: -1.5s; }
.h-tc--3 { left: 12%; top: 40%; animation-delay: -3s; }
.h-tc--4 { right: 12%; top: 46%; animation-delay: -4.5s; }
@media (width < 640px) { .h-tc--3, .h-tc--4 { display: none; } }
.h-tc--alarm { left: 8%; top: 12%; box-shadow: 0 0 0 1px rgba(242, 131, 44, .6) inset, 0 20px 40px -12px rgba(0, 0, 0, .8), 0 0 0 0 rgba(242, 131, 44, .5); animation: h-float 6s ease-in-out infinite, h-alarm 1.8s ease-out infinite; }
.h-tc--alarm .h-chip__ico { color: #fff; background: var(--v2-orange); animation: h-alarm-ico 1.8s ease-in-out infinite; }
.h-dot--alarm { background: var(--v2-orange); box-shadow: 0 0 10px var(--v2-orange); animation: sw-blink .9s infinite; }
@keyframes h-alarm { 0% { box-shadow: 0 0 0 1px rgba(242, 131, 44, .6) inset, 0 20px 40px -12px rgba(0, 0, 0, .8), 0 0 0 0 rgba(242, 131, 44, .55); } 100% { box-shadow: 0 0 0 1px rgba(242, 131, 44, .6) inset, 0 20px 40px -12px rgba(0, 0, 0, .8), 0 0 0 14px rgba(242, 131, 44, 0); } }
@keyframes h-alarm-ico { 0%, 100% { transform: rotate(0); } 10% { transform: rotate(-14deg); } 20% { transform: rotate(12deg); } 30% { transform: rotate(-8deg); } 40% { transform: rotate(0); } }

/* Mini-mapa trasy w kafelku "pojazdy" */
.h-map { position: absolute; inset: 0 0 auto 0; width: 100%; height: 42%; z-index: -1; opacity: .9;
  -webkit-mask: linear-gradient(180deg, #000 40%, transparent); mask: linear-gradient(180deg, #000 40%, transparent);
  background-image: radial-gradient(rgba(var(--ink), .12) 1px, transparent 1px); background-size: 16px 16px; }
.h-map__route { fill: none; stroke: var(--v2-orange); stroke-width: 2.5; stroke-linecap: round; stroke-dasharray: 6 8; animation: h-dash 1.6s linear infinite; filter: drop-shadow(0 0 6px rgba(242, 131, 44, .6)); }
.h-map__pt { fill: #0c1322; stroke: var(--v2-blue); stroke-width: 2; }
.h-map__live { fill: var(--v2-orange); animation: h-ping 2s infinite; transform-origin: 380px 40px; }
@keyframes h-dash { to { stroke-dashoffset: -28; } }
@keyframes h-ping { 0% { opacity: 1; } 50% { opacity: .45; } 100% { opacity: 1; } }

/* CTA */
.h-cta__panel {
  position: relative; isolation: isolate; overflow: hidden; text-align: center; padding: clamp(2.5rem, 6vw, 4.5rem) clamp(1.5rem, 4vw, 3rem);
  border-radius: 28px; border: 1px solid var(--v2-border-2);
  background: radial-gradient(60% 120% at 50% 0%, rgba(242, 131, 44, .18), transparent 60%), linear-gradient(180deg, rgba(var(--ink), .05), rgba(var(--ink), .01));
}
.h-cta__panel::before {
  content: ""; position: absolute; inset: 0; z-index: -1; opacity: .5;
  background-image: linear-gradient(rgba(var(--ink), .05) 1px, transparent 1px), linear-gradient(90deg, rgba(var(--ink), .05) 1px, transparent 1px); background-size: 48px 48px;
  -webkit-mask: radial-gradient(ellipse at top, #000, transparent 70%); mask: radial-gradient(ellipse at top, #000, transparent 70%);
}
.h-cta__panel h2 { margin: 0 auto 1rem; max-width: 40rem; font-size: clamp(1.75rem, 3.6vw, 2.75rem); letter-spacing: -.04em; text-wrap: balance; }
.h-cta__panel p { margin: 0 auto 2rem; max-width: 34rem; color: var(--v2-text-2); font-size: 1.05rem; }
.h-cta__panel .h-hero__actions { justify-content: center; animation: none; }
.section.h-cta::before { display: none; }
/* Brak poziomego przewijania na telefonie: schowane menu mobilne (fixed w nagłówku z backdrop-filter) wystawało poza ekran */
html, body { overflow-x: clip; }
/* Elementy klikalne min. 24 px (WCAG 2.2) */
.footer-col li a { display: inline-block; padding: .25rem 0; }
.h-tile__sub { padding: .35rem 0; }
.qf__consent input { width: 18px; height: 18px; }
.qf__consent a { display: inline-block; padding: .2rem 0; }
@media (width < 1024px) {
  .main-nav__list > li > a, .main-nav__submenu a { display: block; padding-top: .55rem; padding-bottom: .55rem; padding: 8px; }
  .main-nav__list > li > a:hover, .main-nav__submenu a:hover {
    background: linear-gradient(180deg, #f5944a, var(--v2-orange) 45%, var(--v2-orange-2));
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 1px 0 rgba(var(--ink), .3) inset, 0 14px 34px -8px rgba(242, 131, 44, .7);
    filter: brightness(1.06);
    border-radius: 15px;
    padding: 8px;
  }
}
/* Baner cookies: ciemniejszy pomarańcz pod białym tekstem (kontrast WCAG AA) */
.sc-cc .sc-cc__btn--primary { background: #b4540f; border-color: #b4540f; }
.sc-cc .sc-cc__btn--primary:hover { background: #9a470c; border-color: #9a470c; }
/* CTA z krótkim formularzem */
.h-cta__panel--form { display: grid; gap: 2rem; text-align: left; }
.h-cta__panel--form h2, .h-cta__panel--form p { margin-left: 0; margin-right: 0; }
.h-cta__panel--form .h-hero__actions { justify-content: flex-start; }
@media (width >= 1024px) { .h-cta__panel--form { grid-template-columns: 1fr 1.1fr; gap: 3rem; align-items: start; } }
.qf { display: grid; gap: .9rem; }
.qf__row { display: grid; gap: .9rem; }
@media (width >= 600px) { .qf__row { grid-template-columns: 1fr 1fr; } }
.qf label { display: block; margin-bottom: .35rem; font-size: .82rem; font-weight: 600; color: var(--v2-text-2); }
.qf input[type=text], .qf input[type=email], .qf input[type=tel], .qf select {
  width: 100%; padding: .75rem .9rem; border-radius: 10px; border: 1px solid var(--v2-border-2); background: rgba(var(--ink), .03); color: var(--v2-text); font: inherit;
}
.qf select option { color: var(--v2-inv); }
.qf textarea { width: 100%; padding: .75rem .9rem; border-radius: 10px; border: 1px solid var(--v2-border-2); background: rgba(var(--ink), .03); color: var(--v2-text); font: inherit; resize: vertical; min-height: 5.5rem; }
.qf textarea:focus { outline: none; border-color: rgba(242, 131, 44, .6); box-shadow: 0 0 0 4px rgba(242, 131, 44, .15); }
.offer-card__cta { margin-top: 1.1rem; }
.form-consent .qf__consent { display: flex; gap: .6rem; align-items: flex-start; margin: 0; font-size: .85rem; font-weight: 400; line-height: 1.45; color: var(--v2-text-2); }
.form-consent .qf__consent .required { color: var(--v2-orange); }
.qf input:focus, .qf select:focus { outline: none; border-color: rgba(242, 131, 44, .6); box-shadow: 0 0 0 4px rgba(242, 131, 44, .15); }
.qf .qf__consent { display: flex; gap: .6rem; align-items: flex-start; margin: 0; font-size: .82rem; font-weight: 400; line-height: 1.45; }
.qf__consent input { margin-top: .2rem; accent-color: var(--v2-orange); flex: none; }
.qf__consent a { color: var(--v2-orange); }
.qf .btn { justify-self: start; }

/* ==========================================================
   ROZWIĄZANIA v2 (szablon solutions/index, lista)
   ========================================================== */
.s-hero .breadcrumbs { margin: 0 0 1.25rem; }
.s-hero .h-trust { grid-template-columns: repeat(3, auto); }

/* Okno aplikacji (wspólne dla grafik) */
.sw {
  position: relative; border-radius: 18px; overflow: hidden;
  background: linear-gradient(180deg, rgba(16, 24, 38, .96), rgba(9, 14, 24, .98));
  box-shadow: 0 0 0 1px var(--v2-border-2) inset, 0 50px 100px -30px rgba(0, 0, 0, .9), 0 0 0 6px rgba(var(--ink), .02);
}
.sw::before { content: ""; position: absolute; inset: -30% -10% auto auto; width: 70%; height: 70%; background: radial-gradient(closest-side, rgba(242, 131, 44, .12), transparent); pointer-events: none; }
.sw__bar { position: relative; display: flex; align-items: center; gap: .4rem; padding: .7rem .9rem; border-bottom: 1px solid var(--v2-border); font-size: .75rem; color: var(--v2-text-3); }
.sw__bar > i { width: 9px; height: 9px; border-radius: 50%; background: rgba(var(--ink), .14); }
.sw__title { margin-left: .6rem; color: var(--v2-text-2); font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sw__live { margin-left: auto; display: inline-flex; align-items: center; gap: .4rem; padding: .15rem .5rem; border-radius: 999px; font-size: .65rem; font-weight: 700; letter-spacing: .1em; color: #6ee7b7; background: rgba(52, 211, 153, .1); }
.sw__live b { width: 6px; height: 6px; border-radius: 50%; background: #34d399; animation: sw-blink 1.6s infinite; }
@keyframes sw-blink { 50% { opacity: .25; } }
.sw__body { position: relative; }
.sw em { width: 8px; height: 8px; border-radius: 50%; flex: none; }
.sw em.ok { background: #34d399; box-shadow: 0 0 10px #34d399; }
.sw em.warn { background: #fbbf24; box-shadow: 0 0 10px #fbbf24; }
.sw em.bad { background: #f2832c; box-shadow: 0 0 12px #f2832c; }

/* Hero: mapa */
.s-visual { animation: v2-rise 1.2s var(--v2-ease) both .3s; }
.sw--map .sw__body { aspect-ratio: 16 / 10; }
.sw-map { position: absolute; inset: 0; width: 100%; height: 100%; }
.sw-land { fill: rgba(111, 155, 224, .05); stroke: rgba(111, 155, 224, .18); stroke-width: 1; }
.sw-route { fill: none; stroke: rgba(242, 131, 44, .55); stroke-width: 2; stroke-dasharray: 5 7; animation: h-dash 1.8s linear infinite; }
.sw-route--b { stroke: rgba(111, 155, 224, .55); animation-duration: 2.4s; }
.sw-route--c { stroke: rgba(var(--ink), .25); }
.sw-pin__dot { fill: #f2832c; stroke: #fff; stroke-width: 2; }
.sw-pin--b .sw-pin__dot { fill: var(--v2-blue); }
.sw-pin--c .sw-pin__dot { fill: #fff; stroke: var(--v2-blue); }
.sw-mk rect { fill: #0c1322; stroke: #f2832c; stroke-width: 2; }
.sw-ring { fill: none; stroke: #f2832c; stroke-width: 1.5; transform-box: fill-box; transform-origin: center; animation: sw-ring 2.4s ease-out infinite; }
.sw-ring--2 { animation-delay: 1.2s; }
@keyframes sw-ring { from { transform: scale(1); opacity: .9; } to { transform: scale(4); opacity: 0; } }
.sw-list { position: absolute; top: 1rem; right: 1rem; width: min(58%, 250px); margin: 0; padding: .4rem; list-style: none; display: grid; gap: .3rem;
  border-radius: 14px; background: rgba(9, 14, 24, .78); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 0 0 1px var(--v2-border-2) inset; }
.sw-list li { display: flex; align-items: center; gap: .6rem; padding: .45rem .5rem; border-radius: 10px; font-size: .75rem; line-height: 1.25; color: var(--v2-text); animation: sw-row 9s infinite; }
.sw-list li:nth-child(2) { animation-delay: 3s; } .sw-list li:nth-child(3) { animation-delay: 6s; }
@keyframes sw-row { 0%, 30%, 100% { background: transparent; } 5%, 25% { background: rgba(var(--ink), .06); } }
.sw-list b { display: block; font-weight: 600; }
.sw-list small { color: var(--v2-text-3); font-size: .7rem; }
.sw-list__ico { display: grid; place-items: center; width: 28px; height: 28px; flex: none; border-radius: 8px; color: var(--v2-orange); font-size: 15px; background: rgba(242, 131, 44, .12); }
.sw-list em { margin-left: auto; }

/* Filary */
.s-pillar { display: grid; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; padding: clamp(2rem, 5vw, 4rem) 0; }
.s-pillar + .s-pillar { border-top: 1px solid var(--v2-border); }
@media (width >= 1024px) {
  .s-pillar { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); }
  .s-pillar--rev { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); }
  .s-pillar--rev .s-pillar__copy { order: 2; }
}
.s-pillar__num { display: inline-block; margin-bottom: 1rem; font-size: .8rem; font-weight: 600; letter-spacing: .1em; color: var(--v2-orange); padding: .25rem .6rem; border-radius: 999px; box-shadow: 0 0 0 1px rgba(242, 131, 44, .35) inset; background: rgba(242, 131, 44, .08); }
.s-pillar h3 { margin: 0 0 1rem; font-size: clamp(1.6rem, 2.8vw, 2.25rem); letter-spacing: -.035em; }
.s-pillar p { margin: 0 0 1.5rem; color: var(--v2-text-2); font-size: 1.02rem; }
.s-checks { list-style: none; margin: 0 0 1.75rem; padding: 0; display: grid; gap: .7rem; }
.s-checks li { display: flex; gap: .65rem; align-items: flex-start; color: var(--v2-text); font-size: .95rem; }
.s-checks .lucide { flex: none; margin-top: .2rem; padding: 3px; width: 1.15em; height: 1.15em; border-radius: 50%; color: var(--v2-orange); background: rgba(242, 131, 44, .14); }
.s-link { display: inline-flex; align-items: center; gap: .45rem; font-weight: 600; color: var(--v2-text); font-size: .95rem; }
.s-link .lucide { color: var(--v2-orange); transition: transform .4s var(--v2-ease); }
.s-link:hover { color: var(--v2-strong); }
.s-link:hover .lucide { transform: translateX(4px); }

/* 01 Kontenery: rysunek + dziennik zdarzeń (pętla 12 s) */
.sw-cargo { display: grid; gap: 1rem; padding: 1.25rem; }
@media (width >= 640px) { .sw-cargo { grid-template-columns: 1.15fr .85fr; align-items: center; } }
.sw-cargo__art svg { width: 100%; height: auto; display: block; }
.cg-box { fill: #13233a; stroke: rgba(111, 155, 224, .45); stroke-width: 2; }
.cg-ribs path, .cg-bars { fill: none; stroke: rgba(111, 155, 224, .25); stroke-width: 3; stroke-linecap: round; }
.cg-door { fill: #172a44; stroke: rgba(111, 155, 224, .4); stroke-width: 1.5; transform-box: fill-box; transform-origin: left center; }
.cg-door--r { transform-origin: right center; animation: cg-door 12s var(--v2-ease) infinite; }
@keyframes cg-door { 0%, 72% { transform: scaleX(1); } 76%, 86% { transform: scaleX(.86); } 92%, 100% { transform: scaleX(1); } }
.cg-seal rect { fill: #0c1322; stroke: rgba(var(--ink), .5); stroke-width: 1.5; }
.cg-seal__led { fill: #34d399; animation: cg-led 12s infinite; }
.cg-seal__ring { fill: none; stroke: #34d399; stroke-width: 1.5; opacity: .5; transform-box: fill-box; transform-origin: center; animation: cg-ring 12s infinite; }
@keyframes cg-led { 0%, 73% { fill: #34d399; } 74%, 94% { fill: #f2832c; } 95%, 100% { fill: #34d399; } }
@keyframes cg-ring { 0%, 73% { stroke: #34d399; transform: scale(1); opacity: .5; } 74% { stroke: #f2832c; transform: scale(1); opacity: 1; } 84% { stroke: #f2832c; transform: scale(2.2); opacity: 0; } 85%, 100% { transform: scale(1); opacity: .5; stroke: #34d399; } }
.sw-cargo__stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; margin-top: .75rem; }
.sw-cargo__stats span { padding: .55rem .6rem; border-radius: 10px; background: rgba(var(--ink), .04); box-shadow: 0 0 0 1px var(--v2-border) inset; }
.sw-cargo__stats b { display: block; color: var(--v2-text); font-size: .95rem; }
.sw-cargo__stats small { color: var(--v2-text-3); font-size: .7rem; }
.sw-feed { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.sw-feed li {
  display: grid; grid-template-columns: auto 1fr; column-gap: .6rem; align-items: center; padding: .6rem .75rem; border-radius: 12px;
  background: rgba(var(--ink), .035); box-shadow: 0 0 0 1px var(--v2-border) inset; font-size: .8rem; line-height: 1.3; color: var(--v2-text);
  opacity: 0; animation: sw-feed1 12s var(--v2-ease) infinite;
}
.sw-feed li small { grid-column: 2; color: var(--v2-text-3); font-size: .7rem; }
.sw-feed li em { grid-row: span 2; }
.sw-feed li:nth-child(1) { animation-name: sw-feed1; }
.sw-feed li:nth-child(2) { animation-name: sw-feed2; }
.sw-feed li:nth-child(3) { animation-name: sw-feed3; }
.sw-feed li:nth-child(4) { animation-name: sw-feed4; }
.sw-feed li.alarm { background: rgba(242, 131, 44, .12); box-shadow: 0 0 0 1px rgba(242, 131, 44, .45) inset, 0 10px 30px -10px rgba(242, 131, 44, .5); }
@keyframes sw-feed1 { 0% { opacity: 0; transform: translateY(8px); } 4%, 95% { opacity: 1; transform: none; } 100% { opacity: 0; } }
@keyframes sw-feed2 { 0%, 22% { opacity: 0; transform: translateY(8px); } 26%, 95% { opacity: 1; transform: none; } 100% { opacity: 0; } }
@keyframes sw-feed3 { 0%, 46% { opacity: 0; transform: translateY(8px); } 50%, 95% { opacity: 1; transform: none; } 100% { opacity: 0; } }
@keyframes sw-feed4 { 0%, 72% { opacity: 0; transform: translateY(8px) scale(.98); } 76%, 95% { opacity: 1; transform: none; } 100% { opacity: 0; } }

/* 02 Pojazdy: prędkościomierz (wartość z v2_js) + wykres + łączność */
.sw-fleet { display: grid; gap: 1.25rem; padding: 1.25rem; }
@media (width >= 640px) { .sw-fleet { grid-template-columns: .9fr 1.1fr; align-items: center; } }
.sw-gauge { position: relative; }
.sw-gauge svg { width: 100%; height: auto; display: block; }
.gg-track, .gg-fill { fill: none; stroke-width: 12; stroke-linecap: round; }
.gg-track { stroke: rgba(var(--ink), .08); }
.gg-fill { stroke: #f2832c; stroke-dasharray: 100; stroke-dashoffset: calc(100 - var(--spd-p, 60)); transition: stroke-dashoffset 1.2s var(--v2-ease); filter: drop-shadow(0 0 8px rgba(242, 131, 44, .5)); }
.gg-needle { transform-origin: 100px 81px; transform: rotate(calc(var(--spd-p, 60) * 2.378deg - 118.9deg)); transition: transform 1.2s var(--v2-ease); }
.gg-needle path { stroke: #fff; stroke-width: 3; stroke-linecap: round; }
.gg-needle circle { fill: #fff; }
.sw-gauge__val { position: absolute; left: 0; right: 0; bottom: 0; text-align: center; line-height: 1.1; }
.sw-gauge__val b { display: block; font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 700; letter-spacing: -.04em; color: var(--v2-text); font-variant-numeric: tabular-nums; }
.sw-gauge__val b:empty::before { content: "86"; }
.sw-gauge__val small { color: var(--v2-text-3); font-size: .72rem; }
.sw-net { position: relative; height: 30px; margin-bottom: .75rem; }
.sw-net span { position: absolute; left: 0; top: 0; display: inline-flex; align-items: center; gap: .45rem; padding: .35rem .7rem; border-radius: 999px; font-size: .72rem; font-weight: 600; letter-spacing: .04em; }
.sw-net__gsm { color: #6ee7b7; background: rgba(52, 211, 153, .1); box-shadow: 0 0 0 1px rgba(52, 211, 153, .3) inset; animation: sw-net-a 10s infinite; }
.sw-net__sat { color: #ffd2ad; background: rgba(242, 131, 44, .12); box-shadow: 0 0 0 1px rgba(242, 131, 44, .4) inset; animation: sw-net-b 10s infinite; }
@keyframes sw-net-a { 0%, 45% { opacity: 1; transform: none; } 50%, 95% { opacity: 0; transform: translateY(-6px); } 100% { opacity: 1; transform: none; } }
@keyframes sw-net-b { 0%, 45% { opacity: 0; transform: translateY(6px); } 50%, 95% { opacity: 1; transform: none; } 100% { opacity: 0; } }
.sw-chart { width: 100%; height: 90px; display: block; }
.ch-area { fill: rgba(242, 131, 44, .1); }
.ch-line { fill: none; stroke: #f2832c; stroke-width: 2; stroke-dasharray: 100; animation: ch-draw 6s var(--v2-ease) infinite; vector-effect: non-scaling-stroke; }
@keyframes ch-draw { 0% { stroke-dashoffset: 100; } 50%, 90% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: 0; opacity: 0; } }
.sw-kv { list-style: none; margin: .75rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; }
.sw-kv li { padding: .55rem .6rem; border-radius: 10px; background: rgba(var(--ink), .04); box-shadow: 0 0 0 1px var(--v2-border) inset; }
.sw-kv small { display: block; color: var(--v2-text-3); font-size: .68rem; }
.sw-kv b { color: var(--v2-text); font-size: .85rem; }

/* 03 Obiekty: plan z ogrodzeniem SensLine (pętla 8 s) */
.sw-site { padding: 1rem; }
.sw-site svg { width: 100%; height: auto; display: block; }
.st-fence { fill: rgba(111, 155, 224, .04); stroke: rgba(111, 155, 224, .5); stroke-width: 2; stroke-dasharray: 2 5; }
.st-sensors circle { fill: #6f9be0; }
.st-build rect { fill: #13233a; stroke: rgba(111, 155, 224, .3); stroke-width: 1; }
.st-zone { stroke: #f2832c; stroke-width: 5; stroke-linecap: round; opacity: 0; animation: st-zone 8s infinite; filter: drop-shadow(0 0 6px #f2832c); }
@keyframes st-zone { 0%, 30% { opacity: 0; } 34%, 80% { opacity: 1; } 86%, 100% { opacity: 0; } }
.st-hit { fill: #f2832c; opacity: 0; animation: st-zone 8s infinite; }
.st-ripple { fill: none; stroke: #f2832c; stroke-width: 2; opacity: 0; transform-box: fill-box; transform-origin: center; animation: st-ripple 8s infinite; }
.st-ripple--2 { animation-name: st-ripple2; }
@keyframes st-ripple { 0%, 33% { opacity: 0; transform: scale(1); } 34% { opacity: 1; } 50% { opacity: 0; transform: scale(5); } 100% { opacity: 0; } }
@keyframes st-ripple2 { 0%, 45% { opacity: 0; transform: scale(1); } 46% { opacity: 1; } 62% { opacity: 0; transform: scale(5); } 100% { opacity: 0; } }
.sw-site__alert {
  position: absolute; right: 1.5rem; top: 30%; display: flex; align-items: center; gap: .6rem; padding: .6rem .8rem; border-radius: 12px;
  background: rgba(var(--bgc2), .85); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  box-shadow: 0 0 0 1px rgba(242, 131, 44, .5) inset, 0 20px 40px -12px rgba(0, 0, 0, .8); font-size: .78rem; line-height: 1.3; color: var(--v2-text);
  opacity: 0; animation: st-alert 8s var(--v2-ease) infinite;
}
.sw-site__alert > span:first-child { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; color: var(--v2-orange); background: rgba(242, 131, 44, .14); font-size: 16px; }
.sw-site__alert b { display: block; }
.sw-site__alert small { color: var(--v2-text-2); font-size: .7rem; }
@keyframes st-alert { 0%, 36% { opacity: 0; transform: translateX(10px); } 40%, 80% { opacity: 1; transform: none; } 86%, 100% { opacity: 0; } }
.sw-site__bar { display: flex; justify-content: space-between; align-items: center; margin-top: .75rem; padding: .55rem .75rem; border-radius: 10px; background: rgba(var(--ink), .04); box-shadow: 0 0 0 1px var(--v2-border) inset; font-size: .75rem; color: var(--v2-text-2); }
.sw-site__bar b { color: var(--v2-text); }
.sw-site__state { position: relative; min-width: 9.5rem; text-align: right; }
.sw-site__state i { font-style: normal; font-weight: 600; }
.sw-site__state .ok { color: #6ee7b7; animation: st-ok 8s infinite; }
.sw-site__state .bad { position: absolute; right: 0; top: 0; color: var(--v2-orange); opacity: 0; animation: st-zone 8s infinite; }
@keyframes st-ok { 0%, 30% { opacity: 1; } 34%, 80% { opacity: 0; } 86%, 100% { opacity: 1; } }

/* Branże: przyciski z ikoną, nazwą i opisem (bez zdjęć) */
.s-ind { display: grid; gap: .75rem; grid-template-columns: 1fr; }
@media (width >= 768px) { .s-ind { grid-template-columns: repeat(2, 1fr); } }
@media (width >= 1100px) { .s-ind { grid-template-columns: repeat(3, 1fr); } }
.s-ind__item {
  position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: flex-start; gap: 1rem; padding: 1.15rem 1.15rem 1.15rem 1.1rem;
  border-radius: 16px; border: 1px solid var(--v2-border); color: var(--v2-text);
  background: linear-gradient(180deg, rgba(var(--ink), .035), rgba(var(--ink), .012));
  transition: transform .45s var(--v2-ease), border-color .3s, background .3s, box-shadow .45s var(--v2-ease);
}
.s-ind__item.is-hidden { display: none; }
.s-ind__item::before {
  content: ""; position: absolute; inset: 0; z-index: -1; opacity: 0; transition: opacity .4s;
  background: radial-gradient(24rem circle at var(--mx, 0%) var(--my, 0%), rgba(242, 131, 44, .14), transparent 45%);
}
.s-ind__item:hover { color: var(--v2-text); transform: translateY(-3px); border-color: rgba(242, 131, 44, .35); box-shadow: 0 24px 50px -24px rgba(0, 0, 0, .9), 0 0 0 1px rgba(242, 131, 44, .12); }
.s-ind__item:hover::before { opacity: 1; }
.s-ind__ico {
  flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; font-size: 21px; color: var(--v2-orange);
  background: linear-gradient(180deg, rgba(242, 131, 44, .16), rgba(242, 131, 44, .05)); box-shadow: 0 0 0 1px rgba(242, 131, 44, .28) inset;
  transition: transform .45s var(--v2-ease), background .3s, color .3s;
}
.s-ind__item:hover .s-ind__ico { transform: scale(1.06) rotate(-4deg); background: var(--v2-orange); color: #fff; }
.s-ind__txt { flex: 1; min-width: 0; }
.s-ind__txt b { display: block; margin: .1rem 0 .3rem; font-size: 1rem; font-weight: 600; letter-spacing: -.015em; }
.s-ind__txt small { display: block; color: var(--v2-text-2); font-size: .84rem; line-height: 1.5; }
.s-ind__go { flex: none; color: var(--v2-text-3); font-size: 18px; transition: transform .45s var(--v2-ease), color .3s; }
.s-ind__item:hover .s-ind__go { color: var(--v2-orange); transform: translate(3px, -3px); }

/* Strona branży: zdjęcie w palecie strony (granat + pomarańcz), oryginalne kolory po najechaniu */
.solution-detail__media { position: relative; isolation: isolate; overflow: hidden; }
.solution-detail__media::before, .solution-detail__media::after { content: ""; position: absolute; inset: 0; transition: opacity .6s var(--v2-ease); }
.solution-detail__media::before { background: #7a7a7a; mix-blend-mode: saturation; }
.solution-detail__media::after { background: linear-gradient(200deg, #f2832c 0%, #2c4d6f 55%, #0b1424 100%); mix-blend-mode: color; opacity: .9; }
.solution-detail__media:hover::before, .solution-detail__media:hover::after { opacity: 0; }

/* Produkty: karty techniczne PDF */
.p-docs h2 { margin-bottom: .9rem; }
.solution-detail__block .p-docs__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: .5rem; }
.solution-detail__block .p-docs__list li { display: block; }
body .solution-detail__block .p-doc {
  display: flex; width: 100%; font-size: inherit; align-items: center; gap: .8rem; padding: .7rem .8rem; border-radius: 12px; border: 1px solid var(--v2-border); color: var(--v2-text) !important;
  text-decoration: none !important; background: rgba(var(--ink), .03); transition: border-color .3s, background .3s, transform .4s var(--v2-ease);
}
body .solution-detail__block .p-doc:hover { color: var(--v2-text); border-color: rgba(242, 131, 44, .4); background: rgba(242, 131, 44, .06); transform: translateX(3px); }
.p-doc__ico { display: grid; place-items: center; width: 36px; height: 36px; flex: none; border-radius: 10px; font-size: 18px; color: var(--v2-orange); background: rgba(242, 131, 44, .12); }
.p-doc__txt { flex: 1; min-width: 0; }
.p-doc__txt b { display: block; font-size: .88rem; font-weight: 600; line-height: 1.3; }
.p-doc__txt small { color: var(--v2-text-3); font-size: .72rem; letter-spacing: .02em; }
.p-doc__dl { color: var(--v2-text-3); font-size: 17px; transition: color .3s, transform .4s var(--v2-ease); }
.p-doc:hover .p-doc__dl { color: var(--v2-orange); transform: translateY(2px); }@media (prefers-reduced-motion: reduce) {
  .sw *, .sw *::before, .sw *::after { animation: none !important; }
  .sw-feed li, .sw-site__alert { opacity: 1 !important; }
  .sw-site__state .bad { opacity: 0 !important; }
}

/* ==========================================================
   PRODUKTY v2 (products/index, products/entry, products/_related)
   ========================================================== */
.p-hero .breadcrumbs { margin: 0 0 1.25rem; }
.p-hero .h-trust { grid-template-columns: repeat(3, auto); }
/* Gablota: zdjęcia produktów (białe tło) na jasnym "studyjnym" panelu */
.p-show .h-frame-in { background: radial-gradient(120% 90% at 50% 35%, #ffffff 0%, #eef2f7 55%, #d5dde8 100%); }
.p-show .h-scene-img { object-fit: contain; padding: 6% 10%; mix-blend-mode: multiply; }
.p-show .h-frame-in::after { content: ""; position: absolute; left: 20%; right: 20%; bottom: 7%; height: 9%; border-radius: 50%; background: radial-gradient(closest-side, rgba(10, 20, 35, .35), transparent); filter: blur(6px); }

/* Pasek filtrów (przyklejony pod nagłówkiem) */
.p-bar {
  position: sticky; top: 72px; z-index: 20; display: flex; flex-wrap: wrap; gap: .75rem 1rem; align-items: center; justify-content: space-between;
  margin: 0 -.75rem 1rem; padding: .75rem; border-radius: 16px;
  background: rgba(var(--bgc), .82); -webkit-backdrop-filter: blur(14px) saturate(160%); backdrop-filter: blur(14px) saturate(160%);
  box-shadow: 0 0 0 1px var(--v2-border) inset;
}
.p-tabs { display: flex; flex-wrap: wrap; gap: .35rem; }
.p-tab {
  display: inline-flex; align-items: center; gap: .45rem; padding: .5rem .9rem; border-radius: 999px; border: 0; cursor: pointer;
  font: inherit; font-size: .88rem; font-weight: 500; color: var(--v2-text-2); background: transparent; transition: background .25s, color .25s;
}
.p-tab:hover { color: var(--v2-strong); background: var(--v2-surface-2); }
.p-tab.is-active { color: var(--v2-inv); background: var(--v2-strong); }
.p-tab em { font-style: normal; font-size: .72rem; padding: .05rem .45rem; border-radius: 999px; background: rgba(var(--ink), .08); color: var(--v2-text-3); font-variant-numeric: tabular-nums; }
.p-tab.is-active em { background: rgba(10, 15, 26, .1); color: var(--v2-inv); }
.p-tab--link { color: var(--v2-orange); }
.p-tab--link .lucide { font-size: .9em; }
.p-tools { display: flex; gap: .5rem; flex: 1 1 320px; justify-content: flex-end; }
.p-search { position: relative; flex: 1 1 220px; max-width: 340px; display: flex; align-items: center; }
.p-search .lucide { position: absolute; left: .85rem; color: var(--v2-text-3); pointer-events: none; }
.p-search input {
  width: 100%; padding: .6rem .9rem .6rem 2.3rem; border-radius: 999px; border: 1px solid var(--v2-border-2); background: rgba(var(--ink), .04);
  color: var(--v2-text); font: inherit; font-size: .9rem; transition: border-color .2s, box-shadow .2s, background .2s;
}
.p-search input:focus { outline: none; border-color: rgba(242, 131, 44, .6); box-shadow: 0 0 0 4px rgba(242, 131, 44, .15); background: rgba(var(--ink), .06); }
.p-sort {
  appearance: none; padding: .6rem 2rem .6rem .9rem; border-radius: 999px; border: 1px solid var(--v2-border-2); color: var(--v2-text); font: inherit; font-size: .88rem; cursor: pointer;
  background: rgba(var(--ink), .04) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23a3afc0'%3E%3Cpath d='M4 6l4 4 4-4H4z'/%3E%3C/svg%3E") no-repeat right .7rem center / 12px;
}
.p-sort option { background: #0c121e; }
.p-techs { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1rem; }
.p-tech {
  display: inline-flex; align-items: center; gap: .35rem; padding: .35rem .75rem; border-radius: 999px; cursor: pointer; font: inherit; font-size: .78rem; font-weight: 600;
  color: var(--v2-text-2); background: rgba(var(--ink), .03); border: 1px solid var(--v2-border); transition: all .25s;
}
.p-tech:hover { color: var(--v2-strong); border-color: rgba(var(--ink), .25); }
.p-tech.is-active { color: var(--v2-strong); background: rgba(242, 131, 44, .16); border-color: rgba(242, 131, 44, .55); }
.p-tech small { color: var(--v2-text-3); font-weight: 500; }
.p-count { margin: 0 0 1.25rem; font-size: .85rem; color: var(--v2-text-3); }

/* Siatka i karty produktów */
.p-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); }
.p-grid--4 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); }
.pc {
  position: relative; isolation: isolate; display: flex; flex-direction: column; overflow: hidden; border-radius: 18px; color: var(--v2-text);
  border: 1px solid var(--v2-border); background: linear-gradient(180deg, rgba(var(--ink), .04), rgba(var(--ink), .012));
  transition: transform .5s var(--v2-ease), border-color .3s, box-shadow .5s var(--v2-ease);
}
.pc[hidden] { display: none; }
.pc::before { content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none; opacity: 0; transition: opacity .4s; background: radial-gradient(22rem circle at var(--mx, 50%) var(--my, 0%), rgba(242, 131, 44, .12), transparent 45%); }
.pc:hover { color: var(--v2-text); transform: translateY(-4px); border-color: rgba(242, 131, 44, .35); box-shadow: 0 30px 60px -28px rgba(0, 0, 0, .95), 0 0 0 1px rgba(242, 131, 44, .1); }
.pc:hover::before { opacity: 1; }
.pc__media {
  position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden;
  background: radial-gradient(120% 90% at 50% 30%, #ffffff 0%, #eef2f7 60%, #dce3ec 100%);
}
.pc__media img { width: 100%; height: 100%; object-fit: contain; padding: 8%; mix-blend-mode: multiply; transition: transform .8s var(--v2-ease); }
.pc:hover .pc__media img { transform: scale(1.06) translateY(-2%); }
.pc__body { display: flex; flex-direction: column; gap: .45rem; flex: 1; padding: 1rem 1.1rem 1.1rem; }
.pc__tags { display: flex; flex-wrap: wrap; gap: .3rem; min-height: 1.35rem; }
.pc__tags span { padding: .12rem .5rem; border-radius: 6px; font-size: .68rem; font-weight: 600; letter-spacing: .02em; color: #ffd2ad; background: rgba(242, 131, 44, .12); box-shadow: 0 0 0 1px rgba(242, 131, 44, .25) inset; }
.pc__title { font-size: .98rem; font-weight: 600; letter-spacing: -.015em; line-height: 1.3; }
.pc__sum { color: var(--v2-text-2); font-size: .82rem; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pc__sum:empty { display: none; }
.pc__foot { margin-top: auto; padding-top: .5rem; display: flex; align-items: center; justify-content: space-between; }
.pc__more { display: inline-flex; align-items: center; gap: .35rem; font-size: .84rem; font-weight: 600; }
.pc__more .lucide { color: var(--v2-orange); transition: transform .4s var(--v2-ease); }
.pc:hover .pc__more .lucide { transform: translateX(4px); }
.pc__pdf { display: inline-flex; align-items: center; gap: .3rem; padding: .2rem .5rem; border-radius: 6px; font-size: .68rem; font-weight: 700; color: var(--v2-text-2); background: rgba(var(--ink), .06); }
.pc__pdf .lucide { color: var(--v2-orange); }
/* Kafelek SensLine w katalogu: zdjęcie na całość, opis + PDF PL/EN/DE */
.pc--sl .pc__media img { object-fit: cover; padding: 0; mix-blend-mode: normal; }
.pc--sl .pc__sum { -webkit-line-clamp: 4; }
.pc--sl .pc__foot { flex-wrap: wrap; gap: .5rem; }
.pc__dls { display: flex; flex-wrap: wrap; gap: .35rem; }
.pc__dl { position: relative; z-index: 3; display: inline-flex; align-items: center; gap: .3rem; padding: .25rem .55rem; border-radius: 6px; font-size: .72rem; font-weight: 700; color: var(--v2-text); border: 1px solid rgba(var(--ink), .14); text-decoration: none; transition: border-color .3s, color .3s; }
.pc__dl .lucide { width: .95rem; height: .95rem; color: var(--v2-orange); }
.pc__dl:hover { color: var(--v2-text); border-color: rgba(242, 131, 44, .6); }
.pc--sl .pc__more { position: relative; z-index: 3; color: inherit; text-decoration: none; }
.p-empty { display: grid; justify-items: center; gap: .6rem; padding: 3rem 1rem; text-align: center; border-radius: 18px; border: 1px dashed var(--v2-border-2); color: var(--v2-text-2); }
.p-empty[hidden] { display: none; }
.p-empty > .lucide { font-size: 2rem; color: var(--v2-orange); }
.p-empty b { color: var(--v2-text); font-size: 1.1rem; }

/* Strona produktu */
.p-related { margin-top: clamp(3rem, 6vw, 5rem); padding-top: clamp(2rem, 4vw, 3rem); border-top: 1px solid var(--v2-border); }
.p-related .section__title { font-size: clamp(1.5rem, 2.6vw, 2rem); }
.p-related .h-head { margin-bottom: 1.5rem; }
.page-content .p-related h2::before { display: none; }
.page-content .p-related h2 { padding-left: 0; margin: 0; }
.page-content .pc, .page-content .pc:hover { text-decoration: none; }
.p-quote { display: flex; flex-wrap: wrap; gap: .6rem; }
.product-gallery__main { cursor: zoom-in; transition: box-shadow .3s; }
.product-gallery__main:hover { box-shadow: 0 0 0 2px rgba(242, 131, 44, .5); }

/* Lightbox galerii */
.lb { position: fixed; inset: 0; z-index: 3000; display: grid; place-items: center; background: rgba(4, 7, 12, .92); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); opacity: 0; transition: opacity .3s; }
.lb.is-open { opacity: 1; }
.lb__img { max-width: min(92vw, 1100px); max-height: 80vh; border-radius: 16px; background: #fff; box-shadow: 0 40px 100px -20px rgba(0, 0, 0, .9); transition: opacity .25s, transform .4s var(--v2-ease); }
.lb__btn { position: absolute; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--v2-border-2); background: rgba(var(--ink), .06); color: #fff; font-size: 22px; cursor: pointer; transition: background .2s; }
.lb__btn:hover { background: rgba(var(--ink), .14); }
.lb__close { top: 1.25rem; right: 1.25rem; }
.lb__prev { left: 1.25rem; top: 50%; transform: translateY(-50%); }
.lb__next { right: 1.25rem; top: 50%; transform: translateY(-50%); }
.lb__count { position: absolute; bottom: 1.25rem; left: 50%; transform: translateX(-50%); color: var(--v2-text-2); font-size: .85rem; font-variant-numeric: tabular-nums; }

/* ---------- Animacje wejścia (klasy ustawia v2_js) ---------- */
.v2-rv { opacity: 0; }
@media (prefers-reduced-motion: reduce) {
  .h-tab.is-active .h-tab__bar i { transform: scaleX(1); }
  .h-scene-img, .h-chips .h-chip { transition: opacity .3s !important; translate: none !important; filter: none !important; }
  .v2-rv { opacity: 1 !important; }
  .hero__caption, .h-tc--alarm, .h-tc--alarm .h-chip__ico, .h-dot--alarm, .h-tab__bar i, .h-pill, .h-pill__dot, .h-hero__title, .h-hero__lead, .h-hero__actions, .h-trust, .h-visual, .h-chip, .h-map__route, .h-map__live { animation: none !important; }
  *, *::before, *::after { transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* ============================================================
   BRANŻE (solutions) – 3 branże, kafle 3D, sceny SVG, podstrony
   ============================================================ */
@property --b-angle { syntax: "<angle>"; inherits: false; initial-value: 0deg; }

/* --- Kafle branż --- */
.b-tiles { display: grid; gap: 1.25rem; grid-template-columns: repeat(3, minmax(0, 1fr)); perspective: 1400px; }
@media (max-width: 1024px) { .b-tiles { grid-template-columns: 1fr; } }
.b-tile { display: block; color: var(--v2-text); text-decoration: none; }
.b-tile:hover { color: var(--v2-text); }
.b-tile__card {
  --rx: 0deg; --ry: 0deg;
  position: relative; isolation: isolate; display: flex; flex-direction: column; height: 100%; overflow: hidden; border-radius: 24px;
  border: 1px solid var(--v2-border); background: linear-gradient(160deg, rgba(var(--ink), .055), rgba(var(--ink), .012) 55%);
  transform: rotateX(var(--rx)) rotateY(var(--ry)); transform-style: preserve-3d;
  transition: transform .6s var(--v2-ease), border-color .4s, box-shadow .6s var(--v2-ease);
}
/* obracająca się poświata krawędzi (animowany @property) */
.b-tile__card::after {
  content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; padding: 1px; pointer-events: none; opacity: 0; transition: opacity .5s;
  background: conic-gradient(from var(--b-angle), transparent 0 70%, rgba(242, 131, 44, .9) 82%, transparent 92%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
  animation: bSpin 4s linear infinite;
}
@keyframes bSpin { to { --b-angle: 360deg; } }
.b-tile__card::before { content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none; opacity: 0; transition: opacity .4s; background: radial-gradient(26rem circle at var(--mx, 50%) var(--my, 0%), rgba(242, 131, 44, .14), transparent 45%); }
.b-tile:hover .b-tile__card, .b-tile:focus-visible .b-tile__card { border-color: rgba(242, 131, 44, .35); box-shadow: 0 40px 80px -36px rgba(0, 0, 0, .9), 0 0 0 1px rgba(242, 131, 44, .12); }
.b-tile:hover .b-tile__card::before, .b-tile:hover .b-tile__card::after { opacity: 1; }
.b-scene { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: radial-gradient(120% 90% at 50% 0%, rgba(111, 155, 224, .16), transparent 60%), rgba(var(--ink), .02); border-bottom: 1px solid var(--v2-border); transform: translateZ(30px); }
.b-scene svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.b-tile__body { display: flex; flex-direction: column; gap: .7rem; flex: 1; padding: 1.4rem 1.5rem 1.5rem; transform: translateZ(45px); }
.b-tile__num { font-size: .75rem; font-weight: 700; letter-spacing: .14em; color: var(--v2-orange); text-transform: uppercase; }
.b-tile__title { margin: 0; font-size: 1.45rem; font-weight: 700; letter-spacing: -.02em; line-height: 1.15; }
.b-tile__title small { display: block; margin-top: .3rem; font-size: .9rem; font-weight: 500; letter-spacing: 0; color: var(--v2-text-2); }
.b-tile__lead { margin: 0; color: var(--v2-text-2); font-size: .92rem; line-height: 1.55; }
.b-chips { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.b-chips li { display: inline-flex; align-items: center; gap: .35rem; padding: .3rem .65rem; border-radius: 99px; font-size: .74rem; font-weight: 600; background: rgba(var(--ink), .06); border: 1px solid var(--v2-border); }
.b-chips .lucide { width: .95rem; height: .95rem; color: var(--v2-orange); }
.b-tile__go { margin-top: auto; padding-top: .6rem; display: inline-flex; align-items: center; gap: .45rem; font-weight: 650; font-size: .92rem; }
.b-tile__go .lucide { color: var(--v2-orange); transition: transform .4s var(--v2-ease); }
.b-tile:hover .b-tile__go .lucide { transform: translateX(5px); }

/* wejście kafli sterowane przewijaniem (CSS scroll-driven animations; bez wsparcia – zwykłe pojawienie z JS) */
@supports (animation-timeline: view()) {
  .b-tiles > .b-tile { animation: bRise linear both; animation-timeline: view(); animation-range: entry 0% cover 28%; }
  .b-tiles > .b-tile:nth-child(2) { animation-range: entry 6% cover 32%; }
  .b-tiles > .b-tile:nth-child(3) { animation-range: entry 12% cover 36%; }
}
@keyframes bRise { from { opacity: 0; translate: 0 60px; scale: .96; } to { opacity: 1; translate: 0 0; scale: 1; } }

/* --- Sceny SVG (kolory przez klasy, żeby działał jasny motyw) --- */
.bs-ink { fill: none; stroke: rgba(var(--ink), .55); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.bs-fill { fill: rgba(var(--ink), .07); stroke: rgba(var(--ink), .5); stroke-width: 2; stroke-linejoin: round; }
.bs-soft { fill: rgba(var(--ink), .04); stroke: rgba(var(--ink), .22); stroke-width: 1.5; }
.bs-dim { stroke: rgba(var(--ink), .18); stroke-width: 2; fill: none; stroke-linecap: round; }
.bs-acc { fill: var(--v2-orange); }
.bs-acc-s { fill: none; stroke: var(--v2-orange); stroke-width: 2; }
.bs-blue { fill: var(--v2-blue); }
.bs-blue-s { fill: none; stroke: var(--v2-blue); stroke-width: 2; }
.bs-txt { fill: var(--v2-text); font: 700 11px Inter, sans-serif; }
.bs-txt--s { fill: var(--v2-text-2); font: 600 9px Inter, sans-serif; }
.bs-chip { fill: rgba(var(--bgc), .78); stroke: rgba(var(--ink), .16); }
.bs-road { stroke: rgba(var(--ink), .35); stroke-width: 3; stroke-dasharray: 22 18; animation: bRoad 1.2s linear infinite; }
@keyframes bRoad { to { stroke-dashoffset: -40; } }
.bs-wheel { fill: rgba(var(--ink), .12); stroke: rgba(var(--ink), .55); stroke-width: 2; }
.bs-bob { animation: bBob 2.6s ease-in-out infinite; }
@keyframes bBob { 50% { transform: translateY(-5px); } }

/* --- Pasek "jak to działa" --- */
.b-flow { position: relative; display: grid; gap: 1rem; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; counter-reset: bflow; }
@media (max-width: 900px) { .b-flow { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .b-flow { grid-template-columns: 1fr; } }
.b-flow::before { content: ""; position: absolute; left: 6%; right: 6%; top: 2.1rem; height: 2px; background: repeating-linear-gradient(90deg, rgba(242, 131, 44, .7) 0 10px, transparent 10px 20px); background-size: 200% 100%; animation: bFlow 2.4s linear infinite; z-index: 0; }
@media (max-width: 900px) { .b-flow::before { display: none; } }
@keyframes bFlow { to { background-position: -40px 0; } }
.b-flow li { position: relative; z-index: 1; padding: 1.2rem; border-radius: var(--v2-radius); border: 1px solid var(--v2-border); background: var(--v2-bg-2); }
.b-flow__ico { display: grid; place-items: center; width: 3rem; height: 3rem; margin-bottom: .8rem; border-radius: 14px; color: var(--v2-orange); background: rgba(242, 131, 44, .12); border: 1px solid rgba(242, 131, 44, .3); }
.b-flow__ico .lucide { width: 1.4rem; height: 1.4rem; }
.b-flow b { display: block; font-size: 1rem; margin-bottom: .3rem; }
.b-flow b::before { counter-increment: bflow; content: "0" counter(bflow) " · "; color: var(--v2-orange); font-size: .8rem; }
.b-flow small { color: var(--v2-text-2); font-size: .86rem; line-height: 1.5; }

/* --- Dlaczego BLE --- */
.b-why { display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) { .b-why { grid-template-columns: 1fr; } }
.b-why > div { padding: 1.5rem; border-radius: var(--v2-radius); border: 1px solid var(--v2-border); background: linear-gradient(180deg, rgba(var(--ink), .04), rgba(var(--ink), .012)); }
.b-why strong { display: block; font-size: 2.2rem; font-weight: 800; letter-spacing: -.03em; line-height: 1; background: linear-gradient(90deg, var(--v2-orange), #ffc08a); -webkit-background-clip: text; background-clip: text; color: transparent; }
.b-why b { display: block; margin: .6rem 0 .35rem; font-size: 1.02rem; }
.b-why p { margin: 0; color: var(--v2-text-2); font-size: .9rem; line-height: 1.55; }

/* --- Podstrona branży --- */
.b-hero .h-hero__title { font-size: clamp(2rem, 4.2vw, 3.3rem); }
.b-issues, .b-sol { display: grid; gap: 1rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1024px) { .b-issues, .b-sol { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .b-issues, .b-sol { grid-template-columns: 1fr; } }
.b-card { position: relative; overflow: hidden; padding: 1.4rem; border-radius: var(--v2-radius); border: 1px solid var(--v2-border); background: linear-gradient(180deg, rgba(var(--ink), .045), rgba(var(--ink), .012)); transition: border-color .3s, transform .5s var(--v2-ease); }
.b-card::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity .4s; background: radial-gradient(18rem circle at var(--mx, 50%) var(--my, 0%), rgba(242, 131, 44, .12), transparent 50%); }
.b-card:hover { border-color: rgba(242, 131, 44, .3); transform: translateY(-3px); }
.b-card:hover::before { opacity: 1; }
.b-card__ico { display: grid; place-items: center; width: 2.7rem; height: 2.7rem; margin-bottom: .9rem; border-radius: 12px; color: var(--v2-orange); background: rgba(242, 131, 44, .12); }
.b-issues .b-card__ico { color: #ff8a7a; background: rgba(255, 99, 77, .12); }
.b-card__ico .lucide { width: 1.3rem; height: 1.3rem; }
.b-card b { display: block; margin-bottom: .4rem; font-size: 1rem; line-height: 1.3; }
.b-card p { margin: 0; color: var(--v2-text-2); font-size: .88rem; line-height: 1.55; }
.b-ben { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; }
@media (max-width: 900px) { .b-ben { grid-template-columns: 1fr; } }
.b-ben > div { padding: 1.6rem; border-radius: 20px; border: 1px solid var(--v2-border); background: linear-gradient(160deg, rgba(242, 131, 44, .08), rgba(var(--ink), .015) 50%); }
.b-ben > div + div { background: linear-gradient(160deg, rgba(111, 155, 224, .1), rgba(var(--ink), .015) 50%); }
.b-ben h3 { display: flex; align-items: center; gap: .6rem; margin: 0 0 1rem; font-size: 1.15rem; }
.b-ben h3 .lucide { color: var(--v2-orange); }
.b-ben > div + div h3 .lucide { color: var(--v2-blue); }
.b-ben ul { margin: 0; padding: 0; list-style: none; display: grid; gap: .75rem; }
.b-ben li { display: grid; grid-template-columns: 1.4rem 1fr; gap: .55rem; font-size: .92rem; line-height: 1.5; color: var(--v2-text-2); }
.b-ben li b { color: var(--v2-text); }
.b-ben li .lucide { width: 1.15rem; height: 1.15rem; margin-top: .15rem; color: var(--v2-orange); }
.b-group { margin-top: 2.2rem; }
.b-group__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem 1rem; margin-bottom: 1rem; }
.b-group__head h3 { display: flex; align-items: center; gap: .55rem; margin: 0; font-size: 1.2rem; }
.b-group__head h3 .lucide { color: var(--v2-orange); }
.b-group__head p { flex-basis: 100%; margin: 0; color: var(--v2-text-2); font-size: .9rem; }
.b-group__all { display: inline-flex; align-items: center; gap: .35rem; font-size: .88rem; font-weight: 600; color: var(--v2-orange); text-decoration: none; }
.b-next { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; }
@media (max-width: 760px) { .b-next { grid-template-columns: 1fr; } }
.b-next a { display: flex; align-items: center; gap: 1rem; padding: 1.2rem 1.4rem; border-radius: var(--v2-radius); border: 1px solid var(--v2-border); color: var(--v2-text); text-decoration: none; background: rgba(var(--ink), .025); transition: border-color .3s, transform .5s var(--v2-ease); }
.b-next a:hover { border-color: rgba(242, 131, 44, .35); transform: translateY(-3px); color: var(--v2-text); }
.b-next small { display: block; color: var(--v2-text-2); font-size: .8rem; }
.b-next .lucide:last-child { margin-left: auto; color: var(--v2-orange); }
.b-next__ico { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 12px; background: rgba(242, 131, 44, .12); color: var(--v2-orange); flex: none; }
@media (prefers-reduced-motion: reduce) {
  .b-tile__card::after, .bs-road, .bs-bob, .b-flow::before { animation: none !important; }
  .b-tiles > .b-tile { animation: none !important; }
  .b-tile__card { transform: none !important; }
}

/* --- Karta produktu: zastosowania (linki do branż) i panel kontaktu --- */
.p-apps { margin-top: clamp(2.5rem, 5vw, 4rem); padding-top: clamp(2rem, 4vw, 3rem); border-top: 1px solid var(--v2-border); }
.p-apps .h-head { margin-bottom: 1.5rem; }
.p-apps .section__title { font-size: clamp(1.5rem, 2.6vw, 2rem); }
.p-apps .b-next { grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); }
.p-cta { margin-top: clamp(2rem, 4vw, 3rem); }
.p-cta .h-cta__panel { padding: clamp(2rem, 4vw, 3rem) clamp(1.25rem, 4vw, 3rem); }
.p-cta .h-cta__panel h2 { font-size: clamp(1.4rem, 2.6vw, 2rem); }
.p-cta .h-cta__panel p { margin-bottom: 1.5rem; }
.page-content .p-apps h2::before, .page-content .p-cta h2::before { display: none; }
.page-content .p-apps h2 { padding-left: 0; margin: 0; }
.page-content .p-cta h2 { padding-left: 0; }

/* --- Katalog: kafle platform i SensLine ze sceną SVG zamiast zdjęcia (ten sam rozmiar co karty produktów) --- */
.pc--tech .pc__media { background: radial-gradient(120% 90% at 50% 0%, rgba(111, 155, 224, .2), transparent 62%), radial-gradient(80% 70% at 85% 100%, rgba(242, 131, 44, .12), transparent 60%), rgba(var(--ink), .02); border-bottom: 1px solid var(--v2-border); }
.pc__scene svg { position: absolute; inset: 0; width: 100%; height: 100%; transition: transform .8s var(--v2-ease); }
.pc--tech:hover .pc__scene svg { transform: scale(1.04); }
.pc--tech .pc__sum { -webkit-line-clamp: 3; }
.pc--tech::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; border-radius: inherit; box-shadow: inset 0 0 0 1px rgba(111, 155, 224, .14); }.pc__scene .bs-txt { font-size: 14px; }
.pc__scene .bs-txt--s { font-size: 11px; }

/* --- Katalog: filtry technologii w grupach (łączność, zasilanie, funkcje) --- */
.p-techs { display: grid; gap: .5rem; }
.p-tgroup { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.p-tgroup[hidden], .p-tech[hidden] { display: none; }
.p-tgroup__label { min-width: 7.5rem; font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--v2-text-3); }
@media (max-width: 640px) { .p-tgroup__label { min-width: 100%; } }
/* --- Rozwiązania: okno mapy w nagłówku obok tekstu, bez nachodzenia na tytuł (bez ujemnego marginesu ze strony głównej) --- */
.h-visual.s-visual { margin-left: 0; justify-self: end; width: 100%; max-width: 540px; }
@media (width >= 1024px) { .s-hero .h-hero__inner { align-items: center; } }
@media (width < 1024px) { .h-visual.s-visual { justify-self: stretch; max-width: 640px; } }/* okno mapy: szersze o 2 oczka siatki tła (2 × 64 px) w lewo i lekko wyżej; na węższych ekranach tylko podniesione */
.h-visual.s-visual { top: -16px; }
@media (width >= 1200px) { .h-visual.s-visual { width: calc(100% + 128px); max-width: 668px; top: -32px; } }
/* --- Menu: przycisk "Aplikacje" z panelem 3 platform --- */
@property --na-angle { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
.nav-apps { position: relative; }
.nav-apps__btn {
  position: relative; isolation: isolate; display: inline-flex; align-items: center; gap: .45rem; cursor: pointer;
  padding: .45rem .85rem .45rem .75rem; border: 0; border-radius: 999px; font: inherit; font-size: .93rem; font-weight: 600; color: var(--v2-text);
  background: rgba(var(--ink), .04); transition: background .3s, box-shadow .3s;
}
.nav-apps__btn::before {
  content: ""; position: absolute; inset: 0; z-index: -1; padding: 1px; border-radius: inherit;
  background: conic-gradient(from var(--na-angle), rgba(242, 131, 44, .95), rgba(111, 155, 224, .9), rgba(var(--ink), .08) 40%, rgba(var(--ink), .08) 60%, rgba(242, 131, 44, .95));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
  animation: naSpin 4s linear infinite;
}
.nav-apps__btn:hover, .nav-apps.is-open .nav-apps__btn { background: rgba(242, 131, 44, .12); box-shadow: 0 0 24px -6px rgba(242, 131, 44, .55); }
.nav-apps__btn .lucide { width: 1rem; height: 1rem; color: var(--v2-orange); transition: transform .35s var(--v2-ease); }
.nav-apps.is-open .nav-apps__btn .lucide { transform: rotate(180deg); }
.nav-apps__live { position: relative; width: .5rem; height: .5rem; border-radius: 50%; background: #2fd38a; box-shadow: 0 0 0 0 rgba(47, 211, 138, .6); animation: naPulse 2s ease-out infinite; }
@keyframes naSpin { to { --na-angle: 360deg; } }
@keyframes naPulse { 0% { box-shadow: 0 0 0 0 rgba(47, 211, 138, .55); } 70%, 100% { box-shadow: 0 0 0 7px rgba(47, 211, 138, 0); } }

.nav-apps__panel { display: none; }
.nav-apps.is-open .nav-apps__panel { display: grid; gap: .45rem; }
.nav-apps__head { margin: .15rem .4rem .35rem; font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--v2-text-3); }
.main-nav__list .nav-apps__item {
  position: relative; overflow: hidden; display: flex; align-items: center; gap: .8rem; padding: .55rem .65rem; border-radius: 14px;
  border: 1px solid var(--v2-border); background: rgba(var(--ink), .03); color: var(--v2-text); text-decoration: none;
  transition: border-color .3s, background .3s, transform .3s var(--v2-ease);
}
.main-nav__list .nav-apps__item::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(105deg, transparent 30%, rgba(242, 131, 44, .22) 50%, transparent 70%); transform: translateX(-120%); }
.main-nav__list .nav-apps__item:hover, .main-nav__list .nav-apps__item:focus-visible { color: var(--v2-text); border-color: rgba(242, 131, 44, .6); background: rgba(242, 131, 44, .08); transform: translateX(3px); }
.nav-apps__thumb { flex: none; display: block; width: 64px; height: 48px; border-radius: 10px; overflow: hidden; background: radial-gradient(120% 100% at 50% 0%, rgba(111, 155, 224, .22), transparent 65%), rgba(var(--ink), .03); box-shadow: 0 0 0 1px var(--v2-border) inset; }
.nav-apps__thumb svg { display: block; width: 100%; height: 100%; }
.na-line { fill: none; stroke: rgba(var(--ink), .45); stroke-width: 1.2; }
.na-grid { fill: none; stroke: rgba(var(--ink), .14); stroke-width: 1; }
.na-orbit { fill: none; stroke: var(--v2-blue); stroke-width: 1; stroke-dasharray: 2 3; opacity: .8; }
.na-route { fill: none; stroke: var(--v2-orange); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.na-ring { fill: none; stroke: rgba(var(--ink), .14); stroke-width: 4; }
.na-ring-acc { fill: none; stroke: var(--v2-orange); stroke-width: 4; stroke-linecap: round; }
.na-blue { fill: var(--v2-blue); }
.na-acc { fill: var(--v2-orange); }
.nav-apps__txt { min-width: 0; }
.nav-apps__txt b { display: block; font-size: .9rem; font-weight: 650; line-height: 1.25; }
.nav-apps__txt small { display: block; margin-top: .1rem; font-size: .74rem; font-weight: 500; line-height: 1.3; color: var(--v2-text-2); }
.nav-apps__go { margin-left: auto; flex: none; display: inline-flex; align-items: center; gap: .2rem; padding: .25rem .55rem; border-radius: 999px; font-size: .72rem; font-weight: 700; color: var(--v2-orange); background: rgba(242, 131, 44, .1); box-shadow: 0 0 0 1px rgba(242, 131, 44, .3) inset; }
.nav-apps__go .lucide { width: .85rem; height: .85rem; }

/* otwarcie: panel wjeżdża, karty podświetlają się kolejno (błysk światła przez kartę) */
.nav-apps.is-open .nav-apps__item { animation: naItem .7s var(--v2-ease) both; }
.nav-apps.is-open .nav-apps__item::after { animation: naShine 1.1s var(--v2-ease) both; }
.nav-apps.is-open .nav-apps__item:nth-of-type(2), .nav-apps.is-open .nav-apps__item:nth-of-type(2)::after { animation-delay: .12s; }
.nav-apps.is-open .nav-apps__item:nth-of-type(3), .nav-apps.is-open .nav-apps__item:nth-of-type(3)::after { animation-delay: .24s; }
@keyframes naItem { 0% { opacity: 0; transform: translateY(8px); border-color: transparent; } 45% { opacity: 1; transform: none; border-color: rgba(242, 131, 44, .7); box-shadow: 0 0 0 3px rgba(242, 131, 44, .14); } 100% { border-color: var(--v2-border); box-shadow: none; } }
@keyframes naShine { to { transform: translateX(120%); } }
@keyframes naPanel { from { opacity: 0; transform: translateY(-8px) scale(.98); } to { opacity: 1; transform: none; } }

@media (width >= 1024px) {
  .nav-apps__panel {
    position: absolute; right: 0; top: calc(100% + .7rem); z-index: 60; width: 360px; padding: .65rem; border-radius: 18px;
    background: rgba(var(--bgc2), .97); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px);
    border: 1px solid var(--v2-border-2); box-shadow: 0 30px 70px -14px rgba(0, 0, 0, .85), 0 0 0 1px rgba(242, 131, 44, .08);
  }
  .nav-apps.is-open .nav-apps__panel { animation: naPanel .35s var(--v2-ease) both; transform-origin: top right; }
}
@media (width < 1024px) {
  .nav-apps.is-open .nav-apps__panel { margin-top: .8rem; }
  .nav-apps__panel { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .nav-apps__btn::before, .nav-apps__live, .nav-apps.is-open .nav-apps__item, .nav-apps.is-open .nav-apps__item::after, .nav-apps.is-open .nav-apps__panel { animation: none !important; }
}
/* ============================================================
   KONTAKT (contact.src.html) – scena centrali, szybki kontakt, kreator wiadomości
   ============================================================ */
.c-hero { padding-bottom: clamp(2rem, 4vw, 3rem); }
.c-visual { margin-left: 0 !important; justify-self: end; width: 100%; max-width: 560px; }
.c-scene { position: relative; aspect-ratio: 13 / 10; border-radius: 24px; overflow: hidden; border: 1px solid var(--v2-border-2);
  background: radial-gradient(70% 60% at 50% 52%, rgba(242, 131, 44, .16), transparent 70%), radial-gradient(120% 90% at 50% 0%, rgba(111, 155, 224, .16), transparent 60%), rgba(var(--ink), .02);
  box-shadow: 0 40px 90px -30px rgba(0, 0, 0, .9); }
.c-scene svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.c-dot { fill: rgba(var(--ink), .08); }
.c-link { fill: none; stroke: rgba(var(--ink), .2); stroke-width: 1.5; stroke-dasharray: 4 6; animation: cDash 1.6s linear infinite; }
@keyframes cDash { to { stroke-dashoffset: -20; } }
.c-core { fill: rgba(var(--bgc), .85); stroke: rgba(242, 131, 44, .7); stroke-width: 2; }
.c-node circle { fill: rgba(var(--bgc), .85); stroke: rgba(var(--ink), .3); stroke-width: 1.5; }
.c-node .c-ico { color: var(--v2-orange); }
.c-node .c-ico svg { width: 24px; height: 24px; }
.c-node:nth-of-type(odd) .c-ico { color: var(--v2-blue); }
.c-ok { fill: #2fd38a; }
.c-toast { animation: cToast 6s var(--v2-ease) infinite; transform-origin: 400px 45px; }
@keyframes cToast { 0%, 8% { opacity: 0; transform: translateY(-10px) scale(.96); } 16%, 70% { opacity: 1; transform: none; } 80%, 100% { opacity: 0; transform: translateY(-6px); } }

.c-quick-wrap { padding-top: 0; }
.c-quick { display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 860px) { .c-quick { grid-template-columns: 1fr; } }
.c-qcard { position: relative; overflow: hidden; display: flex; align-items: center; gap: 1rem; padding: 1.1rem 1.25rem; border-radius: var(--v2-radius); border: 1px solid var(--v2-border); background: linear-gradient(180deg, rgba(var(--ink), .045), rgba(var(--ink), .012)); color: var(--v2-text); text-decoration: none; transition: transform .45s var(--v2-ease), border-color .3s, box-shadow .45s var(--v2-ease); }
.c-qcard:hover { color: var(--v2-text); transform: translateY(-4px); border-color: rgba(242, 131, 44, .45); box-shadow: 0 24px 50px -24px rgba(0, 0, 0, .9); }
.c-qcard small { display: block; font-size: .75rem; color: var(--v2-text-3); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.c-qcard b { display: block; font-size: 1.02rem; font-weight: 650; }
.c-qcard > .lucide:last-child { margin-left: auto; color: var(--v2-orange); transition: transform .4s var(--v2-ease); }
.c-qcard:hover > .lucide:last-child { transform: translate(3px, -3px); }
.c-qcard__ico { display: grid; place-items: center; width: 2.9rem; height: 2.9rem; border-radius: 14px; background: rgba(242, 131, 44, .12); color: var(--v2-orange); flex: none; }

.c-grid { display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); align-items: start; }
@media (max-width: 1000px) { .c-grid { grid-template-columns: 1fr; } }
.c-panel { border-radius: 22px; border: 1px solid var(--v2-border); background: linear-gradient(180deg, rgba(var(--ink), .04), rgba(var(--ink), .01)); padding: clamp(1.25rem, 3vw, 2rem); }
.c-panel--form .h-head { margin-bottom: 1.25rem; }
.c-panel--form .section__title { font-size: clamp(1.5rem, 2.6vw, 2rem); }

.c-builder { margin-bottom: 1.5rem; padding: 1.1rem; border-radius: 18px; border: 1px solid rgba(242, 131, 44, .28); background: radial-gradient(90% 120% at 0% 0%, rgba(242, 131, 44, .1), transparent 60%), rgba(var(--ink), .02); }
.c-builder__head { display: flex; gap: .8rem; align-items: center; margin-bottom: .9rem; }
.c-builder__head b { display: block; font-size: 1rem; }
.c-builder__head small { display: block; font-size: .8rem; color: var(--v2-text-2); }
.c-builder__ico { display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 12px; color: var(--v2-strong); background: linear-gradient(135deg, var(--v2-orange), #d85f12); box-shadow: 0 8px 22px -8px rgba(242, 131, 44, .8); flex: none; }
.c-step + .c-step { margin-top: .85rem; }
.c-step__q { display: flex; align-items: center; gap: .5rem; margin: 0 0 .5rem; font-size: .85rem; font-weight: 600; color: var(--v2-text); }
.c-step__q i { display: grid; place-items: center; width: 1.35rem; height: 1.35rem; border-radius: 50%; font-style: normal; font-size: .72rem; font-weight: 700; color: var(--v2-orange); box-shadow: 0 0 0 1px rgba(242, 131, 44, .5) inset; }
.c-chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.c-chip { display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .8rem; border-radius: 999px; cursor: pointer; font: inherit; font-size: .84rem; font-weight: 500; color: var(--v2-text-2); background: rgba(var(--ink), .04); border: 1px solid var(--v2-border); transition: color .2s, background .2s, border-color .2s, transform .3s var(--v2-ease); }
.c-chip .lucide { width: 1rem; height: 1rem; color: var(--v2-text-3); transition: color .2s; }
.c-chip:hover { color: var(--v2-text); border-color: rgba(var(--ink), .25); transform: translateY(-1px); }
.c-chip[aria-pressed="true"] { color: var(--v2-strong); background: rgba(242, 131, 44, .18); border-color: rgba(242, 131, 44, .65); box-shadow: 0 0 18px -6px rgba(242, 131, 44, .7); }
.c-chip[aria-pressed="true"] .lucide { color: var(--v2-orange); }
.c-builder__foot { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.c-apply, .c-reset { display: inline-flex; align-items: center; gap: .35rem; padding: .4rem .75rem; border-radius: 10px; cursor: pointer; font: inherit; font-size: .8rem; font-weight: 600; border: 1px solid var(--v2-border); background: transparent; color: var(--v2-text-2); }
.c-apply { color: var(--v2-strong); border-color: rgba(242, 131, 44, .6); background: rgba(242, 131, 44, .16); }
.c-apply[hidden] { display: none; }
.c-apply .lucide, .c-reset .lucide { width: .95rem; height: .95rem; }
.c-reset:hover { color: var(--v2-text); border-color: rgba(var(--ink), .25); }

.c-panel--form .form-group textarea { min-height: 11rem; line-height: 1.55; transition: border-color .3s, box-shadow .3s; }
.c-panel--form .form-group textarea.is-typing { border-color: rgba(242, 131, 44, .7); box-shadow: 0 0 0 3px rgba(242, 131, 44, .15), 0 0 30px -10px rgba(242, 131, 44, .6); }
.c-panel--form .contact-form > .btn { width: 100%; justify-content: center; margin-top: .5rem; }

.c-side { display: grid; gap: 1.5rem; }
.c-company b { display: block; margin: .9rem 0 .4rem; font-size: 1.1rem; }
.c-company p { margin: 0 0 1rem; color: var(--v2-text-2); line-height: 1.6; }
.c-company__ico { display: grid; place-items: center; width: 2.9rem; height: 2.9rem; border-radius: 14px; background: rgba(111, 155, 224, .14); color: var(--v2-blue); }
.c-company__tel { display: inline-flex; align-items: center; gap: .45rem; font-weight: 650; color: var(--v2-text); text-decoration: none; }
.c-company__tel .lucide { color: var(--v2-orange); }
.c-company__legal { list-style: none; margin: 1.1rem 0 0; padding: 1rem 0 0; border-top: 1px solid var(--v2-border); display: grid; gap: .35rem; font-size: .85rem; color: var(--v2-text-2); }
.c-company__legal span { display: inline-block; min-width: 4.2rem; color: var(--v2-text-3); font-weight: 600; }
.c-map { padding: 0; overflow: hidden; }
.c-map iframe { display: block; width: 100%; height: 280px; border: 0; filter: invert(.9) hue-rotate(180deg) saturate(.6) brightness(.95); }
.c-map__open { display: flex; align-items: center; gap: .45rem; padding: .85rem 1.1rem; font-size: .88rem; font-weight: 600; color: var(--v2-text); text-decoration: none; border-top: 1px solid var(--v2-border); }
.c-map__open .lucide { color: var(--v2-orange); }
@media (prefers-reduced-motion: reduce) { .c-link, .c-toast { animation: none !important; } .c-toast { opacity: 1; } }.c-node .c-ico { overflow: visible; }
.c-node .c-ico .lucide { display: block; width: 24px; height: 24px; }
.c-main { padding-top: clamp(1rem, 2.5vw, 2rem); }
.c-quick-wrap { padding-bottom: 0; }.c-scene--photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 65% center; }
.c-stage .h-chip--2 { right: 1rem; }
/* kontakt: zdjęcie szersze o 2 oczka siatki tła (2 × 64 px) w lewo */
@media (width >= 1280px) { .c-visual { width: calc(100% + 128px); max-width: 688px; } }
/* kontakt: mapa Google w standardowej (białej) wersji */
.c-map iframe, .contact-map iframe { filter: none; }
/* Rozwiązania: znaczki na oknie mapy (Otwarcie / Alarm / Wstrząs) */
.s-visual .h-chip--2 { right: 1rem; }
.s-chip--alarm .h-chip__ico { color: var(--v2-strong); background: var(--v2-orange); box-shadow: 0 0 18px -2px rgba(242, 131, 44, .7); animation: h-alarm-ico 1.8s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { .s-chip--alarm .h-chip__ico { animation: none !important; } }

/* --- Branże: FAQ (details/summary) --- */
.b-faq__list { display: grid; gap: .6rem; max-width: 920px; }
.b-faq__item { border-radius: 16px; border: 1px solid var(--v2-border); background: linear-gradient(180deg, rgba(var(--ink), .04), rgba(var(--ink), .012)); transition: border-color .3s, background .3s; }
.b-faq__item[open] { border-color: rgba(242, 131, 44, .4); background: radial-gradient(90% 140% at 0% 0%, rgba(242, 131, 44, .08), transparent 60%), rgba(var(--ink), .03); }
.b-faq__item summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.05rem 1.25rem; font-weight: 600; font-size: 1rem; color: var(--v2-text); }
.b-faq__item summary::-webkit-details-marker { display: none; }
.b-faq__item summary .lucide { flex: none; width: 1.2rem; height: 1.2rem; color: var(--v2-orange); transition: transform .35s var(--v2-ease); }
.b-faq__item[open] summary .lucide { transform: rotate(45deg); }
.b-faq__item summary:hover { color: var(--v2-strong); }
.b-faq__item p { margin: 0; padding: 0 1.25rem 1.15rem; color: var(--v2-text-2); line-height: 1.65; }
.b-faq__item[open] p { animation: bFaq .4s var(--v2-ease) both; }
@keyframes bFaq { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .b-faq__item[open] p { animation: none; } }
/* ============================================================
   SERWIS (serwis.src.html) – korzysta z klas Kontaktu (c-*) + elementy zgłoszenia
   ============================================================ */
.s-scene { background: radial-gradient(70% 60% at 30% 50%, rgba(111, 155, 224, .16), transparent 70%), radial-gradient(60% 50% at 80% 80%, rgba(242, 131, 44, .14), transparent 70%), rgba(var(--ink), .02); }
.s-wave { fill: none; stroke: var(--v2-blue); stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; stroke-dasharray: 220; animation: sWave 2.4s linear infinite; }
@keyframes sWave { from { stroke-dashoffset: 220; } to { stroke-dashoffset: 0; } }
.s-scan { fill: rgba(242, 131, 44, .55); filter: drop-shadow(0 0 8px rgba(242, 131, 44, .9)); }
.s-warn { stroke: rgba(242, 131, 44, .7); }
.c-row2 { display: grid; gap: 0 1rem; grid-template-columns: 1fr 1fr; }
@media (max-width: 640px) { .c-row2 { grid-template-columns: 1fr; } }
.s-fields { display: grid; gap: .6rem; grid-template-columns: 1fr 1fr; }
@media (max-width: 640px) { .s-fields { grid-template-columns: 1fr; } }
.s-field { display: grid; gap: .3rem; font-size: .78rem; font-weight: 600; color: var(--v2-text-2); }
.s-field input, .s-field select { width: 100%; padding: .55rem .7rem; border-radius: 10px; font: inherit; font-size: .88rem; font-weight: 500; color: var(--v2-text); background: rgba(var(--ink), .04); border: 1px solid var(--v2-border); color-scheme: dark; }
.s-field input:focus, .s-field select:focus { outline: none; border-color: rgba(242, 131, 44, .6); box-shadow: 0 0 0 3px rgba(242, 131, 44, .15); }
.s-field select option { background: #0c121e; color: var(--v2-strong); }
.c-chip--hot[aria-pressed="true"] { background: rgba(239, 68, 68, .18); border-color: rgba(239, 68, 68, .7); box-shadow: 0 0 18px -6px rgba(239, 68, 68, .8); }
.c-chip--hot[aria-pressed="true"] .lucide { color: #f87171; }
.service-form textarea { min-height: 15rem; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .88rem; }
.service-form__note { margin: .8rem 0 0; font-size: .8rem; color: var(--v2-text-3); text-align: center; }
.s-sent-wrap { padding-bottom: 0; }
.s-sent-wrap[hidden] { display: none; }
.s-sent { display: flex; gap: 1rem; align-items: flex-start; padding: 1.25rem 1.4rem; border-radius: 18px; border: 1px solid rgba(47, 211, 138, .5); background: rgba(47, 211, 138, .08); }
.s-sent__ico { color: #2fd38a; flex: none; }
.s-sent__ico .lucide { width: 1.8rem; height: 1.8rem; }
.s-sent b { display: block; font-size: 1.05rem; margin-bottom: .25rem; }
.s-sent p { margin: 0; color: var(--v2-text-2); }
.s-prep { list-style: none; margin: 1.1rem 0 0; padding: 1rem 0 0; border-top: 1px solid var(--v2-border); display: grid; gap: .5rem; font-size: .85rem; color: var(--v2-text-2); }
.s-prep li { display: flex; gap: .5rem; align-items: flex-start; }
.s-prep .lucide { flex: none; width: 1rem; height: 1rem; margin-top: .15rem; color: #2fd38a; }
.s-apps { display: grid; gap: .5rem; }
.s-apps b { margin-bottom: .2rem; }
.s-apps a { display: flex; align-items: center; gap: .6rem; padding: .65rem .8rem; border-radius: 12px; border: 1px solid var(--v2-border); color: var(--v2-text); text-decoration: none; font-weight: 600; font-size: .9rem; transition: border-color .3s, background .3s; }
.s-apps a .lucide:first-child { color: var(--v2-orange); }
.s-apps a .lucide:last-child { margin-left: auto; color: var(--v2-text-3); }
.s-apps a:hover { border-color: rgba(242, 131, 44, .5); background: rgba(242, 131, 44, .06); }
@media (prefers-reduced-motion: reduce) { .s-wave { animation: none; stroke-dasharray: none; } }.s-stage .h-chip--2 { right: 1rem; top: auto; bottom: -1.25rem; }


/* ===== Telefon (2026-10-10) ===== */
@media (width < 1024px) {
  /* backdrop-filter na nagłówku robi z niego "pudełko" dla position:fixed – panel menu był przycięty do wysokości nagłówka (widać było tylko "Start") */
  .site-header { -webkit-backdrop-filter: none; backdrop-filter: none; background: rgba(var(--bgc), .94); }
  .site-header.is-scrolled { background: rgba(var(--bgc), .97); }
}
@media (width < 640px) {
  /* Znaczki na zdjęciach: wersja kompaktowa, w obrębie kadru, bez unoszenia */
  .h-chip { gap: .4rem; padding: .3rem .55rem .3rem .3rem; border-radius: 10px; font-size: .66rem; line-height: 1.2; animation: none;
    box-shadow: 0 0 0 1px rgba(var(--ink), .12) inset, 0 10px 22px -10px rgba(0, 0, 0, .8); }
  .h-chip small { font-size: .6rem; gap: .25rem; }
  .h-chip__ico, .h-tc .h-chip__ico { width: 22px; height: 22px; border-radius: 7px; font-size: 12px; }
  .h-chip__ico .lucide { width: 12px; height: 12px; }
  .h-dot { width: 5px; height: 5px; }
  .h-chip--1 { left: .5rem; top: .6rem; }
  .h-chip--2, .c-stage .h-chip--2, .s-visual .h-chip--2 { right: .5rem; top: auto; bottom: 22%; }
  .s-stage .h-chip--2, .s-visual .h-chip--2 { right: .5rem; top: auto; bottom: .5rem; }
  .s-visual .h-chip--1 { display: none; }
  .h-chip--3 { left: .5rem; bottom: .5rem; }
  .h-tc { font-size: .66rem; padding: .3rem .55rem .3rem .3rem; }
  .h-tc--alarm { animation: h-alarm 1.8s ease-out infinite; }

  /* Katalog: pasek filtrów niski – kategorie w jednym przewijanym wierszu */
  .p-bar { top: 66px; flex-wrap: nowrap; flex-direction: column; align-items: stretch; gap: .5rem; margin: 0 -.5rem .75rem; padding: .5rem; border-radius: 14px; }
  .p-tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; scroll-snap-type: x proximity; margin: 0 -.5rem; padding: 0 .5rem;
    -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent); mask-image: linear-gradient(90deg, #000 88%, transparent); }
  .p-tabs::-webkit-scrollbar { display: none; }
  .p-tab { flex: 0 0 auto; white-space: nowrap; padding: .4rem .75rem; font-size: .82rem; scroll-snap-align: start; }
  .p-tools { flex: 0 0 auto; }
  .p-search { max-width: none; }
  .p-search input, .p-sort { padding-top: .45rem; padding-bottom: .45rem; font-size: .85rem; }
  /* Technologie: każda grupa w jednym przewijanym wierszu z etykietą na początku */
  .p-techs { gap: .35rem; margin-bottom: .75rem; }
  .p-tgroup { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; margin: 0 -1rem; padding: 0 1rem; gap: .35rem;
    -webkit-mask-image: linear-gradient(90deg, #000 90%, transparent); mask-image: linear-gradient(90deg, #000 90%, transparent); }
  .p-tgroup::-webkit-scrollbar { display: none; }
  .p-tgroup__label { min-width: 0; flex: 0 0 auto; font-size: .62rem; }
  .p-tech { flex: 0 0 auto; white-space: nowrap; padding: .3rem .65rem; font-size: .74rem; }
}
/* logo w nagłówku ma atrybuty width/height (CLS) – szerokość liczona z proporcji przy max-height */
.site-header__logo img { width: auto; height: auto; }

/* --- Rozwiązania: partnerzy (firmy ochroniarskie, leasing Orange) --- */
.bp { display: grid; gap: 1rem; }
@media (width >= 1024px) { .bp { grid-template-columns: 1fr 1fr; } }
.bp__card { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--v2-radius); border: 1px solid var(--v2-border-2); background: linear-gradient(180deg, rgba(var(--ink), .035), rgba(var(--ink), .01)); transition: border-color .3s, transform .4s var(--v2-ease); }
.bp__card:hover { border-color: rgba(242, 131, 44, .45); transform: translateY(-3px); }
.bp__art { border-bottom: 1px solid var(--v2-border); background: radial-gradient(rgba(var(--ink), .07) 1px, transparent 1.2px) 0 0 / 16px 16px, radial-gradient(70% 90% at 50% 40%, rgba(111, 155, 224, .14), transparent 70%); }
.bp__art--lease { background: radial-gradient(rgba(var(--ink), .07) 1px, transparent 1.2px) 0 0 / 16px 16px, radial-gradient(70% 90% at 70% 45%, rgba(242, 131, 44, .14), transparent 70%); }
.bp__art svg { display: block; width: 100%; height: auto; }
.bp__body { display: grid; gap: .6rem; align-content: start; padding: 1.3rem 1.5rem 1.5rem; }
.bp__tag { display: inline-flex; align-items: center; gap: .45rem; justify-self: start; padding: .3rem .7rem; border-radius: 999px; font-size: .74rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--v2-orange); background: rgba(242, 131, 44, .1); box-shadow: 0 0 0 1px rgba(242, 131, 44, .35) inset; }
.bp__tag .lucide { width: 1rem; height: 1rem; }
.bp__body h3 { margin: 0; font-size: clamp(1.1rem, 1.7vw, 1.35rem); font-weight: 700; letter-spacing: -.02em; line-height: 1.25; color: var(--v2-text); text-wrap: balance; }
.bp__body p { margin: 0; font-size: .94rem; line-height: 1.6; color: var(--v2-text-2); }
.bp__more { display: inline-flex; align-items: center; gap: .4rem; justify-self: start; margin-top: .3rem; font-size: .9rem; font-weight: 700; color: var(--v2-orange); text-decoration: none; }
.bp__more .lucide { width: 1rem; height: 1rem; transition: transform .3s; }
.bp__more:hover .lucide { transform: translateX(3px); }
/* grafika 1 */
.bp-ln { fill: none; stroke: rgba(111, 155, 224, .35); stroke-width: 1.5; stroke-dasharray: 4 5; animation: igm-flow 1.4s linear infinite; }
.bp-dots circle { fill: var(--v2-blue); filter: drop-shadow(0 0 4px var(--v2-blue)); }
.bp-dots--o circle { fill: var(--v2-orange); filter: drop-shadow(0 0 4px var(--v2-orange)); }
.bp-node { fill: rgba(12,18,30,.95); stroke-width: 1.5; }
.bp-node--sc { stroke: rgba(111, 155, 224, .7); }
.bp-node--cl { stroke: rgba(52, 211, 153, .7); }
.bp-sq rect { fill: #4f70a4; } .bp-sq rect:nth-child(1), .bp-sq rect:nth-child(9) { fill: #c4620f; } .bp-sq rect:nth-child(even) { fill: #2d4e72; }
.bp-t { font: 800 9px/1 var(--font-base); fill: #e7ecf3; letter-spacing: .04em; }
.bp-p rect { fill: rgba(12,18,30,.95); stroke: rgba(var(--ink), .22); stroke-width: 1.2; animation: bp-hl 3s infinite; animation-delay: var(--d); }
.bp-p text { font: 800 11px/1 var(--font-base); fill: #e7ecf3; letter-spacing: .06em; }
@keyframes bp-hl { 0%, 100% { stroke: rgba(var(--ink), .22); } 15%, 40% { stroke: #f2832c; } }
.bp-ico { fill: rgba(52, 211, 153, .18); stroke: #34d399; stroke-width: 1.6; stroke-linejoin: round; }
.bp-ok { fill: #34d399; } .bp-okp { fill: none; stroke: #062a1d; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
/* grafika 2 */
.bp-units rect { fill: rgba(111, 155, 224, .2); stroke: rgba(111, 155, 224, .55); stroke-width: 1.2; opacity: .25; animation: bp-unit 4.8s infinite; animation-delay: calc(var(--k) * .12s); }
@keyframes bp-unit { 0%, 5% { opacity: .25; transform: translateY(4px); } 15%, 80% { opacity: 1; transform: none; } 100% { opacity: .25; } }
.bp-count { font: 800 18px/1 var(--font-base); fill: var(--v2-orange); }
.bp-arrow { fill: none; stroke: var(--v2-orange); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 6 5; animation: igm-flow 1s linear infinite; }
.bp-contract { fill: rgba(12,18,30,.95); stroke: rgba(242, 131, 44, .6); stroke-width: 1.5; }
.bp-t2 { font: 800 15px/1 var(--font-base); fill: #e7ecf3; }
.bp-sub { font: 600 10px/1 var(--font-base); fill: #a3afc0; }
.bp-months rect { fill: rgba(var(--ink), .1); animation: bp-month 4.8s infinite; animation-delay: calc(var(--m) * .25s); }
@keyframes bp-month { 0%, 3% { fill: rgba(var(--ink), .1); } 8%, 85% { fill: #f2832c; } 100% { fill: rgba(var(--ink), .1); } }
@media (prefers-reduced-motion: reduce) { .bp * { animation: none !important; } .bp-units rect { opacity: 1; } }
/* kotwice kafli branż (linki ze strony głównej): odstęp pod przyklejonym nagłówkiem */
.b-tile[id] { scroll-margin-top: 96px; }

/* --- Zestaw startowy: proces zamówienia (lista Rozwiązań) --- */
.sk { position: relative; display: grid; gap: 1.5rem; padding: clamp(1.25rem, 3vw, 2.5rem); border-radius: calc(var(--v2-radius) + 4px); border: 1px solid rgba(242, 131, 44, .35);
  background: radial-gradient(60% 80% at 100% 0%, rgba(242, 131, 44, .12), transparent 70%), radial-gradient(50% 70% at 0% 100%, rgba(111, 155, 224, .1), transparent 70%), linear-gradient(180deg, rgba(var(--ink), .04), rgba(var(--ink), .01)); }
.sk__head { display: grid; gap: .7rem; align-content: start; }
.sk__head .section__title { margin: 0; text-wrap: balance; }
.sk__head p { margin: 0; max-width: 34rem; font-size: 1rem; line-height: 1.6; color: var(--v2-text-2); }
.sk__art { border-radius: var(--v2-radius); border: 1px solid var(--v2-border); background: radial-gradient(rgba(var(--ink), .07) 1px, transparent 1.2px) 0 0 / 16px 16px, radial-gradient(70% 90% at 70% 50%, rgba(111, 155, 224, .12), transparent 70%); }
.sk__art { display: grid; align-items: center; }
.sk__art svg { display: block; width: 100%; height: auto; max-height: 340px; }
@media (width >= 1024px) { .sk { grid-template-columns: 5fr 7fr; column-gap: 2.5rem; } .sk__steps, .sk__foot { grid-column: 1 / -1; } .sk__head { align-self: center; } }

.sk__steps { position: relative; list-style: none; margin: 0; padding: 0; display: grid; gap: .9rem; counter-reset: none; }
.sk__step { position: relative; display: grid; grid-template-columns: auto 1fr; column-gap: .9rem; row-gap: .35rem; align-content: start; padding: 1.1rem; border-radius: var(--v2-radius); border: 1px solid var(--v2-border-2); background: rgba(var(--bgc2), .96); transition: border-color .3s, transform .4s var(--v2-ease); }
.sk__step:hover { border-color: rgba(242, 131, 44, .45); transform: translateY(-3px); }
.sk__ico { grid-row: 1 / 3; display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 12px; color: var(--v2-orange); background: rgba(242, 131, 44, .1); box-shadow: 0 0 0 1px rgba(242, 131, 44, .35) inset; }
.sk__ico .lucide { width: 1.3rem; height: 1.3rem; }
.sk__n { font-size: .75rem; font-weight: 800; letter-spacing: .12em; color: var(--v2-orange); }
.sk__step h3 { margin: 0; font-size: 1.05rem; font-weight: 700; letter-spacing: -.01em; line-height: 1.25; color: var(--v2-text); }
.sk__step p, .sk__chips { grid-column: 1 / -1; }
.sk__step p { margin: .25rem 0 0; font-size: .9rem; line-height: 1.55; color: var(--v2-text-2); }
.sk__chips { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .2rem; }
.sk__chips em { font-style: normal; font-size: .75rem; font-weight: 600; padding: .2rem .55rem; border-radius: 999px; color: var(--v2-text-2); background: rgba(var(--ink), .06); box-shadow: 0 0 0 1px rgba(var(--ink), .1) inset; }
.sk__step:last-child { border-color: rgba(52, 211, 153, .4); }
.sk__step:last-child .sk__ico { color: #34d399; background: rgba(52, 211, 153, .1); box-shadow: 0 0 0 1px rgba(52, 211, 153, .4) inset; }
.sk__step:last-child .sk__n { color: #34d399; }
/* telefon/tablet: pionowa oś czasu */
@media (width < 1024px) {
  .sk__steps::before { content: ""; position: absolute; left: calc(1.1rem + 1.375rem - 1px); top: 1.5rem; bottom: 1.5rem; width: 2px; background: linear-gradient(180deg, rgba(242, 131, 44, .6), rgba(52, 211, 153, .6)); }
  .sk__step p, .sk__chips { grid-column: 2; }
}
/* komputer: 5 kolumn z linią łączącą ikony */
@media (width >= 1024px) {
  .sk__steps { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .sk__steps::before { content: ""; position: absolute; left: 2.5rem; right: 2.5rem; top: calc(1.1rem + 1.375rem); height: 2px; background: linear-gradient(90deg, rgba(242, 131, 44, .6), rgba(52, 211, 153, .6)); }
  .sk__step { grid-template-columns: 1fr; }
  .sk__ico { grid-row: auto; margin-bottom: .4rem; }
  .sk__step p, .sk__chips { grid-column: auto; }
}
.sk__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem; padding: 1.1rem 1.25rem; border-radius: var(--v2-radius); background: rgba(242, 131, 44, .08); box-shadow: 0 0 0 1px rgba(242, 131, 44, .3) inset; }
.sk__foot p { margin: 0; flex: 1 1 22rem; font-size: .95rem; line-height: 1.55; color: var(--v2-text-2); }
.sk__foot b { color: var(--v2-text); }
.sk__btn { flex: none; font-size: 1.02rem; padding-inline: 1.6rem; }
@media (width < 560px) { .sk__foot { padding: 1rem; } .sk__btn { width: 100%; justify-content: center; padding-inline: 1rem; font-size: 1rem; } }
/* telefon: osobna, prostsza scena z większymi napisami */
.sk-art-m { display: none !important; }
@media (width < 560px) { .sk__art svg:not(.sk-art-m) { display: none; } .sk-art-m { display: block !important; } .sk-art-m .sk-t { font-size: 14px; } .sk-art-m .sk-s, .sk-art-m .sk-cty text { font-size: 13px; } .sk-art-m .sk-ups { font-size: 11px; } }

/* scena: trasa UPS po Europie, paczka z trackerem i loginem */
.sk-route { fill: none; stroke: rgba(242, 131, 44, .65); stroke-width: 2; stroke-dasharray: 6 6; animation: igm-flow 1.2s linear infinite; }
.sk-cty rect { fill: rgba(var(--bgc2), .9); stroke: rgba(var(--ink), .2); stroke-width: 1; }
.sk-cty text { font: 700 12px/1 var(--font-base); fill: var(--v2-text-2); letter-spacing: .06em; }
.sk-hq { fill: rgba(var(--bgc2), .95); stroke: rgba(111, 155, 224, .7); stroke-width: 1.5; }
.sk-t { font: 800 13px/1 var(--font-base); fill: var(--v2-text); letter-spacing: .04em; }
.sk-s { font: 600 11.5px/1 var(--font-base); fill: var(--v2-text-3); }
.sk-box { fill: #4a2c1a; stroke: #ffb500; stroke-width: 1.2; }
.sk-cab { fill: #3a2214; stroke: #ffb500; stroke-width: 1.2; }
.sk-wh { fill: #0b111c; stroke: #8a96a8; stroke-width: 1.2; }
.sk-ups { font: 800 10px/1 var(--font-base); fill: #ffb500; }
.sk-parcel rect { fill: rgba(196, 140, 80, .3); stroke: #c48c50; stroke-width: 1.5; }
.sk-parcel path { fill: none; stroke: #c48c50; stroke-width: 1.5; }
.sk-pop rect { fill: rgba(var(--bgc2), .95); stroke-width: 1.5; }
.sk-pop--1 rect { stroke: #6f9be0; } .sk-pop--1 circle { fill: #34d399; } .sk-pop--1 path { fill: none; stroke: #6f9be0; stroke-width: 1.5; stroke-linecap: round; }
.sk-pop--2 rect { stroke: #f2832c; } .sk-pop--2 path { fill: none; stroke: #f2832c; stroke-width: 1.5; stroke-linejoin: round; }
.sk-pop { opacity: 0; animation: sk-pop 7s infinite; }
.sk-pop--2, .sk-lbl--2 { animation-delay: .25s; }
.sk-lbl { opacity: 0; animation: sk-pop 7s infinite; }
.sk-lbl text { font: 700 11.5px/1 var(--font-base); fill: var(--v2-text-2); }
@keyframes sk-pop { 0%, 72% { opacity: 0; transform: translateY(26px); } 80%, 95% { opacity: 1; transform: none; } 100% { opacity: 0; transform: none; } }
.sk-year { fill: rgba(52, 211, 153, .1); stroke: rgba(52, 211, 153, .55); stroke-width: 1.2; }
.sk-dot { fill: #34d399; animation: sk-blink 1.6s ease-in-out infinite; }
@keyframes sk-blink { 50% { opacity: .3; } }
@media (prefers-reduced-motion: reduce) { .sk *, .sk__art * { animation: none !important; } .sk-pop, .sk-lbl { opacity: 1; transform: none; } }
#zestaw-startowy { scroll-margin-top: 96px; }

/* ===== Strona główna: infografiki (2026-10-10) ===== */

/* --- Droga danych (igf) --- */
.igf { position: relative; overflow: hidden; margin-bottom: 1rem; padding: 1.5rem 1.5rem 1.75rem; border-radius: var(--v2-radius); border: 1px solid var(--v2-border-2);
  background: radial-gradient(70% 120% at 100% 0%, rgba(111, 155, 224, .1), transparent 60%), radial-gradient(60% 120% at 0% 100%, rgba(242, 131, 44, .08), transparent 60%), var(--v2-surface); }
.igf__head { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; margin-bottom: 1.5rem; }
.igf__live { display: inline-flex; align-items: center; gap: .45rem; padding: .3rem .7rem; border-radius: 999px; font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #34d399; background: rgba(52, 211, 153, .1); box-shadow: 0 0 0 1px rgba(52, 211, 153, .3) inset; }
.igf__live i { width: 7px; height: 7px; border-radius: 50%; background: #34d399; box-shadow: 0 0 10px #34d399; animation: sw-blink 1.6s infinite; }
.igf__hint { font-size: .88rem; color: var(--v2-text-3); }
.igf__steps { position: relative; z-index: 1; list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.igf__step { display: grid; grid-template-columns: 3.25rem 1fr; grid-template-rows: auto auto auto; column-gap: 1rem; align-items: start; }
.igf__node { grid-row: span 3; position: relative; display: grid; place-items: center; width: 3.25rem; height: 3.25rem; border-radius: 16px; color: var(--v2-orange);
  background: rgba(var(--bgc2), 1); border: 1px solid var(--v2-border-2); box-shadow: 0 0 0 6px rgba(var(--bgc), 1); }
.igf__node .lucide { width: 1.4rem; height: 1.4rem; }
.igf__node::after { content: ""; position: absolute; inset: -1px; border-radius: inherit; box-shadow: 0 0 0 1px rgba(242, 131, 44, .6), 0 0 22px rgba(242, 131, 44, .45); opacity: 0; animation: igf-ping 5s infinite; animation-delay: calc(var(--n, 0) * 1s); }
.igf__step:nth-child(2) { --n: 1; } .igf__step:nth-child(3) { --n: 2; } .igf__step:nth-child(4) { --n: 3; } .igf__step:nth-child(5) { --n: 4; }
@keyframes igf-ping { 0%, 100% { opacity: 0; } 6%, 16% { opacity: 1; } 28% { opacity: 0; } }
.igf__step b { font-size: 1rem; font-weight: 700; color: var(--v2-text); line-height: 1.3; }
.igf__step small { margin-top: .15rem; font-size: .84rem; line-height: 1.4; color: var(--v2-text-2); }
.igf__tags { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .55rem; }
.igf__tags em { display: inline-flex; align-items: center; gap: .25rem; padding: .18rem .5rem; border-radius: 6px; font-style: normal; font-size: .7rem; font-weight: 700; letter-spacing: .04em; color: var(--v2-text-2); background: rgba(var(--ink), .05); box-shadow: 0 0 0 1px var(--v2-border) inset; }
.igf__tags em .lucide { width: .9rem; height: .9rem; }
.igf__tags em.is-sat { color: #ffd2ad; background: rgba(242, 131, 44, .14); box-shadow: 0 0 0 1px rgba(242, 131, 44, .45) inset; animation: igf-sat 3s ease-in-out infinite; }
@keyframes igf-sat { 50% { box-shadow: 0 0 0 1px rgba(242, 131, 44, .8) inset, 0 0 14px rgba(242, 131, 44, .45); } }
.igf__step--alarm .igf__node { color: #ffffff; background: var(--v2-orange); border-color: var(--v2-orange); }
/* szyna z pakietami danych: pionowo na telefonie, poziomo od 1024 px */
.igf__flow { position: relative; }
.igf__rail { position: absolute; z-index: 0; left: calc(1.625rem - 1px); top: 1.625rem; bottom: 3rem; width: 2px; background: linear-gradient(180deg, rgba(242, 131, 44, .5), rgba(111, 155, 224, .35)); }
.igf__rail i { position: absolute; left: -3px; top: 0; width: 8px; height: 8px; border-radius: 50%; background: var(--v2-orange); box-shadow: 0 0 12px var(--v2-orange); animation: igf-down 5s linear infinite; }
.igf__rail i:nth-child(2) { animation-delay: -1.66s; background: var(--v2-blue); box-shadow: 0 0 12px var(--v2-blue); }
.igf__rail i:nth-child(3) { animation-delay: -3.33s; }
@keyframes igf-down { from { top: 0; opacity: 0; } 8% { opacity: 1; } 92% { opacity: 1; } to { top: 100%; opacity: 0; } }
@media (width >= 1024px) {
  .igf { padding: 1.75rem 2rem 2rem; }
  .igf__steps { grid-template-columns: repeat(5, 1fr); gap: 1.25rem; }
  .igf__step { grid-template-columns: 1fr; text-align: center; justify-items: center; }
  .igf__node { grid-row: auto; margin-bottom: .9rem; width: 3.75rem; height: 3.75rem; }
  .igf__tags { justify-content: center; }
  .igf__rail { left: 10%; right: 10%; top: calc(1.875rem - 1px); bottom: auto; width: auto; height: 2px; background: linear-gradient(90deg, rgba(242, 131, 44, .55), rgba(111, 155, 224, .4)); }
  .igf__rail i { top: -3px; left: 0; animation-name: igf-right; }
  @keyframes igf-right { from { left: 0; opacity: 0; } 8% { opacity: 1; } 92% { opacity: 1; } to { left: 100%; opacity: 0; } }
}

/* --- Certyfikaty (igc) --- */
.igc { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: .75rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (width >= 1024px) { .igc { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; } }
.igc li { display: flex; align-items: center; gap: .8rem; padding: .85rem 1rem; border-radius: 14px; background: var(--v2-surface); border: 1px solid var(--v2-border); }
.igc li > span:last-child { min-width: 0; overflow-wrap: break-word; }
/* telefon: pieczęć nad tekstem, bo „Kompatybilność” / „Fahrzeug-Typgenehmigung” nie mieszczą się obok */
@media (width < 560px) { .igc li { flex-direction: column; align-items: flex-start; gap: .6rem; padding: .85rem; } }
.igc__seal { flex: none; display: grid; place-items: center; width: 2.9rem; height: 2.9rem; border-radius: 50%; font-size: .78rem; font-weight: 800; letter-spacing: .02em; color: var(--v2-blue);
  background: radial-gradient(circle, rgba(111, 155, 224, .16) 55%, transparent 56%); box-shadow: 0 0 0 1px rgba(111, 155, 224, .45) inset, 0 0 0 4px rgba(111, 155, 224, .08); }
.igc--atex .igc__seal { color: var(--v2-orange); background: radial-gradient(circle, rgba(242, 131, 44, .16) 55%, transparent 56%); box-shadow: 0 0 0 1px rgba(242, 131, 44, .5) inset, 0 0 0 4px rgba(242, 131, 44, .08); }
.igc b { display: block; font-size: .9rem; color: var(--v2-text); line-height: 1.25; }
.igc small { display: block; font-size: .76rem; color: var(--v2-text-3); line-height: 1.3; }

/* --- Bento infografik (igx) --- */
.igx { display: grid; gap: 1rem; margin-top: 2.5rem; }
@media (width >= 1024px) {
  .igx { grid-template-columns: repeat(3, 1fr); }
  .igx__card--map { grid-column: span 2; }
  .igx__card--lang { grid-column: span 2; }
}
.igx__card { position: relative; overflow: hidden; display: flex; flex-direction: column; border-radius: var(--v2-radius); border: 1px solid var(--v2-border-2);
  background: linear-gradient(180deg, rgba(var(--ink), .035), rgba(var(--ink), .01)); }
.igx__card > :first-child { flex: 1 0 auto; }
.igx__body { padding: 1.25rem 1.5rem 1.5rem; }
.igx__body h3 { margin: 0 0 .45rem; font-size: clamp(1.1rem, 1.6vw, 1.3rem); font-weight: 700; letter-spacing: -.02em; line-height: 1.2; color: var(--v2-text); text-wrap: balance; }
.igx__body p { margin: 0; font-size: .93rem; line-height: 1.55; color: var(--v2-text-2); }

/* 1. Mapa */
.igm { display: grid; gap: 0; border-bottom: 1px solid var(--v2-border);
  background: radial-gradient(rgba(var(--ink), .09) 1px, transparent 1.2px) 0 0 / 16px 16px, rgba(var(--bgc), .5); }
@media (width >= 768px) { .igm { grid-template-columns: 1fr 15rem; } }
.igm__svg { display: block; width: 100%; height: auto; }
.igm__sea { fill: rgba(111, 155, 224, .1); }
.igm__coast { fill: none; stroke: rgba(111, 155, 224, .45); stroke-width: 1.5; }
.igm__fence circle { fill: rgba(52, 211, 153, .06); stroke: rgba(52, 211, 153, .7); stroke-width: 1.5; stroke-dasharray: 5 5; }
.igm__fence .igm__fence-pulse { fill: none; stroke-dasharray: none; stroke-width: 2; transform-box: fill-box; transform-origin: center; animation: igm-pulse 3s ease-out infinite; }
@keyframes igm-pulse { from { transform: scale(1); opacity: .7; } to { transform: scale(1.5); opacity: 0; } }
.igm__wh { fill: rgba(var(--bgc2), 1); stroke: rgba(52, 211, 153, .8); stroke-width: 1.5; }
.igm__road { fill: none; stroke: var(--v2-orange); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 2 8; animation: igm-flow 1.2s linear infinite; }
.igm__searoute { fill: none; stroke: var(--v2-blue); stroke-width: 2.5; stroke-linecap: round; stroke-dasharray: 10 8; animation: igm-flow 1.6s linear infinite; }
@keyframes igm-flow { to { stroke-dashoffset: -20; } }
.igm__sat rect { fill: rgba(var(--bgc2), 1); stroke: var(--v2-blue); stroke-width: 1.5; }
.igm__sat .igm__panel { fill: rgba(111, 155, 224, .35); }
.igm__sat { animation: igm-float 5s ease-in-out infinite; }
@keyframes igm-float { 50% { translate: 0 -4px; } }
.igm__beam { stroke: var(--v2-blue); stroke-width: 1.5; stroke-dasharray: 3 5; opacity: .8; animation: igm-flow 1s linear infinite; }
.igm__pin circle { fill: var(--v2-orange); }
.igm__pin--seal circle { fill: #34d399; }
.igm__pin .igm__ring { fill: none; stroke: currentColor; color: var(--v2-orange); stroke-width: 2; transform-box: fill-box; transform-origin: center; animation: igm-pulse 2.4s ease-out infinite; }
.igm__pin--seal .igm__ring { color: #34d399; animation-delay: 1.2s; }
.igm__unit { fill: #fff; stroke: var(--v2-orange); stroke-width: 3; filter: drop-shadow(0 0 6px rgba(242, 131, 44, .9)); }
.igm__lbl { font: 600 12px/1 var(--font-base); fill: var(--v2-text-2); letter-spacing: .02em; }
.igm__lbl--sea { fill: var(--v2-blue); }
.igm__lbl--land { fill: var(--v2-orange); font-size: 11px; letter-spacing: .08em; }
.igm__log { list-style: none; margin: 0; padding: 1rem 1.25rem; display: grid; gap: .5rem; align-content: center; border-top: 1px solid var(--v2-border); }
@media (width >= 768px) { .igm__log { border-top: 0; border-left: 1px solid var(--v2-border); } }
.igm__log li { display: grid; grid-template-columns: 2.9rem 1fr; gap: .5rem; align-items: baseline; padding: .45rem .6rem; border-radius: 10px; font-size: .8rem; line-height: 1.35; color: var(--v2-text-2);
  animation: igm-log 10s infinite; }
.igm__log li:nth-child(2) { animation-delay: 2.5s; } .igm__log li:nth-child(3) { animation-delay: 5s; } .igm__log li:nth-child(4) { animation-delay: 7.5s; }
@keyframes igm-log { 0%, 24% { background: rgba(var(--ink), .06); color: var(--v2-text); } 26%, 100% { background: transparent; } }
.igm__log time { font-variant-numeric: tabular-nums; font-weight: 700; color: var(--v2-text-3); }
.igm__log .is-warn time { color: var(--v2-orange); }
.igm__log .is-ok time { color: #34d399; }

/* 2. Lejek AI */
.iga { display: grid; place-items: center; padding: 1rem 1rem 0; border-bottom: 1px solid var(--v2-border); background: radial-gradient(60% 70% at 50% 40%, rgba(111, 155, 224, .12), transparent 70%); }
.iga__svg { display: block; width: 100%; max-width: 340px; height: auto; }
.iga__funnel { fill: rgba(var(--ink), .03); stroke: var(--v2-border-2); stroke-width: 1.5; stroke-linejoin: round; }
.iga__exit { fill: none; stroke: rgba(var(--ink), .14); stroke-width: 1.5; stroke-dasharray: 3 5; }
.iga__dots circle { fill: var(--v2-text-3); }
.iga__hot { fill: var(--v2-orange); filter: drop-shadow(0 0 6px rgba(242, 131, 44, .9)); }
.iga__chip rect { fill: rgba(var(--bgc2), 1); stroke: var(--v2-blue); stroke-width: 1.5; }
.iga__chip text { font: 800 14px/1 var(--font-base); fill: var(--v2-blue); letter-spacing: .08em; }
.iga__chip { animation: iga-glow 3.2s ease-in-out infinite; }
@keyframes iga-glow { 50% { filter: drop-shadow(0 0 8px rgba(111, 155, 224, .8)); } }
.iga__op circle { fill: rgba(var(--bgc2), 1); stroke: var(--v2-orange); stroke-width: 2; }
.iga__op path { fill: none; stroke: var(--v2-orange); stroke-width: 2; stroke-linecap: round; }
.iga__op .iga__op-ring { fill: none; transform-box: fill-box; transform-origin: center; animation: igm-pulse 3.2s ease-out infinite; animation-delay: 2.6s; }
.iga__lbl { font: 600 11.5px/1 var(--font-base); fill: var(--v2-text-2); }
.iga__lbl--off { fill: var(--v2-text-3); font-size: 10.5px; }
.iga__lbl--hot { fill: var(--v2-orange); font-size: 11px; }

/* 3. Doświadczenie */
.ige { position: relative; display: grid; place-items: center; padding: 1.25rem 1rem; border-bottom: 1px solid var(--v2-border); background: radial-gradient(50% 60% at 50% 50%, rgba(242, 131, 44, .12), transparent 70%); }
.ige__svg { display: block; width: 100%; max-width: 210px; height: auto; }
.ige__ticks rect { fill: rgba(var(--ink), .1); animation: ige-tick 6s infinite; animation-delay: calc(var(--i) * .25s); }
@keyframes ige-tick { 0% { fill: rgba(var(--ink), .1); } 6%, 70% { fill: var(--v2-orange); } 85%, 100% { fill: rgba(var(--ink), .1); } }
.ige__num { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; }
.ige__num b { font-size: 3.6rem; font-weight: 800; letter-spacing: -.05em; line-height: 1; color: var(--v2-text); }
.ige__num small { font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--v2-orange); }
.ige__chips { list-style: none; margin: .9rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.ige__chips li { padding: .25rem .6rem; border-radius: 999px; font-size: .74rem; font-weight: 600; color: var(--v2-text-2); background: rgba(var(--ink), .04); box-shadow: 0 0 0 1px var(--v2-border-2) inset; }

/* 4. Języki */
.igl { position: relative; display: grid; align-items: center; gap: 1rem; padding: 1.5rem 0; border-bottom: 1px solid var(--v2-border); overflow: hidden;
  background: radial-gradient(50% 90% at 15% 50%, rgba(111, 155, 224, .14), transparent 70%); }
@media (width >= 768px) { .igl { grid-template-columns: 11rem 1fr; } }
.igl__num { display: grid; justify-items: center; text-align: center; padding: 0 1rem; }
.igl__num b { font-size: 3.6rem; font-weight: 800; letter-spacing: -.05em; line-height: 1; background: linear-gradient(180deg, var(--v2-text), var(--v2-blue)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.igl__num small { margin-top: .25rem; font-size: .74rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--v2-text-3); }
.igl__rows { display: grid; gap: .6rem; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.igl__row { display: flex; gap: .6rem; width: max-content; animation: igl-left 26s linear infinite; }
.igl__row--rev { animation-name: igl-right; }
@keyframes igl-left { to { transform: translateX(-50%); } }
@keyframes igl-right { from { transform: translateX(-50%); } to { transform: translateX(0); } }
.igl__row span { flex: none; padding: .5rem .9rem; border-radius: 12px; font-size: .9rem; font-weight: 600; white-space: nowrap; color: var(--v2-text); background: rgba(var(--bgc2), .8); box-shadow: 0 0 0 1px var(--v2-border-2) inset; }
.igl__row span:nth-child(3n+1) { box-shadow: 0 0 0 1px rgba(111, 155, 224, .45) inset; }
.igl__row--rev span:nth-child(4n+2) { box-shadow: 0 0 0 1px rgba(242, 131, 44, .45) inset; }

/* --- Usługi: mini-wizualizacje (ofv) --- */
.offer-grid--ig .offer-card { display: flex; flex-direction: column; }
.offer-grid--ig .offer-card__cta { align-self: flex-start; }
.ofv { position: relative; display: flex; align-items: center; justify-content: center; gap: 1rem; min-height: 120px; margin: -.25rem 0 1.25rem; padding: 1rem; border-radius: 14px; overflow: hidden;
  background: radial-gradient(rgba(var(--ink), .07) 1px, transparent 1.2px) 0 0 / 14px 14px, rgba(var(--bgc), .55); box-shadow: 0 0 0 1px var(--v2-border) inset; }
/* zakup / leasing */
.ofv--buy { flex-direction: column; }
.ofv-seg { position: relative; display: grid; grid-template-columns: repeat(2, 1fr); padding: 4px; border-radius: 999px; background: rgba(var(--ink), .05); box-shadow: 0 0 0 1px var(--v2-border-2) inset; }
.ofv-seg span { position: relative; z-index: 1; padding: .4rem .9rem; font-size: .8rem; font-weight: 700; text-align: center; color: var(--v2-text-2); }
.ofv-seg__hl { position: absolute; top: 4px; bottom: 4px; left: 4px; width: calc((100% - 8px) / 2); border-radius: 999px; background: var(--v2-orange); box-shadow: 0 0 18px rgba(242, 131, 44, .5); animation: ofv-seg 6s infinite; }
@keyframes ofv-seg { 0%, 42% { transform: translateX(0); } 50%, 92% { transform: translateX(100%); } 100% { transform: translateX(0); } }
.ofv-seg span:nth-of-type(1) { animation: ofv-seg1 6s infinite; } .ofv-seg span:nth-of-type(2) { animation: ofv-seg2 6s infinite; }
@keyframes ofv-seg1 { 0%, 42%, 100% { color: #ffffff; } 50%, 92% { color: var(--v2-text-2); } }
@keyframes ofv-seg2 { 0%, 42%, 100% { color: var(--v2-text-2); } 50%, 92% { color: #ffffff; } }
.ofv-kit { display: flex; align-items: center; gap: .6rem; padding: .5rem .8rem; border-radius: 12px; background: rgba(var(--bgc2), .9); box-shadow: 0 0 0 1px var(--v2-border-2) inset; }
.ofv-kit .lucide { width: 1.3rem; height: 1.3rem; color: var(--v2-orange); }
.ofv-kit b { display: block; font-size: .82rem; color: var(--v2-text); }
.ofv-kit small { display: block; font-size: .7rem; color: var(--v2-text-3); }
/* trzy platformy */
.ofv--apps { min-height: 175px; }
.ofv-win { position: absolute; width: 44%; max-width: 190px; border-radius: 10px; overflow: hidden; background: rgba(var(--bgc2), .95); box-shadow: 0 0 0 1px var(--v2-border-2) inset, 0 16px 30px -12px rgba(0, 0, 0, .8); animation: h-float 6s ease-in-out infinite; }
.ofv-win--1 { left: 6%; top: 14%; z-index: 1; }
.ofv-win--2 { left: 28%; top: 34%; z-index: 2; animation-delay: -2s; }
.ofv-win--3 { right: 6%; top: 18%; z-index: 3; animation-delay: -4s; }
.ofv-win__bar { display: flex; align-items: center; gap: 3px; padding: .3rem .5rem; border-bottom: 1px solid var(--v2-border); }
.ofv-win__bar i { width: 5px; height: 5px; border-radius: 50%; background: rgba(var(--ink), .2); }
.ofv-win__bar b { margin-left: .35rem; font-size: .66rem; font-weight: 700; color: var(--v2-text-2); }
.ofv-win svg { display: block; width: 100%; height: auto; padding: .35rem; }
.ofv-route { fill: none; stroke: var(--v2-orange); stroke-width: 2.5; stroke-linecap: round; stroke-dasharray: 160; stroke-dashoffset: 160; animation: ofv-draw 4s ease-in-out infinite; }
@keyframes ofv-draw { 60%, 100% { stroke-dashoffset: 0; } }
.ofv-dot { fill: var(--v2-orange); }
.ofv-bar { fill: rgba(111, 155, 224, .5); transform-box: fill-box; transform-origin: bottom; animation: ofv-bar 3s ease-in-out infinite; }
.ofv-bar:nth-child(2) { animation-delay: .3s; } .ofv-bar:nth-child(3) { animation-delay: .6s; } .ofv-bar:nth-child(4) { animation-delay: .9s; } .ofv-bar:nth-child(5) { animation-delay: 1.2s; }
.ofv-bar--acc { fill: var(--v2-orange); }
@keyframes ofv-bar { 50% { transform: scaleY(.6); } }
.ofv-ln { fill: rgba(var(--ink), .12); }
.ofv-ln--acc { fill: rgba(52, 211, 153, .6); }
/* centrum 24/7: radar */
.ofv--soc { justify-content: space-around; }
.ofv-radar { position: relative; flex: none; display: grid; place-items: center; width: 96px; height: 96px; border-radius: 50%;
  background: repeating-radial-gradient(circle, transparent 0 15px, rgba(111, 155, 224, .22) 15px 16px), rgba(var(--bgc2), .9); box-shadow: 0 0 0 1px rgba(111, 155, 224, .4) inset; overflow: hidden; }
.ofv-radar__sweep { position: absolute; inset: 0; border-radius: 50%; background: conic-gradient(from 0deg, rgba(111, 155, 224, .55), transparent 70deg); animation: ofv-spin 3s linear infinite; }
@keyframes ofv-spin { to { transform: rotate(360deg); } }
.ofv-radar b { position: relative; font-size: .95rem; font-weight: 800; color: var(--v2-text); letter-spacing: -.02em; }
.ofv-blip { position: absolute; width: 6px; height: 6px; border-radius: 50%; background: var(--v2-blue); box-shadow: 0 0 8px var(--v2-blue); animation: sw-blink 3s infinite; }
.ofv-blip--1 { left: 26%; top: 30%; } .ofv-blip--2 { right: 22%; bottom: 28%; animation-delay: 1s; }
.ofv-blip--alarm { right: 30%; top: 22%; background: var(--v2-orange); box-shadow: 0 0 10px var(--v2-orange); animation-delay: 2s; }
.ofv-proc { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
.ofv-proc li { display: flex; align-items: center; gap: .45rem; font-size: .78rem; font-weight: 600; color: var(--v2-text-2); }
.ofv-proc li::before { content: ""; width: 14px; height: 14px; border-radius: 4px; background: rgba(52, 211, 153, .15); box-shadow: 0 0 0 1px rgba(52, 211, 153, .6) inset; }
/* karta M2M w wielu krajach */
.ofv--sim { gap: 1.5rem; }
.ofv-sim { flex: none; width: 52px; height: auto; }
.ofv-sim path:first-child { fill: rgba(var(--bgc2), 1); stroke: var(--v2-border-2); stroke-width: 1.5; }
.ofv-sim__chip { fill: rgba(242, 131, 44, .2); stroke: var(--v2-orange); stroke-width: 1.5; }
.ofv-sim__lines { fill: none; stroke: var(--v2-orange); stroke-width: 1.2; opacity: .8; }
.ofv-nets { list-style: none; margin: 0; padding: 0; display: flex; gap: .5rem; }
.ofv-nets li { display: grid; justify-items: center; gap: .35rem; padding: .55rem .7rem; border-radius: 12px; background: rgba(var(--bgc2), .9); box-shadow: 0 0 0 1px var(--v2-border-2) inset; animation: ofv-net 6s infinite; animation-delay: var(--d); }
@keyframes ofv-net { 0%, 30% { box-shadow: 0 0 0 1px rgba(242, 131, 44, .7) inset, 0 0 18px -4px rgba(242, 131, 44, .7); } 34%, 100% { box-shadow: 0 0 0 1px var(--v2-border-2) inset; } }
.ofv-nets b { font-size: .8rem; font-weight: 800; color: var(--v2-text); letter-spacing: .06em; }
.ofv-bars { display: flex; align-items: flex-end; gap: 2px; height: 16px; }
.ofv-bars i { width: 4px; border-radius: 1px; background: rgba(var(--ink), .15); }
.ofv-bars i:nth-child(1) { height: 25%; } .ofv-bars i:nth-child(2) { height: 50%; } .ofv-bars i:nth-child(3) { height: 75%; } .ofv-bars i:nth-child(4) { height: 100%; }
.ofv-nets li .ofv-bars i { animation: ofv-sig 6s infinite; animation-delay: var(--d); }
@keyframes ofv-sig { 0%, 30% { background: var(--v2-orange); } 34%, 100% { background: rgba(var(--ink), .15); } }

@media (width < 640px) {
  .igm__lbl { font-size: 15px; } .igm__lbl--land { font-size: 13px; }
  .ofv-win { width: 60%; } .ofv-win--1 { left: 4%; top: 8%; } .ofv-win--2 { left: 20%; top: 40%; } .ofv-win--3 { right: 4%; top: 22%; }
  .ofv-nets li { padding: .5rem; }
}
@media (prefers-reduced-motion: reduce) {
  .igf *, .igm *, .iga *, .ige *, .igl *, .ofv * { animation: none !important; }
  .igl__row { transform: none; }
}

/* ===== Nakładki filmów na stronie głównej (klik = film) ===== */
.hvo { position: absolute; inset: 0; z-index: 3; display: block; width: 100%; height: 100%; padding: 0; border: 0; cursor: pointer; overflow: hidden; background: #070b13; color: #ffffff; font: inherit; text-align: left; }
.hvo__art { position: absolute; inset: 0; width: 100%; height: 100%; }
.hvo__dot { fill: rgba(255,255,255,.09); }
.hvo__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7,11,19,.96) 0%, rgba(7,11,19,.8) 34%, rgba(7,11,19,.08) 60%, transparent 100%); }
.hvo__copy { position: absolute; left: clamp(1.2rem, 5%, 3.5rem); top: 50%; translate: 0 -50%; display: grid; gap: clamp(.5rem, 1.4vw, 1rem); max-width: min(44%, 30rem); }
.hvo__kicker { display: inline-flex; align-items: center; gap: .5rem; font-size: clamp(.62rem, 1.1vw, .8rem); font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #f2832c; }
.hvo__kicker i { width: 8px; height: 8px; border-radius: 50%; background: #34d399; box-shadow: 0 0 10px #34d399; animation: sw-blink 1.4s infinite; }
.hvo__title { font-size: clamp(1.05rem, 3vw, 2.25rem); font-weight: 800; line-height: 1.1; letter-spacing: -.03em; color: #ffffff; text-wrap: balance; }
.hvo__chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.hvo__chips em { font-style: normal; font-size: clamp(.62rem, 1.05vw, .8rem); font-weight: 600; padding: .3rem .65rem; border-radius: 999px; color: #e7ecf3; background: rgba(255,255,255,.07); box-shadow: 0 0 0 1px rgba(255,255,255,.16) inset; }
.hvo__play { position: absolute; left: clamp(1.2rem, 5%, 3.5rem); bottom: 11%; display: flex; align-items: center; gap: .9rem; }
.hvo__btn { position: relative; z-index: 1; display: grid; place-items: center; width: clamp(58px, 7.5vw, 88px); aspect-ratio: 1; border-radius: 50%; background: #f2832c; box-shadow: 0 10px 40px -6px rgba(242,131,44,.8), 0 0 0 1px rgba(255,255,255,.25) inset; transition: transform .3s var(--v2-ease), background .3s; }
.hvo__btn svg { width: 44%; fill: #ffffff; margin-left: 8%; }
.hvo__ring { position: absolute; top: 0; left: 0; width: clamp(58px, 7.5vw, 88px); aspect-ratio: 1; border-radius: 50%; border: 2px solid rgba(242,131,44,.7); animation: slp-ring 2.4s ease-out infinite; }
.hvo__ring--2 { animation-delay: 1.2s; }
.hvo__play b { font-size: clamp(.7rem, 1.2vw, .9rem); font-weight: 700; letter-spacing: .06em; color: #ffffff; text-shadow: 0 2px 10px rgba(0,0,0,.7); }
.hvo:hover .hvo__btn, .hvo:focus-visible .hvo__btn { transform: scale(1.08); background: #ff9442; }
.hvo__st rect { fill: rgba(12,18,30,.92); stroke-width: 1.2; }
.hvo__st text { font: 700 11.5px/1 var(--font-base); }
.hvo__st--ok rect { stroke: #34d399; } .hvo__st--ok circle { fill: #34d399; } .hvo__st--ok text { fill: #b9f5dc; }
.hvo__st--alarm rect { stroke: #ef4444; } .hvo__st--alarm circle { fill: #ef4444; } .hvo__st--alarm text { fill: #fecaca; }
.hvo__st--open rect { stroke: #f2832c; } .hvo__st--open circle { fill: #f2832c; } .hvo__st--open text { fill: #ffd2ad; }
/* plomba */
.hvo__sat rect { fill: #0c121e; stroke: #6f9be0; stroke-width: 1.5; } .hvo__sat .hvo__panel { fill: rgba(111,155,224,.4); }
.hvo__sat { animation: igm-float 5s ease-in-out infinite; }
.hvo__wave { fill: none; stroke: #6f9be0; stroke-width: 2; stroke-dasharray: 4 6; animation: igm-flow 1s linear infinite; }
.hvo__arc { fill: none; stroke: #f2832c; stroke-width: 2.5; stroke-linecap: round; animation: hvo-arc 1.6s ease-out infinite; }
.hvo__arc--2 { animation-delay: .4s; }
@keyframes hvo-arc { 0% { opacity: 0; } 30% { opacity: 1; } 100% { opacity: 0; } }
.hvo__road { stroke: rgba(255,255,255,.18); stroke-width: 3; }
.hvo__lane { stroke: rgba(255,255,255,.3); stroke-width: 3; stroke-dasharray: 26 22; animation: hvo-lane .9s linear infinite; }
@keyframes hvo-lane { to { stroke-dashoffset: 48; } }
.hvo__truck { animation: hvo-bob .45s ease-in-out infinite alternate; }
@keyframes hvo-bob { to { transform: translateY(1.5px); } }
.hvo__box { fill: #1f3d63; stroke: #6f9be0; stroke-width: 1.5; }
.hvo__rib { stroke: rgba(111,155,224,.45); stroke-width: 2; }
.hvo__door { stroke: rgba(255,255,255,.35); stroke-width: 2; }
.hvo__cab { fill: #f2832c; } .hvo__win { fill: rgba(12,18,30,.75); }
.hvo__chassis { fill: #0c121e; }
.hvo__wheel { fill: #0c121e; stroke: rgba(255,255,255,.4); stroke-width: 3; stroke-dasharray: 6 4; animation: hvo-spin .6s linear infinite; transform-box: fill-box; transform-origin: center; }
@keyframes hvo-spin { to { transform: rotate(360deg); } }
.hvo__seal { fill: #0c121e; stroke: rgba(255,255,255,.55); stroke-width: 1.5; }
.hvo__led { fill: #34d399; animation: hvo-led 6s infinite; }
@keyframes hvo-led { 0%, 55% { fill: #34d399; } 58%, 92% { fill: #ef4444; } 95%, 100% { fill: #34d399; } }
.hvo--seal .hvo__st--ok { animation: hvo-sw-a 6s infinite; }
.hvo--seal .hvo__st--alarm { opacity: 0; animation: hvo-sw-b 6s infinite; }
@keyframes hvo-sw-a { 0%, 55% { opacity: 1; } 58%, 92% { opacity: 0; } 95%, 100% { opacity: 1; } }
@keyframes hvo-sw-b { 0%, 55% { opacity: 0; } 58%, 92% { opacity: 1; } 95%, 100% { opacity: 0; } }
/* kłódka */
.hvo__phone { fill: #0c121e; stroke: rgba(255,255,255,.45); stroke-width: 2; }
.hvo__screen { fill: rgba(111,155,224,.18); }
.hvo__appbtn { fill: #f2832c; animation: hvo-tap 6s infinite; transform-box: fill-box; transform-origin: center; }
@keyframes hvo-tap { 0%, 8% { transform: scale(1); } 10% { transform: scale(.88); } 13%, 100% { transform: scale(1); } }
.hvo__apptxt { font: 800 7.5px/1 var(--font-base); fill: #ffffff; letter-spacing: .04em; }
.hvo__applock { fill: none; stroke: #e7ecf3; stroke-width: 2; }
.hvo__ble { fill: none; stroke: #6f9be0; stroke-width: 3; stroke-linecap: round; opacity: 0; animation: hvo-ble 6s infinite; }
.hvo__ble--2 { animation-delay: .15s; } .hvo__ble--3 { animation-delay: .3s; }
@keyframes hvo-ble { 0%, 10% { opacity: 0; } 14%, 30% { opacity: 1; } 38%, 100% { opacity: 0; } }
.hvo__shackle path { fill: none; stroke: #c9d2de; stroke-width: 14; stroke-linecap: round; }
.hvo__shackle { animation: hvo-open 6s cubic-bezier(.5,0,.2,1) infinite; }
@keyframes hvo-open { 0%, 30% { transform: translateY(0); } 38%, 62% { transform: translateY(-30px); } 70%, 100% { transform: translateY(0); } }
.hvo__body { fill: #141a24; stroke: rgba(255,255,255,.35); stroke-width: 2; }
.hvo__facet { fill: none; stroke: rgba(255,255,255,.18); stroke-width: 2; }
.hvo__tri { fill: #2f6fe0; }
.hvo--lock .hvo__st--ok { animation: hvo-lk-a 6s infinite; }
.hvo--lock .hvo__st--open { opacity: 0; animation: hvo-lk-b 6s infinite; }
@keyframes hvo-lk-a { 0%, 32% { opacity: 1; } 36%, 64% { opacity: 0; } 68%, 100% { opacity: 1; } }
@keyframes hvo-lk-b { 0%, 32% { opacity: 0; } 36%, 64% { opacity: 1; } 68%, 100% { opacity: 0; } }
.hvo__ln rect { fill: rgba(12,18,30,.85); stroke: rgba(255,255,255,.16); }
.hvo__ln text { font: 600 10px/1 var(--font-base); fill: #a3afc0; }
.hvo__ln--1 { animation: hvo-ln1 6s infinite; } .hvo__ln--2 { animation: hvo-ln2 6s infinite; }
@keyframes hvo-ln1 { 0%, 34% { opacity: .35; } 38%, 100% { opacity: 1; } }
@keyframes hvo-ln2 { 0%, 68% { opacity: .35; } 72%, 100% { opacity: 1; } }
@media (width < 640px) {
  .hvo__chips { display: none; }
  .hvo__copy { max-width: 56%; top: auto; bottom: .9rem; translate: none; }
  .hvo__play { left: .9rem; right: auto; top: .9rem; bottom: auto; } .hvo__btn, .hvo__ring { width: 50px; } .hvo__kicker { font-size: .56rem; letter-spacing: .08em; }
  .hvo__play b { display: none; }
}
@media (prefers-reduced-motion: reduce) { .hvo * { animation: none !important; } }
/* ===== O nas: infografiki (2026-10-10) ===== */
.ab .ab-sec { padding-block: clamp(2.5rem, 6vw, 4.5rem); }
.ab .ab-sec:first-child { padding-top: 1rem; }
.ab .section__title { text-wrap: balance; }
.ab p { color: var(--v2-text-2); line-height: 1.65; }

/* --- 1. Dwa nurty -> jeden partner --- */
.ab-who { display: grid; gap: 2.5rem; align-items: center; }
@media (width >= 1024px) { .ab-who { grid-template-columns: 1fr 1.15fr; gap: 3.5rem; } }
.ab-merge { display: grid; grid-template-columns: 1fr 1fr; gap: 0 .75rem; }
.ab-merge__src, .ab-merge__out { position: relative; border-radius: 16px; border: 1px solid var(--v2-border-2); background: var(--v2-surface); padding: 1rem 1.1rem; }
.ab-merge__src { display: grid; gap: .45rem; align-content: start; }
.ab-merge__ico { display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 12px; color: var(--v2-blue); background: rgba(111, 155, 224, .12); box-shadow: 0 0 0 1px rgba(111, 155, 224, .35) inset; }
.ab-merge__src--b .ab-merge__ico { color: var(--v2-orange); background: rgba(242, 131, 44, .12); box-shadow: 0 0 0 1px rgba(242, 131, 44, .35) inset; }
.ab-merge__ico .lucide { width: 1.2rem; height: 1.2rem; }
.ab-merge__src b { font-size: .95rem; line-height: 1.3; color: var(--v2-text); }
.ab-merge__chips { display: flex; flex-wrap: wrap; gap: .3rem; }
.ab-merge__chips i { font-style: normal; font-size: .7rem; font-weight: 600; padding: .15rem .5rem; border-radius: 999px; color: var(--v2-text-2); background: rgba(var(--ink), .05); box-shadow: 0 0 0 1px var(--v2-border) inset; }
.ab-merge__lines { display: block; width: 100%; overflow: visible; }
.ab-merge__lines path { fill: none; stroke: var(--v2-border-2); stroke-width: 2; vector-effect: non-scaling-stroke; }
.ab-merge__lines .ab-merge__flow { stroke: var(--v2-blue); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 18 400; animation: ab-flow 2.6s linear infinite; }
.ab-merge__lines .ab-merge__flow--b { stroke: var(--v2-orange); animation-delay: -1.3s; }
@keyframes ab-flow { from { stroke-dashoffset: 18; } to { stroke-dashoffset: -400; } }
.ab-merge__lines--h { display: none; }
.ab-merge__lines--v { grid-column: 1 / -1; height: 56px; }
.ab-merge__out { grid-column: 1 / -1; display: grid; gap: .6rem; padding: 1.2rem 1.25rem; border-color: rgba(242, 131, 44, .45);
  background: radial-gradient(120% 140% at 0% 0%, rgba(242, 131, 44, .14), transparent 60%), var(--v2-surface); box-shadow: 0 0 40px -12px rgba(242, 131, 44, .45); }
.ab-merge__logo { font-size: .72rem; font-weight: 800; letter-spacing: .3em; color: var(--v2-orange); }
.ab-merge__out b { font-size: 1.35rem; font-weight: 800; letter-spacing: -.02em; color: var(--v2-text); }
.ab-merge__out ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .45rem .75rem; }
.ab-merge__out li { display: flex; align-items: center; gap: .45rem; font-size: .85rem; font-weight: 600; color: var(--v2-text-2); }
.ab-merge__out li .lucide { flex: none; width: 1rem; height: 1rem; color: var(--v2-orange); }
@media (width >= 640px) {
  .ab-merge { grid-template-columns: 1fr 72px 1fr; grid-template-rows: auto auto; gap: .75rem 0; align-items: stretch; }
  .ab-merge__src--a { grid-column: 1; grid-row: 1; }
  .ab-merge__src--b { grid-column: 1; grid-row: 2; }
  .ab-merge__lines--h { display: block; grid-column: 2; grid-row: 1 / 3; height: 100%; }
  .ab-merge__lines--v { display: none; }
  .ab-merge__out { grid-column: 3; grid-row: 1 / 3; align-content: center; }
  .ab-merge__out ul { grid-template-columns: 1fr; }
}

/* --- 2. Plaster miodu --- */
.ab-for { display: grid; gap: 2.5rem; align-items: center; }
@media (width >= 1024px) { .ab-for { grid-template-columns: 1fr 1fr; gap: 3.5rem; } }
.ab-hive { --w: min(150px, 25vw); --g: 8px; display: grid; justify-content: center; padding-bottom: .5rem; }
.ab-hive__row { display: flex; gap: var(--g); justify-content: center; }
.ab-hive__row { transform: translateX(calc(var(--w) / -4 - var(--g) / 4)); }
.ab-hive__row--2 { margin-top: calc(var(--w) * -.2887 + var(--g) * .5); transform: translateX(calc(var(--w) / 4 + var(--g) / 4)); }
.ab-hex { position: relative; width: var(--w); aspect-ratio: 1 / 1.1547; clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
  background: linear-gradient(160deg, rgba(var(--ink), .22), rgba(var(--ink), .06)); animation: ab-hex 9s infinite; animation-delay: calc(var(--i) * 1.5s); }
.ab-hex > span { position: absolute; inset: 1.5px; display: grid; place-content: center; justify-items: center; gap: .4rem; text-align: center; clip-path: inherit;
  background: radial-gradient(90% 70% at 50% 0%, rgba(111, 155, 224, .14), transparent 70%), rgba(var(--bgc2), 1); }
.ab-hex .lucide { width: calc(var(--w) * .2); height: calc(var(--w) * .2); color: var(--v2-orange); transition: transform .4s var(--v2-ease); }
.ab-hex b { font-size: clamp(.72rem, 2.6vw, .92rem); font-weight: 700; color: var(--v2-text); }
.ab-hex:hover .lucide { transform: scale(1.15); }
@keyframes ab-hex { 0%, 100% { background: linear-gradient(160deg, rgba(var(--ink), .22), rgba(var(--ink), .06)); } 4%, 12% { background: linear-gradient(160deg, var(--v2-orange), rgba(242, 131, 44, .25)); } 20% { background: linear-gradient(160deg, rgba(var(--ink), .22), rgba(var(--ink), .06)); } }

/* --- 4. Świątynia filarów --- */
.ab-temple { position: relative; max-width: 960px; margin: 2.5rem auto 0; }
.ab-temple__roof { display: block; width: 100%; height: clamp(70px, 11vw, 120px); }
.ab-temple__tri { fill: rgba(var(--ink), .035); stroke: var(--v2-border-2); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.ab-temple__shine { fill: none; stroke: var(--v2-orange); stroke-width: 2.5; vector-effect: non-scaling-stroke; stroke-dasharray: 120 2000; animation: ab-shine 6s linear infinite; }
@keyframes ab-shine { from { stroke-dashoffset: 120; } to { stroke-dashoffset: -1100; } }
.ab-temple__name { position: absolute; left: 50%; top: clamp(34px, 6.4vw, 68px); translate: -50% 0; font-size: clamp(.8rem, 2.2vw, 1.25rem); font-weight: 800; letter-spacing: .35em; color: var(--v2-text); white-space: nowrap; }
.ab-temple__cols { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(.5rem, 3vw, 2.5rem); padding: 0 clamp(.5rem, 4vw, 3rem); border-top: 3px solid var(--v2-border-2); }
.ab-col { position: relative; overflow: hidden; display: grid; justify-items: center; align-content: start; gap: .55rem; min-height: clamp(210px, 26vw, 270px); padding: 1.1rem .5rem 1.4rem; text-align: center; text-decoration: none; color: var(--v2-text);
  background: repeating-linear-gradient(90deg, rgba(var(--ink), .045) 0 2px, transparent 2px 14px), linear-gradient(180deg, rgba(var(--ink), .05), rgba(var(--ink), .015));
  border-inline: 1px solid var(--v2-border); transition: background .4s; }
.ab-col::after { content: ""; position: absolute; left: 0; right: 0; height: 40%; top: -40%; background: linear-gradient(180deg, transparent, rgba(242, 131, 44, .16), transparent); animation: ab-sweep 6s ease-in-out infinite; animation-delay: calc(var(--i) * 2s); pointer-events: none; }
@keyframes ab-sweep { 0% { top: -40%; } 35%, 100% { top: 110%; } }
.ab-col:hover { background: repeating-linear-gradient(90deg, rgba(242, 131, 44, .08) 0 2px, transparent 2px 14px), linear-gradient(180deg, rgba(242, 131, 44, .1), rgba(var(--ink), .015)); }
.ab-col__cap { display: grid; place-items: center; width: clamp(2.6rem, 7vw, 3.4rem); height: clamp(2.6rem, 7vw, 3.4rem); border-radius: 14px; color: var(--v2-orange); background: rgba(var(--bgc2), 1); box-shadow: 0 0 0 1px rgba(242, 131, 44, .45) inset, 0 0 24px -6px rgba(242, 131, 44, .6); }
.ab-col__cap .lucide { width: 50%; height: 50%; }
.ab-col b { font-size: clamp(.9rem, 2.4vw, 1.25rem); font-weight: 800; letter-spacing: -.02em; }
.ab-col__keys { display: grid; gap: .35rem; justify-items: center; margin-top: .2rem; }
.ab-col__keys i { font-style: normal; font-size: clamp(.64rem, 1.8vw, .78rem); font-weight: 600; line-height: 1.25; padding: .2rem .55rem; border-radius: 999px; color: var(--v2-text-2); background: rgba(var(--bgc), .7); box-shadow: 0 0 0 1px var(--v2-border-2) inset; }
.ab-col__go { margin-top: auto; padding-top: .6rem; color: var(--v2-orange); }
.ab-col__go .lucide { width: 1.1rem; height: 1.1rem; transition: transform .3s; }
.ab-col:hover .ab-col__go .lucide { transform: translate(2px, -2px); }
.ab-temple__base { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem 1.5rem; padding: 1rem 1.25rem; border-radius: 6px; background: linear-gradient(90deg, rgba(242, 131, 44, .14), rgba(111, 155, 224, .14)); box-shadow: 0 0 0 1px var(--v2-border-2) inset; }
.ab-temple__base span { display: inline-flex; align-items: center; gap: .45rem; font-size: .88rem; font-weight: 700; color: var(--v2-text); }
.ab-temple__base .lucide { width: 1.05rem; height: 1.05rem; color: var(--v2-orange); }
.ab-temple__steps { display: grid; justify-items: center; }
.ab-temple__steps i { display: block; height: 8px; border-radius: 0 0 4px 4px; background: rgba(var(--ink), .06); box-shadow: 0 0 0 1px var(--v2-border) inset; }
.ab-temple__steps i:nth-child(1) { width: 103%; } .ab-temple__steps i:nth-child(2) { width: 106%; }

/* --- 5. Koło usług --- */
.ab-cycle { display: grid; gap: 2.5rem; align-items: center; }
@media (width >= 1024px) { .ab-cycle { grid-template-columns: 1fr 1.1fr; gap: 3.5rem; } }
.ab-wheel { position: relative; width: min(100%, 400px); margin-inline: auto; }
.ab-wheel svg { display: block; width: 100%; height: auto; overflow: visible; }
.abw__track { fill: none; stroke: rgba(var(--ink), .04); stroke-width: 54; }
.abw__seg { fill: rgba(var(--ink), .04); stroke: var(--v2-border-2); stroke-width: 1; animation: abw-on 18s infinite; animation-delay: calc(var(--i) * 3s); }
@keyframes abw-on { 0%, 15% { fill: rgba(242, 131, 44, .55); stroke: var(--v2-orange); } 17%, 100% { fill: rgba(var(--ink), .04); stroke: var(--v2-border-2); } }
.abw__num { font: 800 15px/1 var(--font-base); fill: var(--v2-text-3); letter-spacing: .04em; animation: abw-num 18s infinite; animation-delay: calc(var(--i) * 3s); }
@keyframes abw-num { 0%, 15% { fill: #ffffff; } 17%, 100% { fill: var(--v2-text-3); } }
.abw__orbit { transform-box: view-box; transform-origin: 160px 160px; animation: abw-orbit 18s linear infinite; }
.abw__orbit circle { fill: var(--v2-orange); filter: drop-shadow(0 0 6px rgba(242, 131, 44, .9)); }
@keyframes abw-orbit { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
.ab-wheel__core { position: absolute; inset: 31%; display: grid; place-content: center; text-align: center; border-radius: 50%;
  background: radial-gradient(circle at 50% 30%, rgba(111, 155, 224, .2), transparent 70%), rgba(var(--bgc2), 1); box-shadow: 0 0 0 1px var(--v2-border-2) inset, 0 0 40px -10px rgba(111, 155, 224, .5); }
.ab-wheel__core b { font-size: clamp(1.6rem, 6vw, 2.4rem); font-weight: 800; letter-spacing: -.04em; line-height: 1; color: var(--v2-text); }
.ab-wheel__core small { margin-top: .3rem; font-size: .68rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--v2-text-3); }
.ab-svc { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; gap: .5rem; }
.ab-svc li { display: grid; grid-template-columns: 2.5rem 1fr; gap: .8rem; align-items: center; padding: .6rem .75rem; border-radius: 14px; border: 1px solid transparent; animation: ab-svc 18s infinite; animation-delay: calc(var(--i) * 3s); }
@keyframes ab-svc { 0%, 15% { background: rgba(242, 131, 44, .08); border-color: rgba(242, 131, 44, .4); } 17%, 100% { background: transparent; border-color: transparent; } }
.ab-svc__ico { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 12px; color: var(--v2-orange); background: rgba(var(--bgc2), 1); box-shadow: 0 0 0 1px var(--v2-border-2) inset; }
.ab-svc__ico .lucide { width: 1.15rem; height: 1.15rem; }
.ab-svc b { display: block; font-size: .98rem; color: var(--v2-text); line-height: 1.3; }
.ab-svc small { display: block; font-size: .84rem; color: var(--v2-text-2); line-height: 1.4; }

/* --- 6. Pierścienie efektu --- */
.ab-effect { display: grid; gap: 2.5rem; align-items: center; }
@media (width >= 1024px) { .ab-effect { grid-template-columns: 1.2fr 1fr; gap: 3.5rem; } }
.ab-legend { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; gap: .65rem; }
.ab-legend li { display: grid; grid-template-columns: auto 1fr; column-gap: .75rem; align-items: baseline; padding-left: 1.75rem; position: relative; font-size: .9rem; color: var(--v2-text-2); }
.ab-legend li::before { content: ""; position: absolute; left: 0; top: .35em; width: .8rem; height: .8rem; border-radius: 50%; border: 3px solid var(--c); box-shadow: 0 0 10px var(--c); }
.ab-legend b { color: var(--v2-text); }
.ab-rings { position: relative; width: min(100%, 320px); margin-inline: auto; }
.ab-rings svg { display: block; width: 100%; height: auto; }
.abr__bg { fill: none; stroke: rgba(var(--ink), .06); stroke-width: 18; }
.abr__arc { fill: none; stroke-width: 18; stroke-linecap: round; transform-box: view-box; transform-origin: 130px 130px; transform: rotate(-90deg); stroke-dasharray: 0 100; animation: abr-fill 7s var(--v2-ease) infinite; }
.abr__arc--1 { stroke: var(--v2-orange); --to: 94; filter: drop-shadow(0 0 6px rgba(242, 131, 44, .6)); }
.abr__arc--2 { stroke: var(--v2-blue); --to: 82; animation-delay: .25s; filter: drop-shadow(0 0 6px rgba(111, 155, 224, .6)); }
.abr__arc--3 { stroke: #34d399; --to: 88; animation-delay: .5s; filter: drop-shadow(0 0 6px rgba(52, 211, 153, .6)); }
@keyframes abr-fill { 0% { stroke-dasharray: 0 100; } 35%, 85% { stroke-dasharray: var(--to) 100; } 100% { stroke-dasharray: 0 100; } }
.ab-rings__core { position: absolute; inset: 0; display: grid; place-items: center; color: var(--v2-text); }
.ab-rings__core .lucide { width: 2.2rem; height: 2.2rem; }

/* --- 7. CTA --- */
.ab-cta { display: grid; gap: 1.5rem; align-items: center; padding: clamp(1.5rem, 4vw, 2.5rem); border-radius: var(--v2-radius); border: 1px solid rgba(242, 131, 44, .35);
  background: radial-gradient(80% 140% at 100% 0%, rgba(242, 131, 44, .16), transparent 60%), radial-gradient(60% 120% at 0% 100%, rgba(111, 155, 224, .12), transparent 60%), var(--v2-surface); }
@media (width >= 900px) { .ab-cta { grid-template-columns: 1fr auto; } }
.ab-cta h2 { margin: 0 0 .4rem; font-size: clamp(1.4rem, 3vw, 2rem); letter-spacing: -.03em; color: var(--v2-text); }
.ab-cta p { margin: 0; }
.ab-cta__btns { display: flex; flex-wrap: wrap; gap: .6rem; }

@media (prefers-reduced-motion: reduce) { .ab * { animation: none !important; } .abr__arc--1 { stroke-dasharray: 94 100; } .abr__arc--2 { stroke-dasharray: 82 100; } .abr__arc--3 { stroke-dasharray: 88 100; } }

/* --- Nakładka filmu O nas: animowane logo STARCONT (klik = film) --- */
.abo { position: absolute; inset: 0; z-index: 3; display: block; width: 100%; height: 100%; padding: 0; border: 0; cursor: pointer; overflow: hidden; background: #060a12; color: #ffffff; font: inherit; }
.abo__net { position: absolute; inset: 0; width: 100%; height: 100%; }
.abo__links path { fill: none; stroke: rgba(111,155,224,.22); stroke-width: 1; stroke-dasharray: 3 5; animation: igm-flow 2.4s linear infinite; }
.abo__nodes circle { fill: rgba(158,192,240,.55); }
.abo__pings circle { fill: none; stroke: #f2832c; stroke-width: 1.5; transform-box: fill-box; transform-origin: center; opacity: 0; animation: abo-ping 4s ease-out infinite; }
.abo__pings circle:nth-child(2) { animation-delay: 1s; } .abo__pings circle:nth-child(3) { animation-delay: 2s; } .abo__pings circle:nth-child(4) { animation-delay: 3s; }
@keyframes abo-ping { 0% { transform: scale(1); opacity: .9; } 60%, 100% { transform: scale(6); opacity: 0; } }
.abo__orbit { fill: none; stroke: rgba(242,131,44,.28); stroke-width: 1.2; stroke-dasharray: 2 7; }
.abo__sat { fill: #f2832c; filter: drop-shadow(0 0 6px #f2832c); }
.abo__inner { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: clamp(.7rem, 2.2vw, 1.5rem); padding: 1rem; }
.abo__kicker { display: inline-flex; align-items: center; gap: .5rem; font-size: clamp(.6rem, 1.1vw, .8rem); font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #9ec0f0; }
.abo__kicker i { width: 8px; height: 8px; border-radius: 50%; background: #34d399; box-shadow: 0 0 10px #34d399; animation: sw-blink 1.4s infinite; }
.abo__logo { --u: clamp(13px, 2.5vw, 30px); position: relative; display: flex; align-items: center; gap: calc(var(--u) * .45); }
.abo__grid { display: grid; grid-template-columns: repeat(3, var(--u)); gap: calc(var(--u) * .13); filter: drop-shadow(0 10px 30px rgba(0,0,0,.5)); }
.abo__grid i { display: block; width: var(--u); aspect-ratio: 1; border-radius: calc(var(--u) * .08); background: #2d4e72; opacity: 0;
  animation: abo-sq-in .7s cubic-bezier(.34,1.56,.64,1) forwards, abo-sq-glow 6s ease-in-out infinite; animation-delay: calc(.15s + var(--i) * .07s), calc(1.6s + var(--i) * .18s); }
.abo__grid i:nth-child(odd) { background: #4f70a4; }
.abo__grid i:nth-child(1), .abo__grid i:nth-child(9) { background: #c4620f; }
@keyframes abo-sq-in { from { opacity: 0; transform: translate(calc((var(--i) - 4) * 18px), calc((var(--i) - 4) * -14px)) rotate(-90deg) scale(.3); } to { opacity: 1; transform: none; } }
@keyframes abo-sq-glow { 0%, 86%, 100% { filter: none; } 90% { filter: brightness(1.7) drop-shadow(0 0 10px rgba(158,192,240,.8)); } }
.abo__word { position: relative; display: block; height: calc(var(--u) * 3.26); aspect-ratio: 781 / 150; background: url("/assets/pages/SC_Logo_dark.png") right center / auto 100% no-repeat;
  clip-path: inset(0 100% 0 0); animation: abo-word .9s cubic-bezier(.16,1,.3,1) .85s forwards; overflow: hidden; }
.abo__word::after { content: ""; position: absolute; inset: 0; background: linear-gradient(105deg, transparent 35%, rgba(255,255,255,.55) 50%, transparent 65%); transform: translateX(-120%); animation: abo-shine 5s ease-in-out 2.2s infinite; mix-blend-mode: overlay; }
@keyframes abo-word { to { clip-path: inset(0 0 0 0); } }
@keyframes abo-shine { 0% { transform: translateX(-120%); } 30%, 100% { transform: translateX(120%); } }
.abo__scenes { display: flex; flex-wrap: wrap; justify-content: center; gap: .45rem; }
.abo__scenes em { display: inline-flex; align-items: center; gap: .4rem; font-style: normal; font-size: clamp(.62rem, 1.1vw, .82rem); font-weight: 600; padding: .35rem .75rem; border-radius: 999px; color: #c9d4e2; background: rgba(255,255,255,.06); box-shadow: 0 0 0 1px rgba(255,255,255,.14) inset; animation: abo-scene 8s infinite; animation-delay: calc(var(--s) * 2s); }
.abo__scenes .lucide { width: 1.05em; height: 1.05em; color: #f2832c; }
@keyframes abo-scene { 0%, 25% { color: #ffffff; background: rgba(242,131,44,.2); box-shadow: 0 0 0 1px rgba(242,131,44,.6) inset; } 30%, 100% { color: #c9d4e2; background: rgba(255,255,255,.06); box-shadow: 0 0 0 1px rgba(255,255,255,.14) inset; } }
.abo__play { display: inline-flex; align-items: center; gap: .8rem; margin-top: .2rem; }
.abo__btn { position: relative; display: grid; place-items: center; width: clamp(52px, 6.5vw, 76px); aspect-ratio: 1; border-radius: 50%; background: #f2832c; box-shadow: 0 10px 40px -6px rgba(242,131,44,.8); transition: transform .3s var(--v2-ease), background .3s; }
.abo__btn::before, .abo__btn::after { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2px solid rgba(242,131,44,.7); animation: slp-ring 2.4s ease-out infinite; }
.abo__btn::after { animation-delay: 1.2s; }
.abo__btn svg { width: 44%; fill: #ffffff; margin-left: 8%; }
.abo__play b { font-size: clamp(.72rem, 1.2vw, .92rem); font-weight: 700; letter-spacing: .06em; color: #ffffff; }
.abo:hover .abo__btn, .abo:focus-visible .abo__btn { transform: scale(1.08); background: #ff9442; }
@media (width < 640px) { .abo__scenes { display: none; } .abo__kicker { font-size: .56rem; letter-spacing: .1em; } }
@media (prefers-reduced-motion: reduce) { .abo * { animation: none !important; } .abo__grid i { opacity: 1; } .abo__word { clip-path: none; } }
/* ===== SensLine: infografiki (2026-10-10) ===== */
.sl-hero { position: relative; color: #ffffff; padding: 4.5rem 0 4rem;
  background: linear-gradient(90deg, rgba(34, 56, 79, .95) 0%, rgba(34, 56, 79, .82) 45%, rgba(44, 77, 111, .05) 100%), url("/assets/sensline/sensline-hero.jpg?v=4") center / cover no-repeat; }
@media (width < 768px) { .sl-hero { background: linear-gradient(90deg, rgba(34, 56, 79, .92) 0%, rgba(34, 56, 79, .7) 100%), url("/assets/sensline/sensline-hero.jpg?v=4") 70% center / cover no-repeat; } }
.sl .sl-hero__kicker { margin: 0 0 .5rem; font-size: .95rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--v2-orange); }
.sl-hero__title { margin: 0 0 .75rem; font-size: clamp(2.4rem, 6vw, 4rem); line-height: 1.05; color: #ffffff; }
.sl .sl-hero__lead { max-width: 640px; margin: 0 0 1.75rem; font-size: clamp(1.05rem, 2vw, 1.35rem); color: #ffffff; }
.sl-hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.sl .sl-sec { padding-block: clamp(2.5rem, 6vw, 4.5rem); }
.sl .section__title { text-wrap: balance; }
.sl p { color: var(--v2-text-2); line-height: 1.65; }
.sl-note { font-size: .8rem; color: var(--v2-text-3); }
.sl-intro { display: grid; gap: 1rem 3rem; align-items: end; margin-bottom: 2rem; }
@media (width >= 1024px) { .sl-intro { grid-template-columns: 1fr 1fr; } }
.sl-intro .section__title { margin-bottom: 0; }
.sl-intro p { margin: 0; }

/* --- 1. Ogrodzenie --- */
.slf { border-radius: var(--v2-radius); border: 1px solid var(--v2-border-2); overflow: hidden;
  background: radial-gradient(60% 90% at 62% 40%, rgba(242, 131, 44, .1), transparent 60%), linear-gradient(180deg, rgba(111, 155, 224, .06), transparent 70%), rgba(var(--bgc), .6); }
.slf__svg { display: block; width: 100%; height: auto; }
.slf__mesh { stroke: rgba(var(--ink), .1); stroke-width: 1.2; fill: none; }
.slf__rail { stroke: rgba(var(--ink), .28); stroke-width: 3; fill: none; }
.slf__posts rect { fill: rgba(var(--ink), .22); }
.slf__ground { stroke: rgba(var(--ink), .12); stroke-width: 2; }
.slf__cable { stroke: rgba(242, 131, 44, .45); stroke-width: 3; fill: none; }
.slf__signal { fill: none; stroke: var(--v2-orange); stroke-width: 4; stroke-linecap: round; stroke-dasharray: 26 600; filter: drop-shadow(0 0 6px rgba(242, 131, 44, .9)); animation: slf-sig 6s linear infinite; }
@keyframes slf-sig { 0%, 30% { stroke-dashoffset: 26; opacity: 0; } 32% { opacity: 1; } 62% { stroke-dashoffset: -600; opacity: 1; } 64%, 100% { stroke-dashoffset: -600; opacity: 0; } }
.slf__nodes circle { fill: rgba(var(--bgc2), 1); stroke: var(--v2-orange); stroke-width: 2.5; }
.slf__zone { fill: rgba(239, 68, 68, .14); stroke: rgba(239, 68, 68, .8); stroke-width: 1.5; stroke-dasharray: 5 4; opacity: 0; animation: slf-zone 6s infinite; }
@keyframes slf-zone { 0%, 18% { opacity: 0; } 24%, 86% { opacity: 1; } 94%, 100% { opacity: 0; } }
.slf__hitdot { fill: #ef4444; stroke: #fff; stroke-width: 2; animation: slf-hit 6s infinite; }
@keyframes slf-hit { 0%, 18% { fill: rgba(var(--bgc2), 1); stroke: var(--v2-orange); } 22%, 86% { fill: #ef4444; stroke: #fecaca; } 94%, 100% { fill: rgba(var(--bgc2), 1); stroke: var(--v2-orange); } }
.slf__ripple { fill: none; stroke: #ef4444; stroke-width: 2; transform-box: fill-box; transform-origin: center; opacity: 0; animation: slf-rip 6s infinite; }
.slf__ripple--2 { animation-delay: .5s; }
@keyframes slf-rip { 0%, 20% { transform: scale(1); opacity: 0; } 22% { opacity: .9; } 40% { transform: scale(5); opacity: 0; } 100% { opacity: 0; } }
.slf__dim path { stroke: var(--v2-blue); stroke-width: 1.5; fill: none; }
.slf__dim text { font: 700 14px/1 var(--font-base); fill: var(--v2-blue); }
.slf__tag rect { fill: rgba(var(--bgc2), .95); stroke: #ef4444; stroke-width: 1.5; }
.slf__tag text { font: 700 14px/1 var(--font-base); fill: #fecaca; }
.slf__tag, .slf__lead { opacity: 0; animation: slf-zone 6s infinite; }
.slf__lead { stroke: #ef4444; stroke-width: 1.5; stroke-dasharray: 3 4; }
.slf__bridge rect { fill: rgba(var(--bgc2), 1); stroke: var(--v2-blue); stroke-width: 1.5; }
.slf__bridge text { font: 700 11px/1 var(--font-base); fill: var(--v2-blue); }
.slf__drop { fill: none; stroke: rgba(242, 131, 44, .45); stroke-width: 3; }
.slf__notes { list-style: none; margin: 0; padding: 1rem 1.25rem; display: grid; grid-template-columns: repeat(2, 1fr); gap: .75rem 1rem; border-top: 1px solid var(--v2-border); }
@media (width >= 900px) { .slf__notes { grid-template-columns: repeat(4, 1fr); } }
.slf__notes li { display: grid; gap: .1rem; font-size: .82rem; color: var(--v2-text-2); }
.slf__notes b { font-size: 1.15rem; font-weight: 800; color: var(--v2-orange); letter-spacing: -.01em; }
.sl-uses { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.sl-uses li { padding: .35rem .75rem; border-radius: 999px; font-size: .8rem; font-weight: 600; color: var(--v2-text-2); background: var(--v2-surface); box-shadow: 0 0 0 1px var(--v2-border-2) inset; }

/* --- 2. Liczby --- */
.sl-nums { padding: clamp(2rem, 5vw, 3rem) 0; border-block: 1px solid var(--v2-border); background: radial-gradient(60% 120% at 50% 0%, rgba(242, 131, 44, .08), transparent 70%), rgba(var(--ink), .015); }
.sl-nums__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem 1rem; }
@media (width >= 900px) { .sl-nums__grid { grid-template-columns: repeat(4, 1fr); } }
.sl-num { position: relative; display: grid; justify-items: center; text-align: center; }
.sl-num svg { width: clamp(110px, 26vw, 140px); height: auto; }
.sl-num__bg { fill: none; stroke: rgba(var(--ink), .07); stroke-width: 7; }
.sl-num__arc { fill: none; stroke: var(--v2-orange); stroke-width: 7; stroke-linecap: round; transform-box: view-box; transform-origin: 60px 60px; transform: rotate(-90deg); stroke-dasharray: 0 100; transition: stroke-dasharray 1.4s var(--v2-ease); filter: drop-shadow(0 0 5px rgba(242, 131, 44, .55)); }
.is-in .sl-num__arc { stroke-dasharray: var(--p) 100; }
.sl-num b { position: absolute; top: calc(clamp(110px, 26vw, 140px) / 2); translate: 0 -50%; font-size: clamp(1.4rem, 4.5vw, 1.9rem); font-weight: 800; letter-spacing: -.03em; color: var(--v2-text); font-variant-numeric: tabular-nums; white-space: nowrap; }
.sl-num small { margin-top: .6rem; max-width: 15rem; font-size: .84rem; line-height: 1.4; color: var(--v2-text-2); }
.sl-nums .sl-note { text-align: center; margin: 1.25rem 0 0; }

/* --- 3. Porównanie na pasku ogrodzenia --- */
.slc { display: grid; gap: 1rem; margin-top: 2rem; }
@media (width >= 1024px) { .slc { grid-template-columns: 1fr 1fr; } }
.slc__card { padding: 1.4rem 1.5rem; border-radius: var(--v2-radius); border: 1px solid var(--v2-border-2); background: var(--v2-surface); }
.slc__card h3 { display: flex; align-items: center; gap: .55rem; margin: 0 0 1.2rem; font-size: 1.1rem; color: var(--v2-text); }
.slc__card h3 .lucide { width: 1.3rem; height: 1.3rem; color: var(--v2-orange); fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.slc__row { display: grid; gap: .4rem; margin-bottom: 1.1rem; }
.slc__lbl { font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--v2-text-3); }
.slc__bar { position: relative; display: grid; grid-template-columns: repeat(20, 1fr); gap: 3px; height: 34px; padding: 4px; border-radius: 8px; background: rgba(var(--bgc), .6); box-shadow: 0 0 0 1px var(--v2-border) inset;
  background-image: repeating-linear-gradient(45deg, rgba(var(--ink), .04) 0 2px, transparent 2px 8px); }
.slc__bar i { border-radius: 3px; background: rgba(var(--ink), .08); }
.slc__bar--wide i.on { background: rgba(239, 68, 68, .55); animation: slc-wide 2.4s ease-in-out infinite; }
@keyframes slc-wide { 50% { background: rgba(239, 68, 68, .25); } }
.slc__bar--pin i.on { position: relative; background: #ef4444; box-shadow: 0 0 14px rgba(239, 68, 68, .9); }
.slc__bar--pin i.on::after { content: ""; position: absolute; left: 50%; top: -14px; width: 0; height: 0; translate: -50% 0; border: 6px solid transparent; border-top-color: #ef4444; animation: slc-drop 1.6s ease-in-out infinite; }
@keyframes slc-drop { 50% { translate: -50% -4px; } }
.slc__bar--cut i.ok { background: rgba(52, 211, 153, .55); }
.slc__bar--cut i.off { background: repeating-linear-gradient(135deg, rgba(var(--ink), .14) 0 3px, rgba(var(--ink), .04) 3px 6px); }
.slc__bar--cut i.x { position: relative; background: #ef4444; animation: slc-wide 1.6s infinite; }
.slc__val { font-size: .86rem; font-weight: 600; }
.slc__val--bad { color: #fca5a5; }
.slc__val--good { color: #6ee7b7; }
.slc__foot { display: flex; gap: .55rem; align-items: flex-start; margin: .4rem 0 0; padding-top: .9rem; border-top: 1px solid var(--v2-border); font-size: .86rem; }
.slc__foot .lucide { flex: none; width: 1.1rem; height: 1.1rem; margin-top: .15rem; color: var(--v2-blue); }

/* --- 4. Oscyloskopy --- */
.sl-wx { display: grid; gap: 2rem; align-items: center; }
@media (width >= 1024px) { .sl-wx { grid-template-columns: 1fr 1.2fr; gap: 3.5rem; } }
.sl-wx__wind { display: inline-flex; align-items: center; gap: .6rem; padding: .5rem .9rem; border-radius: 12px; background: rgba(111, 155, 224, .1); box-shadow: 0 0 0 1px rgba(111, 155, 224, .35) inset; }
.sl-wx__wind .lucide { width: 1.4rem; height: 1.4rem; fill: none; stroke: var(--v2-blue); stroke-width: 2; stroke-linecap: round; animation: sl-wind 2.4s ease-in-out infinite; }
@keyframes sl-wind { 50% { translate: 4px 0; } }
.sl-wx__wind b { color: var(--v2-text); font-size: 1.05rem; }
.sl-scopes { display: grid; gap: .9rem; }
.sl-scope { border-radius: 14px; overflow: hidden; border: 1px solid var(--v2-border-2); background: rgba(var(--bgc), .7);
  background-image: linear-gradient(rgba(var(--ink), .05) 1px, transparent 1px), linear-gradient(90deg, rgba(var(--ink), .05) 1px, transparent 1px); background-size: 100% 22px, 40px 100%; }
.sl-scope__head { display: flex; justify-content: space-between; align-items: center; gap: .5rem; padding: .55rem .85rem; border-bottom: 1px solid var(--v2-border); background: rgba(var(--bgc2), .85); }
.sl-scope__head b { font-size: .86rem; color: var(--v2-text); }
.sl-scope__head em { font-style: normal; font-size: .74rem; font-weight: 700; padding: .15rem .5rem; border-radius: 999px; }
.sl-scope--bad .sl-scope__head em { color: #fca5a5; background: rgba(239, 68, 68, .14); }
.sl-scope--good .sl-scope__head em { color: #6ee7b7; background: rgba(52, 211, 153, .14); }
.sl-scope svg { display: block; width: 100%; height: clamp(90px, 14vw, 120px); }
.sl-scope__thr { stroke: rgba(239, 68, 68, .6); stroke-width: 1; stroke-dasharray: 4 4; vector-effect: non-scaling-stroke; }
.sl-scope__wave { fill: none; stroke-width: 2; vector-effect: non-scaling-stroke; stroke-linejoin: round; }
.sl-scope--bad .sl-scope__wave { stroke: #fca5a5; }
.sl-scope--good .sl-scope__wave { stroke: #6ee7b7; }
.sl-scope__scan { fill: rgba(var(--ink), .5); animation: sl-scan 4s linear infinite; }
@keyframes sl-scan { from { transform: translateX(0); } to { transform: translateX(400px); } }
.sl-scope__marks circle { fill: #ef4444; transform-box: fill-box; transform-origin: center; animation: sl-mark 1.4s ease-in-out infinite; }
.sl-scope__marks circle.real { fill: var(--v2-orange); stroke: #fff; stroke-width: 1.5; }
.sl-scope--good .sl-scope__marks circle.real { fill: #34d399; }
@keyframes sl-mark { 50% { transform: scale(1.5); } }

/* film: plakat z przyciskiem */
.sl-video { position: relative; }
.sl-video__poster { position: absolute; inset: 0; z-index: 2; display: block; width: 100%; height: 100%; padding: 0; border: 0; cursor: pointer; background: #0c121e url("/assets/sensline/sensline-video-poster.jpg?v=1") center / cover no-repeat; }
.sl-video__poster::after { content: ""; position: absolute; left: 50%; top: 50%; width: 84px; height: 84px; margin: -42px 0 0 -42px; border-radius: 50%; box-shadow: 0 6px 24px rgba(0, 0, 0, .35); transition: transform .2s;
  background: rgba(242, 131, 44, .95) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M8 5v14l11-7z'/%3E%3C/svg%3E") 56% center / 42px no-repeat; }
.sl-video__poster:hover::after { transform: scale(1.08); }

/* --- 6. Magistrala z peryferiami --- */
.slb { position: relative; padding: 1.5rem 1rem 1.25rem; border-radius: var(--v2-radius); border: 1px solid var(--v2-border-2); background: var(--v2-surface); }
.slb__bus { position: absolute; left: 1.5rem; right: 1.5rem; top: 2.1rem; height: 4px; border-radius: 2px; background: rgba(242, 131, 44, .4); overflow: hidden; }
.slb__bus i { position: absolute; top: 0; left: 0; width: 60px; height: 100%; background: linear-gradient(90deg, transparent, var(--v2-orange), transparent); animation: slb-run 3s linear infinite; }
@keyframes slb-run { from { left: -60px; } to { left: 100%; } }
.slb__drops { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: .5rem; }
.slb__drops li { position: relative; display: grid; justify-items: center; gap: .45rem; padding-top: 2.3rem; text-align: center; }
.slb__drops li::before { content: ""; position: absolute; top: .9rem; width: 2px; height: 1.4rem; background: rgba(242, 131, 44, .4); }
.slb__drops li::after { content: ""; position: absolute; top: .55rem; width: 10px; height: 10px; border-radius: 50%; background: var(--v2-orange); box-shadow: 0 0 10px var(--v2-orange); animation: slb-pulse 3s infinite; animation-delay: calc(var(--i) * .6s); }
@keyframes slb-pulse { 0%, 100% { transform: scale(1); opacity: .6; } 10% { transform: scale(1.6); opacity: 1; } 25% { transform: scale(1); opacity: .6; } }
.slb__ico { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 14px; color: var(--v2-orange); background: rgba(var(--bgc2), 1); box-shadow: 0 0 0 1px var(--v2-border-2) inset; }
.slb__ico .lucide { width: 1.3rem; height: 1.3rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.slb__drops b { font-size: .82rem; line-height: 1.3; color: var(--v2-text); }
.slb__drops small { font-size: .66rem; color: var(--v2-text-3); letter-spacing: .02em; }
@media (width < 640px) {
  .slb__bus { left: 1.6rem; right: auto; top: 1.5rem; bottom: 1.5rem; width: 4px; height: auto; }
  .slb__bus i { width: 100%; height: 50px; animation-name: slb-run-v; }
  @keyframes slb-run-v { from { top: -50px; } to { top: 100%; } }
  .slb__drops { grid-template-columns: 1fr; gap: .8rem; }
  .slb__drops li { grid-template-columns: 3rem 1fr; justify-items: start; align-items: center; column-gap: .8rem; padding: 0 0 0 1.4rem; text-align: left; }
  .slb__drops li::before { top: 50%; left: .7rem; width: 1rem; height: 2px; }
  .slb__drops li::after { top: calc(50% - 5px); left: .3rem; }
  .slb__drops small { grid-column: 2; }
}
.sl-feats { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: .75rem; grid-template-columns: 1fr; }
@media (width >= 640px) { .sl-feats { grid-template-columns: 1fr 1fr; } }
@media (width >= 1024px) { .sl-feats { grid-template-columns: repeat(4, 1fr); } }
.sl-feats li { display: flex; gap: .7rem; align-items: flex-start; padding: .9rem 1rem; border-radius: 14px; background: var(--v2-surface); border: 1px solid var(--v2-border); }
.sl-feats .lucide { flex: none; width: 1.25rem; height: 1.25rem; color: var(--v2-orange); margin-top: .1rem; }
.sl-feats span { display: grid; gap: .15rem; font-size: .82rem; line-height: 1.4; color: var(--v2-text-2); }
.sl-feats b { font-size: .92rem; color: var(--v2-text); }

/* --- 7. Architektura --- */
.sla { display: grid; gap: 1rem; margin-top: 2rem; }
.sla__mod { display: grid; grid-template-columns: 2.6rem 1fr; column-gap: .75rem; align-items: center; padding: .8rem .95rem; border-radius: 14px; background: var(--v2-surface); border: 1px solid var(--v2-border-2); }
.sla__mod b { font-size: .92rem; color: var(--v2-text); }
.sla__mod small { grid-column: 2; font-size: .78rem; color: var(--v2-text-2); line-height: 1.35; }
.sla__mod .sla__ico { grid-row: span 2; }
.sla__ico { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 12px; color: var(--v2-blue); background: rgba(111, 155, 224, .12); box-shadow: 0 0 0 1px rgba(111, 155, 224, .35) inset; }
.sla__ico .lucide { width: 1.2rem; height: 1.2rem; }
.sla__remote { display: grid; gap: .75rem; grid-template-columns: 1fr 1fr; position: relative; }
.sla__remote::after { content: ""; position: absolute; left: 50%; bottom: -1rem; width: 2px; height: 1rem; background: repeating-linear-gradient(180deg, var(--v2-blue) 0 4px, transparent 4px 8px); animation: sla-dash .8s linear infinite; }
@keyframes sla-dash { to { background-position: 0 8px; } }
.sla__core { display: grid; gap: 1rem; }
.sla__bridge { position: relative; display: grid; justify-items: center; gap: .35rem; padding: 1.4rem 1.2rem; text-align: center; border-radius: 18px; border: 1px solid rgba(242, 131, 44, .5);
  background: radial-gradient(90% 120% at 50% 0%, rgba(242, 131, 44, .16), transparent 70%), rgba(var(--bgc2), .9); box-shadow: 0 0 50px -14px rgba(242, 131, 44, .55); }
.sla__ico--big { width: 3.6rem; height: 3.6rem; border-radius: 16px; color: var(--v2-orange); background: rgba(242, 131, 44, .14); box-shadow: 0 0 0 1px rgba(242, 131, 44, .45) inset; animation: sla-brain 3s ease-in-out infinite; }
.sla__ico--big .lucide { width: 1.7rem; height: 1.7rem; }
@keyframes sla-brain { 50% { box-shadow: 0 0 0 1px rgba(242, 131, 44, .8) inset, 0 0 24px rgba(242, 131, 44, .55); } }
.sla__bridge b { font-size: 1.25rem; color: var(--v2-text); }
.sla__bridge small { font-size: .84rem; color: var(--v2-text-2); }
.sla__chips { display: flex; flex-wrap: wrap; justify-content: center; gap: .3rem; margin-top: .3rem; }
.sla__chips i { font-style: normal; font-size: .72rem; font-weight: 700; padding: .2rem .55rem; border-radius: 999px; color: var(--v2-text-2); background: rgba(var(--ink), .05); box-shadow: 0 0 0 1px var(--v2-border-2) inset; }
.sla__line { position: relative; display: grid; gap: .75rem; padding-left: 1.4rem; }
.sla__line::before { content: ""; position: absolute; left: .45rem; top: 0; bottom: 0; width: 3px; border-radius: 2px; background: linear-gradient(180deg, var(--v2-orange), rgba(242, 131, 44, .25)); }
.sla__mod--node { position: relative; }
.sla__mod--node::before { content: ""; position: absolute; left: -1.15rem; top: 50%; width: .9rem; height: 2px; background: rgba(242, 131, 44, .5); }
.sla__exp { display: grid; grid-template-columns: auto 1fr auto; gap: .9rem; align-items: center; }
.sla__stack { position: relative; width: 2.8rem; height: 2.8rem; }
.sla__stack i { position: absolute; left: 0; right: 0; height: 9px; border-radius: 3px; background: rgba(111, 155, 224, .35); box-shadow: 0 0 0 1px rgba(111, 155, 224, .6) inset; animation: sla-stack 4s infinite; }
.sla__stack i:nth-child(1) { top: 0; animation-delay: .9s; } .sla__stack i:nth-child(2) { top: 11px; animation-delay: .6s; } .sla__stack i:nth-child(3) { top: 22px; animation-delay: .3s; } .sla__stack i:nth-child(4) { top: 33px; }
@keyframes sla-stack { 0%, 100% { background: rgba(111, 155, 224, .25); } 20%, 60% { background: var(--v2-blue); } }
.sla__total { display: grid; justify-items: center; padding: .6rem .9rem; border-radius: 14px; text-align: center; background: rgba(242, 131, 44, .1); box-shadow: 0 0 0 1px rgba(242, 131, 44, .4) inset; }
.sla__total b { font-size: 1.7rem; font-weight: 800; line-height: 1; color: var(--v2-orange); letter-spacing: -.03em; }
.sla__total small { font-size: .7rem; color: var(--v2-text-2); }
.sla__total span { font-size: .68rem; font-weight: 700; color: var(--v2-text-3); }
@media (width >= 1024px) {
  .sla { grid-template-columns: 1fr; max-width: 1000px; margin-inline: auto; }
  .sla__remote { max-width: 620px; margin-inline: auto; width: 100%; }
  .sla__core { grid-template-columns: 1fr 1.25fr; align-items: center; gap: 2.5rem; }
  .sla__line { padding-left: 2rem; }
  .sla__line::before { left: -1.5rem; top: 50%; bottom: auto; width: 2.6rem; height: 3px; background: linear-gradient(90deg, rgba(242, 131, 44, .25), var(--v2-orange)); }
  .sla__line::after { content: ""; position: absolute; left: 1rem; top: 1.2rem; bottom: 1.2rem; width: 3px; border-radius: 2px; background: var(--v2-orange); opacity: .6; }
  .sla__mod--node::before { left: -1rem; width: 1rem; }
  .sla__exp { max-width: 620px; margin-inline: auto; width: 100%; }
}

/* --- 8. Wykres zasięgu --- */
.sl-range { display: grid; gap: 2rem; align-items: center; }
@media (width >= 1024px) { .sl-range { grid-template-columns: 1fr 1.3fr; gap: 3.5rem; } }
.sl-range__legend { list-style: none; margin: 1rem 0; padding: 0; display: flex; gap: 1.25rem; }
.sl-range__legend li { display: inline-flex; align-items: center; gap: .45rem; font-size: .85rem; font-weight: 600; color: var(--v2-text); }
.sl-range__legend li::before { content: ""; width: 14px; height: 14px; border-radius: 4px; }
.sl-range__legend .std::before { background: var(--v2-blue); }
.sl-range__legend .pre::before { background: var(--v2-orange); }
.slr { display: grid; gap: 1.25rem; padding: 1.4rem 1.5rem; border-radius: var(--v2-radius); border: 1px solid var(--v2-border-2); background: var(--v2-surface); }
.slr__grp h3 { margin: 0 0 .7rem; font-size: .8rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--v2-text-3); }
.slr__row { display: grid; grid-template-columns: 3rem 1fr; gap: .75rem; align-items: center; margin-bottom: .6rem; }
.slr__row > span { font-size: .9rem; font-weight: 800; color: var(--v2-text); }
.slr__bars { display: grid; gap: 4px; }
.slr__bars i { position: relative; display: block; height: 20px; width: var(--w); min-width: 4px; border-radius: 0 6px 6px 0; animation: slr-grow 1.4s var(--v2-ease) both; }
@keyframes slr-grow { from { width: 4px; } }
.slr__bars i.std { background: linear-gradient(90deg, rgba(111, 155, 224, .35), var(--v2-blue)); }
.slr__bars i.pre { background: linear-gradient(90deg, rgba(242, 131, 44, .35), var(--v2-orange)); }
.slr__bars i.na { background: rgba(var(--ink), .08); }
.slr__bars em { position: absolute; left: calc(100% + .45rem); top: 50%; translate: 0 -50%; font-style: normal; font-size: .74rem; font-weight: 700; color: var(--v2-text-2); white-space: nowrap; font-variant-numeric: tabular-nums; }
.slr__bars i[style*="--w:100%"] em, .slr__bars i[style*="--w:76.9%"] em { left: auto; right: .5rem; color: #ffffff; }

/* --- 9. Plan + specyfikacja --- */
.sl-plan { display: grid; gap: 2rem; align-items: center; }
@media (width >= 1024px) { .sl-plan { grid-template-columns: 1.1fr 1fr; gap: 3rem; } }
.sl-plan__fig { margin: 0; padding: .6rem; border-radius: var(--v2-radius); background: #ffffff; box-shadow: 0 0 0 1px var(--v2-border-2), 0 30px 60px -30px rgba(0, 0, 0, .8); }
.sl-plan__fig img, .sl-plan__soft { display: block; width: 100%; height: auto; border-radius: 10px; }
.sl-plan__soft { margin-top: 1rem; border: 1px solid var(--v2-border-2); }
.sl-spec { margin-top: 2.5rem; border-radius: var(--v2-radius); border: 1px solid var(--v2-border-2); background: var(--v2-surface); }
.sl-spec summary { display: flex; align-items: center; gap: .6rem; padding: 1.05rem 1.3rem; cursor: pointer; list-style: none; font-weight: 700; color: var(--v2-text); }
.sl-spec summary::-webkit-details-marker { display: none; }
.sl-spec summary::after { content: "+"; margin-left: auto; font-size: 1.3rem; color: var(--v2-orange); transition: transform .3s; }
.sl-spec[open] summary::after { transform: rotate(45deg); }
.sl-spec summary .lucide { width: 1.2rem; height: 1.2rem; color: var(--v2-orange); }
.sl-spec__grid { display: grid; gap: 0 2rem; padding: 0 1.3rem 1.2rem; }
@media (width >= 900px) { .sl-spec__grid { grid-template-columns: 1fr 1fr; } }
.sl-spec table { width: 100%; border-collapse: collapse; font-size: .88rem; }
.sl-spec th, .sl-spec td { padding: .55rem 0; border-bottom: 1px solid var(--v2-border); text-align: left; vertical-align: top; }
.sl-spec th { font-weight: 500; color: var(--v2-text-2); padding-right: 1rem; }
.sl-spec td { font-weight: 700; color: var(--v2-text); text-align: right; }

/* --- 10. CTA --- */
.sl-cta2 { display: grid; gap: 1.5rem; align-items: center; padding: clamp(1.5rem, 4vw, 2.5rem); border-radius: var(--v2-radius); border: 1px solid rgba(242, 131, 44, .35);
  background: radial-gradient(80% 140% at 100% 0%, rgba(242, 131, 44, .16), transparent 60%), var(--v2-surface); }
@media (width >= 900px) { .sl-cta2 { grid-template-columns: 1fr auto; } }
.sl-cta2 h2 { margin: 0 0 .4rem; font-size: clamp(1.4rem, 3vw, 2rem); letter-spacing: -.03em; color: var(--v2-text); }
.sl-cta2 p { margin: 0; }
.sl-cta2__btns { display: flex; flex-wrap: wrap; gap: .6rem; }

/* telefon i drobne poprawki */
.sl-num b { font-size: clamp(1.2rem, 3.8vw, 1.7rem); }
@media (width >= 1024px) { .sla__remote::after { display: none; } }
@media (width < 640px) {
  .slf { overflow: hidden; }
  .slf__svg { width: 185%; max-width: none; margin-left: -68%; }
  .slf__dim text, .slf__tag text { font-size: 17px; }
  .sla__remote { grid-template-columns: 1fr; }
  .sla__remote::after { display: none; }
  .sla__exp { grid-template-columns: 1fr auto; }
  .sla__stack { display: none; }
}
@media (prefers-reduced-motion: reduce) { .sl * { animation: none !important; } .slf__zone, .slf__tag, .slf__lead { opacity: 1; } }

/* jasny motyw: czerwienie i zielenie ciemniejsze (kontrast) */
html[data-theme="light"] .slf__tag text { fill: #b91c1c; }
html[data-theme="light"] .slc__val--bad, html[data-theme="light"] .sl-scope--bad .sl-scope__head em { color: #b91c1c; }
html[data-theme="light"] .slc__val--good, html[data-theme="light"] .sl-scope--good .sl-scope__head em { color: #047857; }
html[data-theme="light"] .sl-scope--bad .sl-scope__wave { stroke: #dc2626; }
html[data-theme="light"] .sl-scope--good .sl-scope__wave { stroke: #059669; }
html[data-theme="light"] .slc__bar--cut i.ok { background: rgba(5, 150, 105, .55); }
/* --- Nakładka filmu SensLine (animowany plan obiektu, klik = film) --- */
.sl-video__poster.slp { background: #070b13; overflow: hidden; text-align: left; font: inherit; color: #ffffff; }
.sl-video__poster.slp::after { display: none; }
.slp__plan { position: absolute; inset: 0; width: 100%; height: 100%; }
.slp__dot { fill: rgba(255,255,255,.09); }
.slp__pv rect { fill: rgba(111, 155, 224, .16); stroke: rgba(111, 155, 224, .38); stroke-width: 1; }
.slp__pv rect:nth-child(odd) { fill: rgba(111, 155, 224, .22); }
.slp__bld { fill: rgba(255,255,255,.1); stroke: rgba(255,255,255,.28); stroke-width: 1; }
.slp__fence { fill: none; stroke: rgba(242, 131, 44, .55); stroke-width: 2.5; stroke-linejoin: round; }
.slp__nodes { fill: none; stroke: #f2832c; stroke-width: 6; stroke-linecap: round; stroke-dasharray: 0 14; }
.slp__pulse { fill: none; stroke: #ffd2ad; stroke-width: 4; stroke-linecap: round; stroke-dasharray: 40 960; filter: drop-shadow(0 0 6px #f2832c); animation: slp-run 5s linear infinite; }
@keyframes slp-run { to { stroke-dashoffset: -1000; } }
.slp__gate { stroke: #6f9be0; stroke-width: 4; stroke-linecap: round; stroke-dasharray: 2 6; }
.slp__zone { stroke: #ef4444; stroke-width: 9; stroke-linecap: round; opacity: 0; animation: slp-alarm 5s infinite; }
.slp__hit { fill: #ef4444; stroke: #fecaca; stroke-width: 2; opacity: 0; animation: slp-alarm 5s infinite; }
.slp__ripple { fill: none; stroke: #ef4444; stroke-width: 2; transform-box: fill-box; transform-origin: center; opacity: 0; animation: slp-rip 5s infinite; }
.slp__ripple--2 { animation-delay: .5s; }
@keyframes slp-alarm { 0%, 40% { opacity: 0; } 46%, 88% { opacity: 1; } 96%, 100% { opacity: 0; } }
@keyframes slp-rip { 0%, 44% { transform: scale(1); opacity: 0; } 46% { opacity: .9; } 66% { transform: scale(6); opacity: 0; } 100% { opacity: 0; } }
.slp__tag { opacity: 0; animation: slp-alarm 5s infinite; }
.slp__tag rect { fill: rgba(12,18,30,.92); stroke: #ef4444; stroke-width: 1.2; }
.slp__tag text { font: 700 11px/1 var(--font-base); fill: #fecaca; }
.slp__bridge rect { fill: rgba(12,18,30,.92); stroke: #6f9be0; stroke-width: 1.2; }
.slp__bridge text { font: 700 10px/1 var(--font-base); fill: #9ec0f0; }
.slp__link { fill: none; stroke: rgba(111, 155, 224, .7); stroke-width: 1.5; stroke-dasharray: 3 4; animation: slp-dash 1s linear infinite; }
@keyframes slp-dash { to { stroke-dashoffset: -14; } }
.slp__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7,11,19,.96) 0%, rgba(7,11,19,.82) 34%, rgba(7,11,19,.1) 62%, transparent 100%); }
.slp__copy { position: absolute; left: clamp(1.2rem, 5%, 3.5rem); top: 50%; translate: 0 -50%; display: grid; gap: clamp(.5rem, 1.4vw, 1rem); max-width: min(46%, 30rem); }
.slp__kicker { display: inline-flex; align-items: center; gap: .5rem; font-size: clamp(.62rem, 1.1vw, .8rem); font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #f2832c; }
.slp__kicker i { width: 8px; height: 8px; border-radius: 50%; background: #ef4444; box-shadow: 0 0 10px #ef4444; animation: sw-blink 1.2s infinite; }
.slp__title { font-size: clamp(1.05rem, 3vw, 2.25rem); font-weight: 800; line-height: 1.1; letter-spacing: -.03em; color: #ffffff; text-wrap: balance; }
.slp__chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.slp__chips em { font-style: normal; font-size: clamp(.62rem, 1.05vw, .8rem); font-weight: 600; padding: .3rem .65rem; border-radius: 999px; color: #e7ecf3; background: rgba(255,255,255,.07); box-shadow: 0 0 0 1px rgba(255,255,255,.16) inset; }
.slp__play { position: absolute; left: 67%; top: 52%; translate: -50% -50%; display: grid; justify-items: center; gap: .7rem; }
.slp__btn { position: relative; z-index: 1; display: grid; place-items: center; width: clamp(64px, 9vw, 104px); aspect-ratio: 1; border-radius: 50%; background: #f2832c; box-shadow: 0 10px 40px -6px rgba(242, 131, 44, .8), 0 0 0 1px rgba(255,255,255,.25) inset; transition: transform .3s var(--v2-ease), background .3s; }
.slp__btn svg { width: 44%; fill: #ffffff; margin-left: 8%; }
.slp__ring { position: absolute; top: 0; left: 50%; translate: -50% 0; width: clamp(64px, 9vw, 104px); aspect-ratio: 1; border-radius: 50%; border: 2px solid rgba(242, 131, 44, .7); animation: slp-ring 2.4s ease-out infinite; }
.slp__ring--2 { animation-delay: 1.2s; }
@keyframes slp-ring { from { transform: scale(1); opacity: .9; } to { transform: scale(1.9); opacity: 0; } }
.slp__play b { font-size: clamp(.7rem, 1.2vw, .9rem); font-weight: 700; letter-spacing: .06em; color: #ffffff; text-shadow: 0 2px 10px rgba(0, 0, 0, .7); }
.slp__brand { position: absolute; right: clamp(.8rem, 3%, 2rem); bottom: clamp(.6rem, 3%, 1.6rem); font-size: clamp(.8rem, 1.6vw, 1.2rem); font-weight: 800; letter-spacing: -.02em; color: rgba(255,255,255,.85); }
.slp__brand small { font-size: .62em; font-weight: 600; letter-spacing: .12em; color: rgba(255,255,255,.55); }
.sl-video__poster.slp:hover .slp__btn, .sl-video__poster.slp:focus-visible .slp__btn { transform: scale(1.08); background: #ff9442; }
@media (width < 640px) {
  .slp__chips, .slp__brand { display: none; }
  .slp__copy { max-width: 52%; top: auto; bottom: 1rem; translate: none; }
  .slp__play { left: .9rem; top: .9rem; translate: none; } .slp__btn, .slp__ring { width: 50px; } .slp__ring { left: 0; translate: none; }
  .slp__play b { display: none; }
}
@media (prefers-reduced-motion: reduce) { .slp * { animation: none !important; } .slp__zone, .slp__hit, .slp__tag { opacity: 1; } }
html[data-theme="light"] .sl-video__poster.slp, html[data-theme="light"] .slp__title { color: #ffffff; }
/* --- Plan obiektu (SVG, odtworzenie oryginału, animowany) --- */
.sl-plan__fig--svg { padding: .4rem; }
.spl { display: block; width: 100%; height: auto; border-radius: 10px; }
.spl-title { font: 800 30px/1 var(--font-base); fill: #1690d6; letter-spacing: -.01em; }
.spl-fence { fill: none; stroke: #7a4fa6; stroke-width: 7; stroke-dasharray: 9 7; animation: spl-march 1.6s linear infinite; }
@keyframes spl-march { to { stroke-dashoffset: -32; } }
.spl-in { fill: none; stroke: #b9a3d8; stroke-width: 1.4; }
.spl-ln { fill: none; stroke: #9c7fc6; stroke-width: 1.4; }
.spl-fill { fill: #ffffff; stroke: #9c7fc6; stroke-width: 1.4; }
.spl-fill2 { fill: #ffffff; stroke: #1690d6; stroke-width: 1.4; }
.spl-led { fill: none; stroke: #1690d6; stroke-width: 1.6; animation: spl-led 2s infinite; }
.spl-led--2 { animation-delay: 1s; }
@keyframes spl-led { 50% { fill: #1690d6; } }
.spl-small { font: 500 12px/1 var(--font-base); fill: #4a3a6b; }
.spl-wm text { font: 800 22px/1 var(--font-base); fill: #7a4fa6; letter-spacing: -.01em; }
.spl-wm .spl-wm__sub { font: 700 5.5px/1 var(--font-base); fill: #7a4fa6; letter-spacing: .08em; }
.spl-cab { fill: none; stroke: #1690d6; stroke-width: 4; stroke-linecap: round; }
.spl-cab--w { stroke: #bfe4fb; stroke-width: 2.4; stroke-dasharray: 10 22; animation: spl-flow 1.4s linear infinite; }
@keyframes spl-flow { to { stroke-dashoffset: -32; } }
.spl-cl { font: 700 11px/1 var(--font-base); fill: #1690d6; }
.spl-plus { font: 700 22px/1 var(--font-base); fill: #1690d6; }
.spl-gsm circle:first-child { fill: #ffffff; stroke: #1690d6; stroke-width: 1.8; }
.spl-gsm path { fill: none; stroke: #1690d6; stroke-width: 1.8; stroke-linecap: round; }
.spl-wave { fill: none; stroke: #1690d6; stroke-width: 1.5; transform-box: fill-box; transform-origin: center; animation: spl-wave 2.4s ease-out infinite; }
.spl-wave--2 { animation-delay: 1.2s; }
@keyframes spl-wave { from { transform: scale(1); opacity: .8; } to { transform: scale(2.6); opacity: 0; } }
.spl-pill rect { fill: #1690d6; }
.spl-pill text { font: 700 14.5px/1 var(--font-base); fill: #ffffff; }
.spl-pill { animation: spl-pill 6s infinite; animation-delay: var(--d); }
@keyframes spl-pill { 0%, 6%, 100% { filter: none; } 3% { filter: brightness(1.25) drop-shadow(0 0 8px rgba(22,144,214,.8)); } }
.spl-pill--core rect { animation: spl-core 2.4s ease-in-out infinite; }
@keyframes spl-core { 50% { fill: #0f7fc2; } }
.spl-zone { stroke: #ef4444; stroke-width: 9; stroke-linecap: round; opacity: 0; animation: spl-al 6s infinite; }
.spl-hit { fill: #ef4444; stroke: #ffffff; stroke-width: 2; opacity: 0; animation: spl-al 6s infinite; }
.spl-rip { fill: none; stroke: #ef4444; stroke-width: 2; transform-box: fill-box; transform-origin: center; opacity: 0; animation: spl-rip 6s infinite; }
.spl-rip--2 { animation-delay: .5s; }
.spl-alarm { opacity: 0; animation: spl-al 6s infinite; }
.spl-alarm rect { fill: #ffffff; stroke: #ef4444; stroke-width: 1.5; }
.spl-alarm text { font: 700 12px/1 var(--font-base); fill: #c81e1e; }
@keyframes spl-al { 0%, 45% { opacity: 0; } 50%, 90% { opacity: 1; } 96%, 100% { opacity: 0; } }
@keyframes spl-rip { 0%, 48% { transform: scale(1); opacity: 0; } 50% { opacity: .9; } 70% { transform: scale(5); opacity: 0; } 100% { opacity: 0; } }

/* --- Aplikacja SensLine na laptopie (HTML, animowana) --- */
.slapp { display: grid; grid-template-columns: auto 1fr; gap: 1rem; align-items: center; margin-top: 1.2rem; padding: 1rem; border-radius: 14px; background: linear-gradient(135deg, #eef7fd, #ffffff 60%); box-shadow: 0 0 0 1px rgba(22,144,214,.18) inset; }
.slapp__side { display: grid; gap: 1.6rem; }
.slapp__ic { position: relative; display: grid; place-items: center; width: 3.4rem; aspect-ratio: 1; border-radius: 50%; border: 1.5px solid #1690d6; background: #ffffff; color: #1690d6; }
.slapp__ic svg { width: 52%; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.slapp__ic small { position: absolute; bottom: -1.15rem; font-size: .62rem; font-weight: 800; letter-spacing: .08em; color: #1690d6; }
.slapp__ic::after { content: ""; position: absolute; inset: -1px; border-radius: 50%; border: 1.5px solid #1690d6; animation: slp-ring 2.6s ease-out infinite; }
.slapp__ic:nth-child(2)::after { animation-delay: 1.3s; }
.slapp__laptop { min-width: 0; }
.slapp__screen { overflow: hidden; border: 10px solid #1d1f24; border-bottom-width: 14px; border-radius: 14px 14px 4px 4px; background: #2a2b2f; box-shadow: 0 20px 40px -18px rgba(0,0,0,.6); }
.slapp__base { height: 10px; margin: 0 -4%; border-radius: 0 0 14px 14px; background: linear-gradient(180deg, #c9ccd2, #9ea3ab); }
.slapp__bar { display: flex; align-items: center; gap: .4rem; padding: .25rem .5rem; background: #f2f2f2; font-size: .58rem; color: #444; }
.slapp__bar i { width: 7px; height: 7px; border-radius: 50%; background: #555; }
.slapp__live { margin-left: auto; padding: .05rem .35rem; border-radius: 4px; font-size: .52rem; color: #ffffff; background: #22a35a; animation: sw-blink 1.6s infinite; }
.slapp__btns { display: flex; gap: .5rem; padding: .6rem .7rem .5rem; }
.slapp__btns b { padding: .22rem .9rem; border-radius: 2px; font-size: .62rem; font-weight: 600; color: #ffffff; background: #8e58b8; }
.slapp__btns b.is-on { background: #a96bd6; box-shadow: 0 0 0 1px rgba(255,255,255,.4) inset; }
.slapp__tbl { position: relative; margin: 0 .7rem .7rem; overflow: hidden; }
.slapp__tbl table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: .6rem; color: #e6e6e6; }
.slapp__tbl th { height: 4.2rem; vertical-align: bottom; padding: 0 0 .35rem; background: #1f2023; color: #e0408f; font-weight: 600; }
.slapp__tbl th span { display: inline-block; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; }
.slapp__tbl .c-typ { width: 8%; } .slapp__tbl .c-dev { width: 24%; }
.slapp__tbl td { height: 1.45rem; text-align: center; border-top: 1px solid #36373c; }
.slapp__tbl tbody tr:nth-child(odd) td { background: #2f3034; }
.slapp__tbl tbody tr:nth-child(even) td { background: #393a3e; }
.slapp__tbl td.c-dev { text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.slapp__tbl i { font-style: normal; font-weight: 800; }
.slapp__tbl .ok { color: #2fd27a; }
.slapp__tbl .no { color: #e0408f; }
.slapp__tbl td.is-live { position: relative; }
.slapp__tbl td.is-live .al { position: absolute; inset: 0; display: grid; place-items: center; color: #ffffff; background: #e03a3a; opacity: 0; animation: slapp-al 6s infinite; }
@keyframes slapp-al { 0%, 48% { opacity: 0; } 52%, 86% { opacity: 1; } 90%, 100% { opacity: 0; } }
.slapp__tbl tbody tr { animation: slapp-row 6s infinite; animation-delay: calc(var(--r) * .4s); }
@keyframes slapp-row { 0%, 6%, 100% { filter: none; } 3% { filter: brightness(1.35); } }
.slapp__scan { position: absolute; left: 0; right: 0; top: 4.2rem; height: 1.45rem; background: linear-gradient(90deg, transparent, rgba(169,107,214,.25), transparent); animation: slapp-scan 6s linear infinite; pointer-events: none; }
@keyframes slapp-scan { from { transform: translateY(0); } to { transform: translateY(calc(1.45rem * 7)); } }
@media (width < 640px) { .slapp { grid-template-columns: 1fr; } .slapp__side { grid-auto-flow: column; justify-content: center; gap: 2rem; margin-bottom: 1rem; } .slapp__tbl table { font-size: .5rem; } }
@media (prefers-reduced-motion: reduce) { .spl *, .slapp * { animation: none !important; } }
/* ==========================================================
   MOTYW JASNY (html[data-theme="light"]), przełącznik w nagłówku
   ========================================================== */
html[data-theme="light"] {
  --v2-bg: #f6f8fb; --v2-bg-2: #eef2f7;
  --v2-surface: rgba(13, 23, 38, .03); --v2-surface-2: rgba(13, 23, 38, .055);
  --v2-border: rgba(13, 23, 38, .09); --v2-border-2: rgba(13, 23, 38, .16);
  --v2-text: #0d1726; --v2-text-2: #46546a; --v2-text-3: #7b8799;
  --v2-orange: #e46f17; --v2-orange-2: #c25a0c; --v2-blue: #2c5aa0;
  --v2-shadow: 0 1px 2px rgba(13, 23, 38, .05), 0 14px 34px -18px rgba(13, 23, 38, .22);
  --ink: 13, 23, 38; --bgc: 246, 248, 251; --bgc2: 255, 255, 255; --v2-strong: #0d1726; --v2-inv: #fff;
  --color-primary: var(--v2-blue); --color-primary-dark: var(--v2-text); --color-accent: var(--v2-orange); --color-accent-2: var(--v2-orange);
  --color-text: var(--v2-text-2); --color-gray-100: var(--v2-bg-2); --color-gray-300: var(--v2-border-2); --color-gray-500: var(--v2-text-3);
  --shadow-sm: var(--v2-shadow); --shadow-md: 0 2px 4px rgba(13, 23, 38, .06), 0 24px 48px -20px rgba(13, 23, 38, .28);
  color-scheme: light;
}
/* Te elementy zostają ciemne także w jasnym motywie: okna-grafiki, karty na zdjęciach, lightbox, stopka */
html[data-theme="light"] :is(.sw, .h-chip, .lb, .site-footer, .sc-cc) {
  --v2-bg: #070b13; --v2-bg-2: #0a101b;
  --v2-surface: rgba(255, 255, 255, .028); --v2-surface-2: rgba(255, 255, 255, .05);
  --v2-border: rgba(255, 255, 255, .08); --v2-border-2: rgba(255, 255, 255, .14);
  --v2-text: #e7ecf3; --v2-text-2: #a3afc0; --v2-text-3: #6f7c8f; --v2-orange: #f2832c; --v2-blue: #6f9be0;
  --ink: 255, 255, 255; --bgc: 7, 11, 19; --bgc2: 12, 18, 30; --v2-strong: #fff; --v2-inv: #0a0f1a;
  color-scheme: dark;
}
html[data-theme="light"] body::before {
  background: radial-gradient(60rem 30rem at 85% -10%, rgba(44, 90, 160, .08), transparent 60%), radial-gradient(40rem 25rem at -10% 10%, rgba(228, 111, 23, .06), transparent 60%);
}
html[data-theme="light"] ::selection { background: rgba(228, 111, 23, .25); color: #0d1726; }
html[data-theme="light"] .site-header__logo img { content: url("/assets/pages/SC_Logo_light.png"); }
html[data-theme="light"] .site-header.is-scrolled { box-shadow: 0 8px 24px -16px rgba(13, 23, 38, .25); }
html[data-theme="light"] .btn { box-shadow: 0 1px 0 rgba(255, 255, 255, .3) inset, 0 8px 22px -10px rgba(228, 111, 23, .6); }
html[data-theme="light"] .btn--ghost { box-shadow: 0 0 0 1px var(--v2-border-2) inset; }
html[data-theme="light"] .h-hero__title { background: linear-gradient(180deg, #0d1726 40%, #34445c); -webkit-background-clip: text; background-clip: text; }
html[data-theme="light"] .feature-stat__title { background: linear-gradient(180deg, #0d1726, #3b4a63); -webkit-background-clip: text; background-clip: text; }
html[data-theme="light"] :is(.card-solution, .offer-card, .info-card, .solution-card, .product-card, .feature-stat, .products-sidebar, .page-intro, .h-tile, .s-ind__item, .pc, .sl-card, .intro-banner__inner, .p-doc) { background: #fff; }
html[data-theme="light"] .h-cta__panel { background: radial-gradient(60% 120% at 50% 0%, rgba(228, 111, 23, .12), transparent 60%), #fff; }
html[data-theme="light"] .h-visual__frame, html[data-theme="light"] .v-frame__glass { background: linear-gradient(180deg, #ffffff, #eef2f7); box-shadow: 0 0 0 1px var(--v2-border-2) inset, 0 40px 80px -30px rgba(13, 23, 38, .35); }
html[data-theme="light"] .pc__tags span { color: #b4520a; background: rgba(228, 111, 23, .1); }
html[data-theme="light"] .h-tc b.is-tick { color: #ffd2ad; }
html[data-theme="light"] .logo-grid img { filter: grayscale(1) contrast(1.05); mix-blend-mode: multiply; opacity: .6; }
html[data-theme="light"] .logo-grid img:hover { opacity: 1; filter: none; }
html[data-theme="light"] .contact-map iframe { filter: none; }
html[data-theme="light"] :is(.lang-switcher__select, .p-sort) option { background: #fff; color: #0d1726; }
html[data-theme="light"] .responsive-video, html[data-theme="light"] .insert-video { box-shadow: 0 30px 70px -30px rgba(13, 23, 38, .45); }
html[data-theme="light"] .s-pillar + .s-pillar, html[data-theme="light"] .section + .section::before { opacity: .9; }

/* Przełącznik motywu */
.theme-toggle {
  position: relative; display: inline-grid; place-items: center; flex: none; width: 36px; height: 36px; margin-left: .75rem; padding: 0;
  border-radius: 999px; border: 1px solid var(--v2-border-2); background: var(--v2-surface-2); color: var(--v2-text); cursor: pointer;
  transition: background .25s, border-color .25s, transform .3s var(--v2-ease);
}
.theme-toggle:hover { border-color: rgba(228, 111, 23, .5); transform: rotate(-12deg); }
.theme-toggle svg { grid-area: 1 / 1; width: 18px; height: 18px; transition: transform .5s var(--v2-ease), opacity .3s; }
.theme-toggle .ic-moon { opacity: 0; transform: rotate(-90deg) scale(.5); }
html[data-theme="light"] .theme-toggle .ic-sun { opacity: 0; transform: rotate(90deg) scale(.5); }
html[data-theme="light"] .theme-toggle .ic-moon { opacity: 1; transform: none; }
@media (width < 1024px) {
  .theme-toggle { margin-left: auto; }
  .nav-toggle { order: 1; margin-left: 30px; }
}
html.theme-anim, html.theme-anim body, html.theme-anim *:not(.h-scene-img):not(img) { transition: background-color .45s ease, color .45s ease, border-color .45s ease, fill .45s ease !important; }
