		/* --- VARIABLES GLOBALES Y ESTILOS BASE --- */
		:root {
			--primary-blue: #5DADE2;
			--primary-blue-dark: #3498DB;
			--light-gray-bg: #F4F6F7;
			--dark-slate-gray: #4A5568;
			--footer-bg: #2D3748;
			--white: #FFFFFF;
			--soft-shadow: 0px 10px 35px rgba(45, 55, 72, 0.1);
			--font-main: 'Nunito', sans-serif;
			--font-handwritten: 'Caveat', cursive;
		}
		*, *::before, *::after { 
			box-sizing: border-box; 
		}
		html { 
			scroll-behavior: smooth; 
		}
		body { 
			margin: 0; 
			font-family: var(--font-main); 
			background-color: var(--white); 
			color: var(--dark-slate-gray); 
			line-height: 1.7; 
			-webkit-font-smoothing: antialiased; 
		}
		.container { 
			width: 90%; 
			max-width: 1100px; 
			margin: 0 auto; 
		}
		h1, h2, h3 { 
			font-weight: 800; 
		}
		.section { 
			padding: 100px 0; 
			position: relative; 
			overflow: hidden; 
		}
		.section-title { 
			text-align: center; 
			max-width: 700px; 
			margin: 0 auto 60px auto; 
		}
		.section-title h1, .section-title h2 { 
			font-size: 42px; 
			color: var(--dark-slate-gray);
		}
		.section-title p, .section-title small {
			font-size: 18px; 
			color: #6a6c7a; 
			margin-top: -20px;
		}
		.section-title small {
			display: block;
			margin-top: 10px;
		}

		/* --- HEADER Y NAVEGACIÓN --- */
		.main-header { 
			position: fixed; 
			top: 0; 
			left: 0; 
			background-color: var(--white); 
			box-shadow: 0 2px 15px rgba(45, 55, 72, 0.08); 
			padding: 15px 0; 
			width: 100%; 
			z-index: 1000; 
		}
		.header-content { 
			display: flex; 
			justify-content: space-between; 
			align-items: center; 
		}
		.logo img { 
			height: 50px; 
		}
		.main-nav ul { 
			margin: 0; 
			padding: 0; 
			list-style: none; 
			display: flex; 
		}
		.main-nav li { 
			margin-left: 35px; 
		}
		.main-nav a { 
			text-decoration: none; 
			color: var(--dark-slate-gray); 
			font-weight: 700; 
			transition: color 0.3s; 
		}
		.main-nav a:hover { 
			color: var(--primary-blue); 
		}
		.header-cta {
			display: inline-block;
			background: var(--primary-blue);
			color: var(--white);
			padding: 12px 30px;
			border-radius: 50px;
			text-decoration: none;
			font-weight: 700;
			transition: all 0.3s ease;
			box-shadow: 0 5px 15px rgba(93, 173, 226, 0.3);
		}
		.header-cta:hover {
			background: var(--primary-blue-dark);
			transform: translateY(-3px);
			box-shadow: 0 8px 20px rgba(93, 173, 226, 0.4);
		}
		.mobile-nav-toggle {
			display: none;
			background: none;
			border: none;
			cursor: pointer;
			font-size: 28px;
			color: var(--dark-slate-gray);
			z-index: 1001;
		}

		/* --- COMPONENTES DE PÁGINA PRINCIPAL --- */
		.hero-section { 
			background-color: var(--light-gray-bg); 
			padding-top: 180px; 
			padding-bottom: 80px; 
		}
		.hero-grid { 
			display: grid; 
			grid-template-columns: 1fr 1fr; 
			align-items: center; 
			gap: 50px; 
		}
		.hero-text h1 { 
			font-size: 56px; 
			line-height: 1.2; 
			margin-bottom: 20px; 
		}
		.hero-text p.subtitle { 
			font-size: 20px; 
			color: #6a6c7a; 
			margin-bottom: 30px; 
		}
		.hero-image { 
			width: 100%; 
			height: 500px; 
			object-fit: cover; 
			border-radius: 30px; 
			box-shadow: var(--soft-shadow); 
		}
		.how-it-works-grid { 
			display: grid; 
			grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); 
			gap: 40px; 
			text-align: center; 
		}
		.step-card { 
			background: var(--white); 
			padding: 40px 30px; 
			border-radius: 20px; 
			border: 1px solid #f0f0f0; 
			box-shadow: var(--soft-shadow); 
			transition: transform 0.3s, border-color 0.3s; 
		}
		.step-card:hover { 
			transform: translateY(-5px); 
			border-color: var(--primary-blue); 
		}
		.step-icon {
			font-size: 50px;
			color: var(--primary-blue);
			margin-bottom: 25px;
			transition: transform 0.3s ease-in-out;
		}
		.step-card:hover .step-icon { 
			transform: scale(1.1) rotate(5deg); 
		}
		.step-card h3 { 
			font-size: 22px; 
			margin-bottom: 10px; 
		}
		.step-card p { 
			color: #6a6c7a; 
			line-height: 1.6; 
		}
		.team-section { 
			background-color: var(--light-gray-bg); 
		}
		.team-content { 
			display: grid; 
			grid-template-columns: 1fr 1.5fr; 
			gap: 60px; 
			align-items: center; 
		}
		.team-photo { 
			width: 100%; 
			max-width: 350px; 
			height: 350px; 
			object-fit: cover; 
			border-radius: 50%; 
			border: 10px solid var(--white); 
			box-shadow: var(--soft-shadow); 
		}
		.team-bio h2 { 
			font-size: 42px; 
			margin-bottom: 15px; 
		}
		.team-bio .name-signature { 
			font-family: var(--font-handwritten); 
			font-size: 48px; 
			color: var(--primary-blue); 
			margin-top: -15px; 
			display: block; 
		}
		.team-bio p { 
			font-size: 18px; 
			line-height: 1.8; 
			color: #6a6c7a; 
		}
		.service-grid { 
			display: grid; 
			grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); 
			gap: 30px; 
		}
		.service-card { 
			background: var(--white); 
			padding: 35px; 
			border-radius: 15px; 
			text-align: center; 
			box-shadow: var(--soft-shadow); 
			border: 1px solid #eee; 
		}
		.service-card h3 { 
			font-size: 20px; 
			margin-bottom: 10px; 
			color: var(--dark-slate-gray); 
		}
		.service-card p { 
			color: #6a6c7a; 
			font-size: 15px; 
			line-height: 1.6; 
		}
		.service-icon { 
			font-size: 45px; 
			color: var(--primary-blue); 
			margin-bottom: 20px; 
			transition: transform 0.3s ease-in-out; 
		}
		a.service-card-link { 
			text-decoration: none; 
			color: inherit; 
			display: block; 
		}
		a.service-card-link:hover .service-card { 
			transform: translateY(-8px); 
			border-color: var(--primary-blue); 
		}
		a.service-card-link:hover .service-icon { 
			transform: scale(1.15) rotate(-5deg); 
		}

		/* --- COMPONENTES DE TESTIMONIOS --- */
		.testimonial-carousel-wrapper { 
			position: relative; 
			max-width: 800px; 
			margin: 0 auto; 
			min-height: 280px; 
		}
		.testimonial-card { 
			position: relative; 
			background: var(--white); 
			padding: 40px 50px; 
			border-radius: 20px; 
			max-width: 800px; 
			margin: 0 auto; 
			text-align: center; 
			box-shadow: var(--soft-shadow); 
			border-left: 5px solid var(--primary-blue); 
		}
		.testimonial-item { 
			position: absolute; 
			width: 100%; 
			top: 0; 
			left: 0; 
			opacity: 0; 
			transform: scale(0.95); 
			transition: opacity 0.7s ease-out, transform 0.7s ease-out; 
		}
		.testimonial-item.active { 
			display: block; 
			opacity: 1; 
			transform: scale(1); 
		}
		.testimonial-content { 
			padding-top: 40px; 
		}
		.testimonial-quote { 
			font-size: 22px; 
			font-style: italic; 
			color: #6a6c7a; 
			margin-bottom: 30px; 
		}
		.testimonial-author { 
			font-family: var(--font-handwritten); 
			font-size: 32px; 
			color: var(--primary-blue); 
		}
		.testimonial-controls { 
			position: absolute; 
			top: 25px; 
			right: 25px; 
			display: flex; 
			align-items: center; 
			gap: 15px; 
		}
		.all-testimonials-btn { 
			background: #EAECEE; 
			color: var(--dark-slate-gray); 
			padding: 8px 20px; 
			font-size: 14px; 
			border-radius: 50px; 
			text-decoration: none; 
			font-weight: 700; 
			transition: all 0.3s ease; 
		}
		.all-testimonials-btn:hover { 
			background: var(--light-gray-bg); 
			transform: translateY(-2px); 
			box-shadow: 0 4px 8px rgba(0,0,0,0.1); 
		}
		.testimonial-counter { 
			background-color: var(--light-gray-bg); 
			color: var(--dark-slate-gray); 
			padding: 8px 15px; 
			border-radius: 20px; 
			font-size: 14px; 
			font-weight: 700; 
		}
		.testimonials-grid { 
			display: grid; 
			grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); 
			gap: 40px; 
		}
		.testimonial-card-full { 
			background: var(--white); 
			padding: 40px; 
			border-radius: 20px; 
			box-shadow: var(--soft-shadow); 
			border-left: 5px solid var(--primary-blue); 
			display: flex; 
			flex-direction: column; 
			justify-content: space-between; 
			border-top: 1px solid #eee; 
		}
		.testimonial-card-full .testimonial-quote { 
			font-size: 18px; 
			font-style: italic; 
			color: #6a6c7a; 
			margin-top: 0; 
			margin-bottom: 25px; 
			flex-grow: 1; 
		}
		.testimonial-card-full .testimonial-author { 
			font-family: var(--font-handwritten); 
			font-size: 28px; 
			color: var(--primary-blue); 
			text-align: right; 
			display: block; 
		}

		/* --- ESTILOS PÁGINA DETALLE --- */
		.detalle-header { 
			text-align: center; 
			margin-bottom: 50px; 
		}
		.detalle-icon { 
			font-size: 60px; 
			color: var(--primary-blue); 
			margin-bottom: 20px; 
		}
		.detalle-header h1 { 
			font-size: 42px; 
		}
		.detalle-contenido { 
			background: var(--white); 
			padding: 40px; 
			border-radius: 15px; 
			box-shadow: var(--soft-shadow); 
		}
		.detalle-contenido h2 { 
			font-size: 28px; 
			color: var(--primary-blue); 
			margin-top: 40px; 
			margin-bottom: 20px; 
			border-bottom: 2px solid var(--light-gray-bg); 
			padding-bottom: 10px; 
		}
		.detalle-contenido h2:first-child { 
			margin-top: 0; 
		}
		.detalle-contenido p, .detalle-contenido li { 
			font-size: 18px; 
			line-height: 1.8; 
			color: #333; 
		}
		.detalle-contenido ol { 
			padding-left: 25px; 
		}
		.detalle-contenido li { 
			margin-bottom: 15px; 
		}
		.botones-accion { 
			text-align: center; 
			margin-top: 50px; 
			display: flex; 
			justify-content: center; 
			gap: 20px; 
		}
		.btn { 
			padding: 15px 35px; 
			border-radius: 50px; 
			text-decoration: none; 
			font-weight: 700; 
			transition: all 0.3s ease; 
			display: inline-block; 
		}
		.btn-contratar { 
			background-color: var(--primary-blue); 
			color: var(--white); 
			box-shadow: 0 5px 15px rgba(93, 173, 226, 0.4); 
		}
		.btn-contratar:hover { 
			background-color: var(--primary-blue-dark); 
			transform: translateY(-3px); 
		}
		.btn-volver { 
			background-color: var(--dark-slate-gray); 
			color: var(--white); 
		}
		.btn-volver:hover { 
			background-color: #333; 
		}

		/* --- FOOTER --- */
		.main-footer {
			background-color: var(--footer-bg);
			color: var(--light-gray-bg);
			padding: 60px 0 30px 0;
			border-top-left-radius: 40px;
			border-top-right-radius: 40px;
			margin-top: 100px;
			text-align: center; /* Asegura que todo el contenido esté centrado */
		}
		.footer-title {
			text-align: center;
			font-size: 42px;
			color: var(--white);
			font-family: var(--font-main);
			font-weight: 800;
			margin-bottom: 40px;
		}
		.footer-logo img {
			filter: brightness(0) invert(1); 
			opacity: 0.8; 
			height: 50px; 
			margin-bottom: 20px;
		}
		.contact-grid { 
			display: grid; 
			grid-template-columns: 1fr 1.5fr; 
			gap: 60px; 
			align-items: flex-start; 
			text-align: left; 
		}
		.contact-info h3 { 
			font-size: 24px; 
			margin-bottom: 30px; 
			color: var(--white); 
		}
		.contact-item { 
			display: flex; 
			align-items: center; 
			margin-bottom: 25px; 
			text-decoration: none; 
			color: #a0aec0; 
			transition: color 0.3s; 
		}
		.contact-item:hover { 
			color: var(--primary-blue); 
		}
		.contact-item .icon { 
			font-size: 24px; 
			color: var(--primary-blue); 
			margin-right: 20px; 
			width: 30px; 
			text-align: center; 
		}
		.contact-form-wrapper h3 { 
			font-size: 24px; 
			margin-bottom: 20px; 
			color: var(--white); 
		}
		
		/* NUEVAS REGLAS PARA EL LOGO DEL FOOTER */
		.footer-logo {
			display: inline-block; /* Permite centrarlo correctamente */
			margin-bottom: 25px; /* Espacio entre el logo y los íconos sociales */
		}

		.footer-logo img {
			height: 90px; /* Puedes ajustar este tamaño si lo necesitas */
			width: auto;
			/* El filtro para ponerlo blanco que tenías en otro archivo ya no es necesario
			   si la imagen 'LOGO-blanco.png' ya es blanca de por sí. */
		}
		
		/* --- NUEVO ESTILO PARA CAMPOS DEL FORMULARIO --- */
		.contact-form input,
		.contact-form textarea {
			width: 100%;
			padding: 12px 15px;
			border: 1px solid #D1D5DB; /* Borde más suave */
			background-color: var(--white); /* Fondo blanco */
			color: var(--dark-slate-gray); /* Texto oscuro */
			border-radius: 8px;
			font-family: var(--font-main);
			font-size: 15px;
			transition: border-color 0.2s, box-shadow 0.2s; /* Transición suave */
		}

		/* Estilo para el texto de ejemplo (placeholder) */
		.contact-form input::placeholder,
		.contact-form textarea::placeholder {
			color: #9CA3AF;
			opacity: 1;
		}

		/* Efecto visual cuando el usuario hace clic en un campo */
		.contact-form input:focus,
		.contact-form textarea:focus {
			outline: none;
			border-color: var(--primary-blue);
			box-shadow: 0 0 0 3px rgba(93, 173, 226, 0.3);
		}

		/* El textarea mantiene su tamaño y margen */
		.widget-body .contact-form textarea,
		.contact-form textarea { 
			resize: vertical; 
			min-height: 100px;
			margin-bottom: 15px;
		}

		/* Separamos el botón para que mantenga su estilo original */
		.contact-form button {
			width: 100%;
			padding: 15px;
			border-radius: 8px;
			border: none;
			background: var(--primary-blue);
			color: var(--white);
			font-weight: 700;
			font-size: 18px;
			cursor: pointer;
			transition: all 0.3s ease;
		}

		.contact-form button:hover {
			background: var(--primary-blue-dark);
		}
		.contact-form button { 
			background: var(--primary-blue); 
			border: none; 
			font-weight: 700; 
			font-size: 18px; 
			cursor: pointer; 
			transition: all 0.3s ease; 
		}
		.contact-form button:hover { 
			background: var(--primary-blue-dark); 
		}
		.mensaje { 
			padding: 15px; 
			border-radius: 8px; 
			margin-bottom: 20px; 
			text-align: center; 
			color: var(--dark-slate-gray); 
		}
		.mensaje.exito { 
			background-color: #d4edda; 
			border: 1px solid #c3e6cb; 
		}
		.mensaje.error { 
			background-color: #f8d7da; 
			border: 1px solid #f5c6cb; 
		}
		.footer-socials { 
			margin-top: 40px; 
			margin-bottom: 40px; 
			display: flex; 
			justify-content: center; 
			gap: 20px; 
		}
		.footer-socials a { 
			color: var(--light-gray-bg); 
			font-size: 20px; 
			text-decoration: none; 
			width: 50px; 
			height: 50px; 
			display: flex; 
			align-items: center; 
			justify-content: center; 
			border: 2px solid #718096; 
			border-radius: 50%; 
			transition: all 0.3s ease; 
		}
		.footer-socials a:hover { 
			color: var(--white); 
			background-color: var(--primary-blue); 
			border-color: var(--primary-blue); 
			transform: translateY(-4px); 
			box-shadow: 0 5px 10px rgba(93, 173, 226, 0.3); 
		}
		.footer-socials a img { 
			width: 60%; 
			height: auto; 
		}
		.footer-copy { 
			padding-top: 30px; 
			margin-top: 40px; 
			border-top: 1px solid #4A5568; 
			font-size: 14px; 
			color: #718096; 
			text-align: center; 
		}

		/* --- MEDIA QUERIES (RESPONSIVE) --- */
		@media (max-width: 992px) {
			.main-nav { 
				display: flex;
				flex-direction: column;
				justify-content: center;
				align-items: center;
				gap: 40px;
				position: fixed;
				top: 0;
				right: -100%;
				width: 100%;
				height: 100vh;
				background: rgba(255, 255, 255, 0.9);
				backdrop-filter: blur(10px);
				transition: right 0.4s ease-in-out;
			}
			.main-nav.is-open {
				right: 0;
			}
			.main-nav ul {
				flex-direction: column;
				text-align: center;
				gap: 40px;
			}
			.main-nav li {
				margin-left: 0;
			}
			.main-nav a {
				font-size: 24px;
			}
			.header-cta {
				display: none;
			}
			.mobile-nav-toggle {
				display: block;
			}
			.hero-grid, .team-content, .contact-grid, .testimonials-grid { 
				grid-template-columns: 1fr; 
				text-align: center; 
			} 
			.hero-text { 
				order: 2; 
			} 
			.hero-image-container { 
				order: 1; 
				margin-bottom: 40px; 
			} 
			.team-photo { 
				margin: 0 auto 40px auto; 
			} 
			.contact-info { 
				text-align: center; 
			} 
			.contact-item { 
				justify-content: center; 
			}
		}

		@media (max-width: 768px) { 
			.section { 
				padding: 80px 0; 
			} 
			.hero-section { 
				padding-top: 150px; 
			} 
			.hero-text h1 { 
				font-size: 44px; 
			} 
			.section-title h1, .section-title h2, .detalle-header h1 { 
				font-size: 36px; 
			}
			.testimonial-card-full {
				padding: 30px;
			}
		}
		
		/* --- ESTILOS PARA EL WIDGET DE CONTACTO FLOTANTE --- */

		.widget-contacto-flotante {
			position: fixed;
			bottom: 25px;
			right: 25px;
			z-index: 1000;
		}

		/* Botón/Ícono para abrir el widget */
		.widget-boton-abrir {
			width: 60px;
			height: 60px;
			background-color: var(--primary-blue);
			color: var(--white);
			border-radius: 50%;
			border: none;
			cursor: pointer;
			display: flex;
			align-items: center;
			justify-content: center;
			font-size: 28px;
			box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
			transition: transform 0.2s ease-out, background-color 0.2s;
		}

		.widget-boton-abrir:hover {
			background-color: var(--primary-blue-dark);
			transform: scale(1.1);
		}

		/* Contenedor del formulario */
		.widget-formulario {
			position: absolute;
			bottom: 80px; /* 60px del botón + 20px de espacio */
			right: 0;
			width: 320px;
			background: var(--white);
			border-radius: 15px;
			box-shadow: 0 5px 25px rgba(0, 0, 0, 0.15);
			overflow: hidden;
			
			/* Animación para aparecer/desaparecer */
			visibility: hidden;
			opacity: 0;
			transform: translateY(20px);
			transition: all 0.3s ease-in-out;
		}

		/* Clase que se añade con JS para mostrar el formulario */

		.widget-formulario.is-visible {
			visibility: visible;
			opacity: 1;
			transform: translateY(0);
		}

		.widget-header {
			background: var(--primary-blue);
			color: var(--white);
			padding: 15px 20px;
			display: flex;
			justify-content: space-between;
			align-items: center;
		}

		.widget-header h3 {
			margin: 0;
			font-size: 18px;
		}

		.widget-boton-cerrar {
			background: none;
			border: none;
			color: var(--white);
			font-size: 24px;
			cursor: pointer;
			line-height: 1;
			opacity: 0.8;
			transition: opacity 0.2s;
		}

		.widget-boton-cerrar:hover {
			opacity: 1;
		}

		.widget-body {
			padding: 20px;
		}

		/* Ajustes al formulario dentro del widget */
		.widget-body .contact-form input,
		.widget-body .contact-form textarea {
			margin-bottom: 15px; /* Menos espacio */
			font-size: 15px; /* Texto más pequeño */
		}

		.widget-body .contact-form textarea {
			min-height: 100px;
		}

		.widget-body .mensaje {
			margin: -10px 0 15px 0;
			padding: 10px;
			font-size: 14px;
		}

		/* ANIMACIONES DEL BOTON FLOTANTE*/
		
		@keyframes ring {
			0% { transform: rotate(0); }
			10% { transform: rotate(20deg); }
			20% { transform: rotate(-15deg); }
			30% { transform: rotate(10deg); }
			40% { transform: rotate(-5deg); }
			50% { transform: rotate(0); }
			100% { transform: rotate(0); }
		}
		
		.widget-boton-abrir {
			/* ... tus estilos existentes ... */
			
			/* --- ANIMACIÓN AÑADIDA --- */
			animation: ring 3s infinite;
			animation-delay: 4s;
			/* Origen de la transformación en la parte inferior central */
			transform-origin: bottom center;
		}

		/* Detenemos la animación y aplicamos el efecto de hover normal */
		.widget-boton-abrir:hover {
			animation: none;
			transform: scale(1.1);
		}
		
		/* FIN DE LAS ANIMACIONES DEL BOTON FLOTANTE*/
		
		/* Estilo para el mensaje de éxito */
		.mensaje-enviado {
			text-align: center;
			padding: 20px;
			background-color: #e6f7ec; /* Un verde claro */
			color: #1a5e31; /* Un verde oscuro para el texto */
			border-radius: 8px;
			font-size: 1.1em;
			line-height: 1.5;
		}

		.mensaje-enviado p {
			margin-bottom: 20px;
		}

		/* Estilo para el botón de reseteo */
		.reset-form-btn {
			background-color: #4CAF50; /* Verde más oscuro */
			color: white;
			padding: 10px 20px;
			border: none;
			border-radius: 5px;
			cursor: pointer;
			font-size: 1em;
			transition: background-color 0.3s ease;
		}

		.reset-form-btn:hover {
			background-color: #45a049;
		}



/* --- ESTILOS PARA EL NUEVO MENÚ DESPLEGABLE --- */

/* Contenedor del item de menú */
.main-nav .dropdown {
    position: relative;
}

/* Flecha al lado del texto */
.main-nav .dropdown-toggle i {
    font-size: 0.7em;
    margin-left: 5px;
    transition: transform 0.3s ease;
}

/* Estructura del menú que se despliega */
.main-nav .dropdown-menu {
    display: none; /* Oculto por defecto */
    position: absolute;
    top: 100%;
    left: 0;
    background-color: var(--white);
    border-radius: 8px;
    box-shadow: var(--soft-shadow);
    list-style: none;
    padding: 10px 0;
    margin-top: 10px; /* Pequeño espacio entre el menú y el botón */
    min-width: 250px; /* Ancho mínimo del desplegable */
    z-index: 100;
}

/* Estilo de cada link dentro del desplegable */
.main-nav .dropdown-menu a {
    padding: 12px 20px;
    display: block;
    white-space: nowrap;
    font-weight: 600;
}

/* Mostrar el menú al pasar el ratón por encima */
.main-nav .dropdown:hover .dropdown-menu {
    display: block;
}

/* Girar la flecha al pasar el ratón */
.main-nav .dropdown:hover .dropdown-toggle i {
    transform: rotate(180deg);
}