/**
 * LearnDash (LD30 templates) in the site's design: course, lesson, login modal, registration
 * and profile ("Mi cuenta"). Loaded only where LearnDash is used (inc/courses.php), after
 * LearnDash's own CSS. The brand colors are also set in LearnDash › Configuración › Diseño,
 * which LearnDash prints as inline !important rules; the rest is here.
 *
 * @package generando-abundancia
 */

/* ==========================================================
   Page: indigo band with the title (like the site heroes) and content in the container.
   Single course/lesson and pages only (not the /cursos/ listing).
   ========================================================== */

.ga-learndash:is(.single, .page) .site-content .inside-article {
	padding: 0;
	background: var(--surface-page);
}

.ga-learndash:is(.single, .page) .site-content .entry-header {
	margin: 0;
	padding: var(--space-80) var(--layout-inline) var(--space-64);
	background: var(--gradient-brand-deep);
}

.ga-learndash:is(.single, .page) .site-content .entry-title {
	margin: 0;
	color: var(--text-inverse);
	font-family: var(--font-family-heading);
	font-size: var(--font-size-heading-h1);
	font-weight: var(--font-weight-bold);
	line-height: var(--font-line-height-heading-h1);
}

.ga-learndash:is(.single, .page) .site-content .entry-content {
	margin: 0;
	padding: var(--space-64) var(--layout-inline) var(--space-96);
}

/* Course page: the title goes in the hero (parts/course-hero.php), not in the article. */
.ga-learndash.ga-has-course-hero:is(.single, .page) .site-content .entry-header {
	display: none;
}

.ga-learndash.ga-has-course-hero:is(.single, .page) .site-content .entry-content {
	padding-top: var(--space-64);
}

/* Course with a featured image: the photo is the band's background (functions in
   inc/courses.php print it as --ga-ld-hero), not a full-width image above it. */
.ga-learndash.single .featured-image.page-header-image-single {
	display: none;
}

.ga-learndash.ga-ld-has-hero:is(.single, .page) .site-content .entry-header {
	display: flex;
	align-items: flex-end;
	min-height: 360px;
	box-sizing: border-box;
	background:
		linear-gradient(90deg, rgba(28, 23, 58, 0.95) 0%, rgba(28, 23, 58, 0.8) 50%, rgba(28, 23, 58, 0.35) 100%),
		var(--ga-ld-hero) center / cover no-repeat,
		var(--surface-brand-strong);
}

/* Pages without a visible title (Registro): only the content padding. */
.ga-learndash.full-width-content:is(.single, .page) .site-content .entry-content {
	max-width: none;
}

/* ==========================================================
   Base: site fonts and colors inside LearnDash
   ========================================================== */

.learndash-wrapper,
.learndash-wrapper :is(p, li, label, input, select, textarea, .ld-item-title, .ld-text) {
	font-family: var(--font-family-body);
}

.learndash-wrapper :is(h1, h2, h3, h4, .ld-section-heading h2, .ld-registration__heading, .ld-registration-order__heading, .ld-modal-heading) {
	color: var(--text-primary);
	font-family: var(--font-family-heading);
	font-weight: var(--font-weight-bold);
	letter-spacing: 0;
}

/* Text links inside LearnDash's own texts (not buttons or the theme's components). */
.learndash-wrapper :is(.ld-tab-content, .ld-registration__p, .ld-alert-messages, .ld-modal-text, .ld-password-strength__hint) a {
	color: var(--text-link);
}

/* ==========================================================
   Buttons: metallic gold pill (primary) and indigo outline (secondary), like .btn
   ========================================================== */

.learndash-wrapper :is(.ld-button, .btn-join, #btn-join, input.button-primary, input[type="submit"], button[type="submit"], .learndash_mark_complete_button, .wpProQuiz_button):not(.ld-button-reverse):not(.ld-button__password-visibility-toggle):not(.ld-button-transparent):not(.ld-logout),
.ld-login-modal :is(input[type="submit"], .button-primary),
.ld-course-status-action :is(.ld-button, .btn-join) {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: var(--space-8);
	min-height: 48px;
	padding: calc(var(--space-12) - var(--border-width-2)) calc(var(--space-24) - var(--border-width-2)) !important;
	border: var(--border-width-2) solid transparent !important;
	border-radius: var(--radius-full) !important;
	background: var(--gradient-gold-metallic) !important;
	box-shadow: none !important;
	color: var(--action-primary-fg) !important;
	font-family: var(--font-family-body) !important;
	font-size: var(--font-size-button-md) !important;
	font-weight: var(--font-weight-bold) !important;
	line-height: var(--font-line-height-button-md) !important;
	letter-spacing: var(--font-letter-spacing-button-md) !important;
	text-decoration: none !important;
	text-transform: uppercase;
	cursor: pointer;
	opacity: 1 !important;
	transition: background 0.15s ease, box-shadow 0.25s ease;
}

.learndash-wrapper :is(.ld-button, .btn-join, #btn-join, input.button-primary, input[type="submit"], button[type="submit"], .learndash_mark_complete_button):not(.ld-button-reverse):not(.ld-button__password-visibility-toggle):not(.ld-button-transparent):not(.ld-logout):hover,
.ld-login-modal :is(input[type="submit"], .button-primary):hover,
.ld-course-status-action :is(.ld-button, .btn-join):hover {
	background: var(--gradient-gold-metallic-hover) !important;
	box-shadow: 0 0 0 1px rgba(240, 214, 160, 0.5), 0 0 18px 1px rgba(214, 173, 85, 0.5) !important;
}

/* Secondary: outline (e.g. "Registra tu cuenta" in the modal, "Mostrar" password, prev/next). */
.learndash-wrapper :is(.ld-button-reverse, .ld-button-transparent, .ld-button__password-visibility-toggle),
.ld-login-modal .ld-button-reverse {
	min-height: 48px;
	padding: calc(var(--space-12) - var(--border-width-2)) calc(var(--space-24) - var(--border-width-2)) !important;
	border: var(--border-width-2) solid var(--border-brand) !important;
	border-radius: var(--radius-full) !important;
	background: transparent !important;
	color: var(--text-primary) !important;
	font-family: var(--font-family-body) !important;
	font-size: var(--font-size-button-md) !important;
	font-weight: var(--font-weight-bold) !important;
	letter-spacing: var(--font-letter-spacing-button-md) !important;
	text-transform: uppercase;
}

.learndash-wrapper :is(.ld-button-reverse, .ld-button-transparent, .ld-button__password-visibility-toggle):hover {
	background: var(--surface-brand-soft) !important;
}

.learndash-wrapper :is(.ld-button, .btn-join, input[type="submit"], button):focus-visible,
.ld-login-modal :is(a, input, button):focus-visible {
	outline: 3px solid var(--border-focus) !important;
	outline-offset: 2px;
}

/* ==========================================================
   Course: status bar (status · price · action) as a white card
   ========================================================== */

.learndash-wrapper .ld-course-status,
.learndash-wrapper .ld-course-status.ld-course-status-not-enrolled,
.learndash-wrapper .ld-course-status.ld-course-status-enrolled {
	margin: 0 0 var(--space-40);
	background: var(--surface-default) !important;
	padding: var(--space-24) var(--space-32);
	border: 1px solid var(--border-default);
	border-radius: var(--radius-xl);
	background: var(--surface-default);
	box-shadow: 0 12px 32px rgba(28, 23, 58, 0.06);
}

.learndash-wrapper .ld-course-status .ld-course-status-segment {
	border-color: var(--border-subtle) !important;
}

.learndash-wrapper .ld-course-status-label {
	color: var(--text-accent) !important;
	font-family: var(--font-family-label) !important;
	font-size: var(--font-size-label-eyebrow) !important;
	font-weight: var(--font-weight-medium) !important;
	line-height: var(--font-line-height-label-eyebrow) !important;
	letter-spacing: var(--font-letter-spacing-label-eyebrow) !important;
	text-transform: uppercase;
}

.learndash-wrapper .ld-course-status-price {
	color: var(--text-primary) !important;
	font-family: var(--font-family-heading) !important;
	font-size: var(--font-size-heading-h3) !important;
	font-weight: var(--font-weight-bold) !important;
	line-height: var(--font-line-height-heading-h3) !important;
}

.learndash-wrapper .ld-course-status-price .ga-price-usd,
.ga-price-usd {
	color: var(--text-secondary);
	font-family: var(--font-family-body);
	font-size: var(--font-size-body-sm);
	font-weight: var(--font-weight-medium);
}

/* "o Log In" under the buy button: outline secondary button. */
.learndash-wrapper .ld-course-status.ld-course-status-not-enrolled .ld-course-status-action .ld-text {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space-8);
	color: var(--text-secondary);
	font-size: var(--font-size-body-sm);
}

.learndash-wrapper .ld-course-status.ld-course-status-not-enrolled .ld-course-status-action .ld-text button.ld-login-text {
	min-height: 44px;
	padding: calc(var(--space-12) - var(--border-width-2)) calc(var(--space-24) - var(--border-width-2)) !important;
	border: var(--border-width-2) solid var(--border-brand) !important;
	border-radius: var(--radius-full) !important;
	background: transparent !important;
	color: var(--text-primary) !important;
	font-family: var(--font-family-body);
	font-size: var(--font-size-button-md) !important;
	font-weight: var(--font-weight-bold);
	letter-spacing: var(--font-letter-spacing-button-md);
	text-transform: uppercase;
	cursor: pointer;
}

.learndash-wrapper .ld-course-status.ld-course-status-not-enrolled .ld-course-status-action .ld-text button.ld-login-text:hover {
	background: var(--surface-brand-soft) !important;
}

/* Status pills (NO INSCRITO / INSCRITO / COMPLETADO). */
.learndash-wrapper .ld-status {
	padding: var(--space-4) var(--space-12) !important;
	border-radius: var(--radius-full) !important;
	font-family: var(--font-family-label) !important;
	font-size: var(--font-size-label-md) !important;
	font-weight: var(--font-weight-medium) !important;
	line-height: var(--font-line-height-label-md) !important;
	letter-spacing: 1px;
}

.learndash-wrapper .ld-status.ld-status-waiting,
.learndash-wrapper .ld-status.ld-tertiary-background {
	background: var(--surface-accent-soft) !important;
	color: var(--text-accent) !important;
}

.learndash-wrapper .ld-status.ld-status-progress,
.learndash-wrapper .ld-status.ld-primary-background {
	background: var(--surface-brand-soft) !important;
	color: var(--text-primary) !important;
}

.learndash-wrapper .ld-status.ld-status-complete,
.learndash-wrapper .ld-status.ld-secondary-background {
	background: var(--surface-brand) !important;
	color: var(--text-accent-inverse) !important;
}

/* Progress bar. */
.learndash-wrapper .ld-progress .ld-progress-bar {
	height: 8px;
	border-radius: var(--radius-full);
	background: var(--surface-muted);
}

.learndash-wrapper .ld-progress .ld-progress-bar-percentage {
	border-radius: var(--radius-full);
	background: var(--gradient-gold-metallic) !important;
}

.learndash-wrapper .ld-progress .ld-progress-percentage,
.learndash-wrapper .ld-progress .ld-progress-steps {
	color: var(--text-secondary) !important;
	font-family: var(--font-family-label);
	letter-spacing: 1px;
}

/* ==========================================================
   Course content: lessons and topics list
   ========================================================== */

.learndash-wrapper .ld-section-heading h2 {
	font-size: var(--font-size-heading-h3);
	line-height: var(--font-line-height-heading-h3);
}

.learndash-wrapper .ld-item-list .ld-item-list-item {
	margin-bottom: var(--space-12);
	overflow: hidden;
	border: 1px solid var(--border-default) !important;
	border-radius: var(--radius-lg) !important;
	background: var(--surface-default);
	box-shadow: none !important;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.learndash-wrapper .ld-item-list .ld-item-list-item:hover {
	border-color: var(--border-accent) !important;
	box-shadow: 0 8px 24px rgba(28, 23, 58, 0.06) !important;
}

.learndash-wrapper .ld-item-list .ld-item-list-item .ld-item-name {
	color: var(--text-primary) !important;
	font-family: var(--font-family-body);
	font-weight: var(--font-weight-semibold);
}

.learndash-wrapper .ld-item-list .ld-item-list-item-preview {
	padding: var(--space-20) var(--space-24);
}

.learndash-wrapper .ld-item-list-actions {
	color: var(--text-primary);
}

/* "Expandir todo" and each row's expand circle: indigo with white text and icon. */
.learndash-wrapper .ld-expand-button {
	border-radius: var(--radius-full) !important;
	background: var(--surface-brand) !important;
	color: var(--text-inverse) !important;
	font-family: var(--font-family-body);
	font-weight: var(--font-weight-bold);
}

.learndash-wrapper .ld-expand-button :is(.ld-icon, .ld-text) {
	color: inherit !important;
}

/* "Cerrar sesión": outline secondary, not the main action. */
/* Classes repeated to beat LearnDash's inline color rule (many :not()). */
body .learndash-wrapper a.ld-button.ld-logout.ld-logout.ld-logout.ld-login-button {
	border: var(--border-width-2) solid var(--border-brand) !important;
	border-radius: var(--radius-full) !important;
	background: transparent !important;
	background-color: transparent !important;
	font-family: var(--font-family-body);
	font-weight: var(--font-weight-bold);
	text-transform: uppercase;
	color: var(--text-primary) !important;
}

body .learndash-wrapper a.ld-button.ld-logout.ld-logout.ld-logout.ld-login-button:hover {
	background: var(--surface-brand-soft) !important;
	box-shadow: none !important;
}

/* Status circle: empty → gold ring; done → indigo with gold check. */
.learndash-wrapper .ld-status-icon.ld-status-incomplete {
	border-color: var(--border-accent) !important;
}

.learndash-wrapper .ld-status-icon.ld-status-complete,
.learndash-wrapper .ld-status-icon.ld-secondary-background {
	background: var(--surface-brand) !important;
	color: var(--text-accent-inverse) !important;
}

/* Tabs (Contenido / Materiales). */
.learndash-wrapper .ld-tabs-navigation .ld-tab.ld-active {
	border-bottom-color: var(--border-accent) !important;
	color: var(--text-primary) !important;
}

/* ==========================================================
   Lesson / topic: breadcrumbs, previous-next and "Marcar como completado"
   ========================================================== */

.learndash-wrapper .ld-breadcrumbs {
	padding: var(--space-16) var(--space-24);
	border-radius: var(--radius-lg);
	background: var(--surface-brand-soft) !important;
}

.learndash-wrapper .ld-breadcrumbs a {
	color: var(--text-primary) !important;
}

.learndash-wrapper .ld-content-actions {
	gap: var(--space-16);
	margin-top: var(--space-40);
	padding-top: var(--space-24);
	border-top: 1px solid var(--border-default);
}

.learndash-wrapper .ld-content-actions .ld-content-action a,
.learndash-wrapper .ld-content-actions .ld-course-step-back {
	color: var(--text-primary) !important;
	font-weight: var(--font-weight-semibold);
}

/* ==========================================================
   Alerts
   ========================================================== */

.learndash-wrapper .ld-alert {
	border-width: 1px !important;
	border-radius: var(--radius-lg) !important;
	background: var(--surface-brand-soft) !important;
	color: var(--text-primary) !important;
}

.learndash-wrapper .ld-alert.ld-alert-success {
	border-color: var(--border-success) !important;
	background: var(--surface-success-soft) !important;
}

.learndash-wrapper .ld-alert.ld-alert-warning {
	border-color: var(--border-accent) !important;
	background: var(--surface-accent-soft) !important;
}

.learndash-wrapper .ld-alert .ld-alert-icon {
	background: var(--surface-brand) !important;
	color: var(--text-accent-inverse) !important;
}

/* ==========================================================
   Login modal: login on white, register panel in indigo with gold lines
   ========================================================== */

.ld-modal.ld-login-modal {
	overflow: hidden;
	border-radius: var(--radius-xl) !important;
	box-shadow: 0 32px 80px rgba(28, 23, 58, 0.35) !important;
}

.ld-login-modal .ld-login-modal-login {
	background: var(--surface-default);
}

.ld-login-modal .ld-login-modal-login .ld-modal-heading {
	color: var(--text-primary) !important;
	font-family: var(--font-family-heading) !important;
	font-size: var(--font-size-heading-h2) !important;
	line-height: var(--font-line-height-heading-h2) !important;
}

.ld-login-modal .ld-modal-text {
	color: var(--text-secondary) !important;
	font-family: var(--font-family-body);
}

.ld-login-modal label {
	color: var(--text-primary) !important;
	font-family: var(--font-family-body) !important;
	font-weight: var(--font-weight-semibold) !important;
}

.ld-login-modal :is(input[type="text"], input[type="password"], input[type="email"]),
.learndash-wrapper .ld-form__field:not([type="checkbox"]):not([type="submit"]),
.learndash-wrapper :is(input[type="text"], input[type="email"], input[type="password"]) {
	box-sizing: border-box;
	min-height: 52px;
	padding: var(--space-12) var(--space-16) !important;
	border: 1px solid var(--border-default) !important;
	border-radius: var(--radius-md) !important;
	background: var(--surface-default) !important;
	box-shadow: none !important;
	color: var(--text-primary);
	font-family: var(--font-family-body) !important;
	font-size: var(--font-size-body-md) !important;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.ld-login-modal :is(input[type="text"], input[type="password"]):focus,
.learndash-wrapper :is(input[type="text"], input[type="email"], input[type="password"]):focus {
	border-color: var(--border-accent) !important;
	outline: none;
	box-shadow: 0 0 0 3px rgba(214, 173, 85, 0.25) !important;
}

.ld-login-modal .ld-login-modal-form input[type="submit"] {
	width: 100%;
}

.ld-login-modal .ld-forgot-password-link {
	color: var(--text-link) !important;
}

.ld-login-modal .ld-login-modal-register {
	position: relative;
	background: var(--gradient-brand-deep) !important;
}

.ld-login-modal .ld-login-modal-register::before {
	content: "";
	position: absolute;
	inset: 0;
	background: url("../img/founders-deco-lines.svg") left top / 120% auto no-repeat;
	opacity: 0.6;
	pointer-events: none;
}

.ld-login-modal .ld-login-modal-register > * {
	position: relative;
}

.ld-login-modal .ld-login-modal-register .ld-modal-heading {
	color: var(--text-inverse) !important;
	font-family: var(--font-family-heading) !important;
	font-size: var(--font-size-heading-h2) !important;
	line-height: var(--font-line-height-heading-h2) !important;
}

.ld-login-modal .ld-login-modal-register .ld-modal-text {
	color: var(--text-inverse-secondary) !important;
}

.ld-login-modal .ld-login-modal-register .ld-button {
	border-color: var(--border-accent) !important;
	background: transparent !important;
	color: var(--text-accent-inverse) !important;
}

.ld-login-modal .ld-login-modal-register .ld-button:hover {
	background: rgba(214, 173, 85, 0.12) !important;
}

.ld-login-modal .ld-modal-closer {
	color: var(--text-primary) !important;
}

/* ==========================================================
   Registration page: form card + order summary
   ========================================================== */

.learndash-wrapper .ld-registration__wrapper {
	max-width: var(--layout-container);
	margin-inline: auto;
}

/* Two columns as a grid: form (and the "back to the course" link under it) on the left,
   order summary on the right. LearnDash's own layout is 67% + rest with flex-wrap. */
.learndash-wrapper .ld-registration__wrapper--has-order.ld-breakpoint--medium {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 380px;
	align-items: start;
	gap: var(--space-24) var(--space-48);
}

.learndash-wrapper .ld-registration__wrapper--has-order.ld-breakpoint--medium > * {
	grid-column: 1;
	width: auto;
	max-width: none;
	margin: 0;
}

.learndash-wrapper .ld-registration__wrapper--has-order.ld-breakpoint--medium > .ld-registration__form {
	flex: none;
	box-sizing: border-box;
	width: 100%;
	max-width: none !important;
	padding: var(--space-40);
	border: 1px solid var(--border-default);
}

.learndash-wrapper .ld-registration__form :is(.ld-registration__register, .ld-registration__login, .ld-registration__p) {
	max-width: none;
}

.learndash-wrapper .ld-registration__wrapper--has-order.ld-breakpoint--medium > .ld-registration-order {
	grid-column: 2;
	grid-row: 1 / span 3;
}

.learndash-wrapper .ld-registration__wrapper--has-order > .ld-registration-order__return-wrapper,
.learndash-wrapper .ld-registration__wrapper--has-order > .ld-registration-order__return-wrapper > * {
	padding-top: 0;
	border: 0 !important;
}

.learndash-wrapper .ld-registration__form {
	padding: var(--space-40);
	border: 1px solid var(--border-default);
	border-radius: var(--radius-xl);
	background: var(--surface-default);
	box-shadow: 0 12px 32px rgba(28, 23, 58, 0.06);
}

.learndash-wrapper .ld-registration__heading {
	margin-top: 0;
	font-size: var(--font-size-heading-h2) !important;
	line-height: var(--font-line-height-heading-h2) !important;
}

.learndash-wrapper .ld-registration__p {
	color: var(--text-secondary);
}

.learndash-wrapper .ld-form label,
.learndash-wrapper .learndash-registration-field label {
	color: var(--text-primary);
	font-family: var(--font-family-body);
	font-size: var(--font-size-body-sm);
	font-weight: var(--font-weight-semibold);
}

.learndash-wrapper .ld-password-strength__hint {
	color: var(--text-tertiary);
}

.learndash-wrapper .ld-registration-order {
	align-self: flex-start;
	padding: var(--space-32);
	border: 0 !important;
	border-radius: var(--radius-xl);
	background: var(--gradient-brand-deep);
	color: var(--text-inverse);
}

.learndash-wrapper .ld-registration-order :is(.ld-registration-order__heading, .ld-registration-order__item-title, .ld-registration-order__total-title, .ld-registration-order__total-price, .ld-registration-order__item-price-value) {
	color: var(--text-inverse) !important;
}

.learndash-wrapper .ld-registration-order__item-type {
	color: var(--text-accent-inverse) !important;
	font-family: var(--font-family-label);
	letter-spacing: 1px;
}

.learndash-wrapper .ld-registration-order__total {
	border-color: var(--border-inverse) !important;
}

.learndash-wrapper .ld-registration-order__total-price {
	font-family: var(--font-family-heading);
	font-size: var(--font-size-heading-h4);
}

.learndash-wrapper .ld-registration-order__return a {
	color: var(--text-accent-inverse) !important;
}

/* ==========================================================
   Profile ("Mi cuenta")
   ========================================================== */

.learndash-wrapper .ld-profile-summary {
	margin-bottom: var(--space-48);
	padding: var(--space-40) var(--space-32);
	border-radius: var(--radius-xl);
	background: var(--gradient-brand-deep);
}

.learndash-wrapper .ld-profile-summary :is(.ld-profile-heading, .ld-profile-stat strong) {
	color: var(--text-inverse) !important;
	font-family: var(--font-family-heading) !important;
}

.learndash-wrapper .ld-profile-summary .ld-profile-stat strong {
	background: var(--gradient-gold-metallic);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent !important;
}

.learndash-wrapper .ld-profile-summary .ld-profile-stat span {
	color: var(--text-inverse-secondary) !important;
	font-family: var(--font-family-label);
	letter-spacing: 1px;
	text-transform: uppercase;
}

.learndash-wrapper .ld-profile-summary .ld-profile-stat {
	border-color: var(--border-inverse) !important;
}

.learndash-wrapper .ld-profile-summary .ld-profile-edit-link {
	color: var(--text-accent-inverse) !important;
}

.learndash-wrapper .ld-profile-summary .ld-profile-avatar img,
.learndash-wrapper .ld-profile-summary .ld-profile-avatar {
	border-color: var(--border-accent) !important;
}

/* ==========================================================
   Mobile
   ========================================================== */

@media (max-width: 767px) {
	.ga-learndash:is(.single, .page) .site-content .entry-header {
		padding: var(--space-48) var(--layout-inline) var(--space-40);
	}

	.ga-learndash:is(.single, .page) .site-content .entry-content {
		padding: var(--space-40) var(--layout-inline) var(--space-64);
	}

	.learndash-wrapper .ld-course-status,
	.learndash-wrapper .ld-registration__form,
	.learndash-wrapper .ld-registration-order {
		padding: var(--space-24);
	}

	.learndash-wrapper .ld-registration__wrapper--has-order .ld-registration-order {
		margin-top: var(--space-24);
	}

	.learndash-wrapper .ld-registration__wrapper--has-order .ld-registration-order__return-wrapper {
		margin-top: var(--space-16);
	}
}

/* ==========================================================
   /cursos/ listing: band + course cards (parts/course-card.php)
   ========================================================== */

.post-type-archive-sfwd-courses .site-content .content-area,
.post-type-archive-sfwd-courses .site-main {
	width: 100%;
	margin: 0;
}

.ga-courses-hero {
	display: flex;
	flex-direction: column;
	gap: var(--space-16);
	padding: var(--space-80) var(--layout-inline) var(--space-64);
	background: var(--gradient-brand-deep);
}

.ga-courses-hero :is(.ga-eyebrow, .ga-courses-hero__title, .ga-courses-hero__text) {
	margin: 0;
}

.ga-courses-hero .ga-eyebrow {
	color: var(--text-accent-inverse);
}

.ga-courses-hero__title {
	color: var(--text-inverse);
	font-family: var(--font-family-heading);
	font-size: var(--font-size-heading-h1);
	font-weight: var(--font-weight-bold);
	line-height: var(--font-line-height-heading-h1);
}

.ga-courses-hero__text {
	max-width: 640px;
	color: var(--text-inverse-secondary);
	font-family: var(--font-family-body);
	font-size: var(--font-size-body-lg);
	line-height: var(--font-line-height-body-lg);
}

.ga-courses {
	padding: var(--space-64) var(--layout-inline) var(--space-96);
	background: var(--surface-subtle);
}

.ga-course-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--space-32);
	width: 100%;
	max-width: var(--layout-container);
	margin: 0 auto;
}

.ga-course-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	overflow: hidden;
	border: 1px solid var(--border-default);
	border-radius: var(--radius-xl);
	background: var(--surface-default);
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.ga-course-card:hover {
	border-color: var(--border-accent);
	box-shadow: 0 16px 40px rgba(28, 23, 58, 0.1);
	transform: translateY(-2px);
}

.ga-course-card__media {
	position: relative;
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--gradient-brand-deep);
}

.ga-course-card__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.ga-course-card:hover .ga-course-card__image {
	transform: scale(1.04);
}

/* No photo: brand background with the course icon. */
.ga-course-card__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	color: var(--text-accent-inverse);
}

.ga-course-card__placeholder svg {
	width: 64px;
	height: auto;
	opacity: 0.8;
	transform: rotate(180deg);
}

.ga-course-card__badge {
	position: absolute;
	top: var(--space-16);
	left: var(--space-16);
}

.ga-course-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: var(--space-12);
	padding: var(--space-24);
}

.ga-course-card__body :is(p, h2) {
	margin: 0;
}

.ga-course-card__meta {
	color: var(--text-accent);
	font-family: var(--font-family-label);
	font-size: var(--font-size-label-md);
	font-weight: var(--font-weight-medium);
	line-height: var(--font-line-height-label-md);
	letter-spacing: 1px;
	text-transform: uppercase;
}

.ga-course-card__title {
	font-family: var(--font-family-heading);
	font-size: var(--font-size-heading-h4);
	font-weight: var(--font-weight-bold);
	line-height: var(--font-line-height-heading-h4);
}

.ga-course-card__title a {
	color: var(--text-primary);
	text-decoration: none;
}

/* The whole card is clickable through the title. */
.ga-course-card {
	position: relative;
}

.ga-course-card__title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.ga-course-card__text {
	display: -webkit-box;
	overflow: hidden;
	color: var(--text-secondary);
	font-family: var(--font-family-body);
	font-size: var(--font-size-body-sm);
	line-height: var(--font-line-height-body-sm);
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.ga-course-card__footer {
	display: flex;
	flex-direction: column;
	gap: var(--space-16);
	margin-top: auto;
	padding-top: var(--space-16);
	border-top: 1px solid var(--border-subtle);
}

.ga-course-card__actions {
	position: relative;
	z-index: 1;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-12);
}

.ga-course-card__link {
	color: var(--text-primary);
	font-family: var(--font-family-body);
	font-size: var(--font-size-body-sm);
	font-weight: var(--font-weight-semibold);
	text-decoration: underline;
	text-underline-offset: 4px;
}

.ga-course-card__link:hover {
	color: var(--text-accent);
}

/* Price: córdobas big, USD below. */
.ga-course-price {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin: 0;
}

.ga-course-price__value {
	color: var(--text-primary);
	font-family: var(--font-family-heading);
	font-size: var(--font-size-heading-h4);
	font-weight: var(--font-weight-bold);
	line-height: var(--font-line-height-heading-h4);
}

.ga-course-price__usd {
	color: var(--text-secondary);
	font-family: var(--font-family-body);
	font-size: var(--font-size-body-sm);
}

.ga-course-price--lg .ga-course-price__value {
	font-size: var(--font-size-heading-h2);
	line-height: var(--font-line-height-heading-h2);
}

/* Progress (enrolled). */
.ga-course-progress {
	display: flex;
	flex-direction: column;
	gap: var(--space-8);
}

.ga-course-progress__bar {
	display: block;
	height: 8px;
	overflow: hidden;
	border-radius: var(--radius-full);
	background: var(--surface-muted);
}

.ga-course-progress__bar > span {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: var(--gradient-gold-metallic);
}

.ga-course-progress__label {
	color: var(--text-secondary);
	font-family: var(--font-family-label);
	font-size: var(--font-size-label-md);
	letter-spacing: 1px;
	text-transform: uppercase;
}

.ga-courses-empty {
	max-width: 560px;
	margin: 0 auto;
	padding: var(--space-48) var(--space-32);
	border: 1px solid var(--border-default);
	border-radius: var(--radius-xl);
	background: var(--surface-default);
	text-align: center;
}

.ga-courses-empty h2 {
	margin: 0 0 var(--space-12);
	color: var(--text-primary);
	font-family: var(--font-family-heading);
}

.ga-courses-empty p {
	margin: 0 0 var(--space-24);
	color: var(--text-secondary);
}

.ga-courses .nav-links {
	display: flex;
	justify-content: center;
	gap: var(--space-8);
	margin-top: var(--space-48);
}

@media (max-width: 1199px) {
	.ga-course-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--space-24);
	}
}

@media (max-width: 767px) {
	.ga-courses-hero {
		padding: var(--space-48) var(--layout-inline) var(--space-40);
	}

	.ga-courses {
		padding: var(--space-40) var(--layout-inline) var(--space-64);
	}

	.ga-course-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ga-course-card,
	.ga-course-card__image {
		transition: none;
	}

	.ga-course-card:hover,
	.ga-course-card:hover .ga-course-card__image {
		transform: none;
	}
}

/* ==========================================================
   Course page: two columns (content + sticky buy box)
   ========================================================== */

.ga-course {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 380px;
	align-items: start;
	gap: var(--space-64);
	max-width: var(--layout-container);
	margin: 0 auto;
}

.ga-course__main {
	display: flex;
	flex-direction: column;
	gap: var(--space-48);
	min-width: 0;
}

/* LearnDash's status bar is replaced by the buy box (also its wrapper, so the column's
   gap doesn't leave an empty space at the top). */
.ga-course .ld-course-status,
.ga-course__main > [class*="learndash-shortcode-wrap-ld_infobar"] {
	display: none !important;
}

.ga-course .ld-tabs,
.ga-course .ld-tabs-content,
.ga-course .ld-tab-content,
.ga-course .ld-item-list {
	margin: 0 !important;
	padding: 0 !important;
}

.ga-course .ld-tab-content > :first-child {
	margin-top: 0;
}

.ga-course .ld-tab-content > :last-child {
	margin-bottom: 0;
}

.ga-course .ld-section-heading {
	flex-wrap: nowrap !important;
	justify-content: space-between;
	text-align: left;
}

.ga-course .ld-section-heading h2 {
	flex: 1;
	margin: 0;
	text-align: left !important;
}

.ga-course .ld-tabs-content,
.ga-course .ld-tab-content {
	color: var(--text-secondary);
	font-family: var(--font-family-body);
	font-size: var(--font-size-body-lg);
	line-height: var(--font-line-height-body-lg);
}

.ga-course__aside {
	position: sticky;
	/* Below the fixed header: assets/js/course.js sets its real height (it changes with the width). */
	top: calc(var(--ga-header-height, 176px) + var(--space-24));
}

.ga-course__aside.is-static {
	position: static;
}

.ga-course-buy {
	display: flex;
	flex-direction: column;
	gap: var(--space-20);
	padding: var(--space-32);
	border: 1px solid var(--border-default);
	border-radius: var(--radius-xl);
	background: var(--surface-default);
	box-shadow: 0 20px 48px rgba(28, 23, 58, 0.1);
}

.ga-course-buy :is(p, ul) {
	margin: 0;
}

.ga-course-buy__eyebrow {
	color: var(--text-accent);
}

.ga-course-buy__meta {
	color: var(--text-secondary);
	font-family: var(--font-family-label);
	font-size: var(--font-size-label-md);
	letter-spacing: 1px;
	text-transform: uppercase;
}

.ga-course-buy__button {
	width: 100%;
}

.ga-course-buy__includes {
	padding-top: var(--space-20);
	border-top: 1px solid var(--border-subtle);
}

.ga-course-buy__includes-title {
	margin-bottom: var(--space-12) !important;
	color: var(--text-primary);
	font-family: var(--font-family-body);
	font-weight: var(--font-weight-bold);
}

.ga-course-buy__includes ul,
.ga-course-learn__list {
	display: flex;
	flex-direction: column;
	gap: var(--space-12);
	padding: 0;
	list-style: none;
}

.ga-course-buy__includes li,
.ga-course-learn__list li {
	position: relative;
	padding-left: 32px;
	color: var(--text-secondary);
	font-family: var(--font-family-body);
	font-size: var(--font-size-body-sm);
	line-height: var(--font-line-height-body-sm);
}

/* Gold check in a soft circle. */
.ga-course-buy__includes li::before,
.ga-course-learn__list li::before {
	content: "";
	position: absolute;
	top: 1px;
	left: 0;
	width: 22px;
	height: 22px;
	border-radius: var(--radius-full);
	background: var(--surface-accent-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23886a33' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center / 14px no-repeat;
}

.ga-course-buy__secure,
.ga-course-buy__login {
	color: var(--text-tertiary);
	font-family: var(--font-family-body);
	font-size: var(--font-size-body-sm);
	text-align: center;
}

.ga-course-buy__login a {
	color: var(--text-link);
	font-weight: var(--font-weight-semibold);
}

/* "Lo que vas a aprender": soft box in two columns. */
.ga-course-learn {
	padding: var(--space-32);
	border-radius: var(--radius-xl);
	background: var(--surface-brand-soft);
}

.ga-course-learn__title {
	margin: 0 0 var(--space-20);
	color: var(--text-primary);
	font-family: var(--font-family-heading);
	font-size: var(--font-size-heading-h3);
	font-weight: var(--font-weight-bold);
	line-height: var(--font-line-height-heading-h3);
}

.ga-course-learn__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-16) var(--space-24);
	margin: 0;
}

.ga-course-learn__list li {
	color: var(--text-primary);
	font-size: var(--font-size-body-md);
	line-height: var(--font-line-height-body-md);
}

/* Mobile bottom bar (assets/js/course.js). */
.ga-course-bar {
	position: fixed;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 90;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-16);
	padding: var(--space-12) var(--layout-inline) calc(var(--space-12) + env(safe-area-inset-bottom));
	border-top: 1px solid var(--border-default);
	background: var(--surface-default);
	box-shadow: 0 -8px 24px rgba(28, 23, 58, 0.1);
}

.ga-course-bar[hidden] {
	display: none;
}

.ga-course-bar__price {
	margin: 0;
	color: var(--text-primary);
	font-family: var(--font-family-heading);
	font-size: var(--font-size-heading-h5);
	font-weight: var(--font-weight-bold);
}

body.ga-course-bar-on .ga-wa-float {
	bottom: 88px;
}

@media (max-width: 1199px) {
	.ga-course {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--space-40);
	}

	/* Buy box first, right under the title. */
	.ga-course__aside {
		position: static;
		order: -1;
	}

	.ga-course-learn__list {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 767px) {
	.ga-course-buy,
	.ga-course-learn {
		padding: var(--space-24);
	}
}

/* Checkout while logged in (LearnDash: no form, only the order summary and the payment or
   enroll button): one centered card. */
.learndash-wrapper .ld-registration__wrapper--logged-in {
	max-width: 560px;
	margin-inline: auto;
}

.learndash-wrapper .ld-registration__wrapper--logged-in.ld-registration__wrapper .ld-registration-order {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: var(--space-40);
}

.learndash-wrapper .ld-registration__wrapper--logged-in .ld-registration-order__return-wrapper {
	margin-top: var(--space-20);
	text-align: center;
}

.learndash-wrapper .ld-registration__wrapper--logged-in :is(input[type="submit"], .ld-button, button) {
	margin-top: var(--space-16);
}

@media (max-width: 767px) {
	.learndash-wrapper .ld-registration__wrapper--logged-in.ld-registration__wrapper .ld-registration-order {
		padding: var(--space-24);
	}
}

/* ==========================================================
   Live sessions (inc/sessions.php, parts/lesson-session.php)
   ========================================================== */

/* Only the current state's texts and button (data-state, updated by session.js). */
.ga-session [data-when] {
	display: none;
}

.ga-session[data-state="upcoming"] [data-when="upcoming"],
.ga-session[data-state="live"] [data-when="live"],
.ga-session[data-state="waiting"] [data-when="waiting"] {
	display: revert;
}

.ga-session[data-state="upcoming"] .ga-session__panel[data-when="upcoming"],
.ga-session[data-state="live"] .ga-session__panel[data-when="live"],
.ga-session[data-state="waiting"] .ga-session__panel[data-when="waiting"] {
	display: flex;
}

.ga-session {
	margin-bottom: var(--space-40);
}

.ga-session :is(p) {
	margin: 0;
}

.ga-session__card {
	display: flex;
	flex-direction: column;
	gap: var(--space-12);
	padding: var(--space-32);
	border-radius: var(--radius-xl);
	background: var(--gradient-brand-deep);
	color: var(--text-inverse);
}

.ga-session__eyebrow {
	display: flex;
	align-items: center;
	gap: var(--space-8);
	color: var(--text-accent-inverse);
}

.ga-session__date {
	color: var(--text-inverse);
	font-family: var(--font-family-heading);
	font-size: var(--font-size-heading-h3);
	font-weight: var(--font-weight-bold);
	line-height: var(--font-line-height-heading-h3);
}

.ga-session__panel {
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-16);
	margin-top: var(--space-8);
}

.ga-session__text {
	color: var(--text-inverse-secondary);
	font-family: var(--font-family-body);
	font-size: var(--font-size-body-md);
	line-height: var(--font-line-height-body-md);
}

.ga-session__text strong {
	color: var(--text-inverse);
}

.ga-session .btn.is-disabled {
	opacity: 0.45;
	cursor: not-allowed;
	pointer-events: none;
}

/* Red "live" dot. */
.ga-session__dot,
.ga-course-next.is-live::before {
	display: inline-block;
	width: 10px;
	height: 10px;
	border-radius: var(--radius-full);
	background: #e5484d;
	box-shadow: 0 0 0 0 rgba(229, 72, 77, 0.6);
	animation: ga-live 1.6s ease-out infinite;
}

@keyframes ga-live {
	to { box-shadow: 0 0 0 10px rgba(229, 72, 77, 0); }
}

/* Recording: responsive 16:9 video. */
.ga-session__video {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: var(--radius-xl);
	background: var(--surface-brand-strong);
}

.ga-session__video :is(iframe, video, .wp-video, .mejs-container) {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
}

.ga-session__note {
	margin-top: var(--space-12) !important;
	color: var(--text-secondary);
	font-family: var(--font-family-body);
	font-size: var(--font-size-body-sm);
}

/* Syllabus: date or state on each session's row. */
.ga-session-tag {
	display: inline-flex;
	align-items: center;
	margin-right: var(--space-12);
	padding: var(--space-4) var(--space-12);
	border-radius: var(--radius-full);
	background: var(--surface-brand-soft);
	color: var(--text-primary);
	font-family: var(--font-family-label);
	font-size: var(--font-size-label-md);
	line-height: var(--font-line-height-label-md);
	letter-spacing: 0.5px;
	white-space: nowrap;
}

.ga-session-tag--live {
	background: #e5484d;
	color: #fff;
}

.ga-session-tag--recorded {
	background: var(--surface-brand);
	color: var(--text-accent-inverse);
}

.ga-session-tag--waiting {
	background: var(--surface-accent-soft);
	color: var(--text-accent);
}

/* Next session (buy box and course card). */
.ga-course-next {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin: 0;
	padding: var(--space-12) var(--space-16);
	border-radius: var(--radius-md);
	background: var(--surface-brand-soft);
}

.ga-course-next.is-live {
	position: relative;
	padding-left: calc(var(--space-16) + 18px);
}

.ga-course-next.is-live::before {
	content: "";
	position: absolute;
	top: calc(var(--space-12) + 5px);
	left: var(--space-16);
}

/* Eyebrows inside LearnDash (its base rule sets the body font on p). */
.learndash-wrapper :is(.ga-session__eyebrow, .ga-course-buy__eyebrow),
.ga-course-buy__eyebrow {
	font-family: var(--font-family-label);
}

.ga-course-next__label {
	color: var(--text-accent);
	font-family: var(--font-family-label);
	font-size: var(--font-size-label-md);
	letter-spacing: 1px;
	text-transform: uppercase;
}

.ga-course-next__date {
	color: var(--text-primary);
	font-family: var(--font-family-body);
	font-weight: var(--font-weight-semibold);
}

.ga-course-next--card {
	display: block;
	padding: 0;
	background: none;
	font-size: var(--font-size-body-sm);
}

.ga-course-next--card.is-live {
	padding-left: 18px;
}

.ga-course-next--card.is-live::before {
	top: 6px;
	left: 0;
}

@media (max-width: 767px) {
	.ga-session__card {
		padding: var(--space-24);
	}

	.ga-session__date {
		font-size: var(--font-size-heading-h4);
		line-height: var(--font-line-height-heading-h4);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ga-session__dot,
	.ga-course-next.is-live::before {
		animation: none;
	}
}
