.detail-grid { display:grid; grid-template-columns: 1fr 360px; gap:44px; align-items:start; }
@media(max-width:920px){ .detail-grid{ grid-template-columns:1fr; gap:32px; } }

/* content blocks */
.block { margin-bottom:46px; }
.block > h2 { font-size:clamp(20px,2.2vw,26px); margin-bottom:18px; }
/* zwijany nagłówek sekcji (strzałka po prawej) */
.block > h2.block-toggle { display:flex; align-items:center; justify-content:space-between; gap:14px; cursor:pointer; user-select:none; }
.block > h2.block-toggle .chev { color:var(--muted); transition:transform .2s; flex:none; }
.block > h2.block-toggle[aria-expanded="false"] { margin-bottom:0; }
.block > h2.block-toggle[aria-expanded="false"] .chev { transform:rotate(-90deg); }
.block-body.collapsed { display:none; }
.block p { color:var(--ink-2); }
.block p + p { margin-top:12px; }

/* objectives list */
.obj { list-style:none; padding:0; margin:0; display:grid; gap:13px; }
.obj li { display:flex; gap:13px; align-items:flex-start; color:var(--ink); font-size:15.5px; }
.obj .tick { width:26px; height:26px; border-radius:50%; background:var(--lime-soft); color:#5f6b00; display:flex; align-items:center; justify-content:center; flex:none; margin-top:1px; }

/* Odstepy w "Cel szkolenia": naglowek (h3) oddzielony od poprzedniej listy/tekstu
   (np. "Profil uczestnika:" nie zlewa sie z lista powyzej); lista odsuwa tez
   nastepujacy po niej akapit. Pierwszy blok bez gornego odstepu (przy naglowku sekcji). */
#celBody h3 { margin-top: 28px; }
#celBody .obj { margin-bottom: 20px; }
#celBody > :first-child { margin-top: 0; }

/* Klasy tresci pola ss_cel (JSON z CRM przekazuje "klasa" 1:1) — KONWENCJA cs_*
   (slownik i zasady: subpage.css, naglowek sekcji CEL SZKOLENIA):
   naglowek klasa="cs_uwaga" = magenta; text/punkt klasa="cs_wyroznienie" = pogrubienie;
   <ramka klasa="cs_ramka_info|cs_ramka_sukces|cs_ramka_ostrzezenie|cs_ramka_alert">
   = kolorowe boksy (szablon dokleja bazowa cs_ramka - czesc wspolna stylu).
   Te same nazwy obsluguje podglad w CRM (editor_xml) — XML/JSON jest wspolny. */
#celBody h3.cs_uwaga { color: var(--magenta); }
#celBody p.cs_wyroznienie, #celBody .obj li.cs_wyroznienie { font-weight: 700; color: var(--ink); }
#celBody .cs_ramka { border-left: 4px solid #8a97a6; background: #f2f5f8; color: #33445c;
                     border-radius: 10px; padding: 14px 18px; margin: 16px 0; font-size: 15px; line-height: 1.6; }
#celBody .cs_ramka_info        { border-left-color: #0055A4; background: #e8f0fa; color: #0b3f74; }
#celBody .cs_ramka_sukces      { border-left-color: #1e7a44; background: #e6f5ec; color: #155c33; }
#celBody .cs_ramka_ostrzezenie { border-left-color: #a5670a; background: #fff4e0; color: #7c4e08; }
#celBody .cs_ramka_alert       { border-left-color: #b1332c; background: #fdeceb; color: #8f2822; }

/* program accordion */
.prog { display:flex; flex-direction:column; gap:12px; }
.prog-day { font-family:var(--font-display); font-weight:700; font-size:13px; letter-spacing:.04em; text-transform:uppercase; color:var(--blue); background:var(--blue-tint); display:inline-block; padding:8px 14px; border-radius:8px; margin-top:6px; }
.pmod { border-radius:var(--r); background:#fff; box-shadow: inset 0 0 0 1px var(--line); overflow:hidden; }
.pmod summary { list-style:none; cursor:pointer; display:flex; align-items:center; gap:14px; padding:18px 20px; font-family:var(--font-display); font-weight:600; font-size:16px; color:var(--ink); }
.pmod summary::-webkit-details-marker { display:none; }
.pmod summary .num { width:30px; height:30px; border-radius:8px; background:var(--blue-tint); color:var(--blue); display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:700; flex:none; }
.pmod summary .tt { flex:1; min-width:0; line-height:1.35; }
.pmod summary .chev { margin-left:auto; color:var(--muted); transition: transform .2s; flex:none; }
.pmod[open] summary .chev { transform: rotate(180deg); }
/* wariant bez obramowania punktów (zachowuje strzałkę zwijania) */
.prog--noborder { gap:2px; }
.prog--noborder .pmod { box-shadow:none; border-radius:0; background:transparent; }
.prog--noborder .pmod summary { padding:14px 4px; }
.prog--noborder .pmod--flat .summary { padding:14px 4px; }
.prog--noborder .pmod .pbody { padding:0 4px 16px 64px; }
.prog--noborder .pmod + .pmod { border-top:1px solid var(--line-2); }
.pmod--flat .summary { display:flex; align-items:center; gap:14px; padding:18px 20px; font-family:var(--font-display); font-weight:600; font-size:16px; color:var(--ink); }
.pmod--flat .summary .num { width:30px; height:30px; border-radius:8px; background:var(--blue-tint); color:var(--blue); display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:700; flex:none; }
.pmod--flat .summary .tt { flex:1; min-width:0; line-height:1.35; }
.pmod .pbody { padding:0 20px 20px 64px; }
.pmod .pbody ul { margin:0; padding-left:18px; color:var(--ink-2); font-size:14.5px; display:grid; gap:7px; }
.pmod .pbody p { color:var(--ink-2); font-size:14.5px; margin:0 0 8px; }
.prog-toggle { display:inline-flex; align-items:center; gap:7px; font-family:var(--font-display); font-weight:600; font-size:13.5px; color:var(--blue); padding:8px 14px; border-radius:7px; box-shadow: inset 0 0 0 1px var(--line); background:#fff; transition: all .15s; }
.prog-toggle:hover { box-shadow: inset 0 0 0 1px var(--blue-300); background:var(--blue-tint); }
.prog-toggle .ic { transition: transform .2s; }
.prog-toggle[aria-expanded="false"] .ic { transform: rotate(-90deg); }

/* schedule — oś czasu z ikonami */
.sched { position:relative; max-width:600px; display:flex; flex-direction:column; gap:4px; }
.sched::before { content:""; position:absolute; left:22px; top:30px; bottom:30px; width:2px; background:linear-gradient(180deg, #cfe0f7, var(--line)); z-index:0; }
.srow { position:relative; z-index:1; display:grid; grid-template-columns:46px 120px 1fr; gap:16px; align-items:center; padding:9px 0; border-bottom:none; }
.s-ico { width:46px; height:46px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; box-shadow:0 5px 12px -4px rgba(13,27,46,.4); flex:none; }
.s-ico svg { width:23px; height:23px; }
.s-time { font-family:var(--font-display); font-weight:700; font-size:13.5px; color:var(--blue); white-space:nowrap; font-variant-numeric:tabular-nums; }
.s-what { color:var(--ink); font-size:14.5px; font-weight:600; line-height:1.35; }
.srow.t-start  .s-ico { background:#E20077; }
.srow.t-session .s-ico { background:#0055A4; }
.srow.t-coffee .s-ico { background:#E8A317; }
.srow.t-lunch  .s-ico { background:#2F9E5F; }
.srow.t-end    .s-ico { background:#062a4d; }
.srow.t-qa     .s-ico { background:#7A4FD0; }
.srow.t-default .s-ico { background:#939598; }
.sched-day { font-family:var(--font-display); font-weight:700; font-size:13px; color:var(--ink); margin:16px 0 4px; }
/* oryginalny prosty harmonogram (wszystkie szkolenia poza wskazanym) */
.sched-plain { display:grid; grid-template-columns: 1fr; gap:0; max-width:560px; }
.srow-plain { display:grid; grid-template-columns: 120px 1fr; gap:14px; align-items:center; padding:9px 0; border-bottom:1px solid var(--line-2); }
.srow-plain .time { font-family:var(--font-display); font-weight:700; font-size:13.5px; color:var(--blue); white-space:nowrap; font-variant-numeric:tabular-nums; }
.srow-plain .what { color:var(--ink); font-size:13.5px; line-height:1.35; }
/* notka <info> pod dniem (stary system: czerwony tekst na dole harmonogramu) */
.sched-info { margin-top:12px; font-size:13.5px; font-style:italic; font-weight:600; color:var(--magenta-700, #b8005f); }

/* lecturer */
.lect { display:flex; gap:20px; align-items:flex-start; background:var(--bg-soft); border-radius:var(--r-lg); padding:24px; box-shadow: inset 0 0 0 1px var(--line); }
.lect + .lect { margin-top:14px; }
.lect .av { width:84px; height:84px; border-radius:50%; flex:none; }
.lect h3 { font-size:18px; }
.lect .role { color:var(--blue); font-weight:600; font-size:13.5px; margin-top:2px; }
.lect .bio { color:var(--ink-2); font-size:14.5px; margin-top:10px; line-height:1.65; }
.lect .bio p { margin:0 0 8px; }
.lect .bio p:last-child { margin-bottom:0; }
.lect .bio.clamp { max-height: calc(1.65em * 5); overflow:hidden; -webkit-mask-image: linear-gradient(180deg,#000 72%, transparent); mask-image: linear-gradient(180deg,#000 72%, transparent); }
.bio-toggle { display:none; align-items:center; gap:6px; margin-top:10px; font-family:var(--font-display); font-weight:600; font-size:13.5px; color:var(--blue); cursor:pointer; padding:0; }
.bio-toggle.show { display:inline-flex; }
.bio-toggle svg { transition:transform .2s; }
.bio-toggle[aria-expanded="true"] svg { transform:rotate(180deg); }

/* sticky sidebar */
.side { position:sticky; top:96px; display:flex; flex-direction:column; gap:16px; }
.side-card { background:#fff; border-radius:var(--r-xl); box-shadow:var(--shadow-lg); padding:26px; }
.side-price { display:flex; align-items:baseline; gap:8px; }
.side-price .v { font-family:var(--font-display); font-weight:800; font-size:34px; color:var(--ink); letter-spacing:-.02em; }
.side-price .u { font-size:14px; color:var(--muted); font-weight:600; }
.side-price .net { font-size:12.5px; color:var(--muted); margin-left:auto; }
.side-facts { list-style:none; padding:0; margin:20px 0; display:grid; gap:14px; }
.side-facts li { display:flex; gap:12px; align-items:flex-start; font-size:14.5px; color:var(--ink); }
.side-facts .fi { width:34px; height:34px; border-radius:9px; background:var(--blue-tint); color:var(--blue); display:flex; align-items:center; justify-content:center; flex:none; }
.side-facts .fl { color:var(--muted); font-size:12px; }
.side-facts .fv { font-weight:600; }
.incl { background:var(--blue-tint); border-radius:var(--r-lg); padding:22px 24px; }
.incl h4 { font-family:var(--font-display); font-size:14px; color:var(--blue-900); margin:0 0 12px; }
.incl .cena-html { color:var(--ink-2); font-size:14px; line-height:1.6; }
.incl .cena-html p { margin:0 0 8px; }
.incl .cena-html b, .incl .cena-html strong { color:var(--ink); }
/* boks cenowy — sekcje z ss_w_cenie (JSON): tytul + punkty z tickiem;
   typ sekcji steruje kolorem ticka (obejmuje=niebieski, nie_obejmuje=czerwony,
   dodatkowo_platne=pomaranczowy; nieznany typ = niebieski) */
.incl .inc-sek + .inc-sek { margin-top:18px; }
.incl .inc-list { list-style:none; padding:0; margin:0; display:grid; gap:11px; }
.incl .inc-list li { display:flex; gap:10px; align-items:flex-start; color:var(--ink); font-size:14px; line-height:1.45; }
.incl .inc-list .inc-tick { color:var(--blue); flex:none; margin-top:2px; display:inline-flex; }
.incl .inc-sek--nie_obejmuje .inc-tick { color:#d83a3f; }
.incl .inc-sek--dodatkowo_platne .inc-tick { color:#e07c00; }

/* in-company CTA strip */
.closed-strip { display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; padding:20px 26px; border-radius:var(--r-lg); background:var(--blue-tint); box-shadow: inset 0 0 0 1px var(--line); }
.closed-strip-copy h3 { font-size:16.5px; }
.closed-strip-copy p { color:var(--ink-2); font-size:13.5px; margin-top:4px; }
.closed-strip-form { display:flex; gap:10px; align-items:center; }
.closed-strip-form .input { width:220px; background:#fff; }
@media(max-width:560px){ .closed-strip{ padding:18px; } .closed-strip-form{ width:100%; align-items:stretch; } .closed-strip-form .input{ flex:1; width:auto; min-width:0; height:42px; } }

@media(max-width:760px){ .page-hero .crumb{ display:none; } .page-hero .hero-badges{ display:none !important; } .page-hero .wrap{ padding-top:16px; padding-bottom:22px; } .page-hero + .section{ padding-top:24px !important; } }
