 /* Tipografía de Google Fonts */
 @import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&family=Lora:wght@400;600&display=swap');

 :root {
     --color-primario: #2E4034; /* Verde oscuro (Coigüe) */
     --color-secundario: #587458; /* Verde medio (Arrayán) */
     --color-acento: #3ebd03; 
     --color-fondo: #F4F1EA; /* Blanco hueso (Corteza de árbol) */
     --color-texto: #333333;
     --fuente-titulos: 'Lora', serif;
     --fuente-cuerpo: 'Montserrat', sans-serif;
 }

 body {
     font-family: var(--fuente-cuerpo);
     background-color: var(--color-fondo);
     color: var(--color-texto);
     margin: 0;
     padding: 0;
     scroll-behavior: smooth;
 }

 .header {
     display: flex;
     justify-content: space-between;
     align-items: center;
     padding: 1rem 3rem;
     background-color: #fff;
     box-shadow: 0 2px 5px rgba(0,0,0,0.1);
     position: sticky;
     top: 0;
     z-index: 1000;
 }

 /* el header para que sea responsivo */
 .nav-toggle {
 display: none;
 font-size: 1.5rem;
 color: var(--color-primario);
 background: none;
 border: none;
 cursor: pointer;
}

/* Estilos para la lista de navegación */
.nav-list {
 display: flex;
 align-items: center;
 list-style: none;
 margin: 0;
 padding: 0;
}

.nav-link {
 padding: 0 1rem; 
}



@media (max-width: 768px) {
 .logo span {
     display: none;
 }

 .nav-toggle {
     display: block; 
 }

 
 .nav {
     position: fixed;
     top: 0;
     right: -100%;
     width: 30%;
     height: 100vh;
     background-color: var(--color-primario);
     box-shadow: -2px 0 5px rgba(0,0,0,0.2);
     padding: 4rem 2rem;
     transition: right 0.4s ease-in-out;
     z-index: 1001; /* Se asegura que esté por encima de todo */
 }

 .nav.show-menu {
     right: 0;
 }

 .nav-list {
     flex-direction: column;
     gap: 2.5rem; /* Espacio entre los enlaces */
     text-align: center;
 }


 .nav .nav-link {
     color: var(--color-fondo);
     font-size: 1.2rem;
     font-weight: 600;
 }
 .nav .nav-link:hover {
     color: var(--color-acento);
 }
}




 .logo {
     font-family: var(--fuente-titulos);
     font-size: 1.5rem; /* MEJORA: Ligeramente más pequeño para acomodar el logo */
     font-weight: 700;
     color: var(--color-primario);
     text-decoration: none;
     /* MEJORA: Flexbox para alinear imagen y texto */
     display: flex;
     align-items: center;
     gap: 10px;
 }
 .logo i { color: var(--color-acento); }

 .nav a {
     margin: 0 15px;
     text-decoration: none;
     color: var(--color-secundario);
     font-weight: 600;
     transition: color 0.3s;
 }
 .nav a:hover {
     color: var(--color-acento);
 }

 /* --- Contenedor General --- */
 .container {
     padding: 4rem 2rem;
     max-width: 1200px;
     margin: auto;
     text-align: center;
 }

 h2 {
     font-family: var(--fuente-titulos);
     font-size: 2.8rem;
     color: var(--color-primario);
     margin-bottom: 2rem;
 }

 /* --- Carrusel SwiperJS --- */
 .swiper {
     width: 100%;
     height: 60vh;
 }
 .swiper-slide {
     position: relative;
     text-align: center;
     font-size: 18px;
     background: #fff;
     display: flex;
     justify-content: center;
     align-items: center;
 }
 .swiper-slide img {
     display: block;
     width: 100%;
     height: 100%;
     object-fit: cover;
     filter: brightness(0.6);
 }
 .slide-caption {
     position: absolute;
     color: white;
     font-size: 2.5rem;
     font-family: var(--fuente-titulos);
     padding: 1rem;
     background: rgba(0,0,0,0.4);
     border-radius: 10px;
     text-shadow: 2px 2px 4px rgba(0,0,0,0.7);
     /* Animación */
     opacity: 0;
     transform: translateY(20px);
     transition: opacity 0.5s ease-out, transform 0.5s ease-out;
 }
 .swiper-slide-active .slide-caption {
     opacity: 1;
     transform: translateY(0);
 }
 .swiper-button-next, .swiper-button-prev {
     color: var(--color-acento) !important;
 }
 .swiper-pagination-bullet-active {
     background: var(--color-acento) !important;
 }

 /* --- Servicios  --- */
 .servicios-grid {
    display: flex;
    flex-wrap: wrap; /* Permite que los elementos pasen a la siguiente línea */
    justify-content: center; 
    gap: 2.5rem;
    margin-top: 3rem;
 }

 .servicio-card {
     background: #fff;
     box-shadow: 0 4px 15px rgba(0,0,0,0.08);
     text-align: center;
     padding: 1.5rem;
     border-radius: 10px;
     transition: transform 0.3s, box-shadow 0.3s;
     overflow: hidden; 

    flex-grow: 1;
    flex-basis: 280px;
    max-width: 350px;
 }


 .servicio-card:hover {
     transform: translateY(-10px);
     box-shadow: 0 8px 25px rgba(46, 64, 52, 0.15); /* Sombra un poco más pronunciada */
 }

 .servicio-imagen {
     width: 180px;
     height: 180px;
     margin: 0 auto 1.5rem auto;
     /* clip-path: polygon(50% 0%, 100% 10%, 100% 90%, 50% 100%, 0% 90%, 0% 10%); */
     border-radius: 10%;
     overflow: hidden;
     position: relative; 
     background-color: var(--color-primario); /* Color de fondo mientras carga la imagen */
 }

 .servicio-imagen img {
     width: 100%;
     height: 100%;
     object-fit: cover;
     transition: transform 0.4s ease-in-out; 
 }


 .servicio-card:hover .servicio-imagen img {
     transform: scale(1.10);
 }



 .servicio-card h3 {
     font-family: var(--fuente-titulos);
     color: var(--color-secundario);
     font-size: 1.5rem;
     margin-bottom: 0.5rem;
 }
 /* --- Misión y Visión --- */
 .mision-vision-wrapper {
     display: flex;
     justify-content: center;
     gap: 2rem;
     flex-wrap: wrap;
     margin-top: 3rem;
     padding: 3rem;
     border-radius: 15px;
 }
 .mv-card {
     background-color: var(--color-fondo);
     padding: 2rem;
     border-radius: 10px;
     box-shadow: 0 5px 20px rgba(0,0,0,0.1);
     flex-basis: 400px;
     flex-grow: 1;
     border-left: 5px solid var(--color-acento);
 }
 .mv-card h3 {
     font-family: var(--fuente-titulos);
     color: var(--color-primario);
     font-size: 2rem;
     margin-bottom: 1rem;
 }

 /* --- Clientes --- */
 .clientes-grid {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
     gap: 2rem;
     margin-top: 3rem;
 }
 .cliente-item {
     display: flex;
     flex-direction: column;
     align-items: center;
     gap: 1rem;
 }
 .cliente-icono {
     width: 120px;
     height: 120px;
     background-color: #fff;
     border-radius: 50%;
     display: flex;
     justify-content: center;
     align-items: center;
     box-shadow: 0 0 15px rgba(0,0,0,0.1);
 }
 .cliente-icono img {
     width: 70%;
     height: auto;
     object-fit: contain;
 }
 .cliente-item p {
     font-style: italic;
     color: var(--color-secundario);
 }

 /* --- Formulario de Contacto --- */
 #contacto {
     background-color: #fff;
     border-radius: 15px;
     box-shadow: 0 5px 20px rgba(0,0,0,0.05);
 }
 .form-container {
     max-width: 600px;
     margin: auto;
     display: grid;
     gap: 1.5rem;
 }
 .form-container input, .form-container textarea {
     width: 100%;
     padding: 1rem;
     border: 1px solid #ccc;
     border-radius: 8px;
     font-family: var(--fuente-cuerpo);
     font-size: 1rem;
     box-sizing: border-box; 
 }
 .form-container textarea {
     resize: vertical;
     min-height: 150px;
 }
 .form-container button {
     background-color: var(--color-acento);
     color: white;
     padding: 1rem 2rem;
     border: none;
     border-radius: 8px;
     font-size: 1.1rem;
     font-weight: 700;
     cursor: pointer;
     transition: background-color 0.3s;
 }
 .form-container button:hover {
     background-color: #b83b49;
 }
 .form-explicacion {
     margin-top: 2rem;
     font-size: 0.9rem;
     color: #666;
 }

 /* --- Footer --- */
 .footer {
     background-color: var(--color-primario);
     color: var(--color-fondo);
     padding: 2rem;
     text-align: center;
 }
 .footer p { margin: 0.5rem 0; }
 .footer a {
     color: var(--color-fondo);
     text-decoration: none;
 }

 /* --- Iconos Flotantes de Redes Sociales --- */
 .social-floating {
     position: fixed;
     bottom: 20px;
     right: 20px;
     display: flex;
     flex-direction: column;
     gap: 10px;
     z-index: 999;
 }
 .social-floating a {
     width: 50px;
     height: 50px;
     background-color: var(--color-secundario);
     color: white;
     border-radius: 50%;
     display: flex;
     justify-content: center;
     align-items: center;
     text-decoration: none;
     font-size: 1.5rem;
     box-shadow: 2px 2px 8px rgba(0,0,0,0.2);
     transition: background-color 0.3s, transform 0.3s;
 }
 .social-floating a:hover {
     background-color: var(--color-acento);
     transform: scale(1.1);
 }

 .hover-efecto {
     transition: transform 0.3s ease, box-shadow 0.3s ease;
 }
 .hover-efecto:hover {
     transform: translateY(-5px);
     box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
 }
 .cliente-item p strong {
     color: var(--color-primario);
 }

 /* --- Footer --- */
 .footer { background-color: var(--color-primario); color: var(--color-fondo); padding: 2rem; text-align: center; }
 .footer p { margin: 0.5rem 0; }
 .footer a { color: var(--color-fondo); text-decoration: none; }