/* ==========================================================================
   IPS — widoki LearnPress: katalog, kurs, lekcja
   (ładowane po style.css; tokeny z :root motywu)
   ========================================================================== */

.ips-lms-h1 { font-size: clamp(42px, 5vw, 68px); line-height: 1.02; }
.ips-lms-h1 em { font-style: italic; }

.ips-tags-row { display: flex; flex-wrap: wrap; gap: 8px; }
.ips-tag {
	display: inline-block; padding: 7px 14px; background: #fff;
	font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--ips-ink);
}
.ips-tag--free { background: #E3EFE6; color: #1F5A33; }
.ips-tag--line { border: 1px solid var(--ips-line); padding: 6px 12px; }

.ips-price { font-family: var(--ips-serif); font-size: 34px; line-height: 1; color: var(--ips-ink); }
.ips-price--big { font-size: 40px; }
.ips-price--free { color: #1F5A33; }
.ips-price del { font-size: .6em; color: var(--ips-muted); margin-right: 8px; }
.ips-price ins { text-decoration: none; }

.ips-progress-row { display: flex; align-items: center; gap: 14px; font-size: 13px; color: var(--ips-muted); }
.ips-progress { position: relative; display: block; width: 280px; max-width: 100%; height: 4px; background: var(--ips-line); }
.ips-progress > span { position: absolute; left: 0; top: 0; bottom: 0; display: block; background: var(--ips-gold); }

.ips-meta-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 28px; font-size: 15px; color: var(--ips-text); }
.ips-meta-list li { display: inline-flex; align-items: center; gap: 8px; }
.ips-meta-list svg { width: 18px; height: 18px; stroke: var(--ips-gold); }

/* --- Katalog --- */
.ips-lms-intro { padding: 88px 0 56px; }
.ips-lms-intro__inner { display: flex; justify-content: space-between; align-items: flex-end; gap: 64px; }
.ips-lms-intro__text { display: flex; flex-direction: column; gap: 18px; max-width: 720px; }
.ips-lms-intro .ips-lead { font-size: 18px; max-width: 560px; }

.ips-filter { display: flex; flex-wrap: wrap; gap: 8px; flex-shrink: 0; }
.ips-filter button { white-space: nowrap; }
.ips-filter button {
	min-height: 44px; padding: 0 20px; border: 1px solid var(--ips-line); background: #fff; color: var(--ips-ink);
	font-family: var(--ips-sans); font-size: 14px; font-weight: 500; cursor: pointer;
}
.ips-filter button[aria-pressed="true"] { background: var(--ips-ink); border-color: var(--ips-ink); color: #fff; }

.ips-continue-wrap { margin-bottom: 72px; }
.ips-continue { display: flex; align-items: center; gap: 32px; padding: 20px 28px 20px 20px; background: var(--ips-cream); border: 1px solid var(--ips-line); }
.ips-continue img { width: 132px; height: 84px; object-fit: cover; flex-shrink: 0; }
.ips-continue__info { flex: 1 1 auto; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ips-continue__kicker { font-size: 13px; color: var(--ips-muted); }
.ips-continue__title { font-family: var(--ips-serif); font-size: 26px; line-height: 1.15; }
.ips-continue .ips-btn { flex-shrink: 0; }

.ips-catalog { padding-bottom: 96px; }
.ips-catalog__empty { padding: 48px 0; }
.ips-course-row { display: flex; gap: 64px; align-items: center; padding: 48px 0; border-top: 1px solid var(--ips-line); }
.ips-course-row:last-child { border-bottom: 1px solid var(--ips-line); }
.ips-course-row[hidden] { display: none; }
.ips-course-row__media { position: relative; width: 560px; flex-shrink: 0; display: block; }
.ips-course-row__media img { width: 100%; aspect-ratio: 560 / 353; object-fit: cover; }
.ips-course-row__media .ips-tag { position: absolute; left: 16px; top: 16px; }
.ips-course-row__media .ips-tag + .ips-tag { top: 56px; }
.ips-course-row__body { flex: 1 1 0; display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.ips-course-row__format { font-size: 13px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: var(--ips-gold); }
.ips-course-row__title { font-size: clamp(32px, 3.2vw, 46px); }
.ips-course-row__lead { font-size: 17px; line-height: 1.65; color: var(--ips-text); max-width: 560px; }
.ips-course-row__buy { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 28px; padding-top: 10px; }

.ips-help-wrap { padding-bottom: 110px; }
.ips-help { display: flex; align-items: center; gap: 56px; padding: 56px 64px; background: var(--ips-cream); border: 1px solid var(--ips-line); }
.ips-help img { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.ips-help__text { flex: 1 1 auto; display: flex; flex-direction: column; gap: 10px; }
.ips-help h2 { font-size: 40px; line-height: 1.1; }
.ips-help .ips-btn { flex-shrink: 0; }

/* --- Strona kursu --- */
.ips-course-hero { background: var(--ips-cream); padding-top: 40px; }
.ips-crumbs { font-size: 14px; color: var(--ips-muted); margin-bottom: 40px; display: flex; gap: 10px; flex-wrap: wrap; }
.ips-crumbs a { color: var(--ips-muted); }
.ips-crumbs [aria-current] { color: var(--ips-ink); }
.ips-course-hero__grid { display: flex; gap: 72px; align-items: flex-start; }
.ips-course-hero__main { flex: 1 1 0; display: flex; flex-direction: column; gap: 24px; padding-bottom: 72px; min-width: 0; }
.ips-course-hero__lead { font-size: 19px; line-height: 1.65; color: var(--ips-text); max-width: 620px; }
.ips-author-row { display: flex; align-items: center; gap: 14px; padding-top: 6px; font-size: 15px; line-height: 1.4; }
.ips-author-row img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.ips-author-row > span { display: flex; flex-direction: column; }
.ips-author-row strong { font-weight: 500; }
.ips-author-row span span { color: var(--ips-muted); }

.ips-enroll {
	position: sticky; top: 120px; width: 420px; flex-shrink: 0; margin-bottom: -150px; z-index: 2;
	background: #fff; border: 1px solid var(--ips-line); box-shadow: 0 24px 60px rgba(60,45,20,.08);
}
.ips-enroll > img { width: 100%; aspect-ratio: 420 / 265; object-fit: cover; }
.ips-enroll__body { padding: 28px 30px 30px; display: flex; flex-direction: column; gap: 20px; }
.ips-enroll__state { font-size: 13px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--ips-gold); }
.ips-enroll__note { font-size: 14px; color: var(--ips-muted); text-align: center; margin-top: -8px; }
.ips-enroll__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; font-size: 15px; color: var(--ips-text); }
.ips-enroll__list li { display: flex; gap: 12px; }
.ips-enroll__list svg { width: 18px; height: 18px; stroke: var(--ips-gold); flex-shrink: 0; margin-top: 3px; }

/* Przyciski LearnPress (zapis / zakup / kontynuuj) w stylu motywu */
.ips-lp-buttons .lp-course-buttons { display: flex; flex-direction: column; gap: 10px; }
.ips-lp-buttons form { margin: 0; }
.ips-lp-buttons button,
.ips-lp-buttons .lp-button,
.ips-lp-buttons a.button {
	display: flex !important; align-items: center; justify-content: center; width: 100%; min-height: 56px; margin: 0 !important; padding: 0 24px !important;
	border: 1px solid var(--ips-ink) !important; border-radius: 0 !important; background: var(--ips-ink) !important; color: #fff !important;
	font-family: var(--ips-sans) !important; font-size: 14px !important; font-weight: 500 !important; letter-spacing: .08em; text-transform: normal !important;
	cursor: pointer; box-shadow: none !important; transition: background .15s ease, color .15s ease;
}
.learnpress-page .lp-button, .learnpress-page #lp-button{text-transform: none !important;}
.ips-lp-buttons button:hover,
.ips-lp-buttons .lp-button:hover,
.ips-lp-buttons a.button:hover { background: #fff !important; color: var(--ips-ink) !important; }
.ips-lp-buttons .learn-press-message { margin: 0; font-size: 14px; }

.ips-course-body { padding-top: 88px; padding-bottom: 96px; }
.ips-course-block { max-width: calc(100% - 492px); margin-bottom: 72px; }
.ips-course-block:last-child { margin-bottom: 0; }
.ips-course-block__head { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; }
.ips-course-h2 { font-size: 44px; line-height: 1.1; margin-bottom: 32px; }
.ips-course-block__head .ips-course-h2 { margin-bottom: 28px; }

.ips-course-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 28px 40px; }
.ips-course-steps li { display: flex; flex-direction: column; gap: 8px; padding-top: 18px; border-top: 1px solid var(--ips-gold-line); }
.ips-step__num { font-family: var(--ips-serif); font-size: 20px; color: var(--ips-gold); }
.ips-step__title { font-size: 18px; font-weight: 500; }
.ips-step__text { font-size: 15px; line-height: 1.6; color: var(--ips-text); }

.ips-curriculum__section { font-family: var(--ips-sans); font-size: 13px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: var(--ips-gold); margin: 28px 0 8px; }
.ips-curriculum { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ips-line); }
.ips-curriculum__item { display: flex; align-items: center; gap: 20px; padding: 22px 0; border-bottom: 1px solid var(--ips-line); }
.ips-curriculum__num { width: 28px; flex-shrink: 0; font-family: var(--ips-serif); font-size: 22px; color: var(--ips-gold); }
.ips-curriculum__num svg { width: 20px; height: 20px; stroke: #1F5A33; }
.ips-curriculum__text { flex: 1 1 auto; display: flex; flex-direction: column; gap: 2px; font-size: 18px; font-weight: 500; }
.ips-curriculum__text small { font-size: 14px; font-weight: 400; color: var(--ips-muted); }
.ips-curriculum__preview { padding: 6px 12px; border: 1px solid var(--ips-ink); font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.ips-curriculum__lock svg { width: 18px; height: 18px; stroke: var(--ips-muted); display: block; }
.ips-curriculum__time { width: 64px; text-align: right; font-size: 14px; color: var(--ips-muted); flex-shrink: 0; }

.ips-course-closing { background: var(--ips-cream); padding: 88px 0; }
.ips-course-closing__inner { display: flex; gap: 80px; align-items: center; }
.ips-course-closing__inner > div:first-child { flex: 1 1 0; display: flex; flex-direction: column; gap: 18px; }
.ips-lp-buttons--closing { width: 420px; flex-shrink: 0; }

/* --- Lekcja (tryb skupienia) --- */
body.ips-lms--lesson { overflow: auto !important; background: #fff; }
.ips-lesson-bar {
	position: sticky; top: 0; z-index: 50; height: 72px; padding: 0 32px;
	display: flex; align-items: center; gap: 28px; background: #fff; border-bottom: 1px solid var(--ips-line);
}
.admin-bar .ips-lesson-bar { top: 32px; }
.ips-lesson-bar__course { display: flex; align-items: center; gap: 14px; width: 330px; flex-shrink: 0; min-width: 0; }
.ips-lesson-bar__course img { height: 48px; width: auto; }
.ips-lesson-bar__course span { display: flex; flex-direction: column; line-height: 1.25; font-size: 15px; font-weight: 500; overflow: hidden; }
.ips-lesson-bar__course small { font-size: 12px; font-weight: 400; color: var(--ips-muted); letter-spacing: .06em; text-transform: uppercase; }
.ips-lesson-bar__progress { flex: 1 1 auto; display: flex; align-items: center; gap: 16px; font-size: 14px; color: var(--ips-muted); }
.ips-lesson-bar__progress .ips-progress { flex: 1 1 auto; max-width: 420px; }
.ips-lesson-bar__close, .ips-lesson-bar__toggle {
	display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 18px;
	border: 1px solid var(--ips-line); background: #fff; font-family: var(--ips-sans); font-size: 14px; font-weight: 500; color: var(--ips-ink); cursor: pointer;
}
.ips-lesson-bar__close svg, .ips-lesson-bar__toggle svg { width: 16px; height: 16px; }
.ips-lesson-bar__toggle { display: none; }

.ips-lesson { display: flex; min-height: calc(100vh - 72px); background: linear-gradient(90deg, var(--ips-cream) 360px, var(--ips-line) 360px, var(--ips-line) 361px, #fff 361px); }
.ips-lesson-nav {
	width: 360px; flex-shrink: 0; padding: 32px 24px; background: var(--ips-cream); border-right: 1px solid var(--ips-line);
	display: flex; flex-direction: column; gap: 14px;
	position: sticky; top: 72px; align-self: flex-start; height: calc(100vh - 72px); overflow-y: auto;
}
.ips-lesson-nav__label, .ips-lesson-nav__section { font-size: 12px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--ips-gold); }
.ips-lesson-nav__section { color: var(--ips-muted); margin-top: 8px; }
.ips-lesson-nav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ips-lesson-nav__item { display: flex; gap: 14px; align-items: flex-start; padding: 16px; border: 1px solid transparent; }
.ips-lesson-nav__item:hover { background: #fff; color: var(--ips-ink); }
.ips-lesson-nav__item.is-current { background: #fff; border-color: var(--ips-gold-line); }
.ips-lesson-nav__num {
	width: 26px; height: 26px; flex-shrink: 0; border-radius: 50%; border: 1.5px solid var(--ips-input);
	display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 600; color: var(--ips-muted);
}
.ips-lesson-nav__num svg { width: 14px; height: 14px; }
.is-current .ips-lesson-nav__num { border-color: var(--ips-gold); color: var(--ips-gold); }
.is-done .ips-lesson-nav__num { border-color: #1F5A33; background: #1F5A33; color: #fff; }
.is-locked { opacity: .72; }
.ips-lesson-nav__text { display: flex; flex-direction: column; gap: 2px; font-size: 15px; font-weight: 500; }
.ips-lesson-nav__text small { font-size: 13px; font-weight: 400; color: var(--ips-muted); }

.ips-lesson-main { flex: 1 1 auto; min-width: 0; max-width: 1080px; padding: 56px 96px 72px; display: flex; flex-direction: column; gap: 40px; }
.ips-lesson-head { display: flex; flex-direction: column; gap: 16px; }
.ips-lesson-title { font-size: clamp(40px, 4.2vw, 60px); line-height: 1.02; }
.ips-lesson-teaser { font-size: 19px; line-height: 1.7; color: var(--ips-text); max-width: 720px; }

.ips-train { display: flex; border: 1px solid var(--ips-ink); }
.ips-train__main { flex: 1 1 auto; padding: 36px 40px; display: flex; flex-direction: column; gap: 18px; }
.ips-train__title { font-family: var(--ips-serif); font-size: 34px; line-height: 1.15; }
.ips-train__cta { display: flex; flex-wrap: wrap; gap: 14px 18px; align-items: center; padding-top: 4px; font-size: 14px; }
.ips-train__cta svg { width: 16px; height: 16px; }
.ips-train__hints { list-style: none; margin: 0; width: 280px; flex-shrink: 0; padding: 36px 32px; background: var(--ips-cream); border-left: 1px solid var(--ips-ink); display: flex; flex-direction: column; gap: 16px; font-size: 14px; line-height: 1.5; color: var(--ips-text); }
.ips-train__hints li { display: flex; gap: 10px; }
.ips-train__hints svg { width: 18px; height: 18px; stroke: var(--ips-gold); flex-shrink: 0; margin-top: 1px; }

.ips-file { display: flex; align-items: center; gap: 20px; padding: 22px 26px; border: 1px solid var(--ips-line); }
.ips-file:hover { border-color: var(--ips-gold-line); color: var(--ips-ink); }
.ips-file__icon { width: 48px; height: 48px; flex-shrink: 0; background: var(--ips-cream); display: flex; align-items: center; justify-content: center; }
.ips-file__icon svg { width: 22px; height: 22px; stroke: var(--ips-gold); }
.ips-file__text { flex: 1 1 auto; display: flex; flex-direction: column; gap: 2px; font-size: 14px; color: var(--ips-muted); }
.ips-file__text strong { font-size: 16px; font-weight: 500; color: var(--ips-ink); }
.ips-file__cta { font-size: 14px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; border-bottom: 1px solid currentColor; padding-bottom: 2px; }

/* Treść lekcji z edytora + elementy LearnPress */
.ips-lesson-content { border-top: 1px solid var(--ips-line-soft); padding-top: 32px; max-width: 760px; }
.ips-lesson-content #learn-press-content-item,
.ips-lesson-content .content-item-scrollable,
.ips-lesson-content .content-item-wrap { position: static !important; height: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; background: none !important; }
.ips-lesson-content .content-item-summary,
.ips-lesson-content .content-item-description { font-size: 17px; line-height: 1.75; color: var(--ips-text); }
.ips-lesson-content p { margin: 0 0 1em; }
.ips-lesson-content h2, .ips-lesson-content h3 { font-family: var(--ips-serif); font-weight: 500; color: var(--ips-ink); margin: 1.4em 0 .5em; }
.ips-lesson-content h2 { font-size: 34px; }
.ips-lesson-content h3 { font-size: 26px; }
.ips-lesson-content strong, .ips-lesson-content b { color: var(--ips-ink); font-weight: 500; }
.ips-lesson-content a { color: var(--ips-gold); text-decoration: underline; }
.ips-lesson-content blockquote { margin: 1.4em 0; padding-left: 24px; border-left: 1px solid var(--ips-gold-line); font-family: var(--ips-serif); font-style: italic; font-size: 26px; line-height: 1.35; color: var(--ips-ink); }
.ips-lesson-content .learn-press-form, .ips-lesson-content .lp-button { margin-top: 24px; }
.ips-lesson-content .lp-button {
	display: inline-flex !important; align-items: center; gap: 10px; min-height: 56px; padding: 0 28px !important;
	border: 1px solid var(--ips-ink) !important; border-radius: 0 !important; background: #fff !important; color: var(--ips-ink) !important;
	font-family: var(--ips-sans) !important; font-size: 14px !important; font-weight: 500 !important; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; box-shadow: none !important;
}
.ips-lesson-content .lp-button:hover { background: var(--ips-ink) !important; color: #fff !important; }
.ips-lesson-content .lp-button.completed { border-color: #1F5A33 !important; color: #1F5A33 !important; }
.ips-lesson-content .learn-press-message { padding: 14px 16px; border: 1px solid var(--ips-line) !important; background: var(--ips-cream) !important; color: var(--ips-text) !important; font-size: 15px; border-radius: 0; }
.ips-lesson-content .learn-press-message::before { display: none !important; }
.ips-lesson-content .learn-press-message.success { border-color: #9DBFA7 !important; background: #EEF6F0 !important; color: #1F5A33 !important; }
.ips-lesson-content .learn-press-message a { color: var(--ips-gold); }
.ips-unlock { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 28px 32px; border: 1px solid var(--ips-ink); }
.ips-unlock > div { display: flex; flex-direction: column; gap: 4px; }
.ips-unlock strong { font-family: var(--ips-serif); font-size: 26px; font-weight: 500; line-height: 1.2; }
.ips-unlock span { font-size: 15px; color: var(--ips-text); }
.ips-unlock .ips-btn { flex-shrink: 0; }
.ips-lesson-pager__next svg { stroke: var(--ips-gold); }

.ips-lesson-pager { display: flex; gap: 20px; align-items: stretch; }
.ips-lesson-pager a { display: flex; flex-direction: column; gap: 2px; padding: 20px 26px; border: 1px solid var(--ips-line); font-family: var(--ips-serif); font-size: 24px; line-height: 1.2; }
.ips-lesson-pager small { font-family: var(--ips-sans); font-size: 13px; color: var(--ips-muted); }
.ips-lesson-pager__prev { flex: 0 1 38%; }
.ips-lesson-pager__next { flex: 1 1 auto; flex-direction: row !important; align-items: center; justify-content: space-between; background: var(--ips-cream); }
.ips-lesson-pager__next > span { display: flex; flex-direction: column; gap: 2px; }
.ips-lesson-pager__next svg { width: 22px; height: 22px; stroke: var(--ips-gold); flex-shrink: 0; }

.ips-question { display: flex; gap: 20px; align-items: flex-start; padding: 28px; background: var(--ips-cream); }
.ips-question img { width: 48px; height: 48px; border-radius: 50%; flex-shrink: 0; object-fit: cover; }
.ips-question form { flex: 1 1 auto; display: flex; flex-direction: column; gap: 12px; }
.ips-question label { font-size: 16px; font-weight: 500; }
.ips-question textarea { width: 100%; padding: 14px 16px; border: 1px solid var(--ips-input); background: #fff; font-family: var(--ips-sans); font-size: 15px; resize: vertical; }
.ips-question textarea:focus { outline: none; border-color: var(--ips-gold); box-shadow: 0 0 0 3px rgba(140,106,58,.15); }
.ips-question .ips-btn { align-self: flex-start; }

/* --- RWD --- */
@media (max-width: 1200px) {
	.ips-course-row { gap: 40px; }
	.ips-course-row__media { width: 46%; }
	.ips-lesson-main { padding: 48px 56px 64px; }
	.ips-lesson-nav { width: 300px; }
	.ips-lesson { background: linear-gradient(90deg, var(--ips-cream) 300px, var(--ips-line) 300px, var(--ips-line) 301px, #fff 301px); }
}

@media (max-width: 1024px) {
	.ips-lms-intro__inner { flex-direction: column; align-items: flex-start; gap: 28px; }
	.ips-course-row { flex-direction: column; align-items: stretch; gap: 24px; }
	.ips-course-row__media { width: 100%; }
	.ips-continue { flex-wrap: wrap; }
	.ips-help { flex-direction: column; align-items: flex-start; gap: 24px; padding: 36px 28px; }

	.ips-course-hero__grid { flex-direction: column; gap: 0; }
	.ips-course-hero__main { padding-bottom: 40px; }
	.ips-enroll { position: static; width: 100%; max-width: 560px; margin-bottom: 48px; }
	.ips-course-body { padding-top: 56px; }
	.ips-course-block { max-width: none; }
	.ips-course-closing__inner { flex-direction: column; align-items: stretch; gap: 32px; }
	.ips-lp-buttons--closing { width: 100%; max-width: 420px; }

	/* Lekcja: program jako wysuwany panel */
	.ips-lesson-bar { padding: 0 16px; gap: 12px; }
	.ips-lesson-bar__course { width: auto; flex: 1 1 auto; }
	.ips-lesson-bar__progress { display: none; }
	.ips-lesson-bar__toggle { display: inline-flex; }
	.ips-lesson-bar__close span, .ips-lesson-bar__toggle span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); }
	.ips-lesson-bar__close, .ips-lesson-bar__toggle { width: 44px; padding: 0; justify-content: center; }
	.ips-lesson-nav {
		position: fixed; top: 72px; left: 0; bottom: 0; z-index: 40; width: min(360px, 88vw); height: auto;
		transform: translateX(-100%); transition: transform .25s ease, visibility .25s; visibility: hidden;
	}
	.ips-lesson-nav.is-open { transform: none; visibility: visible; box-shadow: 0 0 60px rgba(0,0,0,.12); }
	.ips-lesson { background: #fff; }
	.ips-lesson-main { padding: 36px 24px 56px; gap: 32px; }
	.ips-train { flex-direction: column; }
	.ips-train__hints { width: auto; border-left: 0; border-top: 1px solid var(--ips-ink); }
}
@media (prefers-reduced-motion: reduce) { .ips-lesson-nav { transition: none; } }

@media (max-width: 640px) {
	.ips-course-row__buy .ips-btn { width: 100%; }
	.ips-continue .ips-btn { width: 100%; }
	.ips-continue .ips-progress { width: auto; flex: 1 1 auto; }
	.ips-course-steps { grid-template-columns: 1fr; }
	.ips-course-h2 { font-size: 34px; }
	.ips-curriculum__time { display: none; }
	.ips-lesson-bar__course span { font-size: 14px; }
	.ips-lesson-bar__course img { height: 40px; }
	.ips-train__main { padding: 26px 22px; }
	.ips-train__title { font-size: 28px; }
	.ips-lesson-pager { flex-direction: column; }
	.ips-question { flex-direction: column; padding: 22px; }
	.ips-unlock { flex-direction: column; align-items: flex-start; padding: 22px; }
}

/* --- Komunikaty LearnPress (zapis, zakup, przekierowanie) — czytelne --- */
.ips-lms .learn-press-message,
.ips-lp-buttons .learn-press-message {
	display: flex; align-items: center; gap: 12px; margin: 12px 0 0 !important; padding: 14px 16px !important;
	border: 1px solid var(--ips-line); border-left: 3px solid var(--ips-gold); border-radius: 0 !important;
	background: var(--ips-cream) !important; color: var(--ips-ink) !important; font-family: var(--ips-sans); font-size: 15px !important; line-height: 1.5; text-align: left;
}
.ips-lms .learn-press-message::before { display: none !important; }
.ips-lms .learn-press-message.success { border-left-color: #1F5A33; background: #EEF6F0 !important; color: #1F5A33 !important; }
.ips-lms .learn-press-message.error, .ips-lms .learn-press-message.warning { border-left-color: #8A2A1E; background: #FBEFED !important; color: #8A2A1E !important; }
.ips-lms .learn-press-message a { color: inherit; text-decoration: underline; }
/* „Dodano do koszyka. Przekierowanie…” — z animacją, żeby było widać, że coś się dzieje */
.ips-lp-buttons .learn-press-message.success::after {
	content: ""; flex-shrink: 0; order: -1; width: 16px; height: 16px; border-radius: 50%;
	border: 2px solid currentColor; border-right-color: transparent; animation: ips-spin .8s linear infinite;
}
@keyframes ips-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .ips-lp-buttons .learn-press-message.success::after { animation: none; } }

/* Stan „ładowanie” przycisku: zamiast znikającego tekstu — biały spinner */
.ips-lp-buttons .lp-button.loading,
.ips-lp-buttons button.loading { color: transparent !important; position: relative; pointer-events: none; }
.ips-lp-buttons .lp-button.loading::before,
.ips-lp-buttons button.loading::before {
	content: "" !important; position: absolute; left: 50%; top: 50%; width: 20px; height: 20px; margin: -10px 0 0 -10px;
	border-radius: 50%; border: 2px solid #fff; border-right-color: transparent; animation: ips-spin .8s linear infinite; font-family: inherit;
}

/* Powiadomienia „toast” LearnPress */
.toastify.lp-toast, .toastify { font-family: var(--ips-sans) !important; font-size: 15px !important; border-radius: 0 !important; box-shadow: 0 18px 40px rgba(0,0,0,.18) !important; padding: 14px 18px !important; background: var(--ips-ink) !important; color: #fff !important; }
.toastify.error, .toastify.lp-toast.error { background: #8A2A1E !important; }
.toastify.success, .toastify.lp-toast.success { background: #1F5A33 !important; }
