/* landings/kursy/style.css — style WŁASNE landingu „Kursy" (/kursy i trzy podstrony kursów).
   Ładowany PO /landings/_shared/landing.css, więc nadpisuje go bez `!important`.
   Zasada: wszystko, co da się złożyć z klas wspólnych (.benefit-grid, .steps, .pricing,
   .compare, .faq, .audit-form), składamy z nich — tu leżą WYŁĄCZNIE rzeczy, których
   we wspólnym arkuszu nie ma: kafle kursów, program modułów i dwie makiety.
   Prefiks `ku-`/`km-`/`kn-` jest wolny w landing.css (sprawdzone 15.09.2026), więc nic nie koliduje. */

/* Akcent landingu. Pozostałe motywy zajmują niebieski, zielony, fiolet, czerwień, cyjan
   i bursztyn — kursy dostają indygo, żeby „Kursy" dało się odróżnić od „Strony WWW". */
body.theme-kursy { --lp:#4F46E5; --lp-soft:#EEF2FF; }

/* ── kafle kursów (rozdzielacz /kursy) ───────────────────────────────────── */
.ku-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:18px; margin-top:34px; }
.ku-tile { display:flex; flex-direction:column; text-decoration:none; background:var(--surface);
  border:1px solid var(--border); border-radius:var(--r-xl); padding:24px 24px 20px;
  box-shadow:var(--shadow-sm); transition:border-color .18s, box-shadow .18s, transform .18s; }
.ku-tile:hover { border-color:var(--accent); box-shadow:var(--shadow-lg); transform:translateY(-2px); }
.ku-ico { width:52px; height:52px; border-radius:14px; background:var(--lp-soft);
  display:grid; place-items:center; margin-bottom:14px; }
.ku-ico svg { width:34px; height:34px; display:block; }
.ku-tile h3 { font-size:1.08rem; font-weight:800; color:var(--navy); letter-spacing:-.01em; margin:0 0 6px; }
.ku-meta { display:flex; flex-wrap:wrap; gap:6px 14px; font-size:.79rem; color:var(--fg-muted);
  font-variant-numeric:tabular-nums; margin-bottom:10px; }
.ku-meta span { display:inline-flex; align-items:center; gap:5px; }
.ku-meta span::before { content:""; width:4px; height:4px; border-radius:50%; background:var(--border-strong); }
.ku-meta span:first-child::before { display:none; }
.ku-tile p { flex:1; font-size:.91rem; line-height:1.62; color:var(--fg-secondary); margin:0 0 16px; }
.ku-price { display:flex; align-items:baseline; gap:8px; padding-top:14px; border-top:1px solid var(--border-soft); }
.ku-price b { font-size:1.22rem; font-weight:800; color:var(--navy); letter-spacing:-.02em; font-variant-numeric:tabular-nums; }
.ku-price span { font-size:.8rem; color:var(--fg-muted); }
.ku-go { margin-top:12px; font-size:.9rem; font-weight:700; color:var(--accent-fg); }
.ku-tile:hover .ku-go { text-decoration:underline; }

/* ── program kursu: moduły rozwijane ─────────────────────────────────────── */
.ku-mods { max-width:820px; margin:32px auto 0; display:grid; gap:12px; text-align:left; }
.ku-mod { background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg);
  box-shadow:var(--shadow-sm); overflow:hidden; }
.ku-mod > summary { list-style:none; cursor:pointer; display:flex; align-items:center; gap:14px; padding:15px 20px; }
.ku-mod > summary::-webkit-details-marker { display:none; }
.ku-mod > summary:hover { background:var(--bg); }
.ku-no { flex:0 0 34px; height:34px; border-radius:10px; background:var(--lp-soft); color:var(--lp);
  display:grid; place-items:center; font-size:.9rem; font-weight:800; font-variant-numeric:tabular-nums; }
.ku-mt { flex:1; min-width:0; }
.ku-mt b { display:block; font-size:.99rem; font-weight:700; color:var(--navy); line-height:1.35; }
.ku-mt span { display:block; font-size:.82rem; color:var(--fg-muted); margin-top:2px; }
.ku-ar { flex:0 0 auto; color:var(--fg-muted); font-size:.8rem; transition:transform .18s; }
.ku-mod[open] .ku-ar { transform:rotate(180deg); }
.ku-lek { list-style:none; margin:0; padding:0 20px 8px 68px; }
.ku-lek li { display:flex; gap:10px; align-items:flex-start; padding:9px 0;
  border-top:1px solid var(--border-soft); font-size:.9rem; line-height:1.5; color:var(--fg-secondary); }
.ku-lek li::before { content:""; flex:0 0 auto; width:7px; height:7px; margin-top:.45em;
  border-radius:50%; border:2px solid var(--lp); opacity:.55; }
.ku-suma { max-width:820px; margin:16px auto 0; text-align:center; font-size:.88rem; color:var(--fg-muted); }
.ku-suma b { color:var(--navy); font-weight:800; font-variant-numeric:tabular-nums; }

/* ── „co umiesz po kursie" — dwie kolumny z ptaszkami ────────────────────── */
.ku-umie { list-style:none; margin:30px auto 0; padding:0; max-width:880px; text-align:left;
  display:grid; grid-template-columns:1fr 1fr; gap:12px 30px; }
.ku-umie li { position:relative; padding-left:30px; font-size:.95rem; line-height:1.6; color:var(--fg-secondary); }
.ku-umie li::before { content:"✓"; position:absolute; left:0; top:0; width:20px; height:20px; border-radius:50%;
  background:var(--green-soft); color:var(--green); font-size:.72rem; font-weight:800;
  display:grid; place-items:center; }
.ku-umie b { color:var(--fg); font-weight:700; }

/* ── ramka informacyjna (kurs osobno vs Akademia) ────────────────────────── */
.ku-info { max-width:780px; margin:26px auto 0; background:var(--lp-soft);
  border:1px solid color-mix(in srgb, var(--lp) 26%, transparent); border-radius:var(--r-lg);
  padding:16px 20px; font-size:.92rem; line-height:1.65; color:var(--fg-secondary); text-align:left; }
.ku-info b { color:var(--navy); }
.ku-info a { color:var(--accent-fg); font-weight:600; }

/* ── makieta: lista kursów w panelu (ekran powitalny /kursy) ─────────────── */
.ku-mock { background:var(--surface); border:1px solid var(--border); border-radius:var(--r-xl);
  box-shadow:var(--shadow-lg); overflow:hidden; }
.km-head { display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:13px 17px; background:var(--bg); border-bottom:1px solid var(--border);
  font-size:.86rem; font-weight:700; color:var(--fg); }
.km-head span { font-size:.74rem; font-weight:500; color:var(--fg-muted); }
.km-row { display:flex; align-items:center; gap:13px; padding:13px 17px; border-bottom:1px solid var(--border-soft); }
.km-row:last-child { border-bottom:0; }
.km-ico { flex:0 0 36px; height:36px; border-radius:10px; background:var(--lp-soft); display:grid; place-items:center; }
.km-ico svg { width:24px; height:24px; display:block; }
.km-txt { flex:1; min-width:0; }
.km-txt b { display:block; font-size:.87rem; font-weight:700; color:var(--fg); }
.km-sub { display:block; font-size:.75rem; color:var(--fg-muted); margin:1px 0 6px; font-variant-numeric:tabular-nums; }
.km-bar { display:block; height:5px; border-radius:999px; background:var(--border-soft); overflow:hidden; }
.km-bar i { display:block; height:100%; border-radius:999px; background:var(--lp); }
.km-tag { flex:0 0 auto; font-size:.7rem; font-weight:700; padding:4px 9px; border-radius:999px;
  background:var(--bg); color:var(--fg-muted); white-space:nowrap; }
.km-tag.ok { background:var(--green-soft); color:var(--green); }
.km-foot { padding:11px 17px; background:var(--bg); border-top:1px solid var(--border);
  font-size:.78rem; color:var(--fg-muted); text-align:center; }

/* ── panel kursu z PRAWDZIWĄ lekcją (ekran powitalny podstron) ─────────────
   15.09.2026, polecenie właściciela: „w hero każdego kursu miała być przykładowa lekcja!
   rzeczywista która jest na klient.webup.pl". Do tego dnia stała tu sama MAKIETA (lista
   lekcji bez żadnego nagrania pod spodem). Teraz w ramce panelu odtwarza się prawdziwy
   plik z `klient.webup.pl/uploads/videos/`, a makieta ZOSTAJE POD ODTWARZACZEM, skrócona
   do samych modułów: wideo sprzedaje jakość, lista modułów — zakres.
   Markup składa ku_panel() w landings/kursy/_wspolne.php. */
.ku-panel { background:var(--surface); border:1px solid var(--border); border-radius:var(--r-xl);
  box-shadow:var(--shadow-lg); overflow:hidden; }
.kn-top { display:flex; align-items:center; gap:11px; padding:11px 16px; background:var(--bg);
  border-bottom:1px solid var(--border); }
.kn-dots { flex:0 0 auto; display:inline-flex; gap:5px; }
.kn-dots i { width:8px; height:8px; border-radius:50%; background:var(--border-strong); }
.kn-title { flex:1; min-width:0; font-size:.85rem; font-weight:700; color:var(--fg);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.kn-host { flex:0 0 auto; font-size:.73rem; color:var(--fg-muted); }

/* Odtwarzacz. `aspect-ratio` trzyma miejsce ZANIM plakat się wczyta — bez tego ekran
   powitalny podskakuje przy ładowaniu. Nagrania są 1280×720 (sprawdzone ffprobe 15.09.2026),
   więc 16/9 zgadza się co do piksela i nie ma czarnych pasów.
   Samo `<video>` ma `preload="none"`: przeglądarka pobiera WYŁĄCZNIE plakat (13–17 kB WebP),
   plik wideo (4,5–9,7 MB) dopiero po kliknięciu. */
.ku-vid { position:relative; aspect-ratio:16/9; background:#000; }
.ku-video { display:block; width:100%; height:100%; background:#000; }

/* Podpis: moduł + tytuł lekcji + zdanie, że to fragment produktu, nie film reklamowy. */
.ku-vcap { padding:12px 16px 13px; border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.ku-vmod { display:block; font-size:.68rem; font-weight:800; letter-spacing:.06em;
  text-transform:uppercase; color:var(--lp); }
.ku-vcap b { display:block; font-size:.95rem; font-weight:800; color:var(--navy);
  line-height:1.35; margin-top:4px; letter-spacing:-.01em; }
.ku-vinfo { display:block; font-size:.76rem; line-height:1.5; color:var(--fg-muted); margin-top:6px; }

/* Mapa modułów pod odtwarzaczem — same nagłówki, bez rozwijania. Pełna rozpiska
   lekcja po lekcji leży niżej na stronie, w sekcji „Program kursu" (.ku-mods). */
.kn-mod { border-bottom:1px solid var(--border-soft); }
.kn-mod:last-child { border-bottom:0; }
.kn-mhead { display:flex; align-items:center; gap:11px; padding:9px 16px; }
.kn-open > .kn-mhead { background:var(--lp-soft); }
.kn-no { flex:0 0 26px; height:26px; border-radius:8px; background:var(--bg); color:var(--fg-muted);
  display:grid; place-items:center; font-size:.78rem; font-weight:800; font-variant-numeric:tabular-nums; }
.kn-open .kn-no { background:var(--lp); color:#fff; }
.kn-mt { flex:1; min-width:0; }
.kn-mt b { display:block; font-size:.85rem; font-weight:700; color:var(--fg); line-height:1.3;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.kn-mt span { display:block; font-size:.72rem; color:var(--fg-muted); margin-top:1px; }
.kn-badge { flex:0 0 auto; padding:3px 8px; border-radius:999px;
  background:var(--lp); color:#fff; font-size:.63rem; font-weight:800; letter-spacing:.06em;
  text-transform:uppercase; }
.kn-foot { padding:10px 16px; background:var(--bg); border-top:1px solid var(--border);
  font-size:.76rem; color:var(--fg-muted); text-align:center; }
.kn-foot b { color:var(--navy); font-weight:800; font-variant-numeric:tabular-nums; }

/* ── prowadzący (zdjęcia 1:1 z /o-nas, żeby nazwiska i role się nie rozjechały) ── */
.ku-prow { display:flex; flex-wrap:wrap; justify-content:center; gap:14px; margin-top:30px; }
.ku-os { flex:1 1 240px; max-width:300px; display:flex; align-items:center; gap:14px; text-align:left;
  background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg);
  padding:14px 16px; box-shadow:var(--shadow-sm); }
.ku-os img { flex:0 0 56px; width:56px; height:56px; border-radius:50%; object-fit:cover;
  border:1px solid var(--border); }
.ku-os b { display:block; font-size:.95rem; font-weight:700; color:var(--navy); }
.ku-os span { display:block; font-size:.82rem; color:var(--fg-secondary); line-height:1.45; margin-top:2px; }

/* ── zakup pojedynczego kursu na /kursy ──────────────────────────────────────
   Karta „Pojedynczy kurs" nie może mieć jednego przycisku, bo Stripe potrzebuje
   KONKRETNEGO produktu (kurs_adgrants / kurs_canva / kurs_linkedin) — stąd trzy
   węższe przyciski zamiast jednego. Klasa .price-cta jest wymagana: to po niej
   landing_modal() podpina modal zamówienia. */
.ku-buy { display:grid; gap:8px; margin-bottom:2px; }
.ku-buy-h { font-size:.78rem; font-weight:700; color:var(--fg-muted); }
.ku-buy .price-cta { padding:11px 14px; font-size:.9rem; }

/* ── drobne ──────────────────────────────────────────────────────────────── */
/* Okruszki nad nagłówkiem podstrony kursu: „Kursy › Canva dla Nonprofit". */
.ku-okruszki { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:14px;
  font-size:.85rem; }
.ku-okruszki a { font-weight:600; color:var(--accent-fg); text-decoration:none; }
.ku-okruszki a:hover { text-decoration:underline; }
.ku-okruszki span { color:var(--fg-muted); }
.ku-okruszki b { font-weight:600; color:var(--fg-secondary); }

@media (max-width:760px) {
  .ku-umie { grid-template-columns:1fr; gap:10px; }
  .ku-lek { padding-left:24px; }
  .ku-tile { padding:20px; }
  .ku-mod > summary { padding:13px 15px; gap:11px; }
}

/* ── Makieta panelu NA TELEFONIE — wyjątek od wspólnej reguły ────────────────────
   `_shared/landing.css` chowa `.hero-visual` poniżej 760 px, bo makiety produktu
   (zrzut wyszukiwarki, raport PING) zajmowały tam pół ekranu i nic nie wnosiły.
   Na stronie kursu panel jest CZYM INNYM: od 15.09.2026 siedzi w nim PRAWDZIWA pierwsza
   lekcja kursu. Ukrycie go na telefonie znaczyłoby, że większość odwiedzających — a ruch
   na landingach jest w większości mobilny — nigdy nie zobaczy produktu przed zakupem.
   Odtwarzacz zostaje w całości, cięcia dotyczą tylko odstępów. Zmierzone przy 390 px
   (Chromium, zrzut 15.09.2026): panel 342 px, obraz 340×191, pasek sterowania ~52 px
   wysokości — przycisk „odtwórz" mieści się pod kciukiem, strona nie przewija się w poziomie. */
@media (max-width:760px){
  .theme-kursy .hero-visual { display:block; margin-top:26px; }
  .theme-kursy .mock-note { display:block; }
  .ku-panel .kn-top { padding:10px 12px; }
  .ku-panel .ku-vcap { padding:11px 13px 12px; }
  .ku-panel .kn-mhead { padding:9px 13px; }
  .ku-panel .kn-foot { padding:10px 13px; }
}
