/* ==================================================
   CARRUSEL PRINCIPAL: INICIO
================================================== */

.home-carousel{
	width:100%;
	padding:0 0 60px;
	background:var(--red);
}

.home-carousel-container{
	position:relative;
	width:100%;
	max-width:none;
	height:540px;
	margin:0;
	overflow:hidden;
	background:#2A2A2A;
}

.home-carousel-track{
	width:100%;
	height:100%;
	display:flex;
	transition:transform .8s ease;
	will-change:transform;
}

.home-carousel-slide{
	flex:0 0 100%;
	width:100%;
	height:100%;
}

.home-carousel-slide img{
	width:100%;
	height:100%;
	display:block;
	object-fit:cover;
	object-position:center;
}

.home-carousel-dots{
	position:absolute;
	left:50%;
	bottom:20px;
	display:flex;
	align-items:center;
	gap:10px;
	transform:translateX(-50%);
	z-index:5;
}

.home-carousel-dot{
	width:11px;
	height:11px;
	padding:0;
	border:0;
	border-radius:50%;
	background:rgba(255,255,255,.45);
	cursor:pointer;
	transition:background .3s ease,transform .3s ease;
}

.home-carousel-dot:hover{
	background:rgba(255,255,255,.75);
}

.home-carousel-dot.active{
	background:var(--white);
	transform:scale(1.15);
}

.home-carousel-slide a{
	width:100%;
	height:100%;
	display:block;
	cursor:pointer;
	text-decoration:none;
}

.home-carousel-slide a img{
	width:100%;
	height:100%;
	display:block;
	object-fit:cover;
}


/* ==================================================
   CARRUSEL PRINCIPAL: FIN
================================================== */


/* ==================================================
   ARTÍCULOS DESTACADOS: INICIO
================================================== */

.home-articles{
	width:100%;
	padding:20px 100px;
	background:var(--red);
	color:var(--white);
}

.home-articles-container{
	width:100%;
	max-width:1240px;
	margin:0 auto;
}

.home-article{
	width:100%;
	display:grid;
	grid-template-columns:repeat(2,1fr);
	align-items:center;
	gap:80px;
	padding:40px 0 80px;
}

.home-article-reverse .home-article-image{
	order:2;
}

.home-article-reverse .home-article-content{
	order:1;
}

.home-article-image{
	width:100%;
	height:440px;
	overflow:hidden;
	background:#242424;
}

.home-article-image img{
	width:100%;
	height:100%;
	display:block;
	object-fit:cover;
	object-position:center;
}

.home-article-content{
	width:100%;
	max-width:450px;
	display:flex;
	flex-direction:column;
	align-items:flex-start;
}

.home-article-category{
	margin:20 0 0px;
	font-family:var(--font-text);
	font-size:13px;
	line-height:18px;
	font-weight:500;
	letter-spacing:2px;
	text-transform:uppercase;
	color:var(--white);
}

.home-article-title{
	margin:0 0 20px;
	font-family:var(--font-title);
	font-size:36px;
	line-height:38px;
	font-weight:800;
	color:var(--white);
}

.home-article-subtitle{
	margin:0 0 5px;
	font-family:var(--font-text);
	font-size:17px;
	line-height:20px;
	font-weight:600;
	color:var(--white);
}

.home-article-content-line{
	width:100%;
	height:3px;
	margin:0 0 25px;
	background:var(--white);
}

.home-article-text{
	max-width:520px;
	margin:0 0 15px;
	font-family:var(--font-text);
	font-size:15px;
	line-height:23px;
	font-weight:400;
	color:rgba(255,255,255,.82);
}

.home-article-button{
	min-width:150px;
	height:35px;
	padding:0 10px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	font-family:var(--font-text);
	font-size:14px;
	line-height:14px;
	font-weight:600;
	letter-spacing:.5px;
	text-decoration:none;
	color:var(--white);
	background:var(--blue);
	border-radius:20px;
	transition:background .3s ease,color .3s ease;
}

.home-article-button:hover{
	background:var(--white);
	color:var(--red);
}



/* ==================================================
   ARTÍCULOS DESTACADOS: FIN
================================================== */


/* ==================================================
   ARTÍCULOS RESPONSIVE: INICIO
================================================== */

@media(max-width:900px){
	.home-articles{
		padding:70px 40px;
	}

	.home-article{
		grid-template-columns:1fr;
		gap:40px;
		padding:40px 0 60px;
	}

	.home-article-reverse .home-article-image{
		order:1;
	}

	.home-article-reverse .home-article-content{
		order:2;
	}

	.home-article-image{
		height:380px;
	}

	.home-article-title{
		font-size:32px;
		line-height:37px;
	}
}

@media(max-width:600px){
	.home-articles{
		padding:55px 20px;
	}

	.home-article-image{
		height:280px;
	}

	.home-article-title{
		font-size:27px;
		line-height:32px;
	}

	.home-article-subtitle{
		font-size:17px;
		line-height:25px;
	}

	.home-article-text{
		font-size:15px;
		line-height:23px;
	}
}

/* ==================================================
   ARTÍCULOS RESPONSIVE: FIN
================================================== */


/* ==================================================
   A QUIÉNES AYUDAMOS: INICIO
================================================== */

.home-help{
	position:relative;
	width:100%;
	height:620px;
	padding:58px 100px;
	border-top:16px solid var(--red);
	border-bottom:16px solid var(--red);
	background:url('../imgs/A-quienes-ayudamos.png');
	background-size:cover;
	background-position:center;
	background-repeat:no-repeat;
	color:var(--white);
	overflow:hidden;
}

.home-help-container{
	position:relative;
	width:100%;
	max-width:1240px;
	margin:0 auto;
	display:grid;
	grid-template-columns:260px 1fr;
	align-items:start;
	gap:350px;
	z-index:1;
	transform:translateY(40px);
}

.home-help-intro{
	width:100%;
}

/* ==================================================
   TÍTULO: ANIMACIÓN SOLO DE OPACIDAD
================================================== */

.home-help-title{
	margin:0 0 14px;
	font-family:var(--font-title);
	font-size:32px;
	line-height:32px;
	font-weight:800;
	color:var(--white);

	opacity:0;
	transition:opacity 0.9s ease;
	will-change:opacity;
}

.home-help.is-visible .home-help-title{
	opacity:1;
}

/* ==================================================
   DESCRIPCIÓN: SIN ANIMACIÓN
================================================== */

.home-help-description{
	margin:0;
	font-family:var(--font-text);
	font-size:14px;
	line-height:20px;
	font-weight:400;
	color:var(--white);
}

/* ==================================================
   LISTA
================================================== */

.home-help-list{
	width:100%;
	margin:0;
	padding:0;
	display:flex;
	flex-direction:column;
	gap:25px;
	list-style:none;
}

.home-help-list li{
	--item-delay:0s;

	position:relative;
	margin:0;
	padding-left:25px;
	font-family:var(--font-text);
	font-size:13px;
	line-height:18px;
	font-weight:500;
	color:var(--white);
}

/* ==================================================
   TEXTOS DE LA LISTA
================================================== */

.home-help-item-text{
	display:block;
	opacity:0;
	transform:translate3d(70px,0,0);

	transition:
		opacity 0.8s ease var(--item-delay),
		transform 0.8s cubic-bezier(0.22,1,0.36,1) var(--item-delay);

	will-change:opacity,transform;
}

.home-help.is-visible .home-help-item-text{
	opacity:1;
	transform:translate3d(0,0,0);
}

/* ==================================================
   CUADRADOS
================================================== */

.home-help-list li::before{
	content:'';
	position:absolute;
	top:5px;
	left:0;
	width:10px;
	height:10px;
	background:var(--white);

	opacity:0;
	transition:
		opacity 0.22s ease
		calc(var(--item-delay) + 0.42s);

	will-change:opacity;
}

.home-help.is-visible .home-help-list li::before{
	opacity:1;
}

/* ==================================================
   SECUENCIA ESCALONADA
================================================== */

.home-help-list li:nth-child(1){
	--item-delay:0.10s;
}

.home-help-list li:nth-child(2){
	--item-delay:0.21s;
}

.home-help-list li:nth-child(3){
	--item-delay:0.32s;
}

.home-help-list li:nth-child(4){
	--item-delay:0.43s;
}

.home-help-list li:nth-child(5){
	--item-delay:0.54s;
}

.home-help-list li:nth-child(6){
	--item-delay:0.65s;
}

.home-help-list li:nth-child(7){
	--item-delay:0.76s;
}

.home-help-list li:nth-child(8){
	--item-delay:0.87s;
}

.home-help-list li:nth-child(9){
	--item-delay:0.98s;
}

.home-help-list li:nth-child(10){
	--item-delay:1.09s;
}

/* ==================================================
   ACCESIBILIDAD
================================================== */

@media (prefers-reduced-motion:reduce){

	.home-help-title,
	.home-help-item-text,
	.home-help-list li::before{
		opacity:1;
		transform:none;
		transition:none;
	}

}

/* ==================================================
   A QUIÉNES AYUDAMOS: FIN
================================================== */


/* ==================================================
   A QUIÉNES AYUDAMOS RESPONSIVE: INICIO
================================================== */

@media(max-width:900px){
	.home-help{
		padding:55px 40px;
	}

	.home-help-container{
		grid-template-columns:220px 1fr;
		gap:50px;
	}
}

@media(max-width:650px){
	@media(max-width:650px){
	.home-help{
		height:auto;
		min-height:620px;
	}
}

	.home-help-container{
		grid-template-columns:1fr;
		gap:35px;
	}

	.home-help-title{
		font-size:29px;
		line-height:29px;
	}

	.home-help-list{
		gap:14px;
	}
}

/* ==================================================
   A QUIÉNES AYUDAMOS RESPONSIVE: FIN
================================================== */



/* ==================================================
   CREEMOS QUE: INICIO
================================================== */

.home-beliefs{
	position:relative;
	width:100%;
	height:510px;
	padding:95px 100px 70px;
	box-sizing:border-box;
	background:var(--red);
	color:var(--white);
	overflow:hidden;
}

.home-beliefs-container{
	width:100%;
	max-width:1240px;
	margin:0 auto;
}

.home-beliefs-intro{
	width:100%;
	text-align:center;
}

.home-beliefs-title{
	margin:0 0 8px;
	font-family:var(--font-title);
	font-size:32px;
	line-height:36px;
	font-weight:var(--extra-bold);
	color:var(--white);
}

.home-beliefs-subtitle{
	max-width:520px;
	margin:0 auto 18px;
	font-family:var(--font-text);
	font-size:13px;
	line-height:18px;
	font-weight:var(--regular);
	color:var(--white);
}

.home-beliefs-description{
	max-width:500px;
	margin:0 auto;
	font-family:var(--font-text);
	font-size:13px;
	line-height:20px;
	font-weight:var(--regular);
	color:var(--white);
}

/* ==================================================
   DISTRIBUCIÓN DE LOS PILARES
================================================== */

.home-beliefs-pillars{
	width:100%;
	max-width:760px;
	margin:55px auto 0;
	display:grid;
	grid-template-columns:1fr 135px 1fr 135px 1fr;
	align-items:start;
}

.home-beliefs-item{
	--pillar-start:0s;

	width:100%;
	text-align:center;
}

/* ==================================================
   NÚMEROS Y TÍTULOS: SOLO OPACIDAD
================================================== */

.home-beliefs-number{
	display:block;
	margin:0 0 2px;
	font-family:var(--font-title);
	font-size:54px;
	line-height:54px;
	font-weight:var(--heavy);
	color:var(--white);

	opacity:0;
	transition:
		opacity .55s ease var(--pillar-start);

	will-change:opacity;
}

.home-beliefs-item-title{
	margin:0 0 5px;
	font-family:var(--font-text);
	font-size:16px;
	line-height:20px;
	font-weight:var(--bold);
	color:var(--white);

	opacity:0;
	transition:
		opacity .55s ease var(--pillar-start);

	will-change:opacity;
}

.home-beliefs.is-visible
.home-beliefs-number,
.home-beliefs.is-visible
.home-beliefs-item-title{
	opacity:1;
}

/* ==================================================
   TEXTO: MOVIMIENTO DE ABAJO HACIA ARRIBA
================================================== */

.home-beliefs-item-text{
	margin:0;
	font-family:var(--font-text);
	font-size:13px;
	line-height:19px;
	font-weight:var(--regular);
	color:var(--white);

	opacity:0;
	transform:translate3d(0,18px,0);

	transition:
		opacity .62s ease calc(var(--pillar-start) + .18s),
		transform .62s cubic-bezier(.22,1,.36,1)
		calc(var(--pillar-start) + .18s);

	will-change:opacity,transform;
}

.home-beliefs.is-visible
.home-beliefs-item-text{
	opacity:1;
	transform:translate3d(0,0,0);
}

/* ==================================================
   LÍNEAS: CRECIMIENTO DE IZQUIERDA A DERECHA
================================================== */

.home-beliefs-line{
	--line-start:0s;

	width:135px;
	height:2px;
	margin-top:21px;
	background:var(--white);

	transform:scaleX(0);
	transform-origin:left center;

	transition:
		transform .55s cubic-bezier(.22,1,.36,1)
		var(--line-start);

	will-change:transform;
}

.home-beliefs.is-visible
.home-beliefs-line{
	transform:scaleX(1);
}

/* ==================================================
   SECUENCIA DE LOS TRES PILARES
================================================== */

/* Pilar 01 */

.home-beliefs-item:nth-child(1){
	--pillar-start:.10s;
}

/* Línea después del pilar 01 */

.home-beliefs-line:nth-child(2){
	--line-start:.92s;
}

/* Pilar 02 */

.home-beliefs-item:nth-child(3){
	--pillar-start:1.50s;
}

/* Línea después del pilar 02 */

.home-beliefs-line:nth-child(4){
	--line-start:2.32s;
}

/* Pilar 03 */

.home-beliefs-item:nth-child(5){
	--pillar-start:2.90s;
}

/* ==================================================
   ACCESIBILIDAD
================================================== */

@media (prefers-reduced-motion:reduce){

	.home-beliefs-number,
	.home-beliefs-item-title,
	.home-beliefs-item-text{
		opacity:1;
		transform:none;
		transition:none;
	}

	.home-beliefs-line{
		transform:scaleX(1);
		transition:none;
	}
}

/* ==================================================
   CREEMOS QUE: FIN
================================================== */


/* ==================================================
   CREEMOS QUE RESPONSIVE: INICIO
================================================== */

@media(max-width:900px){

	.home-beliefs{
		height:auto;
		min-height:510px;
		padding:80px 40px;
	}

	.home-beliefs-pillars{
		max-width:680px;
		grid-template-columns:1fr 90px 1fr 90px 1fr;
	}

	.home-beliefs-line{
		width:90px;
	}
}

@media(max-width:650px){

	.home-beliefs{
		height:auto;
		padding:65px 20px;
	}

	.home-beliefs-title{
		font-size:28px;
		line-height:32px;
	}

	.home-beliefs-description br{
		display:none;
	}

	.home-beliefs-pillars{
		margin-top:45px;
		display:flex;
		flex-direction:column;
		align-items:center;
		gap:30px;
	}

	.home-beliefs-item{
		max-width:280px;
	}

	.home-beliefs-line{
		width:100px;
		height:1px;
		margin:0;
	}

	.home-beliefs-number{
		font-size:48px;
		line-height:48px;
	}
}

/* ==================================================
   CREEMOS QUE RESPONSIVE: FIN
================================================== */



/* ==================================================
   PROPIEDAD PARA LA REVELACIÓN CIRCULAR
================================================== */

@property --experience-hole{
	syntax:"<percentage>";
	inherits:false;
	initial-value:100%;
}


/* ==================================================
   NUESTRA EXPERIENCIA: INICIO
================================================== */

.home-experience{
	/*
	Centro aproximado del diamante dentro de la imagen.
	*/

	--experience-focus-x:36%;
	--experience-focus-y:64%;
	--experience-hole:100%;

	position:relative;
	width:100%;
	height:430px;
	padding:0 100px;
	overflow:hidden;
	isolation:isolate;
	box-sizing:border-box;
	background:var(--red);
}


/* ==================================================
   FONDO CON REVELACIÓN CIRCULAR SUAVE
================================================== */

.home-experience::before{
	content:"";
	position:absolute;
	inset:0;
	z-index:0;
	pointer-events:none;

	background-image:url("../imgs/Expertise.png");
	background-size:cover;
	background-position:center;
	background-repeat:no-repeat;

	/*
	La transición entre la zona invisible y visible
	es más amplia para que el efecto sea menos fuerte.
	*/

	-webkit-mask-image:radial-gradient(
		circle at
		var(--experience-focus-x)
		var(--experience-focus-y),

		transparent 0,
		transparent var(--experience-hole),

		rgba(0,0,0,.08)
		calc(var(--experience-hole) + 7%),

		rgba(0,0,0,.22)
		calc(var(--experience-hole) + 14%),

		rgba(0,0,0,.42)
		calc(var(--experience-hole) + 22%),

		rgba(0,0,0,.68)
		calc(var(--experience-hole) + 31%),

		#000
		calc(var(--experience-hole) + 42%)
	);

	mask-image:radial-gradient(
		circle at
		var(--experience-focus-x)
		var(--experience-focus-y),

		transparent 0,
		transparent var(--experience-hole),

		rgba(0,0,0,.08)
		calc(var(--experience-hole) + 7%),

		rgba(0,0,0,.22)
		calc(var(--experience-hole) + 14%),

		rgba(0,0,0,.42)
		calc(var(--experience-hole) + 22%),

		rgba(0,0,0,.68)
		calc(var(--experience-hole) + 31%),

		#000
		calc(var(--experience-hole) + 42%)
	);

	-webkit-mask-repeat:no-repeat;
	mask-repeat:no-repeat;

	will-change:--experience-hole;
}


/*
La fotografía aparece más rápidamente.
La curva de velocidad suaviza el final.
*/

.home-experience.is-visible::before{
	animation:
		home-experience-background-reveal
		2.5s
		cubic-bezier(.25,.1,.25,1)
		forwards;
}


/* ==================================================
   CONTENEDOR
================================================== */

.home-experience-container{
	position:relative;
	z-index:1;
	width:100%;
	max-width:1240px;
	height:100%;
	margin:0 auto;
	display:grid;
	grid-template-columns:repeat(12,minmax(0,1fr));
	column-gap:20px;
	align-items:center;
}

.home-experience-content{
	width:100%;
	max-width:none;
	grid-column:9 / 13;
	text-align:right;
	justify-self:end;
}


/* ==================================================
   TÍTULO: SOLO OPACIDAD
================================================== */

.home-experience-title{
	margin:0 0 14px;
	font-family:var(--font-title);
	font-size:36px;
	line-height:36px;
	font-weight:var(--extra-bold);
	color:var(--white);

	opacity:0;
	transition:opacity 1.2s ease .30s;
	will-change:opacity;
}

.home-experience.is-visible .home-experience-title{
	opacity:1;
}


/* ==================================================
   PÁRRAFO: SIN ANIMACIÓN
================================================== */

.home-experience-text{
	margin:0;
	font-family:var(--font-text);
	font-size:15px;
	line-height:23px;
	font-weight:var(--regular);
	color:var(--white);
}


/* ==================================================
   FOTOGRAMAS DE LA REVELACIÓN
================================================== */

@keyframes home-experience-background-reveal{

	from{
		--experience-hole:100%;
	}

	to{
		/*
		El valor final compensa la transición suave
		de 42% y permite mostrar toda la fotografía.
		*/

		--experience-hole:-42%;
	}

}


/* ==================================================
   ACCESIBILIDAD
================================================== */

@media(prefers-reduced-motion:reduce){

	.home-experience::before{
		animation:none;
		-webkit-mask-image:none;
		mask-image:none;
	}

	.home-experience-title{
		opacity:1;
		transition:none;
	}

}


/* ==================================================
   NUESTRA EXPERIENCIA: FIN
================================================== */


/* ==================================================
   NUESTRA EXPERIENCIA RESPONSIVE: INICIO
================================================== */

@media(max-width:900px){

	.home-experience{
		padding:0 40px;
	}

	.home-experience-content{
		grid-column:7 / 13;
	}

}


@media(max-width:600px){

	.home-experience{
		height:auto;
		min-height:430px;
		padding:70px 20px;
	}

	.home-experience-content{
		grid-column:1 / 13;
		text-align:right;
	}

}


/* ==================================================
   NUESTRA EXPERIENCIA RESPONSIVE: FIN
================================================== */


/* ==================================================
   CONTÁCTANOS: INICIO
================================================== */

.home-contact{
	width:100%;
	min-height:430px;
	padding:100px 100px;
	box-sizing:border-box;
	background:var(--red);
	color:var(--white);
}

.home-contact-container{
	width:100%;
	max-width:1240px;
	margin:0 auto;
	display:grid;
	grid-template-columns:repeat(12,minmax(0,1fr));
	column-gap:20px;
	align-items:center;
}

.home-contact-form-wrapper{
	width:100%;
	max-width:500px;
	grid-column:2 / 7;
}

.home-contact-title{
	margin:0 0 15px;
	font-family:var(--font-title);
	font-size:16px;
	line-height:20px;
	font-weight:var(--regular);
	letter-spacing:6px;
	color:var(--white);
}

.home-contact-form{
	width:100%;
	display:flex;
	flex-direction:column;
	gap:10px;
}

.home-contact-row{
	width:100%;
	display:grid;
	grid-template-columns:1.3fr 1fr;
	gap:18px;
}

.home-contact-field{
	width:100%;
	height:30px;
	padding:0 15px;
	box-sizing:border-box;
	border:0;
	border-radius:8px;
	outline:none;
	font-family:var(--font-text);
	font-size:12px;
	line-height:16px;
	font-weight:var(--regular);
	color:var(--blue);
	background:var(--white);
}

.home-contact-field::placeholder{
	color:#9A9A9A;
	opacity:1;
}

.home-contact-field:focus{
	outline:none;
	outline-offset:1px;
}

.home-contact-message{
	height:158px;
	padding:12px 15px;
	resize:none;
}

.home-contact-button{
	width:100%;
	height:30px;
	padding:0 20px;
	border:0;
	border-radius:8px;
	cursor:pointer;
	font-family:var(--font-text);
	font-size:12px;
	line-height:16px;
	font-weight:var(--medium);
	color:var(--white);
	background:var(--blue);
	transition:background .3s ease;
}

.home-contact-button:hover{
	background:#14233E;
}

/* ==================================================
   IMAGEN DE CONTACTO CON RECORRIDO HORIZONTAL
================================================== */

.home-contact-visual{
	position:relative;
	width:100%;
	height:340px;
	grid-column:8 / 13;
	overflow:hidden;
	background-color:#282828;

	background-image:url("../imgs/Contactanos-chico.png");

	/*
	La imagen conserva toda su altura y mantiene su
	proporción. Como es más ancha que el cuadro,
	sus laterales quedan fuera del área visible.
	*/
	background-size:auto 100%;
	background-repeat:no-repeat;
	background-position:left center;

	/*
	La cámara recorre todo el ancho disponible:
	izquierda → derecha → izquierda.
	*/
	animation:
		home-contact-camera-pan
		24s
		linear
		infinite
		alternate;

	will-change:background-position;
}


/* ==================================================
   MOVIMIENTO DE CÁMARA
================================================== */

@keyframes home-contact-camera-pan{

	from{
		background-position:left center;
	}

	to{
		background-position:right center;
	}

}


/* ==================================================
   ACCESIBILIDAD
================================================== */

@media(prefers-reduced-motion:reduce){

	.home-contact-visual{
		animation:none;
		background-position:center;
	}

}

/* ==================================================
   CONTÁCTANOS: FIN
================================================== */


/* ==================================================
   CONTÁCTANOS RESPONSIVE: INICIO
================================================== */

@media(max-width:900px){

	.home-contact{
		padding:70px 40px;
	}

	.home-contact-form-wrapper{
		grid-column:1 / 7;
	}

	.home-contact-visual{
		grid-column:7 / 13;
	}

}


@media(max-width:650px){

	.home-contact{
		padding:60px 20px;
	}

	.home-contact-container{
		grid-template-columns:1fr;
		row-gap:45px;
	}

	.home-contact-form-wrapper{
		max-width:none;
		grid-column:1;
	}

	.home-contact-visual{
		height:300px;
		grid-column:1;
	}

	.home-contact-row{
		grid-template-columns:1fr;
		gap:10px;
	}

}

/* ==================================================
   CONTÁCTANOS RESPONSIVE: FIN
================================================== */
