body.gh-lms-catalog-page #brx-content > h1:first-child,
body.gh-lms-catalog-page #brx-content > .entry-title:first-child,
.post-type-archive-gh_course #brx-content > h1:first-child,
.post-type-archive-gh_course #brx-content > .entry-title:first-child,
body.gh-lms-catalog-page :is(#primary, main.site-main, .site-main) > :is(h1, .entry-title):first-child,
.post-type-archive-gh_course :is(#primary, main.site-main, .site-main) > :is(h1, .entry-title):first-child {
	display: none !important;
}

.gh-lms-catalog {
	--gh-catalog-green: var(--gh-action-primary, var(--gh-ui-action));
	--gh-catalog-green-2: var(--gh-action-primary-hover, var(--gh-ui-action-hover));
	--gh-catalog-mint: var(--gh-ui-surface-subtle);
	--gh-catalog-cream: var(--gh-ui-canvas);
	--gh-catalog-pink: var(--gh-ui-surface-selected);
	--gh-catalog-ink: var(--gh-ui-ink);
	--gh-catalog-muted: var(--gh-ui-text-muted);
	--gh-catalog-line: var(--gh-ui-border);
	--gh-catalog-success: var(--gh-ui-success);
	box-sizing: border-box;
	width: min(1180px, calc(100% - 32px));
	margin: 0 auto;
	padding: clamp(var(--gh-ui-space-4-5), 4vw, var(--gh-ui-space-7));
	border-radius: var(--gh-ui-radius-lg);
	background: var(--gh-catalog-cream);
	color: var(--gh-catalog-ink);
	font-family: inherit;
	font-size: var(--gh-ui-type-md);
}

.gh-lms-catalog *,
.gh-lms-catalog *::before,
.gh-lms-catalog *::after {
	box-sizing: border-box;
}

.gh-lms-catalog strong {
	font-weight: 500;
}

.gh-lms-catalog__hero {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: var(--gh-ui-space-5);
	margin-bottom: var(--gh-ui-space-5-5);
}

.gh-lms-catalog__hero h1 {
	margin: 0;
	color: var(--gh-catalog-green);
	font-size: clamp(var(--gh-ui-type-xl), 5vw, var(--gh-ui-type-hero-xl));
	font-weight: 600;
	line-height: 0.98;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.gh-lms-catalog__hero p {
	max-width: 680px;
	margin: var(--gh-ui-space-4) 0 0;
	color: var(--gh-catalog-muted);
	font-size: clamp(var(--gh-ui-type-md), 1.8vw, var(--gh-ui-type-lg));
	line-height: 1.65;
}

.gh-lms-catalog__count {
	flex: 0 0 auto;
	align-self: center;
	margin-inline-start: auto;
	padding: var(--gh-ui-space-2) var(--gh-ui-space-3);
	border: 0;
	border-radius: var(--gh-ui-radius-pill);
	background: color-mix(in srgb, var(--gh-catalog-green) 12%, transparent);
	color: var(--gh-catalog-green);
	font-size: var(--gh-ui-type-sm);
	font-weight: 600;
	white-space: nowrap;
}

.gh-lms-catalog__search {
	margin-bottom: var(--gh-ui-space-4);
}

.gh-lms-catalog__search-row label span {
	display: block;
	margin-bottom: var(--gh-ui-space-1-5);
	color: var(--gh-catalog-green);
	font-size: var(--gh-ui-type-sm);
	font-weight: 500;
}

.gh-lms-catalog__search-row {
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) minmax(180px, 0.8fr) auto;
	align-items: end;
	gap: var(--gh-ui-space-2-5);
}

.gh-lms-catalog__search input,
.gh-lms-catalog__search select {
	width: 100%;
	min-width: 0;
	min-height: 48px;
	padding: var(--gh-ui-space-2-5) var(--gh-ui-space-4);
	border: 1px solid var(--gh-catalog-line);
	border-radius: var(--gh-ui-radius);
	background: var(--gh-ui-surface-raised);
	color: var(--gh-catalog-ink);
	font: inherit;
}

.gh-lms-catalog__search button,
.gh-lms-catalog__action,
.gh-lms-catalog__pagination a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: var(--gh-ui-space-2-5) var(--gh-ui-space-4);
	border: 0;
	border-radius: var(--gh-ui-radius);
	background: var(--gh-catalog-green);
	color: var(--gh-ui-surface-raised);
	font: inherit;
	font-weight: 500;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
}

.gh-lms-catalog__search button:hover,
.gh-lms-catalog__action:hover,
.gh-lms-catalog__pagination a:hover {
	background: var(--gh-catalog-green-2);
	color: var(--gh-ui-surface-raised);
}

.gh-lms-catalog a:focus-visible,
.gh-lms-catalog button:focus-visible,
.gh-lms-catalog input:focus-visible,
.gh-lms-catalog select:focus-visible {
	outline: 3px solid var(--gh-ui-current);
	outline-offset: 3px;
}

.gh-lms-catalog__filters {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: var(--gh-ui-space-2);
	margin-bottom: var(--gh-ui-space-5);
}

.gh-lms-catalog__filter-group {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--gh-ui-space-2);
}

.gh-lms-catalog__filters a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: var(--gh-ui-space-2) var(--gh-ui-space-3);
	border: 1px solid var(--gh-catalog-line);
	border-radius: var(--gh-ui-radius-pill);
	background: color-mix(in srgb, var(--gh-ui-surface-raised) 88%, transparent);
	color: var(--gh-catalog-green);
	font-size: var(--gh-ui-type-sm);
	font-weight: 500;
	text-decoration: none;
}

.gh-lms-catalog__filters a[aria-current="page"] {
	border-color: var(--gh-catalog-green);
	background: var(--gh-catalog-green);
	color: var(--gh-ui-surface-raised);
}

.gh-lms-catalog__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--gh-ui-space-4-5);
}

.gh-lms-catalog__card {
	display: flex;
	min-width: 0;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--gh-catalog-line);
	border-radius: var(--gh-ui-radius-lg);
	background: var(--gh-ui-surface-raised);
	box-shadow: var(--gh-ui-shadow-subtle);
	transition: border-color var(--gh-ui-transition-fast);
}

.gh-lms-catalog__card:hover {
	border-color: color-mix(in srgb, var(--gh-catalog-green) 35%, var(--gh-catalog-line));
}

.gh-lms-catalog__visual {
	position: relative;
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--gh-catalog-mint);
}

.gh-lms-catalog__visual img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gh-lms-catalog__ribbon {
	position: absolute;
	inset-block-start: 14px;
	inset-inline-start: 14px;
	max-width: calc(100% - 28px);
	padding: var(--gh-ui-space-1-5) var(--gh-ui-space-2-5);
	border-radius: var(--gh-ui-radius-pill);
	background: var(--gh-catalog-pink);
	color: var(--gh-ui-surface-raised);
	font-size: var(--gh-ui-type-xs);
	font-weight: 600;
}

.gh-lms-catalog__ribbon--inline {
	position: static;
	max-width: 100%;
	margin-bottom: var(--gh-ui-space-2-5);
}

.gh-lms-catalog__body {
	display: flex;
	flex: 1;
	min-width: 0;
	flex-direction: column;
	align-items: flex-start;
	padding: var(--gh-ui-space-4-5);
}

.gh-lms-catalog__state {
	margin-bottom: var(--gh-ui-space-2-5);
	padding: var(--gh-ui-space-1) var(--gh-ui-space-2);
	border-radius: var(--gh-ui-radius-pill);
	background: var(--gh-catalog-mint);
	color: var(--gh-catalog-green);
	font-size: var(--gh-ui-type-xs);
	font-weight: 600;
}

.gh-lms-catalog__card.is-completed .gh-lms-catalog__state {
	background: var(--gh-ui-surface-subtle);
	color: var(--gh-catalog-success);
}

.gh-lms-catalog__card.is-locked .gh-lms-catalog__state {
	background: var(--gh-ui-surface-selected);
	color: var(--gh-ui-text-muted);
}

.gh-lms-catalog__body h3 {
	margin: 0;
	font-size: clamp(var(--gh-ui-type-lg), 2vw, var(--gh-ui-type-lg));
	font-weight: 600;
	line-height: 1.25;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.gh-lms-catalog__body h3 a {
	color: var(--gh-catalog-ink);
	text-decoration: none;
}

.gh-lms-catalog__description {
	display: -webkit-box;
	overflow: hidden;
	margin: var(--gh-ui-space-3) 0 var(--gh-ui-space-4);
	color: var(--gh-catalog-muted);
	font-size: var(--gh-ui-type-md);
	line-height: 1.65;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.gh-lms-catalog__categories {
	display: flex;
	flex-wrap: wrap;
	gap: var(--gh-ui-space-1-5);
	margin: var(--gh-ui-space-2-5) 0 0;
	padding: 0;
	list-style: none;
}

.gh-lms-catalog__categories li {
	padding: var(--gh-ui-space-1) var(--gh-ui-space-2);
	border: 1px solid var(--gh-catalog-line);
	border-radius: var(--gh-ui-radius-pill);
	background: var(--gh-catalog-cream);
	color: var(--gh-catalog-muted);
	font-size: var(--gh-ui-type-xs);
	font-weight: 500;
}

.gh-lms-catalog__progress {
	width: 100%;
	margin-top: auto;
	padding-top: var(--gh-ui-space-1-5);
}

.gh-lms-catalog__progress > div {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--gh-ui-space-3);
	margin-bottom: var(--gh-ui-space-1-5);
	color: var(--gh-catalog-muted);
	font-size: var(--gh-ui-type-sm);
}

.gh-lms-catalog__progress strong {
	color: var(--gh-catalog-green);
}

.gh-lms-catalog__card.is-completed .gh-lms-catalog__progress strong {
	color: var(--gh-catalog-success);
}

.gh-lms-catalog__track {
	display: block;
	overflow: hidden;
	height: 7px;
	border-radius: var(--gh-ui-radius-pill);
	background: var(--gh-ui-border);
}

.gh-lms-catalog__track > span {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: var(--gh-catalog-green-2);
}

.gh-lms-catalog__body footer {
	display: flex;
	width: 100%;
	align-items: center;
	justify-content: space-between;
	gap: var(--gh-ui-space-3);
	margin-top: var(--gh-ui-space-4-5);
	padding-top: var(--gh-ui-space-4);
	border-top: 1px solid var(--gh-catalog-line);
}

.gh-lms-catalog__price {
	color: var(--gh-catalog-green);
	font-size: var(--gh-ui-type-md);
	font-weight: 600;
}

.gh-lms-catalog__action {
	margin-inline-start: auto;
}

.gh-lms-catalog__empty {
	padding: clamp(var(--gh-ui-space-6), 8vw, var(--gh-ui-space-9)) var(--gh-ui-space-5);
	border: 1px dashed var(--gh-ui-border);
	border-radius: var(--gh-ui-radius-lg);
	background: color-mix(in srgb, var(--gh-ui-surface-raised) 88%, transparent);
	color: var(--gh-catalog-muted);
	text-align: center;
}

.gh-lms-catalog__empty p {
	margin: 0;
}

.gh-lms-catalog__empty a {
	display: inline-flex;
	margin-top: var(--gh-ui-space-4);
	color: var(--gh-catalog-green);
	font-weight: 500;
	text-underline-offset: 4px;
}

.gh-lms-catalog__pagination {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: var(--gh-ui-space-3-5);
	margin-top: var(--gh-ui-space-5-5);
}

.gh-lms-catalog__pagination-previous {
	grid-column: 1;
	justify-self: start;
}

.gh-lms-catalog__pagination-next {
	grid-column: 3;
	justify-self: end;
}

.gh-lms-catalog__pagination strong {
	grid-column: 2;
	color: var(--gh-catalog-muted);
	font-size: var(--gh-ui-type-sm);
	text-align: center;
}

@media (max-width: 900px) {
	.gh-lms-catalog__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 620px) {
	.gh-lms-catalog {
		padding: var(--gh-ui-space-4-5) var(--gh-ui-space-3-5);
		border-radius: var(--gh-ui-radius-lg);
	}

	.gh-lms-catalog__hero {
		align-items: flex-start;
		flex-direction: column;
	}

	.gh-lms-catalog__search-row,
	.gh-lms-catalog__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.gh-lms-catalog__search button {
		width: 100%;
	}

	.gh-lms-catalog__body footer {
		align-items: stretch;
		flex-direction: column;
	}

	.gh-lms-catalog__action {
		width: 100%;
		margin-inline-start: 0;
	}

	.gh-lms-catalog__pagination {
		grid-template-columns: 1fr 1fr;
	}

	.gh-lms-catalog__pagination strong {
		grid-column: 1 / -1;
		grid-row: 1;
	}

	.gh-lms-catalog__pagination-previous,
	.gh-lms-catalog__pagination-next {
		grid-row: 2;
	}

	.gh-lms-catalog__pagination-previous {
		grid-column: 1;
	}

	.gh-lms-catalog__pagination-next {
		grid-column: 2;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gh-lms-catalog,
	.gh-lms-catalog *,
	.gh-lms-catalog *::before,
	.gh-lms-catalog *::after {
		transition: none !important;
		animation: none !important;
		scroll-behavior: auto !important;
	}
}
