/* Carousel */
.contenedor-recomendadas{
	max-width: 1440px;
	margin: 0px auto;
}

.recomendadas-header{
	display: flex;
	justify-content: space-between;
	max-width: 1138px;
	margin: 0 auto;
    margin-bottom: 48px;
}

.recomendadas-header a{
	align-self: center;
}

.recomendadas-header h3{
	font-family: var(--fuente-titulos);
	font-size: var(--tamano-titulo-h3);
	text-transform: uppercase;
    font-weight: 400;
    max-width: 700px;
    margin: 0;
    line-height: 100%;
}

.recomendadas-carousel {
	position: relative;
	display: flex;
	align-items: center;
	margin: 0 auto;
    min-height: 300px;
	gap: 12px;
  }

  .carousel{
	  max-width: 1137px;
	  margin: 0 auto;
  }
  
  .carousel-contenedor {
	display: flex;
	gap: 24px;
	overflow-x: auto;
	scroll-behavior: smooth;
	padding: 20px 0;
	scroll-snap-type: x mandatory;
	padding: 0;

	overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }

  .carousel-contenedor::-webkit-scrollbar {
    display: none; 
}
  
  
  .carousel-button-prev,
  .carousel-button-next {
	position: static;
	top: 50%;
	transform: translateY(-50%);
	cursor: pointer;
	z-index: 1;
  }

  .carousel-button-prev{
	  left: -70px;
  }
  
  .carousel-button-next {
	right: -70px;
  }


/* Banner fondos */
  #banner-fondos.banner {
	height: 381px;
	max-width: 1440px;
	padding: 0 148px;
	margin: 82px auto; 
	display: flex;
	align-items: center;
	box-sizing: border-box;
  }
  
  .banner-content {
	display: flex;
	width: 100%;
	height: 100%;
  }
  
  .banner-img {
	width: 50%;
	height: 100%;
    background-image: url('../assets/img/banner-fondos.svg');
	background-size: cover;
	background-position: center;
  }
  
  .banner-text {
	width: 50%;
	height: calc(100% - 62px); 
	margin: 31px 0;
	background-color: #7ED6D1;
	padding: 48px 32px 25px 32px; 
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	color: #232E35;
	border-radius: 0 20px 20px 0;
  }
  
  .banner-text p {
	font-size: 2.1875rem;
	font-family: 'Public Sans', sans-serif;
	line-height: 120%;
  }
  
  .banner-btn {
	height: 55px; 
	padding: 16px 24px; 
	background-color: transparent;
	border: solid 2px #232E35;
	color: #232E35;
	text-decoration: none;
	font-family: 'Public Sans', sans-serif;
	font-size: 1.3125rem;
	border-radius: 100px;
	transition: background-color 0.3s ease;
	font-weight: bold;
	display: inline-flex; 
	align-items: center;
	justify-content: center;
	width: auto; 
	box-sizing: border-box;
	margin-left: auto;
  }
  
  .banner-btn:hover {
	background-color: #232E35;
	color: #ffffff;
  }


  /* Newsletter */
.newsletter{
	overflow: hidden;
	background-color: var(--color-principal-claro);
	height: 578px;
	padding: 76px 40px;
	position: relative;
}

.newsletter-banner-decor {
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	max-height: 426px;
	height: 100%;
	width: 100%;
	background-image: url(../template-parts/svg/banner-newsletter.svg);
	background-repeat: no-repeat;
	background-size: contain;
	background-position: left center;
	z-index: 0;
	pointer-events: none;
  }

  /* Decorativo izquierdo */
.newsletter-banner-decor.decor-izq {
	left: 0;
	transform: translate(-20%, -50%);
  }
  
  /* Decorativo derecho, espejado */
  .newsletter-banner-decor.decor-der {
	right: 0;
	transform: translate(90%, -50%);
  }

.newsletter-container{
	background-color: var(--color-neutro-semiblanco);
	border-radius: 20px;
	max-width: 1358px;
	width: 100%;
	max-height: 426px;
	height: 100%;
	margin: auto;
	display: flex;
	gap: 48px;
	position: relative;
	justify-content: center;
}

.newsletter-container-izq {
	max-width: 426px;
	margin: auto 24px auto 200px;
	width: 50%;
}

.newsletter-container-der {
	max-width: 453px;
	margin: auto 200px auto 24px;
	width: 50%;
}

.newsletter-container-izq h3{
	margin: auto 0 auto auto;
}

.newsletter-titulo{
	font-family: var(--fuente-titulos);
	font-size: var(--tamano-titulo-h3);
	color: var(--color-principal-oscuro);
	font-weight: 700;
	text-transform: 700;
	text-align: right;
	text-transform: uppercase;
	line-height: 100%;
}

.newsletter-bajada{
	font-family: var(--fuente-texto);
	font-size: var(--tamano-h4);
	color: var(--color-principal-oscuro);
	font-weight: 400;
	text-align: right;
	line-height: 120%;
}

.newsletter-form {
	max-width: 453px;
	display: flex;
	flex-direction: column;
  }
  
  .newsletter-form input[type="email"] {
	padding: 18px 24px;
	background-color: var(--color-principal-oscuro);
	border-radius: 100px;
	width: 100%;
	margin-bottom: 16px;
	border: 0px;
	color: var(--color-neutro-blanco);
	font-weight: 400;
	transition: all 0.3s ease;
  }

  .newsletter-container-der .newsletter-form input::placeholder {
	margin-bottom: 16px;
	color: var(--color-neutro-blanco);
	font-size: var(--tamano-p1);
	font-family: var(--fuente-texto);
  }
  
  .newsletter-form input:focus {
	border: 2px solid var(--color-principal-claro);
	background-color: var(--color-neutro-blanco);
	color: var(--color-principal-oscuro);
	font-family: var(--fuente-texto);
	font-size: var(--tamano-p1);
	font-weight: 700;
	outline: none;
  }

  .newsletter-form input:invalid:focus,
  .newsletter-form input:invalid:focus-visible {
	border: 2px solid #76384E;
	background-color: var(--color-neutro-semiblanco);
	outline: none;
  }
  
  .newsletter-form input:invalid:not(:focus):not(:placeholder-shown) {
	border: 2px solid #76384E;
	color: #76384E;
	background-color: #F9F3F5;
  }

  .newsletter-legales {
	font-family: var(--fuente-texto);
	font-size: var(--tamano-p3);
	color: var(--color-neutro-gris-medio);
	margin-bottom: 8px;
	line-height: 120%;
	display: inline-block;
  }

  .newsletter-legales p {
	margin: 0;
  }

  .sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
  }



/* RESPONSIVE TABLET */
/* Tablet: hasta 1279px */
@media (max-width: 1279px) {
	/* Carousel */
	.recomendadas-header{
		flex-direction: column;
		gap: 24px;
	}

	.recomendadas-header a{
		align-self: flex-start;
	}

	.carousel{
		max-width: 750px;
	}

	/* Banner Fondos */
	#banner-fondos.banner {
		height: auto;
		margin: 48px 100px;
	  }
	
	  .banner-content {
		flex-direction: column;
	  }
	
	  .banner-img,
	  .banner-text {
		width: 100%;
		height: auto;
		border-radius: 0; /* Quitamos el border-radius lateral */
	  }
	
	  .banner-img {
		height: 200px;
		background-size: cover;
		border-radius: 20px 20px 0 0;
	  }
	
	  .banner-text {
		padding: 32px 24px 24px;
		border-radius: 0 0 20px 20px;
		margin: 0;
	  }
	
	  .banner-btn {
		margin-top: 16px;
		width: fit-content;
	  }

	/* Newsletter */
	.newsletter{
		height: auto;
		padding: 50px 24px;
	}

	.newsletter-banner-decor {
		display: none;
	  }

	.newsletter-container{
		height: auto;
		max-height: 100%;
		gap: 0px;
		padding: 30px 24px;
	}

	.newsletter-container-izq{
		margin: 0px 24px;
	}
	.newsletter-container-der{
		margin: auto 24px;
	}
}

/* Mobile: hasta 897px */
@media (max-width: 897px) {
	/* Carousel */
	.recomendadas-header{
		margin: 24px;
	}
	.contenedor-recomendadas{
		max-width: 100vw;
		margin: 24px 0px;
	}

	.recomendadas-carousel{

	}

	.carousel{
		max-width: 100vw;
	}

	.carousel-contenedor{
		scroll-padding: 24px;
		gap: 12px;
	}

	.carousel-button-prev{
		display: none;
	}

	.carousel-button-prev svg{
		width: 30px;
	}

	.carousel-button-next{
		display: none;
	}

	.carousel-button-next svg{
		width: 30px;
	}

	.carousel-contenedor > .card-entrada:first-child {
		margin-left: 24px;
	}
	
	.carousel-contenedor > .card-entrada:last-child {
		margin-right: 24px;
	}

		/* CARD ENTRADA */
		.card-recomendada{
			min-width: 320px;
		}

	/* Banner Fondos */
	#banner-fondos.banner {
		padding: 0;
		margin: 24px 16px;
	  }

	.banner-content{
		max-width: 100%;
		margin: 0 auto;
	}

	.banner-text {
		padding: 24px 16px;
	  }
	
	  .banner-text p {
		font-size: 1.5rem;
	  }
	
	  .banner-btn {
		font-size: 1rem;
		height: 48px;
		padding: 12px 20px;
	  }

	/* Newsletter */
	.newsletter{
		padding: 24px 16px;
	}
	.newsletter-banner-decor{
		display: none;
	}
	.newsletter-container{
		flex-direction: column;
		gap: 32px;
	}

	.newsletter-container-izq{
		width: 100%;
		max-width: 100%;
		margin: 0 auto;
	}

	.newsletter-titulo,
	.newsletter-bajada{
		text-align: left;
	}

	.newsletter-container-der{
		width: 100%;
		max-width: 100%;
		margin: 0 auto;
	}

	.newsletter-form{
		max-width: 100%;
	}
}