:root{
	--zcc-primary:#2464E8;
	--zcc-primary-dark:#1D55CC;
	--zcc-navy:#1D1D43;
	--zcc-gold:#E5A000;
	--zcc-bg:#F3F7FC;
	--zcc-card:#FFFFFF;
	--zcc-text:#1D2337;
	--zcc-muted:#748096;
	--zcc-line:#E3E9F2;
}

.zcc-catalog-page{
	background:var(--zcc-bg)!important;
}

.zcc-catalog{
	width:min(1440px,calc(100% - 40px));
	margin:34px auto 60px;
	display:grid;
	grid-template-columns:300px minmax(0,1fr);
	gap:28px;
	align-items:start;
	font-family:inherit;
}

.zcc-sidebar{
	position:sticky;
	top:24px;
	align-self:start;
	overflow:hidden;
	border:1px solid var(--zcc-line);
	border-radius:16px;
	background:#fff;
	box-shadow:0 18px 46px rgba(28,39,70,.09);
}

.zcc-filter-head{
	display:flex;
	align-items:center;
	gap:12px;
	padding:24px;
	border-bottom:1px solid var(--zcc-line);
}

.zcc-filter-icon{
	width:38px;
	height:38px;
	display:grid;
	place-items:center;
	border-radius:11px;
	background:rgba(36,100,232,.10);
	color:var(--zcc-primary);
	font-size:23px;
	font-weight:800;
	transform:rotate(90deg);
}

.zcc-filter-head h2{
	margin:0;
	color:var(--zcc-text);
	font-size:22px;
	font-weight:800;
	line-height:1.1;
}

.zcc-filter-head p{
	margin:5px 0 0;
	color:var(--zcc-muted);
	font-size:12px;
}

.zcc-filter-section{
	border-bottom:1px solid var(--zcc-line);
}

.zcc-section-toggle{
	width:100%;
	min-height:64px;
	padding:0 24px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	border:0;
	background:transparent;
	color:var(--zcc-text);
	font:800 14px/1.2 inherit;
	cursor:pointer;
}

.zcc-filter-options{
	display:grid;
	gap:12px;
	padding:0 24px 22px;
}

.zcc-filter-section.is-collapsed .zcc-filter-options{
	display:none;
}

.zcc-check-row,
.zcc-rating-option{
	display:flex;
	align-items:center;
	gap:10px;
	min-height:25px;
	color:#35405A;
	font-size:12px;
	cursor:pointer;
}

.zcc-check-row input,
.zcc-rating-option input{
	position:absolute;
	opacity:0;
	pointer-events:none;
}

.zcc-checkmark{
	width:18px;
	height:18px;
	flex:0 0 18px;
	border:1px solid #D6DFEC;
	border-radius:5px;
	background:#F7F9FC;
	position:relative;
}

.zcc-check-row input:checked + .zcc-checkmark{
	background:var(--zcc-primary);
	border-color:var(--zcc-primary);
}

.zcc-check-row input:checked + .zcc-checkmark::after{
	content:"";
	position:absolute;
	left:5px;
	top:2px;
	width:5px;
	height:9px;
	border:solid #fff;
	border-width:0 2px 2px 0;
	transform:rotate(45deg);
}

.zcc-check-row strong{
	font-weight:700;
}

.zcc-check-row small{
	margin-left:auto;
	min-width:28px;
	padding:4px 7px;
	border-radius:999px;
	background:#F1F4F9;
	color:#718097;
	text-align:center;
	font-size:10px;
}

.zcc-radio{
	width:18px;
	height:18px;
	flex:0 0 18px;
	border:1px solid #D6DFEC;
	border-radius:50%;
	background:#F7F9FC;
}

.zcc-rating-option input:checked + .zcc-radio{
	border:5px solid var(--zcc-primary);
	background:#fff;
}

.zcc-stars{
	color:#F2A544;
	letter-spacing:-2px;
	font-size:14px;
	white-space:nowrap;
}

.zcc-rating-option strong{
	font-size:11px;
}

.zcc-filter-footer{
	padding:20px 24px 24px;
	background:#FBFCFE;
}

.zcc-filter-footer p{
	display:flex;
	align-items:center;
	gap:8px;
	margin:0 0 17px;
	color:#8490A4;
	font-size:10px;
	line-height:1.4;
}

.zcc-filter-footer p span{
	width:7px;
	height:7px;
	border-radius:50%;
	background:var(--zcc-primary);
	box-shadow:0 0 0 5px rgba(36,100,232,.09);
}

.zcc-filter-footer a{
	display:block;
	color:#718097!important;
	font-size:11px;
	text-align:center;
	text-decoration:none!important;
}

.zcc-results{
	min-width:0;
}

.zcc-results-toolbar{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:18px;
	margin:0 0 16px;
}

.zcc-results-toolbar p{
	margin:0;
	color:#4F5B72;
	font-size:13px;
}

.zcc-order-label{
	display:flex;
	align-items:center;
	gap:10px;
	color:#6F7B90;
	font-size:12px;
}

.zcc-orderby{
	min-width:170px;
	height:42px;
	padding:0 38px 0 14px;
	border:1px solid var(--zcc-line);
	border-radius:10px;
	background:#fff;
	color:#303A50;
	font-size:12px;
	box-shadow:0 7px 18px rgba(31,42,68,.06);
}

.zcc-course-grid{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:22px;
}

.zcc-card{
	min-width:0;
	overflow:hidden;
	border:1px solid var(--zcc-line);
	border-radius:14px;
	background:#fff;
	box-shadow:0 13px 34px rgba(28,39,70,.07);
	transition:transform .2s ease,box-shadow .2s ease;
}

.zcc-card:hover{
	transform:translateY(-4px);
	box-shadow:0 18px 42px rgba(28,39,70,.13);
}

.zcc-card-media{
	position:relative;
	display:block;
	aspect-ratio:16/10;
	overflow:hidden;
	background:#E9EEF6;
}

.zcc-card-media img{
	width:100%;
	height:100%;
	display:block;
	object-fit:cover;
	transition:transform .35s ease;
}

.zcc-card:hover .zcc-card-media img{
	transform:scale(1.035);
}

.zcc-category-badge{
	position:absolute;
	left:12px;
	bottom:12px;
	padding:6px 9px;
	border-radius:7px;
	background:rgba(255,255,255,.90);
	backdrop-filter:blur(7px);
	color:#536077;
	font-size:9px;
	font-weight:700;
	text-transform:uppercase;
}

.zcc-bookmark{
	position:absolute;
	right:12px;
	top:12px;
	width:34px;
	height:34px;
	display:grid;
	place-items:center;
	border-radius:9px;
	background:#fff;
	color:#35405A;
	font-size:19px;
	box-shadow:0 8px 18px rgba(20,30,55,.13);
}

.zcc-card-body{
	padding:15px 16px 16px;
}

.zcc-rating-row{
	display:flex;
	align-items:center;
	gap:7px;
	min-height:20px;
}

.zcc-stars{
	color:#F3A32A;
	font-size:15px;
	letter-spacing:-1px;
}

.zcc-rating-number{
	color:#5D687D;
	font-size:11px;
	font-weight:700;
}

.zcc-rating-count{
	color:#9AA4B4;
	font-size:10px;
}

.zcc-card-title{
	margin:8px 0 12px;
	font-size:17px;
	line-height:1.3;
	font-weight:800;
}

.zcc-card-title a{
	color:var(--zcc-text)!important;
	text-decoration:none!important;
}

.zcc-author-row{
	display:flex;
	align-items:center;
	gap:8px;
	color:#6F7A8D;
	font-size:10px;
}

.zcc-author-avatar{
	width:22px;
	height:22px;
	display:grid;
	place-items:center;
	border-radius:50%;
	background:var(--zcc-primary);
	color:#fff;
	font-size:9px;
	font-weight:800;
}

.zcc-card-footer{
	display:flex;
	align-items:flex-end;
	justify-content:space-between;
	gap:12px;
	margin-top:15px;
	padding-top:13px;
	border-top:1px solid #EDF1F6;
}

.zcc-meta-group{
	display:flex;
	flex-wrap:wrap;
	gap:8px 12px;
	color:#6F7B90;
	font-size:9px;
}

.zcc-price{
	margin-left:auto;
	color:var(--zcc-primary);
	font-size:16px;
	font-weight:800;
	white-space:nowrap;
}

.zcc-price del{
	display:none!important;
}

.zcc-price-free{
	color:#19A957;
}

.zcc-pagination{
	margin-top:25px;
}

.zcc-pagination ul{
	display:flex;
	justify-content:center;
	gap:7px;
	margin:0;
	padding:0;
	list-style:none;
}

.zcc-pagination a,
.zcc-pagination span{
	min-width:36px;
	height:36px;
	display:grid;
	place-items:center;
	border:1px solid var(--zcc-line);
	border-radius:8px;
	background:#fff;
	color:#49556B!important;
	text-decoration:none!important;
}

.zcc-pagination .current{
	background:var(--zcc-primary);
	border-color:var(--zcc-primary);
	color:#fff!important;
}

.zcc-empty-state{
	padding:65px 20px;
	border:1px dashed #CCD6E4;
	border-radius:15px;
	background:rgba(255,255,255,.58);
	text-align:center;
}

.zcc-empty-state div{
	font-size:34px;
	color:var(--zcc-primary);
}

.zcc-empty-state h3{
	margin:10px 0 6px;
	color:var(--zcc-text);
}

.zcc-empty-state p{
	margin:0;
	color:var(--zcc-muted);
}

.zcc-mobile-open,
.zcc-mobile-close,
.zcc-overlay{
	display:none;
}

.zcc-filter-form.is-loading{
	opacity:.58;
	pointer-events:none;
}

@media(max-width:1180px){
	.zcc-catalog{
		grid-template-columns:270px minmax(0,1fr);
	}

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

@media(max-width:840px){
	.zcc-catalog{
		display:block;
	}

	.zcc-mobile-open{
		display:inline-flex;
		align-items:center;
		gap:8px;
		margin:0 0 16px;
		padding:11px 16px;
		border:0;
		border-radius:10px;
		background:var(--zcc-primary);
		color:#fff;
		font-weight:800;
		box-shadow:0 10px 22px rgba(36,100,232,.22);
	}

	.zcc-sidebar{
		position:fixed;
		inset:0 auto 0 0;
		z-index:100002;
		width:min(350px,90vw);
		max-height:100vh;
		overflow:auto;
		border-radius:0 16px 16px 0;
		transform:translateX(-105%);
		transition:transform .25s ease;
	}

	.zcc-sidebar.is-open{
		transform:translateX(0);
	}

	.zcc-mobile-close{
		display:block;
		margin-left:auto;
		border:0;
		background:#F1F4FA;
		color:#3A455B;
		width:34px;
		height:34px;
		border-radius:9px;
		font-size:23px;
	}

	.zcc-overlay{
		position:fixed;
		inset:0;
		z-index:100001;
		background:rgba(12,18,34,.56);
		backdrop-filter:blur(2px);
	}

	.zcc-overlay.is-open{
		display:block;
	}
}

@media(max-width:600px){
	.zcc-catalog{
		width:min(100% - 24px,1440px);
		margin-top:20px;
	}

	.zcc-results-toolbar{
		align-items:flex-start;
		flex-direction:column;
	}

	.zcc-course-grid{
		grid-template-columns:1fr;
	}

	.zcc-order-label,
	.zcc-orderby{
		width:100%;
	}
}


/* =========================================================
   v1.1 — plantilla completa y ancho real del catálogo
   ========================================================= */

.zcc-template-main{
	width:100%!important;
	max-width:none!important;
	min-width:0!important;
	margin:0!important;
	padding:0!important;
	background:var(--zcc-bg)!important;
}

.zcc-catalog-page .site-content,
.zcc-catalog-page .ast-container,
.zcc-catalog-page .content-area,
.zcc-catalog-page .site-main,
.zcc-catalog-page article,
.zcc-catalog-page .entry-content{
	width:100%!important;
	max-width:none!important;
	min-width:0!important;
	margin:0!important;
	padding-left:0!important;
	padding-right:0!important;
}

.zcc-catalog-page .sidebar-main,
.zcc-catalog-page #secondary{
	display:none!important;
}

.zcc-catalog{
	width:min(1440px,calc(100% - 48px))!important;
	grid-template-columns:300px minmax(0,1fr)!important;
}

.zcc-results{
	width:100%!important;
	max-width:none!important;
	min-width:0!important;
}

.zcc-course-grid{
	width:100%!important;
	grid-template-columns:repeat(3,minmax(0,1fr))!important;
}

.zcc-card{
	width:100%!important;
	max-width:none!important;
	min-width:0!important;
}

@media(max-width:1180px){
	.zcc-course-grid{
		grid-template-columns:repeat(2,minmax(0,1fr))!important;
	}
}

@media(max-width:600px){
	.zcc-course-grid{
		grid-template-columns:1fr!important;
	}
}


/* v1.2: categorías reales creadas dentro de Tutor LMS */
.zcc-check-row small{
	display:inline-grid;
	place-items:center;
}

.zcc-check-row small:empty::before{
	content:"0";
}
