/* Podstrony "Oferta" w stylu /nowa (warstwa na noclo-nowa.css). Generowane przez scripts/build-nowa-oferta.mjs */

/* HERO: wyśrodkowany nagłówek + duży prawdziwy ekran w oknie przeglądarki (pochyla się przy przewijaniu) */
.oh { position: relative; padding: 150px 0 40px; background: radial-gradient(1100px 520px at 50% -80px, #E9E4FF 0%, rgba(233, 228, 255, 0) 70%), var(--bg, #fff); overflow: hidden; }
.oh .c { max-width: 920px; }
.oh .chip { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px 8px 10px; border-radius: 999px; background: #fff; border: 1px solid var(--line); font: 600 14px/1 var(--b); color: var(--ink); box-shadow: 0 8px 24px -16px rgba(23, 21, 43, .35); }
.oh .chip svg { width: 20px; height: 20px; color: var(--v); }
.oh h1 { font-family: var(--h); font-weight: 600; font-size: clamp(38px, 4.6vw, 64px); line-height: 1.04; letter-spacing: -.03em; color: var(--ink); margin: 22px auto 22px; }
.oh h1 strong { display: block; font-weight: 800; margin-top: 6px; background: linear-gradient(90deg, var(--v) 0%, #7B61F0 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.oh .lead { font-size: 19px; max-width: 700px; margin: 0 auto; }
.oh .ctas { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; margin-top: 32px; }
.oh .ctas .btn { min-height: 56px; padding: 0 28px; font-size: 16.5px; }
.oh .chk { justify-content: center; margin-top: 22px; }
.oh .scena2 { margin-top: 64px; }
.oh .okno2 img { display: block; }
.oh .okno2.kadr-a img { aspect-ratio: 2100 / 1120; object-fit: cover; object-position: center top; }
.oh .okno2.kal img { aspect-ratio: 2100 / 880; object-fit: cover; object-position: left top; }
.oh .notka { margin-top: 26px; font-size: 14px; color: var(--txt); }
.oh .notka a { color: var(--v); font-weight: 600; }

/* ATUTY: 4 karty pod ekranem */
.atuty-sek { padding: 56px 0 0; }
.atuty { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.atuty > div { background: #fff; border: 1px solid var(--line); border-radius: 22px; padding: 22px; display: grid; grid-template-columns: 44px 1fr; column-gap: 14px; align-items: center; }
.atuty b { font: 700 16.5px/1.25 var(--h); color: var(--ink); }
.atuty small { grid-column: 2; color: var(--txt); font-size: 14px; line-height: 1.45; margin-top: 2px; }
.ai { width: 44px; height: 44px; border-radius: 14px; background: var(--mist); color: var(--v); display: grid; place-items: center; grid-row: span 2; flex: none; }
.ai svg { width: 22px; height: 22px; }

/* SEKCJE "tekst + ekran" na przemian */
.fs-sek > .wrap > .c { margin-bottom: 20px; }
.fs { display: grid; grid-template-columns: 1fr 1.25fr; gap: clamp(36px, 5vw, 80px); align-items: center; margin-top: clamp(56px, 8vw, 110px); }
.fs.odw .ft { order: 2; } .fs.odw .fo { order: 1; }
.fs .nr { display: inline-grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; background: var(--ink); color: var(--lav); font: 700 15px/1 var(--h); margin-bottom: 20px; }
.fs h3 { font: 700 clamp(26px, 2.6vw, 36px)/1.12 var(--h); letter-spacing: -.02em; color: var(--ink); margin: 0 0 14px; }
.fs .lead { font-size: 17.5px; }
.fs .ul { margin-top: 22px; }
.fo { position: relative; padding: clamp(18px, 3vw, 36px); border-radius: 30px; background: linear-gradient(150deg, #EFEDFA 0%, #E3DDFB 100%); }
.fo::before { content: ""; position: absolute; width: 60%; aspect-ratio: 1; right: -12%; bottom: -30%; border-radius: 50%; background: radial-gradient(circle, rgba(196, 181, 253, .55), rgba(196, 181, 253, 0) 70%); pointer-events: none; }
.ek { position: relative; margin: 0; border-radius: 16px; overflow: hidden; background: #fff; border: 1px solid rgba(23, 21, 43, .08); box-shadow: 0 30px 60px -34px rgba(23, 21, 43, .5); transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.fo:hover .ek { transform: translateY(-6px); }
.ek .pasek { height: 34px; display: flex; align-items: center; gap: 6px; padding: 0 12px; background: #F4F3F9; border-bottom: 1px solid var(--line); }
.ek .pasek i { width: 9px; height: 9px; border-radius: 50%; background: #D8D5E6; }
.ek .pasek span { margin-left: 10px; font: 500 11.5px/1 var(--b); color: var(--txt); background: #fff; border: 1px solid var(--line); border-radius: 999px; padding: 5px 12px; }
.ek .kad { position: relative; overflow: hidden; }
.ek img { display: block; width: 100%; height: auto; aspect-ratio: 2100 / 1290; object-fit: cover; object-position: left top; }
/* przyblizenia na najwazniejszy fragment ekranu */
.ek.kadr-d .kad, .ek.kadr-k .kad, .ek.kadr-p .kad { aspect-ratio: 16 / 10.5; }
.ek.kadr-d img, .ek.kadr-k img, .ek.kadr-p img { position: absolute; max-width: none; aspect-ratio: auto; height: auto; }
.ek.kadr-d img { width: 175%; left: -9%; top: -38%; }
.ek.kadr-k img { width: 165%; left: -36%; top: -12%; }
.ek.kadr-p img { width: 150%; left: -9%; top: -62%; }

/* ciemny pas: liczby jako kroki na podstronach */
.ciem .liczby b em { font-style: normal; }

/* KAFLE: mniejsze funkcje */
.kafle { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 50px; }
.kf { background: #fff; border: 1px solid var(--line); border-radius: 24px; padding: 28px; transition: border-color .3s, transform .4s cubic-bezier(.2, .7, .2, 1), box-shadow .4s; }
.kf:hover { border-color: #D8D1F7; transform: translateY(-4px); box-shadow: 0 24px 50px -34px rgba(88, 70, 199, .45); }
.kf .ai { grid-row: auto; margin-bottom: 18px; }
.kf h3 { font: 700 19px/1.25 var(--h); color: var(--ink); margin: 0 0 8px; }
.kf p { margin: 0; color: var(--txt); font-size: 15.5px; line-height: 1.55; }

/* inne moduly pod FAQ */
.inne { max-width: 820px; margin: 56px auto 0; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.inne a { display: grid; grid-template-columns: 44px 1fr 20px; gap: 14px; align-items: center; padding: 18px 20px; border-radius: 20px; border: 1px solid var(--line); background: #fff; color: var(--ink); text-decoration: none; transition: border-color .3s, background .3s; }
.inne a:hover { border-color: var(--v); background: #FBFAFF; }
.inne .ai { grid-row: auto; }
.inne b { display: block; font: 700 16.5px/1.25 var(--h); }
.inne small { display: block; color: var(--txt); font-size: 14px; margin-top: 3px; }
.inne a > svg { width: 20px; height: 20px; color: var(--v); }

@media (max-width: 1020px) {
  .atuty { grid-template-columns: 1fr 1fr; }
  .kafle { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .oh { padding: 118px 0 24px; }
  .oh h1 { font-size: clamp(32px, 8.8vw, 40px); }
  .oh .lead { font-size: 17px; }
  .oh .ctas .btn { width: 100%; min-height: 54px; }
  .oh .scena2 { margin-top: 40px; }
  .atuty-sek { padding-top: 36px; }
  .atuty { grid-template-columns: 1fr; gap: 12px; }
  .fs { grid-template-columns: 1fr; gap: 26px; margin-top: 64px; }
  .fs.odw .ft, .fs .ft { order: 1; } .fs.odw .fo, .fs .fo { order: 2; }
  .fs h3 { font-size: 26px; }
  .fs .lead { font-size: 16.5px; }
  .fo { border-radius: 22px; padding: 14px; }
  .ek .pasek span { display: none; }
  .kafle { grid-template-columns: 1fr; gap: 12px; margin-top: 36px; }
  .kf { padding: 22px; }
  .inne { grid-template-columns: 1fr; margin-top: 40px; }
}
/* poprawki po przegladzie: wieksze ekrany, poswiata w ramce, kadr dodatkow */
@media (min-width: 761px) { .fs { grid-template-columns: 1fr 1.55fr; } }
.fo { overflow: hidden; }
.ek.kadr-d img { top: -33%; }
.ctab .zd img { object-position: center top; }
@media (min-width: 761px) { .fs.odw { grid-template-columns: 1.55fr 1fr; } }
.ek.kadr-c .kad { aspect-ratio: 16 / 10.5; }
.ek.kadr-c img { position: absolute; max-width: none; aspect-ratio: auto; height: auto; width: 150%; left: -34%; top: -4%; }

/* telefon: zrzut mobilny (mtel) albo przyblizony kadr ekranu panelu (mz, zmienne --mw/--ml/--mt) */
@media (max-width: 760px) {
  .ek.mtel .kad { aspect-ratio: 4 / 4.6; }
  .ek.mtel img { position: static; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; object-position: center top; }
  .okno2.mtel img { aspect-ratio: 4 / 4.4 !important; object-fit: cover; object-position: center top; }
  .ek.mz .kad { aspect-ratio: 4 / 3.4; }
  .ek.mz img { position: absolute; max-width: none; aspect-ratio: auto; height: auto; width: var(--mw); left: var(--ml); top: var(--mt); }
  .okno2.mz { overflow: hidden; }
  .okno2.mz > picture { display: block; position: relative; aspect-ratio: 4 / 3.4; overflow: hidden; }
  .okno2.mz img { position: absolute; max-width: none; aspect-ratio: auto !important; height: auto; width: var(--mw); left: var(--ml); top: var(--mt); }
}

/* ===================== RUNDA 2: bloki interaktywne ===================== */
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.notka.wrap { display: block; }

/* HERO split (tekst + komponent) i ciemny */
.ohs { padding-bottom: 60px; }
.ohg { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(32px, 5vw, 72px); align-items: center; }
.ohs .oht { text-align: left; }
.ohs h1 { margin-left: 0; margin-right: 0; font-size: clamp(36px, 4.2vw, 58px); }
.ohs .lead { margin: 0; max-width: 560px; }
.ohs .ctas, .ohs .chk { justify-content: flex-start; }
.ohs .notka { text-align: left; margin-top: 30px; }
.ohw { margin-top: 56px; }
.ohd { background: radial-gradient(900px 520px at 80% 0%, rgba(88, 70, 199, .45), rgba(88, 70, 199, 0) 70%), var(--ink); color: #fff; }
.ohd h1 { color: #fff; }
.ohd h1 strong { background: linear-gradient(90deg, #C4B5FD, #A996FF); -webkit-background-clip: text; background-clip: text; }
.ohd .lead, .ohd .notka, .ohd .chk span { color: rgba(255, 255, 255, .74); }
.ohd .lead b { color: #fff; }
.ohd .chip { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .14); color: #fff; box-shadow: none; }
.ohd .chip svg { color: var(--lav); }
.ohd .btn.p { background: var(--lav); color: var(--ink); } .ohd .btn.p:hover { background: #D3C8FE; }
.ohd .btn.o { border-color: rgba(255, 255, 255, .4); color: #fff; } .ohd .btn.o:hover { background: rgba(255, 255, 255, .08); }
.ohd .chk i { background: rgba(196, 181, 253, .18); color: var(--lav); }
.ohd-ek { -webkit-transform: perspective(1400px) rotateY(-10deg) rotateX(4deg); transform: perspective(1400px) rotateY(-10deg) rotateX(4deg); transition: transform .8s cubic-bezier(.2, .7, .2, 1); }
.ohd-ek:hover { -webkit-transform: none; transform: none; }
.ohd-ek .ek { box-shadow: 0 50px 90px -40px rgba(0, 0, 0, .8); border-color: rgba(255, 255, 255, .12); }

/* ZADATEK */
.zad { background: #fff; border: 1px solid var(--line); border-radius: 28px; padding: clamp(22px, 3vw, 32px); box-shadow: 0 40px 80px -46px rgba(23, 21, 43, .45); max-width: 520px; margin-left: auto; }
.zad-g { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.zad-l { display: inline-flex; align-items: center; gap: 8px; font: 700 16px/1 var(--h); color: var(--ink); }
.zad-l svg { width: 22px; height: 22px; color: var(--v); }
.zad-p { font-size: 13px; color: var(--txt); background: var(--mist); padding: 6px 10px; border-radius: 999px; }
.zad-k { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 22px; }
.zad-k > div { border-radius: 18px; padding: 16px 18px; background: #F7F6FB; }
.zad-k > div:first-child { background: var(--ink); color: #fff; }
.zad-k small { display: block; font-size: 13px; opacity: .72; }
.zad-k b { display: block; font: 800 clamp(26px, 3vw, 34px)/1.1 var(--h); margin-top: 6px; font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.zad-k > div:first-child b { color: var(--lav); }
.zad-bar { height: 10px; border-radius: 99px; background: #EAE7F5; margin-top: 18px; overflow: hidden; }
.zad-bar i { display: block; height: 100%; width: 30%; border-radius: 99px; background: linear-gradient(90deg, var(--v), #8B74F5); transition: width .35s cubic-bezier(.2, .7, .2, 1); }
.zad-s { display: flex; align-items: center; gap: 14px; margin-top: 18px; }
.zad-s output { min-width: 52px; text-align: right; font: 700 17px/1 var(--h); color: var(--ink); font-variant-numeric: tabular-nums; }
.zad input[type=range] { -webkit-appearance: none; appearance: none; flex: 1; min-width: 0; height: 44px; background: transparent; margin: 0; cursor: pointer; touch-action: pan-y; --p: 30%; }
.zad input[type=range]::-webkit-slider-runnable-track { height: 6px; border-radius: 99px; background: linear-gradient(90deg, var(--v) var(--p), #E4E0F2 var(--p)); }
.zad input[type=range]::-moz-range-track { height: 6px; border-radius: 99px; background: #E4E0F2; }
.zad input[type=range]::-moz-range-progress { height: 6px; border-radius: 99px; background: var(--v); }
.zad input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 28px; height: 28px; margin-top: -11px; border-radius: 50%; background: #fff; border: 3px solid var(--v); box-shadow: 0 6px 16px -6px rgba(88, 70, 199, .7); }
.zad input[type=range]::-moz-range-thumb { width: 22px; height: 22px; border-radius: 50%; background: #fff; border: 3px solid var(--v); }
.zad input[type=range]:focus-visible { outline: 2px solid var(--v); outline-offset: 4px; border-radius: 8px; }
.zad-pre { display: flex; gap: 8px; margin-top: 8px; flex-wrap: wrap; }
.zad-pre button { min-height: 40px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--line); background: #fff; font: 600 14px/1 var(--b); color: var(--ink); cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.zad-pre button.on { background: var(--ink); color: #fff; border-color: var(--ink); }
.zad-o { margin: 16px 0 0; font-size: 14.5px; color: var(--txt); min-height: 3em; }
.zad-m { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 16px; padding-top: 16px; border-top: 1px dashed var(--line); }
.zad-m span { font: 600 12.5px/1 var(--b); padding: 7px 10px; border-radius: 8px; background: var(--mist); color: var(--v); }

/* PRZEGLAD PRODUKTU */
.tour { max-width: 1120px; margin: 0 auto; }
.tour-t { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; margin-bottom: 20px; }
.tour-t button { position: relative; display: flex; align-items: center; gap: 10px; min-height: 56px; padding: 8px 16px 8px 10px; border-radius: 16px; border: 1px solid var(--line); background: #fff; cursor: pointer; text-align: left; overflow: hidden; transition: border-color .25s, background .25s, box-shadow .25s; font-family: inherit; }
.tour-t button:hover { border-color: #D6CFF6; }
.tour-t button.on { border-color: var(--v); box-shadow: 0 12px 30px -20px rgba(88, 70, 199, .7); }
.tour-t .ti { width: 36px; height: 36px; border-radius: 11px; background: var(--mist); color: var(--v); display: grid; place-items: center; flex: none; }
.tour-t button.on .ti { background: var(--v); color: #fff; }
.tour-t .ti svg { width: 19px; height: 19px; }
.tour-t .tt b { display: block; font: 700 14.5px/1.2 var(--h); color: var(--ink); }
.tour-t .tt small { display: block; font-size: 12.5px; color: var(--txt); margin-top: 2px; white-space: nowrap; }
.tour-t .tp { position: absolute; left: 0; bottom: 0; height: 3px; width: 0; background: var(--v); }
.tour-t button.run .tp { width: 100%; transition: width var(--czas, 6000ms) linear; }
.tour-e .kad { aspect-ratio: 2100 / 1290; }
.tour-s { position: absolute; top: 0; left: 0; right: 0; bottom: 0; opacity: 0; visibility: hidden; transition: opacity .5s ease, visibility .5s; }
.tour-s.on { opacity: 1; visibility: visible; }
.tour-s img { width: 100%; height: 100%; object-fit: cover; object-position: left top; aspect-ratio: auto; }
.oh .tour .tour-e { box-shadow: 0 60px 120px -60px rgba(23, 21, 43, .55); border-radius: 20px; }

/* OS CZASU */
.os { list-style: none; padding: 0; margin: 56px auto 0; max-width: 860px; position: relative; --p: 0; }
.os::before, .os::after { content: ""; position: absolute; left: 27px; top: 10px; bottom: 10px; width: 2px; border-radius: 2px; background: #E6E2F4; }
.os::after { background: linear-gradient(180deg, var(--v), #8B74F5); bottom: auto; height: calc((100% - 20px) * var(--p)); }
.os li { position: relative; display: grid; grid-template-columns: 56px 1fr; gap: 22px; padding: 0 0 38px; opacity: .55; transition: opacity .4s; }
.os li.on { opacity: 1; }
.os li:last-child { padding-bottom: 0; }
.os-k { position: relative; z-index: 1; width: 56px; height: 56px; border-radius: 18px; background: #fff; border: 1px solid var(--line); color: var(--txt); display: grid; place-items: center; transition: background .4s, color .4s, box-shadow .4s, transform .4s; }
.os-k svg { width: 24px; height: 24px; }
.os li.on .os-k { background: var(--v); border-color: var(--v); color: #fff; box-shadow: 0 16px 30px -16px rgba(88, 70, 199, .8); }
.os small { display: block; font: 600 12.5px/1 var(--b); color: var(--v); text-transform: uppercase; letter-spacing: .08em; margin-top: 6px; }
.os b { display: block; font: 700 clamp(20px, 2vw, 24px)/1.25 var(--h); color: var(--ink); margin-top: 8px; }
.os p { margin: 6px 0 0; color: var(--txt); font-size: 16px; line-height: 1.6; max-width: 620px; }
.os-sek .notka { margin-top: 36px; }

/* LEJEK */
.lej { background: var(--ink); color: #fff; border-radius: 28px; padding: clamp(22px, 3vw, 30px); box-shadow: 0 50px 100px -50px rgba(23, 21, 43, .7); position: relative; overflow: hidden; }
.lej::before { content: ""; position: absolute; width: 420px; height: 420px; right: -160px; top: -200px; border-radius: 50%; background: radial-gradient(circle, rgba(139, 116, 245, .45), rgba(139, 116, 245, 0) 70%); pointer-events: none; }
.lej-g { position: relative; display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; gap: 10px; }
.lej-g span { display: inline-flex; align-items: center; gap: 8px; font: 700 15px/1 var(--h); }
.lej-g svg { width: 20px; height: 20px; color: var(--lav); }
.lej-g small { font-size: 12.5px; color: rgba(255, 255, 255, .6); }
.lej-r { position: relative; margin-top: 10px; }
.lej-b { width: 34%; height: 46px; border-radius: 12px; background: linear-gradient(90deg, rgba(196, 181, 253, .28), rgba(196, 181, 253, .12)); border: 1px solid rgba(196, 181, 253, .22); display: flex; align-items: center; padding: 0 14px; overflow: hidden; white-space: nowrap; transition: width 1s cubic-bezier(.2, .7, .2, 1) calc(var(--n) * 120ms); }
.lej-r:last-child .lej-b { background: linear-gradient(90deg, var(--v), #8B74F5); border-color: transparent; }
.lej.in .lej-b { width: var(--w); }
.lej-b b { font: 600 14px/1 var(--b); }
.lej-e { display: flex; gap: 6px; margin-top: 6px; flex-wrap: wrap; }
.lej-e code { font: 500 11.5px/1 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; padding: 5px 8px; border-radius: 6px; background: rgba(255, 255, 255, .08); color: var(--lav); }
.lej-e code.m { color: rgba(255, 255, 255, .7); }

/* INTEGRACJE */
.int { margin-top: 44px; }
.int-t { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; }
.int-t button { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 6px 16px 6px 6px; border-radius: 999px; border: 1px solid var(--line); background: #fff; font: 600 15px/1 var(--b); color: var(--ink); cursor: pointer; transition: background .25s, color .25s, border-color .25s; }
.int-t button.on { background: var(--ink); color: #fff; border-color: var(--ink); }
.lit { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--c); color: #fff; font: 800 12px/1 var(--h); letter-spacing: -.02em; flex: none; }
.lit.duzy { width: 56px; height: 56px; border-radius: 18px; font-size: 16px; margin-bottom: 18px; }
.int-p { position: relative; margin-top: 24px; }
.int-s { display: none; grid-template-columns: 1.2fr 1fr; gap: 28px; background: #fff; border: 1px solid var(--line); border-radius: 28px; padding: clamp(24px, 3.4vw, 40px); -webkit-animation: intIn .45s cubic-bezier(.2, .7, .2, 1); animation: intIn .45s cubic-bezier(.2, .7, .2, 1); }
.int-s.on { display: grid; }
@-webkit-keyframes intIn { from { opacity: 0; -webkit-transform: translateY(10px); } to { opacity: 1; -webkit-transform: none; } }
@keyframes intIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.int-s h3 { font: 700 clamp(24px, 2.4vw, 32px)/1.15 var(--h); color: var(--ink); margin: 0 0 10px; }
.int-z { background: #F7F6FB; border-radius: 20px; padding: 20px; display: flex; flex-wrap: wrap; gap: 8px; align-content: flex-start; }
.int-z small { width: 100%; font-size: 13px; color: var(--txt); margin-bottom: 4px; }
.int-z code { font: 500 13px/1 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; padding: 8px 10px; border-radius: 8px; background: #fff; border: 1px solid var(--line); color: var(--ink); }

/* BEZ / Z NOCLO */
.por { max-width: 900px; margin: 44px auto 0; }
.por-sw { position: relative; display: grid; grid-template-columns: 1fr 1fr; width: min(360px, 100%); margin: 0 auto 28px; padding: 5px; border-radius: 999px; background: #EFEDFA; }
.por-sw button { position: relative; z-index: 1; min-height: 48px; border: 0; background: none; border-radius: 999px; font: 600 15px/1 var(--b); color: var(--txt); cursor: pointer; transition: color .3s; }
.por-sw button.on { color: #fff; }
.por-sw i { position: absolute; top: 5px; bottom: 5px; left: 50%; width: calc(50% - 5px); border-radius: 999px; background: var(--v); transition: left .45s cubic-bezier(.2, .7, .2, 1), background .45s; }
.por.bez .por-sw i { left: 5px; background: #5E5B71; }
.por-l { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.por-l li { position: relative; min-height: 68px; border-radius: 20px; border: 1px solid var(--line); background: #fff; overflow: hidden; transition: background .4s; }
.por-l li > span { position: absolute; top: 0; left: 0; right: 0; bottom: 0; display: flex; align-items: center; gap: 12px; padding: 14px 22px; font-size: 16.5px; line-height: 1.4; transition: opacity .45s calc(var(--n) * 60ms), transform .45s calc(var(--n) * 60ms); }
.por-z { color: var(--ink); font-weight: 600; }
.por-z svg { width: 24px; height: 24px; color: var(--v); flex: none; }
.por-bez { color: var(--txt); text-decoration: line-through; text-decoration-color: rgba(94, 91, 113, .45); opacity: 0; -webkit-transform: translateY(-10px); transform: translateY(-10px); }
.por.bez .por-bez { opacity: 1; -webkit-transform: none; transform: none; }
.por.bez .por-z { opacity: 0; -webkit-transform: translateY(10px); transform: translateY(10px); }
.por.bez .por-l li { background: #F7F6FB; }

/* URZADZENIA */
.urz { max-width: 1080px; margin: 0 auto; }
.urz-t { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; margin-bottom: 26px; }
.urz-t button { min-height: 44px; padding: 0 18px; border-radius: 999px; border: 1px solid var(--line); background: #fff; font: 600 14.5px/1 var(--b); color: var(--ink); cursor: pointer; transition: background .25s, color .25s, border-color .25s; }
.urz-t button.on { background: var(--ink); border-color: var(--ink); color: #fff; }
.urz-sc { position: relative; padding: 0 6% 40px 0; }
.lap-e { border-radius: 18px 18px 0 0; background: #1D1A33; padding: 12px 12px 0; box-shadow: 0 60px 100px -60px rgba(23, 21, 43, .6); }
.lap-b { height: 30px; display: flex; align-items: center; gap: 6px; padding: 0 10px; background: #F4F3F9; border-radius: 8px 8px 0 0; }
.lap-b i { width: 8px; height: 8px; border-radius: 50%; background: #D8D5E6; }
.lap-b span { margin-left: 10px; font: 500 11.5px/1 var(--b); color: var(--txt); background: #fff; border: 1px solid var(--line); border-radius: 999px; padding: 4px 12px; }
.lap-s { position: relative; aspect-ratio: 2100 / 1200; overflow: hidden; background: #fff; }
.urz-s { position: absolute; top: 0; left: 0; right: 0; bottom: 0; opacity: 0; visibility: hidden; transition: opacity .5s, visibility .5s; }
.urz-s.on { opacity: 1; visibility: visible; }
.urz-s img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.lap-p { height: 16px; margin: 0 -4%; border-radius: 0 0 16px 16px; background: linear-gradient(180deg, #D8D5E6, #BDB8D2); }
.tel2 { position: absolute; right: 0; bottom: 0; width: 22%; min-width: 130px; }
.tel2-e { border-radius: 28px; border: 7px solid #1D1A33; overflow: hidden; background: #fff; box-shadow: 0 40px 70px -30px rgba(23, 21, 43, .7); aspect-ratio: 780 / 1560; }
.tel2-e img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.urz-o { text-align: center; color: var(--txt); margin: 16px auto 0; max-width: 620px; min-height: 3em; }

/* CASE STUDIES */
.kej { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-top: 48px; }
.kej-k { background: #fff; border: 1px solid var(--line); border-radius: 28px; overflow: hidden; display: flex; flex-direction: column; }
.kej-z { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: #EFEDFA; }
.kej-z img { width: 100%; height: 100%; object-fit: cover; object-position: center top; transition: transform .8s cubic-bezier(.2, .7, .2, 1); }
.kej-z:hover img { -webkit-transform: scale(1.04); transform: scale(1.04); }
.kej-u { position: absolute; left: 16px; bottom: 16px; display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 999px; background: rgba(23, 21, 43, .82); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); color: #fff; font: 600 13px/1 var(--b); text-decoration: none; }
.kej-u svg { width: 16px; height: 16px; }
.kej-t { padding: 26px 28px 30px; }
.kej-t small { color: var(--v); font-weight: 600; font-size: 13.5px; }
.kej-t h3 { font: 700 26px/1.2 var(--h); color: var(--ink); margin: 8px 0 10px; }
.kej-t p { color: var(--txt); margin: 0; line-height: 1.6; }
.kej-tag { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 18px; }
.kej-tag span { font: 600 12.5px/1 var(--b); padding: 8px 11px; border-radius: 999px; background: var(--mist); color: var(--ink); }

/* tablet i telefon */
@media (max-width: 900px) {
  .ohg { grid-template-columns: 1fr; }
  .ohs .oht { text-align: center; }
  .ohs h1, .ohs .lead { margin-left: auto; margin-right: auto; }
  .ohs .ctas, .ohs .chk { justify-content: center; }
  .ohs .notka { text-align: center; }
  .zad { margin: 0 auto; }
  .int-s { grid-template-columns: 1fr; }
  .ohd-ek { -webkit-transform: none; transform: none; }
}
@media (max-width: 760px) {
  .ohs { padding-bottom: 36px; }
  .ohs h1 { font-size: clamp(31px, 8.6vw, 40px); }
  .zad { border-radius: 22px; padding: 20px; }
  .zad-k b { font-size: 26px; }
  .tour-t { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; -webkit-overflow-scrolling: touch; scroll-snap-type: x mandatory; scrollbar-width: none; margin: 0 -16px 16px; padding: 2px 16px 6px; }
  .tour-t::-webkit-scrollbar { display: none; }
  .tour-t button { flex: none; scroll-snap-align: center; min-height: 52px; }
  .tour-e .kad { aspect-ratio: 4 / 3.4; }
  .tour-s img { position: absolute; max-width: none; width: var(--mw, 100%); height: auto; left: var(--ml, 0); top: var(--mt, 0); }
  .os { margin-top: 40px; }
  .os::before, .os::after { left: 21px; }
  .os li { grid-template-columns: 44px 1fr; gap: 16px; padding-bottom: 28px; }
  .os-k { width: 44px; height: 44px; border-radius: 14px; }
  .os-k svg { width: 20px; height: 20px; }
  .os p { font-size: 15.5px; }
  .lej-b { height: 42px; }
  .int-t { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; margin: 0 -16px; padding: 2px 16px 6px; }
  .int-t::-webkit-scrollbar { display: none; }
  .int-t button { flex: none; }
  .int-s { border-radius: 22px; padding: 22px; gap: 20px; }
  .por-l li { min-height: 76px; }
  .por-l li > span { padding: 12px 16px; font-size: 15.5px; }
  .urz-sc { padding: 0 0 70px; }
  .tel2 { width: 34%; min-width: 0; right: -4px; }
  .tel2-e { border-width: 5px; border-radius: 20px; }
  .lap-e { padding: 7px 7px 0; border-radius: 12px 12px 0 0; }
  .lap-b span { display: none; }
  .kej { grid-template-columns: 1fr; gap: 16px; margin-top: 36px; }
  .kej-t { padding: 22px; }
  .kej-t h3 { font-size: 23px; }
}
@media (prefers-reduced-motion: reduce) {
  .lej-b, .tour-s, .urz-s, .por-l li > span { transition: none; }
}
.os li { opacity: .78; } .os li.on { opacity: 1; }

/* ===================== INTEGRACJE ===================== */
.lit.xl { width: 72px; height: 72px; border-radius: 22px; font-size: 20px; }
.lit.duzy { font-size: 15px; }

/* MAPA (hub): Noclo w srodku, uslugi na orbicie */
.mapa { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(28px, 4vw, 60px); align-items: center; max-width: 1100px; margin: 0 auto; }
.mapa-o { position: relative; aspect-ratio: 1; width: 100%; max-width: 520px; margin: 0 auto; }
.mapa-sv { position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: visible; }
.mapa-sv line { stroke: #DAD4F3; stroke-width: .6; stroke-dasharray: 2 2.2; transition: stroke .35s; }
.mapa-sv line.on { stroke: var(--v); stroke-width: 1; stroke-dasharray: 3 2; -webkit-animation: mapaFlow 1.2s linear infinite; animation: mapaFlow 1.2s linear infinite; }
@-webkit-keyframes mapaFlow { to { stroke-dashoffset: -10; } }
@keyframes mapaFlow { to { stroke-dashoffset: -10; } }
.mapa-sv .orb { fill: none; stroke: #ECE8FA; stroke-width: .5; }
.mapa-sv .orb.o2 { fill: rgba(196, 181, 253, .12); stroke: none; }
.mapa-n { position: absolute; left: 50%; top: 50%; width: 22%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); border-radius: 26%; box-shadow: 0 24px 50px -20px rgba(88, 70, 199, .7); }
.mapa-n img { display: block; width: 100%; height: auto; border-radius: 26%; }
.mapa-w { position: absolute; left: var(--x); top: var(--y); -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); width: 17%; aspect-ratio: 1; padding: 0; border: 0; border-radius: 26%; background: #fff; box-shadow: 0 14px 30px -18px rgba(23, 21, 43, .45), 0 0 0 1px var(--line); display: grid; place-items: center; cursor: pointer; transition: transform .35s cubic-bezier(.2, .7, .2, 1), box-shadow .35s; }
.mapa-w .lit { width: 64%; height: 64%; border-radius: 30%; font-size: clamp(10px, 1.3vw, 14px); }
.mapa-w:hover, .mapa-w.on { -webkit-transform: translate(-50%, -50%) scale(1.12); transform: translate(-50%, -50%) scale(1.12); box-shadow: 0 20px 40px -18px rgba(88, 70, 199, .6), 0 0 0 2px var(--c); }
.mapa-w:focus-visible { outline: 2px solid var(--v); outline-offset: 3px; }
.mapa-k { position: relative; min-height: 190px; }
.mapa-kk { position: absolute; top: 0; left: 0; right: 0; display: grid; grid-template-columns: 56px 1fr 22px; gap: 16px; align-items: center; padding: 24px; border-radius: 26px; background: #fff; border: 1px solid var(--line); box-shadow: 0 30px 70px -44px rgba(23, 21, 43, .5); color: var(--ink); text-decoration: none; opacity: 0; visibility: hidden; -webkit-transform: translateY(10px); transform: translateY(10px); transition: opacity .4s, transform .4s, visibility .4s; }
.mapa-kk.on { opacity: 1; visibility: visible; -webkit-transform: none; transform: none; }
.mapa-kk .lit { width: 56px; height: 56px; border-radius: 18px; font-size: 15px; }
.mapa-kk small { display: block; font: 600 12.5px/1 var(--b); color: var(--v); text-transform: uppercase; letter-spacing: .06em; }
.mapa-kk b { display: block; font: 700 22px/1.2 var(--h); margin-top: 8px; }
.mapa-kk em { display: block; font-style: normal; color: var(--txt); margin-top: 6px; line-height: 1.5; }
.mapa-kk > svg { width: 22px; height: 22px; color: var(--v); }
.mapa-kk:hover { border-color: var(--v); }

/* MOST (podstrona): Noclo <-> usluga */
.most { display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 30px; padding: clamp(22px, 3vw, 34px); box-shadow: 0 40px 90px -50px rgba(23, 21, 43, .5); position: relative; overflow: hidden; }
.most::before { content: ""; position: absolute; width: 60%; aspect-ratio: 1; right: -20%; top: -40%; border-radius: 50%; background: radial-gradient(circle, rgba(196, 181, 253, .35), rgba(196, 181, 253, 0) 70%); pointer-events: none; }
.most-k { position: relative; text-align: center; }
.most-t { width: 72px; height: 72px; margin: 0 auto; border-radius: 22px; box-shadow: 0 18px 36px -18px rgba(23, 21, 43, .55); }
.most-t.n img { display: block; width: 72px; height: 72px; border-radius: 22px; }
.most-k small { display: block; margin-top: 10px; font: 600 12.5px/1.2 var(--b); color: var(--ink); max-width: 90px; }
.most-s { position: relative; display: grid; gap: 22px; }
.most-r { display: grid; gap: 8px; }
.most-c { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; }
.most-c span { font: 600 12px/1 var(--b); padding: 7px 10px; border-radius: 999px; background: var(--mist); color: var(--v); white-space: nowrap; }
.most-r.we .most-c span { background: #F1F0F5; color: var(--ink); }
.most-l { position: relative; height: 4px; border-radius: 4px; background: #EDEAF8; overflow: hidden; }
.most-l i { position: absolute; top: 0; width: 26px; height: 4px; border-radius: 4px; background: linear-gradient(90deg, rgba(88, 70, 199, 0), var(--v)); -webkit-animation: mostP 2.4s linear infinite; animation: mostP 2.4s linear infinite; }
.most-l i:nth-child(2) { -webkit-animation-delay: -.8s; animation-delay: -.8s; } .most-l i:nth-child(3) { -webkit-animation-delay: -1.6s; animation-delay: -1.6s; }
.most-r.we .most-l i { background: linear-gradient(270deg, rgba(0, 0, 0, 0), var(--c)); -webkit-animation-name: mostL; animation-name: mostL; }
.most-l b { display: none; }
@-webkit-keyframes mostP { from { left: -30px; } to { left: 100%; } }
@keyframes mostP { from { left: -30px; } to { left: 100%; } }
@-webkit-keyframes mostL { from { left: 100%; } to { left: -30px; } }
@keyframes mostL { from { left: 100%; } to { left: -30px; } }

/* KATALOG z filtrem */
.kat { margin-top: 40px; }
.kat-f { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; margin-bottom: 28px; }
.kat-f button { min-height: 46px; padding: 0 18px; border-radius: 999px; border: 1px solid var(--line); background: #fff; font: 600 14.5px/1 var(--b); color: var(--ink); cursor: pointer; display: inline-flex; align-items: center; gap: 8px; transition: background .25s, color .25s, border-color .25s; }
.kat-f button em { font-style: normal; font-size: 12px; min-width: 22px; height: 22px; border-radius: 999px; display: inline-grid; place-items: center; background: var(--mist); color: var(--v); }
.kat-f button.on { background: var(--ink); color: #fff; border-color: var(--ink); }
.kat-f button.on em { background: rgba(255, 255, 255, .16); color: #fff; }
.kat-g { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.kat-k { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: 26px; padding: 26px; color: var(--ink); text-decoration: none; scroll-margin-top: 110px; transition: border-color .3s, transform .4s cubic-bezier(.2, .7, .2, 1), box-shadow .4s, opacity .3s; }
.kat-k:hover, .kat-k:target { border-color: var(--v); -webkit-transform: translateY(-4px); transform: translateY(-4px); box-shadow: 0 24px 50px -34px rgba(88, 70, 199, .55); }
.kat-k[hidden] { display: none; }
.kat-k small { color: var(--v); font: 600 12.5px/1 var(--b); text-transform: uppercase; letter-spacing: .06em; }
.kat-k h3 { font: 700 21px/1.25 var(--h); margin: 8px 0 8px; }
.kat-k p { color: var(--txt); margin: 0 0 18px; line-height: 1.55; font-size: 15.5px; }
.kat-m { display: inline-block; align-self: flex-start; margin-top: auto; font: 600 12.5px/1 var(--b); padding: 7px 10px; border-radius: 8px; background: #F4F3F9; color: var(--ink); }
.kat-a { display: inline-flex; align-items: center; gap: 6px; margin-top: 16px; font: 600 14.5px/1 var(--b); color: var(--v); }
.kat-a svg { width: 18px; height: 18px; transition: transform .3s; }
.kat-k:hover .kat-a svg { -webkit-transform: translateX(4px); transform: translateX(4px); }

/* TABELA modulow */
.tab { margin-top: 40px; border: 1px solid var(--line); border-radius: 26px; overflow: hidden; background: #fff; }
.tab-r { display: grid; grid-template-columns: 1.3fr 1.2fr 1.2fr .9fr; gap: 16px; align-items: center; padding: 16px 24px; border-top: 1px solid var(--line); color: var(--ink); text-decoration: none; font-size: 15px; transition: background .25s; }
a.tab-r:hover { background: #FBFAFF; }
.tab-h { border-top: 0; background: #F7F6FB; font: 600 13px/1 var(--b); color: var(--txt); text-transform: uppercase; letter-spacing: .05em; padding-top: 18px; padding-bottom: 18px; }
.tab-n { display: flex; align-items: center; gap: 12px; }
.tab-n b { font: 700 16px/1.25 var(--h); }
.tab-r > span:not(.tab-n) { color: var(--txt); }
.tab-m { font-style: normal; font: 600 12.5px/1 var(--b); padding: 7px 10px; border-radius: 8px; background: var(--mist); color: var(--v); white-space: nowrap; }
.tab-m.baza { background: #E8F6EE; color: #17804A; }
.tab-m.cm { background: #EAF1FF; color: #1D4FB8; }

/* ZAKRES (podstrona) */
.zak { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 44px; }
.zak-k { background: #fff; border: 1px solid var(--line); border-radius: 26px; padding: 26px; display: flex; flex-wrap: wrap; gap: 8px; align-content: flex-start; }
.zak-g { width: 100%; display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.zak-g b { font: 700 19px/1.2 var(--h); color: var(--ink); }
.zak-s { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--v); color: #fff; }
.zak-s.in { background: var(--ink); }
.zak-s svg { width: 20px; height: 20px; }
.zak-c { font: 600 14px/1 var(--b); padding: 10px 14px; border-radius: 999px; background: var(--mist); color: var(--ink); }
.zak-l { grid-column: 1 / -1; background: #F7F6FB; border-radius: 26px; padding: 8px 28px 26px; }
.zak-z { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px; background: var(--ink); border-radius: 26px; padding: 26px; }
.zak-z small { width: 100%; color: rgba(255, 255, 255, .7); font-size: 13px; margin-bottom: 4px; }
.zak-z code { font: 500 13px/1 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; padding: 8px 10px; border-radius: 8px; background: rgba(255, 255, 255, .08); color: var(--lav); }

/* WARUNKI (modul + ograniczenia) */
.war { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.war-k { display: grid; grid-template-columns: 44px 1fr; gap: 16px; background: #fff; border: 1px solid var(--line); border-radius: 26px; padding: 26px; }
.war-k .ai { grid-row: auto; }
.war-k small { color: var(--v); font: 600 12.5px/1 var(--b); text-transform: uppercase; letter-spacing: .06em; }
.war-k b { display: block; font: 700 20px/1.25 var(--h); color: var(--ink); margin-top: 6px; }
.war-k p { margin: 8px 0 0; color: var(--txt); line-height: 1.6; }
.war-k a { color: var(--v); font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; gap: 4px; }
.war-k a svg { width: 16px; height: 16px; }
.inne .lit { width: 44px; height: 44px; border-radius: 14px; font-size: 12px; }

@media (max-width: 1020px) { .kat-g { grid-template-columns: 1fr 1fr; } }
@media (max-width: 900px) {
  .mapa { grid-template-columns: 1fr; }
  .mapa-o { max-width: 420px; }
  .mapa-k { min-height: 170px; }
}
@media (max-width: 760px) {
  .kat-f { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; margin: 0 -16px 22px; padding: 2px 16px 6px; }
  .kat-f::-webkit-scrollbar { display: none; }
  .kat-f button { flex: none; }
  .kat-g { grid-template-columns: 1fr; gap: 12px; }
  .kat-k { padding: 22px; }
  .mapa-kk { grid-template-columns: 48px 1fr 20px; padding: 18px; gap: 12px; border-radius: 22px; }
  .mapa-kk .lit { width: 48px; height: 48px; border-radius: 15px; font-size: 13px; }
  .mapa-kk b { font-size: 19px; }
  .mapa-kk em { font-size: 14.5px; }
  .mapa-w .lit { font-size: 10px; }
  .tab { border-radius: 22px; }
  .tab-h { display: none; }
  .tab-r { grid-template-columns: 1fr; gap: 6px; padding: 18px; }
  .tab-r > span:not(.tab-n)::before { content: attr(data-l) ": "; color: var(--ink); font-weight: 600; }
  .tab-r > span:last-child::before { content: none; }
  .tab-r > span:last-child { margin-top: 4px; }
  .most { grid-template-columns: 1fr; gap: 18px; padding: 22px; border-radius: 24px; }
  .most-k { display: flex; align-items: center; gap: 12px; text-align: left; }
  .most-k:last-child { -webkit-box-orient: horizontal; flex-direction: row; }
  .most-t, .most-t.n img, .lit.xl { width: 56px; height: 56px; border-radius: 17px; }
  .lit.xl { font-size: 16px; }
  .most-t { margin: 0; }
  .most-k small { margin: 0; max-width: none; font-size: 14px; }
  .zak { grid-template-columns: 1fr; gap: 12px; margin-top: 32px; }
  .zak-k, .zak-z { padding: 22px; border-radius: 22px; }
  .zak-l { padding: 4px 20px 20px; border-radius: 22px; }
  .war { grid-template-columns: 1fr; gap: 12px; }
  .war-k { padding: 22px; border-radius: 22px; }
}
@media (prefers-reduced-motion: reduce) { .most-l i, .mapa-sv line.on { -webkit-animation: none; animation: none; } }

/* most: wiekszy na komputerze */
@media (min-width: 761px) {
  .most { padding: 40px 36px; gap: 22px; }
  .most-t, .most-t.n img, .lit.xl { width: 92px; height: 92px; border-radius: 26px; }
  .lit.xl { font-size: 24px; }
  .most-k small { font-size: 14px; max-width: 110px; }
  .most-s { gap: 30px; }
  .most-c span { font-size: 13.5px; padding: 9px 13px; }
  .most-l { height: 6px; }
  .most-l i { height: 6px; width: 40px; }
}

/* prawdziwe logotypy marek (Simple Icons) w kafelku w kolorze marki */
.lit.logo svg { width: 56%; height: 56%; display: block; color: #fff; }
.mapa-w .lit.logo svg { width: 58%; height: 58%; }

/* integracja w przygotowaniu (Przelewy24) */
.kat-m.wk { background: #FDECEE; color: #B42330; }

.kat-m.pa { background: #FDECEE; color: #B42330; }

/* ===================== CENNIK 2026 ===================== */
/* hero: przyklady cen (klik laduje konfigurator) */
.cnh-p { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; max-width: 1000px; margin: 0 auto; }
.cnh-k { position: relative; display: grid; grid-template-columns: 44px 1fr; column-gap: 14px; row-gap: 2px; align-items: center; text-align: left; padding: 22px; border-radius: 24px; border: 1px solid var(--line); background: #fff; cursor: pointer; font-family: inherit; color: var(--ink); transition: border-color .3s, transform .4s cubic-bezier(.2, .7, .2, 1), box-shadow .4s; }
.cnh-k:hover { border-color: var(--v); -webkit-transform: translateY(-4px); transform: translateY(-4px); box-shadow: 0 24px 50px -34px rgba(88, 70, 199, .55); }
.cnh-k .ai { grid-row: span 3; align-self: start; }
.cnh-k small { font: 600 13px/1.2 var(--b); color: var(--v); }
.cnh-k b { font: 800 30px/1.1 var(--h); letter-spacing: -.02em; }
.cnh-k em { font-style: normal; font-size: 13.5px; color: var(--txt); }
.cnh-a { grid-column: 1 / -1; display: inline-flex; align-items: center; gap: 6px; margin-top: 14px; font: 600 14px/1 var(--b); color: var(--v); }
.cnh-a svg { width: 18px; height: 18px; }

/* konfigurator */
.cn { display: grid; grid-template-columns: 1.35fr 1fr; gap: 28px; align-items: start; margin-top: 48px; }
.cn-l { display: grid; gap: 18px; }
.cn-krok { background: #fff; border: 1px solid var(--line); border-radius: 28px; padding: clamp(22px, 3vw, 32px); }
.cn-kg { display: grid; grid-template-columns: 44px 1fr; gap: 16px; margin-bottom: 22px; }
.cn-nr { width: 44px; height: 44px; border-radius: 14px; background: var(--ink); color: var(--lav); display: grid; place-items: center; font: 800 17px/1 var(--h); }
.cn-kg h3 { font: 700 22px/1.2 var(--h); color: var(--ink); margin: 2px 0 6px; }
.cn-kg p { margin: 0; color: var(--txt); line-height: 1.55; font-size: 15.5px; }
.cn-licz { display: flex; align-items: center; gap: 10px; }
.cn-pm { width: 52px; height: 52px; border-radius: 16px; border: 1px solid var(--line); background: #F7F6FB; font: 500 26px/1 var(--b); color: var(--ink); cursor: pointer; touch-action: manipulation; -webkit-user-select: none; user-select: none; transition: background .2s, border-color .2s; }
.cn-pm:hover { background: var(--mist); border-color: #D6CFF6; }
.cn-licz input { width: 110px; height: 56px; border-radius: 16px; border: 1px solid var(--line); text-align: center; font: 800 28px/1 var(--h); color: var(--ink); -moz-appearance: textfield; background: #fff; }
.cn-licz input::-webkit-outer-spin-button, .cn-licz input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.cn-licz input:focus { outline: 2px solid var(--v); outline-offset: 2px; }
.cn-lj { font: 600 16px/1 var(--b); color: var(--txt); margin-left: 4px; }
.cn-rng { -webkit-appearance: none; appearance: none; width: 100%; height: 44px; margin: 14px 0 6px; background: transparent; cursor: pointer; touch-action: pan-y; --p: 7%; }
.cn-rng::-webkit-slider-runnable-track { height: 8px; border-radius: 99px; background: linear-gradient(90deg, var(--v) var(--p), #E7E4F3 var(--p)); }
.cn-rng::-moz-range-track { height: 8px; border-radius: 99px; background: #E7E4F3; }
.cn-rng::-moz-range-progress { height: 8px; border-radius: 99px; background: var(--v); }
.cn-rng::-webkit-slider-thumb { -webkit-appearance: none; width: 30px; height: 30px; margin-top: -11px; border-radius: 50%; background: #fff; border: 4px solid var(--v); box-shadow: 0 6px 18px -6px rgba(88, 70, 199, .7); }
.cn-rng::-moz-range-thumb { width: 24px; height: 24px; border-radius: 50%; background: #fff; border: 4px solid var(--v); }
.cn-pre { display: flex; gap: 8px; flex-wrap: wrap; }
.cn-pre button { min-width: 52px; min-height: 40px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--line); background: #fff; font: 600 14px/1 var(--b); color: var(--ink); cursor: pointer; }
.cn-pre button.on { background: var(--ink); color: #fff; border-color: var(--ink); }
.cn-note { margin: 16px 0 0; font-size: 14px; color: var(--txt); }
.cn-note a { color: var(--v); font-weight: 600; }
.cn-baza, .cn-mod { display: grid; grid-template-columns: 44px 1fr auto; gap: 14px; align-items: center; padding: 18px; border-radius: 20px; border: 1px solid var(--line); background: #FBFAFF; }
.cn-baza { background: linear-gradient(135deg, #F1EEFF, #F8F6FF); border-color: #DCD4FA; margin-bottom: 12px; }
.cn-baza b, .cn-mt b { display: block; font: 700 16.5px/1.25 var(--h); color: var(--ink); }
.cn-baza small, .cn-mt small { display: block; font-size: 13.5px; color: var(--txt); line-height: 1.45; margin-top: 3px; }
.cn-mt em { display: block; font-style: normal; font-size: 12.5px; color: #8A879C; margin-top: 6px; }
.cn-cena { font: 800 18px/1.1 var(--h); color: var(--ink); text-align: right; white-space: nowrap; }
.cn-cena small { display: block; font: 500 12px/1.3 var(--b); color: var(--txt); }
.cn-mody { display: grid; gap: 10px; }
.cn-mod { position: relative; grid-template-columns: 46px 44px 1fr auto; background: #fff; cursor: pointer; transition: border-color .25s, background .25s, box-shadow .25s; }
.cn-mod input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.cn-mod:hover { border-color: #D6CFF6; }
.cn-mod.on { border-color: var(--v); background: #FAF8FF; box-shadow: 0 16px 36px -28px rgba(88, 70, 199, .7); }
.cn-mod:focus-within { outline: 2px solid var(--v); outline-offset: 2px; }
.cn-sw { position: relative; width: 44px; height: 26px; border-radius: 99px; background: #DCD9E8; transition: background .25s; }
.cn-sw::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px rgba(23, 21, 43, .25); transition: transform .25s cubic-bezier(.2, .7, .2, 1); }
.cn-mod.on .cn-sw { background: var(--v); }
.cn-mod.on .cn-sw::after { -webkit-transform: translateX(18px); transform: translateX(18px); }
.cn-okres { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cn-okres button { position: relative; text-align: left; padding: 16px 18px; border-radius: 20px; border: 1px solid var(--line); background: #fff; cursor: pointer; font-family: inherit; transition: border-color .25s, background .25s; }
.cn-okres button b { display: flex; align-items: center; gap: 8px; font: 700 16.5px/1.2 var(--h); color: var(--ink); }
.cn-okres button small { display: block; font-size: 13.5px; color: var(--txt); margin-top: 4px; }
.cn-okres button.on { border-color: var(--v); background: #FAF8FF; box-shadow: inset 0 0 0 1px var(--v); }
.cn-rab { font: 700 12px/1 var(--b); padding: 5px 8px; border-radius: 999px; background: #E8F6EE; color: #17804A; }

/* podsumowanie (przyklejone) */
.cn-p { position: -webkit-sticky; position: sticky; top: 96px; }
.cn-pk { background: var(--ink); color: #fff; border-radius: 30px; padding: 28px; box-shadow: 0 50px 100px -50px rgba(23, 21, 43, .7); position: relative; overflow: hidden; }
.cn-pk::before { content: ""; position: absolute; width: 380px; height: 380px; right: -150px; top: -180px; border-radius: 50%; background: radial-gradient(circle, rgba(139, 116, 245, .5), rgba(139, 116, 245, 0) 70%); pointer-events: none; }
.cn-ph { position: relative; display: flex; justify-content: space-between; align-items: center; gap: 10px; font: 600 14px/1 var(--b); color: rgba(255, 255, 255, .72); }
.cn-vat { display: inline-flex; padding: 3px; border-radius: 999px; background: rgba(255, 255, 255, .08); }
.cn-vat button { min-height: 32px; padding: 0 12px; border: 0; border-radius: 999px; background: none; color: rgba(255, 255, 255, .7); font: 600 13px/1 var(--b); cursor: pointer; }
.cn-vat button.on { background: #fff; color: var(--ink); }
.cn-suma { position: relative; margin-top: 18px; }
.cn-suma b { display: block; font: 800 clamp(44px, 4.6vw, 58px)/1 var(--h); letter-spacing: -.03em; color: #fff; font-variant-numeric: tabular-nums; }
.cn-suma small { display: block; margin-top: 8px; font-size: 14px; color: rgba(255, 255, 255, .7); }
.cn-sub { position: relative; margin: 12px 0 0; font-size: 14px; color: rgba(255, 255, 255, .78); line-height: 1.5; }
.cn-oszcz { position: relative; margin-top: 14px; padding: 12px 14px; border-radius: 14px; background: rgba(196, 181, 253, .14); color: #E6DFFF; font-size: 14px; line-height: 1.45; }
.cn-oszcz b { color: var(--lav); }
.cn-oszcz button { border: 0; background: none; padding: 0; color: #fff; font: 600 14px/1.45 var(--b); text-decoration: underline; cursor: pointer; }
.cn-lines { position: relative; margin-top: 18px; border-top: 1px solid rgba(255, 255, 255, .12); }
.cn-li { display: flex; justify-content: space-between; gap: 14px; padding: 12px 0; border-bottom: 1px solid rgba(255, 255, 255, .08); }
.cn-li b { display: block; font: 600 14.5px/1.3 var(--b); color: #fff; }
.cn-li small { display: block; font-size: 12.5px; color: rgba(255, 255, 255, .6); margin-top: 2px; }
.cn-li em { font-style: normal; font: 700 15px/1.3 var(--h); color: #fff; white-space: nowrap; font-variant-numeric: tabular-nums; }
.cn-li em i { font-style: normal; font: 500 12px/1 var(--b); color: rgba(255, 255, 255, .55); margin-left: 3px; }
.cn-li.rab em { color: #7FE0A6; }
.cn-cta { position: relative; width: 100%; justify-content: center; margin-top: 22px; min-height: 56px; font-size: 16.5px; }
.cn-free { position: relative; margin: 10px 0 0; text-align: center; font-size: 13px; color: rgba(255, 255, 255, .68); }
.cn-akcje { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 18px; }
.cn-akcje button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 10px; border-radius: 14px; border: 1px solid rgba(255, 255, 255, .16); background: rgba(255, 255, 255, .04); color: #fff; font: 600 13px/1.2 var(--b); cursor: pointer; transition: background .2s; }
.cn-akcje button:hover { background: rgba(255, 255, 255, .1); }
.cn-akcje svg { width: 17px; height: 17px; color: var(--lav); flex: none; }
.cn-bar { display: none; }
.cn-print { display: none; }
.cn-toast { position: fixed; left: 50%; bottom: 24px; z-index: 90; -webkit-transform: translate(-50%, 20px); transform: translate(-50%, 20px); padding: 12px 18px; border-radius: 14px; background: var(--ink); color: #fff; font: 600 14px/1 var(--b); opacity: 0; transition: opacity .3s, transform .3s; box-shadow: 0 20px 40px -20px rgba(23, 21, 43, .6); }
.cn-toast.on { opacity: 1; -webkit-transform: translate(-50%, 0); transform: translate(-50%, 0); }

/* kalkulator prowizji */
.kp { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 48px; position: relative; }
.kp-l { display: grid; gap: 16px; background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .1); border-radius: 26px; padding: 26px; }
.kp-s span { display: flex; justify-content: space-between; gap: 12px; font-size: 14.5px; color: rgba(255, 255, 255, .8); }
.kp-s em { font-style: normal; }
.kp-s output { font: 700 15px/1 var(--h); color: #fff; font-variant-numeric: tabular-nums; }
.kp-s input { -webkit-appearance: none; appearance: none; width: 100%; height: 34px; background: transparent; cursor: pointer; touch-action: pan-y; --p: 50%; }
.kp-s input::-webkit-slider-runnable-track { height: 6px; border-radius: 99px; background: linear-gradient(90deg, var(--lav) var(--p), rgba(255, 255, 255, .14) var(--p)); }
.kp-s input::-moz-range-track { height: 6px; border-radius: 99px; background: rgba(255, 255, 255, .14); }
.kp-s input::-moz-range-progress { height: 6px; border-radius: 99px; background: var(--lav); }
.kp-s input::-webkit-slider-thumb { -webkit-appearance: none; width: 22px; height: 22px; margin-top: -8px; border-radius: 50%; background: #fff; border: 3px solid var(--lav); }
.kp-s input::-moz-range-thumb { width: 18px; height: 18px; border-radius: 50%; background: #fff; border: 3px solid var(--lav); }
.kp-p { background: #fff; color: var(--ink); border-radius: 26px; padding: 28px; display: flex; flex-direction: column; gap: 18px; }
.kp-w small, .kp-r small { display: block; font: 600 13px/1 var(--b); color: var(--v); text-transform: uppercase; letter-spacing: .06em; }
.kp-w b { display: block; font: 800 clamp(40px, 4.4vw, 56px)/1.05 var(--h); letter-spacing: -.03em; margin-top: 8px; font-variant-numeric: tabular-nums; }
.kp-w em { font-style: normal; color: var(--txt); font-size: 14px; }
.kp-bary { display: grid; gap: 12px; }
.kp-b { display: grid; grid-template-columns: 1fr auto; gap: 6px 12px; align-items: center; }
.kp-b span { font-size: 14px; color: var(--txt); }
.kp-b b { font: 700 15px/1 var(--h); font-variant-numeric: tabular-nums; }
.kp-b i { grid-column: 1 / -1; height: 12px; border-radius: 99px; background: #F1EFF8; overflow: hidden; }
.kp-b s { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, #22A565, #3CCB83); transition: width .5s cubic-bezier(.2, .7, .2, 1); }
.kp-b.n s { background: linear-gradient(90deg, var(--v), #8B74F5); }
.kp-r { padding-top: 14px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.kp-r b { font: 800 28px/1 var(--h); color: #17804A; font-variant-numeric: tabular-nums; }
.kp-r b.minus { color: var(--ink); }
.kp-d { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 13.5px; color: var(--txt); }
.kp-d b { color: var(--ink); }
.kp-u { margin: 0; font-size: 12.5px; color: #8A879C; line-height: 1.5; }

/* w podstawie */
.pdst { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 44px; }
.pdst-k { background: #fff; border: 1px solid var(--line); border-radius: 26px; padding: 26px; }
.pdst-k .ai { grid-row: auto; margin-bottom: 16px; }
.pdst-k h3 { font: 700 20px/1.25 var(--h); color: var(--ink); margin: 0 0 14px; }
.pdst-k ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.pdst-k li { display: grid; grid-template-columns: 20px 1fr; gap: 10px; font-size: 15px; color: var(--txt); line-height: 1.45; }
.pdst-k li svg { width: 20px; height: 20px; color: var(--v); }

/* bez ukrytych kosztow */
.ucz { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 44px; }
.ucz-k { border-radius: 26px; padding: 28px; background: linear-gradient(150deg, #EDF9F2, #F6FCF8); border: 1px solid #CFEEDC; }
.ucz-k.in { background: #F7F6FB; border-color: var(--line); }
.ucz-k h3 { display: flex; align-items: center; gap: 10px; font: 700 21px/1.2 var(--h); color: var(--ink); margin: 0 0 16px; }
.ucz-k h3 svg { width: 26px; height: 26px; color: #17804A; }
.ucz-k.in h3 svg { color: var(--v); }
.ucz-k ul { margin: 0; padding-left: 20px; display: grid; gap: 10px; color: var(--txt); line-height: 1.55; }
.ucz-k b { color: var(--ink); }

/* uslugi */
.usl { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 44px; }
.usl-k { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: 26px; padding: 26px; color: var(--ink); text-decoration: none; transition: border-color .3s, transform .4s cubic-bezier(.2, .7, .2, 1); }
.usl-k:hover { border-color: var(--v); -webkit-transform: translateY(-4px); transform: translateY(-4px); }
.usl-k .ai { grid-row: auto; margin-bottom: 16px; }
.usl-k h3 { font: 700 20px/1.25 var(--h); margin: 0 0 8px; }
.usl-k p { margin: 0 0 16px; color: var(--txt); line-height: 1.55; }
.usl-k .kat-a { margin-top: auto; }

@media (max-width: 1020px) {
  .cn { grid-template-columns: 1fr; }
  .cn-p { position: static; }
  .kp { grid-template-columns: 1fr; }
  .pdst, .usl { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .cnh-p { grid-template-columns: 1fr; gap: 10px; }
  .cnh-k { padding: 18px; }
  .cnh-k b { font-size: 26px; }
  .cn { margin-top: 32px; gap: 16px; }
  .cn-krok { border-radius: 22px; padding: 20px; }
  .cn-kg { grid-template-columns: 38px 1fr; gap: 12px; margin-bottom: 16px; }
  .cn-nr { width: 38px; height: 38px; border-radius: 12px; font-size: 15px; }
  .cn-kg h3 { font-size: 19px; }
  .cn-mod { grid-template-columns: 44px 1fr; row-gap: 10px; }
  .cn-mod .ai { display: none; }
  .cn-mod .cn-cena { grid-column: 2; text-align: left; }
  .cn-baza { grid-template-columns: 44px 1fr; }
  .cn-baza .cn-cena { grid-column: 2; text-align: left; }
  .cn-okres { grid-template-columns: 1fr; }
  .cn-pk { border-radius: 24px; padding: 22px; }
  .cn-akcje { grid-template-columns: 1fr; }
  .cn-bar { display: flex; position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom, 0px)); z-index: 60; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 10px 10px 18px; border-radius: 20px; background: var(--ink); color: #fff; box-shadow: 0 20px 50px -20px rgba(23, 21, 43, .7); -webkit-transform: translateY(140%); transform: translateY(140%); transition: transform .35s cubic-bezier(.2, .7, .2, 1); }
  .cn-bar.on { -webkit-transform: none; transform: none; }
  .cn-bar b { display: block; font: 800 22px/1 var(--h); font-variant-numeric: tabular-nums; }
  .cn-bar small { display: block; font-size: 12px; color: rgba(255, 255, 255, .7); margin-top: 3px; }
  .cn-bar .btn { min-height: 46px; padding: 0 18px; white-space: nowrap; }
  .kp-l, .kp-p { padding: 20px; border-radius: 22px; }
  .pdst, .ucz, .usl { grid-template-columns: 1fr; gap: 12px; margin-top: 32px; }
}
/* druk: sama wycena */
@media print {
  html.cn-drukuj body > *:not(main), html.cn-drukuj main > *:not(#konfigurator), html.cn-drukuj #konfigurator > .wrap > *:not(.cn-print) { display: none !important; }
  html.cn-drukuj .cn-print { display: block !important; color: #000; font: 13px/1.5 Inter, Arial, sans-serif; }
  html.cn-drukuj .cn-print h2 { font: 700 26px/1.2 Arial, sans-serif; margin: 18px 0 6px; }
  html.cn-drukuj .cn-print .cn-li { display: flex; justify-content: space-between; border-bottom: 1px solid #ddd; padding: 8px 0; }
  html.cn-drukuj .cn-print .cn-li b, html.cn-drukuj .cn-print .cn-li em { color: #000; }
  html.cn-drukuj .cn-print .cn-li small { color: #555; }
  html.cn-drukuj .cn-print-s { font-weight: 700; font-size: 15px; margin-top: 14px; }
  html.cn-drukuj #konfigurator { padding: 0 !important; }
}
@media (max-width: 760px) { .cn-pre { display: grid; grid-template-columns: repeat(6, 1fr); gap: 6px; } .cn-pre button { min-width: 0; padding: 0; } }
@media print { html.cn-drukuj .cn-print .cn-li em i { display: inline !important; font-style: normal; color: #555; margin-left: 3px; } }

/* ===================== CENNIK: KREATOR KROK PO KROKU ===================== */
.kr .cn-l { gap: 16px; }
/* pasek krokow */
.kr-post { position: relative; list-style: none; margin: 0 0 4px; padding: 16px 18px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; background: #fff; border: 1px solid var(--line); border-radius: 22px; }
.kr-post li { position: relative; z-index: 1; }
.kr-post button { width: 100%; display: flex; align-items: center; gap: 10px; padding: 6px; border: 0; background: none; cursor: pointer; font-family: inherit; text-align: left; border-radius: 12px; }
.kr-post button span { width: 34px; height: 34px; flex: none; border-radius: 50%; display: grid; place-items: center; font: 700 14px/1 var(--h); background: #F1EFF8; color: var(--txt); transition: background .35s, color .35s, box-shadow .35s; }
.kr-post button b { font: 600 14.5px/1.2 var(--b); color: var(--txt); transition: color .3s; }
.kr-post li.on button span { background: var(--v); color: #fff; box-shadow: 0 0 0 5px rgba(88, 70, 199, .15); }
.kr-post li.on button b { color: var(--ink); }
.kr-post li.ok button span { background: var(--ink); color: var(--lav); }
.kr-post li.ok button span::after { content: "✓"; }
.kr-post li.ok button span { font-size: 0; }
.kr-post li.ok button span::after { font-size: 15px; }
.kr-lin { position: absolute; left: 18px; right: 18px; bottom: 0; height: 3px; border-radius: 3px; overflow: hidden; background: #F1EFF8; }
.kr-lin s { display: block; width: 0; height: 100%; background: linear-gradient(90deg, var(--v), #8B74F5); transition: width .6s cubic-bezier(.2, .7, .2, 1); }
/* panele krokow */
.kr-s { display: grid; gap: 16px; }
.kr-s[hidden] { display: none; }
.kr-s.on { -webkit-animation: krIn .5s cubic-bezier(.2, .7, .2, 1); animation: krIn .5s cubic-bezier(.2, .7, .2, 1); }
.kr-s.on.wst { -webkit-animation-name: krWst; animation-name: krWst; }
@-webkit-keyframes krIn { from { opacity: 0; -webkit-transform: translateX(28px); } to { opacity: 1; -webkit-transform: none; } }
@keyframes krIn { from { opacity: 0; transform: translateX(28px); } to { opacity: 1; transform: none; } }
@-webkit-keyframes krWst { from { opacity: 0; -webkit-transform: translateX(-28px); } to { opacity: 1; -webkit-transform: none; } }
@keyframes krWst { from { opacity: 0; transform: translateX(-28px); } to { opacity: 1; transform: none; } }
.kr-s h3:focus { outline: none; }
.kr-nav { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-top: 4px; }
.kr-nav .btn { min-height: 54px; padding: 0 26px; }
/* krok 1: rodzaj obiektu */
.kr-rodz { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.kr-rodz button { display: flex; align-items: center; gap: 12px; min-height: 64px; padding: 10px 14px; border-radius: 18px; border: 1px solid var(--line); background: #fff; font: 600 15px/1.2 var(--b); color: var(--ink); cursor: pointer; text-align: left; transition: border-color .25s, background .25s, box-shadow .25s; }
.kr-rodz button .ai { grid-row: auto; width: 40px; height: 40px; border-radius: 12px; }
.kr-rodz button:hover { border-color: #D6CFF6; }
.kr-rodz button.on { border-color: var(--v); background: #FAF8FF; box-shadow: inset 0 0 0 1px var(--v); }
.kr-rodz button.on .ai { background: var(--v); color: #fff; }
/* krok 2: w cenie */
.kr-wc { border-radius: 28px; padding: clamp(22px, 3vw, 30px); background: linear-gradient(140deg, #1D1A38, var(--ink)); color: #fff; position: relative; overflow: hidden; }
.kr-wc::before { content: ""; position: absolute; width: 420px; height: 420px; right: -160px; top: -220px; border-radius: 50%; background: radial-gradient(circle, rgba(139, 116, 245, .45), rgba(139, 116, 245, 0) 70%); }
.kr-wch { position: relative; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 18px; }
.kr-tag { font: 700 12px/1 var(--b); padding: 7px 11px; border-radius: 999px; background: var(--lav); color: var(--ink); text-transform: uppercase; letter-spacing: .06em; }
.kr-wch h3 { margin: 0; font: 700 21px/1.2 var(--h); color: #fff; }
.kr-wcg { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.kr-wcg > div { display: grid; grid-template-columns: 40px 1fr; column-gap: 12px; padding: 14px; border-radius: 16px; background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .1); }
.kr-wcg .ai { width: 40px; height: 40px; border-radius: 12px; background: rgba(196, 181, 253, .16); color: var(--lav); grid-row: span 2; }
.kr-wcg b { font: 700 14.5px/1.25 var(--h); color: #fff; }
.kr-wcg small { font-size: 12.5px; color: rgba(255, 255, 255, .68); line-height: 1.4; margin-top: 2px; }
.kr-h { font: 700 22px/1.2 var(--h); color: var(--ink); margin: 10px 4px 0; }
/* karty modulow (upgrade) */
.kr-mody { display: grid; gap: 14px; }
.kr-mod { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.25fr); gap: 0; padding: 0; overflow: hidden; border-radius: 26px; background: #fff; align-items: stretch; }
.kr-mod .kr-ek { position: relative; display: block; min-height: 240px; background: linear-gradient(150deg, #EFEDFA, #E3DDFB); overflow: hidden; }
.kr-mod .kr-ek img { position: absolute; max-width: none; height: auto; border-radius: 12px; box-shadow: 0 24px 50px -26px rgba(23, 21, 43, .55); transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.kr-mod .kr-ek.kadr-k img { width: 190%; left: -32%; top: -4%; }
.kr-mod .kr-ek.kadr-z img { width: 170%; left: -46%; top: 6%; }
.kr-mod:hover .kr-ek img { -webkit-transform: scale(1.04); transform: scale(1.04); }
.kr-mt { display: flex; flex-direction: column; gap: 10px; padding: 24px 26px; }
.kr-mt > b { font: 700 22px/1.2 var(--h); color: var(--ink); }
.kr-p { color: var(--txt); font-size: 15px; line-height: 1.55; }
.kr-ul { display: grid; gap: 8px; }
.kr-ul > span { display: grid; grid-template-columns: 20px 1fr; gap: 8px; font-size: 14px; color: var(--txt); line-height: 1.45; }
.kr-ul svg { width: 20px; height: 20px; color: var(--v); }
.kr-ul strong { color: var(--ink); font-weight: 600; }
.kr-f { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 8px; flex-wrap: wrap; }
.kr-c { font: 800 22px/1 var(--h); color: var(--ink); }
.kr-c small { font: 500 13px/1 var(--b); color: var(--txt); }
.kr-d em { font-style: normal; display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 20px; border-radius: 999px; font: 700 15px/1 var(--b); transition: background .25s, color .25s, transform .25s; }
.kr-d em svg { width: 18px; height: 18px; }
.kr-d0 { border: 1.5px solid var(--v); color: var(--v); background: #fff; }
.kr-d1 { display: none !important; background: var(--v); color: #fff; }
.kr-mod:hover .kr-d0, .kr-u:hover .kr-d0 { background: var(--mist); }
.kr-mod.on .kr-d0, .kr-u.on .kr-d0 { display: none; }
.kr-mod.on .kr-d1, .kr-u.on .kr-d1 { display: inline-flex !important; -webkit-animation: krPop .35s cubic-bezier(.2, .7, .2, 1.4); animation: krPop .35s cubic-bezier(.2, .7, .2, 1.4); }
@-webkit-keyframes krPop { from { -webkit-transform: scale(.85); } to { -webkit-transform: none; } }
@keyframes krPop { from { transform: scale(.85); } to { transform: none; } }
.kr-bez { font-style: normal; font-size: 12.5px; color: #8A879C; }
.kr-mod.on { border-color: var(--v); box-shadow: 0 24px 60px -36px rgba(88, 70, 199, .7), inset 0 0 0 1px var(--v); }
/* uslugi */
.kr-usl { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.kr-u { position: relative; display: grid; grid-template-columns: 110px 1fr; grid-template-rows: auto auto; gap: 14px; align-items: center; padding: 14px; border-radius: 22px; border: 1px solid var(--line); background: #fff; cursor: pointer; transition: border-color .25s, box-shadow .25s; }
.kr-u input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.kr-u:focus-within { outline: 2px solid var(--v); outline-offset: 2px; }
.kr-ui { display: block; height: 84px; border-radius: 14px; overflow: hidden; background: #EFEDFA; }
.kr-ui img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.kr-ut b { display: block; font: 700 16.5px/1.25 var(--h); color: var(--ink); }
.kr-ut small { display: block; font-size: 13.5px; color: var(--txt); margin-top: 3px; line-height: 1.45; }
.kr-uc { display: inline-block; margin-top: 8px; font: 600 12.5px/1 var(--b); padding: 6px 9px; border-radius: 8px; background: #F4F3F9; color: var(--ink); }
.kr-u .kr-d { grid-column: 1 / -1; }
.kr-u .kr-d em { min-height: 42px; width: 100%; justify-content: center; }
.kr-u.on { border-color: var(--v); box-shadow: inset 0 0 0 1px var(--v); }
/* krok 3 */
.kr-kiedy { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.kr-kiedy button, .kr-chips button { min-height: 46px; padding: 0 12px; border-radius: 14px; border: 1px solid var(--line); background: #fff; font: 600 14px/1.2 var(--b); color: var(--ink); cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.kr-kiedy button.on, .kr-chips button.on { background: var(--ink); color: #fff; border-color: var(--ink); }
/* krok 4: formularz */
.kr-form { display: grid; gap: 18px; }
.kr-form .cn-kg { margin-bottom: 0; }
.kr-form .cn-nr { background: var(--v); color: #fff; }
.kr-pola { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.kr-pole { display: grid; gap: 6px; }
.kr-pole > span { font: 600 13.5px/1.2 var(--b); color: var(--ink); }
.kr-pole em { font-style: normal; font-weight: 500; color: var(--txt); }
.kr-pole input, .kr-pole textarea { width: 100%; min-height: 52px; padding: 12px 16px; border-radius: 14px; border: 1px solid #DCD9E8; background: #FBFAFF; font: 500 16px/1.4 var(--b); color: var(--ink); -webkit-appearance: none; appearance: none; transition: border-color .2s, box-shadow .2s, background .2s; }
.kr-pole textarea { resize: vertical; min-height: 90px; }
.kr-pole input:focus, .kr-pole textarea:focus { outline: none; border-color: var(--v); background: #fff; box-shadow: 0 0 0 4px rgba(88, 70, 199, .14); }
.kr-pole input[aria-invalid], .kr-zg input[aria-invalid] + span { border-color: #D13239; box-shadow: 0 0 0 4px rgba(209, 50, 57, .12); }
.kr-grp { display: grid; gap: 8px; }
.kr-grp > span { font: 600 13.5px/1.2 var(--b); color: var(--ink); }
.kr-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.kr-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.kr-zg { display: grid; grid-template-columns: 24px 1fr; gap: 10px; align-items: start; font-size: 13.5px; color: var(--txt); line-height: 1.5; cursor: pointer; }
.kr-zg input { width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--v); }
.kr-zg a { color: var(--v); font-weight: 600; }
.kr-err { margin: 0; padding: 12px 14px; border-radius: 12px; background: #FDECEE; color: #9E1F27; font: 600 14px/1.4 var(--b); }
.btn.busy { opacity: .7; pointer-events: none; }
.btn.busy svg { -webkit-animation: krKr 1s linear infinite; animation: krKr 1s linear infinite; }
@-webkit-keyframes krKr { to { -webkit-transform: rotate(360deg); } }
@keyframes krKr { to { transform: rotate(360deg); } }
/* dziekujemy */
.kr-okk { text-align: center; background: #fff; border: 1px solid var(--line); border-radius: 28px; padding: clamp(32px, 5vw, 56px) clamp(20px, 4vw, 48px); }
.kr-okz { display: inline-grid; place-items: center; width: 84px; height: 84px; border-radius: 50%; background: #E8F6EE; color: #17804A; -webkit-animation: krPop .6s cubic-bezier(.2, .7, .2, 1.5); animation: krPop .6s cubic-bezier(.2, .7, .2, 1.5); }
.kr-okz svg { width: 44px; height: 44px; }
.kr-okk h3 { font: 700 clamp(24px, 2.6vw, 32px)/1.2 var(--h); color: var(--ink); margin: 20px 0 10px; }
.kr-okk p { color: var(--txt); max-width: 520px; margin: 0 auto; line-height: 1.6; }
.kr-oka { display: flex; justify-content: center; gap: 10px; flex-wrap: wrap; margin-top: 26px; }
.kr-oka .btn svg { width: 18px; height: 18px; }
.kr[data-krok="5"] .cn-cta, .kr[data-krok="5"] .cn-free { display: none; }
.cn-cta { border: 0; cursor: pointer; font-family: inherit; }

@media (max-width: 1020px) { .kr-wcg { grid-template-columns: 1fr 1fr; } }
@media (max-width: 760px) {
  .kr-post { padding: 10px; gap: 4px; border-radius: 18px; }
  .kr-post button { flex-direction: column; gap: 6px; padding: 4px 0; text-align: center; }
  .kr-post button b { font-size: 12px; }
  .kr-lin { left: 10px; right: 10px; }
  .kr-rodz { grid-template-columns: 1fr 1fr; }
  .kr-rodz button { min-height: 58px; padding: 8px 10px; font-size: 14px; gap: 8px; }
  .kr-rodz button .ai { width: 34px; height: 34px; }
  .kr-wcg { grid-template-columns: 1fr; }
  .kr-mod { grid-template-columns: 1fr; border-radius: 22px; }
  .kr-mod .kr-ek { min-height: 180px; }
  .kr-mt { padding: 20px; }
  .kr-mt > b { font-size: 20px; }
  .kr-f { flex-direction: row; }
  .kr-usl { grid-template-columns: 1fr; }
  .kr-u { grid-template-columns: 90px 1fr; }
  .kr-ui { height: 70px; }
  .kr-kiedy { grid-template-columns: 1fr 1fr; }
  .kr-pola { grid-template-columns: 1fr; }
  .kr-nav { gap: 8px; }
  .kr-nav .btn { min-height: 52px; padding: 0 18px; font-size: 15px; }
  .kr-nav .btn.p { flex: 1; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) { .kr-s.on, .kr-okz, .kr-mod.on .kr-d1 { -webkit-animation: none; animation: none; } }
/* karty modulow: ekran wypelnia wysokosc karty, kadr na tresc (nie na menu boczne) */
.kr-mod .kr-ek img { width: auto; height: 112%; top: 4%; }
.kr-mod .kr-ek.kadr-k img { left: -38%; }
.kr-mod .kr-ek.kadr-z img { left: -58%; }
@media (max-width: 760px) {
  .kr-mod .kr-ek img { width: 185%; height: auto; top: 0; }
  .kr-mod .kr-ek.kadr-k img { left: -30%; }
  .kr-mod .kr-ek.kadr-z img { left: -44%; }
}
.kr-mod .kr-ek.kadr-z img { left: -46%; }
@media (max-width: 760px) { .kr-mod .kr-ek.kadr-z img { left: -36%; } }

/* KREATOR: telefon i tablet (podsumowanie jako wysuwany panel, zwarte kroki) */
.cn-p-x { display: none; }
.kr-post { scroll-margin-top: 92px; }
.cn-cien { display: none; }
@media (max-width: 1020px) {
  #konfigurator { padding-bottom: 110px; }
  .cn-p { position: fixed; left: 0; right: 0; bottom: 0; top: auto; z-index: 80; max-height: 86vh; max-height: 86dvh; overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; -webkit-transform: translateY(105%); transform: translateY(105%); transition: transform .38s cubic-bezier(.2, .7, .2, 1); visibility: hidden; }
  .cn-p.open { -webkit-transform: none; transform: none; visibility: visible; }
  .cn-p .cn-pk { border-radius: 26px 26px 0 0; padding: 30px 20px calc(22px + env(safe-area-inset-bottom, 0px)); }
  .cn-p-x { display: block; position: -webkit-sticky; position: sticky; top: 0; z-index: 2; width: 100%; height: 26px; margin-bottom: -26px; border: 0; background: none; cursor: pointer; }
  .cn-p-x::before { content: ""; position: absolute; left: 50%; top: 10px; width: 44px; height: 5px; margin-left: -22px; border-radius: 5px; background: rgba(255, 255, 255, .35); }
  .cn-cien { display: block; position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 79; background: rgba(23, 21, 43, .5); opacity: 0; transition: opacity .3s; }
  .cn-cien.on { opacity: 1; }
  html.cn-lock, html.cn-lock body { overflow: hidden; }
  .cn-bar { display: flex; position: fixed; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom, 0px)); z-index: 60; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 8px 8px 16px; border-radius: 20px; background: var(--ink); color: #fff; box-shadow: 0 20px 50px -20px rgba(23, 21, 43, .7); -webkit-transform: translateY(150%); transform: translateY(150%); transition: transform .35s cubic-bezier(.2, .7, .2, 1); }
  .cn-bar.on { -webkit-transform: none; transform: none; }
  .cn-bar-s { display: grid; grid-template-columns: auto auto; column-gap: 10px; align-items: center; text-align: left; border: 0; background: none; color: #fff; padding: 0; cursor: pointer; font-family: inherit; min-height: 44px; }
  .cn-bar-s b { font: 800 22px/1 var(--h); font-variant-numeric: tabular-nums; }
  .cn-bar-s small { grid-column: 1; font-size: 11.5px; color: rgba(255, 255, 255, .7); margin-top: 3px; }
  .cn-bar-z { grid-column: 2; grid-row: 1 / span 2; display: inline-flex; align-items: center; gap: 4px; padding: 7px 10px; border-radius: 999px; background: rgba(255, 255, 255, .1); font: 600 12px/1 var(--b); color: #fff; }
  .cn-bar-z svg { width: 14px; height: 14px; }
  .cn-bar .btn { min-height: 48px; padding: 0 20px; white-space: nowrap; }
}
@media (max-width: 760px) {
  .kr-wc { padding: 18px; border-radius: 22px; }
  .kr-wch { margin-bottom: 12px; }
  .kr-wch h3 { font-size: 17px; }
  .kr-wcg { grid-template-columns: 1fr 1fr; gap: 8px; }
  .kr-wcg > div { grid-template-columns: 1fr; padding: 12px; gap: 8px; }
  .kr-wcg .ai { width: 32px; height: 32px; grid-row: auto; }
  .kr-wcg .ai svg { width: 17px; height: 17px; }
  .kr-wcg b { font-size: 13px; }
  .kr-wcg small { display: none; }
  .kr-mod .kr-ek { min-height: 150px; }
  .kr-mt { gap: 8px; padding: 18px; }
  .kr-p { font-size: 14.5px; }
  .kr-ul > span { font-size: 13.5px; }
  .kr-d em { min-height: 46px; padding: 0 18px; }
  .kr-h { font-size: 19px; }
  .kr-nav .btn.o { flex: none; }
  .cn-krok { padding: 18px; }
  .kr-form { gap: 16px; }
  .kr-chips button, .kr-kiedy button { min-height: 44px; font-size: 13.5px; }
}

/* KONTAKT: hero z konsultantka na luku, kanaly kontaktu, formularz z tematem */
.kth { position: relative; height: 560px; max-width: 520px; margin: 0 auto; }
.kth .luk { position: absolute; left: 50%; bottom: 0; width: 460px; height: auto; -webkit-transform: translateX(-50%); transform: translateX(-50%); color: var(--lav2); }
.kth-o { position: absolute; left: 50%; bottom: 0; -webkit-transform: translateX(-50%); transform: translateX(-50%); height: 540px; width: auto; max-width: none; filter: drop-shadow(0 30px 40px rgba(23, 21, 43, .18)); }
.ohs.kt-h { padding-bottom: 0; }
.ohs.kt-h .ohg { align-items: end; }
.ohs.kt-h .oht { padding-bottom: 70px; }
.kn { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.kn-k { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 26px 24px; border-radius: 24px; border: 1px solid var(--line); background: #fff; color: var(--ink); text-align: left; font: inherit; text-decoration: none; cursor: pointer; transition: transform .3s, box-shadow .3s, border-color .3s; }
div.kn-k { cursor: default; }
.kn-k:hover { -webkit-transform: translateY(-4px); transform: translateY(-4px); border-color: #D6D0F5; box-shadow: 0 24px 50px -30px rgba(23, 21, 43, .35); }
.kn-k .ai { grid-row: auto; margin-bottom: 10px; }
.kn-k b { font: 700 19px/1.25 var(--h); }
.kn-k small { font-size: 14.5px; line-height: 1.55; color: var(--txt); flex: 1; }
.kn-a { margin-top: 10px; display: inline-flex; align-items: center; gap: 6px; font: 700 14.5px/1 var(--b); color: var(--v); }
.kn-a svg { width: 16px; height: 16px; transition: transform .3s; }
.kn-k:hover .kn-a svg { -webkit-transform: translateX(3px); transform: translateX(3px); }
.kn-k.gl { background: var(--ink); border-color: var(--ink); color: #fff; }
.kn-k.gl .ai { background: rgba(196, 181, 253, .16); color: var(--lav); }
.kn-k.gl small { color: rgba(255, 255, 255, .72); }
.kn-k.gl .kn-a { color: var(--lav); }
.kn-m { margin-top: 10px; display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.kn-m a { font: 700 15.5px/1.2 var(--b); color: var(--v); text-decoration: none; }
.kn-m button { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--line); background: var(--soft); font: 600 13px/1 var(--b); color: var(--ink); cursor: pointer; }
.kn-m button:hover { background: var(--mist); }
.kn-m button svg { width: 15px; height: 15px; }
.kn-kl { display: flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: wrap; margin: 24px 0 0; font-size: 14.5px; color: var(--txt); text-align: center; }
.kn-kl svg { width: 18px; height: 18px; color: var(--v); }
.kn-kl a { color: var(--v); font-weight: 700; }
.kf-g { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 24px; align-items: start; margin-top: 44px; }
.kf-f { position: relative; display: grid; gap: 20px; padding: clamp(22px, 3.4vw, 40px); border-radius: 28px; background: #fff; border: 1px solid var(--line); box-shadow: 0 40px 80px -60px rgba(23, 21, 43, .45); }
.kf-t { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; gap: 10px; }
.kf-t legend { padding: 0; margin-bottom: 10px; font: 600 13.5px/1.2 var(--b); color: var(--ink); }
.kf-tt { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.kf-tb { position: relative; cursor: pointer; }
.kf-tb input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.kf-tb span { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; min-height: 92px; padding: 12px 8px; border-radius: 16px; border: 1px solid var(--line); background: var(--soft); font: 600 13.5px/1.25 var(--b); color: var(--ink); text-align: center; transition: background .2s, border-color .2s, color .2s, box-shadow .2s; }
.kf-tb svg { width: 22px; height: 22px; color: var(--v); transition: color .2s; }
.kf-tb:hover span { border-color: #D6D0F5; background: #fff; }
.kf-tb input:checked + span { background: var(--ink); border-color: var(--ink); color: #fff; box-shadow: 0 16px 30px -18px rgba(23, 21, 43, .6); }
.kf-tb input:checked + span svg { color: var(--lav); }
.kf-tb input:focus-visible + span { outline: 3px solid rgba(88, 70, 199, .4); outline-offset: 2px; }
.kf-hint { margin: 0; padding: 12px 14px; border-radius: 14px; background: var(--mist); color: var(--ink); font-size: 14.5px; line-height: 1.5; }
.kf-ob { display: grid; gap: 16px; }
.kf-ob[hidden] { display: none; }
.kf-w { justify-self: start; min-height: 54px; padding: 0 28px; }
.kf-f.wyslane > *:not(.kf-ok) { visibility: hidden; }
.kf-ok { position: absolute; top: 0; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; padding: 32px; text-align: center; border-radius: 28px; background: #fff; }
.kf-ok[hidden] { display: none; }
.kf-ok h3 { font: 700 clamp(22px, 2.4vw, 30px)/1.2 var(--h); color: var(--ink); margin: 18px 0 8px; outline: none; }
.kf-ok p { color: var(--txt); max-width: 440px; line-height: 1.6; margin: 0 0 22px; }
.kf-b { display: grid; gap: 16px; position: -webkit-sticky; position: sticky; top: 96px; }
.kf-co { padding: 28px 26px; border-radius: 28px; background: var(--ink); color: #fff; }
.kf-co h3, .kf-dane h3 { font: 700 20px/1.2 var(--h); margin: 0 0 18px; }
.kf-co ol { list-style: none; margin: 0; padding: 0; display: grid; }
.kf-co li { position: relative; display: grid; grid-template-columns: 44px 1fr; gap: 14px; padding-bottom: 20px; }
.kf-co li:last-child { padding-bottom: 0; }
.kf-co li:not(:last-child)::before { content: ""; position: absolute; left: 21px; top: 46px; bottom: 2px; width: 2px; border-radius: 2px; background: rgba(196, 181, 253, .22); }
.kf-co .ai { grid-row: auto; background: rgba(196, 181, 253, .16); color: var(--lav); }
.kf-co .ai svg, .kn-k .ai svg { width: 21px; height: 21px; }
.kf-co b { display: block; font: 700 15.5px/1.3 var(--b); margin-top: 3px; }
.kf-co small { display: block; font-size: 13.5px; line-height: 1.5; color: rgba(255, 255, 255, .7); margin-top: 3px; }
.kf-dane { padding: 26px; border-radius: 28px; background: #fff; border: 1px solid var(--line); }
.kf-dane p { display: grid; grid-template-columns: 70px 1fr; gap: 10px; margin: 0; padding: 11px 0; border-top: 1px solid var(--line); font-size: 14.5px; color: var(--ink); line-height: 1.45; }
.kf-dane p span { color: var(--txt); font-size: 13px; padding-top: 1px; }
.kf-dane a { color: var(--v); font-weight: 700; text-decoration: none; }
@media (max-width: 1080px) {
  .kn { grid-template-columns: 1fr 1fr; }
  .kf-g { grid-template-columns: 1fr; }
  .kf-b { position: static; grid-template-columns: 1fr 1fr; }
  .kth { height: 480px; }
  .kth-o { height: 460px; }
  .kth .luk { width: 400px; }
  .ohs.kt-h .oht { padding-bottom: 10px; }
}
@media (max-width: 760px) {
  .kth { height: 400px; max-width: 360px; }
  .kth-o { height: 390px; }
  .kth .luk { width: 320px; }
  .kn { grid-template-columns: 1fr; gap: 10px; }
  .kn-k { padding: 18px; display: grid; grid-template-columns: 44px 1fr; column-gap: 14px; row-gap: 4px; }
  .kn-k .ai { grid-row: span 3; margin: 0; }
  .kn-k b { font-size: 17px; }
  .kn-k small { font-size: 14px; }
  .kn-a, .kn-m { margin-top: 6px; }
  .kf-g { margin-top: 28px; }
  .kf-f { border-radius: 24px; gap: 18px; }
  .kf-tt { grid-template-columns: 1fr 1fr; }
  .kf-tb:last-child { grid-column: span 2; }
  .kf-tb span { flex-direction: row; justify-content: flex-start; min-height: 52px; padding: 10px 12px; text-align: left; font-size: 13.5px; }
  .kf-tb svg { width: 19px; height: 19px; flex: none; }
  .kf-tb:last-child span { justify-content: center; }
  .kf-f .kr-pola { grid-template-columns: 1fr; }
  .kf-f .kr-chips button { min-height: 44px; font-size: 13.5px; }
  .kf-w { justify-self: stretch; width: 100%; }
  .kf-b { grid-template-columns: 1fr; }
  .kf-co, .kf-dane { border-radius: 24px; padding: 22px 20px; }
}
.kf-co h3 { color: #fff; }
@media (max-width: 760px) { .kn-kl { display: block; line-height: 1.6; padding: 0 8px; } .kn-kl svg { display: inline-block; vertical-align: -3px; margin-right: 4px; } .kth { height: 360px; } .kth-o { height: 350px; } .kth .luk { width: 290px; } }
@media (max-width: 760px) { .kf-f [data-grp="slot"] { display: grid; grid-template-columns: 1fr 1fr; } }

/* DEMO: trzy sciezki w hero, rezerwacja w telefonie, panel, kreator prezentacji, pasek na telefonie */
.dm-s { display: grid; gap: 14px; }
.dm-k { position: relative; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 16px; padding: 22px 22px 22px 20px; border-radius: 24px; background: #fff; border: 1px solid var(--line); color: var(--ink); text-decoration: none; box-shadow: 0 24px 50px -40px rgba(23, 21, 43, .45); transition: transform .3s, box-shadow .3s, border-color .3s; }
.dm-k:hover { -webkit-transform: translateY(-3px); transform: translateY(-3px); border-color: #D6D0F5; box-shadow: 0 30px 60px -36px rgba(23, 21, 43, .45); }
.dm-k .ai { grid-row: auto; width: 52px; height: 52px; border-radius: 16px; }
.dm-k .ai svg { width: 24px; height: 24px; }
.dm-n { position: absolute; top: -9px; left: 16px; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--ink); color: var(--lav); font: 800 12px/1 var(--h); box-shadow: 0 0 0 4px #F3F0FF; }
.dm-t b { display: block; font: 700 18px/1.25 var(--h); }
.dm-t small { display: block; margin-top: 4px; font-size: 14px; line-height: 1.5; color: var(--txt); }
.dm-a { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--mist); color: var(--v); transition: transform .3s, background .3s; }
.dm-a svg { width: 18px; height: 18px; }
.dm-k:hover .dm-a { -webkit-transform: translateX(3px); transform: translateX(3px); }
.dm-k.gl { background: var(--ink); border-color: var(--ink); color: #fff; }
.dm-k.gl .ai { background: rgba(196, 181, 253, .16); color: var(--lav); }
.dm-k.gl small { color: rgba(255, 255, 255, .72); }
.dm-k.gl .dm-a { background: var(--lav); color: var(--ink); }
.dm-k.gl .dm-n { background: var(--lav); color: var(--ink); }
/* rezerwacja w telefonie */
.dm-rez { background: linear-gradient(180deg, #fff 0%, #F6F4FF 100%); }
.dm-rg { display: grid; grid-template-columns: 1fr minmax(0, 420px); gap: clamp(32px, 6vw, 90px); align-items: center; }
.dm-rt h2 { margin: 14px 0 18px; }
.dm-rt .lead { max-width: 540px; }
.dm-kroki { list-style: none; margin: 28px 0 0; padding: 0; display: grid; gap: 16px; }
.dm-kroki li { display: grid; grid-template-columns: 40px 1fr; gap: 14px; align-items: start; }
.dm-kroki li > span { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: var(--ink); color: var(--lav); font: 800 15px/1 var(--h); }
.dm-kroki b { display: block; font: 700 16.5px/1.3 var(--h); color: var(--ink); margin-top: 2px; }
.dm-kroki small { display: block; margin-top: 3px; font-size: 14.5px; line-height: 1.5; color: var(--txt); }
.dm-rb { margin-top: 28px; }
.dm-tel { display: flex; justify-content: center; }
.dm-tel-r { position: relative; width: 100%; max-width: 400px; height: 780px; padding: 14px; border-radius: 52px; background: #17152B; box-shadow: 0 0 0 2px #2D2950, 0 60px 100px -50px rgba(23, 21, 43, .7); }
.dm-tel-w { position: absolute; top: 24px; left: 50%; z-index: 2; width: 96px; height: 26px; margin-left: -48px; border-radius: 20px; background: #000; }
.dm-tel-r iframe { display: block; width: 100%; height: 100%; border: 0; border-radius: 40px; background: #fff; }
.dm-tel-p { position: absolute; top: 14px; left: 14px; right: 14px; bottom: 14px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 30px; border-radius: 40px; text-align: center; background: radial-gradient(420px 320px at 50% 20%, #EDE8FF 0%, #fff 70%); }
.dm-tel-p[hidden] { display: none; }
.dm-tel-p { justify-content: flex-end; padding: 0; overflow: hidden; background: #fff; }
.dm-tel-poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top; }
.dm-tel-c { position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px; width: 100%; padding: 90px 24px 34px; background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.94) 38%, #fff 60%); }
.dm-tel-p b { font: 700 20px/1.25 var(--h); color: var(--ink); }
.dm-tel-p small { font-size: 14px; color: var(--txt); margin-bottom: 14px; }
/* panel */
.dm-pb { display: flex; align-items: center; justify-content: center; gap: 12px 18px; flex-wrap: wrap; margin-top: 36px; text-align: center; }
.dm-pb span { font-size: 14px; color: var(--txt); }
/* kreator prezentacji */
.dm-um { background: var(--soft); }
.dm-ug { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 24px; align-items: start; margin-top: 44px; }
.dm-f { position: relative; display: grid; gap: 22px; padding: clamp(22px, 3.4vw, 40px); border-radius: 28px; background: #fff; border: 1px solid var(--line); box-shadow: 0 40px 80px -60px rgba(23, 21, 43, .45); scroll-margin-top: 90px; }
.dm-pr { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.dm-pr li { display: flex; align-items: center; gap: 8px; padding: 0 0 12px; border-bottom: 3px solid var(--line); font: 600 13.5px/1.2 var(--b); color: var(--txt); transition: border-color .3s, color .3s; }
.dm-pr li span { display: grid; place-items: center; flex: none; width: 26px; height: 26px; border-radius: 50%; background: var(--mist); color: var(--v); font: 800 12px/1 var(--h); }
.dm-pr li.on { border-color: var(--v); color: var(--ink); }
.dm-pr li.on span { background: var(--v); color: #fff; }
.dm-pr li.ok { border-color: var(--ink); color: var(--ink); cursor: pointer; }
.dm-pr li.ok span { background: var(--ink); color: var(--lav); }
.dm-st { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; gap: 20px; }
.dm-st[hidden] { display: none; }
.dm-st h3 { font: 700 clamp(21px, 2.2vw, 26px)/1.2 var(--h); color: var(--ink); margin: 0; outline: none; }
.dm-p { margin: -12px 0 0; color: var(--txt); font-size: 14.5px; }
.dm-rodz { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.dm-rodz button { display: flex; align-items: center; gap: 12px; min-height: 64px; padding: 10px 14px; border-radius: 16px; border: 1px solid var(--line); background: #fff; font: 600 15px/1.2 var(--b); color: var(--ink); cursor: pointer; text-align: left; transition: background .2s, border-color .2s, color .2s; }
.dm-rodz .ai { grid-row: auto; width: 40px; height: 40px; border-radius: 12px; }
.dm-rodz .ai svg { width: 20px; height: 20px; }
.dm-rodz button:hover { border-color: #D6D0F5; }
.dm-rodz button.on { background: var(--ink); border-color: var(--ink); color: #fff; }
.dm-rodz button.on .ai { background: rgba(196, 181, 253, .18); color: var(--lav); }
.dm-nav { display: flex; justify-content: flex-end; gap: 10px; margin-top: 4px; }
.dm-nav .btn { min-height: 52px; padding: 0 26px; }
.dm-co { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.dm-c { position: relative; cursor: pointer; }
.dm-c input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.dm-c > span { display: grid; grid-template-columns: 40px 1fr 24px; column-gap: 12px; align-items: center; min-height: 72px; padding: 12px 14px; border-radius: 16px; border: 1px solid var(--line); background: #fff; transition: background .2s, border-color .2s, box-shadow .2s; }
.dm-c .ai { grid-row: span 2; width: 40px; height: 40px; border-radius: 12px; }
.dm-c .ai svg { width: 20px; height: 20px; }
.dm-c b { font: 700 14.5px/1.25 var(--b); color: var(--ink); }
.dm-c small { grid-column: 2; font-size: 12.5px; color: var(--txt); line-height: 1.35; margin-top: 2px; }
.dm-ch { grid-column: 3; grid-row: 1 / span 2; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; border: 1.5px solid #D6D0F5; color: transparent; transition: background .2s, color .2s, border-color .2s; }
.dm-ch svg { width: 16px; height: 16px; }
.dm-c:hover > span { border-color: #D6D0F5; }
.dm-c input:checked + span { border-color: var(--v); background: #F7F5FF; box-shadow: 0 0 0 3px rgba(88, 70, 199, .12); }
.dm-c input:checked + span .dm-ch { background: var(--v); border-color: var(--v); color: #fff; }
.dm-c input:focus-visible + span { outline: 3px solid rgba(88, 70, 199, .4); outline-offset: 2px; }
.dm-dni { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; }
.dm-dni button { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-height: 64px; padding: 8px 4px; border-radius: 14px; border: 1px solid var(--line); background: #fff; color: var(--ink); cursor: pointer; font-family: var(--b); transition: background .2s, border-color .2s, color .2s; }
.dm-dni small { font: 600 12px/1 var(--b); color: var(--txt); }
.dm-dni b { font: 800 16px/1 var(--h); }
.dm-dni button.on { background: var(--ink); border-color: var(--ink); color: #fff; }
.dm-dni button.on small { color: var(--lav); }
.dm-pory { display: grid; grid-template-columns: repeat(3, 1fr); }
.kr-chips.dm-pory button { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; min-height: 58px; }
.dm-pory small { font: 500 12px/1 var(--b); opacity: .7; }
.dm-ok { display: grid; justify-items: center; gap: 6px; text-align: center; padding: 10px 0; }
.dm-ok[hidden] { display: none; }
.dm-ok h3 { font: 700 clamp(22px, 2.4vw, 30px)/1.2 var(--h); color: var(--ink); margin: 16px 0 10px; outline: none; }
.dm-ok > p { color: var(--txt); max-width: 480px; line-height: 1.6; margin: 16px 0 0; }
.dm-plan { width: 100%; max-width: 520px; }
.dm-plan ul { list-style: none; margin: 0; padding: 6px 20px; border-radius: 20px; background: var(--ink); color: #fff; text-align: left; }
.dm-plan li { display: grid; grid-template-columns: 110px 1fr; gap: 12px; padding: 13px 0; border-top: 1px solid rgba(255, 255, 255, .1); font-size: 14.5px; line-height: 1.45; }
.dm-plan li:first-child { border-top: 0; }
.dm-plan li span { color: var(--lav); font-size: 13px; padding-top: 1px; }
.dm-oka { display: flex; justify-content: center; gap: 10px; flex-wrap: wrap; margin-top: 22px; }
.dm-f.wyslane .dm-pr { display: none; }
.dm-as { position: -webkit-sticky; position: sticky; top: 96px; }
.dm-ak { padding: 28px 26px; border-radius: 28px; background: var(--ink); color: #fff; }
.dm-al { display: block; font: 700 20px/1.2 var(--h); }
.dm-meta { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 6px; }
.dm-meta span { display: inline-flex; align-items: center; gap: 6px; padding: 7px 11px; border-radius: 999px; background: rgba(196, 181, 253, .14); font: 600 12.5px/1 var(--b); color: #fff; }
.dm-meta svg { width: 15px; height: 15px; color: var(--lav); }
.dm-ak dl { margin: 10px 0 0; }
.dm-ak dl div { padding: 14px 0; border-top: 1px solid rgba(255, 255, 255, .1); }
.dm-ak dt { font-size: 12.5px; color: var(--lav); margin-bottom: 4px; }
.dm-ak dd { margin: 0; font: 600 15px/1.45 var(--b); color: rgba(255, 255, 255, .55); }
.dm-ak dd.pelne { color: #fff; }
.dm-ap { margin: 12px 0 0; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, .1); font-size: 13.5px; line-height: 1.5; color: rgba(255, 255, 255, .7); }
.dm-bar { display: none; }
@media (max-width: 1080px) {
  .dm-rg { grid-template-columns: 1fr; }
  .dm-tel-r { height: 720px; }
  .dm-ug { grid-template-columns: 1fr; }
  .dm-as { position: static; }
}
@media (max-width: 760px) {
  .dm-k { grid-template-columns: auto 1fr; padding: 18px 16px; gap: 14px; border-radius: 20px; }
  .dm-k .ai { width: 46px; height: 46px; border-radius: 14px; }
  .dm-a { display: none; }
  .dm-t b { font-size: 16.5px; }
  .dm-t small { font-size: 13.5px; }
  .dm-tel-r { height: 640px; max-width: 360px; border-radius: 44px; padding: 11px; }
  .dm-tel-r iframe, .dm-tel-p { border-radius: 34px; }
  .dm-tel-p { top: 11px; left: 11px; right: 11px; bottom: 11px; }
  .dm-rb .btn { width: 100%; justify-content: center; }
  .dm-pb .btn { width: 100%; justify-content: center; }
  .dm-f { border-radius: 24px; gap: 18px; }
  .dm-pr li { font-size: 12px; flex-direction: column; align-items: flex-start; gap: 6px; }
  .dm-rodz { grid-template-columns: 1fr 1fr; gap: 8px; }
  .dm-rodz button { min-height: 56px; padding: 8px 10px; gap: 10px; font-size: 14px; }
  .dm-rodz .ai { width: 34px; height: 34px; }
  .dm-co { grid-template-columns: 1fr; gap: 8px; }
  .dm-c > span { min-height: 64px; }
  .dm-dni { grid-template-columns: repeat(3, 1fr); }
  .dm-f .kr-pola { grid-template-columns: 1fr; }
  .dm-f .kr-chips button { min-height: 44px; font-size: 13.5px; }
  .dm-nav { position: -webkit-sticky; position: sticky; bottom: calc(10px + env(safe-area-inset-bottom, 0px)); z-index: 5; }
  .dm-nav .btn { flex: 1; justify-content: center; padding: 0 16px; box-shadow: 0 16px 30px -16px rgba(23, 21, 43, .5); }
  .dm-nav .btn.o { flex: none; background: #fff; }
  .dm-plan li { grid-template-columns: 1fr; gap: 2px; }
  .dm-oka .btn { width: 100%; justify-content: center; }
  .dm-ak { border-radius: 24px; padding: 22px 20px; }
  .dm-bar { display: flex; position: fixed; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom, 0px)); z-index: 60; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 8px 8px 16px; border-radius: 20px; background: var(--ink); color: #fff; box-shadow: 0 20px 50px -20px rgba(23, 21, 43, .7); -webkit-transform: translateY(150%); transform: translateY(150%); transition: transform .35s cubic-bezier(.2, .7, .2, 1); }
  .dm-bar.on { -webkit-transform: none; transform: none; }
  .dm-bar b { display: block; font: 700 15px/1.2 var(--h); }
  .dm-bar small { display: block; font-size: 12px; color: rgba(255, 255, 255, .7); margin-top: 2px; }
  .dm-bar .btn { min-height: 46px; padding: 0 20px; white-space: nowrap; }
}
.dm-h .oht .ctas { display: none; }
@media (max-width: 760px) { .dm-f [data-grp="rooms"] { display: grid; grid-template-columns: repeat(5, 1fr); } .dm-f [data-grp="rooms"] button { padding: 0 4px; } .dm-h .oht > div:last-child { margin-top: -6px; } }
/* telefon: gdy dolny pasek (demo, cennik) jest widoczny, przycisk czatu podnosi sie nad niego */
@media (max-width: 1020px) { html:has(.dm-bar.on) .nch-l, html:has(.cn-bar.on) .nch-l { bottom: calc(86px + env(safe-area-inset-bottom, 0px)) !important; } .nch-l { transition: bottom .3s; } }

/* ---------- KONTAKT 2026: korzysci, dla kogo, okno prezentacji ---------- */
.kz-g { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-top: 40px; }
.kz-k { padding: 26px 24px; border-radius: 22px; background: #fff; border: 1px solid var(--line); box-shadow: 0 18px 40px -30px rgba(23, 21, 43, .35); }
.kz-k h3 { margin: 16px 0 8px; font: 700 18px/1.3 var(--h); color: var(--ink); letter-spacing: -.01em; }
.kz-k p { margin: 0; color: var(--txt); font: 400 15px/1.6 var(--b); }
.kz-k p b { color: var(--ink); font-weight: 600; }
.kz-cta { display: flex; align-items: center; justify-content: center; gap: 18px; flex-wrap: wrap; margin-top: 34px; }
.kz-cta span { color: var(--txt); font: 500 14px var(--b); }
.dk-g { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-top: 36px; }
.dk-k { padding: 24px; border-radius: 20px; background: var(--soft); border: 1px solid var(--line); }
.dk-k h3 { margin: 0 0 8px; font: 700 17px/1.3 var(--h); color: var(--ink); }
.dk-k p { margin: 0; color: var(--txt); font: 400 14.5px/1.6 var(--b); }
html.pz-on { overflow: hidden; }
.pz-m { position: fixed; inset: 0; z-index: 2147482000; display: grid; place-items: center; padding: 16px; }
.pz-m[hidden] { display: none; }
.pz-o { position: absolute; inset: 0; background: rgba(23, 21, 43, .6); backdrop-filter: blur(4px); animation: pzIn .2s ease; }
.pz-k { position: relative; width: min(620px, 100%); max-height: calc(100vh - 32px); overflow: auto; padding: 34px 34px 30px; border-radius: 26px; background: #fff; box-shadow: 0 40px 100px -30px rgba(23, 21, 43, .6); animation: pzUp .3s cubic-bezier(.2, .8, .2, 1); }
@keyframes pzIn { from { opacity: 0; } }
@keyframes pzUp { from { opacity: 0; transform: translateY(16px); } }
.pz-x { position: absolute; right: 16px; top: 16px; width: 40px; height: 40px; border-radius: 50%; border: 0; background: var(--soft); color: var(--ink); display: grid; place-items: center; cursor: pointer; }
.pz-x svg { width: 18px; height: 18px; }
.pz-ey { display: inline-block; margin-bottom: 10px; color: var(--v); font: 700 13px/1 var(--b); letter-spacing: .04em; text-transform: uppercase; }
.pz-k h2 { margin: 0 44px 14px 0; font: 800 28px/1.15 var(--h); letter-spacing: -.025em; color: var(--ink); }
.pz-k h2 b { color: var(--v); }
.pz-ul { list-style: none; margin: 0 0 20px; padding: 0; display: grid; gap: 8px; }
.pz-ul li { display: flex; gap: 10px; align-items: center; color: var(--ink2); font: 500 15px/1.4 var(--b); }
.pz-ul svg { flex: none; width: 20px; height: 20px; padding: 3px; border-radius: 50%; background: #E6F6EE; color: var(--ok); }
.pz-f { display: grid; gap: 16px; }
.pz-f[hidden] { display: none; }
.pz-g { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pz-w { width: 100%; justify-content: center; min-height: 56px; }
.pz-ok { text-align: center; padding: 20px 0 6px; }
.pz-ok .kr-okz { display: inline-grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: #E6F6EE; color: var(--ok); }
.pz-ok .kr-okz svg { width: 34px; height: 34px; }
.pz-ok h2 { margin: 16px auto 10px; }
.pz-ok p { color: var(--txt); font: 400 15.5px/1.6 var(--b); margin: 0 0 20px; }
@media (max-width: 1000px) { .kz-g, .dk-g { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) {
  .kz-g, .dk-g { grid-template-columns: minmax(0, 1fr); }
  .pz-m { padding: 0; place-items: end stretch; }
  .pz-k { width: 100%; max-height: 92vh; padding: 26px 18px 22px; border-radius: 22px 22px 0 0; }
  .pz-k h2 { font-size: 23px; }
  .pz-g { grid-template-columns: minmax(0, 1fr); }
  .kz-cta .btn { width: 100%; justify-content: center; }
}
/* telefon: przy przyklejonym pasku z glownym przyciskiem (konfigurator, prezentacja) czat chowa sie, zeby nie nachodzil na "Dalej" / "Umow" */
@media (max-width: 640px) { html:has(.dm-bar.on) .nch-l, html:has(.cn-bar.on) .nch-l { display: none !important; } }

/* ---------- /prezentacja (19.09.2026) ---------- */
.oh-pod { margin: 14px 0 0; font-size: 14.5px; color: var(--txt); max-width: 520px; }
.pz-h .ohg { grid-template-columns: 1fr 1.1fr; }
.pz-h .chip { text-transform: uppercase; letter-spacing: .06em; font-size: 12px; }
/* hero: karta w panelu + telefon z zakupem tego samego pobytu */
.pz-para { position: relative; padding: 0 0 0 64px; }
.pz-okno { margin: 0; border-radius: 16px; overflow: hidden; background: #fff; border: 1px solid rgba(23, 21, 43, .08); box-shadow: 0 40px 80px -40px rgba(23, 21, 43, .45); }
.pz-okno .pasek { height: 32px; display: flex; align-items: center; gap: 6px; padding: 0 12px; background: #F4F3F9; border-bottom: 1px solid var(--line); }
.pz-okno .pasek i { width: 9px; height: 9px; border-radius: 50%; background: #D8D5E6; }
.pz-okno .pasek span { margin-left: 10px; font: 500 11.5px/1 var(--b); color: var(--txt); background: #fff; border: 1px solid var(--line); border-radius: 999px; padding: 5px 12px; }
.pz-okno img { display: block; width: 100%; height: auto; }
.pz-tel { margin: 0; width: 34%; max-width: 210px; padding: 7px; border-radius: 30px; background: var(--ink); box-shadow: 0 0 0 1.5px #2D2950, 0 40px 70px -30px rgba(23, 21, 43, .6); }
.pz-tel img { display: block; width: 100%; height: auto; border-radius: 24px; aspect-ratio: 780 / 1320; object-fit: cover; object-position: top; }
.pz-para .pz-tel { position: absolute; left: 0; bottom: -28px; }
.pz-para-o { list-style: none; margin: 52px 0 0 34%; padding: 0; display: grid; gap: 10px; }
.pz-para-o li { display: flex; align-items: center; gap: 10px; font-size: 14.5px; font-weight: 500; color: var(--ink); }
.pz-para-o span { flex: none; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--v); color: #fff; font: 700 12.5px/1 var(--b); }
/* problem */
.pz-pg { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(28px, 5vw, 72px); align-items: center; }
.pz-pyt { font: 600 clamp(19px, 1.8vw, 23px)/1.4 var(--h); color: var(--v); margin: 22px 0 14px; }
.pz-sam { background: var(--soft); border: 1px solid var(--line); border-radius: 24px; padding: 28px; }
.pz-sam small { display: block; font-size: 13px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--txt); margin-bottom: 16px; }
.pz-sam ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.pz-sam li { display: flex; align-items: center; gap: 14px; background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 14px 16px; }
.pz-sam li b { font-size: 16px; font-weight: 600; color: var(--ink); }
.pz-sam .ai { flex: none; }
.pz-cyt { margin: 48px auto 0; max-width: 820px; text-align: center; font: 500 clamp(22px, 2.4vw, 30px)/1.35 var(--h); color: var(--ink); padding: 26px 28px; border-radius: 22px; background: linear-gradient(135deg, #F1EEFF, #FBFAFF); border: 1px solid var(--lav2); }
.pz-cyt b { color: var(--v); font-weight: 700; }
/* dowod: etapy tej samej rezerwacji */
.pz-dg { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(24px, 4vw, 56px); align-items: center; margin-top: 48px; }
.pz-dk { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.pz-dk button { position: relative; width: 100%; display: flex; gap: 14px; align-items: flex-start; text-align: left; padding: 18px 18px 20px; border-radius: 18px; border: 1px solid var(--line); background: #fff; cursor: pointer; font: inherit; color: inherit; overflow: hidden; transition: border-color .3s, box-shadow .3s; }
.pz-dk button > span:first-child { flex: none; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--mist); color: var(--v); font: 700 14px/1 var(--b); transition: background .3s, color .3s; }
.pz-dt b { display: block; font: 700 17px/1.3 var(--h); color: var(--ink); }
.pz-dt small { display: block; margin-top: 4px; font-size: 14.5px; line-height: 1.5; color: var(--txt); }
.pz-dk .on button { border-color: var(--v); box-shadow: 0 18px 40px -26px rgba(88, 70, 199, .55); }
.pz-dk .on button > span:first-child { background: var(--v); color: #fff; }
.pz-pr { position: absolute; left: 0; bottom: 0; height: 3px; width: 0; background: var(--v); }
.pz-dk .on .pz-pr { animation: pzPr var(--pz-t, 5s) linear forwards; }
[data-pokaz].stop .pz-pr { animation: none !important; width: 0; }
@keyframes pzPr { to { width: 100%; } }
.pz-ek { position: relative; display: grid; }
.pz-ek > .pz-s { grid-area: 1 / 1; display: flex; align-items: center; justify-content: center; opacity: 0; transform: translateY(10px) scale(.985); transition: opacity .5s ease, transform .6s ease; pointer-events: none; }
.pz-ek > .pz-s.on { opacity: 1; transform: none; pointer-events: auto; }
.pz-dow .pz-ek { min-height: 440px; padding: 24px; border-radius: 28px; background: radial-gradient(600px 300px at 50% 0%, #EDE8FF, #F7F6FB 70%); }
.pz-dow .pz-okno { width: 100%; }
.pz-dow .pz-tel { width: 46%; max-width: 230px; }
.pz-db { margin-top: 40px; }
/* druga korzysc: trzy obszary */
.pz-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 40px; }
.pz-3 > div { display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; padding: 20px; border-radius: 18px; background: #fff; border: 1px solid var(--line); }
.pz-3 .ai { grid-row: span 2; }
.pz-3 b { font: 700 16.5px/1.3 var(--h); color: var(--ink); }
.pz-3 small { font-size: 14.5px; line-height: 1.5; color: var(--txt); }
.dm-pan .notka { margin-top: 18px; font-size: 14px; color: var(--txt); }
/* finanse */
.pz-fg { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(28px, 5vw, 72px); align-items: center; text-align: left; }
.pz-fin .ey { color: var(--lav); }
.pz-fin h2 { color: #fff; }
.pz-fin .lead { color: rgba(255, 255, 255, .75); margin: 18px 0 0; max-width: 540px; }
.pz-fin .ctas { justify-content: flex-start; margin-top: 30px; }
.pz-fk { display: grid; gap: 12px; }
.pz-fk > div { padding: 20px 22px; border-radius: 18px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); }
.pz-fk b { display: block; font: 800 22px/1.2 var(--h); color: #fff; }
.pz-fk > div:first-child b { font-size: 44px; color: var(--lav); }
.pz-fk span { display: block; margin-top: 4px; color: rgba(255, 255, 255, .72); font-size: 15px; }
.pz-fk p { margin: 4px 2px 0; font-size: 13.5px; color: rgba(255, 255, 255, .55); }
/* zaufanie */
.pz-tg { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(28px, 5vw, 72px); align-items: center; }
.pz-foto { position: relative; border-radius: 28px; overflow: hidden; background: radial-gradient(420px 380px at 50% 38%, #E4DEFF 0%, #F1EEFF 55%, #F7F6FB 100%); }
.pz-foto img { display: block; width: 100%; height: auto; }
.pz-tt { padding-bottom: 12px; }
.pz-tt .lead { margin: 18px 0 0; }
.pz-mat { margin-top: 26px; }
.pz-mat small { display: block; font-size: 13px; color: var(--txt); margin-bottom: 10px; }
.pz-mat .pz-okno { width: 100%; box-shadow: 0 24px 50px -34px rgba(23, 21, 43, .45); }
.pz-mat .pz-okno img { aspect-ratio: 2100 / 1100; object-fit: cover; object-position: left top; }
.pz-tt .ctas { margin-top: 26px; justify-content: flex-start; }
@media (prefers-reduced-motion: reduce) { .pz-ek > .pz-s { transition: none; } .pz-dk .on .pz-pr { animation: none; } }
@media (max-width: 980px) {
  .pz-h .ohg { grid-template-columns: 1fr; }
  .pz-para { max-width: 560px; margin: 16px auto 0; padding-left: 48px; }
  .pz-para-o { margin-left: 30%; }
  .oh-pod { margin-left: auto; margin-right: auto; text-align: center; }
  .pz-pg, .pz-dg, .pz-fg, .pz-tg { grid-template-columns: 1fr; }
  .pz-3 { grid-template-columns: 1fr; }
  .pz-fin .ctas { justify-content: center; } .pz-fg { text-align: center; } .pz-fin .lead { margin-left: auto; margin-right: auto; }
  .pz-foto { max-width: 380px; margin: 0 auto; }
  .pz-tt { text-align: center; } .pz-tt .ctas { justify-content: center; }
}
@media (max-width: 560px) {
  .pz-para { padding-left: 34px; }
  .pz-para .pz-tel { width: 38%; bottom: -18px; padding: 5px; border-radius: 22px; } .pz-para .pz-tel img { border-radius: 18px; }
  .pz-para-o { margin: 34px 0 0 42%; } .pz-para-o li { font-size: 13px; align-items: flex-start; }
  .pz-sam { padding: 20px; border-radius: 20px; }
  .pz-cyt { padding: 20px; margin-top: 32px; }
  .pz-dow .pz-ek { min-height: 0; padding: 14px; border-radius: 20px; }
  .pz-dow .pz-tel { width: 58%; }
  .pz-dk button { padding: 14px 14px 16px; }
  .pz-fk > div:first-child b { font-size: 36px; }
}
.pz-h h1 { font-size: clamp(34px, 3.5vw, 52px); }
.pz-h h1 strong { margin-top: 10px; }
.pz-h .lead { font-size: 18px; }
/* hero /prezentacja: kolumny nie rozpychaja sie dlugim przyciskiem ani chipem (telefon) */
.pz-h .ohg > * { min-width: 0; }
.pz-h .chip { max-width: 100%; white-space: normal; text-align: left; line-height: 1.35; }
@media (max-width: 560px) { .pz-h .ctas .btn { white-space: normal; text-align: center; justify-content: center; width: 100%; min-height: 56px; padding: 12px 18px; line-height: 1.3; } .pz-h h1 { font-size: clamp(30px, 8.4vw, 40px); } .pz-h .chip { font-size: 11px; letter-spacing: .04em; } .pz-h .lead { font-size: 16.5px; } }
.pz-pg > *, .pz-dg > *, .pz-fg > *, .pz-tg > *, .pz-3 > * { min-width: 0; }
@media (max-width: 560px) { .pz-fin .ctas .btn, .pz-tt .ctas .btn, .pz-db .btn { white-space: normal; text-align: center; justify-content: center; width: 100%; min-height: 54px; padding: 12px 18px; line-height: 1.3; } }

/* ---------- /prezentacja hero: silnik na stronie -> rezerwacja w kalendarzu (19.09.2026) ---------- */
.pzs { position: relative; display: grid; gap: 14px; }
.pzs-sil, .pzs-kal { background: #fff; border: 1px solid rgba(23, 21, 43, .08); border-radius: 18px; box-shadow: 0 40px 80px -44px rgba(23, 21, 43, .45); overflow: hidden; }
.pzs-pasek { height: 30px; display: flex; align-items: center; gap: 6px; padding: 0 12px; background: #F4F3F9; border-bottom: 1px solid var(--line); }
.pzs-pasek i { width: 8px; height: 8px; border-radius: 50%; background: #D8D5E6; }
.pzs-pasek span { margin-left: 8px; font: 500 11px/1 var(--b); color: var(--txt); background: #fff; border: 1px solid var(--line); border-radius: 999px; padding: 4px 11px; }
.pzs-gora { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 14px; background: var(--v); color: #fff; font: 500 12px/1.2 var(--b); }
.pzs-gora b { font: 700 13.5px/1.2 var(--h); }
.pzs-pok { display: grid; grid-template-columns: 44% 1fr; }
.pzs-foto { position: relative; min-height: 190px; }
.pzs-foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pzs-inf { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.pzs-nazwa { font: 700 18px/1.2 var(--h); color: var(--ink); }
.pzs-inf > small { font-size: 12.5px; color: var(--txt); }
.pzs-chip { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 2px; }
.pzs-chip span { font: 500 11px/1 var(--b); color: var(--ink); background: #F4F2FA; border-radius: 999px; padding: 6px 9px; white-space: nowrap; }
.pzs-cena { margin-top: auto; padding-top: 10px; display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; }
.pzs-cena b { display: block; font: 800 22px/1 var(--h); letter-spacing: -.02em; color: var(--ink); white-space: nowrap; }
.pzs-cena small { display: block; margin-top: 4px; font-size: 11.5px; color: var(--txt); }
.pzs-btn { position: relative; flex: none; display: inline-grid; height: 40px; padding: 0 14px; border-radius: 11px; background: var(--v); color: #fff; font: 700 12.5px/40px var(--b); white-space: nowrap; transition: background .35s, transform .15s; }
.pzs-btn em { grid-area: 1 / 1; font-style: normal; display: inline-flex; align-items: center; gap: 6px; transition: opacity .25s; }
.pzs-btn em + em { opacity: 0; } .pzs-btn svg { width: 15px; height: 15px; }
.pzs.pzs-s1 .pzs-btn { transform: scale(.94); }
.pzs.pzs-s2 .pzs-btn { background: var(--ok); } .pzs.pzs-s2 .pzs-btn em:first-child { opacity: 0; } .pzs.pzs-s2 .pzs-btn em + em { opacity: 1; }
/* kalendarz */
.pzs-kal { padding: 12px 14px 12px; margin-left: 12%; }
.pzs-kg { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 8px; }
.pzs-kg b { font: 700 14px/1.2 var(--h); color: var(--ink); }
.pzs-nowa { display: inline-flex; align-items: center; gap: 5px; font: 600 11px/1 var(--b); color: #14774F; background: var(--ok-bg); border-radius: 999px; padding: 6px 9px; opacity: 0; transform: translateY(-4px); transition: opacity .35s, transform .35s; }
.pzs-nowa svg { width: 12px; height: 12px; }
.pzs.pzs-s3 .pzs-nowa { opacity: 1; transform: none; }
.pzs-sia { display: grid; grid-template-columns: 74px repeat(7, minmax(0, 1fr)); row-gap: 6px; }
.pzs-h { font: 700 12px/1.1 var(--b); color: var(--ink); text-align: center; padding-bottom: 4px; border-bottom: 1px solid var(--line); }
.pzs-h small { display: block; font: 500 10px/1.2 var(--b); color: var(--txt); }
.pzs-r { font: 600 11.5px/28px var(--b); color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; border-radius: 8px; padding-left: 6px; transition: background .4s; }
.pzs.pzs-s3 .pzs-rg { background: #EDE8FF; }
.pzs-l { grid-column: 2 / -1; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); height: 28px; background: repeating-linear-gradient(90deg, transparent 0 calc(100% / 7 - 1px), var(--line) calc(100% / 7 - 1px) calc(100% / 7)); border-radius: 8px; }
.pzs-b { grid-row: 1; margin: 3px 3px; border-radius: 7px; display: flex; align-items: center; gap: 5px; padding: 0 8px; font: 600 11px/1 var(--b); white-space: nowrap; overflow: hidden; min-width: 0; }
.pzs-b i { font-style: normal; font: 800 10px/1 var(--b); flex: none; }
.pzs-bk { background: #E6EEFA; color: #003580; } .pzs-ab { background: #FFE9EE; color: #C8104A; } .pzs-ws { background: #EDE8FF; color: #4938AF; }
.pzs-nw { background: var(--ok-bg); color: #14774F; box-shadow: inset 0 0 0 1.5px #1F9D6B; opacity: 0; transform: translateY(-14px) scale(.96); transition: opacity .4s, transform .55s cubic-bezier(.2, 1.3, .4, 1); }
.pzs.pzs-s3 .pzs-nw { opacity: 1; transform: none; }
.pzs-dol { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); font-size: 12.5px; color: var(--txt); }
.pzs-dol b { font: 800 20px/1 var(--h); color: #14774F; transition: transform .3s; }
.pzs.pzs-s3 .pzs-dol b { transform: scale(1.08); }
.pzs-note { margin: 0; text-align: right; font-size: 11px; color: var(--txt); opacity: .8; }
@media (prefers-reduced-motion: reduce) { .pzs * { transition: none !important; } }
@media (max-width: 980px) { .pzs { max-width: 600px; margin: 18px auto 0; } }
@media (max-width: 560px) {
  .pzs-pok { grid-template-columns: 1fr; }
  .pzs-foto { min-height: 150px; }
  .pzs-inf { padding: 12px 14px 14px; }
  .pzs-nazwa { font-size: 16.5px; }
  .pzs-kal { margin-left: 0; padding: 10px 10px 10px; }
  .pzs-sia { grid-template-columns: 62px repeat(7, minmax(0, 1fr)); }
  .pzs-r { font-size: 10.5px; padding-left: 4px; }
  .pzs-h { font-size: 11px; } .pzs-h small { font-size: 9px; }
  .pzs-b { padding: 0 5px; font-size: 10px; margin: 3px 2px; }
  .pzs-gora span { font-size: 11px; }
}
.pz-h .ohp { width: 100%; min-width: 0; } .pzs { width: 100%; }
@media (max-width: 560px) { .pzs-kw { display: none; } }

/* ---------- /prezentacja v2 (19.09.2026): 4 kroki rezerwacji, "Co dalej?" przy formularzu ---------- */
.pz-dg4 { grid-template-columns: minmax(0, .8fr) minmax(0, 1.35fr); }
.pz-dg4 .pz-ek { min-height: 0; padding: 0; background: none; }
.pz-kr { margin: 0; width: 100%; border-radius: 16px; overflow: hidden; background: #fff; border: 1px solid rgba(23, 21, 43, .08); box-shadow: 0 50px 90px -46px rgba(23, 21, 43, .5), 0 0 0 8px rgba(237, 232, 255, .55); }
.pz-kr .pasek { height: 32px; display: flex; align-items: center; gap: 6px; padding: 0 12px; background: #F4F3F9; border-bottom: 1px solid var(--line); }
.pz-kr .pasek i { width: 9px; height: 9px; border-radius: 50%; background: #D8D5E6; }
.pz-kr .pasek span { margin-left: 10px; font: 500 11.5px/1 var(--b); color: var(--txt); background: #fff; border: 1px solid var(--line); border-radius: 999px; padding: 5px 12px; }
.pz-kr img { display: block; width: 100%; height: auto; }
.pz-dg4 .pz-dk button > span:first-child { width: 36px; height: 36px; }
.pz-dn { margin: 22px auto 0; max-width: 620px; font-size: 13.5px; color: var(--txt); }
.pz-dow .pz-db { margin-top: 26px; }
/* "Co dalej?" obok formularza prezentacji */
.dm-as2 { display: grid; gap: 14px; align-content: start; position: -webkit-sticky; position: sticky; top: 96px; }
.dm-as2 .kf-co { margin: 0; }
.dm-ap2 { display: flex; align-items: center; gap: 10px; margin: 0; padding: 14px 16px; border-radius: 18px; background: var(--soft); border: 1px solid var(--line); font-size: 14px; color: var(--ink); }
.dm-ap2 svg { width: 20px; height: 20px; color: var(--v); flex: none; }
@media (max-width: 980px) { .pz-dg4 { grid-template-columns: 1fr; } .dm-as2 { position: static; } }
@media (max-width: 760px) {
  /* telefon: zrzut z telefonu w ramce telefonu, lista krokow zwarta (opis tylko przy aktywnym) */
  .pz-kr { max-width: 300px; margin: 0 auto; border-radius: 34px; padding: 8px; background: var(--ink); border: 0; box-shadow: 0 0 0 1.5px #2D2950, 0 40px 70px -30px rgba(23, 21, 43, .6); }
  .pz-kr .pasek { display: none; }
  .pz-kr img { border-radius: 27px; aspect-ratio: 780 / 1480; object-fit: cover; object-position: top; }
  .pz-dg4 { gap: 22px; }
  .pz-dg4 .pz-dk { gap: 8px; }
  .pz-dg4 .pz-dk li:not(.on) .pz-dt small { display: none; }
  .pz-dg4 .pz-dk button { padding: 12px 14px 14px; align-items: center; }
  .pz-dg4 .pz-dk li.on button { align-items: flex-start; }
}

/* ---------- /prezentacja: pilotaz, 5 miejsc na darmowe wdrozenie (19.09.2026) ---------- */
.pz-pil { padding-top: 20px; }
.pil { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(28px, 4vw, 64px); align-items: center; padding: clamp(28px, 4vw, 56px); border-radius: 32px; color: #fff;
  background: radial-gradient(520px 380px at 92% -10%, rgba(123, 97, 240, .6), rgba(123, 97, 240, 0) 70%), radial-gradient(460px 360px at -8% 110%, rgba(88, 70, 199, .55), rgba(88, 70, 199, 0) 70%), #17152B;
  box-shadow: 0 50px 100px -56px rgba(23, 21, 43, .8); }
.pil-ey { display: inline-flex; align-items: center; gap: 10px; font: 700 13px/1 var(--b); letter-spacing: .14em; text-transform: uppercase; color: #C4B5FD; background: rgba(196, 181, 253, .12); border: 1px solid rgba(196, 181, 253, .28); border-radius: 999px; padding: 9px 14px; }
.pil-ey i { width: 8px; height: 8px; border-radius: 50%; background: #3DD68C; box-shadow: 0 0 0 0 rgba(61, 214, 140, .7); animation: pilPuls 1.8s ease-out infinite; }
@keyframes pilPuls { 70% { box-shadow: 0 0 0 10px rgba(61, 214, 140, 0); } 100% { box-shadow: 0 0 0 0 rgba(61, 214, 140, 0); } }
.pil-t h2 { margin: 18px 0 0; font: 700 clamp(30px, 3.4vw, 46px)/1.1 var(--h); letter-spacing: -.03em; color: #fff; }
.pil-t h2 b { color: #C4B5FD; font-weight: 800; white-space: nowrap; }
.pil-t p { margin: 16px 0 0; font-size: 17px; line-height: 1.6; color: rgba(255, 255, 255, .78); max-width: 520px; }
.pil-t p b { color: #fff; }
.pil-cta { margin-top: 26px; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.pil-cta span { font-size: 13.5px; color: rgba(255, 255, 255, .6); }
.pil-m { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.pil-s { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 158px; padding: 14px 12px; border-radius: 18px; background: rgba(255, 255, 255, .06); border: 1.5px dashed rgba(196, 181, 253, .5); }
.pil-s b { font: 700 16px/1.2 var(--h); color: #fff; }
.pil-s small { margin-top: 4px; font-size: 12px; line-height: 1.3; color: rgba(255, 255, 255, .62); }
.pil-s i { position: absolute; right: 10px; top: 10px; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: rgba(196, 181, 253, .16); color: #C4B5FD; }
.pil-s i svg { width: 16px; height: 16px; }
.pil-n { position: absolute; left: 12px; top: 10px; font: 800 26px/1 var(--h); color: rgba(255, 255, 255, .22); }
.pil-s.zaj { border: 1.5px solid rgba(61, 214, 140, .55); background: linear-gradient(180deg, rgba(61, 214, 140, .2), rgba(61, 214, 140, .08)); }
.pil-s.zaj i { background: #1F9D6B; color: #fff; }
.pil-s:not(.zaj) { animation: pilWolne 3.2s ease-in-out infinite; }
.pil-s:not(.zaj):nth-child(3) { animation-delay: .4s; } .pil-s:not(.zaj):nth-child(4) { animation-delay: .8s; } .pil-s:not(.zaj):nth-child(5) { animation-delay: 1.2s; }
@keyframes pilWolne { 50% { border-color: rgba(196, 181, 253, .95); background: rgba(196, 181, 253, .12); } }
.pil-pas { grid-column: 1 / -1; height: 8px; margin-top: 8px; border-radius: 999px; background: rgba(255, 255, 255, .12); overflow: hidden; }
.pil-pas span { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #3DD68C, #1F9D6B); }
.pil-w { grid-column: 1 / -1; margin: 2px 0 0; font-size: 15px; color: rgba(255, 255, 255, .72); }
.pil-w b { color: #fff; font: 800 18px var(--h); }
.pil-dp { margin: 14px auto 0; max-width: 640px; font-size: 13px; color: var(--txt); }
@media (prefers-reduced-motion: reduce) { .pil-ey i, .pil-s { animation: none !important; } }
@media (max-width: 980px) { .pil { grid-template-columns: 1fr; } }
@media (max-width: 560px) {
  .pil { padding: 24px 18px; border-radius: 24px; }
  .pil-m { gap: 6px; }
  .pil-s { min-height: 112px; padding: 10px 8px; border-radius: 14px; }
  .pil-s b { font-size: 13px; } .pil-s small { display: none; }
  .pil-s i { right: 6px; top: 6px; width: 24px; height: 24px; } .pil-s i svg { width: 13px; height: 13px; }
  .pil-n { left: 8px; top: 8px; font-size: 20px; }
  .pil-cta .btn { width: 100%; justify-content: center; white-space: normal; text-align: center; }
}
/* pilotaz: zdanie o ofercie i dluzszy podpis pod przyciskiem (kopia 20.09.2026) */
.pil-of { margin-top: 14px; font-weight: 600; color: #fff; }
.pil-cta { flex-direction: column; align-items: flex-start; gap: 12px; }
.pil-cta span { max-width: 460px; line-height: 1.5; }
.pil-s b { font: 700 15px/1.25 var(--h); }
@media (max-width: 560px) { .pil-cta span { font-size: 12.5px; } .pil-s b { font-size: 12px; } }

/* ---------- pilotaz: licznik do konca naboru (20.09.2026) ---------- */
.pil-od { margin-top: 20px; padding: 16px 18px; border-radius: 20px; background: rgba(196, 181, 253, .1); border: 1px solid rgba(196, 181, 253, .26); }
.pil-od-t { display: block; font-size: 14px; color: rgba(255, 255, 255, .78); }
.pil-od-t b { color: #fff; font-weight: 700; }
.pil-od-z { display: flex; gap: 10px; margin-top: 12px; }
.pil-od-k { flex: 1; min-width: 0; text-align: center; padding: 10px 6px 8px; border-radius: 14px; background: rgba(23, 21, 43, .55); border: 1px solid rgba(255, 255, 255, .1); }
.pil-od-k b { display: block; font: 800 30px/1 var(--h); color: #fff; font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.pil-od-k small { display: block; margin-top: 5px; font-size: 11.5px; letter-spacing: .04em; text-transform: uppercase; color: rgba(255, 255, 255, .55); }
.pil-od-k2 { display: block; font: 600 15px/1.45 var(--b); color: #fff; }
.pil-od.po { background: rgba(255, 255, 255, .07); border-color: rgba(255, 255, 255, .16); }
@media (max-width: 560px) {
  .pil-od { padding: 14px; border-radius: 16px; }
  .pil-od-z { gap: 6px; }
  .pil-od-k { padding: 8px 2px 6px; border-radius: 11px; }
  .pil-od-k b { font-size: 23px; } .pil-od-k small { font-size: 10px; }
}
.pil-od-k2[hidden], .pil-od-z[hidden], .pil-od-t[hidden] { display: none !important; }
.pil-kr { display: none; }
@media (max-width: 560px) { .pil-dl { display: none; } .pil-kr { display: inline; } .pil-s b { font-size: 13px; } }
.pil-m .pil-od { grid-column: 1 / -1; margin-top: 16px; }
/* telefon: pewne 44 px na dotyk (chipy wychodzily 43.98 px) */
@media (max-width: 760px) { .kr-chips button, .dm-rodz button { min-height: 44px; } }

/* ---------- warunki pilotazu (20.09.2026) ---------- */
.pz-war { background: #FAF9FE; }
.war-g { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 40px; }
.war-g .kz-k a { color: var(--v); font-weight: 600; }
@media (max-width: 1000px) { .war-g { grid-template-columns: 1fr 1fr; } }
@media (max-width: 700px) { .war-g { grid-template-columns: minmax(0, 1fr); } }

/* ---------- krotkie zgloszenie do pilotazu (#umow) ---------- */
.pz-zg { background: radial-gradient(900px 460px at 12% 0%, #EFEBFF 0%, rgba(239, 235, 255, 0) 68%), #fff; scroll-margin-top: 80px; }
.pz-zgg { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(28px, 4.4vw, 64px); align-items: start; }
.pz-zgg > * { min-width: 0; }
.pz-zgt h2 { font: 600 clamp(30px, 3.4vw, 46px)/1.08 var(--h); letter-spacing: -.03em; color: var(--ink); margin: 18px 0 18px; }
.pz-zgt h2 b { display: block; font-weight: 800; color: var(--v); }
.pz-zgt .lead { margin: 0; }
.pz-zgl { list-style: none; margin: 26px 0 0; padding: 0; display: grid; gap: 12px; }
.pz-zgl li { display: grid; grid-template-columns: 26px 1fr; gap: 12px; align-items: start; font: 500 16px/1.5 var(--b); color: var(--ink); }
.pz-zgl .ai { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 9px; background: #EFEBFF; color: var(--v); }
.pz-zgl .ai svg { width: 16px; height: 16px; }
.pz-zgo { display: grid; grid-template-columns: 72px 1fr; gap: 16px; align-items: center; margin-top: 30px; padding: 16px 18px; border-radius: 20px; background: #fff; border: 1px solid var(--line); }
.pz-zgo img { display: block; width: 72px; height: 72px; border-radius: 50%; object-fit: cover; object-position: 50% 14%; background: #F1EEFF; }
.pz-zgo p { margin: 0; font: 400 15px/1.55 var(--b); color: var(--txt); }
.pil-f { position: relative; display: grid; gap: 18px; padding: clamp(22px, 3.2vw, 36px); border-radius: 28px; background: #fff; border: 1px solid var(--line); box-shadow: 0 40px 80px -60px rgba(23, 21, 43, .45); }
.pil-f > h3 { margin: 0; font: 700 clamp(20px, 2.2vw, 26px)/1.2 var(--h); color: var(--ink); letter-spacing: -.02em; outline: none; }
.pil-f .pz-sz { grid-column: 1 / -1; }
.pil-f .btn { width: 100%; min-height: 56px; font-size: 16.5px; }
.pil-f-n { margin: 0; font: 400 13.5px/1.55 var(--b); color: var(--txt); }
.pil-f-a { margin: 0; padding-top: 16px; border-top: 1px solid var(--line); font: 400 14px/1.5 var(--b); color: var(--txt); }
.pil-f-a a { color: var(--v); font-weight: 600; }
.pil-f.wyslane > h3, .pil-f.wyslane .kr-pola, .pil-f.wyslane .kr-grp, .pil-f.wyslane > label, .pil-f.wyslane .btn, .pil-f.wyslane .pil-f-n, .pil-f.wyslane .pil-f-a { display: none; }
@media (max-width: 1000px) { .pz-zgg { grid-template-columns: 1fr; } .pz-zgo { max-width: 560px; } }
@media (max-width: 560px) { .pz-zgo { grid-template-columns: 56px 1fr; gap: 12px; } .pz-zgo img { width: 56px; height: 56px; } .pz-zgo p { font-size: 14px; } }

/* telefon: mniej pustej przestrzeni nad naglowkiem, oferta blizej przycisku */
@media (max-width: 760px) {
  .pz-h { padding-top: 96px; }
  .pz-h h1 { margin: 16px auto 14px; }
  .pz-h .ctas { margin-top: 22px; }
  .pz-h .chk { margin-top: 16px; }
}
/* telefon: czat nie zaslania przycisku formularza zgloszenia */
@media (max-width: 640px) { html.pz-form .nch-l, html.pz-form .nch-b { display: none !important; } }

/* dlugie etykiety przyciskow nie moga rozpychac ukladu na telefonie */
@media (max-width: 900px) {
  .ctab > *, .ctab.ludz > * { min-width: 0; }
  .ctab .ctas .btn { white-space: normal; text-align: center; line-height: 1.3; padding: 12px 20px; }
}
@media (max-width: 1020px) {
  .dm-bar > div { min-width: 0; }
  .dm-bar b, .dm-bar small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}

/* zgloszenie: formularz obok tekstu, karta Tomka pod tekstem (na telefonie pod formularzem) */
.pz-zgg { align-items: start; }
.pz-zgt { grid-column: 1; grid-row: 1; }
.pz-zg .pil-f { grid-column: 2; grid-row: 1 / 3; }
.pz-zgo { grid-column: 1; grid-row: 2; margin-top: 24px; }
@media (max-width: 1000px) {
  .pz-zgt, .pz-zg .pil-f, .pz-zgo { grid-column: 1; grid-row: auto; }
  .pz-zgt h2 { font-size: clamp(27px, 7.4vw, 34px); margin: 14px 0 14px; }
  .pz-zgt .lead { font-size: 16.5px; }
  .pz-zgl { margin-top: 18px; gap: 10px; }
  .pz-zgl li { font-size: 15px; }
  .pz-zgo { margin-top: 18px; }
}
/* telefon: naglowek bliżej gory */
@media (max-width: 760px) { .pz-h { padding-top: 78px; } }

/* ================= telefon: poprawki /prezentacja (20.09.2026) =================
   Tomek: "dużo elementów na sobie", "screeny poucinane", "pasek na dole do wyjebania", "opornie chodzi".
   Zrzuty panelu i portalu gościa mają teraz wersje z telefonu (shot-panel-tel.mjs), a nie przybliżony
   wycinek ekranu z komputera. Pasek przy dolnej krawędzi zniknął ze strony (blok dmBar usunięty). */
@media (max-width: 760px) {
  /* zakładki panelu: siatka 2x2 zamiast poziomego suwaka, który wyglądał na ucięty */
  .tour-t { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0 0 18px; padding: 0; overflow: visible; }
  .tour-t button { min-height: 50px; padding: 8px 12px; gap: 8px; }
  .tour-t .ti { width: 30px; height: 30px; border-radius: 9px; }
  .tour-t .ti svg { width: 17px; height: 17px; }
  .tour-t .tt b { font-size: 13.5px; }
  .tour-t .tt small { display: none; }
  /* zrzuty z telefonu w ramce telefonu: cały ekran, nic nie jest ucięte */
  .tour-tel .tour-e { max-width: 292px; margin: 0 auto; padding: 8px; border: 0; border-radius: 36px; background: var(--ink); box-shadow: 0 0 0 1.5px #2D2950, 0 30px 60px -34px rgba(23, 21, 43, .55); }
  .tour-tel .tour-e .pasek { display: none; }
  .tour-tel .tour-e .kad { aspect-ratio: 780 / 1688; border-radius: 28px; overflow: hidden; }
  .tour-tel .tour-s.ma-tel img { position: static; width: 100%; height: 100%; max-width: 100%; object-fit: cover; object-position: top; }
  /* ekrany silnika: pełna wysokość zrzutu, bez ucinania przycisku na dole */
  .pz-kr img { aspect-ratio: 780 / 1560; }
  /* zdjęcie w scenie hero: mniej agresywny kadr */
  .pzs-foto { min-height: 190px; }
  /* mniej pustki między sekcjami */
  .sek { padding: 64px 0; }
  .pz-zg, .pz-war { padding: 56px 0; }
  .dm-pb { margin-top: 26px; }
  /* lżejsze rysowanie przy przewijaniu */
  .ludz-o, .kth-o, .hp .osoba { -webkit-filter: none; filter: none; }
  .pz-foto, .dm-f, .pil-f, .kz-k, .war-k { box-shadow: 0 18px 36px -28px rgba(23, 21, 43, .35); }
  /* sekcje poniżej formularza rysują się dopiero, gdy są potrzebne */
  .pz-zg ~ section.sek { content-visibility: auto; contain-intrinsic-size: auto 1200px; }
}

@media (max-width: 760px) {
  /* nic nie plywa nad trescia: przyciski kreatora sa w tresci formularza, nie przyklejone do dolu */
  .dm-nav { position: static; box-shadow: none; }
  .dm-nav .btn { box-shadow: none; }
}
/* kotwice: naglowek sekcji nie chowa sie pod przyklejonym paskiem strony */
main section[id] { scroll-margin-top: 78px; }
