/* Category Grid Plus */
.cgp-wrap {
	--cgp-columns: 3;
	--cgp-col-gap: 20px;
	--cgp-row-gap: 20px;
	--cgp-ratio: 1;
	--cgp-zoom: 1;
	width: 100%;
}

/* ---------- Rejilla ---------- */
.cgp-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--cgp-row-gap) var(--cgp-col-gap);
}
.cgp-grid > .cgp-item {
	flex: 0 0 calc((100% - (var(--cgp-columns) - 1) * var(--cgp-col-gap)) / var(--cgp-columns));
	max-width: calc((100% - (var(--cgp-columns) - 1) * var(--cgp-col-gap)) / var(--cgp-columns));
	min-width: 0;
}

/* ---------- Tarjeta ---------- */
.cgp-item {
	position: relative;
	box-sizing: border-box;
}
.cgp-inner {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	box-sizing: border-box;
	transition: background-color .3s, box-shadow .3s, border-color .3s;
}

.cgp-thumb {
	position: relative;
	overflow: hidden;
	line-height: 0;
	box-sizing: border-box;
}
.cgp-thumb a { display: block; }
.cgp-thumb img {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	aspect-ratio: var(--cgp-ratio);
	object-fit: cover;
	transition: transform .4s ease, filter .3s ease;
}
.cgp-item:hover .cgp-thumb img { transform: scale(var(--cgp-zoom)); }

.cgp-overlay,
.cgp-overlay-hover {
	position: absolute;
	inset: 0;
	pointer-events: none;
	transition: opacity .3s ease;
}
.cgp-overlay-hover { opacity: 0; }
.cgp-item:hover .cgp-overlay-hover { opacity: 1; }

.cgp-content { position: relative; z-index: 1; }

.cgp-title {
	margin: 10px 0 0;
	text-align: center;
	word-break: break-word;
	transition: color .3s;
}
.cgp-title a {
	color: inherit;
	text-decoration: none;
	transition: color .3s;
}

.cgp-count-wrap { text-align: center; }
.cgp-count { display: inline-block; }
.cgp-count-wrap--on-image {
	position: absolute;
	top: 8px;
	right: 8px;
	z-index: 2;
	line-height: normal;
}

.cgp-desc { text-align: center; margin-top: 6px; }

.cgp-link-overlay {
	position: absolute;
	inset: 0;
	z-index: 3;
}

.cgp-empty {
	padding: 20px;
	text-align: center;
	border: 1px dashed #ccc;
	color: #777;
}

/* ---------- Carrusel ---------- */
.cgp-carousel { position: relative; }
.cgp-swiper {
	position: relative;
	overflow: hidden;
}
/* Respaldo por si la hoja de Swiper no se carga */
.cgp-swiper .swiper-wrapper {
	display: flex;
	box-sizing: content-box;
	position: relative;
	width: 100%;
	height: auto;
	z-index: 1;
}
.cgp-swiper .swiper-slide {
	flex-shrink: 0;
	height: auto;
	position: relative;
}

.cgp-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 5;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	font-size: 22px;
	line-height: 1;
	color: #401C10;
	fill: #401C10;
	cursor: pointer;
	user-select: none;
	transition: color .3s, background-color .3s, opacity .3s;
}
.cgp-arrow svg { width: 22px; height: 22px; }
.cgp-arrow--prev { left: 0; }
.cgp-arrow--next { right: 0; }
.cgp-arrow.swiper-button-disabled { opacity: .35; cursor: default; }
.cgp-arrow.swiper-button-lock { display: none; }

.cgp-dots {
	position: static !important;
	display: flex;
	justify-content: center;
	margin-top: 15px;
	width: 100% !important;
	transform: none !important;
}
.cgp-dots .swiper-pagination-bullet {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #401C10;
	opacity: .35;
	margin: 0 2.5px;
	cursor: pointer;
}
.cgp-dots .swiper-pagination-bullet-active { opacity: 1; }
