/* Liberar el scroll del contenedor principal */
html, body, .body-innerwrapper, #sp-page-builder, .page-content {
    overflow-x: clip !important;
    overflow-y: visible !important;
}


/* Base para que las filas se queden pegadas */
.sppb-section.slide-pegajoso {
    position: -webkit-sticky !important; 
    position: sticky !important;
    /* El "top" lo controlaremos ahora con Javascript */
    min-height: 100vh !important;
    height: auto !important; /* Vital para que el contenido largo respire */
    margin: 0 !important;
}

/* Z-INDEX EXPLICITOS A PRUEBA DE SP PAGE BUILDER */
.capa-1 { z-index: 10 !important; background-color: #ffffff; }
.capa-2 { z-index: 20 !important; background-color: #ffffff; }
.capa-3 { z-index: 30 !important; background-color: #ffffff; } 
.capa-4 { z-index: 40 !important; background-color: #ffffff; }
.capa-5 { z-index: 50 !important; background-color: #ffffff; }
.capa-6 { z-index: 60 !important; background-color: #ffffff; }


/* --- EFECTO OVERLAY PARA SP PAGE BUILDER --- */
.sppb-section.slide-pegajoso {
    /* Creamos una variable para la opacidad, inicializada en 0 */
    --overlay-opacidad: 0; 
}

/* Creamos la capa oscura fantasma en cada Fila */
.sppb-section.slide-pegajoso::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #000000;
    opacity: var(--overlay-opacidad);
    z-index: 1; /* Se pone por encima del fondo de la fila... */
    pointer-events: none; /* Evita que bloquee los clics */
    will-change: opacity;
}

/* ... y aseguramos que TODO el contenido de la Fila quede por encima de la sombra */
.sppb-section.slide-pegajoso > * {
    position: relative;
    z-index: 2; 
}


/* Asegurar que las secciones sticky tengan el comportamiento correcto */
.sticky-slide {
    position: -webkit-sticky !important; /* Soporte Safari */
    position: sticky !important;
    top: 0 !important;
}

#gtx-trans {
 display: none
}


        * { box-sizing: border-box; }

        

.full-height-section {
    min-height: 100vh !important;
    display: flex;
    align-items: center; /* Centra el contenido verticalmente */
}


        /* Efecto hover suave para iconos del menú */
        .hover-opacity:hover {
            opacity: 0.6;
            transition: opacity 0.3s ease;
        }
        
        /* Ajustar el placeholder del buscador nuevo */
        .form-control::placeholder {
            color: #666;
        }
        
        /* Efecto premium para enlaces del footer */
        .text-hover-fade {
            transition: opacity 0.3s ease;
        }
        .text-hover-fade:hover {
            opacity: 0.5;
        }
        /* --- BARRA DE NAVEGACIÓN --- */
        
        
        .navbar-custom {
            position: fixed;
            top: 0;
            width: 100%;
            z-index: 1000;
            background-color: rgba(255, 255, 255, 0.9);
            padding: 15px 0;
            border-bottom: 1px solid #eee;
            transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
            transform-origin: top center;
        }

        .navbar-custom.is-hidden {
            opacity: 0;
            transform: translateY(-20px); 
            pointer-events: none; 
        }

        /* --- LOGO ANIMADO FLOTANTE --- */
        .brand-logo-anim {
            position: fixed;
            top: 100px;
            left: 30px;
          
            z-index: 2000;
            transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
            transform-origin: left top;
        }

img.logo{  width: 200px;}


        .brand-logo-anim svg {
            width: 10%; 
            height: auto;
            display: block;
        }

        .brand-logo-anim.is-hidden {
            opacity: 0;
            transform: translateY(-20px) scale(0.95); 
            pointer-events: none; 
        }

        /* --- CONTENEDORES Y SLIDES --- */
        .sticky-wrapper {
            width: 100%;
            max-width: 100%;
        }

        .fullscreen-slide {
            height: 100vh; 
            width: 100%;
            display: flex; 
            flex-direction: column;
            justify-content: flex-end; 
            align-items: center;
            padding-bottom: 15vh;
            background-size: cover;
            background-position: center;
            background-color: #ffffff; 
            position: relative;
            margin: 0; 
        }

        .sticky-slide {
            position: sticky;
            top: 0;
            box-shadow: 0 -10px 20px rgba(0,0,0,0.15);
        }
        
        .sticky-slide-noshadow {
            box-shadow: none;
        }

        .z-1 { z-index: 1; }
        .z-2 { z-index: 2; }
        .z-3 { z-index: 3; }
        .z-4 { z-index: 4; }
        .z-5 { z-index: 5; }

      
   
        
        /* --- OVERLAY OSCURO --- */
        .dark-overlay {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: #000000;
            opacity: 0; 
            z-index: 1; 
            pointer-events: none; 
        }

        .content-box { 
            text-align: center; 
            position: relative;
            z-index: 2; 
        }

        .split-section .container-fluid {
            position: relative;
            z-index: 2; 
        }

        .section-title {
            color: white;
            text-transform: uppercase;
            letter-spacing: 2px;
            font-size: 2.5rem;
            text-shadow: 2px 2px 4px rgba(0,0,0,0.5);
            margin-bottom: 20px;
        }
        
        .btn-custom {
            border: 1px solid white;
            color: white;
            background: rgba(0,0,0,0.2);
            border-radius: 0;
            padding: 12px 40px;
            text-transform: uppercase;
            font-size: 0.9rem;
            letter-spacing: 1px;
            transition: all 0.3s;
        }

        .btn-custom:hover { background: white; color: black; }
        
        .fade-in-element {
            opacity: 0;
            transform: translateY(40px);
            transition: opacity 0.8s ease-out, transform 0.8s ease-out;
        }

        .fade-in-element.is-visible {
            opacity: 1;
            transform: translateY(0);
        }

        .split-section {
            padding-bottom: 0;
            background-color: #000;
        }

        .object-fit-cover { object-fit: cover; }

        @media (max-width: 767px) {
            .mobile-half { height: 50vh !important; }
        }
        
        /* --- SCROLLBAR --- */
        html {
            scrollbar-width: thin; 
            scrollbar-color: #cccccc #ffffff; 
        }
        ::-webkit-scrollbar { width: 6px; height: 6px; }
        ::-webkit-scrollbar-track { background: #ffffff; }
        ::-webkit-scrollbar-thumb {
            background-color: #cccccc; 
            border-radius: 10px; 
        }
        ::-webkit-scrollbar-thumb:hover { background-color: #000000; }
        
        :root {
            --lw-spacing-0: 0;
            --lw-spacing-100: 4px;
            --lw-spacing-200: 8px;
            --lw-spacing-300: 12px;
            --lw-spacing-400: 16px;
            --lw-spacing-600: 24px;
            --lw-spacing-800: 32px;
            --lw-spacing-1200: 48px;
            --lw-spacing-2000: 80px;
            --lw-spacing-3200: 128px;
            --lw-spacing-4000: 160px;
        }
        @media (min-width: 1024px) {
            .p-lr-custom {
                padding-left: var(--lw-spacing-600);
                padding-right: var(--lw-spacing-600);
                padding-bottom: 0;
            }
        }

        /* --- NUEVO: FOOTER  --- */
        .footer-custom {
            background-color: #ffffff;
            position: relative;
            z-index: 10; /* Debe estar por encima de los slides pegajosos */
            border-top: 1px solid #e0e0e0;
            padding: 60px 0;
        }

        /* --- NUEVO: ESTILOS DEL PANEL LATERAL (OFFCANVAS) --- */
        .offcanvas-custom {
            width: 450px !important;
            max-width: 100%;
            border-left: none !important;
        }
        
        .input-newsletter {
            border: none;
            border-bottom: 1px solid #ccc;
            border-radius: 0;
            padding: 10px 0;
            background: transparent;
            font-size: 0.9rem;
        }
        
        .input-newsletter:focus {
            box-shadow: none;
            border-color: #000;
            outline: none;
        }

        .btn-newsletter {
            border-radius: 0;
            letter-spacing: 1px;
            font-size: 0.85rem;
            padding: 15px;
        }
        
        /* --- NAVEGACIÓN INFERIOR MÓVIL (ESTILO APP) --- */
        .mobile-bottom-nav {
            position: fixed;
            bottom: 0;
            left: 0;
            width: 100%;
            background-color: rgba(255, 255, 255, 0.95);
            border-top: 1px solid #eee;
            z-index: 2000; /* Asegura que esté por encima de todo */
            display: flex;
            justify-content: space-around;
            align-items: center;
            padding: 12px 0;
         
            padding-bottom: env(safe-area-inset-bottom, 12px); /* Respeta el área segura en iPhones modernos */
            transition: transform 0.3s ease-in-out;
        }

        .mobile-bottom-nav a {
            color: #000;
            text-decoration: none;
            display: flex;
            flex-direction: column;
            align-items: center;
            transition: opacity 0.2s;
        }

        .mobile-bottom-nav a:active {
            opacity: 0.5; /* Pequeño efecto visual al tocar */
        }

        .mobile-bottom-nav i {
            font-size: 1.4rem; /* Tamaño del icono */
            margin-bottom: 2px;
        }

        .mobile-bottom-nav span {
            font-size: 0.6rem;
            text-transform: uppercase;
            letter-spacing: 1px;
        }
        
     
/* --- BARRA STICKY (A PRUEBA DE BLOQUEOS INVISIBLES) --- */
/* Busca esta sección y déjala exactamente así */
.section-sticky-bar {
    position: fixed !important; 
    top: 0; /* Quitamos el !important para que JS pueda moverlo */
    left: 0 !important; 
    width: 100% !important; 
    padding: 25px 40px !important; 
    display: flex !important; 
    justify-content: space-between !important; 
    align-items: center !important; 
    z-index: 999999 !important; 
    opacity: 0; 
    pointer-events: none; 
    transform: translateY(-20px); 
    /* Añadimos transform a la transición */
   transition: top 0.4s ease, opacity 0.4s ease, transform 0.4s ease;
}

      @media (max-width: 767px) {
           .section-sticky-bar {top: 0 !important; }
        }
        

.section-sticky-bar.is-active { 
    opacity: 1 !important; 
    transform: translateY(0) !important; 
    /* Forzamos a que vuelva a ser clicable pase lo que pase */
    pointer-events: auto !important; 
}

/* Estilos de los enlaces de la barra */
.section-sticky-bar a { 
    color: inherit; 
    border-bottom: 1px solid transparent; 
    transition: border-color 0.3s; 
    position: relative;
    z-index: 999999 !important; /* Protegemos el enlace específicamente */
}

.section-sticky-bar a:hover { 
    border-color: currentColor; 
}

.section-sticky-bar.theme-light { color: #ffffff; }
.section-sticky-bar.theme-dark { color: #000000; }

@media (max-width: 768px) { 
    .section-sticky-bar { padding: 20px !important; } 
}
   /* --- link subrayado--- */
.nav-link-premium {
    position: relative;
    display: inline-block;
    text-decoration: none;
}
.nav-link-premium::after {
    content: '';
    position: absolute;
    width: 0;
    height: 1px;
    bottom: -2px;
    left: 0;
    background-color: currentColor;
    transition: width 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}
.nav-link-premium:hover::after {
    width: 100%;
}
        /* Temas de color para contraste según la foto */
        .section-sticky-bar.theme-light { color: #ffffff; }
        .section-sticky-bar.theme-dark { color: #000000; }

        @media (max-width: 768px) {
            .section-sticky-bar {
                padding: 20px; /* Menos padding en móviles */
            }
        }
        
         @media (max-width: 768px) {  
           .navbar-custom {
          
            background-color: rgba(255, 255, 255, 0);
                   border-bottom: 1px solid transparent;
          
        }
}
