/*
 * Lesson – the frame from the "Műhely kurzusfelület" design (templates/lesson.php):
 * top bar, sidebar, content, step buttons, materials list, questions and answers.
 *
 * The lesson body is rendered by LearnDash; it sets its own colors with !important,
 * so wherever we style its elements, we have to use it as well.
 */

body.gysz-lesson-page {
	margin: 0;
	background: #FCF1EE;
}

/* LearnDash gives the lesson wrapper a white background; the design has white boxes on a beige background. */
body.gysz-lesson-page .learndash-wrapper.gysz-lesson {
	background: var(--gy-cream) !important;
}

.gysz-lesson {
	--gy-teal: #6C98A2;
	--gy-teal-d: #466D74;
	--gy-gold: #DEB21B;
	--gy-magenta: #D11C67;
	--gy-rose: #8E5566;
	--gy-rose-l: #AD7385;
	--gy-pink: #EEDCE5;
	--gy-cream: #FCF1EE;
	--gy-text: #4B4B4B;
	--gy-muted: #6B6B6B;
	--gy-head: 'Cantata One', Georgia, serif;
	--gy-ui: Montserrat, 'Segoe UI', Arial, sans-serif;
	--gy-body: Roboto, 'Segoe UI', Arial, sans-serif;
	--gy-header-height: 72px;
	--gy-top-offset: var(--wp-admin--admin-bar--height, 0px);
	min-height: 100vh;
	background: var(--gy-cream);
	color: var(--gy-text);
	font-family: var(--gy-body);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

.gysz-lesson *,
.gysz-lesson *::before,
.gysz-lesson *::after {
	box-sizing: border-box;
}

.gysz-lesson .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.gysz-lesson .gysz-lesson-jump:focus {
	top: 8px;
	left: 8px;
	z-index: 1000;
	width: auto;
	height: auto;
	clip: auto;
	padding: 10px 16px;
	background: #fff;
	color: var(--gy-teal-d);
}

.gysz-lesson :focus-visible {
	outline: 3px solid rgba(108, 152, 162, .45);
	outline-offset: 2px;
}

/* ---- Top bar ------------------------------------------------------------ */

.gysz-lesson .gysz-lesson-head {
	position: sticky;
	top: var(--gy-top-offset);
	z-index: 50;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	align-items: center;
	gap: 24px;
	height: var(--gy-header-height);
	padding: 0 32px;
	border-bottom: 1px solid var(--gy-pink);
	background: #fff;
}

.gysz-lesson .gysz-lesson-head__left {
	display: flex;
	align-items: center;
	gap: 18px;
	min-width: 0;
}

.gysz-lesson .gysz-lesson-menu-button {
	display: none;
}

.gysz-lesson .gysz-lesson-back {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
	gap: 8px;
	color: var(--gy-teal-d);
	font-family: var(--gy-ui);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}

.gysz-lesson .gysz-lesson-back:hover {
	color: var(--gy-magenta);
}

.gysz-lesson .gysz-lesson-divider {
	flex-shrink: 0;
	width: 1px;
	height: 28px;
	background: var(--gy-pink);
}

.gysz-lesson .gysz-lesson-course {
	overflow: hidden;
	color: var(--gy-teal-d);
	font-family: var(--gy-ui);
	font-size: 16px;
	font-weight: 700;
	text-decoration: none;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.gysz-lesson .gysz-lesson-course:hover {
	color: var(--gy-magenta);
}

.gysz-lesson .gysz-lesson-head__center {
	display: flex;
	align-items: center;
	gap: 12px;
}

.gysz-lesson .gysz-lesson-progress-bar {
	width: 220px;
	height: 8px;
	overflow: hidden;
	border-radius: 99px;
	background: var(--gy-pink);
}

.gysz-lesson .gysz-lesson-progress-bar > span,
.gysz-lesson .gysz-lesson-head__line > span {
	display: block;
	height: 100%;
	border-radius: 99px;
	background: var(--gy-teal);
}

.gysz-lesson .gysz-lesson-percent {
	color: var(--gy-teal-d);
	font-family: var(--gy-ui);
	font-size: 13px;
	font-weight: 700;
	white-space: nowrap;
}

.gysz-lesson .gysz-lesson-head__right {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	min-width: 0;
}

.gysz-lesson .gysz-lesson-head__line {
	display: none;
}

/* Of the LearnDash step buttons, only "Megcsináltam" (or Next) stays in the header. */
body.gysz-lesson-page .gysz-lesson .gysz-lesson-head .ld-content-actions {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 12px;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
}

body.gysz-lesson-page .gysz-lesson .gysz-lesson-head .ld-content-action {
	margin: 0;
	padding: 0;
	border: 0;
	min-width: 0;
}

body.gysz-lesson-page .gysz-lesson .gysz-lesson-head .ld-content-action:first-child,
body.gysz-lesson-page .gysz-lesson .gysz-lesson-head .ld-content-action.ld-empty {
	display: none;
}

/* ---- "Megcsináltam" button (header and bottom button row) ---------------- */

body.gysz-lesson-page .gysz-lesson .learndash_mark_complete_button {
	width: auto;
	min-height: 48px;
	margin: 0;
	padding: 13px 46px 13px 26px !important;
	border: 1px solid var(--gy-gold) !important;
	border-radius: 6px !important;
	background-color: var(--gy-magenta) !important;
	box-shadow: none !important;
	color: #fff !important;
	font-family: var(--gy-body) !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	letter-spacing: normal !important;
	text-transform: uppercase !important;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color .2s ease, border-color .2s ease;
}

body.gysz-lesson-page .gysz-lesson .learndash_mark_complete_button:hover {
	border-color: var(--gy-teal-d) !important;
	background-color: var(--gy-teal-d) !important;
	opacity: 1 !important;
}

body.gysz-lesson-page .gysz-lesson .learndash_mark_complete_button:disabled {
	opacity: .5 !important;
	cursor: not-allowed;
}

body.gysz-lesson-page .gysz-lesson .sfwd-mark-complete {
	position: relative;
	margin: 0;
}

body.gysz-lesson-page .gysz-lesson .sfwd-mark-complete .ld-icon {
	color: #fff !important;
}

/* ---- Sidebar ------------------------------------------------------------ */

.gysz-lesson .gysz-lesson-body {
	display: grid;
	grid-template-columns: 340px minmax(0, 1fr);
	min-height: calc(100vh - var(--gy-header-height) - var(--gy-top-offset));
}

.gysz-lesson .gysz-lesson-sidebar {
	position: sticky;
	top: calc(var(--gy-top-offset) + var(--gy-header-height));
	align-self: start;
	display: flex;
	flex-direction: column;
	gap: 16px;
	height: calc(100vh - var(--gy-header-height) - var(--gy-top-offset));
	padding: 28px 20px 40px;
	overflow-y: auto;
	overscroll-behavior: contain;
	border-right: 1px solid var(--gy-pink);
	background: #fff;
}

.gysz-lesson .gysz-lesson-sidebar__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	padding: 0 12px;
}

.gysz-lesson .gysz-lesson-eyebrow {
	margin: 0;
	color: var(--gy-teal-d);
	font-family: var(--gy-ui);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.gysz-lesson .gysz-lesson-sidebar__count {
	font-size: 13px;
	white-space: nowrap;
}

.gysz-lesson .gysz-lesson-sidebar__close {
	display: none;
}

.gysz-lesson .gysz-lesson-list,
.gysz-lesson .gysz-lesson-topics {
	margin: 0;
	padding: 0;
	list-style: none;
}

.gysz-lesson .gysz-lesson-list {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.gysz-lesson .gysz-lesson-list li {
	margin: 0;
}

.gysz-lesson .gysz-lesson-section {
	margin: 16px 0 4px !important;
	padding: 0 12px;
	color: var(--gy-rose);
	font-family: var(--gy-ui);
	font-size: 11px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.gysz-lesson .gysz-lesson-section:first-child {
	margin-top: 0 !important;
}

.gysz-lesson .gysz-lesson-item__row {
	display: flex;
	align-items: center;
	gap: 2px;
	border-radius: 8px;
}

.gysz-lesson .gysz-lesson-item__link {
	display: flex;
	flex-grow: 1;
	align-items: center;
	gap: 12px;
	min-width: 0;
	padding: 11px 12px;
	border-radius: 8px;
	color: var(--gy-text);
	font-size: 15px;
	line-height: 1.35;
	text-decoration: none;
}

.gysz-lesson .gysz-lesson-item__link:hover {
	background: var(--gy-cream);
	color: var(--gy-text);
}

.gysz-lesson .gysz-lesson-item.is-current > .gysz-lesson-item__row {
	background: var(--gy-cream);
}

.gysz-lesson .gysz-lesson-item.is-current > .gysz-lesson-item__row > .gysz-lesson-item__link {
	align-items: flex-start;
	padding: 12px;
}

.gysz-lesson .gysz-lesson-item__text {
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-width: 0;
}

.gysz-lesson .gysz-lesson-item.is-current > .gysz-lesson-item__row .gysz-lesson-item__title {
	color: var(--gy-teal-d);
	font-family: var(--gy-ui);
	font-weight: 700;
}

.gysz-lesson .gysz-lesson-item__sub {
	color: var(--gy-rose);
	font-size: 13px;
}

.gysz-lesson .gysz-lesson-item__sub--muted {
	color: var(--gy-muted);
}

.gysz-lesson .gysz-lesson-status {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 26px;
	height: 26px;
	border: 2px solid var(--gy-pink);
	border-radius: 50%;
	color: #fff;
}

.gysz-lesson .gysz-lesson-status.is-done {
	border: 0;
	background: var(--gy-teal);
}

.gysz-lesson .gysz-lesson-status.is-done .gysz-icon {
	stroke-width: 3;
}

.gysz-lesson .gysz-lesson-status.is-current {
	border-color: var(--gy-magenta);
}

.gysz-lesson .gysz-lesson-status.is-current i {
	display: block;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--gy-magenta);
}

.gysz-lesson .gysz-lesson-status--small {
	width: 20px;
	height: 20px;
}

.gysz-lesson .gysz-lesson-status--small.is-current i {
	width: 8px;
	height: 8px;
}

.gysz-lesson .gysz-lesson-item__opener {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
	gap: 4px;
	height: 32px;
	min-height: 0;
	margin: 0 6px 0 0;
	padding: 0 8px;
	border: 0;
	border-radius: 99px;
	background: transparent;
	color: var(--gy-muted);
	font-family: var(--gy-ui);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: normal;
	text-transform: none;
	cursor: pointer;
}

.gysz-lesson .gysz-lesson-item__opener:hover {
	background: var(--gy-pink);
	color: var(--gy-teal-d);
}

.gysz-lesson .gysz-lesson-item__opener .gysz-icon {
	transition: transform .2s ease;
}

.gysz-lesson .gysz-lesson-item__opener[aria-expanded="true"] .gysz-icon {
	transform: rotate(90deg);
}

.gysz-lesson .gysz-lesson-topics {
	display: flex;
	flex-direction: column;
	gap: 1px;
	margin: 4px 0 8px 24px;
	padding-left: 10px;
	border-left: 2px solid var(--gy-pink);
}

.gysz-lesson .gysz-lesson-topics[hidden] {
	display: none;
}

.gysz-lesson .gysz-lesson-topic .gysz-lesson-item__link {
	gap: 10px;
	padding: 8px 10px;
	font-size: 14px;
}

.gysz-lesson .gysz-lesson-topic.is-current .gysz-lesson-item__link {
	background: var(--gy-cream);
	color: var(--gy-teal-d);
	font-weight: 600;
}

.gysz-lesson .gysz-lesson-overlay {
	display: none;
}

/* ---- Content ------------------------------------------------------------ */

.gysz-lesson .gysz-lesson-main {
	min-width: 0;
	padding: 36px 64px 64px;
}

.gysz-lesson .gysz-lesson-main__inner {
	display: flex;
	flex-direction: column;
	gap: 24px;
	max-width: 980px;
	margin: 0 auto;
}

.gysz-lesson .gysz-lesson-heading {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.gysz-lesson .gysz-lesson-breadcrumb {
	margin: 0;
	color: var(--gy-muted);
	font-size: 14px;
}

.gysz-lesson .gysz-lesson-breadcrumb a {
	color: var(--gy-muted);
	text-decoration: none;
}

.gysz-lesson .gysz-lesson-breadcrumb a:hover {
	color: var(--gy-magenta);
}

.gysz-lesson h1.gysz-lesson-title {
	margin: 0;
	color: var(--gy-teal-d);
	font-family: var(--gy-head);
	font-size: 38px;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: 0;
	text-transform: none;
}

.gysz-lesson .gysz-lesson-content {
	min-width: 0;
}

/* Instead of the LearnDash status/breadcrumb bar, we show the breadcrumb above the title. */
body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-lesson-status,
body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-topic-status,
body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-breadcrumbs {
	display: none !important;
}

.gysz-lesson .gysz-lesson-content .learndash-wrapper,
body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-tabs,
body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-tabs-content,
body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-tab-content {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
}

body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-tab-content p,
body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-tab-content li {
	font-size: 16px;
	line-height: 1.7;
}

body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-tab-content p {
	margin: 0 0 16px;
}

body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-tab-content h2,
body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-tab-content h3,
body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-tab-content h4 {
	margin: 28px 0 12px;
	color: var(--gy-teal-d);
	font-family: var(--gy-ui);
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0;
	text-transform: none;
}

body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-tab-content h2 {
	font-family: var(--gy-head);
	font-size: 26px;
}

body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-tab-content h3 {
	font-size: 20px;
}

.gysz-lesson .gysz-lesson-content a:not(.ld-button):not(.gysz-lesson-link) {
	color: var(--gy-magenta);
}

.gysz-lesson .gysz-lesson-content img {
	max-width: 100%;
	height: auto;
	border-radius: 12px;
}

.gysz-lesson .gysz-lesson-content iframe,
.gysz-lesson .gysz-lesson-content video {
	display: block;
	max-width: 100%;
	border: 0;
	border-radius: 14px;
}

.gysz-lesson .gysz-lesson-content iframe[src*="youtube"],
.gysz-lesson .gysz-lesson-content iframe[src*="vimeo"] {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
}

/*
 * For embeds, WordPress reserves space matching the ratio saved in the editor (e.g. 4:3),
 * but we show the video in 16:9 – which left an empty strip below the video. The video now
 * takes up space at its own ratio.
 */
.gysz-lesson .gysz-lesson-content :is(.wp-block-embed-youtube, .wp-block-embed-vimeo) .wp-block-embed__wrapper::before {
	display: none;
}

.gysz-lesson .gysz-lesson-content :is(.wp-block-embed-youtube, .wp-block-embed-vimeo) iframe {
	position: static;
	height: auto;
}

/*
 * Until external videos are allowed, the cookie-consent plugin (gysz-cookie-consent) puts a
 * placeholder in the video's place. In browsers without :has() the plugin still positions it
 * inside the space WordPress reserves with the ::before above; that space is switched off here,
 * so the placeholder would collapse to zero height (no video, no notice – this happened until
 * 2026-10-02). It takes up its own box, like the video.
 */
.gysz-lesson .gysz-lesson-content :is(.wp-block-embed-youtube, .wp-block-embed-vimeo) .gysz-embed {
	position: relative;
	inset: auto;
	height: auto;
	aspect-ratio: auto;
	border-radius: 14px;
}

/* At least 16:9; on a narrow phone the notice needs more room, and the box grows with it. */
.gysz-lesson .gysz-lesson-content :is(.wp-block-embed-youtube, .wp-block-embed-vimeo) .gysz-embed::before {
	content: "";
	display: block;
	flex: none;
	width: 0;
	padding-top: 56.25%;
}

body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-video {
	overflow: hidden;
	border-radius: 14px;
}

.gysz-lesson .gysz-lesson-content figure {
	margin: 0 0 16px;
}

/* Topic list and quizzes in the lesson content. */
body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-item-list,
body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-table-list {
	margin: 24px 0 0;
	overflow: hidden;
	border: 0;
	border-radius: 12px;
	background: #fff;
}

body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-table-list-header {
	background: var(--gy-teal-d) !important;
	color: #fff;
	font-family: var(--gy-ui);
}

body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-table-list-item {
	border-bottom: 1px solid var(--gy-pink);
}

body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-table-list-item a {
	color: var(--gy-text);
}

/* ---- Step buttons at the bottom of the lesson --------------------------- */

body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-content-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 16px;
	margin: 32px 0 0;
	padding: 16px 20px;
	border: 0;
	border-radius: 12px;
	background: #fff;
	box-shadow: none;
}

body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-content-action {
	display: flex;
	flex: 0 1 auto;
	align-items: center;
	gap: 12px;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

/* Previous goes to the left, the rest to the right. */
body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-content-action:first-child {
	flex: 1 1 auto;
}

body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-content-action.ld-empty:not(:first-child),
body.gysz-lesson-page .gysz-lesson .ld-course-step-back {
	display: none !important;
}

body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-content-action:first-child a.ld-button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	box-shadow: none !important;
	color: var(--gy-teal-d) !important;
	font-family: var(--gy-ui) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	text-transform: none !important;
	white-space: nowrap;
}

body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-content-action:first-child a.ld-button:hover {
	color: var(--gy-magenta) !important;
}

body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-content-action:not(:first-child) a.ld-button {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 48px;
	padding: 13px 22px !important;
	border: 1px solid var(--gy-pink) !important;
	border-radius: 6px !important;
	background: #fff !important;
	box-shadow: none !important;
	color: var(--gy-teal-d) !important;
	font-family: var(--gy-ui) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	text-transform: none !important;
	white-space: nowrap !important;
}

body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-content-action:not(:first-child) a.ld-button:hover {
	border-color: var(--gy-teal) !important;
	color: var(--gy-magenta) !important;
}

/* In the header, Next (when the step is already done) is the primary button. */
body.gysz-lesson-page .gysz-lesson .gysz-lesson-head .ld-content-action a.ld-button {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 48px;
	padding: 13px 26px !important;
	border: 1px solid var(--gy-gold) !important;
	border-radius: 6px !important;
	background: var(--gy-magenta) !important;
	color: #fff !important;
	font-family: var(--gy-body) !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	white-space: nowrap !important;
}

body.gysz-lesson-page .gysz-lesson .gysz-lesson-head .ld-content-action a.ld-button:hover {
	border-color: var(--gy-teal-d) !important;
	background: var(--gy-teal-d) !important;
}

body.gysz-lesson-page .gysz-lesson .ld-content-actions a.ld-button .ld-icon {
	color: inherit !important;
}

/*
 * LearnDash fixes the right-hand button slots at 200 px wide and allows line breaks in the
 * button - this wrapped "Megcsináltam, jöhet…" onto several lines and made "Tovább" overflow.
 */
body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-content-actions .ld-content-action:not(:first-child) {
	flex: 0 0 auto !important;
	width: auto !important;
	max-width: none !important;
}

body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-content-actions .learndash_mark_complete_button,
body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-content-actions a.ld-button {
	width: auto !important;
	max-width: none !important;
	white-space: nowrap !important;
}

@media (max-width: 900px) {
	/* On mobile the right-hand button fills the row; a label that is too long is cut to "…". */
	body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-content-actions .ld-content-action:not(:first-child) {
		flex: 1 1 auto !important;
		min-width: 0 !important;
		justify-content: flex-end;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-content-actions .gysz-lesson-step-name {
		display: none;
	}

	/* The "Megcsináltam" form fills the space – the button should sit at the right edge. */
	body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-content-actions .sfwd-mark-complete {
		display: flex;
		justify-content: flex-end;
		width: 100%;
		min-width: 0;
		margin: 0;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-content-actions .learndash_mark_complete_button,
	body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-content-actions .ld-content-action:not(:first-child) a.ld-button {
		max-width: 100% !important;
		overflow: hidden;
		text-overflow: ellipsis;
	}
}

/* An empty button slot (e.g. holding only the hidden "Vissza a tanfolyamhoz" link) takes up no space. */
body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-content-actions .ld-content-action:not(:first-child):not(:has(a.ld-button, .learndash_mark_complete_button)) {
	display: none !important;
}

/* If it contains no button at all (e.g. the last lesson of a completed course), hide the box too. */
body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-content-actions:not(:has(a.ld-button, .learndash_mark_complete_button)) {
	display: none !important;
}

/* With a "Megcsináltam" button, no separate "Tovább" link is needed: the button moves on. */
body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-content-actions:has(.learndash_mark_complete_button) .ld-content-action:not(:first-child):not(:has(.learndash_mark_complete_button)) {
	display: none !important;
}

/* ---- Video chapters ----------------------------------------------------- */

.gysz-lesson .gysz-chapters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin: 16px 0 8px;
}

.gysz-lesson .gysz-chapters__title {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-right: 2px;
	color: var(--gy-teal-d);
	font-family: var(--gy-ui);
	font-size: 13px;
	font-weight: 700;
}

.gysz-lesson .gysz-chapters__title .gysz-icon {
	color: var(--gy-magenta);
}

.gysz-lesson .gysz-chapter {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 40px;
	min-height: 0;
	margin: 0;
	padding: 0 14px;
	border: 1px solid var(--gy-pink);
	border-radius: 99px;
	background: #fff;
	color: var(--gy-text);
	font-family: var(--gy-body);
	font-size: 14px;
	font-weight: 400;
	line-height: 1;
	letter-spacing: normal;
	text-transform: none;
	cursor: pointer;
}

.gysz-lesson .gysz-chapter:hover {
	border-color: var(--gy-teal);
	background: #fff;
	color: var(--gy-text);
}

.gysz-lesson .gysz-chapter__time {
	color: var(--gy-teal-d);
	font-family: var(--gy-ui);
	font-weight: 700;
}

.gysz-lesson .gysz-chapter.is-active,
.gysz-lesson .gysz-chapter.is-active:hover {
	border-color: var(--gy-teal-d);
	background: var(--gy-teal-d);
	color: #fff;
}

.gysz-lesson .gysz-chapter.is-active .gysz-chapter__time {
	color: #fff;
}

/* ---- Materials list and "Elakadtál?" card ------------------------------- */

.gysz-lesson .gysz-lesson-cards {
	display: grid;
	grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
	gap: 24px;
	margin: 24px 0 0;
}

.gysz-lesson .gysz-lesson-cards--one {
	grid-template-columns: minmax(0, 1fr);
}

.gysz-lesson .gysz-lesson-card {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 24px 26px;
	border-radius: 12px;
	background: #fff;
}

.gysz-lesson .gysz-lesson-card .gysz-lesson-card__title {
	margin: 0;
	color: var(--gy-teal-d);
	font-family: var(--gy-ui);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0;
	text-transform: none;
}

.gysz-lesson .gysz-lesson-card p {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
}

/* Next to the list the card stretches to the height of the list – so its content is centered and the middle is not left empty. */
.gysz-lesson .gysz-help {
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	text-align: center;
}

/* On its own, without a materials list: a narrow horizontal strip. */
.gysz-lesson .gysz-lesson-cards--one .gysz-help {
	flex-direction: row;
	justify-content: flex-start;
	gap: 18px;
	padding: 20px 26px;
	text-align: left;
}

.gysz-lesson .gysz-help__icon {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--gy-cream);
	color: var(--gy-magenta);
}

.gysz-lesson .gysz-help__text {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	max-width: 340px;
	min-width: 0;
}

.gysz-lesson .gysz-lesson-cards--one .gysz-help__text {
	flex-grow: 1;
	align-items: flex-start;
	gap: 2px;
	max-width: none;
}

.gysz-lesson .gysz-help .gysz-help__text p {
	line-height: 1.5;
}

.gysz-lesson .gysz-help__button {
	display: inline-flex;
	flex-shrink: 0;
	margin-top: 4px;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 20px;
	border: 1px solid var(--gy-pink);
	border-radius: 6px;
	background: #fff;
	color: var(--gy-magenta);
	font-family: var(--gy-ui);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
	transition: border-color .2s ease, background-color .2s ease;
}

.gysz-lesson .gysz-help__button:hover,
.gysz-lesson .gysz-help__button:focus-visible {
	border-color: var(--gy-magenta);
	background: var(--gy-cream);
	color: var(--gy-magenta);
}

/*
 * LearnDash resets the bottom border of links in the content with !important
 * (.learndash-wrapper:not(…):not(…) a:not(.button):not(…) – 0,5,1), so a stronger selector is needed.
 */
body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .gysz-help a.gysz-help__button {
	border: 1px solid var(--gy-pink) !important;
}

body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .gysz-help a.gysz-help__button:hover,
body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .gysz-help a.gysz-help__button:focus-visible {
	border-color: var(--gy-magenta) !important;
}

.gysz-lesson .gysz-lesson-cards--one .gysz-help__button {
	margin-top: 0;
}

.gysz-lesson .gysz-help__count {
	color: var(--gy-muted);
	font-weight: 500;
}

.gysz-lesson .gysz-materials__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
}

.gysz-lesson .gysz-materials__count {
	color: var(--gy-rose);
	font-size: 13px;
	white-space: nowrap;
}

.gysz-lesson .gysz-material-list {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gysz-lesson .gysz-material-list li {
	margin: 0;
	padding: 0;
}

.gysz-lesson .gysz-lesson-cards--one .gysz-material-list:has(> li:nth-child(5)) {
	display: block;
	columns: 2;
	column-gap: 48px;
}

.gysz-lesson .gysz-lesson-cards--one .gysz-material-list:has(> li:nth-child(5)) > li {
	margin-bottom: 4px;
	break-inside: avoid;
}

.gysz-lesson .gysz-material {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 36px;
	margin: 0;
	font-size: 15px;
	font-weight: 400;
	cursor: pointer;
}

.gysz-lesson .gysz-material input {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: 0;
	opacity: 0;
}

.gysz-lesson .gysz-material__box {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 22px;
	height: 22px;
	border: 2px solid var(--gy-pink);
	border-radius: 5px;
	background: #fff;
	color: transparent;
}

.gysz-lesson .gysz-material input:checked + .gysz-material__box {
	border-color: var(--gy-teal-d);
	background: var(--gy-teal-d);
	color: #fff;
}

.gysz-lesson .gysz-material input:focus-visible + .gysz-material__box {
	outline: 3px solid rgba(108, 152, 162, .45);
	outline-offset: 2px;
}

.gysz-lesson .gysz-material__color {
	flex-shrink: 0;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .12);
}

.gysz-lesson .gysz-material__color.is-empty {
	box-shadow: none;
}

.gysz-lesson .gysz-material input:checked ~ .gysz-material__name {
	color: var(--gy-muted);
	text-decoration: line-through;
}

.gysz-lesson .gysz-material__name {
	flex-grow: 1;
}

/* Quantity at the right edge of the row ("29 db", "2,5 g"). */
.gysz-lesson .gysz-material__qty {
	flex-shrink: 0;
	padding-left: 12px;
	color: var(--gy-teal-d);
	font-family: var(--gy-ui);
	font-size: 14px;
	font-weight: 600;
	white-space: nowrap;
}

.gysz-lesson .gysz-material input:checked ~ .gysz-material__qty {
	color: var(--gy-muted);
}

.gysz-lesson .gysz-materials__field {
	font-size: 15px;
	line-height: 1.6;
}

.gysz-lesson .gysz-lesson-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--gy-teal-d);
	font-family: var(--gy-ui);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
}

.gysz-lesson .gysz-lesson-link:hover {
	color: var(--gy-magenta);
}

.gysz-lesson .gysz-lesson-link--magenta {
	margin-top: auto;
	color: var(--gy-magenta);
}

.gysz-lesson .gysz-lesson-link--magenta:hover {
	color: var(--gy-teal-d);
}

/* ---- Video resume --------------------------------------------------------- */

.gysz-lesson .gysz-resume {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 18px;
	margin: 0 0 12px;
}

.gysz-lesson button.gysz-resume__button {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	margin: 0;
	padding: 0 18px 0 7px;
	border: 0;
	border-radius: 99px;
	background: var(--gy-teal-d);
	box-shadow: none;
	color: #fff;
	font-family: var(--gy-ui);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: normal;
	text-transform: none;
	cursor: pointer;
	transition: background-color .2s ease;
}

.gysz-lesson button.gysz-resume__button:hover,
.gysz-lesson button.gysz-resume__button:focus,
.gysz-lesson button.gysz-resume__button:focus-visible {
	background: var(--gy-magenta);
	color: #fff;
}

.gysz-lesson .gysz-resume__button strong {
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.gysz-lesson .gysz-resume__icon {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .2);
}

.gysz-lesson button.gysz-resume__restart {
	min-height: 44px;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
	color: var(--gy-teal-d);
	font-family: var(--gy-ui);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: normal;
	text-decoration: underline;
	text-transform: none;
	text-underline-offset: 3px;
	cursor: pointer;
}

.gysz-lesson button.gysz-resume__restart:hover,
.gysz-lesson button.gysz-resume__restart:focus,
.gysz-lesson button.gysz-resume__restart:focus-visible {
	background: none;
	color: var(--gy-magenta);
}

/* ---- Craft kits (scrollable row) ----------------------------------------- */

.gysz-lesson .gysz-kits {
	gap: 18px;
	margin-top: 24px;
}

.gysz-lesson .gysz-kits__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 16px 24px;
}

.gysz-lesson .gysz-kits__text {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
}

.gysz-lesson .gysz-lesson-card .gysz-kits__sub {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 10px;
	color: var(--gy-muted);
	font-size: 14px;
	line-height: 1.5;
}

.gysz-lesson .gysz-kits__badge {
	display: inline-flex;
	align-items: center;
	height: 24px;
	padding: 0 10px;
	border-radius: 99px;
	background: var(--gy-gold);
	color: #2E2E2E;
	font-family: var(--gy-ui);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.gysz-lesson .gysz-kits__controls {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	gap: 18px;
}

.gysz-lesson .gysz-kits__arrows {
	display: flex;
	gap: 8px;
}

.gysz-lesson .gysz-kits__arrows[hidden] {
	display: none;
}

.gysz-lesson button.gysz-kits__arrow {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 1px solid var(--gy-pink);
	border-radius: 50%;
	background: #fff;
	color: var(--gy-teal-d);
	cursor: pointer;
	transition: border-color .2s ease, color .2s ease;
}

.gysz-lesson button.gysz-kits__arrow:hover,
.gysz-lesson button.gysz-kits__arrow:focus-visible {
	border-color: var(--gy-magenta);
	background: #fff;
	color: var(--gy-magenta);
}

.gysz-lesson .gysz-kits__shop .gysz-icon {
	margin-left: 2px;
}

.gysz-lesson .gysz-kits__bar {
	display: flex;
	gap: 16px;
	margin: 0;
	padding: 2px 2px 6px;
	overflow-x: auto;
	list-style: none;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
}

.gysz-lesson .gysz-kits__bar::-webkit-scrollbar {
	display: none;
}

.gysz-lesson .gysz-kit {
	flex: 0 0 180px;
	margin: 0;
	overflow: hidden;
	border: 1px solid var(--gy-pink);
	border-radius: 12px;
	background: #fff;
	scroll-snap-align: start;
	transition: border-color .2s ease;
}

.gysz-lesson .gysz-kit:hover,
.gysz-lesson .gysz-kit:focus-within {
	border-color: var(--gy-magenta);
}

.gysz-lesson .gysz-lesson-content a.gysz-kit__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: var(--gy-text);
	text-decoration: none;
}

.gysz-lesson .gysz-kit__image {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1;
	background: var(--gy-cream);
}

.gysz-lesson .gysz-lesson-content .gysz-kit__image img {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 0;
	object-fit: cover;
}

.gysz-lesson .gysz-kit.is-sold-out .gysz-kit__image img {
	opacity: .45;
}

.gysz-lesson .gysz-kit__marker {
	position: absolute;
	top: 8px;
	left: 8px;
	display: inline-flex;
	align-items: center;
	height: 24px;
	padding: 0 9px;
	border-radius: 99px;
	font-family: var(--gy-ui);
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
}

.gysz-lesson .gysz-kit__marker.is-low {
	background: var(--gy-magenta);
	color: #fff;
}

.gysz-lesson .gysz-kit__marker.is-sold-out {
	background: #fff;
	color: var(--gy-rose);
	box-shadow: 0 1px 4px rgba(70, 109, 116, .18);
}

.gysz-lesson .gysz-kit__body {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	gap: 2px;
	padding: 12px 14px 14px;
}

/* Long names wrap to at most two lines, so a single kit name never stretches every card in the row. */
.gysz-lesson .gysz-kit__product,
.gysz-lesson .gysz-kit__name {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.gysz-lesson .gysz-kit__product {
	color: var(--gy-muted);
	font-size: 12px;
	line-height: 1.35;
}

.gysz-lesson .gysz-kit__name {
	color: var(--gy-teal-d);
	font-family: var(--gy-ui);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.35;
	transition: color .2s ease;
}

.gysz-lesson .gysz-kit:hover .gysz-kit__name {
	color: var(--gy-magenta);
}

/* The price sits at the bottom of the card, so prices in a row always line up. */
.gysz-lesson .gysz-kit__price {
	margin-top: auto;
	padding-top: 4px;
	color: var(--gy-magenta);
	font-family: var(--gy-ui);
	font-size: 15px;
	font-weight: 700;
	white-space: nowrap;
}

.gysz-lesson .gysz-kit__price del {
	margin-left: 4px;
	color: var(--gy-muted);
	font-size: 12px;
	font-weight: 500;
}

.gysz-lesson .gysz-kit.is-sold-out .gysz-kit__price {
	color: var(--gy-muted);
}

/* ---- Questions and answers ---------------------------------------------- */

.gysz-lesson .gysz-lesson-questions {
	display: flex;
	flex-direction: column;
	gap: 18px;
	margin-top: 16px;
	padding: 28px 32px 32px;
	border-radius: 16px;
	background: #fff;
	scroll-margin-top: calc(var(--gy-top-offset) + var(--gy-header-height) + 16px);
}

.gysz-lesson .gysz-lesson-questions__head {
	display: flex;
	align-items: center;
	gap: 12px;
}

.gysz-lesson h2.gysz-lesson-questions__title {
	margin: 0;
	color: var(--gy-teal-d);
	font-family: var(--gy-head);
	font-size: 26px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0;
	text-transform: none;
}

.gysz-lesson .gysz-lesson-questions__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 28px;
	height: 28px;
	padding: 0 9px;
	border-radius: 99px;
	background: var(--gy-cream);
	color: var(--gy-teal-d);
	font-family: var(--gy-ui);
	font-size: 13px;
	font-weight: 700;
}

.gysz-lesson .gysz-lesson-questions__lead {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
}

.gysz-lesson .gysz-comments,
.gysz-lesson .gysz-comments .children {
	margin: 0;
	padding: 0;
	list-style: none;
}

.gysz-lesson .gysz-comment {
	margin: 0;
	padding: 16px 0;
	border-top: 1px solid var(--gy-pink);
}

.gysz-lesson .gysz-comments > .gysz-comment:first-child {
	padding-top: 4px;
	border-top: 0;
}

.gysz-lesson .gysz-comment__box {
	display: grid;
	grid-template-columns: 40px minmax(0, 1fr);
	gap: 14px;
}

.gysz-lesson .gysz-comment__monogram {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--gy-teal-d);
	color: #fff;
	font-family: var(--gy-ui);
	font-size: 16px;
	font-weight: 700;
}

.gysz-lesson .gysz-comment.is-team > .gysz-comment__box .gysz-comment__monogram {
	background: var(--gy-magenta);
}

.gysz-lesson .gysz-comment__body {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
}

.gysz-lesson .gysz-comment__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 10px;
	margin: 0;
}

.gysz-lesson .gysz-comment__head strong {
	color: var(--gy-teal-d);
	font-family: var(--gy-ui);
	font-size: 15px;
	font-weight: 700;
}

.gysz-lesson .gysz-comment__label {
	padding: 2px 8px;
	border-radius: 99px;
	background: var(--gy-gold);
	color: #2E2E2E;
	font-family: var(--gy-ui);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.gysz-lesson .gysz-comment__time {
	color: var(--gy-muted);
	font-size: 13px;
}

.gysz-lesson .gysz-comment__pending {
	margin: 0;
	color: var(--gy-rose);
	font-size: 13px;
	font-style: italic;
}

.gysz-lesson .gysz-comment__text p {
	margin: 0 0 8px;
	font-size: 15px;
	line-height: 1.6;
}

.gysz-lesson .gysz-comment__text p:last-child {
	margin-bottom: 0;
}

.gysz-lesson .gysz-comment__reply {
	margin: 0;
}

.gysz-lesson .gysz-comment__reply a {
	color: var(--gy-magenta);
	font-family: var(--gy-ui);
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
}

.gysz-lesson .gysz-comment__reply a:hover {
	color: var(--gy-teal-d);
}

.gysz-lesson .gysz-comments .children {
	margin: 12px 0 0 54px;
	padding: 0 16px;
	border-radius: 12px;
	background: var(--gy-cream);
}

.gysz-lesson .gysz-comments .children .gysz-comment {
	border-top-color: rgba(173, 115, 133, .2);
}

.gysz-lesson .gysz-comments .children > .gysz-comment:first-child {
	border-top: 0;
}

.gysz-lesson .gysz-lesson-form {
	margin: 0;
}

.gysz-lesson .gysz-comments + .gysz-lesson-form {
	padding-top: 20px;
	border-top: 1px solid var(--gy-pink);
}

.gysz-lesson .gysz-comment .gysz-lesson-form {
	margin-top: 14px;
	padding: 16px;
	border: 0;
	border-radius: 12px;
	background: var(--gy-cream);
}

.gysz-lesson h3.gysz-lesson-form__title {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: baseline;
	gap: 8px;
	margin: 0 0 12px;
	color: var(--gy-teal-d);
	font-family: var(--gy-ui);
	font-size: 17px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0;
	text-transform: none;
}

.gysz-lesson #cancel-comment-reply-link {
	color: var(--gy-muted);
	font-family: var(--gy-ui);
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
}

.gysz-lesson .gysz-lesson-form__field {
	margin: 0 0 12px;
}

.gysz-lesson .gysz-lesson-form textarea {
	display: block;
	width: 100%;
	min-height: 110px;
	margin: 0;
	padding: 12px 14px;
	border: 1px solid rgba(173, 115, 133, .35);
	border-radius: 6px;
	background: #fff;
	box-shadow: none;
	color: var(--gy-text);
	font-family: var(--gy-body);
	font-size: 15px;
	line-height: 1.5;
	resize: vertical;
}

.gysz-lesson .gysz-lesson-form textarea::placeholder {
	color: var(--gy-muted);
	opacity: 1;
}

.gysz-lesson .gysz-lesson-form textarea:focus {
	border-color: var(--gy-teal);
	outline: 0;
	box-shadow: 0 0 0 3px rgba(108, 152, 162, .25);
}

.gysz-lesson .gysz-lesson-form__buttons {
	display: flex;
	justify-content: flex-end;
	margin: 0;
}

.gysz-lesson .gysz-lesson-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	margin: 0;
	padding: 13px 28px;
	border: 1px solid var(--gy-gold);
	border-radius: 6px;
	background: var(--gy-magenta);
	color: #fff;
	font-family: var(--gy-body);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: normal;
	text-transform: uppercase;
	cursor: pointer;
}

.gysz-lesson .gysz-lesson-button:hover,
.gysz-lesson .gysz-lesson-button:focus-visible {
	border-color: var(--gy-teal-d);
	background: var(--gy-teal-d);
	color: #fff;
}

.gysz-lesson .gysz-lesson-form__login {
	margin: 0;
	font-size: 15px;
}

.gysz-lesson .gysz-lesson-form__login a {
	color: var(--gy-magenta);
}

/* With the admin bar, LearnDash focus mode also pushes the body down (html is already offset) – here it would double. */
body.gysz-lesson-page.ld-in-focus-mode.admin-bar {
	padding-top: 0;
}

/* The sidebar header (with the close button on mobile) stays visible while scrolling. */
body.gysz-lesson-page .gysz-lesson .gysz-lesson-sidebar__head {
	position: sticky;
	top: -28px; /* the top padding of the sidebar */
	z-index: 2;
	background: #fff;
	box-shadow: 0 0 0 12px #fff;
}

/* ---- Responsive --------------------------------------------------------- */

@media (max-width: 1180px) {
	body.gysz-lesson-page .gysz-lesson .gysz-lesson-body {
		grid-template-columns: 300px minmax(0, 1fr);
	}

	body.gysz-lesson-page .gysz-lesson .gysz-lesson-main {
		padding: 32px 40px 56px;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-lesson-progress-bar {
		width: 140px;
	}
}

@media (max-width: 900px) {
	body.gysz-lesson-page .gysz-lesson {
		--gy-header-height: 60px;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-lesson-head {
		grid-template-columns: minmax(0, 1fr);
		gap: 8px;
		padding: 0 12px 0 4px;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-lesson-head__center,
	body.gysz-lesson-page .gysz-lesson .gysz-lesson-head__right,
	body.gysz-lesson-page .gysz-lesson .gysz-lesson-divider,
	body.gysz-lesson-page .gysz-lesson .gysz-lesson-back span {
		display: none;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-lesson-head__left {
		gap: 4px;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-lesson-menu-button,
	body.gysz-lesson-page .gysz-lesson .gysz-lesson-sidebar__close {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		flex-shrink: 0;
		width: 44px;
		height: 44px;
		min-height: 0;
		margin: 0;
		padding: 0;
		border: 0;
		border-radius: 8px;
		background: none;
		color: var(--gy-teal-d);
		cursor: pointer;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-lesson-back {
		justify-content: center;
		width: 40px;
		height: 44px;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-lesson-course {
		font-size: 15px;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-lesson-head__line {
		position: absolute;
		right: 0;
		bottom: -1px;
		left: 0;
		display: block;
		height: 3px;
		background: var(--gy-pink);
	}

	body.gysz-lesson-page .gysz-lesson .gysz-lesson-head__line > span {
		border-radius: 0 99px 99px 0;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-lesson-body {
		display: block;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-lesson-sidebar {
		position: fixed;
		top: var(--gy-top-offset);
		bottom: 0;
		left: 0;
		z-index: 200;
		width: min(340px, 86vw);
		height: auto;
		padding: 16px 12px 32px;
		border-right: 0;
		box-shadow: 0 0 40px rgba(30, 46, 50, .25);
		transform: translateX(-105%);
		transition: transform .25s ease;
	}

	body.gysz-lesson-page .gysz-lesson.is-sidebar-open .gysz-lesson-sidebar {
		transform: none;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-lesson-sidebar__head {
		top: -16px;
		align-items: center;
		padding: 0 0 0 12px;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-lesson-sidebar__count {
		margin-left: auto;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-lesson-overlay:not([hidden]) {
		position: fixed;
		inset: 0;
		z-index: 190;
		display: block;
		background: rgba(30, 46, 50, .45);
	}

	body.gysz-lesson-page .gysz-lesson .gysz-lesson-main {
		padding: 24px 16px 0;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-lesson-main__inner {
		gap: 18px;
	}

	body.gysz-lesson-page .gysz-lesson h1.gysz-lesson-title {
		font-size: 28px;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-lesson-cards {
		grid-template-columns: minmax(0, 1fr);
		gap: 16px;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-lesson-card {
		padding: 20px;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-kits {
		margin-top: 16px;
		padding-right: 0;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-kits__head {
		padding-right: 20px;
	}

	/* On mobile it scrolls by swiping, so the arrows are not needed. */
	body.gysz-lesson-page .gysz-lesson .gysz-kits__arrows {
		display: none;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-kits__head {
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-kits__bar {
		gap: 12px;
		padding-right: 20px;
		scroll-padding-left: 0;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-kit {
		flex-basis: 150px;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-help {
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: flex-start;
		gap: 12px 14px;
		padding: 18px 20px 20px;
		text-align: left;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-help__icon {
		width: 40px;
		height: 40px;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-help__text {
		flex: 1 1 calc(100% - 54px);
		align-items: flex-start;
		gap: 2px;
		max-width: none;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-help__button {
		width: 100%;
		margin-top: 0;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-lesson-cards--one .gysz-material-list:has(> li:nth-child(5)) {
		columns: 1;
	}

	/* On mobile the step buttons stay at the bottom of the screen. */
	body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-content-actions {
		position: sticky;
		bottom: 0;
		z-index: 20;
		flex-direction: row;
		flex-wrap: nowrap;
		align-items: center;
		justify-content: space-between;
		margin: 24px -16px 0;
		padding: 10px 16px;
		border-radius: 16px 16px 0 0;
		box-shadow: 0 -6px 20px rgba(70, 109, 116, .12);
	}

	body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-content-actions .ld-content-action {
		flex-direction: row;
		width: auto !important;
		padding: 0;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-content-action:first-child {
		flex: 0 0 auto;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-content-action:first-child a.ld-button .ld-text {
		display: none;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-lesson-content .ld-content-action:not(:first-child) {
		flex: 1 1 auto;
		justify-content: flex-end;
	}

	body.gysz-lesson-page .gysz-lesson .learndash_mark_complete_button,
	body.gysz-lesson-page .gysz-lesson #learndash_mark_complete_button {
		max-width: 100%;
		overflow: hidden;
		text-overflow: ellipsis;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-lesson-questions {
		margin: 16px 0 24px;
		padding: 22px 18px 24px;
	}

	body.gysz-lesson-page .gysz-lesson h2.gysz-lesson-questions__title {
		font-size: 22px;
	}

	body.gysz-lesson-page .gysz-lesson .gysz-comments .children {
		margin-left: 16px;
	}
}

@media (max-width: 600px) {
	/* Below 600 px the WordPress admin bar scrolls away, so the top bar sticks to the top of the screen. */
	body.gysz-lesson-page .gysz-lesson {
		--gy-top-offset: 0px;
	}
}

/* ---- Locked lessons (lesson-access.php) --------------------------------- */

.gysz-lesson button.gysz-lesson-item__link {
	width: 100%;
	margin: 0;
	border: 0;
	background: none;
	font: inherit;
	font-size: 15px;
	line-height: 1.35;
	text-align: left;
	text-transform: none;
	letter-spacing: normal;
	cursor: pointer;
}

.gysz-lesson button.gysz-lesson-item__link:hover,
.gysz-lesson button.gysz-lesson-item__link:focus-visible {
	background: var(--gy-cream);
	color: var(--gy-text);
}

.gysz-lesson .gysz-lesson-item.is-locked .gysz-lesson-item__title {
	color: var(--gy-muted);
}

.gysz-lesson .gysz-lesson-item__sub--locked {
	color: var(--gy-gold-d);
}

.gysz-lesson .gysz-lesson-status.is-locked {
	border-color: var(--gy-gold);
	color: var(--gy-gold-d);
}

.gysz-lesson .gysz-lesson-status.is-locked .gysz-icon {
	stroke-width: 2.4;
}

.gysz-lesson .gysz-lesson-content--locked {
	max-width: 640px;
	margin: 8px auto 0;
	padding: 36px 40px 32px;
	border-radius: 12px;
	background: #fff;
}

@media (max-width: 600px) {
	.gysz-lesson .gysz-lesson-content--locked {
		padding: 28px 20px 24px;
	}
}
