/**
 * Catálogo de cursos Sensuum.
 *
 * As cores seguem a paleta global do Elementor do site, para o catálogo
 * encaixar no design existente sem depender de estilos inline.
 */

.sc-catalog,
.sc-course {
	--sc-ink: #0d2724;
	--sc-ink-soft: #23453f;
	--sc-text: #4a4a4a;
	--sc-accent: #c4ac5e;
	--sc-accent-dark: #a89044;
	--sc-surface: #ffffff;
	--sc-surface-alt: #f7f5f0;
	--sc-surface-mint: #eef3f1;
	--sc-surface-cream: #f2ecd8;
	--sc-border: #d8d4cb;
	--sc-radius: 10px;
	--sc-gap: 28px;
	--sc-shadow: 0 1px 2px rgba(13, 39, 36, .06), 0 8px 24px rgba(13, 39, 36, .07);

	color: var(--sc-text);
	font-family: inherit;
}

.sc-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

/* --- Filtros ------------------------------------------------------------ */

.sc-filters {
	background: var(--sc-surface-alt);
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius);
	padding: 18px 20px;
	margin-bottom: var(--sc-gap);
}

.sc-filters__row {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	align-items: flex-end;
}

.sc-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex: 1 1 170px;
	min-width: 0;
}

.sc-field--search {
	flex: 2 1 240px;
}

.sc-field__label {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--sc-ink);
}

.sc-field input,
.sc-field select {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--sc-border);
	border-radius: 6px;
	background: var(--sc-surface);
	color: var(--sc-text);
	font-size: 15px;
	line-height: 1.3;
}

.sc-field input:focus,
.sc-field select:focus {
	outline: 2px solid var(--sc-accent);
	outline-offset: 1px;
	border-color: var(--sc-accent);
}

/* --- Grelha ------------------------------------------------------------- */

.sc-grid {
	display: grid;
	gap: var(--sc-gap);
	grid-template-columns: repeat(var(--sc-columns, 3), minmax(0, 1fr));
}

.sc-cols-1 .sc-grid { --sc-columns: 1; }
.sc-cols-2 .sc-grid { --sc-columns: 2; }
.sc-cols-3 .sc-grid { --sc-columns: 3; }
.sc-cols-4 .sc-grid { --sc-columns: 4; }

@media (max-width: 1024px) {
	.sc-cols-3 .sc-grid,
	.sc-cols-4 .sc-grid { --sc-columns: 2; }
}

@media (max-width: 680px) {
	.sc-grid { --sc-columns: 1 !important; }
}

/* --- Cartão ------------------------------------------------------------- */

.sc-card {
	display: flex;
	flex-direction: column;
	background: var(--sc-surface);
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius);
	overflow: hidden;
	transition: transform .18s ease, box-shadow .18s ease;
}

.sc-card:hover,
.sc-card:focus-within {
	transform: translateY(-3px);
	box-shadow: var(--sc-shadow);
}

.sc-card__media {
	position: relative;
	display: block;
	aspect-ratio: 16 / 10;
	background: var(--sc-surface-mint);
	overflow: hidden;
}

.sc-card__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.sc-card__image--placeholder {
	display: block;
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, var(--sc-surface-mint), var(--sc-surface-cream));
}

.sc-badge {
	position: absolute;
	top: 12px;
	padding: 4px 10px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .02em;
	line-height: 1.5;
}

.sc-badge--type {
	left: 12px;
	background: var(--sc-ink);
	color: #fff;
}

.sc-badge--price {
	right: 12px;
	background: var(--sc-accent);
	color: var(--sc-ink);
}

.sc-badge--price.is-free {
	background: var(--sc-ink);
	color: var(--sc-accent);
}

.sc-badge--price .amount,
.sc-badge--price bdi {
	color: inherit;
	font-weight: 700;
}

.sc-card__body {
	padding: 18px 20px 6px;
	flex: 1 1 auto;
}

.sc-card__title {
	margin: 0 0 12px;
	font-size: 18px;
	line-height: 1.32;
	font-weight: 700;
	color: var(--sc-ink);
}

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

.sc-card__title a:hover {
	color: var(--sc-ink-soft);
}

/* --- Meta com ícones ---------------------------------------------------- */

.sc-meta {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 7px;
}

.sc-meta__item {
	position: relative;
	padding-left: 24px;
	font-size: 13.5px;
	line-height: 1.45;
	color: var(--sc-text);
}

.sc-meta__item::before {
	content: "";
	position: absolute;
	left: 0;
	top: 2px;
	width: 16px;
	height: 16px;
	background-color: var(--sc-accent);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
}

.sc-meta__item--area::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M3 6l6-3 6 3 6-3v15l-6 3-6-3-6 3V6zm6-.8L5 6.9v11.9l4-1.7V5.2zm2 11.9l4 1.7V6.9l-4-1.7v11.9z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M3 6l6-3 6 3 6-3v15l-6 3-6-3-6 3V6zm6-.8L5 6.9v11.9l4-1.7V5.2zm2 11.9l4 1.7V6.9l-4-1.7v11.9z'/%3E%3C/svg%3E");
}

.sc-meta__item--date::before,
.sc-meta__item--schedule::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M7 2v2h10V2h2v2h2a1 1 0 011 1v16a1 1 0 01-1 1H3a1 1 0 01-1-1V5a1 1 0 011-1h2V2h2zm13 8H4v10h16V10z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M7 2v2h10V2h2v2h2a1 1 0 011 1v16a1 1 0 01-1 1H3a1 1 0 01-1-1V5a1 1 0 011-1h2V2h2zm13 8H4v10h16V10z'/%3E%3C/svg%3E");
}

.sc-meta__item--clock::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2a10 10 0 110 20 10 10 0 010-20zm1 5h-2v6l5 3 1-1.7-4-2.3V7z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2a10 10 0 110 20 10 10 0 010-20zm1 5h-2v6l5 3 1-1.7-4-2.3V7z'/%3E%3C/svg%3E");
}

.sc-meta__item--place::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2a7 7 0 017 7c0 5.25-7 13-7 13S5 14.25 5 9a7 7 0 017-7zm0 4.5A2.5 2.5 0 1012 11.5 2.5 2.5 0 0012 6.5z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2a7 7 0 017 7c0 5.25-7 13-7 13S5 14.25 5 9a7 7 0 017-7zm0 4.5A2.5 2.5 0 1012 11.5 2.5 2.5 0 0012 6.5z'/%3E%3C/svg%3E");
}

/* --- Botões ------------------------------------------------------------- */

.sc-card__footer {
	display: flex;
	gap: 10px;
	padding: 16px 20px 20px;
}

.sc-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 11px 18px;
	border-radius: 6px;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	border: 2px solid transparent;
	cursor: pointer;
	transition: background-color .16s ease, color .16s ease, border-color .16s ease;
}

.sc-button--solid {
	background: var(--sc-accent);
	border-color: var(--sc-accent);
	color: var(--sc-ink);
}

.sc-button--solid:hover,
.sc-button--solid:focus {
	background: var(--sc-accent-dark);
	border-color: var(--sc-accent-dark);
	color: #fff;
}

.sc-button--ghost {
	background: transparent;
	border-color: var(--sc-border);
	color: var(--sc-ink);
}

.sc-button--ghost:hover,
.sc-button--ghost:focus {
	border-color: var(--sc-ink);
	background: var(--sc-surface-alt);
	color: var(--sc-ink);
}

.sc-course__notice {
	margin: 0;
	padding: 12px 14px;
	border: 1px solid var(--sc-border);
	border-radius: 6px;
	background: var(--sc-surface-cream);
	color: var(--sc-text);
	font-size: 0.95em;
	text-align: center;
}

.sc-button--block {
	display: flex;
	width: 100%;
	margin-top: 10px;
}

.sc-card__footer .sc-button {
	flex: 1 1 0;
}

/* --- Estados e paginação ------------------------------------------------ */

.sc-empty {
	background: var(--sc-surface-alt);
	border: 1px dashed var(--sc-border);
	border-radius: var(--sc-radius);
	padding: 32px;
	text-align: center;
	color: var(--sc-ink);
	font-weight: 600;
}

.sc-catalog__title {
	margin: 0 0 20px;
	color: var(--sc-ink);
}

.sc-pagination {
	margin-top: var(--sc-gap);
	display: flex;
	justify-content: center;
}

.sc-pagination .page-numbers {
	display: inline-block;
	padding: 8px 14px;
	margin: 0 3px;
	border: 1px solid var(--sc-border);
	border-radius: 6px;
	color: var(--sc-ink);
	text-decoration: none;
	font-weight: 600;
}

.sc-pagination .page-numbers.current,
.sc-pagination .page-numbers:hover {
	background: var(--sc-ink);
	border-color: var(--sc-ink);
	color: #fff;
}

/* --- Página do curso ---------------------------------------------------- */

.sc-course__header {
	border-bottom: 1px solid var(--sc-border);
	padding-bottom: 18px;
	margin-bottom: 28px;
}

.sc-course__eyebrow {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin: 0 0 12px;
}

.sc-course__eyebrow .sc-badge {
	position: static;
}

.sc-badge--regime {
	background: var(--sc-surface-cream);
	color: var(--sc-ink);
}

.sc-badge--regime.is-free {
	background: var(--sc-ink);
	color: var(--sc-accent);
}

.sc-course__code {
	font-size: 13px;
	font-weight: 600;
	color: var(--sc-text);
	letter-spacing: .04em;
}

.sc-course__title {
	margin: 0;
	font-size: clamp(26px, 3.4vw, 38px);
	line-height: 1.18;
	font-weight: 700;
	color: var(--sc-ink);
}

.sc-course__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	gap: 40px;
	align-items: start;
}

@media (max-width: 900px) {
	.sc-course__layout {
		grid-template-columns: minmax(0, 1fr);
	}
}

.sc-course__aside {
	order: 2;
	position: sticky;
	top: 24px;
}

@media (max-width: 900px) {
	.sc-course__aside {
		position: static;
		order: 0;
	}
}

.sc-course__image {
	margin: 0 0 18px;
	border-radius: var(--sc-radius);
	overflow: hidden;
}

.sc-course__image img {
	display: block;
	width: 100%;
	height: auto;
}

.sc-course__facts {
	background: var(--sc-surface-alt);
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius);
	padding: 20px;
}

.sc-course__facts dl {
	margin: 0 0 6px;
}

.sc-fact {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 14px;
	padding: 9px 0;
	border-bottom: 1px solid var(--sc-border);
}

.sc-fact:last-of-type {
	border-bottom: 0;
}

.sc-fact dt {
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .03em;
	color: var(--sc-ink);
	margin: 0;
	flex: 0 0 auto;
}

.sc-fact dd {
	margin: 0;
	text-align: right;
	font-size: 14.5px;
	color: var(--sc-text);
}

.sc-course__price {
	font-size: 20px !important;
	font-weight: 700;
	color: var(--sc-ink) !important;
}

.sc-course__price.is-free {
	color: var(--sc-ink-soft) !important;
}

.sc-course__content {
	order: 1;
	min-width: 0;
}

.sc-course__block {
	margin-bottom: 30px;
}

.sc-course__block h2 {
	margin: 0 0 10px;
	font-size: 21px;
	font-weight: 700;
	color: var(--sc-ink);
	padding-bottom: 8px;
	border-bottom: 2px solid var(--sc-accent);
	display: inline-block;
}

.sc-course__block p {
	margin: 0 0 12px;
	line-height: 1.65;
}

.sc-course__block ul,
.sc-course__block ol {
	margin: 0 0 12px 20px;
	line-height: 1.65;
}

/* --- Arquivo ------------------------------------------------------------ */

.sc-archive__header {
	margin: 32px 0 26px;
}

.sc-archive__title {
	margin: 0 0 8px;
	color: #0d2724;
}
