/* Tailwind CSS v3.4.0 - CSS personalizado para producción */
/* Base */
*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}
::before,::after{--tw-content:''}
html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif}
body{margin:0;line-height:inherit}

/* Reset y utilidades básicas */
h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}
a{color:inherit;text-decoration:inherit}
button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}
img,svg,video,canvas,audio,iframe,embed,object{display:block}
img,video{max-width:100%;height:auto}

/* Layout */
.container{width:100%;max-width:1280px;margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem}
.mx-auto{margin-left:auto;margin-right:auto}
.px-4{padding-left:1rem;padding-right:1rem}
.py-16{padding-top:4rem;padding-bottom:4rem}
.py-20{padding-top:5rem;padding-bottom:5rem}

/* Display */
.block{display:block}
.inline-block{display:inline-block}
.flex{display:flex}
.grid{display:grid}
.hidden{display:none}

/* Flexbox */
.items-center{align-items:center}
.items-start{align-items:flex-start}
.justify-center{justify-content:center}
.justify-between{justify-content:space-between}
.flex-col{flex-direction:column}
.flex-grow{flex-grow:1}
.flex-shrink-0{flex-shrink:0}
.space-x-2 > :not([hidden]) ~ :not([hidden]){margin-left:0.5rem}
.space-x-3 > :not([hidden]) ~ :not([hidden]){margin-left:0.75rem}
.space-x-4 > :not([hidden]) ~ :not([hidden]){margin-left:1rem}
.space-x-6 > :not([hidden]) ~ :not([hidden]){margin-left:1.5rem}
.space-x-8 > :not([hidden]) ~ :not([hidden]){margin-left:2rem}
.space-y-1 > :not([hidden]) ~ :not([hidden]){margin-top:0.25rem}
.space-y-2 > :not([hidden]) ~ :not([hidden]){margin-top:0.5rem}
.space-y-3 > :not([hidden]) ~ :not([hidden]){margin-top:0.75rem}
.space-y-4 > :not([hidden]) ~ :not([hidden]){margin-top:1rem}
.space-y-6 > :not([hidden]) ~ :not([hidden]){margin-top:1.5rem}

/* Grid */
.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}
.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}

/* Spacing */
.gap-2{gap:0.5rem}
.gap-3{gap:0.75rem}
.gap-4{gap:1rem}
.gap-6{gap:1.5rem}
.gap-8{gap:2rem}
.gap-12{gap:3rem}
.gap-x-4{column-gap:1rem}
.gap-x-6{column-gap:1.5rem}
.gap-x-8{column-gap:2rem}
.gap-x-12{column-gap:3rem}
.gap-y-2{row-gap:0.5rem}
.gap-y-3{row-gap:0.75rem}
.gap-y-4{row-gap:1rem}
.gap-y-6{row-gap:1.5rem}
.gap-y-8{row-gap:2rem}
.mt-2{margin-top:0.5rem}
.mt-4{margin-top:1rem}
.mt-5{margin-top:1.25rem}
.mt-6{margin-top:1.5rem}
.mt-8{margin-top:2rem}
.mt-10{margin-top:2.5rem}
.mt-12{margin-top:3rem}
.mb-2{margin-bottom:0.5rem}
.mb-3{margin-bottom:0.75rem}
.mb-4{margin-bottom:1rem}
.mb-6{margin-bottom:1.5rem}
.mb-8{margin-bottom:2rem}
.mb-10{margin-bottom:2.5rem}
.mb-12{margin-bottom:3rem}
.ml-4{margin-left:1rem}
.mr-1{margin-right:0.25rem}
.p-6{padding:1.5rem}
.p-8{padding:2rem}
.px-2{padding-left:0.5rem;padding-right:0.5rem}
.px-8{padding-left:2rem;padding-right:2rem}
.py-2{padding-top:0.5rem;padding-bottom:0.5rem}
.py-3{padding-top:0.75rem;padding-bottom:0.75rem}
.py-4{padding-top:1rem;padding-bottom:1rem}
.py-6{padding-top:1.5rem;padding-bottom:1.5rem}

/* Width & Height */
.w-full{width:100%}
.w-4{width:1rem}
.w-6{width:1.5rem}
.w-8{width:2rem}
.w-10{width:2.5rem}
.w-16{width:4rem}
.w-24{width:6rem}
.w-auto{width:auto}
.h-full{height:100%}
.h-4{height:1rem}
.h-6{height:1.5rem}
.h-7{height:1.75rem}
.h-8{height:2rem}
.h-10{height:2.5rem}
.h-12{height:3rem}
.h-16{height:4rem}
.h-24{height:6rem}
.h-48{height:12rem}
.h-screen{height:100vh}
.h-auto{height:auto}
.max-w-xl{max-width:36rem}
.max-w-2xl{max-width:42rem}
.max-w-3xl{max-width:48rem}
.max-w-4xl{max-width:56rem}
.max-w-full{max-width:100%}
.mx-auto{margin-left:auto;margin-right:auto}
.object-cover{object-fit:cover}
.object-contain{object-fit:contain}
.fill{fill:currentColor}

/* Colors */
.bg-white{background-color:#fff}
.bg-gray-50{background-color:#f9fafb}
.bg-gray-100{background-color:#f3f4f6}
.bg-blue-50{background-color:#eff6ff}
.bg-blue-100{background-color:#dbeafe}
.bg-blue-50{background-color:rgb(239 246 255)}
.bg-blue-600{background-color:rgb(37 99 235)}
.bg-blue-700{background-color:rgb(29 78 216)}
.hover\:bg-blue-50:hover{background-color:rgb(239 246 255)}
.hover\:bg-blue-700:hover{background-color:rgb(29 78 216)}
.hover\:bg-gray-100:hover{background-color:rgb(243 244 246)}
.bg-blue-700{background-color:#1d4ed8}
.bg-sky-50{background-color:#f0f9ff}
.bg-slate-50{background-color:#f8fafc}
.bg-slate-600{background-color:#475569}

.text-white{color:rgb(255 255 255)}
.text-gray-50{color:rgb(249 250 251)}
.text-gray-100{color:rgb(243 244 246)}
.text-gray-200{color:rgb(229 231 235)}
.text-gray-300{color:rgb(209 213 219)}
.text-gray-400{color:rgb(156 163 175)}
.text-gray-500{color:rgb(107 114 128)}
.text-gray-600{color:rgb(75 85 99)}
.text-gray-700{color:rgb(55 65 81)}
.text-gray-800{color:rgb(31 41 55)}
.text-gray-900{color:rgb(17 24 39)}
.text-gray-600{color:#4b5563}
.text-gray-700{color:#374151}
.text-gray-800{color:#1f2937}
.text-gray-900{color:#111827}
.text-blue-100{color:#dbeafe}
.text-blue-200{color:#bfdbfe}
.text-blue-300{color:#93c5fd}
.text-blue-600{color:#2563eb}
.text-slate-100{color:#f1f5f9}
.text-slate-600{color:#475569}
.font-semibold{font-weight:600}

/* Typography */
.text-sm{font-size:0.875rem;line-height:1.25rem}
.text-base{font-size:1rem;line-height:1.5rem}
.text-lg{font-size:1.125rem;line-height:1.75rem}
.text-xl{font-size:1.25rem;line-height:1.75rem}
.text-2xl{font-size:1.5rem;line-height:2rem}
.text-3xl{font-size:1.875rem;line-height:2.25rem}
.text-4xl{font-size:2.25rem;line-height:2.5rem}

.font-bold{font-weight:700}
.font-extrabold{font-weight:800}

.text-center{text-align:center}
.text-left{text-align:left}
.uppercase{text-transform:uppercase}
.tracking-tight{letter-spacing:-0.025em}
.tracking-widest{letter-spacing:0.1em}

/* Borders */
.rounded-lg{border-radius:0.5rem}
.rounded-xl{border-radius:0.75rem}
.rounded-2xl{border-radius:1rem}
.rounded-full{border-radius:9999px}
.border-2{border-width:2px}
.border-white{border-color:#fff}

/* Position */
.relative{position:relative}
.absolute{position:absolute}
.sticky{position:sticky}
.top-0{top:0}
.inset-0{top:0;right:0;bottom:0;left:0}
.z-10{z-index:10}
.z-50{z-index:50}

/* Effects */
.shadow-lg{box-shadow:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -2px rgba(0,0,0,0.05)}
.shadow-md{box-shadow:0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -1px rgba(0,0,0,0.06)}
.hover\:bg-white:hover{background-color:#fff}
.hover\:bg-gray-100:hover{background-color:#f3f4f6}
.hover\:bg-gray-200:hover{background-color:#e5e7eb}
.hover\:bg-blue-700:hover{background-color:#1d4ed8}
.hover\:text-blue-600:hover{color:#2563eb}
.hover\:text-blue-100:hover{color:#dbeafe}
.hover\:text-slate-600:hover{color:#475569}
.hover\:underline:hover{text-decoration-line:underline}
.hover\:grayscale-0:hover{filter:grayscale(0)}
.hover\:opacity-100:hover{opacity:1}
.grayscale{filter:grayscale(100%)}
.opacity-20{opacity:0.2}

/* Transitions */
.transition-all{transition-property:all;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms}
.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms}

/* Transform */
.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}
.hover\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}

/* Responsive */
@media (min-width:640px){
.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}
.sm\:py-20{padding-top:5rem;padding-bottom:5rem}
.sm\:flex-row{flex-direction:row}
}

@media (min-width:768px){
.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.md\:text-4xl{font-size:2.25rem}
.md\:text-5xl{font-size:3rem}
.md\:text-6xl{font-size:3.75rem}
/* === RESPONSIVE UTILITIES === */
@media (min-width: 768px) {
    .md\:flex{display:flex !important}
    .md\:hidden{display:none !important}
}

/* === FORZAR VISIBILIDAD DEL MENÚ DESKTOP === */
.desktop-menu {
    display: flex !important;
}

@media (max-width: 767px) {
    .desktop-menu {
        display: none !important;
    }
}
}

@media (min-width:1024px){
.lg\:px-8{padding-left:2rem;padding-right:2rem}
.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.lg\:col-span-2{grid-column:span 2/span 2}
}

/* Utilidades adicionales */
.overflow-hidden{overflow:hidden}
.overflow-x-auto{overflow-x:auto}
.overflow-x-hidden{overflow-x:hidden}
.min-h-screen{min-height:100vh}
.min-w-full{min-width:100%}
.self-start{align-self:flex-start}
.border-b{border-bottom-width:1px}
.border-b-2{border-bottom-width:2px}
.border-gray-200{border-color:#e5e7eb}
.border-blue-500{border-color:#3b82f6}
.bg-gray-50{background-color:rgb(249 250 251)}
.bg-gray-100{background-color:rgb(243 244 246)}
.bg-gray-200{background-color:rgb(229 231 235)}
.bg-gray-300{background-color:rgb(209 213 219)}
.bg-gray-400{background-color:rgb(156 163 175)}
.bg-gray-500{background-color:rgb(107 114 128)}
.bg-gray-600{background-color:rgb(75 85 99)}
.bg-gray-700{background-color:rgb(55 65 81)}
.bg-gray-800{background-color:rgb(31 41 55)}
.bg-gray-900{background-color:rgb(17 24 39)}
.bg-gray-900\/70{background-color:rgb(17 24 39 / 0.7)}
.pb-12{padding-bottom:3rem}

/* Swiper Styles */
.swiper-container{position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;width:100%}
.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;box-sizing:content-box}
.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:flex}
.swiper-pagination{position:absolute;text-align:center;transition:300ms opacity;transform:translate3d(0,0,0);z-index:10}
.swiper-pagination-bullet{width:8px;height:8px;display:inline-block;border-radius:50%;background:#000;opacity:0.2;margin:0 4px;cursor:pointer;transition:opacity 0.3s}
.swiper-pagination-bullet-active{opacity:1;background:#2563eb}
.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:27px;height:44px;margin-top:-22px;z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#2563eb}
.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none;letter-spacing:0;font-variant:initial;line-height:1}
.swiper-button-prev{left:10px}
.swiper-button-next{right:10px}

/* Solutions swiper specific */
.solutions-swiper{padding-bottom:3rem}
.solutions-swiper .swiper-pagination{bottom:0;left:0;width:100%}
.solutions-pagination .swiper-pagination-bullet{background:#fff;opacity:0.5}
.solutions-pagination .swiper-pagination-bullet-active{opacity:1}

/* Hero swiper specific */
.hero-swiper{height:100vh}
.hero-pagination{bottom:2rem}
.hero-pagination .swiper-pagination-bullet{background:#fff;opacity:0.5;width:12px;height:12px}
.hero-pagination .swiper-pagination-bullet-active{opacity:1}

/* Client swiper specific */
.client-swiper{overflow:hidden}
.client-swiper img{filter:grayscale(1);opacity:0.7;transition:all 0.3s ease}
.client-swiper img:hover{filter:grayscale(0);opacity:1}

/* Card hover effects */
.card-hover-effect{transition:transform 0.3s ease,box-shadow 0.3s ease}
.card-hover-effect:hover{transform:translateY(-5px);box-shadow:0 20px 25px -5px rgba(0,0,0,0.1),0 10px 10px -5px rgba(0,0,0,0.04)}

/* Animation classes */
.hero-text-animation{animation:fadeInUp 0.8s ease-out forwards;opacity:0}
.hero-text-animation.h1{animation-delay:0.2s}
.hero-text-animation.h2{animation-delay:0.4s}
.hero-text-animation.p{animation-delay:0.6s}
.hero-text-animation.a{animation-delay:0.8s}

@keyframes fadeInUp{
  from{opacity:0;transform:translateY(30px)}
  to{opacity:1;transform:translateY(0)}
}

/* === CLASES PARA DROPDOWNS === */
.group{position:relative}
.opacity-0{opacity:0}
.opacity-100{opacity:1}
.invisible{visibility:hidden}
.visible{visibility:visible}
.pointer-events-none{pointer-events:none}
.pointer-events-auto{pointer-events:auto}

/* === GROUP HOVER EFFECTS === */
.group:hover .group-hover\:opacity-100{opacity:1 !important}
.group:hover .group-hover\:visible{visibility:visible !important}
.group:hover .group-hover\:rotate-180{transform:rotate(180deg) !important}

/* === TRANSITIONS === */
.transition-all{transition-property:all;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms}
.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms}
.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms}
.duration-200{transition-duration:200ms}

/* === TRANSFORM UTILITIES === */
.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}
.rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}

/* === VARIABLES TRANSFORM === */
*,::before,::after{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1}