.elementor-599 .elementor-element.elementor-element-77be5e5{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-599 .elementor-element.elementor-element-82b32fe.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-599 .elementor-element.elementor-element-82b32fe.wpr-stt-btn-align-fixed-right .wpr-stt-btn{right:30px;bottom:100px;}.elementor-599 .elementor-element.elementor-element-82b32fe .wpr-stt-content{color:#ffffff;}.elementor-599 .elementor-element.elementor-element-82b32fe .wpr-stt-icon{color:#ffffff;font-size:14px;}.elementor-599 .elementor-element.elementor-element-82b32fe .wpr-stt-icon svg{fill:#ffffff;width:14px;height:14px;}.elementor-599 .elementor-element.elementor-element-82b32fe .wpr-stt-btn{background-color:var( --e-global-color-primary );transition:all  0.3s ease-in-out 0s;padding:15px 15px 15px 15px;border-radius:2px 2px 2px 2px;}.elementor-599 .elementor-element.elementor-element-82b32fe .wpr-stt-btn:hover > .wpr-stt-icon{Color:#fff;}.elementor-599 .elementor-element.elementor-element-82b32fe .wpr-stt-btn:hover > .wpr-stt-icon svg{fill:#fff;}.elementor-599 .elementor-element.elementor-element-82b32fe .wpr-stt-btn:hover{background-color:var( --e-global-color-eecb91a );}.elementor-599 .elementor-element.elementor-element-82b32fe .wpr-stt-btn svg{transition:all  0.3s ease-in-out 0s;}.elementor-599 .elementor-element.elementor-element-c84ca00{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-599 .elementor-element.elementor-element-a719fe9.elementor-element{--align-self:center;}.elementor-599 .elementor-element.elementor-element-a719fe9.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-599 .elementor-element.elementor-element-a719fe9.wpr-pc-btn-align-fixed-right .wpr-pc-btn{right:30px;bottom:30px;}.elementor-599 .elementor-element.elementor-element-a719fe9 .wpr-pc-content{color:#ffffff;}.elementor-599 .elementor-element.elementor-element-a719fe9 .wpr-pc-btn-icon{color:#ffffff;font-size:13px;}.elementor-599 .elementor-element.elementor-element-a719fe9 .wpr-pc-btn-icon svg{fill:#ffffff;width:13px;height:13px;}.elementor-599 .elementor-element.elementor-element-a719fe9 .wpr-pc-btn{background-color:var( --e-global-color-primary );border-color:#E8E8E8;box-shadow:1px 1px 10px 0px rgba(0,0,0,0.5);transition:all  0.3s ease-in-out 0s;padding:21px 21px 21px 21px;border-style:none;border-radius:34px 34px 34px 34px;}.elementor-599 .elementor-element.elementor-element-a719fe9 .wpr-pc-btn:hover > .wpr-pc-btn-icon{Color:#fff;}.elementor-599 .elementor-element.elementor-element-a719fe9 .wpr-pc-btn:hover svg{fill:#fff;}.elementor-599 .elementor-element.elementor-element-a719fe9 .wpr-pc-btn:hover{background-color:var( --e-global-color-eecb91a );border-color:#E8E8E8;box-shadow:1px 1px 10px 0px rgba(0,0,0,0.5);}.elementor-599 .elementor-element.elementor-element-a719fe9 .wpr-pc-content,.elementor-599 .elementor-element.elementor-element-a719fe9 .wpr-pc-content::after{font-family:"Roboto", Sans-serif;font-size:17px;font-weight:800;}.elementor-599 .elementor-element.elementor-element-a719fe9.wpr-pc-btn-icon-top .wpr-pc-btn-icon{margin-bottom:7px;}.elementor-599 .elementor-element.elementor-element-a719fe9.wpr-pc-btn-icon-left .wpr-pc-btn-icon{margin-right:7px;}.elementor-599 .elementor-element.elementor-element-a719fe9.wpr-pc-btn-icon-right .wpr-pc-btn-icon{margin-left:7px;}.elementor-599 .elementor-element.elementor-element-a719fe9.wpr-pc-btn-icon-bottom .wpr-pc-btn-icon{margin-top:7px;}.elementor-599 .elementor-element.elementor-element-c117e76{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-599 .elementor-element.elementor-element-4f0f21d.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-599 .elementor-element.elementor-element-833cee8{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--margin-top:0px;--margin-bottom:0px;--margin-left:-5px;--margin-right:-5px;}.elementor-599 .elementor-element.elementor-element-833cee8:not(.elementor-motion-effects-element-type-background), .elementor-599 .elementor-element.elementor-element-833cee8 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#242222;}.elementor-599 .elementor-element.elementor-element-25dbaa2.xpro-widget-bg-overlay:before{transition:background 0.3s;}/* Start custom CSS for html, class: .elementor-element-25dbaa2 *//* --- Variables CSS para el Footer --- */
:root {
    --footer-bg-color: #222; /* Fondo oscuro para el footer */
    --footer-text-color: #f0f0f0; /* Color de texto claro */
    --footer-link-color: #fff; /* Enlaces blancos */
    --footer-primary-color: #C1262E; /* Tu color principal */
    --footer-primary-darker: #a02026; /* Tono más oscuro */
    --footer-border-color: rgba(255, 255, 255, 0.1); /* Líneas divisorias sutiles */
    --footer-transition-speed: 0.3s;
}

.main-footer {
    background-color: var(--footer-bg-color);
    color: var(--footer-text-color);
    padding: 60px 20px 30px; /* Padding superior, horizontal, inferior */
    font-family: 'Arial', sans-serif;
    position: relative;
    overflow: hidden; /* Para contener animaciones si se desbordan */

    /* --- AJUSTE CLAVE PARA EL ANCHO COMPLETO MÁS ROBUSTO --- */
    width: 100%; /* Asegura el 100% de su contenedor padre */
    box-sizing: border-box; /* Asegura que el padding se incluya en el ancho */

    /* Forzar que el footer ocupe todo el ancho del viewport */
    /* Estas propiedades son muy agresivas y suelen solucionar el problema de los espacios */
    margin-left: auto;
    margin-right: auto;
    left: 0;
    right: 0;
    position: relative; /* Mantener relative si no hay problemas de stacking */
    /* Si lo anterior no funciona, intenta con position: absolute; o fixed;
       pero eso puede sacar el footer del flujo normal del documento */
    /* position: absolute; */
    /* bottom: 0; */
    /* width: 100vw; */
    /* left: 50%; */
    /* transform: translateX(-50%); */
}

/* Asegura que el contenedor principal de la página no tenga un overflow-x oculto
   que impida que 100vw funcione correctamente si el footer es más ancho. */
/* Esta regla es crucial si tu tema o Elementor lo están causando */
body {
    overflow-x: hidden; /* Esto es común, pero puede limitar tu footer. Si lo tienes, déjalo. */
}
html, body {
    width: 100%; /* Asegura que el body no sea más grande que el viewport */
    overflow-x: hidden; /* Añadido para prevenir scroll horizontal no deseado si algo se desborda */
}


/* Efecto de fondo sutil (ej. patrón) */
.main-footer::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: radial-gradient(circle at top left, var(--footer-primary-color) 0%, transparent 20%),
                      radial-gradient(circle at bottom right, var(--footer-primary-darker) 0%, transparent 20%);
    background-size: 80% 80%; /* Ajusta el tamaño de los degradados */
    opacity: 0.05; /* Muy sutil */
    pointer-events: none; /* Asegura que no interfiera con los clics */
    z-index: 0;
}

.footer-container {
    display: flex;
    flex-wrap: wrap; /* Permite que las columnas se envuelvan en pantallas pequeñas */
    justify-content: space-between;
    max-width: 1200px; /* Limita el ancho del CONTENIDO para que no se estire demasiado */
    margin: 0 auto; /* Centra el contenido dentro del footer full width */
    padding: 0 15px; /* Añade un pequeño padding interno para que el contenido no pegue a los bordes */
    gap: 30px; /* Espacio entre columnas */
    position: relative; /* Para que el contenido esté por encima del pseudo-elemento */
    z-index: 1;
}

.footer-column {
    flex: 1 1 220px; /* Base para el tamaño de las columnas */
    margin-bottom: 30px; /* Espacio entre columnas apiladas en móvil */
}

/* Estilo de los títulos de las columnas */
.footer-column h3 {
    color: var(--footer-primary-color);
    font-size: 1.6em;
    margin-bottom: 25px;
    position: relative;
    padding-bottom: 10px;
}

.footer-column h3::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 50px; /* Línea decorativa bajo el título */
    height: 3px;
    background-color: var(--footer-primary-color);
    border-radius: 2px;
    transition: width var(--footer-transition-speed) ease-in-out;
}

.footer-column:hover h3::after {
    width: 80px; /* Animación de la línea al pasar el ratón */
}

/* Estilo del logo y descripción */
.footer-brand {
    flex-basis: 280px; /* Más espacio para la columna del logo */
    min-width: 250px;
}

.footer-logo-link {
    display: inline-block;
    margin-bottom: 20px;
    transition: transform var(--footer-transition-speed) ease-out;
}

.footer-logo-link:hover {
    transform: scale(1.05); /* Zoom sutil al pasar el ratón */
}

.footer-logo {
    max-width: 180px; /* Tamaño del logo */
    height: auto;
    filter: brightness(0.9) drop-shadow(0 0 5px rgba(255, 255, 255, 0.1)); /* Pequeño efecto de brillo y sombra */
}

.brand-description {
    font-size: 0.95em;
    line-height: 1.8;
    color: var(--footer-text-color);
}

/* Estilo de las listas de enlaces */
.footer-column ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-column ul li {
    margin-bottom: 12px;
    position: relative;
}

.footer-column ul li a {
    color: var(--footer-link-color);
    text-decoration: none;
    font-size: 1.05em;
    transition: color var(--footer-transition-speed) ease, transform var(--footer-transition-speed) ease;
    display: inline-block;
}

.footer-column ul li a:hover {
    color: var(--footer-primary-color); /* Color al pasar el ratón */
    transform: translateX(5px); /* Pequeño desplazamiento */
    text-decoration: underline; /* Subrayado al pasar el ratón */
}

/* Estilo de la información de contacto */
.footer-contact p {
    margin-bottom: 15px;
    font-size: 1.05em;
    color: var(--footer-text-color);
}

.footer-contact p i {
    color: var(--footer-primary-color);
    margin-right: 10px;
    font-size: 1.1em;
}

.footer-contact a { /* Para enlaces de email o teléfono si se añaden */
    color: var(--footer-link-color);
    text-decoration: none;
    transition: color var(--footer-transition-speed) ease;
}

.footer-contact a:hover {
    color: var(--footer-primary-color);
}

/* Estilo para los iconos sociales (si se añaden) */
.social-links {
    margin-top: 25px;
}

.social-links a {
    color: var(--footer-link-color);
    font-size: 1.8em;
    margin-right: 15px;
    transition: color var(--footer-transition-speed) ease, transform var(--footer-transition-speed) ease;
}

.social-links a:hover {
    color: var(--footer-primary-color);
    transform: translateY(-5px) scale(1.1);
}

/* Sección inferior del footer */
.footer-bottom {
    border-top: 1px solid var(--footer-border-color);
    padding-top: 25px;
    margin-top: 50px;
    text-align: center;
    font-size: 0.9em;
    color: rgba(255, 255, 255, 0.7);
    position: relative;
    z-index: 1;
}

/* --- Responsividad --- */
@media (max-width: 992px) {
    .footer-container {
        flex-direction: column; /* Apila las columnas en tablets y móviles */
        align-items: center; /* Centra las columnas */
        text-align: center;
    }

    .footer-column {
        flex-basis: 100%;
        max-width: 400px; /* Limita el ancho de las columnas apiladas */
    }

    .footer-brand {
        margin-bottom: 40px;
    }

    .footer-column h3 {
        margin-bottom: 15px;
    }

    .footer-column h3::after {
        left: 50%; /* Centra la línea bajo el título */
        transform: translateX(-50%);
    }

    .footer-column:hover h3::after {
        width: 60px; /* Ajusta la animación de la línea */
    }

    .footer-column ul li a:hover {
        transform: none; /* Deshabilita el desplazamiento lateral en móvil si molesta */
        text-decoration: underline;
    }
}

@media (max-width: 576px) {
    .main-footer {
        padding: 40px 15px 20px;
    }

    .footer-logo {
        max-width: 150px;
    }

    .footer-column {
        margin-bottom: 25px;
    }

    .footer-column h3 {
        font-size: 1.4em;
    }

    .footer-column ul li a {
        font-size: 1em;
    }

    .footer-contact p {
        font-size: 1em;
    }

    .social-links a {
        font-size: 1.5em;
        margin-right: 10px;
    }
}/* End custom CSS */