/**
 * Footer lock — landings servicio × geo
 * Carga AL FINAL (después de mx-service-landing) para igualar home / menú en móvil.
 * No altera tipografía ni layout del resto de la página.
 */

/* Contención: evita que overflow de la landing “empuje” el pie */
body.mx-service-landing {
    overflow-x: clip;
    max-width: 100%;
}

body.mx-service-landing .footer {
    position: relative;
    z-index: 100;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    overflow-x: clip;
    font-family: Inter, 'Segoe UI', system-ui, sans-serif;
}

body.mx-service-landing .footer .footer-wrap {
    max-width: var(--footer-shell-max, 1540px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: var(--cw-shell-pad-x, 5%) !important;
    padding-right: var(--cw-shell-pad-x, 5%) !important;
    box-sizing: border-box !important;
}

/* Título CTA del footer: nunca heredar Poiret/gradiente de landings */
body.mx-service-landing .footer .footer-cta-title,
body.mx-service-landing .footer .footer-cta-line,
body.mx-service-landing .footer .footer-cta-line--muted {
    font-family: Inter, 'Segoe UI', system-ui, sans-serif !important;
    background: none !important;
    -webkit-background-clip: unset !important;
    background-clip: unset !important;
    color: #fff !important;
    letter-spacing: -0.025em !important;
    text-transform: none !important;
}

body.mx-service-landing .footer .footer-cta-line--muted {
    color: rgba(255, 255, 255, 0.52) !important;
    font-weight: 400 !important;
}

body.mx-service-landing .footer .footer-heading {
    font-family: Inter, 'Segoe UI', system-ui, sans-serif !important;
    background: none !important;
    -webkit-background-clip: unset !important;
    background-clip: unset !important;
    color: rgba(255, 255, 255, 0.95) !important;
}

@media (max-width: 768px) {
    body.mx-service-landing .footer {
        --footer-mobile-card: rgba(255, 255, 255, 0.035);
        --footer-mobile-border: rgba(255, 255, 255, 0.08);
        --footer-mobile-radius: 16px;
    }

    body.mx-service-landing .footer .footer-cta {
        padding-top: 1.5rem !important;
    }

    body.mx-service-landing .footer .footer-cta-panel {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
        padding: 1.35rem 1.15rem !important;
        border-radius: var(--footer-mobile-radius) !important;
        gap: 1.05rem !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    body.mx-service-landing .footer .footer-cta-actions {
        width: 100% !important;
        max-width: 22rem !important;
        flex-direction: column !important;
        gap: 0.6rem !important;
    }

    body.mx-service-landing .footer .footer-btn {
        width: 100% !important;
        min-width: 0 !important;
        justify-content: center !important;
        padding: 0.88rem 1.1rem !important;
        font-size: 0.74rem !important;
        font-family: Inter, 'Segoe UI', system-ui, sans-serif !important;
        border-radius: 12px !important;
        text-transform: none !important;
        letter-spacing: 0.02em !important;
    }

    body.mx-service-landing .footer .footer-cta-line {
        font-size: clamp(1.02rem, 4.2vw, 1.2rem) !important;
    }

    body.mx-service-landing .footer .footer-cta-line--muted {
        font-size: clamp(0.86rem, 3.4vw, 0.98rem) !important;
        line-height: 1.45 !important;
    }

    body.mx-service-landing .footer .footer-main {
        padding: 1.5rem 0 1rem !important;
    }

    body.mx-service-landing .footer .footer-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        column-gap: 0.65rem !important;
        row-gap: 0.65rem !important;
        text-align: center !important;
    }

    body.mx-service-landing .footer .footer-col {
        border-right: none !important;
        padding: 0 !important;
        min-width: 0 !important;
    }

    body.mx-service-landing .footer .footer-brand {
        grid-column: 1 / -1 !important;
        max-width: none !important;
        margin-bottom: 0.35rem !important;
        padding: 1.15rem 1rem 1.25rem !important;
        border: 1px solid var(--footer-mobile-border) !important;
        border-radius: var(--footer-mobile-radius) !important;
        background:
            linear-gradient(165deg, rgba(0, 243, 255, 0.05) 0%, rgba(185, 103, 255, 0.03) 100%),
            var(--footer-mobile-card) !important;
        text-align: center !important;
    }

    body.mx-service-landing .footer .footer-col--links,
    body.mx-service-landing .footer .footer-col--wide,
    body.mx-service-landing .footer .footer-contact-col {
        grid-column: auto !important;
        padding: 0.95rem 0.7rem 1rem !important;
        border: 1px solid var(--footer-mobile-border) !important;
        border-radius: 14px !important;
        background: var(--footer-mobile-card) !important;
    }

    body.mx-service-landing .footer .footer-nav,
    body.mx-service-landing .footer .footer-nav--dense {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        list-style: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    body.mx-service-landing .footer .footer-nav a,
    body.mx-service-landing .footer .footer-contact a {
        font-size: 0.78rem !important;
        line-height: 1.38 !important;
        color: rgba(255, 255, 255, 0.58) !important;
        text-decoration: none !important;
    }

    body.mx-service-landing .footer .footer-heading {
        margin: 0 auto 0.65rem !important;
        padding-bottom: 0 !important;
        border-bottom: none !important;
        font-size: 0.64rem !important;
        letter-spacing: 0.14em !important;
        text-align: center !important;
        text-transform: uppercase !important;
    }
}

@media (max-width: 520px) {
    body.mx-service-landing .footer .footer-cta-panel {
        padding: 1rem 0.95rem !important;
    }
}
