{"id":99,"date":"2026-09-24T21:22:25","date_gmt":"2026-09-24T21:22:25","guid":{"rendered":"https:\/\/consorciosagitario.com\/?page_id=99"},"modified":"2026-09-27T19:27:20","modified_gmt":"2026-09-27T19:27:20","slug":"servicios","status":"publish","type":"page","link":"https:\/\/consorciosagitario.com\/en\/servicios\/","title":{"rendered":"Services"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"99\" class=\"elementor elementor-99\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-04c626c e-con e-atomic-element e-flexbox-base e-default-div e-9d3ee7d \" data-id=\"04c626c\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"04c626c\" data-e-type=\"e-flexbox\" data-id=\"04c626c\">\n    \t\t<div class=\"elementor-element elementor-element-69ad86b elementor-widget elementor-widget-shortcode\" data-id=\"69ad86b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    <section class=\"sl-sh\" id=\"sl-sh\"\n             style=\"--sl-sh-oscuro:0.55;--sl-sh-alto:810px;\"\n             data-velocidad=\"0\">\n\n                    <div class=\"sl-sh-fondo\" id=\"sl-sh-fondo\">\n                                    <img decoding=\"async\" class=\"sl-sh-media\" src=\"https:\/\/consorciosagitario.com\/wp-content\/uploads\/2026\/10\/Grua-Demag-Sagitario-en-planta-industrial.png\" alt=\"\" loading=\"eager\">\n                            <\/div>\n        \n        <div class=\"sl-sh-overlay\"><\/div>\n\n        <div class=\"sl-sh-inner\">\n                            <p class=\"sl-sh-eyebrow sl-sh-animar\" style=\"--sl-sh-d:0ms;\">Nuestros servicios<\/p>\n                                        <h1 class=\"sl-sh-titulo sl-sh-animar\" style=\"--sl-sh-d:100ms;\">\n                    Soluciones completas de<br>izaje y transporte                <\/h1>\n                    <\/div>\n    <\/section>\n\n    <noscript><style>#sl-sh .sl-sh-animar{ opacity:1; transform:none; }<\/style><\/noscript>\n\n    <style>\n        .sl-sh, .sl-sh *{ box-sizing:border-box; }\n\n        @keyframes slShEntrada{\n            from{ opacity:0; transform:translateY(22px); }\n            to{ opacity:1; transform:translateY(0); }\n        }\n\n        \/* ---------- M\u00d3VIL (base) ---------- *\/\n        #sl-sh{\n            position:relative;\n            width:100%;\n            min-height:clamp(320px,88vw,480px);\n            display:flex;\n            align-items:center;\n            justify-content:center;\n            overflow:hidden;\n            background:var(--sl-color-primario,#0a0000);\n        }\n\n        .sl-sh-fondo{ position:absolute; inset:-10% 0; overflow:hidden; will-change:transform; }\n        #sl-sh .sl-sh-media{\n            display:block;\n            width:100%;\n            height:90%;\n            object-fit:cover;\n            transform:scale(1.15);\n        }\n\n        .sl-sh-overlay{\n            position:absolute;\n            inset:0;\n            pointer-events:none;\n            background:\n                radial-gradient(ellipse at center, rgba(0,0,0,calc(var(--sl-sh-oscuro,.55) * .5)) 0%, rgba(0,0,0,var(--sl-sh-oscuro,.55)) 75%),\n                rgba(0,0,0,calc(var(--sl-sh-oscuro,.55) * .4));\n        }\n\n        .sl-sh-inner{\n            position:relative;\n            z-index:2;\n            width:100%;\n            max-width:900px;\n            margin:0 auto;\n            padding:64px 20px;\n            text-align:center;\n        }\n\n        #sl-sh .sl-sh-eyebrow {\n    display: inline-flex;\n    align-items: center;\n    width: fit-content;\n    max-width: 100%;\n    box-sizing: border-box;\n\n    margin: 0 0 14px;\n    padding: 8px 16px;\n\n    font-family: var(--fuente-titulos, 'Handel Gothic D', sans-serif);\n    font-size: 12px;\n    font-weight: 700;\n    line-height: 1.4;\n    letter-spacing: 0.08em;\n\n    color: #fff;\n    background-color: var(--sl-color-secundario, #204b78);\n    border-radius: 6px;\n}\n        #sl-sh .sl-sh-titulo{\n            margin:0;\n            padding:0;\n            font-family:var(--fuente-titulos,'Handel Gothic D',sans-serif);\n            font-size:clamp(28px,8.4vw,40px);\n            font-weight:700;\n            line-height:1.15;\n            letter-spacing:.01em;\n            text-transform:uppercase;\n            color:#fff;\n            text-shadow:0 2px 20px rgba(0,0,0,.4);\n        }\n\n        #sl-sh .sl-sh-animar{ opacity:0; transform:translateY(22px); }\n        #sl-sh .sl-sh-animar.sl-sh-visible{ animation:slShEntrada .8s ease both; animation-delay:var(--sl-sh-d,0ms); }\n\n        @media (prefers-reduced-motion:reduce){\n            #sl-sh .sl-sh-animar,\n            #sl-sh .sl-sh-animar.sl-sh-visible{ opacity:1; transform:none; animation:none; }\n            .sl-sh-fondo{ transform:none !important; }\n        }\n\n        \/* ---------- ESCRITORIO ---------- *\/\n        @media (min-width:992px){\n            #sl-sh{ min-height:806px; }\n            .sl-sh-inner{ padding:80px clamp(24px,4vw,56px); }\n            #sl-sh .sl-sh-eyebrow{ font-size:25px; margin-bottom:18px; }\n            #sl-sh .sl-sh-titulo{ font-size:clamp(36px,4.6vw,58px); }\n        }\n    <\/style>\n\n    <script>\n        (function(){\n            var raiz  = document.getElementById('sl-sh');\n            if ( ! raiz ) return;\n\n            var elementos = raiz.querySelectorAll('.sl-sh-animar');\n            if ( 'IntersectionObserver' in window ) {\n                var obsTexto = new IntersectionObserver(function(entradas){\n                    entradas.forEach(function(en){ if ( en.isIntersecting ) { en.target.classList.add('sl-sh-visible'); obsTexto.unobserve( en.target ); } });\n                }, { threshold: 0.2 });\n                elementos.forEach(function(el){ obsTexto.observe(el); });\n            } else {\n                elementos.forEach(function(el){ el.classList.add('sl-sh-visible'); });\n            }\n\n            var fondo = document.getElementById('sl-sh-fondo');\n            if ( ! fondo ) return;\n\n            var reducir = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n            if ( reducir ) return; \/\/ el fondo queda quieto, ya cubierto por la regla CSS\n\n            var velocidad = parseFloat( raiz.getAttribute('data-velocidad') ) || 0;\n            if ( velocidad <= 0 ) return;\n\n            \/* El fondo se mueve m\u00e1s despacio que la p\u00e1gina: efecto parallax cl\u00e1sico *\/\n            var esperando = false;\n            function actualizar(){\n                var r = raiz.getBoundingClientRect();\n                \/\/ Distancia entre el centro de la secci\u00f3n y el centro de la pantalla \u2192 controla cu\u00e1nto se desplaza el fondo\n                var centro = ( r.top + r.height \/ 2 ) - ( window.innerHeight \/ 2 );\n                var desplazamiento = -centro * velocidad * 0.4;\n                fondo.style.transform = 'translate3d(0,' + desplazamiento.toFixed(1) + 'px,0)';\n            }\n            window.addEventListener('scroll', function(){\n                if ( esperando ) return;\n                esperando = true;\n                requestAnimationFrame(function(){ actualizar(); esperando = false; });\n            }, { passive: true });\n            window.addEventListener('resize', actualizar);\n            actualizar();\n\n            \/* El video del fondo solo se reproduce mientras la secci\u00f3n est\u00e1 a la vista *\/\n            var video = fondo.querySelector('video');\n            if ( video && 'IntersectionObserver' in window ) {\n                var obsVideo = new IntersectionObserver(function(entradas){\n                    entradas.forEach(function(en){\n                        if ( en.isIntersecting ) {\n                            var p = video.play();\n                            if ( p && p.catch ) p.catch(function(){});\n                        } else {\n                            video.pause();\n                        }\n                    });\n                }, { threshold: 0.05 });\n                obsVideo.observe( raiz );\n            }\n        })();\n    <\/script>\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-4c74132 e-con e-atomic-element e-flexbox-base e-default-div e-47b1024 \" data-id=\"4c74132\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"4c74132\" data-e-type=\"e-flexbox\" data-id=\"4c74132\">\n    \t\t<div class=\"elementor-element elementor-element-1174740 elementor-widget elementor-widget-shortcode\" data-id=\"1174740\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    <section class=\"sl-ns\" id=\"sl-ns\"\n             data-auto=\"1\"\n             data-intervalo=\"3000\"\n             style=\"--sl-ns-bg:var(--sl-color-fondo, #ffffff);--sl-ns-card:var(--sl-color-primario, #1a1a1a);--sl-ns-v-tab:2;--sl-ns-v-esc:3;\">\n        <div class=\"sl-ns-inner\">\n\n                        <header class=\"sl-ns-cabecera\">\n                                    <p class=\"sl-ns-eyebrow sl-ns-animar\" style=\"--sl-ns-d:0ms;\">Nuestros<\/p>\n                                                    <h2 class=\"sl-ns-titulo sl-ns-animar\" style=\"--sl-ns-d:100ms;\">Servicios<\/h2>\n                            <\/header>\n            \n            <div class=\"sl-ns-carrusel\">\n                <ul class=\"sl-ns-pista\" tabindex=\"0\" aria-label=\"Servicios (desliza para ver m\u00e1s)\">\n                                            <li class=\"sl-ns-card sl-ns-animar\" style=\"--sl-ns-d:0ms;\">\n                            <div class=\"sl-ns-img\">\n                                                                    <img decoding=\"async\" src=\"https:\/\/consorciosagitario.com\/wp-content\/uploads\/2026\/10\/Grua-amarilla-en-planta-industrial.png\" alt=\"\" loading=\"lazy\" draggable=\"false\">\n                                                            <\/div>\n                            <div class=\"sl-ns-cuerpo\">\n                                <h3 class=\"sl-ns-nombre\">Gr\u00faas<br \/>\ntelesc\u00f3picas<\/h3>\n                                <span class=\"sl-ns-linea\" aria-hidden=\"true\"><\/span>\n                                                                    <p class=\"sl-ns-texto\">Capacidad operativa para proyectos de alta exigencia, de 90 hasta 1000 toneladas.<\/p>\n                                                                                                    <a class=\"sl-ns-enlace\" href=\"\/servicios\/gruas-telescopicas\/\" draggable=\"false\">\n                                        <span class=\"sl-ns-enlace-texto\">Ver servicio<span class=\"sl-sr\"> \u2014 Gr\u00faas telesc\u00f3picas<\/span><\/span>\n                                        <svg class=\"sl-ns-flecha\" viewBox=\"0 0 24 24\" width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg>\n                                    <\/a>\n                                                            <\/div>\n                        <\/li>\n                                            <li class=\"sl-ns-card sl-ns-animar\" style=\"--sl-ns-d:110ms;\">\n                            <div class=\"sl-ns-img\">\n                                                                    <img decoding=\"async\" src=\"https:\/\/consorciosagitario.com\/wp-content\/uploads\/2026\/09\/camiones-grua.jpg\" alt=\"\" loading=\"lazy\" draggable=\"false\">\n                                                            <\/div>\n                            <div class=\"sl-ns-cuerpo\">\n                                <h3 class=\"sl-ns-nombre\">Camiones<br \/>\ngr\u00faa<\/h3>\n                                <span class=\"sl-ns-linea\" aria-hidden=\"true\"><\/span>\n                                                                    <p class=\"sl-ns-texto\">Carga, descarga y maniobras de alta exigencia. Flota de 15 a 50 toneladas.<\/p>\n                                                                                                    <a class=\"sl-ns-enlace\" href=\"\/servicios\/camiones-grua\/\" draggable=\"false\">\n                                        <span class=\"sl-ns-enlace-texto\">Ver servicio<span class=\"sl-sr\"> \u2014 Camiones gr\u00faa<\/span><\/span>\n                                        <svg class=\"sl-ns-flecha\" viewBox=\"0 0 24 24\" width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg>\n                                    <\/a>\n                                                            <\/div>\n                        <\/li>\n                                            <li class=\"sl-ns-card sl-ns-animar\" style=\"--sl-ns-d:220ms;\">\n                            <div class=\"sl-ns-img\">\n                                                                    <img decoding=\"async\" src=\"https:\/\/consorciosagitario.com\/wp-content\/uploads\/2026\/09\/alquiler-de-montacarga.jpg\" alt=\"\" loading=\"lazy\" draggable=\"false\">\n                                                            <\/div>\n                            <div class=\"sl-ns-cuerpo\">\n                                <h3 class=\"sl-ns-nombre\">Alquiler de<br \/>\nmontacargas<\/h3>\n                                <span class=\"sl-ns-linea\" aria-hidden=\"true\"><\/span>\n                                                                    <p class=\"sl-ns-texto\">Carga, descarga y movimiento de materiales. De 5 hasta 30 toneladas.<\/p>\n                                                                                                    <a class=\"sl-ns-enlace\" href=\"\/servicios\/alquiler-de-montacarga\/\" draggable=\"false\">\n                                        <span class=\"sl-ns-enlace-texto\">Ver servicio<span class=\"sl-sr\"> \u2014 Alquiler de montacargas<\/span><\/span>\n                                        <svg class=\"sl-ns-flecha\" viewBox=\"0 0 24 24\" width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg>\n                                    <\/a>\n                                                            <\/div>\n                        <\/li>\n                                            <li class=\"sl-ns-card sl-ns-animar\" style=\"--sl-ns-d:330ms;\">\n                            <div class=\"sl-ns-img\">\n                                                                    <img decoding=\"async\" src=\"https:\/\/consorciosagitario.com\/wp-content\/uploads\/2026\/09\/transporte-especial.jpg\" alt=\"\" loading=\"lazy\" draggable=\"false\">\n                                                            <\/div>\n                            <div class=\"sl-ns-cuerpo\">\n                                <h3 class=\"sl-ns-nombre\">Transporte<br \/>\nespecial<\/h3>\n                                <span class=\"sl-ns-linea\" aria-hidden=\"true\"><\/span>\n                                                                    <p class=\"sl-ns-texto\">Transporte seguro, eficiente y certificado para cargas sobredimensionadas.<\/p>\n                                                                                                    <a class=\"sl-ns-enlace\" href=\"\/servicios\/transporte-especial\/\" draggable=\"false\">\n                                        <span class=\"sl-ns-enlace-texto\">Ver servicio<span class=\"sl-sr\"> \u2014 Transporte especial<\/span><\/span>\n                                        <svg class=\"sl-ns-flecha\" viewBox=\"0 0 24 24\" width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg>\n                                    <\/a>\n                                                            <\/div>\n                        <\/li>\n                                            <li class=\"sl-ns-card sl-ns-animar\" style=\"--sl-ns-d:440ms;\">\n                            <div class=\"sl-ns-img\">\n                                                                    <img decoding=\"async\" src=\"https:\/\/consorciosagitario.com\/wp-content\/uploads\/2026\/09\/ingenieria-de-izajes.jpg\" alt=\"\" loading=\"lazy\" draggable=\"false\">\n                                                            <\/div>\n                            <div class=\"sl-ns-cuerpo\">\n                                <h3 class=\"sl-ns-nombre\">Ingenier\u00eda<br \/>\nde izajes<\/h3>\n                                <span class=\"sl-ns-linea\" aria-hidden=\"true\"><\/span>\n                                                                    <p class=\"sl-ns-texto\">An\u00e1lisis, modelamiento y planificaci\u00f3n de cada maniobra.<\/p>\n                                                                                                    <a class=\"sl-ns-enlace\" href=\"\/servicios\/ingenieria-de-izajes\/\" draggable=\"false\">\n                                        <span class=\"sl-ns-enlace-texto\">Ver servicio<span class=\"sl-sr\"> \u2014 Ingenier\u00eda de izajes<\/span><\/span>\n                                        <svg class=\"sl-ns-flecha\" viewBox=\"0 0 24 24\" width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg>\n                                    <\/a>\n                                                            <\/div>\n                        <\/li>\n                    \n                                                                        <li class=\"sl-ns-card sl-ns-clon\" aria-hidden=\"true\">\n                                <div class=\"sl-ns-img\">\n                                                                            <img decoding=\"async\" src=\"https:\/\/consorciosagitario.com\/wp-content\/uploads\/2026\/10\/Grua-amarilla-en-planta-industrial.png\" alt=\"\" loading=\"lazy\" draggable=\"false\">\n                                                                    <\/div>\n                                <div class=\"sl-ns-cuerpo\">\n                                    <h3 class=\"sl-ns-nombre\">Gr\u00faas<br \/>\ntelesc\u00f3picas<\/h3>\n                                    <span class=\"sl-ns-linea\" aria-hidden=\"true\"><\/span>\n                                                                            <p class=\"sl-ns-texto\">Capacidad operativa para proyectos de alta exigencia, de 90 hasta 1000 toneladas.<\/p>\n                                                                                                                <a class=\"sl-ns-enlace\" href=\"\/servicios\/gruas-telescopicas\/\" tabindex=\"-1\" draggable=\"false\">\n                                            <span class=\"sl-ns-enlace-texto\">Ver servicio<\/span>\n                                            <svg class=\"sl-ns-flecha\" viewBox=\"0 0 24 24\" width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg>\n                                        <\/a>\n                                                                    <\/div>\n                            <\/li>\n                                                    <li class=\"sl-ns-card sl-ns-clon\" aria-hidden=\"true\">\n                                <div class=\"sl-ns-img\">\n                                                                            <img decoding=\"async\" src=\"https:\/\/consorciosagitario.com\/wp-content\/uploads\/2026\/09\/camiones-grua.jpg\" alt=\"\" loading=\"lazy\" draggable=\"false\">\n                                                                    <\/div>\n                                <div class=\"sl-ns-cuerpo\">\n                                    <h3 class=\"sl-ns-nombre\">Camiones<br \/>\ngr\u00faa<\/h3>\n                                    <span class=\"sl-ns-linea\" aria-hidden=\"true\"><\/span>\n                                                                            <p class=\"sl-ns-texto\">Carga, descarga y maniobras de alta exigencia. Flota de 15 a 50 toneladas.<\/p>\n                                                                                                                <a class=\"sl-ns-enlace\" href=\"\/servicios\/camiones-grua\/\" tabindex=\"-1\" draggable=\"false\">\n                                            <span class=\"sl-ns-enlace-texto\">Ver servicio<\/span>\n                                            <svg class=\"sl-ns-flecha\" viewBox=\"0 0 24 24\" width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg>\n                                        <\/a>\n                                                                    <\/div>\n                            <\/li>\n                                                    <li class=\"sl-ns-card sl-ns-clon\" aria-hidden=\"true\">\n                                <div class=\"sl-ns-img\">\n                                                                            <img decoding=\"async\" src=\"https:\/\/consorciosagitario.com\/wp-content\/uploads\/2026\/09\/alquiler-de-montacarga.jpg\" alt=\"\" loading=\"lazy\" draggable=\"false\">\n                                                                    <\/div>\n                                <div class=\"sl-ns-cuerpo\">\n                                    <h3 class=\"sl-ns-nombre\">Alquiler de<br \/>\nmontacargas<\/h3>\n                                    <span class=\"sl-ns-linea\" aria-hidden=\"true\"><\/span>\n                                                                            <p class=\"sl-ns-texto\">Carga, descarga y movimiento de materiales. De 5 hasta 30 toneladas.<\/p>\n                                                                                                                <a class=\"sl-ns-enlace\" href=\"\/servicios\/alquiler-de-montacarga\/\" tabindex=\"-1\" draggable=\"false\">\n                                            <span class=\"sl-ns-enlace-texto\">Ver servicio<\/span>\n                                            <svg class=\"sl-ns-flecha\" viewBox=\"0 0 24 24\" width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg>\n                                        <\/a>\n                                                                    <\/div>\n                            <\/li>\n                                                    <li class=\"sl-ns-card sl-ns-clon\" aria-hidden=\"true\">\n                                <div class=\"sl-ns-img\">\n                                                                            <img decoding=\"async\" src=\"https:\/\/consorciosagitario.com\/wp-content\/uploads\/2026\/09\/transporte-especial.jpg\" alt=\"\" loading=\"lazy\" draggable=\"false\">\n                                                                    <\/div>\n                                <div class=\"sl-ns-cuerpo\">\n                                    <h3 class=\"sl-ns-nombre\">Transporte<br \/>\nespecial<\/h3>\n                                    <span class=\"sl-ns-linea\" aria-hidden=\"true\"><\/span>\n                                                                            <p class=\"sl-ns-texto\">Transporte seguro, eficiente y certificado para cargas sobredimensionadas.<\/p>\n                                                                                                                <a class=\"sl-ns-enlace\" href=\"\/servicios\/transporte-especial\/\" tabindex=\"-1\" draggable=\"false\">\n                                            <span class=\"sl-ns-enlace-texto\">Ver servicio<\/span>\n                                            <svg class=\"sl-ns-flecha\" viewBox=\"0 0 24 24\" width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg>\n                                        <\/a>\n                                                                    <\/div>\n                            <\/li>\n                                                    <li class=\"sl-ns-card sl-ns-clon\" aria-hidden=\"true\">\n                                <div class=\"sl-ns-img\">\n                                                                            <img decoding=\"async\" src=\"https:\/\/consorciosagitario.com\/wp-content\/uploads\/2026\/09\/ingenieria-de-izajes.jpg\" alt=\"\" loading=\"lazy\" draggable=\"false\">\n                                                                    <\/div>\n                                <div class=\"sl-ns-cuerpo\">\n                                    <h3 class=\"sl-ns-nombre\">Ingenier\u00eda<br \/>\nde izajes<\/h3>\n                                    <span class=\"sl-ns-linea\" aria-hidden=\"true\"><\/span>\n                                                                            <p class=\"sl-ns-texto\">An\u00e1lisis, modelamiento y planificaci\u00f3n de cada maniobra.<\/p>\n                                                                                                                <a class=\"sl-ns-enlace\" href=\"\/servicios\/ingenieria-de-izajes\/\" tabindex=\"-1\" draggable=\"false\">\n                                            <span class=\"sl-ns-enlace-texto\">Ver servicio<\/span>\n                                            <svg class=\"sl-ns-flecha\" viewBox=\"0 0 24 24\" width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg>\n                                        <\/a>\n                                                                    <\/div>\n                            <\/li>\n                                                            <\/ul>\n\n                <button type=\"button\" class=\"sl-ns-nav sl-ns-prev\" aria-label=\"Servicio anterior\" hidden><svg viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" aria-hidden=\"true\"><path d=\"M15 5l-7 7 7 7\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/button>\n                <button type=\"button\" class=\"sl-ns-nav sl-ns-next\" aria-label=\"Servicio siguiente\" hidden><svg viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" aria-hidden=\"true\"><path d=\"M9 5l7 7-7 7\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/button>\n                <div class=\"sl-ns-dots\" role=\"group\" aria-label=\"Navegaci\u00f3n del carrusel\" hidden><\/div>\n            <\/div>\n\n        <\/div>\n    <\/section>\n\n    <noscript><style>#sl-ns .sl-ns-animar{ opacity:1; transform:none; }<\/style><\/noscript>\n\n    <style>\n        .sl-ns, .sl-ns *{ box-sizing:border-box; }\n\n        @keyframes slNsEntrada{\n            from{ opacity:0; transform:translateY(24px); }\n            to{ opacity:1; transform:translateY(0); }\n        }\n\n        \/* ---------- M\u00d3VIL (base): 1 tarjeta ---------- *\/\n        #sl-ns{\n            --sl-ns-gap:16px;\n            --sl-ns-v:1;\n            width:100%;\n            background:var(--sl-ns-bg,#fff);\n            color:var(--sl-color-primario,#0a0000);\n            font-family:var(--fuente-texto,'Poppins',sans-serif);\n        }\n        \/* Todo el ancho de la pantalla: sin max-width, solo padding (igual que Gr\u00faas) *\/\n        .sl-ns-inner{\n            width:100%;\n            padding:48px 22px 44px;\n        }\n\n        \/* Animaci\u00f3n al hacer scroll: oculto hasta que el JS agrega .sl-ns-visible *\/\n        #sl-ns .sl-ns-animar{ opacity:0; transform:translateY(24px); }\n        #sl-ns .sl-ns-animar.sl-ns-visible{ animation:slNsEntrada .8s ease both; animation-delay:var(--sl-ns-d,0ms); }\n\n        \/* Texto solo para lectores de pantalla *\/\n        .sl-sr{\n            position:absolute;\n            width:1px;\n            height:1px;\n            margin:-1px;\n            padding:0;\n            overflow:hidden;\n            clip:rect(0,0,0,0);\n            white-space:nowrap;\n            border:0;\n        }\n\n        \/* Encabezado: frase peque\u00f1a + t\u00edtulo grande, apilados *\/\n        .sl-ns-cabecera{ margin-bottom:26px; }\n        #sl-ns .sl-ns-eyebrow{\n            margin:0 0 4px;\n            padding:0;\n            font-family:var(--fuente-titulos,'Handel Gothic D',sans-serif);\n            font-size:12px;\n            font-weight:700;\n            line-height:1.4;\n            letter-spacing:.03em;\n            text-transform:uppercase;\n            color:var(--sl-color-secundario,#e30613);\n        }\n        #sl-ns .sl-ns-titulo{\n            margin:0;\n            padding:0;\n            font-family:var(--fuente-titulos,'Handel Gothic D',sans-serif);\n            font-size:clamp(40px,15vw,60px);\n            font-weight:700;\n            line-height:.98;\n            letter-spacing:.01em;\n            text-transform:uppercase;\n            color:var(--sl-color-primario,#0a0000);\n        }\n\n        \/* Carrusel: scroll horizontal con im\u00e1n (deslizable con el dedo) *\/\n        #sl-ns .sl-ns-pista{\n            list-style:none;\n            margin:0;\n            padding:0;\n            display:flex;\n            gap:var(--sl-ns-gap);\n            overflow-x:auto;\n            overflow-y:hidden;\n            scroll-snap-type:x mandatory;\n            scroll-behavior:auto; \/* el salto silencioso del bucle NO debe animarse aunque el tema ponga smooth *\/\n            scrollbar-width:none;\n            -webkit-overflow-scrolling:touch;\n            overscroll-behavior-x:contain;\n            cursor:grab;\n        }\n        .sl-ns-pista::-webkit-scrollbar{ display:none; }\n        .sl-ns-pista:focus-visible{ outline:2px solid var(--sl-color-secundario,#e30613); outline-offset:4px; }\n        #sl-ns .sl-ns-pista.sl-ns-arrastrando{ scroll-snap-type:none; cursor:grabbing; user-select:none; }\n        \/* Si todas las tarjetas caben en pantalla, las copias sobran *\/\n        #sl-ns .sl-ns-pista.sl-ns-sin-clones .sl-ns-clon{ display:none; }\n        #sl-ns .sl-ns-pista.sl-ns-sin-clones{ cursor:default; }\n\n        \/* Tarjeta *\/\n        .sl-ns-card{\n            position:relative;\n            flex:0 0 calc((100% - (var(--sl-ns-v) - 1) * var(--sl-ns-gap)) \/ var(--sl-ns-v));\n            scroll-snap-align:start;\n            display:flex;\n            flex-direction:column;\n            margin:0;\n            background:var(--sl-ns-card,#1a1a1a);\n            color:#fff;\n        }\n        .sl-ns-img{\n            overflow:hidden;\n            aspect-ratio:1.37 \/ 1;\n            background:rgba(255,255,255,.08);\n        }\n        #sl-ns .sl-ns-img img{\n            display:block;\n            width:100%;\n            height:100%;\n            object-fit:cover;\n            transition:transform .6s ease;\n            -webkit-user-drag:none;\n        }\n        #sl-ns .sl-ns-card:hover .sl-ns-img img{ transform:scale(1.05); }\n\n        .sl-ns-cuerpo{\n            flex:1;\n            display:flex;\n            flex-direction:column;\n            align-items:flex-start;\n            padding:22px 20px 24px;\n        }\n        #sl-ns .sl-ns-nombre{\n            max-width:11.5em;\n            margin:0;\n            padding:0;\n            font-family:var(--fuente-titulos,'Handel Gothic D',sans-serif);\n            font-size:16px;\n            font-weight:700;\n            line-height:1.25;\n            letter-spacing:.01em;\n            text-transform:uppercase;\n            color:#fff;\n        }\n        .sl-ns-linea{\n            display:block;\n            width:11em;\n            max-width:100%;\n            height:2px;\n            margin:14px 0 18px;\n            background:var(--sl-color-secundario,#e30613);\n            font-size:16px;\n        }\n        #sl-ns .sl-ns-texto{\n            margin:0 0 20px;\n            font-family:var(--fuente-texto,'Poppins',sans-serif);\n            font-size:14px;\n            line-height:1.6;\n            color:#fff;\n        }\n\n        \/* Enlace al pie: \"VER SERVICIO \u2192\" (toda la tarjeta es clicable) *\/\n        #sl-ns .sl-ns-enlace{\n            display:inline-flex;\n            align-items:center;\n            gap:8px;\n            margin-top:auto;\n            font-family:var(--fuente-texto,'Poppins',sans-serif);\n            font-size:12px;\n            font-weight:700;\n            letter-spacing:.03em;\n            text-decoration:none;\n            text-transform:uppercase;\n            color:#fff;\n        }\n        #sl-ns .sl-ns-enlace::after{ content:\"\"; position:absolute; inset:0; z-index:1; }\n        #sl-ns .sl-ns-enlace:focus-visible{ outline:none; }\n        #sl-ns .sl-ns-card:focus-within{ outline:2px solid var(--sl-color-secundario,#e30613); outline-offset:2px; }\n        .sl-ns-flecha{ transition:transform .25s ease; }\n        #sl-ns .sl-ns-card:hover .sl-ns-flecha{ transform:translateX(4px); }\n        #sl-ns .sl-ns-enlace:hover{ color:#fff; }\n        #sl-ns .sl-ns-enlace-solo{ position:static; margin:0; }\n\n        \/* Flechas laterales (centradas sobre la imagen de las tarjetas) *\/\n        #sl-ns .sl-ns-carrusel{ position:relative; }\n        #sl-ns .sl-ns-nav{\n            position:absolute;\n            top:27%;\n            transform:translateY(-50%);\n            z-index:2;\n            width:44px;\n            height:44px;\n            padding:0;\n            display:flex;\n            align-items:center;\n            justify-content:center;\n            border:0;\n            border-radius:50%;\n            background:var(--sl-color-secundario,#e30613);\n            color:#fff;\n            box-shadow:0 2px 10px rgba(0,0,0,.35);\n            cursor:pointer;\n            transition:background .25s ease, transform .25s ease;\n        }\n        #sl-ns .sl-ns-nav[hidden]{ display:none; }\n        #sl-ns .sl-ns-prev{ left:8px; }\n        #sl-ns .sl-ns-next{ right:8px; }\n        #sl-ns .sl-ns-nav:hover,\n        #sl-ns .sl-ns-nav:focus{ background:var(--sl-color-primario,#0a0000); color:#fff; }\n        #sl-ns .sl-ns-nav:active{ transform:translateY(-50%) scale(.94); }\n        #sl-ns .sl-ns-nav:focus-visible{ outline:2px solid #fff; outline-offset:2px; }\n\n        \/* Puntos de navegaci\u00f3n *\/\n        .sl-ns-dots{\n            display:flex;\n            justify-content:center;\n            flex-wrap:wrap;\n            gap:0;\n            margin-top:20px;\n        }\n        .sl-ns-dots[hidden]{ display:none; }\n        #sl-ns .sl-ns-dot{\n            position:relative;\n            width:22px;\n            height:22px;\n            padding:0;\n            background:transparent;\n            border:0;\n            border-radius:0;\n            box-shadow:none;\n            cursor:pointer;\n        }\n        #sl-ns .sl-ns-dot::before{\n            content:\"\";\n            position:absolute;\n            top:50%;\n            left:50%;\n            width:10px;\n            height:10px;\n            border-radius:2px;\n            background:rgba(0,0,0,.18);\n            transform:translate(-50%,-50%);\n            transition:background .25s ease, transform .25s ease;\n        }\n        #sl-ns .sl-ns-dot:hover,\n        #sl-ns .sl-ns-dot:focus{ background:transparent; }\n        #sl-ns .sl-ns-dot:focus-visible{ outline:2px solid var(--sl-color-secundario,#e30613); outline-offset:-2px; }\n        #sl-ns .sl-ns-dot.sl-activo::before{\n            background:var(--sl-color-primario,#0a0000);\n            transform:translate(-50%,-50%) scale(1.15);\n        }\n\n        @media (prefers-reduced-motion:reduce){\n            #sl-ns .sl-ns-animar,\n            #sl-ns .sl-ns-animar.sl-ns-visible{ opacity:1; transform:none; animation:none; }\n            #sl-ns .sl-ns-img img,\n            .sl-ns-flecha{ transition:none; }\n        }\n\n        \/* ---------- TABLET: hasta 2 tarjetas ---------- *\/\n        @media (min-width:768px){\n            #sl-ns{ --sl-ns-v:var(--sl-ns-v-tab,2); }\n        }\n\n        \/* ---------- ESCRITORIO: hasta 3 tarjetas ---------- *\/\n        @media (min-width:992px){\n            #sl-ns .sl-ns-prev{ left:-22px; }\n            #sl-ns .sl-ns-next{ right:-22px; }\n            #sl-ns{ --sl-ns-v:var(--sl-ns-v-esc,3); --sl-ns-gap:clamp(16px,1.7vw,24px); }\n            .sl-ns-inner{ padding:60px 50px; }\n            .sl-ns-cabecera{ margin-bottom:clamp(28px,3.4vw,44px); }\n            #sl-ns .sl-ns-eyebrow{ font-size:clamp(15px,1.19vw,17px); margin-bottom:6px; }\n            #sl-ns .sl-ns-titulo{ font-size:clamp(52px,6.4vw,84px); }\n\n            .sl-ns-cuerpo{ padding:clamp(22px,2.2vw,30px) clamp(18px,1.8vw,26px) clamp(24px,2.4vw,32px); }\n            #sl-ns .sl-ns-nombre{ font-size:clamp(16px,1.35vw,19px); }\n            #sl-ns .sl-ns-linea{ font-size:clamp(16px,1.35vw,19px); margin:16px 0 20px; }\n            #sl-ns .sl-ns-texto{ font-size:clamp(14px,1.15vw,16px); }\n            #sl-ns .sl-ns-enlace{ font-size:clamp(12px,1vw,14px); }\n        }\n    <\/style>\n\n    <script>\n        (function(){\n            var raiz = document.getElementById('sl-ns');\n            if ( ! raiz ) return;\n\n            var pista     = raiz.querySelector('.sl-ns-pista');\n            var caja      = raiz.querySelector('.sl-ns-dots');\n            var flechas   = raiz.querySelectorAll('.sl-ns-nav');\n            var reales    = Array.prototype.slice.call( raiz.querySelectorAll('.sl-ns-card:not(.sl-ns-clon)') );\n            var todas     = Array.prototype.slice.call( raiz.querySelectorAll('.sl-ns-card') );\n            var animados  = raiz.querySelectorAll('.sl-ns-cabecera .sl-ns-animar');\n            var auto      = raiz.getAttribute('data-auto') === '1';\n            var intervalo = parseInt( raiz.getAttribute('data-intervalo'), 10 ) || 3000;\n            var reducir   = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n            var N       = reales.length;          \/\/ tarjetas reales\n            var hayClon = todas.length > N;       \/\/ la copia existe solo si hay 2 o m\u00e1s tarjetas\n            if ( ! N ) return;\n\n            \/*\n             * C\u00f3mo funciona el bucle infinito:\n             * detr\u00e1s de las N tarjetas reales hay una copia id\u00e9ntica de las N. El carrusel siempre\n             * avanza de a UNA tarjeta. Cuando termina de moverse y el borde izquierdo ya est\u00e1 dentro\n             * de la copia, se resta el largo de un ciclo al scroll (salto instant\u00e1neo): como la copia\n             * es id\u00e9ntica, el visitante no ve ning\u00fan cambio. Lo mismo al retroceder desde la primera.\n             *\/\n            var activo = false, visto = false, moviendo = false, tocando = false, pausado = false;\n            var actual = 0, dots = [], timer = null, finTimer = null;\n\n            \/* scrollLeft en el que la tarjeta k queda pegada al borde izquierdo *\/\n            function posicion( k ){ return todas[k].offsetLeft - todas[0].offsetLeft; }\n            function largoCiclo(){ return hayClon ? posicion( N ) : 0; }\n\n            \/* \u00cdndice (0..2N-1) de la tarjeta m\u00e1s cercana al borde izquierdo *\/\n            function indiceCercano(){\n                var x = pista.scrollLeft, mejor = 0, dist = Infinity;\n                for ( var k = 0; k < todas.length; k++ ) {\n                    if ( todas[k].offsetParent === null ) continue; \/\/ copia oculta\n                    var d = Math.abs( posicion( k ) - x );\n                    if ( d < dist ) { dist = d; mejor = k; }\n                }\n                return mejor;\n            }\n\n            \/* ---------- Puntos: uno por tarjeta ---------- *\/\n            function construirPuntos(){\n                flechas.forEach(function(f){ f.hidden = ! activo; });\n                if ( ! activo ) { caja.hidden = true; caja.innerHTML = ''; dots = []; return; }\n                caja.hidden = false;\n                if ( dots.length === N ) return;\n                caja.innerHTML = '';\n                dots = [];\n                for ( var i = 0; i < N; i++ ) {\n                    (function(n){\n                        var b = document.createElement('button');\n                        b.type = 'button';\n                        b.className = 'sl-ns-dot';\n                        b.setAttribute('aria-label', 'Ir al servicio ' + ( n + 1 ) + ' de ' + N);\n                        b.addEventListener('click', function(){ irA( n, true ); reiniciarAuto(); });\n                        caja.appendChild(b);\n                        dots.push(b);\n                    })(i);\n                }\n            }\n\n            function marcarPunto( n ){\n                actual = n;\n                dots.forEach(function(d, i){\n                    d.classList.toggle('sl-activo', i === n);\n                    if ( i === n ) { d.setAttribute('aria-current', 'true'); } else { d.removeAttribute('aria-current'); }\n                });\n            }\n\n            \/* Si quedamos dentro de la copia, volvemos a la tarjeta real equivalente (sin que se note) *\/\n            function normalizar(){\n                if ( activo ) {\n                    var ciclo = largoCiclo();\n                    if ( ciclo > 0 && pista.scrollLeft >= ciclo - 2 ) {\n                        pista.scrollLeft = pista.scrollLeft - ciclo;\n                    }\n                }\n                marcarPunto( indiceCercano() % N );\n            }\n\n            function alTerminar(){\n                clearTimeout( finTimer );\n                if ( tocando || arrastrando ) return; \/\/ nunca saltar mientras el visitante sostiene la pista\n                moviendo = false;\n                normalizar();\n            }\n\n            \/* Mueve la pista hasta la tarjeta k (0..2N-1) *\/\n            function irA( k, suave ){\n                if ( ! activo ) return;\n                k = Math.max( 0, Math.min( todas.length - 1, k ) );\n                moviendo = true;\n                pista.scrollTo({ left: posicion( k ), behavior: ( suave && ! reducir ) ? 'smooth' : 'auto' });\n                marcarPunto( k % N );\n                clearTimeout( finTimer );\n                finTimer = setTimeout( alTerminar, 1200 ); \/\/ respaldo si el navegador no avisa el final\n            }\n\n            function avanzar(){\n                if ( ! activo || moviendo || tocando || arrastrando ) return;\n                var k = indiceCercano();\n                if ( k >= N ) { pista.scrollLeft = pista.scrollLeft - largoCiclo(); k -= N; }\n                irA( k + 1, true );\n            }\n\n            function retroceder(){\n                if ( ! activo || moviendo ) return;\n                var k = indiceCercano();\n                if ( k === 0 ) { pista.scrollLeft = posicion( N ); k = N; } \/\/ saltar a la copia de la 1.\u00aa\n                irA( k - 1, true );\n            }\n\n            \/* ---------- Medidas (al cargar y al cambiar el tama\u00f1o) ---------- *\/\n            function medir(){\n                var guardado = actual;\n                var gap      = parseFloat( getComputedStyle( pista ).columnGap ) || 0;\n                var ancho    = reales[0].getBoundingClientRect().width;\n                var visibles = ancho > 0 ? Math.max( 1, Math.round( ( pista.clientWidth + gap ) \/ ( ancho + gap ) ) ) : 1;\n\n                activo = hayClon && N > visibles;\n                pista.classList.toggle('sl-ns-sin-clones', ! activo);\n                construirPuntos();\n                pista.scrollLeft = activo ? posicion( guardado % N ) : 0;\n                marcarPunto( activo ? guardado % N : 0 );\n                iniciarAuto();\n            }\n\n            \/* ---------- Scroll manual (dedo, rueda, trackpad) ---------- *\/\n            var esperandoFrame = false;\n            pista.addEventListener('scroll', function(){\n                if ( ! esperandoFrame ) {\n                    esperandoFrame = true;\n                    requestAnimationFrame(function(){\n                        esperandoFrame = false;\n                        if ( activo ) marcarPunto( indiceCercano() % N );\n                    });\n                }\n                clearTimeout( finTimer );\n                finTimer = setTimeout( alTerminar, 140 ); \/\/ el scroll se detuvo\n            }, { passive: true });\n            if ( 'onscrollend' in window ) {\n                pista.addEventListener('scrollend', alTerminar);\n            }\n\n            pista.addEventListener('touchstart', function(){ tocando = true; detenerAuto(); }, { passive: true });\n            function soltarDedo(){\n                tocando = false;\n                clearTimeout( finTimer );\n                finTimer = setTimeout( alTerminar, 200 );\n                iniciarAuto();\n            }\n            pista.addEventListener('touchend', soltarDedo, { passive: true });\n            pista.addEventListener('touchcancel', soltarDedo, { passive: true });\n\n            \/* ---------- Flechas laterales ---------- *\/\n            raiz.querySelector('.sl-ns-prev').addEventListener('click', function(){ retroceder(); reiniciarAuto(); });\n            raiz.querySelector('.sl-ns-next').addEventListener('click', function(){ avanzar(); reiniciarAuto(); });\n\n            \/* ---------- Teclado (flechas) ---------- *\/\n            pista.addEventListener('keydown', function(e){\n                if ( e.key === 'ArrowRight' ) { e.preventDefault(); avanzar(); reiniciarAuto(); }\n                if ( e.key === 'ArrowLeft' )  { e.preventDefault(); retroceder(); reiniciarAuto(); }\n            });\n\n            \/* ---------- Arrastrar con el mouse ---------- *\/\n            var arrastrando = false, movio = false, x0 = 0, s0 = 0;\n            pista.addEventListener('pointerdown', function(e){\n                if ( e.pointerType !== 'mouse' || e.button !== 0 || ! activo ) return;\n                arrastrando = true; movio = false; x0 = e.clientX; s0 = pista.scrollLeft;\n                detenerAuto();\n            });\n            window.addEventListener('pointermove', function(e){\n                if ( ! arrastrando ) return;\n                var dx = e.clientX - x0;\n                if ( Math.abs( dx ) > 5 ) { movio = true; pista.classList.add('sl-ns-arrastrando'); }\n                if ( movio ) pista.scrollLeft = s0 - dx;\n            });\n            window.addEventListener('pointerup', function(){\n                if ( ! arrastrando ) return;\n                arrastrando = false;\n                pista.classList.remove('sl-ns-arrastrando');\n                if ( movio ) { irA( indiceCercano(), true ); }\n                iniciarAuto();\n            });\n            \/* Si se arrastr\u00f3, no seguir el enlace de la tarjeta *\/\n            pista.addEventListener('click', function(e){\n                if ( movio ) { e.preventDefault(); e.stopPropagation(); movio = false; }\n            }, true);\n\n            \/* ---------- Avance autom\u00e1tico ---------- *\/\n            function detenerAuto(){ if ( timer ) { clearInterval( timer ); timer = null; } }\n            function iniciarAuto(){\n                detenerAuto();\n                if ( ! auto || reducir || pausado || ! activo || ! visto || document.hidden ) return;\n                timer = setInterval( avanzar, intervalo );\n            }\n            function reiniciarAuto(){ iniciarAuto(); }\n\n            raiz.addEventListener('pointerenter', function(e){ if ( e.pointerType === 'mouse' ) { pausado = true; detenerAuto(); } });\n            raiz.addEventListener('pointerleave', function(e){ if ( e.pointerType === 'mouse' ) { pausado = false; iniciarAuto(); } });\n            raiz.addEventListener('focusin', function(){ pausado = true; detenerAuto(); });\n            raiz.addEventListener('focusout', function(){ pausado = false; iniciarAuto(); });\n            document.addEventListener('visibilitychange', function(){ if ( document.hidden ) { detenerAuto(); } else { iniciarAuto(); } });\n\n            var redim = null;\n            window.addEventListener('resize', function(){ clearTimeout( redim ); redim = setTimeout( medir, 150 ); });\n\n            \/* ---------- Entrada al hacer scroll + carga de im\u00e1genes ---------- *\/\n            function mostrar( el ){ el.classList.add('sl-ns-visible'); }\n\n            \/* Las im\u00e1genes de un carrusel horizontal con loading=\"lazy\" pueden aparecer en blanco\n               al entrar deslizando; al acercarse la secci\u00f3n se cargan todas (incluida la copia). *\/\n            function alVerCarrusel(){\n                if ( visto ) return;\n                visto = true;\n                reales.forEach( mostrar );\n                pista.querySelectorAll('img').forEach(function(img){ img.loading = 'eager'; });\n                iniciarAuto();\n            }\n\n            if ( ! ('IntersectionObserver' in window) ) {\n                animados.forEach( mostrar );\n                alVerCarrusel();\n            } else {\n                var obsTexto = new IntersectionObserver(function(entradas){\n                    entradas.forEach(function(en){ if ( en.isIntersecting ) { mostrar( en.target ); obsTexto.unobserve( en.target ); } });\n                }, { threshold: 0.15 });\n                animados.forEach(function(el){ obsTexto.observe( el ); });\n\n                var obsCarrusel = new IntersectionObserver(function(entradas){\n                    entradas.forEach(function(en){\n                        if ( en.isIntersecting ) { alVerCarrusel(); obsCarrusel.disconnect(); }\n                    });\n                }, { threshold: 0.15 });\n                obsCarrusel.observe( pista );\n            }\n\n            medir();\n            window.addEventListener('load', medir);   \/\/ por si las im\u00e1genes o fuentes cambian las medidas\n        })();\n    <\/script>\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-ed302a8 e-con e-atomic-element e-flexbox-base e-default-div e-2632a9a \" data-id=\"ed302a8\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"ed302a8\" data-e-type=\"e-flexbox\" data-id=\"ed302a8\">\n    \t\t<div class=\"elementor-element elementor-element-004fa8a elementor-widget elementor-widget-shortcode\" data-id=\"004fa8a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    <section class=\"sl-gruas\" id=\"sl-gruas-1\">\n                <article class=\"sl-grua\" id=\"grua-celosia\">\n\n            <div class=\"sl-grua-texto\">\n                <div class=\"sl-grua-texto-inner\">\n                    <h2 class=\"sl-grua-titulo sl-animar\">\n                        <span class=\"sl-grua-titulo-1\">Gr\u00faa<\/span>                        <span class=\"sl-grua-titulo-2\">Celos\u00eda<\/span>                    <\/h2>\n                    <span class=\"sl-grua-linea sl-animar\" style=\"animation-delay:.1s\"><\/span>\n\n                                        <div class=\"sl-grua-descripcion sl-animar\" style=\"animation-delay:.2s\">\n                                                    <p>Nuestra gr\u00faa de celos\u00eda manitowoc 21000 de 1,000 toneladas representa una de las mayores capacidades de izaje disponibles en el pa\u00eds para operaciones de alta exigencia.<\/p>\n                                                    <p>Dise\u00f1ada para maniobras de gran escala, permite ejecutar montajes complejos con estabilidad, alcance y capacidad operativa en proyectos que demandan planificaci\u00f3n y precisi\u00f3n en campo.<\/p>\n                                            <\/div>\n                    \n                                        <a class=\"sl-grua-boton sl-animar\" style=\"animation-delay:.3s\" href=\"\/contacto\">Consultar<\/a>\n                                    <\/div>\n            <\/div>\n\n            <div class=\"sl-grua-media\"\n                 data-ajuste=\"auto\"\n                 style=\"--sl-grua-pos:50%;\">\n\n                \n                                    <canvas class=\"sl-grua-fondo sl-grua-fondo-video\" width=\"48\" height=\"48\" aria-hidden=\"true\"><\/canvas>\n                    <video class=\"sl-grua-video\" muted loop playsinline preload=\"none\"\n                                                data-src=\"https:\/\/consorciosagitario.com\/wp-content\/uploads\/2026\/09\/0624_comprimido.webm\"\n                        data-type=\"video\/webm\"                        aria-label=\"Gr\u00faa Celos\u00eda\"><\/video>\n                    <noscript>\n                        <video class=\"sl-grua-video\" autoplay muted loop playsinline src=\"https:\/\/consorciosagitario.com\/wp-content\/uploads\/2026\/09\/0624_comprimido.webm\"><\/video>\n                    <\/noscript>\n                            <\/div>\n\n        <\/article>\n            <\/section>\n\n        <style>\n        .sl-gruas *{ box-sizing:border-box; }\n\n        @keyframes slGruasEntrada{ from{ opacity:0; transform:translateY(22px); } to{ opacity:1; transform:translateY(0); } }\n\n        .sl-gruas{\n            font-family:var(--fuente-texto,'Sofia Sans',sans-serif);\n        }\n        .sl-gruas .sl-animar{ opacity:0; transform:translateY(22px); }\n        .sl-gruas .sl-animar.sl-visible{ animation:slGruasEntrada .8s ease both; }\n\n        \/* ---------- M\u00d3VIL (base) ---------- *\/\n        .sl-grua{\n            display:flex;\n            flex-direction:column;\n            background:var(--sl-color-fondo-claro,#f7f7f7);\n        }\n        .sl-grua-texto{\n            display:flex;\n            align-items:center;\n            padding:48px 22px 44px;\n        }\n        .sl-grua-texto-inner{ width:100%; max-width:520px; }\n\n        .sl-grua-titulo{\n            margin:0;\n            font-family:var(--fuente-titulos,'Poppins',sans-serif);\n            font-weight:800;\n            text-transform:uppercase;\n            line-height:1;\n            font-size:44px;\n            letter-spacing:.5px;\n        }\n        .sl-grua-titulo span{ display:block; }\n        .sl-grua-titulo-1{ color:var(--sl-color-oscuro,#111111); }\n        .sl-grua-titulo-2{ color:var(--sl-color-primario,#e30613); margin-top:6px; }\n\n        .sl-grua-linea{\n            display:block;\n            width:72px;\n            height:3px;\n            background:var(--sl-color-primario,#e30613);\n            margin:20px 0 24px;\n        }\n\n        .sl-grua-descripcion p{\n            margin:0 0 16px;\n            font-size:14px;\n            line-height:1.6;\n            color:var(--sl-color-texto,#222222);\n        }\n        .sl-grua-descripcion p:last-child{ margin-bottom:0; }\n\n        .sl-grua-boton{\n            display:inline-flex;\n            align-items:center;\n            justify-content:center;\n            min-width:174px;\n            margin-top:32px;\n            padding:12px 28px;\n            border:1.5px solid var(--sl-color-oscuro,#111111);\n            color:var(--sl-color-oscuro,#111111);\n            font-family:var(--fuente-titulos,'Poppins',sans-serif);\n            font-size:13px;\n            font-weight:700;\n            letter-spacing:.5px;\n            text-transform:uppercase;\n            text-decoration:none;\n            transition:background .3s ease, color .3s ease, border-color .3s ease;\n        }\n        .sl-grua-boton:hover,\n        .sl-grua-boton:focus-visible{\n            background:var(--sl-color-primario,#e30613);\n            border-color:var(--sl-color-primario,#e30613);\n            color:#fff;\n        }\n\n        \/* ---------- Contenedor del video ---------- *\/\n        .sl-grua-media{\n            position:relative;\n            min-height:360px;\n            overflow:hidden;\n            background:#0d2b5a;\n            isolation:isolate;\n        }\n        \/* En m\u00f3vil, si el video es vertical, el recuadro se hace m\u00e1s alto para que se aprecie *\/\n        .sl-grua-media.sl-grua-media--vertical{\n            min-height:0;\n            aspect-ratio:4 \/ 5;\n        }\n        .sl-grua-media .sl-grua-video,\n        .sl-grua-media .sl-grua-imagen{\n            position:absolute;\n            inset:0;\n            z-index:2;\n            display:block;\n            width:100%;\n            height:100%;\n            max-width:none;\n            object-fit:cover;\n            object-position:50% var(--sl-grua-pos,50%);\n        }\n\n        \/* Fondo difuminado (solo en modo \"completo\"): p\u00f3ster + fotograma actual del video *\/\n        .sl-grua-fondo{\n            position:absolute;\n            inset:-10%;\n            z-index:1;\n            width:120%;\n            height:120%;\n            background-size:cover;\n            background-position:center;\n            filter:blur(32px) brightness(.75) saturate(1.15);\n            opacity:0;\n            transition:opacity .6s ease;\n            pointer-events:none;\n        }\n        .sl-grua-media--completo .sl-grua-fondo{ opacity:1; }\n        .sl-grua-media--completo .sl-grua-video,\n        .sl-grua-media--completo .sl-grua-imagen{\n            object-fit:contain;\n            object-position:50% 50%;\n            filter:drop-shadow(0 10px 30px rgba(0,0,0,.35));\n        }\n\n        \/* ---------- ESCRITORIO ---------- *\/\n        @media (min-width:992px){\n            .sl-grua{\n                flex-direction:row;\n                min-height:520px;\n            }\n            .sl-grua--invertida{ flex-direction:row-reverse; }\n            .sl-grua-texto,\n            .sl-grua-media{ flex:1 1 50%; }\n            .sl-grua-texto{ padding:60px 50px; }\n            .sl-grua-media,\n            .sl-grua-media.sl-grua-media--vertical{ min-height:auto; aspect-ratio:auto; }\n            .sl-grua-titulo{ font-size:62px; }\n            .sl-grua-linea{ margin:22px 0 28px; }\n            .sl-grua-descripcion p{ text-align:justify; }\n            .sl-grua-boton{ margin-top:60px; }\n        }\n\n        @media (prefers-reduced-motion:reduce){\n            .sl-gruas .sl-animar{ opacity:1; transform:none; }\n            .sl-gruas .sl-animar.sl-visible{ animation:none; }\n            .sl-grua-fondo{ transition:none; }\n        }\n    <\/style>\n    \n    <script>\n        (function(){\n            var seccion = document.getElementById('sl-gruas-1');\n            if (!seccion) return;\n\n            var elementos = seccion.querySelectorAll('.sl-animar');\n            var medias    = seccion.querySelectorAll('.sl-grua-media');\n            var reducir   = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n            var hayIO     = ('IntersectionObserver' in window);\n\n            \/* ---------- Animaci\u00f3n de entrada ---------- *\/\n            if (!hayIO) {\n                elementos.forEach(function(el){ el.classList.add('sl-visible'); });\n            } else {\n                var observer = new IntersectionObserver(function(entradas){\n                    entradas.forEach(function(entrada){\n                        if (entrada.isIntersecting) {\n                            entrada.target.classList.add('sl-visible');\n                            observer.unobserve(entrada.target);\n                        }\n                    });\n                }, { threshold: 0.2 });\n                elementos.forEach(function(el){ observer.observe(el); });\n            }\n\n            \/* ---------- Video: encuadre, carga diferida y fondo difuminado ---------- *\/\n            medias.forEach(function(media){\n                var video  = media.querySelector('.sl-grua-video');\n                var lienzo = media.querySelector('.sl-grua-fondo-video');\n                var imagen = media.querySelector('.sl-grua-imagen');\n                var modo   = media.getAttribute('data-ajuste') || 'auto';\n                var ctx    = null, pintor = null, cargado = false, enPantalla = false;\n                if (lienzo && lienzo.getContext) { try { ctx = lienzo.getContext('2d'); } catch(e){ ctx = null; } }\n\n                \/* Decide si el video se muestra completo o llenando el espacio *\/\n                function encuadrar(){\n                    var w = 0, h = 0;\n                    if (video && video.videoWidth) { w = video.videoWidth; h = video.videoHeight; }\n                    else if (imagen && imagen.naturalWidth) { w = imagen.naturalWidth; h = imagen.naturalHeight; }\n                    if (!w || !h) return;\n\n                    var ratioVideo = w \/ h;\n                    media.classList.toggle('sl-grua-media--vertical', ratioVideo < 0.9);\n\n                    var completo = (modo === 'completo');\n                    if (modo === 'auto') {\n                        var bw = media.clientWidth, bh = media.clientHeight;\n                        \/\/ Si al llenar el espacio se perder\u00eda m\u00e1s del 40 % del video \u2192 mostrarlo completo\n                        completo = bw > 0 && bh > 0 && ratioVideo < (bw \/ bh) * 0.6;\n                    }\n                    media.classList.toggle('sl-grua-media--completo', completo);\n                    actualizarPintor();\n                }\n\n                \/* Copia el fotograma actual a un lienzo diminuto (difuminado por CSS) para el fondo *\/\n                function pintar(){\n                    if (!ctx || !video || video.readyState < 2) return;\n                    try { ctx.drawImage(video, 0, 0, lienzo.width, lienzo.height); } catch(e){}\n                }\n                function actualizarPintor(){\n                    var necesita = ctx && video && enPantalla && !video.paused && media.classList.contains('sl-grua-media--completo');\n                    if (necesita && !pintor) { pintor = setInterval(pintar, 150); }\n                    if (!necesita && pintor) { clearInterval(pintor); pintor = null; }\n                }\n\n                function cargar(){\n                    if (cargado || !video) return;\n                    cargado = true;\n                    var fuente = document.createElement('source');\n                    fuente.src = video.getAttribute('data-src');\n                    if (video.getAttribute('data-type')) fuente.type = video.getAttribute('data-type');\n                    video.appendChild(fuente);\n                    video.preload = reducir ? 'metadata' : 'auto';\n                    video.load();\n                }\n\n                function reproducir(){\n                    if (!video || reducir) return;\n                    var p = video.play();\n                    if (p && p.catch) p.catch(function(){});\n                }\n\n                if (video) {\n                    video.muted = true;\n                    video.addEventListener('loadedmetadata', encuadrar);\n                    video.addEventListener('loadeddata', function(){ encuadrar(); pintar(); });\n                    video.addEventListener('play', actualizarPintor);\n                    video.addEventListener('pause', actualizarPintor);\n                }\n                if (imagen) {\n                    if (imagen.complete) { encuadrar(); } else { imagen.addEventListener('load', encuadrar); }\n                }\n\n                var redim = null;\n                window.addEventListener('resize', function(){ clearTimeout(redim); redim = setTimeout(encuadrar, 150); });\n\n                if (!video) return;\n\n                if (!hayIO) {\n                    enPantalla = true;\n                    cargar();\n                    reproducir();\n                    return;\n                }\n\n                \/* Empieza a descargar el video un poco antes de que se vea *\/\n                var obsCarga = new IntersectionObserver(function(entradas){\n                    if (entradas[0].isIntersecting) { cargar(); obsCarga.disconnect(); }\n                }, { rootMargin: '400px 0px' });\n                obsCarga.observe(media);\n\n                \/* Solo se reproduce mientras est\u00e1 en pantalla (ahorra bater\u00eda y datos) *\/\n                var obsVideo = new IntersectionObserver(function(entradas){\n                    enPantalla = entradas[0].isIntersecting;\n                    if (enPantalla) { cargar(); reproducir(); } else { video.pause(); }\n                    actualizarPintor();\n                }, { threshold: 0.15 });\n                obsVideo.observe(media);\n            });\n        })();\n    <\/script>\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-99","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/consorciosagitario.com\/en\/wp-json\/wp\/v2\/pages\/99","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/consorciosagitario.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/consorciosagitario.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/consorciosagitario.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/consorciosagitario.com\/en\/wp-json\/wp\/v2\/comments?post=99"}],"version-history":[{"count":13,"href":"https:\/\/consorciosagitario.com\/en\/wp-json\/wp\/v2\/pages\/99\/revisions"}],"predecessor-version":[{"id":153,"href":"https:\/\/consorciosagitario.com\/en\/wp-json\/wp\/v2\/pages\/99\/revisions\/153"}],"wp:attachment":[{"href":"https:\/\/consorciosagitario.com\/en\/wp-json\/wp\/v2\/media?parent=99"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}