/* ==========================================================================
 * Impulzo Core - Widget: Sección Proyectos (seccion-proyectos-style.css)
 * Encapsulado bajo .impulzo-seccion-proyectos-container
 * ========================================================================== */

.impulzo-seccion-proyectos-container {
	--impulzo-sp-max-width: 1140px;
	--impulzo-sp-min-height: 0px;
	--impulzo-sp-container-padding: 20px 20px 30px 20px;
	--impulzo-sp-cols: 2;
	--impulzo-sp-gap-x: 32px;
	--impulzo-sp-gap-y: 36px;
	--impulzo-sp-card-direction: column;
	--impulzo-sp-card-min-height: 510px;
	--impulzo-sp-card-radius: 0px;

	/* Imagen y División */
	--impulzo-sp-split-height: 285px;
	--impulzo-sp-img-fit: cover;
	--impulzo-sp-img-pos: center center;
	--impulzo-sp-img-bg: #eaeef2;
	--impulzo-sp-img-zoom-scale: 1.08;
	--impulzo-sp-img-zoom-duration: 550ms;

	/* Línea Divisoria */
	--impulzo-sp-divider-width: 4px;
	--impulzo-sp-divider-color: #ffffff;
	--impulzo-sp-divider-color-hover: #ffffff;

	/* Rectángulo con Icono (Badge) */
	--impulzo-sp-badge-w: 76px;
	--impulzo-sp-badge-h: 56px;
	--impulzo-sp-badge-icon-size: 54px;
	--impulzo-sp-badge-offset-x: 26px;
	--impulzo-sp-badge-offset-y: 0px;
	--impulzo-sp-badge-inner-x: center;
	--impulzo-sp-badge-inner-y: center;
	--impulzo-sp-badge-radius: 8px;
	--impulzo-sp-badge-bg-1: #ffffff;
	--impulzo-sp-badge-bg-2: #e6f4ff;
	--impulzo-sp-badge-bg-angle: 135deg;
	--impulzo-sp-badge-bg-hover-1: #ffffff;
	--impulzo-sp-badge-bg-hover-2: #d0ecff;
	--impulzo-sp-badge-icon-color: #0077b6;
	--impulzo-sp-badge-icon-hover: #005a8d;

	/* Zona Azul y Textos */
	--impulzo-sp-body-bg-1: #0082c8;
	--impulzo-sp-body-bg-2: #005c97;
	--impulzo-sp-body-bg-angle: 180deg;
	--impulzo-sp-body-bg-hover: #0074b4;
	--impulzo-sp-body-padding: 44px 28px 28px 26px;
	--impulzo-sp-text-align: left;
	--impulzo-sp-body-justify: space-between;
	--impulzo-sp-date-color: #e0f2fe;
	--impulzo-sp-date-color-hover: #ffffff;
	--impulzo-sp-date-mb: 6px;
	--impulzo-sp-title-color: #ffffff;
	--impulzo-sp-title-color-hover: #ffffff;
	--impulzo-sp-title-mb: 24px;

	/* Botón Explorar */
	--impulzo-sp-btn-align: flex-start;
	--impulzo-sp-btn-direction: row;
	--impulzo-sp-btn-color: #ffffff;
	--impulzo-sp-btn-color-hover: #ffffff;
	--impulzo-sp-btn-bg: #005b8e;
	--impulzo-sp-btn-bg-hover: #004872;
	--impulzo-sp-btn-border-width: 0px;
	--impulzo-sp-btn-border-color: transparent;
	--impulzo-sp-btn-border-color-hover: transparent;
	--impulzo-sp-btn-radius: 999px;
	--impulzo-sp-btn-padding: 8px 22px 8px 22px;
	--impulzo-sp-btn-icon-size: 20px;
	--impulzo-sp-btn-icon-gap: 14px;
	--impulzo-sp-btn-hover-scale: 1.06;
	--impulzo-sp-btn-icon-shift: 6px;

	/* Botón Más proyectos / Ver menos */
	--impulzo-sp-more-align: center;
	--impulzo-sp-more-mt: 42px;
	--impulzo-sp-more-color: #0082c8;
	--impulzo-sp-more-color-hover: #ffffff;
	--impulzo-sp-more-bg: #ffffff;
	--impulzo-sp-more-bg-hover: #0082c8;
	--impulzo-sp-more-border: transparent;
	--impulzo-sp-more-border-hover: #0082c8;
	--impulzo-sp-more-padding: 12px 36px 12px 36px;
	--impulzo-sp-more-radius: 999px;
	--impulzo-sp-more-hover-scale: 1.05;
	--impulzo-sp-expand-duration: 550ms;
	--impulzo-sp-expand-start-scale: 0.95;
	--impulzo-sp-expand-peak-scale: 1.015;

	/* Animaciones de Entrada */
	--impulzo-sp-anim-duration: 700ms;
	--impulzo-sp-anim-stagger: 140ms;
	--impulzo-sp-anim-distance: 40px;

	width: 100%;
	min-height: var(--impulzo-sp-min-height);
	padding: var(--impulzo-sp-container-padding);
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
	position: relative;
}

.impulzo-seccion-proyectos-container.impulzo-sp-width-boxed {
	max-width: var(--impulzo-sp-max-width);
}

.impulzo-seccion-proyectos-container.impulzo-sp-width-full {
	max-width: 100%;
}

/* ==========================================================================
 * GRID DE PROYECTOS Y TRANSICIÓN DE EXPANSIÓN
 * ========================================================================== */
.impulzo-seccion-proyectos-container .impulzo-sp-grid {
	display: grid;
	grid-template-columns: repeat(var(--impulzo-sp-cols, 2), minmax(0, 1fr));
	column-gap: var(--impulzo-sp-gap-x);
	row-gap: var(--impulzo-sp-gap-y);
	width: 100%;
	align-items: stretch;
	transition: transform var(--impulzo-sp-expand-duration) cubic-bezier(0.22, 1, 0.36, 1);
}

.impulzo-seccion-proyectos-container.impulzo-sp-expand-grow.is-expanding-pulse .impulzo-sp-grid {
	transform: scale(var(--impulzo-sp-expand-peak-scale, 1.015));
}

/* ==========================================================================
 * TARJETA DE PROYECTO (.impulzo-sp-card)
 * ========================================================================== */
.impulzo-seccion-proyectos-container .impulzo-sp-card {
	position: relative;
	display: flex;
	flex-direction: var(--impulzo-sp-card-direction, column);
	min-height: var(--impulzo-sp-card-min-height);
	border-radius: var(--impulzo-sp-card-radius);
	overflow: hidden;
	box-sizing: border-box;
	background: transparent;
	transition:
		box-shadow 0.35s ease,
		transform var(--impulzo-sp-expand-duration) cubic-bezier(0.22, 1, 0.36, 1),
		opacity var(--impulzo-sp-expand-duration) ease;
}

.impulzo-seccion-proyectos-container .impulzo-sp-card.impulzo-sp-dir-column {
	flex-direction: column;
}

.impulzo-seccion-proyectos-container .impulzo-sp-card.impulzo-sp-dir-column-reverse {
	flex-direction: column-reverse;
}

.impulzo-seccion-proyectos-container .impulzo-sp-card-overlay-link {
	position: absolute;
	inset: 0;
	z-index: 9;
	display: block;
}

/* ==========================================================================
 * ITEMS COLAPSABLES (VISTA PRINCIPAL vs LISTA COMPLETA)
 * ========================================================================== */
.impulzo-seccion-proyectos-container .impulzo-sp-card.impulzo-sp-card-extra.is-collapsed {
	display: none;
}

.impulzo-seccion-proyectos-container .impulzo-sp-card.impulzo-sp-card-extra.is-revealing {
	animation: impulzoSpCardReveal var(--impulzo-sp-expand-duration, 550ms) cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.impulzo-seccion-proyectos-container .impulzo-sp-card.impulzo-sp-card-extra.is-hiding {
	animation: impulzoSpCardHide calc(var(--impulzo-sp-expand-duration, 550ms) * 0.75) cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes impulzoSpCardReveal {
	0% {
		opacity: 0;
		transform: translateY(18px) scale(var(--impulzo-sp-expand-start-scale, 0.95));
	}
	65% {
		opacity: 1;
		transform: translateY(-2px) scale(var(--impulzo-sp-expand-peak-scale, 1.015));
	}
	100% {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

@keyframes impulzoSpCardHide {
	0% {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
	100% {
		opacity: 0;
		transform: translateY(14px) scale(var(--impulzo-sp-expand-start-scale, 0.95));
	}
}

/* ==========================================================================
 * 1. ZONA DE IMAGEN + HOVER ZOOM-BOX
 * ========================================================================== */
.impulzo-seccion-proyectos-container .impulzo-sp-media-zone {
	position: relative;
	width: 100%;
	height: var(--impulzo-sp-split-height, 285px);
	flex: 0 0 var(--impulzo-sp-split-height, 285px);
	overflow: hidden;
	background-color: var(--impulzo-sp-img-bg, #eaeef2);
	z-index: 1;
}

.impulzo-seccion-proyectos-container .impulzo-sp-img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: var(--impulzo-sp-img-fit, cover);
	object-position: var(--impulzo-sp-img-pos, center center);
	transform: scale(1);
	transition: transform var(--impulzo-sp-img-zoom-duration, 550ms) cubic-bezier(0.22, 1, 0.36, 1);
	will-change: transform;
}

.impulzo-seccion-proyectos-container.impulzo-sp-zoom-on-card .impulzo-sp-card:hover .impulzo-sp-img,
.impulzo-seccion-proyectos-container.impulzo-sp-zoom-on-image .impulzo-sp-media-zone:hover .impulzo-sp-img {
	transform: scale(var(--impulzo-sp-img-zoom-scale, 1.08));
}

/* ==========================================================================
 * 2. LÍNEA DIVISORIA + RECTÁNGULO CON ICONO (SOLIDARIOS EN ALTURA)
 * ========================================================================== */
.impulzo-seccion-proyectos-container .impulzo-sp-divider-wrap {
	position: relative;
	width: 100%;
	height: var(--impulzo-sp-divider-width, 4px);
	flex: 0 0 var(--impulzo-sp-divider-width, 4px);
	z-index: 6;
}

.impulzo-seccion-proyectos-container .impulzo-sp-divider-line {
	display: block;
	width: 100%;
	height: 100%;
	background-color: var(--impulzo-sp-divider-color, #ffffff);
	transition: background-color 0.35s ease;
}

.impulzo-seccion-proyectos-container .impulzo-sp-card:hover .impulzo-sp-divider-line {
	background-color: var(--impulzo-sp-divider-color-hover, var(--impulzo-sp-divider-color, #ffffff));
}

/* Rectángulo flotante anclado a la línea divisoria */
.impulzo-seccion-proyectos-container .impulzo-sp-badge {
	position: absolute;
	top: 50%;
	width: var(--impulzo-sp-badge-w, 76px);
	height: var(--impulzo-sp-badge-h, 56px);
	border-radius: var(--impulzo-sp-badge-radius, 8px);
	display: flex;
	align-items: var(--impulzo-sp-badge-inner-y, center);
	justify-content: var(--impulzo-sp-badge-inner-x, center);
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.14);
	box-sizing: border-box;
	padding: 6px 10px;
	z-index: 7;
	transition:
		background 0.35s ease,
		background-color 0.35s ease,
		box-shadow 0.35s ease,
		transform 0.35s ease;
}

/* Alineación horizontal del rectángulo */
.impulzo-seccion-proyectos-container.impulzo-sp-badge-pos-left .impulzo-sp-badge {
	left: var(--impulzo-sp-badge-offset-x, 26px);
	right: auto;
	transform: translateY(calc(-50% + var(--impulzo-sp-badge-offset-y, 0px)));
}

.impulzo-seccion-proyectos-container.impulzo-sp-badge-pos-center .impulzo-sp-badge {
	left: 50%;
	right: auto;
	transform: translate(calc(-50% + var(--impulzo-sp-badge-offset-x, 0px)), calc(-50% + var(--impulzo-sp-badge-offset-y, 0px)));
}

.impulzo-seccion-proyectos-container.impulzo-sp-badge-pos-right .impulzo-sp-badge {
	right: var(--impulzo-sp-badge-offset-x, 26px);
	left: auto;
	transform: translateY(calc(-50% + var(--impulzo-sp-badge-offset-y, 0px)));
}

/* Fondo del rectángulo: Sólido, Lineal o Radial */
.impulzo-seccion-proyectos-container.impulzo-sp-badge-bg-solid .impulzo-sp-badge {
	background: var(--impulzo-sp-badge-bg-1, #ffffff);
}

.impulzo-seccion-proyectos-container.impulzo-sp-badge-bg-linear .impulzo-sp-badge {
	background: linear-gradient(var(--impulzo-sp-badge-bg-angle, 135deg), var(--impulzo-sp-badge-bg-1, #ffffff), var(--impulzo-sp-badge-bg-2, #e6f4ff));
}

.impulzo-seccion-proyectos-container.impulzo-sp-badge-bg-radial .impulzo-sp-badge {
	background: radial-gradient(circle, var(--impulzo-sp-badge-bg-1, #ffffff), var(--impulzo-sp-badge-bg-2, #e6f4ff));
}

/* Hover del fondo del rectángulo */
.impulzo-seccion-proyectos-container.impulzo-sp-badge-bghover-solid .impulzo-sp-card:hover .impulzo-sp-badge {
	background: var(--impulzo-sp-badge-bg-hover-1, var(--impulzo-sp-badge-bg-1, #ffffff));
}

.impulzo-seccion-proyectos-container.impulzo-sp-badge-bghover-linear .impulzo-sp-card:hover .impulzo-sp-badge {
	background: linear-gradient(var(--impulzo-sp-badge-bg-angle, 135deg), var(--impulzo-sp-badge-bg-hover-1, #ffffff), var(--impulzo-sp-badge-bg-hover-2, #d0ecff));
}

.impulzo-seccion-proyectos-container.impulzo-sp-badge-bghover-radial .impulzo-sp-card:hover .impulzo-sp-badge {
	background: radial-gradient(circle, var(--impulzo-sp-badge-bg-hover-1, #ffffff), var(--impulzo-sp-badge-bg-hover-2, #d0ecff));
}

.impulzo-seccion-proyectos-container .impulzo-sp-card.has-custom-badge-bg .impulzo-sp-badge {
	background: var(--impulzo-sp-item-badge-bg) !important;
}

/* Icono dentro del rectángulo */
.impulzo-seccion-proyectos-container .impulzo-sp-badge-icon-holder {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--impulzo-sp-badge-icon-size, 54px);
	height: var(--impulzo-sp-badge-icon-size, 54px);
	color: var(--impulzo-sp-badge-icon-color, #0077b6);
	font-size: var(--impulzo-sp-badge-icon-size, 54px);
	line-height: 1;
	transition: color 0.35s ease, transform 0.35s ease;
}

.impulzo-seccion-proyectos-container .impulzo-sp-card.has-custom-badge-icon .impulzo-sp-badge-icon-holder {
	color: var(--impulzo-sp-item-badge-icon);
}

.impulzo-seccion-proyectos-container .impulzo-sp-card:hover .impulzo-sp-badge-icon-holder {
	color: var(--impulzo-sp-badge-icon-hover, var(--impulzo-sp-badge-icon-color, #005a8d));
}

.impulzo-seccion-proyectos-container .impulzo-sp-badge-icon-holder i {
	color: inherit !important;
	font-size: inherit;
	transition: color 0.35s ease;
}

.impulzo-seccion-proyectos-container .impulzo-sp-badge-icon-holder svg {
	width: 100%;
	height: 100%;
	max-width: var(--impulzo-sp-badge-icon-size, 54px);
	max-height: var(--impulzo-sp-badge-icon-size, 54px);
	display: block;
	color: inherit !important;
	transition: fill 0.35s ease, stroke 0.35s ease, color 0.35s ease;
}

/* Modos de color de SVG e Imagen para garantizar cambio en Normal y Hover */
.impulzo-seccion-proyectos-container.impulzo-sp-icon-mode-auto .impulzo-sp-badge-icon-holder svg.e-font-icon-svg,
.impulzo-seccion-proyectos-container.impulzo-sp-icon-mode-auto .impulzo-sp-badge-icon-holder svg.e-font-icon-svg * {
	fill: currentColor !important;
}

.impulzo-seccion-proyectos-container.impulzo-sp-icon-mode-auto .impulzo-sp-badge-icon-holder svg:not(.e-font-icon-svg):not(.impulzo-sp-default-gears) [fill]:not([fill="none"]),
.impulzo-seccion-proyectos-container.impulzo-sp-icon-mode-fill .impulzo-sp-badge-icon-holder svg,
.impulzo-seccion-proyectos-container.impulzo-sp-icon-mode-fill .impulzo-sp-badge-icon-holder svg *:not([fill="none"]) {
	fill: currentColor !important;
}

.impulzo-seccion-proyectos-container.impulzo-sp-icon-mode-auto .impulzo-sp-badge-icon-holder svg:not(.e-font-icon-svg) [stroke]:not([stroke="none"]),
.impulzo-seccion-proyectos-container.impulzo-sp-icon-mode-stroke .impulzo-sp-badge-icon-holder svg *[stroke]:not([stroke="none"]),
.impulzo-seccion-proyectos-container.impulzo-sp-icon-mode-stroke .impulzo-sp-badge-icon-holder svg path {
	stroke: currentColor !important;
}

/* Soporte para tintar PNG/SVG subidos como imagen mediante máscara CSS */
.impulzo-seccion-proyectos-container .impulzo-sp-badge-mask-img {
	display: block;
	width: 100%;
	height: 100%;
	background-color: currentColor;
	-webkit-mask-image: var(--impulzo-sp-mask-url);
	mask-image: var(--impulzo-sp-mask-url);
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	transition: background-color 0.35s ease;
}

.impulzo-seccion-proyectos-container .impulzo-sp-badge-raw-img {
	display: none;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.impulzo-seccion-proyectos-container .impulzo-sp-badge-raw-img.is-visible {
	display: block;
}

/* ==========================================================================
 * 3. ZONA AZUL (CONTENIDO, TÍTULO, FECHA Y BOTÓN EXPLORAR)
 * ========================================================================== */
.impulzo-seccion-proyectos-container .impulzo-sp-body-zone {
	position: relative;
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	justify-content: var(--impulzo-sp-body-justify, space-between);
	padding: var(--impulzo-sp-body-padding, 44px 28px 28px 26px);
	text-align: var(--impulzo-sp-text-align, left);
	box-sizing: border-box;
	z-index: 2;
	transition: background 0.35s ease, background-color 0.35s ease;
}

.impulzo-seccion-proyectos-container.impulzo-sp-body-bg-solid .impulzo-sp-body-zone {
	background-color: var(--impulzo-sp-body-bg-1, #0082c8);
}

.impulzo-seccion-proyectos-container.impulzo-sp-body-bg-linear .impulzo-sp-body-zone {
	background: linear-gradient(var(--impulzo-sp-body-bg-angle, 180deg), var(--impulzo-sp-body-bg-1, #0082c8), var(--impulzo-sp-body-bg-2, #005c97));
}

.impulzo-seccion-proyectos-container.impulzo-sp-body-bg-radial .impulzo-sp-body-zone {
	background: radial-gradient(circle at top left, var(--impulzo-sp-body-bg-1, #0082c8), var(--impulzo-sp-body-bg-2, #005c97));
}

.impulzo-seccion-proyectos-container .impulzo-sp-card.has-custom-body-bg .impulzo-sp-body-zone {
	background: var(--impulzo-sp-item-body-bg) !important;
}

.impulzo-seccion-proyectos-container .impulzo-sp-card:hover .impulzo-sp-body-zone {
	background: var(--impulzo-sp-body-bg-hover, var(--impulzo-sp-body-bg-1, #0074b4));
}

/* Fecha / Año */
.impulzo-seccion-proyectos-container .impulzo-sp-date {
	display: block;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.3;
	color: var(--impulzo-sp-date-color, #e0f2fe);
	margin: 0 0 var(--impulzo-sp-date-mb, 6px) 0;
	transition: color 0.3s ease;
}

.impulzo-seccion-proyectos-container .impulzo-sp-card:hover .impulzo-sp-date {
	color: var(--impulzo-sp-date-color-hover, var(--impulzo-sp-date-color, #ffffff));
}

/* Título del Proyecto */
.impulzo-seccion-proyectos-container .impulzo-sp-title {
	font-size: 26px;
	font-weight: 500;
	line-height: 1.22;
	letter-spacing: -0.01em;
	color: var(--impulzo-sp-title-color, #ffffff);
	margin: 0 0 var(--impulzo-sp-title-mb, 24px) 0;
	transition: color 0.3s ease;
}

.impulzo-seccion-proyectos-container .impulzo-sp-card:hover .impulzo-sp-title {
	color: var(--impulzo-sp-title-color-hover, var(--impulzo-sp-title-color, #ffffff));
}

/* ==========================================================================
 * 4. BOTÓN DEL PROYECTO ("EXPLORAR") Y HOVER ANIMADO
 * ========================================================================== */
.impulzo-seccion-proyectos-container .impulzo-sp-btn-wrap {
	display: flex;
	justify-content: var(--impulzo-sp-btn-align, flex-start);
	align-items: center;
	width: 100%;
	position: relative;
	z-index: 10;
}

.impulzo-seccion-proyectos-container .impulzo-sp-btn {
	display: inline-flex;
	flex-direction: var(--impulzo-sp-btn-direction, row);
	align-items: center;
	justify-content: center;
	gap: var(--impulzo-sp-btn-icon-gap, 14px);
	padding: var(--impulzo-sp-btn-padding, 8px 22px 8px 22px);
	background-color: var(--impulzo-sp-btn-bg, #005b8e);
	color: var(--impulzo-sp-btn-color, #ffffff);
	border: var(--impulzo-sp-btn-border-width, 0px) solid var(--impulzo-sp-btn-border-color, transparent);
	border-radius: var(--impulzo-sp-btn-radius, 999px);
	font-size: 17px;
	font-weight: 400;
	line-height: 1.2;
	text-decoration: none !important;
	cursor: pointer;
	transform: scale(1);
	transform-origin: left center;
	transition:
		background-color 0.3s ease,
		color 0.3s ease,
		border-color 0.3s ease,
		box-shadow 0.3s ease,
		transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}

.impulzo-seccion-proyectos-container .impulzo-sp-btn:hover,
.impulzo-seccion-proyectos-container .impulzo-sp-card:hover .impulzo-sp-btn {
	background-color: var(--impulzo-sp-btn-bg-hover, #004872);
	color: var(--impulzo-sp-btn-color-hover, #ffffff);
	border-color: var(--impulzo-sp-btn-border-color-hover, transparent);
	transform: scale(var(--impulzo-sp-btn-hover-scale, 1.06));
}

.impulzo-seccion-proyectos-container .impulzo-sp-btn-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--impulzo-sp-btn-icon-size, 20px);
	height: var(--impulzo-sp-btn-icon-size, 20px);
	font-size: var(--impulzo-sp-btn-icon-size, 20px);
	color: inherit;
	transform: translateX(0);
	transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}

.impulzo-seccion-proyectos-container .impulzo-sp-btn-icon svg {
	width: 100%;
	height: 100%;
	display: block;
	color: inherit;
}

.impulzo-seccion-proyectos-container .impulzo-sp-btn-icon svg.e-font-icon-svg,
.impulzo-seccion-proyectos-container .impulzo-sp-btn-icon svg.e-font-icon-svg * {
	fill: currentColor !important;
}

.impulzo-seccion-proyectos-container .impulzo-sp-btn:hover .impulzo-sp-btn-icon,
.impulzo-seccion-proyectos-container .impulzo-sp-card:hover .impulzo-sp-btn .impulzo-sp-btn-icon {
	transform: translateX(var(--impulzo-sp-btn-icon-shift, 6px));
}

/* ==========================================================================
 * 5. BOTÓN MAESTRO "MÁS PROYECTOS... / VER MENOS"
 * ========================================================================== */
.impulzo-seccion-proyectos-container .impulzo-sp-more-wrap {
	display: flex;
	justify-content: var(--impulzo-sp-more-align, center);
	width: 100%;
	margin-top: var(--impulzo-sp-more-mt, 42px);
}

.impulzo-seccion-proyectos-container .impulzo-sp-more-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: var(--impulzo-sp-more-padding, 12px 36px 12px 36px);
	background-color: var(--impulzo-sp-more-bg, #ffffff);
	color: var(--impulzo-sp-more-color, #0082c8);
	border: 1px solid var(--impulzo-sp-more-border, transparent);
	border-radius: var(--impulzo-sp-more-radius, 999px);
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
	font-size: 18px;
	font-weight: 400;
	line-height: 1.25;
	cursor: pointer;
	outline: none;
	transform: scale(1);
	transition:
		background-color 0.3s ease,
		color 0.3s ease,
		border-color 0.3s ease,
		box-shadow 0.3s ease,
		transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}

.impulzo-seccion-proyectos-container .impulzo-sp-more-btn:hover {
	background-color: var(--impulzo-sp-more-bg-hover, #0082c8);
	color: var(--impulzo-sp-more-color-hover, #ffffff);
	border-color: var(--impulzo-sp-more-border-hover, #0082c8);
	transform: scale(var(--impulzo-sp-more-hover-scale, 1.05));
}

/* ==========================================================================
 * 6. ANIMACIONES DE ENTRADA EN SCROLL
 * ========================================================================== */
.impulzo-seccion-proyectos-container.impulzo-sp-has-entrance .impulzo-sp-card.impulzo-sp-will-animate {
	opacity: 0;
	transition:
		opacity var(--impulzo-sp-anim-duration, 700ms) cubic-bezier(0.22, 1, 0.36, 1),
		transform var(--impulzo-sp-anim-duration, 700ms) cubic-bezier(0.22, 1, 0.36, 1),
		clip-path var(--impulzo-sp-anim-duration, 700ms) cubic-bezier(0.22, 1, 0.36, 1),
		box-shadow 0.35s ease;
	transition-delay: var(--impulzo-sp-current-delay, 0ms);
}

.impulzo-seccion-proyectos-container.impulzo-sp-anim-fade-in-up .impulzo-sp-card.impulzo-sp-will-animate {
	transform: translateY(var(--impulzo-sp-anim-distance, 40px));
}

.impulzo-seccion-proyectos-container.impulzo-sp-anim-fade-in-down .impulzo-sp-card.impulzo-sp-will-animate {
	transform: translateY(calc(var(--impulzo-sp-anim-distance, 40px) * -1));
}

.impulzo-seccion-proyectos-container.impulzo-sp-anim-fade-in-left .impulzo-sp-card.impulzo-sp-will-animate {
	transform: translateX(calc(var(--impulzo-sp-anim-distance, 40px) * -1));
}

.impulzo-seccion-proyectos-container.impulzo-sp-anim-fade-in-right .impulzo-sp-card.impulzo-sp-will-animate {
	transform: translateX(var(--impulzo-sp-anim-distance, 40px));
}

.impulzo-seccion-proyectos-container.impulzo-sp-anim-fade-in .impulzo-sp-card.impulzo-sp-will-animate {
	transform: scale(0.97);
}

.impulzo-seccion-proyectos-container.impulzo-sp-anim-slice-up .impulzo-sp-card.impulzo-sp-will-animate {
	clip-path: inset(100% 0 0 0);
	transform: translateY(20px);
}

.impulzo-seccion-proyectos-container.impulzo-sp-has-entrance .impulzo-sp-card.impulzo-sp-will-animate.is-in-view {
	opacity: 1;
	transform: translate(0, 0) scale(1);
	clip-path: inset(0 0 0 0);
}

/* ==========================================================================
 * RESPONSIVE BREAKPOINTS
 * ========================================================================== */
@media (max-width: 1024px) {
	.impulzo-seccion-proyectos-container .impulzo-sp-title {
		font-size: 22px;
	}
}

@media (max-width: 767px) {
	.impulzo-seccion-proyectos-container .impulzo-sp-grid {
		grid-template-columns: repeat(var(--impulzo-sp-cols, 1), minmax(0, 1fr));
	}
	.impulzo-seccion-proyectos-container .impulzo-sp-title {
		font-size: 20px;
	}
}
