/* ==========================================================================
   SUNEKO — arkusz stylów strony publicznej
   Zasady: bez inline-stylów (CSP), czcionka lokalna (Poppins), kolory jako zmienne,
   motyw przewodni: „rysunek techniczny” — ścięte rogi, cienkie linie, sześciokąty.
   ========================================================================== */

/* ---------- czcionki ---------- */
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 300; font-display: swap; src: url("/static/fonts/poppins-300.woff") format("woff"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 400; font-display: swap; src: url("/static/fonts/poppins-400.woff") format("woff"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 500; font-display: swap; src: url("/static/fonts/poppins-500.woff") format("woff"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 700; font-display: swap; src: url("/static/fonts/poppins-700.woff") format("woff"); }

/* ---------- zmienne ---------- */
:root {
  --ink: #34443c;
  --muted: #5b6b63;
  --deep: #15201c;
  --deep-2: #26312d;
  --green: #1d7540;
  --green-h: #16603a;
  --lime: #27c66a;
  --mint: #eaf7ef;
  --mist: #f2f6f3;
  --silver: #c9d3cd;
  --silver-2: #e1e8e3;
  --white: #fff;
  --danger: #b3261e;
  --font: "Poppins", "Helvetica Neue", Arial, sans-serif;
  --gut: clamp(16px, 4vw, 40px);
  --maxw: 1240px;
  --hdr: 76px;
  --c: 14px;
  --sec: clamp(56px, 7.5vw, 112px);
  --h1: clamp(2rem, 1.2rem + 3.2vw, 3.5rem);
  --h2: clamp(1.625rem, 1.15rem + 1.7vw, 2.375rem);
  --h3: clamp(1.125rem, 1.04rem + .4vw, 1.3125rem);
  color-scheme: light;
}

/* ---------- reset i baza ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--hdr) + 12px); }
body { margin: 0; background: #fff; color: var(--ink); font: 400 1rem/1.65 var(--font); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: hidden; }
img, svg, canvas, video { display: block; max-width: 100%; }
img { height: auto; }
h1, h2, h3, h4 { margin: 0; font-weight: 500; line-height: 1.2; color: var(--ink); text-wrap: balance; }
p { margin: 0 0 1em; }
ul, ol { margin: 0; padding: 0; list-style: none; }
a { color: var(--green); text-underline-offset: .2em; text-decoration-thickness: 1px; }
a:hover { color: var(--green-h); text-decoration-thickness: 2px; }
button { font: inherit; color: inherit; }
address { font-style: normal; }
hr { border: 0; border-top: 1px solid var(--silver-2); margin: 2rem 0; }
code { font: .875em ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; background: var(--mist); padding: .1em .35em; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid var(--green); outline-offset: 3px; }
::selection { background: var(--green); color: #fff; }

.sr { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip { position: absolute; left: 12px; top: -100px; z-index: 1000; background: var(--green); color: #fff; padding: 12px 18px; text-decoration: none; font-weight: 500; }
.skip:focus { top: 12px; outline-color: #fff; }
.wrap { width: min(100% - 2 * var(--gut), var(--maxw)); margin-inline: auto; }
.linklike { background: none; border: 0; padding: 0; cursor: pointer; color: inherit; text-decoration: underline; text-underline-offset: .2em; }
.linklike:hover { text-decoration-thickness: 2px; }
main:focus { outline: none; }

/* ---------- ścięty narożnik (motyw przewodni) ---------- */
.cut { position: relative; isolation: isolate; --bd: var(--silver); --fill: #fff; }
.cut::before, .cut::after { content: ""; position: absolute; inset: 0; pointer-events: none; }
.cut::after { z-index: -2; background: var(--fill); clip-path: polygon(0 0, calc(100% - var(--c)) 0, 100% var(--c), 100% 100%, var(--c) 100%, 0 calc(100% - var(--c))); }
.cut::before { z-index: -1; background: var(--bd); clip-path: polygon(evenodd,
  0 0, calc(100% - var(--c)) 0, 100% var(--c), 100% 100%, var(--c) 100%, 0 calc(100% - var(--c)), 0 0,
  1px 1px, calc(100% - var(--c) - .41px) 1px, calc(100% - 1px) calc(var(--c) + .41px), calc(100% - 1px) calc(100% - 1px), calc(var(--c) + .41px) calc(100% - 1px), 1px calc(100% - var(--c) - .41px), 1px 1px); }
a.cut:hover, a.cut:focus-visible { --bd: var(--green); }

/* ---------- przyciski ---------- */
.btn { --bg: var(--green); --fg: #fff; --cb: 10px; position: relative; isolation: isolate; display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 12px 28px; margin: 0; border: 0; background: none; color: var(--fg); font: 500 .9375rem/1.25 var(--font); letter-spacing: .02em; text-align: center; text-decoration: none; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.btn::before, .btn::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; transition: background-color .15s; }
.btn::before { background: var(--bg); clip-path: polygon(0 0, calc(100% - var(--cb)) 0, 100% var(--cb), 100% 100%, var(--cb) 100%, 0 calc(100% - var(--cb))); }
.btn:hover { color: var(--fg); }
.btn:hover::before { --bg: var(--green-h); background: var(--green-h); }
.btn .ic { flex: none; }
.btn--sm { min-height: 40px; padding: 9px 20px; font-size: .8125rem; --cb: 8px; }
.btn--lg { min-height: 58px; padding: 16px 38px; font-size: 1rem; --cb: 12px; }
.btn--ghost { --fg: var(--green); }
.btn--ghost::before { background: var(--green); clip-path: polygon(evenodd,
  0 0, calc(100% - var(--cb)) 0, 100% var(--cb), 100% 100%, var(--cb) 100%, 0 calc(100% - var(--cb)), 0 0,
  1.5px 1.5px, calc(100% - var(--cb) - .62px) 1.5px, calc(100% - 1.5px) calc(var(--cb) + .62px), calc(100% - 1.5px) calc(100% - 1.5px), calc(var(--cb) + .62px) calc(100% - 1.5px), 1.5px calc(100% - var(--cb) - .62px), 1.5px 1.5px); }
.btn--ghost:hover { --fg: var(--green-h); }
.btn--ghost:hover::before { background: var(--green-h); }
.btn--ghost::after { background: transparent; clip-path: polygon(0 0, calc(100% - var(--cb)) 0, 100% var(--cb), 100% 100%, var(--cb) 100%, 0 calc(100% - var(--cb))); z-index: -2; }
.btn--ghost:hover::after { background: var(--mint); }
.btn--light { --bg: #fff; --fg: var(--green); }
.btn--light:hover { --fg: var(--deep); }
.btn--light:hover::before { background: var(--lime); }
.btn--quiet { --fg: var(--green); min-height: 0; padding: 4px 2px; text-decoration: underline; text-underline-offset: .25em; }
.btn--quiet::before { display: none; }
.btn[disabled], .btn[aria-disabled="true"] { opacity: .55; cursor: not-allowed; }
.on-dark .btn--ghost, .sec--deep .btn--ghost, .cta .btn--ghost { --fg: #fff; }
.on-dark .btn--ghost::before, .sec--deep .btn--ghost::before, .cta .btn--ghost::before { background: rgba(255, 255, 255, .7); }
.more { font-weight: 500; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .3em; text-decoration-color: color-mix(in srgb, var(--green) 45%, transparent); }
.more:hover { text-decoration-color: currentColor; }

/* ---------- wersja niemiecka: długie złożenia (Qualitätsmanagement, Oberflächenveredelung) dzielą się na węższych kolumnach zamiast wystawać poza ekran ---------- */
html[lang="de"] body { hyphens: auto; -webkit-hyphens: auto; overflow-wrap: anywhere; }
html[lang="de"] .btn, html[lang="de"] .nav__link, html[lang="de"] .lang__item, html[lang="de"] .mbar__call { hyphens: manual; -webkit-hyphens: manual; overflow-wrap: normal; }

/* ---------- nagłówek ---------- */
.hdr { position: sticky; top: 0; z-index: 60; background: #fff; border-bottom: 1px solid var(--silver-2); }
.hdr__in { display: flex; align-items: center; gap: 28px; min-height: var(--hdr); }
.hdr__logo { display: block; flex: none; line-height: 0; }
.hdr__logo img { width: auto; height: 44px; }
.nav { margin-left: auto; display: flex; align-items: center; }
.nav__list { display: flex; align-items: center; gap: clamp(12px, 1.1vw, 18px); }
.nav__link { position: relative; display: block; padding: 10px 2px; color: var(--ink); font-weight: 500; font-size: .9rem; text-decoration: none; white-space: nowrap; }
.nav__link::after { content: ""; position: absolute; left: 0; right: 0; bottom: 4px; height: 2px; background: var(--green); transform: scaleX(0); transform-origin: left; transition: transform .2s ease; }
.nav__link:hover, .nav__link.is-current { color: var(--green); text-decoration: none; }
.nav__link:hover::after, .nav__link.is-current::after { transform: scaleX(1); }
.nav__extra { display: none; }
.hdr__tools { display: flex; align-items: center; gap: 18px; }
.hdr__tel { display: inline-flex; align-items: center; gap: 8px; color: var(--ink); font-weight: 500; font-size: .9375rem; text-decoration: none; white-space: nowrap; }
.hdr__tel .ic { color: var(--green); }
.hdr__tel:hover { color: var(--green); }
/* siedem pozycji menu (także po niemiecku) nie mieści się z numerem telefonu na laptopach 1280–1439 px: zostaje sama ikona (numer jest w aria-label i title), od 1440 px numer widać w całości */
@media (min-width: 1280px) and (max-width: 1439.98px) {
  .hdr__tel { position: relative; justify-content: center; width: 40px; height: 40px; border: 1px solid var(--silver); }
  .hdr__tel span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
.hdr__cta { white-space: nowrap; }
.lang { display: flex; align-items: center; border: 1px solid var(--silver); }
.lang__item { display: block; padding: 6px 10px; font-size: .8125rem; font-weight: 500; color: var(--muted); text-decoration: none; line-height: 1.2; }
.lang__item + .lang__item { border-left: 1px solid var(--silver); }
.lang__item.is-current { background: var(--green); color: #fff; }
.lang__item:not(.is-current):hover { background: var(--mint); color: var(--green); }
.burger { display: none; position: relative; width: 46px; height: 46px; padding: 0; border: 1px solid var(--silver); background: #fff; cursor: pointer; }
.burger__bars, .burger__bars::before, .burger__bars::after { position: absolute; left: 12px; right: 12px; height: 2px; background: var(--ink); content: ""; transition: transform .2s ease, opacity .2s ease, top .2s ease; }
.burger__bars { top: 22px; }
.burger__bars::before { top: -7px; left: 0; right: 0; }
.burger__bars::after { top: 7px; left: 0; right: 0; }
.burger[aria-expanded="true"] .burger__bars { background: transparent; }
.burger[aria-expanded="true"] .burger__bars::before { top: 0; transform: rotate(45deg); }
.burger[aria-expanded="true"] .burger__bars::after { top: 0; transform: rotate(-45deg); }

@media (max-width: 1279.98px) {
  .burger { display: block; }
  .hdr__tel { display: none; }
  .hdr__tools { margin-left: auto; }
  .nav { position: fixed; inset: var(--hdr) 0 0 0; z-index: 55; margin: 0; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 24px; padding: 20px var(--gut) 36px; overflow-y: auto; background: #fff; border-top: 1px solid var(--silver-2); display: none; }
  .nav-open .nav { display: flex; }
  .nav-open { overflow: hidden; }
  .nav__list { flex-direction: column; align-items: stretch; gap: 0; }
  .nav__list li { border-bottom: 1px solid var(--silver-2); }
  .nav__link { padding: 16px 2px; font-size: 1.25rem; }
  .nav__link::after { display: none; }
  .nav__extra { display: block; margin-top: auto; padding-top: 8px; }
  .nav__contact { margin: 0 0 8px; }
  .nav__contact a { display: inline-flex; align-items: center; gap: 10px; color: var(--ink); font-weight: 500; text-decoration: none; padding: 8px 0; }
  .nav__contact .ic { color: var(--green); }
}
@media (max-width: 719.98px) {
  :root { --hdr: 64px; }
  .hdr__cta { display: none; }
  .hdr__logo img { height: 38px; }
}
/* najwęższe telefony (320–359 px): logo, przełącznik PL | EN | DE i przycisk menu mają się zmieścić bez poziomego przewijania */
@media (max-width: 359.98px) {
  .hdr__in, .hdr__tools { gap: 10px; }
  .hdr__logo img { height: 34px; }
  .lang__item { padding: 6px 8px; }
  .burger { width: 44px; height: 44px; }
  .burger__bars { top: 21px; }
}

/* ---------- pasek szybkiego kontaktu (telefon) ---------- */
.mbar { display: none; }
@media (max-width: 719.98px) {
  .ftr { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
  .mbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 58; display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: center; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, .98); border-top: 1px solid var(--silver); }
  .mbar__call { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 14px; border: 1px solid var(--green); color: var(--green); font-weight: 500; font-size: .875rem; text-decoration: none; white-space: nowrap; }
  .mbar__cta { width: 100%; padding-inline: 12px; font-size: .8125rem; }
  .page-rfq .mbar { display: none; }
  .page-rfq .ftr { padding-bottom: 0; }
}
@media (max-width: 359.98px) {
  .mbar { gap: 8px; padding-inline: 8px; }
  .mbar__call { padding: 0 10px; font-size: .8125rem; }
  .mbar__cta { padding-inline: 8px; font-size: .75rem; letter-spacing: 0; }
}

/* ---------- hero ---------- */
.hero { position: relative; background: #e8ece9; }
.hero__stage { position: relative; width: 100%; aspect-ratio: 1920 / 863; min-height: clamp(440px, 74svh, 660px); max-height: calc(100svh - var(--hdr)); overflow: hidden; }
.hero__slides, .hero__fx { position: absolute; inset: 0; }
.hero__slide { position: absolute; inset: 0; margin: 0; opacity: 0; visibility: hidden; transition: opacity .6s ease, visibility 0s linear .6s; }
.hero__slide.is-active { opacity: 1; visibility: visible; transition: opacity .6s ease; }
.hero--fx .hero__slide { transition: none; }
.hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero__visual { position: absolute; left: var(--gut); bottom: 14px; font-size: .6875rem; color: rgba(52, 68, 60, .75); text-shadow: 0 0 6px rgba(255, 255, 255, .9); }
.hero__fx { width: 100%; height: 100%; pointer-events: none; }
.hero__scrim { position: absolute; inset: 0; background: rgba(255, 255, 255, .06); }
.hero__texts { position: absolute; inset: 0; pointer-events: none; }
.hero__text { position: absolute; left: 50%; top: 40%; transform: translate(-50%, -50%); display: grid; justify-items: stretch; width: max-content; max-width: calc(100% - 2 * var(--gut)); opacity: 0; visibility: hidden; transition: opacity .45s ease, visibility 0s linear .45s; text-transform: uppercase; font-family: var(--font); }
.hero__text.is-active { opacity: 1; visibility: visible; transition: opacity .55s ease .05s; }
.hero--fx .hero__text { transition-duration: .28s; }
.hero__kicker { display: flex; align-items: center; margin: 0 0 .15em; font-size: 24px; font-weight: 300; line-height: 1.35; color: var(--ink); text-shadow: 0 0 14px rgba(255, 255, 255, .85); }
.hero__kick { flex: 0 1 auto; min-width: 0; text-align: center; text-wrap: balance; }
.hero__line { flex: 1 1 24px; min-width: 24px; height: 1px; background: var(--green); opacity: .55; }
.hero__line:first-child { margin: 0 15px 0 30px; }
.hero__line:last-child { margin: 0 30px 0 15px; }
.hero__title { margin: 0; font-size: calc(74px * var(--hs, 1)); font-weight: 500; line-height: 1.04; color: var(--green); text-align: center; text-shadow: 0 0 22px rgba(255, 255, 255, .7), 0 0 4px rgba(255, 255, 255, .45); max-width: 100vw; }
.hero__ui { position: absolute; right: var(--gut); bottom: 22px; z-index: 3; display: flex; align-items: center; gap: 6px; padding: 6px 8px; background: rgba(255, 255, 255, .86); border: 1px solid var(--silver); }
.hero__btn { display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 0; background: transparent; color: var(--green); cursor: pointer; }
.hero__btn:hover { background: var(--mint); }
.hero__btn--pp .ic-play { display: none; }
.hero.is-paused .hero__btn--pp .ic-play { display: block; }
.hero.is-paused .hero__btn--pp .ic-pause { display: none; }
.hero__dots { display: flex; align-items: center; gap: 4px; }
.hero__dot { display: block; width: 28px; height: 38px; padding: 0; border: 0; background: transparent; cursor: pointer; position: relative; }
.hero__dot::before { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 12px; margin: -6px 0 0 -6px; border: 1px solid var(--green); border-radius: 50%; background: transparent; transition: background-color .2s; }
.hero__dot.is-active::before { background: var(--green); }
.hero__more { position: absolute; left: 50%; bottom: 18px; z-index: 3; display: grid; place-items: center; width: 52px; height: 60px; margin-left: -26px; color: var(--green); text-decoration: none; }
.hero__hex { position: absolute; inset: 0; fill: var(--green); fill-opacity: .35; stroke: none; transition: fill-opacity .2s; }
.hero__more:hover .hero__hex { fill-opacity: .6; }
.hero__chev { position: relative; }
@media (max-width: 991.98px) {
  .hero__stage { aspect-ratio: auto; height: clamp(440px, 72svh, 600px); }
  .hero__kicker { font-size: 20px; }
  .hero__title { font-size: 36px; }
  .hero__more { display: none; }
  .hero__ui { right: 50%; transform: translateX(50%); bottom: 14px; }
  .hero__visual { top: 10px; bottom: auto; left: 12px; }
}
@media (max-width: 480px) {
  .hero__kicker { font-size: 15px; }
  .hero__line:first-child { margin: 0 10px 0 0; }
  .hero__line:last-child { margin: 0 0 0 10px; }
  .hero__line { min-width: 12px; }
  .hero__title { font-size: 31px; }
}

/* ---------- pasek zaufania ---------- */
.facts { background: #fff; border-bottom: 1px solid var(--silver-2); }
.facts__list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.facts__item { border-left: 1px solid var(--silver-2); }
.facts__item:first-child { border-left: 0; }
.facts__link { display: block; height: 100%; padding: 22px clamp(14px, 1.8vw, 26px); color: inherit; text-decoration: none; }
.facts__item:first-child .facts__link { padding-left: 0; }
.facts__title { display: block; color: var(--green); font-weight: 500; font-size: 1.0625rem; line-height: 1.3; }
.facts__text { display: block; margin-top: 4px; color: var(--muted); font-size: .875rem; line-height: 1.45; }
a.facts__link:hover { background: var(--mist); }
a.facts__link:hover .facts__title { text-decoration: underline; text-underline-offset: .2em; }
@media (max-width: 1000px) {
  .facts__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .facts__item { border-left: 0; border-top: 1px solid var(--silver-2); }
  .facts__item:nth-child(odd) { border-right: 1px solid var(--silver-2); }
  .facts__item:nth-child(-n+2) { border-top: 0; }
  .facts__item:last-child:nth-child(odd) { grid-column: 1 / -1; border-right: 0; }
  .facts__item:first-child .facts__link { padding-left: clamp(14px, 1.8vw, 26px); }
  .facts__item:nth-child(odd) .facts__link { padding-left: 0; }
}

/* ---------- sekcje ---------- */
.sec { padding-block: var(--sec); position: relative; }
.sec--mist { background: var(--mist); }
.sec--deep { background: var(--deep); color: #dbe5df; }
.sec--deep h1, .sec--deep h2, .sec--deep h3 { color: #fff; }
.sh { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 16px 40px; margin-bottom: clamp(28px, 4vw, 48px); padding-bottom: 20px; border-bottom: 1px solid var(--silver); }
.sec--mist .sh { border-bottom-color: var(--silver); }
.sec--deep .sh { border-bottom-color: rgba(255, 255, 255, .22); }
.sh__title { font-size: var(--h2); line-height: 1.15; letter-spacing: -.01em; }
.sh__lead { margin: 12px 0 0; max-width: 64ch; color: var(--muted); font-size: 1.0625rem; }
.sh__action { padding-bottom: 4px; }
.sh--center { text-align: center; justify-content: center; }
.prose { max-width: 70ch; }
.prose > :last-child { margin-bottom: 0; }
.prose ul { margin: 0 0 1em; padding-left: 1.2em; list-style: disc; }
.prose ol { margin: 0 0 1em; padding-left: 1.4em; list-style: decimal; }
.prose li { margin-bottom: .35em; }
.prose h3, .prose h4 { margin: 1.6em 0 .5em; }

.split { display: grid; gap: clamp(28px, 5vw, 80px); align-items: center; }
.split--contact { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); align-items: start; }
.split--social { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); align-items: start; }
.split__text .sh { margin-bottom: 24px; }
@media (max-width: 899.98px) {
  .split--contact, .split--social { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- wstęp / o nas ---------- */
.intro { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.intro__h { font-size: clamp(1.75rem, 1.05rem + 2.8vw, 3.25rem); line-height: 1.08; letter-spacing: -.005em; color: var(--green); text-transform: uppercase; }
.intro__sub { margin: 14px 0 clamp(28px, 4vw, 44px); font-size: clamp(.9375rem, .85rem + .45vw, 1.1875rem); font-weight: 300; line-height: 1.4; color: var(--ink); }
.intro__about { font-size: var(--h3); margin-bottom: 14px; }
.intro__lead { margin-top: 1.4em; font-weight: 500; color: var(--ink); }
.intro__fig { margin: 0; }
.frame { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--mist); --c: 28px; clip-path: polygon(0 0, calc(100% - var(--c)) 0, 100% var(--c), 100% 100%, var(--c) 100%, 0 calc(100% - var(--c))); }
.frame.cut::before, .frame.cut::after { display: none; }
.frame img { width: 100%; height: 100%; object-fit: cover; }
.intro__fig .frame img { object-position: 40% 50%; }
.intro__cap { margin-top: 10px; font-size: .8125rem; color: var(--muted); }
.principles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 clamp(24px, 3.5vw, 56px); margin-top: clamp(44px, 6vw, 84px); }
.principles__item { position: relative; padding-top: 26px; border-top: 1px solid var(--silver); }
.principles__item::before { content: ""; position: absolute; left: 0; top: -2px; width: 56px; height: 3px; background: var(--green); }
.principles__title { margin-bottom: 10px; color: var(--green); font-size: var(--h3); }
.principles__item p { margin: 0; color: var(--ink); }
@media (max-width: 899.98px) {
  .intro { grid-template-columns: minmax(0, 1fr); }
  .intro__fig { order: -1; max-width: 560px; }
  .principles { grid-template-columns: minmax(0, 1fr); gap: 32px; }
}

/* ---------- film i osadzenia ---------- */
.embed { position: relative; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; background: var(--deep); --c: 24px; clip-path: polygon(0 0, calc(100% - var(--c)) 0, 100% var(--c), 100% 100%, var(--c) 100%, 0 calc(100% - var(--c))); }
.embed.cut::before, .embed.cut::after { display: none; }
.embed--4x3 { aspect-ratio: 4 / 3; }
.embed--fb { aspect-ratio: auto; height: 640px; max-width: 520px; }
.embed__poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.85) brightness(.88); }
.embed__ui { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: 22px; text-align: center; color: #fff; }
.embed--youtube .embed__ui { background: linear-gradient(0deg, rgba(21, 32, 28, .86) 0%, rgba(21, 32, 28, .35) 55%, rgba(21, 32, 28, .15) 100%); }
.embed--maps, .embed--facebook { background: var(--mist) url("/static/img/hex-light.svg"); }
.embed--maps .embed__ui, .embed--facebook .embed__ui { color: var(--ink); }
.embed__note { margin: 0; max-width: 46ch; font-size: .8125rem; line-height: 1.5; }
.embed__open { color: inherit; font-size: .875rem; font-weight: 500; }
.embed--youtube .embed__open { color: #fff; }
.embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: #fff; }

/* nagłówek dużych sekcji (film, certyfikaty): gruby tytuł po lewej, krótki opis po prawej */
.dsec { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 18px clamp(32px, 6vw, 96px); align-items: end; margin-bottom: clamp(26px, 3.6vw, 48px); }
.dsec__title { font-size: clamp(2rem, 1.1rem + 3.3vw, 3.75rem); font-weight: 700; line-height: 1.05; letter-spacing: -.02em; }
.dsec__side { display: grid; gap: 14px; justify-items: start; padding-bottom: .5em; }
.dsec__lead { max-width: 46ch; margin: 0; color: var(--muted); font-size: 1.0625rem; line-height: 1.6; }
.sec--deep .dsec__lead { color: #b9c8c0; }
.dsec__more { color: var(--lime); text-decoration-color: color-mix(in srgb, var(--lime) 55%, transparent); }
.dsec__more:hover { color: #fff; }
.dsec__fine { display: flex; align-items: flex-start; gap: 9px; max-width: 84ch; margin: 18px 0 0; color: var(--muted); font-size: .8125rem; line-height: 1.5; }
.dsec__fine .ic { flex: none; margin-top: 2px; color: var(--green); }
@media (max-width: 899.98px) { .dsec { grid-template-columns: minmax(0, 1fr); } }

/* film: szeroki, przyciemniony kadr, okrągły przycisk z poświatą, oznaczenie treści zewnętrznej */
.embed--film { --c: 36px; aspect-ratio: 21 / 9; }
.embed--film[data-loaded] { aspect-ratio: 16 / 9; }
.embed--film .embed__poster { filter: saturate(.75) brightness(.58) contrast(1.05); }
.embed--film .embed__ui { align-items: flex-start; justify-content: center; gap: 0; padding: clamp(22px, 5vw, 72px); text-align: left; background: linear-gradient(90deg, rgba(21, 32, 28, .8) 0%, rgba(21, 32, 28, .4) 55%, rgba(21, 32, 28, .1) 100%); }
.embed__cta { display: grid; gap: clamp(16px, 1.8vw, 24px); justify-items: start; padding-left: clamp(8px, 1.9vw, 26px); }
.embed__play { display: inline-flex; align-items: center; gap: clamp(18px, 2.2vw, 30px); padding: 0; border: 0; background: none; color: #fff; text-align: left; cursor: pointer; }
.embed__play:focus-visible { outline: 3px solid var(--lime); outline-offset: 14px; border-radius: 999px; }
.embed__disc { position: relative; display: grid; place-items: center; flex: none; width: clamp(64px, 6.4vw, 92px); aspect-ratio: 1; border-radius: 50%; background: var(--lime); color: var(--deep); box-shadow: 0 0 0 clamp(7px, .8vw, 11px) rgba(39, 198, 106, .24), 0 0 0 clamp(16px, 1.9vw, 26px) rgba(39, 198, 106, .1); transition: transform .2s ease, box-shadow .2s ease; }
.embed__disc .ic { width: 38%; height: 38%; margin-left: 6%; }
.embed__play:hover .embed__disc, .embed__play:focus-visible .embed__disc { transform: scale(1.06); box-shadow: 0 0 0 clamp(9px, 1vw, 14px) rgba(39, 198, 106, .32), 0 0 0 clamp(20px, 2.3vw, 32px) rgba(39, 198, 106, .14); }
.embed__label { max-width: 16ch; font-size: clamp(1.25rem, 1rem + 1.1vw, 1.875rem); font-weight: 700; line-height: 1.15; letter-spacing: -.01em; }
.embed__sub { max-width: 40ch; margin: 0; color: rgba(255, 255, 255, .88); font-size: clamp(.875rem, .84rem + .15vw, .9375rem); line-height: 1.5; }
.embed__play[hidden] + .embed__sub { display: none; }
.embed__foot { position: absolute; left: 0; right: 0; bottom: 0; display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 10px 20px; padding: clamp(12px, 1.8vw, 22px) clamp(16px, 2.4vw, 32px); }
.embed__foot .embed__open { color: #fff; font-size: .8125rem; font-weight: 500; }
.embed__badge { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 0 auto; padding: 6px 12px; background: rgba(21, 32, 28, .62); border: 1px solid rgba(255, 255, 255, .24); color: #fff; font-size: .75rem; line-height: 1.3; }
.embed__badge .ic { flex: none; color: var(--lime); }
@media (max-width: 719.98px) {
  .embed--film { --c: 24px; aspect-ratio: 4 / 3; }
  .embed--film .embed__ui { padding: 20px 18px 74px; }
  .embed__badge { margin-left: 0; }
}
@media (max-width: 420px) { .embed--film { aspect-ratio: 1 / 1; } }

/* ---------- certyfikaty ---------- */
.certs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(22px, 3.2vw, 48px); align-items: start; }
.cert { margin: 0; }
.cert__img { display: block; padding: 10px; --c: 18px; }
.cert__img img { width: 100%; height: auto; }
.cert__cap { display: flex; flex-direction: column; gap: 4px; padding-top: 14px; }
.cert__title { font-weight: 500; font-size: 1.0625rem; color: var(--ink); }
.cert__valid { color: var(--muted); font-size: .875rem; }
.cert__links { display: flex; flex-wrap: wrap; gap: 6px 20px; margin-top: 6px; }
.doc-link { display: inline-flex; align-items: center; gap: 7px; font-size: .9375rem; font-weight: 500; text-decoration: none; }
.doc-link:hover { text-decoration: underline; text-decoration-thickness: 2px; }
@media (max-width: 899.98px) { .certs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 559.98px) { .certs { grid-template-columns: minmax(0, 1fr); max-width: 420px; } }

/* przyciski „PL” / „EN” — pobranie certyfikatu w wybranej wersji językowej */
.cdl { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 16px; margin-top: 10px; }
.cdl__label { color: var(--muted); font-size: .8125rem; font-weight: 500; }
.cdl__btns { display: inline-flex; gap: 10px; }
.cdl__btn { min-width: 88px; }

/* certyfikaty na stronie głównej: ciemna sekcja z trzema kartami */
.sec--cert { background: var(--deep) url("/static/img/hex-dark.svg"); }
.ccards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2.2vw, 30px); }
.ccard { display: flex; min-width: 0; }
.ccard__in { --c: 22px; position: relative; display: flex; flex-direction: column; gap: 20px; width: 100%; padding: 26px 26px 24px; background: rgba(255, 255, 255, .05); clip-path: polygon(0 0, calc(100% - var(--c)) 0, 100% var(--c), 100% 100%, var(--c) 100%, 0 calc(100% - var(--c))); }
.ccard__in::before { content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none; background: rgba(255, 255, 255, .2); transition: background-color .15s; clip-path: polygon(evenodd,
  0 0, calc(100% - var(--c)) 0, 100% var(--c), 100% 100%, var(--c) 100%, 0 calc(100% - var(--c)), 0 0,
  1px 1px, calc(100% - var(--c) - .41px) 1px, calc(100% - 1px) calc(var(--c) + .41px), calc(100% - 1px) calc(100% - 1px), calc(var(--c) + .41px) calc(100% - 1px), 1px calc(100% - var(--c) - .41px), 1px 1px); }
.ccard__in:hover::before, .ccard__in:focus-within::before { background: var(--lime); }
.ccard__head { display: flex; align-items: center; gap: 14px; }
.ccard__ic { flex: none; color: var(--lime); }
.ccard__title { color: #fff; font-size: clamp(1.375rem, 1.2rem + .6vw, 1.75rem); font-weight: 700; letter-spacing: -.01em; line-height: 1.15; }
.ccard__body { display: flex; align-items: flex-start; gap: 20px; }
.ccard__thumb { display: block; flex: none; width: 108px; background: #fff; box-shadow: 0 10px 24px rgba(0, 0, 0, .35); }
.ccard__img { width: 100%; height: auto; }
.ccard__txt { display: grid; gap: 10px; min-width: 0; }
.ccard__text { margin: 0; color: #c7d5cd; font-size: .9375rem; line-height: 1.55; }
.ccard__valid { margin: 0; color: #93a79c; font-size: .8125rem; }
.ccard .cdl { margin-top: auto; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, .16); }
.ccard .cdl__label { color: #b9c8c0; }
.ccard .btn--ghost { --fg: #fff; }
.ccard .btn--ghost::before { background: var(--lime); }
.ccard .btn--ghost:hover { --fg: var(--deep); }
.ccard .btn--ghost:hover::before, .ccard .btn--ghost:hover::after { background: var(--lime); }
.ccard :focus-visible { outline-color: var(--lime); }
@media (max-width: 1099.98px) {
  .ccards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ccard:last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media (max-width: 639.98px) {
  .ccards { grid-template-columns: minmax(0, 1fr); }
  .ccard__in { padding: 22px 20px 20px; }
}

/* ---------- usługi ---------- */
.svcs { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: clamp(16px, 2.2vw, 28px); }
.svc { display: flex; }
.svc--2 { grid-column: span 2; }
.svc--3 { grid-column: span 3; }
.svc--6 { grid-column: span 6; }
.svc__card { position: relative; width: 100%; display: flex; flex-direction: column; --c: 18px; --bd: var(--silver); background: #fff; clip-path: polygon(0 0, calc(100% - var(--c)) 0, 100% var(--c), 100% 100%, var(--c) 100%, 0 calc(100% - var(--c))); }
.svc__card::before { content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none; background: var(--bd); clip-path: polygon(evenodd,
  0 0, calc(100% - var(--c)) 0, 100% var(--c), 100% 100%, var(--c) 100%, 0 calc(100% - var(--c)), 0 0,
  1px 1px, calc(100% - var(--c) - .41px) 1px, calc(100% - 1px) calc(var(--c) + .41px), calc(100% - 1px) calc(100% - 1px), calc(var(--c) + .41px) calc(100% - 1px), 1px calc(100% - var(--c) - .41px), 1px 1px); }
.svc__card:hover, .svc__card:focus-within { --bd: var(--green); }
.svc__media { position: relative; display: block; aspect-ratio: 3 / 2; background: var(--mist) url("/static/img/hex-light.svg"); overflow: hidden; }
.svc--core .svc__media { aspect-ratio: 16 / 8; }
.svc__media img { width: 100%; height: 100%; object-fit: contain; padding: 4%; }
.svc__visual { position: absolute; right: 8px; bottom: 6px; font-size: .625rem; color: var(--muted); }
.svc__body { display: flex; flex-direction: column; gap: 6px; padding: 18px 22px 24px; flex: 1; }
.svc__title { font-size: var(--h3); }
.svc__title a { color: var(--ink); text-decoration: none; }
.svc__title a::after { content: ""; position: absolute; inset: 0; }
.svc__title a:hover { color: var(--green); }
.svc__text { margin: 0; color: var(--muted); font-size: .9375rem; line-height: 1.55; }
.svc__tag { margin: auto 0 0; padding-top: 10px; color: var(--green); font-size: .8125rem; font-weight: 500; }
@media (max-width: 899.98px) {
  .svcs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .svc--2, .svc--3, .svc--6 { grid-column: span 1; }
  .svc--core, .svc--6 { grid-column: 1 / -1; }
  .svc--2:last-child:nth-child(even) { grid-column: 1 / -1; }
}
@media (max-width: 559.98px) {
  .svcs { grid-template-columns: minmax(0, 1fr); }
  .svc--2, .svc--3, .svc--6, .svc--core { grid-column: 1 / -1; }
}

/* ---------- proces ---------- */
.steps { --gap: clamp(20px, 3vw, 44px); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 var(--gap); }
.step { position: relative; padding-top: 0; }
.step__badge { position: relative; display: grid; place-items: center; width: 52px; height: 64px; margin-bottom: 20px; color: #fff; }
.step__badge svg { position: absolute; inset: 0; width: 100%; height: 100%; fill: var(--green); }
.step__badge b { position: relative; font-size: 1.375rem; font-weight: 500; line-height: 1; }
.step::after { content: ""; position: absolute; top: 32px; left: 64px; right: calc(var(--gap) * -1 + 12px); height: 1px; background: var(--silver); }
.step:last-child::after { display: none; }
.step__title { margin-bottom: 12px; font-size: var(--h3); }
.step__list li { padding: 7px 0; border-top: 1px solid var(--silver-2); color: var(--muted); font-size: .9375rem; line-height: 1.45; }
.step__list li:last-child { border-bottom: 1px solid var(--silver-2); }
.step__note { display: flex; align-items: flex-start; gap: 9px; margin: 0 0 12px; padding: 10px 12px; background: var(--mint); border-left: 3px solid var(--green); color: var(--ink); font-size: .875rem; font-weight: 500; line-height: 1.45; }
.step__note .ic { flex: none; margin-top: 1px; color: var(--green); }
@media (max-width: 899.98px) {
  .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px var(--gap); }
  .step:nth-child(2)::after, .step:nth-child(4)::after { display: none; }
}
@media (max-width: 559.98px) {
  .steps { grid-template-columns: minmax(0, 1fr); }
  .step::after { display: none; }
}

/* ---------- branże: hasło po lewej, ruchoma „taśma produkcyjna” z ikonami po prawej ---------- */
.sec--ind { background: var(--deep) url("/static/img/hex-dark.svg"); overflow: hidden; }
.indsec { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
.indsec__title { color: #fff; font-size: clamp(2.125rem, 1.1rem + 3.4vw, 3.875rem); font-weight: 700; line-height: 1.04; letter-spacing: -.02em; }
.indsec__lead { max-width: 30ch; margin: 22px 0 0; color: var(--lime); font-size: clamp(1.0625rem, 1rem + .4vw, 1.25rem); line-height: 1.5; }
.mq__pp { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; margin-top: 28px; padding: 8px 18px; border: 1px solid rgba(255, 255, 255, .4); background: transparent; color: #fff; font-size: .875rem; font-weight: 500; cursor: pointer; transition: border-color .15s, background-color .15s; }
.mq__pp:hover { border-color: var(--lime); background: rgba(39, 198, 106, .12); }
.mq__pp:focus-visible { outline-color: var(--lime); }
.mq__pp .ic-play { display: none; }
.indsec.is-paused .mq__pp .ic-play { display: block; }
.indsec.is-paused .mq__pp .ic-pause { display: none; }
/* taśma wychodzi z kolumny aż do prawej krawędzi ekranu */
.mq { min-width: 0; margin-right: calc(-1 * max(var(--gut), (100vw - var(--maxw)) / 2)); }
.mq__view { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 48px, #000 calc(100% - 120px), transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 48px, #000 calc(100% - 120px), transparent 100%); }
.mq__track { display: flex; width: max-content; }
.mq__list { display: flex; flex: none; }
.mq__item { position: relative; flex: none; display: flex; flex-direction: column; align-items: center; width: 192px; padding: 0 12px; text-align: center; }
.mq__icon { display: grid; place-items: end center; height: 92px; padding-bottom: 9px; color: var(--lime); }
/* „taśma”: przerywana linia pod ikonami (szerokość pozycji = wielokrotność okresu wzoru, więc wzór jest ciągły) */
.mq__item::after { content: ""; position: absolute; left: 0; right: 0; top: 92px; height: 3px; background: repeating-linear-gradient(90deg, rgba(39, 198, 106, .8) 0 12px, transparent 12px 24px); }
.mq__name { margin-top: 24px; color: #fff; font-size: 1.0625rem; font-weight: 500; line-height: 1.3; text-wrap: balance; overflow-wrap: break-word; hyphens: manual; }
.indsec[data-live] .mq__track { animation: mq-run var(--mq-t, 28s) linear infinite; will-change: transform; }
.indsec[data-live] .mq:hover .mq__track { animation-play-state: paused; }
@keyframes mq-run { to { transform: translate3d(calc(var(--mq-w, 1152px) * -1), 0, 0); } }
/* bez JavaScript, przy „ogranicz ruch” i po zatrzymaniu: nieruchoma lista wszystkich branż */
.indsec:not([data-live]) .mq { margin-right: 0; }
.indsec:not([data-live]) .mq__view { -webkit-mask-image: none; mask-image: none; }
.indsec:not([data-live]) .mq__track { width: auto; }
.indsec:not([data-live]) .mq__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(168px, 1fr)); width: 100%; row-gap: 34px; }
.indsec:not([data-live]) .mq__item { width: auto; }
.indsec:not([data-live]) .mq__item::after { height: 2px; background: rgba(39, 198, 106, .55); }
@media (max-width: 899.98px) {
  .indsec { grid-template-columns: minmax(0, 1fr); gap: 34px; }
  .indsec__lead { max-width: 44ch; }
  .indsec[data-live] .mq { margin-inline: calc(-1 * var(--gut)); }
  .mq__view { -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 28px, #000 calc(100% - 56px), transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 28px, #000 calc(100% - 56px), transparent 100%); }
}
@media (prefers-reduced-motion: reduce) { .indsec[data-live] .mq__track { animation: none !important; } }
@media print {
  .mq__pp { display: none !important; }
  .mq__list[data-mq-clone] { display: none !important; }
  .mq__track { width: auto !important; transform: none !important; animation: none !important; }
  .mq__list { flex-wrap: wrap; }
}

/* ---------- galeria ---------- */
.gal { display: grid; gap: clamp(10px, 1.4vw, 18px); grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gal--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.gal--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.gal__link { position: relative; display: block; overflow: hidden; background: var(--mist); aspect-ratio: 340 / 310; cursor: zoom-in; border: 1px solid var(--silver-2); }
.gal__link img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.gal__link:hover img { transform: scale(1.04); }
.gal__link:hover { border-color: var(--green); }
@media (max-width: 899.98px) { .gal--4, .gal--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 559.98px) { .gal, .gal--4, .gal--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.lb { width: 100%; max-width: none; height: 100%; max-height: none; margin: 0; padding: 0; border: 0; background: transparent; color: #fff; }
.lb::backdrop { background: rgba(10, 16, 13, .94); }
.lb__in { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; height: 100%; padding: 56px 72px 28px; }
.lb__fig { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 12px; max-width: 100%; }
.lb__img { max-width: min(92vw, 1100px); max-height: calc(100vh - 150px); width: auto; height: auto; object-fit: contain; background: #fff; }
.lb__cap { max-width: 70ch; text-align: center; font-size: .9375rem; color: #dbe5df; }
.lb__btn { position: absolute; display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border: 1px solid rgba(255, 255, 255, .35); background: rgba(21, 32, 28, .6); color: #fff; cursor: pointer; }
.lb__btn:hover { background: var(--green); border-color: var(--green); }
.lb__btn:focus-visible { outline-color: var(--lime); }
.lb__close { top: 14px; right: 14px; }
.lb__prev { left: 14px; top: 50%; margin-top: -24px; }
.lb__next { right: 14px; top: 50%; margin-top: -24px; }
@media (max-width: 719.98px) { .lb__in { padding: 64px 12px 20px; } .lb__prev { left: 6px; top: auto; bottom: 14px; margin: 0; } .lb__next { right: 6px; top: auto; bottom: 14px; margin: 0; } }

/* ---------- wezwanie do działania ---------- */
.cta { background: var(--deep) url("/static/img/hex-dark.svg"); color: #dbe5df; padding-block: clamp(48px, 6.5vw, 96px); }
.cta__in { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: clamp(28px, 5vw, 80px); align-items: center; }
.cta__title { color: #fff; font-size: clamp(1.75rem, 1.1rem + 2.3vw, 2.75rem); line-height: 1.12; margin-bottom: 18px; }
.cta__lead { max-width: 62ch; margin: 0 0 12px; font-size: 1.0625rem; color: #dbe5df; }
.cta__sub { margin: 0; color: var(--lime); font-weight: 500; }
.cta__act { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
.cta__talk { margin: 0; font-size: .9375rem; color: #dbe5df; }
.cta__talk a { display: inline-flex; align-items: center; gap: 8px; color: #fff; font-weight: 500; font-size: 1.125rem; text-decoration: none; white-space: nowrap; vertical-align: middle; }
.cta__talk a .ic { flex: none; color: var(--lime); }
.cta__talk a:hover { color: var(--lime); text-decoration: underline; }
@media (max-width: 899.98px) { .cta__in { grid-template-columns: minmax(0, 1fr); } }

/* ---------- kontakt ---------- */
.contact-dl { margin: 22px 0 0; display: grid; gap: 14px; }
.contact-dl > div { display: grid; grid-template-columns: 24px 1fr; gap: 12px; align-items: start; }
.contact-dl dt { color: var(--green); padding-top: 3px; }
.contact-dl dd { margin: 0; font-size: 1.0625rem; font-weight: 500; }
.contact-dl a { color: var(--ink); text-decoration: none; }
.contact-dl a:hover { color: var(--green); text-decoration: underline; }
.contact-dl__sep { color: var(--silver); padding: 0 4px; }
.contact__act { margin-top: 28px; }
.social__text { max-width: 50ch; margin-bottom: 1.4em; }

/* ---------- stopka: „tabliczka rysunkowa” ---------- */
.ftr { background: var(--deep); color: #c3d0c9; padding-top: clamp(40px, 5vw, 72px); font-size: .9375rem; }
.ftr a { color: #e6eee9; text-decoration: none; }
.ftr a:hover { color: var(--lime); text-decoration: underline; }
.ftr :focus-visible { outline-color: var(--lime); }
.tb { --c: 22px; --bd: #3a4a43; --fill: transparent; position: relative; isolation: isolate; display: grid; grid-template-columns: 1.2fr 1.4fr 1.1fr .85fr 1.45fr; }
.tb::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: var(--bd); clip-path: polygon(evenodd,
  0 0, calc(100% - var(--c)) 0, 100% var(--c), 100% 100%, var(--c) 100%, 0 calc(100% - var(--c)), 0 0,
  1px 1px, calc(100% - var(--c) - .41px) 1px, calc(100% - 1px) calc(var(--c) + .41px), calc(100% - 1px) calc(100% - 1px), calc(var(--c) + .41px) calc(100% - 1px), 1px calc(100% - var(--c) - .41px), 1px 1px); }
.tb__cell { padding: 30px 30px 34px; border-left: 1px solid #3a4a43; }
.tb__cell:first-child { border-left: 0; }
.tb__logo { display: block; margin-bottom: 18px; line-height: 0; }
.tb__logo img { width: auto; height: 44px; }
.tb__tag { margin: 0 0 8px; font-weight: 500; color: #fff; line-height: 1.5; }
.tb__sub { margin: 0; color: #9db0a6; font-size: .875rem; }
.tb__h { margin: 0 0 16px; color: var(--lime); font-size: .75rem; font-weight: 500; letter-spacing: .1em; }
.tb__addr { line-height: 1.7; }
.nw { white-space: nowrap; }
.tb__addr strong { color: #fff; font-weight: 500; }
.tb__reg { color: #9db0a6; font-size: .8125rem; }
.tb__list li { margin-bottom: 8px; }
.tb__list li:last-child { margin-bottom: 0; }
.tb__ct { display: inline-flex; align-items: center; gap: 10px; overflow-wrap: anywhere; }
.tb__ct .ic { flex: none; color: var(--lime); }
.tb__base { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 32px; padding: 22px 0 30px; color: #9db0a6; font-size: .875rem; }
.tb__copy { margin: 0; }
.tb__social { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.tb__social a { display: inline-flex; align-items: center; gap: 8px; }
.tb__top { display: inline-flex; align-items: center; gap: 8px; }
.tb__base .linklike { color: inherit; }
@media (max-width: 1099.98px) {
  .tb { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tb__cell { border-left: 0; border-top: 1px solid #3a4a43; }
  .tb__cell:nth-child(-n+2) { border-top: 0; }
  .tb__cell:nth-child(even) { border-left: 1px solid #3a4a43; }
  .tb__cell--brand { grid-column: 1 / -1; border-bottom: 1px solid #3a4a43; }
  .tb__cell--brand + .tb__cell { border-left: 0; }
}
@media (max-width: 599.98px) {
  .tb { grid-template-columns: minmax(0, 1fr); }
  .tb__cell, .tb__cell:nth-child(even) { border-left: 0; border-top: 1px solid #3a4a43; padding: 24px 22px 26px; }
  .tb__cell:first-child { border-top: 0; }
}

/* ---------- baner cookies ---------- */
.cc { position: fixed; left: clamp(12px, 2vw, 28px); bottom: clamp(12px, 2vw, 28px); z-index: 90; width: min(580px, calc(100vw - 24px)); max-height: calc(100vh - 24px); overflow-y: auto; filter: drop-shadow(0 10px 30px rgba(21, 32, 28, .22)); }
.cc__box { --c: 18px; --bd: var(--green); padding: 24px 26px 22px; }
.cc__title { margin-bottom: 10px; font-size: 1.125rem; }
.cc__text { margin: 0 0 16px; font-size: .875rem; line-height: 1.55; color: var(--ink); }
.cc__cats { margin: 0 0 16px; border-top: 1px solid var(--silver-2); }
.cc__cat { padding: 12px 0; border-bottom: 1px solid var(--silver-2); }
.cc__label { display: flex; align-items: center; justify-content: space-between; gap: 14px; font-weight: 500; cursor: pointer; }
.cc__label input { width: 20px; height: 20px; accent-color: var(--green); flex: none; }
.cc__always { margin-left: auto; font-size: .75rem; color: var(--muted); font-weight: 400; }
.cc__desc { margin: 6px 0 0; font-size: .8125rem; line-height: 1.5; color: var(--muted); }
.cc__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.cc__actions .btn { min-height: 42px; padding: 8px 18px; font-size: .875rem; flex: 1 1 auto; }
@media (max-width: 719.98px) { .cc { left: 8px; right: 8px; bottom: 8px; width: auto; } .cc__box { padding: 18px 16px 16px; } }

/* ---------- strony błędów ---------- */
.err { max-width: 720px; padding-block: clamp(24px, 6vw, 80px); }
.err__code { margin: 0 0 6px; font-size: clamp(4rem, 3rem + 6vw, 8rem); font-weight: 300; line-height: 1; color: var(--silver); }
.err__title { font-size: var(--h1); margin-bottom: 14px; }
.err__text { max-width: 56ch; color: var(--muted); font-size: 1.0625rem; }
.err__act { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 26px; }
.err__ref { margin-top: 28px; color: var(--muted); font-size: .8125rem; }

/* ---------- ruch ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .gal__link:hover img { transform: none; }
}
/* ---------- druk ---------- */
@media print {
  .hdr, .ftr, .cc, .mbar, .hero, .skip, .nav-extra, .no-print { display: none !important; }
  body { color: #000; background: #fff; padding: 0; }
  a { color: #000; text-decoration: underline; }
  .sec { padding-block: 12px; }
}

/* ==========================================================================
   PODSTRONY
   ========================================================================== */
.sec--tight { padding-block: clamp(32px, 4.5vw, 64px); }
.sec--form { padding-top: clamp(28px, 4vw, 56px); }

/* ---------- nagłówek podstrony i okruszki ---------- */
.phead { position: relative; isolation: isolate; overflow: hidden; background: var(--mist); border-bottom: 1px solid var(--silver-2); padding-block: clamp(26px, 3.6vw, 52px) clamp(32px, 4.4vw, 60px); }
.phead::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: url("/static/img/hex-light.svg"); -webkit-mask-image: linear-gradient(100deg, transparent 36%, #000 100%); mask-image: linear-gradient(100deg, transparent 36%, #000 100%); }
.crumbs { margin: 0 0 clamp(14px, 2vw, 22px); }
.crumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 0; font-size: .8125rem; line-height: 1.4; color: var(--muted); }
.crumbs li { display: inline-flex; align-items: center; }
.crumbs li + li::before { content: ""; width: 1px; height: .95em; margin: 0 .8em; background: var(--silver); transform: skewX(-22deg); }
.crumbs a { padding: 4px 0; color: var(--muted); text-decoration: none; }
.crumbs a:hover { color: var(--green); text-decoration: underline; }
.crumbs [aria-current] { color: var(--ink); font-weight: 500; }
.phead__title { max-width: 26ch; font-size: var(--h1); line-height: 1.1; letter-spacing: -.012em; }
.phead__title::after { content: ""; display: block; width: 64px; height: 4px; margin-top: clamp(16px, 2vw, 22px); background: var(--green); }
.phead__sub { max-width: 60ch; margin: 18px 0 0; color: var(--green); font-size: var(--h3); font-weight: 500; line-height: 1.35; }
.phead__lead { max-width: 68ch; margin-top: 20px; font-size: 1.125rem; line-height: 1.6; }
.phead__lead > :last-child { margin-bottom: 0; }
.phead__lead .meta { margin-bottom: 14px; }
.phead__lead a { font-weight: 500; }

.meta { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 0; font-size: .9375rem; color: var(--ink); }
.meta li { display: inline-flex; align-items: center; gap: 8px; }
.meta .ic { flex: none; color: var(--green); }

/* ---------- ramki zdjęć (warianty) ---------- */
.frame--ring::after { content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none; background: var(--silver); clip-path: polygon(evenodd,
  0 0, calc(100% - var(--c)) 0, 100% var(--c), 100% 100%, var(--c) 100%, 0 calc(100% - var(--c)), 0 0,
  1px 1px, calc(100% - var(--c) - .41px) 1px, calc(100% - 1px) calc(var(--c) + .41px), calc(100% - 1px) calc(100% - 1px), calc(var(--c) + .41px) calc(100% - 1px), 1px calc(100% - var(--c) - .41px), 1px 1px); }
.frame--contain { background: var(--mist) url("/static/img/hex-light.svg"); }
.frame--contain img { object-fit: contain; padding: 5%; }
.frame--hall { aspect-ratio: 5 / 4; }
.frame--photo { --c: 22px; aspect-ratio: 4 / 3; }
.frame--wide { --c: 36px; aspect-ratio: 21 / 8; }
.frame--sq { --c: 36px; aspect-ratio: 1 / 1; }
@media (max-width: 719.98px) { .frame--wide { --c: 24px; aspect-ratio: 16 / 10; } }

/* ---------- komunikaty (callout) ---------- */
.callout { --cb: var(--green); display: flex; align-items: flex-start; gap: 12px; padding: 16px 18px; background: var(--mint); border-left: 4px solid var(--cb); font-size: .9375rem; line-height: 1.55; }
.callout > .ic { flex: none; margin-top: 2px; color: var(--cb); }
.callout p { margin: 0; }
.callout p + p { margin-top: .6em; }
.callout__body { min-width: 0; }
.callout a { font-weight: 500; }
.callout--info { background: var(--mist); }
.callout--warn { --cb: #9a5b00; background: #fff6df; }
.callout__act { margin-top: 14px !important; }
.legal .callout, .sec > .wrap > .callout { margin-bottom: 24px; }

/* ==========================================================================
   FORMULARZE
   ========================================================================== */
.hp { position: absolute !important; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.form { --c: 24px; padding: clamp(22px, 3.2vw, 44px); }

/* postęp: numerowane sześciokąty (rzeczywista kolejność kroków) */
.form__progress { display: flex; align-items: center; gap: 10px; margin: 0 0 clamp(24px, 3vw, 36px); }
.form__pi { display: flex; align-items: center; gap: 10px; min-width: 0; color: var(--muted); }
.form__pi:not(:last-child) { flex: 1 1 auto; }
.form__pi:not(:last-child)::after { content: ""; flex: 1 1 16px; min-width: 16px; height: 1px; margin-left: 4px; background: var(--silver); }
.form__pi.is-done:not(:last-child)::after { background: var(--green); }
.form__num { position: relative; display: grid; place-items: center; flex: none; width: 28px; height: 34px; }
.form__num svg { position: absolute; inset: 0; width: 100%; height: 100%; fill: #fff; stroke: var(--silver); stroke-width: 2; }
.form__num b { position: relative; font-size: .8125rem; font-weight: 500; line-height: 1; color: var(--muted); }
.form__pi.is-current .form__num svg { fill: var(--green); stroke: var(--green); }
.form__pi.is-current .form__num b { color: #fff; }
.form__pi.is-done .form__num svg { fill: var(--mint); stroke: var(--green); }
.form__pi.is-done .form__num b { color: var(--green); }
.form__pt { font-size: .875rem; font-weight: 500; line-height: 1.3; }
.form__pi.is-current .form__pt { color: var(--ink); }

.form__step { min-width: 0; margin: 0; padding: 0; border: 0; }
.form__legend { display: block; width: 100%; margin: 0 0 22px; padding: 0; color: var(--ink); font-size: var(--h3); font-weight: 500; line-height: 1.25; }
.form__stepof { margin-right: 10px; color: var(--muted); font-size: .8125rem; font-weight: 400; }
.form__job { margin: 0 0 20px; padding: 10px 14px; background: var(--mist); border-left: 4px solid var(--green); font-size: .9375rem; }
.form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 24px; }
.fld { display: flex; flex-direction: column; min-width: 0; margin: 0; padding: 0; border: 0; }
.fld--full { grid-column: 1 / -1; }
.fld__label { display: block; margin: 0 0 6px; padding: 0; color: var(--ink); font-size: .9375rem; font-weight: 500; line-height: 1.35; }
.fld__req { color: var(--danger); }
.fld__label.is-req::after { content: " *"; color: var(--danger); }
.fld__opt { color: var(--muted); font-weight: 400; }

.fld__ctl { display: block; width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid #7d8e85; border-radius: 0; background: #fff; color: var(--ink); font: inherit; font-size: 1rem; line-height: 1.4; transition: border-color .15s; }
textarea.fld__ctl { min-height: 150px; resize: vertical; }
select.fld__ctl { padding-right: 44px; -webkit-appearance: none; appearance: none; cursor: pointer; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1.500l6 6 6-6' fill='none' stroke='%231d7540' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 16px center; }
.fld__ctl::placeholder { color: #75867d; opacity: 1; }
.fld__ctl:hover { border-color: var(--green); }
.fld__ctl:focus { border-color: var(--green); outline: 2px solid var(--green); outline-offset: 0; }
.fld__ctl.is-invalid { border-color: var(--danger); background-color: #fff8f7; }
.fld__ctl.is-invalid:focus { outline-color: var(--danger); }
.fld__help { margin: 6px 0 0; color: var(--muted); font-size: .8125rem; line-height: 1.5; }
.fld__err { display: flex; align-items: flex-start; gap: 8px; margin: 6px 0 0; color: var(--danger); font-size: .875rem; font-weight: 500; line-height: 1.4; }
.fld__err::before { content: ""; flex: none; width: 14px; height: 14px; margin-top: 3px; background: var(--danger); clip-path: polygon(0 0, 70% 0, 100% 30%, 100% 100%, 30% 100%, 0 70%); }
.fld__count { margin: 4px 0 0; color: var(--muted); font-size: .75rem; text-align: right; }

/* wybór wielokrotny (chipsy) */
.fld--multi legend.fld__label { float: none; width: 100%; margin-bottom: 10px; }
.chips { display: flex; flex-wrap: wrap; gap: 10px; }
.chip { position: relative; display: inline-flex; cursor: pointer; }
.chip input { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.chip > span { --c: 10px; --bd: #7d8e85; display: inline-flex; align-items: center; min-height: 46px; padding: 9px 18px; color: var(--ink); font-size: .9375rem; line-height: 1.3; }
.chip:hover > span { --bd: var(--green); }
.chip input:checked + span { --bd: var(--green); --fill: var(--green); color: #fff; }
.chip input:focus-visible + span { outline: 3px solid var(--green); outline-offset: 3px; }

/* zgody i pola wyboru */
.chk { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; color: var(--ink); font-size: .9375rem; line-height: 1.5; }
.chk input { flex: none; width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--green); cursor: pointer; }
.chk a { font-weight: 500; }
.fld--consent { padding: 14px 16px; background: var(--mist); }
.fld--check .fld__help, .fld--check .fld__err { margin-left: 34px; }
.form__info { display: flex; align-items: flex-start; gap: 10px; margin: 0; padding: 12px 14px; background: var(--mint); font-size: .875rem; line-height: 1.55; }
.form__info .ic { flex: none; margin-top: 2px; color: var(--green); }
.form__info a { font-weight: 500; }

/* załączniki */
.drop { --c: 14px; --bd: #7d8e85; --fill: var(--mist); position: relative; }
.drop__input { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.drop__label { position: relative; z-index: 1; display: flex; align-items: center; gap: 16px; padding: 22px; color: var(--ink); font-size: .9375rem; line-height: 1.45; cursor: pointer; }
.drop__label .ic { flex: none; color: var(--green); }
.drop__t { font-weight: 500; }
.drop__label u { color: var(--green); font-weight: 500; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.drop:hover, .drop.is-over { --bd: var(--green); --fill: var(--mint); }
.drop:has(.drop__input:focus-visible) { outline: 3px solid var(--green); outline-offset: 3px; }
.fld--files.is-off .drop { opacity: .5; pointer-events: none; }
.fld--files.is-invalid .drop { --bd: var(--danger); }
.drop__list { display: grid; gap: 8px; margin: 12px 0 0; }
.drop__list:empty { display: none; }
.drop__item { display: flex; align-items: center; gap: 12px; padding: 4px 4px 4px 14px; background: #fff; border: 1px solid var(--silver); }
.drop__name { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; font-size: .9375rem; font-weight: 500; }
.drop__size { flex: none; color: var(--muted); font-size: .8125rem; white-space: nowrap; }
.drop__rm { flex: none; display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 0; background: transparent; color: var(--muted); cursor: pointer; }
.drop__rm:hover { background: #fdecea; color: var(--danger); }

/* komunikaty, nawigacja, potwierdzenie */
.form__errors { margin: 0 0 22px; padding: 16px 18px; border: 1px solid var(--danger); border-left-width: 4px; background: #fff6f5; font-size: .9375rem; line-height: 1.5; }
.form__errors:focus { outline: 2px solid var(--danger); outline-offset: 3px; }
.form__errors p { margin: 0 0 .4em; color: var(--danger); font-weight: 500; }
.form__errors p:last-child { margin-bottom: 0; }
.form__errors ul { margin: 0; padding-left: 1.2em; list-style: disc; }
.form__errors a { color: var(--ink); font-weight: 500; }
.form__nav { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin-top: 30px; }
.form__nav .btn { min-width: 150px; }
.form__status { flex: 1 1 100%; min-height: 1.5em; margin: 0; color: var(--muted); font-size: .9375rem; }
.form__status:empty { display: none; }
.form__note { margin: 20px 0 0; color: var(--muted); font-size: .8125rem; line-height: 1.55; }
.form__note a { font-weight: 500; }
.form__done { --c: 24px; --bd: var(--green); padding: clamp(26px, 4vw, 52px); }
.form__done:focus, .form__done-t:focus { outline: none; }
.form__tick { margin: 0 0 18px; }
.form__tick path:first-child { fill: var(--green); }
.form__done-t { margin: 0 0 12px; font-size: var(--h2); }
.form__done p { max-width: 58ch; }
.form__ref { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; max-width: none !important; margin: 22px 0 0; padding: 14px 18px; background: var(--mist); border-left: 4px solid var(--green); }
.form__ref strong { font-size: 1.25rem; font-weight: 500; letter-spacing: .04em; font-variant-numeric: tabular-nums; }
.form__done-act { margin: 26px 0 0; }
.form__nojs, .form--off { --fill: var(--mist); padding: 22px 24px; }
.form__nojs p:last-child, .form--off p:last-child { margin-bottom: 0; }

@media (max-width: 719.98px) {
  .form__grid { grid-template-columns: minmax(0, 1fr); }
  .form__pi:not(.is-current) .form__pt { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .form__nav .btn { flex: 1 1 140px; }
  .fld--consent { padding: 12px 12px; }
}

/* ==========================================================================
   OFERTA
   ========================================================================== */
.coop { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
.coop__h, .about__h { margin-bottom: 22px; font-size: var(--h2); line-height: 1.15; letter-spacing: -.01em; }
.coop__text p, .about__text p { max-width: 62ch; }
.coop__lead, .about__lead { font-size: 1.1875rem; font-weight: 500; line-height: 1.55; }
.docs { --c: 22px; --fill: var(--mist); padding: clamp(22px, 2.8vw, 34px); }
.docs__col + .docs__col { margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--silver); }
.docs__h { margin-bottom: 8px; color: var(--green); font-size: 1.0625rem; font-weight: 500; }
.docs__item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-top: 1px solid var(--silver-2); }
.docs__name { display: flex; align-items: flex-start; gap: 10px; font-size: .9375rem; line-height: 1.4; }
.docs__name .ic { flex: none; margin-top: 2px; color: var(--green); }
.docs__vers { display: flex; flex: none; gap: 6px; }
.dchip { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; min-height: 32px; padding: 2px 10px; border: 1px solid var(--green); background: #fff; color: var(--green); font-size: .75rem; font-weight: 500; text-decoration: none; }
.dchip:hover { background: var(--green); color: #fff; text-decoration: none; }
.docs__more { margin: 24px 0 0; }

.svcds { display: grid; gap: clamp(40px, 5.5vw, 80px); }
.svcd { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(24px, 4vw, 64px); align-items: center; }
.svcd:nth-child(even) .svcd__media { order: 2; }
.svcd__visual { margin: 8px 0 0; color: var(--muted); font-size: .6875rem; }
.svcd__no { display: inline-block; margin: 0 0 10px; padding: 1px 10px; border: 1px solid var(--silver); color: var(--green); font-size: .8125rem; font-weight: 500; letter-spacing: .06em; }
.svcd__title { font-size: var(--h2); line-height: 1.15; }
.svcd__sub { margin: 8px 0 0; color: var(--green); font-size: 1.0625rem; font-weight: 500; line-height: 1.4; }
.svcd__tag { margin: 8px 0 0; color: var(--green); font-size: .875rem; font-weight: 500; }
.svcd .prose { margin-top: 16px; }
.svcd__act { margin: 22px 0 0; }

.flow { display: flex; align-items: flex-start; margin: 0 0 clamp(28px, 4vw, 44px); }
.flow__item { position: relative; flex: 1 1 0; display: flex; flex-direction: column; gap: 14px; min-width: 0; padding-right: 22px; }
.flow__item::after { content: ""; position: absolute; top: 22px; left: 52px; right: 10px; height: 1px; background: var(--silver); }
.flow__item:last-child::after { display: none; }
.flow__badge { position: relative; display: grid; place-items: center; width: 36px; height: 44px; color: #fff; }
.flow__badge svg { position: absolute; inset: 0; width: 100%; height: 100%; fill: var(--green); }
.flow__badge b { position: relative; font-size: 1rem; font-weight: 500; line-height: 1; }
.flow__t { font-size: 1.0625rem; font-weight: 500; line-height: 1.35; }
.links-row { display: flex; flex-wrap: wrap; gap: 14px; margin: 0; }
@media (max-width: 719.98px) {
  .flow { flex-direction: column; gap: 4px; }
  .flow__item { flex-direction: row; align-items: center; gap: 16px; padding: 0 0 22px; }
  .flow__item::after { top: 48px; bottom: 2px; left: 17px; right: auto; width: 1px; height: auto; }
}

/* ==========================================================================
   O NAS
   ========================================================================== */
.about { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(28px, 5vw, 80px); align-items: center; }
.about__fig { margin: 0; }
.about__fig .frame img { object-position: 14% 50%; }
.about__cap { margin-top: 10px; color: var(--muted); font-size: .8125rem; }
.chain { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 20px clamp(24px, 4vw, 64px); align-items: start; margin-top: clamp(40px, 5.5vw, 76px); padding-top: clamp(28px, 4vw, 48px); border-top: 1px solid var(--silver); }
.chain__h { margin-bottom: 12px; font-size: var(--h2); line-height: 1.15; letter-spacing: -.01em; }
.chain__lead { max-width: 52ch; margin: 0; color: var(--muted); font-size: 1.0625rem; }
.chain .flow { margin: 6px 0 0; }
.chain__note { grid-column: 1 / -1; max-width: none; margin: 0; padding: 16px 22px; border-left: 4px solid var(--green); background: var(--mint); font-size: .9375rem; line-height: 1.55; }
.mgroups { display: grid; gap: clamp(36px, 5vw, 64px); }
.mgroup__h { margin-bottom: 18px; padding-left: 14px; border-left: 4px solid var(--green); font-size: var(--h3); }
.mgroup__cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: clamp(14px, 2vw, 24px); }
.mgroup--media { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); grid-template-areas: "h h" "fig cards"; column-gap: clamp(24px, 4vw, 56px); align-items: start; }
.mgroup--media:nth-of-type(even) { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); grid-template-areas: "h h" "cards fig"; }
.mgroup--media .mgroup__h { grid-area: h; }
.mgroup--media .mgroup__fig { grid-area: fig; margin: 0; }
.mgroup--media .mgroup__cards { grid-area: cards; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); }
.mgroup__cap { margin: 8px 0 0; color: var(--muted); font-size: .6875rem; }
.mgroup--media .frame { aspect-ratio: 1 / 1; }
.mgroup__cards > .mach:last-child:nth-child(odd) { grid-column: 1 / -1; }
.sec--mist .frame--contain { background-color: #fff; }
.mach { display: flex; flex-direction: column; padding: 24px 26px 26px; --c: 18px; }
.mach__title { margin-bottom: 10px; font-size: 1.125rem; }
.mach__p { margin: 0 0 12px; color: var(--muted); font-size: .9375rem; line-height: 1.55; }
.spec { margin: auto 0 0; padding-top: 8px; }
.spec__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; padding: 8px 0; border-top: 1px solid var(--silver-2); font-size: .875rem; line-height: 1.4; }
.spec__row dt { color: var(--muted); }
.spec__row dd { margin: 0; font-weight: 500; text-align: right; }
.spec__row--single { grid-template-columns: minmax(0, 1fr); }
.spec__row--single dd { font-weight: 400; text-align: left; }

/* ==========================================================================
   JAKOŚĆ, REALIZACJE
   ========================================================================== */
.qintro { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(28px, 5vw, 80px); align-items: center; }
.qintro--solo { grid-template-columns: minmax(0, 1fr); }
.qintro__fig { margin: 0; }
.qintro__cap { margin-top: 10px; color: var(--muted); font-size: .8125rem; }
.qtext { max-width: 78ch; }
.qtext__lead { font-size: clamp(1.125rem, 1rem + .6vw, 1.4375rem); font-weight: 300; line-height: 1.55; color: var(--ink); }
.qtext p:last-child { margin-bottom: 0; }
.qclose { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(24px, 3.5vw, 56px); }
.qclose p { position: relative; margin: 0; padding-top: 24px; border-top: 1px solid var(--silver); }
.qclose p::before { content: ""; position: absolute; left: 0; top: -2px; width: 56px; height: 3px; background: var(--green); }
@media (max-width: 719.98px) { .qclose { grid-template-columns: minmax(0, 1fr); gap: 28px; } }
.qteam { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(28px, 5vw, 72px); align-items: stretch; }
.qteam__h { margin-bottom: 18px; font-size: var(--h2); line-height: 1.15; letter-spacing: -.01em; }
.qteam__p { max-width: 62ch; margin: 0; color: var(--ink); font-size: 1.1875rem; font-weight: 300; line-height: 1.6; }
.qclient { --c: 26px; --fill: var(--deep); --bd: var(--deep); padding: clamp(24px, 3vw, 36px); color: #dbe5df; }
.qclient__h { margin-bottom: 18px; color: #fff; font-size: var(--h3); }
.qclient__list { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; }
.qclient__list li { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 12px; align-items: start; line-height: 1.5; }
.qclient__ic { margin-top: 2px; color: var(--lime); }
.qgear { margin-top: clamp(32px, 4vw, 52px); padding-top: clamp(24px, 3vw, 36px); border-top: 1px solid var(--silver); }
.qgear__lead { margin: 0 0 20px; font-weight: 500; }
.qgear__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(14px, 2vw, 24px); margin: 0; padding: 0; list-style: none; }
.qgear__item { --c: 18px; display: flex; flex-direction: column; padding: 24px 24px 26px; }
.qgear__ic { display: block; margin-bottom: 14px; color: var(--green); }
.qgear__t { margin: 0 0 8px; font-size: 1.0625rem; line-height: 1.3; }
.qgear__d { margin: 0; color: var(--muted); font-size: .9375rem; line-height: 1.55; }
.real__intro { max-width: 70ch; margin: 0 0 clamp(24px, 3vw, 40px); font-size: 1.0625rem; }

/* ==========================================================================
   KARIERA
   ========================================================================== */
.jobs { display: grid; gap: 18px; }
.jobc { --c: 20px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 16px 28px; padding: clamp(20px, 2.6vw, 32px) clamp(20px, 3vw, 36px); }
.jobc:hover, .jobc:focus-within { --bd: var(--green); }
.jobc__title { margin-bottom: 10px; font-size: var(--h3); }
.jobc__title a { color: var(--ink); text-decoration: none; }
.jobc__title a::after { content: ""; position: absolute; inset: 0; }
.jobc__title a:hover { color: var(--green); }
.jobc__title a:focus-visible { outline: none; }
.jobc__title a:focus-visible::after { outline: 3px solid var(--green); outline-offset: 3px; }
.jobc__sum { max-width: 70ch; margin: 12px 0 0; color: var(--muted); }
.jobc__more { display: inline-flex; align-items: center; gap: 8px; color: var(--green); font-weight: 500; white-space: nowrap; }
.empty { --fill: var(--mist); display: flex; align-items: flex-start; gap: 20px; padding: 28px 32px; color: var(--green); }
.empty .ic { flex: none; margin-top: 2px; }
.empty__t { margin: 0 0 4px; color: var(--ink); font-size: 1.125rem; font-weight: 500; }
.empty__s { margin: 0; color: var(--muted); }
.split--form { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); align-items: start; }
.split--form .split__text { position: sticky; top: calc(var(--hdr) + 24px); }
.open__h { margin-bottom: 14px; font-size: var(--h2); line-height: 1.15; }
.open__t { max-width: 46ch; font-size: 1.0625rem; }
.open__m { color: var(--muted); font-size: .875rem; }
@media (max-width: 899.98px) {
  .split--form { grid-template-columns: minmax(0, 1fr); }
  .split--form .split__text { position: static; }
  .jobc { grid-template-columns: minmax(0, 1fr); }
}

.job { display: grid; grid-template-columns: minmax(0, 8fr) minmax(260px, 3.4fr); gap: clamp(28px, 4vw, 64px); align-items: start; }
.job__sec + .job__sec { margin-top: clamp(28px, 4vw, 44px); }
.job__h { margin-bottom: 16px; padding-left: 14px; border-left: 4px solid var(--green); font-size: var(--h3); }
.job__aside { --c: 18px; --fill: var(--mist); position: sticky; top: calc(var(--hdr) + 24px); padding: 24px 26px 26px; }
.job__ah { margin-bottom: 10px; font-size: var(--h3); }
.job__mail { margin: 0; font-weight: 500; overflow-wrap: anywhere; }
.job__sum { max-width: 70ch; margin: 14px 0 0; font-size: 1.0625rem; }
.job__act { display: flex; flex-wrap: wrap; gap: 12px; margin: 22px 0 0; }
@media (max-width: 899.98px) {
  .job { grid-template-columns: minmax(0, 1fr); }
  .job__aside { position: static; }
}
@media (max-width: 899.98px) {
  .coop, .about, .svcd, .chain, .qintro, .qteam { grid-template-columns: minmax(0, 1fr); }
  .svcd:nth-child(even) .svcd__media { order: 0; }
  .about__fig, .qintro__fig { max-width: 620px; }
  .mgroup--media, .mgroup--media:nth-of-type(even) { grid-template-columns: minmax(0, 1fr); grid-template-areas: "h" "fig" "cards"; row-gap: 18px; }
  .mgroup--media .mgroup__fig { max-width: 520px; }
  .qgear__list { grid-template-columns: minmax(0, 1fr); }
}

/* ==========================================================================
   KONTAKT
   ========================================================================== */
.chans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2.2vw, 28px); }
.chan { --c: 20px; display: grid; align-content: start; gap: 4px; padding: 28px 28px 30px; }
.chan--main { --bd: var(--green); --fill: var(--mint); }
.chan__ic { display: grid; place-items: center; width: 52px; height: 60px; margin-bottom: 12px; background: var(--green); color: #fff; clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%); }
.chan__t { font-size: var(--h3); }
.chan__v { margin: 6px 0 0; font-size: 1.25rem; font-weight: 500; line-height: 1.35; }
.chan__v a { color: var(--ink); text-decoration: none; overflow-wrap: anywhere; }
.chan__v a:hover { color: var(--green); text-decoration: underline; }
.chan__l { display: block; margin-bottom: 1px; color: var(--muted); font-size: .8125rem; font-weight: 400; }
.chan__d { margin: 10px 0 0; color: var(--muted); font-size: .9375rem; line-height: 1.5; }
@media (max-width: 1019.98px) { .chans { grid-template-columns: minmax(0, 1fr); } .chan { grid-template-columns: auto minmax(0, 1fr); column-gap: 20px; align-items: start; } .chan > * { grid-column: 2; } .chan > .chan__ic { grid-column: 1; grid-row: 1 / span 4; margin: 0; } }

.kform { display: grid; grid-template-columns: minmax(0, 7fr) minmax(280px, 4fr); gap: clamp(28px, 4vw, 64px); align-items: start; }
.kform__h { margin-bottom: 8px; font-size: var(--h2); line-height: 1.15; }
.kform__req { margin: 0 0 22px; color: var(--muted); font-size: .875rem; }
.kform__aside { display: grid; gap: 28px; }
.visit__h { margin-bottom: 14px; font-size: var(--h3); }
.visit__addr { display: flex; align-items: flex-start; gap: 12px; margin: 0 0 16px; line-height: 1.55; }
.visit__addr .ic { flex: none; margin-top: 3px; color: var(--green); }
.visit__links { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 22px; margin: 14px 0 0; }
.visit__links .more { display: inline-flex; align-items: center; gap: 8px; }
.visit__fig { margin: 24px 0 0; }
.visit__fig figcaption { margin-top: 8px; color: var(--muted); font-size: .8125rem; }
@media (max-width: 980px) { .kform { grid-template-columns: minmax(0, 1fr); } }

/* ---------- karta firmy: „tabliczka rysunkowa” ---------- */
.cut--bold::before { clip-path: polygon(evenodd,
  0 0, calc(100% - var(--c)) 0, 100% var(--c), 100% 100%, var(--c) 100%, 0 calc(100% - var(--c)), 0 0,
  2px 2px, calc(100% - var(--c) - .83px) 2px, calc(100% - 2px) calc(var(--c) + .83px), calc(100% - 2px) calc(100% - 2px), calc(var(--c) + .83px) calc(100% - 2px), 2px calc(100% - var(--c) - .83px), 2px 2px); }
/* Układ: karta firmy i ciemna karta „Dane do przelewu” obok siebie (od 1280 px; niżej jedna kolumna), poniżej pasek z kodem QR i wizytówką */
.cdata { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; align-items: stretch; }
.cdata > * { min-width: 0; }
@media (min-width: 1280px) {
  .cdata { grid-template-columns: minmax(0, 12fr) minmax(0, 10fr); gap: 28px; }
  .cdata--bank .tvc { grid-column: 1 / -1; }
}

.tcard { --c: 28px; --bd: var(--green); display: flex; flex-direction: column; }
.tcard > .tgrid { flex: 1; }
.tcard.cut::before { z-index: 3; }
.tcard__head { display: grid; grid-template-columns: auto minmax(0, 1fr); border-bottom: 1px solid var(--silver); }
.tcard__logo { display: block; align-self: center; width: 132px; margin: 26px 28px; line-height: 0; }
.tcard__logo img { display: block; width: 132px; height: auto; }
.tcard__id { display: grid; align-content: center; gap: 2px; padding: 24px 28px 26px; border-left: 1px solid var(--silver); }
.tcard__name { margin: 2px 0 0; color: var(--ink); font-size: clamp(1.375rem, 1.1rem + .9vw, 1.75rem); font-weight: 500; line-height: 1.15; letter-spacing: -.01em; }
.tcard__addr { display: grid; margin-top: 14px; font-size: 1.0625rem; line-height: 1.5; }
.tcard__line { display: block; }
.tcell__l { display: block; margin: 0 0 3px; color: var(--muted); font-size: .8125rem; font-weight: 400; line-height: 1.3; }
.tgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 0; background: var(--silver); }
.tgrid > .tcell--wide { grid-column: 1 / -1; }
.tcell { min-width: 0; padding: 16px 22px 18px; background: #fff; }
.tcell__v { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 10px; min-height: 36px; margin: 0; }
.tcell__val { min-width: 0; color: var(--ink); font-size: 1.125rem; font-weight: 500; line-height: 1.35; overflow-wrap: anywhere; }
.tcell__val a { color: inherit; text-decoration: none; }
.tcell__val a:hover { color: var(--green); text-decoration: underline; }
.tcell__val--all { -webkit-user-select: all; user-select: all; }
.tcell__val--strong { font-size: clamp(1rem, .85rem + .45vw, 1.25rem); letter-spacing: .01em; font-variant-numeric: tabular-nums; }
.copy { display: inline-flex; flex: none; margin-left: auto; align-items: center; gap: 6px; min-height: 36px; padding: 6px 11px; border: 1px solid var(--silver); background: #fff; color: var(--green); font-size: .8125rem; font-weight: 500; line-height: 1.2; cursor: pointer; transition: background-color .15s, border-color .15s, color .15s; }
.copy:hover { border-color: var(--green); background: var(--mint); }
.copy.is-done { border-color: var(--green); background: var(--green); color: #fff; }

/* Zasłonięty numer rachunku / IBAN: widać początek i koniec, pełny numer jest dla czytników ekranu i przycisku „Kopiuj”.
   Gdy kopiowanie się nie uda (skrypt dodaje .is-revealed), numer pokazuje się w całości, aby dało się go zaznaczyć. */
.mk { -webkit-user-select: none; user-select: none; }
.mk__full { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.is-revealed .mk { display: none; }
.is-revealed .mk__full { position: static; width: auto; height: auto; margin: 0; overflow: visible; clip: auto; clip-path: none; white-space: normal; }

/* Ciemna karta „Dane do przelewu” */
.tpay { --night: #10261b; --c: 26px; --fill: var(--night); --bd: var(--night); color: #fff; }
.tpay :focus-visible { outline-color: #8be0ad; }
.tpay__h { display: flex; align-items: center; gap: 10px; margin: 0; padding: 20px 22px 16px; color: #fff; font-size: 1.125rem; font-weight: 500; }
.tpay__h::before { content: ""; flex: none; width: 12px; height: 14px; background: #5fcf8f; clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%); }
.tpay__grid { background: rgba(255, 255, 255, .16); border-top: 1px solid rgba(255, 255, 255, .16); }
.tpay .tcell { background: var(--night); }
.tpay .tcell__l { color: #a9c9b7; }
.tpay .tcell__val { color: #fff; }
.tpay .tcell__val--strong { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace; font-size: clamp(.9375rem, .8rem + .4vw, 1.125rem); font-weight: 500; letter-spacing: 0; }
.tpay .copy { border-color: rgba(255, 255, 255, .38); background: transparent; color: #fff; }
.tpay .copy:hover { border-color: #fff; background: rgba(255, 255, 255, .12); }
.tpay .copy.is-done { border-color: #5fcf8f; background: var(--green); color: #fff; }
.tpay__note { display: flex; gap: 10px; padding: 14px 22px 20px; border-top: 1px solid rgba(255, 255, 255, .16); color: #c3d9cb; font-size: .875rem; line-height: 1.55; }
.tpay__note .ic { flex: none; margin-top: 2px; color: #8be0ad; }
.tpay__note > div > :last-child { margin-bottom: 0; }
.tpay__note a { color: #fff; }
.tpay__nojs { display: grid; gap: 10px; margin: 0; padding: 14px 22px; border-top: 1px solid rgba(255, 255, 255, .16); }
.tpay__nojs dd { margin: 0; color: #fff; font: 500 1rem/1.4 ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace; overflow-wrap: anywhere; }

/* Pasek z kodem QR i wizytówką: kod z opisem po lewej, przyciski po prawej; w wąskiej kolumnie (bez danych do przelewu) i na telefonie elementy układają się pod sobą */
.tvc { --c: 22px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px 32px; align-items: center; padding: 22px 28px; }
.tvc__act { display: flex; flex-wrap: wrap; gap: 12px; min-width: 0; }
.tvc__act .btn { flex: 1 1 auto; padding-inline: 20px; }
.tqr { display: flex; align-items: center; gap: 20px; margin: 0; min-width: 0; }
.tqr__code { flex: none; width: 132px; padding: 6px; border: 1px solid var(--silver); background: #fff; line-height: 0; }
.tqr__code svg { width: 100%; height: auto; }
.tqr figcaption { max-width: 34ch; color: var(--muted); font-size: .875rem; line-height: 1.5; }
.tvc > :only-child { grid-column: 1 / -1; }
@media (min-width: 1280px) { .cdata:not(.cdata--bank) .tvc { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 899.98px) { .tvc { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 599.98px) {
  .tcard { --c: 20px; }
  .tcard__head { grid-template-columns: minmax(0, 1fr); }
  .tcard__logo { margin: 24px 24px 20px; }
  .tcard__id { padding: 20px 24px 24px; border-top: 1px solid var(--silver); border-left: 0; }
  .tgrid { grid-template-columns: minmax(0, 1fr); }
  .tcell { padding: 16px 20px 18px; }
  .tpay { --c: 20px; }
  .tpay__h, .tpay__note, .tpay__nojs { padding-inline: 20px; }
  .tvc { --c: 18px; padding: 22px 20px 24px; }
  .tqr { gap: 16px; }
  .tqr__code { width: 112px; }
  .tvc__act .btn { flex-basis: 100%; }
}

/* ==========================================================================
   ZAPYTAJ O PROJEKT / ZGŁOSZENIA
   ========================================================================== */
.rfq { display: grid; grid-template-columns: minmax(0, 7fr) minmax(280px, 3.6fr); gap: clamp(28px, 4vw, 64px); align-items: start; }
.rfq__form { min-width: 0; }
.rfqside { display: grid; gap: 20px; }
.rfqside__card { --c: 18px; --fill: var(--mist); padding: 24px 26px 26px; }
.rfqside__h { margin-bottom: 10px; font-size: var(--h3); }
.rfqside__card p { font-size: .9375rem; }
.rfqside__list { display: grid; gap: 12px; margin: 16px 0 0; }
.rfqside__list li { display: flex; align-items: flex-start; gap: 12px; }
.rfqside__list .ic { flex: none; margin-top: 3px; color: var(--green); }
.rfqside__list a { color: var(--ink); font-weight: 500; text-decoration: none; overflow-wrap: anywhere; }
.rfqside__list a:hover { color: var(--green); text-decoration: underline; }
.rfqside__certs { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--silver); }
.rfqside__secure { --c: 18px; padding: 22px 26px 24px; }
.rfqside__sh { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; font-size: 1.0625rem; line-height: 1.3; }
.rfqside__sh .ic { flex: none; color: var(--green); }
.rfqside__slist { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; color: var(--muted); font-size: .875rem; line-height: 1.5; }
.rfqside__slist li { display: grid; grid-template-columns: 16px minmax(0, 1fr); gap: 10px; }
.rfqside__slist .ic { margin-top: 3px; color: var(--green); }
.rfqside__ct { margin: 0 0 10px !important; color: var(--muted); font-size: .8125rem !important; }
.rfqside__sec { margin: 16px 0 0; }
.tags { display: flex; flex-wrap: wrap; gap: 8px; }
.tag { display: inline-block; padding: 4px 12px; border: 1px solid var(--silver); background: #fff; color: var(--ink); font-size: .8125rem; font-weight: 500; text-decoration: none; }
.tag:hover { border-color: var(--green); color: var(--green); text-decoration: none; }
@media (min-width: 981px) { .rfqside { position: sticky; top: calc(var(--hdr) + 24px); } }
@media (max-width: 980px) { .rfq { grid-template-columns: minmax(0, 1fr); } }

.faq { max-width: 880px; border-top: 1px solid var(--silver); }
.faq__item { border-bottom: 1px solid var(--silver); }
.faq__q { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 4px; font-size: 1.0625rem; font-weight: 500; line-height: 1.4; list-style: none; cursor: pointer; }
.faq__q::-webkit-details-marker { display: none; }
.faq__q:hover { color: var(--green); }
.faq__mark { position: relative; flex: none; width: 22px; height: 22px; }
.faq__mark::before, .faq__mark::after { content: ""; position: absolute; left: 50%; top: 50%; width: 14px; height: 2px; margin: -1px 0 0 -7px; background: var(--green); transition: transform .2s ease; }
.faq__mark::after { transform: rotate(90deg); }
.faq__item[open] .faq__mark::after { transform: rotate(0); }
.faq__a { max-width: 70ch; padding: 0 4px 22px; }
.faq__a p:last-child { margin-bottom: 0; }

/* ==========================================================================
   DOKUMENTY I STRONY PRAWNE
   ========================================================================== */
.docrows { border-top: 1px solid var(--silver); }
.docrow { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 24px; padding: 20px 4px; border-bottom: 1px solid var(--silver); }
.docrow__t { font-size: var(--h3); }
.docrow__t a { color: var(--ink); text-decoration: none; }
.docrow__t a:hover { color: var(--green); text-decoration: underline; }
.docrow__s { max-width: 70ch; margin: 4px 0 0; color: var(--muted); font-size: .9375rem; }
.docrow__meta { margin: 0; color: var(--muted); font-size: .875rem; }
@media (min-width: 720px) { .docrow__meta { white-space: nowrap; } }

.legal { display: grid; grid-template-columns: minmax(240px, 3fr) minmax(0, 9fr); gap: clamp(28px, 4vw, 72px); align-items: start; }
.legal__side { position: sticky; top: calc(var(--hdr) + 20px); max-height: calc(100vh - var(--hdr) - 40px); overflow-y: auto; padding-right: 4px; }
.legal__meta { --c: 16px; --fill: var(--mist); margin-bottom: 24px; padding: 18px 20px 20px; }
.legal__facts { display: grid; gap: 4px; margin: 0; font-size: .9375rem; }
.legal__facts > div { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px 12px; }
.legal__facts dt { color: var(--muted); }
.legal__facts dd { margin: 0; font-weight: 500; }
.legal__badge { display: inline-block; padding: 0 8px; background: var(--mint); color: var(--green); font-size: .75rem; font-weight: 500; line-height: 1.6; }
.legal__act { margin: 16px 0 0; }
.toc, .vers { margin-bottom: 26px; }
.toc__h { margin-bottom: 10px; font-size: .9375rem; font-weight: 500; }
.toc__list { border-left: 1px solid var(--silver); }
.toc__list a { display: block; margin-left: -1px; padding: 5px 0 5px 14px; border-left: 2px solid transparent; color: var(--ink); font-size: .875rem; line-height: 1.4; text-decoration: none; }
.toc__list a:hover { border-left-color: var(--green); color: var(--green); }
.toc__l2 a { padding-left: 28px; color: var(--muted); }
.vers__list li { padding: 4px 0; font-size: .875rem; }
.vers__s { color: var(--muted); }
.prose--legal { max-width: 80ch; font-size: 1rem; line-height: 1.7; }
.prose--legal h2 { margin: 2.2em 0 .6em; padding-top: 1.1em; border-top: 1px solid var(--silver); font-size: var(--h3); line-height: 1.3; }
.prose--legal > h2:first-child, .prose--legal > blockquote + h2 { margin-top: 1.6em; }
.prose--legal h3 { margin: 1.6em 0 .5em; font-size: 1.0625rem; }
.prose--legal h4 { margin: 1.4em 0 .4em; font-size: 1rem; }
.prose--legal blockquote { margin: 0 0 1.6em; padding: 14px 18px; background: var(--mist); border-left: 4px solid var(--green); }
.prose--legal blockquote > :last-child { margin-bottom: 0; }
.prose--legal ul, .prose--legal ol { margin-bottom: 1em; }
.prose--legal a { overflow-wrap: anywhere; }
.table-wrap { margin: 1.2em 0 1.6em; overflow-x: auto; }
.table-wrap table, .prose--legal table { width: 100%; border-collapse: collapse; font-size: .9375rem; line-height: 1.5; }
.prose--legal th, .prose--legal td { padding: 10px 12px; border: 1px solid var(--silver); text-align: left; vertical-align: top; }
.prose--legal th { background: var(--mist); font-weight: 500; }
@media (max-width: 980px) {
  .legal { grid-template-columns: minmax(0, 1fr); }
  .legal__side { position: static; max-height: none; overflow: visible; }
  .toc__list { columns: 2; column-gap: 28px; }
  .toc__list li { break-inside: avoid; }
}
@media (max-width: 599.98px) { .toc__list { columns: 1; } }

@media print {
  .legal { display: block; }
  .legal__side { position: static; max-height: none; }
  .prose--legal { max-width: none; font-size: 10.5pt; line-height: 1.5; }
  .prose--legal h2 { break-after: avoid; }
  .prose--legal table, .prose--legal tr { break-inside: avoid; }
  .copy, [data-copy-all], .tvc, .btn, .embed { display: none !important; }
  .tpay, .tpay__h, .tpay .tcell__l, .tpay .tcell__val, .tpay__note, .tpay__nojs dd { color: #000; }
  .tpay .tcell, .tpay__grid { background: #fff; }
  .tpay__nojs { display: none; }
  .mk { display: none; }
  .tcard, .tpay { break-inside: avoid; }
  .tpay__h::before { display: none; }
  .mk__full { position: static; width: auto; height: auto; margin: 0; overflow: visible; clip: auto; clip-path: none; white-space: normal; }
  .cut::before, .cut::after { display: none; }
  .cut { border: 1px solid #999; }
}

/* ---------- bezpieczeństwo informacji (/bezpieczenstwo/) ---------- */
.sxupd { margin: 14px 0 0; color: var(--muted); font-size: .875rem; }

/* trzy skróty pod nagłówkiem: cały kafelek klika się jednym odnośnikiem (nazwa), reszta to opis */
.sxfast { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(14px, 2vw, 24px); margin: 0; padding: 0; list-style: none; }
.sxfast__item { --c: 18px; display: flex; flex-direction: column; gap: 10px; padding: 24px 24px 26px; }
.sxfast__item:hover { --bd: var(--green); }
.sxfast__ic { color: var(--green); }
.sxfast__t { margin: 0; font-size: var(--h3); font-weight: 500; line-height: 1.25; }
.sxfast__a { color: var(--ink); text-decoration: none; }
.sxfast__a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.sxfast__a:hover { color: var(--green); }
.sxfast__d { margin: 0; color: var(--muted); font-size: .9375rem; line-height: 1.55; }
@supports selector(:has(*)) {
  .sxfast__a:focus-visible { outline: none; }
  .sxfast__item:has(.sxfast__a:focus-visible) { outline: 3px solid var(--green); outline-offset: 3px; }
}
@media (max-width: 899.98px) { .sxfast { grid-template-columns: minmax(0, 1fr); } }

/* TISAX */
.sxt { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.sxt__h { margin-bottom: 18px; font-size: var(--h2); line-height: 1.15; letter-spacing: -.01em; }
.sxt__lead { max-width: 62ch; font-size: 1.1875rem; font-weight: 300; line-height: 1.6; }
.sxt__key { max-width: 62ch; margin: 1.5em 0; padding: 4px 0 4px 20px; border-left: 4px solid var(--green); color: var(--deep); font-size: 1.1875rem; font-weight: 500; line-height: 1.5; }
.sxt__p { max-width: 62ch; }
.sxt__tm { margin: 1.6em 0 0; color: var(--muted); font-size: .8125rem; }
.sxres { --c: 18px; --bd: var(--green); max-width: 62ch; margin: 28px 0 0; padding: 22px 24px 20px; }
.sxres__h { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; font-size: 1.0625rem; font-weight: 500; }
.sxres__h .ic { flex: none; color: var(--green); }
.sxres__dl { display: grid; gap: 10px; margin: 0; }
.sxres__row { display: grid; grid-template-columns: minmax(0, 11rem) minmax(0, 1fr); gap: 4px 16px; }
.sxres__row dt { color: var(--muted); font-size: .875rem; }
.sxres__row dd { margin: 0; font-weight: 500; overflow-wrap: anywhere; }
@media (max-width: 899.98px) { .sxt { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 559.98px) { .sxres__row { grid-template-columns: minmax(0, 1fr); } }

/* NIS2: dziesięć obszarów art. 21 ust. 2 (lit. a–j) na ciemnym tle */
.sec--nis { background: var(--deep) url("/static/img/hex-dark.svg"); }
.sxn__head { max-width: 76ch; margin-bottom: clamp(28px, 4vw, 48px); }
.sxn__h { margin-bottom: 16px; color: #fff; font-size: var(--h2); line-height: 1.15; letter-spacing: -.01em; }
.sxn__lead { margin: 0; color: #c7d5cd; font-size: 1.0625rem; line-height: 1.65; }
.sxn { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(14px, 2vw, 24px); margin: 0; padding: 0; list-style: none; }
.sxn__item { --c: 16px; --bd: rgba(255, 255, 255, .2); --fill: rgba(255, 255, 255, .05); display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 18px; align-items: start; padding: 22px 24px 24px; }
.sxn__lit { display: grid; place-items: center; width: 44px; height: 48px; background: rgba(39, 198, 106, .18); clip-path: polygon(25% 3%, 75% 3%, 100% 50%, 75% 97%, 25% 97%, 0 50%); color: var(--lime); font-size: 1.25rem; font-weight: 700; line-height: 1; }
.sxn__t { margin-bottom: 8px; color: #fff; font-size: var(--h3); font-weight: 500; line-height: 1.25; }
.sxn__d { margin: 0; color: #c7d5cd; font-size: .9375rem; line-height: 1.6; }
.sxn__note { display: flex; align-items: flex-start; gap: 10px; max-width: 80ch; margin: clamp(24px, 3vw, 36px) 0 0; color: #b9c8c0; font-size: .875rem; line-height: 1.55; }
.sxn__note .ic { flex: none; margin-top: 2px; color: var(--lime); }
@media (max-width: 899.98px) { .sxn { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 559.98px) {
  .sxn__item { grid-template-columns: 36px minmax(0, 1fr); gap: 12px; padding: 18px 16px 20px; }
  .sxn__lit { width: 36px; height: 40px; font-size: 1.0625rem; }
}

/* dane w formularzach i dokument polityki */
.sxd { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.sxd__h { margin-bottom: 16px; font-size: var(--h2); line-height: 1.15; letter-spacing: -.01em; }
.sxd__lead { max-width: 62ch; margin-bottom: 20px; font-size: 1.125rem; font-weight: 300; }
.sxd__list { display: grid; gap: 14px; max-width: 68ch; margin: 0 0 28px; padding: 0; list-style: none; }
.sxd__list li { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 12px; align-items: start; line-height: 1.5; }
.sxd__ic { margin-top: 2px; color: var(--green); }
.sxd__main .callout { max-width: 68ch; margin-bottom: 0; }
.sxd__dh { margin-bottom: 16px; font-size: var(--h3); }
.sxd__certs { grid-template-columns: minmax(0, 260px); margin-bottom: 14px; }
.sxd__dt { margin: 0 0 8px; color: var(--muted); font-size: .9375rem; }
@media (max-width: 899.98px) { .sxd { grid-template-columns: minmax(0, 1fr); } }

/* zgłaszanie podatności */
.sxc { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.sxc__h { margin-bottom: 16px; font-size: var(--h2); line-height: 1.15; letter-spacing: -.01em; }
.sxc__lead { max-width: 62ch; font-size: 1.125rem; font-weight: 300; }
.sxc__contact { --c: 18px; max-width: 560px; margin: 24px 0 32px; padding: 22px 24px; }
.sxc__cl { display: flex; align-items: center; gap: 10px; margin: 0 0 6px; color: var(--muted); font-size: .9375rem; }
.sxc__cl .ic { flex: none; color: var(--green); }
.sxc__addr { margin: 0 0 14px; font-size: clamp(1.25rem, 1.1rem + .6vw, 1.5rem); font-weight: 500; line-height: 1.3; overflow-wrap: anywhere; }
.sxc__alt { margin: 0 0 14px; }
.sxc__meta { margin: 0; color: var(--muted); font-size: .875rem; }
.sxc__ah, .sxc__fh { margin-bottom: 16px; font-size: var(--h3); }
.sxc__ask { display: grid; gap: 12px; max-width: 62ch; margin: 0; padding: 0; list-style: none; }
.sxc__ask li { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 12px; align-items: start; line-height: 1.5; }
.sxc__ic { margin-top: 3px; color: var(--green); }
.sxs { display: grid; margin: 0 0 8px; padding: 0; list-style: none; }
.sxs__item { position: relative; display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 18px; padding-bottom: 28px; }
.sxs__item:not(:last-child)::before { content: ""; position: absolute; left: 21px; top: 52px; bottom: 4px; width: 2px; background: var(--silver); }
.sxs__n { display: grid; place-items: center; width: 44px; height: 48px; background: var(--green); clip-path: polygon(25% 3%, 75% 3%, 100% 50%, 75% 97%, 25% 97%, 0 50%); color: #fff; font-size: 1.125rem; font-weight: 700; line-height: 1; }
.sxs__t { margin-bottom: 4px; font-size: 1.0625rem; font-weight: 500; line-height: 1.3; }
.sxs__d { margin: 0; font-size: .9375rem; line-height: 1.6; }
.sxc__nb { margin: 0; padding-top: 16px; border-top: 1px solid var(--silver); color: var(--muted); font-size: .875rem; }
@media (max-width: 899.98px) { .sxc { grid-template-columns: minmax(0, 1fr); } }
