.afcc-catalog,
.afcc-catalog * {
	box-sizing: border-box;
}

.afcc-catalog {
	--afcc-primary: #002b5b;
	--afcc-accent: #d59b2d;
	--afcc-text: #0a2142;
	--afcc-muted: #607089;
	--afcc-border: #dde4ec;
	--afcc-surface: #fff;
	--afcc-page: #fff;
	--afcc-columns: 3;
	--afcc-grid-gap: 22px;
	--afcc-sidebar-width: 272px;
	--afcc-image-height: 206px;
	--afcc-control-height: 48px;
	--afcc-control-radius: 5px;
	--afcc-card-radius: 6px;
	position: relative;
	width: 100%;
	margin: 0 auto;
	color: var(--afcc-text);
	background: var(--afcc-page);
	font-family: inherit;
	line-height: 1.45;
}

/* Full-bleed is enabled by default from the Elementor switch. */
.elementor-widget-academia_fenix_catalogo_cursos.afcc-full-width-yes {
	width: 100vw;
	max-width: 100vw;
	margin-inline: calc(50% - 50vw);
}

.elementor-widget-academia_fenix_catalogo_cursos.afcc-full-width-yes > .elementor-widget-container,
.elementor-widget-academia_fenix_catalogo_cursos.afcc-full-width-yes .afcc-catalog {
	width: 100%;
	max-width: none;
}

.afcc-catalog button,
.afcc-catalog input,
.afcc-catalog select {
	font: inherit;
}

.afcc-catalog button,
.afcc-catalog select {
	cursor: pointer;
}

.afcc-catalog button:focus-visible,
.afcc-catalog input:focus-visible,
.afcc-catalog select:focus-visible,
.afcc-catalog a:focus-visible {
	outline: 3px solid color-mix(in srgb, var(--afcc-accent) 60%, transparent);
	outline-offset: 2px;
}

.afcc-catalog svg {
	display: block;
	width: 1.2em;
	height: 1.2em;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.afcc-catalog .sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.afcc-catalog__form {
	margin: 0;
}

.afcc-top-filters {
	margin-bottom: 28px;
}

.afcc-search {
	display: flex;
	align-items: center;
	width: 54%;
	min-width: 420px;
	height: var(--afcc-control-height);
	margin-bottom: 16px;
	padding: 0 16px;
	color: #8190a5;
	background: var(--afcc-surface);
	border: 1px solid var(--afcc-border);
	border-radius: var(--afcc-control-radius);
	transition: border-color 180ms ease, box-shadow 180ms ease;
}

.afcc-search:focus-within {
	border-color: var(--afcc-primary);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--afcc-primary) 10%, transparent);
}

.afcc-search svg {
	flex: 0 0 auto;
	width: 19px;
	height: 19px;
	margin-right: 11px;
}

.afcc-search input {
	width: 100%;
	height: 100%;
	padding: 0;
	color: var(--afcc-text);
	background: transparent;
	border: 0;
	outline: 0;
}

.afcc-search input::placeholder {
	color: #8190a5;
	opacity: 1;
}

.afcc-search input::-webkit-search-cancel-button {
	cursor: pointer;
}

.afcc-top-filters__row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(128px, 1fr));
	gap: 14px;
}

.afcc-select {
	position: relative;
	display: block;
	min-width: 0;
}

.afcc-select select {
	width: 100%;
	height: var(--afcc-control-height);
	padding: 0 42px 0 15px;
	color: var(--afcc-text);
	background: var(--afcc-surface);
	border: 1px solid var(--afcc-border);
	border-radius: var(--afcc-control-radius);
	-webkit-appearance: none;
	appearance: none;
	text-overflow: ellipsis;
	transition: border-color 180ms ease, box-shadow 180ms ease;
}

.afcc-select select:hover,
.afcc-select select:focus {
	border-color: color-mix(in srgb, var(--afcc-primary) 65%, var(--afcc-border));
}

.afcc-select > svg {
	position: absolute;
	top: 50%;
	right: 14px;
	width: 16px;
	height: 16px;
	pointer-events: none;
	transform: translateY(-50%);
}

.afcc-catalog__layout {
	display: grid;
	grid-template-columns: var(--afcc-sidebar-width) minmax(0, 1fr);
	gap: 32px;
	align-items: start;
}

.afcc-sidebar {
	position: relative;
	z-index: 3;
	width: 100%;
	background: var(--afcc-surface);
	border: 1px solid var(--afcc-border);
	border-radius: 6px;
	box-shadow: 0 4px 18px rgba(16, 41, 74, 0.06);
	overflow: hidden;
}

.afcc-sidebar__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 60px;
	padding: 0 19px;
	font-size: 18px;
	border-bottom: 1px solid var(--afcc-border);
}

.afcc-sidebar__close {
	display: none;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	padding: 0;
	color: var(--afcc-text);
	background: transparent;
	border: 0;
}

.afcc-filter-group {
	display: block;
	min-inline-size: 0;
	min-width: 0;
	width: 100%;
	margin: 0;
	padding: 20px 18px;
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--afcc-border);
}

.afcc-filter-group > legend,
.afcc-filter-group__title {
	display: block;
	float: none;
	width: 100%;
	max-width: none;
	margin: 0 0 14px;
	padding: 0;
	color: var(--afcc-text);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.3;
	text-align: left;
}

.afcc-filter-group__title {
	font-family: inherit;
}

.afcc-filter-group__options {
	display: grid;
	gap: 10px;
	width: 100%;
}

.afcc-filter-option {
	position: relative;
	display: flex;
	gap: 8px;
	align-items: center;
	width: 100%;
	min-height: 20px;
	margin: 0;
	padding: 0;
	color: var(--afcc-muted);
	font-size: 12.5px;
	font-weight: 400;
	line-height: 1.35;
	text-align: left;
	text-decoration: none;
	cursor: pointer;
}

.afcc-filter-option[hidden] {
	display: none;
}

.afcc-filter-option input {
	position: absolute;
	top: 50%;
	left: 0;
	width: 1px;
	height: 1px;
	margin: 0;
	padding: 0;
	opacity: 0;
	transform: translateY(-50%);
	pointer-events: none;
}

.afcc-filter-option__control {
	display: block;
	flex: 0 0 15px;
	width: 15px;
	height: 15px;
	margin: 0;
	padding: 0;
	background: #fff;
	border: 1px solid #aeb9c7;
	border-radius: 2px;
	transition: background 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.afcc-filter-option input[type="radio"] + .afcc-filter-option__control {
	border-radius: 50%;
}

.afcc-filter-option input:checked + .afcc-filter-option__control {
	background: var(--afcc-primary);
	border-color: var(--afcc-primary);
	box-shadow: inset 0 0 0 3px #fff;
}

.afcc-filter-option input[type="checkbox"]:checked + .afcc-filter-option__control {
	background-color: var(--afcc-primary);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='m2.5 6 2.1 2.1L9.5 3.5' fill='none' stroke='white' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	box-shadow: none;
}

.afcc-filter-option input:focus-visible + .afcc-filter-option__control {
	outline: 3px solid color-mix(in srgb, var(--afcc-accent) 55%, transparent);
	outline-offset: 2px;
}

.afcc-filter-option input:disabled ~ span {
	opacity: 0.45;
}

.afcc-filter-option:has(input:disabled) {
	cursor: not-allowed;
}

.afcc-filter-option__label {
	display: block;
	flex: 1 1 auto;
	min-width: 0;
	overflow-wrap: anywhere;
}

.afcc-filter-option__count {
	display: block;
	flex: 0 0 auto;
	min-width: 2ch;
	margin-left: auto;
	color: #6f7d90;
	line-height: inherit;
	text-align: right;
	font-variant-numeric: tabular-nums;
}

.afcc-filter-option--rating {
	display: flex;
}

.afcc-stars {
	display: block;
	flex: 1 1 auto;
	min-width: 0;
	color: var(--afcc-accent);
	font-size: 13px;
	letter-spacing: 1px;
	white-space: nowrap;
}

.afcc-show-more {
	margin: 12px 0 0 23px;
	padding: 0;
	color: var(--afcc-primary);
	background: transparent;
	border: 0;
	font-size: 12px;
	font-weight: 600;
	text-align: left;
}

.afcc-clear-filters {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: calc(100% - 36px);
	min-height: 43px;
	margin: 20px 18px;
	padding: 8px 14px;
	color: var(--afcc-primary);
	background: #fff;
	border: 1px solid var(--afcc-primary);
	border-radius: 4px;
	font-size: 13px;
	font-weight: 700;
	transition: color 160ms ease, background 160ms ease, transform 160ms ease;
}

.afcc-clear-filters:hover {
	color: #fff;
	background: var(--afcc-primary);
	transform: translateY(-1px);
}

.afcc-clear-filters svg {
	width: 17px;
	height: 17px;
}

.afcc-catalog__results {
	min-width: 0;
}

.afcc-catalog__results-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 42px;
	margin-bottom: 15px;
}

.afcc-results-count {
	margin: 0;
	color: var(--afcc-muted);
	font-size: 13px;
	font-variant-numeric: tabular-nums;
}

.afcc-view-switch {
	display: inline-flex;
	gap: 8px;
	margin-left: auto;
}

.afcc-view-switch__button,
.afcc-mobile-filter {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	color: #7b899b;
	background: #fff;
	border: 1px solid var(--afcc-border);
	border-radius: 4px;
}

.afcc-view-switch__button {
	width: 34px;
	height: 34px;
}

.afcc-view-switch__button svg {
	width: 17px;
	height: 17px;
}

.afcc-view-switch__button.is-active {
	color: var(--afcc-primary);
	background: color-mix(in srgb, var(--afcc-primary) 6%, #fff);
	border-color: color-mix(in srgb, var(--afcc-primary) 45%, var(--afcc-border));
}

.afcc-mobile-filter {
	display: none;
	gap: 7px;
	min-height: 38px;
	padding: 0 13px;
	color: var(--afcc-primary);
	font-weight: 700;
}

.afcc-mobile-filter__count {
	min-width: 20px;
	height: 20px;
	padding: 0 5px;
	color: #fff;
	background: var(--afcc-primary);
	border-radius: 999px;
	font-size: 11px;
	line-height: 20px;
}

.afcc-catalog__stage {
	position: relative;
	min-height: 240px;
}

.afcc-course-grid {
	display: grid;
	grid-template-columns: repeat(var(--afcc-columns), minmax(0, 1fr));
	gap: var(--afcc-grid-gap);
	transition: opacity 160ms ease, transform 160ms ease;
}

.afcc-catalog__stage[aria-busy="true"] .afcc-course-grid {
	opacity: 0.38;
	transform: translateY(4px);
	pointer-events: none;
}

.afcc-loader {
	position: absolute;
	top: 100px;
	left: 50%;
	z-index: 4;
	display: flex;
	gap: 6px;
	opacity: 0;
	pointer-events: none;
	transform: translate(-50%, -50%);
	transition: opacity 120ms ease;
}

.afcc-catalog__stage[aria-busy="true"] .afcc-loader {
	opacity: 1;
}

.afcc-loader span {
	width: 9px;
	height: 9px;
	background: var(--afcc-primary);
	border-radius: 50%;
	animation: afcc-loader 760ms ease-in-out infinite alternate;
}

.afcc-loader span:nth-child(2) {
	animation-delay: 120ms;
}

.afcc-loader span:nth-child(3) {
	animation-delay: 240ms;
}

@keyframes afcc-loader {
	to {
		opacity: 0.28;
		transform: translateY(-7px);
	}
}

.afcc-course-card {
	position: relative;
	display: flex;
	min-width: 0;
	min-height: 100%;
	flex-direction: column;
	overflow: hidden;
	background: var(--afcc-surface);
	border: 1px solid var(--afcc-border);
	border-radius: var(--afcc-card-radius);
	box-shadow: 0 4px 18px rgba(16, 41, 74, 0.08);
	transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.afcc-course-card:hover {
	border-color: color-mix(in srgb, var(--afcc-primary) 25%, var(--afcc-border));
	box-shadow: 0 11px 28px rgba(16, 41, 74, 0.13);
	transform: translateY(-3px);
}

.afcc-course-card__media {
	position: relative;
	display: block;
	height: var(--afcc-image-height);
	overflow: hidden;
	background: #eaf0f7;
}

.afcc-course-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 420ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.afcc-course-card:hover .afcc-course-card__media img {
	transform: scale(1.035);
}

.afcc-course-card__badge {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 1;
	padding: 6px 11px;
	color: #fff;
	background: var(--afcc-primary);
	border-radius: 4px;
	box-shadow: 0 3px 10px rgba(0, 0, 0, 0.18);
	font-size: 11px;
	font-weight: 700;
}

.afcc-course-card__badge--gold {
	background: var(--afcc-accent);
}

.afcc-course-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 16px 16px 15px;
}

.afcc-course-card__title {
	min-height: 2.7em;
	margin: 0 0 14px;
	color: var(--afcc-text);
	font-size: 17px;
	font-weight: 750;
	line-height: 1.3;
}

.afcc-course-card__title a {
	color: inherit;
	text-decoration: none;
}

.afcc-course-card__title a:hover {
	color: var(--afcc-primary);
}

.afcc-course-card__author {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 11px;
	color: var(--afcc-muted);
	font-size: 12px;
}

.afcc-course-card__avatar {
	width: 22px;
	height: 22px;
	border-radius: 50%;
	object-fit: cover;
}

.afcc-course-card__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 17px;
	color: var(--afcc-muted);
	font-size: 11px;
}

.afcc-course-card__rating,
.afcc-course-card__duration {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	white-space: nowrap;
}

.afcc-course-card__rating .afcc-stars {
	font-size: 11px;
	letter-spacing: 0.5px;
}

.afcc-course-card__duration svg {
	width: 14px;
	height: 14px;
}

.afcc-course-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: auto;
}

.afcc-course-card__price {
	color: var(--afcc-primary);
	font-size: 18px;
	font-weight: 800;
}

.afcc-course-card__price del {
	margin-right: 5px;
	color: var(--afcc-muted);
	font-size: 12px;
	font-weight: 500;
}

.afcc-course-card__price ins {
	color: inherit;
	text-decoration: none;
}

.afcc-course-card__action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 35px;
	height: 35px;
	padding: 0;
	color: var(--afcc-primary);
	font: inherit;
	background: #fff;
	border: 1px solid var(--afcc-primary);
	border-radius: 4px;
	appearance: none;
	cursor: pointer;
	text-decoration: none;
	transition: color 160ms ease, background 160ms ease, opacity 160ms ease, transform 160ms ease;
}

.afcc-course-card__action:hover {
	color: #fff;
	background: var(--afcc-primary);
	transform: translateY(-1px);
}

.afcc-course-card__action.is-added {
	color: #fff;
	background: var(--afcc-primary);
}

.afcc-course-card__action.is-loading,
.afcc-course-card__action:disabled {
	opacity: 0.58;
	cursor: wait;
	transform: none;
}

.afcc-course-card__action svg {
	width: 18px;
	height: 18px;
}

.afcc-course-grid.is-list {
	grid-template-columns: 1fr;
}

.afcc-course-grid.is-list .afcc-course-card {
	display: grid;
	grid-template-columns: minmax(220px, 34%) minmax(0, 1fr);
	min-height: 230px;
}

.afcc-course-grid.is-list .afcc-course-card__media {
	height: 100%;
	min-height: 230px;
}

.afcc-course-grid.is-list .afcc-course-card__title {
	min-height: 0;
	font-size: 20px;
}

.afcc-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 40px;
	margin-top: 30px;
}

.afcc-pagination:empty {
	display: none;
}

.afcc-pagination__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 35px;
	height: 35px;
	padding: 0 9px;
	color: var(--afcc-text);
	background: #fff;
	border: 1px solid var(--afcc-border);
	border-radius: 4px;
	font-size: 13px;
	font-weight: 600;
	transition: color 150ms ease, background 150ms ease, border-color 150ms ease;
}

.afcc-pagination__button:hover:not(:disabled),
.afcc-pagination__button.is-active {
	color: #fff;
	background: var(--afcc-primary);
	border-color: var(--afcc-primary);
}

.afcc-pagination__button:disabled {
	opacity: 0.4;
	cursor: not-allowed;
}

.afcc-pagination__arrow svg {
	width: 16px;
	height: 16px;
}

.afcc-pagination__ellipsis {
	padding: 0 2px;
	color: var(--afcc-muted);
}

.afcc-empty {
	grid-column: 1 / -1;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 310px;
	padding: 34px;
	flex-direction: column;
	color: var(--afcc-muted);
	background: color-mix(in srgb, var(--afcc-primary) 3%, #fff);
	border: 1px dashed var(--afcc-border);
	border-radius: var(--afcc-card-radius);
	text-align: center;
}

.afcc-empty > svg {
	width: 56px;
	height: 56px;
	margin-bottom: 16px;
	color: var(--afcc-primary);
}

.afcc-empty strong {
	color: var(--afcc-text);
	font-size: 17px;
}

.afcc-clear-filters--inline {
	width: auto;
	margin: 18px 0 0;
}

.afcc-sidebar-backdrop {
	position: fixed;
	inset: 0;
	z-index: 9988;
	background: rgba(0, 21, 52, 0.52);
	backdrop-filter: blur(2px);
}

.afcc-dependency {
	padding: 22px;
	color: #6b4c00;
	background: #fff8dc;
	border: 1px solid #e8cf78;
	border-radius: 6px;
}

@media (max-width: 1100px) {
	.afcc-catalog__layout {
		grid-template-columns: minmax(0, 1fr);
		gap: 0;
	}

	.afcc-sidebar {
		position: fixed;
		top: 0;
		left: 0;
		z-index: 9990;
		width: min(88vw, 350px);
		height: 100dvh;
		overflow-y: auto;
		overflow-x: hidden;
		border: 0;
		border-radius: 0 8px 8px 0;
		box-shadow: 12px 0 36px rgba(0, 21, 52, 0.2);
		transform: translateX(-104%);
		visibility: hidden;
		transition: transform 230ms ease, visibility 230ms step-end;
	}

	.afcc-catalog.is-filter-open .afcc-sidebar {
		transform: translateX(0);
		visibility: visible;
		transition: transform 230ms ease, visibility 0s;
	}

	.afcc-sidebar__header {
		position: sticky;
		top: 0;
		z-index: 2;
		background: var(--afcc-surface);
	}

	.afcc-sidebar__close,
	.afcc-mobile-filter {
		display: inline-flex;
	}

	.afcc-catalog.is-filter-open + .afcc-sidebar-backdrop,
	.afcc-sidebar-backdrop:not([hidden]) {
		display: block;
	}

	body.afcc-lock-scroll {
		overflow: hidden;
	}
}

@media (max-width: 767px) {
	.afcc-search {
		width: 100%;
		min-width: 0;
	}

	.afcc-top-filters__row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}

	.afcc-catalog__results-bar {
		flex-wrap: wrap;
	}

	.afcc-results-count {
		order: 3;
		width: 100%;
	}

	.afcc-course-card__meta {
		align-items: flex-start;
		flex-direction: column;
	}

	.afcc-course-grid.is-list .afcc-course-card {
		display: flex;
		min-height: 0;
	}

	.afcc-course-grid.is-list .afcc-course-card__media {
		height: var(--afcc-image-height);
		min-height: 0;
	}
}

@media (max-width: 520px) {
	.afcc-catalog {
		--afcc-columns: 1;
	}

	.afcc-top-filters {
		margin-bottom: 22px;
	}

	.afcc-top-filters__row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.afcc-select select {
		padding-right: 34px;
		padding-left: 11px;
		font-size: 13px;
	}

	.afcc-select > svg {
		right: 10px;
	}

	.afcc-select--order {
		grid-column: 1 / -1;
	}

	.afcc-course-card__title {
		font-size: 18px;
	}

	.afcc-pagination {
		gap: 5px;
	}

	.afcc-pagination__button {
		min-width: 33px;
		height: 33px;
		padding: 0 7px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.afcc-catalog *,
	.afcc-catalog *::before,
	.afcc-catalog *::after {
		scroll-behavior: auto !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}
