/*
  Hoja de Estilos General
  Tipografía: Montserrat
  Autor: Edson Otero | Edzonzin Studio
*/

/*
--------------------------------
0. Estilos del Preloader
--------------------------------
*/

/* 1. ESTILO PREDETERMINADO (Para pantallas mayores a 520px) */
/* La clase .mobile por defecto estará oculta (display: none) */
.mobile {
    display: none;
}

/* 2. MEDIA QUERY (Para pantallas de 520px o menos) */
/* Cuando el ancho máximo sea de 520px (o menos), se vuelve visible */
@media (max-width: 520px) {
    .mobile {
        display: block; /* o display: flex, display: grid, etc., según lo que contenga la clase */
    }
}

#preloader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--blanco); /* Usa tu variable de color */
    z-index: 9999; /* Encima de todo */
    
    /* Centra el logo */
    display: flex;
    align-items: center;
    justify-content: center;
    
    /* Para el fade-out de salida */
    transition: opacity 0.5s ease-out;
}

/* Clase que añadirá JS para ocultarlo */
#preloader.loaded {
    opacity: 0;
    pointer-events: none; /* Desactiva clics */
}

/* Contenedor del logo animado */
.preloader-logo {
    /* La magia del "relleno" de abajo hacia arriba */
    clip-path: inset(100% 0 0 0);
    
    /* Animación: nombre, duración, curva, modo de relleno */
    animation: fill-up 1.2s ease-out forwards;
    animation-delay: 0.2s; /* Pequeña pausa antes de empezar */
}

.preloader-logo img {
    width: 244px; /* Ancho original del SVG */
    height: auto;
    display: block; /* Buena práctica para <img> */
}

/* La animación que "llena" (revela) el logo */
@keyframes fill-up {
    from {
        clip-path: inset(100% 0 0 0); /* 100% oculto desde arriba */
    }
    to {
        clip-path: inset(0 0 0 0);   /* 0% oculto (totalmente visible) */
    }
}

/* 1. Importación de Fuentes (Google Fonts)
--------------------------------*/
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700;800;900&display=swap');

/* 2. Variables de Color (:root)
--------------------------------*/
:root {
  --azul: #0080ca;
  --negro: #1a1a1a;
  --amarillo: #f5ba27;
  --verde: #dfff7a;

  /* Colores neutros (sugeridos) */
  --blanco: #ffffff;
  --gris-claro: #f8f9fa;
  --gris-oscuro: #343a40;
}

/* 3. Reseteo General y Estilos Base
--------------------------------*/

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  /* Evita el "salto" al hacer clic en enlaces de ancla */
}

body {
  font-family: 'Montserrat', sans-serif;
  line-height: 1.6;
  color: var(--negro);
  background-color: var(--blanco);
  overflow-x: hidden; /* Evita el scroll horizontal no deseado */
}

a {
  text-decoration: none;
  color: var(--azul);
  transition: color 0.3s ease;
}

a:hover {
  color: var(--negro);
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: 700; /* Un peso más audaz para los títulos por defecto */
  line-height: 1.2;
  margin-bottom: 0.75rem;
}

/* 4. (Opcional) Clases de Utilidad
--------------------------------*/
.text-azul {
  color: var(--azul);
}

.bg-negro {
  background-color: var(--negro);
  color: var(--blanco);
}

.bg-azul {
  background-color: var(--azul);
  color: var(--blanco);
}

/*
--------------------------------
5. Estilos del Header (Navbar)
--------------------------------
*/

/* 5.1. Contenedor Flotante */
.navbar-floating-wrapper {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  /* El padding simula el 'margin-top' que pediste (24px o 32px) */
  padding-top: 24px;
  z-index: 1030; /* Encima de otro contenido */
}

/* El 'navbar-container' es para centrar el navbar en diseños anchos */
.navbar-container {
  max-width: 90%; /* Ajusta esto al ancho máximo de tu diseño */
}

/* 5.2. Estilo del Navbar (La tarjeta blanca) */
.navbar {
  background-color: var(--blanco);
  border-radius: 50px; /* Hace que se vea como píldora */
  padding: 0.75rem 1.5rem;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  transition: all 0.3s ease;
}

.navbar-brand {
  padding: 0;
  border-right: 2px solid #f6f6f6;
}

.navbar-logo {
  height: 60px; /* Ajusta la altura de tu logo */
  width: auto;
}

/* 5.3. Estilos de Links (Desktop) */
.navbar-nav .nav-link {
  font-weight: 400;
  color: var(--negro);
  text-transform: uppercase;
  font-size: 0.9rem;
  padding: 0.5rem 1rem;
  transition: color 0.3s ease;
}

.navbar-nav .nav-link:hover,
.navbar-nav .nav-link.active {
  color: var(--azul);
}

/* 5.4. Iconos Sociales y Botón (Desktop) */
.social-icon {
  font-size: 1.5rem; /* Tamaño de iconos FB/IG */
  color: var(--azul);
  margin-left: 1rem;
  transition: transform 0.3s ease;
}

.social-icon:hover {
  color: var(--amarillo);
  transform: scale(1.1);
}

.btn-contact {
  background-color: var(--azul);
  color: var(--blanco);
  border-radius: 50px;
  padding: 0.6rem 1.5rem;
  font-weight: 400;
  text-transform: uppercase;
  font-size: 0.9rem;
  transition: all 0.3s ease;
}

.btn-contact:hover {
  background-color: var(--amarillo);
  color: var(--blanco);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
  transform: translateY(-2px);
}

/* 5.5. Toggler (Hamburguesa a X) */
.navbar-toggler {
  border: none;
  padding: 0;
  font-size: 24px;
  position: relative;
  width: 30px;
  height: 30px;
}

.navbar-toggler:focus {
  box-shadow: none;
}

.hamburger-icon {
  display: block;
  position: relative;
  width: 24px;
  height: 20px;
}

.hamburger-icon .line {
  display: block;
  width: 100%;
  height: 2px;
  background-color: var(--azul);
  position: absolute;
  left: 0;
  border-radius: 2px;
  transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
}

.hamburger-icon .line-1 { top: 0; }
.hamburger-icon .line-2 { top: 50%; transform: translateY(-50%); }
.hamburger-icon .line-3 { bottom: 0; }

/* Animación a X */
/* Bootstrap 5 añade 'aria-expanded="true"' al toggler cuando se abre el offcanvas */
.navbar-toggler[aria-expanded="true"] .line-1,
.hamburger-icon.is-active .line-1 {
  transform: translateY(8px) rotate(45deg);
  width: 24px;
}

.navbar-toggler[aria-expanded="true"] .line-2,
.hamburger-icon.is-active .line-2 {
  opacity: 0;
}

.navbar-toggler[aria-expanded="true"] .line-3,
.hamburger-icon.is-active .line-3 {
  transform: translateY(-8px) rotate(-45deg);
  width: 24px;
}

.logo-menu {
  width: 50%;
  margin: 0 auto;
  padding: 16px;
}

/* --------------------------------
6. Estilos del Offcanvas (Menú Móvil)
--------------------------------
*/

.offcanvas-bottom {
  height: 90vh !important; /* Altura del panel deslizable */
  background-color: var(--negro); /* Fondo oscuro como card */
  color: var(--blanco);
  border-top-left-radius: 24px;
  border-top-right-radius: 24px;
}

.offcanvas-header {
  padding: 1.5rem 1.5rem 0.5rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.offcanvas-title {
  color: var(--blanco);
  font-weight: 400;
  text-transform: uppercase;
}

/* El botón de cierre en el offcanvas */
.offcanvas-header .navbar-toggler .line {
  background-color: var(--blanco); /* Líneas de la X en blanco */
}

.offcanvas-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 2rem;
}

.offcanvas-body .nav-item {
  margin-bottom: .5 rem;
}

.offcanvas-body .nav-link {
  font-size: 16px; /* Letras grandes */
  font-weight: 400 !important;
  color: var(--blanco);
  text-transform: uppercase;
}

.offcanvas-body .nav-link:hover {
  color: var(--azul);
}

.offcanvas-body .btn-contact {
  width: 100%;
}

.offcanvas-body .mobile-social-icons .social-icon {
  font-size: 22px;
  color: var(--blanco);
  margin: 0 1rem;
}

.offcanvas-body .mobile-social-icons .social-icon:hover {
  color: var(--azul);
}

/* --------------------------------
7. Ajustes Responsivos (Breakpoint de Bootstrap)
--------------------------------
*/
@media (max-width: 991.98px) {
  .navbar-floating-wrapper {
    /* En móvil, pegamos el wrapper al borde (menos padding) */
    padding: 16px; 
  }
  .navbar-container {
    max-width: 95%;
  }
  .navbar {
    padding: 0.5rem 1rem;
  }
  
  .navbar-logo {
    height: 60px; /* Logo más pequeño en móvil */
  }

  /* Ocultamos los elementos de la derecha en desktop */
  .navbar-right {
    display: none !important;
  }
}


/*
--------------------------------
8. Estilos de la Sección Hero (Centrado 90vh)
--------------------------------
*/

.hero-section {
    /* Ocupa el 100% de la altura de la ventana */
    height: 100vh;
    display: flex;
    align-items: center;     /* <-- Centra verticalmente */
    justify-content: center; /* <-- Centra horizontalmente */
    flex-direction: column;  /* Apila el swiper y la paginación */
    background-color: var(--blanco);
    margin: 24px;
}

.hero-swiper {
    width: 100%;
    /* Altura fija de 90vh como pediste */
    height: 95vh; 
}

.hero-swiper .swiper-slide {
    overflow: hidden;
}

.hero-text-panel,
.hero-image-panel,
.hero-image-panel-1 {
    /* Altura 100% (del 90vh del swiper) */
    height: 100%; 
    border-radius: 24px;
}

/* Panel de Texto (Izquierda) */
.hero-text-panel {
    background-color: var(--negro);
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 3rem 4rem;
    position: relative;
    z-index: 2;
}

.hero-headline {
    color: var(--azul);
    font-size: 3rem;
    font-weight: 800;
    line-height: 1.2;
    margin-bottom: 0.5rem;
}

.hero-subheadline {
    color: var(--blanco);
    font-size: 1.1rem;
    font-weight: 200;
    opacity: 0.8;
    margin-bottom: 2rem;
}

/* Panel de Imagen (Derecha) */
.hero-image-panel {
    background-image: url('../img/slide01.png');
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    z-index: 1;
    overflow: hidden; 
}
.hero-image-panel-1 {
    background-image: url('../img/slide01.png');
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    z-index: 1;
    overflow: hidden; 
}

.hero-image-slide {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.hero-image-panel:hover .hero-image-slide {
    transform: scale(1.05);
}

/* Botón Personalizado */
.btn-hero-services {
    display: inline-flex;
    align-items: center;
    background-color: var(--blanco);
    color: var(--negro);
    border-radius: 50px;
    padding: 0.75rem 1rem 0.75rem 1.5rem;
    font-weight: 400;
    text-transform: uppercase;
    font-size: 0.9rem;
    transition: all 0.3s ease;
}

.btn-hero-services .icon-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: var(--azul);
    color: var(--blanco);
    border-radius: 50%;
    width: 32px;
    height: 32px;
    margin-left: 1rem;
    transition: transform 0.3s ease;
}

.btn-hero-services:hover {
    color: var(--negro);
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}

.btn-hero-services:hover .icon-arrow {
    transform: translateX(3px);
}

/* Paginación Personalizada (Visible) */
.hero-pagination {
    width: 100%;
    text-align: left; /* Alineada a la izquierda */
    margin-top: 10px; /* Espacio entre el carrusel y los números */
    position: relative;
    z-index: 10;
    /* Ocupa el espacio sobrante (5vh) en la parte inferior */
    height: 5vh; 
    display: flex;
    align-items: center;
}

.hero-pagination .swiper-pagination-bullet {
    background: none;
    opacity: 1;
    color: #aaa; /* Color inactivo */
    font-weight: 600;
    font-size: 1rem;
    margin: 0 8px !important;
    transition: all 0.3s ease;
    cursor: pointer; /* Indica que es clickeable */
}

.hero-pagination .swiper-pagination-bullet-active {
    color: var(--negro); /* Color activo */
    font-size: 1.2rem;
}

/* Ajustes Responsivos */
@media (max-width: 991.98px) {
    .hero-section {
        height: auto; /* Altura automática en móvil */
        padding: 120px 0 60px 0; /* Espacio para navbar y padding inferior */
    }
    
    .hero-swiper {
        height: auto; /* Altura automática */
    }

    .hero-text-panel {
        min-height: auto;
        padding: 3rem 2rem;
        text-align: center;
    }

    .hero-image-panel {
        min-height: 300px;
    }
    .hero-image-panel-1 {
        min-height: 300px;
    }
    
    .hero-headline {
        font-size: 2.2rem;
    }
    
    .hero-pagination {
        height: auto;
        justify-content: center; /* Centramos la paginación en móvil */
        text-align: center;
        margin-top: 24px;
    }
}

/*
--------------------------------
9. Estilos de la Sección "Nosotros"
--------------------------------
*/

#nosotros {
  padding: 24px;
}


.about-section {
    padding: 2rem 0;
    background-color: var(--blanco);
    overflow: hidden; /* Evita que la animación del tag genere scroll */
}

/* 9.1. Tag Animado (Marquee) */
.section-tag-wrapper {
    text-align: center;
    margin-bottom: 3rem;
}

.section-tag-animated {
    display: inline-block;
    border: 1px solid var(--azul);
    border-radius: 50px;
    overflow: hidden;
    white-space: nowrap;
    max-width: 100%;
    width: 220px; /* Ancho fijo del tag */
}

.section-tag-animated span {
    display: inline-block;
    padding: 0.5rem 0; /* Padding vertical */
    font-weight: 400;
    color: var(--negro);
    /* Animación: nombre, duración, tipo, repetición */
    animation: marquee-animation 20s linear infinite;
}

/* Animación Marquee moderna */
@keyframes marquee-animation {
    0% {
        transform: translateX(0);
    }
    100% {
        /* Mueve el texto a la izquierda. El <span> debe
           contener el texto 2 veces para un bucle perfecto */
        transform: translateX(-50%);
    }
}


/* 9.2. Contenido de la Columna Izquierda */
.about-headline {
    font-size: 2.8rem;
    font-weight: 800;
    color: var(--azul);
}

.about-subheadline {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.about-subheadline span {
    font-size: 2.5rem;
    font-weight: 800;
}

.about-subheadline p {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--gris-oscuro);
    margin: 0;
    line-height: 1.3;
}

/* 9.3. Botones (Tabs) */
.about-tabs {
    border: none;
    display: flex;
    gap: 0.75rem; /* Espacio entre botones */
}

.about-tabs .nav-link {
    border: 1px solid #ddd;
    border-radius: 50px;
    background-color: transparent;
    color: var(--negro);
    font-weight: 400;
    font-size: 0.9rem;
    padding: 0.6rem 1.5rem;
    transition: all 0.3s ease;
}

.about-tabs .nav-link:hover {
    border-color: var(--azul);
}

/* Estilo del botón activo */
.about-tabs .nav-link.active {
    background-color: var(--azul);
    color: var(--blanco);
    border-color: var(--azul);
    box-shadow: 0 4px 10px rgba(0, 128, 202, 0.3);
}


/* 9.4. Contenido de la Columna Derecha */
.tab-content {
    padding-left: 1rem; /* Pequeño espacio a la izquierda */
}

.tab-content-title {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--azul);
    text-transform: uppercase;
    margin-bottom: 1rem;
}

.tab-content p {
    font-size: 1rem;
    color: var(--gris-oscuro);
    line-height: 1.7;
    margin-bottom: 1rem;
}

/* Ajustes responsivos */
@media (max-width: 991.98px) {
    .about-section {
        padding: 4rem 0;
    }
    #nosotros .move {
      text-align: center;
    }
    .about-headline {
        font-size: 2.2rem;
        text-align: center;
    }
    .about-subheadline {
        justify-content: center;
        text-align: left;
    }
    .about-tabs {
        justify-content: center;
        margin-top: 2rem;
    }
    .tab-content {
        padding-left: 0;
        margin-top: 2rem;
        text-align: center;
    }
    .tab-content-title {
        margin-top: 1rem;
    }
}

/*
--------------------------------
10. Clases Generalizadas de Sección
(Útil para Servicios y futuras secciones)
--------------------------------
*/
.section-header {
    margin-bottom: 2.5rem;
}

.section-subheader {
    font-size: 0.9rem;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--gris-oscuro);
    margin-bottom: 0.5rem;
}

.section-title {
    font-size: 2.8rem;
    font-weight: 700;
    color: var(--negro);
    margin-bottom: 0;
}

/* Modificador para texto blanco (como en la sección servicios) */
.section-header.text-white .section-subheader,
.section-header.text-white .section-title {
    color: var(--blanco);
}


/*
--------------------------------
11. Estilos de la Sección "Servicios"
--------------------------------
*/
.services-section-wrapper {
    padding: 2rem 0;
    background-color: var(--blanco);
}

.services-container {
    background-image: url('../img/service.png');
    background-size: cover;
    background-position: center;
    border-radius: 24px;
    padding: 4rem;
    position: relative;
}

/* 11.1. Estilos del Swiper de Servicios */
.servicios-swiper {
    width: 100%;
    overflow: hidden; 
}

/* <-- CAMBIO: Hacemos que los slides se adapten a la altura */
.servicios-swiper .swiper-slide {
    height: auto;
}

/* 11.2. Estilos de la Tarjeta (Card) */
.service-card {
    background-color: var(--blanco);
    border-radius: 16px;
    box-shadow: 0 5px 25px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
    margin-bottom: 3rem; 
    position: relative;
    
    /* <-- CAMBIO: Solución de altura uniforme */
    height: 100%; /* Ocupa toda la altura del slide */
    display: flex;
    flex-direction: column;
}

.service-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
}

.service-card-img {
    border-top-left-radius: 16px;
    border-top-right-radius: 16px;
    overflow: hidden;
}

.service-card-img img {
    width: 100%;
    height: 250px; /* Altura fija (esto es clave para el botón) */
    object-fit: cover;
}

/* Botón de flecha - POSICIONAMIENTO CORREGIDO */
.service-card-btn {
    position: absolute;
    /* <-- CAMBIO: Se alinea con la parte inferior de la imagen (250px) */
    top: 250px; 
    right: 20px;
    /* <-- CAMBIO: Se centra verticalmente en la línea */
    transform: translateY(-50%); 
    
    background-color: var(--azul);
    color: var(--blanco);
    width: 50px;
    height: 50px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    border: 4px solid var(--blanco);
    transition: all 0.3s ease;
    z-index: 5; 
}

.service-card-btn:hover {
    /* <-- CAMBIO: Mantenemos el transform en el hover */
    transform: translateY(-50%) scale(1.1); 
    background-color: var(--amarillo);
    color: var(--negro);
}

/* Cuerpo de la tarjeta */
.service-card-body {
    /* <-- CAMBIO: Más padding-top para dejar espacio al botón */
    padding: 2.5rem 1.5rem 1.5rem; 
    
    /* <-- CAMBIO: Solución de altura uniforme */
    flex-grow: 1; /* El cuerpo de la tarjeta se expande */
}

.service-card-body h3 {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--negro);
    line-height: 1.4;
}

.service-card-body h3 span {
    color: var(--azul);
    font-weight: 800;
    margin-right: 0.5rem;
}

/* 11.3. Paginación del Swiper (Sin cambios) */
.servicios-pagination {
    position: absolute;
    bottom: 2rem;
    left: 4rem;
    width: auto;
    text-align: left;
}
.servicios-pagination .swiper-pagination-bullet {
    background: none;
    opacity: 1;
    color: rgba(255, 255, 255, 0.5); 
    font-weight: 600;
    font-size: 1rem;
    margin: 0 8px !important;
    transition: all 0.3s ease;
    cursor: pointer;
}
.servicios-pagination .swiper-pagination-bullet-active {
    color: var(--blanco); 
    font-size: 1.2rem;
}


/* 11.4. Ajustes Responsivos (Sin cambios) */
@media (max-width: 991.98px) {
    .services-container {
        padding: 2rem;
    }
    .servicios-pagination {
        position: relative;
        bottom: auto;
        left: auto;
        text-align: center;
        margin-top: -1rem; 
    }
    .servicios-pagination .swiper-pagination-bullet {
        color: rgba(255, 255, 255, 0.7);
    }
    .servicios-pagination .swiper-pagination-bullet-active {
        color: var(--blanco);
    }
}
@media (max-width: 767.98px) {
    .section-title {
        font-size: 2.2rem;
    }
    .services-container {
        padding: 1.5rem;
    }
}

.blue {
  color: var(--azul) !important;
}

/*
--------------------------------
12. Estilos de la Sección "Equipo"
--------------------------------
*/

.equipo-section {
    padding: 2rem 0;
    background-color: var(--blanco);
}

/* 12.1. Navegación (Botones) */
.equipo-nav {
    flex-direction: column; /* Apila los botones verticalmente */
    gap: 0.75rem; /* Espacio entre botones */
}

.equipo-nav .nav-link {
    /* Reutilizamos el estilo de los botones de "Nosotros" */
    width: 100%; /* Ocupan todo el ancho de su columna */
    border: 1px solid #ddd;
    border-radius: 50px;
    background-color: transparent;
    color: var(--negro);
    font-weight: 400;
    font-size: 0.9rem;
    padding: 0.8rem 1.5rem; /* Un poco más de padding vertical */
    text-align: left; /* Alinea texto a la izquierda */
    transition: all 0.3s ease;
}

.equipo-nav .nav-link:hover {
    border-color: var(--azul);
    background-color: #f8f9fa; /* Un sutil hover */
}

/* Estilo del botón activo */
.equipo-nav .nav-link.active {
    background-color: var(--azul);
    color: var(--blanco);
    border-color: var(--azul);
    box-shadow: 0 4px 10px rgba(0, 128, 202, 0.3);
}

/* 12.2. Contenedor de la Imagen */
.equipo-tab-content {
    border-radius: 24px; /* Bordes redondeados */
    overflow: hidden; /* Clave para que la imagen se recorte */
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    background-color: #e0e0e0; /* Fondo mientras carga la imagen */
    min-height: 450px; /* Altura mínima para el contenedor */
    padding-left: 0px !important;
    /* Centramos la imagen por si es más pequeña */
    display: flex;
    align-items: center;
    justify-content: center;
}

.equipo-imagen {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Asegura que la imagen llene el contenedor */
}

/* La clase 'fade' de Bootstrap maneja la transición suave */


/* ESTE ES EL CÓDIGO CORREGIDO */
@media (max-width: 991.98px) {
    .equipo-nav {
        flex-direction: row; 
        flex-wrap: nowrap; /* <-- 1. Evita que los botones "caigan" */
        justify-content: flex-start; /* <-- 2. Alinea al inicio */
        overflow-x: auto; /* <-- 3. Agrega el scroll horizontal */

        /* Detalle de diseñador: agregamos padding para que no se pegue
           a los bordes y damos espacio para la barra de scroll */
        padding: 5px 5px 10px 5px; 
    }
    
    .equipo-nav .nav-link {
        width: auto; 
        white-space: nowrap; /* <-- 4. Evita que el TEXTO del botón se parta */
    }

    /* Opcional: Estilo sutil para la barra de scroll en Chrome/Safari */
    .equipo-nav::-webkit-scrollbar {
        height: 6px;
    }
    .equipo-nav::-webkit-scrollbar-thumb {
        background: var(--azul);
        border-radius: 10px;
    }
    .equipo-nav::-webkit-scrollbar-track {
        background: #f1f1f1;
    }

    /* El resto del CSS responsivo (la imagen) */
    .equipo-tab-content {
        margin-top: 2rem;
        min-height: 400px;
    }
}

/*
--------------------------------
13. Estilos de la Sección "Experiencia" (Sticky Stack)
--------------------------------
*/

.experience-section {
    padding: 2rem 0 0 0; /* Padding solo arriba, el stack se encarga del resto */
    background-color: var(--blanco);
    position: relative; /* Necesario para el z-index */
}

.experience-stack-container {
    /* Esto es un "truco": le damos al contenedor una altura
       adicional por cada panel que queremos "stackear".
       Si hay 3 paneles, le damos 300vh de altura.
       Esto crea el espacio de scroll necesario. */
    height: 300vh; 
    position: relative;
    margin-top: 4rem; /* Espacio después del título */
}

.experience-panel {
    /* ¡La magia del sticky stack! */
    position: sticky;
    top: 0; /* Se pega al borde superior */

    /* Cada panel ocupa la pantalla completa */
    height: 100vh;
    width: 90%;
    margin: 0 auto;
    
    background-size: cover;
    background-position: center center;

    border-radius: 24px;
    
    /* Para centrar la tarjeta de texto */
    display: flex;
    align-items: center;
}

/* La tarjeta de texto blanca */
.project-card {
    background-color: var(--blanco);
    border-radius: 16px; /* Esquinas redondeadas */
    padding: 2.5rem;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
}

.project-badge {
    background-color: var(--azul);
    color: var(--blanco);
    border-radius: 50px;
    padding: 0.4rem 1rem;
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
}

.project-title {
    font-size: 2.5rem;
    font-weight: 800;
    color: var(--negro);
    margin-top: 1rem;
    margin-bottom: 1rem;
}

.project-description {
    font-size: 1rem;
    color: var(--gris-oscuro);
    line-height: 1.7;
}

/* 13.1. Ajustes Responsivos */
@media (max-width: 991.98px) {
    .experience-section {
        padding-top: 4rem;
    }
    .experience-stack-container {
        /* En móvil, desactivamos el efecto */
        height: auto; 
        margin-top: 2rem;
    }
    .experience-panel {
        /* Desactivamos el sticky */
        position: sticky; 
        height: auto;
        /* Damos una altura mínima y padding */
        min-height: 80vh; 
        padding: 4rem 0;
    }
    .project-card {
        /* La tarjeta ocupa casi todo el ancho */
        padding: 2rem;
    }
    .project-title {
        font-size: 2rem;
    }
}

/*
--------------------------------
14. Estilos de la Sección "Galería de Proyectos"
--------------------------------
*/

.gallery-section {
    /* Esta sección continúa la anterior, así que 
       le damos menos padding arriba y más abajo */
    padding-top: 2rem;
    padding-bottom: 6rem;
    background-color: var(--blanco);
}

.gallery-swiper {
    width: 100%;
    overflow: hidden;
    border-radius: 16px; /* Bordes redondeados para el carrusel */
    box-shadow: 0 5px 25px rgba(0,0,0,0.08);
}

.gallery-slide-img {
    width: 100%;
    height: 250px; /* Altura fija para las imágenes */
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
}

.gallery-swiper .swiper-slide a:hover .gallery-slide-img {
    transform: scale(1.05);
}

/* 14.1. Controles (Prev/Next) */
.gallery-controls {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 1rem; /* Pequeño padding lateral */
    margin-top: 1.5rem;
}

.gallery-nav-prev,
.gallery-nav-next {
    font-size: 0.9rem;
    font-weight: 400;
    color: var(--azul);
    text-transform: uppercase;
    cursor: pointer;
    transition: color 0.3s ease;
}

.gallery-nav-prev:hover,
.gallery-nav-next:hover {
    color: var(--negro);
}

/* Estilo de Swiper para botones deshabilitados */
.gallery-nav-prev.swiper-button-disabled,
.gallery-nav-next.swiper-button-disabled {
    color: #ccc;
    cursor: default;
    pointer-events: none;
}

/* 14.2. Paginación (01. | 02. | ...) */
.gallery-pagination {
    display: flex;
    flex-wrap: wrap; /* Permite que los números bajen si no caben */
    justify-content: center;
    align-items: center;
    margin-top: 1rem;
    font-weight: 400;
}

.gallery-pagination .swiper-pagination-bullet {
    background: none;
    opacity: 1;
    color: #aaa; /* Color inactivo */
    font-size: 0.9rem;
    cursor: pointer;
    padding: 0; /* Quitamos padding por defecto */
    transition: all 0.3s ease;
}

.gallery-pagination .swiper-pagination-bullet-active {
    color: var(--azul); /* Color activo */
    font-size: 1.1rem;
}

.gallery-pagination .pagination-separator {
    color: #ccc;
    margin: 0 0.4rem;
    font-size: 0.9rem;
}

/* 14.3. Botón de Descarga */
.gallery-button {
    margin-top: 2rem;
}

/* 14.4. Ajustes Responsivos */
@media (max-width: 767.98px) {
    .gallery-slide-img {
        height: 200px;
    }
    .gallery-controls {
        padding: 0;
    }
}

/*
--------------------------------
15. Estilos de la Sección "Video/Prensa"
--------------------------------
*/

.video-section {
    padding: 2rem 0;
    background-color: var(--blanco);
}

.video-player-wrapper {
    position: relative;
    max-width: 900px; /* Ancho máximo del video */
    margin: 0 auto;
    border-radius: 24px; /* Esquinas redondeadas */
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    cursor: pointer;
}

/* Capa de color azul (como en tu mock-up) */
.video-player-wrapper::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: var(--azul);
    opacity: 0.8; /* Opacidad del azul */
    z-index: 1;
    transition: opacity 0.3s ease;
}

.video-player-wrapper:hover::before {
    opacity: 0.6; /* Menos opaco al pasar el mouse */
}

.video-poster-img {
    width: 100%;
    display: block;
}

/* Botón de Play (Círculo blanco) */
.play-icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90px;
    height: 90px;
    background-color: var(--blanco);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2; /* Encima de la capa azul */
    color: var(--azul);
    font-size: 3rem; /* Tamaño del icono de play */
    transition: all 0.3s ease;
}

.video-player-wrapper:hover .play-icon {
    transform: translate(-50%, -50%) scale(1.1); /* Efecto de zoom */
}

/* Botón de Póliza */
.video-button {
    margin-top: 2rem;
}

.btn-poliza {
    background-color: var(--azul);
    color: var(--blanco);
    border-radius: 50px;
    padding: 0.6rem 1.5rem;
    font-weight: 400;
    text-transform: uppercase;
    font-size: 0.8rem; /* Letra pequeña */
    transition: all 0.3s ease;
}

.btn-poliza:hover {
    background-color: var(--amarillo);
    color: var(--blanco);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    transform: translateY(-2px);
}

/* Responsivo */
@media (max-width: 767.98px) {
    .video-section {
        padding: 4rem 0;
    }
    .play-icon {
        width: 70px;
        height: 70px;
        font-size: 2rem;
    }
}

/*
--------------------------------
16. Estilos de la Sección "Clientes"
--------------------------------
*/

.clients-section {
    padding: 2rem 0;
    background-color: var(--blanco);
}

.clients-swiper {
    width: 100%;
    margin-top: 3rem; /* Espacio después del título */
    padding-bottom: 3rem; /* Espacio para la paginación */
}

.client-logo {
    width: 100%; /* Asegura que la imagen ocupe el ancho del slide */
    max-width: 150px; /* Ancho máximo para el logo */
    height: auto; /* Altura automática */
    display: block;
    margin: 0 auto; /* Centra el logo */

    /* Filtro de escala de grises y transición */
    filter: grayscale(100%);
    transition: all 0.4s ease;
}

.swiper-slide:hover .client-logo {
    filter: grayscale(0%); /* A color al pasar el mouse */
    transform: scale(1.05); /* Ligeramente más grande */
}

/* Paginación personalizada (igual que en otras secciones) */
.clients-pagination {
    position: relative;
    bottom: 0;
    left: 0;
    width: 100%;
    text-align: center;
    margin-top: 1rem;
}

.clients-pagination .swiper-pagination-bullet {
    background: none;
    opacity: 1;
    color: #aaa;
    font-size: 0.9rem;
    font-weight: 600;
    margin: 0 5px !important;
    transition: all 0.3s ease;
    cursor: pointer;
}

.clients-pagination .swiper-pagination-bullet-active {
    color: var(--azul);
    font-size: 1.1rem;
}

/* Responsivo */
@media (max-width: 767.98px) {
    .clients-section {
        padding: 4rem 0;
    }
    .clients-swiper {
        margin-top: 2rem;
        padding-bottom: 2.5rem;
    }
}

/*
--------------------------------
17. Estilos de la Sección "Contacto"
--------------------------------
*/

.contact-section {
    padding: 2rem 0;
    background-color: var(--blanco);
}

.contact-container {
    background-color: var(--negro);
    border-radius: 24px;
    color: var(--blanco);
    overflow: hidden; /* Para que las columnas respeten el borde */
    box-shadow: 0 10px 40px rgba(0,0,0,0.1);
}

.contact-info-col {
    padding: 4rem;
    border-right: 1px solid rgba(255, 255, 255, 0.1);
}

.contact-logo {
    height: 70px;
    width: auto;
    margin: 0 auto;
}

.contact-info-block {
    margin-bottom: 1.5rem;
}

.contact-info-block h3 {
    color: var(--azul);
    font-weight: 700;
    font-size: 1.3rem;
    margin-bottom: 0.75rem;
}

.contact-info-block p {
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.8);
    line-height: 1.6;
    margin-bottom: 0.5rem;
}

.contact-info-block a {
    color: var(--blanco);
    text-decoration: none;
    font-weight: 600;
    transition: color 0.3s ease;
}

.contact-info-block a:hover {
    color: var(--azul);
}

.contact-social-icons .social-icon {
    color: var(--blanco);
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    margin-right: 0.5rem;
}

.contact-social-icons .social-icon:hover {
    background-color: var(--blanco);
    color: var(--azul);
    border-color: var(--blanco);
    transform: scale(1.1);
}

/* Columna del Formulario */
.contact-form-col {
    padding: 4rem;
}

.contact-form .form-label {
    font-size: 0.8rem;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.6);
    margin-bottom: 0.25rem;
}

.contact-form .form-control {
    background-color: var(--blanco);
    border-radius: 10px;
    border: 1px solid transparent;
    padding: 0.75rem 1rem;
    color: var(--negro);
    font-weight: 500;
}

.contact-form .form-control:focus {
    background-color: var(--blanco);
    color: var(--negro);
    box-shadow: 0 0 0 0.25rem rgba(0, 128, 202, 0.5);
    border-color: var(--azul);
}

/*
--------------------------------
18. Estilos del Footer Final
--------------------------------
*/

.main-footer {
    padding: 2rem 0;
    background-color: #f8f9fa;
    text-align: center;
}

.main-footer p {
    font-size: 0.85rem;
    color: #888;
    margin: 0;
    line-height: 1.6;
}

.main-footer a {
    color: var(--azul);
    font-weight: 600;
    text-decoration: none;
}

.main-footer a:hover {
    text-decoration: underline;
}

/* Responsivo para el contacto */
@media (max-width: 991.98px) {
    .contact-info-col {
        border-right: none;
        padding: 3rem;
        text-align: center;
    }
    .contact-form-col {
        padding: 3rem;
    }
}
@media (max-width: 767.98px) {
    .contact-section {
        padding: 4rem 0;
    }
    .contact-info-col,
    .contact-form-col {
        padding: 2rem;
    }
}

/*
--------------------------------
19. Estilos del Widget de WhatsApp
--------------------------------
*/

.whatsapp-widget {
    position: fixed; /* <-- La clave para que flote */
    bottom: 30px;    /* Espacio desde abajo */
    right: 30px;     /* Espacio desde la derecha */
    
    width: 50px;     /* Tu tamaño 50x50 */
    height: 50px;
    z-index: 1000;   /* Encima de casi todo */
    
    transition: all 0.3s ease;
}

.whatsapp-widget img {
    width: 100%;
    height: 100%;
    border-radius: 50%; /* Asegura que la imagen sea redonda */
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* El "brinco" al pasar el mouse */
.whatsapp-widget:hover {
    transform: translateY(-5px); /* <-- Sube 5px */
}

/* Opcional: hacemos la sombra más grande en el hover */
.whatsapp-widget:hover img {
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
}