.elementor-795 .elementor-element.elementor-element-7bf858a7 > .elementor-container{max-width:1440px;}.elementor-795 .elementor-element.elementor-element-7bf858a7 > .elementor-background-overlay{opacity:0.88;}.elementor-795 .elementor-element.elementor-element-7bf858a7{padding:100px 50px 100px 50px;}.elementor-795 .elementor-element.elementor-element-6c2028a1 > .elementor-element-populated{padding:0px 25px 0px 0px;}.elementor-795 .elementor-element.elementor-element-40d16389{width:var( --container-widget-width, 101.767% );max-width:101.767%;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;--container-widget-width:101.767%;--container-widget-flex-grow:0;text-align:center;}.elementor-795 .elementor-element.elementor-element-40d16389.elementor-element{--flex-grow:0;--flex-shrink:0;}.elementor-795 .elementor-element.elementor-element-40d16389 .elementor-heading-title{color:#FFFFFF;}.elementor-795 .elementor-element.elementor-element-5a91366a > .elementor-container{max-width:1440px;}.elementor-795 .elementor-element.elementor-element-5a91366a > .elementor-background-overlay{opacity:0.5;}.elementor-795 .elementor-element.elementor-element-5a91366a{padding:100px 50px 100px 50px;}.elementor-795 .elementor-element.elementor-element-2cf1b2ef > .elementor-element-populated{padding:0px 25px 0px 0px;}.elementor-795 .elementor-element.elementor-element-344e162f .elementor-heading-title{color:var( --e-global-color-primary );}.elementor-795 .elementor-element.elementor-element-66f87a32 > .elementor-element-populated{padding:0px 0px 0px 25px;}.elementor-795 .elementor-element.elementor-element-5327517c > .elementor-container{max-width:1440px;}.elementor-795 .elementor-element.elementor-element-5327517c > .elementor-background-overlay{opacity:0.5;}.elementor-795 .elementor-element.elementor-element-5327517c{padding:100px 50px 100px 50px;}.elementor-795 .elementor-element.elementor-element-63421d44{text-align:center;}.elementor-795 .elementor-element.elementor-element-63421d44 .elementor-heading-title{color:var( --e-global-color-primary );}.elementor-795 .elementor-element.elementor-element-3817b323{text-align:center;}.elementor-795 .elementor-element.elementor-element-54f00907{padding:0% 20% 0% 20%;text-align:center;}.elementor-795 .elementor-element.elementor-element-755f9bf8{--e-image-carousel-slides-to-show:4;}.elementor-795 .elementor-element.elementor-element-755f9bf8 .swiper-wrapper{display:flex;align-items:flex-start;}@media(max-width:1024px){.elementor-795 .elementor-element.elementor-element-7bf858a7{padding:50px 15px 50px 15px;}.elementor-795 .elementor-element.elementor-element-6c2028a1 > .elementor-element-populated{padding:0px 0px 0px 0px;}.elementor-795 .elementor-element.elementor-element-5a91366a{padding:50px 15px 50px 15px;}.elementor-795 .elementor-element.elementor-element-2cf1b2ef > .elementor-element-populated{padding:0px 0px 0px 0px;}.elementor-795 .elementor-element.elementor-element-66f87a32 > .elementor-element-populated{padding:25px 0px 0px 0px;}.elementor-795 .elementor-element.elementor-element-5327517c{padding:50px 15px 50px 15px;}.elementor-795 .elementor-element.elementor-element-54f00907{padding:0px 0px 0px 0px;}.elementor-795 .elementor-element.elementor-element-755f9bf8{--e-image-carousel-slides-to-show:3;}}@media(max-width:767px){.elementor-795 .elementor-element.elementor-element-344e162f{padding:0px 10px 0px 10px;}.elementor-795 .elementor-element.elementor-element-1986a780{padding:0px 10px 0px 10px;}.elementor-795 .elementor-element.elementor-element-2914a6de{padding:0px 10px 0px 10px;}.elementor-795 .elementor-element.elementor-element-20a364b4{padding:0px 10px 0px 10px;}.elementor-795 .elementor-element.elementor-element-755f9bf8{--e-image-carousel-slides-to-show:3;}}@media(max-width:1024px) and (min-width:768px){.elementor-795 .elementor-element.elementor-element-6c2028a1{width:100%;}.elementor-795 .elementor-element.elementor-element-2cf1b2ef{width:100%;}.elementor-795 .elementor-element.elementor-element-66f87a32{width:100%;}.elementor-795 .elementor-element.elementor-element-4b539e3{width:100%;}}/* Start custom CSS for section, class: .elementor-element-7bf858a7 *//* --- FONDO OSCURO + GRID AZUL (CORREGIDO) --- */
.elementor-795 .elementor-element.elementor-element-7bf858a7 {
    background-color: #0f0f0f !important; 
    position: relative;
    z-index: 1;
    /* Esto es lo más importante: corta todo lo que salga de la sección */
    overflow: hidden !important; 
    padding: 80px 0 !important;
}

/* El Grid Animado */
.elementor-795 .elementor-element.elementor-element-7bf858a7::before {
    content: '' !important;
    position: absolute !important;
    /* Ajustamos para que cubra pero no se escape */
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    
    background-image: 
        linear-gradient(rgba(0, 86, 179, 0.15) 1px, transparent 1px), 
        linear-gradient(90deg, rgba(0, 86, 179, 0.15) 1px, transparent 1px) !important;
    background-size: 50px 50px !important;
    
    display: block !important;
    opacity: 1 !important;
    z-index: -1 !important;
    
    /* Cambiamos la animación a una que use background-position en lugar de transform */
    /* El transform a veces ignora el overflow:hidden en ciertos navegadores */
    animation: move-grid-clean 100s linear infinite !important;
    pointer-events: none !important;
}

/* Animación optimizada para no mover el contenedor, solo el fondo */
@keyframes move-grid-clean {
    from { background-position: 0 0; }
    to { background-position: 1000px 1000px; }
}/* End custom CSS */
/* Start custom CSS for button, class: .elementor-element-8cefa0c *//* --- BOTÓN AZUL SÓLIDO (SIN ANIMACIÓN DE LLENADO) --- */

.elementor-795 .elementor-element.elementor-element-8cefa0c .elementor-button {
    /* Fondo azul fijo (Gradiente) */
    background: linear-gradient(0deg, #0056b3 0%, #007bff 100%) !important;
    
    /* Borde y sombra para dar profundidad */
    border: 1px solid #007bff !important;
    box-shadow: 0 4px 15px rgba(0, 123, 255, 0.3);
    
    /* Mantener el desenfoque si hay elementos detrás */
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
    
    /* Posicionamiento */
    position: relative;
    z-index: 10 !important;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

/* Hover: Un ligero efecto de elevación (opcional, puedes borrarlo si lo quieres estático total) */
.elementor-795 .elementor-element.elementor-element-8cefa0c:hover .elementor-button {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0, 123, 255, 0.5);
    background: linear-gradient(0deg, #004da1 0%, #0069d9 100%) !important;
}

/* Eliminamos el pseudo-elemento ::before que hacía la animación de llenado */
.elementor-795 .elementor-element.elementor-element-8cefa0c .elementor-button::before {
    content: none !important;
}/* End custom CSS */
/* Start custom CSS for section, class: .elementor-element-5a91366a *//* ============================================================
    SECCIÓN: MISION/VISION (FONDO ANIMADO + ESTILO MONTSERRAT)
   ============================================================ */

/* 1. LIENZO BASE CON MOVIMIENTO */
.elementor-795 .elementor-element.elementor-element-5a91366a {
    background-color: #f8f9fa !important; /* Fondo claro optimizado */
    position: relative;
    z-index: 1;
    overflow: hidden;
    padding: 100px 0 !important;
    font-family: 'Montserrat', sans-serif !important;
}

/* 2. EL GRID TÉCNICO ANIMADO (Overlay) */
.elementor-795 .elementor-element.elementor-element-5a91366a > .elementor-background-overlay {
    background-image: 
        linear-gradient(rgba(0, 123, 255, 0.08) 1px, transparent 1px), 
        linear-gradient(90deg, rgba(0, 123, 255, 0.08) 1px, transparent 1px) !important;
    
    background-size: 50px 50px !important;
    animation: move-grid-balanced-light 100s linear infinite !important;
    opacity: 1 !important;
    will-change: background-position;
    z-index: -1 !important;
    pointer-events: none;
    
    /* Máscara para suavizar bordes del grid */
    mask-image: radial-gradient(circle, black 70%, transparent 100%);
    -webkit-mask-image: radial-gradient(circle, black 70%, transparent 100%);
}

/* 3. BRILLO RADIAL DE FONDO */
.elementor-795 .elementor-element.elementor-element-5a91366a::after {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: radial-gradient(circle at 50% 50%, rgba(0, 123, 255, 0.05), transparent 80%);
    pointer-events: none;
    z-index: -2;
}

/* --- 4. CONTROL DE TEXTOS (ESTILO MONTSERRAT CONSERVAR) --- */

/* Subtítulo (Misión/Visión) */
.elementor-795 .elementor-element.elementor-element-5a91366a .elementor-column h3, 
.elementor-795 .elementor-element.elementor-element-5a91366a .elementor-column .elementor-heading-title[class*="h3"] {
    font-family: 'Montserrat', sans-serif !important;
    color: #007BFF !important;
    font-size: 1rem !important;
    text-transform: uppercase !important;
    letter-spacing: 3px !important;
    font-weight: 700 !important;
    margin-bottom: 15px !important;
}

/* Título Principal (Be The Best...) */
.elementor-795 .elementor-element.elementor-element-5a91366a .elementor-column h2, 
.elementor-795 .elementor-element.elementor-element-5a91366a .elementor-column .elementor-heading-title[class*="h2"] {
    font-family: 'Montserrat', sans-serif !important;
    color: #1a1a1a !important;
    font-size: 2.8rem !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    margin-bottom: 25px !important;
    letter-spacing: -1px !important;
}

/* Párrafos (Text Editor) */
.elementor-795 .elementor-element.elementor-element-5a91366a .elementor-column .elementor-text-editor,
.elementor-795 .elementor-element.elementor-element-5a91366a .elementor-column .elementor-text-editor p {
    font-family: 'Montserrat', sans-serif !important;
    color: #444444 !important;
    font-size: 1.05rem !important;
    font-weight: 400 !important;
    line-height: 1.8 !important;
    margin-bottom: 15px !important;
}

/* 5. DETALLE DE INGENIERÍA: Línea de acento */
.elementor-795 .elementor-element.elementor-element-5a91366a h2::after {
    content: '';
    display: block;
    width: 50px;
    height: 4px;
    background: #007BFF;
    margin-top: 15px;
    border-radius: 2px;
}

/* 6. ANIMACIÓN DE MOVIMIENTO EXACTO */
@keyframes move-grid-balanced-light {
    from { background-position: 0 0; }
    to { background-position: 1000px 1000px; }
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-63421d44 *//* Aplicar al widget del título (Headline) */
.elementor-795 .elementor-element.elementor-element-63421d44 .elementor-heading-title {
    position: relative;
    display: inline-block;
    z-index: 1;
    padding: 0 5px;
}

.elementor-795 .elementor-element.elementor-element-63421d44 .elementor-heading-title::after {
    content: '';
    position: absolute;
    bottom: 6px; /* Posición debajo de las letras */
    left: -2%;
    width: 104%;
    height: 50%;
    background: linear-gradient(100deg, rgba(255, 230, 0, 0.7) 0%, rgba(255, 245, 150, 0.8) 100%);
    
    /* Look orgánico y manual */
    border-radius: 2px 10px 4px 18px;
    z-index: -1;
    transform: rotate(-1.2deg) scaleX(0);
    transform-origin: left;
    
    /* Llamada a la animación infinita */
    animation: highlighter-loop 6s ease-in-out infinite;
    will-change: transform, opacity;
}

/* Definición del bucle de animación */
@keyframes highlighter-loop {
    0% {
        transform: rotate(-1.2deg) scaleX(0);
        opacity: 0;
    }
    5% {
        opacity: 1;
    }
    15% {
        transform: rotate(-1.2deg) scaleX(1); /* Se dibuja */
    }
    80% {
        transform: rotate(-1.2deg) scaleX(1);
        opacity: 1; /* Se mantiene resaltado */
    }
    90% {
        transform: rotate(-1.2deg) scaleX(1);
        opacity: 0; /* Se desvanece suavemente */
    }
    100% {
        transform: rotate(-1.2deg) scaleX(0);
        opacity: 0;
    }
}/* End custom CSS */
/* Start custom CSS for image-carousel, class: .elementor-element-755f9bf8 */.elementor-795 .elementor-element.elementor-element-755f9bf8 .swiper-wrapper {
    transition-timing-function: linear !important;
}/* End custom CSS */
/* Start custom CSS for section, class: .elementor-element-5327517c *//* ============================================================
   SECCIÓN: CLIENTES (LIGHT BALANCED + GRID MOVIMIENTO)
============================================================ */

/* 1. LIENZO BASE (Fondo claro optimizado) */
.elementor-795 .elementor-element.elementor-element-5327517c {
    background-color: #f8f9fa !important;
    position: relative;
    z-index: 1;
    overflow: hidden;
}

/* 2. EL GRID TÉCNICO (Usando Overlay para el movimiento exacto) */
.elementor-795 .elementor-element.elementor-element-5327517c > .elementor-background-overlay {
    background-image: 
        linear-gradient(rgba(0, 123, 255, 0.08) 1px, transparent 1px), 
        linear-gradient(90deg, rgba(0, 123, 255, 0.08) 1px, transparent 1px) !important;
    
    background-size: 50px 50px, 50px 50px !important;
    animation: move-grid-balanced-light 100s linear infinite !important;
    opacity: 1 !important;
    will-change: background-position;
    
    /* SEGURIDAD: Envía el grid al fondo y permite clics */
    z-index: -1 !important;
    pointer-events: none;
}

/* 3. BRILLO RADIAL (Fijo en el fondo) */
.elementor-795 .elementor-element.elementor-element-5327517c::after {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: radial-gradient(circle at 50% 50%, rgba(0, 123, 255, 0.05), transparent 80%);
    
    /* SEGURIDAD: No bloquea clics */
    pointer-events: none;
    z-index: -2;
}

/* 4. AJUSTE DE CONTENIDOS (MÁXIMO CONTRASTE) */
/* Títulos en Negro/Gris muy oscuro */
.elementor-795 .elementor-element.elementor-element-5327517c .elementor-heading-title {
    color: #1a1a1a !important;
}

/* Subtítulo en Azul Corporativo */
.elementor-795 .elementor-element.elementor-element-5327517c .elementor-widget-heading:first-child .elementor-heading-title {
    color: #007BFF !important;
}

/* Texto descriptivo */
.elementor-795 .elementor-element.elementor-element-5327517c .elementor-text-editor, 
.elementor-795 .elementor-element.elementor-element-5327517c .elementor-text-editor p {
    color: #333333 !important;
    opacity: 1 !important;
}

/* 5. ANIMACIÓN (100s Exactos) */
@keyframes move-grid-balanced-light {
    from { background-position: 0 0, 0 0; }
    to { background-position: 1000px 1000px, 1000px 1000px; }
}/* End custom CSS */